/* =========================================================
   WELLBEAT — foglio di stile unico
   Indice
   1. Font
   2. Design token (colori, tipografia, spazi)
   3. Base e reset
   4. Layout (container, sezioni, griglie)
   5. Tipografia
   6. Componenti (bottoni, tag, card, chip)
   7. Header e menu
   8. Hero delle pagine
   9. Sezioni della Home
  10. Palinsesto
  11. Queenax, Agonistici, Team, Galleria
  12. Footer e barra azioni mobile
  13. Lightbox
  14. Utilità e accessibilità
   ========================================================= */

/* 1. FONT ------------------------------------------------- */
@font-face{font-family:"Manrope";font-weight:400;font-display:swap;src:url("../fonts/manrope-400.woff") format("woff")}
@font-face{font-family:"Manrope";font-weight:500;font-display:swap;src:url("../fonts/manrope-500.woff") format("woff")}
@font-face{font-family:"Manrope";font-weight:700;font-display:swap;src:url("../fonts/manrope-700.woff") format("woff")}
@font-face{font-family:"Manrope";font-weight:800;font-display:swap;src:url("../fonts/manrope-800.woff") format("woff")}
@font-face{font-family:"Teko";font-weight:500;font-display:swap;src:url("../fonts/teko-500.woff") format("woff")}
@font-face{font-family:"Teko";font-weight:600;font-display:swap;src:url("../fonts/teko-600.woff") format("woff")}
@font-face{font-family:"Russo One";font-weight:400;font-display:swap;src:url("../fonts/russo-one.woff") format("woff")}

/* 2. DESIGN TOKEN ----------------------------------------- */
:root{
  /* Colori del marchio (gli stessi del sito precedente) */
  --bg:#050d1a;
  --bg-2:#081a31;
  --surface:#0b1d35;
  --surface-2:#0f2746;
  --line:rgba(99,184,255,.16);
  --line-strong:rgba(99,184,255,.38);
  --text:#f7fbff;
  --muted:#afc4d7;
  --subtle:#7f98b0;
  --brand:#245bc2;
  --blue:#1687e8;
  --blue-dark:#075ea9;
  --blue-bright:#63b8ff;
  --glow:0 0 28px rgba(22,135,232,.35);
  --grad:linear-gradient(135deg,#2d61d0 0%,#1597f5 100%);
  --grad-text:linear-gradient(95deg,#59cbff,#168ff0 55%,#6c86ff);

  /* Colori delle sale (dal palinsesto) */
  --room-fun:#1687e8;
  --room-soul:#50b7e8;
  --room-power:#3f6fe0;
  --room-pesi:#63b8ff;

  /* Tipografia */
  --font-display:"Russo One","Arial Black",sans-serif;
  --font-num:"Teko","Arial Narrow",sans-serif;
  --font-body:"Manrope",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
  --fs-xs:.78rem;
  --fs-sm:.9rem;
  --fs-base:1.0625rem;
  --fs-lg:clamp(1.1rem,1.4vw,1.25rem);
  --fs-h3:clamp(1.2rem,1.8vw,1.45rem);
  --fs-h2:clamp(1.9rem,4.2vw,3.2rem);
  --fs-h1:clamp(2.6rem,7.4vw,5.8rem);

  /* Spazi (multipli di 8 px) */
  --s1:.5rem; --s2:1rem; --s3:1.5rem; --s4:2rem; --s5:3rem; --s6:4rem;
  --section:clamp(4rem,7vw,6.5rem);
  --container:1200px;
  --gutter:clamp(1rem,4vw,2rem);
  --radius:14px;
  --radius-sm:8px;
  --header-h:76px;
  --ease:cubic-bezier(.2,.7,.2,1);
}

/* 3. BASE ------------------------------------------------- */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 16px);-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:var(--fs-base);line-height:1.65;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,svg,video,iframe{display:block;max-width:100%}
img{height:auto}
a{color:var(--blue-bright);text-decoration-thickness:1px;text-underline-offset:3px}
button{font:inherit;color:inherit;cursor:pointer}
h1,h2,h3,h4,p,ul,ol,figure{margin:0}
ul[role=list],ol[role=list]{list-style:none;padding:0}
:focus-visible{outline:2px solid var(--blue-bright);outline-offset:4px;border-radius:4px}
::selection{background:var(--blue);color:#fff}

/* 4. LAYOUT ----------------------------------------------- */
.container{width:min(var(--container),100% - 2*var(--gutter));margin-inline:auto}
.section{padding-block:var(--section)}
.section--alt{background:linear-gradient(180deg,var(--bg-2),var(--bg))}
.section--tight{padding-block:calc(var(--section)*.6)}
.section-head{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:var(--s3);margin-bottom:var(--s5)}
.section-head > div{max-width:640px}
.section-head p:not(.eyebrow){margin-top:var(--s2);color:var(--muted)}
.stack > * + *{margin-top:var(--s2)}
.grid{display:grid;gap:var(--s3)}
.split{display:grid;gap:clamp(2rem,5vw,4.5rem);align-items:center}
@media(min-width:900px){.split{grid-template-columns:1fr 1fr}}

/* 5. TIPOGRAFIA ------------------------------------------- */
.h1,.h2,h1,h2{font-family:var(--font-display);font-weight:400;font-style:italic;text-transform:uppercase;line-height:1.02;letter-spacing:.005em;text-wrap:balance}
h1,.h1{font-size:var(--fs-h1)}
h2,.h2{font-size:var(--fs-h2)}
h3,.h3{font-size:var(--fs-h3);font-weight:800;line-height:1.2;letter-spacing:-.01em}
.accent{background:var(--grad-text);-webkit-background-clip:text;background-clip:text;color:transparent;padding-right:.12em;margin-right:-.12em}
.lead{font-size:var(--fs-lg);color:var(--muted);max-width:56ch}
.muted{color:var(--muted)}
.eyebrow{display:inline-flex;align-items:center;gap:.7rem;margin-bottom:var(--s2);color:var(--blue-bright);font-size:var(--fs-xs);font-weight:800;letter-spacing:.16em;text-transform:uppercase}
.eyebrow::before{content:"";width:28px;height:3px;border-radius:2px;background:var(--grad);box-shadow:var(--glow);transform:skewX(-20deg)}
.num{font-family:var(--font-num);font-weight:600;line-height:.9;letter-spacing:.01em}

/* 6. COMPONENTI ------------------------------------------- */
/* Bottoni: forma inclinata come il logo */
.btn{--bg-btn:transparent;position:relative;isolation:isolate;display:inline-flex;align-items:center;justify-content:center;gap:.6rem;min-height:52px;padding:.8rem 1.6rem;border:0;color:#fff;font-size:.9rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;white-space:nowrap;transition:transform .2s var(--ease)}
.btn::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--bg-btn);border:1px solid var(--line-strong);border-radius:6px;transform:skewX(-10deg);transition:box-shadow .25s var(--ease),background .25s,border-color .25s}
.btn svg{width:20px;height:20px;flex:none}
.btn:hover{transform:translateY(-2px)}
.btn:hover::before{border-color:var(--blue-bright);box-shadow:var(--glow)}
.btn--primary{--bg-btn:var(--grad)}
.btn--primary::before{border-color:rgba(120,205,255,.7);box-shadow:0 12px 28px rgba(14,107,204,.35)}
.btn--ghost{--bg-btn:rgba(10,32,58,.55)}
.btn--wa{--bg-btn:linear-gradient(135deg,#1c9a58,#25d366)}
.btn--wa::before{border-color:rgba(120,255,180,.45)}
.btn--sm{min-height:42px;padding:.55rem 1.1rem;font-size:.78rem}
.btn-row{display:flex;flex-wrap:wrap;gap:var(--s2)}

/* Link con freccia */
.link-arrow{display:inline-flex;align-items:center;gap:.55rem;color:var(--text);font-weight:800;font-size:.95rem;text-decoration:none}
.link-arrow svg{width:20px;height:20px;padding:3px;border-radius:50%;background:var(--grad);color:#fff;transition:transform .25s var(--ease)}
.link-arrow:hover{color:var(--blue-bright)}
.link-arrow:hover svg{transform:translateX(4px)}

/* Tag inclinati */
.tag{width:fit-content;display:inline-flex;align-items:center;gap:.4rem;padding:.2rem .7rem;font-size:var(--fs-xs);font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#fff;background:var(--tag,var(--brand));clip-path:polygon(6px 0,100% 0,calc(100% - 6px) 100%,0 100%)}
.chip-list{display:flex;flex-wrap:wrap;gap:.4rem;padding:0;list-style:none}
.chip-list li{padding:.2rem .65rem;font-size:.8rem;font-weight:700;color:#d8ecff;background:rgba(22,135,232,.12);border:1px solid var(--line);border-radius:999px}

/* Card base */
.card{position:relative;background:linear-gradient(160deg,var(--surface-2),var(--surface));border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;transition:transform .3s var(--ease),border-color .3s,box-shadow .3s}
a.card{color:inherit;text-decoration:none;display:block}
a.card:hover,.card--hover:hover{transform:translateY(-4px);border-color:var(--line-strong);box-shadow:0 22px 40px rgba(0,5,31,.5),var(--glow)}
.card-body{padding:var(--s3)}
.media{position:relative;overflow:hidden;background:var(--surface)}
.media img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
a.card:hover .media img{transform:scale(1.05)}

/* Segnaposto foto con iniziali */
.placeholder{display:grid;place-items:center;width:100%;height:100%;background:
  repeating-linear-gradient(-55deg,transparent 0 18px,rgba(99,184,255,.05) 18px 19px),
  radial-gradient(circle at 50% 35%,#15406e,#0a1d35 70%)}
.placeholder{align-content:center;gap:.5rem}
.placeholder small{display:block;max-width:16ch;padding:0 .5rem;font-size:clamp(.62rem,2.6vw,.8rem);font-weight:700;line-height:1.35;letter-spacing:.06em;text-align:center;text-transform:uppercase;color:rgba(200,230,255,.8)}
.placeholder span{font-family:var(--font-display);font-style:italic;font-size:clamp(2.2rem,5vw,3.4rem);color:rgba(160,215,255,.55)}

/* Icone */
.ico-img{object-fit:contain}
.ico{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}

/* 7. HEADER ----------------------------------------------- */
.skip-link{position:absolute;left:1rem;top:-100px;z-index:200;padding:.7rem 1rem;background:var(--brand);color:#fff;border-radius:6px}
.skip-link:focus{top:1rem}
.site-header{position:fixed;inset:0 0 auto;z-index:100;height:var(--header-h);transition:background .3s,box-shadow .3s,border-color .3s;border-bottom:1px solid transparent}
.site-header.is-scrolled,.site-header.is-solid{background:rgba(5,13,26,.86);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom-color:var(--line)}
.header-inner{height:100%;display:flex;align-items:center;justify-content:space-between;gap:var(--s3)}
.brand img{width:152px;height:auto}
.nav-list{display:flex;align-items:center;gap:.25rem;list-style:none;margin:0;padding:0}
.nav-list a{position:relative;display:block;padding:.6rem .8rem;color:#d7e6f4;font-size:.86rem;font-weight:700;letter-spacing:.04em;text-decoration:none;text-transform:uppercase}
.nav-list a::after{content:"";position:absolute;left:.8rem;right:.8rem;bottom:.3rem;height:2px;background:var(--grad);transform:scaleX(0) skewX(-20deg);transform-origin:left;transition:transform .3s var(--ease)}
.nav-list a:hover,.nav-list a[aria-current=page]{color:#fff}
.nav-list a:hover::after,.nav-list a[aria-current=page]::after{transform:scaleX(1) skewX(-20deg)}
.header-cta{display:flex;align-items:center;gap:var(--s2)}
.menu-toggle{display:none;width:48px;height:48px;padding:0;border:1px solid var(--line-strong);border-radius:10px;background:rgba(10,32,58,.6)}
.menu-toggle span{display:block;width:20px;height:2px;margin:4px auto;background:#fff;border-radius:2px;transition:transform .3s var(--ease),opacity .2s}
.menu-toggle[aria-expanded=true] span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.menu-toggle[aria-expanded=true] span:nth-child(2){opacity:0}
.menu-toggle[aria-expanded=true] span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
.nav-mobile-extra{display:none}

@media(max-width:1080px){
  .menu-toggle{display:block}
  /* backdrop-filter sull'header romperebbe il pannello fisso del menu */
  .site-header.is-scrolled,.site-header.is-solid{backdrop-filter:none;-webkit-backdrop-filter:none;background:rgba(5,13,26,.97)}
  .header-cta .btn{display:none}
  .site-nav{position:fixed;inset:var(--header-h) 0 0;z-index:99;padding:var(--s4) var(--gutter) var(--s5);background:rgba(5,13,26,.97);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);overflow-y:auto;opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .25s,transform .3s var(--ease),visibility 0s .3s}
  .site-nav.is-open{opacity:1;visibility:visible;transform:none;transition:opacity .25s,transform .3s var(--ease)}
  .nav-list{flex-direction:column;align-items:stretch;gap:0}
  .nav-list li{border-bottom:1px solid var(--line)}
  .nav-list a{padding:1.05rem 0;font-family:var(--font-display);font-style:italic;font-size:1.5rem;font-weight:400;letter-spacing:.01em}
  .nav-list a::after{left:0;right:auto;width:40px;bottom:.6rem}
  .nav-mobile-extra{display:grid;gap:var(--s2);margin-top:var(--s4)}
  html.menu-open{overflow:hidden}
}

/* 8. HERO ------------------------------------------------- */
.hero{position:relative;isolation:isolate;display:flex;align-items:flex-end;min-height:min(92vh,860px);padding:calc(var(--header-h) + var(--s5)) 0 var(--s6);overflow:hidden}
.hero-bg{position:absolute;inset:0;z-index:-2}
.hero-bg img{width:100%;height:100%;object-fit:cover;object-position:62% 30%}
.hero::before{content:"";position:absolute;inset:0;z-index:-1;background:
  linear-gradient(90deg,rgba(5,13,26,.96) 0%,rgba(5,13,26,.82) 38%,rgba(5,13,26,.25) 75%,rgba(5,13,26,.35) 100%),
  linear-gradient(0deg,var(--bg) 0%,rgba(5,13,26,0) 35%)}
.hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:4px;background:linear-gradient(90deg,var(--brand),var(--blue-bright),var(--brand));box-shadow:0 0 24px rgba(39,171,247,.45)}
.hero-content{max-width:680px}
.hero h1{margin-bottom:var(--s3)}
.hero-logo{font-style:normal;text-transform:none;width:min(620px,100%)}
.hero-logo img{width:100%;height:auto;filter:drop-shadow(0 8px 30px rgba(0,0,0,.45))}
.hero-slogan{display:block;white-space:nowrap;margin-top:var(--s3);font-family:var(--font-body);font-size:clamp(.82rem,2.3vw,1.45rem);font-weight:800;letter-spacing:.02em;line-height:1.3;text-transform:uppercase;color:#8bdbff;text-shadow:0 0 16px rgba(36,157,255,.35)}
.hero .lead{margin-bottom:var(--s4);color:#c7d8e8}
@keyframes pulse{70%{box-shadow:0 0 0 9px rgba(47,224,138,0)}100%{box-shadow:0 0 0 0 rgba(47,224,138,0)}}

/* Hero interno (pagine secondarie) */
.page-hero{position:relative;isolation:isolate;padding:calc(var(--header-h) + clamp(3rem,7vw,6rem)) 0 clamp(3rem,6vw,5rem);overflow:hidden;background:
  radial-gradient(circle at 80% 20%,rgba(28,146,237,.28),transparent 26rem),
  radial-gradient(circle at 5% 100%,rgba(40,82,180,.25),transparent 30rem),
  linear-gradient(135deg,#040b16 0%,#081a31 55%,#0a2444 100%)}
.page-hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:4px;background:linear-gradient(90deg,var(--brand),var(--blue-bright),var(--brand));box-shadow:0 0 24px rgba(39,171,247,.45)}
.page-hero .lead{margin-top:var(--s3)}
.page-hero--image .hero-bg img{object-position:center 35%}
.page-hero--image::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(5,13,26,.95) 0%,rgba(5,13,26,.78) 45%,rgba(5,13,26,.3) 100%),linear-gradient(0deg,rgba(5,13,26,.85),transparent 50%)}
.breadcrumb{display:flex;gap:.5rem;margin-bottom:var(--s3);font-size:var(--fs-xs);font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--subtle);list-style:none;padding:0}
.breadcrumb a{color:var(--muted);text-decoration:none}
.breadcrumb li+li::before{content:"/";margin-right:.5rem;color:var(--subtle)}

/* 9. HOME ------------------------------------------------- */
/* Numeri */
.stats{position:relative;z-index:2;margin-top:calc(-1 * var(--s5))}
.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);background:linear-gradient(160deg,var(--surface-2),var(--surface));border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 24px 48px rgba(0,5,31,.5)}
.stat{padding:var(--s3);text-align:center;border-color:var(--line);border-style:solid;border-width:0}
.stat:nth-child(odd){border-right-width:1px}
.stat:nth-child(-n+2){border-bottom-width:1px}
.stat .num{display:block;font-size:clamp(2.8rem,5vw,3.8rem);background:var(--grad-text);-webkit-background-clip:text;background-clip:text;color:transparent}
.stat span:last-child{font-size:.85rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
@media(min-width:760px){.stats-grid{grid-template-columns:repeat(4,1fr)}.stat{border-width:0!important;border-right-width:1px!important}.stat:last-child{border-right-width:0!important}}

/* Oggi in palestra */
.today-list{display:grid;gap:var(--s2);grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}
.lesson{--room:var(--room-fun);position:relative;display:grid;grid-template-columns:auto 1fr;gap:.2rem 1rem;align-items:center;padding:1.1rem 1.2rem 1.1rem 1.4rem;background:linear-gradient(160deg,var(--surface-2),var(--surface));border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden}
.lesson::before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--room)}
.lesson[data-room=soul]{--room:var(--room-soul)}
.lesson[data-room=power]{--room:var(--room-power)}
.lesson-time{grid-row:span 3;font-family:var(--font-num);font-size:2.1rem;font-weight:600;line-height:.85;text-align:center;min-width:3.3ch}
.lesson-time small{display:block;font-size:1.05rem;color:var(--subtle)}
.lesson-name{font-weight:800;font-size:1.05rem;line-height:1.25}
.lesson-meta{font-size:.84rem;color:var(--muted)}
.lesson-meta a{color:var(--muted);text-decoration:none;border-bottom:1px dotted var(--subtle)}
.lesson-meta a:hover{color:var(--blue-bright)}
.lesson-room{font-size:.72rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--room)}
.lesson.is-now{border-color:rgba(47,224,138,.55);box-shadow:0 0 0 1px rgba(47,224,138,.25),0 0 26px rgba(47,224,138,.15)}
.lesson.is-past{opacity:.45}
.badge-now{position:absolute;top:.7rem;right:.8rem;font-size:.66rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#2fe08a}
.empty{padding:var(--s4);text-align:center;color:var(--muted);border:1px dashed var(--line-strong);border-radius:var(--radius)}

/* Sale: griglia a mosaico */
.rooms{display:grid;gap:var(--s2);grid-template-columns:1fr}
.card.room{min-height:340px;display:flex;flex-direction:column;justify-content:flex-end}
.room .media{position:absolute;inset:0}
.room .media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(4,16,32,0) 25%,rgba(4,16,32,.94) 100%)}
.room .card-body{position:relative;z-index:1}
.room .tag{margin-bottom:.8rem}
.room h3{font-family:var(--font-display);font-style:italic;font-weight:400;text-transform:uppercase;font-size:clamp(1.5rem,2.6vw,2.1rem)}
.room p{color:#c7d8e8;margin-top:.3rem}
@media(min-width:760px){.rooms{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1024px){.rooms{grid-template-columns:1.35fr 1fr 1fr;grid-template-rows:320px 320px}.card.room{min-height:0}.room--big{grid-row:span 2}.room--wide{grid-column:span 2}}

/* Card in evidenza (Queenax / Agonistici) */
.features{display:grid;gap:var(--s3)}
@media(min-width:900px){.features{grid-template-columns:1fr 1fr}}
.feature .media{aspect-ratio:16/10}
.feature .card-body{padding:var(--s4)}
.feature h3{font-family:var(--font-display);font-style:italic;font-weight:400;text-transform:uppercase;font-size:clamp(1.6rem,3vw,2.3rem);margin:.6rem 0 .5rem}
.feature p{color:var(--muted);margin-bottom:var(--s3)}
.mosaic4{display:grid;grid-template-columns:repeat(4,1fr);height:100%}
.mosaic4 img{height:100%;object-fit:cover}

/* Team preview */
.team-strip{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--s2)}
@media(min-width:640px){.team-strip{grid-template-columns:repeat(3,1fr)}}
@media(min-width:1024px){.team-strip{grid-template-columns:repeat(5,1fr)}}
.person .media{aspect-ratio:3/4}
.person .card-body{padding:1rem 1.1rem}
.person h3{font-size:1.02rem}
.person p{font-size:.82rem;color:var(--muted)}

/* Come iniziare */
.steps{display:grid;gap:var(--s3);counter-reset:step;list-style:none;padding:0}
@media(min-width:900px){.steps{grid-template-columns:repeat(3,1fr)}}
.step{display:flex;flex-direction:column;padding:var(--s4)}
.step-num{display:block;margin-bottom:var(--s2);font-family:var(--font-display);font-style:italic;font-size:3.4rem;line-height:1;background:var(--grad-text);-webkit-background-clip:text;background-clip:text;color:transparent;padding-right:.15em;width:fit-content}
.step-action{margin-top:auto;padding-top:var(--s3)}
.step-action .store-row{margin-top:0}
.step h3{margin-bottom:.5rem}
.step p{color:var(--muted)}
.store-row{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:var(--s3)}
.store-badge{display:block;border-radius:8px;transition:transform .2s var(--ease),box-shadow .25s}
.store-badge img{height:44px;width:auto}
.store-badge:hover{transform:translateY(-2px);box-shadow:var(--glow)}

/* Galleria anteprima */
.gallery-mosaic{display:grid;gap:var(--s2);grid-template-columns:repeat(2,1fr);grid-auto-rows:170px}
.gallery-mosaic a{position:relative;display:block;border-radius:var(--radius-sm);overflow:hidden}
.gallery-mosaic img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.gallery-mosaic a:hover img{transform:scale(1.05)}
.gallery-mosaic a:first-child{grid-column:span 2;grid-row:span 2}
@media(min-width:900px){.gallery-mosaic{grid-template-columns:repeat(4,1fr);grid-auto-rows:210px}}

/* Contatti e orari */
.visit{display:grid;gap:var(--s3)}
@media(min-width:960px){.visit{grid-template-columns:1fr 1fr 1.25fr}}
.hours{list-style:none;padding:0;margin-top:var(--s2)}
.hours li{display:flex;justify-content:space-between;gap:1rem;padding:.8rem 0;border-bottom:1px solid var(--line)}
.hours li:last-child{border-bottom:0}
.hours strong{font-family:var(--font-num);font-size:1.45rem;font-weight:500;letter-spacing:.02em;line-height:1}
.hours li.is-today{color:#fff}
.hours li.is-today span::after{content:"Oggi";margin-left:.5rem;padding:.1rem .45rem;font-size:.66rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#fff;background:var(--blue);border-radius:4px;vertical-align:2px}
.contact-list{list-style:none;padding:0;margin-top:var(--s2);display:grid;gap:.6rem}
.contact-list a{display:flex;align-items:center;gap:.9rem;padding:.8rem 1rem;color:var(--text);text-decoration:none;background:rgba(22,135,232,.07);border:1px solid var(--line);border-radius:var(--radius-sm);transition:border-color .2s,background .2s}
.contact-list a:hover{border-color:var(--line-strong);background:rgba(22,135,232,.14)}
.contact-list small{display:block;font-size:.72rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--subtle)}
.contact-list strong{font-weight:800}
.contact-list .ico{color:var(--blue-bright);flex:none}
.social-row{display:flex;gap:.6rem;margin-top:var(--s3)}
.social-row a{display:grid;place-items:center;width:46px;height:46px;border:1px solid var(--line-strong);border-radius:10px;background:rgba(10,32,58,.6);transition:border-color .2s,box-shadow .2s,transform .2s}
.social-row a:hover{border-color:var(--blue-bright);box-shadow:var(--glow);transform:translateY(-2px)}
.social-row a{padding:0;line-height:0}
.social-row a img{display:block;margin:auto;width:22px;height:22px;object-fit:contain}
.map{position:relative;min-height:340px;border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);background:linear-gradient(135deg,#12385d,#091728)}
.map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:invert(.9) hue-rotate(180deg) saturate(.6) brightness(.95)}
.map-link{position:absolute;left:1rem;bottom:1rem;z-index:1}

/* CTA finale */
.cta-band{position:relative;overflow:hidden;padding:clamp(2.5rem,6vw,4.5rem);border-radius:var(--radius);background:linear-gradient(120deg,#1447a8 0%,#1687e8 60%,#3fb0ff 100%);box-shadow:0 30px 60px rgba(8,60,150,.35)}
.cta-band::before{content:"";position:absolute;right:-10%;top:-40%;width:55%;height:180%;background:repeating-linear-gradient(-60deg,rgba(255,255,255,.08) 0 22px,transparent 22px 44px);transform:skewX(-12deg)}
.cta-band > *{position:relative}
.cta-band h2{max-width:14ch}
.cta-band p{margin:var(--s2) 0 var(--s4);color:#e4f2ff;max-width:48ch}
.cta-band .btn--ghost{--bg-btn:rgba(3,20,45,.35)}
.cta-band .btn--ghost::before{border-color:rgba(255,255,255,.55)}

/* 10. PALINSESTO ------------------------------------------ */
.schedule-toolbar{position:sticky;top:var(--header-h);z-index:20;padding:var(--s2) 0;background:rgba(5,13,26,.92);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.toolbar-inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s2)}
.toolbar-right{display:flex;align-items:center;gap:var(--s2);min-width:0;max-width:100%}
@media(max-width:600px){.toolbar-right{width:100%}.toolbar-right .room-filter{flex:1;min-width:0}}
.day-tabs,.room-filter{display:flex;gap:.4rem;overflow-x:auto;scrollbar-width:none;padding:12px 14px;margin:-12px -14px}
.day-tabs::-webkit-scrollbar,.room-filter::-webkit-scrollbar{display:none}
.day-tab{position:relative;flex:none;min-width:64px;padding:.55rem .9rem;border:1px solid var(--line);border-radius:10px;background:rgba(10,32,58,.55);text-align:center;line-height:1.1;transition:border-color .2s,background .2s}
.day-tab b{display:block;font-family:var(--font-num);font-size:1.45rem;font-weight:600;letter-spacing:.03em}
.day-tab small{font-size:.66rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--subtle)}
.day-tab:hover{border-color:var(--line-strong)}
.day-tab[aria-selected=true]{background:var(--grad);border-color:rgba(120,205,255,.7);box-shadow:var(--glow)}
.day-tab[aria-selected=true] small{color:#dff1ff}
.room-chip{flex:none;display:inline-flex;align-items:center;gap:.45rem;padding:.5rem .9rem;border:1px solid var(--line);border-radius:999px;background:transparent;font-size:.82rem;font-weight:800}
.room-chip i{width:10px;height:10px;border-radius:50%;background:var(--c,var(--blue-bright))}
.room-chip[aria-pressed=true]{background:rgba(22,135,232,.18);border-color:var(--blue-bright)}
.schedule-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--s2);margin-bottom:var(--s3)}
.schedule-head h2{font-size:clamp(1.7rem,3.4vw,2.5rem)}
.schedule-cols{display:grid;gap:var(--s3)}
@media(min-width:960px){.schedule-cols{grid-template-columns:repeat(var(--cols,3),1fr)}}
.col-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--s2);padding-bottom:.7rem;border-bottom:3px solid var(--c)}
.col-head h3{font-family:var(--font-display);font-style:italic;font-weight:400;text-transform:uppercase;font-size:1.3rem}
.col-head span{font-size:.78rem;font-weight:700;color:var(--muted)}
.col-list{display:grid;gap:.7rem}
.schedule-list{display:none}
@media(max-width:959px){.schedule-cols{display:none}.schedule-list{display:grid;gap:.7rem}}
.legend{display:flex;flex-wrap:wrap;gap:1rem;font-size:.8rem;color:var(--muted)}
.booking{display:grid;gap:var(--s4);align-items:center;padding:clamp(1.5rem,4vw,3rem)}
@media(min-width:860px){.booking{grid-template-columns:auto 1fr auto}}
.booking > img{width:88px;height:88px;border-radius:20px}
.booking p{color:var(--muted);margin-top:.4rem}

/* 11. QUEENAX / AGONISTICI / TEAM / GALLERIA -------------- */

.discipline{display:grid;gap:0}
.discipline .media{aspect-ratio:1/1}
.discipline .card-body{padding:clamp(1.5rem,3.5vw,3rem);display:flex;flex-direction:column;justify-content:center}
.discipline h2{font-size:clamp(2rem,4vw,3rem);margin:.6rem 0 var(--s2)}
.discipline p{color:var(--muted)}
.discipline dl{display:grid;grid-template-columns:auto 1fr;gap:.5rem 1.2rem;margin:var(--s3) 0;padding:var(--s2) 0;border-block:1px solid var(--line)}
.discipline dt{font-size:.74rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--subtle);padding-top:.2rem}
.discipline dd{margin:0;font-weight:700}
@media(min-width:860px){.discipline{grid-template-columns:.9fr 1.1fr}.discipline--rev .media{order:2}}
.discipline + .discipline{margin-top:var(--s4)}

.team-grid{display:grid;gap:var(--s3);grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
.coach .media{aspect-ratio:4/5}
.coach .card-body{padding:var(--s3)}
.coach h2{font-size:1.45rem;margin-bottom:.8rem;line-height:1.1}
.coach .label{display:block;margin-bottom:.5rem;font-size:.7rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--subtle)}
.coach .media img{transition:transform .6s var(--ease)}
.coach:hover .media img{transform:scale(1.05)}
.coach .card-body{display:flex;flex-direction:column;align-items:flex-start}
.coach-more{margin-top:var(--s3);padding:0;border:0;background:none;cursor:pointer}
.coach:target{border-color:var(--blue-bright);box-shadow:var(--glow)}
.team-filter{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:var(--s4)}

.gallery-grid{columns:1;column-gap:var(--s2)}
@media(min-width:640px){.gallery-grid{columns:2}}
@media(min-width:1024px){.gallery-grid{columns:3}}
.gallery-grid figure{break-inside:avoid;margin-bottom:var(--s2)}
.gallery-grid a{position:relative;display:block;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--line)}
.gallery-grid img{width:100%;transition:transform .6s var(--ease)}
.gallery-grid a:hover img{transform:scale(1.04)}
.gallery-grid figcaption{position:absolute;left:0;right:0;bottom:0;padding:2rem 1rem .8rem;font-weight:800;background:linear-gradient(transparent,rgba(4,16,32,.9))}

/* 12. FOOTER + BARRA MOBILE ------------------------------- */
.site-footer{margin-top:0;padding:var(--s6) 0 calc(var(--s4) + env(safe-area-inset-bottom));background:#030912;border-top:1px solid var(--line)}
.footer-grid{display:grid;gap:var(--s4)}
@media(min-width:760px){.footer-grid{grid-template-columns:1.4fr 1fr 1fr 1fr}}
.site-footer h2{font-family:var(--font-body);font-style:normal;text-transform:uppercase;font-size:.78rem;font-weight:800;letter-spacing:.14em;color:var(--subtle);margin-bottom:var(--s2)}
.site-footer ul{list-style:none;padding:0;display:grid;gap:.5rem}
.site-footer a{color:var(--muted);text-decoration:none}
.site-footer a:hover{color:#fff}
.footer-brand > img{width:200px;margin-bottom:var(--s2)}
.footer-brand p{color:var(--muted);max-width:30ch}
.footer-hours li{display:flex;justify-content:space-between;gap:1rem;color:var(--muted);font-size:.92rem}
.footer-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--s2);margin-top:var(--s5);padding-top:var(--s3);border-top:1px solid var(--line);font-size:.82rem;color:var(--subtle)}

.action-bar{display:none}
@media(max-width:760px){
  .action-bar{position:fixed;left:0;right:0;bottom:0;z-index:90;display:grid;grid-template-columns:repeat(3,1fr);padding:.4rem .5rem calc(.4rem + env(safe-area-inset-bottom));background:rgba(5,13,26,.95);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--line)}
  .action-bar a{display:flex;flex-direction:column;align-items:center;gap:.15rem;padding:.35rem;color:#dbe9f6;font-size:.7rem;font-weight:800;letter-spacing:.04em;text-decoration:none;text-transform:uppercase}
  .action-bar a .ico{width:22px;height:22px;color:var(--blue-bright)}
  .action-bar a.wa .ico{color:#25d366}
  body{padding-bottom:70px}
}

/* 13. LIGHTBOX -------------------------------------------- */
.lightbox{width:min(1100px,94vw);max-height:92vh;padding:0;border:0;background:transparent;color:#fff;overflow:visible}
.lightbox::backdrop{background:rgba(2,6,14,.92);backdrop-filter:blur(4px)}
.lightbox img{max-height:80vh;width:auto;margin-inline:auto;border-radius:var(--radius-sm)}
.lightbox figcaption{margin-top:.8rem;text-align:center;font-weight:700}
.lb-btn{position:absolute;display:grid;place-items:center;width:48px;height:48px;border:1px solid var(--line-strong);border-radius:50%;background:rgba(5,13,26,.8)}
.lb-btn:hover{border-color:var(--blue-bright)}
.lb-close{top:-56px;right:0}
.lb-prev{left:-8px;top:40%}
.lb-next{right:-8px;top:40%}
@media(min-width:1180px){.lb-prev{left:-64px}.lb-next{right:-64px}}

/* 14. UTILITÀ --------------------------------------------- */
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.mt-2{margin-top:var(--s2)}.mt-3{margin-top:var(--s3)}.mt-4{margin-top:var(--s4)}.mt-5{margin-top:var(--s5)}
.center{text-align:center}
.reveal{opacity:0;transform:translateY(18px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.reveal.is-visible{opacity:1;transform:none}
.no-js .reveal{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .reveal{opacity:1;transform:none}
}

/* Istruttori su telefono: scheda orizzontale, più compatta */
@media(max-width:560px){
  .coach{display:grid;grid-template-columns:118px 1fr}
  .coach .media{aspect-ratio:auto;min-height:100%}
  .coach .card-body{padding:1rem}
  .coach h2{font-size:1.15rem}
  .coach .chip-list li{font-size:.74rem}
  .person .card-body{padding:.8rem}
}


/* ---- Foto in arrivo (slot che si riempie da solo quando il file esiste) ---- */
.photo-slot{position:relative;width:100%;height:100%}
.photo-slot > img{width:100%;height:100%;object-fit:cover}
.photo-slot .placeholder{display:flex;flex-direction:column;gap:.6rem;align-items:center;justify-content:center;text-align:center;padding:var(--s3)}
.photo-slot .placeholder .ico{width:44px;height:44px;color:var(--blue-bright);opacity:.8}
.photo-slot .ph-label{font-family:var(--font-display);font-style:italic;font-size:clamp(1.1rem,2.4vw,1.5rem);text-transform:uppercase;color:rgba(190,228,255,.8)}
.photo-slot small{font-size:.72rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--subtle)}

/* ---- Queenax ---- */
.qx-photo{aspect-ratio:4/3}
.qx-modes{display:grid;gap:var(--s3)}
.qx-mode{display:grid}
.qx-mode .media{aspect-ratio:16/10}
.qx-mode .card-body{position:relative;display:flex;flex-direction:column;justify-content:center;padding:clamp(1.5rem,4vw,3rem)}
.qx-mode .ico-box{display:grid;place-items:center;width:52px;height:52px;margin-bottom:var(--s3);border-radius:12px;background:var(--grad);box-shadow:var(--glow)}
.qx-mode .ico-box .ico{color:#fff}
.qx-index{position:absolute;top:clamp(1rem,3vw,2rem);right:clamp(1rem,3vw,2rem);font-size:3.6rem;color:rgba(99,184,255,.18)}
.qx-mode h3{font-family:var(--font-display);font-style:italic;font-weight:400;text-transform:uppercase;font-size:clamp(1.5rem,3vw,2.2rem);margin-bottom:.6rem}
.qx-mode p{color:var(--muted);max-width:44ch;font-size:1.05rem}
@media(min-width:860px){.qx-mode{grid-template-columns:1.1fr .9fr}.qx-mode--rev .media{order:2}.qx-mode .media{aspect-ratio:auto;min-height:340px}}
.benefit-grid{list-style:none;padding:0;display:grid;gap:var(--s2);grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}
.benefit-grid li{display:flex;flex-direction:column;gap:.4rem;padding:var(--s3)}
.benefit-grid .num{font-size:2.6rem;background:var(--grad-text);-webkit-background-clip:text;background-clip:text;color:transparent;width:fit-content}
.benefit-grid strong{font-size:1.08rem}
.benefit-grid li > span:last-child{color:var(--muted);font-size:.95rem}

/* ---- Copertina corsi agonistici: quattro fasce diagonali ---- */
.page-hero--collage{min-height:min(78vh,720px);display:flex;align-items:flex-end}
.page-hero--collage > .container{width:min(var(--container),100% - 2*var(--gutter))}
.page-hero--collage .hero-content{max-width:640px}
.hero-collage{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;left:-12%;right:-12%;transform:skewX(-10deg)}
.hero-collage div{overflow:hidden}
.hero-collage img{width:100%;height:100%;object-fit:cover;transform:skewX(10deg) scale(1.3)}
.page-hero--collage::before{background:linear-gradient(90deg,rgba(5,13,26,.95) 0%,rgba(5,13,26,.8) 40%,rgba(5,13,26,.25) 100%),linear-gradient(0deg,rgba(5,13,26,.9),transparent 55%)}
@media(max-width:760px){.hero-collage{grid-template-columns:repeat(2,1fr);grid-template-rows:1fr 1fr}.page-hero--collage::before{background:linear-gradient(0deg,rgba(5,13,26,.97) 20%,rgba(5,13,26,.55) 100%)}}

/* ---- Finestra istruttore ---- */
.coach-modal{width:min(900px,calc(100% - 2rem));max-height:calc(100dvh - 2rem);padding:0;border:1px solid var(--line-strong);border-radius:var(--radius);background:linear-gradient(160deg,var(--surface-2),var(--surface));color:var(--text);box-shadow:0 40px 80px rgba(0,0,0,.6),var(--glow);overflow:auto}
.coach-modal::backdrop{background:rgba(3,9,18,.55);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.coach-modal[open]{animation:modalIn .3s var(--ease)}
@keyframes modalIn{from{opacity:0;transform:translateY(16px) scale(.98)}}
.cm-grid{display:grid}
.cm-media{aspect-ratio:4/5;background:var(--surface)}
.cm-media img{width:100%;height:100%;object-fit:cover}
.cm-body{padding:clamp(1.5rem,4vw,2.6rem)}
.cm-body h2{font-size:clamp(1.6rem,3.4vw,2.4rem);margin:.4rem 0 var(--s3)}
.cm-body .label{display:block;margin-bottom:.5rem;font-size:.7rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--subtle)}
.cm-bio{margin-top:var(--s3);padding-top:var(--s3);border-top:1px solid var(--line);color:var(--muted)}
.cm-bio p + p{margin-top:.8rem}
.cm-close{position:absolute;top:.8rem;right:.8rem;z-index:2;display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--line-strong);border-radius:50%;background:rgba(5,13,26,.8)}
.cm-close:hover{border-color:var(--blue-bright)}
@media(min-width:720px){.cm-grid{grid-template-columns:.9fr 1.1fr}.cm-media{aspect-ratio:auto;min-height:100%}}
@media(max-width:719px){.cm-media{aspect-ratio:4/3}.cm-media img{object-position:center 20%}}
html.modal-open{overflow:hidden}

/* ---- Copertina Home: foto dello staff intera ---- */
@media(min-width:901px){
  .hero--split{background:radial-gradient(circle at 70% 40%,rgba(28,146,237,.22),transparent 34rem),linear-gradient(135deg,#040b16 0%,#081a31 55%,#0a2444 100%);align-items:center}
  .hero--split::before{display:none}
  .hero--split .hero-bg{inset:auto;right:0;top:calc(50% + var(--header-h)/2);transform:translateY(-50%);width:min(62vw,1040px);aspect-ratio:1248/836;
    -webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 26%),linear-gradient(180deg,transparent 0%,#000 14%,#000 86%,transparent 100%);
    -webkit-mask-composite:source-in;
    mask-image:linear-gradient(90deg,transparent 0%,#000 26%),linear-gradient(180deg,transparent 0%,#000 14%,#000 86%,transparent 100%);
    mask-composite:intersect}
  .hero--split .hero-bg img{object-fit:contain;object-position:center}
  .hero--split .hero-content{max-width:520px}
  .hero--split .hero-logo{width:min(520px,100%)}
}
@media(max-width:900px){
  .hero--split{flex-direction:column;align-items:stretch;min-height:0;padding-top:var(--header-h);background:linear-gradient(180deg,#081a31 0%,#050d1a 100%)}
  .hero--split::before{display:none}
  .hero--split .hero-bg{position:relative;inset:auto;z-index:0;width:100%;aspect-ratio:1248/836;
    -webkit-mask-image:linear-gradient(180deg,transparent 0%,#000 10%,#000 72%,transparent 100%);
    mask-image:linear-gradient(180deg,transparent 0%,#000 10%,#000 72%,transparent 100%)}
  .hero--split .hero-bg img{object-fit:contain}
  .hero--split > .container{position:relative;z-index:1;margin-top:calc(-1 * var(--s4))}
}

/* ---- Segnaposto da completare (dati legali, email, testi) ---- */
.todo{color:#ffcf5c;font-weight:700}
.todo-box{padding:var(--s2) var(--s3);border:1px dashed rgba(255,207,92,.6);border-radius:var(--radius-sm);color:#ffcf5c;background:rgba(255,207,92,.06)}
.contact-list .contact-item{display:flex;align-items:center;gap:.9rem;padding:.8rem 1rem;border-radius:var(--radius-sm)}
.contact-list .contact-item .ico{color:var(--blue-bright);flex:none}
.contact-list .contact-item small{display:block;font-size:.72rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--subtle)}
.note{display:flex;gap:.6rem;align-items:flex-start;margin-top:var(--s3);font-size:.88rem;color:var(--muted)}
.note .ico{width:20px;height:20px;flex:none;color:var(--blue-bright);margin-top:2px}
.legal-links{display:flex;gap:1.2rem}
.legal-links a{color:var(--muted);text-decoration:underline;text-underline-offset:3px}
.legal-text{max-width:780px}
.legal-text h2{font-size:clamp(1.3rem,2.4vw,1.6rem);margin:var(--s4) 0 var(--s2)}
.legal-text h3{font-size:1.05rem;margin:var(--s3) 0 var(--s1)}
.legal-text p,.legal-text ul{margin:0 0 var(--s2);line-height:1.65}
.legal-text ul{padding-left:1.2rem}
.legal-text li{margin-bottom:.4rem}
.legal-text a{text-decoration:underline}

/* ---- Mappa caricata solo al clic ---- */
.map-consent{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.8rem;padding:var(--s4);text-align:center;background:
  repeating-linear-gradient(-55deg,transparent 0 18px,rgba(99,184,255,.05) 18px 19px),radial-gradient(circle at 50% 40%,#15406e,#0a1d35 70%)}
.map-consent > .ico{width:40px;height:40px;color:var(--blue-bright)}
.map-consent strong{line-height:1.35}
.map-consent small{max-width:30ch;font-size:.76rem;color:var(--subtle)}
.map-consent small a{color:var(--muted)}
.map-link{z-index:2}
button.btn{background:none;-webkit-appearance:none;appearance:none}

/* ---- Pulsanti della copertina affiancati ---- */
.hero-actions{flex-wrap:nowrap;gap:.8rem}
.hero-actions .btn{padding-inline:1.15rem;font-size:.84rem}
@media(min-width:901px){.hero--split .hero-content{max-width:560px}}
@media(max-width:520px){.hero-actions .btn{flex:1 1 0;min-width:0;padding-inline:.6rem;font-size:.72rem;letter-spacing:.03em;white-space:normal;text-align:center;line-height:1.2}.hero-actions .btn .ico,.hero-actions .btn svg{width:18px;height:18px}}

/* ---- Slogan nel footer ---- */
.footer-brand .footer-slogan{display:block;width:200px;white-space:nowrap;max-width:none;font-size:.72rem;font-weight:800;text-transform:uppercase;color:#8bdbff;text-shadow:0 0 14px rgba(36,157,255,.3)}

/* ---- Card istruttore cliccabile ---- */
.coach[data-coach-card]{cursor:pointer}
.coach[data-coach-card]:focus-visible{outline:2px solid var(--blue-bright);outline-offset:3px}

/* ---- Queenax: foto verticali intere ---- */
.qx-mode .media{aspect-ratio:var(--ar,16/10)}
.qx-mode .photo-slot > img{object-fit:contain;background:#050d1a}
@media(min-width:860px){
  .qx-mode .media{aspect-ratio:auto}
  .qx-mode--portrait{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}
  .qx-mode--portrait.qx-mode--rev{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr)}
  .qx-mode--portrait .media{aspect-ratio:var(--ar);min-height:0}
  .qx-mode--portrait .photo-slot > img{object-fit:cover}
}

/* ---- Carosello ---- */
.carousel{position:relative}
.carousel-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;aspect-ratio:3/2;outline:none}
.carousel-track::-webkit-scrollbar{display:none}
.carousel-slide{flex:0 0 100%;scroll-snap-align:start;margin:0}
.carousel-slide img{width:100%;height:100%;object-fit:cover}
.carousel-btn{position:absolute;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--line-strong);border-radius:50%;background:rgba(5,13,26,.7);backdrop-filter:blur(6px);color:#fff;transition:border-color .2s,box-shadow .2s}
.carousel-btn:hover{border-color:var(--blue-bright);box-shadow:var(--glow)}
.carousel-prev{left:.8rem}
.carousel-next{right:.8rem}
.carousel-dots{position:absolute;left:0;right:0;bottom:.8rem;display:flex;justify-content:center;gap:.45rem}
.carousel-dots button{width:9px;height:9px;padding:0;border:0;border-radius:999px;background:rgba(255,255,255,.5);transition:width .3s,background .3s}
.carousel-dots button[aria-current=true]{width:26px;background:var(--blue-bright)}
@media(max-width:600px){.carousel-btn{width:38px;height:38px}}

/* ---- Galleria: feed Instagram (Behold) ---- */
.ig-section{padding-top:0}
.ig-wrap{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.ig-fallback{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.8rem;min-height:300px;padding:var(--s5) var(--s4);text-align:center;background:
  repeating-linear-gradient(-55deg,transparent 0 18px,rgba(99,184,255,.05) 18px 19px),radial-gradient(circle at 50% 40%,#15406e,#0a1d35 70%)}
.ig-fallback p{max-width:36ch;color:var(--muted)}
.lightbox figcaption:empty{display:none}

/* ==========================================================
   ANIMAZIONI AL PASSAGGIO DEL MOUSE
   Solo su dispositivi con mouse e se l'utente non ha chiesto
   di ridurre le animazioni.
   ========================================================== */
@media (hover:hover) and (prefers-reduced-motion:no-preference){
  /* Pulsanti: si sollevano, si ingrandiscono e passa un riflesso di luce */
  .btn{transition:transform .25s var(--ease)}
  .btn::after{content:"";position:absolute;inset:0;z-index:-1;border-radius:6px;transform:skewX(-10deg);pointer-events:none;
    background:linear-gradient(90deg,transparent 35%,rgba(255,255,255,.32) 50%,transparent 65%) no-repeat;background-size:250% 100%;background-position:160% 0;transition:background-position .75s var(--ease)}
  .btn:hover{transform:translateY(-3px) scale(1.03)}
  .btn:hover::after{background-position:-60% 0}
  .btn:active{transform:translateY(0) scale(.98)}
  .btn .ico,.btn svg{transition:transform .3s var(--ease)}
  .btn:hover .ico,.btn:hover svg{transform:scale(1.15)}

  /* Card: si sollevano con bagliore e la foto fa uno zoom lento */
  .card.reveal.is-visible{transition:opacity .7s var(--ease),transform .35s var(--ease),border-color .3s,box-shadow .35s}
  .card{transition:transform .35s var(--ease),border-color .3s,box-shadow .35s}
  a.card:hover,.card--hover:hover,.card.step:hover,.card.discipline:hover{transform:translateY(-6px);border-color:var(--line-strong);box-shadow:0 26px 46px rgba(0,5,31,.55),var(--glow)}
  .card .media img{transition:transform .8s var(--ease),filter .5s}
  a.card:hover .media img,.card--hover:hover .media img,.card.discipline:hover .media img{transform:scale(1.07);filter:brightness(1.08) saturate(1.1)}
  .card.step .step-num{display:inline-block;transition:transform .35s var(--ease)}
  .card.step:hover .step-num{transform:translateX(6px) scale(1.08)}

  /* Etichette dei corsi */
  .chip-list li{transition:background .2s,border-color .2s,transform .2s}
  .card:hover .chip-list li{border-color:var(--line-strong)}
  .chip-list li:hover{background:rgba(22,135,232,.28);transform:translateY(-1px)}

  /* Contatti: scorrono leggermente a destra */
  .contact-list a{transition:border-color .2s,background .2s,transform .25s var(--ease)}
  .contact-list a:hover{transform:translateX(4px)}

  /* Galleria: zoom e lente d'ingrandimento */
  .gallery-grid a::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .35s;
    background:linear-gradient(180deg,rgba(4,16,32,0) 40%,rgba(4,16,32,.55)),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-4-4M11 8v6M8 11h6'/%3E%3C/svg%3E") center/46px no-repeat}
  .gallery-grid a:hover::after{opacity:1}
  .gallery-grid a:hover img{transform:scale(1.06)}

  /* Icone social e riquadro Instagram */
  .social-row a{transition:border-color .2s,box-shadow .2s,transform .25s var(--ease)}
  .social-row a:hover{transform:translateY(-3px)}
  .ig-fallback > img{transition:transform .4s var(--ease)}
  .ig-wrap:hover .ig-fallback > img{transform:scale(1.12)}
  /* Palinsesto: card dei corsi, giorni e filtri delle sale */
  .lesson{transition:transform .3s var(--ease),border-color .3s,box-shadow .3s,opacity .3s}
  .lesson::before{transition:width .3s var(--ease)}
  .lesson:hover{transform:translateY(-4px);border-color:var(--line-strong);box-shadow:0 18px 34px rgba(0,5,31,.5),var(--glow)}
  .lesson:hover::before{width:9px}
  .lesson.is-past:hover{opacity:.8}
  .lesson-time{transition:transform .3s var(--ease)}
  .lesson:hover .lesson-time{transform:scale(1.06)}
  .day-tab{transition:border-color .2s,background .2s,box-shadow .25s,transform .25s var(--ease)}
  .day-tab:hover{transform:translateY(-3px);border-color:var(--line-strong);box-shadow:0 6px 16px rgba(22,135,232,.35)}
  .room-chip{transition:border-color .2s,background .2s,box-shadow .25s,transform .25s var(--ease)}
  .room-chip:hover{transform:translateY(-3px);border-color:var(--line-strong);box-shadow:0 6px 16px rgba(22,135,232,.35)}
}

/* ==========================================================
   PALINSESTO: bolla che scorre sotto giorno e sala scelti
   ========================================================== */
.day-tabs.has-pill,.room-filter.has-pill{position:relative}
.has-pill .day-tab,.has-pill .room-chip{position:relative;z-index:1}
.has-pill .day-tab[aria-selected=true],.has-pill .room-chip[aria-pressed=true]{background:transparent;border-color:transparent;box-shadow:none}
.glass-pill{position:absolute;top:0;left:0;z-index:0;pointer-events:none;
  transition:transform .55s cubic-bezier(.34,1.45,.5,1),width .45s cubic-bezier(.34,1.3,.5,1),height .3s}
.glass-pill.no-anim{transition:none}
.glass-pill i{position:absolute;inset:0;border-radius:inherit}
.day-tabs .glass-pill i{background:var(--grad);border:1px solid rgba(120,205,255,.7);box-shadow:var(--glow)}
.room-filter .glass-pill i{background:rgba(22,135,232,.18);border:1px solid var(--blue-bright)}
.has-pill .day-tab[aria-selected=true] small{color:#dff1ff}
.glass-pill i.wobble{animation:liquid .6s cubic-bezier(.3,.7,.3,1)}
@keyframes liquid{0%{transform:scale(1,1)}35%{transform:scale(1.06,.92)}70%{transform:scale(.98,1.02)}100%{transform:scale(1,1)}}
@media (hover:hover) and (prefers-reduced-motion:no-preference){
  .has-pill .day-tab[aria-selected=true]:hover,.has-pill .room-chip[aria-pressed=true]:hover{transform:none;box-shadow:none}
}
