/* Shared map consent: a desktop bar and a mobile card above the contact strip. */
.consent-banner,
.map-consent-placeholder { font: 400 14px/1.55 var(--utility); color: var(--ink); }
.consent-banner {
  position: fixed; inset: auto 0 0; z-index: 60;
  background: var(--paper); border-top: 1px solid rgba(26,25,23,.18);
  box-shadow: 0 -8px 32px rgba(26,25,23,.08);
  padding: 20px 24px; max-height: calc(100dvh - 90px); overflow-y: auto;
}
.consent-inner { max-width: 1160px; margin: 0 auto; display: flex; align-items: center; gap: 40px; }
.consent-copy { flex: 1; min-width: 0; }
.consent-copy h2 { font: 700 20px/1.3 "Bona Nova", serif; letter-spacing: -.01em; color: var(--ink); margin: 0 0 6px; }
.consent-copy p { margin: 0; }
.consent-details { margin-top: 7px; color: var(--muted); font-size: 13px; }
.consent-details summary { cursor: pointer; width: fit-content; text-decoration: underline; text-underline-offset: 3px; }
.consent-details p { margin-top: 10px; }
.consent-details a { color: inherit; }
.consent-actions { display: flex; flex-shrink: 0; gap: 10px; }
.consent-button {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 44px; padding: 10px 24px; border: 1.5px solid var(--blue);
  border-radius: 999px; background: var(--paper); color: var(--blue);
  font: 600 14.5px/1.4 var(--utility); cursor: pointer;
  transition: background .15s ease, color .15s ease;
}
.consent-button:hover { background: var(--blue); color: var(--paper); }
@media (prefers-reduced-motion: reduce) { .consent-button { transition: none; } }
.consent-banner :focus-visible,
.consent-map :focus-visible { outline: 2px solid var(--blue); outline-offset: 3px; }
.consent-map { display: block; }
.map-consent-placeholder {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 14px; min-height: 300px; padding: 28px; text-align: center; background: var(--paper-deep);
  border: 1px solid rgba(26,25,23,.14); border-radius: 14px;
}
.map-consent-title { font: 700 21px/1.3 "Bona Nova", serif; letter-spacing: -.01em; color: var(--ink); }
.map-consent-placeholder > a { color: var(--blue); text-underline-offset: 3px; }
.homepage .map-consent-placeholder { min-height: 380px; }
.consent-banner[hidden], .consent-map [hidden], [data-consent-open][hidden] { display: none !important; }
@media (max-width: 900px) {
  .consent-banner {
    inset: auto 12px calc(74px + env(safe-area-inset-bottom));
    border: 1px solid rgba(26,25,23,.18); border-radius: 12px; padding: 18px;
    max-height: calc(100dvh - 164px - env(safe-area-inset-bottom));
    box-shadow: 0 6px 28px rgba(26,25,23,.15);
  }
  .consent-inner { flex-direction: column; align-items: stretch; gap: 16px; }
  .consent-actions > button { flex: 1; padding-inline: 10px; }
  .homepage .map-consent-placeholder { min-height: 280px; }
}
