/*
Theme Name: Zardini
Theme URI: https://www.zardini.com/
Author: Zardini Stufe · Bottega Artigiana Arti e Mestieri
Author URI: https://www.zardini.com/
Description: Tema custom blank classico (no build) per Zardini Stufe — restyling 2026. CSS vanilla, ACF PRO per i contenuti, predisposto per i18n WPML/Polylang.
Version: 1.0.0
Requires at least: 6.4
Tested up to: 6.5
Requires PHP: 8.1
License: Proprietary
Text Domain: zardini
*/

/* ============================================================
   FONTS · self-hosted (nessuna chiamata a Google, GDPR-friendly)
   Per attivare i webfont Zardini:
     1. Scaricare Cormorant Garamond + Inter come .woff2 (vedi assets/fonts/README.md)
     2. Copiare i .woff2 in assets/fonts/
     3. Rimuovere il commento "Attivare" qui sotto (le @font-face già puntano ai file)
   Finché i file non sono in assets/fonts/, il tema usa gli stack di fallback
   nei design tokens sotto (Georgia per il serif, system-ui per il sans).
   ============================================================ */

/* Attivare quando si mettono i .woff2 in assets/fonts/ (rimuovere questo commento)
@font-face { font-family: "Cormorant Garamond"; font-weight: 400; font-style: normal;
	src: url("./assets/fonts/cormorant-garamond-v18-latin-regular.woff2") format("woff2"); font-display: swap; }
@font-face { font-family: "Cormorant Garamond"; font-weight: 500; font-style: normal;
	src: url("./assets/fonts/cormorant-garamond-v18-latin-500.woff2") format("woff2"); font-display: swap; }
@font-face { font-family: "Cormorant Garamond"; font-weight: 600; font-style: normal;
	src: url("./assets/fonts/cormorant-garamond-v18-latin-600.woff2") format("woff2"); font-display: swap; }
@font-face { font-family: "Cormorant Garamond"; font-weight: 400; font-style: italic;
	src: url("./assets/fonts/cormorant-garamond-v18-latin-italic.woff2") format("woff2"); font-display: swap; }
@font-face { font-family: "Cormorant Garamond"; font-weight: 500; font-style: italic;
	src: url("./assets/fonts/cormorant-garamond-v18-latin-500italic.woff2") format("woff2"); font-display: swap; }
@font-face { font-family: "Inter"; font-weight: 400; font-style: normal;
	src: url("./assets/fonts/inter-v13-latin-regular.woff2") format("woff2"); font-display: swap; }
@font-face { font-family: "Inter"; font-weight: 500; font-style: normal;
	src: url("./assets/fonts/inter-v13-latin-500.woff2") format("woff2"); font-display: swap; }
@font-face { font-family: "Inter"; font-weight: 600; font-style: normal;
	src: url("./assets/fonts/inter-v13-latin-600.woff2") format("woff2"); font-display: swap; }
@font-face { font-family: "Inter"; font-weight: 700; font-style: normal;
	src: url("./assets/fonts/inter-v13-latin-700.woff2") format("woff2"); font-display: swap; }
*/

/* ============================================================
   DESIGN TOKENS
   ============================================================ */
:root {
	--c-cream:       #f7f1e7;
	--c-cream-50:    #fbf8f3;
	--c-cream-100:   #f3ecdf;
	--c-cream-200:   #e7dcc7;
	--c-ink:         #1b1714;
	--c-ink-soft:    #2a2521;
	--c-ember:       #c64a1f;
	--c-ember-deep:  #8a2f12;
	--c-brass:       #a07c3a;
	--c-brass-soft:  #c9a567;
	--c-stone:       #7a6a5d;
	--c-stone-soft:  #a89a8c;

	--f-serif: "Cormorant Garamond", Georgia, serif;
	--f-sans:  "Inter", system-ui, -apple-system, sans-serif;

	--t-display: clamp(3.5rem, 8vw, 8rem);
	--t-hero:    clamp(2.5rem, 5vw, 5rem);
	--t-section: clamp(2rem, 3.5vw, 3.5rem);

	color-scheme: light;
}

/* ============================================================
   RESET MINIMALE
   ============================================================ */
*, *::before, *::after { box-sizing: border-box; }
html, body, h1, h2, h3, h4, h5, h6, p, ul, ol, dl, dd, figure { margin: 0; padding: 0; }
ul, ol { list-style: none; }
img, svg, video { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
button { font: inherit; cursor: pointer; background: none; border: none; color: inherit; }
input, textarea, select { font: inherit; color: inherit; }

html {
	font-family: var(--f-sans);
	background: var(--c-cream);
	color: var(--c-ink);
	-webkit-font-smoothing: antialiased;
	scroll-behavior: smooth;
	font-size: 16px;
	line-height: 1.5;
	overflow-x: hidden;  /* previene scrollbar orizzontale dai full-bleed */
}

body { background: var(--c-cream); overflow-x: hidden; }

/* ============================================================
   SAFEGUARDS RESPONSIVE (evita overflow orizzontale su mobile)
   ============================================================ */
/* Testo lungo (URL, parole tecniche) mai in overflow */
h1, h2, h3, h4, h5, h6, p, li, dd, dt, blockquote, figcaption, caption {
	overflow-wrap: break-word;
	word-wrap: break-word;
}
/* Immagini/video/iframe/svg mai più larghi del container */
img, video, iframe, svg { max-width: 100%; }
/* Grid/flex children: `min-width:0` permette al contenuto di andare a capo
   invece di forzare l'espansione della colonna oltre il viewport */
.zd-c-grid > *, .zd-creaz-grid > *, .zd-cat-block > *,
.zd-strat__grid > *, .zd-terr-grid > *, .zd-eco-num > *,
.zd-progcalc__grid > *, .zd-decori-ed__grid > *, .zd-fasi__slide > *,
.zd-arte-hero__stage > *, .zd-mega__inner > *, .zd-footer__grid > * { min-width: 0; }
/* Tabelle: scroll-x interno invece che sfondare */
table { max-width: 100%; }

/* Focus-visible globale (A11y WCAG AA): outline visibile su tutti gli elementi
   focusable via tastiera. Rimuove l'outline browser di default e ne applica
   uno consistente col brand. */
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
[tabindex]:focus-visible,
[role="button"]:focus-visible {
	outline: 2px solid var(--c-ember);
	outline-offset: 2px;
	border-radius: 2px;
}
/* Rimuove outline solo dai fake-focus quando non è keyboard */
a:focus:not(:focus-visible),
button:focus:not(:focus-visible) { outline: none; }

::selection { background: var(--c-ember); color: var(--c-cream); }

.sr-only {
	position: absolute; width: 1px; height: 1px; padding: 0;
	overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}
.sr-only:focus, .sr-only.focus-not-sr {
	position: fixed; top: .75rem; left: .75rem; z-index: 100;
	background: var(--c-ink); color: var(--c-cream);
	padding: .5rem .75rem; font-size: .75rem; letter-spacing: .22em;
	text-transform: uppercase; clip: auto; width: auto; height: auto; white-space: normal;
}

/* ============================================================
   UTILITY CONTAINER / DIVIDERS
   ============================================================ */
.zd-wrap        { max-width: 1200px; margin: 0 auto; padding-inline: 1.5rem; }
.zd-wrap-wide   { max-width: 1400px; margin: 0 auto; padding-inline: 1.5rem; }
.zd-wrap-narrow { max-width: 800px;  margin: 0 auto; padding-inline: 1.5rem; }

@media (min-width: 1024px) {
	.zd-wrap, .zd-wrap-wide, .zd-wrap-narrow { padding-inline: 2.5rem; }
}

.zd-hairline {
	height: 1px;
	background: linear-gradient(90deg, transparent, var(--c-brass) 20%, var(--c-brass) 80%, transparent);
}
.zd-hairline--dim { opacity: .6; }

.zd-eyebrow {
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: .28em;
	color: var(--c-stone);
}
.zd-eyebrow--ember { color: var(--c-ember); letter-spacing: .34em; }
.zd-eyebrow--cream { color: rgba(247,241,231,.65); letter-spacing: .42em; font-size: 10px; }

.zd-title-section {
	font-family: var(--f-serif);
	font-weight: 300;
	font-size: var(--t-section);
	line-height: 1.02;
	letter-spacing: -.015em;
	color: var(--c-ink);
}

.zd-italic-ember { font-style: italic; color: var(--c-ember); }
.zd-italic-brass { font-style: italic; color: var(--c-brass-soft); }

.zd-tabular { font-variant-numeric: tabular-nums; font-feature-settings: "tnum"; }

/* ============================================================
   BUTTONS
   ============================================================ */
.zd-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .5rem;
	padding: .9rem 1.5rem;
	font-size: .75rem;
	text-transform: uppercase;
	letter-spacing: .22em;
	transition: background-color .3s ease, color .3s ease;
	max-width: 100%;
	overflow-wrap: anywhere;
	word-break: break-word;
	text-align: center;
	line-height: 1.25;
}
@media (min-width: 768px) {
	.zd-btn { padding: 1rem 1.75rem; gap: .75rem; letter-spacing: .24em; }
}
/* Se il bottone contiene una freccia (icona a destra):
   testo prende lo spazio a sinistra, la freccia resta fissa a destra. */
.zd-btn:has(> span[aria-hidden]) {
	justify-content: space-between;
	text-align: left;
}
.zd-btn > span[aria-hidden] {
	flex-shrink: 0;
	align-self: center;
	font-size: 1em;
	letter-spacing: 0;
}
.zd-btn--solid       { background: var(--c-cream); color: var(--c-ink); }
.zd-btn--solid:hover { background: var(--c-ember); color: var(--c-cream); }
.zd-btn--ember       { background: var(--c-ember); color: var(--c-cream); }
.zd-btn--ember:hover { background: var(--c-cream); color: var(--c-ink); }
.zd-btn--dark        { background: var(--c-ink); color: var(--c-cream); }
.zd-btn--dark:hover  { background: var(--c-ember); }

.zd-link-underline {
	display: inline-flex;
	align-items: center;
	gap: .75rem;
	font-size: .75rem;
	text-transform: uppercase;
	letter-spacing: .24em;
	padding-bottom: .25rem;
	border-bottom: 1px solid var(--c-ember);
	color: var(--c-ember);
	transition: opacity .2s;
}
.zd-link-underline:hover { opacity: .8; }
.zd-link-underline--cream { color: rgba(247,241,231,.9); border-color: rgba(247,241,231,.4); }
.zd-link-underline--brass { color: var(--c-brass-soft); border-color: var(--c-brass-soft); }

/* ============================================================
   HEADER (sticky scura, logo centrale, menu spezzato)
   ============================================================ */
.zd-header {
	position: fixed;
	top: 0; inset-inline: 0;
	z-index: 50;
	background: rgba(27, 23, 20, .92);
	color: var(--c-cream);
	border-bottom: 1px solid rgba(247,241,231,.1);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	padding: 1.25rem 0 .75rem;
	transition: padding 280ms ease;
}
.zd-header[data-state="compact"] { padding: .5rem 0 .25rem; }

/* Header impilato in 3 righe: logo, tagline, menu unico. */
.zd-header__stack {
	max-width: 1500px;
	margin: 0 auto;
	padding-inline: .5rem;  /* mobile: padding laterali minimi per logo full-width */
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: .5rem;
}
@media (min-width: 768px)  { .zd-header__stack { padding-inline: 1.5rem; } }
@media (min-width: 1024px) {
	.zd-header { padding: 1.5rem 0 .75rem; }
	.zd-header[data-state="compact"] { padding: .75rem 0 .25rem; }
	.zd-header__stack { padding-inline: 2.5rem; gap: .65rem; }
}

/* RIGA 1: logo (mai croppato) · MOBILE: 100% larghezza contenitore */
.zd-header__logo {
	display: flex;
	justify-content: center;
	width: 100%;
	max-width: 100%;
}
.zd-logo {
	display: block;
	width: 100%;             /* mobile: piena larghezza (padding-inline è già .5rem) */
	height: auto;            /* mai croppato: width determina, height segue */
	max-width: 100%;
	max-height: 6rem;        /* tetto contenuto per non far esplodere l'altezza dell'header su mobile */
	object-fit: contain;
	opacity: .95;
	transition: opacity .3s, max-height 280ms, max-width 280ms, width 280ms;
}
.zd-header__logo:hover .zd-logo { opacity: 1; }
@media (min-width: 768px)  {
	.zd-logo { width: auto; max-height: 6.5rem; max-width: min(640px, 80vw); }
}
@media (min-width: 1024px) {
	.zd-logo { max-height: 7.5rem; max-width: min(720px, 60vw); }
}
/* Stato compact (header rimpicciolito on scroll) */
.zd-header[data-state="compact"] .zd-logo { max-height: 2.75rem; max-width: min(280px, 60vw); }
@media (min-width: 768px)  { .zd-header[data-state="compact"] .zd-logo { max-height: 3rem; max-width: 320px; } }
@media (min-width: 1024px) { .zd-header[data-state="compact"] .zd-logo { max-height: 3.25rem; max-width: 360px; } }

/* RIGA 2: tagline sotto al logo */
.zd-tagline {
	margin: 0;
	text-align: center;
	transition: opacity 200ms, max-height 280ms, margin-top 200ms;
	max-height: 1.5rem;
	overflow: hidden;
}
.zd-header[data-state="compact"] .zd-tagline { opacity: 0; max-height: 0; margin-top: 0; }

/* RIGA 3: menu unico orizzontale */
.zd-header__navrow {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 1.5rem;
	margin-top: .35rem;
}
@media (min-width: 1024px) { .zd-header__navrow { margin-top: .5rem; gap: 2rem; } }
.zd-header[data-state="compact"] .zd-header__navrow { margin-top: .1rem; }

.zd-nav {
	display: none;
	align-items: center;
	justify-content: center;
	gap: 2rem;
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: .28em;
	flex-wrap: wrap;
}
@media (min-width: 1024px) { .zd-nav { display: flex; } }
.zd-nav a {
	color: rgba(247,241,231,.75);
	transition: color .2s;
	white-space: nowrap;
}
.zd-nav a:hover { color: var(--c-cream); }
.zd-nav a.current-menu-item { color: var(--c-cream); }
.zd-lang {
	display: none;
	align-items: center;
	gap: .75rem;
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: .24em;
}
.zd-lang .opaque { opacity: 1; }
.zd-lang .muted  { opacity: .3; }
@media (min-width: 768px)  { .zd-lang { display: flex; } }
@media (min-width: 1024px) { .zd-lang { padding-left: 2rem; border-left: 1px solid rgba(247,241,231,.2); } }

/* Burger nel flow · sta nella riga navrow (sotto logo+tagline),
   centrato, con bordino ottone per essere ben visibile e cliccabile. */
.zd-burger {
	display: inline-flex;
	flex-direction: column;
	gap: 5px;
	padding: .6rem .75rem;
	color: var(--c-cream);
	background: transparent;
	border: 1px solid rgba(212,178,116,.35);
	border-radius: 999px;
	cursor: pointer;
	transition: border-color .25s ease, background-color .25s ease;
	position: relative;
	z-index: 5;
}
.zd-burger:hover,
.zd-burger.is-open { border-color: var(--c-ember); background: rgba(198,74,31,.12); }
.zd-burger:focus-visible { outline: 2px solid var(--c-ember); outline-offset: 2px; }
.zd-burger span { display: block; width: 1.35rem; height: 1.5px; background: currentColor; transition: transform .25s ease, opacity .25s ease; }
.zd-burger span:last-child { width: .85rem; margin-left: auto; }
/* Animazione ×: quando aperto, si trasforma in croce */
.zd-burger.is-open span:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
.zd-burger.is-open span:nth-child(2) { opacity: 0; }
.zd-burger.is-open span:nth-child(3) { width: 1.35rem; margin-left: 0; transform: translateY(-6.5px) rotate(-45deg); }
@media (min-width: 1024px) { .zd-burger { display: none; } }

.zd-split-rule {
	height: 1px;
	max-width: 1500px;
	margin: 1.25rem auto 0;
	background: linear-gradient(90deg, transparent 0%, transparent 6%, rgba(247,241,231,.35) 18%, rgba(247,241,231,.55) 50%, rgba(247,241,231,.35) 82%, transparent 94%, transparent 100%);
	transition: opacity 280ms, margin-top 280ms;
}
@media (min-width: 1024px) { .zd-split-rule { margin-top: 1.5rem; } }
.zd-header[data-state="compact"] .zd-split-rule { opacity: 0; margin-top: .5rem; }

/* Mobile drawer · overlay slide-down full-screen SOTTO l'header (z 45).
   L'header sticky (z 50) resta sopra: il burger rimane cliccabile per chiudere. */
.zd-mobile-drawer {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 45;
	background: rgba(27, 23, 20, .98);
	backdrop-filter: blur(20px);
	-webkit-backdrop-filter: blur(20px);
	overflow-y: auto;
	overscroll-behavior: contain;
	transform: translateY(-100%);
	opacity: 0;
	visibility: hidden;
	transition: transform .35s cubic-bezier(.22,.9,.24,1), opacity .35s ease, visibility 0s linear .35s;
	pointer-events: none;
}
.zd-mobile-drawer.open {
	transform: translateY(0);
	opacity: 1;
	visibility: visible;
	transition-delay: 0s, 0s, 0s;
	pointer-events: auto;
}
/* Blocca lo scroll del body quando il drawer è aperto */
body.zd-drawer-open { overflow: hidden; }
.zd-mobile-drawer nav {
	padding: 12rem 1.75rem 3rem;   /* padding-top compensa l'altezza dell'header sticky */
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
	max-width: 500px;
	margin: 0 auto;
}
.zd-mobile-drawer a {
	font-family: var(--f-serif);
	font-weight: 500;
	font-size: 1.75rem;
	line-height: 1.2;
	color: var(--c-cream);
	transition: color .2s;
	padding: .6rem 0;
	border-bottom: 1px solid rgba(212,178,116,.15);
	display: block;
}
.zd-mobile-drawer a:hover,
.zd-mobile-drawer a:active { color: var(--c-ember); }
.zd-mobile-drawer a.current-menu-item { color: var(--c-ember); }

/* ============================================================
   HERO (video di sfondo)
   ============================================================ */
/* HERO — layout STACKED su tutti i breakpoint:
   foto 3:2 a piena larghezza in cima (rapporto nativo delle foto 850×565),
   testo + CTA sotto su area sfumata elegante ink→warm con alone ember.
   Padding-top compensa l'header fixed (allineato a .zd-breadcrumb-wrap). */
.zd-hero {
	position: relative;
	color: var(--c-cream);
	background: var(--c-ink); /* colore continuo tra header e foto */
	padding-top: 16rem; /* mobile: altezza header default */
}
@media (min-width: 768px)  { .zd-hero { padding-top: 15rem; } }
@media (min-width: 1024px) { .zd-hero { padding-top: 18rem; } }

/* Video hero in-flow con stesso aspect-ratio delle foto */
.zd-hero__video {
	position: relative;
	inset: auto;
	width: 100%;
	height: auto;
	aspect-ratio: 3 / 2;
	object-fit: cover;
}

/* SLIDER KEN BURNS · foto in-flow con aspect-ratio 3:2 (nativo delle foto 850×565).
   Le slide interne restano assolute per il cross-fade layering. */
.zd-hero__slider {
	position: relative;
	inset: auto;
	width: 100%;
	height: auto;
	aspect-ratio: 3 / 2;
	overflow: hidden;
	background: var(--c-ink);
}
/* Fallback: slide singolo (background-image dal poster ACF, non dentro lo slider) */
.zd-hero > .zd-hero__slide {
	position: relative;
	inset: auto;
	width: 100%;
	height: auto;
	aspect-ratio: 3 / 2;
	background-size: cover;
	background-position: center;
}
.zd-hero__slider .zd-hero__slide { position: absolute; inset: 0; }
.zd-hero__slide {
	/* Base absolute per cross-fade (viene overridata dal fallback singolo sopra) */
	position: absolute;
	inset: 0;
	overflow: hidden;
	opacity: 0;
	transition: opacity 1.4s ease;
	will-change: opacity;
}
/* Immagine come cover, dietro al testo (z 0). Il transform Ken Burns è applicato all'img
   così il browser può fare preload dell'asset (era invisibile a background-image). */
.zd-hero__slide > img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center center;
	will-change: transform;
	transform-origin: center center;
}
.zd-hero__slide.is-active { opacity: 1; }
/* Ken Burns applicato all'IMG (non alla slide) così l'asset è discoverable dal browser
   e la fetchpriority della prima slide funziona. */
.zd-hero__slide.is-active > img {
	animation-duration: 22s;
	animation-timing-function: ease-out;
	animation-fill-mode: forwards;
	animation-iteration-count: 1;
}
.zd-hero__slide--zoom-in.is-active   > img { animation-name: zd-kb-zoom-in; }
.zd-hero__slide--zoom-out.is-active  > img { animation-name: zd-kb-zoom-out; }
.zd-hero__slide--pan-left.is-active  > img { animation-name: zd-kb-pan-left; }
.zd-hero__slide--pan-right.is-active > img { animation-name: zd-kb-pan-right; }

@keyframes zd-kb-zoom-in {
	from { transform: scale(1.0)  translate3d(0,0,0); }
	to   { transform: scale(1.15) translate3d(0,0,0); }
}
@keyframes zd-kb-zoom-out {
	from { transform: scale(1.18) translate3d(0,0,0); }
	to   { transform: scale(1.02) translate3d(0,0,0); }
}
@keyframes zd-kb-pan-left {
	from { transform: scale(1.12) translate3d( 3%,0,0); }
	to   { transform: scale(1.12) translate3d(-3%,0,0); }
}
@keyframes zd-kb-pan-right {
	from { transform: scale(1.12) translate3d(-3%,0,0); }
	to   { transform: scale(1.12) translate3d( 3%,0,0); }
}
@media (prefers-reduced-motion: reduce) {
	.zd-hero__slide.is-active > img { animation: none; }
	.zd-hero__slide { transition: opacity .6s ease; }
}

/* Scrim non necessario nel layout stacked (testo non è sopra la foto) */
.zd-hero__scrim { display: none; }

/* Blocco testo · sotto la foto · sfondo sfumato elegante
   (base ink calda + alone ember tenue in basso — richiama il calore delle stufe). */
.zd-hero__inner {
	position: relative;
	z-index: 2;
	max-width: 1400px;
	margin: 0 auto;
	padding: 3rem 1.5rem 4rem;
	width: 100%;
	background:
		radial-gradient(ellipse at 50% 100%, rgba(198,74,31,.14) 0%, transparent 65%),
		linear-gradient(180deg, var(--c-ink) 0%, #241a13 100%);
}
/* Filetto ottone tra foto e testo per stacco tipografico elegante */
.zd-hero__inner::before {
	content: "";
	position: absolute;
	top: 0; left: 1.5rem; right: 1.5rem;
	height: 1px;
	background: linear-gradient(90deg, transparent, var(--c-brass) 20%, var(--c-brass) 80%, transparent);
	opacity: .5;
}
@media (min-width: 640px)  {
	.zd-hero__inner { padding: 3.5rem 2rem 5rem; }
	.zd-hero__inner::before { left: 2rem; right: 2rem; }
}
@media (min-width: 1024px) {
	.zd-hero__inner { padding: 5rem 2.5rem 7rem; }
	.zd-hero__inner::before { left: 2.5rem; right: 2.5rem; }
}

.zd-hero__copy { max-width: 64rem; }
.zd-hero__eyebrow { color: rgba(247,241,231,.8); letter-spacing: .34em; font-size: 11px; }
.zd-hero__title {
	margin-top: 1.75rem;
	font-family: var(--f-serif);
	font-weight: 300;
	font-size: var(--t-display);
	line-height: .92;
	letter-spacing: -.02em;
	color: var(--c-cream);
}
.zd-hero__title span { display: block; }
.zd-hero__lead {
	margin-top: 2rem;
	max-width: 36rem;
	font-size: 1.125rem;
	line-height: 1.6;
	color: rgba(247,241,231,.85);
}
.zd-hero__actions {
	margin-top: 2.5rem;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1rem;
}
.zd-scroll-cue {
	position: absolute;
	bottom: 2rem;
	left: 50%;
	transform: translateX(-50%);
	z-index: 3;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: .5rem;
	font-size: 10px;
	text-transform: uppercase;
	letter-spacing: .32em;
	color: rgba(247,241,231,.7);
}
.zd-scroll-cue::after { content: ""; display: block; width: 1px; height: 2rem; background: rgba(247,241,231,.5); }

/* Cue "scorri" non ha senso nel layout stacked → nascosto ovunque */
.zd-scroll-cue { display: none; }

/* ============================================================
   CHAPTERS (home)
   ============================================================ */
.zd-chapter {
	display: grid;
	grid-template-columns: 1fr;
	gap: 2rem;
	align-items: center;
	padding: 5rem 0;
	border-top: 1px solid rgba(160,124,58,.2);
}
@media (min-width: 1024px) {
	.zd-chapter { grid-template-columns: 7fr 5fr; gap: 4rem; padding: 7rem 0; }
	.zd-chapter--reverse .zd-chapter__media { order: 1; }
	.zd-chapter--reverse .zd-chapter__copy  { order: 2; }
}

.zd-chapter__copy p.zd-kicker { font-size: 12px; text-transform: uppercase; letter-spacing: .28em; color: var(--c-stone); }
.zd-chapter__copy h3 {
	margin-top: 1.25rem;
	font-family: var(--f-serif);
	font-weight: 300;
	font-size: clamp(2rem, 4.5vw, 3.75rem);
	line-height: 1.02;
	letter-spacing: -.015em;
}
.zd-chapter__copy .zd-chapter__body {
	margin-top: 1.5rem;
	max-width: 36rem;
	font-size: 1.125rem;
	line-height: 1.6;
	color: rgba(27,23,20,.75);
}
.zd-chapter__cta {
	display: inline-flex;
	align-items: center;
	gap: .75rem;
	margin-top: 2rem;
	font-size: .875rem;
	text-transform: uppercase;
	letter-spacing: .22em;
	padding-bottom: .25rem;
	border-bottom: 1px solid currentColor;
	color: var(--c-ember);
	transition: opacity .3s;
}
.zd-chapter__cta:hover { opacity: .8; }
.zd-chapter__cta--ink { color: var(--c-ink); }

.zd-chapter__media {
	position: relative;
	display: block;
	aspect-ratio: 4 / 5;
	overflow: hidden;
}
.zd-chapter__media img,
.zd-chapter__media .zd-chapter__bg {
	position: absolute; inset: 0;
	width: 100%; height: 100%;
	object-fit: cover;
	transition: transform .7s ease-out;
}
.zd-chapter:hover .zd-chapter__media img,
.zd-chapter:hover .zd-chapter__media .zd-chapter__bg { transform: scale(1.03); }
.zd-chapter__bg {
	background:
		radial-gradient(120% 60% at 50% 110%, rgba(198,74,31,.35), transparent 60%),
		radial-gradient(80% 40% at 50% 100%, rgba(255,180,80,.55), transparent 70%),
		linear-gradient(160deg, #f3ecdf 0%, #e7dcc7 50%, #b08947 100%);
}
.zd-chapter__media::after {
	content: "";
	position: absolute;
	inset: .75rem;
	border: 1px solid rgba(247,241,231,.4);
	pointer-events: none;
}
.zd-chapter__media__scrim {
	position: absolute; inset: 0;
	background: linear-gradient(to top, rgba(27,23,20,.55), rgba(27,23,20,.1), transparent);
	pointer-events: none;
}
.zd-chapter__media__num {
	position: absolute;
	top: 1.25rem; left: 1.25rem;
	font-family: var(--f-serif);
	color: var(--c-cream);
	font-size: 3rem;
	line-height: 1;
	text-shadow: 0 2px 8px rgba(0,0,0,.4);
}
.zd-chapter__media__label {
	position: absolute;
	bottom: 1.25rem; left: 1.25rem; right: 1.25rem;
	display: flex;
	align-items: center;
	justify-content: space-between;
	color: var(--c-cream);
	font-size: .75rem;
	text-transform: uppercase;
	letter-spacing: .22em;
	text-shadow: 0 2px 6px rgba(0,0,0,.4);
}

/* ============================================================
   DECORI A MANO (full-bleed scuro)
   ============================================================ */
.zd-decori {
	position: relative;
	background-color: var(--c-ink);
	color: var(--c-cream);
	overflow: hidden;
	width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}
/* Quando l'admin imposta decori_image, l'inline background-image entra qui */
.zd-decori--has-bg {
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
}
/* Overlay scuro per garantire leggibilità testo sopra la foto */
.zd-decori--has-bg::before {
	content: "";
	position: absolute;
	inset: 0;
	background:
		linear-gradient(90deg, rgba(31,27,24,.86) 0%, rgba(31,27,24,.74) 50%, rgba(31,27,24,.84) 100%);
	pointer-events: none;
	z-index: 0;
}
.zd-decori__glow {
	position: absolute; inset: 0;
	background:
		radial-gradient(60% 50% at 50% 100%, rgba(198,74,31,.55), transparent 70%),
		radial-gradient(40% 30% at 50% 100%, rgba(255,180,80,.4), transparent 70%);
	filter: blur(8px);
	opacity: .3;
	pointer-events: none;
	animation: ember-pulse 6s ease-in-out infinite;
	z-index: 1;
}
.zd-decori__inner { z-index: 2; }
.zd-decori__inner {
	position: relative;
	max-width: 880px;
	margin: 0 auto;
	padding: 6rem 1.5rem;
	text-align: center;
}
@media (min-width: 1024px) {
	.zd-decori__inner { padding: 8rem 2.5rem; }
}
.zd-decori__inner .zd-decori__body { margin-left: auto; margin-right: auto; }
.zd-decori h2 {
	margin-top: 1.25rem;
	font-family: var(--f-serif);
	font-weight: 300;
	font-size: clamp(2rem, 4.5vw, 3.75rem);
	line-height: 1.02;
	letter-spacing: -.01em;
}
.zd-decori__body {
	margin-top: 1.5rem;
	max-width: 36rem;
	color: rgba(247,241,231,.85);
	line-height: 1.6;
}
@keyframes ember-pulse {
	0%, 100% { opacity: .3; transform: translateY(0) scale(1); }
	50%      { opacity: .45; transform: translateY(-6px) scale(1.04); }
}

/* ============================================================
   CONTATTACI STRIP (home)
   ============================================================ */
.zd-contacts-strip {
	border-top: 1px solid rgba(160,124,58,.25);
	border-bottom: 1px solid rgba(160,124,58,.25);
	background: var(--c-cream-50);
}
.zd-contacts-strip__inner {
	max-width: 1400px;
	margin: 0 auto;
	padding: 3.5rem 1.5rem;
	display: grid;
	grid-template-columns: 1fr;
	gap: 2rem;
}
@media (min-width: 1024px) {
	.zd-contacts-strip__inner { grid-template-columns: 1fr 1fr 1fr 1fr; gap: 2.5rem; padding: 4rem 2.5rem; }
}
.zd-contacts-strip h2 {
	margin-top: 1rem;
	font-family: var(--f-serif);
	font-weight: 300;
	font-size: clamp(1.75rem, 3vw, 2.5rem);
	line-height: 1.05;
}
.zd-contacts-strip__lead p {
	font-family: var(--f-serif);
	font-size: 1.125rem;
	line-height: 1.4;
	margin-top: .75rem;
	color: var(--c-ink);
}

/* ============================================================
   CLOSING CTA
   ============================================================ */
.zd-closing-cta {
	position: relative;
	overflow: hidden;
	background: var(--c-ink);
	color: var(--c-cream);
}
.zd-closing-cta__bg {
	position: absolute; inset: 0;
	width: 100%; height: 100%;
	object-fit: cover; object-position: center;
}
.zd-closing-cta__scrim {
	position: absolute; inset: 0;
	background: rgba(27,23,20,.72);
	pointer-events: none;
}
.zd-closing-cta__glow {
	position: absolute; inset: 0;
	background:
		radial-gradient(60% 50% at 50% 100%, rgba(198,74,31,.55), transparent 70%),
		radial-gradient(40% 30% at 50% 100%, rgba(255,180,80,.4), transparent 70%);
	filter: blur(8px);
	opacity: .5;
	pointer-events: none;
	animation: ember-pulse 6s ease-in-out infinite;
}
.zd-closing-cta__inner {
	position: relative;
	max-width: 1100px;
	margin: 0 auto;
	padding: 7rem 1.5rem;
	text-align: center;
}
@media (min-width: 1024px) { .zd-closing-cta__inner { padding: 10rem 2.5rem; } }
.zd-closing-cta h2 {
	margin-top: 1.5rem;
	font-family: var(--f-serif);
	font-weight: 300;
	font-size: clamp(2.5rem, 6vw, 5rem);
	line-height: 1.02;
}
.zd-closing-cta p {
	margin: 2rem auto 0;
	max-width: 36rem;
	font-size: 1.125rem;
	line-height: 1.6;
	color: rgba(247,241,231,.85);
}

/* ============================================================
   FOOTER
   ============================================================ */
.zd-footer { background: var(--c-ink); color: rgba(247,241,231,.8); }

.zd-marquee-wrap {
	border-top: 1px solid rgba(247,241,231,.1);
	border-bottom: 1px solid rgba(247,241,231,.1);
	overflow: hidden;
}
.zd-marquee {
	display: flex;
	gap: 2rem;
	white-space: nowrap;
	padding: .625rem 0;
	font-size: 10px;
	text-transform: uppercase;
	letter-spacing: .34em;
	color: rgba(247,241,231,.4);
	animation: marquee 40s linear infinite;
}
.zd-marquee span { display: inline-flex; align-items: center; gap: 2rem; }
.zd-marquee .sep { color: rgba(198,74,31,.5); font-size: 8px; }

@keyframes marquee {
	from { transform: translateX(0); }
	to   { transform: translateX(-50%); }
}

.zd-footer__grid {
	max-width: 1400px;
	margin: 0 auto;
	padding: 5rem 1.5rem;
	display: grid;
	grid-template-columns: 1fr;
	gap: 3rem;
	align-items: start;
}
@media (min-width: 1024px) {
	.zd-footer__grid { grid-template-columns: 5fr 3fr 2fr 2fr; padding: 5rem 2.5rem; }
}
/* Footer logo · MOBILE: full-width centrato (con social centrati sotto)
   Desktop: larghezza fissa allineato a sinistra. */
.zd-footer__logo {
	width: 100%;
	display: flex;
	justify-content: center;   /* mobile: centrato */
}
@media (min-width: 1024px) {
	.zd-footer__logo { justify-content: flex-start; }
}
.zd-footer__logo img {
	display: block;
	width: 100%;
	max-width: 400px;          /* mobile: fino a 400px, altrimenti riempie */
	height: auto;
	max-height: 8rem;
	object-fit: contain;
}
@media (min-width: 1024px) {
	.zd-footer__logo img { width: 340px; max-width: 340px; max-height: 9rem; }
}

.zd-footer h4 {
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: .22em;
	color: rgba(247,241,231,.4);
	margin-bottom: 1.25rem;
}
.zd-footer ul { display: flex; flex-direction: column; gap: .75rem; font-size: .875rem; color: rgba(247,241,231,.75); }
.zd-footer a { transition: color .2s; }
.zd-footer a:hover { color: var(--c-ember); }
.zd-footer__contact li { display: flex; align-items: flex-start; gap: .75rem; }
.zd-footer__contact svg { margin-top: 2px; width: 1rem; height: 1rem; flex-shrink: 0; color: var(--c-brass-soft); }

.zd-footer__bar {
	border-top: 1px solid rgba(247,241,231,.1);
	padding: 1.25rem 1.5rem;
	display: flex;
	flex-direction: column;
	gap: 1rem;
	align-items: center;
	justify-content: space-between;
}
@media (min-width: 768px) { .zd-footer__bar { flex-direction: row; padding: 1.25rem 2.5rem; } }

.zd-footer__bar--center { justify-content: center; }
.zd-footer__bar p { font-size: .75rem; color: rgba(247,241,231,.4); }

/* Wrapper logo + social · MOBILE: width 100% centrato; desktop: max-content per social sotto al logo */
.zd-footer__logo-stack {
	display: flex;
	flex-direction: column;
	align-items: center;
	width: 100%;               /* mobile: prende tutta la colonna */
	max-width: 400px;
}
@media (min-width: 1024px) {
	.zd-footer__logo-stack { width: max-content; max-width: 100%; }
}

/* Social icons sotto al logo — TONDI e ORIZZONTALI, centrati sotto */
.zd-footer ul.zd-social-icons {
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: center;
	gap: .625rem;
	margin-top: 1.5rem;
	padding-top: 1.25rem;
	border-top: 1px solid rgba(247,241,231,.12);
	width: 100%;               /* mobile: piena larghezza, centrati grazie a justify-content */
}
@media (min-width: 1024px) {
	.zd-footer ul.zd-social-icons { width: max-content; }
}
.zd-footer ul.zd-social-icons li { display: inline-flex; }
.zd-footer ul.zd-social-icons a {
	width: 2.5rem;
	height: 2.5rem;
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: rgba(247,241,231,.7);
	border: 1px solid rgba(247,241,231,.2);
	transition: color .2s, border-color .2s, background-color .2s, transform .2s;
}
.zd-footer ul.zd-social-icons a:hover {
	color: var(--c-cream);
	border-color: var(--c-ember);
	background: var(--c-ember);
	transform: translateY(-2px);
}
.zd-footer ul.zd-social-icons svg { width: 1.05rem; height: 1.05rem; }

/* ============================================================
   BREADCRUMB
   ============================================================ */
/* padding-top compensa l'altezza dell'header sticky mobile (logo + tagline + burger) */
.zd-breadcrumb-wrap { padding: 16rem 0 1.5rem; }
@media (min-width: 768px)  { .zd-breadcrumb-wrap { padding-top: 15rem; } }
@media (min-width: 1024px) { .zd-breadcrumb-wrap { padding-top: 16rem; } }

.zd-breadcrumb {
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: .28em;
	color: var(--c-stone);
}
.zd-breadcrumb a:hover { color: var(--c-ember); }
.zd-breadcrumb__sep { margin: 0 .5rem; color: var(--c-brass); }
.zd-breadcrumb__current { color: rgba(27,23,20,.7); }

/* ============================================================
   SINGLE / TAXONOMY STOVE VIEWER
   ============================================================ */
.zd-page-intro { padding-bottom: 4rem; }
.zd-page-intro h1 {
	margin-top: 1.25rem;
	font-family: var(--f-serif);
	font-weight: 600;
	font-size: var(--t-section);
	line-height: 1.02;
	letter-spacing: -.015em;
}
.zd-page-intro__lead {
	margin-top: 1.5rem;
	max-width: 42rem;
	font-size: 1.125rem;
	line-height: 1.6;
	color: rgba(27,23,20,.8);
}

.zd-stove-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 2rem;
	align-items: start;
}
@media (min-width: 768px) {
	.zd-stove-grid { grid-template-columns: 7fr 5fr; gap: 3rem; }
}
.zd-stove-figure { background: var(--c-cream-100); }
.zd-stove-figure img { width: 100%; max-height: 640px; object-fit: contain; margin: 0 auto; }
.zd-stove-figure .empty { aspect-ratio: 4/5; display: flex; align-items: center; justify-content: center; color: var(--c-stone); font-style: italic; }
.zd-stove-info h3 {
	margin-top: .75rem;
	font-family: var(--f-serif);
	font-weight: 300;
	font-size: clamp(1.75rem, 3vw, 2.5rem);
	line-height: 1.02;
}
.zd-specs {
	margin-top: .75rem;
	border-top: 1px solid rgba(160,124,58,.2);
}
.zd-specs > div {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	padding: .625rem 0;
	border-bottom: 1px solid rgba(160,124,58,.2);
}
.zd-specs dt { font-size: .875rem; color: var(--c-stone); }
.zd-specs dd { font-family: var(--f-serif); font-size: 1.125rem; color: var(--c-ink); font-variant-numeric: tabular-nums; }

/* MASONRY: le immagini delle stufe hanno proporzioni diverse,
   le mostriamo intere (no crop) usando CSS columns. */
.zd-thumbs {
	column-count: 2;
	column-gap: 12px;
	background: transparent;
	margin: 0;
	padding: 0;
	list-style: none;
}
@media (min-width: 640px)  { .zd-thumbs { column-count: 3; } }
@media (min-width: 1024px) { .zd-thumbs { column-count: 4; } }
@media (min-width: 1280px) { .zd-thumbs { column-count: 5; } }
.zd-thumbs li {
	break-inside: avoid;
	-webkit-column-break-inside: avoid;
	page-break-inside: avoid;
	margin: 0 0 12px;
	display: block;
}
.zd-thumbs button {
	position: relative;
	display: block;
	width: 100%;
	background: var(--c-cream-50);
	overflow: hidden;
	padding: 0;
	border: 0;
	cursor: pointer;
	transition: box-shadow .25s ease;
}
.zd-thumbs button:focus-visible { outline: 2px solid var(--c-ember); outline-offset: -2px; }
.zd-thumbs img {
	display: block;
	width: 100%;
	height: auto; /* mantiene proporzioni naturali */
	transition: transform .5s;
}
.zd-thumbs button:hover img { transform: scale(1.04); }
.zd-thumbs button:hover { box-shadow: 0 6px 20px -8px rgba(31,27,24,.25); }
.zd-thumbs .placeholder { aspect-ratio: 4/5; background: var(--c-cream-200); }
.zd-thumbs button::after {
	content: "";
	position: absolute; inset: 0;
	border: 2px solid transparent;
	pointer-events: none;
	transition: border-color .25s ease;
}
.zd-thumbs button.is-active::after { border-color: var(--c-ember); }

/* ============================================================
   STEPPER (canne fumarie)
   ============================================================ */
.zd-stepper { /* container */ }
.zd-stepper__viewport {
	margin-top: 1.5rem;
	overflow: hidden;
	background: var(--c-cream-50);
	border: 1px solid rgba(160,124,58,.25);
}
.zd-stepper__track {
	display: flex;
	transition: transform .5s ease-out;
}
.zd-stepper__track > li {
	flex: 0 0 100%;
	padding: 3.5rem 2rem;
	min-height: 260px;
	display: flex;
	flex-direction: column;
	justify-content: center;
}
.zd-stepper__num {
	font-family: var(--f-serif);
	color: var(--c-ember);
	line-height: 1;
	font-size: clamp(3rem, 6vw, 5rem);
}
.zd-stepper__phase-label {
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: .32em;
	color: var(--c-stone);
	margin-left: 1rem;
}
.zd-stepper__title {
	margin-top: 1.25rem;
	font-family: var(--f-serif);
	font-weight: 300;
	font-size: clamp(1.75rem, 3.4vw, 2.75rem);
	line-height: 1.05;
}
.zd-stepper__controls {
	margin-top: 1.25rem;
	display: flex;
	align-items: center;
	gap: 1.25rem;
}
.zd-stepper__btn {
	width: 2.75rem; height: 2.75rem;
	border: 1px solid rgba(27,23,20,.3);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: color .2s, border-color .2s;
}
.zd-stepper__btn:hover { color: var(--c-ember); border-color: var(--c-ember); }
.zd-stepper__btn:disabled { opacity: .3; }
.zd-stepper__bar-wrap {
	flex: 1;
	display: flex;
	align-items: center;
	gap: 1rem;
}
.zd-stepper__counter {
	font-family: var(--f-serif);
	color: var(--c-ember);
	font-size: 1.125rem;
	width: 4rem;
	flex-shrink: 0;
	font-variant-numeric: tabular-nums;
}
.zd-stepper__bar {
	flex: 1;
	height: 1px;
	background: rgba(160,124,58,.3);
	position: relative;
	overflow: hidden;
}
.zd-stepper__bar span {
	position: absolute;
	inset-block: 0;
	left: 0;
	background: var(--c-ember);
	transition: width .5s ease-out;
}

/* ============================================================
   404
   ============================================================ */
/* 404 · fondo scuro con aloni + titolo bicolor + shortcut */
.zd-404 {
	position: relative;
	background: var(--c-ink);
	color: var(--c-cream);
	padding: 15rem 1.5rem 5rem;
	overflow: hidden;
	isolation: isolate;
	min-height: 80vh;
	display: flex;
	align-items: center;
}
@media (min-width: 1024px) { .zd-404 { padding: 17rem 3rem 6rem; } }
.zd-404__glow {
	position: absolute;
	width: 55%; height: 60%;
	pointer-events: none;
	filter: blur(90px);
	opacity: .28;
	z-index: 0;
}
.zd-404__glow--l { top: 15%; left: -18%; background: radial-gradient(circle at center, rgba(198,74,31,.85), transparent 65%); }
.zd-404__glow--r { bottom: 5%; right: -18%; background: radial-gradient(circle at center, rgba(212,178,116,.55), transparent 65%); }
.zd-404__inner {
	position: relative; z-index: 1;
	max-width: 720px; margin: 0 auto;
	text-align: center;
	display: flex; flex-direction: column; align-items: center; gap: 1.5rem;
}
.zd-404__code {
	margin: 0;
	font-family: var(--f-serif);
	font-weight: 300;
	font-size: clamp(5rem, 12vw, 8rem);
	line-height: 1;
	color: rgba(212,178,116,.35);
	letter-spacing: -.02em;
	font-variant-numeric: tabular-nums;
}
.zd-404__ornament {
	display: flex; align-items: center; justify-content: center; gap: .75rem;
	width: 100%; max-width: 220px;
}
.zd-404__ornament-line { flex: 1; height: 1px; background: linear-gradient(90deg, transparent, rgba(212,178,116,.6), transparent); }
.zd-404__ornament-diamond { width: 8px; height: 8px; transform: rotate(45deg); background: var(--c-ember); box-shadow: 0 0 12px 2px rgba(198,74,31,.55); }
.zd-404__title {
	margin: 0;
	font-family: var(--f-serif);
	font-weight: 600;
	font-size: clamp(2.4rem, 5.5vw, 4rem);
	line-height: 1;
	letter-spacing: .01em;
	color: var(--c-cream);
	text-transform: uppercase;
	display: flex; flex-direction: column; gap: .15em;
}
.zd-404__lead {
	margin: 0; max-width: 44rem;
	font-family: var(--f-serif); font-style: italic;
	font-size: clamp(1.05rem, 1.4vw, 1.2rem);
	line-height: 1.55;
	color: rgba(247,241,231,.85);
}
.zd-404__actions {
	display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 1.5rem;
	margin-top: 1rem;
	width: 100%;
}
.zd-404__search { width: 100%; max-width: 320px; }
.zd-404__search .search-form { display: flex; gap: .5rem; }
.zd-404__search input[type="search"] {
	flex: 1; padding: .75rem 1rem;
	background: rgba(247,241,231,.06);
	color: var(--c-cream);
	border: 1px solid rgba(212,178,116,.35);
	font-family: var(--f-sans); font-size: .9rem;
}
.zd-404__search input[type="submit"] {
	padding: .75rem 1rem;
	background: var(--c-ember); color: var(--c-cream); border: 0;
	font-size: .75rem; text-transform: uppercase; letter-spacing: .22em; cursor: pointer;
}
.zd-404__shortcuts { margin-top: 2rem; }
.zd-404__shortcuts ul {
	list-style: none; padding: 0; margin: 1rem 0 0;
	display: flex; flex-direction: column; gap: .5rem;
}
.zd-404__shortcuts a {
	color: rgba(247,241,231,.85);
	font-family: var(--f-serif); font-size: 1.15rem;
	transition: color .25s ease;
	display: inline-flex; align-items: center; gap: .5rem;
}
.zd-404__shortcuts a:hover { color: var(--c-ember); }

/* ============================================================
   THANK YOU · pagina di ringraziamento post-form
   ============================================================ */
.zd-ty {
	position: relative;
	background: var(--c-ink); color: var(--c-cream);
	padding: 15rem 1.5rem 6rem;
	overflow: hidden; isolation: isolate;
	min-height: 85vh;
	display: flex; align-items: center;
}
@media (min-width: 1024px) { .zd-ty { padding: 17rem 3rem 7rem; } }
.zd-ty__glow {
	position: absolute; width: 55%; height: 60%; pointer-events: none;
	filter: blur(90px); opacity: .3; z-index: 0;
}
.zd-ty__glow--l { top: 10%; left: -18%; background: radial-gradient(circle at center, rgba(198,74,31,.85), transparent 65%); }
.zd-ty__glow--r { bottom: 5%; right: -18%; background: radial-gradient(circle at center, rgba(212,178,116,.55), transparent 65%); }
.zd-ty__inner {
	position: relative; z-index: 1;
	max-width: 640px; margin: 0 auto;
	text-align: center;
	display: flex; flex-direction: column; align-items: center; gap: 1.5rem;
}
.zd-ty__mark { width: 88px; height: 88px; }
.zd-ty__mark svg { width: 100%; height: 100%; }
.zd-ty__ornament {
	display: flex; align-items: center; justify-content: center; gap: .75rem;
	width: 100%; max-width: 220px;
}
.zd-ty__ornament-line { flex: 1; height: 1px; background: linear-gradient(90deg, transparent, rgba(212,178,116,.6), transparent); }
.zd-ty__ornament-diamond { width: 8px; height: 8px; transform: rotate(45deg); background: var(--c-ember); box-shadow: 0 0 12px 2px rgba(198,74,31,.55); }
.zd-ty__eyebrow {
	margin: 0; color: rgba(212,178,116,.9);
	font-size: 11px; letter-spacing: .34em; text-transform: uppercase; font-weight: 600;
}
.zd-ty__title {
	margin: 0;
	font-family: var(--f-serif); font-weight: 600;
	font-size: clamp(2.4rem, 5vw, 3.6rem);
	line-height: 1.05;
	color: var(--c-cream);
	letter-spacing: -.005em;
}
.zd-ty__body, .zd-ty__body-fallback {
	margin: 0; max-width: 44rem;
	font-family: var(--f-serif); font-style: italic;
	font-size: clamp(1.05rem, 1.4vw, 1.2rem);
	line-height: 1.55;
	color: rgba(247,241,231,.9);
}
.zd-ty__body p { margin: 0 0 1rem; }
.zd-ty__body p:last-child { margin-bottom: 0; }
.zd-ty__actions {
	display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 1.5rem;
	margin-top: 1rem;
}
.zd-ty__footnote {
	margin: 2rem 0 0;
	font-size: .82rem;
	color: rgba(247,241,231,.6);
	font-style: italic;
	max-width: 34rem;
}

/* ============================================================
   LEGAL · Privacy, Cookie, Termini
   ============================================================ */
.zd-legal-hero {
	background: var(--c-cream-50);
	border-bottom: 1px solid rgba(160,124,58,.22);
	padding: 15rem 0 3rem;
}
@media (min-width: 1024px) { .zd-legal-hero { padding: 17rem 0 4rem; } }
.zd-legal-hero__title {
	margin: 1rem 0 0;
	font-family: var(--f-serif); font-weight: 600;
	font-size: clamp(2rem, 4vw, 3rem);
	line-height: 1.05;
	color: var(--c-ink);
	letter-spacing: -.005em;
}
.zd-legal-hero__meta {
	margin: 1rem 0 0;
	font-size: .82rem;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--c-stone);
}
.zd-legal { padding: 4rem 0 6rem; background: var(--c-cream); }
@media (min-width: 1024px) { .zd-legal { padding: 5rem 0 8rem; } }
.zd-legal__inner { /* eredita .zd-wrap = 1200px come altre pagine */ }
/* selettore combinato per battere la specificità di .zd-prose { max-width:42rem } */
.zd-prose.zd-legal__prose {
	color: rgba(31,23,20,.88);
	font-size: 1.05rem;
	line-height: 1.75;
	max-width: 100%; /* piena larghezza del container .zd-wrap */
}
@media (min-width: 1024px) {
	.zd-prose.zd-legal__prose { font-size: 1.075rem; }
}
.zd-legal__prose h2 {
	font-family: var(--f-serif); font-weight: 600;
	font-size: clamp(1.4rem, 2.4vw, 1.8rem);
	line-height: 1.15;
	margin: 3rem 0 1rem;
	color: var(--c-ink);
	padding-bottom: .5rem;
	border-bottom: 1px solid rgba(160,124,58,.22);
}
.zd-legal__prose h3 {
	font-family: var(--f-serif); font-weight: 600;
	font-size: 1.2rem; line-height: 1.25;
	margin: 2rem 0 .75rem; color: var(--c-ink);
}
.zd-legal__prose p { margin: 0 0 1rem; }
.zd-legal__prose ul, .zd-legal__prose ol { margin: .75rem 0 1.25rem 1.25rem; }
.zd-legal__prose li { margin: .35rem 0; }
.zd-legal__prose a { color: var(--c-ember); border-bottom: 1px solid rgba(198,74,31,.3); }
.zd-legal__prose a:hover { border-bottom-color: currentColor; }
.zd-legal__prose table {
	width: 100%; border-collapse: collapse; margin: 1rem 0 1.5rem;
	font-size: .92rem;
}
.zd-legal__prose th, .zd-legal__prose td {
	border: 1px solid rgba(160,124,58,.28);
	padding: .6rem .8rem; text-align: left; vertical-align: top;
}
.zd-legal__prose th { background: rgba(160,124,58,.08); font-weight: 600; color: var(--c-ink); }
.zd-legal__prose code {
	background: rgba(160,124,58,.1);
	padding: .1em .35em;
	border-radius: 3px;
	font-size: .9em;
	color: var(--c-stone);
}

/* ============================================================
   REVEAL ON SCROLL
   ============================================================ */
.reveal {
	opacity: 0;
	transform: translateY(24px);
	transition: opacity 900ms cubic-bezier(.2,.7,.2,1), transform 900ms cubic-bezier(.2,.7,.2,1);
	will-change: opacity, transform;
}
.reveal.is-visible { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
	.reveal { opacity: 1; transform: none; transition: none; }
	.zd-decori__glow, .zd-closing-cta__glow { animation: none; }
	.zd-marquee { animation: none; }
}

/* ============================================================
   MEGA MENU (Creazioni) — versione editoriale
   ============================================================ */

/* caret accanto al label nel header */
.zd-nav a .zd-caret {
	display: inline-block;
	margin-left: .35rem;
	font-size: .55rem;
	opacity: .55;
	transition: transform .25s ease, opacity .25s ease;
}
.zd-nav a:hover .zd-caret { opacity: .85; }
.zd-nav a[aria-expanded="true"] .zd-caret {
	transform: translateY(2px) rotate(180deg);
	opacity: 1;
	color: var(--c-ember);
}

/* Container BOXED — riquadro centrato, max 1100px, staccato dai bordi */
.zd-mega {
	position: fixed;
	top: 0;
	left: 50%;
	z-index: 49;
	width: calc(100% - 2.5rem);
	max-width: 860px;
	background:
		radial-gradient(120% 80% at 50% 0%, rgba(160,124,58,.05), transparent 60%),
		linear-gradient(180deg, var(--c-cream) 0%, var(--c-cream-50) 100%);
	color: var(--c-ink);
	border: 1px solid rgba(160,124,58,.22);
	box-shadow: 0 40px 80px -30px rgba(27,23,20,.45), 0 10px 30px -10px rgba(27,23,20,.25);
	opacity: 0;
	pointer-events: none;
	transform: translate(-50%, -12px);
	transition: opacity .35s cubic-bezier(.2,.7,.2,1), transform .35s cubic-bezier(.2,.7,.2,1);
}
.zd-mega.is-open { opacity: 1; pointer-events: auto; transform: translate(-50%, 0); }
.zd-mega[hidden] { display: none; }

/* Hairline brass decorativa in cima al box */
.zd-mega::before {
	content: "";
	position: absolute;
	top: 0; left: 1.5rem; right: 1.5rem;
	height: 1px;
	background: linear-gradient(90deg, transparent 0%, rgba(160,124,58,.5) 25%, var(--c-ember) 50%, rgba(160,124,58,.5) 75%, transparent 100%);
	pointer-events: none;
}

.zd-mega__inner {
	padding: 1.75rem 1.5rem 1.5rem;
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.75rem;
}
@media (min-width: 768px) {
	.zd-mega__inner { grid-template-columns: 1fr 1fr; gap: 2rem; }
}
@media (min-width: 1024px) {
	.zd-mega__inner {
		/* Colonne 1 e 2 fisse a 240px (= larghezza foto), 3a colonna riempie il resto */
		grid-template-columns: 240px 240px 1fr;
		gap: 2rem;
		padding: 2rem 2rem 1.75rem;
	}
}

/* Card in evidenza — striscia leggera, niente riquadro/cornice */
.zd-mega__card {
	position: relative;
	display: flex;
	flex-direction: column;
	background: transparent;
	border: none;
	box-shadow: none;
	padding: 0;
	transition: transform .35s cubic-bezier(.2,.7,.2,1);
}
.zd-mega__card:hover { transform: translateY(-2px); }

/* Foto piena larghezza della colonna (240px da 1024px in su). */
.zd-mega__card-media {
	background: var(--c-cream-100);
	position: relative;
	width: 100%;
	margin: 0 0 .9rem;
	overflow: hidden;
}
.zd-mega__card-media img {
	display: block;
	width: 100%;
	height: auto;          /* segue le proporzioni naturali della foto */
	object-fit: contain;
	object-position: center center; /* sovrascritto da inline style ACF */
	transition: transform .9s cubic-bezier(.2,.7,.2,1);
}
.zd-mega__card:hover .zd-mega__card-media img { transform: scale(1.05); }
/* sottile filetto ottone sotto la foto al hover */
.zd-mega__card-media::after {
	content: "";
	position: absolute;
	left: 0; right: 0; bottom: 0;
	height: 2px;
	background: var(--c-ember);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .35s cubic-bezier(.2,.7,.2,1);
}
.zd-mega__card:hover .zd-mega__card-media::after { transform: scaleX(1); }

.zd-mega__card-body {
	display: flex;
	flex-direction: column;
	gap: .4rem;
	padding: 0;
}
.zd-mega__card-body .zd-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
}
.zd-mega__card-body .zd-eyebrow::before {
	content: "";
	display: inline-block;
	width: 1.25rem;
	height: 1px;
	background: var(--c-ember);
}
.zd-mega__card-title {
	font-family: var(--f-serif);
	font-weight: 500;
	font-size: 1.4rem;
	line-height: 1.1;
	letter-spacing: -.005em;
	color: var(--c-ink);
	transition: color .25s ease;
}
.zd-mega__card:hover .zd-mega__card-title { color: var(--c-ember); }
.zd-mega__card-desc {
	font-size: .82rem;
	color: var(--c-stone);
	line-height: 1.45;
}
.zd-mega__card-cta {
	margin-top: .35rem;
	font-size: .68rem;
	text-transform: uppercase;
	letter-spacing: .28em;
	color: var(--c-ember);
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	transition: gap .3s ease;
}
.zd-mega__card:hover .zd-mega__card-cta { gap: .9rem; }

/* Lista colonna 3 — più ariosa, separatori sottili, hover con freccia */
.zd-mega__list {
	display: flex;
	flex-direction: column;
	padding: .5rem 0;
}
.zd-mega__list .zd-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	margin-bottom: 1rem;
}
.zd-mega__list .zd-eyebrow::before {
	content: "";
	display: inline-block;
	width: 1.5rem;
	height: 1px;
	background: var(--c-ember);
}
.zd-mega__list ul {
	display: flex;
	flex-direction: column;
	border-top: 1px solid rgba(160,124,58,.22);
}
.zd-mega__list li {
	border-bottom: 1px solid rgba(160,124,58,.16);
}
.zd-mega__list a {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: .9rem 0;
	font-family: var(--f-serif);
	font-weight: 500;
	font-size: 1.05rem;
	line-height: 1.2;
	color: rgba(27,23,20,.85);
	transition: color .25s ease, padding-left .3s cubic-bezier(.2,.7,.2,1);
}
.zd-mega__list a::before {
	/* indicator di hover: piccolo diamante ember che appare */
	content: "";
	position: absolute;
	left: -.75rem;
	top: 50%;
	width: 6px;
	height: 6px;
	background: var(--c-ember);
	transform: translateY(-50%) rotate(45deg) scale(0);
	transition: transform .25s ease;
}
.zd-mega__list a:hover {
	color: var(--c-ember);
	padding-left: .5rem;
}
.zd-mega__list a:hover::before { transform: translateY(-50%) rotate(45deg) scale(1); }
.zd-mega__list a span[aria-hidden] {
	opacity: 0;
	transform: translateX(-4px);
	transition: opacity .25s ease, transform .25s ease;
	color: var(--c-ember);
	font-size: .85rem;
}
.zd-mega__list a:hover span[aria-hidden] { opacity: 1; transform: translateX(0); }

/* Overlay backdrop */
.zd-mega__backdrop {
	position: fixed;
	inset: 0;
	z-index: 48;
	background: rgba(11, 6, 4, .45);
	backdrop-filter: blur(2px);
	-webkit-backdrop-filter: blur(2px);
	opacity: 0;
	pointer-events: none;
	transition: opacity .35s ease;
}
.zd-mega__backdrop.is-open { opacity: 1; pointer-events: auto; }

/* ============================================================
   STOVE ILLUSTRATION (SVG segnaposto, fiamme animate)
   ============================================================ */
.zd-stove-svg {
	display: block;
	width: 100%;
	height: auto;
	max-width: 100%;
	filter: drop-shadow(0 30px 60px rgba(90,21,0,.18));
}
.zd-flame {
	transform-origin: 180px 490px;
	animation: zd-flicker 2.6s ease-in-out infinite;
}
.zd-flame-b { animation-duration: 3.1s; animation-delay: -0.6s; }
.zd-flame-c { animation-duration: 2.2s; animation-delay: -1.1s; }
.zd-glow    { animation: zd-glow 2.4s ease-in-out infinite; }
@keyframes zd-flicker {
	0%, 100% { transform: scaleY(1)    translateY(0); opacity: .9; }
	40%      { transform: scaleY(1.08) translateY(-3px); opacity: 1; }
	60%      { transform: scaleY(.95)  translateY(1px); opacity: .85; }
}
@keyframes zd-glow {
	0%, 100% { opacity: .85; transform: scaleX(1); }
	50%      { opacity: 1;   transform: scaleX(1.08); }
}
@media (prefers-reduced-motion: reduce) {
	.zd-flame, .zd-glow { animation: none; }
}

/* ============================================================
   PRODOTTO · qualità (statstrip-like)
   ============================================================ */
.zd-qualities-grid {
	display: grid;
	grid-template-columns: 1fr;
}
@media (min-width: 640px)  { .zd-qualities-grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1024px) { .zd-qualities-grid { grid-template-columns: repeat(4, 1fr); } }

.zd-qualities-cell {
	padding: 3rem 1.5rem;
	display: flex;
	flex-direction: column;
	gap: 1rem;
}
@media (min-width: 640px) {
	.zd-qualities-cell + .zd-qualities-cell { border-left: 1px solid rgba(160,124,58,.2); }
	.zd-qualities-cell:nth-child(2n+1) { border-left: none; }
}
@media (min-width: 1024px) {
	.zd-qualities-cell + .zd-qualities-cell { border-left: 1px solid rgba(160,124,58,.2); }
}

.zd-qualities-title {
	font-family: var(--f-serif);
	font-weight: 600;
	line-height: 1.05;
	font-size: clamp(1.6rem, 2.4vw, 2.25rem);
	color: var(--c-ink);
}
.zd-qualities-sub {
	font-size: .875rem;
	line-height: 1.4;
	color: var(--c-stone);
}

/* ============================================================
   PRODOTTO · stratigrafia (foto SX sticky + lista layers DX)
   ============================================================ */
.zd-strat { padding: 6rem 0; }

.zd-strat__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 3rem;
	align-items: start;
}
@media (min-width: 1024px) {
	.zd-strat__grid { grid-template-columns: 5fr 7fr; gap: 4rem; }
}

/* Figura stratigrafia · sfondo trasparente (eredita il colore della pagina)
   così un PNG con trasparenza non mostra un riquadro contornato. */
.zd-strat__fig {
	background: transparent;
	overflow: visible; /* serve a non tagliare la drop-shadow */
	display: flex;
	justify-content: center;
	align-items: center;
}
@media (min-width: 1024px) {
	.zd-strat__fig {
		position: sticky;
		top: 9rem;
	}
}
.zd-strat__fig img {
	display: block;
	max-width: 100%;
	max-height: 720px;
	width: auto;
	height: auto;
	object-fit: contain; /* mai croppato, mantiene proporzioni reali */
	/* drop-shadow segue l'alpha del PNG → l'ombra ricalca i contorni reali
	   dell'oggetto (non il bounding box rettangolare di un box-shadow). */
	filter:
		drop-shadow(0 3px 6px rgba(31,23,20,.18))
		drop-shadow(0 22px 34px rgba(31,23,20,.30));
}
/* Quando manca la foto e viene renderizzato l'SVG segnaposto: niente fondo crema, niente aspect forzato */
.zd-strat__fig--svg {
	background: transparent;
	aspect-ratio: auto;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1rem;
}
.zd-strat__fig--svg .zd-stove-svg { max-height: 600px; }

.zd-strat__title {
	margin-top: 1.25rem;
	font-family: var(--f-serif);
	font-weight: 600;
	line-height: 1.05;
	letter-spacing: -.01em;
	font-size: clamp(2rem, 3.8vw, 3rem);
	display: flex;
	flex-direction: column;
	gap: .1em;
}

.zd-strat__list {
	margin-top: 2.5rem;
	display: grid;
	gap: 2.5rem;
}
.zd-strat__list li {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 1.5rem 2rem;
	align-items: start;
	border-top: 1px solid rgba(160,124,58,.25);
	padding-top: 2rem;
}
.zd-strat__num {
	font-family: var(--f-serif);
	font-weight: 500;
	color: var(--c-ember);
	font-size: clamp(2.5rem, 4vw, 4rem);
	line-height: 1;
}
.zd-strat__item-title {
	font-family: var(--f-serif);
	font-weight: 600;
	line-height: 1.1;
	font-size: clamp(1.5rem, 2.5vw, 2rem);
}
.zd-strat__item-body {
	margin-top: .75rem;
	font-size: 1.125rem;
	line-height: 1.6;
	color: rgba(27,23,20,.8);
}

/* ============================================================
   PRODOTTO · blocchi tecnici (4 card con icona)
   ============================================================ */
.zd-tech-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1px;
	background: rgba(160,124,58,.2);
}
@media (min-width: 640px) { .zd-tech-grid { grid-template-columns: 1fr 1fr; } }

.zd-tech-card {
	background: var(--c-cream-50);
	padding: 2.5rem;
	display: flex;
	flex-direction: column;
}
.zd-tech-card__icon {
	width: 3rem;
	height: 3rem;
	color: var(--c-ember);
	margin-bottom: 1.25rem;
	flex-shrink: 0;
}
.zd-tech-card__icon svg { width: 100%; height: 100%; display: block; }

.zd-tech-card__title {
	margin-top: .75rem;
	font-family: var(--f-serif);
	font-weight: 600;
	line-height: 1.05;
	font-size: clamp(1.4rem, 2.2vw, 1.875rem);
	min-height: 3em;
}
.zd-tech-card__body {
	margin-top: 1.25rem;
	font-size: 1rem;
	line-height: 1.6;
	color: rgba(27,23,20,.8);
}
.zd-tech-card__bullets {
	margin-top: 1.25rem;
	display: flex;
	flex-direction: column;
	gap: .5rem;
	font-size: .875rem;
	color: rgba(27,23,20,.75);
}
.zd-tech-card__bullets li {
	display: flex;
	align-items: flex-start;
	gap: .75rem;
	line-height: 1.5;
}
.zd-tech-card__bullet-marker {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 1rem;
	height: 1lh;
}
.zd-tech-card__diamond {
	display: block;
	width: 7px;
	height: 7px;
	transform: rotate(45deg);
	background: var(--c-ember);
}

/* ============================================================
   ECOLOGIA · blocchi alternati foto/testo
   La foto è SEMPRE nella colonna larga (7fr), il testo nella stretta (5fr)
   ============================================================ */
.zd-eco-block {
	display: grid;
	grid-template-columns: 1fr;
	gap: 2.5rem;
	align-items: start;
}
.zd-eco-fig {
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: var(--c-cream-100);
}
.zd-eco-fig img {
	width: 100%; height: 100%;
	object-fit: cover;
	display: block;
}
.zd-eco-block__title {
	margin-top: 1rem;
	font-family: var(--f-serif);
	font-weight: 600;
	line-height: 1.05;
	font-size: clamp(1.8rem, 3.2vw, 2.75rem);
}
.zd-eco-block__body {
	margin-top: 1.5rem;
	font-size: 1.125rem;
	line-height: 1.6;
	color: rgba(27,23,20,.8);
}

@media (min-width: 1024px) {
	/* Default: foto SX (7fr larga), testo DX (5fr stretta) */
	.zd-eco-block {
		grid-template-columns: 7fr 5fr;
		gap: 4rem;
	}
	/* Reverse: foto DX (7fr larga), testo SX (5fr stretta) */
	.zd-eco-block--reverse {
		grid-template-columns: 5fr 7fr;
	}
	.zd-eco-block--reverse .zd-eco-fig { order: 2; }
}

/* ============================================================
   ECOLOGIA · sezione "Numeri" (statstrip)
   ============================================================ */
.zd-eco-numbers {
	padding: 4rem 0;
	border-top: 1px solid rgba(160,124,58,.25);
	border-bottom: 1px solid rgba(160,124,58,.25);
	background: var(--c-cream-50);
}
.zd-eco-numbers__eyebrow { margin-bottom: 2rem; }

.zd-eco-numbers__grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1px;
	background: rgba(160,124,58,.2);
}
@media (min-width: 768px) {
	.zd-eco-numbers__grid { grid-template-columns: repeat(4, 1fr); }
}

.zd-eco-numbers__grid li {
	background: var(--c-cream-50);
	padding: 2rem 1.5rem;
	display: flex;
	flex-direction: column;
	gap: .75rem;
}

.zd-eco-numbers__value {
	font-family: var(--f-serif);
	font-weight: 300;
	color: var(--c-ink);
	font-size: clamp(2.5rem, 5vw, 4rem);
	line-height: 1;
	font-variant-numeric: tabular-nums;
}
.zd-eco-numbers__label {
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: .22em;
	color: var(--c-stone);
	line-height: 1.4;
}

/* ============================================================
   CONTATTI · layout 50/50 con sinistra sticky in basso
   ============================================================ */
.zd-c-grid {
	display: grid;
	grid-template-columns: 1fr;   /* mobile: pila */
	gap: 3rem;
	align-items: start;
}
@media (min-width: 1024px) {
	.zd-c-grid {
		grid-template-columns: 1fr 1fr;  /* 50 / 50 */
		gap: 4rem;
	}
}

.zd-c-left {
	display: flex;
	flex-direction: column;
	gap: 3rem;
}

.zd-c-right { /* form: scorre nel flusso normale */ }

/* VIRTUAL TOUR · blocco sopra alle 2 colonne testo/modulo (Contatti) */
.zd-c-tour {
	background: transparent;
	padding: 1rem 1.5rem 3rem;
}
@media (min-width: 1024px) { .zd-c-tour { padding: 1.5rem 2.5rem 4rem; } }
.zd-c-tour__inner { display: flex; flex-direction: column; gap: 1.25rem; }
.zd-c-tour__lead {
	margin: 0;
	font-family: var(--f-serif);
	font-style: italic;
	font-size: clamp(1.05rem, 1.35vw, 1.2rem);
	line-height: 1.55;
	color: rgba(31,23,20,.78);
	max-width: 46rem;
}

/* Riquadro iframe: aspect-ratio scelto dall'admin + cornice ottone al hover */
.zd-c-tour__frame {
	position: relative;
	width: 100%;
	background: var(--c-ink);
	overflow: hidden;
	border: 1px solid rgba(160,124,58,.28);
	transition: border-color .35s ease, box-shadow .35s ease;
}
.zd-c-tour__frame:hover {
	border-color: rgba(160,124,58,.55);
	box-shadow: 0 30px 60px -30px rgba(31,23,20,.35);
}
.zd-c-tour__frame--16-9 { aspect-ratio: 16 / 9; }
.zd-c-tour__frame--4-3  { aspect-ratio: 4 / 3; }
.zd-c-tour__frame--21-9 { aspect-ratio: 21 / 9; }
.zd-c-tour__frame iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
	display: block;
}
@media (max-width: 640px) {
	.zd-c-tour__frame--21-9 { aspect-ratio: 16 / 9; } /* 21:9 troppo bassa su mobile */
}

/* Mappa full-bleed · Contatti (con overlay caldo + card "Dove siamo") */
.zd-c-map {
	position: relative;
	width: 100%;
	height: 55vh;
	min-height: 420px;
	overflow: hidden;
	background: var(--c-cream-100);
}
.zd-c-map__frame {
	position: absolute; inset: 0; width: 100%; height: 100%;
}
.zd-c-map__frame iframe {
	filter: grayscale(.85) sepia(.18) contrast(.95) brightness(.98);
}
.zd-c-map__scrim {
	position: absolute; inset: 0;
	background: linear-gradient(180deg, rgba(247,241,231,.1), rgba(160,124,58,.12));
	mix-blend-mode: multiply;
	pointer-events: none;
}
.zd-c-map__card {
	position: absolute;
	left: 1.5rem; bottom: 1.5rem;
	background: rgba(27,23,20,.95);
	color: var(--c-cream);
	padding: 1.5rem;
	max-width: 24rem;
	backdrop-filter: blur(4px);
	z-index: 3;
}

/* Dati di contatto: griglia 2 × 2 (sede/telefono · email/orari) */
.zd-c-info {
	display: grid;
	grid-template-columns: 1fr;
	gap: 2.5rem;
}
@media (min-width: 640px) {
	.zd-c-info {
		grid-template-columns: 1fr 1fr;
		gap: 2.5rem 2.5rem;
	}
}


.zd-cappello-2col {
	display: grid;
	grid-template-columns: 1fr;
	gap: 2.5rem;
}
@media (min-width: 768px) {
	.zd-cappello-2col { grid-template-columns: 1fr 1fr; gap: 3rem; }
}
@media (min-width: 1024px) {
	.zd-cappello-2col { gap: 4rem; }
}
.zd-cappello-2col .zd-prose p {
	font-size: 1rem;
	line-height: 1.7;
	color: rgba(27,23,20,.85);
}

/* ============================================================
   AZIENDA · territori
   ============================================================ */
.zd-terr-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 3rem;
}
@media (min-width: 768px) { .zd-terr-grid { grid-template-columns: 1fr 1fr; gap: 5rem; } }

.zd-terr-list {
	margin-top: 1.25rem;
	display: flex;
	flex-wrap: wrap;
	gap: 1rem 1.75rem;
	font-family: var(--f-serif);
	font-weight: 600;
	font-size: clamp(1.5rem, 2.4vw, 2rem);
	line-height: 1.2;
	color: rgba(27,23,20,.92);
	letter-spacing: -.005em;
}
.zd-terr-list li {
	display: flex;
	align-items: center;
	gap: .65rem;
}
.zd-terr-list li span {
	color: var(--c-ember);
	font-size: .75em;
}

/* ============================================================
   AZIENDA · DECORI WOW (gallery)
   ============================================================ */
/* ============================================================
   AZIENDA · Decori editoriale MAGAZINE
   Layout 3 col: foto | testo centrale con ornamenti | foto,
   più banda cinematografica sotto. Fondo scuro con aloni brace.
   ============================================================ */
.zd-decori-ed {
	position: relative;
	background: var(--c-ink);
	color: var(--c-cream);
	padding: 5rem 1.5rem;
	overflow: hidden;
	isolation: isolate;
}
@media (min-width: 1024px) { .zd-decori-ed { padding: 7rem 3rem; } }
/* Aloni brace ai lati per calore visivo */
.zd-decori-ed__glow {
	position: absolute;
	width: 55%;
	height: 60%;
	pointer-events: none;
	filter: blur(80px);
	opacity: .28;
	z-index: 0;
}
.zd-decori-ed__glow--l {
	top: 20%;
	left: -18%;
	background: radial-gradient(circle at center, rgba(198,74,31,.85), transparent 65%);
}
.zd-decori-ed__glow--r {
	bottom: 5%;
	right: -18%;
	background: radial-gradient(circle at center, rgba(212,178,116,.55), transparent 65%);
}

.zd-decori-ed__inner {
	position: relative;
	z-index: 1;
	max-width: 1280px;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	gap: 3.5rem;
}

/* Eyebrow centrato con hairlines dorate ai lati */
.zd-decori-ed__eyebrow {
	margin: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 1.25rem;
	color: rgba(212,178,116,.9);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .34em;
	text-transform: uppercase;
	text-align: center;
}
.zd-decori-ed__eyebrow-text { white-space: nowrap; }
.zd-decori-ed__hair {
	display: block;
	flex: 1;
	max-width: 120px;
	height: 1px;
	background: linear-gradient(90deg, transparent, rgba(212,178,116,.55), transparent);
}
@media (max-width: 640px) {
	.zd-decori-ed__eyebrow { flex-wrap: wrap; gap: .8rem; }
	.zd-decori-ed__hair { max-width: 40px; }
}

/* STAGE · 3 colonne magazine (desktop) con gap ampi per respiro */
.zd-decori-ed__stage {
	display: grid;
	grid-template-columns: 1fr;
	gap: 3.5rem;
	align-items: center; /* le foto laterali di altezze diverse restano centrate */
}
@media (min-width: 900px) {
	.zd-decori-ed__stage { grid-template-columns: 1fr 1.35fr 1fr; gap: 4rem; }
}
@media (min-width: 1280px) {
	.zd-decori-ed__stage { grid-template-columns: 1fr 1.5fr 1fr; gap: 5rem; }
}

/* Foto laterali: MAI tagliate, mostrate INTERE.
   L'altezza segue le proporzioni naturali dell'immagine. */
.zd-decori-ed__side {
	position: relative;
	display: block;
	background: transparent;
	cursor: zoom-in;
	padding: 0;
	overflow: visible;
}
.zd-decori-ed__side img {
	display: block;
	width: 100%;
	height: auto; /* mai croppato */
	object-fit: contain;
	transition: transform .7s cubic-bezier(.22,.9,.24,1), opacity .35s;
}
.zd-decori-ed__side:hover img { transform: scale(1.03); opacity: .95; }
/* Cornice ottone sottile che segue il bounding box della foto */
.zd-decori-ed__frame {
	position: absolute;
	inset: -10px;
	border: 1px solid rgba(212,178,116,.35);
	pointer-events: none;
	z-index: 2;
	transition: inset .4s ease, border-color .4s ease;
}
.zd-decori-ed__side:hover .zd-decori-ed__frame {
	inset: -6px;
	border-color: rgba(212,178,116,.7);
}
.zd-decori-ed__side--empty { visibility: hidden; }

/* CENTRO · testo con ornamento superiore, allineamento centrato e padding
   per creare respiro fra testo e foto laterali */
.zd-decori-ed__centre {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 1.75rem;
	padding: 2rem 0;
}
@media (min-width: 900px) {
	.zd-decori-ed__centre { padding: 1rem 1rem; }
}
@media (min-width: 1280px) {
	.zd-decori-ed__centre { padding: 1rem 2rem; }
}
.zd-decori-ed__ornament {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: .75rem;
	width: 100%;
	max-width: 220px;
	margin: 0 auto;
}
.zd-decori-ed__ornament-line {
	flex: 1;
	height: 1px;
	background: linear-gradient(90deg, transparent, rgba(212,178,116,.6), transparent);
}
.zd-decori-ed__ornament-diamond {
	width: 8px;
	height: 8px;
	transform: rotate(45deg);
	background: var(--c-ember);
	box-shadow: 0 0 12px 2px rgba(198,74,31,.55);
}

/* Titolo XL, tutto maiuscolo Cormorant, con tracking largo */
.zd-decori-ed__title {
	margin: 0;
	font-family: var(--f-serif);
	font-weight: 600;
	font-size: clamp(2.4rem, 5.5vw, 4.2rem);
	line-height: 1;
	letter-spacing: .01em;
	color: var(--c-cream);
	text-transform: uppercase;
}
@media (min-width: 1024px) {
	.zd-decori-ed__title { letter-spacing: .02em; }
}

.zd-decori-ed__body {
	margin: 0;
	font-family: var(--f-serif);
	font-weight: 400;
	font-style: italic;
	font-size: clamp(1.05rem, 1.35vw, 1.2rem);
	line-height: 1.6;
	color: rgba(247,241,231,.9);
	max-width: 34rem;
}
.zd-decori-ed__payoff {
	margin: .5rem 0 0;
	display: flex;
	flex-direction: column;
	gap: .25rem;
	font-family: var(--f-serif);
	font-weight: 600;
	line-height: 1.1;
	font-size: clamp(1.15rem, 2vw, 1.6rem);
	color: var(--c-cream);
	text-transform: uppercase;
	letter-spacing: .02em;
}
.zd-decori-ed__payoff-acc {
	color: var(--c-ember);
	font-style: italic;
	font-weight: 500;
	letter-spacing: 0;
}

/* BANDA · foto larga sotto, INTERA. Max-height per non dominare la sezione.
   Wrapper `fit-content` così la cornice ottone segue davvero i bordi dell'img. */
.zd-decori-ed__cinema {
	display: block;
	position: relative;
	cursor: zoom-in;
	background: transparent;
	margin: 1rem auto 0;
	max-width: 1100px;
	width: fit-content;
	max-width: min(1100px, 100%);
}
.zd-decori-ed__cinema img {
	display: block;
	max-width: 100%;
	width: auto;
	height: auto;
	max-height: 560px;
	object-fit: contain;
	transition: transform 1s cubic-bezier(.22,.9,.24,1);
}
.zd-decori-ed__cinema:hover img { transform: scale(1.02); }
/* Cornice ottone segue il bounding della foto (non del contenitore) */
.zd-decori-ed__cinema::after {
	content: "";
	position: absolute;
	inset: -10px;
	border: 1px solid rgba(212,178,116,.28);
	pointer-events: none;
	transition: inset .4s ease, border-color .4s ease;
	z-index: 2;
}
.zd-decori-ed__cinema:hover::after { inset: -6px; border-color: rgba(212,178,116,.6); }

/* Anchor invisibile per scroll-to (usato in template-azienda.php) */
.zd-anchor { display: block; height: 0; overflow: hidden; }

.zd-decori-wow {
	padding: 6rem 0;
	background: var(--c-cream-50);
	border-top: 1px solid rgba(160,124,58,.2);
	border-bottom: 1px solid rgba(160,124,58,.2);
}
.zd-decori-wow__header {
	max-width: 48rem;
	margin: 0 auto 4rem;
	text-align: center;
	display: flex;
	flex-direction: column;
	align-items: center;
}

/* Eyebrow centrato con hairlines a destra e sinistra */
.zd-decori-wow__eyebrow {
	display: flex;
	align-items: center;
	gap: 1rem;
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: .38em;
	color: var(--c-ember);
}
.zd-decori-wow__line {
	display: inline-block;
	width: 3rem;
	height: 1px;
	background: linear-gradient(90deg, transparent, var(--c-brass), transparent);
}
.zd-decori-wow__eyebrow-text {
	font-weight: 500;
	font-variant: small-caps;
}

/* Titolo: 2 righe, prima Cormorant bold-light, seconda Cormorant italic ember GIGANTE */
.zd-decori-wow__title {
	margin-top: 1.75rem;
	font-family: var(--f-serif);
	font-weight: 500;
	line-height: .95;
	letter-spacing: -.015em;
	font-size: clamp(2.5rem, 6vw, 5rem);
	color: var(--c-ink);
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: .15em;
}
.zd-decori-wow__title-line { display: block; }
.zd-decori-wow__title-acc {
	font-style: italic;
	font-weight: 300;
	color: var(--c-ember);
	font-size: 1.06em;     /* leggermente più grande della prima riga */
	letter-spacing: -.02em;
}

/* Ornamento ottone con diamante centrale */
.zd-decori-wow__ornament {
	margin-top: 2rem;
	color: var(--c-brass);
	width: 8rem;
	height: .75rem;
}
.zd-decori-wow__ornament svg { width: 100%; height: 100%; }

.zd-decori-wow__body {
	margin-top: 1.75rem;
	font-family: var(--f-serif);
	font-style: italic;
	font-weight: 400;
	font-size: clamp(1.125rem, 1.6vw, 1.4rem);
	line-height: 1.55;
	color: rgba(27,23,20,.78);
	max-width: 38rem;
}
.zd-decori-gallery {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1rem;
}
@media (min-width: 768px) { .zd-decori-gallery { grid-template-columns: repeat(3, 1fr); gap: 1.25rem; } }
@media (min-width: 1024px) { .zd-decori-gallery { grid-template-columns: repeat(4, 1fr); } }

.zd-decori-gallery li {
	aspect-ratio: 4 / 5;
	overflow: hidden;
	background: var(--c-cream-100);
	position: relative;
	margin: 0;
}
.zd-decori-gallery a {
	display: block;
	width: 100%;
	height: 100%;
	position: relative;
	cursor: zoom-in;
}
.zd-decori-gallery img {
	width: 100%; height: 100%;
	object-fit: cover;
	transition: transform .6s ease;
}
.zd-decori-gallery a:hover img { transform: scale(1.05); }
.zd-decori-gallery a::after {
	content: "";
	position: absolute; inset: 0;
	border: 1px solid transparent;
	transition: border-color .3s;
	pointer-events: none;
}
.zd-decori-gallery a:hover::after { border-color: var(--c-ember); }

/* ============================================================
   CREAZIONI (pagina) · sidebar sticky + content blocchi categoria
   ============================================================ */
.zd-creaz-layout {
	display: grid;
	grid-template-columns: 1fr;     /* mobile: pila singola */
	gap: 2rem;
	align-items: start;
}
@media (min-width: 1024px) {
	/* sidebar STRETTA (auto = solo larghezza contenuto) + content tutto il resto */
	.zd-creaz-layout {
		grid-template-columns: minmax(180px, 220px) 1fr;
		gap: 3.5rem;
	}
}
.zd-creaz-layout--nosidebar { grid-template-columns: 1fr !important; }

/* Sidebar (minima, sticky a SINISTRA) */
.zd-creaz-sidebar { /* nessun order: rispetta l'ordine DOM (è il primo elemento del grid) */ }
@media (min-width: 1024px) {
	.zd-creaz-sidebar {
		position: sticky;
		top: 9rem;
		max-height: calc(100vh - 11rem);
		overflow-y: auto;
	}
}
.zd-creaz-sidebar__title { margin-bottom: 1.25rem; }

/* Mobile: select dropdown */
.zd-creaz-sidebar__mobile { display: block; margin-bottom: 1.25rem; }
.zd-creaz-sidebar__mobile select {
	width: 100%;
	background: var(--c-cream-50);
	border: 1px solid rgba(160,124,58,.3);
	padding: .75rem 1rem;
	font: inherit;
	font-size: .9rem;
	color: var(--c-ink);
	cursor: pointer;
}
.zd-creaz-sidebar__mobile select:focus {
	outline: none;
	border-color: var(--c-ember);
}
@media (min-width: 1024px) {
	.zd-creaz-sidebar__mobile { display: none; }
}

/* Desktop: tab list verticale */
.zd-creaz-sidebar__list {
	display: none;
	border-top: 1px solid rgba(160,124,58,.25);
}
@media (min-width: 1024px) {
	.zd-creaz-sidebar__list { display: block; }
}
.zd-creaz-sidebar__list li { border-bottom: 1px solid rgba(160,124,58,.2); }
.zd-creaz-sidebar__list button {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: .75rem;
	padding: .875rem 0;
	font-size: .875rem;
	text-transform: uppercase;
	letter-spacing: .14em;
	color: rgba(27,23,20,.7);
	background: none;
	border: none;
	cursor: pointer;
	transition: color .2s;
	text-align: left;
}
.zd-creaz-sidebar__list button:hover { color: var(--c-ember); }
.zd-creaz-sidebar__list button.is-active { color: var(--c-ember); }
.zd-creaz-sidebar__list button span:last-child {
	opacity: 0;
	transition: opacity .2s;
	font-size: .75rem;
}
.zd-creaz-sidebar__list button.is-active span:last-child,
.zd-creaz-sidebar__list button:hover span:last-child { opacity: 1; }

/* Content (un solo panel visibile) */
.zd-creaz-content {
	min-width: 0; /* permette al panel di non sfondare */
}

/* Singolo blocco categoria */
.zd-cat-block__header {
	margin-bottom: 2.5rem;
	max-width: 48rem;
}

/* Bottone DOWNLOAD allegato (sopra le creazioni) */
.zd-cat-block__download {
	display: inline-flex;
	align-items: center;
	gap: .75rem;
	margin-top: 1.5rem;
	padding: .75rem 1.25rem;
	border: 1px solid var(--c-brass);
	background: transparent;
	color: var(--c-ink);
	font-size: .8rem;
	text-transform: uppercase;
	letter-spacing: .22em;
	transition: background-color .25s ease, color .25s ease, border-color .25s ease;
}
.zd-cat-block__download:hover {
	background: var(--c-ember);
	border-color: var(--c-ember);
	color: var(--c-cream);
}
.zd-cat-block__download-icon {
	display: inline-flex;
	width: 1.1rem;
	height: 1.1rem;
}
.zd-cat-block__download-icon svg { width: 100%; height: 100%; }

/* COVER della categoria (sopra le creazioni o sopra la scheda generica) */
.zd-cat-block__cover {
	margin-bottom: 2.5rem;
	overflow: hidden;
	background: var(--c-cream-100);
	aspect-ratio: 16 / 7;
}
.zd-cat-block__cover img {
	width: 100%; height: 100%;
	object-fit: cover;
	display: block;
}

/* SCHEDA GENERICA (single_card) — testo lungo editoriale */
.zd-cat-block__card {
	max-width: 48rem;
	font-size: 1.05rem;
	line-height: 1.7;
	color: rgba(27,23,20,.85);
}
.zd-cat-block__card p { margin-bottom: 1rem; }
.zd-cat-block__title {
	margin-top: 1rem;
	font-family: var(--f-serif);
	font-weight: 600;
	line-height: 1.05;
	font-size: clamp(2rem, 3.6vw, 2.75rem);
	letter-spacing: -.01em;
	color: var(--c-ink);
}
.zd-cat-block__intro {
	margin-top: 1.25rem;
	font-size: 1.05rem;
	line-height: 1.6;
	color: rgba(27,23,20,.8);
}

/* ============================================================
   CREAZIONE (single) · galleria foto modello (MASONRY)
   Le foto hanno proporzioni diverse → CSS columns per non croppare.
   ============================================================ */
.zd-creazione-gallery {
	column-count: 2;
	column-gap: 1rem;
	list-style: none;
	margin: 0;
	padding: 0;
}
@media (min-width: 768px)  { .zd-creazione-gallery { column-count: 3; column-gap: 1.25rem; } }
@media (min-width: 1024px) { .zd-creazione-gallery { column-count: 4; } }

.zd-creazione-gallery li {
	break-inside: avoid;
	-webkit-column-break-inside: avoid;
	page-break-inside: avoid;
	display: block;
	margin: 0 0 1rem;
	background: var(--c-cream-100);
	position: relative;
}
@media (min-width: 768px) { .zd-creazione-gallery li { margin-bottom: 1.25rem; } }
.zd-creazione-gallery a {
	display: block;
	width: 100%;
	position: relative;
	cursor: zoom-in;
	overflow: hidden;
}
.zd-creazione-gallery img {
	display: block;
	width: 100%;
	height: auto; /* proporzioni naturali, no crop */
	transition: transform .6s ease;
}
.zd-creazione-gallery a:hover img { transform: scale(1.05); }
.zd-creazione-gallery a::after {
	content: "";
	position: absolute; inset: 0;
	border: 1px solid transparent;
	transition: border-color .3s;
	pointer-events: none;
}
.zd-creazione-gallery a:hover::after { border-color: var(--c-ember); }

/* Variante MINI per la gallery dentro la colonna scheda tecnica (biostufe).
   Sta in una colonna stretta (≈ 5/12 del viewport): 4 col quadrate sufficienti.
   Se va in larghezza piena (fallback) si centra come riga compatta. */
.zd-creazione-gallery--mini {
	grid-template-columns: repeat(4, 1fr);
	gap: .5rem;
	justify-content: center;   /* se sta in riga sotto: centra */
}
.zd-creazione-gallery--mini li { aspect-ratio: 1 / 1; }
.zd-creazione-gallery--mini a:hover img { transform: scale(1.08); }

/* ============================================================
   LIGHTBOX vanilla
   ============================================================ */
.zd-lightbox {
	position: fixed;
	inset: 0;
	z-index: 200;
	background: rgba(11, 6, 4, .94);
	display: none;
	align-items: center;
	justify-content: center;
	padding: 4rem 1.5rem;
	opacity: 0;
	transition: opacity .25s ease;
}
.zd-lightbox.is-open { display: flex; opacity: 1; }

.zd-lightbox__stage {
	position: relative;
	max-width: 90vw;
	max-height: calc(100vh - 8rem);
	display: flex;
	align-items: center;
	justify-content: center;
}
.zd-lightbox__img {
	max-width: 100%;
	max-height: calc(100vh - 9rem);
	object-fit: contain;
	box-shadow: 0 30px 80px rgba(0,0,0,.5);
	transition: opacity .2s ease;
}

.zd-lightbox__btn {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 3rem; height: 3rem;
	border-radius: 50%;
	border: 1px solid rgba(247,241,231,.4);
	color: var(--c-cream);
	background: rgba(27,23,20,.6);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 1.5rem;
	cursor: pointer;
	transition: background .2s, border-color .2s, transform .2s;
}
.zd-lightbox__btn:hover { background: var(--c-ember); border-color: var(--c-ember); transform: translateY(-50%) scale(1.05); }
.zd-lightbox__btn--prev { left: -1rem; }
.zd-lightbox__btn--next { right: -1rem; }
@media (min-width: 768px) {
	.zd-lightbox__btn--prev { left: 2rem; }
	.zd-lightbox__btn--next { right: 2rem; }
}

.zd-lightbox__close {
	position: absolute;
	top: 1.25rem; right: 1.25rem;
	width: 2.5rem; height: 2.5rem;
	border-radius: 50%;
	border: 1px solid rgba(247,241,231,.4);
	color: var(--c-cream);
	background: rgba(27,23,20,.6);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition: background .2s, border-color .2s;
}
.zd-lightbox__close:hover { background: var(--c-ember); border-color: var(--c-ember); }

.zd-lightbox__counter {
	position: absolute;
	bottom: 1.25rem; left: 50%;
	transform: translateX(-50%);
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: .28em;
	color: rgba(247,241,231,.7);
	font-variant-numeric: tabular-nums;
}

/* ============================================================
   FULL-BLEED utility (esce dal container fluido di main, indipendente da scrollbar)
   ============================================================ */
.zd-full-bleed {
	display: block;
	width: 100vw;
	max-width: 100vw;
	position: relative;
	left: 50%;
	right: 50%;
	margin-left: -50vw;
	margin-right: -50vw;
}

/* ============================================================
   CONTACT FORM 7 — integrato col design del tema
   ============================================================ */
.wpcf7 form { display: flex; flex-direction: column; gap: 1.5rem; }

.wpcf7 .zd-grid-2 { display: grid; grid-template-columns: 1fr; gap: 1.5rem; }
@media (min-width: 640px) { .wpcf7 .zd-grid-2 { grid-template-columns: 1fr 1fr; } }

.wpcf7 .zd-grid-zip { display: grid; grid-template-columns: 110px 1fr; gap: 1.5rem; }

.wpcf7 label {
	display: block;
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: .24em;
	color: var(--c-stone);
}

.wpcf7 .wpcf7-form-control-wrap { display: block; margin-top: .5rem; }

.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 input[type="url"],
.wpcf7 input[type="number"],
.wpcf7 textarea,
.wpcf7 select {
	width: 100%;
	background: transparent;
	border: none;
	border-bottom: 1px solid rgba(27,23,20,.25);
	border-radius: 0;
	padding: .65rem 0;
	font-family: var(--f-sans);
	font-size: .95rem;
	color: var(--c-ink);
	transition: border-color .2s;
	box-shadow: none;
}
.wpcf7 input[type="text"]:focus,
.wpcf7 input[type="email"]:focus,
.wpcf7 input[type="tel"]:focus,
.wpcf7 textarea:focus,
.wpcf7 select:focus {
	border-color: var(--c-ember);
	outline: none;
}
.wpcf7 textarea { resize: vertical; min-height: 5rem; }

.wpcf7 .wpcf7-list-item { margin: 0; display: block; }
.wpcf7 .wpcf7-list-item label {
	display: flex;
	align-items: flex-start;
	gap: .75rem;
	font-size: .8rem;
	text-transform: none;
	letter-spacing: 0;
	color: rgba(27,23,20,.7);
	line-height: 1.5;
	cursor: pointer;
}
.wpcf7 input[type="checkbox"] { accent-color: var(--c-ember); margin-top: .15rem; }
.wpcf7 .wpcf7-list-item .wpcf7-list-item-label { color: rgba(27,23,20,.8); }
.wpcf7 a { color: var(--c-ember); text-decoration: underline; }

.wpcf7-submit {
	margin-top: .5rem;
	background: var(--c-ink);
	color: var(--c-cream);
	border: none;
	padding: 1rem 1.75rem;
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: .28em;
	cursor: pointer;
	transition: background .3s, color .3s;
	width: auto;
	align-self: flex-start;
}
.wpcf7-submit:hover, .wpcf7-submit:focus { background: var(--c-ember); }
.wpcf7-spinner { vertical-align: middle; }

.wpcf7-response-output {
	margin-top: 1rem !important;
	padding: 1rem !important;
	font-size: .85rem;
	border-color: var(--c-brass) !important;
}
.wpcf7-not-valid-tip { color: var(--c-ember); font-size: .75rem; margin-top: .25rem; }

/* ============================================================
   PROSE (per page.php — contenuto editato in WP)
   ============================================================ */
.zd-prose { color: rgba(27,23,20,.85); line-height: 1.7; max-width: 42rem; }
.zd-prose h2 { font-family: var(--f-serif); font-weight: 300; font-size: 2rem; margin: 2.5rem 0 1rem; line-height: 1.1; }
.zd-prose h3 { font-family: var(--f-serif); font-weight: 400; font-size: 1.5rem; margin: 2rem 0 .75rem; }
.zd-prose p  { margin-bottom: 1rem; }
.zd-prose a  { color: var(--c-ember); border-bottom: 1px solid currentColor; }
.zd-prose ul { list-style: disc; padding-left: 1.25rem; margin-bottom: 1rem; }
.zd-prose strong { color: var(--c-ink); }

/* ============================================================
   FASI DI COMBUSTIONE · carosello step-by-step (categoria Stufe a pellet)
   Sta nella colonna del contenuto (non full-bleed). Riusa il JS del flipbook.
   ============================================================ */
.zd-fasi {
	background: var(--c-ink);
	color: var(--c-cream);
	border: 1px solid rgba(212,178,116,.28);
	padding: 2.25rem 1.5rem;
	margin: 2.5rem 0;
	position: relative;
	overflow: hidden;
}
@media (min-width: 768px)  { .zd-fasi { padding: 2.75rem 2rem; margin: 3rem 0; } }
@media (min-width: 1024px) { .zd-fasi { padding: 3rem 2.5rem; } }
.zd-fasi__inner { position: relative; z-index: 1; }

/* Alone brace decorativo */
.zd-fasi::before {
	content: "";
	position: absolute;
	top: -20%;
	left: -10%;
	width: 60%;
	height: 60%;
	background: radial-gradient(circle at center, rgba(198,74,31,.35), transparent 65%);
	filter: blur(70px);
	pointer-events: none;
	opacity: .5;
	z-index: 0;
}

.zd-fasi__head {
	max-width: 46rem;
	margin-bottom: 2rem;
}
.zd-fasi__title {
	margin: .75rem 0 0;
	font-family: var(--f-serif);
	font-weight: 600;
	line-height: 1.08;
	font-size: clamp(1.6rem, 2.6vw, 2.15rem);
	color: var(--c-cream);
	letter-spacing: -.005em;
}
.zd-fasi__body {
	margin: .75rem 0 0;
	font-size: 1rem;
	line-height: 1.6;
	color: rgba(247,241,231,.82);
}

/* STAGE: frecce a sx/dx + viewport */
.zd-fasi__stage {
	display: grid;
	grid-template-columns: auto 1fr auto;
	align-items: center;
	gap: .75rem;
	margin: 1.75rem 0 1.5rem;
}
@media (min-width: 768px) { .zd-fasi__stage { gap: 1.5rem; } }

.zd-fasi__nav {
	appearance: none;
	background: transparent;
	border: 1px solid rgba(212,178,116,.35);
	color: rgba(212,178,116,.9);
	width: 42px;
	height: 42px;
	border-radius: 50%;
	font-size: 18px;
	line-height: 1;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: background .3s ease, color .3s ease, border-color .3s ease, transform .3s ease;
	flex-shrink: 0;
}
@media (min-width: 768px) { .zd-fasi__nav { width: 52px; height: 52px; font-size: 20px; } }
.zd-fasi__nav:hover:not(:disabled) {
	background: var(--c-ember);
	border-color: var(--c-ember);
	color: var(--c-cream);
	transform: scale(1.05);
}
.zd-fasi__nav:disabled { opacity: .3; cursor: default; }
.zd-fasi__nav:focus-visible { outline: 2px solid var(--c-ember); outline-offset: 3px; }

/* Viewport: contiene le slide sovrapposte, quella .is-active visibile.
   Nessun min-height: l'altezza segue il contenuto della slide attiva. */
.zd-fasi__viewport {
	position: relative;
	width: 100%;
	touch-action: pan-y;
}

/* Slide: colonna unica · foto grande sopra · testo sotto */
.zd-fasi__slide {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
	align-items: stretch;
	max-width: 900px;
	margin: 0 auto;
	opacity: 0;
	visibility: hidden;
	transform: translate3d(0, 8px, 0);
	transition: opacity .55s cubic-bezier(.22,.9,.24,1),
	            transform .55s cubic-bezier(.22,.9,.24,1),
	            visibility 0s linear .55s;
	pointer-events: none;
}
@media (min-width: 1024px) { .zd-fasi__slide { gap: 2rem; } }
.zd-fasi__slide.is-active {
	opacity: 1;
	visibility: visible;
	transform: translate3d(0, 0, 0);
	transition-delay: 0s, 0s, 0s;
	pointer-events: auto;
	position: relative;    /* così contribuisce all'altezza del viewport */
	inset: auto;
}
.zd-fasi__slide:not(.is-active) { position: absolute; }

/* Foto della fase: MOLTO più grande, a piena larghezza della slide */
.zd-fasi__media {
	margin: 0;
	background: rgba(0,0,0,.35);
	border: 1px solid rgba(212,178,116,.15);
	overflow: hidden;
	display: flex;
	justify-content: center;
	align-items: center;
	padding: .75rem;
	width: 100%;
}
.zd-fasi__media img {
	display: block;
	max-width: 100%;
	width: 100%;
	height: auto;
	max-height: 520px;
	object-fit: contain;
}
@media (min-width: 768px)  { .zd-fasi__media img { max-height: 600px; } }
@media (min-width: 1024px) { .zd-fasi__media img { max-height: 680px; } }

/* Copy: label · titolo · descrizione (sotto la foto, centrato) */
.zd-fasi__copy {
	display: flex;
	flex-direction: column;
	gap: .75rem;
	text-align: center;
	align-items: center;
	max-width: 46rem;
	margin: 0 auto;
	padding: 0 .5rem;
}
.zd-fasi__step {
	margin: 0;
	font-size: 10.5px;
	letter-spacing: .32em;
	text-transform: uppercase;
	color: var(--c-ember);
	font-weight: 600;
}
.zd-fasi__step-title {
	margin: 0;
	font-family: var(--f-serif);
	font-weight: 600;
	line-height: 1.05;
	font-size: clamp(1.75rem, 3.4vw, 2.5rem);
	color: var(--c-cream);
	letter-spacing: -.005em;
}
.zd-fasi__step-body {
	margin: 0;
	font-size: 1rem;
	line-height: 1.6;
	color: rgba(247,241,231,.85);
	max-width: 40rem;
}

/* Meta: contatore + progress bar (uguale al flipbook) */
.zd-fasi__meta {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: .75rem;
	max-width: 320px;
	margin: 0 auto;
}
.zd-fasi__counter {
	font-family: var(--f-serif);
	font-weight: 500;
	font-size: 1rem;
	color: rgba(247,241,231,.85);
	letter-spacing: .1em;
	font-variant-numeric: tabular-nums;
	display: inline-flex;
	align-items: baseline;
	gap: .4rem;
}
.zd-fasi__counter [data-flipbook-current] {
	color: var(--c-ember);
	font-size: 1.25rem;
	font-weight: 600;
}
.zd-fasi__progress {
	width: 100%;
	height: 2px;
	background: rgba(212,178,116,.18);
	overflow: hidden;
}
.zd-fasi__progress-bar {
	height: 100%;
	background: linear-gradient(90deg, var(--c-ember), rgba(212,178,116,.9));
	transition: width .5s cubic-bezier(.22,.9,.24,1);
}
.zd-fasi__note {
	margin: 1.5rem 0 0;
	font-size: .78rem;
	line-height: 1.55;
	color: rgba(247,241,231,.6);
	font-style: italic;
	text-align: center;
	max-width: 44rem;
	margin-left: auto;
	margin-right: auto;
}

/* ============================================================
   PROGRAMMA DI CALCOLO ASSOCOSMA · blocco sopra la griglia creazioni
   (categoria Stufe a legna e simili · sta nella stessa colonna del
   testo/cover/griglia — non full-bleed)
   ============================================================ */
.zd-progcalc {
	background: linear-gradient(180deg, var(--c-cream-50) 0%, var(--c-cream-100) 100%);
	border: 1px solid rgba(160,124,58,.28);
	padding: 2.25rem 1.5rem;
	margin: 2.5rem 0;
	position: relative;
}
@media (min-width: 768px)  { .zd-progcalc { padding: 2.75rem 2rem; margin: 3rem 0; } }
@media (min-width: 1024px) { .zd-progcalc { padding: 3rem 2.5rem; } }
.zd-progcalc__inner { max-width: 100%; margin: 0; }

.zd-progcalc__head {
	text-align: left;
	margin-bottom: 2rem;
	max-width: 46rem;
}
.zd-progcalc__eyebrow { letter-spacing: .28em; }
.zd-progcalc__title {
	margin: .75rem 0 0;
	font-family: var(--f-serif);
	font-weight: 600;
	line-height: 1.08;
	font-size: clamp(1.6rem, 2.6vw, 2.15rem);
	color: var(--c-ink);
	letter-spacing: -.005em;
}
.zd-progcalc__title span { display: inline; }
.zd-progcalc__norm {
	margin: 1rem 0 0;
	font-size: 11px;
	letter-spacing: .28em;
	text-transform: uppercase;
	color: var(--c-brass);
}

.zd-progcalc__body {
	margin: .75rem 0 0;
	font-size: 1rem;
	line-height: 1.65;
	color: rgba(31,23,20,.82);
	max-width: 46rem;
}

/* META: loghi + CTA download (barra sopra le tabelle) */
.zd-progcalc__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
	margin: 1.5rem 0 2rem;
	padding: 1.25rem 0;
	border-top: 1px solid rgba(160,124,58,.28);
	border-bottom: 1px solid rgba(160,124,58,.28);
}
.zd-progcalc__logos {
	display: flex;
	align-items: center;
	gap: 1.75rem;
	flex-wrap: wrap;
}
.zd-progcalc__logo { margin: 0; }
.zd-progcalc__logo img {
	display: block;
	max-height: 60px;
	max-width: 160px;
	width: auto;
	height: auto;
	object-fit: contain;
	filter: drop-shadow(0 3px 8px rgba(31,23,20,.10));
}
/* Logo Assocosma più grande per dargli più presenza (riprende scala del PDF) */
.zd-progcalc__logo--asso img {
	max-height: 110px;
	max-width: 260px;
}
@media (max-width: 640px) {
	.zd-progcalc__logo--asso img { max-height: 80px; max-width: 200px; }
}
.zd-progcalc__cta { align-self: center; }

/* Wrapper tabelle */
.zd-progcalc__tblwrap {
	margin: 2rem 0 0;
	background: #fff;
	border: 1px solid rgba(160,124,58,.28);
}
.zd-progcalc__tblwrap--scroll {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

/* TABELLA 1 · Calcolo della stufa */
.zd-progcalc__t1 {
	width: 100%;
	border-collapse: collapse;
	font-size: .92rem;
}
.zd-progcalc__t1 caption {
	caption-side: top;
	text-align: left;
	font-family: var(--f-serif);
	font-weight: 600;
	font-size: 1.15rem;
	color: var(--c-ink);
	padding: 1rem 1.25rem .6rem;
	border-bottom: 1px solid rgba(160,124,58,.2);
}
.zd-progcalc__t1 tr.zd-progcalc__t1-head th {
	background: rgba(160,124,58,.08);
	color: var(--c-ember);
	font-family: var(--f-sans);
	font-weight: 600;
	font-size: 10.5px;
	letter-spacing: .22em;
	text-transform: uppercase;
	text-align: left;
	padding: .75rem 1.25rem;
	border-top: 1px solid rgba(160,124,58,.2);
	border-bottom: 1px solid rgba(160,124,58,.15);
}
.zd-progcalc__t1 tbody th[scope="row"] {
	text-align: left;
	font-weight: 400;
	color: var(--c-stone);
	padding: .55rem 1.25rem;
	width: 55%;
	border-bottom: 1px solid rgba(160,124,58,.1);
	vertical-align: top;
}
.zd-progcalc__t1 tbody td {
	font-family: var(--f-serif);
	font-weight: 500;
	color: var(--c-ink);
	padding: .55rem 1.25rem;
	border-bottom: 1px solid rgba(160,124,58,.1);
	font-variant-numeric: tabular-nums;
	vertical-align: top;
}

/* TABELLA 2 · Dettaglio dei giri di fumo (scrollabile) */
.zd-progcalc__t2-title {
	margin: 0;
	padding: 1rem 1.25rem .6rem;
	font-family: var(--f-serif);
	font-weight: 600;
	font-size: 1.15rem;
	color: var(--c-ink);
	border-bottom: 1px solid rgba(160,124,58,.2);
}
.zd-progcalc__t2 {
	width: 100%;
	border-collapse: collapse;
	font-size: .82rem;
	font-variant-numeric: tabular-nums;
}
.zd-progcalc__t2 thead th {
	background: rgba(160,124,58,.08);
	color: var(--c-ember);
	font-family: var(--f-sans);
	font-weight: 600;
	font-size: 10.5px;
	letter-spacing: .1em;
	text-transform: uppercase;
	text-align: right;
	padding: .5rem .7rem;
	border-bottom: 1px solid rgba(160,124,58,.25);
	white-space: nowrap;
	position: sticky;
	top: 0;
}
.zd-progcalc__t2 thead th:first-child { text-align: left; }
.zd-progcalc__t2 tbody td {
	color: var(--c-ink);
	padding: .45rem .7rem;
	border-bottom: 1px solid rgba(160,124,58,.08);
	text-align: right;
	white-space: nowrap;
}
.zd-progcalc__t2 tbody td:first-child {
	text-align: left;
	color: var(--c-ember);
	font-weight: 600;
}
.zd-progcalc__t2 tbody tr:nth-child(even) td { background: rgba(160,124,58,.04); }
.zd-progcalc__t2 tbody tr:hover td { background: rgba(160,124,58,.10); }
/* Ultima riga (Somma) evidenziata in grassetto con separatore ottone sopra */
.zd-progcalc__t2 tbody tr:last-child td {
	font-weight: 700;
	color: var(--c-ember);
	background: rgba(160,124,58,.08);
	border-top: 2px solid rgba(160,124,58,.55);
	padding-top: .6rem;
	padding-bottom: .6rem;
}
.zd-progcalc__t2 tbody tr:last-child td:first-child { color: var(--c-ember); }

/* Schema tecnico opzionale */
.zd-progcalc__scheme {
	margin: 2rem 0 0;
	background: #fff;
	border: 1px solid rgba(160,124,58,.28);
	padding: 1.25rem;
	display: flex;
	justify-content: center;
}
.zd-progcalc__scheme img {
	display: block;
	max-width: 100%;
	max-height: 320px;
	width: auto;
	height: auto;
	object-fit: contain;
	filter: drop-shadow(0 6px 16px rgba(31,23,20,.10));
}

.zd-progcalc__note {
	margin: 1.5rem 0 0;
	font-size: .78rem;
	line-height: 1.55;
	color: var(--c-stone);
	font-style: italic;
	max-width: 44rem;
}

/* ============================================================
   ECOLOGIA · Fasi di combustione a pellet
   ============================================================ */
.zd-pellet-phases {
	list-style: none;
	margin: 2.5rem 0 0;
	padding: 0;
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.25rem;
	counter-reset: pellet;
}
@media (min-width: 768px)  { .zd-pellet-phases { grid-template-columns: repeat(2, 1fr); gap: 1.5rem; } }
@media (min-width: 1100px) { .zd-pellet-phases { grid-template-columns: repeat(4, 1fr); } }
.zd-pellet-phases > li {
	display: flex;
	flex-direction: column;
	gap: .9rem;
	padding: 1.5rem 1.5rem 1.75rem;
	background: var(--c-cream);
	border-top: 2px solid var(--c-ember);
	position: relative;
}
.zd-pellet-phases__num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.6rem;
	height: 2.6rem;
	border-radius: 50%;
	background: var(--c-ember);
	color: var(--c-cream);
	font-family: var(--f-serif);
	font-weight: 600;
	font-size: 1.1rem;
	font-variant-numeric: tabular-nums;
	letter-spacing: -.02em;
}
.zd-pellet-phases__copy h4 {
	margin: 0;
	font-family: var(--f-serif);
	font-weight: 600;
	font-size: 1.2rem;
	line-height: 1.2;
	color: var(--c-ink);
}
.zd-pellet-phases__copy p {
	margin: .5rem 0 0;
	font-size: .95rem;
	line-height: 1.55;
	color: rgba(31,23,20,.72);
}

/* ============================================================
   DICONO DI NOI · press / menzioni
   ============================================================ */

/* HERO · L'ARTE DEL CALORE (stile Caldi Arcobaleni) */
.zd-arte-hero {
	position: relative;
	background: var(--c-ink);
	color: var(--c-cream);
	/* Padding-top generoso per stare SOTTO l'header sticky (logo grande + tagline + menu) */
	padding: 14rem 1.5rem 4rem;
	overflow: hidden;
	isolation: isolate;
}
@media (min-width: 768px)  { .zd-arte-hero { padding: 15rem 1.5rem 5rem; } }
@media (min-width: 1024px) { .zd-arte-hero { padding: 17rem 3rem 6rem; } }

/* Aloni brace ai lati */
.zd-arte-hero__glow {
	position: absolute;
	width: 55%;
	height: 65%;
	pointer-events: none;
	filter: blur(90px);
	opacity: .3;
	z-index: 0;
}
.zd-arte-hero__glow--l {
	top: 15%;
	left: -18%;
	background: radial-gradient(circle at center, rgba(198,74,31,.85), transparent 65%);
}
.zd-arte-hero__glow--r {
	bottom: 10%;
	right: -18%;
	background: radial-gradient(circle at center, rgba(212,178,116,.55), transparent 65%);
}

.zd-arte-hero__inner {
	position: relative;
	z-index: 1;
	max-width: 1280px;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	gap: 3rem;
}

/* Eyebrow centrato con hairlines */
.zd-arte-hero__eyebrow {
	margin: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 1.25rem;
	color: rgba(212,178,116,.9);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .34em;
	text-transform: uppercase;
	text-align: center;
}
.zd-arte-hero__eyebrow-text { white-space: nowrap; }
.zd-arte-hero__hair {
	display: block;
	flex: 1;
	max-width: 140px;
	height: 1px;
	background: linear-gradient(90deg, transparent, rgba(212,178,116,.55), transparent);
}
@media (max-width: 640px) {
	.zd-arte-hero__eyebrow { flex-wrap: wrap; gap: .8rem; }
	.zd-arte-hero__hair { max-width: 40px; }
}

/* CENTRO: titolo XL + ornamento + lead */
.zd-arte-hero__centre {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 1.5rem;
	padding: 1rem 0;
}
@media (min-width: 900px) {
	.zd-arte-hero__centre { padding: 1rem 1.5rem; }
}
.zd-arte-hero__title {
	margin: 0;
	font-family: var(--f-serif);
	font-weight: 600;
	font-size: clamp(2.4rem, 5.5vw, 4.5rem);
	line-height: 1;
	letter-spacing: .01em;
	color: var(--c-cream);
	text-transform: uppercase;
	display: flex;
	flex-direction: column;
	gap: .15em;
}
@media (min-width: 1024px) {
	.zd-arte-hero__title { letter-spacing: .02em; }
}
.zd-arte-hero__title-acc {
	color: var(--c-ember);
	font-style: italic;
	font-weight: 500;
	letter-spacing: .005em;
	text-transform: uppercase;
}
.zd-arte-hero__ornament {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: .75rem;
	width: 100%;
	max-width: 220px;
	margin: 0 auto;
}
.zd-arte-hero__ornament-line {
	flex: 1;
	height: 1px;
	background: linear-gradient(90deg, transparent, rgba(212,178,116,.6), transparent);
}
.zd-arte-hero__ornament-diamond {
	width: 8px;
	height: 8px;
	transform: rotate(45deg);
	background: var(--c-ember);
	box-shadow: 0 0 12px 2px rgba(198,74,31,.55);
}
.zd-arte-hero__lead {
	margin: 0 auto;
	max-width: 46rem;
	font-family: var(--f-serif);
	font-weight: 400;
	font-style: italic;
	font-size: clamp(1.05rem, 1.4vw, 1.25rem);
	line-height: 1.55;
	color: rgba(247,241,231,.85);
	text-align: center;
}

/* COPERTINA · foto singola tra hero e flipbook (autonoma) */
.zd-arte-cover {
	position: relative;
	background: var(--c-ink);
	color: var(--c-cream);
	padding: 3rem 1.5rem 4rem;
	overflow: hidden;
}
@media (min-width: 1024px) { .zd-arte-cover { padding: 3rem 3rem 5rem; } }
/* Alone singolo centrale che tiene la copertina "avvolta" nel calore */
.zd-arte-cover__glow {
	position: absolute;
	top: 30%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 80%;
	max-width: 700px;
	height: 60%;
	background: radial-gradient(circle at center, rgba(198,74,31,.28), transparent 65%);
	filter: blur(70px);
	pointer-events: none;
}
.zd-arte-cover__inner {
	position: relative;
	z-index: 1;
	max-width: 640px;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 1.25rem;
}
.zd-arte-cover__frame {
	position: relative;
	margin: 0;
	display: block;
	max-width: 480px;
	width: 100%;
}
.zd-arte-cover__frame img {
	display: block;
	width: 100%;
	height: auto;
	object-fit: contain;
	box-shadow: 0 40px 80px -30px rgba(0,0,0,.75), 0 15px 30px -12px rgba(0,0,0,.5);
}
.zd-arte-cover__border {
	position: absolute;
	inset: -14px;
	border: 1px solid rgba(212,178,116,.4);
	pointer-events: none;
	transition: inset .5s ease, border-color .5s ease;
}
.zd-arte-cover__frame:hover .zd-arte-cover__border {
	inset: -8px;
	border-color: rgba(212,178,116,.75);
}
.zd-arte-cover__caption {
	margin: 0;
	font-family: var(--f-serif);
	font-style: italic;
	font-size: 1rem;
	line-height: 1.45;
	color: rgba(247,241,231,.72);
	text-align: center;
	max-width: 40rem;
}

/* FLIPBOOK · sfoglia le pagine (stile Caldi Arcobaleni: sfondo ink, ornamenti ottone) */
.zd-flipbook {
	position: relative;
	background: var(--c-ink);
	color: var(--c-cream);
	padding: 5rem 1.5rem 4rem;
	overflow: hidden;
	isolation: isolate;
}
@media (min-width: 1024px) { .zd-flipbook { padding: 7rem 3rem 5rem; } }
/* Aloni brace ai lati */
.zd-flipbook__glow {
	position: absolute;
	width: 55%;
	height: 60%;
	pointer-events: none;
	filter: blur(80px);
	opacity: .28;
	z-index: 0;
}
.zd-flipbook__glow--l {
	top: 15%;
	left: -18%;
	background: radial-gradient(circle at center, rgba(198,74,31,.85), transparent 65%);
}
.zd-flipbook__glow--r {
	bottom: 5%;
	right: -18%;
	background: radial-gradient(circle at center, rgba(212,178,116,.55), transparent 65%);
}
.zd-flipbook__inner {
	position: relative;
	z-index: 1;
	max-width: 1280px;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	gap: 2.5rem;
	align-items: center;
}

/* Ornamento decorativo in cima al flipbook */
.zd-flipbook__ornament {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: .75rem;
	width: 100%;
	max-width: 260px;
}
.zd-flipbook__ornament-line {
	flex: 1;
	height: 1px;
	background: linear-gradient(90deg, transparent, rgba(212,178,116,.6), transparent);
}
.zd-flipbook__ornament-diamond {
	width: 8px;
	height: 8px;
	transform: rotate(45deg);
	background: var(--c-ember);
	box-shadow: 0 0 12px 2px rgba(198,74,31,.55);
}

/* STAGE: frecce ai lati + viewport pagine */
.zd-flipbook__stage {
	display: grid;
	grid-template-columns: auto 1fr auto;
	align-items: center;
	gap: 1rem;
	width: 100%;
	min-height: 460px;
}
@media (min-width: 768px) { .zd-flipbook__stage { gap: 2rem; min-height: 620px; } }
@media (min-width: 1024px) { .zd-flipbook__stage { gap: 3rem; min-height: 760px; } }

/* Frecce navigation grandi, cerchio ottone al hover */
.zd-flipbook__nav {
	appearance: none;
	background: transparent;
	border: 1px solid rgba(212,178,116,.35);
	color: rgba(212,178,116,.9);
	width: 44px;
	height: 44px;
	border-radius: 50%;
	font-size: 20px;
	line-height: 1;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: background .3s ease, color .3s ease, border-color .3s ease, transform .3s ease;
	flex-shrink: 0;
}
@media (min-width: 768px) { .zd-flipbook__nav { width: 56px; height: 56px; font-size: 22px; } }
.zd-flipbook__nav:hover:not(:disabled) {
	background: var(--c-ember);
	border-color: var(--c-ember);
	color: var(--c-cream);
	transform: scale(1.05);
}
.zd-flipbook__nav:disabled { opacity: .3; cursor: default; }
.zd-flipbook__nav:focus-visible { outline: 2px solid var(--c-ember); outline-offset: 3px; }

/* Viewport: contiene le pagine sovrapposte, quella attiva in fade-in */
.zd-flipbook__viewport {
	position: relative;
	width: 100%;
	height: 100%;
	min-height: 460px;
	display: flex;
	align-items: center;
	justify-content: center;
	user-select: none;
	touch-action: pan-y;
}
@media (min-width: 768px)  { .zd-flipbook__viewport { min-height: 620px; } }
@media (min-width: 1024px) { .zd-flipbook__viewport { min-height: 760px; } }

/* Ogni pagina: sovrapposta, visibile solo quella .is-active */
.zd-flipbook__page {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 1rem;
	opacity: 0;
	visibility: hidden;
	transform: translate3d(0, 8px, 0);
	transition: opacity .55s cubic-bezier(.22,.9,.24,1),
	            transform .55s cubic-bezier(.22,.9,.24,1),
	            visibility 0s linear .55s;
	pointer-events: none;
}
.zd-flipbook__page.is-active {
	opacity: 1;
	visibility: visible;
	transform: translate3d(0, 0, 0);
	transition-delay: 0s, 0s, 0s;
	pointer-events: auto;
}

/* Frame della foto: cornice ottone che si adatta all'immagine */
.zd-flipbook__frame {
	position: relative;
	margin: 0;
	display: inline-block;
	max-width: 100%;
	max-height: 100%;
	background: transparent;
}
.zd-flipbook__frame::after {
	content: "";
	position: absolute;
	inset: -12px;
	border: 1px solid rgba(212,178,116,.35);
	pointer-events: none;
	transition: inset .35s ease, border-color .35s ease;
}
.zd-flipbook__frame:hover::after { inset: -6px; border-color: rgba(212,178,116,.65); }
.zd-flipbook__frame img {
	display: block;
	max-width: 100%;
	max-height: 60vh;
	width: auto;
	height: auto;
	object-fit: contain;
	box-shadow: 0 24px 60px -20px rgba(0,0,0,.55), 0 8px 20px -10px rgba(0,0,0,.35);
}
@media (min-width: 768px)  { .zd-flipbook__frame img { max-height: 68vh; } }
@media (min-width: 1024px) { .zd-flipbook__frame img { max-height: 75vh; } }

/* Bg hint delle pagine per raffinare cornice */
.zd-flipbook__page--bg-light .zd-flipbook__frame img {
	box-shadow: 0 24px 60px -20px rgba(0,0,0,.55), 0 8px 20px -10px rgba(0,0,0,.35);
}
.zd-flipbook__page--bg-dark .zd-flipbook__frame::after {
	border-color: rgba(212,178,116,.5); /* cornice più visibile sulle foto scure */
}

.zd-flipbook__caption {
	font-family: var(--f-serif);
	font-style: italic;
	font-size: .95rem;
	line-height: 1.4;
	color: rgba(247,241,231,.75);
	text-align: center;
	max-width: 46rem;
	margin: 0;
	padding: 0 1rem;
}

/* Meta: contatore + progress bar */
.zd-flipbook__meta {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: .9rem;
	width: 100%;
	max-width: 320px;
}
.zd-flipbook__counter {
	font-family: var(--f-serif);
	font-weight: 500;
	font-size: 1.05rem;
	color: rgba(247,241,231,.85);
	letter-spacing: .1em;
	font-variant-numeric: tabular-nums;
	display: inline-flex;
	align-items: baseline;
	gap: .4rem;
}
.zd-flipbook__counter [data-flipbook-current] {
	color: var(--c-ember);
	font-size: 1.35rem;
	font-weight: 600;
}
.zd-flipbook__progress {
	width: 100%;
	height: 2px;
	background: rgba(212,178,116,.18);
	overflow: hidden;
}
.zd-flipbook__progress-bar {
	height: 100%;
	background: linear-gradient(90deg, var(--c-ember), rgba(212,178,116,.9));
	transition: width .5s cubic-bezier(.22,.9,.24,1);
}

/* WALL OF FAME — marquee continuo loghi */
.zd-dicono-wall {
	padding: 5rem 0;
	background: var(--c-cream-100);
	border-top: 1px solid rgba(160,124,58,.18);
	border-bottom: 1px solid rgba(160,124,58,.18);
}
.zd-dicono-wall__head {
	text-align: center;
	margin-bottom: 2.5rem;
	padding: 0 1.5rem;
}
.zd-dicono-wall__marquee {
	overflow: hidden;
	mask-image: linear-gradient(90deg, transparent 0%, black 8%, black 92%, transparent 100%);
	-webkit-mask-image: linear-gradient(90deg, transparent 0%, black 8%, black 92%, transparent 100%);
}
.zd-dicono-wall__track {
	display: flex;
	align-items: center;
	gap: 4rem;
	width: max-content;
	animation: zd-wall-scroll 50s linear infinite;
}
.zd-dicono-wall:hover .zd-dicono-wall__track { animation-play-state: paused; }
.zd-dicono-wall__item {
	flex: 0 0 auto;
	height: 60px;
	display: flex;
	align-items: center;
}
.zd-dicono-wall__item img {
	max-height: 60px;
	max-width: 180px;
	width: auto;
	height: auto;
	display: block;
	opacity: .55;
	filter: grayscale(100%);
	transition: opacity .35s ease, filter .35s ease;
}
.zd-dicono-wall__item:hover img,
.zd-dicono-wall__item a:hover img { opacity: 1; filter: grayscale(0); }
@keyframes zd-wall-scroll {
	from { transform: translate3d(0, 0, 0); }
	to   { transform: translate3d(-50%, 0, 0); }
}
@media (prefers-reduced-motion: reduce) {
	.zd-dicono-wall__track { animation: none; flex-wrap: wrap; justify-content: center; }
}
