/* =============================================================
   Cookie Consent Banner – cookie-banner.css
   ============================================================= */

:root {
    --ccb-bg:     #1a1a2e;
    --ccb-fg:     #e0e0e0;
    --ccb-accent: #e94560;
    --ccb-radius: 12px;
    --ccb-shadow: 0 8px 32px rgba(0,0,0,.35);
    --ccb-font:   -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    --ccb-z:      99999;
}

/* ---- Banner wrapper ---- */
.ccb-banner {
    position: fixed;
    z-index: var(--ccb-z);
    font-family: var(--ccb-font);
    font-size: 14px;
    line-height: 1.5;
    color: var(--ccb-fg);
    background: var(--ccb-bg);
    box-shadow: var(--ccb-shadow);
    opacity: 0;
    pointer-events: none;
    transition: opacity .35s ease, transform .35s ease;
}

.ccb-banner.ccb-visible {
    opacity: 1;
    pointer-events: all;
}

/* ---- Positions ---- */
.ccb-pos-bottom {
    bottom: 0; left: 0; right: 0;
    border-top: 3px solid var(--ccb-accent);
    border-radius: var(--ccb-radius) var(--ccb-radius) 0 0;
    transform: translateY(100%);
}
.ccb-pos-bottom.ccb-visible { transform: translateY(0); }

.ccb-pos-top {
    top: 0; left: 0; right: 0;
    border-bottom: 3px solid var(--ccb-accent);
    border-radius: 0 0 var(--ccb-radius) var(--ccb-radius);
    transform: translateY(-100%);
}
.ccb-pos-top.ccb-visible { transform: translateY(0); }

.ccb-pos-bottom-left,
.ccb-pos-bottom-right {
    bottom: 24px;
    max-width: 420px;
    border-radius: var(--ccb-radius);
    border-left: 4px solid var(--ccb-accent);
    transform: translateY(30px);
}
.ccb-pos-bottom-left  { left: 24px; }
.ccb-pos-bottom-right { right: 24px; }
.ccb-pos-bottom-left.ccb-visible,
.ccb-pos-bottom-right.ccb-visible { transform: translateY(0); }

/* ---- Inner layout ---- */
.ccb-inner {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 14px;
    padding: 16px 24px;
    max-width: 1200px;
    margin: 0 auto;
}

/* ---- Icon ---- */
.ccb-icon {
    font-size: 28px;
    flex-shrink: 0;
    animation: ccb-wobble 2.5s ease-in-out infinite;
}
@keyframes ccb-wobble {
    0%, 100% { transform: rotate(-6deg); }
    50%       { transform: rotate( 6deg); }
}

/* ---- Text ---- */
.ccb-text {
    flex: 1 1 240px;
    margin: 0;
    color: var(--ccb-fg);
}
.ccb-text a {
    color: var(--ccb-accent);
    text-decoration: underline;
    text-underline-offset: 2px;
}
.ccb-text a:hover { opacity: .8; }

/* ---- Action buttons ---- */
.ccb-actions {
    display: flex;
    gap: 10px;
    flex-shrink: 0;
}

.ccb-btn {
    cursor: pointer;
    border: none;
    border-radius: 6px;
    font-family: inherit;
    font-size: 13px;
    font-weight: 600;
    padding: 9px 20px;
    transition: filter .2s ease, transform .15s ease;
    letter-spacing: .02em;
}
.ccb-btn:hover  { filter: brightness(1.15); }
.ccb-btn:active { transform: scale(.96); }

.ccb-btn-accept {
    background: var(--ccb-accent);
    color: #fff;
}

.ccb-btn-decline {
    background: transparent;
    color: var(--ccb-fg);
    border: 1.5px solid rgba(255,255,255,.3);
}
.ccb-btn-decline:hover { border-color: rgba(255,255,255,.6); }

/* ---- Hidden ---- */
.ccb-hidden { display: none !important; }

/* ---- Responsive ---- */
@media (max-width: 600px) {
    .ccb-inner {
        flex-direction: column;
        align-items: flex-start;
        padding: 14px 18px;
    }
    .ccb-actions { width: 100%; }
    .ccb-btn     { flex: 1; text-align: center; }
    .ccb-pos-bottom-left,
    .ccb-pos-bottom-right {
        left: 12px; right: 12px; bottom: 12px;
        max-width: none;
    }
}
