/* ═══════════════════════════════════════════════
 * CK Bold — Root-Tokens
 *
 * Schriften: Gruene Type (Display, italic 700) + PT Sans (Body).
 * Farben: dunkelgrün-zentriertes System mit hellgrünem Akzent
 *         und gelber Sonnenblumen-Highlight (orientiert an Krause-Optik,
 *         aber mit Grüner-Markenpalette).
 * ═══════════════════════════════════════════════ */

@font-face {
    font-family: "Gruene Type";
    src: url("../fonts/gruene-type.woff2") format("woff2");
    font-weight: 700;
    font-style: italic;
    font-display: swap;
}

/* PT Sans — selbst gehostet (kein Google-Fonts-Request, DSGVO).
   latin + latin-ext je Schnitt; unicode-range lädt Ext nur bei Bedarf. */
@font-face {
    font-family: "PT Sans";
    src: url("../fonts/ptsans-regular.woff2") format("woff2");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
    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: "PT Sans";
    src: url("../fonts/ptsans-regular-ext.woff2") format("woff2");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
    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: "PT Sans";
    src: url("../fonts/ptsans-700.woff2") format("woff2");
    font-weight: 700;
    font-style: normal;
    font-display: swap;
    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: "PT Sans";
    src: url("../fonts/ptsans-700-ext.woff2") format("woff2");
    font-weight: 700;
    font-style: normal;
    font-display: swap;
    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: "PT Sans";
    src: url("../fonts/ptsans-italic.woff2") format("woff2");
    font-weight: 400;
    font-style: italic;
    font-display: swap;
    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: "PT Sans";
    src: url("../fonts/ptsans-italic-ext.woff2") format("woff2");
    font-weight: 400;
    font-style: italic;
    font-display: swap;
    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: "PT Sans";
    src: url("../fonts/ptsans-700italic.woff2") format("woff2");
    font-weight: 700;
    font-style: italic;
    font-display: swap;
    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: "PT Sans";
    src: url("../fonts/ptsans-700italic-ext.woff2") format("woff2");
    font-weight: 700;
    font-style: italic;
    font-display: swap;
    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;
}

:root {
    /* Farben — Bold-Palette */
    --bold-green-deep: #003d28;       /* Hero/Footer Hintergrund */
    --bold-green-dark: #005538;       /* Headlines, Buttons */
    --bold-green: #2e7d4f;            /* mittlere Grünfläche */
    --bold-green-bright: #8BC062;     /* Akzent (Plan-Icons, Skyline) */
    --bold-green-soft: #b9db93;       /* helleres Grün — Startseiten-Sektionen (--klee auf .home) */
    --bold-grashalm: #8ABD24;         /* Hauptmenü-Hintergrund */
    --bold-green-pale: #e8f0e2;       /* sehr helle Hintergrundfläche */
    --bold-yellow: #ffe100;           /* Sonnenblume / Pop-Akzent */
    --bold-pink: #EC008C;             /* Grünen-Magenta (Wahltermin-Störer) */

    --bold-cream: #faf8f3;            /* Off-White Hintergrund */
    --bold-sand: #F5F0E1;             /* Grünen-CVI Sand — Alt-Sektionen (Startseite) */
    --bold-white: #ffffff;
    --bold-ink: #003d28;              /* Body-Text-Dunkelgrün */
    --bold-ink-soft: #2e7d4f;
    --bold-muted: rgba(0, 61, 40, 0.6);

    /* Schrift-Stacks — Display ist Gruene Type (italic 700, Grüne-Marken-Schrift),
       Body/Nav/Buttons sind PT Sans. Gruene Type liegt nur als italic-Schnitt vor,
       darum müssen Display-Headlines explizit font-style: italic setzen. */
    --bold-font-display: "Gruene Type", "PT Sans", system-ui, sans-serif;
    --bold-font-body: "PT Sans", system-ui, sans-serif;

    /* Größen — Hero-Display sehr groß, body normal */
    --bold-size-display-xl: clamp(4rem, 12vw, 11rem);   /* Hero "Name" */
    --bold-size-display-lg: clamp(3rem, 8vw, 7rem);     /* H2-Bold "Danke!" */
    --bold-size-display-md: clamp(2.5rem, 5vw, 4.5rem); /* H2 Sektionen */
    --bold-size-h3: clamp(1.5rem, 2.2vw, 2.2rem);
    --bold-size-body-lg: 1.25rem;
    --bold-size-body: 1.0625rem;
    --bold-size-small: 0.9rem;

    /* Layout */
    --bold-container: 1280px;
    --bold-container-narrow: 1080px;
    --bold-radius-pill: 999px;
    --bold-radius-soft: 14px;

    /* Spacing-Skala */
    --bold-space-2xs: 8px;
    --bold-space-xs: 12px;
    --bold-space-sm: 20px;
    --bold-space-md: 32px;
    --bold-space-lg: 56px;
    --bold-space-xl: 96px;
    --bold-space-2xl: 140px;

    --bold-section-pad-y: clamp(64px, 8vw, 140px);
    --bold-section-pad-x: clamp(20px, 4vw, 60px);

    /* Effekte */
    --bold-shadow-card: 0 24px 60px rgba(0, 61, 40, 0.18);
    --bold-shadow-sticker: 0 12px 32px rgba(0, 61, 40, 0.25);

    --bold-transition: 200ms cubic-bezier(0.4, 0, 0.2, 1);
}

/* Basis-Reset & Body */
*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    font-family: var(--bold-font-body);
    font-size: var(--bold-size-body);
    line-height: 1.55;
    color: var(--bold-ink);
    background: var(--bold-cream);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

img,
svg,
video {
    max-width: 100%;
    height: auto;
    display: block;
}

a {
    color: var(--bold-green-dark);
    text-decoration: none;
    transition: color var(--bold-transition);
}

a:hover {
    color: var(--bold-green-bright);
}

h1, h2, h3, h4 {
    font-family: var(--bold-font-display);
    font-weight: 700;
    font-style: italic;
    line-height: 0.95;
    margin: 0 0 0.5em;
    color: var(--bold-green-dark);
    letter-spacing: -0.01em;
}

p {
    margin: 0 0 1em;
}

p:last-child {
    margin-bottom: 0;
}

/* Selection */
::selection {
    background: var(--bold-yellow);
    color: var(--bold-green-deep);
}
