/* Shared type and editorial layout. The reference prototype is retained unchanged. */
@font-face {
  font-family: 'Inter';
  src: url('/assets/fonts/InterVariable.woff2') format('woff2');
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Inter';
  src: url('/assets/fonts/InterVariable-Italic.woff2') format('woff2');
  font-weight: 100 900;
  font-style: italic;
  font-display: swap;
}
:root {
  --font-sans: 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --font-mono: ui-monospace, 'Cascadia Code', 'SFMono-Regular', Consolas, monospace;
  --text-small: .875rem;
  --text-body: 1rem;
  --text-lead: 1.125rem;
}
body {
  font-family: var(--font-sans);
  font-size: var(--text-body);
  line-height: 1.65;
  font-optical-sizing: auto;
  font-feature-settings: 'cv11' 1, 'calt' 1;
}
button, input, select, textarea { font-family: var(--font-sans); }
h1, h2, h3, h4 { font-family: var(--font-sans); font-weight: 650; text-wrap: balance; }
h1, .hero h1 {
  font-size: clamp(2.25rem, 4.2vw, 3.5rem);
  font-weight: 700;
  line-height: 1.12;
  letter-spacing: -.035em;
}
h2, .sec-head h2, .cta-band h2 {
  font-size: clamp(1.75rem, 2.7vw, 2.375rem);
  line-height: 1.2;
  letter-spacing: -.025em;
}
h3 { font-size: 1.25rem; line-height: 1.35; letter-spacing: -.015em; }
p { text-wrap: pretty; }
.hero .lede, .page-hero p { font-size: var(--text-lead); line-height: 1.7; }
.sec-head p, .cta-band p { font-size: var(--text-body); line-height: 1.7; }
.sec-head { max-width: 690px; margin-bottom: 40px; }
.eyebrow, .svc-card .lot, .quad-head .qi, .insight-media span, footer h4 {
  font-family: var(--font-sans);
  font-size: .75rem;
  line-height: 1.4;
  font-weight: 650;
  letter-spacing: .1em;
}
.brand .word { font-size: 1.125rem; line-height: 1.15; letter-spacing: -.025em; }
.brand .word small { font-family: var(--font-sans); font-size: .5625rem; font-weight: 550; letter-spacing: .14em; line-height: 1.5; }
.nav-links a, .nav-cta .btn, .btn, .chip, .product-actions, .field, .form-help {
  font-size: var(--text-small);
  line-height: 1.5;
}
.nav-links { gap: 22px; }
.nav-links a, .btn, .chip { font-weight: 600; }
.btn { justify-content: center; }
.hero-meta .stat b { font-size: 1.5rem; line-height: 1.3; letter-spacing: -.02em; font-weight: 650; }
.hero-meta .stat span { font-size: .8125rem; line-height: 1.5; display: block; margin-top: 6px; letter-spacing: 0; }
.specimen .pname { font-size: 1rem; line-height: 1.4; letter-spacing: -.015em; overflow-wrap: anywhere; }
.specimen .row, .specimen .row b { font-family: var(--font-sans); font-size: .75rem; line-height: 1.5; }
.mono, .prod-card .cas, .specimen .tag { font-family: var(--font-mono); font-variant-numeric: tabular-nums; }
.prod-card .cas { font-size: .8125rem; line-height: 1.5; }
.prod-card .name { font-size: 1rem; line-height: 1.45; font-weight: 650; letter-spacing: -.01em; text-wrap: auto; }
.prod-card .meta { font-size: .8125rem; line-height: 1.5; }
.prod-card .badge { font-size: .75rem; line-height: 1.5; }
.prod-card .product-therapeutic { font-size: .8125rem; line-height: 1.5; color: var(--ink-soft); margin: 10px 0 0; }
.search-input, .result-count { font-family: var(--font-sans); font-size: var(--text-small); line-height: 1.5; letter-spacing: 0; }
.catalogue-foot p, .framework-cta p { font-size: var(--text-small); line-height: 1.6; }
.svc-card { display: flex; flex-direction: column; }
.svc-card h3 { font-size: 1.25rem; line-height: 1.35; }
.svc-card p { font-size: var(--text-body); line-height: 1.7; }
.svc-card a.link { margin-top: auto; font-size: var(--text-small); line-height: 1.5; }
.quad-title { font-size: 1.125rem; line-height: 1.4; font-weight: 650; letter-spacing: -.015em; }
.criteria li, .reach-list li { font-size: var(--text-body); line-height: 1.65; }
.reach-list li span { font-family: var(--font-sans); font-size: var(--text-small); line-height: 1.5; }
.testi-card { display: flex; flex-direction: column; }
.testi-card .quote { font-size: var(--text-lead); line-height: 1.65; margin: 18px 0 24px; }
.testi-card .who { margin-top: auto; font-size: var(--text-small); line-height: 1.6; }
.framework-cta strong { font-size: 1.125rem; line-height: 1.4; }
.panel h2 { font-size: 1.5rem; line-height: 1.3; }
.prose p { font-size: 1.0625rem; line-height: 1.8; }
.prose { max-width: 76ch; }
.insight-grid { gap: 24px; align-items: stretch; }
.insight-card { display: flex; flex-direction: column; border-radius: 16px; }
.insight-media {
  display: block;
  position: relative;
  height: auto;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: var(--mist);
}
.insight-media img { width: 100%; height: 100%; position: absolute; inset: 0; object-fit: cover; transition: transform .5s var(--ease); }
.insight-media span { bottom: 16px; left: 24px; padding: 6px 10px; color: #fff; background: #10233fed; border-radius: 4px; font-size: .6875rem; z-index: 1; }
.insight-card:hover .insight-media img { transform: scale(1.035); }
.insight-body { padding: 24px; display: flex; flex: 1; flex-direction: column; gap: 16px; }
.insight-body h3 { margin: 0; font-size: 1.125rem; line-height: 1.45; font-weight: 650; letter-spacing: -.015em; text-wrap: pretty; }
.insight-body p { margin: 0; font-size: var(--text-body); line-height: 1.7; }
.insight-body .link { margin-top: auto; padding-top: 8px; font-size: var(--text-small); line-height: 1.5; font-weight: 650; }
.insight-body a:hover { text-decoration: underline; text-underline-offset: 4px; }
@supports (grid-template-rows: subgrid) {
  .insight-card { display: grid; grid-template-rows: subgrid; grid-row: span 4; row-gap: 0; }
  .insight-body { display: grid; grid-template-rows: subgrid; grid-row: span 3; row-gap: 16px; }
  .insight-body .link { align-self: end; }
}
footer { font-size: var(--text-small); line-height: 1.65; }
footer h4 { margin-bottom: 18px; }
.foot-contact li b { font-size: var(--text-small); font-weight: 600; }
.foot-bottom { font-size: .8125rem; line-height: 1.6; }
.newsletter input { font-size: var(--text-small); }
.subscribe-form .consent { font-size: .8125rem; line-height: 1.6; }
.admin-heading h1 { font-size: clamp(1.875rem, 3vw, 2.375rem); }
.facts { font-size: var(--text-small); }
.metrics strong { font-variant-numeric: tabular-nums; }
section[id], footer[id] { scroll-margin-top: 100px; }
@media (max-width: 1100px) {
  .nav-links { gap: 16px; }
  .nav-links a { font-size: .8125rem; }
}
@media (max-width: 900px) {
  .insight-grid { max-width: 680px; }
  .insight-media { aspect-ratio: 16 / 9; }
}
@media (max-width: 620px) {
  .hero h1 { font-size: clamp(2.125rem, 9.2vw, 2.625rem); line-height: 1.14; }
  .hero .lede { font-size: var(--text-body); }
  .hero-meta { gap: 24px 20px; }
  .hero-meta .stat b { font-size: 1.375rem; }
  .brand .word { font-size: .875rem; }
  .brand .word small { font-size: .5rem; letter-spacing: .07em; }
  .nav-cta .btn { font-size: .75rem; padding: 10px 12px; }
  .nav-links.is-open a { font-size: 1rem; }
  .insight-body { padding: 22px; }
  .insight-body h3 { font-size: 1.125rem; }
  .insight-media span { left: 22px; }
  .svc-card { padding: 28px 24px; }
  .field input, .field select, .field textarea, .search-input { font-size: 1rem; }
  .page-hero h1 { font-size: clamp(2rem, 8vw, 2.625rem); }
}
@media print {
  .insight-media { display: none; }
  .insight-card, .insight-body { display: block; }
}
