/* Sleep Manager central typography system.
 * Page-family migration is controlled by the typography implementation plan.
 */

@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("../fonts/inter-latin-normal-400-700.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: "Inter";
  font-style: italic;
  font-weight: 400 600;
  font-display: swap;
  src: url("../fonts/inter-latin-italic-400-600.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: "Outfit";
  font-style: normal;
  font-weight: 500 800;
  font-display: swap;
  src: url("../fonts/outfit-latin-normal-500-800.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
  /* Families */
  --sm-font-display: "Outfit", Arial, sans-serif;
  --sm-font-body: "Inter", Arial, sans-serif;

  /* Compatibility aliases used while page families are migrated. */
  --font-display: var(--sm-font-display);
  --font-body: var(--sm-font-body);
  --display: var(--sm-font-display);
  --body: var(--sm-font-body);

  /* Weights and styles */
  --sm-weight-regular: 400;
  --sm-weight-medium: 500;
  --sm-weight-semibold: 600;
  --sm-weight-bold: 700;
  --sm-weight-brand: 800;
  --sm-style-normal: normal;
  --sm-style-italic: italic;

  /* Text sizes */
  --sm-text-brand: 1.125rem;
  --sm-text-navigation: 0.875rem;
  --sm-text-page-title: 3rem;
  --sm-text-section-title: 1.875rem;
  --sm-text-subsection-title: 1.375rem;
  --sm-text-lead: 1.125rem;
  --sm-text-reading: 1.0625rem;
  --sm-text-body: 1rem;
  --sm-text-form: 1rem;
  --sm-text-label: 0.9375rem;
  --sm-text-table: 0.9375rem;
  --sm-text-supporting: 0.875rem;
  --sm-text-footer: 0.875rem;
  --sm-text-kicker: 0.8125rem;
  --sm-text-copyright: 0.8125rem;
  --sm-text-button: 0.875rem;
  --sm-text-result-value: 2rem;
  --sm-text-result-hero: 3rem;

  /* Line heights and tracking */
  --sm-line-page-title: 1.15;
  --sm-line-heading: 1.25;
  --sm-line-lead: 1.65;
  --sm-line-body: 1.7;
  --sm-line-compact: 1.45;
  --sm-letter-normal: 0;
}

:where(html) {
  font-family: var(--sm-font-body);
  letter-spacing: var(--sm-letter-normal);
}

:where(body) {
  font-family: var(--sm-font-body);
  font-size: var(--sm-text-body);
  font-style: var(--sm-style-normal);
  font-weight: var(--sm-weight-regular);
  line-height: var(--sm-line-body);
  letter-spacing: var(--sm-letter-normal);
  font-synthesis: none;
}

:where(h1, h2, h3, h4, h5, h6) {
  font-family: var(--sm-font-display);
  font-style: var(--sm-style-normal);
  letter-spacing: var(--sm-letter-normal);
}

:where(button, input, select, textarea) {
  font-family: var(--sm-font-body);
  font-size: var(--sm-text-form);
  letter-spacing: var(--sm-letter-normal);
}

:where(strong, b) {
  font-weight: var(--sm-weight-bold);
}

:where(em, i) {
  font-style: var(--sm-style-italic);
}

:where(small, figcaption, caption) {
  font-family: var(--sm-font-body);
  font-size: var(--sm-text-supporting);
  font-weight: var(--sm-weight-regular);
  line-height: var(--sm-line-compact);
}

.sm-type-page-kicker {
  font-family: var(--sm-font-display);
  font-size: var(--sm-text-kicker);
  font-style: var(--sm-style-normal);
  font-weight: var(--sm-weight-bold);
  line-height: var(--sm-line-compact);
  letter-spacing: var(--sm-letter-normal);
  text-transform: uppercase;
}

.sm-type-page-title {
  font-family: var(--sm-font-display);
  font-size: var(--sm-text-page-title);
  font-style: var(--sm-style-normal);
  font-weight: var(--sm-weight-bold);
  line-height: var(--sm-line-page-title);
  letter-spacing: var(--sm-letter-normal);
}

.sm-type-page-lead {
  font-family: var(--sm-font-body);
  font-size: var(--sm-text-lead);
  font-style: var(--sm-style-normal);
  font-weight: var(--sm-weight-regular);
  line-height: var(--sm-line-lead);
  letter-spacing: var(--sm-letter-normal);
}

.sm-type-section-title {
  font-family: var(--sm-font-display);
  font-size: var(--sm-text-section-title);
  font-style: var(--sm-style-normal);
  font-weight: var(--sm-weight-bold);
  line-height: var(--sm-line-heading);
  letter-spacing: var(--sm-letter-normal);
}

.sm-type-subsection-title {
  font-family: var(--sm-font-display);
  font-size: var(--sm-text-subsection-title);
  font-style: var(--sm-style-normal);
  font-weight: var(--sm-weight-bold);
  line-height: var(--sm-line-heading);
  letter-spacing: var(--sm-letter-normal);
}

.sm-type-reading {
  font-family: var(--sm-font-body);
  font-size: var(--sm-text-reading);
  font-style: var(--sm-style-normal);
  font-weight: var(--sm-weight-regular);
  line-height: var(--sm-line-body);
  letter-spacing: var(--sm-letter-normal);
}

.sm-type-body,
.sm-type-result-copy {
  font-family: var(--sm-font-body);
  font-size: var(--sm-text-body);
  font-style: var(--sm-style-normal);
  font-weight: var(--sm-weight-regular);
  line-height: var(--sm-line-body);
  letter-spacing: var(--sm-letter-normal);
}

.sm-type-supporting,
.sm-type-meta {
  font-family: var(--sm-font-body);
  font-size: var(--sm-text-supporting);
  font-style: var(--sm-style-normal);
  font-weight: var(--sm-weight-regular);
  line-height: var(--sm-line-compact);
  letter-spacing: var(--sm-letter-normal);
}

.sm-type-label {
  font-family: var(--sm-font-body);
  font-size: var(--sm-text-label);
  font-style: var(--sm-style-normal);
  font-weight: var(--sm-weight-semibold);
  line-height: var(--sm-line-compact);
  letter-spacing: var(--sm-letter-normal);
}

.sm-type-control {
  font-family: var(--sm-font-body);
  font-size: var(--sm-text-form);
  font-style: var(--sm-style-normal);
  font-weight: var(--sm-weight-medium);
  line-height: var(--sm-line-compact);
  letter-spacing: var(--sm-letter-normal);
}

.sm-type-important,
.sm-type-positive,
.sm-type-announcement,
.sm-type-warning {
  font-family: var(--sm-font-body);
  font-size: var(--sm-text-body);
  font-style: var(--sm-style-normal);
  font-weight: var(--sm-weight-semibold);
  line-height: var(--sm-line-body);
  letter-spacing: var(--sm-letter-normal);
}

.sm-type-caution {
  font-family: var(--sm-font-body);
  font-size: var(--sm-text-body);
  font-style: var(--sm-style-normal);
  font-weight: var(--sm-weight-medium);
  line-height: var(--sm-line-body);
  letter-spacing: var(--sm-letter-normal);
}

.sm-type-result-value {
  font-family: var(--sm-font-display);
  font-size: var(--sm-text-result-value);
  font-style: var(--sm-style-normal);
  font-weight: var(--sm-weight-bold);
  line-height: var(--sm-line-heading);
  letter-spacing: var(--sm-letter-normal);
}

.sm-header-brand-title,
.sm-footer-brand-title {
  font-family: var(--sm-font-display);
  font-size: var(--sm-text-brand);
  font-weight: var(--sm-weight-brand);
  letter-spacing: var(--sm-letter-normal);
}

.sm-header-btn {
  font-family: var(--sm-font-display);
  font-size: var(--sm-text-navigation);
  font-weight: var(--sm-weight-bold);
  line-height: var(--sm-line-compact);
  letter-spacing: var(--sm-letter-normal);
}

.sm-footer-col-title {
  font-family: var(--sm-font-display);
  font-size: var(--sm-text-footer);
  font-weight: var(--sm-weight-bold);
  letter-spacing: var(--sm-letter-normal);
}

.sm-footer-brand-desc,
.sm-footer-brand-link,
.sm-footer-links,
.sm-footer-disclaimer {
  font-family: var(--sm-font-body);
  font-size: var(--sm-text-footer);
  font-weight: var(--sm-weight-regular);
  line-height: var(--sm-line-body);
  letter-spacing: var(--sm-letter-normal);
}

.sm-footer-copyright {
  font-family: var(--sm-font-body);
  font-size: var(--sm-text-copyright);
  font-weight: var(--sm-weight-regular);
  line-height: var(--sm-line-compact);
  letter-spacing: var(--sm-letter-normal);
}

.sm-analytics-consent {
  font-family: var(--sm-font-body);
  font-size: var(--sm-text-body);
  font-weight: var(--sm-weight-regular);
  line-height: var(--sm-line-compact);
  letter-spacing: var(--sm-letter-normal);
}

.sm-analytics-consent h2 {
  font-family: var(--sm-font-display);
  font-size: var(--sm-text-subsection-title);
  font-weight: var(--sm-weight-bold);
  line-height: var(--sm-line-heading);
  letter-spacing: var(--sm-letter-normal);
}

.sm-analytics-consent p {
  font-family: var(--sm-font-body);
  font-size: var(--sm-text-body);
  font-weight: var(--sm-weight-regular);
  line-height: var(--sm-line-body);
}

.sm-analytics-choice,
.sm-analytics-footer-control {
  font-family: var(--sm-font-display);
  font-size: var(--sm-text-button);
  font-weight: var(--sm-weight-bold);
  line-height: var(--sm-line-compact);
  letter-spacing: var(--sm-letter-normal);
}

/* Phase T2: shared content roles used by the methodology page. */
.sm-typography-t2 .sm-component h2 {
  font-family: var(--sm-font-display);
  font-size: var(--sm-text-section-title);
  font-weight: var(--sm-weight-bold);
  line-height: var(--sm-line-heading);
  letter-spacing: var(--sm-letter-normal);
}

.sm-typography-t2 .sm-component h3 {
  font-family: var(--sm-font-display);
  font-size: var(--sm-text-subsection-title);
  font-weight: var(--sm-weight-bold);
  line-height: var(--sm-line-heading);
  letter-spacing: var(--sm-letter-normal);
}

.sm-typography-t2 .sm-component p,
.sm-typography-t2 .sm-component li,
.sm-typography-t2 .sm-component dd,
.sm-typography-t2 .sm-component dt {
  font-family: var(--sm-font-body);
  font-size: var(--sm-text-reading);
  font-weight: var(--sm-weight-regular);
  line-height: var(--sm-line-body);
  letter-spacing: var(--sm-letter-normal);
}

.sm-typography-t2 .sm-eyebrow,
.sm-typography-t2 .sm-tool-contract dt {
  font-family: var(--sm-font-display);
  font-size: var(--sm-text-kicker);
  font-weight: var(--sm-weight-bold);
  line-height: var(--sm-line-compact);
  letter-spacing: var(--sm-letter-normal);
  text-transform: uppercase;
}

.sm-typography-t2 .sm-quick-answer p,
.sm-typography-t2 .sm-evidence-note,
.sm-typography-t2 .sm-tool-contract dd {
  font-family: var(--sm-font-body);
  font-size: var(--sm-text-body);
  font-weight: var(--sm-weight-regular);
  line-height: var(--sm-line-body);
  letter-spacing: var(--sm-letter-normal);
}

.sm-typography-t2 .sm-safety p,
.sm-typography-t2 .sm-safety li,
.sm-typography-t2 .sm-tool-boundary {
  font-family: var(--sm-font-body);
  font-size: var(--sm-text-body);
  font-weight: var(--sm-weight-semibold);
  line-height: var(--sm-line-body);
  letter-spacing: var(--sm-letter-normal);
}

.sm-typography-t2 .sm-table-summary,
.sm-typography-t2 .sm-scroll-cue {
  font-family: var(--sm-font-body);
  font-size: var(--sm-text-supporting);
  font-weight: var(--sm-weight-regular);
  line-height: var(--sm-line-compact);
  letter-spacing: var(--sm-letter-normal);
}

.sm-typography-t2 .sm-method-table caption {
  font-family: var(--sm-font-body);
  font-size: var(--sm-text-supporting);
  font-weight: var(--sm-weight-bold);
  line-height: var(--sm-line-compact);
  letter-spacing: var(--sm-letter-normal);
}

.sm-typography-t2 .sm-method-table th,
.sm-typography-t2 .sm-method-table td,
.sm-typography-t2 .sm-decision-table th,
.sm-typography-t2 .sm-decision-table td {
  font-family: var(--sm-font-body);
  font-size: var(--sm-text-table);
  line-height: var(--sm-line-compact);
  letter-spacing: var(--sm-letter-normal);
}

.sm-typography-t2 .sm-method-table th,
.sm-typography-t2 .sm-decision-table th {
  font-weight: var(--sm-weight-bold);
}

.sm-typography-t2 .sm-next-step__primary {
  font-family: var(--sm-font-display);
  font-size: var(--sm-text-button);
  font-weight: var(--sm-weight-bold);
  line-height: var(--sm-line-compact);
  letter-spacing: var(--sm-letter-normal);
}

.sm-typography-t2 .sm-component details > summary {
  font-family: var(--sm-font-display);
  font-size: var(--sm-text-body);
  font-weight: var(--sm-weight-bold);
  line-height: var(--sm-line-compact);
  letter-spacing: var(--sm-letter-normal);
}

/* Phase T3: long-form article typography. The article scope is intentionally
 * loaded after page-level visual CSS so these shared reading roles stay
 * consistent across every article template.
 */
.sm-typography-t3,
.sm-typography-t3 .article-shell {
  font-family: var(--sm-font-body);
  font-size: var(--sm-text-body);
  font-style: var(--sm-style-normal);
  font-weight: var(--sm-weight-regular);
  line-height: var(--sm-line-body);
  letter-spacing: var(--sm-letter-normal);
}

.sm-typography-t3 .article-shell :where(h1, h2, h3, h4, h5, h6) {
  font-family: var(--sm-font-display);
  font-style: var(--sm-style-normal);
  letter-spacing: var(--sm-letter-normal);
  text-wrap: balance;
  overflow-wrap: break-word;
}

.sm-typography-t3 .article-shell h1 {
  font-size: var(--sm-text-page-title);
  font-weight: var(--sm-weight-brand);
  line-height: var(--sm-line-page-title);
}

.sm-typography-t3 .article-shell h2 {
  font-size: var(--sm-text-section-title);
  font-weight: var(--sm-weight-bold);
  line-height: var(--sm-line-heading);
}

.sm-typography-t3 .article-shell h3,
.sm-typography-t3 .article-shell h4 {
  font-size: var(--sm-text-subsection-title);
  font-weight: var(--sm-weight-bold);
  line-height: var(--sm-line-heading);
}

.sm-typography-t3 .article-shell :where(p, li, dd) {
  font-family: var(--sm-font-body);
  font-size: var(--sm-text-reading);
  font-style: var(--sm-style-normal);
  font-weight: var(--sm-weight-regular);
  line-height: var(--sm-line-body);
  letter-spacing: var(--sm-letter-normal);
}

.sm-typography-t3 .article-shell :where(.dek, .direct-answer, .quick-answer) p,
.sm-typography-t3 .article-shell p.dek,
.sm-typography-t3 .article-shell p.direct-answer {
  font-size: var(--sm-text-lead);
  font-weight: var(--sm-weight-regular);
  line-height: var(--sm-line-lead);
}

.sm-typography-t3 .article-shell :where(.eyebrow, .section-label, .action-label, .option-tag) {
  font-family: var(--sm-font-display);
  font-size: var(--sm-text-kicker);
  font-style: var(--sm-style-normal);
  font-weight: var(--sm-weight-bold);
  line-height: var(--sm-line-compact);
  letter-spacing: var(--sm-letter-normal);
  text-transform: uppercase;
}

.sm-typography-t3 .article-shell :where(.breadcrumb, .meta-row, .author-info, .author-line),
.sm-typography-t3 .article-shell .author-byline span,
.sm-typography-t3 .article-shell .author-info span,
.sm-typography-t3 .article-shell :where(figcaption, .image-boundary, .visual-note, .table-note, .editorial-note, .survey-caption, .map-reading-note, .stage-caution, .share-status) {
  font-family: var(--sm-font-body);
  font-size: var(--sm-text-supporting);
  font-style: var(--sm-style-normal);
  font-weight: var(--sm-weight-regular);
  line-height: var(--sm-line-compact);
  letter-spacing: var(--sm-letter-normal);
}

.sm-typography-t3 .article-shell :where(.source-ref, .table-intro, .share-label),
.sm-typography-t3 .article-shell :where(dt, caption) {
  font-family: var(--sm-font-body);
  font-size: var(--sm-text-label);
  font-style: var(--sm-style-normal);
  font-weight: var(--sm-weight-semibold);
  line-height: var(--sm-line-compact);
  letter-spacing: var(--sm-letter-normal);
}

.sm-typography-t3 .article-shell :where(th, td) {
  font-family: var(--sm-font-body);
  font-size: var(--sm-text-table);
  font-style: var(--sm-style-normal);
  line-height: var(--sm-line-compact);
  letter-spacing: var(--sm-letter-normal);
}

.sm-typography-t3 .article-shell th {
  font-weight: var(--sm-weight-bold);
}

.sm-typography-t3 .article-shell td {
  font-weight: var(--sm-weight-regular);
}

.sm-typography-t3 .article-shell :where(.toc, .safety-priority, .safety-note, .help-box, .author-box, .related) h2 {
  font-size: var(--sm-text-subsection-title);
  font-weight: var(--sm-weight-bold);
  line-height: var(--sm-line-heading);
}

.sm-typography-t3 .article-shell :where(.toc, .sources) li,
.sm-typography-t3 .article-shell .related-card p,
.sm-typography-t3 .article-shell :where([class$="-card"], [class$="-item"], [class$="-step"]) p,
.sm-typography-t3 .article-shell :where(.evidence-note, .plain-note, .trial-boundary, .coffee-verdict, .example-note) p {
  font-size: var(--sm-text-body);
  line-height: var(--sm-line-body);
}

.sm-typography-t3 .article-shell :where([class$="-card"], [class$="-item"], [class$="-step"]) h3,
.sm-typography-t3 .article-shell :where(.figure-heading, .worksheet, .urgent-band) h3 {
  font-size: var(--sm-text-lead);
  font-weight: var(--sm-weight-bold);
  line-height: var(--sm-line-heading);
}

.sm-typography-t3 .article-shell :where(.toc a, summary, .primary-link, .secondary-link, button) {
  font-family: var(--sm-font-display);
  font-size: var(--sm-text-button);
  font-style: var(--sm-style-normal);
  font-weight: var(--sm-weight-bold);
  line-height: var(--sm-line-compact);
  letter-spacing: var(--sm-letter-normal);
}

.sm-typography-t3 .article-shell :where(.author-byline strong, .author-info strong, .related-card strong) {
  font-family: var(--sm-font-display);
  font-size: var(--sm-text-label);
  font-style: var(--sm-style-normal);
  font-weight: var(--sm-weight-bold);
  line-height: var(--sm-line-compact);
  letter-spacing: var(--sm-letter-normal);
}

.sm-typography-t3 .article-shell .sources li {
  font-size: var(--sm-text-supporting);
  line-height: var(--sm-line-body);
}

.sm-typography-t3 .article-shell .prompt-list q {
  font-style: var(--sm-style-italic);
  font-weight: var(--sm-weight-medium);
}

@media (max-width: 680px) {
  .sm-typography-t3 .article-shell .author-box > :last-child {
    min-width: 0;
  }

  .sm-typography-t3 .article-shell .author-box a {
    overflow-wrap: anywhere;
  }

  .sm-typography-t3 .article-shell .observation > div,
  .sm-typography-t3 .article-shell .observation :where(dt, dd) {
    min-width: 0;
    overflow-wrap: anywhere;
  }

  .sm-typography-t3 .article-shell .overview-grid > :where(.takeaways-card, .toc),
  .sm-typography-t3 .article-shell .overview-grid :where(.overview-card-header, .toc-header, .overview-title-group, .toc-title-group, .takeaways-list li, .toc-text) {
    min-width: 0;
    overflow-wrap: anywhere;
  }
}

/* Phase T4: interactive tools and reference utilities. */
body.sm-typography-t4 {
  font-family: var(--sm-font-body);
  font-size: var(--sm-text-body);
  font-style: var(--sm-style-normal);
  font-weight: var(--sm-weight-regular);
  line-height: var(--sm-line-body);
  letter-spacing: var(--sm-letter-normal);
}

/* Reserve page flow for the reusable fixed header on individual tool pages. */
body.sm-typography-t4 > #sm-header {
  display: block;
  min-height: 74px;
}

@media (max-width: 680px) {
  body.sm-typography-t4 > #sm-header {
    min-height: 62px;
  }
}

body.sm-typography-t4 .site-header,
body.sm-typography-t4 main,
body.sm-typography-t4 .site-footer {
  font-family: var(--sm-font-body);
  font-style: var(--sm-style-normal);
  font-weight: var(--sm-weight-regular);
  line-height: var(--sm-line-body);
  letter-spacing: var(--sm-letter-normal);
}

body.sm-typography-t4 .site-header .header-title {
  font-family: var(--sm-font-display);
  font-size: var(--sm-text-brand);
  font-weight: var(--sm-weight-brand);
  line-height: var(--sm-line-compact);
  letter-spacing: var(--sm-letter-normal);
}

body.sm-typography-t4 .site-header .nav-link {
  font-family: var(--sm-font-display);
  font-size: var(--sm-text-navigation);
  font-weight: var(--sm-weight-bold);
  line-height: var(--sm-line-compact);
  letter-spacing: var(--sm-letter-normal);
}

body.sm-typography-t4 main h1,
body.sm-typography-t4 main .hero-title {
  font-family: var(--sm-font-display);
  font-size: var(--sm-text-page-title);
  font-style: var(--sm-style-normal);
  font-weight: var(--sm-weight-brand);
  line-height: var(--sm-line-page-title);
  letter-spacing: var(--sm-letter-normal);
  text-wrap: balance;
  overflow-wrap: break-word;
}

body.sm-typography-t4 main h2,
body.sm-typography-t4 main .section-title,
body.sm-typography-t4 main .result-title,
body.sm-typography-t4 main .quiz-start-title,
body.sm-typography-t4 main .start-title,
body.sm-typography-t4 main .finder-start-title,
body.sm-typography-t4 main .body-clock-title {
  font-family: var(--sm-font-display);
  font-size: var(--sm-text-section-title);
  font-style: var(--sm-style-normal);
  font-weight: var(--sm-weight-bold);
  line-height: var(--sm-line-heading);
  letter-spacing: var(--sm-letter-normal);
  text-wrap: balance;
  overflow-wrap: break-word;
}

body.sm-typography-t4 main h3,
body.sm-typography-t4 main h4,
body.sm-typography-t4 main .question-title,
body.sm-typography-t4 main .quiz-q-text,
body.sm-typography-t4 main .result-section-title,
body.sm-typography-t4 main .term-name,
body.sm-typography-t4 main .claim-title,
body.sm-typography-t4 main .rc-title,
body.sm-typography-t4 main .pc-title {
  font-family: var(--sm-font-display);
  font-size: var(--sm-text-subsection-title);
  font-style: var(--sm-style-normal);
  font-weight: var(--sm-weight-bold);
  line-height: var(--sm-line-heading);
  letter-spacing: var(--sm-letter-normal);
  text-wrap: balance;
  overflow-wrap: break-word;
}

body.sm-typography-t4 main h5,
body.sm-typography-t4 main h6,
body.sm-typography-t4 main .faq-question,
body.sm-typography-t4 main .animal-name,
body.sm-typography-t4 main .scenario-title,
body.sm-typography-t4 main .decay-title,
body.sm-typography-t4 main .topic-name,
body.sm-typography-t4 main .tc-name {
  font-family: var(--sm-font-display);
  font-size: var(--sm-text-lead);
  font-style: var(--sm-style-normal);
  font-weight: var(--sm-weight-bold);
  line-height: var(--sm-line-heading);
  letter-spacing: var(--sm-letter-normal);
}

body.sm-typography-t4 main p,
body.sm-typography-t4 main li,
body.sm-typography-t4 main dd {
  font-family: var(--sm-font-body);
  font-size: var(--sm-text-body);
  font-style: var(--sm-style-normal);
  font-weight: var(--sm-weight-regular);
  line-height: var(--sm-line-body);
  letter-spacing: var(--sm-letter-normal);
}

body.sm-typography-t4 main .hero-sub {
  font-family: var(--sm-font-body);
  font-size: var(--sm-text-lead);
  font-style: var(--sm-style-normal);
  font-weight: var(--sm-weight-regular);
  line-height: var(--sm-line-lead);
  letter-spacing: var(--sm-letter-normal);
}

body.sm-typography-t4 main .hero-badge,
body.sm-typography-t4 main .eyebrow,
body.sm-typography-t4 main .section-kicker,
body.sm-typography-t4 main .result-kicker,
body.sm-typography-t4 main .question-dimension,
body.sm-typography-t4 main .quiz-q-dimension,
body.sm-typography-t4 main .rc-label,
body.sm-typography-t4 main .rh-label,
body.sm-typography-t4 main .claim-topic,
body.sm-typography-t4 main .confidence-label,
body.sm-typography-t4 main .kind-pill,
body.sm-typography-t4 main .topic-pill,
body.sm-typography-t4 main .option-tag {
  font-family: var(--sm-font-display);
  font-size: var(--sm-text-kicker);
  font-style: var(--sm-style-normal);
  font-weight: var(--sm-weight-bold);
  line-height: var(--sm-line-compact);
  letter-spacing: var(--sm-letter-normal);
  text-transform: uppercase;
}

body.sm-typography-t4 main .form-label,
body.sm-typography-t4 main .field-label,
body.sm-typography-t4 main .tp-label,
body.sm-typography-t4 main label,
body.sm-typography-t4 main legend,
body.sm-typography-t4 main dt,
body.sm-typography-t4 main .stat-label,
body.sm-typography-t4 main .pct-label,
body.sm-typography-t4 main .pre-day__label {
  font-family: var(--sm-font-body);
  font-size: var(--sm-text-label);
  font-style: var(--sm-style-normal);
  font-weight: var(--sm-weight-semibold);
  line-height: var(--sm-line-compact);
  letter-spacing: var(--sm-letter-normal);
}

body.sm-typography-t4 main input,
body.sm-typography-t4 main select,
body.sm-typography-t4 main textarea {
  font-family: var(--sm-font-body);
  font-size: var(--sm-text-form);
  font-style: var(--sm-style-normal);
  font-weight: var(--sm-weight-regular);
  line-height: var(--sm-line-compact);
  letter-spacing: var(--sm-letter-normal);
}

body.sm-typography-t4 main button:where(:not(.share-icon):not(.tp-btn):not(.clear-search):not(.claim-copy)),
body.sm-typography-t4 main .cta-btn,
body.sm-typography-t4 main .cta-btn-sm,
body.sm-typography-t4 main .calc-btn,
body.sm-typography-t4 main .audit-btn,
body.sm-typography-t4 main .btn-restart,
body.sm-typography-t4 main .restart-btn,
body.sm-typography-t4 main .primary-link,
body.sm-typography-t4 main .secondary-link,
body.sm-typography-t4 main .action-link,
body.sm-typography-t4 main .next-link,
body.sm-typography-t4 main .method-link,
body.sm-typography-t4 main .back-to-filters {
  font-family: var(--sm-font-display);
  font-size: var(--sm-text-button);
  font-style: var(--sm-style-normal);
  font-weight: var(--sm-weight-bold);
  line-height: var(--sm-line-compact);
  letter-spacing: var(--sm-letter-normal);
}

body.sm-typography-t4 main .answer-option,
body.sm-typography-t4 main .quiz-option,
body.sm-typography-t4 main .direction-option,
body.sm-typography-t4 main .sens-btn,
body.sm-typography-t4 main .person-btn,
body.sm-typography-t4 main .constraint-button,
body.sm-typography-t4 main .filter-btn,
body.sm-typography-t4 main .ampm-btn,
body.sm-typography-t4 main .city-toggle,
body.sm-typography-t4 main .preset-pill,
body.sm-typography-t4 main .category-header {
  font-family: var(--sm-font-body);
  font-size: var(--sm-text-form);
  font-style: var(--sm-style-normal);
  font-weight: var(--sm-weight-semibold);
  line-height: var(--sm-line-compact);
  letter-spacing: var(--sm-letter-normal);
}

body.sm-typography-t4 main .sens-label,
body.sm-typography-t4 main .city-toggle__text,
body.sm-typography-t4 main .city-option__name,
body.sm-typography-t4 main .answer-option label,
body.sm-typography-t4 main .audit-item legend {
  font-family: var(--sm-font-body);
  font-size: var(--sm-text-form);
  font-style: var(--sm-style-normal);
  font-weight: var(--sm-weight-semibold);
  line-height: var(--sm-line-compact);
  letter-spacing: var(--sm-letter-normal);
  white-space: normal;
  overflow-wrap: break-word;
}

body.sm-typography-t4 main .sens-desc {
  font-family: var(--sm-font-body);
  font-size: var(--sm-text-supporting);
  font-style: var(--sm-style-normal);
  font-weight: var(--sm-weight-regular);
  line-height: var(--sm-line-compact);
  letter-spacing: var(--sm-letter-normal);
}

body.sm-typography-t4 main .city-option__zone {
  font-family: var(--sm-font-body);
  font-size: var(--sm-text-supporting);
  font-style: var(--sm-style-normal);
  font-weight: var(--sm-weight-regular);
  line-height: var(--sm-line-compact);
  letter-spacing: var(--sm-letter-normal);
}

body.sm-typography-t4 main .breadcrumb,
body.sm-typography-t4 main .hero-meta,
body.sm-typography-t4 main .hero-meta-item,
body.sm-typography-t4 main .input-note,
body.sm-typography-t4 main .form-hint,
body.sm-typography-t4 main .person-help,
body.sm-typography-t4 main .question-help,
body.sm-typography-t4 main .quiz-q-sub,
body.sm-typography-t4 main .source-note,
body.sm-typography-t4 main .details-hint,
body.sm-typography-t4 main .sm-method-meta,
body.sm-typography-t4 main .finder-contract,
body.sm-typography-t4 main .result-confidence,
body.sm-typography-t4 main .review-date,
body.sm-typography-t4 main .term-aliases,
body.sm-typography-t4 main .share-label,
body.sm-typography-t4 main .share-status,
body.sm-typography-t4 main .share-toast,
body.sm-typography-t4 main .toast,
body.sm-typography-t4 main .result-status,
body.sm-typography-t4 main .quiz-status,
body.sm-typography-t4 main .result-live-status,
body.sm-typography-t4 main small,
body.sm-typography-t4 main figcaption,
body.sm-typography-t4 main caption {
  font-family: var(--sm-font-body);
  font-size: var(--sm-text-supporting);
  font-style: var(--sm-style-normal);
  font-weight: var(--sm-weight-regular);
  line-height: var(--sm-line-compact);
  letter-spacing: var(--sm-letter-normal);
}

body.sm-typography-t4 main .result-hero-time,
body.sm-typography-t4 main .result-hero .rh-big,
body.sm-typography-t4 main .result-count strong {
  font-family: var(--sm-font-display);
  font-size: var(--sm-text-result-hero);
  font-style: var(--sm-style-normal);
  font-weight: var(--sm-weight-bold);
  line-height: 1;
  letter-spacing: var(--sm-letter-normal);
}

body.sm-typography-t4 main .stat-num,
body.sm-typography-t4 main .tp-value,
body.sm-typography-t4 main .metric strong {
  font-family: var(--sm-font-display);
  font-size: var(--sm-text-result-value);
  font-style: var(--sm-style-normal);
  font-weight: var(--sm-weight-bold);
  line-height: var(--sm-line-heading);
  letter-spacing: var(--sm-letter-normal);
}

body.sm-typography-t4 main .result-count span,
body.sm-typography-t4 main .confidence-value,
body.sm-typography-t4 main .profile-leader,
body.sm-typography-t4 main .decay-pct,
body.sm-typography-t4 main .pre-day__time strong {
  font-family: var(--sm-font-body);
  font-size: var(--sm-text-label);
  font-style: var(--sm-style-normal);
  font-weight: var(--sm-weight-semibold);
  line-height: var(--sm-line-compact);
  letter-spacing: var(--sm-letter-normal);
}

body.sm-typography-t4 main table th,
body.sm-typography-t4 main table td {
  font-family: var(--sm-font-body);
  font-size: var(--sm-text-table);
  font-style: var(--sm-style-normal);
  line-height: var(--sm-line-compact);
  letter-spacing: var(--sm-letter-normal);
}

body.sm-typography-t4 main table th {
  font-weight: var(--sm-weight-bold);
}

body.sm-typography-t4 main table td {
  font-weight: var(--sm-weight-regular);
}

body.sm-typography-t4 main summary,
body.sm-typography-t4 main details > summary {
  font-family: var(--sm-font-display);
  font-size: var(--sm-text-body);
  font-style: var(--sm-style-normal);
  font-weight: var(--sm-weight-bold);
  line-height: var(--sm-line-compact);
  letter-spacing: var(--sm-letter-normal);
}

body.sm-typography-t4 main .safety-note,
body.sm-typography-t4 main .safety-box,
body.sm-typography-t4 main .safety-panel,
body.sm-typography-t4 main .pre-route-safety,
body.sm-typography-t4 main .validation-message,
body.sm-typography-t4 main .audit-error-summary,
body.sm-typography-t4 main .field-error,
body.sm-typography-t4 main .caution,
body.sm-typography-t4 main .sm-safety,
body.sm-typography-t4 main .plain-boundary,
body.sm-typography-t4 main .result-boundary,
body.sm-typography-t4 main .source-limit {
  font-family: var(--sm-font-body);
  font-size: var(--sm-text-body);
  font-style: var(--sm-style-normal);
  font-weight: var(--sm-weight-medium);
  line-height: var(--sm-line-body);
  letter-spacing: var(--sm-letter-normal);
}

body.sm-typography-t4 main .safety-note p,
body.sm-typography-t4 main .safety-box p,
body.sm-typography-t4 main .safety-panel p,
body.sm-typography-t4 main .pre-route-safety p,
body.sm-typography-t4 main .validation-message p,
body.sm-typography-t4 main .audit-error-summary p,
body.sm-typography-t4 main .sm-safety p,
body.sm-typography-t4 main .sm-safety li {
  font-size: var(--sm-text-body);
  font-weight: var(--sm-weight-medium);
  line-height: var(--sm-line-body);
}

body.sm-typography-t4 main .section-intro,
body.sm-typography-t4 main .finder-start-sub,
body.sm-typography-t4 main .quiz-start-sub,
body.sm-typography-t4 main .start-sub,
body.sm-typography-t4 main .result-lead,
body.sm-typography-t4 main .rh-desc,
body.sm-typography-t4 main .rh-sub,
body.sm-typography-t4 main .result-hero-note,
body.sm-typography-t4 main .alternative-intro,
body.sm-typography-t4 main .routing-intro {
  font-family: var(--sm-font-body);
  font-size: var(--sm-text-body);
  font-style: var(--sm-style-normal);
  font-weight: var(--sm-weight-regular);
  line-height: var(--sm-line-body);
  letter-spacing: var(--sm-letter-normal);
}

body.sm-typography-t4 .site-footer .footer-copy,
body.sm-typography-t4 .site-footer .footer-links,
body.sm-typography-t4 .site-footer a {
  font-family: var(--sm-font-body);
  font-size: var(--sm-text-footer);
  font-style: var(--sm-style-normal);
  font-weight: var(--sm-weight-regular);
  line-height: var(--sm-line-body);
  letter-spacing: var(--sm-letter-normal);
}

@media (max-width: 680px) {
  :root {
    --sm-text-brand: 1rem;
    --sm-text-page-title: 2.25rem;
    --sm-text-section-title: 1.625rem;
    --sm-text-subsection-title: 1.25rem;
    --sm-text-lead: 1.0625rem;
    --sm-text-reading: 1rem;
    --sm-text-result-hero: 2.5rem;
  }

  body.sm-typography-t4 main button:where(:not(.share-icon):not(.tp-btn):not(.clear-search):not(.claim-copy)),
  body.sm-typography-t4 main .cta-btn,
  body.sm-typography-t4 main .cta-btn-sm,
  body.sm-typography-t4 main .calc-btn,
  body.sm-typography-t4 main .audit-btn,
  body.sm-typography-t4 main .btn-restart,
  body.sm-typography-t4 main .restart-btn,
  body.sm-typography-t4 main .primary-link,
  body.sm-typography-t4 main .secondary-link,
  body.sm-typography-t4 main .action-link,
  body.sm-typography-t4 main .next-link,
  body.sm-typography-t4 main .method-link,
  body.sm-typography-t4 main .back-to-filters {
    font-size: var(--sm-text-form);
  }
}

@media print {
  :root {
    --sm-text-page-title: 24pt;
    --sm-text-section-title: 17pt;
    --sm-text-subsection-title: 13pt;
    --sm-text-reading: 11pt;
    --sm-text-body: 11pt;
    --sm-text-supporting: 9pt;
    --sm-line-body: 1.5;
  }

  :where(body) {
    font-family: var(--sm-font-body);
    font-size: var(--sm-text-body);
    line-height: 1.5;
  }
}
