@font-face {
    font-family: 'Jost';
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url(/static/fonts/jost/jost-latin.7726a5cd6f3c0e87.woff2) format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: 'Jost';
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url(/static/fonts/jost/jost-latin-ext.312ef2b80cefd8d6.woff2) format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
    font-family: 'Jost';
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url(/static/fonts/jost/jost-cyrillic.732ac61fdb7b964d.woff2) format('woff2');
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* WHY: a metric-matched local fallback keeps line lengths and heights close to
   Jost (avg width .428em, ascent 1.07, descent .375) so a slow font swap cannot
   add layout shift to the CLS-0 baseline. */
@font-face {
    font-family: 'Jost Fallback';
    src: local('Arial'), local('ArialMT'), local('Helvetica'), local('Roboto');
    size-adjust: 97%;
    ascent-override: 110%;
    descent-override: 38.6%;
    line-gap-override: 0%;
}

/* ------------------------------------------------------------------ */

/* Standalone bike detail pages share the accepted homepage type and contrast.
   Keep original gallery, rates, links, focus and media transforms untouched. */
body.bike-detail-page {
    --font-heading: 'Jost', 'Jost Fallback', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', 'Noto Sans', Arial, sans-serif;
    --font-body: 'Jost', 'Jost Fallback', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', 'Noto Sans', Arial, sans-serif;
    --ink: #171816;
    --ink-dim: #3d3f38;
    --cta1: #6b4d00;
    --ring: #bcb6a9;
    font-family: var(--font-body);
    font-weight: 450;
}
/* Jost lacks full Greek and Vietnamese; use one complete family per word. */
html:is([lang=el], [lang=vi]) body.bike-detail-page {
    --font-heading: ui-sans-serif, system-ui, -apple-system, 'Segoe UI', 'Noto Sans', Roboto, Arial, sans-serif;
    --font-body: ui-sans-serif, system-ui, -apple-system, 'Segoe UI', 'Noto Sans', Roboto, Arial, sans-serif;
}
html:is([lang=ar], [lang=he], [lang=ja], [lang=ko], [lang=zh], [lang=th], [lang=hi]) body.bike-detail-page {
    --font-heading: 'Noto Sans', ui-sans-serif, system-ui, sans-serif;
}
html:is([lang=ar], [lang=he], [lang=ja], [lang=ko], [lang=zh], [lang=th], [lang=hi]) body.bike-detail-page :is(h1, h2, h3, .bike-page-brand, .btn, .bike-decision-tier) {
    letter-spacing: 0;
}
body.bike-detail-page :is(h1, h2, h3, .bike-page-brand, .btn) {
    font-family: var(--font-heading);
    font-weight: 700;
}
body.bike-detail-page .bike-page-brand,
body.bike-detail-page .bike-detail-title {
    font-weight: 800;
    letter-spacing: -.012em;
}
body.bike-detail-page .bike-detail-title {
    color: #171816;
    line-height: 1.08;
}
/* Jost has no italic face in the accepted set; keep the intro upright. */
body.bike-detail-page .bike-detail-tagline {
    font-style: normal;
    font-size: clamp(17px, 2.1vw, 20px);
    font-weight: 500;
    line-height: 1.45;
}
/* Canonical copy may contain paragraph breaks. Preserve them in SSR and
   post-locale hydration without parsing copy as HTML or changing SEO text. */
body.bike-detail-page .bike-detail-description {
    max-width: 70ch;
    font-size: 17px;
    font-weight: 450;
    line-height: 1.65;
    text-align: start;
    white-space: pre-line;
    overflow-wrap: break-word;
}
body.bike-detail-page .bike-detail-description strong {
    color: #171816;
    font-weight: 750;
}
body.bike-detail-page :is(.specs-title, .pricing-title, .bike-decision-block h2, .catalog-related-toolbar h2) {
    font-weight: 700;
    letter-spacing: .01em;
}
body.bike-detail-page :is(.bike-detail-actions .btn, .pricing-amount) {
    font-weight: 700;
}
@media (max-width: 640px) {
    body.bike-detail-page .bike-detail-description { font-size: 16.5px; }
}
