/* =========================================================================
   ZILIANI WEB DESIGN — foglio comune alle pagine per mestiere (P1-P4).
   Scritto il 2026-09-16.

   PERCHE' UN FILE A PARTE. La home tiene il suo CSS dentro la pagina, e resta
   cosi'. Le pagine per mestiere saranno quattro con la stessa impaginazione:
   quattro copie dello stesso foglio sono tre copie che restano indietro (e' la
   lezione di Officine Sabbia). Quindi un file solo, caricato con ?v= nel
   nome: l'.htaccess tiene il CSS in cache sette giorni, e senza cambiare ?v=
   chi ha gia' visitato vedrebbe il foglio vecchio sotto l'HTML nuovo.

   COSA C'E' DENTRO. I blocchi fino a "PAGINE PER MESTIERE" sono copiati RIGA PER
   RIGA da index-nuovo.html, con il titolo del blocco d'origine. Se cambia la home
   (colori, pulsanti, testata, piede), va ricopiato anche qui.
   ========================================================================= */

/* ── da index-nuovo.html, righe 61-75: font ── */
@font-face{
  font-family:'Fraunces';font-style:normal;font-weight:400 900;font-display:swap;
  src:url('fonts/fraunces-var-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Inter';font-style:normal;font-weight:400 700;font-display:swap;
  src:url('fonts/inter-var-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;
  src:url('fonts/ibmplexmono-latin-500.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

/* ── da index-nuovo.html, righe 77-128: variabili ── */
:root{
  /* ================================ PALETTE ================================
     La pagina non ha colori: grigi, bianco e nero grafite. L'UNICO colore
     acceso di tutto il sito sta addosso ai pulsanti che portano al contatto
     (--azione) e al timbro/filetti (--accento) — qui sono lo stesso verde,
     ma sono due variabili separate apposta: si può spostare il timbro su
     un altro colore senza toccare i pulsanti. È il motivo per cui i pulsanti
     si notano: non perché sono grossi, ma perché non hanno concorrenza.
     Ogni colore aggiunto altrove toglie clic a loro.
     Cronologia (per chi legge il codice, non serve a runtime): prima di
     questa versione "senza colore" sono state provate e scartate blu
     petrolio + arancio, poi vinaccia + avorio — se il verde va cambiato,
     le tre righe --azione* qui sotto bastano.
     ========================================================================= */
  --primario:#16181A;        /* grafite: marchio, fasce piene, numeri, prezzo */
  --primario-2:#0E1012;
  --fascia:#16181A;          /* fondo delle sezioni piene (non va mai ridefinito) */
  --su-primario:#FFFFFF;
  --azione:#0B7A3B;          /* ===> IL COLORE DEL PULSANTE. Cambia solo questa riga
                                     e le due sotto per cambiare colore d'azione. */
  --azione-2:#096330;
  --su-azione:#FFFFFF;
  --accento:#0B7A3B;         /* stesso colore per timbro e filetti, niente altro */
  --accento-testo:#0A6B34;   /* 5,9:1 sul fondo chiaro */
  --accento-chiaro:#9BE8B8;  /* sopra le fasce piene e il piede */
  --sfondo:#F7F6F4;          /* carta neutra: non distrae dal verde */
  /* ============================================================================ */

  --superficie:#FFFFFF;
  --testo:#141618;
  --testo-2:#585F66;         /* 6,2:1 sul fondo chiaro */
  --bordo:#E5E3DF;
  --bordo-2:#CFCCC6;
  --ok:#0F6B45;
  --ko:#B3341A;
  --esito-ok:#0F6B45;        /* messaggio di conferma del modulo */
  --esito-ko:#B3341A;

  --font-titolo:'Fraunces',Georgia,'Times New Roman',serif;
  --font-testo:'Inter',system-ui,-apple-system,'Segoe UI',Arial,sans-serif;
  --font-mono:'IBM Plex Mono','SFMono-Regular',Consolas,monospace;

  --ombra:0 1px 2px rgba(16,22,27,.04),0 10px 24px -14px rgba(16,22,27,.18);
  --ombra-alta:0 2px 6px rgba(16,22,27,.06),0 26px 50px -26px rgba(16,22,27,.30);

  --wrap:1180px;
  --testata-h:64px;
  /* raggi degli angoli: una scala sola per tutto il sito */
  --r-grande:18px;   /* schede, riquadri, griglie */
  --r-medio:14px;    /* pulsanti, righe della scheda */
  --r-piccolo:10px;  /* campi del modulo */
}

/* ── da index-nuovo.html, righe 130-165: base ── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

html{-webkit-text-size-adjust:100%}
/* Lo scorrimento morbido si accende solo a pagina caricata (classe .pronto):
   attivo da subito, il browser anima anche il salto all'ancora scritta
   nell'indirizzo e il lavoro di caricamento lo interrompe a meta', lasciando
   chi apre .../#prezzi fermo in cima. Stessa correzione degli altri siti. */
html.pronto{scroll-behavior:smooth}
[id]{scroll-margin-top:calc(var(--testata-h) + 1.2rem)}
@media (prefers-reduced-motion:reduce){html,html.pronto{scroll-behavior:auto}}

body{
  background:var(--sfondo);
  color:var(--testo);
  font-family:var(--font-testo);
  font-size:1.0625rem;
  line-height:1.68;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  padding-bottom:env(safe-area-inset-bottom);
}
@media (min-width:820px){body{font-size:1.125rem}}

img,svg,video{max-width:100%;display:block}
a{color:var(--primario);text-underline-offset:3px}
:focus-visible{outline:3px solid var(--accento);outline-offset:3px;border-radius:1px}
::selection{background:var(--primario);color:var(--su-primario)}

h1,h2,h3,h4{font-family:var(--font-titolo);line-height:1;font-weight:800;letter-spacing:-.005em;color:var(--testo)}
p{text-wrap:pretty;color:var(--testo-2)}
strong,b{font-weight:600;color:var(--testo)}

.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:clamp(1.1rem,4vw,2rem)}
.salta{position:absolute;left:-9999px;top:0;z-index:99;background:var(--primario);color:var(--su-primario);
  padding:.8rem 1.2rem;font-family:var(--font-titolo);font-weight:700}
.salta:focus{left:0}

/* ── da index-nuovo.html, righe 167-202: pulsanti ── */
/* ---------- pulsanti ---------- */
.btn{
  position:relative;overflow:hidden;isolation:isolate;
  display:inline-flex;align-items:center;justify-content:center;gap:.55rem;
  font-family:var(--font-titolo);font-weight:700;font-size:1rem;line-height:1.1;
  padding:1rem 1.5rem;border:1.5px solid var(--testo);color:var(--testo);
  background:transparent;border-radius:var(--r-medio);text-decoration:none;cursor:pointer;
  transition:color .2s ease,border-color .2s ease,transform .16s ease,box-shadow .2s ease;
}
/* Al passaggio del mouse il colore non "scatta": si espande dal centro come una
   macchia. È un cerchio dietro al testo che cresce fino a coprire il pulsante.
   Chi ha chiesto meno animazioni al sistema lo vede comparire e basta. */
.btn::before{
  content:"";position:absolute;left:50%;top:50%;z-index:-1;
  width:0;height:0;border-radius:50%;background:var(--testo);
  transform:translate(-50%,-50%);
  transition:width .5s cubic-bezier(.2,.7,.25,1),height .5s cubic-bezier(.2,.7,.25,1);
}
.btn:hover::before,.btn:focus-visible::before{width:240%;height:520%}
.btn:hover{color:var(--superficie)}
.btn:active{transform:translateY(1px)}
@media (prefers-reduced-motion:reduce){.btn::before{transition:none}}
.btn svg{width:1.15em;height:1.15em;fill:currentColor;flex:none}
.btn--primario{background:var(--azione);border-color:var(--azione);color:var(--su-azione);
  padding:1.08rem 1.8rem;font-size:1.05rem;box-shadow:0 2px 0 rgba(20,22,24,.10),0 12px 26px -14px rgba(20,22,24,.55)}
.btn--primario::before{background:var(--azione-2)}
.btn--primario:hover{color:var(--su-azione);
  box-shadow:0 2px 0 rgba(20,22,24,.14),0 16px 30px -14px rgba(20,22,24,.6)}
.btn--primario.btn--piccolo{padding:.66rem 1.05rem;font-size:.95rem}
.btn--piccolo{padding:.62rem 1rem;font-size:.92rem}
.btn--largo{width:100%}
/* i numeri di telefono in carattere tecnico: si leggono a colpo d'occhio e non
   sembrano una parola qualsiasi dentro alla frase */
.num{font-family:var(--font-mono);font-weight:500;letter-spacing:.01em;font-variant-numeric:tabular-nums}
/* microtesto sotto ai pulsanti: toglie il dubbio di cosa succede dopo il clic */
.micro{font-size:.86rem;color:var(--testo-2);margin-top:.55rem}

/* ── da index-nuovo.html, righe 204-236: testata ── */
/* ---------- barra superiore e testata ---------- */
.top{background:var(--testo);color:#E7E4DE;font-family:var(--font-mono);
  font-size:.74rem;letter-spacing:.06em;text-transform:uppercase}
.top__in{max-width:var(--wrap);margin-inline:auto;padding:.5rem clamp(1.1rem,4vw,2rem);
  display:flex;gap:1.4rem;flex-wrap:wrap;justify-content:space-between}
.top b{color:#FFFFFF;font-weight:500}
/* il numero in alto e' un link per chiamare: stessa grafica del testo, area di tocco piu' alta */
.top a{color:inherit;text-decoration:none;display:inline-block;padding:.55rem 0;margin:-.55rem 0}
/* Safari su iPhone trasforma da solo i numeri in link, con colori suoi (qui su fondo scuro sparivano) */
a[x-apple-data-detectors]{color:inherit!important;text-decoration:none!important;font:inherit!important;letter-spacing:inherit!important}
@media (max-width:640px){.top__in>span:nth-child(2){display:none}}

.testata{position:sticky;top:0;z-index:40;background:rgba(255,255,255,.93);
  backdrop-filter:blur(9px);border-bottom:1px solid var(--bordo)}
.testata__in{max-width:var(--wrap);margin-inline:auto;min-height:var(--testata-h);
  padding:.55rem clamp(1.1rem,4vw,2rem);display:flex;align-items:center;gap:1rem;justify-content:space-between}
.marchio{display:flex;align-items:center;gap:.6rem;text-decoration:none;color:var(--testo)}
.marchio__z{width:34px;height:34px;flex:none;display:block;color:var(--primario)}
.marchio__z svg{width:100%;height:100%;display:block}
.marchio__t{font-family:var(--font-titolo);font-weight:800;font-size:1.02rem;letter-spacing:-.02em;line-height:1.15;display:block}
.marchio__s{display:block;font-family:var(--font-mono);font-weight:500;font-size:.66rem;letter-spacing:.1em;
  text-transform:uppercase;color:var(--testo-2)}
.menu{display:flex;align-items:center;gap:1.5rem}
.menu a{text-decoration:none;font-size:.95rem}
.menu a:not(.btn){color:var(--testo);font-weight:500}
.menu a:not(.btn):hover{color:var(--primario)}
.apri-menu{display:none;align-items:center;gap:.5rem;background:transparent;border:1.5px solid var(--bordo-2);
  color:var(--testo);font-family:var(--font-titolo);font-weight:700;font-size:.92rem;padding:.55rem .9rem;border-radius:var(--r-medio);cursor:pointer}
.apri-menu svg{width:20px;height:20px;stroke:currentColor;stroke-width:2;fill:none}
@media (max-width:980px){
  .apri-menu{display:inline-flex}
  .menu{position:absolute;left:0;right:0;top:100%;flex-direction:column;align-items:stretch;gap:0;
    background:var(--superficie);border-bottom:1px solid var(--bordo);padding:.4rem 0;display:none;box-shadow:var(--ombra)}
  .menu.aperto{display:flex}
  .menu a:not(.btn){padding:.9rem clamp(1.1rem,4vw,2rem);border-top:1px solid var(--bordo)}
  .menu .btn{margin:.7rem clamp(1.1rem,4vw,2rem)}
}

/* ── da index-nuovo.html, righe 238-275: sezioni ── */
/* ---------- impaginazione delle sezioni ---------- */
.sez{padding:clamp(3.4rem,8vw,6.6rem) 0;position:relative}
.sez--bianca{background:var(--superficie);border-block:1px solid var(--bordo)}
/* fascia piena: ridefinisce i colori invece di sovrascrivere regola per regola,
   cosi' ogni discendente che usa i token resta leggibile senza elencarlo */
.sez--scura{
  background:var(--fascia);
  --sfondo:var(--primario);
  --superficie:rgba(255,255,255,.06);
  --testo:#FFFFFF;
  --testo-2:#D5D9DC;
  --esito-ok:#9BE8B8;
  --esito-ko:#FFD2C4;
  --bordo:rgba(255,255,255,.18);
  --bordo-2:rgba(255,255,255,.30);
  --accento-testo:var(--accento-chiaro);
  --primario:#FFFFFF;
  --su-primario:#0A3D5C;
  color:#FFFFFF;
}
.sez--scura .btn{border-color:#FFFFFF;color:#FFFFFF}
.sez--scura .btn::before{background:#FFFFFF}
.sez--scura .btn:hover{color:var(--su-primario)}
.sez--scura .btn--primario{background:var(--azione);border-color:var(--azione);color:var(--su-azione)}
.sez--scura .btn--primario::before{background:var(--azione-2)}
.sez--scura .btn--primario:hover{color:var(--su-azione)}

.occhiello{font-family:var(--font-mono);font-size:.76rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--accento-testo);display:flex;align-items:center;gap:.6rem;margin-bottom:1.1rem}
.occhiello::before{content:"";width:26px;height:2px;background:currentColor;flex:none}

.testa{max-width:760px;margin-bottom:clamp(2rem,4vw,3.2rem)}
.testa h2{font-size:clamp(1.9rem,4.6vw,3.3rem);text-transform:uppercase;letter-spacing:0;margin-bottom:1rem}
.testa p{font-size:1.06rem}
/* Due paragrafi nella stessa intestazione devono staccarsi. Col reset
   *{margin:0} si attaccavano: un testo diviso in due per la regola 4 restava a
   schermo un blocco unico da 9 righe. .9rem come fra i paragrafi dei problemi. */
.testa p+p{margin-top:.9rem}

/* ── da index-nuovo.html, righe 277-291: apertura ── */
/* ---------- apertura ---------- */
.hero{padding:clamp(2.6rem,6vw,4.6rem) 0 clamp(2.4rem,5vw,3.6rem);
  background:linear-gradient(180deg,#FFFFFF 0%,var(--sfondo) 62%)}
.hero__griglia{display:grid;gap:clamp(2rem,4vw,3rem)}
@media (min-width:1000px){.hero__griglia{grid-template-columns:1.12fr .88fr;align-items:start}}
.hero h1{font-size:clamp(2.2rem,5.2vw,3.7rem);line-height:1.04;letter-spacing:-.01em;margin-bottom:1.3rem;max-width:15ch}
.hero h1 em{font-style:normal;color:var(--primario)}
.hero__sotto{font-size:clamp(1.04rem,1.7vw,1.22rem);max-width:37em;margin-bottom:1.9rem}
.hero__azioni{display:flex;flex-wrap:wrap;gap:.8rem;margin-bottom:.2rem}
.hero__nota{font-size:.95rem;margin-top:.9rem}
.spunte{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem .9rem;margin-top:1.6rem;
  padding-top:1.4rem;border-top:1px solid var(--bordo)}
.spunte li{display:flex;align-items:center;gap:.45rem;font-size:.88rem;color:var(--testo);font-weight:500;
  border:1px solid var(--bordo);background:var(--superficie);padding:.42rem .8rem;border-radius:999px}
.spunte svg{width:15px;height:15px;stroke:var(--ok);stroke-width:3;fill:none;flex:none}

/* ── da index-nuovo.html, righe 293-317: scheda ── */
/* scheda dell'apertura: riquadri tondi, niente aria da fattura */
.scheda{background:var(--superficie);border:1px solid var(--bordo);border-radius:var(--r-grande);
  padding:1.05rem;position:relative;margin-top:2.6rem;box-shadow:var(--ombra-alta)}
.scheda__testa{padding:.5rem .7rem 1rem}
.scheda__tit{font-family:var(--font-titolo);font-weight:700;font-size:1.18rem;line-height:1.2;
  color:var(--testo);margin-top:.35rem}
.mono{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--testo-2)}
.voce{display:flex;justify-content:space-between;gap:1rem;align-items:center;
  padding:.85rem 1rem;margin-bottom:.5rem;border:1px solid var(--bordo);border-radius:var(--r-medio);
  background:var(--sfondo);font-size:.95rem;color:var(--testo-2)}
.voce b{font-family:var(--font-mono);font-weight:500;color:var(--testo);white-space:nowrap}
.voce--gratis{border-color:var(--azione);background:rgba(11,122,59,.06)}
/* La decorrenza del canone sta dentro la sua riga, sotto la descrizione. In una riga
   propria sembrava una quinta cosa da pagare. */
.voce__nota{display:block;margin-top:.25rem;font-size:.84rem;line-height:1.35;color:var(--testo-2)}
/* "gratis" nel carattere dei titoli, non in quello dei numeri: è la parola che
   deve saltare all'occhio in tutta la scheda */
.gratis{font-family:var(--font-titolo)!important;font-weight:700;font-size:1.5rem;
  color:var(--azione);letter-spacing:-.01em;line-height:1}
.voce--gratis{border-width:1.5px;margin-bottom:0}
.scheda__pie{padding:1rem .7rem .3rem;font-size:.88rem}
/* il timbro: dritto, non storto */
.timbro{position:absolute;top:-1.15rem;left:1.05rem;right:auto;background:var(--azione);color:var(--su-azione);
  font-family:var(--font-mono);font-weight:500;text-transform:uppercase;font-size:.72rem;letter-spacing:.1em;
  padding:.5rem .85rem;border-radius:999px;box-shadow:0 8px 18px -10px rgba(20,22,24,.7)}

/* ── da index-nuovo.html, righe 373-383: griglie ── */
/* ---------- griglie generiche ---------- */
.griglia{display:grid;gap:1px;background:var(--bordo);border:1px solid var(--bordo);border-radius:var(--r-grande);overflow:hidden}
@media (min-width:760px){.griglia--2{grid-template-columns:repeat(2,1fr)}}
@media (min-width:860px){.griglia--3{grid-template-columns:repeat(3,1fr)}}
@media (min-width:920px){.griglia--4{grid-template-columns:repeat(4,1fr)}}
.cella{background:var(--superficie);padding:clamp(1.4rem,2.6vw,2rem)}
.sez--scura .cella{background:rgba(255,255,255,.05)}
.cella__n{font-family:var(--font-mono);font-size:.74rem;letter-spacing:.14em;color:var(--accento-testo);
  text-transform:uppercase;display:block;margin-bottom:.7rem}
.cella h3{font-size:1.18rem;margin-bottom:.6rem;line-height:1.2}
.cella p{font-size:.98rem}

/* ── da index-nuovo.html, righe 416-417: riquadro ── */
.riquadro{border:1px solid var(--bordo);background:var(--superficie);padding:clamp(1.4rem,2.6vw,2rem);border-radius:var(--r-grande)}
.riquadro h3{font-size:1.25rem;text-transform:uppercase;margin-bottom:.8rem}

/* ── da index-nuovo.html, righe 496-502: barra del browser ── */
.lavoro__barra{display:flex;align-items:center;gap:.35rem;padding:.55rem .8rem;background:var(--sfondo);
  border-bottom:1px solid var(--bordo)}
.lavoro__barra i{width:8px;height:8px;border-radius:50%;background:var(--bordo-2)}
.lavoro__url{margin-left:.6rem;font-family:var(--font-mono);font-size:.7rem;color:var(--testo-2);
  letter-spacing:.04em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lavoro__img{background:var(--sfondo);aspect-ratio:8/5;overflow:hidden}
.lavoro__img svg,.lavoro__img img{width:100%;height:100%;object-fit:cover}

/* ── da index-nuovo.html, righe 558-561: solo lettori ── */
/* Testo letto dallo screen reader ma non mostrato. Sulle sei tendine la scritta e'
   uguale, "Cosa fa questo sito": fuori contesto (regola 47) serve sapere di quale. */
.solo-lettori{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}

/* ── da index-nuovo.html, righe 571-598: cartellino ── */
/* ---------- prezzi ---------- */
.prezzo-grande{display:grid;gap:clamp(1.6rem,3vw,2.6rem);align-items:start}
@media (min-width:920px){.prezzo-grande{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr)}}
.cartellino{background:var(--superficie);border:1px solid var(--bordo);border-radius:var(--r-grande);
  padding:clamp(1.5rem,3vw,2.2rem);box-shadow:var(--ombra);position:relative}
.cartellino__da{font-family:var(--font-mono);font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--testo-2)}
.cartellino__cifra{font-family:var(--font-testo);font-weight:700;font-size:clamp(2.7rem,6vw,4rem);
  line-height:1;letter-spacing:-.045em;color:var(--primario);margin:.35rem 0 .15rem;
  font-variant-numeric:tabular-nums}
.cartellino__nota{font-size:.98rem}
.cartellino__riga{margin-top:1.3rem;padding-top:1.2rem;border-top:1px solid var(--bordo)}
/* La nota sul canone che parte a gennaio. Sta dentro il cartellino, quindi non
   puo' prendere il colore d'azione: quello e' solo dei pulsanti, e ogni altra
   macchia colorata gli toglie clic. Si fa notare col filetto e col grassetto. */
.cartellino__ora{margin-top:.7rem;padding-left:.8rem;border-left:3px solid var(--bordo-2);
  font-size:.92rem}
.cartellino__ora b{display:block}

.cartellino__riga b{display:block;font-family:var(--font-testo);font-weight:700;font-size:1.1rem;
  letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--testo)}
.dipende{list-style:none;display:grid;gap:.1rem}
.dipende li{display:grid;grid-template-columns:auto 1fr;gap:.9rem;padding:.9rem 0;border-bottom:1px solid var(--bordo)}
.dipende li:first-child{padding-top:0}
.dipende b{font-family:var(--font-titolo);font-weight:700;font-size:1.02rem;color:var(--testo)}
.dipende span{font-size:.97rem;color:var(--testo-2);grid-column:2}
.dipende .segno{font-family:var(--font-mono);color:var(--accento-testo);font-size:.95rem;
  grid-column:1;grid-row:span 2;padding-top:.15rem}


/* ── da index-nuovo.html, righe 616-622: passaggi ── */
.passaggi{list-style:none;counter-reset:q;display:grid;gap:.85rem;margin-top:1rem}
.passaggi li{counter-increment:q;display:grid;grid-template-columns:1.6rem minmax(0,1fr);
  gap:.15rem .8rem;font-size:.98rem;color:var(--testo-2)}
.passaggi li::before{content:counter(q);font-family:var(--font-testo);font-weight:700;
  color:var(--accento-testo);font-variant-numeric:tabular-nums;grid-row:span 2}
.passaggi li b{grid-column:2;color:var(--testo)}
.passaggi li span{grid-column:2}

/* ── da index-nuovo.html, righe 641-669: tendine e domande ── */
.apri{border:1px solid var(--bordo);border-radius:var(--r-grande);background:var(--superficie);margin-top:1.2rem}
.apri>summary{
  list-style:none;cursor:pointer;position:relative;
  padding:1rem 3rem 1rem 1.2rem;min-height:24px;
  font-family:var(--font-testo);font-weight:600;font-size:1.02rem;color:var(--testo);
}
.apri>summary::-webkit-details-marker{display:none}
.apri>summary::after{
  content:"";position:absolute;right:1.2rem;top:1.35rem;width:11px;height:11px;
  border-right:2px solid var(--accento-testo);border-bottom:2px solid var(--accento-testo);
  transform:rotate(45deg);transition:transform .2s ease;
}
.apri[open]>summary::after{transform:rotate(-135deg)}
.apri>summary:hover{color:var(--primario)}
.apri__c{padding:0 1.2rem 1.2rem}
.apri__c>*:first-child{margin-top:0}
.faq{max-width:900px}
.faq details{border-top:1px solid var(--bordo)}
.faq details:last-of-type{border-bottom:1px solid var(--bordo)}
.faq summary{list-style:none;cursor:pointer;padding:1.1rem 2.6rem 1.1rem 0;position:relative;
  font-family:var(--font-titolo);font-weight:700;font-size:1.06rem;line-height:1.35;color:var(--testo)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";position:absolute;right:.5rem;top:1.45rem;width:12px;height:12px;
  border-right:2.5px solid var(--primario);border-bottom:2.5px solid var(--primario);
  transform:rotate(45deg);transition:transform .2s ease}
.faq details[open] summary::after{transform:rotate(-135deg)}
.faq summary:hover{color:var(--primario)}
.faq__r{padding:0 2.6rem 1.3rem 0}
.faq__r p+p{margin-top:.7rem}

/* ── da index-nuovo.html, righe 684-690: recapiti ── */
.recapiti{list-style:none;display:grid;gap:.8rem;margin-top:1.8rem}
.recapito{display:flex;gap:.9rem;align-items:center;text-decoration:none;color:var(--testo);
  border:1px solid var(--bordo);background:var(--superficie);padding:.95rem 1.1rem;border-radius:var(--r-medio);transition:border-color .16s}
.recapito:hover{border-color:var(--bordo-2)}
.recapito svg{width:24px;height:24px;fill:currentColor;flex:none}
.recapito b{display:block;font-family:var(--font-titolo);font-size:1.05rem}
.recapito span span{display:block;font-size:.86rem;color:var(--testo-2);font-weight:400}

/* ── da index-nuovo.html, righe 731-743: richiamo ── */
/* ---------- fascia di richiamo ---------- */
.richiamo{background:var(--testo);color:#FFFFFF;text-align:center;padding:clamp(2.6rem,6vw,4.4rem) 0}
.richiamo h2{font-size:clamp(1.9rem,5vw,3.4rem);text-transform:uppercase;margin-bottom:1rem;max-width:20ch;
  margin-inline:auto;color:#FFFFFF}
.richiamo p{color:#D5D2CC;max-width:60ch;margin:0 auto 1.7rem;font-size:1.05rem}
.richiamo .btn{border-color:#FFFFFF;color:#FFFFFF}
.richiamo .btn::before{background:#FFFFFF}
.richiamo .btn:hover{color:var(--testo)}
.richiamo .btn--primario{background:var(--azione);border-color:var(--azione);color:var(--su-azione)}
.richiamo .btn--primario::before{background:var(--azione-2)}
.richiamo .btn--primario:hover{color:var(--su-azione)}
.richiamo__azioni{display:flex;gap:.8rem;justify-content:center;flex-wrap:wrap}
.richiamo .micro{color:#D5D2CC;margin-top:1rem}

/* ── da index-nuovo.html, righe 745-767: piede ── */
/* ---------- piede ---------- */
.piede{background:var(--testo);color:#D5D2CC;padding:clamp(2.4rem,5vw,3.6rem) 0 6.5rem}
@media (min-width:760px){.piede{padding-bottom:2.4rem}}
.piede__griglia{display:grid;gap:1.8rem}
@media (min-width:760px){.piede__griglia{grid-template-columns:1.3fr 1fr 1fr 1fr}}
.piede h2{font-family:var(--font-mono);font-weight:500;font-size:.76rem;letter-spacing:.12em;
  text-transform:uppercase;color:var(--accento-chiaro);margin-bottom:.8rem}
@media (max-width:430px){
  /* "Siti per aziende · Brescia" andava a due righe e alzava la barra */
  .marchio__s{display:none}
}
.piede ul{list-style:none;display:grid;gap:.05rem}
/* I collegamenti in colonna erano alti 19 px: col pollice si sbaglia bersaglio. */
.piede li>a{display:inline-block;padding-block:6px}
.piede li{color:#D5D2CC;font-size:.95rem}
.piede a{color:#D5D2CC;text-decoration:none;font-size:.95rem}
.piede a:hover{color:#FFFFFF;text-decoration:underline}
.piede p{color:#D5D2CC;font-size:.95rem}
.piede__marchio{font-family:var(--font-titolo);font-weight:800;font-size:1.25rem;color:#FFFFFF;margin-bottom:.5rem}
.piede__basso{border-top:1px solid rgba(255,255,255,.16);margin-top:2.2rem;padding-top:1.3rem;
  display:flex;flex-wrap:wrap;gap:.6rem 1.6rem;justify-content:space-between;
  font-family:var(--font-mono);font-size:.76rem;letter-spacing:.05em;color:#B9B5AE;text-transform:uppercase}
.piede__basso a{font-size:.76rem;color:#B9B5AE}

/* ── da index-nuovo.html, righe 769-774: barra fissa ── */
/* ---------- barra fissa su telefono ---------- */
.barra-mobile{position:fixed;left:0;right:0;bottom:0;z-index:45;display:flex;gap:.5rem;
  padding:.55rem .7rem calc(.55rem + env(safe-area-inset-bottom));
  background:rgba(255,255,255,.97);border-top:1px solid var(--bordo);box-shadow:0 -6px 20px -12px rgba(16,22,27,.35)}
.barra-mobile .btn{flex:1;padding:.8rem .6rem;font-size:.95rem}
@media (min-width:760px){.barra-mobile{display:none}}

/* ── da index-nuovo.html, righe 796-801: bersagli ── */
/* ── BERSAGLI DA TOCCARE, giro del 2026-09-11 ────────────────────────────────
   WCAG 2.2 chiede 24x24 px per ogni cosa che si tocca. Questi collegamenti
   stavano fra 16 e 23 px di altezza: alti abbastanza per il mouse, corti per
   un pollice. Il min-height non sposta niente perche' e' altezza minima, non
   fissa, e i collegamenti dentro una frase restano esclusi per esenzione. */
.piede__basso a{display:inline-flex;align-items:center;min-height:24px}

/* =========================================================================
   PAGINE PER MESTIERE — tutto quello che segue e' nuovo, non viene dalla home.
   ========================================================================= */

/* Il percorso in cima: riporta alla home con un tocco e dice a Google dove sta
   la pagina (lo stesso percorso e' nei dati strutturati BreadcrumbList). */
.briciole{font-family:var(--font-mono);font-size:.74rem;letter-spacing:.06em;text-transform:uppercase;
  color:var(--testo-2);margin-bottom:1.1rem}
.briciole ol{list-style:none;display:flex;flex-wrap:wrap;align-items:center;gap:0 .5rem}
.briciole li+li::before{content:"/";margin-right:.5rem;color:var(--bordo-2)}
.briciole a{color:var(--testo-2);display:inline-flex;align-items:center;min-height:24px}
.briciole a:hover{color:var(--testo)}

/* Il titolo di una pagina per mestiere e' la ricerca intera, piu' lunga
   dell'H1 della home: a 15ch andava su cinque righe. */
.hero--pagina h1{max-width:21ch;font-size:clamp(2rem,4.6vw,3.25rem)}
/* I nomi dei mestieri sono parole lunghe, e nei titoli di sezione vanno in
   maiuscolo. A 320 px "METALMECCANICA?" da sola misurava 329 px su 285 disponibili
   e la pagina sbordava di 27 px (misurato il 2026-09-16). Sotto i 360 px i titoli
   scendono di un gradino; break-word resta come rete per la parola che non ci
   sta comunque, e va a capo solo quella. */
h1,h2,h3{overflow-wrap:break-word}
@media (max-width:360px){
  .hero--pagina h1{font-size:1.85rem}
  .testa h2,.tit-medio{font-size:1.6rem}
}

/* Titoli di sezione dentro due colonne: stessa famiglia di .testa h2, un gradino sotto. */
.tit-medio{font-size:clamp(1.6rem,3.4vw,2.3rem);text-transform:uppercase;line-height:1.05;margin-bottom:1rem}

/* Il rimando al punto esatto del sito d'esempio, in fondo a ogni cella. */
.cella__vedi{display:inline-flex;align-items:center;gap:.35rem;min-height:24px;margin-top:.8rem;
  font-size:.9rem;font-weight:600;color:var(--accento-testo);text-decoration:none;
  border-bottom:1.5px solid currentColor}
.cella__vedi:hover{color:var(--testo)}
.cella p+p{margin-top:.6rem}

/* Il sito d'esempio: schermata dentro la cornice del browser, testo a fianco. */
.esempio{display:grid;gap:clamp(1.6rem,3vw,2.6rem);align-items:start}
@media (min-width:920px){.esempio{grid-template-columns:1.1fr .9fr}}
.esempio__quadro{background:var(--superficie);border:1px solid var(--bordo);border-radius:var(--r-grande);
  overflow:hidden;box-shadow:var(--ombra-alta)}
.esempio__img{background:var(--sfondo);aspect-ratio:8/5;overflow:hidden}
.esempio__img img{width:100%;height:100%;object-fit:cover}
.esempio__testo p+p,.esempio__testo p+ol,.esempio__testo ol+p{margin-top:1rem}
.azioni{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.5rem}

/* Prezzo e tempi affiancati: sono le due domande che arrivano insieme. */
.due-colonne{display:grid;gap:clamp(2.2rem,4vw,3.4rem)}
@media (min-width:900px){.due-colonne{grid-template-columns:1fr 1fr;align-items:start}}
.due-colonne p+p,.due-colonne p+ul,.due-colonne ul+p{margin-top:.9rem}
/* Contatti: testo a sinistra e recapiti a destra, come la sezione contatti della
   home. In colonna unica, sul computer restava vuota tutta la meta' destra. */
.contatti-pagina{display:grid;gap:1.4rem}
.contatti-pagina .recapiti{max-width:620px}
@media (min-width:980px){
  .contatti-pagina{grid-template-columns:1.1fr .9fr;align-items:center;gap:3rem}
  .contatti-pagina .testa{margin-bottom:0}
  .contatti-pagina .recapiti{margin-top:0}
}
.nota{font-size:.95rem;margin-top:1.4rem;padding-left:1rem;border-left:2px solid var(--bordo-2);max-width:70ch}

/* ── dalla home: etichette ed elenchi con spunta e croce (blocco "prezzi", canone) ── */
.canone__t{font-family:var(--font-mono);font-size:.76rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--testo);margin-bottom:.7rem}
.canone__l{list-style:none;display:grid;gap:.55rem}
.canone__l li{display:flex;gap:.55rem;align-items:flex-start;font-size:.96rem;color:var(--testo-2)}
.canone__l svg{width:16px;height:16px;flex:none;margin-top:.35rem;stroke-width:3;fill:none}
.canone__l--si svg{stroke:var(--ok)}
.canone__l--no svg{stroke:var(--ko)}
/* ── dalla home: la fonte sotto un'affermazione (blocco "le tre prove") ── */
.fonte{margin-top:1.8rem;font-size:.94rem;max-width:75ch;border-left:2px solid var(--bordo-2);padding-left:1rem}
/* ── dalla home: la riga del pulsante di stampa ── */
.stampa-riga{display:flex;flex-wrap:wrap;gap:.9rem;align-items:center;margin-top:1.6rem;
  border-top:1px solid var(--bordo);padding-top:1.2rem}
.stampa-riga p{font-size:.92rem}

/* =========================================================================
   AGGIUNTE PER P2-P4 (2026-09-16)
   ========================================================================= */

/* Due elenchi affiancati "si puo' / non si puo'" (P2) */
.si-no{display:grid;gap:1.6rem;background:var(--superficie);border:1px solid var(--bordo);
  border-radius:var(--r-grande);padding:clamp(1.3rem,2.6vw,2rem)}
@media (min-width:820px){.si-no{grid-template-columns:1fr 1fr;gap:2.4rem}}
.fonte a{color:var(--testo)}
/* Le voci degli elenchi stanno a 14 px l'una dall'altra, non a 9 come nel canone della
   home: sotto 0,45 righe di spazio l'occhio (e regole-testo.js) le legge come un blocco
   unico, e cinque voci diventavano dieci righe filate sul telefono (regola 4). */
.si-no .canone__l{gap:.8rem}

/* Il piede ha un secondo gruppo di link sotto "Servizi" */
.piede h2.piede__secondo{margin-top:1.6rem}

/* La scheda in apertura usata come indice (P4): le voci sono collegamenti. */
.scheda a.voce--link{text-decoration:none;min-height:48px;transition:border-color .16s ease,color .16s ease}
.scheda a.voce--link:hover{border-color:var(--bordo-2);color:var(--testo)}

/* ---------- P4: una scheda per domanda ----------
   Titolo, perche' chiederla, poi due riquadri: la risposta da non accettare
   e la mia. Croce e spunta con gli stessi colori degli elenchi del canone. */
.domande-gruppo+.domande-gruppo{margin-top:clamp(2.6rem,5vw,3.8rem)}
.domande-gruppo>h2{font-size:clamp(1.35rem,2.8vw,1.9rem);text-transform:uppercase;line-height:1.1;margin-bottom:1.1rem}
.domanda{background:var(--superficie);border:1px solid var(--bordo);border-radius:var(--r-grande);
  padding:clamp(1.2rem,2.4vw,1.8rem)}
.domanda+.domanda{margin-top:1rem}
.domanda h3{font-size:clamp(1.12rem,2vw,1.35rem);line-height:1.25;margin-bottom:.5rem}
.domanda__perche{font-size:.97rem}
.domanda__risposte{display:grid;gap:.8rem;margin-top:1rem}
@media (min-width:820px){.domanda__risposte{grid-template-columns:1fr 1.25fr}}
.risposta{border-radius:var(--r-medio);padding:.9rem 1rem;background:var(--sfondo);border-left:3px solid var(--bordo-2)}
.risposta--no{border-left-color:var(--ko)}
.risposta--si{border-left-color:var(--ok)}
.risposta__eti{display:flex;align-items:center;gap:.4rem;font-family:var(--font-mono);font-size:.72rem;
  letter-spacing:.08em;text-transform:uppercase;margin-bottom:.35rem}
.risposta--no .risposta__eti{color:var(--ko)}
.risposta--si .risposta__eti{color:var(--ok)}
.risposta__eti svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:3;flex:none}
.risposta p{font-size:.96rem}
.risposta--si p{color:var(--testo)}

/* ── dalla home: il listino delle aggiunte (sezione prezzi) ── */
/* Listino delle aggiunte (2026-09-17): stesse righe della scheda in apertura, cifra a destra. */
.listino__t{font-family:var(--font-mono);font-size:.76rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--testo);margin:1.4rem 0 .55rem}
.listino{list-style:none;display:grid;gap:.45rem}
.listino li{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 1rem;
  border:1px solid var(--bordo);border-radius:var(--r-medio);background:var(--sfondo);font-size:.95rem;color:var(--testo-2)}
.listino li small{display:block;font-size:.82rem;line-height:1.35;margin-top:.15rem;color:var(--testo-2)}
.listino b{font-family:var(--font-mono);font-weight:500;color:var(--testo);white-space:nowrap;text-align:right}
.listino__esempio{margin-top:1.1rem;font-size:.95rem}

/* Nella guida ai prezzi il listino sta da solo, non in una colonna: largo quanto il testo */
.listino-pagina{max-width:760px}

/* ---------- stampa ---------- */
@media print{
  .top,.testata,.barra-mobile,.azioni,.hero__azioni,.recapiti{display:none!important}
  body{background:#fff;color:#000;font-size:11pt}
  .sez,.sez--bianca,.sez--scura,.hero,.piede,.cella,.griglia,.scheda,.faq__r{
    background:#fff!important;color:#000!important;border-color:#999!important;box-shadow:none!important}
  h1,h2,h3,p,li,summary,.piede p,.piede a,.piede li{color:#000!important}
  .domanda{break-inside:avoid;border-color:#999!important}
  .stampa-riga{display:none!important}
}
