/* ========================================
   Radici Casa Vacanze — Base Styles
   VillaBliss-inspired design system
   v1.8.8
   ======================================== */

/* Core variables (fallback — theme.json applies these via CSS custom props) */
:root {
	--wp--preset--color--ink: #26180F;
	--wp--preset--color--brown: #49382C;
	--wp--preset--color--gold: #FDD17C;
	--wp--preset--color--stone: #514941;
	--wp--preset--color--border-light: #D6D4C9;
	--wp--preset--color--cream: #F4F4EA;
	--wp--preset--color--white: #FFFFFF;
	--wp--preset--color--muted: #8A7E73;
	--wp--preset--color--error: #A52A2A;
	--wp--preset--color--success: #2F6B45;

	--wp--preset--shadow--sm: 0 1px 3px rgba(38, 24, 15, 0.06);
	--wp--preset--shadow--md: 0 4px 16px rgba(38, 24, 15, 0.08);
	--wp--preset--shadow--lg: 0 8px 32px rgba(38, 24, 15, 0.10);
}

/* ========================================
   Global — Prevent horizontal scrollbar
   ======================================== */
html {
	overflow-x: hidden;
}

/* 2026-08-26 — S21: il parallax dell'hero (Motion scale 1→1.06) lo rende più
   largo del viewport durante lo scroll. Su Chrome Android il LAYOUT viewport
   si espande alla larghezza del contenuto → barra di scroll orizzontale
   (html{overflow-x:hidden} NON basta lì: l'espansione avviene a monte).
   Clipping <main> (l'hero è il suo primo figlio) elimina l'overflow alla
   fonte. Sticky header e sticky CTA sono FUORI da main → non vengono toccati.
   `clip` non crea scroll container (a differenza di `hidden`); `hidden` resta
   come fallback per browser vecchi. */
@media (max-width: 782px) {
	main {
		overflow-x: hidden;
		overflow-x: clip;
	}
}

/* Prevent double scrollbar — only html should scroll vertically */
.wp-site-blocks {
	overflow-y: visible !important;
}

/* ========================================
   Typography
   ======================================== */
body {
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}

/* Text length constraint */
.wp-block-post-content,
.entry-content,
.text-container {
	max-width: 65ch;
}

/* ========================================
   Links
   ======================================== */
a {
	transition: color 0.2s ease;
	text-decoration: underline;
	text-underline-offset: 2px;
}

a:hover {
	text-decoration: none;
}

/* Navigation links — readable, no underline by default */
.wp-block-navigation a {
	text-decoration: none;
	font-size: 0.9375rem;
	font-weight: 500;
}

.wp-block-navigation a:hover {
	opacity: 0.7;
	text-decoration: none;
}

/* ========================================
   Buttons — pill shape (100px radius)
   ======================================== */
.wp-block-button__link {
	transition: background-color 0.25s ease, transform 0.2s ease, box-shadow 0.2s ease;
	text-decoration: none;
	border-radius: 100px !important;
	letter-spacing: 0.02em;
}

.wp-block-button__link:hover {
	transform: translateY(-2px);
	box-shadow: var(--wp--preset--shadow--md);
}

.wp-block-button.is-style-outline .wp-block-button__link {
	background: transparent !important;
	border: 1px solid var(--wp--preset--color--ink);
	color: var(--wp--preset--color--ink) !important;
}

.wp-block-button.is-style-outline .wp-block-button__link:hover {
	background: var(--wp--preset--color--ink) !important;
	color: var(--wp--preset--color--white) !important;
	transform: translateY(-2px);
}

/* Outline buttons on dark cover/hero — white variant */
.wp-block-cover .wp-block-button.is-style-outline .wp-block-button__link,
.has-white-color .wp-block-button.is-style-outline .wp-block-button__link {
	border-color: rgba(255, 255, 255, 0.8) !important;
	color: #fff !important;
}

.wp-block-cover .wp-block-button.is-style-outline .wp-block-button__link:hover,
.has-white-color .wp-block-button.is-style-outline .wp-block-button__link:hover {
	background: rgba(255, 255, 255, 0.15) !important;
	color: #fff !important;
}

/* Gold variant for primary CTA */
.wp-block-button.is-style-gold .wp-block-button__link,
.wp-block-button.style-gold .wp-block-button__link {
	background: var(--wp--preset--color--gold) !important;
	color: var(--wp--preset--color--ink) !important;
}

/* ========================================
   Cover / Hero
   ======================================== */
.wp-block-cover {
	position: relative;
}

.wp-block-cover .wp-block-cover__inner-container {
	max-width: 1200px;
	margin: 0 auto;
}

/* Full-screen hero with readable card.
   2026-08-25: 100svh invece di 100dvh — svh è l'altezza del viewport
   PIÙ PICCOLO (URL bar visibile) e NON cambia quando la URL bar mobile
   si nasconde/mostra: con dvh l'hero si ridimensionava durante lo scroll
   e il contenuto sotto saltava (e la comparsa della sticky CTA oscillava). */
.hero-cover {
	min-height: 100vh !important;
	min-height: 100svh !important;
	margin-top: 0 !important;
	position: relative;
	overflow: hidden; /* Contiene particles e pseudo-elementi */
	max-width: 100vw !important;
}

/* Contiene l'immagine hero senza farla uscire dal viewport */
.hero-cover > img,
.hero-cover .wp-block-cover__image-background {
	max-width: 100vw !important;
}

/* Il main sulla home non deve avere gap/padding prima dell'hero */
body.home main,
body.is-front-page main {
	margin: 0 !important;
	padding: 0 !important;
	background: transparent !important;
}
body.home main > *:first-child,
body.is-front-page main > *:first-child {
	margin-top: 0 !important;
}

/* 2026-08-26 (v1.8.41) — hero DIETRO l'header trasparente su mobile.
   Con l'header sticky in flusso (Opzione C) e il wrapper template-part in
   display:contents (height:0 senza effetto), l'header occupa 75px e spinge
   l'hero a y=75: dietro la barra trasparente si vedeva il body nero.
   Margine negativo = l'hero sale a y=0 sotto l'header (z-index 100).
   Solo mobile: su desktop l'header è fixed (fuori flusso) e l'hero è già a 0. */
@media (max-width: 782px) {
	body.home main,
	body.is-front-page main {
		margin-top: -75px !important;
	}
}

/* Gradient scuro in cima per eliminare la "barra chiara" sotto header */
.hero-cover::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(
		to bottom,
		rgba(38, 24, 15, 0.78) 0%,
		rgba(38, 24, 15, 0.45) 20%,
		rgba(38, 24, 15, 0.10) 50%,
		transparent 70%
	);
	pointer-events: none;
	z-index: 1;
}

.hero-cover .wp-block-cover__background {
	z-index: 0 !important;
}

.hero-cover .wp-block-cover__inner-container {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 100vh;
	min-height: 100svh;
	padding: max(5rem, env(safe-area-inset-top)) 1.25rem 3rem;
	box-sizing: border-box;
	position: relative;
	z-index: 2;
	max-width: 100vw !important;
}

/* Glass card — sfondo più scuro per contrasto ottimale */
.hero-content {
	width: 100%;
	max-width: 640px;
	margin: 0 auto;
	padding: 1.25rem 1.5rem;
	background: rgba(38, 24, 15, 0.40);
	backdrop-filter: blur(16px) saturate(1.2);
	-webkit-backdrop-filter: blur(16px) saturate(1.2);
	border-radius: 24px;
	border: 1px solid rgba(255, 255, 255, 0.10);
	color: #fff;
	text-align: center;
	position: relative;
	overflow: hidden;
	--shimmer-x: -100%;
}

/* Shimmer animato — effetto luce che scorre sulla glass card */
.hero-content::before {
	content: '';
	position: absolute;
	inset: 0;
	z-index: 0;
	background: linear-gradient(
		105deg,
		transparent 35%,
		rgba(255, 255, 255, 0.03) 42%,
		rgba(255, 255, 255, 0.08) 45%,
		rgba(255, 255, 255, 0.03) 48%,
		transparent 55%
	);
	transform: translateX(var(--shimmer-x));
	pointer-events: none;
	border-radius: inherit;
}

.hero-content > .wp-block-heading,
.hero-content .wp-block-heading,
.hero-content p,
.hero-content .wp-block-button__link {
	color: #fff;
}

/* Outline button inside hero: ink text on solid white, always readable */
.hero-content .wp-block-button.is-style-outline .wp-block-button__link {
	background: #fff !important;
	color: var(--wp--preset--color--ink, #26180F) !important;
	border-color: #fff !important;
}
.hero-content .wp-block-button.is-style-outline .wp-block-button__link:hover {
	background: rgba(255,255,255,0.85) !important;
	color: var(--wp--preset--color--ink, #26180F) !important;
}

/* Label badge */
.hero-content .hero-label {
	display: inline-block;
	padding: 0.35rem 0.9rem;
	border: 1px solid rgba(253, 209, 124, 0.45);
	border-radius: 100px;
	letter-spacing: 0.12em;
	background: rgba(253, 209, 124, 0.12);
}

/* Facts badges container */
.hero-facts {
	margin: 0.25rem 0 0.5rem;
	justify-content: center;
	display: none;
}

/* Facts badges — slight gold tint for warmth */
.hero-facts > p {
	background: rgba(255, 255, 255, 0.10);
	padding: 0.25rem 0.6rem !important;
	border-radius: 100px;
	font-size: 0.75rem;
	color: #fff;
	margin: 0;
	border: 1px solid rgba(255, 255, 255, 0.08);
}

/* Hero logo */
.hero-logo-img img {
	filter: brightness(4) drop-shadow(0 0 14px rgba(255,255,255,0.55)) drop-shadow(0 3px 10px rgba(0,0,0,0.45));
	-webkit-filter: brightness(4) drop-shadow(0 0 14px rgba(255,255,255,0.55)) drop-shadow(0 3px 10px rgba(0,0,0,0.45));
	max-height: 88px;
	width: auto !important;
	display: block;
	margin: 0 auto;
}
@media (max-width: 782px) {
	.hero-logo-img img {
		max-height: 64px;
	}
}

/* Titolo hero: dimensione contenuta, mai troppo grande per la card */
.hero-content .hero-title,
.hero-content .has-xxxl-font-size {
	font-size: clamp(1.9rem, 3.4vw, 2.8rem) !important;
	line-height: 1.08 !important;
}

/* ========================================
   Hero — Mobile
   ======================================== */

@media (max-width: 782px) {
	.hero-cover .wp-block-cover__inner-container {
		/* 2026-08-26: padding-top FISSO — env(safe-area-inset-top) oscilla
		   con la URL bar su dispositivi con punch-hole (S21) e spostava
		   il contenuto dell'hero durante lo scroll. */
		padding: 2.5rem 0.75rem 1rem;
	}

	.hero-content {
		padding: 0.85rem 0.75rem;
		border-radius: 18px;
		max-width: 100%;
		gap: 0.5rem !important;
	}

	.hero-content .hero-label {
		padding: 0.25rem 0.6rem;
		font-size: 0.7rem;
		letter-spacing: 0.08em;
		margin-bottom: 0.35rem !important;
	}

	.hero-content .has-xxxl-font-size,
	.hero-content .hero-title {
		font-size: clamp(1.5rem, 5.5vw, 2.2rem) !important;
		margin-bottom: 0.5rem !important;
	}

	.hero-content .has-lg-font-size,
	.hero-content .hero-subtitle {
		font-size: 0.85rem !important;
		margin-bottom: 0.75rem !important;
	}

	.hero-facts {
		margin: 0 0 0.5rem;
		gap: 0.3rem !important;
	}

	.hero-facts > p {
		font-size: 0.65rem;
		padding: 0.2rem 0.4rem !important;
	}

	.hero-content .wp-block-buttons {
		gap: 0.5rem !important;
	}

	.hero-content .wp-block-button__link {
		padding: 0.6rem 1.25rem !important;
		font-size: 0.85rem !important;
	}

	/* Gold primary button on mobile */
	.hero-content .hero-btn-primary .wp-block-button__link {
		background: var(--wp--preset--color--gold, #FDD17C) !important;
		color: var(--wp--preset--color--ink, #26180F) !important;
		font-weight: 600;
	}
}

/* ========================================
   Headings — Cormorant serif, tight
   ======================================== */
h1, h2, h3, h4, h5, h6,
.wp-block-heading {
	font-family: "Cormorant", Georgia, serif;
	font-weight: 600;
	line-height: 1.1;
	color: var(--wp--preset--color--ink);
}

h1, .has-xxxl-font-size {
	letter-spacing: -0.02em;
}

h2 {
	letter-spacing: -0.01em;
}

/* ========================================
   Cards — VillaBliss-style raised cards
   ======================================== */
.wp-block-group.card-raised,
.card-raised {
	background: var(--wp--preset--color--white);
	border-radius: 16px;
	box-shadow: var(--wp--preset--shadow--md);
	padding: 2rem;
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.card-raised:hover {
	transform: translateY(-4px);
	box-shadow: var(--wp--preset--shadow--lg);
}

/* ========================================
   Gallery
   ======================================== */
.wp-block-gallery {
	--wp--style--unstable-gallery-gap: 0.5rem;
	gap: 0.5rem;
}

.wp-block-gallery .wp-block-image {
	overflow: hidden;
	border-radius: 12px;
}

.wp-block-gallery .wp-block-image img {
	transition: transform 0.5s ease;
}

.wp-block-gallery .wp-block-image:hover img {
	transform: scale(1.05);
}

/* ========================================
   Details / FAQ — minimal style
   ======================================== */
.wp-block-details {
	background: var(--wp--preset--color--white);
	border-radius: 12px;
	padding: 1.25rem 1.5rem;
	border: 1px solid var(--wp--preset--color--border-light);
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.wp-block-details[open] {
	border-color: var(--wp--preset--color--brown);
	box-shadow: var(--wp--preset--shadow--sm);
}

.wp-block-details summary {
	font-weight: 500;
	color: var(--wp--preset--color--ink);
	cursor: pointer;
	font-family: "Outfit", system-ui, sans-serif;
	font-size: 1rem;
}

.wp-block-details summary::-webkit-details-marker {
	color: var(--wp--preset--color--brown);
}

.wp-block-details[open] summary {
	color: var(--wp--preset--color--brown);
}

.wp-block-details > p {
	margin-top: 0.75rem;
	font-size: var(--wp--preset--font-size--sm);
	color: var(--wp--preset--color--stone);
	line-height: 1.6;
}

/* ========================================
   Header
   ======================================== */

/* Default: sticky solid cream+blur */
.site-header {
	z-index: 100;
	position: sticky;
	top: 0;
	background: rgba(244, 244, 234, 0.92) !important;
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	box-shadow: 0 1px 0 rgba(38, 24, 15, 0.06);
	transition: background-color 0.4s ease, box-shadow 0.4s ease;
}

body.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) { body.admin-bar .site-header { top: 46px; } }

.wp-site-blocks { padding-top: 0; }
.wp-site-blocks > .wp-block-template-part:first-child { display: contents; }

/* ========================================
   HOME PAGE: HERO FULL SCREEN — ZERO BARRIERS
   ======================================== */

/* Body nero, così nessun "bianco" traspare */
/* 2026-08-25: padding-bottom ESCLUSO dal reset su mobile — serve spazio statico
   per la sticky CTA (72px+safe-area). Il reset totale azzerava anche quello,
   e il cambio di altezza del body all'apparire della sticky bar faceva
   saltare l'header sticky e il pulsante menù. */
body.home,
body.is-front-page,
body.home body,
body.is-front-page body {
	background: #000 !important;
	margin: 0 !important;
	padding-top: 0 !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
}

/* Desktop: spazio per la booking bar sticky in fondo (96px, vedi animations.css) */
@media (min-width: 782px) {
	body.home,
	body.is-front-page {
		padding-bottom: 96px !important;
	}
}

/* TUTTO ciò che sta prima del <main> scompare */
body.home .wp-site-blocks,
body.is-front-page .wp-site-blocks {
	background: transparent !important;
	margin: 0 !important;
	padding: 0 !important;
}

/* 2026-08-26 — sticky universale: lo spazio in basso va su .wp-site-blocks
   (il containing block dello sticky), NON sul body. Così .wp-site-blocks
   copre l'intera area scrollabile: lo sticky header resta agganciato per
   TUTTO lo scroll e la sticky CTA (ultimo figlio, in flusso) pure.
   Solo la safe-area: la barra in flusso occupa già il suo spazio.
   (Regola DOPO il reset padding:0 qui sopra, altrimenti la perde.) */
@media (max-width: 782px) {
	body.home .wp-site-blocks,
	body.is-front-page .wp-site-blocks {
		padding-bottom: env(safe-area-inset-bottom, 0px) !important;
	}
}

/* Il wrapper template-part DELL'HEADER: altezza zero così non occupa spazio,
   ma resta nel DOM per JS nav.
   2026-08-26: SOLO l'header — il footer template-part DEVE conservare la sua
   altezza: .wp-site-blocks è il containing block degli sticky (header e CTA)
   e deve coprire TUTTA la pagina, altrimenti a fondo pagina gli sticky
   scollano via. (height:0 + overflow:visible sul footer faceva sì che il suo
   contenuto traboccasse oltre .wp-site-blocks.) */
body.home .wp-site-blocks > header.wp-block-template-part,
body.is-front-page .wp-site-blocks > header.wp-block-template-part {
	background: transparent !important;
	margin: 0 !important;
	padding: 0 !important;
	border: none !important;
	box-shadow: none !important;
	height: 0 !important;
	overflow: visible !important;
}

/* Header: posizionato sopra l'hero, completamente invisibile.
   2026-08-25: SEMPRE position:fixed (tutti i viewport) — così `.is-stuck`
   NON cambia mai la posizione dell'header (né altezza né icona menù):
   prima era absolute (doc-top) → fixed (viewport-top) e su alcuni browser
   il passaggio si percepiva come "altezza minore + icona che si sposta a
   destra" quando compariva is-stuck. Con fixed in entrambi gli stati,
   .is-stuck tocca solo sfondo/colori. */
body.home .site-header,
body.is-front-page .site-header {
	position: fixed !important;
	inset: 0 auto auto 0 !important;
	width: 100% !important;
	background: transparent !important;
	backdrop-filter: none !important;
	-webkit-backdrop-filter: none !important;
	box-shadow: none !important;
	border: none !important;
	padding: 0 !important;
	margin: 0 !important;
}

/* Annulla il layout-flow gap */
body.home .site-header.is-layout-flow > * + *,
body.is-front-page .site-header.is-layout-flow > * + * {
	margin-block-start: 0 !important;
}

/* Header dopo lo scroll */
body.home .site-header.is-stuck,
body.is-front-page .site-header.is-stuck {
	position: fixed !important;
	background: rgba(244, 244, 234, 0.96) !important;
	backdrop-filter: blur(12px) !important;
	-webkit-backdrop-filter: blur(12px) !important;
	box-shadow: 0 1px 0 rgba(38, 24, 15, 0.06) !important;
}

/* 2026-08-25 — RICOSTRUZIONE HEADER MOBILE (solo home):
   Barra SEMPRE fissa, SEMPRE cream solido, altezza costante (75px).
   Niente effetto transparent-over-hero su mobile e nessun cambio di
   posizione/sfondo allo scroll: .is-stuck non ha effetto visivo qui.
   Il desktop (trasparente→cream) resta INVARIATO.
   (NOTA: provato anche position:sticky, ma a fondo pagina l'header scolla
   via: .wp-site-blocks è più corto del documento — lightbox/skip-link sotto.) */
@media (max-width: 782px) {
	body.home .site-header,
	body.is-front-page .site-header,
	body.home .site-header.is-stuck,
	body.is-front-page .site-header.is-stuck,
	body.home .site-header:not(.is-stuck),
	body.is-front-page .site-header:not(.is-stuck) {
		/* 2026-08-26 — OPZIONE C: position:STICKY invariata (zero salti di
		   layout). Lo SFONDO è gestito dagli stati :not(.is-stuck)/.is-stuck
		   più sotto: trasparente sull'hero → cream allo scroll, solo colore.
		   Qui niente background: solo proprietà che NON cambiano mai. */
		position: sticky !important;
		top: 0 !important;
		z-index: 100 !important;
		backdrop-filter: none !important;
		-webkit-backdrop-filter: none !important;
		border: none !important;
		/* 2026-08-26: NIENTE env(safe-area-inset-top): su Samsung S21 (punch-hole)
		   la safe-area oscilla 0↔~90px quando la URL bar si nasconde e l'header
		   saltava 75↔165px. Logo e hamburger stanno ai LATI (mai sotto il foro
		   centrale), quindi il padding non serve. */
		padding: 0 !important;
		padding-bottom: 0 !important;
		margin: 0 !important;
	}
}

/* iOS SOLO: qui env(safe-area-inset-top) è COSTANTE (non oscilla con la URL
   bar come su Android). Con viewport-fit=cover il contenuto va sotto la
   notch/status bar: il padding mantiene logo/hamburger sotto di essa.
   Su desktop Safari env=0 → nessun effetto. (@supports -webkit-touch-callout
   è il selettore de-facto per iOS Safari.) */
@supports (-webkit-touch-callout: none) {
	body.home .site-header,
	body.is-front-page .site-header {
		padding-top: env(safe-area-inset-top, 0px) !important;
	}
}

/* NESSUN padding/bordo/ombra sull' header e suoi discendenti diretti nella home —
   NON toccare i figli profondi o il responsive container del menu. */
body.home .site-header:not(.is-stuck),
body.is-front-page .site-header:not(.is-stuck),
body.home .site-header:not(.is-stuck) > div,
body.is-front-page .site-header:not(.is-stuck) > div {
	background: transparent !important;
	border: none !important;
	box-shadow: none !important;
}

/* Testo nav + site-title: BIANCO sull'hero */
body.home .site-header:not(.is-stuck) a,
body.is-front-page .site-header:not(.is-stuck) a,
body.home .site-header:not(.is-stuck) .wp-block-site-title a,
body.is-front-page .site-header:not(.is-stuck) .wp-block-site-title a {
	color: rgba(255, 255, 255, 0.92) !important;
}
body.home .site-header:not(.is-stuck) .wp-block-navigation__responsive-container-open,
body.is-front-page .site-header:not(.is-stuck) .wp-block-navigation__responsive-container-open {
	color: #fff !important;
	background: transparent !important;
}
body.home .site-header:not(.is-stuck) .wp-block-button__link,
body.is-front-page .site-header:not(.is-stuck) .wp-block-button__link {
	border-color: rgba(255, 255, 255, 0.6) !important;
	color: #fff !important;
	background: transparent !important;
}
body.home .site-header:not(.is-stuck) .wp-block-button__link:hover,
body.is-front-page .site-header:not(.is-stuck) .wp-block-button__link:hover {
	background: rgba(255, 255, 255, 0.15) !important;
}

/* Hamburger icon: quando sticky (cream bg) → ink */
body.home .site-header.is-stuck .wp-block-navigation__responsive-container-open,
body.is-front-page .site-header.is-stuck .wp-block-navigation__responsive-container-open {
	color: var(--wp--preset--color--ink) !important;
}

/* Mobile home — OPZIONE C (2026-08-26): DUE STATI, zero salti di layout.
   - In cima (non stuck): TRASPARENTE sull'hero, testo/icona BIANCHI.
   - Dopo lo scroll (.is-stuck): cream solido, testo/icona INK.
   Cambia SOLO il colore di sfondo/testo: posizione e altezza sono
   garantite costanti dalla regola position:sticky più sopra. */
@media (max-width: 782px) {
	/* STATO 1 — in cima all'hero: trasparente */
	body.home .site-header:not(.is-stuck),
	body.is-front-page .site-header:not(.is-stuck) {
		background: transparent !important;
		backdrop-filter: none !important;
		-webkit-backdrop-filter: none !important;
		box-shadow: none !important;
		border: none !important;
	}
	/* Testo, icona menù e bottone BIANCI sull'hero */
	body.home .site-header:not(.is-stuck) a,
	body.is-front-page .site-header:not(.is-stuck) a,
	body.home .site-header:not(.is-stuck) .wp-block-site-title a,
	body.is-front-page .site-header:not(.is-stuck) .wp-block-site-title a {
		color: rgba(255, 255, 255, 0.92) !important;
	}
	body.home .site-header:not(.is-stuck) .wp-block-navigation__responsive-container-open,
	body.is-front-page .site-header:not(.is-stuck) .wp-block-navigation__responsive-container-open {
		color: #fff !important;
		background: transparent !important;
	}
	body.home .site-header:not(.is-stuck) .wp-block-button__link,
	body.is-front-page .site-header:not(.is-stuck) .wp-block-button__link {
		border-color: rgba(255, 255, 255, 0.6) !important;
		color: #fff !important;
		background: transparent !important;
	}
	body.home .site-header:not(.is-stuck) .wp-block-button__link:hover,
	body.is-front-page .site-header:not(.is-stuck) .wp-block-button__link:hover {
		background: rgba(255, 255, 255, 0.15) !important;
	}
	/* Logo: filtro bianco per visibilità sull'hero scuro */
	.home .site-header:not(.is-stuck) .custom-logo img,
	.is-front-page .site-header:not(.is-stuck) .custom-logo img {
		filter: brightness(3.5) drop-shadow(0 0 10px rgba(255,255,255,0.55)) drop-shadow(0 2px 8px rgba(0,0,0,0.5)) !important;
		-webkit-filter: brightness(3.5) drop-shadow(0 0 10px rgba(255,255,255,0.55)) drop-shadow(0 2px 8px rgba(0,0,0,0.5)) !important;
	}

	/* STATO 2 — dopo lo scroll: cream solido (vince su tutto, è dichiarato qui) */
	body.home .site-header.is-stuck,
	body.is-front-page .site-header.is-stuck {
		background: #F4F4EA !important;
		box-shadow: 0 1px 0 rgba(38, 24, 15, 0.08) !important;
	}
	/* Testo, icona menù e bottone INK su cream */
	body.home .site-header.is-stuck a,
	body.is-front-page .site-header.is-stuck a,
	body.home .site-header.is-stuck .wp-block-site-title a,
	body.is-front-page .site-header.is-stuck .wp-block-site-title a {
		color: #26180F !important;
	}
	body.home .site-header.is-stuck .wp-block-navigation__responsive-container-open,
	body.is-front-page .site-header.is-stuck .wp-block-navigation__responsive-container-open {
		color: #26180F !important;
		background: transparent !important;
	}
	body.home .site-header.is-stuck .wp-block-button__link,
	body.is-front-page .site-header.is-stuck .wp-block-button__link {
		border-color: rgba(38, 24, 15, 0.6) !important;
		color: #26180F !important;
		background: transparent !important;
	}
	/* Logo: niente filtro bianco su sfondo chiaro */
	.home .site-header.is-stuck .custom-logo img,
	.is-front-page .site-header.is-stuck .custom-logo img {
		filter: drop-shadow(0 2px 6px rgba(0, 0, 0, 0.25)) !important;
		-webkit-filter: drop-shadow(0 2px 6px rgba(0, 0, 0, 0.25)) !important;
	}
}

/* ========================================
   Site Title in Header (ora <p> non più H1)
   ======================================== */

/* Hamburger icon: ink di default, bianco su hero, ink su sticky — gestito dalle regole :not(.is-stuck) / .is-stuck sopra */
.wp-block-navigation__responsive-container-open {
	color: var(--wp--preset--color--ink) !important;
}

/* Desktop Polylang dropdown: white bg, shadow — ALWAYS dark text (override hero white) */
.wp-block-navigation__submenu-container {
	background: #fff !important;
	border-radius: 8px !important;
	box-shadow: 0 4px 16px rgba(0,0,0,0.12) !important;
	padding: 0.5rem 0 !important;
	min-width: 140px !important;
}
.wp-block-navigation__submenu-container a,
.wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	color: var(--wp--preset--color--ink) !important;
	font-size: 0.875rem !important;
	padding: 0.5rem 1rem !important;
}

/* Override hero white-text rule for submenu items — ink text on white bg ALWAYS */
body.home .site-header:not(.is-stuck) .wp-block-navigation__submenu-container a,
body.is-front-page .site-header:not(.is-stuck) .wp-block-navigation__submenu-container a,
body.home .site-header:not(.is-stuck) .wp-block-navigation__submenu-container .wp-block-navigation-item__content,
body.is-front-page .site-header:not(.is-stuck) .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	color: var(--wp--preset--color--ink) !important;
}

/* Site title link */
.wp-block-site-title a,
.site-title-link a {
	text-decoration: none;
	font-family: "Cormorant", Georgia, serif;
	font-weight: 700;
	letter-spacing: -0.01em;
}
.site-title-link {
	margin: 0 !important;
}

/* Custom logo */
.custom-logo img,
.site-logo-wrapper .custom-logo img {
	max-height: 80px;
	height: auto;
	display: block;
	filter: drop-shadow(0 2px 6px rgba(0,0,0,0.25));
	-webkit-filter: drop-shadow(0 2px 6px rgba(0,0,0,0.25));
	transition: filter 0.4s ease;
}
/* Su hero scuro (homepage trasparente): logo schiarito + glow bianco per visibilità */
.home .site-header:not(.is-stuck) .custom-logo img,
.is-front-page .site-header:not(.is-stuck) .custom-logo img {
	filter: brightness(3.5) drop-shadow(0 0 10px rgba(255,255,255,0.55)) drop-shadow(0 2px 8px rgba(0,0,0,0.5));
	-webkit-filter: brightness(3.5) drop-shadow(0 0 10px rgba(255,255,255,0.55)) drop-shadow(0 2px 8px rgba(0,0,0,0.5));
}
/* Quando sticky (cream): torna normale */
.home .site-header.is-stuck .custom-logo img,
.is-front-page .site-header.is-stuck .custom-logo img {
	filter: drop-shadow(0 2px 6px rgba(0,0,0,0.25));
	-webkit-filter: drop-shadow(0 2px 6px rgba(0,0,0,0.25));
}

/* Mobile: logo più compatto + header meno alto */
@media (max-width: 782px) {
	.custom-logo img,
	.site-logo-wrapper .custom-logo img {
		max-height: 64px;
	}
	.site-header > .wp-block-group {
		padding-top: 0.1rem !important;
		padding-bottom: 0.1rem !important;
	}
}

/* ========================================
   Booking bar — standalone section
   ======================================== */
.booking-bar {
	position: relative;
	z-index: 10;
}

/* ========================================
   Apartment grid — VillaBliss card design
   Images on top, content below, hover lift + gold accent
   Mobile: single column full-width
   Desktop (≥782px): two columns side-by-side
   ======================================== */
.apartment-grid {
	width: 100%;
}

/* Kill WP core inline grid on the query block */
.wp-block-query.apartment-grid {
	display: block !important;
	width: 100%;
}

/* ── Post template grid ── */
.apartment-grid .wp-block-post-template,
.wp-block-query.apartment-grid .wp-block-post-template {
	gap: 2rem;
	display: grid !important;
	grid-template-columns: minmax(0, 1fr);
	width: 100%;
}

.apartment-grid .wp-block-post-template > li {
	display: flex;
	margin: 0;
	width: 100%;
	max-width: 100%;
}

/* ── Card shell ── */
.apartment-grid .wp-block-post-template > li > .wp-block-group {
	position: relative;
	display: flex;
	flex-direction: column;
	width: 100%;
	height: 100%;
	overflow: hidden;
	border-radius: 16px;
	background: var(--wp--preset--color--white);
	box-shadow: 0 4px 16px rgba(38, 24, 15, 0.08);
	transition: box-shadow 0.35s ease, transform 0.35s ease;
	padding: 0 !important; /* kill has-global-padding on the card wrapper */
}

.apartment-grid .wp-block-post-template > li > .wp-block-group:hover {
	box-shadow: 0 14px 36px rgba(38, 24, 15, 0.16);
	transform: translateY(-4px);
}

/* ── Gold accent line (bottom, reveals on hover) ── */
.apartment-grid .wp-block-post-template > li > .wp-block-group::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 50%;
	width: 60%;
	height: 3px;
	background: var(--wp--preset--color--gold, #FDD17C);
	border-radius: 3px 3px 0 0;
	transform: translateX(-50%) scaleX(0);
	transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
	z-index: 2;
}

.apartment-grid .wp-block-post-template > li > .wp-block-group:hover::after {
	transform: translateX(-50%) scaleX(1);
}

/* ── Featured image ── */
.apartment-grid .wp-block-post-featured-image,
.rcv-card-image {
	width: 100%;
	margin: 0;
	overflow: hidden;
	line-height: 0;
}

.apartment-grid .wp-block-post-featured-image img,
.rcv-card-image .rcv-card-img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	display: block;
	transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}

.apartment-grid .wp-block-post-template > li > .wp-block-group:hover .wp-block-post-featured-image img,
.apartment-grid .wp-block-post-template > li > .wp-block-group:hover .rcv-card-img {
	transform: scale(1.045);
}

/* ── Card content area ── */
.apartment-grid .wp-block-post-template .wp-block-group > .wp-block-group:last-child {
	flex: 1;
	display: flex;
	flex-direction: column;
	padding: 1.5rem !important;
	gap: 0.75rem;
}

.apartment-grid .wp-block-post-template .wp-block-post {
	height: 100%;
}

/* ── Title ── */
.apartment-grid .wp-block-post-title {
	margin: 0 !important;
}

.apartment-grid .wp-block-post-title a {
	color: var(--wp--preset--color--ink);
	text-decoration: none;
	font-family: var(--wp--preset--font-family--serif);
	transition: color 0.25s ease;
}

.apartment-grid .wp-block-post-template > li > .wp-block-group:hover .wp-block-post-title a {
	color: var(--wp--preset--color--brown);
}

/* ── Excerpt ── */
.apartment-grid .wp-block-post-excerpt {
	flex: 1;
	color: var(--wp--preset--color--stone);
	line-height: 1.65;
}

.apartment-grid .wp-block-post-excerpt__excerpt {
	margin: 0;
}

.apartment-grid .wp-block-post-excerpt__more-text {
	display: none;
}

/* ── Button ── */
.apartment-grid .wp-block-buttons {
	margin-top: auto;
	padding-top: 0.5rem;
	/* 2026-08-25: due bottoni affiancati (dettagli + disponibilità) */
	flex-direction: row !important;
	gap: 0.5rem;
	align-items: stretch;
}

/* 2026-08-25: UNIFORMITÀ bottoni — stessa altezza, font e padding.
   Il bottone "Richiedi disponibilità" eredita gli stili WP globali
   (font 16px, padding 13.6/32) mentre l'outline era più piccolo:
   si uniforma tutto alle dimensioni del tema (sm). */
.apartment-grid .wp-block-button {
	flex: 1;
	min-width: 0;
}
.apartment-grid .wp-block-button__link {
	font-size: 0.875rem !important; /* sm: uniforma anche il fill WP */
	padding: 0.55rem 0.75rem !important;
	min-height: 42px;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	line-height: 1.2;
	white-space: nowrap;
	transition: background-color 0.3s ease, transform 0.2s ease;
}

.apartment-grid .wp-block-button__link:hover {
	background-color: var(--wp--preset--color--brown) !important;
	transform: translateY(-1px);
}

/* Bottone "Visualizza dettagli" (outline) */
.apartment-grid .rcv-details-btn .wp-block-button__link {
	background: transparent !important;
	color: var(--wp--preset--color--ink) !important;
	border: 1.5px solid var(--wp--preset--color--ink);
}
.apartment-grid .rcv-details-btn .wp-block-button__link:hover {
	background: var(--wp--preset--color--cream) !important;
	transform: translateY(-1px);
}

/* Mobile: bottoni impilati a tutta larghezza, sempre uguali fra loro */
@media (max-width: 600px) {
	.apartment-grid .wp-block-buttons {
		flex-direction: column !important;
	}
	.apartment-grid .wp-block-button__link {
		width: 100%;
		white-space: normal;
	}
}

/* ========================================
   Accommodation Gallery (single alloggio) — 2026-08-25
   ======================================== */
.rcv-accom-gallery {
	margin-top: 1.5rem;
	margin-bottom: 1.5rem;
}
.rcv-accom-gallery h3 {
	margin-bottom: 1rem;
}
.rcv-accom-gallery-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 0.5rem;
	border-radius: 16px;
	overflow: hidden;
}
@media (min-width: 600px) {
	.rcv-accom-gallery-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}
.rcv-accom-gallery-item {
	display: block;
	aspect-ratio: 4 / 3;
	overflow: hidden;
}
.rcv-accom-gallery-item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.4s ease;
}
@media (hover: hover) {
	.rcv-accom-gallery-item:hover img {
		transform: scale(1.05);
	}
}

.apartment-grid .wp-block-button__link {
	transition: background-color 0.3s ease, transform 0.2s ease;
}

.apartment-grid .wp-block-button__link:hover {
	background-color: var(--wp--preset--color--brown) !important;
	transform: translateY(-1px);
}

/* ── Kill WP core flex on apartment grid li items ── */
.apartment-grid .wp-block-post-template > li {
	flex: 0 0 100% !important;
	min-width: 0 !important;
	box-sizing: border-box !important;
}

/* ── Desktop: 2 columns ── */
@media (min-width: 782px) {
	.apartment-grid .wp-block-post-template,
	.wp-block-query.apartment-grid .wp-block-post-template {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

/* ========================================
   Layout: page width
   ======================================== */
@media (min-width: 1200px) {
	.wp-block-group.alignwide,
	.wp-block-cover.alignwide {
		width: min(1280px, 100%);
		margin-left: auto;
		margin-right: auto;
	}
}

/* ========================================
   Responsive: mobile compact spacing
   ======================================== */
@media (max-width: 781px) {
	:root {
		--wp--preset--spacing--50: clamp(1rem, 3vw, 1.5rem);
		--wp--preset--spacing--60: clamp(1.5rem, 4vw, 2.5rem);
		--wp--preset--spacing--70: clamp(2rem, 5vw, 3rem);
	}

	.wp-block-group.alignfull.has-background,
	.wp-block-cover.alignfull {
		padding-left: 1rem !important;
		padding-right: 1rem !important;
	}
}

/* ========================================
   Separator
   ======================================== */
.wp-block-separator {
	opacity: 0.5;
}

/* ========================================
   Search
   ======================================== */
.wp-block-search__button {
	margin-left: 0.5rem;
}

/* ========================================
   Skip link
   ======================================== */
.skip-link {
	position: absolute;
	top: -100%;
	left: 0;
	z-index: 9999;
	padding: 0.75rem 1.5rem;
	background: var(--wp--preset--color--ink);
	color: var(--wp--preset--color--white);
	text-decoration: none;
}

.skip-link:focus {
	top: 0;
}

/* Nasconde lo skip link automatico di WP core (in inglese) */
#wp-skip-link {
	display: none;
}

/* ========================================
   Focus styles
   ======================================== */
:focus-visible {
	outline: 2px solid var(--wp--preset--color--ink);
	outline-offset: 2px;
	border-radius: 4px;
}

:focus:not(:focus-visible) {
	outline: none;
}

/* ========================================
   Booking Card (single alloggio, sticky desktop)
   ======================================== */
.booking-card-column {
	align-self: flex-start;
}

.booking-card {
	box-shadow: var(--wp--preset--shadow--md);
	border: 1px solid var(--wp--preset--color--border-light);
	border-radius: 16px !important;
}

/* ========================================
   Header buttons — desktop only
   ======================================== */
@media (max-width: 782px) {
	.header-cta-desktop {
		display: none !important;
	}
}

/* ========================================
   Mobile Sticky CTA bar — SOLO mobile, mai su desktop
   ======================================== */

/* Desktop: MAI visibile, qualsiasi classe WP inietti */
@media (min-width: 783px) {
	.sticky-cta-mobile,
	.wp-block-group.sticky-cta-mobile,
	div.sticky-cta-mobile,
	div.wp-block-group.sticky-cta-mobile {
		display: none !important;
	}
}

.sticky-cta-mobile,
.wp-block-group.sticky-cta-mobile {
	display: none !important;
}

@media (max-width: 782px) {
	.sticky-cta-mobile.is-visible,
	.wp-block-group.sticky-cta-mobile.is-visible {
		display: flex !important;
		align-items: center;
		justify-content: center;
		/* 2026-08-26 — SOLUZIONE UNIVERSALE: position:STICKY; bottom:0.
		   La barra è l'ultimo figlio di .wp-site-blocks (dopo il footer):
		   resta agganciata in basso per TUTTO lo scroll ed è immune alla
		   URL bar che si nasconde (il fixed seguiva il viewport e si rompeva). */
		position: sticky !important;
		bottom: 0 !important;
		z-index: 999 !important;
		min-height: 52px;
		/* 2026-08-25: padding FISSO — la barra NON cambia più altezza quando la
		   URL bar mobile si nasconde/mostra (env(safe-area-inset-bottom) nel
		   padding faceva oscillare l'altezza 56↔82px). La safe-area in basso è
		   gestita dal ::after (estensione sfondo, non altera l'altezza). */
		padding: 0.5rem 0.75rem;
		padding-left: max(0.75rem, env(safe-area-inset-left, 0px));
		padding-right: max(0.75rem, env(safe-area-inset-right, 0px));
		background: #fff;
		box-shadow: 0 -2px 12px rgba(38, 24, 15, 0.10);
		margin: 0;
		border-radius: 0;
		box-sizing: border-box;
	}
	/* Estensione sfondo sotto la barra fino alla home indicator (safe-area):
	   non cambia l'altezza della barra, copre solo lo spazio del notch. */
	.sticky-cta-mobile.is-visible::after,
	.wp-block-group.sticky-cta-mobile.is-visible::after {
		content: "";
		position: absolute;
		left: 0;
		right: 0;
		top: 100%;
		height: env(safe-area-inset-bottom, 0px);
		background: inherit;
		pointer-events: none;
	}

	.sticky-cta-mobile .wp-block-buttons {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 0.5rem;
		max-width: 400px;
		width: 100%;
	}

	.sticky-cta-mobile .wp-block-button {
		flex: 1;
		max-width: 200px;
	}

	.sticky-cta-mobile .wp-block-button.is-style-outline {
		flex: 0 0 auto;
		min-width: 44px;
		max-width: 48px;
	}

	.sticky-cta-mobile .wp-block-button__link {
		display: flex;
		align-items: center;
		justify-content: center;
		width: 100%;
		height: 40px;
		padding: 0 1.25rem;
		font-size: 0.9375rem;
		font-weight: 600;
		line-height: 1;
		border-radius: 100px;
		text-decoration: none;
		box-sizing: border-box;
		-webkit-appearance: none;
	}

	.sticky-cta-mobile .is-style-outline .wp-block-button__link {
		padding: 0;
		font-size: 1.125rem;
	}
}

/* iPhone notch / home indicator — area interattiva extra.
   2026-08-26 — sticky universale: NIENTE padding sul body mobile
   (era lo spazio riservato alla barra fixed). La sticky CTA è ora in flusso
   come ultimo figlio di .wp-site-blocks: la safe-area in basso è coperta
   dal ::after della barra e dal padding-bottom di .wp-site-blocks. */
@supports (padding-bottom: env(safe-area-inset-bottom)) {
	/* (2026-08-26: nessuna regola necessaria qui — riservato a futuri
	   aggiustamenti safe-area per iPhone con home indicator.) */
}

/* ========================================
   Back to top button
   ======================================== */
.back-to-top {
	position: fixed;
	bottom: 2rem;
	right: 1.5rem;
	z-index: 80;
	width: 44px;
	height: 44px;
	border-radius: 100px;
	border: 1px solid var(--wp--preset--color--border-light);
	background: var(--wp--preset--color--white);
	color: var(--wp--preset--color--ink);
	font-size: 1.25rem;
	line-height: 1;
	cursor: pointer;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.3s ease, visibility 0.3s ease, transform 0.2s ease;
	box-shadow: var(--wp--preset--shadow--md);
	display: flex;
	align-items: center;
	justify-content: center;
}

.back-to-top--visible {
	opacity: 1;
	visibility: visible;
}

.back-to-top:hover {
	transform: translateY(-2px);
	box-shadow: var(--wp--preset--shadow--lg);
}

@media (max-width: 782px) {
	.back-to-top {
		bottom: 4.5rem;
	}
}

/* ========================================
   Value Proposition cards
   ======================================== */
.wp-block-column.has-cream-background-color {
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.wp-block-column.has-cream-background-color:hover {
	transform: translateY(-4px);
	box-shadow: var(--wp--preset--shadow--lg);
}

/* ========================================
   Footer — spazio per booking bar sticky
   ======================================== */
.site-footer {
	padding-bottom: 1.5rem;
}

/* Desktop: spazio sotto al body per non far coprire il footer dalla booking bar */
@media (min-width: 782px) {
	body {
		padding-bottom: 80px !important;
	}
}

.site-footer a {
	color: rgba(255, 255, 255, 0.7);
	text-decoration: none;
	transition: color 0.2s ease;
}

.site-footer a:hover {
	color: white;
	text-decoration: underline;
}

/* ========================================
   Social links
   ======================================== */
.site-footer .wp-block-social-links .wp-block-social-link {
	opacity: 0.7;
	transition: opacity 0.2s ease;
}

.site-footer .wp-block-social-links .wp-block-social-link:hover {
	opacity: 1;
}

/* ========================================
   Responsive — hide desktop nav CTA on mobile
   ======================================== */
@media (max-width: 781px) {
	.wp-block-navigation__responsive-container-open {
		display: flex;
	}
	.site-header > .wp-block-group > .wp-block-group > .wp-block-group > .wp-block-buttons {
		display: none;
	}
}

@media (min-width: 782px) {
	.wp-block-navigation__responsive-container-open {
		display: none;
	}
}

/* ========================================
   Gallery mosaic (VillaBliss-style grid)
   ======================================== */
.wp-block-gallery.has-nested-gallery-cards {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 0.75rem;
}

.wp-block-gallery.has-nested-gallery-cards .wp-block-image {
	margin: 0;
	border-radius: 12px;
	overflow: hidden;
}

.wp-block-gallery.has-nested-gallery-cards .wp-block-image:first-child {
	grid-column: 1 / -1;
	aspect-ratio: 16 / 9;
}

@media (max-width: 600px) {
	.wp-block-gallery.has-nested-gallery-cards {
		grid-template-columns: 1fr 1fr;
		gap: 0.5rem;
	}
	.wp-block-gallery.has-nested-gallery-cards .wp-block-image:first-child {
		grid-column: 1 / -1;
	}
}


/* ========================================
   Front page section spacing & margins
   ======================================== */
.is-front-page .wp-block-group.alignfull {
	padding-top: 3rem !important;
	padding-bottom: 3rem !important;
}

.is-front-page .wp-block-group.alignfull > .wp-block-group.alignwide > .wp-block-heading:first-child,
.is-front-page .wp-block-group.alignfull > .wp-block-heading:first-child {
	margin-top: 0;
}

.is-front-page .wp-block-group.alignfull > .wp-block-group.alignwide > .wp-block-heading:first-child + p,
.is-front-page .wp-block-group.alignfull > .wp-block-heading:first-child + p {
	margin-top: 0.5rem;
	margin-bottom: 1.5rem;
}

.is-front-page .wp-block-columns {
	margin-top: 0;
	margin-bottom: 0;
}

.is-front-page .wp-block-column > .wp-block-heading:first-child,
.is-front-page .wp-block-column > .wp-block-paragraph:first-child {
	margin-top: 0;
}

.is-front-page .wp-block-group.alignfull > * + .wp-block-columns {
	margin-top: 1rem;
}

@media (max-width: 781px) {
	.is-front-page .wp-block-group.alignfull {
		padding-top: 2.5rem !important;
		padding-bottom: 2.5rem !important;
	}
}

/* ========================================
   Final CTA / Pre-footer — Prenota direttamente
   Redesign v2.0 con Motion.dev stagger + spring
   ======================================== */

/* ── Container ── */
.final-cta {
	position: relative;
	overflow: hidden;
}

/* ── Gold decorative accent circle (top-right) ── */
.final-cta-bg-accent {
	position: absolute;
	top: -80px;
	right: -80px;
	width: 320px;
	height: 320px;
	border-radius: 50%;
	background: radial-gradient(
		circle at 50% 50%,
		rgba(253, 209, 124, 0.12) 0%,
		rgba(253, 209, 124, 0.04) 50%,
		transparent 70%
	);
	pointer-events: none;
	z-index: 0;
}

/* Second accent: bottom-left smaller */
.final-cta-bg-accent::after {
	content: '';
	position: absolute;
	bottom: -120px;
	left: -60px;
	width: 200px;
	height: 200px;
	border-radius: 50%;
	background: radial-gradient(
		circle at 50% 50%,
		rgba(253, 209, 124, 0.08) 0%,
		transparent 70%
	);
}

/* ── Header ── */
.final-cta-header {
	position: relative;
	z-index: 1;
	text-align: center;
}

.final-cta-label {
	display: inline-block;
	padding: 0.3rem 0.9rem;
	border: 1px solid rgba(253, 209, 124, 0.45);
	border-radius: 100px;
	background: rgba(253, 209, 124, 0.10);
	color: var(--wp--preset--color--gold, #FDD17C);
	margin: 0 auto 0.5rem;
}

.final-cta-title {
	color: #fff !important;
}

.final-cta-subtitle {
	color: rgba(255, 255, 255, 0.75) !important;
	max-width: 540px;
	margin-left: auto;
	margin-right: auto;
}

/* ── Body: split layout ── */
.final-cta-body {
	position: relative;
	z-index: 1;
	width: 100%;
}

/* Desktop: più spazio tra colonne benefits e contatti */
@media (min-width: 783px) {
	.final-cta-body {
		gap: 4rem !important;
	}
}

/* ========================================
   LEFT: Benefits list
   ======================================== */
.final-cta-benefits {
	flex: 1 1 380px;
	max-width: 480px;
}

.final-cta-benefit-item {
	padding: 1rem 1.25rem;
	border-radius: 14px;
	background: rgba(255, 255, 255, 0.04);
	border-left: 3px solid var(--wp--preset--color--gold, #FDD17C);
	transition: background 0.3s ease, transform 0.3s ease;
	width: 100%;
}

.final-cta-benefit-item:hover {
	background: rgba(255, 255, 255, 0.08);
	transform: translateX(4px);
}

.final-cta-benefit-icon {
	margin: 0;
	font-size: 1.5rem;
	line-height: 1;
	flex-shrink: 0;
}

.final-cta-benefit-title {
	margin: 0;
	color: #fff !important;
	font-weight: 600;
}

.final-cta-benefit-text {
	margin: 0;
	color: rgba(255, 255, 255, 0.6) !important;
	line-height: 1.45;
}

/* ========================================
   RIGHT: Contact cards + CTA buttons
   ======================================== */
.final-cta-contact {
	flex: 1 1 340px;
	max-width: 520px;
}

/* ── Contact cards row ── */
.final-cta-contact-cards {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 0.85rem;
	width: 100%;
}

.final-cta-contact-card {
	background: rgba(255, 255, 255, 0.06);
	border: 1px solid rgba(255, 255, 255, 0.08);
	backdrop-filter: blur(4px);
	-webkit-backdrop-filter: blur(4px);
	text-align: center;
	transition: background 0.3s ease, border-color 0.3s ease, transform 0.3s ease;
}

.final-cta-contact-card:hover {
	background: rgba(255, 255, 255, 0.10);
	border-color: rgba(253, 209, 124, 0.25);
	transform: translateY(-3px);
}

.final-cta-card-icon {
	margin: 0;
	font-size: 1.5rem;
	line-height: 1;
}

.final-cta-card-label {
	margin: 0;
	color: rgba(255, 255, 255, 0.7) !important;
}

.final-cta-card-value {
	margin: 0;
	color: #fff !important;
}

.final-cta-card-value a {
	color: var(--wp--preset--color--gold, #FDD17C);
	text-decoration: none;
	transition: color 0.2s ease;
}

.final-cta-card-value a:hover {
	color: #fff;
	text-decoration: underline;
}

/* ── CTA Buttons ── */
.final-cta-buttons {
	width: 100%;
}

.final-cta-btn-primary .wp-block-button__link {
	font-weight: 600 !important;
	box-shadow: 0 4px 16px rgba(253, 209, 124, 0.25);
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.final-cta-btn-primary .wp-block-button__link:hover {
	transform: translateY(-2px);
	box-shadow: 0 8px 24px rgba(253, 209, 124, 0.35);
}

.final-cta-btn-whatsapp .wp-block-button__link {
	border-color: rgba(255, 255, 255, 0.4) !important;
	color: #fff !important;
	background: transparent !important;
	transition: background 0.25s ease, border-color 0.25s ease, transform 0.25s ease;
}

.final-cta-btn-whatsapp .wp-block-button__link:hover {
	background: rgba(255, 255, 255, 0.12) !important;
	border-color: rgba(255, 255, 255, 0.7) !important;
	transform: translateY(-2px);
}

/* ========================================
   Final CTA — Mobile
   ======================================== */
@media (max-width: 782px) {
	.final-cta-body {
		flex-direction: column !important;
		gap: 2rem !important;
	}

	.final-cta-benefits {
		flex: 1 1 auto;
		max-width: 100%;
	}

	.final-cta-contact {
		flex: 1 1 auto;
		max-width: 100%;
	}

	.final-cta-contact-cards {
		grid-template-columns: 1fr;
		gap: 0.65rem;
	}

	.final-cta-contact-card {
		display: flex !important;
		flex-direction: row !important;
		align-items: center !important;
		gap: 0.85rem !important;
		padding: 1rem 1.25rem !important;
		text-align: left;
	}

	.final-cta-card-icon {
		font-size: 1.35rem;
		flex-shrink: 0;
	}

	.final-cta-card-label {
		font-size: 0.8rem;
	}

	.final-cta-card-value {
		font-size: 0.9rem;
	}

	.final-cta-benefit-item {
		padding: 0.85rem 1rem;
	}

	.final-cta-benefit-icon {
		font-size: 1.3rem;
	}

	.final-cta-benefit-title {
		font-size: 0.9rem;
	}

	.final-cta-benefit-text {
		font-size: 0.78rem;
	}

	.final-cta-buttons {
		flex-direction: column !important;
		gap: 0.65rem !important;
	}

	.final-cta-buttons .wp-block-button {
		width: 100%;
	}

	.final-cta-buttons .wp-block-button__link {
		width: 100%;
		text-align: center;
		justify-content: center;
	}

	/* Accent circle smaller on mobile */
	.final-cta-bg-accent {
		width: 200px;
		height: 200px;
		top: -50px;
		right: -50px;
	}

	.final-cta-bg-accent::after {
		width: 130px;
		height: 130px;
		bottom: -80px;
		left: -40px;
	}
}

/* ========================================
   Territory cards — VillaBliss room-style
   ======================================== */
.wp-block-columns .wp-block-group .wp-block-image {
	overflow: hidden;
	border-radius: 16px 16px 0 0;
}

.wp-block-columns .wp-block-group .wp-block-image img {
	transition: transform 0.5s ease;
}

.wp-block-columns .wp-block-group:hover .wp-block-image img {
	transform: scale(1.08);
}

/* ========================================
   Image
   ======================================== */
img {
	color: transparent;
}

/* ========================================
   Booking bar
   ======================================== */
.booking-bar {
	margin-top: -1.5rem;
}

.booking-bar .wp-block-group {
	border: 1px solid var(--wp--preset--color--border-light);
}

@media (max-width: 600px) {
	.booking-bar {
		margin-top: -1rem;
	}
	.booking-bar .wp-block-group {
		flex-direction: column;
		text-align: center;
	}
}

/* ========================================
   Accommodation Facts (custom block)
   ======================================== */
.wp-block-radici-accommodation-facts {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem 1.5rem;
	padding: 1.25rem 1.5rem;
	margin: 1.5rem 0;
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--border-light);
	border-radius: 12px;
}

.radici-facts__item {
	display: flex;
	align-items: center;
	gap: 0.35rem;
	font-size: var(--wp--preset--font-size--sm);
}

.radici-facts__label {
	color: var(--wp--preset--color--muted);
	font-weight: 400;
}

.radici-facts__item strong {
	color: var(--wp--preset--color--ink);
}

/* ========================================
   Amenities (custom block)
   ======================================== */
.radici-amenities__list {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0.5rem;
	list-style: none;
	padding: 0;
	margin: 0;
}

.radici-amenities__item {
	font-size: var(--wp--preset--font-size--sm);
	padding: 0.35rem 0 0.35rem 1.5rem;
	position: relative;
	color: var(--wp--preset--color--stone);
}

.radici-amenities__item::before {
	content: "✓";
	position: absolute;
	left: 0;
	color: var(--wp--preset--color--brown);
	font-weight: 600;
}

.radici-amenities__toggle {
	display: block;
	margin-top: 0.75rem;
	padding: 0.5rem 1.25rem;
	background: none;
	border: 1px solid var(--wp--preset--color--brown);
	border-radius: 100px;
	color: var(--wp--preset--color--brown);
	font-size: var(--wp--preset--font-size--sm);
	cursor: pointer;
	transition: background 0.2s ease, color 0.2s ease;
}

.radici-amenities__toggle:hover {
	background: var(--wp--preset--color--brown);
	color: white;
}

@media (max-width: 600px) {
	.radici-amenities__list {
		grid-template-columns: 1fr;
	}
	.wp-block-radici-accommodation-facts {
		flex-direction: column;
		gap: 0.5rem;
	}
}

/* ========================================
   Notch / Hole-punch display support
   ======================================== */
@supports (padding-top: env(safe-area-inset-top)) {
	body {
		padding-left: env(safe-area-inset-left);
		padding-right: env(safe-area-inset-right);
	}
}

/* ========================================
   Contact Form 7 — VillaBliss style
   ======================================== */
.wpcf7-form {
	font-family: "Outfit", system-ui, sans-serif;
}

.wpcf7-form label {
	display: block;
	font-weight: 500;
	font-size: var(--wp--preset--font-size--sm);
	color: var(--wp--preset--color--ink);
	margin-bottom: 0.35rem;
}

.wpcf7-form p {
	margin: 0 0 1.25rem;
}

.wpcf7-form-control.wpcf7-text,
.wpcf7-form-control.wpcf7-email,
.wpcf7-form-control.wpcf7-tel,
.wpcf7-form-control.wpcf7-number,
.wpcf7-form-control.wpcf7-date,
.wpcf7-form-control.wpcf7-select,
.wpcf7-form-control.wpcf7-textarea {
	width: 100%;
	box-sizing: border-box;
	padding: 0.75rem 1rem;
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--border-light);
	border-radius: 12px;
	font-family: "Outfit", system-ui, sans-serif;
	font-size: 1rem;
	color: var(--wp--preset--color--ink);
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
	appearance: none;
	-webkit-appearance: none;
}

.wpcf7-form-control.wpcf7-date {
	min-height: 3rem;
}

.wpcf7-form-control.wpcf7-textarea {
	min-height: 8rem;
	resize: vertical;
}

.wpcf7-form-control:focus {
	outline: none;
	border-color: var(--wp--preset--color--brown);
	box-shadow: 0 0 0 3px rgba(73, 56, 44, 0.12);
}

.wpcf7-form-control::placeholder {
	color: var(--wp--preset--color--muted);
}

/* Submit — pill come i bottoni del tema */
.wpcf7-form-control.wpcf7-submit {
	display: inline-block;
	width: auto;
	padding: 0.85rem 2.5rem;
	background: var(--wp--preset--color--ink);
	color: var(--wp--preset--color--white) !important;
	border: none;
	border-radius: 100px;
	font-family: "Outfit", system-ui, sans-serif;
	font-weight: 500;
	font-size: var(--wp--preset--font-size--sm);
	letter-spacing: 0.02em;
	cursor: pointer;
	transition: background-color 0.25s ease, transform 0.2s ease, box-shadow 0.2s ease;
}

.wpcf7-form-control.wpcf7-submit:hover {
	background: var(--wp--preset--color--brown);
	transform: translateY(-2px);
	box-shadow: var(--wp--preset--shadow--md);
}

/* Spinner e messaggi di esito */
.wpcf7 .wpcf7-spinner {
	margin: 0 0 0 0.75rem;
	vertical-align: middle;
}

.wpcf7-form.sent .wpcf7-response-output {
	border: none;
	background: rgba(47, 107, 69, 0.1);
	color: var(--wp--preset--color--success);
	border-radius: 12px;
	padding: 1rem 1.25rem;
	margin: 1rem 0 0;
}

.wpcf7-form.failed .wpcf7-response-output,
.wpcf7-form.invalid .wpcf7-response-output {
	border: none;
	background: rgba(165, 42, 42, 0.08);
	color: var(--wp--preset--color--error);
	border-radius: 12px;
	padding: 1rem 1.25rem;
	margin: 1rem 0 0;
}

.wpcf7-form-control-wrap .wpcf7-not-valid-tip {
	font-size: var(--wp--preset--font-size--xs);
	color: var(--wp--preset--color--error);
	margin-top: 0.25rem;
}

.wpcf7-form .wpcf7-not-valid {
	border-color: var(--wp--preset--color--error) !important;
}

/* Checkbox / radio / acceptance */
.wpcf7-form-control.wpcf7-checkbox,
.wpcf7-form-control.wpcf7-radio,
.wpcf7-form-control.wpcf7-acceptance {
	display: block;
}

.wpcf7-form-control.wpcf7-checkbox .wpcf7-list-item,
.wpcf7-form-control.wpcf7-radio .wpcf7-list-item {
	display: block;
	margin: 0.25rem 0;
}

.wpcf7-form input[type="checkbox"],
.wpcf7-form input[type="radio"] {
	accent-color: var(--wp--preset--color--brown);
	width: 1rem;
	height: 1rem;
	margin-right: 0.35rem;
	vertical-align: -0.15em;
}

/* ========================================
   WP Hotelier — Datepicker & Booking styles
   ======================================== */

/* Datepicker form — flex row, centered, with wrap on mobile */
.datepicker-form {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 1rem;
	flex-wrap: wrap;
	margin-top: 1.25rem;
}

/* Input wrapper — let it take available space */
.datepicker-input-select-wrapper {
	flex: 1 1 auto;
	min-width: 240px;
	max-width: 360px;
}

/* Datepicker select input — match theme aesthetic */
.datepicker-input-select,
.datepicker-form input.datepicker-input-select {
	font-family: var(--wp--preset--font-family--body, 'Outfit', sans-serif);
	font-size: var(--wp--preset--font-size--base, 1rem);
	padding: 0.8rem 1.25rem;
	border: 1.5px solid var(--wp--preset--color--border-light, #D6D4C9);
	border-radius: 12px;
	background: var(--wp--preset--color--white, #fff);
	color: var(--wp--preset--color--ink, #26180F);
	width: 100%;
	box-sizing: border-box;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.datepicker-input-select:focus,
.datepicker-form input.datepicker-input-select:focus {
	outline: none;
	border-color: var(--wp--preset--color--brown, #49382C);
	box-shadow: 0 0 0 3px rgba(73, 56, 44, 0.12);
}

/* Datepicker submit button — VillaBliss pill style */
.datepicker-form .button--datepicker,
.datepicker-form input[type="submit"] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	margin-top: 0;
	font-family: var(--wp--preset--font-family--body, 'Outfit', sans-serif);
	font-size: var(--wp--preset--font-size--base, 1rem);
	font-weight: 600;
	padding: 0.8rem 2rem;
	background: var(--wp--preset--color--ink, #26180F);
	color: var(--wp--preset--color--white, #fff);
	border: none;
	border-radius: 100px;
	cursor: pointer;
	transition: background 0.25s ease, transform 0.15s ease, box-shadow 0.25s ease;
	white-space: nowrap;
	line-height: 1.4;
}

.datepicker-form .button--datepicker:hover,
.datepicker-form input[type="submit"]:hover {
	background: var(--wp--preset--color--brown, #49382C);
	transform: translateY(-1px);
	box-shadow: 0 4px 16px rgba(38, 24, 15, 0.18);
}

.datepicker-form .button--datepicker:active,
.datepicker-form input[type="submit"]:active {
	transform: translateY(0);
	box-shadow: none;
}

/* Datepicker — mobile: stack vertically */
@media (max-width: 600px) {
	.datepicker-form {
		flex-direction: column;
		align-items: stretch;
	}

	.datepicker-input-select-wrapper {
		max-width: none;
		min-width: unset;
		width: 100%;
	}

	.datepicker-form .button--datepicker,
	.datepicker-form input[type="submit"] {
		width: 100%;
	}
}

/* Hotelier generic wrapper — ensure it doesn't break layout */
.hotelier {
	max-width: 100%;
}

/* ========================================
   Reduced motion
   ======================================== */
@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}

/* ========================================
   Host section — mobile: tutto centrato
   ======================================== */
@media (max-width: 781px) {
	/* Stack columns vertically */
	.radici-host-section .wp-block-columns {
		flex-direction: column !important;
		text-align: center;
	}

	.radici-host-section .wp-block-column {
		flex-basis: 100% !important;
		width: 100% !important;
	}

	.radici-host-section .wp-block-image {
		display: flex;
		justify-content: center;
	}

	.radici-host-section .wp-block-buttons {
		justify-content: center;
	}
}

/* ========================================
   Hero-page hero — background image + overlay leggibilità
   ======================================== */
.hero-page-cover {
	background-size: cover !important;
	background-position: center !important;
	position: relative;
}

/* CSS-only dark gradient overlay behind the text */
.hero-page-cover::before {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(
		to bottom,
		rgba(38, 24, 15, 0.55) 0%,
		rgba(38, 24, 15, 0.65) 50%,
		rgba(38, 24, 15, 0.75) 100%
	);
	pointer-events: none;
	z-index: 2;
}

/* Inner container must stay above the overlay */
.hero-page-cover .wp-block-cover__inner-container {
	position: relative;
	z-index: 3;
}

/* Headings and text: sempre chiari e leggibili */
.hero-page-cover .wp-block-heading,
.hero-page-cover .wp-block-post-title,
.hero-page-cover h1,
.hero-page-cover h2 {
	color: #fff !important;
	text-shadow: 0 3px 12px rgba(0, 0, 0, 0.6);
}

.hero-page-cover p {
	color: rgba(255, 255, 255, 0.9) !important;
	text-shadow: 0 2px 6px rgba(0, 0, 0, 0.5);
}

/* ========================================
   BLOG — Listing & Single Post Styles
   Redesign v1.1 — card spacing, gold accent, Motion.dev stagger
   ======================================== */

/* --- Page hero generic (contatti, etc.) — riduci altezza e testo --- */
.hero-page-cover .wp-block-cover__inner-container {
	max-width: 720px;
	margin: 0 auto;
}

/* Contatti page: trim hero excerpt text */
.page-id-23 .hero-page-cover .wp-block-cover__inner-container p {
	max-width: 560px;
	margin-left: auto;
	margin-right: auto;
}

/* --- Blog Hero (listing page) --- */
.blog-hero {
	position: relative;
	background-image: url('https://radicicasavacanze.com/wp-content/uploads/2026/07/agropoli-vista.jpg');
	background-size: cover;
	background-position: center;
}

.blog-hero::before {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(
		to bottom,
		rgba(38, 24, 15, 0.65) 0%,
		rgba(38, 24, 15, 0.45) 40%,
		rgba(38, 24, 15, 0.70) 100%
	);
	pointer-events: none;
	z-index: 1;
}

.blog-hero .wp-block-cover__inner-container {
	position: relative;
	z-index: 2;
}

.blog-hero-label {
	display: block;
	width: fit-content;
	margin-left: auto;
	margin-right: auto;
	padding: 0.3rem 1rem;
	border: 1px solid rgba(253, 209, 124, 0.45);
	border-radius: 100px;
	color: #fff !important;
	background: rgba(253, 209, 124, 0.12);
	letter-spacing: 0.12em;
}

.blog-hero-title {
	color: #fff !important;
	text-shadow: 0 4px 16px rgba(0, 0, 0, 0.5);
}

.blog-hero-desc {
	color: rgba(255, 255, 255, 0.85) !important;
}

/* ========================================
   BLOG GRID — query block layout
   ======================================== */

/* Kill WP core inline grid — gestiamo il layout noi */
.blog-grid,
.home-blog-grid,
.related-posts-grid {
	width: 100%;
}

.wp-block-query.blog-grid,
.wp-block-query.home-blog-grid,
.wp-block-query.related-posts-grid {
	display: block !important;
}

/* Post template: kill WP core flex classes, force grid */
.blog-grid .wp-block-post-template,
.home-blog-grid .wp-block-post-template,
.related-posts-grid .wp-block-post-template {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 2rem !important;
	width: 100%;
	padding: 0 !important;
	margin: 0 !important;
	list-style: none !important;
	flex-wrap: nowrap !important; /* kill WP core is-flex-container wrap */
}

.blog-grid .wp-block-post-template > li,
.home-blog-grid .wp-block-post-template > li,
.related-posts-grid .wp-block-post-template > li {
	display: flex;
	margin: 0 !important;
	width: 100% !important;
	max-width: 100% !important;
	min-width: 0 !important;
	flex: 0 0 100% !important; /* override WP core flex:0 1 auto */
	box-sizing: border-box !important;
}

/* Tablet: 2 colonne */
@media (max-width: 1024px) and (min-width: 783px) {
	.blog-grid .wp-block-post-template,
	.home-blog-grid .wp-block-post-template,
	.related-posts-grid .wp-block-post-template {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 1.75rem !important;
	}
}

/* ========================================
   POST CARD — VillaBliss-style (shared listing/home/single related)
   ======================================== */

/* Card shell — kill global-padding, gestiamo padding internamente */
.post-card,
.blog-grid .wp-block-post-template > li > .wp-block-group,
.home-blog-grid .wp-block-post-template > li > .wp-block-group,
.related-posts-grid .wp-block-post-template > li > .wp-block-group {
	position: relative;
	display: flex;
	flex-direction: column;
	width: 100%;
	height: 100%;
	overflow: hidden;
	border-radius: 16px;
	background: var(--wp--preset--color--white);
	box-shadow: 0 2px 8px rgba(38, 24, 15, 0.06);
	transition: box-shadow 0.35s ease, transform 0.35s ease;
	padding: 0 !important; /* ← UCCIDE has-global-padding */
	margin: 0 !important;
}

/* Hover: lift + deeper shadow */
.post-card:hover,
.blog-grid .wp-block-post-template > li > .wp-block-group:hover,
.home-blog-grid .wp-block-post-template > li > .wp-block-group:hover,
.related-posts-grid .wp-block-post-template > li > .wp-block-group:hover {
	transform: translateY(-6px);
	box-shadow: 0 12px 32px rgba(38, 24, 15, 0.14);
}

/* ── Gold accent line (bottom, reveals on hover) ── */
.post-card::after,
.blog-grid .wp-block-post-template > li > .wp-block-group::after,
.home-blog-grid .wp-block-post-template > li > .wp-block-group::after,
.related-posts-grid .wp-block-post-template > li > .wp-block-group::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 50%;
	width: 60%;
	height: 3px;
	background: var(--wp--preset--color--gold, #FDD17C);
	border-radius: 3px 3px 0 0;
	transform: translateX(-50%) scaleX(0);
	transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
	z-index: 2;
	pointer-events: none;
}

.post-card:hover::after,
.blog-grid .wp-block-post-template > li > .wp-block-group:hover::after,
.home-blog-grid .wp-block-post-template > li > .wp-block-group:hover::after,
.related-posts-grid .wp-block-post-template > li > .wp-block-group:hover::after {
	transform: translateX(-50%) scaleX(1);
}

/* ── Featured image — riempie la parte superiore ── */
.post-card-img,
.blog-grid .wp-block-post-featured-image,
.home-blog-grid .wp-block-post-featured-image,
.related-posts-grid .wp-block-post-featured-image {
	width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: hidden;
	line-height: 0;
	border-radius: 0 !important;
	flex-shrink: 0;
}

.post-card-img img,
.blog-grid .wp-block-post-featured-image img,
.home-blog-grid .wp-block-post-featured-image img,
.related-posts-grid .wp-block-post-featured-image img {
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	display: block;
	margin: 0 !important;
	border-radius: 0 !important;
	transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}

.post-card:hover .post-card-img img,
.blog-grid .wp-block-post-template > li > .wp-block-group:hover .wp-block-post-featured-image img,
.home-blog-grid .wp-block-post-template > li > .wp-block-group:hover .wp-block-post-featured-image img,
.related-posts-grid .wp-block-post-template > li > .wp-block-group:hover .wp-block-post-featured-image img {
	transform: scale(1.045);
}

/* ── Card content area ── */
.post-card > .wp-block-group:last-of-type,
.blog-grid .wp-block-post-template > li > .wp-block-group > .wp-block-group:last-of-type,
.home-blog-grid .wp-block-post-template > li > .wp-block-group > .wp-block-group:last-of-type,
.related-posts-grid .wp-block-post-template > li > .wp-block-group > .wp-block-group:last-of-type {
	flex: 1;
	display: flex;
	flex-direction: column;
	padding: 1.25rem 1.5rem 1.5rem !important; /* ← PADDING UNIFORME */
	gap: 0.5rem;
}

/* ── Category badge ── */
.post-card-category {
	margin: 0 !important;
	line-height: 1;
}

.post-card-category a {
	display: inline-block;
	font-size: 0.7rem;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--wp--preset--color--brown);
	text-decoration: none;
	transition: color 0.2s ease;
}

.post-card-category a:hover {
	color: var(--wp--preset--color--ink);
}

/* ── Title ── */
.post-card-title {
	margin: 0 !important;
	line-height: 1.2 !important;
}

.post-card-title a {
	color: var(--wp--preset--color--ink);
	text-decoration: none;
	font-family: var(--wp--preset--font-family--serif, 'Cormorant', serif);
	transition: color 0.25s ease;
	font-size: inherit;
}

.post-card-title a:hover {
	color: var(--wp--preset--color--brown);
}

/* ── Meta row (date, author) ── */
.post-card-meta {
	color: var(--wp--preset--color--muted);
	font-size: 0.78rem;
	margin: 0 !important;
	align-items: center;
	gap: 0.4rem !important;
}

.post-card-meta a {
	color: var(--wp--preset--color--muted);
	text-decoration: none;
	font-size: inherit;
}

.post-card-meta a:hover {
	color: var(--wp--preset--color--ink);
}

.post-card-separator {
	color: var(--wp--preset--color--border-light) !important;
	margin: 0 !important;
}

/* ── Excerpt ── */
.post-card-excerpt {
	flex: 1;
	color: var(--wp--preset--color--stone);
	font-size: 0.9rem;
	line-height: 1.55;
	margin: 0.25rem 0 0 0;
}

.post-card-excerpt .wp-block-post-excerpt__excerpt {
	margin: 0;
}

.post-card-excerpt .wp-block-post-excerpt__more-text {
	margin-top: 0.35rem;
}

.post-card-excerpt .wp-block-post-excerpt__more-text a {
	color: var(--wp--preset--color--brown);
	font-weight: 500;
	text-decoration: none;
	font-size: 0.85rem;
	transition: color 0.2s ease;
}

.post-card-excerpt .wp-block-post-excerpt__more-text a:hover {
	color: var(--wp--preset--color--ink);
}

/* ── Related posts: title più compatto ── */
.related-posts-grid .post-card-title {
	font-size: 1rem !important;
}

.related-posts-grid .wp-block-post-template > li > .wp-block-group > .wp-block-group:last-of-type {
	padding: 1rem 1.25rem 1.25rem !important;
}

/* ========================================
   BLOG GRID — Mobile
   ======================================== */

@media (max-width: 782px) {
	/* Stack verticale, gap ridotto */
	.blog-grid .wp-block-post-template,
	.home-blog-grid .wp-block-post-template,
	.related-posts-grid .wp-block-post-template {
		grid-template-columns: 1fr !important;
		gap: 1.25rem !important;
	}

	.blog-grid .wp-block-post-template > li,
	.home-blog-grid .wp-block-post-template > li,
	.related-posts-grid .wp-block-post-template > li {
		width: 100% !important;
		margin: 0 !important;
	}

	/* Card content più compatto su mobile */
	.post-card > .wp-block-group:last-of-type,
	.blog-grid .wp-block-post-template > li > .wp-block-group > .wp-block-group:last-of-type,
	.home-blog-grid .wp-block-post-template > li > .wp-block-group > .wp-block-group:last-of-type {
		padding: 1rem 1.25rem 1.25rem !important;
	}

	/* Titolo più piccolo */
	.post-card-title {
		font-size: 1.1rem !important;
	}

	/* Excerpt più compatto */
	.post-card-excerpt {
		font-size: 0.85rem;
	}

	.blog-hero {
		min-height: 35vh !important;
	}

	.blog-hero-title {
		font-size: clamp(1.5rem, 5vw, 2.5rem) !important;
	}

	.blog-hero-desc {
		font-size: 0.9rem !important;
	}
}

/* --- Single Post Styles --- */

.single-post-category {
	margin-bottom: 0.5rem;
	text-align: center;
}

.single-post-category a {
	font-size: 0.8rem;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--wp--preset--color--brown);
	text-decoration: none;
	padding: 0.25rem 0.75rem;
	border: 1px solid var(--wp--preset--color--border-light);
	border-radius: 100px;
	transition: all 0.2s ease;
}

.single-post-category a:hover {
	background: var(--wp--preset--color--brown);
	color: #fff;
	border-color: var(--wp--preset--color--brown);
}

.single-post-title {
	line-height: 1.15 !important;
	margin: 0.5rem auto 0 auto !important;
	text-align: center !important;
	max-width: 100%;
}

.single-post-meta {
	align-items: center;
	justify-content: center;
	color: var(--wp--preset--color--muted);
}

.single-post-meta .wp-block-post-author {
	display: flex;
	align-items: center;
	gap: 0.5rem;
}

.single-post-meta .wp-block-post-author__avatar img {
	border-radius: 50%;
	border: 2px solid var(--wp--preset--color--border-light);
}

.single-post-meta a {
	color: var(--wp--preset--color--ink);
	text-decoration: none;
	font-weight: 500;
}

.single-post-meta a:hover {
	text-decoration: underline;
}

.single-post-sep {
	color: var(--wp--preset--color--border-light) !important;
}

.single-post-reading-time {
	color: var(--wp--preset--color--muted) !important;
}

.single-post-featured-img {
	border-radius: 16px !important;
	overflow: hidden;
}

.single-post-featured-img img {
	width: 100%;
	object-fit: cover;
}

/* Article content typography */
.single-post-content {
	line-height: 1.75;
	font-size: var(--wp--preset--font-size--base);
}

.single-post-content h2 {
	font-size: var(--wp--preset--font-size--xl);
	margin-top: 2.5rem;
	margin-bottom: 1rem;
}

.single-post-content h3 {
	font-size: var(--wp--preset--font-size--lg);
	margin-top: 2rem;
	margin-bottom: 0.75rem;
}

.single-post-content p {
	margin-bottom: 1.25rem;
	line-height: 1.75;
}

.single-post-content ul,
.single-post-content ol {
	margin-bottom: 1.25rem;
	padding-left: 1.5rem;
}

.single-post-content li {
	margin-bottom: 0.5rem;
	line-height: 1.6;
}

.single-post-content blockquote {
	border-left: 4px solid var(--wp--preset--color--gold);
	background: rgba(253, 209, 124, 0.08);
	padding: 1.5rem 2rem;
	margin: 2rem 0;
	border-radius: 0 12px 12px 0;
	font-style: italic;
	color: var(--wp--preset--color--ink);
}

.single-post-content blockquote p {
	margin: 0;
}

.single-post-content img {
	border-radius: 12px;
	margin: 1.5rem 0;
}

.single-post-content figure {
	margin: 1.5rem 0;
}

.single-post-content figure img {
	margin: 0;
}

.single-post-content .wp-block-gallery {
	margin: 1.5rem 0;
}

/* --- Author Bio Card --- */
.author-bio-card {
	background: var(--wp--preset--color--white);
	border-radius: 16px;
	padding: 2rem;
	box-shadow: var(--wp--preset--shadow--sm);
	border: 1px solid var(--wp--preset--color--border-light);
}

.author-bio-avatar .wp-block-post-author__avatar img {
	border-radius: 50%;
	border: 3px solid var(--wp--preset--color--gold);
}

.author-bio-name {
	font-family: "Cormorant", Georgia, serif;
	margin-bottom: 0.25rem !important;
}

.author-bio-name a {
	color: var(--wp--preset--color--ink);
	text-decoration: none;
}

.author-bio-description {
	color: var(--wp--preset--color--stone);
	line-height: 1.6;
}

/* --- Related Posts --- */
.related-posts-heading {
	font-family: "Cormorant", Georgia, serif;
}

/* --- Pagination --- */
.wp-block-query-pagination {
	gap: 0.5rem;
}

.wp-block-query-pagination .wp-block-query-pagination-previous,
.wp-block-query-pagination .wp-block-query-pagination-next {
	font-weight: 500;
}

.wp-block-query-pagination .wp-block-query-pagination-numbers .page-numbers {
	padding: 0.4rem 0.9rem;
	border-radius: 8px;
	color: var(--wp--preset--color--stone);
	text-decoration: none;
	transition: all 0.2s ease;
}

.wp-block-query-pagination .wp-block-query-pagination-numbers .page-numbers.current {
	background: var(--wp--preset--color--ink);
	color: #fff;
}

.wp-block-query-pagination .wp-block-query-pagination-numbers .page-numbers:hover:not(.current) {
	background: var(--wp--preset--color--border-light);
}

/* --- Home section labels --- */
.home-section-label {
	color: var(--wp--preset--color--brown);
}

.home-section-heading {
	margin-top: 0.25rem !important;
}

/* --- Mobile author bio --- */
@media (max-width: 600px) {
	.author-bio-card {
		flex-direction: column !important;
		text-align: center;
		padding: 1.5rem 1rem;
	}

	.author-bio-avatar {
		margin: 0 auto 0.5rem;
	}

	.single-post-featured-img {
		border-radius: 12px !important;
	}

	.single-post-content {
		font-size: 1rem;
	}

	.single-post-content h2 {
		font-size: 1.35rem;
	}

	.single-post-content h3 {
		font-size: 1.15rem;
	}
}
