/* Basalt Dynamics public typography system.
   Loaded after page-level styles and intentionally excluded from admin/merchant dashboards. */
:root {
    --font-display-xl: clamp(4rem, 6vw, 6.25rem);
    --font-display-lg: clamp(3.5rem, 5vw, 5.25rem);
    --font-display-md: clamp(3rem, 4.2vw, 4.5rem);
    --font-h1: clamp(3rem, 4vw, 4.25rem);
    --font-h2: clamp(2.4rem, 3.3vw, 3.5rem);
    --font-h3: clamp(1.9rem, 2.5vw, 2.6rem);
    --font-h4: clamp(1.45rem, 1.8vw, 1.9rem);
    --font-h5: 1.25rem;
    --font-h6: 1.1rem;
    --font-body-xl: 1.1875rem;
    --font-body-lg: 1.0625rem;
    --font-body: 1rem;
    --font-body-sm: .9375rem;
    --font-label: .875rem;
    --font-caption: .8125rem;
    --font-micro: .75rem;
    --font-button: .9375rem;
    --font-nav: .9rem;
    --font-card-title: 1.15rem;
    --font-card-body: .9375rem;
}

html {
    font-family: "Plus Jakarta Sans", sans-serif;
    font-size: 16px;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

body.public-site {
    font-family: "Plus Jakarta Sans", sans-serif;
    font-size: var(--font-body);
    font-weight: 400;
    line-height: 1.7;
    color: var(--bd-text, #5f6c62);
}

body.public-site :where(div, section, article, aside, header, footer, main, nav, dl, dt, dd, details, summary, h1, h2, h3, h4, h5, h6, p, a, button, input, select, textarea, label, legend, li, span, small, strong, em, table, th, td) {
    font-family: "Plus Jakarta Sans", sans-serif;
    font-synthesis: none;
}

body.public-site :where(.la, .las, .lar, .lab, .fa, .fas, .far, .fab) {
    font-family: "Line Awesome Free", "Font Awesome 5 Free" !important;
}

body.public-site :where(code, pre, kbd, samp),
body.public-site :where(code, pre, kbd, samp) * {
    font-family: "Plus Jakarta Sans", sans-serif;
}

body.public-site :where(h1, .h1, .type-display, .type-hero) {
    font-size: var(--font-h1);
    font-weight: 740;
    letter-spacing: -.045em;
    line-height: 1.02;
}

body.public-site :where(h2, .h2, .type-section-title, .section-heading__title) {
    font-size: var(--font-h2);
    font-weight: 720;
    letter-spacing: -.04em;
    line-height: 1.06;
}

body.public-site :where(h3, .h3) {
    font-size: var(--font-h3);
    font-weight: 700;
    letter-spacing: -.032em;
    line-height: 1.1;
}

body.public-site :where(h4, .h4) { font-size: var(--font-h4); font-weight: 680; letter-spacing: -.025em; line-height: 1.2; }
body.public-site :where(h5, .h5) { font-size: var(--font-h5); font-weight: 650; line-height: 1.3; }
body.public-site :where(h6, .h6) { font-size: var(--font-h6); font-weight: 650; line-height: 1.35; }

body.public-site :where(.lead, .section-lead, .hero-description, .type-section-description, .section-heading__description) {
    max-width: 660px;
    font-size: var(--font-body-lg);
    line-height: 1.72;
}

body.public-site :where(.hero-description) { max-width: 540px; }
body.public-site :where(.section-heading__eyebrow, .type-label, .bd-eyebrow) { font-size: var(--font-caption); font-weight: 700; letter-spacing: .14em; line-height: 1.2; }
body.public-site :where(.card-title, .type-card-title) { font-size: var(--font-card-title); font-weight: 680; letter-spacing: -.02em; line-height: 1.3; }
body.public-site :where(.card-description, .type-card-description) { font-size: var(--font-card-body); line-height: 1.65; }
body.public-site :where(.type-meta, .type-caption) { font-size: var(--font-caption); line-height: 1.5; }
body.public-site :where(.modal-title, .offcanvas-title) { font-size: var(--font-h5); line-height: 1.3; }
body.public-site :where(.modal-body, .offcanvas-body) { font-size: var(--font-body); line-height: 1.7; }
body.public-site :where(input, textarea)::placeholder { font-size: inherit; }

/* Shared public controls */
body.public-site :where(.btn:not(.policy), .bd-button, button[type="submit"]:not(.policy), input[type="submit"]:not(.policy)) {
    min-height: 46px;
    font-size: var(--font-button);
    font-weight: 700;
    line-height: 1;
}

body.public-site :where(.form-label, .floating-label, .form-group > label, .form--group > label) {
    font-size: var(--font-label);
    font-weight: 650;
    line-height: 1.4;
}

body.public-site :where(.form-control, .form--control, .form-select, select, textarea, input[type="text"], input[type="email"], input[type="password"], input[type="tel"], input[type="search"], input[type="url"], input[type="number"]) {
    font-size: .9375rem;
    line-height: 1.5;
}

body.public-site :where(.invalid-feedback, .text-danger, .text--danger, .form-text, .help-block, .input-popup p) {
    font-size: var(--font-caption);
    font-weight: 500;
    line-height: 1.45;
}

body.public-site :where(.breadcrumb, [class$="-breadcrumb"], [class$="__breadcrumb"]) {
    font-size: var(--font-caption);
    line-height: 1.4;
}

body.public-site :where(.pagination, .page-link, [class$="-pagination"] a, [class$="__pagination"] a) {
    font-size: var(--font-label);
}

body.public-site :where(.nav-tabs .nav-link, .tab, .filter-pill, .segmented-control) {
    font-size: var(--font-label);
    font-weight: 650;
}

body.public-site .custom--card .card-title,
body.public-site .verification-area h5 {
    font-size: var(--font-h5);
    font-weight: 650;
    line-height: 1.3;
}

body.public-site .custom--card .card-body > :where(p, div) p,
body.public-site .verification-area,
body.public-site .verification-text,
body.public-site .submit-form .form-group {
    font-size: var(--font-body);
    line-height: 1.7;
}

/* Shared public navigation and footer */
body.public-site .header .nav-link {
    font-size: var(--font-nav) !important;
    font-weight: 600;
    letter-spacing: -.008em;
    line-height: 1;
}

body.public-site .header-buttons .btn,
body.public-site .custom--dropdown__selected,
body.public-site .custom--dropdown .dropdown-list__item { font-size: var(--font-label); }

body.public-site .bd-footer__column h2,
body.public-site .footer-item__title {
    font-size: var(--font-caption);
    font-weight: 700;
    letter-spacing: .08em;
    line-height: 1.4;
    text-transform: uppercase;
}

body.public-site .bd-footer__column a,
body.public-site .footer-menu__link {
    color: rgba(255,255,255,.62);
    font-size: var(--font-label);
    line-height: 1.65;
}

body.public-site .bd-footer__brand p,
body.public-site .footer-item__desc {
    color: rgba(255,255,255,.62);
    font-size: var(--font-label);
    line-height: 1.7;
}

body.public-site .bd-footer__bottom :where(span, a),
body.public-site .bottom-footer-text {
    font-size: var(--font-micro);
    line-height: 1.5;
}

/* Homepage ordinary content; dashboard illustration remains independently scaled. */
body.public-site.bd-home .bd-homepage .bd-hero__title { font-size: var(--font-display-lg); }
body.public-site.bd-home .bd-homepage .bd-hero__description { font-size: var(--font-body-lg); line-height: 1.72; }
body.public-site.bd-home .bd-homepage .bd-hero__trust li { font-size: var(--font-label); }
body.public-site.bd-home .bd-homepage .bd-eyebrow { font-size: var(--font-micro); }
body.public-site.bd-home .bd-homepage .bd-section-title { font-size: var(--font-h2); }
body.public-site.bd-home .bd-homepage :where(.bd-section-copy, .bd-section-heading--split > p, .bd-primary-cta p) { font-size: var(--font-body); line-height: 1.7; }
body.public-site.bd-home .bd-partners__title { font-size: var(--font-micro); }
body.public-site.bd-home .bd-metric-panel span,
body.public-site.bd-home .bd-principle span { font-size: var(--font-caption); }
body.public-site.bd-home .bd-benefit-card h3 { font-size: var(--font-card-title); line-height: 1.3; }
body.public-site.bd-home .bd-benefit-card p,
body.public-site.bd-home .bd-product-card p { font-size: var(--font-card-body); line-height: 1.65; }
body.public-site.bd-home .bd-product-card h3 { font-size: 1.25rem; line-height: 1.25; }
body.public-site.bd-home :where(.bd-text-link, .bd-product-card .bd-text-link) { font-size: var(--font-label); }
body.public-site.bd-home .bd-case-card__overlay span { font-size: var(--font-label); }
body.public-site.bd-home .bd-case-card__overlay h3 { font-size: clamp(1.2rem,1.5vw,1.55rem); line-height: 1.3; }
body.public-site.bd-home .bd-faq-item .accordion-button { font-size: 1rem; line-height: 1.45; }
body.public-site.bd-home .bd-faq-item .accordion-body { font-size: .95rem; line-height: 1.75; }
body.public-site.bd-home .bd-trust-card :where(p, li) { font-size: var(--font-card-body); }
body.public-site.bd-home .bd-quote-card > p { font-size: var(--font-card-body); line-height: 1.7; }
body.public-site.bd-home .bd-quote-card__person strong { font-size: var(--font-label); }
body.public-site.bd-home .bd-quote-card__person small { font-size: var(--font-caption); }

/* Gateway / case-study-led public page */
body.public-site.bd-gateway .bdg-breadcrumb { font-size: var(--font-caption); }
body.public-site.bd-gateway .bdg-hero h1 { font-size: var(--font-display-lg); line-height: .96; letter-spacing: -.055em; }
body.public-site.bd-gateway .bdg-hero__content > p { font-size: var(--font-body-lg); line-height: 1.72; }
body.public-site.bd-gateway :where(.bd-section-title, .bdg-section h2, .bdg-section-heading h2) { font-size: var(--font-h2); line-height: 1.05; }
body.public-site.bd-gateway :where(.bdg-capability h3, .bdg-case__content h3, .bdg-security__cards h3, .bdg-insights h3) { font-size: var(--font-card-title); line-height: 1.3; }
body.public-site.bd-gateway :where(.bdg-capability__copy p, .bdg-case__content p, .bdg-developer__content > p, .bdg-integration__content > p, .bdg-global__content > p, .bdg-security__statement p, .bdg-insights__content > p) { font-size: var(--font-body); line-height: 1.7; }
body.public-site.bd-gateway :where(.bdg-checklist li, .bdg-checkout-points li, .bdg-assurances li, .bdg-insight-tags span) { font-size: var(--font-label); line-height: 1.55; }
body.public-site.bd-gateway .bdg-case__label { font-size: var(--font-label); }
body.public-site.bd-gateway :where(.bdg-capability__copy > span, .bdg-process__steps li > span, .bdg-methods__heading > span) { font-size: var(--font-micro); }
body.public-site.bd-gateway :where(.bdg-experience-tabs span, .bdg-methods__panel > a, .bdg-developer__content li strong, .bdg-global__stats span) { font-size: var(--font-label); }
body.public-site.bd-gateway :where(.bdg-process__steps p, .bdg-security__cards p) { font-size: var(--font-card-body); line-height: 1.65; }
body.public-site.bd-gateway .bdg-checklist strong { font-size: var(--font-label); }
body.public-site.bd-gateway .bdg-checklist small { font-size: var(--font-caption); }

/* Contact */
body.public-site.bd-contact .bdc-breadcrumb { font-size: var(--font-caption); }
body.public-site.bd-contact .bdc-hero h1 { font-size: var(--font-display-md); line-height: 1; }
body.public-site.bd-contact .bdc-hero__content > p { font-size: var(--font-body-lg); line-height: 1.72; }
body.public-site.bd-contact :where(.bdc-main__intro h2, .bdc-routing__head h2, .bdc-office__copy h2, .bdc-final__copy h2) { font-size: var(--font-h2); line-height: 1.06; }
body.public-site.bd-contact :where(.bdc-main__intro p, .bdc-routing__head p, .bdc-office__copy p, .bdc-final__copy p) { font-size: var(--font-body); line-height: 1.7; }
body.public-site.bd-contact :where(.bdc-contact-item h3, .bdc-route-card h3, .bdc-office__card h3, .bdc-panel-heading h2) { font-size: var(--font-card-title); line-height: 1.3; }
body.public-site.bd-contact :where(.bdc-contact-item p, .bdc-route-card p, .bdc-office__card p, .bdc-form__note) { font-size: var(--font-card-body); line-height: 1.65; }
body.public-site.bd-contact :where(.bdc-field label, .bdc-captcha label) { font-size: var(--font-label); }
body.public-site.bd-contact :where(.bdc-field input, .bdc-field select, .bdc-field textarea) { font-size: .9375rem; }
body.public-site.bd-contact :where(.bdc-field__helper, .bdc-field__error) { font-size: var(--font-caption); }
body.public-site.bd-contact .bdc-submit { font-size: var(--font-button); }
body.public-site.bd-contact :where(.bdc-route-card__copy strong, .bdc-contact-item strong, .bdc-team-routing__head strong) { font-size: 1.05rem; line-height: 1.3; }
body.public-site.bd-contact :where(.bdc-route-card__copy small, .bdc-contact-item small, .bdc-info-panel__head p, .bdc-team-routing__head span) { font-size: var(--font-card-body); line-height: 1.6; }
body.public-site.bd-contact :where(.bdc-info-panel__head > span, .bdc-routing__head div span, .bdc-routing__status) { font-size: var(--font-micro); }
body.public-site.bd-contact :where(.bdc-office__copy dt, .bdc-info-panel__docs small, .bdc-trust__strip small) { font-size: var(--font-caption); }
body.public-site.bd-contact :where(.bdc-office__copy dd, .bdc-info-panel__docs strong, .bdc-trust__strip strong, .bdc-team-routing > a) { font-size: var(--font-label); }

/* Merchant login and registration */
body.public-site.bd-merchant-login :where(.bdl-product__copy h1, .bdl-auth-card__heading h2, .bdr-product__copy h1, .bdr-auth-card__heading h2) { font-size: clamp(2.375rem,4vw,2.875rem); line-height: 1.05; }
body.public-site.bd-merchant-login :where(.bdl-product__copy p, .bdl-auth-card__heading p, .bdr-product__copy p, .bdr-auth-card__heading p) { font-size: var(--font-body); line-height: 1.7; }
body.public-site.bd-merchant-login :where(.bdl-eyebrow, .bdl-auth-eyebrow) { font-size: var(--font-micro); }
body.public-site.bd-merchant-login :where(.bdl-field label, .bdr-field label, .bdl-captcha label, .bdr-captcha label) { font-size: var(--font-label); line-height: 1.4; }
body.public-site.bd-merchant-login :where(.bdl-field input, .bdr-field input, .bdr-field select) { font-size: .9375rem; }
body.public-site.bd-merchant-login :where(.bdl-submit, .bdr-submit) { font-size: var(--font-button); }
body.public-site.bd-merchant-login :where(.bdl-checkbox em, .bdl-form__options > a, .bdr-terms em, .bdr-signin) { font-size: var(--font-label); }
body.public-site.bd-merchant-login :where(.bdl-field__error, .bdr-helper, .bdr-alert, .bdl-alert span) { font-size: var(--font-caption); }
body.public-site.bd-merchant-login :where(.bdl-legal a, .bdl-copyright, .bdr-footer, .bdr-footer a) { font-size: var(--font-caption); }
body.public-site.bd-merchant-login :where(.bdl-create-account > span, .bdl-create-account > a) { font-size: var(--font-label); }
body.public-site.bd-merchant-login :where(.bdl-security, .bdr-security, .bdr-password-guide) { font-size: var(--font-caption); line-height: 1.5; }
body.public-site.bd-merchant-login .bdl-header__back { font-size: var(--font-label); }
body.public-site.bd-merchant-login :where(.bdr-phone-control .mobile-code, .bdr-existing-modal .modal-body p) { font-size: var(--font-caption); }
body.public-site.bd-merchant-login :where(.bd-button-primary, .bd-button-secondary) { min-height: 46px; font-size: var(--font-button); }

/* Products / FAQ help center */
body.public-site.bd-products-page .bdp-breadcrumb { font-size: var(--font-caption); }
body.public-site.bd-products-page .bdp-hero h1 { font-size: var(--font-display-lg); line-height: .96; }
body.public-site.bd-products-page .bdp-hero__content > p { font-size: var(--font-body-lg); line-height: 1.72; }
body.public-site.bd-products-page .bdp-hero .bd-button { font-size: var(--font-button); }
body.public-site.bd-products-page .bdp-principles li,
body.public-site.bd-products-page .bdp-product-nav a { font-size: var(--font-label); }
body.public-site.bd-products-page :where(.bdp-section-title, .bdp-section-heading h2, .bdp-family__heading h2, .bdp-connected__heading h2, .bdp-operations__copy h2) { font-size: var(--font-h2); line-height: 1.05; }
body.public-site.bd-products-page :where(.bdp-family__heading > p, .bdp-connected__heading > p, .bdp-section-heading > p, .bdp-operations__copy > p) { font-size: var(--font-body); line-height: 1.7; }
body.public-site.bd-products-page .bdp-product-card h3 { font-size: 1.25rem; line-height: 1.25; }
body.public-site.bd-products-page .bdp-product-card p { font-size: .95rem; line-height: 1.65; }
body.public-site.bd-products-page :where(.bdp-product-card > a, .bdp-product-card__content > a) { font-size: var(--font-label); }
body.public-site.bd-products-page .bdp-card-label { font-size: var(--font-micro); }
body.public-site.bd-products-page :where(.bdp-product-card__content li, .bdp-operation-benefits p, .bdp-case__support p) { font-size: var(--font-card-body); line-height: 1.6; }
body.public-site.bd-products-page .bdp-compare :where(strong, span, a, b) { font-size: var(--font-label); line-height: 1.5; }
body.public-site.bd-products-page .bdp-compare__head { font-size: var(--font-micro); }
body.public-site.bd-products-page .bdp-accordion .accordion-button { font-size: 1rem; line-height: 1.45; }
body.public-site.bd-products-page .bdp-accordion .accordion-body { font-size: .95rem; line-height: 1.75; }
body.public-site.bd-products-page :where(.bdp-operation-benefits strong, .bdp-workflow h3) { font-size: 1.05rem; line-height: 1.3; }
body.public-site.bd-products-page :where(.bdp-operation-benefits small, .bdp-workflow p) { font-size: var(--font-card-body); line-height: 1.65; }
body.public-site.bd-products-page .bdp-faq__grid > div:first-child > a { font-size: var(--font-label); }
body.public-site.bd-products-page :where(.bdp-workflow li > span, .bdp-case__image > span, .bdp-accordion .accordion-button > span) { font-size: var(--font-micro); }

/* About and mission */
body.public-site.bd-about-page .bda-breadcrumb,
body.public-site.bd-mission-page .bdm-breadcrumb { font-size: var(--font-caption); }
body.public-site.bd-about-page .bda-hero h1,
body.public-site.bd-mission-page .bdm-hero h1 { font-size: var(--font-display-lg); line-height: .96; }
body.public-site.bd-about-page .bda-hero__content > p,
body.public-site.bd-mission-page .bdm-hero__content > p { font-size: var(--font-body-lg); line-height: 1.72; }
body.public-site.bd-about-page :where(.bda-section-title, .bda-section-heading h2, .bda-direction__heading h2),
body.public-site.bd-mission-page :where(.bdm-section-title, .bdm-section-heading h2, .bdm-decisions__heading h2, .bdm-commitments__heading h2) { font-size: var(--font-h2); line-height: 1.05; }
body.public-site.bd-about-page :where(.bda-intro__lead, .bda-intro__support, .bda-human__content > p, .bda-craft__content > p, .bda-case__content > p),
body.public-site.bd-mission-page :where(.bdm-statement p, .bdm-technology__content > p, .bdm-audience > p, .bdm-case__support p) { font-size: var(--font-body); line-height: 1.7; }
body.public-site.bd-about-page :where(.bda-principle h3, .bda-capability h3, .bda-partner__reasons h3),
body.public-site.bd-mission-page :where(.bdm-commitment h3, .bdm-practice h3, .bdm-product-links h3) { font-size: var(--font-card-title); line-height: 1.3; }
body.public-site.bd-about-page :where(.bda-principle p, .bda-capability p, .bda-partner__reasons p),
body.public-site.bd-mission-page :where(.bdm-commitment p, .bdm-practice p, .bdm-product-links p, .bdm-audience__list li) { font-size: var(--font-card-body); line-height: 1.65; }
body.public-site.bd-about-page :where(.bda-intro__support p, .bda-process p, .bda-direction__line p, .bda-partner__reasons p) { font-size: var(--font-card-body); line-height: 1.65; }
body.public-site.bd-about-page :where(.bda-intro__statement a, .bda-capability > a, .bda-case__content > a) { font-size: var(--font-label); }
body.public-site.bd-about-page .bda-profile dt { font-size: var(--font-micro); }
body.public-site.bd-about-page .bda-profile dd { font-size: var(--font-card-body); }
body.public-site.bd-about-page :where(.bda-craft__content li strong, .bda-craft__content li small) { font-size: var(--font-card-body); line-height: 1.6; }
body.public-site.bd-about-page :where(.bda-process li > span, .bda-direction__line article > span, .bda-partner__reasons article > span) { font-size: var(--font-micro); }
body.public-site.bd-mission-page :where(.bdm-technology__content li, .bdm-product-links a, .bdm-statement a) { font-size: var(--font-label); line-height: 1.55; }
body.public-site.bd-mission-page :where(.bdm-decision-list p, .bdm-direction__path p, .bdm-trust article small) { font-size: var(--font-card-body); line-height: 1.65; }
body.public-site.bd-mission-page :where(.bdm-trust article strong, .bdm-product-links a) { font-size: var(--font-label); }
body.public-site.bd-mission-page :where(.bdm-decision-list article > span, .bdm-direction__path article > span, .bdm-product-links article > span, .bdm-case__visual > span) { font-size: var(--font-micro); }

/* Resource listing */
body.public-site.bd-resources-page .bdr-breadcrumb { font-size: var(--font-caption); }
body.public-site.bd-resources-page .bdr-hero h1 { font-size: var(--font-display-md); line-height: 1; }
body.public-site.bd-resources-page .bdr-hero__intro > p { font-size: var(--font-body-lg); line-height: 1.72; }
body.public-site.bd-resources-page .bdr-hero__note p { font-size: var(--font-caption); }
body.public-site.bd-resources-page :where(.bdr-featured__meta, .bdr-card__meta) { font-size: var(--font-caption); }
body.public-site.bd-resources-page .bdr-featured__overlay h2,
body.public-site.bd-resources-page .bdr-card h3 { font-size: clamp(1.2rem,1.5vw,1.55rem); line-height: 1.28; }
body.public-site.bd-resources-page :where(.bdr-featured__overlay > p, .bdr-card__content > p) { font-size: .95rem; line-height: 1.65; }
body.public-site.bd-resources-page .bdr-read-link { font-size: var(--font-label); }
body.public-site.bd-resources-page .bdr-discovery__header > p { font-size: var(--font-label); }
body.public-site.bd-resources-page .bdr-card__meta > span:first-child { font-size: var(--font-micro); }
body.public-site.bd-resources-page .bdr-newsletter__form > label { font-size: var(--font-label); }
body.public-site.bd-resources-page .bdr-newsletter__form input { font-size: .9375rem; }
body.public-site.bd-resources-page .bdr-newsletter__status { font-size: var(--font-caption); }
body.public-site.bd-resources-page :where(.bdr-code pre, .bdr-code__endpoint code, .bdr-code header b, .bdr-code header em, .bdr-code footer) { font-size: var(--font-caption); }
body.public-site.bd-resources-page :where(.bdr-code__endpoint span, .bdr-featured--empty span) { font-size: var(--font-caption); }

/* Article detail */
body.public-site.bd-article-page .bda-article-breadcrumb { font-size: var(--font-caption); }
body.public-site.bd-article-page .bda-article-hero h1 { font-size: var(--font-display-md); line-height: 1; }
body.public-site.bd-article-page .bda-article-meta { font-size: var(--font-label); }
body.public-site.bd-article-page .bda-prose { max-width: 820px; font-size: var(--font-body-lg); line-height: 1.82; }
body.public-site.bd-article-page .bda-prose :where(p, li, blockquote) { font-size: inherit; line-height: inherit; }
body.public-site.bd-article-page .bda-prose h2 { font-size: clamp(2rem,2.7vw,2.65rem); line-height: 1.1; }
body.public-site.bd-article-page .bda-prose h3 { font-size: clamp(1.5rem,2vw,2rem); line-height: 1.15; }
body.public-site.bd-article-page :where(.bda-toc a, .bda-article-nav a, .bda-share button, .bda-mobile-share button) { font-size: var(--font-label); }
body.public-site.bd-article-page .bda-related-card h3 { font-size: clamp(1.2rem,1.5vw,1.55rem); line-height: 1.28; }
body.public-site.bd-article-page .bda-related-card p { font-size: .95rem; line-height: 1.65; }
body.public-site.bd-article-page :where(.bda-prose pre, .bda-prose code, .bda-code-copy) { font-size: var(--font-caption); }
body.public-site.bd-article-page :where(.bda-prose figcaption, .bda-article-nav a span, .bda-related-card > div > span, .bda-article-newsletter form > p, .bda-share a > span, .bda-mobile-share a > span) { font-size: var(--font-caption); line-height: 1.5; }
body.public-site.bd-article-page :where(.bda-article-newsletter label, .bda-related-card__link, .bda-mobile-toc a) { font-size: var(--font-label); }

/* Legal and compliance */
body.public-site.bd-legal-page .bdl-breadcrumb { font-size: var(--font-caption); }
body.public-site.bd-legal-page .bdl-hero h1 { font-size: var(--font-display-md); line-height: 1; }
body.public-site.bd-legal-page .bdl-document__header > p { font-size: var(--font-body); line-height: 1.7; }
body.public-site.bd-legal-page .bdl-prose { max-width: 820px; font-size: var(--font-body); line-height: 1.82; }
body.public-site.bd-legal-page .bdl-prose :where(p, li, blockquote) { font-size: inherit !important; line-height: inherit !important; }
body.public-site.bd-legal-page .bdl-prose h2 { font-size: clamp(1.8rem,2.5vw,2.35rem) !important; line-height: 1.15 !important; }
body.public-site.bd-legal-page .bdl-prose h3 { font-size: clamp(1.35rem,1.8vw,1.7rem) !important; line-height: 1.2 !important; }
body.public-site.bd-legal-page :where(.bdl-sidebar a, .bdl-mobile-nav, .bdl-hero__actions button, .bdl-hero__actions a) { font-size: var(--font-label); }
body.public-site.bd-legal-page .bdl-table-wrap :where(th, td) { font-size: var(--font-label); line-height: 1.6; }
body.public-site.bd-legal-page :where(.bdl-prose figcaption, .bdl-document__header span, .bdl-related__grid > a > span) { font-size: var(--font-caption); line-height: 1.5; }
body.public-site.bd-legal-page :where(.bdl-related__grid > a em, .bdl-mobile-nav a) { font-size: var(--font-label); }

/* API documentation: technical density with readable minimums. */
body.public-site.bd-api-docs { font-size: var(--font-body); line-height: 1.7; }
body.public-site.bd-api-docs :where(.bdd-brand, .bdd-header__actions, .bdd-nav a) { font-size: var(--font-label); }
body.public-site.bd-api-docs :where(.bdd-button, .bdd-menu-button) { min-height: 46px; font-size: var(--font-label); }
body.public-site.bd-api-docs .bdd-search input { font-size: .9375rem; }
body.public-site.bd-api-docs .bdd-search-results strong { font-size: var(--font-label); }
body.public-site.bd-api-docs .bdd-search-results :where(span, small) { font-size: var(--font-caption); }
body.public-site.bd-api-docs .bdd-sidebar__section-label { font-size: var(--font-micro); }
body.public-site.bd-api-docs .bdd-sidebar__help strong { font-size: var(--font-label); }
body.public-site.bd-api-docs .bdd-sidebar__help a { font-size: var(--font-caption); }
body.public-site.bd-api-docs .bdd-section h1 { font-size: clamp(3rem,4vw,4.25rem); line-height: 1.02; }
body.public-site.bd-api-docs .bdd-section h2 { font-size: clamp(2rem,2.7vw,2.65rem); line-height: 1.1; }
body.public-site.bd-api-docs .bdd-section h3 { font-size: clamp(1.25rem,1.6vw,1.5rem); line-height: 1.2; }
body.public-site.bd-api-docs .bdd-section > p,
body.public-site.bd-api-docs .bdd-lead { font-size: var(--font-body); line-height: 1.75; }
body.public-site.bd-api-docs .bdd-eyebrow { font-size: var(--font-micro); }
body.public-site.bd-api-docs :where(.bdd-note p, .bdd-warning p, .bdd-steps p, .bdd-callout small, .bdd-environment__hint) { font-size: var(--font-caption); line-height: 1.6; }
body.public-site.bd-api-docs :where(.bdd-next a, .bdd-pager a, .bdd-inline-link, .bdd-copy) { font-size: var(--font-caption); }
body.public-site.bd-api-docs :where(.bdd-next span, .bdd-pager span, .bdd-section-heading p) { font-size: var(--font-micro); }
body.public-site.bd-api-docs .bdd-table-wrap :where(th, td) { font-size: var(--font-label); line-height: 1.55; }
body.public-site.bd-api-docs :where(.bdd-table-wrap code, .bdd-endpoint code, .bdd-inline-code code, .bdd-response-grid code, .bdd-code-panel code) { font-size: var(--font-caption); }
body.public-site.bd-api-docs :where(.bdd-method, .bdd-status, .bdd-code-tabs button, .bdd-segmented button) { font-size: var(--font-micro); }
body.public-site.bd-api-docs :where(.bdd-code-head, .bdd-rail-label, .bdd-code-panel__top) { font-size: var(--font-caption); }
body.public-site.bd-api-docs .bdd-footer a { font-size: var(--font-label); }
body.public-site.bd-api-docs .bdd-footer span { font-size: var(--font-caption); }
body.public-site.bd-api-docs :where(.bdd-search kbd, .bdd-flow strong, .bdd-flow small, .bdd-callout strong) { font-size: var(--font-caption); }

/* Gateway implementation samples retain technical density without becoming microcopy. */
body.public-site.bd-gateway :where(.bdg-code-panel pre, .bdg-code-panel code, .bdg-code-panel__response) { font-size: var(--font-caption); line-height: 1.7; }
body.public-site.bd-gateway :where(.bdg-code-panel__header, .bdg-code-panel__endpoint) { font-size: var(--font-micro); }

@media print {
    body.public-site.bd-legal-page { font-family: "Plus Jakarta Sans", sans-serif !important; }
}

/* Responsive minimums */
@media (max-width: 991px) {
    body.public-site .header .nav-link { font-size: 1rem !important; }
}

@media (max-width: 767px) {
    :root {
        --font-display-xl: clamp(2.625rem,12vw,3.125rem);
        --font-display-lg: clamp(2.625rem,11vw,3.125rem);
        --font-display-md: clamp(2.375rem,10vw,2.75rem);
        --font-h1: clamp(2.375rem,10vw,2.75rem);
        --font-h2: clamp(2rem,8.5vw,2.5rem);
        --font-h3: clamp(1.65rem,7vw,2rem);
    }

    body.public-site { font-size: 15.5px; }
    body.public-site :where(.form-control, .form--control, .form-select, select, textarea, input[type="text"], input[type="email"], input[type="password"], input[type="tel"], input[type="search"], input[type="url"], input[type="number"]) { font-size: 16px; }
    body.public-site :where(.btn:not(.policy), .bd-button, button[type="submit"]:not(.policy), input[type="submit"]:not(.policy)) { font-size: .9375rem; }
    body.public-site :where(.breadcrumb, [class$="-breadcrumb"], [class$="__breadcrumb"]) { font-size: .8rem; }
    body.public-site .bd-footer__column a,
    body.public-site .footer-menu__link { font-size: var(--font-label); }
    body.public-site.bd-api-docs .bdd-header__actions .bdd-button { min-height: 40px; font-size: var(--font-caption); }
    body.public-site.bd-api-docs .bdd-section h1 { font-size: var(--font-display-md); }
    body.public-site.bd-api-docs .bdd-section h2 { font-size: clamp(1.75rem,8vw,2.25rem); }
}
