/* GLP1Scientist site-wide typography and responsive accessibility layer.
   Release: 2026-10-24. Original approved component styles are loaded first.
   Retain content, branded palette, page-class structures and current URLs. */
:root {
  --type-body: #223a43;
  --type-muted: #475e68;
  --type-heading: #0b2630;
  --type-link: #155c68;
  --type-font: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  --type-reading: 790px;
  --type-leading: 1.74;
  --h1: clamp(2.35rem, 4.15vw, 4.35rem);
  --h2: clamp(1.9rem, 3.2vw, 3.15rem);
  --h3: clamp(1.28rem, 1.75vw, 1.66rem);
}
html { font-size: 100%; scroll-padding-top: 108px; }
body {
  font-family: var(--type-font) !important;
  font-size: 18px;
  line-height: var(--type-leading);
  color: var(--type-body);
  font-weight: 400;
  letter-spacing: -.006em;
  font-synthesis: none;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
main, main section, main article, main aside, .hero-copy, .page-hero, .site-footer, .nav-wrap { min-width: 0; }
:is(h1,h2,h3,h4,h5,h6) {
  color: var(--type-heading);
  text-wrap: pretty;
  overflow-wrap: break-word;
  letter-spacing: -.027em;
  font-family: var(--type-font);
}
h1, .page-hero h1, .hero h1 { font-size: var(--h1); line-height: 1.13; letter-spacing: -.042em; font-weight: 760; text-wrap: balance; }
h2, .section-head h2 { font-size: var(--h2); line-height: 1.22; letter-spacing: -.032em; font-weight: 740; text-wrap: balance; }
h3 { font-size: var(--h3); line-height: 1.32; letter-spacing: -.023em; font-weight: 700; }
h4 { font-size: 1.18rem; line-height: 1.38; font-weight: 700; }
p, li, dd { overflow-wrap: break-word; }
p { line-height: 1.75; }
.lead, .hero .lead, .page-hero .lead { font-size: clamp(1.0625rem, 1.45vw, 1.22rem); line-height: 1.67; font-weight: 430; letter-spacing: -.008em; }
.eyebrow, .ticker-label { font-size: .8rem; line-height: 1.5; letter-spacing: .095em; font-weight: 760; }
.card p, .benefit-body p, .standard p, .link-card p, .gov-card p, .info-card p { font-size: 1rem; line-height: 1.66; color: var(--type-muted); }
.card h3, .benefit h3, .feature-link strong, .link-card h3, .info-card h3 { line-height: 1.34; }
.card .tag, .feature-link small { font-size: .8rem; letter-spacing: .05em; }
.topic-pill { line-height: 1.43; }
.topic-pill span { font-size: .89rem; line-height: 1.5; }
/* Preserve the 860px maximum required by SOP, with a more comfortable reading measure. */
.reading, .article-container { max-width: min(100% - 32px, var(--type-reading)); }
.research-body, .research-body p, .research-body li, .article-content, .prose { line-height: 1.78; }
.research-body { font-size: 1.075rem; }
.research-body h2 { font-size: clamp(1.83rem, 2.7vw, 2.48rem); line-height: 1.24; margin-top: 2.15em; margin-bottom: .7em; }
.research-body h3 { font-size: clamp(1.34rem, 2.1vw, 1.68rem); line-height: 1.34; margin-top: 1.6em; }
.research-body :is(p,li) { color: #344d56; }
.research-body :is(ul,ol) { padding-inline-start: 1.5em; }
.research-body li + li { margin-top: .35em; }
.research-body a:not(.btn), main a:not(.btn) { text-underline-offset: .18em; }
.direct-answer { font-weight: 560; font-size: 1.075rem; line-height: 1.72; }
.author-line, .author-attribution, .article-meta { font-size: .94rem; line-height: 1.65; }
/* Accessible secondary labels, captions and links on light backgrounds. */
:is(.source-follow-note,.ticker-message,.credential,.mini-list,.trust-list,.article-meta,.author-line,.footer-bottom) { line-height: 1.62; }
.ticker-message { font-size: .96rem; color: #314e58; }
.authority-link small { font-size: .9rem; color: #465e67; line-height: 1.52; }
.card-link, .authority-link, .feature-link, .footer-col a, .footer-parity-links a { overflow-wrap: break-word; }
.btn, button, .source-launch-btn, .nav-list a, .nav-dropdown-toggle { font-family: var(--type-font); font-weight: 700; letter-spacing: -.012em; }
.btn { font-size: 1rem; line-height: 1.35; padding-inline: 20px; }
.btn-sm { font-size: .93rem; }
.nav-list a, .nav-dropdown-toggle { font-size: .94rem; line-height: 1.35; }
.nav-dropdown-menu a { font-size: .94rem; line-height: 1.43; }
.source-launch-btn { font-size: .9rem; min-height: 44px; line-height: 1.25; overflow-wrap: normal; word-break: normal; white-space: normal; }
.source-follow-grid > *, .source-control, .source-launch-btn { min-width: 0; }
.source-follow-grid { max-width: 100%; }
.source-follow-note { font-size: .88rem; color: #4c646c; }
.summary, summary { line-height: 1.5; }
.site-footer .footer-col h3, .site-footer h3 { line-height: 1.4; }
.site-footer .footer-col a, .footer-parity-links a { font-size: .94rem; line-height: 1.5; margin-block: 9px; }
.site-footer .footer-brand p, .site-footer p { line-height: 1.65; }
.site-footer .footer-bottom { font-size: .875rem; color: #b1c6cc; }
/* Respect visual contrasts with the retained GLP1Scientist theme. */
.dark-section :is(h1,h2,h3,h4), .cta-band :is(h1,h2,h3), .evidence-panel :is(h2,h3) { color: #fff; }
.dark-section :is(p,li), .cta-band p, .evidence-panel p { color: #dce8eb; }
.dark-section .compare-panel.highlight :is(p,li,h3) { color: #18323b; }
.dark-section .compare-panel.highlight h3 { color: #0b2630; }
.dark-section .lead { color: #d1e1e5; }
.dark-section .eyebrow { color: #a8e1e8; }
.site-footer :is(p,a,li) { color: #c3d7dc; }
.site-footer a:hover { color: #fff; }
:focus-visible { outline: 3px solid #176875; outline-offset: 3px; }
.dark-section :focus-visible, .site-footer :focus-visible, .cta-band :focus-visible { outline-color: #b9e8ee; }
/* New research collaboration / evidence-context CTAs. */
.research-contact-note { width: min(calc(100% - 40px), 1180px); margin: 24px auto; padding: 22px 26px; background: #f5f9f9; border: 1px solid #c5dbdf; border-left: 4px solid #1b6c78; border-radius: 18px; display:flex; align-items:center; justify-content:space-between; gap:22px; }
.research-contact-note .research-contact-copy { min-width: 0; max-width: 740px; }
.research-contact-note .research-contact-title { font-size: 1.07rem; font-weight: 735; line-height:1.38; margin:0 0 7px; color:#0b2630; }
.research-contact-note p { font-size: .95rem; line-height:1.6; color:#38545d; margin:0; }
.research-contact-note .btn { flex-shrink:0; font-size:.93rem; min-height:46px; }
/* Comfortable constrained grids and images, avoiding one-character columns. */
:is(.hero-grid,.top-methodology-grid,.founder-grid,.step,.compare-grid,.card-grid,.feature-grid,.benefit-grid,.link-cards,.authority-grid,.gov-grid-2,.gov-grid-3,.steps-3) > * { min-width:0; }
img, video, iframe, svg { max-width:100%; }
.video-wrap, .video-responsive { max-width:100%; }
.video-wrap iframe { max-width:100%; }
.nav-dropdown-menu { max-width:min(340px,calc(100vw - 30px)); }
@media (max-width: 1320px) {
  body.nav-open { overflow:hidden; }
  .menu-toggle { display:inline-flex; }
  .nav-wrap { position:fixed; left:20px; right:20px; top:94px; max-height:calc(100dvh - 115px); overflow:auto; display:none; align-items:stretch; padding:20px; border:1px solid #d8e3e6; border-radius:20px; background:#fff; box-shadow:0 18px 50px rgba(11,38,48,.12); }
  body.nav-open .nav-wrap { display:block; }
  .nav-list { display:grid; gap:0; }
  .nav-list a { display:block; padding:13px 6px; border-bottom:1px solid #d8e3e6; font-size:1rem; }
  .nav-dropdown { position:static; }
  .nav-dropdown-toggle { display:block; width:100%; text-align:left; padding:13px 6px; border-bottom:1px solid #d8e3e6; font-size:1rem; }
  .nav-dropdown-menu { position:static; top:auto; right:auto; display:none; box-shadow:none; border:0; border-radius:0; padding:0 0 0 12px; width:100%; min-width:0; max-width:none; max-height:none; }
  .nav-dropdown:is(.open,.is-open) .nav-dropdown-menu { display:block; }
  .nav-wrap .btn { width:100%; margin-top:18px; }
}
@media (max-width: 860px) {
  .nav-wrap { top:86px; }
  .source-follow-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .research-contact-note { flex-direction:column; align-items:flex-start; }
}
@media (max-width: 620px) {
  body { font-size:17px; line-height:1.72; }
  :root { --h1:clamp(2.2rem,9vw,3rem); --h2:clamp(1.72rem,7vw,2.25rem); --h3:clamp(1.24rem,4.8vw,1.45rem); }
  h1,.page-hero h1,.hero h1 { line-height:1.16; letter-spacing:-.037em; }
  h2 { line-height:1.22; }
  .reading, .article-container { width:min(calc(100% - 32px), var(--type-reading)); max-width:calc(100% - 32px); }
  .research-body { font-size:1.035rem; }
  .research-body h2 { font-size:clamp(1.62rem,6.4vw,2.04rem); }
  .research-body h3 { font-size:clamp(1.26rem,5vw,1.52rem); }
  .container { width:min(calc(100% - 32px), var(--max)); }
  .nav-wrap { left:12px; right:12px; top:80px; padding:15px; max-height:calc(100dvh - 92px); }
  .hero, .page-hero { overflow-wrap:break-word; }
  .btn { padding-inline:16px; }
  .source-launch-btn { font-size:.85rem; padding:11px 8px; }
  .source-follow-grid { gap:9px; grid-template-columns:repeat(2,minmax(0,1fr)) !important; }
  .footer-grid, .authority-grid, .link-cards { gap:18px; }
  .research-contact-note { width:calc(100% - 32px); padding:19px; margin:20px auto; }
  .research-contact-note .btn { width:100%; }
  main table { display:block; max-width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch; }
  :is(.table-wrap,.table-responsive) { overflow-x:auto; max-width:100%; }
}
@media (prefers-reduced-motion: reduce) { html {scroll-behavior:auto;} }
/* Responsive QA repair: narrow tables, ticker wrapping, and resource cards. */
.ticker-copy, .ticker-message { min-width: 0; }
.ticker-message { overflow-wrap: anywhere; }
.link-card, .link-cards > * { min-width: 0 !important; max-width:100%; }
@media (max-width: 620px) {
  .contextual-ticker .container { min-width:0; }
  .ticker-copy { width:100%; flex-wrap:wrap; gap:6px 12px; }
  .ticker-message { display:block; flex:1 1 100%; width:100%; }
  main table, main table.data-table { min-width:0 !important; width:100% !important; max-width:100% !important; overflow-x:auto; }
  .link-cards { grid-template-columns:minmax(0,1fr) !important; }
}
@media (max-width: 620px) {
  .ecosystem-links { display:grid; width:100%; max-width:100%; grid-template-columns:repeat(2,minmax(0,1fr)) !important; gap:10px 12px; }
  .ecosystem-links > *, .ecosystem-links a { min-width:0; max-width:100%; overflow-wrap:anywhere; word-break:normal; }
}
@media (max-width: 620px) {
  .link-cards { display:grid !important; grid-template-columns:minmax(0,1fr) !important; width:100%; }
  .link-cards > .link-card { display:block; width:100%; min-width:0 !important; overflow-wrap:anywhere; }
}

/* Desktop navigation never wraps top-level labels; compact nav is used below 1321px. */
.header-inner { width:min(calc(100% - 40px),1360px); max-width:1360px; }
.header-inner .brand img:not(.brand-mark) { width:214px; }
.nav-list { gap:15px; }
.nav-wrap { gap:16px; }
.nav-list a, .nav-dropdown-toggle { white-space:nowrap; font-size:.9rem; }
@media (max-width: 1320px) { .nav-list a, .nav-dropdown-toggle { white-space:normal; font-size:1rem; } }
@media (max-width: 860px) { .header-inner .brand img:not(.brand-mark) { display:none; } }
/* Light, accessible ticker badges across all page families (WCAG AA text contrast). */
.ticker-label { background:#dceff2 !important; color:#155c68 !important; border-radius:8px; padding:3px 8px; }
/* Final contrast corrections observed in rendered governance and warm-neutral sections. */
.btn-light { color:#0b2630 !important; }
.warm-section .lead { color:#455e68; }

/* Evidence-only supplemental content: does not alter editorial hierarchy. */
.verified-evidence-addition { margin-block:3rem 2.2rem; padding:clamp(18px,3vw,28px); background:#f5f9fa; border:1px solid #cedfe4; border-radius:18px; }
.verified-evidence-addition h2 { margin-top:0; }
.verified-evidence-addition p:last-child { margin-bottom:0; }
.evidence-addition-note { color:#405d66 !important; font-size:.87rem; font-weight:650; }
/* Narrow-device contact grid: prevent the email panel's min-content width from escaping the viewport. */
.formal-panel > * { min-width:0; max-width:100%; overflow-wrap:anywhere; }
@media (max-width:860px){ .formal-panel { grid-template-columns:minmax(0,1fr); } }
@media (max-width:360px){ .formal-panel { padding:18px; } .formal-panel .email-display { font-size:1rem; overflow-wrap:anywhere; } }
.source-google-fallback { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:9px 12px; border:1px solid #bdd7db; border-radius:14px; color:#145866; background:#f7fbfc; font-size:.88rem; line-height:1.3; }
