:root{
  --bg:#F4F6FB; --surface:#FFFFFF; --ink:#121A3A; --muted:#50587A;
  --deep:#243062; --accent:#2F5DA8; --accent-ink:#FFFFFF; --line:#D5DBEC; --band:#243062; --band-ink:#EEF3FB;
  color-scheme:light;
  box-sizing:border-box; padding-top:env(safe-area-inset-top,0px); padding-bottom:env(safe-area-inset-bottom,0px);
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --bg:#0D1230; --surface:#161D45; --ink:#E8EEF9; --muted:#A3AECF;
    --deep:#A9CBEA; --accent:#96C1E5; --accent-ink:#0F1736; --line:#2A3566; --band:#243062; --band-ink:#EEF3FB;
    color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --bg:#0D1230; --surface:#161D45; --ink:#E8EEF9; --muted:#A3AECF;
  --deep:#A9CBEA; --accent:#96C1E5; --accent-ink:#0F1736; --line:#2A3566; --band:#243062; --band-ink:#EEF3FB;
  color-scheme:dark;
}
html{scroll-padding-top:env(safe-area-inset-top,0px);scroll-behavior:smooth}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:400 1.0625rem/1.65 Figtree,system-ui,-apple-system,"Segoe UI",sans-serif}
h1,h2,h3{font-family:"Bricolage Grotesque",Figtree,system-ui,sans-serif;line-height:1.12;margin:0 0 .6em;letter-spacing:-.015em}
h1{font-size:clamp(2.2rem,6vw,3.9rem);font-weight:700}
h2{font-size:clamp(2rem,5vw,3rem);font-weight:700}
h3{font-size:1.2rem;font-weight:500}
p{margin:0 0 1em;max-width:62ch}
a{color:inherit}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px;border-radius:4px}
.wrap{max-width:1080px;margin:0 auto;padding:0 1.25rem}
header.top{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 0;flex-wrap:wrap}
.brand{font-family:"Bricolage Grotesque",sans-serif;font-weight:700;font-size:1.15rem;text-decoration:none;color:var(--deep);line-height:1.2}
.zone{background:linear-gradient(90deg,#96C1E5,#5FA8E8);color:#0f1736;padding:.12rem .7rem;border-radius:999px;font-size:.78em;font-weight:700;margin-left:.4rem;white-space:nowrap;box-shadow:0 0 18px rgba(150,193,229,.55)}
.featured{padding:4.5rem 0 3.5rem;background:linear-gradient(180deg,var(--bg),var(--surface))}
.featured h2{font-size:clamp(2.2rem,5.5vw,3.4rem)}
.featured p{font-size:clamp(1.15rem,2.4vw,1.4rem);line-height:1.6;color:var(--ink);max-width:62ch}
.featured p:first-of-type{border-left:4px solid var(--accent);padding-left:1.2rem}
.brand small{display:block;font:400 .8rem Figtree,system-ui,sans-serif;color:var(--muted);letter-spacing:.02em}
nav{display:flex;gap:clamp(.7rem,2.4vw,2rem);flex-wrap:nowrap;white-space:nowrap;font-size:clamp(.95rem,3.4vw,1.4rem);font-weight:700}
nav a{text-decoration:none;color:var(--muted)}
nav a:hover{color:var(--ink)}
.btn{display:inline-block;background:var(--accent);color:var(--accent-ink);font-weight:600;text-decoration:none;padding:.85rem 1.4rem;border-radius:999px}
.btn:hover{filter:brightness(1.08)}
.btn.ghost{background:transparent;color:var(--ink);border:1.5px solid var(--line)}
.hero{display:grid;grid-template-columns:1.15fr .85fr;gap:2.5rem;align-items:center;padding:3rem 0 4.5rem}
.hero p.lead{font-size:1.2rem;color:var(--muted)}
.cta{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:1.6rem}
.scan{width:100%;height:auto;max-width:460px;justify-self:center}
.logo{border-radius:18px;box-shadow:0 12px 40px rgba(36,48,98,.28)}
.scan .ring{transform-origin:200px 200px;animation:spin 14s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
section{padding:4rem 0}
.services{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.25rem;margin-top:2rem}
.service{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:1.4rem}
.service{display:flex;flex-direction:column}
.service p{margin:0 0 1.1rem;color:var(--muted);font-size:.98rem}
.shotwrap{position:relative;margin:auto -1.4rem -1.4rem}
.band{background:linear-gradient(rgba(150,193,229,.06) 1px,transparent 1px) 0 0/44px 44px,linear-gradient(90deg,rgba(150,193,229,.06) 1px,transparent 1px) 0 0/44px 44px,var(--band);color:var(--band-ink)}
.band h2,.band h3{color:var(--band-ink)}
.cbct{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center}
.cbct ul{padding:0;margin:1.2rem 0 0;list-style:none;display:grid;gap:.9rem}
.cbct li{padding-left:1.1rem;border-left:3px solid var(--accent)}
.cbct li strong{display:block;font-weight:600}
.cbct .muted{opacity:.85;font-size:.9rem;margin-top:1.4rem}
.ages{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.25rem;margin-top:1.5rem}
.contact{display:grid;grid-template-columns:1fr 1fr;gap:2rem}
.card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:1.6rem}
dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:.5rem 1.2rem}
dt{color:var(--muted)} dd{margin:0}
.todo{background:color-mix(in srgb,var(--accent) 18%,transparent);padding:0 .3em;border-radius:4px}
.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s ease,box-shadow .25s ease}
.reveal.in{opacity:1;transform:none}
.service:hover{transform:translateY(-5px);box-shadow:0 16px 36px rgba(36,48,98,.2)}
section:not(.legal) h2::after{content:"";display:block;width:60px;height:4px;border-radius:4px;background:linear-gradient(90deg,var(--accent),#96C1E5);margin-top:.7rem}
.strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:.8rem;padding:1.2rem 0 2.8rem}
.strip div{border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.07);backdrop-filter:blur(6px);border-radius:14px;padding:.9rem 1.1rem;color:#fff;font-weight:600;font-size:.97rem;line-height:1.3}
.strip small{display:block;font-weight:400;color:#C0CDE8;font-size:.83rem;margin-top:.15rem}
.viewer{position:relative;aspect-ratio:4/5;width:100%;max-width:460px;margin-top:1.6rem;border-radius:22px;border:1px solid rgba(150,193,229,.4);background:radial-gradient(circle at 50% 42%,rgba(110,170,240,.3),transparent 68%),rgba(6,12,40,.5);overflow:hidden;cursor:grab;touch-action:pan-y;box-shadow:0 0 60px rgba(110,170,240,.18) inset}
.viewer canvas{display:block;width:100%;height:100%}
.viewer .scanviz{position:absolute;left:4%;top:8%;width:92%;margin:0}
.viewer span{position:absolute;left:0;right:0;bottom:.7rem;text-align:center;font-size:.8rem;color:#C0CDE8;pointer-events:none;padding:0 .8rem}
.legal{padding:3rem 0;border-top:1px solid var(--line);font-size:.95rem}
.legal h2{font-size:1.5rem}
.legal h3{font-size:1.05rem;margin:1.4em 0 .4em}
.legal p,.legal li{max-width:70ch;color:var(--muted)}
.legal ul{padding-left:1.2rem;margin:0 0 1em}
footer{border-top:1px solid var(--line);padding:2rem 0;font-size:.88rem;color:var(--muted)}
footer p{max-width:none}
.herowrap{background:radial-gradient(700px 380px at 80% 40%,rgba(110,170,240,.30),transparent 65%),linear-gradient(rgba(150,193,229,.07) 1px,transparent 1px) 0 0/44px 44px,linear-gradient(90deg,rgba(150,193,229,.07) 1px,transparent 1px) 0 0/44px 44px,var(--band);color:var(--band-ink)}
.herowrap .brand{color:#fff}.herowrap .brand small{color:#C0CDE8}.herowrap nav a{color:#fff}.herowrap nav a:hover{text-decoration:underline;text-underline-offset:6px}
.topbar{text-align:right;padding-top:.8rem}
.topbar span{display:inline-block;border:1px solid rgba(255,255,255,.4);border-radius:999px;padding:.25rem .9rem;font-size:.85rem;font-weight:600;color:#fff;background:rgba(255,255,255,.08)}
.herowrap h1{color:#fff}.herowrap .hero p.lead{color:#C9D6EE}
.herowrap .btn{background:#fff;color:#243062}.herowrap .btn.ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.45)}
.herowrap :focus-visible{outline-color:#fff}
.mark{filter:drop-shadow(0 0 22px rgba(150,205,255,.55))}
.lockup{position:relative;isolation:isolate}
.lockup::before{content:"";position:absolute;z-index:-1;width:300px;height:300px;left:50%;top:-40px;margin-left:-150px;border:1.5px dashed rgba(150,193,229,.4);border-radius:50%;animation:ring 40s linear infinite}
@keyframes ring{to{transform:rotate(360deg)}}
.service{position:relative;overflow:hidden}
.service::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:linear-gradient(90deg,var(--accent),transparent)}
.shots{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:2px;scrollbar-width:none}
.shots::-webkit-scrollbar{display:none}
.arr{position:absolute;top:50%;transform:translateY(-50%);width:38px;height:38px;border:0;border-radius:50%;background:rgba(36,48,98,.8);color:#fff;font-size:1.6rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0 0 3px}
.nx{right:10px;animation:nudge 1.8s ease-in-out infinite}
.prv{left:10px;display:none}
@keyframes nudge{50%{transform:translate(4px,-50%)}}
@media (prefers-reduced-motion:reduce){.nx{animation:none}}
.shots img{flex:0 0 100%;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;scroll-snap-align:start;display:block}
.scanviz{width:100%;max-width:440px;height:auto;margin-top:1.4rem;display:block}
.beam{animation:sweep 4.5s ease-in-out infinite alternate}
@keyframes sweep{to{transform:translateY(120px)}}
@media (prefers-reduced-motion:reduce){.beam,.lockup::before{animation:none}}
@media (max-width:760px){.lockup::before{width:200px;height:200px;margin-left:-100px;top:-34px}}
.lockup{text-align:center;justify-self:center}
.mark{width:min(250px,60vw);height:auto;display:block;margin:0 auto 1.3rem}
.lockup p{max-width:none;margin:0}
.name{font-family:"Source Serif 4",Georgia,"Times New Roman",serif;font-weight:600;font-size:clamp(1.5rem,3.2vw,2rem);color:#fff;line-height:1.15}
.sub{margin-top:.5rem!important;letter-spacing:.14em;font-size:.8rem;text-transform:uppercase;color:#E3EAF8}
.slogan{font-family:Allura,"Snell Roundhand","Brush Script MT",cursive;font-size:2.5rem;color:#96C1E5;margin-top:.7rem!important;line-height:1.1}
@media (max-width:760px){
  .lockup{order:-1}
  .mark{width:150px;margin-bottom:.9rem}
  .hero,.cbct,.contact{grid-template-columns:1fr}
  .hero{padding-top:1.5rem}
  .scan{max-width:300px;order:-1}
  section{padding:3rem 0}
}
@media (prefers-reduced-motion:reduce){.scan .ring{animation:none}html{scroll-behavior:auto}}

/* --- layout ispirato a un modello a sezioni numerate --- */
.eyebrow{font-size:.85rem;letter-spacing:.12em;text-transform:uppercase;color:#96C1E5;font-weight:600;margin-bottom:.8rem}
.hdr-act{display:flex;align-items:center;gap:.9rem}
.btn.sm{padding:.5rem 1.1rem;font-size:.95rem}
.hdr-act .wa{color:#fff;text-decoration:none;font-weight:600;font-size:.95rem;border-bottom:1.5px solid rgba(255,255,255,.5)}
.steps{padding:3rem 0 1rem}
.stepgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.25rem}
.stepgrid>div{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:1.4rem}
.stepgrid p{color:var(--muted);margin:0;font-size:.98rem}
.num{display:block;font:700 .9rem "Bricolage Grotesque",sans-serif;color:var(--accent);letter-spacing:.12em;margin-bottom:.5rem}
.inbreve{max-width:none;margin:2rem 0 0;padding:1.2rem 1.4rem;border-left:4px solid var(--accent);background:var(--surface);border-radius:0 14px 14px 0;color:var(--muted)}
.inbreve strong{color:var(--ink)}
.services{counter-reset:svc}
.service{counter-increment:svc}
.service h3::before{content:counter(svc,decimal-leading-zero);display:block;font:700 .85rem "Bricolage Grotesque",sans-serif;letter-spacing:.12em;color:var(--accent);margin-bottom:.35rem}
.faq{display:grid;gap:.7rem;margin-top:1.5rem;max-width:820px}
.faq details{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:.2rem 1.2rem}
.faq summary{cursor:pointer;font-weight:600;padding:.9rem 0;list-style:none;display:flex;justify-content:space-between;gap:1rem}
.faq summary::after{content:"+";color:var(--accent);font-size:1.4rem;line-height:1}
.faq details[open] summary::after{content:"\2212"}
.faq details p{color:var(--muted);margin:0 0 1rem}
.ctaband{background:var(--band);color:var(--band-ink);text-align:center;padding:3.5rem 0}
.ctaband h2{color:#fff}.ctaband h2::after{margin-left:auto;margin-right:auto}
.ctaband p{margin-left:auto;margin-right:auto;color:#C9D6EE}
.ctaband .cta{justify-content:center}
.ctaband .btn{background:#fff;color:#243062}.ctaband .btn.ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.45)}
.form{display:grid;gap:.9rem;margin-bottom:2rem;max-width:640px}
.form label{display:grid;gap:.3rem;font-weight:600;font-size:.95rem}
.form input:not([type=checkbox]),.form select,.form textarea{font:inherit;padding:.7rem .85rem;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--ink)}
.form .chk{display:flex;gap:.6rem;align-items:center;font-weight:400}
.form button{justify-self:start;border:0;cursor:pointer;font:inherit;font-weight:600}
.small{font-size:.85rem}.muted{color:var(--muted)}
.fcols{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem;margin-bottom:1.5rem}
.fcols div{display:grid;gap:.3rem;align-content:start}
.fcols strong{color:var(--ink)}
.fcols a{text-decoration:none}.fcols a:hover{text-decoration:underline}
.stickybar{display:none}
@media (max-width:760px){
  .stickybar{display:grid;grid-template-columns:repeat(3,1fr);position:fixed;left:0;right:0;bottom:0;z-index:50;background:var(--band);padding-bottom:env(safe-area-inset-bottom,0)}
  .stickybar a{color:#fff;text-align:center;padding:.85rem .5rem;font-weight:600;text-decoration:none;border-left:1px solid rgba(255,255,255,.18)}
  .stickybar a:first-child{border-left:0}
  body{padding-bottom:3.4rem}
  .hdr-act{width:100%;justify-content:flex-start}
}

.topbar{display:flex;justify-content:flex-end;align-items:center;gap:1rem;flex-wrap:wrap}
.topbar .hdr-act{margin-right:auto}
html,body{overflow-x:hidden}
@media (max-width:760px){nav{flex-wrap:wrap;white-space:normal;font-size:1.05rem;gap:.4rem 1rem}.topbar .hdr-act{margin-right:0}}

/* --- v3: look chiaro e pulito, stile "studio digitale" --- */
.herowrap{background:radial-gradient(900px 420px at 85% 10%,rgba(95,168,232,.18),transparent 65%),var(--bg);color:var(--ink)}
.herowrap .brand{color:var(--deep)}.herowrap .brand small{color:var(--muted)}
.herowrap nav a{color:var(--muted)}.herowrap nav a:hover{color:var(--ink);text-decoration:none}
.herowrap h1{color:var(--ink)}.herowrap .hero p.lead{color:var(--muted)}
.herowrap .btn{background:var(--accent);color:var(--accent-ink)}
.herowrap .btn.ghost{background:transparent;color:var(--ink);border-color:var(--line)}
.herowrap :focus-visible{outline-color:var(--accent)}
.eyebrow{color:var(--accent)}
.topbar span{color:var(--deep);border-color:var(--line);background:var(--surface)}
.hdr-act .wa{color:var(--deep);border-bottom-color:var(--line)}
.btn.sm{background:var(--deep)!important;color:#fff!important}
.lockup{background:radial-gradient(420px 300px at 50% 30%,rgba(110,170,240,.35),transparent 70%),linear-gradient(rgba(150,193,229,.08) 1px,transparent 1px) 0 0/36px 36px,linear-gradient(90deg,rgba(150,193,229,.08) 1px,transparent 1px) 0 0/36px 36px,#243062;border-radius:28px;padding:2.2rem 1.5rem 2rem;box-shadow:0 30px 70px rgba(36,48,98,.28);width:100%;max-width:420px}
.strip div{border:1px solid var(--line);background:var(--surface);backdrop-filter:none;color:var(--ink)}
.strip small{color:var(--muted)}
.strip{padding-bottom:3rem}
.steps{border-top:1px solid var(--line);padding-top:3rem}
.stepgrid>div{position:relative}
.stepgrid>div:not(:last-child)::after{content:"\2192";position:absolute;right:-1.1rem;top:50%;transform:translateY(-50%);color:var(--accent);font-size:1.4rem;background:var(--bg);padding:0 .15rem;z-index:1}
.pills{display:flex;flex-wrap:wrap;gap:.4rem;margin:0 0 1.1rem}
.pills span,.chips span{font-size:.8rem;font-weight:600;color:var(--deep);background:color-mix(in srgb,var(--accent) 12%,transparent);border:1px solid color-mix(in srgb,var(--accent) 28%,transparent);border-radius:999px;padding:.2rem .7rem}
.chips{display:flex;flex-wrap:wrap;gap:.4rem;margin:.4rem 0 1.2rem}
.ages>div{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:1.4rem}
.big{display:block;font:700 clamp(1.8rem,4vw,2.4rem)/1 "Bricolage Grotesque",sans-serif;color:var(--accent);margin-bottom:.6rem;letter-spacing:-.02em}
.ages p{margin:0;color:var(--muted)}
.princ{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:2rem;margin-top:1.8rem}
.princ>div{border-top:2px solid var(--ink);padding-top:1rem}
.princ p{margin:0;color:var(--muted)}.princ strong{color:var(--ink);display:block;margin-bottom:.3rem;font-size:1.1rem}
footer{background:#161d45;color:#C0CDE8;border-top:0;margin-top:2rem;padding:3rem 0 5rem}
footer strong{color:#fff}footer a{color:#C0CDE8}
.faq details[open]{border-color:var(--accent)}
@media (max-width:760px){.stepgrid>div:not(:last-child)::after{display:none}.lockup{max-width:none}}

.service h3::before{display:none!important;content:none!important}

/* --- v4: intestazione separata e logo in medaglione --- */
.infobar{background:#161d45;color:#C0CDE8;font-size:.82rem}
.infobar .wrap{display:flex;gap:.4rem 1.6rem;justify-content:flex-end;flex-wrap:wrap;padding-top:.45rem;padding-bottom:.45rem}
.infobar a{color:#fff;text-decoration:none;font-weight:600}
.infobar span:first-child{margin-right:auto;color:#fff;font-weight:600}
.sitehead{position:sticky;top:0;z-index:60;background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);box-shadow:0 6px 24px rgba(36,48,98,.08)}
.sitehead .wrap{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-top:.7rem;padding-bottom:.7rem}
.sitehead .brand{color:var(--deep);font-size:1.3rem}
.sitehead .brand small{color:var(--muted)}
.sitehead nav a{color:var(--muted);font-size:1.02rem}
.sitehead nav a:hover{color:var(--ink)}
html{scroll-padding-top:5rem}
.hero{padding-top:2.8rem}
.lockup{background:none!important;box-shadow:none!important;border-radius:0;padding:0;max-width:none}
.medal{position:relative;width:min(300px,62vw);aspect-ratio:1;margin:0 auto 1.4rem;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 50% 38%,#3b5aa8 0%,#243062 62%,#161d45 100%);box-shadow:0 26px 60px rgba(36,48,98,.38),inset 0 0 0 1px rgba(255,255,255,.16),inset 0 -18px 40px rgba(0,0,0,.25)}
.medal::before{content:"";position:absolute;inset:-14px;border-radius:50%;border:1.5px dashed color-mix(in srgb,var(--accent) 55%,transparent);animation:ring 40s linear infinite}
.medal::after{content:"";position:absolute;inset:10px;border-radius:50%;border:1px solid rgba(255,255,255,.18)}
.medal .mark{width:62%;margin:0;filter:drop-shadow(0 0 20px rgba(150,205,255,.6))}
.lockup::before{display:none}
.lockup .name{color:var(--deep)}
.lockup .sub{color:var(--muted)}
.lockup .slogan{color:var(--accent)}
@media (max-width:760px){
  .infobar .wrap{justify-content:center;font-size:.78rem}.infobar span:first-child{margin-right:0}
  .sitehead .wrap{flex-wrap:wrap}.sitehead nav{order:3;width:100%;justify-content:space-between;font-size:.95rem}
  .sitehead .btn.sm{padding:.45rem 1rem}
  .medal{width:min(210px,55vw)}
}
@media (prefers-reduced-motion:reduce){.medal::before{animation:none}}

/* --- sezione scanner intraorale --- */
.scangrid{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center}
.lead2{font-size:1.15rem;color:var(--muted)}
.ticks{list-style:none;padding:0;margin:1.4rem 0 0;display:grid;gap:.9rem}
.ticks li{padding-left:1.1rem;border-left:3px solid var(--accent);color:var(--muted)}
.ticks strong{color:var(--ink)}
.scanview{position:relative;aspect-ratio:1/1;width:100%;max-width:520px;justify-self:center;border-radius:24px;overflow:hidden;cursor:grab;touch-action:pan-y;background:radial-gradient(circle at 50% 42%,#3b5aa8 0%,#243062 58%,#161d45 100%);box-shadow:0 26px 60px rgba(36,48,98,.3),inset 0 0 0 1px rgba(255,255,255,.14)}
.scanview.grab{cursor:grabbing}
.scanview canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.scanmsg{position:absolute;inset:0;display:grid;place-items:center;margin:0;color:#C0CDE8;font-size:.9rem;max-width:none;text-align:center;padding:1rem}
.scanbtns{position:absolute;top:.8rem;left:.8rem;right:.8rem;display:flex;gap:.4rem;flex-wrap:wrap}
.scanbtns button{font:600 .78rem Figtree,system-ui,sans-serif;color:#fff;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.28);border-radius:999px;padding:.3rem .8rem;cursor:pointer}
.scanbtns button:hover{background:rgba(255,255,255,.24)}
.scancap{position:absolute;left:0;right:0;bottom:.7rem;text-align:center;font-size:.78rem;color:#C0CDE8;pointer-events:none;padding:0 .8rem}
@media (max-width:760px){.scangrid{grid-template-columns:1fr;gap:2rem}}
.scanbtns button.on{background:#fff;color:#243062}

.progetto{margin-top:4rem;text-align:center}
.progetto h3{font-size:clamp(1.6rem,3.6vw,2.2rem);font-weight:700}
.progetto p{margin-left:auto;margin-right:auto;color:var(--muted)}
.simfig{position:relative;margin:1.6rem auto 0;border-radius:22px;overflow:hidden;background:#f1f3f8;border:1px solid var(--line);box-shadow:0 20px 50px rgba(36,48,98,.18)}
.simfig video{display:block;width:100%;height:auto}
.simfig figcaption{font-size:.82rem;color:var(--muted);padding:.7rem 1rem;background:var(--surface);border-top:1px solid var(--line)}
.simbtn{position:absolute;right:.8rem;top:.8rem;width:38px;height:38px;border-radius:50%;border:0;background:rgba(36,48,98,.8);color:#fff;cursor:pointer;font-size:.8rem}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .simfig{background:#f1f3f8}}

.simgrid{display:grid;grid-template-columns:1.55fr 1fr;gap:1.4rem;align-items:stretch;max-width:1080px;margin:1.6rem auto 0;text-align:left}
.simgrid .simfig{margin:0;display:flex;flex-direction:column;max-width:none}
.simgrid .simfig video{flex:1;object-fit:cover;min-height:0}
.prepost{display:grid;grid-template-rows:1fr 1fr;gap:1.4rem}
.prepost figure{position:relative;margin:0;border-radius:22px;overflow:hidden;border:1px solid var(--line);box-shadow:0 20px 50px rgba(36,48,98,.18);background:#000}
.prepost img{display:block;width:100%;height:100%;object-fit:cover}
.tag{position:absolute;left:.8rem;top:.8rem;background:rgba(36,48,98,.85);color:#fff;font:700 .8rem Figtree,system-ui,sans-serif;letter-spacing:.1em;text-transform:uppercase;padding:.3rem .8rem;border-radius:999px}
.tag2{background:var(--accent)}
.simnote{text-align:center;margin-top:1rem}
@media (max-width:860px){.simgrid{grid-template-columns:1fr}.prepost{grid-template-rows:none;grid-template-columns:1fr 1fr}.prepost img{aspect-ratio:2/1.2}}
@media (max-width:520px){.prepost{grid-template-columns:1fr}}
.progetto{grid-column:1/-1;width:100%}
.simgrid .simfig{background:#f4f4f4}
.simgrid .simfig video{object-fit:contain;flex:0 0 auto;margin:auto 0;background:#f4f4f4}
.simgrid .simfig{justify-content:center}
.simgrid .simfig figcaption{margin-top:auto}

/* v5: Prima | video | Dopo */
.simgrid{grid-template-columns:1fr 1.5fr 1fr!important;align-items:stretch}
.simgrid .pp{display:flex}
.simgrid .pp figure{position:relative;margin:0;border-radius:22px;overflow:hidden;border:1px solid var(--line);box-shadow:0 20px 50px rgba(36,48,98,.18);background:#000;width:100%}
.simgrid .pp img{display:block;width:100%;height:100%;object-fit:cover;min-height:260px}
@media (max-width:860px){.simgrid{grid-template-columns:1fr!important}.simgrid .pp img{min-height:0;aspect-ratio:2/1.2}}
/* v6: foto intere, grandi quanto la bocca del video */
.simgrid{align-items:center!important}
.simgrid .pp{align-self:center}
.simgrid .pp img{height:auto!important;min-height:0!important;object-fit:contain!important;aspect-ratio:auto!important}

/* v7: tre riquadri identici 16:9 */
.simgrid{grid-template-columns:repeat(3,minmax(0,1fr))!important;align-items:start!important;gap:1.2rem!important}
.simgrid .pp{display:block!important;align-self:start!important}
.simgrid .pp figure,.simgrid .simfig{margin:0!important;width:100%!important;border-radius:22px!important;overflow:hidden!important;border:1px solid var(--line)!important;box-shadow:0 20px 50px rgba(36,48,98,.18)!important;background:#000!important;display:block!important;position:relative!important}
.simgrid .pp img,.simgrid .simfig video{display:block!important;width:100%!important;height:auto!important;aspect-ratio:16/9!important;object-fit:cover!important;min-height:0!important;margin:0!important}
@media (max-width:860px){.simgrid{grid-template-columns:1fr!important}}

.tacvideos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.2rem;margin-top:2.2rem}
.tacvideos figure{margin:0}
.tacvideos video{width:100%;aspect-ratio:16/9;object-fit:contain;background:#000;border-radius:14px;display:block}
.tacvideos figcaption{font-size:.85rem;opacity:.85;margin-top:.5rem}
.tacvideos .tacnote{grid-column:1/-1;margin:0}
@media (max-width:760px){.tacvideos{grid-template-columns:1fr}}
