/* Optional analytics choice (js/analytics.js) on the eight public pages.
   Nonblocking: a small card fixed to the bottom, no backdrop, no focus trap.
   Accept and decline share one style so neither is the easier choice. */

.ga-choice {
  position: fixed;
  left: 1rem;
  right: 1rem;
  bottom: 1rem;
  z-index: 130;
  max-width: 30rem;
  /* Never taller than the space below the site header, so the menu button and
     logo stay reachable even on very short or zoomed screens (the card scrolls
     inside instead). The choice is never forced. */
  max-height: calc(100vh - 7.5rem);
  max-height: calc(100dvh - 7.5rem);
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 1.1rem 1.2rem;
  background: var(--bg-soft);
  color: var(--text);
  border: 1px solid var(--line);
  border-radius: 0.9rem;
  box-shadow: 0 0.6rem 2rem rgba(0, 0, 0, 0.18);
  font-family: var(--font-sans);
  font-size: 0.95rem;
  line-height: 1.5;
}
.ga-choice[hidden], .ga-choice-spacer[hidden], .ga-choice-close[hidden] { display: none; }
.ga-choice-title {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 1.05rem;
  letter-spacing: -0.01em;
  line-height: 1.3;
}
.ga-choice-text { margin-top: 0.4rem; }
.ga-choice a { color: var(--text); text-decoration: underline; text-underline-offset: 0.18em; }
.ga-choice-status { margin-top: 0.4rem; color: var(--muted); }
.ga-choice-status:empty { display: none; }
.ga-choice-actions { display: flex; flex-wrap: wrap; gap: 0.6rem; margin-top: 0.9rem; }
.ga-choice-btn, .ga-choice-close {
  min-height: 2.75rem;
  padding: 0.4rem 1rem;
  font: inherit;
  font-weight: 500;
  color: var(--text);
  background: transparent;
  border: 1px solid var(--text);
  border-radius: 0.5rem;
  cursor: pointer;
}
.ga-choice-btn { flex: 1 1 9rem; }
.ga-choice-close { border-color: transparent; text-decoration: underline; text-underline-offset: 0.18em; }
.ga-choice-btn:hover { background: var(--text); color: var(--bg-soft); }
.ga-choice-btn:focus-visible, .ga-choice-close:focus-visible, .ga-choice a:focus-visible {
  outline: 2px solid var(--text);
  outline-offset: 2px;
}
.ga-choice-spacer { height: 10rem; }

/* Footer control, styled like the Privacy/Terms links beside it */
.ga-footer-btn {
  display: inline-flex;
  align-items: center;
  min-height: 2.75rem;
  padding: 0;
  font: inherit;
  color: inherit;
  background: none;
  border: 0;
  text-decoration: underline;
  text-underline-offset: 0.18em;
  cursor: pointer;
}
.bk-legal .ga-footer-btn { color: var(--text); }
.footer-bar .footer-legal .ga-footer-btn { color: #b8b8b8; text-decoration: none; }
.footer-bar .footer-legal .ga-footer-btn:hover,
.footer-bar .footer-legal .ga-footer-btn:focus-visible { color: #ebebeb; }
.bk-legal .ga-footer-btn:focus-visible { outline: 2px solid var(--text); outline-offset: 3px; }
.footer-bar .footer-legal .ga-footer-btn:focus-visible { outline: 2px solid #ebebeb; outline-offset: 3px; }

@media (min-width: 40rem) {
  .ga-choice { right: auto; }
}
/* Booking page wherever its action bar is pinned to the bottom (same 52em
   breakpoint as css/booking.css): the choice sits in the flow above the
   footer instead, so it can never cover a booking control. */
@media (max-width: 52em) {
  .ga-choice--booking {
    position: static;
    max-width: none;
    max-height: none;
    margin: 2rem var(--gutter) 0;
    box-shadow: none;
  }
}
/* One overlay at a time: while the phone menu is open the choice isn't shown
   (no hidden focus behind the menu), and it comes back unchanged when the
   menu closes. Nothing is chosen or saved by this. */
body.menu-open .ga-choice, body.menu-open .ga-choice-spacer { display: none !important; }
/* Local preview tools bar (never in production) stays usable too */
body.has-preview-bar .ga-choice { bottom: 4.5rem; }
@media print { .ga-choice, .ga-choice-spacer { display: none !important; } }
