/* =============================================================================
   RENDA FORTUNA — v2
   Papelaria única do funil: front, esteira e área de ativação usam ESTE arquivo.
   Quem paga não pode sentir que mudou de empresa no meio do caminho.

   Regras que não se negociam neste arquivo:
   - Dourado NUNCA em texto corrido (não passa 4,5:1 sobre plum). Só título >=24px
     bold, selo, filete, ícone e preenchimento de botão (com tinta escura em cima).
   - Magenta NUNCA é cor de texto. Filete, marcador e foco.
   - Piso absoluto de texto = --rf-ink-300. Nada abaixo disso, em lugar nenhum.
   - Corpo 19px. Mínimo da página inteira 16px, e só no rodapé legal.
   - Uma coluna sempre. Zero grid de 2 colunas, zero tabela, zero carrossel.
   ============================================================================= */

/* ---------------------------------------------------------------- 1. TOKENS */
:root{
  color-scheme: dark;

  /* rampa plum — fundo */
  --rf-plum-950:#0D0509;
  --rf-plum-900:#14090F;
  --rf-plum-850:#190C14;
  --rf-plum-800:#1E0F17;
  --rf-plum-700:#2A1622;
  --rf-plum-600:#3A1F2E;

  /* rampa dourada — material, nunca brilho */
  --rf-gold-300:#F2CE5B;
  --rf-gold-400:#E3BC4E;
  --rf-gold-500:#D4AF37;   /* 9,3:1 sobre plum-900 */
  --rf-gold-600:#B8912B;
  --rf-gold-700:#8A6B1E;

  /* rampa magenta — acento, nunca leitura */
  --rf-rose-400:#F06E9B;
  --rf-rose-500:#E0457B;
  --rf-rose-600:#B8305F;

  /* tinta */
  --rf-ink-000:#FFFFFF;
  --rf-ink-100:#F5EFF2;    /* corpo */
  --rf-ink-300:#CBB9C2;    /* secundário — piso absoluto */
  --rf-ink-500:#9C8794;    /* proibido como texto */

  /* papel — recibo, extrato */
  --rf-paper:#F7F3EE;
  --rf-paper-ink:#1B1016;
  --rf-paper-muted:#5A4A52;
  --rf-paper-rule:#D9CFC2;

  /* semânticos — use sempre estes */
  --rf-bg:            var(--rf-plum-950);
  --rf-surface:       var(--rf-plum-900);
  --rf-surface-alt:   var(--rf-plum-850);
  --rf-card:          var(--rf-plum-800);
  --rf-card-raised:   var(--rf-plum-700);
  --rf-text:          var(--rf-ink-100);
  --rf-text-strong:   var(--rf-ink-000);
  --rf-text-muted:    var(--rf-ink-300);
  --rf-accent:        var(--rf-gold-500);
  --rf-accent-bright: var(--rf-gold-300);
  --rf-on-accent:     var(--rf-plum-950);
  --rf-accent-soft:   rgba(212,175,55,.10);
  --rf-rule:          rgba(212,175,55,.22);
  --rf-rule-strong:   rgba(212,175,55,.48);
  --rf-hairline:      rgba(245,239,242,.10);
  --rf-accent-2:      var(--rf-rose-500);
  --rf-ok:#7BD9A8;

  /* tipografia */
  --rf-font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
  --rf-font-display: "Georgia", "Times New Roman", serif;
  --rf-fs-body: 19px;
  --rf-fs-small: 17px;
  --rf-fs-legal: 16px;
  --rf-fs-lead: 20px;
  --rf-fs-h3: 24px;
  --rf-fs-h2: 26px;
  --rf-fs-h1: 28px;
  --rf-fs-price: 32px;
  --rf-fs-btn: 22px;
  --rf-lh: 1.6;

  /* espaço e forma */
  --rf-gap-xs: 8px;
  --rf-gap-sm: 14px;
  --rf-gap: 22px;
  --rf-gap-lg: 34px;
  --rf-section-y: 52px;
  --rf-radius: 14px;
  --rf-radius-sm: 10px;
  --rf-maxw: 620px;

  /* alvos */
  --rf-tap-primary: 64px;
  --rf-tap-secondary: 56px;
  --rf-sticky-h: 76px;
}

/* ------------------------------------------------------------ 2. FUNDAÇÃO */
*,*::before,*::after{ box-sizing:border-box; }

html{ -webkit-text-size-adjust:100%; }

body{
  margin:0;
  background:var(--rf-bg);
  color:var(--rf-text);
  font-family:var(--rf-font);
  font-size:var(--rf-fs-body);
  line-height:var(--rf-lh);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

/* a barra fixa nunca cobre texto — este público não descobre
   conteúdo escondido atrás de sobreposição */
body.rf-has-sticky{
  padding-bottom:calc(var(--rf-sticky-h) + env(safe-area-inset-bottom, 0px) + 12px);
}

img{ max-width:100%; height:auto; display:block; }

h1,h2,h3{ margin:0 0 var(--rf-gap-sm); line-height:1.25; font-weight:700; }
h1{ font-size:var(--rf-fs-h1); color:var(--rf-text-strong); }
h2{ font-size:var(--rf-fs-h2); color:var(--rf-text-strong); }
h3{ font-size:var(--rf-fs-h3); color:var(--rf-accent); }  /* dourado só >=24px bold */

p{ margin:0 0 var(--rf-gap-sm); max-width:40ch; }
strong{ color:var(--rf-text-strong); font-weight:700; }

a{ color:var(--rf-text); text-decoration:underline; text-underline-offset:3px; }
a:focus-visible,button:focus-visible{
  outline:3px solid var(--rf-accent-2);
  outline-offset:3px;
  border-radius:4px;
}

.rf-wrap{
  width:100%;
  max-width:var(--rf-maxw);
  margin-inline:auto;
  padding-inline:20px;
}

.rf-section{ padding-block:var(--rf-section-y); }
.rf-section--alt{ background:var(--rf-surface-alt); }
.rf-section + .rf-section{ border-top:1px solid var(--rf-rule); }

/* nasce no unlock */
[hidden]{ display:none !important; }

/* ---------------------------------------------------------------- 3. BOTÕES */
.rf-btn{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  width:100%;
  min-height:var(--rf-tap-secondary);
  padding:14px 20px;
  border:0;
  border-radius:var(--rf-radius);
  font-family:inherit;
  font-size:var(--rf-fs-btn);
  font-weight:700;
  line-height:1.2;
  text-align:center;
  text-decoration:none;
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
}

/* primário: dourado sólido com tinta escura — 9,3:1 */
.rf-btn--primary{
  min-height:var(--rf-tap-primary);
  color:var(--rf-on-accent);
  background:linear-gradient(180deg, var(--rf-gold-300) 0%, var(--rf-gold-600) 100%);
  box-shadow:0 6px 0 rgba(138,107,30,.45), 0 10px 26px rgba(0,0,0,.45);
}
.rf-btn--primary:active{ transform:translateY(3px); box-shadow:0 3px 0 rgba(138,107,30,.45); }

/* secundário: contorno. Nunca compete com o primário */
.rf-btn--ghost{
  color:var(--rf-text);
  background:transparent;
  border:2px solid var(--rf-gold-700);
  font-size:var(--rf-fs-lead);
}

/* nenhum alvo tocável a menos de 16px de outro */
.rf-btn + .rf-btn{ margin-top:18px; }

.rf-btn__sub{
  display:block;
  margin-top:6px;
  font-size:var(--rf-fs-small);
  font-weight:400;
}

/* pulso curto no nascimento do CTA — dourado, nunca verde
   (o verde #2ee06a era resíduo da operação anterior) */
@keyframes rf-cta-pulse{
  0%,100%{ box-shadow:0 6px 0 rgba(138,107,30,.45), 0 10px 26px rgba(0,0,0,.45); }
  50%    { box-shadow:0 6px 0 rgba(138,107,30,.45), 0 10px 26px rgba(0,0,0,.45), 0 0 0 10px rgba(212,175,55,.16); }
}
.rf-pulse{ animation:rf-cta-pulse 1.6s ease-in-out 2; }

/* ------------------------------------------------------- 4. BARRA DE IDENTIDADE */
.rf-topbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  min-height:48px;
  padding:10px 20px;
  background:var(--rf-plum-950);
  border-bottom:1px solid var(--rf-hairline);
}
.rf-topbar__mark{
  font-family:var(--rf-font-display);
  font-size:19px;
  font-weight:700;
  letter-spacing:.02em;
  color:var(--rf-text-strong);
}
.rf-topbar__state{
  font-size:var(--rf-fs-legal);
  color:var(--rf-text-muted);
  white-space:nowrap;
}

/* ================================================================== 5. LIVE
   Padrão TikTok Live: o vídeo ocupa a tela inteira e TUDO é sobreposto a ele.
   Sem card, sem moldura, sem página em volta. Só o essencial: quem está
   falando, quantas estão assistindo, os comentários e o campo de escrever.
   ============================================================================ */
.rf-gate{
  position:relative;
  height:100dvh;              /* dvh: a barra do Safari come 100vh */
  width:100%;
  overflow:hidden;
  background:#000;
}
.rf-gate.is-open{ height:auto; }

/* o vídeo é o fundo */
.rf-live{
  position:relative;
  display:flex;
  flex-direction:column;
  width:100%;
  height:100%;
}

/* o vídeo fica em cima, inteiro. contain e não cover: a legenda é queimada no
   arquivo e cortá-la é perder metade da peça em quem assiste sem som. */
.rf-player{
  position:relative;
  flex:0 0 auto;

  /* A ALTURA manda e a largura sai da proporcao 9:16 do arquivo. Assim o
     container tem EXATAMENTE a forma do video e nada e cortado — mesmo que o
     player use cover por dentro do shadow DOM, onde o object-fit da pagina nao
     alcanca. Foi isso que decepou a Torre Eiffel na versao anterior: container
     9:16 com max-height virava um retangulo mais quadrado, e o player preenchia
     cortando o topo e a base.

     min(...) protege as duas pontas: em tela estreita quem limita e a largura;
     em tela alta, a altura reservada pro chat. */
  height:min(66dvh, calc(100vw * 16 / 9));
  width:auto;
  aspect-ratio:9/16;
  max-width:100%;
  margin-inline:auto;
  background:#000;
  overflow:hidden;
  border-radius:14px;
}
.rf-player__slot{ position:absolute; inset:0; }
.rf-player__slot video,
.rf-player__slot iframe,
.rf-player__slot vturb-smartplayer{
  width:100%; height:100%;
  object-fit:contain;
}

.rf-player__fallback{
  position:absolute; inset:0;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:14px; padding:20px; text-align:center;
  color:#fff; font-size:17px;
}
.rf-spin{
  width:26px; height:26px;
  border:3px solid rgba(255,255,255,.25);
  border-top-color:#fff;
  border-radius:50%;
  animation:rf-spin 1s linear infinite;
}
@keyframes rf-spin{ to{ transform:rotate(360deg); } }

/* --------------------------------------------------------- topo da live --- */
.rf-live-top{
  position:absolute;
  top:0; left:0; right:0;   /* relativo ao PLAYER, que é position:relative */
  z-index:4;
  display:flex; align-items:flex-start; justify-content:space-between; gap:10px;
  padding:10px 12px 14px;
  background:linear-gradient(180deg, rgba(0,0,0,.5) 0%, transparent 100%);
  pointer-events:none;
}
.rf-live-left{ display:flex; flex-direction:column; align-items:flex-start; }

.rf-live-host{
  display:flex; align-items:center; gap:9px;
  padding:4px 13px 4px 4px;
  border-radius:999px;
  background:rgba(0,0,0,.46);
  backdrop-filter:blur(10px);
}
.rf-live-host__av{
  width:31px; height:31px;
  flex:0 0 auto;
  border-radius:50%;
  object-fit:cover;
  background:var(--rf-plum-700);
  display:flex; align-items:center; justify-content:center;
  color:#fff; font-size:15px; font-weight:700;
}
.rf-live-host__txt{ display:flex; flex-direction:column; line-height:1.15; }
.rf-live-host__name{ font-size:14px; font-weight:700; color:#fff; letter-spacing:.01em; }
.rf-live-host__meta{ font-size:11.5px; color:rgba(255,255,255,.65); }

.rf-live-tag{
  display:inline-flex; align-items:center; gap:6px;
  margin-top:7px;
  padding:4px 10px;
  border-radius:999px;
  background:rgba(0,0,0,.46);
  backdrop-filter:blur(10px);
  color:#fff;
  font-size:11.5px; font-weight:700; letter-spacing:.1em;
}
.rf-live-tag__dot{
  width:6px; height:6px; border-radius:50%;
  background:var(--rf-rose-500);
  animation:rf-blink 2s ease-in-out infinite;
}
@keyframes rf-blink{ 0%,100%{opacity:1} 50%{opacity:.3} }

.rf-live-count{
  display:inline-flex; align-items:center; gap:6px;
  padding:5px 12px;
  border-radius:999px;
  background:rgba(0,0,0,.46);
  backdrop-filter:blur(10px);
  color:#fff;
  font-size:13.5px; font-weight:600;
  font-variant-numeric:tabular-nums;
}

/* ---------------------------------------------------- comentários TikTok --- */
/* avatar à esquerda, nome em cima, mensagem embaixo. Os de cima desbotam. */
.rf-chat{
  position:relative;
  flex:1 1 auto;
  min-height:0;
  z-index:3;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  padding:12px 14px calc(8px + env(safe-area-inset-bottom,0px));
  background:#080407;
  pointer-events:auto;
}
.rf-chat__bar{ display:none; }

.rf-chat__feed{
  list-style:none;
  margin:0; padding:0;
  display:flex; flex-direction:column; justify-content:flex-end;
  gap:13px;
  flex:1 1 auto;
  min-height:0;
  overflow-y:auto;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  touch-action:pan-y;
  scrollbar-width:thin;
  scrollbar-color:rgba(255,255,255,.28) transparent;
  -webkit-mask-image:linear-gradient(180deg, transparent 0%, #000 38%);
          mask-image:linear-gradient(180deg, transparent 0%, #000 38%);
}
.rf-chat__feed::-webkit-scrollbar{ width:5px; }
.rf-chat__feed::-webkit-scrollbar-track{ background:transparent; }
.rf-chat__feed::-webkit-scrollbar-thumb{
  border-radius:999px;
  background:rgba(255,255,255,.28);
}
.rf-chat__msg{
  display:flex; align-items:flex-start; gap:9px;
  animation:rf-chat-in .3s ease-out;
}
@keyframes rf-chat-in{ from{opacity:0; transform:translateY(12px)} to{opacity:1; transform:none} }

.rf-chat__av{
  flex:0 0 auto;
  width:28px; height:28px;
  display:flex; align-items:center; justify-content:center;
  border-radius:50%;
  color:#fff; font-size:13px; font-weight:700;
}
.rf-chat__body{ min-width:0; }
.rf-chat__who{
  display:block;
  font-size:13.5px; font-weight:600;
  color:rgba(255,255,255,.52);
  margin-bottom:1px;
}
.rf-chat__txt{
  display:block;
  font-size:16px; font-weight:400;
  line-height:1.42;
  color:rgba(255,255,255,.94);
  word-break:break-word;
}
.rf-chat__badge{
  display:inline-block;
  margin-right:5px;
  padding:1px 6px;
  border-radius:4px;
  background:var(--rf-gold-500);
  color:#161016;
  font-size:11px; font-weight:700;
}
.rf-chat__msg.is-eu .rf-chat__who{ color:var(--rf-ok); }

/* ------------------------------------------------- barra de escrever ------- */
.rf-say{
  display:flex; align-items:center; gap:10px;
  margin-top:10px;
  padding:0;
  pointer-events:auto;
}
.rf-say__input{
  flex:1 1 auto; min-width:0;
  min-height:46px;
  padding:11px 18px;
  background:rgba(255,255,255,.10);
  border:0;
  border-radius:999px;
  color:#fff;
  font-family:inherit; font-size:16px;
  backdrop-filter:blur(10px);
}
.rf-say__input::placeholder{ color:rgba(255,255,255,.66); }
.rf-say__input:focus{ outline:2px solid rgba(255,255,255,.35); outline-offset:0; }

.rf-say__btn{
  flex:0 0 auto;
  display:flex; align-items:center; justify-content:center;
  width:46px; height:46px;
  padding:0;
  background:var(--rf-gold-600);
  border:0; border-radius:50%;
  color:#1a1014; font-size:17px;
  backdrop-filter:blur(10px);
  cursor:pointer;
}

/* --------------------------------------------------- convite para dar play - */
.rf-play{
  position:absolute; inset:0; z-index:6;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:14px;
  width:100%; height:100%;
  padding:20px;
  background:rgba(0,0,0,.45);
  border:0; color:#fff; font-family:inherit; cursor:pointer;
}
.rf-play[hidden]{ display:none; }
.rf-play__icon{
  display:flex; align-items:center; justify-content:center;
  width:76px; height:76px; padding-left:6px;
  border-radius:50%;
  background:#fff; color:#111; font-size:30px;
}
.rf-play__label{ font-size:19px; font-weight:700; }
.rf-play__hint{ font-size:15px; color:rgba(255,255,255,.75); }

/* a live não tem headline, subtítulo nem HUD extra */
.rf-gate__title,
.rf-gate__sub,
.rf-gate__lock,
.rf-eyebrow,
.rf-hud{ display:none; }

.rf-gate__help{
  position:absolute;
  left:12px; right:12px;
  bottom:calc(62px + env(safe-area-inset-bottom,0px));
  z-index:6;
  font-size:15px;
  color:rgba(255,255,255,.85);
  text-align:center;
}

/* =============================================== DESKTOP: vídeo + chat lado */
@media (min-width:900px){
  .rf-gate{
    display:grid;
    place-items:center;
    padding:clamp(18px, 3vw, 44px);
    background:
      radial-gradient(circle at 50% 44%, rgba(123,41,77,.12), transparent 34%),
      #0a0a0a;
  }
  .rf-live{
    display:flex;
    flex-direction:row;
    align-items:stretch;
    justify-content:center;
    flex:none;
    width:fit-content;
    max-width:100%;
    height:min(84dvh, 720px);
    margin:0;
    border-radius:12px;
    box-shadow:0 28px 80px rgba(0,0,0,.48);
  }
  .rf-player{
    flex:0 0 auto;
    height:100%;
    max-height:none;
    width:auto;
    aspect-ratio:9/16;
    align-self:center;
    margin:0;
    border-radius:10px 0 0 10px;
  }
  .rf-chat{
    position:relative;
    left:auto; right:auto; bottom:auto;
    flex:0 0 clamp(320px, 24vw, 370px);
    width:clamp(320px, 24vw, 370px);
    height:100%;
    align-self:stretch;
    padding:0;
    border-radius:0 10px 10px 0;
    background:#18181b;
    justify-content:flex-start;
    pointer-events:auto;
  }
  .rf-chat__bar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:13px 14px;
    border-bottom:1px solid rgba(255,255,255,.08);
    color:rgba(255,255,255,.7);
    font-size:13px;
    font-weight:700;
    letter-spacing:.06em;
  }
  .rf-chat__feed{
    flex:1 1 auto;
    max-height:none;
    padding:12px;
    overflow-y:auto;
    -webkit-mask-image:none;
            mask-image:none;
  }
  .rf-chat__txt{ text-shadow:none; }
  .rf-chat__who{ color:rgba(255,255,255,.55); text-shadow:none; }
  .rf-say{
    margin-top:0;
    padding:10px 12px;
    border-top:1px solid rgba(255,255,255,.08);
  }
  .rf-say__input{ background:rgba(255,255,255,.08); }
  .rf-chat.is-min{ height:auto; }
  .rf-chat.is-min .rf-chat__feed,
  .rf-chat.is-min .rf-say{ display:none; }
}

/* ------------------------------------------------------------- 7. REVELAÇÃO */
.rf-reveal{
  opacity:0;
  transform:translateY(10px);
  transition:opacity .8s ease, transform .8s ease;
}
.rf-reveal.is-in{ opacity:1; transform:none; }

@media (prefers-reduced-motion: reduce){
  .rf-reveal{ transition:none; opacity:1; transform:none; }
  .rf-pulse{ animation:none; }
  .rf-gate{ transition:none; }
}

/* ------------------------------------------------------------- 8. CONTEÚDO */
.rf-unlock__lead{ font-size:var(--rf-fs-lead); }
.rf-unlock__terms{
  margin-top:14px;
  font-size:18px;
  color:var(--rf-text);
}
.rf-unlock__micro{
  font-size:var(--rf-fs-legal);
  color:var(--rf-text-muted);
}

/* pilha de entregáveis */
.rf-stack{ list-style:none; margin:0; padding:0; }
.rf-stack__item{
  padding:var(--rf-gap) 0;
  border-bottom:1px solid var(--rf-hairline);
}
.rf-stack__item:last-child{ border-bottom:0; }
.rf-stack__name{
  margin:0 0 8px;
  font-size:var(--rf-fs-h3);
  font-weight:700;
  color:var(--rf-accent);
  line-height:1.3;
}
.rf-stack__body{ margin:0; color:var(--rf-text); }

.rf-delivery{
  display:flex; gap:12px; align-items:flex-start;
  margin-top:var(--rf-gap);
  padding:18px;
  background:var(--rf-accent-soft);
  border:1px solid var(--rf-rule);
  border-radius:var(--rf-radius-sm);
  font-size:var(--rf-fs-lead);
}
.rf-delivery__check{ color:var(--rf-accent); font-size:22px; line-height:1.3; }

/* três passos */
.rf-step{
  padding:var(--rf-gap);
  margin-bottom:18px;
  background:var(--rf-card);
  border:1px solid var(--rf-hairline);
  border-left:3px solid var(--rf-accent-2);
  border-radius:var(--rf-radius-sm);
}
.rf-step__n{
  display:block;
  margin-bottom:6px;
  font-size:var(--rf-fs-legal);
  font-weight:700;
  letter-spacing:.12em;
  color:var(--rf-rose-400);
}
.rf-step__t{
  margin:0 0 8px;
  font-size:var(--rf-fs-h3);
  font-weight:700;
  color:var(--rf-accent);
}
.rf-closing{ font-size:var(--rf-fs-lead); font-weight:700; color:var(--rf-text-strong); }

/* lista numerada da condução */
.rf-ol{ margin:0; padding-left:26px; }
.rf-ol li{ margin-bottom:16px; padding-left:4px; }

/* caixas */
.rf-box{
  padding:var(--rf-gap);
  margin-block:var(--rf-gap);
  background:var(--rf-card);
  border:1px solid var(--rf-rule-strong);
  border-radius:var(--rf-radius);
}
.rf-box p:last-child{ margin-bottom:0; }
.rf-box--quiet{ border-color:var(--rf-hairline); background:var(--rf-surface); }

/* bloco da verdade */
.rf-not{ list-style:none; margin:0 0 var(--rf-gap); padding:0; }
.rf-not li{
  position:relative;
  padding-left:22px;
  margin-bottom:14px;
  max-width:40ch;
}
.rf-not li::before{
  content:"—";
  position:absolute; left:0;
  color:var(--rf-rose-400);
}

/* prova */
.rf-quote{
  margin:0 0 18px;
  padding:var(--rf-gap);
  background:var(--rf-card);
  border:1px solid var(--rf-hairline);
  border-radius:var(--rf-radius-sm);
}
.rf-quote__text{ margin:0 0 10px; font-size:var(--rf-fs-lead); color:var(--rf-text-strong); }
.rf-quote__who{ margin:0; font-size:var(--rf-fs-small); color:var(--rf-text-muted); }
.rf-quote__note{ margin:10px 0 0; font-size:var(--rf-fs-legal); color:var(--rf-text-muted); }

/* preço */
.rf-price{
  padding:var(--rf-gap-lg) var(--rf-gap);
  margin-block:var(--rf-gap);
  text-align:center;
  background:var(--rf-card);
  border:2px solid var(--rf-accent);
  border-radius:var(--rf-radius);
}
.rf-price__main{
  font-size:var(--rf-fs-price);
  font-weight:700;
  color:var(--rf-accent);
  line-height:1.2;
}
.rf-price__note{ margin:8px 0 0; font-size:18px; color:var(--rf-text); max-width:none; }
.rf-price__rule{ height:1px; margin:var(--rf-gap) 0; background:var(--rf-rule); border:0; }
.rf-price__alt{ font-size:var(--rf-fs-h3); font-weight:700; color:var(--rf-text-strong); }
.rf-price__fine{ margin:10px 0 0; font-size:var(--rf-fs-small); color:var(--rf-text-muted); max-width:none; }

/* garantia */
.rf-seal{
  width:120px; height:120px;
  margin:0 auto var(--rf-gap);
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:2px;
  border:3px solid var(--rf-accent);
  border-radius:50%;
  color:var(--rf-accent);
  text-align:center;
}
.rf-seal__n{ font-size:30px; font-weight:700; line-height:1; }
.rf-seal__t{ font-size:13px; font-weight:700; letter-spacing:.08em; }

/* FAQ */
.rf-faq{ border-top:1px solid var(--rf-hairline); }
.rf-faq details{ border-bottom:1px solid var(--rf-hairline); }
.rf-faq summary{
  display:flex; align-items:center; justify-content:space-between; gap:14px;
  min-height:var(--rf-tap-secondary);
  padding:16px 0;
  font-size:var(--rf-fs-lead);
  font-weight:700;
  color:var(--rf-text-strong);
  cursor:pointer;
  list-style:none;
}
.rf-faq summary::-webkit-details-marker{ display:none; }
.rf-faq summary::after{
  content:"+";
  flex:0 0 auto;
  font-size:26px; font-weight:400;
  color:var(--rf-accent);
}
.rf-faq details[open] summary::after{ content:"−"; }
.rf-faq__a{ padding-bottom:20px; }

/* ------------------------------------------------------------ 9. BARRA FIXA */
.rf-sticky{
  position:fixed;
  left:0; right:0; bottom:0;
  z-index:40;
  display:flex; align-items:center; gap:14px;
  min-height:var(--rf-sticky-h);
  padding:10px 16px calc(10px + env(safe-area-inset-bottom, 0px));
  background:rgba(13,5,9,.96);
  border-top:1px solid var(--rf-rule);
  backdrop-filter:blur(6px);
}
.rf-sticky__price{
  flex:1 1 auto;
  font-size:17px;
  color:var(--rf-text);
  line-height:1.3;
}
.rf-sticky__btn{ flex:0 0 auto; width:auto; min-height:var(--rf-tap-secondary); padding-inline:22px; font-size:19px; }
.rf-sticky__video{
  flex:0 0 auto;
  display:flex; align-items:center; justify-content:center;
  min-width:var(--rf-tap-secondary); min-height:var(--rf-tap-secondary);
  margin-left:2px;
  color:var(--rf-text-muted);
  font-size:var(--rf-fs-legal);
  text-decoration:none;
}

/* ---------------------------------------------------------------- 10. SAÍDA */
.rf-exit{
  position:fixed; inset:0; z-index:60;
  display:flex; align-items:center; justify-content:center;
  padding:20px;
  background:rgba(13,5,9,.92);
}
.rf-exit__card{
  width:100%; max-width:460px;
  padding:var(--rf-gap-lg) var(--rf-gap);
  background:var(--rf-card);
  border:1px solid var(--rf-rule-strong);
  border-radius:var(--rf-radius);
}
.rf-exit__close{
  display:flex; align-items:center; justify-content:center;
  width:var(--rf-tap-secondary); height:var(--rf-tap-secondary);
  margin:0 0 6px auto;
  background:transparent;
  border:1px solid var(--rf-hairline);
  border-radius:var(--rf-radius-sm);
  color:var(--rf-text-muted);
  font-family:inherit;
  font-size:var(--rf-fs-legal);
  cursor:pointer;
}

/* ====================================================== 11. ESTEIRA (pós-pago)
   Estas telas cobram DEPOIS de a pessoa já ter pagado. Aqui as regras invertem:
   - barra fixa de compra é PROIBIDA (botão que cobra sem o bloco de
     reconfirmação do lado é o desenho que produz "não reconheço a compra")
   - o botão que leva ao que ela JÁ comprou fica no topo de toda tela, com peso
     visual comparável ao botão que cobra
   - o botão de recusa tem o mesmo tamanho de alvo do de compra
   - zero relógio: sem countdown, sem "ao vivo", sem vagas, sem gate
   ============================================================================ */

/* barra de entrega persistente — teto fixo de TODA tela pós-pagamento */
.rf-delivered{
  position:sticky;
  top:0;
  z-index:30;
  padding:14px 16px calc(14px + env(safe-area-inset-top, 0px));
  background:var(--rf-plum-900);
  border-bottom:1px solid var(--rf-rule-strong);
}
.rf-delivered__btn{
  display:flex; align-items:center; justify-content:center;
  width:100%; min-height:56px;
  padding:12px 18px;
  border-radius:var(--rf-radius);
  background:linear-gradient(180deg, var(--rf-gold-300) 0%, var(--rf-gold-600) 100%);
  color:var(--rf-on-accent);
  font-size:20px; font-weight:700; line-height:1.2;
  text-align:center; text-decoration:none;
}
.rf-delivered__note{
  margin:10px 0 0;
  font-size:18px;
  color:var(--rf-text);
  text-align:center;
  max-width:none;
}

/* passo de ativação — vem ACIMA da oferta, sempre */
.rf-stepbar{
  display:flex; align-items:center; gap:10px;
  margin-bottom:var(--rf-gap-sm);
  font-size:var(--rf-fs-legal);
  font-weight:700;
  letter-spacing:.1em;
  color:var(--rf-rose-400);
}
.rf-stepbar__track{
  flex:1 1 auto; height:4px;
  background:var(--rf-plum-700);
  border-radius:2px;
  overflow:hidden;
}
.rf-stepbar__fill{ display:block; height:100%; background:var(--rf-accent-2); }

/* bloco de reconfirmação — colado ao botão, em TODO ponto de cobrança */
.rf-confirm{
  padding:18px;
  margin-block:var(--rf-gap);
  background:var(--rf-card-raised);
  border:1px solid var(--rf-rule);
  border-radius:var(--rf-radius-sm);
  font-size:18px;
}
.rf-confirm p{ max-width:none; }
.rf-confirm p:last-child{ margin-bottom:0; }

/* recusa: mesmo alvo do botão que cobra, e diz o que ela GANHA ao tocar */
.rf-decline{
  display:flex; align-items:center; justify-content:center;
  width:100%; min-height:var(--rf-tap-secondary);
  margin-top:18px; padding:14px 18px;
  background:transparent;
  border:2px solid var(--rf-plum-600);
  border-radius:var(--rf-radius);
  color:var(--rf-text);
  font-family:inherit; font-size:var(--rf-fs-lead); font-weight:700;
  text-align:center; text-decoration:none;
  cursor:pointer;
}

/* recibo em papel — contraste alto, cara de documento, não de anúncio */
.rf-receipt{
  padding:var(--rf-gap);
  margin-block:var(--rf-gap);
  background:var(--rf-paper);
  color:var(--rf-paper-ink);
  border-radius:var(--rf-radius);
  font-size:18px;
}
.rf-receipt h2,.rf-receipt h3{ color:var(--rf-paper-ink); }
.rf-receipt p{ color:var(--rf-paper-ink); max-width:none; }
.rf-receipt__line{
  display:flex; justify-content:space-between; gap:14px;
  padding:12px 0;
  border-bottom:1px solid var(--rf-paper-rule);
}
.rf-receipt__line:last-of-type{ border-bottom:0; }
.rf-receipt__muted{ color:var(--rf-paper-muted); font-size:var(--rf-fs-legal); }

/* --------------------------------------------------------------- 12. RODAPÉ */
.rf-footer{
  padding-block:var(--rf-gap-lg);
  background:var(--rf-plum-950);
  border-top:1px solid var(--rf-rule);
  font-size:var(--rf-fs-legal);
  color:var(--rf-text-muted);
}
.rf-footer p{ max-width:none; margin-bottom:12px; }
.rf-footer a{ color:var(--rf-text-muted); }

/* --------------------------------------------------------------- 12. DESKTOP */
/* desktop é fallback, não referência: a coluna só respira um pouco */
@media (min-width:760px){
  :root{
    --rf-fs-h1:34px;
    --rf-fs-h2:30px;
    --rf-fs-price:38px;
    --rf-section-y:68px;
  }
  .rf-wrap{ padding-inline:24px; }
}

/* modo de revisão sem vídeo: ?ver=vendas */
html.rf-preview .rf-gate{ display:none; }

/* valor de cada item da pilha — âncora crível, ao lado do nome */
.rf-stack__val{
  display:inline-block;
  margin-left:8px;
  padding:2px 8px;
  border:1px solid var(--rf-rule);
  border-radius:999px;
  color:var(--rf-text-muted);
  font-size:15px;
  font-weight:400;
  white-space:nowrap;
  vertical-align:2px;
}

/* telas baixas (notebook): encolhe junto, nada de rolar para ver o vídeo */
@media (min-width:900px) and (max-height:760px){
  .rf-gate__inner{ --rf-live-h: 56vh; }
  .rf-gate__title{ font-size:26px; }
}

/* ------------------------------------------------------------ BOTÃO DA LIVE
   Nasce no segundo em que a Dani fala o preço. Verde porque precisa se separar
   de tudo que já existe na tela — o dourado está nas pílulas do topo e no
   enviar do chat. */
.rf-buy{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:3px;
  width:calc(100% - 24px);
  max-width:520px;
  margin:10px auto 0;
  padding:14px 20px;
  border-radius:14px;
  background:linear-gradient(180deg, #3ddc7f 0%, #16a34a 100%);
  box-shadow:0 6px 0 #0f7a37, 0 10px 26px rgba(0,0,0,.5);
  color:#08240f;
  text-align:center;
  text-decoration:none;
  animation:rf-buy-in .5s ease-out;
}
.rf-buy:active{ transform:translateY(3px); box-shadow:0 3px 0 #0f7a37; }
.rf-buy__main{ font-size:20px; font-weight:800; line-height:1.15; letter-spacing:.01em; }
.rf-buy__sub{ font-size:15px; font-weight:600; opacity:.85; }

@keyframes rf-buy-in{
  from{ opacity:0; transform:translateY(16px) scale(.97); }
  to  { opacity:1; transform:none; }
}

/* pulso curto para ela perceber que apareceu, e para */
@keyframes rf-buy-pulse{
  0%,100%{ box-shadow:0 6px 0 #0f7a37, 0 10px 26px rgba(0,0,0,.5); }
  50%    { box-shadow:0 6px 0 #0f7a37, 0 10px 26px rgba(0,0,0,.5), 0 0 0 12px rgba(61,220,127,.18); }
}
.rf-buy.is-new{ animation:rf-buy-in .5s ease-out, rf-buy-pulse 1.8s ease-in-out 3 .5s; }

@media (min-width:900px){
  .rf-buy{
    position:absolute;
    left:50%; bottom:26px;
    transform:translateX(-50%);
    width:auto; min-width:420px;
    margin:0;
    z-index:7;
  }
  .rf-buy:active{ transform:translateX(-50%) translateY(3px); }
}

@media (prefers-reduced-motion: reduce){
  .rf-buy, .rf-buy.is-new{ animation:none; }
}
