:root {
  --black: #1B1B1B;
  --white: #FFFFFF;
  --off-white: #F7F5F2;
  --gray-light: #EAEAEA;
  --gray-stats: #F0EDEA;
  --gray-mid: #AAA5A3;
  --gray-dark: #6B6B6B;
  --accent: #CC8A66;
  --accent-dark: #B67043;
  --accent-light: #EBD1AD;
  --serif: var(--font-serif), Georgia, serif;
  --sans: var(--font-sans), sans-serif;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--sans);background:var(--white);color:var(--black);overflow-x:hidden;cursor:none}

.legal-page{max-width:760px;margin:0 auto;padding:140px 24px 88px;font-family:var(--sans);cursor:auto}
.legal-page a{color:var(--accent);text-decoration:none;font-size:11px;letter-spacing:2px;text-transform:uppercase}
.legal-page .section-title{margin-top:32px}
.legal-updated{font-family:var(--sans);font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--gray-mid);margin-bottom:26px}
.legal-section{border-top:1px solid var(--gray-light);padding-top:28px;margin-top:28px}
.legal-section h2{font-family:var(--sans);font-size:14px;font-weight:500;letter-spacing:2px;text-transform:uppercase;margin-bottom:14px}
.legal-section p{font-family:var(--sans);font-size:13px;font-weight:300;line-height:1.85;color:var(--gray-dark);margin-bottom:12px}
.legal-links{display:flex;flex-wrap:wrap;gap:14px;margin-top:16px}
body:has(.legal-page){background:var(--off-white);cursor:auto}
body:has(.app-page){background:#201E1B;cursor:auto}

.cookie-banner{position:fixed;left:24px;right:24px;bottom:24px;z-index:700;background:rgba(247,245,242,0.98);border:1px solid rgba(27,27,27,0.12);box-shadow:0 20px 60px rgba(0,0,0,0.18);padding:24px 24px 22px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:end;font-family:var(--sans);cursor:auto}
.cookie-banner[hidden],.cookie-panel[hidden],.cookie-preferences[hidden]{display:none}
.cookie-close{position:absolute;top:12px;right:14px;width:30px;height:30px;border:0;background:transparent;color:var(--black);font-size:24px;line-height:1;cursor:pointer}
.cookie-copy{max-width:760px}
.cookie-eyebrow{display:block;font-size:9px;font-weight:600;letter-spacing:3px;text-transform:uppercase;color:var(--accent);margin-bottom:8px}
.cookie-copy h2{font-size:18px;font-weight:400;letter-spacing:0;margin-bottom:8px}
.cookie-copy p{font-size:12px;font-weight:300;line-height:1.7;color:var(--gray-dark);padding-right:12px}
.cookie-copy a{display:inline-block;margin-top:10px;font-size:9px;letter-spacing:2px;text-transform:uppercase;color:var(--accent);text-decoration:none}
.cookie-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.cookie-btn{border:1px solid rgba(27,27,27,0.16);background:transparent;color:var(--black);font-family:var(--sans);font-size:9px;font-weight:600;letter-spacing:2px;text-transform:uppercase;padding:12px 16px;cursor:pointer;transition:background 0.25s,color 0.25s,border-color 0.25s}
.cookie-btn:hover{border-color:var(--accent);color:var(--accent)}
.cookie-btn-primary{background:var(--black);border-color:var(--black);color:var(--white)}
.cookie-btn-primary:hover{background:var(--accent);border-color:var(--accent);color:var(--white)}
.cookie-btn-secondary{background:var(--white)}
.cookie-btn-muted{color:var(--gray-dark)}
.cookie-panel{grid-column:1 / -1;border-top:1px solid rgba(27,27,27,0.1);padding-top:18px;display:grid;gap:12px}
.cookie-toggle{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:14px;background:var(--white);border:1px solid rgba(27,27,27,0.08)}
.cookie-toggle strong{display:block;font-size:11px;font-weight:600;letter-spacing:1px;text-transform:uppercase;margin-bottom:4px}
.cookie-toggle small{display:block;font-size:11px;font-weight:300;line-height:1.5;color:var(--gray-dark)}
.cookie-toggle input{width:42px;height:22px;accent-color:var(--accent);flex:0 0 auto}
.cookie-toggle-disabled{opacity:0.7}
.cookie-save{justify-self:end}
.cookie-preferences{position:fixed;left:18px;bottom:18px;z-index:650;border:1px solid rgba(27,27,27,0.16);background:rgba(247,245,242,0.94);color:var(--black);font-family:var(--sans);font-size:9px;font-weight:600;letter-spacing:2px;text-transform:uppercase;padding:10px 14px;cursor:pointer;box-shadow:0 8px 24px rgba(0,0,0,0.12);transition:opacity 0.25s ease,transform 0.25s ease}
.cookie-preferences.footer-hidden{opacity:0;pointer-events:none;transform:translateY(8px)}
.cursor{width:8px;height:8px;background:var(--white);border-radius:50%;position:fixed;top:0;left:0;pointer-events:none;z-index:9999}
.cursor-follower{width:30px;height:30px;border:1px solid rgba(255,255,255,0.4);border-radius:50%;position:fixed;top:0;left:0;pointer-events:none;z-index:9998}
body.light-bg .cursor{background:var(--black)}
body.light-bg .cursor-follower{border-color:rgba(27,27,27,0.3)}
body.cursor-on-dark .cursor{background:var(--white)}
body.cursor-on-dark .cursor-follower{border-color:rgba(255,255,255,0.45)}
nav{position:fixed;top:0;left:0;right:0;z-index:100;padding:22px 60px;display:flex;align-items:center;justify-content:space-between;transition:padding 0.4s ease,background 0.4s ease,box-shadow 0.4s ease}
nav.scrolled{padding:14px 60px;background:rgba(255,255,255,0.97);backdrop-filter:blur(12px);box-shadow:0 1px 0 rgba(0,0,0,0.07)}
.nav-logo{display:block;height:50px;line-height:0}
.nav-logo span{display:none}
.nav-logo .logo-white{display:block}
nav.scrolled .nav-logo .logo-white{display:none}
nav.scrolled .nav-logo .logo-dark{display:block}
.nav-links{display:flex;gap:32px;list-style:none}
.nav-links a{font-family:var(--sans);font-size:10px;font-weight:500;letter-spacing:3px;text-transform:uppercase;color:rgba(255,255,255,0.75);text-decoration:none;transition:color 0.3s}
nav.scrolled .nav-links a{color:var(--black)}
.nav-links a:hover{color:var(--accent)}
.nav-cta{font-family:var(--sans);font-size:10px;font-weight:500;letter-spacing:3px;text-transform:uppercase;color:var(--white);text-decoration:none;border:1px solid rgba(255,255,255,0.45);padding:11px 28px;transition:all 0.3s}
nav.scrolled .nav-cta{color:var(--black);border-color:rgba(0,0,0,0.22)}
.nav-cta:hover{background:var(--accent);border-color:var(--accent);color:var(--white)!important}

.btn-primary{display:inline-block;font-family:var(--sans);font-size:10px;font-weight:500;letter-spacing:3px;text-transform:uppercase;color:var(--white);background:var(--accent);padding:16px 44px;text-decoration:none;transition:background 0.3s}
.btn-primary:hover{background:var(--accent-dark)}
.btn-outline-light{display:inline-block;font-family:var(--sans);font-size:10px;font-weight:500;letter-spacing:3px;text-transform:uppercase;color:var(--white);border:1px solid rgba(255,255,255,0.4);padding:16px 40px;text-decoration:none;transition:all 0.3s}
.btn-outline-light:hover{border-color:var(--white)}
.btn-dark{display:inline-flex;align-items:center;gap:10px;font-family:var(--sans);font-size:10px;font-weight:500;letter-spacing:3px;text-transform:uppercase;color:var(--white);background:var(--black);padding:20px 36px;text-decoration:none;transition:background 0.3s;white-space:nowrap}
.btn-dark:hover{background:var(--accent)}

.cta-centered{padding:64px 60px;display:flex;justify-content:center;background:var(--white)}

.reveal{opacity:0;transform:translateY(28px);transition:opacity 0.85s ease,transform 0.85s ease}
.reveal.visible{opacity:1;transform:translateY(0)}
.reveal-delay-1{transition-delay:0.12s}
.reveal-delay-2{transition-delay:0.24s}
.reveal-delay-3{transition-delay:0.36s}
.reveal-delay-4{transition-delay:0.48s}

.eyebrow{font-family:var(--sans);font-size:10px;font-weight:600;letter-spacing:4px;text-transform:uppercase;color:var(--accent);margin-bottom:18px;display:block}
.section-title{font-family:var(--sans);font-size:clamp(30px,3.2vw,50px);font-weight:300;line-height:1.18;margin-bottom:24px;letter-spacing:-0.3px}
.section-title em{font-family:var(--serif);font-style:italic;font-weight:500;font-size:1.06em}
.section-body{font-family:var(--sans);font-size:14px;font-weight:300;line-height:1.95;color:var(--gray-dark)}
.ph{width:100%;height:100%;display:flex;align-items:flex-end;padding:18px;position:relative}
.ph span{font-family:var(--sans);font-size:9px;letter-spacing:2px;text-transform:uppercase;color:rgba(255,255,255,0.3);position:relative;z-index:1}
.ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:sepia(20%) saturate(1.1) brightness(0.85)}

/* ── HERO ── */
#hero{height:100vh;position:relative;overflow:hidden;display:flex;flex-direction:column}
.hero-bg{position:absolute;inset:0;transform:scale(1.06)}
.hero-bg picture{width:100%;height:100%;display:block}
.hero-bg img{width:100%;height:100%;object-fit:cover;display:block}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(170deg,rgba(18,16,14,0.65) 0%,rgba(18,16,14,0.42) 55%,rgba(18,16,14,0.75) 100%)}
.hero-main{flex:1;display:flex;align-items:center;justify-content:center;position:relative;z-index:2;padding:0 40px;text-align:center}
.hero-content{max-width:860px}

/* HERO ELEMENTS — hidden before animation */
.hero-eyebrow{font-family:var(--sans);font-size:9px;font-weight:500;letter-spacing:5px;text-transform:uppercase;color:var(--accent);margin-bottom:28px;opacity:0;transform:translateY(16px)}
.hero-title{font-family:var(--sans);font-size:clamp(28px,4.8vw,72px);font-weight:300;color:var(--white);line-height:1.1;letter-spacing:-0.5px;margin-bottom:18px;text-transform:uppercase;white-space:nowrap}
.hero-title em{font-family:var(--serif);font-style:italic;font-weight:500;font-size:1.06em;text-transform:none}
/* split title: each word animates */
.hero-word{display:inline-block;opacity:1;transform:none;will-change:transform}
.hero-sub{font-family:var(--sans);font-size:13px;font-weight:300;letter-spacing:2px;color:rgba(255,255,255,0.6);margin-bottom:52px;opacity:0;transform:translateY(16px)}
.hero-cta-wrap{opacity:0;transform:translateY(16px);display:flex;justify-content:center}

.hero-stats{position:relative;z-index:2;display:grid;grid-template-columns:repeat(4,1fr);background:var(--gray-stats)}
.hero-stat{padding:26px 20px;text-align:center;border-right:1px solid rgba(0,0,0,0.07)}
.hero-stat:last-child{border-right:none}
.hero-stat-num{font-family:var(--serif);font-size:34px;font-style:italic;font-weight:500;color:var(--black);display:block;line-height:1;opacity:0;transform:translateY(10px)}
.hero-stat-label{font-family:var(--sans);font-size:9px;font-weight:400;letter-spacing:3px;text-transform:uppercase;color:var(--gray-mid);display:block;margin-top:7px;opacity:0}

.scroll-indicator{position:absolute;right:52px;bottom:110px;z-index:3;display:flex;flex-direction:column;align-items:center;gap:10px}
.scroll-indicator span{font-family:var(--sans);font-size:8px;letter-spacing:3px;text-transform:uppercase;color:rgba(255,255,255,0.3);writing-mode:vertical-rl}
.scroll-line{width:1px;height:44px;background:rgba(255,255,255,0.15);overflow:hidden;position:relative}
.scroll-line::after{content:'';position:absolute;top:-100%;left:0;width:100%;height:100%;background:var(--accent);animation:scrollDown 2s ease infinite}
@keyframes scrollDown{0%{top:-100%}100%{top:100%}}

/* ── COSA ── */
#cosa{padding:140px 60px 96px;background:var(--white)}
.cosa-inner{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:100px;align-items:center}
.cosa-img{aspect-ratio:3/4;overflow:hidden;position:relative;background:#C8BAB0}
.cosa-line{width:36px;height:1px;background:var(--accent);margin-bottom:32px}
.cosa-quote{font-family:var(--serif);font-size:22px;font-style:italic;font-weight:400;color:var(--gray-mid);margin-top:44px;padding-left:20px;border-left:2px solid var(--accent);line-height:1.6}
.cosa-gallery{max-width:1200px;margin:96px auto 0}
.cosa-gallery.reveal,.cosa-gallery.reveal.visible{transform:none}

/* ── FUNZIONA ── */
#funziona{padding:120px 60px;background:var(--off-white)}
.funziona-inner{max-width:1200px;margin:0 auto}
.funziona-header{margin-bottom:88px}
.steps-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px}
.step-card{background:var(--white);padding:52px 40px;position:relative;overflow:hidden;transition:background 0.35s}
.step-card::before{content:'';position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--accent);transform:scaleY(0);transform-origin:top;transition:transform 0.4s ease}
.step-card:hover{background:#F0EDE9}
.step-card:hover::before{transform:scaleY(1)}
.step-num{font-family:var(--serif);font-size:56px;font-style:italic;font-weight:500;color:var(--gray-light);line-height:1;margin-bottom:24px;transition:color 0.4s}
.step-card:hover .step-num{color:var(--accent-light)}
.step-title{font-family:var(--sans);font-size:13px;font-weight:500;letter-spacing:2px;text-transform:uppercase;margin-bottom:16px}
.step-desc{font-family:var(--sans);font-size:13px;font-weight:300;line-height:1.85;color:var(--gray-dark)}

/* ── SERVIZI ── */
#servizi{padding:120px 60px 0;background:var(--white)}
.servizi-inner{max-width:1200px;margin:0 auto}
.servizi-top{margin-bottom:80px}
.servizi-top .section-body{max-width:480px;margin-top:0}
.servizi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--gray-light)}
.servizio-card{background:var(--white);padding:44px 28px;position:relative;transition:background 0.35s}
.servizio-card::after{content:'';position:absolute;bottom:0;left:0;width:0;height:1px;background:var(--accent);transition:width 0.4s ease}
.servizio-card:hover{background:var(--off-white)}
.servizio-card:hover::after{width:100%}
.servizio-icon{color:var(--accent);margin-bottom:20px;display:block}
.servizio-title{font-family:var(--sans);font-size:11px;font-weight:500;letter-spacing:2px;text-transform:uppercase;margin-bottom:10px}
.servizio-desc{font-family:var(--sans);font-size:12px;font-weight:300;line-height:1.8;color:var(--gray-dark)}

/* ── EQUIPMENT ── */
#equipment{padding:120px 60px;background:var(--off-white)}
.equipment-inner{max-width:1200px;margin:0 auto}
.equipment-head{display:block;max-width:760px;margin-bottom:34px}
.equipment-head .section-body{max-width:640px;margin:22px 0 0;color:var(--gray-dark)}
.equipment-modes{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--gray-light)}
.equipment-modes span{background:var(--white);padding:18px 20px;font-family:var(--sans);font-size:9px;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--accent);text-align:center}
.equipment-board{background:var(--white);border:1px solid var(--gray-light)}
.equipment-board.reveal,.equipment-board.reveal.visible{transform:none}
.equipment-board-head{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:28px 34px;border-bottom:1px solid var(--gray-light)}
.equipment-board-head span{font-family:var(--sans);font-size:10px;font-weight:600;letter-spacing:3px;text-transform:uppercase;color:var(--gray-mid)}
.equipment-board-head strong{font-family:var(--serif);font-size:48px;font-style:italic;font-weight:500;line-height:1;color:var(--accent)}
.equipment-columns{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--gray-light);border-top:1px solid var(--gray-light)}
.equipment-column{background:var(--white);padding:36px 32px;min-height:300px}
.equipment-kicker{display:block;font-family:var(--serif);font-size:34px;font-style:italic;color:var(--accent);line-height:1;margin-bottom:28px}
.equipment-column h3{font-family:var(--sans);font-size:12px;font-weight:500;letter-spacing:3px;text-transform:uppercase;color:var(--black);margin-bottom:18px}
.equipment-column p{font-family:var(--sans);font-size:12px;font-weight:300;line-height:2;color:var(--gray-dark)}

/* ── TRAINER EXPANDING CARDS ── */
#trainer{padding:120px 60px;background:var(--white)}
.trainer-inner{max-width:1200px;margin:0 auto}
.trainer-header{margin-bottom:46px;max-width:760px}
.trainer-header .section-body{max-width:680px;margin-top:24px}
.trainer-accordion{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:var(--gray-light);border:1px solid var(--gray-light)}
.trainer-accordion.reveal,.trainer-accordion.reveal.visible{transform:none}
.trainer-accordion .faq-item{background:var(--white);border-bottom:0}
.trainer-accordion .faq-question{min-height:132px;align-items:flex-start;font-size:12px;font-weight:500;letter-spacing:1px;line-height:1.65;text-transform:uppercase}
.trainer-accordion .faq-answer p{font-size:13px}
.expanding-cards{
  display:grid;
  width:100%;
  gap:4px;
  height:560px;
  grid-template-columns:repeat(6,1fr);
  transition:grid-template-columns 0.5s cubic-bezier(0.4,0,0.2,1);
}
.expanding-cards.active-0{grid-template-columns:5fr 1fr 1fr 1fr 1fr 1fr}
.expanding-cards.active-1{grid-template-columns:1fr 5fr 1fr 1fr 1fr 1fr}
.expanding-cards.active-2{grid-template-columns:1fr 1fr 5fr 1fr 1fr 1fr}
.expanding-cards.active-3{grid-template-columns:1fr 1fr 1fr 5fr 1fr 1fr}
.expanding-cards.active-4{grid-template-columns:1fr 1fr 1fr 1fr 5fr 1fr}
.expanding-cards.active-5{grid-template-columns:1fr 1fr 1fr 1fr 1fr 5fr}
.exp-card{
  position:relative;overflow:hidden;cursor:pointer;
  border-radius:2px;
  min-width:0;
}
.exp-card img{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;
  filter:grayscale(40%);
  transform:scale(1.08);
  transition:transform 0.5s ease,filter 0.5s ease;
}
.exp-card.active img{filter:grayscale(0%);transform:scale(1)}
.exp-card-overlay{
  position:absolute;inset:0;
  background:linear-gradient(to top,rgba(20,18,16,0.88) 0%,rgba(20,18,16,0.2) 60%,transparent 100%);
}
/* collapsed label — rotated */
.exp-card-collapsed{
  position:absolute;top:50%;left:50%;
  transform:translate(-50%,-50%) rotate(-90deg);
  white-space:nowrap;
  font-family:var(--sans);font-size:9px;font-weight:500;
  letter-spacing:3px;text-transform:uppercase;
  color:rgba(255,255,255,0.6);
  transition:opacity 0.3s;
  transform-origin:center center;
}
.exp-card.active .exp-card-collapsed{opacity:0}
/* expanded content */
.exp-card-content{
  position:absolute;bottom:0;left:0;right:0;
  padding:32px 28px;
  opacity:0;
  transform:translateY(10px);
  transition:opacity 0.35s 0.1s ease,transform 0.35s 0.1s ease;
}
.exp-card.active .exp-card-content{opacity:1;transform:translateY(0)}
.trainer-spec{font-family:var(--sans);font-size:9px;letter-spacing:3px;text-transform:uppercase;color:var(--accent);display:block;margin-bottom:8px}
.trainer-name{font-family:var(--sans);font-size:18px;font-weight:400;letter-spacing:1px;color:var(--white);margin-bottom:10px}
.trainer-bio{font-family:var(--sans);font-size:12px;font-weight:300;line-height:1.75;color:rgba(255,255,255,0.65);max-width:280px}
.trainer-note{font-family:var(--sans);font-size:11px;letter-spacing:1px;color:var(--gray-mid);margin-top:24px;text-align:center}
.trainer-note em{font-family:var(--serif);font-style:italic;color:var(--accent)}

/* ── CHI SIAMO ── */
#chisiamo{padding:120px 60px;background:var(--white)}
.chisiamo-inner{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:100px;align-items:center}
.chisiamo-img-wrap{position:relative}
.chisiamo-img{aspect-ratio:1;background:#C4B5A8}
.chisiamo-badge{position:absolute;bottom:-20px;right:-20px;background:var(--accent);padding:20px 28px;text-align:center}
.chisiamo-badge span{font-family:var(--sans);font-size:13px;font-weight:500;letter-spacing:3px;text-transform:uppercase;color:var(--white);display:block}
.chisiamo-tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:32px;margin-bottom:32px}
.chisiamo-tag{font-family:var(--sans);font-size:9px;letter-spacing:2px;text-transform:uppercase;color:var(--gray-dark);border:1px solid var(--gray-light);padding:9px 18px}
.chisiamo-mantras{display:flex;flex-direction:column;gap:8px}
.chisiamo-mantra{font-family:var(--serif);font-size:20px;font-style:italic;color:var(--accent)}

/* ── GIFT CARD ── */
#giftcard{padding:120px 60px;background:var(--off-white)}
.giftcard-inner{max-width:1200px;margin:0 auto}
.giftcard-layout{display:grid;grid-template-columns:auto 1fr;gap:60px;align-items:center}
.giftcard-icon{width:100px;height:100px;border:1px solid var(--gray-light);display:flex;align-items:center;justify-content:center;color:var(--accent);flex-shrink:0;background:var(--white)}
.giftcard-title{font-family:var(--sans);font-size:clamp(26px,3.2vw,48px);font-weight:300;line-height:1.1;margin-bottom:16px;letter-spacing:-0.5px}
.giftcard-title em{font-family:var(--serif);font-style:italic;font-weight:500;font-size:1.06em;color:var(--accent)}
.giftcard-desc{font-family:var(--sans);font-size:14px;font-weight:300;line-height:1.85;color:var(--gray-dark);max-width:480px}
.giftcard-eyebrow{font-family:var(--sans);font-size:10px;font-weight:600;letter-spacing:4px;text-transform:uppercase;color:var(--accent);margin-bottom:14px;display:block}
.giftcard-widget{margin-top:36px;background:var(--white);border:1px solid var(--gray-light);padding:32px;min-height:140px}
#sportigo-container-giftcard{font-family:var(--sans);color:var(--black)}
#sportigo-container-giftcard *{font-family:var(--sans)!important;letter-spacing:0}
#sportigo-container-giftcard h1,#sportigo-container-giftcard h2,#sportigo-container-giftcard h3{font-weight:300!important;letter-spacing:0!important;color:var(--black)!important}
#sportigo-container-giftcard p,#sportigo-container-giftcard label,#sportigo-container-giftcard span{color:var(--gray-dark)}
#sportigo-container-giftcard input,#sportigo-container-giftcard textarea,#sportigo-container-giftcard select{border-radius:0!important;border:1px solid var(--gray-light)!important;background:var(--white)!important;color:var(--black)!important;box-shadow:none!important;font-size:13px!important;font-weight:300!important;line-height:1.5!important}
#sportigo-container-giftcard input:focus,#sportigo-container-giftcard textarea:focus,#sportigo-container-giftcard select:focus{outline:1px solid var(--accent)!important;outline-offset:0!important;border-color:var(--accent)!important;box-shadow:none!important}
#sportigo-container-giftcard [class~="rounded-xl"][class~="border"][class~="bg-card"][class~="text-card-foreground"][class~="mb-0"][class~="overflow-hidden"][class~="shadow-none"][class~="border-none"]{padding-top:24px!important}
#sportigo-container-giftcard [class*="rounded"]{border-radius:0!important}
#sportigo-container-giftcard [class*="shadow"]{box-shadow:none!important}
#sportigo-container-giftcard [id="giftcard-container"]{border-radius:0!important;border:1px solid var(--gray-light)!important;box-shadow:none!important}
#sportigo-container-giftcard [class*="blur-3xl"]{display:none!important}
#sportigo-container-giftcard button[class*="text-white"],#sportigo-container-giftcard button[class*="font-semibold"]{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:10px!important;border-radius:0!important;border:1px solid var(--black)!important;background:var(--black)!important;color:var(--white)!important;box-shadow:none!important;font-size:10px!important;font-weight:500!important;letter-spacing:3px!important;line-height:1.2!important;text-transform:uppercase!important;padding:18px 36px!important;min-height:54px!important;transition:background 0.3s,border-color 0.3s,color 0.3s!important}
#sportigo-container-giftcard button[class*="text-white"]:hover,#sportigo-container-giftcard button[class*="font-semibold"]:hover{background:var(--accent)!important;border-color:var(--accent)!important;color:var(--white)!important;opacity:1!important}
#sportigo-container-giftcard button[class*="text-white"]:focus-visible,#sportigo-container-giftcard button[class*="font-semibold"]:focus-visible{outline:1px solid var(--accent)!important;outline-offset:6px!important}
#sportigo-container-giftcard button svg{width:14px!important;height:14px!important}
@media (min-width:768px){
  #sportigo-container-giftcard .grid[class~="md:grid-cols-2"]{align-items:center!important}
}

/* ── PRENOTAZIONE ── */
#prenotazione{padding:120px 60px;background:#201E1B}
.prenotazione-inner{max-width:1180px;margin:0 auto}
.prenotazione-header{text-align:center;margin-bottom:60px}
.prenotazione-header .section-title{color:var(--white)}
.prenotazione-header .section-body{color:rgba(255,255,255,0.4);max-width:480px;margin:0 auto;text-align:center}
.booking-kicker{font-family:var(--sans);font-size:9px;font-weight:600;letter-spacing:3px;text-transform:uppercase;color:var(--accent)}
.app-download-section{background:#201E1B}
.app-download-section-page{min-height:calc(100svh - 96px);padding:150px 60px 120px}
.app-download-panel{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,360px);gap:1px;background:rgba(255,255,255,0.1);border:1px solid rgba(255,255,255,0.1)}
.app-download-panel.reveal,.app-download-panel.reveal.visible{transform:none}
.app-download-copy{min-height:500px;padding:54px 48px;background:rgba(255,255,255,0.045);display:flex;flex-direction:column;justify-content:space-between;gap:34px}
.app-download-copy h3{max-width:520px;font-family:var(--sans);font-size:34px;font-weight:300;line-height:1.22;color:var(--white);letter-spacing:0}
.app-download-copy p{max-width:520px;font-family:var(--sans);font-size:13px;font-weight:300;line-height:1.85;color:rgba(255,255,255,0.56)}
.app-store-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:auto}
.store-badge-link{display:inline-flex;align-items:center;justify-content:center;min-height:64px;text-decoration:none;transition:opacity 0.25s,transform 0.25s}
.store-badge-link:hover{opacity:0.86;transform:translateY(-1px)}
.store-badge-link:focus-visible{outline:1px solid var(--accent);outline-offset:6px}
.store-badge-link[hidden]{display:none}
.store-badge-link img{display:block;width:auto;max-width:100%;height:48px}
.store-badge-link[data-store-target="android"] img{height:56px}
.app-download-copy .store-legal-note{max-width:560px;margin-top:-20px;font-size:9px;line-height:1.6;color:rgba(255,255,255,0.28)}
.app-qr-card{padding:34px;background:var(--off-white);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;text-align:center}
.app-qr-card span{font-family:var(--sans);font-size:9px;font-weight:600;letter-spacing:3px;text-transform:uppercase;color:var(--accent)}
.app-qr-card img{width:min(100%,248px);height:auto;display:block;border:14px solid var(--white);box-shadow:0 18px 44px rgba(27,27,27,0.12)}
.app-qr-card p{max-width:260px;font-family:var(--sans);font-size:11px;font-weight:300;line-height:1.75;color:var(--gray-dark)}
html[data-app-device="ios"] .app-qr-card,
html[data-app-device="android"] .app-qr-card{display:none}
html[data-app-device="ios"] .app-download-panel,
html[data-app-device="android"] .app-download-panel{grid-template-columns:minmax(0,760px);justify-content:center}
html[data-app-device="ios"] .app-download-copy,
html[data-app-device="android"] .app-download-copy{min-height:360px;text-align:center;align-items:center}
html[data-app-device="ios"] .app-store-actions,
html[data-app-device="android"] .app-store-actions{justify-content:center;margin-top:4px}
html[data-app-device="ios"] .app-download-copy .store-legal-note,
html[data-app-device="android"] .app-download-copy .store-legal-note{text-align:center}
.app-download-panel-compact .app-download-copy{min-height:420px}
.prenotazione-access{text-align:center;margin-top:44px;display:flex;flex-direction:column;align-items:center;gap:16px}
.prenotazione-access p{font-family:var(--sans);font-size:10px;letter-spacing:2px;text-transform:uppercase;color:rgba(255,255,255,0.25)}

/* ── FAQ ── */
#faq{padding:120px 60px;background:var(--white)}
.faq-inner{max-width:1200px;margin:0 auto}
.faq-header{margin-bottom:72px}
.faq-categories{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:var(--gray-light)}
.faq-category{background:var(--white)}
.faq-cat-title{font-family:var(--sans);font-size:10px;font-weight:600;letter-spacing:3px;text-transform:uppercase;color:var(--accent);padding:28px 32px 0}
.faq-item{border-bottom:1px solid var(--gray-light);overflow:hidden}
.faq-item:last-child{border-bottom:none}
.faq-question{font-family:var(--sans);font-size:13px;font-weight:400;padding:20px 32px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px;transition:color 0.3s;user-select:none}
.faq-question:hover{color:var(--accent)}
.faq-question.open{color:var(--accent)}
.faq-icon{flex-shrink:0;width:16px;height:16px;position:relative}
.faq-icon::before,.faq-icon::after{content:'';position:absolute;background:currentColor;transition:transform 0.3s,opacity 0.3s}
.faq-icon::before{width:10px;height:1px;top:50%;left:50%;transform:translate(-50%,-50%)}
.faq-icon::after{width:1px;height:10px;top:50%;left:50%;transform:translate(-50%,-50%)}
.faq-question.open .faq-icon::after{transform:translate(-50%,-50%) rotate(90deg);opacity:0}
.faq-answer{max-height:0;overflow:hidden;transition:max-height 0.4s ease}
.faq-answer.open{max-height:920px}
.faq-answer p{font-family:var(--sans);font-size:13px;font-weight:300;line-height:1.8;color:var(--gray-dark);padding:0 32px 24px}

/* ── CONTATTI ── */
#contatti{padding:120px 60px;background:var(--off-white)}
.contatti-inner{max-width:1120px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(360px,0.95fr);gap:64px;align-items:start}
.contatti-copy .section-body{margin-bottom:30px;max-width:420px}
.contatti-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid rgba(27,27,27,0.12);border-left:1px solid rgba(27,27,27,0.12)}
.contatti-detail{min-height:108px;padding:22px 24px;border-right:1px solid rgba(27,27,27,0.12);border-bottom:1px solid rgba(27,27,27,0.12);display:flex;flex-direction:column;justify-content:space-between;gap:14px}
.contatti-instagram{grid-column:1/-1;color:var(--black);min-height:88px;text-decoration:none;transition:background 0.3s}
.contatti-instagram:hover{background:rgba(182,112,67,0.08)}
.contatti-instagram:focus-visible{outline:1px solid var(--accent);outline-offset:4px}
.contatti-instagram-value{display:flex;align-items:center;gap:10px;font-weight:400;transition:color 0.3s}
.contatti-instagram:hover .contatti-instagram-value,.contatti-instagram:focus-visible .contatti-instagram-value{color:var(--accent)}
.contatti-label{font-family:var(--sans);font-size:9px;letter-spacing:3px;text-transform:uppercase;color:var(--accent)}
.contatti-value{font-family:var(--sans);font-size:14px;font-weight:300;line-height:1.65;color:var(--black)}
.protected-contact{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;gap:10px;min-width:0}
.protected-contact-value{font-family:var(--sans);font-size:14px;font-weight:300;line-height:1.6;color:var(--gray-dark);min-width:0;overflow-wrap:anywhere}
.protected-contact.is-revealed .protected-contact-value{color:var(--black)}
.contatti-email,.contatti-whatsapp{appearance:none;border:0;border-bottom:1px solid var(--accent);border-radius:0;background:transparent;color:var(--black);cursor:pointer;font:inherit;font-size:12px;font-weight:500;letter-spacing:1.2px;line-height:1.6;padding:0 0 2px;text-align:left;text-transform:uppercase;white-space:nowrap;transition:color 0.3s}
.contatti-email:hover,.contatti-email:focus-visible,.contatti-whatsapp:hover,.contatti-whatsapp:focus-visible{color:var(--accent)}
.contatti-email:focus-visible,.contatti-whatsapp:focus-visible{outline:1px solid var(--accent);outline-offset:4px}
.contatti-email.is-resolving,.contatti-whatsapp.is-resolving{cursor:wait;opacity:0.58}
.contatti-map{aspect-ratio:1;background:var(--gray-light);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:8px;min-height:420px;overflow:hidden}
.contatti-map iframe{width:100%;height:100%;min-height:420px;border:0;filter:grayscale(20%) sepia(10%) saturate(0.95)}
.contatti-map span{font-family:var(--serif);font-size:20px;font-style:italic;color:var(--gray-mid)}
.contatti-map small{font-family:var(--sans);font-size:9px;letter-spacing:3px;text-transform:uppercase;color:var(--gray-mid)}

footer{background:var(--black);padding:48px 60px 32px;border-top:1px solid rgba(255,255,255,0.06)}
.footer-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:40px;gap:40px}
.footer-tagline{font-family:var(--serif);font-size:14px;font-style:italic;color:rgba(255,255,255,0.3);display:block;margin-top:12px}
.footer-contacts{text-align:right}
.footer-contacts-title{font-family:var(--sans);font-size:9px;font-weight:600;letter-spacing:3px;text-transform:uppercase;color:rgba(255,255,255,0.3);margin-bottom:12px;display:block}
.footer-contacts a,.footer-contacts p{font-family:var(--sans);font-size:12px;font-weight:300;color:rgba(255,255,255,0.5);text-decoration:none;display:block;margin-bottom:6px;line-height:1.6;transition:color 0.3s}
.footer-contacts a:hover{color:var(--accent)}
.footer-social{display:flex;justify-content:flex-end;gap:20px;margin-top:8px}
.footer-social a{font-family:var(--sans);font-size:9px;letter-spacing:2px;text-transform:uppercase;color:rgba(255,255,255,0.4);text-decoration:none;display:flex;align-items:center;gap:6px;transition:color 0.3s}
.footer-social a:hover{color:var(--accent)}
.footer-bottom{border-top:1px solid rgba(255,255,255,0.06);padding-top:24px;display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}
.footer-legal{font-family:var(--sans);font-size:9px;letter-spacing:1px;color:rgba(255,255,255,0.2)}
.footer-legal-links{display:flex;gap:24px}
.footer-legal-links a{font-family:var(--sans);font-size:9px;letter-spacing:1px;color:rgba(255,255,255,0.3);text-decoration:none;transition:color 0.3s}
.footer-legal-links a:hover{color:var(--accent)}

/* ── HIGHLIGHT TEXT ON SCROLL ── */
#highlight-quote{padding:0 60px;background:var(--black);overflow:hidden;display:flex;align-items:center;justify-content:center;min-height:50vh}
.highlight-quote-inner{max-width:1000px;margin:0 auto;text-align:center}
.highlight-text{font-family:var(--sans);font-size:clamp(28px,4.5vw,64px);font-weight:300;line-height:1.35;letter-spacing:-0.5px;display:block}
.highlight-word{display:inline;background:linear-gradient(to right,var(--white) 50%,rgba(255,255,255,0.2) 50%);background-size:200% 100%;background-position:100%;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;transition:background-position 0.5s ease}
.highlight-word.lit{background-position:0%}
.highlight-em{font-family:var(--serif);font-style:italic;font-size:1.08em}

/* ── PARALLAX GALLERY ── */
#parallax-gallery{padding:0;background:var(--black);overflow:hidden}
.pag-header{padding:80px 60px 40px;display:flex;justify-content:space-between;align-items:flex-end}
.pag-header .section-title{color:var(--white);margin-bottom:0}
.pag-subtitle{font-family:var(--sans);font-size:13px;font-weight:300;color:rgba(255,255,255,0.4);max-width:280px;text-align:right;line-height:1.7}
.pag-viewport{position:relative;overflow:hidden;aspect-ratio:3/1;width:100%}
.pag-track{display:flex;height:100%;transition:transform 0.7s cubic-bezier(0.4,0,0.2,1);will-change:transform}
.pag-slide{flex:0 0 100%;height:100%;position:relative;overflow:hidden}
.pag-slide img{position:absolute;inset:-10%;width:120%;height:120%;object-fit:cover;filter:sepia(15%) saturate(1.05) brightness(0.82);will-change:transform}
.pag-slide-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(20,18,16,0.5) 0%,transparent 50%)}
.pag-slide-caption{position:absolute;bottom:28px;left:48px;font-family:var(--sans);font-size:9px;font-weight:500;letter-spacing:3px;text-transform:uppercase;color:rgba(255,255,255,0.45)}
.pag-arrows{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);display:flex;flex-direction:row;gap:8px;z-index:10}
.pag-arrow{width:44px;height:44px;border:1px solid rgba(255,255,255,0.4);background:rgba(0,0,0,0.35);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--white);transition:all 0.3s}
.pag-arrow:hover{background:var(--accent);border-color:var(--accent)}
.pag-arrow:disabled{opacity:0.2;cursor:default;pointer-events:none}
.pag-thumbs{display:flex;gap:3px;padding:3px 0 0;overflow-x:auto;scrollbar-width:none}
.pag-thumbs::-webkit-scrollbar{display:none}
.pag-thumb{flex:0 0 20%;aspect-ratio:3/1;overflow:hidden;cursor:pointer;position:relative;opacity:0.4;transition:opacity 0.3s}
.pag-thumb.active{opacity:1}
.pag-thumb img{width:100%;height:100%;object-fit:cover;filter:sepia(15%) saturate(1.05) brightness(0.82)}
.pag-thumb-line{position:absolute;bottom:0;left:0;width:0;height:2px;background:var(--accent);transition:width 0.7s ease}
.pag-thumb.active .pag-thumb-line{width:100%}

/* ── GIFT CARD OVERLAY ── */

@media (max-width: 1180px) and (min-width: 769px) {
  nav { padding: 20px 32px; }
  nav.scrolled { padding: 14px 32px; }
  .nav-links { gap: 18px; }
  .nav-links a { font-size: 9px; letter-spacing: 2px; }
  .nav-cta { padding: 10px 18px; font-size: 9px; letter-spacing: 2px; }
}


/* ═══════════════════════════════
   MOBILE RESPONSIVE — max 768px
═══════════════════════════════ */
/* Desktop: hide hamburger */
.nav-hamburger { display: none; }
.mobile-menu { display: none; }

@media (max-width: 768px) {
  /* Hide cursor on mobile */
  .cursor, .cursor-follower { display: none; }
  body { cursor: auto; }

  /* NAV — hamburger menu */
  nav { min-height: 64px; padding: 12px 20px; }
  nav.scrolled { min-height: 58px; padding: 10px 20px; }
  .nav-links { display: none; }
  .nav-cta { display: none; }
  .nav-logo { display: flex; align-items: center; height: 34px; }
  .nav-logo svg { height: 34px !important; width: auto !important; display: block; }

  /* Hamburger button */
  .nav-hamburger {
    display: flex;
    flex-direction: column;
    gap: 5px;
    cursor: pointer;
    background: none;
    border: none;
    padding: 4px;
  }
  .nav-hamburger span {
    display: block;
    width: 24px;
    height: 1px;
    background: var(--white);
    transition: all 0.3s;
  }
  nav.scrolled .nav-hamburger span { background: var(--black); }
  .nav-hamburger.open span:nth-child(1) { transform: rotate(45deg) translate(4px, 4px); }
  .nav-hamburger.open span:nth-child(2) { opacity: 0; }
  .nav-hamburger.open span:nth-child(3) { transform: rotate(-45deg) translate(4px, -4px); }

  /* Mobile menu overlay */
  .mobile-menu {
    position: fixed;
    inset: 0;
    background: var(--black);
    z-index: 90;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 32px;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.35s ease;
  }
  .mobile-menu.open { opacity: 1; pointer-events: all; }
  .mobile-menu a {
    font-family: var(--sans);
    font-size: 13px;
    font-weight: 400;
    letter-spacing: 4px;
    text-transform: uppercase;
    color: rgba(255,255,255,0.7);
    text-decoration: none;
    transition: color 0.3s;
  }
  .mobile-menu a:hover { color: var(--accent); }
  .mobile-menu .mobile-cta {
    margin-top: 16px;
    color: var(--white);
    border: 1px solid rgba(255,255,255,0.3);
    padding: 14px 36px;
  }

  /* COOKIE BANNER */
  .cookie-banner {
    left: 12px;
    right: 12px;
    bottom: 12px;
    grid-template-columns: 1fr;
    gap: 16px;
    padding: 22px 16px 18px;
    max-height: calc(100svh - 24px);
    overflow-y: auto;
  }
  .cookie-actions { justify-content: stretch; }
  .cookie-actions .cookie-btn { flex: 1 1 100%; }
  .cookie-copy p { padding-right: 0; }
  .cookie-toggle { align-items: flex-start; }
  .cookie-save { justify-self: stretch; }
  .cookie-preferences { left: 12px; bottom: 12px; }

  /* HERO */
  #hero { height: 100svh; }
  .hero-title {
    font-size: clamp(32px, 9vw, 52px) !important;
    white-space: normal !important;
    letter-spacing: -0.5px;
    line-height: 1.1;
  }
  .hero-sub { font-size: 11px; letter-spacing: 1.5px; margin-bottom: 36px; }
  .hero-cta-wrap { flex-direction: column; align-items: center; gap: 12px; }
  .hero-stats { grid-template-columns: repeat(2, 1fr); }
  .hero-stat { padding: 18px 12px; }
  .hero-stat-num { font-size: 26px; }
  .scroll-indicator { display: none; }

  /* HIGHLIGHT TEXT */
  #highlight-quote { padding: 0 24px; min-height: 50vh; }
  .highlight-text { font-size: clamp(24px, 7vw, 40px); }

  /* COS'E' */
  #cosa { padding: 80px 20px; }
  .cosa-inner { grid-template-columns: 1fr; gap: 40px; }
  .cosa-img { aspect-ratio: 4/3; }
  .cosa-quote { font-size: 18px; }
  .cosa-gallery { margin-top: 52px; }

  /* CTA CENTERED */
  .cta-centered, .cta-centered-dark { padding: 40px 20px; }

  /* COME FUNZIONA */
  #funziona { padding: 80px 20px; }
  .steps-grid { grid-template-columns: 1fr; gap: 2px; }
  .funziona-header { margin-bottom: 48px; }

  /* PARALLAX GALLERY */
  #parallax-gallery {}
  .pag-header { padding: 48px 20px 24px; flex-direction: column; gap: 16px; align-items: flex-start; }
  .pag-subtitle { text-align: left; max-width: 100%; }
  .pag-viewport { aspect-ratio: 4/5; }
  .pag-thumb { flex: 0 0 33.33%; aspect-ratio: 4/5; }
  .pag-arrows { bottom: 16px; }
  .pag-arrow { width: 36px; height: 36px; }

  /* SERVIZI */
  #servizi { padding: 80px 20px 0; }
  .servizi-top { margin-bottom: 48px; }
  .servizi-grid { grid-template-columns: repeat(2, 1fr); }

  /* EQUIPMENT */
  #equipment { padding: 80px 20px; }
  .equipment-head { grid-template-columns: 1fr; gap: 18px; margin-bottom: 28px; }
  .equipment-modes { grid-template-columns: repeat(2, 1fr); }
  .equipment-modes span { padding: 14px 10px; font-size: 8px; letter-spacing: 1.5px; }
  .equipment-board-head { padding: 22px 20px; }
  .equipment-board-head strong { font-size: 38px; }
  .equipment-columns { grid-template-columns: 1fr; }
  .equipment-column { padding: 28px 22px; min-height: auto; }
  .equipment-kicker { font-size: 28px; margin-bottom: 18px; }
  .equipment-column h3 { font-size: 10px; letter-spacing: 2px; }
  .equipment-column p { font-size: 11px; }

  /* TRAINER — vertical expanding cards on mobile */
  #trainer { padding: 80px 20px; }
  .trainer-header { margin-bottom: 34px; }
  .trainer-accordion { grid-template-columns: 1fr; }
  .trainer-accordion .faq-question { min-height: 0; font-size: 11px; padding: 18px 20px; }
  .expanding-cards {
    display:grid !important;
    grid-template-columns: 1fr !important;
    grid-template-rows: repeat(6, 60px) !important;
    height: auto !important;
    gap: 2px;
    transition: grid-template-rows 0.5s cubic-bezier(0.4,0,0.2,1) !important;
  }
  /* Active row expands vertically */
  .expanding-cards.active-0 { grid-template-rows: 280px 60px 60px 60px 60px 60px !important; }
  .expanding-cards.active-1 { grid-template-rows: 60px 280px 60px 60px 60px 60px !important; }
  .expanding-cards.active-2 { grid-template-rows: 60px 60px 280px 60px 60px 60px !important; }
  .expanding-cards.active-3 { grid-template-rows: 60px 60px 60px 280px 60px 60px !important; }
  .expanding-cards.active-4 { grid-template-rows: 60px 60px 60px 60px 280px 60px !important; }
  .expanding-cards.active-5 { grid-template-rows: 60px 60px 60px 60px 60px 280px !important; }
  /* Collapsed cards show name horizontally (not rotated) */
  .exp-card-collapsed {
    position: absolute;
    top: 50%; left: 20px;
    transform: translateY(-50%) rotate(0deg) !important;
    font-size: 10px;
    letter-spacing: 2px;
  }
  .exp-card { min-height: 0; }
  .trainer-name { font-size: 15px; }
  .trainer-bio { opacity: 1; font-size: 11px; }

  /* GIFT CARD */
  #giftcard { padding: 80px 14px; }
  .giftcard-layout { grid-template-columns: 1fr; gap: 28px; }
  .giftcard-icon { display: none; }
  .giftcard-title { font-size: clamp(24px, 6vw, 36px); }
  .giftcard-widget { padding: 0; }
  #sportigo-container-giftcard .w-full.max-w-5xl.mx-auto.p-3 { padding: 0 !important; }
  #sportigo-container-giftcard .grid.grid-cols-1 { gap: 22px !important; }
  #sportigo-container-giftcard [class~="md:border-l"][class~="md:pl-6"].pt-2 { width: 100% !important; }
  #sportigo-container-giftcard div:has(> #giftcard-capture-wrapper) { width: 100% !important; padding: 0 !important; }
  #sportigo-container-giftcard #giftcard-capture-wrapper { width: 100% !important; padding: 0 !important; }
  #sportigo-container-giftcard #giftcard-container { width: 100% !important; max-width: 345px !important; margin: 0 auto !important; padding: 18px !important; }
  #sportigo-container-giftcard #giftcard-container .relative.text-center.px-2.space-y-3 { padding-left: 0 !important; padding-right: 0 !important; }
  #sportigo-container-giftcard #giftcard-container [class*="bg-white/80"],
  #sportigo-container-giftcard #giftcard-container [class*="bg-gray-50"] { width: 100% !important; }

  /* PRENOTAZIONE */
  #prenotazione { padding: 80px 20px; }
  .app-download-section-page { min-height: 0; padding: 120px 20px 80px; }
  .app-download-panel { grid-template-columns: 1fr; }
  .app-download-copy { min-height: auto; padding: 30px 22px 32px; gap: 18px; text-align: center; align-items: center; }
  .app-download-copy h3 { font-size: 22px; max-width: none; }
  .app-download-copy p { font-size: 12px; max-width: 310px; }
  .app-store-actions { flex-direction: column; align-items: center; justify-content: center; min-height: 64px; margin-top: 4px; }
  .store-badge-link img { height: 46px; }
  .store-badge-link[data-store-target="android"] img { height: 54px; }
  .app-download-copy .store-legal-note { margin-top: -4px; text-align: center; max-width: 310px; }
  html:not([data-app-device]) .app-store-actions .store-badge-link { display: none; }
  .app-qr-card { display: none; padding: 26px 22px 28px; }
  .app-qr-card img { width: min(100%, 220px); border-width: 12px; }

  /* FAQ */
  #faq { padding: 80px 20px; }
  .faq-categories { grid-template-columns: 1fr; }
  .faq-question { font-size: 12px; padding: 16px 20px; }
  .faq-answer p { padding: 0 20px 20px; font-size: 12px; }
  .faq-cat-title { padding: 20px 20px 0; }

  /* CONTATTI */
  #contatti { padding: 80px 20px; }
  .contatti-inner { grid-template-columns: 1fr; gap: 34px; }
  .contatti-grid { grid-template-columns: 1fr; }
  .contatti-detail { min-height: 96px; padding: 20px; }
  .protected-contact { align-items: flex-start; gap: 10px; }
  .contatti-map { aspect-ratio: 16/9; min-height: 0; }
  .contatti-map iframe { min-height: 260px; }

  /* FOOTER */
  footer { padding: 48px 20px 28px; }
  .footer-top { flex-direction: column; gap: 32px; }
  .footer-contacts { text-align: left; }
  .footer-social { justify-content: flex-start; }
  .footer-bottom { flex-direction: column; gap: 16px; text-align: center; }
  .footer-legal-links { flex-wrap: wrap; justify-content: center; gap: 16px; }

  /* SECTION TYPOGRAPHY */
  .section-title { font-size: clamp(26px, 6vw, 40px); }

  /* GIFT CARD OVERLAY */
  /* BUTTONS */
  .btn-primary { padding: 14px 32px; }
  .btn-dark { padding: 14px 24px; font-size: 9px; }
}
