/* ==========================================================================
   1. GLOBALER HINTERGRUND & SCHRIFTARTEN (STARTSEITE / BODY)
   ========================================================================== */
@font-face {
  font-family: 'Dazzle Unicase';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/MarcellusSC-Regular.woff2') format('woff2');
}

/* Färbt den gesamten Hintergrund der Website schwarz und die Schrift weiß */
body, 
html, 
.site-wrapper, 
#main, 
main,
.container-component {
    background-color: #000000 !important;
    background: #000000 !important;
    color: #ffffff !important;
}

/* Stellt sicher, dass auch alle normalen Text-Links im Hauptinhalt weiß sind */
main a,
.container-component a {
    color: #ffffff !important;
}

/* Hover-Effekt für Links im Hauptinhalt (wird beim Drüberfahren leicht grau) */
main a:hover,
.container-component a:hover {
    color: #cccccc !important;
}

/* Standard-Schriftart für die gesamte Seite anwenden */
body {
  font-family: 'Dazzle Unicase', sans-serif;
}

/* ==========================================================================
   2. KOPFZEILE (HEADER & BRANDING)
   ========================================================================== */
.container-header {
    grid-column: full-start / full-end !important;
    width: 100% !important;
    max-width: 100% !important;
    background-image: none !important; 
    background-color: #000000 !important;
    background: #000000 !important;
    padding-top: 1px !important;    
    padding-bottom: 1px !important; 
    padding-left: 20px !important;
    padding-right: 20px !important;
    min-height: auto !important;
    border-bottom: 1px solid #ffffff !important;
}

/* Ausrichtung von Logo und Unterüberschrift */
.brand-wrapper, 
.navbar-brand {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important; 
    align-items: flex-end !important;
    gap: 2.5rem !important; 
}

/* Flexible Schriftgröße der Tagline */
.site-description,
.site-title-tagline {
    display: inline-block !important;
    height: auto !important; 
    margin: 0 !important; 
    font-size: clamp(1.0rem, 2vw + 0.5rem, 1.8rem) !important;
    line-height: 1.1 !important; 
}

/* ==========================================================================
   3. SIDEBAR (MENÜ, KALENDER & ANMELDUNG) - DEFINITIVER RAHMEN-BLOCKED
   ========================================================================== */
/* Richtet die Sidebar-Spalte flexibel aus */
.container-sidebar-right,
.sidebar-right,
.site-grid .sidebar-right {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;    
    justify-content: flex-start !important;
    gap: 20px !important;               
    padding-right: 15px !important;     
    border: none !important;            
    background: transparent !important; 
}

/* ÄUSSERER RAHMEN FÜR STANDARD-MODULE (Menü & Anmeldung) */
.sidebar-right .card, 
.sidebar-right .module,
.sidebar-right .moduletable,
.sidebar-right .mod-menu, 
.sidebar-right .mod-login {
    background-color: #000000 !important; 
    background: #000000 !important;
    padding: 20px !important;
    border-radius: 6px !important;      
    width: 290px !important;            
    max-width: 290px !important;
    min-width: 290px !important; 
    box-sizing: border-box !important;
    margin-left: auto !important;       
    margin-right: auto !important;      
    border: 1px solid #ffffff !important; 
    box-shadow: none !important;      
    outline: none !important;
}

/* --- KÜNSTLICHE SCHWARZE LINIEN FÜR DIE WOCHENTAGE --- */
/* Richtet die erste Zeile für die exakten horizontalen Linien aus */
.jevents-custom-fix table tbody tr:first-child,
.jevents-custom-fix table tr:first-child {
    position: relative !important;
}

/* Dünne schwarze Linie OBERHALB der Wochentage (Rechts weiter eingerückt) */
.jevents-custom-fix table tbody tr:first-child::before,
.jevents-custom-fix table tr:first-child::before {
    content: "" !important;
    position: absolute !important;
    top: 0 !important;
    left: -25px !important;                               /* Bleibt links perfekt bündig */
    right: -4px !important;                               /* Rückenlinie rechts weiter nach innen */
    height: 1px !important;
    background-color: #000000 !important;
    z-index: 10 !important;
}

/* Dünne schwarze Linie UNTERHALB der Wochentage (Rechts weiter eingerückt) */
.jevents-custom-fix table tbody tr:first-child::after,
.jevents-custom-fix table tr:first-child::after {
    content: "" !important;
    position: absolute !important;
    bottom: 0 !important;
    left: -25px !important;                               /* Bleibt links perfekt bündig */
    right: -4px !important;                               /* Rückenlinie rechts weiter nach innen */
    height: 1px !important;
    background-color: #000000 !important;
    z-index: 10 !important;
}

.jevents-custom-fix table tbody tr:first-child td,
.jevents-custom-fix table tr:first-child td {
    padding-top: 6px !important;
    padding-bottom: 6px !important;
}

/* ==========================================================================
   EXAKTES JEVENTS MODUL (GEKOPPELTE KLASSEN)
   ========================================================================== */
div.sidebar-right.card.jevents-custom-fix,
.sidebar-right .card.jevents-custom-fix,
.card.jevents-custom-fix {
    background-color: #000000 !important; 
    background: #000000 !important;
    padding: 20px !important;           
    border-radius: 6px !important;      
    width: 290px !important;            
    max-width: 290px !important;
    min-width: 290px !important; 
    box-sizing: border-box !important;
    
    /* FINALES MICRO-TUNING: Auf 17px korrigiert für die absolut perfekte Fluchtlinie */
    align-self: flex-start !important;
    margin-left: 17px !important;       
    margin-right: 0 !important;      
    
    border: 1px solid #ffffff !important; 
    box-shadow: none !important;      
    outline: none !important;
    display: block !important;          
}


/* INNERER RAHMEN DEAKTIVIERT: Löscht doppelte Linien und JEvents-Verschiebungen */
.sidebar-right .card-body,
.sidebar-right .card-header,
.jevents-custom-fix .card-body,
.jevents-custom-fix .card-header,
.jevents-custom-fix .jevbootstrap {
    background-color: transparent !important;
    border: none !important;               
    border-width: 0px !important;
    box-shadow: none !important;
    outline: none !important;
    padding: 0 !important;              
    margin: 0 !important;
}

/* INNERES KALENDERBLATT: Füllt den inneren Raum absolut symmetrisch aus */
.jevents-custom-fix table,
.jevents-custom-fix .ev_table {
    background-color: #ffffff !important; 
    background: #ffffff !important;
    padding: 10px !important; 
    border-radius: 4px !important;
    width: 100% !important;            
    max-width: 100% !important;
    min-width: 100% !important;
    border: none !important; 
    border-collapse: collapse !important;
    display: table !important;
    box-sizing: border-box !important;
    margin: 0 !important;              
}

.jevents-custom-fix table *,
.jevents-custom-fix td,
.jevents-custom-fix th,
.jevents-custom-fix a,
.jevents-custom-fix span {
    background-color: #ffffff !important; 
    color: #000000 !important;             
    border: none !important;               
    border-width: 0px !important;
    box-shadow: none !important;
}

/* Textausrichtung lesbar linksbündig einstellen */
.mod-menu, 
.mod-login {
    text-align: left !important;
    width: 100%;
}

/* 3.1 Hauptmenü (Sidebar-Menü & Untermenü-Logik) */
.mod-menu a {
    color: #ffffff !important;
    text-decoration: none;
    display: inline-block;
    width: 100%;
    transition: transform 0.2s ease-in-out, font-weight 0.2s ease-in-out;
}

.mod-menu .mod-menu__sub {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    list-style: none;
    padding-left: 15px !important;     
    padding-right: 0 !important;
}

.mod-menu .nav-item .nav-toggle,
.mod-menu .nav-item button.dropdown-toggle,
.mod-menu .nav-item .dropdown-toggle::after,
.mod-menu .nav-item [class*="icon-chevron"],
.mod-menu .nav-item [class*="icon-angle"] {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    width: 0 !important;
    height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
}

.mod-menu .nav-item.active > .mod-menu__sub,
.mod-menu .nav-item.current > .mod-menu__sub {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    position: relative !important;
}

.mod-menu .nav-item:not(.active):not(.current) > .mod-menu__sub {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
}

/* 3.2 Login-Modul (Anmeldung) */
.mod-login a {
    color: #ffffff !important;
    text-decoration: none;
    display: inline-block;
    transition: transform 0.2s ease-in-out, font-weight 0.2s ease-in-out;
}

.mod-login input[type="text"],
.mod-login input[type="password"],
.mod-login .form-control,
.mod-login input {
    background-color: #ffffff !important; 
    background: #ffffff !important;
    color: #000000 !important;             
    width: 100% !important;
    text-align: left !important;
    padding: 8px !important;
    border-radius: 4px !important;
    border: 1px solid #ffffff !important; 
    box-shadow: none !important;
}

.mod-login input::placeholder {
    color: #555555 !important;
    opacity: 1 !important;
}

.mod-login button[type="submit"],
.mod-login .btn-primary {
    background-color: #ffffff !important;
    color: #000000 !important;
    border: 1px solid #ffffff !important;
    font-weight: bold !important;
    width: 100% !important;
    transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out, border-color 0.2s ease-in-out !important;
}

.mod-login button[type="submit"]:hover,
.mod-login .btn-primary:hover {
    background-color: #000000 !important;   
    color: #ffffff !important;              
    border-color: #ffffff !important;       
}

.mod-login .list-unstyled,
.mod-login .input-group-text,
.mod-login .icon-user,
.mod-login .icon-lock,
.mod-login button.btn-outline-secondary,
.mod-login [class*="icon-eye"],
.mod-login .btn.passkey-login,
.mod-login .input-group button:not([type="submit"]),
.mod-login__remember,                   
.mod-login #form-login-remember,         
.mod-login .control-group:has(#remember),
.mod-login .form-check:has(#remember),
.mod-login label[for="remember"],        
.mod-login input[name="remember"],       
.mod-login #remember {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* 3.3 Hover-Effekt: Text wandert nach rechts */
.mod-menu a:hover,
.mod-login a:hover {
    color: #ffffff !important;
    font-weight: bold !important;
    transform: translateX(5px);         
}

/* --- KÜNSTLICHE SCHWARZE LINIEN FÜR DIE WOCHENTAGE --- */
.jevents-custom-fix table tbody tr:first-child,
.jevents-custom-fix table tr:first-child {
    position: relative !important;
}

.jevents-custom-fix table tbody tr:first-child::before,
.jevents-custom-fix table tr:first-child::before {
    content: "" !important;
    position: absolute !important;
    top: 0 !important;
    left: -25px !important;                               
    right: -4px !important;                               
    height: 1px !important;
    background-color: #000000 !important;
    z-index: 10 !important;
}

.jevents-custom-fix table tbody tr:first-child::after,
.jevents-custom-fix table tr:first-child::after {
    content: "" !important;
    position: absolute !important;
    bottom: 0 !important;
    left: -25px !important;                               
    right: -4px !important;                               
    height: 1px !important;
    background-color: #000000 !important;
    z-index: 10 !important;
}

.jevents-custom-fix table tbody tr:first-child td,
.jevents-custom-fix table tr:first-child td {
    padding-top: 6px !important;
    padding-bottom: 6px !important;
}

/* --- AKTUELLES DATUM: SCHWARZER KREIS / WEISSE ZAHL --- */
.jevents-custom-fix td.today,
.jevents-custom-fix td.mod_jevents_latest_today,
.jevents-custom-fix td.jevents-today,
.jevents-custom-fix [class*="today"] {
    position: relative !important;
    text-align: center !important;
    vertical-align: middle !important;
    background-color: #ffffff !important;
    border: none !important;
    outline: none !important;
    box-shadow: none !important;
}

.jevents-custom-fix td.today::before,
.jevents-custom-fix td.mod_jevents_latest_today::before,
.jevents-custom-fix td.jevents-today::before,
.jevents-custom-fix [class*="today"]::before {
    content: "" !important;
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%) !important;
    width: 24px !important;
    height: 24px !important;
    background-color: #000000 !important; 
    border-radius: 50% !important;
    z-index: 1 !important;
}

.jevents-custom-fix td.today a,
.jevents-custom-fix td.today span,
.jevents-custom-fix td.mod_jevents_latest_today a,
.jevents-custom-fix td.mod_jevents_latest_today span,
.jevents-custom-fix [class*="today"] a,
.jevents-custom-fix [class*="today"] span {
    position: relative !important;
    z-index: 2 !important;
    color: #ffffff !important;            
    background-color: transparent !important; 
    font-weight: bold !important;
    display: inline-block !important;
    border: none !important;         
    outline: none !important;        
    box-shadow: none !important;     
    text-decoration: none !important;
}


/* ==========================================================================
   4. FUSSZEILE (FOOTER) - LINKSBÜNDIGER TEXT & ABSOLUT ZENTRIERTE GRAFIK
   ========================================================================== */
.container-footer {
    grid-column: full-start / full-end !important;
    width: 100% !important;
    max-width: 100% !important;
    background-image: none !important;
    background-color: #000000 !important;
    background: #000000 !important;
    border-top: 1px solid #ffffff !important; /* Dünne Linie oben bleibt bestehen */
    min-height: auto !important; 
    height: auto !important;
    padding-top: 15px !important;    
    padding-bottom: 15px !important; 
    padding-left: 20px !important;
    padding-right: 20px !important;
    position: relative !important;     
}

.container-footer .grid-child,
.container-footer .mod-footer,
.container-footer p,
.container-footer ul {
    margin: 0 !important;
    padding: 0 !important;
    min-height: auto !important;
    list-style: none !important;
}

/* Text- und Linkfarben sichern */
.container-footer,
.container-footer p,
.container-footer a {
    color: #ffffff !important;
}

/* Das Haupt-ul-Element steuert die linke Reihe fließend an (RAHMEN HIER RESTELLT ENTFERNT) */
footer .mod-menu, 
.footer .mod-menu, 
footer ul, 
.footer ul {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;       
    justify-content: flex-start !important; 
    align-items: center !important;     
    gap: 30px !important;               
    list-style-type: none !important;
    padding-left: 0 !important;
    margin: 0 !important;
    width: 100% !important;
    
    /* --- ERGÄNZUNG: Garantiert rahmenlos im Footer-Menü --- */
    border: none !important;
    box-shadow: none !important;
    --bs-card-border-width: 0px !important;
}

/* Normales, fließendes Verhalten für die Text-Links auf der linken Seite */
footer .mod-menu li:nth-child(1), .footer .mod-menu li:nth-child(1),
footer .mod-menu li:nth-child(2), .footer .mod-menu li:nth-child(2) {
    display: inline-flex !important;
    align-items: center !important;
    position: static !important;        
    width: auto !important;
    
    /* --- ERGÄNZUNG: Entfernt Rahmen von den Listenpunkten selbst --- */
    border: none !important;
    box-shadow: none !important;
}

/* Der dritte Menüpunkt (Die Grafik): Absolut zentriert und rahmenlos */
footer .mod-menu li:nth-child(3),
.footer .mod-menu li:nth-child(3) {
    position: absolute !important;      
    left: 50% !important;               
    top: 50% !important;                
    transform: translate(-50%, -50%) !important; 
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin: 0 !important;
    padding: 0 !important;
    
    /* --- ERGÄNZUNG: Entfernt Rahmen um die Grafik-Box --- */
    border: none !important;
    box-shadow: none !important;
}

/* Schützt den Link-Container um die Grafik */
footer .mod-menu li a,
.footer .mod-menu li a {
    display: flex !important;
    align-items: center !important;
    text-decoration: none !important;
    border: none !important; /* Verhindert Rahmen um den Link-Tag */
}

/* Grafik-Eigenschaften (Bildgröße & Sichtbarkeit) */
footer .mod-menu img,
.footer .mod-menu img,
footer ul img,
.footer ul img {
    display: block !important;          
    visibility: visible !important;     
    opacity: 1 !important;              
    height: 45px !important;            
    max-height: 45px !important;
    width: auto !important;             
    filter: none !important;            
    margin: 0 !important;
    padding: 0 !important;
    border: none !important; /* Verhindert Rahmen direkt auf dem Bild */
}

footer .mod-menu li::before, 
.footer .mod-menu li::before {
    display: none !important;
    content: "" !important;
}

/* Responsive Anpassung für Smartphones */
@media (max-width: 768px) {
    .container-footer {
        position: relative !important;
    }
    footer .mod-menu, .footer .mod-menu, footer ul, .footer ul {
        display: flex !important;
        flex-direction: column !important;
        gap: 15px !important;
        justify-content: center !important;
    }
    footer .mod-menu li:nth-child(3), .footer .mod-menu li:nth-child(3) {
        position: static !important;    
        transform: none !important;
    }
}
  
/* ==========================================================================
   5. BACK-TO-TOP BUTTON (NACH OBEN SCROLLEN)
   ========================================================================== */
.back-to-top-link,
#back-top,
a.scroll-to-top,
.wrapper-fluid .back-to-top-link {
    background-color: #ffffff !important;   /* Standard: weißer Hintergrund */
    background: #ffffff !important;
    border: 1px solid #ffffff !important;   /* Weißer Rahmen für nahtlosen Übergang */
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.3) !important;
    transition: background-color 0.2s ease-in-out, border-color 0.2s ease-in-out !important;
}

/* Färbt das innere Symbol (den Pfeil) standardmäßig tiefschwarz */
.back-to-top-link *,
#back-top *,
.back-to-top-link::after,
.back-to-top-link [class*="icon-"] {
    color: #000000 !important;
    fill: #000000 !important;              
    stroke: #000000 !important;
    transition: color 0.2s ease-in-out, fill 0.2s ease-in-out, stroke 0.2s ease-in-out !important;
}

/* HOVER-EFFEKT: Farben komplett invertieren (Hintergrund schwarz) */
.back-to-top-link:hover,
#back-top:hover {
    background-color: #000000 !important;   /* Hintergrund wird schwarz */
    background: #000000 !important;
    border-color: #ffffff !important;       /* Behält einen feinen weißen Rand, damit er sichtbar bleibt */
}

/* HOVER-EFFEKT: Pfeil im Inneren wird weiß */
.back-to-top-link:hover *,
#back-top:hover *,
.back-to-top-link:hover::after,
.back-to-top-link:hover [class*="icon-"] {
    color: #ffffff !important;               /* Schrift/Icon wird weiß */
    fill: #ffffff !important;                /* SVG-Füllung wird weiß */
    stroke: #ffffff !important;              /* SVG-Linie wird weiß */
}
