.cookie-banner[hidden], .cookie-gpc[hidden] { display: none; }
.cookie-banner { position: fixed; z-index: 1200; inset: auto 1rem 1rem; display: flex; align-items: center; gap: 1.5rem; max-width: 72rem; margin: 0 auto; padding: 1.25rem 1.5rem; border: 1px solid #cad3cc; background: #fffdf7; color: #192c23; box-shadow: 0 8px 36px #132d2526; }
.cookie-banner-copy { flex: 1; }
body .cookie-banner h2, body .cookie-dialog h2 { margin: 0 0 .5rem; font: 600 1.2rem/1.25 "Lora", Georgia, serif; }
.cookie-banner p { margin: 0; font-size: .9rem; line-height: 1.55; }
.cookie-banner a, .cookie-dialog a { color: #164d3a; text-decoration: underline; text-underline-offset: 3px; }
.cookie-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .65rem; }
.cookie-button, .cookie-settings-button { min-height: 44px; padding: .7rem 1rem; border: 1px solid #174c3b; background: #fffdf7; color: #174c3b; font: 600 .9rem/1.3 "IBM Plex Sans", sans-serif; cursor: pointer; }
.cookie-button:hover { background: #e8eee8; }
.cookie-settings-button { border-color: transparent; text-decoration: underline; text-underline-offset: 3px; }
.cookie-button:focus-visible, .cookie-settings-button:focus-visible, .cookie-option input:focus-visible { outline: 3px solid #8c6b25; outline-offset: 3px; }
.cookie-dialog { width: min(34rem, calc(100% - 2rem)); max-height: calc(100dvh - 2rem); box-sizing: border-box; overflow: auto; padding: clamp(1.25rem, 4vw, 2rem); border: 1px solid #cad3cc; background: #fffdf7; color: #192c23; }
.cookie-dialog::backdrop { background: #10261dcc; }
.cookie-dialog p { font-size: .95rem; line-height: 1.6; }
.cookie-option { display: flex; align-items: flex-start; gap: .85rem; padding: 1rem 0; border-bottom: 1px solid #d8ded8; cursor: pointer; }
.cookie-option input { flex: none; width: 1.2rem; height: 1.2rem; margin: .15rem 0 0; accent-color: #174c3b; }
.cookie-option strong, .cookie-option small { display: block; }
.cookie-option small { margin-top: .3rem; font-size: .9rem; line-height: 1.5; color: #4b5c52; }
.cookie-gpc { padding: .8rem; background: #e8eee8; }
.site-footer .cookie-settings-button, .legal .cookie-settings-button { padding: .15rem 0; border: 0; background: transparent; color: inherit; font: inherit; }
.cookie-table { width: 100%; border-collapse: collapse; margin: 1.5rem 0; font-size: .95rem; }
.cookie-table th, .cookie-table td { padding: .75rem; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
@media (max-width: 760px) {
  .cookie-banner { inset: auto .5rem .5rem; flex-direction: column; align-items: stretch; gap: .9rem; padding: 1rem; max-height: calc(100dvh - 1rem); overflow: auto; }
  .cookie-actions { gap: .5rem; }
  .cookie-banner .cookie-button { flex: 1; }
  .cookie-table th, .cookie-table td { padding: .6rem .35rem; font-size: .85rem; overflow-wrap: anywhere; }
}
