/* christianerrico.it, foglio di stile unico.
   Identità dal Brand System: solo Poppins, scala di grigi, nessun colore accento.
   La gerarchia si ottiene con peso, dimensione e spaziatura. Prefisso classi: ce- */

@font-face { font-family: "Poppins"; font-weight: 300; font-style: normal; font-display: swap; src: url("/assets/fonts/poppins-300.woff2") format("woff2"); }
@font-face { font-family: "Poppins"; font-weight: 300; font-style: italic; font-display: swap; src: url("/assets/fonts/poppins-300-italic.woff2") format("woff2"); }
@font-face { font-family: "Poppins"; font-weight: 400; font-style: normal; font-display: swap; src: url("/assets/fonts/poppins-400.woff2") format("woff2"); }
@font-face { font-family: "Poppins"; font-weight: 500; font-style: normal; font-display: swap; src: url("/assets/fonts/poppins-500.woff2") format("woff2"); }
@font-face { font-family: "Poppins"; font-weight: 600; font-style: normal; font-display: swap; src: url("/assets/fonts/poppins-600.woff2") format("woff2"); }

:root {
  --fondo: #ECECE8;
  --fondo-2: #DEDED9;
  --testo: #111111;
  --testo-2: #333333;
  --testo-3: #666666;
  --fondo-chiaro: #F5F5F5;
  --carta: #FFFFFF;
  --linea: rgba(10, 10, 10, 0.14);
  --velo: rgba(255, 255, 255, 0.4);
  --inverso-fondo: #111111;
  --inverso-testo: #ECECE8;
  --errore: #B3261E;
  --lato: 24px;
  --testata: 64px;
  color-scheme: light;
}
:root[data-tema="scuro"] {
  --fondo: #0B0B0B;
  --fondo-2: #1F1F1F;
  --testo: #FFFFFF;
  --testo-2: #CCCCCC;
  --testo-3: #9A9A9A;
  --fondo-chiaro: #151515;
  --carta: #1E1E1E;
  --linea: rgba(243, 242, 240, 0.18);
  --velo: rgba(255, 255, 255, 0.06);
  --inverso-fondo: #F3F2F0;
  --inverso-testo: #0B0B0B;
  --errore: #FF8A80;
  color-scheme: dark;
}
@media (min-width: 768px) { :root { --lato: 48px; --testata: 72px; } }
@media (min-width: 1100px) { :root { --lato: 96px; } }

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--testata) + 16px); }
body {
  margin: 0; background: var(--fondo); color: var(--testo);
  font-family: "Poppins", system-ui, -apple-system, "Segoe UI", sans-serif; font-weight: 400;
  font-size: 16px; line-height: 1.65; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden; min-height: 100vh; display: flex; flex-direction: column;
}
main { flex: 1; padding-top: var(--testata); }
img, video, svg { max-width: 100%; height: auto; display: block; }
h1, h2, h3, h4 { font-weight: 400; margin: 0; letter-spacing: -0.01em; }
p { margin: 0; }
a { color: inherit; }
strong { font-weight: 600; color: var(--testo); }
ul, ol { margin: 0; padding: 0; }
button { font: inherit; color: inherit; }
:focus-visible { outline: 2px solid var(--testo); outline-offset: 3px; }
::selection { background: var(--testo); color: var(--fondo); }

.ce-salta { position: absolute; left: -9999px; top: 0; background: var(--testo); color: var(--fondo); padding: 12px 16px; z-index: 100; }
.ce-salta:focus { left: 8px; top: 8px; }
.ce-nascosto { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Testata */
.ce-testata { position: fixed; inset: 0 0 auto 0; z-index: 50; background: color-mix(in srgb, var(--fondo) 86%, transparent); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); border-bottom: 1px solid transparent; transition: border-color .3s; }
.ce-testata.ce-scorsa { border-bottom-color: var(--linea); }
.ce-testata__riga { height: var(--testata); padding: 0 var(--lato); display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.ce-marchio { font-size: 12px; font-weight: 500; letter-spacing: 0.2em; text-transform: uppercase; text-decoration: none; white-space: nowrap; }
.ce-nav { display: none; align-items: center; gap: 28px; }
.ce-nav a { font-size: 13px; font-weight: 400; color: var(--testo-2); text-decoration: none; padding: 12px 0; transition: color .2s; }
.ce-nav a:hover, .ce-nav a[aria-current="page"] { color: var(--testo); }
.ce-nav a[aria-current="page"] { text-decoration: underline; text-underline-offset: 6px; text-decoration-thickness: 1px; }
.ce-nav .ce-nav__azione { color: var(--inverso-testo); background: var(--inverso-fondo); padding: 9px 16px; }
.ce-nav .ce-nav__azione:hover { color: var(--inverso-testo); opacity: .85; }
.ce-nav .ce-nav__azione[aria-current="page"] { color: var(--inverso-testo); text-decoration: none; }
.ce-testata__comandi { display: flex; align-items: center; gap: 4px; }
.ce-icona-btn { width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center; background: none; border: 0; cursor: pointer; color: var(--testo); }
.ce-icona-btn:hover { opacity: .6; }
.ce-icona-btn svg { width: 20px; height: 20px; }
.ce-tema .ce-tema__sole { display: none; }
:root[data-tema="scuro"] .ce-tema .ce-tema__sole { display: block; }
:root[data-tema="scuro"] .ce-tema .ce-tema__luna { display: none; }
.ce-menu-btn .ce-menu-btn__chiudi { display: none; }
.ce-menu-btn[aria-expanded="true"] .ce-menu-btn__chiudi { display: block; }
.ce-menu-btn[aria-expanded="true"] .ce-menu-btn__apri { display: none; }
.ce-nav-mobile { display: none; flex-direction: column; padding: 8px var(--lato) 20px; border-top: 1px solid var(--linea); background: var(--fondo); }
.ce-nav-mobile.ce-aperto { display: flex; }
.ce-nav-mobile a { min-height: 50px; display: flex; align-items: center; font-size: 16px; font-weight: 400; color: var(--testo-2); text-decoration: none; border-bottom: 1px solid var(--linea); }
.ce-nav-mobile a[aria-current="page"] { color: var(--testo); }
@media (min-width: 900px) {
  .ce-nav { display: flex; }
  .ce-menu-btn, .ce-nav-mobile, .ce-nav-mobile.ce-aperto { display: none; }
}

/* Elementi comuni */
.ce-sezione { padding: 72px var(--lato); border-top: 1px solid var(--linea); }
@media (min-width: 768px) { .ce-sezione { padding: 104px var(--lato); } }
.ce-sezione--prima { border-top: 0; padding-top: 48px; }
@media (min-width: 768px) { .ce-sezione--prima { padding-top: 88px; } }
.ce-etichetta { font-size: 12px; font-weight: 500; letter-spacing: 0.12em; text-transform: uppercase; color: var(--testo-3); margin: 0 0 36px; }
.ce-etichetta--stretta { margin-bottom: 14px; }
.ce-titolo-1 { font-size: clamp(28px, 5.2vw, 48px); line-height: 1.18; max-width: 24ch; }
.ce-titolo-1--largo { max-width: 30ch; }
.ce-titolo-2 { font-size: clamp(24px, 4.2vw, 38px); line-height: 1.2; font-weight: 300; }
.ce-titolo-3 { font-size: clamp(19px, 2.4vw, 24px); line-height: 1.3; }
.ce-tenue { color: var(--testo-3); }
.ce-sommario { font-size: clamp(16px, 1.6vw, 19px); color: var(--testo-2); max-width: 62ch; margin-top: 20px; line-height: 1.7; }
.ce-prosa > * + * { margin-top: 1.1em; }
.ce-prosa p, .ce-prosa li { color: var(--testo-2); }
.ce-prosa em { font-style: italic; }
.ce-link { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font-size: 14px; font-weight: 500; text-decoration: none; }
.ce-link svg { width: 16px; height: 16px; transition: transform .3s; flex: none; }
.ce-link:hover { color: var(--testo-2); }
.ce-link:hover svg { transform: translateX(4px); }
.ce-btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 52px; padding: 0 28px; background: var(--inverso-fondo); color: var(--inverso-testo); font-size: 14px; font-weight: 500; text-decoration: none; border: 1px solid var(--inverso-fondo); cursor: pointer; transition: opacity .2s; }
.ce-btn:hover { opacity: .85; }
.ce-btn[disabled] { opacity: .5; cursor: default; }
.ce-btn svg { width: 16px; height: 16px; }
.ce-btn--chiaro { background: transparent; color: var(--testo); border-color: var(--linea); }
.ce-btn--su-inverso { background: var(--inverso-testo); color: var(--inverso-fondo); border-color: var(--inverso-testo); }
.ce-azioni { display: flex; flex-wrap: wrap; gap: 12px 28px; align-items: center; margin-top: 32px; }

/* Comparsa allo scorrimento: attiva solo con JavaScript */
.ce-js [data-anima] { opacity: 0; transform: translateY(18px); transition: opacity .7s ease-out, transform .7s ease-out; }
.ce-js [data-anima].ce-visibile { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .ce-js [data-anima] { opacity: 1; transform: none; transition: none; }
  .ce-nastro__testo { animation: none !important; }
}

/* Home: apertura */
.ce-apertura { padding: 40px var(--lato) 40px; display: grid; gap: 36px; }
.ce-apertura__sopra { font-size: 12px; font-weight: 500; letter-spacing: 0.12em; text-transform: uppercase; color: var(--testo-3); margin-bottom: 14px; }
.ce-apertura__foto { width: min(70%, 280px); margin: 0; }
.ce-apertura__cornice { overflow: hidden; }
.ce-apertura__foto img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; filter: grayscale(1); transition: filter .7s, transform .7s; }
.ce-apertura__foto:hover img { filter: none; transform: scale(1.04); }
.ce-apertura__foto figcaption { margin-top: 12px; font-size: 13px; line-height: 1.5; color: var(--testo-3); max-width: 30ch; }
@media (min-width: 900px) {
  .ce-apertura { grid-template-columns: minmax(0, 1fr) 280px; column-gap: 80px; align-items: center; padding-top: 64px; padding-bottom: 48px; }
  .ce-apertura__foto { width: 100%; }
}

/* Loghi clienti */
.ce-loghi { padding: 20px 0 56px; position: relative; }
.ce-loghi .ce-etichetta { padding: 0 var(--lato); margin-bottom: 24px; }
.ce-loghi__striscia { display: flex; gap: 28px; align-items: center; overflow-x: auto; padding: 0 var(--lato); scroll-snap-type: x mandatory; scrollbar-width: none; list-style: none; }
.ce-loghi__striscia::-webkit-scrollbar { display: none; }
.ce-logo { flex: none; width: 150px; height: 78px; display: flex; align-items: center; justify-content: center; padding: 12px; scroll-snap-align: start; }
.ce-logo img { max-width: 100%; max-height: 100%; object-fit: contain; }
:root[data-tema="scuro"] .ce-logo { background: #ECECE8; }
.ce-loghi__freccia { display: none; position: absolute; top: 58%; width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--linea); background: var(--fondo); align-items: center; justify-content: center; cursor: pointer; }
.ce-loghi__freccia svg { width: 18px; height: 18px; }
.ce-loghi__freccia--sx { left: 12px; } .ce-loghi__freccia--dx { right: 12px; }
@media (min-width: 900px) and (hover: hover) { .ce-loghi__freccia { display: flex; } }
.ce-loghi-griglia { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px; background: var(--linea); border: 1px solid var(--linea); list-style: none; }
.ce-loghi-griglia .ce-logo { width: auto; height: 120px; background: var(--fondo); padding: 24px; }
:root[data-tema="scuro"] .ce-loghi-griglia .ce-logo { background: #ECECE8; }
@media (min-width: 640px) { .ce-loghi-griglia { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1000px) { .ce-loghi-griglia { grid-template-columns: repeat(4, 1fr); } .ce-loghi-griglia--sei { grid-template-columns: repeat(6, 1fr); } }

/* Intestazione di sezione su due colonne */
.ce-intesta { display: grid; gap: 20px; }
.ce-intesta .ce-sommario { margin-top: 0; }
@media (min-width: 1000px) { .ce-intesta { grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: 64px; align-items: end; } .ce-intesta h2 { max-width: 18ch; } }

/* Blocchi della home: si distinguono per il fondo, non per le linee */
.ce-blocco { padding: 80px var(--lato); }
.ce-blocco--chiaro { background: var(--fondo-chiaro); }
.ce-blocco--scuro { background: var(--inverso-fondo); color: var(--inverso-testo); }
.ce-blocco--scuro .ce-etichetta, .ce-blocco--scuro .ce-numero__nome { color: inherit; opacity: .6; }
.ce-blocco--scuro .ce-link { color: inherit; }
@media (min-width: 768px) { .ce-blocco { padding: 112px var(--lato); } }

/* Le cinque tappe: affiancate, il dettaglio compare al passaggio del mouse o al tocco */
.ce-tappe { list-style: none; display: grid; gap: 10px; margin-top: 48px; }
.ce-tappa { position: relative; background: var(--carta); padding: 22px; outline-offset: -2px; transition: background .35s ease, color .35s ease; }
.ce-tappa__testa { display: flex; align-items: center; gap: 14px; }
.ce-tappa__numero { width: 34px; height: 34px; flex: none; border: 1px solid currentColor; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 500; }
.ce-tappa__nome { flex: 1; font-size: 19px; font-weight: 500; }
.ce-tappa__frase { margin-top: 14px; font-size: 17px; line-height: 1.45; font-style: italic; font-weight: 300; }
.ce-tappa__testo { margin-top: 14px; font-size: 14.5px; line-height: 1.6; color: var(--testo-2); }
.ce-tappa__piu { display: none; position: relative; width: 36px; height: 36px; flex: none; background: none; border: 0; cursor: pointer; color: inherit; }
.ce-tappa__piu span::before, .ce-tappa__piu span::after { content: ""; position: absolute; left: 11px; right: 11px; top: 50%; height: 1.5px; background: currentColor; transition: transform .3s; }
.ce-tappa__piu span::after { transform: rotate(90deg); }
.ce-tappa.ce-aperta .ce-tappa__piu span::after { transform: rotate(0); }
.ce-js .ce-tappa__piu { display: inline-block; }
.ce-js .ce-tappa { cursor: pointer; }
.ce-js .ce-tappa__testo { display: none; }
.ce-js .ce-tappa.ce-aperta .ce-tappa__testo { display: block; }
.ce-flusso__nota { margin-top: 32px; color: var(--testo-3); max-width: 70ch; font-size: 14px; }
@media (min-width: 1000px) {
  .ce-tappe { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .ce-tappa { display: flex; flex-direction: column; padding: 26px 22px 28px; }
  .ce-tappa:not(:last-child)::after { content: ""; position: absolute; z-index: 1; right: -8px; top: 43px; width: 7px; height: 7px; border-top: 1px solid var(--testo-3); border-right: 1px solid var(--testo-3); transform: rotate(45deg); }
  .ce-tappa__testa { flex-direction: column; align-items: flex-start; gap: 18px; }
  .ce-tappa__piu { position: absolute; right: 12px; top: 18px; }
}
@media (min-width: 1000px) and (hover: hover) {
  .ce-js .ce-tappa { cursor: default; }
  .ce-js .ce-tappa__piu { display: none; }
  .ce-js .ce-tappa__testo { display: block; margin-top: auto; padding-top: 18px; opacity: 0; transform: translateY(8px); transition: opacity .35s ease, transform .35s ease; }
  .ce-tappa:hover, .ce-tappa:focus-within, .ce-tappa:focus-visible { background: var(--inverso-fondo); color: var(--inverso-testo); }
  .ce-tappa:hover .ce-tappa__testo, .ce-tappa:focus-within .ce-tappa__testo, .ce-tappa:focus-visible .ce-tappa__testo { opacity: .85; transform: none; color: inherit; }
}

/* Prove: la cifra complessiva in apertura del blocco scuro */
.ce-prove__totale { padding-bottom: 64px; margin-bottom: 64px; border-bottom: 1px solid rgba(127, 127, 127, .35); }
.ce-prove__riga { display: grid; gap: 20px; align-items: end; }
.ce-prove__cifra { font-size: clamp(64px, 11vw, 148px); font-weight: 300; line-height: .95; letter-spacing: -0.035em; font-variant-numeric: tabular-nums; white-space: nowrap; }
.ce-prove__frase { font-size: clamp(17px, 1.8vw, 21px); line-height: 1.5; font-weight: 300; opacity: .85; max-width: 40ch; }
@media (min-width: 1000px) { .ce-prove__riga { grid-template-columns: auto minmax(0, 1fr); gap: 64px; } .ce-prove__frase { padding-bottom: 14px; } }

/* Caso studio con numeri, dentro il blocco scuro delle prove */
.ce-caso { display: grid; gap: 48px; }
.ce-caso__sotto { opacity: .75; margin-top: 16px; max-width: 42ch; }
.ce-caso__numeri { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 28px; margin: 0; }
.ce-caso__numeri div { border-top: 1px solid rgba(127, 127, 127, .45); padding-top: 14px; }
.ce-caso .ce-numero__valore { margin: 0; font-size: clamp(34px, 5vw, 60px); font-weight: 300; font-variant-numeric: tabular-nums; }
.ce-caso .ce-numero__nome { margin: 0 0 6px; }
.ce-prove__recensioni { margin-top: 80px; padding-top: 56px; border-top: 1px solid rgba(127, 127, 127, .35); }
@media (min-width: 1000px) { .ce-caso { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: 80px; align-items: center; } }

/* Tre passaggi, senza numeri: una linea che si disegna e una freccia tra un passaggio e l'altro */
.ce-intesta .ce-link { margin-top: 4px; }
.ce-passi { list-style: none; display: grid; gap: 32px; margin-top: 48px; }
.ce-passi li { position: relative; padding-top: 22px; }
.ce-passi li::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 2px; background: var(--testo); transform-origin: left; }
.ce-passi li p { color: var(--testo-2); margin-top: 10px; max-width: 34ch; }
@media (min-width: 900px) {
  .ce-passi { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px; }
  .ce-passi li:not(:last-child)::after { content: ""; position: absolute; right: -24px; top: -4px; width: 9px; height: 9px; border-top: 2px solid var(--testo); border-right: 2px solid var(--testo); transform: rotate(45deg); }
}
.ce-js .ce-passi li::before { transform: scaleX(0); transition: transform .9s cubic-bezier(.65, 0, .35, 1); }
.ce-js .ce-passi.ce-visibile li::before { transform: scaleX(1); }
.ce-js .ce-passi.ce-visibile li:nth-child(2)::before { transition-delay: .35s; }
.ce-js .ce-passi.ce-visibile li:nth-child(3)::before { transition-delay: .7s; }

/* Metodo: apertura senza foto */
.ce-blocco--testa { padding-top: 56px; }
@media (min-width: 768px) { .ce-blocco--testa { padding-top: 88px; padding-bottom: 96px; } }
.ce-js .ce-blocco--testa .ce-etichetta, .ce-js .ce-blocco--testa h1, .ce-js .ce-blocco--testa .ce-sommario, .ce-js .ce-blocco--testa .ce-azioni { animation: ce-sali .9s cubic-bezier(.2, .7, .2, 1) both; }
.ce-js .ce-blocco--testa h1 { animation-delay: .08s; }
.ce-js .ce-blocco--testa .ce-sommario { animation-delay: .22s; }
.ce-js .ce-blocco--testa .ce-azioni { animation-delay: .34s; }

/* Metodo: le cinque tappe in dettaglio, una riga per tappa */
.ce-dettagli { list-style: none; display: grid; gap: 10px; margin-top: 48px; }
.ce-dettaglio { background: var(--carta); padding: 24px; display: grid; gap: 20px; }
.ce-dettaglio__nome { display: flex; align-items: center; gap: 14px; }
.ce-dettaglio__nome h3 { font-size: 19px; font-weight: 500; }
.ce-dettaglio__etichetta { font-size: 12px; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; color: var(--testo-3); margin-bottom: 6px; }
.ce-dettaglio p:not(.ce-dettaglio__etichetta) { color: var(--testo-2); line-height: 1.6; }
@media (min-width: 900px) { .ce-dettaglio { grid-template-columns: minmax(0, 3fr) minmax(0, 4fr) minmax(0, 4fr); gap: 40px; padding: 28px 32px; align-items: start; } }

/* Metodo: passaggi con durata e consegna */
.ce-passi--dettaglio li { display: flex; flex-direction: column; }
.ce-passi li .ce-passo__durata { align-self: flex-start; display: inline-block; margin-top: 12px; padding: 5px 10px; border: 1px solid var(--testo); color: var(--testo); font-size: 12px; font-weight: 500; letter-spacing: .08em; text-transform: uppercase; max-width: none; }
.ce-passi dl { margin: 22px 0 0; display: grid; gap: 18px; }
.ce-passi dt { font-size: 12px; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; color: var(--testo-3); margin-bottom: 4px; }
.ce-passi dd { margin: 0; color: var(--testo-2); line-height: 1.6; max-width: 36ch; }

/* Chi sono: apertura con sfondo animato (cinque linee del flusso) */
.ce-chi-apertura { position: relative; overflow: hidden; isolation: isolate; padding: 48px var(--lato) 56px; display: grid; gap: 36px; }
.ce-sfondo { position: absolute; inset: 0; width: 100%; height: 100%; z-index: -1; pointer-events: none; -webkit-mask-image: linear-gradient(90deg, rgba(0,0,0,.12) 0%, rgba(0,0,0,.25) 45%, #000 80%); mask-image: linear-gradient(90deg, rgba(0,0,0,.12) 0%, rgba(0,0,0,.25) 45%, #000 80%); }
.ce-sfondo__linea { fill: none; stroke: var(--testo); stroke-width: 1; opacity: .16; stroke-dasharray: 2 10 40 10; animation: ce-scorri var(--ce-v, 10s) linear infinite; }
.ce-sfondo__punto { fill: var(--testo); opacity: .45; }
@keyframes ce-scorri { to { stroke-dashoffset: -248; } }
@media (max-width: 899px) { .ce-sfondo { top: auto; bottom: 0; height: 420px; -webkit-mask-image: linear-gradient(180deg, transparent 0%, #000 45%); mask-image: linear-gradient(180deg, transparent 0%, #000 45%); } }
.ce-chi-apertura__testo { position: relative; }
.ce-chi-apertura .ce-apertura__foto { width: min(70%, 280px); }
.ce-chi-numeri { display: grid; gap: 20px; padding-top: 28px; border-top: 1px solid var(--linea); position: relative; }
.ce-chi-numeri .ce-numero__valore { font-size: clamp(40px, 5vw, 64px); font-weight: 300; font-variant-numeric: tabular-nums; }
.ce-chi-numeri__testo { font-size: 14px; color: var(--testo-3); max-width: 30ch; margin-top: 4px; }
@media (min-width: 760px) { .ce-chi-numeri { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px; } }
@media (min-width: 900px) {
  .ce-chi-apertura { grid-template-columns: minmax(0, 1fr) 280px; column-gap: 80px; align-items: center; padding-top: 72px; padding-bottom: 64px; }
  .ce-chi-apertura .ce-apertura__foto { width: 100%; }
  .ce-chi-numeri { grid-column: 1 / -1; margin-top: 16px; }
}
.ce-js .ce-chi-apertura__testo > * { animation: ce-sali .9s cubic-bezier(.2, .7, .2, 1) both; }
.ce-js .ce-chi-apertura__testo > :nth-child(2) { animation-delay: .08s; }
.ce-js .ce-chi-apertura__testo > :nth-child(3) { animation-delay: .22s; }
.ce-js .ce-chi-apertura__testo > :nth-child(4) { animation-delay: .34s; }

/* Chi sono: fascia Jabil */
.ce-blocco--scuro strong { color: inherit; }
.ce-oggi__testa { display: grid; gap: 28px; align-items: end; }
.ce-oggi__testa h2 { max-width: 22ch; }
.ce-oggi__marchio { background: #FFFFFF; padding: 22px 28px; display: inline-flex; align-items: center; justify-self: start; }
.ce-oggi__marchio img { width: 170px; height: auto; }
.ce-oggi__logo-riquadro { height: 22px; width: auto; margin-bottom: 18px; }
.ce-solo-scuro { display: none; }
:root[data-tema="scuro"] .ce-solo-scuro { display: block; }
:root[data-tema="scuro"] .ce-solo-chiaro { display: none; }
.ce-oggi__dato { margin-top: 24px; padding-top: 20px; border-top: 1px solid rgba(127, 127, 127, .4); }
.ce-oggi__cifra { font-size: clamp(40px, 5vw, 60px); font-weight: 300; line-height: 1.05; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; opacity: 1 !important; margin-bottom: 10px; }
.ce-oggi__testo { margin-top: 32px; font-size: clamp(18px, 2vw, 23px); line-height: 1.5; font-weight: 300; max-width: 52ch; opacity: .9; }
.ce-oggi__altri { display: grid; gap: 16px; margin-top: 56px; }
.ce-oggi__riquadro { border: 1px solid rgba(127, 127, 127, .4); padding: 26px; transition: border-color .3s, background .3s; }
.ce-oggi__riquadro:hover { border-color: currentColor; background: rgba(255, 255, 255, .04); }
.ce-oggi__riquadro h3 { font-size: 18px; font-weight: 400; margin-bottom: 10px; }
.ce-oggi__riquadro p { opacity: .78; line-height: 1.6; }
.ce-oggi__riquadro .ce-oggi__dato p:not(.ce-oggi__cifra) { opacity: .9; }
@media (min-width: 900px) { .ce-oggi__testa { grid-template-columns: 1fr auto; } .ce-oggi__altri { grid-template-columns: 1fr 1fr; } }

/* Chi sono: il flusso visto da dentro */
.ce-chi-dentro { display: grid; gap: 40px; }
.ce-chi-tappe { list-style: none; display: grid; gap: 10px; }
.ce-chi-tappa { background: var(--carta); padding: 24px; display: grid; grid-template-columns: 34px 1fr; gap: 18px; transition: background .35s, color .35s, opacity .7s ease, transform .7s ease; }
.ce-chi-tappa h3 { font-size: 19px; font-weight: 500; margin-bottom: 6px; }
.ce-chi-tappa p { color: var(--testo-2); line-height: 1.6; }
@media (hover: hover) { .ce-chi-tappa:hover { background: var(--inverso-fondo); color: var(--inverso-testo); } .ce-chi-tappa:hover p, .ce-chi-tappa:hover strong { color: inherit; } }
@media (min-width: 1000px) {
  .ce-chi-dentro { grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); gap: 72px; align-items: start; }
  .ce-chi-dentro__testa { position: sticky; top: calc(var(--testata) + 32px); }
}

/* Chi sono: percorso con una linea che si riempie scorrendo */
.ce-percorso { list-style: none; position: relative; margin-top: 8px; --ce-avanzamento: 0; }
.ce-percorso::before, .ce-percorso::after { content: ""; position: absolute; left: 6px; top: 8px; bottom: 8px; width: 1px; background: var(--linea); }
.ce-percorso::after { background: var(--testo); bottom: auto; height: calc((100% - 16px) * var(--ce-avanzamento)); transition: height .15s linear; }
.ce-tappa-percorso { position: relative; padding: 0 0 44px 40px; display: grid; gap: 8px; }
.ce-tappa-percorso::before { content: ""; position: absolute; z-index: 1; left: 0; top: 6px; width: 13px; height: 13px; border-radius: 50%; border: 1px solid var(--testo); background: var(--fondo); transition: background .4s, transform .4s; }
.ce-tappa-percorso.ce-passato::before { background: var(--testo); transform: scale(1.15); }
.ce-percorso__anni { font-size: 13px; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; color: var(--testo-3); padding-top: 2px; }
.ce-percorso__chi { font-size: clamp(20px, 2.4vw, 26px); font-weight: 400; line-height: 1.3; }
.ce-percorso__chi strong { font-weight: 600; }
.ce-percorso__dove { display: block; font-size: 14px; color: var(--testo-3); margin-top: 2px; font-weight: 400; }
.ce-tappa-percorso p:not(.ce-percorso__anni) { color: var(--testo-2); line-height: 1.65; margin-top: 10px; max-width: 64ch; }
@media (min-width: 900px) {
  .ce-percorso::before, .ce-percorso::after { left: 176px; }
  .ce-tappa-percorso { grid-template-columns: 140px 1fr; column-gap: 72px; padding-left: 0; padding-bottom: 56px; }
  .ce-tappa-percorso::before { left: 170px; }
  .ce-percorso__anni { text-align: right; }
}

/* Referenze: progetto in evidenza */
.ce-evidenza { display: grid; gap: 40px; align-items: center; }
.ce-evidenza__foto { margin: 0; max-width: 460px; }
.ce-evidenza__foto img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; filter: grayscale(1); transition: filter .7s; }
.ce-evidenza__foto:hover img { filter: none; }
.ce-evidenza__foto figcaption { font-size: 13px; color: var(--testo-3); margin-top: 10px; }
.ce-evidenza__citazione { margin: 24px 0 0; }
.ce-evidenza__citazione p { font-size: clamp(19px, 2.2vw, 26px); line-height: 1.45; font-weight: 300; }
.ce-evidenza__firma { margin-top: 20px; font-size: 14px; color: var(--testo-3); }
@media (min-width: 900px) { .ce-evidenza { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 80px; } }

/* Contatti */
.ce-contatti-pagina { padding-top: 48px; }
@media (min-width: 768px) { .ce-contatti-pagina { padding-top: 80px; } }
.ce-dopo { list-style: none; display: grid; gap: 0; }
.ce-dopo li { display: grid; grid-template-columns: 36px 1fr; gap: 10px; padding: 14px 0; border-top: 1px solid var(--linea); }
.ce-dopo li:last-child { border-bottom: 1px solid var(--linea); }
.ce-dopo span { font-size: 12px; font-weight: 500; color: var(--testo-3); padding-top: 3px; }
.ce-dopo p { color: var(--testo-2); line-height: 1.55; }
.ce-modulo--carta { background: var(--carta); padding: 28px 24px; }
.ce-campo textarea::placeholder { color: var(--testo-3); opacity: 1; }
@media (min-width: 768px) { .ce-modulo--carta { padding: 40px; } }
@media (min-width: 1000px) { .ce-contatti__testo { position: sticky; top: calc(var(--testata) + 32px); } }
.ce-js .ce-contatti__testo > * { animation: ce-sali .9s cubic-bezier(.2, .7, .2, 1) both; }
.ce-js .ce-contatti__testo > :nth-child(2) { animation-delay: .08s; }
.ce-js .ce-contatti__testo > :nth-child(3) { animation-delay: .18s; }
.ce-js .ce-contatti__testo > :nth-child(n+4) { animation-delay: .28s; }
.ce-js .ce-modulo--carta { animation: ce-sali .9s cubic-bezier(.2, .7, .2, 1) .2s both; }

/* Referenze */
.ce-marchio-grande { background: #FFFFFF; height: 128px; display: flex; align-items: center; justify-content: center; padding: 24px 32px; margin-bottom: 24px; }
.ce-marchio-grande img { width: 240px; max-width: 100%; height: auto; }
.ce-referenze__gruppo { font-size: 18px; font-weight: 500; margin: 8px 0 16px; }
.ce-loghi-griglia + .ce-referenze__gruppo { margin-top: 48px; }
.ce-loghi-griglia--carta { background: transparent; border: 0; gap: 10px; }
.ce-loghi-griglia--carta .ce-logo { background: var(--carta); }
.ce-blocco--chiaro .ce-recensione { background: var(--carta); }
.ce-blocco--chiaro .ce-recensioni { background: transparent; border: 0; gap: 10px; }

/* Cinque regole (pagina Metodo) */
.ce-regole { list-style: none; display: grid; gap: 0; }
.ce-regole li { display: grid; grid-template-columns: 40px 1fr; gap: 8px; align-content: start; padding: 16px 0; border-top: 1px solid var(--linea); }
.ce-regole span { font-size: 12px; color: var(--testo-3); padding-top: 4px; }
.ce-regole p { font-size: 16px; font-weight: 400; line-height: 1.45; }
@media (min-width: 1000px) {
  .ce-regole { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 28px; }
  .ce-regole li { grid-template-columns: 1fr; gap: 14px; padding: 20px 0 0; border-top: 1px solid var(--testo); }
}

/* Recensioni: griglia su fondo chiaro, colonne libere nel blocco scuro */
.ce-recensioni { display: grid; gap: 1px; background: var(--linea); border: 1px solid var(--linea); }
.ce-recensione { margin: 0; background: var(--fondo); padding: 28px; display: flex; flex-direction: column; justify-content: space-between; gap: 24px; }
.ce-recensione blockquote { margin: 0; }
.ce-recensione blockquote p { font-size: clamp(16px, 1.6vw, 18px); line-height: 1.55; color: var(--testo); }
.ce-recensione figcaption { display: grid; gap: 2px; font-size: 13px; color: var(--testo-3); }
.ce-recensione figcaption strong { font-size: 14px; font-weight: 500; color: var(--testo); }
.ce-recensioni__totale { margin-top: 18px; font-size: 13px; color: var(--testo-3); }
@media (min-width: 900px) { .ce-recensioni { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.ce-blocco--scuro .ce-recensioni { background: none; border: 0; gap: 40px; }
.ce-blocco--scuro .ce-recensione { background: none; padding: 0; justify-content: flex-start; }
.ce-blocco--scuro .ce-recensione blockquote p { color: inherit; font-size: clamp(17px, 1.7vw, 20px); font-weight: 300; line-height: 1.5; }
.ce-blocco--scuro .ce-recensione figcaption, .ce-blocco--scuro .ce-recensioni__totale { color: inherit; opacity: .65; }
.ce-blocco--scuro .ce-recensione figcaption strong { color: inherit; }

/* Apertura: entrata al caricamento */
@keyframes ce-sali { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
@keyframes ce-svela { from { clip-path: inset(100% 0 0 0); } to { clip-path: inset(0 0 0 0); } }
.ce-js .ce-apertura__sopra, .ce-js .ce-apertura h1, .ce-js .ce-apertura .ce-sommario, .ce-js .ce-apertura .ce-azioni { animation: ce-sali .9s cubic-bezier(.2, .7, .2, 1) both; }
.ce-js .ce-apertura h1 { animation-delay: .08s; }
.ce-js .ce-apertura .ce-sommario { animation-delay: .22s; }
.ce-js .ce-apertura .ce-azioni { animation-delay: .34s; }
.ce-js .ce-apertura__cornice { animation: ce-svela 1.2s cubic-bezier(.2, .7, .2, 1) .15s both; }

/* Comparse in sequenza per i figli di un gruppo */
.ce-js .ce-tappe[data-anima] > li, .ce-js .ce-dettagli[data-anima] > li, .ce-js .ce-passi[data-anima] > li, .ce-js .ce-regole[data-anima] > li, .ce-js .ce-recensioni[data-anima] > figure { opacity: 0; transform: translateY(16px); transition: opacity .7s ease, transform .7s ease, background .35s ease, color .35s ease; }
.ce-js .ce-tappe.ce-visibile > li, .ce-js .ce-dettagli.ce-visibile > li, .ce-js .ce-passi.ce-visibile > li, .ce-js .ce-regole.ce-visibile > li, .ce-js .ce-recensioni.ce-visibile > figure { opacity: 1; transform: none; }
.ce-js .ce-visibile > :nth-child(2) { transition-delay: .1s, .1s, 0s, 0s; }
.ce-js .ce-visibile > :nth-child(3) { transition-delay: .2s, .2s, 0s, 0s; }
.ce-js .ce-visibile > :nth-child(4) { transition-delay: .3s, .3s, 0s, 0s; }
.ce-js .ce-visibile > :nth-child(5) { transition-delay: .4s, .4s, 0s, 0s; }
.ce-js .ce-tappe[data-anima], .ce-js .ce-dettagli[data-anima], .ce-js .ce-passi[data-anima], .ce-js .ce-regole[data-anima], .ce-js .ce-recensioni[data-anima] { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
  .ce-js .ce-apertura__sopra, .ce-js .ce-apertura h1, .ce-js .ce-apertura .ce-sommario, .ce-js .ce-apertura .ce-azioni, .ce-js .ce-apertura__cornice { animation: none; }
  .ce-js .ce-tappe[data-anima] > li, .ce-js .ce-dettagli[data-anima] > li, .ce-js .ce-passi[data-anima] > li, .ce-js .ce-regole[data-anima] > li, .ce-js .ce-recensioni[data-anima] > figure { opacity: 1; transform: none; transition: none; }
  .ce-js .ce-blocco--testa .ce-etichetta, .ce-js .ce-blocco--testa h1, .ce-js .ce-blocco--testa .ce-sommario, .ce-js .ce-blocco--testa .ce-azioni { animation: none; }
  .ce-js .ce-passi li::before { transform: none; transition: none; }
  .ce-tappa, .ce-tappa__testo { transition: none !important; }
  .ce-sfondo__linea { animation: none; }
  .ce-js .ce-contatti__testo > *, .ce-js .ce-modulo--carta { animation: none; }
  .ce-sfondo__punto { display: none; }
  .ce-js .ce-chi-apertura__testo > * { animation: none; }
  .ce-percorso::after { transition: none; }
}

/* Fisarmonica (aree di intervento, FAQ) */
.ce-fisarmonica { max-width: 860px; border-bottom: 1px solid var(--linea); }
.ce-fisarmonica details { border-top: 1px solid var(--linea); }
.ce-fisarmonica summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: 16px; min-height: 68px; padding: 14px 0; }
.ce-fisarmonica summary::-webkit-details-marker { display: none; }
.ce-fisarmonica__numero { font-size: 14px; color: var(--testo-2); flex: none; width: 34px; }
.ce-fisarmonica__titolo { font-size: clamp(16px, 2vw, 20px); font-weight: 400; line-height: 1.35; flex: 1; transition: transform .3s; }
.ce-fisarmonica summary:hover .ce-fisarmonica__titolo { transform: translateX(4px); }
.ce-fisarmonica__segno { flex: none; width: 18px; height: 18px; position: relative; color: var(--testo-2); }
.ce-fisarmonica__segno::before, .ce-fisarmonica__segno::after { content: ""; position: absolute; background: currentColor; left: 0; right: 0; top: 50%; height: 1.5px; transition: transform .3s; }
.ce-fisarmonica__segno::after { transform: rotate(90deg); }
.ce-fisarmonica details[open] .ce-fisarmonica__segno::after { transform: rotate(0); }
.ce-fisarmonica__corpo { padding: 0 34px 28px 50px; max-width: 74ch; }
.ce-fisarmonica--semplice .ce-fisarmonica__corpo { padding-left: 0; }
.ce-fisarmonica__corpo p { color: var(--testo-2); font-size: clamp(15px, 1.5vw, 17px); }
.ce-fisarmonica__corpo p + p { margin-top: 1em; }
@media (max-width: 600px) { .ce-fisarmonica__corpo { padding: 0 0 24px 0; } }

/* Fascia con immagine e motto */
.ce-motto { position: relative; min-height: 56vh; display: flex; align-items: flex-start; overflow: hidden; border-top: 1px solid var(--linea); }
.ce-motto img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .4; }
.ce-motto__testo { position: relative; padding: 64px var(--lato); font-size: clamp(28px, 6.4vw, 56px); line-height: 1.2; font-weight: 400; max-width: 16ch; }
@media (min-width: 768px) { .ce-motto { min-height: 82vh; } .ce-motto__testo { padding-top: 112px; } }

/* Fascia scura di invito */
.ce-invito { background: var(--inverso-fondo); color: var(--inverso-testo); padding: 72px var(--lato); display: grid; gap: 28px; }
.ce-invito h2 { font-size: clamp(26px, 4.6vw, 44px); line-height: 1.18; font-weight: 300; max-width: 22ch; }
.ce-invito p { color: inherit; opacity: .78; max-width: 56ch; }
.ce-invito strong { color: inherit; }
@media (min-width: 900px) { .ce-invito { padding: 96px var(--lato); grid-template-columns: 1fr auto; align-items: end; } .ce-invito--colonna { grid-template-columns: 1fr; } }

/* Righe a due colonne (sequenza, passi, sezioni del caso) */
.ce-righe { border-bottom: 1px solid var(--linea); }
.ce-riga { display: grid; gap: 14px; padding: 32px 0; border-top: 1px solid var(--linea); }
.ce-riga__sopra { font-size: 12px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--testo-2); margin-bottom: 8px; }
.ce-riga__testo { color: var(--testo-2); max-width: 68ch; }
.ce-riga__testo em { font-style: italic; }
@media (min-width: 900px) { .ce-riga { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 56px; padding: 44px 0; } }
.ce-tre { display: grid; gap: 40px; }
.ce-tre h3 { margin-bottom: 12px; }
.ce-tre p { color: var(--testo-2); }
@media (min-width: 900px) { .ce-tre { grid-template-columns: repeat(3, 1fr); gap: 48px; } }
.ce-due { display: grid; gap: 36px; align-items: center; }
.ce-due video, .ce-due img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border: 1px solid var(--linea); filter: grayscale(1); transition: filter .7s; }
.ce-due video:hover, .ce-due img:hover { filter: none; }
@media (min-width: 900px) { .ce-due { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 64px; } }

/* Chi sono */
.ce-chi { display: grid; gap: 40px; }
.ce-chi__figura { margin: 0; max-width: 380px; }
.ce-chi__figura img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; filter: grayscale(1); transition: filter .7s; }
.ce-chi__figura img:hover { filter: none; }
.ce-chi__figura figcaption { font-size: 12px; color: var(--testo-2); margin-top: 10px; line-height: 1.5; }
.ce-chi__testo { max-width: 68ch; }
.ce-chi__testo > p + p { margin-top: 1.3em; }
.ce-chi__testo p { color: var(--testo-2); font-size: clamp(16px, 1.5vw, 18px); }
@media (min-width: 1000px) { .ce-chi { grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); gap: 80px; align-items: start; } .ce-chi__figura { position: sticky; top: calc(var(--testata) + 24px); justify-self: end; } }

/* Schede e numeri */
.ce-scheda { display: grid; gap: 28px; padding: 32px 0; border-top: 1px solid var(--linea); border-bottom: 1px solid var(--linea); text-decoration: none; }
.ce-scheda:hover .ce-link svg { transform: translateX(4px); }
.ce-scheda + .ce-scheda { border-top: 0; }
.ce-scheda h2 { font-size: clamp(24px, 3.6vw, 36px); line-height: 1.2; }
.ce-scheda p { color: var(--testo-2); max-width: 60ch; margin-top: 14px; }
@media (min-width: 900px) { .ce-scheda { grid-template-columns: 200px minmax(0, 3fr) minmax(0, 2fr); gap: 48px; padding: 48px 0; } }
.ce-scheda .ce-numero__valore { font-size: clamp(26px, 3vw, 38px); }
.ce-numeri { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 32px; }
.ce-numeri--quattro { padding: 32px 0; border-top: 1px solid var(--linea); border-bottom: 1px solid var(--linea); }
@media (min-width: 900px) { .ce-numeri--quattro { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.ce-numero__valore { font-size: clamp(28px, 4vw, 44px); line-height: 1.1; font-weight: 400; letter-spacing: -0.02em; white-space: nowrap; }
.ce-numero__nome { font-size: 12px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--testo-2); margin-top: 8px; }

/* Articoli (caso studio, blog, privacy) */
.ce-articolo { padding: 40px var(--lato) 72px; }
@media (min-width: 768px) { .ce-articolo { padding-top: 72px; padding-bottom: 104px; } }
.ce-briciole { font-size: 12px; color: var(--testo-2); display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 32px; list-style: none; }
.ce-briciole a { text-decoration: none; } .ce-briciole a:hover { color: var(--testo); text-decoration: underline; }
.ce-briciole li + li::before { content: "/"; margin-right: 8px; opacity: .5; }
.ce-articolo__testa { max-width: 900px; margin-bottom: 48px; }
.ce-articolo__testa h1 { font-size: clamp(28px, 5.2vw, 50px); line-height: 1.15; }
.ce-articolo__firma { margin-top: 18px; font-size: 13px; color: var(--testo-3); }
.ce-articolo__firma a { color: var(--testo); text-underline-offset: 3px; }
.ce-articolo__meta { font-size: 13px; color: var(--testo-2); display: flex; flex-wrap: wrap; gap: 6px 12px; margin-bottom: 18px; }
.ce-indice { margin: 48px 0; padding: 28px; border: 1px solid var(--linea); background: var(--velo); max-width: 760px; }
.ce-indice ol { list-style: none; display: grid; gap: 4px; }
.ce-indice li { display: flex; gap: 14px; }
.ce-indice li span { color: var(--testo-2); font-size: 13px; width: 24px; flex: none; padding-top: 3px; }
.ce-indice a { text-decoration: none; padding: 5px 0; } .ce-indice a:hover { text-decoration: underline; text-underline-offset: 4px; }
.ce-capitolo { display: grid; gap: 20px; padding: 48px 0; border-top: 1px solid var(--linea); }
.ce-capitolo__testa h2 { font-size: clamp(22px, 3vw, 32px); line-height: 1.22; }
@media (min-width: 1000px) { .ce-capitolo { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 64px; padding: 72px 0; } .ce-capitolo__testa { position: sticky; top: calc(var(--testata) + 24px); align-self: start; } }
.ce-corpo { max-width: 72ch; }
.ce-corpo > * + * { margin-top: 1.2em; }
.ce-corpo p, .ce-corpo li { color: var(--testo-2); font-size: clamp(15.5px, 1.4vw, 17px); }
.ce-corpo h2 { font-size: clamp(22px, 3vw, 30px); line-height: 1.25; margin-top: 2.2em; }
.ce-corpo h3 { font-size: clamp(18px, 2vw, 21px); line-height: 1.35; margin-top: 1.8em; font-weight: 500; }
.ce-corpo ul, .ce-corpo ol { padding-left: 1.3em; display: grid; gap: .5em; }
.ce-corpo a { text-underline-offset: 3px; }
.ce-richiamo { margin: 1.6em 0; padding: 22px 26px; border-left: 2px solid var(--testo); background: var(--velo); font-size: clamp(17px, 1.9vw, 21px); line-height: 1.5; color: var(--testo); font-weight: 300; }
.ce-richiamo span { display: block; } .ce-richiamo span + span { margin-top: .6em; font-size: .86em; color: var(--testo-2); }
.ce-definizione { padding: 22px 26px; border: 1px solid var(--linea); background: var(--velo); }
.ce-definizione p { color: var(--testo); }
.ce-pilastri { display: grid; gap: 22px; list-style: none; padding: 0 !important; }
.ce-pilastri li { display: grid; grid-template-columns: 30px 1fr; gap: 16px; }
.ce-pilastri svg { width: 22px; height: 22px; margin-top: 3px; color: var(--testo); }
.ce-tabella-blocco { margin: 2em 0; overflow-x: auto; }
.ce-tabella-blocco h3 { font-size: 12px !important; font-weight: 400 !important; letter-spacing: .1em; text-transform: uppercase; color: var(--testo-2); margin: 0 0 12px !important; }
.ce-tabella { width: 100%; border-collapse: collapse; font-size: 15px; min-width: 320px; }
.ce-tabella th, .ce-tabella td { text-align: left; padding: 12px 14px 12px 0; border-top: 1px solid var(--linea); vertical-align: top; color: var(--testo-2); }
.ce-tabella thead th { font-weight: 500; color: var(--testo); border-top: 0; border-bottom: 1px solid var(--testo); font-size: 13px; }
.ce-tabella tr:last-child td { border-bottom: 1px solid var(--linea); }
.ce-tabella--tempi td:first-child { white-space: nowrap; color: var(--testo); font-weight: 500; width: 1%; padding-right: 28px; }
.ce-tabella--dati td:last-child { text-align: right; white-space: nowrap; padding-right: 0; color: var(--testo); font-weight: 400; }
.ce-tabella--dati tr.ce-forte td { color: var(--testo); font-weight: 500; }
.ce-barre { margin: 2em 0; padding: 26px; border: 1px solid var(--linea); }
.ce-barre h3 { font-size: 12px !important; font-weight: 400 !important; letter-spacing: .1em; text-transform: uppercase; color: var(--testo-2); margin: 0 0 20px !important; }
.ce-barre__gruppo + .ce-barre__gruppo { margin-top: 22px; }
.ce-barre__periodo { font-weight: 500; font-size: 14px; margin-bottom: 8px; color: var(--testo); }
.ce-barre__riga { display: grid; grid-template-columns: 1fr; gap: 4px; font-size: 13px; color: var(--testo-2); margin-bottom: 8px; }
.ce-barre__traccia { display: flex; align-items: center; gap: 10px; }
.ce-barre__barra { height: 14px; background: var(--testo); opacity: .28; min-width: 3px; }
.ce-barre__barra--piena { opacity: 1; }
.ce-barre__valore { white-space: nowrap; color: var(--testo); font-size: 13px; }
.ce-statistiche { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 1px; background: var(--linea); border: 1px solid var(--linea); margin: 2em 0; }
.ce-statistiche div { background: var(--fondo); padding: 20px; }
.ce-statistiche strong { display: block; font-size: 26px; font-weight: 400; line-height: 1.15; }
.ce-statistiche span { font-size: 13px; color: var(--testo-2); }
.ce-autore { display: flex; gap: 18px; padding: 28px 0; border-top: 1px solid var(--linea); border-bottom: 1px solid var(--linea); margin-top: 56px; max-width: 72ch; }
.ce-autore img { width: 64px; height: 64px; border-radius: 50%; object-fit: cover; filter: grayscale(1); flex: none; }
.ce-autore p { font-size: 14px; color: var(--testo-2); }
.ce-autore__nome { font-weight: 500; color: var(--testo) !important; font-size: 16px !important; margin-bottom: 4px; }
.ce-autore__link { display: flex; gap: 18px; margin-top: 10px; font-size: 13px; }
.ce-elenco-articoli { display: grid; gap: 0; border-bottom: 1px solid var(--linea); list-style: none; }
.ce-voce-articolo { display: block; padding: 32px 0; border-top: 1px solid var(--linea); text-decoration: none; }
.ce-voce-articolo h2, .ce-voce-articolo h3 { font-size: clamp(20px, 2.6vw, 28px); line-height: 1.25; max-width: 30ch; }
.ce-voce-articolo:hover h2, .ce-voce-articolo:hover h3 { text-decoration: underline; text-underline-offset: 6px; text-decoration-thickness: 1px; }
.ce-voce-articolo p { color: var(--testo-2); max-width: 70ch; margin-top: 10px; }
.ce-voce-articolo__meta { font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--testo-2); margin-top: 14px !important; }

/* Moduli */
.ce-contatti { display: grid; gap: 56px; }
@media (min-width: 1000px) { .ce-contatti { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: 96px; align-items: start; } }
.ce-modulo { display: grid; gap: 22px; }
.ce-modulo__coppia { display: grid; gap: 22px; }
@media (min-width: 600px) { .ce-modulo__coppia { grid-template-columns: 1fr 1fr; align-items: end; } }
.ce-campo label { display: block; font-size: 13px; font-weight: 400; color: var(--testo-2); margin-bottom: 6px; }
.ce-campo label small { font-size: 12px; opacity: .8; }
.ce-campo input, .ce-campo select, .ce-campo textarea { width: 100%; font: inherit; font-size: 16px; color: var(--testo); background: transparent; border: 0; border-bottom: 1px solid var(--testo-2); border-radius: 0; padding: 10px 0; min-height: 46px; }
.ce-campo textarea { resize: vertical; min-height: 120px; line-height: 1.5; }
.ce-campo select { appearance: none; background-image: linear-gradient(45deg, transparent 50%, currentColor 50%), linear-gradient(135deg, currentColor 50%, transparent 50%); background-position: calc(100% - 12px) 21px, calc(100% - 7px) 21px; background-size: 5px 5px; background-repeat: no-repeat; padding-right: 28px; }
:root[data-tema="scuro"] .ce-campo select option { color: #111; }
.ce-campo input:focus, .ce-campo select:focus, .ce-campo textarea:focus { outline: none; border-bottom-color: var(--testo); box-shadow: 0 1px 0 var(--testo); }
.ce-campo [aria-invalid="true"] { border-bottom-color: var(--errore); }
.ce-campo__errore { font-size: 13px; color: var(--errore); margin-top: 6px; }
.ce-trappola { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.ce-consenso-riga { display: flex; gap: 12px; align-items: flex-start; font-size: 13px; color: var(--testo-2); }
.ce-consenso-riga input { width: 20px; height: 20px; margin: 2px 0 0; flex: none; accent-color: var(--testo); }
.ce-modulo__esito { font-size: 14px; min-height: 1.5em; }
.ce-modulo__esito[data-stato="errore"] { color: var(--errore); }
.ce-contatti__canali { display: flex; flex-wrap: wrap; gap: 8px 28px; margin-top: 28px; }
.ce-iscrizione { max-width: 760px; }
.ce-iscrizione form { display: flex; flex-wrap: wrap; gap: 16px; align-items: flex-end; margin-top: 28px; }
.ce-iscrizione .ce-campo { flex: 1 1 260px; }

/* Scheda contatto */
.ce-vcard { max-width: 620px; }
.ce-vcard dl { margin: 36px 0; border-bottom: 1px solid var(--linea); }
.ce-vcard dl div { display: flex; justify-content: space-between; gap: 24px; padding: 14px 0; border-top: 1px solid var(--linea); }
.ce-vcard dt { font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--testo-2); }
.ce-vcard dd { margin: 0; text-align: right; }
.ce-lista-semplice { list-style: none; border-bottom: 1px solid var(--linea); }
.ce-lista-semplice li { padding: 12px 0; border-top: 1px solid var(--linea); color: var(--testo-2); }

/* Piede */
.ce-piede { border-top: 1px solid var(--linea); overflow: hidden; }
.ce-piede__riga { padding: 40px var(--lato) 24px; display: grid; gap: 32px; font-size: 13px; color: var(--testo-2); }
.ce-piede__riga a { text-decoration: none; } .ce-piede__riga a:hover { color: var(--testo); text-decoration: underline; text-underline-offset: 3px; }
.ce-piede__nav { display: grid; grid-template-columns: repeat(2, minmax(0, max-content)); gap: 0 40px; list-style: none; }
.ce-piede__nav a, .ce-piede__nav button { min-height: 40px; display: inline-flex; align-items: center; }
.ce-piede__nav button { background: none; border: 0; padding: 0; cursor: pointer; color: inherit; font-size: inherit; }
.ce-piede__nav button:hover { color: var(--testo); text-decoration: underline; text-underline-offset: 3px; }
.ce-piede__dati { display: grid; gap: 4px; align-content: start; }
.ce-piede__dati a { text-decoration: underline; }
@media (min-width: 800px) { .ce-piede__riga { grid-template-columns: 1fr auto 1fr; } .ce-piede__dati { text-align: right; } }
.ce-nastro { pointer-events: none; user-select: none; white-space: nowrap; margin-bottom: -3vw; }
.ce-nastro__testo { display: inline-block; font-size: clamp(56px, 11vw, 190px); font-weight: 600; line-height: 1; letter-spacing: -0.04em; color: var(--testo); opacity: .06; animation: ce-nastro 40s linear infinite; }
@keyframes ce-nastro { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* Banner di consenso */
.ce-consenso { position: fixed; inset: auto 0 0 0; z-index: 60; background: var(--fondo); border-top: 1px solid var(--testo); box-shadow: 0 -8px 28px rgba(0, 0, 0, .1); }
.ce-consenso[hidden] { display: none; }
.ce-consenso__box { padding: 18px var(--lato); display: grid; gap: 14px; }
.ce-consenso__testo { font-size: 13.5px; color: var(--testo-2); max-width: 86ch; line-height: 1.55; }
.ce-consenso__azioni { display: flex; flex-wrap: wrap; gap: 10px 14px; align-items: center; }
.ce-consenso__azioni .ce-btn { min-height: 44px; padding: 0 22px; flex: 1 1 130px; max-width: 220px; }
.ce-consenso__azioni a { font-size: 13px; }
@media (min-width: 900px) { .ce-consenso__box { grid-template-columns: 1fr auto; align-items: center; gap: 32px; } }

/* Pagine brevi */
.ce-breve { min-height: 62vh; display: flex; flex-direction: column; justify-content: center; }
.ce-breve .ce-lista-link { list-style: none; display: flex; flex-wrap: wrap; gap: 4px 28px; margin-top: 24px; }

@media print {
  .ce-testata, .ce-piede, .ce-consenso, .ce-motto, .ce-invito { display: none !important; }
  main { padding-top: 0; }
  body { background: #fff; color: #000; }
}
