/* Studio Quinto Odontoiatri — tema professionale
   Chiaro, calmo, fotografico. Il blu dell'insegna è l'unico colore forte; la struttura nasce da
   spazio bianco e filetti; il celeste del logo compare solo sulle chiamate e sulla visita gratuita. Firma: la foto a tutto schermo sotto il velo blu. */

@font-face{font-family:'Figtree';src:url(../fonts/figtree-latin-wght-normal.woff2) format('woff2');font-weight:300 900;font-style:normal;font-display:swap}

:root{
  --blue:#1F3FA3;       /* blu dell'insegna: pulsanti, link, contorni delle offerte */
  --navy:#0E1F5C;       /* titoli, striscia, piè di pagina */
  --ink:#1D2C5E;        /* testo */
  --muted:#4B5C90;      /* testo secondario (6:1 su bianco) */
  --surface:#F5F8FE;
  --surface2:#EAF1FC;
  --line:#D6E2F6;       /* filetti */
  --accent:#89CFF0;     /* celeste dello studio (dal logo precedente): chiamate, visita gratuita, dettagli sul fondo scuro */
  --accent-hi:#A8DDF5;
  --font:'Figtree',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --r-m:20px;
  --r-l:28px;
  --shadow-s:0 1px 2px rgba(14,31,92,.06),0 8px 22px rgba(14,31,92,.07);
  --shadow-m:0 2px 6px rgba(14,31,92,.06),0 22px 50px rgba(14,31,92,.14);
  --ease:cubic-bezier(.16,1,.3,1);
  --ease-io:cubic-bezier(.7,0,.2,1);
  --strip:40px;
  --bar:76px;
  --hdr:calc(var(--strip) + var(--bar));
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--bar) + 20px);scrollbar-color:var(--blue) var(--surface2)}
body{margin:0;background:#fff;color:var(--ink);font-family:var(--font);font-size:19px;line-height:1.7;font-weight:400;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:clip;caret-color:var(--blue)}
body.menu-open{overflow:hidden}
img,svg{display:block;max-width:100%}
img{height:auto}
a{color:inherit}
p{margin:0}
h1,h2,h3,h4{margin:0;font-family:var(--font);font-weight:700;color:var(--navy);letter-spacing:-.022em;line-height:1.1;text-wrap:balance;overflow-wrap:anywhere}
h2{font-size:clamp(1.85rem,3.1vw,2.85rem)}
h3{font-size:1.3rem;letter-spacing:-.012em;font-weight:650}
::selection{background:var(--accent);color:var(--navy)}
:focus-visible{outline:3px solid var(--blue);outline-offset:3px;border-radius:8px}
.hero :focus-visible,.band :focus-visible,.foot :focus-visible,.callbar :focus-visible,.dark-card :focus-visible,.strip :focus-visible,.curtain :focus-visible{outline-color:var(--accent)}
::-webkit-scrollbar{width:14px;height:14px}
::-webkit-scrollbar-track{background:var(--surface2)}
::-webkit-scrollbar-thumb{background:var(--blue);border-radius:99px;border:3px solid var(--surface2)}

.skip{position:fixed;left:16px;top:-80px;z-index:300;background:var(--accent);color:var(--navy);font:700 16px/1 var(--font);padding:14px 20px;border-radius:999px;text-decoration:none;transition:top .3s var(--ease)}
.skip:focus{top:12px}
.wrap{width:100%;max-width:1280px;margin:0 auto;padding:0 clamp(20px,4vw,48px)}
.ic{flex:none;width:1em;height:1em}
.anchor{display:block;height:0}
mark{background:none;color:inherit}
.ph-mark{background:#FFE58A;color:#4A3800;padding:0 .25em;border-radius:4px}

/* ---------- sezioni ---------- */
.pane{padding:clamp(64px,8vw,124px) 0}
.tint{background:var(--surface)}
.head{max-width:60ch}
.head h2{max-width:22ch}
.head p{margin-top:16px;color:var(--muted);font-size:1.15rem}
.lead{font-size:clamp(1.12rem,1.5vw,1.3rem);line-height:1.6;max-width:56ch;margin-top:22px;color:var(--muted)}
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(36px,6vw,96px);align-items:center}
.split.flip>:first-child{order:2}
.split--solo{grid-template-columns:minmax(0,1fr)}
.split--solo>*{max-width:62ch}
.split h2{font-size:clamp(1.85rem,3vw,2.7rem)}
.split .btns{margin-top:32px}
.callout{display:flex;align-items:center;gap:14px;margin-top:28px;padding:14px 22px 14px 14px;border-radius:18px;background:var(--surface2);color:var(--navy);font-weight:650;font-size:1.06rem;line-height:1.4;width:fit-content;max-width:100%}
.callout .ic{width:40px;height:40px;padding:10px;border-radius:50%;background:var(--blue);color:#fff}
.free-pill{display:inline-block;background:var(--accent);color:var(--navy);font-weight:800;font-size:clamp(1.15rem,8cqi,1.9rem);line-height:1.2;border-radius:999px;padding:8px 22px;letter-spacing:-.01em;transition:transform .6s var(--ease)}

/* ---------- pulsanti e pillole di chiamata ---------- */
.btn{position:relative;isolation:isolate;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 26px;max-width:100%;text-align:center;line-height:1.2;border-radius:999px;font-family:var(--font);font-weight:650;font-size:16px;letter-spacing:0;text-decoration:none;border:2px solid var(--blue);color:var(--blue);background:transparent;cursor:pointer;transition:color .35s var(--ease),border-color .35s var(--ease),transform .45s var(--ease)}
.btn::before{content:"";position:absolute;inset:-2px;z-index:-1;background:var(--blue);transform:translateY(101%);transition:transform .55s var(--ease)}
.btn .ic{width:18px;height:18px;transition:transform .45s var(--ease)}
.btn.fill{background:var(--blue);color:#fff}
.btn.fill::before{background:var(--navy)}
.btn.light{background:#fff;border-color:#fff;color:var(--navy)}
.btn.light::before{background:var(--surface2)}
.btn:focus-visible{outline-offset:4px}
.btns{display:flex;flex-wrap:wrap;gap:12px}
.calls{display:flex;flex-wrap:wrap;gap:14px}
.calls--stack{flex-direction:column;align-items:stretch}
.call{position:relative;display:inline-flex;align-items:center;gap:14px;background:var(--accent);color:var(--navy);text-decoration:none;border-radius:999px;padding:10px 28px 10px 10px;min-height:62px;transition:background-color .3s,transform .45s var(--ease),box-shadow .45s var(--ease)}
.call .ic{flex:none;width:42px;height:42px;padding:11px;border-radius:50%;background:var(--navy);color:var(--accent)}
.call span{display:flex;flex-direction:column;line-height:1.15}
.call small{font-size:16px;font-weight:600}
.call b{font-weight:800;font-size:1.3rem;letter-spacing:-.005em;font-variant-numeric:tabular-nums}

/* ---------- testata ---------- */
.site-header{position:fixed;top:0;left:0;right:0;z-index:50;background:#fff;color:var(--navy);box-shadow:0 1px 0 var(--line);transition:box-shadow .45s var(--ease)}
.site-header.is-stuck{box-shadow:0 1px 0 var(--line),0 14px 34px rgba(14,31,92,.1)}
body.admin-bar .site-header{top:32px}
@media (max-width:782px){body.admin-bar .site-header{top:46px}}
.strip{background:var(--navy);color:#fff;font-size:15.5px;font-weight:500;max-height:var(--strip);overflow:hidden;transition:max-height .55s var(--ease),opacity .35s}
.site-header.is-stuck .strip{max-height:0;opacity:0;visibility:hidden;transition:max-height .55s var(--ease),opacity .3s,visibility 0s .55s}
.strip__in{display:flex;flex-wrap:nowrap;gap:0 28px;align-items:center;justify-content:space-between;min-height:var(--strip)}
.strip__in p{margin:0}
.strip a,.strip__appt{display:inline-flex;align-items:center;gap:8px;min-height:var(--strip);text-decoration:none;white-space:nowrap}
.strip__appt .ic{width:17px;height:17px;color:var(--accent)}
.strip__tels{display:flex;gap:0 26px}
.strip b{font-weight:700;letter-spacing:.01em;font-variant-numeric:tabular-nums;transition:color .3s}
.strip a:hover b{color:var(--accent)}
.strip__rsa{text-decoration:underline!important;text-decoration-color:rgba(255,255,255,.4)!important;text-underline-offset:5px!important;transition:text-decoration-color .3s}
.strip__rsa:hover{text-decoration-color:var(--accent)!important}
.bar{position:relative;min-height:var(--bar);display:flex;align-items:center}
.bar__in{display:flex;align-items:center;justify-content:space-between;gap:24px}
.lockup{display:flex;flex:none;align-items:center;gap:12px;text-decoration:none;color:var(--navy);white-space:nowrap;transition:transform .5s var(--ease)}
.lockup__tooth{width:40px;height:40px;flex:none;color:var(--blue);transition:transform .6s var(--ease)}
.lockup--img{gap:0}
.lockup__img{display:block;height:40px;width:auto;max-width:none;flex:none}
.lockup b{display:block;font-weight:800;font-size:1.4rem;letter-spacing:-.02em;line-height:1}
.lockup i{display:block;font-style:normal;font-weight:600;font-size:14px;letter-spacing:0;margin-top:3px;color:var(--muted)}
.nav ul{list-style:none;margin:0;padding:0;display:flex;align-items:center;gap:2px}
.nav a{position:relative;display:inline-flex;align-items:center;min-height:48px;padding:0 11px;font-weight:600;font-size:15.5px;letter-spacing:-.005em;text-decoration:none;color:var(--navy);white-space:nowrap;transition:color .3s}
.nav a::after{content:"";position:absolute;left:11px;right:11px;bottom:7px;height:2px;border-radius:2px;background:var(--blue);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease)}
.nav a[aria-current]{color:var(--blue)}
.nav a:focus-visible::after,.nav a[aria-current]::after{transform:scaleX(1)}
.bar__cta{display:none;flex:none;white-space:nowrap;min-height:46px;padding:0 22px;font-size:15px}
.menu-btn{display:none;align-items:center;gap:12px;min-height:46px;padding:0 18px;border:2px solid var(--navy);border-radius:999px;background:transparent;color:var(--navy);font:650 15px/1 var(--font);cursor:pointer;transition:background-color .3s,color .3s}
.menu-btn:hover,body.menu-open .menu-btn{background:var(--navy);color:#fff}
.menu-btn__bars{position:relative;width:20px;height:14px}
.menu-btn__bars i{position:absolute;left:0;right:0;height:2px;border-radius:2px;background:currentColor;transition:transform .45s var(--ease),opacity .25s}
.menu-btn__bars i:nth-child(1){top:0}
.menu-btn__bars i:nth-child(2){top:6px}
.menu-btn__bars i:nth-child(3){top:12px}
body.menu-open .menu-btn__bars i:nth-child(1){transform:translateY(6px) rotate(45deg)}
body.menu-open .menu-btn__bars i:nth-child(2){opacity:0}
body.menu-open .menu-btn__bars i:nth-child(3){transform:translateY(-6px) rotate(-45deg)}

/* pannello del menu su telefono e tablet */
.menu-panel{position:fixed;inset:0;z-index:45;display:none;flex-direction:column;background:#fff;color:var(--navy);padding:calc(var(--bar) + 16px) clamp(20px,5vw,48px) 28px;overflow-y:auto;overscroll-behavior:contain;clip-path:circle(0 at calc(100% - 70px) 38px);visibility:hidden;transition:clip-path .7s var(--ease),visibility 0s .7s}
.menu-panel.is-open{clip-path:circle(150% at calc(100% - 70px) 38px);visibility:visible;transition:clip-path .85s var(--ease),visibility 0s}
.menu-panel__in{width:100%;max-width:680px;margin:0 auto;display:flex;flex-direction:column;gap:28px;flex:1}
.menu-panel ul{list-style:none;margin:0;padding:0}
.menu-panel li a{display:flex;align-items:center;min-height:62px;font-weight:650;font-size:clamp(1.4rem,5.4vw,1.9rem);letter-spacing:-.02em;line-height:1.1;color:var(--navy);text-decoration:none;border-bottom:1px solid var(--line);opacity:0;transform:translateY(18px);transition:opacity .5s var(--ease),transform .6s var(--ease),color .3s}
.menu-panel li a[aria-current],.menu-panel li a:hover{color:var(--blue)}
.menu-panel.is-open li a{opacity:1;transform:none;transition-delay:calc(var(--i,0) * 50ms + .3s)}
.menu-panel .menu-panel__rsa{color:var(--blue)}
.menu-panel__foot{display:flex;flex-direction:column;gap:16px;margin-top:auto;padding-top:8px}
.menu-panel__appt{display:flex;align-items:center;gap:10px;font:600 17px/1.3 var(--font);color:var(--muted)}
.menu-panel__appt .ic{width:20px;height:20px;color:var(--blue)}

/* ---------- tendina di vetri tra le pagine ---------- */
.curtain{position:fixed;inset:0;z-index:200;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));pointer-events:none;visibility:hidden}
.curtain i{display:block;background:var(--blue);margin-inline:-1px;transform:translateY(-101%)}
.curtain__logo{position:absolute;left:50%;top:50%;width:72px;height:72px;margin:-36px 0 0 -36px;color:#fff;opacity:0;transform:scale(.6) rotate(-12deg);transition:opacity .3s,transform .6s var(--ease)}
.curtain__logo svg{width:100%;height:100%}
.curtain.is-leaving{visibility:visible;pointer-events:auto}
.curtain.is-leaving i{transform:none;transition:transform .46s var(--ease-io)}
.curtain.is-leaving i:nth-child(2){transition-delay:.05s}
.curtain.is-leaving i:nth-child(3){transition-delay:.1s}
.curtain.is-leaving i:nth-child(4){transition-delay:.15s}
.curtain.is-leaving .curtain__logo{opacity:1;transform:none;transition-delay:.3s}
html.curtain-cover .curtain{visibility:visible;animation:curtain-failsafe .01s linear 3.4s forwards}
html.curtain-cover .curtain i{transform:none}
html.curtain-cover .curtain__logo{opacity:1;transform:none}
.curtain.is-entering{visibility:visible}
.curtain.is-entering i{transform:translateY(101%);transition:transform .56s var(--ease-io)}
.curtain.is-entering i:nth-child(2){transition-delay:.05s}
.curtain.is-entering i:nth-child(3){transition-delay:.1s}
.curtain.is-entering i:nth-child(4){transition-delay:.15s}
.curtain.is-entering .curtain__logo{opacity:0;transform:scale(1.5);transition:opacity .25s,transform .5s var(--ease)}
@keyframes curtain-failsafe{to{visibility:hidden}}

/* ---------- hero a tutto schermo: foto con velo, titolo a sinistra ---------- */
.hero{--sy:0;--mx:0;--my:0;position:relative;isolation:isolate;display:flex;flex-direction:column;min-height:100vh;min-height:100svh;padding-top:var(--hdr);color:#fff;background:var(--navy);overflow:hidden}
.hero--page{min-height:clamp(520px,72svh,760px)}
.hero__media{position:absolute;inset:0;z-index:-1;background:radial-gradient(120% 95% at 76% 38%,#2F5BD0 0%,#1F3FA3 38%,#0E1F5C 100%)}
.hero__layer{position:absolute;inset:-6% -4%;will-change:transform;transform:translate3d(calc(var(--mx) * var(--k,0) * 1px),calc(var(--sy) * var(--d,0) * 1px + var(--my) * var(--k,0) * 1px),0)}
.hero__layer--photo{inset:-10% 0}
.hero__photo{width:100%;height:100%;object-fit:cover}
.hero__xray{background:url(../img/xray-implants.svg) 72% 50%/cover no-repeat;opacity:.5}
.hero--page .hero__xray{background-image:url(../img/xray.svg)}
.hero__scrim{position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,23,68,.94) 0%,rgba(10,23,68,.86) 38%,rgba(10,23,68,.6) 60%,rgba(10,23,68,.3) 82%,rgba(10,23,68,.2) 100%),linear-gradient(0deg,rgba(10,23,68,.55) 0%,rgba(10,23,68,0) 38%)}
.hero__grid{flex:1;display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(24px,4vw,64px);align-items:center;padding-top:clamp(20px,4vh,48px);padding-bottom:clamp(32px,6vh,72px)}
.hero__copy{position:relative;z-index:2;min-width:0;transform:translate3d(0,calc(var(--sy) * -.05px),0)}
.hero__title{color:#fff;font-weight:700;font-size:clamp(2.2rem,min(4.6vw,8.6vh),4.5rem);line-height:1.04;letter-spacing:-.03em;max-width:15ch}
.hero--page .hero__title{font-size:clamp(2rem,min(4vw,7.4vh),3.9rem);max-width:26ch}
.hero__title mark{color:var(--accent)}
.hero__lead{color:#E2EBFA;margin-top:clamp(16px,2.6vh,26px);max-width:46ch;font-size:clamp(1.1rem,1.45vw,1.28rem)}
.hero__calls{margin-top:clamp(20px,3.6vh,34px)}
.hero__appt{display:flex;flex-wrap:wrap;align-items:center;gap:6px 18px;margin-top:clamp(18px,3vh,28px);font-weight:600;font-size:1.05rem;color:#fff}
.hero__appt .ic{width:20px;height:20px;color:var(--accent)}
.hero__appt span{display:inline-flex;align-items:center;gap:10px}
.hero__appt a{color:#fff;text-decoration:underline;text-decoration-color:var(--accent);text-decoration-thickness:2px;text-underline-offset:5px;transition:color .3s,text-underline-offset .4s var(--ease)}
.hero__appt a:hover{color:var(--accent);text-underline-offset:8px}
.hero__side{position:relative;align-self:end;display:flex;justify-content:flex-end;min-width:0}
.hero__card{position:relative;z-index:3;translate:0 calc(var(--sy) * -.1px);display:flex;flex-direction:column;align-items:flex-start;gap:12px;width:clamp(240px,24vw,320px);padding:20px 22px 18px;border-radius:22px;background:#fff;color:var(--navy);text-decoration:none;box-shadow:var(--shadow-m);container-type:inline-size;transition:transform .6s var(--ease),box-shadow .6s var(--ease)}
.hero__card b{font-weight:650;font-size:1.06rem;line-height:1.3}
.hero__card .free-pill{font-size:1.45rem;white-space:nowrap}
.hero__more{display:inline-flex;align-items:center;gap:8px;font-weight:650;font-size:1rem;color:var(--blue)}
.hero__more .ic{width:18px;height:18px;transition:transform .45s var(--ease)}
/* pittogramma grande, solo quando la pagina non ha foto */
.hero__pict{position:relative;width:min(100%,420px);aspect-ratio:1;display:grid;place-items:center;color:#fff;transform:translate3d(calc(var(--mx) * 16px),calc(var(--sy) * -.1px + var(--my) * 16px),0)}
.hero__pict::before{content:"";position:absolute;width:74%;aspect-ratio:1;border-radius:50%;border:1px solid rgba(255,255,255,.26);background:radial-gradient(circle,rgba(255,255,255,.14),rgba(255,255,255,0) 70%)}
.hero__pict::after{content:"";position:absolute;width:92%;aspect-ratio:1;border-radius:50%;border:1px solid rgba(255,255,255,.12)}
.hero__pict .pict{position:relative;width:58%;height:58%;stroke-width:1.5;filter:drop-shadow(0 0 14px rgba(137,207,240,.6))}

/* parole del titolo che salgono */
.js .hero .w{display:inline-block;overflow:hidden;vertical-align:top;padding-top:.14em;margin-top:-.14em;padding-bottom:.1em;margin-bottom:-.1em}
.js .hero .w>span{display:inline-block;transform:translateY(112%);animation:word-up 1s var(--ease) calc(.18s + var(--i,0) * .07s) forwards}
html.curtain-cover .hero .w>span{animation-play-state:paused}
@keyframes word-up{to{transform:none}}

/* pittogrammi a linea: si disegnano da soli */
.pict--draw [pathLength]{stroke-dasharray:1;stroke-dashoffset:1;opacity:0;animation:draw 2s var(--ease) .5s forwards}
.pict--draw>:nth-child(2){animation-delay:.8s}
.pict--draw>:nth-child(3){animation-delay:1.1s}
.pict--draw>:nth-child(4){animation-delay:1.35s}
.pict--draw>:nth-child(n+5){animation-delay:1.55s}
html.curtain-cover .pict--draw [pathLength]{animation-play-state:paused}
@keyframes draw{0%{stroke-dashoffset:1;opacity:0}6%{opacity:1}100%{stroke-dashoffset:0;opacity:1}}
.pict [pathLength]{stroke-dasharray:1;stroke-dashoffset:0}

/* ---------- elenco trattamenti ---------- */
.dir{list-style:none;margin:clamp(36px,4vw,56px) 0 0;padding:0;border-top:1px solid var(--line)}
.dir li{border-bottom:1px solid var(--line)}
.dir a{position:relative;isolation:isolate;display:grid;grid-template-columns:56px minmax(0,1.1fr) minmax(0,1fr) 52px;gap:8px 32px;align-items:center;padding:30px 16px;margin:0 -16px;text-decoration:none;color:inherit;border-radius:var(--r-m)}
.dir a::before{content:"";position:absolute;inset:0;z-index:-1;border-radius:var(--r-m);background:var(--surface);opacity:0;transform:scale(.985);transition:opacity .45s var(--ease),transform .6s var(--ease)}
.dir a:focus-visible::before{opacity:1;transform:none}
.dir .pict{width:52px;height:52px;stroke-width:2.1;color:var(--blue);transition:transform .6s var(--ease)}
.dir__t{font-weight:650;font-size:clamp(1.5rem,2.5vw,2.15rem);line-height:1.1;letter-spacing:-.025em;color:var(--navy);overflow-wrap:anywhere;transition:transform .6s var(--ease),color .3s}
.dir__d{font-size:1.15rem;line-height:1.55;color:var(--muted)}
.go{width:52px;height:52px;border-radius:50%;border:1.5px solid var(--line);display:grid;place-items:center;color:var(--blue);background:#fff;transition:background-color .35s,border-color .35s,color .35s,transform .55s var(--ease)}
.go .ic{width:22px;height:22px}

/* ---------- offerte: pannelli arrotondati come nelle vetrine ---------- */
.window{display:grid;gap:12px;background:var(--surface2);padding:12px;border-radius:calc(var(--r-l) + 8px);margin-top:clamp(32px,4vw,52px)}
.split>.window{margin-top:0}
.window--4,.window--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.window--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.window--1{grid-template-columns:minmax(0,1fr)}
.winpane{position:relative;display:grid;border-radius:var(--r-l);overflow:hidden}
.offer{position:relative;z-index:1;container-type:inline-size;background:#fff;border:2px solid var(--blue);border-radius:var(--r-l);padding:clamp(24px,3vw,40px) clamp(20px,2.4vw,32px);text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-height:320px;overflow:hidden;transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) translateY(var(--lift,0px));transition:box-shadow .5s var(--ease),border-color .4s,transform .6s var(--ease);will-change:transform}
.offer::after{content:"";position:absolute;top:0;bottom:0;left:-60%;width:220%;pointer-events:none;opacity:0;background:linear-gradient(112deg,transparent 0 42%,rgba(31,63,163,.06) 42% 48%,transparent 48% 54%,rgba(31,63,163,.035) 54% 58%,transparent 58%);transform:translateX(-8%);transition:transform 1.3s var(--ease),opacity .5s}
.offer.is-tilting{transition:box-shadow .5s var(--ease),border-color .4s,transform .12s linear}
.offer>*{position:relative;z-index:1}
.offer h3{font-size:clamp(1.15rem,7.4cqi,1.6rem);line-height:1.2;font-weight:650;letter-spacing:-.015em;max-width:20ch}
.from{font-weight:600;font-size:16px;letter-spacing:.02em;color:var(--muted)}
.price{font-weight:800;font-size:clamp(2.4rem,15cqi,3.9rem);white-space:nowrap;line-height:1;color:var(--blue);letter-spacing:-.035em;font-variant-numeric:tabular-nums;transition:transform .6s var(--ease)}
.offer p{font-size:1.15rem;line-height:1.5;color:var(--muted);max-width:30ch}
.offer p b{color:var(--navy);font-weight:650}

/* ---------- foto: arco, cerchio, rettangolo; segnaposto discreti ---------- */
.photo{position:relative;margin:0}
.photo__frame{position:relative;overflow:hidden;border-radius:var(--r-l);aspect-ratio:4/3;background:var(--surface2);box-shadow:0 0 0 1px rgba(14,31,92,.08),var(--shadow-m);isolation:isolate;transition:box-shadow .6s var(--ease)}
.photo__img{width:100%;height:100%;object-fit:cover;transform:translate3d(0,calc(var(--o,0) * 1px),0) scale(1.12);will-change:transform}
.photo figcaption{margin-top:14px;font-size:1.05rem;font-weight:600;color:var(--muted)}
.photo--arch .photo__frame{border-radius:999px 999px var(--r-l) var(--r-l);aspect-ratio:3/4}
.photo--round .photo__frame{border-radius:50%;aspect-ratio:1}
.photo--tall .photo__frame{aspect-ratio:4/5}
.split--photo{align-items:center}
.photo--round figcaption{text-align:center}
.photo .photo__frame>.ph{position:absolute;inset:0}
.photo--arch .ph{justify-content:flex-start;padding-top:34%}
.photo--round .ph{padding:12px}
.photo--round .ph small{display:none}
.ph{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:18px;text-align:center;color:var(--blue);background:linear-gradient(150deg,#EEF4FD 0%,#DCE7FA 100%);width:100%;height:100%}
.ph .ic{width:34px;height:34px;stroke-width:1.6;opacity:.9}
.ph__t{font-weight:650;font-size:1.05rem;line-height:1.3;color:var(--navy);max-width:18ch}
.ph small{font-size:15.5px;font-weight:500;color:var(--muted);line-height:1.35;max-width:20ch}
.single{max-width:600px}
.gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(18px,3vw,40px);margin-top:clamp(32px,4vw,52px)}
.gallery .photo:nth-child(2){margin-top:clamp(20px,4vw,56px)}

/* ---------- fascia in parallax ---------- */
.band{position:relative;isolation:isolate;overflow:hidden;background:var(--navy);color:#fff;padding:clamp(88px,11vw,164px) 0}
.band__bg{position:absolute;top:-20%;bottom:-20%;right:0;width:min(60%,920px);z-index:-2;will-change:transform;transform:translate3d(0,calc(var(--o,0) * 1px),0);-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 38%);mask-image:linear-gradient(90deg,transparent 0,#000 38%)}
.band__img{width:100%;height:100%;object-fit:cover;object-position:85% 50%}
.band::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(10,23,68,.96),rgba(10,23,68,.9) 46%,rgba(10,23,68,.4) 76%,rgba(10,23,68,.08))}
.band h2{color:#fff;font-size:clamp(1.9rem,3.6vw,3.2rem);max-width:19ch}
.band p{margin-top:18px;max-width:46ch;font-size:clamp(1.1rem,1.5vw,1.28rem);color:#DCE6FA}
.band p.is-long{max-width:62ch;font-size:clamp(1.05rem,1.25vw,1.18rem);line-height:1.65}
.band .btns{margin-top:32px}
.band .btn{border-color:#fff;color:#fff;background:transparent}
.band .btn::before{background:#fff}
.band .btn.light{background:#fff;border-color:#fff;color:var(--navy)}
.band .btn.light::before{background:var(--surface2)}

/* ---------- studi e mappe ---------- */
.sedi{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(28px,4vw,56px);margin-top:clamp(32px,4vw,52px)}
.sede{display:flex;flex-direction:column;gap:18px}
.map{position:relative;margin:0;border-radius:var(--r-l);overflow:hidden;background:var(--surface2);aspect-ratio:16/9;box-shadow:var(--shadow-s);transition:box-shadow .6s var(--ease),transform .6s var(--ease)}
.map img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease)}
.map iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.tag{position:absolute;left:14px;bottom:14px;background:#fff;border-radius:999px;padding:4px 14px;font-weight:600;font-size:15.5px;line-height:1.5;color:var(--muted);box-shadow:var(--shadow-s)}
.map__btn{position:absolute;right:14px;bottom:14px;display:inline-flex;align-items:center;gap:10px;min-height:46px;padding:0 20px 0 14px;border:0;border-radius:999px;background:#fff;color:var(--navy);font:650 15px/1.2 var(--font);cursor:pointer;box-shadow:var(--shadow-s);transition:background-color .3s,color .3s,transform .45s var(--ease)}
.map__btn .ic{width:22px;height:22px;color:var(--blue);transition:color .3s}
.map.is-live .tag,.map.is-live .map__btn{display:none}
.sede h3{font-size:clamp(1.5rem,2.4vw,2rem)}
.sede address{font-style:normal;font-size:1.15rem;font-weight:600;line-height:1.45;color:var(--navy)}
.sede address small{display:block;font-size:1.15rem;font-weight:400;color:var(--muted)}

/* ---------- visite domiciliari in RSA ---------- */
.rsa{background:var(--surface2);padding:clamp(56px,6vw,96px) 0}
.rsa__grid{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:clamp(24px,4vw,64px);align-items:center}
.rsa h2{font-size:clamp(1.85rem,3.2vw,2.7rem)}
.rsa__icon{width:clamp(92px,9vw,128px);aspect-ratio:1;border-radius:50%;background:var(--blue);color:#fff;display:grid;place-items:center;overflow:hidden}
.rsa__icon .pict{width:56%;height:56%;stroke-width:2}
.rsa__icon img{width:100%;height:100%;object-fit:cover}
.rsa p{margin-top:14px;max-width:52ch;color:var(--muted);font-size:1.1rem}
.rsa .call{background:var(--navy);color:#fff}
.rsa .call .ic{background:var(--accent);color:var(--navy)}

/* ---------- capitoli dei trattamenti ---------- */
.cols{display:grid;grid-template-columns:minmax(0,1fr) 350px;gap:clamp(36px,5vw,80px);align-items:start}
.chapter{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(20px,4vw,64px);padding:clamp(36px,4.6vw,68px) 0;border-top:1px solid var(--line)}
.chapter:first-child{border-top:0;padding-top:0}
.chapter h2{font-size:clamp(1.45rem,2.3vw,2.05rem)}
.chapter--intro{grid-template-columns:minmax(0,1fr)}
.chapter--intro .prose{max-width:68ch}
.chapter--intro .prose>p{font-size:1.2rem;line-height:1.65;color:var(--ink)}
.prose .prose__after{margin-top:24px}
.pane--intro{padding-bottom:clamp(36px,4vw,64px)}
.pane--features{padding-top:clamp(28px,3vw,52px)}
.features{display:grid;gap:clamp(64px,8vw,128px)}
.feature{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(32px,6vw,96px);align-items:center}
.feature--flip{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr)}
.feature--flip .feature__photo{order:-1}
.feature--solo{grid-template-columns:minmax(0,1fr)}
.feature--solo .feature__text{max-width:68ch}
.feature h2{font-size:clamp(1.6rem,2.6vw,2.3rem);margin-bottom:22px}
.feature .prose{max-width:60ch}
.feature__photo{min-width:0}
.prose{max-width:62ch}
.prose--wide{max-width:76ch}
.prose p+p{margin-top:1.1em}
.prose>p+.three,.prose>p+.checks{margin-top:28px}
.three{display:grid;grid-template-columns:minmax(0,1fr);border:1px solid var(--line);border-radius:var(--r-m);overflow:hidden;background:#fff}
.three>div{padding:18px 24px;display:grid;gap:4px;border-top:1px solid var(--line);transition:background-color .35s,padding-left .55s var(--ease)}
.three>div:first-child{border-top:0}
.three h3{font-size:1.2rem}
.three p{font-size:1.15rem;line-height:1.5;color:var(--muted)}
.checks{list-style:none;margin:0;padding:0;display:grid}
.checks li{display:flex;align-items:center;gap:14px;padding:14px 4px;border-bottom:1px solid var(--line);font-weight:600;line-height:1.35;transition:padding-left .5s var(--ease),color .3s}
.checks li:first-child{border-top:1px solid var(--line)}
.checks .ic{width:32px;height:32px;padding:7px;border-radius:50%;background:var(--surface2);color:var(--blue)}
.aside{position:sticky;top:calc(var(--bar) + 24px);display:flex;flex-direction:column;gap:18px}
.dark-card{background:var(--navy);color:#fff;border-radius:var(--r-l);padding:30px;display:flex;flex-direction:column;gap:16px;box-shadow:var(--shadow-m)}
.dark-card h3{color:#fff;font-size:1.35rem}
.dark-card .call{width:100%}
.dark-card .btn{width:100%}
.btn.ghost{border-color:rgba(255,255,255,.55);color:#fff}
.btn.ghost::before{background:#fff}
.aside__note{font-size:1rem;color:var(--muted);padding:0 6px}

/* ---------- modulo contatti ---------- */
.card-form{border:1px solid var(--line);border-radius:var(--r-l);padding:clamp(26px,4vw,52px);background:#fff;box-shadow:var(--shadow-s)}
.card-form h2{font-size:clamp(1.6rem,2.6vw,2.2rem);margin-bottom:10px}
.card-form__intro{color:var(--muted);margin-bottom:26px}
.form{display:grid;gap:20px}
.row2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px}
.fld{display:flex;flex-direction:column;gap:8px;min-width:0}
.fld label{font-weight:650;font-size:16.5px;color:var(--navy)}
.fld input[type=text],.fld input[type=email],.fld input[type=tel],.fld select,.fld textarea{font:inherit;font-family:var(--font);font-weight:400;font-size:1.05rem;color:var(--ink);min-height:56px;padding:0 18px;background:#fff;border:1.5px solid #BFD0F0;border-radius:14px;width:100%;min-width:0;transition:border-color .3s,box-shadow .3s,background-color .3s}
.fld select{appearance:none;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='12' viewBox='0 0 20 12' fill='none' stroke='%231F3FA3' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 2l8 8 8-8'/%3E%3C/svg%3E") no-repeat right 18px center;padding-right:50px}
.fld textarea{padding:14px 18px;min-height:160px;resize:vertical}
.fld input:hover,.fld select:hover,.fld textarea:hover{border-color:var(--blue)}
.fld input:focus,.fld select:focus,.fld textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 4px rgba(31,63,163,.18)}
.fld.is-invalid input,.fld.is-invalid select,.fld.is-invalid textarea{border-color:#B3261E;box-shadow:0 0 0 4px rgba(179,38,30,.12)}
.fld__error{font-size:1.05rem;font-weight:600;color:#B3261E;line-height:1.35}
.chk{flex-direction:row;align-items:flex-start;gap:14px;min-height:44px}
.chk label{font-weight:400;font-size:1.15rem;color:var(--ink);line-height:1.5;cursor:pointer}
.chk input{width:24px;height:24px;margin:3px 0 0;flex:none;accent-color:var(--blue);cursor:pointer}
.help{font-size:1.15rem;line-height:1.55;color:var(--muted)}
.help a{font-weight:650;color:var(--blue)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form__status{margin:0 0 24px;padding:16px 20px;border-radius:16px;font-weight:600;font-size:1.05rem;line-height:1.45}
.form__status[hidden]{display:none}
.form__status p{display:flex;align-items:flex-start;gap:12px}
.form__status .ic{width:30px;height:30px;padding:6px;border-radius:50%;background:var(--blue);color:#fff;flex:none}
.form__status.is-ok{background:var(--surface2);color:var(--navy)}
.form__status.is-err{background:#FDECEA;color:#5F130F}
.btn[disabled]{opacity:.7;cursor:progress}

/* ---------- piè di pagina e barra di chiamata ---------- */
.foot{background:var(--navy);color:#C9D6F3;padding:72px 0 30px;font-size:1.15rem}
.foot__grid{display:grid;grid-template-columns:1.2fr 1fr 1fr 1.2fr;gap:40px}
.foot h4{color:var(--accent);font-size:16px;font-weight:700;letter-spacing:0;margin-bottom:14px}
.foot a{display:block;text-decoration:none;padding:7px 0;min-height:44px;transition:color .3s,transform .4s var(--ease)}
.foot a b{display:block;font-weight:800;font-size:1.2rem;letter-spacing:-.005em;color:var(--accent);white-space:nowrap;font-variant-numeric:tabular-nums}
.foot a small{display:block;font-size:1rem;line-height:1.2;color:#9FB2DD}
.foot .lockup{display:flex;margin-bottom:16px;padding:0;color:#fff;min-height:0}
.foot .lockup b{display:block;color:#fff;font-size:1.4rem;font-weight:800;letter-spacing:-.02em;white-space:nowrap}
.foot .lockup__tooth{color:#fff}
.foot .lockup__img{height:52px}
.foot .lockup i{color:#9FB2DD}
.foot p{line-height:1.6}
.foot__mail{overflow-wrap:anywhere}
.legal{display:flex;flex-wrap:wrap;gap:8px 28px;justify-content:space-between;margin-top:48px;padding-top:24px;border-top:1px solid rgba(201,214,243,.22);font-size:1rem;color:#9FB2DD}
.legal a{display:inline-block;min-height:0;padding:0;text-decoration:underline}
.callbar{display:none}

/* ---------- articoli e pagine generiche ---------- */
.entry h2{font-size:clamp(1.5rem,2.5vw,2.1rem);margin:1.6em 0 .5em}
.entry h3{font-size:clamp(1.2rem,2vw,1.5rem);margin:1.4em 0 .5em}
.entry p,.entry ul,.entry ol{margin:0 0 1.1em}
.entry a{color:var(--blue);font-weight:650}
.entry img{border-radius:var(--r-m)}
.posts{display:grid;gap:36px}
.post-card h2{font-size:clamp(1.5rem,2.5vw,2rem)}
.post-card h2 a{text-decoration:none}
.post-card__meta{margin:8px 0 12px;color:var(--muted)}
.pane--content .prose{margin:0 auto}

/* ---------- animazioni di entrata ---------- */
.js [data-reveal]{opacity:0;transform:translate3d(0,30px,0);transition:opacity 1s var(--ease),transform 1s var(--ease)}
.js [data-reveal].is-in{opacity:1;transform:none}
.js [data-reveal="pane"]{opacity:0;transform:none;clip-path:inset(0 calc(100% - 2px) 0 0);transition:clip-path 1.2s var(--ease),opacity .01s}
.js [data-reveal="pane"].is-in{opacity:1;clip-path:inset(-70px -70px -100px -70px)}
.js [data-reveal="stagger"]{opacity:1;transform:none}
.js [data-reveal="stagger"]>*{opacity:0;transform:translate3d(0,26px,0);transition:opacity .9s var(--ease),transform .9s var(--ease);transition-delay:calc(var(--i,0) * 90ms)}
.js [data-reveal="stagger"].is-in>*{opacity:1;transform:none}

/* se lo script non parte (bloccato da un plugin di ottimizzazione), dopo 4 secondi tutto si mostra comunque */
html.js:not(.is-ready) [data-reveal]:not(.is-in){animation:reveal-failsafe .6s var(--ease) 4s forwards}
html.js:not(.is-ready) [data-reveal="pane"]:not(.is-in){animation-name:reveal-failsafe-pane}
html.js:not(.is-ready) [data-reveal="stagger"]:not(.is-in)>*{animation:reveal-failsafe .6s var(--ease) 4s forwards}
@keyframes reveal-failsafe{to{opacity:1;transform:none}}
@keyframes reveal-failsafe-pane{to{opacity:1;clip-path:inset(-70px -70px -100px -70px)}}

/* ---------- tablet e telefono ---------- */
@media (min-width:1280px){
  .bar__cta{display:inline-flex}
}
@media (min-width:1240px){
  .menu-panel{display:none!important}
}
@media (max-width:1239px){
  .nav{display:none}
  .menu-btn{display:inline-flex}
  .menu-panel{display:flex}
}
@media (max-width:1100px){
  .rsa__grid{grid-template-columns:auto minmax(0,1fr)}
  .rsa__calls{grid-column:1/-1}
  .rsa .calls--stack{flex-direction:row;flex-wrap:wrap}
  .foot__grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .cols{grid-template-columns:minmax(0,1fr)}
  .aside{position:static}
}
@media (max-width:900px){
  .hero__grid{grid-template-columns:minmax(0,1fr);gap:22px;align-items:start;align-content:end}
  .hero--page{min-height:clamp(580px,88svh,780px)}
  .hero__layer--photo{inset:var(--hdr) 0 auto 0;height:440px;height:min(50svh,440px);-webkit-mask-image:linear-gradient(180deg,#000 0,#000 55%,transparent 100%);mask-image:linear-gradient(180deg,#000 0,#000 55%,transparent 100%)}
  .hero__copy::before{content:"";position:absolute;z-index:-1;inset:-150px -100vw -56px;pointer-events:none;background:linear-gradient(180deg,rgba(10,23,68,0) 0,rgba(10,23,68,.58) 150px,rgba(10,23,68,.76) 100%)}
  .hero__scrim{background:linear-gradient(180deg,rgba(10,23,68,.3) 0%,rgba(10,23,68,.04) 18%,rgba(10,23,68,.1) 40%,rgba(10,23,68,.3) 70%,rgba(10,23,68,.45) 100%)}
  .hero__side{justify-content:flex-start}
  .hero__card{width:min(100%,340px);padding:16px 18px 14px;gap:8px;translate:none}
  .hero__card b{font-size:1rem}
  .hero__card .free-pill{font-size:1.2rem;padding:5px 16px}
  .hero__card .price{font-size:2.2rem}
  .hero__pict{width:min(70%,300px)}
  .dir a{grid-template-columns:48px minmax(0,1fr) 48px;gap:6px 18px;padding:22px 12px}
  .dir .pict{width:44px;height:44px}
  .dir__d{grid-column:2/3;grid-row:2}
  .go{grid-column:3;grid-row:1/3;width:46px;height:46px}
  .chapter{grid-template-columns:minmax(0,1fr)}
  .feature,.feature--flip{grid-template-columns:minmax(0,1fr);gap:28px}
  .feature--flip .feature__photo{order:0}
  .feature__photo{max-width:480px}
  .split{grid-template-columns:minmax(0,1fr)}
  .split.flip>:first-child{order:0}
  .photo--tall .photo__frame{aspect-ratio:4/3}
  .sedi{grid-template-columns:minmax(0,1fr)}
  .gallery{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
}
@media (max-width:760px){
  :root{--strip:0px;--bar:66px}
  .lockup__img{height:30px}
  .foot .lockup__img{height:44px}
  body{font-size:18px}
  .strip{display:none}
  .lockup i{display:none}
  .window,.window--4,.window--3,.window--2,.window--1{grid-template-columns:minmax(0,1fr)}
  .offer{min-height:0}
  .gallery{grid-template-columns:minmax(0,1fr)}
  .gallery .photo:nth-child(2){margin-top:0}
  .row2{grid-template-columns:minmax(0,1fr)}
  .rsa__grid{grid-template-columns:minmax(0,1fr)}
  .rsa .calls--stack{flex-direction:column}
  .foot__grid{grid-template-columns:minmax(0,1fr)}
  .calls{flex-direction:column;align-items:stretch}
  .hero .calls .call{width:100%}
  .hero__side{display:none}
  .band__bg{inset:-12% 0;width:auto;-webkit-mask-image:none;mask-image:none}
  .band::before{background:linear-gradient(180deg,rgba(10,23,68,.68),rgba(10,23,68,.9))}
  .callbar{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;position:fixed;left:0;right:0;bottom:0;z-index:40;padding:10px 10px calc(10px + env(safe-area-inset-bottom));background:var(--navy);border-radius:20px 20px 0 0;box-shadow:0 -10px 30px rgba(14,31,92,.25);visibility:hidden;transform:translateY(110%);transition:transform .6s var(--ease),visibility 0s .6s}
  .callbar.is-visible{visibility:visible;transform:none;transition:transform .6s var(--ease),visibility 0s}
  .callbar a{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60px;border-radius:16px;background:var(--accent);color:var(--navy);text-decoration:none;font-weight:800;font-size:1.1rem;line-height:1.15;text-align:center;font-variant-numeric:tabular-nums;transition:background-color .3s,transform .3s}
  .callbar a:active{transform:scale(.97);background:var(--accent-hi)}
  .callbar small{font-weight:600;font-size:15.5px}
  .foot{padding-bottom:110px}
}
@media (max-width:340px){
  .lockup{gap:10px}
  .lockup__tooth{width:32px;height:32px}
  .lockup b{font-size:1.2rem}
  .menu-btn{padding:0 14px;gap:8px;min-height:44px}
  .call{padding-right:18px}
  .call b{font-size:1.15rem}
  .hero__title{font-size:1.9rem}
}

/* ---------- hover solo con puntatore preciso ---------- */
@media (hover:hover) and (pointer:fine){
  .lockup:hover{transform:translateX(3px)}
  .lockup:hover .lockup__tooth{transform:rotate(-8deg) scale(1.06)}
  .dir a:hover .pict{transform:scale(1.08) rotate(-3deg)}
  .dir a:hover .pict [pathLength]{animation:draw 1s var(--ease) both}
  .dir a:hover .dir__t{transform:translateX(10px);color:var(--blue)}
  .dir a:hover .go{background:var(--blue);border-color:var(--blue);color:#fff;transform:translateX(4px)}
  .winpane:hover .offer{--lift:-6px;box-shadow:0 2px 6px rgba(14,31,92,.06),0 22px 44px rgba(14,31,92,.16)}
  .winpane:hover .offer::after{opacity:1;transform:translateX(14%)}
  .winpane:hover .price{transform:scale(1.05)}
  .winpane:hover .free-pill{transform:scale(1.05)}
  .sede:hover .map{box-shadow:var(--shadow-m);transform:translateY(-4px)}
  .sede:hover .map img{transform:scale(1.05)}
  .three>div:hover{background:var(--surface);padding-left:34px}
  .checks li:hover{padding-left:14px;color:var(--blue)}
  .foot a:hover{color:#fff;transform:translateX(4px)}
  .dir a:hover::before{opacity:1;transform:none}
  .nav a:hover{color:var(--blue)}
  .nav a:hover::after{transform:scaleX(1)}
  .btn:hover::before{transform:none}
  .btn:hover{color:#fff;transform:translateY(-2px)}
  .btn:hover .ic{transform:translateX(4px)}
  .btn.light:hover{color:var(--navy);border-color:var(--surface2)}
  .btn.fill:hover{color:#fff}
  .band .btn:hover{color:var(--navy)}
  .btn.ghost:hover{color:var(--navy)}
  .call:hover{background:var(--accent-hi);transform:translateY(-3px);box-shadow:0 14px 26px rgba(14,31,92,.2)}
  .call:hover .ic{animation:ring .7s ease-in-out}
  .rsa .call:hover{background:var(--blue);color:#fff}
  .hero__card:hover{transform:translateY(-6px);box-shadow:0 4px 10px rgba(14,31,92,.08),0 34px 64px rgba(14,31,92,.22)}
  .hero__card:hover .hero__more .ic{transform:translateX(5px)}
  .map__btn:hover{background:var(--blue);color:#fff;transform:translateY(-3px)}
  .map__btn:hover .ic{color:#fff}
  .photo:hover .photo__frame{box-shadow:0 2px 6px rgba(14,31,92,.08),0 30px 64px rgba(14,31,92,.2)}
}
@keyframes ring{0%,100%{transform:rotate(0)}20%{transform:rotate(-16deg)}40%{transform:rotate(14deg)}60%{transform:rotate(-10deg)}80%{transform:rotate(6deg)}}

/* ---------- chi preferisce meno movimento ---------- */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;animation-delay:0s!important;transition-duration:.001ms!important;transition-delay:0s!important}
  .js [data-reveal],.js [data-reveal="stagger"]>*{opacity:1;transform:none}
  .js [data-reveal="pane"]{clip-path:none}
  .js .hero .w>span{transform:none}
  .hero__layer,.hero__copy,.hero__pict,.band__bg{transform:none!important}
  .hero__card{translate:none!important}
  .photo__img{transform:scale(1.02)!important}
  .curtain{display:none}
}

/* ---------- senza JavaScript ---------- */
html:not(.js) .nav{display:block;flex:1 1 100%}
html:not(.js) .nav ul{flex-wrap:wrap}
html:not(.js) .bar__in{flex-wrap:wrap}
html:not(.js) .menu-btn,html:not(.js) .menu-panel{display:none!important}
html:not(.js) .callbar{visibility:visible;transform:none}
