/* =====================================================================
   Die.Eisdielerei – Responsive Stylesheet
   Pink + Schwarz Comic-Style mit handgezeichneten Brush-Headlines
   ===================================================================== */

/* ---------- PERF: content-visibility ---------------------------
   Browsers, die content-visibility unterstützen (Chrome/Edge ≥ 85,
   Safari ≥ 17), überspringen das Rendering off-screen Sektionen
   bis sie in den Viewport scrollen. Spart Layout-/Paint-Kosten und
   beschleunigt First Contentful Paint deutlich, vor allem bei der
   Eis.Diels-Seite mit ~50 Karten. */
.partners,
.locations,
.diels-section,
.team-section,
.story-section,
.galerie-section,
.blog-instagram,
.legal-section {
    content-visibility: auto;
    /* contain-intrinsic-size verhindert Scroll-Sprünge, weil der Browser
       die Höhe schätzen kann, bevor er den Inhalt rendert. */
    contain-intrinsic-size: auto 800px;
}

/* ---------- LOKALE FONTS --------------------------------------- */
/* Naughty Monster (Ardyanatypes) – Original-Schrift aus dem XD */
@font-face {
    font-family: "Naughty Monster";
    src: url("assets/fonts/NaughtyMonster-Rounded.ttf") format("truetype");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Naughty Monster";
    src: url("assets/fonts/NaughtyMonster.ttf") format("truetype");
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

/* ---------- DESIGN TOKENS --------------------------------------- */
:root {
    --c-pink: #e40071;
    --c-pink-dark: #b8005a;
    --c-pink-light: #ff5fa3;
    --c-bg: #ffffff;
    --c-bg-soft: #f7f7f7;
    --c-bg-dark: #1a1a1a;
    --c-text: #1a1a1a;
    --c-text-soft: #5a5a5a;
    --c-text-dim: #8a8a8a;
    --c-border: #ececec;
    --c-on-dark: #f5f5f5;

    /* Display: Naughty Monster (XD-Original) mit Bagel Fat One als Fallback */
    --font-display: "Naughty Monster", "Bagel Fat One", "Lilita One", system-ui, sans-serif;
    /* Body / Nav: Roboto Condensed (XD-Original) */
    --font-body: "Roboto Condensed", "Roboto", system-ui, -apple-system, sans-serif;
    /* Big page headlines (Die.Eisdielerei usw.): Roboto Condensed Bold */
    --font-page-display: "Roboto Condensed", system-ui, sans-serif;

    --radius-sm: 6px;
    --radius-md: 12px;
    --radius-lg: 20px;
    --radius-pill: 999px;

    --shadow-sm: 0 2px 6px rgba(0, 0, 0, 0.08);
    --shadow-md: 0 8px 24px rgba(0, 0, 0, 0.12);
    --shadow-lg: 0 16px 48px rgba(0, 0, 0, 0.18);

    --container: 1280px;
    --gutter: clamp(1rem, 4vw, 2rem);
}

/* ---------- RESET ----------------------------------------------- */
*,
*::before,
*::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html {
    scroll-behavior: smooth;
    overflow-x: hidden;
}

body {
    font-family: var(--font-body);
    font-size: clamp(15px, 1.05vw, 17px);
    line-height: 1.6;
    color: var(--c-text);
    background: var(--c-bg);
    -webkit-font-smoothing: antialiased;
    overflow-x: hidden;
}

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

a {
    color: inherit;
    text-decoration: none;
    transition: color 0.2s ease;
}

a:hover {
    color: var(--c-pink);
}

ul {
    list-style: none;
}

button {
    font-family: inherit;
    cursor: pointer;
    border: none;
    background: none;
}

.container {
    width: 100%;
    max-width: var(--container);
    margin: 0 auto;
    padding: 0 var(--gutter);
    position: relative;
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    border: 0;
}

/* ---------- HEADLINES ----------------------------------------- */
/* Page headlines: Naughty Monster (Display-Font) — einheitlich auf allen Seiten */
.h-page {
    font-family: var(--font-display);
    font-weight: 400;
    color: var(--c-pink);
    text-transform: lowercase;
    line-height: 0.95;
    letter-spacing: 0.005em;
    text-align: center;
    margin-bottom: 1rem;
    font-size: clamp(3rem, 8vw, 8rem);
    font-style: normal;
}

.h-page.left {
    text-align: left;
}

/* Ausnahme: das Wort "Die.Eisdielerei" nutzt die normale Schrift (Roboto Condensed Bold) */
.h-page.brand {
    font-family: var(--font-page-display);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: -0.01em;
    font-size: clamp(3.5rem, 9vw, 10.25rem);
}

/* Sub-headlines / Section labels: Bagel Fat One @ 44-80pt */
.h-display {
    font-family: var(--font-display);
    font-weight: 400;
    color: var(--c-pink);
    line-height: 1.1;
    letter-spacing: 0.005em;
    text-align: center;
    margin-bottom: 1.25rem;
    text-transform: lowercase;
}

.h-display.lg {
    font-size: clamp(2.5rem, 7vw, 5rem);
}

.h-display.md {
    font-size: clamp(1.8rem, 4vw, 3rem);
}

.h-display.sm {
    font-size: clamp(1.4rem, 3vw, 2.2rem);
}

.h-display.left {
    text-align: left;
}

.h-display.white {
    color: #fff;
}

.h-display.italic {
    font-style: italic;
}

/* Big watermark (Bagel Fat One @ 304pt) */
.watermark {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: none;
    user-select: none;
    z-index: 0;
    overflow: hidden;
}

.watermark span {
    font-family: var(--font-display);
    font-size: clamp(5rem, 14vw, 14rem);
    color: rgba(0, 0, 0, 0.06);
    line-height: 1;
    white-space: nowrap;
    text-transform: lowercase;
}

.watermark.dark span {
    color: rgba(255, 255, 255, 0.05);
}

.watermark.top span {
    align-self: flex-start;
    margin-top: 1rem;
}

/* ---------- BUTTONS -------------------------------------------- */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.85rem 1.75rem;
    border-radius: var(--radius-pill);
    font-weight: 700;
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    transition: all 0.2s ease;
    cursor: pointer;
    border: 2px solid transparent;
    position: relative;
    overflow: hidden;
}

.btn-primary {
    background: var(--c-pink);
    color: #fff;
    position: relative;
    isolation: isolate;
}

.btn-primary::before {
    content: "";
    position: absolute;
    inset: 0;
    background: var(--c-pink-dark);
    transform: translateY(100%);
    transition: transform 0.25s ease;
    z-index: -1;
    border-radius: inherit;
}

.btn-primary:hover::before {
    transform: translateY(0);
}

.btn-primary:hover {
    color: #fff;
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
}

.btn-pill {
    padding: 0.55rem 1.4rem;
    font-size: 0.7rem;
}

/* ---------- TOP NAV (XD-getreu) -------------------------------- */
.site-nav {
    background: var(--c-bg-dark);
    background-image: url("assets/die-eisdielerei-eismanufaktur-header-hintergrund.webp");
    background-size: cover;
    background-position: center;
    padding: 2rem 0 0;
    position: relative;
    z-index: 220;
    margin-bottom: 0;
}

/* Trennlinie unter den Nav-Items */
.site-nav::after {
    content: "";
    position: absolute;
    left: 5%;
    right: 5%;
    bottom: 0;
    height: 1px;
    background: rgba(255, 255, 255, 0.3);
    pointer-events: none;
}

/* Tablet/iPad (901-1300px): Nav verwendet die gleiche Chalkboard-Textur
   wie der Hero, damit beide optisch nahtlos ineinander übergehen.
   Trennlinie wird ausgeblendet. Logo bekommt etwas mehr Atemraum nach
   oben, weil die Nahlosigkeit zur Nav den Top-Bereich enger wirken lässt. */
@media (min-width: 901px) and (max-width: 1300px) {
    .site-nav {
        background-image: url("assets/chalkboard_clean.png");
    }
    .site-nav::after {
        display: none;
    }
    .hero-logo {
        top: 3rem;
    }
}

.site-nav .container {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    gap: clamp(1rem, 2.5vw, 2.5rem);
}

.site-nav > .container > ul {
    display: flex;
    gap: clamp(1.25rem, 2.5vw, 3rem);
    align-items: center;
    justify-content: center;
    list-style: none;
    margin: 0;
    padding: 0 0 1.75rem;
    width: 100%;
}

/* Mobile-Only Items im Drawer (Logo oben, Social unten) */
.nav-logo,
.nav-social {
    display: none;
}

.site-nav > .container > ul > li {
    position: relative;
    text-align: center;
}

.site-nav a {
    color: #fff;
    text-transform: uppercase;
    font-weight: 700;
    font-size: clamp(1.4rem, 1.7vw, 1.95rem);
    letter-spacing: 0.02em;
    padding: 0.5rem 0.75rem;
    position: relative;
    white-space: nowrap;
    transition: color 0.2s ease;
    display: inline-block;
}

.site-nav a:hover {
    color: var(--c-pink);
}

.site-nav a.active {
    color: var(--c-pink);
}

/* Sub-Menu als ABSOLUTES Overlay, überlagert den Hero */
.site-nav .has-sub > .submenu {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
    align-items: flex-start;
    position: absolute;
    top: calc(100% + 0.75rem);
    left: 50%;
    transform: translateX(-50%);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.2s, visibility 0.2s;
    z-index: 200;
}

/* Unsichtbare Hover-Bridge zwischen Parent-Link und Submenü, damit der Cursor
   den Spalt überqueren kann ohne dass das Menü zugeht */
.site-nav .has-sub > .submenu::before {
    content: "";
    position: absolute;
    top: -1.25rem;
    left: 0;
    right: 0;
    height: 1.25rem;
    background: transparent;
}

/* Parent-Link bekommt einen unsichtbaren Hover-Erweiterer nach unten,
   sodass der Cursor von Link → Gap → Submenü durchgängig hovert */
.site-nav .has-sub > a::after {
    content: "";
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    height: 1.5rem;
    background: transparent;
}

.site-nav .has-sub:hover > .submenu,
.site-nav .has-sub:focus-within > .submenu,
.site-nav .has-sub.open > .submenu,
.site-nav .has-sub > a.active ~ .submenu,
.site-nav .has-sub.show > .submenu {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.site-nav .submenu a {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.85rem 1.6rem 0.85rem 1.2rem;
    border: 2px solid var(--c-pink);
    border-radius: 6px;
    background: #fff;
    color: var(--c-pink);
    font-size: clamp(0.95rem, 1.1vw, 1.15rem);
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    transition: all 0.18s ease;
    min-width: 200px;
    box-shadow: 0 6px 14px rgba(0, 0, 0, 0.15);
}

.site-nav .submenu a::before {
    content: "▸";
    font-size: 1em;
    line-height: 1;
}

.site-nav .submenu li:first-child a,
.site-nav .submenu a.current,
.site-nav .submenu a:hover {
    background: var(--c-pink);
    color: #fff;
    border-color: var(--c-pink);
}

/* B2B-Schoki: ganz normaler weißer Nav-Link, kein Border */
.b2b-link {
    color: #fff !important;
}

.b2b-link:hover {
    color: var(--c-pink) !important;
}

/* ---------- HAMBURGER + OFF-CANVAS DRAWER (Mobil, CSS-only) ---- */
/* Checkbox steuert das Menü ohne JS */
.nav-check {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.nav-toggle {
    display: none;
    background: var(--c-pink);
    background-image: url("assets/eisdielerei_eis.png");
    background-size: 62% auto;
    background-position: center 52%;
    background-repeat: no-repeat;
    border: 2px solid #fff;
    width: 54px;
    height: 54px;
    padding: 0;
    cursor: pointer;
    position: relative;
    z-index: 220;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    border-radius: 50%;
    box-shadow: 0 4px 14px rgba(228, 0, 113, 0.35),
        0 0 0 4px rgba(255, 255, 255, 0.15);
    transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1),
        box-shadow 0.2s ease, background-color 0.2s ease;
    -webkit-tap-highlight-color: transparent;
}

.nav-toggle:hover {
    box-shadow: 0 6px 18px rgba(228, 0, 113, 0.45),
        0 0 0 5px rgba(255, 255, 255, 0.18);
}

.nav-toggle:active {
    transform: scale(0.94);
}

/* Die drei Striche werden durch das Cone-Icon ersetzt — bleiben aber im DOM,
   damit existierende Markup-Strukturen auf allen Seiten nicht angefasst
   werden müssen. */
.nav-toggle .bar {
    display: none;
}

/* Drawer offen: Icon-Button rotiert um 135° als klares "Schließen"-Feedback */
.nav-check:checked ~ .site-nav .nav-toggle {
    transform: rotate(135deg);
    background-color: #c8006d;
}

/* Backdrop hinter dem Drawer (nur Mobil) */
.nav-backdrop {
    position: fixed;
    inset: 0;
    background: transparent;
    z-index: 100;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.3s ease, visibility 0.3s ease;
    display: block;
}

@media (max-width: 900px) {
    .nav-check:checked ~ .nav-backdrop {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
    }
}

/* Body-Scroll sperren wenn Drawer offen ist (modern: :has) */
body:has(.nav-check:checked) {
    overflow: hidden;
}

@media (max-width: 900px) {
    .nav-toggle {
        display: flex;
        position: fixed;
        right: 1rem;
        top: 1rem;
        z-index: 230;
    }

    /* Mobil: Nav-Streifen ausblenden, Hero läuft bis ganz nach oben.
       Der Hamburger schwebt über der Hero. UL bleibt für den Drawer
       erhalten und wird absolut/fixed positioniert wenn geöffnet. */
    .site-nav {
        background: transparent;
        background-image: none;
        padding: 0;
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        height: 0;
        margin: 0;
    }

    .site-nav .container {
        padding: 0;
    }

    .site-nav::after {
        display: none;
    }

    .site-nav .container {
        justify-content: flex-start;
        padding-left: 1rem;
    }

    /* Logo-Slot links bleibt sichtbar; UL ist Drawer */
    .site-nav > .container > ul {
        position: fixed;
        top: 0;
        right: 0;
        bottom: 0;
        width: min(80vw, 360px);
        background: var(--c-bg-dark);
        background-image: url("assets/die-eisdielerei-eismanufaktur-header-hintergrund.webp");
        background-size: cover;
        flex-direction: column;
        align-items: stretch;
        justify-content: flex-start;
        gap: 0;
        padding: 5rem 1.5rem 2rem;
        margin: 0;
        transform: translateX(100%);
        transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
        z-index: 210;
        box-shadow: -8px 0 24px rgba(0, 0, 0, 0.4);
        overflow-y: auto;
    }

    .nav-check:checked ~ .site-nav > .container > ul {
        transform: translateX(0);
    }

    .site-nav > .container > ul > li {
        text-align: left;
        border-bottom: 1px solid rgba(255, 255, 255, 0.1);
        padding: 0.75rem 0;
    }

    .site-nav a {
        display: block;
        padding: 0.75rem 0.5rem;
        font-size: 1.15rem;
        border-radius: 8px;
        transition: background 0.2s ease, color 0.2s ease, padding-left 0.2s ease;
    }

    .site-nav a:hover {
        background: rgba(228, 0, 113, 0.18);
        color: var(--c-pink);
        padding-left: 1rem;
    }

    .site-nav a.active {
        color: var(--c-pink);
        background: rgba(228, 0, 113, 0.12);
        padding-left: 1rem;
    }

    /* Submenü „Eis-Diels / Getränke" auf Mobile komplett ausblenden — nur Desktop */
    .site-nav .has-sub > .submenu,
    .site-nav .submenu {
        display: none !important;
    }

    /* Logo oben im Drawer */
    .nav-logo {
        display: block !important;
        text-align: center;
        border-bottom: 1px solid rgba(255, 255, 255, 0.15) !important;
        padding: 0 0 1.25rem !important;
        margin-bottom: 0.5rem;
    }

    .nav-logo img {
        max-width: 220px;
        width: 100%;
        height: auto;
        display: block;
        margin: 0 auto;
        filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.3));
    }

    /* Social Block unten im Drawer (ähnlich Footer "folge uns") */
    .nav-social {
        display: flex !important;
        align-items: center;
        gap: 0.6rem;
        border-bottom: none !important;
        padding-top: 1.5rem !important;
        margin-top: auto;
    }

    .nav-social a {
        display: inline-flex !important;
        padding: 0.4rem !important;
        background: rgba(255, 255, 255, 0.08);
        border-radius: 50%;
        transition: background 0.2s, transform 0.2s;
    }

    .nav-social a:hover {
        background: var(--c-pink) !important;
        transform: scale(1.1) rotate(-5deg);
        padding-left: 0.4rem !important;
    }

    .nav-social img {
        width: 22px;
        height: 22px;
        filter: brightness(0) invert(1);
        display: block;
    }

    .nav-social-text {
        display: flex;
        flex-direction: column;
        line-height: 1.15;
        margin-left: 0.4rem;
    }

    .nav-social-text strong {
        font-family: var(--font-display);
        font-weight: 400;
        font-size: 1rem;
        color: #fff;
        text-transform: lowercase;
    }

    .nav-social-text small {
        color: #ccc;
        font-size: 0.78rem;
    }

    /* Drawer als Flex-Container, damit Social unten "kleben" kann */
    .site-nav > .container > ul {
        display: flex;
        flex-direction: column;
    }

    /* Drawer schließt automatisch wenn ein Nav-Link angeklickt wird */
    .nav-check:checked ~ .site-nav a:not(.has-sub > a) {
        /* navigation links inside drawer; checkbox unchecks itself when label/link is interacted */
    }
}

/* ---------- HERO COMIC ----------------------------------------- */
.hero {
    background: var(--c-bg-dark);
    background-image: url("assets/die-eisdielerei-eismanufaktur-header-hintergrund.webp");
    background-size: cover;
    padding: 0;
    margin-top: 0;
    text-align: center;
    overflow: hidden;
}

.site-nav + .hero {
    margin-top: 0;
}

.hero-img {
    width: 100%;
    max-width: 1920px;
    margin: 0 auto;
    animation: heroPop 1s cubic-bezier(0.16, 1, 0.3, 1);
}

@keyframes heroPop {
    from { opacity: 0; transform: scale(0.95); }
    to { opacity: 1; transform: scale(1); }
}

/* ---------- HERO STAGE (Comic-Komposition aus Einzel-PNGs) ----- */
.hero-stage {
    background: #1a1a1a url("assets/chalkboard_clean.png") center / cover no-repeat;
    padding: 0;
    /* Horizontal beschnitten, vertikal sichtbar — Items dürfen unten überstehen,
       werden vom weißen Intro-Bereich (z:5) sauber überdeckt */
    overflow-x: clip;
    overflow-y: visible;
    position: relative;
    z-index: 1;
}

.hero-stage-inner {
    position: relative;
    width: 100%;
    max-width: 1700px;
    margin: 0 auto;
    /* Bühnen-Höhe: ca. 16:9 für mehr vertikalen Platz wie im XD */
    aspect-ratio: 16 / 9;
    min-height: clamp(480px, 56vw, 820px);
    max-height: 900px;
}

/* Zentrales Logo — IM HINTERGRUND, oben fast an der Navi, leicht links */
.hero-logo {
    position: absolute;
    left: 47%;
    top: 1.5rem;
    width: clamp(380px, 44vw, 760px);
    height: auto;
    transform: translateX(-50%);
    z-index: 1;
    /* Layered Schatten — wie bei den Items, etwas kräftiger weil das Logo
       das zentrale Element ist und freier vor dem Hintergrund schwebt. */
    filter:
        drop-shadow(0 2px 3px rgba(0, 0, 0, 0.20))
        drop-shadow(0 10px 18px rgba(0, 0, 0, 0.18))
        drop-shadow(0 24px 38px rgba(0, 0, 0, 0.20));
    animation: hero-logo-pop 1s cubic-bezier(0.16, 1, 0.3, 1) both,
               hero-logo-breath 6s ease-in-out 1s infinite;
}

@keyframes hero-logo-pop {
    0%   { opacity: 0; transform: translateX(-50%) scale(0.6) rotate(-10deg); }
    60%  { opacity: 1; transform: translateX(-50%) scale(1.06) rotate(2deg); }
    100% { opacity: 1; transform: translateX(-50%) scale(1) rotate(0); }
}

@keyframes hero-logo-breath {
    0%, 100% { transform: translateX(-50%) scale(1) rotate(0); }
    50%      { transform: translateX(-50%) scale(1.025) rotate(-1deg); }
}

/* Gemeinsame Item-Eigenschaften — vor dem Logo (z:1) */
.hero-item {
    position: absolute;
    height: auto;
    z-index: 3;
    pointer-events: auto;
    user-select: none;
    /* Layered Drop-Shadow für plastische, wertige Optik:
       1) feiner Kontaktschatten direkt unter dem Objekt,
       2) mittlerer Schatten für die Form-Trennung vom Hintergrund,
       3) weicher Tiefenschatten für ambientes Licht. */
    filter:
        drop-shadow(0 1px 2px rgba(0, 0, 0, 0.18))
        drop-shadow(0 6px 12px rgba(0, 0, 0, 0.16))
        drop-shadow(0 18px 30px rgba(0, 0, 0, 0.18));
    transition: transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1),
        filter 0.35s ease;
}

.hero-item:hover {
    z-index: 9;
    transform: var(--hover-tf, scale(1.06) rotate(-3deg));
    /* Beim Hover „schwebt" das Item — Schatten wird tiefer und weicher */
    filter:
        drop-shadow(0 2px 3px rgba(0, 0, 0, 0.18))
        drop-shadow(0 10px 18px rgba(0, 0, 0, 0.18))
        drop-shadow(0 26px 42px rgba(0, 0, 0, 0.20));
}

/* === Hörnchen (3 Kugeln, sehr hochformatig 0.565) — ganz links === */
.hero-cone {
    left: clamp(-1rem, 1.5vw, 3rem);
    bottom: 0;
    width: clamp(190px, 20vw, 380px);
    transform: rotate(-4deg);
    --hover-tf: rotate(-9deg) scale(1.05) translateY(-8px);
}

@keyframes hero-float-1 {
    0%, 100% { transform: rotate(-4deg) translateY(0); }
    50%      { transform: rotate(-1deg) translateY(-10px); }
}

/* === Sundae (0.914) — höher nach oben links, leicht über dem Hörnchen === */
.hero-sundae {
    left: clamp(13%, 15vw, 20%);
    top: clamp(2rem, 5vw, 6rem);
    bottom: auto;
    width: clamp(180px, 19vw, 320px);
    transform: rotate(4deg);
    --hover-tf: rotate(8deg) scale(1.06) translateY(-8px);
}

@keyframes hero-float-2 {
    0%, 100% { transform: rotate(4deg) translateY(0); }
    50%      { transform: rotate(-1deg) translateY(-9px); }
}

/* === Schoki mit Augen (0.652) — unten Mitte, deutlich tiefer in der Bühne === */
.hero-choco {
    left: 50%;
    bottom: clamp(-5rem, -3.5vw, -2.5rem);
    width: clamp(200px, 21vw, 340px);
    transform: translateX(-50%) rotate(-3deg);
    z-index: 4;
    --hover-tf: translateX(-50%) rotate(-7deg) scale(1.05) translateY(-12px);
}

@keyframes hero-float-3 {
    0%, 100% { transform: translateX(-50%) rotate(-3deg) translateY(0); }
    50%      { transform: translateX(-50%) rotate(2deg) translateY(-7px); }
}

/* === Pink Shake mit Hand (0.711) — rechts der Mitte, größer und überlappt
   teilweise mit dem TO GO === */
.hero-shake {
    right: clamp(15%, 16vw, 22%);
    bottom: clamp(-1.5rem, -1vw, -0.5rem);
    width: clamp(260px, 26vw, 460px);
    transform: rotate(2deg);
    z-index: 4;
    --hover-tf: rotate(-2deg) scale(1.06) translateY(-8px);
}

@keyframes hero-float-4 {
    0%, 100% { transform: rotate(2deg) translateY(0); }
    50%      { transform: rotate(-2deg) translateY(-10px); }
}

/* === To-Go-Coffee (0.914) — ganz rechts, deutlich größer,
   liegt über dem rechten Teil des Shakes === */
.hero-togo {
    right: clamp(-2rem, -1vw, 1.5rem);
    bottom: clamp(-1.5rem, -0.5vw, 0.5rem);
    width: clamp(330px, 34vw, 600px);
    transform: rotate(-4deg);
    z-index: 5;
    --hover-tf: rotate(-9deg) scale(1.06) translateY(-10px);
}

@keyframes hero-float-5 {
    0%, 100% { transform: rotate(-4deg) translateY(0); }
    50%      { transform: rotate(-1deg) translateY(-12px); }
}

/* Initial-Einblendung der Items */
.hero-item {
    opacity: 0;
    animation-fill-mode: both;
}

.hero-cone   { animation: hero-in-1 0.9s cubic-bezier(0.16, 1, 0.3, 1) 0.3s both, hero-float-1 5.5s ease-in-out 1.2s infinite; }
.hero-sundae { animation: hero-in-2 0.9s cubic-bezier(0.16, 1, 0.3, 1) 0.45s both, hero-float-2 6.5s ease-in-out 1.4s infinite; }
.hero-choco  { animation: hero-in-3 0.9s cubic-bezier(0.16, 1, 0.3, 1) 0.6s both, hero-float-3 7s   ease-in-out 1.6s infinite; }
.hero-shake  { animation: hero-in-4 0.9s cubic-bezier(0.16, 1, 0.3, 1) 0.75s both, hero-float-4 5.8s ease-in-out 1.8s infinite; }
.hero-togo   { animation: hero-in-5 0.9s cubic-bezier(0.16, 1, 0.3, 1) 0.9s both, hero-float-5 6.2s ease-in-out 2s infinite; }

@keyframes hero-in-1 { from { opacity: 0; transform: translate(-40px, 30px) rotate(-20deg); }    to { opacity: 1; transform: rotate(-4deg) translateY(0); } }
@keyframes hero-in-2 { from { opacity: 0; transform: translate(-30px, 40px) rotate(18deg); }     to { opacity: 1; transform: rotate(4deg) translateY(0); } }
@keyframes hero-in-3 { from { opacity: 0; transform: translateX(-50%) translateY(60px) rotate(-15deg); } to { opacity: 1; transform: translateX(-50%) rotate(-3deg) translateY(0); } }
@keyframes hero-in-4 { from { opacity: 0; transform: translate(40px, 40px) rotate(15deg); }      to { opacity: 1; transform: rotate(2deg) translateY(0); } }
@keyframes hero-in-5 { from { opacity: 0; transform: translate(50px, 30px) rotate(20deg); }      to { opacity: 1; transform: rotate(-4deg) translateY(0); } }

/* Reduced motion: keine Animationen für Nutzer:innen mit prefers-reduced-motion */
@media (prefers-reduced-motion: reduce) {
    .hero-logo, .hero-item {
        animation: none !important;
        opacity: 1;
    }
    .hero-logo   { transform: translate(-50%, -50%); }
    .hero-cone   { transform: rotate(-4deg); }
    .hero-sundae { transform: rotate(4deg); }
    .hero-choco  { transform: translateX(-50%) rotate(-3deg); }
    .hero-shake  { transform: rotate(2deg); }
    .hero-togo   { transform: rotate(-4deg); }
}

/* ---------- HERO RESPONSIVE ----------------------------------- */
/* Tablet: gleiches Layout, leicht kompaktere Items */
@media (max-width: 1024px) {
    .hero-stage-inner { aspect-ratio: 16 / 9; min-height: 480px; }
    .hero-cone   { width: clamp(160px, 22vw, 280px); left: -1rem; }
    .hero-sundae { width: clamp(150px, 20vw, 250px); left: 14%; }
    .hero-choco  { width: clamp(170px, 22vw, 260px); }
    .hero-shake  { width: clamp(220px, 27vw, 360px); right: 16%; }
    .hero-togo   { width: clamp(260px, 32vw, 420px); right: -1rem; }
}

/* Mobile (Tablet hochkant + Phone Landscape): kompakter aber prominent.
   Bühne wird vertikaler, Logo bleibt groß im Zentrum, Items als
   ausgewogenes Comic-Arrangement am unteren Rand. */
@media (max-width: 900px) {
    .hero-stage-inner {
        aspect-ratio: auto;
        min-height: 460px;
        padding-bottom: 0.5rem;
    }
    /* Logo sitzt mit klarem Abstand zur Oberkante (Safari-Notch /
       iPad-Statusleiste), nicht mehr im Anschnitt. */
    .hero-logo {
        width: clamp(340px, 82vw, 600px);
        left: 50%;
        top: 4.5rem;
    }

    /* Hörnchen — am Boden verankert, ragt leicht raus */
    .hero-cone {
        left: -2rem;
        bottom: clamp(-2rem, -2.5vw, -1rem);
        width: clamp(150px, 28vw, 230px);
    }

    /* Sundae raus aus dem Logo-Bereich — sitzt jetzt ganz links oben am
       Rand und überlappt das Logo nicht mehr. Etwas kleiner für Tablet
       und Phone-Landscape. */
    .hero-sundae {
        left: 1%;
        top: 0.75rem;
        bottom: auto;
        width: clamp(100px, 16vw, 150px);
    }

    /* Schoki unten Mitte, ragt deutlich in den weißen Bereich */
    .hero-choco {
        left: 50%;
        bottom: clamp(-4rem, -5vw, -2rem);
        width: clamp(180px, 32vw, 250px);
    }

    /* Shake rechts der Mitte, am Boden verankert */
    .hero-shake {
        right: 19%;
        bottom: clamp(-2.5rem, -3vw, -1rem);
        width: clamp(150px, 28vw, 220px);
    }

    /* TO GO ganz rechts, deutlich größer (mit Sprechblase) */
    .hero-togo {
        right: -1rem;
        bottom: clamp(-2rem, -1vw, 0.5rem);
        width: clamp(220px, 40vw, 320px);
    }
}

/* Phone Portrait: Sundae raus, vier Items am unteren Rand verankert.
   Items sitzen tiefer und ragen leicht in den weißen Bereich, der sie
   per z-index sauber überdeckt — nichts schwebt frei in der Bühne */
@media (max-width: 600px) {
    .hero-stage-inner {
        /* Bühne hoch genug für Logo (weiter unten) + Comic-Items darunter.
           Padding-top respektiert iPhone-Notch / Dynamic Island. */
        min-height: calc(560px + env(safe-area-inset-top, 0px));
        padding-top: env(safe-area-inset-top, 0px);
    }
    /* Logo: sitzt klar unterhalb der iPhone-Statusleiste / Dynamic Island
       mit deutlicher Atempause. max() garantiert einen Mindestabstand auch
       wenn der Browser env(safe-area-inset-top) nicht liefert. */
    .hero-logo {
        width: 98vw;
        max-width: none;
        left: 50%;
        top: max(calc(env(safe-area-inset-top, 0px) + 7rem), 9rem);
    }
    .hero-sundae { display: none; }

    .hero-cone {
        left: -1.5rem;
        bottom: clamp(-2rem, -3vw, -1rem);
        width: 36vw;
        max-width: 190px;
    }
    .hero-choco {
        left: 50%;
        bottom: clamp(-3.5rem, -5vw, -2rem);
        width: 32vw;
        max-width: 180px;
    }
    /* Pink-Shake auch mobil sichtbar — sitzt zwischen Schoki und TO GO */
    .hero-shake {
        right: 25%;
        bottom: clamp(-2.5rem, -3vw, -1rem);
        width: 30vw;
        max-width: 170px;
    }
    .hero-togo {
        right: -1rem;
        bottom: clamp(-1.5rem, -1vw, 0.5rem);
        width: 46vw;
        max-width: 260px;
    }
}

/* Sehr kleine Phones: Shake bleibt, aber kompakter */
@media (max-width: 380px) {
    .hero-stage-inner { min-height: calc(510px + env(safe-area-inset-top, 0px)); }
    .hero-logo { width: 98vw; max-width: none; left: 50%; top: max(calc(env(safe-area-inset-top, 0px) + 6rem), 8rem); }
    .hero-cone { width: 34vw; left: -1rem; bottom: clamp(-1.5rem, -2vw, -0.5rem); }
    .hero-choco { width: 32vw; bottom: clamp(-3rem, -4vw, -1.5rem); }
    .hero-shake { width: 28vw; right: 22%; bottom: clamp(-2rem, -2.5vw, -0.5rem); }
    .hero-togo { width: 48vw; right: -0.75rem; bottom: clamp(-1rem, -0.5vw, 0.5rem); }
}

/* ---------- INTRO ---------------------------------------------- */
.intro {
    padding: clamp(2.5rem, 6vw, 5rem) 0 clamp(2rem, 5vw, 4rem);
    text-align: center;
    position: relative;
    background: #fff;
    z-index: 5;
}

/* Eishörnchen: startet weit oben im Hero, ragt durch den ganzen Hero und in die Intro */
.cone-overlay {
    position: absolute;
    left: clamp(-2rem, -1vw, 2rem);
    top: clamp(-46rem, -52vw, -28rem);
    width: clamp(260px, 30vw, 540px);
    height: auto;
    z-index: 5;
    pointer-events: none;
    user-select: none;
    transform-origin: bottom left;
    animation: coneWobble 6s ease-in-out infinite;
    filter: drop-shadow(0 12px 24px rgba(0, 0, 0, 0.3));
}

@keyframes coneWobble {
    0%, 100% { transform: rotate(-3deg); }
    50% { transform: rotate(3deg); }
}

@media (max-width: 1400px) {
    .cone-overlay {
        width: clamp(220px, 28vw, 420px);
        top: clamp(-36rem, -42vw, -22rem);
    }
}

@media (max-width: 1100px) {
    .cone-overlay {
        width: clamp(180px, 24vw, 320px);
        top: -16rem;
    }
}

@media (max-width: 720px) {
    .cone-overlay {
        width: 160px;
        top: -10rem;
        left: -1rem;
    }
}

@media (max-width: 480px) {
    .cone-overlay {
        width: 120px;
        top: -7rem;
    }
}

.intro-eyebrow {
    font-weight: 700;
    font-size: 1rem;
    margin-bottom: 0.75rem;
}

.intro-sub {
    color: var(--c-text-soft);
    font-size: 1rem;
    margin-bottom: 1.75rem;
    font-style: italic;
}

.intro-text {
    max-width: 940px;
    margin: 0 auto 2rem;
    line-height: 1.75;
}

/* ---------- PHOTO STRIP ---------------------------------------- */
.photo-strip {
    background: var(--c-bg);
    border-bottom: 6px solid var(--c-pink);
}

.strip-row {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 0;
}

.strip-row img {
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    transition: transform 0.4s ease, filter 0.3s;
    filter: saturate(0.9);
}

.strip-row img:hover {
    transform: scale(1.08);
    filter: saturate(1.2);
    z-index: 2;
}

@media (max-width: 1100px) {
    .strip-row {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 480px) {
    .strip-row {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* ---------- USP-BLOCK ----------------------------------------- */
.usps {
    padding: clamp(3rem, 7vw, 6rem) 0 clamp(2rem, 5vw, 4rem);
    text-align: center;
    position: relative;
    overflow: hidden;
}

.usp-grid {
    display: grid;
    grid-template-columns: minmax(200px, 1fr) minmax(240px, 1.15fr) minmax(260px, 1.25fr);
    gap: 1.5rem 2rem;
    max-width: 1040px;
    margin: clamp(1rem, 4vw, 3rem) auto 0;
    text-align: left;
    position: relative;
    z-index: 1;
}

@media (max-width: 820px) {
    .usp-grid {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 460px) {
    .usp-grid {
        grid-template-columns: 1fr;
    }
}

.usp-item {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    transition: transform 0.25s;
    position: relative;
}

.usp-item:hover {
    transform: translateX(4px);
}

.usp-pin {
    color: var(--c-pink);
    font-size: 1.6rem;
    line-height: 0.9;
    flex-shrink: 0;
    transition: transform 0.3s;
    margin-top: 0.25rem;
}

.usp-item:hover .usp-pin {
    transform: scale(1.3) rotate(15deg);
}

.usp-name {
    font-family: var(--font-display);
    font-weight: 400;
    font-size: clamp(1.6rem, 2.4vw, 2.4rem);
    line-height: 1.05;
    letter-spacing: 0.01em;
    color: var(--c-text);
    text-transform: lowercase;
    position: relative;
    display: inline-block;
}

/* Grüne Vegan-Sprechblase: hochgestellt am Ende des Wortes (wie ein Superscript) */
.usp-bubble {
    display: inline-block;
    width: clamp(28px, 2.6vw, 40px);
    height: auto;
    margin-left: 0.3rem;
    position: relative;
    top: -0.85em;
    vertical-align: baseline;
    transform: rotate(8deg);
    transform-origin: center center;
    animation: bubblePulse 2.4s ease-in-out infinite;
    pointer-events: none;
    user-select: none;
}

@keyframes bubblePulse {
    0%, 100% { transform: rotate(8deg) scale(1); }
    50% { transform: rotate(12deg) scale(1.08); }
}

.usp-sub {
    display: block;
    font-family: var(--font-body);
    font-size: 0.95rem;
    color: var(--c-text);
    font-weight: 500;
    margin-top: 0.4rem;
    text-transform: none;
    letter-spacing: 0;
}

/* ---------- DIELS-CTA ----------------------------------------- */
.diels-cta {
    background: var(--c-bg-dark);
    background-image: url("assets/die-eisdielerei-eismanufaktur-header-hintergrund.webp");
    background-size: cover;
    color: #fff;
    padding: clamp(2.5rem, 5vw, 4rem) 0 clamp(3rem, 6vw, 5rem);
    overflow: visible;
    position: relative;
}

.diels-row {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2rem;
    align-items: center;
    position: relative;
    z-index: 1;
    max-width: 720px;
    margin-left: clamp(0px, 8vw, 140px);
}

/* Linkes Hörnchen: ragt von oben/links in die dunkle Sektion */
.diels-cone-left {
    position: absolute;
    left: 0;
    top: 50%;
    width: clamp(150px, 18vw, 290px);
    transform: translate(-12%, -50%) rotate(8deg);
    z-index: 2;
    pointer-events: none;
    filter: drop-shadow(0 18px 36px rgba(0, 0, 0, 0.45));
    animation: coneWobbleLeft 6s ease-in-out infinite;
    transform-origin: bottom right;
}

@keyframes coneWobbleLeft {
    0%, 100% { transform: translate(-12%, -50%) rotate(6deg); }
    50% { transform: translate(-12%, -50%) rotate(12deg); }
}

.diels-text .h-display {
    margin-bottom: 0.75rem;
}

.diels-sub {
    color: #ddd;
    margin-bottom: 1.75rem;
    font-size: 1.05rem;
}

.diels-buttons {
    display: flex;
    gap: 0.75rem;
    flex-wrap: wrap;
}

/* Buttons in der Diels-CTA: Brush-Schrift wie Headlines */
.diels-buttons .btn {
    font-family: var(--font-display);
    font-weight: 400;
    text-transform: lowercase;
    letter-spacing: 0.02em;
    font-size: clamp(1rem, 1.4vw, 1.25rem);
    padding: 0.7rem 1.6rem;
}

/* Speisekarte mit Hand: rechts an die Sektion gepinnt, ragt nach oben aus
   dem dunklen Bereich. Untere Hand wird vom weißen Hours-Bereich (z:3,
   weißer Background) sauber überdeckt. */
.diels-image {
    position: absolute;
    top: 50%;
    right: 0;
    width: clamp(540px, 52vw, 980px);
    transform: translate(8%, -50%);
    z-index: 2;
    pointer-events: none;
}

.diels-image a {
    display: block;
    pointer-events: auto;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
}

.diels-image img {
    width: 100%;
    height: auto;
    display: block;
    transition: transform 0.4s ease;
    pointer-events: auto;
    filter: drop-shadow(0 16px 36px rgba(0, 0, 0, 0.45));
}

.diels-image a:hover img,
.diels-image a:focus-visible img {
    transform: rotate(-2deg) scale(1.02);
}

.diels-image a:focus-visible {
    outline: 3px solid var(--c-pink);
    outline-offset: 6px;
    border-radius: 12px;
}

@media (max-width: 1100px) {
    .diels-image {
        width: 70vw;
        transform: translate(10%, -45%);
    }
    .diels-cone-left {
        width: clamp(130px, 18vw, 240px);
        animation: coneWobbleLeftSm 6s ease-in-out infinite;
    }
    @keyframes coneWobbleLeftSm {
        0%, 100% { transform: translate(-14%, -50%) rotate(6deg); }
        50% { transform: translate(-14%, -50%) rotate(12deg); }
    }
}

@media (max-width: 800px) {
    .diels-cta {
        padding-bottom: clamp(2rem, 5vw, 3.5rem);
    }
    .diels-row {
        text-align: left;
        margin: 0;
        max-width: 60%;
    }
    .diels-buttons {
        justify-content: flex-start;
    }
    /* Speisekarte bleibt absolut, ragt rechts/unten raus, wird vom weißen
       Hours-Bereich unten sauber überdeckt — wie Desktop */
    .diels-image {
        position: absolute;
        top: 50%;
        right: 0;
        width: clamp(280px, 60vw, 480px);
        margin: 0;
        transform: translate(15%, -45%);
    }
    .diels-cone-left {
        top: 50%;
        left: 0;
        width: clamp(90px, 14vw, 140px);
        animation: coneWobbleLeftMobile 6s ease-in-out infinite;
    }
    @keyframes coneWobbleLeftMobile {
        0%, 100% { transform: translate(-15%, -50%) rotate(8deg); }
        50% { transform: translate(-15%, -50%) rotate(14deg); }
    }
}

/* Mobile (Phone Portrait): Hörnchen UND Hand-mit-Karte ausblenden,
   damit die "Unsere Diels"-Sektion sauber und auf das Wesentliche
   reduziert ist (Headline, Subline, drei Buttons). */
@media (max-width: 600px) {
    .diels-cone-left,
    .diels-image {
        display: none;
    }
    .diels-row {
        max-width: 100%;
    }
}

/* ---------- ÖFFNUNGSZEITEN ------------------------------------ */
.hours {
    padding: clamp(3rem, 7vw, 5rem) 0 clamp(2rem, 4vw, 3rem);
    text-align: center;
    overflow: visible;
    position: relative;
    z-index: 3; /* deckt unteren Rand der Speisekarte-Hand zu */
    background: #fff;
}

.hours-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    /* schmalere max-width, damit die beiden Karten zentriert wirken und nicht
       übermäßig breit auseinandergezogen werden */
    max-width: 720px;
    margin: 0 auto 2rem;
    justify-content: center;
}

@media (max-width: 720px) {
    .hours-grid {
        grid-template-columns: repeat(2, 1fr);
        max-width: 100%;
    }
}

.hour-card {
    padding: 1.6rem 1rem 1.4rem;
    border-radius: var(--radius-lg);
    background: #f0f1f3;
    transition: all 0.3s ease;
    cursor: default;
    text-align: center;
}

.hour-card:hover {
    transform: translateY(-6px) scale(1.02);
    box-shadow: var(--shadow-md);
    background: #fff;
}

.hour-card.active:hover,
.hour-card:first-child:hover {
    background: var(--c-pink);
    filter: brightness(1.05);
}

/* Erste Karte ist aktiv (pink) */
.hour-card.active,
.hour-card:first-child {
    background: var(--c-pink);
    color: #fff;
}

.hour-card.active .hour-time,
.hour-card:first-child .hour-time {
    color: #fff;
}

.hour-card.active .hour-day,
.hour-card:first-child .hour-day {
    color: #fff;
}

.hour-time {
    background: transparent;
    color: var(--c-text);
    padding: 0;
    display: block;
    font-family: var(--font-body);
    font-weight: 400;
    font-size: clamp(0.95rem, 1.1vw, 1.05rem);
    letter-spacing: 0;
    margin-bottom: 0.4rem;
    text-transform: none;
    transition: transform 0.2s;
}

.hour-card:hover .hour-time {
    transform: scale(1.04);
}

.hour-day {
    font-family: var(--font-display);
    font-weight: 400;
    font-size: clamp(1.2rem, 1.8vw, 1.6rem);
    text-transform: lowercase;
    letter-spacing: 0;
    color: var(--c-text);
    line-height: 1.05;
}

/* Rakete: Overlay zwischen Öffnungszeiten und News, leicht nach rechts gekippt */
.rocket {
    position: absolute;
    left: 50%;
    bottom: clamp(-22rem, -20vw, -14rem);
    width: clamp(130px, 12vw, 180px);
    height: auto;
    z-index: 5;
    pointer-events: none;
    transform-origin: bottom center;
    animation: launch 5s ease-in-out infinite;
    filter: drop-shadow(0 12px 24px rgba(0, 0, 0, 0.18));
}

@keyframes launch {
    0%,
    100% {
        transform: translateX(-50%) translateY(0) rotate(12deg);
    }
    50% {
        transform: translateX(-50%) translateY(-22px) rotate(18deg);
    }
}

@media (max-width: 720px) {
    .rocket {
        width: 90px;
        bottom: -5rem;
    }
}

/* Phone Portrait: Rakete fließt UNTER den Öffnungszeiten-Karten im normalen
   Layoutfluss — vermeidet zuverlässig die Überlappung mit der zweiten Karte
   (Sonntag & Feiertage), die auf Mobile direkt neben der ersten steht. */
@media (max-width: 600px) {
    .rocket {
        position: static;
        display: block;
        width: 70px;
        margin: 0.5rem auto 0;
        transform: rotate(12deg);
        animation: launchStatic 5s ease-in-out infinite;
    }
    @keyframes launchStatic {
        0%, 100% { transform: translateY(0) rotate(12deg); }
        50%      { transform: translateY(-10px) rotate(18deg); }
    }
}

@media (max-width: 380px) {
    .rocket {
        width: 60px;
    }
}

/* ---------- DIELER.NEWS --------------------------------------- */
.news {
    padding: clamp(8rem, 14vw, 14rem) 0 clamp(3rem, 7vw, 5rem);
    position: relative;
    overflow: hidden;
}

/* News-Watermark: groß, lesbar, oben — nur ~20% hinter dem Bild */
.news-watermark {
    align-items: flex-start;
    inset: 0;
    padding-top: clamp(0.5rem, 1.5vw, 2rem);
}

.news-watermark span {
    font-family: var(--font-display);
    font-size: clamp(5rem, 16vw, 17rem);
    color: rgba(0, 0, 0, 0.07);
    line-height: 0.9;
    letter-spacing: 0.005em;
}

.news-row {
    display: grid;
    grid-template-columns: 1fr 1fr auto;
    gap: clamp(1.5rem, 4vw, 3rem);
    align-items: center;
    position: relative;
    z-index: 1;
}

@media (max-width: 900px) {
    .news-row {
        grid-template-columns: 1fr;
    }
}

.news-card {
    border-radius: var(--radius-lg);
    overflow: hidden;
    box-shadow: var(--shadow-md);
    max-width: 480px;
    margin: 0 auto;
    transition: transform 0.4s ease, box-shadow 0.4s;
}

.news-card:hover {
    transform: rotate(-2deg) scale(1.03);
    box-shadow: var(--shadow-lg);
}

.news-card img {
    width: 100%;
    display: block;
}

.news-content {
    position: relative;
    padding-bottom: 2.5rem;
}

/* Box mit dünner Linie um den News-Text */
.news-box {
    background: #fff;
    border: 1px solid #d8d8d8;
    border-radius: 14px;
    padding: clamp(1.5rem, 3vw, 2.25rem) clamp(1.5rem, 3vw, 2.25rem) clamp(1.5rem, 3vw, 2rem);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
    position: relative;
    z-index: 1;
}

.news-title {
    font-family: var(--font-display);
    font-size: clamp(1.5rem, 3vw, 2.4rem);
    color: var(--c-text);
    text-transform: lowercase;
    margin-bottom: 1rem;
    line-height: 1.1;
    font-weight: 400;
}

.news-content p {
    margin-bottom: 1rem;
    color: var(--c-text-soft);
    font-size: 0.95rem;
    line-height: 1.55;
}

.news-price {
    font-family: var(--font-body);
    font-weight: 400;
    font-size: clamp(1.5rem, 2.4vw, 2rem);
    color: var(--c-text);
    margin-bottom: 0;
    display: inline-block;
    line-height: 1;
}

/* Button: ragt unten aus der Box raus, leicht versetzt */
.news-btn {
    position: relative;
    z-index: 2;
    margin-top: -1.5rem;
    margin-left: clamp(1.5rem, 3vw, 2.25rem);
}

.news-pagination {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
    position: relative;
}

@media (max-width: 900px) {
    .news-pagination {
        flex-direction: row;
        justify-content: center;
    }
}

.news-pagination button {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    border: 1.5px solid #c8c8c8;
    color: var(--c-text);
    font-weight: 600;
    font-size: 0.85rem;
    background: #fff;
    transition: all 0.2s;
    position: relative;
}

/* Dünne pink Verbindungslinie vom aktiven Punkt zur Box */
.news-pagination button.active::before {
    content: "";
    position: absolute;
    top: 50%;
    right: 100%;
    width: clamp(1rem, 2.5vw, 2.25rem);
    height: 1.5px;
    background: var(--c-pink);
    transform: translateY(-50%);
}

@media (max-width: 900px) {
    .news-pagination button.active::before {
        display: none;
    }
}

.news-pagination button.active,
.news-pagination button:hover {
    background: var(--c-pink);
    color: #fff;
    border-color: var(--c-pink);
    transform: scale(1.05);
}

/* ---------- LOCATIONS ---------------------------------------- */
.locations {
    padding: clamp(3rem, 7vw, 5rem) 0;
}

/* Header: 2 Spalten — Headline links, Intro rechts */
.loc-header {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: clamp(1.5rem, 4vw, 4rem);
    align-items: center;
    margin-bottom: clamp(2rem, 4vw, 3rem);
}

.loc-title {
    margin: 0;
    text-align: left;
    line-height: 1;
}

.loc-intro {
    margin: 0;
    color: var(--c-text);
    font-size: clamp(0.95rem, 1.1vw, 1.05rem);
    line-height: 1.55;
}

@media (max-width: 800px) {
    .loc-header {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }
}

/* Body: links Adressliste (2 Spalten), rechts Karte */
.loc-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: clamp(1.5rem, 3vw, 3rem);
    align-items: start;
}

@media (max-width: 900px) {
    .loc-row {
        grid-template-columns: 1fr;
    }
}

.loc-list {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.85rem;
    align-content: start;
}

@media (max-width: 520px) {
    .loc-list {
        grid-template-columns: 1fr;
    }
}

.loc-card {
    display: flex;
    gap: 0.6rem;
    align-items: flex-start;
    padding: 1rem 1.1rem;
    background: #fff;
    border: 1px solid #e2e2e2;
    border-radius: 14px;
    transition: background 0.25s ease, color 0.25s ease,
        border-color 0.25s ease, box-shadow 0.25s ease, transform 0.25s ease;
    cursor: pointer;
    min-height: 64px;
    text-decoration: none;
    color: inherit;
}

.loc-card:hover,
.loc-card:focus-visible {
    background: var(--c-pink);
    color: #fff;
    border-color: var(--c-pink);
    box-shadow: 0 6px 16px rgba(228, 0, 113, 0.25);
    transform: translateY(-2px);
    outline: none;
}

.loc-card:hover .loc-pin,
.loc-card:focus-visible .loc-pin {
    color: #fff;
}

.loc-pin {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
    color: var(--c-pink);
    margin-top: 1px;
    transition: color 0.25s ease;
}

.loc-info {
    flex: 1;
    min-width: 0;
}

.loc-card strong {
    display: block;
    font-size: 0.95rem;
    font-weight: 700;
    line-height: 1.25;
}

.loc-card small {
    display: block;
    font-size: 0.85rem;
    line-height: 1.4;
    font-weight: 400;
    color: var(--c-text-soft);
    max-height: 0;
    margin-top: 0;
    opacity: 0;
    overflow: hidden;
    transition: max-height 0.3s ease, opacity 0.25s ease, margin-top 0.3s ease,
        color 0.25s ease;
}

.loc-card:hover small,
.loc-card:focus-visible small {
    max-height: 80px;
    margin-top: 0.6rem;
    opacity: 1;
    color: rgba(255, 255, 255, 0.92);
}

/* Touch-Geräte: Adresse dauerhaft sichtbar (Hover existiert nicht) */
@media (hover: none) {
    .loc-card small {
        max-height: 80px;
        margin-top: 0.6rem;
        opacity: 1;
    }
}

.loc-map {
    border-radius: 14px;
    overflow: hidden;
    box-shadow: var(--shadow-sm);
    border: 1px solid #e2e2e2;
}

.loc-map img {
    width: 100%;
    display: block;
}

/* ---------- PARTNERS ----------------------------------------- */
.partners {
    background: var(--c-bg-soft);
    padding: clamp(4rem, 7vw, 7rem) 0 clamp(3rem, 5vw, 5rem);
    position: relative;
    overflow: hidden;
}

.partners .watermark {
    z-index: 0;
    align-items: flex-end;
    padding-bottom: clamp(0.5rem, 1.5vw, 1.5rem);
}

.partner-row {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: clamp(0.75rem, 1.5vw, 1.5rem);
    align-items: stretch;
    position: relative;
    z-index: 1;
}

@media (max-width: 800px) {
    .partner-row {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 480px) {
    .partner-row {
        grid-template-columns: repeat(2, 1fr);
    }
}

.partner-row img {
    width: 100%;
    height: clamp(75px, 7.5vw, 100px);
    object-fit: contain;
    background: transparent;
    padding: 0;
    /* Standard: Schwarz-Weiß, deutlich blasser */
    filter: grayscale(100%) contrast(0.9) brightness(1.05);
    opacity: 0.5;
    transition: transform 0.3s ease, filter 0.35s ease, opacity 0.35s ease;
}

.partner-row img:hover {
    /* Hover: voll farbig, leicht hoch & vergrößert */
    filter: grayscale(0%) contrast(1) brightness(1);
    opacity: 1;
    transform: translateY(-3px) scale(1.04);
}

.partner-row a {
    display: flex;
    align-items: center;
    justify-content: center;
}

/* ---------- FOOTER ------------------------------------------- */
.site-footer {
    background: var(--c-bg-dark);
    background-image: url("assets/die-eisdielerei-eismanufaktur-header-hintergrund.webp");
    background-size: cover;
    color: var(--c-on-dark);
    padding: clamp(2rem, 4vw, 3.5rem) 0 clamp(2rem, 4vw, 3.5rem);
    position: relative;
}

.footer-grid {
    display: grid;
    grid-template-columns: 1.1fr 1fr 1fr;
    gap: clamp(1.5rem, 3vw, 3rem);
    align-items: start;
}

@media (max-width: 900px) {
    .footer-grid {
        grid-template-columns: 1fr;
        text-align: center;
        gap: 2rem;
    }
}

/* Großes Comic-Logo links, ragt nach links und nach oben/unten aus dem Footer raus */
.footer-brand {
    position: relative;
    margin-left: clamp(-9rem, -10vw, -3rem);
    margin-top: clamp(-4rem, -6vw, -2rem);
    margin-bottom: clamp(-3rem, -5vw, -1.5rem);
    align-self: stretch;
    overflow: visible;
}

.site-footer {
    overflow: visible;
}

.footer-logo {
    width: clamp(420px, 42vw, 640px);
    max-width: none;
    height: auto;
    display: block;
    filter: drop-shadow(0 6px 18px rgba(0, 0, 0, 0.35));
}

@media (max-width: 1100px) {
    .footer-logo {
        width: clamp(360px, 36vw, 480px);
    }
}

@media (max-width: 900px) {
    .footer-brand {
        margin: 0;
        text-align: center;
    }
    .footer-logo {
        width: clamp(280px, 70vw, 420px);
        margin: 0 auto;
    }
}

.footer-h {
    font-family: var(--font-display);
    font-weight: 400;
    font-size: clamp(2rem, 3.5vw, 3rem);
    color: #fff;
    text-transform: lowercase;
    letter-spacing: 0;
    line-height: 1;
    margin-bottom: 1.25rem;
}

.footer-address {
    color: #fff;
    font-size: clamp(0.95rem, 1.05vw, 1.05rem);
    margin: 0 0 1rem;
    line-height: 1.5;
}

/* Folge uns Block: Icons + Text */
.follow-link {
    display: inline-flex;
    align-items: center;
    gap: 0.85rem;
    color: #fff;
    margin-top: 1rem;
}

@media (max-width: 900px) {
    .follow-link {
        justify-content: center;
    }
}

.follow-icons {
    display: inline-flex;
    gap: 0.4rem;
}

.follow-icon {
    width: 32px;
    height: 32px;
    filter: brightness(0) invert(1);
    transition: transform 0.2s;
}

.follow-link:hover .follow-icon {
    transform: scale(1.15);
}

.follow-text {
    display: flex;
    flex-direction: column;
    line-height: 1.2;
}

.follow-text strong {
    font-family: var(--font-display);
    font-weight: 400;
    font-size: clamp(1rem, 1.3vw, 1.2rem);
    text-transform: lowercase;
}

.follow-text small {
    color: #ddd;
    font-size: 0.85rem;
}

/* Öffnungszeiten-Liste */
.hours-note {
    color: #fff;
    font-size: clamp(0.95rem, 1.05vw, 1.05rem);
    margin-bottom: 1rem;
    max-width: 320px;
    line-height: 1.5;
}

@media (max-width: 900px) {
    .hours-note {
        margin-left: auto;
        margin-right: auto;
    }
}

.footer-hours {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    margin-bottom: 1.25rem;
}

.footer-hours li {
    display: grid;
    grid-template-columns: minmax(140px, max-content) 1fr;
    gap: 1rem;
    font-size: clamp(0.95rem, 1.05vw, 1.05rem);
    color: #fff;
}

.footer-hours .day {
    font-weight: 700;
}

@media (max-width: 900px) {
    .footer-hours li {
        justify-content: center;
        grid-template-columns: 1fr;
        gap: 0.1rem;
    }
}

/* Telefon + Mail-Liste unten in der Spalte */
.footer-contact {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
    margin-top: 1rem;
}

.footer-contact li {
    color: #fff;
    font-size: clamp(0.95rem, 1.05vw, 1.05rem);
    display: flex;
    align-items: center;
    gap: 0.7rem;
}

@media (max-width: 900px) {
    .footer-contact li {
        justify-content: center;
    }
}

.footer-contact a {
    color: inherit;
}

.footer-contact a:hover {
    color: var(--c-pink);
}

.ic {
    width: 22px;
    height: 22px;
    filter: brightness(0) invert(1);
    flex-shrink: 0;
}

/* Datenschutz/Impressum: weißer Bereich UNTERHALB des dunklen Footers */
.footer-legal {
    background: #fff;
    padding: clamp(1.25rem, 2.5vw, 2rem) 0;
}

.footer-legal .container {
    display: flex;
    gap: 1rem;
    justify-content: center;
}

/* Footer-Legal-Buttons: Schrift wie Headlines (Display-Font Naughty Monster) */
.footer-legal .btn {
    font-family: var(--font-display);
    font-weight: 400;
    text-transform: lowercase;
    letter-spacing: 0.02em;
    font-size: clamp(1.05rem, 1.4vw, 1.3rem);
    padding: 0.55rem 1.6rem;
}

/* ---------- COOKIE / CONSENT BANNER ------------------------- */
.cb-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.35);
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
    z-index: 9000;
    opacity: 0;
    transition: opacity 0.28s ease;
    pointer-events: none;
}
.cb-overlay.open { opacity: 1; pointer-events: auto; }

.cookie-banner {
    position: fixed;
    left: 50%;
    bottom: clamp(0.75rem, 2vw, 1.5rem);
    transform: translateX(-50%) translateY(140%);
    width: min(720px, calc(100vw - 1.5rem));
    z-index: 9001;
    transition: transform 0.32s cubic-bezier(0.16, 1, 0.3, 1);
    font-family: var(--font-body, system-ui, sans-serif);
}
.cookie-banner.open { transform: translateX(-50%) translateY(0); }

.cb-card {
    background: #fff;
    border-radius: 18px;
    padding: clamp(1.1rem, 2.5vw, 1.6rem);
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.25),
        0 0 0 1px rgba(0, 0, 0, 0.05);
    border: 2px solid var(--c-pink, #e6007e);
}

.cb-head h2 {
    font-family: var(--font-display, system-ui);
    font-weight: 400;
    color: var(--c-pink, #e6007e);
    font-size: clamp(1.3rem, 2vw, 1.7rem);
    margin: 0 0 0.4rem;
    letter-spacing: 0.01em;
}

.cb-head p {
    margin: 0 0 0.9rem;
    color: var(--c-text, #222);
    font-size: clamp(0.88rem, 1.05vw, 0.95rem);
    line-height: 1.55;
}

.cb-head a {
    color: var(--c-pink, #e6007e);
    text-decoration: underline;
    text-underline-offset: 2px;
}

.cb-actions {
    display: flex;
    gap: 0.55rem;
    flex-wrap: wrap;
}

.cb-actions-save { justify-content: flex-end; margin-top: 0.4rem; }

.cb-btn {
    flex: 1 1 auto;
    min-height: 44px;
    padding: 0.65rem 1.1rem;
    border-radius: 999px;
    border: 2px solid var(--c-pink, #e6007e);
    font-family: var(--font-body, system-ui);
    font-weight: 600;
    font-size: 0.92rem;
    cursor: pointer;
    transition: background 0.18s ease, color 0.18s ease, transform 0.12s ease;
    -webkit-tap-highlight-color: transparent;
}

.cb-btn:active { transform: scale(0.97); }

.cb-btn-primary {
    background: var(--c-pink, #e6007e);
    color: #fff;
}
.cb-btn-primary:hover { background: #c8006d; border-color: #c8006d; }

.cb-btn-secondary {
    background: #fff;
    color: var(--c-pink, #e6007e);
}
.cb-btn-secondary:hover { background: rgba(228, 0, 113, 0.08); }

/* Settings-Panel mit Toggle-Switches */
.cb-settings {
    margin: 0.6rem 0 0.9rem;
    padding: 0.5rem 0;
    border-top: 1px solid #eee;
}

.cb-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.6rem 0;
    border-bottom: 1px solid #f3f3f3;
    cursor: pointer;
}
.cb-row:last-child { border-bottom: none; }

.cb-row-info { display: block; flex: 1; min-width: 0; }
.cb-row-info strong {
    display: block;
    color: var(--c-text, #222);
    font-size: 0.95rem;
    font-weight: 700;
    margin-bottom: 0.1rem;
}
.cb-row-info small {
    display: block;
    color: var(--c-text-soft, #666);
    font-size: 0.8rem;
    line-height: 1.4;
}

/* Custom-Toggle */
.cb-toggle {
    position: relative;
    flex-shrink: 0;
    width: 44px;
    height: 26px;
}
.cb-toggle input {
    position: absolute;
    inset: 0;
    opacity: 0;
    cursor: pointer;
    width: 100%;
    height: 100%;
    margin: 0;
}
.cb-track {
    display: block;
    width: 100%;
    height: 100%;
    background: #ccc;
    border-radius: 999px;
    position: relative;
    transition: background 0.2s ease;
}
.cb-thumb {
    position: absolute;
    top: 3px;
    left: 3px;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25);
    transition: transform 0.22s cubic-bezier(0.4, 0, 0.2, 1);
}
.cb-toggle input:checked + .cb-track { background: var(--c-pink, #e6007e); }
.cb-toggle input:checked + .cb-track .cb-thumb { transform: translateX(18px); }
.cb-toggle.is-locked .cb-track { background: #d0d0d0; }
.cb-toggle.is-locked input { cursor: not-allowed; }

/* Schwebender Reopen-Button (nach Wahl) */
.cb-reopen {
    position: fixed;
    bottom: clamp(0.75rem, 2vw, 1.25rem);
    left: clamp(0.75rem, 2vw, 1.25rem);
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: #fff;
    color: var(--c-pink, #e6007e);
    border: 2px solid var(--c-pink, #e6007e);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    z-index: 8500;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.18);
    transition: transform 0.18s ease, background 0.18s ease, color 0.18s ease;
    -webkit-tap-highlight-color: transparent;
}
.cb-reopen:hover {
    background: var(--c-pink, #e6007e);
    color: #fff;
    transform: scale(1.08);
}
.cb-reopen svg { width: 22px; height: 22px; display: block; }

/* Mobile-Anpassung: Banner unten als Sheet */
@media (max-width: 600px) {
    .cookie-banner {
        bottom: 0.5rem;
        width: calc(100vw - 1rem);
    }
    .cb-card { padding: 1rem; border-radius: 16px; }
    .cb-actions { flex-direction: column; }
    .cb-btn { flex: 1 1 100%; }
    .cb-row { flex-wrap: nowrap; }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
    .cookie-banner,
    .cb-overlay,
    .cb-thumb,
    .cb-reopen {
        transition: none !important;
    }
}

/* ---------- LEGAL PAGES (Impressum / Datenschutz) ----------- */
.legal-section {
    padding: clamp(1rem, 3vw, 2rem) 0 clamp(3rem, 6vw, 5rem);
}

.legal-content {
    max-width: 820px;
    color: var(--c-text);
    font-family: var(--font-body);
    font-size: clamp(0.98rem, 1.1vw, 1.05rem);
    line-height: 1.7;
}

.legal-content h2 {
    font-family: var(--font-display);
    font-weight: 400;
    color: var(--c-pink, #e6007e);
    font-size: clamp(1.5rem, 2.4vw, 2rem);
    margin: 2.4rem 0 0.8rem;
    line-height: 1.15;
    letter-spacing: 0.01em;
}

.legal-content h2:first-child {
    margin-top: 0;
}

.legal-content h3 {
    font-family: var(--font-body);
    font-weight: 700;
    color: var(--c-text);
    font-size: clamp(1.05rem, 1.3vw, 1.2rem);
    margin: 1.6rem 0 0.5rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.legal-content p {
    margin: 0 0 1rem;
}

.legal-content a {
    color: var(--c-pink, #e6007e);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.legal-content a:hover {
    text-decoration: none;
}

.legal-content strong {
    font-weight: 700;
    color: var(--c-text);
}

.legal-content .legal-foot {
    margin-top: 2.5rem;
    padding-top: 1.25rem;
    border-top: 1px solid #eee;
    font-size: 0.9rem;
    color: var(--c-text-soft);
    font-style: italic;
}

/* ---------- SCROLL REVEAL + STAGGER ------------------------- */
@media (prefers-reduced-motion: no-preference) {
    .reveal {
        opacity: 0;
        transform: translateY(40px);
        transition: opacity 0.8s ease, transform 0.8s ease;
    }
    .reveal.visible {
        opacity: 1;
        transform: translateY(0);
    }
    .reveal-stagger > * {
        opacity: 0;
        transform: translateY(30px);
        transition: opacity 0.6s ease, transform 0.6s ease;
    }
    .reveal-stagger.visible > * {
        opacity: 1;
        transform: translateY(0);
    }
    .reveal-stagger.visible > *:nth-child(1) { transition-delay: 0.05s; }
    .reveal-stagger.visible > *:nth-child(2) { transition-delay: 0.10s; }
    .reveal-stagger.visible > *:nth-child(3) { transition-delay: 0.15s; }
    .reveal-stagger.visible > *:nth-child(4) { transition-delay: 0.20s; }
    .reveal-stagger.visible > *:nth-child(5) { transition-delay: 0.25s; }
    .reveal-stagger.visible > *:nth-child(6) { transition-delay: 0.30s; }
}

/* ---------- PAGE-HERO (Eis-Diels, Galerie, Team, Story) ------ */
.page-hero {
    text-align: center;
    padding: clamp(3rem, 7vw, 5rem) 0 clamp(2rem, 5vw, 3rem);
}

.page-hero .lead {
    max-width: 720px;
    margin: 0 auto;
    color: var(--c-text-soft);
}

/* ---------- EIS.DIELS PAGE ----------------------------------- */
.diels-hero {
    padding: clamp(2rem, 5vw, 4.5rem) 0 clamp(2rem, 4vw, 3.5rem);
}

.diels-hero .h-page {
    margin-bottom: clamp(2rem, 4vw, 3.5rem);
}

/* Wrapper für Tab-Bar + (mobile) Pfeil-Navigation */
.tabs-wrap {
    display: flex;
    align-items: center;
    gap: 0.6rem;
}

.tabs-wrap .tabs {
    flex: 1 1 auto;
    min-width: 0;
}

/* Pfeil-Buttons: Desktop ausgeblendet, nur auf Mobile sichtbar */
.tab-nav {
    display: none;
    align-items: center;
    justify-content: center;
    flex: 0 0 44px;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: var(--c-pink);
    border: 2px solid var(--c-pink);
    color: #fff;
    cursor: pointer;
    padding: 0;
    box-shadow: 0 4px 10px rgba(228, 0, 113, 0.25);
    transition: transform 0.15s ease, box-shadow 0.2s ease, background 0.2s ease;
    -webkit-tap-highlight-color: transparent;
}

.tab-nav:active {
    transform: scale(0.92);
}

.tab-nav:hover {
    background: #c8006d;
}

.tab-nav svg {
    width: 22px;
    height: 22px;
    display: block;
}

/* Tab-Bar im Stil des XD: pink-umrandet, durchgehende Pille mit Trennern */
.tabs {
    display: flex;
    gap: 0;
    justify-content: stretch;
    margin: 0 auto;
    flex-wrap: nowrap;
    border: 2px solid var(--c-pink);
    border-radius: var(--radius-pill);
    overflow: hidden;
    max-width: 980px;
    background: #fff;
    position: relative;
    z-index: 1;
}

.tab {
    flex: 1 1 0;
    padding: clamp(0.85rem, 1.6vw, 1.2rem) clamp(0.6rem, 1.5vw, 1.5rem);
    border-radius: 0;
    font-family: var(--font-display);
    font-weight: 400;
    text-transform: lowercase;
    font-size: clamp(1.1rem, 1.8vw, 1.7rem);
    letter-spacing: 0;
    background: #fff;
    color: var(--c-pink);
    transition: all 0.25s ease;
    border: none;
    cursor: pointer;
    line-height: 1;
}

.tab + .tab {
    border-left: 1px solid rgba(228, 0, 113, 0.25);
}

.tab.active {
    background: var(--c-pink);
    color: #fff;
}

.tab:hover:not(.active) {
    background: rgba(228, 0, 113, 0.08);
}

@media (max-width: 700px) {
    /* Pfeil-Navigation einblenden (nur Mobile) */
    .tab-nav {
        display: flex;
    }
    /* Tabs werden horizontal scrollbar — alle 5 bleiben in einer Reihe sichtbar
       und tappable. Scroll-Snap rastet sauber pro Tab ein. */
    .tabs {
        flex-wrap: nowrap;
        border-radius: 999px;
        overflow-x: auto;
        overflow-y: hidden;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
    }
    .tabs::-webkit-scrollbar {
        display: none;
    }
    .tab {
        flex: 0 0 auto;
        min-width: 38vw;
        min-height: 48px;
        scroll-snap-align: start;
        font-size: 1.05rem;
        padding: 0.95rem 1.2rem;
    }
    .tab + .tab {
        border-left: 1px solid rgba(228, 0, 113, 0.15);
    }
    .tab.tab-reload {
        min-width: 28vw;
    }
}

/* Birkenhof + Intro-Text */
.diels-intro {
    padding: clamp(2rem, 4vw, 3rem) 0 clamp(1.5rem, 3vw, 2.5rem);
    overflow: hidden;
    transition: max-height 0.45s ease, opacity 0.3s ease,
        padding 0.45s ease, margin 0.45s ease;
    max-height: 800px;
    opacity: 1;
}

.diels-intro.is-collapsed,
.diels-prices.is-collapsed {
    max-height: 0;
    padding-top: 0;
    padding-bottom: 0;
    margin: 0;
    opacity: 0;
    pointer-events: none;
}

.intro-row {
    display: grid;
    grid-template-columns: minmax(160px, 220px) 1fr;
    gap: clamp(1.5rem, 3vw, 3rem);
    align-items: center;
    border-top: 1px solid #e3e3e3;
    border-bottom: 1px solid #e3e3e3;
    padding: clamp(1.5rem, 3vw, 2.5rem) 0;
}

@media (max-width: 700px) {
    .intro-row {
        grid-template-columns: 1fr;
        text-align: center;
    }
}

.intro-logo {
    width: 100%;
    max-width: 220px;
    height: auto;
    justify-self: center;
}

.intro-copy {
    font-size: clamp(0.95rem, 1.05vw, 1.05rem);
    line-height: 1.6;
    color: var(--c-text);
    margin: 0;
}

/* Preis-Streifen mit 4 Becher-Größen — Preis als Fähnchen hinter dem Becher */
.diels-prices {
    padding: clamp(1rem, 2vw, 2rem) 0 clamp(2rem, 4vw, 3.5rem);
    overflow: hidden;
    transition: max-height 0.45s ease, opacity 0.3s ease,
        padding 0.45s ease, margin 0.45s ease;
    max-height: 600px;
    opacity: 1;
}

.price-row {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: clamp(0.5rem, 1.5vw, 1.5rem);
    align-items: center;
}

.price-item {
    position: relative;
    display: flex;
    align-items: center;
    min-height: clamp(110px, 13vw, 180px);
}

/* Becher-Bild: links, im Vordergrund */
.price-item img {
    display: block;
    width: clamp(85px, 9.5vw, 145px);
    height: auto;
    position: relative;
    z-index: 2;
    flex-shrink: 0;
    filter: drop-shadow(0 6px 10px rgba(0, 0, 0, 0.08));
}

/* Preis-Fähnchen: ragt rechts aus dem Becher heraus, linker Teil hinter dem Becher */
.price-pill {
    position: absolute;
    left: clamp(60px, 6.5vw, 100px);
    top: 50%;
    transform: translateY(-50%);
    z-index: 1;
    background: var(--c-pink);
    color: #fff;
    font-family: var(--font-display);
    font-weight: 400;
    font-size: clamp(1.1rem, 1.7vw, 1.7rem);
    letter-spacing: 0.01em;
    padding: clamp(0.45rem, 0.85vw, 0.75rem) clamp(0.85rem, 1.4vw, 1.4rem)
             clamp(0.45rem, 0.85vw, 0.75rem) clamp(2.25rem, 4.5vw, 4.5rem);
    border-radius: var(--radius-pill);
    box-shadow: 0 6px 14px rgba(228, 0, 113, 0.28);
    white-space: nowrap;
    line-height: 1;
}

@media (max-width: 700px) {
    .price-row {
        grid-template-columns: repeat(2, 1fr);
        gap: 1.25rem 1rem;
    }
    .price-item {
        min-height: 110px;
    }
    .price-item img {
        width: 90px;
    }
    .price-pill {
        left: 60px;
        font-size: 1rem;
        padding: 0.5rem 1rem 0.5rem 2.25rem;
    }
}

/* Diels-Grid-Sektion */
.diels-section {
    padding: 0 0 clamp(3rem, 6vw, 5rem);
}

/* Karten-Grid mit Titel oben in pink-umrandeter Pille */
.diels-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: clamp(1.5rem, 2.5vw, 2rem);
}

.diel {
    background: #fff;
    border: 1px solid #e6e6e6;
    border-radius: 18px;
    padding: 1.25rem 1rem 1.5rem;
    text-align: center;
    cursor: pointer;
    transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
    animation: fadeInUp 0.5s ease backwards;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
    position: relative;
}

.diel:hover {
    transform: translateY(-6px);
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.08);
    border-color: rgba(228, 0, 113, 0.4);
}

.diel-name {
    font-family: var(--font-display);
    font-weight: 400;
    font-size: clamp(1.1rem, 1.6vw, 1.55rem);
    color: var(--c-pink);
    text-transform: lowercase;
    letter-spacing: 0;
    line-height: 1.05;
    border: 1.5px solid var(--c-pink);
    border-radius: 14px;
    padding: 0.55rem 1rem;
    width: 100%;
    background: #fff;
    margin: 0;
}

/* Variante für lange Sortennamen: kleinere Schrift, zweizeilig */
.diel-name--small {
    font-size: clamp(0.85rem, 1.15vw, 1.1rem);
    line-height: 1.15;
    padding: 0.45rem 0.75rem;
}

.diel-img {
    height: clamp(140px, 18vw, 220px);
    display: flex;
    align-items: flex-end;
    justify-content: center;
    background: transparent;
    border-radius: 0;
    padding: 0;
    margin: 0;
    width: 100%;
    transition: transform 0.3s;
    overflow: hidden;
}

.diel:hover .diel-img {
    transform: scale(1.04);
}

/* Alle Eis-Bilder belegen exakt dieselbe Box (volle Container-Höhe UND -Breite)
   und werden via object-fit:contain proportional eingepasst. So wirkt jeder
   Becher visuell gleich groß, unabhängig von der Quell-Auflösung und Form. */
.diel-img img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center bottom;
    display: block;
}

/* Reorder: name above image */
.diel .diel-name { order: 1; }
.diel .diel-img { order: 2; }
.diel .diel-tags { order: 3; }

.diel-tags {
    color: var(--c-text-soft);
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: 600;
    margin: 0;
}

/* === VEGAN-BADGE === */
.vegan-badge {
    position: absolute;
    top: 10px;
    right: 10px;
    background: #4a9d3f;
    color: #fff;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: lowercase;
    letter-spacing: 0.04em;
    padding: 4px 11px;
    border-radius: 100px;
    z-index: 3;
    line-height: 1;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.12);
    pointer-events: none;
}
@media (max-width: 700px) {
    .vegan-badge {
        top: 6px;
        right: 6px;
        font-size: 0.62rem;
        padding: 3px 8px;
    }
}

@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Diels-Grid auf Mobile: 2 Spalten, kompaktere Karten (mehr Produkte
   auf einen Blick, weniger Scroll-Aufwand). */
@media (max-width: 700px) {
    .diels-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 0.75rem;
    }
    .diel {
        padding: 0.85rem 0.6rem 1rem;
        gap: 0.65rem;
        border-radius: 14px;
    }
    .diel-name {
        font-size: 0.95rem;
        padding: 0.4rem 0.5rem;
        border-width: 1.25px;
        border-radius: 10px;
    }
    .diel-img {
        height: 110px;
    }
    .diel-tags {
        font-size: 0.68rem;
        letter-spacing: 0.05em;
    }
    /* Hover-Effekte auf Touch deaktivieren — kein hängenbleibender Hover-State */
    .diel:hover {
        transform: none;
        box-shadow: none;
        border-color: #e6e6e6;
    }
    .diel:hover .diel-img {
        transform: none;
    }
}

/* Ganz kleine Smartphones (<360px): Bilder-Höhe leicht reduzieren */
@media (max-width: 360px) {
    .diel-img {
        height: 95px;
    }
    .diels-grid {
        gap: 0.6rem;
    }
}

/* ---------- BLOG / DIELER.NEWS ------------------------------- */
.blog-hero {
    padding-bottom: clamp(1.5rem, 3vw, 2.5rem);
}

.blog-hero .lead {
    max-width: 720px;
    margin-left: auto;
    margin-right: auto;
}

.blog-filter {
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
    justify-content: center;
    margin-top: clamp(1.5rem, 3vw, 2.5rem);
}

.blog-tab {
    font-family: var(--font-display);
    font-weight: 400;
    text-transform: lowercase;
    font-size: clamp(0.95rem, 1.2vw, 1.15rem);
    padding: 0.55rem 1.2rem;
    border: 2px solid var(--c-pink);
    border-radius: var(--radius-pill);
    background: #fff;
    color: var(--c-pink);
    cursor: pointer;
    transition: all 0.2s ease;
    line-height: 1;
}

.blog-tab:hover {
    background: rgba(228, 0, 113, 0.08);
}

.blog-tab.active {
    background: var(--c-pink);
    color: #fff;
}

.blog-section {
    padding: clamp(2rem, 4vw, 3.5rem) 0 clamp(3rem, 6vw, 5rem);
}

.blog-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: clamp(1.5rem, 3vw, 2.25rem);
}

.blog-card {
    background: #fff;
    border: 1px solid #e6e6e6;
    border-radius: 18px;
    overflow: hidden;
    transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
    opacity: 0;
    transform: translateY(20px);
}

.blog-card.visible {
    opacity: 1;
    transform: translateY(0);
    transition-delay: calc(var(--i, 0) * 0.06s);
    transition: opacity 0.6s ease, transform 0.6s ease;
}

.blog-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 16px 32px rgba(0, 0, 0, 0.08);
    border-color: rgba(228, 0, 113, 0.4);
}

.blog-card-link {
    display: block;
    color: inherit;
    text-decoration: none;
}

.blog-card-image {
    position: relative;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: var(--c-bg-soft);
}

.blog-card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.5s ease;
}

.blog-card:hover .blog-card-image img {
    transform: scale(1.06);
}

.blog-card-body {
    padding: clamp(1.25rem, 2vw, 1.75rem);
}

.blog-card-meta {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 0.6rem;
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--c-text-soft);
    font-weight: 600;
}

.blog-card-cat {
    color: var(--c-pink);
    background: rgba(228, 0, 113, 0.1);
    padding: 0.25rem 0.65rem;
    border-radius: var(--radius-pill);
    font-size: 0.72rem;
}

.blog-card-date::before {
    content: "·";
    margin-right: 0.5rem;
    opacity: 0.6;
}

.blog-card-title {
    font-family: var(--font-display);
    font-weight: 400;
    font-size: clamp(1.3rem, 1.7vw, 1.7rem);
    color: var(--c-text);
    text-transform: lowercase;
    line-height: 1.15;
    margin: 0 0 0.6rem;
    letter-spacing: 0;
}

.blog-card-excerpt {
    font-size: clamp(0.9rem, 1vw, 0.98rem);
    line-height: 1.55;
    color: var(--c-text-soft);
    margin: 0 0 1rem;
}

.blog-card-price {
    font-family: var(--font-display);
    font-size: clamp(1.2rem, 1.5vw, 1.55rem);
    color: var(--c-pink);
    font-weight: 400;
    line-height: 1;
    margin: 0 0 0.85rem;
}

.blog-card-cta {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    color: var(--c-pink);
    font-weight: 700;
    font-size: 0.88rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    transition: gap 0.2s ease;
}

.blog-card:hover .blog-card-cta {
    gap: 0.7rem;
}

.blog-empty,
.blog-error {
    text-align: center;
    padding: 3rem 1rem;
    color: var(--c-text-soft);
    font-size: 1.1rem;
}

.blog-instagram {
    background: var(--c-bg-soft);
    padding: clamp(2.5rem, 5vw, 4rem) 0;
    text-align: center;
}

.blog-instagram .lead {
    max-width: 600px;
    margin: 0 auto 2rem;
}

/* Instagram-Stil-Grid: 3 Spalten quadratische Tiles mit Hover-Overlay */
.ig-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: clamp(0.5rem, 1vw, 0.85rem);
    max-width: 880px;
    margin: 0 auto;
}

@media (max-width: 700px) {
    .ig-grid { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 420px) {
    .ig-grid { grid-template-columns: repeat(2, 1fr); }
}

.ig-tile {
    position: relative;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    border-radius: 4px;
    display: block;
    cursor: pointer;
    background: #ddd;
}

.ig-tile img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
}

.ig-tile:hover img {
    transform: scale(1.06);
}

.ig-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.55);
    color: #fff;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: 0.85rem 1rem;
    opacity: 0;
    transition: opacity 0.25s ease;
    pointer-events: none;
}

.ig-tile:hover .ig-overlay,
.ig-tile:focus-visible .ig-overlay {
    opacity: 1;
}

.ig-caption {
    font-size: 0.85rem;
    line-height: 1.3;
    margin-bottom: 0.5rem;
    text-align: left;
}

.ig-stats {
    display: flex;
    gap: 0.85rem;
    font-size: 0.78rem;
    font-weight: 600;
    color: #fff;
    text-align: left;
}

.ig-cta {
    display: flex;
    justify-content: center;
    margin-top: clamp(1.5rem, 3vw, 2.5rem);
}

.ig-cta-icon {
    width: 22px;
    height: 22px;
    filter: brightness(0) invert(1);
    margin-right: 0.5rem;
    vertical-align: middle;
}

@media (max-width: 600px) {
    .blog-grid {
        grid-template-columns: 1fr;
    }
}

/* ---------- GALERIE PAGE -------------------------------------- */
.galerie-section {
    padding: 0 0 clamp(3rem, 6vw, 5rem);
}

.gallery {
    column-count: 4;
    column-gap: 1rem;
}

.gallery-item {
    display: block;
    width: 100%;
    margin: 0 0 1rem;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
    border-radius: var(--radius-md);
    overflow: hidden;
    break-inside: avoid;
    position: relative;
    /* Klare Sichtbarkeit als Grund-Zustand */
    opacity: 1;
    transition: box-shadow 0.3s ease, transform 0.3s ease;
}

.gallery-item img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: var(--radius-md);
    transition: transform 0.4s ease, filter 0.3s ease;
    filter: saturate(0.96);
}

.gallery-item:hover img,
.gallery-item:focus-visible img {
    transform: scale(1.04);
    filter: saturate(1.15);
}

.gallery-item:hover,
.gallery-item:focus-visible {
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.18);
    outline: none;
}

/* Tastatur-Fokus: pinker Ring */
.gallery-item:focus-visible {
    box-shadow: 0 0 0 3px var(--c-pink), 0 12px 28px rgba(0, 0, 0, 0.18);
}

/* Sanftes Fade-In nur einmal auf der ganzen Galerie — kein Stagger
   mit transform mehr (verursachte in manchen Browsern Hover-Flicker). */
.gallery.reveal {
    opacity: 0;
    transition: opacity 0.6s ease;
}
.gallery.reveal.visible {
    opacity: 1;
}

@media (max-width: 1100px) { .gallery { column-count: 3; } }
@media (max-width: 720px)  { .gallery { column-count: 2; column-gap: 0.6rem; } .gallery-item { margin-bottom: 0.6rem; } }
@media (max-width: 380px)  { .gallery { column-count: 1; } }

/* Touch-Geräte: Hover-Effekte deaktivieren */
@media (hover: none) {
    .gallery-item:hover img { transform: none; filter: saturate(0.96); }
    .gallery-item:hover { box-shadow: none; }
}

/* ---------- LIGHTBOX ------------------------------------------ */
.lightbox {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.96);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
    padding: clamp(1rem, 4vw, 2.5rem);
    opacity: 0;
    transition: opacity 0.25s ease;
    overscroll-behavior: contain;
}

.lightbox.open {
    opacity: 1;
}

.lightbox[hidden] {
    display: none;
}

/* Body-Scroll-Lock wenn Lightbox offen */
body.lightbox-open {
    overflow: hidden;
}

.lb-figure {
    margin: 0;
    max-width: min(94vw, 1200px);
    max-height: 88vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
}

.lightbox img#lightbox-img {
    max-width: 100%;
    max-height: calc(88vh - 3rem);
    object-fit: contain;
    border-radius: var(--radius-md);
    box-shadow: 0 30px 60px rgba(0, 0, 0, 0.5);
    opacity: 0;
    transform: scale(0.96);
    transition: opacity 0.3s ease, transform 0.35s ease;
}

.lightbox img#lightbox-img.is-loaded {
    opacity: 1;
    transform: scale(1);
}

.lb-caption {
    color: rgba(255, 255, 255, 0.85);
    font-family: var(--font-body);
    font-size: clamp(0.85rem, 1.1vw, 1rem);
    text-align: center;
    max-width: 80vw;
    margin: 0;
}

.lb-counter {
    position: absolute;
    top: 1.25rem;
    left: 50%;
    transform: translateX(-50%);
    color: rgba(255, 255, 255, 0.65);
    font-family: var(--font-body);
    font-size: 0.85rem;
    letter-spacing: 0.08em;
    pointer-events: none;
}

/* Lightbox-Buttons (Close + Prev + Next) */
.lb-close, .lb-arrow {
    position: absolute;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.18);
    color: #fff;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    transition: background 0.2s ease, transform 0.15s ease,
        border-color 0.2s ease;
    -webkit-tap-highlight-color: transparent;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}

.lb-close { top: 1rem; right: 1rem; }
.lb-arrow.lb-prev { left: clamp(0.75rem, 2vw, 2rem); top: 50%; transform: translateY(-50%); }
.lb-arrow.lb-next { right: clamp(0.75rem, 2vw, 2rem); top: 50%; transform: translateY(-50%); }

.lb-close:hover, .lb-arrow:hover,
.lb-close:focus-visible, .lb-arrow:focus-visible {
    background: var(--c-pink);
    border-color: var(--c-pink);
    outline: none;
}

.lb-arrow:hover, .lb-arrow:focus-visible {
    transform: translateY(-50%) scale(1.05);
}

.lb-close:active, .lb-arrow:active { transform: scale(0.92); }
.lb-arrow.lb-prev:active { transform: translateY(-50%) scale(0.92); }
.lb-arrow.lb-next:active { transform: translateY(-50%) scale(0.92); }

.lb-close svg, .lb-arrow svg {
    width: 22px;
    height: 22px;
}

/* Mobile: kompaktere Buttons, näher am Rand */
@media (max-width: 600px) {
    .lb-close, .lb-arrow {
        width: 42px;
        height: 42px;
    }
    .lb-arrow.lb-prev { left: 0.5rem; }
    .lb-arrow.lb-next { right: 0.5rem; }
    .lb-counter { top: 0.75rem; font-size: 0.78rem; }
}

/* ---------- TEAM PAGE ----------------------------------------- */

/* Hero auf Tafel-Hintergrund mit Verlauf vom Bild ins Schwarz */
.team-hero {
    position: relative;
    background-color: #1f1f1f;
    background-image: url("assets/die-eisdielerei-eismanufaktur-header-hintergrund.webp");
    background-size: cover;
    background-position: center top;
    padding: 0 0 clamp(2rem, 5vw, 5rem);
    overflow: hidden;
    text-align: center;
}

/* Zungen-Icon rechts oben, bündig mit der pinken Trennlinie unter "DEINE EISDIELER" */
.hero-tongue {
    position: absolute;
    right: clamp(1rem, 4vw, 5rem);
    /* Top so positioniert, dass die Unterkante der Zunge mit der pinken Linie endet.
       Die Linie sitzt unter der Headline; Headline ist max ~10.5rem hoch.
       Wir referenzieren bottom relativ zur Section: */
    top: auto;
    bottom: clamp(8rem, 14vw, 16rem);
    width: clamp(80px, 11vw, 160px);
    height: auto;
    z-index: 5;
    transform: rotate(8deg);
    pointer-events: none;
    filter: drop-shadow(0 8px 14px rgba(0, 0, 0, 0.45));
    animation: tongueWiggle 5s ease-in-out infinite;
}

@keyframes tongueWiggle {
    0%, 100% { transform: rotate(6deg); }
    50% { transform: rotate(12deg); }
}

@media (max-width: 700px) {
    .hero-tongue {
        right: 0.75rem;
        bottom: clamp(6rem, 18vw, 9rem);
        width: 80px;
    }
}

.team-hero-img {
    width: 100%;
    height: auto;
    /* Auf Desktop wird die Höhe nur leicht gedeckelt, damit das Bild auf
       breiten Viewports nicht extrem hoch wird – aber die meisten Bildinhalte
       (Köpfe + Eis in den Händen) bleiben sichtbar. Bild wird vertikal mittig
       gehalten, sodass beidseitig nur ein Hauch beschnitten wird. */
    max-height: clamp(560px, 78vh, 760px);
    object-fit: cover;
    object-position: center 40%;
    display: block;
    margin: 0 auto;
    mask-image: linear-gradient(180deg, rgba(0, 0, 0, 1) 75%, rgba(0, 0, 0, 0) 100%);
    -webkit-mask-image: linear-gradient(180deg, rgba(0, 0, 0, 1) 75%, rgba(0, 0, 0, 0) 100%);
}

.team-hero-overlay {
    position: relative;
    margin-top: clamp(-6rem, -8vw, -10rem);
    padding: 0 1rem clamp(1rem, 3vw, 2.5rem);
    z-index: 2;
}

/* Headline auf Tafel: groß, fett, pink (h-page.brand Stil) */
.h-page.brand.team-hero-title {
    color: var(--c-pink);
    font-size: clamp(3rem, 9vw, 10.5rem);
    line-height: 0.92;
    margin: 0 0 clamp(0.5rem, 1.5vw, 1rem);
    text-shadow: 0 6px 24px rgba(0, 0, 0, 0.55);
    letter-spacing: -0.01em;
}

.team-hero-rule {
    border: none;
    height: 3px;
    background: var(--c-pink);
    width: min(80%, 1100px);
    margin: 0 auto clamp(1.5rem, 3vw, 2.5rem);
    box-shadow: 0 0 12px rgba(228, 0, 113, 0.5);
}

/* Mobile: Overlay-Text sitzt UNTER dem Headerbild (nicht darauf).
   Negative margin und Mask-Fade werden entfernt, damit das Comic-Bild
   nicht verdeckt wird. */
@media (max-width: 900px) {
    .team-hero-img {
        /* Mobile: Bild voll anzeigen, keine Deckelung, keine Maskierung */
        max-height: none;
        object-fit: initial;
        mask-image: none;
        -webkit-mask-image: none;
    }
    .team-hero-overlay {
        margin-top: clamp(1rem, 3vw, 2rem);
    }
    .hero-tongue {
        /* Zunge sitzt jetzt an der Unterkante des Bildes (relativ zur Section),
           nicht mehr über dem Text */
        bottom: auto;
        top: clamp(38vw, 48vw, 280px);
    }
}

/* Chefs-Sektion: Tordis & Markus auf der Tafel,
   sauberer Verlauf von dunkel (oben) nach weiß (unten) — Watermark direkt
   über den Team-Karten platziert */
.chefs {
    background: #fff;
    padding: clamp(2rem, 4vw, 3rem) 0 clamp(9rem, 15vw, 15rem);
    position: relative;
    overflow: hidden;
    color: #fff;
    margin-top: -1px;
    z-index: 1;
}

/* Tafel-Textur als ::before, mit sauberem Maskierungs-Verlauf nach unten zu Weiß */
.chefs::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: url("assets/die-eisdielerei-eismanufaktur-header-hintergrund.webp");
    background-color: #1f1f1f;
    background-size: cover;
    background-position: center top;
    background-repeat: no-repeat;
    mask-image: linear-gradient(180deg,
        #000 0%,
        #000 62%,
        rgba(0, 0, 0, 0) 92%);
    -webkit-mask-image: linear-gradient(180deg,
        #000 0%,
        #000 62%,
        rgba(0, 0, 0, 0) 92%);
    z-index: 0;
    pointer-events: none;
}

/* Watermark "eis.dieler" sitzt im weißen Bereich UNTER dem Tordis/Markus-Bild,
   gut lesbar im Zwischenraum zwischen Bild und ersten Team-Karten */
.chefs .watermark {
    z-index: 5;
    align-items: flex-end;
    padding-bottom: clamp(0.5rem, 1.2vw, 1.5rem);
    overflow: visible;
}

.chefs .watermark span {
    color: rgba(0, 0, 0, 0.16);
    font-size: clamp(4rem, 11vw, 11rem);
    line-height: 0.9;
}

/* Container und Inhalte über die Maske heben (aber unter Watermark) */
.chefs > .container {
    position: relative;
    z-index: 2;
}

.chefs-title {
    font-family: var(--font-display);
    font-weight: 400;
    text-transform: lowercase;
    color: var(--c-pink);
    text-align: center;
    margin: 0 0 0.6rem;
    font-size: clamp(1.5rem, 2.6vw, 2.4rem);
    line-height: 1.1;
    position: relative;
    z-index: 2;
}

.chefs-quote {
    text-align: center;
    font-style: italic;
    color: #f0f0f0;
    max-width: 760px;
    margin: 0 auto clamp(1.5rem, 3vw, 2.5rem);
    position: relative;
    z-index: 2;
    font-size: clamp(1rem, 1.2vw, 1.15rem);
}

.chefs-stage {
    position: relative;
    max-width: 760px;
    margin: 0 auto;
    z-index: 1;
    text-align: center;
}

/* Freigestelltes PNG sitzt direkt auf der Tafel — keine Box, kein Schatten,
   nur ein dezenter Drop-Shadow für Plastik */
.chefs-img {
    width: clamp(280px, 45vw, 580px);
    height: auto;
    display: block;
    margin: 0 auto;
    filter: drop-shadow(0 18px 28px rgba(0, 0, 0, 0.55));
    position: relative;
    z-index: 2;
}

.chefs-bubble {
    position: absolute;
    width: clamp(120px, 17vw, 200px);
    height: auto;
    z-index: 3;
    filter: drop-shadow(0 8px 16px rgba(0, 0, 0, 0.45));
    animation: bubbleFloat 4s ease-in-out infinite;
}

.chefs-bubble-left {
    left: -2%;
    top: 5%;
    transform: rotate(-6deg);
    animation-delay: 0.4s;
}

.chefs-bubble-right {
    right: -2%;
    top: 0%;
    transform: rotate(6deg);
}

@keyframes bubbleFloat {
    0%, 100% { transform: translateY(0) rotate(var(--rot, 0deg)); }
    50% { transform: translateY(-10px) rotate(var(--rot, 0deg)); }
}

.chefs-bubble-left { --rot: -6deg; }
.chefs-bubble-right { --rot: 6deg; }

.chefs-megafon {
    position: absolute;
    right: -2%;
    bottom: -4%;
    width: clamp(80px, 9vw, 130px);
    z-index: 4;
    transform: rotate(8deg);
    filter: drop-shadow(0 6px 12px rgba(0, 0, 0, 0.25));
}

@media (max-width: 700px) {
    .chefs-bubble {
        width: 38%;
    }
    .chefs-bubble-left { left: 2%; top: 5%; }
    .chefs-bubble-right { right: 2%; top: 5%; }
    .chefs-megafon { width: 70px; right: 0; bottom: -5%; }
}

/* Team-Grid: Karten alternieren Bild links/rechts */
.team-section {
    padding: clamp(1.5rem, 3vw, 3rem) 0 clamp(3rem, 5vw, 5rem);
    background: #fff;
    position: relative;
    overflow: visible; /* body hat overflow-x:hidden, Deko darf hier raus */
    z-index: 2; /* über chefs (z:1), damit Deko nicht von Chefs verdeckt wird */
}

/* Dekorative PNGs ragen von links bzw. rechts in die Sektion */
.team-deco {
    position: absolute;
    pointer-events: none;
    z-index: 10;
    user-select: none;
}

/* Hörnchen links: ragt zur Hälfte rein, oben über die Sektionskante hinausragend */
.team-deco-cone {
    left: clamp(-9rem, -7vw, -4rem);
    top: clamp(-6rem, -8vw, -8rem);
    width: clamp(180px, 22vw, 320px);
    height: auto;
    transform: rotate(-8deg);
    filter: drop-shadow(0 16px 28px rgba(0, 0, 0, 0.18));
    animation: deco-cone-wobble 6s ease-in-out infinite;
}

@keyframes deco-cone-wobble {
    0%, 100% { transform: rotate(-8deg); }
    50% { transform: rotate(-3deg); }
}

/* Megaphon rechts: ragt zur Hälfte rein, auf Höhe der Maren-Box (Reihe 3 → ca. 60% der Sektionshöhe) */
.team-deco-megafon {
    right: clamp(-7rem, -7vw, -4rem);
    top: 58%;
    width: clamp(150px, 17vw, 240px);
    height: auto;
    transform: rotate(-8deg);
    filter: drop-shadow(0 14px 24px rgba(0, 0, 0, 0.2));
    animation: deco-megafon-pulse 4s ease-in-out infinite;
}

@keyframes deco-megafon-pulse {
    0%, 100% { transform: rotate(-8deg) scale(1); }
    50% { transform: rotate(-4deg) scale(1.05); }
}

/* Container muss über der Deko liegen */
.team-section .container {
    position: relative;
    z-index: 1;
}

/* Auf kleinen Screens — Deko verkleinern oder ausblenden */
@media (max-width: 700px) {
    .team-deco-cone {
        width: 110px;
        left: -2.5rem;
        top: -2rem;
    }
    .team-deco-megafon {
        width: 90px;
        right: -1.5rem;
        top: 65%;
    }
}

@media (max-width: 460px) {
    .team-deco {
        display: none;
    }
}

.team-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: clamp(1.5rem, 3vw, 2.5rem);
    margin-top: 0;
}

.team-card {
    display: grid;
    grid-template-columns: minmax(0, 280px) 1fr;
    align-items: center;
    background: #fff;
    padding: 0;
    border-radius: 18px;
    border: 1px solid #e8e8e8;
    overflow: visible;
    transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
    text-align: left;
    position: relative;
    min-height: 220px;
}

.team-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 16px 30px rgba(0, 0, 0, 0.07);
    border-color: rgba(228, 0, 113, 0.3);
}

.team-card--right {
    grid-template-columns: 1fr minmax(0, 280px);
}

.team-card--full {
    grid-column: 1 / -1;
    max-width: 720px;
    margin: 0 auto;
    width: 100%;
}

.team-photo {
    height: clamp(220px, 24vw, 320px);
    width: auto;
    max-width: 100%;
    display: block;
    align-self: end;
    object-fit: contain;
    object-position: center bottom;
}

.team-card--left .team-photo {
    justify-self: start;
}

.team-card--right .team-photo {
    justify-self: end;
}

.team-info {
    padding: 1.5rem clamp(1.25rem, 2vw, 2rem);
}

.team-name {
    font-family: var(--font-display);
    font-weight: 400;
    font-size: clamp(1.3rem, 1.9vw, 1.85rem);
    text-transform: lowercase;
    color: var(--c-pink);
    letter-spacing: 0;
    margin-bottom: 0.85rem;
    line-height: 1;
}

.team-since {
    font-size: 0.78rem;
    color: var(--c-text-soft);
    margin: 0.25rem 0 1rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.team-quote {
    font-size: clamp(0.9rem, 1.05vw, 1rem);
    line-height: 1.55;
    margin-bottom: 1rem;
    color: var(--c-text);
    position: relative;
    padding-left: 1rem;
    font-style: normal;
}

.team-quote::before {
    content: "„";
    position: absolute;
    left: -0.1rem;
    top: -0.4rem;
    font-size: 2rem;
    color: var(--c-pink);
    opacity: 0.4;
    line-height: 1;
    font-family: var(--font-body);
}

.team-meta {
    font-size: 0.95rem;
    line-height: 1.6;
    color: var(--c-text);
}

.team-meta strong {
    font-weight: 700;
}

.team-fav {
    color: var(--c-pink);
    font-size: 0.85rem;
    font-weight: 600;
}

@media (max-width: 800px) {
    .team-grid {
        grid-template-columns: 1fr;
    }
    .team-card,
    .team-card--right {
        grid-template-columns: 1fr;
        text-align: center;
    }
    .team-card--full { max-width: none; }
    .team-photo {
        height: 220px;
        max-width: none;
        width: auto;
        margin: 0 auto;
        justify-self: center !important;
    }
    .team-quote {
        text-align: left;
    }
}

/* ---------- STORY PAGE (komplett neu, Tafel + Timeline) ------- */

/* Hero mit Bild oben, Tafel unten, Headline überlagert */
.story-hero {
    position: relative;
    background-color: #1f1f1f;
    background-image: url("assets/die-eisdielerei-eismanufaktur-header-hintergrund.webp");
    background-size: cover;
    background-position: center top;
    padding: 0 0 clamp(2rem, 5vw, 4rem);
    overflow: hidden;
    text-align: center;
    color: #fff;
}

.story-hero-img {
    width: 100%;
    height: auto;
    /* Bild ist eher panoramisch (ratio 2.03), nur leichte Höhendeckelung,
       damit auf breiten Viewports nicht alles zu groß wirkt. */
    max-height: clamp(460px, 65vh, 640px);
    object-fit: cover;
    object-position: center 40%;
    display: block;
    margin: 0 auto;
    mask-image: linear-gradient(180deg, rgba(0, 0, 0, 1) 70%, rgba(0, 0, 0, 0) 100%);
    -webkit-mask-image: linear-gradient(180deg, rgba(0, 0, 0, 1) 70%, rgba(0, 0, 0, 0) 100%);
}

.story-hero-overlay {
    position: relative;
    margin-top: clamp(-7rem, -10vw, -12rem);
    padding: 0 1.5rem;
    z-index: 2;
}

.h-page.brand.story-hero-title {
    color: var(--c-pink);
    font-size: clamp(3rem, 9vw, 10.5rem);
    line-height: 0.9;
    margin: 0 0 0.5rem;
    text-shadow: 0 6px 24px rgba(0, 0, 0, 0.55);
    letter-spacing: -0.01em;
}

.story-hero-rule {
    border: none;
    height: 3px;
    background: var(--c-pink);
    width: min(80%, 1100px);
    margin: 0 auto clamp(1.5rem, 3vw, 2.5rem);
    box-shadow: 0 0 12px rgba(228, 0, 113, 0.5);
}

.story-hero-sub {
    font-family: var(--font-display);
    font-weight: 400;
    text-transform: lowercase;
    color: var(--c-pink);
    font-size: clamp(1.5rem, 2.6vw, 2.4rem);
    line-height: 1.1;
    margin: 0 0 clamp(1.5rem, 3vw, 2rem);
}

.story-hero-text {
    color: #f0f0f0;
    max-width: 820px;
    margin: 0 auto;
    font-size: clamp(0.95rem, 1.05vw, 1.05rem);
    line-height: 1.6;
}

/* Mobile: Overlay-Text sitzt UNTER dem Headerbild (nicht darauf).
   Negative margin und Mask-Fade werden entfernt, damit das Storefront-Bild
   nicht verdeckt wird. */
@media (max-width: 900px) {
    .story-hero-img {
        /* Mobile: Bild voll anzeigen, keine Deckelung, keine Maskierung */
        max-height: none;
        object-fit: initial;
        mask-image: none;
        -webkit-mask-image: none;
    }
    .story-hero-overlay {
        margin-top: clamp(1rem, 3vw, 2rem);
    }
}

/* Lebenslauf-Sektion mit Watermark */
.story-cv {
    background: var(--c-bg-soft);
    padding: clamp(3rem, 6vw, 5rem) 0;
    position: relative;
    overflow: hidden;
}

.story-cv .watermark {
    z-index: 0;
}

.story-cv .watermark span {
    color: rgba(0, 0, 0, 0.05);
}

.story-cv-title {
    position: relative;
    z-index: 1;
    margin-bottom: 0.5rem;
    color: var(--c-pink);
}

.story-cv-name {
    text-align: center;
    color: var(--c-text-soft);
    margin: 0 0 clamp(2rem, 4vw, 3rem);
    font-size: clamp(1rem, 1.2vw, 1.15rem);
    position: relative;
    z-index: 1;
}

/* Lebenslauf — zweispaltiger Fließtext (CSS Multi-Column) */
.story-cv-text {
    column-count: 2;
    column-gap: clamp(2rem, 4vw, 3.5rem);
    max-width: 1100px;
    margin: 0 auto;
    position: relative;
    z-index: 1;
    line-height: 1.7;
    font-size: clamp(0.95rem, 1.05vw, 1.05rem);
    color: var(--c-text);
}

.story-cv-text p {
    margin: 0 0 1.25rem;
    break-inside: avoid;
}

.story-cv-text p:first-child {
    margin-top: 0;
}

.story-cv-text p:last-child {
    margin-bottom: 0;
}

@media (max-width: 700px) {
    .story-cv-text {
        column-count: 1;
    }
}

/* Meilensteine — interaktive Timeline auf Tafel-Hintergrund */
.story-milestones {
    background: #1f1f1f;
    background-image: url("assets/die-eisdielerei-eismanufaktur-header-hintergrund.webp");
    background-size: cover;
    background-position: center;
    padding: clamp(3rem, 6vw, 5rem) 0 clamp(4rem, 7vw, 6rem);
    color: #fff;
    position: relative;
}

.story-milestones-title {
    color: var(--c-pink);
    margin-bottom: clamp(2rem, 4vw, 3.5rem);
}

/* Mobile-Navigation mit Pfeilen — auf Desktop unsichtbar, Pfeile blieben weg,
   nur das große aktive Jahr zentriert */
.ms-mobile-nav {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: clamp(1rem, 3vw, 2rem);
    margin: 0 auto clamp(1.5rem, 3vw, 2.5rem);
}

.ms-arrow {
    display: none; /* nur auf Mobile sichtbar */
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: var(--c-pink);
    color: #fff;
    border: none;
    cursor: pointer;
    align-items: center;
    justify-content: center;
    transition: transform 0.2s ease, background 0.2s ease;
    box-shadow: 0 4px 14px rgba(228, 0, 113, 0.4);
}

.ms-arrow:hover,
.ms-arrow:focus-visible {
    background: var(--c-pink-dark, #c00060);
    transform: scale(1.08);
}

.ms-arrow:active {
    transform: scale(0.95);
}

.ms-arrow:disabled {
    opacity: 0.35;
    cursor: not-allowed;
    box-shadow: none;
}

.ms-arrow:disabled:hover {
    background: var(--c-pink);
    transform: none;
}

.ms-arrow svg {
    display: block;
}

/* Großes Aktiv-Jahr (Roboto, weiß, prominent) */
.ms-active-year {
    text-align: center;
    color: #fff;
    font-family: var(--font-body);
    font-weight: 400;
    font-size: clamp(2.75rem, 4.5vw, 4.5rem);
    line-height: 1;
    letter-spacing: 0;
    margin: 0;
    min-width: clamp(7rem, 14vw, 10rem);
}

/* Wrapper für Timeline (für Scroll-Container auf Mobile) */
.ms-timeline-wrap {
    position: relative;
    overflow-x: auto;
    overflow-y: visible;
    scrollbar-width: none;
    -ms-overflow-style: none;
    -webkit-overflow-scrolling: touch;
    padding: clamp(2.75rem, 4vw, 4rem) 0 clamp(2rem, 3vw, 3rem);
}

.ms-timeline-wrap::-webkit-scrollbar {
    display: none;
}

.ms-timeline {
    position: relative;
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    max-width: 1100px;
    min-width: 720px;
    margin: 0 auto;
    padding: 0 clamp(1rem, 2vw, 1.5rem);
}

/* Horizontale weiße Linie — durchläuft die Mitte aller Punkte */
.ms-track {
    position: absolute;
    left: clamp(1rem, 2vw, 1.5rem);
    right: clamp(1rem, 2vw, 1.5rem);
    top: 50%;
    height: 2px;
    background: rgba(255, 255, 255, 0.7);
    transform: translateY(-1px);
    pointer-events: none;
    z-index: 1;
}

/* Jahr-Buttons: enthalten den Punkt, Label sitzt darüber */
.ms-year {
    position: relative;
    font-family: var(--font-display);
    font-weight: 400;
    font-size: clamp(1.1rem, 1.45vw, 1.55rem);
    color: var(--c-pink);
    background: transparent;
    border: none;
    padding: 0;
    cursor: pointer;
    flex-shrink: 0;
    transition: transform 0.25s ease;
    white-space: nowrap;
    width: clamp(40px, 4vw, 52px);
    height: clamp(40px, 4vw, 52px);
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    z-index: 2; /* über der weißen Linie */
}

/* Jahr-Label oberhalb des Punkts — Naughty Monster, pink */
.ms-year::before {
    content: attr(data-year);
    position: absolute;
    left: 50%;
    bottom: 100%;
    transform: translateX(-50%);
    margin-bottom: clamp(0.6rem, 1vw, 1rem);
    font-family: var(--font-display);
    font-weight: 400;
    font-size: clamp(1.1rem, 1.45vw, 1.55rem);
    color: var(--c-pink);
    line-height: 1;
    letter-spacing: 0.01em;
    white-space: nowrap;
}

/* Punkt: solider pinker Kreis, sitzt zentriert auf der weißen Linie */
.ms-year::after {
    content: "";
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: var(--c-pink);
    box-sizing: border-box;
    box-shadow: 0 2px 6px rgba(228, 0, 113, 0.35);
    transition: transform 0.25s cubic-bezier(0.34, 1.56, 0.64, 1),
                width 0.25s ease, height 0.25s ease, box-shadow 0.25s ease;
}

.ms-year:hover::after {
    transform: scale(1.18);
}

/* Aktives Jahr: deutlich größerer, voll-gefüllter pinker Kreis mit Glow-Halo */
.ms-year.active::after {
    width: 36px;
    height: 36px;
    background: var(--c-pink);
    box-shadow: 0 0 0 6px rgba(228, 0, 113, 0.25),
                0 6px 16px rgba(228, 0, 113, 0.45);
}

.ms-year.active {
    z-index: 3;
}

/* Detail-Karte unter der Timeline — Text-Only */
.ms-card {
    max-width: 760px;
    margin: 0 auto;
    background: #fff;
    color: var(--c-text);
    border-radius: 18px;
    padding: clamp(1.75rem, 3vw, 2.5rem) clamp(1.75rem, 3.5vw, 3rem);
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.25);
    animation: msCardIn 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
}

@keyframes msCardIn {
    from { opacity: 0; transform: translateY(12px) scale(0.98); }
    to   { opacity: 1; transform: translateY(0) scale(1); }
}

.ms-card-inner {
    text-align: left;
}

.ms-card-year-big {
    display: inline-block;
    background: var(--c-pink);
    color: #fff;
    font-family: var(--font-display);
    font-size: clamp(1.1rem, 1.4vw, 1.35rem);
    padding: 0.35rem 1rem;
    border-radius: var(--radius-pill);
    line-height: 1;
    margin-bottom: 1rem;
}

.ms-card-title {
    font-family: var(--font-display);
    font-weight: 400;
    color: var(--c-pink);
    text-transform: lowercase;
    font-size: clamp(1.5rem, 2.4vw, 2.1rem);
    line-height: 1.1;
    margin: 0 0 1.25rem;
}

.ms-card-bullets {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}

.ms-card-bullets li {
    position: relative;
    padding-left: 1.4rem;
    font-size: clamp(0.95rem, 1.05vw, 1.02rem);
    line-height: 1.55;
    color: var(--c-text);
}

.ms-card-bullets li::before {
    content: "▸";
    position: absolute;
    left: 0;
    top: 0;
    color: var(--c-pink);
    font-size: 1em;
    line-height: 1.55;
}

/* Mobile: Timeline ausblenden, stattdessen Pfeile zum Durchblättern */
@media (max-width: 800px) {
    .ms-timeline-wrap {
        display: none;
    }
    .ms-arrow {
        display: inline-flex;
    }
    .ms-mobile-nav {
        margin-bottom: clamp(2rem, 4vw, 3rem);
    }
    .ms-active-year {
        font-size: clamp(2.5rem, 9vw, 3.5rem);
    }
    .ms-card {
        padding: 1.5rem 1.25rem;
    }
    .ms-card-title {
        font-size: clamp(1.3rem, 5vw, 1.7rem);
    }
}

/* Alte Story-Section bleibt für Rückwärtskompatibilität */
.story-section {
    padding: clamp(3rem, 7vw, 5rem) 0;
}

.story-section p {
    max-width: 820px;
    margin: 0 auto 1.25rem;
    color: var(--c-text);
    line-height: 1.75;
}

.timeline {
    position: relative;
    max-width: 880px;
    margin: 3rem auto 0;
    padding-left: 2.5rem;
}

.timeline::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 4px;
    background: var(--c-pink);
    border-radius: 2px;
}

.tl-item {
    position: relative;
    padding: 1rem 0 1rem 2rem;
    transition: transform 0.25s;
}

.tl-item:hover {
    transform: translateX(8px);
}

.tl-item::before {
    content: "";
    position: absolute;
    left: -10px;
    top: 1.5rem;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: var(--c-pink);
    border: 4px solid #fff;
    box-shadow: 0 0 0 2px var(--c-pink);
    transition: transform 0.3s;
}

.tl-item:hover::before {
    transform: scale(1.3);
}

.tl-year {
    font-family: var(--font-display);
    font-size: 2rem;
    color: var(--c-pink);
    line-height: 1;
    margin-bottom: 0.25rem;
    font-weight: 400;
}

/* ---------- TWO-COL HELPER ----------------------------------- */
.two-col-block {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
    align-items: center;
}

@media (max-width: 800px) {
    .two-col-block {
        grid-template-columns: 1fr;
        text-align: center;
    }
}
