/* ============================================================
   +PROMO — Estilos Globais (style.css)
   Importado em todas as páginas do site.
   ATENÇÃO: NÃO colocar estilos aqui dentro do HTML.
            O <style> inline do index.html foi removido
            e estas classes foram adicionadas abaixo.
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700;800;900&family=Nunito+Sans:wght@300;400;500;600;700&display=swap');

/* ── Variáveis de cor ── */
:root {
  --yellow:     #F7C500;
  --yellow-d:   #E0B000;
  --yellow-bg:  #FFFBE6;
  --black:      #1A1A1A;
  --gray-700:   #3D3D3D;
  --gray-600:   #4D4D4D;
  --gray-500:   #666666;
  --gray-400:   #888888;
  --gray-300:   #B0B0B0;
  --gray-200:   #D6D6D6;
  --gray-100:   #F2F2F2;
  --gray-50:    #F9F9F9;
  --white:      #FFFFFF;
  --green:      #18B96A;
  --green-bg:   #E6F9F1;
  --red:        #E53935;
  --shadow-sm:  0 2px 8px rgba(0,0,0,0.07);
  --shadow-md:  0 4px 24px rgba(0,0,0,0.10);
  --shadow-lg:  0 8px 40px rgba(0,0,0,0.13);
  --radius:     12px;
  --radius-lg:  20px;
  --radius-pill:50px;
}

/* ── Reset ── */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior: smooth; }
body { font-family:'Nunito Sans',sans-serif; background:var(--gray-50); color:var(--black); line-height:1.5; }
a { text-decoration:none; color:inherit; }
button { cursor:pointer; font-family:'Nunito',sans-serif; }
input, select { font-family:'Nunito Sans',sans-serif; }
img { max-width:100%; display:block; }

/* ── Utilitários ── */
.container { max-width:1200px; margin:0 auto; padding:0 24px; }
.text-center { text-align:center; }
.hidden { display:none !important; }

/* ── Tipografia ── */
.eyebrow {
  font-family:'Nunito',sans-serif;
  font-size:11px; font-weight:800;
  letter-spacing:2.5px; text-transform:uppercase;
  color:var(--yellow-d); margin-bottom:8px;
  display:block;
}
h1, .title-xl {
  font-family:'Nunito',sans-serif;
  font-size:clamp(36px, 5vw, 52px); font-weight:900;
  line-height:1.06; letter-spacing:-1.5px; color:var(--black);
}
h1 em, .title-xl em { font-style:normal; color:var(--yellow-d); }
h2, .title-lg {
  font-family:'Nunito',sans-serif;
  font-size:clamp(26px, 3.5vw, 36px); font-weight:900;
  line-height:1.1; letter-spacing:-0.8px; color:var(--black);
}
h3, .title-md {
  font-family:'Nunito',sans-serif;
  font-size:20px; font-weight:800; color:var(--black);
}
.subtitle { font-size:17px; color:var(--gray-500); font-weight:400; line-height:1.65; margin-top:12px; }

/* ── Botões ── */
.btn {
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:10px 24px; border-radius:var(--radius-pill); border:none;
  font-family:'Nunito',sans-serif; font-size:15px; font-weight:700;
  cursor:pointer; transition:all .18s ease; white-space:nowrap;
}
.btn-sm   { padding:7px 18px; font-size:13px; }
.btn-lg   { padding:14px 32px; font-size:16px; }
.btn-full { width:100%; }

.btn-yellow       { background:var(--yellow); color:var(--black); }
.btn-yellow:hover { background:var(--yellow-d); transform:translateY(-1px); box-shadow:0 4px 16px rgba(247,197,0,0.4); }

.btn-black        { background:var(--black); color:var(--white); }
.btn-black:hover  { background:var(--gray-700); }

.btn-outline      { background:transparent; color:var(--black); border:2px solid var(--black); }
.btn-outline:hover{ background:var(--black); color:var(--white); }

.btn-ghost        { background:transparent; color:var(--gray-500); border:2px solid var(--gray-200); }
.btn-ghost:hover  { border-color:var(--gray-400); color:var(--black); }

.btn-danger       { background:var(--red); color:var(--white); }

/* ── Cards ── */
.card {
  background:var(--white); border-radius:var(--radius-lg);
  border:1.5px solid var(--gray-100); box-shadow:var(--shadow-sm);
}
.card-pad { padding:28px; }

/* ── Formulário ── */
.form-group { margin-bottom:16px; }
.form-label {
  display:block; font-size:11px; font-weight:800;
  color:var(--gray-400); letter-spacing:1px; text-transform:uppercase; margin-bottom:6px;
}
.form-input, .form-select {
  width:100%; padding:12px 16px;
  background:var(--gray-50); border:1.5px solid var(--gray-200);
  border-radius:var(--radius); font-size:14px; color:var(--black);
  outline:none; transition:border-color .15s, background .15s;
}
.form-input:focus, .form-select:focus {
  border-color:var(--yellow); background:var(--yellow-bg);
}
.form-input.error { border-color:var(--red); background:#fff5f5; }
.form-row   { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.form-error { font-size:12px; color:var(--red); margin-top:4px; font-weight:600; }

/* ── Tags / Badges ── */
.badge {
  display:inline-flex; align-items:center; gap:5px;
  padding:4px 12px; border-radius:var(--radius-pill);
  font-family:'Nunito',sans-serif; font-size:12px; font-weight:800;
}
.badge-yellow { background:var(--yellow); color:var(--black); }
.badge-black  { background:var(--black);  color:var(--white); }
.badge-green  { background:var(--green-bg); color:var(--green); }
.badge-gray   { background:var(--gray-100); color:var(--gray-500); }

/* ── Navbar ── */
.navbar {
  display:flex; align-items:center; gap:0;
  height:64px; padding:0 40px;
  background:var(--white); border-bottom:1px solid var(--gray-100);
  position:sticky; top:0; z-index:100;
  box-shadow:var(--shadow-sm);
}
.navbar-brand {
  font-family:'Nunito',sans-serif; font-size:22px; font-weight:900;
  color:var(--black); display:flex; align-items:center; gap:9px;
}
.navbar-brand .mark {
  width:32px; height:32px; background:var(--yellow); border-radius:8px;
  display:flex; align-items:center; justify-content:center;
  font-size:15px; font-weight:900; color:var(--black);
}
.navbar-brand span { color:var(--yellow-d); }
.navbar-links {
  display:flex; gap:28px; margin-left:40px; list-style:none;
}
.navbar-links a {
  font-size:14px; font-weight:600; color:var(--gray-500);
  transition:color .15s; padding:4px 0;
  border-bottom:2px solid transparent;
}
.navbar-links a:hover, .navbar-links a.active {
  color:var(--black); border-bottom-color:var(--yellow);
}
.navbar-right { margin-left:auto; display:flex; align-items:center; gap:10px; }

/* Lacre de segurança na navbar */
.nav-seal {
  display:flex; align-items:center; gap:5px;
  font-size:12px; font-weight:700; color:var(--gray-500);
  border-left:1px solid var(--gray-200); padding-left:14px; margin-left:4px;
}
.nav-seal svg { color:var(--green); }

/* Avatar do usuário na navbar */
.nav-avatar {
  width:34px; height:34px; border-radius:50%;
  background:var(--yellow); color:var(--black);
  font-family:'Nunito',sans-serif; font-size:13px; font-weight:900;
  display:flex; align-items:center; justify-content:center;
  cursor:pointer; flex-shrink:0;
}

/* ── Toast Notifications ── */
#toast-container {
  position:fixed; bottom:24px; right:24px; z-index:9999;
  display:flex; flex-direction:column; gap:10px;
}
.toast {
  display:flex; align-items:center; gap:12px;
  padding:14px 20px; border-radius:12px;
  background:var(--black); color:var(--white);
  font-size:14px; font-weight:600;
  box-shadow:0 8px 32px rgba(0,0,0,0.25);
  animation: toastIn .3s ease;
  min-width:280px;
}
.toast.success { background:#18B96A; }
.toast.error   { background:var(--red); }
.toast.warning { background:var(--yellow); color:var(--black); }
@keyframes toastIn {
  from { opacity:0; transform:translateY(12px); }
  to   { opacity:1; transform:translateY(0); }
}

/* ── Loading spinner ── */
.spinner {
  width:20px; height:20px; border:3px solid rgba(0,0,0,0.1);
  border-top-color:var(--yellow); border-radius:50%;
  animation:spin .7s linear infinite; display:inline-block;
}
@keyframes spin { to { transform:rotate(360deg); } }

/* ── Page loader overlay ── */
#page-loader {
  position:fixed; inset:0; background:var(--white);
  display:flex; align-items:center; justify-content:center;
  z-index:9998; transition:opacity .3s;
}
#page-loader.hide { opacity:0; pointer-events:none; }
.loader-brand {
  font-family:'Nunito',sans-serif; font-size:28px; font-weight:900;
  color:var(--black); display:flex; align-items:center; gap:10px;
}
.loader-brand .mark {
  width:40px; height:40px; background:var(--yellow); border-radius:10px;
  display:flex; align-items:center; justify-content:center;
  font-size:20px; font-weight:900;
}
.loader-brand span { color:var(--yellow-d); }


/* ============================================================
   ESTILOS DA LANDING PAGE (index.html)
   ============================================================ */

/* ── HERO ── */
.hero {
  background:var(--yellow-bg);
  padding:68px 0 0;
  overflow:hidden;
  border-bottom:2px solid #F0E080;
  position:relative;
}
.hero-inner { display:grid; grid-template-columns:1fr 400px; gap:56px; align-items:flex-end; }
.hero-left  { padding-bottom:68px; }
.hero-hook  {
  display:inline-flex; align-items:center; gap:8px;
  background:var(--white); border:1.5px solid var(--gray-200);
  border-radius:var(--radius-pill); padding:6px 14px;
  font-size:13px; font-weight:700; color:var(--black);
  margin-bottom:22px; box-shadow:var(--shadow-sm);
}
.hero-hook .dot { width:8px; height:8px; background:var(--green); border-radius:50%; flex-shrink:0; animation: dotPulse 2s ease-in-out infinite; }
@keyframes dotPulse {
  0%, 100% { opacity:1; transform:scale(1); }
  50%       { opacity:0.6; transform:scale(1.3); }
}
.hero h1     { font-family:'Nunito',sans-serif; font-size:clamp(34px,4.5vw,50px); font-weight:900; line-height:1.08; letter-spacing:-1.5px; color:var(--black); margin-bottom:18px; }
.hero h1 em  { font-style:normal; color:var(--yellow-d); }
.hero h1 u   { text-decoration:none; border-bottom:3px solid var(--yellow); }
.hero-sub    { font-size:17px; color:var(--gray-600); line-height:1.65; max-width:480px; margin-bottom:30px; }
.hero-actions    { display:flex; gap:12px; flex-wrap:wrap; margin-bottom:36px; }
.hero-trust      { display:flex; align-items:center; gap:10px; font-size:13px; color:var(--gray-500); font-weight:600; margin-bottom:0; }
.hero-trust-sep  { width:4px; height:4px; background:var(--gray-300); border-radius:50%; }
.trust-item      { display:flex; align-items:center; gap:5px; }
.hero-stats      { display:flex; gap:28px; padding-top:28px; border-top:1px solid rgba(0,0,0,.08); margin-top:28px; }
.stat-num        { font-family:'Nunito',sans-serif; font-size:26px; font-weight:900; color:var(--black); }
.stat-lbl        { font-size:12px; color:var(--gray-500); margin-top:1px; }
.stat-sep        { width:1px; background:var(--gray-200); align-self:stretch; }

.hero-card-wrap  { position:relative; display:flex; justify-content:center; align-self:flex-end; transform-style:preserve-3d; will-change:transform; }
.hero-card       {
  background:var(--white); width:330px; border-radius:20px 20px 0 0;
  border:1.5px solid var(--gray-200); border-bottom:none;
  padding:26px; box-shadow:0 -8px 48px rgba(0,0,0,.11);
  animation: heroCardFloat 4s ease-in-out infinite;
}
.hcard-top       { display:flex; align-items:center; justify-content:space-between; margin-bottom:16px; }
.hcard-label     { font-family:'Nunito',sans-serif; font-size:11px; font-weight:800; color:var(--gray-400); letter-spacing:1.5px; text-transform:uppercase; }
.hcard-cashback  { background:var(--yellow-bg); border:1.5px dashed var(--yellow); border-radius:12px; padding:14px; text-align:center; margin-bottom:16px; }
.cash-big        { font-family:'Nunito',sans-serif; font-size:40px; font-weight:900; color:var(--black); line-height:1; }
.cash-big em     { font-style:normal; color:var(--green); }
.cash-caption    { font-size:12px; color:var(--gray-500); margin-top:4px; display:flex; align-items:center; justify-content:center; gap:4px; }
.hcard-row       { display:flex; align-items:center; gap:10px; padding:8px 0; border-bottom:1px solid var(--gray-100); }
.hcard-row:last-child { border-bottom:none; }
.hrow-icon       { width:32px; height:32px; border-radius:8px; background:var(--gray-100); display:flex; align-items:center; justify-content:center; flex-shrink:0; color:var(--gray-500); }
.hrow-name       { font-size:13px; font-weight:700; color:var(--black); }
.hrow-detail     { font-size:11px; color:var(--gray-400); margin-top:1px; }
.hrow-val        { margin-left:auto; font-family:'Nunito',sans-serif; font-size:13px; font-weight:800; color:var(--green); }

.float-chip      { position:absolute; background:var(--white); border-radius:var(--radius-pill); padding:8px 14px; box-shadow:0 4px 16px rgba(0,0,0,.13); border:1px solid var(--gray-100); font-size:12px; font-weight:700; color:var(--black); white-space:nowrap; display:flex; align-items:center; gap:6px; }
.chip-1          { top:14px; right:-20px; }
.chip-2          { top:90px; left:-30px; }
.chip-yellow     { background:var(--yellow); border-color:var(--yellow); }

/* ── BARRA DE PARCEIROS ── */
.partners-bar {
  background:var(--white);
  border-bottom:1px solid var(--gray-100);
  padding:14px 0;
  display:flex;
  align-items:center;
  overflow:hidden;
}
.partners-bar-label-fixed {
  font-size:12px; font-weight:800; color:var(--gray-400);
  letter-spacing:1px; text-transform:uppercase;
  white-space:nowrap; padding: 0 20px 0 24px;
  border-right:1px solid var(--gray-200);
  flex-shrink:0;
}
.marquee-viewport {
  flex:1; overflow:hidden; position:relative;
  /* Fade edges */
  mask-image: linear-gradient(to right, transparent 0%, black 5%, black 95%, transparent 100%);
  -webkit-mask-image: linear-gradient(to right, transparent 0%, black 5%, black 95%, transparent 100%);
}
.marquee-track {
  display:flex; gap:10px; align-items:center;
  width:max-content;
  animation: marqueeScroll 28s linear infinite;
}
.marquee-track:hover { animation-play-state:paused; }
.p-logo-pill {
  display:flex; align-items:center; gap:7px;
  padding:7px 16px; border-radius:var(--radius-pill);
  background:var(--gray-50); border:1.5px solid var(--gray-100);
  font-size:13px; font-weight:800; color:var(--black);
  white-space:nowrap; flex-shrink:0;
  color:var(--gray-600);
  transition:background .15s, border-color .15s, color .15s;
}
.p-logo-pill:hover { background:var(--yellow-bg); border-color:var(--yellow); color:var(--black); }
.p-logo-pill svg { color:var(--yellow-d); flex-shrink:0; }
.p-logo-more { background:transparent; border-color:transparent; }
.p-logo-more:hover { background:transparent; border-color:transparent; }

/* ── DOR + SOLUÇÃO ── */
.pain-section    { background:var(--black); padding:72px 0; }
.pain-inner      { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; }
.pain-eyebrow    { font-family:'Nunito',sans-serif; font-size:11px; font-weight:800; letter-spacing:2px; text-transform:uppercase; color:var(--yellow); margin-bottom:14px; display:block; }
.pain-title      { font-family:'Nunito',sans-serif; font-size:clamp(26px,3vw,36px); font-weight:900; color:var(--white); line-height:1.2; letter-spacing:-0.8px; margin-bottom:20px; }
.pain-title em   { font-style:normal; color:var(--yellow); }
.pain-desc       { font-size:16px; color:#999; line-height:1.7; }
.pain-list       { margin-top:28px; display:flex; flex-direction:column; gap:12px; }
.pain-item       { display:flex; align-items:flex-start; gap:12px; font-size:15px; color:#ccc; line-height:1.5; }
.pain-item .icon { flex-shrink:0; margin-top:1px; }
.solution-box    { background:var(--yellow); border-radius:20px; padding:32px; }
.solution-box h3 { font-family:'Nunito',sans-serif; font-size:22px; font-weight:900; color:var(--black); margin-bottom:20px; line-height:1.2; }
.solution-item   { display:flex; align-items:flex-start; gap:12px; margin-bottom:16px; font-size:15px; color:var(--black); font-weight:600; line-height:1.5; }
.solution-item:last-child { margin-bottom:0; }
.sol-check       { width:24px; height:24px; background:var(--black); border-radius:50%; display:flex; align-items:center; justify-content:center; color:var(--yellow); font-size:11px; font-weight:900; flex-shrink:0; margin-top:1px; }

/* ── COMO FUNCIONA ── */
.how         { background:var(--white); padding:72px 0; }
.how-header  { text-align:center; margin-bottom:52px; }
.steps       { display:grid; grid-template-columns:repeat(4,1fr); gap:0; position:relative; }
.steps::before { content:''; position:absolute; top:26px; left:calc(12.5% + 18px); right:calc(12.5% + 18px); height:2px; background:repeating-linear-gradient(90deg,var(--yellow) 0,var(--yellow) 8px,transparent 8px,transparent 18px); }
.step        { text-align:center; padding:0 16px; position:relative; z-index:1; }
.step-n      { width:52px; height:52px; border-radius:50%; background:var(--yellow); border:4px solid var(--white); box-shadow:0 0 0 2px var(--yellow); font-family:'Nunito',sans-serif; font-size:20px; font-weight:900; color:var(--black); display:flex; align-items:center; justify-content:center; margin:0 auto 16px; }
.step-title  { font-family:'Nunito',sans-serif; font-size:15px; font-weight:800; color:var(--black); margin-bottom:8px; }
.step-desc   { font-size:13px; color:var(--gray-500); line-height:1.6; }
.step-time   { font-size:11px; font-weight:700; color:var(--yellow-d); margin-top:8px; display:flex; align-items:center; justify-content:center; gap:4px; }

/* ── CALCULADORA ── */
.calculator      { background:var(--gray-50); padding:72px 0; border-top:1px solid var(--gray-200); border-bottom:1px solid var(--gray-200); }
.calc-inner      { display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:start; }
.calc-left h2    { margin-top:8px; margin-bottom:10px; }
.calc-left p     { font-size:15px; color:var(--gray-500); line-height:1.65; margin-bottom:28px; }
.calc-field      { margin-bottom:20px; }
.calc-label      { display:flex; justify-content:space-between; align-items:center; font-size:14px; font-weight:700; color:var(--black); margin-bottom:8px; }
.calc-val-tag    { background:var(--yellow); color:var(--black); font-family:'Nunito',sans-serif; font-size:13px; font-weight:800; border-radius:6px; padding:2px 9px; }
.calc-slider     { width:100%; accent-color:var(--yellow); height:6px; cursor:pointer; }
.calc-result     { background:var(--yellow); border-radius:20px; padding:32px; position:sticky; top:88px; }
.calc-result h3  { font-family:'Nunito',sans-serif; font-size:16px; font-weight:800; color:var(--black); margin-bottom:20px; display:flex; align-items:center; gap:6px; }
.calc-big        { font-family:'Nunito',sans-serif; font-size:52px; font-weight:900; color:var(--black); line-height:1; }
.calc-big-sub    { font-size:14px; color:rgba(0,0,0,.55); margin-bottom:24px; margin-top:4px; }
.calc-row        { display:flex; justify-content:space-between; padding:8px 0; border-bottom:1px solid rgba(0,0,0,.08); font-size:14px; font-weight:600; color:var(--black); }
.calc-row:last-child { border-bottom:none; }
.calc-row-val    { font-family:'Nunito',sans-serif; font-weight:800; }
.calc-anual      { background:rgba(0,0,0,.07); border-radius:10px; padding:14px 16px; margin-top:18px; text-align:center; }
.calc-anual-label{ font-size:12px; font-weight:700; color:rgba(0,0,0,.5); margin-bottom:4px; display:flex; align-items:center; justify-content:center; gap:5px; }
.calc-anual-val  { font-family:'Nunito',sans-serif; font-size:26px; font-weight:900; color:var(--black); }

/* ── OBJEÇÕES ── */
.objections    { background:var(--white); padding:72px 0; }
.obj-grid      { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:44px; }
.obj-card      { padding:28px; border-radius:16px; border:1.5px solid var(--gray-100); background:var(--gray-50); transition:border-color .2s, transform .2s, box-shadow .2s; }
.obj-card:hover { border-color:var(--yellow); transform:translateY(-3px); box-shadow:0 6px 24px rgba(247,197,0,.15); }
.obj-q         { font-family:'Nunito',sans-serif; font-size:16px; font-weight:800; color:var(--black); margin-bottom:10px; line-height:1.3; }
.obj-q::before { content:'\201C'; color:var(--yellow-d); font-size:24px; font-weight:900; line-height:0; vertical-align:-6px; margin-right:3px; }
.obj-q::after  { content:'\201D'; color:var(--yellow-d); font-size:24px; font-weight:900; line-height:0; vertical-align:-6px; margin-left:3px; }
.obj-a         { font-size:14px; color:var(--gray-600); line-height:1.65; }
.obj-a strong  { color:var(--black); font-weight:700; }

/* ── PLANOS ── */
.plans           { background:var(--gray-50); padding:72px 0; }
.plans-header    { text-align:center; margin-bottom:44px; }
.plans-grid      { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; align-items:start; }
.plan-card       { background:var(--white); border-radius:20px; padding:30px 26px; border:2px solid var(--gray-100); position:relative; transition:box-shadow .2s, transform .2s; }
.plan-card:hover { box-shadow:var(--shadow-md); }
.plan-card.featured { border-color:var(--yellow); transform:scale(1.04); z-index:2; box-shadow:0 8px 40px rgba(247,197,0,.22); }
.plan-ribbon     { position:absolute; top:-13px; left:50%; transform:translateX(-50%); background:var(--yellow); color:var(--black); font-family:'Nunito',sans-serif; font-size:10px; font-weight:900; letter-spacing:1px; text-transform:uppercase; padding:5px 16px; border-radius:var(--radius-pill); white-space:nowrap; display:flex; align-items:center; gap:5px; }
.plan-tag        { font-family:'Nunito',sans-serif; font-size:11px; font-weight:800; color:var(--gray-400); letter-spacing:2px; text-transform:uppercase; margin-bottom:12px; margin-top:4px; }
.plan-price-row  { display:flex; align-items:baseline; gap:2px; }
.pp-cur          { font-size:17px; font-weight:700; color:var(--gray-500); }
.pp-val          { font-family:'Nunito',sans-serif; font-size:50px; font-weight:900; color:var(--black); line-height:1; }
.pp-cts          { font-size:20px; font-weight:700; color:var(--black); align-self:flex-end; padding-bottom:5px; }
.pp-period       { font-size:13px; color:var(--gray-400); margin:4px 0 18px; }
.plan-sep        { height:1px; background:var(--gray-100); margin:16px 0; }
.plan-feat       { display:flex; align-items:flex-start; gap:9px; margin-bottom:10px; font-size:14px; color:var(--black); font-weight:500; }
.fc              { width:20px; height:20px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:10px; flex-shrink:0; margin-top:1px; }
.fc-y            { background:var(--green-bg); color:var(--green); }
.fc-n            { background:var(--gray-100); color:var(--gray-300); }
.plan-feat.off   { color:var(--gray-300); }
.plan-cta        { margin-top:20px; }
.guarantee       { display:flex; align-items:center; gap:16px; background:var(--yellow-bg); border:1.5px dashed var(--yellow); border-radius:14px; padding:18px 24px; margin-top:28px; }
.guarantee-icon  { flex-shrink:0; display:flex; }
.guarantee-text  { font-size:14px; color:var(--gray-600); line-height:1.6; }
.guarantee-text strong { color:var(--black); }

/* ── DEPOIMENTOS ── */
.testimonials  { background:var(--white); padding:72px 0; }
.testi-header  { text-align:center; margin-bottom:44px; }
.testi-grid    { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.testi-card    { background:var(--gray-50); border-radius:16px; padding:24px; border:1.5px solid var(--gray-100); transition:transform .2s, box-shadow .2s; }
.testi-card:hover { transform:translateY(-4px); box-shadow:var(--shadow-md); }
.testi-stars   { color:var(--yellow); font-size:15px; margin-bottom:12px; }
.testi-text    { font-size:15px; color:var(--black); line-height:1.65; margin-bottom:18px; font-style:italic; }
.testi-text mark { background:var(--yellow-bg); color:var(--black); font-style:normal; font-weight:800; padding:1px 4px; border-radius:4px; }
.testi-foot    { display:flex; align-items:center; gap:12px; }
.testi-avatar  { width:38px; height:38px; border-radius:50%; background:var(--yellow); color:var(--black); font-family:'Nunito',sans-serif; font-size:14px; font-weight:900; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.testi-name    { font-size:14px; font-weight:700; color:var(--black); }
.testi-meta    { font-size:12px; color:var(--gray-400); margin-top:2px; display:flex; align-items:center; gap:4px; }

/* ── CTA FINAL ── */
.cta-final      { background:var(--yellow); padding:72px 0; text-align:center; }
.cta-final h2   { font-family:'Nunito',sans-serif; font-size:clamp(28px,3.5vw,42px); font-weight:900; color:var(--black); margin-bottom:12px; letter-spacing:-1px; }
.cta-final p    { font-size:17px; color:rgba(0,0,0,.6); margin-bottom:28px; }
.cta-seals      { display:flex; justify-content:center; gap:24px; margin-top:20px; flex-wrap:wrap; }
.cta-seal       { display:flex; align-items:center; gap:6px; font-size:13px; font-weight:700; color:rgba(0,0,0,.65); }

/* ── FOOTER ── */
footer           { background:var(--black); color:var(--white); padding:48px 0 24px; }
.footer-grid     { display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:40px; margin-bottom:36px; }
.footer-brand    { font-family:'Nunito',sans-serif; font-size:20px; font-weight:900; margin-bottom:12px; display:flex; align-items:center; gap:8px; }
.footer-brand .mark { width:28px; height:28px; background:var(--yellow); border-radius:6px; display:flex; align-items:center; justify-content:center; font-size:13px; font-weight:900; color:var(--black); }
.footer-desc     { font-size:14px; color:#777; line-height:1.65; margin-bottom:16px; }
.footer-email    { display:flex; align-items:center; gap:7px; font-size:13px; color:var(--yellow); font-weight:600; }
.footer-col h4   { font-family:'Nunito',sans-serif; font-size:11px; font-weight:800; color:#555; letter-spacing:1.5px; text-transform:uppercase; margin-bottom:14px; }
.footer-col a    { display:block; font-size:14px; color:#777; margin-bottom:10px; transition:color .15s; }
.footer-col a:hover { color:var(--white); }
.footer-bottom   { border-top:1px solid #222; padding-top:20px; display:flex; align-items:center; justify-content:space-between; font-size:12px; color:#444; }


/* ============================================================
   RESPONSIVIDADE MOBILE
   ============================================================ */
@media (max-width: 768px) {
  .navbar         { padding: 0 16px; }
  .navbar-links,
  .nav-seal       { display: none; }
  .container      { padding: 0 16px; }

  /* Hero */
  .hero           { padding-top: 48px; }
  .hero-inner     { grid-template-columns: 1fr; gap: 0; padding-bottom: 0; }
  .hero-left      { padding-bottom: 32px; }
  .hero h1        { font-size: 32px; letter-spacing: -1px; }
  .hero-card-wrap { display: none; }
  .hero-actions   { flex-direction: column; }
  .hero-actions .btn { width: 100%; justify-content: center; }
  .hero-stats     { gap: 16px; flex-wrap: wrap; }
  .hero-trust     { flex-direction: column; align-items: flex-start; gap: 6px; }
  .hero-trust-sep { display: none; }

  /* Parceiros — disable marquee on mobile, show static */
  .marquee-track  { animation: none; gap: 8px; }
  .marquee-viewport { overflow-x:auto; }

  /* Grids */
  .pain-inner,
  .calc-inner,
  .obj-grid,
  .plans-grid,
  .testi-grid,
  .footer-grid,
  .auth-wrap      { grid-template-columns: 1fr; gap: 24px; }

  /* Steps */
  .steps          { grid-template-columns: 1fr 1fr; gap: 24px; }
  .steps::before  { display: none; }

  /* Calculadora */
  .calc-result    { position: static; }

  /* Planos */
  .plan-card.featured { transform: scale(1); }

  /* Dashboard */
  .app            { grid-template-columns: 1fr; }
  .sidebar        { display: none; }
  .dash-main      { padding: 16px; }
  .kpi-row        { grid-template-columns: 1fr 1fr; }
  .charts-row     { grid-template-columns: 1fr; }

  /* Auth */
  .auth-left      { display: none; }
  .auth-right     { padding: 32px 24px; }
  .form-row       { grid-template-columns: 1fr; }
}

/* ── Scroll Reveal (base — animação gerenciada por promo-elite.js) ── */
.reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity .5s ease, transform .5s ease;
}
.reveal.visible { opacity: 1; transform: translateY(0); }


/* ================================================================
   SPRINT 1 — 5 FUNCIONALIDADES PREMIUM
   ================================================================ */

/* ──────────────────────────────────────────────────────────────
   FEATURE 1: ANIMATED MESH GRADIENT HERO BACKGROUND
   Multi-radial gradient overlay that breathes and shifts.
   ────────────────────────────────────────────────────────────── */
.hero-mesh-overlay {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  overflow: hidden;
}
.hero-mesh-overlay::before {
  content: '';
  position: absolute;
  inset: -40%;
  background:
    radial-gradient(ellipse 55% 45% at 20% 30%,  rgba(247,197,0,0.22) 0%, transparent 60%),
    radial-gradient(ellipse 40% 50% at 80% 15%,  rgba(24,185,106,0.08) 0%, transparent 55%),
    radial-gradient(ellipse 60% 40% at 60% 80%,  rgba(247,197,0,0.14) 0%, transparent 60%),
    radial-gradient(ellipse 35% 55% at 10% 75%,  rgba(247,197,0,0.10) 0%, transparent 50%);
  animation: meshShift 12s ease-in-out infinite alternate;
}
.hero-mesh-overlay::after {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse 80% 60% at 50% 110%, rgba(247,197,0,0.12) 0%, transparent 70%);
  animation: meshPulse 8s ease-in-out infinite;
}
.hero > .container { position: relative; z-index: 1; }

@keyframes meshShift {
  0%   { transform: translate(0, 0)      scale(1); }
  33%  { transform: translate(3%, -2%)   scale(1.04); }
  66%  { transform: translate(-2%, 3%)   scale(0.98); }
  100% { transform: translate(2%, 1%)    scale(1.02); }
}
@keyframes meshPulse {
  0%, 100% { opacity: 0.6; }
  50%       { opacity: 1;   }
}

/* ──────────────────────────────────────────────────────────────
   FEATURE 3: INFINITE MARQUEE
   ────────────────────────────────────────────────────────────── */
@keyframes marqueeScroll {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

/* ──────────────────────────────────────────────────────────────
   FEATURE 4: SHIMMER SWEEP ON YELLOW CTA BUTTONS
   A diagonal light streak animates across on hover.
   Also adds a living glow pulse on the hero CTA.
   ────────────────────────────────────────────────────────────── */
.btn-yellow {
  position: relative;
  overflow: hidden;
  transition: background .18s, transform .18s, box-shadow .18s;
}
.btn-yellow::after {
  content: '';
  position: absolute;
  top: 0; left: -110%;
  width: 80%; height: 100%;
  background: linear-gradient(
    105deg,
    transparent 20%,
    rgba(255,255,255,0.55) 50%,
    transparent 80%
  );
  transform: skewX(-15deg);
  transition: none;
  pointer-events: none;
}
.btn-yellow:hover::after {
  animation: shimmerSweep 0.55s ease forwards;
}
@keyframes shimmerSweep {
  0%   { left: -110%; }
  100% { left: 130%;  }
}

/* Glow pulse on the hero primary CTA */
.btn-hero-cta {
  animation: glowPulse 3s ease-in-out infinite;
}
.btn-hero-cta:hover {
  animation: none;
  box-shadow: 0 6px 28px rgba(247,197,0,0.55);
}
@keyframes glowPulse {
  0%, 100% { box-shadow: 0 4px 18px rgba(247,197,0,0.30); }
  50%       { box-shadow: 0 4px 32px rgba(247,197,0,0.55); }
}

/* ──────────────────────────────────────────────────────────────
   FEATURE 5: HERO CARD FLOATING ANIMATION
   Gentle vertical float — the JS tilt adds the 3D layer on top.
   ────────────────────────────────────────────────────────────── */
@keyframes heroCardFloat {
  0%, 100% { transform: translateY(0px);   }
  45%       { transform: translateY(-10px); }
  55%       { transform: translateY(-10px); }
}
/* Float chips counter-float for depth */
.chip-1 { animation: chipFloat1 4.5s ease-in-out infinite; }
.chip-2 { animation: chipFloat2 5s   ease-in-out infinite; }
@keyframes chipFloat1 {
  0%, 100% { transform: translateY(0)   rotate(-1deg); }
  50%       { transform: translateY(-6px) rotate(0deg); }
}
@keyframes chipFloat2 {
  0%, 100% { transform: translateY(0)   rotate(1deg); }
  50%       { transform: translateY(5px) rotate(0deg); }
}

/* Tilt wrapper — perspective set here so JS only tweaks rotation */
.hero-card-wrap {
  transform-style: preserve-3d;
  transition: transform 0.05s linear;
}
/* When JS tilt is active, pause the CSS float so they don't fight */
.hero-card-wrap.tilting .hero-card { animation-play-state: paused; }
