.cookie-consent[hidden],
.cookie-consent [hidden] {
    display: none !important;
}

.cookie-consent {
    position: fixed;
    inset: auto 0 0;
    z-index: 1080;
    padding: 1.5rem max(1.25rem, env(safe-area-inset-right)) max(1.5rem, env(safe-area-inset-bottom));
    max-height: 80dvh;
    overflow-y: auto;
    color: var(--text-primary);
    background: var(--bg-card);
    border-top: 2px solid var(--accent-cyan);
    box-shadow: 0 -1rem 3rem var(--bg-darkest);
    animation: cookie-consent-enter 180ms ease-out;
}

.cookie-consent__inner {
    max-width: 1200px;
    margin-inline: auto;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 1.5rem 2.5rem;
    align-items: center;
}

.cookie-consent__copy h2 {
    font-family: var(--font-body);
    font-size: 1.25rem;
    font-weight: 700;
    margin: 0 0 .65rem;
}

.cookie-consent__copy p {
    max-width: 78ch;
    margin: 0 0 .65rem;
    line-height: 1.65;
    font-size: .9rem;
}

.cookie-consent__copy .cookie-consent__note {
    color: var(--text-secondary);
    font-size: .8rem;
    margin-bottom: 0;
}

.cookie-consent__note a {
    text-decoration: underline;
}

.cookie-consent__actions {
    display: grid;
    gap: .65rem;
    min-width: 14rem;
}

.cookie-consent__choice {
    border: 1px solid var(--accent-cyan);
    background: var(--surface-2);
    color: var(--text-primary);
    border-radius: .5rem;
    padding: .75rem 1rem;
    min-height: 44px;
    font: 600 .9rem var(--font-body);
}

.cookie-consent__choice:hover {
    background: var(--surface-3);
}

.cookie-consent__choice:disabled {
    opacity: .6;
    cursor: not-allowed;
}

.cookie-consent__close,
.cookie-settings-link {
    border: 0;
    background: transparent;
    color: inherit;
    font: inherit;
    text-decoration: underline;
    text-underline-offset: .2em;
    padding: .4rem 0;
}

.cookie-consent__close {
    color: var(--text-secondary);
    font-size: .8rem;
}

.cookie-consent button:focus-visible,
.cookie-settings-link:focus-visible {
    outline: 2px solid var(--accent-cyan);
    outline-offset: 4px;
}

.cookie-consent__error {
    color: var(--accent-red);
}

.cookie-consent-noscript {
    padding: .75rem 1.25rem;
    color: var(--text-secondary);
}

@keyframes cookie-consent-enter {
    from { transform: translateY(100%); }
    to { transform: translateY(0); }
}

@media (max-width: 700px) {
    .cookie-consent__inner { grid-template-columns: 1fr; gap: 1rem; }
    .cookie-consent__actions { grid-template-columns: 1fr; min-width: 0; }
    .cookie-consent__close { grid-column: 1 / -1; }
}

@media (prefers-reduced-motion: reduce) {
    .cookie-consent { animation: none; }
}
