/* ============================================================================
   FrenchCruises.com — design tokens

   FC1W replaced the FC0A teal-and-chalk palette with the luxury destination
   system in `design.md`: navy as the dominant structural colour, warm ivory
   rather than cool grey as the ground, and gold used sparingly for rules and
   detail rather than as a call to action.

   THE VARIABLE NAMES ARE DELIBERATELY THE OLD ONES.

   Around seven hundred declarations across five stylesheets are written
   against `--ink`, `--chalk`, `--river` and the rest. Renaming them would have
   meant rewriting every one of those rules to change a colour, which is the
   kind of edit that quietly loses a state nobody was looking at. Instead the
   old names are re-pointed at the new palette and the design.md names are
   published alongside them, so new work can be written in the new vocabulary
   and old work keeps its meaning:

     --ink        the dominant navy. Headings, structure, primary buttons.
     --ink-deep   the deepest navy. Masthead, footer, dark bands.
     --river      was the teal accent; now the mid navy. Rules, fills, links.
     --chalk      was cool off-white; now warm ivory. The page ground.
     --parchment  was warm grey; now cream. Alternating bands and notes.
     --brass      gold. Hairlines and detail only, never body type on ivory.
     --bordeaux   was wine; now gold-dark. Eyebrows and micro-labels.

   Load order matters and is fixed in resources/views/layouts/site.php:
     tokens -> base -> layout -> components -> pages -> responsive -> production
   ========================================================================= */

/* ---------------------------------------------------------- 0. THE FACES */
/*
 * The two typefaces design.md names, served from this origin.
 *
 * FC1W shipped fallback stacks because no licensed font file was committed.
 * FC1X committed them. Both are SIL Open Font License 1.1, both were fetched
 * from the official distribution host, and both are recorded with the SHA-256
 * of the exact committed bytes in resources/fonts/sources.php. The licence
 * text for each sits beside the file it covers, in public/assets/fonts/.
 * There is still no request to any third-party origin: `tests/SmokeTest.php`
 * asserts that, and it passes.
 *
 * BOTH FILES ARE VARIABLE FONTS, AND THAT IS THE POINT.
 *
 * The site sets the body sans at 400, 550, 600, 650 and 700. Five static
 * weights would be five requests, and 550 and 650 would have to be
 * synthesised from a neighbour. One variable file renders all five as real
 * instances, in 37 KB.
 *
 * ONLY THE LATIN SUBSET IS SHIPPED.
 *
 * A scan of every rendered public route found 399,906 characters in `latin`,
 * none in `latin-ext`, and two outside both: the right arrow (U+2192) and the
 * north-east arrow (U+2197). Both are decorative and marked `aria-hidden`, and
 * the `unicode-range` below deliberately excludes them so they keep rendering
 * in the system fallback rather than dragging in a subset for two glyphs.
 *
 * NO `local()` SOURCE.
 *
 * A reader with their own copy of Cormorant Garamond installed gets this file
 * rather than theirs. An installed copy can be a different cut or an older
 * version, and the reason for self-hosting at all was that the site should
 * look the same on every machine.
 *
 * `font-display: swap`, not `block` or `optional`. The text is readable from
 * the first paint and swaps when the file lands; both files are preloaded from
 * this origin in resources/views/layouts/site.php, so that window is short.
 * `block` would hide the copy for up to three seconds and `optional` would
 * leave a first-time reader on the fallback for the whole visit.
 *
 * The paths are relative to this stylesheet and carry no cache-busting query,
 * so they match the preload hrefs exactly. The files are immutable and
 * public/.htaccess already serves .woff2 with a one-year immutable
 * Cache-Control and the correct MIME type.
 */
@font-face {
  font-family: "Cormorant Garamond";
  font-style: normal;
  font-weight: 400 500;
  font-display: swap;
  src: url("../fonts/cormorant-garamond-latin-variable.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: "Montserrat";
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("../fonts/montserrat-latin-variable.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;
}

/* ---------------------------------------------------------------- 1. TOKENS */
:root {
  /* --------------------------------------------------- design.md palette */
  --navy-950:  #0b1f33;
  --navy-900:  #102b46;
  --navy-800:  #183954;
  --gold:      #b79658;
  --gold-dark: #7d6335;   /* design.md gives #90733f; see the AA note below */
  --ivory:     #f7f4ee;
  --cream:     #efe9df;
  --stone-warm:#ddd8cf;

  /*
   * TWO DELIBERATE DEPARTURES FROM design.md SECTION 3, BOTH FOR CONTRAST.
   *
   * `--color-muted: #6f767d` measures 4.19:1 on ivory and `--color-gold-dark:
   * #90733f` measures 4.06:1. Both are under the 4.5:1 that AA asks of body
   * and label text, and both are used at label sizes. They are darkened to
   * #62696f (5.07:1) and #7d6335 (5.16:1), which is the smallest change that
   * clears the bar. The lighter originals are kept below for the two jobs
   * where contrast is not the constraint: large decorative type and rules.
   */
  --muted-light: #6f767d;
  --gold-light:  #90733f;

  /* ------------------------------------------------ structural (navy) */
  --ink:        #102b46;   /* navy 900 — headings, structure, primary action */
  --ink-deep:   #0b1f33;   /* navy 950 — masthead, footer, dark bands */
  --charcoal:   #363c42;   /* long-form body copy, softer than pure black */
  --river:      #183954;   /* navy 800 — fills and rules that are not navy 900 */
  --river-deep: #183954;   /* link text: 10.92:1 on ivory */
  --river-pale: #e3e8ee;
  --river-lift: #c3d0dd;   /* type and links on a navy ground: 10.64:1 */
  --stone:      #62696f;   /* secondary type: 5.07:1 on ivory */

  /* ------------------------------------------------------ grounds (warm) */
  --chalk:      #f7f4ee;   /* ivory — the page canvas */
  --parchment:  #efe9df;   /* cream — alternating bands, notes, the finder */
  --white:      #ffffff;   /* journey-card interiors and form controls */

  /* -------------------------------------------------------- gold accents */
  --brass:      #b79658;   /* hairlines and detail ONLY, never type on ivory */
  --brass-lift: #cbb07d;   /* gold on a navy ground — rules and larger type */
  --brass-type: #dcc79c;   /* gold small type on a navy ground (8.7:1) */
  --brass-ink:  #7d6335;   /* gold small type on ivory or cream (5.16:1) */
  --bordeaux:   #7d6335;   /* eyebrows and micro-labels, now gold rather than wine */

  /* ------------------------------------------------------------- states */
  --moss:       #4c6c57;
  --success:    #4c6c57;
  --warning:    #8a5a1c;
  --error:      #963f3f;

  /* Rules. The site is built from ruled lines, not from boxes. design.md
     section 3 gives one border token; three weights are kept because the
     compositions below distinguish a hairline inside a list from the rule
     that opens a section. */
  --rule-hair:  #e0dbd2;
  --rule-mid:   #cdc7bc;
  --rule-brass: rgba(183, 150, 88, .55);
  --border:     #d9d9d6;   /* design.md name, for anything written new */

  /*
   * TYPE. design.md asks for Cormorant Garamond over Montserrat, and FC1W
   * forbids an external CDN request for either. FC1X self-hosted both: the
   * `@font-face` rules at the top of this file serve them from this origin.
   *
   * The fallback stacks are kept exactly as FC1W wrote them, and they still
   * matter. They cover the moment before the file arrives, a reader who has
   * blocked web fonts, and the two arrow glyphs the subset deliberately
   * excludes. They are chosen to fail in the right direction rather than to
   * match metrics: a transitional Garamond or Georgia for the display face,
   * and a humanist grotesque for the body.
   */
  --font-display: "Cormorant Garamond", Cormorant, "EB Garamond", Garamond,
                  "Iowan Old Style", "Palatino Linotype", Georgia, "Times New Roman", serif;
  --font-body:    Montserrat, "Avenir Next", "Segoe UI Variable Text", "Segoe UI",
                  -apple-system, system-ui, Roboto, Helvetica, Arial, sans-serif;

  /*
   * FC1W pinned the wordmark to the FC0A serif because the logo of the day
   * was the meander mark set against a transitional serif, and that logo was
   * out of scope. FC1X replaced the logo, so the reason is gone: the name in
   * the masthead is now set in the display face, which is the same face
   * fc-horizontal-lockup.svg carries as outlines. The token stays as the one
   * place to change it if the name is ever given its own face again.
   */
  --font-wordmark: var(--font-display);

  /* The FC0A names, kept so the existing cascade keeps working. */
  --serif: var(--font-display);
  --sans:  var(--font-body);

  /* -------------------------------------------------- canvas and measure */
  --canvas:      1180px;   /* design.md --container-xl reading width */
  --canvas-wide: 1320px;   /* wide photographic sections */
  --canvas-read: 760px;    /* centred intro copy */
  --measure: 40rem;        /* about 68 characters at the body size */
  --gutter: 24px;

  /* Section rhythm. design.md asks for 80 to 120px of desktop breathing
     room; this is the whole of it in one token. */
  --section-space: clamp(64px, 7.2vw, 116px);
  --section-space-tight: clamp(44px, 4.6vw, 72px);

  /* Interaction. One duration, used everywhere. */
  --transition-fast: 180ms ease;
}
