/*
 * fonts.css
 *
 * Local @font-face declarations for US Fleet Tracking.
 * Replaces external Google Fonts CSS (which was being served from
 * fonts.googleapis.com and flagged as a broken external link in the
 * 2026-07-01g audit because the CDN endpoints returned 404 / timed out).
 *
 * Source files in /fonts/woff2/:
 *   - Noto Sans family: 9 widths (Thin / ExtraLight / Light / Regular /
 *     Medium / SemiBold / Bold / ExtraBold / Black) plus Italic for each,
 *     plus 3 condensed variants (Condensed / ExtraCondensed / SemiCondensed)
 *     with their own italic pairs. 60 files total covering weight range
 *     100-900 plus 62.5-100 width axis.
 *   - Roboto family: 5 weights (Thin / Light / Regular / Medium / Black)
 *     plus Italic for each, plus 2 condensed variants (Regular + Bold,
 *     Roman + Italic). 14 files total.
 *
 * Mapping from Google Fonts CSS2 axis queries to local files:
 *   - Noto Sans ital,wdth,wght@0,62.5..100,100..900 -> all 9 widths x 9 weights
 *   - Roboto Condensed ital,wght@0,100..900       -> 2 weights (regular + bold)
 *   - Roboto wght@100,200,400,600,800              -> 5 weights (closest available)
 *   - Roboto wght@100,400                            -> 2 weights (subset of above)
 *
 * The site uses 9 distinct weights (100, 200, 300, 400, 500, 600, 700,
 * 800, 900). 100/200/300/500/600/700/800/900 from Noto Sans; 100/400/700
 * covered by Roboto as a closer stylistic match for the few headings that
 * declare 'Roboto' explicitly.
 *
 * Variable-font axes are not used; each weight is a static .woff2 file.
 * The width axis (62.5..100) is approximated by 3 condensed variants
 * (Condensed / ExtraCondensed / SemiCondensed) plus the standard width.
 *
 * font-display: swap on every rule: text renders immediately with a
 * fallback font, then swaps to the local webfont when it loads. This
 * matches the previous Google Fonts behavior.
 */

/* ============================================================
 * Noto Sans - 9 standard widths (Thin..Black), each + italic
 * ============================================================ */

@font-face {
  font-family: 'Noto Sans';
  font-style: normal;
  font-weight: 100;
  font-display: swap;
  src: url('/fonts/woff2/NotoSans-Thin.woff2') format('woff2');
}
@font-face {
  font-family: 'Noto Sans';
  font-style: italic;
  font-weight: 100;
  font-display: swap;
  src: url('/fonts/woff2/NotoSans-ThinItalic.woff2') format('woff2');
}

@font-face {
  font-family: 'Noto Sans';
  font-style: normal;
  font-weight: 200;
  font-display: swap;
  src: url('/fonts/woff2/NotoSans-ExtraLight.woff2') format('woff2');
}
@font-face {
  font-family: 'Noto Sans';
  font-style: italic;
  font-weight: 200;
  font-display: swap;
  src: url('/fonts/woff2/NotoSans-ExtraLightItalic.woff2') format('woff2');
}

@font-face {
  font-family: 'Noto Sans';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url('/fonts/woff2/NotoSans-Light.woff2') format('woff2');
}
@font-face {
  font-family: 'Noto Sans';
  font-style: italic;
  font-weight: 300;
  font-display: swap;
  src: url('/fonts/woff2/NotoSans-LightItalic.woff2') format('woff2');
}

@font-face {
  font-family: 'Noto Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/woff2/NotoSans-Regular.woff2') format('woff2');
}
@font-face {
  font-family: 'Noto Sans';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/woff2/NotoSans-Italic.woff2') format('woff2');
}

@font-face {
  font-family: 'Noto Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/fonts/woff2/NotoSans-Medium.woff2') format('woff2');
}
@font-face {
  font-family: 'Noto Sans';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url('/fonts/woff2/NotoSans-MediumItalic.woff2') format('woff2');
}

@font-face {
  font-family: 'Noto Sans';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/fonts/woff2/NotoSans-SemiBold.woff2') format('woff2');
}
@font-face {
  font-family: 'Noto Sans';
  font-style: italic;
  font-weight: 600;
  font-display: swap;
  src: url('/fonts/woff2/NotoSans-SemiBoldItalic.woff2') format('woff2');
}

@font-face {
  font-family: 'Noto Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/fonts/woff2/NotoSans-Bold.woff2') format('woff2');
}
@font-face {
  font-family: 'Noto Sans';
  font-style: italic;
  font-weight: 700;
  font-display: swap;
  src: url('/fonts/woff2/NotoSans-BoldItalic.woff2') format('woff2');
}

@font-face {
  font-family: 'Noto Sans';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url('/fonts/woff2/NotoSans-ExtraBold.woff2') format('woff2');
}
@font-face {
  font-family: 'Noto Sans';
  font-style: italic;
  font-weight: 800;
  font-display: swap;
  src: url('/fonts/woff2/NotoSans-ExtraBoldItalic.woff2') format('woff2');
}

@font-face {
  font-family: 'Noto Sans';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url('/fonts/woff2/NotoSans-Black.woff2') format('woff2');
}
@font-face {
  font-family: 'Noto Sans';
  font-style: italic;
  font-weight: 900;
  font-display: swap;
  src: url('/fonts/woff2/NotoSans-BlackItalic.woff2') format('woff2');
}

/* ============================================================
 * Roboto - 5 weights, each + italic
 * ============================================================ */

@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 100;
  font-display: swap;
  src: url('/fonts/woff2/roboto-thin-webfont.woff2') format('woff2');
}
@font-face {
  font-family: 'Roboto';
  font-style: italic;
  font-weight: 100;
  font-display: swap;
  src: url('/fonts/woff2/roboto-thin-Italic-webfont.woff2') format('woff2');
}

@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url('/fonts/woff2/roboto-light-webfont.woff2') format('woff2');
}
@font-face {
  font-family: 'Roboto';
  font-style: italic;
  font-weight: 300;
  font-display: swap;
  src: url('/fonts/woff2/roboto-light-Italic-webfont.woff2') format('woff2');
}

@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/woff2/roboto-regular-webfont.woff2') format('woff2');
}
@font-face {
  font-family: 'Roboto';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/woff2/roboto-italic-webfont.woff2') format('woff2');
}

@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/fonts/woff2/roboto-medium-webfont.woff2') format('woff2');
}
@font-face {
  font-family: 'Roboto';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url('/fonts/woff2/roboto-medium-Italic-webfont.woff2') format('woff2');
}

@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/fonts/woff2/roboto-bold-webfont.woff2') format('woff2');
}
@font-face {
  font-family: 'Roboto';
  font-style: italic;
  font-weight: 700;
  font-display: swap;
  src: url('/fonts/woff2/roboto-bold-Italic-webfont.woff2') format('woff2');
}

@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url('/fonts/woff2/roboto-black-webfont.woff2') format('woff2');
}
@font-face {
  font-family: 'Roboto';
  font-style: italic;
  font-weight: 900;
  font-display: swap;
  src: url('/fonts/woff2/roboto-blackitalic-webfont.woff2') format('woff2');
}

/* ============================================================
 * Roboto Condensed - 2 weights, each + italic
 * (Used by site selectors that explicitly request condensed Roboto)
 * ============================================================ */

@font-face {
  font-family: 'Roboto Condensed';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/woff2/roboto-condensed-webfont.woff2') format('woff2');
}
@font-face {
  font-family: 'Roboto Condensed';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/woff2/roboto-condensed-Italic-webfont.woff2') format('woff2');
}

@font-face {
  font-family: 'Roboto Condensed';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/fonts/woff2/roboto-bold-condensed-webfont.woff2') format('woff2');
}
@font-face {
  font-family: 'Roboto Condensed';
  font-style: italic;
  font-weight: 700;
  font-display: swap;
  src: url('/fonts/woff2/roboto-bold-condensed-italic-webfont.woff2') format('woff2');
}
