/* Aktiviert die zusätzlichen CSS-Dateien aus der joomla.asset.json */
@import url('variables.css');
@import url('buttons.css');
@import url('cards.css');
@import url('events.css');
@import url('footer.css');
@import url('header.css');
@import url('hero.css');

/* Chronik-CSS isoliert laden, damit es nicht andere Inhaltsseiten überschreibt */
@import url('chronik.css');

/* ==========================================================
   NCV Website 2026
   Version 2.3 - Finaler Mobil- & Header-Fix
   Joomla 5 - Cassiopeia / Astroid
   ========================================================== */

/* ==========================================================
   FARBEN
   ========================================================== */
:root {
    --ncv-green: #126a38;
    --ncv-green-light: #2f8f47;
    --ncv-gold: #d4af37;
    --white: #ffffff;
    --black: #000000;
    --grey: #f7f9f7;
    --text: #555555;
    --radius: 22px;
    --shadow: 0 20px 60px rgba(0,0,0,.08), 0 5px 15px rgba(0,0,0,.04);
    --transition: .35s ease;
}

/* ==========================================================
   ALLGEMEIN
   ========================================================== */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    overflow-x: hidden;
    font-family: "Segoe UI", Roboto, Arial, sans-serif;
    background: var(--grey);
    color: var(--text);
}

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

/* ==========================================================
   HEADER & NAVIGATION (DESKTOP)
   ========================================================== */
.container-header {
    position: sticky;
    top: 0;
    z-index: 9999;
    background: rgba(18,106,56,.94);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    box-shadow: 0 5px 18px rgba(0,0,0,.18);
    transition: .4s;
}

.container-header .grid-child {
    min-height: 120px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.navbar-brand {
    flex: 0 0 auto;
}

.navbar-brand img {
    height: 100px;
    width: auto;
    transition: .35s;
    filter: drop-shadow(1px 1px 0px #fff) 
            drop-shadow(-1px -1px 0px #fff) 
            drop-shadow(0px 0px 6px rgba(255, 255, 255, 0.95)) !important;
}

.navbar-brand img:hover {
    transform: scale(1.04);
    filter: drop-shadow(1px 1px 0px #fff) 
            drop-shadow(-1px -1px 0px #fff) 
            drop-shadow(0px 0px 10px rgba(255, 255, 255, 1)) !important;
}

.container-nav {
    flex: 1;
    display: flex;
    justify-content: center;
}

.mod-menu {
    display: flex;
    gap: 34px;
    align-items: center;
}

.mod-menu li {
    list-style: none;
}

.mod-menu a {
    color: #fff;
    text-decoration: none;
    font-size: 19px;
    font-weight: 600;
    transition: .3s;
    position: relative;
}

.mod-menu a::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -8px;
    width: 0;
    height: 3px;
    background: var(--ncv-gold);
    transition: .3s;
}

.mod-menu a:hover::after {
    width: 100%;
}

.mod-menu a:hover {
    color: #fff;
}

.container-header .mod-search {
    margin-left: 30px;
}

/* ==========================================================
   HERO (STANDARDEINSTELLUNGEN PC)
   ========================================================== */
.ncv-hero {
    position: relative;
    width: 100%;
    min-height: calc(100vh - 120px);
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;
    background: #000;
}

.hero-slider {
    position: absolute;
    inset: 0;
    z-index: 1;
}

.hero-slide {
    position: absolute;
    inset: 0;
    opacity: 0;
    background-size: cover;
    background-position: center top;
    background-repeat: no-repeat;
    transition: opacity 2s ease-in-out;
    transform: scale(1);
    will-change: transform, opacity;
    backface-visibility: hidden;
}

.hero-slide.active {
    opacity: 1;
    animation: heroZoom 8s linear forwards;
}

@keyframes heroZoom {
    from { transform: scale(1); }
    to { transform: scale(1.08); }
}

.ncv-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 2;
    background: linear-gradient(rgba(0,0,0,.60), rgba(0,0,0,.25), rgba(0,0,0,.65));
}

.ncv-hero::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 220px;
    z-index: 2;
    pointer-events: none;
    background: linear-gradient(to bottom, rgba(247,249,247,0) 0%, rgba(247,249,247,1) 100%);
}

.ncv-hero-overlay {
    position: relative;
    z-index: 5;
    width: 100%;
    max-width: 950px;
    text-align: center;
    color: #fff;
    padding: 60px;
}

.hero-badge {
    display: inline-block;
    background: var(--ncv-gold);
    color: #fff;
    padding: 10px 22px;
    border-radius: 40px;
    font-size: 18px;
    font-weight: 700;
    margin-bottom: 30px;
}

.ncv-hero-overlay h1 {
    font-size: clamp(60px,6vw,90px);
    line-height: 1.05;
    font-weight: 800;
    margin-bottom: 20px;
    text-shadow: 0 4px 15px rgba(0,0,0,.7), 0 10px 30px rgba(0,0,0,.4);
}

.hero-subtitle {
    font-size: 34px;
    font-weight: 600;
    margin-bottom: 18px;
}

.hero-text {
    font-size: 24px;
    line-height: 1.8;
    margin-bottom: 50px;
    text-shadow: 0 3px 10px rgba(0,0,0,.6);
}

.hero-buttons {
    display: flex;
    justify-content: center;
    gap: 20px;
    flex-wrap: wrap;
}

.hero-buttons .btn {
    padding: 18px 42px;
    border-radius: 50px;
    font-size: 20px;
    font-weight: 700;
    transition: all .35s ease;
}

.hero-buttons .btn:hover {
    transform: translateY(-5px);
    box-shadow: 0 15px 35px rgba(0,0,0,.30);
}

/* ==========================================================
   STARTSEITEN-SEKTIONEN (WILLKOMMEN, GRUPPEN, ETC.)
   ========================================================== */
.welcome-section {
    background: var(--grey) !important;
    padding: 120px 0;
}

.welcome-container {
    width: min(94%,1500px);
    margin: auto;
    display: grid;
    grid-template-columns: 1.1fr .9fr;
    gap: 90px;
    align-items: center;
}

.welcome-small {
    display: inline-block;
    color: var(--ncv-green-light);
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
    margin-bottom: 20px;
}

.welcome-text h2 {
    color: var(--ncv-green);
    font-size: clamp(42px,4vw,64px);
    line-height: 1.15;
    margin-bottom: 30px;
}

.welcome-text p {
    font-size: 22px;
    line-height: 1.9;
    color: var(--text);
    margin-bottom: 25px;
}

.welcome-text .btn {
    margin-top: 25px;
    padding: 18px 42px;
    border-radius: 50px;
    font-weight: 700;
}

.welcome-image {
    overflow: hidden;
    border-radius: 24px;
    box-shadow: var(--shadow);
}

.welcome-image img {
    width: 100%;
    transition: .6s;
}

.welcome-image:hover img {
    transform: scale(1.05);
}

.groups-section {
    background: #ffffff !important;
    padding: 120px 0;
}

.groups-title {
    width: min(92%,900px);
    margin: 0 auto 70px;
    text-align: center;
}

.groups-title span {
    color: var(--ncv-green-light);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 2px;
}

.groups-title h2 {
    font-size: clamp(42px,4vw,60px);
    color: var(--ncv-green);
    margin: 20px 0;
}

.groups-title p {
    font-size: 22px;
    color: var(--text);
    line-height: 1.8;
}

.groups-grid {
    width: min(94%,1600px);
    margin: auto;
    display: grid;
    grid-template-columns: repeat(auto-fit,minmax(330px,1fr));
    gap: 35px;
}

.group-card {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    background: #fff;
    border-radius: 24px;
    box-shadow: var(--shadow);
    transition: all .35s ease;
}

.group-card:hover {
    transform: translateY(-10px);
    box-shadow: 0 30px 80px rgba(0,0,0,.18);
}

.group-image {
    position: relative;
    overflow: hidden;
}

.group-image img {
    width: 100%;
    height: 280px;
    object-fit: cover;
    transition: .6s;
}

.group-card:hover .group-image img {
    transform: scale(1.08);
}

.group-image::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(transparent, rgba(0,0,0,.60));
}

.group-image h3 {
    position: absolute;
    left: 25px;
    bottom: 20px;
    z-index: 2;
    color: #fff;
    font-size: 34px;
    margin: 0;
}

.group-content {
    display: flex;
    flex-direction: column;
    flex: 1;
    padding: 35px;
}

.group-content p {
    font-size: 20px;
    line-height: 1.8;
    color: var(--text);
    margin-bottom: 30px;
}

.group-content .btn {
    margin-top: auto;
    border-radius: 50px;
    padding: 14px 30px;
    font-weight: 700;
}
/* ==========================================================
   TABLET (769px - 1100px)
========================================================== */

@media (min-width: 769px) and (max-width: 1100px) {

    .welcome-container {
        grid-template-columns: 58% 42%;
        gap: 35px;
        align-items: center;
    }

    .welcome-text h2 {
        font-size: 46px;
    }

    .welcome-text p {
        font-size: 19px;
        line-height: 1.7;
    }

    .welcome-text .btn {
        padding: 16px 34px;
    }

    .welcome-image {
        align-self: start;
    }

    .welcome-image img {
        width: 100%;
        height: auto;
    }
}
/* ==========================================================
   FOTOGALERIE
   ========================================================== */
.gallery-section {
    background: #ffffff !important;
    padding: 120px 0;
}

.gallery-title {
    width: min(92%,900px);
    margin: 0 auto 70px;
    text-align: center;
}

.gallery-title span {
    color: var(--ncv-green-light);
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
}

.gallery-title h2 {
    color: var(--ncv-green);
    font-size: clamp(42px,4vw,60px);
    margin: 20px 0;
}

.gallery-title p {
    font-size: 22px;
    color: var(--text);
}

.gallery-grid {
    width: min(94%,1600px);
    margin: auto;
    display: grid;
    grid-template-columns: repeat(4,1fr);
    grid-auto-rows: 250px;
    gap: 20px;
}

.gallery-item {
    position: relative;
    overflow: hidden;
    border-radius: 24px;
    cursor: pointer;
}

.gallery-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: .6s;
}

.gallery-item:hover img {
    transform: scale(1.08);
}

.gallery-item::after {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,.25);
    opacity: 0;
    transition: .3s;
}

.gallery-item:hover::after {
    opacity: 1;
}

.gallery-item.large {
    grid-column: span 2;
    grid-row: span 2;
}

/* ==========================================================
   JEVENTS MODERNISIERUNG
   ========================================================== */
#jevents_body .ev_navigation,
#jevents_body .jev_toprow,
#jevents_body .jev_header2,
#jevents_body tr[bgcolor="red"] {
    display: none !important;
    height: 0 !important;
    visibility: hidden !important;
}

div#jevents_body {
    display: block !important;
    max-width: 1200px !important;
    width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    float: none !important;
    padding-left: 20px !important;
    padding-right: 20px !important;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
}

#jevents_body table, 
#jevents_body .ev_table {
    border-collapse: separate !important;
    border-spacing: 0 15px !important;
    width: 100% !important;
    background: transparent !important;
    border: none !important;
}

#jevents_body table th,
#jevents_body .ev_table tr:first-child th,
#jevents_body .ev_table tr:first-child td {
    display: none !important;
}

#jevents_body .jev_listrow,
#jevents_body table tr,
#jevents_body .ev_table tr {
    background: #ffffff !important;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.06) !important;
    border-radius: 12px !important;
    margin-bottom: 20px !important;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    overflow: hidden !important;
}

#jevents_body .jev_listrow {
    padding: 22px !important;
    border-left: 6px solid #b8963e !important;
    display: block !important;
}

#jevents_body table td,
#jevents_body .ev_table td {
    padding: 20px 15px !important;
    border: none !important;
    vertical-align: middle !important;
    color: #333333 !important;
    background: transparent !important;
}

#jevents_body table td:first-child,
#jevents_body .ev_table td:first-child {
    border-left: 6px solid #b8963e !important;
    border-top-left-radius: 12px !important;
    border-bottom-left-radius: 12px !important;
}

#jevents_body table td:last-child,
#jevents_body .ev_table td:last-child {
    display: none !important;
}

#jevents_body table td:nth-last-child(2),
#jevents_body .ev_table td:nth-last-child(2) {
    border-top-right-radius: 12px !important;
    border-bottom-right-radius: 12px !important;
}

#jevents_body .jev_listrow:hover,
#jevents_body table tr:hover,
#jevents_body .ev_table tr:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.1) !important;
}

#jevents_body ul.ev_ul, 
#jevents_body li.ev_td_li {
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    background: transparent !important;
    list-style: none !important;
}

#jevents_body .jev_listrow a, 
#jevents_body a.ev_link_row,
#jevents_body table td a,
#jevents_body .ev_table td a {
    font-size: 1.2rem !important;
    font-weight: bold !important;
    color: #1a1a1a !important;
    text-decoration: none !important;
}

#jevents_body .jev_listrow a:hover,
#jevents_body table td a:hover,
#jevents_body .ev_table td a:hover {
    color: #b8963e !important;
}

.com_jevents #astroid-component,
.com_jevents .astroid-component-container,
.com_jevents #astroid-main-body {
    display: block !important;
    max-width: 1200px !important;
    width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

/* ==========================================================
   STRICT GETRENNTE REAKTIVITÄT (TABLET / ZWISCHENGRÖSSEN)
   ========================================================== */
@media (max-width: 991px) and (min-width: 769px) {
    .container-header .grid-child {
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
        position: relative !important;
        min-height: 80px !important;
        padding: 10px 20px !important;
    }

    .container-header .navbar-brand img {
        height: 90px !important;
        max-height: 90px !important;
        width: auto !important;
    }

    .navbar-collapse {
        background: #126a38 !important;
    }
}

/* ==========================================================
   STRICT GETRENNTE PC-ANSICHT (MIN-WIDTH 769px)
   ========================================================== */
@media (min-width: 769px) {
    body, #content, main, #astroid-main-section, .astroid-body, #astroid-wrapper {
        padding-top: 0px !important;
        margin-top: 0px !important;
    }
    .ncv-hero {
        margin-top: 0px !important;
    }
    #astroid-topbar, .astroid-top-header {
        display: block !important;
    }
}

/* ==========================================================
   STRICT GETRENNTE MOBIL-ANSICHT (MAX-WIDTH 768px)
   ========================================================== */
@media (max-width: 768px) {
    
    /* 1. Graue Topbar löschen */
    #astroid-topbar, .astroid-topbar, .topbar, .astroid-top-header {
        display: none !important;
        height: 0 !important;
        padding: 0 !important;
        margin: 0 !important;
    }
    
    /* 2. Suche auf dem Smartphone ausblenden */
    .astroid-search-wrap, button[name="Search"], .search-box, [class*="search"], .container-header .mod-search {
        display: none !important;
    }
    
    /* 3. Mobiler Header: Feste Höhe & relatives Layout für absolute Kind-Elemente */
    #astroid-mobile-header, .astroid-mobile-header, .mobile-header {
        display: block !important;
        position: relative !important;
        height: 85px !important;
        min-height: 85px !important;
        background-color: #126a38 !important;
        padding: 0 !important;
        margin: 0 !important;
    }
    
    /* 4. Layout-Lücken schließen */
    body, #content, main, #astroid-main-section, .astroid-body, #astroid-wrapper {
        padding-top: 0px !important;
        margin-top: 0px !important;
    }

    /* 5. Startseiten-Hero: KEIN negatives Margin, damit nichts verdeckt wird! */
    .ncv-hero {
        margin-top: 0px !important; 
        padding-top: 0px !important;
        min-height: 450px !important; 
        height: auto !important;
    }

    /* 6. Schrift & Buttons im Bild zentrieren und lesbar machen */
    .ncv-hero-overlay {
        padding: 40px 20px !important; 
        background: rgba(0, 0, 0, 0.4);
        border-radius: 15px;
        margin: 15px !important;
    }

    /* 7. Logo im grünen Balken absolut links anpinnen */
    .astroid-mobile-logo, 
    .mobile-logo,
    #astroid-mobile-header img,
    .astroid-mobile-header img {
        position: absolute !important;
        left: 15px !important;
        top: 12px !important;
        height: 60px !important;
        max-height: 60px !important;
        width: auto !important;
        z-index: 100 !important;
        display: block !important;
    }

    /* 8. Menü-Button (Burger) absolut rechts anpinnen */
    .astroid-mobile-menu-toggler,
    .mobile-menu-toggle,
    #astroid-mobile-header button.navbar-toggler,
    .astroid-mobile-header-inner button {
        position: absolute !important;
        right: 15px !important;
        top: 22px !important;
        display: block !important;
        z-index: 9999 !important;
        margin: 0 !important;
    }

    /* 9. FIX FÜR CHRONIK & TEXTSEITEN (Schiebt Text unter den Header) */
    body:not(.home) #astroid-main-body, 
    body:not(.home) main,
    body:not(.home) .site-interface > div:nth-child(3),
    body:not(.home) .com-content.view-article main {
        padding-top: 100px !important;
    }

    /* Inhalt-Sektionen kompakt */
    .welcome-container {
        grid-template-columns: 1fr;
        gap: 50px;
    }
    .welcome-text {
        text-align: center;
    }
    .welcome-section, .groups-section, .gallery-section {
        padding: 70px 0;
    }
    .welcome-text h2 {
        font-size: 38px;
    }
    .welcome-text p {
        font-size: 18px;
    }
    .groups-grid, .gallery-grid {
        grid-template-columns: 1fr;
    }
    .group-image img {
        height: 220px;
    }
    .group-image h3 {
        font-size: 28px;
    }
    .group-content {
        padding: 25px;
    }
    .group-content p {
        font-size: 18px;
    }
    .gallery-grid {
        grid-auto-rows: 240px;
    }
    .gallery-item.large {
        grid-column: auto;
        grid-row: auto;
    }
}

/* ==========================================================
   GLOBALER WRAPPER-HINTERGRUND & FOOTER-FIXES
   ========================================================== */
html, body, .site-interface, #astroid-main-body, #system-message-container + div, main, #astroid-footer, .astroid-footer-section {
    background-color: #e2e8e2 !important;
}

header, .container-header, nav, .navbar {
    background-color: var(--ncv-green, #126a38) !important;
}

article, .item-page, .com-content.view-article main, #jevents_body table tr {
    background: #ffffff !important;
    background-color: #ffffff !important;
}

footer, .footer, #astroid-copyright, .astroid-copyright-section, [class*="copyright"] {
    background-color: #126a38 !important;
    background: #126a38 !important;
    color: #ffffff !important;
}

footer a, .footer a, #astroid-copyright a {
    color: #ffffff !important;
    text-decoration: underline;
}

.home #top-b {
    display: block !important;
}

.home #top-b > div {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 100% !important;
    margin-bottom: 40px;
}

.home .breadcrumb,
.home nav[aria-label="breadcrumb"],
.home .mod-breadcrumbs {
    display: none !important;
}

/* Leeren Sponsoren-/Banner-Platzhalter komplett ausblenden */
#astroid-footer .container, 
.astroid-footer-section .container {
    display: none !important;
}

/* ==========================================================
   STYLING FÜR DIE "ÜBER UNS"-SEITE
   ========================================================== */
.item-page:not(.chronik-page) {
    max-width: 1000px;
    margin: 40px auto;
    padding: 50px;
    border-radius: 24px;
    box-shadow: var(--shadow);
}

.item-page:not(.chronik-page) blockquote {
    background: #f0f5f0;
    border-left: 6px solid var(--ncv-green);
    padding: 20px;
    margin: 30px 0;
    border-radius: 0 12px 12px 0;
    font-style: italic;
}

.item-page:not(.chronik-page) h3 {
    color: var(--ncv-green);
    margin-top: 35px;
    margin-bottom: 15px;
}

/* ==========================================================
   HEADER-REKORREKTUR: ABSOLUTER HAMBURGER-FIX (BRECHEISEN)
========================================================== */

/* Header fixieren und zwingen, oben zu bleiben */
#astroid-header, 
header.site-header,
.astroid-header-section {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 15px 0 !important;
    z-index: 9999 !important;
}

/* Hamburger-Button im Ruhezustand runterschieben */
.navbar-toggler,
.astroid-js-menu-toggle,
button[data-toggle="collapse"],
button[data-bs-toggle="collapse"] {
    margin-top: 25px !important; /* Erhöht, damit es sichtbar rutscht */
    position: relative !important;
    top: 0 !important;
}

/* Verhindert das Hochspringen, egal welche Klasse das Framework beim Klick triggert */
html.menu-is-open .navbar-toggler,
html.menu-is-open .astroid-js-menu-toggle,
body.menu-is-open .navbar-toggler,
body.menu-is-open .astroid-js-menu-toggle,
.menu-is-open button,
[class*="menu-open"] .navbar-toggler {
    margin-top: 25px !important;
    position: relative !important;
    top: 0 !important;
}

/* Nullen der Body-Abstände */
body.site, body {
    padding-top: 0 !important;
    margin-top: 0 !important;
}

/* Inhaltsabstände */
#astroid-main-body, main {
    margin-top: 0 !important;
    padding-top: 160px !important;
}
.chronik-timeline-container, #chronik-page {
    padding-top: 180px !important;
}
/* ==========================================================
   EVENTS: MEHR ANZEIGEN / AUFKLAPP-FUNKTION
========================================================== */

/* Versteckt den Haupttext nach dem Weiterlesen standardmäßig */
.ncv-event-hidden {
    display: none !important;
    opacity: 0;
    transition: opacity 0.3s ease;
    margin-top: 15px;
    padding-top: 15px;
    border-top: 1px dashed rgba(0,0,0,0.1);
}

/* Zeigt den Text an, wenn geöffnet */
.ncv-event-hidden.open {
    display: block !important;
    opacity: 1 !important;
}

/* Styling für den Button */
.ncv-readmore {
    background-color: #1a5e32 !important;
    color: #ffffff !important;
    border: none !important;
    padding: 10px 20px !important;
    border-radius: 8px !important;
    cursor: pointer !important;
    font-weight: 600 !important;
    margin-top: 15px !important;
    display: inline-block !important;
}

.ncv-readmore:hover {
    background-color: #cca43b !important;
}
/* ==========================================================
   DER REINE CSS-AUFKLAPP-TRICK (OHNE JS / OHNE PHP-ÄNDERUNG)
========================================================== */

/* 1. Sucht das Element NACH dem Button und bricht das display:none von Joomla auf */
.ncv-readmore + .ncv-event-hidden,
[data-target="event_50"] + .ncv-event-hidden,
#event_50 {
    display: none !important; /* Standardmäßig verstecken */
}

/* 2. Wenn das JavaScript in der events.js/user.js doch irgendwann zündet, öffne es */
.ncv-event-hidden.open {
    display: block !important;
    opacity: 1 !important;
}

/* 3. Der absolute Notnagel: Falls der Browser den Text einfach gar nicht im HTML hat */
.ncv-event-content {
    display: flex;
    flex-direction: column;
}
.ncv-event-hidden {
    display: none !important;
    opacity: 0;
    transition: opacity 0.3s ease;
    margin-top: 20px !important;       /* Erzwingt den Abstand nach dem Aufklappen */
    padding-top: 15px !important;      /* Platz vor der Linie */
    border-top: 1px dashed rgba(0,0,0,0.15) !important; /* Dezente Trennlinie */
}

/* ==========================================================
   DER BRUTALE ASTROID-SIDEBAR-BEZWINGER (BOX & ABSTÄND)
========================================================== */

/* Wir zielen direkt auf das Modul-Element innerhalb der rechten Sidebar */
#sidebar-right [class*="articlesarchive"],
.astroid-sidebar [class*="articlesarchive"],
aside .mod-articlesarchive,
.ncv-archive-box {
    background: #ffffff !important;
    padding: 30px !important;
    border-radius: 22px !important;
    box-shadow: 0 20px 60px rgba(0,0,0,.08), 0 5px 15px rgba(0,0,0,.04) !important;
    
    /* HIER ERHÖHEN: Schiebt die Box perfekt auf eine Linie mit den Beiträgen */
    margin-top: 105px !important; 
    
    margin-bottom: 40px !important;
    display: block !important;
}

/* Titel-Design erzwingen */
#sidebar-right h3,
.astroid-sidebar h3,
aside th, 
aside h3 {
    color: var(--ncv-green, #126a38) !important;
    font-size: 24px !important;
    font-weight: 700 !important;
    margin-top: 0 !important;
    margin-bottom: 25px !important;
    padding-bottom: 12px !important;
    border-bottom: 2px solid var(--ncv-gold, #d4af37) !important;
}

/* Die Liste der Monate säubern */
#sidebar-right ul,
.astroid-sidebar ul,
aside ul {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

#sidebar-right ul li,
.astroid-sidebar ul li,
aside ul li {
    padding: 12px 0 !important;
    border-bottom: 1px solid rgba(0,0,0,0.06) !important;
    display: block !important;
}

/* Links formatieren */
#sidebar-right ul li a,
.astroid-sidebar ul li a,
aside ul li a {
    color: var(--text, #555555) !important;
    text-decoration: none !important;
    font-size: 17px !important;
    font-weight: 600 !important;
}

/* ==========================================================
   DEN FEED-LINK ("MY BLOG") ENDGÜLTIG AUSRADIEREN
========================================================== */
#sidebar-right a[href*="format=feed"],
.astroid-sidebar a[href*="format=feed"],
aside a[href*="format=feed"],
#sidebar-right .syndicate-module,
a[class*="syndicate"],
div[class*="articlesarchive"] + a {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}
/* ==========================================================
   CASSIOPEIA REIN-CSS SIDE-SCROLL & HEADER FIX (STATIONÄR)
========================================================== */
@media (max-width: 991px) {
    
    html, body {
        position: relative !important;
        overflow-x: hidden !important;
        width: 100% !important;
    }

    header.header {
        width: 100% !important;
        max-width: 100% !important;
        left: 0 !important;
        margin: 0 !important;
        padding: 15px 20px !important;
        background-color: #126a38 !important;
    }

    header.header .container-sidebar,
    header.header .container,
    header.header .navbar {
        display: flex !important;
        justify-content: space-between !important;
        align-items: center !important;
        width: 100% !important;
        max-width: 100% !important;
        padding: 0 !important;
        margin: 0 !important;
    }

    header.header .navbar-brand img {
        max-height: 60px !important;
        width: auto !important;
        display: block !important;
    }

    header.header .navbar-toggler {
        margin: 0 !important;
        padding: 8px 12px !important;
    }

    /* 6. Das geöffnete Menü jetzt im edlen NCV-Grün */
    header.header .navbar-collapse {
        position: absolute !important;
        top: 100% !important;
        right: 20px !important;
        left: auto !important;
        width: 260px !important;
        background: #126a38 !important; /* Grüner Box-Hintergrund */
        box-shadow: 0 10px 30px rgba(0,0,0,0.25) !important;
        border-radius: 12px !important;
        z-index: 9999 !important;
        padding: 15px !important;
        margin-top: 5px !important;
        border: 1px solid rgba(255, 255, 255, 0.1) !important;
    }

    header.header .navbar-nav {
        flex-direction: column !important;
    }

    /* Menülinks in weiß für perfekten Kontrast */
    header.header .navbar-nav .nav-link {
        color: #ffffff !important;
        padding: 10px 5px !important;
        font-weight: 600 !important;
        border-bottom: 1px solid rgba(255, 255, 255, 0.15) !important; /* Helle Trennlinien */
    }

    header.header .navbar-nav .nav-link:last-child {
        border-bottom: none !important;
    }
    
    /* Hover-Effekt (falls man mit dem Finger draufbleibt) */
    header.header .navbar-nav .nav-link:hover {
        color: #d4af37 !important; /* Goldener Akzent beim Drüberfahren */
    }
}
/* ==========================================================
   PERFEKTES, FUNKTIONIERENDES LAYOUT FÜR HANDY & TABLET
========================================================== */
@media (max-width: 1024px) {

    /* Hauptcontainer: Macht Platz nach unten für den echten Button */
    .welcome-container {
        display: flex !important;
        flex-direction: column !important;
        gap: 15px !important;
        width: 100% !important;
        position: relative !important;
        padding-bottom: 80px !important; /* Platzhalter für den Button ganz unten */
    }

    /* Der Textblock */
    .welcome-text {
        display: flex !important;
        flex-direction: column !important;
        width: 100% !important;
    }

    .welcome-text h2 {
        font-size: 38px !important;
        margin-bottom: 15px !important;
    }

    .welcome-text p {
        font-size: 18px !important;
        line-height: 1.6;
        margin-bottom: 15px !important;
    }

    /* Das Bild schiebt sich ganz normal unter die Texte */
    .welcome-image {
        display: flex !important;
        justify-content: center !important;
        width: 100% !important;
        margin: 15px 0 !important;
    }

    .welcome-image img {
        max-width: 450px !important; 
        width: 100% !important;
        height: auto !important;
    }

    /* DER TRICK: Der echte Button wird nach ganz unten gelöst */
    .welcome-text .btn,
    .welcome-text a.btn,
    .welcome-container .welcome-text a {
        display: inline-block !important;
        position: absolute !important;
        bottom: 10px !important; /* Klebt ihn ganz unten an den Hauptcontainer */
        left: 0 !important;
        width: auto !important;
        margin: 0 !important;
        z-index: 10 !important;
    }
}
/* ==========================================================
   STARTSEITE: NCV TOP EVENT – FINAL
   ========================================================== */

.ncv-top-event {
    background: #ffffff !important;
    border-radius: 12px !important;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.08) !important;
    border: none !important;
    padding: 36px 30px 40px 30px !important;
    margin: 20px auto 40px auto !important;
    max-width: 1100px !important;
    width: calc(100% - 40px) !important;
    box-sizing: border-box !important;
    text-align: center !important;

    /* gemeinsame Typo-Basis */
    font-family: inherit !important;
    color: var(--text) !important;
}

/* Dachzeile */
.ncv-top-event .jeviso-label {
    font-family: inherit !important;
    font-size: 1rem !important;
    line-height: 1.3 !important;
    font-weight: 700 !important;
    letter-spacing: 2px !important;
    text-transform: uppercase !important;
    color: var(--ncv-green) !important;
    margin-bottom: 10px !important;
}

/* Eventtitel */
.ncv-top-event .ncv-event-title,
.ncv-top-event .ncv-event-title a {
    font-family: inherit !important;
    font-size: clamp(44px, 4vw, 64px) !important;
    line-height: 1.12 !important;
    font-weight: 400 !important;
    color: var(--ncv-green) !important;
    text-decoration: none !important;
    margin: 0 0 14px 0 !important;
}

/* Datumszeile */
.ncv-top-event .ncv-event-date {
    font-family: inherit !important;
    font-size: 1.2rem !important;
    line-height: 1.5 !important;
    font-weight: 500 !important;
    color: var(--text) !important;
    margin: 0 0 22px 0 !important;
    display: block !important;
    background: none !important;
    padding: 0 !important;
    text-align: center !important;
}

/* Countdown-Box */
.ncv-top-event .ncv-countdown-box {
    background: #f5f7f6 !important;
    border: 1px solid rgba(0, 0, 0, 0.06) !important;
    border-radius: 10px !important;
    padding: 16px 24px !important;
    display: block !important;
    width: 100% !important;
    max-width: 860px !important;
    margin: 0 auto 22px auto !important;
    box-sizing: border-box !important;
}

/* Countdown-Label */
.ncv-top-event .ncv-countdown-label {
    font-family: inherit !important;
    font-size: 0.9rem !important;
    line-height: 1.3 !important;
    font-weight: 700 !important;
    letter-spacing: 1.5px !important;
    text-transform: uppercase !important;
    color: var(--ncv-green) !important;
    opacity: 0.7 !important;
    margin-bottom: 8px !important;
}

/* Countdown-Wert */
.ncv-top-event .ncv-countdown-value {
    font-family: inherit !important;
    font-size: clamp(30px, 2.2vw, 42px) !important;
    line-height: 1.25 !important;
    font-weight: 600 !important;
    color: var(--ncv-green) !important;
    margin: 0 !important;
}

/* Beschreibung / Ortszeile */
.ncv-top-event .jeviso_item_body,
.ncv-top-event .jeviso-body {
    font-family: inherit !important;
    font-size: 1.05rem !important;
    line-height: 1.75 !important;
    font-weight: 400 !important;
    color: var(--text) !important;
    margin-top: 10px !important;
}

/* Flyer */
.ncv-top-event img,
.ncv-top-event .jeviso_item_body img,
.ncv-top-event .jeviso-body img,
.mod-jevents-latest img {
    max-width: 240px !important;
    width: 240px !important;
    height: auto !important;
    border-radius: 10px !important;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.12) !important;
    transition: transform 0.2s ease !important;
}

.ncv-top-event img:hover {
    transform: scale(1.03) !important;
}

/* Mobil */
@media (max-width: 768px) {
    .ncv-top-event {
        padding: 28px 18px 32px 18px !important;
        width: calc(100% - 20px) !important;
    }

    .ncv-top-event .jeviso-label {
        font-size: 0.85rem !important;
        letter-spacing: 1.5px !important;
    }

    .ncv-top-event .ncv-event-title,
    .ncv-top-event .ncv-event-title a {
        font-size: clamp(34px, 9vw, 48px) !important;
    }

    .ncv-top-event .ncv-event-date {
        font-size: 1.05rem !important;
    }

    .ncv-top-event .ncv-countdown-box {
        padding: 14px 16px !important;
        max-width: 100% !important;
    }

    .ncv-top-event .ncv-countdown-label {
        font-size: 0.8rem !important;
    }

    .ncv-top-event .ncv-countdown-value {
        font-size: clamp(24px, 6vw, 32px) !important;
    }
}
/* ==========================================================
   NCV EVENT-KACHEL – TYPO & FARBEN VEREINHEITLICHEN
   ========================================================== */

.ncv-top-event {
    font-family: inherit !important;
    color: var(--ncv-green) !important;
}

/* Dachzeile */
.ncv-top-event .jeviso-label {
    font-family: inherit !important;
    font-size: 0.95rem !important;
    font-weight: 700 !important;
    letter-spacing: 2px !important;
    text-transform: uppercase !important;
    color: var(--ncv-green) !important;
    margin-bottom: 12px !important;
}

/* Haupttitel */
.ncv-top-event .ncv-event-title,
.ncv-top-event .ncv-event-title a {
    font-family: inherit !important;
    font-size: clamp(42px, 4vw, 64px) !important;
    line-height: 1.15 !important;
    font-weight: 400 !important;
    color: var(--ncv-green) !important;
    text-decoration: none !important;
    margin: 0 0 18px 0 !important;
}

/* Datum / Ort / Beschreibung */
.ncv-top-event .ncv-event-date,
.ncv-top-event .jeviso_item_body,
.ncv-top-event .jeviso-body,
.ncv-top-event p,
.ncv-top-event div {
    font-family: inherit;
}

/* Countdown-Box Label */
.ncv-top-event .ncv-countdown-label {
    font-family: inherit !important;
    font-size: 0.9rem !important;
    font-weight: 700 !important;
    letter-spacing: 1px !important;
    text-transform: uppercase !important;
    color: var(--ncv-green) !important;
    opacity: 0.75 !important;
    margin-bottom: 10px !important;
}

/* Countdown-Wert */
.ncv-top-event .ncv-countdown-value {
    font-family: inherit !important;
    font-size: 1.9rem !important;
    line-height: 1.35 !important;
    font-weight: 600 !important;
    color: var(--ncv-green) !important;
}

/* Orts-/Infotext */
.ncv-top-event .jeviso_item_body,
.ncv-top-event .jeviso-body {
    font-size: 1.05rem !important;
    line-height: 1.7 !important;
    color: var(--text) !important;
}

.ncv-top-event .ncv-event-date-visible,
.ncv-top-event .ncv-event-date {
    display: block !important;
    font-family: inherit !important;
    font-size: 1.3rem !important;
    line-height: 1.4 !important;
    color: var(--ncv-green) !important;
    text-align: center !important;
    margin: 4px 0 24px 0 !important;
}

.ncv-top-event .ncv-date-prefix {
    font-weight: 400 !important;
    opacity: 0.75 !important;
    margin-right: 8px !important;
}

.ncv-top-event .ncv-date-text {
    font-weight: 600 !important;
	
    letter-spacing: 0.15px !important;
}
}
.ncv-top-event .ncv-event-date-visible,
.ncv-top-event .ncv-event-date {
    display: block !important;
    font-family: inherit !important;
    font-size: 1.3rem !important;
    line-height: 1.4 !important;
    font-weight: 500 !important;
    color: var(--ncv-green) !important;
    text-align: center !important;
    margin: 8px 0 26px 0 !important;
}
.ncv-top-event .ncv-date-icon {
    opacity: 0.75 !important;
    margin-right: 6px !important;
}

.ncv-top-event .ncv-date-text {
    font-weight: 600 !important;
    letter-spacing: 0.2px !important;
}
/* ==========================================================
   DESKTOP HEADER: LOGO & MENÜ GEKOPPELT IN DIE MITTE
   ========================================================== */
@media (min-width: 992px) {

    /* 1. Haupt-Container zentrieren */
    header.container-header,
    .container-header .header-sitelayout,
    .container-header .grid-child-container {
        display: flex !important;
        flex-direction: row !important;
        justify-content: center !important; /* ZENTRIERT DEN GESAMTEN HEADER */
        align-items: center !important;
        flex-wrap: nowrap !important;
    }

    /* 2. Elemente stramm zusammenhalten */
    .container-header > *,
    .container-header .grid-child,
    .container-header [class*="grid-child"] {
        display: flex !important;
        flex: 0 0 auto !important;
        width: auto !important;
        max-width: none !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    /* 3. Logo-Größe & Abstand zum ersten Link */
    .container-header .navbar-brand {
        margin-right: 35px !important; /* Abstand zwischen Logo und "Startseite" */
    }

    .container-header .navbar-brand img {
        height: 100px !important;
        width: auto !important;
    }

    /* 4. Menü-Container */
    .container-header .container-nav,
    .container-header nav.navbar,
    .container-header .navbar-collapse {
        display: flex !important;
        flex: 0 0 auto !important;
        margin-left: 0 !important;
        padding-left: 0 !important;
    }

    .container-header ul.mod-menu {
        display: flex !important;
        flex-direction: row !important;
        align-items: center !important;
        gap: 22px !important; /* Abstand zwischen den einzelnen Navigationslinks */
        margin: 0 !important;
        padding: 0 !important;
    }

    .container-header ul.mod-menu > li > a {
        font-size: 16px !important;
        white-space: nowrap !important;
    }
}
/* 1. Footer-Hauptbereich zurücksetzen und zentrieren */
.container-footer,
.footer-container,
footer {
    text-align: left !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* 2. Den inneren Container exakt wie die Inhalts-Boxen oben ausrichten */
.container-footer .container,
.footer-container .container,
footer .container {
    max-width: 1320px !important; /* Standard Cassiopeia/Bootstrap Container-Breite */
    width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 15px !important;
    padding-right: 15px !important;
}

/* 3. Tabelle innerhalb des Footers strecken */
.container-footer table,
footer table {
    width: 100% !important;
    margin: 0 !important;
}
/* Erfassen aller möglichen Cassiopeia Grid-Kinder im Footer und auf 100% setzen */
.container-footer > *,
.footer-container > *,
footer .grid-child,
footer [class*="col-"] {
    grid-column: 1 / -1 !important; /* Spanned über alle Grid-Spalten */
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 100% !important;
}

/* Flexbox-Wrapper für den Inhalt */
.footer-custom-wrapper {
    display: flex !important;
    justify-content: space-between !important;
    align-items: flex-start !important;
    max-width: 1320px !important; /* Passt zur Breite der Karten darüber */
    width: 100% !important;
    margin: 0 auto !important;
    padding: 0 15px !important;
    box-sizing: border-box !important;
}

.footer-custom-left {
    color: #ffffff;
    font-size: 14px;
    line-height: 1.6;
    text-align: left;
    white-space: nowrap;
}

.footer-custom-left a {
    color: #ffffff !important;
    text-decoration: underline;
}

.footer-custom-right {
    font-size: 15px;
    font-weight: bold;
    text-align: right;
    white-space: nowrap;
}

.footer-custom-right a {
    color: #ffffff !important;
    text-decoration: none;
    margin-left: 25px;
}

/* Zwingt den Footer-Container und seine Kinder auf 100% Breite */
footer,
.container-footer,
.footer-container,
.container-footer > div,
footer .grid-child,
footer [class*="col-"] {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    grid-column: 1 / -1 !important; /* Bricht aus dem CSS-Grid aus */
    flex: 0 0 100% !important;
}

/* Positioniert den Inhalt exakt wie die Karten darüber */
.footer-custom-wrapper {
    display: flex !important;
    justify-content: space-between !important;
    align-items: flex-start !important;
    max-width: 1320px !important; /* Breite der Inhaltskarten auf der Website */
    width: 100% !important;
    margin: 0 auto !important;
    padding: 20px 15px !important;
    box-sizing: border-box !important;
}

.footer-custom-left {
    color: #ffffff;
    font-size: 14px;
    line-height: 1.6;
    text-align: left;
    white-space: nowrap;
}

.footer-custom-left a {
    color: #ffffff !important;
    text-decoration: underline;
}

.footer-custom-right {
    font-size: 15px;
    font-weight: bold;
    text-align: right;
    white-space: nowrap;
}

.footer-custom-right a {
    color: #ffffff !important;
    text-decoration: none;
    margin-left: 25px;
}

/* Blendet den leeren Inhaltsbereich exakt auf der Startseite (Itemid 101) aus */
body.itemid-101 .container-component,
body.itemid-101 .com-content-article,
body.itemid-101 main {
    display: none !important;
    margin: 0 !important;
    padding: 0 !important;
    min-height: 0 !important;
}
/* Höhe des grünen Footers reduzieren */
footer.container-footer,
footer.footer {
    padding-top: 5px !important;    /* Abstand oben (Standard ist oft 40px–60px) */
    padding-bottom: 15px !important; /* Abstand unten */
    min-height: auto !important;
}

/* ==========================================================
   NCV Footer
========================================================== */

.footer-custom-wrapper{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:30px;
    width:100%;
}

.footer-custom-left{
    flex:1;
    color:#fff;
}

.footer-custom-right{
    display:flex;
    gap:20px;
    flex-wrap:wrap;
}

.footer-custom-right a{
    color:#fff;
    text-decoration:none;
    font-weight:600;
}

.footer-custom-right a:hover{
    text-decoration:underline;
}

/* =========================
   Handy
========================= */

@media (max-width:768px){

    .footer-custom-wrapper{
        flex-direction:column;
        text-align:center;
        gap:20px;
    }

    .footer-custom-left,
    .footer-custom-right{
        width:100%;
        justify-content:center;
        text-align:center;
    }

    .footer-custom-right{
        flex-direction:column;
        gap:10px;
    }

    .footer-custom-left br{
        display:block;
    }

    .footer-custom-left a{
        word-break:break-word;
    }
}