/* Certificazioni e pratiche — la STRUTTURA della pagina (04/10/2026).
   La linea grafica (colori di :root, Archivo e Instrument Sans, cornice quadrata del logo, segno sopra
   i titoli, pulsanti, schede, fascia navy, movimento) resta in style.css: qui solo come si dispongono i pezzi.
   Apertura: solo tipografica, niente foto; il titolo enorme davanti alla cornice quadrata grande del logo.
   Modulo-firma: ISO | SOA, due grandi colonne con l'etichetta gigante e il «+» che le unisce.
   Ritmo: SUAP come flusso a quattro passi con le frecce · alcolici e CIR/CIN in due schede affiancate ·
   sanzioni in elenco con icone e la sola foto della pagina (07), a metà · prezzi nella fascia navy ·
   domande frequenti aperte, una accanto all'altra. */

/* ── apertura: solo tipografica ──────────────────────────── */
.apertura-cornice{overflow:hidden;padding:clamp(48px,5.6vw,96px) 0 clamp(60px,6vw,104px)}
.apertura-cornice__corpo{position:relative}
.apertura-cornice .h1{max-width:12.5em;font-size:clamp(42px,6.5vw,102px);line-height:.98;letter-spacing:-.036em;font-stretch:108%;margin-bottom:clamp(28px,2.8vw,44px)}
.apertura-cornice__testo{max-width:36em}
.apertura-cornice .hero__lead{max-width:28em}
.apertura-cornice .hero__sub{max-width:31em}

/* la cornice del logo, in grande, dietro il titolo: il filo interno si disegna all'apertura */
.cornice-grande{position:absolute;z-index:-1;top:clamp(26px,3.2vw,52px);right:max(var(--gutter),calc((100% - var(--container)) / 2));width:clamp(300px,41vw,600px);aspect-ratio:1;pointer-events:none;
  background:var(--icon-bg);border:1px solid rgba(53,104,154,.2);border-radius:var(--r)}
.cornice-grande__filo{position:absolute;inset:5%}
.cornice-grande__filo::before,.cornice-grande__filo::after{content:"";position:absolute;inset:0;border-radius:var(--r-xs)}
.cornice-grande__filo::before{border-block:1.5px solid rgba(53,104,154,.5)}
.cornice-grande__filo::after{border-inline:1.5px solid rgba(53,104,154,.5)}
.js .cornice-grande__filo::before{transform:scaleX(0);animation:cornice-orizzontale 1.5s var(--ease-out) .3s forwards}
.js .cornice-grande__filo::after{transform:scaleY(0);animation:cornice-verticale 1.5s var(--ease-out) .65s forwards}
@keyframes cornice-orizzontale{to{transform:scaleX(1)}}
@keyframes cornice-verticale{to{transform:scaleY(1)}}
.cornice-grande__icona{position:absolute;right:11%;bottom:11%;width:24%;height:24%;color:var(--primary);opacity:.3;stroke-width:.9}

/* ── modulo-firma: ISO | SOA ─────────────────────────────── */
.iso-soa-sezione{padding-block:clamp(64px,6.6vw,104px)}
.iso-soa{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:0 clamp(32px,4.6vw,76px)}
.iso-soa::before{content:"";position:absolute;top:0;bottom:0;left:50%;width:1px;background:rgba(53,104,154,.18)}
.iso-soa__colonna{position:relative;min-width:0}
.iso-soa__sigla{display:block;margin:0 0 clamp(28px,2.8vw,44px) -.04em;font-family:var(--font-display);font-stretch:112%;font-size:clamp(92px,13.4vw,200px);font-weight:780;line-height:.74;letter-spacing:-.055em;color:var(--navy);user-select:none}
.iso-soa__colonna--soa .iso-soa__sigla{color:var(--primary)}
.iso-soa .lead{max-width:27em}
/* il «+» sul filo fra le due colonne: le due pratiche si possono seguire insieme */
.iso-soa__unione{position:relative;z-index:1;grid-column:2;grid-row:1;align-self:start;display:grid;place-items:center;width:62px;height:62px;margin-top:calc(clamp(92px,13.4vw,200px) * .37 - 31px);
  border-radius:var(--r-sm);background:var(--white);border:1px solid rgba(53,104,154,.3);box-shadow:0 0 0 10px var(--white);
  font-family:var(--font-display);font-size:34px;font-weight:500;line-height:1;color:var(--primary)}
.iso-soa__unione::after{content:"";position:absolute;inset:6px;border:1px solid var(--line-steel);border-radius:2px}
.iso-soa__fasi{margin-top:clamp(22px,2.2vw,30px);border-bottom:1px solid rgba(53,104,154,.16)}
.iso-soa__fasi li{display:flex;align-items:center;gap:16px;padding:14px 0;border-top:1px solid rgba(53,104,154,.16);font-size:clamp(15.5px,1.15vw,17px);line-height:1.45;color:var(--heading)}
.iso-soa__fasi .sq{--sq:46px}
.iso-soa__fasi li:hover .sq{background:var(--navy);color:var(--white)}
.iso-soa__fasi li:hover .sq::after{border-color:rgba(255,255,255,.36)}
.iso-soa__insieme{display:flex;align-items:center;gap:18px;margin-top:clamp(22px,2.2vw,30px);padding:clamp(18px,1.8vw,24px);background:var(--soft);border:1px solid rgba(53,104,154,.14);border-radius:var(--r);
  font-size:clamp(15.5px,1.15vw,17px);line-height:1.5;color:var(--heading)}
.iso-soa__insieme .sq{--sq:52px}

/* ── SUAP: flusso a quattro passi con le frecce ──────────── */
.suap{background:var(--trust);border-block:1px solid rgba(53,104,154,.1)}
.suap__testa{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(24px,5vw,88px);align-items:end;margin-bottom:clamp(32px,3.2vw,48px)}
.suap__testa .h2{margin-bottom:0}
.suap__intro .text + .text{margin-top:10px}
.flusso{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(34px,3.4vw,52px);margin:0;padding:0;list-style:none}
.flusso__passo{position:relative;display:flex;flex-direction:column;gap:20px;min-width:0;padding:clamp(20px,2vw,28px);background:var(--white);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--sh-1)}
.flusso__numero{--sq:50px;font-family:var(--font-display);font-stretch:var(--wide);font-size:21px;font-weight:650;line-height:1;font-variant-numeric:tabular-nums lining-nums}
.flusso__passo p{font-size:clamp(15px,1.12vw,16.5px);line-height:1.5;color:var(--heading)}
.flusso__passo a{color:var(--heading)}
.flusso__freccia{position:absolute;top:50%;right:calc(clamp(34px,3.4vw,52px) / -2 - 13px);width:26px;height:26px;margin-top:-13px;color:var(--primary);stroke-width:1.8;
  opacity:0;transform:translateX(-8px);transition:opacity .6s ease calc(var(--d,0) * 80ms + .5s),transform .8s var(--ease-out) calc(var(--d,0) * 80ms + .5s)}
.flusso__passo.in .flusso__freccia,html:not(.js) .flusso__freccia{opacity:1;transform:none}

/* ── alcolici e CIR/CIN: due schede affiancate ───────────── */
.affiancate{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(16px,2vw,28px);align-items:stretch}
.scheda-pratica{position:relative;display:flex;flex-direction:column;min-width:0;padding:clamp(26px,2.8vw,42px);background:var(--white);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--sh-2)}
.scheda-pratica::before{content:"";position:absolute;left:-1px;right:-1px;top:-1px;height:3px;border-radius:var(--r) var(--r) 0 0;background:var(--primary)}
.scheda-pratica .text{max-width:none}
.scheda-pratica .text + .text{margin-top:10px}
.scheda-pratica__due{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:auto;padding-top:clamp(22px,2.2vw,30px)}
.scheda-pratica__due p{display:flex;flex-direction:column;gap:12px;padding:18px 20px 20px;background:var(--soft);border:1px solid rgba(53,104,154,.14);font-size:clamp(15px,1.1vw,16px);line-height:1.5;color:var(--heading)}
.scheda-pratica__due p:first-child{border-radius:var(--r-sm) 0 0 var(--r-sm)}
.scheda-pratica__due p + p{border-left:0;border-radius:0 var(--r-sm) var(--r-sm) 0}
.scheda-pratica__due .icon{width:26px;height:26px;color:var(--primary);stroke-width:1.6}
.codici{margin-top:clamp(20px,2vw,26px)}
.codici li{display:flex;align-items:flex-start;gap:14px;padding:13px 0;border-top:1px solid rgba(53,104,154,.16)}
.codici .sq{--sq:42px;margin-top:1px}
.codici p{font-size:clamp(15px,1.1vw,16px);line-height:1.5;color:var(--heading)}
.codici strong,.sanzioni__elenco strong{font-weight:640}

/* ── sanzioni e collaudi, con la foto della pagina ───────── */
.sanzioni__griglia{display:grid;grid-template-columns:minmax(0,1.04fr) minmax(0,1fr);gap:clamp(40px,5.4vw,96px);align-items:center}
.sanzioni__foto{margin:0 0 22px 22px;--fx:-22px;--fy:22px}
.sanzioni__foto .photo{aspect-ratio:1.32}
.sanzioni__foto .photo img{object-position:58% 45%}
.sanzioni__elenco{margin-top:clamp(18px,1.8vw,26px);border-bottom:1px solid rgba(53,104,154,.16)}
.sanzioni__elenco li{display:flex;align-items:center;gap:18px;padding:18px 0;border-top:1px solid rgba(53,104,154,.16)}
.sanzioni__elenco .sq{--sq:54px}
.sanzioni__elenco p{font-size:clamp(15.5px,1.15vw,17px);line-height:1.5;color:var(--heading)}
.sanzioni__elenco li:hover .sq{background:var(--navy);color:var(--white)}
.sanzioni__elenco li:hover .sq::after{border-color:rgba(255,255,255,.36)}

/* ── prezzi: il tariffario nella fascia navy ─────────────── */
.tariffe{padding:var(--sec) clamp(10px,1.4vw,20px) calc(var(--sec) * .5)}
.tariffe__fascia{position:relative;isolation:isolate;overflow:hidden;width:min(100%,1400px);margin-inline:auto;padding:clamp(40px,4.4vw,70px) clamp(26px,4.4vw,68px);background:var(--navy);border-radius:var(--r-lg);color:var(--on-navy)}
.tariffe__fascia::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(70% 90% at 100% 0%,rgba(53,104,154,.32),transparent 62%),radial-gradient(60% 70% at 0% 100%,rgba(15,37,71,.5),transparent 70%)}
.tariffe :focus-visible{outline-color:var(--white)}
.tariffe__testa{display:flex;align-items:flex-end;justify-content:space-between;gap:16px 32px;margin-bottom:clamp(24px,2.4vw,36px)}
.tariffe__testa .h2{margin-bottom:0}
.tariffe__voci{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-block:1px solid var(--navy-line)}
.tariffa{display:flex;flex-direction:column;gap:14px;min-width:0;padding:clamp(26px,2.6vw,38px) clamp(20px,2.4vw,36px)}
.tariffa:first-child{padding-left:0}
.tariffa + .tariffa{border-left:1px solid var(--navy-line)}
.tariffa__prezzo{order:-1;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 7px;color:var(--white);white-space:nowrap;font-variant-numeric:tabular-nums lining-nums}
.tariffa__prezzo small{font-size:14px;font-weight:500;color:var(--on-navy-muted);letter-spacing:.02em}
.tariffa__prezzo b{font-family:var(--font-display);font-stretch:var(--wide);font-size:clamp(46px,4.6vw,68px);font-weight:660;line-height:.9;letter-spacing:-.035em}
.tariffa__prezzo span{font-family:var(--font-display);font-size:clamp(20px,1.8vw,26px);font-weight:600;color:var(--on-navy)}
.tariffa__voce{font-size:clamp(15.5px,1.15vw,17px);line-height:1.45;color:var(--on-navy);max-width:18em}
.tariffe__piede{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px 40px;margin-top:clamp(24px,2.4vw,34px)}
.tariffe__piede p{max-width:40em;font-size:clamp(15.5px,1.15vw,17px);line-height:1.55;color:var(--on-navy)}
.tariffe__piede a:not(.btn){color:var(--white);font-weight:600;text-decoration:underline;text-decoration-color:rgba(255,255,255,.45);text-underline-offset:4px;transition:text-decoration-color .2s ease}
.tariffe__piede a:not(.btn):hover{text-decoration-color:var(--white)}

/* ── domande frequenti: aperte, una accanto all'altra ────── */
.domande{padding-top:calc(var(--sec) * .9)}
.domande__griglia{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(14px,1.6vw,24px);margin-top:clamp(26px,2.6vw,40px)}
.domanda{position:relative;display:flex;flex-direction:column;gap:16px;min-width:0;padding:clamp(22px,2.2vw,30px);background:var(--white);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--sh-1);
  transition:border-color .35s ease,box-shadow .45s var(--ease)}
.js .domanda.reveal.in{transition:opacity .9s var(--ease-out),transform .9s var(--ease-out),box-shadow .45s var(--ease),border-color .35s ease;transition-delay:calc(var(--d,0) * 80ms),calc(var(--d,0) * 80ms),0s,0s}
.domanda:hover{border-color:#C9D9E7;box-shadow:var(--sh-2)}
.domanda__titolo{font-family:var(--font-display);font-stretch:102%;font-size:clamp(17.5px,1.35vw,20px);font-weight:620;line-height:1.3;letter-spacing:-.008em;color:var(--heading);text-wrap:balance}
.domanda__segno{--sq:42px}
.domanda:hover .domanda__segno{background:var(--navy);color:var(--white)}
.domanda:hover .domanda__segno::after{border-color:rgba(255,255,255,.36)}
.domanda__risposta{padding-top:16px;margin-top:auto;border-top:1px dashed var(--input);font-size:clamp(15.5px,1.12vw,16.5px);line-height:1.58;color:var(--body)}

/* ═══ tablet ═══ */
@media (max-width:1099px){
  .flusso{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:28px}
  .flusso__passo:nth-child(2) .flusso__freccia{display:none}
  .scheda-pratica__due{grid-template-columns:minmax(0,1fr)}
  .scheda-pratica__due p{flex-direction:row;align-items:flex-start;border-radius:0}
  .scheda-pratica__due p:first-child{border-radius:var(--r-sm) var(--r-sm) 0 0}
  .scheda-pratica__due p + p{border-left:1px solid rgba(53,104,154,.14);border-top:0;border-radius:0 0 var(--r-sm) var(--r-sm)}
}
@media (max-width:959px){
  .cornice-grande{width:min(56vw,420px);right:calc(var(--gutter) * -1)}
  .cornice-grande__icona{display:none}
  .iso-soa{grid-template-columns:minmax(0,1fr);row-gap:0}
  .iso-soa::before{display:none}
  .iso-soa__unione{grid-column:1;grid-row:auto;justify-self:center;margin:clamp(28px,5vw,40px) 0}
  .iso-soa__unione::before{content:"";position:absolute;z-index:-1;top:50%;left:calc(-50vw + 31px);width:100vw;height:1px;background:rgba(53,104,154,.18)}
  .iso-soa-sezione{overflow:hidden}
  .suap__testa{grid-template-columns:minmax(0,1fr);gap:18px}
  .affiancate{grid-template-columns:minmax(0,1fr)}
  .sanzioni__griglia{grid-template-columns:minmax(0,1fr);gap:28px}
  .sanzioni__foto{margin:0 0 14px 14px;--fx:-14px;--fy:14px}
  .sanzioni__foto .photo{aspect-ratio:1.6}
  .domande__griglia{grid-template-columns:minmax(0,1fr)}
}

/* ═══ telefono ═══ */
@media (max-width:640px){
  /* al telefono la firma resta tipografica: la cornice quadrata del logo, intera e col filo netto,
     a tutta larghezza; il titolo (il più grande del sito) sta DENTRO la cornice, l'attestato
     nell'angolo. Testo, pulsante e link vengono dopo la cornice. */
  .apertura-cornice{display:grid;grid-template-columns:minmax(0,1fr);padding:20px var(--gutter) 46px}
  .apertura-cornice__corpo{display:contents}
  .cornice-grande{position:relative;grid-area:1/1;top:auto;right:auto;width:min(100%,480px);
    background:var(--white);border-color:rgba(53,104,154,.34);box-shadow:var(--sh-2)}
  .cornice-grande__filo{inset:16px}
  .cornice-grande__filo::before{border-block:1.5px solid var(--primary)}
  .cornice-grande__filo::after{border-inline:1.5px solid var(--primary)}
  .cornice-grande__icona{display:block;right:30px;bottom:30px;width:68px;height:68px;opacity:1;stroke-width:1.15;color:var(--primary)}
  .apertura-cornice .h1{grid-area:1/1;align-self:start;max-width:min(100%,480px);margin:0;padding:38px 32px 0;
    font-size:clamp(40px,11.6vw,48px);font-stretch:100%;line-height:1;letter-spacing:-.034em}
  .apertura-cornice .h1::before{margin-bottom:16px}
  /* 05/10 (M2): col titolo più lungo («in Veneto e Friuli») la cornice da quadrata diventa alta quanto serve, e il
     titolo lascia libero l'angolo dell'icona: niente più parole sotto l'attestato */
  .cornice-grande{aspect-ratio:auto;align-self:stretch;min-height:min(calc(100vw - 2 * var(--gutter)), 480px)}
  .apertura-cornice .h1{padding-bottom:114px}
  .apertura-cornice__testo{grid-area:2/1;margin-top:28px}

  .iso-soa-sezione{padding-block:52px}
  .iso-soa__sigla{font-size:84px;margin-bottom:24px}
  .iso-soa__unione{width:52px;height:52px;font-size:28px;margin:30px 0}
  .iso-soa__unione::before{left:calc(-50vw + 26px)}
  .iso-soa__fasi li{gap:14px;padding:12px 0;font-size:15.5px}
  .iso-soa__fasi .sq{--sq:42px}
  .iso-soa__insieme{flex-direction:column;align-items:flex-start;gap:12px;padding:16px;font-size:15.5px}
  .iso-soa__insieme .sq{--sq:44px}

  .flusso{grid-template-columns:minmax(0,1fr);gap:30px}
  .flusso__passo{flex-direction:row;align-items:center;gap:14px;padding:16px}
  .flusso__numero{--sq:40px;font-size:18px}
  .flusso__passo p{font-size:15.5px}
  .flusso__passo:nth-child(2) .flusso__freccia{display:block}
  .flusso__freccia{top:auto;right:auto;left:50%;bottom:-29px;margin:0 0 0 -11px;width:22px;height:22px;rotate:90deg}

  .scheda-pratica{padding:24px 18px}
  .scheda-pratica__due p{padding:14px;gap:12px;font-size:15px}
  .codici .sq{--sq:38px}
  .codici p{font-size:15px}

  .sanzioni__foto{margin:0 0 10px 10px;--fx:-10px;--fy:10px}
  .sanzioni__foto .photo{aspect-ratio:1.5}
  .sanzioni__elenco li{gap:14px;padding:14px 0}
  .sanzioni__elenco .sq{--sq:44px}
  .sanzioni__elenco p{font-size:15.5px}

  .tariffe{padding:var(--sec) 10px 26px}
  .tariffe__fascia{padding:32px 18px 24px;border-radius:var(--r)}
  .tariffe__testa{flex-direction:column;align-items:flex-start}
  .tariffe__voci{grid-template-columns:minmax(0,1fr)}
  .tariffa,.tariffa:first-child{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;padding:16px 0}
  .tariffa + .tariffa{border-left:0;border-top:1px solid var(--navy-line)}
  .tariffa__voce{font-size:15.5px}
  .tariffa__prezzo{order:0}
  .tariffa__prezzo{justify-content:flex-end;max-width:7.5em;gap:2px 5px}
  .tariffa__prezzo b{font-size:34px}
  .tariffa__prezzo span{font-size:18px}
  .tariffa__prezzo small{font-size:13px}
  .tariffe__piede{flex-direction:column;align-items:stretch}
  .tariffe__piede p{font-size:15.5px}
  .tariffe__piede .btn{width:100%}

  .domanda{padding:20px 18px}
  .domanda__titolo{font-size:17px}
  .domanda__segno{--sq:38px}
  .domanda__risposta{font-size:15.5px;padding-top:12px}
}

@media (prefers-reduced-motion:reduce){
  .js .cornice-grande__filo::before,.js .cornice-grande__filo::after{animation:none;transform:none}
  .flusso__freccia{opacity:1;transform:none}
}
