.cookie-settings-link { justify-self: start; padding: 0; border: 0; background: transparent; color: inherit; font: inherit; text-decoration: underline; text-underline-offset: .2em; text-align: left; cursor: pointer; }
.cookie-banner { position: fixed; z-index: 90; right: 1rem; bottom: 1rem; left: 1rem; max-width: 72rem; margin-inline: auto; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 1.5rem; max-height: calc(100dvh - 2rem); overflow-y: auto; padding: 1.5rem; border: 2px solid var(--ink); border-radius: var(--radius); background: var(--paper); color: var(--ink); box-shadow: 5px 5px 0 var(--ink); }
.cookie-banner h2, .cookie-dialog h2 { margin-bottom: .65rem; font-size: 1.5rem; letter-spacing: -.02em; }
.cookie-banner p { max-width: 54rem; margin-bottom: .5rem; font-size: .9rem; }
.cookie-banner a { font-size: .9rem; text-underline-offset: .2em; }
.cookie-actions { display: flex; flex-wrap: wrap; gap: .75rem; }
.cookie-banner .cookie-actions { display: grid; grid-template-columns: 1fr 1fr; }
.cookie-banner .cookie-settings-link { grid-column: 1 / -1; justify-self: center; }
.cookie-actions .button { box-shadow: none; font-size: .9rem; }
.cookie-dialog { width: min(640px, calc(100% - 2rem)); max-height: calc(100dvh - 2rem); overflow-y: auto; padding: 1.5rem; border: 2px solid var(--ink); border-radius: var(--radius); background: var(--paper); color: var(--ink); }
.cookie-dialog::backdrop { background: rgb(18 18 16 / 65%); }
.cookie-dialog h2 { padding-right: 2.5rem; }
.cookie-close { position: absolute; top: .75rem; right: .75rem; width: 2.5rem; height: 2.5rem; border: 1px solid var(--ink); border-radius: 50%; background: var(--white); cursor: pointer; font-size: 1.5rem; }
.cookie-category { display: flex; align-items: center; justify-content: space-between; gap: 1.25rem; margin-bottom: 1rem; padding: 1rem 0; border-top: 1px solid var(--line); }
.cookie-category strong, .cookie-category > span > span { display: block; }
.cookie-category p, .cookie-category > span > span { margin: .35rem 0 0; font-size: .9rem; }
.cookie-category input { flex: 0 0 1.4rem; width: 1.4rem; height: 1.4rem; min-height: 0; accent-color: var(--orange); cursor: pointer; }
.cookie-required { flex-shrink: 0; font-size: .8rem; font-weight: 700; }
.cookie-map-placeholder { padding: 1.25rem; margin: 1rem 0; border: 1px dashed var(--line); background: var(--paper); }
.cookie-map-placeholder p { margin-bottom: .75rem; }
@media (max-width: 900px) { .cookie-banner { grid-template-columns: 1fr; gap: 1rem; } .cookie-banner .cookie-actions { grid-template-columns: 1fr 1fr auto; align-items: center; } .cookie-banner .cookie-settings-link { grid-column: auto; } }
@media (max-width: 540px) { .cookie-banner { padding: 1rem; right: .75rem; bottom: .75rem; left: .75rem; } .cookie-banner .cookie-actions { grid-template-columns: 1fr 1fr; } .cookie-banner .cookie-settings-link { grid-column: 1 / -1; } .cookie-dialog { padding: 1rem; } .cookie-dialog .cookie-actions .button { flex: 1 1 45%; } }
@media print { .cookie-banner, .cookie-dialog { display: none !important; } }
