/* ==========================================================================
   Vivai Pomili — tema a blocchi
   Stili di presentazione che completano theme.json (design system).
   ========================================================================== */

/* ---------- Base ---------- */
:root {
	--vivai-header-height: 5.5rem;
	--vivai-radius: 14px;
	--vivai-shadow: 0 22px 60px -34px rgba(22, 36, 28, 0.55);
	--vivai-line: rgba(22, 36, 28, 0.12);
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
	-webkit-text-size-adjust: 100%;

	/* L'intestazione agganciata cambia altezza quando diventa compatta.
	   L'ancoraggio automatico dello scorrimento compenserebbe quel cambio
	   riportando indietro la pagina: disattivarlo rende la transizione
	   fluida e senza contraccolpi. */
	overflow-anchor: none;
}

body {
	background-color: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
	overflow-x: hidden;
}

/* "clip" evita di creare un contenitore di scorrimento, che romperebbe
   l'intestazione agganciata in alto. */
@supports (overflow: clip) {
	body {
		overflow-x: clip;
	}
}

img {
	max-width: 100%;
	height: auto;
}

::selection {
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--contrast);
}

:focus-visible {
	outline: 3px solid var(--wp--preset--color--accent);
	outline-offset: 3px;
	border-radius: 3px;
}

.skip-link.screen-reader-text {
	position: absolute;
	left: -9999px;
	top: 0;
	z-index: 999;
	padding: 0.75rem 1.25rem;
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--base);
}

.skip-link.screen-reader-text:focus {
	left: 1rem;
	top: 1rem;
}

/* ---------- Tipografia ---------- */
h1, h2, h3, h4, h5, h6 {
	text-wrap: balance;
}

h1 em, h2 em, h3 em {
	font-style: italic;
	color: var(--wp--preset--color--secondary);
}

p, li {
	text-wrap: pretty;
}

.wp-block-site-title a {
	text-decoration: none;
}

.vivai-occhiello {
	font-family: var(--wp--preset--font-family--body);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent);
	margin-bottom: 0.75rem;
}

.vivai-sezione {
	padding-block: clamp(3.5rem, 8vw, 6.5rem);
}

/* ---------- Pannelli a contatto ---------- */
/* Il block-gap predefinito di WordPress (24px) apriva una striscia del
   fondo pagina tra l'intestazione e il contenuto, tra una sezione e
   l'altra e sopra il footer. Le fasce a piena larghezza devono toccarsi:
   lo stacco lo dà il padding interno di ciascun pannello. */
.wp-site-blocks > * + *,
.site-main.is-layout-flow > * + * {
	margin-block-start: 0;
}

.entry-content > :is(.vivai-sezione, .vivai-cta, .home-hero, .wp-block-cover) + *,
.entry-content > * + :is(.vivai-sezione, .vivai-cta, .home-hero, .wp-block-cover) {
	margin-block-start: 0;
}

.vivai-sezione--scura {
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--base);
}

.vivai-sezione__titolo {
	margin-bottom: 0.75rem;
}

.vivai-sezione__intro {
	max-width: 42rem;
	color: var(--wp--preset--color--contrast-2);
}

.vivai-sezione--scura .vivai-sezione__intro {
	color: rgba(250, 247, 241, 0.78);
}

.vivai-sezione__testata {
	display: flex;
	flex-wrap: wrap;
	align-items: end;
	justify-content: space-between;
	gap: 1.5rem 3rem;
	margin-bottom: clamp(2rem, 4vw, 3.25rem);
}

.vivai-sezione__link {
	font-weight: 600;
	font-size: 0.9375rem;
	white-space: nowrap;
}

.vivai-sezione__link a {
	text-decoration: none;
	border-bottom: 1px solid currentColor;
	padding-bottom: 0.1rem;
}

/* L'ancora "Vai al contenuto" e i link interni non finiscono sotto
   l'intestazione fissa: l'offset è aggiornato dallo script. */
html {
	scroll-padding-top: var(--vivai-scroll-padding, 8.25rem);
}

/* Le sezioni a piena larghezza si allargano con 100vw, che comprende la
   barra di scorrimento: senza questo ritaglio la pagina guadagnava una
   barra orizzontale e un filo del fondo affiorava sul bordo destro. */
html {
	overflow-x: clip;
}

/* ---------- Header ---------- */
/* Barra superiore e barra principale sono un unico blocco: il block-gap
   di WordPress infilava una striscia chiara di 24px fra le due. */
.site-header > * + * {
	margin-block-start: 0;
}

/* L'intestazione è fissa: lo spazio che occupa nel flusso è riservato dal
   contenitore (header.wp-block-template-part), così la transizione compatta
   non sposta più il contenuto della pagina. Il fondo è pieno: il filtro
   backdrop-filter, ridisegnato a ogni frame durante il restringimento,
   produceva il tremolio visibile su desktop. */
.site-header {
	position: relative;
	z-index: 100;
	background: var(--wp--preset--color--base);
	border-bottom: 1px solid var(--vivai-line);
}

.site-topbar {
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--base);
	font-size: 0.8125rem;
}

.site-topbar__inner {
	padding-block: 0.45rem;
	gap: 0.5rem 1.5rem;
}

.site-topbar p {
	margin: 0;
}

.site-topbar a {
	color: var(--wp--preset--color--base);
	text-decoration: none;
	opacity: 0.92;
}

.site-topbar a:hover {
	opacity: 1;
	color: var(--wp--preset--color--accent-2);
}

.site-topbar__claim {
	letter-spacing: 0.06em;
	text-transform: uppercase;
	font-size: 0.72rem;
}

.site-topbar__contatti {
	gap: 1.25rem;
}

.site-header__bar {
	gap: 1.5rem;
	padding-block: 0.85rem;
	flex-wrap: nowrap;
}

.site-brand {
	gap: 0.85rem;
}

.site-brand__logo img {
	border-radius: 50%;
	background: #fff;
}

.site-brand__titolo {
	font-size: 1.35rem !important;
	line-height: 1.05;
	margin: 0;
}

.site-brand__payoff {
	margin: 0.15rem 0 0;
	font-size: 0.65rem !important;
	letter-spacing: 0.16em;
	color: var(--wp--preset--color--muted);
}

.site-header__azioni {
	gap: 0.9rem;
}

/* ---------- Menu ---------- */
.vivai-menu {
	position: relative;
}

.vivai-menu__toggle {
	display: none;
	align-items: center;
	gap: 0.5rem;
	border: 1px solid var(--vivai-line);
	background: transparent;
	color: var(--wp--preset--color--primary);
	font-family: inherit;
	font-size: 0.875rem;
	font-weight: 600;
	padding: 0.55rem 0.9rem;
	border-radius: 999px;
	cursor: pointer;
}

.vivai-menu__toggle-icona {
	display: inline-flex;
	flex-direction: column;
	gap: 4px;
}

.vivai-menu__toggle-icona span {
	display: block;
	width: 18px;
	height: 2px;
	background: currentColor;
	transition: transform 0.2s ease, opacity 0.2s ease;
}

.vivai-menu__list {
	display: flex;
	align-items: center;
	gap: 1.6rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.vivai-menu__list li {
	position: relative;
}

.vivai-menu__list a {
	font-size: 0.9375rem;
	font-weight: 500;
	color: var(--wp--preset--color--primary);
	text-decoration: none;
	padding-block: 0.35rem;
	display: inline-block;
}

.vivai-menu__list a::after {
	content: "";
	display: block;
	height: 2px;
	width: 0;
	background: var(--wp--preset--color--accent);
	transition: width 0.25s ease;
	margin-top: 0.2rem;
}

.vivai-menu__list a:hover::after,
.vivai-menu__list .current-menu-item > a::after,
.vivai-menu__list .current_page_item > a::after,
.vivai-menu__list .current-menu-ancestor > a::after {
	width: 100%;
}

/* La voce Home usa un'icona al posto del testo (il nome resta per
   gli screen reader). */
.vivai-menu__list .menu-item--home > a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding-block: 0.35rem;
	color: var(--wp--preset--color--primary);
}

.vivai-menu__list .menu-item--home > a::after {
	display: none;
}

.vivai-menu__ico {
	display: block;
	width: 18px;
	height: 18px;
	margin-top: -1px;
	transition: color 0.2s ease, transform 0.2s ease;
}

.vivai-menu__list .menu-item--home > a:hover .vivai-menu__ico,
.vivai-menu__list .menu-item--home > a:focus-visible .vivai-menu__ico {
	color: var(--wp--preset--color--accent);
	transform: translateY(-1px);
}

.vivai-menu__list .menu-item--home.current-menu-item > a .vivai-menu__ico,
.vivai-menu__list .menu-item--home.current_page_item > a .vivai-menu__ico {
	color: var(--wp--preset--color--accent);
}

.vivai-menu__list .menu-item--home.current-menu-item > a,
.vivai-menu__list .menu-item--home.current_page_item > a {
	text-decoration: none;
}

.vivai-menu__list .sub-menu {
	position: absolute;
	top: calc(100% + 0.6rem);
	left: -1rem;
	min-width: 15rem;
	background: #fff;
	border: 1px solid var(--vivai-line);
	border-radius: 12px;
	box-shadow: var(--vivai-shadow);
	padding: 0.6rem;
	list-style: none;
	margin: 0;
	display: none;
	z-index: 20;
}

.vivai-menu__list li:hover > .sub-menu,
.vivai-menu__list li:focus-within > .sub-menu,
.vivai-menu__list li.is-sottomenu-aperto > .sub-menu {
	display: block;
}

.vivai-menu__list .sub-menu a {
	display: block;
	padding: 0.5rem 0.75rem;
	border-radius: 8px;
}

.vivai-menu__list .sub-menu a:hover {
	background: var(--wp--preset--color--base-2);
}

.vivai-menu__list .sub-menu a::after {
	display: none;
}

/* Ponte invisibile tra la voce e il pannello: lo spazio di 0.6rem serviva a
   staccare il sottomenu, ma da solo lo faceva richiudere nell'attimo in cui
   il puntatore lo attraversava. */
.vivai-menu__list .sub-menu::before {
	content: "";
	position: absolute;
	top: -0.7rem;
	left: 0;
	right: 0;
	height: 0.7rem;
}

/* Freccia della voce che apre un sottomenu. */
.vivai-menu__freccia {
	display: inline-block;
	width: 6px;
	height: 6px;
	margin-left: 0.4rem;
	border-right: 1.5px solid currentColor;
	border-bottom: 1.5px solid currentColor;
	transform: translateY(-2px) rotate(45deg);
	transition: transform 0.2s ease;
}

.vivai-menu__list li:hover > a .vivai-menu__freccia,
.vivai-menu__list li:focus-within > a .vivai-menu__freccia {
	transform: translateY(1px) rotate(225deg);
}

/* ---------- Selettore lingua ---------- */
.vivai-lingue {
	display: inline-flex;
	align-items: center;
	gap: 0.3rem;
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.08em;
}

.vivai-lingue a,
.vivai-lingue .vivai-lingue__attiva {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
}

.vivai-lingue__bandiera {
	display: block;
	width: 21px;
	height: 14px;
	object-fit: cover;
	border-radius: 2px;
	box-shadow: 0 0 0 1px rgba(22, 36, 28, 0.15);
}

.vivai-lingue__codice {
	font-size: 0.75rem;
}

.vivai-lingue a,
.vivai-lingue span {
	color: var(--wp--preset--color--muted);
	text-decoration: none;
	padding: 0.2rem 0.15rem;
}

.vivai-lingue a:hover {
	color: var(--wp--preset--color--primary);
}

.vivai-lingue .vivai-lingue__attiva {
	color: var(--wp--preset--color--primary);
	border-bottom: 2px solid var(--wp--preset--color--accent);
}

.vivai-lingue__sep {
	color: var(--wp--preset--color--contrast-2);
	opacity: 0.4;
}

/* ---------- Bottoni ---------- */
.is-style-outline-oro .wp-block-button__link {
	background: transparent;
	color: var(--wp--preset--color--primary);
	border: 1px solid var(--wp--preset--color--accent);
}

.is-style-outline-oro .wp-block-button__link:hover {
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--contrast);
}

.is-style-outline-chiaro .wp-block-button__link {
	background: transparent;
	color: var(--wp--preset--color--base);
	border: 1px solid rgba(250, 247, 241, 0.45);
}

.is-style-outline-chiaro .wp-block-button__link:hover {
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--primary);
}

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

.wp-block-button__link:hover {
	transform: translateY(-1px);
}

/* ---------- Hero home ---------- */
.home-hero {
	position: relative;
	min-height: min(86vh, 780px);
	display: flex;
	align-items: flex-end;
	color: var(--wp--preset--color--base);
	overflow: hidden;
}

.home-hero .wp-block-cover__background {
	background: linear-gradient(180deg, rgba(15, 28, 21, 0.25) 0%, rgba(15, 28, 21, 0.55) 55%, rgba(15, 28, 21, 0.88) 100%) !important;
	opacity: 1;
}

.home-hero__contenuto {
	padding-block: clamp(3rem, 7vw, 6rem);
	max-width: 60rem;
}

.home-hero__occhiello {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent-2);
	margin-bottom: 1.25rem;
}

.home-hero__occhiello::before {
	content: "";
	width: 2.5rem;
	height: 1px;
	background: currentColor;
}

.home-hero h1 {
	color: var(--wp--preset--color--base);
	font-size: clamp(2.75rem, 7vw, 5.25rem);
	line-height: 1.02;
	font-weight: 500;
	letter-spacing: -0.02em;
	max-width: 18ch;
	margin: 0 0 1.25rem;
}

.home-hero h1 em {
	color: var(--wp--preset--color--accent-2);
}

.home-hero__sommario {
	font-size: clamp(1.0625rem, 1.4vw, 1.25rem);
	line-height: 1.6;
	max-width: 34rem;
	color: rgba(250, 247, 241, 0.9);
	margin-bottom: 2rem;
}

.home-hero__azioni {
	gap: 0.9rem;
}

.home-hero__dati {
	margin-top: clamp(2.5rem, 5vw, 4rem);
	padding-top: 1.75rem;
	border-top: 1px solid rgba(250, 247, 241, 0.25);
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1.5rem;
	max-width: 52rem;
}

.home-hero__dato strong {
	display: block;
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(1.75rem, 2.6vw, 2.5rem);
	font-weight: 500;
	color: var(--wp--preset--color--base);
	line-height: 1;
	margin-bottom: 0.35rem;
}

.home-hero__dato span {
	font-size: 0.78rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: rgba(250, 247, 241, 0.72);
}

/* ---------- Home: intro ---------- */
.home-intro {
	display: grid;
	grid-template-columns: 1.05fr 0.95fr;
	gap: clamp(2rem, 5vw, 4.5rem);
	align-items: center;
}

.home-intro__immagine {
	position: relative;
}

.home-intro__immagine img {
	border-radius: var(--vivai-radius);
	box-shadow: var(--vivai-shadow);
}

.home-intro__badge {
	position: absolute;
	right: -0.75rem;
	bottom: -1.5rem;
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--base);
	padding: 1.1rem 1.35rem;
	border-radius: 12px;
	font-size: 0.8rem;
	line-height: 1.35;
	letter-spacing: 0.04em;
	max-width: 13rem;
	box-shadow: var(--vivai-shadow);
}

.home-intro__badge strong {
	display: block;
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.6rem;
	font-weight: 500;
	color: var(--wp--preset--color--accent-2);
}

.home-intro__testo h2 {
	margin-top: 0;
}

.home-intro__elenco {
	list-style: none;
	padding: 0;
	margin: 1.5rem 0 2rem;
	display: grid;
	gap: 0.8rem;
}

.home-intro__elenco li {
	position: relative;
	padding-left: 1.75rem;
	color: var(--wp--preset--color--contrast-2);
}

.home-intro__elenco li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.55rem;
	width: 0.7rem;
	height: 0.7rem;
	border-radius: 50%;
	border: 2px solid var(--wp--preset--color--accent);
}

/* ---------- Griglia card ---------- */
.vivai-griglia {
	margin-block: 0;
}

.vivai-griglia__elementi {
	row-gap: clamp(1.5rem, 3vw, 2.25rem);
	column-gap: clamp(1.25rem, 2.5vw, 2rem);
}

.vivai-card {
	background: #fff;
	border: 1px solid var(--vivai-line);
	border-radius: var(--vivai-radius);
	overflow: hidden;
	height: 100%;
	display: flex;
	flex-direction: column;
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.vivai-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--vivai-shadow);
}

.vivai-card__immagine {
	margin: 0 !important;
}

.vivai-card__immagine img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.5s ease;
}

.vivai-card:hover .vivai-card__immagine img {
	transform: scale(1.03);
}

.vivai-card__corpo {
	padding: 1.35rem 1.4rem 1.5rem;
	display: flex;
	flex-direction: column;
	gap: 0.55rem;
	flex: 1;
}

.vivai-card__occhiello {
	font-size: 0.7rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--secondary);
	margin: 0;
	font-weight: 600;
}

.vivai-card__occhiello a {
	text-decoration: none;
	color: inherit;
}

.vivai-card__titolo {
	font-size: 1.3rem !important;
	line-height: 1.2;
	margin: 0 !important;
	font-weight: 600;
}

.vivai-card__titolo a {
	text-decoration: none;
	color: var(--wp--preset--color--primary);
}

.vivai-card__testo {
	font-size: 0.9375rem;
	line-height: 1.6;
	color: var(--wp--preset--color--contrast-2);
	margin: 0;
}

.vivai-card__testo p {
	margin: 0;
}

.vivai-card__link {
	margin: auto 0 0;
	font-size: 0.82rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	color: var(--wp--preset--color--accent);
	text-transform: uppercase;
	display: inline-block;
	align-self: flex-start;
	text-decoration: none;
}

.vivai-card__link:hover,
.vivai-card__link:focus-visible {
	text-decoration: underline;
	text-underline-offset: 0.25em;
}

.vivai-card__link .screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

.vivai-card__data {
	font-size: 0.78rem;
	color: var(--wp--preset--color--muted);
	margin: 0;
}

.vivai-card--offerta .vivai-card__immagine img {
	aspect-ratio: 1 / 1;
}

.vivai-card__scheda {
	margin: 0.35rem 0 0;
}

.vivai-card__scheda .vivai-scheda {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem 1rem;
	border: 0;
	padding: 0;
	margin: 0;
}

.vivai-card__scheda .vivai-scheda__titolo {
	display: none;
}

.vivai-card__scheda .vivai-scheda__riga {
	display: flex;
	gap: 0.35rem;
	font-size: 0.8rem;
}

.vivai-card__scheda dt {
	color: var(--wp--preset--color--muted);
	font-weight: 500;
}

.vivai-card__scheda dd {
	margin: 0;
	font-weight: 600;
	color: var(--wp--preset--color--contrast);
}

/* ---------- Galleria ---------- */
.vivai-galleria {
	display: grid;
	grid-template-columns: repeat(12, 1fr);
	grid-auto-rows: 12rem;
	gap: 0.85rem;
}

.vivai-galleria figure {
	margin: 0;
	position: relative;
	overflow: hidden;
	border-radius: 10px;
}

.vivai-galleria img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.6s ease;
}

.vivai-galleria figure:hover img {
	transform: scale(1.04);
}

.vivai-galleria figcaption {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	padding: 2.5rem 1rem 0.85rem;
	background: linear-gradient(180deg, rgba(15, 28, 21, 0) 0%, rgba(15, 28, 21, 0.75) 100%);
	color: var(--wp--preset--color--base);
	font-size: 0.78rem;
	letter-spacing: 0.04em;
}

.vivai-galleria figure:nth-child(1) { grid-column: span 6; grid-row: span 2; }
.vivai-galleria figure:nth-child(2) { grid-column: span 3; }
.vivai-galleria figure:nth-child(3) { grid-column: span 3; }
.vivai-galleria figure:nth-child(4) { grid-column: span 3; }
.vivai-galleria figure:nth-child(5) { grid-column: span 3; }
.vivai-galleria figure:nth-child(6) { grid-column: span 4; }
.vivai-galleria figure:nth-child(7) { grid-column: span 4; }
.vivai-galleria figure:nth-child(8) { grid-column: span 4; }

/* ---------- Fascia CTA ---------- */
.vivai-cta {
	position: relative;
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--base);
	overflow: hidden;
}

.vivai-cta::after {
	content: "";
	position: absolute;
	inset: auto -10% -60% auto;
	width: 34rem;
	height: 34rem;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(193, 148, 52, 0.28) 0%, rgba(193, 148, 52, 0) 65%);
	pointer-events: none;
}

.vivai-cta__inner {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: 1.2fr auto;
	gap: 2rem;
	align-items: center;
	padding-block: clamp(2.75rem, 5vw, 4.25rem);
}

.vivai-cta h2 {
	color: var(--wp--preset--color--base);
	margin: 0 0 0.65rem;
}

.vivai-cta p {
	margin: 0;
	color: rgba(250, 247, 241, 0.8);
	max-width: 38rem;
}

.vivai-cta__azioni {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
}

/* ---------- Archivio ---------- */
.archivio-testata {
	padding-block: clamp(3rem, 6vw, 5rem) clamp(2.5rem, 5vw, 4rem);
	background-image: radial-gradient(circle at 85% 20%, rgba(193, 148, 52, 0.22) 0%, rgba(193, 148, 52, 0) 55%);
}

.archivio-testata__titolo {
	color: var(--wp--preset--color--base) !important;
	margin: 0.5rem 0 1rem;
	font-size: clamp(2.25rem, 5vw, 3.75rem);
	font-weight: 500;
}

.archivio-testata__testo {
	max-width: 44rem;
	color: rgba(250, 247, 241, 0.85);
	margin: 0;
}

.archivio-testata__filtri {
	margin-top: 1.5rem;
	font-size: 0.9rem;
	color: rgba(250, 247, 241, 0.75);
}

.archivio-testata__filtri a {
	color: var(--wp--preset--color--accent-2);
	text-decoration: none;
	border-bottom: 1px solid rgba(230, 211, 163, 0.45);
}

.archivio-corpo {
	padding-block: clamp(2.75rem, 6vw, 5rem);
}

.archivio-corpo .vivai-sezione__titolo {
	margin-bottom: 2rem;
}

.archivio-testata--404 {
	padding-bottom: clamp(3rem, 6vw, 6rem);
}

.vivai-paginazione {
	margin-top: clamp(2.5rem, 5vw, 4rem);
	gap: 0.5rem;
}

.vivai-paginazione .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.6rem;
	height: 2.6rem;
	padding: 0 0.75rem;
	border: 1px solid var(--vivai-line);
	border-radius: 999px;
	text-decoration: none;
	color: var(--wp--preset--color--primary);
	font-size: 0.9rem;
}

.vivai-paginazione .page-numbers.current {
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--base);
	border-color: var(--wp--preset--color--primary);
}

/* ---------- Scheda pianta ---------- */
.scheda-hero {
	padding-block: clamp(2rem, 4vw, 3.5rem) clamp(2.5rem, 5vw, 4.5rem);
	background-image: radial-gradient(circle at 90% 0%, rgba(193, 148, 52, 0.18) 0%, rgba(193, 148, 52, 0) 55%);
}

.scheda-hero__colonne {
	gap: clamp(1.5rem, 4vw, 3.5rem);
	margin-top: 1.25rem;
}

.scheda-hero__occhiello {
	font-size: 0.72rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	font-weight: 600;
	margin: 0 0 0.75rem;
}

.scheda-hero__occhiello a {
	color: var(--wp--preset--color--accent-2);
	text-decoration: none;
}

.scheda-hero__titolo {
	color: var(--wp--preset--color--base) !important;
	font-size: clamp(2.25rem, 5vw, 3.75rem);
	line-height: 1.05;
	margin: 0 0 1rem;
	font-weight: 500;
}

.scheda-hero__testo {
	color: rgba(250, 247, 241, 0.85);
	font-size: 1.0625rem;
	max-width: 34rem;
	margin: 0 0 1.75rem;
}

.scheda-hero__immagine {
	margin: 0 !important;
}

.scheda-hero__immagine img {
	border-radius: var(--vivai-radius);
	box-shadow: 0 30px 70px -40px rgba(0, 0, 0, 0.8);
}

.scheda-corpo {
	padding-block: clamp(2.5rem, 5vw, 4.5rem);
}

.scheda-corpo__colonne {
	gap: clamp(1.75rem, 4vw, 3rem);
}

.scheda-corpo h2 {
	margin-top: 2.2rem;
}

.scheda-corpo h2:first-child {
	margin-top: 0;
}

.scheda-corpo h3 {
	margin-top: 1.8rem;
}

.scheda-corpo ul {
	padding-left: 1.1rem;
}

.scheda-corpo li {
	margin-bottom: 0.35rem;
}

.scheda-corpo__laterale {
	position: sticky;
	top: 7rem;
	align-self: start;
}

.vivai-scheda {
	margin: 0 0 1.75rem;
	padding: 1.35rem 1.4rem;
	background: #fff;
	border: 1px solid var(--vivai-line);
	border-radius: var(--vivai-radius);
}

.vivai-scheda__titolo {
	font-size: 1.05rem !important;
	margin: 0 0 1rem !important;
	letter-spacing: 0.02em;
}

.vivai-scheda__riga {
	display: grid;
	grid-template-columns: 42% 1fr;
	gap: 0.6rem;
	padding-block: 0.55rem;
	border-bottom: 1px solid var(--vivai-line);
}

.vivai-scheda__riga:last-child {
	border-bottom: 0;
}

.vivai-scheda dt {
	font-size: 0.8rem;
	color: var(--wp--preset--color--muted);
	font-weight: 500;
	letter-spacing: 0.02em;
}

.vivai-scheda dd {
	margin: 0;
	font-size: 0.875rem;
	font-weight: 600;
	line-height: 1.45;
}

.scheda-contatto {
	padding: 1.4rem;
	border-radius: var(--vivai-radius);
	border: 1px solid var(--vivai-line);
}

.scheda-contatto h3 {
	margin-top: 0 !important;
	font-size: 1.2rem !important;
}

.scheda-contatto p {
	font-size: 0.9rem;
}

.scheda-contatto p:last-child {
	margin-bottom: 0;
}

/* ---------- Briciole ---------- */
.vivai-briciole {
	font-size: 0.78rem;
	letter-spacing: 0.04em;
	color: var(--wp--preset--color--muted);
}

.vivai-briciole ol {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.45rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.vivai-briciole li {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
}

.vivai-briciole li + li::before {
	content: "/";
	opacity: 0.45;
}

.vivai-briciole a {
	color: inherit;
	text-decoration: none;
}

.vivai-briciole a:hover {
	color: var(--wp--preset--color--accent);
}

.archivio-testata .vivai-briciole,
.scheda-hero .vivai-briciole {
	color: rgba(250, 247, 241, 0.65);
}

/* ---------- Form ---------- */
.vivai-form {
	background: #fff;
	border: 1px solid var(--vivai-line);
	border-radius: var(--vivai-radius);
	padding: clamp(1.5rem, 3vw, 2.25rem);
	box-shadow: var(--vivai-shadow);
}

.vivai-form__griglia {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0 1.25rem;
}

.vivai-form__campo {
	margin: 0 0 1.1rem;
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
}

.vivai-form__campo label {
	font-size: 0.8rem;
	font-weight: 600;
	letter-spacing: 0.03em;
	color: var(--wp--preset--color--contrast-2);
}

.vivai-form input[type="text"],
.vivai-form input[type="email"],
.vivai-form input[type="tel"],
.vivai-form textarea {
	width: 100%;
	padding: 0.8rem 0.95rem;
	border: 1px solid rgba(22, 36, 28, 0.2);
	border-radius: 8px;
	font-family: inherit;
	font-size: 0.95rem;
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.vivai-form input:focus,
.vivai-form textarea:focus {
	outline: none;
	border-color: var(--wp--preset--color--secondary);
	box-shadow: 0 0 0 3px rgba(62, 122, 46, 0.15);
}

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

.vivai-form__privacy {
	font-size: 0.82rem;
	color: var(--wp--preset--color--contrast-2);
	margin: 0.5rem 0 1.25rem;
}

.vivai-form__privacy label {
	display: flex;
	gap: 0.6rem;
	align-items: flex-start;
	cursor: pointer;
}

.vivai-form__privacy input {
	margin-top: 0.2rem;
}

.vivai-form__obbligatorio {
	color: #a33;
}

.vivai-form__azioni {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1rem;
	margin: 0;
}

.vivai-form__nota {
	font-size: 0.8rem;
	color: var(--wp--preset--color--muted);
}

.vivai-form__esca {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.vivai-form__messaggio {
	padding: 0.9rem 1.1rem;
	border-radius: 8px;
	font-size: 0.92rem;
	margin-bottom: 1.25rem;
}

.vivai-form__messaggio--ok {
	background: rgba(62, 122, 46, 0.12);
	color: #2c5721;
	border: 1px solid rgba(62, 122, 46, 0.3);
}

.vivai-form__messaggio--err {
	background: rgba(163, 51, 51, 0.08);
	color: #8a2b2b;
	border: 1px solid rgba(163, 51, 51, 0.25);
}

/* ---------- Contatti ---------- */
.contatti-griglia {
	display: grid;
	grid-template-columns: 0.9fr 1.1fr;
	gap: clamp(2rem, 5vw, 4rem);
	align-items: start;
}

.contatti-dati {
	list-style: none;
	padding: 0;
	margin: 1.75rem 0 2rem;
	display: grid;
	gap: 1.15rem;
}

.contatti-dati li {
	padding-bottom: 1rem;
	border-bottom: 1px solid var(--vivai-line);
}

.contatti-dati strong {
	display: block;
	font-size: 0.72rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent);
	margin-bottom: 0.3rem;
}

.contatti-dati a {
	text-decoration: none;
	color: var(--wp--preset--color--primary);
}

.contatti-mappa {
	margin-top: 2rem;
	border-radius: var(--vivai-radius);
	overflow: hidden;
	border: 1px solid var(--vivai-line);
	background: var(--wp--preset--color--base-2);
}

.contatti-mappa iframe {
	display: block;
	width: 100%;
	height: 260px;
	border: 0;
}

/* ---------- Pagine ---------- */
/* La pagina è alta 1400 px anche sui grandi schermi: i titoli restano
   leggibili mentre i contenuti si allargano senza superare i 1400 px. */
.site-main--pagina .pagina-testata {
	padding-block: clamp(2.25rem, 5vw, 4rem) clamp(1rem, 2vw, 1.5rem);
}

.pagina-testata__titolo {
	margin: 0.75rem 0 0;
	font-size: clamp(2.25rem, 5vw, 3.5rem);
	font-weight: 500;
}

.site-main--pagina > .wp-block-post-content,
.site-main--pagina > .entry-content {
	padding-bottom: clamp(3rem, 7vw, 6rem);
}

.site-main--pagina > .wp-block-post-content > .alignfull,
.site-main--wide > .wp-block-post-content > .alignfull {
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	width: 100vw;
}

.wp-block-post-content > .alignwide {
	width: min(96rem, 100vw - 2.5rem);
	margin-left: auto;
	margin-right: auto;
}

.vivai-due-colonne {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(2rem, 5vw, 4rem);
	align-items: center;
}

.vivai-due-colonne--invertita .vivai-due-colonne__testo {
	order: 2;
}

.vivai-due-colonne__immagine img {
	border-radius: var(--vivai-radius);
	box-shadow: var(--vivai-shadow);
}

.vivai-elenco-punti {
	list-style: none;
	padding: 0;
	margin: 1.5rem 0;
	display: grid;
	gap: 0.9rem;
}

.vivai-elenco-punti li {
	position: relative;
	padding-left: 2rem;
	color: var(--wp--preset--color--contrast-2);
}

.vivai-elenco-punti li::before {
	content: "✓";
	position: absolute;
	left: 0;
	top: 0.05rem;
	width: 1.35rem;
	height: 1.35rem;
	border-radius: 50%;
	background: rgba(62, 122, 46, 0.12);
	color: var(--wp--preset--color--secondary);
	font-size: 0.75rem;
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 700;
}

.vivai-numeri {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.5rem;
	margin-top: 2.5rem;
}

.vivai-numeri__voce {
	padding-top: 1rem;
	border-top: 2px solid var(--wp--preset--color--accent);
}

.vivai-numeri__voce strong {
	display: block;
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(2rem, 3vw, 2.75rem);
	font-weight: 500;
	color: var(--wp--preset--color--primary);
	line-height: 1;
}

.vivai-numeri__voce span {
	font-size: 0.8rem;
	color: var(--wp--preset--color--muted);
}

/* Numeri e testi nelle sezioni scure. */
.vivai-sezione--scura .vivai-numeri__voce strong {
	color: var(--wp--preset--color--base);
}

.vivai-sezione--scura .vivai-numeri__voce span {
	color: rgba(250, 247, 241, 0.7);
}

.vivai-sezione--scura .vivai-elenco-punti li {
	color: rgba(250, 247, 241, 0.85);
}

.vivai-sezione--scura .vivai-elenco-punti li::before {
	background: rgba(230, 211, 163, 0.18);
	color: var(--wp--preset--color--accent-2);
}

.vivai-sezione--scura a {
	color: var(--wp--preset--color--accent-2);
}

/* ---------- Footer ---------- */
.site-footer {
	margin-top: 0;
	padding-block: clamp(3rem, 6vw, 4.5rem) 1.75rem;
}

.site-footer__inner {
	max-width: 88rem;
}

.site-footer__colonne {
	gap: clamp(2rem, 4vw, 3.5rem);
	margin-bottom: 2.5rem;
}

.site-footer__titolo {
	color: var(--wp--preset--color--base) !important;
	font-size: 1.35rem !important;
	margin: 0 0 0.85rem;
}

.site-footer__sottotitolo {
	color: var(--wp--preset--color--accent-2) !important;
	font-size: 0.75rem !important;
	text-transform: uppercase;
	letter-spacing: 0.18em;
	margin: 0 0 1rem;
}

.site-footer__testo {
	color: rgba(250, 247, 241, 0.72);
	font-size: 0.9rem;
	max-width: 26rem;
}

.site-footer__nota {
	color: rgba(250, 247, 241, 0.5);
	font-size: 0.78rem;
}

.site-footer__contatto {
	color: rgba(250, 247, 241, 0.82);
	font-size: 0.9rem;
	line-height: 1.7;
}

.site-footer a {
	color: var(--wp--preset--color--base);
	text-decoration: none;
}

.site-footer a:hover {
	color: var(--wp--preset--color--accent-2);
	text-decoration: underline;
}

.site-footer .vivai-menu__list {
	flex-direction: column;
	align-items: flex-start;
	gap: 0.55rem;
}

.site-footer .vivai-menu__list a {
	color: rgba(250, 247, 241, 0.8);
	font-size: 0.9rem;
}

.site-footer .vivai-menu__list a:hover {
	color: var(--wp--preset--color--accent-2);
}

.site-footer .vivai-menu__toggle {
	display: none;
}

.site-footer .vivai-menu__list .sub-menu {
	display: none;
}

.site-footer__linea {
	margin: 0 0 1.25rem !important;
	opacity: 0.15;
}

.site-footer__legale {
	font-size: 0.78rem;
	color: rgba(250, 247, 241, 0.55);
	gap: 0.75rem 1.5rem;
}

.site-footer__links {
	gap: 1.25rem;
}

.site-footer__links p {
	margin: 0;
}

.site-footer__copyright {
	margin: 0;
}

/* ---------- Animazioni leggere ---------- */
@media (prefers-reduced-motion: no-preference) {
	.vivai-reveal {
		opacity: 0;
		transform: translateY(18px);
		transition: opacity 0.7s ease, transform 0.7s ease;
	}

	.vivai-reveal.is-visible {
		opacity: 1;
		transform: none;
	}
}

/* ---------- Admin bar ---------- */
.admin-bar .site-header {
	top: 32px;
}

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

/* ---------- Responsive ---------- */
@media (max-width: 1100px) {
	.site-header__cta {
		display: none;
	}

	.vivai-menu__list {
		gap: 1.15rem;
	}

	.home-intro {
		grid-template-columns: 1fr;
	}

	.home-intro__badge {
		right: 1rem;
	}

	.vivai-galleria {
		grid-auto-rows: 9rem;
	}

	.vivai-galleria figure:nth-child(1) { grid-column: span 8; }
	.vivai-galleria figure:nth-child(2) { grid-column: span 4; }
	.vivai-galleria figure:nth-child(3) { grid-column: span 4; }
	.vivai-galleria figure:nth-child(4) { grid-column: span 4; }
	.vivai-galleria figure:nth-child(5) { grid-column: span 4; }
	.vivai-galleria figure:nth-child(6) { grid-column: span 6; }
	.vivai-galleria figure:nth-child(7) { grid-column: span 6; }
	.vivai-galleria figure:nth-child(8) { grid-column: span 12; }
}

@media (max-width: 900px) {
	.site-topbar__claim {
		display: none;
	}

	.site-bar {
		gap: 0.75rem;
	}

	.vivai-menu__toggle {
		display: inline-flex;
	}

	/* Su iOS il filtro dell'intestazione crea un contenitore che ritagliava
	   il pannello: qui lo disattiviamo per una resa identica su ogni device. */
	.site-header {
		-webkit-backdrop-filter: none;
		backdrop-filter: none;
		background: var(--wp--preset--color--base);
	}

	.vivai-menu__toggle {
		display: inline-flex;
		justify-content: center;
		min-width: 44px;
		min-height: 44px;
	}

	/* Il pannello è agganciato alla finestra (e non all'intestazione): così
	   resta centrato e interamente visibile, senza ritagli, su ogni telefono. */
	.site-header .vivai-menu {
		position: static;
	}

	.vivai-menu__panel {
		position: fixed;
		top: var(--vivai-menu-top, 4.5rem);
		left: 50%;
		right: auto;
		transform: translateX(-50%);
		width: min(30rem, calc(100vw - 1.5rem));
		max-width: none;
		margin-inline: 0;
		max-height: calc(100dvh - var(--vivai-menu-top, 4.5rem) - 0.75rem);
		overflow-y: auto;
		overscroll-behavior: contain;
		-webkit-overflow-scrolling: touch;
		background: #fff;
		border: 1px solid var(--vivai-line);
		border-radius: 16px;
		box-shadow: var(--vivai-shadow);
		padding: 1rem;
		display: none;
		z-index: 130;
	}

	.vivai-menu.is-open .vivai-menu__panel {
		display: block;
	}

	.vivai-menu__list {
		flex-direction: column;
		align-items: stretch;
		gap: 0.15rem;
	}

	.vivai-menu__list a {
		display: flex;
		align-items: center;
		min-height: 3rem;
		padding: 0.75rem 0.6rem;
		border-radius: 8px;
		line-height: 1.3;
	}

	.vivai-menu__list a:hover {
		background: var(--wp--preset--color--base-2);
	}

	.vivai-menu__list a::after {
		display: none;
	}

	.vivai-menu__list .sub-menu {
		position: static;
		display: block;
		box-shadow: none;
		border: 0;
		border-left: 2px solid var(--vivai-line);
		border-radius: 0;
		margin: 0.15rem 0 0.35rem 0.75rem;
		padding: 0 0 0 0.5rem;
		min-width: 0;
	}

	/* Le voci del sottomenu hanno la stessa comodità al tocco di quelle
	   principali: 48px di altezza minima, altrimenti con il pollice si
	   finisce sulla voce accanto. */
	.vivai-menu__list .sub-menu a {
		display: flex;
		align-items: center;
		min-height: 3rem;
		padding: 0.75rem 0.75rem;
		font-size: 1rem;
		line-height: 1.3;
	}

	.vivai-menu__list .sub-menu li + li {
		margin-top: 0.15rem;
	}

	/* Su mobile il sottomenu è sempre aperto: la freccia non serve. */
	.vivai-menu__freccia {
		display: none;
	}

	.site-header__bar {
		flex-wrap: wrap;
	}

	.site-brand__titolo {
		font-size: 1.2rem !important;
	}

	.home-hero {
		min-height: 78vh;
	}

	.home-hero__dati {
		grid-template-columns: repeat(2, 1fr);
	}

	.home-intro__badge {
		position: static;
		margin-top: 1rem;
		max-width: none;
	}

	.contatti-griglia,
	.vivai-due-colonne,
	.vivai-cta__inner {
		grid-template-columns: 1fr;
	}

	.vivai-due-colonne--invertita .vivai-due-colonne__testo {
		order: 0;
	}

	.scheda-corpo__laterale {
		position: static;
	}

	.site-footer__colonne {
		flex-direction: column;
	}

	.site-footer__colonne .wp-block-column {
		flex-basis: auto !important;
	}
}

@media (max-width: 640px) {
	.site-topbar__contatti {
		gap: 0.75rem;
		font-size: 0.75rem;
	}

	.site-header__bar {
		gap: 0.75rem;
		padding-block: 0.7rem;
	}

	.vivai-form__griglia {
		grid-template-columns: 1fr;
	}

	.vivai-numeri {
		grid-template-columns: 1fr;
	}

	.vivai-galleria {
		grid-auto-rows: 8rem;
	}

	.vivai-galleria figure:nth-child(n) {
		grid-column: span 6;
	}

	.vivai-galleria figure:nth-child(1) {
		grid-column: span 12;
	}

	.home-hero h1 {
		font-size: clamp(2.3rem, 10vw, 3rem);
	}

	.home-hero__azioni .wp-block-button,
	.home-hero__azioni .wp-block-button__link {
		width: 100%;
	}

	.vivai-cta__azioni .wp-block-button,
	.vivai-cta__azioni .wp-block-button__link {
		width: 100%;
	}

	.scheda-hero__colonne {
		flex-direction: column-reverse;
	}
}

/* ---------- Stampa ---------- */
@media print {
	.site-header,
	.site-footer,
	.vivai-cta,
	.vivai-briciole {
		display: none !important;
	}

	body {
		background: #fff;
	}
}

/* ==========================================================================
   Revisione grafica — intestazione, navigazione, pulsanti, piè di pagina
   ========================================================================== */

/* ---------- Intestazione: proporzioni e allineamenti ---------- */
.site-topbar {
	font-size: 0.78rem;
	letter-spacing: 0.02em;
}

.site-topbar__inner {
	padding-block: 0.45rem;
	gap: 0.35rem 1.5rem;
	min-height: 2.15rem;
}

.site-topbar__claim {
	font-size: 0.7rem !important;
	letter-spacing: 0.11em;
	text-transform: uppercase;
	margin: 0;
}

.site-topbar__contatti {
	gap: 0.5rem 1.35rem;
}

.site-topbar__voce {
	font-size: 0.78rem !important;
	margin: 0;
	white-space: nowrap;
}

.site-header__inner {
	margin-inline: auto;
}

.site-header__bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: clamp(1rem, 2.5vw, 2.25rem);
	flex-wrap: nowrap;
	padding-block: 0.85rem;
	min-height: 5.5rem;
}

.site-brand {
	display: flex;
	align-items: center;
	gap: 1rem;
	flex: 0 0 auto;
	min-width: 0;
}

.site-brand__logo {
	flex: 0 0 auto;
	line-height: 0;
}

.site-brand__logo img {
	display: block;
	height: 68px;
	width: auto !important;
	max-height: 68px;
	border-radius: 0;
	background: none;
	padding: 0;
	box-shadow: none;
}

.site-brand__testo {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 0.15rem;
	padding-left: 1rem;
	border-left: 1px solid var(--vivai-line);
	max-width: 16rem;
}

/* Il nome è già nel logo: resta nel markup per l'accessibilità, non a schermo. */
.site-brand__testo .site-brand__titolo,
.site-brand__testo .wp-block-site-title {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
	margin: 0;
	padding: 0;
}

.site-brand__payoff {
	margin: 0;
	font-size: 0.66rem !important;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
	line-height: 1.35;
}

.site-header__azioni {
	display: flex;
	align-items: center;
	gap: 1rem;
	flex: 0 0 auto;
}

@media (max-width: 1280px) {
	.site-header__cta {
		display: none;
	}
}

@media (max-width: 1200px) {
	.site-brand__testo {
		display: none;
	}
}

/* ---------- Menu principale ---------- */
.site-header .vivai-menu {
	margin-left: auto;
}

/* WordPress può racchiudere lo shortcode in un paragrafo vuoto: dentro la
   navigazione aggiungeva 39 px di margini e impediva di compattare la barra. */
.site-header .vivai-menu > p:empty {
	display: none;
}

.vivai-menu__list {
	gap: clamp(1.1rem, 1.8vw, 1.9rem);
}

.vivai-menu__list a {
	font-size: 0.95rem;
	font-weight: 500;
	letter-spacing: 0.005em;
	line-height: 1.2;
	padding-block: 0.45rem;
}

.vivai-menu__list > li > a::after {
	margin-top: 0.15rem;
	height: 2px;
}

.vivai-menu__toggle {
	align-items: center;
	gap: 0.55rem;
	padding: 0.5rem 0.95rem;
	border-radius: 999px;
	border: 1px solid rgba(22, 36, 28, 0.18);
	background: #fff;
	font-size: 0.85rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	box-shadow: 0 1px 2px rgba(22, 36, 28, 0.05);
}

.vivai-menu__toggle-testo {
	line-height: 1;
}

.vivai-menu__cta {
	display: none;
	margin-top: 0.85rem;
	padding: 0.8rem 1rem;
	border-radius: 999px;
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--base) !important;
	text-align: center;
	font-weight: 600;
	font-size: 0.92rem;
	text-decoration: none !important;
}

.vivai-menu__cta::after {
	display: none !important;
}

/* ---------- Selettore lingua ---------- */
.vivai-lingue {
	gap: 0.35rem;
	font-size: 0.8125rem;
	padding: 0.25rem 0.35rem;
	border: 1px solid var(--vivai-line);
	border-radius: 999px;
	background: #fff;
}

.vivai-lingue a,
.vivai-lingue .vivai-lingue__attiva {
	padding: 0.2rem 0.45rem;
	border-radius: 999px;
	line-height: 1;
}

.vivai-lingue .vivai-lingue__attiva {
	border-bottom: 0;
	background: rgba(193, 148, 52, 0.16);
	color: var(--wp--preset--color--primary);
}

.vivai-lingue a:hover {
	background: var(--wp--preset--color--base-2);
}

.vivai-lingue__bandiera {
	width: 20px;
	height: 14px;
	border-radius: 2px;
	box-shadow: 0 0 0 1px rgba(22, 36, 28, 0.12);
}

.vivai-lingue__codice {
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.06em;
}

/* ---------- Pulsanti ---------- */
.is-style-cta-oro .wp-block-button__link {
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--contrast);
	border: 1px solid var(--wp--preset--color--accent);
	border-radius: 999px;
	padding: 0.72rem 1.35rem;
	font-size: 0.875rem;
	font-weight: 600;
	letter-spacing: 0.01em;
	white-space: nowrap;
	line-height: 1.1;
}

.is-style-cta-oro .wp-block-button__link:hover,
.is-style-cta-oro .wp-block-button__link:focus-visible {
	background: var(--wp--preset--color--contrast);
	border-color: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
}

.wp-block-button__link,
.wp-element-button {
	border-radius: 999px;
}

/* ---------- Intestazione compatta allo scroll ----------
   Su desktop la transizione non cambia più l'altezza dell'intestazione: la
   barra fissa scorre fuori dallo schermo con una traslazione (solo layer di
   compositing). Animare height/min-height costringeva il browser a rifare il
   layout e a ridipingere la striscia di pagina sotto l'header a ogni frame:
   era quello il "frizzare" dell'intestazione su PC. Su telefono, dove non c'è
   transizione, la barra superiore si richiude ancora in altezza. */
.site-topbar {
	overflow: hidden;
}

@media (max-width: 900px) {
	.site-header.is-compact .site-topbar {
		height: 0;
		opacity: 0;
		pointer-events: none;
	}
}

@media (min-width: 901px) {
	.site-header.is-compact .site-topbar {
		height: var(--vivai-topbar-h, 2.25rem);
		opacity: 0;
		pointer-events: none;
	}
}

.site-header.is-compact .site-header__bar {
	padding-block: 0.45rem;
	min-height: 4rem;
}

.site-header.is-compact .site-brand__logo img {
	height: 50px;
	max-height: 50px;
}

/* Solo sul menu orizzontale: nel pannello del telefono le voci devono
   restare alte a sufficienza per il dito anche a intestazione compatta,
   altrimenti scendevano a 29px e si sbagliava voce. */
@media (min-width: 901px) {
	.site-header.is-compact .vivai-menu__list a {
		padding-block: 0.3rem;
	}
}

.site-header.is-compact {
	box-shadow: 0 10px 30px -26px rgba(22, 36, 28, 0.55);
}

/* Misura dell'altezza estesa: con le transizioni attive il primo fotogramma
   dopo la rimozione di is-compact restituisce ancora l'altezza ridotta e la
   riserva sul contenitore usciva sbagliata (riga chiara sotto la barra). */
.site-header.is-misura,
.site-header.is-misura * {
	transition: none !important;
}

@media (min-width: 901px) {
	.site-topbar {
		height: var(--vivai-topbar-h, 2.25rem);
	}

	/* L'intestazione vive su un layer proprio: la traslazione la esegue il
	   compositor senza ridisegnare la pagina sottostante. */
	header.wp-block-template-part > .site-header {
		transform: translate3d(0, 0, 0);
		backface-visibility: hidden;
	}

	/* Lo stato compatto alza l'intera intestazione di quanto è alta la barra
	   superiore: resta solo la barra principale, senza buchi né salti.
	   Il selettore ripete il contenitore perché la regola qui sopra ha una
	   specificità maggiore: con il solo .is-compact la traslazione perdeva
	   e restavano 36px di barra vuota in cima durante lo scorrimento. */
	header.wp-block-template-part > .site-header.is-compact {
		transform: translate3d(0, calc(-1 * var(--vivai-topbar-h, 2.25rem)), 0);
	}
}

@media (min-width: 901px) and (prefers-reduced-motion: no-preference) {
	header.wp-block-template-part > .site-header {
		will-change: transform;
		transition: transform 0.32s cubic-bezier(0.4, 0, 0.2, 1);
	}

	.site-topbar {
		transition: opacity 0.18s ease;
	}

	.site-header__bar {
		transition: min-height 0.32s cubic-bezier(0.4, 0, 0.2, 1), padding-block 0.32s cubic-bezier(0.4, 0, 0.2, 1);
	}

	.site-brand__logo img {
		transition: height 0.32s cubic-bezier(0.4, 0, 0.2, 1);
	}
}

/* ---------- Piè di pagina ---------- */
.site-footer {
	padding-block: clamp(3rem, 6vw, 4.5rem) 1.75rem;
}

.site-footer__inner {
	margin-inline: auto;
}

.site-footer__griglia {
	display: grid;
	grid-template-columns: minmax(0, 1.45fr) minmax(0, 0.85fr) minmax(0, 1.15fr);
	gap: clamp(1.75rem, 4vw, 4rem);
	align-items: start;
}

.site-footer__col p {
	margin-block: 0 0.6rem;
}

.site-footer__titolo {
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.3rem !important;
	font-weight: 500;
	letter-spacing: -0.01em;
	color: var(--wp--preset--color--base);
	margin: 0 0 0.75rem;
}

.site-footer__sottotitolo {
	font-size: 0.72rem !important;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent-2);
	margin: 0 0 1rem;
}

.site-footer__testo {
	font-size: 0.95rem;
	line-height: 1.65;
	color: rgba(250, 247, 241, 0.78);
	max-width: 34rem;
}

.site-footer__orari {
	font-size: 0.88rem;
	line-height: 1.6;
	color: rgba(250, 247, 241, 0.72);
}

.site-footer__contatto {
	font-size: 0.92rem;
	line-height: 1.7;
	color: rgba(250, 247, 241, 0.82);
}

.site-footer__nota {
	font-size: 0.8rem;
	line-height: 1.6;
	color: rgba(250, 247, 241, 0.55);
}

.site-footer a {
	color: rgba(250, 247, 241, 0.86);
	text-decoration: none;
}

.site-footer a:hover {
	color: var(--wp--preset--color--accent-2);
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

.site-footer .vivai-menu {
	margin: 0;
}

.site-footer .vivai-menu__panel {
	position: static !important;
	display: block !important;
	width: auto;
	padding: 0;
	border: 0;
	box-shadow: none;
	background: none;
}

.site-footer .vivai-menu__toggle,
.site-footer .vivai-menu__cta {
	display: none !important;
}

.site-footer .vivai-menu__list {
	display: block;
}

.site-footer .vivai-menu__list li {
	margin-bottom: 0.15rem;
}

.site-footer .vivai-menu__list a {
	display: block;
	padding: 0.35rem 0;
	font-size: 0.92rem;
	color: rgba(250, 247, 241, 0.86);
}

.site-footer .vivai-menu__list a::after {
	display: none;
}

.site-footer .vivai-menu__list .menu-item--home > a {
	display: inline-flex;
}

.site-footer .vivai-menu__list .sub-menu {
	position: static;
	display: block;
	border: 0;
	box-shadow: none;
	padding-left: 0.75rem;
}

.site-footer__linea {
	margin-block: clamp(2rem, 4vw, 2.75rem) 1.35rem;
	border: 0;
	border-top: 1px solid rgba(250, 247, 241, 0.16);
	background: none;
	height: 0;
	opacity: 1;
}

.site-footer__legale {
	gap: 0.75rem 1.5rem;
	font-size: 0.82rem;
}

.site-footer__copyright {
	margin: 0;
	color: rgba(250, 247, 241, 0.6);
}

.site-footer__links {
	gap: 1.35rem;
}

.site-footer__links p {
	margin: 0;
}

/* ---------- Adattamenti: tablet ---------- */
@media (max-width: 1100px) {
	.site-brand__logo img {
		height: 60px;
		max-height: 60px;
	}

	.site-header__bar {
		min-height: 5rem;
	}

	.site-footer__griglia {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	}

	.site-footer__col--brand {
		grid-column: 1 / -1;
	}
}

/* ---------- Adattamenti: tablet stretto e smartphone ---------- */
@media (max-width: 900px) {
	.site-topbar__inner {
		justify-content: center;
		padding-block: 0.4rem;
	}

	.site-topbar__contatti {
		gap: 0.4rem 1rem;
	}

	.site-header__bar {
		flex-wrap: nowrap;
		gap: 0.75rem;
		padding-block: 0.7rem;
		min-height: 4.5rem;
	}

	.site-header .vivai-menu {
		margin-left: auto;
	}

	.site-brand__logo img {
		height: 52px;
		max-height: 52px;
	}

	.site-header__azioni {
		gap: 0.6rem;
	}

	.vivai-menu__cta {
		display: block;
	}

	.vivai-menu__panel {
		padding: 0.85rem;
	}

	.vivai-menu__list a {
		font-size: 1rem;
		min-height: 3rem;
		padding: 0.75rem 0.6rem;
	}

	.site-footer__testo {
		max-width: none;
	}
}

@media (max-width: 640px) {
	.site-topbar__voce:not(.site-topbar__voce--telefono) {
		display: none;
	}

	.site-brand {
		gap: 0.6rem;
	}

	.site-brand__logo img {
		height: 46px;
		max-height: 46px;
	}

	.vivai-lingue {
		padding: 0.2rem;
	}

	.vivai-lingue__codice {
		display: none;
	}

	.site-footer__griglia {
		grid-template-columns: minmax(0, 1fr);
		gap: 2rem;
	}

	.site-footer__legale {
		flex-direction: column;
		align-items: flex-start;
	}
}

@media (max-width: 420px) {
	.site-header__bar {
		gap: 0.5rem;
	}

	.site-brand__logo img {
		height: 40px;
		max-height: 40px;
	}

	.vivai-menu__toggle {
		padding: 0.45rem 0.7rem;
		font-size: 0.8rem;
	}
}

/* Il pulsante resta visibile fino al tablet: sui telefoni compare nel menu. */
@media (max-width: 1280px) {
	.site-header .site-header__cta {
		display: flex;
	}

	.site-header .site-header__cta .wp-block-button__link {
		padding: 0.62rem 1rem;
		font-size: 0.82rem;
	}
}

@media (max-width: 900px) {
	.site-header .site-header__cta {
		display: none;
	}
}

/* ==========================================================================
   Revisione finale — proporzioni, logo e menu su ogni schermo
   ========================================================================== */

/* Intestazione, contenuti e piè di pagina condividono lo stesso asse:
   84rem (1344 px) di contenuto con il respiro laterale dei blocchi di
   WordPress, così i tre elementi restano allineati a ogni larghezza. */
.site-header__inner,
.site-topbar__inner,
.site-footer__inner {
	--vivai-gutter: var(--wp--style--root--padding-left, 1rem);

	width: 100%;
	max-width: calc(84rem + var(--vivai-gutter) + var(--vivai-gutter));
	margin-inline: auto;
	padding-inline: var(--vivai-gutter);
}

/* I gruppi con sfondo ricevono da WordPress un padding extra: qui lo
   annulliamo perché la gabbia la gestisce il contenitore interno. */
.site-topbar,
.site-footer {
	padding-inline: 0 !important;
}

/* L'intestazione è fissa e il contenitore riserva la sua altezza estesa:
   durante la transizione compatta cambia solo la barra, non il flusso
   della pagina. Il valore è misurato dallo script e aggiornato al resize. */
header.wp-block-template-part {
	position: relative;
	height: var(--vivai-header-h, 8.25rem);
	z-index: 100;
}

header.wp-block-template-part > .site-header {
	position: fixed;
	inset: 0 0 auto;
}

.admin-bar header.wp-block-template-part > .site-header {
	top: 32px;
}

@media (max-width: 1100px) {
	header.wp-block-template-part {
		height: var(--vivai-header-h, 8.25rem);
	}
}

@media (max-width: 900px) {
	header.wp-block-template-part {
		height: var(--vivai-header-h, 7rem);
	}
}

@media (max-width: 782px) {
	.admin-bar header.wp-block-template-part > .site-header {
		top: 46px;
	}
}

/* Blocco dello scorrimento quando il menu è aperto sul telefono:
   agisce su <html> per non perdere l'aggancio dell'intestazione. */
html.vivai-menu-aperto {
	overflow: hidden;
}

/* Il logo ha fondo trasparente: un'ombra leggerissima ne definisce i bordi
   pastello sul fondo crema senza aggiungere un riquadro. */
.site-brand__logo img {
	filter: drop-shadow(0 1px 1px rgba(22, 36, 28, 0.16));
}

/* Tablet: logo più presente ma sempre proporzionato. */
@media (max-width: 1100px) {
	.site-brand__logo img {
		height: 60px;
		max-height: 60px;
	}
}

@media (max-width: 900px) {
	.site-brand__logo img {
		height: 56px;
		max-height: 56px;
	}

	.site-header__bar {
		min-height: 4.75rem;
	}
}

/* Smartphone: logo leggibile, pulsante menu a icona 44×44 px. */
@media (max-width: 640px) {
	.site-brand__logo img {
		height: 46px;
		max-height: 46px;
	}

	.vivai-menu__toggle {
		width: 44px;
		min-width: 44px;
		height: 44px;
		min-height: 44px;
		padding: 0;
		border-radius: 12px;
	}

	.vivai-menu__toggle-icona span {
		width: 20px;
	}

	/* Nascosto alla vista ma ancora letto dagli screen reader. */
	.vivai-menu__toggle-testo {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip: rect(0 0 0 0);
		clip-path: inset(50%);
		white-space: nowrap;
	}

	.vivai-lingue__bandiera {
		width: 19px;
		height: 13px;
	}
}

@media (max-width: 900px) {
	/* Voci del menu comode da toccare anche per la Home a icona. */
	.vivai-menu__list .menu-item--home > a {
		min-width: 3rem;
		min-height: 3rem;
		padding: 0.75rem 0.6rem;
		justify-content: flex-start;
	}

	.vivai-menu__list .menu-item--home > a .vivai-menu__ico {
		width: 20px;
		height: 20px;
	}
}

@media (max-width: 420px) {
	.site-brand__logo img {
		height: 42px;
		max-height: 42px;
	}

	.site-header__bar {
		gap: 0.5rem;
		padding-block: 0.6rem;
	}
}

/* ---------- Intestazione: voci di menu, lingue e pulsante sulla stessa linea
   mediana ---------- */
@media (min-width: 901px) {
	/* La navigazione contiene un paragrafo vuoto generato da wpautop: i suoi
	   margini (19px) allungavano il blocco verso il basso, così il menu
	   risultava ~10px più in alto del selettore lingua e del pulsante. */
	.site-header .vivai-menu p:empty {
		display: none;
	}

	.site-header .vivai-menu,
	.site-header .vivai-menu__panel {
		display: flex;
		align-items: center;
	}

	/* Ogni voce ha la stessa altezza: prima la sottolineatura animata
	   (::after nel flusso) allungava solo le voci "piene", spostandone il
	   testo di 2-3px rispetto alla Home a icona. Ora è sovrapposta. */
	.vivai-menu__list > li > a {
		position: relative;
		display: inline-flex;
		align-items: center;
		min-height: 2.5rem;
		padding-block: 0.25rem;
	}

	.vivai-menu__list > li > a::after {
		position: absolute;
		left: 0;
		bottom: 0.35rem;
		margin-top: 0;
	}

	.vivai-menu__list .menu-item--home > a {
		padding-block: 0.25rem;
	}
}
