.booking-form{display:grid;gap:clamp(var(--space-6),3vw,var(--space-10))}.booking-form__hp{position:absolute;inline-size:1px;block-size:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.booking-form__grid{display:grid;grid-template-columns:1fr;gap:clamp(var(--space-5),2.5vw,var(--space-8))}@media(min-width:720px){.booking-form__grid{grid-template-columns:1fr 1fr}}.booking-field--span-2{grid-column:1 / -1}.booking-field{display:grid;gap:var(--space-2)}.booking-field__label{font-family:var(--font-mono);font-size:var(--text-micro);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--text-muted)}.booking-field__input,.booking-field__select,.booking-field__textarea{font-family:var(--font-body);font-size:var(--text-body);line-height:var(--lh-body);color:var(--text-strong);background:transparent;border:0;border-block-end:1px solid var(--rule-strong);padding:var(--space-2) 0;border-radius:0;transition:border-color var(--d-fast) var(--ease-out)}.booking-field__input:focus-visible,.booking-field__select:focus-visible,.booking-field__textarea:focus-visible{outline:0;box-shadow:none;border-block-end-color:var(--accent);border-block-end-width:2px;padding-block-end:calc(var(--space-2) - 1px)}.booking-field__textarea{resize:vertical;min-block-size:7.5rem}.booking-field__select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--ink-65) 50%),linear-gradient(135deg,var(--ink-65) 50%,transparent 50%);background-position:calc(100% - 14px) calc(50% - 2px),calc(100% - 9px) calc(50% - 2px);background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-inline-end:var(--space-6)}.booking-field[aria-invalid=true] .booking-field__input,.booking-field__input[aria-invalid=true],.booking-field__select[aria-invalid=true],.booking-field__textarea[aria-invalid=true]{border-block-end-color:var(--accent)}.booking-field__hint{font-family:var(--font-mono);font-size:var(--text-micro);color:var(--text-muted);letter-spacing:var(--tracking-mono);margin:0;max-inline-size:none}.booking-field__error{font-family:var(--font-mono);font-size:var(--text-micro);color:var(--accent);letter-spacing:var(--tracking-mono);margin:0;max-inline-size:none}.booking-field__error:before{content:"Problem — ";font-weight:500}.booking-form__footer{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--space-4);padding-block-start:var(--space-4);border-block-start:1px solid var(--rule)}.booking-form__meta{font-family:var(--font-mono);font-size:var(--text-micro);letter-spacing:var(--tracking-mono);color:var(--text-muted);margin:0;max-inline-size:none}.booking-form__submit{display:inline-flex;align-items:baseline;gap:var(--space-2);padding-block:var(--space-3);padding-inline:0;font-family:var(--font-mono);font-size:var(--text-meta);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--accent);border-block-end:1.5px solid var(--accent);transition:color var(--d-fast) var(--ease-out),border-color var(--d-fast) var(--ease-out)}.booking-form__submit:hover,.booking-form__submit:focus-visible{color:var(--accent-hover);border-block-end-color:var(--accent-hover)}.booking-form__submit[disabled]{color:var(--text-muted);border-block-end-color:var(--text-muted);cursor:progress}.booking-form__submit-arrow{font-family:var(--font-display);font-size:1.1em;transition:transform var(--d-med) var(--ease-out)}.booking-form__submit:hover .booking-form__submit-arrow{transform:translate(4px)}.booking-confirmed,.booking-failed{display:grid;gap:var(--space-3);padding-block:var(--space-8);animation:pf-reveal var(--d-slow) var(--ease-out-quint) both}.booking-confirmed__lede,.booking-failed__lede{font-family:var(--font-display);font-size:var(--text-quote);color:var(--text-strong);margin:0;line-height:var(--lh-tight)}.booking-confirmed__body,.booking-failed__body{font-family:var(--font-body);font-size:var(--text-body);color:var(--text);margin:0}@keyframes pf-reveal{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.booking-confirmed,.booking-failed{animation:none}}
