/* ================================================
   CookieConsent v3 — SEOVault AI theme overrides
   ================================================ */

/* ---- Consent modal (bottom bar) ---- */
.cc--bar .cm {
    max-width: 100% !important;
    border-radius: 0 !important;
    padding: 16px 24px !important;
    gap: 12px !important;
}

#cc--main .cm {
    background: var(--panel-strong) !important;
    border: 1px solid var(--panel-border) !important;
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
}

#cc--main .cm__title {
    color: var(--heading) !important;
    font-family: "Syne", sans-serif !important;
    font-size: 1rem !important;
    font-weight: 700 !important;
}

#cc--main .cm__desc {
    color: var(--text-muted) !important;
    font-size: 0.88rem !important;
    line-height: 1.6 !important;
}

#cc--main .cm__desc a {
    color: var(--primary) !important;
    text-decoration: underline !important;
    text-underline-offset: 2px !important;
}

#cc--main .cm__desc a:hover {
    color: var(--secondary) !important;
}

/* ---- Buttons ---- */
#cc--main .cm__btn {
    border-radius: 999px !important;
    font-weight: 600 !important;
    font-size: 0.85rem !important;
    padding: 10px 20px !important;
    min-height: 42px !important;
    transition: transform 180ms ease, box-shadow 180ms ease !important;
}

#cc--main .cm__btn:hover {
    transform: translateY(-1px) !important;
}

#cc--main .cm__btn--accept {
    background: linear-gradient(135deg, var(--primary), #9de3ff) !important;
    color: var(--button-text) !important;
    border: none !important;
    box-shadow: 0 12px 28px rgba(66, 198, 185, 0.22) !important;
}

#cc--main .cm__btn--reject {
    background: rgba(255, 255, 255, 0.06) !important;
    color: var(--heading) !important;
    border: 1px solid var(--panel-border) !important;
}

#cc--main .cm__btn--preferences {
    background: transparent !important;
    color: var(--primary) !important;
    border: none !important;
    text-decoration: underline !important;
    text-underline-offset: 2px !important;
    padding: 8px 12px !important;
    min-height: auto !important;
    box-shadow: none !important;
}

#cc--main .cm__btn--preferences:hover {
    color: var(--secondary) !important;
    transform: none !important;
}

/* ---- Footer links in modal ---- */
#cc--main .cm__footer {
    color: var(--text-soft) !important;
    font-size: 0.78rem !important;
}

#cc--main .cm__footer a {
    color: var(--primary) !important;
    text-decoration: underline !important;
    text-underline-offset: 2px !important;
}

/* ---- Preferences modal ---- */
#cc--main .pm {
    background: var(--panel-strong) !important;
    border: 1px solid var(--panel-border) !important;
    border-radius: var(--radius-lg) !important;
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
}

#cc--main .pm__header {
    border-bottom: 1px solid var(--panel-border) !important;
}

#cc--main .pm__title {
    color: var(--heading) !important;
    font-family: "Syne", sans-serif !important;
    font-weight: 700 !important;
}

#cc--main .pm__section {
    border-bottom: 1px solid var(--grid-line) !important;
}

#cc--main .pm__section-title {
    color: var(--heading) !important;
    font-weight: 600 !important;
}

#cc--main .pm__section-desc {
    color: var(--text-muted) !important;
    font-size: 0.86rem !important;
    line-height: 1.6 !important;
}

#cc--main .pm__section-desc a {
    color: var(--primary) !important;
    text-decoration: underline !important;
}

/* ---- Toggle switches ---- */
#cc--main .section__toggle {
    background: var(--bg-soft) !important;
    border: 1px solid var(--panel-border) !important;
}

#cc--main .section__toggle::after {
    background: var(--text-muted) !important;
}

#cc--main .section__toggle--active {
    background: var(--primary) !important;
    border-color: var(--primary) !important;
}

#cc--main .section__toggle--active::after {
    background: var(--button-text) !important;
}

#cc--main .section__toggle--readonly {
    opacity: 0.5 !important;
}

#cc--main .section__toggle--readonly::after {
    background: var(--text-muted) !important;
}

/* ---- Preference modal buttons ---- */
#cc--main .pm__btn {
    border-radius: 999px !important;
    font-weight: 600 !important;
    font-size: 0.85rem !important;
    padding: 10px 20px !important;
    min-height: 42px !important;
    transition: transform 180ms ease !important;
}

#cc--main .pm__btn:hover {
    transform: translateY(-1px) !important;
}

#cc--main .pm__btn--accept {
    background: linear-gradient(135deg, var(--primary), #9de3ff) !important;
    color: var(--button-text) !important;
    border: none !important;
    box-shadow: 0 12px 28px rgba(66, 198, 185, 0.22) !important;
}

#cc--main .pm__btn--reject {
    background: rgba(255, 255, 255, 0.06) !important;
    color: var(--heading) !important;
    border: 1px solid var(--panel-border) !important;
}

#cc--main .pm__btn--save {
    background: rgba(255, 255, 255, 0.06) !important;
    color: var(--heading) !important;
    border: 1px solid var(--panel-border) !important;
}

/* ---- Close icon ---- */
#cc--main .pm__close-btn {
    color: var(--text-muted) !important;
}

#cc--main .pm__close-btn:hover {
    color: var(--heading) !important;
}

/* ---- Category name / service counter ---- */
#cc--main .pm__section--expandable .pm__section-title::before {
    border-color: var(--text-muted) !important;
}

#cc--main .pm__section-counter {
    color: var(--text-soft) !important;
    font-size: 0.78rem !important;
}

/* ---- Mobile responsiveness ---- */
@media (max-width: 640px) {
    #cc--main .cc--bar .cm {
        padding: 14px 16px !important;
        flex-direction: column !important;
        text-align: center !important;
        gap: 10px !important;
    }

    #cc--main .cc--bar .cm__texts {
        margin: 0 !important;
    }

    #cc--main .cc--bar .cm__btns {
        flex-direction: column !important;
        width: 100% !important;
        gap: 8px !important;
        margin: 0 !important;
    }

    #cc--main .cc--bar .cm__btn {
        width: 100% !important;
    }

    #cc--main .pm {
        max-width: calc(100vw - 24px) !important;
        max-height: 80vh !important;
        border-radius: var(--radius-md) !important;
    }

    #cc--main .pm__header {
        padding: 16px !important;
    }

    #cc--main .pm__body {
        padding: 12px 16px !important;
    }

    #cc--main .pm__footer {
        padding: 12px 16px !important;
    }

    #cc--main .pm__btns {
        flex-direction: column !important;
        gap: 8px !important;
    }

    #cc--main .pm__btn {
        width: 100% !important;
    }
}

/* ---- Floating cookie icon for reopening preferences ---- */
#cc--main .cc__ck-link {
    background: var(--panel-strong) !important;
    border: 1px solid var(--panel-border) !important;
    border-radius: var(--radius-sm) !important;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18) !important;
}

#cc--main .cc__ck-link svg {
    fill: var(--primary) !important;
}

#cc--main .cc__ck-link:hover {
    border-color: var(--primary) !important;
}
