/* Shared editorial typography system */
:root {
    --font-sans: "Segoe UI Variable", "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    --text-xs: 0.8125rem;
    --text-sm: 0.9375rem;
    --text-base: 1rem;
    --text-lead: clamp(1.0625rem, 1rem + 0.28vw, 1.25rem);
    --text-h3: clamp(1.1875rem, 1.1rem + 0.28vw, 1.375rem);
    --text-h2: clamp(2rem, 1.55rem + 2.15vw, 3.5rem);
    --text-h1: clamp(2.75rem, 2rem + 3.6vw, 5.25rem);
    --leading-body: 1.65;
    --leading-heading: 1.04;
    --tracking-heading: -0.045em;
}

html { font-size: 100%; }

body {
    font-family: var(--font-sans);
    font-size: var(--text-base);
    line-height: var(--leading-body);
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
}

h1,
h2,
h3,
p,
li,
label,
input,
select,
textarea,
button,
summary { font-family: inherit; }

.hero h1,
.hero--marketing h1,
.about-hero h1,
.page-heading h1 {
    font-size: var(--text-h1);
    font-weight: 800;
    line-height: var(--leading-heading);
    letter-spacing: var(--tracking-heading);
}

.section h2,
.challenge h2,
.why h2,
.fit h2,
.faq h2,
.cta h2,
.about-manifesto h2,
.team h2,
.about-principles h2,
.about-closing h2,
.contact-layout h2 {
    font-size: var(--text-h2);
    font-weight: 780;
    line-height: 1.08;
    letter-spacing: -0.04em;
}

.services-grid h3,
.process h3,
.challenge__outcomes h3,
.why__list h3,
.person h3,
.about-principles h3 {
    font-size: var(--text-h3);
    line-height: 1.25;
    letter-spacing: -0.018em;
}

.hero p,
.about-hero__copy p,
.page-heading p,
.section-heading p,
.lead,
.team__heading p,
.about-closing p,
.why__statement p {
    font-size: var(--text-lead);
    line-height: 1.6;
}

.services-grid p,
.process p,
.challenge__outcomes p,
.why__list p,
.about-principles li p,
.faq details p,
.contact-layout p { font-size: var(--text-base); }

.site-nav a,
.mobile-nav a,
.button,
label,
input,
select,
textarea { font-size: var(--text-sm); }

.hero-assurances,
.trust li,
.site-footer__grid p,
.site-footer__grid li { font-size: var(--text-sm); }

.about-manifesto__number,
.challenge__outcomes span {
    font-size: var(--text-xs);
    line-height: 1.2;
    letter-spacing: 0.09em;
}

@media (max-width: 43.99rem) {
    :root {
        --text-h1: clamp(2.625rem, 11vw, 3.65rem);
        --text-h2: clamp(1.875rem, 8vw, 2.65rem);
    }

    .hero h1,
    .hero--marketing h1,
    .about-hero h1,
    .page-heading h1 { line-height: 1.02; }
}
