/* ═══════════════════════════════════════════════════════════════════════════
   BOOKING PAGE TYPOGRAPHY — self-hosted families + the two tokens
   ═══════════════════════════════════════════════════════════════════════════

   WHY SELF-HOSTED. config/security.php pins `font-src 'self' data:`, so a
   Google Fonts <link> is blocked by CSP no matter how it is written. Every
   family a booking page can use has to ship from public/assets/fonts/.

   WHAT THIS FIXES. booking.css has asked for 'Poppins' and 'Manrope' since the
   Laravel port and neither family was ever loaded — the CI3 original linked
   them in its own <head>, and that pair of tags did not survive the port. Live
   booking pages have been rendering the sans-serif fallback the whole time.

   THE TWO TOKENS. --heading-font and --body-font are the only things booking.css
   names. They default to the pair the design was drawn against (Poppins /
   Manrope); a theme or a photographer's own choice overrides them purely by
   load order, so this file must be linked BEFORE the theme <link> and before
   <style id="theme-custom-vars"> in layouts/app.blade.php.

   COST. Declaring a family costs nothing until a rule references it — a page
   downloads only the one or two files its tokens resolve to. font-display:swap
   keeps first paint unblocked.

   NO unicode-range, deliberately. Every file here is the latin subset, and the
   existing self-hosted family on these pages (microsite/theme-tradition.css's
   Playfair) omits it too. A per-glyph fallback down the stack is the browser's
   job; a hand-copied range that disagrees with the actual subset is a silent
   tofu bug.

   ⚠ POPPINS IS THE ONE NON-VARIABLE FAMILY — every weight is a separate file,
   so a weight that is not declared here does not degrade gracefully: the browser
   picks the nearest one it has and fakes the difference. booking.css asks for all
   nine (700×115, 600×71, 800×19, 300×7, 500×5, 100×5, 400×3, 200×2, 900×1 — the
   `.fw-100`…`.fw-900` utilities alone span the range), so all nine ship. This
   costs nothing on the wire: a page downloads only the weights it renders.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Poppins — static, all 9 weights ────────────────────────────────────── */
@font-face {
    font-family: 'Poppins';
    font-style: normal;
    font-weight: 100;
    font-display: swap;
    src: url('../fonts/poppins/poppins-latin-100.woff2') format('woff2');
}
@font-face {
    font-family: 'Poppins';
    font-style: normal;
    font-weight: 200;
    font-display: swap;
    src: url('../fonts/poppins/poppins-latin-200.woff2') format('woff2');
}
@font-face {
    font-family: 'Poppins';
    font-style: normal;
    font-weight: 300;
    font-display: swap;
    src: url('../fonts/poppins/poppins-latin-300.woff2') format('woff2');
}
@font-face {
    font-family: 'Poppins';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('../fonts/poppins/poppins-latin-400.woff2') format('woff2');
}
@font-face {
    font-family: 'Poppins';
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url('../fonts/poppins/poppins-latin-500.woff2') format('woff2');
}
@font-face {
    font-family: 'Poppins';
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url('../fonts/poppins/poppins-latin-600.woff2') format('woff2');
}
@font-face {
    font-family: 'Poppins';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url('../fonts/poppins/poppins-latin-700.woff2') format('woff2');
}
@font-face {
    font-family: 'Poppins';
    font-style: normal;
    font-weight: 800;
    font-display: swap;
    src: url('../fonts/poppins/poppins-latin-800.woff2') format('woff2');
}
@font-face {
    font-family: 'Poppins';
    font-style: normal;
    font-weight: 900;
    font-display: swap;
    src: url('../fonts/poppins/poppins-latin-900.woff2') format('woff2');
}

/* ── Manrope — variable 400–800 ─────────────────────────────────────────── */
@font-face {
    font-family: 'Manrope';
    font-style: normal;
    font-weight: 400 800;
    font-display: swap;
    src: url('../fonts/manrope/manrope-latin.woff2') format('woff2');
}

/* ── Playfair Display — variable 400–900 ────────────────────────────────────
   Also declared by microsite/theme-tradition.css, which loads only when that
   theme is active. Declaring it twice is harmless (same family, same file);
   it is declared here so Playfair is selectable on every theme, not just one. */
@font-face {
    font-family: 'Playfair Display';
    font-style: normal;
    font-weight: 400 900;
    font-display: swap;
    src: url('../fonts/playfair/playfair-display-latin.woff2') format('woff2');
}

/* ── Inter — variable 100–900 ───────────────────────────────────────────── */
@font-face {
    font-family: 'Inter';
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url('../fonts/inter/inter-latin.woff2') format('woff2');
}

/* ── Lora — variable 400–700 ────────────────────────────────────────────── */
@font-face {
    font-family: 'Lora';
    font-style: normal;
    font-weight: 400 700;
    font-display: swap;
    src: url('../fonts/lora/lora-latin.woff2') format('woff2');
}

/* ── Montserrat — variable 100–900 ──────────────────────────────────────── */
@font-face {
    font-family: 'Montserrat';
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url('../fonts/montserrat/montserrat-latin.woff2') format('woff2');
}

/* ── Nunito — variable 200–1000 ─────────────────────────────────────────── */
@font-face {
    font-family: 'Nunito';
    font-style: normal;
    font-weight: 200 1000;
    font-display: swap;
    src: url('../fonts/nunito/nunito-latin.woff2') format('woff2');
}

/* ── The tokens ─────────────────────────────────────────────────────────────
   Platform defaults. Anything later in the cascade with equal specificity wins,
   which is the whole override mechanism:
     1. this file          — platform default (Poppins / Manrope)
     2. microsite theme    — a theme with an opinion (Holiday Tradition)
     3. theme-custom-vars  — the photographer's own choice
   Keep the fallback stacks inside the token value; the call sites are bare
   var() references and carry no fallback of their own. */
:root {
    --heading-font: 'Poppins', system-ui, -apple-system, 'Segoe UI', sans-serif;
    --body-font: 'Manrope', system-ui, -apple-system, 'Segoe UI', sans-serif;
}
