/* =========================================================
   IDEAL STAMPI — Sistema di design
   Direzione: rigore svizzero / disegno tecnico CAD
   Griglia geometrica, regole capillari, spazio editoriale.
   Palette istituzionale: bianco/grigio + antracite/nero,
   accento verde foresta, marcatore rosso chirurgico (<1%).
   ========================================================= */

@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@500;600;700&family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap');

/* ---------------------------------------------------------
   1 · TOKEN
   --------------------------------------------------------- */
:root{
  /* sfondi chiari */
  --paper:#FFFFFF;
  --paper-2:#F4F5F6;
  /* blocchi scuri */
  --anthracite:#1A1D20;
  --black:#0D0E10;
  /* inchiostro */
  --ink:#17191C;
  --ink-strong:#0D0E10;
  --ink-muted:#6A7176;
  --ink-faint:#9A9FA4;
  --ink-on-dark:#F2F3F4;
  --muted-on-dark:#92989E;
  /* linee tecniche (1px, grigio medio-soft) */
  --line:#DCDEE0;
  --line-strong:#C5C8CB;
  --line-dark:#2C3036;
  /* accento primario — verde foresta metallico */
  --green:#0A5C36;
  --green-deep:#084A2C;
  --green-on-dark:#3FB37A;
  /* accento secondario — rosso tecnico (micro-dettagli) */
  --red:#D90429;

  --font-display:'Space Grotesk','Inter',sans-serif;
  --font-body:'Inter',sans-serif;
  --font-mono:'JetBrains Mono',monospace;

  --container:1320px;
  --gutter:clamp(1.25rem,4vw,2.75rem);
  --ease:cubic-bezier(.16,.84,.44,1);
}

/* ---------------------------------------------------------
   2 · RESET / BASE
   --------------------------------------------------------- */
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.62;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  /* evita lo scroll orizzontale generato dal menu mobile a scomparsa.
     'clip' (a differenza di 'hidden') non crea un contenitore di scroll,
     quindi l'header sticky e le tendine continuano a funzionare. */
  overflow-x:clip;
}
/* il pannello di navigazione mobile è position:fixed e sfora a destra
   quando è chiuso: lo confiniamo qui senza toccare l'asse verticale. */
.site-header{overflow-x:clip;}
img,video{max-width:100%;height:auto;}
img{display:block;}
a{color:inherit;text-decoration:none;}
ul{margin:0;padding:0;list-style:none;}
button{font-family:inherit;}
svg{display:block;}

h1,h2,h3,h4{
  font-family:var(--font-display);
  color:var(--ink-strong);
  font-weight:600;
  margin:0 0 .55em;
}
h1,h2{line-height:1.05;letter-spacing:-.03em;}
h3{line-height:1.18;letter-spacing:-.02em;}
p{margin:0 0 1.05em;color:var(--ink-muted);}

h1{font-size:clamp(2.4rem,5.4vw,4.6rem);font-weight:600;}
h2{font-size:clamp(1.9rem,3.6vw,3rem);}
h3{font-size:1.22rem;color:var(--ink-strong);}
.lede{font-size:clamp(1.05rem,1.5vw,1.28rem);line-height:1.5;color:var(--ink-muted);max-width:60ch;}

@media (prefers-reduced-motion:reduce){
  *{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;scroll-behavior:auto !important;}
}
:focus-visible{outline:2px solid var(--green);outline-offset:3px;}

::selection{background:var(--green);color:#fff;}

/* ---------------------------------------------------------
   3 · LAYOUT
   --------------------------------------------------------- */
.container{max-width:var(--container);margin:0 auto;padding:0 var(--gutter);}

.section{padding:8rem 0;}
.section--lg{padding:10rem 0;}
.section--tight{padding:5rem 0;}
.section--flush-top{padding-top:0;}
.section--rule{border-top:1px solid var(--line);}
.section--alt{background:var(--paper-2);}

/* contesti scuri: ridefiniscono i token cosicché i componenti
   figli (card, tabelle, doc-row…) si adattino automaticamente */
.section--dark{
  background:var(--anthracite);
  color:var(--ink-on-dark);
  --paper:var(--anthracite);
  --paper-2:#212529;
  --ink:var(--ink-on-dark);
  --ink-strong:#FFFFFF;
  --ink-muted:#A6ABB0;
  --ink-faint:#7C8186;
  --line:var(--line-dark);
  --line-strong:#3A3F45;
  --green:var(--green-on-dark);
}
.section--black{
  background:var(--black);
  color:var(--ink-on-dark);
  --paper:var(--black);
  --paper-2:#16181B;
  --ink:var(--ink-on-dark);
  --ink-strong:#FFFFFF;
  --ink-muted:#9DA2A7;
  --ink-faint:#71767B;
  --line:#23262A;
  --line-strong:#33373C;
  --green:var(--green-on-dark);
}

.grid{display:grid;gap:0;}
.split{display:grid;grid-template-columns:5fr 7fr;gap:clamp(2rem,5vw,5rem);align-items:start;}
.split--even{grid-template-columns:1fr 1fr;}
.split--reverse>*:first-child{order:2;}
@media (max-width:880px){
  .split,.split--even{grid-template-columns:1fr;gap:2.5rem;}
  .split--reverse>*:first-child{order:0;}
}

/* ---------------------------------------------------------
   4 · ELEMENTI SIGNATURE — title block, eyebrow, marcatori
   --------------------------------------------------------- */
.eyebrow{
  display:inline-flex;align-items:center;gap:.7em;
  font-family:var(--font-mono);
  font-size:.72rem;font-weight:500;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--green);
  margin:0 0 1.4em;
}
.eyebrow::before{content:"";width:24px;height:1px;background:currentColor;display:inline-block;}
/* marcatore rosso di precisione — usato pochissimo */
.tick{display:inline-block;width:6px;height:6px;background:var(--red);margin-right:.7em;vertical-align:.08em;}

.section-head{max-width:62ch;margin-bottom:clamp(3rem,6vw,5rem);}
.section-head .lede{margin-top:1.2rem;}

/* indice di sezione tipo "blocco intestazione" di un disegno */
.kicker{
  display:flex;align-items:baseline;gap:1.2rem;
  border-top:1px solid var(--line);
  padding-top:1.1rem;margin-bottom:2.4rem;
  font-family:var(--font-mono);font-size:.74rem;letter-spacing:.1em;
  text-transform:uppercase;color:var(--ink-muted);
}
.kicker .no{color:var(--green);font-weight:600;}

/* ---------------------------------------------------------
   5 · BOTTONI (rettangolari, niente raggio)
   --------------------------------------------------------- */
.btn{
  display:inline-flex;align-items:center;gap:.75em;
  padding:1.05em 1.8em;
  font-family:var(--font-mono);font-size:.78rem;font-weight:500;
  letter-spacing:.1em;text-transform:uppercase;
  border:1px solid transparent;border-radius:0;
  cursor:pointer;white-space:nowrap;
  transition:background .25s var(--ease),color .25s var(--ease),border-color .25s var(--ease);
}
.btn .arr{transition:transform .25s var(--ease);}
.btn:hover .arr{transform:translateX(4px);}
.btn-primary{background:var(--green);color:#fff;border-color:var(--green);}
.btn-primary:hover{background:var(--green-deep);border-color:var(--green-deep);}
.btn-ghost{background:transparent;border-color:var(--line-strong);color:var(--ink-strong);}
.btn-ghost:hover{background:var(--ink-strong);color:var(--paper);border-color:var(--ink-strong);}
.section--dark .btn-ghost,.section--black .btn-ghost{color:var(--ink-on-dark);}
.section--dark .btn-ghost:hover,.section--black .btn-ghost:hover{background:#fff;color:var(--black);border-color:#fff;}
.btn-sm{padding:.7em 1.15em;font-size:.7rem;}

/* dropdown di download (basato su <details>) */
.dl-dd{position:relative;display:inline-block;}
.dl-dd__btn{list-style:none;user-select:none;}
.dl-dd__btn::-webkit-details-marker{display:none;}
.dl-dd__btn::marker{content:"";}
.dl-dd__car{width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .25s var(--ease);}
.dl-dd[open] .dl-dd__car{transform:rotate(-135deg) translateY(-1px);}
.dl-dd__menu{
  position:absolute;top:calc(100% + .5rem);right:0;z-index:30;min-width:230px;
  background:var(--paper);border:1px solid var(--line);
  box-shadow:0 18px 40px -18px rgba(13,14,16,.35);
  display:flex;flex-direction:column;
}
.dl-dd__menu a{
  padding:.85rem 1.1rem;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.06em;
  text-transform:uppercase;color:var(--ink-muted);border-bottom:1px solid var(--line);white-space:nowrap;
  transition:background .2s var(--ease),color .2s var(--ease);
}
.dl-dd__menu a:last-child{border-bottom:0;}
.dl-dd__menu a:hover,.dl-dd__menu a:focus-visible{color:var(--ink-strong);background:var(--paper-2);}
@media (max-width:520px){.dl-dd__menu{right:auto;left:0;}}

.link-arrow{
  display:inline-flex;align-items:center;gap:.55em;
  font-family:var(--font-mono);font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;
  color:var(--green);font-weight:500;
  border-bottom:1px solid transparent;padding-bottom:.2em;
  transition:border-color .25s var(--ease),gap .25s var(--ease);
}
.link-arrow:hover{border-color:var(--green);gap:.9em;}

/* ---------------------------------------------------------
   6 · HEADER / NAV
   --------------------------------------------------------- */
.site-header{
  position:sticky;top:0;z-index:100;
  background:color-mix(in srgb,var(--paper) 88%,transparent);
  backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line);
  transition:background .35s var(--ease),border-color .35s var(--ease),backdrop-filter .35s var(--ease);
}
.nav{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:1.1rem 0;}
.logo{display:flex;align-items:center;gap:.7em;}
/* logo immagine reale: colore su header chiaro, bianco su header trasparente/footer */
.logo-img{height:30px;width:auto;display:block;transition:opacity .35s var(--ease);}
.logo-img--light{display:none;}

/* ---- Header trasparente (overlay) sopra l'hero — solo homepage ---- */
.header--overlay{position:fixed;top:0;left:0;right:0;}
.header--overlay:not(.is-scrolled){
  background:transparent;backdrop-filter:none;border-bottom-color:transparent;
}
.header--overlay:not(.is-scrolled)::before{
  content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:linear-gradient(180deg,rgba(13,14,16,.42),rgba(13,14,16,0));
}
.header--overlay:not(.is-scrolled) .logo-img--dark{display:none;}
.header--overlay:not(.is-scrolled) .logo-img--light{display:block;}
.header--overlay:not(.is-scrolled) .nav-tag{color:rgba(255,255,255,.66);}
.header--overlay:not(.is-scrolled) .nav-toggle{border-color:rgba(255,255,255,.45);}
.header--overlay:not(.is-scrolled) .nav-toggle span,
.header--overlay:not(.is-scrolled) .nav-toggle span::before,
.header--overlay:not(.is-scrolled) .nav-toggle span::after{background:#fff;}
@media (min-width:881px){
  .header--overlay:not(.is-scrolled) .nav-links a{color:rgba(255,255,255,.84);}
  .header--overlay:not(.is-scrolled) .nav-links a:hover,
  .header--overlay:not(.is-scrolled) .nav-links a[aria-current="page"]{color:#fff;}
  .header--overlay:not(.is-scrolled) .nav-links a::after{background:var(--green-on-dark);}
}

/* logo testuale legacy (mantenuto per compatibilità) */
.logo .mark{
  width:34px;height:34px;flex:none;
  border:1.5px solid var(--green);color:var(--green);
  display:grid;place-items:center;
  font-family:var(--font-mono);font-weight:600;font-size:.82rem;letter-spacing:.02em;
}
.logo-text{font-family:var(--font-display);font-weight:700;font-size:1.12rem;letter-spacing:-.02em;color:var(--ink-strong);line-height:1.05;}
.logo-text small{display:block;font-family:var(--font-mono);font-weight:400;font-size:.58rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);}

.nav-links{display:flex;align-items:center;gap:2.1rem;}
.nav-links a{
  font-size:.9rem;color:var(--ink-muted);position:relative;padding:.3rem 0;
  transition:color .2s var(--ease);
}
.nav-links a::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:1.5px;background:var(--green);transition:right .28s var(--ease);}
.nav-links a:hover,.nav-links a[aria-current="page"]{color:var(--ink-strong);}
.nav-links a:hover::after,.nav-links a[aria-current="page"]::after{right:0;}

.nav-meta{display:flex;align-items:center;gap:1.2rem;}
.nav-tag{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);white-space:nowrap;}
.nav-toggle{display:none;width:40px;height:40px;border:1px solid var(--line-strong);background:transparent;cursor:pointer;position:relative;}
.nav-toggle span,.nav-toggle span::before,.nav-toggle span::after{content:"";position:absolute;left:9px;right:9px;height:1.5px;background:var(--ink-strong);transition:transform .25s var(--ease),opacity .25s var(--ease);}
.nav-toggle span{top:50%;transform:translateY(-50%);}
.nav-toggle span::before{top:-6px;}
.nav-toggle span::after{top:6px;}
.nav-toggle.is-open span{background:transparent;}
.nav-toggle.is-open span::before{top:0;transform:rotate(45deg);}
.nav-toggle.is-open span::after{top:0;transform:rotate(-45deg);}

@media (max-width:1040px){.nav-tag{display:none;}}
@media (max-width:880px){
  .nav-links{
    position:fixed;inset:66px 0 0 0;flex-direction:column;align-items:flex-start;justify-content:flex-start;
    gap:0;padding:1.5rem var(--gutter);background:var(--paper);
    transform:translateX(100%);transition:transform .32s var(--ease);overflow-y:auto;
    border-top:1px solid var(--line);
  }
  .nav-links.is-open{transform:translateX(0);}
  .nav-links a{font-size:1.35rem;width:100%;padding:1.15rem 0;border-bottom:1px solid var(--line);}
  .nav-links a::after{display:none;}
  .nav-toggle{display:block;}
}

/* ---------------------------------------------------------
   7 · HERO
   --------------------------------------------------------- */
.hero{padding:clamp(3.5rem,7vw,6.5rem) 0 0;}
.hero-grid{display:grid;grid-template-columns:1.02fr .98fr;gap:clamp(2rem,5vw,4.5rem);align-items:end;}
@media (max-width:960px){.hero-grid{grid-template-columns:1fr;}}
.hero h1{margin:.1em 0 .55em;}
.hero h1 .green{color:var(--green);}
.hero .lede{max-width:46ch;}
.hero-cta{display:flex;gap:1rem;flex-wrap:wrap;margin-top:2.4rem;}

/* immagine hero con sovrapposizione tecnica (registro + quota) */
.hero-figure{position:relative;overflow:hidden;aspect-ratio:5/6;background:var(--paper-2);}
.hero-figure img{width:100%;height:100%;object-fit:cover;}
.hero-figure .reg{position:absolute;width:18px;height:18px;border:1.5px solid var(--green);}
.hero-figure .reg.tl{top:14px;left:14px;border-right:0;border-bottom:0;}
.hero-figure .reg.br{bottom:14px;right:14px;border-left:0;border-top:0;}
.hero-figure .dot-red{position:absolute;top:14px;right:14px;width:7px;height:7px;background:var(--red);}
.hero-figure .dim{
  position:absolute;left:14px;bottom:14px;
  font-family:var(--font-mono);font-size:.68rem;letter-spacing:.08em;
  color:#fff;background:rgba(13,14,16,.62);padding:.5em .75em;backdrop-filter:blur(3px);
}

/* blocco-intestazione dati sotto l'hero */
.titleblock{
  display:grid;grid-template-columns:repeat(4,1fr);
  border:1px solid var(--line);border-bottom:0;margin-top:clamp(3rem,6vw,5rem);
}
.titleblock .cell{padding:1.6rem 1.5rem;border-bottom:1px solid var(--line);border-right:1px solid var(--line);}
.titleblock .cell:nth-child(4n){border-right:0;}
.titleblock .k{font-family:var(--font-mono);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:.6em;}
.titleblock .v{font-family:var(--font-display);font-weight:600;font-size:1.15rem;color:var(--ink-strong);letter-spacing:-.01em;}
@media (max-width:760px){
  .titleblock{grid-template-columns:1fr 1fr;}
  .titleblock .cell:nth-child(4n){border-right:1px solid var(--line);}
  .titleblock .cell:nth-child(2n){border-right:0;}
}

/* ---------------------------------------------------------
   8 · METRICHE (banda scura)
   --------------------------------------------------------- */
.metrics-grid{display:grid;grid-template-columns:repeat(4,1fr);}
.metric{padding:1rem 2rem 1rem 0;border-left:1px solid var(--line);padding-left:2rem;}
.metric:first-child{border-left:0;padding-left:0;}
.metric-num{font-family:var(--font-display);font-weight:600;font-size:clamp(2.2rem,4vw,3.2rem);line-height:1;letter-spacing:-.03em;color:var(--ink-strong);display:flex;align-items:baseline;gap:.12em;}
.metric-num .unit{font-family:var(--font-mono);font-size:.34em;color:var(--green);letter-spacing:0;}
.metric-label{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted);margin-top:1em;display:flex;align-items:center;}
@media (max-width:760px){
  .metrics-grid{grid-template-columns:1fr 1fr;gap:2.5rem 0;}
  .metric{padding:0 1.5rem;border-left:1px solid var(--line);}
  .metric:nth-child(odd){border-left:0;padding-left:0;}
}

/* ---------------------------------------------------------
   9 · CARD / GRIGLIA COMPETENZE
   --------------------------------------------------------- */
.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);}
@media (max-width:820px){.card-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:540px){.card-grid{grid-template-columns:1fr;}}
.card{
  background:var(--paper);padding:2.6rem 2.2rem;
  display:flex;flex-direction:column;gap:.1rem;
  transition:background .25s var(--ease);position:relative;
}
a.card:hover{background:var(--paper-2);}
.card .no{font-family:var(--font-mono);font-size:.74rem;letter-spacing:.08em;color:var(--ink-faint);margin-bottom:1.6rem;}
.card .icon{width:30px;height:30px;color:var(--green);margin-bottom:1.4rem;}
.card .icon svg{width:100%;height:100%;}
.card h3{margin-bottom:.5em;}
.card p{margin-bottom:0;font-size:.95rem;}
.card .more{margin-top:1.4rem;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--green);opacity:0;transform:translateY(4px);transition:opacity .25s var(--ease),transform .25s var(--ease);}
a.card:hover .more{opacity:1;transform:translateY(0);}

/* ---------------------------------------------------------
   10 · PROCESSO NUMERATO (servizi)
   --------------------------------------------------------- */
.process{border-top:1px solid var(--line);}
.process-item{
  display:grid;grid-template-columns:5rem 5fr 7fr;gap:clamp(1.5rem,4vw,4rem);
  padding:clamp(2.5rem,5vw,4.5rem) 0;border-bottom:1px solid var(--line);align-items:start;
}
.process-item .no{font-family:var(--font-mono);font-size:1.05rem;color:var(--green);font-weight:600;padding-top:.2rem;}
.process-item .icon{width:34px;height:34px;color:var(--green);margin-bottom:1.4rem;}
.process-item h2{font-size:clamp(1.5rem,2.4vw,2rem);}
@media (max-width:880px){
  .process-item{grid-template-columns:3rem 1fr;}
  .process-item .p-media{grid-column:1/-1;}
}

/* media tecnico riquadrato a fianco testo */
.p-media{position:relative;overflow:hidden;aspect-ratio:4/3;background:var(--paper-2);border:1px solid var(--line);}
.p-media img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease);}
.p-media:hover img{transform:scale(1.03);}

/* ---------------------------------------------------------
   11 · TABELLE SPECIFICHE
   --------------------------------------------------------- */
.spec{width:100%;border-collapse:collapse;font-family:var(--font-mono);font-size:.82rem;margin-top:1.8rem;}
.spec tr{border-top:1px solid var(--line);}
.spec tr:last-child{border-bottom:1px solid var(--line);}
.spec td{padding:.85em .4em;color:var(--ink-muted);vertical-align:top;}
.spec td:first-child{color:var(--green);width:4.5em;font-weight:600;}

/* Lista servizi */
.svc-list{list-style:none;margin:1.8rem 0 0;padding:0;display:grid;gap:1rem;}
.svc-list li{position:relative;padding-left:1.7rem;color:var(--ink-muted);line-height:1.55;}
.svc-list li::before{content:"";position:absolute;left:0;top:.62em;width:14px;height:1px;background:var(--green);}

/* ---------------------------------------------------------
   12 · TIMELINE (azienda)
   --------------------------------------------------------- */
.timeline{border-top:1px solid var(--line);}
.tl-item{display:grid;grid-template-columns:7rem 1fr;gap:clamp(1.5rem,4vw,3rem);padding:2.4rem 0;border-bottom:1px solid var(--line);}
.tl-year{font-family:var(--font-mono);font-weight:600;color:var(--green);font-size:1rem;letter-spacing:.02em;}
.tl-item h3{margin-bottom:.35em;}
.tl-item p{margin-bottom:0;font-size:.96rem;}
@media (max-width:560px){.tl-item{grid-template-columns:1fr;gap:.6rem;}}

/* ---------------------------------------------------------
   13 · ACCORDION (struttura)
   --------------------------------------------------------- */
.accordion{border-top:1px solid var(--line);}
.acc-item{border-bottom:1px solid var(--line);}
.acc-trigger{
  width:100%;display:grid;grid-template-columns:4rem 1fr auto;align-items:center;gap:1rem;
  background:none;border:0;color:var(--ink-strong);text-align:left;cursor:pointer;
  padding:2rem 0;font-family:var(--font-display);font-weight:600;font-size:clamp(1.1rem,1.8vw,1.4rem);letter-spacing:-.01em;
}
.acc-trigger .no{font-family:var(--font-mono);font-size:.85rem;color:var(--green);font-weight:600;}
.acc-trigger .sign{width:26px;height:26px;position:relative;flex:none;border:1px solid var(--line-strong);}
.acc-trigger .sign::before,.acc-trigger .sign::after{content:"";position:absolute;background:var(--ink-strong);top:50%;left:50%;transform:translate(-50%,-50%);}
.acc-trigger .sign::before{width:11px;height:1.4px;}
.acc-trigger .sign::after{width:1.4px;height:11px;transition:transform .25s var(--ease),opacity .25s var(--ease);}
.acc-item.is-open .acc-trigger .sign{border-color:var(--green);}
.acc-item.is-open .acc-trigger .sign::after{transform:translate(-50%,-50%) rotate(90deg);opacity:0;}
.acc-panel{max-height:0;overflow:hidden;transition:max-height .4s var(--ease);}
.acc-inner{padding:0 0 2.4rem 4rem;display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(1.5rem,4vw,3rem);}
.acc-inner p{margin-bottom:0;}
@media (max-width:720px){.acc-inner{grid-template-columns:1fr;padding-left:0;}}

/* ---------------------------------------------------------
   14 · CERTIFICAZIONI
   --------------------------------------------------------- */
.cert-card{
  border:1px solid var(--line);background:var(--paper);
  display:grid;grid-template-columns:auto 1fr auto;gap:clamp(1.5rem,4vw,3rem);align-items:center;
  padding:clamp(2rem,4vw,3rem);
}
@media (max-width:820px){.cert-card{grid-template-columns:1fr;align-items:start;}}
.cert-badge{
  width:96px;height:96px;flex:none;border:1.5px solid var(--green);color:var(--green);
  display:grid;place-items:center;text-align:center;
  font-family:var(--font-mono);font-size:.72rem;line-height:1.35;letter-spacing:.04em;
}
.cert-meta{display:flex;gap:2.4rem;flex-wrap:wrap;margin-top:1.2rem;}
.cert-meta .k{font-family:var(--font-mono);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);}
.cert-meta .v{font-weight:600;color:var(--ink-strong);margin-top:.25em;}

.doc-list{margin-top:1.6rem;border-top:1px solid var(--line);}
.doc-row{display:flex;align-items:center;justify-content:space-between;gap:1.2rem;flex-wrap:wrap;padding:1.5rem 0;border-bottom:1px solid var(--line);}
.doc-name{display:flex;align-items:center;gap:1.1rem;}
.doc-icon{width:40px;height:40px;flex:none;border:1px solid var(--line);color:var(--green);display:grid;place-items:center;}
.doc-icon svg{width:18px;height:18px;}
.doc-name b{display:block;color:var(--ink-strong);font-family:var(--font-display);font-weight:600;}
.doc-sub{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.03em;color:var(--ink-muted);margin-top:.2em;display:block;}
.badge-lang{font-family:var(--font-mono);font-size:.64rem;letter-spacing:.06em;color:var(--ink-muted);border:1px solid var(--line);padding:.25em .55em;margin-left:.7em;}

/* ---------------------------------------------------------
   15 · SHOWCASE — galleria asimmetrica (SIGNATURE)
   --------------------------------------------------------- */
.showcase{
  display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:clamp(120px,15vw,180px);
  gap:1px;background:var(--line);border:1px solid var(--line);
}
.shot{position:relative;overflow:hidden;background:var(--paper-2);}
.shot img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease);}
.shot:hover img{transform:scale(1.03);}
.shot .ph-label{
  position:absolute;inset:0;display:grid;place-items:center;z-index:0;
  font-family:var(--font-mono);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);
  background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);
  background-size:22px 22px;
}
.shot img{position:relative;z-index:1;}
.shot figcaption{
  position:absolute;left:0;bottom:0;z-index:2;
  display:flex;align-items:center;gap:.7em;
  font-family:var(--font-mono);font-size:.72rem;letter-spacing:.05em;color:#fff;
  background:linear-gradient(to top,rgba(13,14,16,.82),transparent);
  padding:1.8rem 1.1rem .9rem;width:100%;
  opacity:0;transform:translateY(6px);transition:opacity .3s var(--ease),transform .3s var(--ease);
}
.shot:hover figcaption{opacity:1;transform:translateY(0);}
.shot figcaption .idx{color:var(--green-on-dark);font-weight:600;}
/* posizionamento asimmetrico desktop (12 col) */
.s1{grid-column:1/8;grid-row:1/3;}
.s2{grid-column:8/13;grid-row:1/4;}
.s3{grid-column:1/5;grid-row:3/5;}
.s4{grid-column:5/8;grid-row:3/5;}
.s5{grid-column:8/13;grid-row:4/5;}
.s6{grid-column:1/13;grid-row:5/7;}
@media (max-width:880px){
  .showcase{grid-template-columns:1fr 1fr;grid-auto-rows:42vw;}
  .s1,.s2,.s3,.s4,.s5,.s6{grid-column:auto;grid-row:auto;}
  .s2{grid-row:span 2;}
  .s6{grid-column:1/-1;}
  .shot figcaption{opacity:1;transform:none;}
}
@media (max-width:520px){
  .showcase{grid-template-columns:1fr;grid-auto-rows:64vw;}
  .s2{grid-row:auto;}
}

/* fascia immagine singola (about / interne) */
.band{position:relative;overflow:hidden;aspect-ratio:21/9;background:var(--paper-2);border:1px solid var(--line);}
.band img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease);}
.band:hover img{transform:scale(1.03);}
@media (max-width:680px){.band{aspect-ratio:4/3;}}

/* ---------------------------------------------------------
   16 · CTA EDITORIALE (istituzionale, non preventivo)
   --------------------------------------------------------- */
.cta{
  display:grid;grid-template-columns:1.5fr 1fr;gap:clamp(2rem,5vw,4rem);align-items:center;
  border:1px solid var(--line);padding:clamp(2.5rem,5vw,4rem);
}
.section--dark .cta,.section--black .cta{border-color:var(--line);}
.cta h2{margin-bottom:.4em;}
.cta p{margin:0;max-width:46ch;}
.cta .cta-act{display:flex;justify-content:flex-end;}
@media (max-width:760px){.cta{grid-template-columns:1fr;}.cta .cta-act{justify-content:flex-start;}}

/* ---------------------------------------------------------
   17 · CONTATTI (griglia asimmetrica)
   --------------------------------------------------------- */
.contact-grid{display:grid;grid-template-columns:5fr 7fr;gap:1px;background:var(--line);border:1px solid var(--line);}
@media (max-width:880px){.contact-grid{grid-template-columns:1fr;}}
.contact-info{background:var(--paper);padding:clamp(2rem,4vw,3.2rem);}
.contact-photo{position:relative;overflow:hidden;background:var(--paper-2);min-height:280px;}
.contact-photo img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;}
.info-row{display:grid;grid-template-columns:auto 1fr;gap:1.1rem;padding:1.6rem 0;border-top:1px solid var(--line);align-items:start;}
.info-row:first-of-type{border-top:0;}
.info-row .ic{width:38px;height:38px;flex:none;border:1px solid var(--line);color:var(--green);display:grid;place-items:center;}
.info-row .ic svg{width:17px;height:17px;}
.info-row .k{font-family:var(--font-mono);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:.4em;}
.info-row .v{color:var(--ink-strong);font-weight:500;line-height:1.5;}
.info-row a.v{transition:color .2s var(--ease);}
.info-row a.v:hover{color:var(--green);}

.map-frame{border:1px solid var(--line);border-top:0;overflow:hidden;}
.map-frame iframe{width:100%;height:clamp(320px,42vw,460px);border:0;display:block;filter:grayscale(1) contrast(1.04);}

/* ---------------------------------------------------------
   18 · PAGE HEAD / BREADCRUMB
   --------------------------------------------------------- */
.page-head{padding:clamp(3.5rem,7vw,6rem) 0 clamp(2.5rem,5vw,4rem);border-bottom:1px solid var(--line);}
.breadcrumb{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);display:flex;gap:.6em;align-items:center;margin-bottom:1.8rem;}
.breadcrumb a:hover{color:var(--green);}
.page-head h1{font-size:clamp(2.1rem,4.2vw,3.4rem);max-width:18ch;}
.page-head .lede{margin-top:1.3rem;}

/* ---------------------------------------------------------
   19 · FOOTER (nero assoluto)
   --------------------------------------------------------- */
.site-footer{background:var(--black);color:var(--ink-on-dark);padding:5.5rem 0 2.5rem;--ink-muted:#9DA2A7;--ink-faint:#6E7378;--line:#23262A;--green:var(--green-on-dark);}
.footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.2fr;gap:clamp(2rem,4vw,3rem);padding-bottom:3.5rem;border-bottom:1px solid var(--line);}
@media (max-width:880px){.footer-grid{grid-template-columns:1fr 1fr;gap:2.5rem;}}
@media (max-width:520px){.footer-grid{grid-template-columns:1fr;}}
.site-footer .logo-text{color:#fff;}
.site-footer .logo .mark{border-color:var(--green-on-dark);color:var(--green-on-dark);}
.site-footer .logo-img{height:32px;}
.site-footer .logo-img--light{display:block;}
.footer-about{color:#9DA2A7;max-width:34ch;margin-top:1.4rem;font-size:.92rem;}
.footer-grid h4{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:#6E7378;margin-bottom:1.4em;}
.footer-grid ul li{margin-bottom:.8em;}
.footer-grid ul li a{color:#B9BEC3;font-size:.92rem;transition:color .2s var(--ease);}
.footer-grid ul li a:hover{color:var(--green-on-dark);}
.social{display:flex;gap:.6rem;margin-top:1.6rem;}
.social a{width:38px;height:38px;border:1px solid #2A2D31;color:#B9BEC3;display:grid;place-items:center;transition:border-color .2s,color .2s;}
.social a:hover{border-color:var(--green-on-dark);color:var(--green-on-dark);}
.social svg{width:16px;height:16px;}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;padding-top:2.2rem;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.04em;color:#6E7378;}

/* ---------------------------------------------------------
   20 · MISC / UTIL
   --------------------------------------------------------- */
.list-check{display:flex;flex-direction:column;gap:0;border-top:1px solid var(--line);}
.list-check li{display:grid;grid-template-columns:auto 1fr;gap:1em;align-items:start;padding:1.2rem 0;border-bottom:1px solid var(--line);color:var(--ink);font-size:.98rem;}
.list-check li svg{width:18px;height:18px;color:var(--green);margin-top:.2em;}
.prose p{max-width:68ch;}
.prose a{color:var(--green);border-bottom:1px solid var(--line-strong);}
.prose a:hover{border-color:var(--green);}

.skip-link{position:absolute;left:-9999px;top:0;background:var(--green);color:#fff;padding:.8em 1.3em;z-index:200;font-family:var(--font-mono);font-size:.8rem;}
.skip-link:focus{left:0;}

/* reveal on scroll */
.reveal{opacity:0;transform:translateY(20px);transition:opacity .8s var(--ease),transform .8s var(--ease);}
.reveal.is-visible{opacity:1;transform:none;}
.reveal-group>*{opacity:0;transform:translateY(20px);transition:opacity .7s var(--ease),transform .7s var(--ease);transition-delay:calc(var(--i,0)*70ms);}
.reveal-group.is-visible>*{opacity:1;transform:none;}
@media (prefers-reduced-motion:reduce){
  .reveal,.reveal-group>*{opacity:1 !important;transform:none !important;}
}

/* =========================================================
   21 · HERO A TUTTO SCHERMO (foto + testo + bottoni sopra)
   Prima schermata: immagine piena, overlay scuro, claim e CTA.
   Mantiene la firma tecnica: marcatori di registro + quota.
   ========================================================= */
.hero-full{
  position:relative;
  min-height:min(100vh,860px);
  display:flex;align-items:flex-end;
  overflow:hidden;
  background:var(--black);
  border-bottom:1px solid var(--line-dark);
}
.hero-full__media{position:absolute;inset:0;z-index:1;}
.hero-full__media img,.hero-full__media video{width:100%;height:100%;object-fit:cover;}
/* velo scuro + vignettatura per leggibilità del testo */
.hero-full__media::after{
  content:"";position:absolute;inset:0;
  background:
    linear-gradient(180deg,rgba(13,14,16,.35) 0%,rgba(13,14,16,.28) 42%,rgba(13,14,16,.86) 100%),
    linear-gradient(90deg,rgba(13,14,16,.62) 0%,rgba(13,14,16,.12) 55%,rgba(13,14,16,0) 100%);
}
/* reticolo tecnico sottilissimo sopra la foto */
.hero-full__media::before{
  content:"";position:absolute;inset:0;z-index:1;opacity:.14;pointer-events:none;
  background-image:linear-gradient(rgba(255,255,255,.5) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.5) 1px,transparent 1px);
  background-size:64px 64px;
}
.hero-full .container{position:relative;z-index:2;width:100%;padding-top:clamp(3rem,8vw,6rem);padding-bottom:clamp(2.4rem,5vw,3.4rem);}
.hero-full__inner{max-width:62ch;}
.hero-full .eyebrow{color:var(--green-on-dark);}
.hero-full .eyebrow::before{background:currentColor;}
.hero-full h1{
  color:#fff;font-size:clamp(2.5rem,6vw,5rem);margin:.15em 0 .5em;
  text-wrap:balance;
}
.hero-full h1 .green{color:var(--green-on-dark);}
.hero-full__lede{
  color:#D7DBDE;font-size:clamp(1.05rem,1.5vw,1.3rem);line-height:1.5;
  max-width:52ch;margin:0 0 2.4rem;
}
.hero-full__cta{display:flex;gap:1rem;flex-wrap:wrap;}
/* nel contesto scuro dell'hero: ghost bianco leggibile */
.hero-full .btn-ghost{border-color:rgba(255,255,255,.5);color:#fff;}
.hero-full .btn-ghost:hover{background:#fff;color:var(--black);border-color:#fff;}
/* marcatori di registro tecnici agli angoli */
.hero-full__reg{position:absolute;z-index:2;width:22px;height:22px;border:1.5px solid var(--green-on-dark);}
.hero-full__reg.tl{top:clamp(84px,11vw,120px);left:var(--gutter);border-right:0;border-bottom:0;}
.hero-full__reg.tr{top:clamp(84px,11vw,120px);right:var(--gutter);border-left:0;border-bottom:0;}
.hero-full__tag{
  position:absolute;z-index:2;top:clamp(84px,11vw,120px);left:50%;transform:translateX(-50%);
  font-family:var(--font-mono);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;
  color:#fff;background:rgba(13,14,16,.5);padding:.5em .8em;backdrop-filter:blur(3px);
  border:1px solid rgba(255,255,255,.18);white-space:nowrap;
}
/* indicatore di scorrimento */
.hero-full__scroll{
  position:absolute;z-index:2;right:var(--gutter);bottom:clamp(2.4rem,5vw,3.4rem);
  display:flex;align-items:center;gap:.7em;
  font-family:var(--font-mono);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:#B9BEC3;
}
.hero-full__scroll .line{width:1px;height:38px;background:linear-gradient(var(--green-on-dark),transparent);animation:scrollpulse 2s var(--ease) infinite;}
@keyframes scrollpulse{0%,100%{opacity:.4;transform:scaleY(.7);}50%{opacity:1;transform:scaleY(1);}}
@media (max-width:680px){
  .hero-full{min-height:88vh;}
  .hero-full__scroll,.hero-full__tag,.hero-full__reg.tr{display:none;}
}
@media (prefers-reduced-motion:reduce){.hero-full__scroll .line{animation:none;}}

/* striscia dati subito sotto l'hero (allineata, non sovrapposta) */
.hero-strip{border-bottom:1px solid var(--line);background:var(--paper);}
.hero-strip .container{display:grid;grid-template-columns:repeat(4,1fr);}
.hero-strip .cell{padding:1.5rem var(--gutter) 1.5rem 0;border-right:1px solid var(--line);}
.hero-strip .cell:last-child{border-right:0;}
.hero-strip .k{font-family:var(--font-mono);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:.5em;}
.hero-strip .v{font-family:var(--font-display);font-weight:600;font-size:1.12rem;color:var(--ink-strong);letter-spacing:-.01em;}
@media (max-width:760px){
  .hero-strip .container{grid-template-columns:1fr 1fr;}
  .hero-strip .cell:nth-child(2n){border-right:0;}
  .hero-strip .cell{padding-right:1.2rem;}
}

/* =========================================================
   22 · FASCE IMMAGINE + TESTO (ordinate, alternate)
   Immagine da un lato, testo dall'altro — mai impilate.
   ========================================================= */
.feature{
  display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4.5rem);align-items:center;
}
.feature+.feature{margin-top:clamp(3.5rem,7vw,6rem);}
.feature--reverse .feature__media{order:2;}
@media (max-width:860px){
  .feature{grid-template-columns:1fr;gap:2rem;}
  .feature--reverse .feature__media{order:0;}
}
.feature__media{position:relative;overflow:hidden;aspect-ratio:4/3;background:var(--paper-2);border:1px solid var(--line);}
.feature__media img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease);}
.feature__media:hover img{transform:scale(1.03);}
.feature__media .ph-label{
  position:absolute;top:0;left:0;z-index:2;
  font-family:var(--font-mono);font-size:.64rem;letter-spacing:.12em;text-transform:uppercase;color:#fff;
  background:rgba(13,14,16,.55);padding:.5em .8em;backdrop-filter:blur(3px);
}
.feature__body h2{margin-bottom:.5em;}
.feature__body .spec{margin-top:2rem;}

/* =========================================================
   23 · LAVORA CON NOI
   ========================================================= */
.jobs{border-top:1px solid var(--line);margin-top:2.4rem;}
.job{
  display:grid;grid-template-columns:auto 1fr auto;gap:1.4rem;align-items:center;
  padding:1.8rem 0;border-bottom:1px solid var(--line);
}
.job__no{font-family:var(--font-mono);font-size:.8rem;color:var(--green);font-weight:600;}
.job__title{color:var(--ink-strong);font-family:var(--font-display);font-weight:600;font-size:1.15rem;letter-spacing:-.01em;}
.job__meta{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.04em;color:var(--ink-muted);margin-top:.3em;display:block;}
@media (max-width:640px){
  .job{grid-template-columns:auto 1fr;}
  .job .btn{grid-column:1/-1;justify-self:start;}
}
.value-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-top:2.6rem;}
@media (max-width:820px){.value-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:540px){.value-grid{grid-template-columns:1fr;}}
.value{background:var(--paper);padding:2.4rem 2rem;}
.value .icon{width:28px;height:28px;color:var(--green);margin-bottom:1.2rem;}
.value .icon svg{width:100%;height:100%;}
.value h3{margin-bottom:.4em;font-size:1.08rem;}
.value p{margin-bottom:0;font-size:.94rem;}

/* =========================================================
   24 · REPARTI — griglia ordinata (sostituisce la galleria asimmetrica)
   Ogni foto nella propria cella, con didascalia sempre visibile.
   ========================================================= */
.dept-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);}
@media (max-width:820px){.dept-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:520px){.dept-grid{grid-template-columns:1fr;}}
.dept{margin:0;background:var(--paper);display:flex;flex-direction:column;}
.dept__media{position:relative;overflow:hidden;aspect-ratio:4/3;background:var(--paper-2);}
.dept__media img{width:100%;height:100%;object-fit:cover;position:relative;z-index:1;transition:transform .6s var(--ease);}
.dept:hover .dept__media img{transform:scale(1.045);}
.dept__media .ph-label{
  position:absolute;inset:0;z-index:0;display:grid;place-items:center;text-align:center;padding:1rem;
  font-family:var(--font-mono);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);
  background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);
  background-size:22px 22px;
}
.dept figcaption{
  display:flex;align-items:baseline;gap:.7em;
  padding:1.15rem 1.25rem;border-top:1px solid var(--line);
  font-family:var(--font-mono);font-size:.8rem;letter-spacing:.02em;color:var(--ink);line-height:1.4;
}
.dept figcaption .idx{color:var(--green);font-weight:600;flex:none;}

/* =========================================================
   25 · CTA CON MEDIA (es. main sponsor Rugby Rovato)
   Testo + riquadro foto affiancati; se la foto manca resta
   il riquadro tecnico con l'etichetta (slot pronto).
   ========================================================= */
.cta--media{grid-template-columns:1fr 1fr;align-items:center;}
@media (max-width:760px){.cta--media{grid-template-columns:1fr;}}
.cta--media>div .btn{margin-top:1.6rem;}
.sponsor-media{position:relative;overflow:hidden;margin:0;aspect-ratio:16/10;min-height:210px;background:var(--paper-2);border:1px solid var(--line);}
/* su mobile il min-height + aspect-ratio imponeva una larghezza minima
   che sforava la colonna: lasciamo che sia l'aspect-ratio a decidere. */
@media (max-width:760px){.sponsor-media{min-height:0;}}
.sponsor-media img{width:100%;height:100%;object-fit:cover;position:relative;z-index:1;transition:transform .7s var(--ease);}
.sponsor-media:hover img{transform:scale(1.03);}
.sponsor-media .ph-label{
  position:absolute;inset:0;z-index:0;display:grid;place-items:center;text-align:center;padding:1.4rem;line-height:1.8;
  font-family:var(--font-mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);
  background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);
  background-size:26px 26px;
}
.sponsor-media .ph-label em{font-style:normal;font-size:.64rem;letter-spacing:.1em;color:var(--ink-faint);opacity:.7;}

/* =========================================================
   26 · SERVIZI — icone rimosse, testo allineato alle foto
   ========================================================= */
.process-item .icon{display:none;}
.process-item h2{margin-top:0;}

/* =========================================================
   27 · ANIMAZIONI FLUIDE
   ========================================================= */
/* hero: leggero ken-burns all'ingresso */
.hero-full__media img,.hero-full__media video{animation:heroZoom 22s var(--ease) both;}
@keyframes heroZoom{from{transform:scale(1.09);}to{transform:scale(1);}}
/* reveal un filo più morbido */
.reveal{transition:opacity .9s var(--ease),transform .9s var(--ease);}
.reveal-group>*{transition:opacity .8s var(--ease),transform .8s var(--ease);transition-delay:calc(var(--i,0)*80ms);}
@media (prefers-reduced-motion:reduce){
  .hero-full__media img,.hero-full__media video{animation:none;}
}

/* =========================================================
   28 · NAV DROPDOWN — voce "Stampi" (pressofusione / iniezione)
   Coerente con .nav-links: sottolineatura verde, mono, no raggio
   ========================================================= */
.nav-dd{position:relative;display:flex;align-items:center;}
.nav-dd__btn{
  font-family:inherit;font-size:.9rem;color:var(--ink-muted);
  background:none;border:0;cursor:pointer;padding:.3rem 0;
  display:inline-flex;align-items:center;gap:.5em;position:relative;
  transition:color .2s var(--ease);
}
.nav-dd__btn::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:1.5px;background:var(--green);transition:right .28s var(--ease);}
.nav-dd:hover .nav-dd__btn,.nav-dd.is-open .nav-dd__btn,.nav-dd__btn[aria-current="page"]{color:var(--ink-strong);}
.nav-dd:hover .nav-dd__btn::after,.nav-dd.is-open .nav-dd__btn::after,.nav-dd__btn[aria-current="page"]::after{right:0;}
.nav-dd__car{width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .25s var(--ease);}
.nav-dd.is-open .nav-dd__car{transform:rotate(-135deg) translateY(-1px);}
.nav-dd__menu{
  position:absolute;top:calc(100% + .9rem);left:-1.1rem;min-width:310px;z-index:60;
  background:var(--paper);border:1px solid var(--line);padding:.35rem;
  opacity:0;visibility:hidden;transform:translateY(-6px);
  transition:opacity .22s var(--ease),transform .22s var(--ease),visibility .22s;
  box-shadow:0 26px 52px -30px rgba(13,14,16,.45);
}
.nav-dd:hover .nav-dd__menu,.nav-dd:focus-within .nav-dd__menu,.nav-dd.is-open .nav-dd__menu{opacity:1;visibility:visible;transform:translateY(0);}
.nav-dd__menu a{
  display:block;padding:.9rem 1rem;font-size:.9rem;color:var(--ink-muted);line-height:1.35;
  border-bottom:1px solid var(--line);transition:color .2s var(--ease),background .2s var(--ease);
}
.nav-dd__menu a:last-child{border-bottom:0;}
.nav-dd__menu a::after{display:none;}
.nav-dd__menu a:hover,.nav-dd__menu a[aria-current="page"]{color:var(--ink-strong);background:var(--paper-2);}
.nav-dd__menu a small{display:block;font-family:var(--font-mono);font-size:.68rem;letter-spacing:.06em;color:var(--ink-faint);text-transform:uppercase;margin-top:.3em;}
/* header overlay (home): testo chiaro sopra l'hero */
@media (min-width:881px){
  .header--overlay:not(.is-scrolled) .nav-dd__btn{color:rgba(255,255,255,.84);}
  .header--overlay:not(.is-scrolled) .nav-dd:hover .nav-dd__btn{color:#fff;}
  .header--overlay:not(.is-scrolled) .nav-dd__btn::after{background:var(--green-on-dark);}
  /* il pannello tendina è bianco: i link restano scuri anche sopra l'hero */
  .header--overlay:not(.is-scrolled) .nav-dd__menu a{color:var(--ink-muted);}
  .header--overlay:not(.is-scrolled) .nav-dd__menu a:hover,
  .header--overlay:not(.is-scrolled) .nav-dd__menu a[aria-current="page"]{color:var(--ink-strong);}
}
/* mobile: la tendina diventa un sotto-elenco espandibile nel pannello */
@media (max-width:880px){
  .nav-dd{display:block;width:100%;}
  .nav-dd__btn{width:100%;justify-content:space-between;font-size:1.35rem;padding:1.15rem 0;border-bottom:1px solid var(--line);color:var(--ink-muted);}
  .nav-dd__btn::after{display:none;}
  .nav-dd__car{width:9px;height:9px;}
  .nav-dd__menu{
    position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;
    border:0;padding:0;min-width:0;max-height:0;overflow:hidden;transition:max-height .32s var(--ease);
  }
  .nav-dd.is-open .nav-dd__menu{max-height:340px;}
  .nav-dd__menu a{font-size:1.02rem;padding:1rem 0 1rem 1.3rem;background:var(--paper-2);border-bottom:1px solid var(--line);}
}

/* =========================================================
   29 · PAGE HERO — intro testo + foto affiancati (pagine interne)
   Sostituisce la fascia foto impilata sotto il titolo.
   ========================================================= */
.page-hero{padding:clamp(3rem,6vw,5.5rem) 0 clamp(2.6rem,5vw,4rem);border-bottom:1px solid var(--line);}
.page-hero .container{display:grid;grid-template-columns:6fr 5fr;gap:clamp(2rem,5vw,4.5rem);align-items:center;}
@media (max-width:900px){
  .page-hero .container{grid-template-columns:1fr;gap:2.4rem;}
  .page-hero__media{order:2;}
}
.page-hero__text .breadcrumb{margin-bottom:1.6rem;}
.page-hero__text h1{font-size:clamp(2.1rem,4.2vw,3.4rem);max-width:16ch;}
.page-hero__text .lede{margin-top:1.3rem;}
.page-hero__media{position:relative;overflow:hidden;aspect-ratio:4/3;background:var(--paper-2);border:1px solid var(--line);}
.page-hero__media img,.page-hero__media video{width:100%;height:100%;object-fit:cover;position:relative;z-index:1;transition:transform .7s var(--ease);}
.page-hero__media:hover img,.page-hero__media:hover video{transform:scale(1.03);}
.page-hero__media .ph-label{
  position:absolute;inset:0;z-index:0;display:grid;place-items:center;text-align:center;padding:1rem;
  font-family:var(--font-mono);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);
  background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);
  background-size:26px 26px;
}
.page-hero__media .reg{position:absolute;z-index:2;width:18px;height:18px;border:1.5px solid var(--green);}
.page-hero__media .reg.tl{top:12px;left:12px;border-right:0;border-bottom:0;}
.page-hero__media .reg.br{bottom:12px;right:12px;border-left:0;border-top:0;}

/* =========================================================
   30 · VALUE CARDS — ricalibrate (titoli e testo allineati)
   ========================================================= */
.value{display:flex;flex-direction:column;padding:clamp(1.9rem,2.6vw,2.5rem);}
.value .icon{width:30px;height:30px;flex:none;margin-bottom:1.3rem;}
.value h3{margin-bottom:.55em;font-size:1.1rem;line-height:1.24;min-height:2.5em;}
.value p{margin-bottom:0;font-size:.94rem;line-height:1.58;}
@media (max-width:540px){.value h3{min-height:0;}}

/* =========================================================
   31 · REPARTI — una sola foto + elenco (home)
   ========================================================= */
.reparti-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line);}
.reparti-list li{display:grid;grid-template-columns:2.8rem 1fr;gap:1rem;align-items:baseline;padding:1.05rem 0;border-bottom:1px solid var(--line);}
.reparti-list .idx{font-family:var(--font-mono);font-size:.82rem;font-weight:600;color:var(--green);}
.reparti-list .lbl{color:var(--ink-strong);font-family:var(--font-display);font-weight:600;font-size:1.02rem;letter-spacing:-.01em;line-height:1.3;}
.reparti-list .lbl small{display:block;font-family:var(--font-mono);font-weight:400;font-size:.72rem;letter-spacing:.03em;color:var(--ink-muted);margin-top:.25em;}

/* =========================================================
   32 · PROCESSO SENZA FOTO PER STEP (pagine stampi)
   Una sola foto in testata; gli step restano testo + specifiche.
   ========================================================= */
.process--flat .process-item{grid-template-columns:5rem minmax(0,1fr);}
.process--flat .process-item>div:last-child{max-width:74ch;}
@media (max-width:880px){.process--flat .process-item{grid-template-columns:3rem 1fr;}}

/* =========================================================
   33 · SELETTORE LINGUA (IT / EN / ES / DE)
   Gruppo mono compatto nella nav-meta. Verde = attivo.
   ========================================================= */
.lang-switch{display:flex;align-items:center;border:1px solid var(--line-strong);}
.lang-switch button{
  font-family:var(--font-mono);font-size:.66rem;letter-spacing:.08em;line-height:1;
  padding:.4rem .5rem;background:transparent;border:0;border-left:1px solid var(--line);
  color:var(--ink-muted);cursor:pointer;
  transition:color .2s var(--ease),background .2s var(--ease);
}
.lang-switch button:first-child{border-left:0;}
.lang-switch button:hover{color:var(--ink-strong);}
.lang-switch button.is-active{background:var(--green);color:#fff;}
.lang-switch button:focus-visible{outline:2px solid var(--green);outline-offset:2px;}

/* Header trasparente (homepage): selettore in chiaro */
.header--overlay:not(.is-scrolled) .lang-switch{border-color:rgba(255,255,255,.45);}
.header--overlay:not(.is-scrolled) .lang-switch button{color:rgba(255,255,255,.82);border-left-color:rgba(255,255,255,.25);}
.header--overlay:not(.is-scrolled) .lang-switch button:hover{color:#fff;}
.header--overlay:not(.is-scrolled) .lang-switch button.is-active{background:var(--green-on-dark);color:var(--black);}

@media (max-width:480px){
  .nav-meta{gap:.6rem;}
  .lang-switch button{padding:.34rem .4rem;letter-spacing:.04em;}
}

/* =========================================================
   34 · CARD-GRID DUO — home "Cosa facciamo" a 2 voci
   ========================================================= */
.card-grid--duo{grid-template-columns:1fr 1fr;}
.card--duo{padding:3rem 2.6rem;}
.card--duo p{margin-top:.6rem;max-width:46ch;}
@media (max-width:640px){.card-grid--duo{grid-template-columns:1fr;}}

/* =========================================================
   35 · SHOWCASE — slideshow getti in alluminio (home)
   ========================================================= */
.castshow{padding:8rem 0;border-top:1px solid var(--line);background:var(--paper);}
.castshow__head{display:grid;grid-template-columns:1fr auto;align-items:end;gap:1.5rem;margin:0 auto 2.4rem;max-width:780px;}
.castshow__head h2{font-size:clamp(1.7rem,3vw,2.6rem);max-width:20ch;margin-top:.7rem;line-height:1.08;}
.castshow__counter{font-family:var(--font-mono);font-size:.9rem;color:var(--ink-muted);white-space:nowrap;}
.castshow__counter b{color:var(--green);font-weight:600;font-size:1.9rem;letter-spacing:-.02em;}
.castshow__counter .tot::before{content:"/";margin:0 .35em;color:var(--line-strong);}

.castshow__stage{position:relative;overflow:hidden;aspect-ratio:19/10;max-width:780px;margin:0 auto;background:var(--anthracite);border:1px solid var(--line);}
@media (max-width:640px){.castshow__stage{aspect-ratio:3/2;}}
.castshow__track{position:absolute;inset:0;}
.castshow__slide{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity .8s var(--ease);z-index:1;}
.castshow__slide.is-active{opacity:1;visibility:visible;z-index:2;}
.castshow__slide img{width:100%;height:100%;object-fit:cover;transform:scale(1.03);transition:transform 6s linear;}
.castshow__slide.is-active img{transform:scale(1);}

/* frame tecnico */
.castshow__stage .reg{position:absolute;z-index:5;width:20px;height:20px;border:1.5px solid var(--green-on-dark);pointer-events:none;}
.castshow__stage .reg.tl{top:14px;left:14px;border-right:0;border-bottom:0;}
.castshow__stage .reg.br{bottom:14px;right:14px;border-left:0;border-top:0;}
.castshow__tag{position:absolute;top:14px;right:14px;z-index:5;font-family:var(--font-mono);font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-on-dark);background:rgba(13,14,16,.55);backdrop-filter:blur(4px);border:1px solid var(--line-dark);padding:.5em .8em;}
.castshow__cap{position:absolute;left:0;bottom:0;z-index:5;max-width:min(90%,640px);padding:1.5rem 1.7rem;color:var(--ink-on-dark);
  background:linear-gradient(to top,rgba(13,14,16,.82) 0%,rgba(13,14,16,.5) 55%,transparent 100%);}
.castshow__cap .idx{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.14em;color:var(--green-on-dark);display:block;margin-bottom:.3rem;}
.castshow__cap p{font-family:var(--font-display);font-size:clamp(1.05rem,2vw,1.4rem);font-weight:500;line-height:1.2;}

/* controlli prev/next */
.castshow__nav{position:absolute;top:50%;transform:translateY(-50%);z-index:6;width:46px;height:46px;display:grid;place-items:center;
  background:rgba(13,14,16,.5);border:1px solid var(--line-dark);color:var(--ink-on-dark);cursor:pointer;
  transition:background .25s var(--ease),border-color .25s var(--ease),color .25s var(--ease);backdrop-filter:blur(4px);}
.castshow__nav:hover{background:var(--green);border-color:var(--green);color:#fff;}
.castshow__nav:focus-visible{outline:2px solid var(--green-on-dark);outline-offset:2px;}
.castshow__nav svg{width:20px;height:20px;}
.castshow__nav--prev{left:14px;}
.castshow__nav--next{right:14px;}
@media (max-width:640px){.castshow__nav{width:38px;height:38px;}.castshow__nav--prev{left:8px;}.castshow__nav--next{right:8px;}}

/* barra autoplay */
.castshow__bar{position:absolute;left:0;bottom:0;height:3px;width:100%;z-index:6;background:rgba(255,255,255,.14);}
.castshow__bar span{display:block;height:100%;width:0;background:var(--green-on-dark);}
.castshow__bar span.run{width:100%;transition:width var(--sc-dur,5000ms) linear;}

/* filmstrip */
.castshow__thumbs{display:grid;grid-template-columns:repeat(6,1fr);gap:.7rem;margin:.7rem auto 0;max-width:780px;}
@media (max-width:640px){.castshow__thumbs{grid-template-columns:repeat(3,1fr);}}
.castshow__thumb{position:relative;padding:0;border:1px solid var(--line);background:var(--paper-2);overflow:hidden;aspect-ratio:16/10;cursor:pointer;
  filter:grayscale(.35);opacity:.62;transition:opacity .25s var(--ease),filter .25s var(--ease);}
.castshow__thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.castshow__thumb::after{content:"";position:absolute;inset:0;border:2px solid transparent;transition:border-color .25s var(--ease);}
.castshow__thumb:hover{opacity:.9;filter:grayscale(0);}
.castshow__thumb[aria-current="true"]{opacity:1;filter:grayscale(0);}
.castshow__thumb[aria-current="true"]::after{border-color:var(--green);}
.castshow__thumb:focus-visible{outline:2px solid var(--green);outline-offset:2px;}
.castshow__thumb .n{position:absolute;left:5px;top:3px;font-family:var(--font-mono);font-size:.6rem;color:var(--ink-on-dark);text-shadow:0 1px 3px rgba(0,0,0,.7);}

@media (max-width:520px){
  .castshow__head{grid-template-columns:1fr;align-items:start;}
  .castshow{padding:5rem 0;}
}
@media (prefers-reduced-motion:reduce){
  .castshow__slide img{transform:none;transition:none;}
  .castshow__slide{transition:opacity .001s;}
  .castshow__bar{display:none;}
}

/* ============================================================
   NEWS — pagina notizie aziendali
   Coerente con .card / .feature / .cert-card del sito
   ============================================================ */
.news-filter{
  display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:clamp(2rem,4vw,3rem);
}
.news-filter button{
  font-family:var(--font-mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;
  color:var(--ink-muted);background:transparent;border:1px solid var(--line);
  padding:.7em 1.15em;cursor:pointer;transition:color .2s var(--ease),border-color .2s var(--ease),background .2s var(--ease);
}
.news-filter button:hover{color:var(--ink-strong);border-color:var(--line-strong);}
.news-filter button.is-active{color:#fff;background:var(--green);border-color:var(--green);}

/* Notizia in evidenza */
.news-feature{
  display:grid;grid-template-columns:1.05fr 1fr;gap:0;align-items:stretch;
  border:1px solid var(--line);background:var(--paper);margin-bottom:1px;
}
@media (max-width:860px){.news-feature{grid-template-columns:1fr;}}
.news-feature__media{position:relative;overflow:hidden;background:var(--paper-2);min-height:300px;}
/* L'immagine è posizionata in assoluto e riempie esattamente la sua cella:
   non supera mai l'altezza del testo e non lo sovrappone. */
.news-feature__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease);}
@media (max-width:860px){.news-feature__media{min-height:0;height:240px;}}
.news-feature:hover .news-feature__media img{transform:scale(1.03);}
.news-feature__body{padding:clamp(2rem,4vw,3.2rem);display:flex;flex-direction:column;justify-content:center;}
.news-feature__body h2{font-size:clamp(1.5rem,2.6vw,2.1rem);margin:.5rem 0 .7em;}
.news-feature__body p{font-size:1rem;}

/* Tag categoria (sovrapposto all'immagine) */
.news-tag{
  position:absolute;top:1rem;left:1rem;z-index:2;
  font-family:var(--font-mono);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;
  color:#fff;background:var(--green);padding:.45em .85em;
}
/* Meta (data + eventuale luogo) */
.news-meta{
  font-family:var(--font-mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;
  color:var(--ink-faint);display:flex;gap:.7em;align-items:center;
}
.news-meta .dot{width:4px;height:4px;background:var(--ink-faint);border-radius:50%;display:inline-block;}

/* Griglia notizie — stessa estetica hairline di .card-grid */
.news-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);
}
@media (max-width:820px){.news-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:540px){.news-grid{grid-template-columns:1fr;}}
.news-card{
  background:var(--paper);display:flex;flex-direction:column;
  transition:background .25s var(--ease);
}
.news-card__media{position:relative;overflow:hidden;aspect-ratio:3/2;background:var(--paper-2);display:block;}
.news-card__media img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease);}
.news-card:hover .news-card__media img{transform:scale(1.04);}
.news-card__body{padding:1.6rem 1.6rem 1.8rem;display:flex;flex-direction:column;flex:1;}
.news-card__body h3{font-size:1.1rem;margin:.7rem 0 .4em;line-height:1.3;}
.news-card__body h3 a{color:inherit;}
.news-card__body h3 a:hover{color:var(--green);}
.news-card__excerpt{font-size:.92rem;margin-bottom:1.2rem;}
.news-card__more{
  margin-top:auto;font-family:var(--font-mono);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--green);
}
.news-card.is-hidden,.news-feature.is-hidden{display:none;}

/* Stato vuoto filtro */
.news-empty{padding:3rem 0;color:var(--ink-muted);font-size:.95rem;text-align:center;display:none;}
.news-empty.is-shown{display:block;}
