/* =========================================================
   LIFT ACADEMIA — academia raiz / brutalista industrial
   Preto carvão · amarelo ácido
   ========================================================= */

/* ---------- tokens ---------- */
:root{
  --ink:        #0a0a0a;
  --ink-2:      #121212;
  --ink-3:      #1a1a1a;
  --line:       rgba(255,255,255,.10);
  --line-2:     rgba(255,255,255,.18);
  --smoke:      rgba(247,247,240,.62);
  --paper:      #f5f4ef;
  --bolt:       #ffd400;
  --bolt-deep:  #e6bd00;

  --ff-display: "Saira Condensed", "Arial Narrow", sans-serif;
  --ff-body:    "Hanken Grotesk", system-ui, sans-serif;
  --ff-mono:    "Space Mono", ui-monospace, monospace;

  --ease:       cubic-bezier(.16,1,.3,1);
  --ease-power: cubic-bezier(.7,0,.2,1);
  --pad:        clamp(20px, 5vw, 90px);
  --maxw:       1440px;
}

*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }

html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }

body{
  font-family:var(--ff-body);
  background:var(--ink);
  color:var(--paper);
  line-height:1.5;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

a{ color:inherit; text-decoration:none; }
img{ display:block; max-width:100%; }
button{ font:inherit; }
::selection{ background:var(--bolt); color:#000; }
:focus-visible{ outline:2px solid var(--bolt); outline-offset:3px; }

/* ---------- atmosphere ---------- */
.grain{
  position:fixed; inset:-50%; z-index:9000; pointer-events:none;
  opacity:.045; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:grain 6s steps(6) infinite;
}
@keyframes grain{
  0%{transform:translate(0,0)} 20%{transform:translate(-4%,3%)}
  40%{transform:translate(3%,-4%)} 60%{transform:translate(-3%,2%)}
  80%{transform:translate(4%,-2%)} 100%{transform:translate(0,0)}
}
.vignette{
  position:fixed; inset:0; z-index:8999; pointer-events:none;
  background:radial-gradient(120% 90% at 50% 0%, transparent 58%, rgba(0,0,0,.5) 100%);
}

/* ---------- loader ---------- */
.loader{ position:fixed; inset:0; z-index:9800; background:var(--ink);
  display:grid; place-content:center; gap:24px; transition:opacity .6s, visibility .6s; }
.loader.is-done{ opacity:0; visibility:hidden; }
.loader__word{ display:flex; gap:.02em; font-family:var(--ff-display);
  font-weight:900; font-size:clamp(64px,16vw,180px); line-height:.8; color:var(--bolt); }
.loader__word span{ transform:translateY(110%); animation:dropin .6s var(--ease) forwards; }
.loader__word span:nth-child(2){ animation-delay:.08s; }
.loader__word span:nth-child(3){ animation-delay:.16s; }
.loader__word span:nth-child(4){ animation-delay:.24s; }
@keyframes dropin{ to{ transform:translateY(0); } }
.loader__bar{ width:min(260px,60vw); height:3px; background:var(--line-2); overflow:hidden; }
.loader__bar i{ display:block; height:100%; width:0; background:var(--bolt);
  animation:fill 1.1s .2s var(--ease-power) forwards; }
@keyframes fill{ to{ width:100%; } }

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; gap:.6em;
  font-family:var(--ff-mono); font-size:.78rem; font-weight:700;
  letter-spacing:.12em; text-transform:uppercase;
  padding:1.05em 1.6em; color:#000; background:var(--bolt);
  border:1.5px solid var(--bolt); position:relative; overflow:hidden;
  transition:color .35s var(--ease); isolation:isolate; cursor:pointer;
}
.btn::before{ content:""; position:absolute; inset:0; z-index:-1;
  background:#000; transform:translateY(101%); transition:transform .4s var(--ease); }
.btn:hover{ color:var(--bolt); }
.btn:hover::before{ transform:translateY(0); }
.btn .arr{ transition:transform .35s var(--ease); }
.btn:hover .arr{ transform:translateX(5px); }
.btn--lg{ padding:1.25em 2em; font-size:.85rem; }
.btn--ghost{ background:transparent; color:var(--paper); border-color:var(--line-2); }
.btn--ghost::before{ background:var(--bolt); }
.btn--ghost:hover{ color:#000; border-color:var(--bolt); }
.btn--block{ width:100%; justify-content:center; }
.btn--dark{ background:#000; color:var(--bolt); border-color:#000; }
.btn--dark::before{ background:var(--bolt); }
.btn--dark:hover{ color:#000; }
.btn--nav{ padding:.85em 1.3em; }

/* ---------- nav ---------- */
.nav{
  position:fixed; top:0; left:0; width:100%; z-index:8000;
  display:flex; align-items:center; justify-content:space-between; gap:24px;
  padding:18px var(--pad);
  transition:background .4s, padding .4s, border-color .4s;
  border-bottom:1px solid transparent;
}
.nav.is-stuck{ background:rgba(10,10,10,.78); backdrop-filter:blur(14px);
  border-bottom-color:var(--line); padding-top:12px; padding-bottom:12px; }
.nav__brand{ display:flex; align-items:center; gap:10px; }
.nav__mark{ color:var(--bolt); font-size:1.3rem; transition:transform .5s var(--ease); }
.nav__brand:hover .nav__mark{ transform:rotate(180deg); }
.nav__name{ font-family:var(--ff-display); font-weight:900; font-size:1.5rem;
  letter-spacing:.02em; line-height:1; }
.nav__name em{ font-style:normal; color:var(--bolt); font-weight:600;
  font-size:.62em; letter-spacing:.18em; display:inline-block; transform:translateY(-.1em); margin-left:.15em; }
.nav__links{ display:flex; gap:26px; margin-left:auto; }
.nav__links a{ font-family:var(--ff-mono); font-size:.72rem; letter-spacing:.1em;
  text-transform:uppercase; color:var(--smoke); position:relative; padding:4px 0; transition:color .3s; }
.nav__links a::after{ content:attr(data-i); position:absolute; top:-9px; right:-12px;
  font-size:.5rem; color:var(--bolt); opacity:0; transition:opacity .3s; }
.nav__links a::before{ content:""; position:absolute; left:0; bottom:-2px; height:1.5px;
  width:0; background:var(--bolt); transition:width .3s var(--ease); }
.nav__links a:hover{ color:var(--paper); }
.nav__links a:hover::after{ opacity:1; }
.nav__links a:hover::before{ width:100%; }
.nav__burger{ display:none; flex-direction:column; gap:6px; background:none;
  border:none; cursor:pointer; padding:6px; }
.nav__burger span{ width:26px; height:2px; background:var(--paper); transition:.3s var(--ease); }
.nav__burger.is-open span:nth-child(1){ transform:translateY(8px) rotate(45deg); }
.nav__burger.is-open span:nth-child(2){ transform:translateY(0) rotate(-45deg); }

/* ---------- mobile menu ---------- */
.menu{ position:fixed; inset:0; z-index:7900; background:var(--ink);
  display:flex; flex-direction:column; justify-content:center; gap:40px;
  padding:var(--pad); transform:translateY(-100%); transition:transform .6s var(--ease); }
.menu.is-open{ transform:translateY(0); }
.menu__nav{ display:flex; flex-direction:column; gap:4px; }
.menu__nav a{ font-family:var(--ff-display); font-weight:800; font-size:clamp(34px,10vw,64px);
  line-height:1.05; display:flex; align-items:baseline; gap:16px; }
.menu__nav a span{ font-family:var(--ff-mono); font-size:.8rem; color:var(--bolt); font-weight:400; }

/* ---------- hero ---------- */
.hero{ position:relative; min-height:100svh; padding:130px var(--pad) 48px;
  display:flex; flex-direction:column; justify-content:space-between; overflow:hidden; }
.hero__bg{ position:absolute; inset:0; z-index:0; overflow:hidden;
  background:
    radial-gradient(140% 70% at 50% 118%, rgba(255,212,0,.05), transparent 60%),
    linear-gradient(180deg,#0e0e0e 0%, #0a0a0a 58%, #060606 100%); }
.hero__halo{ position:absolute; top:-28%; left:50%; width:88vw; height:64vh;
  transform:translateX(-50%);
  background:radial-gradient(closest-side, rgba(255,212,0,.09), transparent 72%);
  filter:blur(34px); opacity:.7; }
.hero__grid{ position:absolute; left:50%; bottom:-8%; width:240%; height:62%;
  transform:translateX(-50%) perspective(380px) rotateX(64deg); transform-origin:bottom center;
  background-image:
    linear-gradient(rgba(255,212,0,.22) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,212,0,.22) 1px, transparent 1px);
  background-size:60px 60px; opacity:.42;
  -webkit-mask-image:linear-gradient(to top,#000 0%, transparent 80%);
  mask-image:linear-gradient(to top,#000 0%, transparent 80%);
  animation:floorscroll 7s linear infinite; }
@keyframes floorscroll{ to{ background-position:0 60px, 60px 0; } }
.hero > *{ position:relative; z-index:1; }

.hero__kicker{ display:flex; flex-wrap:wrap; align-items:center; gap:14px 22px;
  font-family:var(--ff-mono); font-size:.74rem; letter-spacing:.14em;
  text-transform:uppercase; color:var(--smoke); }
.tape{ background:var(--bolt); color:#000; font-weight:700; padding:.35em .7em; transform:rotate(-2deg); }

.hero__title{ font-family:var(--ff-display); font-weight:900; line-height:.82;
  letter-spacing:-.01em; margin:auto 0; padding:6vh 0; }
.hero__title .line{ display:block; overflow:hidden; }
.hero__title .w{ display:inline-block; font-size:clamp(88px,23vw,300px);
  transform:translateY(110%); animation:dropin 1s var(--ease) .9s forwards; }
.hero__title .w[data-fill]{ color:var(--bolt); }
.hero__title .hollow{ color:transparent; -webkit-text-stroke:2px var(--paper); }
.hero__title .line:nth-child(2) .w{ animation-delay:1.02s; }

.hero__bottom{ display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:32px; }
.hero__lead{ max-width:38ch; font-size:clamp(1.05rem,2vw,1.35rem); line-height:1.45; color:var(--paper); }
.hero__lead strong{ color:var(--bolt); font-weight:700; }
.hero__cta{ display:flex; flex-wrap:wrap; gap:14px; }
.hero__scroll{ position:absolute; left:var(--pad); bottom:18px; z-index:2;
  display:flex; align-items:center; gap:10px; font-family:var(--ff-mono);
  font-size:.66rem; letter-spacing:.2em; text-transform:uppercase; color:var(--smoke); }
.hero__scroll i{ width:42px; height:1px; background:var(--smoke); position:relative; overflow:hidden; }
.hero__scroll i::after{ content:""; position:absolute; inset:0; background:var(--bolt);
  transform:translateX(-100%); animation:scrollline 2s var(--ease) infinite; }
@keyframes scrollline{ 50%{transform:translateX(0)} 100%{transform:translateX(100%)} }

/* ---------- marquee ---------- */
.marquee{ background:var(--bolt); color:#000; overflow:hidden; padding:14px 0;
  border-top:2px solid #000; border-bottom:2px solid #000; }
.marquee__track{ display:flex; width:max-content; will-change:transform;
  animation:marq var(--dur,22s) linear infinite;
  font-family:var(--ff-display); font-weight:800; font-size:clamp(22px,3.4vw,40px);
  text-transform:uppercase; letter-spacing:.01em; }
.marquee__group{ flex:0 0 auto; white-space:nowrap; padding-right:.25em; }
@keyframes marq{ to{ transform:translateX(calc(-1 * var(--w,50%))); } }
.marquee:hover .marquee__track{ animation-play-state:paused; }

/* ---------- shared section bits ---------- */
section{ padding:clamp(70px,11vh,150px) var(--pad); max-width:var(--maxw); margin-inline:auto; }
.eyebrow{ font-family:var(--ff-mono); font-size:.74rem; letter-spacing:.18em;
  text-transform:uppercase; color:var(--bolt); display:flex; align-items:center; gap:10px; margin-bottom:26px; }
.eyebrow span{ color:var(--smoke); }
.eyebrow--dark{ color:#000; } .eyebrow--dark span{ color:rgba(0,0,0,.5); }
.sec-head{ margin-bottom:clamp(40px,6vw,72px); }
.sec-head--center{ text-align:center; }
.sec-head--center .eyebrow{ justify-content:center; }
.sec-title{ font-family:var(--ff-display); font-weight:900; line-height:.86;
  font-size:clamp(44px,8vw,120px); letter-spacing:-.01em; }

/* ---------- manifesto ---------- */
.manifesto__head{ font-family:var(--ff-display); font-weight:900; line-height:.9;
  font-size:clamp(40px,7.5vw,110px); margin-bottom:clamp(40px,6vw,70px); max-width:14ch; }
.manifesto__head .hl{ color:var(--bolt); }
.manifesto__grid{ display:grid; grid-template-columns:1.1fr 1fr; gap:clamp(30px,5vw,80px); align-items:start; }
.manifesto__lead{ font-size:clamp(1.1rem,1.7vw,1.4rem); line-height:1.5; }
.manifesto__list{ list-style:none; display:flex; flex-direction:column; }
.manifesto__list li{ padding:22px 0; border-top:1px solid var(--line); color:var(--smoke); font-size:1.02rem; }
.manifesto__list li:last-child{ border-bottom:1px solid var(--line); }
.manifesto__list b{ color:var(--paper); font-weight:700; }

/* ---------- treino: musculação + cardio ---------- */
.mods__focus{ display:grid; grid-template-columns:1fr 1fr; gap:1px;
  background:var(--line); border:1px solid var(--line); }
.focus-card{ position:relative; background:var(--ink); padding:clamp(30px,3.5vw,56px);
  min-height:clamp(260px,28vw,360px); display:flex; flex-direction:column;
  justify-content:flex-end; overflow:hidden; transition:color .4s var(--ease); }
.focus-card::before{ content:""; position:absolute; inset:0; background:var(--bolt);
  transform:translateY(100%); transition:transform .5s var(--ease); z-index:0; }
.focus-card:hover{ color:#000; }
.focus-card:hover::before{ transform:translateY(0); }
.focus-card > *{ position:relative; z-index:1; }
.focus-card__idx{ position:absolute; top:clamp(24px,3vw,40px); left:clamp(30px,3.5vw,56px);
  font-family:var(--ff-mono); font-size:.8rem; color:var(--smoke); transition:color .4s; }
.focus-card:hover .focus-card__idx{ color:#000; }
.focus-card__icon{ position:absolute; top:clamp(22px,3vw,38px); right:clamp(30px,3.5vw,56px);
  width:clamp(40px,4vw,60px); height:auto; color:var(--bolt);
  transition:color .4s, transform .5s var(--ease); }
.focus-card:hover .focus-card__icon{ color:#000; transform:scale(1.1) rotate(-6deg); }
.focus-card__name{ font-family:var(--ff-display); font-weight:900; line-height:.9;
  font-size:clamp(40px,5.5vw,82px); text-transform:uppercase; margin-bottom:14px; }
.focus-card__desc{ font-size:1.02rem; color:var(--smoke); max-width:42ch;
  transition:color .4s; margin-bottom:18px; }
.focus-card:hover .focus-card__desc{ color:rgba(0,0,0,.78); }
.focus-card__tags{ display:flex; flex-wrap:wrap; gap:8px; }
.focus-card__tags span{ font-family:var(--ff-mono); font-size:.66rem; letter-spacing:.08em;
  text-transform:uppercase; border:1px solid var(--line-2); padding:.45em .7em;
  transition:border-color .4s, color .4s; }
.focus-card:hover .focus-card__tags span{ border-color:rgba(0,0,0,.5); color:#000; }

.perks{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px;
  background:var(--line); border:1px solid var(--line); border-top:0; }
.perk{ background:var(--ink); padding:clamp(24px,2.6vw,36px); display:flex;
  flex-direction:column; gap:10px; transition:background .4s; }
.perk:hover{ background:var(--ink-2); }
.perk__mark{ color:var(--bolt); font-size:1.4rem; line-height:1; }
.perk__title{ font-family:var(--ff-display); font-weight:800; line-height:1;
  font-size:clamp(20px,2.2vw,28px); text-transform:uppercase; }
.perk__desc{ font-size:.92rem; color:var(--smoke); line-height:1.5; }

/* ---------- professores (character select) ---------- */
.select{ position:relative; display:grid; grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center; gap:clamp(10px,2vw,26px); }
.select__arrow{ width:clamp(46px,5vw,64px); height:clamp(46px,5vw,64px); flex:0 0 auto;
  border:1.5px solid var(--line-2); background:transparent; color:var(--paper);
  font-family:var(--ff-display); font-size:2rem; line-height:1; display:grid;
  place-content:center; cursor:pointer; transition:.3s var(--ease); }
.select__arrow:hover{ background:var(--bolt); color:#000; border-color:var(--bolt); transform:scale(1.06); }
.select__stage{ position:relative; min-width:0; }
.fighter{ position:absolute; inset:0; opacity:0; visibility:hidden; pointer-events:none;
  transform:translateY(24px) scale(.99);
  transition:opacity .5s var(--ease), transform .55s var(--ease), visibility .5s;
  display:grid; grid-template-columns:.92fr 1.08fr; gap:clamp(18px,3vw,42px);
  border:1px solid var(--line); background:var(--ink-2); padding:clamp(14px,1.8vw,22px); }
.fighter.is-active{ position:relative; opacity:1; visibility:visible; transform:none; pointer-events:auto; }
.fighter__portrait{ position:relative; min-height:clamp(280px,38vw,440px); overflow:hidden;
  border:1px solid var(--line); display:grid; place-content:center;
  background:radial-gradient(120% 90% at 50% 0%, rgba(255,212,0,.18), transparent 60%),
             linear-gradient(160deg,#171717,#0a0a0a); }
.fighter__portrait--alt{ background:radial-gradient(120% 90% at 50% 0%, rgba(255,212,0,.1), transparent 60%),
             linear-gradient(160deg,#1b1b1b,#090909); }
.fighter__portrait::before,.fighter__portrait::after{ content:""; position:absolute;
  width:26px; height:26px; border:2px solid var(--bolt); }
.fighter__portrait::before{ top:10px; right:10px; border-left:0; border-bottom:0; z-index:3; }
.fighter__portrait::after{ bottom:10px; right:10px; border-left:0; border-top:0; z-index:3; }
.fighter__portrait img{ position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; object-position:50% 26%; z-index:0; }
.fighter__scrim{ position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(180deg, rgba(10,10,10,.25) 0%, transparent 28%,
             transparent 52%, rgba(10,10,10,.62) 100%); }
.fighter__initials{ font-family:var(--ff-display); font-weight:900; line-height:.8;
  font-size:clamp(110px,18vw,230px); color:transparent; -webkit-text-stroke:2px rgba(255,212,0,.55); }
.fighter__player{ position:absolute; top:14px; left:14px; z-index:3; font-family:var(--ff-mono);
  font-size:.64rem; letter-spacing:.18em; text-transform:uppercase; color:var(--bolt);
  border:1px solid var(--bolt); padding:.3em .6em; background:rgba(10,10,10,.45); }
.fighter__badge{ position:absolute; bottom:14px; left:14px; z-index:3; background:var(--bolt); color:#000;
  font-family:var(--ff-mono); font-size:.64rem; font-weight:700; letter-spacing:.12em;
  text-transform:uppercase; padding:.4em .7em; }
.fighter__info{ display:flex; flex-direction:column; justify-content:center;
  gap:clamp(12px,1.6vw,18px); padding:clamp(6px,1.4vw,18px); }
.fighter__role{ font-family:var(--ff-mono); font-size:.72rem; letter-spacing:.18em;
  text-transform:uppercase; color:var(--bolt); }
.fighter__name{ font-family:var(--ff-display); font-weight:900; line-height:.82;
  font-size:clamp(54px,8vw,110px); text-transform:uppercase; }
.fighter__quote{ font-size:clamp(1.08rem,1.7vw,1.45rem); line-height:1.4; color:var(--paper);
  max-width:32ch; border-left:3px solid var(--bolt); padding-left:18px; }
.fighter__bars{ display:flex; flex-direction:column; gap:10px; max-width:400px; margin-top:4px; }
.bar{ display:grid; grid-template-columns:128px 1fr; align-items:center; gap:12px;
  font-family:var(--ff-mono); font-size:.68rem; letter-spacing:.06em; text-transform:uppercase; color:var(--smoke); }
.bar b{ display:block; height:8px; background:var(--line-2); position:relative; overflow:hidden; }
.bar b::after{ content:""; position:absolute; inset:0; width:0; background:var(--bolt);
  transition:width .8s var(--ease) .25s; }
.fighter.is-active .bar b::after{ width:var(--v); }
.select__roster{ display:flex; align-items:center; flex-wrap:wrap; gap:14px;
  margin-top:clamp(22px,3vw,34px); }
.roster__item{ display:inline-flex; align-items:center; gap:8px; background:transparent;
  border:1px solid var(--line-2); color:var(--smoke); padding:.7em 1.05em; cursor:pointer;
  font-family:var(--ff-display); font-weight:700; font-size:1.15rem; text-transform:uppercase;
  letter-spacing:.02em; transition:.3s var(--ease); }
.roster__item span{ font-family:var(--ff-mono); font-size:.64rem; color:var(--bolt); }
.roster__item:hover{ border-color:var(--bolt); color:var(--paper); }
.roster__item.is-active{ background:var(--bolt); color:#000; border-color:var(--bolt); }
.roster__item.is-active span{ color:#000; }
.select__auto{ margin-left:auto; display:inline-flex; align-items:center; gap:10px;
  font-family:var(--ff-mono); font-size:.64rem; letter-spacing:.12em; text-transform:uppercase; color:var(--smoke); }
.select__auto i{ display:block; width:56px; height:3px; background:var(--line-2); position:relative; overflow:hidden; }
.select__auto i::after{ content:""; position:absolute; top:0; left:0; bottom:0; width:0; background:var(--bolt); }
.select.rotating .select__auto i::after{ animation:autobar 5s linear infinite; }
@keyframes autobar{ from{width:0} to{width:100%} }

/* ---------- stats ---------- */
.stats__row{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px;
  background:var(--line); border-block:1px solid var(--line); }
.stat{ background:var(--ink); padding:clamp(32px,4vw,56px) clamp(20px,2vw,32px); text-align:center; }
.stat__num{ font-family:var(--ff-display); font-weight:900; color:var(--bolt);
  font-size:clamp(54px,8vw,104px); line-height:.85; display:block; }
.stat__num i{ font-style:normal; font-size:.45em; vertical-align:top; }
.stat__label{ font-family:var(--ff-mono); font-size:.72rem; letter-spacing:.08em;
  text-transform:uppercase; color:var(--smoke); margin-top:14px; display:block; line-height:1.4; }

/* ---------- planos ---------- */
.plans__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(14px,1.6vw,22px); align-items:stretch; }
.plan{ border:1px solid var(--line-2); padding:clamp(26px,3vw,40px); display:flex;
  flex-direction:column; gap:18px; position:relative; background:var(--ink);
  transition:border-color .4s, transform .4s var(--ease); overflow:hidden; }
.plan:hover{ border-color:var(--bolt); transform:translateY(-4px); }
.plan--featured{ border-color:var(--bolt); background:var(--ink-2); }
.plan__flag{ position:absolute; top:0; right:0; background:var(--bolt); color:#000;
  font-family:var(--ff-mono); font-size:.6rem; font-weight:700; letter-spacing:.12em;
  text-transform:uppercase; padding:.5em .75em; }
.plan__top{ display:flex; align-items:center; justify-content:space-between; gap:12px; }
.plan__top h3{ font-family:var(--ff-display); font-weight:800; font-size:clamp(28px,3.2vw,44px);
  text-transform:uppercase; line-height:1; }
.plan__tag{ font-family:var(--ff-mono); font-size:.6rem; letter-spacing:.12em;
  text-transform:uppercase; background:var(--bolt); color:#000; padding:.45em .7em; font-weight:700; }
.plan__tag--dark{ background:var(--ink-3); color:var(--bolt); border:1px solid var(--line-2); }
.plan__price{ font-family:var(--ff-display); font-weight:900; line-height:.9;
  font-size:clamp(48px,5.5vw,76px); display:flex; align-items:flex-start; gap:4px; color:var(--paper); }
.plan__cents{ font-size:.38em; margin-top:.7em; color:var(--bolt); }
.plan__price small{ font-family:var(--ff-mono); font-size:.78rem; font-weight:400;
  align-self:flex-end; color:var(--smoke); margin-bottom:.7em; letter-spacing:.04em; }
.plan__desc{ color:var(--smoke); font-size:.98rem; flex:1; }
.plans__note{ text-align:center; margin-top:clamp(24px,3vw,40px); color:var(--smoke); font-size:.95rem; }
.plans__note b{ color:var(--paper); }
.plans__note a{ color:var(--bolt); border-bottom:1px solid var(--bolt); }

/* ---------- cta band ---------- */
.cta-band{ background:var(--bolt); color:#000; max-width:none; position:relative;
  padding:clamp(70px,10vw,140px) var(--pad); margin-block:0; overflow:hidden; }
.cta-band__inner{ max-width:var(--maxw); margin-inline:auto; text-align:center; position:relative;
  z-index:1; display:flex; flex-direction:column; align-items:center; gap:28px; }
.cta-band__title{ font-family:var(--ff-display); font-weight:900; line-height:.82;
  font-size:clamp(64px,15vw,210px); letter-spacing:-.02em; }

/* ---------- local ---------- */
.local__grid{ display:grid; grid-template-columns:1fr 1.2fr; gap:clamp(28px,4vw,60px); align-items:stretch; }
.local__info{ display:grid; grid-template-columns:repeat(2,1fr); gap:1px;
  background:var(--line); border:1px solid var(--line); align-content:start; }
.info-block{ background:var(--ink); padding:clamp(22px,2.4vw,32px); }
.info-block__k{ font-family:var(--ff-mono); font-size:.68rem; letter-spacing:.14em;
  text-transform:uppercase; color:var(--bolt); display:block; margin-bottom:12px; }
.info-block p{ font-size:1.02rem; line-height:1.6; }
.info-block a{ color:var(--paper); border-bottom:1px solid var(--line-2); transition:.3s; }
.info-block a:hover{ color:var(--bolt); border-color:var(--bolt); }
.local__map{ border:1px solid var(--line); min-height:340px;
  filter:grayscale(1) contrast(1.1) brightness(.85); transition:filter .5s; }
.local__map:hover{ filter:grayscale(0) contrast(1) brightness(1); }
.local__map iframe{ width:100%; height:100%; min-height:340px; border:0; display:block; }

/* ---------- footer ---------- */
.footer{ padding:clamp(50px,7vw,90px) var(--pad) 30px; border-top:1px solid var(--line);
  position:relative; overflow:hidden; }
.footer__big{ font-family:var(--ff-display); font-weight:900; font-size:min(34vw,460px);
  line-height:.7; color:var(--ink-3); position:absolute; right:-2vw; bottom:-4vh;
  z-index:0; pointer-events:none; letter-spacing:-.02em; }
.footer__row,.footer__base{ position:relative; z-index:1; }
.footer__row{ display:grid; grid-template-columns:1.5fr 1fr 1fr; gap:40px;
  padding-bottom:48px; margin-bottom:24px; border-bottom:1px solid var(--line); }
.footer__col{ display:flex; flex-direction:column; gap:10px; }
.footer__col p{ color:var(--smoke); max-width:34ch; }
.footer__k{ font-family:var(--ff-mono); font-size:.68rem; letter-spacing:.14em;
  text-transform:uppercase; color:var(--bolt); margin-bottom:6px; }
.footer__col a{ color:var(--smoke); width:fit-content; transition:color .3s; }
.footer__col a:hover{ color:var(--bolt); }
.footer__base{ display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px;
  font-family:var(--ff-mono); font-size:.7rem; letter-spacing:.08em; text-transform:uppercase; color:var(--smoke); }

/* ---------- whatsapp float ---------- */
.wa-float{ position:fixed; right:22px; bottom:22px; z-index:7000;
  width:58px; height:58px; border-radius:50%; background:var(--bolt); color:#000;
  display:grid; place-content:center; box-shadow:0 10px 30px rgba(0,0,0,.5);
  transition:transform .35s var(--ease); }
.wa-float::after{ content:""; position:absolute; inset:0; border-radius:50%;
  border:2px solid var(--bolt); animation:pulse 2.2s var(--ease) infinite; }
.wa-float:hover{ transform:scale(1.08) rotate(-6deg); }
@keyframes pulse{ 0%{transform:scale(1);opacity:.7} 100%{transform:scale(1.7);opacity:0} }

/* ---------- reveal animations ---------- */
.reveal,.reveal-words{ opacity:0; transform:translateY(34px);
  transition:opacity .8s var(--ease), transform .8s var(--ease); }
.reveal.in,.reveal-words.in{ opacity:1; transform:none; }

/* ---------- responsive ---------- */
@media (max-width:1080px){
  .nav__links{ display:none; }
  .nav__burger{ display:flex; }
  .nav .btn--nav{ display:none; }
}
@media (max-width:860px){
  .perks{ grid-template-columns:repeat(2,1fr); }
  .stats__row{ grid-template-columns:repeat(2,1fr); }
  .manifesto__grid{ grid-template-columns:1fr; }
  .plans__grid{ grid-template-columns:1fr; }
  .local__grid{ grid-template-columns:1fr; }
  .footer__row{ grid-template-columns:1fr 1fr; }
  .footer__col:first-child{ grid-column:1 / -1; }
}
@media (max-width:760px){
  .mods__focus{ grid-template-columns:1fr; }
  .fighter{ grid-template-columns:1fr; }
  .bar{ grid-template-columns:110px 1fr; }
  .select{ gap:8px; }
  .select__arrow{ width:44px; height:44px; font-size:1.6rem; }
}
@media (max-width:540px){
  .perks{ grid-template-columns:1fr; }
  .stats__row{ grid-template-columns:1fr 1fr; }
  .footer__row{ grid-template-columns:1fr; }
  .hero__bottom{ align-items:flex-start; }
}

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
  *{ animation-duration:.001ms !important; animation-iteration-count:1 !important;
     transition-duration:.001ms !important; scroll-behavior:auto !important; }
  .reveal,.reveal-words{ opacity:1; transform:none; }
  .hero__title .w{ transform:none; }
}
