/* Typography reference: BrightMeds homepage, inspected 27 October 2026.
   Open-source fonts are self-hosted; see assets/fonts/*-OFL.txt. */
@font-face {
  font-family: 'Bricolage Grotesque';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('/assets/fonts/bricolage-grotesque-latin.woff2') format('woff2');
}
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
  src: url('/assets/fonts/geist-latin.woff2') format('woff2');
}
:root {
  --display: 'Bricolage Grotesque', ui-sans-serif, system-ui, sans-serif;
  --sans: 'Geist', ui-sans-serif, system-ui, sans-serif;
  --serif: var(--display);
}
body {
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}
strong, b { font-weight: 600; }
h1, h2, h3 { font-family: var(--display); font-weight: 600; }
h1 {
  font-size: clamp(48px, 8vw, 124px);
  line-height: .92;
  letter-spacing: -.045em;
  text-wrap: balance;
  overflow-wrap: anywhere;
}
h2 {
  font-size: clamp(40px, 5.4vw, 76px);
  line-height: .95;
  letter-spacing: -.04em;
}
h3 { font-size: 28px; line-height: 1.05; letter-spacing: -.025em; }
.hero h1, .guide-hero h1 {
  font-family: var(--display);
  font-weight: 600;
  font-size: clamp(52px, 8.4vw, 128px);
  line-height: .92;
  letter-spacing: -.045em;
  max-width: 1000px;
}
.hero h1 em, .guide-hero h1 em, .tools-banner h2 em {
  font-style: normal;
  font-weight: 600;
}
.hero-content > p { font-size: 18px; line-height: 1.5; }
.hero-foot { font-size: 14px; line-height: 1.5; }
.hero-foot span { font-size: inherit; }
.hero-caption { font-size: 12px; }
.eyebrow {
  font-size: 14px;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: .02em;
}
.outline-pill { font-size: 13px; font-weight: 500; letter-spacing: .02em; }
.button { font-size: 16px; font-weight: 500; line-height: 1.4; letter-spacing: 0; }
.button.small { font-size: 15px; }
.desktop-nav a, .mobile-nav a { font-size: 15px; }
.text-link, .hero-actions .text-link, .section-title > .text-link { font-size: 15px; }
.logo { font-family: var(--sans); }
.filter-tabs a, .view-toggle, .results-row { font-size: 15px; }
.pill { font-size: 12px; font-weight: 500; letter-spacing: .02em; }
.card-body .eyebrow, .guide-card > .eyebrow { font-size: 12px; letter-spacing: .04em; }
.card-body h3, .guide-card h3 {
  font-family: var(--display);
  font-size: 28px;
  font-weight: 600;
  line-height: 1.05;
  letter-spacing: -.025em;
}
.card-body p, .guide-card p { font-size: 16px; line-height: 1.5; }
.card-meta { font-size: 13px; line-height: 1.5; }
.guide-card > .text-link { font-size: 15px; }
.topic-tile h3 { font-size: clamp(22px, 2.8vw, 28px); line-height: 1.05; letter-spacing: -.025em; }
.topic-tile > span:last-child { font-size: 15px; }
.tools-banner h2 { font-size: clamp(40px, 5.4vw, 76px); }
.tools-banner .eyebrow { font-size: 14px; }
.tools-banner p { font-size: 19px; line-height: 1.5; }
.tools-links > a { font-size: 16px; }
.standards-grid > div > span { font-family: var(--display); font-size: 18px; }
.standards-grid h3 { font-family: var(--sans); font-size: 20px; font-weight: 600; letter-spacing: 0; line-height: 1.3; }
.standards-grid p { font-size: 16px; line-height: 1.5; }
.page-intro > p { font-size: 18px; line-height: 1.5; }
.breadcrumbs { font-size: 13px; line-height: 1.5; }
.search-field input, .search-form select { font-size: 15px; }
.search-form { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1fr) auto; }
.search-form label, .compare-selectors label { min-width: 0; }
.article-header h1, .profile-hero h1 {
  font-size: clamp(48px, 8vw, 124px);
  line-height: .92;
  letter-spacing: -.045em;
}
.article-deck { font-size: 18px; line-height: 1.5; }
.byline-person { font-size: 15px; line-height: 1.4; }
.byline-person small, .date-block { font-size: 12px; }
.share > span:first-child { font-size: 12px; }
.share > a, .share > button, .share .copy-link { font-size: 14px; }
.copy-status { font-size: 13px; }
.image-label { font-size: 12px; }
.toc .eyebrow, .author-box .eyebrow { font-size: 12px; }
.toc nav a, .toc-back { font-size: 14px; line-height: 1.5; }
.article-content, .prose { font-size: 16px; line-height: 1.6; }
.article-content h2, .prose h2 {
  font-family: var(--display);
  font-size: clamp(32px, 3.4vw, 44px);
  font-weight: 600;
  line-height: 1.05;
  letter-spacing: -.03em;
}
.article-content h3, .prose h3 { font-size: 22px; line-height: 1.2; letter-spacing: -.02em; }
.takeaway .eyebrow { font-size: 14px; }
.takeaway h2 { font-size: 32px; }
.takeaway p { font-size: 16px; line-height: 1.6; }
.takeaway a, .evidence-note a { font-size: 15px; }
.notice { font-size: 14px; line-height: 1.6; }
.evidence-note { font-size: 16px; line-height: 1.5; }
.science-figure figcaption { font-size: 12px; line-height: 1.6; }
.animation-toggle { font-size: 14px; }
.animation-card h3 { font-size: 20px; line-height: 1.2; }
.animation-card p { font-size: 15px; line-height: 1.5; }
.animated-scene b { font-size: 14px; }
summary { font-family: var(--sans); font-size: 18px; font-weight: 600; line-height: 1.4; }
details p { font-size: 16px; line-height: 1.6; }
.references { font-size: 15px; line-height: 1.6; }
.author-box p { font-size: 15px; line-height: 1.5; }
.author-box a, .author-box .text-link { font-size: 15px; }
.author-box h3 a { font-family: var(--display); font-size: 24px; }
.person-card .eyebrow { font-size: 12px; }
.person-card h2 { font-size: 32px; line-height: 1.05; }
.person-card p { font-size: 16px; }
.compare-selectors label { font-size: 14px; }
.compare-selectors select { font-size: 15px; }
table { font-size: 15px; line-height: 1.5; }
th { font-size: 14px; }
.compare-table td { font-size: 15px; line-height: 1.6; }
.calculator label { font-size: 15px; }
.calculator label > span { font-size: 13px; }
.calc-result > span { font-size: 15px; }
.calc-result strong { font-family: var(--display); font-size: 32px; font-weight: 600; letter-spacing: -.04em; }
.calc-result p { font-size: 14px; line-height: 1.5; }
.footer-top p, .footer-top > div > a:not(.logo) { font-size: 15px; line-height: 1.5; }
.footer-top h3 { font-family: var(--sans); font-size: 14px; font-weight: 600; letter-spacing: .02em; }
.footer-note, .footer-bottom { font-size: 12px; line-height: 1.6; }
/* Layout adjustments needed for the reference's larger type scale. */
.section-title > div { min-width: 0; }
.section-title > .text-link { flex-shrink: 0; }
.article-byline { gap: 24px; }
.share { max-width: 100%; }
.tools-banner > div:first-child { min-width: 0; }
@media (max-width: 800px) {
  .search-form { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .section-title { flex-wrap: wrap; }
  .topic-tile > span:last-child { font-size: 14px; }
  .toc nav a { font-size: 14px; }
}
@media (max-width: 620px) {
  .button.small { font-size: 15px; padding: 11px 16px; }
  summary { font-size: 17px; }
  .tools-banner { display: block; }
  .tools-links { width: 100%; margin-top: 24px; }
}
@media (max-width: 520px) {
  .hero-content > p, .guide-hero p, .page-intro > p { font-size: 18px; line-height: 1.5; }
  .hero-foot { font-size: 13px; max-width: none; }
  .hero-actions .button { max-width: 100%; padding-inline: 20px; gap: 12px; }
  .hero h1, .guide-hero h1 { overflow-wrap: normal; }
  .article-header h1 { overflow-wrap: anywhere; }
  .filter-tabs a { font-size: 15px; }
  .results-row { flex-wrap: wrap; row-gap: 15px; }
  .results-row > div { gap: 18px; }
  .card-body p, .article-content, .prose { font-size: 16px; }
  .card-meta { gap: 10px; }
  .notice { font-size: 14px; }
  .toc nav { grid-template-columns: 1fr; }
  .byline-person small { font-size: 12px; }
  .date-block { margin-left: 0; }
  .image-label { font-size: 11px; }
  .animation-grid { grid-template-columns: 1fr; }
  .author-box { flex-wrap: wrap; }
  .author-box .text-link { font-size: 15px; }
  .footer-top > div > a:not(.logo) { font-size: 15px; }
  .footer-top h3 { font-size: 14px; }
  .footer-bottom > div { gap: 16px; }
}
