/* =============================================================================
   STUDIO CORPO LIVRE — Landing Page
   Paleta extraída do logo: lima #B0CE5C · oliva #9EB559 · cinza #676A5C
   ========================================================================== */

:root{
  --lime:      #B0CE5C;
  --lime-600:  #9EB559;
  --green-700: #6E8B3D;
  --green-900: #0F3D2E;
  --green-800: #17513c;
  --gray:      #676A5C;
  --ink:       #2C2E27;
  --muted:     #6b6f63;
  --bg:        #ffffff;
  --bg-soft:   #f6f8ef;
  --bg-mint:   #eef4df;
  --line:      #e7e9dd;
  --white:     #ffffff;
  --wa:        #25D366;

  --radius:    18px;
  --radius-sm: 12px;
  --shadow:    0 12px 34px rgba(23,81,60,.10);
  --shadow-lg: 0 24px 60px rgba(23,81,60,.16);
  --container:  1160px;
  --ease:      cubic-bezier(.16,.84,.44,1);

  --font-head: 'Poppins', system-ui, sans-serif;
  --font-body: 'Inter', system-ui, sans-serif;
}

*{ box-sizing:border-box; }
[hidden]{ display:none !important; }
html{ scroll-behavior:smooth; scroll-padding-top:98px; }
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--ink);
  background:var(--bg);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; cursor:pointer; }

.container{ width:100%; max-width:var(--container); margin:0 auto; padding:0 22px; }
.container--narrow{ max-width:820px; }

/* ---- Tipografia de seção ---- */
.section{ padding:76px 0; }
.section__eyebrow{
  display:inline-block; font-family:var(--font-head); font-weight:600;
  font-size:.8rem; letter-spacing:.12em; text-transform:uppercase;
  color:var(--green-700); background:var(--bg-mint);
  padding:6px 14px; border-radius:999px; margin-bottom:16px;
}
.section__title{
  font-family:var(--font-head); font-weight:700; letter-spacing:-.02em;
  font-size:clamp(1.6rem, 3.4vw, 2.5rem); line-height:1.15; margin:0 0 14px;
  color:var(--ink);
}
.section__lead{ font-size:1.06rem; color:var(--muted); max-width:60ch; margin:0 0 34px; }

/* ---- Botões ---- */
.btn{
  --btn-bg:var(--lime); --btn-fg:#22331a;
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  font-family:var(--font-head); font-weight:600; font-size:1rem;
  padding:14px 26px; border-radius:999px; border:none;
  background:var(--btn-bg); color:var(--btn-fg);
  transition:transform .2s var(--ease), box-shadow .2s var(--ease), background .2s;
  will-change:transform;
}
.btn--primary{ --btn-bg:var(--lime); box-shadow:0 10px 24px rgba(158,181,89,.45); }
.btn--primary:hover{ background:#bcd96a; transform:translateY(-2px); box-shadow:0 14px 30px rgba(158,181,89,.55); }
.btn--ghost{ background:rgba(255,255,255,.14); color:#fff; border:1.5px solid rgba(255,255,255,.55); backdrop-filter:blur(4px); }
.btn--ghost:hover{ background:rgba(255,255,255,.24); transform:translateY(-2px); }
.btn--wa{ --btn-bg:var(--wa); --btn-fg:#fff; box-shadow:0 10px 24px rgba(37,211,102,.4); }
.btn--wa:hover{ background:#1fbe5a; transform:translateY(-2px); }
.btn--lg{ padding:16px 32px; font-size:1.08rem; }
.btn--sm{ padding:10px 18px; font-size:.92rem; }
.btn--block{ width:100%; }

/* =========================================================
   1. BARRA PROMOCIONAL
   ========================================================= */
.promo-bar{
  position:relative; z-index:60;
  display:flex; align-items:center; justify-content:center; gap:10px;
  text-align:center; font-family:var(--font-head); font-weight:500;
  font-size:.95rem; padding:9px 16px;
  background:var(--green-900); color:#fff;
}
.promo-bar__emoji{ font-size:1.05rem; }

/* =========================================================
   HEADER
   ========================================================= */
.site-header{
  position:sticky; top:0; z-index:50;
  background:rgba(255,255,255,.86); backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
  transition:box-shadow .3s;
}
.site-header.is-scrolled{ box-shadow:0 6px 20px rgba(0,0,0,.06); }
.site-header__inner{ display:flex; align-items:center; justify-content:space-between; height:80px; }
.site-header__logo img{ height:56px; width:auto; }
.site-header__right{ display:flex; align-items:center; gap:16px; }
.site-header__badge{
  font-family:var(--font-head); font-weight:600; font-size:.82rem;
  color:var(--green-700); background:var(--bg-mint);
  padding:6px 12px; border-radius:999px; white-space:nowrap;
}

/* =========================================================
   2. HERO
   ========================================================= */
.hero{ position:relative; color:#fff; overflow:hidden; isolation:isolate; }
.hero__bg{ position:absolute; inset:0; z-index:-2; }
.hero__bg img{ width:100%; height:100%; object-fit:cover; object-position:72% center; transform:scale(1.06); transform-origin:right center; }
.hero__overlay{
  position:absolute; inset:0; z-index:-1;
  background:
    linear-gradient(100deg, rgba(15,61,46,.92) 0%, rgba(15,61,46,.72) 42%, rgba(15,61,46,.30) 78%, rgba(15,61,46,.15) 100%);
}
/* Skin da campanha (ex.: Operação Inverno = navy + azul) */
.hero--themed .hero__overlay{
  background:
    radial-gradient(120% 90% at 12% 20%, rgba(46,155,230,.28) 0%, rgba(46,155,230,0) 45%),
    radial-gradient(90% 80% at 95% 90%, rgba(46,155,230,.20) 0%, rgba(46,155,230,0) 50%),
    linear-gradient(105deg, var(--h-bg1,#0A1526) 0%, rgba(10,21,38,.92) 40%, rgba(4,10,20,.78) 72%, rgba(4,10,20,.55) 100%);
}
/* Conteúdo do hero ancorado à esquerda (evita vazio em telas largas) */
.hero__content{ max-width:none; width:100%; margin:0; padding:78px clamp(24px,7vw,120px) 84px; }
.hero__content > *{ max-width:600px; }

/* 1. Selo da campanha — pequeno, secundário */
.hero__selo{
  display:inline-flex; align-items:center; gap:8px; flex-wrap:wrap;
  font-family:var(--font-head); font-size:.86rem; line-height:1.3;
  color:#fff; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.22);
  padding:7px 14px; border-radius:999px; margin-bottom:20px;
}
.hero--themed .hero__selo{ background:rgba(46,155,230,.16); border-color:rgba(46,155,230,.4); }
.hero__selo b{ font-weight:700; }
.hero__selo small{ font-weight:400; opacity:.85; font-size:.86rem; }

/* 2. Headline — a MAIOR informação da tela (a promessa/benefício) */
.hero__headline{
  font-family:var(--font-head); font-weight:800; letter-spacing:-.02em;
  font-size:clamp(2rem, 4.6vw, 3.35rem); line-height:1.08; margin:0 0 16px;
  color:#fff; text-shadow:0 2px 24px rgba(0,0,0,.35); max-width:15ch;
}
.hero__headline b{ color:var(--lime); font-weight:800; white-space:nowrap; }
.hero--themed .hero__headline b{ color:var(--h-accent); text-shadow:0 0 30px rgba(46,155,230,.5); }

/* 3. Subheadline */
.hero__sub{ font-size:clamp(1rem,1.8vw,1.16rem); color:rgba(255,255,255,.9); margin:0 0 26px; max-width:52ch; }

/* 4. Card de oferta — destaque visual */
.hero__offer{
  display:inline-block; position:relative;
  background:rgba(255,255,255,.10); border:1px solid rgba(255,255,255,.22);
  backdrop-filter:blur(6px);
  padding:20px 26px 18px; border-radius:var(--radius); margin-bottom:24px;
}
.hero--themed .hero__offer{ background:rgba(46,155,230,.12); border-color:rgba(46,155,230,.5); box-shadow:0 0 0 1px rgba(46,155,230,.15), 0 18px 44px rgba(0,0,0,.35); }
.hero__offer-badge{
  display:inline-flex; align-items:center; gap:6px; margin-bottom:12px;
  font-family:var(--font-head); font-weight:700; font-size:.82rem; letter-spacing:.01em;
  background:#F5A623; color:#3a2600; padding:6px 13px; border-radius:999px;
  box-shadow:0 6px 16px rgba(245,166,35,.35);
}
.hero__offer-label{ display:block; font-family:var(--font-head); font-weight:500; text-transform:uppercase; letter-spacing:.05em; font-size:.86rem; color:rgba(255,255,255,.85); }
.hero__offer-value{
  display:block; font-family:var(--font-head); font-weight:800; letter-spacing:-.02em;
  font-size:clamp(2.8rem,7vw,3.9rem); line-height:1; color:var(--lime);
  text-shadow:0 2px 18px rgba(0,0,0,.25);
}
.hero--themed .hero__offer-value{ color:var(--h-accent); text-shadow:0 0 30px rgba(46,155,230,.45); }
.hero__offer-obs{ display:block; font-size:.94rem; color:rgba(255,255,255,.86); margin-top:4px; }

/* 5. Benefícios — checklist escaneável */
.hero__benefits{ list-style:none; padding:0; margin:0 0 26px; display:flex; flex-direction:column; gap:10px; }
.hero__benefits li{ position:relative; padding-left:30px; font-size:1rem; color:rgba(255,255,255,.94); max-width:46ch; }
.hero__benefits li::before{
  content:"✓"; position:absolute; left:0; top:50%; transform:translateY(-50%);
  width:20px; height:20px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  font-size:.72rem; font-weight:800; color:#0A1526; background:var(--lime);
}
.hero--themed .hero__benefits li::before{ background:var(--h-accent); color:#fff; }

/* 6. CTA único + link discreto */
.hero__cta{ display:flex; flex-direction:column; align-items:flex-start; gap:16px; margin-bottom:26px; }
.hero__cta .btn{ box-shadow:0 12px 30px rgba(158,181,89,.5); }
.hero__link{
  display:inline-flex; align-items:center; gap:13px;
  font-family:var(--font-head); font-weight:500; font-size:1rem; letter-spacing:.01em;
  color:rgba(255,255,255,.88); text-decoration:none; transition:color .25s var(--ease);
}
.hero__link-arrow{
  display:inline-flex; align-items:center; justify-content:center;
  width:34px; height:34px; border-radius:50%; font-size:1.05rem; line-height:1;
  border:1.5px solid rgba(255,255,255,.38);
  transition:transform .3s var(--ease), border-color .3s var(--ease), background .3s var(--ease);
}
.hero__link:hover{ color:#fff; }
.hero__link:hover .hero__link-arrow{ transform:translateX(4px); border-color:var(--lime); background:rgba(176,206,92,.16); }
.hero--themed .hero__link:hover .hero__link-arrow{ border-color:var(--h-accent); background:rgba(46,155,230,.20); }

/* 7. Prova social */
.hero__social{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.hero__social-stars{ color:#F5C518; letter-spacing:2px; font-size:1.05rem; }
.hero__social-text{ font-size:.92rem; color:rgba(255,255,255,.88); }

/* Flocos de neve decorativos */
.hero__flakes{ position:absolute; inset:0; z-index:0; pointer-events:none; overflow:hidden; }
.hero__content{ position:relative; z-index:1; }
.flake{ position:absolute; color:rgba(255,255,255,.55); animation:flakeFloat linear infinite; will-change:transform; }
.hero--themed .flake{ color:rgba(120,190,240,.6); }
@keyframes flakeFloat{ 0%{ transform:translateY(-10px); opacity:0; } 15%{ opacity:.9; } 100%{ transform:translateY(70px); opacity:0; } }

/* Contador — compacto, dentro do card de oferta */
.countdown{ margin-top:14px; padding-top:12px; border-top:1px solid rgba(255,255,255,.16); display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.countdown__label{ font-family:var(--font-head); font-size:.82rem; text-transform:uppercase; letter-spacing:.06em; color:rgba(255,255,255,.8); }
.countdown__inline{ font-family:var(--font-head); font-size:.95rem; color:#fff; letter-spacing:.02em; }
.countdown__inline b{ font-weight:800; font-size:1.1rem; }
.hero--themed .countdown__inline b{ color:var(--h-accent); }

/* =========================================================
   3. BARRA DE CONFIANÇA
   ========================================================= */
.trust{ background:var(--green-900); color:#fff; }
.trust__grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:18px; padding:26px 22px; }
.trust__grid > div{ text-align:center; padding:6px 8px; }
.trust__grid b{ display:block; font-family:var(--font-head); font-weight:700; font-size:clamp(1.2rem,2.4vw,1.7rem); color:var(--lime); }
.trust__grid span{ font-size:.9rem; color:rgba(255,255,255,.86); }

/* =========================================================
   4. BENEFÍCIOS
   ========================================================= */
.benefits{ background:var(--bg-soft); }
.benefits .section__title{ text-align:center; margin-bottom:44px; }
.benefits__grid{ display:grid; grid-template-columns:repeat(5,1fr); gap:18px; }
.benefit{
  background:#fff; border:1px solid var(--line); border-radius:var(--radius);
  padding:26px 20px; box-shadow:var(--shadow); transition:transform .25s var(--ease);
}
.benefit:hover{ transform:translateY(-5px); }
.benefit__icon{ font-size:1.9rem; margin-bottom:12px; display:block; }
.benefit h3{ font-family:var(--font-head); font-weight:600; font-size:1.02rem; margin:0 0 6px; }
.benefit p{ font-size:.9rem; color:var(--muted); margin:0; }

/* =========================================================
   5. MODALIDADES
   ========================================================= */
.modalities{ text-align:center; }
.modalities .section__lead{ margin-inline:auto; }
.modalities__cards{ display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-top:12px; }
.mod-card{
  display:flex; flex-direction:column; align-items:flex-start; gap:8px; text-align:left;
  background:#fff; border:2px solid var(--line); border-radius:var(--radius);
  padding:34px 30px; transition:all .25s var(--ease); position:relative; overflow:hidden;
}
.mod-card::after{
  content:""; position:absolute; left:0; bottom:0; height:5px; width:100%;
  background:linear-gradient(90deg,var(--lime),var(--lime-600)); transform:scaleX(0);
  transform-origin:left; transition:transform .3s var(--ease);
}
.mod-card:hover, .mod-card.is-active{ border-color:var(--lime); box-shadow:var(--shadow-lg); transform:translateY(-4px); }
.mod-card:hover::after, .mod-card.is-active::after{ transform:scaleX(1); }
.mod-card__emoji{ font-size:2.6rem; }
.mod-card__title{ font-family:var(--font-head); font-weight:700; font-size:1.4rem; }
.mod-card__desc{ color:var(--muted); font-size:.98rem; }
.mod-card__go{ margin-top:10px; font-family:var(--font-head); font-weight:600; color:var(--green-700); }

/* =========================================================
   6. MODALIDADE ESCOLHIDA
   ========================================================= */
.mod-detail{ background:var(--bg-mint); }
.mod-detail__inner{ display:grid; grid-template-columns:1fr 1fr; gap:46px; align-items:center; }
.mod-detail__media{ position:relative; border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-lg); }
.mod-detail__media img{ width:100%; height:100%; min-height:340px; object-fit:cover; }
.mod-detail__badge{
  position:absolute; left:18px; bottom:18px;
  background:var(--lime); color:#22331a; font-family:var(--font-head); font-weight:600;
  font-size:.9rem; padding:9px 16px; border-radius:999px; box-shadow:var(--shadow);
}
.mod-detail__list{ list-style:none; padding:0; margin:0 0 26px; display:grid; gap:14px; }
.mod-detail__list li{ display:flex; gap:14px; align-items:flex-start; }
.mod-detail__list .ic{ font-size:1.4rem; flex:0 0 auto; line-height:1.4; }
.mod-detail__list b{ font-family:var(--font-head); font-weight:600; display:block; }
.mod-detail__list span{ color:var(--muted); font-size:.94rem; }
/* Grade de aulas coletivas (chips) */
.mod-detail__tags{ margin:0 0 30px; }
.mod-detail__tags-label{ display:block; font-family:var(--font-head); font-weight:600; font-size:.82rem; text-transform:uppercase; letter-spacing:.07em; color:var(--green-700); margin-bottom:13px; }
.mod-detail__chips{ display:flex; flex-wrap:wrap; gap:9px; }
.mod-detail__chips .chip{
  font-family:var(--font-head); font-weight:500; font-size:.9rem; color:var(--ink);
  background:#fff; border:1px solid var(--line); padding:8px 15px; border-radius:999px;
  transition:border-color .2s var(--ease), background .2s var(--ease), transform .2s var(--ease);
}
.mod-detail__chips .chip:hover{ border-color:var(--lime); background:#fff; transform:translateY(-2px); box-shadow:var(--shadow); }
.mod-detail__note{
  display:inline-block; font-family:var(--font-head); font-weight:500; font-size:.9rem;
  color:var(--green-900); background:rgba(255,255,255,.7); border:1px dashed var(--green-700);
  padding:10px 15px; border-radius:12px; margin:0 0 26px;
}
.mod-detail.switching .mod-detail__body,
.mod-detail.switching .mod-detail__media{ opacity:0; transform:translateY(8px); }
.mod-detail__body, .mod-detail__media{ transition:opacity .28s var(--ease), transform .28s var(--ease); }

/* =========================================================
   7. GALERIA
   ========================================================= */
.gallery{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.gallery figure{ position:relative; margin:0; border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow); aspect-ratio:4/3; }
.gallery img{ width:100%; height:100%; object-fit:cover; transition:transform .5s var(--ease); }
.gallery figure:hover img{ transform:scale(1.06); }
.gallery figcaption{
  position:absolute; left:0; bottom:0; right:0; padding:14px 16px;
  font-family:var(--font-head); font-weight:600; color:#fff; font-size:1rem;
  background:linear-gradient(to top, rgba(15,61,46,.82), transparent);
}

/* =========================================================
   8. UNIDADES
   ========================================================= */
.units__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-top:8px; }
.unit-card{
  background:#fff; border:1px solid var(--line); border-radius:var(--radius);
  padding:28px 26px; box-shadow:var(--shadow); display:flex; flex-direction:column; gap:10px;
  transition:transform .25s var(--ease), box-shadow .25s;
}
.unit-card:hover{ transform:translateY(-5px); box-shadow:var(--shadow-lg); }
.unit-card h3{ font-family:var(--font-head); font-weight:700; font-size:1.35rem; margin:0; color:var(--green-900); }
.unit-card__row{ display:flex; gap:10px; font-size:.94rem; color:var(--muted); }
.unit-card__row .ic{ flex:0 0 auto; }
.unit-card__tags{ display:flex; flex-wrap:wrap; gap:7px; margin-top:4px; }
.unit-tag{
  font-family:var(--font-head); font-weight:600; font-size:.78rem; letter-spacing:.01em;
  color:var(--green-700); background:var(--bg-mint); padding:5px 11px; border-radius:999px;
}
.unit-tag--nat{ color:#0e5aa0; background:rgba(46,155,230,.14); }
.unit-card__note{
  font-size:.82rem; color:#a06a2a; background:#fdf4e6; border:1px solid #f2e0c4;
  padding:7px 12px; border-radius:10px; margin-top:2px;
}
.unit-card__actions{ display:flex; gap:10px; margin-top:12px; flex-wrap:wrap; }
.unit-card__actions a{
  flex:1 1 auto; text-align:center; font-family:var(--font-head); font-weight:600; font-size:.9rem;
  padding:10px 12px; border-radius:999px; transition:all .2s;
}
.unit-card__actions .u-wa{ background:var(--wa); color:#fff; }
.unit-card__actions .u-wa:hover{ background:#1fbe5a; }
.unit-card__actions .u-map{ background:var(--bg-mint); color:var(--green-700); }
.unit-card__actions .u-map:hover{ background:#e2ecc9; }

/* =========================================================
   9. DEPOIMENTOS
   ========================================================= */
.reviews{ background:var(--bg-soft); }
/* Carrossel */
.reviews__carousel{ position:relative; }
.reviews__viewport{ overflow:hidden; }
.reviews__track{ display:flex; gap:20px; transition:transform .45s var(--ease); will-change:transform; }
.review{ background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:24px 22px; box-shadow:var(--shadow); display:flex; flex-direction:column; gap:14px; }
.review__head{ display:flex; align-items:center; justify-content:space-between; }
.review__stars{ color:#f5b301; letter-spacing:2px; font-size:1rem; }
.review__g{ display:inline-flex; opacity:.9; }
.review__text{ font-size:.98rem; color:var(--ink); flex:1; line-height:1.55; }
.review__who{ display:flex; align-items:center; gap:12px; }
.review__avatar{ width:46px; height:46px; flex:0 0 auto; border-radius:50%; display:flex; align-items:center; justify-content:center; font-family:var(--font-head); font-weight:700; color:#fff; font-size:1rem; overflow:hidden; }
.review__avatar--photo{ object-fit:cover; padding:0; }
.review__meta b{ font-family:var(--font-head); font-weight:600; display:block; font-size:.98rem; color:var(--ink); }
.review__meta span{ font-size:.82rem; color:var(--muted); }
.reviews__nav{
  position:absolute; top:50%; transform:translateY(-50%); z-index:3;
  width:48px; height:48px; border-radius:50%; border:1px solid var(--line);
  background:#fff; color:var(--green-700); font-size:1.7rem; line-height:1;
  display:flex; align-items:center; justify-content:center; cursor:pointer;
  box-shadow:var(--shadow); transition:background .2s, transform .2s, opacity .2s;
}
.reviews__nav--prev{ left:-16px; }
.reviews__nav--next{ right:-16px; }
.reviews__nav:hover:not(:disabled){ background:var(--bg-mint); }
.reviews__nav:disabled{ opacity:.3; cursor:default; }
.reviews__dots{ display:flex; justify-content:center; gap:8px; margin-top:28px; }
.reviews__dot{ width:9px; height:9px; padding:0; border-radius:50%; border:none; background:#cfd6c2; cursor:pointer; transition:all .25s var(--ease); }
.reviews__dot.is-active{ background:var(--lime-600); width:26px; border-radius:6px; }

/* =========================================================
   10. FAQ
   ========================================================= */
.faq__list{ display:flex; flex-direction:column; gap:12px; }
.faq-item{ background:#fff; border:1px solid var(--line); border-radius:var(--radius-sm); overflow:hidden; transition:box-shadow .2s; }
.faq-item.is-open{ box-shadow:var(--shadow); }
.faq-item__q{
  width:100%; text-align:left; background:none; border:none;
  font-family:var(--font-head); font-weight:600; font-size:1.05rem; color:var(--ink);
  padding:20px 22px; display:flex; justify-content:space-between; align-items:center; gap:16px;
}
.faq-item__q .plus{ flex:0 0 auto; width:24px; height:24px; position:relative; transition:transform .3s var(--ease); }
.faq-item__q .plus::before, .faq-item__q .plus::after{ content:""; position:absolute; background:var(--green-700); border-radius:2px; }
.faq-item__q .plus::before{ top:11px; left:2px; right:2px; height:2px; }
.faq-item__q .plus::after{ left:11px; top:2px; bottom:2px; width:2px; }
.faq-item.is-open .plus{ transform:rotate(135deg); }
.faq-item__a{ max-height:0; overflow:hidden; transition:max-height .35s var(--ease); }
.faq-item__a p{ margin:0; padding:0 22px 22px; color:var(--muted); }

/* =========================================================
   11. FORMULÁRIO
   ========================================================= */
.form-section{ background:linear-gradient(180deg,var(--bg-mint),#fff); }
.form-card{ background:#fff; border:1px solid var(--line); border-radius:22px; box-shadow:var(--shadow-lg); padding:44px; }
.form-card__head{ text-align:center; margin-bottom:30px; }
.form-card__head .section__lead{ margin-inline:auto; }
.field{ margin-bottom:18px; display:flex; flex-direction:column; gap:7px; }
.field label{ font-family:var(--font-head); font-weight:500; font-size:.92rem; color:var(--ink); }
.field input, .field select{
  font-family:var(--font-body); font-size:1rem; color:var(--ink);
  padding:13px 15px; border:1.5px solid var(--line); border-radius:12px; background:#fbfcf7;
  transition:border-color .2s, box-shadow .2s;
}
.field input:focus, .field select:focus{ outline:none; border-color:var(--lime); box-shadow:0 0 0 4px rgba(176,206,92,.22); background:#fff; }
.field input.invalid, .field select.invalid{ border-color:#e05252; box-shadow:0 0 0 4px rgba(224,82,82,.14); }
.field-row{ display:grid; grid-template-columns:1fr 1fr; gap:18px; align-items:end; }
.field--check{ margin-bottom:18px; }
.wa-check{ display:flex; align-items:center; gap:9px; font-family:var(--font-body); font-size:.94rem; color:var(--muted); padding:13px 0; cursor:pointer; }
.wa-check input{ width:18px; height:18px; accent-color:var(--wa); }
.form-card__lgpd{ font-size:.82rem; color:var(--muted); text-align:center; margin:16px 0 0; }
.form-success{ margin-top:22px; padding:22px; border-radius:14px; background:var(--bg-mint); display:flex; flex-direction:column; gap:10px; text-align:center; }
.form-success strong{ font-family:var(--font-head); font-size:1.1rem; color:var(--green-900); }
.form-success span{ color:var(--muted); font-size:.95rem; }
.form-success .btn{ align-self:center; margin-top:6px; }

/* =========================================================
   12. RODAPÉ
   ========================================================= */
.site-footer{ background:var(--green-900); color:rgba(255,255,255,.82); padding:56px 0 26px; }
.site-footer__grid{ display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:34px; }
.site-footer__brand img{ height:46px; margin-bottom:16px; }
.site-footer__brand p{ font-size:.94rem; max-width:34ch; }
.site-footer__social{ display:flex; flex-wrap:wrap; gap:12px; margin-top:18px; }
.site-footer__social a{
  display:inline-flex; align-items:center; justify-content:center;
  width:44px; height:44px; border-radius:50%; color:#fff;
  background:rgba(255,255,255,.10); border:1px solid rgba(255,255,255,.20);
  transition:background .22s var(--ease), color .22s, border-color .22s, transform .22s var(--ease);
}
.site-footer__social a:hover{ background:var(--lime); color:#22331a; border-color:var(--lime); transform:translateY(-3px); }
.site-footer__social svg{ display:block; }
.site-footer__col h4{ font-family:var(--font-head); font-weight:600; color:#fff; font-size:1rem; margin:0 0 14px; }
.site-footer__col ul{ list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:9px; }
.site-footer__col a, .site-footer__col li{ font-size:.92rem; color:rgba(255,255,255,.78); transition:color .2s; }
.site-footer__col a:hover{ color:var(--lime); }
.site-footer__bottom{ display:flex; justify-content:space-between; gap:14px; flex-wrap:wrap; margin-top:40px; padding-top:22px; border-top:1px solid rgba(255,255,255,.14); font-size:.82rem; color:rgba(255,255,255,.6); }

/* =========================================================
   WHATSAPP FLUTUANTE
   ========================================================= */
.wa-float{
  position:fixed; right:20px; bottom:20px; z-index:80;
  width:60px; height:60px; border-radius:50%;
  background:var(--wa); color:#fff; display:flex; align-items:center; justify-content:center;
  box-shadow:0 10px 28px rgba(37,211,102,.5);
  transition:transform .25s var(--ease); animation:waPulse 2.6s infinite;
}
.wa-float:hover{ transform:scale(1.08); }
@keyframes waPulse{ 0%,100%{ box-shadow:0 10px 28px rgba(37,211,102,.5);} 50%{ box-shadow:0 10px 28px rgba(37,211,102,.5), 0 0 0 12px rgba(37,211,102,0);} }

/* =========================================================
   ANIMAÇÕES DE ENTRADA (discretas)
   ========================================================= */
.reveal{ opacity:0; transform:translateY(26px); transition:opacity .6s var(--ease), transform .6s var(--ease); }
.reveal.is-visible{ opacity:1; transform:none; }

@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  .reveal{ opacity:1; transform:none; transition:none; }
  .wa-float{ animation:none; }
}

/* =========================================================
   RESPONSIVO
   ========================================================= */
@media (max-width:960px){
  .benefits__grid{ grid-template-columns:repeat(2,1fr); }
  .units__grid{ grid-template-columns:1fr; max-width:460px; margin-inline:auto; }
  .mod-detail__inner{ grid-template-columns:1fr; gap:28px; }
  .site-footer__grid{ grid-template-columns:1fr 1fr; }
}
@media (max-width:680px){
  .section{ padding:56px 0; }
  .trust__grid{ grid-template-columns:repeat(2,1fr); gap:14px; }
  .benefits__grid{ grid-template-columns:1fr; }
  .modalities__cards{ grid-template-columns:1fr; }
  .gallery{ grid-template-columns:1fr 1fr; }
  .reviews__nav--prev{ left:-6px; }
  .reviews__nav--next{ right:-6px; }
  .reviews__nav{ width:40px; height:40px; font-size:1.4rem; }
  .field-row{ grid-template-columns:1fr; }
  .form-card{ padding:26px 20px; }
  /* Header do mobile mantém as proporções originais */
  .site-header__inner{ height:70px; }
  .site-header__logo img{ height:40px; }
  html{ scroll-padding-top:88px; }
  .site-header__badge{ display:none; }
  .hero__content{ padding:64px 22px 74px; }
  .site-footer__grid{ grid-template-columns:1fr; }
  .site-footer__bottom{ flex-direction:column; }
  .countdown__boxes > div{ min-width:56px; padding:8px 10px; }
}
