/* ═══════════════════════════════════════════════
   PSF TAUNUS — Haupt-Stylesheet
   Version: 1.0.0
   ═══════════════════════════════════════════════ */

/* ─── CSS-Variablen ─────────────────────────── */
:root {
    /* Logo-Farben: Taunus Paintball */
    --clr-bg:        #080d14;
    --clr-bg-2:      #0d1421;
    --clr-bg-3:      #131e2e;
    --clr-text:      #f0f1f1;
    --clr-muted:     rgba(240,241,241,0.4);
    --clr-border:    rgba(255,255,255,0.08);

    /* Akzentfarben aus Logo */
    --clr-gold:      #de440f;
    --clr-gold-dim:  rgba(222,68,15,0.12);
    --clr-green:     #4dbf4d;
    --clr-green-dim: rgba(77,191,77,0.12);
    --clr-blue:      #2f7cb0;
    --clr-blue-dim:  rgba(47,124,176,0.12);

    /* Section-Hintergründe */
    --bg-adult:      #0d1218;
    --bg-kids:       #070f08;
    --bg-liga:       #080d18;
    --bg-cta:        #0a0f18;

    /* Typografie */
    --font-heading:  'Bebas Neue', 'Arial Black', Arial, sans-serif;
    --font-body:     'Inter', Arial, sans-serif;

    /* Abstände */
    --space-xs:  0.5rem;
    --space-sm:  1rem;
    --space-md:  2rem;
    --space-lg:  4rem;
    --space-xl:  6rem;

    /* Layout */
    --max-width: 1140px;
    --nav-h:     60px;
    --radius:    4px;

    /* Animationen */
    --ease-out: cubic-bezier(0.4, 0, 0.2, 1);
    --ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* ─── Reset & Basis ─────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html, body { overflow-x: hidden; width: 100%; max-width: 100%; }

/* Unterseiten: Abstand für fixe Nav */
body:not(.home) .psfm-kalender,
body:not(.home) .psfm-auth-wrap,
body:not(.home) .psfm-member-wrap {
    padding-top: 80px;
}

html {
    font-size: 16px;
    scroll-behavior: smooth;
    -webkit-text-size-adjust: 100%;
}

body {
    font-family: var(--font-body);
    background: var(--clr-bg);
    color: var(--clr-text);
    line-height: 1.65;
    overflow-x: hidden;
}

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

a { color: inherit; text-decoration: none; }

ul[role="list"] { list-style: none; }

/* Fokus für Tastaturnavigation */
:focus-visible {
    outline: 2px solid var(--clr-gold);
    outline-offset: 3px;
}

/* ─── Utility ───────────────────────────────── */
.container {
    width: 100%;
    max-width: var(--max-width);
    margin-inline: auto;
    padding-inline: var(--space-md);
}

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


/* ══════════════════════════════════════════════
   NAVIGATION
══════════════════════════════════════════════ */
.site-header { position: relative; z-index: 200; }

.nav {
    position: fixed;
    top: 0; left: 0; right: 0;
    height: var(--nav-h);
    z-index: 200;
    background: rgba(8,8,8,0.96);
    border-bottom: 1px solid var(--clr-border);
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 var(--space-md);
    transition: background 0.3s var(--ease-out),
                border-color 0.3s var(--ease-out);
}

.nav--scrolled {
    background: rgba(8,8,8,0.99);
    border-bottom-color: rgba(212,168,67,0.15);
}

/* Logo */
.nav__logo-text {
    font-family: var(--font-heading);
    font-size: 1.4rem;
    letter-spacing: 0.1em;
    color: var(--clr-gold);
}
.nav__logo-text em { font-style: normal; color: var(--clr-text); }

/* Nav Links */
.nav__links {
    display: flex;
    align-items: center;
    gap: 2rem;
}

.nav__link {
    font-size: 0.7rem;
    font-weight: 500;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--clr-muted);
    padding-bottom: 2px;
    border-bottom: 1px solid transparent;
    transition: color 0.2s, border-color 0.2s;
}

.nav__link:hover,
.nav__link.is-active {
    color: var(--clr-gold);
    border-bottom-color: var(--clr-gold);
}

/* CTA Button Nav */
.nav__cta {
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    background: var(--clr-gold);
    color: #000;
    padding: 7px 16px;
    border-radius: var(--radius);
    transition: opacity 0.2s;
}
.nav__cta:hover { opacity: 0.85; }

/* Hamburger (Mobile) */
.nav__burger {
    display: none;
    flex-direction: column;
    gap: 5px;
    background: none;
    border: none;
    cursor: pointer;
    padding: 4px;
}
.nav__burger span {
    display: block;
    width: 22px;
    height: 2px;
    background: var(--clr-text);
    border-radius: 1px;
    transition: transform 0.3s var(--ease-out), opacity 0.3s;
}
.nav__burger.is-open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav__burger.is-open span:nth-child(2) { opacity: 0; }
.nav__burger.is-open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* Mobile Menu */
.mobile-menu {
    position: fixed;
    top: var(--nav-h);
    left: 0; right: 0;
    background: rgba(8,8,8,0.98);
    border-bottom: 1px solid var(--clr-border);
    padding: var(--space-md);
    display: none;
    flex-direction: column;
    gap: var(--space-sm);
    z-index: 199;
    transform: translateY(-8px);
    opacity: 0;
    transition: opacity 0.25s, transform 0.25s;
}
.mobile-menu.is-open {
    display: flex;
    opacity: 1;
    transform: translateY(0);
}
.mobile-menu__link {
    font-size: 0.85rem;
    font-weight: 500;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--clr-muted);
    padding: var(--space-xs) 0;
    border-bottom: 1px solid var(--clr-border);
    transition: color 0.2s;
}
.mobile-menu__link:hover { color: var(--clr-gold); }
.mobile-menu__link--cta {
    color: var(--clr-gold);
    border-bottom-color: transparent;
}


/* ══════════════════════════════════════════════
   HERO
══════════════════════════════════════════════ */
.hero {
    position: relative;
    min-height: 100dvh;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: calc(var(--nav-h) + var(--space-md)) var(--space-md) var(--space-md);
    overflow: hidden;
    background: #060606;
}

/* Video Hintergrund */
.hero__video-wrap {
    position: absolute;
    inset: 0;
    z-index: 0;
}
.hero__video {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.hero__video-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,0.65);
}

/* Splatter-Elemente */
.hero__splatters {
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    overflow: hidden;
}

.splat {
    position: absolute;
    opacity: 0;
    animation: splatIn 0.6s var(--ease-spring) forwards;
}

.splat--1 {
    color: var(--clr-gold);
    width: 120px;
    top: 10%;
    left: 4%;
    transform: rotate(18deg);
    opacity: 0.15;
    animation-delay: 0.2s;
}
.splat--2 {
    color: #aaff00;
    width: 80px;
    top: 14%;
    right: 8%;
    transform: rotate(-24deg);
    opacity: 0.08;
    animation-delay: 0.4s;
}
.splat--3 {
    color: var(--clr-gold);
    width: 65px;
    bottom: 18%;
    left: 10%;
    transform: rotate(42deg);
    opacity: 0.14;
    animation-delay: 0.6s;
}
.splat--4 {
    color: var(--clr-green);
    width: 90px;
    bottom: 12%;
    right: 14%;
    transform: rotate(-12deg);
    opacity: 0.1;
    animation-delay: 0.8s;
}

@keyframes splatIn {
    from { transform: scale(0) rotate(var(--rot, 15deg)); opacity: 0; }
    60%  { transform: scale(1.15) rotate(var(--rot, 15deg)); }
    to   { transform: scale(1) rotate(var(--rot, 15deg)); }
}

/* Hero Content */
.hero__content {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-sm);
    max-width: 700px;
}

/* Badge (Achteck-Wappen) */
.hero__badge {
    width: 76px;
    height: 76px;
    clip-path: polygon(30% 0%,70% 0%,100% 30%,100% 70%,70% 100%,30% 100%,0% 70%,0% 30%);
    background: var(--clr-bg-2);
    border: 2px solid var(--clr-gold);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: var(--space-sm);
    animation: fadeUp 0.7s 0.2s var(--ease-out) both;
}
.hero__badge span {
    font-family: var(--font-heading);
    font-size: 1.5rem;
    letter-spacing: 0.08em;
    color: var(--clr-gold);
}

.hero__title {
    font-family: var(--font-heading);
    font-size: clamp(3.5rem, 10vw, 7rem);
    letter-spacing: 0.04em;
    line-height: 1;
    color: var(--clr-text);
    animation: fadeUp 0.7s 0.35s var(--ease-out) both;
}
.hero__title em { color: var(--clr-gold); font-style: normal; }

.hero__sub {
    font-size: 0.8rem;
    letter-spacing: 0.2em;
    color: var(--clr-muted);
    text-transform: uppercase;
    animation: fadeUp 0.7s 0.5s var(--ease-out) both;
}
.hero__sub-dot { margin-inline: 0.5em; }

.hero__actions {
    display: flex;
    gap: var(--space-sm);
    flex-wrap: wrap;
    justify-content: center;
    margin-top: var(--space-xs);
    animation: fadeUp 0.7s 0.65s var(--ease-out) both;
}

/* Scroll-Hinweis */
.hero__scroll {
    position: absolute;
    bottom: var(--space-md);
    left: 50%;
    transform: translateX(-50%);
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    font-size: 0.65rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.18);
    animation: bob 2s ease infinite;
}
.hero__scroll-arrow { color: inherit; }

@keyframes bob {
    0%, 100% { transform: translateX(-50%) translateY(0); }
    50%       { transform: translateX(-50%) translateY(6px); }
}


/* ══════════════════════════════════════════════
   PORTALE (3 Kacheln)
══════════════════════════════════════════════ */
.portals {
    display: flex;
    min-height: 220px;
    border-top: 1px solid var(--clr-border);
}

.portal {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: var(--space-md) var(--space-sm);
    cursor: pointer;
    transition: flex 0.4s var(--ease-out);
    position: relative;
    overflow: hidden;
    border-right: 1px solid var(--clr-border);
}
.portal:last-child { border-right: none; }
.portal:hover { flex: 2; }

.portal__icon {
    width: 48px;
    height: 48px;
    border-radius: var(--radius);
    border: 1.5px solid;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto var(--space-sm);
    transition: transform 0.3s var(--ease-spring);
}
.portal:hover .portal__icon { transform: scale(1.08); }

.portal__name {
    font-family: var(--font-heading);
    font-size: 1.4rem;
    letter-spacing: 0.08em;
    margin-bottom: 4px;
}
.portal__desc {
    font-size: 0.7rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--clr-muted);
    line-height: 1.7;
}
.portal__arrow {
    position: absolute;
    bottom: 14px;
    font-size: 0.7rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    opacity: 0;
    transition: opacity 0.2s;
}
.portal:hover .portal__arrow { opacity: 0.55; }

/* Varianten */
.portal--adult { background: var(--bg-adult); }
.portal--adult .portal__icon, .portal--adult .portal__name,
.portal--adult .portal__arrow { color: var(--clr-gold); border-color: var(--clr-gold); }

.portal--kids { background: var(--bg-kids); }
.portal--kids .portal__icon, .portal--kids .portal__name,
.portal--kids .portal__arrow { color: var(--clr-green); border-color: var(--clr-green); }

.portal--liga { background: var(--bg-liga); }
.portal--liga .portal__icon, .portal--liga .portal__name,
.portal--liga .portal__arrow { color: var(--clr-blue); border-color: var(--clr-blue); }


/* ══════════════════════════════════════════════
   SEKTIONEN (Erwachsene / Kids / Liga)
══════════════════════════════════════════════ */
.section {
    padding: var(--space-xl) 0;
}

.section__inner {
    max-width: var(--max-width);
    margin-inline: auto;
    padding-inline: var(--space-md);
}
.section__inner--center { text-align: center; }

/* Sektion-Header */
.section__header { margin-bottom: var(--space-lg); }

.section__label {
    display: inline-block;
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    padding: 3px 10px;
    border-radius: var(--radius);
    margin-bottom: var(--space-sm);
}
.section__label--gold  { background: var(--clr-gold-dim);  color: var(--clr-gold);  }
.section__label--green { background: var(--clr-green-dim); color: var(--clr-green); }
.section__label--blue  { background: var(--clr-blue-dim);  color: var(--clr-blue);  }

.section__title {
    font-family: var(--font-heading);
    font-size: clamp(2rem, 5vw, 3.5rem);
    letter-spacing: 0.04em;
    line-height: 1.05;
    color: var(--clr-text);
}

/* Grid-Layouts */
.section__grid {
    display: grid;
    gap: var(--space-md);
    margin-bottom: var(--space-md);
}
.section__grid--2       { grid-template-columns: 1fr 1fr; }
.section__grid--3       { grid-template-columns: repeat(3, 1fr); }
.section__grid--reverse { direction: rtl; }
.section__grid--reverse > * { direction: ltr; }

/* Bild-Bereich */
.section__media { aspect-ratio: 4/3; }
.section__img   { width: 100%; height: 100%; object-fit: cover; border-radius: var(--radius); }
.section__img-placeholder {
    width: 100%; height: 100%;
    background: var(--clr-bg-3);
    border: 1px dashed var(--clr-border);
    border-radius: var(--radius);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.7rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--clr-muted);
}

/* Text-Spalte */
.section__text-col { display: flex; flex-direction: column; gap: var(--space-sm); }

/* Sektion-Akzentlinien oben */
.section--adult { background: var(--bg-adult); border-top: 2px solid var(--clr-gold);  }
.section--kids  { background: var(--bg-kids);  border-top: 2px solid var(--clr-green); }
.section--liga  { background: var(--bg-liga);  border-top: 2px solid var(--clr-blue);  }
.section--cta   { background: var(--bg-cta);   border-top: 1px solid var(--clr-border); }


/* ══════════════════════════════════════════════
   CARDS
══════════════════════════════════════════════ */
.card {
    background: rgba(255,255,255,0.025);
    border: 1px solid var(--clr-border);
    border-radius: var(--radius);
    padding: var(--space-sm) 1.25rem;
    transition: border-color 0.2s;
}
.card--gold:hover  { border-color: rgba(212,168,67,0.35); }
.card--green:hover { border-color: rgba(77,191,77,0.35);  }
.card--blue:hover  { border-color: rgba(90,159,212,0.35); }

.card__title {
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    margin-bottom: 6px;
}
.card--gold  .card__title { color: var(--clr-gold);  }
.card--green .card__title { color: var(--clr-green); }
.card--blue  .card__title { color: var(--clr-blue);  }

.card__body {
    font-size: 0.82rem;
    color: var(--clr-muted);
    line-height: 1.65;
}

.card__link {
    display: inline-block;
    margin-top: 8px;
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--clr-gold);
    transition: opacity 0.2s;
}
.card--green .card__link { color: var(--clr-green); }
.card--blue  .card__link { color: var(--clr-blue);  }
.card__link:hover { opacity: 0.75; }


/* ══════════════════════════════════════════════
   BUTTONS
══════════════════════════════════════════════ */
.btn {
    display: inline-block;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    padding: 10px 22px;
    border-radius: var(--radius);
    transition: opacity 0.2s, transform 0.15s var(--ease-spring);
    cursor: pointer;
    border: none;
}
.btn:hover { opacity: 0.88; transform: translateY(-1px); }
.btn--primary { background: var(--clr-gold);  color: #000; }
.btn--outline  { background: transparent; color: var(--clr-gold); border: 1px solid var(--clr-gold); }
.btn--large    { padding: 14px 32px; font-size: 0.85rem; }


/* ══════════════════════════════════════════════
   LIGA TABLE
══════════════════════════════════════════════ */
.liga-table-wrap { overflow-x: auto; }

.liga-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.85rem;
}
.liga-table th {
    font-size: 0.65rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--clr-muted);
    padding: 6px 10px;
    text-align: left;
    border-bottom: 1px solid var(--clr-border);
}
.liga-table td {
    padding: 8px 10px;
    border-bottom: 1px solid rgba(255,255,255,0.04);
    color: rgba(240,236,224,0.7);
}
.liga-table tr:first-child td { padding-top: 12px; }
.liga-table td:first-child { color: var(--clr-muted); font-size: 0.75rem; }
.liga-table__own-row td { background: var(--clr-blue-dim); }
.liga-table__own-row td:last-child { color: var(--clr-blue); font-weight: 700; }
.liga-table__badge {
    font-size: 0.65rem;
    color: var(--clr-blue);
    margin-left: 4px;
}

/* Subsection Title */
.subsection__title {
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--clr-muted);
    margin-bottom: var(--space-sm);
}

/* Termine */
.termine-list { display: flex; flex-direction: column; gap: 8px; }
.termin-card { padding: 10px 14px; }
.termin-card__date {
    display: inline-block;
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--clr-blue);
    margin-bottom: 3px;
}

/* Liga Expand */
.liga__expand { margin-top: var(--space-md); }

.expand-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: var(--font-body);
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--clr-muted);
    background: none;
    border: 1px solid var(--clr-border);
    border-radius: var(--radius);
    padding: 8px 16px;
    cursor: pointer;
    transition: border-color 0.2s, color 0.2s;
}
.expand-btn:hover,
.expand-btn[aria-expanded="true"] { border-color: var(--clr-blue); color: var(--clr-blue); }
.expand-btn svg { transition: transform 0.3s; }
.expand-btn[aria-expanded="true"] svg { transform: rotate(45deg); }

.liga__reports {
    animation: fadeUp 0.4s var(--ease-out) both;
}
.liga__no-reports {
    font-size: 0.85rem;
    color: var(--clr-muted);
    margin-top: var(--space-md);
    font-style: italic;
}


/* ══════════════════════════════════════════════
   CTA SEKTION
══════════════════════════════════════════════ */
.cta__sub {
    font-size: 1rem;
    color: var(--clr-muted);
    max-width: 540px;
    margin: var(--space-sm) auto var(--space-md);
    line-height: 1.7;
}
.cta__actions {
    display: flex;
    gap: var(--space-sm);
    justify-content: center;
    flex-wrap: wrap;
}


/* ══════════════════════════════════════════════
   FOOTER
══════════════════════════════════════════════ */
.site-footer {
    background: #040404;
    border-top: 1px solid var(--clr-border);
}

.footer__inner {
    display: grid;
    grid-template-columns: 1.5fr 1fr 1fr;
    gap: var(--space-lg);
    max-width: var(--max-width);
    margin-inline: auto;
    padding: var(--space-lg) var(--space-md);
}

.footer__logo {
    font-family: var(--font-heading);
    font-size: 1.6rem;
    color: var(--clr-gold);
    letter-spacing: 0.1em;
    margin-bottom: var(--space-xs);
}
.footer__logo em { font-style: normal; color: var(--clr-text); }

.footer__tagline {
    font-size: 0.8rem;
    color: var(--clr-muted);
    margin-bottom: var(--space-sm);
}

.footer__address {
    font-size: 0.8rem;
    color: var(--clr-muted);
    font-style: normal;
    line-height: 1.8;
    margin-bottom: var(--space-sm);
}
.footer__address a { transition: color 0.2s; }
.footer__address a:hover { color: var(--clr-gold); }

.footer__social { display: flex; gap: 12px; }
.footer__social-link {
    color: var(--clr-muted);
    transition: color 0.2s;
}
.footer__social-link:hover { color: var(--clr-gold); }

.footer__heading {
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--clr-gold);
    margin-bottom: var(--space-sm);
}

.footer__links { display: flex; flex-direction: column; gap: 6px; }

.footer__link {
    font-size: 0.8rem;
    color: var(--clr-muted);
    transition: color 0.2s;
}
.footer__link:hover { color: var(--clr-text); }
.footer__link--gold { color: var(--clr-gold); }
.footer__link--gold:hover { opacity: 0.8; }
.footer__link--external::after { content: ''; }

.footer__bottom {
    border-top: 1px solid var(--clr-border);
    padding: var(--space-sm) var(--space-md);
    text-align: center;
    font-size: 0.72rem;
    color: rgba(255,255,255,0.18);
    max-width: var(--max-width);
    margin-inline: auto;
}


/* ══════════════════════════════════════════════
   GENERIC PAGE (Impressum, Datenschutz…)
══════════════════════════════════════════════ */
.page-content {
    min-height: calc(100dvh - var(--nav-h));
    padding-top: calc(var(--nav-h) + var(--space-lg));
    padding-bottom: var(--space-xl);
}
.page-content__header { margin-bottom: var(--space-lg); }
.page-content__title {
    font-family: var(--font-heading);
    font-size: clamp(2rem, 5vw, 3rem);
    letter-spacing: 0.05em;
    color: var(--clr-gold);
}
.page-content__body {
    font-size: 0.95rem;
    line-height: 1.8;
    color: var(--clr-muted);
    max-width: 720px;
}
.page-content__body h2,
.page-content__body h3 {
    color: var(--clr-text);
    margin: var(--space-md) 0 var(--space-sm);
    font-family: var(--font-heading);
    letter-spacing: 0.05em;
}
.page-content__body p { margin-bottom: var(--space-sm); }
.page-content__body a { color: var(--clr-gold); text-decoration: underline; }


/* ══════════════════════════════════════════════
   ANIMATIONEN
══════════════════════════════════════════════ */
@keyframes fadeUp {
    from { opacity: 0; transform: translateY(20px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* Scroll-Reveal */
.reveal {
    opacity: 0;
    transform: translateY(28px);
    transition: opacity 0.65s var(--ease-out),
                transform 0.65s var(--ease-out);
}
.reveal.is-visible {
    opacity: 1;
    transform: translateY(0);
}

/* Child-Elemente mit Versatz */
.reveal-child {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.5s var(--ease-out),
                transform 0.5s var(--ease-out);
    transition-delay: var(--delay, 0s);
}
.is-visible .reveal-child,
.reveal.is-visible .reveal-child {
    opacity: 1;
    transform: translateY(0);
}


/* ══════════════════════════════════════════════
   PARALLAX (via JS gesteuert)
══════════════════════════════════════════════ */
[data-parallax] { will-change: transform; }


/* ══════════════════════════════════════════════
   RESPONSIVE
══════════════════════════════════════════════ */
@media (max-width: 900px) {
    .nav__links, .nav__cta { display: none; }
    .nav__burger { display: flex; }

    .portals { flex-direction: column; }
    .portal { flex: unset; min-height: 100px; border-right: none; border-bottom: 1px solid var(--clr-border); }
    .portal:last-child { border-bottom: none; }
    .portal:hover { flex: unset; }
    .portal__arrow { display: none; }

    .section__grid--2,
    .section__grid--3 { grid-template-columns: 1fr; }
    .section__grid--reverse { direction: ltr; }

    .footer__inner { grid-template-columns: 1fr; gap: var(--space-md); }
}

@media (max-width: 600px) {
    :root { --space-md: 1.25rem; --space-lg: 2.5rem; --space-xl: 3.5rem; }
    .hero__title { font-size: clamp(2.8rem, 14vw, 4rem); }
    .hero__actions { flex-direction: column; align-items: center; }
    .cta__actions { flex-direction: column; align-items: center; }
    .section__grid--3 { grid-template-columns: 1fr; }
}

/* Reduzierten Bewegungen respektieren */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
    .reveal, .reveal-child { opacity: 1; transform: none; }
}

/* ══════════════════════════════════════════════
   PSF PLUGIN — Zusätzliche Klassen
══════════════════════════════════════════════ */

/* Plugin rendert body background */
body { background: var(--clr-bg) !important; color: var(--clr-text) !important; }

/* Portale */
.psf-portals { display: flex; min-height: 200px; border-top: 1px solid var(--clr-border); }
.psf-portal  { flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:var(--space-md) var(--space-sm); cursor:pointer; transition:flex 0.4s var(--ease-out); position:relative; border-right:1px solid var(--clr-border); }
.psf-portal:last-child { border-right:none; }
.psf-portal:hover { flex:2; }
.psf-portal-icon { width:44px; height:44px; border-radius:var(--radius); border:1.5px solid; display:flex; align-items:center; justify-content:center; margin:0 auto var(--space-sm); font-size:1.2rem; transition:transform 0.3s var(--ease-spring); }
.psf-portal:hover .psf-portal-icon { transform:scale(1.08); }
.psf-portal-name { font-family:var(--font-heading); font-size:1.3rem; letter-spacing:0.08em; margin-bottom:4px; }
.psf-portal-desc { font-size:0.7rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--clr-muted); line-height:1.7; }
.psf-portal-arrow { position:absolute; bottom:12px; font-size:0.7rem; letter-spacing:0.12em; text-transform:uppercase; opacity:0; transition:opacity 0.2s; }
.psf-portal:hover .psf-portal-arrow { opacity:0.55; }
.psf-portal--gold  { background:var(--bg-adult); }
.psf-portal--gold  .psf-portal-icon, .psf-portal--gold  .psf-portal-name, .psf-portal--gold  .psf-portal-arrow { color:var(--clr-gold); border-color:var(--clr-gold); }
.psf-portal--green { background:var(--bg-kids); }
.psf-portal--green .psf-portal-icon, .psf-portal--green .psf-portal-name, .psf-portal--green .psf-portal-arrow { color:var(--clr-green); border-color:var(--clr-green); }
.psf-portal--blue  { background:var(--bg-liga); }
.psf-portal--blue  .psf-portal-icon, .psf-portal--blue  .psf-portal-name, .psf-portal--blue  .psf-portal-arrow { color:var(--clr-blue); border-color:var(--clr-blue); }

/* Hero */
.psf-hero { position:relative; min-height:100dvh; display:flex; align-items:center; justify-content:center; text-align:center; padding:calc(var(--nav-h) + var(--space-md)) var(--space-md) var(--space-md); overflow:hidden; background:#060606; }
.psf-hero-video-wrap { position:absolute; inset:0; z-index:0; }
.psf-hero-video { width:100%; height:100%; object-fit:cover; }
.psf-hero-video-overlay { position:absolute; inset:0; background:rgba(0,0,0,0.65); }
.psf-splatters { position:absolute; inset:0; z-index:1; pointer-events:none; overflow:hidden; }
.psf-splat { position:absolute; border-radius:50% 40% 55% 35%; animation:splatIn 0.6s var(--ease-spring) forwards; }
.psf-splat--1 { color:var(--clr-gold);  width:120px; height:80px; top:10%; left:4%; transform:rotate(18deg); opacity:0.15; animation-delay:0.2s; }
.psf-splat--2 { color:#aaff00;          width:80px;  height:55px; top:14%; right:8%; transform:rotate(-24deg); opacity:0.08; animation-delay:0.4s; }
.psf-splat--3 { color:var(--clr-gold);  width:65px;  height:44px; bottom:18%; left:10%; transform:rotate(42deg); opacity:0.14; animation-delay:0.6s; }
.psf-splat--4 { color:var(--clr-green); width:90px;  height:60px; bottom:12%; right:14%; transform:rotate(-12deg); opacity:0.10; animation-delay:0.8s; }
.psf-hero-content { position:relative; z-index:2; display:flex; flex-direction:column; align-items:center; gap:var(--space-sm); max-width:700px; }
.psf-hero-badge { width:76px; height:76px; clip-path:polygon(30% 0%,70% 0%,100% 30%,100% 70%,70% 100%,30% 100%,0% 70%,0% 30%); background:var(--clr-bg-2); border:2px solid var(--clr-gold); display:flex; align-items:center; justify-content:center; margin-bottom:var(--space-sm); animation:fadeUp 0.7s 0.2s both; }
.psf-hero-badge span { font-family:var(--font-heading); font-size:1.5rem; letter-spacing:0.08em; color:var(--clr-gold); }
.psf-hero-title { font-family:var(--font-heading); font-size:clamp(3.5rem,10vw,7rem); letter-spacing:0.04em; line-height:1; color:var(--clr-text); animation:fadeUp 0.7s 0.35s both; }
.psf-hero-title em { color:var(--clr-gold); font-style:normal; }
.psf-hero-sub { font-size:0.8rem; letter-spacing:0.2em; color:var(--clr-muted); text-transform:uppercase; animation:fadeUp 0.7s 0.5s both; }
.psf-hero-actions { display:flex; gap:var(--space-sm); flex-wrap:wrap; justify-content:center; margin-top:var(--space-xs); animation:fadeUp 0.7s 0.65s both; }
.psf-hero-scroll { position:absolute; bottom:var(--space-md); left:50%; transform:translateX(-50%); z-index:2; font-size:0.65rem; letter-spacing:0.2em; text-transform:uppercase; color:rgba(255,255,255,0.18); animation:bob 2s ease infinite; }

/* Sections */
.psf-section { padding:var(--space-xl) 0; }
.psf-section--dark  { background:var(--clr-bg-2); }
.psf-section--adult { background:var(--bg-adult); border-top:2px solid var(--clr-gold); }
.psf-section--kids  { background:var(--bg-kids);  border-top:2px solid var(--clr-green); }
.psf-section--liga  { background:var(--bg-liga);  border-top:2px solid var(--clr-blue); }
.psf-section--cta   { background:var(--bg-cta);   border-top:1px solid var(--clr-border); }
.psf-inner { max-width:var(--max-width); margin-inline:auto; padding-inline:var(--space-md); }
.psf-inner--center { text-align:center; }
.psf-section-label { display:inline-block; font-size:0.65rem; font-weight:700; letter-spacing:0.2em; text-transform:uppercase; padding:3px 10px; border-radius:var(--radius); margin-bottom:var(--space-sm); }
.psf-label--gold  { background:var(--clr-gold-dim);  color:var(--clr-gold); }
.psf-label--green { background:var(--clr-green-dim); color:var(--clr-green); }
.psf-label--blue  { background:var(--clr-blue-dim);  color:var(--clr-blue); }
.psf-section-title { font-family:var(--font-heading); font-size:clamp(2rem,5vw,3.5rem); letter-spacing:0.04em; line-height:1.05; color:var(--clr-text); }
.psf-section-desc  { font-size:0.9rem; color:var(--clr-muted); margin:0.5rem 0 2rem; }
.psf-subsection-title { font-size:0.7rem; font-weight:600; letter-spacing:0.16em; text-transform:uppercase; color:var(--clr-muted); margin-bottom:var(--space-sm); }

/* Grid */
.psf-grid { display:grid; gap:var(--space-md); margin-bottom:var(--space-md); }
.psf-grid--2 { grid-template-columns:1fr 1fr; }
.psf-grid--3 { grid-template-columns:repeat(3,1fr); }
.psf-grid--reverse { direction:rtl; }
.psf-grid--reverse > * { direction:ltr; }

/* Media */
.psf-media { aspect-ratio:4/3; }
.psf-img   { width:100%; height:100%; object-fit:cover; border-radius:var(--radius); }
.psf-img-ph { width:100%; height:100%; background:var(--clr-bg-3); border:1px dashed var(--clr-border); border-radius:var(--radius); display:flex; align-items:center; justify-content:center; font-size:0.7rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--clr-muted); }
.psf-text-col { display:flex; flex-direction:column; gap:var(--space-sm); }

/* Cards */
.psf-card { background:rgba(255,255,255,0.025); border:1px solid var(--clr-border); border-radius:var(--radius); padding:var(--space-sm) 1.25rem; transition:border-color 0.2s; }
.psf-card--gold:hover  { border-color:rgba(212,168,67,0.35); }
.psf-card--green:hover { border-color:rgba(77,191,77,0.35); }
.psf-card--blue:hover  { border-color:rgba(90,159,212,0.35); }
.psf-card-title { font-size:0.7rem; font-weight:700; letter-spacing:0.12em; text-transform:uppercase; margin-bottom:6px; }
.psf-card--gold  .psf-card-title { color:var(--clr-gold); }
.psf-card--green .psf-card-title { color:var(--clr-green); }
.psf-card--blue  .psf-card-title { color:var(--clr-blue); }
.psf-card-body { font-size:0.82rem; color:var(--clr-muted); line-height:1.65; }
.psf-card-link { display:inline-block; margin-top:8px; font-size:0.7rem; font-weight:600; letter-spacing:0.1em; text-transform:uppercase; color:var(--clr-gold); transition:opacity 0.2s; }
.psf-card-link--green { color:var(--clr-green); }
.psf-card-link--blue  { color:var(--clr-blue); }
.psf-card-link:hover { opacity:0.75; }

/* Buttons */
.psf-btn { display:inline-block; font-size:0.75rem; font-weight:700; letter-spacing:0.12em; text-transform:uppercase; padding:10px 22px; border-radius:var(--radius); transition:opacity 0.2s, transform 0.15s var(--ease-spring); cursor:pointer; border:none; text-decoration:none; }
.psf-btn:hover { opacity:0.88; transform:translateY(-1px); }
.psf-btn--primary { background:var(--clr-gold); color:#000; }
.psf-btn--outline  { background:transparent; color:var(--clr-gold); border:1px solid var(--clr-gold); }

/* Verein Stats */
.psf-verein-grid { display:grid; grid-template-columns:2fr 1fr; gap:var(--space-md); align-items:start; margin-top:var(--space-md); }
.psf-verein-text p { color:var(--clr-muted); line-height:1.75; margin-bottom:1rem; }
.psf-verein-stats { display:grid; grid-template-columns:1fr; gap:var(--space-sm); }
.psf-stat { background:rgba(255,255,255,0.03); border:1px solid var(--clr-border); border-radius:var(--radius); padding:var(--space-sm); text-align:center; }
.psf-stat-zahl  { font-family:var(--font-heading); font-size:2.5rem; color:var(--clr-gold); line-height:1; }
.psf-stat-label { font-size:0.7rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--clr-muted); margin-top:4px; }

/* Liga */
.psf-liga-table-wrap { overflow-x:auto; }
.psf-liga-table { width:100%; border-collapse:collapse; font-size:0.85rem; }
.psf-liga-table th { font-size:0.65rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--clr-muted); padding:6px 10px; text-align:left; border-bottom:1px solid var(--clr-border); }
.psf-liga-table td { padding:8px 10px; border-bottom:1px solid rgba(255,255,255,0.04); color:rgba(240,236,224,0.7); }
.psf-liga-own td { background:var(--clr-blue-dim); }
.psf-liga-own td:last-child { color:var(--clr-blue); font-weight:700; }
.psf-liga-badge { font-size:0.65rem; color:var(--clr-blue); margin-left:4px; }
.psf-ergebnis { display:inline-block; background:var(--clr-blue-dim); color:var(--clr-blue); font-size:0.7rem; padding:1px 6px; border-radius:2px; margin-left:6px; }
.psf-no-data { font-size:0.82rem; color:var(--clr-muted); font-style:italic; }

/* Termine */
.psf-termine-list { display:flex; flex-direction:column; gap:8px; }
.psf-termin-date { display:inline-block; font-size:0.65rem; font-weight:700; letter-spacing:0.14em; text-transform:uppercase; color:var(--clr-blue); margin-bottom:3px; }

/* Liga expand */
.psf-liga-expand { margin-top:var(--space-md); }
.psf-expand-btn { display:inline-flex; align-items:center; gap:8px; font-family:var(--font-body); font-size:0.72rem; font-weight:600; letter-spacing:0.12em; text-transform:uppercase; color:var(--clr-muted); background:none; border:1px solid var(--clr-border); border-radius:var(--radius); padding:8px 16px; cursor:pointer; transition:border-color 0.2s, color 0.2s; }
.psf-expand-btn:hover, .psf-expand-btn.open { border-color:var(--clr-blue); color:var(--clr-blue); }
.psf-expand-icon { font-size:1rem; font-weight:300; transition:transform 0.3s; }
.psf-expand-btn.open .psf-expand-icon { transform:rotate(45deg); }
.psf-liga-berichte { animation:fadeUp 0.4s var(--ease-out) both; }

/* Galerie */
.psf-galerie-filter { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:1.5rem; }
.psf-filter-btn { background:transparent; border:1px solid var(--clr-border); color:var(--clr-muted); padding:5px 14px; border-radius:var(--radius); font-size:0.72rem; font-weight:600; letter-spacing:0.1em; text-transform:uppercase; cursor:pointer; transition:all 0.2s; }
.psf-filter-btn:hover, .psf-filter-btn.active { border-color:var(--clr-gold); color:var(--clr-gold); }
.psf-galerie-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
.psf-gal-item { aspect-ratio:4/3; position:relative; border-radius:var(--radius); overflow:hidden; background:var(--clr-bg-3); background-size:cover; background-position:center; cursor:pointer; }
.psf-gal-big { grid-column:span 2; }
.psf-gal-overlay { position:absolute; inset:0; background:rgba(0,0,0,0); transition:background 0.25s; display:flex; align-items:flex-end; padding:12px; }
.psf-gal-item:hover .psf-gal-overlay { background:rgba(0,0,0,0.55); }
.psf-gal-overlay span { color:#fff; font-size:0.8rem; font-weight:600; letter-spacing:0.08em; opacity:0; transform:translateY(6px); transition:all 0.25s; }
.psf-gal-item:hover .psf-gal-overlay span { opacity:1; transform:translateY(0); }

/* Karte */
.psf-karte-wrap { margin-top:var(--space-md); border-radius:var(--radius); overflow:hidden; }

/* CTA */
.psf-cta-grid { display:grid; grid-template-columns:1fr 1fr; gap:var(--space-lg); align-items:start; }
.psf-cta-sub { font-size:1rem; color:var(--clr-muted); margin:var(--space-sm) 0 var(--space-md); line-height:1.7; }
.psf-cta-actions { display:flex; gap:var(--space-sm); flex-wrap:wrap; }

/* Kontaktformular */
.psf-form-titel { font-family:var(--font-heading); font-size:1.4rem; letter-spacing:0.05em; color:var(--clr-text); margin-bottom:var(--space-sm); }
.psf-form-hint  { font-size:0.82rem; color:var(--clr-muted); margin-bottom:var(--space-sm); }
.psf-kontakt-form { display:flex; flex-direction:column; gap:12px; }
.psf-kf-row { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.psf-kf-field { display:flex; flex-direction:column; gap:5px; }
.psf-kf-field label { font-size:0.72rem; font-weight:600; letter-spacing:0.1em; text-transform:uppercase; color:var(--clr-muted); }
.psf-kf-field input, .psf-kf-field textarea {
  background:var(--clr-bg-3); border:1px solid var(--clr-border); border-radius:var(--radius);
  color:var(--clr-text); padding:9px 14px; font-family:var(--font-body); font-size:0.88rem; transition:border-color 0.2s;
}
.psf-kf-field input:focus, .psf-kf-field textarea:focus { border-color:var(--clr-gold); outline:none; }
.psf-kf-field textarea { resize:vertical; }
.psf-kf-status { font-size:0.82rem; margin-top:4px; }
.psf-kf-status.ok  { color:var(--clr-green); }
.psf-kf-status.err { color:#e53935; }

/* Footer */
#psf-footer { background:#040404; border-top:1px solid var(--clr-border); }
.psf-footer-inner { display:grid; grid-template-columns:1.5fr 1fr 1fr; gap:var(--space-lg); max-width:var(--max-width); margin-inline:auto; padding:var(--space-lg) var(--space-md); }
.psf-footer-logo { font-family:var(--font-heading); font-size:1.6rem; color:var(--clr-gold); letter-spacing:0.1em; margin-bottom:var(--space-xs); }
.psf-footer-logo em { font-style:normal; color:var(--clr-text); }
.psf-footer-tagline { font-size:0.8rem; color:var(--clr-muted); margin-bottom:var(--space-sm); }
.psf-footer-adresse { font-size:0.8rem; color:var(--clr-muted); font-style:normal; line-height:1.8; margin-bottom:var(--space-sm); }
.psf-footer-adresse a:hover { color:var(--clr-gold); }
.psf-footer-social { display:flex; gap:10px; }
.psf-social-link { font-size:0.75rem; color:var(--clr-muted); letter-spacing:0.1em; transition:color 0.2s; }
.psf-social-link:hover { color:var(--clr-gold); }
.psf-footer-heading { font-size:0.65rem; font-weight:700; letter-spacing:0.18em; text-transform:uppercase; color:var(--clr-gold); margin-bottom:var(--space-sm); }
.psf-footer-links { list-style:none; display:flex; flex-direction:column; gap:6px; }
.psf-footer-links a { font-size:0.8rem; color:var(--clr-muted); transition:color 0.2s; }
.psf-footer-links a:hover { color:var(--clr-text); }
.psf-link-gold { color:var(--clr-gold) !important; }
.psf-footer-bottom { border-top:1px solid var(--clr-border); padding:var(--space-sm) var(--space-md); text-align:center; font-size:0.72rem; color:rgba(255,255,255,0.18); }
.psf-footer-spruch { font-style:italic; margin-bottom:6px; }
.psf-footer-btn { background:none; border:none; color:rgba(255,255,255,0.3); font-size:0.72rem; cursor:pointer; text-decoration:underline; transition:color 0.2s; }
.psf-footer-btn:hover { color:var(--clr-gold); }

/* Modals */
.psf-modal-overlay { position:fixed; inset:0; z-index:9999; background:rgba(0,0,0,0.75); display:none; align-items:center; justify-content:center; padding:var(--space-md); }
.psf-modal-overlay.open { display:flex; }
.psf-modal-box { background:#111; border:1px solid var(--clr-border); border-radius:8px; padding:var(--space-md) var(--space-lg); max-width:560px; width:100%; max-height:80vh; overflow-y:auto; position:relative; }
.psf-modal-box--wide { max-width:720px; }
.psf-modal-box h2 { font-family:var(--font-heading); font-size:1.8rem; color:var(--clr-gold); margin:0 0 var(--space-sm); }
.psf-modal-box p  { font-size:0.85rem; color:var(--clr-muted); line-height:1.75; margin-bottom:var(--space-sm); }
.psf-modal-box a  { color:var(--clr-gold); }
.psf-modal-close { position:absolute; top:14px; right:14px; background:none; border:1px solid var(--clr-border); color:var(--clr-muted); width:28px; height:28px; border-radius:4px; cursor:pointer; font-size:0.8rem; transition:all 0.15s; }
.psf-modal-close:hover { border-color:var(--clr-gold); color:var(--clr-gold); }
.psf-impressum-hinweis { font-size:0.75rem; font-style:italic; opacity:0.55; }
.psf-ds-inhalt { font-size:0.82rem; color:var(--clr-muted); line-height:1.75; }
.psf-ds-inhalt h2 { color:var(--clr-text); font-size:1rem; margin:1rem 0 0.5rem; }

/* Reveal animations */
.psf-reveal { opacity:0; transform:translateY(28px); transition:opacity 0.65s var(--ease-out), transform 0.65s var(--ease-out); }
.psf-reveal.is-visible { opacity:1; transform:translateY(0); }
.psf-reveal-child { opacity:0; transform:translateY(20px); transition:opacity 0.5s var(--ease-out), transform 0.5s var(--ease-out); transition-delay:var(--delay,0s); }
.psf-reveal.is-visible .psf-reveal-child, .is-visible .psf-reveal-child { opacity:1; transform:translateY(0); }

/* Responsive */
@media (max-width:900px) {
  .psf-portals { flex-direction:column; }
  .psf-portal { flex:unset; min-height:90px; border-right:none; border-bottom:1px solid var(--clr-border); }
  .psf-portal:hover { flex:unset; }
  .psf-grid--2, .psf-grid--3, .psf-cta-grid, .psf-verein-grid, .psf-kf-row { grid-template-columns:1fr; }
  .psf-grid--reverse { direction:ltr; }
  .psf-footer-inner { grid-template-columns:1fr; gap:var(--space-md); }
  .psf-galerie-grid { grid-template-columns:1fr 1fr; }
  .psf-gal-big { grid-column:span 1; }
}
@media (max-width:600px) {
  .psf-galerie-grid { grid-template-columns:1fr; }
  .psf-hero-title { font-size:clamp(2.8rem,14vw,4rem); }
  .psf-hero-actions { flex-direction:column; align-items:center; }
}

/* ══════════════════════════════════════════════
   v1.0.1 FIXES
══════════════════════════════════════════════ */

/* Fix 1: NAV */
.psf-site-header { position: relative; z-index: 200; }
.psf-nav {
  position: fixed; top:0; left:0; right:0;
  height: 60px; z-index: 200;
  background: rgba(8,8,8,0.97);
  border-bottom: 1px solid rgba(212,168,67,0.15);
  display: flex; align-items: center; justify-content: space-between;
  padding: 0 2rem;
  transition: background 0.3s;
}
.psf-nav.scrolled { background: rgba(8,8,8,1); }
.psf-nav-logo { font-family: 'Bebas Neue','Arial Black',Arial,sans-serif; font-size: 1.4rem; letter-spacing: 0.1em; color: #d4a843; text-decoration: none; }
.psf-nav-logo em { font-style: normal; color: #f0ece0; }
.psf-nav-links { display: flex; align-items: center; gap: 2rem; list-style: none; }
.psf-nav-link { font-size: 0.7rem; font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; color: rgba(240,236,224,0.4); text-decoration: none; padding-bottom: 2px; border-bottom: 1px solid transparent; transition: all 0.2s; }
.psf-nav-link:hover, .psf-nav-link.active { color: #d4a843; border-bottom-color: #d4a843; }
.psf-nav-cta { font-size: 0.7rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; background: #d4a843; color: #000; padding: 7px 16px; border-radius: 4px; text-decoration: none; transition: opacity 0.2s; }
.psf-nav-cta:hover { opacity: 0.85; }
.psf-nav-burger { display: none; flex-direction: column; gap: 5px; background: none; border: none; cursor: pointer; padding: 4px; }
.psf-nav-burger span { display: block; width: 22px; height: 2px; background: #f0ece0; border-radius: 1px; transition: transform 0.3s, opacity 0.3s; }
.psf-nav-burger.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.psf-nav-burger.open span:nth-child(2) { opacity: 0; }
.psf-nav-burger.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
.psf-mobile-menu { position: fixed; top: 60px; left:0; right:0; background: rgba(8,8,8,0.98); border-bottom: 1px solid rgba(212,168,67,0.1); padding: 1.5rem 2rem; display: none; flex-direction: column; z-index: 199; }
.psf-mobile-menu.open { display: flex; }
.psf-mobile-menu ul { list-style: none; display: flex; flex-direction: column; gap: 0; }
.psf-mobile-link { display: block; font-size: 0.85rem; font-weight: 500; letter-spacing: 0.12em; text-transform: uppercase; color: rgba(240,236,224,0.5); padding: 0.75rem 0; border-bottom: 1px solid rgba(255,255,255,0.05); text-decoration: none; transition: color 0.2s; }
.psf-mobile-link:hover { color: #d4a843; }
.psf-mobile-link--cta { color: #d4a843; border-bottom: none; }

/* Fix 2: HERO BADGE größer + Hero padding-top wegen fixem Nav */
.psf-hero { padding-top: calc(60px + 2rem) !important; }
.psf-hero-badge {
  width: 96px !important; height: 96px !important;
  margin-bottom: 1.5rem !important;
}
.psf-hero-badge span { font-size: 2rem !important; }

/* Fix 3: LEERE SEKTIONEN — weniger Leerraum wenn Cards leer sind */
.psf-card:empty,
.psf-text-col:empty { display: none; }
.psf-img-ph { min-height: 200px; }
/* Sections mit leerem Grid nicht riesig aufblähen */
.psf-grid:not(:has(*:not(:empty))) { margin-bottom: 0; }

/* Fix 4: SCROLL-REVEAL weniger aggressiv — niedrigerer Threshold + sofort sichtbar nach 1.5s */
.psf-reveal { transition: opacity 0.5s ease, transform 0.5s ease; }
.psf-reveal-child { transition: opacity 0.4s ease, transform 0.4s ease; transition-delay: var(--delay, 0s); }

@media (max-width: 900px) {
  .psf-nav-links, .psf-nav-cta { display: none; }
  .psf-nav-burger { display: flex; }
}

/* v1.0.2: Reveal sofort sichtbar — Animation als reines Enhancement */
.psf-reveal,
.psf-reveal-child,
.reveal,
.reveal-child {
  opacity: 1 !important;
  transform: none !important;
}

/* ── v1.0.4: Mitglieder Nav-Button ── */
.psf-nav-member {
  font-size: 0.7rem; font-weight: 700; letter-spacing: 0.12em;
  text-transform: uppercase; color: var(--clr-blue);
  border: 1px solid var(--clr-blue);
  padding: 6px 14px; border-radius: var(--radius);
  text-decoration: none; transition: all 0.2s;
  margin-right: 6px;
}
.psf-nav-member:hover { background: var(--clr-blue); color: #fff; }

/* Hero Splatter mit neuen Farben */
.psf-splat--1 { color: var(--clr-gold); }
.psf-splat--2 { color: var(--clr-blue); opacity: 0.12; }
.psf-splat--3 { color: var(--clr-gold); }
.psf-splat--4 { color: var(--clr-blue); opacity: 0.10; }

/* Sections Akzentlinien */
.psf-section--adult { border-top-color: var(--clr-gold); }
.psf-section--kids  { border-top-color: var(--clr-green); }
.psf-section--liga  { border-top-color: var(--clr-blue); }

@media (max-width: 900px) {
  .psf-nav-member { display: none; }
}

/* Logo Styles */
.psf-nav-logo img { height: 38px; width: auto; display: block; }
.psf-hero-logo-img { height: 120px; width: auto; filter: drop-shadow(0 0 20px rgba(222,68,15,0.3)); }
.psf-hero-badge { background: transparent !important; border: none !important; clip-path: none !important; width: auto !important; height: auto !important; padding: 0 !important; }
