/* ===========================================

   FC HEINSBERG-LIECK - MODERNES PROFI-DESIGN

   v3.0 - With modern animations & effects

   =========================================== */

/* Fonts: Montserrat + Oswald werden via fc-security Plugin lokal geladen (DSGVO-konform) */

/* === RESET & GLOBALS === */

*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; scrollbar-gutter: stable; }

html, body { overflow-x: hidden !important; }

body {

    font-family: "Montserrat", sans-serif !important;

    font-size: 16px;

    font-weight: 400;

    color: #2b2b2b;

    line-height: 1.7;

}

a { color: #cf1c1f; text-decoration: none; transition: all 0.3s ease; }

a:hover { color: #b91b07; }

/* === TYPOGRAFIE === */

h1, h2, h3, h4, h5, h6,

h1.entry-title, .entry-title, .entry-title a,

.wp-block-heading {

    font-family: "Montserrat", sans-serif !important;

    color: #cf1c1f !important;

    font-weight: 700 !important;

    line-height: 1.2 !important;

}

h1, .entry-title { font-size: 48px !important; font-weight: 800 !important; text-transform: uppercase !important; letter-spacing: 1px !important; }

h2 { font-size: 36px !important; font-weight: 700 !important; text-transform: uppercase !important; }

h3 { font-size: 24px !important; }

h4 { font-size: 20px !important; font-weight: 600 !important; }

.page .entry-title { display: none !important; }

/* === HEADER === */

.ast-primary-header-bar,
.ast-header-row[data-row="main"] {
    background-color: #1f1c1c !important;
    border-bottom: 3px solid #cf1c1f !important;
    min-height: 90px !important;
    transition: all 0.3s ease;
}

/* Sticky Header */
.ast-header-sticked .ast-primary-header-bar {
    min-height: 64px !important;
    box-shadow: 0 4px 20px rgba(0,0,0,0.3) !important;
}

/* Site title: HIDE completely */
/* Header: Site Title neben Wappen */
.ast-site-title-wrap,
.ast-site-identity .ast-site-title-wrap {
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    visibility: visible !important;
    width: auto !important;
    height: auto !important;
    overflow: visible !important;
    position: static !important;
    clip: unset !important;
}
.site-title {
    display: block !important;
    visibility: visible !important;
    width: auto !important;
    height: auto !important;
    overflow: visible !important;
    position: static !important;
    clip: unset !important;
}
.site-title a,
.site-title-link {
    color: #ffffff !important;
    font-family: "Montserrat", sans-serif !important;
    text-decoration: none !important;
    transition: color 0.3s ease !important;
}
/* Custom zweizeiliger Vereinsname */
.fc-custom-title {
    display: flex !important;
    flex-direction: column !important;
    line-height: 1.15 !important;
}
.fc-line1 {
    font-weight: 300 !important;
    font-size: 16px !important;
    letter-spacing: 1.5px !important;
    text-transform: uppercase !important;
    color: #ffffff !important;
}
.fc-line2 {
    font-weight: 800 !important;
    font-size: 22px !important;
    letter-spacing: 0.3px !important;
    color: #ffffff !important;
}
.fc-custom-title:hover .fc-line1,
.fc-custom-title:hover .fc-line2 {
    color: #cf1c1f !important;
}
.site-description {
    display: none !important;
}

/* Header: Inline Layout Wappen + Text */
.site-branding.ast-site-identity {
    display: flex !important;
    align-items: center !important;
    gap: 14px !important;
    margin-left: 20px !important;
}
.ast-logo-title-inline .site-branding {
    display: flex !important;
    align-items: center !important;
}

/* Logo: Wappen */
.custom-logo-link .custom-logo,
.ast-site-identity .custom-logo-link img,
img.custom-logo {
    max-height: 95px !important;
    width: auto !important;
    height: auto !important;
    max-width: 95px !important;
    transition: all 0.3s ease;
}

.ast-header-sticked .custom-logo-link .custom-logo,
.ast-header-sticked img.custom-logo {
    max-height: 44px !important;
}

/* Wappen - Sticky Badge (separates Element, kein Layout-Shift) */

/* === NAVIGATION === */

/* Fix: Header immer volle Breite, auch auf ast-separate-container Seiten (Blog/Mannschaften) */
.site-primary-header-wrap.ast-container {
    max-width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

.main-header-menu > .menu-item > a {

    color: #ffffff !important;

    padding: 28px 18px !important;

    text-transform: uppercase !important;

    letter-spacing: 0.5px !important;

    font-size: 13px !important;

    font-weight: 700 !important;

    font-family: "Montserrat", sans-serif !important;

    border-bottom: 3px solid transparent !important;

    transition: all 0.3s ease !important;

}

.main-header-menu > .menu-item > a:hover {

    background-color: transparent !important;

    border-bottom-color: transparent !important;

    color: #cf1c1f !important;

}

.main-header-menu > .current-menu-item > a,

.main-header-menu > .current-menu-ancestor > a {

    background-color: transparent !important;

    border-bottom-color: transparent !important;

    color: #cf1c1f !important;

}

.ast-header-sticked .main-header-menu > .menu-item > a {

    padding: 20px 16px !important;

}

/* Dropdown */

.ast-primary-header-bar .sub-menu,

.main-header-menu .sub-menu {

    background-color: #1a1a1a !important;

    border: none !important;

    box-shadow: 0 8px 24px rgba(0,0,0,0.4) !important;

    min-width: 220px !important;

}

.ast-primary-header-bar .sub-menu a,

.main-header-menu .sub-menu a {

    color: #cccccc !important;

    padding: 12px 20px !important;

    font-size: 13px !important;

    font-weight: 500 !important;

    border-left: 3px solid transparent !important;

    border-bottom: 1px solid rgba(255,255,255,0.05) !important;

    transition: all 0.3s ease !important;

}

.main-header-menu .sub-menu a:hover {

    background-color: rgba(207,28,31,0.1) !important;

    color: #ffffff !important;

    border-left-color: #cf1c1f !important;

}

/* Menu Group Labels (Mannschaften-Dropdown) */

.main-header-menu .sub-menu .menu-group-label > a {

    color: #cf1c1f !important;

    font-weight: 700 !important;

    font-size: 11px !important;

    text-transform: uppercase !important;

    letter-spacing: 1px !important;

    padding: 10px 20px 4px !important;

    border-left-color: transparent !important;

    border-bottom: none !important;

    cursor: pointer !important;

}

.main-header-menu .sub-menu .menu-group-label:first-child > a {

    padding-top: 12px !important;

}

.main-header-menu .sub-menu .menu-group-label > a:hover {

    background-color: transparent !important;

    color: #ffffff !important;

}

/* === HOMEPAGE LAYOUT === */

.page-id-11.ast-separate-container .ast-article-single {

    background: transparent !important;

    padding: 0 !important;

    box-shadow: none !important;

}

.page-id-11.ast-separate-container #primary {

    padding: 0 !important;

}

.page-id-11 .ast-container,

.page-id-11 .site-content .ast-container {

    max-width: 100% !important;

    padding-left: 0 !important;

    padding-right: 0 !important;

}

.page-id-11 .entry-content {

    max-width: 100% !important;

    padding: 0 !important;

}

.page-id-11 .entry-content > .wp-block-group:not(.alignfull) {

    max-width: 1200px !important;

    margin-left: auto !important;

    margin-right: auto !important;

    padding-left: 20px !important;

    padding-right: 20px !important;

}

/* === HERO SECTION === */

.page-id-11 .wp-block-cover.hero-section,

.page-id-11 .wp-block-cover:first-of-type {

    min-height: 70vh !important;

    margin-left: calc(-50vw + 50%) !important;

    margin-right: calc(-50vw + 50%) !important;

    width: 100vw !important;

    max-width: 100vw !important;

    clip-path: polygon(0 0, 100% 0, 100% calc(100% - 60px), 0 100%) !important;

    margin-bottom: -30px !important;

}

/* Ken Burns Effect on Hero */

@keyframes kenBurns {

    0% { transform: scale(1); }

    50% { transform: scale(1.08); }

    100% { transform: scale(1); }

}

.page-id-11 .wp-block-cover.hero-section .wp-block-cover__image-background,

.page-id-11 .wp-block-cover:first-of-type .wp-block-cover__image-background {

    animation: kenBurns 25s ease-in-out infinite !important;

}

/* HERO: Ultra-dark overlay */

.page-id-11 .wp-block-cover.hero-section > .wp-block-cover__background,

.page-id-11 .wp-block-cover:first-of-type > .wp-block-cover__background,

.page-id-11 .wp-block-cover:first-of-type > span[class*="background"] {

    background: linear-gradient(180deg, rgba(0,0,0,0.95) 0%, rgba(0,0,0,0.85) 40%, rgba(0,0,0,0.92) 100%) !important;

    opacity: 1 !important;

}

/* === NEWS CARDS === */

.news-card {

    overflow: hidden !important;

    transition: all 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94) !important;

    background: #ffffff !important;

}

.news-card:hover {

    transform: translateY(-8px) !important;

    box-shadow: 0 16px 40px rgba(0,0,0,0.15) !important;

}

.news-card h4 a { color: #1f1c1c !important; text-decoration: none !important; }

.news-card h4 a:hover { color: #cf1c1f !important; }

/* News Card Image Zoom on Hover */

.news-card:hover .news-card-image img {

    transform: scale(1.08) !important;

}

/* === TEAM CARDS === */

.page-id-11 .team-card {

    transition: all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94) !important;

    overflow: hidden !important;

}

.page-id-11 .team-card .wp-block-cover__background {

    opacity: 0.5 !important;

    transition: opacity 0.4s ease !important;

}

.page-id-11 .team-card:hover .wp-block-cover__background {

    opacity: 0.35 !important;

}

.page-id-11 .team-card .wp-block-cover__image-background {

    transition: transform 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94) !important;

}

.page-id-11 .team-card:hover .wp-block-cover__image-background {

    transform: scale(1.06) !important;

}

.page-id-11 .team-card:hover {

    box-shadow: 0 12px 36px rgba(0,0,0,0.2) !important;

}

/* === VEREIN ICONS === */

.verein-icon img {

    transition: all 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94) !important;

}

.wp-block-column:hover .verein-icon img {

    transform: scale(1.12) !important;

    box-shadow: 0 4px 20px rgba(207, 28, 31, 0.4) !important;

}

/* === SECTION COLORS === */

.section-dark h2.wp-block-heading,

.page-id-11 .alignfull[style*="1f1c1c"] h2,

.page-id-11 .alignfull[style*="1f1c1c"] h4 {

    color: #ffffff !important;

}

.section-red h2.wp-block-heading,

.page-id-11 .alignfull[style*="cf1c1f"] h2 {

    color: #ffffff !important;

}

/* Full-width sections */

.page-id-11 .entry-content > .alignfull {

    margin-left: calc(-50vw + 50%) !important;

    margin-right: calc(-50vw + 50%) !important;

    max-width: 100vw !important;

    width: 100vw !important;

}

/* === CTA SECTION - Diagonal Stripes Pattern === */

.page-id-11 .section-red,

.page-id-11 .alignfull[style*="cf1c1f"] {

    position: relative !important;

    overflow: hidden !important;

}

.page-id-11 .section-red::before,

.page-id-11 .alignfull[style*="cf1c1f"]::before {

    content: "" !important;

    position: absolute !important;

    top: 0 !important;

    left: 0 !important;

    right: 0 !important;

    bottom: 0 !important;

    background: repeating-linear-gradient(

        -45deg,

        transparent,

        transparent 30px,

        rgba(255,255,255,0.04) 30px,

        rgba(255,255,255,0.04) 60px

    ) !important;

    pointer-events: none !important;

    z-index: 0 !important;

}

.page-id-11 .section-red > *,

.page-id-11 .alignfull[style*="cf1c1f"] > * {

    position: relative !important;

    z-index: 1 !important;

}

/* === MANNSCHAFTEN SECTION - Subtle Dot Pattern === */

.page-id-11 .section-gray,

.page-id-11 .alignfull[style*="f5f5f5"] {

    position: relative !important;

}

.page-id-11 .section-gray::before,

.page-id-11 .alignfull[style*="f5f5f5"]::before {

    content: "" !important;

    position: absolute !important;

    top: 0 !important;

    left: 0 !important;

    right: 0 !important;

    bottom: 0 !important;

    background-image: radial-gradient(circle, rgba(0,0,0,0.04) 1px, transparent 1px) !important;

    background-size: 20px 20px !important;

    pointer-events: none !important;

    z-index: 0 !important;

}

.page-id-11 .section-gray > *,

.page-id-11 .alignfull[style*="f5f5f5"] > * {

    position: relative !important;

    z-index: 1 !important;

}

/* === BUTTONS - Lift Effect === */

.wp-block-button .wp-block-button__link {

    font-family: "Montserrat", sans-serif !important;

    font-weight: 700 !important;

    text-transform: uppercase !important;

    letter-spacing: 1px !important;

    border-radius: 4px !important;

    transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94) !important;

}

.wp-block-button .wp-block-button__link:hover {

    transform: translateY(-3px) !important;

    box-shadow: 0 6px 20px rgba(0,0,0,0.2) !important;

}

/* === SCROLL REVEAL ANIMATION === */

@keyframes fadeInUp {

    from {

        opacity: 0;

        transform: translateY(30px);

    }

    to {

        opacity: 1;

        transform: translateY(0);

    }

}

.scroll-reveal {

    opacity: 0;

    transform: translateY(30px);

    transition: opacity 0.6s ease, transform 0.6s ease;

}

.scroll-reveal.revealed {

    opacity: 1;

    transform: translateY(0);

}

/* === SEPARATOR FIX === */

.page-id-11 .wp-block-separator.is-style-wide,

.page-id-11 hr.wp-block-separator.is-style-wide,

.page-id-11 .wp-block-separator.has-vivid-red-background-color {

    border: none !important;

    border-top: none !important;

    border-bottom: none !important;

    height: 3px !important;

    max-width: 80px !important;

    width: 80px !important;

    margin: 0 auto 40px !important;

    background: #cf1c1f !important;

    opacity: 1 !important;

}

/* === TEAM CARD FIX === */

.page-id-11 .section-gray .wp-block-cover,

.page-id-11 .alignfull .wp-block-columns .wp-block-cover,

.page-id-11 .wp-block-columns .wp-block-cover.team-card {

    width: 100% !important;

    max-width: 100% !important;

    margin-left: 0 !important;

    margin-right: 0 !important;

}

.page-id-11 .team-card h3,

.page-id-11 .wp-block-columns .wp-block-cover h3 {

    color: #ffffff !important;

}

/* === FOOTER === */

.site-footer { background-color: #1f1c1c !important; }

.site-primary-footer-wrap {

    background-color: #1f1c1c !important;

    padding: 50px 0 30px !important;

}

.site-primary-footer-wrap,

.site-primary-footer-wrap p,

.site-primary-footer-wrap a,

.site-primary-footer-wrap strong {

    color: #ffffff !important;

}

.site-primary-footer-wrap p { color: #aaaaaa !important; font-size: 14px !important; line-height: 1.8 !important; }

.site-primary-footer-wrap a { color: #aaaaaa !important; }

.site-primary-footer-wrap a:hover { color: #cf1c1f !important; }

.site-primary-footer-wrap strong { color: #ffffff !important; }

.site-primary-footer-wrap img[src*="wappen"],

.ast-footer-html-1 img {

    filter: none !important;

    opacity: 1 !important;

}

/* Footer Branding (Wappen + Vereinsname) */

.fc-footer-branding {

    display: inline-flex !important;

    align-items: center !important;

    gap: 15px !important;

    margin-bottom: 20px !important;

}

.ast-footer-html-1 .ast-builder-html-element { text-align: center !important; }

.fc-footer-branding img {

    height: 65px !important;

    width: auto !important;

}

.fc-footer-branding div { text-align: left !important; }

.fc-footer-branding p { display: none !important; }

.fc-footer-branding br { display: none !important; }

.fc-footer-line1 {

    display: block !important;

    font-size: 14px !important;

    font-weight: 300 !important;

    color: #ffffff !important;

    font-family: "Montserrat", sans-serif !important;

    line-height: 1.2 !important;

}

.fc-footer-line2 {

    display: block !important;

    font-size: 19px !important;

    font-weight: 800 !important;

    color: #ffffff !important;

    font-family: "Montserrat", sans-serif !important;

    line-height: 1.2 !important;

}

.site-primary-footer-wrap h4 {

    font-family: "Montserrat", sans-serif !important;

    font-size: 13px !important;

    font-weight: 700 !important;

    text-transform: uppercase !important;

    letter-spacing: 1px !important;

    color: #ffffff !important;

    margin-bottom: 16px !important;

}

.site-below-footer-wrap {

    background-color: #111111 !important;

    border-top: 1px solid rgba(255,255,255,0.08) !important;

}

.site-below-footer-wrap,

.site-below-footer-wrap p,

.site-below-footer-wrap a { color: #666666 !important; font-size: 13px !important; }

.site-below-footer-wrap a:hover { color: #cf1c1f !important; }

.site-below-footer-wrap .site-below-footer-inner-wrap,

.site-below-footer-wrap .ast-builder-grid-row { padding: 15px 0 !important; min-height: 0 !important; }

/* === BLOG / AKTUELLES === */

.blog #primary {

    margin-top: 0 !important;

}

/* Blog header wird jetzt per PHP (mu-plugin) als echtes HTML injiziert */
.blog #primary > .alignfull {
    margin-left: calc(-50vw + 50%) !important;
    margin-right: calc(-50vw + 50%) !important;
    width: 100vw !important;
    margin-bottom: 30px !important;
}

.ast-separate-container .ast-article-post {
    border-radius: 8px !important;
    overflow: hidden !important;
    box-shadow: none !important;
    transition: all 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94) !important;
    border: none !important;
    background: transparent !important;
    margin-bottom: 24px !important;
}

.ast-separate-container .ast-article-post .ast-article-inner {
    border-radius: 8px !important;
    box-shadow: 0 4px 16px rgba(0,0,0,0.08) !important;
    background: #ffffff !important;
    overflow: hidden !important;
}

.ast-separate-container .ast-article-post:hover {
    transform: translateY(-6px) !important;
}

.ast-separate-container .ast-article-post:hover .ast-article-inner {
    box-shadow: 0 12px 32px rgba(0,0,0,0.15) !important;
}

/* Blog Card Titles - fix word-breaking in grid */
.blog .ast-article-post .entry-title {
    font-size: 18px !important;
    line-height: 1.3 !important;
    font-weight: 700 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    word-break: normal !important;
    overflow-wrap: anywhere !important;
}
.blog .ast-article-post .entry-title a {
    color: #1f1c1c !important;
    text-decoration: none !important;
}
.blog .ast-article-post .entry-title a:hover {
    color: #cf1c1f !important;
}

/* Blog Card Meta - hide author (redundant on club site), show only date */
.blog .ast-article-post .entry-meta {
    font-size: 0 !important;
    color: #999 !important;
    margin-bottom: 10px !important;
}
.blog .ast-article-post .entry-meta .posted-on {
    font-size: 13px !important;
    color: #cf1c1f !important;
    font-weight: 500 !important;
}
.blog .ast-article-post .entry-meta .posted-by,
.blog .ast-article-post .entry-meta .byline {
    display: none !important;
}
.blog .ast-article-post .entry-meta a {
    color: #999 !important;
    font-weight: 400 !important;
}

/* Category tags - default (non-blog pages) */
.cat-links a {
    color: #cf1c1f !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    font-size: 11px !important;
    letter-spacing: 1px !important;
    text-decoration: none !important;
}

/* Blog Card - Image with overlays */
.blog .ast-article-post .ast-blog-featured-section {
    position: static !important;
    z-index: 0 !important;
}
.blog .ast-article-post .post-content {
    position: relative !important;
}
.ast-article-post .post-thumb-img-content {
    overflow: hidden !important;
    aspect-ratio: 16/9;
    position: relative !important;
}
.ast-article-post .post-thumb-img-content img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    transition: transform 0.4s ease !important;
}
.ast-article-post:hover .post-thumb-img-content img {
    transform: scale(1.05) !important;
}

/* Red info bar ABOVE image */
.blog .ast-article-post .ast-article-inner {
    padding-top: 0 !important;
}
.blog .ast-article-post .post-content::before {
    content: '';
    display: block;
    order: 0;
    height: 32px;
    background: #cf1c1f;
    margin: 0 -24px;
}
.blog .ast-article-post .post-thumb-img-content {
    margin-top: 0 !important;
}
.blog .ast-article-post .post-thumb-img-content::after {
    display: none !important;
}

/* Category badge - left side of red bar */
.blog .cat-links {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    z-index: 3 !important;
    margin: 0 !important;
    height: 32px !important;
    display: flex !important;
    align-items: center !important;
}
.blog .cat-links a {
    background: transparent !important;
    color: #ffffff !important;
    padding: 0 !important;
    border-radius: 0 !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    letter-spacing: 1px !important;
    text-transform: uppercase !important;
    text-decoration: none !important;
    box-shadow: none !important;
}

/* Card layout: flex chain for equal-height cards with bottom-aligned Weiterlesen */
.blog .ast-article-post .ast-article-inner {
    display: flex !important;
    flex-direction: column !important;
    height: 100% !important;
}
.blog .ast-article-post .post-content {
    display: flex !important;
    flex-direction: column !important;
    flex: 1 !important;
}
.blog .ast-article-post .ast-blog-featured-section { order: 1 !important; }
.blog .ast-article-post .entry-header.ast-blog-single-element { order: 1 !important; }
.blog .ast-article-post .entry-title { order: 3 !important; }
.blog .ast-article-post .ast-excerpt-container { order: 4 !important; }
.blog .ast-article-post .entry-content { order: 5 !important; margin-top: auto !important; }

/* Date badge - right side of red bar */
.blog .ast-article-post .entry-header.ast-blog-single-element {
    position: absolute !important;
    top: 0 !important;
    right: 0 !important;
    left: auto !important;
    z-index: 3 !important;
    margin: 0 !important;
    padding: 0 !important;
    height: 32px !important;
    display: flex !important;
    align-items: center !important;
}
.blog .ast-article-post .entry-meta {
    font-size: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
}
.blog .ast-article-post .entry-meta .posted-on,
.blog .ast-article-post .entry-meta .posted-on * {
    font-size: 12px !important;
    color: #ffffff !important;
    font-weight: 700 !important;
    font-family: "Montserrat", sans-serif !important;
    letter-spacing: 1px !important;
    text-transform: uppercase !important;
    text-shadow: none !important;
}
.blog .ast-article-post .entry-meta .posted-on {
    background: transparent !important;
    padding: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}

/* Blog card body spacing */
.blog .ast-article-post .blog-entry-inner {
    padding-bottom: 15px !important;
}
.blog .ast-article-post .entry-content p,
.blog .ast-article-post .ast-excerpt-container p {
    font-size: 14px !important;
    line-height: 1.5 !important;
    color: #555 !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 3 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
    margin-bottom: 0 !important;
}

/* Weiterlesen indicator - only on .entry-content (not .post-content to avoid duplicate) */
.blog .ast-article-post .entry-content::after {
    content: 'Weiterlesen →';
    display: block;
    margin-top: 12px;
    font-family: "Montserrat", sans-serif;
    font-size: 13px;
    font-weight: 700;
    color: #cf1c1f;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    transition: color 0.3s ease;
}
.blog .ast-article-post:hover .entry-content::after {
    color: #a8161a;
}

/* Pagination styling */
.ast-pagination .page-numbers {
    font-family: "Montserrat", sans-serif !important;
    font-weight: 600 !important;
}
.ast-pagination .page-numbers.current {
    background: #cf1c1f !important;
    color: #fff !important;
    border-color: #cf1c1f !important;
}
.ast-pagination a.page-numbers:hover {
    background: #1f1c1c !important;
    color: #fff !important;
    border-color: #1f1c1c !important;
}

/* === SINGLE POST TEMPLATE === */

/* Page header banner for single posts - identical to blog page */
.single-post #primary {
    margin-top: 0 !important;
}
.single-post #primary::before {
    content: 'AKTUELLES';
    display: block;
    background: #1f1c1c;
    background-image: linear-gradient(#cf1c1f, #cf1c1f);
    background-size: 80px 3px;
    background-position: center bottom 42px;
    background-repeat: no-repeat;
    color: #ffffff;
    font-family: "Montserrat", sans-serif;
    font-size: clamp(28px, 4vw, 42px);
    font-weight: 800;
    letter-spacing: 2px;
    text-transform: uppercase;
    text-align: center;
    padding: 60px 20px 50px;
    margin-left: calc(-50vw + 50%);
    margin-right: calc(-50vw + 50%);
    width: 100vw;
    margin-bottom: 30px;
    border: none;
    border-radius: 0;
    cursor: pointer;
}

/* Single post title - tone down from global 48px uppercase */
.single-post .entry-title {
    font-size: 28px !important;
    font-weight: 700 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    color: #1f1c1c !important;
    line-height: 1.3 !important;
    margin-bottom: 5px !important;
}

/* Single post meta - hide author, style date */
.single-post .entry-meta {
    font-size: 0 !important;
    margin-bottom: 20px !important;
}
.single-post .entry-meta .posted-on {
    font-size: 14px !important;
    color: #cf1c1f !important;
    font-weight: 500 !important;
}
.single-post .entry-meta .posted-by,
.single-post .entry-meta .byline {
    display: none !important;
}

/* Single post category badge */
.single-post .entry-header .cat-links {
    display: block !important;
    margin-bottom: 10px !important;
}

/* Single post: use full-width container (not narrow) - only for content area */
.single-post .site-content > .ast-container {
    max-width: var(--ast-normal-container-width, 1200px) !important;
}
/* Single post article: full width like the 3-column card area */
.single-post.ast-separate-container .ast-article-single {
    max-width: 100% !important;
}

/* Single post content styling */
.single-post .entry-content {
    font-size: 16px !important;
    line-height: 1.7 !important;
    color: #333 !important;
}
.single-post .entry-content img {
    border-radius: 6px;
    margin: 10px 0;
}

/* === Post Top Bar: prev | title+date | next === */
.fc-post-topbar {
    display: grid;
    grid-template-columns: 1fr 2fr 1fr;
    align-items: center;
    padding: 20px 0;
    margin-bottom: 25px;
    border-bottom: 2px solid #f0f0f0;
    gap: 16px;
}
.fc-post-topbar-prev,
.fc-post-topbar-next {
    min-width: 0;
}
.fc-post-topbar-prev a,
.fc-post-topbar-next a {
    display: flex;
    align-items: center;
    gap: 10px;
    text-decoration: none;
    color: #999;
    transition: color 0.3s ease;
}
.fc-post-topbar-prev a:hover,
.fc-post-topbar-next a:hover {
    color: #cf1c1f;
}
.fc-post-topbar-text {
    display: flex;
    flex-direction: column;
    min-width: 0;
    flex: 1;
}
.fc-post-topbar-label {
    font-family: "Montserrat", sans-serif;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: #999;
}
.fc-post-topbar-link-title {
    font-family: "Source Sans Pro", sans-serif;
    font-size: 14px;
    font-weight: 600;
    color: #1f1c1c;
    line-height: 1.3;
    margin-top: 2px;
    overflow-wrap: break-word;
    word-break: break-word;
    hyphens: auto;
}
.fc-post-topbar-prev a:hover .fc-post-topbar-link-title,
.fc-post-topbar-next a:hover .fc-post-topbar-link-title {
    color: #cf1c1f;
}
.fc-post-topbar-arrow {
    font-size: 22px;
    line-height: 1;
    flex-shrink: 0;
}
.fc-post-topbar-next {
    text-align: right;
}
.fc-post-topbar-next .fc-post-topbar-text {
    align-items: flex-end;
}
.fc-post-topbar-center {
    flex: 1;
    text-align: center;
    padding: 0 20px;
    min-width: 0;
}
.fc-post-topbar-cat {
    display: inline-block;
    background: #cf1c1f;
    color: #fff;
    font-family: "Montserrat", sans-serif;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
    padding: 3px 10px;
    border-radius: 3px;
    margin-bottom: 6px;
}
.fc-post-topbar-title {
    font-family: "Source Sans Pro", sans-serif !important;
    font-size: 28px !important;
    font-weight: 700 !important;
    color: #1f1c1c !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    line-height: 1.3 !important;
    margin: 4px 0 !important;
}
.fc-post-topbar-date {
    font-size: 13px;
    color: #cf1c1f;
    font-weight: 500;
}

/* Hide original entry-title and meta (now in topbar) */
.single-post .entry-header {
    display: none !important;
}

/* Post navigation - style and translate to German */
.post-navigation {
    border-top: 2px solid #f0f0f0 !important;
    margin-top: 30px !important;
    padding-top: 20px !important;
}
.post-navigation .nav-links {
    display: flex !important;
    justify-content: space-between !important;
}
.post-navigation .nav-previous a,
.post-navigation .nav-next a {
    color: #1f1c1c !important;
    text-decoration: none !important;
    font-family: "Montserrat", sans-serif !important;
    transition: color 0.3s ease !important;
}
.post-navigation .nav-previous a:hover,
.post-navigation .nav-next a:hover {
    color: #cf1c1f !important;
}
/* Hide English "Previous"/"Next" text, replace with German via CSS */
.post-navigation .ast-post-nav {
    font-size: 0 !important;
}
.post-navigation .ast-post-nav .ahfb-svg-iconset {
    display: none !important;
}
.post-navigation .nav-previous .ast-post-nav::before {
    content: '\2190  VORHERIGER BEITRAG';
    font-size: 12px !important;
    font-weight: 700 !important;
    letter-spacing: 1px !important;
    color: #999 !important;
    display: block !important;
}
.post-navigation .nav-next .ast-post-nav::after {
    content: 'NÄCHSTER BEITRAG  \2192';
    font-size: 12px !important;
    font-weight: 700 !important;
    letter-spacing: 1px !important;
    color: #999 !important;
    display: block !important;
}
.post-navigation .nav-links p {
    font-size: 15px !important;
    font-weight: 600 !important;
    color: #1f1c1c !important;
    margin-top: 4px !important;
}

/* "Zurück zur Übersicht" link via CSS on header banner */
.single-post #primary::before:hover {
    background: #2a2626;
}

/* Download Buttons */

.wp-block-file .wp-block-file__button {

    background-color: #cf1c1f !important;

    border-radius: 4px !important;

    font-family: "Montserrat", sans-serif !important;

    font-weight: 700 !important;

    text-transform: uppercase !important;

    font-size: 13px !important;

    padding: 10px 24px !important;

    transition: all 0.3s ease !important;

}

.wp-block-file .wp-block-file__button:hover {

    background-color: #a8161a !important;

    transform: translateY(-2px) !important;

    box-shadow: 0 4px 12px rgba(207,28,31,0.3) !important;

}

/* === CONTENT / IMAGES === */

.entry-content img:not(.custom-logo):not(.wp-block-cover__image-background) { border-radius: 8px !important; }

.wp-block-gallery .wp-block-image { overflow: hidden !important; border-radius: 8px !important; }

.wp-block-gallery .wp-block-image img { transition: transform 0.4s ease !important; }

.wp-block-gallery .wp-block-image:hover img { transform: scale(1.05) !important; }

/* Unterseiten content width */

.page:not(.page-id-11):not(.page-id-12):not(.page-id-13):not(.page-id-14):not(.page-id-15):not(.page-id-16):not(.page-id-17):not(.page-id-18):not(.page-id-19):not(.page-id-20):not(.page-id-21):not(.page-id-22):not(.page-id-23):not(.page-id-24):not(.page-id-25):not(.page-id-26):not(.page-id-27):not(.page-id-28):not(.page-id-179):not(.page-id-180) .ast-primary-entry-content { max-width: 800px !important; margin: 0 auto !important; }

/* === TABLES === */

.wp-block-table th {

    background-color: #1f1c1c !important;

    color: #ffffff !important;

    font-weight: 700 !important;

    text-transform: uppercase !important;

    font-size: 13px !important;

    padding: 12px 16px !important;

}

.wp-block-table td { padding: 12px 16px !important; border-bottom: 1px solid #eeeeee !important; }

.wp-block-table tr:hover td { background-color: #f8f8f8 !important; }

/* === WPFORMS === */

.wpforms-container .wpforms-form input[type="text"],

.wpforms-container .wpforms-form input[type="email"],

.wpforms-container .wpforms-form textarea,

.wpforms-container .wpforms-form select {

    border: 2px solid #e0e0e0 !important;

    border-radius: 4px !important;

    padding: 12px !important;

    font-family: "Montserrat", sans-serif !important;

    transition: border-color 0.3s ease !important;

}

.wpforms-container .wpforms-form input:focus,

.wpforms-container .wpforms-form textarea:focus {

    border-color: #cf1c1f !important;

    outline: none !important;

    box-shadow: 0 0 0 3px rgba(207,28,31,0.1) !important;

}

.wpforms-container .wpforms-form button[type="submit"] {

    background-color: #cf1c1f !important;

    font-family: "Montserrat", sans-serif !important;

    font-weight: 700 !important;

    text-transform: uppercase !important;

    letter-spacing: 1px !important;

    padding: 14px 36px !important;

    border-radius: 4px !important;

    border: none !important;

    transition: all 0.3s ease !important;

}

.wpforms-container .wpforms-form button[type="submit"]:hover {

    background-color: #a8161a !important;

    transform: translateY(-2px) !important;

    box-shadow: 0 4px 12px rgba(207,28,31,0.3) !important;

}

/* === MOBILE === */

@media (max-width: 921px) {

    .ast-primary-header-bar { min-height: 64px !important; }

    .custom-logo-link .custom-logo, img.custom-logo { max-height: 70px !important; max-width: 70px !important; }

    .site-title a, .site-title-link { font-size: 15px !important; }

    /* Mobile Nav */

    .ast-mobile-popup-drawer .ast-mobile-popup-inner,

    .ast-mobile-header-wrap .ast-mobile-header-content { background-color: #1f1c1c !important; }

    .ast-mobile-header-content .main-header-menu,

    .ast-mobile-header-content .main-header-menu .sub-menu,

    .ast-mobile-header-content .ast-builder-menu,

    .ast-mobile-header-content .main-header-bar-navigation,

    .ast-mobile-header-content nav { background-color: transparent !important; }

    .ast-mobile-popup-drawer a, .ast-mobile-header-content a,

    .ast-mobile-header-content .menu-link {

        color: #ffffff !important; font-family: "Montserrat", sans-serif !important;

        text-transform: uppercase !important; font-weight: 600 !important; font-size: 14px !important;

        padding: 12px 20px !important; border-bottom: 1px solid rgba(255,255,255,0.1) !important;

    }

    .ast-mobile-header-content .ast-menu-toggle,

    .ast-mobile-header-content .dropdown-menu-toggle,

    .ast-mobile-header-content .ast-header-navigation-arrow { color: #ffffff !important; }

    .ast-mobile-header-content .ast-arrow-svg { fill: #ffffff !important; }

    .ast-mobile-header-content svg { color: #ffffff !important; stroke: #ffffff !important; }

    .ast-mobile-popup-drawer .current-menu-item > a,

    .ast-mobile-header-content .current-menu-item > a { color: #cf1c1f !important; }

    /* Mobile toggle */

    .menu-toggle, .ast-mobile-menu-trigger-minimal { color: #ffffff !important; }

    .ast-button-wrap .ast-mobile-menu-trigger-minimal { color: #ffffff !important; }

    /* Mobile Hero */

    .page-id-11 .wp-block-cover:first-of-type { min-height: 50vh !important; }

    .page-id-11 .wp-block-cover:first-of-type h1 { font-size: 32px !important; letter-spacing: 1px !important; }

    .page-id-11 .wp-block-cover:first-of-type p { font-size: 13px !important; letter-spacing: 2px !important; }

    h1, .entry-title { font-size: 32px !important; }

    h2 { font-size: 28px !important; }

    h3 { font-size: 20px !important; }

    .news-card, .team-card { margin-bottom: 20px; }

    .team-card { min-height: 240px; }

    .site-primary-footer-wrap { padding: 40px 20px !important; text-align: center; }

    /* Disable hover effects on touch devices */

    .news-card:hover { transform: none !important; }

    .news-card:hover .news-card-image img { transform: none !important; }

    .page-id-11 .team-card:hover .wp-block-cover__image-background { transform: none !important; }

    .page-id-11 .team-card:hover { box-shadow: none !important; }

    .wp-block-column:hover .verein-icon img { transform: none !important; box-shadow: none !important; }

    .wp-block-button .wp-block-button__link:hover { transform: none !important; box-shadow: none !important; }

    .ast-article-post:hover { transform: none !important; }

    .ast-article-post:hover .post-thumb-img-content img { transform: none !important; }

    /* Disable Ken Burns on mobile for performance */

    .page-id-11 .wp-block-cover.hero-section .wp-block-cover__image-background,

    .page-id-11 .wp-block-cover:first-of-type .wp-block-cover__image-background {

        animation: none !important;

    }

    /* Footer-Links: Touch-Targets vergrößern (min 44px) */
    .site-primary-footer-wrap a {
        display: inline-block !important;
        min-height: 44px !important;
        line-height: 44px !important;
    }

    /* Blog/News: "Weiterlesen" und Artikel-Links Touch-Targets */
    .ast-article-post a.ast-button,
    .ast-article-post .read-more a,
    .entry-content a.more-link {
        display: inline-flex !important;
        align-items: center !important;
        min-height: 44px !important;
    }

    /* Blog Cards: Datum-Badge auf Mobile */
    .blog .ast-article-post .entry-header.ast-blog-single-element {
        top: 4px !important;
        right: 0 !important;
    }

    .single-post .site-content > .ast-container {
        max-width: 100% !important;
    }
    .fc-post-topbar-text {
        display: none;
    }
    .fc-post-topbar-title {
        font-size: 18px !important;
    }

}

@media (max-width: 544px) {

    .page-id-11 .wp-block-cover:first-of-type h1 { font-size: 26px !important; }

    h1, .entry-title { font-size: 26px !important; }

    h2 { font-size: 24px !important; }

    /* Smaller verein icons on very small screens */

    .verein-icon img {

        width: 64px !important;

        height: 64px !important;

    }

}

/* === SCROLL-TO-TOP === */

#ast-scroll-top { background-color: #cf1c1f !important; color: #ffffff !important; border-radius: 4px !important; }

/* === SCROLLBAR === */

::-webkit-scrollbar { width: 10px; }

::-webkit-scrollbar-track { background: #1f1c1c; }

::-webkit-scrollbar-thumb { background: #cf1c1f; border-radius: 5px; }

::-webkit-scrollbar-thumb:hover { background: #a8161a; }

/* === SELECTION === */

::selection { background: #cf1c1f; color: #ffffff; }

/* === COOKIE BANNER === */

.cmplz-cookiebanner .cmplz-btn {

    font-family: "Montserrat", sans-serif !important;

    font-weight: 700 !important;

    text-transform: uppercase !important;

    border-radius: 4px !important;

}

/* === PARTNER PAGE === */

/* Full-width header on partner page */

.page-id-28.ast-separate-container .ast-article-single {

    background: transparent !important;

    padding: 0 !important;

    box-shadow: none !important;

}

.page-id-28.ast-separate-container #primary {

    padding: 0 !important;

}

.page-id-28 .ast-container,

.page-id-28 .site-content .ast-container {

    max-width: 100% !important;

    padding-left: 0 !important;

    padding-right: 0 !important;

}

.page-id-28 .entry-content {

    max-width: 100% !important;

    padding: 0 !important;

}

.page-id-28 .entry-content > .alignfull {

    margin-left: calc(-50vw + 50%) !important;

    margin-right: calc(-50vw + 50%) !important;

    max-width: 100vw !important;

    width: 100vw !important;

}

/* Dark section header colors (generisch für alle Seiten) */

.alignfull[style*="1f1c1c"] h1,

.alignfull[style*="1f1c1c"] h2 {

    color: #ffffff !important;

}

.alignfull[style*="1f1c1c"] p {

    color: #cccccc !important;

}

.page-id-28 .section-red h2,

.page-id-28 .alignfull[style*="cf1c1f"] h2 {

    color: #ffffff !important;

}

/* Separator on partner page */

.page-id-28 .wp-block-separator.is-style-wide,

.page-id-28 hr.wp-block-separator.is-style-wide {

    border: none !important;

    height: 3px !important;

    max-width: 80px !important;

    width: 80px !important;

    margin: 0 auto 16px !important;

    background: #cf1c1f !important;

    opacity: 1 !important;

}

/* Partner Grid */

.partner-grid {

    display: grid;

    grid-template-columns: repeat(4, 1fr);

    gap: 24px;

    max-width: 1100px;

    margin: 0 auto;

    padding: 0 20px;

}

/* Partner Card */

.partner-card {

    display: flex;

    flex-direction: column;

    align-items: center;

    background: #ffffff;

    border-radius: 10px;

    padding: 28px 16px 20px;

    box-shadow: 0 2px 12px rgba(0,0,0,0.06);

    border: 1px solid #f0f0f0;

    transition: all 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94);

    text-decoration: none !important;

    cursor: pointer;

}

a.partner-card:hover {

    transform: translateY(-6px);

    box-shadow: 0 12px 32px rgba(207, 28, 31, 0.12);

    border-color: #cf1c1f;

}

.partner-card--no-link {

    cursor: default;

}

.partner-card--no-link:hover {

    transform: none !important;

    box-shadow: 0 2px 12px rgba(0,0,0,0.06) !important;

    border-color: #f0f0f0 !important;

}

/* Partner Logo Container */

.partner-logo {

    width: 100%;

    height: 100px;

    display: flex;

    align-items: center;

    justify-content: center;

    margin-bottom: 14px;

    padding: 8px;

}

.partner-logo img {

    max-width: 100%;

    max-height: 100%;

    width: auto;

    height: auto;

    object-fit: contain;

    border-radius: 0 !important;

    transition: transform 0.3s ease;

}

a.partner-card:hover .partner-logo img {

    transform: scale(1.06);

}

/* Partner Name */

.partner-name {

    font-family: "Montserrat", sans-serif;

    font-size: 13px;

    font-weight: 600;

    color: #1f1c1c;

    text-align: center;

    text-transform: uppercase;

    letter-spacing: 0.3px;

    line-height: 1.3;

    transition: color 0.3s ease;

}

a.partner-card:hover .partner-name {

    color: #cf1c1f;

}

/* CTA section on partner page */

.page-id-28 .section-red,

.page-id-28 .alignfull[style*="cf1c1f"] {

    position: relative !important;

    overflow: hidden !important;

}

.page-id-28 .section-red::before,

.page-id-28 .alignfull[style*="cf1c1f"]::before {

    content: "" !important;

    position: absolute !important;

    top: 0 !important; left: 0 !important; right: 0 !important; bottom: 0 !important;

    background: repeating-linear-gradient(-45deg, transparent, transparent 30px, rgba(255,255,255,0.04) 30px, rgba(255,255,255,0.04) 60px) !important;

    pointer-events: none !important;

    z-index: 0 !important;

}

.page-id-28 .section-red > *,

.page-id-28 .alignfull[style*="cf1c1f"] > * {

    position: relative !important;

    z-index: 1 !important;

}

/* Partner Grid Responsive */

@media (max-width: 921px) {

    .partner-grid {

        grid-template-columns: repeat(3, 1fr);

        gap: 18px;

    }

    a.partner-card:hover {

        transform: none;

        box-shadow: 0 2px 12px rgba(0,0,0,0.06);

    }

    a.partner-card:hover .partner-logo img {

        transform: none;

    }

}

@media (max-width: 600px) {

    .partner-grid {

        grid-template-columns: repeat(2, 1fr);

        gap: 14px;

        padding: 0 16px;

    }

    .partner-card {

        padding: 20px 12px 16px;

    }

    .partner-logo {

        height: 70px;

    }

    .partner-name {

        font-size: 11px;

    }

}

/* === KONTAKT PAGE === */

/* Full-width layout */

.page-id-27.ast-separate-container .ast-article-single {

    background: transparent !important;

    padding: 0 !important;

    box-shadow: none !important;

}

.page-id-27.ast-separate-container #primary {

    padding: 0 !important;

}

.page-id-12 #primary,
.page-id-14 #primary,
.page-id-15 #primary,
.page-id-16 #primary,
.page-id-17 #primary,
.page-id-18 #primary,
.page-id-19 #primary,
.page-id-27 #primary,
.page-id-28 #primary,
.page-id-351 #primary {

    margin-top: 0 !important;

}

.page-id-12 .entry-header,
.page-id-14 .entry-header,
.page-id-15 .entry-header,
.page-id-16 .entry-header,
.page-id-17 .entry-header,
.page-id-18 .entry-header,
.page-id-19 .entry-header,
.page-id-27 .entry-header,
.page-id-28 .entry-header,
.page-id-351 .entry-header {

    margin-bottom: 0 !important;

}

.page-id-27 .ast-container,

.page-id-27 .site-content .ast-container {

    max-width: 100% !important;

    padding-left: 0 !important;

    padding-right: 0 !important;

}

.page-id-27 .entry-content {

    max-width: 100% !important;

    padding: 0 !important;

}

.page-id-27 .entry-content > .alignfull,

.page-id-27 .entry-content > .wp-block-group.alignfull {

    margin-left: calc(-50vw + 50%) !important;

    margin-right: calc(-50vw + 50%) !important;

    max-width: 100vw !important;

    width: 100vw !important;

}

/* Kontakt header text */

.page-id-27 .kontakt-header h1 {

    color: #ffffff !important;

}

/* Kontakt Grid */

.kontakt-grid {

    display: grid;

    grid-template-columns: repeat(3, 1fr);

    gap: 24px;

    max-width: 1100px;

    margin: 0 auto;

    padding: 40px 20px;

}

/* Kontakt Card */

.kontakt-card {

    background: #ffffff;

    border-radius: 12px;

    padding: 32px 24px;

    box-shadow: 0 2px 12px rgba(0,0,0,0.06);

    border: 1px solid #f0f0f0;

    text-align: center;

    transition: all 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94);

}

.kontakt-card:hover {

    transform: translateY(-4px);

    box-shadow: 0 8px 24px rgba(207, 28, 31, 0.1);

    border-color: #cf1c1f;

}

/* Kontakt Card Icon */

.kontakt-card-icon {

    width: 56px;

    height: 56px;

    border-radius: 50%;

    background: rgba(207, 28, 31, 0.08);

    display: flex;

    align-items: center;

    justify-content: center;

    margin: 0 auto 16px;

    transition: all 0.3s ease;

}

.kontakt-card:hover .kontakt-card-icon {

    background: rgba(207, 28, 31, 0.15);

    transform: scale(1.1);

}

/* Kontakt Card Title */

.kontakt-card-title {

    font-family: "Montserrat", sans-serif;

    font-size: 16px;

    font-weight: 700;

    color: #1f1c1c;

    margin: 0 0 10px;

    text-transform: uppercase;

    letter-spacing: 0.5px;

}

/* Kontakt Card Text */

.kontakt-card-text {

    font-size: 14px;

    color: #555;

    line-height: 1.6;

    margin: 0 0 12px;

}

/* Kontakt Card Detail (phone/email with icon) */

.kontakt-card-detail {

    display: flex;

    align-items: center;

    justify-content: center;

    gap: 8px;

    margin-top: 8px;

}

.kontakt-card-detail svg {

    flex-shrink: 0;

}

.kontakt-card-detail a {

    color: #cf1c1f !important;

    text-decoration: none !important;

    font-size: 13px;

    font-weight: 500;

    transition: color 0.2s;

}

.kontakt-card-detail a:hover {

    color: #a01518 !important;

    text-decoration: underline !important;

}

/* Google Maps iframe */

.page-id-27 iframe {

    border-radius: 0 !important;

}

/* WPForms styling on kontakt page */

.page-id-27 .wpforms-container {

    max-width: 700px !important;

    margin: 0 auto !important;

    background: #ffffff !important;

    border-radius: 12px !important;

    padding: 32px !important;

    box-shadow: 0 2px 16px rgba(0,0,0,0.06) !important;

    border: 1px solid #f0f0f0 !important;

}

.page-id-27 .wpforms-form input[type="text"],

.page-id-27 .wpforms-form input[type="email"],

.page-id-27 .wpforms-form textarea {

    border: 1px solid #e0e0e0 !important;

    border-radius: 8px !important;

    padding: 12px 16px !important;

    font-size: 16px !important; /* min 16px verhindert iOS Safari Auto-Zoom */

    transition: border-color 0.3s ease, box-shadow 0.3s ease !important;

}

.page-id-27 .wpforms-form input[type="text"]:focus,

.page-id-27 .wpforms-form input[type="email"]:focus,

.page-id-27 .wpforms-form textarea:focus {

    border-color: #cf1c1f !important;

    box-shadow: 0 0 0 3px rgba(207, 28, 31, 0.1) !important;

    outline: none !important;

}

.page-id-27 .wpforms-form button[type="submit"],

.page-id-27 .wpforms-form .wpforms-submit {

    background: #cf1c1f !important;

    border: none !important;

    border-radius: 8px !important;

    padding: 14px 32px !important;

    font-family: "Montserrat", sans-serif !important;

    font-size: 14px !important;

    font-weight: 700 !important;

    text-transform: uppercase !important;

    letter-spacing: 1px !important;

    transition: all 0.3s ease !important;

    cursor: pointer !important;

}

.page-id-27 .wpforms-form button[type="submit"]:hover,

.page-id-27 .wpforms-form .wpforms-submit:hover {

    background: #a01518 !important;

    transform: translateY(-2px) !important;

    box-shadow: 0 4px 16px rgba(207, 28, 31, 0.3) !important;

}

/* Form section group block */

.page-id-27 .wp-block-group.alignfull.has-background {

    margin-top: 0 !important;

}

/* Separator in kontakt page */

.page-id-27 .kontakt-header hr,

.page-id-27 .wp-block-group hr {

    border: none !important;

    height: 3px !important;

    max-width: 80px !important;

    width: 80px !important;

    background: #cf1c1f !important;

    opacity: 1 !important;

}

/* Kontakt Responsive */

@media (max-width: 768px) {

    .kontakt-grid {

        grid-template-columns: 1fr;

        gap: 16px;

        padding: 30px 16px;

    }

    .kontakt-card:hover {

        transform: none;

        box-shadow: 0 2px 12px rgba(0,0,0,0.06);

        border-color: #f0f0f0;

    }

    .kontakt-card:hover .kontakt-card-icon {

        transform: none;

        background: rgba(207, 28, 31, 0.08);

    }

    .page-id-27 .wpforms-container {

        margin: 0 16px !important;

        padding: 20px !important;

        border-radius: 10px;

    }

    .page-id-27 iframe {

        height: 300px !important;

    }

}

/* === SENIOREN PAGES (18, 179, 180) === */

/* Full-width layout */

.page-id-18.ast-separate-container .ast-article-single,

.page-id-179.ast-separate-container .ast-article-single,

.page-id-180.ast-separate-container .ast-article-single {

    background: transparent !important;

    padding: 0 !important;

    box-shadow: none !important;

}

.page-id-18.ast-separate-container #primary,

.page-id-179.ast-separate-container #primary,

.page-id-180.ast-separate-container #primary {

    padding: 0 !important;

}

.page-id-18 .ast-container,

.page-id-18 .site-content .ast-container,

.page-id-179 .ast-container,

.page-id-179 .site-content .ast-container,

.page-id-180 .ast-container,

.page-id-180 .site-content .ast-container {

    max-width: 100% !important;

    padding-left: 0 !important;

    padding-right: 0 !important;

}

.page-id-18 .entry-content,

.page-id-179 .entry-content,

.page-id-180 .entry-content {

    max-width: 100% !important;

    padding: 0 !important;

}

.page-id-18 .entry-content > .alignfull,

.page-id-179 .entry-content > .alignfull,

.page-id-180 .entry-content > .alignfull {

    margin-left: calc(-50vw + 50%) !important;

    margin-right: calc(-50vw + 50%) !important;

    max-width: 100vw !important;

    width: 100vw !important;

}

/* Header text color */

.page-id-18 .alignfull h1,

.mannschaft-hero h1 {

    color: #ffffff !important;

}

/* === SENIOREN OVERVIEW GRID === */

.senioren-grid {

    display: grid;

    grid-template-columns: repeat(2, 1fr);

    gap: 30px;

    max-width: 1100px;

    margin: 0 auto;

    padding: 50px 20px 60px;

}

/* Senioren Team Card */

.senioren-card {

    text-decoration: none !important;

    display: block;

    border-radius: 12px;

    overflow: hidden;

    box-shadow: 0 4px 20px rgba(0,0,0,0.1);

    transition: all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);

}

.senioren-card:hover {

    transform: translateY(-8px);

    box-shadow: 0 16px 40px rgba(0,0,0,0.2);

}

.senioren-card-img {

    position: relative;

    height: 350px;

    background-size: cover;

    background-position: center;

    display: flex;

    align-items: flex-end;

}

.senioren-card-overlay {

    position: absolute;

    top: 0;

    left: 0;

    right: 0;

    bottom: 0;

    background: linear-gradient(transparent 30%, rgba(31,28,28,0.9) 100%);

    transition: background 0.4s ease;

}

.senioren-card:hover .senioren-card-overlay {

    background: linear-gradient(transparent 20%, rgba(207,28,31,0.85) 100%);

}

.senioren-card-content {

    position: relative;

    z-index: 1;

    padding: 24px;

    width: 100%;

}

.senioren-card-content h3 {

    font-family: "Montserrat", sans-serif;

    font-size: 28px;

    font-weight: 800;

    color: #ffffff !important;

    text-transform: uppercase;

    letter-spacing: 1px;

    margin: 4px 0 8px;

}

.senioren-card-liga {

    font-family: "Montserrat", sans-serif;

    font-size: 12px;

    font-weight: 600;

    color: #ffffff;

    text-transform: uppercase;

    letter-spacing: 1px;

    background: #cf1c1f;

    padding: 4px 10px;

    border-radius: 4px;

    display: inline-block;

}

.senioren-card:hover .senioren-card-liga {

    background: rgba(255,255,255,0.25);

    color: #ffffff;

}

.senioren-card-cta {

    font-family: "Montserrat", sans-serif;

    font-size: 13px;

    font-weight: 600;

    color: rgba(255,255,255,0.8);

    display: block;

    transition: color 0.3s ease;

}

.senioren-card:hover .senioren-card-cta {

    color: #ffffff;

}

/* === MANNSCHAFT DESCRIPTION === */

.mannschaft-description {
    max-width: 900px;
    margin: 0 auto;
    padding: 32px 24px 0;
}

.mannschaft-description-inner {
    font-family: 'Montserrat', sans-serif;
    font-size: 15px;
    line-height: 1.7;
    color: #444;
    text-align: center;
}

.mannschaft-description-inner p {
    margin: 0 0 12px;
}

.mannschaft-description-inner p:last-child {
    margin-bottom: 0;
}

/* === MANNSCHAFT INFO GRID === */

.mannschaft-info-grid {

    display: grid;

    grid-template-columns: repeat(4, 1fr);

    gap: 20px;

    max-width: 1000px;

    margin: 0 auto;

    padding: 40px 20px;

}

.mannschaft-info-card {

    background: #ffffff;

    border-radius: 12px;

    padding: 28px 16px;

    box-shadow: 0 2px 12px rgba(0,0,0,0.06);

    border: 1px solid #f0f0f0;

    text-align: center;

    transition: all 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94);

}

.mannschaft-info-card:hover {

    transform: translateY(-4px);

    box-shadow: 0 8px 24px rgba(207, 28, 31, 0.1);

    border-color: #cf1c1f;

}

.mannschaft-info-icon {

    width: 50px;

    height: 50px;

    border-radius: 50%;

    background: rgba(207, 28, 31, 0.08);

    display: flex;

    align-items: center;

    justify-content: center;

    margin: 0 auto 14px;

    transition: all 0.3s ease;

}

.mannschaft-info-card:hover .mannschaft-info-icon {

    background: rgba(207, 28, 31, 0.15);

    transform: scale(1.1);

}

.mannschaft-info-label {

    font-family: "Montserrat", sans-serif !important;

    font-size: 11px !important;

    font-weight: 700 !important;

    color: #999 !important;

    text-transform: uppercase !important;

    letter-spacing: 1px !important;

    margin: 0 0 6px !important;

}

.mannschaft-info-value {

    font-family: "Montserrat", sans-serif;

    font-size: 14px;

    font-weight: 600;

    color: #1f1c1c;

    margin: 0;

    line-height: 1.4;

}

/* === FUSSBALL.DE WIDGET === */

.fussball-widget-wrap {

    max-width: 900px;

    margin: 0 auto;

    background: #ffffff;

    border-radius: 12px;

    padding: 16px;

    box-shadow: 0 2px 16px rgba(0,0,0,0.06);

    border: 1px solid #f0f0f0;

    min-height: 200px;

    overflow: hidden;

}

.fussball-widget-wrap iframe {

    border-radius: 8px !important;

    max-width: 100% !important;

}

/* Style the fussball.de widget table to match site design */

.fussball-widget-wrap .stage-content {

    font-family: "Montserrat", sans-serif !important;

}

.fussball-widget-wrap table {

    width: 100% !important;

    border-collapse: collapse !important;

}

.fussball-widget-wrap th {

    background: #1f1c1c !important;

    color: #ffffff !important;

    font-family: "Montserrat", sans-serif !important;

    font-size: 12px !important;

    font-weight: 700 !important;

    text-transform: uppercase !important;

    padding: 10px 8px !important;

}

.fussball-widget-wrap td {

    padding: 8px !important;

    font-size: 13px !important;

    border-bottom: 1px solid #f0f0f0 !important;

}

.fussball-widget-wrap tr:hover td {

    background: #f8f8f8 !important;

}

/* Tabelle section heading color */

.page-id-179 .alignfull[style*="f8f8f8"] h2,

.page-id-180 .alignfull[style*="f8f8f8"] h2 {

    color: #1f1c1c !important;

}

/* === SENIOREN RESPONSIVE === */

@media (max-width: 768px) {

    .senioren-grid {

        grid-template-columns: 1fr;

        gap: 20px;

        padding: 30px 16px 40px;

    }

    .senioren-card-img {

        height: 260px;

    }

    .senioren-card-content h3 {

        font-size: 22px;

    }

    .senioren-card:hover {

        transform: none;

        box-shadow: 0 4px 20px rgba(0,0,0,0.1);

    }

    .senioren-card:hover .senioren-card-overlay {

        background: linear-gradient(transparent 30%, rgba(31,28,28,0.9) 100%);

    }

    .mannschaft-info-grid {

        grid-template-columns: repeat(2, 1fr);

        gap: 14px;

        padding: 30px 16px;

    }

    .mannschaft-info-card {

        padding: 20px 12px;

    }

    .mannschaft-info-card:hover {

        transform: none;

        box-shadow: 0 2px 12px rgba(0,0,0,0.06);

        border-color: #f0f0f0;

    }

    .mannschaft-info-card:hover .mannschaft-info-icon {

        transform: none;

        background: rgba(207, 28, 31, 0.08);

    }

    .fussball-widget-wrap {

        margin: 0 16px;

        padding: 10px;

    }

}

@media (max-width: 480px) {

    .mannschaft-info-grid {

        grid-template-columns: 1fr;

    }

    .senioren-card-img {

        height: 220px;

    }

}

/* === JUGEND PAGES (19-26) === */

/* Full-width layout */

.page-id-19.ast-separate-container .ast-article-single,

.page-id-20.ast-separate-container .ast-article-single,

.page-id-21.ast-separate-container .ast-article-single,

.page-id-22.ast-separate-container .ast-article-single,

.page-id-23.ast-separate-container .ast-article-single,

.page-id-24.ast-separate-container .ast-article-single,

.page-id-25.ast-separate-container .ast-article-single,

.page-id-26.ast-separate-container .ast-article-single {

    background: transparent !important;

    padding: 0 !important;

    box-shadow: none !important;

}

.page-id-19.ast-separate-container #primary,

.page-id-20.ast-separate-container #primary,

.page-id-21.ast-separate-container #primary,

.page-id-22.ast-separate-container #primary,

.page-id-23.ast-separate-container #primary,

.page-id-24.ast-separate-container #primary,

.page-id-25.ast-separate-container #primary,

.page-id-26.ast-separate-container #primary {

    padding: 0 !important;

}

.page-id-19 .ast-container,

.page-id-19 .site-content .ast-container,

.page-id-20 .ast-container,

.page-id-20 .site-content .ast-container,

.page-id-21 .ast-container,

.page-id-21 .site-content .ast-container,

.page-id-22 .ast-container,

.page-id-22 .site-content .ast-container,

.page-id-23 .ast-container,

.page-id-23 .site-content .ast-container,

.page-id-24 .ast-container,

.page-id-24 .site-content .ast-container,

.page-id-25 .ast-container,

.page-id-25 .site-content .ast-container,

.page-id-26 .ast-container,

.page-id-26 .site-content .ast-container {

    max-width: 100% !important;

    padding-left: 0 !important;

    padding-right: 0 !important;

}

.page-id-19 .entry-content,

.page-id-20 .entry-content,

.page-id-21 .entry-content,

.page-id-22 .entry-content,

.page-id-23 .entry-content,

.page-id-24 .entry-content,

.page-id-25 .entry-content,

.page-id-26 .entry-content {

    max-width: 100% !important;

    padding: 0 !important;

}

.page-id-19 .entry-content > .alignfull,

.page-id-20 .entry-content > .alignfull,

.page-id-21 .entry-content > .alignfull,

.page-id-22 .entry-content > .alignfull,

.page-id-23 .entry-content > .alignfull,

.page-id-24 .entry-content > .alignfull,

.page-id-25 .entry-content > .alignfull,

.page-id-26 .entry-content > .alignfull {

    margin-left: calc(-50vw + 50%) !important;

    margin-right: calc(-50vw + 50%) !important;

    max-width: 100vw !important;

    width: 100vw !important;

}

/* === JUGEND OVERVIEW GRID === */

.jugend-grid {

    display: grid;

    grid-template-columns: repeat(3, 1fr);

    gap: 24px;

    max-width: 1100px;

    margin: 0 auto;

    padding: 50px 20px 60px;

}

.jugend-card {

    text-decoration: none !important;

    display: block;

    border-radius: 12px;

    overflow: hidden;

    box-shadow: 0 4px 20px rgba(0,0,0,0.1);

    transition: all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);

}

.jugend-card:hover {

    transform: translateY(-8px);

    box-shadow: 0 16px 40px rgba(0,0,0,0.2);

}

.jugend-card-img {

    position: relative;

    height: 280px;

    background-size: cover;

    background-position: center 60%;

    display: flex;

    align-items: flex-end;

}

.jugend-card-overlay {

    position: absolute;

    top: 0; left: 0; right: 0; bottom: 0;

    background: linear-gradient(transparent 30%, rgba(31,28,28,0.9) 100%);

    transition: background 0.4s ease;

}

.jugend-card:hover .jugend-card-overlay {

    background: linear-gradient(transparent 20%, rgba(207,28,31,0.85) 100%);

}

.jugend-card-content {

    position: relative;

    z-index: 1;

    padding: 20px;

    width: 100%;

}

.jugend-card-content h3 {

    font-family: "Montserrat", sans-serif;

    font-size: 22px;

    font-weight: 800;

    color: #ffffff !important;

    text-transform: uppercase;

    letter-spacing: 1px;

    margin: 4px 0 6px;

}

.jugend-card-age {

    font-family: "Montserrat", sans-serif;

    font-size: 11px;

    font-weight: 600;

    color: #ffffff;

    text-transform: uppercase;

    letter-spacing: 1px;

    background: #cf1c1f;

    padding: 3px 8px;

    border-radius: 4px;

    display: inline-block;

}

.jugend-card:hover .jugend-card-age {

    background: rgba(255,255,255,0.25);

    color: #ffffff;

}

.jugend-card-cta {

    font-family: "Montserrat", sans-serif;

    font-size: 12px;

    font-weight: 600;

    color: rgba(255,255,255,0.8);

    display: block;

    transition: color 0.3s ease;

}

.jugend-card:hover .jugend-card-cta {

    color: #ffffff;

}

/* Jugend hero */

.jugend-hero {

    position: relative;

    overflow: hidden;

    height: 420px;

    background-size: cover;

    background-position: center 60%;

    background-repeat: no-repeat;

}

/* Jugend contact bar */

.jugend-kontakt-bar {

    max-width: 800px;

    margin: 0 auto;

    padding: 40px 20px;

    text-align: center;

}

.jugend-kontakt-bar p {

    font-family: "Montserrat", sans-serif;

    font-size: 15px;

    color: #555;

    margin: 0;

    line-height: 1.6;

}

.jugend-kontakt-bar a {

    color: #cf1c1f;

    font-weight: 600;

    text-decoration: none;

}

.jugend-kontakt-bar a:hover {

    text-decoration: underline;

}

/* Jugend gallery */

.jugend-gallery {

    display: grid;

    grid-template-columns: repeat(2, 1fr);

    gap: 16px;

    max-width: 1000px;

    margin: 0 auto;

    padding: 30px 20px 50px;

}

.jugend-gallery img {

    width: 100%;

    border-radius: 12px;

    box-shadow: 0 4px 16px rgba(0,0,0,0.1);

}

/* === JUGEND RESPONSIVE === */

@media (max-width: 768px) {

    .jugend-grid {

        grid-template-columns: repeat(2, 1fr);

        gap: 16px;

        padding: 30px 16px 40px;

    }

    .jugend-card-img {

        height: 220px;

    }

    .jugend-card-content h3 {

        font-size: 18px;

    }

    .jugend-card:hover {

        transform: none;

        box-shadow: 0 4px 20px rgba(0,0,0,0.1);

    }

    .jugend-card:hover .jugend-card-overlay {

        background: linear-gradient(transparent 30%, rgba(31,28,28,0.9) 100%);

    }

    .jugend-hero {

        height: 300px;

    }

    .jugend-gallery {

        grid-template-columns: 1fr;

        padding: 20px 16px 40px;

    }

}

@media (max-width: 480px) {

    .jugend-grid {

        grid-template-columns: 1fr;

    }

    .jugend-card-img {

        height: 200px;

    }

    .jugend-hero {

        height: 250px;

    }

}

/* === VEREIN PAGES (12, 14, 15, 16, 17) === */

/* Full-width layout */

.page-id-12.ast-separate-container .ast-article-single,

.page-id-14.ast-separate-container .ast-article-single,

.page-id-15.ast-separate-container .ast-article-single,

.page-id-16.ast-separate-container .ast-article-single,

.page-id-17.ast-separate-container .ast-article-single {

    background: transparent !important;

    padding: 0 !important;

    box-shadow: none !important;

}

.page-id-12.ast-separate-container #primary,

.page-id-14.ast-separate-container #primary,

.page-id-15.ast-separate-container #primary,

.page-id-16.ast-separate-container #primary,

.page-id-17.ast-separate-container #primary {

    padding: 0 !important;

}

.page-id-12 .ast-container,

.page-id-12 .site-content .ast-container,

.page-id-14 .ast-container,

.page-id-14 .site-content .ast-container,

.page-id-15 .ast-container,

.page-id-15 .site-content .ast-container,

.page-id-16 .ast-container,

.page-id-16 .site-content .ast-container,

.page-id-17 .ast-container,

.page-id-17 .site-content .ast-container {

    max-width: 100% !important;

    padding-left: 0 !important;

    padding-right: 0 !important;

}

.page-id-12 .entry-content,

.page-id-14 .entry-content,

.page-id-15 .entry-content,

.page-id-16 .entry-content,

.page-id-17 .entry-content {

    max-width: 100% !important;

    padding: 0 !important;

}

.page-id-12 .entry-content > .alignfull,

.page-id-14 .entry-content > .alignfull,

.page-id-15 .entry-content > .alignfull,

.page-id-16 .entry-content > .alignfull,

.page-id-17 .entry-content > .alignfull {

    margin-left: calc(-50vw + 50%) !important;

    margin-right: calc(-50vw + 50%) !important;

    max-width: 100vw !important;

    width: 100vw !important;

}

/* Header text colors */

.page-id-12 .alignfull h1,

.page-id-14 .verein-hero h1,

.page-id-15 .verein-hero h1,

.page-id-16 .verein-hero h1,

.page-id-17 .alignfull h1 {

    color: #ffffff !important;

}

.page-id-17 .alignfull[style*="cf1c1f"] h2 {

    color: #ffffff !important;

}

/* Dark section headings stay white */

.page-id-12 .alignfull[style*="1f1c1c"] h3,

.page-id-14 .alignfull[style*="1f1c1c"] h3,

.page-id-15 .alignfull[style*="1f1c1c"] h3,

.page-id-17 .alignfull[style*="1f1c1c"] h3 {

    color: #ffffff !important;

}

/* Verein hero */

.verein-hero {

    position: relative;

    overflow: hidden;

    height: 420px;

    background-size: cover;

    background-position: center 50%;

    background-repeat: no-repeat;

}

/* === VEREIN OVERVIEW NAV GRID === */

.verein-nav-grid {

    display: grid;

    grid-template-columns: repeat(3, 1fr);

    gap: 24px;

    max-width: 1000px;

    margin: 0 auto;

    padding: 0 20px;

}

.verein-nav-card {

    display: flex;

    flex-direction: column;

    align-items: center;

    background: #ffffff;

    border-radius: 12px;

    padding: 32px 20px 28px;

    box-shadow: 0 2px 12px rgba(0,0,0,0.06);

    border: 1px solid #f0f0f0;

    text-decoration: none !important;

    text-align: center;

    transition: all 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94);

}

.verein-nav-card:hover {

    transform: translateY(-6px);

    box-shadow: 0 12px 32px rgba(207, 28, 31, 0.12);

    border-color: #cf1c1f;

}

.verein-nav-card--highlight {

    border-color: rgba(207, 28, 31, 0.3);

    background: linear-gradient(135deg, #ffffff 0%, #fff5f5 100%);

}

.verein-nav-icon {

    width: 56px;

    height: 56px;

    border-radius: 50%;

    background: rgba(207, 28, 31, 0.08);

    display: flex;

    align-items: center;

    justify-content: center;

    margin-bottom: 16px;

    transition: all 0.3s ease;

}

.verein-nav-card:hover .verein-nav-icon {

    background: rgba(207, 28, 31, 0.15);

    transform: scale(1.1);

}

.verein-nav-title {

    font-family: "Montserrat", sans-serif !important;

    font-size: 16px !important;

    font-weight: 700 !important;

    color: #1f1c1c !important;

    text-transform: uppercase !important;

    letter-spacing: 0.5px !important;

    margin: 0 0 8px !important;

}

.verein-nav-desc {

    font-family: "Montserrat", sans-serif;

    font-size: 13px;

    color: #666;

    margin: 0 0 14px;

    line-height: 1.5;

}

.verein-nav-cta {

    font-family: "Montserrat", sans-serif;

    font-size: 12px;

    font-weight: 700;

    color: #cf1c1f;

    text-transform: uppercase;

    letter-spacing: 0.5px;

    transition: color 0.3s ease;

}

.verein-nav-card:hover .verein-nav-cta {

    color: #a01518;

}

/* === VORSTAND GRID === */

.vorstand-grid {

    display: grid;

    grid-template-columns: repeat(4, 1fr);

    gap: 20px;

    max-width: 1100px;

    margin: 0 auto;

    padding: 0 20px;

}

.vorstand-grid--single {

    grid-template-columns: 1fr;

    max-width: 400px;

}

.vorstand-card {

    background: #ffffff;

    border-radius: 12px;

    padding: 28px 20px;

    box-shadow: 0 2px 12px rgba(0,0,0,0.06);

    border: 1px solid #f0f0f0;

    text-align: center;

    transition: all 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94);

    display: flex;

    flex-direction: column;

    align-items: center;

}

.vorstand-card:hover {

    transform: translateY(-4px);

    box-shadow: 0 8px 24px rgba(207, 28, 31, 0.1);

    border-color: #cf1c1f;

}

.vorstand-card--primary {

    border-color: rgba(207, 28, 31, 0.3);

}

.vorstand-card-icon {

    width: 50px;

    height: 50px;

    border-radius: 50%;

    background: rgba(207, 28, 31, 0.08);

    display: flex;

    align-items: center;

    justify-content: center;

    margin: 0 auto 14px;

    transition: all 0.3s ease;

}

.vorstand-card:hover .vorstand-card-icon {

    background: rgba(207, 28, 31, 0.15);

    transform: scale(1.1);

}

.vorstand-funktion {

    font-family: "Montserrat", sans-serif;

    font-size: 11px;

    font-weight: 700;

    color: #999;

    text-transform: uppercase;

    letter-spacing: 1px;

    display: block;

    margin-bottom: 4px;

}

.vorstand-name {

    font-family: "Montserrat", sans-serif !important;

    font-size: 16px !important;

    font-weight: 700 !important;

    color: #1f1c1c !important;

    margin: 0 0 10px !important;

}

.vorstand-contacts {

    display: flex;

    flex-direction: column;

    align-items: center;

    margin-top: 6px;

}

.vorstand-contact {

    display: inline-flex;

    align-items: center;

    gap: 5px;

    margin-top: 4px;

    text-align: center;

}

.vorstand-contact svg {

    flex-shrink: 0;

}

.vorstand-contact a {

    word-break: break-all;

    hyphens: none;

}

/* Einzelbuchstaben-Umbruch vermeiden: min 4 Zeichen pro Zeile */
@supports (overflow-wrap: anywhere) {
    .vorstand-contact a {
        word-break: normal;
        overflow-wrap: anywhere;
    }
}

.vorstand-contact a {

    font-family: "Montserrat", sans-serif;

    font-size: 12px;

    font-weight: 500;

    color: #cf1c1f !important;

    text-decoration: none !important;

}

.vorstand-contact a:hover {

    text-decoration: underline !important;

}

/* === SPORTANLAGE FEATURES === */

.sportanlage-features {

    display: grid;

    grid-template-columns: repeat(5, 1fr);

    gap: 20px;

    max-width: 1100px;

    margin: 0 auto;

    padding: 0 20px 40px;

}

.sportanlage-feature {

    background: #ffffff;

    border-radius: 12px;

    padding: 28px 16px;

    box-shadow: 0 2px 12px rgba(0,0,0,0.06);

    border: 1px solid #f0f0f0;

    text-align: center;

    transition: all 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94);

}

.sportanlage-feature:hover {

    transform: translateY(-4px);

    box-shadow: 0 8px 24px rgba(207, 28, 31, 0.1);

    border-color: #cf1c1f;

}

.sportanlage-feature-icon {

    width: 50px;

    height: 50px;

    border-radius: 50%;

    background: rgba(207, 28, 31, 0.08);

    display: flex;

    align-items: center;

    justify-content: center;

    margin: 0 auto 14px;

    transition: all 0.3s ease;

}

.sportanlage-feature:hover .sportanlage-feature-icon {

    background: rgba(207, 28, 31, 0.15);

    transform: scale(1.1);

}

.sportanlage-feature-title {

    font-family: "Montserrat", sans-serif !important;

    font-size: 13px !important;

    font-weight: 700 !important;

    color: #1f1c1c !important;

    text-transform: uppercase !important;

    letter-spacing: 0.5px !important;

    margin: 0 0 6px !important;

}

.sportanlage-feature-desc {

    font-family: "Montserrat", sans-serif;

    font-size: 12px;

    color: #888;

    margin: 0;

    line-height: 1.4;

}

/* === SPORTANLAGE GALLERY === */

.sportanlage-gallery {

    display: grid;

    grid-template-columns: repeat(3, 1fr);

    gap: 16px;

    max-width: 1100px;

    margin: 0 auto;

    padding: 0 20px;

}

.sportanlage-gallery img {

    width: 100%;

    height: 250px;

    object-fit: cover;

    border-radius: 10px;

    box-shadow: 0 4px 16px rgba(0,0,0,0.1);

    transition: transform 0.3s ease, box-shadow 0.3s ease;

    cursor: pointer;

}

.sportanlage-gallery img:hover {

    transform: scale(1.05);

    box-shadow: 0 8px 25px rgba(0,0,0,0.2);

    z-index: 2;

    position: relative;

}

/* === SATZUNG DOWNLOAD === */

.satzung-download-section {

    text-align: center;

    max-width: 700px;

    margin: 0 auto;

}

.satzung-download-icon {

    margin-bottom: 20px;

}

.satzung-download-btn {

    display: inline-flex;

    align-items: center;

    gap: 8px;

    background: #cf1c1f;

    color: #ffffff !important;

    padding: 16px 36px;

    border-radius: 8px;

    font-family: "Montserrat", sans-serif;

    font-size: 14px;

    font-weight: 700;

    text-transform: uppercase;

    letter-spacing: 0.5px;

    text-decoration: none !important;

    transition: all 0.3s ease;

}

.satzung-download-btn:hover {

    background: #a01518;

    transform: translateY(-3px);

    box-shadow: 0 6px 20px rgba(207, 28, 31, 0.3);

    color: #ffffff !important;

}

/* === SATZUNG ECKDATEN === */

.satzung-eckdaten {

    display: grid;

    grid-template-columns: repeat(5, 1fr);

    gap: 20px;

    max-width: 1100px;

    margin: 0 auto;

    padding: 0 20px;

}

.satzung-eckdaten-card {

    background: #ffffff;

    border-radius: 12px;

    padding: 28px 16px;

    box-shadow: 0 2px 12px rgba(0,0,0,0.06);

    border: 1px solid #f0f0f0;

    text-align: center;

    transition: all 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94);

}

.satzung-eckdaten-card:hover {

    transform: translateY(-4px);

    box-shadow: 0 8px 24px rgba(207, 28, 31, 0.1);

    border-color: #cf1c1f;

}

.satzung-eckdaten-icon {

    width: 50px;

    height: 50px;

    border-radius: 50%;

    background: rgba(207, 28, 31, 0.08);

    display: flex;

    align-items: center;

    justify-content: center;

    margin: 0 auto 14px;

    transition: all 0.3s ease;

}

.satzung-eckdaten-card:hover .satzung-eckdaten-icon {

    background: rgba(207, 28, 31, 0.15);

    transform: scale(1.1);

}

.satzung-eckdaten-label {

    font-family: "Montserrat", sans-serif !important;

    font-size: 11px !important;

    font-weight: 700 !important;

    color: #999 !important;

    text-transform: uppercase !important;

    letter-spacing: 1px !important;

    margin: 0 0 6px !important;

}

.satzung-eckdaten-value {

    font-family: "Montserrat", sans-serif;

    font-size: 13px;

    font-weight: 600;

    color: #1f1c1c;

    margin: 0;

    line-height: 1.5;

}

/* === MITGLIED WERDEN KONTAKT === */

.mitglied-kontakt-grid {

    display: grid;

    grid-template-columns: repeat(2, 1fr);

    gap: 30px;

    max-width: 800px;

    margin: 0 auto;

    padding: 0 20px;

}

.mitglied-kontakt-card {

    background: #f8f8f8;

    border-radius: 12px;

    padding: 32px 24px;

    border: 1px solid #f0f0f0;

    text-align: center;

    transition: all 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94);

}

.mitglied-kontakt-card:hover {

    transform: translateY(-4px);

    box-shadow: 0 8px 24px rgba(207, 28, 31, 0.1);

    border-color: #cf1c1f;

    background: #ffffff;

}

.mitglied-kontakt-icon {

    width: 56px;

    height: 56px;

    border-radius: 50%;

    background: rgba(207, 28, 31, 0.08);

    display: flex;

    align-items: center;

    justify-content: center;

    margin: 0 auto 16px;

    transition: all 0.3s ease;

}

.mitglied-kontakt-card:hover .mitglied-kontakt-icon {

    background: rgba(207, 28, 31, 0.15);

    transform: scale(1.1);

}

.mitglied-kontakt-funktion {

    font-family: "Montserrat", sans-serif;

    font-size: 11px;

    font-weight: 700;

    color: #999;

    text-transform: uppercase;

    letter-spacing: 1px;

    display: block;

    margin-bottom: 4px;

}

.mitglied-kontakt-name {

    font-family: "Montserrat", sans-serif !important;

    font-size: 18px !important;

    font-weight: 700 !important;

    color: #1f1c1c !important;

    margin: 0 0 14px !important;

}

.mitglied-kontakt-details {

    display: flex;

    flex-direction: column;

    gap: 8px;

}

.mitglied-kontakt-detail {

    display: flex;

    align-items: center;

    justify-content: center;

    gap: 8px;

}

.mitglied-kontakt-detail span {

    font-family: "Montserrat", sans-serif;

    font-size: 13px;

    color: #555;

}

.mitglied-kontakt-detail a {

    font-family: "Montserrat", sans-serif;

    font-size: 13px;

    font-weight: 500;

    color: #cf1c1f !important;

    text-decoration: none !important;

}

.mitglied-kontakt-detail a:hover {

    text-decoration: underline !important;

}

/* === VEREIN RESPONSIVE === */

@media (max-width: 921px) {

    .verein-nav-grid {

        grid-template-columns: repeat(2, 1fr);

        gap: 16px;

    }

    .vorstand-grid {

        grid-template-columns: repeat(2, 1fr);

        gap: 16px;

    }

    .sportanlage-features {

        grid-template-columns: repeat(3, 1fr);

        gap: 14px;

    }

    .sportanlage-gallery {

        grid-template-columns: repeat(2, 1fr);

        gap: 12px;

    }

    .sportanlage-gallery img {

        height: 200px;

    }

    .satzung-eckdaten {

        grid-template-columns: repeat(3, 1fr);

        gap: 14px;

    }

}

@media (max-width: 768px) {

    .verein-hero {

        height: 300px;

    }

    .verein-nav-grid {

        grid-template-columns: 1fr;

        gap: 14px;

        padding: 0 16px;

    }

    .verein-nav-card {

        padding: 24px 16px;

    }

    .verein-nav-card:hover {

        transform: none;

        box-shadow: 0 2px 12px rgba(0,0,0,0.06);

        border-color: #f0f0f0;

    }

    .verein-nav-card:hover .verein-nav-icon {

        transform: none;

        background: rgba(207, 28, 31, 0.08);

    }

    .vorstand-grid {

        grid-template-columns: repeat(2, 1fr);

        gap: 14px;

        padding: 0 16px;

    }

    .vorstand-card {

        padding: 22px 14px;

    }

    .vorstand-card:hover {

        transform: none;

        box-shadow: 0 2px 12px rgba(0,0,0,0.06);

        border-color: #f0f0f0;

    }

    .vorstand-card:hover .vorstand-card-icon {

        transform: none;

        background: rgba(207, 28, 31, 0.08);

    }

    .sportanlage-features {

        grid-template-columns: repeat(2, 1fr);

        gap: 14px;

        padding: 0 16px 30px;

    }

    .sportanlage-feature:hover {

        transform: none;

        box-shadow: 0 2px 12px rgba(0,0,0,0.06);

        border-color: #f0f0f0;

    }

    .sportanlage-feature:hover .sportanlage-feature-icon {

        transform: none;

        background: rgba(207, 28, 31, 0.08);

    }

    .sportanlage-gallery {

        grid-template-columns: repeat(2, 1fr);

        gap: 10px;

        padding: 0 16px;

    }

    .sportanlage-gallery img {

        height: 180px;

    }

    .sportanlage-gallery img:hover {

        transform: none;

    }

    .satzung-eckdaten {

        grid-template-columns: repeat(2, 1fr);

        gap: 14px;

        padding: 0 16px;

    }

    .satzung-eckdaten-card:hover {

        transform: none;

        box-shadow: 0 2px 12px rgba(0,0,0,0.06);

        border-color: #f0f0f0;

    }

    .satzung-eckdaten-card:hover .satzung-eckdaten-icon {

        transform: none;

        background: rgba(207, 28, 31, 0.08);

    }

    .mitglied-kontakt-grid {

        grid-template-columns: 1fr;

        gap: 20px;

        padding: 0 16px;

    }

    .mitglied-kontakt-card:hover {

        transform: none;

        box-shadow: none;

        border-color: #f0f0f0;

        background: #f8f8f8;

    }

    .mitglied-kontakt-card:hover .mitglied-kontakt-icon {

        transform: none;

        background: rgba(207, 28, 31, 0.08);

    }

}

@media (max-width: 480px) {

    .verein-hero {

        height: 250px;

    }

    .vorstand-grid {

        grid-template-columns: 1fr;

    }

    .sportanlage-features {

        grid-template-columns: 1fr;

    }

    .sportanlage-gallery {

        grid-template-columns: 1fr;

    }

    .sportanlage-gallery img {

        height: 220px;

    }

    .satzung-eckdaten {

        grid-template-columns: 1fr;

    }

    .satzung-download-btn {

        padding: 14px 24px;

        font-size: 13px;

    }

}

/* Mitglied werden CTA Banner */

.mitglied-cta h3 {

  color: #ffffff !important;

}

.mitglied-cta a[href*="mitglied-werden"] {

  transition: transform 0.3s ease, box-shadow 0.3s ease;

}

.mitglied-cta a[href*="mitglied-werden"]:hover {

  transform: translateY(-2px);

  box-shadow: 0 6px 20px rgba(0,0,0,0.3);

}

/* ============================================

   GESCHICHTE TIMELINE (Page ID 13)

   v1.0 - Interaktiver Zeitstrahl

   ============================================ */

/* Full-Width Layout for page 13 */

.page-id-13 .ast-article-single {

    background: transparent;

    box-shadow: none;

    padding: 0;

    margin: 0;

}

.page-id-13 #primary,

.page-id-13 .content-area {

    padding: 0 !important;

    margin: 0 !important;

}

.page-id-13 .ast-container,

.page-id-13 .site-content .ast-container {

    max-width: 100% !important;

    padding: 0 !important;

}

.page-id-13 .entry-content {

    margin: 0 !important;

    padding: 0 !important;

}

.page-id-13 .geschichte-hero,

.page-id-13 .tl-container,

.page-id-13 .geschichte-credits {

    max-width: 100% !important;

    margin-left: 0 !important;

    margin-right: 0 !important;

}

.page-id-13 .entry-header {

    display: none;

}

/* Geschichte Hero */

.geschichte-hero h1 {

    font-family: "Montserrat", sans-serif !important;

    font-size: clamp(28px, 4vw, 42px) !important;

    font-weight: 800 !important;

    color: #ffffff !important;

    text-transform: uppercase !important;

    letter-spacing: 2px !important;

    margin: 0 0 16px !important;

}

.geschichte-hero .geschichte-hero-years {

    color: rgba(255,255,255,0.7) !important;

}

.geschichte-hero {

    background: #1f1c1c;

    padding: 80px 20px;

    text-align: center;

    position: relative;

    overflow: hidden;

}

/* glow-effekt entfernt — flat #1f1c1c wie alle anderen seiten */

.geschichte-hero-content {

    position: relative;

    z-index: 1;

    max-width: 700px;

    margin: 0 auto;

}

.geschichte-hero-label {

    font-family: "Montserrat", sans-serif !important;

    font-size: 13px !important;

    font-weight: 700 !important;

    text-transform: uppercase !important;

    letter-spacing: 3px !important;

    color: #cf1c1f !important;

    margin: 0 0 16px !important;

}

.geschichte-hero-title {

    font-family: "Montserrat", sans-serif !important;

    font-size: 48px !important;

    font-weight: 800 !important;

    color: #ffffff !important;

    margin: 0 0 12px !important;

    line-height: 1.1 !important;

}

.geschichte-hero-subtitle {

    font-family: "Montserrat", sans-serif !important;

    font-size: 20px !important;

    font-weight: 400 !important;

    color: rgba(255,255,255,0.7) !important;

    margin: 0 0 24px !important;

}

.geschichte-hero-text {

    font-family: "Montserrat", sans-serif !important;

    font-size: 15px !important;

    color: rgba(255,255,255,0.5) !important;

    line-height: 1.7 !important;

    margin: 0 !important;

}

/* Timeline Container */

.tl-container {

    position: relative;

    max-width: 1100px;

    margin: 0 auto;

    padding: 60px 20px 80px;

}

.tl-container::before {

    content: '';

    position: absolute;

    left: 50%;

    top: 0;

    bottom: 0;

    width: 3px;

    background: linear-gradient(180deg, transparent 0%, #cf1c1f 3%, #cf1c1f 97%, transparent 100%);

    transform: translateX(-50%);

}

/* Timeline Event */

.tl-event {

    position: relative;

    margin-bottom: 50px;

    width: 50%;

}

.tl-event:last-child {

    margin-bottom: 0;

}

/* Left events */

.tl-left {

    padding-right: 50px;

    text-align: right;

    margin-left: 0;

}

/* Right events */

.tl-right {

    padding-left: 50px;

    text-align: left;

    margin-left: 50%;

}

/* Year Circle */

.tl-year {

    position: absolute;

    top: -2px;

    width: 64px;

    height: 64px;

    border-radius: 50%;

    background: #cf1c1f;

    color: #ffffff;

    font-family: "Montserrat", sans-serif;

    font-size: 14px;

    font-weight: 800;

    display: flex;

    align-items: center;

    justify-content: center;

    z-index: 2;

    box-shadow: 0 4px 16px rgba(207, 28, 31, 0.35);

    border: 3px solid #ffffff;

}

.tl-left .tl-year {

    right: -32px;

}

.tl-right .tl-year {

    left: -32px;

}

/* Timeline Card */

.tl-card {

    background: #ffffff;

    border-radius: 12px;

    box-shadow: 0 2px 12px rgba(0,0,0,0.06);

    border: 1px solid #f0f0f0;

    overflow: hidden;

    transition: all 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94);

}

.tl-card:hover {

    box-shadow: 0 8px 28px rgba(0,0,0,0.1);

    border-color: rgba(207, 28, 31, 0.2);

}

.tl-card.tl-active {

    border-color: #cf1c1f;

    box-shadow: 0 8px 28px rgba(207, 28, 31, 0.15);

}

/* Card Header */

.tl-card-header {

    display: flex;

    align-items: center;

    justify-content: space-between;

    padding: 20px 24px;

    cursor: pointer;

    gap: 12px;

    user-select: none;

    transition: background 0.2s ease;

}

.tl-card-header:hover {

    background: #fafafa;

}

.tl-card.tl-active .tl-card-header {

    background: #cf1c1f;

}

.tl-card-title {

    font-family: "Montserrat", sans-serif !important;

    font-size: 16px !important;

    font-weight: 700 !important;

    color: #1f1c1c !important;

    margin: 0 !important;

    text-align: left !important;

    flex: 1;

}

.tl-card.tl-active .tl-card-title {

    color: #ffffff !important;

}

/* Toggle Icon */

.tl-card-toggle-icon {

    width: 18px;

    height: 18px;

    color: #999;

    transition: transform 0.3s ease, color 0.3s ease;

    flex-shrink: 0;

    display: block;

}

.tl-card.tl-active .tl-card-toggle-icon {

    transform: rotate(180deg);

    color: #ffffff;

}

/* Card Body (Accordion) */

.tl-card-body {

    max-height: 0;

    overflow: hidden;

    transition: max-height 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);

}

.tl-card.tl-active .tl-card-body {

    max-height: 20000px;

    transition: max-height 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);

}

.tl-card-body-inner,

.tl-card-content {

    padding: 16px 24px 24px;

    text-align: left !important;

}

.tl-card-body p {

    font-family: "Montserrat", sans-serif;

    font-size: 14px;

    line-height: 1.8;

    color: #444;

    margin: 0 0 14px;

}

.tl-card-body p:last-child {

    margin-bottom: 0;

}

.tl-card-body strong {

    color: #1f1c1c;

}

.tl-card-body table {

    width: 100%;

    border-collapse: collapse;

    margin: 14px 0;

    font-size: 13px;

}

.tl-card-body th {

    background: #1f1c1c;

    color: #ffffff;

    padding: 8px 12px;

    text-align: left;

    font-weight: 700;

}

.tl-card-body td {

    padding: 8px 12px;

    border-bottom: 1px solid #eee;

}

.tl-card-body figure {

    margin: 14px 0;

}

.tl-card-body img {

    max-width: 100%;

    height: auto;

    border-radius: 8px;

}

/* Scroll Reveal */

.tl-event {

    opacity: 0;

    transition: opacity 0.6s ease, transform 0.6s ease;

}

.tl-event.tl-left {

    transform: translateX(-40px);

}

.tl-event.tl-right {

    transform: translateX(40px);

}

.tl-event.tl-revealed {

    opacity: 1;

    transform: translateX(0);

}

/* Danksagung inside timeline card */

.tl-danksagung {
    background: rgba(207, 28, 31, 0.08);
    border-left: 3px solid #cf1c1f;
    border-radius: 0 6px 6px 0;
    padding: 20px 24px;
    margin-top: 24px;
}

.tl-danksagung-title {
    font-family: "Montserrat", sans-serif !important;
    font-size: 18px !important;
    font-weight: 700 !important;
    color: #cf1c1f !important;
    margin: 0 0 12px !important;
}

.tl-danksagung p {
    font-size: 14px;
    line-height: 1.7;
    color: #444;
    margin-bottom: 12px;
}

.tl-danksagung p:last-child {
    margin-bottom: 0;
    font-weight: 600;
    color: #1f1c1c;
    font-style: italic;
}

/* Section headings inside timeline cards */

.tl-section {
    font-weight: 700 !important;
    font-size: 16px !important;
    color: #1f1c1c;
    margin-top: 28px !important;
}

/* Credits / Danksagung */

.geschichte-credits {

    background: linear-gradient(135deg, #1f1c1c 0%, #2a2525 100%);

    padding: 60px 20px;

    text-align: center;

}

.geschichte-credits-content {

    max-width: 700px;

    margin: 0 auto;

}

.geschichte-credits-title {

    font-family: "Montserrat", sans-serif !important;

    font-size: 28px !important;

    font-weight: 800 !important;

    color: #ffffff !important;

    margin: 0 0 24px !important;

}

.geschichte-credits p {

    font-family: "Montserrat", sans-serif;

    font-size: 14px;

    line-height: 1.8;

    color: rgba(255,255,255,0.65);

    margin: 0 0 14px;

}

.geschichte-credits p:last-child {

    margin-bottom: 0;

}

/* Historical Event Markers (Weltgeschichte) */
.tl-history {
    margin-bottom: 30px !important;
}
.tl-history .tl-year {
    background: #1f1c1c !important;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.25) !important;
    width: 72px !important;
    height: 72px !important;
    left: -36px !important;
    top: -7px !important;
    font-size: 12px !important;
    line-height: 1.15 !important;
    text-align: center !important;
}
.tl-history .tl-card {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
}
.tl-history .tl-card:hover {
    box-shadow: none !important;
    border-color: transparent !important;
}
.tl-history .tl-card-header {
    cursor: default !important;
    padding: 20px 8px !important;
}
.tl-history .tl-card-header:hover {
    background: transparent !important;
}
.tl-history .tl-card-title {
    color: #555 !important;
    font-style: italic !important;
    font-weight: 600 !important;
    font-size: 15px !important;
}
.tl-history .tl-card-toggle-icon {
    display: none !important;
}

/* ---- Responsive: Tablet ---- */

@media (max-width: 921px) {

    .tl-container::before {

        left: 30px;

    }

    .tl-event {

        width: 100%;

        padding-left: 80px !important;

        padding-right: 0 !important;

        text-align: left !important;

        margin-left: 0 !important;

    }

    .tl-year {

        left: 0 !important;

        right: auto !important;

        width: 56px;

        height: 56px;

        font-size: 13px;

    }

    .tl-event.tl-left,

    .tl-event.tl-right {

        transform: translateX(-30px);

    }

    .geschichte-hero-title {

        font-size: 36px !important;

    }

}

/* ---- Responsive: Mobile ---- */

@media (max-width: 544px) {

    .geschichte-hero {

        padding: 50px 16px;

    }

    .geschichte-hero-title {

        font-size: 28px !important;

    }

    .geschichte-hero-subtitle {

        font-size: 16px !important;

    }

    .geschichte-hero-text {

        font-size: 13px !important;

    }

    .tl-container {

        padding: 40px 10px 60px 16px;

    }

    .tl-container::before {

        left: 36px;

    }

    .tl-event {

        padding-left: 68px !important;

        margin-bottom: 30px;

    }

    .tl-year {

        left: 14px !important;

        width: 44px;

        height: 44px;

        font-size: 11px;

        border-width: 2px;

    }

    .tl-card-header {

        padding: 14px 16px;

    }

    .tl-card-title {

        font-size: 14px !important;

    }

    .tl-card-body-inner {

        padding: 12px 16px 16px;

    }

    .tl-card-body p {

        font-size: 13px;

    }

    .geschichte-credits {

        padding: 40px 16px;

    }

    .geschichte-credits-title {

        font-size: 22px !important;

    }

}

/* === STICKY WAPPEN BADGE === */

@keyframes badgeFadeIn {

    from { opacity: 0; transform: translateY(20px) scale(0.8); }

    to { opacity: 1; transform: translateY(0) scale(1); }

}

#fc-sticky-wappen {
    display: block;
    position: fixed;
    top: 12px;
    left: 20px;
    width: 75px;
    height: 75px;
    z-index: 9999;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.4s ease, transform 0.4s ease;
}

#fc-sticky-wappen.visible {
    opacity: 1;
    pointer-events: auto;
}

#fc-sticky-wappen img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    filter: drop-shadow(0 2px 10px rgba(0,0,0,0.5));
    transition: transform 0.3s ease;
}

#fc-sticky-wappen:hover img {
    transform: scale(1.1);
}

@media (max-width: 768px) {
    #fc-sticky-wappen {
        width: 48px;
        height: 48px;
        top: 8px;
        left: 12px;
    }
}

/* === HEADER ENTRANCE ANIMATION === */

@keyframes headerSlideDown {

    from { transform: translateY(-100%); opacity: 0; }

    to { transform: none; opacity: 1; }

}

.ast-primary-header-bar {

    animation: headerSlideDown 0.6s ease;

}

