/* consent.css — the analytics consent bar (track.js). Self-contained: it carries its own tokens so it renders the same on every
   page family (site.css, pub.css, flagship.css). Non-blocking: a card at the bottom edge, no overlay, no focus trap, no wall.
   Accept and decline are the same button, side by side. Colours: >= 4.5:1 in both themes (checked with axe). */
.consent {
  --c-bg: #ffffff; --c-t1: #1d1d1f; --c-t2: #515154; --c-line: rgba(0, 0, 0, .22); --c-hover: #f2f2f5; --c-focus: #0057c8;
  position: fixed;
  inset-inline: 12px;
  inset-block-end: 12px;
  z-index: 200;
  box-sizing: border-box;
  max-inline-size: 620px;
  margin-inline: auto;
  padding: 14px 16px 14px;
  background: var(--c-bg);
  color: var(--c-t1);
  border: 1px solid var(--c-line);
  border-radius: 14px;
  box-shadow: 0 10px 40px -8px rgba(0, 0, 0, .28);
  font: 400 .875rem/1.55 "Inter", "IBM Plex Sans Arabic", system-ui, -apple-system, "Segoe UI", Tahoma, Arial, sans-serif;
  text-align: start;
}
:root[data-theme="dark"] .consent { --c-bg: #1c1c1e; --c-t1: #f5f5f7; --c-t2: #b4b4ba; --c-line: rgba(255, 255, 255, .26); --c-hover: #2c2c2e; --c-focus: #64a8ff; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .consent { --c-bg: #1c1c1e; --c-t1: #f5f5f7; --c-t2: #b4b4ba; --c-line: rgba(255, 255, 255, .26); --c-hover: #2c2c2e; --c-focus: #64a8ff; }
}
.consent-t { margin: 0 0 4px; font-weight: 700; font-size: .9375rem; }
.consent-p { margin: 0 0 8px; color: var(--c-t2); }
.consent-now { margin: 0 0 8px; font-weight: 600; }
.consent-more { margin: 0 0 10px; color: var(--c-t2); }
.consent-more summary { cursor: pointer; color: var(--c-t1); text-decoration: underline; text-underline-offset: 3px; display: inline-block; padding-block: 2px; }
.consent-list { margin: 8px 0 0; padding-inline-start: 1.1em; max-block-size: 36vh; overflow: auto; }
.consent-list li { margin-block: 4px; }
.consent-pol { margin: 0 0 10px; }
.consent-pol a { color: var(--c-t1); text-decoration: underline; text-underline-offset: 3px; display: inline-block; padding-block: 2px; }
.consent-btns { display: flex; gap: 8px; flex-wrap: wrap; }
.consent-btn {
  flex: 1 1 140px;
  min-block-size: 44px;
  padding: 8px 14px;
  font: inherit;
  font-weight: 600;
  color: var(--c-t1);
  background: transparent;
  border: 1.5px solid var(--c-t1);
  border-radius: 10px;
  cursor: pointer;
}
.consent-btn:hover { background: var(--c-hover); }
.consent a:focus-visible, .consent button:focus-visible, .consent summary:focus-visible { outline: 3px solid var(--c-focus); outline-offset: 2px; }
.consent .vh { position: absolute; inline-size: 1px; block-size: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
/* the home page's sticky mobile booking bar lives at the bottom edge: sit above it */
@media (max-width: 767px) { body:has(.mobile-bar.is-visible) .consent { inset-block-end: 76px; } }
/* footer entry point */
.consent-reopen { font: inherit; color: inherit; background: none; border: 0; padding: 0; margin: 0; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
.consent-reopen:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; border-radius: 2px; }
.consent-reopen-wrap { margin: 12px 0 0; font-size: .875rem; text-align: center; }
@media print { .consent, .consent-reopen-wrap, .consent-reopen { display: none !important; } }
@media (prefers-reduced-motion: no-preference) { .consent { animation: consent-in .25s ease-out both; } @keyframes consent-in { from { opacity: 0; transform: translateY(8px); } } }
