/* ============================================================
   Open-Hof — Design Tokens
   Frankenberger Viertel, Aachen · Sommer + Winter Editionen
   ============================================================ */

/* ---------- SELBSTGEHOSTETE SCHRIFTEN ----------
   Newsreader + Courier Prime liegen lokal (css/fonts/), NICHT bei Google.
   Grund: Beim Laden von fonts.gstatic.com geht die IP-Adresse jedes Besuchers
   an Google und potenziell in die USA. Lokal gehostet passiert das nicht.
   Nur latin + latin-ext (eine deutschsprachige Seite braucht kein Kyrillisch).
   Newsreader ist eine Variable Font: ein File deckt 200-700 stufenlos ab.
   Neu ziehen: scratchpad/fetch-fonts.mjs erneut laufen lassen. */

@font-face {
  font-family: 'Courier Prime';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('fonts/courier-prime-italic-400-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Courier Prime';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('fonts/courier-prime-italic-400-latin.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: 'Courier Prime';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('fonts/courier-prime-normal-400-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Courier Prime';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('fonts/courier-prime-normal-400-latin.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: 'Courier Prime';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('fonts/courier-prime-normal-700-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Courier Prime';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('fonts/courier-prime-normal-700-latin.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: 'Newsreader';
  font-style: italic;
  font-weight: 200 700;
  font-display: swap;
  src: url('fonts/newsreader-italic-200-700-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Newsreader';
  font-style: italic;
  font-weight: 200 700;
  font-display: swap;
  src: url('fonts/newsreader-italic-200-700-latin.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: 'Newsreader';
  font-style: normal;
  font-weight: 200 700;
  font-display: swap;
  src: url('fonts/newsreader-normal-200-700-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Newsreader';
  font-style: normal;
  font-weight: 200 700;
  font-display: swap;
  src: url('fonts/newsreader-normal-200-700-latin.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: 'Plastique';
  src: url('fonts/Plastique.ttf') format('truetype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

:root {
  /* ---------- BASIS-PALETTE (Edition-übergreifend) ---------- */
  --green-950: #0B1F14;
  --green-900: #102B1B;
  --green-800: #163B26;
  --green-700: #1E4A30;   /* banner deep */
  --green-600: #2A6E4D;   /* banner main  */
  --green-500: #3D8C66;
  --green-300: #8AB69A;
  --green-100: #C9DBC4;

  --cream-50:  #F6F0DE;   /* paper        */
  --cream-100: #EFE6CB;
  --cream-200: #E2D2A6;
  --cream-300: #CFB97F;

  --ink-900:   #1A130C;
  --ink-700:   #3A2C1F;
  --ink-500:   #6B5A48;
  --ink-300:   #A89A82;

  --sand:      #D7C492;

  /* ---------- WINTER-AKZENT ---------- */
  --winter-red:    #C0301B;
  --winter-red-2:  #B22D1D;
  --winter-gold:   #E8B341;
  --winter-frost:  #C2D8D2;
  --winter-night:  #112236;

  /* ---------- SOMMER-AKZENT ---------- */
  /* Vertieft (war #E2603D / #C24A2A): die Koralle steht als Text auf Papier
     (Eyebrows, Pflichtfeld-Sterne, Formular-Links, laufender Programmpunkt) und
     traegt cremefarbenen Text als Button-Fuellung. Mit #E2603D waren das nur
     3,1:1 — AA-Verstoss. Jetzt >=4,6:1 auf allen vier hellen Gruenden
     (cream-50, cream-100 und beiden Enden des Sommer-Kartenverlaufs), analog
     zum bereits vertieften winter-red. */
  --summer-coral:  #AB4614;   /* Hauptakzent (Geranie) */
  --summer-coral-2:#8F3810;   /* dunklere Geranie (Hover) */
  --summer-sun:    #F4BE3C;
  --summer-blossom:#E89DA9;
  --summer-leaf:   #6BA855;
  --summer-sky:    #BCD9DE;

  /* ---------- TYPOGRAFIE ---------- */
  --font-display:  'Plastique', 'Cooper Black', 'Recoleta', serif;
  --font-mono:     'Courier Prime', 'Courier New', ui-monospace, monospace;
  --font-serif:    'Newsreader', 'Source Serif 4', Georgia, serif;

  /* type scale (serif body context) */
  --t-display:  clamp(56px, 9vw, 132px);
  --t-h1:       clamp(40px, 5.5vw, 72px);
  --t-h2:       clamp(28px, 3.5vw, 44px);
  --t-h3:       22px;
  --t-h4:       18px;
  --t-body:     17px;
  --t-small:    14px;
  --t-tiny:     12px;

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

  /* ---------- RADIEN ---------- */
  --r-sm:   2px;
  --r-md:   4px;
  --r-lg:   8px;
  --r-xl:   14px;
  --r-pill: 999px;

  /* ---------- SCHATTEN ---------- */
  --shadow-card:    0 1px 0 rgba(26,19,12,0.06), 0 8px 24px rgba(26,19,12,0.08);
  --shadow-sticker: 0 4px 0 rgba(0,0,0,0.15), 0 14px 28px rgba(0,0,0,0.20);
  --shadow-press:   inset 0 2px 0 rgba(255,255,255,0.18);

  /* ---------- LINIEN ---------- */
  --rule:        1px solid rgba(26,19,12,0.18);
  --rule-strong: 1px solid var(--ink-900);
  --rule-cream:  1px solid rgba(246,240,222,0.25);

  /* ---------- TRANSITIONS ---------- */
  --ease: cubic-bezier(0.2, 0.7, 0.2, 1);
}

/* ---------- EDITION-THEMING (Akzent-Tokens) ---------- */
[data-edition="sommer"] {
  --accent:        var(--summer-coral);
  --accent-strong: var(--summer-coral-2);
  --accent-2:      var(--summer-sun);
  --accent-soft:   var(--summer-blossom);
  --accent-leaf:   var(--summer-leaf);
  --edition-name:  "Sommer–Edition";
}

[data-edition="winter"] {
  --accent:        var(--winter-red);
  --accent-strong: var(--winter-red-2);
  --accent-2:      var(--winter-gold);
  --accent-soft:   var(--winter-frost);
  --accent-leaf:   var(--green-500);
  --edition-name:  "Winter–Edition";
}
