/*
 * Case-library typography system
 * Restrained, reading-first hierarchy inspired by Airbnb's editorial clarity:
 * display sizes are calm, body copy stays legible, and metadata remains secondary.
 */
:root {
  --case-type-display: clamp(2.75rem, 4.35vw, 3.75rem);
  --case-type-page-title: clamp(2.6rem, 4vw, 3.5rem);
  --case-type-section: clamp(2rem, 3vw, 2.75rem);
  --case-type-content-heading: clamp(2rem, 3.25vw, 3rem);
  --case-type-card-title: 1.375rem;
  --case-type-subheading: 1.125rem;
  --case-type-body-large: 1.0625rem;
  --case-type-body: 1rem;
  --case-type-small: .875rem;
  --case-type-caption: .8125rem;
  --case-leading-display: 1.16;
  --case-leading-heading: 1.3;
  --case-leading-body: 1.75;
}

body {
  font-size: var(--case-type-body);
  line-height: var(--case-leading-body);
}

h1,
h2,
h3 { text-wrap: balance; }

p,
li,
dd,
figcaption { text-wrap: pretty; }

/* Directory and shared section rhythm */
.hero-inner { padding-block: 96px 104px; }

.hero h1 {
  max-width: 920px;
  font-size: var(--case-type-display);
  line-height: var(--case-leading-display);
  letter-spacing: -.025em;
}

.hero-label {
  margin-bottom: 18px;
  font-size: var(--case-type-caption);
  letter-spacing: .1em;
}

.hero-lead {
  max-width: 720px;
  margin-block: 26px 34px;
  font-size: var(--case-type-body-large);
  line-height: 1.8;
}

.section-heading { gap: 10px; margin-bottom: 34px; }

.section-heading h2 {
  max-width: 820px;
  font-size: var(--case-type-section);
  line-height: var(--case-leading-heading);
  letter-spacing: -.025em;
}

.section-heading p {
  max-width: 64ch;
  font-size: var(--case-type-body);
  line-height: 1.7;
}

.proof-policy strong { font-size: var(--case-type-body); }
.proof-policy p { font-size: .9375rem; line-height: 1.7; }

/* Category and industry directory cards */
.category-card-body p,
.industry-status { font-size: var(--case-type-caption); }

.category-card-body h3,
.industry-card-body h3 {
  font-size: var(--case-type-card-title);
  line-height: 1.35;
  letter-spacing: -.018em;
}

.category-card-body > span,
.industry-card-body p {
  font-size: var(--case-type-body);
  line-height: 1.7;
}

.category-card-body > b,
.industry-card-body .case-card-link,
.industry-card-body > span:last-child { font-size: var(--case-type-small); }

/* Category listing and story cards */
.category-hero h1,
.story-hero h1,
.industry-hero h1 {
  font-size: var(--case-type-page-title);
  line-height: var(--case-leading-display);
  letter-spacing: -.027em;
}

.category-hero p:not(.hero-label),
.story-hero > div > p,
.industry-hero p {
  font-size: var(--case-type-body-large);
  line-height: 1.75;
}

.case-card-meta { font-size: var(--case-type-caption); }
.category-chips a { font-size: .75rem; }

.case-card h2 {
  font-size: var(--case-type-card-title);
  line-height: 1.4;
  letter-spacing: -.018em;
}

.case-card-body > p {
  font-size: .9375rem;
  line-height: 1.7;
}

.case-card-link { font-size: var(--case-type-small); }

.breadcrumbs ol,
.category-links a { font-size: var(--case-type-small); }

.case-concept figcaption,
.before-after-figure figcaption,
.industry-before-after-figure figcaption {
  font-size: var(--case-type-caption);
  line-height: 1.6;
}

/* Individual story reading hierarchy */
.story-hero { padding-block: 64px 72px; }

.case h2,
.story-case .case-copy h2 {
  font-size: var(--case-type-content-heading);
  line-height: 1.24;
  letter-spacing: -.025em;
}

.case-summary {
  font-size: var(--case-type-body-large);
  line-height: 1.8;
}

.before-after-copy h3,
.industry-before-after-panel h3 {
  font-size: clamp(1.625rem, 2.4vw, 2rem);
  line-height: 1.3;
  letter-spacing: -.02em;
}

.before-after-copy li p,
.industry-before-after-panel li { font-size: .9375rem; line-height: 1.7; }

.close-cta h2,
.industry-cta h2 {
  font-size: clamp(2rem, 3.4vw, 3rem);
  line-height: 1.25;
  letter-spacing: -.025em;
}

.close-cta p,
.industry-cta p { font-size: var(--case-type-body); }

/* Industry research pages: raise the operational-detail floor */
.industry-status-row > span:last-child,
.industry-hero-highlights li,
.industry-hero-text-link { font-size: var(--case-type-small); }

.industry-journey-stage summary h3,
.industry-journey-step h3,
.industry-system-card h3,
.industry-handoff h3,
.industry-boundary-card h3 {
  font-size: var(--case-type-subheading);
  line-height: 1.4;
}

.industry-journey-columns p,
.industry-journey-data,
.industry-journey-handoff,
.industry-journey-step p,
.industry-journey-detail p,
.industry-system-card summary > p,
.industry-handoff p,
.industry-handoff ul,
.industry-boundary-card ul {
  font-size: .9375rem;
  line-height: 1.7;
}

.industry-journey-columns strong,
.industry-journey-data strong,
.industry-journey-handoff strong,
.industry-system-price span,
.industry-system-expand,
.industry-system-card dt,
.boundary-badge,
.industry-tool-list span {
  font-size: var(--case-type-caption);
}

.industry-system-price strong,
.industry-system-card dd {
  font-size: var(--case-type-small);
  line-height: 1.6;
}

.industry-system-card dl div {
  grid-template-columns: 7.25rem minmax(0, 1fr);
  gap: 12px;
}

.industry-questions li {
  font-size: .9375rem;
  line-height: 1.65;
}

.industry-sources a,
.industry-source-list a,
.industry-source-tags a { font-size: var(--case-type-caption); }

.industry-sources time,
.industry-source-list small { font-size: .75rem; }

.industry-medical-branch h2 {
  font-size: clamp(1.875rem, 3vw, 2.5rem);
  line-height: 1.3;
  letter-spacing: -.025em;
}

.industry-medical-branch p,
.industry-medical-branch li,
.evidence-note { font-size: .9375rem; }

@media (max-width: 620px) {
  :root {
    --case-type-display: clamp(2.35rem, 10.25vw, 2.7rem);
    --case-type-page-title: clamp(2.25rem, 9.75vw, 2.55rem);
    --case-type-section: clamp(1.875rem, 8vw, 2.125rem);
    --case-type-content-heading: clamp(1.875rem, 8.5vw, 2.25rem);
  }

  .hero-inner { padding-block: 68px 76px; }
  .hero-lead { font-size: var(--case-type-body); line-height: 1.75; }
  .section-heading { align-items: flex-start; margin-bottom: 28px; text-align: left; }

  .category-hero h1,
  .story-hero h1,
  .industry-hero h1 { font-size: var(--case-type-page-title); }

  .category-hero p:not(.hero-label),
  .story-hero > div > p,
  .industry-hero p { font-size: var(--case-type-body); line-height: 1.72; }

  .story-hero { padding-block: 44px 52px; }
  .category-card-body > span,
  .industry-card-body p,
  .case-card-body > p { font-size: var(--case-type-body); }

  .industry-system-card dl div {
    grid-template-columns: 6.75rem minmax(0, 1fr);
  }

  .industry-questions li { padding-left: 52px; }
}
