 :root{
  --q-deep:#061a3f;--q-navy:#082757;--q-blue:#0f62b8;--q-bright:#1182ef;
  --q-surface:#f3f7fb;--q-border:#dfe7f1;--q-text:#0a1e3f;--q-muted:#64758c;
  --q-green:#07865b;--q-red:#c83245;--q-amber:#9a6a00;
}
*{box-sizing:border-box}html{background:var(--q-surface)}body{margin:0;color:var(--q-text);background:radial-gradient(circle at 50% -120px,rgba(21,94,176,.08),transparent 420px),var(--q-surface);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Arial,sans-serif}button,input,select,textarea{font:inherit}button{touch-action:manipulation}[hidden]{display:none!important}.quote-shell{width:min(100% - 20px,820px);margin:0 auto;padding:0 0 30px}
.quote-hero{margin:0 -10px;min-height:235px;padding:21px 28px 88px;color:#fff;background:radial-gradient(circle at 88% 20%,rgba(44,132,227,.32),transparent 33%),radial-gradient(circle at 12% 100%,rgba(25,94,178,.28),transparent 38%),linear-gradient(135deg,#061735 0%,#082554 48%,#0b3979 100%)}.quote-brand-row{display:flex;align-items:center;justify-content:space-between}.quote-logo{width:138px;height:auto;filter:drop-shadow(0 2px 5px rgba(0,0,0,.12))}.quote-hero-copy{margin-top:30px;max-width:650px}.quote-hero-copy>small{display:block;margin-bottom:6px;color:#9ec4ed;font-size:10px;font-weight:900;letter-spacing:.12em}.quote-hero-copy h1{margin:0;font-size:34px;line-height:1.03;letter-spacing:-.04em;font-weight:850}.quote-hero-copy p{margin:10px 0 0;max-width:620px;color:#d9e7f7;font-size:14px;line-height:1.48}
.quote-wizard,.quote-result,.quote-alert{position:relative;z-index:2}.quote-wizard{margin-top:-58px}.quote-result{margin:-58px 0 18px}.quote-progress{display:flex;align-items:stretch;margin:0 18px 12px;overflow:hidden;border:1px solid rgba(214,224,237,.95);border-radius:16px;background:rgba(255,255,255,.97);box-shadow:0 8px 24px rgba(8,32,70,.06)}.quote-progress button{appearance:none;flex:1 1 0;min-width:0;min-height:52px;border:0;border-right:1px solid #e7edf4;background:#fff;color:#8492a4;cursor:default;display:flex;align-items:center;justify-content:center;gap:7px;padding:7px 6px;font-weight:800}.quote-progress button:last-child{border-right:0}.quote-progress button b{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:#eef2f6;color:#76869a;font-size:10px}.quote-progress button span{font-size:10px;white-space:nowrap}.quote-progress button.is-active{color:#0b5aa9;background:#f4f9ff}.quote-progress button.is-active b{background:#0f62b8;color:#fff}.quote-progress button.is-done{color:#315f95;cursor:pointer}.quote-progress button.is-done b{background:#dcecfb;color:#0b5da8}
.completed-stack{display:grid;gap:8px;margin:0 18px 12px}.completed-card{appearance:none;width:100%;min-height:58px;border:1px solid #dfe7f0;border-radius:15px;background:rgba(255,255,255,.97);padding:10px 13px;display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:10px;align-items:center;text-align:left;color:var(--q-text);box-shadow:0 5px 16px rgba(8,32,70,.035);cursor:pointer}.completed-icon{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#e8f5ee;color:#087b54;font-size:12px;font-weight:900}.completed-card span:nth-child(2){min-width:0}.completed-card small,.completed-card b{display:block}.completed-card small{color:#7c8b9d;font-size:8px;font-weight:900;letter-spacing:.1em}.completed-card b{margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#16375f;font-size:11px}.completed-card em{font-style:normal;color:#0c63b7;font-size:10px;font-weight:850}.completed-card:hover{border-color:#b8cce1;background:#fafdff}
.quote-step{border:1px solid rgba(214,224,237,.95);border-radius:24px;background:#fff;padding:30px;box-shadow:0 16px 40px rgba(8,32,70,.10),0 2px 6px rgba(8,32,70,.04)}.step-copy{margin-bottom:24px}.step-copy>small{display:block;margin-bottom:6px;color:#5a7da6;font-size:10px;font-weight:900;letter-spacing:.11em}.step-copy h2{margin:0;color:#071a3b;font-size:29px;line-height:1.07;letter-spacing:-.035em}.step-copy p{margin:8px 0 0;max-width:690px;color:var(--q-muted);font-size:13px;line-height:1.5}
.choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.choice-card{appearance:none;min-height:104px;border:1px solid #dce4ee;border-radius:18px;background:#fff;padding:18px;text-align:left;display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:14px;color:var(--q-text);cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}.choice-card:hover{border-color:#a7bdd7;box-shadow:0 7px 22px rgba(27,67,112,.07)}.choice-card.is-selected{border:2px solid #0f62b8;background:#f2f8ff;box-shadow:0 0 0 3px rgba(15,98,184,.07)}.choice-icon,.seat-count{grid-row:1/3;width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:#eef5fc;color:#0b4e91;font-size:22px;font-weight:900}.seat-count{font-size:17px}.choice-card b{align-self:end;font-size:17px}.choice-card small{margin-top:4px;color:#718198;font-size:11px;line-height:1.35}
.date-card{margin-top:16px;overflow:hidden;border:1px solid #e0e8f1;border-radius:18px;background:#fff}.date-card-label{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:13px 17px;background:#eef6ff;border-bottom:1px solid #dce8f4}.date-card-label span{font-size:13px;font-weight:850;color:#0d3f75}.date-card-label small{font-size:10px;font-weight:850;letter-spacing:.08em;color:#6d85a0}.date-time-grid{display:grid;grid-template-columns:1.5fr .8fr;gap:13px;padding:17px}.date-time-grid label>span,.traveller-fields label>span,.quote-contact-form label>span,.admin-options label>span{display:block;margin-bottom:7px;color:#56687e;font-size:11px;font-weight:800}.date-time-grid input,.date-time-grid select,.traveller-fields input,.quote-contact-form input,.quote-contact-form textarea,.admin-options select{width:100%;min-height:50px;border:1px solid #cfd9e5;border-radius:12px;background:#fff;color:#13263f;padding:0 13px;outline:0}.quote-contact-form textarea{padding:11px 13px;resize:vertical}.date-time-grid input:focus,.date-time-grid select:focus,.traveller-fields input:focus,.quote-contact-form input:focus,.quote-contact-form textarea:focus,.admin-options select:focus{border-color:#86add5;box-shadow:0 0 0 3px rgba(15,98,184,.08)}.date-card>p{margin:0;padding:0 17px 15px;color:#7b899a;font-size:11px;line-height:1.45}
.traveller-card{margin-top:16px;padding:17px;border:1px solid #e1e8f0;border-radius:18px;background:#fbfcfe}.traveller-card>div:first-child small,.traveller-card>div:first-child b{display:block}.traveller-card>div:first-child small{color:#7e8da0;font-size:8px;font-weight:900;letter-spacing:.1em}.traveller-card>div:first-child b{margin-top:3px;font-size:14px}.traveller-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}.traveller-card>p{margin:10px 0 0;color:#76869a;font-size:10px;line-height:1.4}.traveller-card>p.is-warning{color:#8a6200;font-weight:700}
.step-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:26px}.step-actions.one-action{justify-content:flex-end}.quote-primary-button,.quote-back-button,.quote-secondary-button{min-height:46px;border-radius:12px;padding:0 20px;font-weight:850;cursor:pointer}.quote-primary-button{border:1px solid #082757;background:#082757;color:#fff;box-shadow:0 6px 16px rgba(8,39,87,.14)}.quote-primary-button:hover{background:#0c356f}.quote-back-button,.quote-secondary-button{border:1px solid #d2dce7;background:#fff;color:#38506c}
.journey-step-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.journey-date-chip{flex:0 0 auto;max-width:250px;border-radius:999px;padding:7px 11px;background:#edf5fd;color:#41658d;font-size:10px;font-weight:800;white-space:nowrap}.direction-segment{display:grid;grid-template-columns:1fr 1fr;gap:0;max-width:620px;margin:0 0 16px;border:1px solid #dce5ef;border-radius:14px;overflow:hidden}.direction-segment button{appearance:none;border:0;border-right:1px solid #dce5ef;background:#fff;padding:12px 14px;text-align:left;color:#476079;cursor:pointer}.direction-segment button:last-child{border-right:0}.direction-segment button b,.direction-segment button small{display:block}.direction-segment button b{font-size:12px}.direction-segment button small{margin-top:2px;color:#8391a2;font-size:10px}.direction-segment button.is-selected{background:#eef6ff;color:#0b569f;box-shadow:inset 0 -3px 0 #0f62b8}.direction-segment button.is-selected small{color:#5278a2}
.journey-builder{overflow:visible;border:1px solid rgba(214,224,237,.95);border-radius:22px;background:#fff;box-shadow:0 10px 28px rgba(8,32,70,.06)}.journey-collection{padding:15px 22px;background:#eef6ff;border-bottom:1px solid #dce8f4;border-radius:21px 21px 0 0}.journey-collection small{display:block;margin-bottom:4px;color:#65809f;font-size:9px;font-weight:900;letter-spacing:.11em}.journey-collection strong{font-size:16px;color:#0b3569}.journey-route-form{padding:23px 24px 18px}.journey-route-row{display:grid;grid-template-columns:48px minmax(0,1fr);gap:15px;align-items:center}.route-circle{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;border:1px solid #dce6f1;background:#f2f7fc;color:#123b6d;font-size:25px;font-weight:850}.route-circle-to{background:#071b3e;color:#fff;border-color:#071b3e}.route-dash{width:48px;height:22px;display:flex;justify-content:center}.route-dash i{width:2px;height:100%;background:repeating-linear-gradient(to bottom,#cbd8e7 0 5px,transparent 5px 10px)}.route-field label{display:block}.route-field small{display:block;margin-bottom:5px;color:#75859b;font-size:9px;font-weight:900;letter-spacing:.09em}.route-field input[type=text]{width:100%;min-height:49px;border:0;border-bottom:1px solid #e0e7ef;border-radius:0;background:#fff;padding:0 2px;color:#10243d;font-size:17px;font-weight:700;outline:0}.route-field input[type=text]:focus{border-bottom-color:#6e9dce}.route-field input.is-selected-address{color:#0a2850}.route-field input.needs-selection{border-bottom-color:#d75d6c}.pad-autocomplete-field{position:relative}.pad-address-suggestions{position:absolute;z-index:80;left:0;right:0;top:calc(100% + 5px);display:none;overflow:hidden;border:1px solid #d4dde8;border-radius:12px;background:#fff;box-shadow:0 16px 40px rgba(28,47,73,.17)}.pad-address-suggestions.is-open{display:block}.pad-address-suggestion{width:100%;border:0;border-bottom:1px solid #edf1f5;background:#fff;padding:12px 14px;display:flex;gap:10px;align-items:flex-start;text-align:left;color:#20344c;cursor:pointer}.pad-address-suggestion:last-child{border-bottom:0}.pad-address-suggestion:hover{background:#f2f7fd}.pad-pin{color:#0b5da8;font-weight:900}.pad-address-loading,.pad-address-empty{padding:13px 14px;color:#718094;font-size:12px}
.stops-disclosure{margin:0 18px 17px;border:1px solid #e3e9f0;border-radius:14px;background:#fbfcfe}.stops-disclosure summary{list-style:none;cursor:pointer;padding:13px 15px;display:flex;justify-content:space-between;gap:12px;align-items:center}.stops-disclosure summary::-webkit-details-marker{display:none}.stops-disclosure summary span{color:#214e7e;font-size:12px;font-weight:850}.stops-disclosure summary small{color:#8190a2;font-size:10px}.stops-body{padding:0 15px 15px;border-top:1px solid #e6ebf1}.stops-body>p{margin:12px 0;color:#75859a;font-size:10px;line-height:1.4}.stop-field{margin-top:10px}.stop-field label{display:grid;grid-template-columns:64px minmax(0,1fr);align-items:center;gap:10px}.stop-field label>span{font-size:11px;font-weight:800;color:#64758b}.stop-field input[type=text]{width:100%;min-height:42px;border:1px solid #d4dde8;border-radius:10px;padding:0 11px;outline:0}.stop-field .pad-address-suggestions{left:74px}.manual-check{display:flex;align-items:flex-start;gap:9px;margin-top:13px;color:#6d7c90;font-size:10px;line-height:1.4}.manual-check input{margin-top:2px}.airport-auto-note{margin:0 18px 18px;padding:11px 13px;border-radius:12px;background:#f3f8fd;border:1px solid #dce8f4;display:flex;gap:8px;color:#5c7189;font-size:10px;line-height:1.4}.airport-auto-note b{flex:0 0 auto;color:#285982}
.review-overview{display:grid;grid-template-columns:repeat(3,1fr);margin-bottom:15px;overflow:hidden;border:1px solid #e1e8f0;border-radius:16px;background:#fbfcfe}.review-stat{padding:14px 16px;border-right:1px solid #e1e8f0}.review-stat:last-child{border-right:0}.review-stat small,.review-stat b{display:block}.review-stat small{color:#7a899b;font-size:8px;font-weight:900;letter-spacing:.09em}.review-stat b{margin-top:4px;color:#0c2b55;font-size:14px}.review-journeys{display:grid;gap:10px}.review-journey{overflow:hidden;border:1px solid #e1e8f0;border-radius:17px;background:#fff}.review-journey header{padding:11px 15px;background:#eef6ff;display:flex;justify-content:space-between;gap:10px;align-items:baseline}.review-journey header small{color:#607e9d;font-size:8px;font-weight:900;letter-spacing:.1em}.review-journey header b{color:#23486f;font-size:10px}.review-journey>div{display:grid;grid-template-columns:54px minmax(0,1fr);gap:10px;padding:11px 15px;border-top:1px solid #edf1f5}.review-journey>div span{color:#8592a2;font-size:8px;font-weight:900;letter-spacing:.08em}.review-journey>div strong{font-size:12px;color:#163556}.price-assurance{margin-top:16px;padding:13px 14px;border:1px solid #d9e8f7;border-radius:14px;background:#f4f9ff;display:flex;gap:10px;align-items:flex-start}.price-assurance>span{width:24px;height:24px;flex:0 0 auto;border-radius:50%;display:grid;place-items:center;background:#dceefe;color:#0a61b3;font-size:11px;font-weight:900}.price-assurance p{margin:0;color:#617890;font-size:10px;line-height:1.45}.price-assurance b{color:#234f7e}.admin-options{margin-top:14px;border:1px dashed #d7e1eb;border-radius:13px;background:#fff}.admin-options summary{cursor:pointer;padding:12px 14px;color:#5b7088;font-size:11px;font-weight:800}.admin-options>div{padding:0 14px 14px}.admin-options label{max-width:320px;display:block}.admin-options p{margin:8px 0 0;color:#8a97a7;font-size:9px}
.quote-alert{margin:14px 0;padding:14px 16px;border:1px solid;border-radius:14px;display:none;grid-template-columns:minmax(0,1fr) auto;gap:5px 12px;align-items:center}.quote-alert b,.quote-alert span{display:block}.quote-alert b{font-size:12px}.quote-alert span{font-size:11px;line-height:1.4}.quote-alert a{grid-row:1/3;grid-column:2;color:inherit;font-weight:850;text-decoration:none}.quote-alert.is-visible,.quote-alert-error{display:grid}.quote-alert-warning{background:#fff8e9;border-color:#ecd497;color:#765812}.quote-alert-error{margin:-46px 18px 18px;background:#fff2f3;border-color:#efc7cd;color:#8c3040}
.quote-result{border:1px solid rgba(214,224,237,.95);border-radius:24px;background:#fff;box-shadow:0 16px 40px rgba(8,32,70,.11),0 2px 6px rgba(8,32,70,.04);overflow:hidden}.quote-result-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;padding:25px 26px;background:#fff}.quote-result-head small{display:block;color:#71829a;font-size:9px;font-weight:900;letter-spacing:.10em}.quote-result-head h2{margin:5px 0 0;font-size:37px;line-height:1;letter-spacing:-.045em;color:#071a3b}.quote-result-head p{margin:8px 0 0;max-width:530px;color:#6c7d92;font-size:11px;line-height:1.45}.quote-vehicle-pill{flex:0 0 auto;border-radius:999px;padding:7px 10px;background:#eef6ff;color:#195b99;font-size:10px;font-weight:850}.quote-result.is-review .quote-result-head{background:#fff9eb}.quote-result.is-review .quote-result-head h2{font-size:27px;color:#765800;line-height:1.08}.result-journeys{display:grid;gap:0;border-top:1px solid #e5ebf2}.result-journey-card{border-bottom:1px solid #e5ebf2}.result-journey-date{padding:12px 20px;background:#eef6ff;display:flex;justify-content:space-between;gap:12px;align-items:baseline}.result-journey-date small{font-size:9px;font-weight:900;letter-spacing:.08em;color:#5f7d9c}.result-journey-date strong{font-size:11px;color:#183c67}.result-route{padding:17px 20px}.result-route>div{display:grid;grid-template-columns:38px 1fr;gap:11px;align-items:center}.result-route i{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#f2f7fc;border:1px solid #dce6f1;color:#123b6d;font-style:normal;font-size:21px;font-weight:850}.result-route>div:last-child i{background:#071b3e;color:#fff;border-color:#071b3e}.result-route small,.result-route b{display:block}.result-route small{font-size:8px;font-weight:900;letter-spacing:.09em;color:#7b899a}.result-route b{margin-top:2px;font-size:14px;line-height:1.3}.result-route em{display:block;width:2px;height:15px;margin-left:17px;background:repeating-linear-gradient(to bottom,#cbd8e7 0 4px,transparent 4px 8px)}.result-leg-price{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:11px 20px;border-top:1px solid #edf1f5;background:#fbfcfe}.result-leg-price span{color:#8491a0;font-size:9px}.result-leg-price strong{font-size:15px;color:#0b2d5a}.quote-result-note{margin:0;padding:12px 20px;color:#61758d;background:#f8fafc;font-size:10px;text-align:right}
.quote-contact-card{margin:18px;border:1px solid #dce6f1;border-radius:19px;background:#fff;box-shadow:0 7px 22px rgba(8,32,70,.05);padding:20px}.contact-card-copy>small{display:block;color:#5f80a5;font-size:8px;font-weight:900;letter-spacing:.1em}.contact-card-copy h3{margin:4px 0 0;font-size:20px;letter-spacing:-.025em;color:#0b2851}.contact-card-copy p{margin:6px 0 0;max-width:600px;color:#708197;font-size:11px;line-height:1.45}.quote-contact-form{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin-top:17px}.contact-name{grid-column:1/3}.contact-notes{grid-column:1/3}.quote-contact-form label>span em{font-style:normal;color:#9aa5b2;font-weight:600}.contact-submit{grid-column:1/3;justify-self:end;min-width:170px}.quote-saved-card{margin:18px;padding:16px 18px;border:1px solid #cce6d9;border-radius:17px;background:#f1fbf6;display:flex;gap:13px;align-items:flex-start}.saved-tick{width:32px;height:32px;flex:0 0 auto;border-radius:50%;display:grid;place-items:center;background:#d9f1e5;color:#087a53;font-size:14px;font-weight:900}.quote-saved-card b,.quote-saved-card p,.quote-saved-card small{display:block}.quote-saved-card b{color:#155d45;font-size:14px}.quote-saved-card p{margin:3px 0 0;color:#467363;font-size:11px;line-height:1.4}.quote-saved-card small{margin-top:4px;color:#789489;font-size:9px}.quote-result-actions{display:flex;align-items:center;flex-wrap:wrap;gap:9px;padding:0 18px 18px}.quote-result-actions form{margin:0}.quote-secondary-link,.quote-admin-review-link{min-height:42px;display:inline-flex;align-items:center;border-radius:11px;padding:0 15px;text-decoration:none;font-size:11px;font-weight:850}.quote-secondary-link{border:1px solid #d2dce7;color:#38506c;background:#fff}.quote-admin-review-link{margin-left:auto;color:#0b5da8;background:#eef6ff}.quote-secondary-button{font-size:11px;min-height:42px}
.quote-footer{display:flex;justify-content:space-between;gap:12px;padding:18px 5px 0;color:#8b98a9;font-size:9px}.quote-footer span:first-child{font-weight:850;color:#607187}
.review-journey-group{padding:14px 0;border-bottom:1px solid #edf1f5}.review-journey-group:last-child{border-bottom:0}.pad-return-row{display:block;margin-top:8px}
@media(max-width:700px){.quote-shell{width:calc(100% - 16px)}.quote-hero{margin:0 -8px;padding:18px 18px 78px;min-height:220px}.quote-logo{width:120px}.quote-hero-copy{margin-top:25px}.quote-hero-copy h1{font-size:28px}.quote-hero-copy p{font-size:12px}.quote-wizard,.quote-result{margin-top:-50px}.quote-progress{margin:0 8px 10px}.quote-progress button{min-height:49px;padding:6px 3px}.quote-progress button span{display:none}.quote-progress button b{width:26px;height:26px}.completed-stack{margin:0 8px 10px}.completed-card{grid-template-columns:28px minmax(0,1fr) auto}.quote-step{padding:21px 17px;border-radius:20px}.step-copy h2{font-size:24px}.choice-grid{grid-template-columns:1fr}.choice-card{min-height:92px}.date-time-grid{grid-template-columns:1fr}.journey-step-head{display:block}.journey-date-chip{display:inline-block;margin-top:10px;white-space:normal}.direction-segment{grid-template-columns:1fr 1fr}.direction-segment button{padding:10px}.journey-route-form{padding:20px 16px 15px}.journey-route-row{grid-template-columns:42px minmax(0,1fr);gap:11px}.route-circle{width:40px;height:40px}.route-dash{width:42px}.route-field input[type=text]{font-size:15px}.stop-field label{grid-template-columns:1fr}.stop-field .pad-address-suggestions{left:0}.airport-auto-note{display:block}.airport-auto-note b{display:block;margin-bottom:3px}.review-overview{grid-template-columns:1fr}.review-stat{border-right:0;border-bottom:1px solid #e1e8f0}.review-stat:last-child{border-bottom:0}.step-actions{display:grid;grid-template-columns:1fr 1.5fr}.step-actions.one-action{display:flex}.quote-result-head{padding:20px}.quote-result-head h2{font-size:32px}.result-journey-date{display:block}.result-journey-date strong{display:block;margin-top:3px}.quote-alert-error{margin:-40px 8px 14px}.quote-contact-card{margin:14px}.quote-contact-form{grid-template-columns:1fr}.contact-name,.contact-notes,.contact-submit{grid-column:auto}.contact-submit{width:100%;justify-self:stretch}.quote-result-actions{padding:0 14px 14px}.quote-admin-review-link{margin-left:0}.traveller-fields{grid-template-columns:1fr 1fr}}
@media(max-width:430px){.traveller-fields{grid-template-columns:1fr}.direction-segment{grid-template-columns:1fr}.direction-segment button{border-right:0;border-bottom:1px solid #dce5ef}.direction-segment button:last-child{border-bottom:0}.quote-hero-copy p{max-width:330px}.quote-result-head{display:block}.quote-vehicle-pill{display:inline-block;margin-top:12px}.quote-footer{display:block}.quote-footer span{display:block;margin-top:3px}}


/* ============================================================
   RC8.2 — journey guardrails + attached workflow surface
   ============================================================ */

/* Progress is now physically part of the same white workflow surface,
   matching the Journey 1 / Journey 2 tabs on the customer booking page. */
.quote-wizard{
  background:#fff!important;
  border:1px solid rgba(214,224,237,.96);
  border-radius:24px;
  box-shadow:0 16px 40px rgba(8,32,70,.10),0 2px 6px rgba(8,32,70,.04);
}
.quote-progress{
  margin:0!important;
  border:0!important;
  border-bottom:1px solid #e2e9f1!important;
  border-radius:24px 24px 0 0!important;
  box-shadow:none!important;
  overflow:hidden;
}
.completed-stack{
  margin:0!important;
  padding:0 18px!important;
  background:#f8fafc;
}
.completed-stack.has-items{
  padding-top:12px!important;
  padding-bottom:12px!important;
  border-bottom:1px solid #e5ebf2;
}
.quote-step{
  border:0!important;
  border-radius:0 0 24px 24px!important;
  box-shadow:none!important;
  margin:0!important;
}
.quote-step[hidden]{display:none!important}

/* Make the collection-origin decision unmistakable. */
.direction-question{
  margin:0 0 10px;
}
.direction-question b,
.direction-question span{
  display:block;
}
.direction-question b{
  color:#102b50;
  font-size:13px;
}
.direction-question span{
  margin-top:3px;
  color:#78889b;
  font-size:11px;
}
.direction-segment{
  max-width:none!important;
  margin-bottom:8px!important;
}
.direction-segment button{
  min-height:67px;
  padding:13px 15px!important;
}
.direction-segment button b{
  font-size:13px!important;
}
.service-area-hint{
  margin:0 0 16px;
  padding:0 2px;
  color:#71839a;
  font-size:10px;
  line-height:1.4;
}
.service-area-hint b{
  color:#456786;
}

/* Address card appears only after the customer has explicitly chosen
   whether collection is from an address or from the airport. */
.journey-builder[hidden]{
  display:none!important;
}
.journey-builder:not([hidden]){
  animation:padQuoteReveal .16s ease-out;
}
@keyframes padQuoteReveal{
  from{opacity:0;transform:translateY(5px)}
  to{opacity:1;transform:translateY(0)}
}

/* Reusable Premier modal */
body.quote-modal-open{
  overflow:hidden;
}
.quote-modal-backdrop{
  position:fixed;
  z-index:9999;
  inset:0;
  display:grid;
  place-items:center;
  padding:20px;
  background:rgba(4,17,42,.56);
  backdrop-filter:blur(4px);
}
.quote-modal-backdrop[hidden]{
  display:none!important;
}
.quote-modal{
  width:min(100%,440px);
  border:1px solid rgba(214,224,237,.98);
  border-radius:22px;
  background:#fff;
  padding:23px;
  box-shadow:0 24px 70px rgba(1,15,38,.30);
}
.quote-modal-icon{
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  margin-bottom:15px;
  border-radius:50%;
  background:#eef6ff;
  color:#0e61b5;
  font-size:19px;
  font-weight:950;
}
.quote-modal-copy small{
  display:block;
  margin-bottom:5px;
  color:#6781a0;
  font-size:9px;
  font-weight:900;
  letter-spacing:.11em;
}
.quote-modal-copy h2{
  margin:0;
  color:#081d42;
  font-size:23px;
  line-height:1.1;
  letter-spacing:-.025em;
}
.quote-modal-copy p{
  margin:10px 0 0;
  color:#64758b;
  font-size:13px;
  line-height:1.5;
}
.quote-modal-actions{
  display:flex;
  justify-content:flex-end;
  gap:9px;
  margin-top:22px;
}
.quote-modal-primary,
.quote-modal-secondary{
  min-height:43px;
  border-radius:11px;
  padding:0 15px;
  font-weight:850;
  cursor:pointer;
}
.quote-modal-primary{
  border:1px solid #082757;
  background:#082757;
  color:#fff;
}
.quote-modal-secondary{
  border:1px solid #d3dde8;
  background:#fff;
  color:#405873;
}
.quote-modal-secondary[hidden]{
  display:none!important;
}

@media(max-width:700px){
  .quote-wizard{
    border-radius:20px;
  }
  .quote-progress{
    border-radius:20px 20px 0 0!important;
  }
  .completed-stack{
    padding-left:10px!important;
    padding-right:10px!important;
  }
  .completed-stack.has-items{
    padding-top:10px!important;
    padding-bottom:10px!important;
  }
  .quote-step{
    border-radius:0 0 20px 20px!important;
  }
}

@media(max-width:430px){
  .quote-modal{
    padding:20px 17px;
    border-radius:19px;
  }
  .quote-modal-actions{
    display:grid;
    grid-template-columns:1fr;
  }
  .quote-modal-primary,
  .quote-modal-secondary{
    width:100%;
  }
}


/* ============================================================
   RC9 — conversion-first quote UX
   ============================================================ */

/* Completed route summaries use concise place names rather than raw
   Autocab address strings. */
.completed-card b{
  max-width:100%;
}

/* Step 3/4: make the initial collection decision feel like a decision,
   not like two tabs the user might accidentally keep toggling. */
.collection-choice-panel{
  margin-top:6px;
}
.collection-choice-panel[hidden],
.collection-choice-confirmed[hidden]{
  display:none!important;
}
.collection-choice-panel .direction-question{
  margin-bottom:12px;
}
.collection-choice-panel .direction-segment{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:12px!important;
  border:0!important;
  border-radius:0!important;
  overflow:visible!important;
  margin:0 0 18px!important;
}
.collection-choice-panel .direction-segment button{
  min-height:104px!important;
  display:grid!important;
  grid-template-columns:44px minmax(0,1fr)!important;
  gap:12px!important;
  align-items:center!important;
  border:1px solid #d9e3ee!important;
  border-radius:17px!important;
  background:#fff!important;
  padding:16px!important;
  box-shadow:0 4px 14px rgba(8,32,70,.035);
  color:#18385e!important;
}
.collection-choice-panel .direction-segment button:hover{
  border-color:#9cb8d5!important;
  background:#f8fbff!important;
}
.collection-choice-mark{
  width:42px;
  height:42px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:#eef6ff;
  color:#0d5fab;
  font-size:17px;
  font-weight:900;
}
.collection-choice-panel .direction-segment button>span:last-child{
  min-width:0;
}
.collection-choice-panel .direction-segment button b{
  font-size:14px!important;
  color:#12345d!important;
}
.collection-choice-panel .direction-segment button small{
  margin-top:4px!important;
  color:#71849b!important;
  font-size:11px!important;
  line-height:1.35;
}
.collection-choice-confirmed{
  min-height:54px;
  margin:0 0 14px;
  padding:10px 13px;
  border:1px solid #dce6f0;
  border-radius:14px;
  background:#f8fbfe;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.collection-choice-confirmed span small,
.collection-choice-confirmed span b{
  display:block;
}
.collection-choice-confirmed span small{
  color:#7a8c9f;
  font-size:8px;
  font-weight:900;
  letter-spacing:.1em;
}
.collection-choice-confirmed span b{
  margin-top:2px;
  color:#153d6a;
  font-size:13px;
}
.collection-choice-confirmed button{
  appearance:none;
  border:0;
  background:transparent;
  color:#0b63b9;
  font-size:10px;
  font-weight:850;
  cursor:pointer;
}

/* No internal postcode syntax in the normal customer flow. */
.service-area-hint{
  display:none!important;
}

/* The route card is completely absent until the customer commits to
   Address or Airport. */
.journey-builder[hidden]{
  display:none!important;
}

/* Avoid showing an error state before the user has attempted to continue. */
.route-field input[type=text]{
  box-shadow:none!important;
}
.route-field input[type=text]:invalid{
  border-bottom-color:#e0e7ef!important;
}
.route-field input.needs-selection{
  border-bottom-color:#d75d6c!important;
}

/* Final review: deliberately mirrors the live Your Booking screen. */
.review-trip-summary{
  margin:-2px 0 14px;
  padding:11px 14px;
  border:1px solid #dce6f0;
  border-radius:13px;
  background:#f8fbfe;
  color:#31577f;
  font-size:11px;
  font-weight:800;
  text-align:center;
}
.review-booking-card{
  overflow:hidden;
  border:1px solid #d9e3ee;
  border-radius:22px;
  background:#fff;
  box-shadow:0 8px 24px rgba(8,32,70,.055);
}
.review-journey-tabs{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  background:#fff;
  border-bottom:1px solid #dfe7f0;
}
.review-journey-tabs button{
  appearance:none;
  position:relative;
  min-height:66px;
  border:0;
  border-right:1px solid #e3e9f0;
  background:#fff;
  color:#708197;
  cursor:pointer;
  padding:10px;
}
.review-journey-tabs button:last-child{
  border-right:0;
}
.review-journey-tabs button span,
.review-journey-tabs button small{
  display:block;
}
.review-journey-tabs button span{
  font-size:13px;
  font-weight:850;
}
.review-journey-tabs button small{
  margin-top:4px;
  font-size:10px;
  font-weight:750;
}
.review-journey-tabs button.is-active{
  color:#123d70;
  background:#f3f8fe;
}
.review-journey-tabs button.is-active:after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:3px;
  background:#1182ef;
}
.review-journey-tabs button[hidden]{
  display:none!important;
}
.review-journey-tabs button[hidden] + button{
  border-left:0;
}
.review-journey-tabs:has(button#reviewJourney2Tab[hidden]){
  grid-template-columns:1fr;
}
.review-collection-band{
  padding:14px 20px;
  background:#eef6ff;
  border-bottom:1px solid #dce8f4;
}
.review-collection-band small,
.review-collection-band strong{
  display:block;
}
.review-collection-band small{
  color:#6480a0;
  font-size:9px;
  font-weight:900;
  letter-spacing:.11em;
}
.review-collection-band strong{
  margin-top:4px;
  color:#0a315f;
  font-size:16px;
  line-height:1.3;
}
.review-route-ticket{
  padding:22px 20px;
}
.review-route-line{
  display:grid;
  grid-template-columns:44px minmax(0,1fr);
  gap:14px;
  align-items:center;
}
.review-route-circle{
  width:42px;
  height:42px;
  border-radius:50%;
  display:grid;
  place-items:center;
  border:1px solid #dce6f1;
  background:#f2f7fc;
  color:#123b6d;
  font-size:23px;
  font-weight:850;
}
.review-route-circle.is-to{
  background:#071b3e;
  border-color:#071b3e;
  color:#fff;
}
.review-route-line div{
  min-width:0;
}
.review-route-line small,
.review-route-line b,
.review-route-line em{
  display:block;
}
.review-route-line small{
  color:#78889d;
  font-size:9px;
  font-weight:900;
  letter-spacing:.09em;
}
.review-route-line b{
  margin-top:3px;
  color:#0b254c;
  font-size:17px;
  line-height:1.25;
}
.review-route-line em{
  margin-top:3px;
  color:#6e8097;
  font-size:11px;
  font-style:normal;
}
.review-route-connector{
  display:block;
  width:2px;
  height:20px;
  margin-left:20px;
  background:repeating-linear-gradient(to bottom,#cbd8e7 0 5px,transparent 5px 10px);
}

/* Quote result route detail — cleaner and closer to Your Booking. */
.result-route>div span em{
  display:block;
  margin-top:2px;
  color:#708198;
  font-size:10px;
  font-style:normal;
  font-weight:500;
}
.result-route-dash{
  display:block;
  width:2px;
  height:15px;
  margin-left:17px;
  background:repeating-linear-gradient(to bottom,#cbd8e7 0 4px,transparent 4px 8px);
}

/* Price -> explicit booking conversion -> details. */
.booking-conversion-card{
  margin:18px;
  padding:18px 20px;
  border:1px solid #d7e5f3;
  border-radius:18px;
  background:linear-gradient(135deg,#f5faff,#edf6ff);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
}
.booking-conversion-card[hidden]{
  display:none!important;
}
.booking-conversion-card small,
.booking-conversion-card h3,
.booking-conversion-card p{
  display:block;
}
.booking-conversion-card small{
  color:#5f80a5;
  font-size:8px;
  font-weight:900;
  letter-spacing:.1em;
}
.booking-conversion-card h3{
  margin:4px 0 0;
  color:#0b2851;
  font-size:20px;
  letter-spacing:-.025em;
}
.booking-conversion-card p{
  margin:6px 0 0;
  max-width:530px;
  color:#657b94;
  font-size:11px;
  line-height:1.45;
}
.booking-conversion-card .quote-primary-button{
  flex:0 0 auto;
  min-width:150px;
}
.quote-contact-card[hidden]{
  display:none!important;
}
.quote-contact-card.is-collapsed{
  margin-top:18px;
}
.booking-request-success{
  margin:18px;
  padding:18px;
  border:1px solid #cce6d9;
  border-radius:18px;
  background:#f1fbf6;
  display:flex;
  gap:13px;
  align-items:flex-start;
}
.booking-request-success.is-review{
  border-color:#ead9aa;
  background:#fff9e9;
}
.booking-request-success small,
.booking-request-success b,
.booking-request-success p,
.booking-request-success strong{
  display:block;
}
.booking-request-success small{
  color:#5d8575;
  font-size:8px;
  font-weight:900;
  letter-spacing:.1em;
}
.booking-request-success b{
  margin-top:3px;
  color:#155d45;
  font-size:17px;
}
.booking-request-success p{
  margin:5px 0 0;
  color:#467363;
  font-size:11px;
  line-height:1.45;
}
.booking-request-success strong{
  margin-top:8px;
  color:#124b3a;
  font-size:13px;
}
.booking-request-success.is-review small,
.booking-request-success.is-review b,
.booking-request-success.is-review p,
.booking-request-success.is-review strong{
  color:#745b1c;
}

/* Old review table styles are superseded. */
.review-overview,
.review-journeys{
  display:none!important;
}

@media(max-width:700px){
  .collection-choice-panel .direction-segment{
    grid-template-columns:1fr!important;
  }
  .collection-choice-panel .direction-segment button{
    min-height:90px!important;
  }
  .booking-conversion-card{
    display:block;
    margin:14px;
  }
  .booking-conversion-card .quote-primary-button{
    width:100%;
    margin-top:14px;
  }
  .review-route-line b{
    font-size:15px;
  }
}

@media(max-width:430px){
  .review-journey-tabs button{
    min-height:60px;
  }
  .review-collection-band{
    padding:13px 16px;
  }
  .review-route-ticket{
    padding:18px 15px;
  }
  .review-route-line{
    grid-template-columns:40px minmax(0,1fr);
    gap:11px;
  }
  .review-route-circle{
    width:38px;
    height:38px;
  }
  .review-route-connector{
    margin-left:18px;
  }
}


/* ============================================================
   RC9.1 — quote result mirrors the live Your Booking screen
   ============================================================ */

.booking-result-head{
  padding:20px 24px 17px!important;
  align-items:center!important;
  border-bottom:1px solid #e3eaf2;
}
.booking-result-head h2{
  margin-top:5px!important;
  font-size:23px!important;
  letter-spacing:-.025em!important;
}
.booking-result-head p{
  margin-top:5px!important;
}

.result-booking-card{
  overflow:hidden;
  margin:0;
  border:0;
  background:#fff;
}

.result-journey-tabs{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  background:#fff;
  border-bottom:1px solid #dfe7f0;
}
.result-journey-tabs button{
  appearance:none;
  position:relative;
  min-height:72px;
  border:0;
  border-right:1px solid #e2e8ef;
  background:#fff;
  color:#75869d;
  padding:11px 10px;
  cursor:pointer;
}
.result-journey-tabs button:last-child{
  border-right:0;
}
.result-journey-tabs button span,
.result-journey-tabs button small{
  display:block;
}
.result-journey-tabs button span{
  color:inherit;
  font-size:14px;
  font-weight:850;
}
.result-journey-tabs button small{
  margin-top:5px;
  color:#8394aa;
  font-size:11px;
  font-weight:750;
}
.result-journey-tabs button.is-active{
  background:#f3f8fe;
  color:#0b315f;
}
.result-journey-tabs button.is-active:after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:4px;
  background:#1684ef;
}

.result-booking-journey[hidden]{
  display:none!important;
}
.result-collection-band{
  padding:17px 28px;
  background:#eef6ff;
  border-bottom:1px solid #dbe7f3;
}
.result-collection-band small,
.result-collection-band strong{
  display:block;
}
.result-collection-band small{
  color:#587ca4;
  font-size:10px;
  font-weight:900;
  letter-spacing:.11em;
}
.result-collection-band strong{
  margin-top:6px;
  color:#092b59;
  font-size:24px;
  line-height:1.16;
  letter-spacing:-.025em;
}

.result-booking-route{
  padding:25px 27px 28px;
}
.result-booking-line{
  display:grid;
  grid-template-columns:55px minmax(0,1fr);
  gap:17px;
  align-items:center;
}
.result-booking-circle{
  width:52px;
  height:52px;
  display:grid;
  place-items:center;
  border:1px solid #d8e4ef;
  border-radius:50%;
  background:#f2f7fc;
  color:#124479;
  font-size:29px;
  font-weight:850;
}
.result-booking-circle.is-to{
  border-color:#061d45;
  background:#061d45;
  color:#fff;
}
.result-booking-line>div{
  min-width:0;
}
.result-booking-line small,
.result-booking-line b,
.result-booking-line em{
  display:block;
}
.result-booking-line small{
  color:#74869c;
  font-size:10px;
  font-weight:900;
  letter-spacing:.10em;
}
.result-booking-line b{
  margin-top:4px;
  color:#071d43;
  font-size:24px;
  line-height:1.12;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:-.02em;
}
.result-booking-line em{
  margin-top:4px;
  color:#657b96;
  font-size:17px;
  line-height:1.28;
  font-style:normal;
  font-weight:500;
}
.result-booking-connector{
  display:block;
  width:3px;
  height:24px;
  margin-left:25px;
  background:repeating-linear-gradient(to bottom,#cbd9e8 0 7px,transparent 7px 13px);
}

/* Old stacked / split-fare result presentation is intentionally superseded. */
.result-journeys,
.result-journey-card,
.result-leg-price,
.quote-result-note{
  display:none!important;
}

.combined-quote-price{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:19px 25px;
  border-top:1px solid #e2e8ef;
  background:#f8fafc;
}
.combined-quote-price small,
.combined-quote-price span{
  display:block;
}
.combined-quote-price small{
  color:#687f99;
  font-size:9px;
  font-weight:900;
  letter-spacing:.11em;
}
.combined-quote-price span{
  margin-top:4px;
  color:#75879c;
  font-size:11px;
}
.combined-quote-price strong{
  color:#071d43;
  font-size:33px;
  line-height:1;
  letter-spacing:-.035em;
}
.combined-price-validity{
  margin:0;
  padding:9px 25px 15px;
  background:#f8fafc;
  color:#78889b;
  font-size:10px;
  text-align:right;
}

/* Terms / suitability checkpoint before Make booking. */
.booking-conversion-card{
  display:block!important;
}
.booking-conversion-card[hidden]{
  display:none!important;
}
.booking-ready-copy{
  margin-bottom:15px;
}
.booking-terms-confirmation{
  display:grid;
  grid-template-columns:22px minmax(0,1fr);
  gap:11px;
  align-items:flex-start;
  padding:14px;
  border:1px solid #d7e2ed;
  border-radius:14px;
  background:#fff;
  cursor:pointer;
}
.booking-terms-confirmation input{
  width:18px;
  height:18px;
  margin:2px 0 0;
  accent-color:#0b5eaa;
}
.booking-terms-confirmation b,
.booking-terms-confirmation em{
  display:block;
}
.booking-terms-confirmation b{
  color:#15375f;
  font-size:11px;
}
.booking-terms-confirmation em{
  margin-top:4px;
  color:#6c7f95;
  font-size:10px;
  line-height:1.45;
  font-style:normal;
}
.vehicle-suitability-warning{
  margin-top:10px;
  padding:12px 14px;
  border:1px solid #ecd9a9;
  border-radius:13px;
  background:#fff9e9;
}
.vehicle-suitability-warning b,
.vehicle-suitability-warning span{
  display:block;
}
.vehicle-suitability-warning b{
  color:#755a1b;
  font-size:10px;
}
.vehicle-suitability-warning span{
  margin-top:3px;
  color:#7e6a3d;
  font-size:10px;
  line-height:1.45;
}
.vehicle-suitability-warning a{
  color:#0a5da8;
  font-weight:850;
  text-decoration:none;
}
.booking-make-button{
  width:100%;
  margin-top:13px;
}
.booking-make-button:disabled{
  opacity:.42;
  cursor:not-allowed;
  box-shadow:none;
}

@media(max-width:700px){
  .booking-result-head{
    padding:18px 17px 15px!important;
  }
  .result-journey-tabs button{
    min-height:64px;
  }
  .result-collection-band{
    padding:15px 18px;
  }
  .result-collection-band strong{
    font-size:20px;
  }
  .result-booking-route{
    padding:22px 17px 24px;
  }
  .result-booking-line{
    grid-template-columns:48px minmax(0,1fr);
    gap:13px;
  }
  .result-booking-circle{
    width:46px;
    height:46px;
    font-size:25px;
  }
  .result-booking-connector{
    margin-left:22px;
  }
  .result-booking-line b{
    font-size:19px;
  }
  .result-booking-line em{
    font-size:14px;
  }
  .combined-quote-price{
    padding:17px 18px;
  }
  .combined-quote-price strong{
    font-size:29px;
  }
  .combined-price-validity{
    padding:8px 18px 13px;
  }
}

@media(max-width:430px){
  .booking-result-head{
    display:flex!important;
  }
  .booking-result-head .quote-vehicle-pill{
    margin-top:0!important;
  }
  .result-booking-line b{
    font-size:17px;
  }
  .result-booking-line em{
    font-size:12px;
  }
}


/* ============================================================
   RC9.2 — result header alignment with Your Booking
   ============================================================ */

/* Match the live Your Booking title rather than using heavier/larger
   quote-specific display typography. */
.quote-hero-copy h1{
  margin:0!important;
  font-size:31px!important;
  line-height:1.04!important;
  letter-spacing:-.035em!important;
  font-weight:850!important;
}
.quote-hero-copy{
  margin-top:30px!important;
}
.quote-hero-copy p{
  margin-top:10px!important;
}

/* With the duplicate automatic-quote header removed, the Journey tabs
   become the first white surface beneath the hero, as on Your Booking. */
.quote-result:not(.is-review) .result-booking-card{
  border-radius:23px 23px 0 0;
}
.quote-result:not(.is-review) .result-journey-tabs{
  border-radius:23px 23px 0 0;
  overflow:hidden;
}

/* The wrapper already provides the outer radius/shadow, so the tabs now
   visually attach directly to the result card without an extra heading. */
.quote-result:not(.is-review){
  overflow:hidden;
}

@media(max-width:700px){
  .quote-hero-copy h1{
    font-size:27px!important;
  }
}


/* ============================================================
   RC10 — exact pad/index.php template match for priced result
   ============================================================ */

/*
   The priced result now loads customer.css AFTER this stylesheet and uses
   the same markup/classes as pad/index.php:
     .pad-shell
     .trip-hero
     .trip-brand
     .trip-hero-content
     .trip-hero-copy
     .journey-wrap
     .journey-tabs / .journey-tab
     .journey-ticket
     .ticket-collection
     .ticket-route
     .route-stop
     .route-icon
     .route-copy
     .route-connector

   Do not restyle those here: customer.css is the source of truth.
*/

.quote-result-template{
  max-width:none!important;
}

.quote-result-template .journey-tab{
  font-family:inherit;
  cursor:pointer;
}

.quote-result-journey-panel[hidden]{
  display:none!important;
}

/* One combined price, attached to the bottom of the journey component. */
.quote-ticket-total{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:17px 24px;
  border-top:1px solid #e3eaf2;
  background:#fbfcfe;
}
.quote-ticket-total small,
.quote-ticket-total span{
  display:block;
}
.quote-ticket-total small{
  color:#73839a;
  font-size:9px;
  font-weight:850;
  letter-spacing:.10em;
}
.quote-ticket-total span{
  margin-top:3px;
  color:#667a93;
  font-size:11px;
}
.quote-ticket-total>strong{
  color:#071a3b;
  font-size:28px;
  line-height:1;
  letter-spacing:-.025em;
  white-space:nowrap;
}
.quote-ticket-validity{
  padding:0 24px 14px;
  background:#fbfcfe;
  color:#7b8a9e;
  font-size:10px;
  text-align:right;
}

/* Make booking is a separate card at the same hierarchy as YOUR DRIVER. */
.quote-booking-section{
  position:relative;
}
.quote-booking-section[hidden]{
  display:none!important;
}
.quote-booking-copy{
  margin-bottom:15px;
}
.quote-booking-copy h2{
  margin:0;
  color:#071a3b;
  font-size:24px;
  line-height:1.1;
  letter-spacing:-.02em;
}
.quote-booking-copy p{
  margin:6px 0 0;
  max-width:610px;
  color:#60738e;
  font-size:13px;
  line-height:1.45;
}

.quote-booking-section .booking-terms-confirmation{
  margin-top:12px;
}
.quote-booking-section .vehicle-suitability-warning{
  margin-top:10px;
}
.quote-booking-section .booking-make-button{
  margin-top:13px;
}

.quote-contact-section{
  margin-top:20px!important;
}

.quote-success-layout{
  display:grid;
  grid-template-columns:44px minmax(0,1fr);
  gap:13px;
  align-items:flex-start;
}
.quote-success-layout .saved-tick{
  width:42px;
  height:42px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:#e9f8f1;
  color:#07865b;
  font-size:18px;
  font-weight:900;
}
.quote-success-layout h2{
  margin:0;
  color:#071a3b;
  font-size:22px;
  line-height:1.1;
}
.quote-success-layout p{
  margin:5px 0 0;
  color:#60738e;
  font-size:13px;
  line-height:1.45;
}
.quote-success-layout strong{
  display:block;
  margin-top:7px;
  color:#0b4f3b;
  font-size:13px;
}

.quote-manual-review-banner{
  margin-top:-62px;
  position:relative;
  z-index:3;
  padding:20px 24px;
}
.quote-manual-review-banner small{
  color:#8d6c1e;
  font-size:9px;
  font-weight:900;
  letter-spacing:.1em;
}
.quote-manual-review-banner h2{
  margin:5px 0 0;
  font-size:22px;
}
.quote-manual-review-banner p{
  margin:6px 0 0;
  color:#687a91;
  font-size:12px;
}

.quote-template-actions{
  margin-top:18px;
  padding:0 4px;
}

.quote-result-template .pad-footer{
  margin-top:22px;
}

@media(max-width:540px){
  .quote-ticket-total{
    padding:15px 18px;
  }
  .quote-ticket-total>strong{
    font-size:25px;
  }
  .quote-ticket-validity{
    padding:0 18px 12px;
  }
  .quote-booking-copy h2{
    font-size:22px;
  }
}

/* ============================================================
   RC11 — final priced-result polish
   index.php / customer.css remains the locked visual source of truth.
   This block only styles quote-specific controls that do not exist there.
   ============================================================ */

/* Keep the price footer useful without turning Edit journey into a second CTA. */
.quote-ticket-tools{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
  padding:0 24px 14px;
  background:#fbfcfe;
  color:#7b8a9e;
  font-size:10px;
  line-height:1.4;
}
.quote-edit-journey-form,
.quote-manual-edit-form{
  margin:0;
}
.edit-journey-link{
  appearance:none;
  border:0;
  background:transparent;
  padding:2px 0;
  color:#0b5fae;
  font:inherit;
  font-size:11px;
  font-weight:700;
  cursor:pointer;
  text-decoration:underline;
  text-underline-offset:3px;
}
.edit-journey-link:hover{
  color:#083f78;
}

/* Final booking card: one required decision, one primary action, then help. */
.quote-booking-section .quote-booking-copy{
  margin-bottom:16px;
}
.quote-booking-section .quote-booking-copy h2{
  margin:0;
  color:#071a3b;
  font-size:24px;
  line-height:1.12;
  letter-spacing:-.02em;
  font-weight:700;
}

.booking-consent-row{
  display:grid;
  grid-template-columns:22px minmax(0,1fr);
  gap:11px;
  align-items:flex-start;
  padding:14px;
  border:1px solid #dfe7f1;
  border-radius:14px;
  background:#fbfcfe;
}
.booking-consent-row>input{
  width:18px;
  height:18px;
  margin:2px 0 0;
  accent-color:#0b5eaa;
  cursor:pointer;
}
.booking-consent-row p{
  margin:0;
  color:#314761;
  font-size:13px;
  line-height:1.5;
  font-weight:400;
}
.booking-consent-row label{
  cursor:pointer;
}
.booking-inline-terms{
  appearance:none;
  display:inline;
  border:0;
  background:transparent;
  padding:0;
  margin:0;
  color:#0b5fae;
  font:inherit;
  font-weight:600;
  cursor:pointer;
  text-decoration:underline;
  text-underline-offset:3px;
}
.booking-inline-terms:hover{
  color:#083f78;
}

.quote-booking-section .booking-make-button{
  width:100%;
  margin-top:14px;
}
.quote-booking-section .booking-make-button:disabled{
  opacity:.42;
  cursor:not-allowed;
  box-shadow:none;
}

.booking-help-line{
  margin-top:14px;
  padding-top:12px;
  border-top:1px solid #e8edf3;
  color:#748399;
  font-size:11px;
  line-height:1.45;
}
.booking-help-line span{
  display:block;
}
.booking-help-line a{
  display:inline-block;
  margin-top:3px;
  color:#0b5fae;
  font-weight:700;
  text-decoration:none;
}
.booking-help-line a:hover{
  text-decoration:underline;
  text-underline-offset:3px;
}

/* Start again is deliberately outside the booking card and visually tertiary. */
.quote-template-actions{
  justify-content:flex-end;
  gap:14px;
  margin-top:10px;
  padding:0 5px;
}
.quote-template-actions .quote-secondary-link{
  min-height:0;
  padding:4px 0;
  border:0;
  border-radius:0;
  background:transparent;
  color:#8491a3;
  font-size:10px;
  font-weight:600;
  text-decoration:none;
}
.quote-template-actions .quote-secondary-link:hover{
  color:#526a84;
  text-decoration:underline;
  text-underline-offset:3px;
}
.quote-template-actions .quote-manual-edit-form{
  margin-right:auto;
}

/* Travel-terms modal. Typography deliberately follows the locked customer page:
   strong hierarchy only where the booking confirmation screen already uses it. */
body.booking-terms-open{
  overflow:hidden;
}
.booking-terms-backdrop{
  position:fixed;
  z-index:10020;
  inset:0;
  display:grid;
  place-items:center;
  padding:20px;
  background:rgba(4,17,42,.58);
  backdrop-filter:blur(4px);
  -webkit-backdrop-filter:blur(4px);
}
.booking-terms-backdrop[hidden]{
  display:none!important;
}
.booking-terms-modal{
  position:relative;
  width:min(100%,470px);
  max-height:min(82vh,680px);
  overflow:auto;
  padding:24px;
  border:1px solid #dbe4ee;
  border-radius:22px;
  background:#fff;
  box-shadow:0 26px 78px rgba(3,18,45,.30);
}
.booking-terms-modal>small{
  display:block;
  color:#72849d;
  font-size:10px;
  font-weight:850;
  letter-spacing:.11em;
}
.booking-terms-modal>h2{
  margin:6px 36px 0 0;
  color:#071a3b;
  font-size:24px;
  line-height:1.12;
  letter-spacing:-.02em;
  font-weight:700;
}
.booking-terms-close{
  position:absolute;
  top:14px;
  right:14px;
  width:34px;
  height:34px;
  border:1px solid #dce5ee;
  border-radius:50%;
  background:#f7f9fc;
  color:#4a6079;
  font-size:20px;
  line-height:1;
  cursor:pointer;
}
.booking-terms-body{
  display:grid;
  gap:12px;
  margin-top:19px;
}
.booking-terms-body section{
  padding:14px 15px;
  border:1px solid #e2e8ef;
  border-radius:14px;
  background:#fbfcfe;
}
.booking-terms-body h3{
  margin:0;
  color:#15375f;
  font-size:13px;
  line-height:1.3;
  font-weight:700;
}
.booking-terms-body p{
  margin:5px 0 0;
  color:#66798f;
  font-size:12px;
  line-height:1.5;
  font-weight:400;
}
.booking-terms-body .booking-terms-call{
  background:#f7faff;
  border-color:#dce7f2;
}
.booking-terms-call a{
  display:inline-block;
  margin-top:8px;
  color:#0b5fae;
  font-size:12px;
  font-weight:700;
  text-decoration:none;
}
.booking-terms-call a:hover{
  text-decoration:underline;
  text-underline-offset:3px;
}
.booking-terms-done{
  width:100%;
  margin-top:18px;
}

@media(max-width:540px){
  .quote-ticket-tools{
    padding:0 18px 12px;
  }
  .quote-booking-section .quote-booking-copy h2{
    font-size:22px;
  }
  .booking-consent-row{
    padding:13px;
  }
  .booking-consent-row p{
    font-size:12px;
  }
  .booking-terms-modal{
    padding:21px 17px 18px;
    border-radius:19px;
  }
  .booking-terms-modal>h2{
    font-size:22px;
  }
}

/* ============================================================
   RC12 · FLIGHT CHECK + QUOTE LOADING
   New components follow the locked customer-page hierarchy:
   labels carry emphasis; explanatory/customer text remains regular.
   ============================================================ */

.flight-number-card{
  margin-top:14px;
  padding:15px 16px;
  border:1px solid #dfe7f1;
  border-radius:14px;
  background:#f8fbff;
}
.flight-number-card[hidden]{display:none!important}
.flight-number-card label{
  display:block;
}
.flight-number-card label>small{
  display:block;
  margin-bottom:7px;
  color:#72849d;
  font-size:10px;
  line-height:1.2;
  letter-spacing:.10em;
  font-weight:850;
}
.flight-number-card input[type="text"]{
  width:100%;
  min-height:48px;
  padding:0 13px;
  border:1px solid #d4dfeb;
  border-radius:12px;
  background:#fff;
  color:#102846;
  font:inherit;
  font-size:15px;
  font-weight:400;
  text-transform:uppercase;
  outline:none;
}
.flight-number-card input[type="text"]:focus{
  border-color:#68a9e8;
  box-shadow:0 0 0 3px rgba(17,130,239,.10);
}
.flight-number-card input[type="text"].needs-selection{
  border-color:#d45858;
  box-shadow:0 0 0 3px rgba(212,88,88,.08);
}
.flight-number-card>p{
  margin:8px 0 0;
  color:#70829a;
  font-size:11px;
  line-height:1.45;
  font-weight:400;
}
.flight-check-status{
  min-height:0;
  margin-top:7px;
  color:#70829a;
  font-size:11px;
  line-height:1.45;
  font-weight:400;
}
.flight-check-status:empty{display:none}
.flight-check-status.is-checking{color:#58708b}
.flight-check-status.is-ok{color:#087a53}
.flight-check-status.is-warning{color:#a34c22}
.flight-check-status.is-note{color:#61748e}

.review-flight-line{
  display:flex;
  align-items:baseline;
  gap:8px;
  padding:10px 18px;
  border-top:1px solid #e5edf5;
  background:#f8fbff;
}
.review-flight-line[hidden]{display:none!important}
.review-flight-line small{
  color:#72849d;
  font-size:9px;
  line-height:1.2;
  letter-spacing:.10em;
  font-weight:850;
}
.review-flight-line span{
  color:#425a76;
  font-size:11px;
  line-height:1.4;
  font-weight:400;
}

.ticket-flight-summary{
  display:flex;
  align-items:baseline;
  gap:8px;
  padding:10px 24px;
  border-top:1px solid #e3ebf3;
  background:#f8fbff;
}
.ticket-flight-summary small{
  color:#72849d;
  font-size:9px;
  letter-spacing:.10em;
  font-weight:850;
}
.ticket-flight-summary span{
  color:#536a84;
  font-size:11px;
  line-height:1.4;
  font-weight:400;
}

body.quote-loading-open{
  overflow:hidden;
}
.quote-loading-backdrop{
  position:fixed;
  z-index:10030;
  inset:0;
  display:grid;
  place-items:center;
  padding:20px;
  background:rgba(5,24,55,.44);
  backdrop-filter:blur(4px);
  -webkit-backdrop-filter:blur(4px);
}
.quote-loading-backdrop[hidden]{display:none!important}
.quote-loading-card{
  width:min(100%,360px);
  display:grid;
  grid-template-columns:42px minmax(0,1fr);
  gap:14px;
  align-items:center;
  padding:20px;
  border:1px solid #dce5ef;
  border-radius:18px;
  background:#fff;
  box-shadow:0 24px 70px rgba(3,18,45,.24);
}
.quote-loading-spinner{
  width:36px;
  height:36px;
  border-radius:50%;
  border:3px solid #dce9f6;
  border-top-color:#0d70cd;
  animation:padQuoteSpin .8s linear infinite;
}
.quote-loading-card h2{
  margin:0;
  color:#071a3b;
  font-size:18px;
  line-height:1.15;
  letter-spacing:-.01em;
  font-weight:700;
}
.quote-loading-card p{
  margin:4px 0 0;
  color:#6b7d95;
  font-size:12px;
  line-height:1.4;
  font-weight:400;
}
@keyframes padQuoteSpin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){
  .quote-loading-spinner{animation-duration:1.8s}
}

@media(max-width:540px){
  .flight-number-card{padding:14px}
  .flight-number-card input[type="text"]{min-height:46px;font-size:14px}
  .review-flight-line{padding:9px 14px}
  .ticket-flight-summary{padding:9px 18px}
  .quote-loading-card{padding:18px;border-radius:16px}
}

/* ============================================================
   RC14 — route-order additional stops
   Stops are part of the journey, so they sit between FROM and TO.
   Typography continues to inherit the locked PAD/customer styles.
   ============================================================ */

.journey-route-form .route-stops-disclosure{
  margin:0 0 0 63px;
}
.journey-route-form .route-stops-disclosure summary{
  padding:11px 14px;
}
.journey-route-form .route-stops-disclosure[open] summary{
  border-bottom:1px solid #e6ebf1;
}
.journey-route-form .route-stops-disclosure .stops-body{
  border-top:0;
  padding-top:2px;
}
.stop-field[hidden]{
  display:none!important;
}
.add-another-stop{
  margin-top:11px;
  padding:0;
  border:0;
  background:transparent;
  color:#214e7e;
  font:inherit;
  font-size:11px;
  font-weight:700;
  cursor:pointer;
}
.add-another-stop[hidden]{
  display:none!important;
}

.review-route-vias{
  display:block;
}
.review-route-circle.is-via{
  background:#fff;
  border-color:#dce6f1;
  color:#5e7fa2;
  font-size:17px;
}
.review-route-line.is-via b{
  font-size:15px;
  font-weight:700;
}
.review-route-line.is-via em{
  font-size:10px;
}

/* Priced result: customer.css remains the source of truth; only the new VIA
   marker needs a neutral variant of the existing route icon. */
.quote-result-template .route-icon-via{
  background:#fff;
  border:1px solid #dce6f1;
  color:#5e7fa2;
}
.quote-result-template .route-stop-via .route-copy strong{
  font-weight:700;
}

@media(max-width:700px){
  .journey-route-form .route-stops-disclosure{
    margin-left:53px;
  }
}


/* ============================================================
   RC15 — locked typography, compact VIA hierarchy, LUX option
   ============================================================ */

/* PAD typography is locked to the live customer/index.php stack. */
.quote-hero-copy h1{
  font-size:31px!important;
  line-height:1.04!important;
  letter-spacing:-.035em!important;
  font-weight:850!important;
}

/* Three vehicle choices share the row on larger screens. */
.vehicle-grid{
  grid-template-columns:repeat(3,minmax(0,1fr));
}

/* VIA points are deliberately subordinate to FROM / TO. Keep the route line
   aligned, but reduce the marker and copy to roughly half the visual scale. */
.quote-result-template .route-stop-via .route-icon-via{
  width:28px;
  height:28px;
  margin-left:9px;
  font-size:13px;
  font-weight:700;
}
.quote-result-template .route-stop-via .route-copy{
  padding-left:7px;
}
.quote-result-template .route-stop-via .route-copy small{
  margin-bottom:2px;
  font-size:8px;
}
.quote-result-template .route-stop-via .route-copy strong{
  font-size:13px;
  line-height:1.2;
  font-weight:700;
  letter-spacing:-.01em;
}
.quote-result-template .route-stop-via .route-copy span{
  margin-top:2px;
  font-size:10px;
}

/* Apply the same hierarchy on the pre-price review screen. */
.review-route-line.is-via .review-route-circle.is-via{
  width:26px;
  height:26px;
  margin-left:8px;
  font-size:12px;
  font-weight:700;
}
.review-route-line.is-via>div{
  padding-left:6px;
}
.review-route-line.is-via small{
  font-size:7px;
}
.review-route-line.is-via b{
  margin-top:2px;
  font-size:11px;
  line-height:1.2;
  font-weight:700;
}
.review-route-line.is-via em{
  margin-top:2px;
  font-size:9px;
}

@media(max-width:700px){
  .vehicle-grid{grid-template-columns:1fr}
  .quote-hero-copy h1{font-size:27px!important}
  .quote-result-template .route-stop-via .route-icon-via{
    width:26px;
    height:26px;
    margin-left:8px;
  }
  .quote-result-template .route-stop-via .route-copy{
    padding-left:5px;
  }
  .quote-result-template .route-stop-via .route-copy strong{
    font-size:12px;
  }
}

/* ============================================================
   RC22 — terms document + final-action alignment only.
   Do not alter locked PAD typography or pricing styles here.
   ============================================================ */
.quote-result-template .booking-help-line{
  text-align:center;
}
.quote-result-template .booking-help-line span{
  display:inline;
}
.quote-result-template .booking-help-line a{
  display:inline;
  margin-top:0;
}
.quote-result-template .quote-template-actions{
  justify-content:center;
}
.quote-result-template .quote-template-actions .quote-manual-edit-form{
  margin-right:0;
}

.booking-terms-modal-xxl{
  width:min(96vw,1080px);
  height:min(88vh,900px);
  max-height:88vh;
  padding:0;
  overflow:hidden;
  display:grid;
  grid-template-rows:auto minmax(0,1fr) auto;
}
.booking-terms-header{
  position:relative;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:24px;
  padding:22px 24px 18px;
  border-bottom:1px solid #e4eaf1;
  background:#fff;
}
.booking-terms-header small{
  display:block;
  color:#72849d;
  font-size:10px;
  font-weight:850;
  letter-spacing:.11em;
}
.booking-terms-header h2{
  margin:6px 44px 0 0;
  color:#071a3b;
  font-size:24px;
  line-height:1.12;
  letter-spacing:-.02em;
  font-weight:700;
}
.booking-terms-modal-xxl .booking-terms-close{
  position:absolute;
  top:17px;
  right:18px;
}
.booking-terms-document{
  display:block;
  margin:0;
  padding:24px 28px 32px;
  overflow-y:auto;
  overscroll-behavior:contain;
  background:#fff;
  color:#52677f;
  scrollbar-gutter:stable;
}
.booking-terms-document>h1{
  margin:0 0 6px;
  color:#0b2851;
  font-size:22px;
  line-height:1.2;
  font-weight:700;
  letter-spacing:-.015em;
}
.booking-terms-document>h2{
  margin:28px 0 8px;
  color:#15375f;
  font-size:16px;
  line-height:1.25;
  font-weight:700;
}
.booking-terms-document p,
.booking-terms-document li{
  color:#5f738a;
  font-size:13px;
  line-height:1.6;
  font-weight:400;
}
.booking-terms-document p{
  margin:0 0 10px;
}
.booking-terms-document ul{
  margin:7px 0 14px 21px;
  padding:0;
}
.booking-terms-document strong{
  color:#243f5f;
  font-weight:700;
}
.booking-terms-footer{
  padding:14px 24px 18px;
  border-top:1px solid #e4eaf1;
  background:#fff;
}
.booking-terms-modal-xxl .booking-terms-done{
  width:auto;
  min-width:150px;
  margin:0 0 0 auto;
}

@media(max-width:700px){
  .booking-terms-backdrop{
    padding:0;
  }
  .booking-terms-modal-xxl{
    width:100%;
    height:100dvh;
    max-height:100dvh;
    border:0;
    border-radius:0;
  }
  .booking-terms-header{
    padding:18px 18px 15px;
  }
  .booking-terms-header h2{
    font-size:21px;
  }
  .booking-terms-document{
    padding:20px 19px 28px;
  }
  .booking-terms-document>h1{
    font-size:19px;
  }
  .booking-terms-document>h2{
    margin-top:24px;
    font-size:15px;
  }
  .booking-terms-document p,
  .booking-terms-document li{
    font-size:13px;
    line-height:1.55;
  }
  .booking-terms-footer{
    padding:12px 18px max(14px,env(safe-area-inset-bottom));
  }
  .booking-terms-modal-xxl .booking-terms-done{
    width:100%;
  }
}


/* ============================================================
   RC24 — final journey panel composition fix.
   Scoped to quote-result internals only. No page-title typography.
   ============================================================ */
.quote-result-template .quote-ticket-vehicle{
  padding:16px 24px 14px;
  border-top:1px solid #e3eaf2;
  background:#fbfcfe;
}
.quote-result-template .quote-ticket-vehicle small,
.quote-result-template .quote-ticket-vehicle strong,
.quote-result-template .quote-ticket-vehicle span{display:block;}
.quote-result-template .quote-ticket-vehicle small{
  color:#73839a; font-size:9px; font-weight:850; letter-spacing:.10em;
}
.quote-result-template .quote-ticket-vehicle strong{
  margin-top:5px; color:#17375f; font-size:15px; line-height:1.25; font-weight:700;
}
.quote-result-template .quote-ticket-vehicle span{
  margin-top:2px; color:#667a93; font-size:11px; line-height:1.4; font-weight:400;
}

.quote-result-template .quote-ticket-booking{
  padding:22px 24px 20px;
  border-top:1px solid #e3eaf2;
  background:#fff;
}
.quote-result-template .quote-ticket-booking .quote-booking-copy{margin-bottom:16px;}
.quote-result-template .quote-ticket-booking .quote-booking-copy h2{
  margin:0; color:#071a3b; font-size:24px; line-height:1.12; letter-spacing:-.02em; font-weight:700;
}
.quote-result-template .quote-ticket-booking .booking-make-button{width:100%; margin-top:14px;}
.quote-result-template .quote-ticket-booking .booking-make-button:disabled{opacity:.42; cursor:not-allowed; box-shadow:none;}
.quote-result-template .booking-terms-below{
  margin-top:12px; color:#748399; font-size:10px; line-height:1.45; text-align:center;
}
.quote-result-template .booking-terms-below .booking-inline-terms{font-size:inherit;}
.quote-result-template .quote-ticket-booking .booking-help-line{
  margin-top:10px; padding-top:10px; text-align:center;
}
.quote-result-template .quote-ticket-booking .booking-help-line span,
.quote-result-template .quote-ticket-booking .booking-help-line a{display:inline; margin-top:0;}

@media(max-width:540px){
  .quote-result-template .quote-ticket-vehicle{padding:15px 18px 13px;}
  .quote-result-template .quote-ticket-booking{padding:20px 18px 18px;}
  .quote-result-template .quote-ticket-booking .quote-booking-copy h2{font-size:22px;}
}


/* ============================================================
   RC25 — final confirmation hierarchy only.
   IMPORTANT: no page-title / hero typography changes here.
   ============================================================ */

/* The booking header and separate post-button terms line are no longer part
   of the final hierarchy. */
.quote-result-template .quote-ticket-booking .quote-booking-copy,
.quote-result-template .booking-terms-below{
  display:none !important;
}

.quote-result-template .quote-ticket-booking{
  padding-top:20px;
}
.quote-result-template .quote-ticket-booking .booking-consent-row{
  margin-top:0;
}
.quote-result-template .quote-ticket-booking .booking-make-button{
  width:100%;
  margin-top:14px;
}

/* Helpful rather than alarming: a quiet information panel. */
.quote-result-template .booking-help-info{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  margin-top:14px;
  padding:11px 13px;
  border:1px solid #d7e8f9;
  border-radius:12px;
  background:#f3f8fd;
  color:#5f738a;
  text-align:center;
}
.quote-result-template .booking-help-info .booking-help-icon{
  flex:0 0 22px;
  width:22px;
  height:22px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  background:#e4f1fd;
  color:#0b69b7;
  font-size:13px;
  line-height:1;
  font-weight:700;
}
.quote-result-template .booking-help-info a{
  color:#0667b7;
  font-weight:700;
}

/* Reset now belongs to the same final-confirmation panel. */
.quote-result-template .booking-reset-row{
  margin-top:14px;
  padding-top:14px;
  border-top:1px solid #e7edf4;
  text-align:center;
}
.quote-result-template .booking-reset-link{
  color:#7a899d;
  font-size:11px;
  line-height:1.4;
  font-weight:600;
  text-decoration:none;
}
.quote-result-template .booking-reset-link:hover,
.quote-result-template .booking-reset-link:focus{
  color:#46617f;
  text-decoration:underline;
}

@media(max-width:540px){
  .quote-result-template .booking-help-info{
    align-items:flex-start;
    justify-content:flex-start;
    text-align:left;
  }
}


/* ============================================================
   RC26 — passenger-first vehicle selection + booking-request states.
   IMPORTANT: no page-title / hero typography changes here.
   ============================================================ */
.passenger-picker{margin-top:18px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;padding:16px;border:1px solid #dce6f0;border-radius:18px;background:#f8fbfe}
.passenger-picker-icon,.vehicle-choice-icon{width:48px;height:48px;flex:0 0 48px;display:grid;place-items:center;border-radius:50%;background:#eef5fc;color:#0b4e91}
.passenger-picker-icon svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.passenger-picker-copy small,.passenger-picker-copy b{display:block}.passenger-picker-copy small,.vehicle-choice-heading small{color:#75879d;font-size:9px;font-weight:850;letter-spacing:.10em}.passenger-picker-copy b{margin-top:3px;color:#0c2b52;font-size:16px;line-height:1.25;font-weight:700}
.passenger-stepper{display:flex;align-items:center;gap:12px}.passenger-stepper button{appearance:none;width:42px;height:42px;border:1px solid #d2dde8;border-radius:50%;background:#fff;color:#144b82;font-size:23px;line-height:1;font-weight:500;cursor:pointer}.passenger-stepper button:last-child{border-color:#0f62b8;background:#0f62b8;color:#fff}.passenger-stepper button:disabled{opacity:.35;cursor:not-allowed}.passenger-stepper output{min-width:24px;color:#102c52;font-size:22px;line-height:1;font-weight:700;text-align:center}
.vehicle-choice-heading{margin:22px 0 11px}.vehicle-choice-heading b{display:block;margin-top:3px;color:#0a2448;font-size:18px;line-height:1.25;font-weight:700}.vehicle-choice-heading p{margin:5px 0 0;color:#72839a;font-size:11px;line-height:1.45}
.vehicle-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.vehicle-card{grid-template-columns:auto minmax(0,1fr)}.vehicle-choice-icon{grid-row:1/3}.vehicle-choice-icon svg{width:31px;height:23px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.vehicle-choice-icon.is-lux{color:#234f91}.vehicle-card[hidden]{display:none!important}.vehicle-luggage-responsibility{margin:13px 2px 0;color:#75869b;font-size:10px;line-height:1.45}

.quote-result-template .booking-make-button.is-ready:not(:disabled),.quote-result-template [data-booking-request-submit].is-ready:not(:disabled){border-color:var(--q-green);background:var(--q-green);color:#fff;box-shadow:0 6px 16px rgba(7,134,91,.18)}
.quote-result-template .booking-make-button.is-ready:not(:disabled):hover,.quote-result-template [data-booking-request-submit].is-ready:not(:disabled):hover{background:#066f4b}
.quote-result-template [data-booking-request-submit]:disabled{border-color:#aab6c8;background:#aab6c8;color:#fff;box-shadow:none;cursor:not-allowed;opacity:.82}

.quote-booking-success .quote-success-main h2{margin:0}.booking-contact-confirmation{margin-top:18px;padding-top:17px;border-top:1px solid #e4ebf2}.booking-contact-confirmation>small{display:block;color:#6e8199;font-size:9px;font-weight:850;letter-spacing:.10em}.booking-contact-confirmation dl{margin:10px 0 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.booking-contact-confirmation dl>div{min-width:0;padding:11px 12px;border:1px solid #e0e8f1;border-radius:12px;background:#f8fbfe}.booking-contact-confirmation dt{color:#75869a;font-size:9px;font-weight:700}.booking-contact-confirmation dd{margin:4px 0 0;overflow-wrap:anywhere;color:#17365d;font-size:12px;line-height:1.4;font-weight:600}.booking-not-confirmed-note{margin-top:14px;display:flex;align-items:flex-start;gap:9px;padding:11px 13px;border:1px solid #d7e8f9;border-radius:12px;background:#f3f8fd}.booking-not-confirmed-note>span{flex:0 0 22px;width:22px;height:22px;display:grid;place-items:center;border-radius:50%;background:#e4f1fd;color:#0b69b7;font-size:13px;line-height:1;font-weight:700}.booking-not-confirmed-note p{margin:1px 0 0;color:#5f738a;font-size:10px;line-height:1.45}.booking-success-action{margin-top:14px;padding-top:14px;border-top:1px solid #e7edf4;text-align:center}.booking-success-action a{color:#667b93;font-size:11px;font-weight:650;text-decoration:none}.booking-success-action a:hover,.booking-success-action a:focus{color:#0b5da8;text-decoration:underline}
@media(max-width:700px){.vehicle-grid{grid-template-columns:1fr}.booking-contact-confirmation dl{grid-template-columns:1fr}}
@media(max-width:430px){.passenger-picker{grid-template-columns:auto minmax(0,1fr)}.passenger-stepper{grid-column:1/3;justify-content:center;margin-top:4px}}


/* ============================================================
   RC27 — vehicle imagery, clearer vehicle validation, quieter
   flight UI, visual selected vehicle, and compact submitted state.
   IMPORTANT: no page-title / hero typography rules in this block.
   ============================================================ */

/* Real Premier vehicle imagery replaces generic vehicle icons. */
.vehicle-grid{
  grid-template-columns:1fr;
  gap:12px;
}
.vehicle-card{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(150px,38%);
  align-items:center;
  gap:12px;
  min-height:126px;
  overflow:hidden;
  padding:15px 16px 15px 20px;
  text-align:left;
}
.vehicle-card-copy{
  position:relative;
  z-index:2;
  min-width:0;
}
.vehicle-card-copy b,
.vehicle-card-copy small{
  display:block;
}
.vehicle-card-copy b{
  color:#0b2850;
  font-size:19px;
  line-height:1.2;
  font-weight:700;
}
.vehicle-card-copy small{
  margin-top:6px;
  color:#70839b;
  font-size:11px;
  line-height:1.35;
  font-weight:400;
}
.vehicle-card>img{
  width:100%;
  height:94px;
  object-fit:contain;
  object-position:center right;
  mix-blend-mode:multiply;
  pointer-events:none;
}
.vehicle-card.is-selected>img{
  transform:scale(1.015);
}
.vehicle-card[hidden]{
  display:none!important;
}

/* A missing vehicle should be impossible to overlook. */
.vehicle-selection-error{
  margin-top:12px;
  display:flex;
  align-items:center;
  gap:9px;
  padding:11px 13px;
  border:1px solid #efc6c6;
  border-radius:12px;
  background:#fff6f6;
  color:#9d3030;
}
.vehicle-selection-error[hidden]{display:none!important}
.vehicle-selection-error>span{
  flex:0 0 23px;
  width:23px;
  height:23px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#fde2e2;
  font-size:13px;
  line-height:1;
  font-weight:800;
}
.vehicle-selection-error p{
  margin:0;
  font-size:11px;
  line-height:1.4;
  font-weight:650;
}
.vehicle-luggage-responsibility{
  margin-top:13px;
  padding:0 2px;
  color:#75869b;
  font-size:10px;
  line-height:1.5;
}

/* The flight API check is background behaviour, not customer-facing copy. */
.flight-number-card{
  margin-bottom:18px;
}
.flight-number-card>p,
.flight-check-status[hidden]{
  display:none!important;
}

/* Compact visual selected-vehicle panel mirrors the selection experience. */
.quote-result-template .quote-ticket-vehicle-visual{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(150px,38%);
  align-items:center;
  gap:14px;
  padding:15px 24px;
  overflow:hidden;
}
.quote-result-template .quote-ticket-vehicle-copy{
  min-width:0;
}
.quote-result-template .quote-ticket-vehicle-copy em{
  display:block;
  margin-top:6px;
  color:#8795a7;
  font-size:8px;
  line-height:1.4;
  font-style:normal;
  font-weight:400;
}
.quote-result-template .quote-ticket-vehicle-visual>img{
  width:100%;
  height:92px;
  object-fit:contain;
  object-position:center right;
  mix-blend-mode:multiply;
}

/* Submitted request confirmation lives directly beneath the total price. */
.quote-ticket-success-confirmation{
  border-top:1px solid #d7eadf;
  padding:18px 24px 20px;
  background:#eff9f4;
}
.quote-ticket-success-heading{
  display:flex;
  align-items:flex-start;
  gap:11px;
}
.quote-ticket-success-heading>span{
  flex:0 0 30px;
  width:30px;
  height:30px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#d8f3e6;
  color:#07865b;
  font-size:15px;
  line-height:1;
  font-weight:800;
}
.quote-ticket-success-heading strong{
  display:block;
  color:#0a4935;
  font-size:16px;
  line-height:1.3;
  font-weight:700;
}
.quote-ticket-success-heading p{
  margin:5px 0 0;
  color:#496d60;
  font-size:11px;
  line-height:1.5;
}
.quote-ticket-success-heading p b{
  color:#245b49;
  font-weight:700;
}
.quote-success-new-quote{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  margin-top:15px;
  border:1px solid #bcdccd;
  border-radius:11px;
  background:#fff;
  color:#176346;
  font-size:11px;
  line-height:1.2;
  font-weight:700;
  text-decoration:none;
}
.quote-success-new-quote:hover,
.quote-success-new-quote:focus{
  border-color:#83b99f;
  background:#f9fdfb;
}

/* Obsolete customer-facing informational blocks removed in markup. */
.airport-auto-note,
.price-assurance{
  display:none!important;
}

@media(max-width:700px){
  .vehicle-card{
    grid-template-columns:minmax(0,1fr) minmax(120px,42%);
    min-height:116px;
    padding:14px 12px 14px 16px;
  }
  .vehicle-card>img{
    height:84px;
  }
  .quote-result-template .quote-ticket-vehicle-visual{
    grid-template-columns:minmax(0,1fr) minmax(120px,42%);
    padding:14px 18px;
  }
  .quote-result-template .quote-ticket-vehicle-visual>img{
    height:82px;
  }
  .quote-ticket-success-confirmation{
    padding:17px 18px 18px;
  }
}
@media(max-width:420px){
  .vehicle-card{
    grid-template-columns:minmax(0,1fr) 42%;
  }
  .vehicle-card-copy b{font-size:18px}
  .vehicle-card-copy small{font-size:10px}
  .quote-result-template .quote-ticket-vehicle-visual{
    grid-template-columns:minmax(0,1fr) 42%;
  }
}


/* ============================================================
   RC28 — final quote-page polish and consistent device controls.
   IMPORTANT: no page-title / hero font-weight rules are changed.
   ============================================================ */

.quote-result-template .quote-ticket-tools-edit-only{
  justify-content:flex-start;
}

.quote-result-template .booking-help-info .booking-help-icon{
  display:grid;
  place-items:center;
  background:#0b5da8;
  color:#fff;
}
.quote-result-template .booking-help-info .booking-help-icon svg{
  width:15px;
  height:15px;
  overflow:visible;
  fill:currentColor;
  stroke:currentColor;
  stroke-width:1.9;
  stroke-linecap:round;
}

.date-native-label{min-width:0}
.date-native-shell{
  position:relative;
  display:flex;
  align-items:center;
  width:100%;
  min-width:0;
  min-height:50px;
  border:1px solid #cfd9e5;
  border-radius:12px;
  background:#fff;
  color:#13263f;
  overflow:hidden;
}
.date-native-shell:focus-within{
  border-color:#86add5;
  box-shadow:0 0 0 3px rgba(15,98,184,.08);
}
.date-display{
  display:block;
  min-width:0;
  flex:1 1 auto;
  padding:0 42px 0 13px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#13263f;
  font-size:16px;
  line-height:1.2;
  font-weight:400;
  pointer-events:none;
}
.date-display-icon{
  position:absolute;
  right:13px;
  top:50%;
  transform:translateY(-50%);
  width:19px;
  height:19px;
  color:#13263f;
  pointer-events:none;
}
.date-display-icon svg{
  display:block;
  width:100%;
  height:100%;
  fill:none;
  stroke:currentColor;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.date-time-grid .date-native-control{
  position:absolute;
  inset:0;
  z-index:2;
  width:100%;
  height:100%;
  min-height:0;
  margin:0;
  padding:0;
  border:0;
  border-radius:0;
  opacity:0;
  cursor:pointer;
  -webkit-appearance:none;
  appearance:none;
}
.date-time-grid .date-native-control:focus{box-shadow:none}

.quote-contact-form input:user-invalid{border-color:#c56b73}
.quote-contact-form input:user-valid{border-color:#bfd8ca}

@media(max-width:700px){
  .date-display{font-size:15px}
}


/* ============================================================
   RC29 — native date restoration, journey map, flight result detail.
   IMPORTANT: no locked page-title / hero typography is changed.
   ============================================================ */

/* RC28 date overlay is intentionally superseded. The actual native date
   input is visible/clickable again on iOS, Android and desktop browsers. */
.date-time-grid input.pad-native-date{
  display:block;
  width:100%;
  min-width:0;
  min-height:50px;
  margin:0;
  padding:0 13px;
  border:1px solid #cfd9e5;
  border-radius:12px;
  background:#fff;
  color:#13263f;
  font:inherit;
  font-size:16px;
  line-height:1.2;
  font-weight:400;
  text-align:left;
  box-sizing:border-box;
  -webkit-appearance:auto;
  appearance:auto;
  color-scheme:light;
}
.date-time-grid input.pad-native-date:focus{
  outline:0;
  border-color:#86add5;
  box-shadow:0 0 0 3px rgba(15,98,184,.08);
}
.date-time-grid input.pad-native-date::-webkit-date-and-time-value{
  text-align:left;
  min-height:1.2em;
}
.date-time-grid input.pad-native-date::-webkit-datetime-edit{
  padding:0;
}
.date-time-grid input.pad-native-date::-webkit-calendar-picker-indicator{
  opacity:.9;
  cursor:pointer;
}

/* Flight result: verified Autocab information when available, otherwise a
   deliberately subtle check message rather than a hard booking error. */
.ticket-flight-summary.ticket-flight-summary-verified,
.ticket-flight-summary.ticket-flight-summary-unverified{
  display:block;
  padding:11px 24px;
}
.ticket-flight-heading{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
.ticket-flight-heading small,
.ticket-flight-summary-unverified small{
  color:#72849d;
  font-size:9px;
  letter-spacing:.10em;
  font-weight:850;
}
.ticket-flight-heading strong,
.ticket-flight-summary-unverified strong{
  color:#173b67;
  font-size:12px;
  line-height:1.3;
  font-weight:700;
}
.ticket-flight-found{
  display:inline-flex;
  align-items:center;
  min-height:20px;
  padding:2px 7px;
  border-radius:999px;
  background:#e7f6ee;
  color:#087851!important;
  font-size:8px!important;
  line-height:1;
  font-weight:750!important;
}
.ticket-flight-details{
  display:flex;
  flex-wrap:wrap;
  gap:5px 12px;
  margin-top:6px;
}
.ticket-flight-details span{
  color:#536a84;
  font-size:10px;
  line-height:1.4;
  font-weight:400;
}
.ticket-flight-details .ticket-flight-route{
  color:#173b67;
  font-weight:700;
}
.ticket-flight-airports{
  margin:5px 0 0;
  color:#75869a;
  font-size:9px;
  line-height:1.4;
}
.ticket-flight-summary-unverified{
  background:#fffaf1;
}
.ticket-flight-summary-unverified>div{
  display:flex;
  align-items:baseline;
  gap:8px;
}
.ticket-flight-summary-unverified p{
  margin:5px 0 0;
  color:#8a6a35;
  font-size:9px;
  line-height:1.45;
}

/* Result journey map. The map uses the same Autocab-resolved coordinates
   used by the quote. It is visual only and never changes pricing. */
.ticket-journey-map{
  border-top:1px solid #e3eaf2;
  background:#f8fbfe;
}
.ticket-journey-map-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:10px 24px 8px;
}
.ticket-journey-map-head small{
  color:#73839a;
  font-size:9px;
  font-weight:850;
  letter-spacing:.10em;
}
.ticket-journey-map-head span{
  color:#8795a7;
  font-size:9px;
  font-weight:400;
}
.ticket-journey-map-canvas{
  width:100%;
  height:210px;
  background:#edf3f8;
}
.ticket-journey-map .leaflet-container{
  font-family:inherit;
}
.ticket-journey-map .leaflet-control-zoom{
  border:0;
  box-shadow:0 2px 8px rgba(7,30,66,.12);
}
.ticket-journey-map .leaflet-control-zoom a{
  width:28px;
  height:28px;
  line-height:28px;
  color:#173b67;
  border:0;
}
.ticket-journey-map .leaflet-control-attribution{
  padding:1px 4px;
  background:rgba(255,255,255,.82);
  color:#708198;
  font-size:7px;
}
.ticket-map-div-icon{
  background:none!important;
  border:0!important;
}
.ticket-map-marker{
  width:28px;
  height:28px;
  display:grid;
  place-items:center;
  border:2px solid #fff;
  border-radius:50%;
  box-shadow:0 2px 8px rgba(7,30,66,.20);
  background:#0f67bd;
  color:#fff;
  font-size:10px;
  line-height:1;
  font-weight:800;
}
.ticket-map-marker.is-to{
  background:#071f49;
}
.ticket-map-marker.is-via{
  width:20px;
  height:20px;
  margin:4px;
  background:#fff;
  border-color:#0f67bd;
  color:#0f67bd;
  font-size:12px;
}
.ticket-journey-map .leaflet-tooltip{
  border:0;
  border-radius:8px;
  box-shadow:0 4px 12px rgba(7,30,66,.15);
  color:#173b67;
  font-family:inherit;
  font-size:9px;
  font-weight:600;
}

@media(max-width:700px){
  .date-time-grid input.pad-native-date{
    min-height:50px;
    font-size:16px; /* prevents iOS zoom */
  }
  .ticket-flight-summary.ticket-flight-summary-verified,
  .ticket-flight-summary.ticket-flight-summary-unverified{
    padding:10px 18px;
  }
  .ticket-journey-map-head{
    padding:9px 18px 7px;
  }
  .ticket-journey-map-canvas{
    height:190px;
  }
}


/* ============================================================
   RC30 — non-blocking flight lookup + responsive mobile calendar.
   IMPORTANT: no page-title / hero font-weight rules are changed.
   ============================================================ */

/* Desktop/tablet continues to use the browser's native date picker. */
.pad-mobile-date-trigger{
  display:none;
}

/* The in-house mobile calendar is deliberately viewport-bound so browser-
   specific native popovers can never overflow the page. */
.pad-mobile-date-dialog{
  width:min(430px,calc(100vw - 20px));
  max-width:calc(100vw - 20px);
  margin:auto;
  padding:0;
  border:0;
  border-radius:22px;
  background:transparent;
  box-shadow:none;
  overflow:visible;
}
.pad-mobile-date-dialog::backdrop{
  background:rgba(5,24,51,.48);
  backdrop-filter:blur(2px);
  -webkit-backdrop-filter:blur(2px);
}
.pad-mobile-date-sheet{
  width:100%;
  box-sizing:border-box;
  overflow:hidden;
  border:1px solid #dce6f0;
  border-radius:22px;
  background:#fff;
  box-shadow:0 20px 55px rgba(6,30,65,.24);
}
.pad-mobile-date-grabber{
  display:none;
}
.pad-mobile-date-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:19px 20px 13px;
}
.pad-mobile-date-header small{
  display:block;
  margin-bottom:3px;
  color:#71839a;
  font-size:9px;
  line-height:1.2;
  font-weight:850;
  letter-spacing:.12em;
}
.pad-mobile-date-header strong{
  display:block;
  color:#0b2850;
  font-size:17px;
  line-height:1.25;
  font-weight:700;
}
.pad-mobile-date-close{
  flex:0 0 36px;
  width:36px;
  height:36px;
  display:grid;
  place-items:center;
  padding:0;
  border:0;
  border-radius:50%;
  background:#eef5fc;
  color:#0b4f91;
  font-size:24px;
  line-height:1;
  cursor:pointer;
}
.pad-mobile-date-month-nav{
  display:grid;
  grid-template-columns:42px 1fr 42px;
  align-items:center;
  gap:8px;
  padding:5px 15px 12px;
}
.pad-mobile-date-month-nav strong{
  text-align:center;
  color:#15365f;
  font-size:14px;
  font-weight:700;
}
.pad-mobile-date-month-nav button{
  width:40px;
  height:40px;
  display:grid;
  place-items:center;
  border:1px solid #dae4ef;
  border-radius:12px;
  background:#fff;
  color:#0b5da8;
  font-size:25px;
  line-height:1;
  cursor:pointer;
}
.pad-mobile-date-month-nav button:disabled{
  opacity:.3;
  cursor:default;
}
.pad-mobile-date-weekdays,
.pad-mobile-date-grid{
  display:grid;
  grid-template-columns:repeat(7,1fr);
  gap:4px;
  padding-left:15px;
  padding-right:15px;
}
.pad-mobile-date-weekdays{
  padding-bottom:6px;
}
.pad-mobile-date-weekdays span{
  text-align:center;
  color:#8796a8;
  font-size:9px;
  font-weight:750;
}
.pad-mobile-date-grid{
  padding-bottom:15px;
}
.pad-mobile-date-blank{
  aspect-ratio:1;
}
.pad-mobile-date-day{
  aspect-ratio:1;
  min-width:0;
  display:grid;
  place-items:center;
  padding:0;
  border:0;
  border-radius:50%;
  background:transparent;
  color:#173554;
  font-size:13px;
  line-height:1;
  font-weight:600;
  cursor:pointer;
}
.pad-mobile-date-day:hover:not(:disabled),
.pad-mobile-date-day:focus-visible:not(:disabled){
  background:#edf5fd;
  outline:0;
}
.pad-mobile-date-day.is-today{
  box-shadow:inset 0 0 0 1px #8bb8e5;
}
.pad-mobile-date-day.is-selected{
  background:#0f67bd;
  color:#fff;
  box-shadow:none;
}
.pad-mobile-date-day:disabled{
  color:#c5ced8;
  cursor:default;
}
.pad-mobile-date-footer{
  display:flex;
  justify-content:space-between;
  gap:10px;
  padding:12px 15px 16px;
  border-top:1px solid #e5ebf2;
}
.pad-mobile-date-footer button{
  min-height:42px;
  padding:0 15px;
  border-radius:11px;
  font-size:11px;
  font-weight:700;
  cursor:pointer;
}
.pad-mobile-date-cancel{
  border:1px solid #d8e2ec;
  background:#fff;
  color:#596d83;
}
.pad-mobile-date-today{
  border:1px solid #0f67bd;
  background:#0f67bd;
  color:#fff;
}

@media(max-width:700px){
  /* Hide only the browser's native visual control. Its value remains the
     canonical submitted YYYY-MM-DD field used by all existing PAD logic. */
  .date-time-grid input.pad-native-date{
    position:absolute!important;
    width:1px!important;
    height:1px!important;
    min-height:0!important;
    margin:0!important;
    padding:0!important;
    opacity:0!important;
    pointer-events:none!important;
    overflow:hidden!important;
    clip:rect(0 0 0 0)!important;
    clip-path:inset(50%)!important;
    white-space:nowrap!important;
  }

  .date-time-grid label{
    position:relative;
  }

  .pad-mobile-date-trigger{
    width:100%;
    min-height:50px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    padding:0 13px;
    border:1px solid #cfd9e5;
    border-radius:12px;
    background:#fff;
    color:#13263f;
    font:inherit;
    font-size:16px;
    line-height:1.2;
    font-weight:400;
    text-align:left;
    box-sizing:border-box;
    cursor:pointer;
  }
  .pad-mobile-date-trigger:focus{
    outline:0;
    border-color:#86add5;
    box-shadow:0 0 0 3px rgba(15,98,184,.08);
  }
  .pad-mobile-date-trigger svg{
    flex:0 0 20px;
    width:20px;
    height:20px;
    fill:none;
    stroke:#173554;
    stroke-width:1.8;
    stroke-linecap:round;
    stroke-linejoin:round;
  }

  .pad-mobile-date-dialog{
    width:100%;
    max-width:100%;
    margin:auto 0 0;
    border-radius:22px 22px 0 0;
  }
  .pad-mobile-date-sheet{
    border-radius:22px 22px 0 0;
    border-bottom:0;
    padding-bottom:max(0px,env(safe-area-inset-bottom));
  }
  .pad-mobile-date-grabber{
    display:block;
    width:42px;
    height:4px;
    margin:9px auto 0;
    border-radius:999px;
    background:#d5dde6;
  }
}

body.pad-date-dialog-open{
  overflow:hidden;
}


/* ============================================================
   RC31 — resilient quote retry state.
   No page-title / hero typography changes.
   ============================================================ */

.quote-retry-message{
  display:flex;
  align-items:flex-start;
  gap:9px;
  margin:14px 0 0;
  padding:11px 13px;
  border:1px solid #f0d2aa;
  border-radius:12px;
  background:#fff8ec;
  color:#79551f;
}
.quote-retry-message>span{
  flex:0 0 23px;
  width:23px;
  height:23px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#f8e5c6;
  color:#85591c;
  font-size:12px;
  line-height:1;
  font-weight:800;
}
.quote-retry-message p{
  margin:1px 0 0;
  font-size:10px;
  line-height:1.45;
  font-weight:500;
}


/* ============================================================
   RC32 — journey map containment / Leaflet CSS hardening.
   No page-title, pricing or booking styling changed.
   ============================================================ */

/* The map canvas itself must always establish a clipped positioning context. */
.ticket-journey-map-canvas{
  position:relative;
  overflow:hidden;
  isolation:isolate;
  z-index:0;
}

/*
 * Defensive Leaflet structural rules.
 * Leaflet's official stylesheet is still loaded, but these scoped rules stop
 * map tiles ever escaping into the rest of the quote card if that stylesheet
 * is delayed or blocked.
 */
.ticket-journey-map-canvas.leaflet-container{
  overflow:hidden;
  -webkit-tap-highlight-color:transparent;
}
.ticket-journey-map-canvas .leaflet-pane,
.ticket-journey-map-canvas .leaflet-map-pane,
.ticket-journey-map-canvas .leaflet-tile-pane,
.ticket-journey-map-canvas .leaflet-overlay-pane,
.ticket-journey-map-canvas .leaflet-shadow-pane,
.ticket-journey-map-canvas .leaflet-marker-pane,
.ticket-journey-map-canvas .leaflet-tooltip-pane,
.ticket-journey-map-canvas .leaflet-popup-pane{
  position:absolute;
  top:0;
  left:0;
}
.ticket-journey-map-canvas .leaflet-map-pane,
.ticket-journey-map-canvas .leaflet-tile,
.ticket-journey-map-canvas .leaflet-marker-icon,
.ticket-journey-map-canvas .leaflet-marker-shadow{
  position:absolute;
}
.ticket-journey-map-canvas .leaflet-tile{
  width:256px;
  height:256px;
  max-width:none!important;
  max-height:none!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
}
.ticket-journey-map-canvas .leaflet-tile-container{
  position:absolute;
  left:0;
  top:0;
  width:100%;
  height:100%;
  pointer-events:none;
}
.ticket-journey-map-canvas .leaflet-control-container{
  position:relative;
  z-index:800;
}
.ticket-journey-map-canvas .leaflet-top,
.ticket-journey-map-canvas .leaflet-bottom{
  position:absolute;
  z-index:1000;
  pointer-events:none;
}
.ticket-journey-map-canvas .leaflet-top{top:0}
.ticket-journey-map-canvas .leaflet-right{right:0}
.ticket-journey-map-canvas .leaflet-bottom{bottom:0}
.ticket-journey-map-canvas .leaflet-left{left:0}
.ticket-journey-map-canvas .leaflet-control{
  position:relative;
  z-index:800;
  pointer-events:auto;
}
.ticket-journey-map-canvas .leaflet-top .leaflet-control{margin-top:10px}
.ticket-journey-map-canvas .leaflet-bottom .leaflet-control{margin-bottom:10px}
.ticket-journey-map-canvas .leaflet-left .leaflet-control{margin-left:10px}
.ticket-journey-map-canvas .leaflet-right .leaflet-control{margin-right:10px}
.ticket-journey-map-canvas img{
  max-width:none;
}


/* ============================================================
   RC35 — portable same-page address API feedback.
   No locked typography/layout changes.
   ============================================================ */
.pad-address-unavailable{
  display:grid;
  gap:3px;
}
.pad-address-unavailable strong{
  color:#294967;
  font-size:10px;
  line-height:1.35;
  font-weight:700;
}
.pad-address-unavailable span{
  color:#708198;
  font-size:9px;
  line-height:1.4;
  font-weight:400;
}


/* ============================================================
   RC37 — streamlined quote flow + child-seat controls.
   Locked hero/page-title typography is intentionally untouched.
   ============================================================ */

.quote-step-travel .journey-type-grid{
  margin-top:0;
}
.journey-type-grid .choice-card{
  min-height:82px;
  grid-template-rows:1fr;
  align-items:center;
}
.journey-type-grid .choice-card .choice-icon{
  grid-row:auto;
}
.journey-type-grid .choice-card b{
  align-self:center;
  font-size:18px;
}

.quote-step-vehicle .traveller-option-stack{
  display:grid;
  gap:10px;
  margin-bottom:20px;
}
.quote-step-vehicle .passenger-picker{
  margin-top:0;
}
.child-seat-picker{
  background:#fff;
}
.child-seat-picker .passenger-picker-copy small{
  display:block;
  margin-top:4px;
  color:#7a8a9d;
  font-size:9px;
  line-height:1.35;
  font-weight:500;
  letter-spacing:0;
}
.child-seat-icon svg{
  width:27px;
  height:27px;
}
.vehicle-card-warning{
  display:block;
  margin-top:7px;
  color:#7a6845;
  font-size:9px;
  line-height:1.4;
  font-style:normal;
  font-weight:500;
}

.journey-step>.collection-choice-panel:first-child{
  margin-top:0;
}
.collection-choice-panel .direction-segment{
  margin-top:0!important;
}
.collection-choice-confirmed span small{
  line-height:1.3;
}

.quote-step-review .review-booking-card{
  margin-top:0;
}

@media(max-width:430px){
  .quote-step-vehicle .traveller-option-stack{
    gap:9px;
  }
}


/* ============================================================
   RC38 — hierarchy + customer terminology + final summary polish.
   Locked page-title / hero typography remains untouched.
   ============================================================ */
.quote-section-heading{
  margin:0 0 14px;
}
.quote-section-heading h2{
  margin:0;
  color:#0b254d;
  font-size:20px;
  line-height:1.2;
  font-weight:700;
  letter-spacing:-.02em;
}
.quote-section-heading-vehicle{
  margin-top:4px;
  margin-bottom:12px;
}
.quote-step-vehicle .passenger-picker-copy small{
  display:block;
  margin-top:4px;
  color:#7a8a9d;
  font-size:9px;
  line-height:1.35;
  font-weight:500;
  letter-spacing:0;
}
.vehicle-card-warning strong{
  font-weight:750;
}

/* Flight verification is informative and deliberately does not block a quote
   when Autocab cannot verify an otherwise plausible flight number. */
.flight-check-status{
  padding:0 2px;
}
.flight-check-status.is-ok{color:#087a53}
.flight-check-status.is-note{color:#6f7f92}
.flight-check-status.is-checking{color:#58708b}

/* Final vehicle + price are one cohesive commercial summary. */
.quote-result-template .quote-ticket-commercial-summary{
  border-top:1px solid #e3eaf2;
  border-bottom:1px solid #e3eaf2;
  background:#fbfcfe;
}
.quote-result-template .quote-ticket-commercial-summary .quote-ticket-vehicle{
  border-top:0;
  background:transparent;
}
.quote-result-template .quote-ticket-vehicle-visual{
  grid-template-columns:minmax(0,1fr) minmax(190px,34%);
  gap:28px;
  padding:20px 28px;
  overflow:hidden;
}
.quote-result-template .quote-ticket-vehicle-copy strong{
  margin-top:6px;
  font-size:19px;
  line-height:1.2;
}
.quote-result-template .quote-ticket-vehicle-copy span{
  margin-top:5px;
  font-size:12px;
  line-height:1.45;
}
.quote-result-template .quote-ticket-vehicle-copy em{
  max-width:310px;
  margin-top:8px;
  font-size:9px;
  line-height:1.4;
}
.quote-result-template .quote-ticket-vehicle-image{
  min-width:0;
  min-height:112px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:12px 16px;
}
.quote-result-template .quote-ticket-vehicle-image img{
  display:block;
  width:100%;
  max-width:230px;
  height:96px;
  object-fit:contain;
  object-position:center;
  mix-blend-mode:multiply;
}
.quote-result-template .quote-ticket-commercial-summary .quote-ticket-total{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:24px;
  align-items:center;
  padding:18px 28px 20px;
  border-top:1px solid #e3eaf2;
  background:#fff;
}
.quote-result-template .quote-ticket-total-copy small,
.quote-result-template .quote-ticket-total-copy span{
  display:block;
}
.quote-result-template .quote-ticket-total-copy small{
  color:#73839a;
  font-size:9px;
  font-weight:850;
  letter-spacing:.10em;
}
.quote-result-template .quote-ticket-total-copy span{
  margin-top:4px;
  color:#667a93;
  font-size:11px;
  line-height:1.4;
}
.quote-result-template .quote-ticket-commercial-summary .quote-ticket-total>strong{
  align-self:center;
  white-space:nowrap;
  font-size:34px;
  line-height:1;
}
.quote-result-template .quote-edit-journey-inline{
  margin-top:13px;
}
.quote-result-template .quote-edit-journey-inline .edit-journey-link{
  padding:0;
}

/* Deterministic, perfectly centred information icon. */
.quote-result-template .booking-help-info .booking-help-icon svg{
  width:14px;
  height:14px;
  overflow:visible;
  fill:#fff;
  stroke:none;
}
.quote-result-template .booking-help-info .booking-help-icon svg .info-dot,
.quote-result-template .booking-help-info .booking-help-icon svg .info-stem{
  fill:#fff;
  stroke:none;
}

@media(max-width:700px){
  .quote-result-template .quote-ticket-vehicle-visual{
    grid-template-columns:minmax(0,1fr) minmax(150px,38%);
    gap:18px;
    padding:18px;
  }
  .quote-result-template .quote-ticket-vehicle-image{
    min-height:96px;
    padding:10px 12px;
  }
  .quote-result-template .quote-ticket-vehicle-image img{
    height:84px;
  }
  .quote-result-template .quote-ticket-commercial-summary .quote-ticket-total{
    padding:17px 18px 19px;
  }
}
@media(max-width:440px){
  .quote-section-heading h2{font-size:19px}
  .quote-result-template .quote-ticket-vehicle-visual{
    grid-template-columns:minmax(0,1fr) 38%;
    gap:12px;
  }
  .quote-result-template .quote-ticket-vehicle-image{
    padding:8px;
  }
  .quote-result-template .quote-ticket-vehicle-image img{
    height:76px;
  }
  .quote-result-template .quote-ticket-vehicle-copy strong{font-size:17px}
  .quote-result-template .quote-ticket-commercial-summary .quote-ticket-total>strong{font-size:30px}
}


/* ============================================================
   RC39 — child-seat clarity / ISOFIX acknowledgement.
   The passenger selector remains primary; child seats are a
   visibly subordinate booking detail.
   ============================================================ */

.quote-step-vehicle .child-seat-picker{
  margin-left:24px;
  padding:13px 14px;
  border-color:#e1e8f0;
  background:#fbfdff;
}
.quote-step-vehicle .child-seat-picker .passenger-picker-icon{
  width:42px;
  height:42px;
  flex-basis:42px;
  background:#f2f7fc;
}
.quote-step-vehicle .child-seat-picker .passenger-picker-copy b{
  font-size:15px;
}
.quote-step-vehicle .child-seat-picker .passenger-picker-copy small{
  max-width:310px;
}
.quote-step-vehicle .child-seat-picker .passenger-stepper{
  gap:9px;
}
.quote-step-vehicle .child-seat-picker .passenger-stepper button{
  width:38px;
  height:38px;
  font-size:21px;
}
.quote-step-vehicle .child-seat-picker .passenger-stepper output{
  font-size:20px;
}

.child-seat-policy{
  margin-left:24px;
  padding:14px;
  border:1px solid #cfe1f3;
  border-radius:16px;
  background:#f3f8fd;
}
.child-seat-policy[hidden]{
  display:none!important;
}
.child-seat-policy-info{
  display:grid;
  grid-template-columns:32px minmax(0,1fr);
  gap:10px;
  align-items:start;
}
.child-seat-policy-icon{
  width:30px;
  height:30px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#0f62b8;
  color:#fff;
}
.child-seat-policy-icon svg{
  width:18px;
  height:18px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.child-seat-policy-icon .child-seat-policy-dot{
  fill:currentColor;
  stroke:none;
}
.child-seat-policy-info strong{
  display:block;
  margin:1px 0 4px;
  color:#0b2c55;
  font-size:12px;
  line-height:1.3;
}
.child-seat-policy-info p{
  margin:0;
  color:#5f728a;
  font-size:10px;
  line-height:1.5;
}
.child-seat-policy-info a{
  color:#0567bd;
  font-weight:700;
}
.child-seat-policy-confirm{
  display:grid;
  grid-template-columns:20px minmax(0,1fr);
  gap:9px;
  align-items:start;
  margin-top:12px;
  padding-top:12px;
  border-top:1px solid #dae7f3;
  color:#314d6c;
  font-size:10px;
  line-height:1.45;
  cursor:pointer;
}
.child-seat-policy-confirm input{
  width:18px;
  height:18px;
  margin:0;
  accent-color:#0f62b8;
}
.child-seat-policy-error{
  margin:9px 0 0 29px;
  color:#b42318;
  font-size:10px;
  line-height:1.4;
  font-weight:700;
}

@media(max-width:520px){
  .quote-step-vehicle .child-seat-picker,
  .child-seat-policy{
    margin-left:12px;
  }
}


/* RC42 — final review passenger / child-seat clarity */
.quote-ticket-child-seat-note{
  display:block;
  margin-top:3px;
  color:#60758d;
  font-size:11px;
  line-height:1.35;
}


/* ============================================================
   RC44 — suitability help icon only.
   No layout, booking, pricing, map, flight or JS behaviour changed.
   ============================================================ */
.quote-result-template .booking-help-info{
  align-items:center;
}

.quote-result-template .booking-help-info .booking-help-icon{
  flex:0 0 16px;
  width:16px;
  height:16px;
  min-width:16px;
  min-height:16px;
  display:grid;
  place-items:center;
  align-self:center;
  box-sizing:border-box;
  border-radius:50%;
  background:#0b5da8;
  color:#fff;
  line-height:1;
}

.quote-result-template .booking-help-info .booking-help-icon svg{
  display:block;
  width:9px;
  height:9px;
  margin:0;
  overflow:visible;
  fill:#fff;
  stroke:none;
}

.quote-result-template .booking-help-info .booking-help-icon svg .info-dot,
.quote-result-template .booking-help-info .booking-help-icon svg .info-stem{
  fill:#fff;
  stroke:none;
}

@media(max-width:540px){
  .quote-result-template .booking-help-info{
    align-items:center;
  }
}


/* ============================================================
   RC45 — final suitability icon: one fixed 14px SVG.
   This selector applies only to the call-us suitability row.
   ============================================================ */
.quote-result-template .booking-help-info .booking-help-icon.booking-help-icon-final{
  flex:0 0 14px !important;
  width:14px !important;
  height:14px !important;
  min-width:14px !important;
  min-height:14px !important;
  max-width:14px !important;
  max-height:14px !important;
  display:block !important;
  align-self:center !important;
  padding:0 !important;
  margin:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  color:inherit !important;
  line-height:0 !important;
  overflow:visible !important;
}

.quote-result-template .booking-help-info .booking-help-icon.booking-help-icon-final .booking-help-icon-svg{
  display:block !important;
  width:14px !important;
  height:14px !important;
  min-width:14px !important;
  min-height:14px !important;
  max-width:14px !important;
  max-height:14px !important;
  margin:0 !important;
  padding:0 !important;
  overflow:visible !important;
  fill:none !important;
  stroke:none !important;
}


/* PAYMENT RC1 — local pay-driver / non-local SumUp prepayment */
.booking-payment-policy{
  display:grid;
  grid-template-columns:42px minmax(0,1fr);
  gap:12px;
  align-items:start;
  margin-bottom:16px;
  padding:14px 15px;
  border:1px solid #d8e6f3;
  border-radius:16px;
  background:#f7fbff;
}
.booking-payment-policy-icon{
  width:40px;height:40px;display:grid;place-items:center;border-radius:50%;
  background:#0b5da8;color:#fff;font-size:17px;font-weight:800;line-height:1;
}
.booking-payment-policy small,.sumup-payment-heading small{
  display:block;margin-bottom:3px;color:#74869a;font-size:9px;font-weight:800;letter-spacing:.08em;
}
.booking-payment-policy strong,.sumup-payment-heading strong{
  display:block;color:#0c2c55;font-size:14px;line-height:1.3;
}
.booking-payment-policy p,.sumup-payment-heading p{
  margin:4px 0 0;color:#63778d;font-size:11px;line-height:1.45;
}
.booking-payment-policy.is-prepay{border-color:#c8dff5;background:#f3f8fd;}
.sumup-payment-panel{
  grid-column:1/-1;margin-top:4px;padding:16px;border:1px solid #d2e1ef;
  border-radius:17px;background:#f8fbfe;
}
.sumup-payment-heading{margin-bottom:13px;}
.sumup-card-host{
  min-height:120px;padding:12px;border:1px solid #dbe5ee;border-radius:13px;background:#fff;
}
.sumup-payment-status{
  min-height:18px;margin:10px 2px 0;color:#66798e;font-size:10px;line-height:1.4;
}
.sumup-payment-status[data-state="error"]{color:#b42318;font-weight:700;}
.sumup-payment-status[data-state="success"]{color:#067647;font-weight:700;}
.sumup-payment-unavailable{
  padding:13px;border:1px solid #f3d5d2;border-radius:12px;background:#fff8f7;color:#7a271a;
}
.sumup-payment-unavailable strong{display:block;font-size:12px;}
.sumup-payment-unavailable p{margin:4px 0 0;font-size:10px;line-height:1.4;}
.sumup-payment-unavailable a{color:#0b5da8;font-weight:800;}
.sumup-pay-submit{width:100%;margin-top:11px;}
.quote-payment-confirmed{margin-top:5px!important;}
@media(max-width:520px){
  .booking-payment-policy{grid-template-columns:34px minmax(0,1fr);padding:12px;}
  .booking-payment-policy-icon{width:32px;height:32px;font-size:14px;}
  .sumup-payment-panel{padding:12px;}
}


/* ============================================================
   PAYMENT RC2 — refined customer-facing payment wording only
   ============================================================ */
.booking-payment-policy-copy{
  min-width:0;
}
.booking-payment-reassurance{
  display:flex;
  align-items:center;
  gap:7px;
  margin-top:11px;
  padding:9px 11px;
  border:1px solid #d9eee5;
  border-radius:11px;
  background:#f2faf6;
  color:#24684d;
  font-size:10px;
  line-height:1.35;
}
.booking-payment-reassurance > span{
  flex:0 0 17px;
  width:17px;
  height:17px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#dff4e9;
  color:#087a50;
  font-size:10px;
  font-weight:900;
}
.booking-payment-reassurance b{
  font-weight:700;
}

.booking-payment-policy.is-driver-pay{
  padding-top:15px;
  padding-bottom:15px;
}

.booking-payment-policy.is-prepay small{
  color:#526f90;
}

@media(max-width:520px){
  .booking-payment-reassurance{
    margin-top:9px;
    padding:8px 9px;
  }
}


/* ============================================================
   PAYMENT RC4 — prominent payment failure / 3DS failure modal
   ============================================================ */
.payment-error-backdrop{
  position:fixed;
  inset:0;
  z-index:10050;
  display:grid;
  place-items:center;
  padding:20px;
  background:rgba(5,22,49,.58);
  backdrop-filter:blur(3px);
  -webkit-backdrop-filter:blur(3px);
}
.payment-error-backdrop[hidden]{
  display:none!important;
}
body.payment-error-open{
  overflow:hidden;
}
.payment-error-modal{
  position:relative;
  width:min(430px,100%);
  padding:24px;
  border:1px solid #d7e3ef;
  border-radius:22px;
  background:#fff;
  box-shadow:0 24px 60px rgba(4,25,54,.22);
}
.payment-error-close{
  position:absolute;
  top:12px;
  right:12px;
  width:36px;
  height:36px;
  display:grid;
  place-items:center;
  border:0;
  border-radius:50%;
  background:#f1f5f9;
  color:#50657d;
  font-size:24px;
  line-height:1;
  cursor:pointer;
}
.payment-error-icon{
  width:46px;
  height:46px;
  display:grid;
  place-items:center;
  margin-bottom:16px;
  border-radius:50%;
  background:#fff1ef;
  color:#b42318;
  font-size:24px;
  font-weight:900;
}
.payment-error-copy small{
  display:block;
  margin-bottom:5px;
  color:#b42318;
  font-size:9px;
  font-weight:900;
  letter-spacing:.11em;
}
.payment-error-copy h2{
  margin:0;
  color:#0b2d56;
  font-size:23px;
  line-height:1.15;
  letter-spacing:-.02em;
}
.payment-error-copy > p{
  margin:10px 0 0;
  color:#4f647b;
  font-size:14px;
  line-height:1.5;
}
.payment-error-copy .payment-error-help{
  color:#344b64;
}
.payment-error-copy .payment-error-call{
  padding-top:11px;
  border-top:1px solid #e4eaf0;
  font-size:12px;
}
.payment-error-copy .payment-error-call a{
  color:#075fae;
  font-weight:850;
}
.payment-error-try-again{
  width:100%;
  margin-top:18px;
}
@media(max-width:520px){
  .payment-error-backdrop{
    align-items:end;
    padding:12px;
  }
  .payment-error-modal{
    padding:22px 18px 18px;
    border-radius:20px;
  }
  .payment-error-copy h2{
    font-size:21px;
  }
}

/* RC16 — customer quote clarity and compact final confirmation. */
.quote-footer,
.quote-result-template .pad-footer{
  display:block;
  text-align:center;
  color:#7f8da0;
  font-size:10px;
  line-height:1.45;
}
.quote-result-template .pad-footer{margin-top:18px;}

.vehicle-card{
  align-items:center;
  min-height:136px;
}
.vehicle-card-copy small{
  max-width:440px;
  font-size:12px;
  line-height:1.45;
}
.vehicle-card-warning{
  max-width:460px;
  font-size:10px;
  line-height:1.45;
}

.route-circle,
.review-route-circle,
.quote-result-template .route-icon{
  font-size:14px;
  font-weight:800;
}
.quote-result-template .route-icon-from,
.quote-result-template .route-icon-to{
  display:grid;
  place-items:center;
}

.quote-result-template .quote-ticket-commercial-summary .quote-ticket-total{
  grid-template-columns:minmax(0,1fr) minmax(160px,auto);
  grid-template-rows:auto auto;
  column-gap:24px;
  row-gap:7px;
  padding:15px 24px;
  border-top:1px solid #e3eaf2;
  background:#f4f7fb;
}
.quote-result-template .quote-ticket-total-copy{
  grid-column:1;
  grid-row:1;
}
.quote-result-template .quote-ticket-total-heading{
  display:block;
  color:#17375f;
  font-size:16px;
  line-height:1.25;
  font-weight:700;
}
.quote-result-template .quote-ticket-total-copy span{
  margin-top:3px;
  font-size:11px;
}
.quote-result-template .quote-ticket-commercial-summary .quote-ticket-total>strong{
  grid-column:2;
  grid-row:1 / span 2;
  padding-left:24px;
  border-left:1px solid #d6e0eb;
  color:#082757;
  font-size:32px;
  line-height:1.1;
}
.quote-result-template .quote-edit-journey-inline{
  grid-column:1;
  grid-row:2;
  margin-top:0;
}
.quote-result-template .edit-journey-link{
  display:inline-flex;
  align-items:center;
  gap:6px;
  color:#315d8a;
  font-size:11px;
}
.quote-result-template .edit-journey-link svg{
  width:13px;
  height:13px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.4;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.quote-result-template .booking-confirmation-panel{
  padding:0 16px;
  border:1px solid #dce5ef;
  border-radius:14px;
  background:#f8fafc;
}
.quote-result-template .booking-payment-policy{
  grid-template-columns:26px minmax(0,1fr);
  gap:10px;
  margin:0;
  padding:13px 0;
  border:0;
  border-radius:0;
  background:transparent;
}
.quote-result-template .booking-payment-policy.is-prepay{
  border-color:transparent;
  background:transparent;
}
.quote-result-template .booking-payment-policy-icon{
  width:24px;
  height:24px;
  background:#e8f0f8;
  color:#24517f;
  font-size:12px;
}
.quote-result-template .booking-payment-policy strong{
  font-size:13px;
}
.quote-result-template .booking-payment-policy p{
  margin-top:3px;
  font-size:11px;
}
.quote-result-template .booking-payment-policy .booking-amount-payable{
  color:#314c6b;
  font-weight:700;
}
.quote-result-template .booking-consent-row{
  margin:0;
  padding:12px 0 13px;
  border-top:1px solid #e0e7ef;
}
.quote-result-template .booking-consent-row p{
  font-size:11px;
  line-height:1.5;
}

@media(max-width:700px){
  .vehicle-card{min-height:126px;}
  .vehicle-card-copy small{font-size:11px;}
  .quote-result-template .quote-ticket-commercial-summary .quote-ticket-total{
    grid-template-columns:minmax(0,1fr);
    grid-template-rows:auto auto auto;
    row-gap:5px;
    padding:14px 18px;
  }
  .quote-result-template .quote-ticket-total-copy{grid-column:1;grid-row:1;}
  .quote-result-template .quote-ticket-commercial-summary .quote-ticket-total>strong{
    grid-column:1;
    grid-row:2;
    justify-self:start;
    padding:0;
    border:0;
    font-size:30px;
  }
  .quote-result-template .quote-edit-journey-inline{grid-column:1;grid-row:3;}
  .quote-result-template .booking-confirmation-panel{padding:0 13px;}
}
@media(max-width:430px){
  .quote-footer{padding-left:10px;padding-right:10px;}
  .vehicle-card{grid-template-columns:minmax(0,1fr) 38%;gap:8px;}
  .vehicle-card-copy small{font-size:10px;}
  .vehicle-card-warning{font-size:9px;}
}

/* RC17 — finish the unified confirmation panel and submitted-request state. */
.quote-result-template .booking-confirmation-panel .booking-consent-row{
  margin:0;
  padding:12px 0 13px;
  border:0;
  border-top:1px solid #dfe7ef;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}

.quote-result-template .quote-ticket-success-confirmation-prominent{
  position:relative;
  z-index:auto;
  margin:0 0 20px;
  padding:24px 28px 22px;
  border:1px solid #55ad78;
  border-radius:23px;
  background:#e9f8ef;
  box-shadow:none;
  padding-bottom:16px;
}
.quote-result-template .quote-journey-wrap.has-submitted-confirmation .quote-confirmation-journey-shell{
  margin:0;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
}
.quote-result-template .quote-journey-wrap.has-submitted-confirmation .quote-confirmation-journey-shell .ticket-collection{
  border-radius:18px!important;
}
.quote-result-template .quote-journey-wrap.has-submitted-confirmation .quote-result-journey-panel .ticket-route{
  position:relative;
  border-radius:18px;
  background:#fff;
}
.quote-result-template .ticket-route .route-icon-from,
.quote-result-template .ticket-route .route-icon-to{
  border:2px solid #fff;
  box-shadow:0 2px 8px rgba(7,30,66,.20);
  color:#fff;
}
.quote-result-template .ticket-route .route-icon-from{
  background:#0f67bd;
}
.quote-result-template .ticket-route .route-icon-to{
  background:#071f49;
}
.quote-result-template .quote-journey-wrap.has-submitted-confirmation>.journey-tabs{
  margin:0 0 14px;
  padding:8px 12px;
  border:1px solid #dfe7ef;
  border-radius:18px;
  background:#fff;
}
.quote-result-template .quote-ticket-success-heading{
  gap:15px;
  align-items:flex-start;
}
.quote-result-template .quote-ticket-success-heading>span{
  flex:0 0 30px;
  width:30px;
  height:32px;
  margin-top:1px;
  border-radius:0;
  background:transparent;
  color:#13834c;
  font-size:27px;
  line-height:1;
}
.quote-result-template .quote-ticket-success-heading>div{
  min-width:0;
  flex:1 1 auto;
}
.quote-result-template .quote-ticket-success-heading strong{
  color:#10294b;
  font-size:20px;
  line-height:1.4;
  font-weight:700;
}
.quote-result-template .quote-ticket-success-heading p{
  margin:9px 0 0;
  color:#263e55;
  font-size:15px;
  line-height:1.6;
}
.quote-result-template .quote-ticket-success-heading p b{
  color:#10294b;
  font-weight:700;
}
.quote-result-template .quote-ticket-success-heading .quote-ticket-success-destinations{
  margin-top:6px;
  color:#40566b;
  font-size:13px;
}
.quote-result-template .quote-ticket-success-heading .quote-ticket-success-pending{
  margin-top:10px;
  color:#263e55;
  font-size:14px;
}
.quote-result-template .quote-success-new-quote{
  display:inline-flex;
  width:auto;
  min-height:36px;
  margin:12px 0 0 45px;
  padding:0 12px;
  border-color:#9fc9ae;
  color:#245b3c;
  font-size:11px;
  font-weight:700;
}

@media(max-width:700px){
  .quote-result-template .quote-ticket-success-confirmation-prominent{
    margin:0;
    padding:18px 16px 17px;
    border-radius:18px;
    margin-bottom:16px;
  }
  .quote-result-template .quote-journey-wrap.has-submitted-confirmation .quote-confirmation-journey-shell .ticket-collection{
    border-radius:14px!important;
  }
  .quote-result-template .quote-journey-wrap.has-submitted-confirmation .quote-result-journey-panel .ticket-route{
    border-radius:14px;
  }
  .quote-result-template .quote-journey-wrap.has-submitted-confirmation>.journey-tabs{
    margin-bottom:12px;
    padding:7px 8px;
    border-radius:14px;
  }
  .quote-result-template .quote-ticket-success-heading{gap:10px;}
  .quote-result-template .quote-ticket-success-heading>span{flex-basis:25px;width:25px;font-size:23px;}
  .quote-result-template .quote-success-new-quote{margin-left:35px;}
}
/* RC25 — keep A/B route markers consistent with the map across journey pages. */
.route-circle-from,
.review-route-circle:not(.is-to):not(.is-via),
.quote-result-template .ticket-route .route-icon-from,
.route-circle-to,
.review-route-circle.is-to,
.quote-result-template .ticket-route .route-icon-to{
  border:2px solid #fff;
  box-shadow:0 2px 8px rgba(7,30,66,.20);
  color:#fff;
}
.route-circle-from,
.review-route-circle:not(.is-to):not(.is-via),
.quote-result-template .ticket-route .route-icon-from{
  background:#0f67bd;
}
.route-circle-to,
.review-route-circle.is-to,
.quote-result-template .ticket-route .route-icon-to{
  background:#071f49;
}

@media(max-width:420px){
  .quote-result-template .quote-ticket-success-heading strong{font-size:18px;}
  .quote-result-template .quote-ticket-success-heading p{font-size:14px;}
}

/* RC26 — explicitly enforce the map colours on the address-entry markers. */
.journey-route-form .route-circle.route-circle-from,
.journey-route-form .route-circle.route-circle-to{
  border:2px solid #fff!important;
  box-shadow:0 2px 8px rgba(7,30,66,.20)!important;
  color:#fff!important;
}
.journey-route-form .route-circle.route-circle-from{
  background:#0f67bd!important;
}
.journey-route-form .route-circle.route-circle-to{
  background:#071f49!important;
}
