@font-face{font-family:"Archivo";src:url(/assets/fonts/archivo-latin-wdth-normal.woff2) format("woff2");font-weight:100 900;font-stretch:62% 125%;font-style:normal;font-display:swap}
@font-face{font-family:"Source Serif 4";src:url(/assets/fonts/source-serif-4-latin-wght-normal.woff2) format("woff2");font-weight:200 900;font-style:normal;font-display:swap}
@font-face{font-family:"Source Serif 4";src:url(/assets/fonts/source-serif-4-latin-wght-italic.woff2) format("woff2");font-weight:200 900;font-style:italic;font-display:swap}

:root{
  --paper:#F4F5F2;--paper-2:#E8EBE7;--ink:#11212C;--ink-2:#41525D;--line:#C3CBC9;
  --struct:#9A4A1E;--therm:#D0A825;--therm-ink:#7A5F00;--acou:#1B6F3E;
  --accent:var(--ink);--accent-g:var(--ink);
  --ui:"Archivo","Arial Narrow",Arial,sans-serif;--serif:"Source Serif 4",Georgia,"Times New Roman",serif;
  --maxw:72rem;--gut:clamp(1rem,4vw,2.5rem);--head-h:4.25rem
}
.theme-struct{--accent:var(--struct);--accent-g:var(--struct)}
.theme-therm{--accent:var(--therm-ink);--accent-g:var(--therm)}
.theme-acou{--accent:var(--acou);--accent-g:var(--acou)}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--head-h) + 1rem)}
body{margin:0;background:var(--paper);color:var(--ink);font:400 1.125rem/1.65 var(--serif);text-rendering:optimizeLegibility}
img,svg{max-width:100%;height:auto;display:block}
a{color:var(--accent);text-underline-offset:.18em;text-decoration-thickness:.08em}
a:hover{text-decoration-thickness:.16em}
:focus-visible{outline:3px solid var(--accent-g);outline-offset:3px;border-radius:2px}
.skip{position:absolute;left:-999px;top:0;background:var(--ink);color:var(--paper);padding:.6rem 1rem;z-index:100;font-family:var(--ui)}
.skip:focus{left:0}
p{margin:0 0 1.1em}
h1,h2,h3{font-family:var(--ui);color:var(--ink);margin:0;text-wrap:balance}
h1{font-size:clamp(2.1rem,5.2vw,3.7rem);font-weight:760;font-stretch:78%;line-height:1.03;letter-spacing:-.012em}
h2{font-size:clamp(1.6rem,3.2vw,2.15rem);font-weight:720;font-stretch:80%;line-height:1.1;margin:0 0 1rem}
h3{font-size:1.2rem;font-weight:650;font-stretch:88%;line-height:1.25;margin:0 0 .4rem}
.wrap{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 var(--gut)}
.prose{max-width:40rem}
.sec{padding:clamp(2.5rem,6vw,4.5rem) 0}
.sec+.sec{border-top:1px solid var(--line)}
.sec.alt{background:var(--paper-2);border-top:0}
.sec.alt+.sec{border-top:0}
.sec.dark{background:var(--ink);color:var(--paper);border-top:0}
.sec.dark h2,.sec.dark h3{color:var(--paper)}
.sec.dark a{color:#fff}

/* header */
.site-header{position:sticky;top:0;z-index:50;background:var(--paper);border-bottom:1px solid var(--line)}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;height:var(--head-h);gap:1rem}
.wm{font-family:var(--ui);font-stretch:80%;font-weight:800;font-size:1.65rem;letter-spacing:-.01em;text-decoration:none;color:var(--ink);display:inline-flex;align-items:baseline;gap:.35rem;line-height:1}
.wm-mark{display:inline-flex}.wm-st{color:var(--struct)}.wm-en{color:var(--therm-ink)}
.wm-sub{font-weight:500;font-stretch:90%;font-size:.95rem;color:var(--ink-2);margin-left:.1rem}
.nav-toggle{display:none;font:600 .95rem var(--ui);background:none;border:1px solid var(--ink);color:var(--ink);padding:.45rem .8rem;border-radius:2px;cursor:pointer}
#site-nav ul{list-style:none;margin:0;padding:0;display:flex;gap:clamp(.7rem,1.6vw,1.4rem);align-items:center}
#site-nav a{font:500 .98rem var(--ui);font-stretch:92%;color:var(--ink);text-decoration:none;padding:.35rem 0;border-bottom:2px solid transparent}
#site-nav a:hover{border-bottom-color:var(--line)}
#site-nav a[aria-current="page"]{border-bottom-color:var(--ink);font-weight:650}
#site-nav li.nav-cta a{background:var(--ink);color:var(--paper);padding:.5rem .9rem;border-radius:2px;border:0}
@media (max-width:62rem){
  .nav-toggle{display:inline-block}
  #site-nav{display:none;position:absolute;left:0;right:0;top:var(--head-h);background:var(--paper);border-bottom:1px solid var(--line);padding:1rem var(--gut) 1.5rem}
  #site-nav.is-open{display:block}
  #site-nav ul{flex-direction:column;align-items:stretch;gap:0}
  #site-nav a{display:block;padding:.85rem 0;font-size:1.1rem;border-bottom:1px solid var(--line)}
  #site-nav li.nav-cta a{margin-top:1rem;text-align:center;border-bottom:0}
}

/* hero */
.hero{padding:clamp(2rem,5vw,4rem) 0 clamp(2.5rem,5vw,4rem)}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:clamp(1.5rem,4vw,3.5rem);align-items:center}
.hero h1{margin-bottom:1.1rem}
.hero .sub{font-size:1.25rem;color:var(--ink-2);max-width:34rem;margin-bottom:1.6rem}
.hero-art{width:100%;max-height:34rem}
.legend{list-style:none;margin:1.1rem 0 0;padding:0;display:grid;gap:.45rem;font:500 .92rem/1.35 var(--ui)}
.legend li{display:flex;gap:.6rem;align-items:baseline}
.legend i{flex:none;width:1.6rem;height:0;border-top:4px solid var(--c);transform:translateY(-.2em)}
.legend .l-s{--c:var(--struct)}.legend .l-t{--c:var(--therm)}.legend .l-a{--c:var(--acou)}
@media (max-width:52rem){.hero-grid{grid-template-columns:1fr}.hero-art{max-height:26rem}}
.cta-row{display:flex;flex-wrap:wrap;gap:.75rem}
.btn{display:inline-flex;flex-direction:column;align-items:flex-start;justify-content:center;font:650 1rem/1.2 var(--ui);font-stretch:92%;padding:.75rem 1.15rem;border-radius:2px;text-decoration:none;background:var(--ink);color:var(--paper);border:2px solid var(--ink);min-height:3rem}
.btn small{font:500 .8rem var(--ui);opacity:.82}
.btn:hover{background:#1d3544;border-color:#1d3544}
.btn.outline{background:transparent;color:var(--ink)}
.btn.outline:hover{background:var(--paper-2)}
.btn.s{border-color:var(--struct);background:var(--struct)}.btn.s:hover{background:#7c3a17;border-color:#7c3a17}
.btn.t{border-color:var(--therm-ink);background:var(--therm-ink)}.btn.t:hover{background:#5e4a00;border-color:#5e4a00}

/* animazione unica: i tre strati compaiono in sequenza */
.hero-art .ov{opacity:0;animation:ovin .9s ease-out forwards}
.hero-art .ov1{animation-delay:.35s}.hero-art .ov2{animation-delay:1.25s}.hero-art .ov3{animation-delay:2.15s}
@keyframes ovin{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.hero-art .ov{opacity:1;animation:none}}

/* svg utility */
.art{fill:none;stroke-linecap:butt;stroke-linejoin:miter}
.art .s-ink{stroke:var(--ink)}.art .s-struct{stroke:var(--struct)}.art .s-therm{stroke:var(--therm)}.art .s-acou{stroke:var(--acou)}.art .s-line{stroke:#9aa7a6}
.art .f-paper{fill:var(--paper)}.art .f-paper2{fill:var(--paper-2)}.art .f-struct{fill:var(--struct);stroke:none}.art .f-therm{fill:var(--therm);stroke:none}.art .f-acou{fill:var(--acou);stroke:none}
.art .f-therm-soft{fill:rgba(208,168,37,.25)}
.art .w1{stroke-width:1}.art .w15{stroke-width:1.5}.art .w2{stroke-width:2}.art .w25{stroke-width:2.5}.art .w3{stroke-width:3}.art .w6{stroke-width:6}
.art .round{stroke-linecap:round;stroke-linejoin:round}
.art .dash{stroke-dasharray:7 6}.art .dash2{stroke-dasharray:10 7}.art .faint{opacity:.5}
.art .t-lbl{font:600 14px var(--ui);fill:var(--ink);stroke:none}.art .t-sm{font:500 12px var(--ui);fill:var(--ink-2);stroke:none}
.diagram{width:100%;max-width:34rem;margin:1.5rem 0 .5rem}
figure{margin:0}
figcaption{font:500 .9rem/1.4 var(--ui);color:var(--ink-2);max-width:34rem}

/* interior head */
.page-head{border-top:6px solid var(--accent-g);padding:clamp(1.5rem,4vw,2.75rem) 0 clamp(1.5rem,4vw,2.5rem)}
.crumbs{font:500 .88rem var(--ui);color:var(--ink-2);margin:0 0 1.2rem}
.crumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.2rem .5rem}
.crumbs li+li::before{content:"/";margin-right:.5rem;color:var(--line)}
.crumbs a{color:var(--ink-2)}
.page-head h1{max-width:19ch}
.ph-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:clamp(1.5rem,4vw,3rem);align-items:center}
.ph-art .topic-art{width:100%;height:auto;max-height:20rem}
.art-note{font:500 .75rem var(--ui);color:var(--ink-2);text-align:center;margin:.3rem 0 0}
@media (max-width:52rem){.ph-grid{grid-template-columns:1fr}.ph-art{max-width:22rem}}
.meta-line{font:500 .9rem var(--ui);color:var(--ink-2);margin-top:1rem}
.answer{background:var(--paper-2);padding:1.25rem 1.4rem;margin-top:1.6rem;max-width:44rem;font-size:1.2rem;line-height:1.55;border-left:0}
.answer p:last-child{margin:0}

/* tabelle */
.tablewrap{overflow-x:auto;margin:1rem 0 0;-webkit-overflow-scrolling:touch}
table{border-collapse:collapse;width:100%;min-width:34rem;font-size:1rem;line-height:1.45}
caption{text-align:left;font:500 .9rem var(--ui);color:var(--ink-2);padding:0 0 .6rem}
th,td{text-align:left;vertical-align:top;padding:.75rem .9rem .75rem 0;border-bottom:1px solid var(--line)}
th{font:650 .92rem var(--ui);font-stretch:92%;border-bottom:2px solid var(--ink);white-space:nowrap}
td:first-child,th:first-child{font-family:var(--ui);font-weight:600;font-stretch:92%}

/* colonne e passi */
.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(15.5rem,1fr));gap:1.75rem 2rem;margin-top:1.4rem}
.cols>div{border-top:3px solid var(--accent-g);padding-top:.9rem}
.cols p{margin:0;font-size:1.04rem;line-height:1.55}
.steps{list-style:none;counter-reset:s;margin:1.4rem 0 0;padding:0;display:grid;gap:1.2rem;max-width:42rem}
.steps li{counter-increment:s;display:grid;grid-template-columns:2.6rem 1fr;gap:.9rem}
.steps li::before{content:counter(s);font:760 1.5rem/1 var(--ui);font-stretch:80%;color:var(--paper);background:var(--accent-g);width:2.4rem;height:2.4rem;display:grid;place-items:center}
.steps p{margin:0;font-size:1.04rem;line-height:1.55}
.theme-therm .steps li::before{color:var(--ink)}
.check{list-style:none;margin:1rem 0 0;padding:0;display:grid;gap:.55rem;max-width:40rem}
.check li{padding-left:1.6rem;position:relative;font-size:1.06rem;line-height:1.5}
.check li::before{content:"";position:absolute;left:0;top:.62em;width:.9rem;height:.5rem;border-left:3px solid var(--accent-g);border-bottom:3px solid var(--accent-g);transform:rotate(-45deg) translateY(-.2em)}
.callout{border:2px solid var(--accent-g);padding:1.2rem 1.4rem;margin-top:1.5rem;max-width:44rem;background:var(--paper)}
.callout h3{margin-bottom:.5rem}
.callout p:last-child{margin:0}

/* card servizi */
.cards{list-style:none;margin:1.6rem 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(17rem,1fr));gap:1rem}
.card{display:flex;flex-direction:column;height:100%;padding:1.1rem 1.2rem 1.2rem;border:1px solid var(--line);border-top:5px solid var(--c);background:var(--paper);color:var(--ink);text-decoration:none}
.card:hover{border-color:var(--ink);border-top-color:var(--c)}
.card h3{font-size:1.18rem}
.card p{font-size:1rem;line-height:1.5;margin:0 0 .8rem;color:var(--ink-2)}
.card .go{margin-top:auto;font:650 .95rem var(--ui);color:var(--ink);text-decoration:underline;text-underline-offset:.2em}
.card.s{--c:var(--struct)}.card.t{--c:var(--therm)}.card.a{--c:var(--acou)}.card.n{--c:var(--ink)}

/* FAQ */
.faq{margin-top:1.4rem;max-width:44rem;border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;list-style:none;font:650 1.08rem/1.35 var(--ui);font-stretch:92%;padding:1rem 2.2rem 1rem 0;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:.2rem;top:.85rem;font:500 1.6rem/1 var(--ui);color:var(--accent)}
.faq details[open] summary::after{content:"\2212"}
.faq .ans{padding:0 0 1.1rem;font-size:1.06rem;line-height:1.6}
.faq .ans p:last-child{margin:0}

/* persone */
.people{display:grid;grid-template-columns:repeat(auto-fit,minmax(18rem,1fr));gap:1.25rem;margin-top:1.5rem}
.person{border:1px solid var(--line);border-top:6px solid var(--c);padding:1.3rem 1.4rem 1.4rem;background:var(--paper);display:flex;flex-direction:column;gap:.35rem}
.person.struct{--c:var(--struct)}.person.therm{--c:var(--therm)}
.person .role{font:500 .98rem var(--ui);color:var(--ink-2);margin:0}
.person .bio{font-size:1.02rem;line-height:1.5;margin:.5rem 0 .6rem}
.person .photo{width:8rem;height:8rem;object-fit:cover;border-radius:2px;margin-bottom:.6rem;background:var(--paper-2)}
.person .mono{width:6.5rem;height:6.5rem;display:grid;place-items:center;background:var(--c);color:var(--paper);font:800 2.4rem var(--ui);font-stretch:80%;margin-bottom:.6rem}
.person.therm .mono{color:var(--ink)}
.contact-list{list-style:none;margin:.2rem 0 0;padding:0;display:grid;gap:.25rem;font:500 1rem/1.4 var(--ui)}
.contact-list a{color:var(--ink)}
.contact-list .k{display:inline-block;min-width:3.6rem;color:var(--ink-2);font-weight:500}
.id-list{margin:.4rem 0 0;font:500 .86rem/1.5 var(--ui);color:var(--ink-2)}

/* footer: cartiglio */
.site-footer{background:var(--ink);color:#DDE3E1;padding:clamp(2rem,5vw,3.25rem) 0 5.5rem;font-family:var(--ui);font-size:.95rem;line-height:1.5}
.site-footer a{color:#fff}
.brand{display:inline-flex;align-items:center;line-height:0}.brand-logo{height:3.1rem;width:auto}.foot-logo{height:4.6rem;width:auto}
.titleblock{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));border:1px solid #4a5d69;margin-top:1.6rem}
.titleblock>div{padding:1rem 1.1rem;border-right:1px solid #4a5d69;border-bottom:1px solid #4a5d69;margin:0 -1px -1px 0}
.titleblock h2{font:600 .8rem var(--ui);color:#9fb0ae;margin:0 0 .35rem;font-stretch:100%;letter-spacing:.01em}
.titleblock p{margin:0 0 .15rem}
.foot-nav{display:grid;grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));gap:1.5rem;margin-top:1.8rem}
.foot-nav h2{font:600 .8rem var(--ui);color:#9fb0ae;margin:0 0 .5rem}
.foot-nav ul{list-style:none;margin:0;padding:0;display:grid;gap:.3rem}
.foot-nav a{text-decoration:none}.foot-nav a:hover{text-decoration:underline}
.foot-legal{margin-top:1.8rem;color:#9fb0ae;font-size:.85rem}
.foot-legal a{color:#cfd8d6}

/* barra chiamata su mobile */
.callbar{display:none}
@media (max-width:48rem){
  .callbar{display:grid;grid-template-columns:1fr 1fr;position:fixed;left:0;right:0;bottom:0;z-index:60;border-top:1px solid #000}
  .callbar a{font:650 .95rem/1.2 var(--ui);text-align:center;text-decoration:none;color:#fff;padding:.8rem .4rem}
  .callbar a.s{background:var(--struct)}.callbar a.t{background:var(--therm-ink)}
  .callbar small{display:block;font-weight:500;font-size:.78rem;opacity:.9}
}

/* anteprima: dati mancanti */
mark.todo{background:#ffe14d;color:#000;padding:0 .25em;font:600 .85em var(--ui);border-radius:2px}
.preview-banner{background:#ffe14d;color:#000;font:600 .9rem var(--ui);text-align:center;padding:.4rem 1rem}

.related{display:flex;flex-wrap:wrap;gap:.6rem 1.2rem;margin:1rem 0 0;padding:0;list-style:none;font:600 1rem var(--ui)}
.owner-note{font:500 1rem var(--ui);color:var(--ink-2);margin:1rem 0 0}
@media print{.site-header,.callbar,.site-footer .foot-nav,.nav-toggle{display:none}body{background:#fff}}
.btn.light{background:var(--paper);color:var(--ink);border-color:var(--paper)}
.btn.light:hover{background:var(--paper-2);border-color:var(--paper-2)}
.sec.dark .prose{color:#DDE3E1}
.sec.dark a.btn.light{color:var(--ink)}
