.legal-notice, .privacy-summary, .park-map-notice {
  box-sizing: border-box;
  color: #283442;
  line-height: 1.5;
  overflow-wrap: anywhere;
}
.legal-notice { padding: .75rem 1rem; margin-block: 1rem; border-left: 3px solid #9b4a00; background: #fff5e6; font-size: .875rem; }
.legal-notice, .legal-pending { color: #761b00; }
.legal-pending { background: #fff0d4; font-size: .875em; }
.privacy-summary { padding: .75rem 1rem; margin-block: 1rem; border: 1px solid #dce3ea; border-radius: 10px; background: #f5f7fa; font-size: .875rem; text-align: left; }
.privacy-summary h3 { margin: 0; font-size: .9375rem; line-height: 1.4; }
.privacy-summary-intro { margin: .3rem 0 0; }
.privacy-summary summary { display: flex; align-items: center; gap: .4rem; width: fit-content; max-width: 100%; min-height: 44px; color: #004c9b; font-size: .8125rem; cursor: pointer; list-style: none; }
.privacy-summary summary::-webkit-details-marker { display: none; }
.privacy-summary summary:hover { text-decoration: underline; }
.privacy-summary-hide, .privacy-summary details[open] .privacy-summary-show { display: none; }
.privacy-summary details[open] .privacy-summary-hide { display: inline; }
.privacy-summary-indicator { flex-shrink: 0; }
.privacy-summary details[open] .privacy-summary-indicator { transform: rotate(180deg); }
.privacy-summary details[open] dl { padding-top: .75rem; border-top: 1px solid #dce3ea; }
.privacy-summary dl { display: grid; grid-template-columns: 7rem minmax(0, 1fr); gap: .4rem .75rem; margin: 0; }
.privacy-summary dt { font-weight: 600; }
.privacy-summary dd { margin: 0; }
.privacy-summary-more { margin: .75rem 0 0; }
.contact-help { font-size: .875rem; line-height: 1.5; color: #526171; margin-block: 0 1.25rem; }
.privacy-summary a, .privacy-panel a, .park-map-notice a { color: #004c9b; text-decoration: underline; }
.site-legal-links { display: flex; flex-wrap: wrap; gap: .75rem 1.5rem; padding: 1rem; }
.site-legal-links a, .site-legal-links button { color: #fff; text-decoration: underline; }
.site-legal-links button { background: transparent; border: 0; padding: 0; font: inherit; cursor: pointer; }
.site-legal-links a:focus-visible, .site-legal-links button:focus-visible,
.privacy-summary a:focus-visible, .privacy-summary summary:focus-visible, .privacy-panel a:focus-visible, .privacy-choice input:focus-visible,
.privacy-button:focus-visible, .park-map-notice a:focus-visible {
  outline: 3px solid #0071c1;
  outline-offset: 3px;
}
.site-legal-links a:focus-visible, .site-legal-links button:focus-visible { outline-color: #fff; }
[hidden] { display: none !important; }
.park-map { width: 100%; max-width: 600px; margin: 15px auto 0; }
.park-map iframe { display: block; border: 0; border-radius: 8px; }
.park-map-notice { padding: 1.25rem; border: 1px solid #dce3ea; border-radius: 12px; background: #f5f7fa; font-size: 1rem; text-align: left; }
.park-map-notice p { margin: 0 0 1rem; }
.park-map-location { line-height: 1.6; }
.park-map-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1rem; }
.park-map-actions a { display: inline-flex; align-items: center; min-height: 44px; font-size: .875rem; }
.park-map-notice .park-map-help { margin: 1rem 0 0; font-size: .8125rem; }
.privacy-panel { box-sizing: border-box; padding: 1.5rem; background: #fff; color: #283442; border: 1px solid #dce3ea; border-radius: 16px; font: inherit; font-size: .9375rem; line-height: 1.5; overflow-wrap: anywhere; box-shadow: 0 8px 32px rgb(20 36 56 / .16); }
.privacy-panel h2 { font-size: 1.25rem; line-height: 1.3; margin: 0 0 .75rem; }
.privacy-panel p { margin: 0 0 1rem; }
.privacy-banner { position: fixed; z-index: 1000; right: max(1.5rem, env(safe-area-inset-right)); bottom: max(1.5rem, env(safe-area-inset-bottom)); width: calc(100% - 3rem); max-width: 28rem; max-height: calc(100dvh - 3rem); overflow-y: auto; }
.privacy-policy-links { display: flex; flex-wrap: wrap; gap: .5rem 1rem; font-size: .8125rem; }
dialog.privacy-panel { width: calc(100% - 2rem); max-width: 36rem; max-height: calc(100dvh - 2rem); margin: auto; overflow-y: auto; }
#privacy-dialog::backdrop { background: rgb(20 36 56 / .55); }
.privacy-dialog-heading { display: flex; align-items: center; justify-content: space-between; gap: .75rem; margin-bottom: .75rem; }
.privacy-dialog-heading h2 { margin: 0; }
.privacy-dialog-heading .privacy-button { flex: 0 0 auto; padding-inline: .5rem; }
.privacy-category { margin-block: .75rem; padding: 1rem; border: 1px solid #dce3ea; border-radius: 10px; background: #f5f7fa; }
.privacy-category h3 { display: flex; flex-wrap: wrap; align-items: center; gap: .25rem .75rem; font-size: .9375rem; margin: 0 0 .5rem; }
.privacy-category p { margin: .5rem 0 0; font-size: .875rem; }
.privacy-category-status { font-size: .75rem; font-weight: 400; color: #526171; }
.privacy-dialog-help { font-size: .8125rem; }
.privacy-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem .75rem; }
.privacy-button { border: 1px solid #0056b3; border-radius: 8px; padding: .65rem 1rem; background: #0056b3; color: #fff; font: inherit; font-weight: 600; line-height: 1.3; cursor: pointer; min-height: 44px; }
.privacy-button:hover { background: #00458f; border-color: #00458f; }
.privacy-button-text { background: transparent; border-color: transparent; color: #004c9b; text-decoration: underline; font-weight: 400; }
.privacy-button-text:hover { background: #edf5ff; border-color: transparent; }
.privacy-actions .privacy-button-text, .privacy-button-secondary { grid-column: 1 / -1; }
.privacy-button-secondary { background: #fff; color: #004c9b; }
.privacy-button-secondary:hover { background: #edf5ff; }
.privacy-choice { display: flex; align-items: flex-start; gap: .75rem; cursor: pointer; }
.privacy-choice input { flex: 0 0 auto; width: 1.25rem; height: 1.25rem; margin: .1rem 0 0; accent-color: #0056b3; }
@media (max-width: 480px) {
  .privacy-banner { width: calc(100% - 1rem); right: max(.5rem, env(safe-area-inset-right)); bottom: max(.5rem, env(safe-area-inset-bottom)); max-height: calc(100dvh - 1rem); }
  .privacy-panel { padding: 1rem; }
  .privacy-panel h2 { font-size: 1.125rem; }
  .privacy-summary { padding: .75rem; }
  .privacy-summary dl { display: block; }
  .privacy-summary dt, .privacy-summary dd { display: inline; }
  .privacy-summary dt::after { content: ": "; }
  .privacy-summary dd::after { content: ""; display: block; margin-bottom: .4rem; }
  .park-map-notice { padding: 1rem; }
}
