.privacy-panel[hidden], .map-consent[hidden], #google-map-frame[hidden] { display: none !important; }
.privacy-panel {
  position: fixed; z-index: 10000; left: 16px; right: 16px; bottom: 16px;
  max-width: 720px; margin: 0 auto; padding: 20px; box-sizing: border-box;
  max-height: calc(100vh - 32px); max-height: calc(100dvh - 32px); overflow-y: auto;
  background: #2A2019; color: #FAF6F0; border: 1px solid #C9A063;
  border-radius: 8px; box-shadow: 0 12px 40px rgba(0,0,0,.35);
}
.privacy-panel h2 { color: #FAF6F0; margin: 0 0 8px; font-size: 24px; }
.privacy-panel p { margin: 0 0 16px; color: #FAF6F0; }
.privacy-notice { padding: 10px; border-left: 3px solid #E3C79A; background: rgba(255,255,255,.08); }
.privacy-categories { margin: 0 0 16px; padding: 0; border: 0; }
.privacy-categories legend { margin-bottom: 8px; font-weight: 600; }
.privacy-category { display: flex; gap: 10px; align-items: flex-start; padding: 10px 0; cursor: pointer; }
.privacy-category input { margin-top: 4px; width: 18px; height: 18px; accent-color: #E3C79A; }
.privacy-category strong, .privacy-category small { display: block; }
.privacy-category small { margin-top: 2px; color: #FAF6F0; }
.privacy-actions { display: flex; gap: 12px; flex-wrap: wrap; }
.privacy-action, .privacy-settings, .map-load {
  appearance: none; border: 1px solid #C9A063; border-radius: 3px; cursor: pointer;
  font: 600 14px/1.2 'Jost', sans-serif; padding: 12px 16px;
}
.privacy-action { flex: 1 1 180px; background: #FAF6F0; color: #2A2019; }
#privacy-accept-all { background: #C9A063; color: #2A2019; border-color: #C9A063; }
#privacy-accept-all:hover, #privacy-accept-all:focus-visible { background: #E3C79A; }
.privacy-save { background: transparent; color: #FAF6F0; }
.privacy-action:hover, .privacy-action:focus-visible { background: #E3C79A; color: #2A2019; }
.privacy-action:focus-visible, .privacy-settings:focus-visible, .map-load:focus-visible {
  outline: 3px solid #fff; outline-offset: 3px;
}
.privacy-settings { background: transparent; color: #FAF6F0; }
.privacy-policy-page > footer .privacy-settings { background: #2B4436; color: #FAF6F0; border-color: #2B4436; }
.privacy-policy-page > footer .privacy-settings:hover { background: #202B21; }
.privacy-policy-page > footer .privacy-settings:focus-visible { outline-color: #2B4436; }
.map-consent {
  min-height: 320px; padding: 32px; display: flex; flex-direction: column;
  justify-content: center; align-items: center; text-align: center; background: #F1E6D6;
}
.map-consent p { max-width: 480px; margin: 0 0 16px; color: #382C21; }
.map-consent a { text-decoration: underline; }
.map-load { background: #3E3025; color: #FAF6F0; margin-bottom: 14px; }
@media (max-width: 360px) {
  .privacy-panel {
    left: 8px; right: 8px; bottom: 8px; padding: 16px;
    max-height: calc(100vh - 16px); max-height: calc(100dvh - 16px);
  }
  .privacy-actions { gap: 8px; }
}

.privacy-panel .privacy-explanation { font-size: 13px; line-height: 1.5; }
.privacy-details { margin-top: 16px; }
.privacy-details summary { cursor: pointer; padding: 4px 0; text-decoration: underline; text-underline-offset: 3px; }
.privacy-details summary:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }
.privacy-details[open] summary { margin-bottom: 12px; }
.privacy-panel .privacy-links { margin: 14px 0 0; font-size: 13px; }
.privacy-links a { color: #FAF6F0; text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 600px) { .privacy-actions { flex-direction: column; gap: 8px; } .privacy-action { flex: none; width: 100%; } }
