/* ==========================================================================
   Longstone · Fabbrica — il CSS del tema, in un file solo. Versione 3 (29/09/2026): un solo sistema, su tutte le pagine.
   Riferimento per card e spazi: zamberlan.com, coi nostri colori. Direzione A: scuro, industriale, un solo accento.
   Un sistema: 1 scala di spazi (--sez, --blocco, --gap) · 1 scala di tipi (H1 64 / sezione 44 / blocco 26 / etichetta 13 /
   corpo 16) · 2 scuri + 1 chiaro + arancio · 3 bottoni (pieno, contorno, link con freccia) · 1 card · 1 testata di sezione ·
   tutto dentro il container. Niente !important: si alza la specificità.
   ========================================================================== */

/* ---------- 1. Token ---------- */
:root {
	--g: #141311;        /* la pagina */
	--g2: #221F1C;       /* la superficie rialzata: bande, pannelli, campi (ΔL leggibile dalla pagina: Zamberlan alterna 255/246) */
	--line: #2E2B27;     /* righe */
	--chiaro: #F3F1EC;   /* il fondo dei packshot: l'unico chiaro del sito */
	--ink: #F1ECE3;      /* testo · 15,8:1 */
	--mut: #9C958A;      /* testo secondario · 6,3:1 su --g */
	--acc: #BD590D;      /* accento pieno · bianco sopra 4,6:1 */
	--acc-ink: #E07A2A;  /* accento come TESTO · 6,2:1 su --g */
	--acc-hover: #A84E0B; /* l'accento PREMUTO (hover/attivo dei bottoni pieni): era scritto a mano 6 volte */
	--onacc: #FFFFFF;
	--err: #E0644F;
	/* 30/09: una famiglia sola, come longstone.it in produzione (che usa solo Albert Sans).
	   Il condensato maiuscolo faceva «catalogo tecnico». Per tornare indietro bastano
	   queste due righe: --font-head sul Barlow e --case-head: uppercase. */
	--font-head: "Albert Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
	--case-head: none;   /* era uppercase: vale sui 17 punti che usano --font-head */
	--font-body: "Albert Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
	/* ─── LA SCALA · 30/09/2026 ────────────────────────────────────────────────
	   I numeri del testo stanno TUTTI qui. Nelle regole si scrive var(--t-…),
	   mai un px: prima del 30/09 su 242 `font-size` solo 70 passavano da un
	   token e 172 erano letterali, per cui cambiare la scala muoveva il 29 %
	   del testo e i giri di correzione non si vedevano.
	   I valori sono quelli di oggi: questo passaggio è a saldo zero, provato
	   con `_lavoro/2026-09-30-design-piu-respiro/strumenti/impronta.py`. */
	--t-nano: 10px;      /* badge */
	--t-micro: 11px;     /* note, sigle, righe di servizio */
	--t-eyebrow: 12px;   /* occhielli maiuscoletti */
	--t-label: 13px;     /* azioni, chip, voci di barra */
	--t-small: 14px;     /* dati, didascalie, tabelle */
	--t-mid: 15px;       /* prosa delle card e del sommario scheda */
	--t-body: 16px;      /* corpo. ⚠️ non scendere sotto i 16: sotto, iOS ingrandisce i campi da solo */
	--t-h5: 17px;        /* titolini dentro la prosa */
	--t-lede: 18px;      /* lede di sezione */
	--t-h3: 20px;        /* titolo di blocco */
	--t-h4: 22px;        /* titoli dentro la descrizione prodotto */
	--t-h2s: 24px;       /* titolo di blocco medio */
	--t-nome: 28px;      /* nome e prezzo della scheda: la misura della produzione */
	--t-menu: 30px;      /* voci del menu mobile */
	--t-display: 34px;   /* numeri e sigle fuori scala */
	--t-h2: clamp(26px, 2.3vw, 32px); --t-h1: clamp(32px, 2.8vw, 40px); --t-hero: clamp(38px, 3.9vw, 56px); --t-num: clamp(24px, 2vw, 28px); --t-fotone: clamp(30px, 2.8vw, 40px);   /* la scala di Zamberlan, misurata: sezione 32, banda-foto 40, hero 56, corpo 14-16; un peso solo (600) */
	/* 🔴 Fuori scala, eredità dei giri del 29/09: si assorbono nel lotto B, non
	   si usano in regole nuove. Stanno qui perché il debito si veda in un posto solo. */
	--t-fs135: 13.5px;
	--t-fs125: 12.5px;
	--sez: clamp(56px, 6vw, 88px);    /* fra le sezioni: 88 a desktop. La separazione la fanno le bande alternate, non l'aria */
	--blocco: 48px;                   /* dalla testata di sezione al contenuto */
	--gap: 24px;                      /* nelle griglie */
	--gap-s: 12px;
	--cart-w: 420px;     /* il pannello a desktop (produzione 410) */
	--cart-pad: 24px;    /* ⚠️ NON è --gut: su 420 px il gutter di casa (40) sarebbe il 19 % della larghezza.
	                        Un pannello sovrapposto non è né l'header né il contenuto né il piede. */
	--cart-z: 160;       /* sopra .ls-menu (150) e la barra (100), sotto .ls-skip */
	--wrap: 1360px;   /* 02/10: contenuto 1280 (era 1200). Il 1440 di settembre era la misura di Zamberlan, questa è la nostra */                   /* contenuto 1200 + gutter 40. Il 30/09 Luigi: «il sito è troppo largo». 1360 era la misura di Zamberlan, non la nostra */
	--gut: clamp(20px, 2.8vw, 40px);
	--bar-h: 64px;                    /* + 36 di barra annunci a desktop, vedi sezione 4 */
	--btn-h: 48px;                    /* 15/10: un bottone solo, 48 px, anche in scheda e barra d'acquisto */
	--r: 6px;                         /* superfici (foto, campi, pillole, pannelli): arrotondate. Le azioni (bottoni): squadrate. */
	--ic: 18px;                       /* icona in riga */
	--ease: cubic-bezier(.2, .7, .2, 1);
	--t-fast: 150ms;
	--t-base: 250ms;
	color-scheme: dark;
}

/* ---------- 2. Font (self-hosted) ---------- */
@font-face { font-family: "Barlow Condensed"; font-weight: 600; font-style: normal; font-display: swap; src: url("../fonts/barlow-condensed-600.woff2") format("woff2"); }
@font-face { font-family: "Barlow Condensed"; font-weight: 700; font-style: normal; font-display: swap; src: url("../fonts/barlow-condensed-700.woff2") format("woff2"); }
@font-face { font-family: "Albert Sans"; font-weight: 400 600; font-style: normal; font-display: swap; src: url("../fonts/albert-sans.woff2") format("woff2"); }

/* ---------- 3. Base ---------- */
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
.ls { margin: 0; background: var(--g); color: var(--ink); font-family: var(--font-body); font-size: var(--t-body); line-height: 1.55; -webkit-font-smoothing: antialiased; padding-top: var(--bar-h); }
html, .ls, .ls *, .ls *::before, .ls *::after { box-sizing: border-box; }   /* html e body compresi, come faceva il `*` di Hello */
/* ---------- 3a. La base che veniva dal reset di Hello Elementor — 15/10/2026 ----------
   `reset.css` del padre non è più in coda (inc/enqueue.php): portava `button:hover{background:#c36}` e `a:hover{color:#336}`
   a (0,1,1), il fucsia e il blu che si vedevano ovunque. Di quel foglio il disegno usava solo questo, e lo si riporta alla
   STESSA specificità che aveva lì (elemento = 0,0,1 · [type] = 0,1,0), prima di tutto il resto: ogni classe continua a vincere.
   Non si riportano, di proposito: i colori, bordi/raggi/transizioni di serie di input e bottoni, le righe a strisce delle tabelle. */
html { line-height: 1.15; }
:where(.ls) :is(h4, h5, h6) { margin-block: .5rem 1rem; font-weight: 500; line-height: 1.2; }
:where(.ls) h4 { font-size: 1.5rem; } :where(.ls) h5 { font-size: 1.25rem; } :where(.ls) h6 { font-size: 1rem; }
:where(.ls) hr { box-sizing: content-box; height: 0; overflow: visible; }
:where(.ls) :is(b, strong) { font-weight: bolder; }
:where(.ls) small { font-size: 80%; }
:where(.ls) :is(sub, sup) { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; }
:where(.ls) sub { bottom: -.25em; } :where(.ls) sup { top: -.5em; }
:where(.ls) [hidden] { display: none; }
:where(.ls) label { display: inline-block; line-height: 1; vertical-align: middle; }
:where(.ls) :is(button, input, optgroup, select, textarea) { font-family: inherit; font-size: 1rem; line-height: 1.5; margin: 0; }
:where(.ls) :is(button, select) { text-transform: none; }
:where(.ls) button { -webkit-appearance: button; width: auto; text-align: center; white-space: nowrap; user-select: none; }
:where(.ls) :is([type="button"], [type="reset"], [type="submit"]) { -webkit-appearance: button; width: auto; text-align: center; white-space: nowrap; user-select: none; }
:where(.ls) [type="search"] { -webkit-appearance: textfield; outline-offset: -2px; }
:where(.ls) select { display: block; }
:where(.ls) legend { display: table; max-width: 100%; padding: 0; white-space: normal; }
:where(.ls) textarea { overflow: auto; resize: vertical; }
:where(.ls) :is(dd, dl, dt, li, ol, ul) { margin-block: 0; outline: 0; }
:where(.ls) table { border-collapse: collapse; border-spacing: 0; width: 100%; font-size: .9em; margin-block-end: 15px; }   /* .9em come in Hello: la tabella delle taglie ne dipendeva */
:where(.ls) :is(td, th) { line-height: 1.5; vertical-align: top; }
/* Le regole di base sugli elementi valgono quanto un selettore di elemento (:where(.ls) X): battono i reset degli altri fogli, e ogni classe le vince. */
:where(.ls) img { max-width: 100%; height: auto; display: block; }
:where(.ls) a { color: inherit; text-decoration: none; }
:where(.ls) :is(button, [type="button"], [type="submit"]) { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }
.ls :focus-visible { outline: 2px solid var(--acc-ink); outline-offset: 3px; }
/* ---------- 3b. Stati — 15/10/2026. Hover / focus da tastiera / attivo dichiarati UNA volta per quello che si clicca, a (0,2,0)
   e senza !important: un foglio di terzi a (0,1,1) non può più dipingerli. I valori sono quelli del disegno (niente ridisegno):
   lo stato da tastiera fa quello che fa il mouse, l'outline lo dà la regola sopra. Le due righe di rete sono a (0,1,0):
   a (0,1,1) avrebbero spento il colore di .ls-btn e .ls-skip in hover. ---------- */
:where(.ls) :where(a):is(:hover, :active) { color: inherit; }
:where(.ls) :where(button, [type="button"], [type="submit"], [type="reset"]):is(:hover, :focus, :active) { background: none; color: inherit; }
.ls-btn:is(:hover, :focus-visible, :active) { background: var(--acc-hover); border-color: var(--acc-hover); color: var(--onacc); }
.ls-btn--ghost:is(:hover, :focus-visible, :active) { background: var(--ink); border-color: var(--ink); color: var(--g); }
.ls-chip:is(:hover, :focus-visible, :active) { background: transparent; border-color: var(--ink); color: var(--ink); }
.ls-card__ph:is(:hover, :focus-visible, :active) { color: inherit; }
.ls-tessera:is(:hover, :focus-visible, :active), .ls-mini a:is(:hover, :focus-visible, :active) { color: inherit; }
.ls-bar__logo:is(:hover, :focus-visible, :active) { color: inherit; background: transparent; }
.ls-skip:is(:hover, :focus-visible, :active) { background: var(--acc); color: var(--onacc); }
.ls-tool:is(:hover, :focus-visible) { color: var(--acc-ink); background: transparent; }
.ls-tool:active { color: var(--acc); background: transparent; }
.ls-tabs__voce:is(:hover, :focus-visible, :active) { color: var(--ink); background: transparent; }
.ls-scelta__voce:is(:hover, :focus-visible, :active) { color: inherit; }
.ls-barra-acq__b:is(:hover, :focus-visible) { background: var(--acc-hover); border-color: var(--acc-hover); color: var(--onacc); }
.ls-barra-acq__b:active { background: var(--acc-hover); border-color: var(--acc-hover); color: var(--onacc); transform: scale(.985); }
.ls-cart__x:is(:hover, :focus-visible, :active) { color: var(--ink); background: var(--line); }
.ls-cart__q:is(:hover, :focus-visible, :active) { color: var(--acc-ink); background: transparent; }
.ls-cart__velo:is(:hover, :focus-visible, :active) { background: rgba(0,0,0,.45); color: inherit; }
:where(.ls) :is(h1, h2, h3) { margin: 0; font-family: var(--font-head); text-transform: var(--case-head); line-height: 1.12; letter-spacing: -.005em; font-weight: 500; text-wrap: balance; }
:where(.ls) h1 { font-size: var(--t-h1); }
:where(.ls) h2 { font-size: var(--t-h2); font-weight: 600; }
:where(.ls) h3 { font-size: var(--t-h3); font-weight: 600; }
:where(.ls) p { margin: 0 0 1em; }   /* specificità zero: ogni classe di paragrafo comanda i suoi margini */
:where(.ls) ul:where([class]), :where(.ls) nav ul, :where(.ls-foot) ul { list-style: none; margin: 0; padding: 0; }
:where(.ls) address { font-style: normal; }
.ls ::selection { background: var(--acc); color: var(--onacc); }
.ls-wrap { max-width: var(--wrap); margin-inline: auto; padding-inline: var(--gut); }
.ls-wrap--testo > * { max-width: 760px; }   /* colonna di lettura, allineata a sinistra col container: mai centrata */
.ls-main:focus { outline: 0; }
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.ls *, .ls *::before, .ls *::after { transition-duration: 1ms; animation-duration: 1ms; animation-iteration-count: 1; }
}

/* ---------- 4. Barra ---------- */
.ls-skip { position: absolute; left: 16px; top: -100px; z-index: 200; padding: 12px 16px; background: var(--acc); color: var(--onacc); font-weight: 600; }
.ls-skip:focus { top: 16px; }
.ls-bar { position: fixed; inset: 0 0 auto 0; z-index: 100; height: var(--bar-h); background: var(--g); border-bottom: 1px solid var(--line); }
/* Barra annunci (Zamberlan: 38 px sopra l'header): i tre claim del sito, solo a desktop */
.ls-annuncio { display: none; height: 34px; background: var(--g2); border-bottom: 1px solid var(--line); font-size: var(--t-micro); font-weight: 500; letter-spacing: .04em; color: var(--mut); }
.ls-annuncio ul { display: flex; justify-content: center; align-items: center; gap: 32px; height: 100%; max-width: var(--wrap); margin-inline: auto; padding-inline: var(--gut); }
.ls-annuncio li { display: flex; align-items: center; gap: 8px; }
.ls-annuncio .ls-ic { width: 16px; height: 16px; color: var(--acc-ink); }
.ls-annuncio b { color: var(--ink); font-weight: 500; }
@media (min-width: 960px) { :root { --bar-h: 98px; } .ls-annuncio { display: block; } }
.ls-bar__in { max-width: var(--wrap); margin-inline: auto; padding-inline: var(--gut); height: 64px; display: flex; align-items: center; gap: 24px; }
.ls-bar__logo { display: flex; align-items: center; height: 44px; margin-right: auto; flex: none; }
.ls-bar__logo img { width: auto; height: 44px; }   /* 02/10: era 30 px su una barra da 64 — un francobollo. 44 è il massimo che non tocca i bordi */
@media (max-width: 639px) { .ls-bar__logo img { height: 34px; } }
.ls-bar__nav { display: none; }
.ls-bar__nav ul { display: flex; align-items: center; gap: 4px; }
.ls-bar__nav > ul > li > :is(a, button) { position: relative; display: flex; align-items: center; height: 44px; padding-inline: 12px; font-size: var(--t-label); font-weight: 500; color: var(--ink); white-space: nowrap; transition: color var(--t-fast) var(--ease); }
.ls-bar__nav > ul > li > :is(a, button):not(.is-b2b)::after { content: ""; position: absolute; left: 12px; right: 12px; bottom: 4px; height: 2px; background: var(--acc); transform: scaleX(0); transform-origin: left; transition: transform var(--t-base) var(--ease); }
.ls-bar__nav > ul > li > :is(a, button):hover { color: var(--acc-ink); }
.ls-bar__nav > ul > li > :is(a, button):hover::after, .ls-bar__nav > ul > li > a[aria-current="page"]::after, .ls-bar__nav > ul > li > button[aria-expanded="true"]::after { transform: scaleX(1); }
.ls-bar { transition: box-shadow var(--t-base) var(--ease), background var(--t-base) var(--ease); }
.ls-bar.is-scrolled { background: rgba(20,19,17,.94); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); box-shadow: 0 10px 30px rgba(0,0,0,.28); }
.ls-bar__nav > ul > li > a.is-b2b { height: 36px; margin-left: 12px; padding-inline: 14px; border: 1px solid var(--ink); border-radius: 0; font-size: var(--t-small); font-weight: 600; letter-spacing: .04em; }
.ls-bar__nav > ul > li > a.is-b2b:hover { background: var(--ink); color: var(--g); }
.ls-bar__nav > ul > li > a.is-b2b[aria-current="page"] { border-color: var(--acc); color: var(--acc-ink); }
.ls-bar__tools { display: flex; align-items: center; gap: 4px; }
.ls-tool { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; color: var(--ink); position: relative; transition: color var(--t-fast) var(--ease); }
.ls-tool:hover { color: var(--acc-ink); }
.ls-tool__n { position: absolute; top: 5px; right: 3px; min-width: 18px; height: 18px; padding-inline: 5px; border-radius: 9px; background: var(--acc); color: var(--onacc); font-size: var(--t-micro); font-weight: 600; line-height: 18px; text-align: center; font-variant-numeric: tabular-nums; }
.ls-search { display: flex; align-items: center; }
.ls-search__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.ls-search__in { width: 0; opacity: 0; height: 40px; padding: 0; border: 1px solid var(--line); background: var(--g2); color: var(--ink); font-size: var(--t-mid); transition: width var(--t-base) var(--ease), opacity var(--t-base) var(--ease), padding var(--t-base) var(--ease); }
.ls-search:focus-within .ls-search__in, .ls-search__in:not(:placeholder-shown) { width: 200px; opacity: 1; padding-inline: 12px; }
.ls-search__in::placeholder { color: var(--mut); }
.ls-burger { display: inline-flex; }
@media (min-width: 960px) { .ls-bar__nav { display: block; } .ls-burger { display: none; } }
@media (max-width: 400px) { .ls-search:not(:focus-within) { display: none; } }

/* ---------- 5. Menu mobile ---------- */
.ls-menu { position: fixed; inset: 0; z-index: 150; background: var(--g); display: flex; flex-direction: column; padding: 0 var(--gut) max(24px, env(safe-area-inset-bottom)); overflow-y: auto; }
.ls-menu[hidden] { display: none; }
.ls-menu__head { display: flex; align-items: center; justify-content: space-between; height: var(--bar-h); border-bottom: 1px solid var(--line); }
.ls-menu__brand { font-family: var(--font-head); text-transform: var(--case-head); letter-spacing: .12em; font-size: var(--t-lede); font-weight: 700; }
.ls-menu__nav { padding-block: 16px; }
.ls-menu__nav a { display: flex; align-items: center; justify-content: space-between; min-height: 56px; padding-block: 12px; border-bottom: 1px solid var(--line); font-family: var(--font-head); text-transform: var(--case-head); font-size: var(--t-menu); font-weight: 600; letter-spacing: .01em; }
.ls-menu__nav a.is-b2b { color: var(--acc-ink); }
.ls-menu__nav .ls-ic { color: var(--mut); }
.ls-menu__foot { margin-top: 0; display: flex; flex-wrap: wrap; gap: 16px 24px; padding-top: 24px; color: var(--mut); font-size: var(--t-mid); }
.ls-menu__foot a { min-height: 44px; display: inline-flex; align-items: center; }
/* La ricerca dentro il menu — 15/10/2026. A 390 la lente della barra si nasconde (sotto i 400 px, §4) e il campo non si
   apre: a telefono la ricerca non esisteva. Qui c'è un campo vero: 44 px, carattere a 16 (sotto, iOS ingrandisce da solo). */
.ls-menu__search { display: flex; gap: 8px; align-items: center; padding-top: 16px; }
.ls-menu__search-in { flex: 1 1 auto; min-width: 0; height: 44px; padding-inline: 14px; background: var(--g2); border: 1px solid var(--line); border-radius: var(--r); color: var(--ink); font-size: var(--t-body); }
.ls-menu__search-in::placeholder { color: var(--mut); }
.ls-menu__search-in:focus-visible { border-color: var(--acc); outline-offset: 0; }
.ls-menu__search .ls-tool { flex: none; border: 1px solid var(--line); border-radius: var(--r); }
.ls.menu-open { overflow: hidden; }

/* ---------- 6. Piede ---------- */
.ls-foot { background: var(--g2); border-top: 1px solid var(--line); font-size: var(--t-small); }
.ls-foot__in { max-width: var(--wrap); margin-inline: auto; padding: 96px var(--gut) 64px; display: grid; grid-template-columns: 1fr; gap: 40px 32px; }
.ls-foot__brand img { width: 140px; height: auto; margin-bottom: 20px; }
.ls-foot__brand p { color: var(--mut); max-width: 34ch; }
.ls-foot__brand address { color: var(--mut); line-height: 1.7; }
.ls-foot__brand address a:hover { color: var(--acc-ink); }
.ls-foot__col h2 { font-size: var(--t-eyebrow); letter-spacing: .15em; color: var(--mut); font-family: var(--font-body); font-weight: 600; margin-bottom: 12px; }
.ls-foot__col li a { display: inline-flex; align-items: center; min-height: 28px; transition: color var(--t-fast) var(--ease); }
.ls-foot__col li a:hover { color: var(--acc-ink); transform: translateX(2px); }
.ls-foot__col li a { transition: color var(--t-fast) var(--ease), transform var(--t-fast) var(--ease); }
.ls-foot__legal { border-top: 1px solid var(--line); }
.ls-foot__legal p { max-width: var(--wrap); margin: 0 auto; padding: 8px var(--gut); color: var(--mut); font-size: var(--t-small); }
.ls-foot__legal p:first-child { padding-top: 16px; }
.ls-foot__legal p:last-child { padding-bottom: 16px; }
@media (min-width: 640px) { .ls-foot__in { grid-template-columns: repeat(3, 1fr); } .ls-foot__brand { grid-column: 1 / -1; } }
@media (min-width: 960px) { .ls-foot__in { grid-template-columns: 1.6fr repeat(3, 1fr); } .ls-foot__brand { grid-column: auto; } }

/* ---------- 7. Componenti comuni ---------- */
.ls-eyebrow { font-size: var(--t-eyebrow); letter-spacing: .16em; text-transform: uppercase; color: var(--mut); margin: 0 0 16px; font-weight: 600; }
.ls-lede { font-size: var(--t-lede); line-height: 1.5; color: var(--mut); max-width: 56ch; margin: 16px 0 0; text-wrap: pretty; }
.ls-sez { padding-block: var(--sez); }
.ls-sez[id] { scroll-margin-top: var(--bar-h); }   /* 15/10: le ancore (home #categorie) non finiscono sotto la barra fissa */
.ls-sez--alt { background: var(--g2); border-block: 1px solid var(--line); }
.ls-sez__head { display: grid; gap: 8px; margin-bottom: var(--blocco); }
.ls-sez__head .ls-eyebrow { margin: 0; }
.ls-sez__nota { margin: 0; color: var(--mut); max-width: 60ch; }
.ls-sez__head--riga { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 8px 24px; }
.ls-sez__link { margin: var(--blocco) 0 0; display: flex; flex-wrap: wrap; gap: 24px; }
.ls-ctas { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }
@media (max-width: 639px) { .ls-ctas .ls-btn { width: 100%; } }
/* i 3 bottoni: pieno, contorno, link */
.ls-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: var(--btn-h); padding: 0 24px; background: var(--acc); color: var(--onacc); font-size: var(--t-label); font-weight: 600; letter-spacing: .08em; text-transform: uppercase; border: 1px solid var(--acc); border-radius: 2px; transition: background var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease); }
.ls-btn:hover { background: #A84E0B; border-color: #A84E0B; transform: translateY(-1px); box-shadow: 0 6px 18px rgba(189,89,13,.28); }
.ls-btn:active { transform: translateY(0) scale(.985); box-shadow: none; }
.ls-btn { transition: background var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease), transform var(--t-fast) var(--ease), box-shadow var(--t-fast) var(--ease); }
.ls-btn--ghost { background: transparent; color: var(--ink); border-color: var(--ink); }
.ls-btn--ghost:hover { background: var(--ink); color: var(--g); box-shadow: 0 6px 18px rgba(0,0,0,.25); }
.ls-link { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; font-size: var(--t-small); font-weight: 500; letter-spacing: 0; color: var(--acc-ink); }
.ls-link { position: relative; }
.ls-link::after { content: ""; position: absolute; left: 0; right: 26px; bottom: 10px; height: 1px; background: currentColor; transform: scaleX(0); transform-origin: left; transition: transform var(--t-base) var(--ease); }
.ls-link:hover::after { transform: scaleX(1); }
.ls-link:hover { color: var(--ink); }
.ls-link .ls-ic { width: 18px; height: 18px; transition: transform var(--t-fast) var(--ease); }
.ls-link:hover .ls-ic { transform: translateX(3px); }
.ls-ic { flex: none; width: var(--ic); height: var(--ic); }
.ls-badge { position: absolute; top: 10px; left: 10px; z-index: 1; padding: 4px 8px; border-radius: 4px; background: var(--acc); color: var(--onacc); font-size: var(--t-nano); font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.ls-badge--mut { background: var(--g); color: var(--ink); }
/* La card: una sola, ovunque. Foto quadrata su crema, nome + colore, riga, prezzo; il prezzo allineato in fila. */
.ls-griglia { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px var(--gap-s); }
@media (min-width: 640px) { .ls-griglia { gap: 48px 24px; } }
@media (min-width: 768px) { .ls-griglia { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1100px) { .ls-griglia { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (min-width: 1240px) { .ls-griglia { grid-template-columns: repeat(5, minmax(0, 1fr)); } }   /* 5 colonne: card da 221 px su contenuto 1200. Il 30/09 Luigi: «le card grandissime» — erano 322 */
.ls-card { display: grid; grid-template-rows: auto auto 1fr auto; gap: 4px; align-content: start; min-width: 0; }
.ls-card__ph { position: relative; display: block; aspect-ratio: 1; background: var(--chiaro); border-radius: var(--r); overflow: hidden; margin-bottom: 14px; }
.ls-card__ph img { width: 100%; height: 100%; object-fit: contain; padding: 7%; transition: transform 600ms var(--ease); }
.ls-card__ph::after { content: ""; position: absolute; inset: 0; box-shadow: inset 0 0 0 1px rgba(20,19,17,0); transition: box-shadow var(--t-base) var(--ease); pointer-events: none; }
.ls-card:hover .ls-card__ph img { transform: scale(1.04); }
.ls-card__ph .ls-card__ph2 { position: absolute; inset: 0; opacity: 0; transition: opacity var(--t-base) var(--ease), transform 600ms var(--ease); }
.ls-card:hover .ls-card__ph .ls-card__ph2 { opacity: 1; }
.ls-card__scegli { position: absolute; left: 12px; right: 12px; bottom: 12px; z-index: 2; display: flex; align-items: center; justify-content: center; min-height: 40px; background: var(--ink); color: var(--g); font-size: var(--t-label); font-weight: 600; letter-spacing: .08em; text-transform: uppercase; border-radius: 2px; opacity: 0; transform: translateY(6px); transition: opacity var(--t-base) var(--ease), transform var(--t-base) var(--ease); }
.ls-card:hover .ls-card__scegli, .ls-card:focus-within .ls-card__scegli { opacity: 1; transform: none; }
@media (hover: none) { .ls-card__scegli { display: none; } }
.ls-card:hover .ls-card__ph::after { box-shadow: inset 0 0 0 1px rgba(20,19,17,.12); }
.ls-card__vuota { display: block; width: 100%; height: 100%; background: var(--g2); }
.ls-card .ls-card__name { font-family: var(--font-body); text-transform: none; letter-spacing: 0; font-size: var(--t-small); font-weight: 500; line-height: 1.4; overflow-wrap: anywhere; text-wrap: pretty; }   /* due righe riservate: i prezzi restano in fila anche quando un nome va a capo */
.ls-card__name span { color: var(--mut); font-weight: 400; }
.ls-card__name a { transition: color var(--t-fast) var(--ease); }
.ls-card__name a:hover { color: var(--acc-ink); }
.ls-card__desc { margin: 0; font-size: var(--t-label); color: var(--mut); line-height: 1.5; }
.ls-card__price { margin: 6px 0 0; align-self: end; font-size: var(--t-small); font-weight: 500; font-variant-numeric: tabular-nums; }
.ls-card.is-protected .ls-card__price { color: var(--mut); font-weight: 400; font-size: var(--t-small); }
.ls-card__price del { color: var(--mut); margin-right: 8px; font-weight: 400; }
.ls-card__price ins { text-decoration: none; }
/* LE CELLE: un solo contenitore per fatti, tre blocchi, certificazioni, enti, servizio, passi. Bordo 1 px, fondo = quello della pagina o della banda (--cell-bg). */
.ls-sez--alt, .ls-arch__sotto, .ls-pg__banda, .ls-parla, .ls-foot, .ls-fabbrica { --cell-bg: var(--g2); }
.ls-fatti { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px; background: var(--line); border: 1px solid var(--line); border-radius: var(--r); overflow: hidden; margin: 0; }
.ls-fatti > div { background: var(--cell-bg, var(--g)); padding: 24px; }
.ls-fatti dt { font-family: var(--font-head); text-transform: var(--case-head); font-weight: 600; font-size: var(--t-num); line-height: 1; color: var(--acc-ink); margin-bottom: 8px; }
.ls-hero + .ls-wrap > .ls-fatti { margin-top: 56px; }
.ls-fatti dd { margin: 0; font-size: var(--t-small); color: var(--mut); }
@media (min-width: 960px) { .ls-fatti { grid-template-columns: repeat(4, 1fr); } .ls-fatti > div { padding: 28px 32px; } }
/* Tre blocchi di testo affiancati */
.ls-tre { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1px; background: var(--line); border: 1px solid var(--line); border-radius: var(--r); overflow: hidden; }
.ls-tre > li, .ls-tre > div { background: var(--cell-bg, var(--g)); padding: 28px; display: grid; gap: 8px; align-content: start; }
.ls-tre b, .ls-tre h2, .ls-tre h3 { font-family: var(--font-head); text-transform: var(--case-head); font-weight: 600; font-size: var(--t-h3); line-height: 1; }
.ls-tre span, .ls-tre p { margin: 0; font-size: var(--t-mid); color: var(--mut); line-height: 1.6; }
.ls-tre span a, .ls-tre p a { color: var(--acc-ink); text-decoration: underline; text-underline-offset: .15em; }
@media (min-width: 960px) { .ls-tre { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
/* Prosa */
.ls-prose { font-size: var(--t-body); line-height: 1.7; }
.ls-prose h2, .ls-prose h3 { margin-block: 1.4em .5em; }
.ls-prose h2 { font-size: var(--t-h2); }
.ls-prose h3 { font-size: var(--t-h3); }
.ls-prose h4, .ls-prose h5 { font-family: var(--font-head); text-transform: var(--case-head); letter-spacing: .03em; font-weight: 600; font-size: var(--t-h5); line-height: 1.1; margin: 1.6em 0 .5em; }
.ls-prose p { color: var(--mut); }
.ls-prose a { color: var(--acc-ink); text-decoration: underline; text-underline-offset: .15em; }
.ls-prose ul, .ls-prose ol { padding-left: 1.2em; margin-bottom: 1em; color: var(--mut); }
.ls-prose table { border-collapse: collapse; width: 100%; font-size: var(--t-mid); }
.ls-prose th, .ls-prose td { border: 1px solid var(--line); padding: 8px 12px; text-align: left; }
.ls-lista li { padding-block: 12px; border-bottom: 1px solid var(--line); }
.ls-lista li a { color: var(--acc-ink); }
/* LA testata di pagina: briciole · occhiello · H1 · lede. Istituzionali, archivi, ponte, legali, 404: la stessa. */
.ls-pg__testa { padding-block: 24px 48px; border-bottom: 1px solid var(--line); }
.ls-pg__testa .ls-h1, .ls-pg__testa h1 { max-width: 26ch; }
.ls-pg__testa .ls-eyebrow { margin-bottom: 12px; }
.ls-pg__testa .ls-lede { margin-top: 20px; }
.ls-pg__testa .ls-eyebrow [aria-current] { color: var(--acc-ink); font-weight: 600; }
.ls-crumb { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: var(--t-small); color: var(--mut); margin-bottom: 28px; }
.ls-crumb a { display: inline-flex; align-items: center; min-height: 24px; }
.ls-crumb a:hover { color: var(--acc-ink); }
.ls-crumb [aria-current="page"] { color: var(--ink); }
.ls-page__corpo { padding-block: 56px var(--sez); }
.ls-404 .ls-ctas { margin-top: 0; }
/* Filtri degli archivi: chip delle linee + livelli, in una riga */
.ls-filtri { position: relative; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 40px; padding-block: 12px; }
.ls-filtri::after { content: ""; position: absolute; left: var(--gut); right: var(--gut); bottom: 0; height: 1px; background: var(--line); }
.ls-filtri__sx { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 32px; }
.ls-filtri__dx { display: flex; align-items: center; gap: 20px; font-size: var(--t-small); color: var(--mut); }
.ls-filtri__dx label { display: inline-flex; align-items: center; gap: 8px; }
.ls .ls-filtri__dx select { min-height: 36px; padding: 0 32px 0 12px; font-size: var(--t-small); background-color: transparent; border: 1px solid var(--line); border-radius: 4px; color: var(--ink); appearance: none; background-image: linear-gradient(45deg, transparent 50%, var(--mut) 50%), linear-gradient(135deg, var(--mut) 50%, transparent 50%); background-position: calc(100% - 16px) 50%, calc(100% - 11px) 50%; background-size: 5px 5px; background-repeat: no-repeat; }
.ls-chips { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.ls-chips__k { font-size: var(--t-label); letter-spacing: .06em; text-transform: uppercase; color: var(--mut); margin-right: 4px; }
.ls-chip { display: inline-flex; align-items: center; gap: 6px; min-height: 36px; padding: 0 14px; border: 1px solid var(--line); border-radius: 4px; font-size: var(--t-label); font-weight: 500; color: var(--ink); transition: border-color var(--t-fast) var(--ease), background var(--t-fast) var(--ease), color var(--t-fast) var(--ease); }
.ls-chip:hover { border-color: var(--ink); transform: translateY(-1px); }
.ls-chip:active { transform: translateY(0); }
.ls-chip { transition: border-color var(--t-fast) var(--ease), background var(--t-fast) var(--ease), color var(--t-fast) var(--ease), transform var(--t-fast) var(--ease); }
.ls-chip.is-on { background: var(--ink); color: var(--g); border-color: var(--ink); }
.ls-chip small { font-size: var(--t-eyebrow); opacity: .7; }
@media (max-width: 639px) { .ls-chip { padding-inline: 12px; min-height: 44px; } .ls-chip small { display: none; } .ls-chips__k { width: 100%; margin: 0; } }
/* I pannelli: fondo rialzato, bordo, raggio. Totali, riepilogo, accesso, pagamento, indirizzi, Features. */
.ls-pannello { background: var(--g2); border: 1px solid var(--line); border-radius: var(--r); padding: 24px; }
/* Avvisi WooCommerce: un formato solo */
.ls .woocommerce-message, .ls .woocommerce-info, .ls .woocommerce-error { list-style: none; margin: 0 0 16px; padding: 14px 16px; border: 1px solid var(--line); border-left: 3px solid var(--acc); background: var(--g2); font-size: var(--t-mid); display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; }
.ls .woocommerce-error { border-left-color: var(--err); }
.ls .woocommerce-message .button, .ls .woocommerce-info .button, .ls .woocommerce-info a { order: 2; color: var(--acc-ink); font-weight: 600; text-decoration: underline; text-underline-offset: .15em; }
/* Banner cookie (Complianz): scuro, compatto, coi font di casa */
/* Elementor: qui non disegna niente */
.ls .elementor-kit-4 { --e-global-color-primary: var(--acc); }

/* ---------- 7b. Moduli: UN campo, UN'etichetta, UN bottone — Contact Form 7, WooCommerce (carrello, cassa, account, tracking), modulo password ---------- */
.ls :is(.woocommerce, .ls-modulo, .ls-scheda__protetto, .ls-page__corpo) :is(input.input-text, input[type="text"], input[type="email"], input[type="tel"], input[type="url"], input[type="password"], input[type="number"], input[type="search"], select, textarea) { width: 100%; min-height: var(--btn-h); padding: 12px 14px; background: var(--g2); border: 1px solid var(--line); border-radius: var(--r); color: var(--ink); font: inherit; font-size: var(--t-body); line-height: 1.4; text-transform: none; letter-spacing: 0; transition: border-color var(--t-fast) var(--ease); }
.ls :is(.woocommerce, .ls-modulo, .ls-scheda__protetto, .ls-page__corpo) :is(input, select, textarea):hover { border-color: var(--mut); }
.ls :is(.woocommerce, .ls-modulo, .ls-scheda__protetto, .ls-page__corpo) :is(input, select, textarea):focus-visible { border-color: var(--acc); outline-offset: 0; }
.ls :is(.woocommerce, .ls-modulo, .ls-scheda__protetto, .ls-page__corpo) :is(input, textarea)::placeholder { color: var(--mut); opacity: .7; }
.ls :is(.woocommerce, .ls-modulo, .ls-page__corpo) select { appearance: none; -webkit-appearance: none; padding-right: 40px; background-image: linear-gradient(45deg, transparent 50%, var(--mut) 50%), linear-gradient(135deg, var(--mut) 50%, transparent 50%); background-position: calc(100% - 20px) 50%, calc(100% - 14px) 50%; background-size: 6px 6px; background-repeat: no-repeat; }
.ls :is(.woocommerce, .ls-modulo, .ls-page__corpo) :is(input[type="checkbox"], input[type="radio"]) { width: 20px; height: 20px; min-height: 0; padding: 0; accent-color: var(--acc); margin: 0; flex: none; border-radius: 0; }
/* L'etichetta: sopra il campo, piccola, maiuscoletto; quella accanto a una casella resta in riga */
.ls :where(.woocommerce, .ls-modulo, .ls-scheda__protetto, .ls-page__corpo) label, .ls-lbl { display: block; margin: 0 0 6px; font-size: var(--t-eyebrow); letter-spacing: .08em; text-transform: uppercase; color: var(--mut); font-weight: 500; }
.ls .woocommerce-form__label-for-checkbox, .ls .woocommerce-form-login__rememberme, .ls .wpcf7-list-item label, .ls #ship-to-different-address label, .ls .wc_payment_method > label, .ls .post-password-form label, .ls .woocommerce-terms-and-conditions-checkbox-text { font-size: var(--t-mid); letter-spacing: 0; text-transform: none; color: var(--ink); font-weight: 400; margin: 0; }
.ls .woocommerce label .required, .ls-req { color: var(--acc-ink); text-decoration: none; }
.ls-modulo .ls-lbl { margin-top: 4px; }
.ls-modulo .ls-lbl + .wpcf7-form-control-wrap { display: block; margin-bottom: 12px; }
.ls-modulo .em-col > .ls-lbl { margin-top: 0; }
.ls-modulo .em-col > .wpcf7-form-control-wrap { margin-bottom: 0; }
/* Il bottone: lo stesso di .ls-btn, ovunque WooCommerce o CF7 ne stampino uno */
.ls .woocommerce :is(.button, button[type="submit"], .woocommerce-button), .ls-modulo input[type="submit"], .ls-scheda__protetto input[type="submit"], .ls-page__corpo .woocommerce-form button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: var(--btn-h); padding: 0 24px; background: var(--acc); color: var(--onacc); border: 1px solid var(--acc); border-radius: 2px; font: inherit; font-size: var(--t-label); font-weight: 600; letter-spacing: .08em; text-transform: uppercase; cursor: pointer; text-decoration: none; transition: background var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease); }
.ls .woocommerce :is(.button, button[type="submit"]):hover, .ls-modulo input[type="submit"]:hover, .ls-scheda__protetto input[type="submit"]:hover { background: #A84E0B; border-color: #A84E0B; }
.ls .woocommerce :is(.button:disabled, .button.disabled) { opacity: .45; cursor: not-allowed; }
.ls-scheda__protetto input[type="submit"] { margin-top: 12px; }
.ls .woocommerce :is(.wc-backward, .coupon .button, button[name="update_cart"]) { background: transparent; color: var(--ink); border-color: var(--ink); }
.ls .woocommerce :is(.wc-backward, .coupon .button, button[name="update_cart"]):hover { background: var(--ink); color: var(--g); border-color: var(--ink); }
.ls-page__corpo .woocommerce-form-track-order { max-width: 480px; margin-top: 24px; }
.ls-page__corpo .woocommerce-form-track-order p { margin-bottom: 16px; }
.ls-page__corpo .woocommerce-form-track-order .form-row { margin: 0 0 16px; }

/* ---------- 8. Home ---------- */
.ls-hero { position: relative; min-height: 560px; display: grid; align-items: end; background: var(--g2); isolation: isolate; }
.ls-hero__media { position: absolute; inset: 0; overflow: hidden; }
.ls-hero__media img { width: 100%; height: 100%; object-fit: cover; object-position: 60% 40%; }
.ls-hero__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(20,19,17,.3) 0%, rgba(20,19,17,.2) 45%, rgba(20,19,17,.78) 100%); }
@media (max-width: 639px) { .ls-hero { min-height: 560px; } .ls-hero__media img { object-position: 55% 30%; } .ls-hero__media::after { background: linear-gradient(180deg, rgba(20,19,17,.2) 0%, rgba(20,19,17,.15) 40%, rgba(20,19,17,.8) 100%); } }
.ls-hero__copy { position: relative; width: 100%; padding-block: 64px 72px; display: grid; grid-template-columns: minmax(0, 1fr); gap: 32px; align-items: end; }
.ls-hero__testo { min-width: 0; }
.ls-hero .ls-h1 { font-size: var(--t-hero); max-width: 22ch; text-shadow: 0 2px 24px rgba(0,0,0,.35); }
.ls-hero .ls-lede { color: var(--ink); font-size: var(--t-lede); line-height: 1.5; max-width: 520px; text-shadow: 0 1px 12px rgba(0,0,0,.5); }
.ls-hero .ls-eyebrow { color: var(--ink); }
@media (min-width: 960px) { .ls-hero__copy { padding-block: 80px 56px; grid-template-columns: minmax(0, 1fr) 400px; gap: 64px; } }
/* La tessera del modello di punta nell'hero: lo scarpone è la prima cosa che si vede (Zamberlan lo mette in ogni hero). Crema, come le card. */
.ls-hero__pack { display: none; }
@media (min-width: 960px) { .ls-hero__pack { display: grid; grid-template-rows: minmax(0, 1fr) auto; align-self: end; width: 400px; height: 440px; background: var(--chiaro); border-radius: var(--r); overflow: hidden; color: #141311; box-shadow: 0 24px 48px rgba(0,0,0,.35); } .ls-hero__pack-foto { display: block; padding: 24px 24px 0; min-height: 0; } .ls-hero__pack-foto img { width: 100%; height: 100%; object-fit: contain; object-position: center bottom; transition: transform 600ms var(--ease); } .ls-hero__pack:hover .ls-hero__pack-foto img { transform: scale(1.04); } .ls-hero__pack-dida { display: grid; gap: 2px; padding: 12px 20px 16px; font-size: var(--t-small); border-top: 1px solid rgba(20,19,17,.1); } .ls-hero__pack-dida b { font-weight: 500; white-space: nowrap; } .ls-hero__pack-dida b span { color: #625C52; font-weight: 400; } .ls-hero__pack-dida > span { color: #625C52; font-size: var(--t-label); } }
.ls-linee { display: grid; grid-template-columns: 1fr; gap: 2px; background: var(--line); border-block: 2px solid var(--line); }
.ls-linea { position: relative; display: block; aspect-ratio: 4 / 3; overflow: hidden; background: var(--chiaro); }
.ls-linea__media { position: absolute; inset: 0; }
.ls-linea__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 600ms var(--ease); }
.ls-linea--pack .ls-linea__media img { object-fit: contain; padding: 14px; }
.ls-linea:hover .ls-linea__media img { transform: scale(1.04); }
.ls-linea__testo b { transition: color var(--t-fast) var(--ease); }
.ls-linea:hover .ls-linea__testo b { color: var(--acc-ink); }
.ls-linea--pack .ls-linea__media { inset: 0 0 76px 0; }
.ls-linea__testo { position: absolute; left: 0; right: 0; bottom: 0; min-height: 76px; padding: 14px var(--gut); background: var(--g2); display: grid; gap: 2px; align-content: center; }
.ls-linea__testo b { font-family: var(--font-head); text-transform: var(--case-head); font-weight: 600; font-size: var(--t-h3); line-height: 1; }
.ls-linea__testo span { font-size: var(--t-small); color: var(--mut); }
@media (min-width: 960px) { .ls-linee { grid-template-columns: repeat(3, 1fr); } .ls-linea { aspect-ratio: 16 / 10; } }
.ls-livelli { display: grid; grid-template-columns: 1fr; gap: 12px; margin-bottom: var(--blocco); }
.ls-lvl { display: grid; gap: 4px; padding: 16px; border: 1px solid var(--line); border-radius: var(--r); background: transparent; transition: border-color var(--t-fast) var(--ease); }
.ls-lvl:hover, .ls-lvl.is-on { border-color: var(--acc); box-shadow: inset 0 0 0 1px var(--acc); }
.ls-lvl b { font-size: var(--t-body); }
.ls-lvl span { font-size: var(--t-small); color: var(--mut); }
@media (min-width: 640px) { .ls-livelli { grid-template-columns: repeat(2, 1fr); } }
.ls-fabbrica { display: grid; grid-template-columns: minmax(0, 1fr); background: var(--g2); border-block: 1px solid var(--line); }
.ls-fabbrica__media { position: relative; aspect-ratio: 4 / 3; }
.ls-fabbrica__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) contrast(1.05); }
.ls-fabbrica__testo { padding: 48px var(--gut); display: grid; align-content: center; gap: 16px; }
.ls-fabbrica__testo h2 { max-width: 16ch; }
.ls-fabbrica__testo p { margin: 0; color: var(--mut); max-width: 44ch; }
.ls-fabbrica__testo p a:not(.ls-btn) { color: var(--ink); text-decoration: underline; text-underline-offset: .15em; }
.ls-fabbrica__testo .ls-ctas { margin-top: 8px; }
@media (min-width: 960px) { .ls-fabbrica { grid-template-columns: 1fr 1fr; } .ls-fabbrica__media { aspect-ratio: auto; min-height: 100%; } .ls-fabbrica__testo { padding: var(--sez) 64px; } }
.ls-cert { padding-block: var(--sez); }
.ls-cert__lista { display: grid; grid-template-columns: 1fr; gap: 1px; background: var(--line); border: 1px solid var(--line); border-radius: var(--r); overflow: hidden; }
.ls-cert__lista li { background: var(--cell-bg, var(--g)); padding: 24px; display: grid; gap: 6px; }
.ls-cert__lista b { font-family: var(--font-head); text-transform: var(--case-head); font-weight: 600; font-size: var(--t-h3); line-height: 1; }
.ls-cert__lista span { font-size: var(--t-small); color: var(--mut); }
@media (min-width: 640px) { .ls-cert__lista { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 960px) { .ls-cert__lista { grid-template-columns: repeat(4, 1fr); } }
.ls-b2b { background: var(--acc); color: var(--onacc); }
.ls-b2b .ls-eyebrow, .ls-b2b .ls-lede { color: var(--onacc); }
.ls-b2b__in { display: grid; gap: 32px; padding-block: 88px; }
.ls-b2b__punti { display: grid; gap: 16px; }
.ls-b2b__punti li { display: grid; gap: 2px; padding-top: 12px; border-top: 1px solid rgba(255,255,255,.35); }
.ls-b2b__punti b { font-size: var(--t-body); }
.ls-b2b__punti span { font-size: var(--t-small); color: #fff; }
.ls-b2b .ls-btn--ghost { color: var(--onacc); border-color: var(--onacc); }
.ls-b2b .ls-btn--ghost:hover { background: var(--onacc); color: var(--acc); }
.ls-b2b .ls-ctas { margin: 0; }
@media (min-width: 960px) { .ls-b2b__in { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); grid-template-rows: auto auto; } .ls-b2b__in > div { grid-row: 1 / 3; } }
.ls-servizio { display: grid; grid-template-columns: 1fr; gap: 1px; background: var(--line); border: 1px solid var(--line); border-radius: var(--r); overflow: hidden; margin: 0; }
.ls-servizio--home { margin-block: var(--blocco); }
.ls-servizio li { background: var(--cell-bg, var(--g)); padding: 20px 24px; display: flex; gap: 14px; align-items: flex-start; }
.ls-servizio li > .ls-ic { width: 24px; height: 24px; color: var(--acc-ink); margin-top: 1px; }
.ls-servizio li > span { display: grid; gap: 2px; }
.ls-servizio b { font-size: var(--t-body); }
.ls-servizio span span { font-size: var(--t-small); color: var(--mut); }
.ls-servizio span a { text-decoration: underline; text-underline-offset: .15em; }
.ls-servizio span a:hover { color: var(--acc-ink); }
@media (min-width: 640px) { .ls-servizio { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 960px) { .ls-servizio { grid-template-columns: repeat(4, 1fr); } }

/* ---------- 9. Shop, categorie, ricerca ---------- */
.ls-arch__corpo { padding-block: 32px var(--sez); }
.ls-arch__conta { margin: 0; font-size: var(--t-small); color: var(--mut); }
.ls-arch__vuoto { padding-block: 48px; }
.ls-pag { margin-top: 48px; }
.ls-pag .nav-links { display: flex; flex-wrap: wrap; gap: 8px; }
.ls-pag .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; height: 44px; padding-inline: 12px; border: 1px solid var(--line); }
.ls-pag .page-numbers.current { border-color: var(--acc); color: var(--acc-ink); }
.ls-arch__sotto { background: var(--g2); border-block: 1px solid var(--line); padding-block: var(--sez); }
.ls-arch__sotto .ls-tre { background: none; border: 0; gap: 0; border-radius: 0; }
.ls-arch__sotto .ls-tre > div { padding: 8px 32px; border-left: 1px solid var(--line); }
.ls-arch__sotto .ls-tre > div:first-child { padding-left: 0; border-left: 0; }
@media (max-width: 959px) { .ls-arch__sotto .ls-tre > div { padding: 24px 0; border-left: 0; border-top: 1px solid var(--line); } .ls-arch__sotto .ls-tre > div:first-child { padding-top: 0; border-top: 0; } }
.ls-arch__sotto .ls-tre h2 { font-size: var(--t-lede); letter-spacing: .06em; }
.ls-arch__sotto .ls-tre p { font-size: var(--t-small); }
.ls-arch__b2b-in { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 32px; padding-block: 32px; }
.ls-arch__b2b-in p { margin: 0; color: var(--mut); max-width: 60ch; }
.ls-arch__b2b-in p b { color: var(--ink); }

/* ---------- 10. Scheda prodotto — ricalcata su zamberlan.com (galleria 65 %, pannello 31,5 %, pillole), nel container di casa (1280): un margine solo su tutta la pagina ---------- */
.ls-scheda .ls-crumb { padding-top: 12px; margin-bottom: 8px; font-size: var(--t-eyebrow); }
.ls-scheda__sopra { display: grid; grid-template-columns: minmax(0, 1fr); gap: 32px; padding-block: 0 56px; }
@media (min-width: 960px) { .ls-scheda__sopra { grid-template-columns: minmax(0, 65fr) minmax(0, 31.5fr); gap: 3.5%; align-items: start; } .ls-scheda__pannello { position: sticky; top: calc(var(--bar-h) + 16px); } }
.ls-gal { display: grid; gap: 4px; }
.ls-gal__main { position: relative; margin: 0; aspect-ratio: 6 / 5; background: var(--chiaro); border-radius: var(--r); overflow: hidden; }
.ls-gal__main img { width: 100%; height: 100%; object-fit: contain; }
.ls-gal__griglia { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px; }
.ls-gal__foto { display: block; width: 100%; aspect-ratio: 1; background: var(--chiaro); border-radius: var(--r); overflow: hidden; border: 2px solid transparent; transition: border-color var(--t-fast) var(--ease); }
.ls-gal__foto img { width: 100%; height: 100%; object-fit: cover; transition: transform 600ms var(--ease); }
.ls-gal__foto:hover img { transform: scale(1.04); }
.ls-gal__foto:hover, .ls-gal__foto.is-on { border-color: var(--acc); }
@media (max-width: 959px) { .ls-gal__main { aspect-ratio: 1; } .ls-gal__griglia { display: flex; overflow-x: auto; scrollbar-width: none; } .ls-gal__griglia li { flex: 0 0 96px; } }
.ls-scheda__pannello { display: grid; gap: 14px; align-content: start; padding-top: 28px; font-size: var(--t-small); }
.ls-scheda__linea { font-size: var(--t-eyebrow); color: var(--mut); }
.ls-scheda__linea:hover { color: var(--acc-ink); }
.ls-scheda__nome { font-size: var(--t-display); line-height: 1.05; font-weight: 600; }
.ls-scheda__colore { color: var(--mut); font-weight: 500; }
.ls-scheda__riga { margin: 0; color: var(--ink); font-size: var(--t-mid); }
.ls-scheda__prezzo { display: flex; align-items: baseline; gap: 10px; padding-top: 6px; }
.ls-scheda__prezzo .price { font-size: var(--t-lede); font-weight: 500; font-variant-numeric: tabular-nums; }
.ls-scheda__prezzo .price del { color: var(--mut); margin-right: 8px; font-weight: 400; }
.ls-scheda__prezzo .price ins { text-decoration: none; }
.ls-scheda__prezzo > span { font-size: var(--t-eyebrow); color: var(--mut); }
.ls-scheda__hr { border: 0; border-top: 1px solid var(--line); margin: 10px 0 6px; }
.ls-scheda__etichetta { margin: 0 0 8px; font-size: var(--t-small); color: var(--ink); }
.ls-scheda__colori ul { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; margin: 0; padding: 0; }
.ls-scheda__colore-foto { display: block; width: 56px; height: 56px; border-radius: var(--r); overflow: hidden; background: var(--chiaro); border: 2px solid transparent; transition: border-color var(--t-fast) var(--ease); }
.ls-scheda__colore-foto img { width: 100%; height: 100%; object-fit: cover; }
.ls-scheda__colore-foto:hover { border-color: var(--mut); transform: translateY(-1px); }
.ls-scheda__colore-foto { transition: border-color var(--t-fast) var(--ease), transform var(--t-fast) var(--ease); }
.ls-scheda__colore-foto.is-on { border-color: var(--ink); }
.ls-scheda__hint { margin: 8px 0 0; font-size: var(--t-eyebrow); color: var(--mut); display: none; }
.ls-scheda__acquisto:has(.wc-variation-selection-needed) .ls-scheda__hint { display: block; }
.ls-scheda__guida { margin: -4px 0 0; font-size: var(--t-eyebrow); }
.ls-scheda__guida a { display: inline-flex; align-items: center; gap: 4px; min-height: 32px; color: var(--acc-ink); text-decoration: underline; text-underline-offset: .2em; }
.ls-scheda__guida .ls-ic, .ls-feat__v .ls-ic, .ls-perche__dich .ls-ic { width: 16px; height: 16px; }
.ls-scheda__trade { margin: 4px 0 0; }
.ls-scheda__breve { font-size: var(--t-small); color: var(--mut); line-height: 1.6; }
.ls-scheda__breve-testo { max-height: 6.4em; overflow: hidden; position: relative; transition: max-height var(--t-base) var(--ease); }
.ls-scheda__breve-testo::after { content: ""; position: absolute; inset: auto 0 0 0; height: 1.6em; background: linear-gradient(180deg, transparent, var(--g)); }
.ls-scheda__breve.is-open .ls-scheda__breve-testo { max-height: 80em; }
.ls-scheda__breve.is-open .ls-scheda__breve-testo::after { content: none; }
.ls-scheda__breve p { margin: 0; color: var(--ink); }
.ls-scheda__breve-piu { display: inline-block; min-height: 28px; margin-top: 2px; font-size: var(--t-small); font-weight: 600; color: var(--acc-ink); text-decoration: underline; text-underline-offset: .2em; }
.ls-scheda__sku { margin: 0; font-size: var(--t-eyebrow); color: var(--mut); }
.ls-scheda__sku b { color: var(--ink); }
.ls-fisa { border-top: 1px solid var(--line); margin-top: 6px; }
.ls-fisa details { border-bottom: 1px solid var(--line); }
.ls-fisa summary { display: flex; align-items: center; gap: 12px; min-height: 52px; padding-block: 12px; list-style: none; cursor: pointer; font-size: var(--t-small); font-weight: 500; }
.ls-fisa summary::-webkit-details-marker { display: none; }
.ls-fisa summary span { flex: 1; }
.ls-fisa summary .ls-ic { color: var(--acc-ink); }
.ls-fisa summary .ls-ic--chevron { color: var(--mut); transition: transform var(--t-fast) var(--ease); }
.ls-fisa details[open] summary .ls-ic--chevron { transform: rotate(180deg); }
.ls-fisa details[open] > p { animation: ls-entra var(--t-base) var(--ease) both; }
@keyframes ls-entra { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
.ls-fisa p { margin: 0 0 16px 32px; font-size: var(--t-small); color: var(--mut); line-height: 1.6; }
.ls-fisa p a { color: var(--acc-ink); text-decoration: underline; text-underline-offset: .15em; }
.ls-scheda__protetto { display: grid; gap: 16px; }
.ls-scheda__protetto > p { margin: 0; color: var(--mut); }
.ls-scheda__protetto .post-password-form p { margin: 0 0 12px; color: var(--mut); font-size: var(--t-small); }
.ls-scheda__protetto .post-password-form label { display: grid; gap: 8px; }
/* Il modulo varianti: etichetta piccola, taglie a pillole 46 px (6 per riga), bottone pieno come tutti gli altri */
.ls .ls-scheda__acquisto .wcboost-variation-swatches { --wcboost-swatches-item-width: 100%; --wcboost-swatches-item-height: 46px; }
.ls-scheda__acquisto .variations { width: 100%; border-collapse: collapse; margin: 0; }
.ls-scheda__acquisto .variations th, .ls-scheda__acquisto .variations td { display: block; padding: 0; text-align: left; border: 0; min-width: 0; background: transparent; }
.ls-scheda__acquisto .variations th { font-size: var(--t-small); color: var(--ink); margin-bottom: 8px; font-weight: 400; text-transform: capitalize; letter-spacing: 0; }
.ls-scheda__acquisto .variations th label { display: inline; }
.ls-scheda__acquisto .variations tr + tr th { margin-top: 16px; }
.ls-scheda__acquisto select { width: 100%; height: 46px; padding-inline: 12px; background: var(--g2); border: 1px solid var(--line); border-radius: var(--r); color: var(--ink); font: inherit; font-size: var(--t-small); appearance: none; -webkit-appearance: none; background-image: linear-gradient(45deg, transparent 50%, var(--mut) 50%), linear-gradient(135deg, var(--mut) 50%, transparent 50%); background-position: calc(100% - 20px) 50%, calc(100% - 14px) 50%; background-size: 6px 6px; background-repeat: no-repeat; }
.ls-scheda__acquisto .wcboost-variation-swatches { display: block; }
.ls-scheda__acquisto .wcboost-variation-swatches__wrapper { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 6px; }   /* 13 taglie = 7 + 6, mai una sola in terza riga */
.ls .ls-scheda__acquisto .wcboost-variation-swatches__item, .ls .ls-scheda__acquisto .wcboost-variation-swatches--round .wcboost-variation-swatches__item { min-width: 0; min-height: 46px; width: 100%; padding: 0; margin: 0; display: inline-flex; align-items: center; justify-content: center; border: 1px solid rgba(255,255,255,.18); border-radius: 4px; background: transparent; color: var(--ink); font-size: var(--t-small); font-weight: 400; transition: border-color var(--t-fast) var(--ease), background var(--t-fast) var(--ease); }
.ls .ls-scheda__acquisto .wcboost-variation-swatches__item::before, .ls .ls-scheda__acquisto .wcboost-variation-swatches__item::after { display: none; }
.ls .ls-scheda__acquisto .wcboost-variation-swatches__item:hover { border-color: var(--ink); background: var(--line); }
.ls .ls-scheda__acquisto .wcboost-variation-swatches__item:active { transform: scale(.96); }
.ls .ls-scheda__acquisto .wcboost-variation-swatches__item.selected { border-color: var(--ink); background: var(--ink); color: var(--g); font-weight: 600; box-shadow: none; }
.ls .ls-scheda__acquisto .wcboost-variation-swatches__item--disabled, .ls .ls-scheda__acquisto .wcboost-variation-swatches__item.disabled { opacity: .35; background: repeating-linear-gradient(135deg, transparent 0 6px, var(--line) 6px 7px); }
.ls-scheda__acquisto .wcboost-variation-swatches__name { display: inline; font-size: var(--t-small); }
.ls-scheda__acquisto .wcboost-variation-swatches__item .wcboost-variation-swatches__tooltip { display: none; }
.ls-scheda__acquisto .single_variation_wrap { margin-top: 20px; }
.ls-scheda__acquisto .woocommerce-variation-price { display: none; }
.ls-scheda__acquisto .woocommerce-variation-availability { font-size: var(--t-eyebrow); color: var(--mut); margin-bottom: 10px; }
.ls-scheda__acquisto .woocommerce-variation-availability .out-of-stock { color: var(--acc-ink); }
.ls-scheda__acquisto .woocommerce-variation-add-to-cart { display: flex; gap: 8px; }
.ls-scheda__acquisto .quantity { display: none; }
.ls-scheda__acquisto .quantity .screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.ls-scheda__acquisto .single_add_to_cart_button { flex: 1; min-height: var(--btn-h); padding-inline: 28px; background: var(--acc); color: var(--onacc); border: 1px solid var(--acc); border-radius: 0; font: inherit; font-size: var(--t-small); font-weight: 600; letter-spacing: .08em; text-transform: uppercase; cursor: pointer; transition: background var(--t-fast) var(--ease); }
.ls-scheda__acquisto .single_add_to_cart_button:hover { background: #A84E0B; transform: translateY(-1px); box-shadow: 0 6px 18px rgba(189,89,13,.28); }
.ls-scheda__acquisto .single_add_to_cart_button:active { transform: none; box-shadow: none; }
.ls-scheda__acquisto .single_add_to_cart_button.disabled, .ls-scheda__acquisto .single_add_to_cart_button:disabled { opacity: .5; cursor: not-allowed; }
.ls-scheda__acquisto .wc-variation-selection-needed { opacity: 1; }
.ls-scheda__acquisto .stock { font-size: var(--t-eyebrow); color: var(--mut); }
/* Features: pannello (fondo rialzato) sulla pagina, 3 celle sopra e 3 tessere sotto */
.ls-feat { padding-block: 80px; }
.ls-feat__head { margin-bottom: 40px; }
.ls-feat__head .ls-eyebrow { margin: 0 0 6px; font-size: var(--t-eyebrow); letter-spacing: .1em; }
.ls-feat__head h2 { font-size: var(--t-h2); font-weight: 600; }
.ls-feat__pannello { border: 1px solid var(--line); border-radius: var(--r); background: var(--g2); overflow: hidden; }
.ls-feat__riga { display: grid; grid-template-columns: minmax(0, 1fr); }
.ls-feat__riga + .ls-feat__riga { border-top: 1px solid var(--line); }
.ls-feat__cella { padding: 24px; display: grid; gap: 8px; align-content: start; font-size: var(--t-fs135); }
.ls-feat__cella + .ls-feat__cella { border-top: 1px solid var(--line); }
@media (min-width: 960px) { .ls-feat__riga { grid-template-columns: 1fr 2fr 2fr; } .ls-feat__cella + .ls-feat__cella { border-top: 0; border-left: 1px solid var(--line); } }
.ls-feat__fatti > div { display: grid; gap: 2px; }
.ls-feat__fatti > div + div { margin-top: 10px; }
.ls-feat__k { font-size: var(--t-micro); letter-spacing: .12em; text-transform: uppercase; color: var(--mut); }
.ls-feat__v { font-size: var(--t-small); color: var(--ink); }
.ls-feat__v a { color: var(--ink); text-decoration: underline; text-underline-offset: .2em; display: inline-flex; align-items: center; gap: 3px; }
.ls-feat__fatti small { font-size: var(--t-micro); color: var(--mut); }
.ls-feat__scala h3 { display: flex; align-items: center; gap: 6px; font-family: var(--font-body); text-transform: none; letter-spacing: 0; font-size: var(--t-h5); font-weight: 500; }
.ls-feat__scala h3 .ls-ic { width: 16px; height: 16px; color: var(--acc-ink); }
.ls-feat__scala h4 { margin: 8px 0 0; padding-top: 12px; border-top: 1px solid var(--line); font-size: var(--t-mid); font-weight: 600; }
.ls-feat__scala p { margin: 0; color: var(--mut); line-height: 1.6; }
.ls-scala { display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px; margin: 4px 0 0; padding: 0; list-style: none; counter-reset: none; }
.ls-scala li { display: grid; gap: 6px; justify-items: center; }
.ls-scala li::before { content: ""; display: block; width: 100%; height: 6px; border-radius: 3px; background: rgba(224,122,42,.25); }
.ls-scala li.is-on::before { background: var(--acc-ink); }
.ls-scala li span { font-size: var(--t-eyebrow); color: var(--mut); }
.ls-scala li.is-on span { color: var(--ink); font-weight: 600; }
.ls-scala__capi { display: flex; justify-content: space-between; margin: 0; font-size: var(--t-micro); color: var(--mut); }
.ls-feat__riga--tessere .ls-feat__cella { gap: 14px; }
.ls-feat__riga--tessere > .ls-feat__cella > .ls-ic { width: 28px; height: 28px; color: var(--acc-ink); }
/* Why choose this model: testo a sinistra, seconda foto fissa a destra (se c'è; altrimenti colonna di lettura) */
.ls-perche { padding-block: 80px; background: var(--g); }
/* Senza seconda foto: descrizione a sinistra, dati tecnici e certificazione a destra — niente mezza pagina vuota */
@media (min-width: 960px) { .ls-perche__in--solo .ls-perche__testo { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 0 64px; align-items: start; } .ls-perche__in--solo .ls-perche__descr { grid-column: 1; grid-row: 1 / span 40; } .ls-perche__in--solo .ls-perche__testo > :not(.ls-perche__descr) { grid-column: 2; } .ls-perche__in--solo .ls-perche__testo > .ls-perche__h2:first-of-type { margin-top: 0; } }
.ls-perche__in { display: grid; grid-template-columns: minmax(0, 1fr); gap: 40px; }
@media (min-width: 960px) { .ls-perche__in:not(.ls-perche__in--solo) { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 64px; align-items: start; } .ls-perche__foto { position: sticky; top: calc(var(--bar-h) + 24px); } }
.ls-perche__foto { margin: 0; aspect-ratio: 1; background: var(--chiaro); border-radius: var(--r); overflow: hidden; }
.ls-perche__foto img { width: 100%; height: 100%; object-fit: cover; }
.ls-perche__testo { font-size: var(--t-fs135); color: var(--mut); line-height: 1.6; }
.ls-perche__descr { font-size: var(--t-fs135); line-height: 1.6; }
.ls-perche__descr p { color: var(--mut); margin: 0 0 14px; }
.ls-perche__descr > p:first-child { color: var(--ink); font-size: var(--t-small); }
/* Della descrizione si mostrano i paragrafi e gli elenchi. Non si mostrano: il pulsante PDF (c'è il nostro), le foto, le griglie «At a glance» e le colonne «Technical details» a righe (doppioni della tabella Technical data). */
.ls-perche__descr p:has(> a[href$=".pdf"]), .ls-perche__descr a[href$=".pdf"], .ls-perche__descr img, .ls-perche__descr .ls-why__media, .ls-perche__descr .ls-spec, .ls-perche__descr .ls-badges, .ls-perche__descr .ls-eyebrow, .ls-perche__descr .ls-section-title:has(+ .ls-spec), .ls-perche__descr .ls-section-title:has(+ .ls-why), .ls-perche__descr h6 + div, .ls-perche__descr h6 + div ~ div, .ls-perche__descr h6:has(+ div), .ls-perche__descr table { display: none; }   /* wp_kses toglie gli style inline: le colonne «Technical details» sono h6 + div, div, div */
.ls-perche__descr .ls-section-title, .ls-perche__descr h3, .ls-perche__descr h4, .ls-perche__descr h6 { font-family: var(--font-body); text-transform: none; letter-spacing: 0; font-size: var(--t-mid); font-weight: 600; line-height: 1.3; color: var(--ink); margin: 20px 0 6px; }
.ls-perche__descr p { font-size: var(--t-small); }
.ls-perche__descr > p:first-child, .ls-perche__descr .em-col > p:first-child { font-size: var(--t-body); color: var(--ink); }
.ls-perche__descr .ls-lead { color: var(--ink); font-size: var(--t-small); }
.ls-perche__descr ul { padding-left: 1.2em; margin: 0 0 14px; }
.ls-perche__descr .em-row { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px 32px; }
.ls-perche__h2 { margin: 40px 0 24px; font-size: var(--t-h2); font-weight: 600; color: var(--ink); }
.ls-perche__h2--acc { color: var(--ink); }
.ls-perche__h3 { margin: 32px 0 20px; font-family: var(--font-body); text-transform: none; letter-spacing: 0; font-size: var(--t-h3); font-weight: 500; color: var(--ink); }
.ls-tech__tab { width: 100%; border-collapse: collapse; font-size: var(--t-fs135); margin: 0 0 8px; }
.ls-tech__tab th, .ls-tech__tab td { padding: 10px 12px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; line-height: 1.5; }
.ls-tech__tab tr:first-child th, .ls-tech__tab tr:first-child td { border-top: 1px solid var(--line); }
.ls-tech__tab th { width: 32%; font-weight: 500; color: var(--mut); padding-right: 16px; }
.ls-tech__tab td { color: var(--ink); }
.ls-perche__norma { margin: 16px 0 8px; font-size: var(--t-small); color: var(--ink); }
.ls-perche__lista { margin: 0 0 8px; padding-left: 1.2em; }
.ls-perche__lista li { margin-bottom: 6px; }
.ls-perche__lista b { color: var(--ink); font-weight: 600; }
.ls-perche__lista--sigle li { display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 8px; list-style: none; margin-left: -1.2em; }
.ls-perche__nota { margin: 12px 0 0; font-size: var(--t-fs125); }
.ls-perche__dich { display: flex; flex-wrap: wrap; gap: 8px 24px; margin: 20px 0 0; font-size: var(--t-label); }
.ls-perche__dich a { display: inline-flex; align-items: center; gap: 4px; min-height: 32px; color: var(--acc-ink); text-decoration: underline; text-underline-offset: .2em; }
.ls-perche__badge { display: flex; flex-wrap: wrap; gap: 8px 24px; margin: 28px 0 0; padding: 0; list-style: none; }
.ls-perche__badge li { display: inline-flex; align-items: center; gap: 6px; font-size: var(--t-eyebrow); color: var(--ink); min-height: 28px; }
.ls-perche__badge .ls-ic { width: 18px; height: 18px; color: var(--acc-ink); }
.ls-perche__loghi { display: flex; flex-wrap: wrap; gap: 12px; margin: 0; padding: 0; list-style: none; }
.ls-perche__loghi li { display: flex; align-items: center; justify-content: center; height: 60px; padding: 10px 16px; background: var(--chiaro); border-radius: var(--r); }
.ls-perche__loghi img { height: 36px; width: auto; }
.ls-perche__iso { display: flex; align-items: center; gap: 8px; margin: 32px 0 0; padding-top: 20px; border-top: 1px solid var(--line); font-size: var(--t-eyebrow); color: var(--ink); }
.ls-perche__iso .ls-ic { width: 18px; height: 18px; color: var(--acc-ink); }
/* You may also like */
.ls-rel { padding-block: 80px; border-top: 1px solid var(--line); }
.ls-rel .ls-rel__h2 { font-size: var(--t-h2); margin: 0 0 var(--blocco); }

/* ---------- 11. Pagine istituzionali ---------- */
.ls-pg__blocco { padding-block: var(--sez); }
.ls-pg__blocco + .ls-pg__blocco, .ls-pg__due + .ls-pg__blocco { padding-top: 0; }   /* due blocchi di fila: un solo respiro, non due */
.ls-pg__due { display: grid; grid-template-columns: minmax(0, 1fr); gap: 40px; padding-block: var(--sez); }
@media (min-width: 960px) { .ls-pg__due { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 64px; } }
.ls-pg__foto img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.ls-pg__bn { filter: grayscale(1) contrast(1.05); }
.ls-pg__didascalia { margin: 8px 0 0; font-size: var(--t-small); color: var(--mut); }
.ls-pg .ls-prose h2 { margin: 0 0 .5em; }
.ls-pg .ls-prose h2 + p { margin-top: 0; }
.ls-pg .ls-prose p + h2 { margin-top: 1.6em; }
.ls-pg .ls-wrap--testo.ls-prose { padding-block: 48px 0; }
.ls-pg .ls-wrap--testo.ls-prose + .ls-pg__blocco { padding-top: 56px; }
.ls-pg__banda { background: var(--g2); border-block: 1px solid var(--line); padding-block: var(--sez); }
.ls-pg__banda-in { display: grid; grid-template-columns: minmax(0, 1fr); gap: 40px; }
.ls-pg__banda-in h2 { margin-bottom: 12px; }
.ls-pg__banda-in p:last-child { margin: 0; color: var(--mut); }
@media (min-width: 960px) { .ls-pg__banda-in { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 64px; } }
.ls-enti { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1px; background: var(--line); border: 1px solid var(--line); border-radius: var(--r); overflow: hidden; }
.ls-enti li { background: var(--cell-bg, var(--g)); padding: 28px; display: grid; gap: 8px; align-content: start; }
.ls-enti__sigla { font-family: var(--font-head); text-transform: var(--case-head); font-weight: 700; font-size: var(--t-display); line-height: 1; color: var(--ink); }
.ls-enti li h3 { font-family: var(--font-body); text-transform: none; font-size: var(--t-body); font-weight: 600; letter-spacing: 0; }
.ls-enti p { margin: 0; font-size: var(--t-small); color: var(--mut); line-height: 1.6; }
.ls-enti .ls-link { margin-top: auto; }
@media (min-width: 640px) { .ls-enti { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 960px) { .ls-enti { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.ls-tab-scroll { overflow-x: auto; }
/* 16/10: solo la TABELLA. In produzione il testo breve di 4 schede ha un <p class="ls-norme"> (15/09): a 640 px dava scroll a 390. */
table.ls-norme { width: 100%; min-width: 640px; border-collapse: collapse; font-size: var(--t-mid); background: var(--g); }
table.ls-norme th, table.ls-norme td { padding: 16px; border: 1px solid var(--line); text-align: left; vertical-align: top; line-height: 1.6; }
table.ls-norme thead th { font-size: var(--t-eyebrow); letter-spacing: .08em; text-transform: uppercase; color: var(--mut); font-weight: 600; background: var(--g2); }
table.ls-norme tbody th { width: 28%; font-weight: 600; }
table.ls-norme tbody th a { color: var(--acc-ink); }
table.ls-norme tbody th span, table.ls-norme td span { display: block; font-size: var(--t-small); color: var(--mut); margin-top: 4px; }
.ls-tech__nota { margin: 24px 0 0; font-size: var(--t-small); color: var(--mut); line-height: 1.6; max-width: 80ch; }
.ls-passi { counter-reset: passo; display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; margin: 0; padding: 0; list-style: none; }
.ls-passi { gap: 1px; background: var(--line); border: 1px solid var(--line); border-radius: var(--r); overflow: hidden; }
.ls-passi li { counter-increment: passo; display: grid; gap: 8px; padding: 28px; background: var(--cell-bg, var(--g)); align-content: start; }
.ls-passi li::before { content: counter(passo, decimal-leading-zero); font-family: var(--font-head); font-size: var(--t-display); font-weight: 700; color: var(--acc-ink); line-height: 1; }
.ls-passi b { font-size: var(--t-mid); }
.ls-passi span { font-size: var(--t-small); color: var(--mut); line-height: 1.6; }
@media (min-width: 960px) { .ls-passi { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.ls-recapiti h2, .ls-modulo h2 { margin-bottom: 24px; }
.ls-recapiti dl { display: grid; gap: 16px; margin: 0; }
.ls-recapiti dt { font-size: var(--t-eyebrow); letter-spacing: .1em; text-transform: uppercase; color: var(--mut); margin-bottom: 2px; }
.ls-recapiti dd { margin: 0; font-size: var(--t-mid); line-height: 1.5; }
.ls-recapiti dd a:hover { color: var(--acc-ink); }
.ls-recapiti .ls-recapiti__b2b { margin: 32px 0 0; padding-top: 16px; border-top: 1px solid var(--line); color: var(--mut); }
.ls-recapiti__b2b a, .ls-pg__due--modulo > div:first-child .ls-sez__nota a { color: var(--acc-ink); text-decoration: underline; text-underline-offset: .15em; }
/* Contact Form 7 */
.ls-modulo .wpcf7 { max-width: 640px; }
.ls-modulo fieldset { border: 0; padding: 0; margin: 0 0 32px; display: grid; gap: 16px; }
.ls-modulo legend { font-family: var(--font-head); text-transform: var(--case-head); font-weight: 600; font-size: var(--t-h3); margin-bottom: 16px; }
.ls-modulo .em-col { display: grid; gap: 6px; }
.ls-modulo .em-row { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; }
@media (min-width: 640px) { .ls-modulo .em-row { grid-template-columns: repeat(2, minmax(0, 1fr)); } .ls-modulo .em-md-12 { grid-column: 1 / -1; } }
.ls-modulo .wpcf7-form-control-wrap { display: block; }
.ls-modulo textarea { min-height: 140px; height: 200px; }
.ls-modulo p { font-size: var(--t-small); color: var(--mut); margin: 0; }
.ls-modulo p:has(> .wpcf7-form-control-wrap), .ls-modulo p:has(.wpcf7-checkbox) { font-size: var(--t-eyebrow); letter-spacing: .08em; text-transform: uppercase; color: var(--mut); font-weight: 500; margin: 4px 0 6px; }
.ls-modulo .wpcf7-list-item { display: inline-flex; align-items: center; gap: 8px; margin: 0 16px 0 0; min-height: 44px; }
.ls-modulo .wpcf7-list-item label { display: inline-flex; align-items: center; gap: 8px; color: var(--ink); }
.ls-modulo .wpcf7-acceptance .wpcf7-list-item { margin-bottom: 16px; }
.ls-modulo .wpcf7-acceptance a { color: var(--acc-ink); text-decoration: underline; }
.ls-modulo .wpcf7-spinner { display: none; }
.ls-modulo .wpcf7-not-valid-tip { display: block; margin-top: 4px; font-size: var(--t-small); color: var(--err); }
.ls-modulo .wpcf7-response-output { margin: 16px 0 0; padding: 12px 16px; border: 1px solid var(--line); border-left: 3px solid var(--acc); border-radius: var(--r); font-size: var(--t-mid); }
.ls-modulo .wpcf7-form.invalid .wpcf7-response-output { border-left-color: var(--err); }
.ls-modulo__manca { color: var(--mut); }
.ls-modulo__manca a { color: var(--acc-ink); text-decoration: underline; }
.ls-parla { background: var(--g2); border-top: 1px solid var(--line); }
.ls-parla__in { display: grid; gap: 24px; padding-block: var(--sez); }
.ls-parla h2 { max-width: 18ch; }
.ls-parla__contatti { display: grid; gap: 8px; font-size: var(--t-mid); align-content: center; }
.ls-parla__contatti a { min-height: 32px; display: inline-flex; align-items: center; }
.ls-parla__contatti a:hover { color: var(--acc-ink); }
.ls-parla__contatti span { color: var(--mut); font-size: var(--t-mid); }
@media (min-width: 960px) { .ls-parla__in { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 64px; } }

/* ---------- 12. Il ponte: carrello, cassa, account (markup di WooCommerce, vestito: liste, non tabelle) ---------- */
.ls-ponte-pg { padding-block: 0 var(--sez); }
.ls-ponte-pg > .ls-wrap { padding-top: 40px; }
.ls-ponte-pg__avviso { margin-bottom: 16px; padding: 14px 16px; border: 1px solid var(--line); border-left: 3px solid var(--acc); border-radius: var(--r); background: var(--g2); font-size: var(--t-mid); color: var(--mut); }
.ls-ponte-pg__avviso p:last-child { margin: 0; }
.ls-ponte-pg .woocommerce { display: block; }
.ls-ponte-pg .select2-container .select2-selection--single { width: 100%; min-height: var(--btn-h); padding: 12px; background: var(--g2); border: 1px solid var(--line); border-radius: var(--r); color: var(--ink); font: inherit; font-size: var(--t-body); }
.ls-ponte-pg .select2-container .select2-selection--single { display: flex; align-items: center; }
.ls-ponte-pg .select2-container--default .select2-selection--single .select2-selection__rendered { color: var(--ink); line-height: 1.4; padding-left: 0; }
.ls-ponte-pg .select2-container--default .select2-selection--single .select2-selection__arrow { height: 100%; }
.ls-ponte-pg .select2-container--default .select2-selection--single .select2-selection__arrow b { border-color: var(--mut) transparent transparent; }
.select2-dropdown { background: var(--g2); border: 1px solid var(--line); color: var(--ink); border-radius: 0; }
.select2-container--default .select2-results__option--highlighted[aria-selected] { background: var(--acc); color: var(--onacc); }
.select2-container--default .select2-search--dropdown .select2-search__field { background: var(--g); border: 1px solid var(--line); color: var(--ink); }
.ls-ponte-pg label .optional { color: var(--mut); font-size: var(--t-eyebrow); text-transform: none; letter-spacing: 0; }
.ls-ponte-pg .button.alt, .ls-ponte-pg .checkout-button { width: 100%; }
.ls-ponte-pg .wc-backward, .ls-ponte-pg .coupon .button, .ls-ponte-pg button[name="update_cart"] { background: transparent; color: var(--ink); border-color: var(--ink); }
.ls-ponte-pg .wc-backward:hover, .ls-ponte-pg .coupon .button:hover, .ls-ponte-pg button[name="update_cart"]:hover { background: var(--ink); color: var(--g); border-color: var(--ink); }
.ls-ponte-pg .form-row { margin: 0 0 16px; padding: 0; }
.ls-ponte-pg .form-row-first, .ls-ponte-pg .form-row-last { width: 100%; float: none; }
@media (min-width: 640px) { .ls-ponte-pg .woocommerce-billing-fields__field-wrapper, .ls-ponte-pg .woocommerce-shipping-fields__field-wrapper, .ls-ponte-pg .woocommerce-address-fields__field-wrapper { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 16px; } .ls-ponte-pg .form-row-wide, .ls-ponte-pg .form-row:not(.form-row-first):not(.form-row-last) { grid-column: 1 / -1; } }
.ls-ponte-pg .woocommerce-input-wrapper { display: block; }
.ls-ponte-pg .woocommerce-invalid input { border-color: var(--err); }
.ls-ponte-pg .woocommerce-form__label-for-checkbox, .ls-ponte-pg .woocommerce-terms-and-conditions-checkbox-text { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; color: var(--ink); }
.ls-ponte-pg .woocommerce-terms-and-conditions-wrapper .form-row { display: block; }
.ls-ponte-pg .woocommerce-terms-and-conditions-wrapper .form-row label { display: block; position: relative; padding-left: 32px; min-height: 24px; line-height: 1.5; }
.ls-ponte-pg .woocommerce-terms-and-conditions-wrapper .form-row label input[type="checkbox"] { position: absolute; left: 0; top: 2px; }
.ls-ponte-pg .woocommerce-terms-and-conditions-checkbox-text { display: inline; }
.ls-ponte-pg .screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.ls-ponte-pg h2, .ls-ponte-pg h3 { margin: 0 0 16px; font-size: var(--t-h3); }
/* Carrello: la tabella come lista */
.ls-ponte-pg .shop_table { width: 100%; border-collapse: collapse; font-size: var(--t-mid); }
.ls-ponte-pg .shop_table th, .ls-ponte-pg .shop_table td { padding: 16px 8px; border: 0; border-bottom: 1px solid var(--line); text-align: left; vertical-align: middle; background: transparent; }
.ls-ponte-pg .woocommerce-cart-form .shop_table thead { display: none; }
.ls-ponte-pg .woocommerce-cart-form .shop_table tr { display: grid; grid-template-columns: 44px 88px minmax(0, 1fr) auto; gap: 8px 16px; align-items: center; padding-block: 16px; border-bottom: 1px solid var(--line); }
.ls-ponte-pg .woocommerce-cart-form .shop_table td { display: block; padding: 0; border: 0; }
.ls-ponte-pg .woocommerce-cart-form .shop_table td.product-thumbnail img { width: 88px; height: 88px; object-fit: cover; background: var(--chiaro); }
.ls-ponte-pg .woocommerce-cart-form .shop_table td.product-price { display: none; }
.ls-ponte-pg .woocommerce-cart-form .shop_table td.product-quantity { grid-column: 4; }
.ls-ponte-pg .woocommerce-cart-form .shop_table td.product-subtotal { grid-column: 3 / 5; font-weight: 600; font-variant-numeric: tabular-nums; }
.ls-ponte-pg .woocommerce-cart-form .shop_table td.product-subtotal::before { content: "Subtotal: "; color: var(--mut); font-weight: 400; }
.ls-ponte-pg .product-name a { font-weight: 600; }
.ls-ponte-pg .product-name .variation { display: flex; flex-wrap: wrap; gap: 4px 8px; margin: 4px 0 0; font-size: var(--t-small); color: var(--mut); }
.ls-ponte-pg .product-name .variation dt, .ls-ponte-pg .product-name .variation dd { margin: 0; display: inline; }
.ls-ponte-pg .product-name .variation p { display: inline; margin: 0; }
.ls-ponte-pg .product-remove a { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; font-size: 22px; /* il glifo × : misura di un'icona, non della scala del testo */ color: var(--mut); }
.ls-ponte-pg .product-remove a:hover { color: var(--acc-ink); }
.ls-ponte-pg .product-quantity .quantity input { width: 72px; min-height: 44px; text-align: center; }
.ls-ponte-pg .woocommerce-cart-form .shop_table tr:has(td.actions) { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; border: 0; padding-top: 24px; }
.ls-ponte-pg .woocommerce-cart-form .shop_table td.actions { display: contents; }
.ls-ponte-pg .coupon { display: flex; flex-wrap: nowrap; flex: none; gap: 8px; align-items: center; }
.ls-ponte-pg .coupon label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); margin: 0; }
.ls-ponte-pg .coupon input { width: 200px; max-width: 100%; }
@media (max-width: 639px) {
	.ls-ponte-pg .woocommerce-cart-form .shop_table tr { grid-template-columns: 44px 72px minmax(0, 1fr); }
	.ls-ponte-pg .woocommerce-cart-form .shop_table td.product-thumbnail img { width: 72px; height: 72px; }
	.ls-ponte-pg .woocommerce-cart-form .shop_table td.product-quantity { grid-column: 3; }
	.ls-ponte-pg .woocommerce-cart-form .shop_table td.product-subtotal { grid-column: 3; }
	.ls-ponte-pg button[name="update_cart"] { width: 100%; }
}
/* Carrello: righe a sinistra, totali a destra (fissi), «You may also like» sotto a tutta larghezza */
.ls-ponte-pg--cart .woocommerce { display: grid; gap: 40px; }
.ls-ponte-pg--cart .woocommerce-notices-wrapper:empty { display: none; }
.ls-ponte-pg .cart-collaterals { display: contents; }
@media (min-width: 960px) { .ls-ponte-pg--cart .woocommerce { grid-template-columns: minmax(0, 1fr) 400px; align-items: start; } .ls-ponte-pg--cart .cross-sells, .ls-ponte-pg--cart .cart-empty, .ls-ponte-pg--cart .return-to-shop { grid-column: 1 / -1; } .ls-ponte-pg--cart .woocommerce-notices-wrapper, .ls-ponte-pg--cart .woocommerce-cart-form { grid-column: 1; } .ls-ponte-pg--cart .cart_totals { grid-column: 2; grid-row: 1 / span 2; position: sticky; top: calc(var(--bar-h) + 16px); } .ls-ponte-pg--cart .woocommerce > .ls-fiducia--cart { grid-column: 1; grid-row: 2; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 32px; margin-top: 0; } }   /* 15/10 finiture: la lista di fiducia (page-shop-cart.php la sposta da woocommerce_after_cart_totals a woocommerce_after_cart) sta sotto il carrello in due colonne; a telefono resta dopo il riepilogo */
.ls-ponte-pg .cart_totals { padding: 24px; background: var(--g2); border: 1px solid var(--line); border-radius: var(--r); }
.ls-ponte-pg .cart_totals .shop_table th, .ls-ponte-pg .cart_totals .shop_table td { padding: 12px 0; }
.ls-ponte-pg .cart_totals .shop_table th { width: 40%; color: var(--mut); font-weight: 500; }
.ls-ponte-pg .cart_totals .order-total td, .ls-ponte-pg .cart_totals .order-total th { font-size: var(--t-h3); font-weight: 600; color: var(--ink); border-bottom: 0; }
.ls-ponte-pg .cart_totals .order-total td .includes_tax, .ls-ponte-pg .woocommerce-checkout-review-order-table .order-total .includes_tax { display: block; font-size: var(--t-small); font-weight: 400; color: var(--mut); }
.ls-ponte-pg .cart_totals .woocommerce-shipping-methods { list-style: none; margin: 0; padding: 0; }
.ls-ponte-pg .cart_totals .woocommerce-shipping-methods li { display: flex; gap: 8px; align-items: center; }
.ls-ponte-pg .cart_totals .woocommerce-shipping-destination { font-size: var(--t-small); color: var(--mut); margin: 8px 0 0; }
.ls-ponte-pg .shipping-calculator-button { font-size: var(--t-small); color: var(--acc-ink); text-decoration: underline; }
.ls-ponte-pg .wc-proceed-to-checkout { margin-top: 24px; }
.ls-ponte-pg .cross-sells .products { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 16px; list-style: none; margin: 0; padding: 0; }
@media (min-width: 768px) { .ls-ponte-pg .cross-sells .products { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 40px var(--gap); } }
.ls-ponte-pg .cross-sells .products > li { list-style: none; }
.ls-ponte-pg .cart-empty { font-size: var(--t-lede); margin-bottom: 24px; }
.ls-ponte-pg .return-to-shop { margin: 0; }
/* Cassa */
/* Cassa: «Returning customer?» e «Have a coupon?» in una riga di testo, non due avvisi */
.ls-ponte-pg .woocommerce-form-login-toggle, .ls-ponte-pg .woocommerce-form-coupon-toggle { display: inline-block; margin: 0 24px 16px 0; }
.ls-ponte-pg .woocommerce-form-login-toggle .woocommerce-info, .ls-ponte-pg .woocommerce-form-coupon-toggle .woocommerce-info { margin: 0; padding: 0; border: 0; background: none; font-size: var(--t-small); color: var(--mut); display: inline; }
.ls-ponte-pg .woocommerce-form-coupon, .ls-ponte-pg .woocommerce-form-login.woocommerce-form { padding: 24px; background: var(--g2); border: 1px solid var(--line); border-radius: var(--r); margin-bottom: 32px; }
.ls-ponte-pg form.checkout { display: grid; gap: 48px; }
@media (min-width: 960px) { .ls-ponte-pg form.checkout { grid-template-columns: minmax(0, 1fr) 440px; grid-template-rows: auto 1fr; align-items: start; } }
.ls-ponte-pg form.checkout .col2-set { display: block; width: 100%; }
.ls-ponte-pg form.checkout .col2-set .col-1, .ls-ponte-pg form.checkout .col2-set .col-2 { float: none; width: 100%; }
.ls-ponte-pg form.checkout .col2-set .col-2 { margin-top: 32px; }
.ls-ponte-pg form.checkout #ship-to-different-address { font-size: var(--t-body); font-family: var(--font-body); text-transform: none; }
.ls-ponte-pg form.checkout #ship-to-different-address label { display: inline-flex; align-items: center; gap: 8px; color: var(--ink); min-height: 44px; margin: 0; font-size: var(--t-body); }
.ls-ponte-pg .woocommerce-additional-fields { margin-top: 32px; }
.ls-ponte-pg form.checkout #customer_details { grid-column: 1; grid-row: 1 / 3; }
.ls-ponte-pg #order_review_heading { grid-column: 2; grid-row: 1; margin: 0 0 16px; }
.ls-ponte-pg #order_review { grid-column: 2; grid-row: 2; align-self: start; padding: 24px; background: var(--g2); border: 1px solid var(--line); border-radius: var(--r); }
@media (min-width: 960px) { .ls-ponte-pg #order_review { position: sticky; top: calc(var(--bar-h) + 16px); } }
@media (max-width: 959px) { .ls-ponte-pg form.checkout #customer_details { grid-row: auto; } .ls-ponte-pg #order_review_heading, .ls-ponte-pg #order_review { grid-column: 1; grid-row: auto; } }
/* 15/10 finiture: il riepilogo degli errori (WooCommerce lo antepone al form) finiva nella cella libera della griglia — colonna 1, riga 3, sotto «Order notes», a ~1.100 px da «Place order». Va in cima a tutta larghezza; le due colonne scendono di una riga SOLO quando c'è (:has), così senza errori non resta una riga vuota col suo gap. */
.ls-ponte-pg form.checkout > :is(.woocommerce-NoticeGroup, .woocommerce-error) { grid-column: 1 / -1; grid-row: 1; margin: 0; }
@media (min-width: 960px) { .ls-ponte-pg form.checkout:has(> :is(.woocommerce-NoticeGroup, .woocommerce-error)) { grid-template-rows: auto auto 1fr; } .ls-ponte-pg form.checkout:has(> :is(.woocommerce-NoticeGroup, .woocommerce-error)) #customer_details { grid-row: 2 / 4; } .ls-ponte-pg form.checkout:has(> :is(.woocommerce-NoticeGroup, .woocommerce-error)) #order_review_heading { grid-row: 2; } .ls-ponte-pg form.checkout:has(> :is(.woocommerce-NoticeGroup, .woocommerce-error)) #order_review { grid-row: 3; } }
.ls-ponte-pg .woocommerce-checkout-review-order-table thead { display: none; }
.ls-ponte-pg .woocommerce-checkout-review-order-table th, .ls-ponte-pg .woocommerce-checkout-review-order-table td { padding: 12px 0; }
.ls-ponte-pg .woocommerce-checkout-review-order-table td.product-total, .ls-ponte-pg .woocommerce-checkout-review-order-table tfoot td { padding-left: 24px; text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.ls-ponte-pg .woocommerce-checkout-review-order-table .product-name .product-quantity { margin-left: 4px; white-space: nowrap; }
.ls-ponte-pg .woocommerce-checkout-review-order-table .product-name { color: var(--mut); font-size: var(--t-small); display: flex; align-items: center; gap: 12px; }
.ls-cassa__foto { display: block; width: 48px; height: 48px; flex: none; border-radius: var(--r); overflow: hidden; background: var(--chiaro); }
.ls-cassa__foto img { width: 100%; height: 100%; object-fit: cover; }
.ls-cassa__nome { color: var(--ink); }
.ls-cassa__fiducia { list-style: none; margin: 8px 0 24px; padding: 20px 0 0; border-top: 1px solid var(--line); display: grid; gap: 10px; font-size: var(--t-small); }
.ls-cassa__fiducia li { display: flex; align-items: center; gap: 10px; }
.ls-cassa__fiducia .ls-ic { width: 18px; height: 18px; color: var(--acc-ink); }
.ls-ponte-pg .woocommerce-checkout-review-order-table .product-name .product-quantity { color: var(--ink); }
.ls-ponte-pg .woocommerce-checkout-review-order-table tfoot th { color: var(--mut); font-weight: 500; }
.ls-ponte-pg .woocommerce-checkout-review-order-table .order-total th, .ls-ponte-pg .woocommerce-checkout-review-order-table .order-total td { font-size: var(--t-h3); font-weight: 600; color: var(--ink); border-bottom: 0; }
.ls-ponte-pg .wc_payment_methods { list-style: none; margin: 24px 0; padding: 0; display: grid; gap: 8px; }
.ls-ponte-pg .wc_payment_method { padding: 12px 16px; border: 1px solid var(--line); border-radius: var(--r); background: var(--g); }
.ls-ponte-pg .wc_payment_method > label { display: inline-flex; align-items: center; gap: 12px; margin: 0; color: var(--ink); font-size: var(--t-mid); min-height: 32px; cursor: pointer; }
.ls-ponte-pg .wc_payment_method > label img { max-height: 24px; width: auto; }
.ls-ponte-pg .payment_box { margin-top: 12px; padding: 12px 16px; background: var(--g2); font-size: var(--t-small); color: var(--mut); }
.ls-ponte-pg .payment_box p:last-child { margin: 0; }
.ls-ponte-pg .woocommerce-privacy-policy-text { font-size: var(--t-small); color: var(--mut); }
.ls-ponte-pg .woocommerce-privacy-policy-text a, .ls-ponte-pg .woocommerce-terms-and-conditions-link { color: var(--acc-ink); text-decoration: underline; }
.ls-ponte-pg .place-order { margin-top: 16px; }
.ls-ponte-pg #place_order { width: 100%; }
.ls-ponte-pg .woocommerce-terms-and-conditions { display: none; }
.ls-ponte-pg .blockUI.blockOverlay { background: var(--g) !important; opacity: .6 !important; }
/* Conferma d'ordine */
.ls-ponte-pg .woocommerce-thankyou-order-received { font-size: var(--t-lede); margin-bottom: 24px; }
.ls-ponte-pg .woocommerce-thankyou-order-details { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 1px; background: var(--line); border: 1px solid var(--line); list-style: none; margin: 0 0 32px; padding: 0; }
.ls-ponte-pg .woocommerce-thankyou-order-details li { background: var(--g2); padding: 16px; font-size: var(--t-small); color: var(--mut); display: grid; gap: 4px; }
.ls-ponte-pg .woocommerce-thankyou-order-details li strong { font-size: var(--t-body); color: var(--ink); }
.ls-ponte-pg .woocommerce-bacs-bank-details { padding: 24px; border: 1px solid var(--line); border-left: 3px solid var(--acc); border-radius: var(--r); background: var(--g2); margin-bottom: 32px; }
.ls-ponte-pg .wc-bacs-bank-details { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.ls-ponte-pg .woocommerce-order-details, .ls-ponte-pg .woocommerce-customer-details { margin-top: 32px; }
.ls-ponte-pg .woocommerce-customer-details address { padding: 16px; background: var(--g2); border: 1px solid var(--line); border-radius: var(--r); line-height: 1.7; }
.ls-ponte-pg .woocommerce-columns--addresses { display: grid; gap: 24px; }
@media (min-width: 640px) { .ls-ponte-pg .woocommerce-columns--addresses { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
/* Mostra/nascondi password (WooCommerce): l'icona è nostra, il CSS di Woo non c'è */
.ls .woocommerce .password-input { position: relative; display: block; }
.ls .woocommerce .password-input input { padding-right: 52px; }
.ls .woocommerce .show-password-input { position: absolute; right: 4px; top: 50%; width: 44px; height: 44px; margin-top: -22px; border: 0; padding: 0; background: transparent no-repeat center / 22px url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239C958A' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'><path d='M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7S2 12 2 12Z'/><circle cx='12' cy='12' r='3'/></svg>"); cursor: pointer; }
.ls .woocommerce .show-password-input::before, .ls .woocommerce .show-password-input::after { content: none; }
.ls .woocommerce .show-password-input.display-password { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E07A2A' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'><path d='M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7S2 12 2 12Z'/><circle cx='12' cy='12' r='3'/><path d='M4 4l16 16'/></svg>"); }
/* Account: accesso a sinistra, i due pannelli (trade, aiuto) a destra */
.ls-account__due { display: grid; gap: 40px; }
@media (min-width: 960px) { .ls-account__due { grid-template-columns: minmax(0, 1fr) 400px; align-items: start; } }
.ls-account__lato { display: grid; gap: 16px; }
.ls-account__lato h2 { font-size: var(--t-h3); margin: 0 0 8px; }
.ls-account__lato p { color: var(--mut); font-size: var(--t-small); margin: 0 0 12px; }
.ls-account__lato .ls-eyebrow { font-size: var(--t-micro); margin-bottom: 12px; }
.ls-ponte-pg--account .woocommerce > h2:first-child { display: none; }
.ls-account__lato p:last-child { margin: 0; }
.ls-account__lato p a { color: var(--acc-ink); text-decoration: underline; text-underline-offset: .15em; }
.ls-ponte-pg .woocommerce-form-login { max-width: 480px; padding: 24px; background: var(--g2); border: 1px solid var(--line); border-radius: var(--r); }
.ls-ponte-pg .woocommerce-form-login .woocommerce-form-login__rememberme { display: inline-flex; align-items: center; gap: 8px; color: var(--ink); min-height: 44px; }
.ls-ponte-pg .woocommerce-form-login .woocommerce-form-login__submit { display: flex; width: 100%; margin-top: 16px; }
.ls-ponte-pg .woocommerce-LostPassword { margin: 16px 0 0; font-size: var(--t-small); }
.ls-ponte-pg .woocommerce-LostPassword a { color: var(--acc-ink); text-decoration: underline; }
.ls-ponte-pg .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0 0 32px; padding: 0; display: flex; flex-wrap: wrap; gap: 4px; border-bottom: 1px solid var(--line); }
.ls-ponte-pg .woocommerce-MyAccount-navigation a { display: inline-flex; align-items: center; min-height: 44px; padding-inline: 12px; border-bottom: 2px solid transparent; margin-bottom: -1px; font-size: var(--t-small); font-weight: 500; }
.ls-ponte-pg .woocommerce-MyAccount-navigation .is-active a { color: var(--acc-ink); border-bottom-color: var(--acc); }
.ls-ponte-pg .woocommerce-MyAccount-content { max-width: 800px; }
.ls-ponte-pg .woocommerce-MyAccount-content a:not(.button) { color: var(--acc-ink); text-decoration: underline; }
.ls-ponte-pg .woocommerce-orders-table td, .ls-ponte-pg .woocommerce-orders-table th { padding: 12px 8px; }
.ls-ponte-pg .woocommerce-Addresses { display: grid; gap: 24px; }
@media (min-width: 640px) { .ls-ponte-pg .woocommerce-Addresses { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.ls-ponte-pg .woocommerce-Address address { padding: 16px; background: var(--g2); border: 1px solid var(--line); border-radius: var(--r); line-height: 1.7; margin-top: 12px; }
.ls-ponte-pg .woocommerce-Address-title { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; }
.ls-ponte-pg .woocommerce-Address-title h2 { margin: 0; }
.ls-ponte-pg .woocommerce-Address-title .edit { font-size: var(--t-small); }

/* ---------- 13. Finezza: il rivelarsi allo scroll (solo con JS; senza, tutto è visibile) ---------- */
.ls-reveal { opacity: 0; transform: translateY(12px); transition: opacity 500ms var(--ease), transform 500ms var(--ease); transition-delay: var(--ritardo, 0ms); will-change: opacity, transform; }
.ls-reveal.is-in { opacity: 1; transform: none; will-change: auto; }
@media (prefers-reduced-motion: reduce) { .ls-reveal { opacity: 1; transform: none; transition: none; } .ls-btn:hover, .ls-chip:hover, .ls-scheda__colore-foto:hover, .ls-foot__col li a:hover { transform: none; } }

/* ---------- 14. Home V5, sulla struttura di Zamberlan (29/09/2026) ---------- */
.ls-sez__nota--larga { max-width: 900px; font-size: var(--t-body); }
/* Le tre tessere delle linee: 448×560, packshot alto 380, banda sotto */
.ls-tessere { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; }
@media (min-width: 960px) { .ls-tessere { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.ls-tessera { display: grid; grid-template-rows: minmax(0, 1fr) auto; background: var(--chiaro); border-radius: var(--r); overflow: hidden; min-height: 420px; }
@media (min-width: 960px) { .ls-tessera { min-height: 520px; } }
.ls-tessera__foto { display: block; position: relative; padding: 32px; }
.ls-tessera__foto img { width: 100%; height: 100%; max-height: 380px; object-fit: contain; transition: transform 600ms var(--ease); }
@media (max-width: 639px) { .ls-tessera { min-height: 0; } .ls-tessera__foto { padding: 16px; } .ls-tessera__foto img { max-height: 280px; } }
.ls-tessera:hover .ls-tessera__foto img { transform: scale(1.04); }
.ls-tessera__banda { min-height: 68px; display: flex; align-items: center; gap: 12px; padding: 12px 20px; background: var(--g2); color: var(--ink); }
.ls-tessera__banda b { font-family: var(--font-head); text-transform: var(--case-head); letter-spacing: .04em; font-size: var(--t-h3); font-weight: 600; }
.ls-tessera__banda > span { font-size: var(--t-label); color: var(--mut); }
.ls-tessera__banda .ls-ic { margin-left: auto; color: var(--acc-ink); transition: transform var(--t-fast) var(--ease); }
.ls-tessera:hover .ls-tessera__banda .ls-ic { transform: translateX(3px); }
/* «Pick the level first»: lista a sinistra con barra arancio, fotone + dati a destra */
.ls-scelta__in { display: grid; grid-template-columns: minmax(0, 1fr); gap: 40px; }
@media (min-width: 960px) { .ls-scelta__in { grid-template-columns: 400px minmax(0, 1fr); gap: 96px; align-items: start; } }
.ls-scelta { background: var(--g2); border-block: 1px solid var(--line); --cell-bg: var(--g2); }
.ls-scelta__voce.is-on { background: var(--g); }
.ls-scelta__anche { margin: 0 0 20px; font-size: var(--t-small); color: var(--mut); }
.ls-scelta__anche a { color: var(--ink); text-decoration: underline; text-underline-offset: .15em; }
.ls-scelta__anche a:hover { color: var(--acc-ink); }
.ls-scelta__testo h2 { margin-bottom: 32px; }
.ls-scelta__pannello .ls-scelta__dati { padding-top: 4px; }
.ls-scelta__lista { display: grid; gap: 4px; }
.ls-scelta__voce { display: grid; gap: 2px; width: 100%; text-align: left; padding: 14px 20px; border-left: 3px solid transparent; opacity: .55; transition: opacity var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease), background var(--t-fast) var(--ease); }
.ls-scelta__voce b { font-size: var(--t-body); font-weight: 500; }
.ls-scelta__voce span { font-size: var(--t-label); color: var(--mut); }
.ls-scelta__voce:hover { opacity: .85; }
.ls-scelta__voce.is-on { opacity: 1; border-left-color: var(--acc); background: var(--g2); }
.ls-scelta__pannello { display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; }
.ls-scelta__pannello[hidden] { display: none; }
@media (min-width: 640px) { .ls-scelta__pannello { grid-template-columns: minmax(0, 560fr) minmax(0, 340fr); gap: 40px; align-items: start; } }
.ls-scelta__foto { display: block; aspect-ratio: 1; background: var(--chiaro); border-radius: var(--r); overflow: hidden; padding: 40px; }
.ls-scelta__foto img { width: 100%; height: 100%; object-fit: contain; transition: transform 600ms var(--ease); }
.ls-scelta__foto:hover img { transform: scale(1.04); }
.ls-scelta__dati p { font-size: var(--t-mid); color: var(--mut); line-height: 1.6; margin: 0 0 20px; }
.ls-scelta__modello { font-family: var(--font-head); text-transform: var(--case-head); letter-spacing: .04em; font-size: var(--t-h2s); font-weight: 600; color: var(--ink); margin: 0 0 12px; }
.ls-scelta__modello span { color: var(--mut); font-weight: 500; }
.ls-scelta__cifre { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 24px; margin: 0 0 24px; padding: 20px 0; border-block: 1px solid var(--line); }
.ls-scelta__cifre > div { min-width: 0; }
.ls-scelta__cifre dt { font-size: var(--t-eyebrow); letter-spacing: .14em; text-transform: uppercase; color: var(--mut); font-weight: 500; overflow-wrap: anywhere; }   /* 15/10 finiture: era nowrap e «Altezza del gambale» (171 px) usciva dalla cella (129) sopra «Taglie» */
.ls-scelta__cifre dd { margin: 2px 0 0; font-size: var(--t-mid); font-weight: 500; }
/* Banda enti: sostituisce «Press & Reviews» con la prova terza vera */
.ls-enti-banda { background: var(--g2); border-block: 1px solid var(--line); }
.ls-enti-banda__in { display: flex; flex-wrap: wrap; align-items: center; gap: 24px 48px; padding-block: 28px; }
.ls-enti-banda p { margin: 0; font-size: var(--t-eyebrow); letter-spacing: .15em; text-transform: uppercase; color: var(--mut); font-weight: 600; }
.ls-enti-banda ul { display: flex; flex-wrap: wrap; gap: 16px 40px; }
.ls-enti-banda li { display: grid; gap: 2px; }
.ls-enti-banda b { font-family: var(--font-head); text-transform: var(--case-head); font-size: var(--t-h3); font-weight: 600; letter-spacing: .04em; }
.ls-enti-banda span { font-size: var(--t-eyebrow); color: var(--mut); }
/* «All models» con tab */
.ls-tabs { display: flex; gap: 32px; border-bottom: 1px solid var(--line); margin-bottom: 40px; overflow-x: auto; scrollbar-width: none; }
.ls-tabs__voce { flex: none; padding: 12px 0; font-size: var(--t-mid); font-weight: 500; color: var(--mut); border-bottom: 2px solid transparent; margin-bottom: -1px; transition: color var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease); }
.ls-tabs__voce:hover { color: var(--ink); }
.ls-tabs__voce.is-on { color: var(--ink); border-bottom-color: var(--acc); }
.ls-modelli__pannello[hidden] { display: none; }
.ls-modelli__intro { max-width: 600px; margin: 0 0 var(--blocco); font-size: var(--t-mid); color: var(--mut); }
.ls-griglia--stretta { gap: 48px 24px; }
.ls-modelli .ls-sez__link { margin-top: 24px; }
/* Fotone full-bleed 1440×720: la foto del 1962 intera */
.ls-fotone { position: relative; min-height: 640px; display: grid; align-items: end; background: var(--g2); isolation: isolate; }
.ls-fotone__media { position: absolute; inset: 0; overflow: hidden; z-index: -1; }
.ls-fotone__media img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) contrast(1.05); }
.ls-fotone__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(20,19,17,.35) 0%, rgba(20,19,17,.45) 50%, rgba(20,19,17,.85) 100%); }
.ls-fotone__copy { width: 100%; max-width: var(--wrap); margin-inline: auto; padding: 80px var(--gut) 72px; display: grid; justify-items: start; gap: 16px; }
.ls-fotone__copy > * { max-width: 600px; }
.ls-fotone__copy .ls-eyebrow { color: var(--ink); margin: 0; }
.ls-fotone__copy h2 { font-size: var(--t-fotone); }
.ls-fotone__copy p { margin: 0; font-size: var(--t-body); line-height: 1.6; max-width: 560px; color: var(--ink); }
.ls-fotone__copy .ls-btn { margin-top: 8px; }
.ls-btn--chiaro { color: var(--ink); border-color: var(--ink); }
/* Due mezze tessere 718×450, gap 4: dettagli veri della pelle e della suola */
.ls-split { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; margin-top: 8px; }
@media (min-width: 768px) { .ls-split { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.ls-split__tessera { position: relative; display: block; min-height: 450px; overflow: hidden; background: var(--chiaro); isolation: isolate; }
.ls-split__tessera img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 800ms var(--ease); }
.ls-split__tessera:hover img { transform: scale(1.03); }
.ls-split__tessera::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(20,19,17,0) 20%, rgba(20,19,17,.92) 100%); }
.ls-split__copy { position: absolute; left: 40px; right: 40px; bottom: 40px; }
.ls-split__tessera:first-child .ls-split__copy { left: max(40px, calc(50vw - 680px)); }
.ls-split__copy { z-index: 1; display: grid; gap: 10px; max-width: 420px; color: var(--ink); }
.ls-split__copy b { font-family: var(--font-head); text-transform: var(--case-head); letter-spacing: .03em; font-size: var(--t-fotone); font-weight: 600; line-height: 1.02; }
.ls-split__copy > span { font-size: var(--t-mid); line-height: 1.55; }
.ls-split__link { display: inline-flex; align-items: center; gap: 8px; font-size: var(--t-label); font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--acc-ink); }
.ls-split__link .ls-ic { width: 18px; height: 18px; }
/* La banda crema: una per pagina (Zamberlan alterna i toni), coi token invertiti */
.ls-sez--crema { background: #F3F1EC; --ink: #141311; --mut: #625C52; --line: rgba(20,19,17,.14); --g2: #E9E6DF; --g: #F3F1EC; --acc-ink: #BD590D; --chiaro: #F3F1EC; --cell-bg: #F3F1EC; color: var(--ink); }
.ls-sez--crema .ls-card__ph, .ls-sez--crema .ls-mini__foto, .ls-sez--crema .ls-mega__foto { border: 1px solid rgba(20,19,17,.1); }
.ls-sez--crema ::selection { background: var(--acc); color: #fff; }
.ls-linea-crema__in { display: grid; grid-template-columns: minmax(0, 1fr); gap: 40px; }
@media (min-width: 960px) { .ls-linea-crema__in { grid-template-columns: minmax(0, 560fr) minmax(0, 640fr); gap: 96px; align-items: center; } }
.ls-linea-crema__foto { display: block; aspect-ratio: 1; background: #F3F1EC; border: 1px solid rgba(20,19,17,.1); border-radius: var(--r); padding: 48px; overflow: hidden; }
.ls-linea-crema__foto img { width: 100%; height: 100%; object-fit: contain; transition: transform 600ms var(--ease); }
.ls-linea-crema__foto:hover img { transform: scale(1.04); }
.ls-linea-crema__testo h2 { font-size: var(--t-h2); margin-bottom: 16px; }
.ls-linea-crema__p { font-size: var(--t-body); line-height: 1.6; color: var(--mut); max-width: 520px; margin: 0 0 20px; }
.ls-linea-crema__livelli { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 32px; }
.ls-mini { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin: 0 0 24px; }
.ls-mini a { display: grid; gap: 4px; }
.ls-mini__foto { display: block; position: relative; aspect-ratio: 1; background: #F3F1EC; border: 1px solid rgba(20,19,17,.1); border-radius: var(--r); overflow: hidden; margin-bottom: 6px; }
.ls-mini__foto img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; padding: 8%; transition: transform 600ms var(--ease); }
.ls-mini a:hover .ls-mini__foto img { transform: scale(1.04); }
.ls-mini b { font-size: var(--t-small); font-weight: 500; }
.ls-mini > li > a > span:last-child { font-size: var(--t-label); color: var(--mut); }
/* Certificazioni: editoriale a due metà (testo su raised + griglia 3×2 degli enti) */
.ls-cert-split__in { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; }
@media (min-width: 960px) { .ls-cert-split__in { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.ls-cert-split__testo { background: var(--g2); padding: 56px 48px; display: grid; align-items: center; border-radius: var(--r); }
.ls-cert-split__testo > div { max-width: 560px; }
.ls-cert-split__testo h2 { font-size: var(--t-fotone); margin-bottom: 16px; }
.ls-cert-split__testo p:not(.ls-eyebrow) { font-size: var(--t-body); line-height: 1.6; color: var(--mut); margin: 0 0 28px; max-width: 480px; }
.ls-cert-split__enti { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
@media (min-width: 640px) { .ls-cert-split__enti { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.ls-cert-split__enti li { background: var(--g2); border-radius: var(--r); padding: 24px; display: grid; gap: 6px; align-content: center; min-height: 160px; }
.ls-cert-split__enti b { font-family: var(--font-head); text-transform: var(--case-head); font-size: var(--t-h2s); font-weight: 600; letter-spacing: .04em; }
.ls-cert-split__enti span { font-size: var(--t-label); color: var(--mut); line-height: 1.5; }
/* USP in fondo, senza cornice, come Zamberlan */
.ls-usp { padding-block: 24px 0; }
.ls-servizio--usp { background: none; border: 0; gap: 24px; }
.ls-servizio--usp li { background: none; padding: 40px 0; flex-direction: column; align-items: center; text-align: center; gap: 12px; }
.ls-servizio--usp li > .ls-ic { width: 24px; height: 24px; margin: 0; }
.ls-servizio--usp b { font-size: var(--t-small); font-weight: 600; }
/* Archivio: testa 440 con la tessera del modello di punta a destra */
.ls-arch__testa { position: relative; background: var(--g2); border-bottom: 1px solid var(--line); overflow: hidden; }
.ls-arch__testa-in { display: grid; grid-template-columns: minmax(0, 1fr); gap: 32px; padding-block: 24px 40px; }
@media (min-width: 960px) { .ls-arch__testa-in { grid-template-columns: minmax(0, 1fr) 420px; min-height: 420px; padding-block: 24px 0; align-items: end; } }
.ls-arch__testa .ls-crumb { margin-bottom: 40px; }
.ls-arch__testa-testo { padding-bottom: 40px; align-self: stretch; display: flex; flex-direction: column; }
.ls-arch__testa-testo .ls-crumb { margin-bottom: auto; padding-bottom: 32px; }
.ls-arch__testa--ricerca .ls-arch__testa-in { min-height: 0; }
.ls-arch__testa h1 { font-size: var(--t-h1); max-width: 20ch; }
.ls-arch__testa .ls-lede { font-size: var(--t-lede); max-width: 560px; margin-top: 16px; }
.ls-arch__pack { display: none; }
@media (min-width: 960px) { .ls-arch__pack { display: block; align-self: end; height: 330px; width: 420px; margin-bottom: 24px; background: var(--chiaro); border-radius: var(--r); overflow: hidden; padding: 24px 40px 0; } .ls-arch__pack img { width: 100%; height: 100%; object-fit: contain; object-position: center bottom; } }
@media (min-width: 960px) { .ls-arch .ls-griglia { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 48px 24px; } }
@media (min-width: 1100px) { .ls-arch .ls-griglia { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (min-width: 1240px) { .ls-arch .ls-griglia { grid-template-columns: repeat(5, minmax(0, 1fr)); } }

/* ---------- 15. Scheda V7 — 15/10/2026: l'impianto della scheda in produzione (Ecomus, misurato: a 1440 due colonne 643/643 con gap 54, foto 643, nome e prezzo 28, quantità 174×49 + bottone 49, sotto il form «Delivery & Return», SKU · Category · Brand, «Made to order»; a 390 foto 360 e miniature 64 in fila), coi nostri token, su crema. UN template per tutte le linee. ---------- */
.ls-scheda--chiara { background: #F3F1EC; padding-top: 24px; }
.ls-scheda--chiara .ls-crumb { margin-bottom: 32px; font-size: var(--t-small); }
.ls-scheda--chiara .ls-scheda__sopra { grid-template-columns: minmax(0, 1fr); gap: 40px; padding-block: 0 80px; }
/* A desktop resta ferma la GALLERIA (la colonna corta), non il sommario: il sommario coi blocchi dei colleghi (kit, fiducia) è il più alto dei due */
@media (min-width: 960px) { .ls-scheda--chiara .ls-scheda__sopra { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 54px; align-items: start; } .ls-scheda--chiara .ls-scheda__pannello { position: static; } .ls-scheda--chiara .ls-gal { position: sticky; top: calc(var(--bar-h) + 24px); } }
/* 15/10 finiture: sotto la galleria restavano 310-440 px vuoti (galleria 893/803, sommario 1.202-1.226). Due mosse: ① «Delivery & Return» + SKU escono dal sommario in .ls-scheda__sottogal, dentro .ls-scheda__col1 insieme alla galleria — a telefono il contenitore è display:contents e l'ordine lo dà `order` (galleria → sommario → consegna, come prima); ② a desktop la foto grande è 4:5 (613×766) invece di 1:1: senza, i modelli con una foto sola (niente miniature) restavano a 180-210 px di scarto. Provato prima con la griglia a due righe (sommario su 1/3): la riga in più si prendeva metà dello scarto e apriva un buco di 70-127 px FRA le foto e la consegna. */
.ls-scheda__col1 { display: contents; }
.ls-scheda__pannello { order: 2; }
.ls-scheda__sottogal { order: 3; }
.ls-scheda__sottogal .ls-scheda__dr { margin-top: 0; }
@media (min-width: 960px) { .ls-scheda--chiara .ls-scheda__col1 { display: block; position: sticky; top: calc(var(--bar-h) + 24px); } .ls-scheda--chiara .ls-gal { position: static; } .ls-scheda--chiara .ls-scheda__sottogal { margin-top: 24px; } }
/* Galleria: foto grande quadrata + miniature 80 px (72 a telefono) in fila sotto, scorrevoli senza barra; la miniatura scelta col bordo inchiostro (fabbrica.js mette `is-on`) */
.ls-scheda--chiara .ls-gal { gap: 10px; }
.ls-scheda--chiara .ls-gal__main { aspect-ratio: 1; background: #F3F1EC; border: 1px solid rgba(20,19,17,.08); border-radius: 8px; overflow: hidden; margin: 0; }
@media (min-width: 960px) { .ls-scheda--chiara .ls-gal__main { aspect-ratio: 4 / 5; } }   /* 15/10 finiture: 4:5 a desktop (613×766), DOPO la regola 1:1 qui sopra — stessa specificità, vince l'ultima; messa prima, non attaccava */
.ls-scheda--chiara .ls-gal__main img { width: 100%; height: 100%; object-fit: contain; }
.ls-gal__mini { display: flex; gap: 8px; margin: 0; padding: 0; list-style: none; overflow-x: auto; scrollbar-width: none; }
.ls-gal__mini::-webkit-scrollbar { display: none; }
.ls-gal__mini li { flex: none; }
.ls .ls-gal__thumb { display: block; width: 80px; height: 80px; padding: 0; margin: 0; background: #F3F1EC; border: 1px solid rgba(20,19,17,.14); border-radius: var(--r); overflow: hidden; cursor: pointer; transition: border-color var(--t-fast) var(--ease); }
.ls-gal__thumb img { display: block; width: 100%; height: 100%; object-fit: contain; }
.ls .ls-gal__thumb:is(:hover, :focus-visible) { border-color: var(--ink); }
.ls .ls-gal__thumb.is-on { border-color: var(--ink); box-shadow: inset 0 0 0 1px var(--ink); }
@media (max-width: 639px) { .ls .ls-gal__thumb { width: 72px; height: 72px; } }
/* Sommario: categoria 14 grigio, nome a --t-h1 (40 a 1440, come le altre pagine) nel formato della card («CERVINO Level 2» + colore in grigio), prezzo 28/400 + «incl. VAT» 14, testo breve 15 */
.ls-scheda--chiara .ls-scheda__pannello { padding-top: 0; gap: 0; font-size: var(--t-small); }
.ls-scheda__cat { margin: 0 0 10px; font-size: var(--t-small); color: var(--mut); }
.ls-scheda__cat a { text-decoration: underline; text-underline-offset: .15em; }
.ls-scheda--chiara .ls-scheda__nome { font-size: var(--t-h1); font-weight: 500; line-height: 1.12; margin: 0 0 14px; text-wrap: balance; }
.ls-scheda--chiara .ls-scheda__nome .ls-scheda__colore { color: var(--mut); font-weight: 400; }
.ls-scheda--chiara .ls-scheda__prezzo { padding: 0; margin: 0 0 25px; align-items: baseline; gap: 10px; }
.ls-scheda--chiara .ls-scheda__prezzo .price { font-size: var(--t-nome); font-weight: 400; margin: 0; line-height: 1; }
/* 🪤 `p.price` porta un `margin-bottom: 28px` di WooCommerce: dentro un flex non collassa
   e il blocco prezzo misurava 71 px invece di 28. Lo spazio sotto lo dà il contenitore. */
.ls-scheda__prezzo .price { margin: 0; }
.ls-scheda--chiara .ls-scheda__prezzo > span { font-size: var(--t-small); color: var(--mut); }
.ls-scheda--chiara .ls-scheda__breve { max-height: none; margin: 0 0 25px; font-size: var(--t-mid); line-height: 1.6; color: var(--ink); }
.ls-scheda--chiara .ls-scheda__breve p { margin: 0; color: var(--ink); }
/* Taglie: etichetta 14, pillole con bordo grigio; quantità 174×49 su grigio + bottone 49 pieno */
.ls-scheda--chiara .ls-scheda__acquisto .variations th { font-size: var(--t-small); margin-bottom: 12px; text-transform: capitalize; }
.ls .ls-scheda--chiara .ls-scheda__acquisto .wcboost-variation-swatches__wrapper { display: flex; flex-wrap: wrap; gap: 8px; }
.ls .ls-scheda--chiara .ls-scheda__acquisto .wcboost-variation-swatches__item, .ls .ls-scheda--chiara .ls-scheda__acquisto .wcboost-variation-swatches--round .wcboost-variation-swatches__item { width: auto; min-width: 46px; min-height: 42px; padding: 0 12px; font-size: var(--t-label); border: 1px solid rgba(20,19,17,.14); border-radius: 4px; background: #fff; color: var(--ink); }
.ls .ls-scheda--chiara .ls-scheda__acquisto .wcboost-variation-swatches__item:hover { border-color: var(--ink); background: #fff; }
.ls .ls-scheda--chiara .ls-scheda__acquisto .wcboost-variation-swatches__item.selected { background: var(--ink); color: #F3F1EC; border-color: var(--ink); }
.ls .ls-scheda--chiara .ls-scheda__acquisto .wcboost-variation-swatches__item--disabled, .ls .ls-scheda--chiara .ls-scheda__acquisto .wcboost-variation-swatches__item.disabled { opacity: .4; background: repeating-linear-gradient(135deg, transparent 0 6px, rgba(20,19,17,.12) 6px 7px); }
.ls-scheda--chiara .ls-scheda__acquisto .single_variation_wrap { margin-top: 24px; }
.ls-scheda--chiara .ls-scheda__acquisto .woocommerce-variation-add-to-cart { display: flex; gap: 8px; align-items: stretch; }
.ls-scheda--chiara .ls-scheda__acquisto .quantity { display: flex; align-items: stretch; flex: none; width: 150px; min-height: 48px; background: #fff; border: 1px solid rgba(20,19,17,.14); border-radius: 4px; overflow: hidden; }
.ls .ls-scheda--chiara .ls-scheda__acquisto .ls-qty { flex: none; width: 44px; display: inline-flex; align-items: center; justify-content: center; font-size: var(--t-lede); line-height: 1; color: #141311; transition: background var(--t-fast) var(--ease); }
.ls .ls-scheda--chiara .ls-scheda__acquisto .ls-qty:hover { background: #E9E6DF; }
.ls-scheda--chiara .ls-scheda__acquisto .quantity .screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.ls .ls-scheda--chiara .ls-scheda__acquisto .quantity input[type="number"] { flex: 1; width: 100%; min-width: 0; min-height: 46px; border: 0; background: transparent; color: #141311; text-align: center; font-size: var(--t-mid); font-weight: 500; padding: 0 4px; -moz-appearance: textfield; appearance: textfield; }
.ls-scheda--chiara .ls-scheda__acquisto .quantity input[type="number"]::-webkit-inner-spin-button, .ls-scheda--chiara .ls-scheda__acquisto .quantity input[type="number"]::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
/* Il bottone d'acquisto e quello della barra fissa (fabbrica.js) sono LO STESSO oggetto di .ls-btn (§7): 48 px, raggio --r, 13 px maiuscolo spaziato, accento pieno. Una regola sola per tutti e due. */
.ls-scheda--chiara .ls-scheda__acquisto .single_add_to_cart_button, .ls .ls-barra-acq__b { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: var(--btn-h); padding: 0 24px; background: var(--acc); color: var(--onacc); border: 1px solid var(--acc); border-radius: 2px; font: inherit; font-size: var(--t-label); font-weight: 600; letter-spacing: .08em; text-transform: uppercase; line-height: 1; cursor: pointer; transition: background var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease), transform var(--t-fast) var(--ease), box-shadow var(--t-fast) var(--ease); }
.ls-scheda--chiara .ls-scheda__acquisto .single_add_to_cart_button { flex: 1; }
.ls-scheda--chiara .ls-scheda__acquisto .single_add_to_cart_button:is(:hover, :focus-visible), .ls .ls-barra-acq__b:is(:hover, :focus-visible) { background: var(--acc-hover); border-color: var(--acc-hover); transform: translateY(-1px); box-shadow: 0 6px 18px rgba(189,89,13,.28); }
.ls-scheda--chiara .ls-scheda__acquisto .single_add_to_cart_button:active, .ls .ls-barra-acq__b:active { transform: translateY(0) scale(.985); box-shadow: none; }
/* Senza taglia scelta WooCommerce lo marca «disabled»: resta acceso come in produzione (il clic dice di scegliere la taglia), non un bottone spento */
.ls-scheda--chiara .ls-scheda__acquisto .single_add_to_cart_button.disabled, .ls-scheda--chiara .ls-scheda__acquisto .single_add_to_cart_button:disabled { opacity: 1; cursor: pointer; }
.ls-scheda--chiara .ls-scheda__hint { margin: 8px 0 0; font-size: var(--t-small); color: var(--mut); }
/* «Delivery & Return»: in produzione apre una modale; qui un <details> con i testi di consegna e reso (dati da inc/azienda.php). I tre blocchi di servizio statici sono spariti: la riga di fiducia (inc/ls-fiducia.php) dice le stesse cose. */
.ls-scheda__dr { margin: 20px 0 0; border-top: 1px solid rgba(20,19,17,.1); border-bottom: 1px solid rgba(20,19,17,.1); }
.ls-scheda__dr summary { display: flex; align-items: center; gap: 12px; min-height: 48px; padding-block: 10px; list-style: none; cursor: pointer; font-size: var(--t-small); font-weight: 600; color: var(--ink); }
.ls-scheda__dr summary::-webkit-details-marker { display: none; }
.ls-scheda__dr summary > span { flex: 1; }
.ls-scheda__dr summary .ls-ic { width: 20px; height: 20px; color: var(--acc-ink); }
.ls-scheda__dr summary .ls-ic:last-child { color: var(--mut); transition: transform var(--t-fast) var(--ease); }
.ls-scheda__dr[open] summary .ls-ic:last-child { transform: rotate(180deg); }
.ls-scheda__dr-in { padding: 0 0 16px 32px; display: grid; gap: 10px; font-size: var(--t-small); line-height: 1.6; color: var(--mut); }
.ls-scheda__dr-in p { margin: 0; }
.ls-scheda__dr-in a { color: var(--acc-ink); text-decoration: underline; text-underline-offset: .15em; white-space: nowrap; }
.ls-scheda--chiara .ls-scheda__sku { margin: 16px 0 0; font-size: var(--t-label); color: var(--mut); }
.ls-scheda--chiara .ls-scheda__sku a { text-decoration: underline; text-underline-offset: .15em; }
.ls-scheda__consegna { display: flex; gap: 12px; align-items: flex-start; margin: 14px 0 0; font-size: var(--t-small); line-height: 1.5; color: var(--mut); }
.ls-scheda__consegna > .ls-ic { width: 20px; height: 20px; flex: none; margin-top: 2px; color: var(--acc-ink); }
.ls-scheda__consegna b { color: var(--ink); font-weight: 600; }
/* Tab «Description» / «Additional information»: 18/600, riga sotto; il pannello con i blocchi della descrizione come in produzione */
.ls-scheda__tab { padding-block: 24px 96px; }
.ls-tabs--scheda { justify-content: flex-start; gap: 40px; margin-bottom: 40px; overflow: visible; flex-wrap: wrap; }   /* 15/10 finiture: overflow visibile, o l'anello di focus (offset 3) restava tagliato sopra e sotto; due voci, a capo invece di scorrere */
.ls-tabs--scheda .ls-tabs__voce { font-size: var(--t-lede); font-weight: 600; padding: 14px 0 12px; }
.ls-scheda__descr, .ls-scheda__info { max-width: none; }
.ls-scheda__descr[hidden], .ls-scheda__info[hidden] { display: none; }
.ls-scheda__descr { font-size: var(--t-mid); line-height: 1.6; color: var(--mut); }
.ls-scheda__descr p { margin: 0 0 14px; }
.ls-scheda__descr .ls-lead, .ls-scheda__descr > p:first-child { font-size: var(--t-body); line-height: 1.7; color: var(--ink); max-width: 663px; margin: 0 0 40px; }
.ls-scheda__descr .ls-eyebrow { font-size: var(--t-micro); letter-spacing: .09em; text-transform: uppercase; color: var(--mut); font-weight: 400; margin: 40px 0 6px; }
.ls-scheda__descr .ls-eyebrow:first-child { margin-top: 0; }
.ls-scheda__descr .ls-section-title, .ls-scheda__descr h3, .ls-scheda__descr h6 { font-family: var(--font-body); text-transform: none; letter-spacing: -.01em; font-size: var(--t-h2s); font-weight: 400; line-height: 1.15; color: var(--ink); margin: 0 0 24px; }
.ls-scheda__descr h6 { font-size: var(--t-h4); margin: 32px 0 16px; }
.ls-scheda__descr .ls-section-title, .ls-scheda__descr h3 { font-size: var(--t-h4); }
.ls-scheda__descr .ls-spec { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; background: rgba(20,19,17,.1); border: 1px solid rgba(20,19,17,.1); border-radius: 8px; overflow: hidden; margin: 0 0 8px; }
@media (min-width: 960px) { .ls-scheda__descr .ls-spec { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.ls-scheda__descr .ls-spec__item { background: #F3F1EC; padding: 18px 20px; display: grid; gap: 2px; align-content: start; }
.ls-scheda__descr .ls-spec__label { font-size: var(--t-micro); letter-spacing: .09em; text-transform: uppercase; color: var(--mut); margin-bottom: 5px; }
.ls-scheda__descr .ls-spec__value { font-size: var(--t-mid); color: var(--ink); }
.ls-scheda__descr .ls-spec__note { font-size: var(--t-eyebrow); color: var(--mut); }
.ls-scheda__descr .ls-why { display: grid; grid-template-columns: minmax(0, 1fr); gap: 32px; }
@media (min-width: 960px) { .ls-scheda__descr .ls-why { grid-template-columns: minmax(0, 657fr) minmax(0, 571fr); gap: 40px; align-items: start; } }
.ls-scheda__descr .ls-why__text h4 { font-family: var(--font-body); text-transform: none; letter-spacing: 0; font-size: var(--t-mid); font-weight: 600; color: var(--ink); margin: 0 0 6px; }
.ls-scheda__descr .ls-why__text p { font-size: var(--t-small); line-height: 1.65; margin: 0 0 22px; }
.ls-scheda__descr .ls-why__text > :last-child { margin-bottom: 0; }
.ls-scheda__descr .ls-why__media { margin: 0; }
.ls-scheda__descr .ls-why__media img { width: 100%; aspect-ratio: 1; object-fit: contain; padding: 8%; background: #F3F1EC; border: 1px solid rgba(20,19,17,.08); border-radius: 8px; }
.ls-scheda__descr .ls-badges { display: flex; flex-wrap: wrap; gap: 8px; margin: 22px 0 0; padding: 0; list-style: none; }
.ls-scheda__descr .ls-badges li { display: inline-flex; align-items: center; min-height: 34px; padding: 6px 14px; border: 1px solid rgba(20,19,17,.14); border-radius: 4px; font-size: var(--t-eyebrow); letter-spacing: .02em; color: var(--ink); }
.ls-scheda__h2 { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }   /* H1 → H2 (tab) → H3 → H4: la gerarchia senza salti; il nome della tab lo mostra già il bottone */
.ls-scheda__descr ul:not(.ls-badges) { margin: 0 0 16px; padding: 0; list-style: none; max-width: 600px; }
.ls-scheda__descr ul:not(.ls-badges) li { position: relative; margin: 0 0 4px; padding-left: 18px; line-height: 1.75; }
.ls-scheda__descr ul:not(.ls-badges) li::before { content: ""; position: absolute; left: 0; top: .85em; width: 8px; height: 2px; background: var(--acc-ink); }   /* via i pallini di serie: un trattino d'accento */
.ls-scheda__descr .ls-why--solo { grid-template-columns: minmax(0, 1fr); }
.ls-scheda__descr .ls-why--solo .ls-why__text { max-width: 760px; }
.ls-scheda__descr table { border-collapse: collapse; width: 100%; max-width: 760px; font-size: var(--t-small); }
.ls-scheda__descr th, .ls-scheda__descr td { padding: 10px 12px; border-bottom: 1px solid rgba(20,19,17,.1); text-align: left; }
.ls-scheda__descr .em-row { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px 40px; }
@media (min-width: 960px) { .ls-scheda__descr .em-row { grid-template-columns: repeat(12, minmax(0, 1fr)); } .ls-scheda__descr .em-lg-6 { grid-column: span 6; } .ls-scheda__descr .em-lg-8 { grid-column: span 8; } .ls-scheda__descr .em-col:not([class*="em-lg-"]) { grid-column: 1 / -1; } }
.ls-scheda__descr h6 + div { display: grid; gap: 12px; margin-bottom: 20px; }
.ls-scheda__descr h6 + div > div, .ls-scheda__descr h6 + div ~ div > div { line-height: 1.6; }
.ls-scheda__descr p:has(> a[href$=".pdf"]) { margin: 24px 0 0; }
.ls-scheda__descr a[href$=".pdf"] { display: inline-flex; align-items: center; justify-content: center; min-height: var(--btn-h); padding: 0 24px; line-height: 1; border: 1px solid var(--ink); border-radius: 2px; color: var(--ink); font-size: var(--t-label); font-weight: 600; letter-spacing: .08em; text-transform: uppercase; text-decoration: none; }
.ls-scheda__descr a[href$=".pdf"]:is(:hover, :focus-visible) { background: var(--ink); color: #F3F1EC; }   /* 15/10 finiture: anche da tastiera — con :hover solo, il fuoco prendeva il fondo nero da .ls-btn--ghost:focus-visible (0,2,0) e il testo nero da questa regola (0,2,1): nero su nero */
.ls-scheda__descr img:not(.ls-why__media img) { max-width: 100%; height: auto; border-radius: 8px; border: 1px solid rgba(20,19,17,.08); background: #F3F1EC; }
.ls-scheda__info .ls-tech__tab { max-width: 760px; font-size: var(--t-small); }
.ls-scheda__info .ls-tech__tab th, .ls-scheda__info .ls-tech__tab td { border-color: rgba(20,19,17,.1); }
.ls-scheda__info .ls-tech__tab th { color: var(--ink); font-weight: 500; }
.ls-scheda__pdf { max-width: 760px; margin: 24px 0 0; }
/* Related products: titolo 42/400 centrato come in produzione, card della stessa linea */
.ls-scheda--chiara + .ls-rel, .ls-scheda--chiara .ls-rel { background: #F3F1EC; border-top: 1px solid rgba(20,19,17,.1); padding-block: 96px 112px; }
.ls-scheda--chiara .ls-rel__h2 { font-size: var(--t-h2); margin: 0 0 var(--blocco); }
.ls-scheda--chiara .ls-card__ph { border: 1px solid rgba(20,19,17,.1); background: #F3F1EC; }
@media (max-width: 639px) { .ls-scheda--chiara .ls-scheda__acquisto .quantity { width: 120px; } .ls-tabs--scheda { gap: 24px; justify-content: flex-start; } .ls-scheda--chiara .ls-rel__h2 { font-size: var(--t-menu); } }

/* ---------- 16. Completezza: menu a tendina, piede coi pagamenti, torna su ---------- */
.ls-mega-li { position: static; }
.ls-bar__nav > ul > li > button[data-ls-mega] .ls-ic { width: 14px; height: 14px; margin-left: 2px; color: var(--mut); transition: transform var(--t-fast) var(--ease); }
.ls-mega { position: absolute; left: 0; right: 0; top: 100%; z-index: 90; background: var(--g); border-bottom: 1px solid var(--line); box-shadow: 0 24px 48px rgba(0,0,0,.35); opacity: 0; visibility: hidden; transform: translateY(-6px); transition: opacity var(--t-base) var(--ease), transform var(--t-base) var(--ease), visibility 0s linear var(--t-base); }
.ls-mega-li:hover .ls-mega, .ls-mega-li.is-open .ls-mega { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
.ls-mega-li:hover button[data-ls-mega] .ls-ic, .ls-mega-li.is-open button[data-ls-mega] .ls-ic { transform: rotate(180deg); }   /* 15/10: da tastiera si apre col pulsante (is-open, fabbrica.js), non col solo fuoco: così Esc lo chiude davvero */
.ls-mega__in { max-width: var(--wrap); margin-inline: auto; padding: 40px var(--gut) 44px; display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 48px; }
.ls-mega__linee { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px; }
.ls-mega__col { display: grid; gap: 6px; align-content: start; }
.ls-mega__titolo { font-family: var(--font-head); text-transform: var(--case-head); letter-spacing: .04em; font-size: var(--t-mid); font-weight: 600; color: var(--ink); white-space: nowrap; }
a.ls-mega__titolo:hover { color: var(--acc-ink); }   /* la colonna «Help choosing» ha un titolo che non è un link */
.ls-mega__riga { font-size: var(--t-eyebrow); color: var(--mut); line-height: 1.5; margin-bottom: 8px; }
.ls-mega__col ul { display: grid; gap: 2px; }
.ls-mega__col li a { display: inline-flex; align-items: center; min-height: 28px; font-size: var(--t-label); color: var(--ink); }
.ls-mega__col li a:hover { color: var(--acc-ink); }
.ls-mega__col--extra { padding-left: 32px; border-left: 1px solid var(--line); }
.ls-mega__evidenza { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.ls-mega__evidenza a { display: grid; gap: 4px; }
.ls-mega__foto { display: block; position: relative; aspect-ratio: 1; background: var(--chiaro); border-radius: var(--r); overflow: hidden; margin-bottom: 4px; }
.ls-mega__foto img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; padding: 8%; transition: transform 600ms var(--ease); }
.ls-mega__evidenza a:hover .ls-mega__foto img { transform: scale(1.04); }
.ls-mega__evidenza b { font-size: var(--t-label); font-weight: 500; }
.ls-mega__evidenza a > span:last-child { font-size: var(--t-eyebrow); color: var(--mut); }
/* Piede: pagamenti come pillole di testo (niente loghi finti), colonne a passo 28 */
.ls-foot__pagamenti { border-top: 1px solid var(--line); }
.ls-foot__pagamenti-in { max-width: var(--wrap); margin-inline: auto; padding: 20px var(--gut); display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; }
.ls-foot__pagamenti p { margin: 0; font-size: var(--t-label); color: var(--mut); }
.ls-foot__pagamenti ul { display: flex; flex-wrap: wrap; gap: 6px; }
.ls-foot__pagamenti li { display: inline-flex; align-items: center; min-height: 28px; padding: 0 10px; border: 1px solid var(--line); border-radius: 4px; font-size: var(--t-micro); font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--ink); }
/* Torna su */
.ls-su { position: fixed; right: 20px; bottom: 20px; z-index: 95; display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; background: var(--g2); color: var(--ink); border: 1px solid var(--line); border-radius: 4px; box-shadow: 0 8px 24px rgba(0,0,0,.3); transition: opacity var(--t-base) var(--ease), transform var(--t-base) var(--ease), background var(--t-fast) var(--ease); }
.ls-su[hidden] { display: inline-flex; opacity: 0; transform: translateY(8px); pointer-events: none; }
.ls-su .ls-ic { transform: rotate(180deg); }
.ls-su:hover { background: var(--acc); border-color: var(--acc); color: var(--onacc); }
@media (max-width: 767px) { .ls-su { bottom: 76px; } }

/* ---------- 17. Home: didascalia del fotone, banda «Hunting line» scura, striscia dei loghi partner ---------- */
.ls-linea-crema__grande { display: grid; gap: 12px; }
.ls-linea-crema__dida { margin: 0; }
.ls-linea-crema__dida a { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 16px; font-size: var(--t-mid); }
/* Lo stesso scarpone, altre viste: sotto la foto grande, le foto di galleria del modello (una linea = un modello, mostrato bene) */
.ls-linea-crema__viste { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 0; }
.ls-linea-crema__viste a { display: block; aspect-ratio: 1; background: #F3F1EC; border: 1px solid rgba(20,19,17,.1); border-radius: var(--r); overflow: hidden; }
.ls-linea-crema__viste img { width: 100%; height: 100%; object-fit: cover; transition: transform 600ms var(--ease); }
.ls-linea-crema__viste a:hover img { transform: scale(1.04); }
.ls-linea-crema__dida b { font-weight: 500; }
.ls-linea-crema__dida b span { color: var(--mut); font-weight: 400; }
.ls-linea-crema__dida > a > span { color: var(--mut); font-size: var(--t-small); }
.ls-linea-crema__dida a:hover b { color: var(--acc-ink); }
.ls-linea-scura { background: var(--g2); border-block: 1px solid var(--line); }
@media (min-width: 960px) { .ls-linea-scura__in { grid-template-columns: minmax(0, 640fr) minmax(0, 560fr); } }
.ls-mini--due { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 440px; }
/* A telefono la foto grande della banda viene prima del testo, in tutte e due le bande; i loghi in una griglia 2×2 con tessere uguali */
@media (max-width: 959px) { .ls-linea-crema__in .ls-linea-crema__grande { order: -1; } .ls-loghi-banda ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; width: 100%; } .ls-loghi-banda li { min-width: 0; height: 56px; } }
.ls-linea-scura .ls-linea-crema__foto { background: var(--chiaro); border-color: transparent; }
.ls-linea-scura .ls-mini__foto { background: var(--chiaro); border-color: transparent; }
.ls-loghi-banda { border-bottom: 1px solid var(--line); }
.ls-loghi-banda__in { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 40px; padding-block: 28px; }
.ls-loghi-banda p { margin: 0; font-size: var(--t-small); color: var(--mut); }
/* 15/10 finiture: riga tipografica, niente tessere (prima: 4 riquadri 160×80 su --chiaro, e il rombo TE-POR 52×52 in mezzo al bianco). Altezza fissa 32; il rombo di TE-POR è quadrato e a 32 sparirebbe: 44, che in area vale circa metà di un marchio orizzontale. */
.ls-loghi-banda ul { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 48px; }
.ls-loghi-banda li { display: flex; align-items: center; justify-content: center; }
.ls-loghi-banda img { height: 32px; width: auto; max-width: none; }
.ls-loghi-banda img[alt="TE-POR"] { height: 44px; }
.ls-loghi-banda .ls-link { min-height: 32px; }
@media (max-width: 639px) { .ls-card .ls-card__name { min-height: 2.8em; } }

/* ---------- 18. Ogni scarpone una volta sola (29/09/2026): tessera nell'hero, banda dei livelli, viste di galleria, dettaglio nella banda outdoor, lista dei modelli ---------- */
.ls-linea-crema__foto--dettaglio { padding: 0; }
.ls-linea-crema__foto--dettaglio img { object-fit: cover; }
.ls-linea-crema__modelli { display: grid; gap: 0; margin: 0 0 32px; border-top: 1px solid var(--line); }
.ls-linea-crema__modelli li a { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-rows: auto auto; column-gap: 24px; padding: 14px 0; border-bottom: 1px solid var(--line); font-size: var(--t-mid); }
.ls-linea-crema__modelli b { font-weight: 500; }
.ls-linea-crema__modelli li a > span:first-of-type { grid-column: 1; font-size: var(--t-label); color: var(--mut); }
.ls-linea-crema__modelli li a > span:last-child { grid-column: 2; grid-row: 1 / 3; align-self: center; font-variant-numeric: tabular-nums; }
.ls-linea-crema__modelli li a:hover b { color: var(--acc-ink); }
.ls-linea-crema__grande .ls-linea-crema__viste + .ls-linea-crema__dida { margin-top: 4px; }

/* ═══════════════════════════════════════════════════════════════════════════
   14 · TELEFONO — 30/09/2026. «Mobile ancora molto precario» (Luigi).
   Audit su 5 pagine a 390: home 14,1 schermate, piede 1.324 px su OGNI pagina,
   «Add to cart» a 1,9 schermate dall'alto, chip taglia 46×42 (sotto i 44),
   prezzi della stessa riga sfasati di 19 px, occhiello dell'eroe a 3,49:1.
   Sta in fondo di proposito: è l'ultimo strato, e deve vincere sulle regole
   di pagina scritte prima (per esempio `.ls-scheda--chiara .ls-gal__griglia`,
   che a 0,2,0 batteva la regola mobile a 0,1,0 e teneva le miniature in griglia).
   ═══════════════════════════════════════════════════════════════════════════ */
@media (max-width: 639px) {

  /* ① Il piede: 1.324 px su ogni pagina, 1,6 schermate. Due colonne e meno aria. */
  .ls-foot .ls-foot__in { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 44px var(--gut) 32px; gap: 26px 20px; }
  .ls-foot .ls-foot__brand { grid-column: 1 / -1; }
  .ls-foot .ls-foot__col li a { min-height: 26px; }
  .ls-foot .ls-foot__col h2 { margin-bottom: 8px; }
  .ls-foot .ls-foot__pagamenti-in { padding-block: 14px; gap: 8px 16px; }
  .ls-foot .ls-foot__pagamenti li { min-height: 26px; padding-inline: 8px; }

  /* ② Le miniature: striscia che scorre, non griglia. Spingevano il bottone
        d'acquisto 530 px più in basso. La specificità qui deve superare
        `.ls-scheda--chiara .ls-gal__griglia` (0,2,0). */
  .ls-scheda .ls-gal__griglia, .ls-scheda--chiara .ls-gal__griglia {
    display: flex; gap: 8px; overflow-x: auto; scroll-snap-type: x mandatory;
    scrollbar-width: none; -webkit-overflow-scrolling: touch; padding-bottom: 2px; }
  .ls-scheda .ls-gal__griglia::-webkit-scrollbar { display: none; }
  .ls-scheda .ls-gal__griglia > * { flex: 0 0 88px; scroll-snap-align: start; }

  /* ③ La riga d'acquisto: il bottone prendeva 222 px su 350, la quantità 120.
        La riga vera è `.woocommerce-variation-add-to-cart` (flex, nowrap): va fatta
        andare a capo, altrimenti il bottone non può diventare largo quanto la colonna. */
  .ls .ls-scheda--chiara .ls-scheda__acquisto .woocommerce-variation-add-to-cart { flex-wrap: wrap; gap: 10px; }
  .ls .ls-scheda--chiara .ls-scheda__acquisto .quantity { width: 150px; }
  .ls .ls-scheda--chiara .ls-scheda__acquisto .single_add_to_cart_button { flex: 1 0 100%; width: 100%; }   /* 15/10: l'altezza (48) la dà la regola unica di §15, la stessa della barra fissa e di .ls-btn */

  /* ④ Le taglie: 48×48 col distacco a 12 (erano 46×42 con 8: sotto il minimo
        di 44 e troppo vicine per il pollice). La regola da battere è quella
        di `.ls-scheda--chiara`, a quattro classi. */
  .ls .ls-scheda--chiara .ls-scheda__acquisto .wcboost-variation-swatches { --wcboost-swatches-item-height: 48px; }
  .ls .ls-scheda--chiara .ls-scheda__acquisto .wcboost-variation-swatches__wrapper { gap: 12px; }
  .ls .ls-scheda--chiara .ls-scheda__acquisto .wcboost-variation-swatches__item,
  .ls .ls-scheda--chiara .ls-scheda__acquisto .wcboost-variation-swatches--round .wcboost-variation-swatches__item {
    min-width: 48px; min-height: 48px; }

  /* ⑤ Le card del catalogo: l'altezza della riga specifiche decideva dove
        cadeva il prezzo, e due prezzi affiancati stavano a 19 px di scarto.
        Due righe riservate: il prezzo cade sempre alla stessa quota. */
  .ls-card .ls-card__desc { min-height: calc(2 * 1.5em); }

  /* ⑥ L'eroe: l'occhiello bianco misurava 3,49:1 sul cielo della foto.
        Il velo scende prima e più scuro. */
  .ls-hero .ls-hero__media::after {
    background: linear-gradient(180deg, rgba(20,19,17,.30) 0%, rgba(20,19,17,.42) 38%, rgba(20,19,17,.86) 100%); }
}

/* La barra d'acquisto fissa del telefono (la crea `fabbrica.js` sulla scheda).
   Sta fuori dal blocco 14 perché deve restare nascosta sopra i 639 px. */
.ls-barra-acq { position: fixed; left: 0; right: 0; bottom: 0; z-index: 90;
  display: flex; align-items: center; justify-content: flex-end; gap: 16px;
  padding: 12px var(--gut) max(12px, env(safe-area-inset-bottom));
  background: var(--g2); border-top: 1px solid var(--line);
  box-shadow: 0 -10px 30px rgba(0,0,0,.35); }
.ls-barra-acq[hidden] { display: none; }
.ls-barra-acq__n { margin-right: auto; font-size: var(--t-mid); color: var(--mut); }
.ls-barra-acq__p { font-size: var(--t-body); font-weight: 600; white-space: nowrap; font-variant-numeric: tabular-nums; }
/* .ls-barra-acq__b: il disegno sta in §15 (stessa regola del bottone d'acquisto, = .ls-btn: 48 px, raggio --r, 13 maiuscolo) */
@media (min-width: 640px) {
  /* a desktop la barra sta dentro il container come il resto del sito */
  .ls-barra-acq { padding-inline: max(var(--gut), calc((100vw - var(--wrap)) / 2 + var(--gut))); }
  .ls-barra-acq__b { flex: 0 0 auto; min-width: 260px; }
}
@media (max-width: 639px) {
  .ls-barra-acq__n { display: none; }
  .ls-barra-acq__p { font-size: var(--t-body); font-weight: 600; white-space: nowrap; font-variant-numeric: tabular-nums; }
  .ls .ls-barra-acq__b { flex: 1; padding-inline: 20px; }
  /* il piede non deve finire sotto la barra */
  .ls-scheda ~ .ls-foot, body:has(.ls-barra-acq:not([hidden])) .ls-foot { padding-bottom: 72px; }
  /* 15/10: alla prima visita il banner cookie (Complianz, fisso in basso, z 99999) copriva la barra per intero
     (banner y 643→844, barra 771→844). La barra non può salire sopra: nasconderebbe «Accept». Sale il banner,
     di quanto è alta la barra (12 + 48 + max(12, safe-area) + 1), finché la barra è in pagina. */
  /* quando si chiede la taglia: il riquadro lampeggia una volta, non anima all'infinito */
  .wcboost-variation-swatches__wrapper.is-chiede { outline: 2px solid var(--acc); outline-offset: 6px; }
}
@media (prefers-reduced-motion: reduce) {
  .wcboost-variation-swatches__wrapper.is-chiede { outline-color: var(--ink); }
}
@media (min-width: 640px) {
  /* 15/10: a desktop il banner sta in basso a destra (526 px, bottom 10): copriva il bottone della barra, che è a destra */
}

/* ═══════════════════════════════════════════════════════════════════════════
   15 · IL CARRELLO LATERALE — 30/09/2026.
   Pannello che entra da destra, come su longstone.it. Misure rifatte, non
   copiate: il pannello di produzione è di Ecomus e la licenza non è nostra.
   Differenze dichiarate rispetto alla produzione (riviste il 15/10/2026, misure in
   _lavoro/2026-10-13-audit-prototipo-bilingue/LOTTO-2-CARRELLO-CASSA.md): larghezza 410 e
   90 % a telefono COME in produzione · gronda 24 invece di 30 · miniatura 88 invece di 90 ·
   quantità 40 invece di 30 (bersaglio) · due bottoni in riga come in produzione, Checkout
   pieno a destra · velo .45 invece di .2 (serve il contrasto sul nostro fondo scuro) ·
   250 ms invece di 300, con velo e pannello SINCRONIZZATI (in produzione no: 300 contro 420) ·
   il fuoco va sulla ✕ (in produzione resta sul body).
   ═══════════════════════════════════════════════════════════════════════════ */
.ls-cart { position: fixed; inset: 0; z-index: var(--cart-z); opacity: 0; visibility: hidden; pointer-events: none;
  transition: opacity var(--t-base) var(--ease), visibility 0s linear var(--t-base);
  /* Il pannello è CHIARO come la scheda prodotto (e come la produzione), non scuro come la
     pagina: i token si ridefiniscono qui dentro, così tutte le regole di casa continuano a
     valere e non serve riscrivere i colori uno per uno. */
  --g: #F3F1EC; --g2: #FFFFFF; --ink: #141311; --mut: #625C52;
  --line: rgba(20,19,17,.14); --chiaro: #FFFFFF;
  --cart-w: 410px; }   /* 15/10: la larghezza di produzione, misurata (x 1030→1440). Il token di :root resta per gli altri usi */
.ls-cart[hidden] { display: none; }                    /* senza JS il pannello non esiste */
.ls-cart.is-on { opacity: 1; visibility: visible; pointer-events: auto;
  transition: opacity var(--t-fast) var(--ease), visibility 0s; }

.ls-cart__velo { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; padding: 0;
  background: rgba(0,0,0,.45); cursor: pointer; }

.ls-cart__pan { position: absolute; top: 0; right: 0; height: 100%;
  width: min(var(--cart-w), calc(100vw - 40px)); display: flex; flex-direction: column;
  background: var(--g); border-left: 1px solid var(--line); box-shadow: -24px 0 48px rgba(0,0,0,.45);
  transform: translateX(100%); transition: transform var(--t-base) var(--ease); }
.ls-cart.is-on .ls-cart__pan { transform: none; }

.ls-cart__testa { display: flex; align-items: center; justify-content: space-between; gap: 12px;
  min-height: 64px; padding: 0 var(--cart-pad); border-bottom: 1px solid var(--line); }
.ls-cart__t { font-family: var(--font-head); text-transform: var(--case-head); font-size: var(--t-h3); font-weight: 600; margin: 0; }
.ls-cart__x { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px;
  margin-right: -10px; background: none; border: 0; border-radius: 50%; color: var(--mut); cursor: pointer;
  transition: color var(--t-fast) var(--ease), background var(--t-fast) var(--ease); }
/* 15/10: in hover cambiava solo il colore, e col fuoco messo dal JS all'apertura era già scuro: ora un cerchio di fondo */
.ls-cart__x:hover { color: var(--ink); background: var(--line); }
.ls-cart__corpo { flex: 1 1 auto; overflow-y: auto; overscroll-behavior: contain; padding: var(--cart-pad) 0 0; }
.ls-cart .widget_shopping_cart_content { display: flex; flex-direction: column; min-height: 100%; }

.ls-cart ul.woocommerce-mini-cart { list-style: none; margin: 0; padding: 0 var(--cart-pad); flex: 1 1 auto; }
.ls-cart .woocommerce-mini-cart-item { display: grid; grid-template-columns: 88px minmax(0, 1fr); gap: 16px;
  padding: 16px 0; border-bottom: 1px solid var(--line); }
.ls-cart .woocommerce-mini-cart-item:first-child { padding-top: 0; }
.ls-cart .woocommerce-mini-cart-item.is-attesa { opacity: .45; pointer-events: none; }
.ls-cart .woocommerce-mini-cart-item__thumbnail { display: block; width: 88px; aspect-ratio: 1;
  background: var(--chiaro); border-radius: var(--r); overflow: hidden; }
.ls-cart .woocommerce-mini-cart-item__thumbnail img { width: 100%; height: 100%; object-fit: contain; display: block; }
.ls-cart__dati { min-width: 0; display: grid; gap: 4px; align-content: start; }
.ls-cart__nome { margin: 0; font-size: var(--t-mid); line-height: 1.4; color: var(--ink); }
.ls-cart__taglia { font-size: var(--t-label); color: var(--mut); }
.ls-cart__taglia p, .ls-cart__taglia dl, .ls-cart__taglia dt, .ls-cart__taglia dd { margin: 0; display: inline; font-size: inherit; }
.ls-cart__prezzo { margin: 2px 0 0; font-size: var(--t-mid); font-weight: 500; font-variant-numeric: tabular-nums; }
.ls-cart__riga { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 8px; }

.ls-cart .quantity { display: inline-flex; align-items: center; border: 1px solid var(--line); border-radius: var(--r); }
.ls-cart .quantity .ls-cart__q { width: 40px; height: 40px; background: none; border: 0; color: var(--ink);
  font-size: var(--t-body); line-height: 1; cursor: pointer; }
.ls-cart .quantity .ls-cart__q:hover { color: var(--acc-ink); }
.ls-cart .quantity .qty { width: 44px; height: 40px; text-align: center; background: none; border: 0; color: var(--ink);
  font-size: var(--t-body); -moz-appearance: textfield; }   /* 16 px: sotto, iOS ingrandisce il campo da solo */
.ls-cart .quantity .qty::-webkit-outer-spin-button,
.ls-cart .quantity .qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.ls-cart a.remove { display: inline-flex; align-items: center; min-height: 40px; font-size: var(--t-label);
  color: var(--mut); text-decoration: underline; text-underline-offset: .15em; }
.ls-cart a.remove:hover { color: var(--err); }

.ls-cart .widget_shopping_cart_footer { border-top: 1px solid var(--line); background: var(--g2);
  padding: 20px var(--cart-pad) max(20px, env(safe-area-inset-bottom)); }
.ls-cart .woocommerce-mini-cart__total { display: flex; justify-content: space-between; align-items: baseline;
  margin: 0 0 6px; font-size: var(--t-h3); font-variant-numeric: tabular-nums; }
.ls-cart .woocommerce-mini-cart__total { margin-bottom: 16px; }
.ls-cart .woocommerce-mini-cart__total strong { font-weight: 400; }                       /* come in produzione: etichetta leggera… */
.ls-cart .woocommerce-mini-cart__total .woocommerce-Price-amount { font-weight: 600; }   /* …cifra in evidenza */
.ls-cart .woocommerce-mini-cart__buttons { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--gap-s); margin: 0; }   /* due in riga: View cart | Checkout */
.ls-cart .woocommerce-mini-cart__buttons a { display: inline-flex; align-items: center; justify-content: center;
  min-height: var(--btn-h); padding: 0 12px; white-space: nowrap; border-radius: 2px; font-size: var(--t-label); font-weight: 600; letter-spacing: .08em;
  text-transform: uppercase; border: 1px solid var(--ink); color: var(--ink); }
.ls-cart .woocommerce-mini-cart__buttons .checkout { background: var(--acc); border-color: var(--acc); color: var(--onacc); }
.ls-cart .woocommerce-mini-cart__buttons a:is(:hover, :focus-visible) { background: var(--ink); border-color: var(--ink); color: var(--g); }   /* 15/10 finiture: gli stessi stati di .ls-btn--ghost e .ls-btn */
.ls-cart .woocommerce-mini-cart__buttons .checkout:is(:hover, :focus-visible) { background: var(--acc-hover); border-color: var(--acc-hover); color: var(--onacc); }
.ls-cart__vuoto { margin: auto 0; padding: 48px var(--cart-pad); display: grid; gap: 12px; justify-items: center; text-align: center; color: var(--mut); font-size: var(--t-small); }
.ls-cart__vuoto p { margin: 0; }
.ls-cart__vuoto-t { font-size: var(--t-nome); font-weight: 400; line-height: 1.2; color: var(--ink); }
.ls-cart__vuoto .ls-btn { margin-top: 8px; }

@media (max-width: 639px) {
  .ls-cart__pan { width: 90%; }   /* come in produzione: a 390 → 351, 39 px di velo a sinistra */
  .ls-cart { --cart-pad: 20px; }
}
@media (prefers-reduced-motion: reduce) {
  .ls-cart, .ls-cart__pan { transition: none; }
  .ls-cart.is-on .ls-cart__pan, .ls-cart__pan { transform: none; }
}

/* La fattura in cassa (inc/ls-fattura.php): i due campi compaiono solo se si chiede
   la fattura. Niente JS — basta :has() sulla casella. */
.ls .ls-fattura__campo { display: none; }
.ls .woocommerce-billing-fields__field-wrapper:has(#ls_fattura:checked) .ls-fattura__campo { display: block; }
.ls .ls-fattura__scelta label { display: inline-flex; align-items: center; gap: 10px; min-height: 44px;
  font-size: var(--t-body); text-transform: none; letter-spacing: 0; color: var(--ink); font-weight: 400; }
.ls .ls-fattura__scelta input[type="checkbox"] { width: 20px; height: 20px; margin: 0; accent-color: var(--acc); }
.ls .ls-fattura__campo .description { display: block; margin-top: 6px; font-size: var(--t-label); color: var(--mut); }

/* ═══════════════════════════════════════════════════════════════════════════
   16 · CARRELLO E CASSA SUL TELEFONO — 02/10/2026.
   Misurato a 390: la cassa aveva `scrollWidth 446` e il carrello `405`, col
   bottone «Place order» che finiva a x=421, cioè **tagliato**. Non era mai
   venuto fuori perché i controlli sullo scorrimento orizzontale giravano su
   home, shop e scheda, dove non succede.
   La causa non è una larghezza sbagliata: è un elemento di griglia/flex che
   **non può restringersi** (`min-width: auto` di serie), e la tabella del
   riepilogo lo allarga dall'interno fino a 426 px.
   ═══════════════════════════════════════════════════════════════════════════ */
@media (max-width: 639px) {
  /* ① nessun figlio della cassa può allargare la colonna oltre il viewport */
  .ls-ponte-pg form.checkout,
  .ls-ponte-pg form.checkout > *,
  .ls-ponte-pg .col2-set,
  .ls-ponte-pg .col2-set > *,
  .ls-ponte-pg .woocommerce-checkout-review-order,
  .ls-ponte-pg .woocommerce-checkout-review-order > * { min-width: 0; max-width: 100%; }

  /* ② la tabella del riepilogo si restringe invece di spingere */
  .ls-ponte-pg .woocommerce-checkout-review-order-table { width: 100%; table-layout: fixed; }
  .ls-ponte-pg .woocommerce-checkout-review-order-table th,
  .ls-ponte-pg .woocommerce-checkout-review-order-table td { overflow-wrap: anywhere; }
  .ls-ponte-pg .woocommerce-checkout-review-order-table .product-name { flex-wrap: wrap; }

  /* ③ il coupon del carrello: era `flex: none` con un campo da 200, 385 px in tutto */
  .ls-ponte-pg .coupon { flex-wrap: wrap; flex: 1 1 auto; width: 100%; }
  .ls-ponte-pg .coupon input { flex: 1 1 160px; width: auto; min-width: 0; }
  .ls-ponte-pg .coupon .button { flex: 0 0 auto; }

  /* ④ rete di sicurezza: niente deve uscire dalla pagina su questi due percorsi */
  .ls-ponte-pg { overflow-x: clip; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   17 · GLI STATI CHE NON SONO NOSTRI — 02/10/2026.
   Hello Elementor e WooCommerce portano i loro `:hover`, `:focus` e `:active`
   di serie: si vedono come lampi di colore che non appartengono al sito (il
   caso già pagato è il bordo magenta `#CC3366` sulla ✕ del carrello). Qui si
   dichiarano i tre stati una volta sola, per tutto quello che si clicca.
   ═══════════════════════════════════════════════════════════════════════════ */
.ls :is(a, button, input, select, textarea, summary, [tabindex]):focus { outline: none; }
.ls :is(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: 2px solid var(--acc); outline-offset: 3px; border-radius: 2px; }
/* niente alone azzurro del browser sui campi, e niente bordo di serie sui bottoni */
.ls :is(button, [type="button"], [type="submit"], [type="reset"]) { box-shadow: none; }
.ls :is(button, [type="button"], [type="submit"], [type="reset"]):focus { box-shadow: none; }
.ls :is(input, select, textarea):focus { box-shadow: none; }
/* WooCommerce colora da sé le righe attive di tab e paginazione: passano ai nostri token */
.ls .woocommerce :is(ul.tabs li.active a, .page-numbers.current),
.ls .woocommerce :is(ul.tabs li a:hover, a.page-numbers:hover) { background: transparent; color: var(--ink); }
/* il tocco su telefono non deve lasciare il velo grigio di serie */
.ls a, .ls button, .ls [role="tab"] { -webkit-tap-highlight-color: transparent; }

/* ═══════════════════════════════════════════════════════════════════════════
   18 · KIT IMPRONTA DEL PIEDE — 15/10/2026 (inc/ls-kit-piede.php).
   In scheda, prima delle taglie: due opzioni radio con etichetta grande (≥44 px),
   stessa famiglia delle chip e dei bottoni di casa. I tre passi e la nota sulla
   taglia di riferimento compaiono solo col kit scelto: `:has()` da solo, la classe
   `is-kit` (JS) per i browser che non lo hanno. Colori: solo token — la scheda è
   dentro `.ls-sez--crema`, che li ridefinisce, e qui non si scrive un esadecimale.
   ═══════════════════════════════════════════════════════════════════════════ */
.ls-kit { display: grid; gap: 8px; min-width: 0; margin: 0 0 20px; padding: 0; border: 0; }
.ls-kit__legenda { padding: 0; margin: 0 0 4px; font-size: var(--t-small); color: var(--ink); }
.ls-kit__opz { position: relative; display: grid; grid-template-columns: 18px minmax(0, 1fr); column-gap: 12px; row-gap: 2px;
  align-items: center; min-height: 56px; padding: 12px 14px; border: 1px solid var(--line); border-radius: var(--r);
  background: var(--chiaro); color: var(--ink); cursor: pointer;
  transition: border-color var(--t-fast) var(--ease), box-shadow var(--t-fast) var(--ease); }
.ls-kit__opz:hover { border-color: var(--ink); }
.ls-kit__opz.is-on, .ls-kit__opz:has(input:checked) { border-color: var(--ink); box-shadow: inset 0 0 0 1px var(--ink); }
/* il radio: disegnato con i token, non quello del sistema */
.ls .ls-kit__opz input { grid-row: 1 / span 2; appearance: none; -webkit-appearance: none; width: 18px; height: 18px; margin: 0; padding: 0;
  border: 1.5px solid var(--mut); border-radius: 50%; background: transparent; display: grid; place-content: center; cursor: pointer; }
.ls-kit__opz input::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--ink); transform: scale(0); transition: transform var(--t-fast) var(--ease); }
.ls-kit__opz input:checked { border-color: var(--ink); }
.ls-kit__opz input:checked::before { transform: scale(1); }
.ls-kit__t { font-size: var(--t-mid); font-weight: 600; line-height: 1.3; }
.ls-kit__t small { margin-left: 4px; font-size: var(--t-small); font-weight: 500; color: var(--acc-ink); }
.ls-kit__s { font-size: var(--t-small); color: var(--mut); line-height: 1.4; }
/* i tre passi: nascosti finché non si sceglie il kit */
.ls-kit__come { display: none; margin-top: 4px; padding: 14px 16px; border-radius: var(--r); background: var(--g2); }
.ls-kit__come-t { display: flex; align-items: center; gap: 8px; margin: 0 0 10px; font-size: var(--t-eyebrow); letter-spacing: .06em; text-transform: uppercase; color: var(--mut); }
.ls-kit__come-t .ls-ic { width: 16px; height: 16px; color: var(--acc-ink); }
.ls-kit__come ol { display: grid; gap: 8px; margin: 0; padding-left: 20px; font-size: var(--t-small); line-height: 1.5; color: var(--ink); }
.ls-kit__come ol li::marker { font-weight: 600; color: var(--acc-ink); }
.ls-kit__costo { margin: 10px 0 0; font-size: var(--t-small); font-weight: 600; color: var(--ink); }
.ls-kit__ref { display: none; margin: 8px 0 16px; font-size: var(--t-small); color: var(--mut); }
form.cart.is-kit .ls-kit__come, form.cart:has(input[name="ls_kit_piede"][value="kit"]:checked) .ls-kit__come { display: block; }
form.cart.is-kit .ls-kit__ref, form.cart:has(input[name="ls_kit_piede"][value="kit"]:checked) .ls-kit__ref { display: block; }
/* pagina di ringraziamento: «what happens next» sopra il riepilogo (nell'email è un h2 + p e basta) */
.ls-kit__dopo { margin: 24px 0; padding: 20px 24px; border: 1px solid var(--line); border-radius: var(--r); background: var(--g2); }
.ls-kit__dopo-t { margin: 0 0 8px; font-size: var(--t-h3); }
.ls-kit__dopo p { margin: 0; font-size: var(--t-mid); line-height: 1.6; color: var(--ink); }
@media (prefers-reduced-motion: reduce) { .ls-kit__opz, .ls-kit__opz input::before { transition: none; } }

/* ═══════════════════════════════════════════════════════════════════════════
   18 · FIDUCIA LUNGO IL PERCORSO D'ACQUISTO — 15/10/2026 (inc/ls-fiducia.php).
   La stessa lista sotto il bottone della scheda e sotto il bottone del carrello:
   spedizione e consegna, reso, pagamento (le stesse pillole del piede), fabbrica.
   Dati da inc/azienda.php. Il coupon del carrello sta in un <details> chiuso.
   ═══════════════════════════════════════════════════════════════════════════ */
.ls-fiducia { list-style: none; margin: 20px 0 0; padding: 16px 0 0; border-top: 1px solid var(--line); display: grid; gap: 10px; font-size: var(--t-small); line-height: 1.5; color: var(--mut); }
.ls-fiducia li { display: flex; gap: 12px; align-items: flex-start; }
.ls-fiducia li > .ls-ic { width: 20px; height: 20px; flex: none; margin-top: 2px; color: var(--acc-ink); }
.ls-fiducia li > span { display: block; min-width: 0; }
.ls-fiducia b { color: var(--ink); font-weight: 600; }
.ls-fiducia a { color: inherit; text-decoration: underline; text-underline-offset: .15em; }
.ls-fiducia a:hover { color: var(--acc-ink); }
.ls-fiducia__pm { display: inline-flex; flex-wrap: wrap; gap: 4px 6px; margin-top: 4px; }
.ls-fiducia__pm span { font-size: var(--t-nano); letter-spacing: .08em; text-transform: uppercase; padding: 3px 6px; border: 1px solid var(--line); border-radius: 2px; white-space: nowrap; }
.ls-fiducia--cart { margin-top: 24px; padding-top: 20px; }
.ls-cart-pg__continua { margin: 12px 0 0; font-size: var(--t-small); }
.ls-cart-pg__continua a { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; color: var(--mut); text-decoration: underline; text-underline-offset: .15em; }
.ls-cart-pg__continua a .ls-ic { width: var(--ic); height: var(--ic); transform: scaleX(-1); }
.ls-cart-pg__continua a:hover { color: var(--ink); }
.ls-coupon { font-size: var(--t-small); color: var(--mut); }
.ls-coupon summary { display: inline-flex; align-items: center; min-height: 44px; cursor: pointer; list-style: none; text-decoration: underline; text-underline-offset: .15em; }
.ls-coupon summary::-webkit-details-marker { display: none; }
.ls-coupon summary:hover { color: var(--ink); }
.ls-coupon[open] summary { margin-bottom: 8px; }
.ls-coupon .coupon { display: flex; gap: 8px; }

/* ═══════════════════════════════════════════════════════════════════════════
   19 · CASSA: obbligatori vuoti, «cosa succede dopo» — 15/10/2026 (inc/ls-fattura.php,
   assets/js/ls-carrello.js). Il bordo rosso ha bisogno di (0,5,1): la regola dei campi
   in 7b è a (0,3,1) e batteva `.ls-ponte-pg .woocommerce-invalid input`.
   ═══════════════════════════════════════════════════════════════════════════ */
.ls .ls-ponte-pg .form-row.woocommerce-invalid :is(input.input-text, select, textarea),
.ls .ls-ponte-pg .form-row.woocommerce-invalid .select2-container .select2-selection--single { border-color: var(--err); }
.ls .ls-ponte-pg .form-row.woocommerce-invalid > label { color: var(--err); }
.ls .ls-ponte-pg .form-row.woocommerce-invalid > label .required { color: var(--err); }
.ls-ponte-pg .checkout-inline-error-message { margin: 6px 0 0; font-size: var(--t-label); line-height: 1.4; color: var(--err); }
.ls-ponte-pg .woocommerce-error li a { color: inherit; text-decoration: underline; }
.ls-cassa__next { margin: 16px 0 0; padding: 16px; border: 1px solid var(--line); border-left: 3px solid var(--acc); border-radius: var(--r); background: var(--g); font-size: var(--t-small); line-height: 1.5; color: var(--mut); }
.ls-cassa__next-t { margin: 0 0 10px; font-size: var(--t-eyebrow); font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--ink); }
.ls-cassa__next ol { margin: 0; padding-left: 20px; display: grid; gap: 6px; }
.ls-cassa__next b { color: var(--ink); font-weight: 600; }
.ls-cassa__next-bacs { display: none; }
.ls-ponte-pg #payment:has(#payment_method_bacs:checked) .ls-cassa__next-bacs { display: list-item; }
.ls-ponte-pg #payment:has(#payment_method_bacs:checked) .ls-cassa__next-altro { display: none; }

/* ═══════════════════════════════════════════════════════════════════════════
   20 · GRAZIE — 15/10/2026 (woocommerce/checkout/thankyou.php). Testa con numero
   d'ordine, bonifico in evidenza (riquadro con la riga d'accento), i quattro passi
   sulle celle di casa (.ls-passi), contatti in fondo.
   ═══════════════════════════════════════════════════════════════════════════ */
.ls-grazie__testa { margin-bottom: 32px; }
.ls-ponte-pg .ls-grazie__lede { margin: 0 0 8px; font-size: var(--t-lede); color: var(--ink); }
.ls-grazie__num { margin: 0 0 8px; font-size: var(--t-nome); font-weight: 600; line-height: 1.2; color: var(--ink); font-variant-numeric: tabular-nums; }
.ls-grazie__mail { margin: 0; font-size: var(--t-small); color: var(--mut); }
.ls-grazie__mail b { color: var(--ink); font-weight: 600; }
.ls-grazie__bonifico { margin: 0 0 32px; padding: 24px; border: 1px solid var(--line); border-left: 3px solid var(--acc); border-radius: var(--r); background: var(--g2); }
.ls-grazie__bonifico h2 { margin: 0 0 12px; font-size: var(--t-h3); }
.ls-grazie__bonifico > p { font-size: var(--t-small); color: var(--mut); margin: 0 0 12px; }
.ls-ponte-pg .ls-grazie__bonifico .woocommerce-bacs-bank-details { margin: 0; padding: 0; border: 0; background: none; }
.ls-grazie__bonifico .wc-bacs-bank-details-heading { margin: 12px 0 4px; font-size: var(--t-eyebrow); font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--mut); }
.ls-grazie__bonifico .wc-bacs-bank-details-account-name { margin: 0 0 8px; font-size: var(--t-body); font-weight: 600; color: var(--ink); }
.ls-grazie__bonifico .wc-bacs-bank-details li { font-size: var(--t-body); color: var(--mut); }
.ls-grazie__bonifico .wc-bacs-bank-details li strong { color: var(--ink); font-weight: 600; font-variant-numeric: tabular-nums; letter-spacing: .02em; overflow-wrap: anywhere; }
.ls-grazie__bonifico-nota { margin: 16px 0 0; font-size: var(--t-small); color: var(--mut); }
.ls-grazie__bonifico-nota strong { color: var(--ink); }
.ls-grazie__gateway { margin: 0 0 32px; font-size: var(--t-small); color: var(--mut); }
.ls-grazie__passi { margin: 0 0 32px; }
.ls-grazie__passi h2 { margin: 0 0 16px; font-size: var(--t-h3); }
.ls-passi--grazie li { padding: 16px; gap: 4px; }
.ls-passi--grazie li::before { font-size: var(--t-h3); }
@media (min-width: 768px) { .ls-passi--grazie { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
/* fabbrica.js mette `.ls-reveal` su ogni `.ls-passi > li` (rivelarsi allo scroll): su una conferma d'ordine
   i passi si leggono subito, senza aspettare uno scroll — e lo screenshot headless li trovava a opacità 0. */
.ls-passi--grazie > li.ls-reveal { opacity: 1; transform: none; transition: none; }
.ls-grazie__contatti { margin-top: 32px; padding: 16px 20px; border: 1px solid var(--line); border-radius: var(--r); font-size: var(--t-small); line-height: 1.6; color: var(--mut); }
.ls-grazie__contatti p { margin: 0; }
.ls-grazie__contatti b { color: var(--ink); }
.ls-grazie__contatti a { color: var(--ink); text-decoration: underline; text-underline-offset: .15em; }

/* ═══════════════════════════════════════════════════════════════════════════
   18 · LINGUA — 15/10/2026. Il tasto EN / IT (inc/ls-lingua.php → ls_lang_switcher()),
   nella barra prima della lente e nel piede del menu mobile. Stesso registro di .is-b2b
   (13 px, 600, maiuscole, .08em), altezza 44 come .ls-tool, attivo --ink con la riga
   2 px --acc della barra, l'altro --mut, hover --acc-ink, separatore 1 px --line.
   Niente bandiere, niente select, niente JS per il cambio: sono due link.
   ═══════════════════════════════════════════════════════════════════════════ */
.ls-lang { display: inline-flex; align-items: center; height: 44px; flex: none; }
.ls-lang a { position: relative; display: inline-flex; align-items: center; justify-content: center; min-width: 44px; height: 44px; padding-inline: 3px; font-size: var(--t-label); font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--mut); white-space: nowrap; transition: color var(--t-fast) var(--ease); }
.ls-lang a:hover { color: var(--acc-ink); }
.ls-lang a[aria-current] { color: var(--ink); }
.ls-lang a[aria-current]::after { content: ""; position: absolute; left: 10px; right: 10px; bottom: 4px; height: 2px; background: var(--acc); }
.ls-lang__sep { width: 1px; height: 16px; background: var(--line); }
.ls-menu__foot .ls-lang a { min-height: 44px; font-size: var(--t-label); }

/* ═══════════════════════════════════════════════════════════════════════════
   19 · SFONDI — 15/10/2026, lotto 10. I posti per le immagini di atmosfera nelle testate
   (categorie ×3, Materials, Business, Contact, 404) e la sostituzione dell'hero. Il markup lo
   stampa ls_sfondo() (inc/ls-media.php) SOLO se il file c'è: senza file nessuna di queste
   regole aggancia niente e la pagina resta quella di prima.
   Il velo usa --g (#141311): a desktop 85 % fin dove arriva il testo (bordo sinistro del
   contenuto + 640 px), poi scende a 40 % sul bordo destro; sotto i 960 px è uniforme 70 %.
   Contrasto sul punto più chiaro possibile (immagine bianca pura sotto il velo), testo --ink:
   velo 85 % → 10,2:1 · velo 70 % → 5,9:1. --mut e --acc-ink non reggono (4,05 e 3,99 a 85 %;
   2,3 a 70 %): dentro una testata con sfondo tutto il testo passa a --ink.
   ═══════════════════════════════════════════════════════════════════════════ */
.ls-con-sfondo { position: relative; isolation: isolate; overflow: hidden; }
.ls-sfondo { position: absolute; inset: 0; z-index: -1; overflow: hidden; }
.ls-sfondo__pic { display: block; width: 100%; height: 100%; }
.ls-sfondo__img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; }
.ls-sfondo::after { content: ""; position: absolute; inset: 0; background: color-mix(in srgb, var(--g) 70%, transparent); }
@media (min-width: 960px) {
  .ls-sfondo::after { background: linear-gradient(90deg,
    color-mix(in srgb, var(--g) 85%, transparent) 0,
    color-mix(in srgb, var(--g) 85%, transparent) calc(max(0px, (100% - var(--wrap)) / 2) + var(--gut) + 640px),
    color-mix(in srgb, var(--g) 40%, transparent) 100%); }
}
.ls-con-sfondo .ls-lede, .ls-con-sfondo .ls-crumb, .ls-con-sfondo .ls-crumb a,
.ls-con-sfondo .ls-eyebrow, .ls-con-sfondo .ls-eyebrow [aria-current] { color: var(--ink); }
.ls-con-sfondo .ls-crumb a:hover { color: var(--ink); text-decoration: underline; text-underline-offset: .15em; }
/* L'hero: il <picture> sta nel contenitore di sempre (.ls-hero__media, col suo velo verticale, che resta).
   Quel velo era tarato sulla foto di oggi (scura, luminanza media 85): su un'immagine chiara il testo scende
   a 1,5:1 (misurato con un'immagine di prova bianca a sinistra). Con un file del tema si aggiunge SOTTO il velo
   di sempre uno strato col token --g: 65 % fin dove arriva il testo (bordo del contenuto + 800 px: l'H1 a 56 px
   ne misura 783), poi 20 % sotto la tessera prodotto; 65 % uniforme sotto i 960 px. Somma col velo verticale
   (≥ 22 % dove sta il testo): ≥ 72 % → testo --ink ≥ 6,5:1 anche su bianco puro (telefono 79 % → 8,1:1).
   Con il ritaglio verticale del telefono (hero-home-390x560.webp) l'inquadratura è già quella giusta. */
.ls-hero__media .ls-sfondo__pic { position: relative; display: block; width: 100%; height: 100%; }
.ls-hero__media .ls-sfondo__pic::after { content: ""; position: absolute; inset: 0; background: color-mix(in srgb, var(--g) 65%, transparent); }
@media (min-width: 960px) {
  .ls-hero__media .ls-sfondo__pic::after { background: linear-gradient(90deg,
    color-mix(in srgb, var(--g) 65%, transparent) 0,
    color-mix(in srgb, var(--g) 65%, transparent) calc(max(0px, (100% - var(--wrap)) / 2) + var(--gut) + 800px),
    color-mix(in srgb, var(--g) 20%, transparent) 100%); }
}
@media (max-width: 639px) { .ls-hero__media img.ls-sfondo__img--tel { object-position: 50% 50%; } }

/* La foto «1962» (ls_azienda('foto_1962')): 'archivio' = la stampa vera, incorniciata alla sua misura
   (554×419, mai ingrandita); 'nessuna' = fondo pieno. Con 'gemini' (default) valgono le regole di §8/§11. */
.ls-foto62 { margin: 0; }
.ls-foto62 img { display: block; width: auto; max-width: 100%; height: auto; border-radius: var(--r); }
.ls-foto62 figcaption { margin-top: 8px; font-size: var(--t-small); color: var(--mut); }
.ls-fotone--archivio, .ls-fotone--nessuna { min-height: 0; }
.ls-fotone__testo { display: grid; justify-items: start; gap: 16px; }
@media (min-width: 960px) {
  .ls-fotone__copy:has(> .ls-fotone__testo) { grid-template-columns: minmax(0, 1fr) auto; column-gap: 64px; align-items: end; }
  .ls-fotone__copy > .ls-foto62 { max-width: 554px; }
}
.ls-pg__foto--archivio img { width: auto; max-width: 100%; height: auto; aspect-ratio: auto; object-fit: initial; }
@media (min-width: 960px) { .ls-pg__due.ls-pg__due--solo { grid-template-columns: minmax(0, 760px); } }

/* 20 · Dal CSS aggiuntivo di Ecomus (16/10): il messaggio «Paga in 3 rate» di PayPal Payments era nascosto su carrello e
   cassa; il CSS aggiuntivo è legato al tema e al cambio non passa. Stessa regola, qui. */
.ls .ppcp-messages { display: none; }

/* 21 · Newsletter, l'esito del doppio consenso (17/10, lotto 14, inc/ls-conferma.php): una riga sola, fissa in basso sotto il
   bordo del gutter, perché wp_body_open la stampa prima della barra fissa e lì resterebbe coperta. Esiste solo con Brevo acceso
   e con ?iscrizione= nell'URL. Sopra .ls-su (95) e .ls-barra-acq (90), sotto il menu (150). */
.ls-iscrizione { position: fixed; left: var(--gut); right: var(--gut); bottom: var(--gut); z-index: 120; margin: 0 auto; max-width: 640px; padding: 14px 18px; background: var(--g2); color: var(--ink); border: 1px solid var(--line); border-left: 4px solid var(--acc); border-radius: var(--r); font-size: var(--t-mid); line-height: 1.4; box-shadow: 0 8px 24px rgba(0,0,0,.3); }
.ls-iscrizione--ko { border-left-color: var(--err); }
/* lotto 15 · la conferma è un bottone (POST), non il link: gli scanner delle caselle aziendali aprono ogni link. E la trappola per i bot del modulo, fuori schermo ma non display:none (alcuni bot saltano i campi nascosti così). */
.ls-iscrizione > p { margin: 0 0 12px; }
.ls-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* 22 · Legali (19/10, lotto 19): le 4 pagine fuori da Elementor, post_content pulito (h2/p/ul/ol/a/hr) reso da page.php.
   Colonna di lettura 72ch (non i 760 px delle istituzionali), titoli di sezione sulla scala h3/h5 coi token, liste con
   il trattino, tabelle come table.ls-norme, ancore che non finiscono sotto la barra fissa. Solo .ls-page--legale. */
.ls-page--legale .ls-page__corpo > * { max-width: 72ch; }
.ls-page--legale .ls-prose h2 { font-size: var(--t-h3); font-weight: 600; margin: 2em 0 .6em; scroll-margin-top: calc(var(--bar-h) + 16px); }
.ls-page--legale .ls-prose h3 { font-family: var(--font-head); text-transform: var(--case-head); letter-spacing: .03em; font-weight: 600; font-size: var(--t-h5); line-height: 1.1; margin: 1.6em 0 .5em; scroll-margin-top: calc(var(--bar-h) + 16px); }
.ls-page--legale .ls-prose > :is(h2, h3):first-child { margin-top: 0; }
.ls-page--legale .ls-prose p, .ls-page--legale .ls-prose li { color: var(--ink); }
.ls-page--legale .ls-prose p strong { font-weight: 600; }
.ls-page--legale .ls-prose hr { border: 0; border-top: 1px solid var(--line); margin: 32px 0; }
.ls-page--legale .ls-prose ul, .ls-page--legale .ls-prose ol { margin: 0 0 1.2em; padding-left: 1.4em; }
.ls-page--legale .ls-prose ul { list-style: none; padding-left: 0; }
.ls-page--legale .ls-prose ul li { position: relative; padding-left: 1.4em; margin-bottom: .4em; }
.ls-page--legale .ls-prose ul li::before { content: "–"; position: absolute; left: 0; color: var(--mut); }
.ls-page--legale .ls-prose ol li { margin-bottom: .4em; padding-left: .3em; }
.ls-page--legale .ls-prose table { width: 100%; border-collapse: collapse; font-size: var(--t-mid); background: var(--g); margin: 0 0 1.5em; }
.ls-page--legale .ls-prose th, .ls-page--legale .ls-prose td { padding: 12px 16px; border: 1px solid var(--line); text-align: left; vertical-align: top; line-height: 1.6; }
.ls-page--legale .ls-prose thead th { font-size: var(--t-eyebrow); letter-spacing: .08em; text-transform: uppercase; color: var(--mut); font-weight: 600; background: var(--g2); }
.ls-page--legale .ls-prose a { overflow-wrap: anywhere; }

/* 22 · I moduli del tema (19/10, lotto 18, inc/ls-moduli.php): Contact e Trade inquiry, al posto di Contact Form 7.
   Campi, etichette e bottone vengono da §7b (.ls-modulo); qui solo la griglia, i gruppi, le caselle, gli errori e l'esito. */
.ls-form { max-width: 640px; }
.ls-form__griglia { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; }
@media (min-width: 640px) { .ls-form__griglia { grid-template-columns: repeat(2, minmax(0, 1fr)); } .ls-form__griglia > .ls-form__campo { grid-column: 1 / -1; } .ls-form__griglia > .ls-form__campo--mezzo { grid-column: auto; } }
.ls-form__campo { display: grid; gap: 6px; align-content: start; min-width: 0; }
.ls-modulo .ls-form__campo label, .ls-modulo .ls-form__scelte legend { margin: 0; }
.ls-form__gruppo { border: 0; padding: 0; margin: 0 0 32px; min-width: 0; }
.ls-modulo .ls-form__gruppo > legend { font-family: var(--font-head); text-transform: var(--case-head); font-weight: 600; font-size: var(--t-h3); letter-spacing: 0; color: var(--ink); margin: 0 0 16px; padding: 0; }
/* (0,2,0) e (0,2,1): sopra `.ls-modulo fieldset` / `.ls-modulo legend` / `.ls-modulo p` di §11 (0,1,1), che qui perderebbero di poco */
.ls-modulo .ls-form__gruppo { display: block; }
.ls-modulo .ls-form__scelte { display: grid; gap: 6px; border: 0; padding: 0; margin: 0; }
.ls-modulo .ls-form__scelte > legend { font: inherit; font-size: var(--t-eyebrow); letter-spacing: .08em; text-transform: uppercase; color: var(--mut); font-weight: 500; margin: 0; padding: 0; }
.ls-form__scelte-in { display: flex; flex-wrap: wrap; gap: 4px 24px; }
/* La casella con il testo in riga: batte l'etichetta maiuscoletta di §7b (.ls :where(.ls-modulo) label, 0,1,1) */
.ls-modulo .ls-form__check { display: inline-flex; align-items: flex-start; gap: 10px; min-height: 44px; margin: 0; font-size: var(--t-mid); letter-spacing: 0; text-transform: none; color: var(--ink); font-weight: 400; line-height: 1.5; cursor: pointer; }
.ls-modulo .ls-form__check input[type="checkbox"] { margin-top: 2px; }
.ls-modulo .ls-form__check a { color: var(--acc-ink); text-decoration: underline; text-underline-offset: .15em; }
.ls-form__consenso { margin-top: 8px; }
.ls-modulo .ls-form__consenso .ls-form__check { font-size: var(--t-small); color: var(--mut); min-height: 0; }
.ls-modulo .ls-form__azione { margin: 24px 0 0; }
.ls-modulo .ls-form textarea { min-height: 140px; height: 180px; }
/* Errori: riga sotto il campo, bordo del campo rosso */
.ls-modulo .ls-form__err { margin: 0; font-size: var(--t-small); color: var(--err); line-height: 1.4; }
.ls-modulo .ls-form__campo.is-err :is(input, select, textarea) { border-color: var(--err); }
.ls-modulo .ls-form__campo.is-err :is(input, select, textarea):focus-visible { border-color: var(--err); outline-color: var(--err); }
/* L'esito: in cima al modulo, con JS e senza */
.ls-modulo .ls-form__esito { margin: 0 0 20px; padding: 12px 16px; border: 1px solid var(--line); border-left: 3px solid var(--acc); border-radius: var(--r); font-size: var(--t-mid); line-height: 1.5; color: var(--ink); }
.ls-modulo .ls-form__esito.is-err { border-left-color: var(--err); }
.ls-modulo .ls-form__esito.is-wait { color: var(--mut); }
.ls-modulo .ls-form__esito:focus-visible { outline: 2px solid var(--acc); outline-offset: 2px; }
.ls-form[data-ls-busy="1"] .ls-btn { opacity: .6; cursor: progress; }

/* ═══════════════════════════════════════════════════════════════════════════
   24 · IL BANNER DEL CONSENSO — 19/10/2026, lotto 17 (inc/ls-consent.php, assets/js/ls-consent.js). Prende il posto di
   Complianz: stesso posto (in basso; 420 px a destra a desktop; a tutta larghezza da telefono), stessi token. Le regole
   (19/10 sera: le regole `cmplz` sono state tolte, Complianz va via col carico.)
   NON è modale: nessuno scrim, lo scroll resta libero, il focus resta alla pagina. Sale sopra la barra d'acquisto quando
   c'è (la barra non può salire: nasconderebbe «Accept»). Sopra il carrello (160) e il menu (150), sotto lo skip (200).
   ⚠️ Accetta e Rifiuta hanno la STESSA classe (.ls-cc__btn): stessa forma, stesso contrasto. Niente arancio: non c'è una
   CTA commerciale, e colorare «Accetta» mentre «Rifiuta» resta grigio è il nudging che il Garante contesta.
   ═══════════════════════════════════════════════════════════════════════════ */
.ls-cc[hidden] { display: none; }
.ls-cc { position: fixed; left: 0; right: 0; bottom: 0; z-index: 170; display: flex; justify-content: flex-end; pointer-events: none; }
.ls-cc__box { pointer-events: auto; width: 100%; max-width: 420px; max-height: calc(100vh - var(--bar-h) - 24px); overflow-y: auto; margin: 0 16px 16px; padding: 20px; background: var(--g2); color: var(--ink); border: 1px solid var(--line); border-radius: var(--r); box-shadow: 0 12px 40px rgba(0,0,0,.45); font-family: var(--font-body); font-size: var(--t-small); }
.ls-cc__box:focus { outline: none; }
.ls-cc__box:focus-visible { outline: 2px solid var(--ink); outline-offset: 3px; }
.ls .ls-cc__title { margin: 0 0 8px; font-family: var(--font-head); text-transform: var(--case-head); font-size: var(--t-h3); font-weight: 600; line-height: 1.15; color: var(--ink); }
.ls-cc__desc { margin: 0 0 8px; font-size: var(--t-small); line-height: 1.5; color: var(--mut); }
.ls-cc__links { margin: 0 0 16px; font-size: var(--t-label); color: var(--mut); }
.ls .ls-cc__link { color: var(--acc-ink); text-decoration: underline; text-underline-offset: 2px; }
.ls .ls-cc__link:is(:hover, :focus-visible) { color: var(--ink); }
.ls-cc__prefs[hidden] { display: none; }
.ls-cc__prefs { margin: 0 0 16px; border-top: 1px solid var(--line); }
.ls-cc__row { display: flex; align-items: center; gap: 16px; padding: 12px 0; border-bottom: 1px solid var(--line); }
.ls-cc__rowtxt { display: block; flex: 1 1 auto; cursor: pointer; }
.ls-cc__row:first-child .ls-cc__rowtxt { cursor: default; }
.ls-cc__rowt { display: block; font-size: var(--t-label); font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--ink); }
.ls-cc__rowd { display: block; margin-top: 3px; font-size: var(--t-small); line-height: 1.45; color: var(--mut); }
.ls-cc__always { flex: 0 0 auto; font-size: var(--t-micro); letter-spacing: .06em; text-transform: uppercase; color: var(--mut); }
/* L'interruttore è un vero checkbox (tastiera e screen reader nativi). */
.ls .ls-cc__sw { flex: 0 0 auto; appearance: none; -webkit-appearance: none; width: 46px; height: 26px; margin: 0; border: 1px solid var(--mut); border-radius: 999px; background: var(--line); position: relative; cursor: pointer; }
.ls-cc__sw::after { content: ""; position: absolute; top: 3px; left: 3px; width: 18px; height: 18px; border-radius: 50%; background: var(--ink); transition: transform var(--t-fast) var(--ease); }
.ls .ls-cc__sw:checked { background: var(--acc); border-color: var(--acc); }
.ls-cc__sw:checked::after { transform: translateX(20px); background: var(--onacc); }
.ls .ls-cc__sw:focus-visible { outline: 2px solid var(--ink); outline-offset: 3px; }
.ls-cc__actions { display: flex; flex-wrap: wrap; gap: 8px; }
.ls .ls-cc__btn { flex: 1 1 calc(50% - 4px); min-height: 44px; padding: 10px 14px; font-family: var(--font-body); font-size: var(--t-label); font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--ink); background: transparent; border: 1px solid var(--ink); border-radius: 0; cursor: pointer; transition: background var(--t-fast) var(--ease), color var(--t-fast) var(--ease); }
.ls .ls-cc__btn:is(:hover, :focus-visible) { background: var(--ink); color: var(--g); }
.ls .ls-cc__btn--alt { flex: 1 1 100%; color: var(--mut); border-color: var(--line); }
.ls .ls-cc__btn--alt:is(:hover, :focus-visible) { background: transparent; color: var(--ink); border-color: var(--ink); }
.ls .ls-cc__btn--alt[hidden] { display: none; }
/* Il bottone «Cookie» nel piede legale (lo mette ls-consent.js) e nella cookie policy: un link, non un bottone. */
.ls-foot__legal .ls-cc__revoke, .ls-prose .ls-cc__revoke--inline { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; text-decoration: underline; text-underline-offset: .15em; }
.ls-foot__legal .ls-cc__revoke:is(:hover, :focus-visible), .ls-prose .ls-cc__revoke--inline:is(:hover, :focus-visible) { color: var(--ink); }
.ls-prose .ls-cc__revoke--inline { color: var(--acc-ink); }
.ls-cc__revoke--float { position: fixed; left: 12px; bottom: 12px; z-index: 90; padding: 8px 14px; font-size: var(--t-micro); letter-spacing: .06em; text-transform: uppercase; color: var(--ink); background: var(--g2); border: 1px solid var(--line); border-radius: 999px; cursor: pointer; }
/* Con la barra d'acquisto in pagina il banner sale di quanto è alta (12 + 48 + max(12, safe-area) + 1), come faceva con Complianz. */
@media (min-width: 640px) {
  body:has(.ls-barra-acq:not([hidden])) .ls-cc { bottom: 84px; }
}
@media (max-width: 639px) {
  .ls-cc__box { max-width: none; margin: 0; border-radius: var(--r) var(--r) 0 0; border-left: 0; border-right: 0; border-bottom: 0; padding: 16px var(--gut) max(16px, env(safe-area-inset-bottom)); }
  /* il testo si taglia a 4 righe: i link e i tre bottoni devono stare sopra la piega del telefono */
  .ls-cc__desc { display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
  .ls-cc__rowd { -webkit-line-clamp: 2; display: -webkit-box; -webkit-box-orient: vertical; overflow: hidden; }
  body:has(.ls-barra-acq:not([hidden])) .ls-cc { bottom: calc(61px + max(12px, env(safe-area-inset-bottom, 0px))); }
  body:has(.ls-barra-acq:not([hidden])) .ls-cc__box { max-height: calc(100vh - var(--bar-h) - 90px); padding-bottom: 16px; border-radius: var(--r) var(--r) 0 0; }
}
@media (prefers-reduced-motion: reduce) { .ls-cc__sw::after, .ls .ls-cc__btn { transition: none; } }
@media (forced-colors: active) { .ls-cc__box { border: 1px solid CanvasText; } .ls .ls-cc__btn { border: 1px solid ButtonText; } .ls .ls-cc__sw { border: 1px solid CanvasText; } .ls-cc__sw:checked::after { background: Highlight; } }
/* La tabella dei cookie (page-cookie-policy-ue.php): da telefono scorre dentro il suo riquadro, non allarga la pagina. */
.ls-prose .ls-cookie-tab { display: block; overflow-x: auto; max-width: 100%; margin: 12px 0 24px; border-collapse: collapse; font-size: var(--t-small); }
.ls-prose .ls-cookie-tab th, .ls-prose .ls-cookie-tab td { text-align: left; vertical-align: top; padding: 8px 10px 8px 0; border-bottom: 1px solid var(--line); color: var(--mut); }
.ls-prose .ls-cookie-tab th { color: var(--ink); font-weight: 600; font-size: var(--t-label); text-transform: uppercase; letter-spacing: .04em; }
.ls-prose .ls-cookie-tab code { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: var(--t-small); color: var(--ink); }
