/* ==========================================================================
   Switzer — self-hosted.
   Fontshare's CSS serves protocol-relative URLs (//cdn.fontshare.com/...),
   which never resolved: every face reported "unloaded" and the page silently
   fell back to Helvetica. Self-hosting removes the third party entirely, and
   the craft floor asks for it anyway.
   ========================================================================== */
@font-face {
  font-family: 'Switzer';
  src: url('../assets/fonts/switzer-300.woff2') format('woff2');
  font-weight: 300; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'Switzer';
  src: url('../assets/fonts/switzer-400.woff2') format('woff2');
  font-weight: 400; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'Switzer';
  src: url('../assets/fonts/switzer-500.woff2') format('woff2');
  font-weight: 500; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'Switzer';
  src: url('../assets/fonts/switzer-600.woff2') format('woff2');
  font-weight: 600; font-style: normal; font-display: swap;
}

/* ==========================================================================
   BON JEU — shared tokens and reset
   Loaded by every page before its own stylesheet. Holds only what is genuinely
   shared: the palette, the type stack and the reset. Page background and ink
   are deliberately NOT set here — the hero runs light-on-dark, the product
   pages run dark-on-cream.
   ========================================================================== */

:root {
  /* Brand board palette. These hex values are the source of truth — see
     BRAND-BRIEF.md §9. */
  --navy: #112e67;
  --cobalt: #1f5fe0;
  --sky: #b7ddf5;
  --cream: #f4f0e6;
  --white: #ffffff;
  --black: #111111;
  --kelly: #0a8a53;
  --coral: #f26c63;
  --lilac: #c5b3e6;
  --pink: #f05f93;
  --red-orange: #ff6b3d;

  /* Switzer. A neutral grotesque in the Suisse / Helvetica Now family — the
     register actual fashion houses set their interfaces in. It replaces
     Archivo squeezed to a 74 width axis, which was only ever chasing the
     comp's invented typeface and read compressed and cheap because of it. */
  --font-ui: 'Switzer', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  --font-display: var(--font-ui);
}

* { margin: 0; padding: 0; box-sizing: border-box; }

body {
  font-family: var(--font-ui);
  -webkit-font-smoothing: antialiased;
  text-rendering: geometricPrecision;
}

a { color: inherit; text-decoration: none; }

button {
  font: inherit; color: inherit;
  background: none; border: 0; cursor: pointer;
}

img { display: block; max-width: 100%; }

.u-visually-hidden {
  position: absolute; width: 1px; height: 1px;
  margin: -1px; padding: 0; overflow: hidden;
  clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

/* Chrome's UA stylesheet sets `text-transform: none` on form controls, so
   buttons never inherit an ancestor's uppercase. */
button, input, select { text-transform: inherit; }
