/* ==========================================================================
   Leviathan Core — pagine a sezioni dentro Salient.
   Token: master LEVos (designSystemGet 'master', alpha). Tutto scoped .lv-page:
   header, menu e footer restano di Salient e non vengono toccati.
   Font: Neue Haas via Typekit già caricato dal sito (gil5knk).
   Layout, pesi e motion seguono il sito attuale (Salient: container 1600px,
   padding 65px, body 400, h1 300, reveal 700ms); colori, raggi e componenti il DS.
   ========================================================================== */

.lv-page {
	--color-ember: #F92E07;
	--color-void: #000000;
	--color-paper: #FFFFFF;
	--color-fog: #FAFAFA;
	--color-ash: rgba(255, 255, 255, .6);       /* 45% del master sotto 4.5:1 sui testi piccoli: 60% come le tabelle del master */
	--color-hairline: rgba(255, 255, 255, .15);
	--font-display: "neue-haas-grotesk-text", sans-serif;
	/* Scala tipografica unica (D-T40): un taglio (Display), un peso, un tracking. Prodotti, Industry e Servizi leggono da qui. */
	--font-titoli: "neue-haas-grotesk-text", sans-serif; /* 12/11: come le landing, che usano solo Text (Display non è nemmeno caricato) */
	--t-h1: clamp(40px, 4.2vw, 64px);
	--t-h2: clamp(32px, 3.4vw, 52px);
	--t-h2-stretto: clamp(28px, 2.8vw, 40px);
	--t-h3: clamp(24px, 2.4vw, 36px);
	--t-peso: 400; /* Andrea 12/11 (definitivo): tutti i titoli a 400 */
	--t-tracking: -.05em;
	--t-tracking-h3: -.03em;
	--font-mono: "Space Mono", "JetBrains Mono", ui-monospace, monospace;
	--text-caption-mono: 13px;
	--text-body: 18px;
	--text-body-lg: 22px;
	--text-heading-sm: 32px;
	--text-heading-md: 48px;
	--text-display: 110px;
	/* Container e padding: li emette Salient (Theme Options), qui solo il fallback. */
	--page-max-width: 1600px; /* Andrea 12/11: 1600 come la barra del menu (Salient è a 1425) */
	--section-gap: clamp(72px, 8vw, 120px);
	--gutter: var(--container-padding, 65px);
	--ease: cubic-bezier(.25, .46, .45, .94);
	--reveal: 700ms;
	--radius-pill: 999px;
	--radius-button: 8px;
	--radius-card: 12px;
	/* Sistema di composizione condiviso da pagine prodotto e Servizi (0.10.0, D-T33): una griglia, un ritmo. */
	--lv-margine: clamp(24px, 4.5vw, 65px);  /* margine laterale del contenuto */
	--lv-gutter: 24px;                        /* column-gap di ogni griglia a 12 */
	--lv-sezione: clamp(64px, 9vw, 144px);    /* padding verticale di sezione */
	--lv-testa: clamp(40px, 4.5vw, 72px);     /* testata di sezione → contenuto */
	--lv-raggio-s: 8px;                       /* bottoni, campi, chip */
	--lv-raggio-m: 12px;                      /* card e pannelli */
	--lv-raggio-l: 16px;                      /* visual grandi (console, riquadri, flusso) */
	--lv-ease: cubic-bezier(.16, 1, .3, 1);   /* ingressi e cambi di stato */
	--lv-t-breve: 200ms;                      /* hover */
	--lv-t: 450ms;                            /* cambi di stato */

	background: var(--color-void);
	color: var(--color-paper);
	font-family: var(--font-display);
	font-weight: 400;
	font-size: var(--text-body);
	line-height: 1.5;
}

/* Reset a specificità zero: Salient non va combattuto con !important. */
:where(.lv-page) :where(h1, h2, h3, p, ol, ul, figure) { margin: 0; padding: 0; }
:where(.lv-page) :where(ol, ul) { list-style: none; }
/* Salient mette `ul li { list-style: disc }` (0,0,2): il reset a specificità zero non basta, da qui i pallini. */
.lv-page li { list-style: none; }
.lv-page :is(ul, ol) { margin-left: 0; padding-left: 0; }
/* Titoli come sul sito: Salient dà #141414 (qui serve il colore ereditato), peso 300 sui display e 400 sul resto. */
.lv-page h1, .lv-page h2, .lv-page h3, .lv-page h4, .lv-page h5, .lv-page h6 { font-weight: var(--t-peso); color: inherit; letter-spacing: var(--t-tracking-h3); }
.lv-page h1, .lv-page h2, .lv-page .lv-display, .lv-page .lv-titolo { font-family: var(--font-titoli) !important; letter-spacing: var(--t-tracking); }
.lv-page h3 { font-family: var(--font-titoli) !important; }
.lv-page h1 { font-size: var(--t-h1); line-height: 1.1; }
.lv-page h2 { font-size: var(--t-h2); line-height: 1.06; }

.lv-page .lv-wrap { max-width: var(--page-max-width); margin: 0 auto; padding: 0 var(--gutter); box-sizing: border-box; }
.lv-page .lv-faq { max-width: 1000px; margin: 0 auto; }
/* Griglia a 12 colonne del sistema: chi la usa sceglie le colonne con grid-column. */
.lv-page .lv-g12 { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--lv-gutter); }
@media (max-width: 690px) { .lv-page { --lv-gutter: 16px; } }
/* Tratto chiaro (D-T33): sezioni consecutive con 'superficie' => 'chiara' nel set, raggruppate da Loader::corpo().
   Ridefinisce i token: inchiostro nero, carta/vuoto invertiti (bottoni, selezioni), Ash e hairline su nero, pannelli bianchi. */
.lv-page .lv-tratto--chiaro {
	--ink-rgb: 0, 0, 0;
	--color-paper: #000000;
	--color-void: #FFFFFF;
	--color-ash: rgba(0, 0, 0, .6);
	--color-hairline: rgba(0, 0, 0, .14);
	--superficie: #FFFFFF;
	--superficie-2: #F2F2F2;
	background: var(--color-fog);
	color: var(--color-paper);
}
/* Il capitolo si chiude con lo spazio sotto solo dove cambia la superficie. */
.lv-page :is(.lv-sezione:has(+ .lv-tratto), .lv-tratto > .lv-sezione:last-child) { padding-bottom: var(--lv-sezione); }

/* L'unica regola con !important: il sito forza Neue Haas con !important su div/p/span. */
.lv-page .lv-mono {
	font-family: var(--font-mono) !important;
	font-size: var(--text-caption-mono);
	font-weight: 400;
	letter-spacing: .08em;
	text-transform: uppercase;
	line-height: 1.3;
}

/* Tipografia */
.lv-page .lv-display { font-size: var(--t-h1); line-height: 1.1; }
.lv-page .lv-titolo { font-size: var(--t-h2); line-height: 1.06; margin-bottom: clamp(32px, 4vw, 56px); }
.lv-page .lv-lead { font-size: clamp(var(--text-body), 1.6vw, var(--text-body-lg)); line-height: 1.4; color: var(--color-ash); max-width: 62ch; }
.lv-page h3 { font-size: 26px; line-height: 1.25; margin-bottom: 10px; }
.lv-page .lv-nota { margin-top: 32px; font-size: 15px; color: var(--color-ash); }

/* Bottoni: bianco su nero, radius 8. Mai Ember. */
.lv-page .lv-azioni { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 40px; }
.lv-page .lv-btn {
	display: inline-flex; align-items: center; min-height: 48px; padding: 0 24px;
	border: 1px solid var(--color-paper); border-radius: var(--radius-button);
	background: var(--color-paper); color: var(--color-void);
	font-size: 16px; line-height: 1; text-decoration: none;
	transition: background-color .2s var(--ease), color .2s var(--ease), opacity .2s var(--ease);
}
.lv-page .lv-btn:hover { background: transparent; color: var(--color-paper); }
.lv-page .lv-btn--ghost { background: transparent; color: var(--color-paper); border-color: var(--color-hairline); }
.lv-page .lv-btn--ghost:hover { border-color: var(--color-paper); }
.lv-page .lv-link { color: var(--color-paper); text-decoration: none; border-bottom: 1px solid var(--color-hairline); padding-bottom: 2px; }
.lv-page .lv-link:hover { border-color: var(--color-paper); }
.lv-page a:focus-visible { outline: 2px solid var(--color-paper); outline-offset: 4px; }

/* Badge e pill */
.lv-page .lv-badge { display: inline-block; margin-bottom: 20px; color: var(--color-ash); }
.lv-page .lv-badge--segnale { color: var(--color-ember); }
.lv-page .lv-pill { display: inline-block; padding: 6px 12px; border: 1px solid var(--color-hairline); border-radius: var(--radius-pill); color: var(--color-ash); }
.lv-page .lv-num { color: var(--color-ember); }

/* Sezioni */
.lv-page .lv-sezione { padding: var(--section-gap) 0 0; }
.lv-page .lv-sezione:last-child { padding-bottom: var(--section-gap); }

/* Hero: sotto l'header Salient trasparente */
.lv-page .lv-hero { padding: clamp(160px, 20vw, 240px) 0 0; }
.lv-page .lv-occhiello { color: var(--color-ember); margin-bottom: 32px; }
.lv-page .lv-hero .lv-lead { margin-top: 32px; }
.lv-page .lv-flusso { margin-top: clamp(64px, 9vw, 120px); }
.lv-page .lv-flusso ol { display: grid; grid-template-columns: repeat(auto-fit, minmax(0, 1fr)); border-top: 1px solid var(--color-hairline); counter-reset: flusso; }
.lv-page .lv-flusso li { position: relative; padding: 24px 24px 24px 0; font-size: var(--text-body-lg); counter-increment: flusso; }
.lv-page .lv-flusso li::before {
	content: counter(flusso, decimal-leading-zero);
	display: block; margin-bottom: 12px;
	font-family: var(--font-mono) !important; font-size: var(--text-caption-mono); color: var(--color-ember);
}
.lv-page .lv-flusso figcaption { margin-top: 16px; color: var(--color-ash); text-transform: none; letter-spacing: 0; }

/* Griglie e card: hairline, niente ombre */
.lv-page .lv-griglia { display: grid; gap: 1px; background: var(--color-hairline); border: 1px solid var(--color-hairline); border-radius: var(--radius-card); overflow: hidden; }
.lv-page .lv-griglia--2 { grid-template-columns: repeat(2, 1fr); }
.lv-page .lv-griglia--3 { grid-template-columns: repeat(3, 1fr); }
.lv-page .lv-griglia--4 { grid-template-columns: repeat(4, 1fr); }
.lv-page .lv-card, .lv-page .lv-voce { background: var(--color-void); padding: clamp(24px, 3vw, 40px); }
.lv-page .lv-card p:not(.lv-mono), .lv-page .lv-voce p { color: var(--color-ash); font-size: 16px; margin-bottom: 20px; }
.lv-page .lv-voce p { margin-bottom: 0; }

/* Contenitore LEVos: un livello sopra le due card, non tre pari livello */
.lv-page .lv-contenitore { border: 1px solid var(--color-hairline); border-radius: var(--radius-card); padding: clamp(24px, 3vw, 40px); }
.lv-page .lv-contenitore__testa { max-width: 70ch; margin-bottom: clamp(24px, 3vw, 40px); }
.lv-page .lv-contenitore__testa p:not(.lv-mono) { color: var(--color-ash); }
.lv-page .lv-contenitore .lv-badge { color: var(--color-ember); }

/* Passi */
.lv-page .lv-passi { max-width: none; }
.lv-page .lv-passo { display: grid; grid-template-columns: 56px 120px 1fr; gap: 24px; align-items: start; padding: 32px 0; border-top: 1px solid var(--color-hairline); }
.lv-page .lv-passo .lv-pill { justify-self: start; }
.lv-page .lv-passo p { color: var(--color-ash); font-size: 16px; }

/* Integrazioni */
.lv-page .lv-pills { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 40px; }

/* Superficie chiara minoritaria (Fog) */
.lv-page .lv-chiara { background: var(--color-fog); color: var(--color-void); padding-bottom: var(--section-gap); margin-top: var(--section-gap); padding-top: var(--section-gap); --color-ash: rgba(0, 0, 0, .6); --color-hairline: rgba(0, 0, 0, .15); }
.lv-page .lv-chiara .lv-card { background: var(--color-fog); }
.lv-page .lv-chiara .lv-lead { margin-bottom: 48px; }

/* FAQ */
.lv-page .lv-faq details { border-top: 1px solid var(--color-hairline); padding: 24px 0; }
.lv-page .lv-faq details:last-child { border-bottom: 1px solid var(--color-hairline); }
.lv-page .lv-faq summary { display: flex; justify-content: space-between; gap: 24px; cursor: pointer; list-style: none; font-size: var(--text-body-lg); }
.lv-page .lv-faq summary::-webkit-details-marker { display: none; }
.lv-page .lv-faq summary::after { content: "+"; color: var(--color-ember); font-family: var(--font-mono) !important; }
.lv-page .lv-faq details[open] summary::after { content: "–"; }
.lv-page .lv-faq summary:focus-visible { outline: 2px solid var(--color-paper); outline-offset: 4px; }
.lv-page .lv-faq p { margin-top: 16px; color: var(--color-ash); max-width: 70ch; }


/* ==========================================================================
   Componenti delle Solutions (struttura della landing Performance Marketing,
   regole del DS: bottoni bianchi, Ember solo segnale o bagliore d'immagine).
   ========================================================================== */

/* Titoli a due toni: con due o più righe la prima è attenuata */
.lv-page :is(.lv-titolo, .lv-display) > span:first-of-type:not(:last-of-type) { color: var(--color-ash); }
.lv-page .lv-titolo--centro { text-align: center; margin-left: auto; margin-right: auto; }

/* Testa di sezione: titolo a sinistra, testo a destra in basso */
.lv-page .lv-testa { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 50px; align-items: end; margin-bottom: clamp(40px, 6vw, 72px); }
.lv-page .lv-testa .lv-titolo { margin-bottom: 0; }
.lv-page .lv-testa__testo, .lv-page .lv-risposta { color: var(--color-ash); font-size: 17px; line-height: 1.55; max-width: 62ch; }
.lv-page .lv-risposta { color: var(--color-paper); font-size: var(--text-body-lg); line-height: 1.45; max-width: 70ch; }

/* Hero divisa con form: bagliore Ember come trattamento d'immagine, non superficie */
.lv-page .lv-hero--split { position: relative; padding-bottom: clamp(64px, 8vw, 120px); background: radial-gradient(60% 70% at 0% 0%, rgba(249, 46, 7, .22), transparent 70%), var(--color-void); }
.lv-page .lv-split { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: clamp(32px, 4vw, 64px); align-items: start; }
.lv-page .lv-display--hero { font-size: clamp(40px, 5vw, 72px); line-height: 1.1; }
.lv-page .lv-split .lv-lead { margin: 28px 0; font-size: 18px; }
.lv-page .lv-tag { display: inline-block; margin-bottom: 24px; padding: 4px 8px; border: 1px solid var(--color-ember); border-radius: 4px; color: var(--color-ember); font-size: 11px; }
.lv-page .lv-prova a { display: inline-flex; gap: 8px; padding: 12px 16px; border: 1px solid var(--color-hairline); border-radius: var(--radius-button); color: var(--color-paper); text-decoration: none; margin-bottom: 24px; }

/* Pannello: superficie appena più chiara del nero + hairline, niente ombre */
.lv-page .lv-pannello { background: rgba(255, 255, 255, .03); border: 1px solid var(--color-hairline); border-radius: var(--radius-card); padding: clamp(24px, 2.6vw, 36px); }
.lv-page .lv-pannelli { display: grid; gap: 16px; }
.lv-page .lv-pannelli--2 { grid-template-columns: repeat(2, 1fr); }
.lv-page .lv-pannelli--3 { grid-template-columns: repeat(3, 1fr); }
.lv-page .lv-pannello h3 { font-size: 24px; }
.lv-page .lv-pannello p:not(.lv-mono) { color: var(--color-ash); font-size: 16px; margin-bottom: 20px; }

/* Loghi */
.lv-page .lv-loghi { border-top: 1px solid var(--color-hairline); border-bottom: 1px solid var(--color-hairline); padding: 28px 0; }
.lv-page .lv-loghi__riga { display: flex; align-items: center; gap: 40px; }
.lv-page .lv-loghi .lv-marquee { flex: 1; min-width: 0; }
.lv-page .lv-loghi__titolo { flex: 0 0 160px; font-size: 14px; color: var(--color-ash); }
.lv-page .lv-loghi ul { display: flex; align-items: center; gap: 56px; padding-right: 56px; margin: 0; }
.lv-page .lv-loghi li { flex: none; }
.lv-page .lv-loghi img { height: 28px; width: auto; opacity: .7; }

/* Metodo */
.lv-page .lv-metodo__riga { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 50px; padding: 40px 0; border-top: 1px solid var(--color-hairline); }
.lv-page .lv-metodo__riga--img { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr); }
.lv-page .lv-metodo h3 { font-size: clamp(28px, 3.2vw, 40px); line-height: 1.1; }
.lv-page .lv-metodo h3 .lv-num { font-size: 11px; vertical-align: super; }
.lv-page .lv-metodo p { color: var(--color-ash); font-size: 16px; }
.lv-page .lv-metodo__img { width: 100%; border-radius: var(--radius-card); border: 1px solid var(--color-hairline); }
.lv-page .lv-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 16px; }
.lv-page .lv-tags li { padding: 4px 8px; border: 1px solid var(--color-hairline); border-radius: 4px; font-size: 11px; color: var(--color-ash); }

/* Casi */
.lv-page .lv-caso { display: flex; flex-direction: column; padding: 12px 12px 24px; }
.lv-page .lv-caso > :not(img) { padding: 0 12px; }
.lv-page .lv-caso__img { width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 8px; margin-bottom: 20px; }
.lv-page .lv-pannello p.lv-caso__testa { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; color: var(--color-paper); font-size: 20px; margin-bottom: 8px; }
.lv-page .lv-caso__testa .lv-mono { font-size: 11px; color: var(--color-ash); }
.lv-page .lv-caso .lv-link { margin-top: auto; align-self: flex-start; }
.lv-page .lv-pannello p.lv-caso__metrica { display: flex; justify-content: space-between; align-items: baseline; border-top: 1px solid var(--color-hairline); padding-top: 16px; }
.lv-page .lv-caso__metrica strong { font-size: 32px; font-weight: 400; color: var(--color-paper); }

/* Team */
.lv-page .lv-team { display: flex; gap: 16px; padding-right: 16px; margin: 0; }
.lv-page .lv-persona { flex: 0 0 clamp(200px, 16vw, 260px); }
.lv-page .lv-persona img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--radius-card); margin-bottom: 16px; }
.lv-page .lv-persona .lv-badge { margin-bottom: 4px; font-size: 11px; }
.lv-page .lv-persona__nome { font-size: 28px; line-height: 1.1; }

/* Testimonianze (superficie Fog) */
.lv-page .lv-citazioni { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.lv-page .lv-citazione { display: flex; flex-direction: column; justify-content: space-between; gap: 32px; padding: 32px; border: 1px solid var(--color-hairline); border-radius: var(--radius-card); background: var(--color-paper); }
.lv-page .lv-citazione blockquote { margin: 0; padding: 0; border: 0; }
.lv-page .lv-citazione blockquote p { font-size: 19px; line-height: 1.45; color: var(--color-void); }
.lv-page .lv-citazione figcaption { display: flex; align-items: center; gap: 12px; font-size: 15px; }
.lv-page .lv-citazione figcaption .lv-mono { font-size: 11px; color: var(--color-ash); }
.lv-page .lv-citazione img { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; }

/* FAQ numerate */
.lv-page .lv-faq summary .lv-num { font-size: 12px; margin-right: 12px; }

/* Chiusura: riquadro con bagliore Ember come trattamento d'immagine */
.lv-page .lv-chiusura__box { text-align: center; padding: clamp(56px, 8vw, 112px) var(--gutter); border: 1px solid var(--color-hairline); border-radius: var(--radius-card); background: radial-gradient(70% 90% at 50% 120%, rgba(249, 46, 7, .35), transparent 70%), var(--color-void); }
.lv-page .lv-chiusura__box .lv-titolo { margin: 0 auto 24px; }
.lv-page .lv-chiusura__box .lv-lead { margin: 0 auto; }
.lv-page .lv-chiusura__box .lv-azioni { justify-content: center; }

@media (max-width: 999px) {
	.lv-page .lv-split, .lv-page .lv-testa { grid-template-columns: 1fr; gap: 32px; align-items: start; }
	.lv-page .lv-pannelli--3, .lv-page .lv-citazioni { grid-template-columns: 1fr 1fr; }
	.lv-page .lv-metodo__riga--img { grid-template-columns: 1fr 1fr; }
	.lv-page .lv-metodo__img { grid-column: 1 / -1; }
	.lv-page .lv-loghi__riga { flex-direction: column; align-items: flex-start; gap: 20px; }
	.lv-page .lv-loghi__titolo { flex: none; }
}
@media (max-width: 690px) {
	.lv-page .lv-pannelli--2, .lv-page .lv-pannelli--3, .lv-page .lv-citazioni { grid-template-columns: 1fr; }
	.lv-page .lv-metodo__riga, .lv-page .lv-metodo__riga--img { grid-template-columns: 1fr; gap: 16px; }
	.lv-page .lv-loghi ul { gap: 36px; padding-right: 36px; }
	.lv-page .lv-loghi img { height: 22px; }
}

@media (max-width: 999px) {
	.lv-page .lv-griglia--3, .lv-page .lv-griglia--4 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 690px) {
	.lv-page .lv-griglia--2, .lv-page .lv-griglia--3, .lv-page .lv-griglia--4 { grid-template-columns: 1fr; }
	.lv-page .lv-flusso ol { grid-template-columns: 1fr 1fr; }
	.lv-page .lv-passo { grid-template-columns: 40px 1fr; }
	.lv-page .lv-passo > div { grid-column: 1 / -1; }
}
/* Marquee continuo (loghi, team): due copie della lista, traslazione -50% in loop; pausa in hover. */
.lv-page .lv-marquee { overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }
.lv-page .lv-marquee__track { display: flex; width: max-content; animation: lv-marquee var(--lv-dur, 40s) linear infinite; }
.lv-page .lv-marquee--team { --lv-dur: 70s; }
.lv-page .lv-marquee:hover .lv-marquee__track { animation-play-state: paused; }
@keyframes lv-marquee { to { transform: translateX(-50%); } }

/* Video decorativi in loop: card, casi, sfondo hero */
.lv-page .lv-media { position: relative; aspect-ratio: 16 / 10; margin: 0 0 20px; overflow: hidden; border-radius: 8px; background: rgba(255, 255, 255, .04); }
.lv-page .lv-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity .6s var(--ease); }
.lv-page .lv-video.is-on { opacity: 1; }
.lv-page .lv-hero__bg { position: absolute; inset: 0; overflow: hidden; pointer-events: none; }
.lv-page .lv-hero__bg .lv-video.is-on { opacity: .45; }
.lv-page .lv-hero__bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0, 0, 0, .55) 0%, rgba(0, 0, 0, .2) 45%, var(--color-void) 100%); }
.lv-page .lv-hero--split > .lv-wrap { position: relative; z-index: 1; }
.lv-page .lv-pannello--media:hover .lv-video, .lv-page .lv-caso:hover .lv-video { transform: scale(1.03); }
.lv-page .lv-pannello--media .lv-video, .lv-page .lv-caso .lv-video { transition: opacity .6s var(--ease), transform .4s var(--ease); }

/* Motion: stessa grammatica del sito (reveal dal basso, 700ms). Stato nascosto solo con JS attivo. */
.lv-js .lv-page [data-lv-reveal] { opacity: 0; transform: translateY(40px); transition: opacity var(--reveal) var(--ease), transform var(--reveal) var(--ease); transition-delay: var(--lv-delay, 0ms); }
.lv-js .lv-page [data-lv-reveal].is-in { opacity: 1; transform: none; }
.lv-page :is(.lv-pannello, .lv-card, .lv-voce, .lv-citazione, .lv-persona) { transition: background-color .2s var(--ease), border-color .2s var(--ease); }
.lv-page :is(.lv-pannello, .lv-card, .lv-voce):hover { background-color: rgba(255, 255, 255, .06); }
.lv-page .lv-chiara .lv-card:hover { background-color: #fff; }
.lv-page :is(.lv-caso__img, .lv-metodo__img) { transition: transform .4s var(--ease), opacity .2s var(--ease); }
.lv-page .lv-caso:hover .lv-caso__img { transform: scale(1.03); }
.lv-page .lv-faq summary::after { transition: transform .2s var(--ease); }
.lv-page .lv-link { transition: border-color .2s var(--ease); }
@media (prefers-reduced-motion: reduce) {
	.lv-page *, .lv-page *::before, .lv-page *::after { transition: none !important; animation: none !important; }
	.lv-js .lv-page [data-lv-reveal] { opacity: 1; transform: none; }
	.lv-page .lv-marquee { -webkit-mask-image: none; mask-image: none; }
	.lv-page .lv-marquee__track { width: auto; flex-wrap: wrap; }
	.lv-page .lv-marquee__track > ul:nth-child(2) { display: none; }
	.lv-page .lv-team, .lv-page .lv-loghi ul { flex-wrap: wrap; }
}


/* Hero centrata (grammatica Leviathan: titolo grande, blocchi arrotondati, hairline) */
.lv-page .lv-hero--centro { padding: clamp(150px, 16vw, 210px) 0 clamp(64px, 8vw, 112px); background: radial-gradient(50% 45% at 50% 0%, rgba(249, 46, 7, .16), transparent 70%), var(--color-void); }
.lv-page .lv-hero__testa { display: grid; justify-items: center; text-align: center; max-width: 1000px; margin: 0 auto; }
.lv-page .lv-hero__testa .lv-lead { margin: 28px auto 0; max-width: 58ch; }
.lv-page .lv-hero__testa .lv-azioni { justify-content: center; margin-top: 36px; }
.lv-page .lv-display--hero { font-size: clamp(40px, 5vw, 76px); line-height: 1.06; }
.lv-page .lv-finestra--hero { margin-top: clamp(56px, 7vw, 96px); }
.lv-page .lv-finestra__corpo { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(320px, 1fr); gap: 16px; align-items: stretch; }
.lv-page .lv-finestra__corpo > :only-child { grid-column: 1 / -1; }
.lv-page .lv-finestra__media { position: relative; min-height: 420px; overflow: hidden; border-radius: var(--radius-card); background: #050505; }
.lv-page .lv-finestra__form { padding: clamp(24px, 3vw, 40px); border: 1px solid var(--color-hairline); border-radius: var(--radius-card); background: rgba(255, 255, 255, .03); }
/* Form dentro il blocco: le card-radio del sito (alte 150px; Forminator stampa regole per ID con !important, serve #lv-main) su due colonne e più basse. */
#lv-main .lv-finestra .lv-finestra__form .forminator-field:has(.forminator-radio) { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 12px !important; }
#lv-main .lv-finestra .lv-finestra__form .forminator-radio .forminator-radio-label { min-height: 0 !important; padding: 48px 16px 16px !important; }

@media (max-width: 999px) {
	.lv-page .lv-finestra__corpo { grid-template-columns: 1fr; }
	.lv-page .lv-finestra__media { min-height: 0; aspect-ratio: 16 / 10; }
}

/* --- Sistema Leviathan OS (D-T29): logotipi + riquadro di lavoro dell'agente ----------------------
   Logotipi = file SVG di brand-assets (mai ricostruiti). Riquadro dal riferimento levagent-segno.html di Marco:
   Lime #BAFF2E solo su segno, parola di stato e barra mentre l'agente lavora (eccezione firmata da Andrea 06/11/2026). */
.lv-page .lv-logotipo { display: block; width: auto; max-width: 100%; }
.lv-page .lv-elemento__logo { margin: 0 0 20px; }
.lv-page .lv-elemento__logo .lv-logotipo { height: 40px; }
.lv-page .lv-card .lv-elemento__logo .lv-logotipo { height: 32px; }

.lv-page .lv-caso-os { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(32px, 5vw, 80px); align-items: start; }
.lv-page .lv-caso-os .lv-lead { margin-bottom: 24px; }
.lv-page .lv-bx { --lime: #baff2e; color: #fff; background: linear-gradient(180deg, #151618, #0d0d0e); border: 1px solid rgba(255, 255, 255, .14); border-radius: 18px; padding: 32px 36px 30px; }
.lv-page .lv-bx .lv-mono { font-family: var(--font-mono) !important; text-transform: uppercase; }
.lv-page .lv-bx :is(.lv-bx__t, .lv-bx__d, .lv-bx__c) { text-transform: none; } /* durate in secondi: «2.4s», non «2.4S» */
.lv-page .lv-bx__h { display: flex; align-items: center; gap: 14px; min-width: 0; }
.lv-page .lv-bx__h .lv-segno { width: 24px; height: 24px; }
.lv-page .lv-bx__n { margin-left: 6px; display: flex; align-items: center; min-width: 0; }
.lv-page .lv-bx__n .lv-logotipo { height: 18px; }
.lv-page .lv-bx__s { font-size: 13px; letter-spacing: .12em; white-space: nowrap; color: #fff; }
.lv-page .lv-bx.is-op .lv-bx__s { color: var(--lime); }
.lv-page .lv-bx__t { margin-left: auto; font-size: 13px; color: rgba(255, 255, 255, .55); font-variant-numeric: tabular-nums; }
.lv-page .lv-bx__q { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 20px; margin: 26px 0 24px; padding-bottom: 24px; border-bottom: 1px solid rgba(255, 255, 255, .1); }
.lv-page .lv-bx__q .lv-mono { font-size: 12px; letter-spacing: .14em; color: rgba(255, 255, 255, .45); padding-top: 5px; }
.lv-page .lv-bx__q p { margin: 0; font-size: 19px; line-height: 1.4; color: rgba(255, 255, 255, .78); }
.lv-page .lv-bx__l { list-style: none; margin: 0; padding: 0 0 24px; display: flex; flex-direction: column; gap: 14px; border-bottom: 1px solid rgba(255, 255, 255, .1); }
.lv-page .lv-bx__r { display: grid; grid-template-columns: 44px minmax(0, 1fr) auto; align-items: start; gap: 16px; margin: 0; padding: 0; font-size: 17px; line-height: 1.35; color: rgba(255, 255, 255, .3); transition: color .3s var(--ease); }
.lv-page .lv-bx__r::before { content: none; }
.lv-page .lv-bx__i { font-size: 13px; padding-top: 3px; }
.lv-page .lv-bx__r .lv-segno { display: none; width: 16px; height: 16px; margin-top: 3px; }
.lv-page .lv-bx__x b { font-weight: 400; color: inherit; }
.lv-page .lv-bx__x span { display: block; font-size: 14px; opacity: .8; }
.lv-page .lv-bx__d { font-size: 12px; padding-top: 3px; color: rgba(255, 255, 255, .45); font-variant-numeric: tabular-nums; }
.lv-page .lv-bx__r.is-fatta { color: rgba(255, 255, 255, .62); }
.lv-page .lv-bx__r.is-ora { color: #fff; }
.lv-page .lv-bx__r.is-ora .lv-bx__i { display: none; }
.lv-page .lv-bx__r.is-ora .lv-segno { display: block; }
.lv-page .lv-bx__p { display: grid; grid-template-columns: repeat(var(--n, 3), minmax(0, 1fr)) auto; grid-auto-flow: column; gap: 8px; align-items: center; padding-top: 22px; }
.lv-page .lv-bx__p i { height: 4px; border-radius: 2px; background: rgba(255, 255, 255, .12); transition: background-color .3s var(--ease); }
.lv-page .lv-bx__p i.is-on { background: #fff; }
.lv-page .lv-bx.is-op .lv-bx__p i.is-on { background: var(--lime); }
.lv-page .lv-bx__c { margin-left: 14px; font-size: 13px; color: rgba(255, 255, 255, .55); }
@media (max-width: 999px) {
	.lv-page .lv-caso-os { grid-template-columns: 1fr; }
}
@media (max-width: 690px) {
	.lv-page .lv-bx { padding: 22px 18px; }
	.lv-page .lv-bx__s, .lv-page .lv-bx__t { font-size: 11px; }
	.lv-page .lv-bx__q { grid-template-columns: 1fr; gap: 8px; }
	.lv-page .lv-bx__q p { font-size: 16px; }
	.lv-page .lv-bx__r { grid-template-columns: 30px minmax(0, 1fr) auto; gap: 10px; font-size: 15px; }
}
