@font-face {
    font-family: "Josefin Sans";
    src: url("../fonts/josefin-sans-400.woff2") format("woff2"),
         url("../fonts/josefin-sans-400.ttf")   format("truetype");
    font-weight: 400; font-style: normal; font-display: swap;
}
@font-face {
    font-family: "Josefin Sans";
    src: url("../fonts/josefin-sans-600.woff2") format("woff2"),
         url("../fonts/josefin-sans-600.ttf")   format("truetype");
    font-weight: 600; font-style: normal; font-display: swap;
}
@font-face {
    font-family: "Josefin Sans";
    src: url("../fonts/josefin-sans-700.woff2") format("woff2"),
         url("../fonts/josefin-sans-700.ttf")   format("truetype");
    font-weight: 700; font-style: normal; font-display: swap;
}
@font-face {
    font-family: "PT Serif";
    src: url("../fonts/pt-serif-400.woff2") format("woff2"),
         url("../fonts/pt-serif-400.ttf")   format("truetype");
    font-weight: 400; font-style: normal; font-display: swap;
}
@font-face {
    font-family: "PT Serif";
    src: url("../fonts/pt-serif-400i.woff2") format("woff2"),
         url("../fonts/pt-serif-400i.ttf")   format("truetype");
    font-weight: 700; font-style: normal; font-display: swap;
}
@font-face {
    font-family: "PT Serif";
    src: url("../fonts/pt-serif-700.woff2") format("woff2"),
         url("../fonts/pt-serif-700.ttf")   format("truetype");
    font-weight: 400; font-style: italic; font-display: swap;
}

@font-face {
    font-family: "Poppins";
    src: url("../fonts/poppins-500-latin-ext.woff2") format("woff2");
    font-weight: 500; 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: "Poppins";
    src: url("../fonts/poppins-500.woff2") format("woff2");
    font-weight: 500; 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;
}

:root {
    --kw-bordeaux:        #97233F;
    --kw-bordeaux-dark:   #7A1C33;
    --kw-bordeaux-light:  #B02A4A;
    --kw-bordeaux-footer: #64172A;

    --kw-sand:            #C2A684;
    --kw-sand-light:      #E2D2BB;

    --kw-cream:           #F5F0EB;
    --kw-cream-dark:      #EDE5DC;
    --kw-bg-alt:          #FDFBF9;
    --kw-white:           #FFFFFF;

    --kw-body-text:       #1A1A1A;
    --kw-text-muted:      #3D3D3D;
    --kw-text-light:      #585858;
    --kw-border:          #E0D2BC;

    --kw-success:         #2D6A4F;
    --kw-warning:         #B8860B;
    --kw-error:           #C4243B;

    --kw-overlay-hero:
        linear-gradient(to top, rgba(0,0,0,0.7) 0%, rgba(0,0,0,0.35) 50%, rgba(0,0,0,0.15) 100%);
    --kw-gradient-cta:    linear-gradient(135deg, #97233F, #7A1C33);
    --kw-gradient-dark:   linear-gradient(135deg, #7A1C33, #5A1426);

    --kw-shadow-sm:       0 2px 8px  rgba(0,0,0,0.08);
    --kw-shadow-md:       0 8px 24px rgba(0,0,0,0.12);
    --kw-shadow-lg:       0 16px 48px rgba(0,0,0,0.18);
    --kw-shadow-hover:    0 22px 60px rgba(0,0,0,0.22);

    --kw-z-sticky:        60;
    --kw-z-drawer:        65;
    --kw-z-modal:         70;
    --kw-z-toast:         80;

    --kw-radius-sm:       8px;
    --kw-radius:          12px;
    --kw-radius-lg:       20px;

    --kw-transition:      0.35s cubic-bezier(0.4, 0, 0.2, 1);

    --kw-space-xs:        8px;
    --kw-space-sm:        16px;
    --kw-space-md:        32px;
    --kw-space-lg:        48px;
    --kw-space-xl:        64px;
    --kw-space-2xl:       96px;
    --kw-tap-min:         48px;

    --kw-text-xs:         12px;
    --kw-text-sm:         14px;
    --kw-text-base:       17px;
    --kw-text-lg:         20px;
    --kw-text-xl:         28px;
    --kw-text-2xl:        36px;
    --kw-text-3xl:        48px;
    --kw-text-hero:       56px;

    --kw-font-display:    "Josefin Sans", -apple-system, BlinkMacSystemFont, sans-serif;
    --kw-font-body:       "PT Serif", Georgia, serif;
}

html { scroll-behavior: smooth; }

body,
.kw-body {
    font-family: var(--kw-font-body);
    font-size: var(--kw-text-base);
    line-height: 1.7;
    color: var(--kw-body-text);
    background: var(--kw-bg-alt);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, h6,
.kw-display {
    font-family: var(--kw-font-display);
    color: var(--kw-body-text);
    line-height: 1.15;
    font-weight: 700;
    margin: 0 0 0.4em;
    letter-spacing: 0;
}

h1, .kw-h1 {
    font-size: var(--kw-text-hero);
    text-transform: uppercase;
    letter-spacing: 1px;
}
.kw-h1--mixed { text-transform: none; letter-spacing: 0; }

h2, .kw-h2 { font-size: var(--kw-text-3xl); }
h3, .kw-h3 { font-size: var(--kw-text-2xl); font-weight: 600; }
h4, .kw-h4 { font-size: var(--kw-text-xl);  font-weight: 600; }
h5, .kw-h5 { font-size: var(--kw-text-lg);  font-weight: 600; letter-spacing: 0.5px; }
h6, .kw-h6 { font-size: var(--kw-text-base); font-weight: 600; letter-spacing: 1px; text-transform: uppercase; }

@media (max-width: 600px) {
    h1, .kw-h1 { font-size: clamp(36px, 9vw, 40px); letter-spacing: 0.5px; }
    h2, .kw-h2 { font-size: clamp(28px, 7vw, 32px); }
    h3, .kw-h3 { font-size: clamp(22px, 5.5vw, 24px); }
    h4, .kw-h4 { font-size: clamp(18px, 4.5vw, 20px); }
}

p, .kw-p {
    font-family: var(--kw-font-body);
    font-size: var(--kw-text-base);
    line-height: 1.7;
    color: var(--kw-body-text);
    margin: 0 0 1em;
    text-wrap: pretty;
}

.kw-lead {
    font-family: var(--kw-font-body);
    font-size: var(--kw-text-lg);
    line-height: 1.6;
    color: var(--kw-body-text);
}

.kw-small {
    font-family: var(--kw-font-body);
    font-size: var(--kw-text-sm);
    color: var(--kw-text-muted);
}

.kw-overline {
    font-family: var(--kw-font-display);
    font-size: var(--kw-text-xs);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 2px;
    color: var(--kw-bordeaux);
    margin: 0;
}

blockquote, .kw-quote {
    font-family: var(--kw-font-body);
    font-style: italic;
    font-size: var(--kw-text-lg);
    line-height: 1.7;
    color: var(--kw-body-text);
    margin: 0;
    padding: 0;
    border: none;
}

cite, .kw-cite {
    font-family: var(--kw-font-body);
    font-size: 15px;
    font-weight: 400;
    font-style: italic;
    letter-spacing: 0;
    text-transform: none;
    color: var(--kw-text-muted);
}

a {
    color: var(--kw-bordeaux);
    transition: color var(--kw-transition);
}
a:hover:where(:not(.wp-element-button):not(.kw-btn):not(.kw-btn-primary):not(.kw-btn-outline):not(.kw-btn-outline-light):not(.kw-btn-outline-dark):not(.kw-btn-white):not(.kw-btn-quiz):not(.kw-btn-ghost):not(.kw-sticky-cta__btn):not(.kw-sticky-cta__vorbestellen-btn):not(.kw-cta-pair__btn)) { color: var(--kw-bordeaux-dark); }

::selection {
    background: var(--kw-bordeaux);
    color: var(--kw-white);
}
