/* First Engineering — foglio di stile del sito */
:root{
  --ink:#1c1f1d;
  --green:#0f5c3a;
  --green-2:#0b4a2e;
  --green-soft:#e7f1ec;
  --leaf:#22b34e;
  --paper:#ffffff;
  --stone:#f4f5f4;
  --line:#dadedb;
  --muted:#5f6663;
  --red:#b3261e;
  --max:1160px;
  --gutter:24px;
  color-scheme:light;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:17px;line-height:1.6;color:var(--ink);background:var(--paper)}
a{color:inherit}
img,svg{max-width:100%;height:auto;display:block}
h1,h2,h3,h4{margin:0;font-weight:700;line-height:1.15;letter-spacing:-.01em}
h1{font-size:clamp(2rem,4.6vw,3.4rem)}
h2{font-size:clamp(1.6rem,3vw,2.3rem)}
h3{font-size:1.2rem}
h4{font-size:1rem}
p{margin:0 0 1em}
ul,ol{margin:0 0 1em;padding-left:1.2em}
li{margin:.35em 0}
table{border-collapse:collapse;width:100%;margin:1em 0 1.5em;font-size:.95rem}
th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:top}
th{font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
td.num,th.num{text-align:right;white-space:nowrap}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--gutter)}
.eyebrow{display:block;font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:var(--green);margin-bottom:1.2em;font-weight:700}
.lead{font-size:clamp(1.05rem,1.5vw,1.3rem);max-width:44em;color:#2b2f2d}
.muted{color:var(--muted)}
.small{font-size:.9rem}
.center{text-align:center}

/* testata */
.top{position:sticky;top:0;z-index:10;background:rgba(255,255,255,.97);backdrop-filter:blur(6px);border-bottom:1px solid var(--line)}
.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px 24px;flex-wrap:wrap;padding-top:14px;padding-bottom:14px}
.brand{display:flex;align-items:center;text-decoration:none}
.brand img{height:34px;width:auto}
nav{display:flex;flex-wrap:wrap;align-items:center;gap:6px 22px;font-size:.92rem;letter-spacing:.02em}
nav a{text-decoration:none;padding:6px 0;border-bottom:2px solid transparent}
nav a:hover,nav a[aria-current]{border-bottom-color:var(--green)}
nav a.hl{border:1px solid var(--green);color:var(--green);padding:7px 14px;font-weight:600}
nav a.hl:hover{background:var(--green);color:#fff}
nav .menu{position:relative;display:flex;align-items:center}
nav .menu>a::after{content:"";display:inline-block;width:.42em;height:.42em;margin-left:.5em;border:solid currentColor;border-width:0 1px 1px 0;transform:rotate(45deg);position:relative;top:-.15em}
nav .menu ul{position:absolute;top:100%;left:0;min-width:320px;margin:0;padding:8px 0;list-style:none;background:var(--paper);border:1px solid var(--line);box-shadow:0 10px 28px rgba(0,0,0,.08);display:none;z-index:20}
nav .menu li{margin:0}
nav .menu ul a{display:block;padding:10px 20px;border:0;white-space:nowrap}
nav .menu ul a:hover{background:var(--stone)}
nav .menu:hover ul,nav .menu:focus-within ul{display:block}
[id]{scroll-margin-top:96px}

/* sezioni */
section{padding:64px 0}
section.alt{background:var(--stone)}
section.green{background:var(--green);color:#fff}
section.green .eyebrow{color:#bfe6cf}
section.green a{color:#fff}
.head{max-width:42em;margin-bottom:2.2em}
.head p{margin-top:.9em;color:#2b2f2d}
.head.center{margin-left:auto;margin-right:auto;text-align:center}
.head.center p{margin-left:auto;margin-right:auto}
.actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:2em}
.btn{display:inline-block;padding:13px 24px;border:1px solid var(--green);color:var(--green);text-decoration:none;font-size:.95rem;font-weight:600;letter-spacing:.02em;background:transparent;cursor:pointer;font-family:inherit;border-radius:0}
.btn:hover{background:var(--green-soft)}
.btn.primary{background:var(--green);color:#fff}
.btn.primary:hover{background:var(--green-2)}
.btn.white{border-color:#fff;color:#fff}
.btn.white:hover{background:rgba(255,255,255,.12)}
.btn.white.primary{background:#fff;color:var(--green)}
.btn.white.primary:hover{background:#e9f3ee}

/* apertura */
.hero{position:relative;color:#fff;background:var(--green-2) url("apertura.jpg") center 40%/cover no-repeat;padding:120px 0 110px}
.hero::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,42,26,.86) 0%,rgba(8,42,26,.66) 55%,rgba(8,42,26,.4) 100%)}
.hero .wrap{position:relative}
.hero h1{max-width:15em;text-shadow:0 2px 20px rgba(0,0,0,.3)}
.hero .eyebrow{color:#bfe6cf}
.hero .lead{color:#eef5f0;margin-top:1.2em;max-width:36em}
.hero.inner{padding:88px 0 76px;background-image:none;background:var(--green)}
.hero.inner::before{display:none}
.hero.inner h1{max-width:18em}
.hero.inner .lead{max-width:44em}
.crumbs{font-size:.85rem;color:#cfe6d8;margin-bottom:1.6em}
.crumbs a{color:#fff;text-decoration:none}
.crumbs a:hover{text-decoration:underline}

/* numeri chiave */
.facts{display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-top:2.4em}
.facts div{border-left:3px solid var(--leaf);padding:4px 0 4px 18px}
.facts b{display:block;font-size:2rem;line-height:1.1;font-weight:700;letter-spacing:-.02em}
.facts span{display:block;font-size:.9rem;color:var(--muted);margin-top:.3em}
.hero .facts b{color:#fff}
.hero .facts span{color:#d9eadf}
.hero .facts div{border-color:var(--leaf)}

/* schede */
.cards{display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(270px,1fr))}
.card{display:flex;flex-direction:column;gap:.5em;background:var(--paper);border:1px solid var(--line);padding:28px 28px 24px;text-decoration:none;transition:border-color .15s,box-shadow .15s}
a.card:hover{border-color:var(--green);box-shadow:0 10px 28px rgba(15,92,58,.10)}
section.alt .card{border-color:transparent}
section.alt a.card:hover{border-color:var(--green)}
.card .tag{font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--green);font-weight:700}
.card h3{font-size:1.25rem;margin:.1em 0 .2em}
.card p{flex:1;color:#2b2f2d;margin-bottom:.8em}
.card .more{font-size:.9rem;font-weight:600;color:var(--green)}
.card .more::after{content:" \2192"}

/* elenco a passi */
.steps{display:grid;gap:28px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));counter-reset:passo}
.step{border-top:2px solid var(--green);padding-top:18px}
.step .n{display:block;font-size:.8rem;letter-spacing:.14em;color:var(--green);font-weight:700;margin-bottom:.6em}
.step h3{margin-bottom:.4em}
.step p{color:#2b2f2d;margin:0}
section.green .step{border-top-color:rgba(255,255,255,.5)}
section.green .step .n{color:#bfe6cf}
section.green .step p{color:#e6f1ea}

/* colonne */
.cols{display:grid;gap:36px 48px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.cols h3{margin-bottom:.5em}
.two{display:grid;gap:40px 64px;grid-template-columns:1.1fr .9fr;align-items:start}
.two>*,.cols>*,.split>*,.cards>*,.steps>*{min-width:0}
@media (max-width:860px){.two{grid-template-columns:1fr}}
.prose{max-width:46em}
.prose h2{margin:1.6em 0 .6em}
.prose h2:first-child{margin-top:0}
.prose h3{margin:1.4em 0 .5em}
.box{background:var(--green-soft);border-left:4px solid var(--green);padding:22px 26px;margin:1.4em 0}
.box p:last-child{margin-bottom:0}
.note{font-size:.9rem;color:var(--muted)}

/* indice di pagina */
.toc{position:sticky;top:96px;border:1px solid var(--line);padding:20px 22px;font-size:.92rem}
.toc b{display:block;font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:.8em}
.toc a{display:block;text-decoration:none;padding:5px 0;border-bottom:1px solid var(--line)}
.toc a:last-child{border-bottom:0}
.toc a:hover{color:var(--green)}
.toc .cta{margin-top:1em}
.toc .cta .btn{display:block;text-align:center;width:100%}

/* domande frequenti */
details{border-top:1px solid var(--line);padding:4px 0}
details:last-of-type{border-bottom:1px solid var(--line)}
summary{cursor:pointer;padding:14px 0;font-weight:600;font-size:1.02rem;list-style:none;display:flex;justify-content:space-between;gap:16px}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";color:var(--green);font-weight:400;font-size:1.3rem;line-height:1}
details[open] summary::after{content:"\2013"}
details p{padding-bottom:12px;color:#2b2f2d}
details p:last-child{padding-bottom:16px}

/* calcolatore */
.calc{background:var(--paper);border:1px solid var(--line);padding:32px}
section.alt .calc{border-color:transparent}
.calc form{display:grid;grid-template-columns:1fr 1fr;gap:14px 24px}
.calc label{display:block}
.calc label span{display:block;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:.35em}
.calc input,.calc select{width:100%;padding:10px 12px;border:1px solid var(--line);background:var(--stone);font:inherit;color:var(--ink);border-radius:0}
.calc input:focus,.calc select:focus{outline:2px solid var(--green);outline-offset:0;background:#fff}
.calc .full{grid-column:1/-1}
.calc .out{grid-column:1/-1;margin-top:.6em;background:var(--green-soft);padding:22px 26px}
.calc .out table{margin:0}
.calc .out td,.calc .out th{border-bottom-color:#cfe0d6}
.calc .out tr.tot td{font-weight:700;font-size:1.05rem;border-bottom:0}
.calc .out .big{font-size:1.9rem;font-weight:700;color:var(--green);letter-spacing:-.02em}
.calc .send{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:16px 24px;align-items:center;margin-top:.4em}
@media (max-width:720px){.calc form{grid-template-columns:1fr}.calc{padding:22px}.calc .out{padding:16px}.calc .out td{padding:8px 6px;font-size:.9rem}.calc .out .big{font-size:1.4rem}}

/* modulo di contatto */
.split{display:grid;grid-template-columns:.9fr 1.1fr;gap:48px 72px;align-items:start}
@media (max-width:860px){.split{grid-template-columns:1fr}}
.contacts b{display:block;font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:1.4em 0 .4em}
.contacts b:first-child{margin-top:0}
.contacts p{margin-bottom:.3em}
.contacts a{text-decoration-thickness:1px;text-underline-offset:3px}
form.modulo{display:grid;grid-template-columns:1fr 1fr;gap:12px 20px}
form.modulo .full{grid-column:1/-1}
form.modulo label{display:block}
form.modulo label span{display:block;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:.35em}
form.modulo input[type=text],form.modulo input[type=tel],form.modulo input[type=email],form.modulo select,form.modulo textarea{width:100%;padding:10px 12px;border:1px solid var(--line);background:var(--stone);font:inherit;color:var(--ink);border-radius:0}
form.modulo input:focus,form.modulo select:focus,form.modulo textarea:focus{outline:2px solid var(--green);outline-offset:0;background:#fff}
form.modulo textarea{resize:vertical;min-height:110px}
form.modulo .check{display:flex;gap:.7em;align-items:flex-start;font-size:.9rem;margin-top:.4em}
form.modulo .check input{width:1.1em;height:1.1em;margin-top:.25em;accent-color:var(--green);flex:none}
form.modulo .check span{display:inline;text-transform:none;letter-spacing:0;font-size:.9rem;color:var(--ink);margin:0}
form.modulo .send{display:flex;flex-wrap:wrap;gap:16px 24px;align-items:center;margin-top:.6em}
@media (max-width:600px){form.modulo{grid-template-columns:1fr}}

/* persone, sedi, loghi */
.people{display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.person{border-top:2px solid var(--green);padding-top:16px}
.person b{display:block;font-size:1.1rem}
.person span{display:block;color:var(--muted);font-size:.92rem}
.logos{display:flex;flex-wrap:wrap;gap:28px 56px;align-items:center;justify-content:center;margin-top:1.4em}
.logos img{height:34px;width:auto;opacity:.9}
.logos a:hover img{opacity:1}
.badges{display:flex;flex-wrap:wrap;gap:12px;margin-top:1.4em}
.badge{border:1px solid var(--line);padding:8px 14px;font-size:.88rem;background:var(--paper)}
.badge b{color:var(--green)}

/* chiusura */
.cta-band{background:var(--green);color:#fff;padding:56px 0}
.cta-band .wrap{display:flex;flex-wrap:wrap;gap:24px 48px;align-items:center;justify-content:space-between}
.cta-band h2{font-size:clamp(1.4rem,2.4vw,1.9rem);max-width:24em}
.cta-band p{margin:.4em 0 0;color:#d9eadf}

/* piè di pagina */
footer{background:#152a1f;color:#cfd8d2;padding:52px 0 36px;font-size:.86rem;line-height:1.6}
footer a{color:#fff}
footer .grid{display:grid;gap:32px 48px;grid-template-columns:2fr 1fr 1fr}
@media (max-width:860px){footer .grid{grid-template-columns:1fr}}
footer b{display:block;font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:#9fb8aa;margin-bottom:.8em}
footer ul{list-style:none;padding:0;margin:0}
footer li{margin:.3em 0}
footer ul a{text-decoration:none}
footer ul a:hover{text-decoration:underline}
footer .legal{margin-top:2.4em;padding-top:1.4em;border-top:1px solid #2e4a3b}
footer .legal p{margin-bottom:.6em}
footer .links{display:flex;flex-wrap:wrap;gap:8px 24px;margin-top:1.2em}
footer .links a{text-decoration:none}
footer .links a:hover{text-decoration:underline}
footer .logo img{height:30px;width:auto;filter:brightness(0) invert(1);opacity:.95;margin-bottom:1.2em}

/* pagine di testo */
.legalpage h2{font-size:1.25rem;margin:1.8em 0 .5em}
.legalpage p,.legalpage li{font-size:1rem}

@media (max-width:720px){
  :root{--gutter:16px}
  body{font-size:16px}
  section{padding:52px 0}
  .hero{padding:72px 0 64px}
  .hero.inner{padding:56px 0 48px}
  .top .wrap{padding-top:12px;padding-bottom:12px}
  .brand img{height:28px}
  nav{gap:4px 16px;font-size:.86rem}
  nav .menu ul{min-width:260px}
  .card{padding:22px}
  .facts b{font-size:1.6rem}
  .toc{position:static}
  .cta-band{padding:44px 0}
}
@media print{.top,.cta-band,footer .links{display:none}}

/* 11 ottobre 2026: testi rivisti e calcolatore per annualità */
[hidden]{display:none!important}
.facts b{font-size:clamp(1.3rem,1.8vw,1.75rem)}
.calc .aiuto{display:block;margin-top:.45em;font-size:.82rem;line-height:1.45;color:var(--muted)}
.calc .out .note{margin:.9em 0 0;font-size:.86rem;color:var(--muted)}
.calc details.piano{margin-top:1.1em;border-top:1px solid #cfe0d6;padding-top:.2em}
.calc details.piano summary{font-size:.95rem;padding:10px 0}
.calc details.piano table{margin:.2em 0 .6em}
.calc details.piano td,.calc details.piano th{padding:7px 10px;font-size:.9rem}
.box h3{font-size:1.1rem}
.contacts h2{margin-bottom:0}
.toc table.dati{margin:.3em 0 0;font-size:.85rem}
.toc table.dati td{padding:5px 0;border-bottom:1px solid var(--line)}
.toc table.dati td:first-child{color:var(--muted);padding-right:12px;white-space:nowrap}
ul.uffici{list-style:none;padding:0;margin:.3em 0 1em;font-size:.92rem}
ul.uffici li{margin:.25em 0}
.toc ul.uffici{font-size:.85rem}
.prose ol li,.prose ul li{margin:.55em 0}

/* 11 ottobre 2026: logo più grande in testata e nel piè di pagina */
.brand img{height:56px}
footer .logo img{height:44px}
[id]{scroll-margin-top:112px}
.toc{top:112px}
@media (max-width:720px){.brand img{height:44px}footer .logo img{height:38px}}

/* intestazioni numeriche su più righe, così la prima colonna resta larga */
th.num{white-space:normal;width:22%}

/* 11 ottobre 2026: News ed eventi e certificato ISO 9001 */
.evento{display:grid;grid-template-columns:minmax(0,400px) minmax(0,1fr);gap:40px 56px;align-items:start}
.evento+.evento{margin-top:56px;padding-top:56px;border-top:1px solid var(--line)}
.evento .locandina{display:block;border:1px solid var(--line);box-shadow:0 10px 28px rgba(0,0,0,.08);transition:border-color .15s}
.evento .locandina:hover{border-color:var(--green)}
.evento .prose h2{margin:0}
.evento .sotto{font-size:1.1rem;color:#2b2f2d;margin:.6em 0 1.2em}
.evento table.dati{margin:0 0 1.6em}
.evento table.dati td:first-child{width:7.5em;color:var(--muted);font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;padding-left:0}
.evento table.dati a{text-decoration-thickness:1px;text-underline-offset:3px}
.evento .prose h3{margin:0 0 .5em}
ol.programma{list-style:none;padding:0;margin:0;border-top:1px solid var(--line)}
.prose ol.programma li{margin:0;padding:12px 0;border-bottom:1px solid var(--line)}
ol.programma b{display:block;font-weight:600;line-height:1.4}
ol.programma span{display:block;color:var(--muted);font-size:.92rem;margin-top:.2em}
@media (max-width:860px){.evento{grid-template-columns:1fr}.evento .locandina{max-width:420px}}
.certificato{display:flex;gap:20px;align-items:center;margin:.4em 0 2em;padding:16px;border:1px solid var(--line)}
.certificato a.img{flex:none;width:120px;border:1px solid var(--line)}
.certificato b{display:block}
.certificato span{display:block;color:var(--muted);font-size:.92rem;margin:.2em 0 .5em}
.certificato .more{font-size:.92rem;font-weight:600;color:var(--green);text-decoration:none}
.certificato .more::after{content:" \2192"}
@media (max-width:720px){.evento table.dati td:first-child{width:auto;padding-right:12px}.certificato a.img{width:96px}}
section.prossimo{padding:26px 0;border-bottom:1px solid var(--line)}
.prossimo .wrap{display:flex;align-items:center;gap:18px 32px;flex-wrap:wrap}
.prossimo .mini{flex:none;width:76px;border:1px solid var(--line);box-shadow:0 6px 16px rgba(0,0,0,.06)}
.prossimo .testo{flex:1;min-width:240px}
.prossimo .eyebrow{margin-bottom:.35em}
.prossimo h2{font-size:clamp(1.2rem,2vw,1.55rem)}
.prossimo p{margin:.35em 0 0;color:var(--muted);font-size:.95rem}
@media (max-width:720px){.prossimo .wrap{gap:14px 16px;align-items:flex-start}.prossimo .mini{width:60px}.prossimo .testo{min-width:0;flex-basis:calc(100% - 80px)}.prossimo .btn{width:100%;text-align:center}}

/* payoff sotto il logo nel piè di pagina e Chi siamo a colonna unica (12/10/2026) */
footer .payoff{color:#bfe6cf;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;margin:-.5em 0 1.3em}
.solo{max-width:52em}
.solo h3{margin:1.8em 0 .8em;font-size:1.05rem;letter-spacing:.06em;text-transform:uppercase;color:var(--green)}
.people+h3{margin-top:2.2em}
