/* Shared visual system for every booking step. */
body.process-page{--booking-border:#e1e6ee;--booking-muted:#677588;background:radial-gradient(circle at 12% 0,rgba(213,155,36,.045),transparent 35rem),#f3f5f7}
.process-page .process-main{width:min(960px,calc(100% - 40px));padding:30px 0 68px}
.process-page .process-progress{display:flex;align-items:center;gap:16px;max-width:840px;margin:0 auto 22px;letter-spacing:.07em}
.process-page .process-progress>span{flex:0 0 auto;padding:7px 12px;border:1px solid var(--booking-border);border-radius:999px;background:#fff;color:#53616f;font-size:.68rem;line-height:1.3}
.process-page .process-progress-track{height:5px;background:#e1e6ed;border-radius:999px;box-shadow:none}
.process-page .process-progress-track i{background:linear-gradient(90deg,#d59b24,#efbf55);transition:none}
.process-page .flow-shell{width:100%;max-width:840px;margin:0 auto;padding:32px 36px;border:1px solid var(--booking-border);border-radius:18px;background:#fff;box-shadow:0 14px 42px rgba(7,26,52,.075),0 2px 5px rgba(7,26,52,.025)}
.process-page .flow-shell>.flow-heading{max-width:100%;margin:0;padding:0 0 24px;border-bottom:1px solid #e8ecf1}
.process-page .flow-heading .eyebrow{font-size:.65rem;letter-spacing:.15em;margin-bottom:11px;color:#946615}
.process-page .flow-heading h1{margin-bottom:12px}
.process-page .flow-heading>p:last-child{max-width:690px;font-size:.94rem;line-height:1.65;color:var(--booking-muted)}
.process-page .flow-shell>.flow-card{width:100%;max-width:100%;padding:26px 0 0;margin:0;border:0;border-radius:0;background:transparent;box-shadow:none}
.process-page .flow-shell>.flow-card::before{display:none}
.process-page .flow-form{gap:20px}
.process-page .flow-form label{color:#344154;font-size:.83rem;line-height:1.5;gap:8px}
.process-page .flow-form :is(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),select,textarea){min-width:0;max-width:100%;min-height:50px;padding:12px 14px;border:1px solid #d5dde7;border-radius:9px;background:#fbfcfd;color:#071a34;font-size:16px;line-height:1.4;box-shadow:none}
.process-page .flow-form :is(input:not([type="checkbox"]):not([type="radio"]),select,textarea):focus{outline:0;border-color:#d59b24;box-shadow:0 0 0 3px rgba(213,155,36,.13);background:#fff}
.process-page .flow-form input[readonly],.process-page .flow-form select:disabled{background:#f0f3f6;color:#687589;border-color:#e1e6ee}
.process-page input:is([type="checkbox"],[type="radio"]){accent-color:#d59b24}
.process-page [hidden]{display:none!important}
.process-page .button:disabled{background:#e4e8ee!important;color:#788596!important;filter:none!important;box-shadow:none!important;opacity:1;cursor:not-allowed}
.process-page .service-choice-form{margin-top:26px;gap:24px}
.process-page .service-choices{gap:18px}
.process-page .service-choice{padding:24px;border:2px solid #e1e6ee;border-radius:12px;background:#fbfcfd;box-shadow:none}
.process-page .service-choice:hover{border-color:#d8bd7b}
.process-page .service-choice:has(input:checked){border-color:#d59b24;background:#fff9e9;box-shadow:none}
.process-page .service-choice:focus-within{outline:none}
.process-page .service-choice input:focus-visible{outline:2px solid #d59b24;outline-offset:3px}
.process-page .service-choice input{accent-color:#d59b24;top:20px;right:20px}
.process-page .service-choice-content{gap:12px}
.process-page .service-choice-content strong{font-size:1.13rem;line-height:1.4}
.process-page .service-choice-content>span:not(.service-choice-icon){font-size:.86rem;line-height:1.65;color:var(--booking-muted)}
.process-page .service-choice-content small{font-size:.72rem;color:#8c6519;line-height:1.6}
.process-page .service-choice-icon{width:52px;height:52px;border-radius:11px;background:#fff0cb;color:#071a34}
.process-page .service-choice-icon svg{width:29px;height:29px}
.process-page .booking-form-actions{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;margin-top:5px;padding-top:22px;border-top:1px solid #e8ecf1}
.process-page .booking-form-actions>.button,.process-page .booking-form-actions>.flow-back-button{width:auto;min-width:120px;min-height:50px;margin:0;padding:12px 24px;border-radius:8px;font-size:.8rem;line-height:1.4;justify-content:center}
.process-page .booking-form-actions>.button:not(.recap-back){min-width:180px;margin-left:auto}
.process-page .booking-form-actions>.flow-back-button{font-size:.77rem}
.process-page .flow-bottom-actions,.process-page .recap-actions{gap:16px;padding-top:22px;margin-top:24px;border-top:1px solid #e8ecf1}
.process-page .flow-bottom-actions .button,.process-page .recap-actions .button,.process-page .payment-submit{min-height:50px;border-radius:8px}
.process-page .flow-form>button[type="submit"]{width:auto;min-width:180px;justify-self:end}
.process-page .flow-review,.process-page .destination-pickup-summary{padding:16px 18px;border:1px solid #e1e6ee;border-radius:10px;background:#f6f8fa}
.process-page .luggage-offer{margin:0 0 24px;padding:17px 18px;border:1px solid #eadbb8;border-radius:10px;background:#fff9e9}
.process-page .luggage-offer strong{font-size:1rem}.process-page .luggage-offer p{font-size:.86rem;line-height:1.6}
.process-page .verification-options{margin:0 0 24px}.process-page .verification-item{padding:18px;border:1px solid #e1e6ee;border-radius:10px;background:#f8fafc}
.process-page .verification-item strong{font-size:.86rem}.process-page .verification-item span{font-size:.9rem;min-width:0}
.process-page .luggage-total{width:100%;justify-content:space-between;margin:0;padding:18px;border:1px solid #e1e6ee;border-radius:10px;background:#f8fafc}
.process-page .luggage-total span{font-size:.9rem}.process-page .luggage-total strong,.process-page .payment-total strong,.process-page .recap-total dd{color:#071a34;font-size:1.5rem}
.process-page .payment-method{padding:19px 20px;border:1px solid #e1e6ee;border-radius:10px;background:#f8fafc}
.process-page .payment-method:has(input:checked){border-color:#d59b24;box-shadow:0 0 0 3px rgba(213,155,36,.12)}
.process-page .payment-total{margin:0 0 24px;padding:20px 0;border-block:1px solid #e8ecf1;font-size:.93rem}
.process-page .recap-list>div{padding-block:17px;border-color:#e8ecf1}.process-page .recap-list dt{font-size:.79rem;color:#677588}.process-page .recap-list dd{font-size:.9rem;line-height:1.65}
.process-page .recap-list .recap-pickup-reminder{padding:0;background:#f8fafc;border:1px solid #e1e6ee;border-radius:10px;box-shadow:none}
.process-page .pickup-reminder-heading,.process-page .recap-list .recap-pickup-reminder dt{background:#fff4d8;color:#6f511b;font-size:.9rem;padding:15px 18px;border-bottom:1px solid #eadbb8}
.process-page .pickup-info-icon{border-color:#ddc58c}.process-page .pickup-reminder-title{color:#344154;font-size:.9rem}
.process-page .recap-pickup-reminder .pickup-schedule-option{border-color:#e1e6ee;border-radius:8px}
.process-page .recap-pickup-reminder .pickup-schedule-option :is(strong,small,b){color:#344154!important}
.process-page .pickup-window-choice-help,.process-page .pickup-availability-confirm{color:#53616f;font-size:.86rem}
.process-page .pickup-availability-confirm{border-color:#e1e6ee}
.process-page .place-schedule{padding:18px;border-color:#e1e6ee;border-radius:10px;background:#f8fafc}
.process-page .place-schedule legend{font-size:.86rem}.process-page .place-schedule p{font-size:.85rem;color:#677588;line-height:1.65}
.process-page .confirmation-card .booking-qr{width:min(300px,100%);border-radius:12px;box-shadow:0 8px 24px rgba(7,26,52,.08)}
@media(max-width:640px){.process-page .process-main{width:calc(100% - 24px);padding:20px 0 40px}.process-page .process-progress{margin-bottom:16px;gap:12px}.process-page .process-progress>span{font-size:.62rem;padding:6px 10px}.process-page .flow-shell{padding:24px 19px;border-radius:14px;box-shadow:0 8px 26px rgba(7,26,52,.06)}.process-page .flow-shell>.flow-heading{padding-bottom:20px}.process-page .flow-heading>p:last-child{font-size:.86rem;line-height:1.65}.process-page .flow-shell>.flow-card{padding-top:22px}.process-page .flow-form{gap:18px}.process-page .service-choice-form{margin-top:22px}.process-page .service-choice{padding:21px}.process-page .service-choice-content strong{font-size:1.05rem}.process-page .service-choice-content>span:not(.service-choice-icon){font-size:.83rem}.process-page .booking-form-actions{display:grid;grid-template-columns:1fr;gap:12px;padding-top:20px}.process-page .booking-form-actions>.button,.process-page .booking-form-actions>.flow-back-button{width:100%;min-width:0;margin:0}.process-page .flow-form>button[type="submit"]{width:100%;min-width:0}.process-page .recap-actions,.process-page .flow-bottom-actions{display:grid;grid-template-columns:1fr;gap:12px}.process-page .recap-actions .button{width:100%;min-width:0}.process-page .verification-item{align-items:flex-start;flex-direction:column;gap:7px}.process-page .payment-method{padding:17px}.process-page .recap-list>div{grid-template-columns:1fr;gap:6px}.process-page .luggage-total{padding:16px}.process-page .pickup-reminder-content{padding-inline:14px}}

/* Back is a secondary navigation action; forward CTAs retain the yellow treatment. */
.process-page :is(.flow-back-button,.recap-back,#placeRecapBack){background:#eef1f5!important;color:#344154!important;border:1px solid #d8dee7!important;box-shadow:none!important;filter:none!important}
.process-page :is(.flow-back-button,.recap-back,#placeRecapBack):hover{background:#e2e7ee!important;color:#253448!important;border-color:#cbd4df!important;filter:none!important;transform:none!important}

/* Card header owns its spacing; only the content below receives card padding. */
.process-page .flow-shell:has(> .booking-card){padding:0}
.process-page .flow-shell>.flow-card.booking-card{padding:0;margin:0}
.process-page .booking-card>.booking-steps{margin:0;border-radius:18px 18px 0 0}
.process-page .booking-card-content{padding:32px 36px}
.process-page .booking-card-content>.flow-heading{margin:0 0 24px;padding:0 0 24px;border-bottom:1px solid #e8ecf1}
.process-page .booking-card-content>.flow-card{padding:0;margin:0;border:0;background:transparent;box-shadow:none}
@media(max-width:640px){
  .process-page .flow-shell:has(> .booking-card){padding:0}
  .process-page .flow-shell>.flow-card.booking-card{padding:0}
  .process-page .booking-card>.booking-steps{border-radius:14px 14px 0 0}
  .process-page .booking-card-content{padding:24px 19px}
  .process-page .booking-card-content>.flow-heading{padding-bottom:20px;margin-bottom:20px}
}

/* Minimal progress header, flush with the card. */
.process-page .booking-card>.booking-steps {
  margin:0;
  padding:18px 24px;
  background:#f5faff;
  border-bottom:1px solid #e6eff8;
}
.process-page .booking-steps-list { display:flex; justify-content:center; gap:10px; }
.process-page .booking-steps-list>li {
  flex:0 1 auto;
  flex-direction:row;
  justify-content:flex-start;
  align-items:center;
  gap:8px;
  color:#8b8d91;
}
.process-page .booking-steps-list>li:last-child { flex:0 0 auto; }
.process-page .booking-steps-list>li:not(:last-child)::after {
  display:block;
  position:static;
  flex:0 1 28px;
  min-width:12px;
  width:28px;
  height:2px;
  background:#cbdbea;
  content:'';
}
.process-page .booking-steps .booking-step-number {
  flex:0 0 22px;
  width:22px;
  height:22px;
  border:1px solid #cbdbea;
  background:transparent;
  color:#8b8d91;
  font-size:11px;
  font-weight:500;
  line-height:1;
  box-shadow:none;
}
.process-page .booking-steps .booking-step-label {
  flex:0 0 auto;
  font-size:12px;
  font-weight:600;
  line-height:1.4;
}
.process-page .booking-steps-list>.is-complete { color:#656c72; }
.process-page .booking-steps-list>.is-complete .booking-step-number {
  background:#dce9f5;
  border-color:transparent;
  color:#656c72;
}
.process-page .booking-steps-list>.is-current { color:#071a34; }
.process-page .booking-steps-list>.is-current .booking-step-number {
  background:#071a34;
  border-color:#071a34;
  color:#fff;
  box-shadow:none;
}
.process-page .booking-steps-list>.is-current .booking-step-label { font-weight:600; }
@media(max-width:640px) {
  .process-page .booking-card>.booking-steps { padding:14px 10px; }
  .process-page .booking-steps-list { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:6px; }
  .process-page .booking-steps-list>li { flex-direction:column; gap:6px; }
  .process-page .booking-steps .booking-step-label { position:relative; z-index:1; padding:0 4px; background:#f5faff; }
  .process-page .booking-steps-list>li:not(:last-child)::after {
    position:absolute;
    top:calc(28px + .7em);
    left:50%;
    width:calc(100% + 6px);
  }
  .process-page .booking-steps .booking-step-label { font-size:11px; }
}
