.reservation-form [hidden] {
  display:none !important;
}

.reservation-form {
  scroll-margin-top:88px;
  background:#fff;
  box-shadow:0 20px 44px rgba(15,36,54,.08);
  display:flex;
  flex-direction:column;
  gap:18px;
}
.reservation-form__header h3 { font-size:20px; color:#1F2328; margin-bottom:6px; }
.reservation-form__header p { margin:0; font-size:13.5px; line-height:1.55; color:#5F6368; }
.reservation-form__grid { display:grid; gap:14px; }
.reservation-form__grid--2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
.reservation-form__grid--3 { grid-template-columns:repeat(3,minmax(0,1fr)); }
.reservation-field { display:flex; flex-direction:column; gap:7px; min-width:0; }
.reservation-field label, .reservation-choice-group legend { font-size:13px; font-weight:700; color:var(--color-navy); }
.reservation-field input,
.reservation-field select,
.reservation-field textarea {
  width:100%;
  border:1.5px solid #dde6ea;
  border-radius:10px;
  background:#fff;
  color:#1F2328;
  font:inherit;
  font-size:16px;
  padding:12px 14px;
  min-height:48px;
}
.reservation-field textarea { min-height:96px; resize:vertical; }
.reservation-field input:focus,
.reservation-field select:focus,
.reservation-field textarea:focus { outline:2.5px solid #1055C8; outline-offset:1px; border-color:#1055C8; }
.reservation-field small { color:#5F6368; font-size:11.5px; line-height:1.45; }
.reservation-form__actions-row { display:flex; gap:16px; flex-wrap:wrap; }
.reservation-inline-btn { border:0; background:none; padding:0; color:#425462; font:inherit; font-size:13.5px; font-weight:700; cursor:pointer; }
.reservation-inline-btn:hover { color:#4C1D95; }
.reservation-choice-group { border:0; padding:0; margin:0; display:flex; align-items:center; gap:18px; flex-wrap:wrap; }
.reservation-choice-group legend { width:100%; margin-bottom:1px; }
.reservation-choice-group label { display:flex; align-items:center; gap:7px; font-size:14px; font-weight:600; color:#1F2328; }
.reservation-choice-group input { width:18px; height:18px; accent-color:#4C1D95; }
.reservation-consent { display:flex; gap:10px; align-items:flex-start; font-size:12.5px; line-height:1.5; color:#444B54; }
.reservation-consent input { margin-top:3px; flex:0 0 auto; }
.reservation-consent a { color:#1055C8; font-weight:700; }
.reservation-submit { width:100%; padding:16px; border:0; cursor:pointer; }
.reservation-submit:disabled { opacity:.65; cursor:wait; }
.reservation-status { padding:13px 15px; border-radius:10px; font-size:13.5px; line-height:1.55; font-weight:600; }
.reservation-status--success { background:#eaf7ee; color:#17633a; border:1px solid #bde3c8; }
.reservation-status--error { background:#fff0f0; color:#8b1e1e; border:1px solid #efc1c1; }
.reservation-errors { padding:18px; border:2px solid #b42318; border-radius:12px; background:#fff6f5; color:#8b1e1e; font-size:14px; line-height:1.6; scroll-margin-top:100px; }
.reservation-errors p { margin:0 0 8px; font-weight:700; }
.reservation-errors ul { margin:0; padding-left:20px; }
.reservation-errors a { color:inherit; text-decoration:underline; text-underline-offset:3px; }
.reservation-errors:focus { outline:3px solid #1055C8; outline-offset:3px; }
.reservation-field [aria-invalid="true"] { border-color:#b42318; }
.reservation-form__note { margin:0; color:#5F6368; text-align:center; font-size:12px; line-height:1.5; }
.reservation-honeypot { position:absolute !important; left:-9999px !important; width:1px !important; height:1px !important; overflow:hidden !important; }
.hero-intro { grid-column:1; grid-row:1; }
.hero-form-col { grid-column:2; grid-row:1 / span 2; }
.hero-copy { grid-column:1; grid-row:2; }
@media (max-width:960px) {
  .hero-intro,.hero-form-col,.hero-copy { grid-column:auto !important; grid-row:auto !important; }
  .hero-intro { order:1; }
  .hero-form-col { order:2; }
  .hero-copy { order:3; }
}
@media (max-width:720px) {
  .reservation-form__grid--2,.reservation-form__grid--3 { grid-template-columns:1fr; }
}


.reservation-autocomplete {
  position:relative;
}

.reservation-suggestions {
  position:absolute;
  top:calc(100% + 6px);
  left:0;
  right:0;
  z-index:80;
  max-height:280px;
  overflow-x:hidden;
  overflow-y:auto;
  border:1px solid #DADCE0;
  border-radius:12px;
  background:#fff;
  box-shadow:0 16px 40px rgba(0,0,0,.16);
}

.reservation-suggestion {
  display:flex;
  flex-direction:column;
  width:100%;
  gap:3px;
  padding:12px 14px;
  border:0;
  border-bottom:1px solid #EEF1F4;
  background:#fff;
  text-align:left;
  font:inherit;
  cursor:pointer;
}

.reservation-suggestion:last-child {
  border-bottom:0;
}

.reservation-suggestion:hover,
.reservation-suggestion.is-active {
  background:#EAF1FC;
}

.reservation-suggestion__main {
  font-size:14px;
  font-weight:700;
  color:#1F2328;
}

.reservation-suggestion__secondary {
  font-size:12.5px;
  line-height:1.4;
  color:#6B7280;
}


.reservation-estimate{margin:20px 0;padding:20px;border:1px solid #d4eaf3;border-radius:14px;background:#f2fbff}.reservation-estimate h3{margin:0 0 8px;color:#07111e;font-size:17px}.reservation-estimate p{margin:8px 0 0;color:#455568;font-size:13px;line-height:1.6}.reservation-estimate .reservation-estimate__price{color:#07111e;font-size:22px;font-weight:700}

.reservation-code { display:grid; gap:10px; margin-top:12px; }
.reservation-code label { font-weight:600; font-size:14px; color:#1F2328; }
.reservation-code__row { display:flex; gap:10px; flex-wrap:wrap; }
.reservation-code__row input { flex:1 1 140px; min-width:0; font-size:20px; letter-spacing:4px; padding:10px 12px; border:1px solid #DADCE0; border-radius:10px; }
.reservation-code__resend { justify-self:start; background:none; border:0; padding:4px 0; color:#1055C8; text-decoration:underline; cursor:pointer; font-size:14px; }
.reservation-code__resend:disabled, .reservation-code__confirm:disabled { opacity:.6; cursor:default; }
