/* Fisioe — foglio di stile principale (direzione grafica "Movimento") */

:root{
  --bg:#ffffff; --bg-tint:#e9fbfa; --bg-tint-2:#fff3ee;
  --ink:#152840; --muted:#5f7278;
  --teal:#2fb0b3; --teal-deep:#238184; --petrol:#12484a; --coral:#ff7a59; --coral-deep:#f0603f;
  --navy:#1c2c52; --line:rgba(21,40,64,.10); --line-strong:rgba(21,40,64,.18);
  --card:#ffffff; --shadow:0 14px 34px rgba(28,44,82,.10);
  color-scheme: light;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#0d1626; --bg-tint:#122032; --bg-tint-2:#1c1a2e;
    --ink:#f2f5fa; --muted:#93a3ae;
    --teal:#4fd0d2; --teal-deep:#3ba9ab; --petrol:#134f51; --coral:#ff8f72; --coral-deep:#ff7452;
    --navy:#0a1122; --line:rgba(255,255,255,.10); --line-strong:rgba(255,255,255,.18);
    --card:#12213a; --shadow:0 14px 34px rgba(0,0,0,.35);
    color-scheme: dark;
  }
}
:root[data-theme="dark"]{
  --bg:#0d1626; --bg-tint:#122032; --bg-tint-2:#1c1a2e;
  --ink:#f2f5fa; --muted:#93a3ae;
  --teal:#4fd0d2; --teal-deep:#3ba9ab; --petrol:#134f51; --coral:#ff8f72; --coral-deep:#ff7452;
  --navy:#0a1122; --line:rgba(255,255,255,.10); --line-strong:rgba(255,255,255,.18);
  --card:#12213a; --shadow:0 14px 34px rgba(0,0,0,.35);
  color-scheme: dark;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-padding-top:90px}
body{background:var(--bg);color:var(--ink);font-family:"Plus Jakarta Sans",sans-serif;line-height:1.7;overflow-x:hidden}
a{color:inherit;text-decoration:none}
ul{list-style:none}
img{max-width:100%;display:block}
.display,h1,h2,h3{font-family:"Baloo 2","Plus Jakarta Sans",sans-serif}
h1,h2{text-wrap:balance}

.wrap{width:100%;max-width:1240px;margin:0 auto;padding:0 2rem}
.eyebrow{display:inline-flex;align-items:center;gap:.5rem;font-size:.75rem;text-transform:uppercase;letter-spacing:1.5px;color:var(--teal-deep);font-weight:700;background:var(--bg-tint);padding:.4rem 1rem;border-radius:99px}

header.site{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:var(--bg);border-bottom:1px solid var(--line)}
header.site::before{content:"";display:block;height:3px;background:linear-gradient(90deg,var(--teal) 0%,var(--petrol) 50%,var(--teal) 100%)}
.header-azioni{display:flex;align-items:center;gap:.7rem}
.btn-header{white-space:nowrap}
.nav-toggle{display:none;width:44px;height:44px;border-radius:12px;border:1px solid var(--line-strong);background:var(--bg);cursor:pointer;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:0}
.nav-toggle span{display:block;width:20px;height:2px;border-radius:2px;background:var(--navy);transition:transform .2s ease,opacity .2s ease}
:root[data-theme="dark"] .nav-toggle span{background:var(--ink)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .nav-toggle span{background:var(--ink)}}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.header-row{display:flex;align-items:center;justify-content:space-between;padding:.8rem 2rem;max-width:1240px;margin:0 auto;gap:1.5rem}
.logo img{height:56px;width:auto}
.logo-testo{font-family:"Baloo 2";font-size:1.4rem;font-weight:700;color:var(--navy)}
:root[data-theme="dark"] .logo-testo{color:var(--ink)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .logo-testo{color:var(--ink)}}
nav.main ul{display:flex;gap:.25rem;flex-wrap:nowrap}
nav.main a{font-size:.85rem;font-weight:700;color:var(--ink);padding:.6rem .85rem;border-radius:99px;white-space:nowrap}
nav.main a:hover{background:var(--bg-tint);color:var(--teal-deep)}
nav.main a.active{background:var(--teal);color:#fff}

.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.85rem 1.7rem;font-size:.9rem;font-weight:700;border-radius:99px;border:2px solid transparent;cursor:pointer}
.btn-fill{background:linear-gradient(135deg,var(--teal) 0%,var(--petrol) 100%);color:#fff;box-shadow:0 8px 20px rgba(18,72,74,.35)}
.btn-fill:hover{background:linear-gradient(135deg,var(--teal-deep) 0%,var(--petrol) 100%)}
.btn-line{border-color:var(--line-strong);color:var(--ink)}
.btn-line:hover{border-color:var(--teal);color:var(--teal-deep)}
.btn-teal{background:var(--teal);color:#fff;box-shadow:0 8px 20px rgba(47,176,179,.32)}
.btn-teal:hover{background:var(--teal-deep)}

/* dot trail motif, echoes the logo */
.dot-trail{display:flex;align-items:center;gap:.4rem}
.dot-trail span{display:block;border-radius:50%;background:var(--teal)}
.dot-trail span:nth-child(1){width:11px;height:11px}
.dot-trail span:nth-child(2){width:8px;height:8px;opacity:.75}
.dot-trail span:nth-child(3){width:6px;height:6px;opacity:.6;background:var(--petrol)}
.dot-trail span:nth-child(4){width:4px;height:4px;opacity:.5;background:var(--coral)}

/* hero */
.hero{padding:3.5rem 0 2rem;position:relative;overflow:hidden}
.hero .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:3rem;align-items:center;position:relative;z-index:2}
.hero h1{font-weight:700;font-size:clamp(2.3rem,5vw,3.5rem);line-height:1.08;margin:1.1rem 0 1.3rem;color:var(--navy)}
:root[data-theme="dark"] .hero h1{color:var(--ink)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .hero h1{color:var(--ink)}}
.hero h1 span{color:var(--teal)}
.hero p{color:var(--muted);font-size:1.08rem;max-width:480px;margin-bottom:2rem}
.hero-actions{display:flex;gap:1rem;flex-wrap:wrap;margin-bottom:1.6rem}
.hero-photo{position:relative}
.blob{position:absolute;inset:-6% -10% -6% -4%;background:linear-gradient(135deg,var(--teal) 0%,var(--petrol) 100%);border-radius:62% 38% 55% 45% / 45% 55% 45% 55%;z-index:0;opacity:.18}
.hero-photo img{position:relative;z-index:1;width:100%;aspect-ratio:4/4.4;object-fit:cover;border-radius:46% 54% 58% 42% / 52% 44% 56% 48%;box-shadow:var(--shadow)}
/* Box sulla foto: in alto a sinistra, sul bordo curvo, così non copre la didascalia né i pallini del carosello in basso. */
.hero-photo .float-badge{position:absolute;z-index:3;top:12%;left:-8%;max-width:min(320px,86%);background:var(--card);color:var(--ink);border-radius:20px;box-shadow:var(--shadow);padding:1rem 1.3rem;display:flex;align-items:center;gap:.8rem}
.float-badge .dot-trail{flex:none}
.float-badge .dot-trail span:first-child{width:14px;height:14px}
/* Le promozioni stanno tutte nella stessa cella: il box ha l'altezza della più alta e non "salta" quando cambia. */
.badge-slides{display:grid;min-width:0}
.badge-slide{grid-area:1/1;display:block;transition:opacity .45s ease,visibility .45s;color:inherit}
.badge-carousel .badge-slide:not(.is-active){opacity:0;visibility:hidden}
a.badge-slide{border-radius:10px}
a.badge-slide:hover b,a.badge-slide:focus-visible b{color:var(--teal-deep)}
a.badge-slide:focus-visible{outline:2px solid var(--teal);outline-offset:3px}
.float-badge b{display:block;font-family:"Baloo 2";font-size:1rem}
.float-badge small{display:block;color:var(--muted);font-size:.72rem}
.badge-dots{grid-area:2/1;display:flex;gap:.35rem;margin-top:.55rem}
.badge-dots .dot{width:7px;height:7px;padding:0;border:none;border-radius:50%;background:var(--line-strong);cursor:pointer;transition:background .2s ease,width .2s ease}
.badge-dots .dot[aria-selected="true"]{background:var(--teal);width:18px;border-radius:6px}
@media (prefers-reduced-motion:reduce){.badge-slide{transition:none}}

@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
@media (prefers-reduced-motion: no-preference){
  .hero-photo .float-badge{animation:floaty 4.5s ease-in-out infinite}
  .hero-photo .float-badge:hover,.hero-photo .float-badge:focus-within{animation-play-state:paused}
}

/* --- carosello foto hero: "effetto speciale" della foto centrale ---
   Ogni foto resta intera (nessun ritaglio): sotto, la stessa immagine
   sfocata e leggermente ingrandita riempie lo sfondo, sopra la foto
   nitida è centrata per intero (object-fit:contain). Il passaggio tra
   una foto e l'altra è una dissolvenza incrociata con un leggero
   "assestamento" di scala una tantum (niente zoom continuo). */
.hero-carousel{position:relative;z-index:1;width:100%;aspect-ratio:4/4.4;border-radius:46% 54% 58% 42% / 52% 44% 56% 48%;overflow:hidden;box-shadow:var(--shadow)}
.hero-slide{position:absolute;inset:0;margin:0;opacity:0;transition:opacity 1.1s ease;overflow:hidden}
.hero-slide.is-active{opacity:1;z-index:1}
.hero-slide::before{content:"";position:absolute;inset:0;background-image:inherit;background-size:cover;background-position:center;filter:blur(28px) saturate(1.1) brightness(.92);transform:scale(1.15);z-index:0}
.hero-slide img{position:relative;z-index:1;width:100%;height:100%;object-fit:contain;display:block;transform:scale(1.04);transition:transform 1.1s cubic-bezier(.22,.61,.36,1)}
.hero-slide.is-active img{transform:scale(1)}
.hero-slide figcaption{position:absolute;left:0;right:0;bottom:0;padding:1.2rem 2.6rem 2.1rem;text-align:center;background:linear-gradient(0deg,rgba(10,20,20,.6),transparent);color:#fff;font-size:.8rem;font-weight:700;z-index:2}
.hero-carousel-dots{position:absolute;z-index:3;bottom:14px;left:50%;transform:translateX(-50%);display:flex;gap:.5rem}
.hero-carousel-dots .dot{width:9px;height:9px;border-radius:50%;background:rgba(255,255,255,.6);border:2px solid transparent;padding:0;cursor:pointer;transition:width .3s ease,background .3s ease}
.hero-carousel-dots .dot[aria-selected="true"]{background:#fff;width:22px;border-radius:6px}
.hero-carousel-dots .dot:focus-visible{border-color:var(--teal)}
@media (prefers-reduced-motion: reduce){
  .hero-slide{transition:none}
  .hero-slide img{transition:none}
}

.wave{display:block;width:100%;height:auto;margin-top:2rem}

.section{padding:5rem 0}
.section-head{text-align:center;max-width:640px;margin:0 auto 3.2rem}
.section-head h2{font-weight:700;font-size:clamp(1.7rem,3.4vw,2.3rem);margin:.7rem 0 .7rem;color:var(--navy)}
:root[data-theme="dark"] .section-head h2{color:var(--ink)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .section-head h2{color:var(--ink)}}
.section-head p{color:var(--muted);font-size:1rem}

.grid-4{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.6rem}
.card{background:var(--card);border:1px solid var(--line);border-radius:26px;overflow:hidden;box-shadow:var(--shadow);transition:transform .25s ease}
.card:hover{transform:translateY(-6px) rotate(-.4deg)}
.card-img{height:170px;overflow:hidden;position:relative}
.card-img img{width:100%;height:100%;object-fit:cover}
.card-body{padding:1.5rem 1.5rem 1.7rem}
.card-body h3{font-size:1.1rem;margin-bottom:.5rem;color:var(--navy)}
:root[data-theme="dark"] .card-body h3{color:var(--ink)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .card-body h3{color:var(--ink)}}
.card-body p{color:var(--muted);font-size:.87rem;margin-bottom:1rem}
.card-link{font-size:.8rem;font-weight:800;color:var(--teal-deep)}

/* percorso - circular numbered steps */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:1.6rem;position:relative}
.step{text-align:center}
.step .circle{width:64px;height:64px;border-radius:50%;background:linear-gradient(135deg,var(--teal) 0%,var(--teal-deep) 100%);color:#fff;display:flex;align-items:center;justify-content:center;font-family:"Baloo 2";font-size:1.3rem;font-weight:700;margin:0 auto 1.1rem;box-shadow:0 10px 22px rgba(47,176,179,.35)}
.step:nth-child(2) .circle,.step:nth-child(4) .circle{background:linear-gradient(135deg,var(--teal-deep) 0%,var(--petrol) 100%);box-shadow:0 10px 22px rgba(18,72,74,.4)}
.step h4{font-family:"Baloo 2";font-size:1.05rem;margin-bottom:.5rem;color:var(--navy)}
:root[data-theme="dark"] .step h4{color:var(--ink)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .step h4{color:var(--ink)}}
.step p{color:var(--muted);font-size:.85rem}

.grid-therapy{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1.4rem}
.therapy{display:block;color:inherit;background:var(--card);border:1px solid var(--line);border-radius:20px;overflow:hidden;box-shadow:var(--shadow);transition:transform .25s ease}
.therapy:hover{transform:translateY(-5px)}
.therapy-img{height:140px;overflow:hidden;position:relative}
.therapy-img img{width:100%;height:100%;object-fit:cover}
.therapy-body{padding:1.4rem 1.5rem 1.6rem}
.therapy-body h4{font-size:1rem;font-weight:700;margin-bottom:.4rem;color:var(--navy)}
:root[data-theme="dark"] .therapy-body h4{color:var(--ink)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .therapy-body h4{color:var(--ink)}}
.therapy-body p{font-size:.83rem;color:var(--muted)}

/* promo del mese */
.promo-card{display:grid;grid-template-columns:1fr;background:var(--card);border:1px solid var(--line);border-radius:26px;overflow:hidden;box-shadow:var(--shadow);align-items:stretch}
.promo-img{background:var(--bg-tint);border-bottom:1px solid var(--line)}
.promo-img img{width:100%;height:auto;display:block}
.promo-body{padding:2.6rem}
.promo-body h2{font-weight:700;font-size:clamp(1.4rem,2.6vw,1.9rem);margin:.8rem 0 1.1rem;line-height:1.25;color:var(--navy)}
:root[data-theme="dark"] .promo-body h2{color:var(--ink)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .promo-body h2{color:var(--ink)}}
.promo-body h2 span{color:var(--teal-deep)}
.promo-body>p{color:var(--muted);margin-bottom:1.4rem}
.promo-list{margin-bottom:1.8rem}
.promo-list li{display:flex;gap:.9rem;align-items:flex-start;padding:.6rem 0;font-size:.9rem;color:var(--muted)}
.promo-list li .ic{width:26px;height:26px;border-radius:50%;background:var(--bg-tint);color:var(--teal-deep);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.75rem;flex-shrink:0}
@media (max-width:700px){.promo-body{padding:1.6rem}}

/* team */
.team-grid{--colonne:3;--gap:1.6rem;display:flex;flex-wrap:wrap;justify-content:center;gap:var(--gap);align-items:stretch}
.team-card{flex:0 1 calc((100% - (var(--colonne) - 1) * var(--gap)) / var(--colonne));min-width:250px;background:var(--card);border:1px solid var(--line);border-radius:22px;padding:2rem 1.6rem 1.7rem;text-align:center;box-shadow:var(--shadow)}
.team-photo{width:140px;height:140px;border-radius:50%;overflow:hidden;margin:0 auto 1.1rem;border:5px solid var(--bg-tint);box-shadow:0 8px 20px rgba(28,44,82,.12)}
.team-photo img{width:100%;height:100%;object-fit:cover;object-position:center top}
.team-iniziali{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--teal) 0%,var(--petrol) 100%);color:#fff;font-family:"Baloo 2";font-weight:700;font-size:2.4rem;letter-spacing:.04em}
.team-card h3{font-family:"Baloo 2";font-size:1.15rem;line-height:1.3;margin-bottom:.5rem;color:var(--navy)}
:root[data-theme="dark"] .team-card h3{color:var(--ink)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .team-card h3{color:var(--ink)}}
.team-role{display:inline-block;color:var(--teal-deep);background:var(--bg-tint);font-size:.72rem;font-weight:800;padding:.3rem .9rem;border-radius:99px;margin-bottom:1rem}
.team-bio{font-size:.88rem;line-height:1.65;color:var(--muted);text-align:left;hyphens:auto}
/* Le biografie lunghe si mostrano accorciate (con "Leggi tutto" aggiunto da site.js solo se serve). */
.team-bio.is-clamped{display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical;overflow:hidden}
.team-bio-toggle{margin-top:.7rem;background:none;border:none;color:var(--teal-deep);font:inherit;font-size:.82rem;font-weight:800;cursor:pointer;padding:.2rem .4rem;border-radius:6px}
.team-bio-toggle:hover{text-decoration:underline}
@media (max-width:1000px){.team-card{flex-basis:calc((100% - var(--gap)) / 2)}}
@media (max-width:600px){.team-card{flex-basis:100%}}

/* "Il nostro approccio" in Lo Studio: blocchi affiancati con icona (diversi dai punti di forza della home) */
.valori-wrap{margin-top:4rem}
.valori-titolo{text-align:center;font-weight:700;font-size:clamp(1.6rem,3.2vw,2.2rem);margin-bottom:2.2rem;color:var(--navy)}
:root[data-theme="dark"] .valori-titolo{color:var(--ink)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .valori-titolo{color:var(--ink)}}
.valori-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.4rem}
.valore{background:var(--card);border:1px solid var(--line);border-top:4px solid var(--teal);border-radius:22px;padding:1.9rem 1.7rem;box-shadow:var(--shadow)}
.valore-ic{width:50px;height:50px;border-radius:16px;background:var(--bg-tint);color:var(--teal-deep);display:flex;align-items:center;justify-content:center;margin-bottom:1rem}
.valore h3{font-family:"Baloo 2";font-weight:700;font-size:1.2rem;line-height:1.25;color:var(--navy);margin-bottom:.55rem}
:root[data-theme="dark"] .valore h3{color:var(--ink)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .valore h3{color:var(--ink)}}
.valore p{color:var(--muted);font-size:.94rem;line-height:1.8}

.trust{background:var(--bg-tint);padding:2.6rem 0;text-align:center}
.pill-list{display:flex;justify-content:center;gap:1rem;flex-wrap:wrap}
.pill-list b{background:#fff;padding:.6rem 1.4rem;border-radius:99px;font-family:"Baloo 2";font-size:.95rem;color:var(--navy);box-shadow:var(--shadow)}
:root[data-theme="dark"] .pill-list b{color:var(--ink);background:var(--card)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .pill-list b{color:var(--ink);background:var(--card)}}
.trust-titolo{font-size:clamp(1.4rem,3vw,1.8rem);color:var(--navy);margin-bottom:1rem}
:root[data-theme="dark"] .trust-titolo{color:var(--ink)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .trust-titolo{color:var(--ink)}}
.trust-testo{max-width:820px;margin:0 auto 1.8rem;color:var(--muted);font-size:.95rem;line-height:1.8}

.cta-band{background:var(--bg);padding:4.5rem 0;text-align:center}
.cta-band-tinta{background:var(--bg-tint)}
.cta-band h2{font-weight:700;font-size:clamp(1.5rem,3.2vw,2.1rem);margin-bottom:.8rem;color:var(--navy)}
:root[data-theme="dark"] .cta-band h2{color:var(--ink)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .cta-band h2{color:var(--ink)}}
.cta-band p{max-width:640px;margin:0 auto 1.8rem;color:var(--muted);line-height:1.8}
.cta-band-btn{display:flex;justify-content:center;gap:1rem;flex-wrap:wrap}
/* Messaggi in evidenza della homepage: "Perché sei qui?" e punti di forza */
.motivi-grid{--gap:1.4rem;display:flex;flex-wrap:wrap;justify-content:center;gap:var(--gap)}
.motivo{flex:0 1 calc((100% - 2 * var(--gap)) / 3);display:flex;flex-direction:column;align-items:flex-start;gap:.6rem;background:var(--card);border:1px solid var(--line);border-radius:24px;padding:1.9rem 1.8rem 1.6rem;box-shadow:var(--shadow);color:inherit;transition:transform .25s ease,box-shadow .25s ease}
a.motivo:hover{transform:translateY(-4px);box-shadow:0 20px 40px rgba(28,44,82,.16)}
.motivo-ic{width:46px;height:46px;border-radius:50%;background:var(--bg-tint);color:var(--teal-deep);display:flex;align-items:center;justify-content:center;margin-bottom:.4rem}
.motivo h3{font-family:"Baloo 2";font-weight:700;font-size:1.2rem;line-height:1.25;color:var(--navy)}
:root[data-theme="dark"] .motivo h3{color:var(--ink)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .motivo h3{color:var(--ink)}}
.motivo p{color:var(--muted);font-size:.93rem;line-height:1.75}
.motivo-cta{margin-top:auto;padding-top:.4rem;font-size:.85rem;font-weight:800;color:var(--teal-deep)}
a.motivo:hover .motivo-cta{text-decoration:underline}
.motivo-invito{background:linear-gradient(135deg,#238184 0%,#12484a 100%);border-color:transparent;box-shadow:0 14px 30px rgba(18,72,74,.30)}
.motivo-invito .motivo-ic{background:rgba(255,255,255,.18);color:#fff}
.motivo-invito h3,:root[data-theme="dark"] .motivo-invito h3{color:#fff}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .motivo-invito h3{color:#fff}}
.motivo-invito p{color:rgba(255,255,255,.88)}
.motivo-invito .motivo-cta{color:#fff}
@media (max-width:900px){.motivo{flex-basis:calc((100% - var(--gap)) / 2)}}
@media (max-width:600px){.motivo{flex-basis:100%}}

.forza{background:linear-gradient(135deg,#1c2c52 0%,#12484a 100%);padding:5rem 0;color:#fff}
.forza .section-head h2,:root[data-theme="dark"] .forza .section-head h2{color:#fff}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .forza .section-head h2{color:#fff}}
.forza .section-head p{color:#c3cde4}
.forza .eyebrow{background:rgba(255,255,255,.12);color:#bdf3f3}
.forza-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:2.4rem}
.forza-voce{border-top:2px solid rgba(255,255,255,.22);padding-top:1.4rem}
.forza-n{display:block;font-family:"Baloo 2";font-weight:700;font-size:2.4rem;line-height:1;color:var(--teal);margin-bottom:.6rem}
.forza-voce h3{font-family:"Baloo 2";font-weight:700;font-size:1.25rem;color:#fff;margin-bottom:.6rem}
.forza-voce p{color:#c3cde4;font-size:.95rem;line-height:1.8}

.contact{padding:5.5rem 0}
.contact .wrap{display:grid;grid-template-columns:1fr 1fr;gap:3.5rem}
.contact h2{font-weight:700;font-size:clamp(1.7rem,3.4vw,2.3rem);margin-bottom:1.1rem;color:var(--navy)}
:root[data-theme="dark"] .contact h2{color:var(--ink)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .contact h2{color:var(--ink)}}
.contact-testo p{color:var(--muted);margin-bottom:.9rem;line-height:1.8}
.contact-testo a{color:var(--teal-deep);font-weight:700;white-space:nowrap}
.contact-testo a:hover{text-decoration:underline}
.contact-list{margin-top:1.8rem}
.contact-list li{display:flex;align-items:center;gap:1rem;padding:.9rem 0;font-size:.94rem;color:var(--muted)}
.contact-list .ic{width:38px;height:38px;border-radius:50%;background:var(--bg-tint);color:var(--teal-deep);display:flex;align-items:center;justify-content:center;font-weight:800;flex-shrink:0}
.contact-list b{color:var(--navy);display:block}
:root[data-theme="dark"] .contact-list b{color:var(--ink)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .contact-list b{color:var(--ink)}}
.form-box{background:var(--card);border:1px solid var(--line);border-radius:26px;padding:2.2rem;box-shadow:var(--shadow)}
.form-box label{display:block;font-size:.78rem;font-weight:700;color:var(--muted);margin-bottom:.5rem}
.form-box input,.form-box textarea,.form-box select{width:100%;background:var(--bg-tint);border:1.5px solid transparent;color:var(--ink);padding:.85rem 1.1rem;border-radius:14px;margin-bottom:1.1rem;font-family:inherit;font-size:.92rem}
.form-box input:focus,.form-box textarea:focus,.form-box select:focus{outline:none;border-color:var(--teal)}
.form-box textarea{min-height:90px;resize:vertical}
.form-box select{appearance:auto;cursor:pointer}

footer.site{background:linear-gradient(160deg,var(--navy) 0%,var(--petrol) 130%);color:#eef2fb;padding:4.5rem 0 2rem;position:relative;overflow:hidden}
.footer-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:2.5rem;margin-bottom:3rem;position:relative;z-index:1}
.footer-grid h4{font-family:"Baloo 2";font-size:1rem;margin-bottom:1.1rem;color:#fff}
.footer-grid p,.footer-grid li{color:#a8b3d0;font-size:.87rem;margin-bottom:.6rem}
.footer-grid a:hover{color:var(--teal)}
.footer-bottom{border-top:1px solid rgba(255,255,255,.12);padding-top:1.6rem;text-align:center;color:#8592b5;font-size:.78rem;position:relative;z-index:1;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem}
.footer-credito{opacity:.85}
.footer-bottom .footer-credito::before{content:"—";margin-right:.5rem;opacity:.6}
@media (max-width:560px){.footer-bottom{flex-direction:column;gap:.2rem}.footer-bottom .footer-credito::before{content:"";margin-right:0}}

/* pagine interne (chi siamo, specializzazioni, promo, contatti, 404) */
.detail-hero{background:var(--bg-tint);padding:3.5rem 0 3rem;text-align:center}
.detail-hero h1{font-weight:700;font-size:clamp(2rem,4.4vw,2.8rem);margin-top:1rem;color:var(--navy)}
:root[data-theme="dark"] .detail-hero h1{color:var(--ink)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .detail-hero h1{color:var(--ink)}}
.detail-body{padding:4.5rem 0}
.detail-body .wrap{display:grid;grid-template-columns:2fr 1fr;gap:3.5rem;align-items:start}
.detail-text p{color:var(--muted);margin-bottom:1.3rem;font-size:1rem;line-height:1.85}
.detail-text h3{font-family:"Baloo 2";font-size:1.3rem;margin:2rem 0 1.1rem;color:var(--navy)}
:root[data-theme="dark"] .detail-text h3{color:var(--ink)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .detail-text h3{color:var(--ink)}}
.why-list li{display:flex;gap:1rem;padding:1rem 0;border-bottom:1px solid var(--line);color:var(--muted);font-size:.92rem;align-items:flex-start}
.why-list li .ic{width:30px;height:30px;border-radius:50%;background:var(--bg-tint);color:var(--teal-deep);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.85rem;flex-shrink:0}
.side-box{background:var(--bg-tint);border-radius:26px;padding:2.2rem;position:sticky;top:110px}
.side-box h4{font-family:"Baloo 2";font-size:1.15rem;margin-bottom:1rem;color:var(--navy)}
:root[data-theme="dark"] .side-box{background:var(--card)}
:root[data-theme="dark"] .side-box h4{color:var(--ink)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .side-box{background:var(--card)} :root:not([data-theme="light"]) .side-box h4{color:var(--ink)}}
.side-box p{color:var(--muted);font-size:.86rem;margin-bottom:1.3rem}
.side-link li{margin-bottom:.5rem}
.side-link a{color:var(--teal-deep);font-weight:700;font-size:.88rem}
.side-link a:hover{text-decoration:underline}

/* domande frequenti (FAQ) */
.faq-titolo{margin:2.6rem 0 1.2rem;font-size:1.35rem;color:var(--navy)}
:root[data-theme="dark"] .faq-titolo{color:var(--ink)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .faq-titolo{color:var(--ink)}}
.faq{display:flex;flex-direction:column;gap:.8rem}
.faq-voce{background:var(--card);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);overflow:hidden}
.faq-voce summary{cursor:pointer;list-style:none;padding:1.1rem 3.2rem 1.1rem 1.4rem;font-weight:700;color:var(--navy);position:relative;line-height:1.45}
.faq-voce summary::-webkit-details-marker{display:none}
.faq-voce summary::after{content:"+";position:absolute;right:1.3rem;top:50%;transform:translateY(-50%);width:1.7rem;height:1.7rem;border-radius:50%;background:var(--bg-tint);color:var(--teal-deep);display:flex;align-items:center;justify-content:center;font-size:1.2rem;line-height:1}
.faq-voce[open] summary::after{content:"\2212"}
.faq-voce summary:focus-visible{outline:2px solid var(--teal);outline-offset:-2px;border-radius:18px}
.faq-risposta{padding:0 1.4rem 1.2rem}
.faq-risposta p{margin-bottom:.8rem;font-size:.95rem;line-height:1.75}
.faq-risposta p:last-child{margin-bottom:0}
:root[data-theme="dark"] .faq-voce summary{color:var(--ink)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .faq-voce summary{color:var(--ink)}}

[hidden]{display:none!important}
@media (max-width:1120px){
  .nav-toggle{display:inline-flex}
  nav.main{display:none;position:absolute;top:100%;left:0;right:0;background:var(--bg);border-bottom:1px solid var(--line);box-shadow:0 18px 30px rgba(28,44,82,.12);padding:.6rem 2rem 1.2rem}
  nav.main.is-open{display:block}
  nav.main ul{flex-direction:column;align-items:stretch;gap:.2rem}
  nav.main li a{display:block;padding:.85rem .6rem;font-size:1rem;border-radius:12px}
}
@media (max-width:900px){
  .hero-photo .float-badge{left:.6rem;top:6%}
  .hero .wrap,.contact .wrap,.detail-body .wrap{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr 1fr}
}
@media (max-width:700px){
  .logo img{height:42px}
  .header-row{padding:.6rem 1.2rem}
  .wrap{padding:0 1.2rem}
  .section{padding:3.2rem 0}
  .section-head{margin-bottom:2rem}
  .btn-header{padding:.6rem 1.1rem;font-size:.82rem}
  /* Liste di schede: scorrimento orizzontale invece di una colonna lunghissima */
  .scroller{display:flex !important;flex-wrap:nowrap !important;justify-content:flex-start !important;overflow-x:auto;scroll-snap-type:x mandatory;gap:1rem !important;margin:0 -1.2rem;padding:.4rem 1.2rem 1.4rem;scroll-padding:0 1.2rem;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .scroller::-webkit-scrollbar{display:none}
  .scroller>*{flex:0 0 82% !important;max-width:82%;scroll-snap-align:start}
  /* Fasi di "Come funziona": numero a sinistra, testo a destra */
  .step{display:grid;grid-template-columns:52px 1fr;column-gap:1rem;text-align:left;align-items:start}
  .step .circle{width:48px;height:48px;font-size:1.1rem;margin:0;grid-row:1 / span 2}
  .step h4{margin-bottom:.2rem}
  .steps{gap:1.2rem}
}
@media (max-width:560px){
  .steps{grid-template-columns:1fr}
}

/* Testi legali */
.testo-legale{max-width:820px}
.testo-legale h2{font-weight:700;font-size:1.3rem;margin:2rem 0 .7rem;color:var(--navy)}
:root[data-theme="dark"] .testo-legale h2{color:var(--ink)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .testo-legale h2{color:var(--ink)}}
.testo-legale p,.testo-legale li{color:var(--muted);line-height:1.8;margin-bottom:.8rem}
.testo-legale ul{list-style:disc;padding-left:1.4rem;margin-bottom:.8rem}
.testo-legale a{color:var(--teal-deep);font-weight:700}

/* Footer: dati legali e link */
.footer-legale{margin-top:1.2rem;text-align:center;color:#8592b5;font-size:.76rem;line-height:1.6}
.footer-link-legali{margin-top:.8rem;display:flex;flex-wrap:wrap;gap:1.2rem;justify-content:center;font-size:.8rem;position:relative;z-index:1}
.footer-link-legali a,.footer-link-legali .link-btn{color:#a8b3d0}
.footer-link-legali a:hover,.footer-link-legali .link-btn:hover{color:var(--teal)}
.link-btn{background:none;border:none;font:inherit;cursor:pointer;padding:0;text-decoration:underline}

/* Banner cookie */
.banner-cookie{position:fixed;left:1rem;right:1rem;bottom:1rem;z-index:100;max-width:880px;margin:0 auto;background:var(--card);color:var(--ink);border:1px solid var(--line-strong);border-radius:20px;box-shadow:0 20px 50px rgba(10,17,34,.28);padding:1.2rem 1.4rem;display:flex;gap:1.4rem;align-items:center}
.banner-cookie[hidden]{display:none}
.banner-cookie-testo b{font-family:"Baloo 2";font-size:1.05rem;color:var(--navy)}
:root[data-theme="dark"] .banner-cookie-testo b{color:var(--ink)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .banner-cookie-testo b{color:var(--ink)}}
.banner-cookie-testo p{font-size:.82rem;line-height:1.6;color:var(--muted);margin-top:.2rem}
.banner-cookie-testo a{color:var(--teal-deep);font-weight:700;text-decoration:underline}
.banner-cookie-azioni{display:flex;gap:.6rem;flex-shrink:0}
.banner-cookie-azioni .btn{padding:.7rem 1.4rem}
@media (max-width:700px){.banner-cookie{flex-direction:column;align-items:stretch;gap:.9rem;left:.6rem;right:.6rem;bottom:.6rem;padding:1rem}.banner-cookie-azioni .btn{flex:1;justify-content:center}}

/* Consenso privacy nel modulo */
.form-box label.consenso-privacy,.consenso-privacy{display:flex;gap:.7rem;align-items:flex-start;margin:.4rem 0 1.1rem;font-size:.8rem;line-height:1.55;color:var(--muted);font-weight:500}
.consenso-privacy input{width:auto;margin-top:.2rem;flex-shrink:0}
.consenso-privacy a{color:var(--teal-deep);font-weight:700;text-decoration:underline}

/* Mappa caricata su richiesta */
.mappa-box{margin-top:0;background:var(--bg-tint);border:1px solid var(--line);border-radius:20px;padding:2rem 1.4rem;text-align:center;display:flex;flex-direction:column;align-items:center;gap:.9rem;min-height:200px;justify-content:center}
.mappa-box p{color:var(--muted)}
.mappa-box small{color:var(--muted);font-size:.74rem}
.mappa-box small a{color:var(--teal-deep);text-decoration:underline}
.mappa-box.is-caricata{padding:0;overflow:hidden;display:block;min-height:0}
.mappa-box iframe{display:block;width:100%;height:420px;border:0}
.mappa-azioni{display:flex;justify-content:center;gap:.8rem;flex-wrap:wrap;margin-top:1.4rem}
@media (max-width:700px){.mappa-box iframe{height:320px}.mappa-azioni .btn{width:100%;justify-content:center}}

/* Barra di contatto rapido su telefono */
.barra-mobile{display:none}
@media (max-width:700px){
  .barra-mobile{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:60;gap:.6rem;padding:.6rem .8rem calc(.6rem + env(safe-area-inset-bottom,0px));background:var(--bg);border-top:1px solid var(--line-strong);box-shadow:0 -8px 24px rgba(28,44,82,.12)}
  .barra-mobile a{flex:1;display:flex;align-items:center;justify-content:center;gap:.4rem;padding:.8rem;border-radius:99px;font-weight:800;font-size:.95rem}
  .barra-chiama{background:linear-gradient(135deg,var(--teal) 0%,var(--petrol) 100%);color:#fff}
  .barra-wa{background:#25d366;color:#0b3d1e}
  .barra-prenota{background:var(--bg-tint);color:var(--teal-deep);border:2px solid var(--teal)}
  footer.site{padding-bottom:calc(5.2rem + env(safe-area-inset-bottom,0px))}
}

/* Recensioni */
.recensioni-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.4rem}
.recensione{background:var(--card);border:1px solid var(--line);border-radius:22px;padding:1.7rem;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:.9rem}
.recensione .stelle{color:#f5a623;font-size:1.15rem;letter-spacing:.12em}
.recensione blockquote{color:var(--muted);font-size:.93rem;line-height:1.75;flex:1}
.recensione figcaption{font-size:.85rem;color:var(--muted)}
.recensione figcaption b{color:var(--navy)}
:root[data-theme="dark"] .recensione figcaption b{color:var(--ink)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .recensione figcaption b{color:var(--ink)}}
.faq-intro{margin:-.6rem 0 1.2rem;color:var(--muted)}
.mappa-box button{font-family:inherit}

.social-footer{display:flex;gap:.6rem;margin-top:.9rem}
.social-footer a{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;border:1px solid rgba(255,255,255,.28);color:#fff;transition:background .2s,border-color .2s}
.social-footer a:hover,.social-footer a:focus-visible{background:rgba(255,255,255,.14);border-color:#fff}

.recensioni-azioni{display:flex;flex-wrap:wrap;justify-content:center;gap:.8rem;margin-top:1.8rem}

/* Recensioni: carosello (una recensione alla volta, frecce, pallini, scorrimento automatico) */
.rec-carousel{max-width:860px;margin:0 auto;display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"prev view next" ". dots .";align-items:center;column-gap:1.2rem;row-gap:1.2rem}
.rec-viewport{grid-area:view;display:grid;min-width:0}
.rec-slide{grid-area:1/1;align-items:center;text-align:center;justify-content:center;padding:2.2rem 2.4rem;opacity:0;visibility:hidden;transform:translateX(28px);transition:opacity .55s ease,transform .55s ease,visibility 0s linear .55s}
.rec-slide.is-active{opacity:1;visibility:visible;transform:none;transition-delay:0s}
.rec-slide.from-prev{transform:translateX(-28px)}
.rec-slide.is-active.from-prev{transform:none}
.rec-slide blockquote{flex:0 1 auto;font-size:1.02rem;line-height:1.8}
.rec-slide .stelle{font-size:1.3rem}
.rec-prev{grid-area:prev}
.rec-next{grid-area:next}
.rec-dots{grid-area:dots;display:flex;justify-content:center;gap:.5rem}
.rec-dot{width:10px;height:10px;border-radius:50%;border:0;padding:0;background:var(--line-strong);cursor:pointer;transition:background .2s,transform .2s}
.rec-dot.is-active{background:var(--teal);transform:scale(1.25)}
.rec-arrow{width:46px;height:46px;border-radius:50%;border:1px solid var(--line-strong);background:var(--card);color:var(--navy);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:var(--shadow);transition:transform .15s,background .15s,color .15s}
.rec-arrow:hover{background:var(--teal);color:#fff}
.rec-arrow:active{transform:scale(.94)}
.rec-arrow:focus-visible,.rec-dot:focus-visible{outline:2px solid var(--teal);outline-offset:3px}
:root[data-theme="dark"] .rec-arrow{color:var(--ink)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .rec-arrow{color:var(--ink)}}
.rec-carousel.is-js .rec-viewport{overflow:hidden;box-sizing:border-box;padding:6px 8px 28px;margin:-6px -8px -28px;transition:height .45s ease}
.rec-carousel.is-js .rec-slide{align-self:start}
.rec-carousel:not(.is-multi){grid-template-columns:minmax(0,1fr);grid-template-areas:"view"}
@media (max-width:720px){
  .rec-carousel{grid-template-columns:auto 1fr auto;grid-template-areas:"view view view" "prev dots next";column-gap:.6rem}
  .rec-slide{padding:1.6rem 1.3rem}
  .rec-slide blockquote{font-size:.96rem;line-height:1.7}
  .rec-arrow{width:42px;height:42px}
}
@media (prefers-reduced-motion:reduce){.rec-slide{transition:none;transform:none}}

/* Form contatti: richiesta legata a una promozione */
.form-promo{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem .6rem;margin:0 0 1.1rem;padding:.7rem 1rem;border-radius:14px;background:var(--bg-tint);border:1px solid var(--line-strong);font-size:.92rem;color:var(--muted)}
.form-promo b{color:var(--navy)}
.form-promo a{margin-left:auto;font-size:.82rem;text-decoration:underline;color:var(--muted)}
:root[data-theme="dark"] .form-promo b{color:var(--ink)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .form-promo b{color:var(--ink)}}
