html, body, button, input, select, textarea { font-family: 'Be Vietnam Pro', sans-serif !important; }
.order-receipt-note { font-size:12px; line-height:1.7; color:#667f8a; padding:0 2px; margin:0 0 18px; }
.order-confirmation-link a { color:#175b4d; font-weight:700; text-underline-offset:4px; }
body.admin-bar .site-header { top:40px; }
@media (max-width:782px) { body.admin-bar .site-header { top:54px; } }

/* Shared dimensions for the expanded booking form. */
.hero .booking-card.is-expanded {
  --booking-choice-height:88px;
  --booking-choice-gap:10px;
  --booking-choice-inset:12px;
  --booking-panel-inset:16px;
  --booking-field-height:clamp(44px,6dvh,60px);
  --booking-action-height:clamp(44px,5.7dvh,58px);
}
.hero .booking-card.is-expanded .booking-route-preview {
  --booking-choice-height:88px;
  --booking-choice-gap:10px;
  --booking-choice-inset:12px;
}
.hero .booking-card.is-expanded .booking-route-preview .booking-route-metrics,
.hero .booking-card.is-expanded .booking-route-preview .booking-payment-options {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:var(--booking-choice-gap);
  align-items:stretch;
  box-sizing:border-box;
  width:100%;
  min-width:0;
}
.hero .booking-card.is-expanded .booking-route-preview .booking-route-metrics {
  margin:0;
  padding:0 var(--booking-choice-inset);
  border:1px solid transparent;
}
.hero .booking-card.is-expanded .booking-route-preview .booking-payment-methods {
  margin:0;
  padding:12px var(--booking-choice-inset);
  box-sizing:border-box;
}
.hero .booking-card.is-expanded .booking-route-preview .booking-route-metrics>div,
.hero .booking-card.is-expanded .booking-route-preview .booking-payment-options>button {
  box-sizing:border-box;
  grid-column:auto;
  width:100%;
  min-width:0;
  height:var(--booking-choice-height);
  min-height:var(--booking-choice-height);
  max-height:var(--booking-choice-height);
  padding:8px 10px;
  border-radius:12px;
}

/* An error message gets its own track rather than reducing control height. */
.hero .booking-card.is-expanded .booking-fields>.field-grid>label,
.hero .booking-card.is-expanded .booking-fields>.booking-identity-row:has(.sc-field-error)>label {
  display:grid;
  grid-template-columns:minmax(0,1fr);
  grid-template-rows:auto var(--booking-field-height) auto;
  align-content:start;
  align-items:stretch;
  gap:5px;
  min-width:0;
}
.hero .booking-card.is-expanded .booking-fields>.field-grid>label>span { grid-row:1; }
.hero .booking-card.is-expanded .booking-fields>.field-grid>label>input:not(.sc-control-native),
.hero .booking-card.is-expanded .booking-fields>.field-grid>label>select:not(.sc-control-native),
.hero .booking-card.is-expanded .booking-fields>.field-grid>label>.sc-control {
  grid-row:2;
  grid-column:1;
  flex:none;
  width:100%;
  min-width:0;
  box-sizing:border-box;
  height:var(--booking-field-height)!important;
  min-height:var(--booking-field-height)!important;
  max-height:var(--booking-field-height)!important;
  padding-block:0!important;
}
.hero .booking-card.is-expanded .booking-fields>.field-grid>label>.sc-field-error {
  grid-row:3;
  margin:0!important;
  min-height:18px;
  line-height:18px!important;
}
.hero .booking-card.is-expanded .booking-fields .booking-submit,
.hero .booking-card.is-expanded .booking-route-preview>.booking-map-link {
  box-sizing:border-box;
  height:var(--booking-action-height);
  min-height:var(--booking-action-height);
  max-height:var(--booking-action-height);
  margin-bottom:0;
}
@media (min-width:1024px) {
  .hero .booking-card.is-expanded>.booking-fields {
    box-sizing:border-box;
    padding-bottom:calc(var(--booking-panel-inset) + 1px);
  }
  .hero .booking-card.is-expanded .booking-route-preview {
    box-sizing:border-box;
    border-width:1px;
    padding:var(--booking-panel-inset);
    grid-template-rows:auto minmax(100px,1fr) auto auto var(--booking-action-height);
    align-content:stretch;
  }
  .hero .booking-card.is-expanded .booking-fields>.booking-submit { align-self:end; }
  .hero .booking-card.is-expanded .booking-route-preview>.booking-map-link { align-self:end; }
}
@media (min-width:1024px) and (max-height:820px) {
  .hero .booking-card.is-expanded { --booking-panel-inset:12px; }
  .hero .booking-card.is-expanded .booking-route-preview { --booking-choice-height:80px; }
}
@media (max-width:767px) {
  .hero .booking-card.is-expanded .booking-route-preview { --booking-choice-gap:8px;--booking-choice-inset:10px; }
}
@media (max-width:479px) {
  .hero .booking-card.is-expanded .booking-route-preview { --booking-choice-height:104px;--booking-choice-gap:6px;--booking-choice-inset:8px; }
  .hero .booking-card.is-expanded .booking-route-preview .booking-route-metrics>div,
  .hero .booking-card.is-expanded .booking-route-preview .booking-payment-options>button { padding:7px 6px; }
}
