/*
 * VIS-01: Barbaro B-Lora production typography system.
 *
 * Source specification: candidate-base.css + candidate-b-lora.css at
 * finalist evidence commit 39125711b3d7fce20a0d5f55fb982ccc2ea0d4c9.
 * This stylesheet loads after page and component styles so its type-only
 * declarations preserve the reviewed finalist cascade without changing
 * geometry, content, palette, interaction, or the wordmark.
 */

@font-face {
    font-family: "Bitter";
    src: url("fonts/bitter/Bitter-Variable.ttf") format("truetype");
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
}

@font-face {
    font-family: "Bitter";
    src: url("fonts/bitter/Bitter-Italic-Variable.ttf") format("truetype");
    font-style: italic;
    font-weight: 100 900;
    font-display: swap;
}

@font-face {
    font-family: "Manrope";
    src: url("fonts/manrope/Manrope-Variable.ttf") format("truetype");
    font-style: normal;
    font-weight: 200 800;
    font-display: swap;
}

@font-face {
    font-family: "Lora";
    src: url("fonts/lora/Lora-Italic-Variable.ttf") format("truetype");
    font-style: italic;
    font-weight: 400 700;
    font-display: swap;
}

:root {
    --lab-display-family: "Bitter", Georgia, serif;
    --lab-heading-family: "Manrope", Arial, sans-serif;
    --lab-body-family: "Manrope", Arial, sans-serif;
    --lab-interface-family: "Manrope", Arial, sans-serif;
    --lab-compact-family: "Manrope", Arial, sans-serif;
    --lab-accent-family: "Lora", Georgia, serif;
    --lab-display-weight: 500;
    --lab-heading-weight: 500;
    --lab-body-weight: 400;
    --lab-compact-weight: 700;
    --lab-accent-weight: 500;
    --lab-data-strong-weight: 800;
    --lab-display-tracking: -0.022em;
    --lab-heading-tracking: -0.008em;
    --lab-body-tracking: 0;
    --lab-compact-tracking: 0.105em;
    --lab-accent-tracking: -0.012em;
    --lab-build-title-tracking: -0.018em;
    --lab-display-leading: 1.07;
    --lab-display-leading-mobile: 1.1;
    --lab-body-leading: 1.68;
    --lab-body-leading-mobile: 1.68;
    --lab-build-title-leading: 1.12;
    --lab-ticket-title-leading: 1.04;
    --lab-home-title-size: clamp(35px, 3.95vw, 49px);
    --lab-home-title-size-mobile: 35px;
    --lab-body-size: 16px;
    --lab-body-size-mobile: 16px;
    --lab-build-title-size: clamp(22px, 2.25vw, 23px);
    --lab-build-title-weight: 500;
    --lab-ticket-title-size: 25px;

    --font-brand: var(--lab-display-family);
    --font-display: var(--lab-display-family);
    --font-display-weight: var(--lab-display-weight);
    --font-app: var(--lab-interface-family);
    --font-prose: var(--lab-body-family);
    --font-accent: var(--lab-accent-family);
    --lab-data-family: var(--lab-interface-family);
}

.doc-editor--build {
    --doc-title-size: var(--lab-build-title-size);
}

body,
button,
input,
select,
textarea {
    font-family: var(--lab-interface-family);
}

.hero-split .hero-title {
    font-family: var(--lab-display-family);
    font-size: var(--lab-home-title-size);
    font-weight: var(--lab-display-weight);
    letter-spacing: var(--lab-display-tracking);
    line-height: var(--lab-display-leading);
}

.hero-split .hero-title em,
:is(.hero-title, .doc-editor-craft-strip, .page-hero-title, .exp-shelf-title) em {
    font-family: var(--lab-accent-family);
    font-style: italic;
    font-weight: var(--lab-accent-weight);
    letter-spacing: var(--lab-accent-tracking);
}

.hero-split .hero-body,
.hero-split .hero-subtitle {
    font-family: var(--lab-body-family);
    font-size: var(--lab-body-size);
    font-weight: var(--lab-body-weight);
    letter-spacing: var(--lab-body-tracking);
    line-height: var(--lab-body-leading);
}

.hero-tagline,
.section-eyebrow,
.card-label,
.chip-group-label,
.ticket-section-label,
.balance-meter-title,
.doc-editor-meta,
.doc-editor-title-label {
    font-family: var(--lab-compact-family);
    font-weight: var(--lab-compact-weight);
    letter-spacing: var(--lab-compact-tracking);
}

.nav-links,
.nav-tools,
.cta-link,
.hero-cta-link,
.chip,
.ticket-chip,
.station-summary {
    font-family: var(--lab-interface-family);
}

.oven-name,
.spotlight-name,
.wr-title,
.ticket-source-name,
.ticket-empty-title:not(.is-default-title) {
    font-family: var(--lab-display-family);
    font-weight: var(--lab-display-weight);
    letter-spacing: var(--lab-display-tracking);
}

.doc-editor--build .doc-editor-title,
.doc-editor--build h1.doc-editor-title {
    font-family: var(--lab-display-family);
    font-weight: var(--lab-build-title-weight);
    letter-spacing: var(--lab-build-title-tracking);
    line-height: var(--lab-build-title-leading);
}

.ticket-source-name,
.ticket-empty-title:not(.is-default-title) {
    font-size: var(--lab-ticket-title-size);
    line-height: var(--lab-ticket-title-leading);
}

.station-title {
    font-family: var(--lab-heading-family);
    font-weight: var(--lab-heading-weight);
    letter-spacing: var(--lab-heading-tracking);
}

.canonical-data-name,
.station-title.canonical-data-name,
.meter-label,
.meter-value {
    font-family: var(--lab-data-family);
    font-variant-numeric: tabular-nums;
}

.meter-value {
    font-weight: var(--lab-data-strong-weight);
}

/* Main owns the complete ticket order-line monospace stack. */

@media (max-width: 600px) {
    .hero-split .hero-title {
        font-size: var(--lab-home-title-size-mobile);
        line-height: var(--lab-display-leading-mobile);
    }

    .hero-split .hero-body {
        font-size: var(--lab-body-size-mobile);
        line-height: var(--lab-body-leading-mobile);
    }

}
