/* Global typography tightening pass - 2026-04-04 */
:root {
  --aaiq-type-body: 15px;
  --aaiq-type-body-sm: 14px;
  --aaiq-type-h1: clamp(2.15rem, 1.65rem + 1.8vw, 3.35rem);
  --aaiq-type-h2: clamp(1.55rem, 1.25rem + 1.1vw, 2.3rem);
  --aaiq-type-h3: clamp(1.05rem, 0.98rem + 0.34vw, 1.28rem);
  --aaiq-type-lead: clamp(0.98rem, 0.95rem + 0.2vw, 1.08rem);
  --aaiq-type-copy: 0.95rem;
  --aaiq-type-small: 0.875rem;
  --aaiq-type-label: 0.82rem;
  --aaiq-line-tight: 1.08;
  --aaiq-line-title: 1.14;
  --aaiq-line-copy: 1.58;
}

html { font-size: var(--aaiq-type-body); }
body {
  font-size: var(--aaiq-type-copy);
  line-height: var(--aaiq-line-copy);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

h1, .h1,
.hero-title,
.premium-hero-title,
.display-1, .display-2 {
  font-size: var(--aaiq-type-h1) !important;
  line-height: var(--aaiq-line-tight) !important;
  letter-spacing: -0.038em !important;
}

h2, .h2,
.section-title,
.display-3,
.display-4,
.premium-section-title,
.section-heading {
  font-size: var(--aaiq-type-h2) !important;
  line-height: var(--aaiq-line-title) !important;
  letter-spacing: -0.03em !important;
}

h3, .h3,
.card-title,
.premium-card-title,
.plan-title,
.feature-title,
.accordion-button,
.modal-title {
  font-size: var(--aaiq-type-h3) !important;
  line-height: 1.22 !important;
  letter-spacing: -0.02em !important;
}

p, li, td, th, input, select, textarea, button, label, .btn,
.form-control, .form-select, .dropdown-item, .nav-link, .navbar-nav .nav-link,
.text-body, .card-text, .feature-list li, .table, .table td, .table th {
  font-size: var(--aaiq-type-copy);
}

.lead,
.hero-lead,
.premium-hero-lead,
.section-lead,
.subtitle,
.sub-title,
.page-subtitle,
.intro-text,
.eyebrow + p,
.text-large {
  font-size: var(--aaiq-type-lead) !important;
  line-height: 1.52 !important;
}

small, .small, .text-muted, .fine-print, .legal-copy,
.badge, .chip, .hero-chip, .meta, .kpi-label, .eyebrow,
.form-label, .billing-switch-label {
  font-size: var(--aaiq-type-small) !important;
}

label,
.table thead th,
.pricing-meta,
.plan-kicker,
.overline,
.eyebrow,
.stat-label,
.metric-label,
.navbar .btn,
.btn-sm {
  font-size: var(--aaiq-type-label) !important;
  letter-spacing: 0.01em;
}

.card p,
.plan-card p,
.pricing-card p,
.addon-card p,
.compare-table-wrap td,
.compare-table-wrap th,
.compact-table-wrap td,
.compact-table-wrap th,
.bundle-pricing-card p,
.ui-shot-card p {
  font-size: 0.93rem !important;
}

.plan-price,
.compact-plan-price,
.price,
.pricing-value {
  line-height: 1.0 !important;
}

.table,
.compare-table-wrap,
.compact-table-wrap {
  font-size: 0.92rem !important;
}

input::placeholder,
textarea::placeholder {
  font-size: 0.92rem;
}

.aaiq-sr-only-h2 {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

@media (max-width: 991.98px) {
  :root {
    --aaiq-type-body: 14px;
    --aaiq-type-copy: 0.94rem;
    --aaiq-type-lead: 0.98rem;
  }
  h1, .h1, .hero-title, .premium-hero-title, .display-1, .display-2 {
    letter-spacing: -0.032em !important;
  }
}
