/* Bushido BJJ Academy — tema branco, tipografia geométrica (Jost) */
:root{
  --bg:#ffffff; --soft:#f5f5f3; --soft-2:#ecebe7;
  --ink:#111111; --ink-2:#1c1c1c; --text:#3d3d3d; --muted:#767676;
  --line:#e5e4e0; --line-dark:rgba(255,255,255,.12);
  --red:#d7191f; --red-d:#b01016;
  --sans:'Jost', 'Futura', 'Century Gothic', system-ui, sans-serif;
  --jp:'Noto Serif JP', serif;
  --r:16px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;overflow-x:clip}
body{background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:clip}
img{display:block;max-width:100%}
a{color:inherit}
h1,h2,h3,h4{font-family:var(--sans);font-weight:700;letter-spacing:-.02em;line-height:1.05}
h2{font-size:clamp(2.1rem,4.6vw,3.6rem)}
h3{font-size:1.3rem;letter-spacing:-.01em}
.eyebrow{display:inline-flex;align-items:center;gap:.6rem;font-size:.75rem;font-weight:600;letter-spacing:.24em;text-transform:uppercase;margin-bottom:1.1rem;color:var(--muted)}
.eyebrow::before{content:'';width:22px;height:2px;background:var(--red)}
.eyebrow.red{color:var(--ink)}
.muted{color:var(--muted)}

.btn{display:inline-flex;align-items:center;gap:.6rem;padding:.95rem 1.6rem;border-radius:999px;font-weight:600;text-decoration:none;font-size:.95rem;letter-spacing:.01em;transition:transform .2s,background .2s,color .2s,border-color .2s;border:1.5px solid transparent}
.btn:hover{transform:translateY(-2px)}
.btn.sm{padding:.55rem 1.1rem;font-size:.85rem}
.btn-red{background:var(--ink);color:#fff}
.btn-red:hover{background:var(--red)}
.btn-ghost{border-color:var(--ink);color:var(--ink)}
.btn-ghost:hover{background:var(--ink);color:#fff}
.btn-ghost.dark{border-color:var(--ink);color:var(--ink)}
.btn-white{background:#fff;color:var(--ink)}
.btn-ink{background:var(--ink);color:#fff;justify-content:center;border:0;cursor:pointer;font-family:inherit}
.btn-ink:hover{background:var(--red)}

/* nav */
.nav{position:fixed;inset:0 0 auto;z-index:50;display:flex;align-items:center;padding:1rem clamp(1rem,4vw,3rem);transition:padding .3s}
.nav::before{content:'';position:absolute;inset:0;z-index:-1;background:rgba(255,255,255,.9);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);opacity:0;transition:opacity .3s}
.nav.solid{padding-block:.6rem}
.nav.solid::before{opacity:1}
.brand{display:flex;align-items:center;gap:.7rem;text-decoration:none;font-weight:700;font-size:1.15rem;letter-spacing:.08em;text-transform:uppercase}
.brand img{width:44px;height:44px;border-radius:50%}
.brand b{color:var(--red);font-weight:700}
.links{order:1;margin-left:auto;display:flex;align-items:center;gap:1.8rem}
.links a:not(.btn){text-decoration:none;font-size:.92rem;font-weight:500;color:var(--text)}
.links a:not(.btn):hover{color:var(--red)}
.lang{order:2;margin-left:1.4rem;display:flex;border:1.5px solid var(--line);border-radius:999px;background:#fff;color:var(--ink);font:600 .75rem var(--sans);letter-spacing:.08em;cursor:pointer;padding:2px}
.lang span{padding:.35rem .6rem;border-radius:999px;color:var(--muted);transition:background .2s,color .2s}
:root:not([data-lang="en"]) .lang [data-l="pt"],:root[data-lang="en"] .lang [data-l="en"]{background:var(--ink);color:#fff}
.burger{order:3;display:none;background:none;border:0;width:40px;height:40px;cursor:pointer;flex-direction:column;justify-content:center;gap:7px}
.burger span{display:block;height:2px;background:var(--ink);transition:transform .3s}
.nav.open .burger span:first-child{transform:translateY(4.5px) rotate(45deg)}
.nav.open .burger span:last-child{transform:translateY(-4.5px) rotate(-45deg)}

/* hero */
.hero{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(2rem,5vw,5rem);align-items:center;min-height:100svh;padding:7.5rem clamp(1rem,4vw,3rem) 3.5rem;max-width:1400px;margin:0 auto}
.hero h1{font-size:clamp(2.9rem,6.6vw,6rem);font-weight:800;letter-spacing:-.035em;line-height:.98;margin-bottom:1.5rem}
.hero h1 em{font-style:normal;color:var(--red)}
.lead{font-size:clamp(1.05rem,1.5vw,1.25rem);max-width:520px;color:var(--text);margin-bottom:2rem}
.cta{display:flex;flex-wrap:wrap;gap:.8rem}
.hero-stats{display:flex;flex-wrap:wrap;gap:clamp(1.5rem,4vw,3.5rem);margin-top:3rem;padding-top:1.6rem;border-top:1px solid var(--line)}
.hero-stats strong{font-size:2.6rem;font-weight:700;letter-spacing:-.03em;display:block;line-height:1}
.hero-stats span{font-size:.85rem;color:var(--muted)}
.hero-media{position:relative;justify-self:end;width:100%;max-width:520px}
.slides{position:relative;width:100%;height:min(78svh,760px);border-radius:calc(var(--r) * 1.5);overflow:hidden;background:var(--soft-2);box-shadow:0 40px 80px -40px rgba(0,0,0,.35)}
.slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.3s ease}
.slide.on{opacity:1;animation:kenburns 6.5s ease-out both}
@keyframes kenburns{from{transform:scale(1.14) translate(1.5%,1%)}to{transform:scale(1) translate(0,0)}}
.dots{position:absolute;left:50%;bottom:1.1rem;translate:-50% 0;display:flex;gap:.45rem;z-index:2}
.dots i{width:8px;height:8px;border-radius:999px;background:rgba(255,255,255,.55);cursor:pointer;transition:width .4s,background .4s;box-shadow:0 1px 4px rgba(0,0,0,.3)}
.dots i.on{width:26px;background:#fff}
.hero-media::before{content:'';position:absolute;inset:auto auto -18px -18px;width:55%;height:45%;border:2px solid var(--red);border-radius:calc(var(--r) * 1.5);z-index:-1}
.kanji{position:absolute;left:-1.6rem;top:2rem;writing-mode:vertical-rl;font-family:var(--jp);font-size:clamp(1.4rem,2.2vw,2rem);background:var(--ink);color:#fff;padding:1rem .55rem;border-radius:999px;letter-spacing:.2em}

/* ticker */
.ticker{background:var(--ink);color:#fff;overflow:hidden;padding:1rem 0}
.ticker div{display:flex;gap:2.2rem;width:max-content;animation:tick 32s linear infinite;font-weight:600;text-transform:uppercase;font-size:1.05rem;letter-spacing:.22em}
.ticker i{font-style:normal;color:var(--red)}
@keyframes tick{to{transform:translateX(-50%)}}

/* sections */
.section{padding:clamp(4.5rem,9vw,8rem) clamp(1rem,4vw,3rem)}
.head{max-width:1200px;margin:0 auto 3rem}
.head .muted{margin-top:.8rem;max-width:560px}
.center{text-align:center;margin-top:2.5rem}
.sub{font-size:1.35rem;margin:2.2rem 0 1rem}

.about{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,6rem);align-items:center;max-width:1300px;margin:0 auto}
.about-img{position:relative;padding:0 0 3rem 0}
.about-img>img:first-child{border-radius:var(--r);aspect-ratio:4/5;object-fit:cover;width:85%}
.about-img .inset{position:absolute;right:0;bottom:0;width:48%;aspect-ratio:1;object-fit:cover;border-radius:var(--r);border:8px solid #fff;box-shadow:0 20px 40px -20px rgba(0,0,0,.3)}
.about-text h2{margin-bottom:1.5rem}
.about-text p{color:var(--text);margin-bottom:1rem;max-width:560px}
.about-text a{color:var(--red);font-weight:600}
.facts{display:flex;flex-wrap:wrap;gap:2rem;margin:1.8rem 0 0;padding:1.4rem 0;border-block:1px solid var(--line)}
.facts dt{font-size:1.9rem;font-weight:700;letter-spacing:-.03em;line-height:1}
.facts dd{font-size:.8rem;color:var(--muted)}
.checks{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:.6rem 1.2rem}
.checks li{position:relative;padding-left:1.5rem;color:var(--text);font-size:.95rem}
.checks li::before{content:'';position:absolute;left:0;top:.55em;width:8px;height:8px;border-radius:50%;background:var(--red)}
.checks b{color:var(--ink);font-weight:600}
.values{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:.8rem;margin-top:2rem}
.values li{border:1px solid var(--line);border-radius:var(--r);padding:1rem .5rem;text-align:center}
.values b{display:block;font-family:var(--jp);font-size:1.7rem;line-height:1.3}
.values span{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}

.programs{background:var(--soft)}
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem;max-width:1300px;margin:0 auto}
.card{background:#fff;border-radius:var(--r);overflow:hidden;border:1px solid var(--line);transition:transform .3s,box-shadow .3s}
.card:hover{transform:translateY(-6px);box-shadow:0 24px 48px -24px rgba(0,0,0,.25)}
.card img{aspect-ratio:4/3.4;object-fit:cover;width:100%}
.card>div{padding:1.4rem 1.3rem 1.6rem}
.card h3{margin-bottom:.6rem}
.card p{font-size:.95rem;color:var(--text)}

.schedule{max-width:1200px;margin:0 auto}
.turmas{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:1rem}
.turma{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:1.5rem;display:flex;flex-direction:column;gap:.7rem;transition:border-color .3s,box-shadow .3s}
.turma:hover{border-color:var(--ink);box-shadow:0 20px 40px -24px rgba(0,0,0,.25)}
.turma h3{font-size:1.25rem}
.turma p{color:var(--muted);font-size:.93rem;flex:1}
.turma ul{list-style:none;display:flex;gap:1.5rem;padding-top:.9rem;border-top:1px solid var(--line)}
.turma li{font-weight:600}
.turma li b{display:block;font-size:.68rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.pill{display:inline-block;align-self:flex-start;font-size:.7rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;padding:.3rem .75rem;border-radius:999px;background:var(--ink);color:#fff}
.pill.alt{background:var(--red)}
.schedule .sub{margin-top:3rem}
.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r)}
table{width:100%;border-collapse:collapse;min-width:620px}
th,td{padding:1.15rem 1rem;text-align:center;border-bottom:1px solid var(--line)}
tbody tr:last-child>*{border-bottom:0}
thead th{font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.16em;color:var(--muted);background:var(--soft)}
tbody th{text-align:left;font-size:1.05rem;font-weight:700}
tbody th small{display:block;font-size:.8rem;font-weight:500;color:var(--red)}
.tag{display:inline-block;padding:.4rem .85rem;border-radius:999px;font-size:.8rem;font-weight:600}
.tag.a{background:var(--ink);color:#fff}
.tag.i{background:#fff;color:var(--ink);border:1.5px solid var(--ink)}
.tag.k{background:var(--red);color:#fff}
.note{margin-top:1.2rem;color:var(--muted);font-size:.9rem}

.enroll{background:var(--soft)}
.enroll-steps{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;max-width:1200px;margin:0 auto 3rem}
.enroll-steps li{padding:1.6rem;border-radius:var(--r);background:#fff;border:1px solid var(--line)}
.enroll-steps b{display:grid;place-items:center;width:2.6rem;height:2.6rem;border-radius:50%;background:var(--ink);color:#fff;font-weight:700;font-size:1.1rem;margin-bottom:1rem}
.enroll-steps h3{font-size:1.15rem;margin-bottom:.5rem}
.enroll-steps p{color:var(--muted);font-size:.93rem}
.faq{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:.8rem;align-items:start}
.faq details{border:1px solid var(--line);border-radius:var(--r);padding:1.05rem 1.2rem;background:#fff}
.faq summary{cursor:pointer;font-weight:600;list-style:none;display:flex;justify-content:space-between;gap:1rem}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:'+';color:var(--red);font-size:1.4rem;line-height:1;transition:transform .2s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq p{color:var(--text);font-size:.95rem;margin-top:.7rem}
.faq a{color:var(--red)}

/* aula experimental (bloco escuro, como o logótipo) */
.trial{background:var(--ink);color:#fff;position:relative;overflow:hidden}
.trial::after{content:'道';position:absolute;right:-2rem;bottom:-6rem;font-family:var(--jp);font-size:28rem;line-height:1;color:rgba(255,255,255,.04);pointer-events:none}
.trial-inner{position:relative;z-index:1;max-width:1200px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:1rem 4rem;align-items:start}
.trial-inner>.eyebrow,.trial-inner>h2{grid-column:1/-1}
.trial .eyebrow{color:rgba(255,255,255,.7)}
.trial h2{font-size:clamp(2.4rem,6vw,4.8rem);margin-bottom:2rem}
.steps{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}
.steps li{border-top:1px solid rgba(255,255,255,.2);padding-top:1rem;color:rgba(255,255,255,.8)}
.steps strong{color:#fff;font-weight:600}
.steps b{font-size:1.6rem;font-weight:700;color:var(--red);display:block;margin-bottom:.4rem}
.book{background:#fff;color:var(--ink);border-radius:var(--r);padding:1.8rem;display:flex;flex-direction:column;gap:1rem}
.book h3{font-size:1.5rem}
.book .row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.book label{display:flex;flex-direction:column;gap:.35rem;font-size:.75rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.book input,.book select,.book textarea{font:inherit;font-size:1rem;text-transform:none;letter-spacing:0;font-weight:400;color:var(--ink);padding:.75rem .9rem;border:1.5px solid var(--line);border-radius:10px;background:var(--soft);width:100%}
.book input:focus,.book select:focus,.book textarea:focus{outline:none;border-color:var(--ink);background:#fff}
.book .err{color:var(--red);font-size:.88rem;font-weight:600}
.book .small{font-size:.8rem;color:var(--muted);text-align:center}

.gallery{background:#fff}
.grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:220px;grid-auto-flow:dense;gap:.8rem;max-width:1300px;margin:0 auto}
.grid figure{border-radius:12px;overflow:hidden;opacity:0;transform:translateY(20px);transition:opacity .7s,transform .7s;background:var(--soft)}
.grid figure.in{opacity:1;transform:none}
.grid .tall{grid-row:span 2}
.grid .wide{grid-column:span 2}
.grid img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.grid figure:hover img{transform:scale(1.05)}

.places{background:var(--soft)}
.place-cards{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;max-width:1200px;margin:0 auto}
.place{background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.place img{aspect-ratio:16/9;object-fit:cover;width:100%}
.place>div{padding:1.6rem}
.place h3{margin:.8rem 0 .4rem;font-size:1.4rem}
.place p{color:var(--muted);margin-bottom:1rem}
.place>div>a{color:var(--ink);font-weight:600;text-decoration:none;border-bottom:2px solid var(--red)}
.hours{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}
.hours li{font-size:.85rem;background:var(--soft);border-radius:8px;padding:.4rem .7rem}
.hours b{color:var(--red);margin-right:.4rem;font-weight:600}
.map{border-radius:10px;overflow:hidden;margin-bottom:1.2rem;aspect-ratio:16/8;background:var(--soft-2)}
.map iframe{width:100%;height:100%;border:0}

.footer{background:var(--ink);color:#fff}
.footer{display:grid;grid-template-columns:2fr 1fr 1fr;gap:2rem;padding:4rem max(clamp(1rem,4vw,3rem),calc((100% - 1300px)/2)) 2rem}
.f-brand{display:flex;align-items:center;gap:1rem}
.f-brand img{width:72px;height:72px;border-radius:50%;background:#fff}
.f-brand p{font-weight:700;font-size:1.15rem;line-height:1.3}
.f-brand span{font-weight:400;font-size:.85rem;color:rgba(255,255,255,.6)}
.f-col{display:flex;flex-direction:column;gap:.4rem}
.f-col h4{font-size:.72rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--red);margin-bottom:.4rem}
.f-col a{text-decoration:none;color:rgba(255,255,255,.75)}
.f-col a:hover{color:#fff}
.copy{grid-column:1/-1;padding-top:2rem;border-top:1px solid var(--line-dark);font-size:.8rem;color:rgba(255,255,255,.5)}

.wa-float{position:fixed;right:1.2rem;bottom:1.2rem;z-index:60;width:58px;height:58px;border-radius:50%;background:#25d366;color:#fff;display:grid;place-items:center;box-shadow:0 10px 30px rgba(0,0,0,.25);transition:transform .2s}
.wa-float:hover{transform:scale(1.08)}

.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s ease,transform .8s ease}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .reveal,.grid figure,.stag>*,.hero-inner>*,.hero-media,.curtain,h2{opacity:1!important;transform:none!important;clip-path:none!important;translate:none!important}
}

@media (max-width:1000px){
  .hero{grid-template-columns:1fr;min-height:0;padding-top:6.5rem}
  .hero-media{justify-self:center;max-width:560px}
  .slides{height:auto;aspect-ratio:4/5}
  .cards,.turmas,.enroll-steps{grid-template-columns:1fr 1fr}
  .trial-inner{grid-template-columns:1fr}
  .grid{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:760px){
  body{font-size:16px}
  .burger{display:flex}
  .lang{margin-left:auto;margin-right:.6rem}
  .links{position:fixed;inset:0;background:#fff;flex-direction:column;justify-content:center;gap:1.6rem;transform:translateY(-100%);transition:transform .4s;z-index:-1;margin:0}
  .links a:not(.btn){font-size:1.8rem;font-weight:600;color:var(--ink)}
  .nav.open .links{transform:none}
  .kanji{left:auto;right:-.4rem;top:1rem}
  .hero-media::before{inset:auto auto -12px -10px}
  .about{grid-template-columns:1fr}
  .cards,.steps,.place-cards,.turmas,.enroll-steps,.faq,.checks,.book .row{grid-template-columns:1fr}
  .values{grid-template-columns:repeat(2,1fr)}
  .grid{grid-template-columns:1fr 1fr;grid-auto-rows:160px}
  .footer{grid-template-columns:1fr}
  .ticker div{font-size:.9rem}
}

/* ===== Animações ===== */
.progress{position:fixed;top:0;left:0;right:0;height:3px;background:var(--red);transform:scaleX(0);transform-origin:left;z-index:70;pointer-events:none}

/* entrada do topo */
.hero-inner>*{opacity:0;translate:0 34px;transition:opacity .9s ease,translate .9s cubic-bezier(.2,.7,.2,1)}
.hero-inner>:nth-child(1){transition-delay:.1s}.hero-inner>:nth-child(2){transition-delay:.22s}.hero-inner>:nth-child(3){transition-delay:.4s}.hero-inner>:nth-child(4){transition-delay:.52s}.hero-inner>:nth-child(5){transition-delay:.64s}
.loaded .hero-inner>*{opacity:1;translate:0 0}
.hero h1 em{display:inline-block;position:relative}
.hero-media{opacity:0;clip-path:inset(12% 0 12% 0 round 24px);scale:.94;transition:opacity 1s ease .3s,clip-path 1.3s cubic-bezier(.7,0,.2,1) .3s,scale 1.3s cubic-bezier(.2,.7,.2,1) .3s}
.loaded .hero-media{opacity:1;clip-path:inset(-60px -60px -60px -60px);scale:1}
.hero-media::before{transform:translate(18px,-18px);opacity:0;transition:transform 1s cubic-bezier(.2,.7,.2,1) 1s,opacity .6s ease 1s}
.loaded .hero-media::before{transform:none;opacity:1}
.kanji{animation:float 5s ease-in-out infinite}
@keyframes float{50%{transform:translateY(-10px)}}

/* títulos e etiquetas */
.eyebrow::before{transform:scaleX(0);transform-origin:left;transition:transform .7s cubic-bezier(.7,0,.2,1) .15s}
.eyebrow.in::before,.loaded .hero .eyebrow::before{transform:scaleX(1)}

/* cascata */
.stag>*{opacity:0;translate:0 30px;transition:opacity .7s ease var(--d,0ms),translate .8s cubic-bezier(.2,.7,.2,1) var(--d,0ms),transform .35s ease,box-shadow .35s ease,border-color .35s ease,background .35s ease}
.stag>.in{opacity:1;translate:0 0}
.reveal.stag{opacity:1;transform:none}

/* cortina nas imagens */
.curtain{clip-path:inset(0 0 100% 0);scale:1.12;transition:clip-path 1.2s cubic-bezier(.7,0,.2,1),scale 1.6s cubic-bezier(.2,.7,.2,1)}
.curtain.in{clip-path:inset(0 0 0 0);scale:1}
.card{overflow:hidden}
.card img{transition:clip-path 1.2s cubic-bezier(.7,0,.2,1),scale 1.6s cubic-bezier(.2,.7,.2,1),transform .6s ease}
.card:hover img{transform:scale(1.07)}
.card::after,.turma::after{content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(400px circle at var(--mx,50%) var(--my,50%),rgba(215,25,31,.08),transparent 45%);opacity:0;transition:opacity .3s}
.card,.turma{position:relative}
.card:hover::after,.turma:hover::after{opacity:1}

/* botões: brilho que passa */
.btn{position:relative;overflow:hidden;transition:transform .2s,background .2s,color .2s,border-color .2s,translate .25s ease}
.btn::after{content:'';position:absolute;top:0;bottom:0;left:-60%;width:40%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.35),transparent);transform:skewX(-20deg);transition:left .7s ease}
.btn:hover::after{left:130%}

/* galeria: imagens entram com zoom */
.grid figure{transform:translateY(30px) scale(.96)}
.grid figure.in{transform:none}

/* contadores */
[data-count]{font-variant-numeric:tabular-nums}

/* aula experimental: kanji a respirar */
.trial::after{animation:breathe 9s ease-in-out infinite}
@keyframes breathe{50%{transform:translateY(-20px) rotate(-4deg);color:rgba(255,255,255,.07)}}

/* faixa de valores mais rápida ao passar o rato */


/* WhatsApp: pulsação */
.wa-float{animation:pulse 2.4s ease-out infinite}
@keyframes pulse{0%{box-shadow:0 10px 30px rgba(0,0,0,.25),0 0 0 0 rgba(37,211,102,.55)}100%{box-shadow:0 10px 30px rgba(0,0,0,.25),0 0 0 22px rgba(37,211,102,0)}}

/* FAQ: abertura suave */
.faq details p{animation:drop .4s ease}
@keyframes drop{from{opacity:0;translate:0 -8px}}

/* mapa e locais */
.place{transition:transform .35s ease,box-shadow .35s ease}
.place:hover{transform:translateY(-6px);box-shadow:0 30px 60px -30px rgba(0,0,0,.25)}

@media (prefers-reduced-motion:reduce){
  .slide{transition:none}.slide.on{animation:none}
  .eyebrow::before,.hero-media::before{transform:none!important;opacity:1!important}
}

/* ===== Animações v2 ===== */
:root{--ease:cubic-bezier(.2,.75,.15,1)}

/* pré-carregador */
#loader{position:fixed;inset:0;z-index:100;background:#fff;display:grid;place-items:center;transition:transform .9s cubic-bezier(.8,0,.2,1) .15s;animation:loaderSafety 0s 5s forwards}
#loader img{width:120px;height:120px;border-radius:50%;animation:loaderIn .8s var(--ease) both}
#loader span{position:absolute;left:50%;top:calc(50% + 86px);width:120px;height:3px;translate:-50% 0;background:var(--line);overflow:hidden;border-radius:3px}
#loader span::after{content:'';position:absolute;inset:0;background:var(--red);transform-origin:left;animation:loaderBar 1.1s var(--ease) both}
#loader.done{transform:translateY(-100%)}
#loader.done img{animation:loaderOut .6s ease forwards}
@keyframes loaderIn{from{opacity:0;transform:scale(.6) rotate(-90deg)}}
@keyframes loaderOut{to{opacity:0;transform:scale(1.4)}}
@keyframes loaderBar{from{transform:scaleX(0)}}
@keyframes loaderSafety{to{visibility:hidden;transform:translateY(-100%)}}

/* títulos: palavra a palavra */
.split .w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.08em;margin-bottom:-.08em}
.split .w>span{display:inline-block;transform:translateY(110%) rotate(6deg);transform-origin:left bottom;transition:transform 1s var(--ease) calc(var(--i) * 70ms + .05s)}
h2.in .w>span,.loaded .hero h1 .w>span{transform:none}
.hero h1 .w>span{transition-delay:calc(var(--i) * 80ms + .25s)}
.hero-inner>h1{opacity:1;translate:0 0}

/* cascatas mais visíveis */
.cards{perspective:1400px}
.cards.stag>*{rotate:x 28deg;transform-origin:50% 100%;translate:0 60px;transition:opacity .8s ease var(--d),translate 1s var(--ease) var(--d),rotate 1s var(--ease) var(--d),transform .35s ease,box-shadow .35s ease}
.cards.stag>.in{rotate:x 0deg;translate:0 0}
.turmas.stag>:nth-child(odd){translate:-60px 30px}
.turmas.stag>:nth-child(even){translate:60px 30px}
.turmas.stag>.in{translate:0 0}
.enroll-steps.stag>*{translate:0 50px;scale:.92}
.enroll-steps.stag>.in{translate:0 0;scale:1;transition:opacity .8s ease var(--d),translate 1s var(--ease) var(--d),scale 1s var(--ease) var(--d),transform .35s ease}
.enroll-steps b{transition:transform .8s var(--ease) calc(var(--d) + .3s),background .3s}
.enroll-steps li:not(.in) b{transform:scale(0) rotate(-180deg)}
.enroll-steps li:hover b{background:var(--red)}
.faq.stag>:nth-child(odd){translate:-40px 0}.faq.stag>:nth-child(even){translate:40px 0}.faq.stag>.in{translate:0 0}
.place-cards.stag>*{translate:0 80px}.place-cards.stag>.in{translate:0 0}
.values.stag>*{scale:.6}.values.stag>.in{scale:1;transition:opacity .6s ease var(--d),scale .9s cubic-bezier(.3,1.6,.5,1) var(--d)}

/* galeria: abre por recorte e as fotos movem-se por dentro */
.grid{transition:transform .2s linear;will-change:transform}
.grid figure{clip-path:inset(18% 18% 18% 18% round 12px);transform:none;opacity:0;transition:opacity .8s ease,clip-path 1.1s var(--ease)}
.grid figure.in{clip-path:inset(0 0 0 0 round 12px);opacity:1}
.grid img{height:calc(100% + 30px);margin-top:-15px}

/* faixa de valores conduzida pelo scroll */
.ticker div{animation:none;will-change:transform}

/* texto gigante */
.bigtype{overflow:hidden;padding:clamp(2.5rem,6vw,5rem) 0;background:#fff;user-select:none}
.bigtype .row{white-space:nowrap;line-height:1}
.bigtype .row span{display:inline-block;font-weight:800;letter-spacing:-.04em;font-size:clamp(3.5rem,11vw,10rem);text-transform:uppercase;will-change:transform}
.bigtype .r1 span{color:var(--ink)}
.bigtype .r2 span{color:transparent;-webkit-text-stroke:2px var(--red)}

/* aula experimental: fundo abre em círculo */
.trial.circle{--c:8%;clip-path:circle(var(--c) at 50% 45%)}

/* rodapé: OSS! gigante */
.oss{grid-column:1/-1;font-weight:800;font-size:clamp(5rem,22vw,20rem);line-height:.85;letter-spacing:-.05em;overflow:hidden;color:#fff;text-align:center;margin-top:1rem}
.oss span{display:inline-block;transform:translateY(105%);transition:transform 1.1s var(--ease) calc(var(--i) * 90ms)}
.oss span:last-child{color:var(--red)}
.oss.in span{transform:none}

/* menu: secção actual */
.links a:not(.btn){position:relative}
.links a:not(.btn)::after{content:'';position:absolute;left:0;right:0;bottom:-5px;height:2px;background:var(--red);transform:scaleX(0);transition:transform .35s var(--ease)}
.links a.active,.links a:not(.btn):hover{color:var(--ink)}
.links a.active::after,.links a:not(.btn):hover::after{transform:scaleX(1)}

/* cursor */
.cursor{position:fixed;left:0;top:0;width:34px;height:34px;margin:-17px 0 0 -17px;border:1.5px solid var(--red);border-radius:50%;pointer-events:none;z-index:90;opacity:0;transition:opacity .3s,width .3s var(--ease),height .3s var(--ease),margin .3s var(--ease),background .3s}
.cursor.on{opacity:1}
.cursor.big{width:64px;height:64px;margin:-32px 0 0 -32px;background:rgba(215,25,31,.08)}

@media (max-width:760px){
  .turmas.stag>*,.faq.stag>*{translate:0 40px}
  .bigtype .r2 span{-webkit-text-stroke:1.5px var(--red)}
  .trial.circle{clip-path:circle(var(--c) at 50% 30%)}
}
@media (prefers-reduced-motion:reduce){
  #loader{display:none}
  .split .w>span,.oss span{transform:none!important}
  .grid figure{clip-path:none!important}
  .trial.circle{clip-path:none}
}

/* ===== Rodapé: ícones ===== */
.f-col{gap:.7rem}
.f-link{display:flex;align-items:center;gap:.75rem;width:max-content;max-width:100%}
.f-link i{flex:none;display:grid;place-items:center;width:38px;height:38px;border-radius:50%;border:1px solid rgba(255,255,255,.18);color:#fff;transition:background .3s,border-color .3s,transform .4s var(--ease)}
.f-link svg{width:18px;height:18px}
.f-link:hover i{background:var(--red);border-color:var(--red);transform:rotate(-12deg) scale(1.08)}
.f-link span{transition:color .3s}
.f-link:hover span{color:#fff}
.admin-link{color:rgba(255,255,255,.35);text-decoration:none;margin-left:.6rem;font-size:.75rem}
.admin-link:hover{color:#fff}
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}

/* ===== OSS! animado ===== */
.oss{position:relative;cursor:default;perspective:800px}
.oss span{transform-origin:50% 100%}
.oss.in span{animation:ossWave 3.4s ease-in-out calc(1.4s + var(--i) * .18s) infinite}
.oss.in span:last-child{animation:ossBang 2.6s cubic-bezier(.3,1.5,.5,1) 1.6s infinite;transform-origin:50% 90%}
@keyframes ossWave{0%,100%{transform:none}25%{transform:translateY(-9%) rotate(-3deg)}50%{transform:translateY(0) scaleY(.94)}}
@keyframes ossBang{0%,55%,100%{transform:none}62%{transform:scale(1.25) rotate(14deg)}70%{transform:scale(.92) rotate(-8deg)}78%{transform:scale(1.06) rotate(3deg)}}
.oss span{transition:transform 1.1s var(--ease) calc(var(--i) * 90ms),color .25s}
.oss span:hover{color:var(--red)}
.oss span:last-child:hover{color:#fff}
.oss::after{content:'OSS!';position:absolute;inset:0;color:transparent;-webkit-text-stroke:1.5px rgba(215,25,31,.5);transform:translate(var(--ox,0),var(--oy,0));pointer-events:none;z-index:-1;transition:transform .2s ease-out}
@media (prefers-reduced-motion:reduce){.oss.in span,.oss.in span:last-child{animation:none}}
