/* Federica Prestige Stay – impaginazione del tema.
   Colori, caratteri, pulsanti, schede e sezioni sono nel plugin FR Booking (assets/theme.css):
   qui ci sono solo la struttura della pagina, l'intestazione e il video in alto. */

/* ======================= Base ======================= */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body.fps {
	margin: 0;
	background: #fff;
	font-family: var(--pv-sans);
	font-size: 14px;
	font-weight: 500; /* come Divi: testo "medium" */
	line-height: 1.7em; /* come Divi: l'interlinea in px si eredita */
	color: var(--pv-ink);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
/* Regole di base "deboli" (:where = nessuna priorità): gli stili del plugin e dei blocchi vincono sempre */
:where(body.fps) img, :where(body.fps) video { max-width: 100%; }
:where(.fps-content) :where(.wp-block-image, figure) img { height: auto; }
:where(body.fps) a { color: var(--pv-taupe-dark); }
:where(body.fps) p { margin: 0 0 1em; }
:where(body.fps) :is(h1, h2, h3, h4, h5, h6) { margin: 0 0 .5em; padding-bottom: 10px; color: #333; font-weight: 500; line-height: 1em; }
:where(body.fps) h1 { font-size: 30px; }
:where(body.fps) h2 { font-size: 26px; }
:where(body.fps) h3 { font-size: 22px; }
:where(body.fps) h4 { font-size: 18px; }
.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap;
}
.fps-skip { position: absolute; left: -9999px; top: 0; z-index: 10000; background: #fff; padding: 10px 16px; }
.fps-skip:focus { left: 10px; top: 10px; }

/* Larghezza del contenuto: come le righe di Divi (80% dello schermo, massimo 1080px) */
:where(.fps-content) > :where(*:not(.alignfull):not(.wp-block-cover)) {
	width: 80%;
	max-width: 1080px;
	margin-left: auto;
	margin-right: auto;
}
:where(.fps-content) > :where(.alignwide) { max-width: 1240px; width: 90%; }
:where(.fps-content) > :where(.alignfull) { width: 100%; max-width: none; }

/* ======================= Intestazione ======================= */
body.fps .fps-header {
	position: sticky;
	top: 0;
	z-index: 9990;
	background: rgba(255, 255, 255, .97);
	border-bottom: 1px solid var(--pv-line);
	transition: background .4s var(--pv-ease), border-color .4s, box-shadow .4s;
}
body.fps.admin-bar .fps-header { top: 32px; }
.fps-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	width: 90%;
	max-width: 1240px;
	margin: 0 auto;
	padding: 18px 0;
	transition: padding .4s var(--pv-ease);
}
body.fps.frb-pv-scrolled .fps-header__inner { padding: 12px 0; }
body.fps.frb-pv-scrolled .fps-header { box-shadow: 0 8px 30px rgba(43, 39, 36, .06); }

body.fps #page-container a.fps-brand {
	flex: none;
	font-family: var(--pv-serif) !important;
	font-size: 21px;
	font-weight: 400;
	line-height: 1.13;
	letter-spacing: .02em;
	color: var(--pv-ink);
	text-decoration: none;
	white-space: nowrap;
	transition: color .3s;
}
body.fps #page-container a.fps-brand em { font-family: var(--pv-serif) !important; font-style: italic; color: var(--pv-taupe); }

.fps-nav { flex: 1; display: flex; justify-content: center; margin-top: 8px; }
.fps-menu { display: flex; flex-wrap: wrap; justify-content: center; margin: 0; padding: 0; list-style: none; }
.fps-menu > li { position: relative; display: block; padding: 0 14px; list-style: none; }
body.fps #page-container .fps-menu > li > a {
	display: inline-block;
	padding: 0 0 5px;
	font-family: var(--pv-serif) !important;
	font-size: 16.5px;
	font-weight: 400;
	line-height: 1.3;
	letter-spacing: .02em;
	color: var(--pv-ink);
	text-decoration: none;
	background-image: linear-gradient(currentColor, currentColor);
	background-repeat: no-repeat;
	background-position: 100% 100%;
	background-size: 0 1px;
	transition: background-size .45s var(--pv-ease), color .3s;
}
body.fps #page-container .fps-menu > li > a:hover,
body.fps #page-container .fps-menu > li.current-menu-item > a {
	background-size: 100% 1px;
	background-position: 0 100%;
}
.fps-menu .sub-menu {
	position: absolute;
	top: 100%;
	left: 0;
	min-width: 200px;
	margin: 0;
	padding: 10px 0;
	list-style: none;
	background: #fff;
	border-top: 2px solid var(--pv-taupe);
	box-shadow: 0 20px 40px -20px rgba(43, 39, 36, .3);
	opacity: 0;
	visibility: hidden;
	transition: opacity .25s;
}
.fps-menu li:hover > .sub-menu,
.fps-menu li:focus-within > .sub-menu { opacity: 1; visibility: visible; }
.fps-menu .sub-menu a { display: block; padding: 6px 18px; color: var(--pv-ink); text-decoration: none; }

body.fps .frb-lang { margin-left: 0; }

/* "Prenota": stesso stile del pulsante di prima (Playfair corsivo, marrone chiaro) */
body.fps #page-container a.fps-cta {
	flex: none;
	margin-right: 24px;
	display: inline-block;
	padding: 10px 26px;
	background: var(--pv-taupe);
	border: 1px solid var(--pv-taupe);
	color: #fff;
	font-family: var(--pv-serif) !important;
	font-size: 16.5px;
	font-style: italic;
	font-weight: 400;
	line-height: 1.2;
	letter-spacing: .02em;
	text-decoration: none;
	transition: background .35s var(--pv-ease), border-color .35s;
}
body.fps #page-container a.fps-cta:hover { background: var(--pv-taupe-dark); border-color: var(--pv-taupe-dark); }

/* Pulsante del menu sul telefono */
.fps-burger {
	display: none;
	width: 40px;
	height: 40px;
	margin: 0;
	padding: 0;
	background: none;
	border: 0;
	cursor: pointer;
	color: var(--pv-ink);
}
.fps-burger__lines,
.fps-burger__lines::before,
.fps-burger__lines::after {
	display: block;
	width: 22px;
	height: 1.5px;
	margin: 0 auto;
	background: currentColor;
	transition: transform .3s, opacity .3s;
}
.fps-burger__lines { position: relative; }
.fps-burger__lines::before,
.fps-burger__lines::after { content: ''; position: absolute; left: 0; }
.fps-burger__lines::before { top: -7px; }
.fps-burger__lines::after { top: 7px; }
.fps-header.is-open .fps-burger__lines { background: transparent; }
.fps-header.is-open .fps-burger__lines::before { transform: translateY(7px) rotate(45deg); }
.fps-header.is-open .fps-burger__lines::after { transform: translateY(-7px) rotate(-45deg); }

/* ======================= Pagine con il video in alto ======================= */
/* Intestazione trasparente sopra il video, bianca quando si scorre */
body.fps.frb-hero .fps-header { position: fixed; left: 0; right: 0; }
body.fps.frb-hero:not(.frb-pv-scrolled) .fps-header {
	background: linear-gradient(rgba(20, 17, 14, .55), rgba(20, 17, 14, .15));
	border-bottom-color: rgba(255, 255, 255, .25);
	-webkit-backdrop-filter: blur(2px);
	backdrop-filter: blur(2px);
}
body.fps.frb-hero:not(.frb-pv-scrolled) #page-container a.fps-brand,
body.fps.frb-hero:not(.frb-pv-scrolled) #page-container a.fps-brand em,
body.fps.frb-hero:not(.frb-pv-scrolled) #page-container .fps-menu > li > a,
body.fps.frb-hero:not(.frb-pv-scrolled) .fps-burger { color: #fff; }
body.fps.frb-hero:not(.frb-pv-scrolled) #page-container a.fps-brand,
body.fps.frb-hero:not(.frb-pv-scrolled) #page-container .fps-menu > li > a,
body.fps.frb-hero:not(.frb-pv-scrolled) #page-container a.fps-cta { text-shadow: 0 1px 12px rgba(0, 0, 0, .35); }
body.fps.frb-hero:not(.frb-pv-scrolled) #page-container a.fps-cta {
	background: transparent;
	border-color: rgba(255, 255, 255, .8);
}

/* Blocco "Copertina" con video: a tutta larghezza, titolo al centro */
body.fps .frb-hero.wp-block-cover {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: stretch;
	width: 100%;
	min-height: 100vh;
	margin: 0;
	padding: 90px 0 60px;
	overflow: hidden;
	background: #1c1a18;
}
body.fps .frb-hero::before,
body.fps .frb-hero::after {
	content: '';
	position: absolute;
	left: 0;
	right: 0;
	z-index: 1;
	pointer-events: none;
}
body.fps .frb-hero::before { top: 0; height: 220px; background: linear-gradient(rgba(0, 0, 0, .45), transparent); }
body.fps .frb-hero::after { bottom: 0; height: 260px; background: linear-gradient(transparent, rgba(0, 0, 0, .35)); }
body.fps .frb-hero .wp-block-cover__video-background,
body.fps .frb-hero .wp-block-cover__image-background {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	z-index: 0;
}
body.fps .frb-hero .wp-block-cover__background { display: none; }
/* Niente pulsante ▶︎ del telefono sopra il video (quando la partenza automatica è bloccata si vede la foto) */
body.fps .wp-block-cover__video-background::-webkit-media-controls,
body.fps .wp-block-cover__video-background::-webkit-media-controls-panel,
body.fps .wp-block-cover__video-background::-webkit-media-controls-play-button,
body.fps .wp-block-cover__video-background::-webkit-media-controls-start-playback-button,
body.fps .wp-block-cover__video-background::-webkit-media-controls-overlay-play-button {
	display: none !important;
	-webkit-appearance: none;
	opacity: 0;
}
body.fps .frb-hero .wp-block-cover__inner-container {
	position: relative;
	z-index: 2;
	width: 94%;
	max-width: 2000px;
	margin: auto;
	color: #fff;
}
body.fps #page-container .frb-hero h1 {
	margin: 0;
	padding: 0 0 10px;
	font-size: 71px;
	line-height: 1.15 !important;
	letter-spacing: .01em !important;
	text-align: center;
	color: #fff !important;
	text-shadow: 0 2px 30px rgba(0, 0, 0, .25) !important;
	animation: frb-pv-hero 1.6s var(--pv-ease) both;
}
body.fps #page-container .frb-hero h1 em { font-style: italic; }

/* Barra del check-in a cavallo del video (la posizione esatta la calcola theme.js del plugin) */
body.fps .fps-content > .frb-hero-search { position: relative; z-index: 10; }
body.fps .frb-hero-search .frb-compat--search { margin: 0 auto 105px; }
body.fps:not(.home) .frb-hero-search .frb-compat--search { margin-bottom: 0 !important; }

/* Home: frase di benvenuto sotto la barra, con la lineetta */
body.fps #page-container .frb-welcome {
	max-width: 760px;
	margin: 0 auto 18px;
	padding: 0 0 31px;
	font-size: 30px;
	line-height: 1.15 !important;
	text-align: center;
	color: #333;
}
body.fps .fps-content > .frb-welcome-line {
	width: 120px;
	max-width: 120px;
	height: 0;
	margin: 0 auto;
	border: 0;
	border-top: 1px solid var(--pv-taupe);
	opacity: .7;
	background: none;
}

/* Sezioni del plugin: stessi spazi che avevano dentro Divi */
body.fps .fps-content > .frb-collection--home { margin-top: 74px; }
body.fps .fps-content > .frb-collection--alloggi,
body.fps .fps-content > .frb-collection--ricerca { margin-top: 108px; }
body.fps .fps-content > .frb-results-page { padding-top: 81px; }
body.fps .fps-content > .frb-collection--alloggi,
body.fps .fps-content > .frb-collection--ricerca { margin-bottom: 81px; }
body.fps .frb-legal > :last-child { margin-bottom: 0; }
body.fps .fps-content > .frb-story { width: 100%; max-width: none; margin-top: 81px; }

/* ======================= Pagine senza video (Contatti, Termini, Privacy...) ======================= */
.fps-page-head { width: 80%; max-width: 1080px; margin: 0 auto; padding: 70px 0 40px; text-align: center; }
body.fps #page-container .fps-page-title { margin: 0; font-size: 44px; color: var(--pv-ink); }
.fps-page-head::after { content: ''; display: block; width: 60px; height: 1px; margin: 22px auto 0; background: var(--pv-taupe); }
.fps-content { padding-bottom: 80px; }
.fps-content--hero { padding-bottom: 0; }
.fps-center { text-align: center; }

/* Schermi medi: menu più compatto, così resta su una riga */
@media (min-width: 981px) and (max-width: 1180px) {
	.fps-header__inner { gap: 14px; width: 94%; }
	.fps-menu > li { padding: 0 8px; }
	body.fps #page-container .fps-menu > li > a { font-size: 15px; letter-spacing: 0; white-space: nowrap; }
	body.fps #page-container a.fps-brand { font-size: 19px; }
	body.fps #page-container a.fps-cta { margin-right: 0; padding: 9px 18px; font-size: 15px; }
	body.fps .frb-lang a, body.fps .frb-lang span { padding: 4px 4px; letter-spacing: .08em; }
}

/* ======================= Telefono e tablet ======================= */
@media (max-width: 980px) {
	.fps-header__inner { position: relative; flex-wrap: nowrap; gap: 8px; }
	body.fps #page-container a.fps-brand { font-size: 18px; }
	.fps-burger { display: block; order: 4; flex: none; width: 34px; margin-right: -6px; }
	body.fps #page-container a.fps-cta { display: none; }
	/* Menu del telefono: si apre sotto l'intestazione, a tutta larghezza */
	.fps-nav {
		position: absolute;
		top: 100%;
		left: -5.6%;
		right: -5.6%;
		display: none;
		margin: 0;
		padding: 8px 0 14px;
		background: #fff;
		border-top: 2px solid var(--pv-taupe);
		box-shadow: 0 20px 30px -20px rgba(43, 39, 36, .3);
	}
	.fps-header.is-open .fps-nav { display: block; }
	.fps-menu { display: block; }
	.fps-menu > li { padding: 0; }
	body.fps #page-container .fps-menu > li > a,
	body.fps.frb-hero:not(.frb-pv-scrolled) #page-container .fps-menu > li > a {
		display: block;
		padding: 10px 5.5%;
		font-family: var(--pv-sans) !important;
		font-size: 13px;
		letter-spacing: .14em;
		text-transform: uppercase;
		color: var(--pv-ink);
		text-shadow: none;
		background: none;
	}
	.fps-menu .sub-menu { position: static; opacity: 1; visibility: visible; box-shadow: none; border: 0; padding: 0 0 0 16px; }
	body.fps .frb-lang { margin-left: auto; }
	.fps-page-head { padding-top: 70px; }
	/* titolo sul video: colonna più stretta, come Divi su tablet e telefono */
	body.fps .frb-hero .wp-block-cover__inner-container { width: 80%; }
}
@media (max-width: 782px) {
	body.fps.admin-bar .fps-header { top: 46px; }
}
@media (max-width: 767px) {
	body.fps .frb-hero.wp-block-cover { padding-top: 110px; }
	body.fps #page-container .frb-hero h1,
	body.fps #page-container .frb-hero h1 * { font-size: 40px !important; line-height: 1.12 !important; }
	body.fps #page-container .frb-welcome { font-size: 23px; }
	body.fps .frb-hero-search .frb-compat--search { margin-bottom: 64px; }
}
@media (prefers-reduced-motion: reduce) {
	body.fps #page-container .frb-hero h1 { animation: none; }
}

/* ======================= Pagina della casa ======================= */
/* Icone (Font Awesome, le stesse che mostrava Divi) */
@font-face {
	font-family: 'FPS Icons';
	src: url('fonts/fa-solid-900.woff2') format('woff2'), url('fonts/fa-solid-900.woff') format('woff');
	font-weight: 900;
	font-style: normal;
	font-display: block;
}
.fps-casa [class*="fps-i-"]::before {
	font-family: 'FPS Icons';
	font-weight: 900;
	font-style: normal;
	color: var(--pv-taupe);
	-webkit-font-smoothing: antialiased;
}
.fps-i-f773::before { content: "\f773"; } /* acqua */
.fps-i-f5ca::before { content: "\f5ca"; } /* ombrellone */
.fps-i-f0c0::before { content: "\f0c0"; } /* persone */
.fps-i-f3c5::before { content: "\f3c5"; } /* posizione */
.fps-i-f236::before { content: "\f236"; } /* letto */
.fps-i-f4b8::before { content: "\f4b8"; } /* divano */
.fps-i-f546::before { content: "\f546"; }
.fps-i-f51d::before { content: "\f51d"; }
.fps-i-f2e7::before { content: "\f2e7"; } /* posate */
.fps-i-f185::before { content: "\f185"; } /* sole */
.fps-i-f238::before { content: "\f238"; } /* treno */
.fps-i-f06e::before { content: "\f06e"; } /* vista */
.fps-i-f13d::before { content: "\f13d"; } /* ancora */
.fps-i-f21a::before { content: "\f21a"; } /* nave */
.fps-i-f554::before { content: "\f554"; } /* passeggiata */
.fps-i-f578::before { content: "\f578"; } /* pesce */
.fps-i-f0f4::before { content: "\f0f4"; } /* caffè */
.fps-i-f291::before { content: "\f291"; } /* spesa */

/* Barra "Verifica disponibilità" in alto (fascia beige) */
body.fps .fps-casa-topbar { width: 80%; max-width: 1080px; margin: 0 auto; }

/* Colonna del contenuto: come le righe di Divi (80% della sezione da 1080px = 864px) */
body.fps .fps-casa > .fps-casa-hero,
body.fps .fps-casa > .fps-casa-listing,
body.fps .fps-casa > .fps-casa-features,
body.fps .fps-casa > .frb-map {
	width: min(64vw, 864px);
	margin-left: auto;
	margin-right: auto;
}
body.fps .fps-casa .wp-block-columns {
	display: grid;
	gap: 48px;
	margin: 0;
	flex-wrap: nowrap;
}
body.fps .fps-casa .wp-block-column { min-width: 0; }
body.fps .fps-casa :where(p) { margin: 0; }

/* Titoli e testi */
body.fps #page-container .fps-casa-title {
	margin: 0;
	padding: 0 0 10px;
	font-size: 62px;
	line-height: 1.15 !important;
	letter-spacing: -.005em;
	color: #0e0c19;
}
body.fps .fps-casa-lead { margin-top: 24px !important; font-size: 16px; font-weight: 700; line-height: 28px; color: #3c3a47; }
body.fps #page-container .fps-casa-city,
body.fps #page-container .fps-casa-h3 {
	margin: 0;
	padding: 0 0 10px;
	font-size: 32px;
	line-height: 1.3 !important;
	letter-spacing: -.005em;
	color: #0e0c19;
}
body.fps #page-container .fps-casa-h2 {
	margin: 0;
	padding: 0 0 10px;
	font-size: 50px;
	line-height: 1.15 !important;
	letter-spacing: -.005em;
	color: #0e0c19;
}
body.fps .fps-casa-listing .wp-block-column p { padding-bottom: 16px; font-size: 16px; line-height: 28px; color: #3c3a47; }
body.fps .fps-casa-listing .wp-block-column p:last-child { padding-bottom: 0; }
body.fps #page-container .fps-casa-listing .fps-casa-h3 { margin: 24px 0 9px; }

/* Pulsanti "Scopri la casa" / "Prenota" */
body.fps .fps-casa-btn .wp-block-button__link {
	display: inline-block;
	padding: 12px 28px;
	border: 0;
	border-radius: 0;
	background: var(--pv-taupe);
	color: #fff;
	font-size: 11.5px;
	font-weight: 700;
	line-height: 1.7;
	letter-spacing: .2em;
	text-transform: uppercase;
	text-decoration: none;
	transition: background .35s var(--pv-ease), letter-spacing .35s;
}
body.fps .fps-casa-btn .wp-block-button__link:hover { background: var(--pv-taupe-dark); letter-spacing: .24em; }
body.fps .fps-casa .wp-block-buttons { margin: 0; }

/* Foto della casa */
body.fps .fps-casa .frb-gallery--casa { box-shadow: 6px 6px 18px rgba(0, 0, 0, .3); }
body.fps .fps-casa .frb-gallery--piccola { height: 426px; }
body.fps .fps-casa .frb-gallery--grande { height: 448px; }
body.fps .fps-casa .frb-gallery--casa .frb-gallery__count { display: none; }

/* 1. In alto: titolo, frase, caratteristiche con icona, pulsante | foto */
body.fps .fps-casa-hero { padding: 80px 0 88px; }
body.fps .fps-casa-hero .wp-block-columns { grid-template-columns: 1fr 1fr; align-items: end; }
body.fps .fps-casa-hero .wp-block-column { align-self: end; }
body.fps .fps-features { margin-top: 24px; }
body.fps .fps-features .fps-feature {
	display: flex;
	align-items: flex-start;
	gap: 20px;
	min-height: 32px;
	margin: 0 0 23.75px;
	font-family: var(--pv-serif) !important;
	font-size: 14px;
	line-height: 21px;
	color: #0e0c19;
}
body.fps .fps-features .fps-feature::before { flex: none; width: 27px; font-size: 24px; line-height: 24px; }

/* 2. La casa: foto grande + testi | riquadro "In breve"; sotto, 4 punti forti */
body.fps .fps-casa-listing { padding: 150px 0 54px; }
body.fps .fps-casa-listing .wp-block-columns:not(.fps-highlights) { grid-template-columns: 35fr 16fr; margin-top: 37px; align-items: start; }
body.fps .fps-casa-listing .frb-gallery--grande { margin-bottom: 0; }
body.fps .fps-inbreve {
	padding: 30px 30px 37px;
	background: #fff;
	box-shadow: 0 24px 72px -12px rgba(0, 0, 0, .12);
}
body.fps #page-container .fps-inbreve-title {
	margin: 0;
	padding: 0 0 10px;
	font-size: 14px;
	line-height: 1.4 !important;
	letter-spacing: 1px;
	text-transform: uppercase;
	color: var(--pv-gray);
}
body.fps .fps-inbreve .frb-compat { margin: 0 0 23.75px; }
body.fps .fps-casa .fps-highlights.wp-block-columns {
	margin-top: 27px;
	padding: 27px 0 27px;
	border-top: 2px solid rgba(0, 0, 0, .12);
}
body.fps .fps-highlights.wp-block-columns { grid-template-columns: repeat(4, 1fr); }

/* Punto forte con icona (sopra) */
body.fps .fps-blurb::before { display: block; font-size: 32px; line-height: 32px; margin-bottom: 30px; }
body.fps .fps-highlights .fps-blurb::before { text-align: center; }
body.fps #page-container .fps-blurb h4 {
	margin: 0;
	padding: 0 0 10px;
	font-family: var(--pv-sans) !important; /* come Divi: titoli dei riquadri con icona nel carattere del testo */
	font-weight: 500 !important;
	font-size: 18px;
	line-height: 1.4 !important;
	letter-spacing: -.005em;
	color: #0e0c19;
}
body.fps .fps-blurb p { font-size: 14px; line-height: 24.5px; color: #3c3a47; }

/* 3. Calendario e prenotazione, su fondo beige */
body.fps .fps-casa > .fps-casa-avail {
	width: 80%;
	max-width: 1080px;
	margin: 0 auto;
	padding: 159px 54px 91px;
	background: var(--pv-sand-light);
}
body.fps #page-container .fps-avail-title {
	margin: 0 0 40px !important;
	font-family: var(--pv-serif) !important;
	font-size: 42px;
	font-weight: 400;
	line-height: 1.2;
	text-align: center;
	color: var(--pv-ink);
}
body.fps .fps-avail-title::before {
	content: var(--frb-avail-eyebrow, 'Disponibilità e prezzi');
	display: block;
	margin-bottom: 12px;
	font-family: var(--pv-sans) !important;
	font-size: 11px;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: .24em;
	text-transform: uppercase;
	color: var(--pv-taupe-dark);
}
body.fps .fps-avail-title::after { content: ''; display: block; width: 60px; height: 1px; margin: 24px auto 0; background: var(--pv-taupe); }

/* 4. Cosa trovi in casa: 3 punti con icona + servizi */
body.fps .fps-casa-features { padding: 81px 0 81px; }
body.fps .fps-casa-features .wp-block-columns { grid-template-columns: repeat(3, 1fr); margin-top: 63px; }
body.fps .fps-casa-dintorni { border-top: 1px solid rgba(164, 139, 112, .25); }
body.fps .fps-casa-dintorni .wp-block-columns { row-gap: 56px; }
body.fps .fps-casa-features .fps-blurb p { font-size: 16px; line-height: 28px; }
body.fps .fps-casa-features .frb-amenities { margin-top: 93px; }

body.fps .fps-casa > .frb-map { padding: 0 0 81px; }
body.fps .fps-casa .frb-map--empty { display: none; }
/* i gruppi dei blocchi hanno un contenitore interno: nessuno spazio in più */
body.fps .fps-casa .wp-block-group__inner-container > :first-child { margin-top: 0; }

/* Pagina della casa su tablet e telefono (colonne una sotto l'altra, misure come Divi) */
@media (max-width: 980px) {
	body.fps .fps-casa .wp-block-columns,
	body.fps .fps-casa-hero .wp-block-columns,
	body.fps .fps-casa-listing .wp-block-columns:not(.fps-highlights),
	body.fps .fps-casa-features .wp-block-columns { grid-template-columns: 1fr; gap: 30px; }
	body.fps .fps-casa .fps-highlights.wp-block-columns { grid-template-columns: 1fr 1fr; gap: 30px 28px; margin-top: 30px; padding: 30px 0; }
	body.fps .fps-casa-hero { padding: 80px 0 80px; }
	body.fps .fps-casa-hero .wp-block-column:last-child { padding-top: 164px; } /* come Divi: spazio prima della foto */
	.fps-header__inner { padding: 14.5px 0; }
	body.fps #page-container .fps-casa-title { font-size: 40px; }
	body.fps .fps-casa-lead { margin-top: 30px !important; font-size: 15px; line-height: 26.25px; }
	body.fps .fps-features { margin-top: 30px; }
	body.fps .fps-features .fps-feature { margin-bottom: 30px; }
	body.fps .fps-casa .frb-gallery--piccola,
	body.fps .fps-casa .frb-gallery--grande { height: 441px; }
	body.fps .fps-casa-listing { padding: 149px 0 50px; }
	body.fps .fps-casa-listing .wp-block-columns:not(.fps-highlights) { margin-top: 40px; }
	body.fps #page-container .fps-casa-city,
	body.fps #page-container .fps-casa-h3 { font-size: 22px; }
	body.fps #page-container .fps-casa-listing .fps-casa-h3 { margin: 30px 0 10px; }
	body.fps .fps-casa-listing .wp-block-column p { padding-bottom: 15px; font-size: 15px; line-height: 26.25px; }
	body.fps .fps-inbreve { padding: 30px; }
	body.fps #page-container .fps-blurb h4 { font-size: 15px; }
	body.fps .fps-blurb p,
	body.fps .fps-casa-features .fps-blurb p { font-size: 15px; line-height: 26.25px; }
	body.fps .fps-casa > .fps-casa-avail { padding: 159px 32px 90px; }
	body.fps #page-container .fps-casa-h2 { font-size: 28px; }
	body.fps .fps-casa-features { padding: 80px 0 80px; }
	body.fps .fps-casa-features .wp-block-columns { margin-top: 70px; }
	body.fps .fps-casa-features .frb-amenities { margin-top: 41px; }
}
@media (max-width: 767px) {
	body.fps .fps-casa .fps-highlights.wp-block-columns { grid-template-columns: 1fr; }
	body.fps #page-container .fps-casa-title { font-size: 24px; }
	body.fps .fps-casa-lead { font-size: 14px; line-height: 24.5px; }
	body.fps .fps-casa .frb-gallery--piccola,
	body.fps .fps-casa .frb-gallery--grande { height: 404px; }
	body.fps #page-container .fps-casa-city,
	body.fps #page-container .fps-casa-h3 { font-size: 17px; }
	body.fps .fps-casa-listing .wp-block-column p { padding-bottom: 14px; font-size: 14px; line-height: 24.5px; }
	body.fps .fps-inbreve { padding: 20px; }
	body.fps #page-container .fps-blurb h4 { font-size: 13px; }
	body.fps .fps-blurb p,
	body.fps .fps-casa-features .fps-blurb p { font-size: 14px; line-height: 24.5px; }
	body.fps .fps-casa > .fps-casa-avail { width: 80%; padding: 149px 15.5px 56px; }
	body.fps .fps-casa-hero .wp-block-column:last-child { padding-top: 167px; }
	body.fps #page-container .fps-avail-title { font-size: 30px; }
	body.fps #page-container .fps-casa-h2 { font-size: 20px; }
}

/* Città sopra la foto grande: sempre centrata */
body.fps #page-container .fps-casa-city { text-align: center; }
body.fps .fps-casa-listing .wp-block-column p.fps-casa-note { margin-top: 6px; padding: 14px 18px; background: var(--pv-sand-light); border-left: 2px solid var(--pv-taupe); font-size: 14.5px; line-height: 24px; }
