/* Booking page */
.booking-page{padding:20px 0 60px}
.booking-hero{text-align:center;padding:32px 0 15px}
.booking-hero.has-company-image{padding:54px 0;background-position:center;background-size:cover;color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.7)}
.booking-hero.has-company-image h2,.booking-hero.has-company-image p{color:#fff}
.booking-shell{max-width:940px;margin:auto}

.booking-progress{display:flex;align-items:center;justify-content:center;margin-bottom:18px;overflow:auto}
.progress-step{border:0;background:transparent;display:grid;justify-items:center;gap:4px;color:#777}
.progress-step span{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:#ddd;font-weight:800}
.progress-step.active span,.progress-step.done span{background:var(--primary);color:var(--button-text)}
.progress-line{height:2px;width:40px;background:#ddd}

.booking-step{display:none;background:#fff;border:1px solid #ddd;border-radius:14px;padding:20px;box-shadow:0 10px 30px rgba(0,0,0,.08)}
.booking-step.active{display:block}
.step-heading{margin-bottom:18px}
.step-heading h2{margin:3px 0}
.step-heading p{color:#667085}
.eyebrow{font-size:11px;text-transform:uppercase;font-weight:800}

.journey-choice-grid,.vehicle-grid,.field-grid{display:grid;grid-template-columns:1fr;gap:12px}
.journey-choice,.vehicle-card{border:2px solid #d7dce2;background:#fff;border-radius:12px;padding:15px;text-align:left;cursor:pointer}
.journey-choice.active,.vehicle-card.active{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 18%,transparent)}
.journey-choice{display:grid;grid-template-columns:42px 1fr}
.journey-choice small{grid-column:2;color:#667085}
.choice-icon{font-size:26px}

.field{min-width:0}
.field.full{grid-column:1/-1}
.field label{display:block;font-weight:700;margin:8px 0 6px}
.field input,.field select,.field textarea,gmp-place-autocomplete{box-sizing:border-box;width:100%;min-height:49px;border:1px solid #ccd3db;border-radius:9px;background:#fff;font-size:16px}
.field input,.field select,.field textarea{padding:11px}
.field-hint{display:block;color:#667085;margin-top:5px}
.hidden{display:none!important}
.journey-fields{display:grid;gap:10px;margin-top:12px}
.journey-location-group{min-width:0;padding:12px;border:1px solid #dce2e8;border-radius:11px;background:#f8fafc}
.location-heading{margin-bottom:5px;font-size:16px}
.journey-location-group label{margin:6px 0 4px}
.journey-location-group input{box-sizing:border-box;width:100%;min-height:46px;margin:0 0 7px;padding:10px 11px;border:1px solid #ccd3db;border-radius:9px;background:#fff;font-size:16px}
.journey-location-group .property-detail{min-height:40px;padding:8px 10px;font-size:14px}
.add-location-stop{padding:8px 12px;font-size:13px}
.additional-stops{width:100%;margin-top:7px}
.journey-stop-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;align-items:end;width:100%;margin-top:7px;padding-top:7px;border-top:1px solid #e2e8f0}
.journey-stop-row label{grid-column:1/-1;margin:0;font-size:13px}
.journey-stop-row input{margin:0}
.journey-stop-row .stop-remove{min-height:40px;padding:8px 10px;color:#9f1239;border-color:#fecdd3;background:#fff}

.return-card{display:flex;gap:10px;margin:15px 0;padding:13px;border:1px solid #ddd;border-radius:10px}
.return-card span{display:grid}

.route-card{max-height:0;visibility:hidden;overflow:hidden;margin-top:0;border:0;border-radius:12px;opacity:0;transition:opacity .2s ease}
.route-card.has-route{max-height:420px;visibility:visible;margin-top:12px;border:1px solid #ddd;opacity:1}
.route-map{height:280px;background:#e5e7eb}
.route-stats{display:grid;grid-template-columns:repeat(3,1fr)}
.route-stats div{text-align:center;padding:12px}
.route-stats small{display:block;color:#667085}

.vehicle-card{display:grid;grid-template-columns:70px 1fr auto;align-items:center;gap:10px}
.vehicle-card[hidden]{display:none}
.vehicle-card.disabled{opacity:.4;pointer-events:none}
.vehicle-art{height:55px;border-radius:9px;background:var(--primary);color:var(--button-text);display:grid;place-items:center;font-weight:900}
.vehicle-copy{display:grid}
.vehicle-copy span{color:#667085}
.vehicle-price{font-size:21px;font-weight:900}
.vehicle-price-detail{display:block;margin-top:2px;color:#64748b;font-size:11px;line-height:1.35;text-align:right}

.notice-box{margin-top:14px;padding:12px;background:#f7f8fa;border:1px solid #ddd;border-radius:9px}
.step-actions{display:flex;justify-content:space-between;gap:10px;margin-top:20px}
.primary-btn,.secondary-btn{border-radius:9px;padding:12px 18px;font-weight:800;font-size:15px;cursor:pointer}
.primary-btn{background:var(--button);color:var(--button-text);border:0}
.secondary-btn{background:#fff;border:1px solid #ccd3db}

.review-card{border:1px solid #ddd;border-radius:12px;overflow:hidden}
.review-row{display:grid;grid-template-columns:140px 1fr;gap:10px;padding:12px;border-bottom:1px solid #eee}
.review-row:last-child{border-bottom:0}
.review-row span{color:#667085}
.review-row strong{color:#111827;font-weight:700}

.final-price-card{background:var(--secondary);color:#fff;padding:18px;border-radius:12px;margin-top:14px;border-top:4px solid var(--accent)}
.final-price-card strong{display:block;font-size:34px;margin:5px 0}
.stripe-payment-panel{margin-top:14px;padding:14px;border:1px solid #cbd5e1;border-radius:10px;background:#fff}
.stripe-express-section{margin-bottom:16px}
.stripe-payment-divider{display:flex;align-items:center;gap:12px;margin:16px 0;color:#64748b;font-size:13px;font-weight:700;text-align:center}
.stripe-payment-divider::before,.stripe-payment-divider::after{content:"";height:1px;flex:1;background:#dbe2ea}
.stripe-payment-divider span{color:inherit!important;white-space:nowrap}
#stripePaymentMessage{margin-top:9px;color:#b91c1c;font-size:13px}
.payment-confirmation{max-width:680px;margin:0 auto;padding:30px;text-align:center;border:1px solid color-mix(in srgb,var(--primary) 45%,#d1d5db);border-radius:16px;background:linear-gradient(180deg,color-mix(in srgb,var(--primary) 9%,#fff),#fff 42%);box-shadow:0 14px 38px rgba(15,23,42,.1)}
.payment-success-icon{display:grid;place-items:center;width:72px;height:72px;margin:0 auto 16px;border-radius:50%;background:var(--primary);color:var(--button-text)!important;font-size:42px;font-weight:900;line-height:1}
.payment-confirmation h2{margin:4px 0 8px;font-size:clamp(1.55rem,5vw,2.15rem)}
.payment-confirmation-lead{margin:0 0 20px;font-size:1.08rem;font-weight:700}
.payment-confirmation-details{margin:0;text-align:left;border:1px solid #e2e8f0;border-radius:12px;background:#fff;overflow:hidden}
.payment-confirmation-details div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;padding:12px 14px;border-bottom:1px solid #e2e8f0}
.payment-confirmation-details div:last-child{border-bottom:0}
.payment-confirmation-details dt{color:#64748b;font-weight:600;overflow-wrap:anywhere}
.payment-confirmation-details dd{margin:0;color:#111827;font-weight:800;text-align:right;overflow-wrap:anywhere}
.payment-confirmation-note{max-width:52ch;margin:18px auto 0;color:#475569;line-height:1.55}
.payment-confirmation-actions{display:flex;justify-content:center;gap:10px;margin-top:22px}
.payment-confirmation-actions a{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;min-height:46px;text-decoration:none}

/* VISIBILITY FIXES */
.booking-step,
.booking-step h1,
.booking-step h2,
.booking-step h3,
.booking-step p,
.booking-step label,
.booking-step strong,
.booking-step span,
.booking-step small{
    color:#1f2937;
}

.booking-step label{
    display:block;
    color:#1f2937!important;
    font-weight:700;
}

.booking-step input,
.booking-step select,
.booking-step textarea{
    color:#111827!important;
    background:#fff!important;
    -webkit-text-fill-color:#111827!important;
}

.booking-step input::placeholder,
.booking-step textarea::placeholder{
    color:#8a94a3!important;
    opacity:1;
}

.review-row span{color:#667085!important}
.review-row strong{color:#111827!important;font-weight:700}
.vehicle-copy strong,.vehicle-copy span,.vehicle-price{color:#111827!important}

/* Prevent style.css from adding large tick/icon pseudo elements */
.vehicle-card::before,
.vehicle-card::after,
.journey-choice::before,
.journey-choice::after{
    content:none!important;
    display:none!important;
}

.final-price-card,
.final-price-card span,
.final-price-card strong,
.final-price-card small{
    color:#fff!important;
}

@media(min-width:700px){
    .journey-choice-grid,.vehicle-grid{grid-template-columns:1fr 1fr}
    .journey-fields{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
    .field-grid{grid-template-columns:1fr 1fr}
    .field-grid.three{grid-template-columns:repeat(3,1fr)}
    .booking-step{padding:28px}
}
@media(max-width:699px){.journey-stop-row{grid-template-columns:minmax(0,1fr) auto}.journey-stop-row label{grid-column:1/-1}}
@media(max-width:430px){
    .booking-page{padding-top:8px}.booking-step{padding:16px 12px}
    .booking-progress{justify-content:flex-start;padding-bottom:6px}.progress-line{width:20px;flex:0 0 20px}
    .progress-step{min-width:48px}.progress-step small{font-size:10px}
    .journey-choice{grid-template-columns:34px 1fr;padding:12px}.choice-icon{font-size:22px}
    .vehicle-card{grid-template-columns:54px 1fr;}.vehicle-price{grid-column:2;font-size:18px}
    .route-map{height:210px}.route-stats{grid-template-columns:1fr}.route-stats div{border-bottom:1px solid #ddd}
    .step-actions{flex-direction:column-reverse}.step-actions>button{width:100%}.step-actions>span{display:none}
    .review-row{grid-template-columns:1fr;gap:2px}.final-price-card strong{font-size:28px}
    .stripe-payment-panel{padding:12px}.stripe-payment-divider{margin:14px 0}
    .payment-confirmation{padding:24px 14px}.payment-success-icon{width:62px;height:62px;font-size:36px}.payment-confirmation-details div{grid-template-columns:1fr;gap:3px}.payment-confirmation-details dd{text-align:left}.payment-confirmation-actions{flex-direction:column}.payment-confirmation-actions a{width:100%}
}
