/* Locally served consent UI. All choices have the same visual weight. */
.ll-consent-banner, .ll-consent-dialog {
  color: #222; background: #fff; border: 1px solid #cae6e8;
  font-family: var(--body, Inter, Arial, sans-serif); font-size: 1rem; line-height: 1.6;
  box-shadow: 0 12px 48px rgb(34 34 34 / 20%);
}
.ll-consent-banner {
  position: fixed; z-index: 1000; inset: auto 16px 16px;
  width: min(960px, calc(100% - 32px)); margin-inline: auto;
  padding: clamp(20px, 3vw, 28px); border-radius: 8px;
  max-height: calc(100dvh - 32px); overflow-y: auto;
}
.ll-consent-banner[hidden], .ll-consent-status[hidden] { display: none; }
.ll-consent-banner h2, .ll-consent-dialog h2 {
  margin: 0 0 12px; font: 600 1.4rem/1.3 var(--display, Manrope, Arial, sans-serif);
  letter-spacing: 0; color: #222;
}
.ll-consent-banner p, .ll-consent-dialog p { margin: 0 0 12px; }
.ll-consent-banner a, .ll-consent-dialog a { color: #222; text-decoration: underline; }
.ll-consent-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; }
.ll-consent-button {
  flex: 1 1 160px; min-height: 48px; padding: 10px 16px;
  font: 600 .95rem/1.4 var(--body, Inter, Arial, sans-serif);
  border: 2px solid #222; border-radius: 4px; color: #222; background: #fff; cursor: pointer;
}
.ll-consent-button:hover { color: #222; background: #e9f8f9; }
.ll-consent-button:focus-visible, .ll-consent-dialog input:focus-visible,
.ll-consent-banner a:focus-visible, .ll-consent-dialog a:focus-visible {
  outline: 3px solid #222; outline-offset: 3px;
}
.ll-consent-dialog {
  width: min(660px, calc(100% - 32px)); max-height: calc(100dvh - 32px);
  padding: clamp(20px, 3vw, 28px); border-radius: 8px; overflow-y: auto;
}
.ll-consent-dialog::backdrop { background: rgb(34 34 34 / 55%); }
.ll-consent-options { border: 0; padding: 0; margin: 16px 0; }
.ll-consent-options legend { font-weight: 600; margin-bottom: 8px; }
.ll-consent-option { border-top: 1px solid #cae6e8; padding-block: 14px; }
.ll-consent-option label { display: flex; gap: 12px; align-items: flex-start; font-weight: 600; cursor: pointer; }
.ll-consent-option input { accent-color: #222; width: 22px; height: 22px; flex: 0 0 22px; margin-top: 2px; }
.ll-consent-option p { font-size: .92rem; margin: 6px 0 0 34px; }
.ll-consent-note, .ll-consent-status { font-size: .9rem; }
.ll-consent-status { margin-top: 10px; padding: 10px; background: #e9f8f9; }
@media (max-width: 480px) {
  .ll-consent-actions { flex-direction: column; }
  .ll-consent-button { flex: auto; width: 100%; }
}
@media (prefers-reduced-motion: reduce) { .ll-consent-banner, .ll-consent-dialog { scroll-behavior: auto; } }

/* Footer link-style button that reopens the settings. */
.footer-bottom .consent-settings-button {
  padding: 0; border: 0; background: none; color: inherit; font: inherit;
  text-decoration: underline; text-underline-offset: .22em; cursor: pointer;
}
.footer-bottom .consent-settings-button:focus-visible { outline: 3px solid currentColor; outline-offset: 4px; }

/* Google Maps: static placeholder; the iframe is inserted only after media consent. */
.map-embed {
  position: relative; margin-block: 1.6rem; width: 100%; height: clamp(320px, 32vw, 480px);
  border-radius: var(--radius, 24px); overflow: hidden; background: var(--pale, #e9f8f9);
}
.map-embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.map-embed-placeholder {
  position: absolute; inset: 0; display: flex; flex-direction: column; align-items: flex-start;
  justify-content: center; gap: .9rem; padding: clamp(20px, 4vw, 36px);
  color: var(--ink, #0f172a); background: var(--pale, #e9f8f9);
}
.map-embed-placeholder[hidden] { display: none; }
.map-embed .map-embed-placeholder p { margin: 0; max-width: 34rem; color: var(--ink, #0f172a); font-size: .94rem; line-height: 1.6; }
.map-embed .map-embed-placeholder .map-embed-hint { font-weight: 600; }
.map-embed .map-embed-placeholder .map-embed-hint[hidden] { display: none; }
.map-embed-actions { display: flex; flex-wrap: wrap; gap: .6rem; }
/* Without JavaScript only the notice paragraph exists. */
.map-embed > p { margin: 0; padding: clamp(20px, 4vw, 36px); color: var(--ink, #0f172a); font-size: .94rem; line-height: 1.6; }
@media (max-width: 760px) { .map-embed { height: 340px; } }

/* Live region stays in the DOM and is only announced to assistive technology. */
.ll-consent-status {
  position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden;
  clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0; background: none;
}
