/* Shared consent controls on every page. Accept and reject have equal prominence. */
.consent-banner[hidden], .consent-map-placeholder[hidden], [data-consent-open][hidden], [data-map-accept][hidden] { display: none; }
.consent-banner { position: fixed; z-index: 180; inset: auto 1rem 1rem; max-width: 76rem; margin-inline: auto; padding: 1.5rem; border: 1px solid var(--ink); background: var(--paper); color: var(--ink); box-shadow: 0 6px 32px #0003; display: grid; grid-template-columns: 1fr auto; gap: 1.5rem; align-items: center; max-height: 80dvh; overflow: auto; }
.consent-banner h2, .consent-dialog h2 { font-size: 1.3rem; line-height: 1.2; margin-bottom: .65rem; }
.consent-banner p, .consent-dialog p { font-size: .95rem; line-height: 1.5; }
.consent-banner a, .consent-dialog a { text-decoration: underline; text-underline-offset: .2em; }
.consent-actions { display: flex; flex-wrap: wrap; gap: .65rem; }
.consent-actions button, .consent-map-placeholder button { border: 1px solid currentColor; border-radius: 3px; min-height: 44px; padding: .75rem 1rem; font-size: .9rem; font-weight: 600; }
.consent-actions button:hover { background: var(--ink); color: var(--paper); }
.consent-dialog { width: min(38rem, calc(100% - 2rem)); max-height: 90dvh; padding: 1.5rem; border: 1px solid var(--ink); background: var(--paper); color: var(--ink); }
.consent-dialog::backdrop { background: #0009; }
.consent-dialog form { display: grid; gap: 1.25rem; }
.consent-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.consent-heading h2 { margin: 0; }
.consent-close { min-width: 44px; min-height: 44px; font-size: 1.8rem; }
.consent-option { border-top: 1px solid var(--rule); padding-top: 1rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.consent-option:not(label) { display: block; }
.consent-option strong { display: block; margin-bottom: .35rem; }
.consent-option span span { display: block; font-size: .9rem; color: var(--ink-2); }
.consent-option input { width: 24px; height: 24px; flex: none; accent-color: var(--accent); }
.footer__map { width: 100%; min-width: 0; }
.consent-map-placeholder { height: 100%; padding: 2rem; display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; gap: .8rem; }
.consent-map-placeholder p { max-width: 36rem; font-size: .95rem; }
.consent-map-placeholder a { text-decoration: underline; text-underline-offset: .2em; }
.footer__base [data-consent-open] { text-decoration: underline; text-underline-offset: .2em; min-height: 44px; }
@media (max-width: 1100px) { .consent-banner { grid-template-columns: 1fr; } }
@media (max-width: 520px) { .consent-banner { inset: auto .5rem .5rem; padding: 1rem; gap: 1rem; } .consent-actions { display: grid; grid-template-columns: 1fr 1fr; width: 100%; } .consent-actions button:last-child { grid-column: 1 / -1; } .consent-map-placeholder { padding: 1.25rem; } .footer__map { min-height: 23rem; } }
