:root {
  --type-body: 1.0625rem;
  --type-support: 1rem;
  --type-small: .9375rem;
  --type-meta: .875rem;
}

body {
  font-size: var(--type-body);
  line-height: 1.62;
}

/* Shared utility scale */
.text-xs {
  font-size: var(--type-meta) !important;
  line-height: 1.45 !important;
}

.text-sm {
  font-size: var(--type-small) !important;
  line-height: 1.55 !important;
}

.text-base {
  font-size: var(--type-body) !important;
  line-height: 1.55 !important;
}

.text-lg {
  font-size: 1.1875rem !important;
  line-height: 1.55 !important;
}

.text-xl {
  font-size: 1.375rem !important;
  line-height: 1.35 !important;
}

.text-2xl {
  font-size: 1.625rem !important;
  line-height: 1.28 !important;
}

.text-3xl {
  font-size: 2rem !important;
  line-height: 1.18 !important;
}

.text-4xl {
  font-size: 2.5rem !important;
  line-height: 1.1 !important;
}

.eyebrow,
.legal-eyebrow {
  font-size: var(--type-meta) !important;
  line-height: 1.4;
}

.lede {
  font-size: 1.25rem;
  line-height: 1.6;
}

.pill,
.chip {
  font-size: var(--type-meta);
  line-height: 1.4;
}

.chip {
  padding: .45rem .9rem;
}

button,
input,
select,
textarea {
  font-size: 1rem;
  line-height: 1.5;
}

label {
  font-size: var(--type-small);
  line-height: 1.45;
}

.btn-primary,
.btn-secondary,
.btn-invert,
.tab {
  font-size: 1rem;
  line-height: 1.45;
}

/* Repeated technical and card labels */
.faux-browser-label,
.finding .finding-priority,
.finding .finding-tag,
.finding-priority-pill,
.package-count,
.deliverable-number,
.priority-chip,
.faq-heading,
.faq-heading-icon {
  font-size: var(--type-meta) !important;
  line-height: 1.35;
}

.num-badge,
.finding .num-badge {
  width: 1.6rem;
  height: 1.6rem;
  font-size: var(--type-meta);
}

.finding .finding-title {
  font-size: 1.0625rem;
  line-height: 1.4;
}

.sign-list li {
  font-size: var(--type-small);
  line-height: 1.5;
}

.buying-fact span,
.bio-panel-label {
  font-size: var(--type-meta) !important;
  line-height: 1.4;
}

.form-merged .field {
  min-height: 3rem;
}

/* The full sample review has its own report-style type system. */
.sample-review-page {
  font-size: var(--type-body);
}

.sample-review-page .back-link,
.sample-review-page .proof-summary span,
.sample-review-page .review-detail h3,
.sample-review-page .review-detail li,
.sample-review-page figcaption,
.sample-review-page details > summary,
.sample-review-page .comparison-label,
.sample-review-page .full-example-link {
  font-size: var(--type-small) !important;
  line-height: 1.55;
}

.sample-review-page .number,
.sample-review-page .category,
.sample-review-page .priority,
.sample-review-page .note-label,
.sample-review-page .section-marker,
.sample-review-page .comparison-section-marker {
  font-size: var(--type-meta) !important;
  line-height: 1.35;
}

.sample-review-page .review-detail h3,
.sample-review-page .note-label {
  font-weight: 700;
}

.sample-review-page .before-annotation span {
  font-size: .75rem !important;
  line-height: 1.3;
}

.sample-review-page .before-annotation strong {
  font-size: .8125rem !important;
  line-height: 1.35;
}

.sample-review-page .supporting-note p,
.sample-review-page .featured-review p,
.sample-review-page .change-request,
.sample-review-page .closing-cta p {
  line-height: 1.65;
}

@media (min-width: 640px) {
  .sm\:text-xl {
    font-size: 1.375rem !important;
    line-height: 1.35 !important;
  }

  .sm\:text-2xl {
    font-size: 1.625rem !important;
    line-height: 1.28 !important;
  }

  .sm\:text-4xl {
    font-size: 2.5rem !important;
    line-height: 1.1 !important;
  }

  .sm\:text-5xl {
    font-size: 3.125rem !important;
    line-height: 1.02 !important;
  }
}

@media (min-width: 1024px) {
  .lg\:text-6xl {
    font-size: 3.875rem !important;
    line-height: 1.04 !important;
  }
}

@media (max-width: 639px) {
  :root {
    --type-body: 1rem;
    --type-support: .9375rem;
  }

  .lede {
    font-size: 1.125rem;
  }

  .text-4xl {
    font-size: 2.25rem !important;
  }

  .sample-review-page .proof-summary {
    gap: .65rem;
  }
}
