:root{font-family:Arial,sans-serif;color:#24364b;background:#f2f7fd;font-size:16px}*{box-sizing:border-box}body{margin:0}main{max-width:1060px;padding:30px 24px;margin:auto}header{display:flex;justify-content:space-between;align-items:center}.brand{font-weight:800;letter-spacing:3px}.tag{font-size:11px;letter-spacing:1px;border:1px solid #9eb7d4;border-radius:20px;padding:7px 12px}.intro{margin:48px 0 24px}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:700;color:#4a6685}h1{font-size:clamp(32px,5vw,52px);line-height:1.1;letter-spacing:-1.8px;margin:12px 0 18px}p{line-height:1.55}h2{font-size:23px;margin:0 0 24px}.notice{background:#eaf3ff;border-left:3px solid #4a6685;padding:14px 18px;font-size:14px;line-height:1.5;margin-bottom:24px}.layout{display:grid;grid-template-columns:1.1fr 1fr;gap:24px}.panel{border:1px solid #d8e7fa;background:#fff;border-radius:20px;padding:28px;box-shadow:0 8px 30px #24364b08}.result{background:#e9f2f7;align-self:start}label,legend{font-size:14px;font-weight:600;display:block;margin:18px 0 8px}select,input[type=datetime-local]{width:100%;min-width:0;padding:13px 12px;border:1px solid #bfd2ea;border-radius:9px;background:white;color:#24364b;font:inherit}fieldset{padding:0;border:0;margin:22px 0}legend{margin:0}.classes{display:grid;grid-template-columns:1fr 1fr;gap:10px}.classes label{border:1px solid #bfd2ea;border-radius:10px;padding:14px 10px}.classes label:has(input:checked){background:#eaf3ff;border-color:#4a6685}.classes small{display:block;font-weight:normal;font-size:11px;margin-top:8px}input[type=radio]{accent-color:#345775}button{width:100%;border:0;border-radius:10px;background:#d8e7fa;padding:16px;color:#24364b;font:700 16px Arial;cursor:pointer;box-shadow:0 3px 0 #9eb7d4}button span{float:right}button:disabled{opacity:.6;cursor:wait}.secondary{background:white;border:1px solid #9eb7d4;box-shadow:none}.fine{font-size:12px;color:#4a6685}.fare{display:flex;justify-content:space-between;padding:17px 0;border-bottom:1px solid #c8d8db}.fare strong{font-size:26px}details{margin:24px 0;padding:18px;border:1px dashed #bfd2ea;border-radius:12px}details select{max-width:360px}summary{cursor:pointer;font-size:13px}footer{text-align:center;color:#4a6685;font-size:12px;padding:20px} :focus-visible{outline:3px solid #548797;outline-offset:3px}[hidden]{display:none!important}@media(max-width:680px){main{padding:24px 16px}.intro{margin-top:36px}.layout{grid-template-columns:1fr}.panel{padding:22px}.tag{font-size:9px}.brand{font-size:14px}}
.search-row{display:flex;gap:8px;align-items:stretch}.search-row input{min-width:0;flex:1;padding:13px 12px;border:1px solid #bfd2ea;border-radius:9px;font:inherit;color:#24364b}.search-row button{width:auto;padding:12px;font-size:14px;box-shadow:none}.suggestions{list-style:none;padding:0;margin:0}.suggestions button{text-align:left;font-size:14px;font-weight:400;margin-bottom:8px;line-height:1.5}.suggestions:empty{display:none}
.extras-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.extras-grid>div{min-width:0}input[type=number]{width:100%;min-width:0;padding:13px 12px;border:1px solid #bfd2ea;border-radius:9px;font:inherit;color:#24364b}.check-row{display:flex;align-items:center;gap:10px;min-height:44px}.check-row input{width:20px;height:20px;accent-color:#345775}.price-lines{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;font-size:14px;border-top:1px solid #c8d8db;padding-top:16px}.price-lines dd{margin:0;text-align:right;font-weight:600}.price-lines dt{line-height:1.4}
.pickup-clock input[type=date]{width:100%;min-width:0;padding:13px 12px;border:1px solid #bfd2ea;border-radius:9px;background:white;font:inherit;color:#24364b}.clock-fields{display:grid;grid-template-columns:1fr 1fr 1.25fr;gap:10px}.clock-fields>div{min-width:0}.clock-fields select{padding:12px 8px}.quick-minutes{display:flex;align-items:center;gap:8px;margin-top:14px;flex-wrap:wrap}.quick-minutes span{font-size:13px}.quick-minutes button{width:auto;min-width:44px;min-height:44px;padding:10px;background:#f2f7fd;border:1px solid #bfd2ea;box-shadow:none}.quick-minutes button[aria-pressed=true]{background:#d8e7fa;border-color:#4a6685}.pickup-clock .fine{margin-bottom:0}
.tip-controls{display:flex;gap:6px;align-items:stretch}.tip-controls input{flex:1;appearance:textfield;-moz-appearance:textfield}.tip-controls input::-webkit-inner-spin-button,.tip-controls input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.tip-controls button{width:44px;min-width:44px;min-height:44px;padding:8px;box-shadow:none;font-size:20px}
.tip-amount{position:relative;flex:1;min-width:0}.tip-amount>span{position:absolute;left:12px;top:50%;transform:translateY(-50%);pointer-events:none;color:#24364b}.tip-amount input{padding-left:26px;height:100%}
.tip-amount>span,.tip-amount input{color:#b54708;font-weight:700}.tip-amount.has-tip>span,.tip-amount.has-tip input{color:#175bb5}
.search-row button{background:#d8e7fa;color:#175bb5;border-color:#4a6685}.search-hint-word{color:#175bb5;font-weight:700}
.returning-panel{margin-bottom:24px}.returning-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.returning-heading button,#returning-logout{width:auto}.customer-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.customer-fields input{width:100%;min-width:0;padding:13px 12px;border:1px solid #bfd2ea;border-radius:9px;font:inherit;color:#24364b;background:#f2f7fd}.bonus-notice{background:#eaf3ff;border:1px solid #9eb7d4;border-radius:10px;padding:16px}.bonus-notice small{display:block;margin-top:8px}.returning-panel h2{margin-top:24px}@media(max-width:680px){.customer-fields{grid-template-columns:1fr}.returning-heading button{width:100%}}
.privacy-note{font-size:14px;line-height:1.55;color:#4a6685;margin:18px 0 0}.privacy-note strong{color:#24364b}@media(max-width:480px){.extras-grid{grid-template-columns:1fr}.panel{min-width:0}.returning-panel .search-row{flex-wrap:wrap}.returning-panel .search-row input{flex-basis:100%}.returning-panel .search-row button{width:100%}}
/* Topic grouping for desktop and phone. */
main{max-width:1180px}.intro{margin:32px 0 24px}.intro h1{max-width:760px}.layout{grid-template-columns:minmax(0,1.4fr) minmax(320px,1fr);align-items:start}.layout>.panel{min-width:0}.layout>.panel:first-child{padding:24px}.form-topic{border:1px solid #eaf3ff;border-radius:16px;padding:20px;margin:0 0 22px}.topic-journey{background:#f5f8fb;border-color:#dbe5ee}.topic-party{background:#f2f7fd;border-color:#eaf3ff}.topic-extras{background:#fbf8f1;border-color:#e9e2d2}.topic-heading{display:flex;align-items:flex-start;gap:12px;margin-bottom:18px}.topic-heading h3{font-size:19px;line-height:1.3;margin:0}.topic-heading p{font-size:13px;line-height:1.5;margin:5px 0 0;color:#4a6685}.topic-number{display:grid;place-items:center;flex:0 0 30px;height:30px;background:#fff;border:1px solid #d8e7fa;border-radius:50%;font-size:14px;font-weight:700}.form-topic>fieldset:last-child{margin-bottom:0}.form-topic .classes label{background:#fff;min-height:86px}.form-topic .classes label:has(input:checked){background:#eaf3ff;box-shadow:inset 0 0 0 1px #4a6685}.meeting-choices{display:grid;grid-template-columns:1fr 1fr;gap:10px}.meeting-card{display:flex;align-items:flex-start;gap:9px;padding:14px 12px;border:1px solid #bfd2ea;border-radius:12px;background:#fff;margin:0;cursor:pointer}.meeting-card input{flex:0 0 18px;width:18px;height:18px;margin:2px 0 0}.meeting-card strong{display:block;line-height:1.4}.meeting-card small{display:block;font-size:12px;line-height:1.5;font-weight:400;margin-top:9px;color:#345775}.choice-price{display:block;font-size:13px;margin-top:5px;color:#175bb5}.meeting-card:has(input:checked){background:#eaf3ff;border-color:#4a6685;box-shadow:inset 0 0 0 1px #4a6685}.meeting-summary{font-size:13px;line-height:1.55;background:#fff;border-left:3px solid #4a6685;padding:12px 14px;margin:16px 0}.meeting-summary p{margin:6px 0 0}.result{position:sticky;top:20px}.result details{padding:12px;background:#fff}.result h2{line-height:1.3}.returning-panel{padding:20px 24px}.returning-panel .privacy-note{max-width:820px}#calculate{min-height:54px}#confirmation-email{margin-top:16px;overflow-wrap:anywhere}#confirmation-email h3{font-size:18px}#confirmation-email table{width:100%;border-collapse:collapse;font-size:13px}#confirmation-email td{padding:8px 4px;border-bottom:1px solid #eaf3ff;vertical-align:top}
@media(max-width:800px){.layout{grid-template-columns:1fr}.result{position:static}.intro{margin-top:26px}.form-topic{padding:18px}.layout>.panel:first-child{padding:18px}}
@media(max-width:480px){main{padding:20px 12px}.layout>.panel:first-child{padding:14px}.form-topic{padding:16px 12px;border-radius:13px}.topic-heading{gap:9px}.topic-heading h3{font-size:18px}.meeting-choices{grid-template-columns:1fr}.meeting-card{padding:15px 12px}.meeting-card small{font-size:13px}.classes{gap:8px}.classes label{padding:12px 8px}.classes small{line-height:1.5}.returning-panel{padding:18px}.intro h1{font-size:34px}.clock-fields{gap:6px}.clock-fields select{padding:12px 5px}.search-row button{min-width:66px}.privacy-note{font-size:13px}}
@media(max-width:480px){.quick-minutes>span{flex-basis:100%}}

#saved-quote-link{display:block;width:100%;box-sizing:border-box;padding:12px;border:1px solid #bfd2ea;border-radius:10px;margin:8px 0}#saved-quote button{margin:8px 0}#saved-quote-vehicle{margin-top:8px}

.gmp-attribution{font-family:Arial,sans-serif;font-size:12px;font-weight:400;font-style:normal;letter-spacing:normal;white-space:nowrap;color:#5e5e5e;background:white;padding:5px 10px;margin-top:0}

.address-combobox{position:relative}.address-combobox>input{width:100%;min-width:0;padding:13px 12px;border:1px solid #bfd2ea;border-radius:9px;font:inherit;color:#24364b;box-sizing:border-box}
.address-combobox .suggestions{position:relative;z-index:2;max-height:290px;overflow-y:auto;background:#fff;border:1px solid #bfd2ea;border-radius:10px;box-shadow:0 10px 24px #24364b29;padding:4px;margin:0;list-style:none}
.address-combobox .suggestions[hidden]{display:none}.address-combobox .suggestions li{padding:12px 14px;cursor:pointer;border-bottom:1px solid #eaf3ff;font-size:14px;line-height:1.4;color:#24364b}
.address-combobox .suggestions li:last-child{border:0}.address-combobox .suggestions li:hover,.address-combobox .suggestions li[aria-selected=true]{background:#eaf3ff}

.layout{display:block;max-width:760px;margin:0 auto}.layout>.result{position:static;margin-top:24px;scroll-margin-top:20px}.saved-estimate{border-top:1px solid #bfd2ea;margin-top:24px;padding-top:24px}#open-saved-quote{max-width:760px;display:block;margin:18px auto}#estimate-result h2:focus{outline:none}
/* Make trip labels and saved estimate details easier to read. */
.form-topic label,.form-topic legend,#saved-quote label{font-size:16px;font-weight:700;line-height:1.45}
.clock-fields input,.clock-fields select,#saved-quote-vehicle{font-size:17px;font-weight:600}
#saved-quote-details p:not(.gmp-attribution){font-size:18px;font-weight:600;line-height:1.55;overflow-wrap:anywhere}
#saved-quote button{font-size:17px;font-weight:700;min-height:52px}
.fare>span,#selected{font-size:18px;font-weight:700}
.price-lines{font-size:16px}.price-lines dt,.price-lines dd{font-weight:700}

/* Reveal price beside the form on desktop; below it on mobile. */
@media(min-width:801px){.layout{display:grid;max-width:none;grid-template-columns:minmax(0,1.4fr) minmax(320px,1fr);align-items:start}.layout:has(>#estimate-result[hidden]){grid-template-columns:minmax(0,760px);justify-content:center}.layout>.result{position:sticky;top:20px;margin-top:0;max-height:calc(100vh - 40px);overflow-y:auto}.layout>.result[hidden]{display:none}}
#trip-review{margin:26px 0;padding:20px 16px;background:#fff;border:2px solid #4a6685;border-radius:14px;scroll-margin-top:20px}#trip-review h2{font-size:25px;margin-bottom:12px}.review-inputs{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}#customer-details input:not([type=checkbox]){display:block;width:100%;min-width:0;padding:12px;border:1px solid #9eb7d4;border-radius:8px;font:inherit;font-size:18px}#trip-review-details{margin:24px 0}#trip-review-details dt{font-size:16px;font-weight:700;color:#4a6685;margin-top:18px}#trip-review-details dd{margin:5px 0 0;font-size:20px;font-weight:700;line-height:1.45;overflow-wrap:anywhere}#trip-review-details .review-total{font-size:30px;color:#175bb5;border-top:2px solid #4a6685;padding-top:10px}.review-check{display:flex;align-items:flex-start;gap:12px;font-size:18px;line-height:1.5;font-weight:700}.review-check input{flex:0 0 22px;width:22px;height:22px;margin:3px 0}#review-help{font-size:16px}#review-edit{margin-top:12px}@media(max-width:1000px){.review-inputs{grid-template-columns:1fr}}@media(max-width:480px){#trip-review{padding:18px 12px}#trip-review-details dd{font-size:18px}}

.validation-summary{padding:16px;margin:16px 0;border:2px solid #996119;border-radius:10px;background:#fff8e8;font-size:17px;line-height:1.5}.validation-summary ul{padding-left:22px}.validation-link{display:inline;text-align:left;background:none;color:#643b0a;border:0;padding:5px 0;font:inherit;text-decoration:underline;cursor:pointer}#capacity-note{font-size:17px;font-weight:700;line-height:1.5}

.field-requirement{font-size:14px;font-weight:600;color:#345775}.field-guide{font-size:18px;font-weight:600;line-height:1.5;color:#174b91;margin:10px 0 20px;}#journey-flight-details{margin:18px 0}#flight-fields input{width:100%;min-width:0;font-size:18px;padding:12px;border:1px solid #9eb7d4;border-radius:8px}
.review-check[hidden]{display:none}

.field-warning{color:#9b1c1c;background:#fff1f0;border-left:4px solid #b42318;padding:12px;font-weight:700;font-size:1rem}.field-warning[hidden]{display:none}select[aria-invalid="true"]{border:2px solid #b42318;background:#fff1f0}

.booking-result{overflow-wrap:anywhere}.booking-payment:not([hidden]){display:block;padding:14px 18px;margin:16px 0;border-radius:12px;background:#24364b;color:#fff;text-align:center;font-weight:700;text-decoration:none}.booking-payment:focus-visible{outline:3px solid #a57228;outline-offset:3px}

/* Keep iOS native date controls inside the form column. */
.pickup-clock{min-inline-size:0;max-width:100%}.pickup-clock input[type=date]{display:block;box-sizing:border-box;width:100%;max-width:100%;min-width:0;min-inline-size:0;-webkit-appearance:none;appearance:none;min-height:50px}.pickup-clock input[type=date]::-webkit-date-and-time-value{text-align:left;min-width:0}


/* Payment action: finite emphasis, with an accessible motion-free alternative. */
.booking-result{display:flex;flex-direction:column}.booking-result>h2{order:0}.booking-result>p{order:1}.booking-result>.payment-next-step{order:2;margin:24px 0 4px;font-size:22px}.booking-result>.booking-payment{order:3;min-height:56px;font-size:19px;border:2px solid #24364b;box-shadow:0 4px 0 #24364b;animation:payment-breathe 2.4s ease-in-out 3}.booking-result>.payment-help{order:4;font-size:15px;line-height:1.5;margin:2px 0 20px}.booking-result>.payment-status{order:5;align-self:center;width:auto;max-width:100%;padding:10px 14px;font-size:15px;background:transparent;box-shadow:none}.booking-payment:hover{background:#175bb5}.booking-payment:active{box-shadow:none}@keyframes payment-breathe{0%,100%{box-shadow:0 4px 0 #24364b,0 0 0 0 rgba(74,102,133,0)}50%{box-shadow:0 4px 0 #24364b,0 0 0 7px rgba(74,102,133,.22)}}@media(prefers-reduced-motion:reduce){.booking-result>.booking-payment{animation:none;box-shadow:0 4px 0 #24364b,0 0 0 3px #d8e7fa}}

/* Blue action palette and neutral autofill surfaces. Keep validation indicators visible. */
button{background:#dceaff;color:#174b91;box-shadow:0 3px 0 #9ebce6}button.secondary,.booking-result>.payment-status{background:#fff;border-color:#9ebce6;color:#174b91;box-shadow:none}.quick-minutes button[aria-pressed=true]{background:#c9dfff;border-color:#174b91;color:#123d76}.booking-result>.booking-payment{background:#175bb5;border-color:#175bb5;color:#fff}.booking-result>.booking-payment:hover{background:#124b98;border-color:#124b98}.validation-link{background:none;color:#643b0a;box-shadow:none}input[type=radio],input[type=checkbox]{accent-color:#175bb5}@keyframes payment-breathe{0%,100%{box-shadow:0 4px 0 #103c78,0 0 0 0 rgba(23,91,181,0)}50%{box-shadow:0 4px 0 #103c78,0 0 0 7px rgba(23,91,181,.20)}}@media(prefers-reduced-motion:reduce){.booking-result>.booking-payment{animation:none;box-shadow:0 4px 0 #103c78,0 0 0 3px #dceaff}}
input:autofill{background-color:#fff!important;color:#24364b!important;box-shadow:inset 0 0 0 1000px #fff!important}input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus{-webkit-text-fill-color:#24364b!important;-webkit-box-shadow:inset 0 0 0 1000px #fff!important;caret-color:#24364b}

/* Raised actions: darker lower edge, then a short press into the surface. */
:is(#calculate,#next-step,#saved-quote-edit,#open-saved-quote,button.secondary,.quick-minutes button){background:linear-gradient(180deg,#d8e7fa,#bfd2ea);color:#24364b;border:1px solid #4a6685;box-shadow:inset 0 1px 0 #ffffffc9,0 3px 0 #6885a5,0 5px 10px #24364b21;transition:box-shadow 140ms ease,transform 100ms ease;-webkit-tap-highlight-color:transparent}
:is(#calculate,#next-step,#saved-quote-edit,#open-saved-quote,button.secondary,.quick-minutes button).secondary{background:linear-gradient(180deg,#f7faff,#eaf3ff)}
@media(hover:hover){:is(#calculate,#next-step,#saved-quote-edit,#open-saved-quote,button.secondary,.quick-minutes button):not(:disabled):hover{background:linear-gradient(180deg,#eaf3ff,#d8e7fa)}}
:is(#calculate,#next-step,#saved-quote-edit,#open-saved-quote,button.secondary,.quick-minutes button):not(:disabled):active{background:#bfd2ea;transform:translateY(2px);box-shadow:inset 0 2px 4px #24364b33,0 1px 0 #6885a5}
:is(#calculate,#next-step,#saved-quote-edit,#open-saved-quote,button.secondary,.quick-minutes button):disabled{transform:none;box-shadow:inset 0 1px 0 #ffffffa6}
@media(prefers-reduced-motion:reduce){:is(#calculate,#next-step,#saved-quote-edit,#open-saved-quote,button.secondary,.quick-minutes button){transition:none}}

:is(#calculate,#next-step,#saved-quote-edit,#open-saved-quote,button.secondary,.quick-minutes button)[aria-pressed=true]{background:#c9dfff;color:#123d76;border-color:#174b91;box-shadow:inset 0 1px 3px #24364b33,0 1px 0 #6885a5}

@media(max-width:540px){.field-guide{font-size:17px;}}

.passenger-notes{margin:20px 0}.passenger-notes textarea{box-sizing:border-box;display:block;width:100%;min-height:110px;font:inherit;color:#24364b;background:#fff;padding:12px;border:1px solid #bdd3f2;border-radius:10px;resize:vertical}.passenger-notes textarea:focus{outline:2px solid #175bb5;outline-offset:2px}#trip-review-details dd{white-space:pre-wrap}

/* Required text glows gently until the associated value is valid. */
.field-requirement.required-indicator {
 display:inline-block; vertical-align:middle; white-space:nowrap;
 margin:3px 0 3px 6px; padding:3px 11px; border-radius:999px;
 border:1px solid #e8b5b5; background:#fff7f7;
 font-size:14px; line-height:1.45; font-weight:750; letter-spacing:.02em;
 color:#ae222c; animation:required-glow 2.8s ease-in-out infinite;
 cursor:inherit;
}
@keyframes required-glow {
 0%,100% { color:#ae222c; text-shadow:0 0 0 transparent; }
 50% { color:#e52635; text-shadow:0 0 7px #ec596580; }
}
.field-requirement.required-indicator.is-complete {
 color:#078638; background:#f1fff5; border-color:#92d8aa;
 text-shadow:0 0 6px #13df6159; animation:none;
}
@media(prefers-reduced-motion:reduce) {
 .field-requirement.required-indicator { animation:none; }
}
/* A persistent, explicit Maps match also works after mobile contact autofill. */
.confirm-address{display:block;width:100%;white-space:normal;text-align:left;overflow-wrap:anywhere;margin:10px 0;min-height:48px}
