/* =============================================================================
   Club der Ehemaligen — Main Stylesheet
   Child Theme: club-der-ehemaligen-theme
   ============================================================================= */

/* ─── Design Tokens ──────────────────────────────────────────────────────────── */
:root {
    /* Primary: Navy */
    --color-primary-50:  #EEF1F9;
    --color-primary-100: #D8E0F0;
    --color-primary-200: #B5C5E3;
    --color-primary-300: #8FA8D5;
    --color-primary-400: #6488C6;
    --color-primary-500: #3B63B3;
    --color-primary-600: #2B5499;
    --color-primary-700: #1D3A6B;
    --color-primary-800: #152B50;
    --color-primary-900: #0D1C35;

    /* Accent: Gold */
    --color-accent-50:  #FBF6E8;
    --color-accent-100: #F5EAC8;
    --color-accent-200: #EDD492;
    --color-accent-300: #DFB95A;
    --color-accent-400: #D4A235;
    --color-accent-500: #C6A84B;
    --color-accent-600: #A88A36;
    --color-accent-700: #836825;
    --color-accent-800: #614A18;
    --color-accent-900: #4E380A;

    /* Neutral / Cream */
    --color-neutral-50:  #FDFCFA;
    --color-neutral-100: #F5F3EE;
    --color-neutral-200: #EAE7DF;
    --color-neutral-300: #D8D4CA;
    --color-neutral-400: #C4BFB3;
    --color-neutral-500: #A09890;
    --color-neutral-600: #7A7268;
    --color-neutral-700: #5C5650;
    --color-neutral-800: #3D3A35;
    --color-neutral-900: #1E1B17;

    /* Semantic Aliases */
    --color-primary:       var(--color-primary-700);
    --color-primary-hover: var(--color-primary-800);
    --color-accent:        var(--color-accent-500);
    --color-accent-hover:  var(--color-accent-600);

    --color-bg:            var(--color-neutral-100);
    --color-surface:       #FFFFFF;
    --color-surface-raised:var(--color-neutral-50);
    --color-border:        var(--color-neutral-200);
    --color-border-strong: var(--color-neutral-300);

    --color-text-primary:  var(--color-neutral-900);
    --color-text-secondary:var(--color-neutral-700);
    --color-text-muted:    var(--color-neutral-500);
    --color-text-inverse:  #FFFFFF;
    --color-text-on-accent:var(--color-primary-900);

    --color-success: #2D7A47;
    --color-error:   #C13030;
    --color-warning: #B07A1A;
    --color-info:    var(--color-primary-600);

    /* Typography */
    --font-serif: Georgia, 'Times New Roman', Times, serif;
    --font-sans:  system-ui, -apple-system, 'Segoe UI', Helvetica, Arial, sans-serif;
    --font-mono:  'Courier New', Courier, monospace;

    --text-xs:   0.75rem;
    --text-sm:   0.875rem;
    --text-base: 1rem;
    --text-lg:   1.125rem;
    --text-xl:   1.25rem;
    --text-2xl:  1.5rem;
    --text-3xl:  1.875rem;
    --text-4xl:  2.25rem;
    --text-5xl:  3rem;

    --weight-normal:   400;
    --weight-medium:   500;
    --weight-semibold: 600;
    --weight-bold:     700;

    --leading-none:    1;
    --leading-tight:   1.25;
    --leading-snug:    1.375;
    --leading-normal:  1.5;
    --leading-relaxed: 1.625;
    --leading-loose:   2;

    --tracking-tight:   -0.025em;
    --tracking-normal:  0;
    --tracking-wide:    0.025em;
    --tracking-wider:   0.05em;
    --tracking-widest:  0.1em;

    /* Spacing */
    --space-1:  0.25rem;
    --space-2:  0.5rem;
    --space-3:  0.75rem;
    --space-4:  1rem;
    --space-5:  1.25rem;
    --space-6:  1.5rem;
    --space-8:  2rem;
    --space-10: 2.5rem;
    --space-12: 3rem;
    --space-16: 4rem;
    --space-20: 5rem;
    --space-24: 6rem;

    /* Border Radius */
    --radius-sm:   2px;
    --radius-md:   4px;
    --radius-lg:   8px;
    --radius-xl:   12px;
    --radius-2xl:  16px;
    --radius-full: 9999px;

    /* Shadows — navy-tinted */
    --shadow-sm:   0 1px 3px rgba(29,58,107,0.08), 0 1px 2px rgba(29,58,107,0.05);
    --shadow-md:   0 4px 12px rgba(29,58,107,0.10), 0 2px 4px rgba(29,58,107,0.06);
    --shadow-lg:   0 8px 24px rgba(29,58,107,0.12), 0 4px 8px rgba(29,58,107,0.07);
    --shadow-xl:   0 16px 48px rgba(29,58,107,0.15), 0 8px 16px rgba(29,58,107,0.09);
    --shadow-inner:0 2px 4px rgba(29,58,107,0.08) inset;
    --shadow-card: 0 2px 8px rgba(29,58,107,0.08), 0 0 0 1px rgba(29,58,107,0.05);
    --shadow-nav:  0 2px 12px rgba(29,58,107,0.15);
    --focus-ring:  0 0 0 3px rgba(198,168,75,0.45);

    /* Layout */
    --nav-height:    56px;
    --container-xl:  1200px;
    --container-md:  768px;
    --sidebar-width: 280px;
    --transition-fast: 150ms ease;
    --transition-base: 200ms ease;
}

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

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

body {
    font-family: var(--font-sans);
    font-size: var(--text-base);
    line-height: var(--leading-relaxed);
    color: var(--color-text-primary);
    background-color: var(--color-bg);
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

main { flex: 1; }

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

a {
    color: inherit;
    text-decoration: none;
    transition: color var(--transition-fast);
}

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

h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-serif);
    font-weight: var(--weight-bold);
    line-height: var(--leading-tight);
    color: var(--color-primary);
}

h1 { font-size: var(--text-4xl); letter-spacing: var(--tracking-tight); }
h2 { font-size: var(--text-2xl); }
h3 { font-size: var(--text-xl); }
h4 { font-size: var(--text-lg); }

p { margin-bottom: var(--space-4); }
p:last-child { margin-bottom: 0; }

/* Screen-reader only */
.sr-only {
    position: absolute;
    width: 1px; height: 1px;
    padding: 0; margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* Skip link */
.cde-skip-link {
    position: fixed;
    top: -9999px;
    left: 50%;
    transform: translateX(-50%);
    padding: var(--space-3) var(--space-6);
    background: var(--color-primary);
    color: var(--color-text-inverse);
    border-radius: var(--radius-md);
    font-weight: var(--weight-semibold);
    z-index: 9999;
    transition: top 0.15s ease;
    white-space: nowrap;
}
.cde-skip-link:focus { top: var(--space-4); }

/* ─── Container ──────────────────────────────────────────────────────────────── */
.cde-container {
    max-width: var(--container-xl);
    margin-inline: auto;
    padding-inline: var(--space-6);
}

/* ─── Buttons ─────────────────────────────────────────────────────────────────── */
.cde-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-2);
    padding: 0.625rem 1.375rem;
    font-family: var(--font-sans);
    font-size: var(--text-sm);
    font-weight: var(--weight-semibold);
    line-height: 1;
    border-radius: var(--radius-md);
    border: 2px solid transparent;
    cursor: pointer;
    transition: background var(--transition-fast), color var(--transition-fast),
                border-color var(--transition-fast), transform var(--transition-fast),
                box-shadow var(--transition-fast);
    text-decoration: none;
    white-space: nowrap;
    min-height: 44px;
}
.cde-btn:focus-visible {
    outline: none;
    box-shadow: var(--focus-ring);
}

.cde-btn--primary {
    background: var(--color-primary);
    color: var(--color-text-inverse);
    border-color: var(--color-primary);
}
.cde-btn--primary:hover {
    background: var(--color-primary-hover);
    border-color: var(--color-primary-hover);
    transform: translateY(-1px);
}

.cde-btn--gold {
    background: var(--color-accent);
    color: var(--color-text-on-accent);
    border-color: var(--color-accent);
}
.cde-btn--gold:hover {
    background: var(--color-accent-hover);
    border-color: var(--color-accent-hover);
    transform: translateY(-1px);
}

.cde-btn--outline {
    background: transparent;
    color: var(--color-text-inverse);
    border-color: rgba(255,255,255,0.6);
}
.cde-btn--outline:hover {
    background: rgba(255,255,255,0.1);
    border-color: white;
}

.cde-btn--ghost {
    background: transparent;
    color: var(--color-primary);
    border-color: var(--color-primary);
}
.cde-btn--ghost:hover {
    background: var(--color-primary);
    color: var(--color-text-inverse);
    transform: translateY(-1px);
}

.cde-btn--lg {
    padding: 0.875rem 2rem;
    font-size: var(--text-base);
}
.cde-btn--full { width: 100%; }

/* ─── Navigation ─────────────────────────────────────────────────────────────── */
.cde-nav {
    position: sticky;
    top: 0;
    z-index: 1000;
    height: var(--nav-height);
    background: var(--color-primary);
    box-shadow: var(--shadow-nav);
}

.cde-nav__inner {
    display: flex;
    align-items: center;
    gap: var(--space-6);
    height: 100%;
}

.cde-nav__brand {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    text-decoration: none;
    color: var(--color-text-inverse);
    flex-shrink: 0;
}
.cde-nav__brand:hover { color: var(--color-text-inverse); opacity: 0.9; }

.cde-nav__logo { display: flex; align-items: center; }
.cde-nav__logo-img {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    object-fit: cover;
    display: block;
}

.cde-nav__brand-text { display: flex; flex-direction: column; }
.cde-nav__brand-name {
    font-family: var(--font-serif);
    font-size: var(--text-sm);
    font-weight: var(--weight-bold);
    line-height: 1.2;
}
.cde-nav__brand-sub {
    font-family: var(--font-sans);
    font-size: 0.6875rem;
    font-weight: var(--weight-normal);
    opacity: 0.75;
}

.cde-nav__menu {
    flex: 1;
    display: flex;
    justify-content: flex-end;
}

.cde-nav__list {
    display: none;
    list-style: none;
    margin: 0;
    padding: 0;
    gap: 0;
    align-items: center;
}

.cde-nav__list .menu-item > a {
    display: flex;
    align-items: center;
    gap: var(--space-1);
    padding: var(--space-2) var(--space-3);
    font-size: 0.8125rem;
    font-weight: var(--weight-medium);
    color: rgba(255,255,255,0.85);
    border-radius: var(--radius-md);
    transition: color var(--transition-fast), background var(--transition-fast);
    white-space: nowrap;
}
.cde-nav__list .menu-item > a:hover,
.cde-nav__list .menu-item.current-menu-item > a {
    color: white;
    background: rgba(255,255,255,0.1);
}

/* Intern link bekommt lock-icon */
.cde-nav__list .menu-item a[href*="intern"]::before {
    content: "\f023";
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    font-size: 0.75rem;
}

.cde-nav__actions {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    flex-shrink: 0;
}

/* Hamburger */
.cde-nav__hamburger {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    width: 26px;
    height: 18px;
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
}
.cde-nav__hamburger:focus-visible { box-shadow: var(--focus-ring); border-radius: var(--radius-sm); }
.cde-nav__hamburger-bar {
    display: block;
    width: 100%;
    height: 2px;
    background: white;
    border-radius: 2px;
    transition: transform var(--transition-base), opacity var(--transition-fast);
}
.cde-nav__hamburger[aria-expanded="true"] .cde-nav__hamburger-bar:nth-child(1) {
    transform: translateY(8px) rotate(45deg);
}
.cde-nav__hamburger[aria-expanded="true"] .cde-nav__hamburger-bar:nth-child(2) {
    opacity: 0;
}
.cde-nav__hamburger[aria-expanded="true"] .cde-nav__hamburger-bar:nth-child(3) {
    transform: translateY(-8px) rotate(-45deg);
}

/* Mobile Nav Overlay */
.cde-nav__menu.is-open {
    position: fixed;
    top: var(--nav-height);
    left: 0;
    right: 0;
    bottom: 0;
    background: var(--color-primary-900);
    display: flex;
    flex-direction: column;
    overflow-y: auto;
}
.cde-nav__menu.is-open .cde-nav__list {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    padding: var(--space-6);
    gap: 0;
}
.cde-nav__menu.is-open .cde-nav__list .menu-item > a {
    padding: var(--space-4);
    font-size: var(--text-base);
    border-bottom: 1px solid rgba(255,255,255,0.1);
}

.cde-nav__cta { display: none; }
.cde-nav__actions { gap: 0; margin-left: auto; }

.cde-nav__mobile-cta {
    display: none;
    padding: var(--space-6);
    padding-top: var(--space-2);
    margin-top: auto;
}
.cde-nav__menu.is-open .cde-nav__mobile-cta {
    display: block;
}

@media (min-width: 768px) {
    .cde-nav__hamburger { display: none; }
    .cde-nav__list { display: flex; }
    .cde-nav__cta { display: inline-flex; }
    .cde-nav__actions { gap: var(--space-3); }
    .cde-nav__mobile-cta { display: none !important; }
}

/* ─── Page Header ──────────────────────────────────────────────────────────── */
.cde-page-header {
    background: var(--color-primary);
    padding: var(--space-10) 0 var(--space-8);
    position: relative;
    overflow: hidden;
}
.cde-page-header::after {
    content: "";
    position: absolute;
    inset: 0;
    background: url('../../images/kogge-icon.svg') no-repeat right -40px center / 220px;
    opacity: 0.04;
    pointer-events: none;
}

.cde-page-header__title {
    color: white;
    font-size: clamp(var(--text-3xl), 4vw, var(--text-4xl));
    margin-top: var(--space-3);
}

.cde-page-header__subtitle {
    color: rgba(255,255,255,0.75);
    font-size: var(--text-lg);
    margin-top: var(--space-2);
    font-family: var(--font-sans);
}

.cde-page-header__divider {
    width: 48px;
    height: 2px;
    background: var(--color-accent);
    margin-top: var(--space-4);
    border-radius: 2px;
}

/* ─── Breadcrumb ─────────────────────────────────────────────────────────────── */
.cde-breadcrumb__list {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--space-1);
    list-style: none;
    padding: 0;
    margin: 0;
}
.cde-breadcrumb__item {
    font-size: var(--text-xs);
    color: rgba(255,255,255,0.6);
}
.cde-breadcrumb__item + .cde-breadcrumb__item::before {
    content: "›";
    margin-right: var(--space-1);
}
.cde-breadcrumb__item a {
    color: rgba(255,255,255,0.6);
    text-decoration: none;
}
.cde-breadcrumb__item a:hover { color: var(--color-accent); }
.cde-breadcrumb__item--current { color: var(--color-accent); }

/* ─── Section Headings ───────────────────────────────────────────────────────── */
.cde-section-title {
    font-size: clamp(var(--text-2xl), 3vw, var(--text-3xl));
    color: var(--color-primary);
    margin-bottom: var(--space-2);
}

.cde-section-divider {
    width: 48px;
    height: 2px;
    background: var(--color-accent);
    border-radius: 2px;
    margin-bottom: var(--space-8);
}

/* ─── Cards ──────────────────────────────────────────────────────────────────── */
.cde-card {
    background: var(--color-surface);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-card);
    overflow: hidden;
    transition: box-shadow var(--transition-base), transform var(--transition-base);
}
.cde-card:hover {
    box-shadow: var(--shadow-lg);
    transform: translateY(-2px);
}
.cde-card__body {
    padding: var(--space-5) var(--space-6);
}

/* Event Card */
.cde-event-card__image {
    aspect-ratio: 16/9;
    background: linear-gradient(135deg, var(--color-primary-800), var(--color-primary-600));
    position: relative;
    overflow: hidden;
}
.cde-event-card__image > a:not(.cde-event-card__badge) {
    position: absolute;
    inset: 0;
    z-index: 0;
    line-height: 0;
    font-size: 0;
}
.cde-event-card__badge { z-index: 1; }
.cde-event-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.3s ease;
}
.cde-event-card__image > a:not(.cde-event-card__badge):hover img { transform: scale(1.04); }
.cde-event-card__badge,
.cde-post-card__badge {
    position: absolute;
    top: var(--space-3);
    left: var(--space-3);
    padding: 0.25rem 0.75rem;
    background: var(--color-accent);
    color: var(--color-text-on-accent);
    font-size: var(--text-xs);
    font-weight: var(--weight-semibold);
    border-radius: var(--radius-full);
    text-transform: uppercase;
    letter-spacing: var(--tracking-wider);
    text-decoration: none;
    transition: opacity 0.15s ease;
}
.cde-event-card__badge:hover,
.cde-post-card__badge:hover { opacity: 0.85; }
.cde-event-card__date {
    font-size: var(--text-xs);
    font-weight: var(--weight-semibold);
    color: var(--color-accent);
    text-transform: uppercase;
    letter-spacing: var(--tracking-widest);
    margin-bottom: var(--space-2);
}
.cde-event-card__title {
    font-size: var(--text-lg);
    color: var(--color-primary);
    margin-bottom: var(--space-2);
    line-height: var(--leading-snug);
}
.cde-event-card__excerpt {
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
    line-height: var(--leading-relaxed);
    margin-bottom: var(--space-4);
}
.cde-event-card__link {
    font-size: var(--text-sm);
    font-weight: var(--weight-semibold);
    color: var(--color-primary);
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
}
.cde-event-card__link:hover { color: var(--color-accent); }

/* Post/News Card */
.cde-post-card__image {
    aspect-ratio: 16/9;
    overflow: hidden;
    background: linear-gradient(135deg, var(--color-primary-200), var(--color-primary-100));
    position: relative;
}
.cde-post-card__image > a:not(.cde-post-card__badge) {
    position: absolute;
    inset: 0;
    z-index: 0;
    line-height: 0;
    font-size: 0;
}
.cde-post-card__badge { z-index: 1; }
.cde-post-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform var(--transition-base);
}
.cde-post-card:hover .cde-post-card__image img,
.cde-post-card__image > a:not(.cde-post-card__badge):hover img { transform: scale(1.03); }
.cde-post-card__date {
    font-size: var(--text-xs);
    font-weight: var(--weight-semibold);
    color: var(--color-accent);
    text-transform: uppercase;
    letter-spacing: var(--tracking-widest);
    margin-bottom: var(--space-2);
}
.cde-post-card__title {
    font-size: var(--text-base);
    font-weight: var(--weight-bold);
    color: var(--color-primary);
    margin-bottom: var(--space-2);
    line-height: var(--leading-snug);
}
.cde-post-card__excerpt {
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
    margin-bottom: var(--space-3);
}
.cde-post-card__link {
    font-size: var(--text-sm);
    font-weight: var(--weight-semibold);
    color: var(--color-neutral-600);
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
}
.cde-post-card__link:hover { color: var(--color-accent); }

/* ─── Grids ──────────────────────────────────────────────────────────────────── */
.cde-grid-3 {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-6);
}
.cde-grid-4 {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-5);
}

@media (min-width: 768px) {
    .cde-grid-3 { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 1024px) {
    .cde-grid-3 { grid-template-columns: repeat(3, 1fr); }
    .cde-grid-4 { grid-template-columns: repeat(4, 1fr); }
}

/* ─── 2-col Layout (Content + Sidebar) ──────────────────────────────────────── */
.cde-layout-2col {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-8);
    align-items: start;
}
@media (min-width: 1024px) {
    .cde-layout-2col { grid-template-columns: 2fr 1fr; }
    .cde-sidebar { position: sticky; top: calc(var(--nav-height) + var(--space-6)); }
}

/* ─── Sidebar Cards ──────────────────────────────────────────────────────────── */
.cde-sidebar-card {
    background: var(--color-surface);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-md);
    padding: var(--space-6);
    margin-bottom: var(--space-5);
}
.cde-sidebar-card--navy {
    background: var(--color-primary);
    color: var(--color-text-inverse);
}
.cde-sidebar-card--navy .cde-sidebar-card__title {
    color: var(--color-accent);
}
.cde-sidebar-card__title {
    font-size: var(--text-lg);
    color: var(--color-primary);
    margin-bottom: var(--space-3);
}
.cde-sidebar-card__text {
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
    line-height: var(--leading-relaxed);
    margin-bottom: var(--space-4);
}
.cde-sidebar-card--navy .cde-sidebar-card__text {
    color: rgba(255,255,255,0.7);
}

/* ─── Board Member Card ──────────────────────────────────────────────────────── */
.cde-board-card {
    background: var(--color-surface);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-card);
    padding: var(--space-5);
}
.cde-board-card__name {
    font-size: var(--text-sm);
    font-weight: var(--weight-bold);
    color: var(--color-primary);
    font-family: var(--font-sans);
    margin-bottom: var(--space-1);
}
.cde-board-card__role {
    font-size: var(--text-xs);
    font-weight: var(--weight-semibold);
    color: var(--color-accent);
    text-transform: uppercase;
    letter-spacing: var(--tracking-wider);
    font-family: var(--font-sans);
}
.cde-board-card__contact {
    margin-top: var(--space-3);
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
}
.cde-board-card__contact-link {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--text-xs);
    color: var(--color-text-secondary);
    text-decoration: none;
    word-break: break-all;
}
.cde-board-card__contact-link:hover {
    color: var(--color-primary);
}
.cde-board-card__contact-link i {
    flex-shrink: 0;
    color: var(--color-accent);
    width: 14px;
    text-align: center;
}

/* ─── Member / Person Card ───────────────────────────────────────────────────── */
.cde-person-card {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-3) var(--space-4);
    background: var(--color-surface);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
    transition: box-shadow var(--transition-base);
}
.cde-person-card:hover { box-shadow: var(--shadow-md); }

.cde-person-card__avatar {
    width: 40px;
    height: 40px;
    border-radius: var(--radius-full);
    background: var(--color-primary-100);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    overflow: hidden;
}
.cde-person-card__avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: var(--radius-full);
}
.cde-person-card__initials {
    font-family: var(--font-serif);
    font-size: var(--text-sm);
    font-weight: var(--weight-bold);
    color: var(--color-primary);
}
.cde-person-card__name {
    font-size: var(--text-sm);
    font-weight: var(--weight-bold);
    color: var(--color-primary);
    font-family: var(--font-sans);
}
.cde-person-card__abi {
    font-size: var(--text-xs);
    color: var(--color-text-muted);
}

/* ─── Hero Section ───────────────────────────────────────────────────────────── */
.cde-hero {
    background: var(--color-primary);
    background-size: cover;
    background-position: center;
    padding: var(--space-24) 0 var(--space-20);
    position: relative;
    overflow: hidden;
}
.cde-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(13, 28, 53, 0.62);
    z-index: 0;
    pointer-events: none;
}
.cde-hero::after {
    content: "";
    position: absolute;
    bottom: -40px;
    right: -60px;
    width: 340px;
    height: 340px;
    background: url('../../images/kogge-icon.svg') no-repeat center / contain;
    opacity: 0.05;
    pointer-events: none;
    z-index: 1;
}
.cde-hero__container { position: relative; z-index: 1; }

.cde-hero__tagline {
    font-size: var(--text-xs);
    font-weight: var(--weight-semibold);
    color: var(--color-accent);
    text-transform: uppercase;
    letter-spacing: var(--tracking-widest);
    margin-bottom: var(--space-4);
    font-family: var(--font-sans);
}
.cde-hero__title {
    font-size: clamp(var(--text-3xl), 5vw, var(--text-5xl));
    color: white;
    max-width: 720px;
    margin-bottom: var(--space-5);
    letter-spacing: var(--tracking-tight);
}
.cde-hero__text {
    font-size: var(--text-lg);
    color: rgba(255,255,255,0.75);
    max-width: 560px;
    line-height: var(--leading-relaxed);
    margin-bottom: var(--space-8);
    font-family: var(--font-sans);
}
.cde-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-4);
}

/* ─── Sections ───────────────────────────────────────────────────────────────── */
.cde-section {
    padding: var(--space-16) 0;
}
.cde-section--white { background: var(--color-surface); }
.cde-section--navy {
    background: var(--color-primary);
    color: var(--color-text-inverse);
}
.cde-section--center { text-align: center; }

.cde-section--navy .cde-section-title { color: var(--color-accent); }
.cde-section--navy p { color: rgba(255,255,255,0.75); }

/* ─── Flyer Teaser ───────────────────────────────────────────────────────────── */
.cde-section--flyer {
    background: var(--color-primary-50);
    border-top: 1px solid var(--color-border);
}
.cde-flyer-teaser {
    display: flex;
    align-items: center;
    gap: var(--space-12);
}
.cde-flyer-teaser__preview {
    flex-shrink: 0;
    width: 200px;
    border-radius: var(--radius-md);
    overflow: hidden;
    box-shadow: var(--shadow-xl);
    border: 1px solid var(--color-border);
}
.cde-flyer-teaser__preview img {
    display: block;
    width: 100%;
    height: auto;
}
.cde-flyer-teaser__body { flex: 1; }
.cde-flyer-teaser__label {
    font-size: var(--text-xs);
    font-weight: var(--weight-bold);
    color: var(--color-accent);
    text-transform: uppercase;
    letter-spacing: var(--tracking-wider);
    margin-bottom: var(--space-2);
}
.cde-flyer-teaser__title {
    font-size: var(--text-2xl);
    color: var(--color-primary);
    margin-bottom: var(--space-3);
}
.cde-flyer-teaser__text {
    font-size: var(--text-base);
    color: var(--color-text-secondary);
    margin-bottom: var(--space-6);
    max-width: 560px;
}
.cde-flyer-teaser__size {
    font-size: var(--text-xs);
    font-weight: var(--weight-normal);
    opacity: 0.7;
}
@media (max-width: 640px) {
    .cde-flyer-teaser { flex-direction: column; gap: var(--space-6); }
    .cde-flyer-teaser__preview { width: 140px; }
}

/* ─── Mitglied werden — Teaser ───────────────────────────────────────────────── */
.cde-membership-teaser {
    background: var(--color-background-secondary);
    border-bottom: 1px solid var(--color-border-tertiary);
}
.cde-membership-teaser__inner {
    max-width: 760px;
    margin: 0 auto;
}
.cde-membership-teaser__headline {
    font-size: clamp(var(--text-2xl), 3vw, var(--text-4xl));
    color: var(--color-primary);
    margin-bottom: var(--space-4);
    line-height: var(--leading-tight);
}
.cde-membership-teaser__text {
    font-size: var(--text-lg);
    color: var(--color-text-secondary);
    line-height: var(--leading-relaxed);
    margin-bottom: var(--space-8);
}
.cde-membership-teaser__text p { margin: 0 0 var(--space-3); }

.cde-membership-reasons {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: var(--space-4);
    margin-bottom: var(--space-10);
}
.cde-membership-reason {
    display: flex;
    gap: var(--space-4);
    align-items: flex-start;
    background: var(--color-surface);
    border: 1px solid var(--color-border-tertiary);
    border-radius: var(--border-radius-lg);
    padding: var(--space-5);
}
.cde-membership-reason__icon {
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    border-radius: var(--border-radius-md);
    background: var(--color-primary);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: var(--text-base);
}
.cde-membership-reason__title {
    font-weight: var(--weight-bold);
    color: var(--color-primary);
    font-size: var(--text-sm);
    margin-bottom: var(--space-1);
}
.cde-membership-reason__text {
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
    line-height: var(--leading-relaxed);
}
.cde-membership-teaser__cta {
    display: inline-flex;
    gap: var(--space-2);
    align-items: center;
}

/* ─── Membership CTA Section ─────────────────────────────────────────────────── */
.cde-cta-section {
    padding: var(--space-20) 0;
    background: var(--color-primary);
    text-align: center;
}
.cde-cta-section__title {
    font-size: clamp(var(--text-2xl), 3vw, var(--text-3xl));
    color: var(--color-accent);
    margin-bottom: var(--space-4);
}
.cde-cta-section__text {
    font-size: var(--text-lg);
    color: rgba(255,255,255,0.75);
    max-width: 560px;
    margin: 0 auto var(--space-8);
    line-height: var(--leading-relaxed);
}

/* ─── Front Page: Featured Post ──────────────────────────────────────────────── */
.cde-featured-post {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-6);
    margin-bottom: var(--space-10);
    background: var(--color-surface);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-card);
    overflow: hidden;
}
.cde-featured-post__image {
    aspect-ratio: 16/9;
    background: linear-gradient(135deg, var(--color-primary-200), var(--color-primary-100));
    overflow: hidden;
    position: relative;
}
.cde-featured-post__image img {
    width: 100%; height: 100%;
    object-fit: cover;
}
.cde-featured-post__body {
    padding: var(--space-6) var(--space-8);
    display: flex;
    flex-direction: column;
    justify-content: center;
}
@media (min-width: 768px) {
    .cde-featured-post {
        grid-template-columns: 1fr 1fr;
        min-height: 280px;
    }
    .cde-featured-post__image { aspect-ratio: auto; }
}

/* ─── Year Filter ────────────────────────────────────────────────────────────── */
.cde-filter {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--space-2);
    margin-bottom: var(--space-8);
}
.cde-filter__label {
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
    margin-right: var(--space-2);
}
.cde-filter__btn {
    padding: 0.375rem 1rem;
    font-size: var(--text-sm);
    font-weight: var(--weight-medium);
    border-radius: var(--radius-full);
    border: 1.5px solid var(--color-border-strong);
    background: var(--color-surface);
    color: var(--color-text-secondary);
    cursor: pointer;
    transition: background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);
    text-decoration: none;
}
.cde-filter__btn:hover,
.cde-filter__btn.is-active {
    background: var(--color-primary);
    color: white;
    border-color: var(--color-primary);
}

/* ─── Event Detail ───────────────────────────────────────────────────────────── */
.cde-event-hero {
    aspect-ratio: 21/6;
    min-height: 240px;
    background: linear-gradient(135deg, var(--color-primary-900), var(--color-primary-700));
    position: relative;
    display: flex;
    align-items: flex-end;
    padding: var(--space-8) 0;
    overflow: hidden;
}
.cde-event-hero img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0.4;
}
.cde-event-hero__content {
    position: relative;
    z-index: 1;
    width: 100%;
}
.cde-event-hero__title {
    color: white;
    font-size: clamp(var(--text-2xl), 4vw, var(--text-4xl));
    max-width: 700px;
    margin-top: var(--space-3);
}

.cde-event-info {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-6);
    padding: var(--space-5) 0;
    border-bottom: 1px solid var(--color-border);
    margin-bottom: var(--space-6);
}
.cde-event-info__item {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
}
.cde-event-info__label {
    font-size: var(--text-xs);
    font-weight: var(--weight-semibold);
    color: var(--color-text-muted);
    text-transform: uppercase;
    letter-spacing: var(--tracking-widest);
}
.cde-event-info__value {
    font-size: var(--text-sm);
    font-weight: var(--weight-bold);
    color: var(--color-primary);
}

/* Program timeline */
.cde-program__list {
    list-style: none;
    padding: 0;
    margin: var(--space-4) 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}
.cde-program__item {
    display: flex;
    gap: var(--space-4);
    padding: var(--space-3) 0;
    border-bottom: 1px solid var(--color-border);
}
.cde-program__item:last-child { border-bottom: none; }
.cde-program__time {
    font-size: var(--text-sm);
    font-weight: var(--weight-bold);
    color: var(--color-accent);
    white-space: nowrap;
    min-width: 60px;
}
.cde-program__point {
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
}

/* ─── About Us ───────────────────────────────────────────────────────────────── */
.cde-about-list {
    list-style: none;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}
.cde-about-list__item {
    display: flex;
    gap: var(--space-3);
    font-size: var(--text-base);
    color: var(--color-text-secondary);
    line-height: var(--leading-relaxed);
}
.cde-about-list__item::before {
    content: "—";
    color: var(--color-accent);
    flex-shrink: 0;
    margin-top: 2px;
}

/* Board list in sidebar */
.cde-board-list {
    list-style: none;
    padding: 0;
    display: flex;
    flex-direction: column;
}
.cde-board-list__item {
    padding: var(--space-3) 0;
    border-bottom: 1px solid var(--color-border);
}
.cde-board-list__item:last-child { border-bottom: none; }
.cde-board-list__name {
    font-size: var(--text-sm);
    font-weight: var(--weight-bold);
    color: var(--color-primary);
    font-family: var(--font-sans);
}
.cde-board-list__role {
    font-size: var(--text-xs);
    font-weight: var(--weight-semibold);
    color: var(--color-accent);
    text-transform: uppercase;
    letter-spacing: var(--tracking-wider);
}
.cde-board-list__contact {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--text-xs);
    color: var(--color-text-secondary);
    text-decoration: none;
    margin-top: var(--space-1);
    word-break: break-all;
}
.cde-board-list__contact:hover { color: var(--color-primary); }
.cde-board-list__contact i { flex-shrink: 0; color: var(--color-accent); width: 12px; text-align: center; }

/* ─── Members Area ───────────────────────────────────────────────────────────── */
.cde-gallery-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-4);
}
@media (min-width: 768px) {
    .cde-gallery-grid { grid-template-columns: repeat(3, 1fr); }
}

.cde-gallery-item {
    aspect-ratio: 4/3;
    border-radius: var(--radius-lg);
    overflow: hidden;
    position: relative;
    cursor: pointer;
    background: linear-gradient(135deg, var(--color-primary-800), var(--color-primary-600));
}
.cde-gallery-item img {
    width: 100%; height: 100%;
    object-fit: cover;
    transition: transform var(--transition-base);
}
.cde-gallery-item:hover img { transform: scale(1.02); }
.cde-gallery-item__overlay {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: var(--space-3) var(--space-4);
    background: linear-gradient(to top, rgba(13,28,53,0.85), transparent);
}
.cde-gallery-item__title {
    font-size: var(--text-xs);
    font-weight: var(--weight-bold);
    color: white;
    font-family: var(--font-sans);
}
.cde-gallery-item__meta {
    font-size: 0.625rem;
    color: rgba(255,255,255,0.6);
    font-family: var(--font-sans);
}

/* Downloads list */
.cde-downloads-list {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}
.cde-download-item {
    display: flex;
    align-items: center;
    gap: var(--space-4);
    padding: var(--space-4) var(--space-5);
    background: var(--color-surface);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
    transition: box-shadow var(--transition-base);
}
.cde-download-item:hover { box-shadow: var(--shadow-md); }
.cde-download-item__icon {
    width: 38px;
    height: 38px;
    border-radius: var(--radius-full);
    background: var(--color-primary-50);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    color: var(--color-primary);
    font-size: var(--text-lg);
}
.cde-download-item__body { flex: 1; min-width: 0; }
.cde-download-item__name {
    font-size: var(--text-sm);
    font-weight: var(--weight-bold);
    color: var(--color-primary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.cde-download-item__meta {
    font-size: var(--text-xs);
    color: var(--color-text-muted);
}

/* ─── Login / Members Auth ───────────────────────────────────────────────────── */
.cde-login-wrap {
    min-height: 70vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--space-12) var(--space-6);
}
.cde-login-card {
    background: var(--color-surface);
    box-shadow: var(--shadow-xl);
    border-radius: var(--radius-lg);
    padding: var(--space-10) var(--space-8);
    width: 100%;
    max-width: 440px;
    text-align: center;
}
.cde-login-card__icon {
    width: 56px;
    height: 56px;
    border-radius: var(--radius-full);
    background: var(--color-primary-50);
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto var(--space-5);
    color: var(--color-primary);
    font-size: var(--text-2xl);
}
.cde-login-card__title {
    font-size: var(--text-2xl);
    color: var(--color-primary);
    margin-bottom: var(--space-2);
}
.cde-login-card__text {
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
    margin-bottom: var(--space-6);
}
.cde-login-card__hint {
    font-size: var(--text-xs);
    color: var(--color-text-muted);
    margin-top: var(--space-4);
}
.cde-login-card__hint a { color: var(--color-accent); font-weight: var(--weight-semibold); }

/* native WP password form inside login card */
.cde-pw-form-wrap .post-password-form { margin: 0; }
.cde-pw-form-wrap .post-password-form > p:first-child { display: none; }
.cde-pw-form-wrap .post-password-form > p:last-child {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    margin: 0;
}
.cde-pw-form-wrap .post-password-form label {
    font-size: var(--text-sm);
    font-weight: var(--weight-semibold);
    color: var(--color-text-primary);
    display: block;
    margin-bottom: var(--space-1);
}
.cde-pw-form-wrap .post-password-form input[type="password"] {
    width: 100%;
    padding: var(--space-3) var(--space-4);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    font-size: var(--text-base);
    color: var(--color-text-primary);
    background: var(--color-surface);
    box-sizing: border-box;
}
.cde-pw-form-wrap .post-password-form input[type="password"]:focus {
    outline: none;
    border-color: var(--color-primary);
    box-shadow: 0 0 0 3px var(--color-primary-100);
}
.cde-pw-form-wrap .post-password-form input[type="submit"] {
    width: 100%;
    padding: var(--space-3) var(--space-6);
    background: var(--color-primary);
    color: #fff;
    border: none;
    border-radius: var(--radius-md);
    font-size: var(--text-base);
    font-weight: var(--weight-semibold);
    cursor: pointer;
    transition: background var(--transition-fast);
}
.cde-pw-form-wrap .post-password-form input[type="submit"]:hover {
    background: var(--color-primary-900);
}

/* ─── Tabs (Impressum) ───────────────────────────────────────────────────────── */
.cde-tabs {
    display: flex;
    gap: 0;
    border-bottom: 2px solid var(--color-border);
    margin-bottom: var(--space-8);
}
.cde-tab {
    padding: var(--space-3) var(--space-5);
    font-size: var(--text-sm);
    font-weight: var(--weight-semibold);
    color: var(--color-text-secondary);
    cursor: pointer;
    border-bottom: 2px solid transparent;
    margin-bottom: -2px;
    background: none;
    border-top: none;
    border-left: none;
    border-right: none;
    transition: color var(--transition-fast), border-color var(--transition-fast);
}
.cde-tab:hover { color: var(--color-primary); }
.cde-tab.is-active {
    color: var(--color-primary);
    border-bottom-color: var(--color-primary);
    font-weight: var(--weight-bold);
}
.cde-tab-panel { display: none; }
.cde-tab-panel.is-active { display: block; }

/* Impressum content styles */
.cde-legal-content {
    max-width: 760px;
    margin: 0 auto;
    background: var(--color-surface);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-card);
    padding: var(--space-8) var(--space-10);
}
.cde-legal-content h2 { margin-bottom: var(--space-6); }
.cde-legal-content h3 {
    font-size: var(--text-xs);
    font-family: var(--font-sans);
    text-transform: uppercase;
    letter-spacing: var(--tracking-widest);
    color: var(--color-text-secondary);
    margin: var(--space-6) 0 var(--space-2);
    font-weight: var(--weight-semibold);
}
.cde-legal-content address {
    font-style: normal;
    line-height: var(--leading-relaxed);
    margin-bottom: var(--space-4);
}
.cde-legal-content p { color: var(--color-text-secondary); line-height: var(--leading-relaxed); }
.cde-legal-content a { color: var(--color-accent); font-weight: var(--weight-semibold); }

/* ─── CF7 / Form Styles ──────────────────────────────────────────────────────── */
.cde-form__section {
    background: var(--color-surface);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-card);
    padding: var(--space-6) var(--space-8);
    margin-bottom: var(--space-6);
    border: none;
}
.cde-form__section-title {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    font-family: var(--font-serif);
    font-size: var(--text-xl);
    font-weight: var(--weight-bold);
    color: var(--color-primary);
    margin-bottom: var(--space-6);
    padding-bottom: var(--space-4);
    border-bottom: 1px solid var(--color-border);
}
.cde-form__section-number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: var(--radius-full);
    background: var(--color-primary);
    color: white;
    font-size: var(--text-sm);
    font-family: var(--font-sans);
    flex-shrink: 0;
}
.cde-form__field {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    margin-bottom: var(--space-5);
}
.cde-form__field:last-child { margin-bottom: 0; }
.cde-form__row {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-4);
    margin-bottom: var(--space-5);
}
@media (min-width: 640px) {
    .cde-form__row { grid-template-columns: 1fr 1fr; }
    .cde-form__field--plz { max-width: 160px; }
}
.cde-form__label {
    font-size: var(--text-sm);
    font-weight: var(--weight-semibold);
    color: var(--color-text-primary);
    font-family: var(--font-sans);
}
.cde-form__required { color: var(--color-error); }

/* CF7 input/select/textarea reset & styling */
.wpcf7 input:not([type="submit"]):not([type="radio"]):not([type="checkbox"]),
.wpcf7 select,
.wpcf7 textarea,
.cde-input {
    display: block;
    width: 100%;
    padding: 0.625rem 0.875rem;
    font-family: var(--font-sans);
    font-size: var(--text-base);
    color: var(--color-text-primary);
    background: var(--color-surface);
    border: 1.5px solid var(--color-border-strong);
    border-radius: var(--radius-md);
    outline: none;
    transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
    box-sizing: border-box;
    -webkit-appearance: none;
    appearance: none;
    min-height: 44px;
}
.wpcf7 input:not([type="submit"]):not([type="radio"]):not([type="checkbox"]):focus,
.wpcf7 select:focus,
.wpcf7 textarea:focus {
    border-color: var(--color-primary);
    box-shadow: var(--focus-ring);
}
.wpcf7 input.wpcf7-not-valid,
.wpcf7 select.wpcf7-not-valid,
.wpcf7 textarea.wpcf7-not-valid {
    border-color: var(--color-error);
}
.wpcf7 textarea {
    resize: vertical;
    min-height: 120px;
}
.wpcf7 select {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%235C5650' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 0.75rem center;
    padding-right: 2.5rem;
    cursor: pointer;
}
.cde-iban-field { letter-spacing: 0.04em; font-family: var(--font-mono); }

/* CF7 submit button */
.wpcf7 input[type="submit"] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.75rem 2rem;
    font-family: var(--font-sans);
    font-size: var(--text-base);
    font-weight: var(--weight-semibold);
    color: white;
    background: var(--color-primary);
    border: 2px solid var(--color-primary);
    border-radius: var(--radius-md);
    cursor: pointer;
    transition: background var(--transition-fast), transform var(--transition-fast);
    min-height: 48px;
    width: 100%;
}
.wpcf7 input[type="submit"]:hover {
    background: var(--color-primary-hover);
    border-color: var(--color-primary-hover);
    transform: translateY(-1px);
}
.wpcf7 input[type="submit"]:focus-visible { box-shadow: var(--focus-ring); outline: none; }

/* CF7 radio groups */
.cde-form__radio-group .wpcf7-radio {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}
.cde-form__radio-group .wpcf7-radio .wpcf7-list-item {
    display: flex;
    align-items: flex-start;
    gap: var(--space-3);
    padding: var(--space-4) var(--space-5);
    background: var(--color-bg);
    border: 1.5px solid var(--color-primary-100);
    border-radius: var(--radius-md);
    cursor: pointer;
    transition: border-color var(--transition-fast), background var(--transition-fast);
}
.cde-form__radio-group .wpcf7-radio .wpcf7-list-item:has(input:checked) {
    border-color: var(--color-primary);
    background: var(--color-primary-50);
}
.cde-form__radio-group .wpcf7-radio .wpcf7-list-item-label { cursor: pointer; }
.cde-form__radio-group input[type="radio"] {
    accent-color: var(--color-primary);
    margin-top: 3px;
    flex-shrink: 0;
    cursor: pointer;
    min-height: unset;
    width: auto;
}

/* Checkboxes */
.cde-form__checkbox-label {
    display: flex;
    align-items: flex-start;
    gap: var(--space-3);
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
    cursor: pointer;
    line-height: var(--leading-relaxed);
}
.cde-form__checkbox-label .wpcf7-acceptance { display: contents; }
.cde-form__checkbox-label input[type="checkbox"] {
    accent-color: var(--color-primary);
    margin-top: 4px;
    flex-shrink: 0;
    cursor: pointer;
    min-height: unset;
    width: auto;
}
.cde-form__checkbox-label a { color: var(--color-accent); font-weight: var(--weight-semibold); }
.cde-form__legal {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
    padding: var(--space-6) 0;
    border-top: 1px solid var(--color-border);
    margin-top: var(--space-4);
}

/* CF7 validation messages */
.wpcf7-not-valid-tip {
    display: block;
    font-size: var(--text-xs);
    color: var(--color-error);
    margin-top: var(--space-1);
}
.wpcf7-response-output {
    padding: var(--space-4) var(--space-5);
    border-radius: var(--radius-md);
    font-size: var(--text-sm);
    margin-top: var(--space-5);
    border: none !important;
}
.wpcf7-mail-sent-ok {
    background: rgba(45,122,71,0.1);
    color: var(--color-success);
    border-left: 4px solid var(--color-success) !important;
}
.wpcf7-mail-sent-ng,
.wpcf7-aborted {
    background: rgba(193,48,48,0.1);
    color: var(--color-error);
    border-left: 4px solid var(--color-error) !important;
}
.wpcf7-spam-blocked {
    background: rgba(176,122,26,0.1);
    color: var(--color-warning);
    border-left: 4px solid var(--color-warning) !important;
}
.wpcf7-validation-errors {
    background: rgba(193,48,48,0.07);
    color: var(--color-error);
    border-left: 4px solid var(--color-error) !important;
}

/* CF7 loading spinner */
.wpcf7 .ajax-loader {
    display: inline-block;
    width: 18px;
    height: 18px;
    margin-left: var(--space-2);
    border: 2px solid rgba(255,255,255,0.4);
    border-top-color: white;
    border-radius: 50%;
    animation: cde-spin 0.6s linear infinite;
}
@keyframes cde-spin { to { transform: rotate(360deg); } }

/* ─── Contact Page ───────────────────────────────────────────────────────────── */
.cde-contact-layout {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-8);
    align-items: start;
}
@media (min-width: 1024px) {
    .cde-contact-layout { grid-template-columns: 3fr 2fr; }
    .cde-contact-sidebar { position: sticky; top: calc(var(--nav-height) + var(--space-6)); }
}
.cde-contact-card {
    background: var(--color-surface);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-card);
    padding: var(--space-6) var(--space-8);
    margin-bottom: var(--space-5);
}
.cde-contact-card__title {
    font-size: var(--text-lg);
    color: var(--color-primary);
    margin-bottom: var(--space-4);
    padding-bottom: var(--space-3);
    border-bottom: 1px solid var(--color-border);
}
.cde-contact-card address {
    font-style: normal;
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
    line-height: var(--leading-relaxed);
}
.cde-contact-card a { color: var(--color-accent); font-weight: var(--weight-semibold); }

.cde-contact-board {
    display: flex;
    flex-direction: column;
    gap: var(--space-5);
}
.cde-contact-board__person + .cde-contact-board__person {
    padding-top: var(--space-5);
    border-top: 1px solid var(--color-border);
}
.cde-contact-board__name {
    font-size: var(--text-sm);
    font-weight: var(--weight-bold);
    color: var(--color-primary);
    margin-bottom: var(--space-1);
}
.cde-contact-board__role {
    font-size: var(--text-xs);
    font-weight: var(--weight-semibold);
    color: var(--color-accent);
    text-transform: uppercase;
    letter-spacing: var(--tracking-wider);
    margin-bottom: var(--space-3);
}
.cde-contact-board__link {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--text-xs);
    color: var(--color-text-secondary) !important;
    font-weight: var(--weight-normal) !important;
    text-decoration: none;
    margin-top: var(--space-1);
    word-break: break-all;
}
.cde-contact-board__link:hover { color: var(--color-primary) !important; }
.cde-contact-board__link i { flex-shrink: 0; color: var(--color-text-muted); }

/* ─── Search & 404 ───────────────────────────────────────────────────────────── */
.cde-search-form {
    display: flex;
    gap: var(--space-2);
    max-width: 480px;
    margin: var(--space-6) auto;
}
.cde-search-form input[type="search"] {
    flex: 1;
    padding: 0.625rem var(--space-4);
    border: 1.5px solid var(--color-border-strong);
    border-radius: var(--radius-md);
    font-size: var(--text-base);
    outline: none;
}
.cde-search-form input[type="search"]:focus {
    border-color: var(--color-primary);
    box-shadow: var(--focus-ring);
}

/* ─── Pagination ─────────────────────────────────────────────────────────────── */
.cde-pagination {
    display: flex;
    justify-content: center;
    gap: var(--space-2);
    padding-top: var(--space-10);
}
.cde-pagination a,
.cde-pagination span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 40px;
    height: 40px;
    padding: 0 var(--space-3);
    border-radius: var(--radius-md);
    font-size: var(--text-sm);
    font-weight: var(--weight-medium);
    border: 1.5px solid var(--color-border);
    color: var(--color-text-secondary);
    transition: background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);
}
.cde-pagination a:hover { background: var(--color-primary-50); border-color: var(--color-primary); color: var(--color-primary); }
.cde-pagination .current { background: var(--color-primary); border-color: var(--color-primary); color: white; }

/* ─── Post Content ───────────────────────────────────────────────────────────── */
.cde-entry-content {
    font-size: var(--text-base);
    line-height: var(--leading-relaxed);
    color: var(--color-text-secondary);
}
.cde-entry-content h2,
.cde-entry-content h3 { margin: var(--space-6) 0 var(--space-3); }
.cde-entry-content p { margin-bottom: var(--space-4); }
.cde-entry-content ul,
.cde-entry-content ol {
    margin: 0 0 var(--space-4) var(--space-6);
}
.cde-entry-content ul li,
.cde-entry-content ol li { margin-bottom: var(--space-2); }
.cde-entry-content a { color: var(--color-accent); font-weight: var(--weight-semibold); }
.cde-entry-content figure { margin: var(--space-6) 0; }
.cde-entry-content figcaption {
    font-size: var(--text-xs);
    color: var(--color-text-muted);
    margin-top: var(--space-2);
    font-family: var(--font-sans);
    text-align: center;
}
.cde-entry-content img {
    border-radius: var(--radius-lg);
    width: 100%;
    height: auto;
}

/* ─── Related Posts Sidebar ──────────────────────────────────────────────────── */
.cde-related-list {
    list-style: none;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
}
.cde-related-item__title {
    font-size: var(--text-sm);
    font-weight: var(--weight-bold);
    color: var(--color-primary);
    line-height: var(--leading-snug);
    margin-bottom: var(--space-1);
    transition: color var(--transition-fast);
}
.cde-related-item a:hover .cde-related-item__title { color: var(--color-accent); }
.cde-related-item__date {
    font-size: var(--text-xs);
    color: var(--color-text-muted);
}

/* ─── Badge ──────────────────────────────────────────────────────────────────── */
.cde-badge {
    display: inline-flex;
    align-items: center;
    padding: 0.25rem 0.75rem;
    border-radius: var(--radius-full);
    font-size: var(--text-xs);
    font-weight: var(--weight-semibold);
    text-transform: uppercase;
    letter-spacing: var(--tracking-wider);
    font-family: var(--font-sans);
}
.cde-badge--gold { background: var(--color-accent); color: var(--color-text-on-accent); }
.cde-badge--light { background: var(--color-primary-50); color: var(--color-primary); }
.cde-badge--members {
    background: rgba(198,168,75,0.2);
    color: var(--color-accent);
}

/* ─── Utility ────────────────────────────────────────────────────────────────── */
.cde-divider {
    border: none;
    border-top: 1px solid var(--color-border);
    margin: var(--space-6) 0;
}
.cde-text-muted { color: var(--color-text-muted); }
.cde-text-gold  { color: var(--color-accent); }
.cde-text-navy  { color: var(--color-primary); }
.cde-mt-8       { margin-top: var(--space-8); }

/* ─── Mitgliederbereich — Internbereich ──────────────────────────────────────── */
.cde-intern-section-gap { margin-top: var(--space-16); }
.cde-link {
    color: var(--color-accent);
    font-weight: var(--weight-semibold);
    text-decoration: none;
}
.cde-link:hover { color: var(--color-accent-hover); text-decoration: underline; }

/* ─── Footer ─────────────────────────────────────────────────────────────────── */
.cde-footer {
    background: var(--color-primary);
    padding: var(--space-16) 0 var(--space-8);
    margin-top: auto;
}
.cde-footer__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-8);
    margin-bottom: var(--space-10);
}
@media (min-width: 640px) {
    .cde-footer__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 1024px) {
    .cde-footer__grid { grid-template-columns: 2fr 1fr 1fr 1fr; }
}

.cde-footer__brand { display: flex; flex-direction: column; gap: var(--space-4); }
.cde-footer__logo-link {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    color: white;
    text-decoration: none;
}
.cde-footer__logo-img {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    object-fit: cover;
    display: block;
}
.cde-footer__brand-name {
    font-family: var(--font-serif);
    font-size: var(--text-sm);
    font-weight: var(--weight-bold);
    color: white;
    line-height: 1.4;
}
.cde-footer__brand-name small {
    font-size: var(--text-xs);
    font-weight: var(--weight-normal);
    opacity: 0.75;
}
.cde-footer__tagline {
    font-size: 0.8125rem;
    color: rgba(255,255,255,0.6);
    line-height: var(--leading-relaxed);
    margin: var(--space-3) 0;
}
.cde-footer__address {
    font-size: 0.8125rem;
    color: rgba(255,255,255,0.65);
    line-height: var(--leading-relaxed);
    font-style: normal;
}
.cde-footer__email {
    color: var(--color-accent);
    font-weight: var(--weight-semibold);
    font-size: 0.8125rem;
}
.cde-footer__email:hover { color: var(--color-accent-hover); }

.cde-footer__col-title {
    font-size: 0.5625rem;
    font-family: var(--font-sans);
    font-weight: var(--weight-semibold);
    text-transform: uppercase;
    letter-spacing: var(--tracking-widest);
    color: rgba(255,255,255,0.4);
    margin-bottom: var(--space-3);
}
.cde-footer__list {
    list-style: none;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}
.cde-footer__list a {
    font-size: 0.8125rem;
    color: rgba(255,255,255,0.7);
    text-decoration: none;
    transition: color var(--transition-fast);
}
.cde-footer__list a:hover { color: white; }

.cde-footer__bottom {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    align-items: center;
    padding-top: var(--space-6);
    border-top: 1px solid rgba(255,255,255,0.12);
}
@media (min-width: 640px) {
    .cde-footer__bottom {
        flex-direction: row;
        justify-content: space-between;
    }
}
.cde-footer__copy {
    font-size: var(--text-xs);
    color: rgba(255,255,255,0.32);
    margin-bottom: 0;
}
.cde-footer__legal-nav {
    display: flex;
    gap: var(--space-4);
}
.cde-footer__legal-nav a {
    font-size: var(--text-xs);
    color: rgba(255,255,255,0.32);
    text-decoration: none;
    transition: color var(--transition-fast);
}
.cde-footer__legal-nav a:hover { color: rgba(255,255,255,0.6); }

/* ─── WordPress Nav Menu Fixes ───────────────────────────────────────────────── */
.cde-nav .menu-item-has-children { position: relative; }
.cde-nav .sub-menu {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 200px;
    background: var(--color-primary-900);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-lg);
    padding: var(--space-2);
    list-style: none;
    z-index: 100;
}
.cde-nav .menu-item-has-children:hover > .sub-menu,
.cde-nav .menu-item-has-children:focus-within > .sub-menu {
    display: block;
}
.cde-nav .sub-menu a {
    display: block;
    padding: var(--space-2) var(--space-3);
    font-size: var(--text-sm);
    color: rgba(255,255,255,0.8);
    border-radius: var(--radius-sm);
}
.cde-nav .sub-menu a:hover { background: rgba(255,255,255,0.1); color: white; }

/* current page styles */
.current_page_item > a,
.current-menu-item > a {
    background: rgba(255,255,255,0.12) !important;
    color: white !important;
}

/* IBAN helper (duplicate removed — defined above) */
