/* RND Lab canonical typography.
 *
 * Loaded after route-specific styles so every public page uses one type system.
 * Component layout, decorative numbers and intentionally compact metadata remain
 * route-owned; semantic reading text and controls are normalized here.
 */

@import url("https://fonts.googleapis.com/css2?family=Montserrat:wght@700;800;900&display=swap");

:root {
    --rnd-type-body-font: "Segoe UI", Arial, sans-serif;
    --rnd-type-display-font: "Montserrat", "Segoe UI", Arial, sans-serif;
    --rnd-type-brand-font: "Times New Roman", Times, serif;
    --rnd-type-technical-font: ui-monospace, "SFMono-Regular", Consolas, "Liberation Mono", monospace;

    --rnd-type-body-size: 1rem;
    --rnd-type-body-leading: 1.55;
    --rnd-type-list-size: 0.94rem;
    --rnd-type-list-leading: 1.5;
    --rnd-type-lead-size: clamp(1.05rem, 1.2vw, 1.16rem);
    --rnd-type-lead-leading: 1.5;
    --rnd-type-h1-size: clamp(2.35rem, 4vw, 4.6rem);
    --rnd-type-h2-size: clamp(2.15rem, 3.25vw, 3.4rem);
    --rnd-type-h3-size: clamp(1.25rem, 1.7vw, 1.6rem);
    --rnd-type-heading-leading: 1.02;
    --rnd-type-eyebrow-size: 0.78rem;
    --rnd-type-control-size: 0.9rem;
    --rnd-type-small-size: 0.82rem;
}

html {
    font-size: 16px;
    text-size-adjust: 100%;
}

body {
    font-family: var(--rnd-type-body-font) !important;
    font-size: var(--rnd-type-body-size);
    line-height: var(--rnd-type-body-leading);
}

button,
input,
select,
textarea {
    font-family: var(--rnd-type-body-font);
}

button,
input[type="button"],
input[type="reset"],
input[type="submit"],
[class*="button"],
[class*="btn"] {
    font-size: var(--rnd-type-control-size) !important;
    line-height: 1.2;
}

input:not([type="button"]):not([type="reset"]):not([type="submit"]),
select,
textarea {
    font-size: var(--rnd-type-body-size);
    line-height: 1.4;
}

main h1,
main h2,
main h3 {
    font-family: var(--rnd-type-display-font) !important;
    font-weight: 800;
    letter-spacing: 0;
}

main h1 {
    font-size: var(--rnd-type-h1-size) !important;
    line-height: var(--rnd-type-heading-leading) !important;
}

main h2 {
    font-size: var(--rnd-type-h2-size) !important;
    line-height: var(--rnd-type-heading-leading) !important;
}

main h3 {
    font-size: var(--rnd-type-h3-size) !important;
    line-height: 1.15 !important;
}

main p,
main li,
main dd,
main dt,
main td,
main th {
    font-family: var(--rnd-type-body-font);
}

main li {
    line-height: var(--rnd-type-list-leading);
}

[class*="__lead"],
[class$="-lead"],
[class*="-lead "] {
    font-family: var(--rnd-type-body-font) !important;
    font-size: var(--rnd-type-lead-size) !important;
    line-height: var(--rnd-type-lead-leading) !important;
}

[class*="eyebrow"] {
    font-family: var(--rnd-type-display-font) !important;
    font-size: var(--rnd-type-eyebrow-size) !important;
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: 0.14em;
}

.rnd-brand__text {
    font-family: var(--rnd-type-brand-font) !important;
}

[class*="__number"],
[class*="-number"],
[class*="part-number"],
code,
kbd,
samp,
pre {
    font-family: var(--rnd-type-technical-font);
}

small,
[class*="__meta"],
[class*="-meta"] {
    font-size: var(--rnd-type-small-size);
}

/* Approved compact-editorial exception: Downloads unified Resource Centre stop.
 * The 30/70 composition cannot inherit the full-height Service display scale.
 * Scope excludes the independent dark final panel by design.
 */
.rndlab-page-downloads .rnd-downloads__combined {
    --rnd-downloads-type-hero-title: clamp(2.45rem, 3.05vw, 3.55rem);
    --rnd-downloads-type-library-title: clamp(1.9rem, 2.35vw, 2.75rem);
    --rnd-downloads-type-lead: clamp(0.92rem, 1vw, 1.04rem);
    --rnd-downloads-type-card-title: clamp(0.98rem, 1.08vw, 1.12rem);
    --rnd-downloads-type-card-copy: 0.78rem;
    --rnd-downloads-type-meta: 0.68rem;
}

.rndlab-page-downloads .rnd-downloads__combined h1 {
    font-family: var(--rnd-type-display-font) !important;
    font-size: var(--rnd-downloads-type-hero-title) !important;
    font-weight: 700;
    line-height: 0.98 !important;
    letter-spacing: -0.025em;
}

.rndlab-page-downloads .rnd-downloads__combined h2 {
    font-family: var(--rnd-type-display-font) !important;
    font-size: var(--rnd-downloads-type-library-title) !important;
    font-weight: 700;
    line-height: 1 !important;
    letter-spacing: -0.025em;
}

.rndlab-page-downloads .rnd-downloads__combined h3 {
    font-family: var(--rnd-type-display-font) !important;
    font-size: var(--rnd-downloads-type-card-title) !important;
    font-weight: 700;
    line-height: 1.08 !important;
    letter-spacing: -0.01em;
}

.rndlab-page-downloads .rnd-downloads__combined .rnd-downloads__lead {
    font-family: var(--rnd-type-body-font) !important;
    font-size: var(--rnd-downloads-type-lead) !important;
    line-height: 1.42 !important;
}

.rndlab-page-downloads .rnd-downloads__combined .rnd-downloads__eyebrow {
    font-size: 0.7rem !important;
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: 0.16em;
}

.rndlab-page-downloads .rnd-downloads__combined .rnd-resource p,
.rndlab-page-downloads .rnd-downloads__combined .rnd-downloads__section-head > p {
    font-family: var(--rnd-type-body-font);
    font-size: var(--rnd-downloads-type-card-copy);
    line-height: 1.42;
}

.rndlab-page-downloads .rnd-downloads__combined .rnd-resource small,
.rndlab-page-downloads .rnd-downloads__combined .rnd-resource a,
.rndlab-page-downloads .rnd-downloads__combined .rnd-resource__index,
.rndlab-page-downloads .rnd-downloads__combined .rnd-downloads__status {
    font-size: var(--rnd-downloads-type-meta);
}

.rndlab-page-downloads .rnd-downloads__combined .rnd-downloads__button,
.rndlab-page-downloads .rnd-downloads__combined .rnd-downloads__text-link,
.rndlab-page-downloads .rnd-downloads__combined .rnd-downloads__filters button {
    font-family: var(--rnd-type-body-font);
    font-size: 0.82rem !important;
    font-weight: 700;
}

@media (max-width: 760px) {
    :root {
        --rnd-type-h1-size: 2.35rem;
        --rnd-type-h2-size: 2.35rem;
        --rnd-type-h3-size: 1.25rem;
        --rnd-type-lead-size: 1.05rem;
    }

    .rndlab-page-downloads .rnd-downloads__combined {
        --rnd-downloads-type-hero-title: clamp(2.35rem, 11vw, 3.25rem);
        --rnd-downloads-type-library-title: clamp(2rem, 9vw, 2.65rem);
        --rnd-downloads-type-lead: 1rem;
        --rnd-downloads-type-card-title: 1.12rem;
        --rnd-downloads-type-card-copy: 0.9rem;
        --rnd-downloads-type-meta: 0.74rem;
    }
}

@media (max-width: 380px) {
    :root {
        --rnd-type-h1-size: 2.1rem;
        --rnd-type-h2-size: 2.1rem;
    }
}
