/* =========================================================
   Cookaholics @ FC Den Bosch — Colors & Type
   Colors lifted from brand huisstijl (Kleuren Cookaholics.png) + website CSS.
   ========================================================= */

@font-face {
  font-family: 'Campton';
  src: url('fonts/CamptonLight.otf') format('opentype');
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Campton';
  src: url('fonts/CamptonBook.otf') format('opentype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Playfair Display';
  src: url('fonts/PlayfairDisplay-Regular.ttf') format('truetype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Playfair Display';
  src: url('fonts/PlayfairDisplay-Medium.ttf') format('truetype');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Playfair Display';
  src: url('fonts/PlayfairDisplay-Italic.ttf') format('truetype');
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: 'Playfair Display';
  src: url('fonts/PlayfairDisplay-MediumItalic.ttf') format('truetype');
  font-weight: 500;
  font-style: italic;
  font-display: swap;
}

:root {
  /* ---------- BRAND COLORS (from Brand Book + palet 2026) ---------- */
  /* The 6 sanctioned brand colors */
  --ckh-grijs:     #232323;  /* "Grijs" — primary text, dark surfaces */
  --ckh-creme:     #F7DEBF;  /* "Creme" — warm page backgrounds */
  --ckh-wit:       #FFFFFF;  /* "Wit" — surfaces */
  --ckh-rood:      #EE6350;  /* "Rood" — primary accent (avoid op FC Den Bosch) */
  --ckh-rood-lt:   #FF5757;  /* lichter rood — highlights (avoid op FC Den Bosch) */
  --ckh-creme-lt:  #F9ECDE;  /* lichte crème — alt backgrounds, subtiele vlakken */

  /* Alias kept for backwards compat */
  --ckh-donker: var(--ckh-grijs);

  /* Derived hover state */
  --ckh-rood-hover:  #D94A38;

  /* ---------- NEUTRALS ---------- */
  --n-0:    #FFFFFF;
  --n-50:   #FAF7F0;
  --n-100:  #F7DEBF;
  --n-200:  #EACDA8;
  --n-300:  #CEC4AE;
  --n-400:  #9E9684;
  --n-500:  #6E6A5E;
  --n-600:  #4A4740;
  --n-700:  #2F2E2A;
  --n-800:  #232323;
  --n-900:  #121212;

  /* ---------- SEMANTIC ---------- */
  --fg-1:        var(--ckh-donker);    /* primary text */
  --fg-2:        var(--n-600);         /* secondary text */
  --fg-3:        var(--n-500);         /* muted / meta */
  --fg-inverse:  var(--n-0);
  --fg-accent:   var(--ckh-rood);

  --bg-page:     var(--ckh-creme);
  --bg-surface:  var(--ckh-wit);
  --bg-alt:      var(--ckh-creme-lt);
  --bg-dark:     var(--ckh-grijs);
  --bg-accent:   var(--ckh-rood);

  --border-subtle: rgba(35, 35, 35, 0.12);
  --border-strong: rgba(35, 35, 35, 0.32);

  /* Semantic states — no brand-sanctioned colors for these, so use rood for danger
     and neutral shades for success/warning. Swap if brand issues guidance later. */
  --danger:  var(--ckh-rood);
  --success: var(--n-600);
  --warning: var(--ckh-grijs);

  /* ---------- TYPE FAMILIES ---------- */
  --font-display: 'Playfair Display', 'Cormorant Garamond', Georgia, serif;
  --font-body:    'Campton', 'Montserrat', system-ui, -apple-system, sans-serif;
  --font-mono:    'SFMono-Regular', Consolas, 'Liberation Mono', monospace;

  /* ---------- TYPE SCALE ---------- */
  --fs-xs:   12px;
  --fs-sm:   14px;
  --fs-base: 16px;
  --fs-md:   18px;
  --fs-lg:   22px;
  --fs-xl:   28px;
  --fs-2xl:  36px;
  --fs-3xl:  48px;
  --fs-4xl:  64px;
  --fs-5xl:  84px;

  --lh-tight:  1.08;
  --lh-snug:   1.25;
  --lh-normal: 1.5;
  --lh-loose:  1.7;

  --tracking-display: -0.01em;
  --tracking-body:    0;
  --tracking-eyebrow: 0.18em;  /* UPPERCASE eyebrows */

  /* ---------- SPACING ---------- */
  --sp-1: 4px;
  --sp-2: 8px;
  --sp-3: 12px;
  --sp-4: 16px;
  --sp-5: 24px;
  --sp-6: 32px;
  --sp-7: 48px;
  --sp-8: 64px;
  --sp-9: 96px;
  --sp-10: 128px;

  /* ---------- RADII ---------- */
  --radius-xs:   2px;
  --radius-sm:   4px;
  --radius-md:   8px;
  --radius-lg:   14px;
  --radius-xl:   24px;
  --radius-pill: 999px;

  /* ---------- SHADOWS ---------- */
  --shadow-sm: 0 1px 2px rgba(35, 35, 35, 0.06), 0 1px 1px rgba(35, 35, 35, 0.04);
  --shadow-md: 0 6px 18px rgba(35, 35, 35, 0.08), 0 2px 4px rgba(35, 35, 35, 0.04);
  --shadow-lg: 0 18px 42px rgba(35, 35, 35, 0.14), 0 4px 8px rgba(35, 35, 35, 0.06);
  --shadow-sticker: 2px 3px 0 rgba(35, 35, 35, 0.18);  /* die-cut sticker feel */

  /* ---------- TRANSITIONS ---------- */
  --ease-out: cubic-bezier(0.2, 0.7, 0.2, 1);
  --ease-in:  cubic-bezier(0.4, 0, 1, 1);
  --dur-fast:   140ms;
  --dur-normal: 240ms;
  --dur-slow:   420ms;
}

/* =========================================================
   SEMANTIC TYPE ELEMENTS
   ========================================================= */

html { color: var(--fg-1); background: var(--bg-page); }

body {
  font-family: var(--font-body);
  font-size: var(--fs-base);
  line-height: var(--lh-normal);
  color: var(--fg-1);
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4 {
  font-family: var(--font-display);
  font-weight: 500;
  line-height: var(--lh-tight);
  letter-spacing: var(--tracking-display);
  color: var(--fg-1);
  text-wrap: balance;
  margin: 0 0 var(--sp-4);
}

h1 { font-size: var(--fs-4xl); font-weight: 500; }
h2 { font-size: var(--fs-3xl); }
h3 { font-size: var(--fs-2xl); }
h4 { font-size: var(--fs-xl);  font-family: var(--font-body); font-weight: 500; letter-spacing: 0; }

p {
  margin: 0 0 var(--sp-4);
  text-wrap: pretty;
  max-width: 64ch;
}

.eyebrow {
  font-family: var(--font-body);
  font-size: var(--fs-xs);
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: var(--tracking-eyebrow);
  color: var(--fg-accent);
}

.display {
  font-family: var(--font-display);
  font-size: var(--fs-5xl);
  font-weight: 500;
  line-height: 0.98;
  letter-spacing: -0.015em;
}

.italic-accent { font-style: italic; font-family: var(--font-display); }

small, .meta {
  font-size: var(--fs-sm);
  color: var(--fg-2);
}

code, pre { font-family: var(--font-mono); font-size: 0.92em; }

a {
  color: var(--fg-1);
  text-decoration: underline;
  text-decoration-color: var(--ckh-rood);
  text-decoration-thickness: 1.5px;
  text-underline-offset: 3px;
  transition: color var(--dur-fast) var(--ease-out);
}
a:hover { color: var(--ckh-rood); }

/* =========================================================
   LOCATION THEME — FC DEN BOSCH
   Apply via <html data-location="fc-den-bosch"> or class .theme-fcdb.
   Vermijdt rode accenten (concurreert met tegenstanders van FC Den Bosch).
   Rood/#ff5757 blijven bestaan maar worden niet ingezet als accent;
   accent-rol gaat naar grijs, crème-licht doet het alt-werk.
   ========================================================= */
[data-location="fc-den-bosch"],
.theme-fcdb {
  --fg-accent:   var(--ckh-grijs) !important;
  --bg-accent:   var(--ckh-grijs) !important;
  --bg-alt:      var(--ckh-creme-lt);
  --danger:      var(--ckh-grijs);   /* errors krijgen donkere behandeling i.p.v. rood */
}
[data-location="fc-den-bosch"] .eyebrow,
.theme-fcdb .eyebrow { color: var(--ckh-grijs); }

[data-location="fc-den-bosch"] a,
.theme-fcdb a {
  text-decoration-color: var(--ckh-grijs);
}
[data-location="fc-den-bosch"] a:hover,
.theme-fcdb a:hover { color: var(--ckh-grijs); opacity: 0.72; }
