/* Shared hierarchy: hero > section > subsection > card > label.
   Numbers use the display family; sequence markers use the body family. */
:root {
  --type-display: "League Spartan", sans-serif;
  --type-body: "Helvetica Neue", Helvetica, Arial, sans-serif;
  --type-hero: clamp(2.25rem, 4.8vw, 4.125rem);
  --type-section: clamp(2rem, 4vw, 3.5rem);
  --type-subsection: clamp(1.75rem, 3vw, 2.5rem);
  --type-card: clamp(1.5rem, 2vw, 1.75rem);
  --type-metric: clamp(2.5rem, 4vw, 3.5rem);
  --space-section: clamp(4rem, 8vw, 7rem);
  --space-content: clamp(2rem, 4vw, 3rem);
  --ink: #0f1b24;
  --ink-secondary: #536068;
  --accent: #ed6b2d;
  --radius-panel: 32px;
  --radius-card: 24px;
}
body, .case-glass-section { font-family: var(--type-body); color: var(--ink); }
.hero-shell .hero-title { font-size: var(--type-hero) !important; font-weight: 500; line-height: 1.06 !important; letter-spacing: -.025em; }
main .section-title, #case-study .case-glass-heading h2, #audit .section-title {
  font-family: var(--type-display); font-size: var(--type-section); font-weight: 500;
  line-height: 1.08; letter-spacing: -.025em; text-wrap: balance;
}
main .section-title { margin-top: 16px; }
#case-study .case-glass-heading h2 { margin: 16px 0; }
.connected-growth__heading h3, .intake-copy h3, .hero-proof-panel__intro p {
  font-family: var(--type-display); font-size: var(--type-subsection); font-weight: 500;
  line-height: 1.12; letter-spacing: -.02em; text-wrap: balance;
}
#problem article h3, .engine-card h3, .case-glass-detail-title, .footer-glass h3 {
  font-family: var(--type-display); font-size: var(--type-card); font-weight: 500;
  line-height: 1.16; letter-spacing: -.015em;
}
.intake-float h4, .connected-growth__destination strong { font-family: var(--type-display); font-size: var(--type-card); font-weight: 500; line-height: 1.16; letter-spacing: -.015em; }
.section-kicker, .case-glass-kicker, .intake-step, #problem article p.uppercase {
  font-family: var(--type-body); font-size: .75rem; font-weight: 600;
  line-height: 1.5; letter-spacing: .14em; text-transform: uppercase; color: var(--accent);
}
.case-glass-kicker i { display: none; }
.hero-shell > div > p, .case-glass-heading > p, .connected-growth__description { font-size: 1.125rem; line-height: 1.65; color: var(--ink-secondary); }
#problem article p:not(.uppercase), .engine-card > p, .intake-copy > p, .footer-glass > p {
  font-size: 1rem; line-height: 1.65; color: var(--ink-secondary); font-weight: 400;
}
.intake-copy h3 { margin-top: 24px; }
.intake-copy > p { margin-top: 16px; }
.hero-proof strong, .case-glass-value > strong, .case-glass-secondary strong, .case-glass-extra strong {
  font-family: var(--type-display); font-size: var(--type-metric); font-weight: 500;
  line-height: 1.05; letter-spacing: -.025em; font-variant-numeric: lining-nums tabular-nums; color: var(--ink);
}
.case-glass-value > strong { font-size: clamp(4rem, 6vw, 5rem); }
.hero-proof--text strong { font-size: var(--type-card); line-height: 1.16; }
.metric-inline { font-family: var(--type-display); font-size: 1.5em; font-weight: 500; font-variant-numeric: tabular-nums; }
.metric-accent { font-weight: inherit; }
strong.metric-accent { font-weight: 600; }
.case-glass-primary h3, .case-glass-secondary h3, .case-glass-extra h3, .hero-proof span {
  font-family: var(--type-body); font-size: 1rem; line-height: 1.5; font-weight: 500; color: var(--ink-secondary);
}
.engine-card-number, #problem .glass-icon, .intake-step strong, .intake-float-mark {
  font-family: var(--type-body); font-size: .875rem; line-height: 1; font-weight: 600;
  letter-spacing: .04em; font-variant-numeric: tabular-nums;
}
.intake-step { padding: 0; border: 0; background: none; box-shadow: none; backdrop-filter: none; }
.intake-step strong { width: auto; height: auto; border-radius: 0; background: none; color: var(--accent); }
.hero-proof small, .metric-context, .case-glass-note, .case-glass-sources > span:first-child, .connected-growth__caption { font-size: .75rem; line-height: 1.5; }
.hero-proof small { font-weight: 600; letter-spacing: .14em; }
.hero-story__controls button { font-size: .875rem; font-weight: 500; min-height: 44px; }
.connected-growth__sources li > div > span, .connected-growth__destination p { font-size: .875rem; line-height: 1.5; }
main > section:not(.hero-shell) { padding-block: var(--space-section); }
.case-glass-section { padding-inline: 20px; }
#case-study .case-glass-shell { max-width: 1200px; border-radius: var(--radius-panel); }
#problem .glass-surface, #audit .glass-surface, .hero-glass { border-radius: var(--radius-panel); }
.engine-card, .intake-art { border-radius: var(--radius-card); }
.engine-cards { gap: 24px; }
.intake-showcase { margin-top: var(--space-content); gap: clamp(3rem, 7vw, 6rem); }
.intake-card, .intake-card:nth-child(even) { column-gap: clamp(2rem, 5vw, 4rem); }
.case-glass-results { gap: 24px; }
.hero-story__layer[aria-hidden="true"] { visibility: hidden; }
.hero-story__layer { transition: opacity .45s ease, transform .55s cubic-bezier(.16,1,.3,1), filter .45s ease, visibility .55s; }
@media (min-width: 640px) { .case-glass-section { padding-inline: 32px; } }
@media (min-width: 1024px) { .case-glass-section { padding-inline: 40px; } }
@media (max-width: 767px), (max-height: 659px), (prefers-reduced-motion: reduce) {
  .hero-story { height: auto; }
  .hero-story__sticky { position: relative; top: auto; height: auto; min-height: 0; }
  .hero-flow { display: grid; height: auto; padding-bottom: 70px; }
  .hero-story__layer { position: relative; inset: auto; grid-area: 1 / 1; min-width: 0; align-self: stretch; }
  .hero-proof-panel { height: 100%; }
  .hero-proof-panel__body { height: auto; min-height: calc(100% - 56px); }
}
@media (max-width: 767px) {
  .case-glass-results { gap: 16px; }
  .case-glass-secondary strong { font-size: clamp(1.75rem, 7vw, 2.5rem); }
  .case-glass-secondary h3 { font-size: .875rem; }
}
@media (prefers-reduced-motion: reduce) {
  .hero-story__layer, .hero-proof { transition: none; }
  .hero-flow.is-active .hero-glass-icon { animation: none; }
}
