/* Shared form language for every booking screen and its contact dialog.
   Component styles define structure; this file owns typography and controls. */
body.process-page {
  --form-ink: #071a34;
  --form-muted: #677588;
  --form-border: #d5dde7;
  --form-surface: #fbfcfd;
  --form-panel: #f6f8fa;
  --form-accent: #d59b24;
  --form-radius: 9px;
  --form-gap: 20px;
  --form-control-height: 50px;
  --form-button-height: 44px;
  --form-button-min-width: 112px;
  --form-body-size: 16px;
  --form-label-size: 14px;
  --form-help-size: 13px;
  --form-heading-size: clamp(20px, 2.5vw, 24px);
  --form-content-padding: 32px 36px;
  font-family: "Manrope", sans-serif;
  color: var(--form-ink);
}
.process-page :is(.booking-card-content, .flight-contact-form) {
  font-size: var(--form-body-size);
  line-height: 1.6;
}
.process-page .booking-card-content { padding: var(--form-content-padding); }
.process-page :is(.flow-heading h1, .service-choice-shell .flow-heading h1, .flight-contact-form h2) {
  margin: 0 0 6px;
  font-family: inherit;
  font-size: var(--form-heading-size);
  font-weight: 800;
  line-height: 1.25;
  letter-spacing: -.025em;
}
.process-page .booking-card-content .flow-heading {
  margin: 0 0 24px;
  padding: 0 0 24px;
  border-bottom: 1px solid #e8ecf1;
}
.process-page :is(.flow-heading > p:last-child, .flight-contact-intro) {
  margin: 0;
  max-width: 100%;
  color: var(--form-muted);
  font-size: var(--form-body-size);
  font-weight: 400;
  line-height: 1.6;
}
.process-page :is(.flow-form, .flight-contact-form) {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--form-gap);
}
.process-page :is(.flow-form, .flight-contact-form) > .full { grid-column: 1 / -1; }
.process-page :is(.flow-form, .flight-contact-form) label,
.process-page :is(.birth-date-field, .place-schedule) > legend {
  color: #344154;
  font-size: var(--form-label-size);
  font-weight: 600;
  line-height: 1.5;
}
.process-page :is(.flow-form, .flight-contact-form) label:not(.flight-choice):not(.luggage-eligibility) {
  display: grid;
  gap: 8px;
  min-width: 0;
}
.process-page .airport-picker { gap: 8px; }
.process-page :is(.flow-form, .flight-contact-form) :is(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]), select, textarea) {
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  min-height: var(--form-control-height);
  height: auto;
  padding: 12px 14px;
  border: 1px solid var(--form-border);
  border-radius: var(--form-radius);
  background: var(--form-surface);
  color: var(--form-ink);
  font-family: inherit;
  font-size: var(--form-body-size);
  font-weight: 400;
  line-height: 1.5;
  box-shadow: none;
}
.process-page :is(.flow-form, .flight-contact-form) textarea { min-height: 120px; resize: vertical; }
.process-page :is(.flow-form, .flight-contact-form) :is(input, textarea)::placeholder { color: #7c8796; opacity: 1; }
.process-page :is(.flow-form, .flight-contact-form) :is(input, select, textarea):focus {
  outline: none;
  border-color: var(--form-accent);
  box-shadow: 0 0 0 3px rgb(213 155 36 / 16%);
}
.process-page :is(.flow-form, .flight-contact-form) :is(input, select, textarea):is(:disabled, [readonly]) {
  color: var(--form-muted);
  background: #f0f3f6;
  border-color: #e1e6ee;
}
.process-page :is(.flow-form, .flight-contact-form) :is(input, select, textarea):disabled { cursor: not-allowed; }
.process-page input:is([type="checkbox"], [type="radio"]) {
  flex-shrink: 0;
  width: 18px;
  height: 18px;
  min-height: 18px;
  padding: 0;
  accent-color: var(--form-accent);
}
.process-page :is(.flight-field-help, .location-finder-status, .flight-lookup-status, .customer-account-status,
  .flight-contact-privacy, .place-schedule p, .pickup-window-choice-help, .flight-selection small,
  .service-choice-content small, .flight-choice small, .airport-options small, .verification-item span) {
  font-size: var(--form-help-size);
  font-weight: 400;
  line-height: 1.5;
}
.process-page :is(.flight-field-help, .location-finder-status, .flight-contact-privacy, .place-schedule p) { color: var(--form-muted); }
.process-page :is(.flow-card, .flight-contact-form) :is(.button, .flow-back-button) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  box-sizing: border-box;
  width: fit-content;
  max-width: 100%;
  min-width: var(--form-button-min-width);
  min-height: var(--form-button-height);
  padding: 10px 18px;
  border-width: 1px;
  border-style: solid;
  border-radius: var(--form-radius);
  font-family: inherit;
  font-size: var(--form-label-size);
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0;
  text-transform: none;
  text-align: center;
  text-decoration: none;
  box-shadow: none;
  transition: background-color .15s, border-color .15s;
}
.process-page :is(.flow-card, .flight-contact-form) :is(.button, .flow-back-button):hover { transform: none; box-shadow: none; }
.process-page :is(.button, .flow-back-button, .flight-contact-link, .location-suggestions button, .airport-options button):focus-visible {
  outline: 2px solid var(--form-accent);
  outline-offset: 3px;
}
.process-page :is(.booking-form-actions, .flow-bottom-actions, .recap-actions) {
  display: flex;
  grid-column: 1 / -1;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
  width: 100%;
  margin: 8px 0 0;
  padding: 0;
  border-top: 0;
}
.process-page :is(.booking-form-actions, .flow-bottom-actions, .recap-actions) > :is(.button, .flow-back-button) {
  width: auto;
  min-width: var(--form-button-min-width);
  margin: 0;
}
.process-page :is(.booking-form-actions, .flow-bottom-actions, .recap-actions) > .button:last-child { margin-left: 0; min-width: var(--form-button-min-width); }
.process-page .flow-form > button[type="submit"] { grid-column: 1 / -1; justify-self: end; width: auto; min-width: var(--form-button-min-width); margin: 0; }
.process-page :is(.service-choice-content strong, .flight-results h2, .verification-result h3,
  .luggage-offer strong, .pickup-option-instruction > strong, .confirmation-ticket-option > strong) {
  font-size: 18px;
  font-weight: 600;
  line-height: 1.4;
}
.process-page :is(.service-choice-content > span:not(.service-choice-icon), .luggage-offer p,
  .verification-result p, .pickup-option-instruction p, .confirmation-ticket-option p,
  .qr-instruction, .qr-security-warning p, .recap-list dd, .verification-item strong,
  .payment-choice strong, .luggage-total span, .payment-total, .pickup-reminder-title,
  .pickup-availability-confirm, .pickup-availability-confirmation, .flight-booking-cutoff) {
  font-size: var(--form-body-size);
  line-height: 1.6;
}
.process-page :is(.flow-review, .destination-pickup-summary, .flight-selection, .verification-item,
  .luggage-total, .payment-method, .place-schedule, .pickup-timing-result) {
  padding: 16px;
  border: 1px solid #e1e6ee;
  border-radius: var(--form-radius);
  background: var(--form-panel);
  box-shadow: none;
}
.process-page :is(.service-choices, .service-choice-form) { gap: var(--form-gap); }
.process-page .booking-card-content .service-choice-form { margin-top: 0; }
.process-page :is(.service-choice, .flight-picker .flight-choice) { padding: 20px; border-radius: var(--form-radius); }
.process-page :is(.service-choice, .flight-picker .flight-choice):has(input:checked) {
  border-color: var(--form-accent);
  background: #fff9e9;
  box-shadow: none;
}
.process-page .recap-list { margin: 0; }
.process-page .recap-list > div { padding-block: 16px; }
.process-page :is(.recap-list dt, .confirmation-pickup-info dt) { color: var(--form-muted); font-size: var(--form-label-size); line-height: 1.5; }
.process-page :is(.luggage-total strong, .payment-total strong, .recap-list .recap-total dd, .recap-total dd strong) {
  font-size: 24px;
  font-weight: 700;
  line-height: 1.3;
}
.process-page :is(.airport-options, .location-suggestions) { border-color: var(--form-border); border-radius: var(--form-radius); }
.process-page :is(.airport-options, .location-suggestions) button { padding: 12px 14px; font-family: inherit; font-size: var(--form-body-size); line-height: 1.5; }
.process-page .flight-contact-form { padding: var(--form-content-padding); }
.process-page [hidden] { display: none !important; }
@media (max-width: 640px) {
  body.process-page { --form-content-padding: 24px 19px; --form-gap: 18px; }
  .process-page :is(.flow-form, .flight-contact-form) { grid-template-columns: minmax(0, 1fr); }
  .process-page :is(.booking-form-actions, .flow-bottom-actions, .recap-actions) { flex-direction: row; flex-wrap: wrap; align-items: center; }
  .process-page :is(.booking-form-actions, .flow-bottom-actions, .recap-actions) > :is(.button, .flow-back-button),
  .process-page .flow-form > button[type="submit"] { width: fit-content; min-width: var(--form-button-min-width); margin: 0; }
  .process-page .birth-date-selectors { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
  .process-page .birth-date-selectors select { padding-inline: 8px; }
}

/* Destination choices follow the heading without a divider. */
.process-page .service-choice-shell .booking-card-content > .flow-heading {
  border-bottom: 0;
  padding-bottom: 0;
}

.process-page .booking-card-content > .flow-heading {
  text-align: center;
}

/* Location action belongs to the address control, not a separate form row. */
.process-page .pickup-address-field { display:grid; gap:8px; min-width:0; z-index:30; }
.process-page .pickup-address-control { position:relative; min-width:0; --location-action-width:144px; }
.process-page .pickup-address-control #pickupLocation { padding-inline-end:calc(var(--location-action-width) + 16px); }
.process-page .pickup-address-control .location-inline-button {
  position:absolute;
  inset-inline-end:5px;
  top:5px;
  width:var(--location-action-width);
  height:40px;
  padding:0 10px;
  border:0;
  border-radius:6px;
  background:#f2eee5;
  color:var(--form-ink);
  font:600 12px/1.4 var(--site-font);
  white-space:nowrap;
  cursor:pointer;
}
.process-page .pickup-address-control .location-inline-button:hover { background:#eae3d5; }
.process-page .pickup-address-control .location-inline-button:focus-visible { outline:2px solid var(--form-accent); outline-offset:1px; }
.process-page .pickup-address-control .location-inline-button:disabled { color:var(--form-muted); cursor:wait; }
.process-page .pickup-address-field .location-finder-status:empty { display:none; }
.process-page .pickup-address-field #locationStatus { margin:0; }
@media(max-width:640px) {
  .process-page .pickup-address-control { --location-action-width:136px; }
}

/* Departure and arrival read as one route, with shared guidance below. */
.process-page .flight-route-row {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  align-items:start;
  gap:12px var(--form-gap);
  min-width:0;
}
.process-page .flight-route-row > label { align-content:start; }
.process-page .flight-route-row > .full { grid-column:1 / -1; }
.process-page .flight-route-row #destinationHelp { margin:0; }
.process-page .flight-route-row :is(select,input) { text-overflow:ellipsis; }
@media(max-width:640px) {
  .process-page .flight-route-row { column-gap:12px; }
}

.process-page .location-inline-button > span { margin-inline-end:3px; font-size:16px; vertical-align:-1px; }

.process-page .flight-picker .flight-booking-cutoff {
  padding: 8px 12px;
  margin: 0;
}
/* Reset inherited accordion spacing inside the compact booking help. */
.process-page .flight-picker .flight-booking-cutoff > summary {
  padding: 0;
  margin: 0;
}
.process-page .flight-picker .flight-booking-cutoff[open] > summary {
  margin-bottom: 8px;
}
.process-page .flight-picker .flight-booking-cutoff p {
  padding: 0;
}

/* Compact flight results share the form's selection and action language. */
.process-page .flight-result-row {
  border:1px solid var(--form-border);
  border-radius:var(--form-radius);
  background:var(--form-surface);
}
.process-page .flight-result-row:has(input:checked) { border-color:var(--form-accent); background:#fff9e9; }
.process-page .flight-result-row:has(input:focus-visible) { outline:2px solid var(--form-accent); outline-offset:3px; }
.process-page .flight-result-row .flight-choice {
  display:flex;
  align-items:center;
  gap:12px;
  padding:14px 16px;
  border:0;
  border-radius:var(--form-radius);
  background:transparent;
  box-shadow:none;
  outline:none;
}
.process-page .flight-result-row .flight-choice-body { gap:2px; }
.process-page .flight-result-row .flight-choice-body>strong { justify-content:flex-start; gap:8px; font-size:14px; }
.process-page .flight-result-row .flight-choice input { width:18px; height:18px; min-height:18px; margin:0; accent-color:var(--form-accent); }
.process-page .flight-row-times { flex-shrink:0; font-size:14px; font-weight:600; white-space:nowrap; }
.process-page .flight-picker .flight-codeshares { margin:0; padding:0 16px 10px 46px; border:0; background:transparent; }
.process-page .flight-codeshares summary { padding:0; font-size:var(--form-help-size); font-weight:400; color:var(--form-muted); }
.process-page .flight-codeshares p { padding:0; margin:6px 0 0; font-size:var(--form-help-size); }
.process-page .flight-picker .pickup-timing-result { font-size:var(--form-help-size); line-height:1.6; padding:12px 14px; }
.process-page #flightActions { margin-top:0; }
@media(max-width:440px) {
  .process-page .flight-result-row .flight-choice { display:grid; grid-template-columns:18px minmax(0,1fr); gap:8px 10px; padding:12px; }
  .process-page .flight-row-times { grid-column:2; }
}

/* Flight choices scroll inside a native modal; only the chosen flight stays on-card. */
.process-page .flight-results-dialog {
  width:min(var(--flight-dialog-width,840px),calc(100% - 24px));
  max-width:840px;
  box-sizing:border-box;
  max-height: min(720px,80dvh);
  margin:auto;
  padding:var(--form-content-padding);
  overflow:auto;
  border:1px solid var(--form-border);
  border-radius:18px;
  background:#fff;
  color:var(--form-ink);
  box-shadow:0 24px 80px rgb(7 26 52 / 20%);
}
.process-page .flight-results-dialog::backdrop { background:rgb(7 26 52 / 40%); }
.process-page .flight-dialog-header { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-bottom:8px; }
.process-page .flight-dialog-header h2 { margin:0; font-size:20px; font-weight:800; line-height:1.3; }
.process-page .flight-dialog-close { flex:0 0 36px; width:36px; height:36px; padding:0; border:0; border-radius:8px; background:#f3f5f7; color:var(--form-ink); font:24px/1 var(--site-font); cursor:pointer; }
.process-page .flight-dialog-close:focus-visible { outline:2px solid var(--form-accent); outline-offset:2px; }
.process-page .selected-flight-summary { padding:12px 14px; border:1px solid var(--form-border); border-radius:var(--form-radius); background:var(--form-panel); font-size:14px; font-weight:600; }
.process-page #viewFlights { justify-self:start; text-align:left; font-size:13px; font-weight:600; }
body.process-page:has(.flight-results-dialog[open]) { overflow:hidden; }
@media(max-width:640px) { .process-page .flight-results-dialog { padding:18px; } }

/* Departure time is the primary information in every flight choice. */
.process-page .flight-results-dialog #flightOptions { margin:16px 0; gap:6px; }
.process-page .flight-results-dialog .flight-choice {
  display:grid;
  grid-template-columns:18px minmax(0,1fr);
  gap:12px;
  align-items:center;
  padding:10px 14px;
}
.process-page .flight-row-content { display:grid; gap:2px; min-width:0; }
.process-page :is(.flight-results-dialog, .selected-flight-summary) .flight-row-times {
  grid-column:auto;
  font-size:20px;
  font-weight:800;
  line-height:1.2;
  text-align:left;
  font-variant-numeric:tabular-nums;
  color:var(--form-ink);
}
.process-page .flight-row-details { display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 10px; }
.process-page .flight-row-airline { font-size:14px; font-weight:500; overflow-wrap:anywhere; }
.process-page .flight-row-number { font-size:13px; font-weight:400; color:var(--form-muted); }
@media(max-width:640px) {
  .process-page .flight-results-dialog { padding:var(--form-content-padding); border-radius:14px; }
  .process-page .flight-results-dialog .flight-choice { padding:10px 12px; gap:10px; }
}

/* Keep the popup frame stable while flight choices scroll independently. */
.process-page .flight-results-dialog {
  height: min(640px, 85dvh);
  max-height: 85dvh;
  overflow: hidden;
}
.process-page .flight-results-dialog[open] {
  display: flex;
  flex-direction: column;
}
.process-page .flight-results-dialog > :not(#flightOptions) { flex-shrink: 0; }
.process-page .flight-results-dialog #flightOptions {
  flex: 1 1 0;
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
  align-content: start;
  padding: 4px;
}

.process-page .flight-dialog-route {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
  align-items:center;
  gap:16px;
  margin:8px 0 16px;
  padding:12px 14px;
  border-radius:var(--form-radius);
  background:var(--form-panel);
}
.process-page .flight-dialog-route > div { display:grid; gap:3px; min-width:0; }
.process-page .flight-dialog-route > div > span { color:var(--form-muted); font-size:12px; }
.process-page .flight-dialog-route strong { font-size:14px; font-weight:600; line-height:1.5; overflow-wrap:anywhere; }
.process-page .flight-route-arrow { color:var(--form-muted); }
@media(max-width:440px) {
  .process-page .flight-dialog-route { gap:10px; padding:10px; }
  .process-page .flight-dialog-route strong { font-size:12px; }
}

.process-page .flight-search-fields {
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:var(--form-gap);
  min-width:0;
}
.process-page .flight-search-fields > button[type="submit"] {
  justify-self:end;
  width:fit-content;
  margin:0;
}

/* Secondary flight action stays compact and distinct from Continue. */
:root body.process-page .booking-card #viewFlights:not(:disabled),
:root body.process-page .booking-card #viewFlights:not(:disabled):hover {
  width:fit-content;
  justify-self:start;
  padding:10px 18px;
  border:1px solid var(--form-border) !important;
  background:#eef1f5 !important;
  color:#344154 !important;
  text-decoration:none;
  filter:none !important;
}
:root body.process-page .booking-card #viewFlights:not(:disabled):hover { background:#e2e7ee !important; }

.process-page .selected-flight-summary {
  display:grid;
  grid-template-columns:18px minmax(0,1fr);
  align-items:center;
  gap:12px;
  padding:10px 14px;
  border:1px solid var(--form-accent);
  border-radius:var(--form-radius);
  background:#fff9e9;
}
.process-page .selected-flight-check {
  display:grid;
  place-items:center;
  width:18px;
  height:18px;
  border-radius:50%;
  background:var(--form-accent);
  color:var(--form-ink);
  font-size:12px;
  font-weight:700;
  line-height:1;
}

/* Loading/empty states must not move the route fields or the date below. */
.process-page .flight-route-row #airportStatus {
  display:block;
  min-height:20px;
  margin:0;
  line-height:20px;
}
.process-page .flight-route-row .airport-options {
  top:80px;
  max-height:min(300px,45dvh);
  overscroll-behavior:contain;
}

/* Compact pickup details with the same typography as the rest of the form. */
.process-page .flight-picker .pickup-window-panel {
  padding:16px 18px;
  border:1px solid #e1e7ed;
  border-radius:var(--form-radius);
  background:#f8fafc;
  color:var(--form-ink);
  text-align:left;
}
.process-page .pickup-window-heading { margin-bottom:10px; }
.process-page .pickup-window-heading h2 { margin:0; color:var(--form-muted); font-size:12px; font-weight:600; line-height:1.5; letter-spacing:0; }
.process-page .pickup-window-detail { display:grid; gap:4px; }
.process-page .pickup-window-date { font-size:14px; font-weight:600; line-height:1.5; }
.process-page .pickup-window-time-row { display:flex; align-items:baseline; flex-wrap:wrap; gap:4px 10px; }
.process-page .pickup-window-time { font-size:20px; font-weight:700; line-height:1.4; letter-spacing:0; font-variant-numeric:tabular-nums; }
.process-page .pickup-window-zone { color:var(--form-muted); font-size:12px; font-weight:400; }
.process-page .pickup-window-day { font-size:12px; font-weight:500; color:#536174; }
.process-page .pickup-window-or { display:block; margin:10px 0; font-size:12px; color:var(--form-muted); }
.process-page .pickup-window-note { margin:12px 0 0; padding:0; font-size:12px; line-height:1.5; color:var(--form-muted); }
@media(max-width:640px) {
  .process-page .flight-picker .pickup-window-panel { padding:14px 16px; }
}

/* The action occupies the right column of the selected flight, never a full row. */
.process-page .selected-flight-summary { grid-template-columns:18px minmax(0,1fr) auto; }
:root body.process-page .selected-flight-summary #viewFlights:not(:disabled) {
  grid-column:3;
  grid-row:1;
  justify-self:end;
  align-self:center;
  margin:0;
}
@media(max-width:440px) {
  .process-page .selected-flight-summary { grid-template-columns:minmax(0,1fr) auto; gap:10px; }
  .process-page .selected-flight-summary .selected-flight-check { display:none; }
  :root body.process-page .selected-flight-summary #viewFlights:not(:disabled) {
    grid-column:2;
    grid-row:1;
    min-width:0;
    padding:8px 12px;
    margin:0;
  }
}

.process-page .flow-form > .booking-form-actions { margin-top:0; }

.process-page .service-choice-content > strong { font-weight:700; }

.process-page .selected-flight-date { font-size:14px; font-weight:600; line-height:1.5; color:var(--form-ink); }

.process-page .selected-flight-summary { padding-top:6px; }
.process-page .selected-flight-summary .flight-row-content { margin:0; padding:0; align-content:start; }
.process-page .selected-flight-date { margin:0; padding:0; }

/* Keep the departure date close to the route fields and their guidance. */
.process-page .flight-search-fields { row-gap:10px; }
.process-page .flight-route-row #airportStatus {
  position:absolute;
  top:100%;
  inset-inline:0;
  margin-top:2px;
  min-height:0;
  background:#fff;
  z-index:2;
}
.process-page .flight-route-row #airportStatus:empty { display:none; }

.process-page .flight-route-row #destinationHelp { font-size:11px; line-height:1.4; }

/* Headings use whitespace rather than divider lines on every booking screen. */
.process-page .booking-card-content > .flow-heading {
  border-bottom: 0;
  padding-bottom: 0;
}

.process-page .pickup-window-heading h2 {
  display:inline-block;
  padding:4px 10px;
  border-radius:999px;
  background:#e4edf7;
  color:#344e6a;
  font-size:12px;
  font-weight:600;
}
.process-page .pickup-window-note {
  display:flex;
  align-items:flex-start;
  gap:8px;
  margin-top:14px;
  padding:10px 12px;
  border-radius:7px;
  background:#fff1f0;
  border:0;
  color:#8a403b;
  font-size:13px;
  line-height:1.5;
}
.process-page .pickup-window-note strong { font-weight:700; }
.process-page .pickup-note-icon {
  display:grid;
  place-items:center;
  flex:0 0 16px;
  width:16px;
  height:16px;
  margin-top:2px;
  border:1px solid currentColor;
  border-radius:50%;
  font-size:11px;
  font-weight:700;
  line-height:1;
}

/* Calendar date sits beside the pickup window, with the full date accessible. */
.process-page .pickup-window-detail { grid-template-columns:60px minmax(0,1fr); align-items:center; gap:14px; }
.process-page .pickup-window-info { display:grid; gap:3px; min-width:0; }
.process-page .pickup-calendar {
  display:grid;
  justify-items:center;
  overflow:hidden;
  border:1px solid #d6e0eb;
  border-radius:8px;
  background:#fff;
  text-align:center;
  line-height:1.2;
}
.process-page .pickup-calendar-month { width:100%; padding:4px 6px; background:#e4edf7; color:#344e6a; font-size:11px; font-weight:700; text-transform:uppercase; }
.process-page .pickup-calendar-day { padding-top:4px; font-size:24px; font-weight:700; font-variant-numeric:tabular-nums; }
.process-page .pickup-calendar-year { padding:2px 0 5px; font-size:10px; color:var(--form-muted); }


/* Verification uses the same compact, right-aligned footer as other steps. */
.process-page .booking-form-actions #sendLinks {
  width:auto;
  min-width:var(--form-button-min-width);
  margin:0;
}
.process-page .booking-card-content .booking-form-actions {
  justify-content:flex-end;
  border:0;
  padding:0;
}

/* Email confirmation uses the shared compact notice treatment. */
.process-page .verification-result.visible {
  margin:12px 0;
  padding:10px 12px;
  border:0;
  border-radius:7px;
  background:#edf6ef;
  color:#346247;
}
.process-page .verification-result h3 {
  margin:0 0 4px;
  font-size:13px;
  font-weight:700;
  line-height:1.5;
}
.process-page .verification-result p {
  margin:0;
  padding:0;
  font-size:13px;
  font-weight:400;
  line-height:1.5;
}

.process-page .verification-result.visible { margin-bottom:20px; }

.process-page .verification-item > span { font-weight:700; }

/* Verification is a brief transition, not an extra booking form. */
.process-page .verification-loading { display:flex; justify-content:center; align-items:center; gap:12px; min-height:180px; padding:24px; color:var(--form-ink); }
.process-page .verification-loading p { margin:0; font-size:14px; }
.process-page .verification-spinner { width:18px; height:18px; border:2px solid #dce5ef; border-top-color:#071a34; border-radius:50%; animation:verification-spin .8s linear infinite; }
@keyframes verification-spin { to { transform:rotate(360deg); } }
@media(prefers-reduced-motion:reduce) { .process-page .verification-spinner { animation:none; } }

/* A simple minus/count/plus control, matching the public price calculator. */
.process-page .booking-bag-count { display:grid; gap:8px; }
.process-page .booking-bag-stepper { display:grid; grid-template-columns:48px minmax(60px,100px) 48px; justify-content:center; align-items:center; gap:12px; padding:16px 0; }
.process-page .booking-bag-stepper button { display:grid; place-items:center; width:48px; height:48px; padding:0; border:1px solid var(--form-border); border-radius:var(--form-radius); background:#fff; color:var(--form-ink); font:500 24px/1 var(--site-font); cursor:pointer; }
.process-page .booking-bag-stepper button:hover:not(:disabled) { border-color:var(--form-accent); background:#fff9e9; }
.process-page .booking-bag-stepper button:disabled { opacity:.4; cursor:not-allowed; }
.process-page .booking-bag-stepper button:focus-visible { outline:2px solid var(--form-accent); outline-offset:3px; }
.process-page .flow-form .booking-bag-stepper #bookingBagCount { height:48px; min-height:48px; padding:0; border:0; border-radius:0; background:transparent; color:var(--form-ink); font-size:30px; font-weight:700; text-align:center; box-shadow:none; appearance:textfield; }
.process-page #bookingBagCount::-webkit-inner-spin-button,.process-page #bookingBagCount::-webkit-outer-spin-button { appearance:none; margin:0; }

/* Out-of-area guidance uses the same compact notice language as other alerts. */
.process-page .pickup-address-field .pickup-area-notice {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px;
  padding:12px;
  border-radius:7px;
  background:#fff1f0;
  color:#8a403b;
  font-size:13px;
  line-height:1.5;
}
.process-page .pickup-area-notice-icon { display:grid; place-items:center; flex:0 0 16px; width:16px; height:16px; border:1px solid currentColor; border-radius:50%; font-size:11px; font-weight:700; line-height:1; }
.process-page .pickup-area-notice-message { flex:1 1 220px; font-weight:500; }
.process-page .pickup-area-request { margin-inline-start:auto; padding:6px 10px; border:1px solid #dfb9b6; border-radius:6px; background:transparent; color:inherit; font:600 12px/1.5 var(--site-font); cursor:pointer; }
.process-page .pickup-area-request:hover { background:#fbe4e2; }
.process-page .pickup-area-request:focus-visible { outline:2px solid currentColor; outline-offset:2px; }

.process-page .verification-item > span {
  font-size:18px;
  line-height:1.5;
  overflow-wrap:anywhere;
}

.process-page .verification-item > span { color:#071a34; }

.process-page .verification-item {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:flex-start;
  gap:6px;
}

.process-page .verification-item {
  flex-direction:row;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.process-page .verification-item > span {
  font-size:14px;
  font-weight:600;
  text-align:right;
  min-width:0;
}

/* Keep the quantity screen independent of shared booking panel spacing. */
.process-page .booking-card-content > .flow-card.bag-selection-card {
  width:100%;max-width:100%;margin:0;padding:0;
}
.process-page .bag-selection-card #bagCountForm {
  display:grid;grid-template-columns:minmax(0,1fr);gap:20px;
  width:100%;margin:0;padding:0;
}
.process-page .bag-selection-card #bagCountForm > .full {grid-column:1 / -1}
.process-page .bag-selection-card #bagCountForm .booking-bag-count {
  display:grid;grid-template-columns:auto auto;justify-content:center;
  align-items:center;column-gap:24px;row-gap:14px;padding:0;
}
.process-page .bag-selection-card #bagCountForm .luggage-total {
  display:flex;align-items:center;justify-content:space-between;
  width:100%;max-width:none;margin:0;padding:16px 0;
  border:0;border-block:1px solid #e1e6ee;border-radius:0;background:transparent;
}
.process-page .bag-selection-card #bagCountTotal {
  flex:0 0 auto;width:auto;margin:0;padding:0;text-align:right;
}
.process-page .bag-selection-card #bagCountForm > button[type="submit"] {
  width:100%;min-width:0;justify-self:stretch;
}
@media(max-width:540px){
  .process-page .booking-card-content > .flow-card.bag-selection-card{padding:0}
  .process-page .bag-selection-card #bagCountForm{gap:18px}
  .process-page .bag-selection-card #bagCountForm .booking-bag-count{column-gap:16px}
}

/* A quiet, full-width review summary, inside the shared booking card. */
.process-page .booking-card-content > .booking-recap {
  width:100%;max-width:100%;margin:0;padding:0;border:0;border-radius:0;
  background:transparent;box-shadow:none;overflow:visible;
}
.process-page .booking-recap .recap-list {display:grid;gap:0;margin:0}
.process-page .booking-recap .recap-list > div {
  display:grid;grid-template-columns:minmax(140px,.7fr) minmax(0,1.5fr);
  gap:24px;margin:0;padding:20px 0;border:0;border-bottom:1px solid #e8ecf1;
  border-radius:0;background:transparent;box-shadow:none;
}
.process-page .booking-recap .recap-list > div:first-child {padding-top:0}
.process-page .booking-recap .recap-list dt {
  margin:0;padding:0;background:transparent;border:0;color:#78818f;
  font-size:13px;font-weight:500;line-height:1.65;
}
.process-page .booking-recap .recap-list dd {
  display:grid;gap:4px;margin:0;padding:0;color:#172637;font-size:14px;
  font-weight:400;line-height:1.65;overflow-wrap:anywhere;
}
.process-page .booking-recap .recap-list dd strong {font-weight:600}
.process-page .booking-recap .recap-list dd em {font-style:normal;color:#78818f;font-weight:400}
.process-page .booking-recap .pickup-info-icon {display:none}
.process-page .booking-recap .pickup-reminder-heading {
  padding:0;margin:0 0 12px;border:0;background:transparent;color:#172637;font-size:14px;font-weight:600;
}
.process-page .booking-recap .pickup-reminder-content {padding:0}
.process-page .booking-recap .pickup-reminder-title {font-size:14px;font-weight:600;color:#172637}
.process-page .booking-recap .recap-pickup-reminder .pickup-schedule-option {
  grid-template-columns:80px minmax(0,1fr);gap:8px;margin:10px 0 0;padding:10px 0;
  border:0;border-bottom:1px solid #e8ecf1;border-radius:0;background:transparent;
}
.process-page .booking-recap .recap-pickup-reminder .pickup-schedule-option.selectable {display:flex!important;gap:12px}
.process-page .booking-recap .recap-pickup-reminder .pickup-schedule-option :is(strong,small,b) {
  color:#344154!important;font-size:13px;font-weight:500;letter-spacing:0;text-transform:none;
}
.process-page .booking-recap .recap-pickup-reminder dd > em,
.process-page .booking-recap .pickup-reminder-content > em {margin-top:12px;font-size:13px;font-weight:400;color:#78818f}
.process-page .booking-recap :is(.pickup-availability-confirm,.pickup-availability-confirmation) {
  display:flex;align-items:flex-start;gap:10px;margin:16px 0 0;padding:0;
  border:0;background:transparent;color:#53616f;font-size:13px;line-height:1.6;
}
.process-page .booking-recap .pickup-availability-confirm strong {font-weight:400}
.process-page .booking-recap :is(.pickup-availability-confirm,.pickup-availability-confirmation) input {
  flex:0 0 18px;width:18px;height:18px;margin:2px 0 0;accent-color:#0e6c68;
}
.process-page .booking-recap .recap-host-partner .pickup-method-option {
  padding:12px;border:1px solid #e1e6ee;border-radius:8px;background:transparent;
}
.process-page .booking-recap .recap-host-partner .pickup-method-option.selected {border-color:#9cb9b2;background:#f8fbfa}
.process-page .booking-recap .recap-host-partner .pickup-method-option > label {padding:0;border:0;border-radius:0}
.process-page .booking-recap .recap-host-partner .recap-pickup-reminder {padding-top:16px;background:transparent;border:0;box-shadow:none}
.process-page .booking-recap .recap-list > .recap-total,
.process-page .booking-recap #placeRecapDetails > div:last-child {
  grid-template-columns:1fr auto;align-items:baseline;border:0;padding:24px 0;
}
.process-page .booking-recap .recap-total dt,
.process-page .booking-recap #placeRecapDetails > div:last-child dt {color:#172637;font-size:15px;font-weight:600}
.process-page .booking-recap .recap-total dd {text-align:right}
.process-page .booking-recap .recap-total dd strong,
.process-page .booking-recap #placeRecapDetails > div:last-child dd {font-size:28px;font-weight:600;letter-spacing:-.04em;line-height:1.3}
.process-page .booking-recap .recap-total small {font-size:12px;color:#78818f;font-weight:400;letter-spacing:0}
/* Explicit action layout avoids inherited flex and mobile grid rules. */
.process-page .booking-recap .recap-actions {
  display:grid;grid-template-columns:auto minmax(160px,240px);align-items:stretch;
  justify-content:space-between;gap:16px;width:100%;margin:16px 0 0;
  padding:20px 0 0;border-top:1px solid #e8ecf1;
}
.process-page .booking-recap .recap-actions > .button {
  display:inline-flex;align-items:center;justify-content:center;
  width:100%;max-width:none;min-width:0;min-height:48px;height:auto;
  margin:0;padding:12px 24px;border:1px solid transparent;border-radius:8px;
  font:600 14px/1.5 var(--site-font);text-transform:none;letter-spacing:0;
  white-space:normal;box-shadow:none;transform:none;
}
.process-page .booking-recap .recap-actions > .recap-back {
  background:#f3f5f7!important;border-color:#e1e6ee!important;color:#53616f!important;
}
.process-page .booking-recap .recap-actions > .recap-back:hover {
  background:#e9edf1!important;border-color:#d5dde7!important;
}
.process-page .booking-recap .recap-actions > .primary:disabled {
  background:#e4e8ee!important;color:#788596!important;border-color:#e4e8ee!important;
  opacity:1;cursor:not-allowed;
}
.process-page .booking-recap #placePaymentStatus:empty {display:none}
@media(max-width:600px){
  .process-page .booking-recap .recap-list > div{grid-template-columns:minmax(0,1fr);gap:6px;padding:18px 0}
  .process-page .booking-recap .recap-actions{grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:12px}
  .process-page .booking-recap .recap-actions > .button{padding:12px}
}

/* Pickup availability is a distinct confirmation action. */
.process-page .booking-recap :is(.pickup-availability-confirm,.pickup-availability-confirmation) {
  display:flex;align-items:flex-start;gap:12px;
  margin:18px 0 0;padding:16px;
  border:1px solid #dce4e1;border-radius:10px;
  background:#f6f9f7;color:#344b43;font-size:14px;line-height:1.6;
  cursor:pointer;transition:background-color .15s,border-color .15s;
}
.process-page .booking-recap .pickup-availability-confirm strong {
  font-size:14px;font-weight:500;line-height:1.6;
}
.process-page .booking-recap :is(.pickup-availability-confirm,.pickup-availability-confirmation) input {
  flex:0 0 20px;width:20px;height:20px;margin:2px 0 0;accent-color:#0e6c68;
}
.process-page .booking-recap :is(.pickup-availability-confirm,.pickup-availability-confirmation):has(input:checked) {
  border-color:#91b7a7;background:#edf6f0;
}
.process-page .booking-recap :is(.pickup-availability-confirm,.pickup-availability-confirmation):focus-within {
  outline:2px solid #0e6c68;outline-offset:3px;
}
.process-page .booking-recap :is(.pickup-availability-confirm,.pickup-availability-confirmation):has(input:disabled) {
  color:#78818f;background:#f7f8f9;border-color:#e5e8ec;cursor:default;
}
