[hidden] { display: none !important; }
html.consent-dialog-open, html.consent-dialog-open body { overflow: hidden; overscroll-behavior: none; }
.consent-banner { background: var(--color-surface); border-top: 1px solid var(--color-border); }
.consent-banner-content { display: flex; flex-direction: column; align-items: stretch; gap: 1rem; padding-block: 1.5rem; }
.consent-banner h2, .consent-dialog h2 { margin: 0 0 0.75rem; font-size: 1.25rem; }
.consent-banner p { margin: 0.5rem 0; }
.consent-actions { display: flex; flex-direction: column; gap: 0.75rem; }
.consent-button { min-height: 2.75rem; padding: 0.5rem 0.875rem; border: 1px solid var(--color-control-border); border-radius: var(--radius-control); background: var(--color-background); color: var(--color-text); font: inherit; cursor: pointer; }
.consent-button:hover { border-color: var(--color-accent); background: var(--color-surface); }
.consent-dialog { width: min(38rem, calc(100% - 2rem)); max-height: calc(100dvh - 2rem); overflow-y: auto; padding: clamp(1rem, 4vw, 2rem); border: 1px solid var(--color-control-border); border-radius: 0.75rem; color: var(--color-text); background: var(--color-background); }
.consent-dialog::backdrop { background: var(--color-backdrop); }
.consent-dialog { overscroll-behavior: contain; }
.consent-category { padding-block: 1rem; border-top: 1px solid var(--color-border); }
.consent-category label { display: flex; align-items: center; gap: 0.5rem; font-weight: 600; }
.consent-category input { width: 1.25rem; height: 1.25rem; flex-shrink: 0; accent-color: var(--color-accent); }
.consent-category p { margin: 0.5rem 0 0; color: var(--color-muted); }
.consent-status { color: var(--color-muted); font-size: 0.875rem; opacity: 1; transition: opacity 250ms ease; }
.consent-status--dismissed { opacity: 0; }
@media (prefers-reduced-motion: reduce) {
    .consent-status { transition: none; }
}
.footer-cookie-button { min-height: 2.75rem; padding: 0.5rem 0; border: 0; background: transparent; color: inherit; font: inherit; text-decoration: underline; text-underline-offset: 0.2rem; cursor: pointer; }
/* Den Platz bis zur Initialisierung reservieren; der Button bleibt unbedienbar. */
.footer-cookie-button[hidden] { display: inline-block !important; visibility: hidden; }
.footer-cookie-button:hover { color: var(--color-accent-hover); }
.footer-nav { max-width: 27rem; }
@media (min-width: 28rem) {
    .consent-actions { flex-direction: row; flex-wrap: wrap; }
}
@media (min-width: 48rem) {
    .consent-banner-content { flex-direction: row; align-items: center; gap: 1.5rem; }
    .consent-banner .consent-actions { flex: 0 0 16rem; }
}
