*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --bg:        #071220;
  --bg2:       #0b1828;
  --bg3:       #0f1e32;
  --gold:      #c9a84c;
  --gold-lt:   #e2c47a;
  --white:     #f0f4ff;
  --muted:     #8897b4;
  --border:    rgba(201,168,76,.18);
  --green:     #25D366;
  --green-dk:  #1da851;
  --radius:    14px;
  --shadow:    0 4px 40px rgba(0,0,0,.55);
  --nav-h:     76px;
}

html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }

body {
  font-family: 'Source Sans 3', 'Helvetica Neue', Arial, sans-serif;
  background: var(--bg);
  color: var(--white);
  line-height: 1.65;
  overflow-x: hidden;
}

h1, h2, h3, h4 { font-family: 'Playfair Display', Georgia, serif; }

section[id], div[id="trust"] { scroll-margin-top: calc(var(--nav-h) + 8px); }

img { max-width: 100%; }

/* ─── UTILITY ─── */
.container { width: min(1140px, 92%); margin: 0 auto; }
.tag {
  display: inline-block;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--gold);
  background: rgba(201,168,76,.1);
  border: 1px solid var(--border);
  border-radius: 100px;
  padding: .28rem .9rem;
  margin-bottom: 1.1rem;
}
h2.section-title {
  font-size: clamp(1.75rem, 4vw, 2.6rem);
  font-weight: 800;
  line-height: 1.2;
  color: var(--white);
  font-family: 'Playfair Display', Georgia, serif;
}
h2.section-title span { color: var(--gold); }
p.section-sub {
  color: var(--muted);
  font-size: 1.05rem;
  max-width: 580px;
  margin-top: .75rem;
}

/* ─── CTA PRINCIPAL DA PÁGINA → CALCULADORA ─── */
.btn-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .6rem;
  background: linear-gradient(135deg, var(--gold), var(--gold-lt));
  color: #08111f;
  font-weight: 700;
  font-size: 1rem;
  padding: .9rem 1.8rem;
  border-radius: 100px;
  border: none;
  cursor: pointer;
  text-decoration: none;
  line-height: 1.3;
  transition: opacity .2s, transform .15s, box-shadow .2s;
  box-shadow: 0 6px 28px rgba(201,168,76,.26);
}
.btn-cta:hover { opacity: .93; transform: translateY(-2px); box-shadow: 0 10px 36px rgba(201,168,76,.34); }
.btn-cta:active { transform: translateY(0); }
.btn-cta svg { flex-shrink: 0; }
.btn-cta-lg { font-size: 1.05rem; padding: 1rem 2.2rem; }

.btn-wpp {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .6rem;
  background: var(--green);
  color: #fff;
  font-weight: 700;
  font-size: 1rem;
  padding: .9rem 1.8rem;
  border-radius: 100px;
  border: none;
  cursor: pointer;
  text-decoration: none;
  line-height: 1.3;
  transition: background .2s, transform .15s, box-shadow .2s;
  box-shadow: 0 6px 28px rgba(37,211,102,.35);
}
.btn-wpp:hover { background: var(--green-dk); transform: translateY(-2px); box-shadow: 0 10px 36px rgba(37,211,102,.45); }
.btn-wpp:active { transform: translateY(0); }
.btn-wpp svg { flex-shrink: 0; }

a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible {
  outline: 2px solid var(--gold-lt);
  outline-offset: 3px;
}

/* reveal on scroll */
.reveal { opacity: 0; transform: translateY(32px); transition: opacity .65s ease, transform .65s ease; }
.reveal.visible { opacity: 1; transform: none; }
.reveal-left { opacity: 0; transform: translateX(-32px); transition: opacity .65s ease, transform .65s ease; }
.reveal-left.visible { opacity: 1; transform: none; }
.delay-1 { transition-delay: .1s; }
.delay-2 { transition-delay: .2s; }
.delay-3 { transition-delay: .3s; }
.delay-4 { transition-delay: .4s; }
.delay-5 { transition-delay: .5s; }
.delay-6 { transition-delay: .6s; }
.delay-7 { transition-delay: .7s; }

/* ─── NAV ─── */
nav {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 100;
  padding: 1rem 0;
  transition: background .3s, backdrop-filter .3s, padding .3s;
}
nav.scrolled {
  background: rgba(8,13,26,.88);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  padding: .65rem 0;
  border-bottom: 1px solid rgba(201,168,76,.1);
}
.nav-inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.logo {
  font-size: 1.35rem;
  font-weight: 900;
  color: var(--white);
  letter-spacing: .04em;
  font-family: 'Source Sans 3', sans-serif;
  text-transform: uppercase;
  white-space: nowrap;
}
.logo span { color: var(--gold); }
.nav-cta { font-size: .88rem; padding: .65rem 1.3rem; white-space: nowrap; }
.nav-cta-short { display: none; }

/* ─── HERO ─── */
#hero {
  min-height: 100svh;
  display: flex;
  align-items: center;
  position: relative;
  padding: 120px 0 80px;
  overflow: hidden;
}
.hero-bg {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 70% 60% at 60% 40%, rgba(201,168,76,.06) 0%, transparent 70%),
    radial-gradient(ellipse 50% 50% at 10% 80%, rgba(37,211,102,.04) 0%, transparent 60%);
  pointer-events: none;
}
.hero-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3rem;
  align-items: center;
}
.hero-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  font-size: .78rem;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--gold);
  background: rgba(201,168,76,.08);
  border: 1px solid var(--border);
  border-radius: 100px;
  padding: .35rem 1rem;
  margin-bottom: 1.4rem;
}
.hero-eyebrow i { width: 6px; height: 6px; background: var(--green); border-radius: 50%; display: inline-block; flex-shrink: 0; animation: pulse-dot 2s infinite; }
@keyframes pulse-dot { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:.5;transform:scale(1.4)} }

h1 {
  font-size: clamp(2.2rem, 5.5vw, 3.8rem);
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: -.01em;
  margin-bottom: 1.2rem;
  font-family: 'Playfair Display', Georgia, serif;
}
h1 .line-gold { color: var(--gold); }

.hero-sub {
  font-size: 1.1rem;
  color: var(--muted);
  max-width: 520px;
  margin-bottom: 2rem;
  line-height: 1.7;
}

.hero-ctas { display: flex; gap: 1rem; flex-wrap: wrap; align-items: center; margin-bottom: 2.8rem; }
.btn-secondary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: .95rem;
  font-weight: 600;
  color: var(--white);
  text-decoration: none;
  padding: .85rem 1.5rem;
  border: 1px solid rgba(255,255,255,.15);
  border-radius: 100px;
  line-height: 1.3;
  transition: border-color .2s, background .2s;
}
.btn-secondary:hover { border-color: var(--gold); background: rgba(201,168,76,.06); }

.hero-stats {
  display: flex;
  gap: 2rem;
  flex-wrap: wrap;
  padding-top: 1.8rem;
  border-top: 1px solid rgba(255,255,255,.07);
}
.stat-item { display: flex; flex-direction: column; gap: .15rem; }
.stat-num { font-size: 1.6rem; font-weight: 900; color: var(--gold); line-height: 1; }
.stat-label { font-size: .75rem; color: var(--muted); font-weight: 500; }

/* Hero visual */
.hero-visual {
  position: relative;
  height: 600px;
  overflow: hidden;
}
.hero-photo-wrap { position: absolute; inset: 0; }
.hero-photo-wrap img {
  height: 100%;
  width: 100%;
  object-fit: cover;
  object-position: center center;
  display: block;
}
.hero-photo-wrap::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(7,18,32,.28);
  z-index: 1;
  pointer-events: none;
}
.hero-photo-wrap::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 2;
  background:
    linear-gradient(to top,    #071220 0%, #071220 6%, rgba(7,18,32,.86) 19%, rgba(7,18,32,.42) 37%, transparent 57%),
    linear-gradient(to right,  #071220 0%, rgba(7,18,32,.82) 9%, rgba(7,18,32,.3) 24%, transparent 42%),
    linear-gradient(to left,   #071220 0%, rgba(7,18,32,.42) 9%, transparent 25%),
    linear-gradient(to bottom, #071220 0%, rgba(7,18,32,.42) 8%, transparent 24%);
  pointer-events: none;
}
.floating-badge {
  position: absolute;
  top: 2rem; right: 1.5rem;
  z-index: 3;
  background: var(--green);
  color: #fff;
  font-size: .72rem;
  font-weight: 700;
  padding: .4rem .8rem;
  border-radius: 100px;
  box-shadow: 0 4px 16px rgba(37,211,102,.4);
  animation: float 3s ease-in-out infinite;
}
.floating-badge2 {
  position: absolute;
  bottom: 3.5rem; left: 1.5rem;
  z-index: 3;
  background: var(--bg3);
  border: 1px solid var(--border);
  color: var(--gold);
  font-size: .72rem;
  font-weight: 700;
  padding: .4rem .8rem;
  border-radius: 100px;
  box-shadow: var(--shadow);
  animation: float 3s ease-in-out infinite;
  animation-delay: 1.5s;
}
@keyframes float { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-8px)} }

/* ─── TRUST BAR ─── */
#trust {
  background: var(--bg2);
  border-top: 1px solid rgba(255,255,255,.04);
  border-bottom: 1px solid rgba(255,255,255,.04);
  padding: 1.4rem 0;
}
.trust-bar {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 2.5rem;
  flex-wrap: wrap;
}
.trust-item {
  display: flex;
  align-items: center;
  gap: .55rem;
  font-size: .85rem;
  color: var(--muted);
  font-weight: 500;
  line-height: 1.35;
}
.trust-item svg { color: var(--gold); flex-shrink: 0; }

/* ─── DOR / EMPATIA ─── */
#dor { padding: 100px 0; }
.dor-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: center;
}
.dor-situations { display: flex; flex-direction: column; gap: .75rem; margin-top: 2rem; }
.dor-item {
  display: flex;
  align-items: flex-start;
  gap: .9rem;
  padding: 1rem 1.2rem;
  background: var(--bg2);
  border: 1px solid rgba(255,255,255,.05);
  border-radius: var(--radius);
  transition: border-color .2s, background .2s;
}
.dor-item:hover { border-color: var(--border); background: var(--bg3); }
.dor-icon {
  width: 36px; height: 36px; border-radius: 8px;
  background: rgba(201,168,76,.1);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.dor-icon svg { color: var(--gold); }
.dor-text strong { display: block; font-size: .9rem; font-weight: 600; margin-bottom: .15rem; color: var(--white); }
.dor-text span { font-size: .82rem; color: #8897b4; }

.dor-right-text { font-size: 1.05rem; color: var(--muted); line-height: 1.75; }
.dor-right-text p + p { margin-top: 1rem; }
.dor-highlight {
  margin-top: 1.5rem;
  padding: 1.2rem 1.4rem;
  background: rgba(201,168,76,.06);
  border-left: 3px solid var(--gold);
  border-radius: 0 var(--radius) var(--radius) 0;
  font-size: 1rem;
  color: var(--white);
  font-weight: 500;
}

/* ─── SERVIÇOS ─── */
#servicos { padding: 100px 0; background: var(--bg2); }
.servicos-header { text-align: center; margin-bottom: 3.5rem; }
.servicos-header p.section-sub { margin: .75rem auto 0; }
.servicos-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 1.25rem;
}
.servico-card {
  background: var(--bg);
  border: 1px solid rgba(255,255,255,.06);
  border-radius: var(--radius);
  padding: 1.6rem;
  cursor: default;
  transition: border-color .25s, transform .25s, box-shadow .25s;
  position: relative;
  overflow: hidden;
}
.servico-card::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(201,168,76,.04) 0%, transparent 60%);
  opacity: 0;
  transition: opacity .25s;
}
.servico-card:hover { border-color: var(--border); transform: translateY(-4px); box-shadow: 0 16px 48px rgba(0,0,0,.4); }
.servico-card:hover::before { opacity: 1; }
.servico-icon {
  width: 48px; height: 48px; border-radius: 12px;
  background: rgba(201,168,76,.1);
  display: flex; align-items: center; justify-content: center;
  margin-bottom: 1.1rem;
  transition: background .25s;
}
.servico-card:hover .servico-icon { background: rgba(201,168,76,.18); }
.servico-icon svg { color: var(--gold); }
.servico-card h3 { font-size: 1rem; font-weight: 700; margin-bottom: .5rem; color: var(--white); }
.servico-card p { font-size: .85rem; color: #8897b4; line-height: 1.6; }

/* ─── COMO FUNCIONA ─── */
#processo { padding: 100px 0; }
.processo-header { text-align: center; margin-bottom: 4rem; }
.processo-header p.section-sub { margin: .75rem auto 0; }
.steps {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  position: relative;
}
.steps::before {
  content: '';
  position: absolute;
  top: 32px;
  left: 12.5%;
  right: 12.5%;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--border), var(--gold), var(--border), transparent);
}
.step {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 0 1.5rem 2rem;
  position: relative;
}
.step-num {
  width: 56px; height: 56px; border-radius: 50%;
  background: var(--bg2);
  border: 2px solid var(--border);
  display: flex; align-items: center; justify-content: center;
  font-size: 1.1rem; font-weight: 900; color: var(--gold);
  margin-bottom: 1.2rem;
  position: relative;
  z-index: 1;
  flex-shrink: 0;
  transition: background .25s, border-color .25s;
}
.step:hover .step-num { background: rgba(201,168,76,.12); border-color: var(--gold); }
.step h3 { font-size: .95rem; font-weight: 700; margin-bottom: .4rem; color: var(--white); }
.step p { font-size: .83rem; color: #8897b4; line-height: 1.6; }

/* ─── CALCULADORA ─── */
#calculadora { padding: 100px 0; background: var(--bg2); }
.calc-wrapper {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 4rem;
  align-items: start;
}
.calc-box {
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 20px;
  padding: 2rem;
  box-shadow: var(--shadow);
}
.calc-box h3 { font-size: 1.1rem; font-weight: 700; margin-bottom: 1.5rem; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.field { display: flex; flex-direction: column; gap: .45rem; margin-bottom: 1rem; }
.field label { font-size: .8rem; font-weight: 600; color: var(--muted); letter-spacing: .04em; text-transform: uppercase; }
.field input, .field select {
  width: 100%;
  background-color: var(--bg2);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 10px;
  color: var(--white);
  font-size: .95rem;
  font-family: 'Source Sans 3', sans-serif;
  padding: .75rem 1rem;
  outline: none;
  transition: border-color .2s;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}
.field select {
  cursor: pointer;
  padding-right: 2.6rem;
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23c9a84c' stroke-width='2.5'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 1rem center;
}
.field input[type="date"] { min-height: 48px; }
.field input::-webkit-outer-spin-button,
.field input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.field input::-webkit-calendar-picker-indicator { filter: invert(1) opacity(.55); cursor: pointer; }
.field input::placeholder { color: #5a6a8a; }
option { background: #0d1526; color: #f0f4ff; }
.field input:focus, .field select:focus { border-color: var(--gold); }
.btn-calc {
  width: 100%;
  padding: .9rem;
  background: linear-gradient(135deg, var(--gold), var(--gold-lt));
  color: #080d1a;
  font-size: 1rem;
  font-weight: 700;
  font-family: 'Source Sans 3', sans-serif;
  border: none;
  border-radius: 100px;
  cursor: pointer;
  transition: opacity .2s, transform .15s;
  margin-top: .5rem;
  letter-spacing: .02em;
}
.btn-calc:hover { opacity: .92; transform: translateY(-1px); }
.calc-result {
  display: none;
  margin-top: 1.5rem;
  padding: 1.25rem;
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
}
.calc-result.show { display: block; animation: fadeIn .4s ease; }
@keyframes fadeIn { from{opacity:0;transform:translateY(8px)} to{opacity:1;transform:none} }
.result-title { font-size: .8rem; font-weight: 600; color: var(--muted); text-transform: uppercase; letter-spacing: .06em; margin-bottom: .35rem; }
.result-cta-note { font-size: .76rem; color: #8497b4; margin-top: .6rem; text-align: center; line-height: 1.5; }
.result-cta { margin-top: 1.1rem; }
.form-honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; opacity: 0; }
.result-disclaimer { font-size: .74rem; color: #7a8ba8; margin-top: 1rem; line-height: 1.5; }
.result-cta .btn-wpp { width: 100%; font-size: .92rem; padding: .9rem 1.2rem; }

.calc-info h2 { margin-bottom: 1rem; }
.calc-info p.section-sub { margin-top: 0; margin-bottom: 1.5rem; }
.info-points { display: flex; flex-direction: column; gap: .75rem; margin-top: 2rem; }
.info-point {
  display: flex;
  align-items: flex-start;
  gap: .75rem;
  font-size: .9rem;
  color: var(--muted);
}
.info-point strong { color: var(--white); display: block; font-size: .92rem; margin-bottom: .1rem; }
.info-point-icon {
  width: 32px; height: 32px; border-radius: 8px;
  background: rgba(201,168,76,.1);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0; margin-top: 2px;
}
.info-point-icon svg { color: var(--gold); }

/* ─── PROVA SOCIAL ─── */
#prova { padding: 100px 0; }
.prova-header { text-align: center; margin-bottom: 3.5rem; }
.metrics-row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
  margin-bottom: 4rem;
}
.metric-card {
  text-align: center;
  padding: 1.8rem 1rem;
  background: var(--bg2);
  border: 1px solid rgba(255,255,255,.06);
  border-radius: var(--radius);
}
.metric-num { font-size: 2.4rem; font-weight: 900; color: var(--gold); line-height: 1; }
.metric-label { font-size: .8rem; color: #9aaac4; margin-top: .4rem; font-weight: 500; }

.testimonials { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }
.testimonial {
  background: var(--bg2);
  border: 1px solid rgba(255,255,255,.06);
  border-radius: var(--radius);
  padding: 1.5rem;
}
.stars { display: flex; gap: 3px; margin-bottom: .9rem; }
.star { color: var(--gold); font-size: 1rem; }
.testimonial p { font-size: .88rem; color: #9aaac4; line-height: 1.65; margin-bottom: 1rem; font-style: italic; }
.testimonial-author { display: flex; align-items: center; gap: .65rem; }
.author-avatar {
  width: 36px; height: 36px; border-radius: 50%;
  background: linear-gradient(135deg, var(--gold), var(--gold-lt));
  display: flex; align-items: center; justify-content: center;
  font-size: .8rem; font-weight: 800; color: var(--bg);
  flex-shrink: 0;
}
.author-name { font-size: .85rem; font-weight: 700; color: var(--white); }
.author-meta { font-size: .75rem; color: #8897b4; }

/* ─── DIFERENCIAIS ─── */
#diferenciais { padding: 100px 0; background: var(--bg2); }
.dif-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: center;
}
.dif-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.dif-card {
  background: var(--bg);
  border: 1px solid rgba(255,255,255,.06);
  border-radius: var(--radius);
  padding: 1.4rem;
  transition: border-color .2s;
}
.dif-card:hover { border-color: var(--border); }
.dif-card-icon {
  width: 42px; height: 42px; border-radius: 10px;
  background: rgba(201,168,76,.1);
  display: flex; align-items: center; justify-content: center;
  margin-bottom: .9rem;
}
.dif-card-icon svg { color: var(--gold); }
.dif-card h3 { font-size: .9rem; font-weight: 700; margin-bottom: .35rem; color: var(--white); }
.dif-card p { font-size: .8rem; color: #8897b4; line-height: 1.55; }

/* ─── FAQ ─── */
#faq { padding: 100px 0; }
.faq-wrapper {
  display: grid;
  grid-template-columns: 1fr 1.5fr;
  gap: 5rem;
  align-items: start;
}
.faq-left .section-sub { margin-top: .75rem; margin-bottom: 2rem; max-width: 100%; }
.faq-list { display: flex; flex-direction: column; gap: .75rem; }
.faq-item {
  background: var(--bg2);
  border: 1px solid rgba(255,255,255,.06);
  border-radius: var(--radius);
  overflow: hidden;
  transition: border-color .2s;
}
.faq-item.open { border-color: var(--border); }
.faq-q {
  width: 100%;
  background: none;
  border: none;
  color: var(--white);
  font-family: 'Source Sans 3', sans-serif;
  font-size: .92rem;
  font-weight: 600;
  padding: 1.1rem 1.3rem;
  text-align: left;
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  line-height: 1.45;
}
.faq-q svg { flex-shrink: 0; transition: transform .3s; color: var(--gold); }
.faq-item.open .faq-q svg { transform: rotate(45deg); }
.faq-a {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows .34s ease;
}
.faq-item.open .faq-a { grid-template-rows: 1fr; }
.faq-a-clip { overflow: hidden; min-height: 0; }
.faq-a-inner {
  padding: 0 1.3rem 1.1rem;
  font-size: .87rem;
  color: #9aaac4;
  line-height: 1.7;
}

/* blocos de CTA dentro das seções */
.cta-block { margin-top: 2rem; }
.processo-cta { text-align: center; margin-top: 3.5rem; }
.accent-gold { color: var(--gold); }

/* ─── URGÊNCIA / CTA FINAL ─── */
#urgencia {
  padding: 100px 0;
  background: var(--bg2);
  position: relative;
  overflow: hidden;
}
#urgencia::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 60% 80% at 80% 50%, rgba(37,211,102,.06) 0%, transparent 65%),
    radial-gradient(ellipse 40% 60% at 20% 50%, rgba(201,168,76,.07) 0%, transparent 60%);
  pointer-events: none;
}
.urgencia-inner { text-align: center; max-width: 700px; margin: 0 auto; position: relative; }
.prazo-badge {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  background: rgba(239,68,68,.1);
  border: 1px solid rgba(239,68,68,.25);
  border-radius: 100px;
  padding: .35rem 1rem;
  font-size: .78rem;
  font-weight: 700;
  color: #f87171;
  letter-spacing: .08em;
  text-transform: uppercase;
  margin-bottom: 1.5rem;
}
#urgencia h2 { font-size: clamp(1.8rem, 4vw, 2.8rem); font-weight: 900; margin-bottom: 1rem; line-height: 1.15; }
#urgencia p { font-size: 1.05rem; color: var(--muted); margin-bottom: 2.5rem; line-height: 1.7; }
.urgencia-ctas { display: flex; justify-content: center; gap: 1rem; flex-wrap: wrap; }
.urgencia-note { margin-top: 1.2rem; font-size: .8rem; color: var(--muted); }

/* ─── FOOTER ─── */
footer {
  background: var(--bg);
  border-top: 1px solid rgba(255,255,255,.05);
  padding: 3rem 0 2rem;
}
.footer-grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr;
  gap: 3rem;
  margin-bottom: 2.5rem;
}
.footer-logo { font-size: 1.3rem; font-weight: 900; margin-bottom: .8rem; }
.footer-logo span { color: var(--gold); }
.footer-desc { font-size: .85rem; color: #9aaac4; line-height: 1.6; }
.footer-col h4 { font-size: .8rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; color: var(--gold); margin-bottom: .9rem; }
.footer-col ul { list-style: none; display: flex; flex-direction: column; gap: .5rem; }
.footer-col ul li a { font-size: .85rem; color: #9aaac4; text-decoration: none; transition: color .2s; }
.footer-col ul li a:hover { color: var(--white); }
.footer-bottom {
  border-top: 1px solid rgba(255,255,255,.05);
  padding-top: 1.5rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 1rem;
  font-size: .78rem;
  color: #7a8ba8;
}
.footer-oab { font-size: .75rem; color: #6a7b98; }

/* ─── FLOATING WPP (desktop) ─── */
#calc-float {
  position: fixed;
  bottom: 28px;
  right: 28px;
  z-index: 200;
  width: 60px;
  height: 60px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--gold), var(--gold-lt));
  color: #08111f;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 6px 28px rgba(201,168,76,.4);
  text-decoration: none;
  animation: calc-pulse 3.5s ease-in-out infinite;
  transition: transform .2s, box-shadow .2s;
}
#calc-float:hover { transform: scale(1.08); box-shadow: 0 10px 40px rgba(201,168,76,.55); animation: none; }
@keyframes calc-pulse {
  0%,100% { box-shadow: 0 6px 28px rgba(201,168,76,.4); }
  50% { box-shadow: 0 6px 48px rgba(201,168,76,.6), 0 0 0 10px rgba(201,168,76,.07); }
}
.calc-tooltip {
  position: absolute;
  right: 70px;
  white-space: nowrap;
  background: var(--bg3);
  border: 1px solid var(--border);
  color: var(--white);
  font-size: .8rem;
  font-weight: 600;
  padding: .4rem .85rem;
  border-radius: 8px;
  opacity: 0;
  pointer-events: none;
  transition: opacity .2s;
}
#calc-float:hover .calc-tooltip { opacity: 1; }

/* ─── STICKY CTA (mobile only) ─── */
#mobile-cta {
  display: none;
  position: fixed;
  left: 0; right: 0; bottom: 0;
  z-index: 210;
  gap: .6rem;
  align-items: center;
  padding: .7rem 1rem calc(.7rem + env(safe-area-inset-bottom));
  background: rgba(7,18,32,.94);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-top: 1px solid rgba(201,168,76,.14);
  transform: translateY(120%);
  transition: transform .32s cubic-bezier(.22,.61,.36,1);
}
#mobile-cta.visible { transform: translateY(0); }
#mobile-cta .btn-cta {
  flex: 1 1 auto;
  font-size: .95rem;
  padding: .85rem 1rem;
  box-shadow: none;
}

/* ─── SCROLL INDICATOR ─── */
.scroll-indicator {
  position: absolute;
  bottom: 2rem;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .4rem;
  color: var(--muted);
  font-size: .72rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  animation: bounce 2s ease-in-out infinite;
}
@keyframes bounce { 0%,100%{transform:translateX(-50%) translateY(0)} 50%{transform:translateX(-50%) translateY(6px)} }

/* ─── PROGRESS BAR ─── */
#progress-bar {
  position: fixed;
  top: 0; left: 0;
  height: 2px;
  background: linear-gradient(90deg, var(--gold), var(--green));
  z-index: 999;
  width: 0%;
  transition: width .1s linear;
}

/* ═══════════════════════════════════════════════
   TABLET  ≤ 1024px
   ═══════════════════════════════════════════════ */
@media (max-width: 1024px) {
  .dor-grid, .dif-grid, .calc-wrapper { gap: 2.5rem; }
  .calc-wrapper { grid-template-columns: 1fr; }
  .faq-wrapper { gap: 3rem; }
  .hero-grid { gap: 2rem; }
  .hero-visual { height: 520px; }
  .step { padding: 0 .9rem 2rem; }
  .metrics-row { gap: 1rem; }
}

/* ═══════════════════════════════════════════════
   MOBILE  ≤ 820px  — camada refeita
   ═══════════════════════════════════════════════ */
@media (max-width: 820px) {
  :root { --nav-h: 64px; }

  body { padding-bottom: calc(78px + env(safe-area-inset-bottom)); }

  /* NAV */
  nav { padding: .7rem 0; }
  nav.scrolled { padding: .55rem 0; background: rgba(7,18,32,.95); }
  .logo { font-size: 1.05rem; letter-spacing: .02em; }
  .nav-cta { font-size: .78rem; padding: .58rem 1.05rem; gap: .42rem; box-shadow: 0 4px 16px rgba(37,211,102,.28); }
  .nav-cta svg { width: 14px; height: 14px; }
  .nav-cta-full { display: none; }
  .nav-cta-short { display: inline; }

  /* HERO — empilhado, CTA acima da dobra, foto em faixa full-bleed */
  #hero { min-height: 0; padding: calc(var(--nav-h) + 26px) 0 0; display: block; }
  .hero-grid { grid-template-columns: minmax(0, 1fr); gap: 2.2rem; }
  .hero-eyebrow { font-size: .67rem; letter-spacing: .07em; padding: .32rem .8rem; margin-bottom: 1.1rem; }
  h1 { font-size: clamp(1.95rem, 8.4vw, 2.7rem); margin-bottom: .9rem; }
  .hero-sub { font-size: 1rem; line-height: 1.65; max-width: none; margin-bottom: 1.6rem; }

  .hero-ctas { flex-direction: column; align-items: stretch; gap: .65rem; margin-bottom: 2rem; }
  .hero-ctas > a { width: 100%; }

  .hero-stats {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.15rem 1rem;
    padding-top: 1.4rem;
  }
  .stat-num { font-size: 1.35rem; }
  .stat-label { font-size: .72rem; }

  .scroll-indicator { display: none; }

  /* faixa full-bleed sem usar 100vw como largura (evita overflow no grid) */
  .hero-visual {
    height: 320px;
    width: auto;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    transform: none;
  }
  .hero-photo-wrap img { object-position: center 30%; }
  .hero-photo-wrap::before { background: rgba(7,18,32,.32); }
  .hero-photo-wrap::after {
    background:
      linear-gradient(to bottom, #071220 0%, rgba(7,18,32,.72) 9%, rgba(7,18,32,.28) 24%, transparent 46%),
      linear-gradient(to top,    #071220 0%, rgba(7,18,32,.8) 17%, transparent 54%);
  }
  .floating-badge  { top: 1.1rem; right: 1.1rem; animation: none; }
  .floating-badge2 { bottom: 1.1rem; left: 1.1rem; animation: none; }

  /* TRUST BAR — grade 2 col, nada escondido */
  #trust { padding: 1.15rem 0; }
  .trust-bar {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .8rem 1rem;
    justify-content: initial;
  }
  .trust-item { align-items: flex-start; font-size: .76rem; gap: .45rem; }
  .trust-item svg { margin-top: 2px; }
  .trust-item:last-child { grid-column: 1 / -1; }

  /* RITMO VERTICAL */
  #dor, #servicos, #processo, #calculadora, #prova, #diferenciais, #faq, #urgencia { padding: 68px 0; }
  h2.section-title { font-size: clamp(1.6rem, 6.4vw, 2.1rem); }
  p.section-sub { font-size: .98rem; }
  .tag { font-size: .68rem; margin-bottom: .9rem; }

  /* DOR */
  .dor-grid { grid-template-columns: 1fr; gap: 2.2rem; }
  .dor-situations { gap: .6rem; margin-top: 1.5rem; }
  .dor-item { padding: .9rem 1rem; gap: .75rem; }
  .dor-icon { width: 32px; height: 32px; }
  .dor-icon svg { width: 16px; height: 16px; }
  .dor-right-text { font-size: .98rem; }
  .dor-highlight { padding: 1rem 1.1rem; font-size: .95rem; }
  .dor-grid .btn-cta { width: 100%; }

  /* SERVIÇOS */
  .servicos-header { margin-bottom: 2.2rem; }
  .servicos-grid { grid-template-columns: 1fr; gap: .8rem; }
  .servico-card { padding: 1.3rem; }
  .servico-card:hover { transform: none; box-shadow: none; }
  .servico-icon { width: 42px; height: 42px; margin-bottom: .85rem; border-radius: 10px; }

  /* PROCESSO — timeline vertical */
  .processo-header { margin-bottom: 2.4rem; }
  .steps { grid-template-columns: 1fr; }
  .steps::before { display: none; }
  .step {
    flex-direction: row;
    text-align: left;
    align-items: flex-start;
    padding: 0 0 1.9rem 0;
    gap: 1.1rem;
  }
  .step:last-child { padding-bottom: 0; }
  .step-num { width: 46px; height: 46px; font-size: 1rem; margin-bottom: 0; }
  .step:not(:last-child)::after {
    content: '';
    position: absolute;
    left: 23px;
    top: 52px;
    bottom: 6px;
    width: 1px;
    background: linear-gradient(to bottom, var(--gold), var(--border), transparent);
  }
  .processo-cta { margin-top: 2.4rem; }
  .processo-cta .btn-cta { width: 100%; }

  /* CALCULADORA */
  .calc-wrapper { grid-template-columns: 1fr; gap: 2rem; }
  .calc-box { padding: 1.35rem; border-radius: 16px; }
  .calc-box h3 { font-size: 1.02rem; margin-bottom: 1.2rem; }
  .form-row { grid-template-columns: 1fr; gap: 0; }
  .field { margin-bottom: .9rem; gap: .38rem; }
  .field label { font-size: .74rem; }
  /* 16px evita o zoom automático do iOS ao focar o campo */
  .field input, .field select { font-size: 16px; padding: .8rem 1rem; min-height: 50px; }
  .field select { padding-right: 2.6rem; }
  .btn-calc { padding: 1rem; }
  .info-points { gap: .65rem; margin-top: 1.5rem; }
  .info-point { font-size: .86rem; }
  .calc-result { padding: 1.1rem; }

  /* PROVA SOCIAL */
  .prova-header { margin-bottom: 2.2rem; }
  .metrics-row { grid-template-columns: 1fr 1fr; gap: .8rem; margin-bottom: 2.2rem; }
  .metric-card { padding: 1.3rem .8rem; }
  .metric-num { font-size: 1.85rem; }
  .metric-label { font-size: .74rem; line-height: 1.4; }
  .testimonials { grid-template-columns: 1fr; gap: .8rem; }
  .testimonial { padding: 1.25rem; }

  /* DIFERENCIAIS */
  .dif-grid { grid-template-columns: 1fr; gap: 2rem; }
  .dif-cards { gap: .8rem; }
  .dif-card { padding: 1.15rem; }
  .dif-card-icon { width: 36px; height: 36px; margin-bottom: .7rem; }
  .dif-grid .btn-cta { width: 100%; }

  /* FAQ */
  .faq-wrapper { grid-template-columns: 1fr; gap: 2rem; }
  .faq-left .section-sub { margin-bottom: 1.4rem; }
  .faq-left .btn-cta { width: 100%; }
  .faq-q { font-size: .88rem; padding: 1rem 1.1rem; gap: .8rem; }
  .faq-a-inner { padding: 0 1.1rem 1rem; font-size: .85rem; }

  /* URGÊNCIA */
  #urgencia h2 { font-size: clamp(1.65rem, 6.6vw, 2.2rem); }
  #urgencia p { font-size: .98rem; margin-bottom: 1.8rem; }
  .urgencia-ctas { flex-direction: column; align-items: stretch; }
  .btn-cta-lg { font-size: .98rem; padding: 1rem 1.4rem; }

  /* FOOTER */
  footer { padding: 2.4rem 0 1.6rem; }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 1.8rem; margin-bottom: 1.8rem; }
  .footer-grid > :first-child { grid-column: 1 / -1; }
  .footer-bottom { flex-direction: column; align-items: flex-start; gap: .6rem; }

  /* CTA fixo substitui o balão flutuante */
  #calc-float { display: none; }
  #mobile-cta { display: flex; }
}

/* ═══ TRUST BAR EM COLUNA ÚNICA ≤ 520px ═══ */
@media (max-width: 520px) {
  .trust-bar { grid-template-columns: 1fr; gap: .7rem; }
  .trust-item:last-child { grid-column: auto; }
}

/* ═══════════════════════════════════════════════
   MOBILE PEQUENO  ≤ 400px
   ═══════════════════════════════════════════════ */
@media (max-width: 400px) {
  .container { width: 90%; }
  .logo { font-size: .98rem; }
  .nav-cta { font-size: .74rem; padding: .55rem .9rem; }
  .nav-cta svg { display: none; }
  h1 { font-size: 1.85rem; }
  /* sem pílula: o rótulo quebra em duas linhas com mais elegância */
  .hero-eyebrow {
    background: none;
    border: none;
    padding: 0;
    letter-spacing: .05em;
    align-items: flex-start;
    line-height: 1.5;
  }
  .hero-eyebrow i { margin-top: .42rem; }
  .hero-visual { height: 280px; }
  .hero-stats { gap: 1rem .8rem; }
  .metrics-row { grid-template-columns: 1fr 1fr; }
  .dif-cards { grid-template-columns: 1fr; }
  #mobile-cta .btn-cta { font-size: .9rem; padding: .8rem .8rem; }
}

/* ═══ PAISAGEM BAIXA (celular deitado) ═══ */
@media (max-height: 520px) and (orientation: landscape) {
  #hero { padding-top: calc(var(--nav-h) + 20px); }
  .hero-visual { height: 240px; }
}

/* ═══ ACESSIBILIDADE ═══ */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
  .reveal, .reveal-left { opacity: 1; transform: none; }
}
