/* =========================================================
   AC PERSONAL AND TEAM TRAINER — landing
   Direção: graphite/preto + branco + vermelho da marca (#ED1E24)
   ========================================================= */

:root{
  --ink:       #0A0B0D;
  --ink-2:     #101216;
  --surface:   #14171B;
  --paper:     #F1F0EC;
  --paper-2:   #E4E2DB;
  --white:     #FFFFFF;
  --muted:     #8B9099;
  --muted-d:   #5E636B;
  --line:      rgba(255,255,255,.11);
  --line-d:    rgba(10,11,13,.14);
  --accent:    #ED1E24;            /* cor da marca (logo) — usada em áreas grandes e sobre o grafite */
  --accent-btn:#E41D23;            /* fundo de botão: 4.69:1 com texto branco (AA, com folga) */
  --accent-ink:#D31B20;            /* vermelho sobre fundo claro: 4.67:1 no papel (AA, com folga) */
  --accent-h:  #FF3238;
  --blue:      #2AA9E0;

  --pad: clamp(20px, 5vw, 72px);
  --maxw: 1440px;
  --sec: clamp(88px, 12vw, 176px);

  --ease: cubic-bezier(.22,.61,.28,1);
}

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

html{
  -webkit-text-size-adjust:100%;
  scroll-behavior:smooth;
  overflow-x:clip;
}
body{
  margin:0;
  background:var(--ink);
  color:var(--white);
  font-family:'Archivo','Helvetica Neue',Helvetica,Arial,sans-serif;
  font-size:16px;
  line-height:1.55;
  font-variation-settings:'wdth' 100;
  -webkit-font-smoothing:antialiased;
  overflow-x:clip;
}
img{ max-width:100%; height:auto; display:block; }
a{ color:inherit; text-decoration:none; }
h1,h2,h3{ margin:0; }
p{ margin:0; }
ul,ol{ margin:0; padding:0; list-style:none; }

.wrap{ width:100%; max-width:var(--maxw); margin-inline:auto; padding-inline:var(--pad); }

.skip{
  position:absolute; left:-9999px; top:0; z-index:200;
  background:var(--accent-btn); color:#fff; padding:12px 18px; font-weight:700;
}
.skip:focus{ left:0; }

:focus-visible{ outline:2px solid var(--accent); outline-offset:3px; }
main:focus{ outline:none; }

/* ---------- tipografia utilitária ---------- */
.h2{
  font-size:clamp(2.1rem, 5.4vw, 4.4rem);
  line-height:.94;
  letter-spacing:-.03em;
  font-weight:800;
  font-variation-settings:'wdth' 108,'wght' 800;
  text-transform:uppercase;
}
.label{
  font-size:.688rem;
  letter-spacing:.22em;
  text-transform:uppercase;
  font-weight:600;
  color:var(--muted);
  margin-bottom:clamp(18px,2.4vw,30px);
}
.kicker{
  display:flex; align-items:center; gap:10px; flex-wrap:wrap;
  font-size:.688rem; letter-spacing:.24em; text-transform:uppercase;
  font-weight:600; color:rgba(255,255,255,.72);
}
.kicker__dot{ width:5px; height:5px; background:var(--accent); border-radius:50%; display:inline-block; }
.stars{ color:var(--accent); letter-spacing:.08em; font-size:.8rem; }
.stars--lg{ font-size:1.05rem; }

/* ---------- botões ---------- */
.btn{
  --bh:56px;
  display:inline-flex; align-items:center; justify-content:center; gap:12px;
  height:var(--bh); padding-inline:26px;
  font-weight:700; font-size:.82rem; letter-spacing:.14em; text-transform:uppercase;
  border:1px solid transparent; border-radius:2px; cursor:pointer;
  transition:background .28s var(--ease), color .28s var(--ease),
             border-color .28s var(--ease), transform .28s var(--ease);
  will-change:transform;
}
.btn__ico{ width:18px; height:18px; transition:transform .28s var(--ease); }
.btn:hover .btn__ico{ transform:translateX(4px); }
.btn--accent{ background:var(--accent-btn); color:#fff; }
.btn--accent:hover{ background:var(--accent-h); transform:translateY(-2px); }
.btn--ghost{ border-color:rgba(255,255,255,.28); color:#fff; }
.btn--ghost:hover{ border-color:#fff; background:rgba(255,255,255,.06); transform:translateY(-2px); }
.btn--sm{ --bh:44px; padding-inline:18px; font-size:.7rem; letter-spacing:.12em; }
.btn--lg{ --bh:60px; padding-inline:32px; }
.btn--xl{ --bh:70px; padding-inline:44px; font-size:.9rem; }

/* =========================================================
   NAV
   ========================================================= */
.nav{
  position:fixed; inset:0 0 auto 0; z-index:100;
  transition:background .35s var(--ease), border-color .35s var(--ease), backdrop-filter .35s;
  border-bottom:1px solid transparent;
}
.nav.is-stuck{
  background:rgba(10,11,13,.82);
  backdrop-filter:blur(14px) saturate(1.2);
  -webkit-backdrop-filter:blur(14px) saturate(1.2);
  border-bottom-color:var(--line);
}
.nav__inner{
  max-width:var(--maxw); margin-inline:auto; padding:16px var(--pad);
  display:flex; align-items:center; justify-content:space-between; gap:20px;
}
.brand{ display:inline-flex; flex-direction:column; align-items:flex-start; gap:5px; }
.brand__logo{
  height:30px; width:auto; display:block;
  transition:opacity .25s var(--ease);
}
.brand:hover .brand__logo{ opacity:.82; }
@media (min-width:768px){ .brand__logo{ height:34px; } }
.brand__sub{
  font-size:.5rem; letter-spacing:.17em; text-transform:uppercase;
  color:var(--muted); font-weight:600; white-space:nowrap;
}
.nav__right{ display:flex; align-items:center; gap:22px; }
.nav__place{
  font-size:.7rem; letter-spacing:.16em; text-transform:uppercase;
  color:var(--muted); transition:color .25s var(--ease);
}
.nav__place:hover{ color:#fff; }
@media (max-width:719px){ .nav__place{ display:none; } }

/* =========================================================
   HERO
   ========================================================= */
.hero{
  position:relative;
  min-height:100svh;
  display:grid;
  isolation:isolate;
  overflow:clip;
}
.hero__media{
  position:absolute; inset:0; z-index:0; overflow:hidden;
}
.hero__media picture{ display:block; height:100%; }
.hero__media img{
  width:100%; height:100%; object-fit:cover; object-position:30% 40%;
  filter:grayscale(.38) contrast(1.1) brightness(.72) saturate(.88);
  transform:scale(1.08);
  will-change:transform;
}
.hero__media::after{
  content:''; position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(10,11,13,.82) 0%, rgba(10,11,13,.22) 28%, rgba(10,11,13,.92) 78%),
    radial-gradient(135% 80% at 15% 70%, rgba(10,11,13,.6), transparent 70%);
}
.hero__mediaCaption{ display:none; }

.hero__inner{
  position:relative; z-index:2;
  align-self:end;
  width:100%; max-width:var(--maxw); margin-inline:auto;
  padding:0 var(--pad) clamp(48px,9vh,88px);
}

.hero__title{
  margin:clamp(18px,3vh,30px) 0 0;
  font-size:clamp(2.2rem, 10.5vw, 4.6rem);
  line-height:.88;
  letter-spacing:-.045em;
  font-weight:900;
  font-variation-settings:'wdth' 112,'wght' 900;
  text-transform:uppercase;
}
.hero__title .line{ display:block; }
.line--accent{ color:var(--accent); }

.hero__sub{
  margin-top:clamp(18px,3vh,28px);
  max-width:46ch;
  font-size:clamp(.95rem,1.15vw,1.06rem);
  color:rgba(255,255,255,.76);
  line-height:1.6;
}
.hero__cta{
  margin-top:clamp(26px,4vh,40px);
  display:flex; flex-wrap:wrap; gap:12px;
}
@media (max-width:539px){
  .hero__cta{ flex-direction:column; align-items:stretch; }
}
.hero__meta{
  margin-top:clamp(30px,5vh,48px);
  padding-top:20px;
  border-top:1px solid var(--line);
  display:flex; flex-wrap:wrap; align-items:center; gap:14px 32px;
}
.hero__metaItem{ display:flex; align-items:center; gap:10px; }
.hero__score{
  font-size:1.5rem; font-weight:900; line-height:1;
  font-variation-settings:'wdth' 112,'wght' 900;
}
.hero__metaTxt{
  font-size:.688rem; letter-spacing:.16em; text-transform:uppercase; color:var(--muted);
}
.hero__scroll{
  position:absolute; z-index:2; left:50%; bottom:16px; transform:translateX(-50%);
  width:1px; height:44px; background:var(--line); overflow:hidden;
}
.hero__scroll span{
  position:absolute; inset:0; background:var(--accent);
  animation:scrollLine 2.4s var(--ease) infinite;
}
@keyframes scrollLine{
  0%{ transform:translateY(-100%); }
  55%,100%{ transform:translateY(100%); }
}

@media (min-width:1120px){
  .hero{ grid-template-columns:1fr minmax(320px, 35vw); align-items:stretch; }
  .hero__media{ position:relative; grid-column:2; grid-row:1; inset:auto; }
  .hero__media img{
    object-position:34% 46%;
    filter:grayscale(.34) contrast(1.06) brightness(.78) saturate(.9);
    transform:scale(1.06);
  }
  .hero__media::after{
    background:
      linear-gradient(90deg, var(--ink) 0%, rgba(10,11,13,.55) 26%, rgba(10,11,13,0) 62%),
      linear-gradient(180deg, rgba(10,11,13,.5), rgba(10,11,13,0) 30%, rgba(10,11,13,.6));
  }
  .hero__mediaCaption{
    display:block; position:absolute; z-index:2; left:24px; bottom:24px;
    font-size:.625rem; letter-spacing:.2em; text-transform:uppercase;
    color:rgba(255,255,255,.7);
    writing-mode:vertical-rl; transform:rotate(180deg);
    left:auto; right:20px; bottom:28px;
  }
  .hero__inner{
    grid-column:1; grid-row:1;
    align-self:center;
    margin:0; max-width:none;
    padding:120px var(--pad) 60px;
  }
  .hero__title{ font-size:clamp(3.4rem, 4.8vw, 4.7rem); line-height:.86; }
  .hero__scroll{ left:var(--pad); transform:none; }
}
@media (min-width:1600px){
  .hero__inner{ padding-left:calc((100vw - var(--maxw))/2 + var(--pad)); }
}

/* =========================================================
   FAIXA DE CONFIANÇA
   ========================================================= */
.strip{
  background:var(--accent); color:#0A0B0D;
  overflow:hidden; position:relative;
  border-block:1px solid rgba(0,0,0,.18);
}
.strip__track{ display:flex; width:max-content; animation:marquee 34s linear infinite; }
.strip:hover .strip__track{ animation-play-state:paused; }
.strip__set{ display:flex; align-items:center; padding:15px 0; }
.strip__set span{
  font-size:.72rem; font-weight:700; letter-spacing:.2em; text-transform:uppercase;
  white-space:nowrap;
}
.strip__set i{ font-style:normal; opacity:.45; padding-inline:22px; font-weight:700; }
@keyframes marquee{ to{ transform:translateX(-50%); } }

/* =========================================================
   PROBLEMA
   ========================================================= */
.problem{ padding-block:var(--sec); background:var(--ink); }
.problem__title{
  font-size:clamp(2.2rem, 6.4vw, 5.4rem);
  line-height:.94; letter-spacing:-.035em; font-weight:900;
  font-variation-settings:'wdth' 110,'wght' 900;
  text-transform:uppercase;
  max-width:16ch;
}
.problem__title em{ font-style:normal; color:var(--muted-d); }
.problem__list{
  margin-top:clamp(40px,6vw,72px);
  display:grid; gap:0;
  border-top:1px solid var(--line);
  max-width:820px;
}
.problem__list li{
  display:flex; align-items:baseline; gap:20px;
  padding:20px 0; border-bottom:1px solid var(--line);
  font-size:clamp(1rem,1.5vw,1.22rem);
  color:rgba(255,255,255,.82);
}
.problem__list li span{
  font-size:.625rem; letter-spacing:.2em; text-transform:uppercase;
  color:var(--accent); font-weight:700; flex:none; width:18px;
}
.problem__punch{
  margin-top:clamp(40px,6vw,72px);
  font-size:clamp(1.4rem,3.4vw,2.6rem);
  line-height:1.06; letter-spacing:-.025em; font-weight:800;
  font-variation-settings:'wdth' 108,'wght' 800;
  text-transform:uppercase;
  max-width:20ch;
  border-left:3px solid var(--accent);
  padding-left:clamp(16px,2vw,26px);
}

/* =========================================================
   MÉTODO  (paper)
   ========================================================= */
.method{ padding-block:var(--sec); background:var(--paper); color:var(--ink); }
.method .label{ color:var(--muted-d); }
.method__head{ max-width:760px; }
.method__grid{
  margin-top:clamp(46px,7vw,90px);
  display:grid; gap:0;
}
.step{
  padding:clamp(26px,3.4vw,40px) 0;
  border-top:1px solid var(--line-d);
  display:grid; gap:8px;
}
.step__num{
  font-size:clamp(2.4rem,5.4vw,4.6rem);
  font-weight:900; line-height:.8; letter-spacing:-.04em;
  font-variation-settings:'wdth' 112,'wght' 900;
  color:transparent;
  -webkit-text-stroke:1.4px rgba(10,11,13,.32);
  margin-bottom:10px;
}
.step__title{
  font-size:clamp(1.3rem,2.4vw,2rem);
  font-weight:800; letter-spacing:-.02em; text-transform:uppercase;
  font-variation-settings:'wdth' 108,'wght' 800;
}
.step__txt{ color:rgba(10,11,13,.66); max-width:44ch; font-size:1rem; line-height:1.6; }
.method__fig{ margin:clamp(30px,4vw,0) 0 0; position:relative; }
.method__fig img{
  width:100%; aspect-ratio:16/10; object-fit:cover; object-position:50% 58%;
  filter:grayscale(.3) contrast(1.05) saturate(.9);
}
@media (min-width:900px){ .method__fig img{ aspect-ratio:auto; } }
.method__fig figcaption{
  margin-top:12px; font-size:.625rem; letter-spacing:.18em; text-transform:uppercase;
  color:var(--muted-d);
}

@media (min-width:900px){
  .method__grid{
    grid-template-columns:repeat(12,1fr);
    column-gap:clamp(20px,2.6vw,44px);
    row-gap:0;
  }
  .step{ border-top:1px solid var(--line-d); }
  .step--1{ grid-column:1 / span 5; grid-row:1; }
  .step--2{ grid-column:4 / span 5; grid-row:2; }
  .step--3{ grid-column:7 / span 5; grid-row:3; }
  .method__fig{
    grid-column:9 / span 4; grid-row:1 / span 2;
    align-self:center; margin:0;
  }
  .step__num{ -webkit-text-stroke-width:1.6px; }
}
@media (min-width:1200px){
  .step--1{ grid-column:1 / span 4; }
  .step--2{ grid-column:3 / span 4; }
  .step--3{ grid-column:5 / span 4; }
  .method__fig{ grid-column:9 / span 4; grid-row:1 / span 3; align-self:center; }
}

/* =========================================================
   ESTÚDIO
   ========================================================= */
.studio{ padding-block:var(--sec); background:var(--ink); }
.studio__head{ max-width:760px; }
.studio__lead{
  margin-top:22px; color:var(--muted); max-width:52ch; font-size:1.02rem; line-height:1.65;
}
.gallery{
  margin-top:clamp(44px,6vw,86px);
  display:grid; gap:clamp(14px,2vw,26px);
  grid-template-columns:1fr;
}
.gal{ margin:0; position:relative; overflow:hidden; }
.gal picture{ display:block; overflow:hidden; background:var(--surface); }
.gal img{
  width:100%; height:100%; object-fit:cover; object-position:50% 56%;
  filter:grayscale(.34) contrast(1.08) brightness(.92) saturate(.85);
  transition:transform .9s var(--ease), filter .6s var(--ease);
}
.gal:hover img{ transform:scale(1.045); filter:grayscale(.1) contrast(1.06) brightness(1) saturate(1); }
.gal figcaption{
  margin-top:12px; display:flex; align-items:center; gap:10px;
  font-size:.625rem; letter-spacing:.2em; text-transform:uppercase; color:var(--muted);
}
.gal figcaption i{ font-style:normal; color:var(--accent); font-weight:700; }
/* em telas estreitas o recorte 3/4 corta teto/chão: proporções mais suaves */
.gal--a picture{ aspect-ratio:4/5; }
.gal--b picture{ aspect-ratio:16/11; }
.gal--c picture{ aspect-ratio:1/1; }
/* enquadramento por foto: manter a parede AC e os equipamentos no recorte */
.gal--a img{ object-position:50% 34%; }
.gal--b img{ object-position:50% 55%; }
.gal--c img{ object-position:50% 62%; }

@media (min-width:820px){
  .gallery{ grid-template-columns:repeat(12,1fr); align-items:start; }
  .gal--a{ grid-column:1 / span 5; }
  .gal--b{ grid-column:7 / span 6; margin-top:clamp(40px,7vw,110px); }
  .gal--c{ grid-column:2 / span 4; margin-top:clamp(20px,3vw,44px); }
  .gal--a picture{ aspect-ratio:3/4; }
  .gal--b picture{ aspect-ratio:5/4; }
  .gal--c picture{ aspect-ratio:3/4; }
  .gal--c img{ object-position:50% 50%; }
}

.studio__facts{
  margin-top:clamp(48px,7vw,96px);
  display:grid; gap:0;
  border-top:1px solid var(--line);
}
.fact{
  display:grid; gap:6px; padding:22px 0; border-bottom:1px solid var(--line);
  transition:padding-left .3s var(--ease);
}
a.fact:hover{ padding-left:10px; }
.fact__k{ font-size:.625rem; letter-spacing:.2em; text-transform:uppercase; color:var(--accent); font-weight:700; }
.fact__v{ font-size:clamp(1rem,1.5vw,1.16rem); color:rgba(255,255,255,.86); }
.fact__sub{ color:var(--muted); font-size:.875rem; }
@media (min-width:600px){
  .studio__facts{ grid-template-columns:repeat(2,1fr); column-gap:clamp(20px,3vw,52px); }
}
@media (min-width:1000px){
  .studio__facts{ grid-template-columns:repeat(4,1fr); }
}

/* =========================================================
   TREINO REAL / ALUNOS
   ========================================================= */
.real{ padding-block:var(--sec); background:var(--ink-2); }
.real__head{ max-width:760px; }
.real__lead{
  margin-top:22px; color:var(--muted); max-width:54ch;
  font-size:1.02rem; line-height:1.65;
}
.real__grid{
  margin-top:clamp(44px,6vw,86px);
  display:grid; gap:clamp(14px,2vw,26px);
  grid-template-columns:1fr;
}
.rv{ margin:0; position:relative; }
.rv picture, .rv .rv__v{ display:block; overflow:hidden; background:var(--surface); }
.rv img, .rv .rv__v{
  width:100%; height:100%; object-fit:cover;
  filter:grayscale(.3) contrast(1.06) brightness(.94) saturate(.88);
  transition:filter .6s var(--ease);
}
.rv:hover img, .rv:hover .rv__v{ filter:grayscale(0) contrast(1.04) brightness(1) saturate(1); }
.rv picture{ aspect-ratio:4/5; }
.rv .rv__v{ aspect-ratio:9/16; }
.rv--4 .rv__v{ aspect-ratio:16/9; }
.rv figcaption{
  margin-top:12px; display:flex; align-items:center; gap:10px;
  font-size:.625rem; letter-spacing:.2em; text-transform:uppercase; color:var(--muted);
}
.rv figcaption i{ font-style:normal; color:var(--accent); font-weight:700; }

@media (min-width:820px){
  .real__grid{ grid-template-columns:repeat(12,1fr); align-items:start; }
  .rv--1{ grid-column:1 / span 4; }
  .rv--2{ grid-column:5 / span 4; margin-top:clamp(30px,5vw,72px); }
  .rv--3{ grid-column:9 / span 4; }
  .rv--4{ grid-column:1 / span 7; margin-top:clamp(20px,3vw,48px); }
  .rv--5{ grid-column:8 / span 5; margin-top:clamp(20px,3vw,48px); }
  .rv--5 picture{ aspect-ratio:3/4; }
}

/* =========================================================
   PROVA
   ========================================================= */
.proof{ padding-block:var(--sec); background:var(--ink); }
.proof__top{
  display:grid; gap:clamp(28px,4vw,56px);
}
.proof__score{
  display:grid; gap:8px; align-content:start;
  border-left:3px solid var(--accent); padding-left:clamp(16px,2vw,26px);
}
.proof__num{
  font-size:clamp(3.6rem,9vw,7rem); line-height:.82; font-weight:900;
  letter-spacing:-.05em; font-variation-settings:'wdth' 112,'wght' 900;
}
.proof__cap{ font-size:.688rem; letter-spacing:.2em; text-transform:uppercase; color:var(--muted); }
@media (min-width:900px){
  .proof__top{ grid-template-columns:auto 1fr; align-items:end; }
  .proof__intro{ justify-self:end; text-align:right; }
  .proof__intro .label{ margin-bottom:16px; }
}

.quote{ margin:0; }
.quote--hero{
  margin-top:clamp(46px,6vw,86px);
  border-top:1px solid var(--line); padding-top:clamp(28px,4vw,48px);
}
.quote--hero p{
  font-size:clamp(1.25rem,3vw,2.15rem);
  line-height:1.24; letter-spacing:-.022em; font-weight:600;
  font-variation-settings:'wdth' 102,'wght' 600;
  max-width:24ch;
}
.quote cite{
  display:block; margin-top:20px;
  font-style:normal; font-size:.688rem; letter-spacing:.18em; text-transform:uppercase;
  color:#fff; font-weight:700;
}
.quote cite i{ font-style:normal; color:var(--muted); font-weight:500; }
.quote--hero p{ color:#fff; }

.quotes{
  margin-top:clamp(40px,5vw,72px);
  display:grid; gap:clamp(16px,2vw,26px);
}
.quotes .quote{
  border:1px solid var(--line); padding:clamp(22px,2.6vw,34px);
  background:var(--surface);
  transition:border-color .3s var(--ease), transform .4s var(--ease);
}
.quotes .quote:hover{ border-color:rgba(255,255,255,.28); transform:translateY(-3px); }
.quotes .quote p{
  font-size:1.02rem; line-height:1.5; color:rgba(255,255,255,.84);
}
.quotes .quote cite{ color:var(--muted); font-weight:600; }
@media (min-width:820px){ .quotes{ grid-template-columns:repeat(3,1fr); } }

/* =========================================================
   SOBRE
   ========================================================= */
.about{ padding-block:var(--sec); background:var(--ink-2); }
.about__grid{ display:grid; gap:clamp(34px,5vw,72px); }
@media (min-width:900px){
  .about__grid{ grid-template-columns:minmax(280px,.8fr) 1fr; align-items:center; }
}
.about__lead{
  margin-top:24px; color:rgba(255,255,255,.78); max-width:50ch;
  font-size:clamp(1rem,1.3vw,1.12rem); line-height:1.65;
}

/* retrato do responsável */
.about__fig{ margin:0; max-width:440px; }
@media (max-width:899px){ .about__fig{ margin-inline:auto; } }
.about__fig picture{ display:block; overflow:hidden; background:var(--surface); aspect-ratio:4/5; }
@media (min-width:900px){ .about__fig picture{ aspect-ratio:3/4; } }
.about__fig img{
  width:100%; height:100%; object-fit:cover; object-position:50% 28%;
  filter:grayscale(.28) contrast(1.06) brightness(.95) saturate(.9);
  transition:filter .6s var(--ease), transform .9s var(--ease);
}
.about__fig:hover img{ filter:none; transform:scale(1.03); }
.about__fig figcaption{
  margin-top:12px; font-size:.625rem; letter-spacing:.2em;
  text-transform:uppercase; color:var(--muted);
}

/* ---------- equipe ---------- */
.team{
  margin-top:clamp(64px,9vw,128px);
  padding-top:clamp(40px,5vw,64px);
  border-top:1px solid var(--line);
  display:grid; gap:clamp(24px,3vw,40px);
  grid-template-columns:repeat(2,1fr);
}
.team__txt{ grid-column:1 / -1; }
.team__title{
  font-size:clamp(1.6rem,3.6vw,2.8rem);
  line-height:.96; letter-spacing:-.03em; font-weight:800;
  font-variation-settings:'wdth' 108,'wght' 800;
  text-transform:uppercase;
}
.team__lead{
  margin-top:18px; color:var(--muted); max-width:46ch;
  font-size:1rem; line-height:1.65;
}
.team__lead strong{ color:#fff; font-weight:700; }
.team__grid{
  grid-column:1 / -1;
  display:flex; gap:clamp(12px,2vw,22px);
  overflow-x:auto; scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
  padding-bottom:4px;
}
.team__grid::-webkit-scrollbar{ display:none; }
.team__card{ flex:0 0 68%; scroll-snap-align:start; }
.team__card figure{ margin:0; }
.team__card picture{ display:block; overflow:hidden; background:var(--surface); aspect-ratio:3/4; }
.team__card img{
  width:100%; height:100%; object-fit:cover; object-position:50% 50%;
  filter:grayscale(.32) contrast(1.06) brightness(.95) saturate(.88);
  transition:filter .6s var(--ease), transform .9s var(--ease);
}
.team__card:hover img{ filter:none; transform:scale(1.03); }
/* o retrato do Anderson é mais estreito que os dos colegas: o recorte desce
   para enquadrar rosto e torso na mesma altura das colegas */
.team__card:first-child img{ object-position:50% 92%; }
.team__nome{
  margin-top:12px; font-size:.75rem; letter-spacing:.14em; text-transform:uppercase;
  font-weight:700; color:#fff;
}
@media (min-width:640px){
  .team__grid{ display:grid; grid-template-columns:repeat(2,1fr); overflow:visible; }
  .team__card{ flex:none; }
}

.team__expo{ margin:0; grid-column:1 / -1; }
.team__expo picture{ display:block; overflow:hidden; background:var(--surface); aspect-ratio:16/9; }
.team__expo img{
  width:100%; height:100%; object-fit:cover; object-position:50% 38%;
  filter:grayscale(.34) contrast(1.06) brightness(.9) saturate(.85);
  transition:filter .6s var(--ease);
}
.team__expo:hover img{ filter:none; }
.team__expo figcaption{
  margin-top:12px; font-size:.625rem; letter-spacing:.2em;
  text-transform:uppercase; color:var(--muted);
}

@media (min-width:900px){
  .team{ grid-template-columns:repeat(12,1fr); align-items:start; }
  .team__txt{ grid-column:1 / span 3; align-self:center; }
  .team__grid{ grid-column:5 / span 8; grid-template-columns:repeat(4,1fr); }
  .team__expo{ grid-column:5 / span 8; margin-top:clamp(16px,2vw,28px); }
}

/* =========================================================
   OFERTA (paper)
   ========================================================= */
.offer{ padding-block:var(--sec); background:var(--paper); color:var(--ink); }
.offer .label{ color:var(--muted-d); }
.offer__grid{ display:grid; gap:clamp(36px,5vw,80px); }
@media (min-width:960px){
  .offer__grid{ grid-template-columns:minmax(260px,.7fr) 1fr; align-items:start; }
  .offer__head{ position:sticky; top:110px; }
}
.offer__note{
  margin-top:24px; color:rgba(10,11,13,.6); max-width:34ch;
  font-size:.94rem; line-height:1.6;
  border-top:1px solid var(--line-d); padding-top:20px;
}
.offer__list{ display:grid; }
.offer__list li{
  display:flex; gap:clamp(18px,2.6vw,38px); align-items:baseline;
  padding:clamp(22px,2.8vw,32px) 0;
  border-top:1px solid var(--line-d);
}
.offer__list li:last-child{ border-bottom:1px solid var(--line-d); }
.offer__list li > span{
  font-size:.688rem; letter-spacing:.16em; font-weight:700; color:var(--accent-ink);
  flex:none; padding-top:6px;
}
.offer__list h3{
  font-size:clamp(1.15rem,2.1vw,1.7rem); font-weight:800; letter-spacing:-.02em;
  text-transform:uppercase; font-variation-settings:'wdth' 106,'wght' 800;
}
.offer__list p{ margin-top:8px; color:rgba(10,11,13,.62); max-width:46ch; line-height:1.6; }

/* =========================================================
   CTA FINAL
   ========================================================= */
.final{
  position:relative; overflow:clip;
  padding-block:clamp(96px,15vw,200px);
  background:var(--ink); isolation:isolate;
}
.final__bg{ position:absolute; inset:0; z-index:-1; }
.final__bg picture, .final__bg img{ width:100%; height:100%; display:block; }
.final__bg img{
  object-fit:cover; object-position:50% 40%;
  filter:grayscale(.7) contrast(1.15) brightness(.34) saturate(.6) blur(1px);
  transform:scale(1.06);
}
.final__bg::after{
  content:''; position:absolute; inset:0;
  background:radial-gradient(90% 70% at 50% 50%, rgba(10,11,13,.62), rgba(10,11,13,.94));
}
.final__inner{ text-align:center; display:grid; justify-items:center; }
.final .kicker{ justify-content:center; }
.final__title{
  margin-top:22px;
  font-size:clamp(2.1rem,7.6vw,6rem);
  line-height:.9; letter-spacing:-.045em; font-weight:900;
  font-variation-settings:'wdth' 112,'wght' 900;
  text-transform:uppercase;
}
.final__title em{ font-style:normal; color:var(--accent); }
.final__sub{
  margin-top:26px; max-width:40ch; color:rgba(255,255,255,.76);
  font-size:clamp(.98rem,1.3vw,1.1rem); line-height:1.6;
}
.final .btn--xl{ margin-top:clamp(30px,4vw,46px); }
.final__phone{ margin-top:24px; }
.final__phone a{
  display:inline-flex; align-items:center; min-height:44px; /* alvo de toque */
  font-size:.75rem; letter-spacing:.2em; text-transform:uppercase; color:var(--muted);
  border-bottom:1px solid rgba(255,255,255,.2); padding-bottom:3px;
  transition:color .25s var(--ease), border-color .25s var(--ease);
}
.final__phone a:hover{ color:#fff; border-color:#fff; }

/* =========================================================
   FOOTER
   ========================================================= */
.foot{ background:var(--ink); border-top:1px solid var(--line); padding-top:clamp(52px,7vw,88px); }
.foot__grid{ display:grid; gap:clamp(30px,4vw,48px); padding-bottom:clamp(46px,6vw,80px); }
@media (min-width:820px){ .foot__grid{ grid-template-columns:1.3fr repeat(3,1fr); } }
.foot__logo{ height:52px; width:auto; opacity:.92; }
.foot__col{ display:grid; gap:10px; align-content:start; }
.foot__k{
  font-size:.625rem; letter-spacing:.2em; text-transform:uppercase; color:var(--accent);
  font-weight:700; margin-bottom:4px;
}
.foot__col a, .foot__col p{ color:var(--muted); font-size:.94rem; line-height:1.6; }
.foot__col a{
  transition:color .25s var(--ease); width:fit-content;
  display:inline-flex; align-items:center; min-height:44px; /* alvo de toque */
}
.foot__col a:hover{ color:#fff; }
.foot__base{
  display:flex; flex-wrap:wrap; gap:10px 24px; justify-content:space-between;
  border-top:1px solid var(--line); padding-block:22px 92px; /* folga para o botão flutuante */
  font-size:.688rem; letter-spacing:.14em; text-transform:uppercase; color:var(--muted);
}

/* =========================================================
   FAB WhatsApp
   ========================================================= */
.fab{
  position:fixed; z-index:90; right:16px; bottom:16px;
  width:54px; height:54px; border-radius:50%;
  background:var(--accent-btn); color:#fff;
  display:grid; place-items:center;
  box-shadow:0 10px 30px rgba(0,0,0,.45);
  opacity:0; visibility:hidden; transform:translateY(14px) scale(.9);
  transition:opacity .35s var(--ease), transform .35s var(--ease),
             visibility .35s, background .25s var(--ease);
}
.fab.is-on{ opacity:1; visibility:visible; transform:none; }
.fab:hover{ background:var(--accent-h); }
.fab svg{ width:26px; height:26px; }
@media (min-width:768px){ .fab{ right:24px; bottom:24px; width:58px; height:58px; } }
/* no celular quem conduz é a barra fixa, não o botão flutuante */
@media (max-width:767px){ .fab{ display:none; } }

/* =========================================================
   BARRA FIXA DE CONTATO (mobile)
   ========================================================= */
.cta-bar{
  position:fixed; z-index:95; left:0; right:0; bottom:0;
  display:none; gap:1px;
  background:var(--line);
  padding-bottom:env(safe-area-inset-bottom);
  transform:translateY(102%);
  transition:transform .4s var(--ease);
  box-shadow:0 -12px 30px rgba(0,0,0,.4);
}
.cta-bar.is-on{ transform:none; }
.cta-bar a{
  flex:1; min-height:56px;
  display:flex; align-items:center; justify-content:center; gap:10px;
  font-weight:700; font-size:.78rem; letter-spacing:.13em; text-transform:uppercase;
}
.cta-bar a svg{ width:17px; height:17px; flex:none; }
.cta-bar__call{ background:var(--surface); color:#fff; flex:0 0 38%; }
.cta-bar__wa{ background:var(--accent-btn); color:#fff; }
.cta-bar__call:active{ background:#1b1f24; }
.cta-bar__wa:active{ background:var(--accent-h); }
@media (max-width:767px){ .cta-bar{ display:flex; } }
/* telas bem estreitas (320–360px): mantém "Quero começar" em uma linha */
@media (max-width:360px){
  .cta-bar a{ font-size:.7rem; letter-spacing:.08em; gap:8px; white-space:nowrap; }
  .cta-bar__call{ flex-basis:34%; }
}

/* =========================================================
   MOTION
   ========================================================= */
.reveal{
  opacity:0;
  transform:translateY(20px);
  filter:blur(4px);
  transition:opacity .8s var(--ease), transform .8s var(--ease), filter .8s var(--ease);
  transition-delay:var(--rd, 0ms);
}
.reveal.is-in{ opacity:1; transform:none; filter:none; }

@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{
    animation-duration:.001ms !important; animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
  }
  .reveal{ opacity:1; transform:none; filter:none; }
  .strip__track{ animation:none; }
  .hero__media img{ transform:scale(1.02) !important; }
  /* a barra de contato continua aparecendo, só não desliza */
  .cta-bar{ transform:none; }
}
