/* Semantic spacing: each component owns its internal rhythm. */
.section-heading > p { margin: 0; }
.card > .eyebrow:first-child { margin-top: 0; margin-bottom: var(--s-5); }
.feature-card h3 { margin-top: 0; }
.feature-card > p { margin-top: var(--s-4); }
.team-card .role { margin-top: var(--s-2); }
.scientist-card { container-type: inline-size; }
.scientist-card .team-photo { width: 180px; max-width: 100%; border-radius: 12px; }
.scientist-card h2 { margin-top: var(--s-5); font-size: clamp(17px, 5.3cqw, 28px); line-height: 1.2; letter-spacing: -.025em; white-space: nowrap; }
.scientist-card h2 + p { margin-top: var(--s-2); font-size: 15px; }
.scientist-card p + p { margin-top: var(--s-4); }
.criteria-panel { margin: 0; border: 1px solid var(--rule); border-radius: 18px; background: var(--bg); overflow: hidden; }
.criteria-heading { padding: var(--s-5) var(--s-6); background: #edf3f0; }
.criteria-label { display: block; font: 600 11px/1.5 Inter,sans-serif; letter-spacing: .1em; text-transform: uppercase; color: var(--brand); margin-bottom: var(--s-3); }
.criteria-heading h3 { font-size: 28px; line-height: 1.2; }
.criteria-heading h3 + p { margin: var(--s-2) 0 0; font-size: 14px; color: var(--text-2); }
.criteria-rows { list-style: none; padding: 0 var(--s-6); margin: 0; }
.criteria-rows li { display: grid; grid-template-columns: 116px minmax(0,1fr); gap: var(--s-5); align-items: start; padding: var(--s-5) 0; font-size: 15px; line-height: 1.6; }
.criteria-rows li + li { border-top: 1px solid var(--rule); }
.criterion-state { display: inline-flex; align-items: center; gap: var(--s-2); padding: 5px 9px; border-radius: 6px; font-size: 12px; font-weight: 600; line-height: 20px; }
.criterion-state svg { width: 18px; height: 18px; flex: 0 0 18px; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.criterion-state--met { background: #eaf1e7; color: #3f633d; }
.criterion-state--unknown { background: #f4eddf; color: #795d20; }
.criterion-state--not-met { background: #f2e8e4; color: #874e40; }
@media (max-width: 899px) {
  #capabilities .grid-3 { grid-template-columns: 1fr; }
  .feature-card h3 { min-height: 0; }
}
@media (max-width: 599px) {
  .criteria-heading { padding: var(--s-5); }
  .criteria-rows { padding-inline: var(--s-5); }
  .criteria-rows li { grid-template-columns: 1fr; gap: var(--s-3); padding-block: var(--s-4); }
  .criterion-state { justify-self: start; }
    .scientist-card .team-photo { width: 160px; }
}
/* Consistent icon frames and a compact step-label rhythm. */
.cap-icon svg { width: 24px; height: 24px; }
.glossary-card .cap-icon { background: #fbfaf7; border: 1px solid #d7e3df; }
.step > .cap-icon { margin-bottom: var(--s-3); }
.step > .number { margin-bottom: 0; }
.step > .number + h3 { margin-top: var(--s-3); }
@media (max-width: 359px) {
  .page-glycoscience .capability-grid { grid-template-columns: 1fr; }
}

/* Original supplied partner mark, with consistent clear space and grouped copy. */
.home-milestone { display: grid; grid-template-columns: 240px minmax(0, 1fr); align-items: center; column-gap: var(--s-7); margin-top: 0; padding-block: var(--s-7); }
.home-milestone-logo { display: block; width: 240px; height: auto; }
.home-milestone-content { min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: var(--s-3); }
.home-milestone-label { margin: 0 0 var(--s-3); color: var(--text-2); font-size: 11px; font-weight: 600; line-height: 1.6; letter-spacing: .1em; text-transform: uppercase; }
.home-milestone h3 { max-width: 52ch; font-size: clamp(21px, 1.8vw, 25px); line-height: 1.35; letter-spacing: -.02em; text-wrap: pretty; overflow-wrap: anywhere; }
.home-milestone-content > a { font-size: 14px; }
#programs:has(.home-milestone) { padding-bottom: 0; }
@media (max-width: 899px) {
 .home-milestone { grid-template-columns: minmax(0, 1fr); gap: var(--s-5); }
 .home-milestone-logo { width: 220px; max-width: 100%; }
}
/* Mobile QA: clear arrow separation and comfortable standalone tap targets. */
.intent-links .link-with-arrow, .site-footer .link-with-arrow { display: inline-flex; align-items: center; gap: 8px; }
@media (max-width: 599px) {
 .intent-links { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; }
 .intent-links .link-with-arrow { justify-self: start; min-height: 44px; }
 .legal-copy nav a { display: inline-flex; align-items: center; min-height: 44px; }
}
@media (min-width: 600px) and (max-width: 999px) {
 .grid-3:has(> a.card) { grid-template-columns: minmax(0, 1fr); }
}

.metrics-attribution { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 24px; margin-top: 24px; }
.metrics-attribution p { margin: 0; color: var(--text-2); font-size: 13px; line-height: 1.6; }
.metrics-attribution .text-link { margin-top: 0; font-size: 13px; line-height: 1.6; gap: 8px; }
@media (max-width: 599px) { .metrics-attribution { flex-direction: column; align-items: flex-start; } }

/* Grid/flex siblings use their parent's gap, not prose-stack margins. */
.trust-strip .container > p { margin: 0; }
#offices .grid-2 > .office { margin-top: 0; }
