/* Shared type scale, informed by Ostend's 34px sections / 18px cards.
   Loaded last so page-specific legacy rules cannot enlarge headings again. */
:root {
  --type-hero: clamp(38px, 3.7vw, 52px);
  --type-page: clamp(34px, 3.2vw, 44px);
  --type-section: 34px;
  --type-subsection: 26px;
  --type-card: 20px;
}
body .home-hero--showcase .hero-copy h1 {
  font-size: var(--type-hero); font-weight: 550; line-height: 1.14; letter-spacing: -.045em;
}
body .page-header .sec-title,
body .page-article .page-header .sec-title,
body .request-intro .anfragen-title,
body .legal-wrap h1 {
  font-size: var(--type-page); font-weight: 500; line-height: 1.2; letter-spacing: -.035em;
}
body .section-heading h2,
body .page-home .section-heading h2,
body .section-header .sec-title,
body .leistungen-section .section-header .sec-title,
body .page-home .print-section h2,
body .page-home .faq-wrap h2,
body .related-reading h2,
body .closing-cta h2 {
  font-size: var(--type-section); font-weight: 500; line-height: 1.2; letter-spacing: -.035em;
}
body .case-intro .case-summary h2,
body .ref-detail-story h2,
body .ref-detail-extra h3,
body .artikel-content h2,
body .legal-section h2,
body .kontakt-info > h2,
body .kontakt-form-card h2,
body .form-step-title,
body .artikel-cta h2,
body .artikel-cta h3 {
  font-size: var(--type-subsection); font-weight: 500; line-height: 1.3; letter-spacing: -.025em;
}
body .offering-card h3,
body .service-editorial h3,
body .service-feature h3,
body .service-slab h3,
body #grafikdesign .leistung-mini-title {
  font-size: 18px; font-weight: 550; line-height: 1.35; letter-spacing: -.02em;
}
body .leistung-title,
body .leistung-summary .leistung-title,
body .project-card-heading .ref-page-title,
body .home-projects > :first-child .project-card-heading .ref-page-title,
body .ratgeber-card h2,
body .ratgeber-card h3,
body .artikel-content h3,
body .related-reading h3 {
  font-size: var(--type-card); font-weight: 500; line-height: 1.35; letter-spacing: -.025em;
}
body .project-journey .journey-card h3,
body .process-step h3 { font-size: 22px; font-weight: 500; line-height: 1.3; }
body .next-project > a { font-size: 26px; line-height: 1.3; }
body .footer-brand h2 { font-size: 30px; font-weight: 500; line-height: 1.25; }
body .page-header .sec-sub,
body .section-header .sec-sub,
body .leistungen-section .section-header > .sec-sub,
body .section-heading > p { font-size: 16px; line-height: 1.7; }

@media (max-width: 850px) {
  :root { --type-hero: 40px; --type-page: 36px; --type-section: 30px; --type-subsection: 24px; }
}
@media (max-width: 540px) {
  :root { --type-hero: clamp(32px, 9vw, 36px); --type-page: 32px; --type-section: 26px; --type-subsection: 23px; --type-card: 18px; }
  body .project-journey .journey-card h3,
  body .process-step h3 { font-size: 20px; }
  body .footer-brand h2 { font-size: 26px; }
  body .next-project > a { font-size: 22px; }
}
