/* ============================================================================
   LP — Programa Equilíbrio Metabólico Feminino 35+ (style.css)
   ----------------------------------------------------------------------------
   LP de produção, hospedada em domínio próprio (Hostinger).
   CTAs S1/S12 rolam até a S13 (#fechamento).
   CTA S13 leva ao checkout Hotmart.

   Tokens vêm de theme.css. Zero cor hardcoded fora dos rgba derivados da
   paleta vinho/dourado/verde já definidos em :root.

   Audiência 35+ — texto NUNCA desce abaixo de 16px no mobile.
   ========================================================================== */


/* ════════ 0. UTILS LOCAIS ════════ */
.container {
  width: 100%;
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-px);
}
.container-narrow {
  max-width: 780px;
}

.eyebrow {
  display: inline-block;
  font-family: var(--font-body);
  font-size: clamp(0.9rem, 2.01vw, 1.05rem);
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--accent-gold);
  margin-bottom: 1.1rem;
}

/* Override local: em italic com gradient text (theme.css desativa italic global) */
.t-loud em,
.section-title em,
.crenca-statement em,
.historia-statement em,
.publico-title em,
.fechamento-quote em {
  font-style: italic;
  font-weight: 400;
  color: var(--accent-gold);
}

/* Divider sutil dourado (linha curta centralizada) */
.divider-gold {
  display: block;
  width: 56px;
  height: 1px;
  margin: clamp(1.75rem, 3vw, 2.5rem) auto;
  background: var(--accent-gold);
  opacity: 0.7;
  border-radius: 999px;
}
.divider-gold-wide { width: 96px; }
.divider-gold-soft {
  background: var(--accent-gold-light);
  opacity: 0.55;
}

/* Check-list (compartilhado pela crença + diferencial) */
.check-list {
  list-style: none;
  margin: 0 auto;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  max-width: 480px;
}
.check-list li {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  font-size: 1.05rem;
  color: var(--body);
  font-weight: 400;
  line-height: 1.5;
}
.check-list-gold li svg { color: var(--accent-gold); flex-shrink: 0; }
.check-list-center li { justify-content: flex-start; }

/* Statement editorial reutilizado (crença + diferencial) */
.crenca-statement {
  text-align: center;
  font-family: var(--font-display);
  font-size: clamp(1.25rem, 3.53vw, 1.65rem);
  color: var(--ink);
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: -0.015em;
  margin: 0.4rem 0;
}
.crenca-statement-strong { font-weight: 500; }


/* ════════════════════════════════════════════════════════════════
   NAV (nav-wrapper / brand / brand-logo / skip-link estão em theme.css)
   Aqui só ajustes específicos pra esta LP:
   - .nav-cta solto (theme.css só estiliza .nav-links li .nav-cta)
   - brand-logo um pouco menor (theme = 40px, aqui = 38px)
   ════════════════════════════════════════════════════════════════ */
.nav-wrapper .brand-logo { height: 38px; }

.nav-wrapper .nav {
  gap: 1rem;
  padding-block: 0.85rem;
}

.nav-wrapper .nav-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 0.65rem 1.25rem;
  background: var(--grad-leaf);
  color: #fff;
  border-radius: var(--radius-pill);
  font-family: var(--font-body);
  font-weight: 500;
  font-size: 0.95rem;
  letter-spacing: 0.04em;
  white-space: nowrap;
  box-shadow: 0 8px 20px rgba(76, 131, 60, 0.22);
  transition: transform var(--t-base) var(--ease-out),
              box-shadow var(--t-base) var(--ease-out),
              background var(--t-base) var(--ease-out);
}
.nav-wrapper .nav-cta:hover {
  background: var(--grad-leaf-hover);
  transform: translateY(-1px);
  box-shadow: 0 12px 28px rgba(76, 131, 60, 0.32);
}
.nav-wrapper .nav-cta:active { transform: translateY(0); }

@media (max-width: 480px) {
  .nav-wrapper .nav { padding-block: 0.65rem; gap: 0.5rem; }
  .nav-wrapper .brand-logo { height: 30px; }
  .nav-wrapper .nav-cta {
    padding: 0.5rem 0.9rem;
    font-size: 0.82rem;
    letter-spacing: 0.03em;
  }
}


/* ════════════════════════════════════════════════════════════════
   1. HERO — estrutura portada da lp-captura-1
   ════════════════════════════════════════════════════════════════ */
.hero {
  position: relative;
  background: var(--cream);
  padding-top: clamp(5.5rem, 8vw, 7rem);
  overflow: hidden;
  border-bottom: 1px solid rgba(74, 0, 48, 0.08);
  /* Trava em 100vh igual lp-captura-1 — conteúdo foi dimensionado pra caber */
  min-height: 100vh;
  max-height: 100vh;
  display: flex;
  flex-direction: column;
}
.hero::before {
  /* Glow radial sutil no canto sup direito (atrás da foto) */
  content: '';
  position: absolute;
  top: -10%;
  right: -8%;
  width: 60%;
  height: 60%;
  background: radial-gradient(circle at center, rgba(74, 0, 48, 0.06) 0%, transparent 60%);
  pointer-events: none;
  z-index: 0;
}
.hero::after {
  content: '';
  position: absolute;
  bottom: -10%;
  left: -8%;
  width: 50%;
  height: 50%;
  background: radial-gradient(circle at center, rgba(201, 169, 97, 0.08) 0%, transparent 65%);
  pointer-events: none;
  z-index: 0;
}

.hero-grid {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: var(--container-max);
  margin-inline: auto;
  display: grid;
  /* Padrão lp-captura-1: copy 1.05fr / figure 1fr — figure ocupa lado direito inteiro */
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
  grid-template-rows: 1fr auto;
  grid-template-areas:
    "copy figure"
    "ctas figure";
  align-items: stretch;
  flex: 1;
  min-height: 0;
}

.hero-copy {
  grid-area: copy;
  position: relative;
  z-index: 2;
  padding-left: var(--container-px);
  padding-right: clamp(2rem, 4vw, 4rem);
  padding-top: clamp(0.5rem, 1.5vw, 1.25rem);
  padding-bottom: 0;
  max-width: calc(var(--container-max) / 2 + var(--container-px));
  margin-left: auto;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.hero-figure { grid-area: figure; }

.hero-grid > .hero-ctas {
  grid-area: ctas;
  padding-left: var(--container-px);
  padding-right: clamp(2rem, 4vw, 4rem);
  padding-bottom: clamp(1.5rem, 3vw, 2.5rem);
  padding-top: 0.75rem;
  max-width: calc(var(--container-max) / 2 + var(--container-px));
  margin-left: auto;
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  align-items: flex-start;
}

/* Título dimensionado pra caber em 100vh junto com lede + CTA + 3 bullets */
.hero-title {
  margin-bottom: 1.1rem;
  letter-spacing: 0;
}
.hero-title .t-loud {
  display: block;
  font-family: var(--font-display);
  font-weight: 500;
  font-size: clamp(1.4rem, 4vw, 2.1rem);
  color: var(--ink);
  letter-spacing: -0.02em;
  line-height: 1.2;
}

.hero-lede {
  font-size: clamp(1rem, 1.93vw, 1.15rem);
  line-height: 1.55;
  color: var(--body);
  margin-bottom: 0;
  max-width: 44ch;
  font-weight: 400;
}

.hero-cta {
  font-size: 1.05rem;
  letter-spacing: 0.04em;
}

.hero-bullets {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.hero-bullets li {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  font-size: var(--fs-body);
  color: var(--body);
  line-height: 1.45;
}
.hero-bullets li svg {
  color: var(--accent);
  flex-shrink: 0;
}

/* Hero figure — padrão EXATO lp-captura-1: foto extravasa naturalmente, sem crop */
.hero-figure {
  position: relative;
  overflow: visible;      /* permite foto crescer pra fora da coluna */
  min-height: 0;
  z-index: 1;
}
.hero-figure picture {
  display: block;
  position: absolute;
  bottom: 0;              /* foto planta na base */
  left: -32%;             /* extravasa pra esquerda invadindo a coluna do copy */
  height: 100%;           /* foto = altura total do figure */
  pointer-events: none;
  z-index: 1;
}
.hero-figure picture img {
  display: block;
  height: 100%;           /* ocupa toda a altura do picture */
  width: auto;            /* width acompanha aspect ratio natural */
  max-width: none;        /* permite width crescer além da coluna */
}

/* ── Hero mobile (≤960px) — empilha: copy → figure → ctas ──── */
@media (max-width: 960px) {
  .hero {
    min-height: 100vh;
    min-height: 100dvh;
    max-height: none;
    padding-top: clamp(5rem, 14vw, 7rem);
    overflow: hidden;
  }
  .hero-grid {
    grid-template-columns: 1fr;
    grid-template-rows: auto minmax(280px, 1fr) auto;
    grid-template-areas:
      "copy"
      "figure"
      "ctas";
    min-height: 0;
    height: 100%;
  }
  .hero-copy {
    margin-left: 0;
    margin-inline: auto;
    max-width: 100%;
    padding: 0 var(--container-px) 1.25rem;
    text-align: center;
    align-items: center;
    justify-content: flex-start;
  }
  .hero-lede { margin-inline: auto; max-width: 40ch; }
  .hero-title { margin-bottom: 1rem; }
  .hero-title .t-loud {
    font-size: clamp(1.5rem, 9.93vw, 2.15rem);
    max-width: none;       /* libera o 22ch do desktop */
    line-height: 1.18;
  }

  .hero-figure {
    min-height: 280px;
    overflow: hidden;
  }
  .hero-figure picture { inset: 0; }
  .hero-figure picture img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
  }

  .hero-grid > .hero-ctas {
    margin-left: 0;
    max-width: 100%;
    width: 100%;
    padding: 1.25rem var(--container-px) 1.5rem;
    align-items: center;
    text-align: center;
  }
  .hero-grid > .hero-ctas .cta-button { width: 100%; max-width: 360px; justify-content: center; }
  .hero-bullets { align-items: center; }
  .hero-bullets li { justify-content: center; }
}

@media (max-width: 480px) {
  .hero-title .t-loud { font-size: clamp(1.65rem, 12.02vw, 2.15rem); line-height: 1.1; }
  .hero-lede { font-size: 1.05rem; }
  .hero-bullets li { font-size: 1rem; }
}


/* ════════════════════════════════════════════════════════════════
   2. IDENTIFICAÇÃO / DOR — 2 cards (5+4)
   ════════════════════════════════════════════════════════════════ */
.dor-section {
  padding-block: var(--section-py);
  background: var(--sand);
}

.dor-cards {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: clamp(1rem, 2vw, 1.5rem);
  max-width: 1080px;
  margin: 0 auto clamp(2.5rem, 5vw, 4rem);
}
.dor-card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: clamp(20px, 2vw, 28px);
  box-shadow: var(--shadow-md);
  padding: clamp(1.75rem, 3.5vw, 2.75rem);
}
.dor-card ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: clamp(1rem, 2vw, 1.5rem);
}
.dor-card li {
  display: flex;
  align-items: center;
  gap: 0.95rem;
  font-family: var(--font-display);
  font-weight: 500;
  font-size: clamp(1.05rem, 2.41vw, 1.25rem);
  color: var(--ink);
  letter-spacing: -0.005em;
  line-height: 1.35;
}
/* Bullet circular VAZIO verde (replicando o look dos PNGs) */
.dor-bullet-ring {
  display: inline-block;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  border: 3px solid var(--accent);
  flex-shrink: 0;
}

.dor-drama {
  text-align: center;
  font-size: clamp(1.05rem, 2.56vw, 1.25rem);
  color: var(--body);
  margin: 0 auto clamp(2.5rem, 5vw, 4rem);
  max-width: 60ch;
  line-height: 1.55;
}
.dor-quote-inline {
  display: inline;
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 400;
  color: var(--ink);
}

.pullquote-editorial {
  margin: 0 auto;
  max-width: 22ch;
  text-align: center;
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 400;
  font-size: clamp(2.25rem, 9.61vw, 5rem);
  line-height: 1.1;
  letter-spacing: -0.035em;
  color: var(--ink);
}

@media (max-width: 760px) {
  .dor-cards { grid-template-columns: 1fr; }
}

@media (max-width: 480px) {
  .dor-card { padding: 1.5rem 1.35rem; }
  .dor-card li { font-size: 1.05rem; gap: 0.8rem; }
  .dor-bullet-ring { width: 20px; height: 20px; border-width: 2.5px; }
  .pullquote-editorial { font-size: clamp(1.9rem, 14.4vw, 2.6rem); }
}


/* ════════════════════════════════════════════════════════════════
   3. QUEBRA DE CRENÇA
   ════════════════════════════════════════════════════════════════ */
.crenca-section {
  padding-block: var(--section-py);
  background: var(--cream);
  position: relative;
  overflow: hidden;
}
.crenca-section::before {
  content: '';
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 90%;
  height: 50%;
  background: radial-gradient(ellipse at top center, rgba(74, 0, 48, 0.10) 0%, transparent 55%);
  pointer-events: none;
}

.crenca-prose {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.crenca-lead {
  text-align: center;
  font-size: var(--fs-lede);
  color: var(--body);
  margin-bottom: 1.5rem;
  max-width: 50ch;
  line-height: 1.55;
}


/* ════════════════════════════════════════════════════════════════
   4. SUA HISTÓRIA
   ════════════════════════════════════════════════════════════════ */
.historia-section {
  padding-block: var(--section-py);
  background: var(--sand);
}

.historia-grid {
  display: grid;
  grid-template-columns: 0.85fr 1.15fr;
  gap: clamp(2rem, 5vw, 4.5rem);
  align-items: start;
  margin-top: clamp(1.5rem, 3vw, 2.5rem);
}

.historia-photo {
  width: 100%;
  max-width: 440px;
  aspect-ratio: 4 / 5;
  border-radius: var(--radius-xl);
  overflow: hidden;
  box-shadow: var(--shadow-lg);
  background: var(--cream);
}
.historia-photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.historia-text { display: flex; flex-direction: column; }

.historia-intro {
  font-size: var(--fs-lede);
  color: var(--body);
  line-height: 1.55;
  margin-bottom: 1.5rem;
  max-width: 46ch;
}

.historia-lead {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 1.05rem;
  color: var(--ink);
  letter-spacing: -0.005em;
  margin-bottom: 0.85rem;
  text-transform: none;
}

.historia-list {
  list-style: none;
  margin: 0 0 2rem;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.65rem 1.25rem;
}
.historia-list li {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  font-size: var(--fs-body);
  color: var(--body);
  line-height: 1.5;
}
.historia-list .dot {
  width: 6px;
  height: 6px;
  flex-shrink: 0;
  background: var(--accent-gold);
  border-radius: 50%;
}

.historia-statement {
  font-family: var(--font-display);
  font-size: clamp(1.2rem, 3.2vw, 1.55rem);
  color: var(--ink);
  font-weight: 400;
  line-height: 1.45;
  letter-spacing: -0.015em;
  padding-top: 1.25rem;
  border-top: 1px solid var(--line);
  max-width: 50ch;
}

@media (max-width: 960px) {
  .historia-grid { grid-template-columns: 1fr; gap: 2.25rem; }
  .historia-photo { max-width: 360px; margin: 0 auto; }
  .historia-list { grid-template-columns: 1fr; }
}

@media (max-width: 480px) {
  .historia-photo { max-width: 280px; }
}


/* ════════════════════════════════════════════════════════════════
   5. O MÉTODO (5 etapas — timeline vertical editorial)
   ════════════════════════════════════════════════════════════════ */
.metodo-section {
  padding-block: var(--section-py);
  background: var(--cream);
  position: relative;
  overflow: hidden;
}
.metodo-section::before {
  content: '';
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 90%;
  height: 50%;
  background: radial-gradient(ellipse at top center, rgba(74, 0, 48, 0.10) 0%, transparent 55%);
  pointer-events: none;
}

.metodo-content {
  max-width: 1180px;
  margin: clamp(2.5rem, 5vw, 3.5rem) auto 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(2rem, 4vw, 3.5rem);
}

.metodo-figure {
  margin: 0;
  border-radius: 14px;
  overflow: hidden;
  background: var(--cream);
  box-shadow:
    0 18px 50px -24px rgba(74, 0, 48, 0.28),
    0 2px 8px -4px rgba(0, 0, 0, 0.08);
}
.metodo-figure img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.metodo-timeline {
  position: relative;
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: clamp(2rem, 3.5vw, 3rem);
}

/* Desktop >=960px: foto sticky a esquerda + timeline rolando a direita */
@media (min-width: 960px) {
  .metodo-content {
    grid-template-columns: 0.85fr 1fr;
    align-items: start;
    gap: clamp(2.5rem, 5vw, 4rem);
  }
  .metodo-figure {
    position: sticky;
    top: 100px;
    aspect-ratio: 4 / 5;
    max-height: calc(100vh - 140px);
  }
  .metodo-figure img {
    height: 100%;
    object-position: center;
  }
  .metodo-timeline { gap: clamp(2.5rem, 4vw, 3.5rem); }
}

.metodo-step {
  position: relative;
  display: grid;
  grid-template-columns: clamp(5rem, 10vw, 7rem) 1fr;
  gap: clamp(1.5rem, 3vw, 2.5rem);
  align-items: start;
}
/* Linha conectora vertical dourada entre steps */
.metodo-step:not(:last-child)::after {
  content: '';
  position: absolute;
  left: calc(clamp(5rem, 10vw, 7rem) / 2);
  top: clamp(4rem, 7.5vw, 6.5rem);
  bottom: calc(clamp(2.5rem, 5vw, 4rem) * -1);
  width: 1px;
  background: linear-gradient(180deg, var(--accent-gold) 0%, rgba(201, 169, 97, 0.15) 100%);
  pointer-events: none;
}

.metodo-number {
  font-family: var(--font-display);
  font-weight: 300;
  font-size: clamp(3.5rem, 11.21vw, 6rem);
  color: var(--accent-gold);
  letter-spacing: -0.03em;
  line-height: 1;
  text-align: center;
}

.metodo-body {
  padding-top: 0.85rem;
}

.metodo-label {
  display: inline-block;
  font-family: var(--font-body);
  font-size: 0.95rem;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--accent-gold);
  margin-bottom: 0.55rem;
}

.metodo-heading {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: clamp(1.3rem, 3.53vw, 1.75rem);
  color: var(--ink);
  letter-spacing: -0.005em;
  margin-bottom: 0.6rem;
  text-transform: none;
}

.metodo-desc {
  font-size: 1.05rem;
  color: var(--body);
  line-height: 1.55;
  max-width: 56ch;
}

@media (max-width: 600px) {
  .metodo-step {
    grid-template-columns: 1fr;
    gap: 0.5rem;
    text-align: left;
  }
  .metodo-step:not(:last-child)::after { display: none; }
  .metodo-number { text-align: left; font-size: 3.5rem; }
  .metodo-body { padding-top: 0.25rem; }
  .metodo-heading { font-size: 1.25rem; }
  .metodo-desc { font-size: 1rem; line-height: 1.6; }
}


/* ════════════════════════════════════════════════════════════════
   6. O QUE VOCÊ VAI RECEBER
   ════════════════════════════════════════════════════════════════ */
.incluso-section {
  padding-block: var(--section-py);
  background: var(--sand);
}

.incluso-grid {
  list-style: none;
  margin: 0 auto;
  padding: 0;
  max-width: 920px;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem 1.75rem;
}

.incluso-item {
  display: flex;
  align-items: center;
  gap: 0.95rem;
  padding: 1.1rem 1.35rem;
  background: var(--cream);
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  font-size: 1.05rem;
  color: var(--body);
  line-height: 1.45;
}

.incluso-check {
  width: 28px;
  height: 28px;
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--accent);
  color: #fff;
  border-radius: 50%;
}

@media (max-width: 700px) {
  .incluso-grid { grid-template-columns: 1fr; }
}

@media (max-width: 480px) {
  .incluso-item { font-size: 1rem; padding: 1rem 1.15rem; }
}

/* ── BÔNUS LIMITADO — 10 primeiras inscritas ────────────────── */
.bonus-card {
  position: relative;
  margin: clamp(2.5rem, 5vw, 3.5rem) auto 0;
  max-width: 880px;
  padding: clamp(1.75rem, 4vw, 2.5rem) clamp(1.5rem, 4vw, 2.75rem);
  background:
    radial-gradient(120% 80% at 20% 10%, rgba(201, 169, 97, 0.18) 0%, transparent 60%),
    linear-gradient(135deg, #fdf6e6 0%, #fbeed1 100%);
  border: 1px solid rgba(201, 169, 97, 0.40);
  border-radius: clamp(16px, 2.5vw, 24px);
  box-shadow:
    0 18px 50px -22px rgba(155, 116, 38, 0.35),
    0 40px 80px -40px rgba(155, 116, 38, 0.22),
    inset 0 1px 0 rgba(255, 255, 255, 0.7);
  overflow: hidden;
}

/* Ornamento dourado sutil no canto */
.bonus-card::before {
  content: "";
  position: absolute;
  top: -40%;
  right: -10%;
  width: 50%;
  height: 160%;
  background: radial-gradient(closest-side, rgba(201, 169, 97, 0.18) 0%, transparent 70%);
  pointer-events: none;
  z-index: 0;
}

.bonus-badge {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.45rem 0.95rem;
  background: rgba(155, 116, 38, 0.12);
  border: 1px solid rgba(155, 116, 38, 0.30);
  border-radius: 999px;
  font-family: var(--font-body);
  font-size: clamp(0.7rem, 2.41vw, 0.78rem);
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #8a6614;
  margin-bottom: clamp(1.25rem, 2.5vw, 1.75rem);
  z-index: 1;
}
.bonus-badge-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #c9a961;
  box-shadow: 0 0 0 3px rgba(201, 169, 97, 0.25);
  animation: bonusPulse 1.8s ease-in-out infinite;
  flex-shrink: 0;
}
@keyframes bonusPulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50%      { opacity: 0.7; transform: scale(0.85); }
}

.bonus-content {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  gap: clamp(1.25rem, 3vw, 2rem);
}

.bonus-icon {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: clamp(56px, 8vw, 72px);
  height: clamp(56px, 8vw, 72px);
  background: linear-gradient(135deg, #c9a961 0%, #a07f3a 100%);
  border-radius: 14px;
  color: #fff;
  box-shadow:
    0 10px 24px rgba(155, 116, 38, 0.32),
    inset 0 1px 0 rgba(255, 255, 255, 0.25);
}
.bonus-icon svg {
  width: clamp(28px, 5vw, 40px);
  height: clamp(28px, 5vw, 40px);
}

.bonus-text { flex: 1; min-width: 0; }
.bonus-eyebrow {
  font-family: var(--font-body);
  font-size: clamp(0.78rem, 2.24vw, 0.88rem);
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #8a6614;
  margin: 0 0 0.35rem;
  opacity: 0.85;
}
.bonus-title {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: clamp(1.45rem, 5.13vw, 2rem);
  line-height: 1.15;
  letter-spacing: -0.025em;
  color: var(--ink);
  margin: 0 0 0.55rem;
}
.bonus-title em {
  font-style: italic;
  font-weight: 700;
  color: var(--accent-gold);
}
.bonus-sub {
  font-size: clamp(0.96rem, 2.41vw, 1.05rem);
  line-height: 1.55;
  color: var(--body);
  margin: 0;
}

/* Mobile: stack vertical, icon menor centralizado */
@media (max-width: 560px) {
  .bonus-content {
    flex-direction: column;
    align-items: flex-start;
    gap: 1rem;
  }
  .bonus-icon { width: 52px; height: 52px; }
  .bonus-icon svg { width: 26px; height: 26px; }
}
@media (max-width: 480px) {
  .bonus-badge {
    font-size: 0.68rem;
    letter-spacing: 0.1em;
    padding: 0.4rem 0.75rem;
  }
}


/* ════════════════════════════════════════════════════════════════
   7. DIFERENCIAL
   ════════════════════════════════════════════════════════════════ */
.diferencial-section {
  padding-block: var(--section-py);
  background: var(--cream);
  position: relative;
  overflow: hidden;
}
.diferencial-section::before {
  content: '';
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 90%;
  height: 50%;
  background: radial-gradient(ellipse at top center, rgba(74, 0, 48, 0.10) 0%, transparent 55%);
  pointer-events: none;
}


/* ════════════════════════════════════════════════════════════════
   8 + 9. PARA QUEM É / PARA QUEM NÃO É
   ════════════════════════════════════════════════════════════════ */
.publico-section {
  padding-block: var(--section-py);
  background: var(--sand);
}

.publico-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(1rem, 2vw, 1.5rem);
  align-items: stretch;
}

.publico-card {
  display: flex;
  flex-direction: column;
  padding: clamp(2rem, 4vw, 3rem);
  border-radius: var(--radius-xl);
  min-height: 100%;
}

.publico-yes {
  background: var(--cream);
  border: 1px solid var(--line);
}
.publico-no {
  background: var(--ink);
  color: rgba(255, 255, 255, 0.95);
}

.publico-title {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: clamp(1.4rem, 3.84vw, 1.85rem);
  color: var(--ink);
  letter-spacing: -0.01em;
  margin-bottom: 1.5rem;
  line-height: 1.3;
}
.publico-title-on-dark { color: #fff; }

.publico-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}
.publico-list li {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  font-size: 1.05rem;
  color: var(--body);
  line-height: 1.5;
}
.publico-list-on-dark li { color: rgba(255, 255, 255, 0.95); }

.publico-icon {
  width: 26px;
  height: 26px;
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
}
.publico-icon-yes {
  background: var(--accent);
  color: #fff;
}
.publico-icon-no {
  background: rgba(255, 255, 255, 0.10);
  border: 1px solid rgba(255, 255, 255, 0.25);
  color: #fff;
}

@media (max-width: 960px) {
  .publico-grid { grid-template-columns: 1fr; }
}

@media (max-width: 480px) {
  .publico-list li { font-size: 1rem; }
}


/* ════════════════════════════════════════════════════════════════
   10. DEPOIMENTOS (placeholder)
   ════════════════════════════════════════════════════════════════ */
.depoimentos-section {
  padding-block: var(--section-py);
  background: var(--sand);
}

.depoimentos-grid {
  list-style: none;
  margin: clamp(1.5rem, 3vw, 2.5rem) 0 1.75rem;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: clamp(1rem, 1.8vw, 1.5rem);
}

.depoimento-card {
  aspect-ratio: 4 / 5;
  background: var(--cream);
  border: 1px dashed var(--line-strong);
  border-radius: var(--radius-lg);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.85rem;
  color: var(--muted);
  text-align: center;
  padding: 1.5rem;
}
.depoimento-card svg { color: var(--muted); opacity: 0.65; }

/* ── Card de vídeo de depoimento ───────────────────────────────── */
.depoimento-card-video {
  aspect-ratio: 9 / 16;
  background: #0a0a0a;
  border: 1px solid rgba(0, 0, 0, 0.08);
  padding: 0;
  overflow: hidden;
  align-items: stretch;
  justify-content: stretch;
  box-shadow:
    0 14px 36px -18px rgba(74, 0, 48, 0.35),
    0 2px 8px -3px rgba(0, 0, 0, 0.12);
  transition:
    transform var(--t-base) var(--ease-out),
    box-shadow var(--t-base) var(--ease-out);
}
.depoimento-card-video:hover {
  transform: translateY(-3px);
  box-shadow:
    0 22px 48px -20px rgba(74, 0, 48, 0.45),
    0 3px 10px -3px rgba(0, 0, 0, 0.15);
}

.depoimento-video {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  background: #0a0a0a;
  accent-color: var(--accent);
  outline: none;
}
.depoimento-video:focus-visible {
  outline: 2px solid var(--accent-gold);
  outline-offset: 2px;
}

/* Estiliza a UI nativa do player (WebKit / Chrome / Safari) */
.depoimento-video::-webkit-media-controls-panel {
  background: linear-gradient(
    to top,
    rgba(0, 0, 0, 0.72) 0%,
    rgba(0, 0, 0, 0.48) 60%,
    transparent 100%
  );
}
.depoimento-video::-webkit-media-controls-play-button,
.depoimento-video::-webkit-media-controls-volume-slider,
.depoimento-video::-webkit-media-controls-timeline {
  filter: hue-rotate(310deg) saturate(1.2);
}

/* Overlay-play personalizado (substitui o "play" enorme padrão ao pausar) */
.depoimento-video::-webkit-media-controls-overlay-play-button {
  background-color: var(--accent);
  opacity: 0.88;
  border-radius: 999px;
}


/* ── Relatos estáticos: grid desktop (1 linha) + carrossel mobile ─ */
.relatos-rail {
  margin-top: clamp(2.5rem, 5vw, 4rem);
  position: relative;
}

.relatos-grid {
  list-style: none;
  margin: 0;
  padding: 0 var(--container-px) 1rem;
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(200px, 1fr);
  gap: clamp(1rem, 2vw, 1.5rem);
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory;
  scroll-padding-inline: var(--container-px);
  scrollbar-width: thin;
  scrollbar-color: rgba(74, 0, 48, 0.25) transparent;
  /* Permite extrapolar o container pra alinhar com sangria */
  margin-inline: calc(var(--container-px) * -1);
}
.relatos-grid::-webkit-scrollbar { height: 6px; }
.relatos-grid::-webkit-scrollbar-thumb {
  background: rgba(74, 0, 48, 0.22);
  border-radius: 6px;
}

.relato-card {
  position: relative;
  scroll-snap-align: center;
  aspect-ratio: 9 / 16;
  background: var(--cream);
  border-radius: var(--radius-md);
  overflow: hidden;
  cursor: zoom-in;
  border: 1px solid rgba(0, 0, 0, 0.06);
  box-shadow:
    0 10px 28px -14px rgba(74, 0, 48, 0.30),
    0 2px 6px -3px rgba(0, 0, 0, 0.10);
  transition:
    transform var(--t-base) var(--ease-out),
    box-shadow var(--t-base) var(--ease-out);
}
.relato-card:hover,
.relato-card:focus-within {
  transform: translateY(-3px);
  box-shadow:
    0 18px 38px -16px rgba(74, 0, 48, 0.40),
    0 3px 10px -3px rgba(0, 0, 0, 0.14);
}
.relato-card img,
.relato-card video {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  background: #0a0a0a;
  pointer-events: none; /* impede interagir com video; só o card clica */
}

/* Indicador de play sobre os mp4 travados */
.relato-card-icon {
  position: absolute;
  inset: auto auto 0.65rem 0.65rem;
  width: 36px;
  height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.92);
  color: var(--wine);
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.25);
  pointer-events: none;
}

.relatos-hint {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  margin: 0.6rem auto 0;
  font-size: 0.85rem;
  color: var(--muted);
  letter-spacing: 0.01em;
  width: 100%;
  justify-content: center;
}
.relatos-hint svg { transform: rotate(-90deg); opacity: 0.7; }

/* Em desktop largo o grid centraliza dentro do container, sem overflow */
@media (min-width: 1100px) {
  .relatos-grid {
    grid-auto-columns: minmax(0, 1fr);
    grid-template-columns: repeat(6, 1fr);
    grid-auto-flow: row;
    overflow: visible;
    margin-inline: auto;
    padding-inline: 0;
    max-width: 1180px;
  }
  .relato-card { scroll-snap-align: none; }
  .relatos-hint { display: none; }
}


/* ── Lightbox overlay ─────────────────────────────────────────── */
.mb-lightbox {
  position: fixed;
  inset: 0;
  background: rgba(8, 4, 12, 0.92);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  display: none;
  align-items: center;
  justify-content: center;
  padding: clamp(1rem, 3vw, 2rem);
  z-index: 9999;
  opacity: 0;
  transition: opacity 0.2s var(--ease-out);
}
.mb-lightbox.is-open {
  display: flex;
  opacity: 1;
}
body.mb-lightbox-lock {
  overflow: hidden;
}
.mb-lightbox-stage {
  max-width: min(92vw, 720px);
  max-height: 88vh;
  display: flex;
  align-items: center;
  justify-content: center;
}
.mb-lightbox-image,
.mb-lightbox-video {
  max-width: 100%;
  max-height: 88vh;
  display: block;
  border-radius: 8px;
  box-shadow: 0 24px 80px rgba(0, 0, 0, 0.6);
}
.mb-lightbox-video { background: #000; }
.mb-lightbox-close {
  position: absolute;
  top: clamp(0.75rem, 2vw, 1.5rem);
  right: clamp(0.75rem, 2vw, 1.5rem);
  width: 44px;
  height: 44px;
  border: 0;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.12);
  color: #fff;
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
  transition: background 0.18s var(--ease-out), transform 0.18s var(--ease-out);
}
.mb-lightbox-close:hover {
  background: rgba(255, 255, 255, 0.22);
  transform: scale(1.05);
}

.depoimento-placeholder {
  font-size: 1rem;
  font-style: italic;
  color: var(--muted);
  letter-spacing: 0.01em;
}

/* Mobile e tablet: vira carrossel scroll-snap (mesma linguagem dos relatos) */
@media (max-width: 960px) {
  .depoimentos-grid {
    grid-template-columns: none;
    grid-auto-flow: column;
    grid-auto-columns: 78%;
    gap: 1rem;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scroll-snap-type: x mandatory;
    scroll-padding-inline: var(--container-px);
    padding-inline: var(--container-px);
    margin-inline: calc(var(--container-px) * -1);
    scrollbar-width: thin;
    scrollbar-color: rgba(74, 0, 48, 0.25) transparent;
  }
  .depoimentos-grid::-webkit-scrollbar { height: 6px; }
  .depoimentos-grid::-webkit-scrollbar-thumb {
    background: rgba(74, 0, 48, 0.22);
    border-radius: 6px;
  }
  .depoimento-card-video {
    scroll-snap-align: center;
    max-width: none;
    margin-inline: 0;
  }
}

@media (max-width: 480px) {
  .depoimentos-grid { grid-auto-columns: 84%; }
}


/* ════════════════════════════════════════════════════════════════
   11. GARANTIA
   ════════════════════════════════════════════════════════════════ */
.garantia-section {
  padding-block: var(--section-py);
  background: var(--cream);
  position: relative;
  overflow: hidden;
}
.garantia-section::before {
  content: '';
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 90%;
  height: 50%;
  background: radial-gradient(ellipse at top center, rgba(74, 0, 48, 0.10) 0%, transparent 55%);
  pointer-events: none;
}

.garantia-card {
  position: relative;
  max-width: 720px;
  margin: 0 auto;
  padding: clamp(2.5rem, 5vw, 4rem) clamp(1.75rem, 4vw, 3rem);
  background: var(--surface);
  border: 1px solid rgba(201, 169, 97, 0.3);
  border-radius: var(--radius-xl);
  text-align: center;
  box-shadow: var(--shadow-md);
}

.garantia-seal {
  color: var(--accent-gold);
  margin: 0 auto 1.5rem;
  display: block;
}

.garantia-title {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: clamp(1.5rem, 4.17vw, 2rem);
  color: var(--ink);
  letter-spacing: -0.015em;
  line-height: 1.3;
  margin-bottom: 1.25rem;
}

.garantia-text {
  font-size: 1.05rem;
  color: var(--body);
  line-height: 1.65;
  max-width: 56ch;
  margin: 0 auto;
}


/* ════════════════════════════════════════════════════════════════
   12. OFERTA
   ════════════════════════════════════════════════════════════════ */
.oferta-section {
  padding-block: var(--section-py);
  background: var(--ink);
  color: rgba(255, 255, 255, 0.95);
}

.oferta-section .section-title { color: #fff; }
.oferta-title {
  font-weight: 400;
  font-size: clamp(1.8rem, 5.13vw, 2.6rem);
  letter-spacing: -0.02em;
}

.oferta-card {
  max-width: 920px;
  margin: clamp(2rem, 4vw, 3rem) auto 0;
  padding: clamp(2.5rem, 5vw, 4rem);
  background: var(--grad-wine-deep);
  border: 1px solid rgba(201, 169, 97, 0.18);
  border-radius: var(--radius-xl);
  color: rgba(255, 255, 255, 0.95);
  box-shadow:
    0 30px 80px rgba(0, 0, 0, 0.35),
    inset 0 1px 0 rgba(255, 255, 255, 0.05);
  position: relative;
  overflow: hidden;
}
.oferta-card::before {
  content: '';
  position: absolute;
  top: -25%;
  right: -15%;
  width: 70%;
  height: 70%;
  background: radial-gradient(circle at center, rgba(201, 169, 97, 0.18) 0%, transparent 60%);
  pointer-events: none;
}
.oferta-card::after {
  content: '';
  position: absolute;
  bottom: -20%;
  left: -15%;
  width: 60%;
  height: 60%;
  background: radial-gradient(circle at center, rgba(226, 199, 127, 0.10) 0%, transparent 65%);
  pointer-events: none;
}

/* Layout 2-col em desktop: bullets esquerda, preço direita; CTA full-width abaixo */
.oferta-grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(2rem, 4vw, 3.5rem);
  align-items: center;
  margin-bottom: clamp(1.5rem, 3vw, 2rem);
}

.oferta-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.95rem;
  text-align: left;
}
.oferta-list li {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  font-size: 1.08rem;
  color: rgba(255, 255, 255, 0.95);
  line-height: 1.5;
}
.oferta-list li svg {
  color: var(--accent-gold-light);
  flex-shrink: 0;
}

/* Preço — hierarquia: parcela menor em cima, "ou" divider, valor à vista DOMINANTE */
.oferta-price {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding-left: clamp(1rem, 2vw, 2rem);
  border-left: 1px solid rgba(201, 169, 97, 0.25);
}
.oferta-price-installment {
  display: block;
  font-family: var(--font-body);
  font-weight: 400;
  font-size: clamp(1rem, 2.24vw, 1.2rem);
  color: rgba(255, 255, 255, 0.75);
  letter-spacing: 0.02em;
  margin-bottom: 0.4rem;
}
.oferta-price-or {
  display: inline-block;
  font-family: var(--font-body);
  font-weight: 500;
  font-size: 0.78rem;
  letter-spacing: 0.32em;
  text-transform: lowercase;
  color: var(--accent-gold);
  padding: 0.15rem 0.65rem;
  border: 1px solid rgba(201, 169, 97, 0.4);
  border-radius: 999px;
  margin-block: 0.85rem;
}
.oferta-price-cash {
  display: block;
  font-family: var(--font-display);
  font-weight: 500;
  color: #fff;
  font-size: clamp(2.4rem, 8.81vw, 3.8rem);
  letter-spacing: -0.03em;
  line-height: 1;
}
.oferta-price-cash em {
  font-style: normal;
  font-weight: 300;
  font-size: 0.45em;
  color: rgba(255, 255, 255, 0.7);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  display: block;
  margin-top: 0.45rem;
}

/* ════════════════════════════════════════════════════════════════
   PRICING PAIR — 2 cards lado a lado (lançamento + futuro)
   ════════════════════════════════════════════════════════════════ */
.pricing-pair {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: clamp(1.25rem, 2.5vw, 2rem);
  max-width: 1080px;
  margin: 0 auto;
  align-items: stretch;
}

.pricing-card {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: clamp(1.75rem, 3.5vw, 2.75rem) clamp(1.5rem, 3vw, 2.25rem);
  border-radius: clamp(20px, 2.5vw, 28px);
  isolation: isolate;
  transition: transform var(--t-base) var(--ease-out);
}

/* Card 1 — Lançamento: card destacado, dourado glowing */
.pricing-card--launch {
  background:
    radial-gradient(110% 80% at 80% 0%, rgba(201, 169, 97, 0.22) 0%, transparent 65%),
    linear-gradient(160deg, #380026 0%, #5C003E 55%, #6A0C4A 100%);
  border: 1px solid rgba(201, 169, 97, 0.42);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.10),
    0 24px 60px -24px rgba(74, 0, 48, 0.55),
    0 60px 120px -40px rgba(201, 169, 97, 0.18);
  color: #fff;
}
.pricing-card--launch:hover { transform: translateY(-3px); }

/* Glow externo dourado discreto (acima do card) */
.pricing-glow {
  position: absolute;
  inset: -1px;
  border-radius: inherit;
  pointer-events: none;
  z-index: -1;
  background: linear-gradient(135deg, rgba(201, 169, 97, 0.45) 0%, transparent 50%, rgba(201, 169, 97, 0.25) 100%);
  filter: blur(8px);
  opacity: 0.65;
}

/* Card 2 — Futuro: card secundário, sem destaque */
.pricing-card--future {
  background:
    linear-gradient(160deg, rgba(56, 0, 38, 0.62) 0%, rgba(92, 0, 62, 0.55) 100%);
  border: 1px solid rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.78);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.04),
    0 18px 40px -22px rgba(74, 0, 48, 0.35);
}

/* ── Header dos cards: badge ──────────────────────────────────── */
.pricing-card-head {
  text-align: center;
  margin-bottom: clamp(1.25rem, 2.5vw, 1.75rem);
}
.pricing-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.5rem 1rem;
  border-radius: 999px;
  font-family: var(--font-body);
  font-size: clamp(0.66rem, 2.08vw, 0.76rem);
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}
.pricing-badge--gold {
  background: linear-gradient(135deg, rgba(201, 169, 97, 0.28) 0%, rgba(184, 147, 68, 0.22) 100%);
  border: 1px solid rgba(201, 169, 97, 0.55);
  color: var(--accent-gold-light);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.12),
    0 6px 20px rgba(184, 147, 68, 0.25);
}
.pricing-badge--muted {
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.14);
  color: rgba(255, 255, 255, 0.62);
}
.pricing-badge-dot {
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--accent-gold);
  box-shadow: 0 0 0 3px rgba(201, 169, 97, 0.30);
  animation: pricingPulse 1.6s ease-in-out infinite;
  flex-shrink: 0;
}
@keyframes pricingPulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50%      { opacity: 0.6; transform: scale(0.82); }
}

/* ── Preço grande ─────────────────────────────────────────────── */
.pricing-amount {
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.4rem;
  padding-block: clamp(0.5rem, 1.5vw, 1rem);
  margin-bottom: clamp(1.25rem, 2.5vw, 1.75rem);
}
.pricing-installment {
  font-family: var(--font-body);
  font-size: clamp(0.85rem, 2.08vw, 1rem);
  letter-spacing: 0.04em;
  color: rgba(255, 255, 255, 0.62);
}
.pricing-card--future .pricing-installment { color: rgba(255, 255, 255, 0.5); }

.pricing-cash {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: clamp(2.6rem, 9.61vw, 4.2rem);
  line-height: 1;
  letter-spacing: -0.04em;
  color: #fff;
  display: inline-flex;
  align-items: baseline;
}
.pricing-card--future .pricing-cash { color: rgba(255, 255, 255, 0.85); }

.pricing-currency {
  font-size: 0.55em;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.68);
  letter-spacing: 0;
  margin-right: 0.15em;
}
.pricing-cents {
  font-size: 0.55em;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.68);
  letter-spacing: 0;
  margin-left: 0.08em;
}

.pricing-or {
  font-family: var(--font-body);
  font-size: clamp(0.85rem, 1.93vw, 0.98rem);
  color: rgba(255, 255, 255, 0.6);
  letter-spacing: 0.02em;
  margin-top: 0.3rem;
}
.pricing-card--future .pricing-or { color: rgba(255, 255, 255, 0.45); }

/* ── Lista de itens ───────────────────────────────────────────── */
.pricing-list {
  list-style: none;
  margin: 0 0 clamp(1.5rem, 3vw, 2rem);
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  border-top: 1px solid rgba(201, 169, 97, 0.18);
  padding-top: clamp(1.25rem, 2.5vw, 1.75rem);
}
.pricing-card--future .pricing-list { border-top-color: rgba(255, 255, 255, 0.08); }
.pricing-list li {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  font-family: var(--font-body);
  font-size: clamp(0.92rem, 1.93vw, 1.02rem);
  color: rgba(255, 255, 255, 0.85);
  line-height: 1.4;
}
.pricing-card--future .pricing-list li { color: rgba(255, 255, 255, 0.55); }
.pricing-list li svg {
  color: var(--accent-gold);
  flex-shrink: 0;
}
.pricing-card--future .pricing-list li svg { color: rgba(201, 169, 97, 0.55); }

/* ── CTA dos cards ────────────────────────────────────────────── */
.pricing-cta {
  margin-top: auto;
  width: 100%;
  justify-content: center;
  background: var(--accent);
  box-shadow:
    0 12px 32px rgba(76, 131, 60, 0.35),
    inset 0 1px 0 rgba(255, 255, 255, 0.18);
}
.pricing-cta:hover {
  background: var(--accent-2);
  box-shadow:
    0 16px 40px rgba(76, 131, 60, 0.45),
    inset 0 1px 0 rgba(255, 255, 255, 0.22);
}

.pricing-cta--disabled {
  background: rgba(255, 255, 255, 0.06);
  color: rgba(255, 255, 255, 0.55);
  border: 1px solid rgba(255, 255, 255, 0.10);
  box-shadow: none;
  cursor: not-allowed;
  font-weight: 600;
  letter-spacing: 0.06em;
  pointer-events: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* ── Selo de garantia ─────────────────────────────────────────── */
.pricing-guarantee {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  justify-content: center;
  margin: 1rem 0 0;
  font-family: var(--font-body);
  font-size: clamp(0.78rem, 1.77vw, 0.88rem);
  color: rgba(255, 255, 255, 0.7);
  letter-spacing: 0.02em;
}
.pricing-guarantee svg { color: var(--accent-gold); flex-shrink: 0; }
.pricing-guarantee--muted { color: rgba(255, 255, 255, 0.45); }
.pricing-guarantee--muted svg { color: rgba(201, 169, 97, 0.5); }

/* ── Selo de economia (abaixo dos 2 cards) ────────────────────── */
.pricing-savings {
  display: block;
  margin: clamp(1.75rem, 3vw, 2.5rem) auto 0;
  max-width: 600px;
  padding: 0.85rem 1.5rem;
  background: rgba(76, 131, 60, 0.14);
  border: 1px solid rgba(76, 131, 60, 0.36);
  border-radius: 999px;
  font-family: var(--font-body);
  font-size: clamp(0.9rem, 2.08vw, 1rem);
  color: rgba(255, 255, 255, 0.92);
  text-align: center;
  letter-spacing: 0.01em;
  line-height: 1.5;
}
.pricing-savings strong {
  color: var(--accent-gold-light);
  font-weight: 600;
  white-space: nowrap;
}
.pricing-savings-dot {
  display: inline-block;
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--accent);
  box-shadow: 0 0 0 3px rgba(76, 131, 60, 0.25);
  margin-right: 0.5rem;
  vertical-align: 1px;
}

/* Mobile: vira card retangular pra acomodar texto longo */
@media (max-width: 600px) {
  .pricing-savings {
    border-radius: 16px;
    padding: 1rem 1.25rem;
    line-height: 1.55;
  }
}

/* Container externo: centraliza pricing-savings */
.oferta-section .container { display: flex; flex-direction: column; align-items: center; }

/* ── Tablet (≤860px): stack vertical ──────────────────────────── */
@media (max-width: 860px) {
  .pricing-pair {
    grid-template-columns: 1fr;
    max-width: 540px;
  }
}

/* ── Mobile (≤480px): mais compacto ───────────────────────────── */
@media (max-width: 480px) {
  .pricing-card { padding: 1.5rem 1.25rem; }
  .pricing-cash { font-size: clamp(2.2rem, 14.4vw, 2.8rem); }
  .pricing-savings { font-size: 0.88rem; padding: 0.65rem 1rem; }
}


/* ── (legado removido) badges/precos antigos ──────────────────── */
.oferta-price-launch {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.4rem 0.95rem;
  background: linear-gradient(135deg, rgba(201, 169, 97, 0.22) 0%, rgba(155, 116, 38, 0.18) 100%);
  border: 1px solid rgba(201, 169, 97, 0.45);
  border-radius: 999px;
  font-family: var(--font-body);
  font-size: clamp(0.68rem, 2.24vw, 0.78rem);
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--accent-gold-light);
  margin-bottom: 1rem;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.10),
    0 4px 14px rgba(184, 147, 68, 0.25);
}
.oferta-price-launch-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--accent-gold);
  box-shadow: 0 0 0 3px rgba(201, 169, 97, 0.30);
  animation: launchPulse 1.6s ease-in-out infinite;
  flex-shrink: 0;
}
@keyframes launchPulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50%      { opacity: 0.65; transform: scale(0.82); }
}

.oferta-price-old {
  display: block;
  font-family: var(--font-body);
  font-size: clamp(0.85rem, 2.08vw, 1rem);
  color: rgba(255, 255, 255, 0.55);
  letter-spacing: 0.02em;
  margin-bottom: 0.65rem;
}
.oferta-price-old s {
  text-decoration-color: rgba(201, 169, 97, 0.55);
  text-decoration-thickness: 1.5px;
  color: rgba(255, 255, 255, 0.78);
  font-weight: 500;
  margin-left: 0.25em;
}

.oferta-price-save {
  display: inline-block;
  margin-top: 1rem;
  padding: 0.45rem 1rem;
  background: rgba(76, 131, 60, 0.18);
  border: 1px solid rgba(76, 131, 60, 0.42);
  border-radius: 999px;
  font-family: var(--font-body);
  font-size: clamp(0.82rem, 2.08vw, 0.92rem);
  color: rgba(255, 255, 255, 0.92);
  letter-spacing: 0.02em;
}
.oferta-price-save strong {
  color: var(--accent-gold-light);
  font-weight: 600;
  letter-spacing: 0.01em;
}

.oferta-cta {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 480px;
  margin: 0 auto;
  display: flex;
  justify-content: center;
  background: var(--accent);
  box-shadow:
    0 12px 36px rgba(76, 131, 60, 0.35),
    inset 0 1px 0 rgba(255, 255, 255, 0.18);
}
.oferta-cta:hover {
  background: var(--accent-2);
  box-shadow:
    0 16px 44px rgba(76, 131, 60, 0.45),
    inset 0 1px 0 rgba(255, 255, 255, 0.22);
}

.oferta-card .divider-gold-wide {
  margin-block: clamp(1.5rem, 3vw, 2.25rem) clamp(1.5rem, 3vw, 2rem);
}

/* Mobile ≤860px: stack vertical, preço fica abaixo dos bullets */
@media (max-width: 860px) {
  .oferta-grid {
    grid-template-columns: 1fr;
    gap: clamp(1.5rem, 3vw, 2rem);
  }
  .oferta-list { max-width: 380px; margin-inline: auto; }
  .oferta-price {
    border-left: 0;
    border-top: 1px solid rgba(201, 169, 97, 0.25);
    padding-left: 0;
    padding-top: clamp(1.5rem, 3vw, 2rem);
  }
}

@media (max-width: 480px) {
  .oferta-card { padding: 2rem 1.5rem; }
  .oferta-list li { font-size: 1rem; }
}


/* ════════════════════════════════════════════════════════════════
   13. FECHAMENTO FINAL (id="fechamento")
   ════════════════════════════════════════════════════════════════ */
.fechamento-section {
  padding-block: clamp(7rem, 14vw, 12rem);
  background: var(--grad-wine-deep);
  color: rgba(255, 255, 255, 0.95);
  text-align: center;
  position: relative;
  overflow: hidden;
  /* Offset pra nav fixa não comer o topo ao rolar até a âncora */
  scroll-margin-top: 80px;
}
.fechamento-section::before {
  content: '';
  position: absolute;
  top: -10%;
  left: -10%;
  width: 60%;
  height: 60%;
  background: radial-gradient(circle at center, rgba(201, 169, 97, 0.14) 0%, transparent 60%);
  pointer-events: none;
}
.fechamento-section::after {
  content: '';
  position: absolute;
  bottom: -10%;
  right: -10%;
  width: 60%;
  height: 60%;
  background: radial-gradient(circle at center, rgba(226, 199, 127, 0.10) 0%, transparent 60%);
  pointer-events: none;
}

/* Ornamento decorativo discreto acima da quote — assina cinematicamente */
.fechamento-mark {
  display: inline-flex;
  margin: 0 auto clamp(2rem, 4vw, 3rem);
  color: var(--accent-gold);
  opacity: 0.85;
  position: relative;
}

.fechamento-quote {
  position: relative;
  font-family: var(--font-display);
  font-weight: 300;
  font-style: italic;
  color: #fff;
  font-size: clamp(2.2rem, 8.81vw, 4.6rem);
  letter-spacing: -0.035em;
  line-height: 1.18;
  display: flex;
  flex-direction: column;
  gap: clamp(1rem, 2.5vw, 1.85rem);
  margin: 0 auto clamp(2.5rem, 5vw, 3.5rem);
  max-width: 22ch;
}
.fechamento-line-1,
.fechamento-line-2 {
  display: block;
}
.fechamento-line-2 em {
  font-style: italic;
  color: var(--accent-gold-light);
}

.fechamento-cta {
  position: relative;
  z-index: 1;
  margin-top: clamp(2rem, 4vw, 3rem);
  margin-bottom: 0;
  max-width: 580px;
  white-space: normal;
  padding-block: clamp(1.1rem, 2vw, 1.4rem);
  padding-inline: clamp(1.75rem, 3vw, 2.5rem);
  font-size: clamp(1rem, 2.08vw, 1.15rem);
  line-height: 1.35;
  background: var(--accent);
  box-shadow:
    0 14px 40px rgba(76, 131, 60, 0.4),
    inset 0 1px 0 rgba(255, 255, 255, 0.18);
}
.fechamento-cta:hover {
  background: var(--accent-2);
  box-shadow:
    0 18px 48px rgba(76, 131, 60, 0.5),
    inset 0 1px 0 rgba(255, 255, 255, 0.22);
}
.fechamento-cta svg {
  flex-shrink: 0;
}

@media (max-width: 480px) {
  .fechamento-quote { font-size: clamp(1.95rem, 12.81vw, 2.8rem); }
  .fechamento-mark svg { width: 48px; height: 18px; }
  .fechamento-cta { font-size: 0.98rem; }
}


/* ════════════════════════════════════════════════════════════════
   FOOTER — override do theme.css (que usa grid 1fr auto pro footer
   da LP institucional). Aqui o footer é minimalista, 1 coluna,
   centralizado.
   ════════════════════════════════════════════════════════════════ */
.site-footer .footer-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
  text-align: center;
  /* zera resíduos do grid do theme.css */
  grid-template-columns: none;
  padding-right: 0;
}
.site-footer .footer-logo {
  display: block;
  height: 72px;
  width: auto;
  filter: brightness(0) invert(1);
  opacity: 0.92;
  margin-bottom: 0.5rem;
}
.site-footer .footer-text {
  font-size: 0.98rem;
  color: rgba(255, 255, 255, 0.85);
  line-height: 1.55;
  margin: 0;
}
.site-footer .footer-copy {
  /* sobrescreve flex-direction/border do .footer-copy padrão do theme.css */
  display: block;
  padding: 0;
  margin: 0;
  border: 0;
  font-size: 0.9rem;
  color: rgba(255, 255, 255, 0.55);
  letter-spacing: 0.02em;
  align-items: center;
  text-align: center;
}

@media (max-width: 480px) {
  .site-footer .footer-text { font-size: 0.92rem; }
  .site-footer .footer-copy { font-size: 0.85rem; }
  .site-footer .footer-logo { height: 60px; }
}


/* ════════════════════════════════════════════════════════════════
   RESPONSIVE FIXES — mobile pequeno (<= 480px e <= 380px)
   ════════════════════════════════════════════════════════════════ */

/* Botões: garantir que texto longo quebre dentro do CTA, sempre centrado */
.cta-button {
  white-space: normal;
  text-align: center;
  word-break: break-word;
}
.cta-button > span {
  display: inline-block;
  text-align: center;
  text-wrap: balance;
}

/* CTA do fechamento — texto longo "Comece agora sua jornada..." */
.fechamento-cta {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  row-gap: 0.5rem;
}

@media (max-width: 600px) {
  .fechamento-cta {
    width: 100%;
    max-width: 380px;
    padding-inline: clamp(1.1rem, 3vw, 1.6rem);
    font-size: clamp(0.92rem, 5.61vw, 1.05rem);
    line-height: 1.3;
  }
}

/* Hero — refinos pra mobile médio (até 480px) */
@media (max-width: 480px) {
  .hero {
    padding-top: clamp(4.5rem, 11vw, 6rem);
  }
  .hero-title .t-loud {
    font-size: clamp(1.35rem, 8.97vw, 1.85rem);
    line-height: 1.18;
    letter-spacing: -0.018em;
  }
  .hero-lede {
    font-size: 0.98rem;
    line-height: 1.5;
  }
  .hero-bullets li {
    font-size: 0.95rem;
    line-height: 1.4;
  }
  .hero-cta { font-size: 0.98rem; }
}

/* Hero — mobile pequeno (≤ 380px, iPhone SE) */
@media (max-width: 380px) {
  .hero-title .t-loud {
    font-size: clamp(1.2rem, 8.66vw, 1.5rem);
  }
  .hero-lede { font-size: 0.92rem; }
  .hero-bullets li {
    font-size: 0.88rem;
    gap: 0.5rem;
  }
  .hero-grid > .hero-ctas .cta-button {
    font-size: 0.92rem;
    padding-inline: 1.1rem;
    letter-spacing: 0.02em;
  }
}

/* Oferta — preço não pode estourar coluna em mobile */
@media (max-width: 480px) {
  .oferta-price-installment { font-size: clamp(1.2rem, 7.99vw, 1.45rem); }
  .oferta-price-cash { font-size: clamp(1.5rem, 9.61vw, 1.85rem); }
  .oferta-cta {
    padding-inline: clamp(1rem, 3vw, 1.5rem);
    font-size: clamp(0.9rem, 5.61vw, 1.02rem);
  }
}

/* Depoimentos — em mobile fica 1 coluna mais compacto */
/* (carrossel mobile dos depoimentos vive na regra acima; sem override aqui) */

/* Garante que nada na página estoure horizontal */
html, body {
  overflow-x: clip  /* hidden quebra position:sticky nos descendentes */;
  max-width: 100%;
}

/* ── Fixes mobile pequeno (320-360px) — UX audit 2026-06-02 ── */

/* Relatos grid — cards mais compactos em telas finas */
@media (max-width: 360px) {
  .relatos-grid { grid-auto-columns: minmax(150px, 1fr); }
}

/* Lightbox close button — afastado da borda + alvo correto em 320px */
@media (max-width: 360px) {
  .mb-lightbox-close {
    top: 1rem;
    right: 1rem;
    width: 40px;
    height: 40px;
    font-size: 24px;
  }
}

/* Oferta preço — installment com piso 16px (audiência 35+ exige legibilidade) */
.oferta-price-installment {
  font-size: clamp(1.05rem, 2.56vw, 1.25rem);
}

/* Hero figura: foco no rosto em 320px */
@media (max-width: 360px) {
  .hero-figure { min-height: 240px; }
  .hero-figure picture img { object-position: center; }
}

/* ═══════ AUDIT MANUAL 2026-06-02 — refinamentos finais ═══════ */

/* CTAs grandes do oferta e fechamento ocupam toda a largura em mobile */
@media (max-width: 480px) {
  .oferta-cta,
  .fechamento-cta,
  .hero-cta {
    width: 100%;
    max-width: 360px;
    margin-inline: auto;
    justify-content: center;
  }
}

/* Garantia card: padding apertado em mobile pequeno */
@media (max-width: 360px) {
  .garantia-card { padding: clamp(1.75rem, 5vw, 2.5rem) clamp(1.2rem, 4vw, 1.6rem); }
  .garantia-title { font-size: clamp(1.3rem, 7.99vw, 1.7rem); line-height: 1.2; }
  .garantia-text { font-size: clamp(0.92rem, 5.44vw, 1rem); }
}

/* Quote pull (sentencias com "Normal no exame...") nao estoura em 320 */
@media (max-width: 360px) {
  .pullquote-editorial,
  .dor-drama,
  .dor-quote-inline {
    font-size: clamp(1.05rem, 7.2vw, 1.4rem);
    line-height: 1.3;
  }
}

/* Fechamento quote em 320: hard cap pra nao quebrar feio */
@media (max-width: 360px) {
  .fechamento-quote {
    font-size: clamp(1.65rem, 11.21vw, 2.4rem);
    max-width: 100%;
    padding-inline: 0.25rem;
  }
}

/* Metodo steps em mobile compactos */
@media (max-width: 360px) {
  .metodo-heading { font-size: clamp(1.05rem, 6.73vw, 1.3rem); line-height: 1.22; }
  .metodo-desc { font-size: 0.94rem; line-height: 1.55; }
  .metodo-number { font-size: clamp(2rem, 14.4vw, 2.8rem); }
}

/* Incluso list items + bonus items: gap menor em 320 */
@media (max-width: 360px) {
  .incluso-item,
  .bonus-item { gap: 0.5rem; font-size: 0.94rem; line-height: 1.45; }
  .incluso-check { width: 18px; height: 18px; flex-shrink: 0; }
}

/* Publico para quem e: card padding e tipografia */
@media (max-width: 360px) {
  .publico-card { padding: clamp(1.25rem, 5vw, 1.85rem) clamp(1rem, 4vw, 1.5rem); }
  .publico-title { font-size: clamp(1.1rem, 7.2vw, 1.4rem); }
  .publico-list li { font-size: clamp(0.92rem, 5.44vw, 1rem); line-height: 1.5; }
}

/* Touch targets */
.relato-card,
.depoimento-card,
.abordagem-trigger,
.faq-question {
  min-height: 44px;
}


/* ════════════════════════════════════════════════════════════════
   PREFERS REDUCED MOTION
   ════════════════════════════════════════════════════════════════ */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
  }
}

/* ════════════════════════════════════════════════════════════════
   MOBILE AUDIT FIXES (hm-team /hm-team 2026-06-22)
   ════════════════════════════════════════════════════════════════ */

h1, h2, h3,
.section-title, .hero-title, .pricing-title, .bonus-title,
.pullquote-editorial, .crenca-statement, .historia-statement,
.publico-title, .fechamento-quote, .metodo-name {
  text-wrap: pretty;
}

/* Remove traços laterais decorativos do eyebrow (.eyebrow é o equivalente em Hotmart) */
.label-line, .eyebrow-line, .eyebrow-dash { display: none !important; }
.eyebrow, .section-label, .hero-eyebrow { gap: 0; padding-left: 0; }
.eyebrow::before, .section-label::before {
  content: '';
  display: block;
  width: 48px;
  height: 2px;
  background: var(--accent-gold);
  margin: 0 auto 0.85rem;
  border-radius: 999px;
}

@media (max-width: 600px) {
  .pricing-pair { grid-template-columns: 1fr; max-width: 460px; gap: 1.5rem; }
  .pricing-installment { white-space: nowrap; }
  .pricing-cta { width: 100%; }
}

@media (max-width: 560px) {
  .pricing-cash { font-size: clamp(2rem, 11.21vw, 2.6rem); }
  .pricing-or { font-size: 0.78rem; margin-top: 0.2rem; }
  .pricing-badge { font-size: 0.72rem; padding: 0.45rem 0.85rem; letter-spacing: 0.12em; }
  .bonus-title { font-size: clamp(1.15rem, 6.41vw, 1.4rem); }
  .pullquote-editorial { font-size: clamp(1.5rem, 7.99vw, 1.9rem); }
  .crenca-statement { max-width: 35ch; margin-inline: auto; }
  .garantia-card { padding: 1.75rem 1.25rem; }
  .publico-card { padding: 1.5rem 1.25rem; }
  .historia-list { grid-template-columns: 1fr; gap: 0.5rem; }
}

@media (max-width: 414px) {
  .cta-button { white-space: normal; line-height: 1.25; }
  .nav-cta { padding: 0.45rem 0.8rem; font-size: 0.78rem; }
}

@media (max-width: 360px) {
  .pricing-cash { font-size: clamp(1.8rem, 10.4vw, 2.2rem); }
  .pricing-installment { font-size: 0.82rem; }
  .pricing-card { padding: 1.25rem 1rem; }
  .hero-title .t-loud { font-size: clamp(1.4rem, 9.61vw, 1.7rem); }
  .metodo-number { font-size: 2.6rem; }
}


/* SEM-TRACO-SECTION-LABEL */
/* ===== Removido a pedido: nenhum traço/linha antes dos rótulos de seção ===== */
.section-label::before,
.eyebrow::before { content: none !important; display: none !important; }
.section-label .label-line,
.eyebrow .label-line { display: none !important; }

/* Card de preço único (pós-lançamento) — centralizado */
.pricing-pair--single { grid-template-columns: 1fr; max-width: 520px; }


/* ════════════════════════════════════════════════════════════════
   LP SAÚDE INTEGRATIVA v2 — componentes/ajustes desta página
   (base espelhada da LP do programa; copy de 10 dobras)
   ════════════════════════════════════════════════════════════════ */

/* Hero destravado por segurança: se o conteúdo passar de 100vh em
   telas baixas, a página rola em vez de cortar o CTA (lição da v1) */
.hero { max-height: none; }

/* Segundo parágrafo do lede do hero (frase dos 17 anos) */
.hero-lede-sub {
  font-size: calc(var(--fs-lede) * 0.88);
  color: var(--muted, var(--body));
  margin-top: 0.65rem;
}

/* Linha de CTA centralizada no fim das seções (a copy pede CTA por dobra) */
.section-cta-row {
  display: flex;
  justify-content: center;
  margin-top: clamp(2rem, 4vw, 3rem);
}
.section-cta-row .cta-button { text-align: center; }

/* Dobra 3: subtítulo entre o bloco de sinais e o bloco de exames */
.dor-subhead {
  text-align: center;
  margin: clamp(2.2rem, 4.5vw, 3.2rem) auto 0;
  max-width: 60ch;
}

/* Dobra 4: corrente causa→efeito — timeline em coluna única centrada */
.metodo-content--single {
  max-width: 780px;
}
@media (min-width: 960px) {
  .metodo-content--single { grid-template-columns: 1fr; }
}

/* Fechos de prosa centrada (dobras 4 e 8) no molde da crenca-section */
.metodo-fecho,
.conquistas-fecho {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  margin: clamp(2.5rem, 5vw, 3.5rem) auto 0;
}
.conquistas-cadeia { margin-bottom: 0; max-width: 56ch; }

/* Dobra 6: parágrafo de fecho da história */
.historia-outro {
  font-size: calc(var(--fs-lede) * 0.92);
  color: var(--body);
  line-height: 1.6;
  margin-top: 1.5rem;
}

/* Dobra 5: lead centrado da seção diferencial */
.diferencial-lead { margin-inline: auto; }

/* Dobra 10: assinatura do método antes do CTA final */
.fechamento-assinatura {
  text-align: center;
  font-size: 0.95rem;
  line-height: 1.7;
  /* fundo da seção é vinho escuro — creme translúcido, nunca var(--body) */
  color: rgba(245, 237, 228, 0.8);
  margin-top: clamp(1.5rem, 3vw, 2rem);
}
.fechamento-assinatura strong { font-weight: 500; color: inherit; }


/* ════════════════════════════════════════════════════════════════
   POLISH UI 2026-07-13 — auditoria hm-team (copy intacta)
   Ritmo visual: menos CTAs, âncoras escuras/douradas, clímax único.
   Nenhuma regra reduz corpo de texto abaixo do padrão de acessibilidade.
   ════════════════════════════════════════════════════════════════ */

/* Âncoras de navegação não somem sob o header fixo */
section[id] { scroll-margin-top: 96px; }

/* ── Hero: título com massa (2ª linha itálica dourada, copy do lede) ── */
.hero-title-line2 {
  display: block;
  margin-top: 0.9rem;
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 400;
  font-size: clamp(1.35rem, 3.2vw, 1.9rem);
  line-height: 1.3;
  letter-spacing: -0.01em;
  color: var(--accent-gold);
}
.hero-title-line2 em { font-style: inherit; }

/* ── Link editorial: substitui os pills verdes intermediários ── */
.link-inline {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  font-weight: 500;
  font-size: 1.08rem;
  letter-spacing: 0.05em;
  color: var(--ink);
  padding-bottom: 0.35rem;
  border-bottom: 2px solid var(--accent-gold);
  transition: color var(--t-fast) var(--ease-out),
              border-color var(--t-fast) var(--ease-out),
              gap var(--t-fast) var(--ease-out);
}
.link-inline:hover {
  color: var(--accent);
  border-color: var(--accent);
  gap: 0.9rem;
}
.link-inline svg { flex-shrink: 0; }

/* ── Dobra 3: exames em card vinho (âncora escura nº 1) ── */
.dor-cards--exames .dor-card {
  background: var(--grad-wine-deep);
  border-color: rgba(201, 169, 97, 0.35);
  box-shadow: 0 24px 60px -28px rgba(56, 0, 38, 0.55);
}
.dor-cards--exames .dor-card li { color: rgba(245, 237, 228, 0.94); }
.dor-cards--exames .dor-bullet-ring {
  border-color: var(--accent-gold);
  opacity: 0.9;
}

/* Pullquote da dobra 3: presença editorial sem competir com o fechamento */
.dor-section .pullquote-editorial {
  font-size: clamp(1.5rem, 4.17vw, 2rem);
  max-width: 34ch;
  line-height: 1.35;
}

/* ── Dobra 4: corrente causal compacta (5 mini-cards no desktop) ── */
@media (min-width: 960px) {
  .metodo-content--single { max-width: 1180px; }
  .metodo-content--single .metodo-timeline {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: clamp(1rem, 1.8vw, 1.5rem);
    align-items: stretch;
  }
  .metodo-content--single .metodo-step {
    grid-template-columns: 1fr;
    gap: 0.6rem;
    text-align: center;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 1.6rem 1.1rem 1.5rem;
    box-shadow: var(--shadow-md);
  }
  .metodo-content--single .metodo-step::after { display: none; }
  .metodo-content--single .metodo-number {
    font-size: 2.1rem;
    margin-inline: auto;
  }
  .metodo-content--single .metodo-heading { font-size: 1.05rem; letter-spacing: 0.04em; }
  .metodo-content--single .metodo-desc { font-size: 1.02rem; line-height: 1.5; }
}

/* ── Dobra 4: fecho vira card dourado (âncora dourada, molde do bonus-card) ── */
.metodo-fecho.destaque-gold {
  max-width: 880px;
  padding: clamp(1.75rem, 4vw, 2.5rem) clamp(1.5rem, 4vw, 2.75rem);
  background:
    radial-gradient(120% 80% at 20% 10%, rgba(201, 169, 97, 0.18) 0%, transparent 60%),
    linear-gradient(135deg, #fdf6e6 0%, #fbeed1 100%);
  border: 1px solid rgba(201, 169, 97, 0.40);
  border-radius: clamp(16px, 2.5vw, 24px);
  box-shadow:
    0 18px 50px -22px rgba(155, 116, 38, 0.35),
    0 40px 80px -40px rgba(155, 116, 38, 0.22),
    inset 0 1px 0 rgba(255, 255, 255, 0.7);
}
.metodo-fecho.destaque-gold .crenca-statement { margin-bottom: 0.9rem; }
.metodo-fecho.destaque-gold .crenca-statement:last-child { margin-bottom: 0; }

/* ── Dobra 6: foto alinhada ao centro da coluna de texto ── */
.historia-section .historia-grid { align-items: center; }

/* ── Dobra 8: fecho discreto (o molde statement+divider fica pra promessa/fechamento) ── */
.conquistas-fecho .crenca-statement {
  font-size: clamp(1.2rem, 2.72vw, 1.4rem);
  margin-bottom: 0.6rem;
}
.conquistas-fecho .conquistas-cadeia { margin-top: 1.1rem; }

/* ── Dobra 10: clímax único — parágrafo de apoio confortável, não display ── */
.fechamento-par {
  max-width: 46ch;
  margin: clamp(1.25rem, 2.5vw, 1.75rem) auto 0;
  font-size: clamp(1.15rem, 2.72vw, 1.4rem);
  line-height: 1.65;
  color: rgba(255, 255, 255, 0.88);
}
.fechamento-par em {
  font-style: italic;
  color: var(--accent-gold);
}


/* ════════════════════════════════════════════════════════════════
   ACESSIBILIDADE TIPOGRÁFICA 2026-07-13 — feedback da cliente
   ("tem textos pequenos"). Público 60+: piso de 1rem (16px) pra
   qualquer texto informativo; corpo elevado via --fs-body no theme.
   ════════════════════════════════════════════════════════════════ */
.galeria-hint { font-size: 1rem; }
.section-label { font-size: 1rem; }
.doc-name { font-size: 1.02rem; }
.doc-src { font-size: 0.95rem; }
.doc-modal-src { font-size: 1rem; }
.doc-stars { font-size: 1.05rem; }
.footer-text { font-size: 1.05rem; }
.footer-copy { font-size: 1rem; }
.fechamento-assinatura { font-size: 1.05rem; }
.doc-review blockquote { font-size: 1.05rem; line-height: 1.55; }
.dh-text { font-size: 1.05rem; }
.metodo-label { font-size: 0.95rem; }
.hero-bullets li { font-size: 1.05rem; }


/* pisos mobile (media queries anteriores encolhiam estes) */
@media (max-width: 960px) {
  .nav-wrapper .nav-cta { font-size: 1rem; }
  .site-footer .footer-copy, .site-footer .footer-copy span { font-size: 1rem; }
  .site-footer .footer-text { font-size: 1.05rem; }
}


/* ═══ ESCALA GLOBAL +12.5% (2026-07-13) — pedido: "fontes ainda pequenas" ═══
   Tudo é rem: subir a raiz escala a hierarquia inteira proporcionalmente.
   16px → 18px de base (corpo efetivo ~20–22.5px). */
html { font-size: 160.5%; } /* 168.5% -5% (pedido 2026-07-14) — de volta à escala anterior */


/* Hero: título curto merece massa de H1 (só desktop; mobile aprovado como está).
   Fica um degrau ACIMA dos section-titles (57.6px). */
@media (min-width: 961px) {
  .hero-title .t-loud { font-size: clamp(2.6rem, 6.26vw, 3.5rem); }
  .hero-title-line2 { font-size: clamp(1.4rem, 2.85vw, 1.75rem); }
}


/* ═══ AJUSTES 2026-07-13 (2ª rodada de validação do usuário) ═══ */

/* Botões: texto reduzido pra caber em no máximo 2 linhas mesmo na escala grande.
   0.78rem × raiz 160.5% ≈ 20px — ainda confortável pra 60+. */
.cta-button { font-size: 0.78rem; }
.cta-button > span { line-height: 1.35; }
.nav-wrapper .nav-cta { font-size: 0.72rem; }
.link-inline { font-size: 0.82rem; }

/* TESTE (mobile): parágrafos justificados em vez de centralizados */
@media (max-width: 960px) {
  main p:not(.galeria-hint):not(.dor-drama),
  .section-caption,
  .crenca-statement,
  .crenca-lead,
  .fechamento-par,
  .historia-intro, .historia-outro,
  .metodo-desc {
    text-align: justify;
    text-align-last: left;
  }
}


/* Mobile: botão em no máx 2 linhas (vence as regras específicas de ≤380px) */
@media (max-width: 960px) {
  main .cta-button,
  .hero-ctas .cta-button,
  .section-cta-row .cta-button,
  .fechamento-cta {
    font-size: 0.68rem !important;
    letter-spacing: 0.02em;
    padding-inline: 1.1rem;
    gap: 0.5rem;
  }
  .cta-button > span { line-height: 1.3; }
}


/* Telas muito estreitas: um degrau a menos pro botão segurar 2 linhas (piso 16px mantido) */
@media (max-width: 380px) {
  main .cta-button,
  .hero-ctas .cta-button,
  .section-cta-row .cta-button,
  .fechamento-cta { font-size: 0.63rem !important; }
}


/* ═══ HISTÓRIA: lista vira cards brancos com entrada em cascata ═══
   (pedido do usuário: "retângulos brancos com pequena sombra,
   surgindo 1 a 1 em animações suaves") */
.historia-list {
  gap: 0.8rem 1rem;
}
.historia-list li {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 0.85rem 1.15rem;
  box-shadow: 0 8px 22px -12px rgba(74, 0, 48, 0.14);
}
.historia-list .dot {
  width: 8px;
  height: 8px;
}

/* Estado inicial escondido SÓ com JS ativo (sem JS, tudo visível) */
html.has-js .historia-list li {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity 0.55s cubic-bezier(0.22, 0.61, 0.36, 1),
              transform 0.55s cubic-bezier(0.22, 0.61, 0.36, 1);
}
html.has-js .historia-list.is-revealed li { opacity: 1; transform: none; }

/* cascata: 1 a 1 */
.historia-list.is-revealed li:nth-child(1) { transition-delay: 0.05s; }
.historia-list.is-revealed li:nth-child(2) { transition-delay: 0.17s; }
.historia-list.is-revealed li:nth-child(3) { transition-delay: 0.29s; }
.historia-list.is-revealed li:nth-child(4) { transition-delay: 0.41s; }
.historia-list.is-revealed li:nth-child(5) { transition-delay: 0.53s; }
.historia-list.is-revealed li:nth-child(6) { transition-delay: 0.65s; }
.historia-list.is-revealed li:nth-child(7) { transition-delay: 0.77s; }

/* Acessibilidade: sem movimento pra quem pediu menos animação */
@media (prefers-reduced-motion: reduce) {
  html.has-js .historia-list li { opacity: 1; transform: none; transition: none; }
}


/* ═══ Títulos: quebras de linha equilibradas (evita viúvas tipo "(RMMB®)?") ═══ */
.section-title, .hero-title, .fechamento-quote { text-wrap: balance; }

/* (título da história segue o tamanho padrão dos section-title; balance cuida das quebras) */


/* ═══ Títulos de seção: fade-up palavra por palavra ═══
   Spans criados por JS; sem JS não há split (título aparece normal). */
.section-title .st-w {
  display: inline-block;
  opacity: 0;
  transform: translateY(0.45em);
  transition: opacity 0.55s ease,
              transform 0.55s cubic-bezier(0.22, 0.61, 0.36, 1);
  transition-delay: calc(var(--wi, 0) * 70ms);
}
.section-title.st-in .st-w { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .section-title .st-w { opacity: 1; transform: none; transition: none; }
}


/* ═══ HERO-BULLETS: cards brancos alinhados (mesma linguagem da história) ═══ */
.hero-bullets {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.55rem;
  width: 100%;
}
.hero-bullets li {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 0.6rem 0.95rem;
  box-shadow: 0 8px 22px -14px rgba(74, 0, 48, 0.16);
  display: flex;
  align-items: center;
  gap: 0.65rem;
}
.hero-bullets li svg {
  flex-shrink: 0;
  color: var(--accent);
}

/* entrada 1 a 1 no load (mesma mecânica dos cards da história) */
html.has-js .hero-bullets li {
  opacity: 0;
  transform: translateY(12px);
  transition: opacity 0.5s ease, transform 0.5s cubic-bezier(0.22, 0.61, 0.36, 1);
}
html.has-js .hero-bullets.is-revealed li { opacity: 1; transform: none; }
.hero-bullets.is-revealed li:nth-child(1) { transition-delay: 0.05s; }
.hero-bullets.is-revealed li:nth-child(2) { transition-delay: 0.18s; }
.hero-bullets.is-revealed li:nth-child(3) { transition-delay: 0.31s; }
@media (prefers-reduced-motion: reduce) {
  html.has-js .hero-bullets li { opacity: 1; transform: none; transition: none; }
}

/* mobile: cards ocupam a largura toda, texto alinhado à esquerda uniforme */
@media (max-width: 960px) {
  .hero-bullets { gap: 0.5rem; }
  .hero-bullets li { padding: 0.65rem 0.9rem; }
}


/* ═══ HERO-FIGURE mobile: foto inteira em largura total, sem corte ═══
   (antes: janela fixa de 280px com object-fit cover cortava demais) */
@media (max-width: 960px) {
  .hero-figure {
    min-height: 0;
    overflow: visible;
  }
  .hero-figure picture {
    position: static;
    inset: auto;
    height: auto;
    left: auto;
    pointer-events: none;
  }
  .hero-figure picture img {
    width: 100%;
    max-width: 100%;
    height: auto;
    object-fit: contain;
  }
}


/* Bullets: texto alinhado junto ao check (não centralizado solto) */
.hero-bullets li {
  text-align: left;
  justify-content: flex-start;
}
.hero-bullets li span { text-align: left; }


/* ═══ Mobile: respiro entre seções recalibrado (paddings rem inflaram
   com a escala global — visual tinha vãos gigantes entre dobras) ═══ */
@media (max-width: 960px) {
  .crenca-section, .dor-section, .metodo-section, .diferencial-section,
  .historia-section, .incluso-section { padding-block: clamp(2rem, 9vw, 2.75rem); }
  .section-header { margin-bottom: clamp(1.5rem, 6vw, 2.2rem); }
  .section-cta-row { margin-top: clamp(1.4rem, 6vw, 2rem); }
}


/* ═══ Mobile: tamanho PADRÃO único pros section-title, calibrado pra
   palavra mais longa da página ("Reprogramação") caber sem estourar ═══ */
@media (max-width: 960px) {
  .section-title {
    font-size: clamp(1.4rem, 9.4vw, 1.62rem);
    line-height: 1.22;
  }
}


/* ═══ Sem hifenização em NENHUM texto (pedido do usuário) ═══ */
body, body * { hyphens: none !important; -webkit-hyphens: none !important; }


/* ═══ Espaçamento de letras/palavras nos parágrafos justificados (mobile) ═══
   Sem hífen, o justify estica os vãos entre palavras; word-spacing negativo
   leve compensa, e letter-spacing sutil melhora a leitura do público 60+. */
@media (max-width: 960px) {
  main p:not(.galeria-hint):not(.dor-drama),
  .section-caption,
  .crenca-statement,
  .crenca-lead,
  .fechamento-par,
  .historia-intro, .historia-outro,
  .metodo-desc {
    letter-spacing: 0.01em;
    word-spacing: -0.05em;
  }
}


/* ═══ FIXES telas estreitas (print do usuário) ═══ */

/* 1) Skip-link vazando no topo: esconderijo era top:-100px, mas o elemento
   cresceu com a escala global. Esconde por completo, aparece só no foco. */
.skip-link {
  top: -100vh;
  transform: translateY(-100%);
}
.skip-link:focus-visible {
  top: 1rem;
  transform: none;
}

/* 2) Botões do hero/seções: padding inflou com a raiz 160.5% — recalibra no mobile */
@media (max-width: 960px) {
  main .cta-button,
  .hero-ctas .cta-button,
  .section-cta-row .cta-button,
  .fechamento-cta {
    padding-block: 0.75rem;
    padding-inline: 1.1rem;
  }
  .nav-wrapper .nav-cta {
    padding: 0.45rem 0.9rem;
  }
}


/* ═══ Header mobile: 40% logo / 60% botão (pedido do usuário) ═══ */
@media (max-width: 960px) {
  .nav.container {
    display: grid;
    grid-template-columns: 4fr 6fr;
    align-items: center;
    gap: 0.75rem;
  }
  .nav .brand {
    width: 100%;
    display: flex;
    align-items: center;
  }
  .nav .brand .brand-logo {
    width: 100%;
    height: auto;
    max-width: 220px;
  }
  .nav-wrapper .nav-cta {
    width: 100%;
    text-align: center;
    justify-content: center;
    white-space: nowrap;
    font-size: clamp(0.6rem, 4vw, 0.85rem);
    padding-inline: 0.5rem;
  }
}


/* ═══ Títulos com mais peso (400 → 500; a Be Vietnam Pro 500 já é carregada) ═══ */
.section-title,
.hero-title .t-loud,
.metodo-heading,
.fechamento-line-1,
.garantia-title,
.publico-title {
  font-weight: 500;
}

/* ═══ Textos justificados do mobile: −7% no tamanho (pedido do usuário) ═══
   Valores = medidos em produção × 0.93 (root 160.5%). */
@media (max-width: 960px) {
  main p:not(.galeria-hint):not(.dor-drama):not(.section-caption):not(.crenca-statement):not(.crenca-lead):not(.fechamento-par):not(.historia-intro):not(.historia-outro):not(.metodo-desc):not(.conquistas-cadeia) { font-size: 0.91rem; }  /* 25.2 → 23.4px */
  .section-caption  { font-size: 1.07rem; }   /* 29.5 → 27.5px */
  .crenca-statement { font-size: 1.16rem; }   /* 32.1 → 29.9px */
  .crenca-lead,
  .fechamento-par,
  .historia-intro,
  p.conquistas-cadeia { font-size: 1.07rem; } /* 29.5 → 27.5px */
  .historia-outro   { font-size: 0.98rem; }   /* 27.2 → 25.3px */
  .metodo-desc      { font-size: 0.93rem; }   /* 25.7 → 23.9px */
}


/* ═══ Timeline do método e card dourado: alinhados à ESQUERDA no mobile
   (pedido do usuário — sem justificar nessas duas áreas) ═══ */
@media (max-width: 960px) {
  main .metodo-timeline p.metodo-desc,
  main .metodo-fecho.destaque-gold .crenca-statement,
  main .metodo-fecho.destaque-gold p {
    text-align: left;
    text-align-last: auto;
  }
  .metodo-fecho.destaque-gold { text-align: left; align-items: flex-start; }
}


/* ════════════════════════════════════════════════════════════════
   RECALIBRAGEM DESKTOP 2026-07-13 — a escala global (160.5%) foi
   aprovada olhando o mobile; no desktop ela inflou TAMBÉM os
   espaçamentos rem e desestruturou o layout. Este bloco devolve as
   proporções de layout do desktop SEM reduzir o corpo de leitura.
   Mobile (≤960px) intocado.
   ════════════════════════════════════════════════════════════════ */
@media (min-width: 961px) {
  /* Respiro entre seções de volta ao visual original do design */
  :root { --section-py: clamp(2.6rem, 4.5vw, 4.3rem); }
  .section-header { margin-bottom: clamp(1.6rem, 3vw, 2.4rem); }
  .section-cta-row { margin-top: clamp(1.4rem, 2.6vw, 2rem); }

  /* Hero: volta a caber na dobra — título 2 linhas, selos em linha */
  .hero { padding-top: clamp(4rem, 6vw, 5rem); }
  .hero-title .t-loud { font-size: clamp(2.4rem, 3.2vw, 2.6rem); }  /* um degrau acima dos H2 (54px) */
  .hero-title-line2 { font-size: clamp(1.05rem, 1.5vw, 1.35rem); margin-top: 0.6rem; }
  .hero-title { margin-bottom: 0.8rem; }
  .hero-lede { font-size: clamp(0.95rem, 1.2vw, 1.1rem); }
  .hero-ctas { gap: 0.8rem; }
  .hero-bullets {
    grid-template-columns: repeat(3, 1fr);
    gap: 0.55rem;
  }
  .hero-bullets li {
    padding: 0.55rem 0.75rem;
    font-size: 0.74rem;
    line-height: 1.35;
    align-items: flex-start;
  }
  .hero-bullets li svg { margin-top: 0.15rem; }

  /* Fechamento: clímax forte porém estruturado */
  .fechamento-quote { font-size: clamp(2rem, 3vw, 2.6rem); }
  .fechamento-par { font-size: clamp(0.95rem, 1.2vw, 1.08rem); }
  .fechamento-assinatura { font-size: 0.8rem; }

  /* Statements centrados: presença sem estourar a coluna */
  .crenca-statement { font-size: clamp(1.05rem, 1.5vw, 1.3rem); }
  .crenca-lead { font-size: clamp(0.95rem, 1.25vw, 1.1rem); }

  /* Cards da história: grade estável ao lado da foto */
  .historia-list li { font-size: 0.9rem; padding: 0.7rem 0.95rem; }

  /* Corrente causal (5 chips): texto proporcional à largura do chip */
  .metodo-content--single .metodo-heading { font-size: 0.85rem; }
  .metodo-content--single .metodo-desc { font-size: 0.82rem; line-height: 1.45; }
  .metodo-content--single .metodo-number { font-size: 1.7rem; }

  /* Doctoralia: cards proporcionais com o corpo maior */
  .doc-review blockquote { font-size: 0.86rem; }
  .doc-name { font-size: 0.82rem; }
  .doc-src { font-size: 0.78rem; }
}


/* Selos do hero acima da foto (o 3º card ficava sob a mesa de vidro) */
.hero-grid > .hero-ctas { position: relative; z-index: 3; }


/* ═══ Desktop: coluna "narrow" mais generosa — a de 780px comprimia
   títulos/statements em quebras excessivas (6 linhas no H2 da promessa) ═══ */
@media (min-width: 961px) {
  .container-narrow { max-width: 1060px; }
  .section-caption { max-width: 62ch; }
  .crenca-lead { max-width: 64ch; }
}


/* Desktop: H2 padrão ~54-59px (estava 78px — comprimia em quebras excessivas) */
@media (min-width: 961px) {
  .section-title { font-size: clamp(2.1rem, 2.4vw, 2.3rem); }
}


/* ═══ Desktop: cards da dor (sintomas + exames vinho) — tipografia
   proporcional pra eliminar o vazio no card mais curto ═══ */
@media (min-width: 961px) {
  .dor-card li { font-size: 0.88rem; }
  .dor-card ul { gap: clamp(0.7rem, 1.2vw, 1rem); }
  .dor-card { padding: clamp(1.3rem, 2.4vw, 1.9rem); }
  .dor-bullet-ring { width: 18px; height: 18px; border-width: 2.5px; }

  /* ═══ Fotos da Mírian: alinhadas ao topo e fixas durante o scroll
     da seção (sticky até o fim do grid) ═══ */
  .historia-grid { align-items: start; }
  .historia-photo {
    position: sticky;
    top: 96px;
    align-self: start;
  }
  /* método: garante o mesmo comportamento (base já era sticky) */
  .metodo-figure {
    position: sticky;
    top: 96px;
    align-self: start;
  }
}


/* Seções com foto sticky não podem ser scroll-container:
   clip corta o overflow decorativo igual ao hidden, sem quebrar sticky */
.metodo-section, .historia-section { overflow: clip; }


/* ═══ Corrente causal: estrutura interna dos cards travada —
   número, título e texto sempre nas MESMAS linhas nos 5 cards ═══ */
@media (min-width: 961px) {
  .metodo-content--single .metodo-step { align-content: start; }
  .metodo-content--single .metodo-step .metodo-number { margin: 0 auto 0.5rem; }
  .metodo-content--single .metodo-step .metodo-body {
    display: flex;
    flex-direction: column;
    align-items: center;
  }
  .metodo-content--single .metodo-step .metodo-heading {
    /* reserva 2 linhas: título de 1 linha alinha com a 1ª linha dos de 2 */
    min-height: calc(2 * 1.25em);
    line-height: 1.25;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    margin-bottom: 0.5rem;
  }
  .metodo-content--single .metodo-step .metodo-desc { margin-top: 0; }
}


/* ═══ Dobra 5: consequências em CARDS (linguagem dos cards da história) —
   3 em linha no desktop, empilhados no mobile ═══ */
#dieta .check-list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.7rem;
  width: 100%;
  max-width: 900px;
  margin-inline: auto;
}
#dieta .check-list li {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 0.9rem 1.1rem;
  box-shadow: 0 8px 22px -12px rgba(74, 0, 48, 0.14);
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 0.65rem;
  text-align: left;
  margin: 0;
}
#dieta .check-list li svg { flex-shrink: 0; }
@media (min-width: 961px) {
  #dieta .check-list { grid-template-columns: repeat(3, 1fr); }
  #dieta .check-list li { align-items: flex-start; }
  #dieta .check-list li svg { margin-top: 0.2rem; }
}

/* entrada em cascata (mesma mecânica das outras listas-card) */
html.has-js #dieta .check-list li {
  opacity: 0;
  transform: translateY(14px);
  transition: opacity 0.5s ease, transform 0.5s cubic-bezier(0.22, 0.61, 0.36, 1);
}
html.has-js #dieta .check-list.is-revealed li { opacity: 1; transform: none; }
#dieta .check-list.is-revealed li:nth-child(1) { transition-delay: 0.05s; }
#dieta .check-list.is-revealed li:nth-child(2) { transition-delay: 0.17s; }
#dieta .check-list.is-revealed li:nth-child(3) { transition-delay: 0.29s; }
@media (prefers-reduced-motion: reduce) {
  html.has-js #dieta .check-list li { opacity: 1; transform: none; transition: none; }
}


/* ════════════════════════════════════════════════════════════════
   AJUSTES DE TEXTO 2026-07-14 (validação local do usuário)
   1) títulos peso 700 (fonte 700 real carregada no head)
   2) mobile: títulos à esquerda, máx 3 linhas (JS auto-fit)
   3) justificado editorial: menos variação de espaço entre palavras
   ════════════════════════════════════════════════════════════════ */

/* 1) peso 700 em todos os títulos display */
.section-title,
.hero-title .t-loud,
.metodo-heading,
.fechamento-line-1,
.garantia-title,
.publico-title { font-weight: 700; }

/* 2) mobile: títulos alinhados à esquerda (o JS limita a 3 linhas) */
@media (max-width: 960px) {
  .section-title {
    text-align: left;
    text-wrap: balance;
  }
  .section-header.section-header-center .section-title { text-align: left; }
}

/* 3) justificado padrão editorial: colunas rendem mais caracteres por
   linha (tipografia -5%), espaçamento de letra neutro e de palavra
   levemente comprimido — os vãos do justify encolhem e uniformizam */
@media (max-width: 960px) {
  main p:not(.galeria-hint):not(.dor-drama):not(.section-caption):not(.crenca-statement):not(.crenca-lead):not(.fechamento-par):not(.historia-intro):not(.historia-outro):not(.metodo-desc):not(.conquistas-cadeia),
  .section-caption,
  .crenca-statement,
  .crenca-lead,
  .fechamento-par,
  .historia-intro, .historia-outro,
  .metodo-desc,
  p.conquistas-cadeia {
    letter-spacing: 0;
    word-spacing: -0.07em;
  }
  main p:not(.galeria-hint):not(.dor-drama):not(.section-caption):not(.crenca-statement):not(.crenca-lead):not(.fechamento-par):not(.historia-intro):not(.historia-outro):not(.metodo-desc):not(.conquistas-cadeia) { font-size: 0.86rem; }
  .section-caption  { font-size: 1.02rem; }
  .crenca-statement { font-size: 1.1rem; }
  .crenca-lead,
  .fechamento-par,
  .historia-intro,
  p.conquistas-cadeia { font-size: 1.02rem; }
  .historia-outro   { font-size: 0.93rem; }
  .metodo-desc      { font-size: 0.88rem; }
}


/* Statement da história: ênfase, nunca densificado (pedido do usuário) */
@media (max-width: 960px) {
  main p.historia-statement {
    text-align: left !important;
    font-size: 1.12rem !important;   /* ~28.8px */
    font-weight: 500;
    line-height: 1.4;
    letter-spacing: 0;
    word-spacing: normal;
  }
}


/* Dobra dos sinais (mobile): respiro entre blocos — o subtítulo dos exames
   estava colado no card de cima e no card vinho de baixo */
@media (max-width: 960px) {
  .dor-section .dor-cards { margin-top: 1rem; }
  .dor-section .dor-subhead {
    margin-top: 1.7rem;
    margin-bottom: 1.1rem;
  }
  .dor-section .dor-cards--exames { margin-top: 0; }
  .dor-section .dor-drama { margin-top: 1.7rem; }
}


/* Rótulo de seção (RESULTADOS) à esquerda no mobile, acompanhando os títulos */
@media (max-width: 960px) {
  .section-header .section-label,
  .section-header-center .section-label {
    display: block;
    text-align: left;
  }
}


/* ═══ Contatos flutuantes (portado da home antiga; mesmas classes) ═══ */
.social-floats {
  position: fixed;
  bottom: 1.5rem;
  right: 1.5rem;
  z-index: 90;
  display: flex;
  flex-direction: column;
  gap: 0.7rem;
}
.float-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  color: #fff;
  border: 2px solid #fff;
  box-shadow: 0 6px 18px rgba(74, 0, 48, 0.18), 0 14px 32px rgba(74, 0, 48, 0.10);
  transition: transform var(--t-base) var(--ease-out),
              box-shadow var(--t-base) var(--ease-out),
              filter var(--t-base) var(--ease-out);
}
.float-btn:hover {
  transform: translateY(-2px);
  filter: brightness(1.05);
  box-shadow: 0 10px 24px rgba(74, 0, 48, 0.22), 0 20px 40px rgba(74, 0, 48, 0.14);
}
.float-btn:active { transform: translateY(0); }
.float-btn svg { display: block; }
.float-btn--wa1 { background: #25D366; }
.float-btn--wa2 { background: var(--accent); }
@media (max-width: 480px) {
  .social-floats { bottom: 1rem; right: 1rem; gap: 0.55rem; }
  .float-btn { width: 46px; height: 46px; }
  .float-btn svg { width: 22px; height: 22px; }
}


/* Fechamento (mobile): clímax centrado e grande — fora do regulador de parágrafos */
@media (max-width: 960px) {
  .fechamento-section .fechamento-quote {
    text-align: center !important;
    text-align-last: center !important;  /* o justify global deixava a última linha à esquerda */
    font-size: clamp(1.55rem, 10vw, 1.7rem) !important;  /* Cormorant maior ~40–44px */
    line-height: 1.3;
    letter-spacing: 0 !important;
    word-spacing: normal !important;
  }
}


/* ═══ Citações em serifa (Playfair Display itálica) — hero + fechamento ═══ */
.hero-title-line2 {
  font-family: 'Fraunces', Georgia, serif;
  font-optical-sizing: auto;
  font-style: italic;
  font-weight: 700;
  letter-spacing: 0.01em;
}
@media (min-width: 961px) {
  .hero-title-line2 { font-size: clamp(1.55rem, 2.3vw, 1.9rem); }  /* grande — 3 linhas ok */
}
@media (max-width: 960px) {
  .hero-title-line2 { font-size: 1.56rem; }  /* 40px fixos no mobile (pedido) */
}
.fechamento-quote,
.fechamento-quote .fechamento-line-1 {
  font-family: 'Fraunces', Georgia, serif;
  font-optical-sizing: auto;
  font-style: italic;
  font-weight: 700;
  letter-spacing: 0.01em;
}
@media (min-width: 961px) {
  .fechamento-quote { font-size: clamp(2.2rem, 3.3vw, 2.85rem); }  /* Cormorant corre pequena */
}


/* ═══ Cards de sinais/exames: itens ≤2 linhas + divisor suave ═══ */
@media (max-width: 960px) {
  .dor-card li { font-size: 0.8rem; line-height: 1.4; }
}
.dor-card ul { gap: 0.85rem; }
.dor-card li {
  padding-bottom: 0.85rem;
  border-bottom: 1px solid rgba(74, 0, 48, 0.08);
}
.dor-card li:last-child { border-bottom: 0; padding-bottom: 0; }
.dor-cards--exames .dor-card li { border-bottom-color: rgba(245, 237, 228, 0.16); }
.dor-cards--exames .dor-card li:last-child { border-bottom: 0; }


/* Cards de sinais (mobile): padding lateral menor = mais largura pro texto */
@media (max-width: 960px) {
  .dor-card { padding: 1.3rem 1rem; }
  .dor-card li { gap: 0.5rem; }
}


/* Telas estreitas: citação do hero segue no teto de 3 linhas */





/* CTA de seção no mobile: largura total (label longo cabe em 2 linhas) */
@media (max-width: 960px) {
  .section-cta-row .cta-button {
    width: 100%;
    justify-content: center;
  }
}


/* Botão de label longo (sinais): fonte no piso pra segurar 2 linhas no mobile */
@media (max-width: 960px) {
  #sinais .section-cta-row .cta-button { font-size: 0.63rem !important; }
}


/* ═══ Promessa: afirmações em cardizinhos (padrão card do site) ═══ */
.promessa-list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.7rem;
  width: 100%;
  max-width: 900px;
  margin: 0 auto 0.5rem;
  list-style: none;
  padding: 0;
}
.promessa-list li {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 0.85rem 1.05rem;
  box-shadow: 0 8px 22px -12px rgba(74, 0, 48, 0.14);
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 0.6rem;
  text-align: left;
  margin: 0;
}
.promessa-list li svg { flex-shrink: 0; color: var(--accent-gold); }
@media (min-width: 961px) {
  .promessa-list { grid-template-columns: repeat(4, 1fr); }
  .promessa-list li { font-size: 0.82rem; align-items: flex-start; }
  .promessa-list li svg { margin-top: 0.15rem; }
}
html.has-js .promessa-list li {
  opacity: 0; transform: translateY(14px);
  transition: opacity 0.5s ease, transform 0.5s cubic-bezier(0.22, 0.61, 0.36, 1);
}
html.has-js .promessa-list.is-revealed li { opacity: 1; transform: none; }
.promessa-list.is-revealed li:nth-child(1) { transition-delay: 0.05s; }
.promessa-list.is-revealed li:nth-child(2) { transition-delay: 0.17s; }
.promessa-list.is-revealed li:nth-child(3) { transition-delay: 0.29s; }
.promessa-list.is-revealed li:nth-child(4) { transition-delay: 0.41s; }
@media (prefers-reduced-motion: reduce) {
  html.has-js .promessa-list li { opacity: 1 !important; transform: none !important; transition: none !important; }
}

/* Botão do sinais em telas estreitas: compacto pra 2 linhas */
@media (max-width: 380px) {
  #sinais .section-cta-row .cta-button { letter-spacing: 0 !important; }
}


/* Promessa (desktop): lista mais larga que a coluna — itens sem quebra de linha */
@media (min-width: 961px) {
  .promessa-list {
    max-width: none;
    width: min(1280px, calc(100vw - 4rem));
    position: relative;
    left: 50%;
    transform: translateX(-50%);
    gap: 1rem;
  }
  .promessa-list li span { white-space: nowrap; }
  .promessa-list li { justify-content: center; }
}
/* desktop estreito: 2×2 largas (sem quebra) */
@media (min-width: 961px) and (max-width: 1359px) {
  .promessa-list { grid-template-columns: repeat(2, 1fr); }
}


/* ═══ Card do fecho da dobra 4: fundo vinho padrão + texto branco (pedido) ═══ */
.metodo-fecho.destaque-gold {
  background: var(--grad-wine-deep);
  border-color: rgba(201, 169, 97, 0.30);
  box-shadow: 0 24px 60px -28px rgba(56, 0, 38, 0.55);
}
.metodo-fecho.destaque-gold .crenca-statement { color: rgba(245, 237, 228, 0.95) !important; }
.metodo-fecho.destaque-gold .crenca-statement-strong { color: #fff !important; }


/* ═══ Hero mobile: tudo alinhado à ESQUERDA (pedido) ═══ */
@media (max-width: 960px) {
  .hero-copy { text-align: left; align-items: flex-start; }
  .hero-title,
  .hero-title .t-loud,
  .hero-title-line2 { text-align: left !important; }
  .hero-lede { text-align: left !important; text-align-last: left; }
}


/* Hero H1 em caixa alta (pedido) — texto original preservado no HTML */
.hero-title .t-loud { text-transform: uppercase; }


/* ═══ Citação + labels dourados em Poppins Bold (pedido) ═══ */
.hero-title-line2,
.fechamento-quote,
.fechamento-quote .fechamento-line-1 {
  font-family: 'Poppins', sans-serif !important;
  font-style: normal !important;
  font-weight: 700 !important;
  letter-spacing: 0 !important;
}
/* Labels dourados ao longo da página (PILAR, RESULTADOS, eyebrows) */
.metodo-label,
.section-label,
.eyebrow,
.hero-eyebrow {
  font-family: 'Poppins', sans-serif !important;
  font-weight: 700 !important;
}


/* ═══ Hero: citação dourada MENOR que o título roxo + foto desacoplada do texto ═══ */
/* Mobile: dourado bem menor que o roxo (~35px) */
@media (max-width: 960px) {
  .hero-title-line2 { font-size: 1.15rem !important; line-height: 1.3; }
}
/* Desktop: dourado menor que o roxo (~62px) */
@media (min-width: 961px) {
  .hero-title-line2 { font-size: clamp(1.2rem, 1.6vw, 1.4rem) !important; }
  /* Foto ancorada ao VIEWPORT (100vh) — mudanças de texto nunca mais a afetam */
  .hero-figure picture { height: 100vh !important; max-height: 100vh !important; }
  .hero-figure picture img { height: 100vh !important; max-height: 100vh !important; width: auto; }
}


/* ═══ Hero desktop: roxo e dourado sempre em 2 linhas (tamanhos por faixa,
   pois a coluna de texto satura em ~615px a partir de 1280px) ═══ */
@media (min-width: 961px) {
  .hero-title .t-loud { font-size: 40px !important; line-height: 1.1; }
  .hero-title-line2 { font-size: 21px !important; line-height: 1.3; }
}
@media (min-width: 1200px) {
  .hero-title .t-loud { font-size: 50px !important; }
  .hero-title-line2 { font-size: 26px !important; }
}


/* ═══ Hero H1 roxo = mesmo tamanho dos demais títulos roxos (.section-title) ═══ */
@media (min-width: 961px) {
  .hero-title .t-loud { font-size: clamp(2.1rem, 2.4vw, 2.3rem) !important; line-height: 1.12; }
}
@media (max-width: 960px) {
  .hero-title .t-loud { font-size: clamp(1.4rem, 9.4vw, 1.62rem) !important; line-height: 1.15; }
}


/* Hero desktop: foto com folga no topo (cabeça inteira, sem o nav cortar) —
   altura reduzida ancorada na base; base intacta */
@media (min-width: 961px) {
  .hero-figure picture {
    height: calc(100vh - 130px) !important;
    max-height: calc(100vh - 130px) !important;
  }
  .hero-figure picture img {
    height: 100% !important;
    max-height: 100% !important;
  }
}


/* ════════════════════════════════════════════════════════════════
   PADRONIZAÇÃO TIPOGRÁFICA ABSOLUTA — 2026-07-14
   Pedido da Dra. Mírian: ZERO variação de tamanho entre seções.
   Escala fixa; nenhum JS ajusta tamanho; nenhuma exceção.
   MOBILE: títulos 26px · textos 22px
   ════════════════════════════════════════════════════════════════ */
@media (max-width: 960px) {
  /* Nível 1 — TÍTULOS (todos, inclusive o H1 do hero) */
  .hero-title .t-loud,
  .section-title {
    font-size: 26px !important;
    line-height: 1.22 !important;
  }

  /* Nível 2 — TEXTOS (todo texto de leitura da página) */
  .hero-lede,
  .hero-title-line2,
  .section-caption,
  .crenca-statement,
  .crenca-lead,
  .diferencial-lead,
  .fechamento-par,
  .fechamento-assinatura,
  .historia-intro,
  .historia-outro,
  .historia-statement,
  .metodo-desc,
  .conquistas-cadeia,
  .dor-drama,
  .dor-subhead,
  .dor-card li,
  .dor-card li span,
  .incluso-item,
  .incluso-item span,
  .promessa-list li,
  .promessa-list li span,
  .hero-bullets li,
  .hero-bullets li span,
  .check-list li,
  .check-list li span,
  .historia-list li,
  .historia-list li span,
  main p:not(.galeria-hint):not(.fechamento-quote) {
    font-size: 22px !important;
  }

  /* Alinhamento à esquerda uniforme, sem vãos (o justify saiu junto do JS) */
  .hero-lede,
  .section-caption,
  .crenca-statement,
  .crenca-lead,
  .diferencial-lead,
  .fechamento-par,
  .historia-intro,
  .historia-outro,
  .historia-statement,
  .metodo-desc,
  .conquistas-cadeia,
  .dor-drama,
  .dor-subhead,
  main p:not(.galeria-hint):not(.fechamento-quote) {
    text-align: left !important;
    text-align-last: auto !important;
    word-spacing: normal !important;
    letter-spacing: 0 !important;
  }
}


/* ═══ PADRONIZAÇÃO DESKTOP — dois níveis exatos, zero variação ═══
   Texto de leitura: 26px · Itens de card/lista: 21px */
@media (min-width: 961px) {
  /* Nível A — TEXTO DE LEITURA (todos os parágrafos corridos) */
  .hero-lede,
  .section-caption,
  .crenca-statement,
  .crenca-lead,
  .diferencial-lead,
  .fechamento-par,
  .historia-intro,
  .historia-outro,
  .historia-statement,
  .conquistas-cadeia,
  .dor-drama,
  .dor-subhead,
  main p:not(.galeria-hint):not(.fechamento-quote):not(.metodo-desc) {
    font-size: 26px !important;
  }

  /* Nível B — ITENS DE CARD/LISTA (colunas estreitas) */
  .dor-card li,
  .dor-card li span,
  .incluso-item,
  .incluso-item span,
  .promessa-list li,
  .promessa-list li span,
  .hero-bullets li,
  .hero-bullets li span,
  .check-list li,
  .check-list li span,
  .historia-list li,
  .historia-list li span,
  .metodo-desc {
    font-size: 21px !important;
  }
}


/* ═══ Todos os títulos de seção no padrão "INFLAMAÇÃO": CAIXA ALTA ═══
   (fonte/peso/cor já eram idênticos; faltava só a caixa) */
.section-title {
  text-transform: uppercase;
  letter-spacing: -0.005em;
}


/* ═══ TODOS os títulos exatamente 29px no mobile (pedido) —
   inclui os headings de card (INTESTINO/INFLAMAÇÃO/PILARES) ═══ */
@media (max-width: 960px) {
  .hero-title .t-loud,
  .section-title,
  .metodo-heading,
  .metodo-content--single .metodo-heading {
    font-size: 29px !important;
    line-height: 1.22 !important;
  }
}

/* ═══ Desktop: títulos com a largura da seção (o max-width de 760px do kit
   forçava quebras desnecessárias em 5 linhas) ═══ */
@media (min-width: 961px) {
  .section-header { max-width: 1100px; }
}


/* Citação dourada do hero: um degrau maior (segue menor que o título roxo) */
@media (max-width: 960px) {
  .hero-title-line2 { font-size: 25px !important; }
}
@media (min-width: 961px) {
  .hero-title-line2 { font-size: 31px !important; }
}
