/* Fireside Booking widget — base styles. Granular overrides come from Elementor controls. */
.fb-book { box-sizing: border-box; width: 100%; background: #fff; }
.fb-book *, .fb-book *::before, .fb-book *::after { box-sizing: border-box; }

/* Search bar: one row of equal-height fields + button, no labels. */
.fb-book__form { display: flex; flex-wrap: wrap; align-items: stretch; gap: 10px; margin: 0; }
.fb-field { display: flex; flex: 1 1 0; min-width: 150px; }
.fb-field--submit { flex: 0 0 auto; }
.fb-field > input,
.fb-field > select {
	width: 100%; height: 100%; margin: 0; border: 1px solid #d9d9d9; border-radius: 8px;
	padding: 12px 14px; font-size: 16px; line-height: 1.2; color: #1E212B; background: #fff;
	-webkit-appearance: auto; appearance: auto;
}
.fb-field > input::placeholder { color: #8a8a8a; opacity: 1; }
.fb-field > input:focus,
.fb-field > select:focus { outline: 2px solid rgba(226,123,15,.5); outline-offset: 1px; }

/* Date fields render fully custom for CROSS-BROWSER consistency (Chrome, Firefox, Safari):
   the native input is kept (picker + value) but ALL of its own chrome is hidden, and we draw
   the text (placeholder OR chosen date) and a calendar icon ourselves. */
.fb-field--date { position: relative; cursor: pointer; }
.fb-field--date input[type="date"] {
	padding-right: 44px;
	color: transparent !important;                 /* hide native text/value */
	pointer-events: none;                          /* input never receives the click → no selectable/highlightable date segments */
	-webkit-user-select: none; -moz-user-select: none; user-select: none; caret-color: transparent;
}
.fb-field--date input[type="date"]::-webkit-datetime-edit { color: transparent !important; }
.fb-field--date input[type="date"]::-webkit-calendar-picker-indicator { display: none; -webkit-appearance: none; opacity: 0; }
.fb-field--date input[type="date"]::-webkit-inner-spin-button,
.fb-field--date input[type="date"]::-webkit-clear-button { display: none; -webkit-appearance: none; }
/* Our own display text — matches the field text via the Inputs typography + Text-color controls. */
.fb-field--date .fb-disp {
	position: absolute; left: 15px; top: 50%; transform: translateY(-50%); margin: 0;
	pointer-events: none; -webkit-user-select: none; user-select: none; white-space: nowrap; overflow: hidden; max-width: calc(100% - 54px);
	color: #1E212B; font-size: 16px; line-height: 1.2;
}
/* Our own calendar icon — identical in every browser, follows the text color via currentColor. */
.fb-field--date .fb-cal {
	position: absolute; right: 14px; top: 50%; transform: translateY(-50%);
	width: 18px; height: 18px; pointer-events: none; color: #1E212B; display: inline-flex;
}
.fb-field--date .fb-cal svg { width: 100%; height: 100%; display: block; }

.fb-field--submit .fb-book__btn { height: 100%; width: 100%; }
.fb-book__btn {
	cursor: pointer; border: none; background: #E27B0F; color: #fff;
	font-family: "League Gothic", sans-serif; font-size: 24px; font-weight: 400;
	line-height: 1; padding: 14px 40px; border-radius: 10px; white-space: nowrap;
	transition: background-color .15s ease;
}
.fb-book__btn:hover { background: #C66500; }
.fb-book__btn[disabled] { opacity: .6; cursor: default; }

.fb-book__msg { margin-top: 14px; font-size: 16px; line-height: 1.5; }

.fb-book__results {
	margin-top: 16px; display: grid;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 14px;
}
/* Cabin results: exactly 2 columns on desktop (there are only ever 2 cabin types), 1 on mobile. */
@media (min-width: 768px) { .fb-book__results--cabins { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }
@media (max-width: 767px) { .fb-book__results--cabins { grid-template-columns: 1fr !important; } }
.fb-card { background: #fff; border: 1px solid #ececec; border-radius: 10px; padding: 18px; display: flex; flex-direction: column; }
.fb-card__name { font-family: "League Gothic", sans-serif; font-size: 26px; font-weight: 400; line-height: 1.1; margin: 0 0 6px; color: #1E212B; }
.fb-card__price { font-size: 20px; font-weight: 700; color: #E27B0F; margin: 0 0 2px; }
.fb-card__price small { font-weight: 400; font-size: 14px; color: #777; }
.fb-card__total { font-size: 14px; color: #555; margin: 0 0 8px; }
.fb-card__meta { font-size: 13px; color: #555; margin: 0 0 14px; }
.fb-card__book {
	margin-top: auto; display: inline-block; text-align: center; text-decoration: none;
	background: #16847A; color: #fff; font-family: "League Gothic", sans-serif; font-size: 20px;
	line-height: 1; padding: 10px 22px; border-radius: 8px; transition: background-color .15s ease;
}
.fb-card__book:hover { background: #10645C; color: #fff; }

/* Compact mobile: 4 tight stacked rows (check-in, check-out, site type, button) — no wasted space. */
@media (max-width: 767px) {
	.fb-book__form { flex-direction: column; align-items: stretch; gap: 8px; }
	.fb-field { flex: 1 1 auto; width: 100%; min-width: 0; }
	.fb-field > input, .fb-field > select { height: auto; padding: 13px 14px; }
	.fb-field--submit { width: 100%; }
	.fb-field--submit .fb-book__btn { height: auto; width: 100%; padding: 13px 40px; }
}

/* ---- Text + Icon widget (centered text + independently-sized icon) ---- */
.fti { display: flex; justify-content: center; }
.fti__inner { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; line-height: 1; max-width: 100%; }
.fti__text { margin: 0; }
.fti__icon { display: inline-flex; align-items: center; line-height: 1; flex: 0 0 auto; }
.fti__icon svg { width: 1em; height: 1em; display: block; }
.fti__icon i { line-height: 1; }
