/* ============================================================
   BBT CUSTOM STYLES - Modern Website Theme Override
   Angepasst an das Cyan/Türkis Glasmorphism-Design
   ============================================================ */

/* CSS Variablen für konsistentes Styling */
#tarteaucitronRoot {
    --tac-primary: #0891b2;
    --tac-primary-dark: #0e7490;
    --tac-primary-light: #22d3ee;
    --tac-accent: #a78bfa;
    --tac-accent-dark: #8b5cf6;
    --tac-bg-primary: #f8fafc;
    --tac-bg-secondary: #f1f5f9;
    --tac-bg-solid: #ffffff;
    --tac-glass-bg: rgba(255, 255, 255, 0.95);
    --tac-glass-border: rgba(226, 232, 240, 0.8);
    --tac-text-primary: #0f172a;
    --tac-text-secondary: #475569;
    --tac-text-muted: #94a3b8;
    --tac-success: #10b981;
    --tac-error: #ef4444;
    --tac-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.08), 0 4px 6px -4px rgba(0, 0, 0, 0.05);
    --tac-shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.05);
    --tac-shadow-hover: 0 10px 30px -5px rgba(0, 0, 0, 0.12), 0 4px 10px -5px rgba(0, 0, 0, 0.08);
    --tac-transition: 0.25s cubic-bezier(0.4, 0, 0.2, 1);
    --tac-gradient: linear-gradient(135deg, #0891b2 0%, #a78bfa 100%);
}

/* Font & Base Styles */
#tarteaucitronRoot * {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;
}

/* ==================== ALERT BIG (Cookie Banner / Erstes Popup) ==================== */

/* Backdrop blur für den Banner */
html body.tarteaucitron-modal-open div#tarteaucitronRoot::before,
html body .tarteaucitronSize-middle.tarteaucitronBeforeVisible::before {
    background: rgba(15, 23, 42, 0.4) !important;
    backdrop-filter: blur(12px) !important;
    -webkit-backdrop-filter: blur(12px) !important;
}

/* Middle Banner - Glasmorphism Card */
body #tarteaucitronRoot.tarteaucitronSize-middle div#tarteaucitronAlertBig {
    background: var(--tac-bg-solid) !important;
    border: 1px solid var(--tac-glass-border) !important;
    border-radius: 24px !important;
    box-shadow: var(--tac-shadow-xl), 0 0 80px rgba(0, 0, 0, 0.15) !important;
    padding: 40px 35px !important;
    max-width: 520px !important;
    width: 90% !important;
    animation: tacFadeIn 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
}

@keyframes tacFadeIn {
    from {
        opacity: 0;
        transform: scale(0.95) translateY(10px);
    }
    to {
        opacity: 1;
        transform: scale(1) translateY(0);
    }
}

/* Banner Title */
#tarteaucitronRoot.tarteaucitronSize-middle #tarteaucitronAlertBig::before,
#tarteaucitronRoot.tarteaucitronSize-popup #tarteaucitronAlertBig::before {
    font-size: 26px !important;
    font-weight: 700 !important;
    color: var(--tac-text-primary) !important;
    display: block !important;
    margin-bottom: 8px !important;
    letter-spacing: -0.5px !important;
}

/* Banner Text */
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronDisclaimerAlert,
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronDisclaimerAlert strong,
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronDisclaimerAlert .tarteaucitronPartnersList * {
    color: var(--tac-text-secondary) !important;
    font-size: 15px !important;
    line-height: 1.6 !important;
}

#tarteaucitronRoot.tarteaucitronSize-middle span#tarteaucitronDisclaimerAlert {
    font-size: 15px !important;
    margin: 16px 0 28px !important;
}

#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronDisclaimerAlert strong {
    color: var(--tac-text-primary) !important;
    font-weight: 600 !important;
}

/* ==================== BUTTON CONTAINER IM ERSTEN POPUP ==================== */

/* Button-Container zentriert */
#tarteaucitronRoot.tarteaucitronSize-middle #tarteaucitronAlertBig {
    text-align: center !important;
}

/* Buttons im Middle-Banner - horizontal zentriert mit Abständen */
#tarteaucitronRoot.tarteaucitronSize-middle #tarteaucitronAlertBig button.tarteaucitronCTAButton,
#tarteaucitronRoot.tarteaucitronSize-middle #tarteaucitronAlertBig #tarteaucitronCloseAlert,
#tarteaucitronRoot.tarteaucitronSize-middle #tarteaucitronAlertBig #tarteaucitronPrivacyUrl {
    margin: 6px !important;
    display: inline-block !important;
}

/* Auf kleinen Screens: Buttons untereinander */
@media screen and (max-width: 600px) {
    #tarteaucitronRoot.tarteaucitronSize-middle #tarteaucitronAlertBig button.tarteaucitronCTAButton,
    #tarteaucitronRoot.tarteaucitronSize-middle #tarteaucitronAlertBig #tarteaucitronCloseAlert,
    #tarteaucitronRoot.tarteaucitronSize-middle #tarteaucitronAlertBig #tarteaucitronPrivacyUrl {
        display: block !important;
        width: calc(100% - 20px) !important;
        margin: 8px auto !important;
        box-sizing: border-box !important;
    }
}

/* Partners List Box */
html body #tarteaucitronRoot #tarteaucitronAlertBig div.tarteaucitronPartnersList {
    background: var(--tac-bg-secondary) !important;
    border: 1px solid var(--tac-glass-border) !important;
    border-radius: 14px !important;
    padding: 18px !important;
    margin: 20px auto !important;
}

html body #tarteaucitronRoot #tarteaucitronAlertBig div.tarteaucitronPartnersList b {
    color: var(--tac-text-primary) !important;
    font-size: 14px !important;
    font-weight: 600 !important;
}

html body #tarteaucitronRoot #tarteaucitronAlertBig div.tarteaucitronPartnersList ul li {
    color: var(--tac-text-secondary) !important;
    font-size: 13px !important;
}

/* ==================== BUTTONS ==================== */

/* Primary Button (Accept All) */
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronPersonalize,
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronPersonalize2,
#tarteaucitronRoot .tarteaucitronCTAButton,
#tarteaucitronRoot .tarteaucitronAllow,
#tarteaucitronRoot button#tarteaucitronSaveButton {
    background: var(--tac-gradient) !important;
    color: white !important;
    border: none !important;
    border-radius: 14px !important;
    padding: 14px 24px !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    box-shadow: var(--tac-shadow-lg), 0 0 0 0 rgba(8, 145, 178, 0) !important;
    transition: all var(--tac-transition) !important;
    cursor: pointer !important;
    position: relative !important;
    overflow: hidden !important;
}

#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronPersonalize:hover,
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronPersonalize2:hover,
#tarteaucitronRoot .tarteaucitronCTAButton:hover,
#tarteaucitronRoot .tarteaucitronAllow:hover,
#tarteaucitronRoot button#tarteaucitronSaveButton:hover {
    transform: translateY(-2px) !important;
    box-shadow: var(--tac-shadow-hover), 0 0 0 4px rgba(8, 145, 178, 0.15) !important;
}

#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronPersonalize:active,
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronPersonalize2:active,
#tarteaucitronRoot .tarteaucitronCTAButton:active,
#tarteaucitronRoot .tarteaucitronAllow:active,
#tarteaucitronRoot button#tarteaucitronSaveButton:active {
    transform: translateY(0) !important;
}

/* Deny Button */
#tarteaucitronRoot .tarteaucitronDeny {
    background: var(--tac-bg-secondary) !important;
    color: var(--tac-text-secondary) !important;
    border: 2px solid var(--tac-glass-border) !important;
    border-radius: 14px !important;
    padding: 12px 22px !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    box-shadow: none !important;
    transition: all var(--tac-transition) !important;
    cursor: pointer !important;
}

#tarteaucitronRoot .tarteaucitronDeny:hover {
    background: white !important;
    border-color: var(--tac-primary) !important;
    color: var(--tac-text-primary) !important;
    transform: translateY(-2px) !important;
    box-shadow: var(--tac-shadow-lg) !important;
}

/* Secondary Buttons (Privacy URL, Close) */
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronCloseAlert,
#tarteaucitronRoot #tarteaucitron #tarteaucitronPrivacyUrl,
#tarteaucitronRoot #tarteaucitron #tarteaucitronPrivacyUrlDialog,
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronPrivacyUrl {
    background: transparent !important;
    color: var(--tac-text-secondary) !important;
    border: 2px solid var(--tac-glass-border) !important;
    border-radius: 14px !important;
    padding: 12px 20px !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    transition: all var(--tac-transition) !important;
    cursor: pointer !important;
}

#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronCloseAlert:hover,
#tarteaucitronRoot #tarteaucitron #tarteaucitronPrivacyUrl:hover,
#tarteaucitronRoot #tarteaucitron #tarteaucitronPrivacyUrlDialog:hover,
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronPrivacyUrl:hover {
    background: var(--tac-bg-secondary) !important;
    border-color: var(--tac-primary) !important;
    color: var(--tac-primary) !important;
}

/* Close Cross Button */
#tarteaucitronCloseCross {
    color: var(--tac-text-muted) !important;
    font-size: 24px !important;
    transition: all var(--tac-transition) !important;
    cursor: pointer !important;
}

#tarteaucitronCloseCross:hover {
    color: var(--tac-text-primary) !important;
    transform: rotate(90deg) !important;
}

/* ==================== CONTROL PANEL (Einstellungen) ==================== */

/* Panel Background - SOLID weiß, nicht transparent */
#tarteaucitron {
    border-radius: 20px !important;
    overflow: hidden !important;
    box-shadow: var(--tac-shadow-xl), 0 0 100px rgba(0, 0, 0, 0.15) !important;
    background: var(--tac-bg-solid) !important;
}

#tarteaucitron .tarteaucitronBorder {
    background: var(--tac-bg-solid) !important;
    border: none !important;
}

/* Services Container - Solider Hintergrund */
div#tarteaucitronServices {
    background: var(--tac-bg-solid) !important;
    box-shadow: none !important;
}

/* Panel Header - Schließen-Button (innerhalb des Panels, normale Button-Form) */
#tarteaucitronAlertSmall #tarteaucitronCookiesListContainer #tarteaucitronClosePanelCookie,
#tarteaucitron #tarteaucitronClosePanel {
    background: var(--tac-bg-secondary) !important;
    color: var(--tac-text-secondary) !important;
    border: 2px solid var(--tac-glass-border) !important;
    border-radius: 10px !important;
    font-weight: 600 !important;
    font-size: 13px !important;
    padding: 8px 16px !important;
    width: auto !important;
    position: absolute !important;
    right: 20px !important;
    top: 20px !important;
    text-align: center !important;
    cursor: pointer !important;
    transition: all var(--tac-transition) !important;
    z-index: 10 !important;
}

#tarteaucitron #tarteaucitronClosePanel:hover,
#tarteaucitronAlertSmall #tarteaucitronCookiesListContainer #tarteaucitronClosePanelCookie:hover {
    background: var(--tac-primary) !important;
    color: white !important;
    border-color: var(--tac-primary) !important;
    transform: translateY(-1px) !important;
}

/* Panel Title */
#tarteaucitronRoot .tarteaucitronH1 {
    color: var(--tac-text-primary) !important;
    font-weight: 700 !important;
    font-size: 1.6em !important;
    letter-spacing: -0.5px !important;
}

/* Service Lines */
#tarteaucitron #tarteaucitronServices .tarteaucitronLine {
    background: white !important;
    border-left: 4px solid var(--tac-glass-border) !important;
    border-radius: 0 !important;
    margin: 2px 0 !important;
    padding: 18px 15px !important;
    transition: all var(--tac-transition) !important;
}

#tarteaucitron #tarteaucitronServices .tarteaucitronLine:hover {
    background: var(--tac-bg-secondary) !important;
}

#tarteaucitron #tarteaucitronServices .tarteaucitronLine.tarteaucitronIsAllowed {
    border-left-color: var(--tac-success) !important;
    background: rgba(16, 185, 129, 0.04) !important;
}

#tarteaucitron #tarteaucitronServices .tarteaucitronLine.tarteaucitronIsDenied {
    border-left-color: var(--tac-error) !important;
    background: rgba(239, 68, 68, 0.04) !important;
}

/* Main Line (Category Headers) */
#tarteaucitron #tarteaucitronServices .tarteaucitronMainLine {
    background: var(--tac-gradient) !important;
    border: none !important;
    border-radius: 14px !important;
    margin: 16px 8px 8px !important;
    padding: 16px 20px !important;
}

#tarteaucitron #tarteaucitronServices .tarteaucitronMainLine:hover {
    filter: brightness(1.05) !important;
}

#tarteaucitron #tarteaucitronServices .tarteaucitronMainLine .tarteaucitronName button,
#tarteaucitron #tarteaucitronServices .tarteaucitronMainLine .tarteaucitronH2 {
    color: white !important;
}

/* Category Title */
#tarteaucitronAlertSmall #tarteaucitronCookiesListContainer #tarteaucitronCookiesList .tarteaucitronTitle,
#tarteaucitron #tarteaucitronServices .tarteaucitronTitle button {
    background: var(--tac-bg-secondary) !important;
    color: var(--tac-text-primary) !important;
    font-weight: 600 !important;
    border-radius: 10px !important;
    padding: 10px 16px !important;
    margin: 12px 8px 4px !important;
}

/* Service Name & Description */
#tarteaucitron #tarteaucitronServices .tarteaucitronLine .tarteaucitronName .tarteaucitronH2 {
    color: var(--tac-text-primary) !important;
    font-weight: 600 !important;
}

.tarteaucitronName .tacCurrentStatus,
.tarteaucitronName .tarteaucitronReadmoreSeparator {
    color: var(--tac-text-muted) !important;
}

/* Service Buttons in Panel */
#tarteaucitron #tarteaucitronServices .tarteaucitronLine .tarteaucitronAsk .tarteaucitronAllow,
#tarteaucitron #tarteaucitronServices .tarteaucitronLine .tarteaucitronAsk .tarteaucitronDeny {
    border-radius: 10px !important;
    padding: 10px 16px !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.3px !important;
}

/* Allow Button Variants */
#tarteaucitron #tarteaucitronServices .tarteaucitronLine .tarteaucitronAsk .tarteaucitronAllow {
    background: var(--tac-bg-secondary) !important;
    color: var(--tac-text-secondary) !important;
    border: 2px solid var(--tac-glass-border) !important;
}

#tarteaucitron #tarteaucitronServices .tarteaucitronLine .tarteaucitronAsk .tarteaucitronAllow:hover {
    background: var(--tac-primary) !important;
    color: white !important;
    border-color: var(--tac-primary) !important;
}

#tarteaucitron #tarteaucitronServices .tarteaucitronLine.tarteaucitronIsAllowed .tarteaucitronAllow {
    background: var(--tac-success) !important;
    color: white !important;
    border-color: var(--tac-success) !important;
}

/* Deny Button Variants */
#tarteaucitron #tarteaucitronServices .tarteaucitronLine .tarteaucitronAsk .tarteaucitronDeny {
    background: var(--tac-bg-secondary) !important;
    color: var(--tac-text-secondary) !important;
    border: 2px solid var(--tac-glass-border) !important;
}

#tarteaucitron #tarteaucitronServices .tarteaucitronLine .tarteaucitronAsk .tarteaucitronDeny:hover {
    background: var(--tac-error) !important;
    color: white !important;
    border-color: var(--tac-error) !important;
}

#tarteaucitron #tarteaucitronServices .tarteaucitronLine.tarteaucitronIsDenied .tarteaucitronDeny {
    background: var(--tac-error) !important;
    color: white !important;
    border-color: var(--tac-error) !important;
}

/* All Allow/Deny Buttons */
#tarteaucitron #tarteaucitronServices #tarteaucitronAllAllowed.tarteaucitronIsSelected {
    background: var(--tac-success) !important;
    color: white !important;
    border-color: var(--tac-success) !important;
}

#tarteaucitron #tarteaucitronServices #tarteaucitronAllDenied.tarteaucitronIsSelected,
#tarteaucitron #tarteaucitronServices #tarteaucitronAllDenied2.tarteaucitronIsSelected {
    background: var(--tac-error) !important;
    color: white !important;
    border-color: var(--tac-error) !important;
}

/* Mandatory Services */
#tarteaucitron #tarteaucitronServices #tarteaucitronServices_mandatory .tarteaucitronLine button.tarteaucitronAllow {
    background: var(--tac-text-muted) !important;
    color: white !important;
    border-color: var(--tac-text-muted) !important;
    cursor: not-allowed !important;
    opacity: 0.7 !important;
}

/* Save Button Container */
html body #tarteaucitronRoot div#tarteaucitronSave {
    background: var(--tac-bg-secondary) !important;
    border-top: 1px solid var(--tac-glass-border) !important;
    padding: 20px 24px !important;
}

html body #tarteaucitronRoot button#tarteaucitronSaveButton {
    padding: 14px 32px !important;
    font-size: 15px !important;
}

/* Info Box */
div#tarteaucitronInfo {
    background: var(--tac-bg-secondary) !important;
    border-color: var(--tac-glass-border) !important;
    border-radius: 12px !important;
    color: var(--tac-text-secondary) !important;
}

/* Disclaimer */
#tarteaucitron #tarteaucitronDisclaimer {
    color: var(--tac-text-muted) !important;
}

/* ==================== COOKIE ICON (Manager Button) ==================== */

#tarteaucitronIcon #tarteaucitronManager {
    background: var(--tac-glass-bg) !important;
    backdrop-filter: blur(10px) !important;
    -webkit-backdrop-filter: blur(10px) !important;
    border: 1px solid var(--tac-glass-border) !important;
    border-radius: 16px !important;
    box-shadow: var(--tac-shadow-lg) !important;
    padding: 12px !important;
    transition: all var(--tac-transition) !important;
}

#tarteaucitronIcon #tarteaucitronManager:hover {
    transform: scale(1.05) !important;
    box-shadow: var(--tac-shadow-hover), 0 0 0 4px rgba(8, 145, 178, 0.15) !important;
    border-color: var(--tac-primary) !important;
}

#tarteaucitronIcon #tarteaucitronManager img {
    width: 40px !important;
    height: 40px !important;
    filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.1)) !important;
}

/* ==================== SMALL ALERT ==================== */

#tarteaucitronAlertSmall {
    background: var(--tac-glass-bg) !important;
    backdrop-filter: blur(10px) !important;
    -webkit-backdrop-filter: blur(10px) !important;
    border: 1px solid var(--tac-glass-border) !important;
    border-radius: 14px 0 0 0 !important;
    box-shadow: var(--tac-shadow-lg) !important;
}

#tarteaucitronAlertSmall #tarteaucitronManager {
    color: var(--tac-text-primary) !important;
}

/* ==================== FOCUS STATES (Accessibility) ==================== */

#tarteaucitronRoot a:focus-visible,
#tarteaucitronRoot button:focus-visible {
    outline: 3px solid var(--tac-primary) !important;
    outline-offset: 2px !important;
}

/* ==================== SCROLLBAR ==================== */

#tarteaucitronServices::-webkit-scrollbar {
    width: 8px !important;
}

#tarteaucitronServices::-webkit-scrollbar-track {
    background: var(--tac-bg-secondary) !important;
}

#tarteaucitronServices::-webkit-scrollbar-thumb {
    background: var(--tac-glass-border) !important;
    border-radius: 4px !important;
}

#tarteaucitronServices::-webkit-scrollbar-thumb:hover {
    background: var(--tac-primary) !important;
}

/* ==================== RESPONSIVE ADJUSTMENTS ==================== */

@media screen and (max-width: 768px) {
    body #tarteaucitronRoot.tarteaucitronSize-middle div#tarteaucitronAlertBig {
        padding: 28px 20px !important;
        border-radius: 20px !important;
        width: 95% !important;
    }
    
    #tarteaucitronRoot.tarteaucitronSize-middle span#tarteaucitronDisclaimerAlert {
        font-size: 14px !important;
    }
    
    #tarteaucitronRoot #tarteaucitronAlertBig button {
        padding: 12px 18px !important;
        font-size: 13px !important;
    }
}

/* ==================== ANIMATIONS ==================== */

#tarteaucitron {
    animation: tacSlideIn 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
}

@keyframes tacSlideIn {
    from {
        opacity: 0;
        transform: translateY(-20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Toggle Group Button */
button.tarteaucitron-toggle-group {
    color: var(--tac-text-secondary) !important;
    transition: all var(--tac-transition) !important;
}

button.tarteaucitron-toggle-group:hover {
    color: var(--tac-primary) !important;
}

/* Service Details */
#tarteaucitron #tarteaucitronServices .tarteaucitronTitle + [id^="tarteaucitronDetails"] {
    background: var(--tac-bg-secondary) !important;
    color: var(--tac-text-secondary) !important;
    border-radius: 0 0 10px 10px !important;
    margin: -4px 8px 8px !important;
}

/* Back Button / Overlay hinter dem Einstellungs-Panel */
#tarteaucitronRoot #tarteaucitronBack {
    background: rgba(15, 23, 42, 0.5) !important;
    backdrop-filter: blur(8px) !important;
    -webkit-backdrop-filter: blur(8px) !important;
}

/* ==================== SICHERSTELLEN DASS ALLE ORIGINAL-INHALTE ERHALTEN BLEIBEN ==================== */

/* Checkmarks und Crosses - wie im Original */
#tarteaucitronRoot .tarteaucitronCheck::before,
#tarteaucitronRoot .tarteaucitronCross::before {
    font-size: inherit !important;
}

/* Service Status Info - versteckt wie im Original */
#tarteaucitronRoot .tarteaucitronStatusInfo {
    display: none !important;
}

/* Mandatory Section - Ask-Bereich versteckt wie im Original */
#tarteaucitronRoot #tarteaucitronServices #tarteaucitronServices_mandatory .tarteaucitronAsk {
    display: none !important;
}
