/* Promoleader — foglio di stile condiviso (v1, ottobre 2026) */
/* Nunito (SIL Open Font License) servito dal nostro server: nessuna richiesta a Google Fonts */
@font-face{font-family:"Nunito";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/nunito-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Nunito";font-style:normal;font-weight:600;font-display:swap;src:url(fonts/nunito-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Nunito";font-style:normal;font-weight:700;font-display:swap;src:url(fonts/nunito-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"Nunito";font-style:normal;font-weight:800;font-display:swap;src:url(fonts/nunito-latin-800-normal.woff2) format("woff2")}
@font-face{font-family:"Nunito";font-style:normal;font-weight:900;font-display:swap;src:url(fonts/nunito-latin-900-normal.woff2) format("woff2")}
:root{
  /* Palette dal logo: verde #96C93E e grigio #78777C; neutri con la stessa tinta */
  --paper:#F8F9F5;
  --white:#FFFFFF;
  --ink:#2B2C30;
  --grey:#66656B;
  --grey-soft:#8E8D93;
  --line:#DDE2D4;
  --soft:#EAF3DB;
  --green:#96C93E;
  --green-deep:#5E8F1E;
  --green-ink:#476F14;
  --wrap:1120px;
  --measure:66ch;
  --radius:16px;
  --font:"Nunito",ui-rounded,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--font);font-size:17px;line-height:1.6;
}
body::before{
  content:"";position:fixed;left:0;top:0;bottom:0;width:8px;background:var(--green);z-index:50;
}
img,svg{max-width:100%;height:auto;display:block}
a{color:var(--green-ink);text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{color:var(--green-deep)}
:focus-visible{outline:3px solid var(--green-deep);outline-offset:3px;border-radius:2px}
h1,h2,h3,h4{font-weight:800;line-height:1.1;letter-spacing:-0.012em;margin:0 0 .5em;text-wrap:balance}
h1{font-size:clamp(2.1rem,4.6vw,3.6rem);max-width:18ch}
h2{font-size:clamp(1.55rem,3vw,2.25rem);max-width:24ch}
h3{font-size:1.25rem;letter-spacing:0;margin-bottom:.35em}
p,li{max-width:var(--measure)}
p{margin:0 0 1em}
ul,ol{padding-left:1.2em}
strong{font-weight:600}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 28px 0 36px}
.muted{color:var(--grey)}
.small{font-size:.92rem}
.lead{font-size:1.2rem;line-height:1.5;color:var(--grey);max-width:58ch}

/* Testata */
.top{padding:16px 0 14px;border-bottom:1px solid var(--line);background:var(--paper)}
.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
.logo{display:inline-flex;align-items:center;text-decoration:none}
.logo img{height:70px;width:auto;display:block}
.nav{display:flex;align-items:center;gap:4px 22px;flex-wrap:wrap}
.nav a{text-decoration:none;color:var(--ink);font-weight:500;padding:6px 0}
.nav a[aria-current="page"]{color:var(--green-ink);box-shadow:inset 0 -2px 0 var(--green)}
.nav .btn{margin-left:6px}
.nav-mobile{display:none}
.btn{display:inline-block;background:var(--green);color:var(--ink);font-weight:800;text-decoration:none;padding:12px 22px;border-radius:999px;border:2px solid var(--green);line-height:1.2}
.btn:hover{background:var(--green-deep);border-color:var(--green-deep);color:#fff}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--ink)}
.btn-ghost:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.btn-row{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin:1.4em 0 0}

/* Sezioni */
main{display:block}
.section{padding:64px 0}
.section + .section{border-top:1px solid var(--line)}
.section-tight{padding:40px 0}
.hero{padding:72px 0 56px}
.hero .lead{margin-top:1em}
.hero .place{margin-top:1.6em;color:var(--grey);font-size:.98rem}
.kicker{font-size:.95rem;color:var(--green-ink);font-weight:600;margin:0 0 .6em}
.two{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:48px;align-items:start}
.cols-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px 32px}
.cols-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:36px 32px}
.cols-3 h3 a,.cols-2 h3 a{text-decoration:none;color:var(--ink)}
.cols-3 h3 a:hover,.cols-2 h3 a:hover{color:var(--green-deep)}
.cols-3 p,.cols-2 p{color:var(--grey)}

/* Frasi dei titolari: il blocco con la riga verde a sinistra, lo stesso delle card social */
.voices{list-style:none;padding:0;margin:1.2em 0 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.voices li{margin:0;max-width:none}
.voices a{display:block;text-decoration:none;color:var(--ink);background:var(--white);border-left:8px solid var(--green);padding:18px 22px;font-size:1.12rem;line-height:1.4;font-weight:700;border-radius:var(--radius)}
.voices a:hover{background:var(--soft);color:var(--green-ink)}
.voices small{display:block;margin-top:8px;font-weight:400;color:var(--grey);font-size:.9rem}

/* Blocco definizione / risposta secca */
.answer{background:var(--white);border-left:8px solid var(--green);padding:22px 26px;margin:1.2em 0 1.8em;border-radius:var(--radius);max-width:72ch}
.answer p{font-size:1.18rem;line-height:1.45;margin:0;max-width:none;font-weight:600}
.answer p + p{margin-top:.6em}

/* Passi (sequenza vera) */
.steps{list-style:none;padding:0;margin:1.4em 0 0;counter-reset:passo;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.steps li{counter-increment:passo;max-width:none;padding-top:14px;border-top:4px solid var(--green)}
.steps li::before{content:counter(passo);display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:var(--green);color:var(--ink);font-weight:900;font-size:1.2rem;line-height:1;margin-bottom:10px}
.steps h3{margin:0 0 .3em}
.steps p{color:var(--grey);margin:0}

/* Ambiti */
.fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;margin-top:1.4em}
.field{background:var(--white);padding:26px 26px 22px;border-radius:var(--radius);border:1px solid var(--line)}
.field h3{margin-bottom:.4em}
.field p{color:var(--grey);margin-bottom:.8em}
.field a{font-weight:700}

/* Evidenza Innosuisse */
.notice{background:var(--green-ink);color:#fff;padding:34px 36px;border-radius:var(--radius);margin-top:2em;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:center}
.notice h2,.notice p{color:#fff;margin:0}
.notice h2{font-size:clamp(1.35rem,2.4vw,1.8rem);max-width:30ch}
.notice p{color:#E3F0CF;margin-top:.5em}
.notice .btn{background:var(--green);color:var(--ink);border-color:var(--green)}
.notice .btn:hover{background:#fff;border-color:#fff;color:var(--green-ink)}

/* Elenchi di pagine (hub) */
.index{list-style:none;padding:0;margin:1.4em 0 0}
.index li{max-width:none;padding:18px 0;border-top:1px solid var(--line)}
.index li:last-child{border-bottom:1px solid var(--line)}
.index a{font-size:1.15rem;font-weight:800;text-decoration:none}
.index a:hover{text-decoration:underline}
.index p{margin:.3em 0 0;color:var(--grey)}
.terms{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;list-style:none;padding:0;margin:1.4em 0 0}
.terms li{max-width:none}
.terms a{display:block;background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;text-decoration:none;color:var(--ink)}
.terms a:hover{border-color:var(--green);background:var(--soft)}
.terms strong{display:block;font-size:1.08rem;margin-bottom:4px;font-weight:800}
.terms span{color:var(--grey);font-size:.95rem}

/* FAQ */
.faq{margin-top:1.2em;max-width:72ch}
.faq details{border-top:1px solid var(--line);padding:4px 0}
.faq details:last-child{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;font-weight:700;font-size:1.08rem;padding:14px 0;list-style:none;display:flex;justify-content:space-between;gap:16px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--green-deep);font-weight:700;font-size:1.3rem;line-height:1;flex:none}
.faq details[open] summary::after{content:"–"}
.faq details p{color:var(--grey);margin:0 0 16px}

/* Pagina articolo (domande, dizionario, progetti) */
.article{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:56px;align-items:start}
.article .body h2{font-size:1.5rem;margin-top:1.6em;max-width:38ch}
.article .body h3{margin-top:1.3em}
.aside{position:sticky;top:24px}
.aside .box{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:22px 24px}
.aside .box + .box{margin-top:16px}
.aside h3{font-size:1.05rem;margin-bottom:.5em}
.aside ul{list-style:none;padding:0;margin:0}
.aside li{padding:6px 0;max-width:none}
.aside .btn{width:100%;text-align:center;margin-top:10px}
.aside .tel{font-size:1.3rem;font-weight:800;text-decoration:none;display:block;margin:6px 0 2px}
.crumbs{font-size:.92rem;color:var(--grey);margin:0 0 1.2em;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:6px}
.crumbs li{max-width:none}
.crumbs li + li::before{content:"/";margin-right:6px;color:var(--grey-soft)}
.crumbs a{color:var(--grey)}
.byline{color:var(--grey);font-size:.95rem;margin:1.2em 0 0}
.byline time{white-space:nowrap}
.related{margin-top:2.4em;padding-top:1.4em;border-top:1px solid var(--line)}
.related h2{font-size:1.25rem}
.related ul{list-style:none;padding:0}
.related li{padding:5px 0}
.facts{list-style:none;padding:0;margin:1em 0 0}
.facts li{display:grid;grid-template-columns:150px minmax(0,1fr);gap:10px;padding:10px 0;border-top:1px solid var(--line);max-width:none}
.facts li:last-child{border-bottom:1px solid var(--line)}
.facts span:first-child{color:var(--grey)}
.example{background:var(--soft);padding:18px 22px;border-radius:var(--radius);margin:1em 0 1.4em;max-width:72ch}
.example p{margin:0}
.example p + p{margin-top:.6em}

/* Ritratto (chi siamo) */
.portrait{display:grid;grid-template-columns:200px minmax(0,1fr);gap:28px;align-items:center;margin:1.4em 0 1.8em}
.portrait img{width:200px;height:200px;border-radius:50%;object-fit:cover;border:8px solid var(--soft);background:var(--soft)}
.portrait p{margin:0}
.portrait .name{font-size:1.35rem;font-weight:800;margin-bottom:.2em}

/* Chiamata finale */
.cta{background:var(--white);border-top:1px solid var(--line)}
.cta .wrap{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:28px;align-items:center}
.cta h2{margin:0}
.cta p{margin:.4em 0 0;color:var(--grey)}
.cta .tel{font-size:1.35rem;font-weight:800;text-decoration:none;display:block;margin-top:8px}

/* Modulo di prenotazione */
.booking{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;margin-top:1.4em}
.booking iframe{width:100%;height:780px;border:0;display:block}
.booking .gate{padding:28px 24px;display:grid;gap:12px;justify-items:start}
.booking .gate p{margin:0;max-width:40ch}
.booking.is-open{border-color:var(--green)}
/* Chat: pulsanti nel testo e lanciatore fisso */
button.btn{font:inherit;font-weight:800;cursor:pointer}
.launcher{position:fixed;right:18px;bottom:18px;z-index:60;display:inline-flex;align-items:center;gap:10px;background:var(--ink);color:#fff;border:0;border-radius:999px;padding:12px 18px 12px 14px;font:inherit;font-weight:800;font-size:1rem;cursor:pointer;box-shadow:0 8px 24px rgba(43,44,48,.22)}
.launcher svg{width:22px;height:22px;flex:none}
.launcher:hover{background:var(--green-ink)}
.launcher:focus-visible{outline:3px solid var(--green);outline-offset:3px}
.chat-row{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
[data-chat-hint]:not([hidden]){display:block;margin-top:8px;color:var(--green-ink);font-size:.92rem}
/* Informative iubenda incorporate nella pagina */
.iub-wrap{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:8px 28px 24px}
.iub-wrap .iub_content,.iub-wrap .iub_container{max-width:none}
.iub-wrap h1,.iub-wrap h2,.iub-wrap h3,.iub-wrap h4{max-width:none}
.iub-wrap .iub_footer{display:none}

/* Piè di pagina */
footer{border-top:1px solid var(--line);padding:44px 0 56px;color:var(--grey);font-size:.95rem;margin-top:0}
footer .wrap{display:grid;grid-template-columns:minmax(0,1.2fr) repeat(2,minmax(0,.8fr));gap:32px}
footer h4{margin:0 0 .5em;color:var(--ink);font-size:1rem;font-weight:800}
footer ul+h4{margin-top:1.2em}
footer .logo img{height:60px}
footer ul{list-style:none;padding:0;margin:0}
footer li{padding:4px 0;max-width:none}
footer a{color:var(--grey)}
footer a:hover{color:var(--green-ink)}
footer .legal{margin-top:10px;line-height:1.55}
footer .legal span{display:block}

/* Stato: 404 */
.status{padding:96px 0}

@media (max-width:960px){
  .two,.cols-3,.cols-2,.fields,.steps,.terms{grid-template-columns:repeat(2,minmax(0,1fr))}
  .article{grid-template-columns:1fr}
  .aside{position:static}
  .notice,.cta .wrap{grid-template-columns:1fr}
  footer .wrap{grid-template-columns:1fr 1fr}
}
@media (max-width:700px){
  body{font-size:16px}
  body::before{width:100%;height:6px;bottom:auto}
  .wrap{padding:0 18px}
  .section{padding:44px 0}
  .hero{padding:48px 0 40px}
  .two,.cols-3,.cols-2,.fields,.steps,.terms,.voices{grid-template-columns:1fr}
  .nav{display:none}
  .nav-mobile{display:block;width:100%}
  .nav-mobile summary{cursor:pointer;font-weight:600;list-style:none;padding:8px 0}
  .nav-mobile summary::-webkit-details-marker{display:none}
  .nav-mobile summary::after{content:" +";color:var(--green-deep)}
  .nav-mobile[open] summary::after{content:" –"}
  .nav-mobile ul{list-style:none;padding:0;margin:6px 0 0;border-top:1px solid var(--line)}
  .nav-mobile li{border-bottom:1px solid var(--line);max-width:none}
  .nav-mobile a{display:block;padding:12px 0;text-decoration:none;color:var(--ink);font-weight:500}
  .facts li{grid-template-columns:1fr}
  .portrait{grid-template-columns:1fr;justify-items:start}
  .logo img{height:54px}
  footer .wrap{grid-template-columns:1fr}
  .booking iframe{height:720px}
  .answer p{font-size:1.08rem}
  .launcher{right:12px;bottom:12px;padding:12px 14px}
  .launcher span{display:none}
  .iub-wrap{padding:4px 16px 18px}
}
