/* Shared spacing and text rhythm, without changing content or page layouts. */
:root {
  --section-space:clamp(4rem,7vw,7rem);
  --heading-space:clamp(1.75rem,3.5vw,3.25rem);
}
.section-block { padding-top:var(--section-space); }
.section-heading { margin-bottom:var(--heading-space); gap:1.5rem; }
.section-heading h2 { letter-spacing:-.018em; line-height:.98; text-wrap:balance; }
:is(.page-hero-copy>p,.section-heading>p,.about-story p,.principle p,.service-fit,.service-detail-footer p,.process-step p,.faq-answer p,.contact-description,.contact-brief p,.story-content p) { text-wrap:pretty; }
.page-hero-copy>p { max-width:55ch; line-height:1.7; }
.page-hero-copy .eyebrow { margin-bottom:clamp(1.25rem,2.5vw,2rem); }
:is(.about-cta-title,.projects-cta-title,.service-detail h2,.principle h3,.process-step h3,.calc-step h2,.faq-question strong,.contact-brief h2) { text-wrap:balance; }
.section-heading>p { max-width:45ch; line-height:1.7; }
.service-detail-footer p { max-width:60ch; }
.service-build { line-height:1.6; }
.process-step { min-height:0; padding-block:1.5rem 1.75rem; }
.process-step h3 { margin-top:2.5rem; line-height:1.3; }
.process-step p { line-height:1.65; }
.faq-question strong { line-height:1.35; }
.faq-answer p { line-height:1.75; }
.story-content :is(h3,h4) { text-wrap:balance; }
body[data-page="about"] .about-story { gap:clamp(1.5rem,2.3vw,2rem); }
@media(min-width:821px) {
  body[data-page="about"] .page-hero,
  body[data-page="services"] .page-hero,
  body[data-page="projects"] .page-hero { min-height:520px; }
}
@media(max-width:820px) {
  .page-hero { padding-block:1.5rem 2rem; gap:1.75rem; }
  .page-hero-copy>p { margin-top:1.5rem; }
  .section-heading { gap:1rem; }
  .section-heading>p { max-width:42ch; }
  .section-heading h2 { font-size:clamp(2.35rem,8vw,4rem); }
  body[data-page="about"] .about-story blockquote { line-height:1.18; }
}

@media(max-width:360px) {
  body[data-page="contact"] .contact-stage h1 { font-size:3rem; }
}
