/* FR Booking – stile pubblico. I colori si cambiano dalle variabili qui sotto
   (anche dal tema child: .frb-booking-widget { --frb-accent: #... }). */

.frb-booking-widget,
.frb-search,
.frb-results,
.frb-cards {
	--frb-accent: #2b2b2b;
	--frb-accent-text: #fff;
	--frb-range: #efe9df;
	--frb-border: #e3e0da;
	--frb-muted: #8a8580;
	--frb-bg: #fff;
	--frb-error: #b3261e;
	--frb-radius: 10px;
	box-sizing: border-box;
	font-size: 15px;
	line-height: 1.45;
}
.frb-booking-widget *,
.frb-search *,
.frb-cards * {
	box-sizing: border-box;
}
.frb-booking-widget { margin: 32px 0; }
.frb-loading { padding: 40px; text-align: center; color: var(--frb-muted); }

/* ---------- Pulsanti ---------- */
.frb-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	padding: 12px 22px;
	border: 0;
	border-radius: 999px;
	background: var(--frb-accent);
	color: var(--frb-accent-text) !important;
	font: inherit;
	font-weight: 600;
	text-decoration: none !important;
	cursor: pointer;
	transition: opacity .15s;
}
.frb-button:hover { opacity: .88; }
.frb-button:disabled { opacity: .35; cursor: not-allowed; }
.frb-button--block { width: 100%; }
.frb-link {
	background: none;
	border: 0;
	padding: 0;
	color: inherit;
	font: inherit;
	text-decoration: underline;
	cursor: pointer;
}

/* ---------- Widget: calendario + riquadro laterale ---------- */
.frb-widget {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 24px;
}
/* Si adatta allo spazio che ha (anche dentro una colonna stretta di Divi), non alla larghezza dello schermo. */
.frb-booking-widget { container-type: inline-size; }
@container (min-width: 760px) {
	.frb-widget:has(.frb-side) { grid-template-columns: minmax(0, 1fr) 320px; }
	.frb-side { position: sticky; top: 90px; }
}

.frb-cal {
	position: relative;
	background: var(--frb-bg);
	border: 1px solid var(--frb-border);
	border-radius: var(--frb-radius);
	padding: 18px;
}
.frb-cal__nav {
	position: absolute;
	top: 12px;
	left: 12px;
	right: 12px;
	display: flex;
	justify-content: space-between;
	pointer-events: none;
}
.frb-cal__nav button {
	pointer-events: auto;
	width: 34px;
	height: 34px;
	border: 1px solid var(--frb-border);
	border-radius: 50%;
	background: var(--frb-bg);
	font-size: 20px;
	line-height: 1;
	cursor: pointer;
	color: inherit;
}
.frb-cal__nav button:disabled { opacity: .3; cursor: default; }

.frb-cal__months {
	display: grid;
	grid-template-columns: repeat(var(--frb-months, 1), minmax(0, 1fr));
	gap: 28px;
}
.frb-month__title {
	text-align: center;
	font-weight: 600;
	text-transform: capitalize;
	margin: 4px 0 14px;
	line-height: 26px;
}
.frb-month__grid {
	display: grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
	gap: 2px 0;
}
.frb-dow {
	text-align: center;
	font-size: 12px;
	color: var(--frb-muted);
	padding-bottom: 6px;
	text-transform: uppercase;
}
.frb-day {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 2px 0;
	border: 0;
	border-radius: 8px;
	background: none;
	color: inherit;
	font: inherit;
	cursor: pointer;
}
.frb-day span { font-weight: 600; }
.frb-day small { font-size: 10.5px; color: var(--frb-muted); white-space: nowrap; }
.frb-day:not(:disabled):hover { box-shadow: inset 0 0 0 1.5px var(--frb-accent); }
.frb-day:disabled { cursor: default; }
.frb-day.is-past span,
.frb-day.is-busy span { color: #c9c5bf; }
.frb-day.is-busy span { text-decoration: line-through; }
.frb-day.is-busy:not(:disabled) span { color: inherit; text-decoration: none; } /* valido come giorno di partenza */
.frb-day.is-under-min { opacity: .45; }
.frb-day.is-today span { text-decoration: underline; text-underline-offset: 3px; }
.frb-day.is-range { background: var(--frb-range); border-radius: 0; }
.frb-day.is-start,
.frb-day.is-end { background: var(--frb-accent); color: var(--frb-accent-text); }
.frb-day.is-start small,
.frb-day.is-end small { color: inherit; opacity: .8; }
.frb-day.is-start span,
.frb-day.is-end span { color: inherit; text-decoration: none; }

.frb-cal__footer {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
	margin-top: 14px;
	min-height: 22px;
	font-size: 14px;
	color: var(--frb-muted);
}
.frb-cal__hint.is-error { color: var(--frb-error); }

.frb-side {
	align-self: start;
	background: var(--frb-bg);
	border: 1px solid var(--frb-border);
	border-radius: var(--frb-radius);
	padding: 18px;
	display: grid;
	gap: 14px;
}
.frb-dates,
.frb-guests {
	display: grid;
	grid-template-columns: 1fr 1fr;
	border: 1px solid var(--frb-border);
	border-radius: 8px;
}
.frb-dates > div,
.frb-guests > label { padding: 8px 12px; margin: 0; }
.frb-dates > div + div,
.frb-guests > label + label { border-left: 1px solid var(--frb-border); }
.frb-dates small,
.frb-guests small { display: block; font-size: 11px; text-transform: uppercase; letter-spacing: .04em; color: var(--frb-muted); }
.frb-dates strong { font-size: 14px; }
.frb-guests select {
	width: 100%;
	border: 0;
	padding: 2px 0;
	background: none;
	font: inherit;
	font-weight: 600;
	color: inherit;
}
.frb-quote table { width: 100%; border-collapse: collapse; margin: 0; border: 0; }
.frb-quote td { padding: 4px 0; border: 0; }
.frb-quote td:last-child { text-align: right; white-space: nowrap; }
.frb-quote__total td { border-top: 1px solid var(--frb-border); padding-top: 10px; font-weight: 700; font-size: 17px; }
.frb-quote__note { margin: 6px 0 0; padding: 0; font-size: 13px; color: var(--frb-muted); }
.frb-quote.is-loading { opacity: .5; }

/* ---------- Modulo ospite ---------- */
.frb-form {
	max-width: 720px;
	background: var(--frb-bg);
	border: 1px solid var(--frb-border);
	border-radius: var(--frb-radius);
	padding: 22px;
	display: grid;
	gap: 14px;
}
.frb-form h3 { margin: 6px 0 0; padding: 0; }
.frb-form__summary {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 12px;
	background: var(--frb-range);
	border-radius: 8px;
	padding: 12px 14px;
}
.frb-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 14px;
}
.frb-field { display: grid; gap: 5px; margin: 0; }
.frb-field > span { font-size: 13px; font-weight: 600; }
.frb-field input,
.frb-field select,
.frb-field textarea,
.frb-card-element {
	width: 100%;
	padding: 11px 12px;
	border: 1px solid var(--frb-border);
	border-radius: 8px;
	background: #fff;
	font: inherit;
	font-size: 16px; /* evita lo zoom su iPhone */
	color: #222;
}
.frb-card-element { padding: 13px 12px; }
.frb-field input:focus,
.frb-field select:focus,
.frb-field textarea:focus { outline: 2px solid var(--frb-accent); outline-offset: -1px; }
.frb-help { margin: 0; padding: 0; font-size: 13px; color: var(--frb-muted); }
.frb-terms {
	font-size: 13px;
	color: #555;
	background: #faf8f5;
	border-radius: 8px;
	padding: 12px 14px;
	max-height: 180px;
	overflow: auto;
}
.frb-check { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; }
.frb-check input { margin-top: 3px; }
.frb-hp { position: absolute !important; left: -9999px !important; height: 1px; width: 1px; opacity: 0; }

.frb-notice {
	margin: 0;
	padding: 10px 14px;
	border-radius: 8px;
	background: #fdecea;
	color: var(--frb-error);
	font-size: 14px;
}

/* ---------- Conferma ---------- */
.frb-confirmation {
	max-width: 620px;
	margin: 0 auto;
	text-align: center;
	background: var(--frb-bg, #fff);
	border: 1px solid var(--frb-border);
	border-radius: var(--frb-radius);
	padding: 28px 24px;
}
.frb-confirmation__icon {
	width: 56px;
	height: 56px;
	margin: 0 auto 12px;
	border-radius: 50%;
	background: #e3f1e6;
	color: #1e7b34;
	font-size: 28px;
	line-height: 56px;
}
.frb-confirmation .frb-summary { text-align: left; }
.frb-summary td { border-top: 1px solid #f0ede8 !important; }

/* ---------- Ricerca ---------- */
.frb-search {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: 12px;
	background: var(--frb-bg);
	border: 1px solid var(--frb-border);
	border-radius: var(--frb-radius);
	padding: 16px;
}
.frb-search .frb-field { flex: 1 1 160px; }
.frb-search .frb-field--small { flex: 0 1 100px; }
.frb-search .frb-button { flex: 0 0 auto; height: 46px; }
@media (max-width: 560px) {
	.frb-search .frb-button { width: 100%; }
}
.frb-results { margin-top: 24px; }

/* ---------- Risultati della ricerca ---------- */
.frb-results { margin-top: 40px; }
.frb-results__summary { text-align: center; color: var(--frb-muted); margin: 0 0 36px; }
.frb-results__group + .frb-results__group { margin-top: 64px; }
.frb-results__head { text-align: center; margin: 0 0 28px; }
.frb-results__count { display: block; font-size: 12px; letter-spacing: .2em; text-transform: uppercase; color: var(--frb-muted); margin-bottom: 6px; }
.frb-results__city { margin: 0; padding: 0; font-size: 36px; line-height: 1.15; }

/* ---------- Schede alloggi (risultati ed elenco) ---------- */
.frb-cards {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
	gap: 28px;
}
.frb-card {
	display: flex;
	flex-direction: column;
	background: var(--frb-bg);
	border: 1px solid var(--frb-border);
	border-radius: var(--frb-radius);
	overflow: hidden;
	transition: box-shadow .4s, transform .4s;
}
.frb-card:hover { transform: translateY(-4px); box-shadow: 0 24px 44px -22px rgba(0, 0, 0, .3); }

/* Galleria di foto sfogliabile (frecce, pallini, scorrimento col dito) */
.frb-gallery { position: relative; aspect-ratio: 4 / 3; background: #eee; overflow: hidden; }
.frb-gallery__track {
	display: flex;
	height: 100%;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
}
.frb-gallery__track::-webkit-scrollbar { display: none; }
.frb-gallery__slide { flex: 0 0 100%; height: 100%; scroll-snap-align: start; display: block; }
.frb-gallery__slide img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 1s ease; }
.frb-card:hover .frb-gallery__slide img { transform: scale(1.04); }
.frb-gallery__nav {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 38px;
	height: 38px;
	border: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, .92);
	color: #222;
	font-size: 22px;
	line-height: 1;
	cursor: pointer;
	opacity: 0;
	transition: opacity .25s;
	z-index: 2;
}
.frb-gallery__nav--prev { left: 12px; }
.frb-gallery__nav--next { right: 12px; }
.frb-gallery:hover .frb-gallery__nav,
.frb-gallery__nav:focus-visible { opacity: 1; }
.frb-gallery__nav:disabled { opacity: 0 !important; pointer-events: none; }
@media (hover: none) { .frb-gallery__nav { display: none; } }
.frb-gallery__count {
	position: absolute;
	top: 12px;
	right: 12px;
	padding: 3px 9px;
	border-radius: 999px;
	background: rgba(0, 0, 0, .45);
	color: #fff;
	font-size: 11.5px;
	letter-spacing: .04em;
	z-index: 2;
}
.frb-gallery__dots {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 12px;
	display: flex;
	justify-content: center;
	gap: 6px;
	z-index: 2;
	pointer-events: none;
}
.frb-gallery__dots span { width: 6px; height: 6px; border-radius: 50%; background: rgba(255, 255, 255, .55); transition: background .2s, transform .2s; }
.frb-gallery__dots span.is-active { background: #fff; transform: scale(1.25); }

.frb-card__body { display: flex; flex-direction: column; flex: 1; padding: 22px 24px 24px; }
.frb-card__city { font-size: 11px; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; color: var(--frb-muted); margin-bottom: 6px; }
.frb-card__title { margin: 0 0 12px; padding: 0; font-size: 24px; line-height: 1.2; }
.frb-card__title a { color: inherit; text-decoration: none; }
.frb-card__facts { list-style: none !important; margin: 0 0 18px !important; padding: 0 !important; display: flex; flex-wrap: wrap; gap: 6px 16px; font-size: 13.5px; color: var(--frb-muted); }
.frb-card__facts li { list-style: none !important; display: inline-flex; align-items: center; gap: 6px; padding: 0 !important; }
.frb-card__facts li::before { display: none !important; }
.frb-card__facts svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.5; flex: none; }
.frb-card__price { margin-top: auto; padding-top: 16px; border-top: 1px solid var(--frb-border); display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 10px; }
.frb-card__price-label { width: 100%; font-size: 11px; letter-spacing: .16em; text-transform: uppercase; color: var(--frb-muted); }
.frb-card__price strong { font-size: 26px; font-weight: 500; line-height: 1.2; }
.frb-card__price small { color: var(--frb-muted); font-size: 13px; }
.frb-card__actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin-top: 18px; }
.frb-card__more { font-size: 14px; color: inherit !important; text-decoration: none !important; border-bottom: 1px solid currentColor; padding-bottom: 1px; }

/* ---------- Scheda alloggio (sostituisce il modulo MotoPress "Single Accommodation") ---------- */
.frb-single-accommodation img { width: 100%; height: auto; display: block; border-radius: 8px; margin-bottom: 12px; }
.frb-single-accommodation__title { margin: 0 0 8px; padding: 0; }
.frb-single-accommodation__title a { color: inherit; text-decoration: none; }
.frb-details { list-style: none !important; margin: 0 0 10px !important; padding: 0 !important; }
.frb-details li { list-style: none !important; padding: 2px 0; }
.frb-details li::before { display: none !important; }
.frb-single-accommodation__price { margin: 0 0 10px; }
.frb-details__title { margin: 0 0 6px; padding: 0; font-size: 18px; }
.frb-compat--search .frb-search { box-shadow: 0 10px 30px rgba(0, 0, 0, .12); text-align: left; }
.frb-compat--attributes .frb-details { list-style: disc !important; padding-left: 1.2em !important; }
.frb-compat--attributes .frb-details li { list-style: disc !important; }
.frb-price-from { margin: 0 0 8px; padding: 0; }
.frb-compat--calendar { scroll-margin-top: 90px; }
.frb-compat--calendar .frb-booking-widget { margin: 0; text-align: left; }

/* ---------- Ricerca "in colonna": misure riprese dal vecchio modulo MotoPress ---------- */
.frb-search.frb-search--stacked {
	display: block;
	width: 259px;
	max-width: 100%;
	margin: 0 auto;
	padding: 0 0 5px;
	background: transparent;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	font: inherit;
	font-weight: 700;
	line-height: 23.8px;
	text-align: center;
}
.frb-search--stacked .frb-search__required {
	margin: 0 0 14px;
	padding: 0 8px;
	font-weight: 700;
	line-height: 23.8px;
	text-align: center;
}
.frb-search--stacked abbr { text-decoration: underline dotted; border: 0; cursor: help; }
.frb-search--stacked .frb-field,
.frb-search--stacked .frb-field--small {
	display: block;
	width: auto;
	flex: none;
	margin: 0 0 14px;
	padding: 0 8px;
	text-align: center;
}
.frb-search--stacked .frb-field > span {
	display: inline-block;
	font-size: inherit;
	font-weight: 700;
	line-height: 23.8px;
}
.frb-search--stacked .frb-field input,
.frb-search--stacked .frb-field select {
	display: block;
	width: 243px;
	max-width: 100%;
	height: auto;
	margin: 0 auto;
	padding: 11.67px 16.67px;
	border: 1px solid #bbb;
	border-radius: 0;
	background: #fff;
	color: #4e4e4e;
	font-family: 'Prata', Georgia, serif;
	font-size: 13.33px;
	font-weight: 400;
	line-height: normal;
	text-align: left;
}
.frb-search--stacked .frb-field input:focus,
.frb-search--stacked .frb-field select:focus { outline: none; border-color: #999; }
.frb-search--stacked .frb-button {
	display: inline-block;
	height: 50px;
	margin: 0;
	padding: 6px 20px;
	border: 2px solid #9fa09f;
	border-radius: 3px;
	background: #9fa09f;
	color: #000 !important;
	font-family: 'Prata', Georgia, serif;
	font-size: 20px;
	font-weight: 700;
	line-height: 34px;
}
.frb-compat--stacked .frb-search { box-shadow: none; text-align: center; }

/* ---------- Annunci: titolo, pulsanti, foto cliccabili ---------- */
.frb-single-accommodation__title { font-size: 22px; margin: 14px 0 6px !important; }
.frb-single-accommodation__actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px;
	margin: 14px 0 0 !important;
	padding: 0 !important;
}
.frb-pill {
	display: inline-block;
	padding: 10px 22px;
	border: 2px solid #9fa09f;
	border-radius: 100px;
	background: #9fa09f;
	color: #fff !important;
	font-family: 'Source Sans Pro', Helvetica, Arial, sans-serif;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.2;
	text-decoration: none !important;
	cursor: pointer;
	transition: background .15s, color .15s, border-color .15s;
}
.frb-pill:hover { background: #7e807e; border-color: #7e807e; }
.frb-pill--outline { background: transparent; color: #555 !important; }
.frb-pill--outline:hover { background: #9fa09f; color: #fff !important; }
.frb-clickable { cursor: pointer; }
.frb-clickable .et_pb_slide_image,
.frb-clickable .et_pb_slides { transition: opacity .2s; }
.frb-clickable:hover .et_pb_slides { opacity: .93; }

/* ---------- Finestra disponibilità ---------- */
html.frb-modal-open { overflow: hidden; }
.frb-modal {
	position: fixed;
	inset: 0;
	z-index: 100000;
	display: flex;
	align-items: flex-start;
	justify-content: center;
	padding: 5vh 16px;
	overflow-y: auto;
}
.frb-modal__backdrop { position: fixed; inset: 0; background: rgba(20, 20, 20, .55); }
.frb-modal__dialog {
	position: relative;
	width: 100%;
	max-width: 1000px;
	background: #fff;
	border-radius: 12px;
	box-shadow: 0 20px 60px rgba(0, 0, 0, .3);
	padding: 18px 22px 22px;
	text-align: left;
	animation: frb-pop .18s ease-out;
}
@keyframes frb-pop { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
.frb-modal__header {
	display: flex;
	align-items: center;
	gap: 16px;
	padding-right: 36px;
	margin-bottom: 14px;
}
.frb-modal__header h3 { margin: 0; padding: 0; font-size: 22px; }
.frb-modal__header .frb-link { font-size: 14px; color: #666; }
.frb-modal__close {
	position: absolute;
	top: 10px;
	right: 12px;
	width: 36px;
	height: 36px;
	border: 0;
	border-radius: 50%;
	background: #f2f0ec;
	font-size: 24px;
	line-height: 1;
	cursor: pointer;
	color: #333;
}
.frb-modal .frb-booking-widget { margin: 0; }
@media (max-width: 600px) {
	.frb-modal { padding: 0; }
	.frb-modal__dialog { border-radius: 0; min-height: 100%; padding: 14px; }
	.frb-modal__header { flex-direction: column; align-items: flex-start; gap: 2px; }
}
.frb-modal .frb-side { position: static; }

/* Pagine degli alloggi: niente titolo automatico di Divi sopra l'impaginazione */
.single-frb_property .et_post_meta_wrapper { display: none; }
body.single-frb_property.single #main-content > .container { padding-top: 0; }

/* ---------- Calendario della ricerca ---------- */
.frb-search.frb-has-dp { position: relative; }
.frb-dp-input { cursor: pointer; caret-color: transparent; }
.frb-dp-input.is-active { outline: none; }
.frb-dp {
	position: absolute;
	top: calc(100% + 10px);
	left: 0;
	z-index: 1000;
	width: min(680px, 100%);
	background: #fff;
	border: 1px solid var(--frb-border);
	border-radius: var(--frb-radius);
	box-shadow: 0 24px 60px -18px rgba(0, 0, 0, .28);
	padding: 18px 20px 14px;
	text-align: left;
	animation: frb-dp-in .22s ease-out;
}
.frb-dp[hidden] { display: none; }
@keyframes frb-dp-in { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }
.frb-dp__nav { position: absolute; top: 14px; left: 14px; right: 14px; display: flex; justify-content: space-between; pointer-events: none; }
.frb-dp__nav button {
	pointer-events: auto;
	width: 32px;
	height: 32px;
	border: 1px solid var(--frb-border);
	border-radius: 50%;
	background: #fff;
	color: inherit;
	font-size: 19px;
	line-height: 1;
	cursor: pointer;
}
.frb-dp__nav button:disabled { opacity: .3; cursor: default; }
.frb-dp__months { display: grid; grid-template-columns: repeat(var(--frb-months, 1), minmax(0, 1fr)); gap: 26px; }
.frb-dp .frb-day { min-height: 40px; }
.frb-dp .frb-day.is-hover-end { box-shadow: inset 0 0 0 1.5px var(--frb-accent); }
.frb-dp__footer {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
	margin-top: 12px;
	padding-top: 12px;
	border-top: 1px solid var(--frb-border);
	font-size: 13px;
	color: var(--frb-muted);
}
.frb-dp__footer > span:last-child { display: flex; gap: 16px; align-items: center; }
.frb-dp__done {
	border: 0;
	background: var(--frb-accent);
	color: var(--frb-accent-text);
	font: inherit;
	font-weight: 600;
	padding: 7px 16px;
	border-radius: var(--frb-radius);
	cursor: pointer;
}
@media (max-width: 620px) {
	.frb-dp { width: 100%; padding: 14px 12px 12px; }
}
/* Con il calendario aperto, il modulo di ricerca sta sopra a tutto il resto della pagina */
.frb-compat:has(.frb-dp-open),
.frb-search.frb-dp-open { position: relative; z-index: 9000 !important; }
/* Schede centrate quando sono poche */
.frb-results .frb-cards { grid-template-columns: repeat(auto-fit, minmax(300px, 380px)); justify-content: center; }

/* ---------- Calendario: giorni non disponibili ben riconoscibili + legenda ---------- */
.frb-booking-widget .frb-day.is-busy:not(.is-past) {
	background: repeating-linear-gradient(135deg, transparent 0 5px, rgba(0, 0, 0, .045) 5px 6px);
	border-radius: 0;
}
.frb-booking-widget .frb-day.is-busy:not(.is-past) span { color: #b9b3ab; text-decoration: line-through; text-decoration-thickness: 1px; }
.frb-booking-widget .frb-day.is-busy.is-start,
.frb-booking-widget .frb-day.is-busy.is-end { background: var(--frb-accent); }
.frb-cal__legend {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 20px;
	margin-top: 16px;
	font-size: 12.5px;
	color: var(--frb-muted);
}
.frb-cal__legend span { display: inline-flex; align-items: center; gap: 7px; }
.frb-cal__legend i { display: inline-block; width: 14px; height: 14px; border: 1px solid var(--frb-border); }
.frb-cal__legend i.is-free { background: #fff; }
.frb-cal__legend i.is-busy { background: repeating-linear-gradient(135deg, #fff 0 3px, #d9d3ca 3px 4px); }
.frb-cal__legend i.is-sel { background: var(--frb-accent); border-color: var(--frb-accent); }

/* ---------- Ospiti: Adulti e Bambini uno sotto l'altro, etichette su una riga ---------- */
.frb-guests { grid-template-columns: 1fr; }
.frb-guests > label + label { border-left: 0; border-top: 1px solid var(--frb-border); }
.frb-guests small,
.frb-dates small { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* ---------- Opzioni di pagamento ---------- */
.frb-payopts { border: 0; margin: 14px 0 0; padding: 0; display: grid; gap: 10px; min-width: 0; }
.frb-payopts legend { padding: 0; margin: 0 0 8px; font-size: 13px; font-weight: 600; }
.frb-pay {
	position: relative;
	display: flex;
	gap: 10px;
	align-items: flex-start;
	padding: 12px 14px;
	border: 1px solid var(--frb-border);
	border-radius: 8px;
	cursor: pointer;
	transition: border-color .2s, background .2s, box-shadow .2s;
}
.frb-pay:hover { border-color: var(--frb-accent); }
.frb-pay.is-selected { border-color: var(--frb-accent); box-shadow: inset 0 0 0 1px var(--frb-accent); background: var(--frb-range); }
.frb-pay input { margin: 3px 0 0; accent-color: var(--frb-accent); flex: none; }
.frb-pay__body { display: grid; gap: 3px; min-width: 0; flex: 1; }
.frb-pay__head { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; }
.frb-pay__head strong { font-size: 14px; }
.frb-pay__price { font-weight: 700; white-space: nowrap; }
.frb-pay__price s { font-weight: 400; color: var(--frb-muted); margin-right: 4px; }
.frb-pay__badge { display: inline-block; margin-left: 4px; padding: 1px 6px; border-radius: 4px; background: var(--frb-accent); color: var(--frb-accent-text); font-size: 11px; font-weight: 600; vertical-align: 1px; }
.frb-pay__save { font-size: 12.5px; font-weight: 600; color: #2e7d4f; }
.frb-pay__text { font-size: 12.5px; color: var(--frb-muted); line-height: 1.45; }
.frb-pay__refund { font-size: 12px; line-height: 1.45; padding-left: 16px; position: relative; }
.frb-pay__refund::before { content: 'ⓘ'; position: absolute; left: 0; top: 0; }
.frb-pay__refund--none { color: #9a4a2e; }
.frb-pay__refund--partial { color: #8a6a1f; }
.frb-pay__refund--full { color: #2e7d4f; }
.frb-form__paymode { font-size: 13px; color: var(--frb-muted); }
.frb-pay__head { flex-wrap: wrap; }
.frb-pay__head strong { white-space: nowrap; }
.frb-pay__price { margin-left: auto; }

/* ---------- Servizi dell'alloggio ---------- */
.frb-amenities { margin: 10px 0 0; }
.frb-amenities__title { margin: 0 0 18px; padding: 0; font-size: 22px; }
.frb-amenities__list {
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
	gap: 14px 24px;
}
.frb-amenities__list li { list-style: none !important; display: flex; align-items: center; gap: 12px; padding: 0 !important; font-size: 15px; }
.frb-amenities__list li::before { display: none !important; }
.frb-amenities__list svg { width: 26px; height: 26px; flex: none; }

/* ---------- Termini e condizioni ---------- */
.frb-legal__table { overflow-x: auto; }
.frb-legal table { width: 100%; border-collapse: collapse; font-size: 14.5px; margin: 8px 0 0; }
.frb-legal th,
.frb-legal td { text-align: left; vertical-align: top; padding: 12px 14px; border-bottom: 1px solid var(--frb-border, #e3e0da); }
.frb-legal th { font-size: 11px; letter-spacing: .16em; text-transform: uppercase; color: #86705a; font-weight: 600; }
.frb-legal td small { color: #8a8580; }
.frb-legal td:first-child { min-width: 150px; }
.frb-legal td:first-child a { font-weight: 600; }
.frb-arrival-note { display: block; margin-top: 4px; color: #8a6a1f; }

/* ---------- Solo pagamento online + importi in contanti all'arrivo ---------- */
.frb-cash { display: grid; gap: 4px; margin: 12px 0 0; padding: 10px 12px; border: 1px dashed var(--frb-border); border-radius: 8px; font-size: 13px; }
.frb-cash__title { font-size: 11px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--frb-muted); }
.frb-cash__row { display: flex; justify-content: space-between; gap: 8px; }
.frb-online { display: grid; gap: 4px; margin: 14px 0 0; padding: 12px 14px; border: 1px solid var(--frb-accent); border-radius: 8px; background: var(--frb-range); }
.frb-online__head { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; }
.frb-online__head strong { font-size: 14px; }
.frb-form__cash { font-size: 13px; color: #8a6a1f; }

/* ---------- Pagina Contatti ---------- */
.frb-contacts { max-width: 860px; margin: 0 auto; }
.frb-contacts__intro { text-align: center; max-width: 620px; margin: 0 auto 32px; }
.frb-contacts__cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 16px; }
.frb-contact-card {
	display: grid;
	justify-items: center;
	gap: 6px;
	padding: 26px 18px;
	border: 1px solid var(--frb-border, #e3e0da);
	border-radius: 10px;
	background: #fff;
	color: inherit !important;
	text-decoration: none !important;
	text-align: center;
	transition: transform .3s, box-shadow .3s;
}
.frb-contact-card:hover { transform: translateY(-3px); box-shadow: 0 18px 36px -20px rgba(0, 0, 0, .3); }
.frb-contact-card svg { width: 30px; height: 30px; }
.frb-contact-card__label { font-size: 11px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: #8a8580; }
.frb-contact-card__value { font-size: 17px; overflow-wrap: anywhere; }
.frb-contacts__hours { text-align: center; color: #8a8580; margin: 16px 0 0; }
.frb-contact-form { display: grid; gap: 14px; margin-top: 48px; padding: 28px; border: 1px solid var(--frb-border, #e3e0da); border-radius: 10px; background: #fff; }
.frb-contact-form h2 { margin: 0 0 4px; padding: 0; }
.frb-contact-form .frb-button { justify-self: start; }
.frb-has-dp { position: relative; }
.frb-contact-dates__inputs { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.frb-contact-dates .frb-dp { top: calc(100% + 8px); }

/* ---------- Sezioni delle pagine (collezione, Home) ---------- */
.frb-collection { padding: 20px 0; }
.frb-sec-head { text-align: center; max-width: 720px; margin: 0 auto 44px; }
.frb-sec-head__eyebrow { display: block; margin-bottom: 10px; font-size: 11px; font-weight: 600; letter-spacing: .24em; text-transform: uppercase; color: #86705a; }
.frb-sec-head__title { margin: 0 0 14px; padding: 0; font-size: 40px; line-height: 1.15; }
.frb-sec-head__text { margin: 0; color: #6d6a66; }
.frb-collection__city + .frb-collection__city { margin-top: 64px; }
.frb-collection__cityhead { max-width: 720px; margin: 0 auto 30px; text-align: center; }
.frb-collection__count { display: block; font-size: 11px; letter-spacing: .2em; text-transform: uppercase; color: #8a8580; margin-bottom: 4px; }
.frb-collection__cityname { margin: 0 0 10px; padding: 0; font-size: 32px; }
.frb-collection__cityhead p { margin: 0; color: #6d6a66; }
.frb-collection .frb-cards { grid-template-columns: repeat(auto-fit, minmax(300px, 380px)); justify-content: center; }

.frb-card__amenities { list-style: none !important; display: flex; flex-wrap: wrap; gap: 10px; margin: -4px 0 16px !important; padding: 0 !important; color: #86705a; }
.frb-card__amenities li { list-style: none !important; padding: 0 !important; display: inline-flex; align-items: center; }
.frb-card__amenities li::before { display: none !important; }
.frb-card__amenities svg { width: 20px; height: 20px; }
.frb-card__amenities-more { font-size: 12px; font-weight: 600; color: #8a8580; }

.frb-steps { margin: 0 auto 70px; max-width: 1080px; }
.frb-steps__title { text-align: center; margin: 0 0 32px; padding: 0; font-size: 32px; }
.frb-steps__list { list-style: none !important; margin: 0 !important; padding: 0 !important; display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 22px; counter-reset: none; }
.frb-steps__list li { list-style: none !important; padding: 26px 24px !important; background: #fff; border: 1px solid #e6dfd4; }
.frb-steps__list li::before { display: none !important; }
.frb-steps__num { display: inline-grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; border: 1px solid #a48b70; color: #86705a; font-weight: 600; margin-bottom: 14px; }
.frb-steps__list h3 { margin: 0 0 8px; padding: 0; font-size: 20px; }
.frb-steps__list p { margin: 0; color: #6d6a66; font-size: 14.5px; }

.frb-band { margin: 80px auto 0; max-width: 1080px; padding: 44px 30px; text-align: center; background: #efe9df; }
.frb-band h2 { margin: 0 0 10px; padding: 0; font-size: 28px; }
.frb-band p { margin: 0 auto 18px; max-width: 620px; color: #6d6a66; }
.frb-band__actions { display: flex; justify-content: center; align-items: center; gap: 14px 26px; flex-wrap: wrap; max-width: none !important; width: 100%; margin: 0 !important; text-align: center; }
.frb-band__phone { color: inherit !important; font-weight: 600; text-decoration: none; }
.frb-story--alloggi > section { padding-bottom: 0; }
.frb-story--alloggi + .frb-band { margin-top: 70px; }
.frb-story--alloggi .frb-services { margin-bottom: 0; }

.frb-story > section { padding: 90px clamp(20px, 5vw, 40px); } /* margine ai lati quando lo schermo è stretto */
.frb-story > section + section { border-top: 1px solid #efe9df; }
.frb-city-panels { display: grid; gap: 60px; max-width: 1180px; margin: 0 auto; }
.frb-city-panel { display: grid; grid-template-columns: 1.1fr 1fr; gap: 56px; align-items: center; }
.frb-city-panel--reverse .frb-city-panel__img { order: 2; }
.frb-city-panel__img { overflow: hidden; aspect-ratio: 4 / 3; }
.frb-city-panel__img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 1.4s ease; }
.frb-city-panel:hover .frb-city-panel__img img { transform: scale(1.04); }
.frb-city-panel__body h3 { margin: 0 0 16px; padding: 0; font-size: 32px; line-height: 1.2; }
.frb-city-panel__body p { color: #4d4944; }

.frb-services { display: grid; grid-template-columns: 1fr 1.2fr; gap: 60px; align-items: center; max-width: 1180px; margin: 0 auto; }
.frb-services__img { overflow: hidden; aspect-ratio: 4 / 5; }
.frb-services__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.frb-services .frb-sec-head__title { text-align: left; margin-bottom: 26px; }
.frb-services__amenities { margin-bottom: 28px !important; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)) !important; }
.frb-services__facts { list-style: none !important; margin: 0 !important; padding: 0 !important; display: grid; gap: 12px; }
.frb-services__facts li { list-style: none !important; padding: 0 0 12px !important; border-bottom: 1px solid #efe9df; color: #4d4944; }
.frb-services__facts li::before { display: none !important; }
.frb-services__facts strong { display: block; font-size: 11px; letter-spacing: .18em; text-transform: uppercase; color: #86705a; margin-bottom: 2px; }

.frb-host { max-width: 760px; margin: 0 auto; text-align: center; }
.frb-host__quote { font-size: 21px; line-height: 1.6; margin: 0 0 26px; }
.frb-host__actions { display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: 14px 26px; margin: 0; }
.frb-host__link { color: inherit !important; text-decoration: none; border-bottom: 1px solid currentColor; }

.frb-story__cta { padding: 0 !important; border-top: 0 !important; }
.frb-cta { position: relative; min-height: 420px; display: grid; place-items: center; overflow: hidden; text-align: center; color: #fff; }
.frb-cta__img { position: absolute; inset: 0; }
.frb-cta__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.frb-cta__img::after { content: ''; position: absolute; inset: 0; background: linear-gradient(rgba(20, 17, 14, .45), rgba(20, 17, 14, .6)); }
.frb-cta__body { position: relative; z-index: 1; padding: 60px 24px; max-width: 640px; }
.frb-cta__body h2 { color: #fff !important; margin: 0 0 12px; padding: 0; font-size: 40px; line-height: 1.15; }
.frb-cta__body p { color: rgba(255, 255, 255, .9); margin: 0 0 24px; }

@media (max-width: 900px) {
	.frb-city-panel,
	.frb-services { grid-template-columns: 1fr; gap: 28px; }
	.frb-city-panel--reverse .frb-city-panel__img { order: 0; }
	.frb-story > section { padding: 60px clamp(20px, 5vw, 40px); }
	.frb-sec-head__title { font-size: 30px; }
	.frb-cta__body h2 { font-size: 30px; }
}

/* ---------- Mappa dell'alloggio ---------- */
.frb-map__title { margin: 0 0 24px; padding: 0; font-size: 36px; }
.frb-map__frame { position: relative; aspect-ratio: 16 / 7; border: 1px solid #e6dfd4; overflow: hidden; background: #f4f0ea; }
.frb-map__frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; filter: saturate(.75) sepia(.12); }
.frb-map__consent { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 18px; padding: 24px; text-align: center; background: #efe9df; }
.frb-map__consent p { max-width: 420px; margin: 0; font-size: 14px; line-height: 1.7; color: #5f5a52; }
.frb-map__frame.is-loaded .frb-map__consent { display: none; }
.frb-map__show,
.frb-consent__btn { min-width: 150px; padding: 12px 26px; border: 1px solid #a48b70; border-radius: 0; background: #a48b70; color: #fff; font: inherit; font-size: 11px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; cursor: pointer; transition: background .2s, color .2s; }
.frb-map__show:hover,
.frb-consent__btn:hover { background: #86705a; border-color: #86705a; }
.frb-map__link { display: inline-block; margin-top: 14px; font-size: 11px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: #86705a !important; text-decoration: none !important; border-bottom: 1px solid currentColor; }
.et_pb_row:has(.frb-map--empty),
.et_pb_section:has(.frb-map--empty) { display: none !important; }
@media (max-width: 767px) {
	.frb-map__frame { aspect-ratio: 4 / 3; }
	.frb-map__title { font-size: 28px; }
}

/* ---------- Menu a tendina disegnati dal sito (niente sfumature del sistema, es. Safari su Mac) ---------- */
.frb-field select,
.frb-guests select,
.frb-search select,
.frb-booking-widget select,
.frb-modal select,
.frb-contact-form select {
	-webkit-appearance: none !important;
	-moz-appearance: none !important;
	appearance: none !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23a48b70' stroke-width='1.4'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: right 12px center !important;
	background-size: 12px 8px !important;
	padding-right: 34px !important;
	box-shadow: none;
	cursor: pointer;
}
/* senza bordo (barra di ricerca, ospiti): freccia sul bordo destro */
.frb-guests select,
.frb-search--stacked .frb-field select {
	background-position: right 2px center !important;
	padding-right: 20px !important;
}

/* ---------- Banner dei cookie (Accetta / Rifiuta con lo stesso peso, come chiede il Garante) ---------- */
.frb-consent { position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 99999; display: flex; justify-content: center; pointer-events: none; }
.frb-consent[hidden] { display: none; }
.frb-consent__inner { pointer-events: auto; display: flex; align-items: center; gap: 28px; max-width: 980px; width: 100%; padding: 22px 28px; background: #fff; border: 1px solid #e6dfd4; border-top: 2px solid #a48b70; box-shadow: 0 18px 50px rgba(60, 50, 40, .16); }
.frb-consent__text { flex: 1; margin: 0; font-size: 14px; line-height: 1.7; color: #3c3a47; }
.frb-consent__text a { color: #86705a !important; text-decoration: underline; text-underline-offset: 3px; }
.frb-consent__actions { display: flex; gap: 12px; flex-shrink: 0; }
@media (max-width: 767px) {
	.frb-consent { left: 0; right: 0; bottom: 0; }
	.frb-consent__inner { flex-direction: column; align-items: stretch; gap: 16px; padding: 20px 16px calc(20px + env(safe-area-inset-bottom)); }
	.frb-consent__actions .frb-consent__btn { flex: 1; min-width: 0; }
}
