:root {
    --font-sans: 'Plus Jakarta Sans', 'Inter', system-ui, -apple-system, sans-serif;
    --font-display: 'Plus Jakarta Sans', 'Inter', system-ui, -apple-system, sans-serif;
    --font-mono: 'JetBrains Mono', monospace;

    /* One type scale for every public page, taken from the landing page (sizes at a 1440px viewport). */
    --type-page-title: clamp(2.25rem, 4.5vw, 3.75rem);       /* 60px: page h1 */
    --type-section-title: clamp(1.875rem, 3vw, 3rem);        /* 43px: section h2 */
    --type-cta-title: clamp(1.875rem, 2.2vw, 2.25rem);       /* 32px: h2 inside a contained CTA box */
    --type-subsection-title: clamp(1.375rem, 2vw, 1.75rem);  /* 28px: heading inside a section */
    --type-card-title: clamp(1.125rem, 1.5vw, 1.25rem);      /* 20px: card and list item titles */
    --type-lead: clamp(1rem, 1.3vw, 1.25rem);                /* 19px: hero intro copy */
    --type-body: clamp(1rem, 1vw, 1.0625rem);                /* 16px: section intros and long-form copy */
    --type-card-body: clamp(0.9375rem, 1.1vw, 1rem);         /* 16px: card copy */
    --type-small: 0.875rem;                                   /* 14px: buttons, links, labels and meta */
    --type-eyebrow: 0.75rem;                                  /* 12px: uppercase kickers */
}

body {
    font-family: var(--font-sans);
}

/* Keep the same type system across public pages, forms, and the admin UI. */
body :is(h1, h2, h3, h4, h5, h6) {
    font-family: var(--font-display) !important;
    letter-spacing: -0.025em;
}

body :is(p, a, button, input, textarea, select, option, label, legend, li, td, th, dt, dd, summary, blockquote, figcaption, small) {
    font-family: var(--font-sans) !important;
}

body :is(pre, code, kbd, samp, .font-mono, .telemetry-value, .telemetry-label, .lp-eyebrow, .lp-hero__eyebrow, .lp-hero__metric-value, .about-ref__eyebrow, .contact-header-badge, .cr-eyebrow, .product-detail-eyebrow, .industry-hero__eyebrow, .payment-eyebrow, .service-hero-kicker, .service-section-kicker, .case-study-kicker, .case-study-section__eyebrow, .case-study-related__category, .leader-eyebrow) {
    font-family: var(--font-mono) !important;
    font-variant-numeric: tabular-nums;
}

body :is(.lp-eyebrow, .lp-hero__eyebrow, .about-ref__eyebrow, .contact-header-badge, .cr-eyebrow, .product-detail-eyebrow, .industry-hero__eyebrow, .payment-eyebrow, .service-hero-kicker, .service-section-kicker, .case-study-kicker, .case-study-section__eyebrow, .case-study-related__category, .leader-eyebrow) {
    font-weight: 600 !important;
}

/* Bring detail pages that predate the shared scale into the same hierarchy. */
.service-detail-page .service-hero h1,
.content-reference-page .cr-hero h1,
.portfolio-page .portfolio-hero h1,
.case-study-page .case-study-hero h1,
.bt-blog-article .bt-blog-hero__copy h1,
.leader-page .leader-intro h1 {
    font-size: var(--type-page-title) !important;
    line-height: 1.12;
}

.case-study-page :is(.case-study-section h2, .case-study-related h2, .case-study-cta h2),
.leader-page .leader-others h2,
.bt-testimonials__heading h2,
.about-ref__copy h2,
.service-state-map__header h2 {
    font-size: var(--type-section-title) !important;
    line-height: 1.17;
}

.reference-cta h2,
.industry-cta h2,
.state-cta__inner h2 {
    font-size: var(--type-cta-title) !important;
    line-height: 1.17;
}

.service-detail-page .consultation-card h2,
.portfolio-project__content h2 {
    font-size: var(--type-subsection-title) !important;
    line-height: 1.25;
}

.service-detail-page :is(.service-capability-card h3, .service-process-step h3, .service-trust-card h3),
.content-reference-page :is(.cr-story-card h2, .cr-story-card h3),
:is(.industry-page, .industry-detail-page) :is(.industry-challenge-card, .industry-solution-card, .industry-process-step, .industry-service-card, .industry-intro-card, .industry-capability-card, .industry-process-card, .industry-service-item, .industry-reason-card, .industry-sector-card, .industry-stack-card) h3,
.product-feature__body h3,
.content-reference-page .cr-product-card h2,
.leader-page .leader-timeline h2,
.state-detail-page :is(.state-impact__panel h3, .state-process__grid h3),
.case-study-page :is(.case-study-priorities, .case-study-capabilities) h3,
.portfolio-project__content h3 {
    font-size: var(--type-card-title) !important;
    line-height: 1.3;
}

.service-detail-page .service-hero-copy,
.content-reference-page :is(.cr-hero p, .cr-copy),
.case-study-hero__intro {
    font-size: var(--type-lead) !important;
    line-height: 1.65;
}

.service-detail-page :is(.service-industries-header p, .service-contact-cta p, .service-faq-button),
.industry-section-intro,
.industry-cta p,
.service-state-map__header p,
.reference-cta p,
.privacy-section p,
.privacy-list li,
.bt-blog-inline-cta p,
.bt-blog-faq__list p {
    font-size: var(--type-body) !important;
    line-height: 1.65;
}

.service-detail-page :is(.service-capability-card p, .service-process-step p, .service-trust-card p, .service-faq-answer),
.content-reference-page :is(.cr-story-card p, .cr-product-card p),
:is(.industry-page, .industry-detail-page) :is(.industry-challenge-card, .industry-solution-card, .industry-process-step, .industry-service-card, .industry-intro-card, .industry-capability-card, .industry-process-card, .industry-service-item, .industry-reason-card, .industry-sector-card) p,
.industry-page .industry-stack-card li,
.state-detail-page :is(.state-impact__panel p, .state-process__grid p),
.case-study-page .case-study-priority p,
.leader-page .leader-contact p,
.page-cards-text,
.portfolio-project__description,
.portfolio-project__features li {
    font-size: var(--type-card-body) !important;
    line-height: 1.6;
}

.service-detail-page :is(.service-hero-connect, .service-primary-link, .consultation-submit) {
    min-height: 44px;
}

.service-detail-page :is(.service-hero-connect, .service-primary-link, .consultation-submit, .service-story-cta, .consultation-field label, .service-industry-card__label),
.content-reference-page :is(.cr-category-link, .cr-button, .cr-story-card__link, .cr-case-study-card__content strong),
:is(.industry-page, .industry-detail-page) :is(.industry-primary-button, .industry-secondary-button, .industry-brands-title),
.state-detail-page :is(.state-button, .state-related__heading a, .state-section-heading__actions a),
.leader-page :is(.leader-contact a, .leader-intro__links a),
.product-overview__button,
.case-study-print,
.bt-blog-key-summary__table-wrap td,
.reference-cta__button,
.bt-blog-inline-cta a,
.bt-blog-toc__level-3 a,
.bt-blog-trust__person p,
.bt-blog-trust__promise p,
.portfolio-project__category,
.portfolio-project__premium,
.portfolio-project__content h4,
.about-ref__location-card h3,
.payment-field label,
.payment-breakdown dd,
.main-wrapper .btn.btn-lg {
    font-size: var(--type-small) !important;
}

.service-detail-page .consultation-field :is(input, textarea) {
    font-size: 1rem !important;
}

.service-detail-page :is(.service-hero-kicker, .service-section-kicker),
.content-reference-page :is(.cr-eyebrow, .cr-story-card__category, .cr-case-study-card__category),
.case-study-page :is(.case-study-section__eyebrow, .case-study-sidebar__label, .case-study-facts__label, .case-study-related__category),
.bt-testimonials__eyebrow,
:is(.industry-page, .industry-detail-page) .industry-eyebrow {
    font-size: var(--type-eyebrow) !important;
}

.content-reference-page :is(.cr-eyebrow, .cr-story-card__category, .cr-case-study-card__category) {
    font-family: var(--font-mono) !important;
}
