/* ── Base font ────────────────────────────────────────────────────── */
#tarteaucitronRoot {
    font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
    -webkit-font-smoothing: antialiased !important;
}

/* ── Animations ───────────────────────────────────────────────────── */
@keyframes tac-slide-up  { from{transform:translateY(100%);opacity:0} to{transform:translateY(0);opacity:1} }
@keyframes tac-fade-in   { from{opacity:0}                            to{opacity:1}                         }
@keyframes tac-modal-in  { from{transform:translateY(16px) scale(.98);opacity:0} to{transform:none;opacity:1} }

/* ── Banner ───────────────────────────────────────────────────────── */
body div#tarteaucitronRoot div#tarteaucitronAlertBig {
    background: #18181b !important;
    border-top: 1px solid rgba(255,255,255,.07) !important;
    box-shadow: 0 -12px 40px rgba(0,0,0,.4) !important;
    bottom: 8px !important;
    padding: 18px 28px !important;
    display: flex;
    flex-wrap: wrap !important;
    align-items: center !important;
    gap: 14px 24px !important;
    animation: tac-slide-up .35s cubic-bezier(.16,1,.3,1) both !important;
    border-radius: 12px !important;
}

div#tarteaucitronRoot div#tarteaucitronServices {
    margin-top: 0 !important;
}

/* Text block */
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronDisclaimerAlert {
    flex: 1 1 280px !important;
    margin: 0 !important;
    padding: 0 !important;
    color: #a1a1aa !important;
    font-size: 13px !important;
    line-height: 1.6 !important;
    max-width: 680px !important;
}

#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronDisclaimerAlert strong {
    display: block !important;
    color: #fafafa !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    margin-bottom: 3px !important;
}

#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronDisclaimerAlert a {
    color: #71717a !important;
    text-decoration: underline !important;
    text-underline-offset: 2px !important;
    transition: color .15s !important;
}

#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronDisclaimerAlert a:hover { color: #a1a1aa !important; }

/* Button row */
#tarteaucitronRoot #tarteaucitronAlertBig > div:last-child {
    display: flex !important;
    flex-shrink: 0 !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    gap: 8px !important;
}

#tarteaucitronRoot #tarteaucitronAlertBig > button {
    flex-shrink: 0 !important;
}

#tarteaucitronRoot div#tarteaucitronAlertBig button:not(#tarteaucitronCloseCross) {
    width: auto !important;
    margin-top: 16px !important;
    margin-bottom: 16px !important;
}

/* Accept — prominent */
#tarteaucitronRoot #tarteaucitronPersonalize2 {
    order: 1 !important;
    background: #22c55e !important;
    color: #fff !important;
    border: none !important;
    border-radius: 9px !important;
    padding: 10px 20px !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    cursor: pointer !important;
    transition: background .15s, transform .1s !important;
    white-space: nowrap !important;
    line-height: 1 !important;
}

#tarteaucitronRoot #tarteaucitronPersonalize2:hover  { background: #16a34a !important; color: #fff !important; }
#tarteaucitronRoot #tarteaucitronPersonalize2:active { transform: scale(.96) !important; }
#tarteaucitronRoot #tarteaucitronPersonalize2:focus-visible { outline: 2px solid #22c55e !important; outline-offset: 2px !important; }

/* Deny — neutral ghost */
#tarteaucitronRoot #tarteaucitronAllDenied2 {
    order: 2 !important;
    background: transparent !important;
    color: #a1a1aa !important;
    border: 1px solid #3f3f46 !important;
    border-radius: 9px !important;
    padding: 9px 16px !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    cursor: pointer !important;
    transition: border-color .15s, color .15s !important;
    white-space: nowrap !important;
    line-height: 1 !important;
}

#tarteaucitronRoot #tarteaucitronAllDenied2:hover { border-color: #71717a !important; color: #e4e4e7 !important; }
#tarteaucitronRoot #tarteaucitronAllDenied2:focus-visible { outline: 2px solid #71717a !important; outline-offset: 2px !important; }

/* Personalize — minimal text link */
#tarteaucitronRoot #tarteaucitronCloseAlert,
#tarteaucitronRoot #tarteaucitronPrivacyUrl {
    order: 3 !important;
    background: transparent !important;
    color: #52525b !important;
    border: none !important;
    padding: 9px 8px !important;
    font-size: 12px !important;
    font-weight: 400 !important;
    cursor: pointer !important;
    text-decoration: underline !important;
    text-underline-offset: 3px !important;
    white-space: nowrap !important;
    transition: color .15s !important;
    line-height: 1 !important;
}

#tarteaucitronRoot #tarteaucitronCloseAlert:hover,
#tarteaucitronRoot #tarteaucitronPrivacyUrl:hover { color: #a1a1aa !important; }

/* Hide all tarteaucitron visual icons (popup + panel + floating button image) */
#tarteaucitronRoot .tarteaucitronCheck,
#tarteaucitronRoot .tarteaucitronCross,
#tarteaucitronRoot .tarteaucitronPlus,
#tarteaucitronRoot .tarteaucitronListCookies {
    display: none !important;
}

/* ── Backdrop ─────────────────────────────────────────────────────── */
#tarteaucitronRoot #tarteaucitronBack {
    background: rgba(0,0,0,.55) !important;
    backdrop-filter: blur(3px) !important;
    animation: tac-fade-in .2s ease both !important;
}

/* ── Services panel ───────────────────────────────────────────────── */
#tarteaucitronRoot #tarteaucitron {
    background: #fff !important;
    border-radius: 20px !important;
    border: 1px solid #e4e4e7 !important;
    box-shadow: 0 24px 64px rgba(0,0,0,.18) !important;
    overflow: hidden !important;
    animation: tac-modal-in .3s cubic-bezier(.16,1,.3,1) both !important;
}

#tarteaucitronRoot #tarteaucitron,
#tarteaucitronRoot #tarteaucitron * {
    box-sizing: border-box !important;
}

/* Close button */
#tarteaucitronRoot #tarteaucitronClosePanel {
    display: block !important;
    width: 100% !important;
    color: #71717a !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    padding: 14px 18px !important;
    cursor: pointer !important;
    transition: color .15s !important;
    border-bottom: 1px solid #f4f4f5 !important;
    background: #fff !important;
    text-align: right !important;
    position: sticky !important;
    top: 0 !important;
    z-index: 3 !important;
}

#tarteaucitronRoot #tarteaucitronClosePanel:hover { color: #18181b !important; }

#tarteaucitronRoot #tarteaucitronClosePanel:focus-visible {
    outline: 2px solid #22c55e !important;
    outline-offset: -2px !important;
}

/* Info bar */
#tarteaucitronRoot #tarteaucitronInfo {
    background: #fafafa !important;
    border-bottom: 1px solid #f4f4f5 !important;
    padding: 12px 16px !important;
    margin-top: 8px !important;
    border-radius: 10px !important;
}

#tarteaucitronRoot #tarteaucitronInfo p {
    margin: 0 !important;
    color: #52525b !important;
    font-size: 12px !important;
    line-height: 1.5 !important;
}

#tarteaucitronRoot #tarteaucitronPrivacyUrlDialog {
    border: 0 !important;
    background: transparent !important;
    color: #52525b !important;
    font-size: 12px !important;
    text-decoration: underline !important;
    text-underline-offset: 2px !important;
    padding: 0 !important;
    cursor: pointer !important;
}

#tarteaucitronRoot #tarteaucitronPrivacyUrlDialog:hover {
    color: #18181b !important;
}

/* Accept all / Deny all inside panel */
#tarteaucitronRoot #tarteaucitronAllAllowed,
#tarteaucitronRoot #tarteaucitronAllDenied {
    border-radius: 8px !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    cursor: pointer !important;
    border: none !important;
    transition: background .15s !important;
}

#tarteaucitronRoot #tarteaucitronAllAllowed {
    background: #22c55e !important;
    color: #fff !important;
}

#tarteaucitronRoot #tarteaucitronAllAllowed:hover { background: #16a34a !important; }

#tarteaucitronRoot #tarteaucitronAllDenied {
    background: #f4f4f5 !important;
    color: #52525b !important;
}

#tarteaucitronRoot #tarteaucitronAllDenied:hover { background: #e4e4e7 !important; }

/* Services list */
#tarteaucitronRoot #tarteaucitronServices {
    max-height: 60vh !important;
    overflow-y: auto !important;
    padding-bottom: 8px !important;
}

/* Category header */
#tarteaucitronRoot .tarteaucitronMainLine {
    background: #fafafa !important;
    border-bottom: 1px solid #f0f0f0 !important;
    padding: 18px !important;
}

#tarteaucitronRoot .tarteaucitronTitle button {
    font-size: 12px !important;
    font-weight: 600 !important;
    color: #18181b !important;
    text-transform: uppercase !important;
    letter-spacing: .04em !important;
}

/* Service row */
#tarteaucitronRoot .tarteaucitronLine {
    border-bottom: 1px solid #f9f9f9 !important;
    transition: background .1s !important;
}

#tarteaucitronRoot .tarteaucitronLine:hover { background: #fafafa !important; }

/* Service name */
#tarteaucitronRoot .tarteaucitronName a {
    font-size: 13px !important;
    font-weight: 500 !important;
    color: #18181b !important;
    text-decoration: none !important;
}

#tarteaucitronRoot .tarteaucitronName a:hover { color: #22c55e !important; }

#tarteaucitronRoot .tarteaucitronName span {
    font-size: 11px !important;
    color: #a1a1aa !important;
    line-height: 1.45 !important;
}

#tarteaucitronRoot #tarteaucitronSave {
    position: sticky !important;
    bottom: 0 !important;
    background: #fff !important;
    border-top: 1px solid #f4f4f5 !important;
    padding: 14px 18px !important;
    z-index: 2 !important;
    width: 100% !important;
    right: 0 !important;
    left: 0 !important;
    overflow: hidden !important;
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
}

#tarteaucitronRoot #tarteaucitronSave > .tarteaucitronAllow,
#tarteaucitronRoot #tarteaucitronSave > .tarteaucitronDeny {
    margin-right: auto !important;
    margin-left: auto !important;
}

#tarteaucitronRoot #tarteaucitronSaveButton {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    border: 0 !important;
    border-radius: 10px !important;
    background: #18181b !important;
    color: #fff !important;
    font-weight: 600 !important;
    font-size: 13px !important;
    padding: 12px 14px !important;
    cursor: pointer !important;
    transition: background .15s !important;
}

#tarteaucitronRoot #tarteaucitronSaveButton:hover { background: #27272a !important; }

#tarteaucitronRoot #tarteaucitronSaveButton:focus-visible {
    outline: 2px solid #22c55e !important;
    outline-offset: 2px !important;
}

/* ── Toggle-style Allow / Deny ────────────────────────────────────── */
#tarteaucitronRoot .tarteaucitronAsk {
    background: #f4f4f5 !important;
    border-radius: 8px !important;
    padding: 3px !important;
}

#tarteaucitronRoot .tarteaucitronAllow,
#tarteaucitronRoot .tarteaucitronDeny {
    border: none !important;
    border-radius: 6px !important;
    font-size: 12px !important;
    font-weight: 500 !important;
    cursor: pointer !important;
    transition: background .15s, color .15s !important;
    background: transparent !important;
    color: #71717a !important;
}

#tarteaucitronRoot .tarteaucitronAllow:hover { color: #22c55e !important; }
#tarteaucitronRoot .tarteaucitronDeny:hover  { color: #ef4444 !important; }

/* Active allow */
#tarteaucitronRoot .tarteaucitronIsAllowed .tarteaucitronAllow {
    background: #22c55e !important;
    color: #fff !important;
    box-shadow: 0 1px 4px rgba(34,197,94,.25) !important;
}

#tarteaucitronRoot .tarteaucitronIsAllowed .tarteaucitronDeny { color: #c4c4c4 !important; }

/* Active deny */
#tarteaucitronRoot .tarteaucitronIsDenied .tarteaucitronDeny {
    background: #fff !important;
    color: #ef4444 !important;
    box-shadow: 0 1px 4px rgba(239,68,68,.12) !important;
}

#tarteaucitronRoot .tarteaucitronIsDenied .tarteaucitronAllow { color: #c4c4c4 !important; }

/* ── Floating icon ────────────────────────────────────────────────── */
#tarteaucitronRoot #tarteaucitronIcon {
    bottom: 20px !important;
    right: 20px !important;
    background: #18181b !important;
    border: 2px solid #27272a !important;
    border-radius: 50% !important;
    box-shadow: 0 4px 20px rgba(0,0,0,.3) !important;
    width: 44px !important;
    height: 44px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    opacity: 0 !important;
    visibility: hidden !important;
    transform: scale(.75) !important;
    transition: opacity .3s ease, transform .3s ease, visibility .3s ease, background .15s !important;
}

#tarteaucitronRoot #tarteaucitronIcon:hover { background: #27272a !important; transform: scale(1.08) !important; }

body.tac-icon-visible #tarteaucitronRoot #tarteaucitronIcon {
    opacity: 1 !important;
    visibility: visible !important;
    transform: scale(1) !important;
}

#tarteaucitronRoot #tarteaucitronAlertBig::before {
    display: none !important;
}

/* ── Mobile ───────────────────────────────────────────────────────── */
@media (max-width: 600px) {
    #tarteaucitronRoot #tarteaucitronAlertBig {
        flex-direction: column !important;
        align-items: stretch !important;
        padding: 16px !important;
        gap: 12px !important;
    }

    #tarteaucitronRoot #tarteaucitronAlertBig > div:last-child {
        flex-direction: column !important;
        align-items: stretch !important;
    }

    #tarteaucitronRoot #tarteaucitronAllDenied2,
    #tarteaucitronRoot #tarteaucitronPersonalize2,
    #tarteaucitronRoot #tarteaucitronCloseAlert,
    #tarteaucitronRoot #tarteaucitronPrivacyUrl {
        text-align: center !important;
        padding: 13px !important;
        width: 100% !important;
    }

    #tarteaucitronRoot #tarteaucitronIcon {
        bottom: 16px !important;
        right: 16px !important;
    }

    #tarteaucitronRoot #tarteaucitronMainLineOffset {
        padding: 14px !important;
    }

    #tarteaucitronRoot #tarteaucitronSave {
        padding: 12px !important;
    }
}
