/* ═══════════════════════════════════════════════════════════
   ANDRÉ CASTRO — FORMAÇÃO EM THETAHEALING®
   Landing Page | HTML5 + CSS + GSAP | roda local (file://)
   Sem servidor, sem build, sem internet — abre com duplo clique.
   ═══════════════════════════════════════════════════════════ */

/* ═══ FONTES — Poppins local (assets/fonts), subset latin ═══ */
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url('./assets/fonts/poppins-300.woff2') format('woff2');
}
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('./assets/fonts/poppins-400.woff2') format('woff2');
}
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('./assets/fonts/poppins-500.woff2') format('woff2');
}
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('./assets/fonts/poppins-600.woff2') format('woff2');
}
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('./assets/fonts/poppins-700.woff2') format('woff2');
}
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url('./assets/fonts/poppins-800.woff2') format('woff2');
}
@font-face {
  font-family: 'Poppins';
  font-style: italic;
  font-weight: 700;
  font-display: swap;
  src: url('./assets/fonts/poppins-700-italic.woff2') format('woff2');
}
/* (o itálico 800 foi removido: nada na página usa peso 800 em itálico —
   a única citação em itálico cai no 700-italic acima) */

/* ═══ TOKENS ═══ */
:root {
  /* Espaçamento — grid 8pt */
  --espaco-xs: 8px;
  --espaco-sm: 16px;
  --espaco-md: 24px;
  --espaco-lg: 48px;
  --espaco-xl: 72px;
  --espaco-dobra: 96px;

  /* Ritmo semântico */
  --gap-logo-titulo: 32px;
  --gap-titulo-sub: 24px;
  --gap-sub-cta: 40px;
  --gap-titulo-conteudo: 48px;
  --gap-card-interno: 32px;

  /* Tipografia */
  --fonte-titulo: 'Poppins', system-ui, sans-serif;
  --fonte-corpo:  'Poppins', system-ui, sans-serif;
  --corpo: 16px;
  /* H1 mais contido que o original: a headline nova é ~40% mais longa */
  --h1: clamp(27px, 3.1vw, 42px);
  --h2: clamp(21px, 1.9vw, 24px);
  --destaque: clamp(20px, 2vw, 28px);
  --sub: clamp(15px, 1.15vw, 17px);

  /* Cores */
  --azul-900: #001732;   /* profundidade / sombras */
  --azul-800: #002149;   /* cor predominante — bg da página */
  --azul-700: #00305F;   /* cards / superfícies */
  --azul-600: #1B5C8F;   /* caixa de destaque */
  --ciano:    #4FC3F7;   /* brilho cósmico / acentos */
  --ciano-soft: rgba(79, 195, 247, .16);
  --branco:   #FFFFFF;
  --branco-70: rgba(255, 255, 255, .70);
  --branco-45: rgba(255, 255, 255, .45);
  --branco-12: rgba(255, 255, 255, .12);
  --branco-06: rgba(255, 255, 255, .06);

  /* Off-white — placeholders de imagem (prints / foto do André) */
  --offwhite:      #F4F1EA;
  --offwhite-esc:  #E7E1D4;   /* moldura / sombra interna do off-white */

  /* Dourado — marca os bônus (o que só o André entrega).
     Três tons próximos: o claro faz o brilho de cima, o fundo faz a queda
     de baixo. É isso que faz o selo ler como metal em vez de mostarda. */
  --dourado:       #E0AE4B;   /* base */
  --dourado-claro: #F7E3AC;   /* brilho */
  --dourado-fundo: #B8862A;   /* sombra */
  --dourado-tinta: #3A2906;   /* texto por cima do dourado */
  --dourado-esc:   #8A6A1F;   /* legível sobre card branco */
  --dourado-soft:  rgba(224, 174, 75, .14);

  /* CTA */
  --verde:      #35D64B;
  --verde-esc:  #17A82F;
  --verde-glow: rgba(53, 214, 75, .38);

  /* Layout */
  --container: 1200px;
  --container-wide: 1440px;
  --gutter: clamp(20px, 4vw, 64px);

  /* Movimento */
  --ease: cubic-bezier(.22, 1, .36, 1);
}

/* ═══ RESET ═══ */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html { scroll-behavior: smooth; }

body {
  font-family: var(--fonte-corpo);
  font-size: var(--corpo);
  line-height: 1.6;
  color: var(--branco);
  background: var(--azul-800);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
  /* Anti-viúva: evita palavra órfã na última linha do corpo de texto */
  text-wrap: pretty;
}

/* Títulos e frases curtas: equilibra as linhas (nunca deixa 1 palavra sozinha) */
h1, h2, h3,
.dores__conclusao,
.garantia__selo {
  text-wrap: balance;
}

/* Visual seco — sem auras/brilhos de fundo (preferência do André).
   Pra trazer alguma de volta, é só remover o seletor desta lista. */
.dores__aura,
.video__aura,
.depoimentos__aura,
.recebe__aura,
.garantia__aura,
.suporte__aura { display: none; }

img { display: block; max-width: 100%; height: auto; }
ul  { list-style: none; }
a   { text-decoration: none; color: inherit; }

::selection { background: var(--ciano); color: var(--azul-900); }

/* ═══ CONTAINER ═══ */
.container {
  width: 100%;
  max-width: var(--container);
  margin-inline: auto;
  padding-inline: var(--gutter);
}
.container--wide { max-width: var(--container-wide); }

/* ═══ DESTAQUES DE TEXTO (marcações da headline) ═══ */
.mark-underline {
  text-decoration: underline;
  text-decoration-thickness: 3px;
  text-underline-offset: 6px;
  text-decoration-color: var(--branco);
}

.mark-box {
  background: #1E6FA8;
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
  padding: 2px 10px 4px;
  border-radius: 4px;
}
.mark-box--sm { padding: 1px 8px 3px; }

/* Reveal — a caixa azul entra varrendo da esquerda para a direita.
   Como o box-decoration-break é clone, cada linha varre a própria faixa.
   Roda no load (o herói já nasce na tela, não precisa de ScrollTrigger).
   Com "reduzir movimento" ligado, o forwards deixa a caixa cheia na hora. */
.mark-box--reveal {
  background-color: transparent;
  background-image: linear-gradient(90deg, #1E6FA8 0 100%);
  background-repeat: no-repeat;
  background-size: 0% 100%;
  animation: mark-reveal .95s var(--ease) .35s forwards;
}
@keyframes mark-reveal {
  to { background-size: 100% 100%; }
}

/* ═══ RITMO DE LEITURA — negrito e sublinhado nos corpos de texto ═══
   Um par de <b>/<u> por parágrafo dá pontos de parada para quem só passa
   o olho. Duas famílias: dobras escuras (branco + ciano) e claras (navy +
   azul). A dobra "Quem é o André" tem regra própria mais abaixo. */
.hero__sub b,
.video__sub b,
.desejo__txt b { color: var(--branco); font-weight: 600; }

.hero__sub u,
.video__sub u,
.desejo__txt u {
  text-decoration-color: var(--ciano);
  text-decoration-thickness: 2px;
  text-underline-offset: 4px;
}

.dor__texto p b,
.raiz__texto p b,
.investimento__sub b { color: #0f2a45; font-weight: 600; }

.dor__texto p u,
.raiz__texto p u,
.investimento__sub u {
  text-decoration-color: #1E6FA8;
  text-decoration-thickness: 2px;
  text-underline-offset: 4px;
}


/* ═══════════════════════════════════════════════════════════
   BOTÃO CTA — verde, com brilho, sweep e respiração
   ═══════════════════════════════════════════════════════════ */
.btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 56px;
  padding: 16px 34px;
  border-radius: 10px;

  font-family: var(--fonte-titulo);
  font-size: clamp(13px, 1.05vw, 15px);
  font-weight: 700;
  letter-spacing: .09em;
  text-transform: uppercase;
  white-space: nowrap;
  color: var(--azul-900);

  background: var(--verde);
  box-shadow: 0 8px 22px -10px var(--verde-glow);

  cursor: pointer;
  transition:
    transform .3s var(--ease),
    box-shadow .3s var(--ease),
    background-color .3s var(--ease);
}

.btn__label { position: relative; z-index: 2; }

.btn:hover,
.btn:focus-visible {
  transform: translateY(-2px);
  background: #3FE156;
  box-shadow: 0 14px 32px -12px var(--verde-glow);
}

.btn:active { transform: translateY(-1px) scale(.99); }

.btn:focus-visible {
  outline: 3px solid var(--ciano);
  outline-offset: 4px;
}



/* ═══════════════════════════════════════════════════════════
   DOBRA 01 — HERO
   ═══════════════════════════════════════════════════════════ */
.hero {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 100svh;
  padding-block: var(--espaco-xl);
  overflow: hidden;
  background: var(--azul-800);
}

.hero__bg { position: absolute; inset: 0; z-index: 0; }
.hero__pic { display: contents; }   /* <picture> some do layout; a <img> herda .hero__img */

.hero__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 78% center;
}

/* Scrim: garante leitura do texto em qualquer largura */
.hero__scrim {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg,
      var(--azul-800) 0%,
      rgba(0, 33, 73, .94) 26%,
      rgba(0, 33, 73, .70) 42%,
      rgba(0, 33, 73, .18) 56%,
      rgba(0, 33, 73, 0) 68%),
    linear-gradient(180deg,
      rgba(0, 23, 50, .45) 0%,
      rgba(0, 23, 50, 0) 30%,
      rgba(0, 23, 50, 0) 70%,
      rgba(0, 23, 50, .55) 100%);
}

/* Brilho cósmico atrás do bloco de texto */
.hero__glow {
  position: absolute;
  top: 50%;
  left: 8%;
  width: 46vw;
  height: 46vw;
  max-width: 720px;
  max-height: 720px;
  transform: translateY(-50%);
  background: radial-gradient(circle, var(--ciano-soft) 0%, transparent 62%);
  filter: blur(30px);
  pointer-events: none;
}

.hero__inner { position: relative; z-index: 1; }

.hero__content { max-width: 640px; }

.hero__logo {
  width: clamp(180px, 15vw, 232px);
  height: auto;
  margin-bottom: var(--gap-logo-titulo);
  filter: drop-shadow(0 4px 18px rgba(0, 23, 50, .6));
}

.hero__titulo {
  font-family: var(--fonte-titulo);
  font-size: var(--h1);
  font-weight: 600;
  line-height: 1.22;
  letter-spacing: -.015em;
  margin-bottom: var(--gap-titulo-sub);
  text-shadow: 0 2px 24px rgba(0, 23, 50, .55);
}
.hero__titulo .mark-underline,
.hero__titulo .mark-box { font-weight: 700; }

/* A frase destacada quebra inteira para a linha seguinte — nunca deixa
   palavra órfã dentro da caixa azul. Abaixo de 360px, liberamos a quebra
   para não gerar overflow horizontal. */
.hero__titulo .mark-box { white-space: nowrap; }
@media (max-width: 359px) {
  .hero__titulo .mark-box { white-space: normal; }
}

/* A caixa do reveal é longa demais para caber numa linha só: quebra normal
   (o clone do box-decoration-break mantém o fundo certinho em cada linha). */
.hero__titulo .mark-box--reveal { white-space: normal; }

.hero__sub {
  font-size: var(--sub);
  font-weight: 300;
  line-height: 1.65;
  color: var(--branco-70);
  max-width: 56ch;
  margin-bottom: var(--gap-sub-cta);
  text-shadow: 0 1px 14px rgba(0, 23, 50, .5);
}


/* ═══════════════════════════════════════════════════════════
   RÉGUA — MARQUEE DE LOGO (divisor 01 → 02)
   ═══════════════════════════════════════════════════════════ */
.regua {
  position: relative;
  z-index: 2;
  margin-block: calc(var(--espaco-lg) * -1) 0;
  padding-block: var(--espaco-lg);
  overflow: hidden;
  pointer-events: none;
}

/* Régua usada como divisor ENTRE duas seções (05 → 06): puxa para dentro
   das duas, ficando centrada na costura — mantém o padding p/ o brilho respirar. */
.regua--divisor { margin-block: calc(var(--espaco-lg) * -1); }

.regua__faixa {
  position: relative;
  width: 100%;
  margin-left: 0;
  overflow: hidden;
  padding-block: 18px;

  background:
    linear-gradient(90deg,
      var(--azul-700) 0%,
      #1E6FA8 32%,
      #2E8FC9 50%,
      #1E6FA8 68%,
      var(--azul-700) 100%);
  border-top: 1px solid rgba(79, 195, 247, .35);
  border-bottom: 1px solid rgba(79, 195, 247, .35);
  box-shadow:
    0 0 40px -6px rgba(79, 195, 247, .35),
    0 14px 40px -18px rgba(0, 0, 0, .6);
}

/* Vinheta nas pontas — a faixa "some" nas bordas em vez de cortar seco */
.regua__faixa::before,
.regua__faixa::after {
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  width: 90px;
  z-index: 2;
  pointer-events: none;
}
.regua__faixa::before { left: 0;  background: linear-gradient(90deg, var(--azul-700), transparent); }
.regua__faixa::after  { right: 0; background: linear-gradient(270deg, var(--azul-700), transparent); }

.regua__track { display: flex; width: max-content; will-change: transform; }

.regua__grupo {
  display: flex;
  align-items: center;
  flex: none;
}

.regua__logo {
  height: 76px;   /* logo nova (851×349) aguenta esse tamanho sem serrilhar */
  width: auto;
  flex: none;
  opacity: .95;
  filter: drop-shadow(0 2px 8px rgba(0, 23, 50, .35));
}

.regua__sep {
  flex: none;
  width: 6px;
  height: 6px;
  margin-inline: 36px;
  border-radius: 50%;
  background: rgba(255, 255, 255, .75);
  box-shadow: 0 0 10px rgba(255, 255, 255, .8);
}


/* ═══════════════════════════════════════════════════════════
   DOBRA 02 — DORES
   ═══════════════════════════════════════════════════════════ */
.dores {
  position: relative;
  padding-block: var(--espaco-dobra);
  background: var(--azul-800);
  overflow: hidden;
}

.dores__aura {
  position: absolute;
  top: 12%;
  left: 50%;
  width: 120vw;
  max-width: 1500px;
  aspect-ratio: 2 / 1;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at center, rgba(79, 195, 247, .10) 0%, transparent 60%);
  filter: blur(40px);
  pointer-events: none;
}

.dores .container { position: relative; z-index: 1; }

.dores__titulo {
  font-family: var(--fonte-titulo);
  font-size: clamp(28px, 3vw, 40px);
  font-weight: 700;
  text-align: center;
  letter-spacing: .01em;
  margin-bottom: var(--gap-titulo-conteudo);

  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 8px;
  text-decoration-color: rgba(255, 255, 255, .85);
}
.dores__reticencias { color: inherit; }

/* ── Cards alternados ── */
.dores__lista {
  display: flex;
  flex-direction: column;
  gap: var(--espaco-md);
  max-width: 960px;
  margin-inline: auto;
}

.dor {
  position: relative;
  display: grid;
  grid-template-columns: 300px 1fr;
  align-items: center;
  gap: var(--gap-card-interno);
  padding: var(--espaco-md);
  border-radius: 20px;

  background: #fff;
  border: 1px solid rgba(15, 42, 69, .10);
  box-shadow: 0 24px 50px -32px rgba(0, 0, 0, .45);

  transition:
    transform .45s var(--ease),
    border-color .45s var(--ease),
    box-shadow .45s var(--ease);
}

/* Alterna o lado da imagem (02 e 04 com mídia à direita) */
.dor:nth-child(even) { grid-template-columns: 1fr 300px; }
.dor:nth-child(even) .dor__media { order: 2; }
.dor:nth-child(even) .dor__texto { order: 1; }

.dor:hover {
  transform: translateY(-4px);
  border-color: rgba(30, 111, 168, .35);
  box-shadow:
    0 0 0 1px rgba(30, 111, 168, .10),
    0 30px 60px -30px rgba(15, 42, 69, .40),
    0 0 46px -22px rgba(79, 195, 247, .35);
}

/* Mídia — o gradiente fica de placeholder enquanto a foto não chega.
   A foto é um <img loading="lazy"> (e não background) justamente pra poder
   carregar só quando chega perto da tela: são 6 imagens abaixo da dobra. */
.dor__media {
  position: relative;
  aspect-ratio: 16 / 9;   /* igual ao das fotos (900×506) — cover não corta nada */
  border-radius: 14px;
  overflow: hidden;
  background: var(--offwhite) linear-gradient(140deg, #f6f2ea 0%, #efeade 55%, #e7e1d4 100%);
  box-shadow: inset 0 0 0 1px rgba(15, 42, 69, .10);
}
.dor__foto {
  width: 100%;
  height: 100%;
  object-fit: cover;
}


.dor__texto { position: relative; }

.dor__num {
  display: block;
  font-family: var(--fonte-titulo);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .22em;
  color: #1E6FA8;
  margin-bottom: var(--espaco-xs);
}

/* Frase-guia do card — completa o título "Se você sente que…" */
.dor__lead {
  font-family: var(--fonte-titulo);
  font-size: clamp(17px, 1.6vw, 20px);
  font-weight: 600;
  line-height: 1.28;
  letter-spacing: -.01em;
  color: #0f2a45;
  margin-bottom: 10px;
}

.dor__texto p {
  font-size: var(--sub);
  font-weight: 400;
  line-height: 1.7;
  color: #33475c;
}

/* ── Conclusão ── */
.dores__conclusao {
  max-width: 820px;
  margin: var(--espaco-xl) auto 0;
  text-align: center;
  font-family: var(--fonte-titulo);
  font-size: var(--destaque);
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: -.01em;
}

.dores__cta {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-top: var(--espaco-lg);
}


/* ═══════════════════════════════════════════════════════════
   DOBRA 03 — A RAIZ (seção clara com pattern)
   ═══════════════════════════════════════════════════════════ */
.raiz {
  position: relative;
  padding-block: var(--espaco-dobra);
  overflow: hidden;
  background: linear-gradient(160deg, #f5f8fc 0%, #e6edf6 100%);
  color: #17324f;
}

/* Pattern do fundo — grade de pontos + dois brilhos suaves, com fade nas bordas */
.raiz__pattern {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image:
    radial-gradient(circle at 84% 16%, rgba(30, 111, 168, .14) 0%, transparent 42%),
    radial-gradient(circle at 6% 90%, rgba(30, 111, 168, .10) 0%, transparent 44%),
    radial-gradient(rgba(23, 66, 105, .14) 1.3px, transparent 1.5px);
  background-size: auto, auto, 24px 24px;
  -webkit-mask-image: radial-gradient(ellipse 130% 100% at 50% 45%, #000 52%, transparent 100%);
          mask-image: radial-gradient(ellipse 130% 100% at 50% 45%, #000 52%, transparent 100%);
}

.raiz__inner {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1fr 420px;
  gap: clamp(32px, 5vw, 72px);
  align-items: center;
  max-width: 1080px;
}

.raiz__titulo {
  font-family: var(--fonte-titulo);
  font-size: clamp(26px, 2.7vw, 38px);
  font-weight: 700;
  line-height: 1.16;
  letter-spacing: -.01em;
  margin-bottom: var(--espaco-md);
  color: #0f2a45;
}

.raiz__texto p {
  font-size: var(--sub);
  font-weight: 400;
  line-height: 1.72;
  color: #33475c;
}
.raiz__texto p + p { margin-top: var(--espaco-sm); }

/* Placeholder de imagem — retrato emoldurado (troque pela foto real depois) */
.raiz__media {
  position: relative;
  aspect-ratio: 4 / 5;
  border-radius: 18px;
  overflow: hidden;
  /* Foto real (img05) — center 20% mantém o rosto no quadro; gradiente fica de fallback */
  background: url('./imgs/img05.webp') center 20% / cover no-repeat,
              linear-gradient(150deg, #dde5f0 0%, #c7d3e3 100%);
  box-shadow:
    0 30px 60px -32px rgba(15, 42, 69, .5),
    inset 0 0 0 1px rgba(15, 42, 69, .08);
}
.raiz__ph {
  display: none;   /* placeholder escondido — já há foto real */
  position: absolute;
  top: 50%;
  left: 50%;
  width: 64px;
  height: 64px;
  transform: translate(-50%, -50%);
  background: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23566b82'%20stroke-width='1.5'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Crect%20x='3'%20y='3'%20width='18'%20height='18'%20rx='2.4'/%3E%3Ccircle%20cx='8.8'%20cy='8.8'%20r='1.7'/%3E%3Cpath%20d='M21%2014.5l-4.6-4.6L5%2021'/%3E%3C/svg%3E") center / contain no-repeat;
  opacity: .5;
}


/* ═══════════════════════════════════════════════════════════
   DOBRA 03B — DESEJOS (o que muda quando a crença muda)
   Lista seca: filete + número + frase-guia. Sem card, sem brilho —
   contraponto direto aos cards brancos da dobra de dores.
   ═══════════════════════════════════════════════════════════ */
.desejos {
  position: relative;
  padding-block: var(--espaco-dobra);
  overflow: hidden;
  background: var(--azul-900);
}

.desejos__head {
  max-width: 780px;
  margin: 0 auto var(--gap-titulo-conteudo);
  text-align: center;
}
.desejos__kicker {
  display: inline-block;
  padding: 7px 16px;
  border-radius: 999px;
  font-family: var(--fonte-titulo);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--ciano);
  background: var(--ciano-soft);
  border: 1px solid rgba(79, 195, 247, .28);
  margin-bottom: var(--espaco-sm);
}
.desejos__titulo {
  font-family: var(--fonte-titulo);
  font-size: clamp(26px, 2.7vw, 38px);
  font-weight: 700;
  line-height: 1.16;
  letter-spacing: -.01em;
}

.desejos__lista {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: var(--espaco-md);
  max-width: 880px;
  margin-inline: auto;
}

/* Container fechado — caixa chapada, sem gradiente e sem brilho.
   align-items: center deixa o chip do número no meio da altura do card. */
.desejo {
  display: grid;
  grid-template-columns: 56px 1fr;
  gap: var(--espaco-md);
  align-items: center;
  padding: var(--espaco-md);
  border: 1px solid var(--branco-12);
  border-radius: 20px;
  background: rgba(255, 255, 255, .03);
  transition: border-color .35s var(--ease);
}
.desejo:hover { border-color: rgba(79, 195, 247, .30); }

/* Número em chip — mesmo peso visual dos ícones das outras dobras */
.desejo__num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  border-radius: 16px;
  font-family: var(--fonte-titulo);
  font-size: 15px;
  font-weight: 700;
  letter-spacing: .08em;
  color: var(--ciano);
  background: var(--ciano-soft);
  border: 1px solid rgba(79, 195, 247, .28);
}

.desejo__titulo {
  font-family: var(--fonte-titulo);
  font-size: clamp(20px, 2.1vw, 25px);
  font-weight: 600;
  line-height: 1.26;
  letter-spacing: -.015em;
  margin-bottom: 10px;
}

.desejo__txt {
  font-size: var(--sub);
  font-weight: 300;
  line-height: 1.75;
  color: rgba(255, 255, 255, .78);
}
.desejo__txt b { color: var(--branco); font-weight: 600; }
.desejo__txt u {
  text-decoration-color: var(--ciano);
  text-decoration-thickness: 2px;
  text-underline-offset: 4px;
}

/* Fala real de cliente — painel chapado com filete ciano */
.desejo__quote {
  margin-top: var(--espaco-sm);
  padding: 16px 20px;
  border-left: 3px solid var(--ciano);
  border-radius: 0 12px 12px 0;
  background: rgba(255, 255, 255, .06);
}
.desejo__quote p {
  font-size: var(--sub);
  font-weight: 400;
  font-style: italic;
  line-height: 1.6;
  color: var(--branco);
}
.desejo__quote cite {
  display: block;
  margin-top: 8px;
  font-size: 12.5px;
  font-style: normal;
  font-weight: 500;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--branco-45);
}


/* ═══════════════════════════════════════════════════════════
   DOBRA 04 — VÍDEO (seção azul)
   ═══════════════════════════════════════════════════════════ */
.video {
  position: relative;
  padding-block: var(--espaco-dobra) var(--espaco-lg);
  overflow: hidden;
  background: var(--azul-800);
}

.video__aura {
  position: absolute;
  top: -12%;
  left: 50%;
  width: 92vw;
  max-width: 1100px;
  aspect-ratio: 2 / 1;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at center, rgba(79, 195, 247, .14) 0%, transparent 62%);
  filter: blur(50px);
  pointer-events: none;
}

.video__inner {
  position: relative;
  z-index: 1;
  max-width: 880px;
  text-align: center;
}

.video__kicker {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 7px 16px;
  border-radius: 999px;
  font-family: var(--fonte-titulo);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--ciano);
  background: var(--ciano-soft);
  border: 1px solid rgba(79, 195, 247, .28);
  margin-bottom: var(--espaco-sm);
}

.video__titulo {
  font-family: var(--fonte-titulo);
  font-size: clamp(24px, 2.6vw, 36px);
  font-weight: 700;
  line-height: 1.22;
  margin-bottom: var(--espaco-xs);
}

.video__sub {
  font-size: var(--sub);
  font-weight: 300;
  line-height: 1.65;
  color: var(--branco-70);
  max-width: 58ch;
  margin: 0 auto var(--espaco-lg);
}

.video__frame {
  position: relative;
  aspect-ratio: 16 / 9;
  border-radius: 16px;
  overflow: hidden;
  background: #000;
  border: 1px solid rgba(255, 255, 255, .08);
}
.video__frame iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}


/* ═══════════════════════════════════════════════════════════
   DOBRA 05 — DEPOIMENTOS (carrossel infinito)
   ═══════════════════════════════════════════════════════════ */
.depoimentos {
  position: relative;
  padding-block: var(--espaco-lg) var(--espaco-dobra);
  overflow: hidden;
  background: var(--azul-800);
}

.depoimentos__aura {
  position: absolute;
  top: -8%;
  left: 50%;
  width: 100vw;
  max-width: 1300px;
  aspect-ratio: 2 / 1;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at center, rgba(79, 195, 247, .12) 0%, transparent 62%);
  filter: blur(50px);
  pointer-events: none;
}

.depoimentos__head {
  position: relative;
  z-index: 1;
  max-width: 760px;
  text-align: center;
  margin-bottom: var(--espaco-lg);
}

.depoimentos__kicker {
  display: inline-block;
  padding: 7px 16px;
  border-radius: 999px;
  font-family: var(--fonte-titulo);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--ciano);
  background: var(--ciano-soft);
  border: 1px solid rgba(79, 195, 247, .28);
  margin-bottom: var(--espaco-sm);
}

.depoimentos__titulo {
  font-family: var(--fonte-titulo);
  font-size: clamp(24px, 2.6vw, 36px);
  font-weight: 700;
  line-height: 1.22;
  margin-bottom: var(--espaco-sm);
}
.depoimentos__titulo u {
  text-decoration-color: var(--ciano);
  text-decoration-thickness: 2px;
  text-underline-offset: 6px;
}
.depoimentos__titulo b { color: var(--ciano); }

.depoimentos__sub {
  font-size: var(--sub);
  font-weight: 300;
  line-height: 1.65;
  color: var(--branco-70);
}
.depoimentos__sub b { color: var(--branco); font-weight: 600; }
.depoimentos__sub u { text-decoration-color: rgba(79, 195, 247, .7); text-underline-offset: 3px; }

/* ── Carrossel — trilho infinito (CSS puro, roda sem JS) ── */
.carrossel {
  position: relative;
  z-index: 1;
  width: 100%;
  overflow: hidden;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
          mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}

.carrossel__track {
  display: flex;
  width: max-content;
  will-change: transform;
  /* 10 prints (× 2 conjuntos) no lugar de 6: a duração subiu junto para o
     trilho continuar andando na mesma velocidade de antes (~42 px/s). */
  animation: carrossel-desliza 76s linear infinite;
}
/* Pausa ao passar o mouse / focar dentro — deixa a pessoa ler com calma */
.carrossel:hover .carrossel__track,
.carrossel:focus-within .carrossel__track { animation-play-state: paused; }

@keyframes carrossel-desliza {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }   /* metade = 1 conjunto → loop sem emenda */
}

/* Card de depoimento */
.depo {
  flex: none;
  width: 300px;
  margin-right: var(--espaco-md);   /* margem (não gap) p/ o -50% fechar exato */
  padding: 14px 14px 16px;
  border-radius: 18px;
  background: linear-gradient(135deg, #073a63 0%, var(--azul-700) 100%);
  border: 1px solid rgba(79, 195, 247, .16);
  box-shadow: 0 24px 50px -30px rgba(0, 0, 0, .85);
}

/* Área do print — object-fit: contain, porque os prints têm proporções bem
   diferentes entre si; cortar (cover) comeria o texto das conversas. O que
   sobra do quadro fica no azul escuro do card, funcionando como moldura.
   São <img loading="lazy"> (e não background) pra não baixar os 10 prints
   de uma vez: o carrossel fica lá embaixo na página. */
.depo__print {
  position: relative;
  aspect-ratio: 5 / 8;
  border-radius: 12px;
  overflow: hidden;
  background-color: rgba(0, 23, 50, .55);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .08);
}
.depo__img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.depo__cap {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 12px;
  padding-inline: 2px;
}
.depo__stars { color: var(--ciano); font-size: 13px; letter-spacing: 2px; }


/* ═══════════════════════════════════════════════════════════
   DOBRA 06 — QUEM É O ANDRÉ
   ═══════════════════════════════════════════════════════════ */
.andre {
  position: relative;
  padding-block: var(--espaco-dobra);
  overflow: hidden;
  background: linear-gradient(180deg, var(--azul-900) 0%, var(--azul-800) 100%);
}

.andre__aura {
  display: none;   /* removido — sem brilho/aura de fundo */
  position: absolute;
  bottom: -14%;
  left: 12%;
  width: 46vw;
  max-width: 640px;
  aspect-ratio: 1 / 1;
  background: radial-gradient(circle, var(--ciano-soft) 0%, transparent 62%);
  filter: blur(40px);
  pointer-events: none;
}

.andre__inner {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 480px 1fr;
  gap: clamp(32px, 5vw, 72px);
  align-items: center;
  max-width: 1080px;
}

/* Foto do André — placeholder OFF-WHITE (retrato) */
.andre__media {
  position: relative;
  aspect-ratio: 4 / 5;
  border-radius: 20px;
  overflow: hidden;
  background-color: var(--offwhite);
  /* Foto real do André — center 20% mantém o rosto/boné no quadro. Sem sombra. */
  background-image: url('./imgs/Andre.webp');
  background-size: cover;
  background-position: center 20%;
  background-repeat: no-repeat;
}
.andre__ph {
  display: none;   /* placeholder escondido — já há foto real */
  position: absolute;
  top: 50%;
  left: 50%;
  width: 66px;
  height: 66px;
  transform: translate(-50%, -50%);
  background: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%2394a0b0'%20stroke-width='1.5'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Crect%20x='3'%20y='3'%20width='18'%20height='18'%20rx='2.4'/%3E%3Ccircle%20cx='8.8'%20cy='8.8'%20r='1.7'/%3E%3Cpath%20d='M21%2014.5l-4.6-4.6L5%2021'/%3E%3C/svg%3E") center / contain no-repeat;
  opacity: .5;
}
.andre__media[style*="background-image"] .andre__ph { display: none; }

.andre__kicker {
  display: inline-block;
  padding: 7px 16px;
  border-radius: 999px;
  font-family: var(--fonte-titulo);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--ciano);
  background: var(--ciano-soft);
  border: 1px solid rgba(79, 195, 247, .28);
  margin-bottom: var(--espaco-sm);
}

.andre__titulo {
  font-family: var(--fonte-titulo);
  font-size: clamp(24px, 2.6vw, 36px);
  font-weight: 700;
  line-height: 1.18;
  letter-spacing: -.01em;
  margin-bottom: var(--espaco-md);
}

.andre__texto p {
  font-size: var(--sub);
  font-weight: 300;
  line-height: 1.72;
  color: var(--branco-70);
}
.andre__texto p + p { margin-top: var(--espaco-sm); }

/* Dinâmica de leitura — negrito e sublinhado dão ritmo ao texto */
.andre__texto b { font-weight: 600; color: var(--branco); }
.andre__texto u {
  text-decoration-color: var(--ciano);
  text-decoration-thickness: 2px;
  text-underline-offset: 4px;
}

.andre .btn { margin-top: var(--espaco-lg); }


/* ═══════════════════════════════════════════════════════════
   DOBRA 07 — O QUE VOCÊ RECEBE (bento grid)
   ═══════════════════════════════════════════════════════════ */
.recebe {
  position: relative;
  padding-block: var(--espaco-dobra);
  overflow: hidden;
  background: var(--azul-900);
}

/* Textura de pontos suave atrás do bento — dá profundidade sem pesar */
.recebe__pattern {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image: radial-gradient(rgba(255, 255, 255, .05) 1.2px, transparent 1.4px);
  background-size: 26px 26px;
  -webkit-mask-image: radial-gradient(ellipse 120% 90% at 50% 38%, #000 55%, transparent 100%);
          mask-image: radial-gradient(ellipse 120% 90% at 50% 38%, #000 55%, transparent 100%);
}

.recebe__aura {
  position: absolute;
  top: -6%;
  left: 50%;
  width: 100vw;
  max-width: 1300px;
  aspect-ratio: 2 / 1;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at center, rgba(79, 195, 247, .12) 0%, transparent 60%);
  filter: blur(50px);
  pointer-events: none;
}

.recebe .container { position: relative; z-index: 1; }

.recebe__head {
  max-width: 780px;
  margin: 0 auto var(--espaco-lg);
  text-align: center;
}
.recebe__kicker {
  display: inline-block;
  padding: 7px 16px;
  border-radius: 999px;
  font-family: var(--fonte-titulo);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--ciano);
  background: var(--ciano-soft);
  border: 1px solid rgba(79, 195, 247, .28);
  margin-bottom: var(--espaco-sm);
}
.recebe__titulo {
  font-family: var(--fonte-titulo);
  font-size: clamp(24px, 2.6vw, 36px);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -.01em;
}

/* ── Blocos (curso oficial × bônus do André) ── */
.recebe__bloco + .recebe__bloco { margin-top: var(--espaco-xl); }

/* Selo do bloco — pílula + filete que atravessa a largura */
.recebe__selo {
  display: flex;
  align-items: center;
  gap: var(--espaco-sm);
  margin-bottom: var(--espaco-md);
}
.recebe__selo span {
  flex: none;
  padding: 6px 14px;
  border-radius: 6px;
  font-family: var(--fonte-titulo);
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--azul-900);
  background: var(--branco);
}
.recebe__selo::after {
  content: '';
  flex: 1;
  height: 1px;
  background: var(--branco-12);
}
/* Selo dourado — degradê curtinho entre três tons vizinhos + fio de luz no
   topo. Não é brilho de fundo nem aura: é só o que dá leitura de metal. */
.recebe__selo--bonus span {
  color: var(--dourado-tinta);
  background: linear-gradient(160deg,
    var(--dourado-claro) 0%,
    var(--dourado)      48%,
    var(--dourado-fundo) 100%);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .55);
}
/* O filete que sai do selo puxa para o dourado também */
.recebe__selo--bonus::after { background: rgba(224, 174, 75, .24); }

.recebe__nota {
  margin: calc(var(--espaco-sm) * -1) 0 var(--espaco-md);
  font-size: 14.5px;
  font-weight: 300;
  line-height: 1.6;
  color: var(--branco-70);
  max-width: 70ch;
}

/* ── Grid dos cards ──
   Era um bento de 6 colunas com `span` fixo em cada card, e isso quebrava
   feio nas larguras do meio: sobrava buraco na linha e os cards curtos
   esticavam junto com os longos, virando caixa branca quase vazia.
   Agora as colunas se resolvem sozinhas (auto-fit) e o `align-items: start`
   deixa cada card com a altura do próprio conteúdo. */
.recebe__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  align-items: start;
  gap: var(--espaco-md);
}
.recebe__grid--bonus { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }

/* Etiqueta "Bônus 01/02" — dourada, igual ao selo do bloco */
.recebe__tag {
  align-self: flex-start;
  padding: 4px 10px;
  border-radius: 999px;
  font-family: var(--fonte-titulo);
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--dourado-esc);
  background: var(--dourado-soft);
  border: 1px solid rgba(138, 106, 31, .30);
}

/* Cards de bônus — ícone e borda em dourado, para não competir com o azul
   do curso oficial */
.recebe__grid--bonus .recebe__ico {
  color: var(--dourado-esc);
  background: var(--dourado-soft);
  border-color: rgba(138, 106, 31, .24);
}
.recebe__grid--bonus .recebe__card { border-color: rgba(138, 106, 31, .22); }
.recebe__grid--bonus .recebe__card:hover {
  border-color: rgba(138, 106, 31, .45);
  box-shadow:
    0 0 0 1px rgba(138, 106, 31, .10),
    0 30px 60px -30px rgba(15, 42, 69, .40);
}

.recebe__cta {
  display: flex;
  justify-content: center;
  margin-top: var(--espaco-xl);
}

.recebe__card {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: var(--espaco-md);
  border-radius: 20px;
  /* Cards brancos "flutuando" no fundo azul (mesma linguagem da dobra 2) */
  background: #fff;
  border: 1px solid rgba(15, 42, 69, .10);
  box-shadow: 0 24px 50px -32px rgba(0, 0, 0, .45);
  transition:
    transform .4s var(--ease),
    border-color .4s var(--ease),
    box-shadow .4s var(--ease);
}
.recebe__card:hover {
  transform: translateY(-4px);
  border-color: rgba(30, 111, 168, .35);
  box-shadow:
    0 0 0 1px rgba(30, 111, 168, .10),
    0 30px 60px -30px rgba(15, 42, 69, .40),
    0 0 46px -22px rgba(79, 195, 247, .35);
}

/* Card-destaque — a Formação em si: faixa larga no topo do bloco,
   ícone à esquerda e texto à direita. Os outros três cards do curso
   oficial ficam lado a lado na linha de baixo (span 2 cada). */
.recebe__card--flag {
  position: relative;
  grid-column: 1 / -1;   /* sempre a linha inteira, em qualquer nº de colunas */
  flex-direction: row;
  align-items: center;
  gap: var(--espaco-md);
  padding: var(--espaco-lg);
  /* Branco como os demais; a borda + brilho ciano marcam o destaque */
  background: #fff;
  border-color: rgba(30, 111, 168, .40);
  box-shadow:
    0 0 0 1px rgba(30, 111, 168, .12),
    0 34px 70px -34px rgba(30, 111, 168, .35),
    0 0 50px -26px rgba(79, 195, 247, .40);
}
.recebe__card--flag:hover {
  border-color: rgba(30, 111, 168, .55);
  box-shadow:
    0 0 0 1px rgba(30, 111, 168, .18),
    0 36px 72px -32px rgba(30, 111, 168, .40),
    0 0 60px -24px rgba(79, 195, 247, .45);
}

.recebe__badge {
  position: absolute;
  top: var(--espaco-md);
  right: var(--espaco-md);
  padding: 5px 12px;
  border-radius: 999px;
  font-family: var(--fonte-titulo);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--azul-900);
  background: var(--ciano);
}

/* Chip do ícone */
.recebe__ico {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  border-radius: 14px;
  color: #1E6FA8;
  background: rgba(30, 111, 168, .10);
  border: 1px solid rgba(30, 111, 168, .20);
}
.recebe__ico svg { width: 26px; height: 26px; }
.recebe__card--flag .recebe__ico { flex: none; width: 64px; height: 64px; border-radius: 18px; }
.recebe__card--flag .recebe__ico svg { width: 32px; height: 32px; }

/* Texto do card-destaque (empilhado ao lado do ícone) */
.recebe__card-corpo {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.recebe__card-titulo {
  font-family: var(--fonte-titulo);
  font-size: 17px;
  font-weight: 600;
  line-height: 1.3;
  color: #0f2a45;
}
.recebe__card-titulo span { color: #8494a6; font-weight: 400; }
.recebe__card--flag .recebe__card-titulo { font-size: clamp(20px, 2vw, 26px); }

.recebe__card-txt {
  font-size: 14.5px;
  font-weight: 400;
  line-height: 1.6;
  color: #33475c;
}
.recebe__card-txt b { color: #0f2a45; font-weight: 600; }
.recebe__card--flag .recebe__card-txt { font-size: 15.5px; max-width: 48ch; }


/* ═══════════════════════════════════════════════════════════
   DOBRA 08 — INVESTIMENTO (seção clara com pattern)
   ═══════════════════════════════════════════════════════════ */
.investimento {
  position: relative;
  padding-block: var(--espaco-dobra);
  overflow: hidden;
  background: linear-gradient(160deg, #f5f8fc 0%, #e6edf6 100%);
  color: #17324f;
}

/* Mesmo pattern da dobra da raiz — grade de pontos + brilhos, com fade */
.investimento__pattern {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image:
    radial-gradient(circle at 84% 12%, rgba(30, 111, 168, .14) 0%, transparent 42%),
    radial-gradient(circle at 6% 92%, rgba(30, 111, 168, .10) 0%, transparent 44%),
    radial-gradient(rgba(23, 66, 105, .14) 1.3px, transparent 1.5px);
  background-size: auto, auto, 24px 24px;
  -webkit-mask-image: radial-gradient(ellipse 130% 100% at 50% 45%, #000 55%, transparent 100%);
          mask-image: radial-gradient(ellipse 130% 100% at 50% 45%, #000 55%, transparent 100%);
}

.investimento .container { position: relative; z-index: 1; }

.investimento__head {
  max-width: 720px;
  margin: 0 auto var(--espaco-lg);
  text-align: center;
}
.investimento__kicker {
  display: inline-block;
  padding: 7px 16px;
  border-radius: 999px;
  font-family: var(--fonte-titulo);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #1E6FA8;
  background: rgba(30, 111, 168, .10);
  border: 1px solid rgba(30, 111, 168, .22);
  margin-bottom: var(--espaco-sm);
}
.investimento__titulo {
  font-family: var(--fonte-titulo);
  font-size: clamp(26px, 2.7vw, 38px);
  font-weight: 700;
  line-height: 1.16;
  letter-spacing: -.01em;
  color: #0f2a45;
}
.investimento__sub {
  margin-top: var(--espaco-sm);
  font-size: var(--sub);
  font-weight: 400;
  line-height: 1.6;
  color: #33475c;
}

/* ── Grid dos planos ── */
.planos {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--espaco-md);
  max-width: 940px;
  margin-inline: auto;
  align-items: stretch;
}

.plano {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: var(--espaco-lg) var(--espaco-md);
  border-radius: 22px;
  background: #fff;
  border: 1px solid rgba(15, 42, 69, .10);
  box-shadow: 0 30px 60px -36px rgba(15, 42, 69, .30);
}
.plano--destaque {
  border-color: rgba(30, 111, 168, .40);
  box-shadow:
    0 0 0 1px rgba(30, 111, 168, .12),
    0 36px 70px -34px rgba(30, 111, 168, .40);
}
.plano__selo {
  position: absolute;
  top: -13px;
  left: 50%;
  transform: translateX(-50%);
  padding: 6px 16px;
  border-radius: 999px;
  font-family: var(--fonte-titulo);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  white-space: nowrap;
  color: #fff;
  background: linear-gradient(90deg, #1E6FA8, #2E8FC9);
  box-shadow: 0 8px 20px -8px rgba(30, 111, 168, .6);
}

/* Ícone em cima, nome embaixo — os dois centrados. Lado a lado, o nome de
   duas linhas puxava o bloco todo para a direita. */
.plano__head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
  text-align: center;
}
.plano__ico {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  width: 46px;
  height: 46px;
  border-radius: 12px;
  color: #1E6FA8;
  background: rgba(30, 111, 168, .10);
  border: 1px solid rgba(30, 111, 168, .18);
}
.plano__ico svg { width: 24px; height: 24px; }
.plano__nome {
  font-family: var(--fonte-titulo);
  font-size: 19px;
  font-weight: 700;
  line-height: 1.2;
  color: #0f2a45;
}
.plano__desc {
  font-size: 14.5px;
  font-weight: 400;
  line-height: 1.6;
  color: #33475c;
  margin-bottom: var(--espaco-md);
  text-align: center;
}
.plano__desc b { color: #0f2a45; font-weight: 600; }

/* ── Preço ── */
.plano__preco { margin-bottom: var(--espaco-md); text-align: center; }
.plano__de {
  display: block;
  font-size: 15px;
  color: #8494a6;
  text-decoration: line-through;
  margin-bottom: 2px;
}
/* Preço — só o número inteiro fica grande. "12×", "R$" e os centavos são
   miúdos e assentam na base do número, não no topo. */
.plano__valor {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: 3px;
  font-family: var(--fonte-titulo);
  font-size: clamp(40px, 4.6vw, 56px);
  font-weight: 800;
  line-height: 1;
  letter-spacing: -.02em;
  color: #0f2a45;
}
.plano__inteiro { line-height: .88; }   /* encosta a base no filete óptico */

.plano__vezes,
.plano__cifra,
.plano__centavos {
  font-size: .34em;
  font-weight: 700;
  line-height: 1;
  padding-bottom: .16em;      /* alinha na base do número grande */
  color: #33475c;
}
.plano__centavos { letter-spacing: 0; }
.plano__parcelas {
  display: block;
  margin-top: 8px;
  font-size: 14px;
  color: #5a6b7d;
}
.plano__parcelas b { color: #0f2a45; font-weight: 700; }

/* ── Pacotes (sessão) ── */
.plano__pacotes {
  margin-bottom: var(--espaco-md);
  border-top: 1px solid rgba(15, 42, 69, .10);
}
.plano__pacotes li {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 0;
  border-bottom: 1px solid rgba(15, 42, 69, .10);
  font-size: 14.5px;
  color: #33475c;
}
.plano__pacotes b {
  font-family: var(--fonte-titulo);
  font-size: 16px;
  font-weight: 700;
  color: #0f2a45;
  text-align: right;
}
/* Condição do pacote entra numa linha abaixo do valor */
.plano__pacotes small {
  display: block;
  font-size: .75em;
  font-weight: 400;
  line-height: 1.4;
  color: #5a6b7d;
}

/* ── Lista de itens com check ── */
.plano__itens {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-bottom: var(--espaco-lg);
}
.plano__itens li {
  position: relative;
  padding-left: 30px;
  font-size: 14.5px;
  line-height: 1.45;
  color: #33475c;
}
.plano__itens li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 1px;
  width: 20px;
  height: 20px;
  background: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%231E6FA8'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Ccircle%20cx='12'%20cy='12'%20r='9'/%3E%3Cpath%20d='M8.5%2012.5l2.4%202.4L15.5%209.5'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* Botão colado na base — alinha os dois cards */
.plano__btn { margin-top: auto; width: 100%; }
.plano__nota {
  margin-top: 12px;
  text-align: center;
  font-size: 12.5px;
  line-height: 1.55;
  color: #6a7c8f;
}
.plano__nota b { font-weight: 600; color: #33475c; }
.plano__nota span { white-space: nowrap; }

/* Botão fantasma (plano secundário) */
.btn--ghost {
  background: transparent;
  color: #0f2a45;
  border: 2px solid rgba(15, 42, 69, .22);
  box-shadow: none;
}
.btn--ghost:hover,
.btn--ghost:focus-visible {
  background: #0f2a45;
  color: #fff;
  border-color: #0f2a45;
  box-shadow: 0 14px 30px -16px rgba(15, 42, 69, .6);
}


/* ═══════════════════════════════════════════════════════════
   DOBRA 09 — GARANTIA (azul, com escudo)
   ═══════════════════════════════════════════════════════════ */
/* Garantia, Contato, FAQ e Suporte são quatro seções seguidas no MESMO
   azul-900: sem troca de cor, os paddings das costuras somam e viram um
   buraco de 192px. Então a dobra cheia fica só nas pontas do bloco e as
   costuras internas usam --espaco-lg dos dois lados (mesmo padrão de
   vídeo → depoimentos). */
.garantia {
  position: relative;
  padding-block: var(--espaco-dobra) var(--espaco-lg);
  overflow: hidden;
  background: var(--azul-900);
}
.garantia__aura {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 62vw;
  max-width: 720px;
  aspect-ratio: 1 / 1;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, rgba(79, 195, 247, .14) 0%, transparent 62%);
  filter: blur(50px);
  pointer-events: none;
}
.garantia__inner {
  position: relative;
  z-index: 1;
  max-width: 720px;
  margin-inline: auto;
  text-align: center;
}
.garantia__escudo {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 84px;
  height: 84px;
  margin-bottom: var(--espaco-md);
  border-radius: 22px;
  color: var(--ciano);
  background: var(--ciano-soft);
  border: 1px solid rgba(79, 195, 247, .30);
}
.garantia__escudo svg { width: 42px; height: 42px; }
.garantia__titulo {
  font-family: var(--fonte-titulo);
  font-size: clamp(24px, 2.6vw, 36px);
  font-weight: 700;
  line-height: 1.2;
  margin-bottom: var(--espaco-md);
}
.garantia__titulo u {
  text-decoration-color: var(--ciano);
  text-decoration-thickness: 2px;
  text-underline-offset: 6px;
}
.garantia__texto {
  font-size: var(--sub);
  font-weight: 300;
  line-height: 1.7;
  color: var(--branco-70);
  max-width: 60ch;
  margin: 0 auto var(--espaco-lg);
}
.garantia__texto b { color: var(--branco); font-weight: 600; }
.garantia__selo {
  font-family: var(--fonte-titulo);
  font-size: var(--destaque);
  font-weight: 600;
  line-height: 1.4;
  color: var(--branco);
}
.garantia__selo u {
  text-decoration-color: var(--ciano);
  text-decoration-thickness: 2px;
  text-underline-offset: 5px;
}


/* ═══════════════════════════════════════════════════════════
   DOBRA 10 — FORMULÁRIO DE CONTATO (grava no Google Sheets)
   Mesmo azul-900 da garantia logo acima — ver a nota das costuras lá.
   ═══════════════════════════════════════════════════════════ */
.contato {
  position: relative;
  padding-block: var(--espaco-lg);
  background: var(--azul-900);
}
.contato__inner { max-width: 820px; margin-inline: auto; }
.contato__head { text-align: center; margin-bottom: var(--espaco-lg); }
.contato__kicker {
  display: inline-block;
  padding: 7px 16px;
  border-radius: 999px;
  font-family: var(--fonte-titulo);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--ciano);
  background: var(--ciano-soft);
  border: 1px solid rgba(79, 195, 247, .28);
  margin-bottom: var(--espaco-sm);
}
.contato__titulo {
  font-family: var(--fonte-titulo);
  font-size: clamp(24px, 2.6vw, 34px);
  font-weight: 700;
  line-height: 1.2;
  margin-bottom: var(--espaco-sm);
}
.contato__sub {
  font-size: var(--sub);
  font-weight: 300;
  line-height: 1.65;
  color: var(--branco-70);
  max-width: 56ch;
  margin-inline: auto;
}
.contato__sub b { color: var(--branco); font-weight: 600; }

/* ── Cartão do formulário ── */
.form {
  display: flex;
  flex-direction: column;
  gap: var(--espaco-sm);
  padding: var(--espaco-lg) var(--espaco-md);
  border-radius: 18px;
  background: rgba(255, 255, 255, .04);
  border: 1px solid var(--branco-12);
}
.form__linha {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--espaco-sm);
}
.form__campo { display: flex; flex-direction: column; gap: 8px; }
.form__label {
  font-family: var(--fonte-titulo);
  font-size: 13.5px;
  font-weight: 500;
  letter-spacing: .02em;
  color: var(--branco);
}
.form__input {
  width: 100%;
  min-height: 52px;
  padding: 14px 16px;
  border-radius: 12px;

  font-family: var(--fonte-corpo);
  /* 16px é o mínimo: abaixo disso o Safari do iPhone dá zoom sozinho ao focar */
  font-size: 16px;
  font-weight: 300;
  line-height: 1.5;
  color: var(--branco);

  background: rgba(0, 23, 50, .55);
  border: 1px solid var(--branco-12);
  transition:
    border-color .25s var(--ease),
    box-shadow .25s var(--ease),
    background-color .25s var(--ease);
}
.form__input::placeholder { color: var(--branco-45); }
.form__input:hover { border-color: rgba(255, 255, 255, .22); }
.form__input:focus {
  outline: none;
  background: rgba(0, 23, 50, .75);
  border-color: var(--ciano);
  box-shadow: 0 0 0 3px rgba(79, 195, 247, .18);
}
.form__textarea { resize: vertical; min-height: 120px; }

/* Autofill do Chrome: sem isso ele pinta o campo de branco e o texto some */
.form__input:-webkit-autofill,
.form__input:-webkit-autofill:hover,
.form__input:-webkit-autofill:focus {
  -webkit-text-fill-color: var(--branco);
  -webkit-box-shadow: 0 0 0 60px #012040 inset;
  caret-color: var(--branco);
}

/* Erro por campo — só aparece depois da 1ª tentativa de envio */
.form__campo.is-erro .form__input { border-color: #FF6B6B; }
.form__erro {
  display: none;
  font-size: 12.5px;
  line-height: 1.4;
  color: #FF9B9B;
}
.form__campo.is-erro .form__erro { display: block; }

/* Isca de robô — fora da tela, mas ainda focável por um bot burro */
.form__isca {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

/* O .btn foi desenhado para <a>: como <button> precisa zerar a borda e
   herdar a fonte, senão o navegador aplica o estilo nativo dele. */
.form__btn {
  width: 100%;
  margin-top: var(--espaco-xs);
  border: 0;
  -webkit-appearance: none;
          appearance: none;
  white-space: normal;
  text-align: center;
  line-height: 1.35;
}
.form__btn[disabled] {
  opacity: .6;
  cursor: progress;
  transform: none;
}

.form__status {
  display: none;
  padding: 12px 16px;
  border-radius: 12px;
  font-size: 14px;
  line-height: 1.55;
  text-align: center;
}
.form__status.is-ok {
  display: block;
  color: #B9F5C4;
  background: rgba(53, 214, 75, .12);
  border: 1px solid rgba(53, 214, 75, .35);
}
.form__status.is-falha {
  display: block;
  color: #FFC2C2;
  background: rgba(255, 107, 107, .12);
  border: 1px solid rgba(255, 107, 107, .35);
}
.form__status a { text-decoration: underline; font-weight: 600; }

.form__nota {
  font-size: 12.5px;
  line-height: 1.5;
  text-align: center;
  color: var(--branco-45);
}


/* ═══════════════════════════════════════════════════════════
   DOBRA 11 — FAQ (acordeão nativo)
   ═══════════════════════════════════════════════════════════ */
.faq {
  position: relative;
  padding-block: var(--espaco-lg);   /* costura dos dois lados — ver nota na .garantia */
  background: var(--azul-900);       /* mesmo azul escuro da garantia, logo acima */
}
.faq__inner { max-width: 820px; margin-inline: auto; }
.faq__head { text-align: center; margin-bottom: var(--espaco-lg); }
.faq__kicker {
  display: inline-block;
  padding: 7px 16px;
  border-radius: 999px;
  font-family: var(--fonte-titulo);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--ciano);
  background: var(--ciano-soft);
  border: 1px solid rgba(79, 195, 247, .28);
  margin-bottom: var(--espaco-sm);
}
.faq__titulo {
  font-family: var(--fonte-titulo);
  font-size: clamp(24px, 2.6vw, 34px);
  font-weight: 700;
  line-height: 1.2;
}
.faq__lista { display: flex; flex-direction: column; gap: 12px; }

.faq__item {
  border-radius: 14px;
  background: rgba(255, 255, 255, .04);
  border: 1px solid var(--branco-12);
  overflow: hidden;
  transition: border-color .3s var(--ease), background-color .3s var(--ease);
}
.faq__item[open] {
  border-color: rgba(79, 195, 247, .35);
  background: rgba(255, 255, 255, .06);
}
.faq__pergunta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 18px 20px;
  cursor: pointer;
  list-style: none;
  font-family: var(--fonte-titulo);
  font-size: 16px;
  font-weight: 500;
  line-height: 1.4;
  color: var(--branco);
  transition: color .25s var(--ease);
}
.faq__pergunta::-webkit-details-marker { display: none; }
.faq__pergunta:hover { color: var(--ciano); }

/* Ícone + / − */
.faq__mais { position: relative; flex: none; width: 20px; height: 20px; }
.faq__mais::before,
.faq__mais::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 12px;
  height: 2px;
  border-radius: 2px;
  background: var(--ciano);
  transform: translate(-50%, -50%);
  transition: transform .3s var(--ease), opacity .3s var(--ease);
}
.faq__mais::after { transform: translate(-50%, -50%) rotate(90deg); }
.faq__item[open] .faq__mais::after { transform: translate(-50%, -50%); opacity: 0; }

.faq__resposta { padding: 0 20px 18px; }
.faq__resposta p {
  font-size: 14.5px;
  font-weight: 300;
  line-height: 1.7;
  color: var(--branco-70);
}
.faq__resposta b { color: var(--branco); font-weight: 600; }


/* ═══════════════════════════════════════════════════════════
   DOBRA 12 — SUPORTE (WhatsApp)
   ═══════════════════════════════════════════════════════════ */
.suporte {
  position: relative;
  padding-block: var(--espaco-lg) var(--espaco-dobra);
  overflow: hidden;
  background: var(--azul-900);
}
.suporte__aura {
  position: absolute;
  top: -10%;
  left: 50%;
  width: 90vw;
  max-width: 1000px;
  aspect-ratio: 2 / 1;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at center, rgba(79, 195, 247, .12) 0%, transparent 62%);
  filter: blur(50px);
  pointer-events: none;
}
.suporte__inner {
  position: relative;
  z-index: 1;
  max-width: 680px;
  margin-inline: auto;
  text-align: center;
}
.suporte__titulo {
  font-family: var(--fonte-titulo);
  font-size: clamp(24px, 2.5vw, 34px);
  font-weight: 700;
  line-height: 1.2;
  margin-bottom: var(--espaco-sm);
}
.suporte__texto {
  font-size: var(--sub);
  font-weight: 300;
  line-height: 1.65;
  color: var(--branco-70);
  max-width: 52ch;
  margin: 0 auto var(--espaco-lg);
}
.suporte__texto b { color: var(--branco); font-weight: 600; }

/* Botão do WhatsApp */
.btn--whats { background: #25D366; color: #04331b; }
.btn--whats:hover,
.btn--whats:focus-visible { background: #21c65e; box-shadow: 0 14px 32px -12px rgba(37, 211, 102, .5); }
.btn--whats .btn__label { display: inline-flex; align-items: center; gap: 10px; }
.btn__ico { width: 20px; height: 20px; flex: none; }


/* ═══════════════════════════════════════════════════════════
   FOOTER
   ═══════════════════════════════════════════════════════════ */
.rodape {
  background: #05080e;
  border-top: 1px solid rgba(255, 255, 255, .06);
  padding-block: var(--espaco-xl);
}
.rodape__brand {
  text-align: center;
  padding-bottom: var(--espaco-lg);
}
.rodape__logo {
  display: inline-block;
  width: auto;
  height: 64px;
  opacity: .95;
}
.rodape__base {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--espaco-md);
  padding-top: var(--espaco-md);
  border-top: 1px solid rgba(255, 255, 255, .08);
}
/* Contraste: sobre o #05080e do rodapé, .42 dava 4.0:1 e reprovava no WCAG AA
   (mínimo 4.5:1 para texto pequeno). .62 sobe para ~7:1. */
.rodape__copy {
  font-size: 12.5px;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, .62);
}
.rodape__feito { display: inline-flex; align-items: center; gap: 12px; }
.rodape__feito-label {
  font-size: 11px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, .60);   /* era .35 → reprovava no contraste */
}
.rodape__jose { height: 22px; width: auto; opacity: .85; }


/* ═══════════════════════════════════════════════════════════
   RESPONSIVIDADE
   ═══════════════════════════════════════════════════════════ */

/* ── Notebook comum (a resolução mais frequente) ── */
@media (max-width: 1366px) {
  :root { --container: 1120px; }
  .hero__img { object-position: 74% center; }
}

/* ── Tablet / laptop pequeno ── */
@media (max-width: 1024px) {
  :root { --espaco-dobra: 80px; }

  .hero__content { max-width: 560px; }
  .hero__img { object-position: 70% center; }
  .hero__scrim {
    background:
      linear-gradient(90deg,
        var(--azul-800) 0%,
        rgba(0, 33, 73, .95) 34%,
        rgba(0, 33, 73, .74) 50%,
        rgba(0, 33, 73, .22) 66%,
        rgba(0, 33, 73, 0) 78%),
      linear-gradient(180deg, rgba(0, 23, 50, .4) 0%, rgba(0, 23, 50, 0) 35%, rgba(0, 23, 50, .5) 100%);
  }

  .dor { grid-template-columns: 240px 1fr; }
  .dor:nth-child(even) { grid-template-columns: 1fr 240px; }

  .raiz__inner { grid-template-columns: 1fr 340px; }

  .andre__inner { grid-template-columns: 340px 1fr; }

}

/* ── Mobile ── */
@media (max-width: 768px) {
  :root {
    --espaco-xl: 48px;
    --espaco-lg: 32px;
    --espaco-md: 20px;
    --espaco-dobra: 72px;
    --gap-logo-titulo: 24px;
    --gap-sub-cta: 32px;
    --gap-titulo-conteudo: 32px;
    --gap-card-interno: 20px;
  }

  /* Capa vertical do celular (CapaV1S): André no topo, base navy p/ o texto */
  .hero {
    display: block;
    position: relative;
    min-height: 0;
    padding-block: 0 var(--espaco-lg);
    background: var(--azul-800);
  }

  .hero__bg {
    position: relative;
    inset: auto;
    height: auto;
  }
  .hero__img {
    width: 100%;
    height: auto;              /* aspecto natural da capa vertical */
    aspect-ratio: 900 / 1600;  /* reserva a altura ANTES da capa carregar — é o
                                  que impede a página inteira de pular (CLS) */
  }
  .hero__scrim { display: none; }   /* a própria capa já tem o fade navy */
  .hero__glow { display: none; }

  /* Conteúdo sobe pra área navy da capa (% é relativo à largura → responsivo,
     fecha igual em 360px e em 430px). Se quiser subir/descer o texto na capa,
     é só mexer neste -%: cada 1% ≈ 4px num celular de 393px de largura. */
  .hero__inner { margin-top: -105%; }
  .hero__content { max-width: 100%; text-align: center; }
  .hero__logo {
    margin-inline: auto;
    margin-bottom: 14px;
    width: clamp(150px, 44vw, 190px);
  }
  .hero__titulo { line-height: 1.22; font-size: 23px; margin-bottom: 14px; }
  .hero__sub { max-width: 100%; margin-inline: auto; margin-bottom: 18px; font-size: 14px; }

  .btn {
    width: 100%;
    padding-inline: 20px;
    white-space: normal;
    text-align: center;
    line-height: 1.35;
  }

  /* Régua — mais justa e menos apagada no mobile (não fica flutuando) */
  .regua { padding-block: var(--espaco-xs); margin-block: 0; }
  .regua__faixa { padding-block: 10px; width: 100%; margin-left: 0; }
  .regua__faixa::before,
  .regua__faixa::after { width: 40px; }
  .regua__logo { height: 46px; }
  .regua__sep { margin-inline: 22px; }

  /* Cards de dor viram coluna única */
  .dor,
  .dor:nth-child(even) { grid-template-columns: 1fr; }
  .dor:nth-child(even) .dor__media { order: 0; }
  .dor:nth-child(even) .dor__texto { order: 0; }

  /* Desejos — chip do número sobe para cima da frase */
  .desejo { grid-template-columns: 1fr; gap: 14px; align-items: start; }
  .desejo__num { width: 46px; height: 46px; border-radius: 13px; font-size: 14px; }
  .desejo__quote { padding: 14px 16px; }

  /* Raiz vira coluna única — imagem acima do texto */
  .raiz__inner { grid-template-columns: 1fr; }
  .raiz__media {
    width: 100%;
    max-width: 300px;
    margin-inline: auto;
    aspect-ratio: 4 / 5;
    margin-top: var(--espaco-md);   /* respiro entre o texto e a imagem */
  }
  .raiz__titulo br { display: none; }

  /* Depoimentos no celular — um print por vez, ocupando quase a tela toda.
     A sobra do próximo card serve de dica de que dá pra arrastar. */
  .depo { width: min(80vw, 330px); }
  .carrossel {
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent);
            mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent);
  }
  /* Fallback em CSS (quando o JS não assume): mesma lentidão do celular */
  .carrossel__track { animation-duration: 230s; }

  /* Quem é o André vira coluna única — foto acima do texto */
  .andre__inner { grid-template-columns: 1fr; }
  .andre__media {
    order: -1;
    width: 100%;
    max-width: 300px;
    margin-inline: auto;
    aspect-ratio: 4 / 5;
  }
  .andre .btn { width: 100%; }

  /* Cards em coluna única */
  .recebe__grid,
  .recebe__grid--bonus { grid-template-columns: 1fr; }
  .recebe__card--flag {
    flex-direction: column;
    align-items: flex-start;
    padding: var(--espaco-md);
  }
  .recebe__badge { position: static; align-self: flex-start; }
  .recebe__selo span { font-size: 10.5px; letter-spacing: .1em; }
  .recebe__cta .btn { width: 100%; }

  /* Preço maior no celular. No desktop o clamp é regido por vw, e num
     celular 4.6vw dá ~18px — ou seja, o preço travava no piso de 40px e
     ficava miúdo perto do resto do card. Aqui ele volta a ser o herói do
     bloco: ~55px num aparelho de 390px, com teto p/ tablet. */
  .plano__valor { font-size: clamp(46px, 14vw, 62px); }
  .plano__parcelas { font-size: 15px; }
  .plano__pacotes b { font-size: 17px; }

  /* Formulário — e-mail e telefone empilham */
  .form { padding: var(--espaco-md) var(--espaco-sm); }
  .form__linha { grid-template-columns: 1fr; }

  /* Footer empilha e centraliza */
  .rodape__base { flex-direction: column; gap: var(--espaco-sm); text-align: center; }
}

/* ── Planos empilham cedo (o texto dos botões é longo) ── */
@media (max-width: 900px) {
  .planos { grid-template-columns: 1fr; max-width: 460px; }
}

/* ── Desktop grande / ultrawide ── */
@media (min-width: 1920px) {
  :root {
    --container: 1320px;
    --container-wide: 1600px;
    --espaco-dobra: 120px;
  }
  .hero__content { max-width: 720px; }
  .hero__img { object-position: 82% center; }
}

@media (min-width: 2400px) {
  .hero { min-height: 0; height: 88vh; max-height: 1100px; }
  .hero__img { object-position: center center; }
}


/* ═══════════════════════════════════════════════════════════
   ACESSIBILIDADE — movimento reduzido
   ═══════════════════════════════════════════════════════════ */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }

  *, *::before, *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
  }

  .btn { animation: none; }
  .btn__shine { display: none; }

  /* Carrossel para de andar sozinho — vira rolagem manual */
  .carrossel { overflow-x: auto; }
  .carrossel__track { animation: none; }
}


/* ═══════════════════════════════════════════════════════════
   ESTRELINHAS — camada fixa por cima de tudo

   pointer-events: none é obrigatório, senão a camada come todo clique
   da página (inclusive os CTAs). O canvas é dimensionado pelo JS.
   ═══════════════════════════════════════════════════════════ */
.ceu {
  position: fixed;
  inset: 0;
  z-index: 9999;
  pointer-events: none;
}
.ceu canvas { display: block; }


/* ═══════════════════════════════════════════════════════════
   CARROSSEL ARRASTÁVEL — estado ligado pelo JS

   Precisa vir DEPOIS do bloco de "reduzir movimento": lá o carrossel
   vira overflow-x: auto, e quando o JS assume o transform quem manda na
   rolagem é o arrasto, não a barra nativa.
   Sem JS (ou sem GSAP), nada disso entra e o @keyframes do CSS segue
   tocando a esteira normalmente.
   ═══════════════════════════════════════════════════════════ */
.carrossel--drag {
  overflow: hidden;
  cursor: grab;
  touch-action: pan-y;              /* horizontal é nosso; vertical rola a página */
  -webkit-user-select: none;
          user-select: none;
}
.carrossel--drag.is-arrastando { cursor: grabbing; }
.carrossel--drag .carrossel__track { animation: none; }
