.enquiry {
  --space-1: 8px;
  --space-2: 16px;
  --space-3: 24px;
  --space-4: 32px;
  --enquiry-pad: var(--space-4);
  --muted: #646469;
  color: var(--ink);
  background: #fff;
  border: 0;
  border-radius: 32px;
  padding: 0;
  width: min(560px, calc(100% - 24px));
  max-width: calc(100% - 24px);
  height: min(736px, calc(100dvh - 24px));
  max-height: calc(100dvh - 24px);
  margin: auto;
  box-shadow: 0 8px 24px #00000014, 0 32px 96px #00000030;
  overflow: hidden;
  overscroll-behavior: contain;
  font: 16px/24px Inter, sans-serif;
}
.enquiry::backdrop { background: rgb(0 0 0 / 38%); backdrop-filter: blur(6px); }
.enquiry[hidden], .enquiry [hidden] { display: none; }
.enquiry__shell { height: 100%; padding: var(--enquiry-pad); display: flex; flex-direction: column; min-height: 0; }
.enquiry__top { display: flex; justify-content: flex-end; flex: none; margin-bottom: var(--space-2); }
.enquiry button, .enquiry__book { font: inherit; font-weight: 500; cursor: pointer; min-height: 48px; transition: background-color 160ms ease, transform 160ms ease; }
.enquiry__close { border: 0; border-radius: 50%; background: var(--surface); color: var(--ink); width: 48px; display: grid; place-items: center; flex-shrink: 0; }
.enquiry__close svg { width: 24px; height: 24px; }
.enquiry__viewport { margin-inline: calc(-1 * var(--enquiry-pad)); position: relative; flex: 1; min-height: 0; overflow: hidden; }
.enquiry__step { position: absolute; inset: 0; overflow-y: auto; overflow-x: hidden; overscroll-behavior: contain; padding: var(--space-1) var(--enquiry-pad); }
.enquiry__step--outgoing { pointer-events: none; }
.enquiry h2 { font-size: 32px; line-height: 40px; letter-spacing: -.96px; font-weight: 500; text-wrap: balance; margin: 0 0 var(--space-1); padding: 0; }
.enquiry p { text-wrap: pretty; }
.enquiry__intro { color: var(--muted); margin: 0; font-size: 16px; line-height: 24px; }
.enquiry__context { margin: 0 0 var(--space-3); padding: var(--space-2); border-radius: 16px; background: var(--surface); font-size: 14px; line-height: 24px; overflow-wrap: anywhere; }
.enquiry__context span { display: block; color: var(--muted); font-size: 12px; line-height: 16px; margin-bottom: var(--space-1); }
.enquiry__context strong { font-weight: 500; }
.enquiry__fields { display: grid; gap: 0; }
.enquiry__field { display: grid; grid-template-columns: minmax(0, 1fr); row-gap: var(--space-1); padding-bottom: var(--space-2); position: relative; }
.enquiry label, .enquiry legend { font-size: 14px; line-height: 24px; font-weight: 500; }
.enquiry input:not([type=radio]) { appearance: none; width: 100%; min-width: 0; height: 48px; padding: 0 var(--space-2); border: 1px solid #85858b; border-radius: 8px; background: #fff; color: var(--ink); font: inherit; font-size: 16px; }
.enquiry input::placeholder { color: var(--muted); }
.enquiry fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
.enquiry legend { margin-bottom: var(--space-2); }
.enquiry__choices { display: grid; gap: var(--space-2); }
.enquiry__choice { display: flex; align-items: center; gap: var(--space-2); min-height: 64px; border: 1px solid #85858b; border-radius: 16px; padding: var(--space-2); cursor: pointer; }
.enquiry__choice:has(:checked) { border-color: var(--ink); background: var(--surface); box-shadow: inset 0 0 0 1px var(--ink); }
.enquiry__choice input { accent-color: var(--ink); width: 16px; height: 16px; flex-shrink: 0; margin: 0; }
.enquiry__error { color: #ad2433; font-size: 12px; line-height: 16px; margin: 0; }
.enquiry__field .enquiry__error { position: absolute; inset-inline: 0; bottom: 0; min-height: 16px; }
.enquiry [aria-invalid=true] { border-color: #ad2433; }
#enquiry-choice-error:not(:empty), #enquiry-request-error:not(:empty) { padding-top: var(--space-1); }
#enquiry-request-error { flex: none; }
.enquiry__actions { display: flex; justify-content: center; gap: var(--space-2); flex: none; min-height: 48px; margin-top: var(--space-3); }
.enquiry__back { border: 0; padding: var(--space-1) var(--space-2); border-radius: 999px; color: var(--muted); background: transparent; }
.enquiry__next, .enquiry__book, .enquiry__done { display: inline-flex; align-items: center; justify-content: center; padding: var(--space-1) var(--space-3); border: 0; border-radius: 999px; background: var(--ink); color: #fff; text-decoration: none; margin-inline-start: 0; min-width: 160px; }
.enquiry button:disabled { opacity: .6; cursor: wait; }
.enquiry :focus-visible { outline: 2px solid #1f1f1f; outline-offset: 4px; }
.enquiry__title:focus { outline: none; }
.enquiry__booking { display: grid; gap: var(--space-3); }
.enquiry__booking p { margin: 0; color: var(--muted); text-align: center; }
html:has(.enquiry[open]) { overflow: hidden; scrollbar-gutter: stable; }
@media (hover: hover) { .enquiry__back:hover, .enquiry__close:hover { background: #e8e8eb; color: var(--ink); } .enquiry__next:hover, .enquiry__book:hover, .enquiry__done:hover { background: #3a3a3a; } }
@media (prefers-reduced-motion: no-preference) { .enquiry button:active, .enquiry__book:active { transform: scale(.97); } }
@media (max-width: 600px) { .enquiry { --enquiry-pad: var(--space-3); border-radius: 24px; } .enquiry h2 { font-size: 24px; line-height: 32px; letter-spacing: -.72px; } }

.enquiry__heading { display: flex; flex-direction: column; align-items: center; text-align: center; gap: var(--space-1); min-height: 96px; margin-bottom: var(--space-3); }   /* holds a two-line title plus intro without jumping between steps */
.enquiry__heading h2, .enquiry__heading .enquiry__intro { margin: 0; }
@media (max-width: 600px) { .enquiry__heading { min-height: 96px; } }


.enquiry {
  opacity: 0;
  transform: translateY(8px) scale(.97);
  transition: opacity 220ms var(--ease-out-cubic), transform 220ms var(--ease-out-cubic);
}
.enquiry::backdrop { opacity: 0; transition: opacity 220ms var(--ease-out-cubic); }
.enquiry.is-present { opacity: 1; transform: translateY(0) scale(1); }
.enquiry.is-present::backdrop { opacity: 1; }
.enquiry.is-closing { transform: translateY(4px) scale(.99); transition-duration: 160ms; }
.enquiry.is-closing::backdrop { transition-duration: 160ms; }
@media (prefers-reduced-motion: reduce) {
  .enquiry, .enquiry.is-closing { transform: none; transition-duration: 0s; }
  .enquiry::backdrop, .enquiry.is-closing::backdrop { transition-duration: 0s; }
}
