.form-policy-link { font-size: 13px; line-height: 1.5; margin: 10px 0; }
.form-policy-link a, .privacy-notice a { text-decoration: underline; text-underline-offset: 3px; }
.privacy-notice { position: fixed; z-index: 90; bottom: 16px; left: 16px; right: 16px; max-width: 1120px; margin-inline: auto; padding: 20px; background: #fff; color: #181818; border: 1px solid #d3d3d3; border-radius: 8px; box-shadow: 0 4px 24px #0002; display: flex; gap: 24px; align-items: center; max-height: calc(100svh - 32px); overflow: auto; }
.privacy-notice[hidden], .map-permission[hidden] { display: none; }
.privacy-notice { left: auto; width: min(480px, calc(100% - 32px)); flex-direction: column; align-items: stretch; gap: 16px; max-height: calc(100vh - 32px); max-height: calc(100dvh - 32px); overflow: hidden; }
.privacy-notice > div:first-child { min-height: 0; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; }
.privacy-notice .privacy-actions { flex: 0 0 auto; margin: 0; }
.cookie-categories { margin-top: 16px; padding: 0 12px; background: #f6f6f6; border-radius: 6px; }
.cookie-categories > div { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 4px 12px; padding: 10px 0; border-bottom: 1px solid #e2e2e2; }
.cookie-categories > div:last-child { border: 0; }
.privacy-notice .cookie-categories > div { position: relative; padding-right: 56px; }
.privacy-notice .cookie-category-toggle { appearance: none; -webkit-appearance: none; position: absolute; right: 0; top: 10px; width: 44px; height: 28px; min-height: 0; padding: 0; margin: 0; border: 1px solid #b9b9b9; border-radius: 20px; background: #d7d7d7; cursor: pointer; }
.privacy-notice .cookie-category-toggle::after { content: ''; position: absolute; left: 3px; top: 3px; width: 20px; height: 20px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px #0003; }
.privacy-notice .cookie-category-toggle:checked { background: var(--accent); border-color: var(--accent); }
.privacy-notice .cookie-category-toggle:checked::after { transform: translateX(16px); }
.privacy-notice .cookie-category-toggle:disabled { opacity: 1; background: #465965; border-color: #465965; cursor: default; }
.privacy-notice .cookie-category-toggle:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.cookie-categories strong { font-size: 13px; }
.cookie-categories span { margin-left: auto; font-size: 11px; color: #626262; }
.privacy-notice .cookie-categories p { grid-column: 1 / -1; font-size: 12px; color: #626262; }
:root body .privacy-notice .privacy-actions button[data-privacy-choice="selected"]:not(:disabled) { background: var(--accent); color: #fff; }
.privacy-notice h2 { font-size: 18px; line-height: 1.3; margin: 0 0 8px; }
.privacy-notice p { font-size: 14px; line-height: 1.5; margin: 0; }
.privacy-actions { display: flex; flex-shrink: 0; gap: 8px; }
.privacy-actions > button { flex: 1 1 0; min-width: 0; white-space: normal; }
.map-permission a { text-decoration: underline; text-underline-offset: 3px; }
[data-map-revoke] { margin-top: 12px; }
.cookie-checks { display: grid; gap: 8px; margin-top: 12px; }
.cookie-checks label { display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 10px; align-items: start; font-size: 14px; line-height: 1.4; cursor: pointer; }
.cookie-checks input { width: 22px; height: 22px; margin: 0; accent-color: var(--accent); }
.privacy-notice .privacy-actions button:disabled { cursor: not-allowed; opacity: .5; background: #fff; color: #666; border-color: #aaa; }
.privacy-actions button, .map-permission button { border: 1px solid var(--accent); border-radius: 8px; background: #fff; color: #bd3e18; padding: 12px; min-height: 44px; font: inherit; font-size: 14px; cursor: pointer; }
.privacy-actions button:is(:hover, :focus-visible), .map-permission button:is(:hover, :focus-visible) { background: var(--accent); color: #fff; }
.map-permission { display: grid; align-content: center; justify-items: start; gap: 16px; min-height: 280px; padding: 24px; background: #f4f4f4; border: 1px solid #ddd; border-radius: 8px; }
.map-permission p { font-size: 16px; line-height: 1.5; margin: 0; }
.footer-policy-links button { border: 0; padding: 0; background: transparent; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.footer-policy-links { flex-wrap: wrap; }
@media (max-width: 900px) { .privacy-notice { flex-direction: column; align-items: stretch; gap: 16px; } .privacy-actions { flex-wrap: wrap; } }
@media (max-width: 480px) { .privacy-notice { left: 8px; right: 8px; width: auto; bottom: 8px; padding: 16px; } .privacy-actions { display: grid; grid-template-columns: 1fr; } }
@media (max-width: 480px) {
  .privacy-notice { bottom: max(8px, env(safe-area-inset-bottom)); max-height: calc(100vh - 24px); max-height: calc(100dvh - 24px - env(safe-area-inset-bottom) - env(safe-area-inset-top)); gap: 12px; }
  .privacy-notice .cookie-categories > div { grid-template-columns: minmax(0, 1fr); gap: 3px; }
  .privacy-notice .cookie-categories span { margin-left: 0; }
}
