/* ================================================================
   STYLES.CSS — IA na Psicofarmacologia LP
   Stack: CSS puro, mobile-first (375px → 768px → 1280px)
   Zero framework (sem Bootstrap, Tailwind, Bulma)
   ================================================================ */

/* ================================================================
   1. VARIÁVEIS CSS — :root
   ================================================================ */
:root {
  /* Paleta */
  --color-bg-primary:    #004643;
  --color-bg-secondary:  #F0EDE5;
  --color-bg-surface:    #003330;
  --color-bg-deep:       #001F1E;
  --color-text-primary:  #F5F2EA;
  --color-text-secondary:#B8C5C4;
  --color-text-on-light: #1A2B2A;
  --color-accent-cta:    #A8D5A2;
  --color-accent-warm:   #D4A853;
  --color-border-subtle: #1F4040;

  /* Gradientes vibrantes */
  --grad-cta:       linear-gradient(135deg, #A8D5A2 0%, #3DD6C0 100%);
  --grad-numeros:   linear-gradient(135deg, #D4A853 0%, #FFE08A 100%);
  --grad-destaque:  linear-gradient(135deg, #3DD6C0 0%, #A8D5A2 60%, #6EE7D8 100%);
  --color-mint:     #3DD6C0;
  --color-gold-bright: #FFE08A;

  /* Tipografia */
  --font-display: 'Barlow Condensed', sans-serif;
  --font-impact:  'Bebas Neue', sans-serif;
  --font-body:    'DM Sans', sans-serif;
  --font-mono:    'JetBrains Mono', monospace;

  /* Animação */
  --dur-entrada:    500ms;
  --dur-micro:      200ms;
  --dur-accordion:  300ms;
  --dur-counter:    1200ms;
  --ease-padrao:    cubic-bezier(0.22, 1, 0.36, 1);
  --ease-saida:     cubic-bezier(0.55, 0, 1, 0.45);
  --ease-accordion: ease-out;
  --stagger-cards:  80ms;
  --stagger-lista:  60ms;

  /* Grid */
  --max-width:      1200px;
  --pad-desktop:    80px;
  --pad-mobile:     24px;
  --gutter:         24px;
}

/* ================================================================
   2. PREFERS-REDUCED-MOTION (OBRIGATÓRIO — bloco primeiro)
   ================================================================ */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration:       0.01ms !important;
    animation-iteration-count: 1     !important;
    transition-duration:      0.01ms !important;
    scroll-behavior:          auto   !important;
  }

  /* Garantir visibilidade de elementos que partem de opacity:0 */
  .hero-headline-linha,
  .hero-expert-img,
  .reframe-bloco,
  .qualificacao-bloco,
  .pratica-card,
  .incluido-item,
  .cta-final-bloco {
    opacity:   1 !important;
    transform: none !important;
  }
}

/* ================================================================
   3. RESET MÍNIMO
   ================================================================ */
*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
}

body {
  font-family:      var(--font-body);
  font-size:        15px;
  line-height:      1.6;
  color:            var(--color-text-primary);
  background-color: var(--color-bg-primary);
  overflow-x:       hidden;
}

img,
picture,
video,
canvas,
svg {
  display:   block;
  max-width: 100%;
}

ul,
ol {
  list-style: none;
}

a {
  color:           inherit;
  text-decoration: none;
}

button {
  cursor:     pointer;
  background: none;
  border:     none;
  font:       inherit;
  color:      inherit;
}

/* ================================================================
   4. TIPOGRAFIA BASE
   ================================================================ */

/* Destaque de palavras com gradiente — aplicar em spans inline */
.destaque-grad {
  background:              var(--grad-destaque);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip:         text;
}

@keyframes cartoon-float {
  0%, 100% { transform: translateY(0);    }
  50%      { transform: translateY(-12px); }
}

/* ================================================================
   5. CONTAINER
   ================================================================ */
.container {
  width:     100%;
  max-width: var(--max-width);
  margin:    0 auto;
  padding:   0 var(--pad-mobile);
}

@media (min-width: 1280px) {
  .container {
    padding: 0 var(--pad-desktop);
  }
}

/* ================================================================
   6. BOTÃO CTA PRIMÁRIO
   ================================================================ */
.btn-cta-primary {
  display:         inline-flex;
  align-items:     center;
  justify-content: center;
  background:      linear-gradient(135deg, #00A88A 0%, #00C8AC 30%, #12E8C8 55%, #00C8AC 78%, #00A88A 100%);
  color:           #002A20;
  font-family:     var(--font-body);
  font-weight:     700;
  font-size:       18px;
  line-height:     1;
  letter-spacing:  0.05em;
  text-transform:  uppercase;
  padding:         20px 40px;
  border-radius:   6px;
  text-align:      center;
  position:        relative;
  overflow:        hidden;
  transition:      transform 160ms ease,
                   box-shadow 160ms ease;
  animation:       cta-pulse 2.5s ease-in-out infinite;
  will-change:     transform, box-shadow;
  box-shadow:      0 6px 0 0 #006B54;
}

/* Shimmer de luz que varre o botão */
.btn-cta-primary::before {
  content:        '';
  position:       absolute;
  top:            0;
  left:           -120%;
  width:          55%;
  height:         100%;
  background:     linear-gradient(
    120deg,
    transparent 0%,
    rgba(255, 255, 255, 0.36) 50%,
    transparent 100%
  );
  animation:      btn-shimmer 3.5s ease-in-out infinite;
  pointer-events: none;
}

.btn-cta-primary:hover,
.btn-cta-primary:focus-visible {
  box-shadow: 0 6px 0 0 #006B54,
              0 10px 38px rgba(0, 200, 170, 0.55),
              0 2px 8px  rgba(0, 0, 0, 0.2);
  outline:    none;
}

.btn-cta-primary:focus-visible {
  outline:        2px solid #12E8C8;
  outline-offset: 4px;
}

.btn-cta-primary:active {
  transform:  translateY(4px) scale(0.98);
  box-shadow: 0 2px 0 0 #006B54,
              0 2px 8px rgba(0, 0, 0, 0.2);
}

@keyframes cta-pulse {
  0%, 100% {
    box-shadow: 0 6px 0 0 #006B54,
                0 0 0 0   rgba(0, 200, 170, 0.7),
                0 4px 20px rgba(18, 232, 200, 0.15);
  }
  55% {
    box-shadow: 0 6px 0 0 #006B54,
                0 0 0 18px rgba(0, 200, 170, 0),
                0 6px 30px rgba(18, 232, 200, 0.4);
  }
}

@keyframes btn-shimmer {
  0%        { left: -120%; }
  40%, 100% { left:  160%; }
}

/* ================================================================
   7. SEÇÃO 1 — BARRA DE URGÊNCIA
   ================================================================ */
.urgencia-bar {
  position:         sticky;
  top:              0;
  z-index:          100;
  background:       linear-gradient(135deg, #0A2A28 0%, #0D3330 50%, #0A2A28 100%);
  padding:          10px var(--pad-mobile);
  border-bottom:    2px solid rgba(212, 168, 83, 0.4);
  box-shadow:       0 2px 20px rgba(0, 0, 0, 0.5);
}

.urgencia-inner {
  display:         flex;
  flex-direction:  column;
  align-items:     center;
  gap:             6px;
  max-width:       var(--max-width);
  margin:          0 auto;
  text-align:      center;
}

.urgencia-badge {
  display:          inline-flex;
  align-items:      center;
  gap:              6px;
  background-color: var(--color-accent-warm);
  color:            var(--color-bg-deep);
  font-family:      var(--font-body);
  font-weight:      600;
  font-size:        10px;
  letter-spacing:   0.08em;
  text-transform:   uppercase;
  padding:          3px 8px;
  border-radius:    3px;
  animation:        badge-pulse 1.5s ease-in-out infinite;
  will-change:      transform;
}

@keyframes badge-pulse {
  0%, 100% { transform: scale(1); }
  50%      { transform: scale(1.04); }
}

.urgencia-texto {
  font-family: var(--font-body);
  font-weight: 600;
  font-size:   14px;
  color:       #FFFFFF;
}

.urgencia-vagas-numero {
  color:       var(--color-gold-bright);
  font-weight: 700;
}

.hero-countdown {
  display:          inline-flex;
  align-items:      center;
  justify-content:  center;
  gap:              10px;
  background:       rgba(255, 220, 80, 0.07);
  border:           1px solid rgba(255, 220, 80, 0.35);
  border-bottom:    3px solid rgba(255, 220, 80, 0.45);
  border-radius:    6px;
  padding:          11px 22px;
  width:            fit-content;
}

/* Sinal LED piscante */
.countdown-signal {
  display:       inline-block;
  width:         10px;
  height:        10px;
  border-radius: 50%;
  background:    #E53E3E;
  flex-shrink:   0;
  animation:     signal-blink 0.7s step-end infinite;
}

@keyframes signal-blink {
  0%, 100% { opacity: 1; }
  50%      { opacity: 0; }
}

.hero-countdown-label {
  font-family: var(--font-body);
  font-size:   15px;
  font-weight: 600;
  color:       var(--color-text-secondary);
  white-space: nowrap;
}

.countdown-timer {
  font-family:    var(--font-mono);
  font-weight:    700;
  font-size:      26px;
  color:          #FFDC60;
  letter-spacing: 0.1em;
  animation:      countdown-flash 1s step-end infinite;
}

@keyframes countdown-flash {
  0%, 100% { opacity: 1;   }
  50%      { opacity: 0.6; }
}

.urgencia-cta {
  display:          inline-block;
  background:       linear-gradient(135deg, #A8720C 0%, #C99A28 35%, #E2C048 55%, #C99A28 78%, #A8720C 100%);
  color:            #1A0E00;
  font-family:      var(--font-body);
  font-weight:      700;
  font-size:        13px;
  letter-spacing:   0.04em;
  text-transform:   uppercase;
  padding:          9px 20px;
  border-radius:    4px;
  white-space:      nowrap;
  box-shadow:       0 3px 0 0 #6B480A,
                    0 4px 12px rgba(212, 168, 83, 0.35);
  transition:       transform 120ms ease, box-shadow 120ms ease;
}

.urgencia-cta:hover,
.urgencia-cta:focus-visible {
  transform:  translateY(-2px);
  box-shadow: 0 5px 0 0 #6B480A,
              0 6px 18px rgba(212, 168, 83, 0.5);
  outline:    none;
}

.urgencia-cta:active {
  transform:  translateY(2px);
  box-shadow: 0 1px 0 0 #6B480A;
}

@media (min-width: 768px) {
  .urgencia-inner {
    flex-direction: row;
    justify-content: center;
    gap: 12px;
  }

  .urgencia-texto {
    font-size: 14px;
  }
}

/* ================================================================
   8. SEÇÃO 2 — HERO
   ================================================================ */
.secao-hero {
  background-color: var(--color-bg-primary);
  padding:          80px 0 64px;
  position:         relative;
  overflow:         hidden;
}

/* Noise sutil como pseudo-elemento */
.secao-hero::before {
  content:          '';
  position:         absolute;
  inset:            0;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.04'/%3E%3C/svg%3E");
  pointer-events:   none;
  opacity:          0.04;
}

.hero-grid {
  display:         flex;
  flex-direction:  column;
  gap:             48px;
  position:        relative;
  z-index:         1;
}

.hero-copy {
  order: 1;
}

.hero-expert {
  order: 2;
}

/* Tag do evento */
.hero-tag {
  display:      flex;
  flex-wrap:    wrap;
  align-items:  center;
  gap:          10px;
  margin-bottom: 20px;
}

.hero-tag-texto {
  display:          inline-flex;
  align-items:      center;
  gap:              8px;
  font-family:      var(--font-body);
  font-weight:      700;
  font-size:        13px;
  letter-spacing:   0.12em;
  text-transform:   uppercase;
  color:            var(--color-accent-cta);
  background-color: var(--color-bg-deep);
  border:           1px solid var(--color-accent-cta);
  padding:          6px 14px;
  border-radius:    4px;
  overflow:         hidden;
  white-space:      nowrap;
  width:            0;
  animation:        typing 600ms steps(8, end) 100ms forwards,
                    blink-caret 500ms step-end 700ms 2,
                    tag-live-glow 2s ease-in-out 2s infinite;
  border-right:     2px solid var(--color-accent-cta);
}

@keyframes tag-live-glow {
  0%, 100% { box-shadow: 0 0 0 0   rgba(168, 213, 162, 0);   }
  50%      { box-shadow: 0 0 10px 3px rgba(168, 213, 162, 0.45); }
}

/* Ponto vermelho "ao vivo" */
.live-dot {
  display:       inline-block;
  width:         8px;
  height:        8px;
  border-radius: 50%;
  background:    #E53E3E;
  flex-shrink:   0;
  animation:     live-blink 1.1s ease-in-out infinite;
}

@keyframes live-blink {
  0%, 100% { opacity: 1;   transform: scale(1);    }
  50%      { opacity: 0.2; transform: scale(0.75); }
}

@keyframes typing {
  to { width: 100%; }
}
@keyframes blink-caret {
  50% { border-right-color: transparent; }
}

.hero-tag-detalhe {
  font-family:    var(--font-body);
  font-weight:    500;
  font-size:      12px;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color:          var(--color-text-secondary);
}

/* Headline */
.hero-headline {
  font-family:    var(--font-display);
  font-weight:    700;
  font-size:      44px;
  line-height:    1.05;
  color:          var(--color-text-primary);
  margin-bottom:  20px;
  letter-spacing: -0.3px;
}

.hero-headline-linha {
  display:          block;
  opacity:          0;
  transform:        translateY(24px);
  transition:       opacity var(--dur-entrada) var(--ease-padrao),
                    transform var(--dur-entrada) var(--ease-padrao);
  transition-delay: var(--delay, 0ms);
  will-change:      transform, opacity;
}

.hero-headline-linha.is-visible {
  opacity:   1;
  transform: translateY(0);
}

/* Subheadline */
.hero-subheadline {
  font-family:   var(--font-body);
  font-weight:   400;
  font-size:     16px;
  line-height:   1.6;
  color:         var(--color-text-secondary);
  margin-bottom: 32px;
  max-width:     560px;
}

.sub-hl {
  color:       var(--color-accent-cta);
  font-weight: 600;
}

/* CTA grupo */
.hero-cta-grupo {
  display:        flex;
  flex-direction: column;
  align-items:    flex-start;
  gap:            12px;
}

.hero-cta-grupo .btn-cta-primary {
  font-size: 19px;
  padding:   22px 44px;
}

.hero-cta-apoio {
  font-family: var(--font-body);
  font-weight: 400;
  font-size:   13px;
  color:       var(--color-text-secondary);
}

/* Imagem do expert — circular com fade radial integrado ao fundo */
.hero-expert {
  position:   relative;
  display:    flex;
  align-items: center;
  justify-content: center;
}

/* Fade lateral esquerdo: dissolve a borda do círculo na coluna de texto */
.hero-expert::after {
  content:    '';
  position:   absolute;
  inset:      0;
  background: linear-gradient(to right, var(--color-bg-primary) 0%, transparent 30%);
  pointer-events: none;
  z-index:    2;
}

.hero-expert::before {
  display: none;
}

.hero-expert-img {
  display:             block;
  width:               min(780px, 100%);
  height:              auto;
  aspect-ratio:        1 / 1;
  object-fit:          cover;
  object-position:     center 15%;
  /* Dissolve suave: o sujeito emerge do fundo sem bordas visíveis */
  mask-image:          radial-gradient(circle, black 32%, rgba(0,0,0,0.6) 50%, transparent 68%);
  -webkit-mask-image:  radial-gradient(circle, black 32%, rgba(0,0,0,0.6) 50%, transparent 68%);
  opacity:         0;
  transform:       translateX(20px);
  transition:      opacity 700ms var(--ease-padrao),
                   transform 700ms var(--ease-padrao);
  transition-delay: 200ms;
  will-change:     transform, opacity;
}

.hero-expert-img.is-visible {
  opacity:   1;
  transform: translateX(0);
}

@media (min-width: 768px) {
  .secao-hero {
    padding: 100px 0 80px;
  }

  .hero-grid {
    flex-direction: row;
    align-items:    flex-start;
    gap:            var(--gutter);
  }

  .hero-copy {
    flex:  6;
    order: 1;
  }

  .hero-expert {
    flex:  4;
    order: 2;
  }

  .hero-headline {
    font-size: 58px;
  }

  .hero-subheadline {
    font-size: 18px;
  }

  .hero-expert {
    margin-right: calc(-1 * var(--pad-mobile));
  }

  .hero-expert-img {
    transform: translateX(24px);
    width:     min(860px, 100%);
  }
}

@media (min-width: 1280px) {
  .hero-headline {
    font-size: 72px;
  }

  .hero-expert {
    margin-right: calc(-1 * var(--pad-desktop));
  }

  .hero-expert-img {
    width: min(960px, 100%);
  }
}

/* ================================================================
   9. SEÇÃO 3 — REFRAME
   ================================================================ */
.secao-reframe {
  background-color: var(--color-bg-deep);
  padding:          96px 0;
  position:         relative;
  overflow:         hidden;
}

/* Glow atmosférico no topo */
.secao-reframe::before {
  content:        '';
  position:       absolute;
  top:            -120px;
  left:           50%;
  transform:      translateX(-50%);
  width:          700px;
  height:         500px;
  background:     radial-gradient(ellipse, rgba(61,214,192,0.13) 0%, transparent 68%);
  pointer-events: none;
}

.reframe-bloco {
  max-width:  820px;
  margin:     0 auto;
  position:   relative;
  z-index:    1;
}

/* ---- Título — palavra a palavra ---- */
.reframe-titulo {
  font-family:    var(--font-impact);
  font-weight:    400;
  font-size:      68px;
  line-height:    0.95;
  letter-spacing: 0.025em;
  text-transform: uppercase;
  text-align:     center;
  margin-bottom:  32px;
}

/* Cada palavra quebrada via JS */
.rt-word {
  display:                  inline-block;
  background:               linear-gradient(120deg, #ffffff 0%, #3DD6C0 40%, #FFE08A 100%);
  -webkit-background-clip:  text;
  -webkit-text-fill-color:  transparent;
  background-clip:          text;
  opacity:                  0;
  transform:                translateY(64px) skewY(4deg);
  transition:               opacity  0.65s cubic-bezier(0.22, 1, 0.36, 1),
                            transform 0.65s cubic-bezier(0.22, 1, 0.36, 1);
}

.reframe-bloco.is-visible .rt-word {
  opacity:   1;
  transform: translateY(0) skewY(0);
}

/* ---- Texto descritivo ---- */
.reframe-texto {
  font-family:   var(--font-body);
  font-size:     16px;
  line-height:   1.7;
  color:         var(--color-text-secondary);
  margin-bottom: 24px;
  text-align:    center;
  opacity:       0;
  transform:     translateY(24px);
  transition:    opacity 0.6s ease 0.65s, transform 0.6s ease 0.65s;
}

.reframe-bloco.is-visible .reframe-texto {
  opacity:   1;
  transform: translateY(0);
}

/* ---- Lista negativa ---- */
.reframe-lista {
  margin-bottom: 32px;
  opacity:       0;
  transform:     translateY(20px);
  transition:    opacity 0.6s ease 0.85s, transform 0.6s ease 0.85s;
}

.reframe-bloco.is-visible .reframe-lista {
  opacity:   1;
  transform: translateY(0);
}

.reframe-lista li {
  font-family: var(--font-body);
  font-size:   15px;
  line-height: 1.6;
  color:       var(--color-text-secondary);
  opacity:     0.7;
  text-align:  center;
  padding:     4px 0;
}

.reframe-lista li::before {
  content: '';
}

/* ---- Destaque final ---- */
.reframe-destaque {
  font-family:              var(--font-impact);
  font-weight:              400;
  font-size:                40px;
  line-height:              1.1;
  letter-spacing:           0.02em;
  background:               linear-gradient(135deg, #C84B0A 0%, #F0820F 45%, #FFB627 100%);
  -webkit-background-clip:  text;
  -webkit-text-fill-color:  transparent;
  background-clip:          text;
  text-align:               center;
  padding:                  28px 0;
  border-top:               2px solid rgba(61,214,192,0.18);
  border-bottom:            2px solid rgba(61,214,192,0.18);
  opacity:                  0;
  transform:                translateY(20px);
  transition:               opacity 0.6s ease 1.05s, transform 0.6s ease 1.05s;
}

.reframe-bloco.is-visible .reframe-destaque {
  opacity:   1;
  transform: translateY(0);
}

@media (min-width: 768px) {
  .reframe-titulo    { font-size: 96px; }
  .reframe-texto     { font-size: 18px; }
  .reframe-destaque  { font-size: 54px; }
}

/* ================================================================
   10. SEÇÃO 4 — ESCALA / URGÊNCIA
   ================================================================ */
.secao-escala {
  background-color: var(--color-bg-surface);
  padding:          72px 0;
}

.escala-titulo {
  font-family:   var(--font-display);
  font-weight:   700;
  font-size:     32px;
  line-height:   1.1;
  color:         var(--color-text-primary);
  text-align:    center;
  margin-bottom: 48px;
}

.escala-stats {
  display:         flex;
  flex-direction:  column;
  gap:             40px;
  margin-bottom:   48px;
}

.stat-bloco {
  display:     flex;
  flex-direction: column;
  align-items: center;
  text-align:  center;
  gap:         12px;
}

.stat-numero {
  font-family:              var(--font-display);
  font-weight:              700;
  font-size:                64px;
  line-height:              1;
  letter-spacing:           -1px;
  background:               var(--grad-numeros);
  -webkit-background-clip:  text;
  -webkit-text-fill-color:  transparent;
  background-clip:          text;
}

.stat-fracao-wrapper {
  display:     flex;
  align-items: baseline;
  gap:         8px;
}

.stat-numero-destaque {
  font-family:              var(--font-display);
  font-weight:              700;
  font-size:                80px;
  line-height:              1;
  background:               var(--grad-numeros);
  -webkit-background-clip:  text;
  -webkit-text-fill-color:  transparent;
  background-clip:          text;
}

.stat-em {
  font-family: var(--font-display);
  font-weight: 700;
  font-size:   28px;
  color:       var(--color-text-secondary);
}

.stat-label {
  font-family: var(--font-body);
  font-weight: 400;
  font-size:   14px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color:       var(--color-text-secondary);
  max-width:   300px;
}

.escala-texto {
  max-width: 640px;
  margin:    0 auto;
}

.escala-texto p {
  font-family:   var(--font-body);
  font-size:     16px;
  line-height:   1.65;
  color:         var(--color-text-primary);
  margin-bottom: 12px;
}

.escala-texto p:last-child {
  margin-bottom: 0;
}

@media (min-width: 768px) {
  .escala-titulo {
    font-size: 44px;
  }

  .escala-stats {
    flex-direction: row;
    justify-content: center;
    gap: 64px;
  }

  .stat-numero {
    font-size: 80px;
  }
}

/* ================================================================
   11. SEÇÃO 5 — CURRÍCULO / GRADE
   ================================================================ */
.secao-curriculo {
  background-color: var(--color-bg-primary);
  padding:          72px 0;
}

.curriculo-titulo {
  font-family:    var(--font-display);
  font-weight:    700;
  font-size:      44px;
  line-height:    1.05;
  letter-spacing: -0.5px;
  color:          var(--color-text-primary);
  margin-bottom:  12px;
  text-align:     center;
}

.curriculo-titulo-riscado {
  text-decoration:            line-through;
  text-decoration-color:      var(--color-accent-cta);
  text-decoration-thickness:  3px;
  color:                      var(--color-text-secondary);
  opacity:                    0.7;
}

.curriculo-titulo-destaque {
  color: var(--color-accent-cta);
}

.curriculo-subtitulo-pilares {
  font-family:   var(--font-body);
  font-weight:   600;
  font-size:     15px;
  color:         var(--color-accent-warm);
  text-align:    center;
  letter-spacing: 0.04em;
  margin-bottom: 40px;
}

/* Tabs */
.curriculo-tabs {
  display:         flex;
  gap:             0;
  margin-bottom:   32px;
  border-bottom:   2px solid var(--color-border-subtle);
}

.curriculo-tab-btn {
  font-family:   var(--font-display);
  font-weight:   700;
  font-size:     18px;
  color:         var(--color-text-secondary);
  padding:       12px 20px;
  border-bottom: 3px solid transparent;
  margin-bottom: -2px;
  transition:    color var(--dur-micro) ease,
                 border-color var(--dur-micro) ease;
  white-space:   nowrap;
}

.curriculo-tab-btn:hover {
  color: var(--color-text-primary);
}

.curriculo-tab-btn.is-active,
.curriculo-tab-btn[aria-selected="true"] {
  color:        var(--color-accent-cta);
  border-color: var(--color-accent-cta);
}

/* Painel de conteúdo */
.curriculo-tab-content {
  display:    none;
  opacity:    0;
  transition: opacity 200ms ease-out;
}

.curriculo-tab-content.is-active {
  display: block;
  opacity: 1;
}

.curriculo-noite-subtitulo {
  font-family:   var(--font-body);
  font-weight:   600;
  font-size:     16px;
  color:         var(--color-accent-cta);
  margin-bottom: 20px;
}

.curriculo-lista {
  display:        flex;
  flex-direction: column;
  gap:            16px;
}

.curriculo-item {
  font-family:    var(--font-body);
  font-size:      15px;
  line-height:    1.6;
  color:          var(--color-text-primary);
  padding-left:   20px;
  position:       relative;
}

.curriculo-item::before {
  content:     '';
  position:    absolute;
  left:        0;
  top:         9px;
  width:       8px;
  height:      8px;
  border-radius: 50%;
  background-color: var(--color-accent-cta);
  flex-shrink:  0;
}

.badge-ao-vivo {
  display:          inline-block;
  background-color: var(--color-accent-warm);
  color:            var(--color-bg-deep);
  font-family:      var(--font-body);
  font-weight:      600;
  font-size:        10px;
  letter-spacing:   0.08em;
  text-transform:   uppercase;
  padding:          2px 6px;
  border-radius:    2px;
  margin-left:      8px;
  vertical-align:   middle;
}

@media (min-width: 768px) {
  .curriculo-titulo { font-size: 64px; }
}

/* ---- Pilares ---- */
.pilares-grid {
  display:               grid;
  grid-template-columns: 1fr;
  gap:                   24px;
}

@media (min-width: 768px) {
  .pilares-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 28px;
  }
}

.pilar-card {
  position:         relative;
  background:       rgba(255, 255, 255, 0.04);
  border:           1.5px solid rgba(168, 213, 162, 0.28);
  border-top:       3px solid var(--color-accent-cta);
  border-radius:    8px;
  padding:          28px 24px 24px;
  overflow:         hidden;
  box-shadow:       0 0 0 1px rgba(168, 213, 162, 0.07),
                    0 8px 32px rgba(0, 0, 0, 0.35);
}

.pilar-numero {
  position:    absolute;
  top:         12px;
  right:       18px;
  font-family: var(--font-impact);
  font-size:   72px;
  line-height: 1;
  color:       rgba(168, 213, 162, 0.07);
  pointer-events: none;
  user-select: none;
}

.pilar-titulo {
  font-family:   var(--font-display);
  font-weight:   700;
  font-size:     20px;
  line-height:   1.2;
  color:         var(--color-accent-cta);
  text-transform: uppercase;
  letter-spacing: 0.02em;
  margin-bottom: 6px;
  padding-right: 48px;
}

.pilar-subtitulo {
  font-family:   var(--font-body);
  font-size:     13px;
  font-style:    italic;
  color:         var(--color-text-secondary);
  margin-bottom: 16px;
}

.pilar-texto {
  font-family:   var(--font-body);
  font-size:     14px;
  line-height:   1.7;
  color:         var(--color-text-primary);
  opacity:       0.82;
  margin-bottom: 20px;
}

.pilar-resultado {
  display:        flex;
  flex-direction: column;
  gap:            5px;
  margin-top:     20px;
  background:     var(--color-bg-deep);
  border-left:    3px solid var(--color-accent-warm);
  border-radius:  0 6px 6px 0;
  padding:        14px 16px;
}

.pilar-resultado-label {
  font-family:    var(--font-body);
  font-size:      10px;
  font-weight:    700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color:          var(--color-accent-warm);
}

.pilar-resultado-texto {
  font-family: var(--font-body);
  font-size:   14px;
  font-weight: 600;
  color:       var(--color-text-primary);
  line-height: 1.4;
}

/* ================================================================
   12. SEÇÃO 6 — PRÁTICA (4 CARDS)
   ================================================================ */
.secao-pratica {
  background-color: var(--color-bg-secondary);
  padding:          72px 0;
}

.pratica-titulo {
  font-family:   var(--font-display);
  font-weight:   700;
  font-size:     32px;
  line-height:   1.1;
  color:         var(--color-text-on-light);
  margin-bottom: 40px;
  text-align:    center;
}

@media (min-width: 1024px) {
  .pratica-titulo { font-size: 44px; }
}

/* ================================================================
   13. SEÇÃO 7 — QUALIFICAÇÃO
   ================================================================ */
.secao-qualificacao {
  background-color: var(--color-bg-primary);
  padding:          72px 0;
}

.qualificacao-titulo {
  font-family:   var(--font-display);
  font-weight:   700;
  font-size:     32px;
  line-height:   1.1;
  color:         var(--color-text-primary);
  margin-bottom: 40px;
  text-align:    center;
}

.qualificacao-bloco {
  opacity:    0;
  transition: opacity 400ms ease-out;
}

.qualificacao-bloco.is-visible {
  opacity: 1;
}

.qualificacao-colunas {
  display:        flex;
  flex-direction: column;
  gap:            40px;
}

.qualificacao-col-titulo {
  font-family:   var(--font-body);
  font-weight:   600;
  font-size:     18px;
  color:         var(--color-text-primary);
  margin-bottom: 20px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--color-border-subtle);
}

.qualificacao-col-titulo-nao {
  color: var(--color-text-secondary);
}

.qualificacao-lista {
  display:        flex;
  flex-direction: column;
  gap:            16px;
}

.qualificacao-item {
  display:    flex;
  align-items: flex-start;
  gap:         14px;
  font-family: var(--font-body);
  font-size:   15px;
  line-height: 1.6;
  color:       var(--color-text-primary);
}

/* Card de benefício — destaque âmbar/dourado nos itens SIM */
.qualificacao-item-sim {
  background:    rgba(212, 168, 83, 0.09);
  border:        1px solid rgba(212, 168, 83, 0.3);
  border-left:   4px solid var(--color-accent-warm);
  border-radius: 0 8px 8px 0;
  padding:       16px 18px;
  transition:    background 200ms ease, border-left-color 200ms ease,
                 box-shadow 200ms ease;
}

.qualificacao-item-sim:hover {
  background:        rgba(212, 168, 83, 0.15);
  border-left-color: var(--color-gold-bright);
  box-shadow:        0 4px 20px rgba(212, 168, 83, 0.18);
}

.qualificacao-item-titulo {
  display:       block;
  font-weight:   700;
  font-size:     15px;
  color:         var(--color-gold-bright);
  margin-bottom: 4px;
  line-height:   1.35;
}

.qualificacao-item-sub {
  display:     block;
  font-size:   13px;
  line-height: 1.55;
  color:       var(--color-text-secondary);
}

/* Ícone em círculo âmbar */
.qualificacao-icon {
  display:         inline-flex;
  align-items:     center;
  justify-content: center;
  width:           28px;
  height:          28px;
  min-width:       28px;
  background:      rgba(212, 168, 83, 0.18);
  border:          1.5px solid var(--color-accent-warm);
  border-radius:   50%;
  font-size:       13px;
  font-weight:     700;
  color:           var(--color-gold-bright);
  flex-shrink:     0;
  margin-top:      1px;
}

.qualificacao-icon-nao {
  background:   rgba(255, 80, 80, 0.1);
  border-color: #FF6B6B;
  color:        #FF6B6B;
}

.qualificacao-item-nao {
  color: var(--color-text-secondary);
}

@media (min-width: 768px) {
  .qualificacao-titulo    { font-size: 44px; }
  .qualificacao-colunas   { flex-direction: row; gap: 48px; }
  .qualificacao-col       { flex: 1; }
  .qualificacao-col-sim   { flex: 1.3; }
  .qualificacao-col-nao   { flex: 0.7; }
  .qualificacao-item      { font-size: 16px; }
}

/* ================================================================
   14. SEÇÃO 8 — QUEBRA DE OBJEÇÃO
   ================================================================ */
.secao-objecao {
  background-color: var(--color-bg-surface);
  padding:          56px 0;
}

.secao-objecao .container {
  max-width: var(--max-width);
}

.objecao-titulo {
  font-family:   var(--font-display);
  font-weight:   700;
  font-size:     32px;
  line-height:   1.1;
  color:         var(--color-text-primary);
  text-align:    center;
  margin-bottom: 24px;
}

.objecao-divisor {
  border:        none;
  border-top:    1px solid var(--color-border-subtle);
  margin-bottom: 24px;
}

.objecao-resposta-chave {
  font-family:     var(--font-display);
  font-weight:     700;
  font-size:       56px;
  line-height:     1;
  color:           var(--color-accent-cta);
  text-align:      center;
  margin-bottom:   24px;
  overflow:        hidden;
  white-space:     nowrap;
  width:           0;
  transition:      width 400ms steps(4, end);
}

.objecao-resposta-chave.is-visible {
  width: 100%;
}

.objecao-texto {
  text-align:    center;
  margin-bottom: 0;
}

.objecao-texto p {
  font-family:   var(--font-body);
  font-size:     16px;
  line-height:   1.65;
  color:         var(--color-text-secondary);
  margin-bottom: 14px;
}

.objecao-texto p:last-child {
  margin-bottom: 0;
}

@media (min-width: 768px) {
  .objecao-titulo { font-size: 44px; }
}

/* ================================================================
   15. SEÇÃO 9 — CHECKOUT / OFERTA
   ================================================================ */
.secao-checkout {
  background-color: var(--color-bg-deep);
  padding:          80px 0;
}

/* Cabeçalho da oferta */
.checkout-topo {
  text-align:    center;
  margin-bottom: 40px;
}

.checkout-countdown {
  display:          inline-flex;
  align-items:      center;
  justify-content:  center;
  gap:              10px;
  background:       rgba(220, 38, 38, 0.12);
  border:           1.5px solid rgba(220, 38, 38, 0.55);
  border-radius:    6px;
  padding:          12px 28px;
  margin-bottom:    24px;
  animation:        checkout-urgencia 1.4s ease-in-out infinite;
}

@keyframes checkout-urgencia {
  0%, 100% {
    border-color: rgba(220, 38, 38, 0.55);
    box-shadow:   0 0 0 0 rgba(220, 38, 38, 0);
  }
  50% {
    border-color: rgba(255, 60, 60, 0.9);
    box-shadow:   0 0 18px 4px rgba(220, 38, 38, 0.3);
  }
}

.checkout-countdown-label {
  font-family:    var(--font-body);
  font-weight:    700;
  font-size:      12px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color:          #FF6B6B;
  white-space:    nowrap;
}

.checkout-countdown .countdown-timer {
  font-family:    var(--font-mono);
  font-weight:    700;
  font-size:      28px;
  color:          #FF3B3B;
  letter-spacing: 0.08em;
  animation:      countdown-flash 1s step-end infinite;
}

.checkout-countdown .countdown-signal {
  background: #FF3B3B;
}

.checkout-produto-titulo {
  font-family:   var(--font-display);
  font-weight:   700;
  font-size:     32px;
  line-height:   1.1;
  color:         var(--color-text-primary);
  margin-bottom: 8px;
}

.checkout-produto-sub {
  font-family: var(--font-body);
  font-size:   14px;
  color:       var(--color-text-secondary);
}

/* Grid horizontal de lotes */
.lotes-grid {
  display:               grid;
  grid-template-columns: 1fr;
  gap:                   16px;
  align-items:           stretch;
}

@media (min-width: 600px) {
  .lotes-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .lotes-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
  }
}

/* Card base */
.lote-card {
  border-radius: 10px;
  padding:       28px 22px;
  display:       flex;
  flex-direction: column;
  align-items:   center;
  text-align:    center;
  position:      relative;
  overflow:      hidden;
}

/* ---- Lote 1: ATIVO ---- */
.lote-card-ativo {
  background:  var(--color-bg-surface);
  border:      2px solid var(--color-accent-cta);
  box-shadow:  0 0 0 1px rgba(61, 214, 192, 0.15),
               0 0 48px rgba(61, 214, 192, 0.08),
               0 24px 64px rgba(0,0,0,0.5);
}

/* Shimmer no Lote 1 */
.lote-card-ativo::before {
  content:        '';
  position:       absolute;
  inset:          0;
  background:     linear-gradient(90deg, transparent 0%, rgba(168,213,162,0.18) 50%, transparent 100%);
  animation:      shimmer-slide 3s linear infinite;
  pointer-events: none;
  opacity:        0.5;
}

@keyframes shimmer-slide {
  0%   { transform: translateX(-100%); }
  100% { transform: translateX(200%); }
}

.lote-card-badge {
  margin-bottom: 16px;
}

.lote-card-preco {
  font-family:             var(--font-display);
  font-weight:             700;
  font-size:               52px;
  line-height:             1;
  letter-spacing:          -1px;
  margin-bottom:           10px;
  background:              var(--grad-destaque);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip:         text;
}

.lote-card-vagas {
  font-family:   var(--font-body);
  font-size:     13px;
  color:         var(--color-text-secondary);
  margin-bottom: 20px;
}

.btn-cta-checkout {
  display:   block;
  width:     100%;
  font-size: 16px;
  padding:   18px 16px;
}

.lote-card-duracao {
  display:        flex;
  align-items:    center;
  gap:            6px;
  font-family:    var(--font-body);
  font-size:      12px;
  color:          var(--color-accent-warm);
  margin-bottom:  20px;
}

.lote-card-duracao svg {
  flex-shrink: 0;
  color:       var(--color-accent-warm);
}

.lote-beneficios {
  list-style:    none;
  margin-bottom: 24px;
  display:       flex;
  flex-direction: column;
  gap:           10px;
}

.lote-beneficio-item {
  display:     flex;
  align-items: flex-start;
  gap:         8px;
  font-family: var(--font-body);
  font-size:   13px;
  color:       var(--color-text-primary);
  line-height: 1.4;
}

.lote-beneficio-check {
  flex-shrink:  0;
  display:      flex;
  align-items:  center;
  justify-content: center;
  width:        20px;
  height:       20px;
  border-radius: 50%;
  background:   rgba(168, 213, 162, 0.15);
  color:        var(--color-accent-cta);
  margin-top:   1px;
}

.checkout-microcopy {
  font-family: var(--font-body);
  font-size:   11px;
  color:       var(--color-text-secondary);
  margin-top:  10px;
  opacity:     0.7;
}

/* ---- Lotes BLOQUEADOS ---- */
.lote-card-bloqueado {
  background:      rgba(255, 255, 255, 0.02);
  border:          1px solid rgba(212, 168, 83, 0.18);
  justify-content: center;
  gap:             12px;
  min-height:      220px;
  animation:       lote-border-urgencia 3s ease-in-out infinite;
}

/* Stagger: Lote 3 pulsa ligeiramente depois do Lote 2 */
.lotes-grid .lote-card:nth-child(3) {
  animation-delay: 1.1s;
}

@keyframes lote-border-urgencia {
  0%, 100% {
    border-color: rgba(212, 168, 83, 0.18);
    box-shadow:   none;
  }
  50% {
    border-color: rgba(212, 168, 83, 0.6);
    box-shadow:   0 0 20px rgba(212, 168, 83, 0.18),
                  inset 0 0 14px rgba(212, 168, 83, 0.06);
  }
}

/* Overlay: menos opaco, menos blur — conteúdo aparece por baixo */
.lote-lock-overlay {
  position:        absolute;
  inset:           0;
  display:         flex;
  align-items:     center;
  justify-content: center;
  background:      rgba(0, 18, 18, 0.4);
  backdrop-filter: blur(1.5px);
  z-index:         2;
  border-radius:   10px;
}

/* Cadeado: shake nervoso periódico + glow pós-tremor */
.lote-lock-icone {
  color:     rgba(212, 168, 83, 0.92);
  animation: lock-nervoso 5s ease-in-out infinite;
}

.lotes-grid .lote-card:nth-child(3) .lote-lock-icone {
  animation-delay: 1.8s;
}

@keyframes lock-nervoso {
  0%, 58%, 100% {
    transform: rotate(0deg) scale(1);
    filter:    drop-shadow(0 0 0px rgba(212,168,83,0));
  }
  61%  { transform: rotate(-9deg) scale(1.06); filter: drop-shadow(0 0 6px rgba(212,168,83,0.45)); }
  64%  { transform: rotate( 9deg) scale(1.06); filter: drop-shadow(0 0 6px rgba(212,168,83,0.45)); }
  67%  { transform: rotate(-6deg) scale(1.04); filter: drop-shadow(0 0 8px rgba(212,168,83,0.55)); }
  70%  { transform: rotate( 6deg) scale(1.04); filter: drop-shadow(0 0 8px rgba(212,168,83,0.55)); }
  73%  { transform: rotate(-3deg) scale(1.02); filter: drop-shadow(0 0 10px rgba(212,168,83,0.65)); }
  76%  { transform: rotate( 0deg) scale(1.14); filter: drop-shadow(0 0 20px rgba(212,168,83,0.9)); }
  84%  { transform: rotate( 0deg) scale(1);    filter: drop-shadow(0 0 0px rgba(212,168,83,0)); }
}

/* Número do lote */
.lote-card-numero {
  font-family:    var(--font-body);
  font-weight:    700;
  font-size:      11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color:          var(--color-text-secondary);
  opacity:        0.55;
  position:       relative;
  z-index:        1;
}

/* Preço: aparece brevemente (tease) e volta ao blur */
.lote-preco-bloqueado {
  font-size:               30px;
  -webkit-text-fill-color: transparent;
  position:                relative;
  z-index:                 1;
  animation:               price-tease 6s ease-in-out infinite;
}

.lotes-grid .lote-card:nth-child(3) .lote-preco-bloqueado {
  animation-delay: 2.5s;
}

@keyframes price-tease {
  0%, 50%, 100% { opacity: 0.28; filter: blur(3px); }
  68%, 78%      { opacity: 0.7;  filter: blur(0px); }
}

.lote-card-status {
  font-family: var(--font-body);
  font-size:   11px;
  color:       var(--color-text-secondary);
  opacity:     0.45;
  line-height: 1.45;
  position:    relative;
  z-index:     1;
}

@media (min-width: 768px) {
  .checkout-produto-titulo { font-size: 40px; }
  .lote-card-preco         { font-size: 60px; }
}

/* ================================================================
   16. SEÇÃO 10 — O QUE ESTÁ INCLUÍDO
   ================================================================ */
.secao-incluidos {
  background-color: var(--color-bg-primary);
  padding:          72px 0;
}

.incluidos-titulo {
  font-family:   var(--font-display);
  font-weight:   700;
  font-size:     32px;
  line-height:   1.1;
  color:         var(--color-text-primary);
  margin-bottom: 40px;
  text-align:    center;
}

.incluidos-grid {
  display:               grid;
  grid-template-columns: 1fr;
  gap:                   24px;
  margin-bottom:         48px;
}

.incluido-item {
  display:   flex;
  gap:       16px;
  opacity:   0;
  transform: translateX(-16px);
  transition: opacity 350ms var(--ease-padrao),
              transform 350ms var(--ease-padrao);
  transition-delay: var(--item-delay, 0ms);
  will-change:      transform, opacity;
}

.incluido-item.is-visible {
  opacity:   1;
  transform: translateX(0);
}

.incluido-icon {
  color:       var(--color-accent-cta);
  flex-shrink: 0;
  margin-top:  2px;
}

.incluido-nome {
  font-family:   var(--font-body);
  font-weight:   700;
  font-size:     16px;
  color:         var(--color-mint);
  margin-bottom: 4px;
}

.incluido-desc {
  font-family: var(--font-body);
  font-size:   13px;
  line-height: 1.55;
  color:       var(--color-text-secondary);
}

.incluido-prompt-preview {
  display:          inline-block;
  font-family:      var(--font-mono);
  font-size:        11px;
  color:            var(--color-accent-cta);
  background-color: var(--color-bg-surface);
  padding:          4px 8px;
  border-radius:    3px;
  margin-top:       6px;
  border:           1px solid var(--color-border-subtle);
}

/* Garantia */
.garantia-bloco {
  display:          flex;
  align-items:      flex-start;
  gap:              20px;
  background-color: var(--color-bg-surface);
  border:           1px solid var(--color-border-subtle);
  border-radius:    8px;
  padding:          24px;
  border-left:      3px solid var(--color-accent-cta);
}

.garantia-icone {
  color:       var(--color-accent-cta);
  flex-shrink: 0;
}

.garantia-titulo {
  font-family:   var(--font-body);
  font-weight:   600;
  font-size:     16px;
  color:         var(--color-text-primary);
  margin-bottom: 8px;
}

.garantia-texto {
  font-family: var(--font-body);
  font-size:   14px;
  line-height: 1.6;
  color:       var(--color-text-secondary);
}

@media (min-width: 768px) {
  .incluidos-titulo { font-size: 44px; }

  .incluidos-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 28px;
  }
}

/* ================================================================
   17. SEÇÃO 11 — FAQ
   ================================================================ */
.secao-faq {
  background-color: var(--color-bg-secondary);
  padding:          72px 0;
}

.faq-titulo {
  font-family:   var(--font-display);
  font-weight:   700;
  font-size:     32px;
  line-height:   1.1;
  color:         var(--color-text-on-light);
  margin-bottom: 40px;
  text-align:    center;
}

.faq-lista {
  max-width: 720px;
  margin:    0 auto;
}

.faq-item {
  border-bottom: 1px solid rgba(0,70,67,0.2);
}

.faq-item:first-child {
  border-top: 1px solid rgba(0,70,67,0.2);
}

.faq-pergunta {
  display:          flex;
  justify-content:  space-between;
  align-items:      center;
  gap:              16px;
  width:            100%;
  padding:          18px 0;
  font-family:      var(--font-body);
  font-weight:      600;
  font-size:        16px;
  line-height:      1.4;
  color:            var(--color-text-on-light);
  text-align:       left;
  transition:       color var(--dur-micro) ease;
}

.faq-pergunta:hover {
  color: var(--color-bg-primary);
}

.faq-chevron {
  flex-shrink: 0;
  color:       var(--color-bg-primary);
  transition:  transform 250ms ease-in-out;
}

.faq-item.is-open .faq-chevron {
  transform: rotate(180deg);
}

.faq-resposta {
  max-height: 0;
  overflow:   hidden;
  transition: max-height var(--dur-accordion) var(--ease-accordion),
              opacity    var(--dur-accordion) ease-out;
  opacity:    0;
}

.faq-item.is-open .faq-resposta {
  max-height: 500px;
  opacity:    1;
}

.faq-resposta p {
  font-family:   var(--font-body);
  font-size:     15px;
  line-height:   1.65;
  color:         var(--color-text-on-light);
  padding-bottom: 18px;
}

.faq-resposta p:first-child {
  padding-top: 0;
}

@media (min-width: 768px) {
  .faq-titulo    { font-size: 44px; }
  .faq-pergunta  { font-size: 18px; }
}

/* ================================================================
   18. SEÇÃO 12 — CTA FINAL
   ================================================================ */
.secao-cta-final {
  background-color: var(--color-bg-primary);
  padding:          80px 0;
}

.cta-final-bloco {
  max-width: 700px;
  margin:    0 auto;
  text-align: center;
  opacity:    0;
  transform:  translateY(24px);
  transition: opacity var(--dur-entrada) var(--ease-padrao),
              transform var(--dur-entrada) var(--ease-padrao);
  will-change: transform, opacity;
}

.cta-final-bloco.is-visible {
  opacity:   1;
  transform: translateY(0);
}

.cta-final-titulo {
  font-family:   var(--font-display);
  font-weight:   700;
  font-size:     36px;
  line-height:   1.1;
  color:         var(--color-text-primary);
  margin-bottom: 24px;
}

.cta-final-texto {
  font-family:   var(--font-body);
  font-size:     16px;
  line-height:   1.8;
  color:         var(--color-text-secondary);
  margin-bottom: 36px;
}

.btn-cta-final {
  font-size: 20px;
  padding:   24px 48px;
}

.cta-final-apoio {
  font-family:  var(--font-body);
  font-size:    13px;
  line-height:  1.6;
  color:        var(--color-text-secondary);
  margin-top:   16px;
  max-width:    480px;
  margin-left:  auto;
  margin-right: auto;
}

@media (min-width: 768px) {
  .cta-final-titulo { font-size: 52px; }
}

/* ================================================================
   19. SEÇÃO 13 — RODAPÉ
   ================================================================ */
.secao-rodape {
  background-color: var(--color-bg-deep);
  padding:          48px 0 32px;
  border-top:       1px solid var(--color-border-subtle);
}

.rodape-grid {
  display:        flex;
  flex-direction: column;
  gap:            28px;
}

.rodape-logo {
  display:       block;
  font-family:   var(--font-display);
  font-weight:   700;
  font-size:     20px;
  color:         var(--color-text-primary);
  margin-bottom: 8px;
}

.rodape-expert {
  font-family: var(--font-body);
  font-size:   13px;
  color:       var(--color-text-secondary);
}

.rodape-nav {
  display:   flex;
  flex-wrap: wrap;
  gap:       16px;
}

.rodape-link {
  font-family: var(--font-body);
  font-size:   12px;
  color:       var(--color-text-secondary);
  transition:  color var(--dur-micro) ease;
}

.rodape-link:hover,
.rodape-link:focus-visible {
  color: var(--color-mint);
}

/* ================================================================
   FRONTEND-DESIGN REFINEMENTS — Clinical Authority Premium
   ================================================================ */

/* Global text rendering */
*, *::before, *::after {
  -webkit-font-smoothing:  antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* ---- Hero: subheadline first-letter fix ---- */
.hero-subheadline::first-letter {
  text-transform: uppercase;
}

/* ---- Section h2 accent bars ---- */
.escala-titulo,
.curriculo-titulo,
.pratica-titulo,
.qualificacao-titulo,
.incluidos-titulo,
.faq-titulo {
  padding-bottom: 22px;
  position: relative;
}

.escala-titulo::after,
.curriculo-titulo::after,
.qualificacao-titulo::after,
.incluidos-titulo::after,
.faq-titulo::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 40px;
  height: 3px;
  background: var(--grad-cta);
  border-radius: 99px;
}

.pratica-titulo {
  padding-bottom: 22px;
  position: relative;
}

.pratica-titulo::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 40px;
  height: 3px;
  background: linear-gradient(135deg, #004643, #3DD6C0);
  border-radius: 99px;
}

/* ---- Reframe: styled "Nao tem" list ---- */
.reframe-lista {
  max-width: 500px;
  margin-left: auto;
  margin-right: auto;
}

.reframe-lista li {
  text-align: left !important;
  padding: 10px 16px 10px 40px !important;
  background: rgba(0,70,67,0.07) !important;
  border-left: 3px solid rgba(0,70,67,0.25) !important;
  border-radius: 0 6px 6px 0 !important;
  margin-bottom: 10px !important;
  opacity: 1 !important;
  position: relative !important;
}

.reframe-lista li::before {
  content: '×' !important;
  position: absolute !important;
  left: 14px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  font-family: var(--font-body) !important;
  font-weight: 700 !important;
  font-size: 18px !important;
  color: var(--color-bg-primary) !important;
  opacity: 0.55 !important;
}

/* ---- Stats: desktop layout + glow lines ---- */
@media (min-width: 768px) {
  .escala-stats {
    flex-direction: row;
    justify-content: center;
    gap: 72px;
    align-items: flex-start;
  }

  .stat-bloco {
    flex: 1;
    max-width: 360px;
  }
}

.stat-bloco {
  position: relative;
  padding-bottom: 24px;
}

.stat-bloco::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 64px;
  height: 2px;
  background: var(--grad-numeros);
  border-radius: 1px;
  filter: blur(0.5px);
}

/* ---- Objecao: "Nao." massive gradient ---- */
.objecao-resposta-chave {
  font-size: 108px !important;
  line-height: 1 !important;
  background: var(--grad-destaque) !important;
  -webkit-background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  background-clip: text !important;
  color: transparent !important;
  letter-spacing: -3px !important;
  margin-bottom: 32px !important;
}

.objecao-resposta-chave.is-visible {
  -webkit-text-fill-color: transparent !important;
}

/* ---- Checkout: always-on shimmer + glow border ---- */
.checkout-card {
  box-shadow: 0 0 0 1px rgba(61, 214, 192, 0.15),
              0 0 48px rgba(61, 214, 192, 0.08),
              0 24px 64px rgba(0,0,0,0.5);
}

.checkout-card::before {
  animation: shimmer-slide 3s linear infinite !important;
  opacity: 0.6 !important;
}

/* ---- FAQ open state: left accent border ---- */
.faq-item {
  transition: padding-left var(--dur-accordion) var(--ease-accordion),
              border-left-color var(--dur-accordion) var(--ease-accordion);
  border-left: 3px solid transparent;
}

.faq-item.is-open {
  border-left-color: var(--color-mint);
  padding-left: 16px;
}

.faq-item.is-open .faq-pergunta {
  color: var(--color-accent-cta);
}

/* ---- Garantia: mint icon ---- */
.garantia-bloco {
  border-color: rgba(61, 214, 192, 0.3) !important;
}

.garantia-icone {
  color: var(--color-mint);
}

/* ---- Rodape: gradient top line ---- */
.secao-rodape {
  position: relative;
  border-top: none;
}

.secao-rodape::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 1px;
  background: linear-gradient(90deg,
    transparent 0%,
    var(--color-mint) 30%,
    var(--color-accent-cta) 70%,
    transparent 100%);
  opacity: 0.45;
}

/* ---- CTA Final: larger, centered properly ---- */
.cta-final-titulo {
  max-width: 900px;
  margin-left: auto;
  margin-right: auto;
}

/* ================================================================
   MOBILE RESPONSIVENESS — ajustes finais para telas pequenas
   ================================================================ */

/* Viewport base 375px — garantias globais */
@media (max-width: 767px) {

  /* Hero: headline menor, imagem embaixo do texto */
  .hero-headline        { font-size: 36px; letter-spacing: -0.5px; }
  .hero-subheadline     { font-size: 15px; }
  .secao-hero           { padding: 56px 0 48px; }
  .hero-grid            { gap: 32px; }

  /* Hero image: altura menor, gradiente mantido */
  .hero-expert-img      { width: min(620px, 100%); }
  .hero-expert          { margin-right: 0; }

  /* CTA hero: full width */
  .hero-cta-grupo .btn-cta-primary { width: 100%; text-align: center; font-size: 16px; padding: 18px 24px; }

  /* Barra de urgência: empilhada */
  .urgencia-inner       { flex-direction: column; gap: 8px; padding: 12px 16px; }
  .urgencia-cta         { width: 100%; text-align: center; }

  /* Seções: padding menor */
  .secao-reframe,
  .secao-escala,
  .secao-curriculo,
  .secao-qualificacao,
  .secao-objecao,
  .secao-incluidos,
  .secao-cta-final,
  .secao-faq            { padding: 56px 0; }

  /* Secao checkout: padding menor */
  .secao-checkout       { padding: 64px 0; }
  .checkout-card        { padding: 28px 20px; }

  /* Números grandes: menores no mobile */
  .stat-numero          { font-size: 48px; }
  .stat-numero-destaque { font-size: 64px; }
  .escala-titulo        { font-size: 26px; }

  /* "Não." menor no mobile */
  .objecao-resposta-chave { font-size: 72px !important; letter-spacing: -2px !important; }
  .objecao-titulo         { font-size: 24px; }

  /* Checkout: preço menor */
  .checkout-preco       { font-size: 52px; }

  /* Qualificação: colunas empilhadas */
  .qualificacao-colunas { flex-direction: column; gap: 32px; }

  /* Curriculo: tabs menores */
  .curriculo-tab-btn    { font-size: 15px; padding: 10px 14px; }
  .curriculo-titulo     { font-size: 30px; }

  /* Pratica titulo */
  .pratica-titulo       { font-size: 26px; }

  /* Incluidos: 1 coluna */
  .incluidos-titulo     { font-size: 26px; }

  /* CTA final: headline menor */
  .cta-final-titulo     { font-size: 28px; }
  .btn-cta-final        { width: 100%; text-align: center; }

  /* FAQ */
  .faq-titulo           { font-size: 26px; }
  .faq-item.is-open     { padding-left: 12px; margin-left: -12px; }

  /* Prompt RADAR: overflow controlado */
  .objecao-prompt-bloco { overflow-x: auto; }
  .prompt-corpo         { font-size: 12px; white-space: pre-wrap; }

  /* Reframe */
  .reframe-titulo       { font-size: 48px; }
  .reframe-destaque     { font-size: 30px; }

  /* Rodapé */
  .rodape-grid          { flex-direction: column; gap: 20px; }
  .rodape-nav           { flex-wrap: wrap; gap: 12px; }

  /* Checkout lotes futuros: wrap */
  .checkout-lotes-futuros { flex-direction: column; gap: 12px; }

  /* Garantia: icone menor */
  .garantia-bloco       { flex-direction: column; gap: 16px; }

}

/* Telas muito pequenas (320px) */
@media (max-width: 374px) {
  .hero-headline         { font-size: 30px; }
  .hero-tag-detalhe      { font-size: 9px; letter-spacing: 0.04em; }
  .objecao-resposta-chave { font-size: 56px !important; }
  .checkout-preco        { font-size: 44px; }
}

/* ---- Incluido icon: mint dot ---- */
.incluido-icon {
  color: var(--color-mint);
}

/* ---- Curriculo tab active: gradient line ---- */
.curriculo-tab-btn.is-active,
.curriculo-tab-btn[aria-selected="true"] {
  border-image: var(--grad-cta) 1;
  border-bottom: 3px solid;
}

.rodape-copy {
  font-family: var(--font-body);
  font-size:   12px;
  color:       var(--color-text-secondary);
  opacity:     0.6;
}

@media (min-width: 768px) {
  .rodape-grid {
    flex-direction:  row;
    justify-content: space-between;
    align-items:     center;
  }
}

/* ================================================================
   PRATICA — novo layout card grid com imagens
   ================================================================ */
.pratica-img-grid {
  display:               grid;
  grid-template-columns: 1fr;
  gap:                   32px;
}

@media (min-width: 600px) {
  .pratica-img-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .pratica-img-grid {
    grid-template-columns: repeat(4, 1fr);
    gap:                   28px;
  }
}

.pratica-img-card {
  display:        flex;
  flex-direction: column;
  align-items:    center;
  text-align:     center;
  background:     rgba(255, 255, 255, 0.55);
  border-radius:  12px;
  padding:        28px 20px 24px;
  gap:            14px;
  box-shadow:     0 2px 16px rgba(0, 70, 67, 0.08);
  transition:     transform 250ms var(--ease-padrao),
                  box-shadow 250ms var(--ease-padrao);
}

.pratica-img-card:hover {
  transform:  translateY(-4px);
  box-shadow: 0 8px 32px rgba(0, 70, 67, 0.14);
}

.pratica-img-card-img {
  width:      100%;
  max-width:  200px;
  height:     180px;
  object-fit: contain;
  display:    block;
  margin:     0 auto;
  filter:     drop-shadow(0 8px 24px rgba(0, 70, 67, 0.12));
}

.pratica-img-card-titulo {
  font-family:  var(--font-body);
  font-weight:  700;
  font-size:    17px;
  line-height:  1.3;
  color:        var(--color-bg-primary);
}

.pratica-img-card-desc {
  font-family: var(--font-body);
  font-size:   14px;
  line-height: 1.65;
  color:       var(--color-text-on-light);
  opacity:     0.75;
}

/* ================================================================
   OBJEÇÃO — layout com imagem lateral
   ================================================================ */
.objecao-layout {
  display:        flex;
  flex-direction: column;
  gap:            40px;
  align-items:    center;
}

.objecao-conteudo {
  width: 100%;
}

.objecao-imagem {
  display:         flex;
  justify-content: center;
  align-items:     center;
  flex-shrink:     0;
}

.objecao-cartoon-img {
  max-width:  280px;
  width:      100%;
  height:     auto;
  display:    block;
  filter:     drop-shadow(0 20px 48px rgba(0, 0, 0, 0.35));
  animation:  cartoon-float 4s ease-in-out infinite;
}

@media (min-width: 768px) {
  .objecao-layout {
    flex-direction: row;
    align-items:    center;
    gap:            72px;
  }

  .objecao-conteudo {
    flex: 1;
  }

  .objecao-imagem {
    flex: 0 0 320px;
  }

  .objecao-cartoon-img {
    max-width: 320px;
  }
}
