/**
 * Arctic Wolves semantic typography foundation.
 *
 * Load after tokens/primitives.css and tokens/semantic.css on migrated surfaces.
 * The low-specificity mappings provide defaults without overriding component
 * roles. This file remains opt-in; Wave 5 does not load it globally.
 */

:where(body),
:where(.aw-type-body) {
    font-family: var(--aw-font-body);
    font-size: var(--aw-type-body-size);
    font-weight: var(--aw-type-body-weight);
    line-height: var(--aw-type-body-line);
}

:where(h1),
:where(.aw-type-page-title) {
    font-family: var(--aw-font-display);
    font-size: var(--aw-type-page-title-size);
    font-weight: var(--aw-type-page-title-weight);
    line-height: var(--aw-type-page-title-line);
}

:where(h2),
:where(.aw-type-section-title) {
    font-family: var(--aw-font-display);
    font-size: var(--aw-type-section-title-size);
    font-weight: var(--aw-type-section-title-weight);
    line-height: var(--aw-type-section-title-line);
}

:where(h3, h4, h5, h6),
:where(.aw-type-card-title) {
    font-family: var(--aw-font-display);
    font-size: var(--aw-type-card-title-size);
    font-weight: var(--aw-type-card-title-weight);
    line-height: var(--aw-type-card-title-line);
}

:where(label, legend),
:where(.aw-type-label),
:where(th) {
    font-family: var(--aw-font-body);
    font-size: var(--aw-type-label-size);
    font-weight: var(--aw-type-label-weight);
    line-height: var(--aw-type-label-line);
}

:where(button, input, select, textarea, [role="button"]),
:where(.aw-type-control) {
    font-family: var(--aw-font-body);
    font-size: var(--aw-type-control-size);
    font-weight: var(--aw-type-control-weight);
    line-height: var(--aw-type-control-line);
}

:where(table, td) {
    font-family: var(--aw-font-body);
    font-size: var(--aw-type-body-size);
    font-weight: var(--aw-type-body-weight);
    line-height: var(--aw-type-body-line);
}

:where(.aw-type-display) {
    font-family: var(--aw-font-display);
    font-size: var(--aw-type-display-size);
    font-weight: var(--aw-type-display-weight);
    line-height: var(--aw-type-display-line);
}

:where(.aw-type-lead) {
    font-family: var(--aw-font-body);
    font-size: var(--aw-type-lead-size);
    font-weight: var(--aw-type-lead-weight);
    line-height: var(--aw-type-lead-line);
}

:where(small, figcaption, caption, [role="status"], [role="alert"]),
:where(.aw-type-supporting, .aw-type-status) {
    font-family: var(--aw-font-body);
    font-size: var(--aw-type-supporting-size);
    font-weight: var(--aw-type-supporting-weight);
    line-height: var(--aw-type-supporting-line);
}

:where(.aw-type-data, [data-aw-type="data"]) {
    font-family: var(--aw-font-body);
    font-size: var(--aw-type-data-size);
    font-weight: var(--aw-type-data-weight);
    line-height: var(--aw-type-data-line);
}

:where(.aw-type-scoreboard-score, [data-aw-type="scoreboard-score"]) {
    font-family: var(--aw-font-display);
    font-size: var(--aw-type-scoreboard-score-size);
    font-weight: var(--aw-type-scoreboard-score-weight);
    line-height: var(--aw-type-scoreboard-score-line);
    letter-spacing: var(--aw-type-scoreboard-score-tracking);
}

:where(.aw-type-scoreboard-clock, [data-aw-type="scoreboard-clock"]) {
    font-family: var(--aw-font-display);
    font-size: var(--aw-type-scoreboard-clock-size);
    font-weight: var(--aw-type-scoreboard-clock-weight);
    line-height: var(--aw-type-scoreboard-clock-line);
    letter-spacing: var(--aw-type-scoreboard-clock-tracking);
}

:where(.aw-prose) {
    max-inline-size: var(--aw-content-measure);
}
