/* ==========================================================================
   BBR · Funil de Aplicação — base
   Tokens, fontes e primitivos compartilhados pelas 3 etapas do funil.
   ========================================================================== */

/* --- Fontes (self-hosted, woff2) ---------------------------------------- */
@font-face{font-family:'General Sans';src:url('../fonts/GeneralSans-Regular.woff2') format('woff2');font-weight:300 400;font-style:normal;font-display:swap}
@font-face{font-family:'General Sans';src:url('../fonts/GeneralSans-Semibold.woff2') format('woff2');font-weight:500 700;font-style:normal;font-display:swap}
@font-face{font-family:'Sora';src:url('../fonts/Sora-latin.woff2') format('woff2');font-weight:100 800;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Sora';src:url('../fonts/Sora-latin-ext.woff2') format('woff2');font-weight:100 800;font-style:normal;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'DM Sans';src:url('../fonts/DMSans-latin.woff2') format('woff2');font-weight:100 1000;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'DM Sans';src:url('../fonts/DMSans-latin-ext.woff2') format('woff2');font-weight:100 1000;font-style:normal;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}

/* --- Tokens -------------------------------------------------------------- */
:root{
  /* dourados da marca */
  --gold:#B0A473;
  --gold-2:#C0A535;
  --gold-deep:#8F855E;
  --gold-dark:#AE8644;
  --gold-light:#EDC989;
  --gold-soft:#EBD1A3;
  --gold-sand:#DBBE8C;
  --gold-cream:#FFE8BF;
  --gold-amber:#FFDFAD;
  --gold-bronze:#A27F48;
  --gold-accent:#CDAA71;

  /* neutros */
  --ink:#010101;
  --bg:#141414;
  --bg-2:#111111;
  --bg-3:#212121;
  --surface:#2C2C2C;
  --line:#363636;
  --line-2:#4E4E4E;
  --text:#FFFFFF;
  --text-2:#E4E5DE;
  --text-3:#D5D5D5;
  --text-muted:#888888;

  /* tipografia */
  --f-display:'General Sans',system-ui,-apple-system,'Segoe UI',sans-serif;
  --f-head:'Sora',system-ui,-apple-system,'Segoe UI',sans-serif;
  --f-body:'DM Sans',system-ui,-apple-system,'Segoe UI',sans-serif;

  /* layout */
  --wrap:1200px;
  --wrap-narrow:800px;
  --radius:4px;
  --radius-lg:20px;

  /* gradientes recorrentes */
  --grad-gold:linear-gradient(90deg,var(--gold-light) 21.63%,#C9A171 100%);
  --grad-gold-2:linear-gradient(90deg,var(--gold-soft) 0%,var(--gold-sand) 100%);
  --grad-gold-4:linear-gradient(90deg,var(--gold-cream) 0%,var(--gold-soft) 32.69%,var(--gold-sand) 67.31%,var(--gold-bronze) 100%);
  --grad-rule:linear-gradient(90deg,var(--gold-amber) 0%,var(--gold-dark) 100%);
}

/* --- Reset --------------------------------------------------------------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:var(--f-body);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
h1,h2,h3,h4,p{margin:0;text-wrap:pretty}
h1,h2,h3,h4{font-family:var(--f-head);font-weight:500;line-height:1.25;text-wrap:balance}
img,video{max-width:100%;height:auto;display:block}
a{color:inherit}
button{font:inherit;color:inherit;cursor:pointer}
:where(a,button,input,textarea,[tabindex]):focus-visible{outline:2px solid var(--gold);outline-offset:3px}

/* --- Utilitários de texto (herdados do CSS atual do Elementor) ----------- */
.degrade{background:var(--grad-gold);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.degrade2{background:var(--grad-gold-2);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.degrade4{background:var(--grad-gold-4);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.destaque{color:var(--gold-accent);font-weight:500}
.wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:20px}
.wrap-narrow{max-width:var(--wrap-narrow)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* O atributo hidden precisa ganhar de qualquer display de componente
   (.btn é inline-flex e, sem isto, um botão marcado como hidden continua na tela). */
[hidden]{display:none!important}

/* --- Botão dourado ------------------------------------------------------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.6em;
  font-family:var(--f-head);font-weight:700;letter-spacing:.03em;text-align:center;
  text-decoration:none;border:0;border-radius:var(--radius);
  padding:1.15rem 2rem;
  background:linear-gradient(90deg,var(--gold) 0%,var(--gold-2) 100%);
  color:#141414;
  box-shadow:0 6px 22px rgba(176,164,115,.28);
  transition:transform .18s ease,box-shadow .18s ease,filter .18s ease;
}
.btn:hover{transform:translateY(-2px);filter:brightness(1.06);box-shadow:0 10px 30px rgba(176,164,115,.42)}
.btn:active{transform:translateY(0) scale(.99)}
.btn[disabled],.btn[aria-busy="true"]{opacity:.6;pointer-events:none}
.btn--block{width:100%}

/* --- Overlay de carregamento -------------------------------------------- */
.overlay{
  position:fixed;inset:0;z-index:9999;
  display:none;align-items:center;justify-content:center;flex-direction:column;
  background:rgba(20,20,20,.94);backdrop-filter:blur(2px);
  font-family:var(--f-head);text-align:center;padding:24px;
}
.overlay[data-open]{display:flex}
.overlay__spinner{
  width:52px;height:52px;border-radius:50%;
  border:4px solid rgba(255,255,255,.12);border-top-color:var(--gold);
  animation:bbr-spin 1s linear infinite;
}
.overlay__title{margin-top:18px;font-size:18px;font-weight:600}
.overlay__hint{margin-top:8px;font-size:14px;opacity:.75;font-family:var(--f-body)}
@keyframes bbr-spin{to{transform:rotate(360deg)}}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  html{scroll-behavior:auto}
}
