/* ==========================================================================
   DUOP — Sistema Tipográfico Unificado (v2)
   Fonte: Montserrat
   ========================================================================== */

:root {
  --text-xs:    11px;
  --text-sm:    13px;
  --text-base:  15px;
  --text-md:    17px;
  --text-lg:    20px;
  --text-xl:    clamp(22px, 2.4vw, 28px);
  --text-2xl:   clamp(28px, 3vw, 36px);
  --text-3xl:   clamp(34px, 3.8vw, 46px);
  --text-4xl:   clamp(42px, 4.8vw, 60px);

  --weight-light:    300;
  --weight-regular:  400;
  --weight-medium:   500;
  --weight-semibold: 600;
  --weight-bold:     700;

  --leading-tight:   1.1;
  --leading-snug:    1.25;
  --leading-normal:  1.5;
  --leading-relaxed: 1.7;

  --tracking-tight:  -1.2px;
  --tracking-normal: 0;
  --tracking-wide:   1.8px;
}

/* ---------- Base ---------- */
html, body {
  font-family: 'Montserrat', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
}
body {
  font-size: var(--text-base) !important;
  font-weight: var(--weight-light) !important;
  line-height: var(--leading-normal) !important;
  -webkit-font-smoothing: antialiased;
}
@media (max-width: 768px) {
  body { font-weight: var(--weight-regular) !important; }
}
p, li, span, a, label, input, textarea, select, button, td, th, dd, dt {
  font-family: 'Montserrat', sans-serif !important;
}

/* ---------- HERO ---------- */
h1.hero-title {
  font-family: 'Montserrat', sans-serif !important;
  font-size: var(--text-xl) !important;
  font-weight: var(--weight-regular) !important;
  line-height: var(--leading-relaxed) !important;
  letter-spacing: var(--tracking-normal) !important;
  color: var(--text-muted) !important;
  margin-bottom: 12px !important;
}
h1.hero-title em {
  display: block !important;
  font-style: italic !important;
  font-weight: var(--weight-semibold) !important;
  font-size: var(--text-4xl) !important;
  line-height: var(--leading-tight) !important;
  letter-spacing: var(--tracking-tight) !important;
  white-space: normal !important;
  margin-bottom: 10px !important;
  color: var(--text) !important;
}
.hero-sub {
  font-size: var(--text-md) !important;
  font-weight: var(--weight-regular) !important;
  line-height: var(--leading-relaxed) !important;
  max-width: 580px !important;
  margin-bottom: 44px !important;
}
.meta-item .num {
  font-size: var(--text-3xl) !important;
  font-weight: var(--weight-semibold) !important;
  letter-spacing: var(--tracking-tight) !important;
  line-height: 1 !important;
}
.meta-item .label {
  font-size: var(--text-xs) !important;
  font-weight: var(--weight-regular) !important;
  margin-top: 4px !important;
  line-height: var(--leading-normal) !important;
}

/* ---------- PILLAR CARDS ---------- */
.pillar h3 {
  font-family: 'Montserrat', sans-serif !important;
  font-size: var(--text-3xl) !important;
  font-weight: var(--weight-semibold) !important;
  letter-spacing: -0.4px !important;
  line-height: var(--leading-snug) !important;
  margin-bottom: 12px !important;
}
.pillar .lead {
  font-size: var(--text-base) !important;
  font-weight: var(--weight-regular) !important;
  line-height: var(--leading-relaxed) !important;
  margin-bottom: 28px !important;
}
.pillar ul li {
  font-size: var(--text-sm) !important;
  font-weight: var(--weight-regular) !important;
  line-height: var(--leading-normal) !important;
}

/* ---------- SECTION HEADS ---------- */
.section-head h2,
h2.section-head,
.wealth-grid .copy h2,
.platform-copy h2,
.indep-grid h2 {
  font-family: 'Montserrat', sans-serif !important;
  font-size: var(--text-3xl) !important;
  font-weight: var(--weight-semibold) !important;
  letter-spacing: var(--tracking-tight) !important;
  line-height: var(--leading-snug) !important;
  margin-bottom: 14px !important;
}
.section-head p {
  font-size: var(--text-md) !important;
  font-weight: var(--weight-regular) !important;
  line-height: var(--leading-relaxed) !important;
  max-width: 600px !important;
}

/* ---------- INDEPENDENCE CARDS ---------- */
.indep-card .x {
  font-size: var(--text-3xl) !important;
  font-style: italic !important;
  font-weight: var(--weight-medium) !important;
  line-height: 1 !important;
}
.indep-card .text strong {
  font-size: var(--text-xl) !important;
  font-weight: var(--weight-semibold) !important;
  letter-spacing: -0.3px !important;
  font-style: italic !important;
}
.indep-card .text span {
  font-size: var(--text-sm) !important;
  font-weight: var(--weight-regular) !important;
  line-height: var(--leading-normal) !important;
  margin-top: 4px !important;
}

/* ---------- WEALTH DETAIL / PLATFORM ---------- */
.wealth-grid .copy p,
.platform-copy > p {
  font-size: var(--text-base) !important;
  font-weight: var(--weight-regular) !important;
  line-height: var(--leading-relaxed) !important;
  margin-bottom: 28px !important;
}
.feat-list li strong {
  font-size: var(--text-base) !important;
  font-weight: var(--weight-semibold) !important;
  display: block !important;
  margin-bottom: 2px !important;
}
.feat-list li span {
  font-size: var(--text-sm) !important;
  font-weight: var(--weight-regular) !important;
  line-height: var(--leading-normal) !important;
}

/* ---------- PLATAFORMA features grid ---------- */
.feat-num .n {
  font-size: var(--text-2xl) !important;
  font-style: italic !important;
  font-weight: var(--weight-regular) !important;
  letter-spacing: -1px !important;
  line-height: 1 !important;
}
.feat-num .tag {
  font-size: 10px !important;
  font-weight: var(--weight-semibold) !important;
  letter-spacing: var(--tracking-wide) !important;
  text-transform: uppercase !important;
}
.feat-content h5 {
  font-family: 'Montserrat', sans-serif !important;
  font-size: var(--text-base) !important;
  font-weight: var(--weight-semibold) !important;
  line-height: var(--leading-snug) !important;
  letter-spacing: -0.1px !important;
  margin-bottom: 8px !important;
}
.feat-content p {
  font-size: var(--text-sm) !important;
  font-weight: var(--weight-regular) !important;
  line-height: var(--leading-relaxed) !important;
}

/* ---------- WEALTH VISUAL ---------- */
.wealth-visual .quote {
  font-size: var(--text-lg) !important;
  font-weight: var(--weight-regular) !important;
  font-style: italic !important;
  line-height: var(--leading-normal) !important;
  letter-spacing: -0.2px !important;
}
.wealth-visual .quote-author {
  font-size: var(--text-xs) !important;
  font-weight: var(--weight-medium) !important;
  margin-top: 14px !important;
}

/* ---------- OLIVIA ---------- */
.olivia-content h3 {
  font-family: 'Montserrat', sans-serif !important;
  font-size: var(--text-2xl) !important;
  font-weight: var(--weight-regular) !important;
  font-style: italic !important;
  line-height: 1.35 !important;
  letter-spacing: -0.4px !important;
  margin-bottom: 22px !important;
}
.olivia-content .author {
  font-size: var(--text-sm) !important;
  font-weight: var(--weight-regular) !important;
  line-height: var(--leading-relaxed) !important;
}
.olivia-content .author strong {
  font-size: var(--text-base) !important;
  font-weight: var(--weight-semibold) !important;
  display: block !important;
  margin-bottom: 3px !important;
}

/* ---------- AI INFRA ---------- */
.ai-grid h3 {
  font-family: 'Montserrat', sans-serif !important;
  font-size: var(--text-xl) !important;
  font-weight: var(--weight-semibold) !important;
  letter-spacing: -0.4px !important;
  line-height: var(--leading-snug) !important;
}
.ai-grid p {
  font-size: var(--text-base) !important;
  font-weight: var(--weight-regular) !important;
  line-height: var(--leading-relaxed) !important;
}

/* ---------- CTA ---------- */
.cta h2 {
  font-family: 'Montserrat', sans-serif !important;
  font-size: var(--text-4xl) !important;
  font-weight: var(--weight-semibold) !important;
  letter-spacing: var(--tracking-tight) !important;
  line-height: var(--leading-tight) !important;
  margin-bottom: 18px !important;
  max-width: 760px !important;
}
.cta p {
  font-size: var(--text-md) !important;
  font-weight: var(--weight-regular) !important;
  line-height: var(--leading-relaxed) !important;
  max-width: 540px !important;
}

/* ---------- EYEBROWS ---------- */
.eyebrow,
.olivia-eyebrow,
.ai-tag,
.kicker,
.section-eyebrow {
  font-size: 11px !important;
  font-weight: var(--weight-semibold) !important;
  letter-spacing: var(--tracking-wide) !important;
  text-transform: uppercase !important;
  margin-bottom: 16px !important;
  line-height: 1 !important;
}

/* ---------- ITALIC EM em destaques ---------- */
h1.hero-title em, .platform-copy h2 em, .pillar h3 .accent {
  font-style: italic !important;
  font-weight: var(--weight-semibold) !important;
}

/* ---------- NAV ---------- */
.nav-links a {
  font-size: var(--text-sm) !important;
  font-weight: var(--weight-medium) !important;
}
.nav-cta {
  font-size: 12px !important;
  font-weight: var(--weight-semibold) !important;
}
.logo-text {
  font-size: 22px !important;
  font-weight: var(--weight-semibold) !important;
  letter-spacing: -0.8px !important;
}

/* ---------- FOOTER ---------- */
footer {
  font-size: var(--text-sm) !important;
  font-weight: var(--weight-regular) !important;
}
.footer-col h6 {
  font-size: var(--text-xs) !important;
  font-weight: var(--weight-semibold) !important;
  letter-spacing: var(--tracking-wide) !important;
  text-transform: uppercase !important;
  margin-bottom: 16px !important;
}
.footer-col a {
  font-size: var(--text-sm) !important;
  font-weight: var(--weight-regular) !important;
  line-height: var(--leading-normal) !important;
  padding: 5px 0 !important;
}
.footer-bottom { font-size: 12px !important; }

/* ---------- DASHBOARD MOCK em mobile ---------- */
@media (max-width: 768px) {
  .dash-mock { font-size: 12px !important; }
  .kpi-head,
  .dash-kpi ul li,
  .dcard-title { font-size: 11px !important; }
  .dcard-sub { font-size: 10.5px !important; }
}

/* ---------- LOGO (lockup oficial) ---------- */
.logo-mark { height: 44px !important; width: auto !important; display: inline-block; flex-shrink: 0; }
.logo-mark img { height: 100%; width: auto; display: block; object-fit: contain; }
.logo-mark svg { display: none !important; }
.logo .logo-text { display: none !important; }
.footer-brand .logo-text { display: none !important; }
nav.top .logo { display: flex !important; align-items: center; }
nav.top .logo-mark { height: 36px !important; width: auto !important; }
nav.top .logo-mark img { height: 100% !important; width: auto !important; display: block; }
nav.top .row { height: 72px !important; }
