/* ==========================================================================
   Kìron Torino Via Serao — v5 (stile "floating pill / calm")
   Palette: bianco · nero · blu Kìron #0B1F4F
   ========================================================================== */
:root{
  /* Palette ufficiale Kìron */
  --brand-blue:#082971;
  --dark-blue:#151c2c;
  --wale-dark:#49597a;
  --wale-mid:#8392af;
  --wale-light:#c3ccde;
  --sage-dark:#738a8b;
  --sage-mid:#98b0b1;
  --sage-light:#c9d7d8;
  --yellow:#f8b842;
  --pink-dark:#c0b3a3;
  --pink-mid:#e2d7c9;
  --pink-light:#f0ece1;
  --white:#fff;
  --black:#000;
  --max-width:1600px;
  --plyr-video-control-background-hover:#082971;
  --swiper-theme-color:#082971;

  /* Alias interni del tema */
  --navy:#082971;
  --navy-hover:#061e55;
  --ink:#EEF2F9;      /* fondo pagina */
  --paper:#EEF2F9;    /* sezioni chiare */
  --cream:#ffffff;
  --muted:#c3ccde;
  --muted-hover:#8392af;
  --ease-burger:cubic-bezier(.77,0,.175,1);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body.kiron{margin:0;overflow-x:clip;background:var(--ink);color:var(--dark-blue);font-family:'Libre Franklin',system-ui,sans-serif;font-optical-sizing:auto;font-style:normal;min-height:100%;font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
a{color:inherit;text-decoration:none}
img,svg,video{display:block;max-width:100%;height:auto}
ul,ol{list-style:none;margin:0;padding:0}
h1,h2,h3,p,address{margin:0;font-style:normal}
button{font:inherit;cursor:pointer}
:focus-visible{outline:2px solid var(--navy);outline-offset:3px;border-radius:6px}
.serif{font-family:'Instrument Serif',Georgia,serif;font-style:italic}

/* ---------- navbar a pillola ---------- */
.pill-nav{position:absolute;top:24px;left:50%;transform:translateX(-50%);z-index:50;display:flex;flex-direction:column;align-items:center;gap:10px}
.pill{display:flex;align-items:center;gap:18px;background:#fff;border-radius:999px;box-shadow:0 10px 30px rgba(0,0,0,.15);padding:8px 10px 8px 18px}
.brand img{height:32px;width:auto}
.burger{width:40px;height:40px;border:0;border-radius:999px;background:transparent;display:grid;place-items:center;position:relative}
.burger span{position:absolute;width:20px;height:2px;background:#000;border-radius:2px;transition:transform .3s var(--ease-burger),opacity .3s}
.burger span:first-child{transform:translateY(-4px)}
.burger span:last-child{transform:translateY(4px)}
.is-open .burger span:first-child{transform:rotate(45deg)}
.is-open .burger span:last-child{transform:rotate(-45deg)}
.pill-menu{background:#fff;border-radius:18px;box-shadow:0 10px 30px rgba(0,0,0,.15);padding:10px;min-width:220px;opacity:0;transform:translateY(-8px) scale(.96);pointer-events:none;transition:opacity .25s ease,transform .25s var(--ease-burger)}
.is-open .pill-menu{opacity:1;transform:none;pointer-events:auto}
.nav-links a{display:block;padding:10px 14px;border-radius:12px;font-size:1rem;font-weight:500;color:#000}
.nav-links a:hover{background:#f1f1f1}

/* ---------- hero ---------- */
.hero{position:relative;height:100vh;overflow:hidden;margin-bottom:-25px;display:flex;flex-direction:column;justify-content:flex-end;padding:0 24px 64px}
@supports(height:100svh){.hero{height:100svh}}
@media(min-width:768px){.hero{padding-bottom:90px}}
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-overlay{position:absolute;inset:0;background:rgba(0,0,0,.2)}
.hero-content{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;text-align:center;gap:20px}
.hero-title{color:#fff;font-weight:400;letter-spacing:-.02em;line-height:1.1;font-size:clamp(2.75rem,8.5vw,96px);text-shadow:0 2px 24px rgba(0,0,0,.25)}
.hero-title .serif{font-size:1.04em}
.hero-sub{color:rgba(255,255,255,.85);font-weight:500;font-size:1rem;max-width:460px;text-shadow:0 1px 12px rgba(0,0,0,.3)}
@media(min-width:768px){.hero-sub{font-size:1.125rem}}
.cta-bar{display:flex;align-items:center;gap:16px;background:rgba(0,0,0,.25);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-radius:14px;padding:5px 5px 5px 22px;max-width:100%}
.cta-text{color:#fff;font-size:.9375rem;font-weight:500;white-space:nowrap}
.cta-desktop{display:none}
@media(min-width:640px){.cta-desktop{display:inline}.cta-mobile{display:none}}
.btn-white{background:#fff;color:#000;font-size:.9375rem;font-weight:500;padding:12px 20px;border-radius:12px;white-space:nowrap;transition:background .3s}
.btn-white:hover{background:rgba(255,255,255,.9)}

/* ---------- chi siamo ---------- */
.about{position:relative;z-index:10;background:var(--paper);border-radius:25px 25px 0 0;padding:80px 24px}
@media(min-width:768px){.about{padding:128px 24px}}
.about-top{max-width:48rem;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:32px;text-align:center}
.about-lead{max-width:34rem;font-size:1.0625rem;line-height:1.65}
@media(min-width:768px){.about-lead{font-size:1.1875rem}}
.about-btns{display:flex;flex-wrap:wrap;justify-content:center;gap:16px}
.about-btns.left{justify-content:flex-start}
.pill-btn{display:inline-flex;align-items:center;gap:12px;border-radius:999px;padding:6px 22px 6px 6px;font-size:.8125rem;font-weight:500;text-transform:uppercase;letter-spacing:.08em;border:0;transition:background .3s}
.pill-ico{width:34px;height:34px;border-radius:999px;background:#fff;color:var(--navy);display:grid;place-items:center}
.pill-dark{background:var(--navy);color:var(--cream)}
.pill-dark:hover{background:var(--navy-hover)}
.pill-muted{background:var(--muted);color:var(--navy)}
.pill-muted:hover{background:var(--muted-hover)}
.divider{display:flex;align-items:center;gap:2px;margin:72px 0}
.divider i{width:8px;height:8px;border-radius:999px;background:var(--muted)}
.divider span{flex:1;height:2px;background:var(--muted)}
.about-bottom{max-width:72rem;margin:0 auto;display:flex;flex-direction:column;gap:40px}
@media(min-width:768px){.about-bottom{flex-direction:row;align-items:flex-start;gap:80px}}
.about-mark{display:flex;align-items:center;gap:14px;flex:none}
.mark-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.2em;font-weight:600;line-height:1.35}
.about-big{font-size:clamp(1.5rem,3.4vw,42px);line-height:1.3;font-weight:400}
.about-stats{max-width:72rem;margin:72px auto 0;display:grid;gap:24px}
@media(min-width:640px){.about-stats{grid-template-columns:repeat(3,1fr)}}
.stat{display:flex;flex-direction:column;gap:6px;padding:24px;border-radius:20px;background:#fff}
.stat b{font-weight:400;font-size:clamp(2.75rem,5vw,4rem);line-height:1;letter-spacing:-.03em}
.stat sup{font-size:.45em;vertical-align:super;opacity:.6}
.stat span{font-size:.9375rem;font-weight:500;opacity:.8}

/* ---------- percorso: sticky + card ---------- */
.features{position:relative;padding:80px 20px;color:#fff;isolation:isolate}
@media(min-width:768px){.features{padding:160px 40px}}
@media(min-width:1024px){.features{padding:190px 64px}}
.features-bg{position:fixed;inset:0;z-index:-1;background-size:cover;background-position:center;background-color:var(--navy)}
.features-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,41,113,.35),rgba(8,41,113,.55))}
.features-grid{display:grid;gap:40px;max-width:1400px;margin:0 auto}
@media(min-width:1024px){.features-grid{grid-template-columns:400px 1fr;gap:96px}}
@media(min-width:1280px){.features-grid{grid-template-columns:460px 1fr;gap:192px}}
.features-left{display:flex;flex-direction:column;gap:40px}
@media(min-width:1024px){.features-left{position:sticky;top:0;height:100vh;justify-content:space-between;padding:128px 0}}
.features-title{font-weight:400;line-height:1.2;font-size:clamp(1.625rem,3.2vw,46px);text-shadow:0 2px 16px rgba(0,0,0,.25)}
.feature-nav{display:none;flex-direction:column;gap:8px;margin-top:40px}
@media(min-width:1024px){.feature-nav{display:flex}}
.feature-nav button{text-align:left;border:0;border-radius:14px;padding:12px 16px;background:rgba(0,0,0,.2);backdrop-filter:blur(6px);color:rgba(255,255,255,.45);font-size:1rem;font-weight:500;transition:color .3s}
.feature-nav button.is-active{color:#fff}
.features-cta{display:none;flex-direction:column;align-items:flex-start;gap:14px}
@media(min-width:1024px){.features-cta{display:flex}}
.features-cta p{font-size:1rem;font-weight:500;max-width:24rem;text-shadow:0 1px 10px rgba(0,0,0,.3)}
.features-right{display:flex;flex-direction:column;gap:40px}
.fcard{background:rgba(0,0,0,.2);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border-radius:28px;padding:24px;display:flex;flex-direction:column;gap:20px;opacity:0;transform:translateX(4rem);transition:opacity .7s ease-out,transform .7s ease-out}
@media(min-width:768px){.fcard{padding:40px}}
.fcard.is-visible{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.fcard{opacity:1;transform:none;transition:none}}
.fcard h3{font-size:1.25rem;font-weight:500;display:flex;gap:12px;align-items:baseline}
@media(min-width:768px){.fcard h3{font-size:1.5rem}}
.fnum{font-size:.8125rem;letter-spacing:.15em;opacity:.6}
.fmedia{aspect-ratio:16/9;border-radius:18px;overflow:hidden;background:rgba(0,0,0,.3)}
.fmedia video{width:100%;height:100%;object-fit:cover}
.fcard p{color:rgba(255,255,255,.7);font-weight:500;font-size:1rem;line-height:1.65}
@media(min-width:768px){.fcard p{font-size:1.0625rem}}

/* ---------- servizi ---------- */
.services{position:relative;z-index:10;background:var(--paper);border-radius:25px 25px 0 0;padding:80px 24px}
@media(min-width:768px){.services{padding:128px 24px}}
.services-lead{max-width:34rem;margin:0 auto 48px;text-align:center;font-size:1.0625rem;line-height:1.65}
.services-grid{max-width:72rem;margin:0 auto;display:grid;gap:16px}
@media(min-width:640px){.services-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1024px){.services-grid{grid-template-columns:repeat(3,1fr)}}
.scard{background:#fff;border-radius:24px;padding:28px;display:flex;flex-direction:column;transition:transform .3s,box-shadow .3s}
.scard:hover{transform:translateY(-3px);box-shadow:0 16px 40px rgba(8,41,113,.1)}
.scard .q{font-size:.9375rem;opacity:.6;margin-bottom:14px}
.scard h3{font-size:1.25rem;font-weight:500}
.scard p{margin-top:8px;font-size:1rem;line-height:1.6;opacity:.8;flex:1}
.scard .link{margin-top:20px;display:inline-flex;align-items:center;gap:6px;font-size:.9375rem;font-weight:500}
.scard .link svg{transition:transform .3s}
.scard:hover .link svg{transform:translateX(3px)}

/* ---------- footer / contatti ---------- */
.footer{position:relative;z-index:10;background:#fff;padding:80px 24px 32px}
@media(min-width:768px){.footer{padding:128px 24px 40px}}
.footer-grid{max-width:72rem;margin:0 auto;display:grid;gap:48px}
@media(min-width:900px){.footer-grid{grid-template-columns:1fr 1fr;gap:80px}}
.footer-title{font-size:clamp(2rem,4.5vw,3.25rem);font-weight:400;line-height:1.1;letter-spacing:-.02em}
.footer-lead{margin:20px 0 28px;font-size:1.0625rem;line-height:1.65;max-width:28rem;opacity:.85}
.footer-address{margin-top:32px;font-size:1.0625rem;line-height:1.7;opacity:.85}
.footer-address a:hover{text-decoration:underline}
.form-card{background:var(--paper);border-radius:24px;padding:28px}
.kform{display:flex;flex-direction:column;gap:14px}
.kform-title{font-size:1.125rem;font-weight:500}
.kform label{display:flex;flex-direction:column;gap:6px;font-size:.8125rem;font-weight:500;text-transform:uppercase;letter-spacing:.08em;opacity:.9}
.kform input:not([type=checkbox]),.kform select{font:inherit;font-size:1.0625rem;color:var(--navy);background:#fff;border:1px solid var(--muted);border-radius:12px;padding:12px 14px;letter-spacing:0;text-transform:none}
.kform input::placeholder{color:rgba(8,41,113,.4)}
.kform .check{flex-direction:row;align-items:center;gap:10px;text-transform:none;letter-spacing:0;font-size:.9375rem;font-weight:400}
.kform .check a{text-decoration:underline}
.kform button{margin-top:6px;align-self:flex-start}
.kform-ok{font-size:1rem}
.kform-err{color:#9b1c1c;font-size:1rem;background:#fff;border-left:3px solid #9b1c1c;padding:8px 12px;border-radius:6px}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.footer .divider{max-width:72rem;margin:64px auto 32px}
.footer-legal{max-width:72rem;margin:0 auto;display:grid;gap:12px;font-size:.9375rem;line-height:1.65;opacity:.8}
.footer-legal .small{font-size:.875rem}
.footer-legal a{text-decoration:underline}

/* pagine interne */
.section-simple{background:var(--paper);min-height:70vh;padding:140px 24px 80px}
.prose{max-width:42rem;margin-top:2rem;line-height:1.7}

/* Fix: l'hero copre sempre lo sfondo fisso della sezione percorso */
.hero{z-index:1;background:var(--navy)}
.hero-video{background:var(--navy)}
/* Mobile: barra CTA senza overflow */
@media(max-width:639px){
  .cta-bar{padding:5px 5px 5px 14px;gap:10px}
  .cta-text{font-size:.875rem;white-space:normal;line-height:1.3}
  .btn-white{padding:10px 14px;font-size:.875rem}
  .hero-title{font-size:2.6rem}
}

/* Hero luminoso: niente velo scuro pieno, solo un gradiente in basso per il testo */
.hero-overlay{background:linear-gradient(180deg,rgba(0,0,0,0) 0%,rgba(0,0,0,0) 45%,rgba(21,28,44,.55) 100%)}
.hero-title{font-size:clamp(2.5rem,7.2vw,88px);text-shadow:0 2px 6px rgba(0,0,0,.35),0 8px 40px rgba(0,0,0,.35)}
.hero-sub{color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.4),0 4px 20px rgba(0,0,0,.35)}
@media(max-width:639px){.hero-title{font-size:2.35rem}}

/* Contrasto titolo sul bianco della casa: gradiente blu dal basso più deciso, titolo leggermente più compatto */
.hero-overlay{background:linear-gradient(180deg,rgba(0,0,0,0) 0%,rgba(0,0,0,0) 40%,rgba(21,28,44,.35) 70%,rgba(21,28,44,.78) 100%)}
.hero-title{font-size:clamp(2.5rem,6.4vw,80px)}
.hero{padding-bottom:56px}
@media(min-width:768px){.hero{padding-bottom:72px}}


/* ---------- SEO / a11y ---------- */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:absolute;left:-9999px;top:8px;z-index:100;background:#fff;color:var(--navy);padding:10px 16px;border-radius:8px;font-weight:500}
.skip-link:focus{left:8px}
.section-title{font-size:clamp(1.75rem,3.6vw,2.75rem);font-weight:400;line-height:1.15;letter-spacing:-.02em;text-align:center;max-width:40rem;margin:0 auto 20px}
.services .section-title{margin-bottom:16px}

/* FAQ */
.faq{position:relative;z-index:10;background:#fff;padding:80px 24px}
@media(min-width:768px){.faq{padding:112px 24px}}
.faq-inner{max-width:52rem;margin:0 auto}
.faq-list{margin-top:40px;display:flex;flex-direction:column;gap:10px}
.faq-item{background:var(--paper);border-radius:18px;padding:0 24px}
.faq-item summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 0}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item h3{font-size:1.0625rem;font-weight:500;line-height:1.4}
@media(min-width:768px){.faq-item h3{font-size:1.125rem}}
.faq-plus{flex:none;width:30px;height:30px;border-radius:999px;background:#fff;display:grid;place-items:center;font-size:1.25rem;transition:transform .3s}
.faq-item[open] .faq-plus{transform:rotate(45deg)}
.faq-item p{padding:0 0 22px;font-size:1rem;line-height:1.65;opacity:.85;max-width:44rem}

/* Dove siamo */
.where{position:relative;z-index:10;background:var(--paper);padding:80px 24px}
@media(min-width:768px){.where{padding:112px 24px}}
.where-inner{max-width:72rem;margin:0 auto;display:grid;gap:40px;align-items:center}
@media(min-width:900px){.where-inner{grid-template-columns:1fr 1fr;gap:64px}}
.where .section-title{text-align:left;margin:0 0 20px}
.where-text{font-size:1.0625rem;line-height:1.65;margin-bottom:16px;opacity:.9}
.where-text a{text-decoration:underline}
.where .pill-btn{margin-top:8px}
.where-map{aspect-ratio:4/3;border-radius:24px;overflow:hidden;background:#fff}
.where-map iframe{width:100%;height:100%;border:0}


/* =========================================================================
   v2.4 — Revisione UI/UX
   ========================================================================= */
/* Navbar: fissa, si compatta e prende vetro dopo lo scroll */
.pill-nav{position:fixed;transition:top .3s}
.pill{transition:padding .3s,box-shadow .3s,background .3s}
.pill-nav.is-scrolled{top:12px}
.pill-nav.is-scrolled .pill{padding:6px 8px 6px 14px;background:rgba(255,255,255,.85);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 8px 24px rgba(8,41,113,.12)}
.pill-nav.is-scrolled .brand img{height:28px}

/* Hero: gerarchia più netta */
.hero-content{gap:22px}
.hero-title{font-size:clamp(2.4rem,6.4vw,84px);line-height:1.02;letter-spacing:-.03em}
.hero-sub{max-width:520px;font-size:1.0625rem}
@media(min-width:768px){.hero-sub{font-size:1.1875rem}}
.hero-sub strong{font-weight:600}
.hero-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px 18px}
.btn-lg{padding:15px 22px 15px 24px;font-size:1rem;font-weight:600;border-radius:999px;display:inline-flex;align-items:center;gap:10px;box-shadow:0 12px 30px rgba(0,0,0,.18);transition:transform .25s,box-shadow .25s,background .25s}
.btn-lg:hover{transform:translateY(-2px);box-shadow:0 16px 36px rgba(0,0,0,.22)}
.btn-lg svg{transition:transform .25s}.btn-lg:hover svg{transform:translateX(3px)}
.btn-ghost{color:#fff;font-weight:500;font-size:.9375rem;padding:12px 6px;border-bottom:1px solid rgba(255,255,255,.5);transition:border-color .25s}
.btn-ghost:hover{border-color:#fff}
.trust-strip{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 22px;margin-top:6px;color:rgba(255,255,255,.9);font-size:.875rem;font-weight:500}
.trust-strip b{font-weight:600;color:#fff;margin-right:4px}
.trust-strip li{display:inline-flex;align-items:center;gap:4px;padding:6px 12px;border-radius:999px;background:rgba(21,28,44,.35);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
@media(max-width:639px){.trust-strip li:nth-child(n+3){display:none}}

/* Eyebrow: struttura leggibile a colpo d'occhio */
.eyebrow{font-size:.75rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;opacity:.6;margin-bottom:14px}
.eyebrow.center{text-align:center}
.features .eyebrow{color:#fff;opacity:.75}

/* Chi siamo: marchio reale, frase più breve con accento serif */
.about-mark img{height:36px;width:auto}
.about-big .serif{font-size:1.06em}
.reveal{opacity:0;transform:translateY(1.25rem);transition:opacity .7s ease-out,transform .7s ease-out}
.reveal.is-visible{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}

/* Processo: via il logo, numero come segno grafico; nav a timeline */
.fhead{display:flex;align-items:flex-start;gap:16px}
.fnum{font-family:'Instrument Serif',Georgia,serif;font-style:italic;font-size:2.25rem;line-height:1;opacity:.9;letter-spacing:0}
.fcard h3{font-size:1.375rem;margin-top:4px}
@media(min-width:768px){.fcard h3{font-size:1.625rem}}
.fcard{border:1px solid rgba(255,255,255,.18);transition:opacity .7s ease-out,transform .7s ease-out,border-color .3s}
.fcard:hover{border-color:rgba(255,255,255,.4)}
.feature-nav{position:relative;padding-left:22px;counter-reset:step}
.feature-nav::before{content:"";position:absolute;left:6px;top:10px;bottom:10px;width:2px;background:rgba(255,255,255,.25);border-radius:2px}
.feature-nav li{position:relative}
.feature-nav li::before{content:"";position:absolute;left:-20px;top:18px;width:10px;height:10px;border-radius:999px;background:rgba(255,255,255,.35);transition:background .3s,transform .3s}
.feature-nav li:has(.is-active)::before{background:#fff;transform:scale(1.3)}
.feature-nav button{background:transparent;backdrop-filter:none;padding:10px 12px;font-size:1.0625rem}
.feature-nav button.is-active{background:rgba(255,255,255,.12)}

/* Servizi: icona, hover, stessa altezza */
.services-grid{gap:18px}
.scard{padding:30px 28px;border:1px solid transparent;transition:transform .3s,box-shadow .3s,border-color .3s}
.scard:hover{border-color:var(--muted)}
.sicon{width:46px;height:46px;border-radius:14px;background:var(--paper);color:var(--navy);display:grid;place-items:center;margin-bottom:18px}
.scard .q{font-family:'Instrument Serif',Georgia,serif;font-style:italic;font-size:1.125rem;opacity:.75;margin-bottom:8px}

/* FAQ: hover */
.faq-item{transition:background .25s}
.faq-item:hover{background:#e2e8f4}

/* Form: card più leggibile */
.form-card{box-shadow:0 20px 50px rgba(8,41,113,.08)}
.kform-title::after{content:"Rispondiamo entro un giorno lavorativo.";display:block;font-size:.9375rem;font-weight:400;opacity:.7;margin-top:4px}

/* Barra mobile sticky con azioni di contatto */
.mobile-bar{position:fixed;left:12px;right:12px;bottom:12px;z-index:60;display:flex;gap:8px;padding:8px;background:rgba(255,255,255,.9);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-radius:18px;box-shadow:0 10px 30px rgba(8,41,113,.18)}
.mb-btn{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:12px 8px;border-radius:12px;font-size:.875rem;font-weight:600;background:var(--paper);color:var(--navy)}
.mb-primary{flex:1.6;background:var(--navy);color:#fff}
@media(min-width:900px){.mobile-bar{display:none}}
@media(max-width:899px){.footer{padding-bottom:96px}}

/* Focus e selezione coerenti */
::selection{background:rgba(8,41,113,.18)}
.btn-white:focus-visible,.pill-btn:focus-visible,.mb-btn:focus-visible{outline:3px solid #fff;outline-offset:2px;box-shadow:0 0 0 5px var(--navy)}

/* =========================================================================
   Prequalificatore
   ========================================================================= */
.pq{display:flex;flex-direction:column;gap:18px}
.pq-title{font-size:1.5rem;font-weight:500;letter-spacing:-.01em;line-height:1.2}
.pq-sub{margin-top:6px;font-size:1rem;opacity:.75;line-height:1.5}
.pq-progress{margin-top:16px;height:4px;border-radius:4px;background:var(--muted);overflow:hidden}
.pq-progress span{display:block;height:100%;width:100%;transform-origin:left;transform:scaleX(.16);background:var(--navy);transition:transform .4s ease;will-change:transform}
.pq-step-label{margin-top:8px;font-size:.8125rem;opacity:.65}
.pq-step{display:none;border:0;margin:0;padding:0;min-width:0}
.pq-step.is-active{display:block;animation:pqin .35s ease-out}
@keyframes pqin{from{opacity:0;transform:translateX(12px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.pq-step.is-active{animation:none}}
.pq-step legend{font-size:1.125rem;font-weight:500;line-height:1.35;margin-bottom:14px;padding:0}
.pq-hint{font-size:.9375rem;opacity:.7;margin:-6px 0 14px}
.pq-options{display:grid;gap:10px}
@media(min-width:640px){.pq-options{grid-template-columns:1fr 1fr}.pq-options-3{grid-template-columns:1fr 1fr 1fr}}
.pq-opt{position:relative;display:block;cursor:pointer}
.pq-opt input{position:absolute;opacity:0;inset:0;pointer-events:none}
.pq-opt span{display:block;padding:14px 16px;border-radius:14px;background:#fff;border:1.5px solid var(--muted);font-size:1rem;line-height:1.35;transition:border-color .2s,background .2s,transform .2s}
.pq-opt:hover span{border-color:var(--navy)}
.pq-opt input:checked+span{border-color:var(--navy);background:var(--navy);color:#fff}
.pq-opt input:focus-visible+span{outline:2px solid var(--navy);outline-offset:2px}
.pq-grid{display:grid;gap:14px}
@media(min-width:640px){.pq-grid{grid-template-columns:1fr 1fr}}
.pq-field{display:flex;flex-direction:column;gap:6px;font-size:.8125rem;font-weight:500;text-transform:uppercase;letter-spacing:.08em;opacity:.9}
.pq-field input,.pq-field select{font:inherit;font-size:1.0625rem;color:var(--navy);background:#fff;border:1.5px solid var(--muted);border-radius:12px;padding:12px 14px;letter-spacing:0;text-transform:none;font-weight:400}
.pq-field input:focus,.pq-field select:focus{outline:0;border-color:var(--navy)}
/* Consenso privacy: due colonne, casella e frase. Con `display:flex` i tre
   frammenti di testo e il link diventavano voci separate e si incolonnavano
   ciascuno per conto suo; la griglia tiene la frase in un blocco unico. */
.pq-check{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:start;margin-top:16px;font-size:.9375rem;line-height:1.55;cursor:pointer}
.pq-check input{width:22px;height:22px;margin:1px 0 0;flex:none;accent-color:var(--navy);cursor:pointer}
.pq-check span{min-width:0}
.pq-check a{text-decoration:underline;text-underline-offset:2px}
/* area di tocco comoda sul telefono, senza ingrandire il riquadro disegnato */
@media(max-width:640px){
  /* casella allineata alla prima riga, non centrata sul blocco */
  .pq-check{gap:12px;font-size:.875rem;line-height:1.6;align-items:start}
  .pq-check input{width:24px;height:24px;margin-top:1px}
}
.pq-nav{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:6px}
.pq-back{background:transparent;border:0;color:var(--navy);font-weight:500;text-decoration:underline;padding:10px 4px}
.pq-submit.is-loading{opacity:.6;pointer-events:none}
.pq-error{color:#9b1c1c;font-size:.9375rem;background:#fff;border-left:3px solid #9b1c1c;padding:8px 12px;border-radius:6px}
.pq-result{background:#fff;border-radius:18px;padding:28px;line-height:1.6}
.pq-result-title{font-size:1.375rem;font-weight:500;margin-bottom:10px;letter-spacing:-.01em}
.pq-result a{text-decoration:underline;font-weight:500}
/* Sezione dedicata */
.pq-section{position:relative;z-index:10;background:var(--paper);padding:80px 24px}
@media(min-width:768px){.pq-section{padding:112px 24px}}
.pq-wrap{max-width:72rem;margin:0 auto;display:grid;gap:40px;align-items:start}
@media(min-width:960px){.pq-wrap{grid-template-columns:1fr 1.2fr;gap:64px}}
.pq-side .section-title{text-align:left;margin:0 0 16px}
.pq-side p{font-size:1.0625rem;line-height:1.65;opacity:.85;margin-bottom:14px}
.pq-side ul{margin-top:20px;display:flex;flex-direction:column;gap:10px}
.pq-side li{display:flex;gap:10px;align-items:flex-start;font-size:1rem}
.pq-side li::before{content:"✓";flex:none;width:22px;height:22px;border-radius:999px;background:var(--navy);color:#fff;font-size:.75rem;display:grid;place-items:center;margin-top:2px}
.pq-card{background:#fff;border-radius:24px;padding:28px;box-shadow:0 20px 50px rgba(8,41,113,.08)}
@media(min-width:640px){.pq-card{padding:36px}}
.pq-card .pq-opt span,.pq-card .pq-field input,.pq-card .pq-field select,.pq-card .pq-result{background:var(--paper)}
.pq-card .pq-opt input:checked+span{background:var(--navy)}


/* =========================================================================
   v3 — recensioni, pagine servizio, chi siamo, footer
   ========================================================================= */
.reviews{position:relative;z-index:10;background:#fff;padding:80px 24px}
@media(min-width:768px){.reviews{padding:112px 24px}}
.reviews-grid{max-width:72rem;margin:40px auto 0;display:grid;gap:16px}
@media(min-width:640px){.reviews-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1024px){.reviews-grid{grid-template-columns:repeat(3,1fr)}}
.review{margin:0;background:var(--paper);border-radius:22px;padding:26px;display:flex;flex-direction:column;gap:10px}
.review .stars{color:var(--yellow);letter-spacing:.12em;font-size:.9375rem}
.review p{font-size:1rem;line-height:1.6}
.review footer{margin-top:auto;padding-top:8px;font-size:.875rem;opacity:.75}
.review footer a{text-decoration:underline}
.review.small{padding:18px 20px;background:#fff}
.review.small p{font-size:.9375rem}
.reviews-more{text-align:center;margin-top:32px}
.svc-reviews .review{background:#fff}

.footer-links{display:grid;grid-template-columns:1fr 1fr;gap:32px}
.footer-links ul{display:flex;flex-direction:column;gap:8px}
.footer-links a{font-size:1rem}
.footer-links a:hover{text-decoration:underline}

/* Pagine interne */
.crumbs{font-size:.875rem;opacity:.7;margin-bottom:24px}
.crumbs span{margin:0 6px}
.crumbs a:hover{text-decoration:underline}
.svc-hero,.team-hero{background:var(--paper);padding:140px 24px 64px}
@media(min-width:768px){.svc-hero,.team-hero{padding:160px 24px 80px}}
.svc-hero{display:grid;gap:40px;max-width:72rem;margin:0 auto;align-items:center}
@media(min-width:900px){.svc-hero{grid-template-columns:1.1fr .9fr;gap:64px;padding-inline:0}}
.svc-hero h1,.team-hero h1{font-size:clamp(2.25rem,5vw,3.75rem);font-weight:400;line-height:1.08;letter-spacing:-.025em;margin-bottom:20px}
.svc-lead{font-size:1.125rem;line-height:1.65;max-width:34rem;opacity:.9;margin-bottom:28px}
.hero-actions.left{justify-content:flex-start}
.svc-hero-media{margin:0;border-radius:24px;overflow:hidden;aspect-ratio:16/11;box-shadow:0 24px 60px rgba(8,41,113,.14)}
.svc-hero-media video{width:100%;height:100%;object-fit:cover}
.svc-block{background:#fff;padding:72px 24px}
@media(min-width:768px){.svc-block{padding:96px 24px}}
.svc-two{max-width:72rem;margin:0 auto;display:grid;gap:48px}
@media(min-width:900px){.svc-two{grid-template-columns:1fr 1.2fr;gap:80px}}
.svc-two h2{font-size:1.75rem;font-weight:400;letter-spacing:-.02em;margin-bottom:20px}
.svc-list{display:flex;flex-direction:column;gap:12px}
.svc-list li{display:flex;gap:12px;font-size:1.0625rem;line-height:1.5}
.svc-list li::before{content:"";flex:none;width:8px;height:8px;border-radius:999px;background:var(--navy);margin-top:10px}
.svc-steps{display:flex;flex-direction:column;gap:22px}
.svc-steps li{display:flex;gap:18px}
.svc-steps .fnum{color:var(--navy);opacity:.7;font-size:2rem;line-height:1}
.svc-steps h3{font-size:1.125rem;font-weight:500;margin-bottom:4px}
.svc-steps p{font-size:1rem;line-height:1.6;opacity:.85}
.svc-faq{background:var(--paper)}
.svc-faq .faq-list{max-width:52rem;margin:32px auto 0}
.svc-faq .faq-item{background:#fff}
.svc-others{max-width:52rem;margin:40px auto 0;font-size:.9375rem;opacity:.8}
.svc-others a{text-decoration:underline;margin-left:10px}
.svc-reviews{background:var(--paper)}

/* Team */
.team-hero{max-width:72rem;margin:0 auto}
@media(min-width:900px){.team-hero{padding-inline:0}}
.team-hero{background:transparent}
.team{background:var(--paper)}
.team-hero .svc-lead{max-width:42rem}
.trust-strip.dark li{background:#fff;color:var(--navy)}
.trust-strip.dark b{color:var(--navy)}
.trust-strip.dark{justify-content:flex-start;color:var(--navy)}
.team-grid-wrap{padding:24px 24px 80px}
.team-grid{max-width:72rem;margin:0 auto;display:flex;flex-direction:column;gap:24px}
.member{background:#fff;border-radius:28px;padding:28px;display:grid;gap:28px;scroll-margin-top:100px}
@media(min-width:768px){.member{grid-template-columns:280px 1fr;padding:36px;gap:40px}}

.member-ph{background:var(--paper);display:grid;place-items:center;font-family:'Instrument Serif',serif;font-style:italic;font-size:5rem;color:var(--navy);opacity:.5}
.member h2{font-size:2rem;font-weight:400;letter-spacing:-.02em}
.member-role{margin-top:4px;font-size:.9375rem;text-transform:uppercase;letter-spacing:.1em;opacity:.6}
.member-spec{margin-top:10px;font-size:1rem;font-weight:500}
.member-bio{margin-top:14px;font-size:1.0625rem;line-height:1.65;opacity:.9;max-width:42rem}
.member-contacts{margin-top:20px;display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.member-mail{text-decoration:underline;font-size:.9375rem;margin-left:6px}
.member-reviews{margin-top:28px;padding-top:24px;border-top:1px solid var(--muted);display:grid;gap:12px}
@media(min-width:1024px){.member-reviews{grid-template-columns:repeat(3,1fr)}.member-reviews .eyebrow{grid-column:1/-1;margin-bottom:0}}
.member-reviews .review.small{background:var(--paper)}
[hidden]{display:none!important}
.site{background:var(--paper)}
.svc,.team{background:var(--paper)}
.svc-hero{background:transparent}
@media(min-width:900px){.svc-hero{padding-inline:24px}}


/* =========================================================================
   v3.1 — landing servizi, contatti
   ========================================================================= */
.lp,.contact{background:var(--paper)}
.lp-hero{position:relative;min-height:82vh;display:flex;align-items:flex-end;background-size:cover;background-position:center right;padding:140px 24px 64px;color:#fff;isolation:isolate}
@media(min-width:768px){.lp-hero{padding:160px 24px 88px;min-height:88vh}}
.lp-hero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(21,28,44,.78) 0%,rgba(21,28,44,.45) 45%,rgba(21,28,44,.1) 100%),linear-gradient(180deg,rgba(21,28,44,0) 50%,rgba(21,28,44,.55) 100%)}
.lp-hero-inner{max-width:72rem;margin:0 auto;width:100%}
.lp-hero h1{font-size:clamp(2.4rem,5.6vw,4.5rem);font-weight:400;line-height:1.04;letter-spacing:-.03em;max-width:16ch;margin-bottom:20px;text-shadow:0 2px 20px rgba(0,0,0,.25)}
.lp-hero .eyebrow{color:#fff;opacity:.8}
.lp-lead{font-size:1.125rem;line-height:1.6;max-width:34rem;opacity:.95;margin-bottom:28px}
@media(min-width:768px){.lp-lead{font-size:1.25rem}}
.lp-hero .trust-strip{justify-content:flex-start;margin-top:24px}
.crumbs.light{color:#fff;opacity:.8}
.lp-numbers{background:var(--navy);color:#fff;display:grid;grid-template-columns:repeat(3,1fr);max-width:none}
.lp-num{padding:28px 16px;text-align:center;border-right:1px solid rgba(255,255,255,.12)}
.lp-num:last-child{border:0}
.lp-num b{display:block;font-weight:400;font-size:clamp(1.75rem,4vw,2.75rem);letter-spacing:-.02em;line-height:1}
.lp-num span{display:block;margin-top:6px;font-size:.875rem;opacity:.8}
.lp-shift{padding:80px 24px}
@media(min-width:768px){.lp-shift{padding:112px 24px}}
.lp-shift-inner{max-width:72rem;margin:0 auto;display:grid;gap:24px;align-items:stretch}
@media(min-width:900px){.lp-shift-inner{grid-template-columns:1fr 60px 1fr}}
.lp-col{border-radius:24px;padding:32px}
.lp-col ul{display:flex;flex-direction:column;gap:14px}
.lp-col li{display:flex;gap:12px;font-size:1.0625rem;line-height:1.5;align-items:flex-start}
.lp-col.pain{background:#fff}
.lp-col.pain li::before{content:"×";flex:none;width:24px;height:24px;border-radius:999px;background:var(--paper);display:grid;place-items:center;font-size:1rem;opacity:.6}
.lp-col.gain{background:var(--navy);color:#fff}
.lp-col.gain .eyebrow{color:#fff}
.lp-col.gain li::before{content:"✓";flex:none;width:24px;height:24px;border-radius:999px;background:#fff;color:var(--navy);display:grid;place-items:center;font-size:.8rem}
.lp-arrow{display:none;place-items:center;color:var(--navy);opacity:.5}
@media(min-width:900px){.lp-arrow{display:grid}}
.lp-benefits{background:#fff;padding:80px 24px}
@media(min-width:768px){.lp-benefits{padding:112px 24px}}
.lp-benefit-grid{max-width:72rem;margin:40px auto 0;display:grid;gap:18px}
@media(min-width:768px){.lp-benefit-grid{grid-template-columns:repeat(3,1fr)}}
.lp-benefit{background:var(--paper);border-radius:24px;padding:30px}
.lp-benefit .sicon{background:#fff}
.lp-benefit h3{font-size:1.25rem;font-weight:500;margin-bottom:8px}
.lp-benefit p{font-size:1rem;line-height:1.6;opacity:.85}
.lp-for{padding:80px 24px}
@media(min-width:768px){.lp-for{padding:112px 24px}}
.lp-for-inner{max-width:72rem;margin:0 auto;display:grid;gap:40px;align-items:center}
@media(min-width:900px){.lp-for-inner{grid-template-columns:1fr 1fr;gap:72px}}
.lp-media{margin:0;border-radius:28px;overflow:hidden;aspect-ratio:4/3;box-shadow:0 30px 70px rgba(8,41,113,.16)}
.lp-media video{width:100%;height:100%;object-fit:cover}
.lp-for h2{font-size:clamp(1.75rem,3.2vw,2.5rem);font-weight:400;letter-spacing:-.02em;margin-bottom:24px}
.lp-process{background:#fff;padding:80px 24px}
@media(min-width:768px){.lp-process{padding:112px 24px}}
.lp-steps{max-width:72rem;margin:48px auto 0;display:grid;gap:18px;counter-reset:s}
@media(min-width:768px){.lp-steps{grid-template-columns:repeat(4,1fr)}}
.lp-steps li{position:relative;background:var(--paper);border-radius:22px;padding:28px 24px 24px}
.lp-steps .fnum{display:block;font-size:2.5rem;color:var(--navy);opacity:.35;margin-bottom:8px}
.lp-steps h3{font-size:1.125rem;font-weight:500;margin-bottom:8px}
.lp-steps p{font-size:.9375rem;line-height:1.6;opacity:.85}
.lp-reviews{padding:80px 24px}
@media(min-width:768px){.lp-reviews{padding:112px 24px}}
.lp-reviews .review{background:#fff}
.review footer a{text-decoration:underline}
.lp-final{background:var(--navy);color:#fff;text-align:center;padding:88px 24px}
.lp-final h2{font-size:clamp(1.75rem,3.6vw,2.75rem);font-weight:400;letter-spacing:-.02em;line-height:1.15;margin-bottom:28px}
.lp-final .hero-actions{justify-content:center}
.lp-final .btn-white{color:var(--navy)}

/* Contatti */
.contact-hero{min-height:64vh}
@media(min-width:768px){.contact-hero{min-height:70vh}}
.contact-ways{max-width:72rem;margin:-48px auto 0;position:relative;z-index:2;display:grid;gap:14px;padding:0 24px}
@media(min-width:640px){.contact-ways{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1024px){.contact-ways{grid-template-columns:repeat(4,1fr)}}
.way{background:#fff;border-radius:22px;padding:26px;display:flex;flex-direction:column;gap:4px;box-shadow:0 16px 40px rgba(8,41,113,.1);transition:transform .25s,box-shadow .25s}
.way:hover{transform:translateY(-3px);box-shadow:0 22px 50px rgba(8,41,113,.14)}
.way .sicon{margin-bottom:12px;font-weight:600}
.way b{font-size:.8125rem;text-transform:uppercase;letter-spacing:.12em;opacity:.6}
.way-main{font-size:1.25rem;font-weight:500;letter-spacing:-.01em}
.way-sub{font-size:.9375rem;line-height:1.5;opacity:.75;margin-top:6px}
.way-primary{background:var(--navy);color:#fff}
.way-primary .sicon{background:#fff;color:var(--navy)}
.contact-info{padding:64px 24px}
.contact-info-inner{max-width:72rem;margin:0 auto;display:grid;gap:18px}
@media(min-width:900px){.contact-info-inner{grid-template-columns:1.1fr 1.2fr .9fr}}
.contact-card{background:#fff;border-radius:24px;padding:30px}
.hours{width:100%;border-collapse:collapse;font-size:1rem}
.hours th{text-align:left;font-weight:500;padding:10px 0;border-bottom:1px solid var(--muted);width:40%}
.hours td{padding:10px 0;border-bottom:1px solid var(--muted);opacity:.9}
.hours tr:last-child th,.hours tr:last-child td{border:0}
.hours .closed td{opacity:.45}
.contact-note{margin-top:16px;font-size:.9375rem;line-height:1.6;opacity:.85}
.contact-note a{text-decoration:underline}
.contact-addr{font-size:1.0625rem;line-height:1.6}
.contact-card .hero-actions{margin-top:20px}
.contact-map{max-width:72rem;margin:0 auto;padding:0 24px 24px}
.contact-map iframe{width:100%;height:420px;border:0;border-radius:24px;display:block}

/* =========================================================================
   v3.2 — fix mobile, footer a box, social, WhatsApp, blog, legale, cookie
   ========================================================================= */

/* --- Fix scorrimento laterale su mobile ---
   Causa: elementi larghi (hero video, griglie, mappa) che sforavano il viewport. */
html,body{max-width:100%;overflow-x:hidden;overscroll-behavior-x:none}
.site,.hero,.features,.lp,.contact,.blog,.legal{max-width:100vw;overflow-x:clip}
*{min-width:0}
img,video,iframe,table{max-width:100%}
.hero-video{width:100%;height:100%;left:0;top:0}
.features-bg{width:100vw;left:0;right:auto}
@media(max-width:900px){
  /* niente background-attachment fixed su mobile: causa sfarfallio e drift */
  .features-bg{position:absolute;height:100%}
  .features{overflow:hidden}
}
.lp-hero{background-attachment:scroll}

/* --- WhatsApp: CTA evidente --- */
.pill-wa{background:#1f8f4e;color:#fff;padding-right:20px}
.pill-wa:hover{background:#18763f}
.pill-wa .pill-ico{background:#fff;color:#1f8f4e}
.wa-text{display:flex;flex-direction:column;line-height:1.25;text-align:left;text-transform:none;letter-spacing:0}
.wa-text b{font-size:.9375rem;font-weight:600}
.wa-text small{font-size:.75rem;opacity:.9;font-weight:400}
.wa-text small::before{content:"";display:inline-block;width:7px;height:7px;border-radius:999px;background:#8ff0b0;margin-right:6px;animation:wapulse 1.8s ease-in-out infinite}
@keyframes wapulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.8)}}
@media(prefers-reduced-motion:reduce){.wa-text small::before{animation:none}}
.way-wa .sicon{background:#1f8f4e;color:#fff}
.mb-wa{background:#1f8f4e;color:#fff}
.mb-wa svg{color:#fff}

/* --- Social --- */
.socials{display:flex;gap:10px;margin-top:24px}
.socials a{width:42px;height:42px;border-radius:999px;background:var(--paper);color:var(--navy);display:grid;place-items:center;transition:background .25s,color .25s,transform .25s}
.socials a:hover{background:var(--navy);color:#fff;transform:translateY(-2px)}

/* --- Box blu del footer --- */
.footer-boxes{max-width:72rem;margin:56px auto 0;display:grid;gap:16px;align-items:stretch}
@media(min-width:760px){.footer-boxes{grid-template-columns:1fr 1fr}}
@media(min-width:1080px){.footer-boxes{grid-template-columns:1fr 1fr 1.2fr}}
.fbox{background:var(--navy);color:#fff;border-radius:22px;padding:32px}
.fbox-title{font-size:1.25rem;font-weight:600;margin-bottom:18px}
.fbox-line{font-size:1rem;line-height:1.75;opacity:.92}
.fbox-line a{text-decoration:underline}
.fbox-list{display:flex;flex-direction:column;gap:14px}
.fbox-list a{font-size:1rem;opacity:.92;transition:opacity .25s}
.fbox-list a:hover{opacity:1;text-decoration:underline}
.fbox-brand{display:flex;flex-direction:column;gap:24px}
.fbox-logo{height:auto;width:min(260px,70%)}
.fbox-nav a{text-transform:uppercase;letter-spacing:.06em;font-weight:600;font-size:.9375rem}

/* --- Blog --- */
.blog,.post-single,.legal{background:var(--paper)}
.blog-hero,.post-hero,.legal-hero{max-width:72rem;margin:0 auto;padding:140px 24px 40px}
@media(min-width:768px){.blog-hero,.post-hero,.legal-hero{padding:160px 24px 48px}}
.blog-hero h1,.post-hero h1,.legal-hero h1{font-size:clamp(2rem,4.6vw,3.5rem);font-weight:400;line-height:1.08;letter-spacing:-.025em;margin-bottom:18px;max-width:22ch}
.blog-cats{display:flex;flex-wrap:wrap;gap:8px;margin-top:28px}
.blog-cats a{display:inline-block;padding:8px 16px;border-radius:999px;background:#fff;font-size:.9375rem;font-weight:500;transition:background .25s,color .25s}
.blog-cats a:hover,.blog-cats a.is-active{background:var(--navy);color:#fff}
.blog-grid{max-width:72rem;margin:0 auto;padding:0 24px 72px;display:grid;gap:20px}
@media(min-width:640px){.blog-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1024px){.blog-grid{grid-template-columns:repeat(3,1fr)}}
.post-card{background:#fff;border-radius:22px;overflow:hidden;display:flex;flex-direction:column;transition:transform .3s,box-shadow .3s}
.post-card:hover{transform:translateY(-3px);box-shadow:0 20px 44px rgba(8,41,113,.12)}
.post-thumb{aspect-ratio:16/10;background:var(--paper);display:grid;place-items:center;overflow:hidden}
.post-thumb img{width:100%;height:100%;object-fit:cover}
.post-ph{font-family:'Instrument Serif',serif;font-style:italic;font-size:3rem;color:var(--navy);opacity:.25}
.post-body{padding:24px;display:flex;flex-direction:column;flex:1;gap:8px}
.post-meta{font-size:.8125rem;opacity:.6;text-transform:none;letter-spacing:.02em}
.post-body h2{font-size:1.1875rem;font-weight:500;line-height:1.3}
.post-body p{font-size:1rem;line-height:1.6;opacity:.8;flex:1}
.post-body .link{display:inline-flex;align-items:center;gap:6px;font-size:.9375rem;font-weight:500;margin-top:6px}
.blog-empty{grid-column:1/-1;font-size:1.0625rem;opacity:.8}
.blog-nav{padding:0 24px 72px;text-align:center}
.blog-nav .page-numbers{display:inline-block;padding:8px 14px;border-radius:10px;margin:0 3px;background:#fff}
.blog-nav .current{background:var(--navy);color:#fff}
.post-cover{max-width:72rem;margin:0 auto 40px;padding:0 24px}
.post-cover img{width:100%;border-radius:24px}
.post-single .prose,.legal-body{max-width:44rem;margin:0 auto;padding:0 24px 64px;font-size:1.0625rem;line-height:1.75}
.post-single .prose h2,.legal-body h2{font-size:1.75rem;font-weight:400;letter-spacing:-.02em;margin:40px 0 14px}
.post-single .prose h3,.legal-body h3{font-size:1.25rem;font-weight:500;margin:28px 0 10px}
.post-single .prose p,.legal-body p{margin-bottom:16px}
.post-single .prose ul,.legal-body ul{margin:0 0 18px;padding-left:22px;list-style:disc}
.post-single .prose li,.legal-body li{margin-bottom:8px}
.post-single .prose a,.legal-body a{text-decoration:underline}
.legal-body .lead{font-size:1.125rem;opacity:.85;padding-bottom:8px;border-bottom:1px solid var(--muted);margin-bottom:28px}
.legal-table{width:100%;border-collapse:collapse;margin:18px 0 26px;font-size:.9375rem;background:#fff;border-radius:14px;overflow:hidden}
.legal-table th,.legal-table td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--muted);vertical-align:top}
.legal-table th{font-weight:600;background:var(--paper)}
.legal-table tr:last-child td{border-bottom:0}
@media(max-width:640px){.legal-table,.legal-table tbody,.legal-table tr,.legal-table td,.legal-table th{display:block}.legal-table th{background:transparent;padding-bottom:0}}
.post-cta{max-width:44rem;margin:0 auto 72px;background:#fff;border-radius:24px;padding:32px;text-align:center}
.post-cta h2{font-size:1.5rem;font-weight:400;margin-bottom:20px}
.post-cta .hero-actions{justify-content:center}
.post-related{padding-bottom:32px}
.link-btn{background:none;border:0;padding:0;color:inherit;text-decoration:underline;font:inherit;cursor:pointer}

/* --- Embed con consenso --- */
.embed-gate{background:var(--paper);border:1px dashed var(--muted);border-radius:24px;padding:32px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center;min-height:220px;height:100%}
.embed-gate p{font-size:1rem;line-height:1.6;max-width:32rem}
.embed-gate .pill-btn{margin-top:6px}
.embed-alt{font-size:.9375rem;text-decoration:underline;opacity:.75}
.contact-map .embed-gate,.where-map .embed-gate{min-height:320px}
.video-embed{margin:24px 0}
.video-embed iframe{width:100%;aspect-ratio:16/9;border:0;border-radius:18px}

/* --- Banner cookie --- */
.ck{position:fixed;left:12px;right:12px;bottom:12px;z-index:80}
@media(min-width:900px){.ck{left:auto;right:24px;bottom:24px;max-width:460px}}
.ck-box{background:#fff;border-radius:20px;padding:24px;box-shadow:0 20px 60px rgba(8,41,113,.25)}
.ck-title{font-size:1.125rem;font-weight:600;margin-bottom:8px}
.ck-text{font-size:.9375rem;line-height:1.55;opacity:.85}
.ck-text a{text-decoration:underline}
.ck-prefs{display:flex;flex-direction:column;gap:10px;margin-top:16px;font-size:.9375rem}
.ck-prefs label{display:flex;gap:10px;align-items:center}
.ck-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.ck-btn{flex:1;min-width:110px;border:1.5px solid var(--muted);background:#fff;color:var(--navy);border-radius:999px;padding:11px 14px;font-size:.9375rem;font-weight:600;transition:background .25s,border-color .25s}
.ck-btn:hover{border-color:var(--navy)}
.ck-accept{background:var(--navy);border-color:var(--navy);color:#fff}
.ck-accept:hover{background:var(--navy-hover)}
@media(max-width:899px){.mobile-bar{bottom:12px}.ck{bottom:84px}}

/* --- Prequalificatore: opzioni con icona, riferimenti nello scarto --- */
.pq-opt-ico span{display:flex;align-items:center;gap:10px}
.pq-opt-ico i{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:var(--paper);color:var(--navy);flex:none}
.pq-opt-ico input:checked+span i{background:rgba(255,255,255,.18);color:#fff}
.pq-scarto{border-left:3px solid var(--navy)}
.pq-refs{margin-top:16px;display:flex;flex-direction:column;gap:10px}
.pq-refs li{display:flex;align-items:center;gap:10px;font-size:1.0625rem}
.pq-refs a{text-decoration:underline;font-weight:500}

/* --- Footer: box compliance (marchi e iscrizioni) --- */
.footer-compliance{max-width:min(var(--max-width),72rem);margin:56px auto 0;display:grid;gap:16px;align-items:stretch}
@media(min-width:900px){.footer-compliance{grid-template-columns:1.35fr 1fr}}
.cbox{background:var(--sage-light);border-radius:22px;padding:30px;display:flex;flex-direction:column;gap:26px;justify-content:space-between}
.cbox-row{display:grid;gap:16px;align-items:start}
@media(min-width:520px){.cbox-row{grid-template-columns:190px 1fr;gap:24px}}
.cbox-logo{display:flex;align-items:flex-start}
.cbox-logo img{height:auto;max-width:180px}
.cbox-heading{font-size:1.375rem;font-weight:400;color:var(--dark-blue);letter-spacing:-.01em}
.cbox p{font-size:.9375rem;line-height:1.6;color:var(--dark-blue)}
.cbox a{text-decoration:underline}
.cbox strong{font-weight:600}
/* logo header: nitidezza su schermi ad alta densità */
.brand img{height:38px;width:auto;image-rendering:auto}
.pill-nav.is-scrolled .brand img{height:32px}
@media(max-width:640px){.brand img{height:32px}}
/* Logo header: dimensioni reali via CSS, sorgente sempre ad alta risoluzione */
.brand img{height:42px;width:auto;max-width:none}
.pill-nav.is-scrolled .brand img{height:34px}
@media(max-width:640px){.brand img{height:34px}}
.team-empty{background:#fff;border-radius:22px;padding:28px;font-size:1.0625rem;line-height:1.6}
.team-links{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}
.team-note{margin-top:14px;font-size:.9375rem;opacity:.75}


/* --- Foto dei consulenti: ritaglio forzato 4:5, indipendente dal file caricato --- */
.member{align-items:start}
.member-photo{position:relative;width:100%;max-width:280px;aspect-ratio:4/5;border-radius:20px;overflow:hidden;background:var(--paper)}
@media(max-width:767px){.member-photo{max-width:220px}}
.member-photo>img,
.member-photo>a>img,
.member-photo picture,
.member-photo picture>img{
  position:absolute!important;inset:0!important;
  width:100%!important;height:100%!important;max-width:none!important;
  object-fit:cover!important;object-position:center 22%!important;
  border-radius:0!important;margin:0!important
}
.member-ph{position:absolute;inset:0;display:grid;place-items:center;font-family:'Instrument Serif',Georgia,serif;font-style:italic;font-size:4.5rem;color:var(--brand-blue);opacity:.35}


/* =========================================================================
   v4 — selettore lingua, blocco argomentativo, sede, lingue
   ====================================================================== */

/* --- Selettore di lingua nella pillola del menu -------------------------- */
.lang-switch{position:relative;margin-left:auto}
.lang-toggle{display:inline-flex;align-items:center;gap:6px;background:var(--paper);color:var(--navy);border:0;border-radius:999px;padding:8px 12px;font:inherit;font-size:.8125rem;font-weight:600;letter-spacing:.04em;cursor:pointer;transition:background .2s}
.lang-toggle:hover{background:var(--muted)}
.lang-toggle[aria-expanded="true"]{background:var(--navy);color:#fff}
.lang-switch .lang-code{line-height:1}
.lang-menu{position:absolute;top:calc(100% + 10px);right:0;z-index:60;min-width:190px;margin:0;padding:6px;list-style:none;background:#fff;border-radius:16px;box-shadow:0 16px 44px rgba(8,41,113,.18)}
.lang-menu[hidden]{display:none}
.lang-menu li{margin:0}
.lang-menu a{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:11px;font-size:.9375rem;color:var(--dark-blue);text-decoration:none;transition:background .18s}
.lang-menu a:hover{background:var(--paper)}
.lang-menu a.is-current{background:var(--navy);color:#fff;font-weight:600}
.lang-menu .lang-code{flex:0 0 26px;font-size:.6875rem;font-weight:700;letter-spacing:.06em;opacity:.65}
.lang-menu a.is-current .lang-code{opacity:.9}
@media(max-width:640px){.lang-switch{margin-left:0}.lang-toggle{padding:8px 10px}}

/* --- Hero: etichetta sopra al titolo ------------------------------------ */
.hero-kicker{display:inline-block;margin-bottom:14px;padding:6px 14px;border-radius:999px;background:rgba(255,255,255,.16);backdrop-filter:blur(6px);color:#fff;font-size:.75rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase}

/* --- Blocco argomentativo "Perché un mediatore" --------------------------------------------- */
.why{position:relative;z-index:10;background:#fff;border-radius:25px 25px 0 0;padding:80px 24px}
.why-inner{max-width:1180px;margin:0 auto}
.why-head{max-width:46rem}
.why-head .section-title{text-align:left;margin-left:0}
.why-lead{margin-top:18px;font-size:1.0625rem;line-height:1.7;opacity:.85}
.why-grid{display:grid;gap:40px;margin-top:48px}
@media(min-width:900px){.why-grid{grid-template-columns:1.05fr .95fr;align-items:start;gap:56px}}
.why-points{list-style:none;margin:0;padding:0;display:grid;gap:22px}
.why-points li{display:flex;gap:16px;align-items:flex-start}
.why-n{flex:0 0 auto;width:34px;height:34px;border-radius:999px;background:var(--paper);color:var(--navy);display:grid;place-items:center;font-size:.8125rem;font-weight:700;letter-spacing:.02em}
.why-points h3{margin:0;font-size:1.0625rem;font-weight:600;line-height:1.35}
.why-points p{margin:6px 0 0;font-size:.9688rem;line-height:1.6;opacity:.78}
.why-media{margin:0;border-radius:24px;overflow:hidden;background:var(--paper)}
.why-media img,.why-media picture{display:block;width:100%;height:auto}
.why-media figcaption{padding:14px 18px;font-size:.875rem;line-height:1.5;opacity:.7;background:var(--paper)}
.why-foot{margin-top:44px;padding-top:32px;border-top:1px solid var(--wale-light);display:grid;gap:24px}
@media(min-width:900px){.why-foot{grid-template-columns:1.3fr auto;align-items:center;gap:40px}}
.why-note{margin:0;font-size:1rem;line-height:1.7;opacity:.85;max-width:44rem}

/* --- Card del servizio di punta ----------------------------------------- */
.scard-flag{background:var(--navy);color:#fff}
.scard-flag .q{opacity:.72}
.scard-flag p{opacity:.86}
.scard-flag .sicon{background:rgba(255,255,255,.14);color:#fff}
.scard-flag:hover{box-shadow:0 18px 44px rgba(8,41,113,.28)}

/* --- Sezione lingue ------------------------------------------------------ */
.langs{position:relative;z-index:10;background:var(--paper);padding:64px 24px}
.langs-inner{max-width:960px;margin:0 auto;display:flex;gap:24px;align-items:flex-start;background:#fff;border-radius:24px;padding:36px}
@media(max-width:640px){.langs-inner{flex-direction:column;padding:28px;gap:18px}}
.langs-ico{flex:0 0 auto;width:52px;height:52px;border-radius:999px;background:var(--paper);color:var(--navy);display:grid;place-items:center}
.langs .section-title{text-align:left;margin:0 0 12px}
.langs p{margin:0;font-size:1rem;line-height:1.7;opacity:.85}
.langs-list{list-style:none;margin:20px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.langs-list a{display:inline-block;padding:8px 16px;border-radius:999px;background:var(--paper);color:var(--navy);font-size:.9375rem;font-weight:500;text-decoration:none;transition:background .2s}
.langs-list a:hover{background:var(--muted)}

/* --- Elenco delle due sedi ---------------------------------------------- */
.where-sedi{list-style:none;margin:22px 0;padding:0;display:grid;gap:14px}
@media(min-width:640px){.where-sedi{grid-template-columns:1fr 1fr;gap:18px}}
.where-sedi li{background:#fff;border-radius:16px;padding:16px 18px}
.where-sedi b{display:block;font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;opacity:.55;margin-bottom:5px}
.where-sedi a{font-size:.9688rem;line-height:1.5;color:var(--navy)}

/* --- Card del percorso: immagini al posto dei video --------------------- */
.fmedia img,.fmedia picture{display:block;width:100%;height:100%;object-fit:cover}
.fmedia picture{display:block}

/* --- Indirizzo nel footer, con due sedi --------------------------------- */
.footer-address strong{display:block;margin-top:10px;font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;opacity:.5}
.footer-address strong:first-child{margin-top:0}

/* --- Terza colonna di link nel footer ----------------------------------- */
@media(min-width:900px){.footer-links{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* --- Contatti: due mappe affiancate, una per sede --------------------- */
.contact-map-due{display:grid;gap:20px}
@media(min-width:900px){.contact-map-due{grid-template-columns:1fr 1fr;gap:24px}}
.contact-map-due figure{margin:0}
.contact-map-due figcaption{margin-bottom:10px;font-size:.8125rem;font-weight:600;letter-spacing:.02em;opacity:.7}
.contact-map-due iframe,.contact-map-due .embed-gate{width:100%;min-height:320px;border:0;border-radius:20px}

/* --- Hero: immagine fissa al posto del video ---------------------------- */
.hero-media{position:absolute;inset:0;display:block;width:100%;height:100%}
.hero-media img{width:100%;height:100%;object-fit:cover;object-position:center 38%;display:block}
@media(max-width:640px){.hero-media img{object-position:70% 40%}}
/* Sull'immagine chiara serve una velatura più decisa perché il testo resti leggibile */
.hero .hero-overlay{background:linear-gradient(100deg,rgba(8,41,113,.88) 0%,rgba(8,41,113,.72) 38%,rgba(8,41,113,.34) 62%,rgba(8,41,113,.18) 100%)}
@media(max-width:900px){.hero .hero-overlay{background:linear-gradient(180deg,rgba(8,41,113,.62) 0%,rgba(8,41,113,.80) 55%,rgba(8,41,113,.90) 100%)}}

/* --- Mobile: la pillola del menu non deve coprire l'etichetta dell'hero ---
   La navbar è flottante e sovrapposta all'hero. Su schermi stretti il logo
   finiva sopra la riga "Mediazione creditizia a Torino · …": diamo all'hero
   uno spazio in alto pari all'altezza reale della pillola. */
@media(max-width:900px){
  /* `justify-content:flex-end` con contenuto più alto del contenitore lo fa
     traboccare dal BORDO SUPERIORE, ignorando il padding: era la ragione per cui
     il logo finiva sopra l'etichetta. Con `margin-top:auto` il margine si annulla
     da solo quando non c'è spazio, e il padding viene rispettato. */
  .hero{height:auto;min-height:100vh;justify-content:flex-start;padding-top:120px}
  .hero-content{margin-top:auto}
  .hero-kicker{margin-bottom:10px}
}
@supports(min-height:100svh){@media(max-width:900px){.hero{min-height:100svh}}}
@media(max-width:640px){
  .hero{padding-top:108px}
  .hero-kicker{font-size:.6875rem;letter-spacing:.07em;padding:6px 12px;line-height:1.45;text-align:center}
}
@media(max-width:380px){
  .hero{padding-top:100px}
  .hero-kicker{padding:5px 10px}
}


/* =========================================================================
   Touch: reattività al primo tocco

   Su iOS un elemento con stili :hover intercetta il primo tocco per mostrare
   l'effetto, e solo il secondo apre il link. Qui l'unica cosa che facciamo è
   NON applicare l'effetto hover dove un puntatore non esiste.

   Volutamente NON usiamo:
   · transform su :active — l'elemento si sposta sotto il dito mentre il
     browser decide se è un tocco o uno scorrimento, e il clic viene annullato;
   · pointer-events:none sui figli — non serve, l'intera card è già un <a>,
     e aggiunge un punto di rottura in più.
   ====================================================================== */
@media (hover: none), (pointer: coarse) {
  /* nessuno spostamento al tocco: la card resta ferma e il link parte subito */
  .scard,
  .scard:hover,
  .scard:focus,
  .way:hover,
  .review:hover,
  .lp-benefit:hover,
  .post-card:hover { transform: none; }

  .scard:hover .link svg { transform: none; }

  /* riscontro visivo senza muovere nulla */
  .scard:active { background: var(--muted); }
  .scard-flag:active { background: var(--dark-blue); }
  .way:active,
  .post-card:active { background: var(--muted); }

  /* L'animazione d'ingresso sposta l'elemento di 20 px verso l'alto con un
     ritardo scalato fino a 360 ms. Se il dito arriva mentre il movimento è in
     corso, il browser interpreta il tocco su un bersaglio che si sta spostando
     e annulla il clic: è la ragione per cui serviva tappare più volte.
     Su touch teniamo la sola dissolvenza, che non muove nulla. */
  .reveal { transform: none; transition: opacity .35s ease-out; transition-delay: 0ms !important; }
  .reveal.is-visible { transform: none; }
}

/* Nessun ritardo di 300 ms sugli elementi cliccabili */
a, button, [role="button"], label, summary,
.scard, .way, .pill-btn, .mb-btn { touch-action: manipulation; }

.scard, .way, .mb-btn, .pill-btn { -webkit-tap-highlight-color: rgba(8,41,113,.10); }


/* =========================================================================
   Banner cookie: non deve rendere irraggiungibile ciò che sta sotto.
   È fisso e resta finché l'utente non sceglie. Finché è aperto la pagina
   riserva in fondo uno spazio pari alla sua altezza (--ck-h, impostata dal
   suo script), così qualsiasi elemento può essere portato allo scoperto
   scorrendo. Teniamo inoltre il riquadro compatto.
   ====================================================================== */
body.ck-open .site { padding-bottom: calc(var(--ck-h, 0px) + 16px); }
@media(max-width:899px){ body.ck-open .site { padding-bottom: calc(var(--ck-h, 0px) + 92px); } }

.ck-box { max-width: 100%; }
.ck-text { font-size: .875rem; line-height: 1.5; }
@media(min-width:900px){
  .ck { max-width: 400px; }
  .ck-text { font-size: .8125rem; }
}
/* Su telefono il banner deve restare una fascia, non mezza schermata */
@media(max-width:899px){
  .ck-box   { padding: 16px 16px 14px; border-radius: 16px; }
  .ck-title { font-size: .9375rem; margin-bottom: 4px; }
  .ck-text  { font-size: .8125rem; line-height: 1.45; }
  .ck-actions { gap: 6px; margin-top: 12px; }
  .ck-btn   { min-width: 0; padding: 9px 10px; font-size: .8125rem; }
  /* i tre tasti su una riga sola: è ciò che alza di più il riquadro */
  .ck-actions { flex-wrap: nowrap; }
}


/* =========================================================================
   Intestazione: eliminazione del rettangolo fantasma

   .pill-nav è un contenitore flex in colonna che contiene la pillola visibile
   e il menu a tendina. Il menu chiuso è invisibile (opacity:0) e non riceve il
   tocco, ma restava nel flusso: il box dell'header risultava alto 440 px
   invece di 56, ed essendo position:fixed con z-index:50 copriva metà schermo.
   Qualsiasi elemento cliccabile finisse in quella fascia diventava inerte.

   Due interventi: il primo toglie il tocco al contenitore, il secondo rimuove
   la causa facendo uscire il menu chiuso dal flusso.
   ====================================================================== */

/* 1 · il contenitore non intercetta nulla; lo fanno solo i figli utili */
.pill-nav { pointer-events: none; }
.pill-nav .pill { pointer-events: auto; }
.pill-nav.is-open .pill-menu { pointer-events: auto; }

/* 2 · il menu esce dal flusso: l'header torna alto quanto la pillola */
.pill-nav { align-items: stretch; gap: 0; }
.pill-menu {
  position: absolute;
  top: 100%;
  left: 50%;
  margin-top: 10px;
  transform-origin: top center;
  transform: translate(-50%, -8px) scale(.96);
}
/* la regola esistente usa `transform:none` sul menu aperto: va sovrascritta,
   altrimenti la traslazione che centra il menu viene annullata */
.pill-nav.is-open .pill-menu { transform: translate(-50%, 0) scale(1); }
@media (min-width: 900px) {
  .pill-menu { left: auto; right: 0; transform: translate(0, -8px) scale(.96); }
  .pill-nav.is-open .pill-menu { transform: translate(0, 0) scale(1); }
}

/* 3 · strati puramente decorativi: non devono ricevere il tocco */
.hero-overlay,
.features-bg,
.hero-media { pointer-events: none; }


/* La barra dei contatti si ritrae sul footer, così i link in fondo restano
   toccabili; e la pagina riserva comunque lo spazio della barra. */
.mobile-bar { transition: transform .25s ease, opacity .25s ease; }
.mobile-bar.is-hidden { transform: translateY(140%); opacity: 0; pointer-events: none; }
@media(max-width:899px){ .site { padding-bottom: 88px; } }


/* =========================================================================
   v5 — RITMO DELLE SEZIONI

   Obiettivo: lo sguardo scende lungo la pagina incontrando un blocco alla
   volta, ciascuno con un solo messaggio e una sola azione. Tre strumenti:

   1. Fondi alternati. Nessuna sezione ha lo stesso fondo di quella che la
      precede. La sequenza è chiaro → scuro → chiaro, con due ancoraggi scuri
      per pagina che fanno da "respiro" e da cambio di capitolo.
   2. Spaziatura verticale unica (--sec-pad) più generosa di prima: è lo
      spazio vuoto, non una linea, a dire dove finisce un blocco.
   3. Bordo superiore arrotondato sulle sezioni chiare che salgono su una
      scura: il blocco successivo sembra scorrere sopra il precedente.

   Gerarchia interna: .section-head tiene insieme etichetta, titolo e
   sommario, e nessun altro elemento può stare tra loro.
   ====================================================================== */
:root{
  --sec-pad: clamp(76px, 9vw, 136px);
  --sec-pad-sm: clamp(56px, 6vw, 88px);
  --sec-round: 28px;
}

/* 1 · spaziatura comune */
.sec{ padding-block: var(--sec-pad); position:relative; z-index:10 }
.sec.contact-info{ padding-block: var(--sec-pad-sm) }

/* 2 · fondi alternati: home */
.services{ background:#fff }
.langs{ background:var(--paper) }
.reviews{ background:var(--paper) }
.faq{ background:#fff }
.where{ background:var(--paper) }
.pq-on-white{ background:#fff }
.pq-on-white .pq-card{ background:var(--paper) }
.pq-on-white .pq-card .pq-opt span,
.pq-on-white .pq-card .pq-field input,
.pq-on-white .pq-card .pq-field select,
.pq-on-white .pq-card .pq-result{ background:#fff }

/* 3 · bordo arrotondato dove una sezione chiara sale su una scura */
.services,.langs{ border-radius: var(--sec-round) var(--sec-round) 0 0 }
.footer{ border-radius: var(--sec-round) var(--sec-round) 0 0; margin-top:-1px }

/* Intestazione di sezione: etichetta, titolo, sommario. Niente in mezzo. */
.section-head{ max-width:44rem; margin:0 auto clamp(40px,5vw,64px); text-align:center }
.section-head .eyebrow{ margin-bottom:12px }
.section-head .section-title{ margin-bottom:0 }
.section-head .services-lead{ margin:16px auto 0 }
.section-head .section-title + .services-lead{ margin-top:18px }
/* filo sottile sotto l'etichetta: segna l'inizio del blocco senza pesare */
.section-head .eyebrow::after{
  content:""; display:block; width:34px; height:2px; margin:12px auto 0;
  background:currentColor; opacity:.35; border-radius:2px;
}
.why .section-head .eyebrow::after,
.lp-story .section-head .eyebrow::after{ margin-inline:0 }


/* =========================================================================
   Card dei servizi: immagine + titolo + testo
   ====================================================================== */
.scard{
  padding:0; overflow:hidden; display:flex; flex-direction:column;
  background:#fff; border-radius:24px;
}
.scard-media{
  display:block; position:relative; aspect-ratio:3/2; overflow:hidden;
  background:var(--paper); flex:none;
}
.scard-media img,.scard-media picture{ display:block; width:100%; height:100%; object-fit:cover }
.scard-media img{ transition:transform .6s cubic-bezier(.2,.7,.3,1) }
.scard:hover .scard-media img{ transform:scale(1.045) }
.scard-body{ padding:24px 26px 28px; display:flex; flex-direction:column; flex:1 }
.scard .q{
  font-family:'Instrument Serif',Georgia,serif; font-style:italic;
  font-size:1.0625rem; line-height:1.35; opacity:.72; margin-bottom:10px;
}
.scard h3{ font-size:1.3125rem; font-weight:500; line-height:1.25 }
.scard p{ margin-top:10px }
.scard .link{ margin-top:18px }
/* la card di punta resta blu, ma solo nel corpo: l'immagine non va velata */
.scard-flag{ background:var(--navy); color:#fff }
.scard-flag .scard-body{ background:var(--navy) }
@media (hover: none),(pointer: coarse){
  .scard:hover .scard-media img{ transform:none }
}


/* =========================================================================
   Blocco argomentativo "Perché un mediatore" — ancoraggio scuro della home
   ====================================================================== */
.why{ background:var(--dark-blue); color:#fff; border-radius:0 }
.why-inner{ max-width:1180px; margin:0 auto }
.why-head{ max-width:46rem }
.why-head .section-title{ text-align:left; margin-left:0; margin-bottom:0 }
.why .eyebrow{ color:#fff; opacity:.7 }
.why-lead{ margin-top:18px; font-size:1.0625rem; line-height:1.7; opacity:.82 }
.why-grid{ display:grid; gap:40px; margin-top:clamp(40px,5vw,56px) }
@media(min-width:900px){ .why-grid{ grid-template-columns:1.05fr .95fr; align-items:start; gap:56px } }
.why-points{ list-style:none; margin:0; padding:0; display:grid; gap:26px }
.why-points li{ display:flex; gap:16px; align-items:flex-start }
.why-n{
  flex:0 0 auto; width:34px; height:34px; border-radius:999px;
  background:rgba(255,255,255,.12); color:#fff; display:grid; place-items:center;
  font-size:.8125rem; font-weight:700;
}
.why-points h3{ margin:0; font-size:1.0625rem; font-weight:600; line-height:1.35; color:#fff }
.why-points p{ margin:6px 0 0; font-size:.9688rem; line-height:1.65; opacity:.75 }
.why-media{ margin:0; border-radius:24px; overflow:hidden; background:rgba(255,255,255,.06) }
.why-media img,.why-media picture{ display:block; width:100%; height:auto }
.why-media figcaption{ padding:14px 18px; font-size:.875rem; line-height:1.5; opacity:.7 }
.why-foot{
  margin-top:clamp(40px,5vw,52px); padding-top:32px;
  border-top:1px solid rgba(255,255,255,.16); display:grid; gap:24px;
}
@media(min-width:900px){ .why-foot{ grid-template-columns:1.3fr auto; align-items:center; gap:40px } }
.why-note{ margin:0; font-size:1rem; line-height:1.75; opacity:.8; max-width:44rem }
.pill-light{ background:#fff; color:var(--navy) }
.pill-light:hover{ background:var(--wale-light) }
.pill-light .pill-ico{ background:var(--navy); color:#fff }


/* =========================================================================
   Pagine servizio: blocco narrativo al posto di "questa pagina è per te se"
   ====================================================================== */
.lp-story{ background:#fff }
.lp-story-inner{ max-width:72rem; margin:0 auto; display:grid; gap:40px; align-items:center }
@media(min-width:900px){ .lp-story-inner{ grid-template-columns:1fr 1fr; gap:72px } }
.lp-story-text h2{
  font-size:clamp(1.75rem,3.2vw,2.5rem); font-weight:400;
  letter-spacing:-.02em; line-height:1.15; margin-bottom:22px;
}
.lp-story-text p{ font-size:1.0625rem; line-height:1.75; opacity:.88; margin-bottom:18px }
.lp-story-text .pill-btn{ margin-top:8px }

/* fondi delle pagine servizio, alternati */
.lp-benefits{ background:var(--paper) }
.lp-benefit{ background:#fff }
.lp-benefit .sicon{ background:var(--paper) }
.lp-process{ background:#fff }
.lp-reviews{ background:var(--dark-blue); color:#fff }
.lp-reviews .eyebrow,.lp-reviews .section-title{ color:#fff }
.lp-reviews .eyebrow{ opacity:.7 }
.lp-reviews .review{ background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.12) }
.lp-reviews .review footer{ opacity:.7 }
.svc-faq{ background:#fff }
.svc-faq .faq-item{ background:var(--paper) }
.svc-faq .faq-item:hover{ background:#e2e8f4 }

/* la fascia dei numeri fa da cerniera tra testata e primo blocco */
.lp-numbers{ position:relative; z-index:10 }
.lp-shift{ border-radius:var(--sec-round) var(--sec-round) 0 0 }

/* colonne del confronto: etichette più esplicite, stessa altezza */
.lp-shift-inner{ align-items:stretch }
.lp-col{ display:flex; flex-direction:column }
.lp-col .eyebrow{ margin-bottom:18px }


/* =========================================================================
   Dettagli di rifinitura
   ====================================================================== */
/* Griglia della zona nel modulo: nove province più la voce di scarto */

/* Elenco "dove siamo": indirizzo e orari come due schede */
.where-sedi span{ font-size:.9688rem; line-height:1.5; color:var(--navy) }

/* Footer: riga minore nel box del titolare */
.fbox-small{ margin-top:12px; font-size:.875rem; opacity:.75 }

/* Contatti: una sola mappa, a piena larghezza */
.contact-map figure{ margin:0 }
.contact-map figcaption{ margin-bottom:10px; font-size:.8125rem; font-weight:600; opacity:.7 }
.contact-map .embed-gate{ min-height:380px; border-radius:24px }

/* Chi siamo: la griglia respira come le altre sezioni */
.team-grid-wrap{ padding-block:0 var(--sec-pad) }

/* Su schermi molto larghi il testo non deve stirarsi */
.about-lead,.why-lead,.lp-story-text p{ max-width:38rem }
.section-head .services-lead{ max-width:36rem }


/* =========================================================================
   v5.1 — Striscia di fiducia, fascia garanzia, confronto in home
   ====================================================================== */

/* Striscia sopra la testata: unica riga, sta sotto la pillola flottante */
.trustbar{
  position:relative; z-index:40; display:flex; flex-wrap:wrap; justify-content:center;
  align-items:center; gap:6px 12px; padding:10px 20px;
  background:var(--dark-blue); color:rgba(255,255,255,.88);
  font-size:.8125rem; font-weight:500; line-height:1.4; text-align:center;
}
.trustbar-score{ display:inline-flex; align-items:center; gap:6px }
.trustbar-score:hover{ text-decoration:underline }
.trustbar-stars{ color:var(--yellow); letter-spacing:.08em }
.trustbar-score b{ color:#fff; font-weight:700 }
.trustbar-sep{ opacity:.4 }
@media(max-width:640px){ .trustbar{ font-size:.75rem; padding:9px 14px } .trustbar-sep{ display:none } }
/* la barra spinge in basso l'hero: la pillola del menu resta sopra di essa */
.pill-nav{ top:64px }
.pill-nav.is-scrolled{ top:12px }
@media(max-width:900px){ .hero{ padding-top:96px } }

/* Fascia garanzia: una promessa, una sola azione */
.risk{ position:relative; z-index:10; background:var(--navy); color:#fff; padding:clamp(40px,5vw,64px) 24px }
.risk-inner{
  max-width:72rem; margin:0 auto; display:grid; gap:22px; align-items:center;
  grid-template-columns:auto 1fr;
}
@media(min-width:1000px){ .risk-inner{ grid-template-columns:auto 1fr auto; gap:32px } }
.risk-ico{
  width:60px; height:60px; border-radius:999px; background:rgba(255,255,255,.14);
  display:grid; place-items:center; flex:none;
}
.risk h2{ font-size:clamp(1.375rem,2.6vw,2rem); font-weight:400; letter-spacing:-.02em; line-height:1.2 }
.risk p{ margin-top:10px; font-size:1rem; line-height:1.7; opacity:.85; max-width:52rem }
@media(max-width:999px){
  .risk-inner{ grid-template-columns:1fr }
  .risk-inner > .pill-btn{ justify-self:start }
}

/* Confronto in home: riusa le colonne delle pagine servizio */
.compare{ background:var(--paper) }
.compare .lp-shift-inner{ max-width:72rem; margin:0 auto; display:grid; gap:24px; align-items:stretch }
@media(min-width:900px){ .compare .lp-shift-inner{ grid-template-columns:1fr 60px 1fr } }

/* nota legale sotto la fascia garanzia e claim nella striscia */
.risk-note{ max-width:72rem; margin:20px auto 0; font-size:.8125rem; line-height:1.6; opacity:.6 }
.trustbar-risk{ font-weight:600; color:#fff }
@media(max-width:640px){ .trustbar-risk{ display:none } }

/* =========================================================================
   v5.2 — Blocco «hai ragione, ma…»

   Ogni voce è una coppia: la frase che il lettore ha in testa, in corsivo e
   fra virgolette, e sotto ciò che quella frase non tiene in conto. Il corsivo
   serif fa da "voce del lettore" e distingue a colpo d'occhio le due parti
   senza bisogno di etichette.
   ====================================================================== */
.truth{ background:var(--paper) }
.truth-inner{ max-width:60rem; margin:0 auto }
.truth-list{ list-style:none; margin:0; padding:0; display:grid; gap:16px }
.truth-list li{
  background:#fff; border-radius:22px; padding:26px 28px;
  border-left:3px solid var(--navy);
}
@media(min-width:768px){ .truth-list li{ padding:30px 34px } }
.truth-think{
  font-family:'Instrument Serif',Georgia,serif; font-style:italic;
  font-size:1.25rem; line-height:1.35; color:var(--navy); margin-bottom:12px;
}
@media(min-width:768px){ .truth-think{ font-size:1.4375rem } }
.truth-real{ font-size:1rem; line-height:1.7; opacity:.88 }
@media(min-width:768px){ .truth-real{ font-size:1.0625rem } }

/* Benefici: ora hanno una descrizione lunga, servono più respiro */
.lp-benefit{ padding:32px 30px }
.lp-benefit h3{ font-size:1.1875rem; line-height:1.3; margin-bottom:10px }
.lp-benefit p{ font-size:1rem; line-height:1.7 }
@media(min-width:768px){ .lp-benefit-grid{ align-items:stretch } .lp-benefit{ display:flex; flex-direction:column } }

/* =========================================================================
   v5.3 — Sintesi + approfondimento, prova in linea, rassicurazioni nel modulo

   Il blocco «hai ragione, ma» mostrava quattro paragrafi lunghi di fila: un
   muro, soprattutto su telefono. Ora ogni voce dice la sua in una riga e
   l'approfondimento sta dietro un «Perché» che si apre solo a chi lo vuole.
   ====================================================================== */
.truth-real{ font-size:1.0625rem; line-height:1.6; opacity:.9; font-weight:500 }
@media(min-width:768px){ .truth-real{ font-size:1.125rem } }
.truth-more{ margin-top:14px }
.truth-more summary{
  list-style:none; cursor:pointer; display:inline-flex; align-items:center; gap:7px;
  font-size:.875rem; font-weight:600; letter-spacing:.02em; color:var(--navy);
  padding:6px 0; text-underline-offset:3px;
}
.truth-more summary::-webkit-details-marker{ display:none }
.truth-more summary::after{ content:"+"; font-size:1.05rem; line-height:1; opacity:.55; transition:transform .25s }
.truth-more[open] summary::after{ transform:rotate(45deg) }
.truth-more summary:hover{ text-decoration:underline }
.truth-more p{ margin-top:8px; font-size:.9688rem; line-height:1.7; opacity:.8 }

/* Prova sociale accanto all'argomento che sostiene, non relegata in fondo */
.proof{
  margin:28px 0 0; background:var(--navy); color:#fff; border-radius:22px;
  padding:26px 30px; display:flex; flex-direction:column; gap:10px;
}
.proof .stars{ color:var(--yellow); letter-spacing:.12em; font-size:.9375rem }
.proof p{ font-size:1.0625rem; line-height:1.65 }
.proof footer{ font-size:.875rem; opacity:.8 }
.proof footer a{ text-decoration:underline }

/* Le tre righe che tolgono le barriere, dove si chiede il numero */
.pq-reassure{ margin:18px 0 0; display:grid; gap:8px; list-style:none; padding:0 }
.pq-reassure li{
  display:flex; gap:9px; align-items:flex-start;
  font-size:.9063rem; line-height:1.5; opacity:.8;
}
.pq-reassure li::before{
  content:"✓"; flex:none; width:18px; height:18px; border-radius:999px;
  background:var(--navy); color:#fff; font-size:.625rem;
  display:grid; place-items:center; margin-top:2px;
}

/* =========================================================================
   v5.4 — Correzioni

   1. Griglia delle province. Su schermo largo cinque colonne strette
      spezzavano "Verbano-Cusio-Ossola" su tre righe e allungavano tutte le
      caselle. Ora le colonne si adattano al contenuto e la voce di scarto,
      che è la più lunga e non è una provincia, prende una riga sua.
   2. Nota della fascia garanzia allineata al titolo invece che centrata.
   ====================================================================== */

/* Nota legale della fascia garanzia: stessa colonna del testo */
.risk-note{ max-width:none; margin:16px 0 0; grid-column:auto }
@media(min-width:1000px){ .risk-inner > .risk-note{ grid-column:2 / 3 } }

/* =========================================================================
   v5.5 — Griglia delle province

   Prima c'erano tre regole diverse su .pq-options-4, scritte in momenti
   diversi, con quattro, cinque e "auto-fit" colonne: si sovrascrivevano a
   vicenda e il risultato cambiava con la larghezza della finestra. Ora ce n'è
   una sola.

   Le province non hanno lunghezze paragonabili — "Asti" contro
   "Verbano-Cusio-Ossola" — quindi una griglia a colonne uguali costringe le
   etichette lunghe a spezzarsi su tre righe e alza tutta la riga. Le trattiamo
   come etichette che si dimensionano sul contenuto e vanno a capo da sole:
   nessuna parola spezzata, nessuna casella più alta delle altre.
   ====================================================================== */
.pq-options-4{
  display:flex; flex-wrap:wrap; gap:10px; align-items:stretch;
}
.pq-options-4 .pq-opt{ flex:0 1 auto }
.pq-options-4 .pq-opt span{
  display:flex; align-items:center; justify-content:center; height:100%;
  padding:13px 18px; font-size:.9375rem; line-height:1.3;
  text-align:center; white-space:nowrap;
}
/* La voce di scarto non è una provincia: riga propria, a piena larghezza,
   e testo su una riga sola perché qui possiamo permetterci di andare a capo. */
.pq-options-4 .pq-opt:last-child{ flex:1 0 100%; margin-top:6px }
.pq-options-4 .pq-opt:last-child span{ white-space:normal }
@media(max-width:520px){
  .pq-options-4 .pq-opt{ flex:1 1 calc(50% - 5px) }
  .pq-options-4 .pq-opt span{ white-space:normal; padding:13px 10px }
}

/* la nota ora è dentro la colonna del testo: eredita l'allineamento */
.risk-note{ max-width:none; margin:14px 0 0; font-size:.8125rem; line-height:1.6; opacity:.6 }

/* =========================================================================
   v5.6 — Nuovo ordine delle pagine servizio

   I benefici ora vengono prima del blocco narrativo: dopo aver mostrato al
   lettore cosa non sta considerando, gli si dice subito cosa facciamo noi, e
   solo dopo si scende nell'approfondimento. I fondi vanno rialternati di
   conseguenza, perché la sequenza è cambiata.
   ====================================================================== */
.truth{ background:#fff }
.truth-list li{ background:var(--paper) }
.lp-benefits{ background:var(--paper) }
.lp-benefit{ background:#fff }
.lp-story{ background:#fff }
.lp-process{ background:var(--paper) }
.lp-process .lp-steps li{ background:#fff }

/* =========================================================================
   v5.7 — Testata della pagina Contatti

   Le testate delle pagine servizio hanno il soggetto sulla destra e usano
   `background-position: center right`, con il ritaglio verticale centrato.
   Su Contatti però la foto è di gruppo: centrando in verticale, `cover`
   taglia le teste della fila in alto. Qui ancoriamo il ritaglio al bordo
   superiore e al centro in orizzontale, così le persone restano intere e
   l'immagine scende dentro il riquadro invece di essere tranciata.
   ====================================================================== */
.contact-hero{
  /* 20% invece di 0: il ritaglio scende un po' dentro la foto, così
     l'immagine risale nel riquadro senza tornare a tagliare le teste. */
  background-position: center 20%;
  min-height: 68vh;
}
@media(min-width:768px){
  .contact-hero{ min-height: 76vh }
}
