*{box-sizing:border-box}
:root{
  --bg:#000000;--panel:#000000;--text:#ffffff;--muted:rgba(255,255,255,.75);
  --pink:#ff1fa8;--cyan:#14cfff;--orange:#ff1fa8;--yellow:#14cfff;--green:#14cfff;
  --display:"Road Rage",Impact,sans-serif;--body:"Inter",Arial,sans-serif;
}
html{scroll-behavior:smooth;background:var(--bg)}
/* Road Rage brand typography */
h1,h2,h3,.display,.display-small,.course-title h3,.course-num,.flow-word,.marquee-track,.media-card strong,.footer-brand strong,.mobile-menu a,.nav-brand span{
  font-family:"Road Rage", Impact, "Arial Black", sans-serif !important;
  font-weight:400 !important;
  font-style:normal;
}

/* Typography identity: Road Rage is the display face closest to the Latin Flow logo. */
.display,.display-small,.course-title h3,.media-card strong,.footer-brand strong,.mobile-menu a,.marquee-track,.nav-brand span{
  font-family:var(--display);
  font-weight:400;
}

body{margin:0;background:var(--bg);color:var(--text);font-family:var(--body);overflow-x:hidden}
body.menu-open{overflow:hidden}
a{color:inherit}
.noise{position:fixed;inset:0;z-index:100;pointer-events:none;opacity:.055;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E")}
.progress{position:fixed;z-index:120;top:0;left:0;height:3px;width:0;background:linear-gradient(90deg,var(--pink),var(--yellow),var(--green),var(--cyan));box-shadow:0 0 16px #ffffff55}

.nav{position:fixed;z-index:80;top:0;left:0;width:100%;height:78px;padding:0 clamp(18px,4vw,64px);display:flex;align-items:center;gap:36px;background:linear-gradient(180deg,rgba(0,0,0,0.9098),rgba(0,0,0,0.2706) 72%,transparent);backdrop-filter:blur(8px)}
.nav-brand{display:flex;align-items:center;gap:10px;text-decoration:none;margin-right:auto}
.nav-brand img{width:58px;height:58px;object-fit:contain;filter:invert(1) brightness(2)}
.nav-brand span{font:400 25px var(--display);letter-spacing:.06em}
.desktop-nav{display:flex;gap:24px;align-items:center}
.desktop-nav a{font-size:11px;text-decoration:none;text-transform:uppercase;font-weight:800;letter-spacing:.08em;color:#ffffff;transition:.25s}
.desktop-nav a:hover{color:#fff}
.nav-cta{font-size:11px;text-decoration:none;font-weight:900;letter-spacing:.08em;border:1px solid #ffffff55;padding:12px 15px;transition:.25s}
.nav-cta:hover{background:#fff;color:#000000}
.menu-toggle{display:none;width:44px;height:44px;border:1px solid #ffffff33;border-radius:50%;background:rgba(0,0,0,0.6667);place-content:center;gap:6px}
.menu-toggle i{display:block;width:18px;height:2px;background:#fff}
.mobile-menu{display:none}

.hero{position:relative;min-height:100svh;padding:118px clamp(20px,6vw,96px) 72px;display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.95fr);align-items:center;gap:5vw;overflow:hidden;isolation:isolate;background:radial-gradient(circle at 70% 48%,#000000 0,transparent 34%),linear-gradient(120deg,#000000 0%,#000000 55%,#000000 100%)}
.hero-grid{position:absolute;inset:0;z-index:-5;opacity:.13;background-image:linear-gradient(#fff1 1px,transparent 1px),linear-gradient(90deg,#fff1 1px,transparent 1px);background-size:72px 72px;mask-image:linear-gradient(90deg,#000,transparent 75%)}
.paint-layer{position:absolute;pointer-events:none;will-change:transform;z-index:-1;user-select:none;filter:grayscale(1) saturate(0) brightness(.72) contrast(1.12)}
.hero-paint-a{width:56vw;left:-18vw;top:4vh;opacity:.42;transform:rotate(-12deg)}
.hero-paint-b{width:50vw;right:-17vw;top:22vh;opacity:.38;transform:rotate(14deg)}
.hero-paint-c{width:42vw;left:31vw;bottom:-17vh;opacity:.24;transform:rotate(-7deg)}

.hero-copy{z-index:4;max-width:720px}
.kicker{margin:0 0 19px;font-size:10px;font-weight:900;letter-spacing:.28em;color:#ffffff}
.display,.display-small{font-family:var(--display);font-weight:400;font-synthesis:none;text-transform:uppercase;letter-spacing:-.01em;margin:0;line-height:.77;text-rendering:optimizeLegibility}
.display{font-size:clamp(80px,9vw,160px)}
.display span,.display strong{display:block}
.display strong{font-weight:400;color:var(--pink);text-shadow:8px 8px 0 #ffffff22}
.hero-lead{max-width:590px;margin:28px 0 0;color:#ffffff;font-size:clamp(16px,1.3vw,20px);line-height:1.65}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}
.btn{min-height:50px;padding:0 20px;display:inline-flex;align-items:center;justify-content:center;gap:20px;font-size:11px;font-weight:900;letter-spacing:.07em;text-decoration:none;border:0;cursor:pointer;transition:transform .25s,background .25s,color .25s;position:relative;overflow:hidden}
.btn:hover{transform:translateY(-3px)}
.btn-hot{background:linear-gradient(90deg,var(--lf-fuchsia),var(--lf-imola-cyan));color:#000000;box-shadow:12px 12px 0 rgba(255,255,255,0.251)}
.btn-hot:hover{background:#ffffff;color:#000000}
.btn-ghost{border:1px solid #ffffff55;background:rgba(0,0,0,0.6);color:#fff}
.btn-light{background:#fff;color:#000000;width:100%;margin-top:16px}
.micro-row{margin-top:30px;display:flex;gap:14px;align-items:center;flex-wrap:wrap;color:#ffffff;font-size:9px;font-weight:800;letter-spacing:.12em}
.micro-row i{width:24px;height:1px;background:#ffffff}

.hero-art{position:relative;z-index:3;height:min(72vh,700px);display:grid;place-items:center}
.paint-ring{display:none}
.logo-halo{position:absolute;width:62%;aspect-ratio:1;border-radius:50%;background:conic-gradient(from 180deg,#ffffff,#ffffff,#ffffff,#ffffff,#ffffff);filter:blur(60px);opacity:.18;animation:ringSpin 20s linear infinite reverse}
.hero-logo{position:relative;z-index:4;width:min(50vw,660px);max-height:92%;object-fit:contain;filter:invert(1) brightness(2) drop-shadow(0 24px 50px #000);animation:logoFloat 6s ease-in-out infinite}
.orbit{display:none}
.orbit-one{width:75%;aspect-ratio:1}
.orbit-two{width:57%;aspect-ratio:1;animation-duration:13s;animation-direction:reverse}
.scroll-cue{position:absolute;left:clamp(18px,2.4vw,40px);bottom:28px;font-size:8px;letter-spacing:.32em;color:#ffffff;writing-mode:vertical-rl;display:flex;align-items:center;gap:10px}
.scroll-cue span{width:1px;height:48px;background:#ffffff}

.marquee{background:#ffffff;color:#000000;overflow:hidden;padding:14px 0;position:relative;z-index:4;border-top:1px solid #ffffff;border-bottom:1px solid #ffffff}
.marquee-track{display:flex;width:max-content;align-items:center;gap:28px;font:400 30px var(--display);letter-spacing:.03em;animation:marquee 19s linear infinite}
.marquee-track b{font-family:var(--body);font-size:13px;color:var(--green)}

.section{position:relative;padding:clamp(92px,10vw,150px) clamp(20px,6vw,96px);overflow:hidden;isolation:isolate}
.section-head{position:relative;z-index:4}
.display-small{font-size:clamp(58px,6.8vw,108px)}
.display-small strong{font-weight:400;color:var(--pink)}
.course-stack{margin-top:64px;display:grid;gap:14px;position:relative;z-index:5}
.paint-courses{right:-17vw;top:4%;width:56vw;opacity:.22}
.course-card{position:relative;display:grid;grid-template-columns:80px 1.1fr 1.2fr auto;align-items:center;gap:26px;min-height:180px;padding:28px 32px;border:1px solid #ffffff18;background:linear-gradient(110deg,#000000,#000000);overflow:hidden;transform-style:preserve-3d;transition:border-color .3s,background .3s,transform .2s}
.course-card:before{content:"";position:absolute;inset:-50%;background:radial-gradient(circle at var(--mx,50%) var(--my,50%),#ffffff10,transparent 19%);pointer-events:none}
.course-card:hover{border-color:#ffffff45;background:#000000}
.course-num{font:400 52px var(--display);color:#000000}
.course-title h3{font:400 clamp(40px,4.8vw,74px)/.78 var(--display);font-synthesis:none;letter-spacing:-.01em;margin:0;text-rendering:optimizeLegibility}
.course-title span{display:block;margin-top:8px;font-size:10px;font-weight:900;letter-spacing:.2em;color:#ffffff}
.course-card p{margin:0;max-width:460px;color:#ffffff;line-height:1.65;font-size:14px}
.course-tag{font-size:9px;font-weight:900;letter-spacing:.13em;writing-mode:vertical-rl}
.pink{color:var(--pink)}.cyan{color:var(--cyan)}.orange{color:var(--orange)}.yellow{color:var(--yellow)}.green{color:var(--green)}

.flow-section{min-height:85vh;position:relative;overflow:hidden;display:flex;align-items:center;padding:120px clamp(20px,6vw,96px);isolation:isolate;background:#ffffff;color:#000000;border-top:1px solid #ffffff;border-bottom:1px solid #ffffff}
.flow-word{position:absolute;font:400 48vw/.7 var(--display);right:-4vw;bottom:-7vw;color:#00000008;white-space:nowrap;will-change:transform}
.flow-paint-a{width:46vw;left:-17vw;bottom:-5vw;opacity:.24;mix-blend-mode:multiply}
.flow-paint-b{width:43vw;right:-17vw;top:-3vw;opacity:.18;mix-blend-mode:multiply}
.flow-copy{position:relative;z-index:4;width:min(700px,70%)}
.flow-copy .kicker{color:#000000}
.flow-copy .display-small strong{color:var(--pink);text-decoration:none}
.flow-copy>p:last-of-type{max-width:600px;font-size:17px;line-height:1.75;color:#000000}
.pill-grid{display:flex;gap:9px;flex-wrap:wrap;margin-top:28px}
.pill-grid span{border:1px solid #000000;padding:10px 14px;font-size:9px;font-weight:900;letter-spacing:.12em}

.schedule{background:#000000}
.schedule-wrap{display:grid;grid-template-columns:1fr minmax(420px,.8fr);gap:7vw;align-items:center}
.schedule-board{border:1px solid #ffffff24;padding:12px;background:#000000;box-shadow:20px 20px 0 var(--green)}
.schedule-line{display:grid;grid-template-columns:120px 1fr;gap:22px;align-items:start;padding:22px 16px;border-bottom:1px solid #ffffff14}
.schedule-line span{font-size:9px;color:#ffffff;font-weight:900;letter-spacing:.18em}
.schedule-line strong{font-size:17px;line-height:1.4}
.location-line{border-bottom:0}

.experience{background:linear-gradient(180deg,#000000,#000000)}
.exp-paint{width:48vw;right:-12vw;bottom:-11vw;opacity:.18}
.section-intro{max-width:580px;color:#ffffff;line-height:1.7}
.media-grid{margin-top:58px;display:grid;grid-template-columns:1.35fr .65fr;grid-template-rows:260px 260px;gap:14px}
.media-card{position:relative;border:1px solid #ffffff17;background:#000000;overflow:hidden;display:flex;align-items:flex-end;padding:24px}
.media-large{grid-row:1/3}
.media-glow{position:absolute;inset:10%;filter:blur(60px);opacity:.25}
.pink-glow{background:var(--pink)}.cyan-glow{background:var(--cyan)}.orange-glow{background:var(--yellow)}.green-glow{background:var(--green)}
.media-card:before{content:"";position:absolute;inset:0;background:linear-gradient(120deg,#ffffff06,transparent 40%);pointer-events:none}
.media-card>div:last-child{position:relative;z-index:2}
.media-card strong{display:block;font:400 34px var(--display);font-synthesis:none;letter-spacing:-.01em}
.media-card small{color:#ffffff;font-size:9px;letter-spacing:.15em}
.play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:72px;height:72px;border:1px solid #fff;border-radius:50%;display:grid;place-items:center;z-index:3;padding-left:4px}

.open-day{position:relative;padding:clamp(100px,11vw,160px) clamp(20px,6vw,96px);overflow:hidden;isolation:isolate;background:#000000}
.open-paint-a{width:55vw;left:-20vw;top:-8vw;opacity:.22}
.open-paint-b{width:50vw;right:-15vw;bottom:-10vw;opacity:.20}
.open-grid{position:relative;z-index:5;display:grid;grid-template-columns:1fr minmax(420px,.75fr);gap:8vw;align-items:center}
.open-copy>p:not(.kicker){max-width:570px;color:#ffffff;line-height:1.7}
.open-badges{margin-top:26px;display:grid;gap:7px}
.open-badges span{font-size:9px;font-weight:900;letter-spacing:.13em}
.open-badges span:before{content:"✦";color:var(--yellow);margin-right:10px}
.booking{padding:28px;background:#ffffff;color:#000000;box-shadow:18px 18px 0 var(--green)}
.booking label{display:block;font-size:9px;font-weight:900;letter-spacing:.13em;margin-bottom:19px}
.booking input,.booking select,.booking textarea{display:block;width:100%;margin-top:7px;border:0;border-bottom:1px solid #ffffff;background:transparent;padding:10px 0;font:600 15px var(--body);outline:none;color:#000000}
.booking textarea{resize:vertical;min-height:58px}
.booking .optional{font-weight:600;color:#ffffff;letter-spacing:.04em}
.booking-summary{margin:-2px 0 20px;padding:13px 14px;background:#000000;color:#fff;border-left:4px solid var(--cyan)}
.booking-summary span{display:block;color:#ffffff;font-size:8px;font-weight:900;letter-spacing:.15em;margin-bottom:5px}
.booking-summary strong{display:block;font-size:14px;line-height:1.35}
.booking-btn{width:100%;box-shadow:none;margin-top:4px}
.booking>small{display:block;margin-top:13px;color:#ffffff;text-align:center;font-size:9px}

footer{padding:70px clamp(20px,6vw,96px) 30px;border-top:1px solid #ffffff15;background:#000000}
.footer-brand{display:flex;gap:18px;align-items:center}
.footer-brand img{width:76px;height:76px;object-fit:contain;filter:invert(1) brightness(2)}
.footer-brand strong{display:block;font:400 38px var(--display);font-synthesis:none;letter-spacing:-.01em}
.footer-brand span{display:block;color:#ffffff;font-size:9px;letter-spacing:.16em}
.footer-links{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:52px}
.footer-links a{text-decoration:none;color:#ffffff;font-size:9px;letter-spacing:.13em;line-height:1.7}
.footer-links strong{color:#fff;font-size:12px;letter-spacing:0}
.footer-bottom{margin-top:55px;border-top:1px solid #ffffff12;padding-top:20px;color:#000000;font-size:9px;letter-spacing:.11em}
.footer-bottom>span{margin:0 8px}
.footer-legal{
  display:flex;
  flex-direction:column;
  gap:8px;
  line-height:1.55;
}
.footer-legal-main{font-weight:800;color:#fff}
.footer-legal-main>span{margin:0 6px}
.footer-legal-credit{color:#ffffff}
.footer-legal-credit strong{color:var(--lf-imola-cyan);font-weight:900}
.footer-legal-rights{max-width:920px;color:#ffffff;font-size:8px;letter-spacing:.09em}

.reveal{opacity:0;transform:translateY(34px);transition:opacity .8s ease,transform .9s cubic-bezier(.2,.8,.2,1)}
.reveal.visible{opacity:1;transform:none}
@keyframes marquee{to{transform:translateX(-50%)}}
@keyframes ringSpin{to{transform:rotate(360deg)}}
@keyframes logoFloat{50%{transform:translateY(-13px) rotate(.4deg)}}

@media(max-width:900px){
  .nav{height:68px;padding:0 16px}.nav-brand img{width:48px;height:48px}.nav-brand span{font-size:21px}
  .desktop-nav,.nav-cta{display:none}.menu-toggle{display:grid}
  .mobile-menu{position:fixed;z-index:75;inset:68px 0 0;background:rgba(0,0,0,0.9686);backdrop-filter:blur(14px);padding:40px 24px;align-content:start;gap:2px;transform:translateX(100%);transition:transform .35s cubic-bezier(.2,.8,.2,1);display:grid}
  body.menu-open .mobile-menu{transform:none}
  .mobile-menu a{text-decoration:none;border-bottom:1px solid #ffffff16;padding:16px 0;font:400 32px var(--display);font-synthesis:none;letter-spacing:-.01em}
  .hero{grid-template-columns:1fr;padding:92px 18px 52px;align-content:start;gap:4px;min-height:100svh}
  .hero-copy{order:2;margin-top:-28px}.hero-art{height:42svh;min-height:300px;order:1}
  .display{font-size:clamp(72px,22vw,112px)}.hero-lead{font-size:15px;line-height:1.55;margin-top:18px}
  .hero-actions{margin-top:22px}.btn{width:100%}.micro-row{font-size:8px;margin-top:20px}
  .hero-logo{width:min(84vw,420px)}.paint-ring{display:none}
  .hero-paint-a{width:110vw;left:-65vw;opacity:.28}.hero-paint-b{width:105vw;right:-65vw;top:22vh;opacity:.24}.hero-paint-c{width:90vw;left:8vw;bottom:-8vh;opacity:.14}
  .scroll-cue{display:none}.marquee-track{font-size:25px}
  .section{padding:84px 18px}.display-small{font-size:clamp(50px,15vw,76px)}
  .course-stack{margin-top:42px}.course-card{grid-template-columns:48px 1fr;padding:23px 18px;gap:12px;min-height:0}
  .course-card p{grid-column:2;margin-top:4px}.course-tag{grid-column:2;writing-mode:horizontal-tb;margin-top:8px}.course-num{font-size:34px}.course-title h3{font-size:50px}
  .flow-section{padding:90px 18px;min-height:75vh}.flow-copy{width:100%}.flow-word{font-size:80vw}.flow-paint-a,.flow-paint-b{width:100vw;opacity:.14}
  .schedule-wrap,.open-grid{grid-template-columns:1fr;gap:44px}.schedule-board{box-shadow:9px 9px 0 var(--green)}.schedule-line{grid-template-columns:84px 1fr;padding:18px 10px}.schedule-line strong{font-size:14px}
  .media-grid{grid-template-columns:1fr;grid-template-rows:310px 190px 190px}.media-large{grid-row:auto}.exp-paint{width:100vw}
  .open-day{padding:90px 18px}.open-paint-a,.open-paint-b{width:100vw;opacity:.14}.booking{padding:22px;box-shadow:9px 9px 0 var(--green)}
  footer{padding:55px 18px 25px}.footer-links{grid-template-columns:1fr;gap:18px;margin-top:38px}.footer-brand img{width:64px;height:64px}
  .footer-legal{gap:7px;text-align:center}.footer-legal-rights{margin:0 auto;font-size:7px;line-height:1.65}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}.reveal{transition:none;opacity:1;transform:none}.marquee-track,.paint-ring,.logo-halo,.hero-logo{animation:none!important}
}

/* user refinements */
.course-num{display:none !important;}
.flow-section{background:#ffffff !important;border-top:1px solid #ffffff !important;border-bottom:1px solid #ffffff !important;}
.flow-copy .display-small strong{color:#ffffff !important;text-decoration:none !important;}
.flow-word{color:#00000008 !important;}
.flow-copy>p:last-of-type{color:#000000 !important;}
.pill-grid span{border-color:#ffffff !important;color:#000000 !important;background:#ffffff !important;}

/* Layout fix: titles above descriptions in Salsa and Bachata cards */
.course-card{
  display:flex !important;
  flex-direction:column;
  align-items:flex-start;
  gap:14px;
  min-height:0;
}
.course-title,
.course-card p,
.course-tag{
  width:100%;
}
.course-card p{
  order:2;
  margin-top:0 !important;
}
.course-tag{
  order:3;
  writing-mode:horizontal-tb;
  margin-top:2px;
}


/* user update: larger top banner logo */
.nav{height:84px !important;}
.nav-brand img{width:72px !important;height:72px !important;}
.nav-brand span{font-size:28px !important;}
@media(max-width:900px){.nav{height:74px !important;padding:0 16px}.nav-brand img{width:58px !important;height:58px !important}.nav-brand span{font-size:23px !important}.mobile-menu{inset:74px 0 0 !important}}


/* Course cards are now detail-page links */
.course-card{text-decoration:none;color:inherit;cursor:pointer;}
.course-more{order:4;margin-top:5px;font-size:9px;font-weight:900;letter-spacing:.15em;color:#ffffff;transition:transform .2s ease,color .2s ease;}
.course-card:hover .course-more{transform:translateX(5px);color:#fff;}

/* Course detail pages */
.course-page{min-height:100vh;background:#000000;padding-top:84px;}
.course-detail{position:relative;overflow:hidden;isolation:isolate;padding:clamp(72px,8vw,118px) clamp(20px,6vw,96px) 92px;}
.course-detail:before{content:"";position:absolute;inset:0;z-index:-2;background:linear-gradient(180deg,#000000 0%,#000000 100%);}
.course-detail .detail-paint-a{width:48vw;left:-18vw;top:-10vw;opacity:.16;}
.course-detail .detail-paint-b{width:44vw;right:-14vw;bottom:-16vw;opacity:.13;}
.detail-head{max-width:980px;margin-bottom:54px;}
.detail-head .display-small{font-size:clamp(64px,7.5vw,126px);}
.detail-intro{max-width:690px;margin-top:24px;color:#ffffff;font-size:15px;line-height:1.7;}
.detail-cta-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px;}
.detail-schedule{display:grid;grid-template-columns:1.2fr .8fr;gap:22px;align-items:stretch;}
.timeline-card,.levels-card{position:relative;border:1px solid #ffffff1d;background:linear-gradient(135deg,#000000,#000000);padding:clamp(24px,3vw,40px);overflow:hidden;}
.timeline-card:before,.levels-card:before{content:"";position:absolute;inset:-35%;pointer-events:none;background:radial-gradient(circle at 85% 15%,#ffffff0e,transparent 22%);}
.detail-label{position:relative;z-index:2;display:block;font-size:9px;font-weight:900;letter-spacing:.22em;color:#ffffff;margin-bottom:20px;}
.timeline{position:relative;z-index:2;display:grid;gap:0;}
.timeline-row{display:grid;grid-template-columns:155px 1fr;gap:22px;padding:23px 0;border-bottom:1px solid #ffffff12;align-items:start;}
.timeline-row:last-child{border-bottom:0;}
.timeline-time{font:400 28px var(--display);letter-spacing:.02em;color:#ffffff;}
.timeline-copy strong{display:block;font:400 42px/.9 var(--display);letter-spacing:-.01em;margin-bottom:8px;color:#ffffff;}
.timeline-copy p{margin:0;color:#ffffff;font-size:13px;line-height:1.6;}
.levels-card{display:flex;flex-direction:column;justify-content:space-between;}
.level-list{position:relative;z-index:2;display:grid;gap:14px;}
.level-item{padding:22px;border:1px solid #ffffff16;background:#000000;}
.level-item span{display:block;color:#ffffff;font-size:9px;font-weight:900;letter-spacing:.16em;margin-bottom:8px;}
.level-item strong{font:400 44px/.9 var(--display);letter-spacing:.01em;color:#ffffff;}
.level-note{position:relative;z-index:2;color:#ffffff;line-height:1.65;font-size:12px;margin:24px 0 0;}
.detail-band{background:#ffffff;color:#000000;padding:14px 0;overflow:hidden;border-top:1px solid #ffffff;border-bottom:1px solid #ffffff;}
.detail-band .marquee-track{animation:marquee 19s linear infinite;}
.course-page-footer{margin-top:0;}

@media(max-width:900px){
  .course-page{padding-top:74px;}
  .course-detail{padding:64px 18px 72px;}
  .detail-head{margin-bottom:38px;}
  .detail-head .display-small{font-size:clamp(56px,17vw,82px);}
  .detail-intro{font-size:14px;}
  .detail-schedule{grid-template-columns:1fr;}
  .timeline-card,.levels-card{padding:22px 18px;}
  .timeline-row{grid-template-columns:1fr;gap:8px;padding:20px 0;}
  .timeline-time{font-size:24px;}
  .timeline-copy strong{font-size:38px;}
  .level-item strong{font-size:38px;}
  .detail-cta-row .btn{width:100%;}
}


/* V9 — levels before schedule + simpler time font */
.detail-schedule{
  display:flex !important;
  flex-direction:column;
  gap:22px;
}
.levels-card{
  order:1;
}
.timeline-card{
  order:2;
}
.level-list{
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.timeline-time{
  font-family:var(--body) !important;
  font-weight:800 !important;
  font-size:22px !important;
  letter-spacing:.01em !important;
  line-height:1.2;
}
@media(max-width:900px){
  .level-list{grid-template-columns:1fr;}
  .timeline-time{font-size:18px !important;}
}

/* V11 — slightly smaller home course and experience titles */
#corsi .course-title h3{
  font-size:clamp(34px,4vw,62px) !important;
}
#experience .section-head .display-small{
  font-size:clamp(46px,5.2vw,82px) !important;
  line-height:.82;
}
@media(max-width:900px){
  #corsi .course-title h3{font-size:44px !important;}
  #experience .section-head .display-small{
    font-size:clamp(40px,12vw,60px) !important;
  }
}


/* V78 visibility fix: texture sopra il contenuto trasparente, testi sempre in primo piano */
.nav{
  background-color:rgba(0,0,0,.06) !important;
  backdrop-filter:blur(2px) !important;
  -webkit-backdrop-filter:blur(2px) !important;
}
.nav::after{
  z-index:0 !important;
  opacity:.84 !important;
  background-image:url('menu-paint-splashes-transparent.webp') !important;
  mix-blend-mode:normal !important;
}
.nav>*{position:relative;z-index:1}

@media(max-width:900px){
  .mobile-menu{
    background-color:rgba(0,0,0,.06) !important;
    backdrop-filter:blur(2px) !important;
    -webkit-backdrop-filter:blur(2px) !important;
  }
  .mobile-menu::before{
    z-index:0 !important;
    opacity:.9 !important;
    background-image:url('menu-paint-splashes-transparent.webp') !important;
    mix-blend-mode:normal !important;
  }
  .mobile-menu a{position:relative !important;z-index:2 !important}
}

/* V78 — trasparenza reale di barra/tendina e sfondo contatti su tutte le pagine */
.nav{
  isolation:isolate;
  overflow:hidden;
  background:rgba(0,0,0,.14) !important;
  backdrop-filter:blur(6px) saturate(1.08) !important;
  -webkit-backdrop-filter:blur(6px) saturate(1.08) !important;
  border-bottom:1px solid rgba(255,255,255,.08);
  box-shadow:0 8px 26px rgba(0,0,0,.12);
}
.nav::after{
  content:"";
  position:absolute;
  z-index:-1;
  inset:0;
  pointer-events:none;
  background-image:url('menu-paint-splashes.webp');
  background-repeat:no-repeat;
  background-size:100% auto;
  background-position:center 14%;
  mix-blend-mode:screen;
  opacity:.72;
}

footer,
.course-page-footer{
  background-color:#000000 !important;
  background-image:
    linear-gradient(90deg,rgba(0,0,0,.18),rgba(0,0,0,.05),rgba(0,0,0,.18)),
    url('menu-paint-splashes.webp') !important;
  background-repeat:no-repeat !important;
  background-size:cover,100% auto !important;
  background-position:center,center bottom !important;
}

@media(max-width:900px){
  .mobile-menu{
    isolation:isolate;
    overflow:hidden;
    background:rgba(0,0,0,.14) !important;
    backdrop-filter:blur(6px) saturate(1.08) !important;
    -webkit-backdrop-filter:blur(6px) saturate(1.08) !important;
  }
  .mobile-menu::before{
    content:"";
    position:absolute;
    z-index:-1;
    inset:0;
    pointer-events:none;
    background-image:url('menu-paint-splashes.webp');
    background-repeat:no-repeat;
    background-size:cover;
    background-position:center top;
    mix-blend-mode:screen;
    opacity:.82;
  }
  .mobile-menu a{
    position:relative;
    z-index:1;
  }

  footer,
  .course-page-footer{
    background-size:cover,auto 125% !important;
    background-position:center,center bottom !important;
  }
}

/* V78 final lock */
.nav{
  isolation:isolate !important;
  overflow:hidden !important;
  background:rgba(0,0,0,.06) !important;
  backdrop-filter:blur(2px) !important;
  -webkit-backdrop-filter:blur(2px) !important;
}
.nav::after{
  content:"" !important;
  position:absolute !important;
  z-index:0 !important;
  inset:0 !important;
  pointer-events:none !important;
  background:url('menu-paint-splashes-transparent.webp') center 14%/100% auto no-repeat !important;
  mix-blend-mode:normal !important;
  opacity:.84 !important;
}
.nav>*{position:relative !important;z-index:1 !important}

footer,
.course-page-footer{
  background-color:#000000 !important;
  background-image:
    linear-gradient(90deg,rgba(0,0,0,.12),rgba(0,0,0,.02),rgba(0,0,0,.12)),
    url('menu-paint-splashes.webp') !important;
  background-repeat:no-repeat !important;
  background-size:cover,100% auto !important;
  background-position:center,center bottom !important;
}

@media(max-width:900px){
  .mobile-menu{
    isolation:isolate !important;
    overflow:hidden !important;
    background:rgba(0,0,0,.06) !important;
    backdrop-filter:blur(2px) !important;
    -webkit-backdrop-filter:blur(2px) !important;
  }
  .mobile-menu::before{
    content:"" !important;
    position:absolute !important;
    z-index:0 !important;
    inset:0 !important;
    pointer-events:none !important;
    background:url('menu-paint-splashes-transparent.webp') center top/cover no-repeat !important;
    mix-blend-mode:normal !important;
    opacity:.9 !important;
  }
  .mobile-menu a{position:relative !important;z-index:2 !important}
  footer,
  .course-page-footer{
    background-size:cover,auto 125% !important;
    background-position:center,center bottom !important;
  }
}


/* V12 — Chi siamo */
.about-page{min-height:100vh;background:#000000;padding-top:84px;}
.about-hero{position:relative;overflow:hidden;isolation:isolate;padding:clamp(82px,10vw,150px) clamp(20px,7vw,110px) 96px;}
.about-hero .about-paint-a{width:46vw;left:-18vw;top:-10vw;opacity:.13;}
.about-hero .about-paint-b{width:43vw;right:-14vw;bottom:-16vw;opacity:.10;}
.about-copy{position:relative;z-index:2;max-width:880px;}
.about-copy .display-small{font-size:clamp(72px,8.8vw,138px);}
.about-copy .display-small strong{color:#ffffff !important;}
.about-lead{margin:28px 0 0;max-width:800px;font-size:clamp(20px,2vw,30px);line-height:1.42;font-weight:700;color:#ffffff;letter-spacing:-.025em;}
.about-text{margin:22px 0 0;max-width:760px;font-size:15px;line-height:1.75;color:#ffffff;}
.about-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px;}
.about-values{padding:96px clamp(20px,7vw,110px);background:#ffffff;color:#000000;border-top:1px solid #ffffff;border-bottom:1px solid #ffffff;}
.about-values-head{max-width:850px;margin-bottom:46px;}
.about-values .kicker{color:#000000;}
.about-values .display-small strong{color:#ffffff !important;}
.about-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;}
.about-card{position:relative;min-height:240px;padding:30px;border:1px solid #ffffff;background:#ffffff;display:flex;flex-direction:column;align-items:flex-start;}
.about-card>span{font-size:10px;font-weight:900;letter-spacing:.22em;color:#ffffff;margin-bottom:auto;}
.about-card>strong{font-size:18px;line-height:1.12;letter-spacing:-.02em;margin-top:48px;}
.about-card>p{font-size:13px;line-height:1.65;color:#000000;margin:12px 0 0;max-width:520px;}
.staff-section{padding:100px clamp(20px,7vw,110px) 110px;background:#000000;}
.staff-heading{max-width:850px;margin-bottom:40px;}
.staff-heading .display-small strong{color:#ffffff !important;}
.staff-heading>p:last-child{color:#ffffff;line-height:1.65;margin:20px 0 0;}
.staff-photo-placeholder{aspect-ratio:16/9;min-height:360px;border:1px solid #ffffff22;background:linear-gradient(135deg,#000000,#000000);display:grid;place-items:center;position:relative;overflow:hidden;}
.staff-photo-placeholder:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,transparent 49.8%,#ffffff0c 50%,transparent 50.2%),linear-gradient(45deg,transparent 49.8%,#ffffff0c 50%,transparent 50.2%);}
.staff-photo-inner{position:relative;z-index:2;text-align:center;display:flex;flex-direction:column;align-items:center;gap:6px;}
.staff-photo-inner span{font-size:9px;font-weight:900;letter-spacing:.28em;color:#ffffff;}
.staff-photo-inner strong{font:400 clamp(44px,7vw,92px)/.8 var(--display);color:#ffffff;}
.staff-photo-inner small{font-size:11px;color:#ffffff;letter-spacing:.08em;text-transform:uppercase;}
@media(max-width:900px){
  .about-page{padding-top:74px;}
  .about-hero{padding:72px 18px 72px;}
  .about-copy .display-small{font-size:clamp(60px,19vw,90px);}
  .about-lead{font-size:20px;}
  .about-text{font-size:14px;}
  .about-actions .btn{width:100%;}
  .about-values{padding:74px 18px;}
  .about-grid{grid-template-columns:1fr;}
  .about-card{min-height:210px;padding:24px 20px;}
  .staff-section{padding:76px 18px 86px;}
  .staff-photo-placeholder{aspect-ratio:4/5;min-height:430px;}
}


/* V13 — Chi siamo refinements */
.about-card>span{margin-bottom:10px !important;}
.about-card>strong{margin-top:0 !important;}
.staff-section{padding-top:76px !important;}
.staff-photo-placeholder:before{display:none !important;}
.staff-photo-inner,.staff-heading{display:none !important;}


/* V14 - Staff heading */
.staff-heading{
  margin:0 0 24px;
  font:400 clamp(44px,5.6vw,82px)/.85 var(--display);
  letter-spacing:-.01em;
  color:#ffffff;
  text-transform:uppercase;
}
@media(max-width:900px){
  .staff-heading{margin-bottom:18px;font-size:clamp(38px,12vw,58px);}
}


/* Home — CTA verso Chi siamo */
.flow-about-btn{
  margin-top:26px;
  background:#000000;
  color:#fff;
  border:1px solid #000000;
}
.flow-about-btn:hover{
  background:#000000;
  color:#fff;
}
@media(max-width:900px){
  .flow-about-btn{width:auto;min-width:220px;}
}


/* V16 — Livelli cliccabili con spiegazione a tendina */
.level-list{gap:12px !important;}
.level-dropdown{
  padding:0 !important;
  overflow:hidden;
  border:1px solid #ffffff22 !important;
  background:#000000 !important;
  transition:border-color .22s ease, background .22s ease;
}
.level-dropdown:hover,
.level-dropdown[open]{
  border-color:#ffffff55 !important;
  background:#000000 !important;
}
.level-dropdown summary{
  list-style:none;
  cursor:pointer;
  display:grid;
  grid-template-columns:1fr auto 28px;
  align-items:center;
  gap:14px;
  padding:18px 20px;
  user-select:none;
}
.level-dropdown summary::-webkit-details-marker{display:none;}
.level-dropdown summary span{
  font:800 10px/1.2 var(--body);
  letter-spacing:.16em;
  color:#ffffff;
}
.level-dropdown summary strong{
  font:700 15px/1.2 var(--body) !important;
  letter-spacing:.08em;
  color:#ffffff;
}
.level-dropdown summary i{
  width:28px;
  height:28px;
  border:1px solid #ffffff2e;
  border-radius:50%;
  display:grid;
  place-items:center;
  font:400 18px/1 var(--body);
  color:#ffffff;
  font-style:normal;
  transition:transform .22s ease, background .22s ease;
}
.level-dropdown[open] summary i{
  transform:rotate(45deg);
  background:#ffffff;
  color:#000000;
}
.level-explainer{
  padding:0 20px 20px;
  border-top:1px solid #ffffff12;
  padding-top:16px;
  color:#ffffff;
  font:500 13px/1.7 var(--body);
}
@media(max-width:900px){
  .level-dropdown summary{
    grid-template-columns:1fr auto 26px;
    padding:16px;
    gap:10px;
  }
  .level-dropdown summary strong{font-size:14px !important;}
  .level-explainer{padding:14px 16px 17px;font-size:13px;}
}


/* V17 — Giorno sopra, livello sotto; pulsante leggermente più grande */
.level-dropdown summary{
  grid-template-columns:1fr 34px !important;
  grid-template-areas:
    "day icon"
    "level icon";
  row-gap:5px !important;
  column-gap:18px !important;
  padding:22px 24px !important;
  min-height:82px;
}
.level-dropdown summary span{
  grid-area:day;
  margin:0 !important;
  font-size:11px !important;
}
.level-dropdown summary strong{
  grid-area:level;
  font-size:17px !important;
  letter-spacing:.07em !important;
}
.level-dropdown summary i{
  grid-area:icon;
  width:34px !important;
  height:34px !important;
  font-size:20px !important;
}
@media(max-width:900px){
  .level-dropdown summary{
    grid-template-columns:1fr 32px !important;
    grid-template-areas:
      "day icon"
      "level icon";
    padding:20px !important;
    min-height:78px;
  }
  .level-dropdown summary span{font-size:10px !important;}
  .level-dropdown summary strong{font-size:16px !important;}
  .level-dropdown summary i{
    width:32px !important;
    height:32px !important;
    font-size:19px !important;
  }
}




/* V19 — Titolo staff su due righe e foto senza riga inferiore */
.staff-heading{
  display:block !important;
  margin:0 0 26px !important;
  font:400 clamp(48px,6vw,88px)/.86 var(--display) !important;
  letter-spacing:-.01em;
  color:#ffffff;
  text-transform:uppercase;
}
.staff-heading span{
  display:block;
}
.staff-photo{
  margin:0;
  width:100%;
  background:#fff;
  overflow:hidden;
  border:0 !important;
  box-shadow:none !important;
  line-height:0;
}
.staff-photo img{
  display:block;
  width:100%;
  height:auto;
  object-fit:contain;
  background:#fff;
  border:0;
  margin:0;
}
@media(max-width:900px){
  .staff-heading{
    margin-bottom:18px !important;
    font-size:clamp(42px,13vw,62px) !important;
  }
  .staff-photo{
    border-left:0;
    border-right:0;
  }
}


/* V21 — Nomi sotto la foto, meno spazio tra sezioni, prolungamento bianco laterale */
.about-hero{padding-bottom:72px !important;}
.staff-section{padding:58px clamp(20px,7vw,110px) 62px !important;}
.about-values{padding:68px clamp(20px,7vw,110px) 72px !important;}
.about-values-head{margin-bottom:32px !important;}
.staff-heading{margin:0 0 18px !important;}
.staff-photo{
  margin:0;
  width:100%;
  background:#fff;
  padding:0 clamp(18px,3.2vw,54px) 18px !important;
  overflow:hidden;
  border:0 !important;
  box-shadow:none !important;
  line-height:0;
}
.staff-photo img{
  display:block;
  width:100%;
  height:auto;
  object-fit:contain;
  background:#fff;
  border:0;
  margin:0;
}
.staff-names{
  display:block;
  margin-top:14px;
  text-align:center;
  font-size:12px;
  line-height:1.4;
  font-weight:800;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:#000000;
}
@media(max-width:900px){
  .about-hero{padding-bottom:54px !important;}
  .staff-section{padding:48px 18px 52px !important;}
  .about-values{padding:54px 18px 58px !important;}
  .staff-heading{margin-bottom:14px !important;}
  .staff-photo{padding:0 12px 14px !important;}
  .staff-names{font-size:10px; letter-spacing:.16em; margin-top:12px;}
}


/* V22 — sezione staff bianca + banda sotto invertita */
.staff-section{
  background:#ffffff !important;
}
.staff-heading{
  color:#000000 !important;
}
.staff-names{
  color:#000000 !important;
}
.detail-band{
  background:#000000 !important;
  color:#ffffff !important;
  border-top:1px solid #000000 !important;
  border-bottom:1px solid #000000 !important;
}
@media(max-width:900px){
  .staff-section{
    background:#ffffff !important;
  }
  .detail-band{
    background:#000000 !important;
    color:#ffffff !important;
  }
}


/* V24 — fascia ripristinata in fondo e continuità Staff / Il nostro modo */
.staff-section{
  background:#ffffff !important;
  padding-bottom:34px !important;
}
.about-values{
  background:#ffffff !important;
  color:#000000 !important;
  border-top:0 !important;
  padding-top:34px !important;
}
.about-values .kicker{color:#000000 !important;}
.about-values .display-small{color:#000000 !important;}
.about-values .display-small strong{color:#ffffff !important;}
.detail-band{
  background:#000000 !important;
  color:#ffffff !important;
  border-top:1px solid #000000 !important;
  border-bottom:1px solid #000000 !important;
}
@media(max-width:900px){
  .staff-section{padding-bottom:26px !important;}
  .about-values{padding-top:26px !important;}
}


/* V26 — Nuovo logo Latin Flow a colori */
.nav-brand img{
  filter:none !important;
  width:66px !important;
  height:66px !important;
}
.hero-logo{
  filter:drop-shadow(0 24px 50px #000) !important;
  width:min(55vw,700px) !important;
}
.footer-brand img{
  filter:none !important;
  width:92px !important;
  height:92px !important;
}
@media(max-width:900px){
  .nav-brand img{width:58px !important;height:58px !important;}
  .hero-logo{width:min(88vw,620px) !important;}
  .footer-brand img{width:82px !important;height:82px !important;}
}


/* V27 — barra superiore senza IMOLA + logo hero più in alto */
.hero-logo{
  top:-58px !important;
}
@media(max-width:900px){
  .hero-logo{top:-34px !important;}
}


/* V28 — logo home un po' più basso, titoli nei colori del logo, barra alta più stretta */
:root{
  --lf-yellow:#14cfff;
  --lf-orange:#ff1fa8;
  --lf-pink:#ff1fa8;
  --lf-cyan:#14cfff;
}

.nav{
  height:72px !important;
  padding:0 clamp(16px,3.5vw,54px) !important;
  gap:28px !important;
}
.nav-brand img{
  width:54px !important;
  height:54px !important;
}
.nav-cta{
  padding:10px 14px !important;
}
.hero-art{
  padding-top:24px !important;
}
.hero-logo{
  margin-top:18px !important;
}

.display,
.display-small,
.course-title h3,
.staff-heading,
.detail-head .display-small,
.about-copy .display-small,
.about-values .display-small,
.section-head .display-small{
  background:linear-gradient(90deg,var(--lf-yellow) 0%,var(--lf-orange) 22%,var(--lf-pink) 58%,var(--lf-cyan) 100%) !important;
  -webkit-background-clip:text !important;
  background-clip:text !important;
  color:transparent !important;
  text-shadow:none !important;
}
.display span,
.display strong,
.display-small strong{
  color:inherit !important;
  text-shadow:none !important;
}

@media(max-width:900px){
  .nav{
    height:64px !important;
    padding:0 14px !important;
  }
  .nav-brand img{
    width:44px !important;
    height:44px !important;
  }
  .mobile-menu{
    inset:64px 0 0 !important;
  }
  .hero-art{
    padding-top:14px !important;
  }
  .hero-logo{
    margin-top:12px !important;
  }
}


/* V29 — titoli fucsia con ombra viola, footer brand fucsia, CTA WhatsApp fucsia/viola */
:root{
  --lf-fuchsia:#ff1fa8;
  --lf-violet:#ff1fa8;
}

.display,
.display-small,
.course-title h3,
.staff-heading,
.detail-head .display-small,
.about-copy .display-small,
.about-values .display-small,
.section-head .display-small{
  background:none !important;
  -webkit-background-clip:border-box !important;
  background-clip:border-box !important;
  color:var(--lf-fuchsia) !important;
  text-shadow:0 10px 0 rgba(20,207,255,.45) !important;
  line-height:.9 !important;
  padding-bottom:.08em !important;
  overflow:visible !important;
}
.display span,
.display strong,
.display-small strong{
  color:inherit !important;
  text-shadow:inherit !important;
}
.hero-copy .display,
.section-head .display-small,
.about-copy .display-small,
.about-values .display-small,
.staff-heading,
.detail-head .display-small{
  overflow:visible !important;
}
.footer-brand strong{
  color:var(--lf-fuchsia) !important;
  text-shadow:0 6px 0 rgba(20,207,255,.35) !important;
}
.booking-btn,
.btn.booking-btn,
button.booking-btn{
  background:linear-gradient(90deg,var(--lf-fuchsia),var(--lf-violet)) !important;
  color:#fff !important;
  box-shadow:12px 12px 0 rgba(20,207,255,.35) !important;
  border:0 !important;
}
.booking-btn:hover,
.btn.booking-btn:hover,
button.booking-btn:hover{
  background:linear-gradient(90deg,#ff47ba,#14cfff) !important;
  color:#fff !important;
}
@media(max-width:900px){
  .display,
  .display-small,
  .course-title h3,
  .staff-heading,
  .detail-head .display-small,
  .about-copy .display-small,
  .about-values .display-small,
  .section-head .display-small{
    line-height:.92 !important;
    padding-bottom:.1em !important;
    text-shadow:0 7px 0 rgba(20,207,255,.4) !important;
  }
}


/* V30 — parti grigie dei titoli nel celeste IMOLA del logo */
:root{
  --lf-imola-cyan:#14cfff;
}

/* Porzioni che nella base erano grigie */
.flow-copy .display-small strong,
.about-copy .display-small strong,
.about-values .display-small strong{
  color:var(--lf-imola-cyan) !important;
  text-shadow:0 10px 0 rgba(20,207,255,.45) !important;
}

@media(max-width:900px){
  .flow-copy .display-small strong,
  .about-copy .display-small strong,
  .about-values .display-small strong{
    text-shadow:0 7px 0 rgba(20,207,255,.4) !important;
  }
}


/* V31 — giallo Latin per le parti secondarie dei titoli + ombre nere su sfondo bianco */
:root{
  --lf-yellow:#14cfff;
}

/* Tutte le porzioni dei titoli che nella base erano grigie */
.display-small strong,
.detail-head .display-small strong,
.about-copy .display-small strong,
.about-values .display-small strong,
.flow-copy .display-small strong{
  color:var(--lf-yellow) !important;
}

/* Ombre nere per i titoli nelle sezioni a sfondo bianco */
.flow-copy .display-small,
.flow-copy .display-small strong,
.about-values .display-small,
.about-values .display-small strong,
.staff-heading,
.staff-heading span{
  text-shadow:0 10px 0 rgba(0,0,0,.28) !important;
}

@media(max-width:900px){
  .flow-copy .display-small,
  .flow-copy .display-small strong,
  .about-values .display-small,
  .about-values .display-small strong,
  .staff-heading,
  .staff-heading span{
    text-shadow:0 7px 0 rgba(0,0,0,.26) !important;
  }
}


/* V32 — energia celeste, FLOW sovraimpresso celeste trasparente, ombre nere piene su sfondo bianco */
:root{
  --lf-imola-cyan:#14cfff;
}

/* Titolo BALLARE È / PIÙ DI UNA FIGURA: ombre nere piene */
.flow-copy .display-small,
.flow-copy .display-small strong{
  text-shadow:0 10px 0 #000 !important;
}

/* Grande FLOW in trasparenza nella sezione bianca */
.flow-word{
  color:rgba(20,207,255,.18) !important;
}

/* Titoli su sfondo bianco nella pagina Chi siamo: ombre nere piene */
.staff-heading,
.staff-heading span,
.about-values .display-small,
.about-values .display-small strong{
  text-shadow:0 10px 0 #000 !important;
}

/* Nella sezione experience, LA NOSTRA ENERGIA! diventa celeste ma mantiene l'ombra corrente */
.experience .display-small .energy-cyan{
  color:var(--lf-imola-cyan) !important;
}

@media(max-width:900px){
  .flow-copy .display-small,
  .flow-copy .display-small strong,
  .staff-heading,
  .staff-heading span,
  .about-values .display-small,
  .about-values .display-small strong{
    text-shadow:0 7px 0 #000 !important;
  }
  .flow-word{
    color:rgba(20,207,255,.16) !important;
  }
}


/* V33 — NEL celeste, open day badges fucsia/giallo, CTA cyan->fuchsia, salsa/bachata bianchi con ombra celeste */
:root{
  --lf-fuchsia:#ff1fa8;
  --lf-violet:#ff1fa8;
  --lf-imola-cyan:#14cfff;
  --lf-yellow:#14cfff;
}

/* Open Day: NEL celeste */
.open-copy .nel-cyan{
  color:var(--lf-imola-cyan) !important;
  text-shadow:inherit !important;
}

/* Open Day badges */
.open-badges span{
  color:var(--lf-yellow) !important;
}
.open-badges span:before{
  color:var(--lf-fuchsia) !important;
}

/* Pulsanti richiesti */
.hero .btn-hot,
.schedule .btn-light{
  background:linear-gradient(90deg,var(--lf-imola-cyan),var(--lf-fuchsia)) !important;
  color:#fff !important;
  box-shadow:12px 12px 0 rgba(20,207,255,.35) !important;
  border:0 !important;
}
.hero .btn-hot:hover,
.schedule .btn-light:hover{
  background:linear-gradient(90deg,#3fe2ff,#ff47ba) !important;
  color:#fff !important;
}

/* Home cards: SALSA / BACHATA */
.course-title h3{
  color:#fff !important;
  text-shadow:0 8px 0 var(--lf-imola-cyan) !important;
  background:none !important;
  -webkit-background-clip:border-box !important;
  background-clip:border-box !important;
}

/* Pagine corsi: SALSA / BACHATA */
.detail-head .title-white-cyan{
  color:#fff !important;
  text-shadow:0 10px 0 var(--lf-imola-cyan) !important;
}

@media(max-width:900px){
  .course-title h3{
    text-shadow:0 6px 0 var(--lf-imola-cyan) !important;
  }
  .detail-head .title-white-cyan{
    text-shadow:0 7px 0 var(--lf-imola-cyan) !important;
  }
}


/* V34 — raffinamenti colori home/open day */
:root{
  --lf-yellow:#14cfff;
  --lf-orange:#ff1fa8;
  --lf-fuchsia:#ff1fa8;
  --lf-violet:#ff1fa8;
  --lf-imola-cyan:#14cfff;
}

/* HERO: FLOW giallo -> arancione come il cerchio del logo */
.hero-copy .display strong{
  background:linear-gradient(90deg,var(--lf-yellow),var(--lf-orange)) !important;
  -webkit-background-clip:text !important;
  background-clip:text !important;
  color:transparent !important;
}

/* Pulsante SCOPRI I CORSI: contorno giallo -> arancione, interno nero */
.hero .btn-ghost{
  background:linear-gradient(#000000,#000000) padding-box, linear-gradient(90deg,var(--lf-yellow),var(--lf-orange)) border-box !important;
  border:1px solid transparent !important;
  color:#fff !important;
  box-shadow:none !important;
}
.hero .btn-ghost:hover{
  background:linear-gradient(#000000,#000000) padding-box, linear-gradient(90deg,var(--lf-yellow),var(--lf-orange)) border-box !important;
  color:#fff !important;
}

/* Riga info sotto hero */
.micro-row span{
  color:var(--lf-imola-cyan) !important;
}
.micro-row i{
  background:#ffffff !important;
}

/* Fascia che scorre: puntini viola */
.marquee-track b{
  color:var(--lf-violet) !important;
}

/* BALLARE È viola, ombra nera */
.flow-copy .ballare-violet{
  color:var(--lf-violet) !important;
  text-shadow:0 10px 0 #000 !important;
}

/* Pulsante SCOPRI CHI SIAMO: viola -> celeste */
.flow-about-btn{
  background:linear-gradient(90deg,var(--lf-violet),var(--lf-imola-cyan)) !important;
  color:#fff !important;
  border:0 !important;
  box-shadow:12px 12px 0 rgba(20,207,255,.22) !important;
}
.flow-about-btn:hover{
  background:linear-gradient(90deg,#14cfff,#43ddff) !important;
  color:#fff !important;
}

/* SCEGLI IL TUO RITMO: TUO e RITMO gialli, tutti sulla stessa riga */
.courses .section-head .display-small{
  line-height:.9 !important;
}
.courses .section-head .tuo-yellow,
.courses .section-head .display-small strong{
  color:var(--lf-yellow) !important;
}

/* Tabella QUANDO & DOVE: ombra bianca */
.schedule-board{
  box-shadow:20px 20px 0 #fff !important;
}

/* Open day: parole dopo i punti celesti, ombra del riquadro violetto */
.open-badges span{
  color:var(--lf-imola-cyan) !important;
}
.booking{
  box-shadow:18px 18px 0 var(--lf-violet) !important;
}

/* Mobile fine-tuning */
@media(max-width:900px){
  .flow-copy .ballare-violet{
    text-shadow:0 7px 0 #000 !important;
  }
  .schedule-board{
    box-shadow:12px 12px 0 #fff !important;
  }
  .booking{
    box-shadow:12px 12px 0 var(--lf-violet) !important;
  }
}


/* V35 — fix FLOW hero, rimuovi ombra prenota la prova, ombra schedule viola */
.hero-copy .display strong{
  display:inline-block !important;
  background:linear-gradient(90deg,var(--lf-yellow),var(--lf-orange)) !important;
  -webkit-background-clip:text !important;
  background-clip:text !important;
  -webkit-text-fill-color:transparent !important;
  color:transparent !important;
  opacity:1 !important;
}

.hero .btn-hot{
  box-shadow:none !important;
}
.hero .btn-hot:hover{
  box-shadow:none !important;
}

.schedule-board{
  box-shadow:18px 18px 0 var(--lf-violet) !important;
}

@media(max-width:900px){
  .schedule-board{
    box-shadow:12px 12px 0 var(--lf-violet) !important;
  }
}


/* V36 — spazio nel riquadro orari + fix definitivo FLOW hero */
.schedule-board{
  padding:12px 12px 26px !important;
}
.schedule .btn-light{
  margin-top:18px !important;
  margin-bottom:8px !important;
}

/* Hero title: evita trasparenza e tagli su FLOW */
.hero-copy .display{
  line-height:.9 !important;
  padding-bottom:.12em !important;
  overflow:visible !important;
}
.hero-copy .display span,
.hero-copy .display strong{
  display:block !important;
}
.hero-copy .display strong{
  line-height:1 !important;
  padding-bottom:.08em !important;
  color:var(--lf-orange) !important; /* fallback pieno */
  background-image:linear-gradient(90deg,var(--lf-yellow) 0%, var(--lf-orange) 100%) !important;
  background-repeat:no-repeat !important;
  background-size:100% 100% !important;
  -webkit-background-clip:text !important;
  background-clip:text !important;
  -webkit-text-fill-color:transparent !important;
  text-fill-color:transparent !important;
  text-shadow:none !important;
  filter:none !important;
  opacity:1 !important;
  overflow:visible !important;
}

@media(max-width:900px){
  .schedule-board{
    padding:12px 12px 22px !important;
  }
  .schedule .btn-light{
    margin-top:16px !important;
    margin-bottom:6px !important;
  }
  .hero-copy .display{
    line-height:.92 !important;
    padding-bottom:.14em !important;
  }
  .hero-copy .display strong{
    padding-bottom:.1em !important;
  }
}


/* V37 — ombra su FLOW hero + niente taglio + spazio a destra del pulsante orari */
.hero-copy .display{
  line-height:1.02 !important;
  padding-bottom:.18em !important;
  overflow:visible !important;
}
.hero-copy .display strong{
  display:inline-block !important;
  line-height:1.02 !important;
  padding-bottom:.12em !important;
  background-image:linear-gradient(90deg,var(--lf-yellow) 0%, var(--lf-orange) 100%) !important;
  background-repeat:no-repeat !important;
  background-size:100% 100% !important;
  -webkit-background-clip:text !important;
  background-clip:text !important;
  -webkit-text-fill-color:transparent !important;
  color:transparent !important;
  text-shadow:0 10px 0 rgba(20,207,255,.45) !important;
  filter:none !important;
  opacity:1 !important;
  overflow:visible !important;
}

.schedule .btn-light{
  width:calc(100% - 14px) !important;
  margin-right:14px !important;
  box-sizing:border-box !important;
}

@media(max-width:900px){
  .hero-copy .display{
    line-height:1.04 !important;
    padding-bottom:.2em !important;
  }
  .hero-copy .display strong{
    line-height:1.04 !important;
    padding-bottom:.14em !important;
    text-shadow:0 7px 0 rgba(20,207,255,.45) !important;
  }
  .schedule .btn-light{
    width:calc(100% - 10px) !important;
    margin-right:10px !important;
  }
}


/* V38 — FLOW hero pieno, non trasparente e non tagliato */
.hero-copy .display{
  line-height: 1.08 !important;
  padding-bottom: .22em !important;
  overflow: visible !important;
}
.hero-copy .display strong{
  display: inline-block !important;
  line-height: 1.05 !important;
  padding-bottom: .14em !important;
  background: none !important;
  background-image: none !important;
  -webkit-background-clip: border-box !important;
  background-clip: border-box !important;
  -webkit-text-fill-color: #ff1fa8 !important;
  color: #ff1fa8 !important;
  opacity: 1 !important;
  text-shadow: 0 10px 0 rgba(20,207,255,.45) !important;
  overflow: visible !important;
}

@media(max-width:900px){
  .hero-copy .display{
    line-height: 1.1 !important;
    padding-bottom: .24em !important;
  }
  .hero-copy .display strong{
    line-height: 1.08 !important;
    padding-bottom: .16em !important;
    text-shadow: 0 7px 0 rgba(20,207,255,.45) !important;
  }
}


/* V39 — bottoni chi siamo + hero, e titolo VIVI IL FLOW */
:root{
  --lf-fuchsia:#ff1fa8;
  --lf-violet:#ff1fa8;
  --lf-imola-cyan:#14cfff;
}

/* Home hero: VIVI celeste, FLOW fucsia */
.hero-copy .display{
  overflow:visible !important;
}
.hero-copy .display span{
  color:var(--lf-imola-cyan) !important;
  -webkit-text-fill-color:var(--lf-imola-cyan) !important;
  background:none !important;
  text-shadow:0 10px 0 rgba(20,207,255,.45) !important;
}
.hero-copy .display strong{
  color:var(--lf-fuchsia) !important;
  -webkit-text-fill-color:var(--lf-fuchsia) !important;
  background:none !important;
  background-image:none !important;
  text-shadow:0 10px 0 rgba(20,207,255,.45) !important;
}

/* Pulsante pieno: celeste -> fucsia, senza ombra */
.hero .btn-hot,
.about-actions .btn-hot{
  background:linear-gradient(90deg,var(--lf-imola-cyan),var(--lf-fuchsia)) !important;
  color:#fff !important;
  box-shadow:none !important;
  border:0 !important;
}
.hero .btn-hot:hover,
.about-actions .btn-hot:hover{
  background:linear-gradient(90deg,#38deff,#ff47ba) !important;
  color:#fff !important;
  box-shadow:none !important;
}

/* Pulsante bordo: fucsia -> viola */
.hero .btn-ghost,
.about-actions .btn-ghost{
  background:linear-gradient(#000000,#000000) padding-box, linear-gradient(90deg,var(--lf-fuchsia),var(--lf-violet)) border-box !important;
  border:1px solid transparent !important;
  color:#fff !important;
  box-shadow:none !important;
}
.about-actions .btn-ghost{
  background:linear-gradient(#000000,#000000) padding-box, linear-gradient(90deg,var(--lf-fuchsia),var(--lf-violet)) border-box !important;
}
.hero .btn-ghost:hover,
.about-actions .btn-ghost:hover{
  background:linear-gradient(#000000,#000000) padding-box, linear-gradient(90deg,#ff47ba,#14cfff) border-box !important;
  color:#fff !important;
}

@media(max-width:900px){
  .hero-copy .display span,
  .hero-copy .display strong{
    text-shadow:0 7px 0 rgba(20,207,255,.45) !important;
  }
}


/* V40 — HERO + sezione staff + titolo POCHE */
:root{
  --lf-yellow:#14cfff;
  --lf-violet:#ff1fa8;
  --lf-imola-cyan:#14cfff;
}

/* Home: VIVI celeste, FLOW giallo pieno */
.hero-copy .display{
  overflow:visible !important;
  line-height:1.08 !important;
  padding-bottom:.18em !important;
}
.hero-copy .display span{
  color:var(--lf-imola-cyan) !important;
  -webkit-text-fill-color:var(--lf-imola-cyan) !important;
  background:none !important;
  text-shadow:0 10px 0 rgba(20,207,255,.45) !important;
}
.hero-copy .display strong{
  color:var(--lf-yellow) !important;
  -webkit-text-fill-color:var(--lf-yellow) !important;
  background:none !important;
  background-image:none !important;
  text-shadow:0 10px 0 rgba(20,207,255,.45) !important;
  line-height:1.02 !important;
  padding-bottom:.14em !important;
  overflow:visible !important;
}

/* Sezione staff: foto full width, titolo centrale nero con ombra grigia */
.staff-section{
  padding:82px 0 96px !important;
  background:#fff !important;
}
.staff-heading{
  width:100% !important;
  max-width:none !important;
  margin:0 auto 20px !important;
  text-align:center !important;
  color:#000 !important;
  text-shadow:0 10px 0 rgba(255,255,255,.95) !important;
  display:flex !important;
  flex-direction:column;
  align-items:center;
  justify-content:center;
}
.staff-heading span{
  display:block;
  color:#000 !important;
  text-shadow:0 10px 0 rgba(255,255,255,.95) !important;
}
.staff-photo{
  width:100vw !important;
  max-width:100vw !important;
  margin-left:calc(50% - 50vw) !important;
  margin-right:calc(50% - 50vw) !important;
  background:#fff !important;
  padding:0 0 16px !important;
  border:0 !important;
  box-shadow:none !important;
  overflow:visible !important;
}
.staff-photo img{
  display:block !important;
  width:100vw !important;
  max-width:100vw !important;
  height:auto !important;
  object-fit:contain !important;
  margin:0 auto !important;
  background:#fff !important;
}
.staff-names{
  text-align:center !important;
  margin-top:14px !important;
}

/* Titolo sezione: POCHE fucsia, PAROLE celeste, ombre viola */
.about-values .display-small,
.about-values .display-small strong,
.about-values .poche-fuchsia,
.about-values .parole-cyan{
  text-shadow:0 10px 0 var(--lf-violet) !important;
}
.about-values .poche-fuchsia{
  color:var(--lf-fuchsia) !important;
}
.about-values .parole-cyan{
  color:var(--lf-imola-cyan) !important;
}

@media(max-width:900px){
  .hero-copy .display{
    line-height:1.1 !important;
    padding-bottom:.2em !important;
  }
  .hero-copy .display span,
  .hero-copy .display strong{
    text-shadow:0 7px 0 rgba(20,207,255,.45) !important;
  }
  .staff-section{
    padding:64px 0 72px !important;
  }
  .staff-heading,
  .staff-heading span{
    text-shadow:0 7px 0 rgba(255,255,255,.95) !important;
  }
  .about-values .display-small,
  .about-values .display-small strong,
  .about-values .poche-fuchsia,
  .about-values .parole-cyan{
    text-shadow:0 7px 0 var(--lf-violet) !important;
  }
  .staff-photo{
    padding:0 0 12px !important;
  }
}


/* V41 — titolo hero: VIVI fucsia, IL celeste */
.hero-copy .display .vivi-fuchsia{
  color:var(--lf-fuchsia) !important;
  -webkit-text-fill-color:var(--lf-fuchsia) !important;
  background:none !important;
  text-shadow:0 10px 0 rgba(20,207,255,.45) !important;
}
.hero-copy .display .il-cyan{
  color:var(--lf-imola-cyan) !important;
  -webkit-text-fill-color:var(--lf-imola-cyan) !important;
  background:none !important;
  text-shadow:0 10px 0 rgba(20,207,255,.45) !important;
}

@media(max-width:900px){
  .hero-copy .display .vivi-fuchsia,
  .hero-copy .display .il-cyan{
    text-shadow:0 7px 0 rgba(20,207,255,.45) !important;
  }
}


/* V42 — VIVI e IL sulla stessa riga */
.hero-copy .display > span{
  display:block !important;
}
.hero-copy .display > span .vivi-fuchsia,
.hero-copy .display > span .il-cyan{
  display:inline-block !important;
  vertical-align:baseline !important;
}

@media(max-width:900px){
  .hero-copy .display > span .vivi-fuchsia,
  .hero-copy .display > span .il-cyan{
    display:inline-block !important;
  }
}

/* V43 — Sfondo nero: Il nostro modo di fare scuola */
.about-values{
  background:#000000 !important;
  border-top-color:#000000 !important;
  border-bottom-color:#000000 !important;
}
.about-values-head .display-small{
  color:#ffffff !important;
}
.about-values .kicker{
  color:#ffffff !important;
}

/* V45 — Ombra di POCHE PAROLE MA CHIARE come CHI SIAMO */
.about-values .display-small,
.about-values .display-small strong,
.about-values .poche-fuchsia,
.about-values .parole-cyan{
  text-shadow:0 10px 0 #000 !important;
}

@media(max-width:900px){
  .about-values .display-small,
  .about-values .display-small strong,
  .about-values .poche-fuchsia,
  .about-values .parole-cyan{
    text-shadow:0 7px 0 #000 !important;
  }
}


/* V46 — BALLARE È PIÙ DI UNA FIGURA + CTA salsa/bachata */
.flow-copy .ballare-violet,
.flow-copy .di-una-figura-violet{
  color:var(--lf-violet) !important;
  -webkit-text-fill-color:var(--lf-violet) !important;
  background:none !important;
  text-shadow:0 10px 0 #000 !important;
}
.flow-copy .e-piu-yellow{
  color:var(--lf-yellow) !important;
  -webkit-text-fill-color:var(--lf-yellow) !important;
  background:none !important;
  text-shadow:0 10px 0 #000 !important;
}

.course-page .detail-cta-row .btn-hot{
  background:linear-gradient(90deg,var(--lf-imola-cyan),var(--lf-fuchsia)) !important;
  color:#fff !important;
  box-shadow:none !important;
  border:0 !important;
}
.course-page .detail-cta-row .btn-hot:hover{
  background:linear-gradient(90deg,#38deff,#ff47ba) !important;
  color:#fff !important;
  box-shadow:none !important;
}
.course-page .detail-cta-row .btn-ghost{
  background:linear-gradient(#000000,#000000) padding-box, linear-gradient(90deg,var(--lf-fuchsia),var(--lf-violet)) border-box !important;
  border:1px solid transparent !important;
  color:#fff !important;
  box-shadow:none !important;
}
.course-page .detail-cta-row .btn-ghost:hover{
  background:linear-gradient(#000000,#000000) padding-box, linear-gradient(90deg,#ff47ba,#14cfff) border-box !important;
  color:#fff !important;
  box-shadow:none !important;
}

@media(max-width:900px){
  .flow-copy .ballare-violet,
  .flow-copy .di-una-figura-violet,
  .flow-copy .e-piu-yellow{
    text-shadow:0 7px 0 #000 !important;
  }
}


/* V47 — FLOW: È PIÙ nel secondo rigo e celeste */
.flow-copy .e-piu-cyan{
  display:inline-block !important;
  color:var(--lf-imola-cyan) !important;
  -webkit-text-fill-color:var(--lf-imola-cyan) !important;
  background:none !important;
  text-shadow:0 10px 0 #000 !important;
}

@media(max-width:900px){
  .flow-copy .e-piu-cyan{
    text-shadow:0 7px 0 #000 !important;
  }
}

/* V48 — Titoli SALSA e BACHATA nelle pagine corsi viola */
.detail-head .title-white-cyan{
  color:var(--lf-violet) !important;
  -webkit-text-fill-color:var(--lf-violet) !important;
}

/* V49 — Titoli SALSA/BACHATA nei riquadri viola + SCOPRI IL CORSO celeste */
#corsi .course-title h3,
.course-title h3{
  color:var(--lf-violet) !important;
  -webkit-text-fill-color:var(--lf-violet) !important;
}

.course-more{
  color:var(--lf-imola-cyan) !important;
}
.course-card:hover .course-more{
  color:var(--lf-imola-cyan) !important;
}

/* V50 — Scegli il tuo ritmo: sottotitoli fucsia, tag gialli */
#corsi .course-title span,
.course-title span{
  color:var(--lf-fuchsia) !important;
}

#corsi .course-tag,
.course-tag,
#corsi .course-tag.pink,
#corsi .course-tag.cyan{
  color:var(--lf-yellow) !important;
}

/* V52 — Ombra di POCHE PAROLE MA CHIARE uguale a CHI SIAMO? */
.about-values .display-small,
.about-values .display-small strong,
.about-values .poche-fuchsia,
.about-values .parole-cyan{
  text-shadow:0 10px 0 rgba(20,207,255,.45) !important;
}

@media(max-width:900px){
  .about-values .display-small,
  .about-values .display-small strong,
  .about-values .poche-fuchsia,
  .about-values .parole-cyan{
    text-shadow:0 7px 0 rgba(20,207,255,.4) !important;
  }
}

/* V53 — Menu mobile trasparente come la barra, separatori cyan->violet, bottone menu colorato */
@media(max-width:900px){
  .mobile-menu{
    background:linear-gradient(180deg,rgba(0,0,0,0.9098),rgba(0,0,0,0.2706) 72%,transparent) !important;
    backdrop-filter:blur(8px) !important;
    -webkit-backdrop-filter:blur(8px) !important;
  }

  .mobile-menu a{
    position:relative !important;
    border-bottom:0 !important;
  }

  .mobile-menu a::after{
    content:"";
    position:absolute;
    left:0;
    right:0;
    bottom:0;
    height:1px;
    background:linear-gradient(90deg,var(--lf-imola-cyan),var(--lf-violet));
    opacity:.95;
  }

  .menu-toggle{
    border:1px solid transparent !important;
    background:linear-gradient(rgba(0,0,0,0.6667),rgba(0,0,0,0.6667)) padding-box,
               linear-gradient(90deg,var(--lf-imola-cyan),var(--lf-violet)) border-box !important;
    box-shadow:none !important;
  }

  .menu-toggle i{
    background:linear-gradient(90deg,var(--lf-yellow),var(--lf-orange)) !important;
    height:2px !important;
  }
}

/* V54 — Sfondo paint splash: bianco sulle sezioni chiare, nero sulle sezioni scure */
:root{
  --lf-bg-black-splash:url('bg-black-splashes.webp');
  --lf-bg-white-splash:url('bg-white-splashes.webp');
}

/* Sezioni scure */
.hero,
.section.courses,
.schedule,
.experience,
.open-day,
.about-hero,
.staff-section,
.about-values,
.course-detail,
.course-page-footer{
  background-image:var(--lf-bg-black-splash) !important;
  background-repeat:no-repeat !important;
  background-size:cover !important;
  background-position:center !important;
}

/* Sezioni chiare */
.flow-section,
.marquee,
.detail-band{
  background-image:var(--lf-bg-white-splash) !important;
  background-repeat:no-repeat !important;
  background-size:cover !important;
  background-position:center !important;
}

/* Mantiene leggibilità e struttura */
.course-detail:before,
.hero-grid{
  display:none !important;
}

@media(max-width:900px){
  .hero,
  .section.courses,
  .schedule,
  .experience,
  .open-day,
  .about-hero,
  .staff-section,
  .about-values,
  .course-detail,
  .course-page-footer,
  .flow-section,
  .marquee,
  .detail-band{
    background-size:cover !important;
    background-position:center !important;
  }
}


/* V55 — Fasce bianche con testo nero + staff su sfondo bianco */
.marquee,
.detail-band{
  color:#000 !important;
}
.marquee-track,
.detail-band .marquee-track,
.marquee-track span,
.detail-band .marquee-track span,
.marquee-track b,
.detail-band .marquee-track b{
  color:#000 !important;
}

.staff-section,
.staff-photo,
.staff-photo img{
  background:#fff !important;
}
.staff-photo{
  box-shadow:none !important;
  border:0 !important;
}
.staff-photo img{
  object-fit:contain !important;
}


/* V56 — marquee spostata in fondo home + testi Open Day adattivi */
.open-day .kicker,
.open-copy > p:not(.kicker),
.open-badges span{
  color:#fff !important;
}

.booking > small,
.booking label{
  color:#000 !important;
}

.booking input::placeholder,
.booking select,
.booking input{
  color:#000000 !important;
}

/* V57 — placeholder Open Day grigio + testi grigi adattivi fuori dai riquadri */
/* Placeholder nel form Open Day */
.booking input::placeholder{
  color:#ffffff !important;
  opacity:1 !important;
}

/* Sfondo scuro: testi grigi fuori dai riquadri -> bianchi */
.hero .kicker,
.hero-lead,
.courses .kicker,
.schedule .kicker,
.experience .kicker,
.experience .section-intro,
.open-day .kicker,
.open-copy > p:not(.kicker),
.about-hero .kicker,
.about-text,
.about-values .kicker,
.course-detail .kicker,
.course-detail .detail-intro,
footer .footer-brand span,
footer .footer-links a,
footer .footer-bottom,
.course-page-footer .footer-brand span,
.course-page-footer .footer-links a,
.course-page-footer .footer-bottom{
  color:#fff !important;
}

/* Sfondo chiaro: testi grigi fuori dai riquadri -> neri */
.flow-section .kicker,
.flow-copy > p:last-of-type,
.staff-names,
.marquee,
.marquee-track,
.marquee-track span,
.marquee-track b,
.detail-band,
.detail-band .marquee-track,
.detail-band .marquee-track span,
.detail-band .marquee-track b{
  color:#000 !important;
}


/* V58 — No parallax + immagine Salsa Casino Cubano nel riquadro home */
.paint-layer,
.flow-word,
.paint-ring,
.logo-halo,
.orbit{
  will-change:auto !important;
}

.salsa-card{
  position:relative !important;
}
.salsa-card .course-title,
.salsa-card p,
.salsa-card .course-tag,
.salsa-card .course-more,
.salsa-card .course-num{
  position:relative;
  z-index:2;
}
.salsa-card .salsa-ghost-art{
  position:absolute;
  right:14px;
  bottom:8px;
  width:min(41%, 260px);
  max-height:88%;
  object-fit:contain;
  opacity:.18;
  pointer-events:none;
  z-index:1;
  filter:drop-shadow(0 8px 18px rgba(0,0,0,.35));
  transition:opacity .25s ease, transform .25s ease, filter .25s ease;
}
.salsa-card:hover .salsa-ghost-art{
  opacity:.28;
  transform:scale(1.03) translateX(-6px);
  filter:drop-shadow(0 12px 24px rgba(255,31,168,.18));
}
.salsa-card:active .salsa-ghost-art{
  opacity:.35;
  transform:scale(1.05) translateX(-8px);
  filter:drop-shadow(0 14px 28px rgba(20,207,255,.22));
}
@media(max-width:900px){
  .salsa-card .salsa-ghost-art{
    width:44%;
    right:8px;
    bottom:6px;
    opacity:.16;
  }
  .salsa-card:hover .salsa-ghost-art,
  .salsa-card:active .salsa-ghost-art{
    opacity:.24;
    transform:scale(1.02);
  }
}


/* V60 — Solo fix su base V58: art Salsa a tutta presenza e ballerini colorati */
.salsa-card .salsa-ghost-art{
  position:absolute;
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  max-height:none !important;
  right:auto !important;
  bottom:auto !important;
  object-fit:cover !important;
  object-position:center right !important;
  opacity:.26 !important;
  pointer-events:none;
  z-index:1;
  filter:drop-shadow(0 8px 18px rgba(0,0,0,.35));
  transition:opacity .25s ease, transform .25s ease, filter .25s ease;
}
.salsa-card:hover .salsa-ghost-art{
  opacity:.34 !important;
  transform:scale(1.02) !important;
  filter:drop-shadow(0 12px 24px rgba(255,31,168,.18));
}
.salsa-card:active .salsa-ghost-art{
  opacity:.4 !important;
  transform:scale(1.03) !important;
  filter:drop-shadow(0 14px 28px rgba(20,207,255,.22));
}
.salsa-card .course-title,
.salsa-card p,
.salsa-card .course-tag,
.salsa-card .course-more,
.salsa-card .course-num{
  position:relative;
  z-index:2;
}
.salsa-card .course-title,
.salsa-card p{
  text-shadow:0 2px 10px rgba(0,0,0,.55);
}
@media(max-width:900px){
  .salsa-card .salsa-ghost-art{
    object-position:68% center !important;
    opacity:.22 !important;
  }
  .salsa-card:hover .salsa-ghost-art,
  .salsa-card:active .salsa-ghost-art{
    opacity:.3 !important;
    transform:scale(1.015) !important;
  }
}


/* V61 — Art Bachata a tutta presenza e ballerini colorati */
.bachata-card .bachata-ghost-art{
  position:absolute;
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  max-height:none !important;
  right:auto !important;
  bottom:auto !important;
  object-fit:cover !important;
  object-position:center right !important;
  opacity:.26 !important;
  pointer-events:none;
  z-index:1;
  filter:drop-shadow(0 8px 18px rgba(0,0,0,.35));
  transition:opacity .25s ease, transform .25s ease, filter .25s ease;
}
.bachata-card:hover .bachata-ghost-art{
  opacity:.34 !important;
  transform:scale(1.02) !important;
  filter:drop-shadow(0 12px 24px rgba(255,31,168,.18));
}
.bachata-card:active .bachata-ghost-art{
  opacity:.4 !important;
  transform:scale(1.03) !important;
  filter:drop-shadow(0 14px 28px rgba(20,207,255,.22));
}
.bachata-card .course-title,
.bachata-card p,
.bachata-card .course-tag,
.bachata-card .course-more,
.bachata-card .course-num{
  position:relative;
  z-index:2;
}
.bachata-card .course-title,
.bachata-card p{
  text-shadow:0 2px 10px rgba(0,0,0,.55);
}
@media(max-width:900px){
  .bachata-card .bachata-ghost-art{
    object-position:68% center !important;
    opacity:.22 !important;
  }
  .bachata-card:hover .bachata-ghost-art,
  .bachata-card:active .bachata-ghost-art{
    opacity:.3 !important;
    transform:scale(1.015) !important;
  }
}


/* V62 — Staff section: splash background + nuova foto gruppo */
.staff-section{
  background:#fff url("staff-bg-splash.webp") center center / cover no-repeat !important;
}
.staff-photo,
.staff-photo img{
  background:transparent !important;
}


/* V68 — Icone contatti paint style + bottone email Open Day */
.footer-social{
  display:flex;
  gap:16px;
  align-items:center;
  margin-top:34px;
  flex-wrap:wrap;
}
.social-icon{
  width:62px;
  height:62px;
  display:grid;
  place-items:center;
  border-radius:18px;
  background:linear-gradient(180deg,#000000,#000000);
  border:1px solid #ffffff16;
  box-shadow:0 10px 20px rgba(0,0,0,.28);
  transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.social-icon img{
  width:42px;
  height:42px;
  display:block;
  filter:drop-shadow(0 6px 10px rgba(0,0,0,.22));
}
.social-icon:hover{
  transform:translateY(-2px) rotate(-2deg);
  border-color:#ffffff35;
}
.social-icon.ig:hover{box-shadow:0 14px 28px rgba(255,31,168,.20)}
.social-icon.wa:hover{box-shadow:0 14px 28px rgba(20,207,255,.20)}
.social-icon.mail:hover{box-shadow:0 14px 28px rgba(20,207,255,.20)}

.booking-mail-btn,
.btn.booking-mail-btn,
button.booking-mail-btn{
  width:100%;
  margin-top:10px;
  box-shadow:none !important;
}

@media(max-width:900px){
  .footer-social{margin-top:26px;gap:12px}
  .social-icon{width:56px;height:56px;border-radius:16px}
  .social-icon img{width:38px;height:38px}
}


/* V69 — icone inline nei contatti + pulsante email open day nero con bordo fucsia->viola */
.footer-links{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:24px;
  margin-top:52px;
}
.footer-links a.footer-link-item{
  display:flex;
  align-items:center;
  gap:12px;
  text-decoration:none;
  color:#ffffff;
  font-size:9px;
  letter-spacing:.13em;
  line-height:1.7;
}
.footer-links a.footer-link-item span{
  display:block;
}
.footer-inline-icon{
  width:32px;
  height:32px;
  flex:0 0 32px;
  display:block;
  filter:drop-shadow(0 4px 8px rgba(0,0,0,.22));
}
.footer-links a.footer-link-item strong{
  color:#fff;
  font-size:12px;
  letter-spacing:0;
}
.footer-links a.footer-link-item:hover .footer-inline-icon{
  transform:translateY(-1px) rotate(-3deg);
}
.footer-social{
  display:none !important;
}

.booking-mail-btn,
.btn.booking-mail-btn,
button.booking-mail-btn{
  width:100%;
  margin-top:10px;
  color:#fff !important;
  background:
    linear-gradient(#000000,#000000) padding-box,
    linear-gradient(90deg,var(--lf-fuchsia),var(--lf-violet)) border-box !important;
  border:1px solid transparent !important;
  box-shadow:none !important;
}
.booking-mail-btn:hover,
.btn.booking-mail-btn:hover,
button.booking-mail-btn:hover{
  color:#fff !important;
  background:
    linear-gradient(#000000,#000000) padding-box,
    linear-gradient(90deg,#ff47ba,#14cfff) border-box !important;
  border:1px solid transparent !important;
  box-shadow:none !important;
}

@media(max-width:900px){
  .footer-links{grid-template-columns:1fr;gap:18px;margin-top:38px}
  .footer-links a.footer-link-item{gap:10px}
  .footer-inline-icon{width:28px;height:28px;flex-basis:28px}
}


/* V74 — Rimossi i vecchi schizzi grigi/parallax di sfondo */
.paint-layer{
  display:none !important;
}

/* V75 — Link "La sala" e pagina dedicata */
.room-media-card{
  color:inherit;
  text-decoration:none;
  cursor:pointer;
  transition:transform .28s ease,border-color .28s ease,background .28s ease;
}
.room-media-card:hover{
  transform:translateY(-5px);
  border-color:rgba(20,207,255,.7);
  background:#000000;
}
.room-media-card:focus-visible{
  outline:3px solid var(--lf-imola-cyan);
  outline-offset:4px;
}
.room-card-photo{
  position:absolute;
  z-index:0;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  transition:transform .55s cubic-bezier(.2,.8,.2,1),filter .35s ease;
  filter:saturate(.92) contrast(1.04) brightness(.78);
}
.room-media-card::after{
  content:"";
  position:absolute;
  z-index:1;
  inset:0;
  pointer-events:none;
  background:linear-gradient(180deg,transparent 20%,rgba(0,0,0,.22) 50%,rgba(0,0,0,.94) 100%);
}
.room-media-card:hover .room-card-photo{
  transform:scale(1.035);
  filter:saturate(1) contrast(1.03) brightness(.88);
}
.room-media-card .media-glow{z-index:1;opacity:.12}
.room-media-card>div:last-child{position:static;z-index:3}
.room-media-card small{color:#ffffff}
.room-media-card .media-more{
  position:absolute;
  z-index:4;
  right:24px;
  bottom:20px;
  text-align:right;
}
.media-more{
  display:inline-flex;
  align-items:center;
  gap:12px;
  margin-top:18px;
  color:var(--lf-imola-cyan);
  font-size:10px;
  font-weight:900;
  letter-spacing:.14em;
}
.media-more b{
  font-size:17px;
  transition:transform .25s ease;
}
.room-media-card:hover .media-more b{transform:translateX(5px)}

.room-location-heading-link{
  color:inherit;
  text-decoration:none;
}
.room-location-heading-link h2{
  transition:filter .2s ease;
}
.room-location-heading-link:hover h2,
.room-location-heading-link:focus-visible h2{
  filter:brightness(1.14);
}
.room-location-heading-link:focus-visible{
  outline:3px solid var(--lf-imola-cyan);
  outline-offset:6px;
}

.room-page{
  min-height:100vh;
  background:#000000;
}
.room-hero{
  position:relative;
  min-height:88svh;
  padding:clamp(138px,14vw,190px) clamp(20px,6vw,96px) clamp(82px,9vw,130px);
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:7vw;
  align-items:center;
  overflow:hidden;
  isolation:isolate;
  background-image:var(--lf-bg-black-splash);
  background-repeat:no-repeat;
  background-size:cover;
  background-position:center;
}
.room-hero::before{
  content:"";
  position:absolute;
  z-index:-1;
  width:min(62vw,820px);
  aspect-ratio:1;
  right:-18vw;
  top:5%;
  border-radius:50%;
  background:radial-gradient(circle,rgba(20,207,255,.3),rgba(255,31,168,.12) 36%,transparent 70%);
  filter:blur(12px);
}
.room-copy{position:relative;z-index:2;max-width:980px}
.room-title{
  margin:0;
  font:400 clamp(88px,12vw,190px)/.72 var(--display);
  letter-spacing:-.01em;
  text-transform:uppercase;
  color:var(--lf-fuchsia);
  text-shadow:0 12px 0 rgba(20,207,255,.55);
}
.room-lead{
  max-width:720px;
  margin:38px 0 0;
  color:#fff;
  font-size:clamp(18px,1.6vw,24px);
  font-weight:700;
  line-height:1.55;
}
.room-text{
  max-width:690px;
  margin:18px 0 0;
  color:#fff;
  font-size:16px;
  line-height:1.75;
}
.room-size{
  display:inline-block;
  color:var(--lf-yellow);
  font-size:1.3em;
  font-weight:900;
  letter-spacing:.01em;
  text-shadow:0 2px 0 #000;
}
.room-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:34px}
.room-actions .btn{width:auto}
.room-actions .room-map-btn{
  color:#fff !important;
  background:linear-gradient(#000000,#000000) padding-box,
             linear-gradient(90deg,var(--lf-imola-cyan),var(--lf-violet)) border-box !important;
  border:1px solid transparent !important;
}
.room-photo-band{
  position:relative;
  z-index:3;
  width:100%;
  margin:0;
  overflow:hidden;
  background:#000000;
  border-top:1px solid rgba(255,255,255,.13);
  border-bottom:1px solid rgba(255,255,255,.13);
  line-height:0;
}
.room-photo-band img{
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:1672/941;
  object-fit:cover;
  object-position:center;
}
.room-highlight{
  position:relative;
  min-height:430px;
  padding:0;
  display:block;
  border:1px solid rgba(255,255,255,.16);
  background:#000000;
  box-shadow:20px 20px 0 var(--lf-violet);
  overflow:hidden;
}
.room-map-frame{
  position:absolute;
  inset:-3%;
  width:106%;
  height:106%;
  border:0;
  pointer-events:none;
  filter:saturate(.42) contrast(1.08) brightness(.9);
}
.room-map-tint{
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:
    linear-gradient(180deg,rgba(0,0,0,.48),transparent 30%,transparent 66%,rgba(0,0,0,.62)),
    linear-gradient(135deg,rgba(20,207,255,.16),transparent 50%,rgba(20,207,255,.1));
}
.room-map-cover{
  position:absolute;
  inset:0;
  z-index:2;
  padding:30px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  color:#fff;
  text-decoration:none;
}
.room-map-kicker{
  color:#fff;
  font-size:10px;
  font-weight:900;
  letter-spacing:.22em;
}
.room-map-pin{
  align-self:center;
  padding:16px 18px;
  display:grid;
  grid-template-columns:auto 1fr;
  column-gap:12px;
  align-items:center;
  background:rgba(0,0,0,.56);
  border:1px solid rgba(255,255,255,.46);
  box-shadow:6px 6px 0 rgba(20,207,255,.78);
  backdrop-filter:blur(3px);
}
.room-map-pin i{
  grid-row:1/3;
  width:18px;
  height:18px;
  border:5px solid var(--lf-fuchsia);
  border-radius:50% 50% 50% 0;
  transform:rotate(-45deg);
}
.room-map-pin strong{
  font:400 36px/.8 var(--display);
  color:#fff;
}
.room-map-pin small{
  margin-top:5px;
  color:#fff;
  font-size:8px;
  font-weight:800;
  letter-spacing:.09em;
}
.room-map-open{
  display:flex;
  align-items:center;
  justify-content:space-between;
  color:#fff;
  font-size:10px;
  font-weight:900;
  letter-spacing:.14em;
}
.room-map-open b{color:var(--lf-imola-cyan);font-size:18px}

/* Mappa orizzontale e scheda sede, ispirata al riferimento ma in stile Latin Flow */
.room-location{
  position:relative;
  padding:clamp(78px,9vw,130px) clamp(20px,6vw,96px);
  overflow:hidden;
  background-image:var(--lf-bg-black-splash);
  background-repeat:no-repeat;
  background-size:cover;
  background-position:center;
}
.room-location-card{
  width:min(calc(100% - 18px),1240px);
  margin:0 auto;
  border:1px solid rgba(255,255,255,.18);
  background:#000000;
  box-shadow:16px 16px 0 var(--lf-violet);
  overflow:hidden;
}
.room-location-map{
  position:relative;
  height:clamp(420px,50vw,610px);
  background:#ffffff;
  overflow:hidden;
}
.room-location-map iframe{
  position:absolute;
  inset:-2%;
  width:104%;
  height:104%;
  border:0;
  pointer-events:none;
  filter:saturate(.72) contrast(1.04);
}
.room-location-map::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  box-shadow:inset 0 -80px 90px rgba(0,0,0,.24);
}
.room-location-open{
  position:absolute;
  z-index:3;
  left:24px;
  top:24px;
  padding:15px 18px;
  display:inline-flex;
  align-items:center;
  gap:18px;
  color:#fff;
  text-decoration:none;
  font-size:11px;
  font-weight:900;
  letter-spacing:.1em;
  border:1px solid transparent;
  background:linear-gradient(rgba(0,0,0,.84),rgba(0,0,0,.84)) padding-box,
             linear-gradient(90deg,var(--lf-imola-cyan),var(--lf-fuchsia)) border-box;
  backdrop-filter:blur(8px);
}
.room-location-open b{color:var(--lf-imola-cyan);font-size:17px}
.room-location-info{
  padding:clamp(42px,6vw,76px);
  text-align:center;
  background:
    radial-gradient(circle at 50% 0,rgba(20,207,255,.2),transparent 42%),
    #000000;
}
.room-location-info .kicker{color:#fff !important}
.room-location-info h2{
  margin:0;
  font:400 clamp(62px,7.4vw,112px)/.78 var(--display);
  color:#fff;
  text-transform:uppercase;
}
.room-location-info h2 strong{
  color:var(--lf-fuchsia);
  font-weight:400;
  text-shadow:0 9px 0 rgba(20,207,255,.55);
}
.room-location-address{
  margin:34px 0 0;
  color:var(--lf-imola-cyan);
  font-size:clamp(15px,1.6vw,21px);
  font-weight:900;
  letter-spacing:.1em;
}
.room-location-address span{color:var(--lf-yellow);margin:0 8px}
.room-location-note{
  max-width:680px;
  margin:18px auto 0;
  color:#fff;
  font-size:15px;
  line-height:1.7;
}
.room-location-actions{
  margin-top:32px;
  display:flex;
  justify-content:center;
  gap:12px;
  flex-wrap:wrap;
}
.room-location-actions .room-map-btn{
  color:#fff !important;
  background:linear-gradient(#000000,#000000) padding-box,
             linear-gradient(90deg,var(--lf-imola-cyan),var(--lf-violet)) border-box !important;
  border:1px solid transparent !important;
}
.room-features{
  position:relative;
  padding:clamp(88px,10vw,145px) clamp(20px,6vw,96px);
  background-color:#fff;
  background-image:linear-gradient(rgba(255,255,255,.56),rgba(255,255,255,.56)),url('bg-room-light-splashes.webp');
  background-repeat:no-repeat;
  background-size:cover;
  background-position:center;
  color:#000000;
  overflow:hidden;
}
.room-features-head{max-width:820px}
.room-features .kicker{color:#000 !important}
.room-features-title{
  margin:0;
  font:400 clamp(62px,8vw,124px)/.78 var(--display);
  text-transform:uppercase;
  color:var(--lf-violet);
  text-shadow:0 9px 0 rgba(20,207,255,.38);
}
.room-feature-grid{
  margin-top:62px;
  width:100%;
  max-width:100%;
  min-width:0;
  padding:0 12px 12px 0;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:22px;
}
.room-feature{
  width:100%;
  max-width:100%;
  min-width:0;
  min-height:245px;
  padding:26px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  border:1px solid #ffffff;
  background:#fff;
  box-shadow:10px 10px 0 var(--lf-violet) !important;
  overflow:hidden;
}
.room-feature span{
  color:var(--lf-fuchsia);
  font-size:10px;
  font-weight:900;
  letter-spacing:.2em;
}
.room-feature strong{
  display:block;
  max-width:100%;
  font:400 clamp(30px,2.55vw,42px)/.9 var(--display);
  color:#000000;
  overflow-wrap:normal;
}
.room-feature p{margin:14px 0 0;color:#000;font-size:13px;line-height:1.6}
.room-closing{
  padding:clamp(90px,10vw,145px) clamp(20px,6vw,96px);
  text-align:center;
  background-image:var(--lf-bg-black-splash);
  background-repeat:no-repeat;
  background-size:cover;
  background-position:center;
}
.room-closing .display-small{max-width:1000px;margin:0 auto}
.room-closing .display-small strong{color:var(--lf-fuchsia)}
.room-closing .btn{margin-top:34px}

/* Testi adattivi: bianco sullo scuro, nero sul chiaro */
.room-hero .kicker,
.room-hero .room-text,
.room-closing .kicker{color:#fff !important}
.room-features .kicker,
.room-features .room-feature p{color:#000 !important}

/* CTA uguali ai pulsanti principali del resto del sito */
.room-page .btn-hot{
  background:linear-gradient(90deg,var(--lf-imola-cyan),var(--lf-fuchsia)) !important;
  color:#fff !important;
  border:0 !important;
  box-shadow:none !important;
}
.room-page .btn-hot:hover{
  background:linear-gradient(90deg,#38deff,#ff47ba) !important;
  color:#fff !important;
  box-shadow:none !important;
}

@media(max-width:900px){
  .room-hero{min-height:auto;grid-template-columns:1fr;gap:55px;padding:118px 18px 82px}
  .room-title{font-size:clamp(88px,27vw,132px);text-shadow:0 8px 0 rgba(20,207,255,.55)}
  .room-lead{margin-top:30px;font-size:18px}
  .room-text{font-size:15px}
  .room-actions .btn{width:100%}
  .room-photo-band img{
    min-height:265px;
    aspect-ratio:auto;
    object-position:center;
  }
  .room-highlight{min-height:360px;padding:0;box-shadow:10px 10px 0 var(--lf-violet)}
  .room-map-cover{padding:24px}
  .room-map-pin{width:min(100%,290px)}
  .room-map-pin strong{font-size:31px}
  .room-location{padding:58px 0}
  .room-location-card{width:100%;border-left:0;border-right:0;box-shadow:none}
  .room-location-map{height:430px}
  .room-location-open{left:16px;top:16px;padding:13px 15px;font-size:10px}
  .room-location-info{padding:42px 18px 48px}
  .room-location-info h2{font-size:clamp(52px,14.4vw,72px);text-shadow:none}
  .room-location-info h2 strong{text-shadow:0 6px 0 rgba(20,207,255,.55)}
  .room-location-address{font-size:14px;line-height:1.6}
  .room-location-note{font-size:14px}
  .room-location-actions{display:grid}
  .room-location-actions .btn{width:100%}
  .room-features{padding:84px 18px;background-size:auto 100%;background-position:center top}
  .room-features-title{font-size:clamp(62px,19vw,90px);text-shadow:0 6px 0 rgba(20,207,255,.38)}
  .room-feature-grid{grid-template-columns:minmax(0,1fr);margin-top:45px;gap:20px;padding:0 10px 10px 0}
  .room-feature{width:100%;max-width:100%;min-width:0;min-height:190px;padding:24px 20px;box-shadow:8px 8px 0 var(--lf-violet) !important;overflow:hidden}
  .room-feature strong{max-width:100%;font-size:clamp(30px,9.4vw,40px);line-height:.94;letter-spacing:-.01em;white-space:normal;overflow-wrap:break-word}
  .room-feature p{max-width:100%;overflow-wrap:break-word}
  .room-closing{padding:84px 18px}
}

/* V75 — sede semplificata e nuovo pulsante menu ispirato all'anello del logo */
.room-location-card{
  width:min(100%,1100px);
  border:0;
  background:transparent;
  box-shadow:none;
  overflow:visible;
}
.room-location-info{
  padding:0 0 42px;
  background:transparent;
}
.room-location-info h2{
  font-size:clamp(56px,6.5vw,94px);
}
.room-location-address{
  margin-top:26px;
}
.room-location-map{
  width:calc(100% - 18px);
  height:clamp(380px,43vw,540px);
  margin:0 18px 18px 0;
  border:2px solid transparent;
  background:
    linear-gradient(#ffffff,#ffffff) padding-box,
    linear-gradient(110deg,var(--lf-yellow),var(--lf-fuchsia),var(--lf-imola-cyan)) border-box;
  box-shadow:14px 14px 0 var(--lf-violet);
}
.room-location-map iframe{
  inset:0;
  width:100%;
  height:100%;
  filter:saturate(.56) contrast(1.05);
}
.room-location-map::after{
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.18);
}

@media(max-width:900px){
  .menu-toggle{
    position:relative !important;
    width:50px !important;
    height:50px !important;
    padding:0 !important;
    border:3px solid transparent !important;
    border-radius:50% !important;
    background:
      linear-gradient(#000000,#000000) padding-box,
      conic-gradient(from 210deg,var(--lf-yellow),var(--lf-orange),var(--lf-fuchsia),var(--lf-violet),var(--lf-imola-cyan),var(--lf-yellow)) border-box !important;
    box-shadow:0 0 18px rgba(255,31,168,.26),5px 5px 0 rgba(20,207,255,.34) !important;
    overflow:visible;
    transition:transform .28s ease,box-shadow .28s ease !important;
  }
  .menu-toggle::before{
    content:"";
    position:absolute;
    inset:4px;
    border:1px solid rgba(255,255,255,.18);
    border-radius:50%;
    pointer-events:none;
  }
  .menu-toggle i{
    position:absolute !important;
    z-index:2;
    left:50% !important;
    top:50% !important;
    width:23px !important;
    height:3px !important;
    margin:0 !important;
    border-radius:999px !important;
    transition:transform .3s ease,background .3s ease !important;
  }
  .menu-toggle i:first-child{
    background:linear-gradient(90deg,var(--lf-yellow),var(--lf-fuchsia)) !important;
    transform:translate(-50%,-6px) rotate(-7deg);
  }
  .menu-toggle i:last-child{
    background:linear-gradient(90deg,var(--lf-imola-cyan),var(--lf-violet)) !important;
    transform:translate(-50%,5px) rotate(7deg);
  }
  body.menu-open .menu-toggle{
    transform:rotate(8deg) scale(1.04);
    box-shadow:0 0 22px rgba(20,207,255,.3),5px 5px 0 rgba(255,31,168,.34) !important;
  }
  body.menu-open .menu-toggle i:first-child{
    background:linear-gradient(90deg,var(--lf-yellow),var(--lf-fuchsia)) !important;
    transform:translate(-50%,-50%) rotate(45deg);
  }
  body.menu-open .menu-toggle i:last-child{
    background:linear-gradient(90deg,var(--lf-imola-cyan),var(--lf-violet)) !important;
    transform:translate(-50%,-50%) rotate(-45deg);
  }

  .room-location{
    padding:70px 18px;
  }
  .room-location-card{
    width:100%;
  }
  .room-location-info{
    padding:0 0 32px;
  }
  .room-location-info h2{
    font-size:clamp(46px,12.6vw,62px);
    line-height:.82;
  }
  .room-location-address{
    margin-top:22px;
    font-size:13px;
  }
  .room-location-map{
    width:calc(100% - 10px);
    height:330px;
    margin:0 10px 10px 0;
    box-shadow:8px 8px 0 var(--lf-violet);
  }
  .room-location-open{
    left:14px;
    top:14px;
  }
}

/* V77 — texture paint trasparente nella barra e nel menu mobile */
.nav{
  background-image:
    linear-gradient(90deg,rgba(0,0,0,.58),rgba(0,0,0,.34),rgba(0,0,0,.58)),
    url('menu-paint-splashes.webp') !important;
  background-color:rgba(0,0,0,.42) !important;
  background-repeat:no-repeat !important;
  background-size:cover,100% auto !important;
  background-position:center,center 14% !important;
  background-blend-mode:normal,screen;
  backdrop-filter:blur(12px) saturate(1.12) !important;
  -webkit-backdrop-filter:blur(12px) saturate(1.12) !important;
  border-bottom:1px solid rgba(255,255,255,.08);
  box-shadow:0 8px 30px rgba(0,0,0,.18);
}

@media(max-width:900px){
  .mobile-menu{
    background-image:
      linear-gradient(rgba(0,0,0,.52),rgba(0,0,0,.42)),
      url('menu-paint-splashes.webp') !important;
    background-color:rgba(0,0,0,.42) !important;
    background-repeat:no-repeat !important;
    background-size:cover !important;
    background-position:center top !important;
    background-blend-mode:normal,screen;
    backdrop-filter:blur(13px) saturate(1.14) !important;
    -webkit-backdrop-filter:blur(13px) saturate(1.14) !important;
  }

  .mobile-menu a,
  .mobile-menu a::after{
    border:0 !important;
  }
  .mobile-menu a::after{
    content:none !important;
    display:none !important;
  }

  .mobile-menu a{
    padding:15px 2px !important;
    font-size:clamp(34px,10vw,46px) !important;
    line-height:.88 !important;
    letter-spacing:.01em !important;
    transition:transform .22s ease,filter .22s ease !important;
  }
  .mobile-menu a:nth-child(odd){
    color:var(--lf-fuchsia) !important;
    text-shadow:3px 4px 0 var(--lf-violet),0 0 16px rgba(255,31,168,.2) !important;
  }
  .mobile-menu a:nth-child(even){
    color:var(--lf-yellow) !important;
    text-shadow:3px 4px 0 var(--lf-violet),0 0 16px rgba(20,207,255,.28) !important;
  }
  .mobile-menu a:hover,
  .mobile-menu a:focus-visible{
    transform:translateX(7px);
    filter:brightness(1.16);
    outline:none;
  }
}

/* V81 final overrides — Reel & Eventi */
.reels-media-card{
  color:#fff;
  text-decoration:none;
  cursor:pointer;
  transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease;
}
.reels-card-photo{
  position:absolute;
  z-index:0;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  filter:saturate(.96) contrast(1.04) brightness(.72);
  transition:transform .55s cubic-bezier(.2,.8,.2,1),filter .35s ease;
}
.reels-media-card::after{
  content:"";
  position:absolute;
  z-index:1;
  inset:0;
  pointer-events:none;
  background:linear-gradient(180deg,rgba(0,0,0,.08) 0%,rgba(0,0,0,.22) 44%,rgba(0,0,0,.78) 100%);
}
.reels-media-card:hover{
  transform:translateY(-4px);
  border-color:rgba(20,207,255,.55);
  box-shadow:0 20px 50px rgba(20,207,255,.12);
}
.reels-media-card:hover .reels-card-photo{
  transform:scale(1.035);
  filter:saturate(1.04) contrast(1.04) brightness(.8);
}
.reels-media-card .media-glow{z-index:1;opacity:.08}
.reels-media-card>div:last-child{position:static;z-index:3}
.reels-card-title{
  position:absolute;
  z-index:2;
  top:60%;
  left:24px;
  transform:translateY(-50%);
  display:block !important;
  color:#fff !important;
  font:400 34px var(--display) !important;
  line-height:1 !important;
  letter-spacing:-.01em !important;
  text-shadow:none !important;
  white-space:nowrap;
}
.reels-media-card .media-more{
  position:absolute;
  z-index:3;
  right:24px;
  bottom:20px;
  color:var(--lf-imola-cyan) !important;
  text-align:right;
}
.reels-media-card:hover .media-more b{transform:translateX(5px)}

.reels-page{
  min-height:100vh;
  padding-top:84px;
  background:#000000;
  color:#fff;
  overflow:hidden;
}
.reels-hero{
  position:relative;
  isolation:isolate;
  width:100vw;
  max-width:none;
  margin-left:calc(50% - 50vw);
  margin-right:calc(50% - 50vw);
  min-height:72vh;
  display:flex;
  align-items:center;
  padding:clamp(90px,12vw,170px) clamp(20px,7vw,110px);
  background-color:#000000 !important;
  background-image:var(--lf-bg-black-splash) !important;
  background-repeat:no-repeat !important;
  background-size:cover !important;
  background-position:center !important;
}
.reels-hero::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  background:linear-gradient(90deg,rgba(0,0,0,.2),rgba(0,0,0,.48));
}
.reels-hero::before{
  content:none;
  display:none;
}
.reels-paint{width:42vw;right:-16vw;bottom:-20vw;opacity:.12}
.reels-hero-copy{position:relative;z-index:2;max-width:900px}
.reels-hero .kicker{color:#fff !important}
.reels-title{
  margin:8px 0 24px;
  font:400 clamp(88px,11vw,178px)/.72 var(--display);
  letter-spacing:-.025em;
  text-transform:uppercase;
}
.reels-title span{color:var(--lf-fuchsia);text-shadow:0 10px 0 var(--lf-violet)}
.reels-title strong{color:var(--lf-violet);font-weight:400;text-shadow:0 10px 0 var(--lf-imola-cyan)}
.reels-title strong em{color:var(--lf-yellow);font-style:normal;text-shadow:0 10px 0 var(--lf-imola-cyan)}
.reels-hero-copy>p:last-child{max-width:650px;font-size:clamp(18px,2vw,26px);line-height:1.45;color:#fff !important}
.reels-gallery{
  padding:clamp(70px,9vw,120px) clamp(16px,5vw,76px);
  background:#000000;
}
.reels-grid{
  width:min(100%,1280px);
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px;
  align-items:start;
}
.reel-card{
  min-width:0;
  padding:12px;
  background:#000000;
  border:1px solid rgba(255,255,255,.10);
  box-shadow:10px 10px 0 var(--lf-violet);
  overflow:hidden;
}
.reel-card:nth-child(even){box-shadow:10px 10px 0 var(--lf-imola-cyan)}
.reel-card .instagram-media{width:100% !important;min-width:0 !important;margin:0 !important}
.reels-closing{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  width:100vw;
  max-width:none;
  margin-left:calc(50% - 50vw);
  margin-right:calc(50% - 50vw);
  padding:110px 20px;
  text-align:center;
  background-color:#000000 !important;
  background-image:var(--lf-bg-black-splash) !important;
  background-repeat:no-repeat !important;
  background-size:cover !important;
  background-position:center !important;
}
.reels-closing::before{
  content:none;
  display:none;
}
.reels-closing>div{position:relative;z-index:1}
.reels-closing .display-small strong{color:var(--lf-yellow) !important}
.reels-closing .btn{margin-top:28px}
.reels-page .btn-hot{
  background:linear-gradient(90deg,var(--lf-imola-cyan),var(--lf-fuchsia)) !important;
  color:#fff !important;
  border:0 !important;
  box-shadow:none !important;
}
.reels-page .btn-hot:hover{
  background:linear-gradient(90deg,#38deff,#ff47ba) !important;
  color:#fff !important;
  box-shadow:none !important;
}

@media(max-width:1000px){
  .reels-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:650px){
  .reels-page{padding-top:74px}
  .reels-hero{min-height:62vh;padding:90px 18px 80px;background-position:65% center}
  .reels-title{font-size:clamp(68px,23vw,108px);line-height:.76}
  .reels-title span{text-shadow:0 7px 0 var(--lf-violet)}
  .reels-title strong{text-shadow:0 7px 0 var(--lf-imola-cyan)}
  .reels-title strong em{text-shadow:0 7px 0 var(--lf-imola-cyan)}
  .reels-gallery{padding:64px 15px}
  .reels-grid{grid-template-columns:1fr;gap:28px}
  .reel-card{padding:7px;box-shadow:7px 7px 0 var(--lf-violet)}
  .reel-card:nth-child(even){box-shadow:7px 7px 0 var(--lf-imola-cyan)}
  .reels-closing{padding:86px 18px}
  .reels-card-title{top:60%;left:20px;font-size:34px !important}
  .reels-media-card .media-more{right:20px;bottom:18px}
  .room-media-card .media-more{right:20px;bottom:18px}
}

/* V79 — staff, contatti e trasparenze */
.staff-heading,
.staff-heading span{
  text-shadow:0 10px 0 rgba(20,207,255,.92) !important;
}

.nav{
  isolation:isolate !important;
  overflow:hidden !important;
  background-color:rgba(0,0,0,.42) !important;
  background-image:none !important;
  backdrop-filter:blur(7px) saturate(1.08) !important;
  -webkit-backdrop-filter:blur(7px) saturate(1.08) !important;
  border-bottom:1px solid rgba(255,255,255,.08) !important;
  box-shadow:0 8px 28px rgba(0,0,0,.26) !important;
}
.nav::after{
  content:"";
  position:absolute;
  z-index:0;
  inset:0;
  pointer-events:none;
  background:url('menu-paint-splashes-transparent.webp') center 14%/100% auto no-repeat;
  mix-blend-mode:normal;
  opacity:.68;
}
.nav>*{position:relative !important;z-index:1 !important}

footer,
.course-page-footer{
  position:relative !important;
  isolation:isolate !important;
  overflow:hidden !important;
  width:100% !important;
  max-width:none !important;
  background:#000000 !important;
  background-image:none !important;
}
footer::before,
.course-page-footer::before{
  content:"";
  position:absolute;
  z-index:0;
  top:0;
  bottom:0;
  left:50%;
  width:100vw;
  transform:translateX(-50%);
  pointer-events:none;
  background-image:
    linear-gradient(90deg,rgba(0,0,0,.10),rgba(0,0,0,.02),rgba(0,0,0,.10)),
    url('menu-paint-splashes.webp');
  background-repeat:no-repeat;
  background-size:cover,cover;
  background-position:center,center;
}
footer > *,
.course-page-footer > *{
  position:relative;
  z-index:1;
}

@media(max-width:900px){
  .staff-heading,
  .staff-heading span{
    text-shadow:0 7px 0 rgba(20,207,255,.92) !important;
  }
  .mobile-menu{
    isolation:isolate !important;
    overflow:hidden !important;
    background-color:rgba(0,0,0,.56) !important;
    background-image:none !important;
    backdrop-filter:blur(7px) saturate(1.08) !important;
    -webkit-backdrop-filter:blur(7px) saturate(1.08) !important;
  }
  .mobile-menu::before{
    content:"";
    position:absolute;
    z-index:0;
    inset:0;
    pointer-events:none;
    background:url('menu-paint-splashes-transparent.webp') center top/cover no-repeat;
    mix-blend-mode:normal;
    opacity:.72;
  }
  .mobile-menu a{position:relative !important;z-index:2 !important}
  footer::before,
  .course-page-footer::before{
    background-size:cover,cover;
    background-position:center,center;
  }
}


/* V91 — Privacy, consenso modulo e contenuti esterni */
.booking-privacy{margin:4px 0 18px;padding:15px 14px;background:#fff;border:1px solid #ffffff;box-shadow:5px 5px 0 #00000012}
.booking .check-row{display:grid;grid-template-columns:22px 1fr;gap:10px;align-items:start;margin:0 0 13px;font-size:11px;font-weight:650;letter-spacing:0;line-height:1.45;text-transform:none;cursor:pointer}
.booking .check-row:last-of-type{margin-bottom:9px}
.booking .check-row input[type="checkbox"]{appearance:auto;width:18px;height:18px;margin:1px 0 0;padding:0;accent-color:var(--lf-fuchsia);cursor:pointer}
.booking .check-row span{display:block}
.booking .check-row a{color:#000000;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:2px}
.booking .check-row strong{font-weight:900}
.booking .check-optional{color:#000000}
.privacy-mini{margin:10px 0 0;color:#ffffff;font-size:9px;line-height:1.55}
.footer-legal-links a{display:inline-block;color:var(--lf-imola-cyan);font-weight:900;text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:2px}
.footer-legal-links a:hover{color:var(--lf-fuchsia)}

.external-consent-box{height:100%;min-height:280px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:12px;padding:clamp(22px,4vw,46px);background:linear-gradient(135deg,#000000,#000000);color:#fff}
.external-consent-box>strong{font:400 clamp(38px,5vw,68px)/.9 var(--display);letter-spacing:.01em;color:var(--lf-fuchsia);text-shadow:4px 4px 0 rgba(20,207,255,0.4)}
.external-consent-box p{max-width:620px;margin:0;color:#ffffff;font-size:12px;line-height:1.6}
.external-consent-btn{width:auto!important;margin-top:2px}
.external-direct-link{color:var(--lf-imola-cyan);font-size:10px;font-weight:900;letter-spacing:.08em;text-decoration:none}
.external-instagram-consent{max-width:840px;margin:0 auto 38px;padding:28px;background:#000000;border:1px solid #ffffff18;box-shadow:10px 10px 0 rgba(20,207,255,0.2196);text-align:left}
.external-instagram-consent>strong{display:block;font:400 46px/.95 var(--display);color:var(--lf-fuchsia);margin-bottom:8px}
.external-instagram-consent p{margin:0 0 16px;color:#ffffff;line-height:1.6;font-size:13px}
.external-instagram-consent small{display:block;color:#ffffff;line-height:1.55;margin-top:12px;font-size:9px}

.legal-page{min-height:100vh;background:#000000;padding-top:84px;color:#ffffff}
.legal-hero{padding:clamp(80px,9vw,130px) clamp(20px,8vw,130px) 55px;background:radial-gradient(circle at 85% 15%,rgba(20,207,255,0.1412),transparent 24%),radial-gradient(circle at 10% 70%,#00d8ff1d,transparent 22%),#000000;border-bottom:1px solid #ffffff12}
.legal-title{margin:10px 0 22px;font:400 clamp(72px,11vw,164px)/.78 var(--display);letter-spacing:-.01em;color:#fff}
.legal-title strong{color:var(--lf-fuchsia);font-weight:400;text-shadow:8px 8px 0 rgba(20,207,255,0.2196)}
.legal-intro{max-width:780px;color:#ffffff;font-size:15px;line-height:1.7}
.legal-update{margin-top:14px;color:#ffffff;font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.legal-content{padding:50px clamp(20px,8vw,130px) 100px;display:grid;gap:18px}
.legal-card{max-width:1000px;width:100%;margin:0 auto;padding:clamp(24px,4vw,42px);background:#000000;border:1px solid #ffffff13;box-shadow:10px 10px 0 #ffffff08}
.legal-card h2{margin:0 0 18px;font:400 clamp(38px,5vw,64px)/.95 var(--display);letter-spacing:0;color:var(--lf-imola-cyan)}
.legal-card h3{margin:24px 0 7px;font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:#fff}
.legal-card p,.legal-card li{color:#ffffff;font-size:13px;line-height:1.75}
.legal-card p{margin:0 0 12px}.legal-card p:last-child{margin-bottom:0}
.legal-card ul{margin:8px 0 12px;padding-left:20px}.legal-card li{margin-bottom:6px}
.legal-card a{color:var(--lf-imola-cyan);font-weight:800}
.legal-highlight{margin-top:18px;padding:15px 17px;border-left:4px solid var(--lf-fuchsia);background:#000000;color:#ffffff;font-size:12px;line-height:1.65}
.legal-back{max-width:1000px;width:100%;margin:18px auto 0}.legal-back .btn{width:auto}
@media(max-width:900px){
  .legal-page{padding-top:74px}.legal-hero{padding:62px 18px 40px}.legal-content{padding:36px 18px 74px}.legal-card{padding:24px 19px;box-shadow:7px 7px 0 #ffffff08}
  .legal-title{font-size:clamp(68px,22vw,104px)}.legal-card h2{font-size:clamp(38px,12vw,56px)}.legal-card p,.legal-card li{font-size:12px}
  .external-consent-box{min-height:250px}.external-consent-btn{width:100%!important}.external-instagram-consent{margin:0 0 30px;padding:22px 18px}.external-instagram-consent>strong{font-size:40px}
  .legal-back .btn{width:100%}
}


/* V92 — prenotazione dinamica Open Day / prima lezione gratuita */
.booking-dynamic[hidden]{display:none!important}
.booking-dynamic{margin:0 0 19px}
.booking-open-day{padding:14px 14px 13px;background:#ffffff;border:1px solid #ffffff;box-shadow:5px 5px 0 #00000012}
.booking-open-day>label{margin-bottom:8px}
.booking-courses{border:0;padding:0;margin:0 0 19px;min-width:0}
.booking-courses legend{display:block;width:100%;padding:0;margin:0 0 10px;font-size:9px;font-weight:900;letter-spacing:.13em;line-height:1.45}
.booking-course-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.booking .course-check{display:grid;grid-template-columns:21px 1fr;gap:9px;align-items:start;margin:0;padding:12px 11px;background:#fff;border:1px solid #ffffff;cursor:pointer;letter-spacing:0;text-transform:none;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}
.booking .course-check:hover{transform:translateY(-1px);border-color:#000000;box-shadow:3px 3px 0 #00000018}
.booking .course-check input[type="checkbox"]{appearance:auto;width:17px;height:17px;margin:1px 0 0;padding:0;accent-color:var(--lf-fuchsia)}
.booking .course-check span{display:block;min-width:0}
.booking .course-check strong{display:block;font-size:10px;line-height:1.25;letter-spacing:.035em}
.booking .course-check small{display:block;margin-top:4px;color:#ffffff;font-size:9px;font-weight:750;letter-spacing:.01em;line-height:1.35}
.booking-hint{margin:9px 0 0;color:#ffffff;font-size:9px;line-height:1.5;letter-spacing:0;text-transform:none}
.booking-hint strong{color:#000000;font-weight:900}
@media(max-width:620px){
  .booking-course-grid{grid-template-columns:1fr}
  .booking-open-day{padding:13px 12px 12px}
}

/* V93 — Privacy mobile ottimizzata e impaginazione più ordinata */
.legal-page{
  width:100%;
  max-width:100%;
  overflow-x:hidden;
}
.legal-hero{
  padding-left:max(18px,env(safe-area-inset-left));
  padding-right:max(18px,env(safe-area-inset-right));
}
.legal-hero > *{
  width:min(100%,920px);
  margin-left:auto;
  margin-right:auto;
}
.legal-content{
  width:min(100%,1040px);
  max-width:1040px;
  margin:0 auto;
  padding:42px clamp(16px,4vw,34px) 90px;
  box-sizing:border-box;
  gap:14px;
}
.legal-card{
  width:100%;
  max-width:920px;
  box-sizing:border-box;
  padding:28px clamp(20px,3vw,32px);
  border-radius:2px;
  box-shadow:6px 6px 0 #ffffff07;
  overflow-wrap:anywhere;
}
.legal-card h2{
  margin:0 0 14px;
  font:400 clamp(25px,3.1vw,34px)/1 var(--display);
  letter-spacing:.01em;
}
.legal-card h3{
  margin:20px 0 7px;
  font-size:12px;
  line-height:1.35;
  letter-spacing:.065em;
}
.legal-card p,.legal-card li{
  font-size:13px;
  line-height:1.68;
}
.legal-card ul{
  margin:8px 0 12px;
  padding-left:18px;
}
.legal-highlight{
  margin-top:14px;
  padding:13px 15px;
  font-size:12px;
  line-height:1.6;
}
.legal-back{
  max-width:920px;
}

@media (max-width:700px){
  .legal-page{padding-top:70px}
  .legal-hero{
    padding-top:44px;
    padding-bottom:30px;
  }
  .legal-title{
    margin:8px auto 16px;
    font-size:clamp(54px,18vw,78px);
    line-height:.8;
  }
  .legal-intro{
    font-size:13px;
    line-height:1.6;
  }
  .legal-update{
    margin-top:10px;
    font-size:9px;
    line-height:1.45;
  }
  .legal-content{
    width:100%;
    max-width:100%;
    padding:26px 12px 66px;
    gap:11px;
  }
  .legal-card{
    max-width:100%;
    margin:0;
    padding:20px 16px;
    box-shadow:4px 4px 0 #ffffff07;
  }
  .legal-card h2{
    margin-bottom:11px;
    font-size:clamp(24px,8.3vw,31px);
    line-height:1.02;
  }
  .legal-card h3{
    margin-top:17px;
    font-size:11px;
    letter-spacing:.045em;
  }
  .legal-card p,.legal-card li{
    font-size:12px;
    line-height:1.65;
  }
  .legal-card ul{
    padding-left:17px;
  }
  .legal-highlight{
    padding:12px 13px;
    font-size:11px;
  }
  .legal-back{
    width:100%;
    max-width:100%;
    margin:8px 0 0;
  }
}

/* V101 — QUANDO & DOVE: livelli + richiamo corsi/sala */
.schedule-levels,.schedule-venue{display:flex;flex-direction:column;align-items:flex-start;gap:7px;min-width:0}
.schedule-level-link{display:block;text-decoration:none;color:#fff;transition:transform .2s ease,color .2s ease}
.schedule-level-link strong{display:block}
.schedule-level-link strong em{font-style:normal;color:var(--green)}
.schedule-level-link small,.schedule-venue small{display:block;margin-top:2px;color:#ffffff;font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.schedule-level-link:hover,.schedule-level-link:focus-visible{color:var(--green);transform:translateX(4px);outline:none}
.schedule-level-link:hover strong em,.schedule-level-link:focus-visible strong em{color:#fff}
.schedule-inline-link{display:inline-flex;align-items:center;gap:7px;margin-top:5px;color:#fff;text-decoration:none;font-size:9px;font-weight:900;letter-spacing:.16em;text-transform:uppercase;border-bottom:1px solid #ffffff4a;padding-bottom:3px;transition:color .2s ease,border-color .2s ease,transform .2s ease}
.schedule-inline-link b{color:var(--green);font-size:14px}
.schedule-inline-link:hover,.schedule-inline-link:focus-visible{color:var(--green);border-color:var(--green);transform:translateX(3px);outline:none}
.schedule-venue-line{border-bottom:0}
.schedule-venue strong{font-size:17px;line-height:1.35}
@media(max-width:720px){
  .schedule-level-link strong,.schedule-venue strong{font-size:14px}
  .schedule-level-link small,.schedule-venue small{font-size:9px}
  .schedule-inline-link{font-size:8px}
}


/* V103 — FLOW: FIGURA celeste + didascalia più leggibile */
.flow-copy .figura-cyan{
  color:var(--lf-imola-cyan) !important;
  -webkit-text-fill-color:var(--lf-imola-cyan) !important;
  background:none !important;
  text-shadow:0 10px 0 #000 !important;
}
.flow-copy > p:last-of-type{
  color:#000 !important;
  font-weight:700 !important;
}
@media(max-width:900px){
  .flow-copy .figura-cyan{
    text-shadow:0 7px 0 #000 !important;
  }
}


/* V104 TEST CONVERSIONE — rifiniture CTA e Open Day, senza modifiche alla logica Google Sheets */
#flow,#orari,#corsi,#experience,#open-day,#contatti{scroll-margin-top:88px}

/* Un solo CTA dominante: Open Day */
.nav-cta{border-color:transparent!important;background:linear-gradient(90deg,var(--lf-imola-cyan),var(--lf-fuchsia))!important;color:#000000!important;font-weight:900!important}
.nav-cta:hover{transform:translateY(-1px);filter:brightness(1.08);color:#000000!important}

/* Form più leggibile e orientato all'azione */
.booking-head{margin:-4px 0 24px;padding:0 0 18px;border-bottom:1px solid #ffffff}
.booking-head>span{display:block;margin-bottom:6px;color:var(--lf-violet);font-size:9px;font-weight:900;letter-spacing:.16em}
.booking-head>strong{display:block;font:400 clamp(30px,3.1vw,43px)/.94 var(--display);letter-spacing:.01em;color:#000000}
.booking-head>small{display:block;margin-top:9px;color:#ffffff;font-size:10px;font-weight:650;line-height:1.5;letter-spacing:0}
.booking-btn{min-height:56px;font-size:11px!important;letter-spacing:.08em!important;background:linear-gradient(90deg,var(--lf-imola-cyan),var(--lf-fuchsia))!important;color:#000000!important;border:0!important;box-shadow:0 0 0 1px #00000010!important}
.booking-btn:hover{filter:brightness(1.06);transform:translateY(-1px)}
.booking-mail-btn,.btn.booking-mail-btn,button.booking-mail-btn{min-height:44px;padding-top:12px!important;padding-bottom:12px!important;font-size:9px!important;opacity:.82}
.booking-mail-btn:hover,.btn.booking-mail-btn:hover,button.booking-mail-btn:hover{opacity:1}
.booking>small{font-weight:850;letter-spacing:.07em;color:#ffffff}
.privacy-mini{font-size:8.5px;line-height:1.5;color:#ffffff}
.open-copy>p:not(.kicker) strong{color:#fff}

@media(max-width:900px){
  #flow,#orari,#corsi,#experience,#open-day,#contatti{scroll-margin-top:76px}
  .booking-head{margin-bottom:21px;padding-bottom:16px}
  .booking-head>strong{font-size:clamp(31px,9vw,40px)}
  .booking-head>small{font-size:9.5px}
  .booking-btn{min-height:58px;font-size:10px!important}
}


/* V105 — CTA mobile fisso + conferma prenotazione */
.mobile-sticky-cta{display:none}
.booking-success-overlay{position:fixed;inset:0;z-index:1500;display:grid;place-items:center;padding:22px;background:rgba(0,0,0,0.851);backdrop-filter:blur(10px);opacity:0;pointer-events:none;transition:opacity .2s ease}
.booking-success-overlay.is-visible{opacity:1;pointer-events:auto}
.booking-success-card{position:relative;width:min(100%,470px);padding:28px 24px 24px;background:#ffffff;color:#000000;border:1px solid #fff;box-shadow:10px 10px 0 var(--lf-fuchsia);text-align:center;transform:translateY(10px) scale(.98);transition:transform .24s ease}
.booking-success-overlay.is-visible .booking-success-card{transform:none}
.booking-success-close{position:absolute;top:10px;right:11px;width:34px;height:34px;display:grid;place-items:center;padding:0;border:1px solid #000000;background:#fff;color:#000000;font:900 25px/1 var(--sans);cursor:pointer;opacity:0;visibility:hidden;pointer-events:none;transform:scale(.9);transition:opacity .18s ease,transform .18s ease,visibility .18s ease}
.booking-success-overlay.can-exit .booking-success-close{opacity:1;visibility:visible;pointer-events:auto;transform:none}
.booking-success-close:hover,.booking-success-close:focus-visible{background:#000000;color:#fff}
.booking-success-kicker{display:block;margin-bottom:8px;color:var(--lf-violet);font-size:9px;font-weight:900;letter-spacing:.16em}
.booking-success-card>strong{display:block;font:400 clamp(42px,9vw,64px)/.9 var(--display);letter-spacing:.01em}
.booking-success-card p{margin:16px 0 8px;font-size:14px;font-weight:800;line-height:1.5}
.booking-success-card p b{color:var(--lf-violet)}
.booking-success-card small{display:block;color:#ffffff;font-size:10px;font-weight:700;line-height:1.5}
.booking-success-actions{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:9px;margin-top:18px}
.booking-success-continue,.booking-success-return{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:12px 18px;font:900 10px/1 var(--sans);letter-spacing:.08em;text-decoration:none;cursor:pointer}
.booking-success-continue{background:linear-gradient(90deg,var(--lf-imola-cyan),var(--lf-fuchsia));color:#000000;border:0}
.booking-success-return{background:transparent;color:#000000;border:1px solid #000000;font-weight:950!important;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(4px);transition:opacity .18s ease,transform .18s ease,visibility .18s ease}
.booking-success-overlay.can-exit .booking-success-return{opacity:1;visibility:visible;pointer-events:auto;transform:none}
.booking-success-return:hover,.booking-success-return:focus-visible{background:#000000;color:#fff}

@media(max-width:900px){
  body.has-mobile-sticky-cta{padding-bottom:calc(76px + env(safe-area-inset-bottom))}
  .mobile-sticky-cta{position:fixed;z-index:130;left:50%;bottom:calc(10px + env(safe-area-inset-bottom));transform:translateX(-50%);display:flex;align-items:center;justify-content:space-between;gap:18px;width:calc(100% - 24px);max-width:560px;min-height:54px;padding:12px 18px;background:linear-gradient(90deg,var(--lf-imola-cyan),var(--lf-fuchsia));border:1px solid #ffffff9c;box-shadow:0 10px 34px #00000070;color:#000000;text-decoration:none;font-size:10px;font-weight:950;letter-spacing:.11em;transition:opacity .2s ease,transform .2s ease,visibility .2s ease}
  .mobile-sticky-cta b{font-size:17px;line-height:1}
  .mobile-sticky-cta.is-hidden,.menu-open .mobile-sticky-cta{opacity:0;visibility:hidden;pointer-events:none;transform:translate(-50%,10px)}
  .booking-success-card{padding:25px 19px 21px;box-shadow:7px 7px 0 var(--lf-fuchsia)}
  .booking-success-actions{gap:7px}
  .booking-success-continue,.booking-success-return{min-height:43px;padding:11px 13px;font-size:9px}
}


/* V110 — FAQ + ACADEMY ONLINE */
@media(min-width:901px) and (max-width:1220px){
  .nav{gap:20px}
  .desktop-nav{gap:13px}
  .desktop-nav a{font-size:9.5px;letter-spacing:.055em}
  .nav-cta{font-size:9.5px;padding:11px 12px}
}
.academy-nav-active{color:var(--lf-imola-cyan)!important}

/* Home Academy preview */
.academy-preview{position:relative;overflow:hidden;background:linear-gradient(135deg,#000000 0%,#000000 48%,#000000 100%);border-top:1px solid #ffffff12;border-bottom:1px solid #ffffff12}
.academy-preview:before{content:"";position:absolute;width:460px;height:460px;right:-160px;top:-140px;border-radius:50%;background:radial-gradient(circle,var(--lf-violet) 0,transparent 67%);filter:blur(28px);opacity:.2;pointer-events:none}
.academy-preview-grid{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1fr) minmax(330px,.72fr);gap:7vw;align-items:center}
.academy-preview-copy .display-small strong{color:var(--lf-imola-cyan);text-shadow:7px 7px 0 rgba(20,207,255,0.3333)}
.academy-preview-lead{max-width:650px;color:#ffffff;font-size:16px;line-height:1.75}
.academy-benefits{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:28px 0}
.academy-benefits span{min-height:96px;padding:15px 13px;border:1px solid #ffffff22;background:rgba(0,0,0,0.851)}
.academy-benefits b{display:block;color:var(--lf-fuchsia);font:400 28px/.9 var(--display);letter-spacing:.02em}
.academy-benefits small{display:block;margin-top:8px;color:#ffffff;font-size:8px;font-weight:850;line-height:1.5;letter-spacing:.09em}
.academy-preview-btn{width:max-content}
.academy-preview-panel{position:relative;min-height:430px;padding:36px;display:flex;flex-direction:column;justify-content:flex-end;border:1px solid #ffffff28;background:linear-gradient(145deg,#000000,#000000);box-shadow:18px 18px 0 var(--lf-violet);overflow:hidden}
.academy-preview-panel:before{content:"";position:absolute;inset:22px;border:1px solid #ffffff10;background:repeating-linear-gradient(0deg,transparent 0 42px,#ffffff08 42px 43px)}
.academy-preview-panel:after{content:"LF";position:absolute;right:-12px;top:8px;color:#ffffff08;font:400 220px/.8 var(--display)}
.academy-lock{position:absolute;top:28px;left:30px;font-size:32px;filter:grayscale(1)}
.academy-preview-panel>strong{position:relative;z-index:2;font:400 clamp(54px,6vw,86px)/.73 var(--display);color:#fff}
.academy-preview-panel>small{position:relative;z-index:2;margin-top:14px;color:var(--lf-imola-cyan);font-size:8px;font-weight:900;letter-spacing:.15em}
.academy-preview-lines{position:absolute;z-index:2;right:28px;top:28px;display:grid;gap:7px;width:36%}
.academy-preview-lines i{display:block;height:4px;background:linear-gradient(90deg,var(--lf-fuchsia),transparent)}

/* FAQ */
.faq-section{background:#ffffff;color:#000000;border-top:1px solid #ffffff;border-bottom:1px solid #ffffff}
.faq-section .kicker{color:#ffffff}
.faq-section .display-small strong{color:var(--lf-violet);text-shadow:6px 6px 0 #14cfff33}
.faq-section .section-intro{color:#000000}
.faq-list{max-width:980px;margin-top:46px;border-top:1px solid #ffffff}
.faq-list details{border-bottom:1px solid #ffffff;background:#ffffff}
.faq-list summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:22px 2px;cursor:pointer;font-size:12px;font-weight:950;letter-spacing:.07em}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary span{display:grid;place-items:center;flex:0 0 30px;width:30px;height:30px;border:1px solid #000000;border-radius:50%;font-size:19px;font-weight:500;transition:transform .2s ease,background .2s ease,color .2s ease}
.faq-list details[open] summary span{transform:rotate(45deg);background:#000000;color:#fff}
.faq-list details p{max-width:800px;margin:0;padding:0 48px 22px 2px;color:#000000;font-size:13px;line-height:1.7}

/* Academy page */
.academy-page{background:#000000}
.academy-hero{position:relative;min-height:92svh;padding:132px clamp(20px,6vw,96px) 90px;display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,.62fr);gap:7vw;align-items:center;overflow:hidden;isolation:isolate;background:radial-gradient(circle at 75% 35%,#14cfff 0,transparent 30%),linear-gradient(125deg,#000000,#000000 55%,#000000)}
.academy-paint-a{width:48vw;right:-17vw;top:10vh;opacity:.22}
.academy-paint-b{width:43vw;left:-20vw;bottom:-12vw;opacity:.18}
.academy-title{margin:0;font:400 clamp(80px,9vw,150px)/.75 var(--display);text-transform:uppercase;letter-spacing:-.01em}
.academy-title strong{display:inline-block;color:var(--lf-imola-cyan);text-shadow:9px 9px 0 var(--lf-violet)}
.academy-hero-lead{max-width:720px;margin:30px 0 0;color:#ffffff;font-size:17px;line-height:1.7}
.academy-hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}
.academy-hero-lock{position:relative;min-height:470px;padding:34px;display:flex;flex-direction:column;justify-content:flex-end;border:1px solid #ffffff30;background:linear-gradient(150deg,#000000,#000000);box-shadow:20px 20px 0 var(--lf-fuchsia);overflow:hidden}
.academy-hero-lock:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0 68px,#ffffff07 68px 69px),repeating-linear-gradient(0deg,transparent 0 68px,#ffffff07 68px 69px)}
.academy-hero-lock>span{position:absolute;left:31px;top:30px;font-size:38px;filter:grayscale(1)}
.academy-hero-lock>strong{position:relative;font:400 clamp(58px,6vw,86px)/.76 var(--display);color:#fff}
.academy-hero-lock>small{position:relative;margin-top:14px;color:var(--lf-fuchsia);font-size:8px;font-weight:900;letter-spacing:.16em}
.academy-how{background:#ffffff;color:#000000}
.academy-how .kicker{color:#000000}
.academy-how .display-small strong{color:var(--lf-violet)}
.academy-how .section-intro{color:#000000}
.academy-purpose-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:48px}
.academy-purpose-grid article{position:relative;min-height:220px;padding:25px;border:1px solid #ffffff;background:#fff;box-shadow:10px 10px 0 #000000}
.academy-purpose-grid article>b{display:block;color:#ffffff;font:400 34px var(--display)}
.academy-purpose-grid article>strong{display:block;margin-top:30px;color:var(--lf-fuchsia);font:400 44px/.9 var(--display)}
.academy-purpose-grid article>p{margin:12px 0 0;color:#000000;font-size:13px;line-height:1.65}
.academy-library{background:linear-gradient(180deg,#000000,#000000)}
.academy-library .display-small strong{color:var(--lf-imola-cyan)}
.academy-track-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:50px}
.academy-track{border:1px solid #ffffff22;background:#000000;padding:22px;box-shadow:10px 10px 0 #ffffff08}
.academy-track-head{display:flex;align-items:end;justify-content:space-between;gap:16px;padding-bottom:18px;border-bottom:1px solid #ffffff17}
.academy-track-head span{font:400 48px/.8 var(--display);color:#fff}
.academy-track-head strong{color:var(--lf-fuchsia);font-size:11px;font-weight:950;letter-spacing:.12em}
.academy-lesson-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:18px}
.academy-lesson-row small{display:block;color:#ffffff;font-size:7px;font-weight:900;letter-spacing:.14em}
.academy-lesson-row b{display:block;margin-top:5px;color:#ffffff;font-size:12px;letter-spacing:.06em}
.academy-lesson-row a{flex:0 0 auto;padding:12px 14px;border:1px solid #ffffff27;color:#fff;text-decoration:none;font-size:8px;font-weight:950;letter-spacing:.12em;transition:.2s}
.academy-lesson-row a:hover{border-color:var(--lf-imola-cyan);color:var(--lf-imola-cyan)}
.academy-access-note{display:grid;grid-template-columns:auto 1fr;gap:20px;align-items:start;margin-top:32px;padding:22px;border:1px solid #ffffff20;background:#000000}
.academy-access-note>span{font-size:30px;filter:grayscale(1)}
.academy-access-note strong{display:block;color:var(--lf-imola-cyan);font-size:10px;font-weight:950;letter-spacing:.12em}
.academy-access-note p{max-width:850px;margin:8px 0 0;color:#ffffff;font-size:12px;line-height:1.65}

/* Future login gate: today it explains the protected flow without pretending authentication is already active. */
.academy-access-modal{position:fixed;inset:0;z-index:1600;display:grid;place-items:center;padding:20px;opacity:0;visibility:hidden;pointer-events:none;transition:.2s}
.academy-access-modal:target{opacity:1;visibility:visible;pointer-events:auto}
.academy-modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,0.9098);backdrop-filter:blur(9px)}
.academy-access-card{position:relative;z-index:2;width:min(100%,500px);padding:34px 28px;background:#ffffff;color:#000000;border:1px solid #fff;box-shadow:10px 10px 0 var(--lf-violet);text-align:center}
.academy-modal-close{position:absolute;right:14px;top:9px;color:#000000;text-decoration:none;font-size:30px;line-height:1}
.academy-access-icon{display:block;font-size:34px;filter:grayscale(1)}
.academy-access-card>small{display:block;margin-top:10px;color:var(--lf-violet);font-size:8px;font-weight:950;letter-spacing:.15em}
.academy-access-card>strong{display:block;margin-top:7px;font:400 58px/.9 var(--display)}
.academy-access-card>p{margin:16px auto 22px;max-width:400px;color:#000000;font-size:12px;line-height:1.7}
.academy-access-card .btn{width:100%}

@media(max-width:900px){
  .academy-preview-grid{grid-template-columns:1fr;gap:34px}
  .academy-benefits{grid-template-columns:1fr;gap:7px}
  .academy-benefits span{min-height:auto}
  .academy-preview-btn{width:100%}
  .academy-preview-panel{min-height:310px;padding:26px;box-shadow:9px 9px 0 var(--lf-violet)}
  .academy-preview-panel>strong{font-size:62px}
  .faq-list{margin-top:34px}
  .faq-list summary{padding:18px 0;font-size:10px;line-height:1.4}
  .faq-list details p{padding:0 38px 18px 0;font-size:12px}
  .academy-hero{min-height:auto;padding:106px 18px 72px;grid-template-columns:1fr;gap:42px}
  .academy-title{font-size:clamp(72px,22vw,106px)}
  .academy-title strong{text-shadow:6px 6px 0 var(--lf-violet)}
  .academy-hero-lead{font-size:14px;margin-top:22px}
  .academy-hero-lock{min-height:300px;padding:26px;box-shadow:9px 9px 0 var(--lf-fuchsia)}
  .academy-hero-lock>strong{font-size:64px}
  .academy-purpose-grid,.academy-track-grid{grid-template-columns:1fr}
  .academy-purpose-grid article{min-height:180px;box-shadow:7px 7px 0 #000000}
  .academy-track{padding:18px}
  .academy-track-head span{font-size:42px}
  .academy-lesson-row{align-items:flex-end}
  .academy-lesson-row b{font-size:10px}
  .academy-access-note{grid-template-columns:1fr;gap:10px}
  .academy-access-card{padding:29px 20px 24px;box-shadow:7px 7px 0 var(--lf-violet)}
  .academy-access-card>strong{font-size:50px}
}

/* V111 — Academy riallineata allo stile Latin Flow */
.academy-page{
  background:#000000;
}

/* Stessi schizzi usati nelle altre pagine del sito */
.academy-hero,
.academy-library{
  background-color:#000000 !important;
  background-image:var(--lf-bg-black-splash) !important;
  background-repeat:no-repeat !important;
  background-size:cover !important;
  background-position:center !important;
}
.academy-how{
  background-color:#fff !important;
  background-image:linear-gradient(rgba(255,255,255,.60),rgba(255,255,255,.60)),url('bg-room-light-splashes.webp') !important;
  background-repeat:no-repeat !important;
  background-size:cover !important;
  background-position:center !important;
}

/* Hero più compatto e titoli meno invasivi */
.academy-hero{
  min-height:78svh;
  padding:124px clamp(20px,6vw,96px) 74px;
  grid-template-columns:minmax(0,1fr) minmax(280px,.50fr);
  gap:5vw;
}
.academy-title{
  font-size:clamp(58px,6.7vw,108px) !important;
  line-height:.80 !important;
}
.academy-title strong{
  text-shadow:7px 7px 0 var(--lf-violet) !important;
}
.academy-hero-lead{
  max-width:690px;
  margin-top:24px;
  color:#fff !important;
  font-size:15px;
  line-height:1.7;
  font-weight:800;
}
.academy-hero-lead strong{font-weight:800}
.academy-hero-lock{
  min-height:350px;
  padding:28px;
  box-shadow:14px 14px 0 var(--lf-fuchsia);
  background:rgba(0,0,0,.88);
  backdrop-filter:blur(2px);
}
.academy-hero-lock>strong{
  font-size:clamp(44px,4.4vw,66px) !important;
}

/* A cosa serve: sezione e riquadri più piccoli */
.academy-how{
  padding-top:clamp(58px,6vw,82px) !important;
  padding-bottom:clamp(58px,6vw,82px) !important;
}
.academy-how .section-head{
  max-width:780px;
}
.academy-how .display-small,
.academy-library .display-small{
  font-size:clamp(44px,5vw,76px) !important;
  line-height:.82 !important;
}
.academy-how .section-intro,
.academy-library .section-intro{
  max-width:720px;
  font-size:13px;
  line-height:1.65;
}
.academy-purpose-grid{
  gap:12px;
  margin-top:30px;
  max-width:900px;
}
.academy-purpose-grid article{
  min-height:0 !important;
  padding:18px 18px 15px !important;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid #ffffff;
  background:rgba(255,255,255,.92);
  box-shadow:7px 7px 0 #000000 !important;
}
.academy-purpose-grid article>strong{
  margin:0 !important;
  color:var(--lf-fuchsia);
  font-size:clamp(30px,3vw,42px) !important;
  line-height:.86;
  text-align:center;
}

/* Libreria più compatta */
.academy-library{
  padding-top:clamp(70px,8vw,108px) !important;
  padding-bottom:clamp(70px,8vw,108px) !important;
}
.academy-track-grid{
  margin-top:34px;
  gap:13px;
}
.academy-track{
  padding:18px;
  background:rgba(0,0,0,.90);
}
.academy-track-head span{
  font-size:40px;
}
.academy-access-note{
  background:rgba(0,0,0,.9);
}

@media(max-width:900px){
  .academy-hero{
    min-height:auto;
    padding:98px 18px 58px;
    gap:30px;
  }
  .academy-title{
    font-size:clamp(54px,16vw,78px) !important;
    line-height:.80 !important;
  }
  .academy-title strong{text-shadow:5px 5px 0 var(--lf-violet) !important}
  .academy-hero-lead{
    margin-top:18px;
    font-size:13px;
    line-height:1.62;
  }
  .academy-hero-lock{
    min-height:230px;
    padding:22px;
    box-shadow:7px 7px 0 var(--lf-fuchsia);
  }
  .academy-hero-lock>strong{font-size:46px !important}
  .academy-how{
    padding:52px 18px !important;
  }
  .academy-how .display-small,
  .academy-library .display-small{
    font-size:clamp(40px,12vw,58px) !important;
  }
  .academy-purpose-grid{
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    gap:7px;
    margin-top:24px;
  }
  .academy-purpose-grid article{
    padding:13px 5px 11px !important;
    box-shadow:4px 4px 0 #000000 !important;
  }
  .academy-purpose-grid article>strong{
    font-size:clamp(20px,7vw,29px) !important;
  }
  .academy-library{
    padding:58px 18px !important;
  }
  .academy-track-grid{margin-top:26px}
  .academy-track{padding:15px}
  .academy-track-head span{font-size:34px}
}

@media(max-width:430px){
  .academy-purpose-grid{
    grid-template-columns:1fr !important;
    max-width:300px;
  }
  .academy-purpose-grid article{
    padding:10px 12px 8px !important;
  }
  .academy-purpose-grid article>strong{
    font-size:28px !important;
  }
}

/* V112 — Home: sfondi Latin Flow + FAQ compatta + descrizioni bold su chiaro */
.academy-preview{
  background-color:#000000 !important;
  background-image:var(--lf-bg-black-splash) !important;
  background-repeat:no-repeat !important;
  background-size:cover !important;
  background-position:center !important;
}
.academy-preview:before{
  display:none !important;
}

.faq-section{
  padding-top:clamp(58px,6vw,82px) !important;
  padding-bottom:clamp(58px,6vw,82px) !important;
  background-color:#ffffff !important;
  background-image:linear-gradient(rgba(255,255,255,.72),rgba(255,255,255,.72)),var(--lf-bg-white-splash) !important;
  background-repeat:no-repeat !important;
  background-size:cover !important;
  background-position:center !important;
}
.faq-section .section-head{
  max-width:760px;
}
.faq-section .display-small{
  font-size:clamp(42px,4.7vw,70px) !important;
  line-height:.84 !important;
}
.faq-section .section-intro{
  max-width:680px;
  margin-top:14px !important;
  color:#000000 !important;
  font-size:13px;
  line-height:1.55;
  font-weight:800 !important;
}
.faq-list{
  max-width:900px;
  margin-top:26px !important;
  border-top:1px solid #ffffff;
}
.faq-list details{
  background:rgba(255,255,255,.72) !important;
}
.faq-list summary{
  padding:15px 2px !important;
  font-size:11px;
}
.faq-list summary span{
  width:26px;
  height:26px;
  flex-basis:26px;
  font-size:16px;
}
.faq-list details p{
  padding:0 42px 15px 2px !important;
  color:#000000 !important;
  font-size:12px;
  line-height:1.55;
  font-weight:700;
}

/* Regola Home: descrizioni su sfondo chiaro sempre in grassetto */
.flow-section .flow-copy > p:not(.kicker),
.faq-section .section-intro{
  font-weight:800 !important;
}

@media(max-width:900px){
  .faq-section{
    padding:44px 18px !important;
  }
  .faq-section .display-small{
    font-size:clamp(38px,11vw,52px) !important;
  }
  .faq-section .section-intro{
    margin-top:10px !important;
    font-size:12px;
  }
  .faq-list{
    margin-top:20px !important;
  }
  .faq-list summary{
    padding:13px 0 !important;
    font-size:9.5px;
    line-height:1.35;
  }
  .faq-list details p{
    padding:0 34px 13px 0 !important;
    font-size:11px;
  }
}

/* V113 — FIX HERO ACADEMY: layout stabile desktop/mobile */
.academy-page .academy-hero{
  width:100%;
  min-height:auto !important;
  box-sizing:border-box;
  padding:118px clamp(22px,6vw,92px) 68px !important;
  display:grid !important;
  grid-template-columns:minmax(0,1.25fr) minmax(250px,.55fr) !important;
  gap:clamp(28px,5vw,70px) !important;
  align-items:center !important;
  background-color:#000000 !important;
  background-image:var(--lf-bg-black-splash) !important;
  background-size:cover !important;
  background-position:center !important;
  overflow:hidden !important;
}
.academy-page .academy-hero-copy{
  min-width:0;
  max-width:780px;
}
.academy-page .academy-hero .kicker{
  margin:0 0 14px;
}
.academy-page .academy-title{
  margin:0 !important;
  max-width:100%;
  font-size:clamp(48px,6vw,86px) !important;
  line-height:.84 !important;
  letter-spacing:0 !important;
  overflow-wrap:normal;
  word-break:normal;
}
.academy-page .academy-title strong{
  display:inline-block;
  text-shadow:6px 6px 0 var(--lf-violet) !important;
}
.academy-page .academy-hero-lead{
  width:min(100%,680px);
  margin:22px 0 0 !important;
  color:#fff !important;
  font-size:14px !important;
  line-height:1.65 !important;
  font-weight:800 !important;
}
.academy-page .academy-hero-actions{
  margin-top:24px !important;
  display:flex;
  flex-wrap:wrap;
  gap:10px !important;
}
.academy-page .academy-hero-lock{
  width:100%;
  min-width:0;
  min-height:260px !important;
  box-sizing:border-box;
  padding:24px !important;
  align-self:center;
  background:rgba(0,0,0,.90) !important;
  box-shadow:10px 10px 0 var(--lf-fuchsia) !important;
}
.academy-page .academy-hero-lock>span{
  left:24px !important;
  top:22px !important;
  font-size:30px !important;
}
.academy-page .academy-hero-lock>strong{
  font-size:clamp(38px,4vw,56px) !important;
  line-height:.82 !important;
}
.academy-page .academy-hero-lock>small{
  margin-top:10px !important;
  font-size:7px !important;
  line-height:1.45;
}

@media(max-width:900px){
  .academy-page .academy-hero{
    padding:94px 18px 54px !important;
    grid-template-columns:1fr !important;
    gap:24px !important;
  }
  .academy-page .academy-hero-copy{
    max-width:none;
  }
  .academy-page .academy-title{
    font-size:clamp(46px,14.2vw,68px) !important;
    line-height:.86 !important;
  }
  .academy-page .academy-title strong{
    text-shadow:4px 4px 0 var(--lf-violet) !important;
  }
  .academy-page .academy-hero-lead{
    margin-top:17px !important;
    font-size:13px !important;
  }
  .academy-page .academy-hero-actions{
    margin-top:20px !important;
  }
  .academy-page .academy-hero-lock{
    min-height:180px !important;
    padding:20px !important;
    box-shadow:6px 6px 0 var(--lf-fuchsia) !important;
  }
  .academy-page .academy-hero-lock>span{
    left:20px !important;
    top:18px !important;
    font-size:25px !important;
  }
  .academy-page .academy-hero-lock>strong{
    font-size:38px !important;
  }
}

@media(max-width:480px){
  .academy-page .academy-hero-actions{
    display:grid !important;
    grid-template-columns:1fr !important;
  }
  .academy-page .academy-hero-actions .btn{
    width:100%;
    box-sizing:border-box;
    text-align:center;
  }
}

/* V114 — HOME ACADEMY: CTA CYAN→FUCHSIA + PREVIEW BOX PIÙ COMPATTO */
.academy-preview .academy-preview-btn{
  background:linear-gradient(90deg,var(--lf-imola-cyan),var(--lf-fuchsia)) !important;
  color:#fff !important;
  border:0 !important;
  box-shadow:10px 10px 0 rgba(20,207,255,.30) !important;
}
.academy-preview .academy-preview-btn:hover{
  background:linear-gradient(90deg,#3fe2ff,#ff47ba) !important;
  color:#fff !important;
}
.academy-preview .academy-preview-panel{
  min-height:320px;
  width:min(100%,410px);
  justify-self:center;
  padding:28px;
  box-shadow:12px 12px 0 var(--lf-violet);
}
.academy-preview .academy-preview-panel>strong{
  font-size:clamp(48px,5vw,68px);
  line-height:.76;
}
.academy-preview .academy-preview-panel>small{
  margin-top:10px;
  font-size:7px;
}
.academy-preview .academy-lock{
  top:22px;
  left:24px;
  font-size:27px;
}
.academy-preview .academy-preview-lines{
  right:22px;
  top:23px;
  width:31%;
}

@media(max-width:900px){
  .academy-preview .academy-preview-panel{
    min-height:235px;
    width:min(88%,330px);
    padding:22px;
    box-shadow:8px 8px 0 var(--lf-violet);
  }
  .academy-preview .academy-preview-panel>strong{
    font-size:50px;
  }
  .academy-preview .academy-lock{
    top:18px;
    left:20px;
    font-size:24px;
  }
  .academy-preview .academy-preview-lines{
    right:18px;
    top:19px;
    width:29%;
  }
}


/* V115 — ACADEMY: sezione "A cosa serve" essenziale + CTA coerenti */
.academy-page .academy-how{
  padding-top:clamp(42px,4.5vw,62px) !important;
  padding-bottom:clamp(38px,4vw,56px) !important;
}
.academy-page .academy-how .section-head{
  max-width:760px !important;
  margin-bottom:0 !important;
}
.academy-page .academy-how .display-small{
  margin-bottom:16px !important;
}
.academy-page .academy-how .section-intro{
  margin-bottom:0 !important;
  font-weight:800 !important;
}
.academy-page .academy-improve-violet{
  color:var(--lf-violet) !important;
  -webkit-text-fill-color:var(--lf-violet) !important;
}
.academy-page .academy-purpose-grid{
  display:none !important;
}

/* CTA Academy come il resto di Latin Flow */
.academy-page .academy-hero-actions .btn-hot{
  background:linear-gradient(90deg,var(--lf-imola-cyan),var(--lf-fuchsia)) !important;
  color:#fff !important;
  border:0 !important;
  box-shadow:none !important;
}
.academy-page .academy-hero-actions .btn-hot:hover{
  background:linear-gradient(90deg,#38deff,#ff47ba) !important;
  color:#fff !important;
}
.academy-page .academy-hero-actions .btn-ghost{
  background:linear-gradient(#000000,#000000) padding-box, linear-gradient(90deg,var(--lf-fuchsia),var(--lf-violet)) border-box !important;
  border:1px solid transparent !important;
  color:#fff !important;
  box-shadow:none !important;
}
.academy-page .academy-hero-actions .btn-ghost:hover{
  background:linear-gradient(#000000,#000000) padding-box, linear-gradient(90deg,#ff47ba,#14cfff) border-box !important;
  color:#fff !important;
}

@media(max-width:900px){
  .academy-page .academy-how{
    padding-top:36px !important;
    padding-bottom:34px !important;
  }
  .academy-page .academy-how .display-small{
    margin-bottom:13px !important;
  }
}

/* V117 — Contrasto testi Academy richiesto */
/* Pagina Academy: sezione "Tutto in ordine" */
.academy-page .academy-library .kicker,
.academy-page .academy-library .section-intro{
  color:#fff !important;
}

/* Home: preview Academy Online */
.home .academy-preview .kicker,
.academy-preview .academy-preview-copy .kicker,
.academy-preview .academy-preview-lead{
  color:#fff !important;
}


/* V118 — PARTNER LATIN FLOW: sezione predisposta per codici sconto e link affiliati */
.partner-section{
  padding-top:clamp(68px,7vw,96px) !important;
  padding-bottom:clamp(68px,7vw,96px) !important;
  background-color:#ffffff !important;
  background-image:linear-gradient(rgba(255,255,255,.78),rgba(255,255,255,.78)),var(--lf-bg-white-splash) !important;
  background-repeat:no-repeat !important;
  background-size:cover !important;
  background-position:center !important;
  color:#000000 !important;
  border-top:1px solid #ffffff;
  border-bottom:1px solid #ffffff;
}
.partner-head{max-width:820px}
.partner-section .kicker{color:#000000 !important}
.partner-section .display-small{font-size:clamp(52px,5.8vw,88px) !important}
.partner-section .display-small strong{
  color:var(--lf-violet) !important;
  text-shadow:6px 6px 0 rgba(20,207,255,.24) !important;
}
.partner-intro{
  max-width:760px !important;
  margin-top:18px !important;
  color:#000000 !important;
  font-size:14px !important;
  line-height:1.62 !important;
  font-weight:800 !important;
}
.partner-grid{
  position:relative;
  z-index:4;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
  max-width:1120px;
  margin-top:38px;
}
.partner-card{
  position:relative;
  min-height:370px;
  padding:28px;
  border:1px solid #000000;
  background:rgba(255,255,255,.86);
  box-shadow:10px 10px 0 #000000;
  overflow:hidden;
}
.partner-card:before{
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:6px;
  background:linear-gradient(180deg,var(--lf-imola-cyan),var(--lf-fuchsia),var(--lf-violet));
}
.partner-card-top{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:30px}
.partner-type{font-size:8px;font-weight:950;letter-spacing:.17em;color:#000000}
.partner-status{
  padding:7px 9px;
  border:1px solid #000000;
  font-size:8px;
  font-weight:950;
  letter-spacing:.12em;
  background:#000000;
  color:#fff;
}
.partner-brand{
  font:400 clamp(54px,5.4vw,78px)/.78 var(--display);
  color:#000000;
  letter-spacing:0;
  text-transform:uppercase;
}
.partner-brand-long{font-size:clamp(44px,4.6vw,66px)}
.partner-card>p{max-width:520px;margin:18px 0 0;color:#000000;font-size:13px;line-height:1.62;font-weight:700}
.partner-code{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:14px;
  margin-top:28px;
  padding-top:16px;
  border-top:1px solid #ffffff;
}
.partner-code span{font-size:8px;font-weight:950;letter-spacing:.15em;color:#000000}
.partner-code strong{font-size:13px;letter-spacing:.08em;color:var(--lf-violet)}
.partner-btn{
  width:100%;
  margin-top:18px;
  background:linear-gradient(#000000,#000000) padding-box,linear-gradient(90deg,var(--lf-imola-cyan),var(--lf-fuchsia)) border-box !important;
  border:1px solid transparent !important;
  color:#fff !important;
  box-shadow:none !important;
  opacity:.62;
  cursor:not-allowed;
}
.partner-btn:hover{transform:none !important}
.partner-disclosure{display:block;margin-top:11px;color:#ffffff;font-size:9px;line-height:1.45;font-weight:700}
.partner-note{max-width:880px;margin:24px 0 0;color:#000000;font-size:10px;line-height:1.55}
#partner{scroll-margin-top:88px}

@media(max-width:900px){
  .partner-section{padding:52px 18px !important}
  .partner-section .display-small{font-size:clamp(44px,12vw,60px) !important}
  .partner-intro{font-size:12px !important;margin-top:13px !important}
  .partner-grid{grid-template-columns:1fr;gap:14px;margin-top:28px}
  .partner-card{min-height:0;padding:22px;box-shadow:7px 7px 0 #000000}
  .partner-card-top{margin-bottom:22px}
  .partner-brand{font-size:56px}
  .partner-brand-long{font-size:46px}
  .partner-card>p{font-size:12px}
  .partner-code{margin-top:22px}
  #partner{scroll-margin-top:76px}
}

@media(max-width:430px){
  .partner-brand{font-size:48px}
  .partner-brand-long{font-size:40px}
  .partner-card{padding:19px}
  .partner-card-top{gap:8px}
  .partner-type,.partner-status{font-size:7px}
}

/* V119 — TEST COMPATTO: meno aria verticale, stessa struttura e gerarchia */
@media (min-width:901px){
  /* Home */
  .hero{
    min-height:88svh;
    padding-top:102px;
    padding-bottom:52px;
    gap:4vw;
  }
  .hero-lead{margin-top:22px;line-height:1.55}
  .hero-actions{margin-top:24px}
  .micro-row{margin-top:22px}
  .hero-art{height:min(64vh,620px)}

  .section{padding-top:clamp(68px,7.2vw,104px);padding-bottom:clamp(68px,7.2vw,104px)}
  .section-intro{line-height:1.58}
  .course-stack{margin-top:44px}
  .course-card{min-height:154px;padding:23px 27px;gap:21px}
  .flow-section{min-height:auto;padding:82px clamp(20px,6vw,96px)}
  .flow-copy>p:last-of-type{line-height:1.6}
  .pill-grid{margin-top:21px}
  .schedule-wrap{gap:5.5vw}
  .schedule-line{padding:17px 15px}
  .media-grid{margin-top:43px}
  .open-day{padding:clamp(74px,8vw,112px) clamp(20px,6vw,96px)}
  footer{padding-top:52px}

  /* Academy Home / FAQ / Partner */
  .academy-preview-grid{gap:5vw}
  .academy-preview-lead{line-height:1.6}
  .faq-list{margin-top:24px !important}
  .partner-section{padding-top:clamp(54px,5.5vw,74px) !important;padding-bottom:clamp(54px,5.5vw,74px) !important}
  .partner-grid{margin-top:28px}
  .partner-card{min-height:330px;padding:24px}
  .partner-card-top{margin-bottom:22px}
  .partner-card>p{margin-top:14px;line-height:1.5}
  .partner-code{margin-top:21px}

  /* Pagine Salsa / Bachata */
  .course-detail{padding:clamp(58px,6.5vw,88px) clamp(20px,6vw,96px) 66px}
  .detail-head{margin-bottom:28px}
  .detail-grid{gap:26px}
  .timeline-card,.levels-card{padding:24px}

  /* Chi siamo */
  .about-hero{padding:clamp(64px,7vw,100px) clamp(20px,7vw,110px) 58px !important}
  .staff-section{padding:48px clamp(20px,7vw,110px) 52px !important}
  .about-values{padding:54px clamp(20px,7vw,110px) 58px !important}
  .about-values-head{margin-bottom:25px !important}

  /* Sala */
  .room-hero{min-height:76svh;padding:110px clamp(20px,6vw,96px) 68px;gap:5vw}
  .room-location{padding:62px 0}
  .room-location-info{padding:34px clamp(18px,3.5vw,54px)}
  .room-features{padding:76px clamp(20px,6vw,96px)}
  .room-features-grid{gap:18px}
  .room-feature{min-height:218px;padding:22px}
  .room-closing{padding:74px clamp(20px,6vw,96px)}
  .room-closing .btn{margin-top:25px}

  /* Reel & Eventi */
  .reels-hero{min-height:60vh;padding:82px clamp(20px,7vw,110px)}
  .reels-gallery{padding:76px clamp(16px,5vw,76px)}
  .reels-grid{gap:18px}
  .reels-closing{padding:78px 20px}
  .reels-closing .btn{margin-top:22px}

  /* Academy page */
  .academy-page .academy-hero{padding:102px clamp(22px,6vw,92px) 54px !important;gap:clamp(24px,4vw,52px) !important}
  .academy-page .academy-hero-lead{margin-top:17px !important;line-height:1.55 !important}
  .academy-page .academy-hero-actions{margin-top:19px !important}
  .academy-page .academy-hero-lock{min-height:225px !important;padding:21px !important}
  .academy-page .academy-library{padding-top:64px !important;padding-bottom:68px !important}
  .academy-track{padding:15px}
  .academy-access-card{padding:24px 20px}

  /* Privacy */
  .legal-hero{padding:68px clamp(20px,8vw,130px) 42px}
  .legal-content{padding:40px clamp(20px,8vw,130px) 72px;gap:14px}
}

@media (max-width:900px){
  /* Home */
  .hero{min-height:auto;padding:92px 18px 48px;gap:24px}
  .hero-lead{margin-top:18px;line-height:1.5}
  .hero-actions{margin-top:20px}
  .micro-row{margin-top:18px}
  .hero-art{height:min(52vh,440px)}
  .section{padding:56px 18px}
  .flow-section{min-height:auto;padding:58px 18px}
  .flow-copy>p:last-of-type{line-height:1.55}
  .pill-grid{margin-top:20px}
  .course-stack{margin-top:34px}
  .course-card{min-height:0;padding:20px 18px}
  .schedule-line{padding:15px 12px}
  .media-grid{margin-top:32px}
  .open-day{padding:62px 18px}
  footer{padding:44px 18px 24px}

  /* Nuove sezioni Home */
  .academy-preview{padding-top:52px !important;padding-bottom:52px !important}
  .academy-preview-grid{gap:28px}
  .faq-section{padding:38px 18px !important}
  .faq-list{margin-top:16px !important}
  .partner-section{padding:44px 18px !important}
  .partner-grid{margin-top:22px}
  .partner-card{padding:19px;box-shadow:6px 6px 0 #000000}
  .partner-card-top{margin-bottom:17px}
  .partner-card>p{margin-top:12px;line-height:1.48}
  .partner-code{margin-top:17px;padding-top:13px}

  /* Salsa / Bachata */
  .course-detail{padding:52px 18px 56px}
  .detail-head{margin-bottom:25px}
  .detail-grid{gap:20px}
  .timeline-card,.levels-card{padding:19px 16px}

  /* Chi siamo */
  .about-hero{padding:58px 18px 50px !important}
  .staff-section{padding:42px 18px 46px !important}
  .about-values{padding:46px 18px 50px !important}
  .about-values-head{margin-bottom:22px !important}

  /* Sala */
  .room-hero{min-height:auto;padding:96px 18px 62px;gap:34px}
  .room-location{padding:48px 0}
  .room-location-info{padding:32px 18px 36px}
  .room-features{padding:60px 18px}
  .room-features-grid{gap:14px}
  .room-feature{min-height:0;padding:20px}
  .room-closing{padding:60px 18px}
  .room-closing .btn{margin-top:24px}

  /* Reel & Eventi */
  .reels-hero{min-height:auto;padding:82px 18px 62px}
  .reels-gallery{padding:54px 15px}
  .reels-grid{gap:15px}
  .reels-closing{padding:62px 18px}

  /* Academy page */
  .academy-page .academy-hero{padding:88px 18px 46px !important;gap:20px !important}
  .academy-page .academy-hero-lead{margin-top:14px !important;line-height:1.5 !important}
  .academy-page .academy-hero-actions{margin-top:16px !important}
  .academy-page .academy-hero-lock{min-height:160px !important;padding:18px !important}
  .academy-page .academy-how{padding-top:30px !important;padding-bottom:28px !important}
  .academy-page .academy-library{padding-top:48px !important;padding-bottom:52px !important}
  .academy-track{padding:13px}
  .academy-access-card{padding:22px 18px}

  /* Privacy */
  .legal-hero{padding:54px 18px 34px}
  .legal-content{padding:30px 18px 58px;gap:13px}
}

/* V120 — feedback visivo durante il controllo disponibilità Open Day */
.booking-live-status{display:none}
.booking-live-status.is-processing{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  margin:10px 0 16px;
  padding:11px 13px;
  background:#000000;
  color:#fff;
  border-left:4px solid var(--lf-imola-cyan);
  font-size:10px;
  font-weight:900;
  letter-spacing:.08em;
  line-height:1.25;
  text-align:center;
}
.booking-live-status.is-processing strong{color:#fff;font-weight:900}
.booking-spinner{
  width:17px;
  height:17px;
  flex:0 0 17px;
  border:3px solid rgba(255,255,255,.28);
  border-top-color:var(--lf-imola-cyan);
  border-radius:50%;
  animation:latinFlowBookingSpin .72s linear infinite;
}
@keyframes latinFlowBookingSpin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.booking-spinner{animation:none;border-top-color:#fff}}
@media (max-width:700px){
  .booking-live-status.is-processing{margin:9px 0 14px;padding:10px 11px;font-size:9.5px;gap:9px}
  .booking-spinner{width:16px;height:16px;flex-basis:16px}
}

/* V129 — Open Day: livelli indipendenti Salsa / Bachata Sensual */
.booking-level-grid{display:grid;grid-template-columns:1fr;gap:2px;margin:0 0 6px}
.booking-level-grid>label{margin-bottom:14px}
.booking-path-result{margin:0 0 16px;padding:14px;background:#000000;color:#fff;border-left:4px solid var(--lf-fuchsia)}
.booking-path-result>span{display:block;margin-bottom:10px;color:#ffffff;font-size:8px;font-weight:900;letter-spacing:.15em}
.booking-path-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:8px 0;border-top:1px solid #ffffff1c}
.booking-path-row:first-of-type{border-top:0}
.booking-path-row strong{font-size:10px;letter-spacing:.06em}
.booking-path-row b{display:inline-flex;align-items:center;justify-content:center;min-width:48px;padding:5px 8px;background:linear-gradient(90deg,var(--lf-imola-cyan),var(--lf-fuchsia));color:#000000;font-size:10px;letter-spacing:.08em}
.booking-split-dates{display:grid;grid-template-columns:1fr;gap:4px}
.booking-time-note{float:right;color:#ffffff;font-size:8px;font-weight:800;letter-spacing:.04em}
.booking-open-day [data-shared-date-wrap][hidden],.booking-open-day [data-split-date-wrap][hidden]{display:none!important}
@media(max-width:640px){.booking-path-result{padding:12px}.booking-path-row{gap:10px}.booking-time-note{float:none;display:block;margin-top:3px}}


/* V140 - Latin Flow Academy: login Google + accesso corsi */
.academy-google-signin{display:flex;justify-content:center;align-items:center;min-height:44px;margin:2px auto 14px}
.academy-login-status{min-height:18px;margin:0 auto 18px;max-width:390px;font-size:11px;font-weight:800;line-height:1.45;letter-spacing:.02em}
.academy-login-status.is-loading{color:#ffffff}
.academy-login-status.is-error{color:#ff1fa8}
.academy-login-status.is-success{color:#14cfff}
.academy-lesson-row a.academy-course-open{border-color:var(--lf-imola-cyan);background:var(--lf-imola-cyan);color:#000000}
.academy-lesson-row a.academy-course-open:hover{border-color:#fff;background:#fff;color:#000000}


/* V141 — Home button + colori QUANDO & DOVE */
.nav-brand{
  margin-right:auto;
  padding:3px 10px 3px 4px;
  border:1px solid #ffffff20;
  border-radius:999px;
  background:rgba(0,0,0,0.4);
  transition:border-color .2s ease,background .2s ease,transform .2s ease;
}
.nav-brand span{
  display:block;
  font-family:var(--display) !important;
  font-size:17px !important;
  line-height:1;
  letter-spacing:.08em;
  color:#fff;
}
.nav-brand:hover,.nav-brand:focus-visible{
  border-color:var(--lf-cyan);
  background:rgba(0,0,0,0.8667);
  transform:translateY(-1px);
  outline:none;
}

/* Valori principali in giallo */
.schedule-level-link strong{color:var(--lf-yellow);}
.schedule-line:not(.schedule-level-line):not(.schedule-venue-line) > strong{color:var(--lf-yellow);}
.schedule-venue strong{color:var(--lf-yellow);}
/* Mantiene i livelli nel colore già previsto */
.schedule-level-link strong em{color:var(--green);}

/* CTA della sezione in celeste, freccia compresa */
.schedule-inline-link,
.schedule-inline-link b{color:var(--lf-cyan);}
.schedule-inline-link{border-bottom-color:color-mix(in srgb,var(--lf-cyan) 55%,transparent);}
.schedule-inline-link:hover,.schedule-inline-link:focus-visible{
  color:var(--lf-cyan);
  border-color:var(--lf-cyan);
}

@media(max-width:900px){
  .nav-brand{padding:2px 8px 2px 3px;gap:6px;}
  .nav-brand span{font-size:14px !important;}
}

/* V142 — QUANDO & DOVE: orario in fucsia */
.schedule-line:not(.schedule-level-line):not(.schedule-venue-line) > strong{
  color:var(--lf-fuchsia);
}


/* V143 — HOME coordinato al pulsante menu + apertura animata nella Home */
.nav-brand.nav-brand-home,
.nav-brand.nav-brand-static{
  position:relative;
  isolation:isolate;
  height:54px;
  min-width:54px;
  width:54px;
  padding:0 7px !important;
  gap:0 !important;
  border:3px solid transparent !important;
  border-radius:999px !important;
  background:
    linear-gradient(#000000,#000000) padding-box,
    conic-gradient(from 210deg,var(--lf-yellow),var(--lf-orange),var(--lf-fuchsia),var(--lf-violet),var(--lf-imola-cyan),var(--lf-yellow)) border-box !important;
  box-shadow:0 0 18px rgba(255,31,168,.26),5px 5px 0 rgba(20,207,255,.34) !important;
  overflow:hidden;
  transform:none !important;
  transition:width .48s cubic-bezier(.22,.8,.22,1),box-shadow .28s ease,transform .28s ease !important;
}
.nav-brand.nav-brand-home::before,
.nav-brand.nav-brand-static::before{
  content:"";
  position:absolute;
  inset:4px;
  z-index:-1;
  border:1px solid rgba(255,255,255,.18);
  border-radius:999px;
  pointer-events:none;
}
.nav-brand.nav-brand-home img,
.nav-brand.nav-brand-static img{
  width:38px !important;
  height:38px !important;
  min-width:38px;
  flex:0 0 38px;
  object-fit:contain;
  filter:invert(1) brightness(2);
  transition:transform .42s cubic-bezier(.22,.8,.22,1) !important;
}
.nav-brand.nav-brand-home span,
.nav-brand.nav-brand-static span{
  display:block;
  max-width:0;
  margin-left:0;
  overflow:hidden;
  opacity:0;
  transform:translateX(-8px);
  white-space:nowrap;
  font-family:var(--display) !important;
  font-size:18px !important;
  line-height:1;
  letter-spacing:.08em;
  color:transparent !important;
  background:linear-gradient(90deg,var(--lf-yellow) 0%,var(--lf-fuchsia) 38%,var(--lf-imola-cyan) 64%,var(--lf-violet) 100%);
  -webkit-background-clip:text;
  background-clip:text;
  transition:max-width .48s cubic-bezier(.22,.8,.22,1),margin-left .48s cubic-bezier(.22,.8,.22,1),opacity .25s ease .12s,transform .42s cubic-bezier(.22,.8,.22,1);
}
.nav-brand.nav-brand-home.is-expanded,
.nav-brand.nav-brand-static{
  width:132px;
}
.nav-brand.nav-brand-home.is-expanded span,
.nav-brand.nav-brand-static span{
  max-width:68px;
  margin-left:7px;
  opacity:1;
  transform:translateX(0);
}
.nav-brand.nav-brand-home:hover,
.nav-brand.nav-brand-home:focus-visible,
.nav-brand.nav-brand-static:hover,
.nav-brand.nav-brand-static:focus-visible{
  box-shadow:0 0 22px rgba(20,207,255,.3),5px 5px 0 rgba(255,31,168,.34) !important;
  outline:none;
}
.nav-brand.nav-brand-home:hover img,
.nav-brand.nav-brand-static:hover img{
  transform:scale(1.04) rotate(-2deg);
}

@media(max-width:900px){
  .nav-brand.nav-brand-home,
  .nav-brand.nav-brand-static{
    height:50px;
    min-width:50px;
    width:50px;
    padding:0 6px !important;
  }
  .nav-brand.nav-brand-home img,
  .nav-brand.nav-brand-static img{
    width:34px !important;
    height:34px !important;
    min-width:34px;
    flex-basis:34px;
  }
  .nav-brand.nav-brand-home span,
  .nav-brand.nav-brand-static span{
    font-size:15px !important;
  }
  .nav-brand.nav-brand-home.is-expanded,
  .nav-brand.nav-brand-static{
    width:116px;
  }
  .nav-brand.nav-brand-home.is-expanded span,
  .nav-brand.nav-brand-static span{
    max-width:58px;
    margin-left:6px;
  }
}

@media(prefers-reduced-motion:reduce){
  .nav-brand.nav-brand-home,
  .nav-brand.nav-brand-home img,
  .nav-brand.nav-brand-home span{
    transition:none !important;
  }
}

/* V144 — barra superiore coordinata allo sfondo del menu aperto */
.nav{
  background-color:rgba(0,0,0,.56) !important;
  background-image:none !important;
  backdrop-filter:blur(7px) saturate(1.08) !important;
  -webkit-backdrop-filter:blur(7px) saturate(1.08) !important;
}
.nav::after{
  background:url('menu-paint-splashes-transparent.webp') center top/cover no-repeat !important;
  opacity:.72 !important;
}

@media(max-width:900px){
  .mobile-menu{
    background-color:rgba(0,0,0,.56) !important;
    background-image:none !important;
    backdrop-filter:blur(7px) saturate(1.08) !important;
    -webkit-backdrop-filter:blur(7px) saturate(1.08) !important;
  }
  .mobile-menu::before{
    background:url('menu-paint-splashes-transparent.webp') center top/cover no-repeat !important;
    opacity:.72 !important;
  }
}

/* V145 — testi grigi dei riquadri Home portati al bianco */
/* QUANDO & DOVE: etichette, livelli e indirizzo */
.schedule-board .schedule-line > span,
.schedule-level-link small,
.schedule-venue small{
  color:#fff !important;
}

/* CORSI: sottotitoli e descrizioni Salsa/Bachata */
.course-card .course-title span,
.course-card p{
  color:#fff !important;
}

/* V146 — livelli QUANDO & DOVE + colori riquadro AREA ALLIEVI */
/* PRINCIPIANTI / INTERMEDI tornano grigi */
.schedule-level-link small{
  color:#ffffff !important;
}
/* LIVELLO 1 / LIVELLO 2 in bianco */
.schedule-level-link strong em{
  color:#fff !important;
}
/* Academy: testo fucsia del riquadro Area Allievi in celeste e ombra viola */
.academy-page .academy-hero-lock{
  box-shadow:10px 10px 0 var(--lf-violet) !important;
}
.academy-page .academy-hero-lock>small{
  color:var(--lf-imola-cyan) !important;
}
@media(max-width:900px){
  .academy-page .academy-hero-lock{
    box-shadow:6px 6px 0 var(--lf-violet) !important;
  }
}

/* V147 — SHOP LATIN FLOW (anteprima provvisoria) */
.shop-nav-active,
.shop-menu-link{color:var(--lf-imola-cyan) !important;}

.shop-page{background:#000000;}
.shop-hero{
  position:relative;
  min-height:92svh;
  padding:150px clamp(20px,6vw,96px) 90px;
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(300px,.7fr);
  gap:7vw;
  align-items:center;
  overflow:hidden;
  isolation:isolate;
  background:
    radial-gradient(circle at 83% 35%,rgba(20,207,255,.18),transparent 27%),
    radial-gradient(circle at 18% 72%,rgba(255,31,168,.12),transparent 29%),
    #000000;
}
.shop-paint{position:absolute;pointer-events:none;user-select:none;z-index:-1;}
.shop-paint-a{width:48vw;left:-22vw;bottom:-13vw;opacity:.28;transform:rotate(-12deg);}
.shop-paint-b{width:42vw;right:-16vw;top:8vw;opacity:.20;transform:rotate(18deg);}
.shop-hero-copy{position:relative;z-index:2;max-width:800px;}
.shop-title,
.shop-section-copy h2,
.shop-product-info h3,
.shop-feature-copy h3{
  margin:0;
  font-family:var(--display) !important;
  font-weight:400 !important;
  font-synthesis:none;
  text-transform:uppercase;
  letter-spacing:-.015em;
  text-rendering:optimizeLegibility;
}
.shop-title{font-size:clamp(82px,9.4vw,156px);line-height:.74;}
.shop-title strong{font-weight:400;color:var(--lf-fuchsia);text-shadow:9px 9px 0 rgba(20,207,255,.7);}
.shop-hero-lead{max-width:680px;margin:30px 0 0;color:#ffffff;font-size:clamp(16px,1.25vw,20px);line-height:1.65;}
.shop-hero-actions{display:flex;align-items:center;gap:22px;flex-wrap:wrap;margin-top:34px;}
.shop-hero-actions .btn{width:auto;}
.shop-status{font-size:9px;font-weight:900;letter-spacing:.15em;color:#ffffff;}
.shop-hero-mark{
  justify-self:end;
  width:min(360px,32vw);
  aspect-ratio:1;
  border:1px solid rgba(255,255,255,.15);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  position:relative;
  background:linear-gradient(145deg,rgba(255,255,255,.045),rgba(255,255,255,.012));
  box-shadow:20px 20px 0 rgba(20,207,255,.24),-10px -10px 0 rgba(255,31,168,.12);
  transform:rotate(2deg);
}
.shop-hero-mark::before{content:"";position:absolute;inset:12px;border:1px solid rgba(255,255,255,.08);}
.shop-hero-mark img{width:52%;filter:invert(1) brightness(2);}
.shop-hero-mark>span,.shop-hero-mark>small{font-size:8px;font-weight:900;letter-spacing:.23em;color:#ffffff;}
.shop-hero-mark>strong{font:400 clamp(52px,6vw,86px)/.8 var(--display);font-weight:400;color:#fff;letter-spacing:.02em;}

.shop-category-nav{
  position:sticky;
  top:84px;
  z-index:25;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  border-top:1px solid rgba(255,255,255,.12);
  border-bottom:1px solid rgba(255,255,255,.12);
  background:rgba(0,0,0,.9);
  backdrop-filter:blur(12px);
}
.shop-category-nav a{padding:18px 14px;text-align:center;text-decoration:none;font-size:10px;font-weight:900;letter-spacing:.1em;color:#ffffff;border-right:1px solid rgba(255,255,255,.1);}
.shop-category-nav a:last-child{border-right:0;}
.shop-category-nav a:hover{color:#000000;background:linear-gradient(90deg,var(--lf-imola-cyan),var(--lf-fuchsia));}

.shop-section{position:relative;padding:clamp(92px,10vw,150px) clamp(20px,6vw,96px);overflow:hidden;isolation:isolate;}
.shop-section-light{background:#ffffff;color:#000000;}
.shop-section-dark{background:#000000;color:#ffffff;}
.shop-section-copy{position:relative;z-index:3;max-width:1040px;}
.shop-section-copy h2{font-size:clamp(66px,7.7vw,124px);line-height:.75;}
.shop-section-light .shop-section-copy h2 strong{font-weight:400;color:var(--lf-fuchsia);}
.shop-section-dark .shop-section-copy h2 strong,.shop-how .shop-section-copy h2 strong{font-weight:400;color:var(--lf-imola-cyan);text-shadow:7px 7px 0 rgba(20,207,255,.55);}
.shop-section-copy>p:last-child{max-width:820px;margin:30px 0 0;font-size:clamp(16px,1.25vw,19px);line-height:1.75;}
.shop-section-light .kicker{color:#ffffff;}
.shop-section-light .shop-section-copy>p:last-child{color:#000000;}
.shop-section-dark .shop-section-copy>p:last-child,.shop-how .shop-section-copy>p:last-child{color:#ffffff;}

.shop-product-grid{position:relative;z-index:3;display:grid;gap:24px;margin-top:64px;}
.shop-shirts-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
.shop-hat-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
.shop-product-card{min-width:0;background:#fff;color:#000000;border:1px solid #ffffff;overflow:hidden;box-shadow:12px 12px 0 rgba(0,0,0,.08);}
.shop-dark-card{background:#000000;color:#ffffff;border-color:rgba(255,255,255,.16);box-shadow:12px 12px 0 rgba(20,207,255,.28);}
.shop-product-duo{display:grid;grid-template-columns:1fr 1fr;min-height:330px;}
.shop-placeholder{min-height:300px;display:grid;place-items:center;align-content:center;gap:18px;position:relative;overflow:hidden;}
.shop-placeholder img{width:42%;max-width:150px;filter:grayscale(1);opacity:.24;}
.shop-placeholder span,.shop-placeholder b{font-size:9px;font-weight:900;letter-spacing:.18em;}
.shop-placeholder-light{background:#ffffff;color:#000000;}
.shop-placeholder-dark{background:#000000;color:#ffffff;}
.shop-placeholder-dark img{filter:invert(1) brightness(2);opacity:.23;}
.shop-placeholder-neon{min-height:300px;background:radial-gradient(circle at 50% 40%,rgba(255,31,168,.23),transparent 36%),linear-gradient(145deg,#000000,#000000);color:#fff;border-bottom:1px solid rgba(255,255,255,.1);}
.shop-placeholder-icon{font:400 92px/1 var(--display);color:var(--lf-imola-cyan);text-shadow:7px 7px 0 var(--lf-violet);}
.shop-product-info{padding:27px 28px 30px;}
.shop-product-info small,.shop-feature-copy small{display:block;font-size:8px;font-weight:900;letter-spacing:.16em;color:#ffffff;margin-bottom:8px;}
.shop-dark-card .shop-product-info small{color:var(--lf-imola-cyan);}
.shop-product-info h3{font-size:clamp(38px,4vw,58px);line-height:.8;}
.shop-product-info p{min-height:50px;margin:15px 0 20px;font-size:13px;line-height:1.6;color:#ffffff;}
.shop-dark-card .shop-product-info p{color:#ffffff;}
.shop-product-meta{display:flex;align-items:center;justify-content:space-between;gap:14px;padding-top:18px;border-top:1px solid rgba(0,0,0,.12);}
.shop-dark-card .shop-product-meta{border-top-color:rgba(255,255,255,.12);}
.shop-product-meta span,.shop-product-meta strong{font-size:8px;font-weight:900;letter-spacing:.09em;}
.shop-product-meta span{color:#ffffff;}
.shop-product-meta strong{color:var(--lf-fuchsia);}
.shop-dark-card .shop-product-meta strong{color:var(--lf-imola-cyan);}
.shop-paint-hats{width:54vw;right:-25vw;top:6vw;opacity:.13;transform:rotate(8deg);}

.shop-bag-section{background:linear-gradient(135deg,#ffffff 0%,#ffffff 100%);}
.shop-feature-product{position:relative;z-index:3;margin-top:60px;display:grid;grid-template-columns:minmax(300px,.9fr) minmax(0,1fr);border:1px solid #ffffff;background:#fff;box-shadow:18px 18px 0 rgba(255,31,168,.25);}
.shop-feature-art{min-height:430px;background:linear-gradient(135deg,#000000,#000000);display:grid;place-items:center;align-content:center;gap:24px;overflow:hidden;position:relative;}
.shop-feature-art::after{content:"";position:absolute;width:70%;aspect-ratio:1;border-radius:50%;background:conic-gradient(var(--lf-yellow),var(--lf-orange),var(--lf-fuchsia),var(--lf-imola-cyan),var(--lf-yellow));filter:blur(45px);opacity:.14;}
.shop-feature-art img{position:relative;z-index:1;width:34%;filter:invert(1) brightness(2);opacity:.45;}
.shop-feature-art span{position:relative;z-index:1;text-align:center;font-size:9px;font-weight:900;letter-spacing:.18em;color:#ffffff;line-height:1.7;}
.shop-feature-copy{padding:clamp(34px,5vw,72px);align-self:center;}
.shop-feature-copy h3{font-size:clamp(62px,7vw,100px);line-height:.72;}
.shop-feature-copy p{max-width:560px;margin:24px 0;font-size:15px;line-height:1.7;color:#000000;}

.shop-how{position:relative;padding:clamp(92px,10vw,150px) clamp(20px,6vw,96px);background:#000000;color:#fff;overflow:hidden;isolation:isolate;}
.shop-paint-how{width:56vw;left:-25vw;bottom:-22vw;opacity:.14;transform:rotate(-18deg);}
.shop-steps{position:relative;z-index:3;margin-top:60px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;}
.shop-step{display:grid;grid-template-columns:80px 1fr;gap:22px;padding:28px;border:1px solid rgba(255,255,255,.13);background:linear-gradient(120deg,#000000,#000000);}
.shop-step>span{font:400 46px/1 var(--display);color:var(--lf-violet);}
.shop-step strong{font:400 40px/.9 var(--display);font-weight:400;letter-spacing:.02em;color:#fff;}
.shop-step p{margin:10px 0 0;color:#ffffff;font-size:13px;line-height:1.6;}
.shop-preview-note{position:relative;z-index:3;margin-top:26px;display:grid;grid-template-columns:54px 1fr;gap:18px;align-items:start;padding:24px;border:1px solid rgba(20,207,255,.28);background:rgba(20,207,255,.055);box-shadow:10px 10px 0 rgba(20,207,255,.22);}
.shop-preview-note>span{font-size:28px;}
.shop-preview-note strong{display:block;font-size:12px;letter-spacing:.08em;color:var(--lf-imola-cyan);}
.shop-preview-note p{margin:8px 0 0;color:#ffffff;line-height:1.6;font-size:13px;}
.shop-page-footer{border-top-color:rgba(20,207,255,.18) !important;}

@media(max-width:1100px){
  .shop-hat-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .shop-hat-grid .shop-product-card:last-child{grid-column:1/-1;max-width:calc(50% - 12px);}
}

@media(max-width:900px){
  .mobile-menu .shop-menu-link{color:var(--lf-imola-cyan) !important;}
  .shop-hero{min-height:auto;padding:112px 18px 76px;grid-template-columns:1fr;gap:52px;}
  .shop-title{font-size:clamp(72px,22vw,108px);}
  .shop-title strong{text-shadow:6px 6px 0 rgba(20,207,255,.7);}
  .shop-hero-lead{font-size:15px;line-height:1.6;margin-top:22px;}
  .shop-hero-actions{align-items:stretch;gap:16px;}
  .shop-hero-actions .btn{width:100%;}
  .shop-status{text-align:center;line-height:1.5;}
  .shop-hero-mark{justify-self:center;width:min(78vw,320px);box-shadow:12px 12px 0 rgba(20,207,255,.24),-7px -7px 0 rgba(255,31,168,.12);}
  .shop-paint-a{width:100vw;left:-58vw;bottom:-8vw;}.shop-paint-b{width:90vw;right:-55vw;top:20vw;}
  .shop-category-nav{top:74px;grid-template-columns:repeat(3,1fr);}
  .shop-category-nav a{padding:13px 6px;font-size:8px;}
  .shop-category-nav a:last-child{display:none;}
  .shop-section,.shop-how{padding:82px 18px;}
  .shop-section-copy h2{font-size:clamp(58px,17vw,84px);line-height:.77;}
  .shop-section-copy>p:last-child{font-size:15px;line-height:1.65;margin-top:22px;}
  .shop-shirts-grid,.shop-hat-grid,.shop-steps{grid-template-columns:1fr;}
  .shop-hat-grid .shop-product-card:last-child{grid-column:auto;max-width:none;}
  .shop-product-grid{margin-top:42px;gap:18px;}
  .shop-product-duo{min-height:0;}
  .shop-placeholder{min-height:210px;}
  .shop-placeholder-neon{min-height:230px;}
  .shop-product-info{padding:22px 20px 24px;}
  .shop-product-info h3{font-size:46px;}
  .shop-product-info p{min-height:0;}
  .shop-product-meta{align-items:flex-start;flex-direction:column;}
  .shop-feature-product{grid-template-columns:1fr;margin-top:42px;box-shadow:10px 10px 0 rgba(255,31,168,.25);}
  .shop-feature-art{min-height:300px;}
  .shop-feature-copy{padding:30px 22px;}
  .shop-feature-copy h3{font-size:68px;}
  .shop-step{grid-template-columns:54px 1fr;padding:22px 18px;gap:12px;}
  .shop-step>span{font-size:38px;}.shop-step strong{font-size:36px;}
  .shop-preview-note{grid-template-columns:42px 1fr;padding:20px 16px;}
}

@media(max-width:430px){
  .shop-product-duo{grid-template-columns:1fr 1fr;}
  .shop-placeholder{min-height:180px;}
  .shop-placeholder span{font-size:7px;}
  .shop-placeholder img{width:48%;}
}

/* V148 — SHOP: carrello + pre-ordine operativo + procedura Latin Flow */
.shop-cart-toggle{
  height:46px;
  padding:0 14px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  border:1px solid rgba(255,255,255,.16);
  background:rgba(0,0,0,.72);
  color:#fff;
  cursor:pointer;
  font:800 9px/1 var(--sans);
  letter-spacing:.1em;
  text-transform:uppercase;
  transition:transform .2s ease,border-color .2s ease,background .2s ease;
}
.shop-cart-toggle:hover{transform:translateY(-1px);border-color:rgba(20,207,255,.55);background:#000000;}
.shop-cart-toggle svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
.shop-cart-toggle b{
  min-width:22px;height:22px;padding:0 6px;border-radius:999px;
  display:inline-flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,var(--lf-fuchsia),var(--lf-violet));
  color:#fff;font-size:10px;box-shadow:0 0 16px rgba(255,31,168,.28);
}

.shop-add-btn,.shop-how-cta{
  width:100%;
  min-height:50px;
  margin-top:22px;
  border:0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:0 18px;
  background:#000000;
  color:#fff;
  cursor:pointer;
  font:900 9px/1 var(--sans);
  letter-spacing:.13em;
  text-transform:uppercase;
  box-shadow:6px 6px 0 rgba(20,207,255,.22);
  transition:transform .18s ease,box-shadow .18s ease,background .18s ease;
}
.shop-dark-card .shop-add-btn{background:#fff;color:#000000;box-shadow:6px 6px 0 rgba(20,207,255,.2);}
.shop-add-btn b,.shop-how-cta b{font-size:18px;color:var(--lf-fuchsia);}
.shop-dark-card .shop-add-btn b{color:var(--lf-violet);}
.shop-add-btn:hover,.shop-how-cta:hover{transform:translate(-2px,-2px);box-shadow:9px 9px 0 rgba(20,207,255,.24);}
.shop-add-btn.is-added{background:linear-gradient(90deg,var(--lf-violet),var(--lf-fuchsia));color:#fff;}
.shop-add-btn.is-added b{color:#fff;}

.shop-how-copy{
  position:relative;z-index:3;
  max-width:980px;
  margin-top:46px;
  padding:clamp(28px,4vw,52px);
  border:1px solid rgba(255,255,255,.14);
  background:linear-gradient(135deg,rgba(255,255,255,.05),rgba(255,255,255,.015));
  box-shadow:14px 14px 0 rgba(20,207,255,.22);
}
.shop-how-copy p{margin:0 0 22px;color:#ffffff;font-size:clamp(15px,1.25vw,18px);line-height:1.75;}
.shop-how-copy p strong{color:#fff;}
.shop-how-intro{color:#fff !important;font-weight:800;}
.shop-how-list{list-style:none;margin:0 0 28px;padding:0;display:grid;gap:18px;}
.shop-how-list li{display:grid;grid-template-columns:46px 1fr;gap:14px;align-items:start;color:#ffffff;font-size:clamp(15px,1.22vw,18px);line-height:1.7;}
.shop-how-list li>strong{font:400 38px/.9 var(--display);color:var(--lf-imola-cyan);}
.shop-how-list li b{color:#fff;font-weight:800;}
.shop-how-cta{max-width:420px;margin-top:30px;background:linear-gradient(90deg,var(--lf-fuchsia),var(--lf-violet));box-shadow:8px 8px 0 rgba(20,207,255,.23);}
.shop-how-cta b{color:#fff;}

.shop-cart-backdrop{
  position:fixed;inset:0;z-index:1090;
  background:rgba(0,0,0,.66);
  backdrop-filter:blur(4px);
  -webkit-backdrop-filter:blur(4px);
  opacity:0;
  transition:opacity .26s ease;
}
.shop-cart-backdrop[hidden]{display:none;}
.shop-cart-backdrop.is-open{opacity:1;}
.shop-cart-drawer{
  position:fixed;top:0;right:0;bottom:0;z-index:1100;
  width:min(480px,100vw);
  display:flex;flex-direction:column;
  background:#000000;color:#fff;
  border-left:1px solid rgba(255,255,255,.14);
  box-shadow:-22px 0 60px rgba(0,0,0,.48);
  transform:translateX(104%);
  transition:transform .34s cubic-bezier(.22,.8,.22,1);
  visibility:hidden;
}
.shop-cart-drawer.is-open{transform:translateX(0);visibility:visible;}
body.shop-cart-open,body.shop-preorder-open{overflow:hidden;}
.shop-cart-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:32px 28px 22px;border-bottom:1px solid rgba(255,255,255,.12);}
.shop-cart-head small{display:block;color:var(--lf-imola-cyan);font-size:8px;font-weight:900;letter-spacing:.17em;margin-bottom:6px;}
.shop-cart-head h2{margin:0;font:400 62px/.72 var(--display);font-weight:400;text-transform:uppercase;}
.shop-cart-close,.shop-preorder-close{
  width:42px;height:42px;flex:0 0 42px;border:1px solid rgba(255,255,255,.15);background:#000000;color:#fff;cursor:pointer;font:300 28px/1 var(--sans);
}
.shop-cart-items{padding:12px 20px;overflow:auto;flex:1;}
.shop-cart-empty{padding:54px 28px;color:#ffffff;text-align:center;font-size:14px;line-height:1.7;}
.shop-cart-empty strong{color:#fff;font-family:var(--display);font-size:30px;font-weight:400;letter-spacing:.02em;}
.shop-cart-item{display:grid;grid-template-columns:1fr auto;gap:16px;padding:18px 4px;border-bottom:1px solid rgba(255,255,255,.1);}
.shop-cart-item small{display:block;color:#ffffff;font-size:7px;font-weight:900;letter-spacing:.14em;margin-bottom:5px;}
.shop-cart-item strong{display:block;color:#fff;font-size:13px;line-height:1.35;}
.shop-cart-item-actions{display:flex;align-items:center;gap:8px;margin-top:13px;}
.shop-cart-item-actions button{width:28px;height:28px;border:1px solid rgba(255,255,255,.15);background:#000000;color:#fff;cursor:pointer;}
.shop-cart-item-actions span{min-width:22px;text-align:center;font-size:11px;font-weight:900;}
.shop-cart-remove{align-self:start;border:0 !important;background:none !important;color:#ffffff !important;width:auto !important;height:auto !important;font-size:9px !important;text-decoration:underline;text-underline-offset:3px;}
.shop-cart-foot{padding:20px 24px calc(24px + env(safe-area-inset-bottom));border-top:1px solid rgba(255,255,255,.12);background:#000000;}
.shop-cart-summary{display:flex;justify-content:space-between;gap:20px;margin:0 0 10px;font-size:9px;font-weight:900;letter-spacing:.11em;}
.shop-cart-summary span{color:#ffffff;}.shop-cart-summary strong{color:#fff;}
.shop-cart-summary [data-cart-total]{color:var(--lf-imola-cyan);}
.shop-cart-checkout{
  width:100%;min-height:54px;margin-top:12px;padding:0 18px;border:0;background:linear-gradient(90deg,var(--lf-fuchsia),var(--lf-violet));color:#fff;display:flex;justify-content:space-between;align-items:center;cursor:pointer;font-size:9px;font-weight:900;letter-spacing:.12em;box-shadow:7px 7px 0 rgba(20,207,255,.18);
}
.shop-cart-checkout:disabled{opacity:.34;cursor:not-allowed;box-shadow:none;}
.shop-cart-checkout b{font-size:18px;}
.shop-cart-foot>small{display:block;margin-top:15px;color:#ffffff;font-size:8px;line-height:1.5;}

.shop-preorder-modal{
  position:fixed;inset:0;z-index:1200;
  display:grid;place-items:center;
  padding:24px;
  background:rgba(0,0,0,.78);
  backdrop-filter:blur(7px);
  -webkit-backdrop-filter:blur(7px);
  overflow:auto;
}
.shop-preorder-modal[hidden]{display:none;}
.shop-preorder-panel{
  position:relative;
  width:min(820px,100%);
  max-height:calc(100svh - 48px);
  overflow:auto;
  padding:clamp(28px,5vw,58px);
  background:#ffffff;color:#000000;
  border:1px solid #ffffff;
  box-shadow:18px 18px 0 var(--lf-violet),-8px -8px 0 rgba(20,207,255,.55);
}
.shop-preorder-close{position:absolute;top:18px;right:18px;background:#000000;color:#fff;border:0;}
.shop-preorder-panel>.kicker{color:#ffffff;margin-bottom:12px;}
.shop-preorder-panel h2{margin:0;max-width:690px;font:400 clamp(64px,8vw,104px)/.73 var(--display);font-weight:400;text-transform:uppercase;}
.shop-preorder-panel h2 strong{font-weight:400;color:var(--lf-fuchsia);}
.shop-preorder-lead{max-width:720px;margin:24px 0 30px;color:#000000;font-size:14px;line-height:1.65;}
.shop-preorder-form{display:grid;gap:18px;}
.shop-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.shop-preorder-form label{display:grid;gap:7px;}
.shop-preorder-form label>span:first-child{font-size:8px;font-weight:900;letter-spacing:.11em;color:#000000;}
.shop-preorder-form input:not([type="checkbox"]),.shop-preorder-form textarea{
  width:100%;border:1px solid #ffffff;border-radius:0;background:#fff;color:#000000;padding:14px 13px;font:500 14px/1.3 var(--sans);outline:none;
}
.shop-preorder-form input:focus,.shop-preorder-form textarea:focus{border-color:var(--lf-violet);box-shadow:0 0 0 2px rgba(20,207,255,.1);}
.shop-preorder-form textarea{resize:vertical;min-height:105px;}
.shop-form-consent{display:flex !important;grid-template-columns:none !important;flex-direction:row;align-items:flex-start;gap:12px !important;padding:14px;border:1px solid #ffffff;background:#ffffff;}
.shop-form-consent input{margin:3px 0 0;accent-color:var(--lf-violet);}
.shop-form-consent span{font-size:11px !important;line-height:1.55 !important;color:#000000 !important;font-weight:600 !important;letter-spacing:0 !important;}
.shop-preorder-submit{
  min-height:58px;border:0;padding:0 20px;display:flex;align-items:center;justify-content:space-between;background:#000000;color:#fff;cursor:pointer;font-size:10px;font-weight:900;letter-spacing:.13em;box-shadow:8px 8px 0 var(--lf-fuchsia);
}
.shop-preorder-submit b{font-size:20px;color:var(--lf-imola-cyan);}
.shop-preorder-help{color:#ffffff;font-size:9px;line-height:1.5;}

@media(max-width:1100px){
  .shop-cart-label{display:none;}
  .shop-cart-toggle{padding:0 10px;}
}

@media(max-width:900px){
  .shop-cart-toggle{height:44px;min-width:52px;padding:0 8px;gap:5px;margin-left:auto;}
  .shop-cart-toggle svg{width:18px;height:18px;}
  .shop-cart-toggle b{min-width:20px;height:20px;font-size:9px;padding:0 5px;}
  .shop-how-copy{margin-top:32px;padding:24px 18px;box-shadow:9px 9px 0 rgba(20,207,255,.22);}
  .shop-how-list li{grid-template-columns:38px 1fr;gap:8px;font-size:15px;}
  .shop-how-list li>strong{font-size:33px;}
  .shop-how-copy p{font-size:15px;line-height:1.7;}
  .shop-how-cta{max-width:none;}
  .shop-cart-drawer{width:100vw;}
  .shop-cart-head{padding:26px 20px 18px;}
  .shop-cart-head h2{font-size:54px;}
  .shop-cart-items{padding:10px 16px;}
  .shop-cart-foot{padding-left:18px;padding-right:18px;}
  .shop-preorder-modal{padding:12px;align-items:start;}
  .shop-preorder-panel{max-height:none;margin:12px 0;padding:72px 18px 28px;box-shadow:8px 8px 0 var(--lf-violet),-4px -4px 0 rgba(20,207,255,.5);}
  .shop-preorder-close{top:14px;right:14px;}
  .shop-preorder-panel h2{font-size:clamp(58px,17vw,78px);}
  .shop-form-grid{grid-template-columns:1fr;gap:14px;}
  .shop-preorder-lead{font-size:13px;margin:20px 0 24px;}
}

@media(max-width:430px){
  .shop-cart-toggle{min-width:48px;}
  .shop-how-copy{padding:21px 15px;}
  .shop-how-list li{grid-template-columns:32px 1fr;}
  .shop-how-list li>strong{font-size:29px;}
}

/* V149 — SHOP: sfondi Latin Flow a schizzi, titoli compatti, categorie magliette e carrello migliorato */
.shop-page{background:#000000;}
.shop-page .shop-paint{display:none !important;}

.shop-hero,
.shop-section-dark,
.shop-how{
  background-color:#000000 !important;
  background-image:var(--lf-bg-black-splash) !important;
  background-repeat:no-repeat !important;
  background-size:cover !important;
  background-position:center !important;
}
.shop-section-light,
.shop-bag-section{
  background-color:#fff !important;
  background-image:var(--lf-bg-white-splash) !important;
  background-repeat:no-repeat !important;
  background-size:cover !important;
  background-position:center !important;
}

/* Hero: stessa identità del sito, senza vecchio fondo radiale */
.shop-hero{
  min-height:82svh;
  padding-top:132px;
}
.shop-title{
  max-width:760px;
  font-size:clamp(64px,7.2vw,116px) !important;
  line-height:.79 !important;
  overflow-wrap:anywhere;
}
.shop-title strong{ text-shadow:7px 7px 0 rgba(20,207,255,.62) !important; }

/* Titoli più piccoli e sempre contenuti nei riquadri/schermo */
.shop-section-copy{max-width:920px;min-width:0;}
.shop-section-copy h2{
  max-width:100%;
  font-size:clamp(50px,5.9vw,90px) !important;
  line-height:.82 !important;
  overflow-wrap:anywhere;
  word-break:normal;
}
.shop-product-info,.shop-feature-copy{min-width:0;}
.shop-product-info h3{
  max-width:100%;
  font-size:clamp(32px,3.1vw,46px) !important;
  line-height:.88 !important;
  overflow-wrap:anywhere;
}
.shop-feature-copy h3{
  max-width:100%;
  font-size:clamp(48px,5.5vw,76px) !important;
  line-height:.80 !important;
  overflow-wrap:anywhere;
}
.shop-preorder-panel h2{
  max-width:100%;
  font-size:clamp(52px,6.6vw,84px) !important;
  line-height:.79 !important;
  overflow-wrap:anywhere;
}

/* Una scheda dedicata per ciascun tipo di maglietta */
.shop-shirt-type{scroll-margin-top:145px;}
.shop-shirt-single-grid{
  grid-template-columns:minmax(0,820px) !important;
  max-width:820px;
}
.shop-shirt-type.shop-section-dark .shop-product-card{
  border-color:rgba(255,255,255,.16);
}

/* Nuova icona carrello: più articolata e con i colori Latin Flow */
.shop-cart-toggle{
  min-width:128px;
  border-color:rgba(20,207,255,.28);
  background:linear-gradient(135deg,rgba(0,0,0,.92),rgba(0,0,0,.86));
  box-shadow:5px 5px 0 rgba(20,207,255,.18);
}
.shop-cart-toggle:hover{box-shadow:7px 7px 0 rgba(255,31,168,.18);}
.shop-cart-icon{width:27px !important;height:27px !important;overflow:visible;}
.shop-cart-icon *{fill:none;stroke-linecap:round;stroke-linejoin:round;}
.shop-cart-icon-frame{stroke:#fff;stroke-width:1.7;}
.shop-cart-icon-detail{stroke:var(--lf-imola-cyan);stroke-width:1.5;opacity:.95;}
.shop-cart-icon-wheel{stroke:var(--lf-yellow);stroke-width:1.7;}
.shop-cart-icon-spark{stroke:var(--lf-fuchsia);stroke-width:1.8;}

/* Nel carrello il nome prodotto è cliccabile e riporta alla sua scheda */
.shop-cart-product-jump{
  width:100%;
  padding:0;
  border:0;
  background:none;
  color:inherit;
  text-align:left;
  cursor:pointer;
}
.shop-cart-product-jump small{pointer-events:none;}
.shop-cart-product-jump strong{
  pointer-events:none;
  transition:color .18s ease;
  overflow-wrap:anywhere;
}
.shop-cart-product-jump span{
  display:inline-flex;
  gap:6px;
  align-items:center;
  margin-top:7px;
  color:var(--lf-imola-cyan);
  font-size:7px;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
  pointer-events:none;
}
.shop-cart-product-jump:hover strong{color:var(--lf-fuchsia);}
.shop-product-focus{
  animation:shopProductFocus 1.15s ease;
}
@keyframes shopProductFocus{
  0%,100%{transform:translate(0,0);filter:none;}
  28%{transform:translate(-3px,-3px);filter:drop-shadow(10px 10px 0 rgba(20,207,255,.28));}
  58%{transform:translate(0,0);filter:drop-shadow(7px 7px 0 rgba(255,31,168,.22));}
}

@media(max-width:900px){
  .shop-hero{padding:108px 18px 68px;}
  .shop-title{
    font-size:clamp(54px,15vw,76px) !important;
    line-height:.82 !important;
  }
  .shop-section,.shop-how{padding:74px 18px !important;}
  .shop-section-copy h2{
    font-size:clamp(40px,11.7vw,58px) !important;
    line-height:.84 !important;
  }
  .shop-product-info h3{font-size:clamp(31px,9.8vw,40px) !important;}
  .shop-feature-copy h3{font-size:clamp(42px,12vw,56px) !important;}
  .shop-preorder-panel h2{font-size:clamp(44px,13vw,62px) !important;line-height:.82 !important;}
  .shop-shirt-single-grid{max-width:none;}
  .shop-shirt-type{scroll-margin-top:122px;}
  .shop-cart-toggle{min-width:54px;box-shadow:4px 4px 0 rgba(20,207,255,.18);}
  .shop-cart-icon{width:25px !important;height:25px !important;}
}

@media(max-width:430px){
  .shop-title{font-size:clamp(50px,14.2vw,64px) !important;}
  .shop-section-copy h2{font-size:clamp(38px,10.8vw,50px) !important;}
  .shop-product-info h3{font-size:32px !important;}
}

/* V150 — SHOP: mobile fit, taglie e CTA pre-ordine minimal */
.shop-size-picker{margin-top:18px;display:flex;align-items:center;justify-content:space-between;gap:14px;min-width:0}
.shop-size-picker>span{font:900 8px/1 var(--sans);letter-spacing:.11em;color:#ffffff;white-space:nowrap}
.shop-size-options{display:flex;flex-wrap:wrap;gap:7px;justify-content:flex-end}
.shop-size-options button{width:38px;height:34px;border:1px solid rgba(0,0,0,.2);background:transparent;color:#000000;font:900 10px/1 var(--sans);letter-spacing:.04em;cursor:pointer;transition:.18s ease}
.shop-dark-card .shop-size-picker>span{color:#ffffff}
.shop-dark-card .shop-size-options button{border-color:rgba(255,255,255,.25);color:#fff}
.shop-size-options button:hover,.shop-size-options button[aria-pressed="true"]{background:#000000;color:#fff;border-color:#000000}
.shop-dark-card .shop-size-options button:hover,.shop-dark-card .shop-size-options button[aria-pressed="true"]{background:#fff;color:#000000;border-color:#fff}
.shop-add-btn:disabled{opacity:.38;cursor:not-allowed;transform:none!important;box-shadow:none!important}

/* I CTA di pre-ordine seguono i tasti standard del sito: bianchi, minimali, font Inter */
.shop-how-cta,.shop-cart-checkout,.shop-preorder-submit{
  background:#fff!important;color:#000000!important;border:0!important;box-shadow:none!important;
  font-family:var(--sans)!important;font-size:11px!important;font-weight:900!important;letter-spacing:.07em!important;
  text-transform:uppercase;
}
.shop-how-cta b,.shop-cart-checkout b,.shop-preorder-submit b{color:#000000!important}
.shop-how-cta:hover,.shop-cart-checkout:not(:disabled):hover,.shop-preorder-submit:hover{background:#ffffff!important;color:#000000!important;transform:translateY(-2px)!important;box-shadow:none!important}
.shop-cart-checkout:disabled{opacity:.32!important;background:#fff!important;color:#000000!important}

/* Carrello: niente overflow, testi più compatti e leggibili */
.shop-cart-drawer{max-width:100%;overflow:hidden}
.shop-cart-head{min-width:0}
.shop-cart-head>div{min-width:0;max-width:calc(100% - 54px)}
.shop-cart-head h2{max-width:100%;font-size:clamp(42px,11vw,56px)!important;line-height:.78!important;overflow-wrap:normal;word-break:normal}
.shop-cart-items{min-width:0;overflow-x:hidden}
.shop-cart-item{min-width:0;grid-template-columns:minmax(0,1fr) auto;gap:10px}
.shop-cart-item>div{min-width:0}
.shop-cart-product-jump{min-width:0;max-width:100%;overflow:hidden}
.shop-cart-product-jump strong{max-width:100%;font-size:12px!important;line-height:1.3!important;overflow-wrap:anywhere}
.shop-cart-product-jump small{max-width:100%;overflow-wrap:anywhere}
.shop-cart-product-jump .shop-cart-size{display:block;margin-top:5px;color:#fff;font:900 8px/1.2 var(--sans);letter-spacing:.08em}
.shop-cart-product-jump span{font-size:6.5px!important;letter-spacing:.09em!important}
.shop-cart-remove{max-width:62px;white-space:normal;line-height:1.2!important;text-align:right}
.shop-cart-foot{min-width:0}
.shop-cart-summary{min-width:0}
.shop-cart-summary strong{max-width:55%;text-align:right;overflow-wrap:anywhere}
.shop-cart-checkout{min-width:0;padding:0 14px!important;gap:8px;white-space:normal;text-align:left;line-height:1.25!important}

/* Ridimensionamento generale titoli/card: margine di sicurezza su smartphone stretti */
.shop-section-copy h2,.shop-product-info h3,.shop-feature-copy h3,.shop-preorder-panel h2{word-break:normal!important;overflow-wrap:normal!important}
.shop-product-info{overflow:hidden}

@media(max-width:600px){
  .shop-title{font-size:clamp(46px,12.8vw,58px)!important;line-height:.85!important}
  .shop-section,.shop-how{padding-left:16px!important;padding-right:16px!important}
  .shop-section-copy h2{font-size:clamp(34px,9.6vw,43px)!important;line-height:.88!important}
  .shop-product-info{padding:19px 16px 21px!important}
  .shop-product-info h3{font-size:clamp(26px,7.5vw,32px)!important;line-height:.94!important}
  .shop-feature-copy{padding:28px 18px!important}
  .shop-feature-copy h3{font-size:clamp(34px,9.8vw,42px)!important;line-height:.88!important}
  .shop-preorder-panel h2{font-size:clamp(36px,10vw,46px)!important;line-height:.88!important;padding-right:34px}
  .shop-cart-head{padding:22px 16px 16px!important;gap:10px!important}
  .shop-cart-head h2{font-size:clamp(38px,10.5vw,46px)!important}
  .shop-cart-close{width:38px;height:38px;flex-basis:38px}
  .shop-cart-items{padding:8px 12px!important}
  .shop-cart-item{padding:15px 2px}
  .shop-cart-foot{padding:16px 14px calc(18px + env(safe-area-inset-bottom))!important}
  .shop-size-picker{align-items:flex-start;flex-direction:column;gap:10px}
  .shop-size-options{justify-content:flex-start;width:100%}
  .shop-size-options button{flex:1;min-width:44px;max-width:64px}
  .shop-how-cta,.shop-cart-checkout,.shop-preorder-submit{font-size:10px!important;letter-spacing:.06em!important}
}
@media(max-width:360px){
  .shop-title{font-size:44px!important}
  .shop-section-copy h2{font-size:32px!important}
  .shop-product-info h3{font-size:25px!important}
  .shop-cart-head h2{font-size:36px!important}
  .shop-cart-item{grid-template-columns:minmax(0,1fr) 52px}
  .shop-cart-remove{font-size:8px!important;max-width:52px}
  .shop-cart-checkout{font-size:9px!important;padding:0 12px!important}
}

.shop-cart-product-jump .shop-cart-size{font-style:normal!important}

/* V151 — SHOP: titoli uniformi, prezzi, box pre-ordine pieno, sticky nav flush e caroselli grafiche */
.shop-category-nav{
  top:83px !important;
  margin-top:0 !important;
  border-top:0 !important;
  background:#000000 !important;
  transform:translateY(-1px);
}

/* Tutti i titoli di ingresso delle sezioni hanno la stessa scala */
.shop-section-copy h2{
  font-size:clamp(72px,7.6vw,118px) !important;
  line-height:.80 !important;
  max-width:980px !important;
  overflow-wrap:normal !important;
  word-break:normal !important;
}

/* Nome sacca coerente con gli altri nomi prodotto */
.shop-feature-copy h3{
  font-size:clamp(32px,3.1vw,46px) !important;
  line-height:.88 !important;
}

/* Box istruzioni: bianco pieno per massima leggibilità */
.shop-how-copy{
  background:#fff !important;
  color:#000000 !important;
  border:1px solid #ffffff !important;
  box-shadow:14px 14px 0 rgba(20,207,255,.28) !important;
}
.shop-how-copy p,
.shop-how-copy .shop-how-intro,
.shop-how-list li{color:#000000 !important;}
.shop-how-copy p strong,
.shop-how-list li b{color:#000000 !important;}
.shop-how-list li>strong{color:var(--lf-fuchsia) !important;}
.shop-how-copy .shop-how-cta{
  background:#000000 !important;
  color:#fff !important;
}
.shop-how-copy .shop-how-cta b{color:#fff !important;}
.shop-how-copy .shop-how-cta:hover{background:#000000 !important;color:#fff !important;}

/* Browser grafiche magliette: pronto per 5–6 varianti senza allungare la pagina */
.shop-design-browser{
  position:relative;
  z-index:3;
  margin-top:54px;
  max-width:100%;
}
.shop-design-browser-head{
  display:flex;
  align-items:center;
  gap:14px;
  margin:0 0 14px;
  padding:0 2px;
}
.shop-design-browser-head>span{
  font:900 9px/1 var(--sans);
  letter-spacing:.14em;
}
.shop-design-browser-head>small{
  margin-right:auto;
  color:#ffffff;
  font:800 8px/1 var(--sans);
  letter-spacing:.10em;
}
.shop-section-dark .shop-design-browser-head>small{color:#ffffff;}
.shop-design-arrows{display:flex;gap:7px;}
.shop-design-arrows button{
  width:38px;
  height:34px;
  border:1px solid rgba(0,0,0,.18);
  background:#fff;
  color:#000000;
  cursor:pointer;
  font:900 15px/1 var(--sans);
}
.shop-section-dark .shop-design-arrows button{
  border-color:rgba(255,255,255,.22);
  background:#000000;
  color:#fff;
}
.shop-design-arrows button:disabled{opacity:.28;cursor:default;}
.shop-shirt-carousel{
  display:flex !important;
  grid-template-columns:none !important;
  gap:18px !important;
  margin-top:0 !important;
  max-width:none !important;
  overflow-x:auto;
  overflow-y:hidden;
  scroll-snap-type:x mandatory;
  scroll-behavior:smooth;
  overscroll-behavior-x:contain;
  scrollbar-width:none;
  padding:0 12px 16px 0;
}
.shop-shirt-carousel::-webkit-scrollbar{display:none;}
.shop-shirt-carousel>.shop-product-card{
  flex:0 0 min(820px,calc(100vw - 12vw));
  scroll-snap-align:start;
}

/* Prezzi più leggibili senza rubare spazio */
.shop-product-meta strong{white-space:nowrap;}
.shop-cart-line-price{
  display:block;
  margin-top:5px;
  color:var(--lf-fuchsia);
  font:900 8px/1.2 var(--sans);
  letter-spacing:.08em;
}

@media(max-width:900px){
  .shop-category-nav{top:73px !important;}
  .shop-section-copy h2{
    font-size:clamp(48px,13vw,64px) !important;
    line-height:.82 !important;
  }
  .shop-feature-copy h3{
    font-size:clamp(28px,8vw,34px) !important;
    line-height:.92 !important;
  }
  .shop-design-browser{margin-top:38px;}
  .shop-design-browser-head>small{display:none;}
  .shop-shirt-carousel{padding-right:18px;}
  .shop-shirt-carousel>.shop-product-card{flex-basis:calc(100vw - 48px);}
}

@media(max-width:600px){
  .shop-section-copy h2{
    font-size:clamp(44px,12vw,56px) !important;
    line-height:.84 !important;
  }
  .shop-feature-copy h3{font-size:clamp(27px,7.5vw,32px) !important;}
  .shop-design-browser-head{gap:8px;}
  .shop-design-browser-head>span{font-size:8px;letter-spacing:.11em;}
  .shop-design-arrows button{width:34px;height:32px;}
  .shop-how-copy{padding:24px 18px !important;}
}

@media(max-width:360px){
  .shop-section-copy h2{font-size:42px !important;}
  .shop-feature-copy h3{font-size:26px !important;}
}
/* V151 correzione: anche nel box bianco il CTA resta bianco/minimal come richiesto */
.shop-how-copy .shop-how-cta{
  background:#fff !important;
  color:#000000 !important;
  border:1px solid #000000 !important;
  box-shadow:none !important;
}
.shop-how-copy .shop-how-cta b{color:#000000 !important;}
.shop-how-copy .shop-how-cta:hover{background:#ffffff !important;color:#000000 !important;}

/* V152 — SHOP: configuratore magliette + catalogo reale */
.shop-shirts-config{scroll-margin-top:145px;}
.shop-shirt-configurator{
  position:relative;z-index:3;
  margin-top:54px;
  display:grid;
  grid-template-columns:minmax(340px,.9fr) minmax(0,1.1fr);
  background:#fff;
  border:1px solid #ffffff;
  box-shadow:18px 18px 0 rgba(20,207,255,.18);
  overflow:hidden;
}
.shop-config-preview{
  position:sticky;top:132px;
  align-self:start;
  min-width:0;
  background:#ffffff;
  overflow:hidden;
  display:grid;
  place-items:center;
}
.shop-config-preview[data-model="oversize"],
.shop-config-preview[data-model="cropped"]{aspect-ratio:4/5;}
.shop-config-preview[data-model="fitted"]{aspect-ratio:3/4;}
.shop-config-preview::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(135deg,rgba(20,207,255,.04),transparent 40%,rgba(255,31,168,.05));
}
.shop-shirt-base{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;display:block;}
.shop-shirt-print{
  position:absolute;z-index:2;pointer-events:none;
  height:auto;transform:none;
  object-fit:contain;
  transition:opacity .2s ease,transform .28s ease;
}
/* V153 — stampa calibrata sui mockup fronte/retro originali */
.shop-config-preview[data-model="oversize"] .shop-shirt-print{width:39.6%;left:52.1%;top:31.0%;}
.shop-config-preview[data-model="cropped"] .shop-shirt-print{width:36.5%;left:54.8%;top:34.9%;}
.shop-config-preview[data-model="fitted"] .shop-shirt-print{width:29.8%;left:58.6%;top:36.9%;}
.shop-config-preview[data-color="black"] .shop-shirt-print{mix-blend-mode:screen;}
.shop-config-preview[data-color="white"] .shop-shirt-print{mix-blend-mode:multiply;}
.shop-config-preview-badge{
  position:absolute;z-index:4;left:16px;bottom:16px;
  padding:9px 11px;background:#000000;color:#fff;
  font:900 7px/1 var(--sans);letter-spacing:.13em;
}
.shop-config-panel{padding:clamp(28px,4vw,54px);min-width:0;}
.shop-config-step{padding:0 0 28px;margin:0 0 28px;border-bottom:1px solid #ffffff;min-width:0;}
.shop-config-step-head{display:flex;align-items:center;gap:13px;margin-bottom:15px;min-width:0;}
.shop-config-step-head>span{flex:0 0 auto;font:400 35px/.8 var(--display);color:var(--lf-fuchsia);}
.shop-config-step-head>div{min-width:0;}
.shop-config-step-head small{display:block;color:#ffffff;font:900 7px/1 var(--sans);letter-spacing:.14em;margin-bottom:5px;}
.shop-config-step-head strong{display:block;color:#000000;font:900 10px/1.2 var(--sans);letter-spacing:.09em;overflow-wrap:anywhere;}
.shop-design-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
.shop-design-choice{
  min-width:0;border:1px solid #ffffff;background:#ffffff;color:#000000;
  padding:8px;display:grid;grid-template-columns:76px minmax(0,1fr);gap:10px;align-items:center;
  text-align:left;cursor:pointer;transition:.18s ease;
}
.shop-design-choice:hover{border-color:#ffffff;transform:translateY(-1px);}
.shop-design-choice.is-selected{border-color:#000000;background:#fff;box-shadow:5px 5px 0 rgba(20,207,255,.18);}
.shop-design-choice img{width:76px;aspect-ratio:1;object-fit:cover;display:block;background:#fff;}
.shop-design-choice span{min-width:0;}
.shop-design-choice b{display:block;font:400 27px/.86 var(--display);font-weight:400;letter-spacing:.01em;}
.shop-design-choice small{display:block;margin-top:5px;color:#ffffff;font:800 6.5px/1.35 var(--sans);letter-spacing:.07em;}
.shop-config-current{margin:-4px 0 30px;padding:22px 24px;background:#000000;color:#fff;box-shadow:8px 8px 0 rgba(255,31,168,.17);}
.shop-config-current>small{display:block;color:var(--lf-imola-cyan);font:900 7px/1 var(--sans);letter-spacing:.14em;margin-bottom:8px;}
.shop-config-current h3{margin:0;font:400 clamp(42px,4.4vw,64px)/.78 var(--display);font-weight:400;text-transform:uppercase;overflow-wrap:normal;}
.shop-config-current p{margin:14px 0 0;color:#ffffff;font-size:13px;line-height:1.6;max-width:580px;}
.shop-option-grid{display:grid;gap:8px;}
.shop-model-options{grid-template-columns:repeat(3,minmax(0,1fr));}
.shop-color-options{grid-template-columns:repeat(2,minmax(0,1fr));}
.shop-option-grid button{
  min-width:0;min-height:64px;border:1px solid #ffffff;background:#fff;color:#000000;
  padding:11px 12px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:5px;
  cursor:pointer;text-align:left;transition:.18s ease;
}
.shop-option-grid button:hover{border-color:#ffffff;}
.shop-option-grid button.is-selected{border-color:#000000;background:#000000;color:#fff;box-shadow:5px 5px 0 rgba(20,207,255,.16);}
.shop-option-grid button b{font:900 9px/1.2 var(--sans);letter-spacing:.07em;}
.shop-option-grid button small{font:900 8px/1 var(--sans);color:var(--lf-fuchsia);letter-spacing:.05em;}
.shop-option-grid button.is-selected small{color:var(--lf-imola-cyan);}
.shop-color-options button{flex-direction:row;align-items:center;justify-content:flex-start;gap:9px;min-height:50px;}
.shop-color-dot{width:16px;height:16px;border-radius:50%;border:1px solid #ffffff;display:block;flex:0 0 16px;}
.shop-color-black{background:#000000;}.shop-color-white{background:#fff;}
.shop-option-grid button.is-selected .shop-color-white{border-color:#fff;}
.shop-config-row{display:grid;grid-template-columns:1fr 1fr;gap:24px;}
.shop-config-row .shop-config-step{margin-bottom:18px;}
.shop-config-sizes{justify-content:flex-start;}
.shop-config-sizes button{background:#fff;color:#000000;border-color:#ffffff;}
.shop-config-sizes button[aria-pressed="true"]{background:#000000;color:#fff;border-color:#000000;}
.shop-config-buy{display:grid;grid-template-columns:minmax(0,.8fr) minmax(220px,1.2fr);gap:18px;align-items:end;padding-top:4px;}
.shop-config-buy>div small{display:block;color:#ffffff;font:900 7px/1 var(--sans);letter-spacing:.13em;}
.shop-config-buy>div strong{display:block;margin-top:4px;font:400 54px/.8 var(--display);font-weight:400;color:var(--lf-fuchsia);}
.shop-config-buy>div span{display:block;margin-top:9px;color:#000000;font:900 7px/1.45 var(--sans);letter-spacing:.08em;}
.shop-config-add{margin:0!important;min-height:56px;}
.shop-more-designs{margin:22px 0 0!important;min-height:0!important;color:#ffffff!important;font-size:10px!important;line-height:1.5!important;}
.shop-real-product-image{height:310px;background:#ffffff;overflow:hidden;border-bottom:1px solid rgba(255,255,255,.1);}
.shop-real-product-image img{width:100%;height:100%;object-fit:cover;display:block;}
.shop-dark-card .shop-real-product-image{background:#000000;}
.shop-bag-art{min-height:430px!important;background:#000000!important;display:block!important;}
.shop-bag-art::after{display:none!important;}
.shop-bag-art img{width:100%!important;height:100%!important;object-fit:contain!important;object-position:center!important;filter:none!important;opacity:1!important;display:block;}
.shop-annual-gift{
  display:flex;align-items:center;gap:13px;margin:0 0 28px;padding:16px 17px;
  background:#000000;color:#fff;box-shadow:7px 7px 0 var(--lf-fuchsia);
}
.shop-annual-gift>span{font-size:27px;flex:0 0 auto;}
.shop-annual-gift small{color:var(--lf-imola-cyan)!important;margin:0 0 5px!important;font-size:7px!important;}
.shop-annual-gift strong{display:block;font:400 clamp(31px,3.7vw,48px)/.82 var(--display);font-weight:400;text-transform:uppercase;}
.shop-cart-variant{display:block;margin-top:5px;color:#ffffff;font:900 7px/1.35 var(--sans);letter-spacing:.06em;font-style:normal;}

/* sticky categorie davvero a contatto con la barra principale */
.shop-category-nav{top:84px!important;transform:translateY(-1px)!important;margin:0!important;}

@media(max-width:900px){
  .shop-category-nav{top:74px!important;}
  .shop-shirts-config{scroll-margin-top:118px;}
  .shop-shirt-configurator{grid-template-columns:1fr;margin-top:38px;box-shadow:10px 10px 0 rgba(20,207,255,.18);}
  .shop-config-preview{position:relative;top:auto;}
  /* Le stesse coordinate calibrate vengono mantenute anche su mobile:
     cambia solo la scala del contenitore, non la geometria del mockup. */
  .shop-config-panel{padding:26px 18px 30px;}
  .shop-design-choice-grid{grid-template-columns:1fr 1fr;}
  .shop-design-choice{grid-template-columns:62px minmax(0,1fr);padding:7px;}
  .shop-design-choice img{width:62px;}
  .shop-design-choice b{font-size:23px;}
  .shop-model-options{grid-template-columns:1fr;}
  .shop-option-grid button{min-height:52px;}
  .shop-config-row{grid-template-columns:1fr;gap:0;}
  .shop-config-buy{grid-template-columns:1fr;align-items:stretch;}
  .shop-config-add{width:100%;}
  .shop-real-product-image{height:auto;aspect-ratio:1/1;}
  .shop-feature-product.shop-bag-product{grid-template-columns:1fr;}
  .shop-bag-art{min-height:0!important;aspect-ratio:1/1;}
}

@media(max-width:600px){
  .shop-design-choice-grid{grid-template-columns:1fr;}
  .shop-design-choice{grid-template-columns:72px minmax(0,1fr);}
  .shop-design-choice img{width:72px;}
  .shop-config-current{padding:18px 16px;box-shadow:6px 6px 0 rgba(255,31,168,.17);}
  .shop-config-current h3{font-size:clamp(34px,10.5vw,43px);line-height:.82;}
  .shop-config-current p{font-size:12px;}
  .shop-config-step{padding-bottom:22px;margin-bottom:22px;}
  .shop-config-step-head>span{font-size:30px;}
  .shop-option-grid button b{font-size:8px;}
  .shop-config-buy>div strong{font-size:48px;}
  .shop-config-preview-badge{left:10px;bottom:10px;font-size:6px;padding:7px 8px;}
  .shop-annual-gift{padding:14px 13px;align-items:flex-start;}
  .shop-annual-gift strong{font-size:34px;}
  .shop-hat-grid{gap:16px;}
}
.shop-bag-gift-note{display:block!important;margin:12px 0 0!important;color:#ffffff!important;font:800 8px/1.5 var(--sans)!important;letter-spacing:.04em!important;}


/* V154 TEST — Reel Instagram mascherati: mostra solo la zona video 9:16.
   L'embed ufficiale resta intatto dietro la maschera; nessuna modifica al contenuto Instagram. */
.reel-card-masked{
  position:relative;
  padding:10px;
  background:#000000;
}
.reel-video-mask{
  --reel-instagram-crop-top:clamp(50px,4.25vw,62px);
  position:relative;
  width:100%;
  aspect-ratio:9/16;
  overflow:hidden;
  background:#000;
  isolation:isolate;
  border:1px solid rgba(255,255,255,.08);
}
.reel-video-mask::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:5;
  pointer-events:none;
  border:clamp(6px,.7vw,10px) solid #000000;
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.08),
    inset 0 0 24px rgba(0,0,0,.42);
}
.reel-video-mask::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:0;
  height:clamp(4px,.45vw,7px);
  z-index:6;
  pointer-events:none;
  background:linear-gradient(90deg,var(--lf-fuchsia),var(--lf-violet),var(--lf-imola-cyan));
}
.reel-instagram-stage{
  position:absolute;
  z-index:1;
  left:0;
  right:0;
  top:calc(-1 * var(--reel-instagram-crop-top));
  min-height:calc(100% + var(--reel-instagram-crop-top) + 220px);
  background:#000;
}
.reel-instagram-stage .instagram-media{
  width:100% !important;
  min-width:0 !important;
  max-width:none !important;
  margin:0 !important;
  background:#000 !important;
}
.reel-instagram-stage iframe{
  width:100% !important;
  min-width:0 !important;
  max-width:none !important;
  margin:0 !important;
  border:0 !important;
}
@media(max-width:650px){
  .reel-card-masked{padding:7px}
  .reel-video-mask{--reel-instagram-crop-top:50px}
  .reel-video-mask::before{border-width:6px}
}


/* V155 — crop più deciso per nascondere fascia commenti e bande laterali Instagram */
.reel-video-mask{
  --reel-instagram-crop-top:clamp(54px,4.6vw,68px);
  --reel-instagram-crop-bottom:clamp(168px,13vw,210px);
  --reel-instagram-crop-side:clamp(18px,2.1vw,28px);
}
.reel-instagram-stage{
  left:calc(-1 * var(--reel-instagram-crop-side));
  right:calc(-1 * var(--reel-instagram-crop-side));
  top:calc(-1 * var(--reel-instagram-crop-top));
  bottom:calc(-1 * var(--reel-instagram-crop-bottom));
  min-height:auto;
}
.reel-instagram-stage .instagram-media,
.reel-instagram-stage iframe{
  width:100% !important;
  max-width:none !important;
  min-width:0 !important;
  border:0 !important;
}
.reel-instagram-stage iframe{
  height:100% !important;
  transform:scale(1.055);
  transform-origin:top center;
}
@media(max-width:650px){
  .reel-video-mask{
    --reel-instagram-crop-top:58px;
    --reel-instagram-crop-bottom:196px;
    --reel-instagram-crop-side:24px;
  }
  .reel-instagram-stage iframe{transform:scale(1.08);}
}

/* V156 — calibrazione mobile Reel dopo test reale su smartphone.
   Obiettivo: eliminare la fascia bianca Instagram sotto al video e le bande nere laterali
   senza sovrapporre coperture al contenuto del Reel. */
.reel-video-mask{
  --reel-instagram-crop-top:clamp(62px,5.2vw,76px);
  --reel-instagram-crop-bottom:clamp(220px,17vw,270px);
  --reel-instagram-crop-side:clamp(25px,2.8vw,36px);
}
.reel-instagram-stage iframe{
  transform:scale(1.14);
  transform-origin:top center;
}
@media(max-width:650px){
  .reel-video-mask{
    --reel-instagram-crop-top:70px;
    --reel-instagram-crop-bottom:250px;
    --reel-instagram-crop-side:30px;
  }
  .reel-instagram-stage iframe{
    transform:scale(1.20);
    transform-origin:top center;
  }
}


/* V158 — assistente livello Open Day: laterale, discreto, sopra la CTA mobile */
.lf-level-assistant{position:fixed;z-index:145;right:0;top:64%;transform:translateY(-50%);font-family:var(--sans);pointer-events:none;}
.lf-level-tab{pointer-events:auto;display:flex;align-items:center;gap:9px;max-width:212px;padding:10px 13px 10px 11px;border:1px solid rgba(255,255,255,.24);border-right:0;border-radius:16px 0 0 16px;background:rgba(0,0,0,.92);backdrop-filter:blur(12px);box-shadow:-8px 10px 30px rgba(0,0,0,.28);color:#fff;cursor:pointer;text-align:left;transition:.2s ease;}
.lf-level-tab:hover{transform:translateX(-3px);border-color:rgba(20,207,255,.55);}
.lf-level-tab-icon{display:grid;place-items:center;width:34px;height:34px;flex:0 0 34px;border-radius:50%;background:linear-gradient(135deg,var(--lf-imola-cyan),var(--lf-fuchsia));font-size:16px;box-shadow:0 0 0 3px rgba(20,207,255,.15);}
.lf-level-tab-copy{display:block;min-width:0;}
.lf-level-tab small,.lf-level-tab b{display:block;white-space:nowrap;}
.lf-level-tab small{font-size:6px;letter-spacing:.12em;color:#ffffff;margin-bottom:3px;}
.lf-level-tab b{font-size:8px;letter-spacing:.08em;}
.lf-level-assistant.is-open .lf-level-tab{opacity:0;visibility:hidden;transform:translateX(20px);}
.lf-level-chat{pointer-events:auto;position:absolute;right:18px;bottom:50%;width:min(390px,calc(100vw - 30px));max-height:min(650px,74vh);display:grid;grid-template-rows:auto minmax(120px,1fr) auto auto;background:#000000;color:#fff;border:1px solid rgba(255,255,255,.16);box-shadow:0 20px 60px rgba(0,0,0,.48),8px 8px 0 rgba(20,207,255,.25);border-radius:18px;overflow:hidden;opacity:0;visibility:hidden;transform:translateY(18px) scale(.98);transform-origin:bottom right;transition:.2s ease;}
.lf-level-assistant.is-open .lf-level-chat{opacity:1;visibility:visible;transform:translateY(0) scale(1);}
.lf-level-chat header{display:flex;align-items:center;gap:10px;padding:13px 14px;border-bottom:1px solid rgba(255,255,255,.1);background:linear-gradient(120deg,#000000,#000000);}
.lf-level-avatar{width:38px;height:38px;border-radius:50%;background:#fff;display:grid;place-items:center;overflow:hidden;flex:0 0 38px;}
.lf-level-avatar img{width:84%;height:84%;object-fit:contain;}
.lf-level-chat header>div:nth-child(2){min-width:0;flex:1;}
.lf-level-chat header strong{display:block;font-size:10px;letter-spacing:.1em;}
.lf-level-chat header span{display:block;margin-top:3px;font-size:8px;color:#ffffff;}
.lf-level-chat header button{width:34px;height:34px;border:0;background:transparent;color:#ffffff;font-size:25px;cursor:pointer;}
.lf-level-messages{overflow:auto;padding:15px 13px 8px;display:flex;flex-direction:column;gap:9px;overscroll-behavior:contain;}
.lf-level-msg{max-width:88%;padding:10px 12px;border-radius:14px;font-size:12px;line-height:1.5;box-shadow:0 4px 12px rgba(0,0,0,.12);}
.lf-level-msg.is-bot{align-self:flex-start;background:#000000;border-bottom-left-radius:4px;color:#ffffff;}
.lf-level-msg.is-user{align-self:flex-end;background:linear-gradient(135deg,var(--lf-violet),var(--lf-fuchsia));border-bottom-right-radius:4px;color:#fff;}
.lf-level-result{display:grid;gap:6px;margin:10px 0;padding:10px;background:#000000;border:1px solid rgba(20,207,255,.23);}
.lf-level-result b{display:flex;justify-content:space-between;gap:12px;font-size:9px;letter-spacing:.04em;}
.lf-level-result em{font-style:normal;color:var(--lf-imola-cyan);}
.lf-level-actions{display:grid;grid-template-columns:1fr;gap:7px;padding:8px 13px 12px;}
.lf-level-actions button{min-height:42px;padding:9px 11px;border:1px solid rgba(255,255,255,.14);background:#000000;color:#fff;border-radius:10px;text-align:left;font:900 8px/1.3 var(--sans);letter-spacing:.06em;cursor:pointer;transition:.16s ease;}
.lf-level-actions button:hover{border-color:var(--lf-imola-cyan);background:#000000;transform:translateX(2px);}
.lf-level-actions button:first-child{background:linear-gradient(90deg,var(--lf-imola-cyan),var(--lf-fuchsia));color:#000000;border-color:transparent;}
.lf-level-foot{padding:0 13px 12px;text-align:center;color:#ffffff;font-size:6px;letter-spacing:.08em;}
.menu-open .lf-level-assistant{opacity:0;visibility:hidden;pointer-events:none;}
.booking.lf-prefilled-flash{animation:lfPrefilledFlash 1.6s ease;}
@keyframes lfPrefilledFlash{0%,100%{box-shadow:inherit}35%{box-shadow:0 0 0 3px var(--lf-imola-cyan),0 0 32px rgba(20,207,255,.28)}}

/* V158 — cappellini compatti + ventaglio */
.shop-category-nav{grid-template-columns:repeat(5,1fr);}
.shop-hats-config,.shop-fan-section{scroll-margin-top:145px;}
.shop-hat-configurator{background:#000000;border-color:rgba(255,255,255,.14);box-shadow:18px 18px 0 rgba(20,207,255,.18);}
.shop-hat-configurator .shop-config-panel{background:#ffffff;color:#000000;}
.shop-hat-preview{aspect-ratio:1/1!important;background:#000000!important;position:sticky;top:132px;}
.shop-hat-preview::after{background:radial-gradient(circle at 50% 50%,rgba(20,207,255,.12),transparent 48%),linear-gradient(135deg,transparent,rgba(255,31,168,.06));}
.shop-hat-preview-img{width:100%;height:100%;object-fit:cover;display:block;}
.shop-hat-options{grid-template-columns:repeat(3,minmax(0,1fr));}
.shop-fan-section{background:linear-gradient(135deg,#ffffff,#ffffff);}
.shop-fan-product{grid-template-columns:minmax(300px,.95fr) minmax(0,1fr);}
.shop-fan-art{min-height:430px;display:grid;place-items:center;background:radial-gradient(circle at 50% 62%,rgba(20,207,255,.22),transparent 36%),#000000;overflow:hidden;}
.shop-fan-photo{width:100%;height:100%;min-height:430px;display:block;object-fit:contain;background:#ffffff;}
.shop-fan-shape{position:relative;width:min(78%,390px);aspect-ratio:1.45/1;transform:translateY(18px);}
.shop-fan-shape i{position:absolute;left:50%;bottom:4%;width:28%;height:88%;border-radius:55% 55% 8% 8%;transform-origin:50% 96%;background:linear-gradient(180deg,#000000 0 72%,#000000 72%);border:1px solid rgba(255,255,255,.12);box-shadow:inset 0 0 0 1px rgba(20,207,255,.04);}
.shop-fan-shape i:nth-child(1){transform:translateX(-50%) rotate(-64deg)}.shop-fan-shape i:nth-child(2){transform:translateX(-50%) rotate(-48deg)}.shop-fan-shape i:nth-child(3){transform:translateX(-50%) rotate(-32deg)}.shop-fan-shape i:nth-child(4){transform:translateX(-50%) rotate(-16deg)}.shop-fan-shape i:nth-child(5){transform:translateX(-50%) rotate(0)}.shop-fan-shape i:nth-child(6){transform:translateX(-50%) rotate(16deg)}.shop-fan-shape i:nth-child(7){transform:translateX(-50%) rotate(32deg)}.shop-fan-shape i:nth-child(8){transform:translateX(-50%) rotate(48deg)}.shop-fan-shape i:nth-child(9){transform:translateX(-50%) rotate(64deg)}
.shop-fan-shape::after{content:"";position:absolute;left:50%;bottom:0;width:22px;height:22px;transform:translateX(-50%);border-radius:50%;background:linear-gradient(135deg,var(--lf-imola-cyan),var(--lf-fuchsia));box-shadow:0 0 18px rgba(20,207,255,.35);}
.shop-fan-shape span{position:absolute;z-index:3;left:50%;top:34%;transform:translateX(-50%);white-space:nowrap;font:400 clamp(40px,5vw,70px)/1 var(--display);color:#fff;text-shadow:4px 4px 0 var(--lf-violet);letter-spacing:.03em;}

@media(max-width:900px){
  .lf-level-assistant{top:60%;}
  .lf-level-tab{max-width:58px;padding:9px;border-radius:14px 0 0 14px;}
  .lf-level-tab-icon{width:36px;height:36px;flex-basis:36px;}
  .lf-level-tab-copy{display:none;}
  .lf-level-chat{position:fixed;right:12px;left:12px;bottom:calc(82px + env(safe-area-inset-bottom));width:auto;max-height:68vh;transform-origin:bottom right;}
  .shop-category-nav{grid-template-columns:repeat(4,1fr);}
  .shop-category-nav a:last-child{display:none;}
  .shop-hats-config,.shop-fan-section{scroll-margin-top:118px;}
  .shop-hat-preview{position:relative;top:auto;aspect-ratio:1/1!important;}
  .shop-hat-options{grid-template-columns:1fr;}
  .shop-fan-product{grid-template-columns:1fr;}
  .shop-fan-art{min-height:300px;}
  .shop-fan-photo{min-height:300px;}
}
@media(max-width:430px){
  .lf-level-chat{right:8px;left:8px;bottom:calc(80px + env(safe-area-inset-bottom));max-height:70vh;}
  .lf-level-chat header{padding:10px 11px;}.lf-level-messages{padding:12px 10px 6px}.lf-level-actions{padding:7px 10px 10px}.lf-level-msg{font-size:11px;}
  .shop-fan-shape{width:86%;}.shop-fan-shape span{font-size:43px;}
}

/* V159 — fix chat mobile + ritmo messaggi + cornice inferiore Reel */
/* Più respiro tra le bolle, stile messaggistica. */
.lf-level-messages{gap:14px;padding-bottom:12px;}
.lf-level-msg.is-user{margin-top:4px;}
.lf-level-actions{padding-top:12px;}

/* Alza leggermente il limite/cornice inferiore del Reel. */
.reel-video-mask{--reel-instagram-crop-bottom:clamp(232px,18vw,282px);}

@media(max-width:900px){
  /* Il contenitore diventa il riferimento dell'intero viewport: la chat non può più uscire dallo schermo. */
  .lf-level-assistant{
    top:0;
    right:0;
    width:100vw;
    height:100dvh;
    transform:none;
  }
  .lf-level-tab{
    position:absolute;
    right:0;
    top:60%;
    transform:translateY(-50%);
  }
  .lf-level-tab:hover{transform:translateY(-50%) translateX(-3px);}
  .lf-level-assistant.is-open .lf-level-tab{transform:translateY(-50%) translateX(20px);}
  .lf-level-chat{
    position:absolute;
    left:12px;
    right:12px;
    top:auto;
    bottom:calc(82px + env(safe-area-inset-bottom));
    width:auto;
    max-height:min(680px,calc(100dvh - 112px - env(safe-area-inset-bottom)));
    transform-origin:bottom right;
  }
  .reel-video-mask{--reel-instagram-crop-bottom:266px;}
}

@media(max-width:430px){
  .lf-level-chat{
    left:8px;
    right:8px;
    bottom:calc(78px + env(safe-area-inset-bottom));
    max-height:calc(100dvh - 102px - env(safe-area-inset-bottom));
  }
  .lf-level-messages{gap:15px;padding:13px 10px 11px;}
  .lf-level-actions{padding:12px 10px 11px;gap:9px;}
}

/* V160 — Reel: cornice inferiore realmente alzata di circa un pulsante.
   Non sposta solo l'embed: aumenta fisicamente la fascia inferiore della maschera. */
.reel-video-mask::before{
  border-bottom-width:clamp(56px,4.8vw,66px);
}
@media(max-width:900px){
  .reel-video-mask::before{border-bottom-width:58px;}
}

/* V161 — Reel: la fascia inferiore di copertura diventa parte della cornice Latin Flow.
   Mantiene invariata l'altezza approvata in V160, ma elimina il vuoto nero sotto al video. */
.reel-video-mask{
  --reel-frame-bottom:clamp(56px,4.8vw,66px);
}
.reel-video-mask::before{
  border-bottom-width:var(--reel-frame-bottom);
  border-bottom-color:transparent;
  background:
    linear-gradient(90deg,var(--lf-fuchsia),var(--lf-violet),var(--lf-imola-cyan))
    bottom / 100% var(--reel-frame-bottom) no-repeat;
}
@media(max-width:900px){
  .reel-video-mask{--reel-frame-bottom:58px;}
}

/* V162 — Reel: elimina la fascia finta e porta fisicamente il fondo della cornice
   all'altezza della precedente copertura, senza alterare la geometria dell'embed Instagram. */
.reel-video-mask{
  --reel-frame-cut:clamp(56px,4.8vw,66px);
  margin-bottom:calc(-1 * var(--reel-frame-cut));
  clip-path:inset(0 0 var(--reel-frame-cut) 0);
}
.reel-video-mask::before{
  inset:0 0 var(--reel-frame-cut) 0;
  border:clamp(6px,.7vw,10px) solid #000000;
  background:none;
}
@media(max-width:900px){
  .reel-video-mask{--reel-frame-cut:58px;}
  .reel-video-mask::before{border-width:6px;}
}


/* V163 — richiamo automatico discreto dell'assistente livello. */
.lf-level-teaser{
  pointer-events:none;
  position:absolute;
  right:64px;
  top:50%;
  width:225px;
  padding:12px 14px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:14px 14px 4px 14px;
  background:rgba(0,0,0,.96);
  backdrop-filter:blur(12px);
  box-shadow:0 14px 38px rgba(0,0,0,.36),inset 3px 0 0 var(--lf-imola-cyan);
  color:#fff;
  text-align:left;
  font-family:var(--sans);
  opacity:0;
  visibility:hidden;
  transform:translate(34px,-50%) scale(.97);
  transition:opacity .26s ease,transform .34s cubic-bezier(.2,.75,.25,1),visibility .26s ease;
  cursor:pointer;
}
.lf-level-teaser::after{
  content:"";
  position:absolute;
  right:-7px;
  top:50%;
  width:14px;
  height:14px;
  background:rgba(0,0,0,.96);
  border-top:1px solid rgba(255,255,255,.18);
  border-right:1px solid rgba(255,255,255,.18);
  transform:translateY(-50%) rotate(45deg);
}
.lf-level-teaser span,.lf-level-teaser b,.lf-level-teaser small{position:relative;z-index:1;display:block;}
.lf-level-teaser span{margin-bottom:4px;font-size:9px;color:#ffffff;}
.lf-level-teaser b{font-size:11px;line-height:1.35;letter-spacing:.015em;}
.lf-level-teaser small{margin-top:6px;font-size:8px;color:var(--lf-imola-cyan);font-weight:800;letter-spacing:.035em;}
.lf-level-assistant.show-teaser:not(.is-open) .lf-level-teaser{
  pointer-events:auto;
  opacity:1;
  visibility:visible;
  transform:translate(0,-50%) scale(1);
}
.lf-level-assistant.show-teaser .lf-level-tab{border-color:rgba(20,207,255,.5);}
.menu-open .lf-level-teaser,.lf-level-assistant.is-open .lf-level-teaser{opacity:0!important;visibility:hidden!important;pointer-events:none!important;}

@media(max-width:900px){
  .lf-level-teaser{
    position:absolute;
    right:62px;
    top:60%;
    width:min(220px,calc(100vw - 88px));
    transform:translate(30px,-50%) scale(.97);
  }
  .lf-level-assistant.show-teaser:not(.is-open) .lf-level-teaser{transform:translate(0,-50%) scale(1);}
}
@media(max-width:430px){
  .lf-level-teaser{right:58px;width:min(210px,calc(100vw - 78px));padding:11px 12px;}
  .lf-level-teaser b{font-size:10px;}
  .lf-level-teaser small{font-size:7px;}
}


/* V164 — menu mobile compatto e Shop Online nella barra desktop */
.shop-nav-active{color:var(--lf-imola-cyan)!important;}
@media(max-width:900px){
  .mobile-menu{
    overflow-x:hidden !important;
    overflow-y:auto !important;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
    align-content:start !important;
    gap:0 !important;
    padding:18px 24px calc(24px + env(safe-area-inset-bottom)) !important;
  }
  .mobile-menu a{
    padding:8px 2px !important;
    font-size:clamp(17px,5vw,23px) !important;
    line-height:1 !important;
    letter-spacing:.01em !important;
  }
}


/* ==========================================================
   V173 — FINAL POLISH / DESIGN SYSTEM
   Unico strato definitivo per tipografia, spaziature, navigazione,
   accessibilità, course facts, Academy, Shop e Reel.
   ========================================================== */
:root{
  --lf-bg:#000000;
  --lf-surface:#000000;
  --lf-surface-2:#000000;
  --lf-text:#ffffff;
  --lf-muted:rgba(255,255,255,.75);
  --lf-line:rgba(255,255,255,.15);
  --lf-yellow:#14cfff;
  --lf-orange:#ff1fa8;
  --lf-fuchsia:#ff1fa8;
  --lf-violet:#ff1fa8;
  --lf-imola-cyan:#14cfff;
  --lf-gradient:linear-gradient(90deg,var(--lf-fuchsia) 0%,var(--lf-imola-cyan) 52%,var(--lf-fuchsia) 100%);
  --lf-content:1280px;
  --lf-gutter:clamp(18px,5vw,72px);
  --lf-section:clamp(72px,8vw,120px);
  --lf-radius:2px;
  --lf-modal-radius:8px;
  --lf-ease:cubic-bezier(.2,.7,.2,1);
}

html{scroll-padding-top:88px;}
body{font-size:16px;line-height:1.6;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;}
p{max-width:68ch;}
::selection{background:var(--lf-fuchsia);color:#fff;}

/* Keyboard / touch quality */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{
  outline:2px solid var(--lf-imola-cyan);outline-offset:4px;
}
button,a,.btn,summary{touch-action:manipulation;}
.btn,.nav-cta,.shop-add-btn,.shop-how-cta,.shop-cart-checkout,.shop-preorder-submit{min-height:48px;}

/* Shared typography scale */
.kicker{font-size:clamp(11px,.82vw,12px);line-height:1.35;letter-spacing:.22em;margin-bottom:18px;}
.display{font-size:clamp(84px,9vw,148px);}
.display-small{font-size:clamp(58px,6.5vw,100px);}
.hero-lead,.academy-hero-lead,.shop-hero-lead,.detail-intro{font-size:clamp(16px,1.2vw,19px);line-height:1.68;}
.section-intro{font-size:clamp(15px,1.05vw,17px);line-height:1.7;}

/* Shared section rhythm. Keeps the same personality with fewer arbitrary gaps. */
.section{padding-top:var(--lf-section);padding-bottom:var(--lf-section);padding-left:var(--lf-gutter);padding-right:var(--lf-gutter);}
.section-head,.schedule-wrap,.academy-preview-grid,.open-grid,.partner-grid{max-width:var(--lf-content);margin-left:auto;margin-right:auto;}
.course-stack,.media-grid,.faq-list{max-width:var(--lf-content);margin-left:auto;margin-right:auto;}

/* Definitive navigation */
.desktop-nav a.site-nav-active{
  color:transparent;
  background:var(--lf-gradient);
  -webkit-background-clip:text;background-clip:text;
}
.nav-cta,.btn-hot{transition:transform .22s var(--lf-ease),box-shadow .22s var(--lf-ease),filter .22s var(--lf-ease);}
.nav-cta:hover,.btn-hot:hover{transform:translateY(-2px);}

@media(min-width:901px) and (max-width:1220px){
  .nav{gap:14px!important;padding-left:16px!important;padding-right:16px!important;}
  .desktop-nav{gap:9px!important;}
  .desktop-nav a{font-size:8.5px!important;letter-spacing:.045em!important;white-space:nowrap;}
  .nav-cta{font-size:8.5px!important;padding:10px 10px!important;white-space:nowrap;}
  .nav-brand.nav-brand-static{width:112px!important;}
  .nav-brand.nav-brand-static span{max-width:56px!important;margin-left:5px!important;}
}

@media(max-width:900px){
  html{scroll-padding-top:78px;}
  .mobile-menu{
    inset:74px 0 auto 0!important;
    height:auto!important;
    max-height:calc(100dvh - 74px)!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
    align-content:start!important;
    gap:0!important;
    padding:18px 24px calc(14px + env(safe-area-inset-bottom))!important;
    border:0!important;
    box-shadow:0 18px 34px rgba(0,0,0,.38)!important;
  }
  .mobile-menu::before,.mobile-menu::after{
    content:"";position:absolute;left:0;right:0;height:5px;background:var(--lf-gradient);z-index:3;pointer-events:none;
  }
  .mobile-menu::before{top:0;}
  .mobile-menu::after{bottom:0;}
  .mobile-menu a,
  .mobile-menu .shop-menu-link,
  .mobile-menu .shop-nav-active,
  .mobile-menu .academy-nav-active{
    position:relative;
    width:max-content!important;max-width:100%!important;
    justify-self:end!important;text-align:right!important;
    padding:10px 2px!important;
    font-size:clamp(24px,6.8vw,31px)!important;
    line-height:.98!important;letter-spacing:.015em!important;
    color:#ffffff!important;-webkit-text-fill-color:#ffffff!important;
    background:none!important;background-image:none!important;
    -webkit-background-clip:border-box!important;background-clip:border-box!important;
    text-shadow:3px 4px 0 #000,0 0 10px rgba(0,0,0,.42)!important;
    transition:transform .2s var(--lf-ease),filter .2s var(--lf-ease)!important;
  }
  .mobile-menu a:hover,.mobile-menu a:focus-visible{transform:translateX(-5px)!important;filter:brightness(1.12)!important;}
  .mobile-menu a.site-nav-active{
    isolation:isolate!important;
    color:#fff!important;-webkit-text-fill-color:#fff!important;
    background:none!important;background-image:none!important;
    text-shadow:none!important;
  }
  /* Shadow only: the front glyph stays white; the offset blurred glyph behind carries the brand gradient. */
  .mobile-menu a.site-nav-active::before{
    content:attr(data-label);position:absolute;inset:0;display:flex;align-items:center;justify-content:flex-start;
    font:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;
    color:transparent;-webkit-text-fill-color:transparent;background:var(--lf-gradient);
    -webkit-background-clip:text;background-clip:text;transform:translate(2px,3px);filter:blur(.55px);opacity:.97;
    pointer-events:none;z-index:-1;
  }
}

/* Conversion order: Open Day now arrives directly after the courses. */
.courses + .open-day{margin-top:0;}

/* Course cards / detail hierarchy */
.course-card{border-color:var(--lf-line);}
.course-card p{font-size:15px;line-height:1.65;}
.course-more{font-size:11px;}
.course-quickfacts{
  display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1px;
  max-width:1080px;margin:30px 0 0;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.13);
}
.course-quickfacts>div{min-width:0;padding:14px 16px;background:rgba(0,0,0,.92);}
.course-quickfacts small{display:block;margin-bottom:5px;color:#ffffff;font-size:10px;font-weight:900;letter-spacing:.16em;}
.course-quickfacts strong{display:block;color:#ffffff;font-size:12px;line-height:1.35;letter-spacing:.03em;}

/* Experience: placeholder pronto per il futuro video di presentazione della scuola. */
.school-video-placeholder{color:inherit;cursor:pointer;text-decoration:none;}
.school-video-placeholder .play{opacity:.9;}
.school-video-placeholder .media-more{margin-top:8px;display:block;}
.school-video-placeholder .school-video-status{font-weight:900;letter-spacing:.14em;color:#ffffff;}

/* Academy = premium member area first, explainer second. */
.academy-primary-access{box-shadow:12px 12px 0 rgba(20,207,255,.42)!important;}
.academy-track{transition:transform .24s var(--lf-ease),border-color .24s var(--lf-ease),box-shadow .24s var(--lf-ease);}
.academy-track:hover{transform:translateY(-3px);border-color:rgba(20,207,255,.45);box-shadow:0 18px 40px rgba(0,0,0,.22);}

/* Shop mobile purchase bar */
.shop-mobile-buybar{display:none;}
@media(max-width:900px){
  .shop-mobile-buybar{
    position:fixed;z-index:86;left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));
    display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;
    padding:9px 10px 9px 12px;background:rgba(0,0,0,.94);border:1px solid rgba(255,255,255,.18);
    box-shadow:0 14px 42px rgba(0,0,0,.58);backdrop-filter:blur(14px);
    transform:translateY(calc(100% + 30px));opacity:0;visibility:hidden;pointer-events:none;
    transition:transform .28s var(--lf-ease),opacity .25s ease,visibility .25s;
  }
  .shop-mobile-buybar::before{content:"";position:absolute;left:-1px;right:-1px;top:-1px;height:3px;background:var(--lf-gradient);}
  .shop-mobile-buybar.is-visible{transform:translateY(0);opacity:1;visibility:visible;pointer-events:auto;}
  .shop-mobile-buybar-copy{min-width:0;}
  .shop-mobile-buybar-copy small{display:block;color:#ffffff;font-size:9px;font-weight:900;letter-spacing:.13em;}
  .shop-mobile-buybar-copy strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:10px;line-height:1.25;color:#fff;}
  .shop-mobile-buybar>b{font-size:19px;color:#fff;}
  .shop-mobile-buybar button{min-height:44px;border:0;padding:0 13px;background:#fff;color:#000000;font-size:10px;font-weight:900;letter-spacing:.04em;}
  .shop-mobile-buybar button:disabled{opacity:.42;cursor:not-allowed;}
  body.shop-cart-open .shop-mobile-buybar,body.shop-preorder-open .shop-mobile-buybar{opacity:0!important;pointer-events:none!important;}
}

/* Reel: local previews before opting into Instagram. */
.reel-video-mask{position:relative;}
.reel-local-poster{position:absolute;inset:0;z-index:0;overflow:hidden;background:#000000;transition:opacity .3s ease,visibility .3s ease;}
.reel-local-poster img{width:100%;height:100%;object-fit:cover;filter:saturate(.78) contrast(1.06) brightness(.62);transform:scale(1.08);}
.reel-local-poster::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.06),rgba(0,0,0,.44));}
.reel-local-poster span{position:absolute;z-index:2;left:16px;bottom:16px;padding:7px 9px;border:1px solid rgba(255,255,255,.35);background:rgba(0,0,0,.72);color:#fff;font-size:10px;font-weight:900;letter-spacing:.16em;}
.reel-local-poster-1 img{object-position:10% 50%;}.reel-local-poster-2 img{object-position:28% 50%;}.reel-local-poster-3 img{object-position:46% 50%;}
.reel-local-poster-4 img{object-position:62% 50%;}.reel-local-poster-5 img{object-position:78% 50%;}.reel-local-poster-6 img{object-position:92% 50%;}
/* V175 — fix Reel: mantiene l'embed fuori dal flusso così la card resta 9:16. */
.reel-instagram-stage{position:absolute;z-index:1;}
body:not(.instagram-consent-granted) .reel-instagram-stage{opacity:0;pointer-events:none;}
body.instagram-consent-granted .reel-local-poster{opacity:0;visibility:hidden;}

/* Footer/legal refinements */
.footer-legal-main,.footer-legal-credit,.footer-legal-links,.footer-legal-rights{line-height:1.55;}
.footer-legal-rights{font-size:max(10px,.64rem);letter-spacing:.07em;}
.footer-link-item{min-height:48px;}

/* Tablet/mobile consolidation */
@media(max-width:900px){
  body{font-size:15.5px;}
  .section{padding-top:clamp(64px,15vw,82px);padding-bottom:clamp(64px,15vw,82px);padding-left:18px;padding-right:18px;}
  .display{font-size:clamp(72px,22vw,92px);}
  .display-small{font-size:clamp(50px,15vw,66px);}
  .kicker{font-size:11px;letter-spacing:.18em;}
  .hero-lead,.academy-hero-lead,.shop-hero-lead,.detail-intro{font-size:16px;line-height:1.62;}
  .course-card p,.section-intro{font-size:15px;}
  .course-quickfacts{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:24px;}
  .course-quickfacts>div:last-child{grid-column:1/-1;}
  .course-quickfacts small{font-size:9px;}.course-quickfacts strong{font-size:11px;}
  .footer-legal-main,.footer-legal-credit,.footer-legal-links,.footer-legal-rights{font-size:10px!important;}
}

@media(max-width:430px){
  .mobile-menu{padding-left:18px!important;padding-right:18px!important;}
  .mobile-menu a{font-size:clamp(23px,7vw,29px)!important;}
  .course-quickfacts{grid-template-columns:1fr 1fr;}
}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;}
}


/* ==========================================================
   V174 — SALA / TITOLI UNIFORMATI AL DESIGN SYSTEM
   La pagina Sala usa la stessa grammatica tipografica del resto
   del sito: Road Rage, gerarchia display-small, fucsia + giallo,
   ombra viola sullo scuro e nera sullo sfondo chiaro.
   ========================================================== */
.room-page .room-title,
.room-page .room-location-title,
.room-page .room-features-title,
.room-page .room-closing .display-small{
  margin:0;
  font-family:var(--display);
  font-weight:400;
  font-synthesis:none;
  text-transform:uppercase;
  letter-spacing:-.01em;
  line-height:.9!important;
  padding-bottom:.08em!important;
  overflow:visible!important;
  background:none!important;
  -webkit-background-clip:border-box!important;
  background-clip:border-box!important;
  color:var(--lf-fuchsia)!important;
  text-shadow:0 10px 0 rgba(20,207,255,.45)!important;
}
.room-page .room-title strong,
.room-page .room-location-title strong,
.room-page .room-features-title strong,
.room-page .room-closing .display-small strong{
  color:var(--lf-yellow)!important;
  font-weight:400!important;
  text-shadow:inherit!important;
}

/* Il titolo principale della Sala ha la stessa scala degli H1 dei corsi. */
.room-page .room-title{
  font-size:clamp(64px,7.5vw,126px)!important;
}

/* I titoli delle sezioni seguono la scala condivisa del sito. */
.room-page .room-location-title,
.room-page .room-features-title,
.room-page .room-closing .display-small{
  font-size:clamp(58px,6.5vw,100px)!important;
}

/* Su fondo bianco l'ombra diventa nera, come nelle altre sezioni chiare. */
.room-page .room-features-title,
.room-page .room-features-title strong{
  text-shadow:0 10px 0 rgba(0,0,0,.28)!important;
}

@media(max-width:900px){
  .room-page .room-title{
    font-size:clamp(56px,17vw,82px)!important;
    line-height:.92!important;
    padding-bottom:.1em!important;
    text-shadow:0 7px 0 rgba(20,207,255,.4)!important;
  }
  .room-page .room-location-title,
  .room-page .room-features-title,
  .room-page .room-closing .display-small{
    font-size:clamp(50px,15vw,66px)!important;
    line-height:.92!important;
    padding-bottom:.1em!important;
    text-shadow:0 7px 0 rgba(20,207,255,.4)!important;
  }
  .room-page .room-features-title,
  .room-page .room-features-title strong{
    text-shadow:0 7px 0 rgba(0,0,0,.26)!important;
  }
}

/* V177 — CTA desktop "PRENOTA OPEN DAY": centratura ottica e geometrica */
@media (min-width:901px){
  .nav-cta{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    box-sizing:border-box !important;
    min-height:48px !important;
    height:48px !important;
    padding:0 18px !important;
    margin:0 !important;
    line-height:1 !important;
    text-align:center !important;
    white-space:nowrap !important;
    flex:0 0 auto !important;
  }
}
@media (min-width:901px) and (max-width:1220px){
  .nav-cta{
    height:44px !important;
    min-height:44px !important;
    padding:0 12px !important;
    font-size:8.5px !important;
  }
}

/* ==========================================================
   V179 — TITOLI UNIFORMATI + SHOP MOBILE COMPATTO
   - stessa scala H1 della pagina Sala su tutte le pagine principali
   - colori e ombre esistenti preservati
   - configuratori Shop più corti, leggibili e senza overflow su mobile
   ========================================================== */

/* H1 principali: stessa grandezza della Sala, senza alterare palette/stile. */
.room-page .room-title,
.course-page .detail-head > h1.display-small,
.reels-page .reels-title,
.about-page .about-hero h1.display-small,
.academy-page .academy-title,
.shop-page .shop-title{
  font-size:clamp(64px,7.5vw,126px)!important;
}

/* Anche i grandi titoli di sezione Shop rientrano nella scala H2 condivisa. */
.shop-page .shop-section-copy h2{
  font-size:clamp(58px,6.5vw,100px)!important;
  overflow-wrap:normal!important;
  word-break:normal!important;
}

/* Guard rail: nessuna etichetta del configuratore può uscire dal proprio box. */
.shop-design-choice,
.shop-design-choice span,
.shop-option-grid,
.shop-option-grid button,
.shop-option-grid button b,
.shop-option-grid button small,
.shop-config-step-head,
.shop-config-step-head>div,
.shop-config-buy,
.shop-config-buy>div{
  min-width:0!important;
  max-width:100%;
  box-sizing:border-box;
}
.shop-option-grid button b,
.shop-config-step-head strong{
  white-space:normal!important;
  overflow-wrap:anywhere!important;
  word-break:normal!important;
}
.shop-design-choice small{
  overflow:hidden;
  text-overflow:ellipsis;
}

/* Il riepilogo della grafica/modello selezionato non duplica più una descrizione lunga. */
.shop-config-current-compact{
  margin:0 0 22px!important;
  padding:16px 18px!important;
  min-height:0!important;
}
.shop-config-current-compact>small{
  margin-bottom:7px!important;
}
.shop-config-current-compact h3{
  font-size:clamp(34px,3.2vw,48px)!important;
  line-height:.84!important;
  margin:0!important;
}
.shop-config-current-compact p{
  margin:8px 0 0!important;
  max-width:100%!important;
  color:#ffffff!important;
  font-size:11px!important;
  line-height:1.35!important;
  font-weight:800;
  letter-spacing:.035em;
}

/* Ritmo leggermente più compatto anche su desktop/tablet. */
.shop-config-step{
  padding-bottom:22px;
  margin-bottom:22px;
}
.shop-hat-configurator .shop-config-current-compact{
  margin-bottom:18px!important;
}

@media(max-width:900px){
  /* H1 mobile: stessa scala della Sala su ogni pagina principale. */
  .room-page .room-title,
  .course-page .detail-head > h1.display-small,
  .reels-page .reels-title,
  .about-page .about-hero h1.display-small,
  .academy-page .academy-title,
  .shop-page .shop-title{
    font-size:clamp(56px,17vw,82px)!important;
  }

  /* H2 Shop coerenti con gli altri grandi titoli di sezione. */
  .shop-page .shop-section-copy h2{
    font-size:clamp(50px,15vw,66px)!important;
    line-height:.88!important;
  }

  /* Meno "pagine dentro la pagina": sezioni più compatte su smartphone. */
  .shop-page .shop-section{
    padding:64px 16px!important;
  }
  .shop-page .shop-section-copy>p:not(.kicker){
    margin-top:16px;
    font-size:13px!important;
    line-height:1.6!important;
  }
  .shop-shirt-configurator{
    margin-top:28px!important;
    box-shadow:8px 8px 0 rgba(20,207,255,.16)!important;
  }
  .shop-config-panel{
    padding:18px 14px 22px!important;
  }

  /* Anteprima maglietta più piccola: mantiene esattamente le coordinate di stampa. */
  .shop-shirts-config .shop-config-preview{
    position:relative!important;
    top:auto!important;
    width:min(76vw,290px)!important;
    margin:16px auto 0!important;
    border:1px solid #ffffff;
  }

  /* Quattro grafiche = due righe compatte, non quattro card verticali enormi. */
  .shop-design-choice-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:7px!important;
  }
  .shop-design-choice{
    grid-template-columns:44px minmax(0,1fr)!important;
    gap:7px!important;
    min-height:58px!important;
    padding:6px!important;
    align-items:center!important;
  }
  .shop-design-choice img{
    width:44px!important;
    height:44px!important;
  }
  .shop-design-choice b{
    font-size:20px!important;
    line-height:.9!important;
  }
  .shop-design-choice small{
    display:block!important;
    margin-top:3px!important;
    font-size:6px!important;
    line-height:1.2!important;
    letter-spacing:.035em!important;
    white-space:nowrap!important;
  }

  /* Riepilogo selezione: un rettangolo corto, nome grande + una sola riga simpatica. */
  .shop-config-current-compact{
    margin:0 0 14px!important;
    padding:11px 13px!important;
    box-shadow:5px 5px 0 rgba(255,31,168,.15)!important;
  }
  .shop-config-current-compact>small{
    font-size:6.5px!important;
    margin-bottom:5px!important;
  }
  .shop-config-current-compact h3{
    font-size:30px!important;
    line-height:.82!important;
  }
  .shop-config-current-compact p{
    margin-top:5px!important;
    font-size:8.5px!important;
    line-height:1.25!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }

  /* Step più bassi e leggibili. */
  .shop-config-step{
    padding-bottom:14px!important;
    margin-bottom:14px!important;
  }
  .shop-config-step-head{
    gap:9px!important;
    margin-bottom:9px!important;
  }
  .shop-config-step-head>span{
    font-size:25px!important;
  }
  .shop-config-step-head small{
    font-size:6px!important;
    margin-bottom:3px!important;
  }
  .shop-config-step-head strong{
    font-size:8.5px!important;
    line-height:1.2!important;
  }

  /* Modelli e cappellini diventano righe, non blocchi alti. */
  .shop-model-options,
  .shop-hat-options{
    grid-template-columns:1fr!important;
    gap:6px!important;
  }
  .shop-option-grid button{
    min-height:44px!important;
    padding:8px 10px!important;
  }
  .shop-model-options button,
  .shop-hat-options button{
    flex-direction:row!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:10px!important;
    text-align:left!important;
  }
  .shop-option-grid button b{
    font-size:8.5px!important;
    line-height:1.25!important;
  }
  .shop-option-grid button small{
    flex:0 0 auto;
    font-size:7.5px!important;
  }

  /* Colore e taglia affiancati: meno scroll senza comprimere il touch target. */
  .shop-config-row{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    gap:10px!important;
  }
  .shop-config-row .shop-config-step{
    margin-bottom:4px!important;
  }
  .shop-color-options{
    grid-template-columns:1fr!important;
    gap:6px!important;
  }
  .shop-color-options button{
    justify-content:flex-start!important;
    min-height:42px!important;
  }
  .shop-config-sizes{
    gap:6px!important;
  }
  .shop-config-sizes button{
    min-width:42px!important;
    max-width:none!important;
    height:42px!important;
    flex:1 1 calc(50% - 6px)!important;
  }

  .shop-config-buy{
    gap:10px!important;
    padding-top:0!important;
  }
  .shop-config-buy>div strong{
    font-size:42px!important;
  }
  .shop-config-buy>div span{
    margin-top:5px!important;
    font-size:6.5px!important;
  }
  .shop-config-add{
    min-height:48px!important;
  }
  .shop-more-designs{
    display:none!important;
  }

  /* Cappellini: anteprima sempre presente ma molto meno invasiva. */
  .shop-hat-preview{
    position:relative!important;
    top:auto!important;
    width:min(82vw,310px)!important;
    aspect-ratio:16/10!important;
    margin:16px auto 0!important;
    border:1px solid rgba(255,255,255,.14);
  }
  .shop-hat-preview-img{
    object-fit:contain!important;
    background:#000000;
  }

  /* Evita che la barra categorie spezzi o spinga fuori testo. */
  .shop-category-nav a{
    min-width:0!important;
    padding-left:4px!important;
    padding-right:4px!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }
}

@media(max-width:430px){
  .shop-page .shop-section{
    padding-left:14px!important;
    padding-right:14px!important;
  }
  .shop-design-choice{
    grid-template-columns:40px minmax(0,1fr)!important;
    min-height:54px!important;
  }
  .shop-design-choice img{
    width:40px!important;
    height:40px!important;
  }
  .shop-design-choice b{
    font-size:18px!important;
  }
  .shop-design-choice small{
    font-size:5.7px!important;
  }
  .shop-config-panel{
    padding-left:12px!important;
    padding-right:12px!important;
  }
}

/* V180 — Shop mobile: cappellino sempre interamente visibile */
@media (max-width: 700px){
  .shop-hat-preview{
    width:min(84vw,320px)!important;
    aspect-ratio:4/3!important;
    min-height:0!important;
    padding:8px!important;
    box-sizing:border-box!important;
    display:grid!important;
    place-items:center!important;
    overflow:hidden!important;
  }
  .shop-hat-preview-img{
    width:auto!important;
    height:auto!important;
    max-width:94%!important;
    max-height:94%!important;
    object-fit:contain!important;
    object-position:center center!important;
    display:block!important;
  }
}

/* V181 — Shop mobile: cappellini di nuovo a tutta grandezza, senza crop */
@media (max-width: 700px){
  .shop-hat-preview{
    width:100%!important;
    max-width:none!important;
    aspect-ratio:1/1!important;
    margin:16px 0 0!important;
    padding:10px!important;
    min-height:0!important;
    box-sizing:border-box!important;
    display:grid!important;
    place-items:center!important;
    overflow:hidden!important;
  }
  .shop-hat-preview-img{
    width:100%!important;
    height:100%!important;
    max-width:100%!important;
    max-height:100%!important;
    object-fit:contain!important;
    object-position:center center!important;
    display:block!important;
    background:#000000!important;
  }
}

/* V182 — Academy Google login: retry robusto */
.academy-google-retry{margin-top:12px;}
.academy-google-retry[hidden]{display:none!important;}


/* ==========================================================
   V183 — REFINEMENT 10/10 (esclusi: prezzi corsi, ordine backend,
   performance/dipendenze, dominio personalizzato)
   ========================================================== */
:root{
  --lf-page-title:clamp(64px,7.5vw,126px);
  --lf-section-title:clamp(58px,6.5vw,100px);
}

/* Titoli: stessa scala, colori/ombre esistenti NON toccati. */
.room-page .room-title,
.course-page .detail-head>h1.display-small,
.reels-page .reels-title,
.about-page .about-hero h1.display-small,
.academy-page .academy-title,
.shop-page .shop-title{font-size:var(--lf-page-title)!important;line-height:.86!important;}
.display-small,.shop-page .shop-section-copy h2,.staff-heading{font-size:var(--lf-section-title)!important;}

/* V184 — NAV DESKTOP RIPRISTINATA COME V182. */
/* Open Day: progressivo in due passaggi soltanto su smartphone. */
.booking-step-progress{display:none;align-items:center;gap:10px;margin:0 0 18px;padding:10px 0 2px;}
.booking-step-progress>span{display:flex;align-items:center;gap:7px;color:#ffffff;font-size:11px;font-weight:900;letter-spacing:.08em;white-space:nowrap;}
.booking-step-progress>span b{display:grid;place-items:center;width:24px;height:24px;border:1px solid #ffffff;border-radius:50%;font-size:11px;}
.booking-step-progress>span.is-active{color:#000000}.booking-step-progress>span.is-active b{border-color:transparent;background:linear-gradient(90deg,var(--lf-imola-cyan),var(--lf-fuchsia));}
.booking-step-progress>i{height:1px;flex:1;background:#ffffff;}
.booking-step-next{width:100%;margin:4px 0 0!important;}
.booking-step-back{display:none;margin:0 0 14px;border:0;background:none;color:#000000;font-size:11px;font-weight:900;letter-spacing:.08em;text-decoration:underline;text-underline-offset:4px;cursor:pointer;}
@media(max-width:700px){
  .booking-step-progress{display:flex;}
  .booking-step-back{display:inline-block;}
  .booking-step[hidden]{display:none!important;}
  .booking label{font-size:11px!important;letter-spacing:.09em!important;}
  .booking input,.booking select,.booking textarea{font-size:16px!important;}
  .booking-head>small,.privacy-mini,.booking>small{font-size:11px!important;line-height:1.5!important;}
  .booking-mail-btn,.btn.booking-mail-btn,button.booking-mail-btn{font-size:11px!important;}
  .booking-summary span,.booking-path-result>span{font-size:10px!important;}
  .booking-time-note{font-size:10px!important;}
}

/* Social proof autentico: usa contenuti reali della scuola, zero recensioni inventate. */
.community-proof{position:relative;background:#ffffff;color:#000000;overflow:hidden;}
.community-proof-grid{max-width:var(--lf-content);margin:auto;display:grid;grid-template-columns:minmax(0,.82fr) minmax(360px,1.18fr);gap:clamp(36px,6vw,90px);align-items:center;}
.community-proof-copy .section-intro{color:#000000;max-width:590px;}
.community-proof-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin:28px 0 30px;background:#ffffff;border:1px solid #ffffff;}
.community-proof-facts span{padding:16px 14px;background:#ffffff;min-width:0;}
.community-proof-facts b{display:block;font-size:13px;line-height:1.25;}
.community-proof-facts small{display:block;margin-top:5px;color:#ffffff;font-size:11px;font-weight:800;line-height:1.35;letter-spacing:.04em;}
.community-proof-media{position:relative;display:block;min-height:430px;overflow:hidden;border:1px solid #000000;box-shadow:16px 16px 0 var(--lf-violet);text-decoration:none;color:#fff;}
.community-proof-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .45s var(--lf-ease);}
.community-proof-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(0,0,0,.72));}
.community-proof-media>span,.community-proof-media>strong{position:absolute;z-index:2;bottom:20px;}
.community-proof-media>span{left:20px;display:grid;place-items:center;width:54px;height:54px;border:1px solid #fff;border-radius:50%;font-size:18px;}
.community-proof-media>strong{left:90px;bottom:31px;font-size:12px;letter-spacing:.12em;}
.community-proof-media:hover img{transform:scale(1.025);}

/* Academy: vera dashboard allievo dopo la verifica. */
.academy-member-dashboard{margin:28px 0 32px;padding:22px;border:1px solid rgba(20,207,255,.34);background:linear-gradient(135deg,rgba(20,207,255,.08),rgba(20,207,255,.08));box-shadow:10px 10px 0 rgba(20,207,255,.16);}
.academy-member-dashboard[hidden]{display:none!important;}
.academy-member-top{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;border-bottom:1px solid rgba(255,255,255,.12);padding-bottom:18px;}
.academy-member-top small{display:block;color:var(--lf-imola-cyan);font-size:11px;font-weight:900;letter-spacing:.13em;}
.academy-member-top h3{margin:7px 0 0;font:400 clamp(38px,4vw,58px)/.88 var(--display);color:#fff;}
.academy-member-status{flex:0 0 auto;padding:8px 10px;border:1px solid rgba(20,207,255,.55);color:var(--lf-yellow);font-size:11px;font-weight:900;letter-spacing:.08em;}
.academy-member-summary{display:grid;grid-template-columns:140px 1fr;gap:20px;padding-top:18px;align-items:center;}
.academy-member-summary small{display:block;color:#ffffff;font-size:11px;font-weight:900;letter-spacing:.12em;}
.academy-member-summary strong{display:block;margin-top:3px;color:#fff;font-size:34px;line-height:1;}
.academy-member-courses{display:flex;flex-wrap:wrap;gap:8px;}
.academy-member-courses span{padding:8px 10px;background:#fff;color:#000000;font-size:11px;font-weight:900;letter-spacing:.06em;}
.academy-change-account{margin-top:18px;min-height:44px!important;font-size:11px!important;}
.academy-track.is-authorized{border-color:rgba(20,207,255,.55)!important;box-shadow:0 0 0 1px rgba(20,207,255,.12),8px 8px 0 rgba(20,207,255,.10);}
.academy-track.is-authorized .academy-track-head strong{color:var(--lf-imola-cyan);}
.academy-lesson-row small,.academy-access-card>small,.academy-hero-lock>small{font-size:10px!important;}
.academy-lesson-row a{font-size:11px!important;min-height:44px;display:inline-flex;align-items:center;}

/* Reel: ogni poster è un file locale dedicato 9:16. */
.reel-local-poster img{transform:none!important;object-position:center!important;filter:saturate(.88) contrast(1.07) brightness(.72)!important;}
.reel-local-poster span{font-size:11px!important;}

/* Shop mobile definitivo: meno testo, più contesto e nessun microtesto illegibile. */
.shop-config-contextbar{display:none;}
@media(max-width:700px){
  .shop-config-contextbar{
    position:sticky;top:82px;z-index:12;display:grid;grid-template-columns:58px minmax(0,1fr) auto;gap:10px;align-items:center;
    min-height:72px;margin:-4px -4px 16px;padding:7px 10px;background:rgba(0,0,0,.96);border:1px solid rgba(255,255,255,.16);box-shadow:0 10px 22px rgba(0,0,0,.28);backdrop-filter:blur(10px);
  }
  .shop-config-contextbar::before{content:"";position:absolute;left:-1px;right:-1px;top:-1px;height:3px;background:var(--lf-gradient);}
  .shop-context-copy{min-width:0}.shop-context-copy small{display:block!important;margin:0 0 3px!important;color:#ffffff!important;font-size:10px!important;line-height:1.2!important;letter-spacing:.08em!important;}
  .shop-context-copy strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#fff;font-size:11px!important;line-height:1.25;}
  .shop-config-contextbar>b{color:#fff;font-size:18px;}
  .shop-context-shirt{position:relative;width:54px;height:62px;background:#000000;overflow:hidden;}
  .shop-context-shirt-base{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;}
  .shop-context-shirt-print{position:absolute;display:block;height:auto;transform:translate(-50%,-50%);}
  .shop-context-shirt[data-context-model="oversize"] .shop-context-shirt-print{width:39.6%;left:52.1%;top:31%;}
  .shop-context-shirt[data-context-model="cropped"] .shop-context-shirt-print{width:36.5%;left:54.8%;top:34.9%;}
  .shop-context-shirt[data-context-model="fitted"] .shop-context-shirt-print{width:29.8%;left:58.6%;top:36.9%;}
  .shop-context-shirt[data-context-color="black"] .shop-context-shirt-print{mix-blend-mode:screen;}
  .shop-context-shirt[data-context-color="white"] .shop-context-shirt-print{mix-blend-mode:multiply;}
  .shop-hat-contextbar>img{width:58px;height:58px;object-fit:contain;background:#000000;}

  /* Le card grafiche mostrano immagine + nome. La frase resta nel riepilogo selezionato. */
  .shop-design-choice{grid-template-columns:50px minmax(0,1fr)!important;min-height:62px!important;padding:7px!important;}
  .shop-design-choice img{width:50px!important;height:50px!important;}
  .shop-design-choice b{font-size:21px!important;line-height:.9!important;}
  .shop-design-choice small{display:none!important;}
  .shop-config-current-compact>small{font-size:10px!important;}
  .shop-config-current-compact h3{font-size:32px!important;}
  .shop-config-current-compact p{font-size:12px!important;line-height:1.35!important;white-space:normal!important;overflow:visible!important;text-overflow:clip!important;}
  .shop-config-step-head small{font-size:10px!important;}
  .shop-config-step-head strong{font-size:12px!important;line-height:1.25!important;}
  .shop-option-grid button b{font-size:12px!important;line-height:1.25!important;}
  .shop-option-grid button small{font-size:11px!important;}
  .shop-config-buy>div span{font-size:10px!important;line-height:1.3!important;}
  .shop-config-preview-badge{font-size:10px!important;}
  .shop-category-nav a{font-size:11px!important;}
  .shop-mobile-buybar-copy small{font-size:10px!important;}
  .shop-mobile-buybar-copy strong{font-size:11px!important;}
  .shop-mobile-buybar button{font-size:11px!important;}
  .shop-cart-item small,.shop-cart-foot>small,.shop-preorder-help,.shop-preorder-form label>span:first-child{font-size:10px!important;}
  .shop-cart-summary,.shop-cart-checkout,.shop-preorder-submit{font-size:11px!important;}
  .shop-cart-remove{font-size:10px!important;}

  /* Cappellini: foto grande 1:1 confermata; selezione subito sotto e contesto sticky. */
  .shop-hat-preview{width:100%!important;aspect-ratio:1/1!important;padding:10px!important;}
  .shop-hat-preview-img{width:100%!important;height:100%!important;object-fit:contain!important;}
}

@media(max-width:900px){
  :root{--lf-page-title:clamp(56px,17vw,82px);--lf-section-title:clamp(50px,15vw,66px);}
  .community-proof-grid{grid-template-columns:1fr;gap:34px;}
  .community-proof-media{min-height:56vw;box-shadow:10px 10px 0 var(--lf-violet);}
  .community-proof-facts{grid-template-columns:1fr;}
  .academy-member-top{display:grid;}.academy-member-status{justify-self:start;}
  .academy-member-summary{grid-template-columns:100px 1fr;}
}
@media(max-width:430px){
  .booking-step-progress{gap:6px}.booking-step-progress>span{font-size:10px;letter-spacing:.045em}.booking-step-progress>i{min-width:10px;}
  .shop-design-choice{grid-template-columns:46px minmax(0,1fr)!important;min-height:58px!important;}.shop-design-choice img{width:46px!important;height:46px!important;}.shop-design-choice b{font-size:19px!important;}
  .academy-member-dashboard{padding:16px}.academy-member-summary{grid-template-columns:1fr}.academy-member-courses{margin-top:2px;}
}
/* V183 correction — i comandi di avanzamento sono solo mobile. */
.booking-step-next{display:none!important;}
@media(max-width:700px){.booking-step-next{display:flex!important;align-items:center!important;justify-content:center!important;}}


/* ==========================================================
   V185 — REEL / ANTEPRIMA CLICCABILE
   Una qualunque cover locale diventa il consenso esplicito:
   click/tap -> caricamento embed Instagram.
   ========================================================== */
.reel-local-poster{
  cursor:pointer;
  outline:none;
}
.reel-local-poster::before{
  content:"▶";
  position:absolute;
  z-index:3;
  left:50%;
  top:50%;
  width:58px;
  height:58px;
  display:grid;
  place-items:center;
  transform:translate(-50%,-50%);
  border:1px solid rgba(255,255,255,.55);
  border-radius:50%;
  background:rgba(0,0,0,.72);
  color:#fff;
  font-size:22px;
  padding-left:4px;
  box-shadow:0 0 0 5px rgba(255,31,168,.12),0 10px 28px rgba(0,0,0,.35);
  transition:transform .2s ease,background .2s ease,box-shadow .2s ease;
}
.reel-local-poster:hover::before,
.reel-local-poster:focus-visible::before{
  transform:translate(-50%,-50%) scale(1.08);
  background:rgba(0,0,0,.9);
  box-shadow:0 0 0 6px rgba(20,207,255,.16),0 12px 30px rgba(0,0,0,.42);
}
.reel-local-poster:focus-visible{
  box-shadow:inset 0 0 0 3px rgba(20,207,255,.9);
}
.reel-local-poster.is-loading::before{
  content:"…";
  padding-left:0;
}
@media(max-width:900px){
  .reel-local-poster::before{width:52px;height:52px;font-size:20px;}
}


/* ==========================================================
   V186 — REEL / COVER REALI DA INSTAGRAM
   Screenshot delle anteprime fornite dall'utente, ritagliate 9:16.
   Nessun filtro scuro artificiale; click-to-load V185 preservato.
   ========================================================== */
.reel-local-poster img{
  filter:none!important;
  transform:none!important;
  object-position:center!important;
}
.reel-local-poster::after{
  background:linear-gradient(180deg,rgba(0,0,0,.015),rgba(0,0,0,.12))!important;
}
.reel-local-poster span{display:none!important;}

/* ==========================================================
   V187 — ACADEMY / LUCCHETTO AREA ALLIEVI SULLA DESTRA
   Il lucchetto non occupa più lo spazio del titolo: resta
   centrato verticalmente sul lato destro del riquadro.
   ========================================================== */
.academy-page .academy-hero-lock{
  padding-right:104px !important;
}
.academy-page .academy-hero-lock>span{
  left:auto !important;
  right:30px !important;
  top:50% !important;
  transform:translateY(-50%) !important;
  font-size:44px !important;
  line-height:1 !important;
  z-index:2;
}
.academy-page .academy-hero-lock>strong,
.academy-page .academy-hero-lock>small{
  max-width:100%;
  position:relative;
  z-index:1;
}
@media(max-width:900px){
  .academy-page .academy-hero-lock{
    padding-right:82px !important;
  }
  .academy-page .academy-hero-lock>span{
    right:22px !important;
    font-size:34px !important;
  }
}
@media(max-width:480px){
  .academy-page .academy-hero-lock{
    padding-right:72px !important;
  }
  .academy-page .academy-hero-lock>span{
    right:18px !important;
    font-size:30px !important;
  }
}



/* ==========================================================
   V188 — OPEN DAY / VALIDAZIONE COMPATTA MOBILE + DESKTOP
   Sostituisce i popup nativi del browser con messaggi controllati.
   ========================================================== */
.booking .booking-field-error{
  display:inline-flex;
  align-items:center;
  width:auto;
  max-width:min(100%,340px);
  margin:7px 0 0;
  padding:6px 9px;
  border:1px solid rgba(255,31,168,.42);
  border-radius:7px;
  background:rgba(0,0,0,.96);
  color:#fff;
  box-shadow:0 5px 14px rgba(0,0,0,.18);
  font-family:Arial,Helvetica,sans-serif;
  font-size:12px;
  font-weight:700;
  line-height:1.25;
  letter-spacing:0;
  text-transform:none;
  white-space:normal;
  position:relative;
  z-index:2;
}
.booking .booking-field-error::before{
  content:"";
  position:absolute;
  top:-5px;
  left:14px;
  width:8px;
  height:8px;
  background:rgba(0,0,0,.96);
  border-left:1px solid rgba(255,31,168,.42);
  border-top:1px solid rgba(255,31,168,.42);
  transform:rotate(45deg);
}
.booking input.booking-field-invalid,
.booking select.booking-field-invalid,
.booking textarea.booking-field-invalid{
  border-color:#ff1fa8!important;
  box-shadow:0 0 0 2px rgba(255,31,168,.12)!important;
}
.booking .booking-privacy>.booking-field-error{
  margin:4px 0 10px 34px;
}
.booking .booking-privacy>.booking-field-error::before{left:12px;}
@media(max-width:700px){
  .booking .booking-field-error{
    max-width:100%;
    margin-top:6px;
    padding:5px 8px;
    border-radius:6px;
    font-size:11px;
    line-height:1.2;
    box-shadow:0 4px 10px rgba(0,0,0,.16);
  }
  .booking .booking-privacy>.booking-field-error{
    margin-left:30px;
  }
}

/* ==========================================================
   V197 — FOTO STAFF CORSI / RIQUADRI PIÙ COMPATTI
   Il riquadro STAFF resta entro circa 1,5x un quick-fact normale
   (comunque ben sotto il limite massimo 2x richiesto). La sagoma
   resta interamente visibile e centrata fra nomi e bordo destro.
   ========================================================== */
.course-quickfacts.has-staff-photo{
  grid-template-columns:repeat(4,minmax(0,1fr));
}
.course-quickfacts.has-staff-photo .course-staff-fact{
  grid-column:1/-1;
  height:92px;
  min-height:92px;
  max-height:92px;
  padding:0 16px;
  display:flex;
  align-items:center;
  gap:16px;
  overflow:hidden;
}
.course-quickfacts.has-staff-photo .course-staff-copy{
  min-width:0;
  flex:0 0 auto;
  align-self:center;
  position:relative;
  z-index:2;
}
.course-quickfacts.has-staff-photo .course-staff-visual{
  min-width:0;
  flex:1 1 auto;
  align-self:stretch;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  overflow:hidden;
}
.course-quickfacts.has-staff-photo .course-staff-visual img{
  display:block;
  width:auto;
  height:auto;
  max-width:100%;
  max-height:calc(100% - 4px);
  object-fit:contain;
  object-position:center bottom;
  filter:drop-shadow(0 6px 12px rgba(0,0,0,.26));
}
@media(max-width:900px){
  .course-quickfacts.has-staff-photo{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .course-quickfacts.has-staff-photo .course-staff-fact{
    grid-column:1/-1;
    height:96px;
    min-height:96px;
    max-height:96px;
    padding:0 14px 0 16px;
    gap:10px;
  }
}
@media(max-width:430px){
  .course-quickfacts.has-staff-photo .course-staff-fact{
    height:92px;
    min-height:92px;
    max-height:92px;
    gap:8px;
  }
  .course-quickfacts.has-staff-photo .course-staff-copy{
    max-width:46%;
  }
}


/* ==========================================================
   V201 — SHOP / VALIDAZIONE COMPATTA + VISUAL MOBILE PULITI
   - niente popup nativo gigante "Compila questo campo"
   - errori piccoli sotto i campi, coerenti desktop/mobile
   - solo i riquadri immagine diventano bianchi su mobile
   ========================================================== */
.shop-field-error{
  display:block;
  margin:2px 0 0;
  color:#c31569;
  font:800 12px/1.35 var(--sans);
  letter-spacing:.01em;
}
.shop-preorder-form input.shop-field-invalid:not([type="checkbox"]),
.shop-preorder-form textarea.shop-field-invalid{
  border-color:#c31569!important;
  box-shadow:0 0 0 2px rgba(195,21,105,.10)!important;
}
.shop-preorder-form input[type="checkbox"].shop-field-invalid{
  outline:2px solid #c31569;
  outline-offset:2px;
}
.shop-form-consent + .shop-field-error{
  margin-top:-8px;
}

/* Le cornici prodotto restano parte dello Shop: non cambia nessuno sfondo del sito. */
@media(max-width:700px){
  .shop-field-error{
    font-size:11px;
    line-height:1.35;
  }

  .shop-shirts-config .shop-config-preview,
  .shop-hat-preview,
  .shop-bag-art{
    background:#fff!important;
  }

  .shop-shirts-config .shop-config-preview::after,
  .shop-hat-preview::after{
    background:none!important;
  }

  .shop-hat-configurator{
    background:#fff!important;
    border-color:#ffffff!important;
  }

  .shop-hat-preview{
    border-color:#ffffff!important;
  }

  .shop-hat-preview-img{
    background:#fff!important;
  }

  .shop-bag-art{
    min-height:0!important;
    aspect-ratio:auto!important;
  }

  .shop-bag-art img{
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    object-fit:contain!important;
    background:#fff!important;
  }

  .shop-shirt-base{
    background:#fff!important;
  }
}

/* ==========================================================
   V202 — SHOP / ANTEPRIME PRODOTTO PULITE COME IL VENTAGLIO
   Obiettivo: una sola superficie immagine, full-bleed e chiara,
   senza cornici/padding/fasce interne diverse tra desktop/mobile.
   ========================================================== */

/* Superficie immagine uniforme e neutra per tutti i prodotti. */
.shop-shirts-config .shop-config-preview,
.shop-hat-preview,
.shop-bag-art{
  background:#ffffff!important;
  border:0!important;
  box-shadow:none!important;
}
.shop-shirts-config .shop-config-preview::after,
.shop-hat-preview::after,
.shop-bag-art::after{
  display:none!important;
  background:none!important;
}

/* Cappellini: card esterna bianca come le altre schede prodotto,
   immagine senza riquadro nero interno. */
.shop-hat-configurator{
  background:#fff!important;
  border-color:#ffffff!important;
}
.shop-hat-configurator .shop-config-panel{
  background:#fff!important;
}
.shop-hat-preview{
  padding:0!important;
  overflow:hidden!important;
}
.shop-hat-preview-img{
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  max-height:none!important;
  object-fit:cover!important;
  object-position:center!important;
  background:#ffffff!important;
  display:block!important;
}
.shop-hat-contextbar>img{
  background:#ffffff!important;
}

/* Sacca: stessa logica del ventaglio, immagine completa su superficie chiara. */
.shop-bag-art{
  display:grid!important;
  place-items:center!important;
  overflow:hidden!important;
}
.shop-bag-art img{
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  object-position:center!important;
  background:#ffffff!important;
  display:block!important;
}

/* Magliette: il mockup occupa tutta la superficie disponibile;
   l'aspect-ratio resta quello calibrato, quindi la stampa non si sposta. */
.shop-shirts-config .shop-config-preview{
  overflow:hidden!important;
}
.shop-shirts-config .shop-shirt-base{
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  object-position:center!important;
  background:#ffffff!important;
}

@media(max-width:900px){
  /* Come il ventaglio: anteprima a tutta larghezza della card,
     senza il vecchio rettangolo più piccolo centrato dentro. */
  .shop-shirts-config .shop-config-preview,
  .shop-hat-preview{
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
  }

  /* Mantiene esattamente i rapporti dei mockup reali. */
  .shop-shirts-config .shop-config-preview[data-model="oversize"],
  .shop-shirts-config .shop-config-preview[data-model="cropped"]{
    aspect-ratio:4/5!important;
  }
  .shop-shirts-config .shop-config-preview[data-model="fitted"]{
    aspect-ratio:3/4!important;
  }
  .shop-hat-preview{
    aspect-ratio:1/1!important;
  }

  /* Niente stacco tra immagine e pannello configuratore. */
  .shop-shirt-configurator,
  .shop-hat-configurator{
    overflow:hidden!important;
  }

  /* Sacca: niente altezza artificiale, usa il rapporto reale della foto. */
  .shop-bag-art{
    min-height:0!important;
    aspect-ratio:1273/1236!important;
  }
  .shop-bag-art img{
    object-fit:cover!important;
  }
}

@media(max-width:430px){
  /* Su telefoni stretti resta full-bleed, senza reintrodurre padding. */
  .shop-shirts-config .shop-config-preview,
  .shop-hat-preview{
    margin:0!important;
    padding:0!important;
  }
}

/* ==========================================================
   V204 — CHI SIAMO / OMBRA HOME
   Ripristinato il layout originale della foto staff senza
   cornice o crop. Resta solo l'ombra colorata richiesta.
   ========================================================== */
.staff-section .staff-heading{
  isolation:isolate!important;
  text-shadow:none!important;
}
.staff-section .staff-heading span{
  position:relative!important;
  isolation:isolate!important;
  color:#000000!important;
  -webkit-text-fill-color:#000000!important;
  text-shadow:none!important;
}
.staff-section .staff-heading span::before{
  content:attr(data-shadow);
  position:absolute;
  inset:0;
  z-index:-1;
  transform:translateY(.115em);
  color:transparent;
  -webkit-text-fill-color:transparent;
  background:linear-gradient(90deg,var(--lf-yellow) 0%,var(--lf-fuchsia) 38%,var(--lf-imola-cyan) 64%,var(--lf-violet) 100%);
  -webkit-background-clip:text;
  background-clip:text;
  pointer-events:none;
}
@media(max-width:900px){
  .staff-section .staff-heading span::before{
    transform:translateY(.105em);
  }
}


/* V206 — Shop: richiesta merchandising riservata, non e-commerce */
.shop-members-notice{
  position:relative;z-index:3;display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:start;
  margin:0;padding:22px clamp(20px,6vw,96px);background:#fff;color:#000000;border-top:1px solid #ffffff;border-bottom:1px solid #ffffff;
}
.shop-members-notice-icon{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:#000000;color:#fff;font:900 12px/1 Inter,sans-serif;letter-spacing:.08em;box-shadow:4px 4px 0 var(--lf-fuchsia);}
.shop-members-notice strong{display:block;font-size:12px;line-height:1.35;letter-spacing:.06em;}
.shop-members-notice p{max-width:1100px;margin:7px 0 0;font-size:12px;line-height:1.6;color:#000000;}
.shop-members-notice p b{color:#000000;}
.shop-form-consent a{color:inherit;text-decoration:underline;text-underline-offset:2px;font-weight:900;}
.shop-footer-commerce-note{margin-top:10px;max-width:980px;font-size:9px;line-height:1.55;letter-spacing:.04em;color:#ffffff;}
.shop-footer-commerce-note strong{color:#fff;}
@media(max-width:700px){
  .shop-members-notice{grid-template-columns:1fr;padding:18px 16px;gap:12px;}
  .shop-members-notice-icon{width:40px;height:40px;}
  .shop-members-notice strong{font-size:11px;}
  .shop-members-notice p{font-size:11px;line-height:1.55;}
  .shop-footer-commerce-note{font-size:9px;line-height:1.5;}
}

/* ==========================================================
   V207 — Shop: nota discreta su anteprime generate/ritoccate IA
   ========================================================== */
.shop-ai-note{
  position:relative;z-index:3;display:flex;align-items:center;justify-content:center;gap:9px;
  margin:0;padding:10px clamp(20px,6vw,96px);background:#ffffff;color:#ffffff;
  border-bottom:1px solid #ffffff;font:500 10px/1.5 Inter,sans-serif;letter-spacing:.015em;text-align:center;
}
.shop-ai-note>span{
  flex:0 0 auto;display:grid;place-items:center;width:17px;height:17px;border:1px solid #ffffff;border-radius:50%;
  color:#ffffff;font-size:9px;font-weight:900;line-height:1;
}
.shop-ai-note p{margin:0;max-width:980px;}
@media(max-width:700px){
  .shop-ai-note{align-items:flex-start;padding:9px 16px;font-size:9px;line-height:1.45;text-align:left;}
  .shop-ai-note>span{margin-top:1px;}
}



/* ==========================================================
   V208 — Shop: partnership scarpe Panamio prima del merchandising
   ========================================================== */
.shop-partner-section{
  position:relative;z-index:2;padding:clamp(34px,5vw,72px) clamp(20px,6vw,96px);
  background:#000000;color:#fff;overflow:hidden;border-bottom:1px solid rgba(255,255,255,.12);
}
.shop-partner-section::before{
  content:"";position:absolute;inset:-35% -10% auto 34%;height:460px;opacity:.42;pointer-events:none;
  background:radial-gradient(circle at 25% 50%,rgba(255,42,165,.42),transparent 35%),radial-gradient(circle at 60% 45%,rgba(20,207,255,.34),transparent 34%),radial-gradient(circle at 80% 70%,rgba(20,207,255,.42),transparent 34%);filter:blur(24px);
}
.shop-partner-card{
  position:relative;z-index:1;max-width:1220px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);gap:clamp(30px,6vw,90px);align-items:center;
  padding:clamp(28px,4.5vw,62px);border:1px solid rgba(255,255,255,.18);background:rgba(0,0,0,.86);box-shadow:14px 14px 0 rgba(20,207,255,.25);
}
.shop-partner-copy .kicker{margin:0 0 12px;color:var(--lf-imola-cyan);}
.shop-partner-badge{display:inline-flex;align-items:center;margin:0 0 18px;padding:7px 10px;border:1px solid rgba(255,255,255,.22);font:900 9px/1 Inter,sans-serif;letter-spacing:.13em;color:#ffffff;}
.shop-partner-copy h2{margin:0;font:900 clamp(34px,5vw,68px)/.92 Inter,sans-serif;letter-spacing:-.055em;text-transform:uppercase;}
.shop-partner-copy h2 strong{display:inline-block;margin-top:8px;color:transparent;-webkit-text-fill-color:transparent;background:linear-gradient(90deg,var(--lf-yellow),var(--lf-fuchsia) 42%,var(--lf-imola-cyan) 78%);-webkit-background-clip:text;background-clip:text;}
.shop-partner-copy>p:not(.kicker){max-width:720px;margin:22px 0 0;color:#ffffff;font-size:14px;line-height:1.7;}
.shop-partner-copy>p b{color:#fff;}
.shop-partner-cta{display:inline-flex;align-items:center;justify-content:center;gap:18px;margin-top:24px;padding:17px 22px;background:#fff;color:#000000;text-decoration:none;font:900 12px/1 Inter,sans-serif;letter-spacing:.1em;box-shadow:7px 7px 0 var(--lf-fuchsia);transition:transform .18s ease,box-shadow .18s ease;}
.shop-partner-cta:hover{transform:translate(-2px,-2px);box-shadow:10px 10px 0 var(--lf-imola-cyan);}
.shop-partner-cta b{font-size:18px;line-height:0;}
.shop-partner-disclosure{display:block;max-width:760px;margin-top:18px;color:#ffffff;font:600 9px/1.55 Inter,sans-serif;letter-spacing:.02em;}
.shop-partner-visual{position:relative;min-height:330px;display:grid;place-items:center;isolation:isolate;}
.shop-partner-visual::before{content:"";position:absolute;width:min(320px,85%);aspect-ratio:1;border-radius:50%;border:22px solid transparent;background:linear-gradient(#000000,#000000) padding-box,conic-gradient(from 25deg,var(--lf-fuchsia),var(--lf-yellow),var(--lf-imola-cyan),var(--lf-violet),var(--lf-fuchsia)) border-box;transform:rotate(-9deg);filter:drop-shadow(0 20px 30px rgba(0,0,0,.5));}
.shop-partner-flow{position:absolute;z-index:-1;font:900 clamp(76px,10vw,150px)/1 Inter,sans-serif;letter-spacing:-.08em;color:rgba(255,255,255,.035);transform:rotate(-90deg);}
.shop-partner-discount{position:relative;z-index:2;display:grid;justify-items:center;padding:34px 22px;background:#fff;color:#000000;min-width:190px;box-shadow:10px 10px 0 var(--lf-imola-cyan);transform:rotate(3deg);}
.shop-partner-discount small{font:900 9px/1 Inter,sans-serif;letter-spacing:.18em;}
.shop-partner-discount strong{margin:7px 0 5px;font:1000 58px/.9 Inter,sans-serif;letter-spacing:-.07em;}
.shop-partner-discount span{font:900 10px/1 Inter,sans-serif;letter-spacing:.1em;color:var(--lf-violet);}
.shop-partner-brand{position:absolute;right:0;bottom:5px;font:900 15px/1 Inter,sans-serif;letter-spacing:.22em;color:#fff;}
@media(max-width:900px){
  .shop-partner-card{grid-template-columns:1fr;gap:18px;}
  .shop-partner-visual{min-height:260px;}
}
@media(max-width:700px){
  .shop-partner-section{padding:30px 16px 38px;}
  .shop-partner-card{padding:26px 18px;box-shadow:8px 8px 0 rgba(20,207,255,.25);}
  .shop-partner-copy h2{font-size:clamp(34px,11vw,48px);}
  .shop-partner-copy>p:not(.kicker){font-size:13px;line-height:1.6;}
  .shop-partner-cta{display:flex;width:100%;box-sizing:border-box;margin-top:20px;padding:16px 15px;}
  .shop-partner-disclosure{font-size:8.5px;line-height:1.5;}
  .shop-partner-visual{min-height:220px;}
  .shop-partner-visual::before{width:210px;border-width:16px;}
  .shop-partner-discount{min-width:160px;padding:28px 18px;}
  .shop-partner-discount strong{font-size:50px;}
  .shop-partner-brand{right:50%;bottom:-2px;transform:translateX(50%);white-space:nowrap;font-size:12px;}
}


/* ==========================================================
   V209 — Pana Mio: titolo leggibile, foto scarpe + richiamo Home
   ========================================================== */
.shop-partner-copy h2{
  max-width:100%;overflow:visible;font-family:var(--display)!important;font-weight:400!important;
  font-size:clamp(46px,5.5vw,78px);line-height:.88;letter-spacing:0;text-transform:uppercase;
}
.shop-partner-copy h2 .shop-title-main{display:block;padding:.02em 0 .08em;}
.shop-partner-copy h2 strong{
  display:flex;align-items:baseline;flex-wrap:wrap;gap:.06em .18em;margin-top:12px;padding:.06em 0 .12em;
  color:#fff!important;background:none!important;-webkit-text-fill-color:initial!important;overflow:visible;
  font-family:Inter,Arial,Helvetica,sans-serif!important;font-weight:950!important;line-height:1!important;letter-spacing:-.04em!important;
}
.shop-title-discount{
  display:inline-block;font-family:Inter,Arial,Helvetica,sans-serif!important;font-weight:950!important;
  font-size:clamp(58px,7.2vw,104px);line-height:.86;letter-spacing:-.065em;color:var(--lf-yellow);
}
.shop-title-discount-copy{
  display:inline-block;max-width:470px;font-family:Inter,Arial,Helvetica,sans-serif!important;font-weight:900!important;
  font-size:clamp(27px,3vw,44px);line-height:1.02;letter-spacing:-.035em;color:#fff;
}
.shop-partner-visual{min-height:390px;padding:24px 8px 32px;}
.shop-partner-visual::before{width:min(350px,88%);opacity:.9;}
.shop-partner-shoe-frame{
  position:relative;z-index:1;width:min(420px,94%);aspect-ratio:1/1;display:grid;place-items:center;overflow:hidden;
  background:#fff;border:1px solid rgba(255,255,255,.85);box-shadow:0 26px 48px rgba(0,0,0,.45);transform:rotate(-2deg);
}
.shop-partner-shoe{display:block;width:100%;height:100%;object-fit:cover;}
.shop-partner-discount{position:absolute;z-index:3;right:2%;bottom:38px;min-width:176px;padding:26px 18px;transform:rotate(3deg);}
.shop-partner-discount strong{font-family:Inter,Arial,Helvetica,sans-serif!important;font-weight:950!important;font-size:58px!important;line-height:.9!important;}
.shop-partner-brand{z-index:4;right:4px;bottom:5px;}

.home-panamio-section{
  position:relative;z-index:3;padding:clamp(54px,7vw,100px) clamp(20px,6vw,96px);overflow:hidden;
  background:radial-gradient(circle at 82% 30%,rgba(20,207,255,.18),transparent 30%),radial-gradient(circle at 12% 70%,rgba(255,42,165,.16),transparent 28%),#000000;
  border-top:1px solid rgba(255,255,255,.12);
}
.home-panamio-card{
  position:relative;max-width:1220px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.85fr);gap:clamp(28px,6vw,82px);align-items:center;
  padding:clamp(28px,4.5vw,58px);border:1px solid rgba(255,255,255,.18);background:rgba(0,0,0,.9);box-shadow:14px 14px 0 rgba(255,42,165,.18);
}
.home-panamio-copy .kicker{margin-bottom:12px;color:var(--lf-imola-cyan);}
.home-panamio-badge{display:inline-flex;margin-bottom:18px;padding:7px 10px;border:1px solid rgba(255,255,255,.22);font:900 9px/1 Inter,sans-serif;letter-spacing:.13em;color:#ffffff;}
.home-panamio-copy h2{margin:0;overflow:visible;font-family:var(--display)!important;font-weight:400!important;font-size:clamp(52px,6.3vw,92px);line-height:.82;letter-spacing:0;text-transform:uppercase;}
.home-panamio-copy h2>span{display:block;padding:.02em 0 .08em;}
.home-panamio-copy h2 strong{display:flex;align-items:baseline;flex-wrap:wrap;gap:.08em .18em;margin-top:8px;font-family:Inter,Arial,Helvetica,sans-serif!important;font-weight:900!important;font-size:clamp(30px,3.5vw,50px);line-height:1;letter-spacing:-.04em;color:#fff;}
.home-panamio-copy h2 strong b{font-family:Inter,Arial,Helvetica,sans-serif!important;font-weight:950!important;font-size:1.6em;line-height:.85;color:var(--lf-yellow);}
.home-panamio-copy>p:not(.kicker){max-width:680px;margin:22px 0 0;color:#ffffff;font-size:14px;line-height:1.7;}
.home-panamio-cta{display:inline-flex;align-items:center;justify-content:center;gap:18px;margin-top:24px;padding:17px 22px;background:#fff;color:#000000;text-decoration:none;font:900 11px/1 Inter,sans-serif;letter-spacing:.08em;box-shadow:7px 7px 0 var(--lf-fuchsia);transition:transform .18s ease,box-shadow .18s ease;}
.home-panamio-cta:hover{transform:translate(-2px,-2px);box-shadow:10px 10px 0 var(--lf-imola-cyan);}
.home-panamio-cta b{font-size:18px;line-height:0;}
.home-panamio-copy>small{display:block;max-width:620px;margin-top:16px;color:#ffffff;font:600 9px/1.5 Inter,sans-serif;}
.home-panamio-visual{position:relative;min-height:360px;display:grid;place-items:center;isolation:isolate;}
.home-panamio-visual::before{content:"";position:absolute;width:min(340px,86%);aspect-ratio:1;border-radius:50%;border:20px solid transparent;background:linear-gradient(#000000,#000000) padding-box,conic-gradient(from 25deg,var(--lf-fuchsia),var(--lf-yellow),var(--lf-imola-cyan),var(--lf-violet),var(--lf-fuchsia)) border-box;transform:rotate(8deg);opacity:.88;}
.home-panamio-shoe-frame{position:relative;z-index:1;width:min(400px,94%);aspect-ratio:1;overflow:hidden;background:#fff;box-shadow:0 26px 46px rgba(0,0,0,.48);transform:rotate(2deg);}
.home-panamio-shoe-frame img{display:block;width:100%;height:100%;object-fit:cover;}
.home-panamio-discount{position:absolute;z-index:2;left:0;bottom:22px;display:grid;justify-items:center;min-width:170px;padding:22px 18px;background:#fff;color:#000000;box-shadow:9px 9px 0 var(--lf-imola-cyan);transform:rotate(-3deg);}
.home-panamio-discount small{font:900 8px/1 Inter,sans-serif;letter-spacing:.13em;}
.home-panamio-discount strong{margin:6px 0 4px;font-family:Inter,Arial,Helvetica,sans-serif!important;font-weight:950!important;font-size:56px;line-height:.9;letter-spacing:-.06em;}
.home-panamio-discount span{font:900 10px/1 Inter,sans-serif;letter-spacing:.14em;color:var(--lf-violet);}

@media(max-width:900px){
  .home-panamio-card{grid-template-columns:1fr;gap:20px;}
  .home-panamio-visual{min-height:300px;}
  .shop-partner-visual{min-height:330px;}
}
@media(max-width:700px){
  .shop-partner-copy h2{font-size:clamp(43px,12.5vw,58px);line-height:.9;}
  .shop-partner-copy h2 strong{display:grid;grid-template-columns:auto 1fr;align-items:end;gap:.1em .18em;margin-top:8px;}
  .shop-title-discount{font-size:clamp(58px,17vw,78px);}
  .shop-title-discount-copy{font-size:clamp(22px,7vw,31px);line-height:1.02;}
  .shop-partner-visual{min-height:300px;padding:14px 0 34px;}
  .shop-partner-visual::before{width:245px;border-width:16px;}
  .shop-partner-shoe-frame{width:min(300px,94%);}
  .shop-partner-discount{right:0;bottom:22px;min-width:145px;padding:20px 14px;}
  .shop-partner-discount strong{font-size:48px!important;}
  .shop-partner-brand{right:50%;bottom:-2px;transform:translateX(50%);}

  .home-panamio-section{padding:38px 16px 44px;}
  .home-panamio-card{padding:26px 18px;box-shadow:8px 8px 0 rgba(255,42,165,.18);}
  .home-panamio-copy h2{font-size:clamp(48px,13vw,64px);line-height:.84;}
  .home-panamio-copy h2 strong{font-size:clamp(24px,7vw,32px);}
  .home-panamio-copy>p:not(.kicker){font-size:13px;line-height:1.6;}
  .home-panamio-cta{display:flex;width:100%;box-sizing:border-box;padding:16px 14px;font-size:10px;}
  .home-panamio-visual{min-height:290px;margin-top:4px;}
  .home-panamio-visual::before{width:235px;border-width:15px;}
  .home-panamio-shoe-frame{width:min(290px,94%);}
  .home-panamio-discount{left:-2px;bottom:8px;min-width:142px;padding:18px 12px;}
  .home-panamio-discount strong{font-size:46px;}
}
@media(max-width:390px){
  .shop-partner-copy h2 strong{grid-template-columns:1fr;gap:5px;align-items:start;}
  .shop-title-discount-copy{max-width:260px;font-size:26px;}
  .home-panamio-copy h2 strong{display:grid;grid-template-columns:auto 1fr;align-items:end;gap:.1em .16em;}
  .home-panamio-cta{letter-spacing:.055em;}
}


/* ==========================================================
   V210 — Pana Mio: sfondo Latin Flow + sezioni più compatte
   ========================================================== */
.shop-partner-section,
.home-panamio-section{
  background-color:#000000;
  background-image:linear-gradient(rgba(0,0,0,.30),rgba(0,0,0,.48)),url('bg-black-splashes.webp');
  background-repeat:no-repeat;
  background-position:center 37%;
  background-size:100% auto;
}
.shop-partner-section::before{opacity:.22;filter:blur(28px);}

.shop-partner-section{padding:clamp(30px,4vw,54px) clamp(18px,5vw,72px);}
.shop-partner-card{
  max-width:1080px;
  grid-template-columns:minmax(0,1.08fr) minmax(280px,.82fr);
  gap:clamp(24px,4vw,50px);
  padding:clamp(24px,3.2vw,40px);
  background:rgba(0,0,0,.78);
  backdrop-filter:blur(2px);
  box-shadow:10px 10px 0 rgba(20,207,255,.22);
}
.shop-partner-copy h2{font-size:clamp(42px,5vw,68px);}
.shop-title-discount{font-size:clamp(54px,6.5vw,88px);}
.shop-title-discount-copy{font-size:clamp(25px,2.7vw,38px);max-width:400px;}
.shop-partner-copy>p:not(.kicker){margin-top:17px;line-height:1.6;}
.shop-partner-cta{margin-top:19px;padding:15px 20px;}
.shop-partner-disclosure{margin-top:13px;}
.shop-partner-visual{min-height:310px;padding:12px 6px 24px;}
.shop-partner-visual::before{width:min(285px,82%);border-width:18px;}
.shop-partner-shoe-frame{width:min(340px,90%);}
.shop-partner-discount{right:1%;bottom:25px;min-width:154px;padding:20px 15px;}
.shop-partner-discount strong{font-size:50px!important;}
.shop-partner-brand{font-size:13px;}

.home-panamio-section{padding:clamp(32px,4.5vw,58px) clamp(18px,5vw,72px);}
.home-panamio-card{
  max-width:1080px;
  grid-template-columns:minmax(0,1.05fr) minmax(280px,.78fr);
  gap:clamp(24px,4vw,50px);
  padding:clamp(24px,3.2vw,40px);
  background:rgba(0,0,0,.78);
  backdrop-filter:blur(2px);
  box-shadow:10px 10px 0 rgba(255,42,165,.18);
}
.home-panamio-copy h2{font-size:clamp(46px,5.4vw,74px);line-height:.84;}
.home-panamio-copy h2 strong{font-size:clamp(27px,3vw,40px);}
.home-panamio-copy>p:not(.kicker){margin-top:17px;line-height:1.6;}
.home-panamio-cta{margin-top:19px;padding:15px 20px;}
.home-panamio-copy>small{margin-top:12px;}
.home-panamio-visual{min-height:300px;}
.home-panamio-visual::before{width:min(280px,82%);border-width:17px;}
.home-panamio-shoe-frame{width:min(330px,90%);}
.home-panamio-discount{left:2px;bottom:14px;min-width:150px;padding:18px 14px;}
.home-panamio-discount strong{font-size:49px;}

@media(max-width:900px){
  .shop-partner-section,.home-panamio-section{background-position:center 32%;background-size:auto 130%;}
  .shop-partner-card,.home-panamio-card{grid-template-columns:1fr;gap:14px;max-width:720px;}
  .shop-partner-visual{min-height:270px;}
  .home-panamio-visual{min-height:260px;}
}
@media(max-width:700px){
  .shop-partner-section,.home-panamio-section{padding:26px 14px 32px;background-position:center 28%;background-size:auto 115%;}
  .shop-partner-card,.home-panamio-card{padding:21px 16px;box-shadow:6px 6px 0 rgba(255,42,165,.18);}
  .shop-partner-copy h2{font-size:clamp(40px,11.5vw,52px);}
  .shop-title-discount{font-size:clamp(52px,15vw,68px);}
  .shop-title-discount-copy{font-size:clamp(21px,6.4vw,28px);}
  .shop-partner-copy>p:not(.kicker),.home-panamio-copy>p:not(.kicker){margin-top:14px;}
  .shop-partner-cta,.home-panamio-cta{margin-top:16px;padding:14px 13px;}
  .shop-partner-disclosure{margin-top:11px;}
  .shop-partner-visual{min-height:245px;padding:8px 0 26px;}
  .shop-partner-visual::before{width:205px;border-width:14px;}
  .shop-partner-shoe-frame{width:min(250px,88%);}
  .shop-partner-discount{bottom:16px;min-width:132px;padding:16px 11px;}
  .shop-partner-discount strong{font-size:43px!important;}

  .home-panamio-copy h2{font-size:clamp(43px,12vw,56px);}
  .home-panamio-copy h2 strong{font-size:clamp(22px,6.5vw,29px);}
  .home-panamio-visual{min-height:235px;margin-top:0;}
  .home-panamio-visual::before{width:200px;border-width:13px;}
  .home-panamio-shoe-frame{width:min(245px,88%);}
  .home-panamio-discount{left:0;bottom:5px;min-width:126px;padding:15px 10px;}
  .home-panamio-discount strong{font-size:41px;}
}

/* ==========================================================
   V211 — Pana Mio: sfondo schizzi sempre full-width/full-section
   ========================================================== */
.shop-partner-section,
.home-panamio-section{
  background-size:cover;
  background-position:center center;
  background-repeat:no-repeat;
}
@media(max-width:900px){
  .shop-partner-section,
  .home-panamio-section{
    background-size:cover;
    background-position:center center;
  }
}
@media(max-width:700px){
  .shop-partner-section,
  .home-panamio-section{
    background-size:cover;
    background-position:center center;
  }
}


/* V221 — Open Day: scelta inclusiva genere / ruolo di ballo */
.booking-role-note{
  margin:0 0 18px;
  padding:13px 14px 12px;
  border:2px solid #000000;
  border-left:6px solid var(--lf-cyan,#19d9ff);
  background:#fff;
  color:#000000;
  box-shadow:5px 5px 0 rgba(232,0,126,.18);
  font-size:11px;
  line-height:1.5;
}
.booking-role-note>strong{
  display:block;
  margin-bottom:5px;
  font-size:12px;
  font-weight:950;
  letter-spacing:.04em;
}
.booking-role-note span{display:block;font-weight:700;}
.booking-role-note b{font-weight:950;}
@media(max-width:700px){
  .booking-role-note{margin-bottom:14px;padding:11px 12px 10px;font-size:10.5px;line-height:1.45;}
  .booking-role-note>strong{font-size:11px;}
}


/* V223 — preview responsive del video di presentazione. Il play è già integrato nelle immagini. */
.school-video-placeholder{
  padding:0!important;
  isolation:isolate;
  background:#000000!important;
}
.school-video-placeholder::before{
  z-index:1;
  background:linear-gradient(180deg,transparent 48%,rgba(0,0,0,.10) 64%,rgba(0,0,0,.78) 100%)!important;
}
.school-video-picture{position:absolute;inset:0;display:block;z-index:0;}
.school-video-preview{width:100%;height:100%;display:block;object-fit:cover;object-position:center;}
.school-video-copy{
  position:relative;z-index:2;width:100%;padding:24px;align-self:flex-end;
  text-shadow:0 2px 14px rgba(0,0,0,.9);
}
.school-video-placeholder .media-glow,
.school-video-placeholder .play{display:none!important;}
.school-video-placeholder .media-more{margin-top:8px;display:block;}
.school-video-placeholder .school-video-status{font-weight:900;letter-spacing:.14em;color:#ffffff;}
@media(max-width:700px){
  .media-grid{grid-template-rows:auto 190px 190px;}
  .school-video-placeholder{min-height:calc((100vw - 36px) * 1.7778);max-height:720px;}
  .school-video-preview{object-fit:cover;object-position:center;}
  .school-video-copy{padding:20px;}
}

/* V224 — configuratore magliette: colore bianco temporaneamente sospeso */
.shop-config-row.shop-config-row-single{grid-template-columns:1fr!important;}


/* V225 — Presentazione scuola pulita + Shop: croppata aderente sospesa e taglie donna XS–XL */
.school-video-placeholder{
  position:relative;
  padding:0!important;
  background:#000000!important;
  min-height:0;
}
.school-video-placeholder::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:linear-gradient(180deg,transparent 68%,rgba(0,0,0,.48) 100%)!important;
}
.school-video-placeholder .school-video-preview{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  display:block;
  z-index:0;
}
.school-video-cta{position:static!important;z-index:3!important;}
.school-video-placeholder .school-video-status{
  position:absolute;
  right:24px;
  bottom:20px;
  z-index:4;
  margin:0!important;
  display:inline-flex!important;
  color:var(--lf-imola-cyan)!important;
  text-align:right;
  text-shadow:0 2px 12px rgba(0,0,0,.95);
}
.school-video-placeholder:hover .school-video-status b{transform:translateX(5px);}

/* Il modello aderente resta nel markup/codice per una riattivazione futura. */
.shop-model-options [data-shirt-model="fitted"][hidden]{display:none!important;}
@media(min-width:701px){
  .shop-model-options{grid-template-columns:repeat(2,minmax(0,1fr));}
}

/* Con cinque taglie: 3 sopra + 2 centrate sotto. */
.shop-config-sizes.is-five-sizes{
  display:grid!important;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:7px!important;
  justify-content:stretch!important;
}
.shop-config-sizes.is-five-sizes button{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  flex:none!important;
}
.shop-config-sizes.is-five-sizes button:nth-child(1){grid-column:1/3;}
.shop-config-sizes.is-five-sizes button:nth-child(2){grid-column:3/5;}
.shop-config-sizes.is-five-sizes button:nth-child(3){grid-column:5/7;}
.shop-config-sizes.is-five-sizes button:nth-child(4){grid-column:2/4;}
.shop-config-sizes.is-five-sizes button:nth-child(5){grid-column:4/6;}

@media(max-width:700px){
  .school-video-placeholder{
    aspect-ratio:16/9;
    min-height:0!important;
    max-height:none!important;
  }
  .school-video-placeholder .school-video-status{right:18px;bottom:16px;font-size:9px;}
  .shop-config-sizes.is-five-sizes{gap:6px!important;}
}


/* ==========================================================
   V226 — BIO INSEGNANTI + DIREZIONE ARTISTICA
   Bio compatte nelle pagine corso; Jessica Tacchi in Chi siamo.
   ========================================================== */
.course-teacher-bios{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin:18px 0 0;
}
.course-teacher-bio{
  min-width:0;
  padding:18px 18px 17px;
  background:rgba(0,0,0,.94);
  border:1px solid rgba(255,255,255,.11);
  box-shadow:0 12px 28px rgba(0,0,0,.12);
}
.course-teacher-name{
  display:block;
  margin:0 0 9px;
  color:var(--lf-imola-cyan);
  font:900 12px/1.1 var(--body);
  letter-spacing:.16em;
  text-transform:uppercase;
}
.course-teacher-bio p{
  margin:0;
  color:#ffffff;
  font:500 13px/1.62 var(--body);
}
@media(max-width:700px){
  .course-teacher-bios{grid-template-columns:1fr;gap:10px;margin-top:14px;}
  .course-teacher-bio{padding:16px;}
  .course-teacher-bio p{font-size:12.5px;line-height:1.6;}
}

.artistic-direction{
  position:relative;
  overflow:hidden;
  isolation:isolate;
  background:#000000 url('bg-black-splashes.webp') center/cover no-repeat;
  color:#fff;
  border-top:1px solid #ffffff12;
  border-bottom:1px solid #ffffff12;
}
.artistic-direction::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:linear-gradient(90deg,rgba(0,0,0,.12),rgba(0,0,0,.62) 55%,rgba(0,0,0,.85));
  pointer-events:none;
}
.artistic-direction-inner{
  width:min(1240px,calc(100% - 40px));
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(320px,.82fr) minmax(0,1.18fr);
  gap:clamp(28px,5vw,78px);
  align-items:end;
  padding:clamp(58px,7vw,92px) 0 0;
}
.artistic-direction-visual{
  align-self:end;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  min-height:560px;
}
.artistic-direction-visual img{
  display:block;
  width:min(100%,680px);
  height:auto;
  max-height:760px;
  object-fit:contain;
  object-position:center bottom;
  filter:drop-shadow(0 22px 38px rgba(0,0,0,.52));
}
.artistic-direction-copy{
  align-self:center;
  padding:0 0 clamp(58px,7vw,92px);
  max-width:720px;
}
.artistic-direction-copy .kicker{color:#ffffff;margin-bottom:14px;}
.artistic-direction-title{
  margin:0;
  font:400 clamp(50px,6vw,86px)/.82 var(--display);
  letter-spacing:-.02em;
  text-transform:uppercase;
}
.artistic-direction-title span,.artistic-direction-title strong{display:block;}
.artistic-direction-title span{color:#fff;}
.artistic-direction-title strong{color:var(--lf-fuchsia);font-weight:400;}
.artistic-direction-name{
  margin:22px 0 22px;
  padding:14px 0 14px 16px;
  border-left:4px solid var(--lf-imola-cyan);
}
.artistic-direction-name span{
  display:block;
  color:#fff;
  font:900 18px/1.15 var(--body);
  letter-spacing:.06em;
}
.artistic-direction-name small{
  display:block;
  margin-top:5px;
  color:var(--lf-imola-cyan);
  font:800 11px/1.35 var(--body);
  letter-spacing:.08em;
  text-transform:uppercase;
}
.artistic-direction-bio{
  display:grid;
  gap:10px;
}
.artistic-direction-bio p{
  margin:0;
  color:#ffffff;
  font:500 13px/1.68 var(--body);
}
@media(max-width:900px){
  .artistic-direction-inner{
    width:calc(100% - 36px);
    grid-template-columns:1fr;
    gap:0;
    padding-top:52px;
  }
  .artistic-direction-copy{order:1;padding:0 0 24px;max-width:none;}
  .artistic-direction-visual{order:2;min-height:0;margin-top:4px;}
  .artistic-direction-visual img{width:min(100%,620px);max-height:none;}
  .artistic-direction-title{font-size:clamp(48px,14vw,72px);}
  .artistic-direction-name{margin:18px 0;}
  .artistic-direction-bio p{font-size:12.5px;line-height:1.62;}
}
@media(max-width:520px){
  .artistic-direction-inner{width:calc(100% - 30px);padding-top:44px;}
  .artistic-direction-title{font-size:clamp(44px,15.2vw,64px);}
  .artistic-direction-name span{font-size:16px;}
  .artistic-direction-visual img{width:112%;max-width:none;margin-left:-6%;}
}


/* ==========================================================
   V227 — CHI SIAMO: NUOVA FOTO STAFF + BIO JESSICA BIANCA
   Nuova foto trasparente Latin Flow Staff.
   Testo curriculum Direzione Artistica ad alto contrasto.
   ========================================================== */
.artistic-direction-bio p{
  color:#fff!important;
}

/* La nuova foto è verticale: su desktop resta centrata e leggibile,
   su mobile sfrutta tutta la larghezza senza crop o deformazioni. */
.staff-section .staff-photo img[src="staff-latin-flow-v227.webp"]{
  width:auto!important;
  max-width:min(100vw, 980px)!important;
  max-height:1120px!important;
  height:auto!important;
  margin:0 auto!important;
}
@media(max-width:900px){
  .staff-section .staff-photo img[src="staff-latin-flow-v227.webp"]{
    width:100vw!important;
    max-width:100vw!important;
    max-height:none!important;
  }
}


/* ==============================================================
   V233 — PALETTE UFFICIALE, STESSO LOGO IN TUTTO IL SITO
   Nero + bianco + fucsia + celeste. Le sfumature gia conformi
   non vengono sostituite. Nessuna modifica a layout o funzioni.
   ============================================================== */
:root{
  --bg:#000;--panel:#000;--text:#fff;--muted:rgba(255,255,255,.75);
  --pink:#ff1fa8;--cyan:#14cfff;--orange:#ff1fa8;--yellow:#14cfff;--green:#14cfff;
  --lf-bg:#000;--lf-surface:#000;--lf-surface-2:#000;
  --lf-text:#fff;--lf-muted:rgba(255,255,255,.75);
  --lf-yellow:#14cfff;--lf-orange:#ff1fa8;--lf-violet:#ff1fa8;
  --lf-pink:#ff1fa8;--lf-cyan:#14cfff;--lf-fuchsia:#ff1fa8;--lf-imola-cyan:#14cfff;
  --lf-gradient:linear-gradient(90deg,#ff1fa8 0%,#14cfff 52%,#ff1fa8 100%);
}
/* Il logo e a colori: non applicare filtri monocromatici ai suoi utilizzi. */
.nav-brand img,.hero-logo,.footer-brand img,.shop-hero-mark img,
.lf-level-avatar img {filter:none!important;}
.hero-logo{filter:drop-shadow(0 24px 50px rgba(0,0,0,.5))!important;}
/* I pennelli decorativi SVG sono ora fucsia e celeste. */
.paint-layer{filter:none!important;}
/* Miglioramento del contrasto per testi su sezioni chiare. */
.flow-section,.flow-section .flow-copy>p:last-of-type,.flow-section .kicker{color:#000;}
.flow-section .display-small strong{color:#ff1fa8;}
/* Distinzione visiva delle superfici pur utilizzando solo bianco/nero. */
.course-card,.shop-step,.academy-track,.course-teacher-bio{
  border-color:rgba(255,255,255,.18);
}

/* V233 — leggibilita nelle schede e nei moduli con fondo bianco. */
.shop-section-light .kicker,
.shop-section-light .shop-product-card:not(.shop-dark-card) .shop-product-info small,
.shop-section-light .shop-product-card:not(.shop-dark-card) .shop-product-info p,
.shop-section-light .shop-product-card:not(.shop-dark-card) .shop-product-meta span,
.shop-product-card:not(.shop-dark-card) .shop-product-info small,
.shop-product-card:not(.shop-dark-card) .shop-product-info p,
.shop-product-card:not(.shop-dark-card) .shop-product-meta span,
.shop-feature-product .shop-feature-copy small,
.booking .optional,.booking>small{color:#000!important;}
.booking input,.booking select,.booking textarea{border-bottom-color:rgba(0,0,0,.4);}
.footer-bottom{color:#fff;}
.shop-product-card:not(.shop-dark-card){border-color:rgba(0,0,0,.15);}
/* Il marchio nello Shop resta a colori, anche nei segnaposto. */
.shop-placeholder img,.shop-placeholder-dark img,.shop-feature-art img{filter:none!important;}


/* ==============================================================
   V234 — wallpaper responsive Latin Flow (tutte le pagine)
   Desktop: latin-flow-bg-desktop.svg (1920x1080)
   Mobile / tablet verticale: latin-flow-bg-mobile.svg (900x1600)
   Lo sfondo e' ancorato al viewport: resta visibile durante tutto
   lo scroll, fino al footer, senza stirare la grafica vettoriale.
   Nessuna modifica alle immagini, ai pulsanti o ai componenti.
   ============================================================== */
html {
  min-height: 100%;
  background-color: #000 !important;
}
body {
  position: relative;
  isolation: isolate;
  min-height: 100vh;
  background: transparent !important;
}
body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background-color: #000;
  background-image: url("latin-flow-bg-desktop.svg");
  background-position: center center;
  background-size: cover;
  background-repeat: no-repeat;
}
/* I wrapper non devono coprire il disegno di fondo. */
body main,
body main[class] {
  background-color: transparent !important;
  background-image: none !important;
}
/* La texture unica emerge da ogni sezione, con un velo scuro
   che protegge la leggibilita' dei contenuti bianchi. */
body main > section[class][class][class][class] {
  background: rgba(0, 0, 0, .28) !important;
}
/* Sezioni originariamente chiare: mantengono il testo scuro,
   ma lasciano intravedere discretamente lo sfondo sottostante. */
body main > section.flow-section[class][class][class],
body main > section.marquee[class][class][class],
body main > section.faq-section[class][class][class],
body main > section.academy-how[class][class][class],
body main > section.room-features[class][class][class],
body main > section.shop-members-notice[class][class][class],
body main > section.shop-section-light[class][class][class] {
  background: rgba(255, 255, 255, .92) !important;
}
/* Alcune sezioni e componenti hanno un nome di classe poco comune.
   Questo overlay trasparente va applicato anche a sezioni senza classi. */
body main > section:not([class]) {
  background: rgba(0, 0, 0, .28) !important;
}
/* Footer leggibile, ma con il nuovo sfondo visibile fino in fondo. */
body > footer,
body > footer[class] {
  background: rgba(0, 0, 0, .66) !important;
}
body > footer::before,
body > footer[class]::before {
  background: none !important;
}
@media (max-width: 767px), (max-aspect-ratio: 3/4) {
  body::before {
    background-image: url("latin-flow-bg-mobile.svg");
    background-position: center center;
  }
}

/* ==============================================================
   V235 — Banner e intestazioni aggiornati su base V234
   Sfondi SVG responsive: stesso wallpaper del sito.
   Opacita solo sul livello decorativo: scritte e controlli nitidi.
   Tutti gli altri effetti, inclusi text-shadow preesistenti, invariati.
   ============================================================== */

/* Barra superiore desktop / smartphone: il nuovo wallpaper occupa
   lo pseudo-elemento, separato dai controlli dell'intestazione. */
.nav {
  background-color: rgba(0,0,0,.12) !important;
  background-image: none !important;
}
.nav::after {
  background: url('latin-flow-bg-desktop.svg') center center / cover no-repeat !important;
  opacity: .86 !important;
}

/* Fasce animate Salsa/Bachata: si vede il wallpaper sotto al testo,
   senza rendere trasparente il contenuto o fermare la marquee. */
body main > section.marquee[class][class][class],
body main > section.detail-band[class][class][class],
body main > section.detail-band[class] {
  position: relative;
  isolation: isolate;
  background: rgba(0,0,0,.12) !important;
  color: #fff !important;
}
.marquee::before,
.detail-band::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background: url('latin-flow-bg-desktop.svg') center center / cover no-repeat;
  opacity: .86;
}
.marquee .marquee-track,
.detail-band .marquee-track {
  position: relative;
  z-index: 1;
}
.marquee .marquee-track,
.marquee .marquee-track span,
.marquee .marquee-track b,
.detail-band .marquee-track,
.detail-band .marquee-track span,
.detail-band .marquee-track b {
  color: #fff !important;
}
@media (max-width: 767px), (max-aspect-ratio: 3/4) {
  .nav::after,
  .marquee::before,
  .detail-band::before {
    background-image: url('latin-flow-bg-mobile.svg') !important;
    background-position: center center !important;
  }
}

/* Colori dei titoli. Nessuna sovrascrittura delle loro ombre. */
.hero-copy .display .vivi-fuchsia {
  color: var(--lf-imola-cyan) !important;
  -webkit-text-fill-color: var(--lf-imola-cyan) !important;
}
.hero-copy .display .il-cyan {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
}
.hero-copy .display > strong {
  color: var(--lf-fuchsia) !important;
  -webkit-text-fill-color: var(--lf-fuchsia) !important;
}
.open-copy .display-small .entra-cyan {
  color: var(--lf-imola-cyan) !important;
  -webkit-text-fill-color: var(--lf-imola-cyan) !important;
}
.open-copy .display-small .nel-cyan {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
}
.open-copy .display-small > strong {
  color: var(--lf-fuchsia) !important;
  -webkit-text-fill-color: var(--lf-fuchsia) !important;
}
.experience .display-small .energy-cyan {
  color: var(--lf-fuchsia) !important;
  -webkit-text-fill-color: var(--lf-fuchsia) !important;
}
.faq-section .kicker {
  color: #000 !important;
  -webkit-text-fill-color: #000 !important;
}

/* Academy Online: il testo LA LEZIONE riceve un'ombra celeste.
   CONTINUA diventa bianco; l'ombra gia esistente rimane invariata. */
.academy-preview-copy .academy-lesson-shadow,
.academy-page .academy-title .academy-lesson-shadow {
  text-shadow: 6px 6px 0 var(--lf-imola-cyan) !important;
}
.academy-preview-copy #academy-preview-title > strong,
.academy-page .academy-title > strong {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
}
@media (max-width: 900px) {
  .academy-preview-copy .academy-lesson-shadow,
  .academy-page .academy-title .academy-lesson-shadow {
    text-shadow: 4px 4px 0 var(--lf-imola-cyan) !important;
  }
}


/* ===============================================================
   V236 — Chi siamo: Michele & Silvia / fit titolo prenotazione
   Le foto mantengono inalterati volti, pose, scontorno e colori.
   Le bio sono quelle già presenti nella pagina Bachata Sensual.
   Le regole interessano soltanto le classi aggiunte in V236.
   =============================================================== */

/* Form di prenotazione: linee controllate dentro al modulo,
   senza modificare il font, le ombre o gli altri campi. */
.booking-head > strong.booking-fit-title {
  display: block;
  max-width: 100%;
  font-size: clamp(25px,2.65vw,35px);
  line-height: 1.02;
  letter-spacing: .004em;
  overflow-wrap: normal;
  word-break: normal;
}
.booking-head > .booking-fit-title > span {display:block;max-width:100%;}
/* Descrizione associata al titolo: nero su fondo bianco per leggibilita. */
#open-day .booking-head > small {color:#000 !important;}
@media (max-width:900px) {
  .booking-head > strong.booking-fit-title {
    font-size: clamp(22px,6.9vw,32px);
    line-height:1.04;
  }
}
@media (max-width:370px) {
  .booking-head > strong.booking-fit-title { font-size:22px; }
}

/* Nuova sezione maestri: figure scontornate sopra lo stesso wallpaper
   che attraversa tutte le pagine. Nessuna cornice sulle fotografie. */
.maestri-section {
  position:relative;
  z-index:0;
  isolation:isolate;
  overflow:hidden;
  color:#fff;
  padding:clamp(66px,7vw,105px) 20px clamp(56px,5vw,90px);
  border-top:1px solid rgba(255,255,255,.14);
  border-bottom:1px solid rgba(255,255,255,.14);
}
.maestri-section::before {
  content:"";
  position:absolute;
  z-index:-1;
  inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,.24),rgba(0,0,0,.55) 55%,rgba(0,0,0,.2));
  pointer-events:none;
}
.maestri-wrap {position:relative; width:min(1200px,100%);margin:0 auto;}
.maestri-heading {text-align:center; position:relative; z-index:2;}
.maestri-heading .kicker {color:#fff;margin:0 0 17px;}
.maestri-title {
  margin:0;
  font:400 clamp(52px,7vw,102px)/.83 var(--display);
  letter-spacing:-.015em;
  text-transform:uppercase;
  text-shadow:5px 5px 0 #000;
}
.maestri-title span, .maestri-title strong {display:block;font-weight:400;}
.maestri-title span {color:var(--lf-imola-cyan);}
.maestri-title strong {color:var(--lf-fuchsia);}
.maestri-subtitle {
  font:900 clamp(13px,1.65vw,19px)/1.4 var(--body);
  color:#fff;
  letter-spacing:.22em;
  margin:23px 0 0;
}
.maestri-subtitle span {color:var(--lf-imola-cyan);}
.maestri-main {
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
  gap:clamp(20px,4vw,62px);
  align-items:center;
  margin-top:clamp(20px,3vw,45px);
}
.maestri-portrait {
  margin:0;
  position:relative;
  z-index:1;
  display:flex;
  justify-content:center;
  align-items:flex-end;
  min-width:0;
}
.maestri-portrait::before {
  content:"";
  position:absolute;
  z-index:-1;
  width:75%;height:75%;left:14%;top:12%;
  border-radius:50%;
  background:radial-gradient(ellipse,rgba(20,207,255,.20),rgba(255,31,168,.10) 44%,transparent 72%);
  filter:blur(18px);
}
.maestri-portrait img {
  display:block;
  width:min(100%,540px);
  height:auto;
  max-height:640px;
  object-fit:contain;
  object-position:center bottom;
  filter:drop-shadow(0 18px 24px rgba(0,0,0,.46));
}
.maestri-bios {
  align-self:center;
  display:grid;
  gap:30px;
  padding:22px 16px 22px 0;
}
.maestri-bio {padding-left:20px;border-left:4px solid var(--lf-imola-cyan);}
.maestri-bio-silvia {border-color:var(--lf-fuchsia);}
.maestri-bio h3 {
  margin:0 0 11px;
  font:900 clamp(20px,2.2vw,27px)/1.13 var(--body);
  letter-spacing:.095em;
  color:var(--lf-imola-cyan);
}
.maestri-bio-silvia h3 {color:var(--lf-fuchsia);}
.maestri-bio p {
  margin:0;
  font:500 14px/1.75 var(--body);
  color:#fff;
  max-width:550px;
  text-wrap:pretty;
  text-shadow:0 1px 5px rgba(0,0,0,.8);
}
.maestri-motion {
  position:relative;
  display:grid;
  grid-template-columns:1fr 1fr;
  align-items:end;
  justify-items:center;
  gap:clamp(4px,2vw,32px);
  margin:0 auto;
  max-width:1080px;
}
.maestri-motion-shot {
  position:relative;
  margin:0;
  width:100%;
  min-width:0;
  display:flex;
  align-items:flex-end;
  justify-content:center;
}
.maestri-motion-shot::before {
  content:"";
  position:absolute;
  z-index:-1;
  width:80%;height:55%;bottom:12%;left:10%;
  border-radius:50%;
  background:radial-gradient(ellipse,rgba(255,31,168,.16),transparent 72%);
  filter:blur(19px);
}
.maestri-motion-sensual::before {background:radial-gradient(ellipse,rgba(20,207,255,.18),transparent 72%);}
.maestri-motion-shot img {
  display:block;
  width:100%;max-width:490px;
  height:auto;max-height:540px;
  object-fit:contain;object-position:center bottom;
  filter:drop-shadow(0 18px 25px rgba(0,0,0,.45));
}
@media (max-width:900px) {
  .maestri-section {padding:62px 20px 48px;}
  .maestri-main {grid-template-columns:1fr;gap:0;margin-top:14px;}
  .maestri-portrait {order:1;}
  .maestri-portrait img {width:min(100%,520px);max-height:none;}
  .maestri-bios {order:2; padding:16px 8px 28px; gap:24px;}
  .maestri-bio p {font-size:13px;line-height:1.7;}
  .maestri-motion {gap:6px;}
  .maestri-motion-shot img {max-height:400px;}
}
@media (max-width:520px) {
  .maestri-section {padding:53px 15px 37px;}
  .maestri-title {font-size:clamp(46px,12.7vw,67px);text-shadow:3px 3px 0 #000;}
  .maestri-heading .kicker {font-size:9px;letter-spacing:.12em;}
  .maestri-subtitle {font-size:12px;letter-spacing:.15em;margin-top:19px;}
  .maestri-portrait img {width:100%;max-width:390px;}
  .maestri-bios {padding:8px 2px 24px;gap:24px;}
  .maestri-bio {padding-left:14px;border-left-width:3px;}
  .maestri-bio h3 {font-size:19px;margin-bottom:8px;}
  .maestri-bio p {font-size:12.5px;line-height:1.68;}
  .maestri-motion {gap:3px;}
  .maestri-motion-shot img {max-height:none;}
}


/* ===============================================================
   V238 — Menu mobile: striscia superiore come quella inferiore.
   La precedente texture !important sovrascriveva il gradiente;
   si ripristina SOLO il bordo alto, senza toccare menu o animazioni.
   =============================================================== */
@media (max-width:900px) {
  .mobile-menu::before {
    background: var(--lf-gradient) !important;
    opacity: 1 !important;
    height: 5px !important;
    top: 0 !important;
    bottom: auto !important;
    z-index: 3 !important;
  }
}

/* V239 — FAQ: link di contatto e prenotazione nel colore ufficiale Latin Flow. */
.faq-list details p a,
.faq-list details p a:visited {
  color: var(--lf-fuchsia, #f600a8);
  font-weight: 900;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.faq-list details p a:hover,
.faq-list details p a:focus-visible {
  color: var(--lf-imola-cyan, #00dfff);
}


/* ===============================================================
   V240 — Latin Flow Experience: tre card, due segnaposto inattivi.
   La Sala resta invariata; per Momenti ed Energia nessun link,
   titolo, foto o descrizione, solo la CTA celeste in basso a destra.
   Lo spazio vuoto della vecchia seconda riga viene eliminato;
   l'Academy Online viene avvicinata senza toccarne i contenuti.
   =============================================================== */
#experience .media-grid {
  grid-template-columns: repeat(3,minmax(0,1fr));
  grid-template-rows: minmax(0,260px);
  gap: 14px;
}
#experience .placeholder-media-card {
  position:relative;
  min-height:0;
  background:#000 !important;
  background-image:none !important;
  border:1px solid rgba(255,255,255,.18);
  box-shadow:none;
  cursor:default;
  pointer-events:none;
}
#experience .placeholder-media-card::before,
#experience .placeholder-media-card::after { content:none !important; }
#experience .placeholder-media-card .media-more {
  position:absolute;
  right:24px;
  bottom:20px;
  margin:0;
  color:var(--lf-imola-cyan) !important;
  text-align:right;
  font-size:10px;
  font-weight:900;
  letter-spacing:.14em;
  pointer-events:none;
}
#experience .placeholder-media-card .media-more b {transform:none !important;}
/* Riduzione del solo intervallo tra Experience e Academy Online. */
#experience.section { padding-bottom:clamp(28px,3vw,42px); }
#academy-preview.section { padding-top:clamp(28px,3vw,42px) !important; }
@media (max-width:900px) {
  #experience .media-grid {
    grid-template-columns:minmax(0,1fr);
    grid-template-rows:repeat(3,190px);
    gap:12px;
  }
  #experience.section { padding-bottom:22px; }
  #academy-preview.section { padding-top:28px !important; }
  #experience .placeholder-media-card .media-more {right:20px;bottom:18px;}
}


/* ===============================================================
   V241 — Due card Experience: Momenti dinamici / Serate in attesa.
   Base V240 intatta. Ogni slide dura 2,5 s, dissolvenza circa 0,75 s.
   Centrature verticali individuali evitano di tagliare i volti nei
   riquadri orizzontali; i file originali non vengono modificati.
   =============================================================== */
#experience .momenti-media-card {
  position:relative;
  isolation:isolate;
  display:block;
  padding:0;
  color:#fff;
  background:#000;
  text-decoration:none;
  cursor:pointer;
  transition:border-color .25s ease,transform .25s ease;
}
#experience .momenti-media-card:hover {
  border-color:var(--lf-imola-cyan);
  transform:translateY(-4px);
}
#experience .momenti-media-card:focus-visible {
  outline:3px solid var(--lf-imola-cyan);
  outline-offset:4px;
}
#experience .momenti-media-card::before { content:none !important; }
#experience .momenti-media-card::after {
  content:"";
  position:absolute;
  z-index:1;
  inset:0;
  pointer-events:none;
  background:linear-gradient(180deg,rgba(0,0,0,.78) 0%,rgba(0,0,0,.19) 43%,rgba(0,0,0,.17) 62%,rgba(0,0,0,.86) 100%);
}
#experience .momenti-card-slides {
  position:absolute;
  inset:0;
  overflow:hidden;
  z-index:0;
}
#experience .momenti-slide {
  display:block;
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  opacity:0;
  animation:lfMomentiSlide 12.5s linear infinite;
  pointer-events:none;
  -webkit-user-drag:none;
}
/* Prima immagine disponibile anche nell'intervallo iniziale di caricamento. */
#experience .momenti-slide:nth-child(1) {opacity:1;animation-delay:0s;object-position:50% 27%;}
#experience .momenti-slide:nth-child(2) {animation-delay:-10s;object-position:50% 36%;}
#experience .momenti-slide:nth-child(3) {animation-delay:-7.5s;object-position:50% 29%;}
#experience .momenti-slide:nth-child(4) {animation-delay:-5s;object-position:50% 34%;}
#experience .momenti-slide:nth-child(5) {animation-delay:-2.5s;object-position:50% 46%;}
@keyframes lfMomentiSlide {
  0%,14% {opacity:1;}
  20%,94% {opacity:0;}
  100% {opacity:1;}
}
#experience .momenti-card-copy {
  position:absolute;
  z-index:2;
  inset:0;
  padding:22px 20px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  pointer-events:none;
}
#experience .momenti-card-copy strong {
  display:block;
  max-width:100%;
  font-family:var(--display);
  font-size:clamp(29px,2.65vw,38px);
  line-height:.92;
  color:#fff;
  text-shadow:2px 3px 0 rgba(255,31,168,.8);
}
#experience .momenti-card-copy small {
  display:block;
  margin-top:7px;
  color:#fff;
  font:600 10px/1.4 var(--body);
  letter-spacing:.02em;
  text-shadow:0 2px 4px #000;
}
#experience .momenti-card-copy .media-more {
  position:relative;
  align-self:flex-end;
  margin-top:auto;
  color:var(--lf-imola-cyan);
  font-size:10px;
  white-space:nowrap;
  text-shadow:0 2px 5px #000;
}
#experience .momenti-media-card:hover .media-more b {transform:translate(3px,-3px);}

/* La card di anteprima delle serate rimane nera e priva di interazioni. */
#experience .placeholder-serate .serate-card-title {
  position:absolute;
  top:22px;
  left:20px;
  right:20px;
  z-index:2;
  color:#fff;
  font-family:var(--display);
  font-size:clamp(29px,2.65vw,38px);
  line-height:.92;
  text-shadow:none;
  pointer-events:none;
}
@media (max-width:900px) {
  #experience .momenti-card-copy {padding:17px 18px;}
  #experience .momenti-card-copy strong,
  #experience .placeholder-serate .serate-card-title {font-size:clamp(28px,8.5vw,37px);}
  #experience .placeholder-serate .serate-card-title {top:17px;left:18px;right:18px;}
  #experience .momenti-slide:nth-child(1) {object-position:50% 22%;}
  #experience .momenti-slide:nth-child(2) {object-position:50% 29%;}
  #experience .momenti-slide:nth-child(3) {object-position:50% 24%;}
  #experience .momenti-slide:nth-child(4) {object-position:50% 24%;}
  #experience .momenti-slide:nth-child(5) {object-position:50% 41%;}
}
@media (prefers-reduced-motion:reduce) {
  #experience .momenti-slide {animation:none !important;opacity:0 !important;}
  #experience .momenti-slide:first-child {opacity:1 !important;}
  #experience .momenti-media-card:hover {transform:none;}
}


/* ===============================================================
   V242 — Card LA SALA coerente con I NOSTRI MOMENTI.
   Identico layout in alto per titolo e didascalia, CTA in basso
   a destra. Ombra del titolo celeste (la card Momenti resta fucsia).
   Vengono mantenuti foto, link e animazioni precedenti.
   =============================================================== */
#experience .room-media-card .room-card-copy strong {
  text-shadow:2px 3px 0 rgba(20,207,255,.85);
}
/* Ombreggiatura superiore per leggere LA SALA sopra la foto. */
#experience .room-media-card .room-card-copy .media-more {
  right:auto;
  bottom:auto;
}
#experience .room-media-card::after {
  background:linear-gradient(180deg,rgba(0,0,0,.78) 0%,rgba(0,0,0,.19) 43%,rgba(0,0,0,.17) 62%,rgba(0,0,0,.86) 100%);
}

/* V243 — Assistente livello spostato in basso a destra (non più a metà schermo). */
@media(min-width:901px){
  .lf-level-assistant{top:auto;bottom:24px;right:24px;transform:none;}
  .lf-level-tab{border-right:1px solid rgba(255,255,255,.24);border-radius:999px;}
  .lf-level-tab:hover{transform:translateY(-3px);}
  .lf-level-assistant.is-open .lf-level-tab{transform:translateY(12px);}
  .lf-level-teaser{right:0;top:auto;bottom:calc(100% + 14px);transform:translateY(10px) scale(.97);border-radius:14px 14px 4px 14px;}
  .lf-level-assistant.show-teaser:not(.is-open) .lf-level-teaser{transform:none;}
  .lf-level-teaser::after{right:24px;top:auto;bottom:-7px;transform:rotate(135deg);}
  .lf-level-chat{right:0;bottom:0;}
}
@media(max-width:900px){
  .lf-level-tab{top:auto;right:12px;bottom:calc(76px + env(safe-area-inset-bottom));transform:none;max-width:none;padding:6px;border-right:1px solid rgba(255,255,255,.24);border-radius:50%;}
  .lf-level-tab:hover{transform:translateY(-3px);}
  .lf-level-assistant.is-open .lf-level-tab{transform:translateY(12px);}
  .lf-level-teaser{top:auto;right:12px;bottom:calc(76px + 50px + 12px + env(safe-area-inset-bottom));width:min(230px,calc(100vw - 24px));transform:translateY(10px) scale(.97);}
  .lf-level-assistant.show-teaser:not(.is-open) .lf-level-teaser{transform:none;}
  .lf-level-teaser::after{right:18px;top:auto;bottom:-7px;transform:rotate(135deg);}
}

/* V243 — Menu di testata sempre su una riga, identico su tutte le pagine.
   Testi e spazi si adattano alla larghezza invece di andare a capo. */
@media(min-width:901px){
  .nav{gap:clamp(12px,1.6vw,28px)!important;padding-left:clamp(16px,3vw,54px)!important;padding-right:clamp(16px,3vw,54px)!important;}
  .desktop-nav{flex-wrap:nowrap;gap:clamp(10px,1.45vw,24px)!important;}
  .desktop-nav a{white-space:nowrap;font-size:clamp(9.5px,.78vw,11px)!important;letter-spacing:.06em!important;}
  .nav-cta{white-space:nowrap;font-size:clamp(9.5px,.78vw,11px)!important;padding:0 clamp(12px,1.25vw,18px)!important;}
  /* Shop: solo l'icona del carrello con il contatore. */
  .shop-cart-toggle{min-width:0!important;padding:0 12px!important;gap:6px!important;flex:0 0 auto;}
}
/* V243 — Schermi stretti (901–1100 px): logo senza scritta HOME e pulsante abbreviato,
   così il menu resta su una riga anche con il carrello dello Shop. */
@media(min-width:901px) and (max-width:1100px){
  .nav-brand.nav-brand-home.is-expanded,.nav-brand.nav-brand-static{width:54px!important;}
  .nav-brand.nav-brand-home.is-expanded span,.nav-brand.nav-brand-static span{max-width:0!important;margin-left:0!important;opacity:0!important;}
  .nav-cta{font-size:0!important;}
  .nav-cta::after{content:"PROVA GRATIS";font-size:9.5px;letter-spacing:.06em;}
}
@media(min-width:901px) and (max-width:1024px){
  .nav{gap:10px!important;padding-left:14px!important;padding-right:14px!important;}
  .desktop-nav{gap:8px!important;}
  .desktop-nav a{letter-spacing:.04em!important;}
  .shop-cart-toggle{padding:0 9px!important;}
}

/* ===== V244 — correzioni di layout dal controllo pre-deploy ===== */

/* Salsa: griglia info senza casella vuota quando manca lo Staff. */
@media(min-width:901px){
  .course-quickfacts:not(.has-staff-photo){grid-template-columns:repeat(4,minmax(0,1fr));max-width:864px;}
}
@media(max-width:900px){
  .course-quickfacts:not(.has-staff-photo)>div:last-child{grid-column:auto;}
}

/* FAQ e Academy «A cosa serve»: titolo allineato al resto della pagina,
   testo delle domande staccato dal bordo del riquadro. */
.faq-section .section-head,
.academy-page .academy-how .section-head{max-width:var(--lf-content)!important;}
.faq-section .section-head>*,
.academy-page .academy-how .section-head>*{max-width:760px;}
.faq-list summary{padding:15px 18px!important;}
.faq-list details p{padding:0 60px 16px 18px!important;}
@media(max-width:900px){
  .faq-list summary{padding:13px 12px!important;}
  .faq-list details p{padding:0 46px 13px 12px!important;}
}

/* Prova gratuita: nota «Posti limitati» staccata dai pulsanti e nello stile del modulo. */
.booking .booking-step>small{display:block;margin-top:16px;text-align:center;color:#000;font-size:9px;font-weight:850;letter-spacing:.07em;line-height:1.5;}
@media(max-width:700px){.booking .booking-step>small{font-size:10px;}}

/* Shop: «SCARPE −10%» per intero nella barra categorie su smartphone. */
@media(max-width:900px){
  .shop-category-nav{grid-template-columns:1.3fr 1fr 1fr 1fr!important;}
  .shop-category-nav a{letter-spacing:.04em!important;}
}
/* Shop: riga «Solo soci/tesserati…» staccata dal pulsante e senza parola orfana. */
@media(max-width:900px){
  .shop-status{display:block;margin-top:10px;text-wrap:balance;}
}

/* Crew Latin Flow — home gallery */
.crew-home{background:#050505;color:white;padding:70px 0 80px;overflow:hidden;text-align:center}
.crew-home-heading{padding:0 20px 28px}.crew-eyebrow{font-size:12px;font-weight:800;letter-spacing:.2em;color:#62d9f5;margin:0 0 10px}.crew-home h2{font-family:'Road Rage',Impact,sans-serif;font-size:clamp(54px,9vw,105px);font-weight:400;line-height:1;margin:0}.crew-home h2 em{font-style:normal;color:#f31b83}.crew-home-heading>p:last-child{color:#d5d5d5;font-size:15px;margin:12px 0 0}.crew-gallery{overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch}.crew-gallery::-webkit-scrollbar{display:none}.crew-gallery-track{display:flex;gap:14px;width:max-content;padding:10px max(20px,calc((100vw - 1200px)/2)) 20px;animation:crew-drift 48s linear infinite}.crew-gallery:hover .crew-gallery-track,.crew-gallery:focus-within .crew-gallery-track{animation-play-state:paused}.crew-slide{display:block;flex:0 0 auto;width:clamp(195px,25vw,300px);aspect-ratio:3/4;overflow:hidden;border-radius:14px;scroll-snap-align:center;background:#151515;border:1px solid #292929}.crew-slide img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .35s}.crew-slide:hover img{transform:scale(1.045)}.crew-home-action{margin:24px 20px 0}.crew-home-action a{display:inline-flex;align-items:center;gap:18px;padding:16px 26px;border-radius:999px;background:linear-gradient(110deg,#00c9ed,#f31b83);color:#fff;font-size:13px;font-weight:900;letter-spacing:.07em;text-decoration:none}.crew-home-action a:hover{filter:brightness(1.12)}@keyframes crew-drift{0%,8%{transform:translateX(0)}92%,100%{transform:translateX(min(-48%, -900px))}}@media(max-width:650px){.crew-home{padding:52px 0 60px}.crew-slide{width:68vw;max-width:270px}.crew-gallery-track{gap:10px;animation-duration:58s}.crew-home-heading>p:last-child{font-size:14px}}@media(prefers-reduced-motion:reduce){.crew-gallery-track{animation:none}.crew-slide img{transition:none}}

/* V246: seamless crew gallery */
.crew-gallery-track{gap:0;padding:10px 0 20px;animation:crew-loop 55s linear infinite;will-change:transform}
.crew-gallery-set{display:flex;gap:14px;flex:none;padding-right:14px}
@keyframes crew-loop{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(max-width:650px){.crew-gallery-set{gap:10px;padding-right:10px}.crew-gallery-track{animation-duration:65s}}
@media(prefers-reduced-motion:reduce){.crew-gallery-track{animation:none}}

/* V247: inquadratura alta sui volti nelle foto I nostri momenti */
#experience .momenti-slide {object-position:50% 18%;}

/* V248: ritagli reali sui volti e busti, senza spostamento alto generico */
#experience .momenti-slide {object-position:50% 50% !important;}

/* V252: central framing of new Salsa and Bachata photographs */
.salsa-card .salsa-ghost-art, .bachata-card .bachata-ghost-art { object-position: 50% 50% !important; }
@media(max-width:900px){.salsa-card .salsa-ghost-art,.bachata-card .bachata-ghost-art{object-position:50% 50% !important;}}
