/* Modern visual layer; existing booking controls and validation are retained. */
:root{--radius:18px;--cream:#f4f6f5;--shadow:0 20px 65px #0b1e3010}
.site-header{background:#ffffffed;backdrop-filter:blur(18px)}
.btn{border-radius:100px;min-height:52px;transition:background .2s,transform .2s,box-shadow .2s}.btn:hover{box-shadow:0 8px 22px #10263818;transform:translateY(-2px)}
.hero{margin:18px 20px 0;border-radius:28px;overflow:hidden}.hero h1{font-size:clamp(3rem,5.5vw,5.6rem);font-weight:750;letter-spacing:-.065em;line-height:1.05}.hero-copy>p{max-width:470px;font-size:1.08rem}.hero .eyebrow{letter-spacing:.12em}.hero-codes{gap:20px}
.booking-panel{border-radius:24px!important;box-shadow:0 24px 80px #0003;border:1px solid #ffffff80}.booking-panel-heading h2{font-size:1.8rem;letter-spacing:-.055em}.booking-panel-heading p{color:#657681;font-size:.9rem}.quick-booking .field>label{font-size:.8rem;font-weight:650}.quick-booking input,.quick-booking textarea,.quick-booking select,.date-picker-trigger{border-radius:12px}.time-picker{border-radius:12px!important}.quick-booking .btn{width:100%}
.airport-shortcuts{display:flex;gap:7px;flex-wrap:wrap;margin:0 0 18px}.airport-shortcuts button{border:1px solid #dce3e7;background:#f4f6f7;color:#52626e;padding:8px 13px;border-radius:100px;font-size:.76rem;min-height:38px}.airport-shortcuts button[aria-pressed=true]{background:#112638;color:#fff;border-color:#112638}.airport-shortcuts button:hover{border-color:#9b7b45}
.trip-preview{border-top:1px solid #e3e9eb;margin:18px 0 0;padding-top:14px;color:#5e707b;font-size:.78rem}.trip-preview strong{display:block;color:#203848;font-size:.82rem;margin-bottom:4px}.trip-preview-track{height:3px;background:#e8edef;border-radius:10px;margin-bottom:12px;overflow:hidden}.trip-preview-track span{display:block;height:100%;background:#b48c4c;width:0;transition:width .25s}
.service-card{border-radius:22px;overflow:hidden;transition:transform .25s,box-shadow .25s}.service-card:hover{transform:translateY(-6px);box-shadow:0 22px 50px #142b3914}.service-card img{transition:transform .6s}.service-card:hover img{transform:scale(1.035)}
.arrival-section{margin:24px 20px;border-radius:28px;padding-top:80px}.arrival-stage{border-radius:22px}.arrival-chapter{min-height:44svh}.arrival-intro h2{font-size:clamp(2.2rem,4vw,3.7rem)}
.vehicle-selector{padding:6px;box-shadow:0 8px 25px #0b1e3008}.vehicle-selector button{min-height:46px}.process-step{padding:24px;border:1px solid #e1e7e9;border-radius:20px;background:white;transition:border-color .2s,transform .2s}.process-step:hover{border-color:#bba174;transform:translateY(-3px)}
.booking-workspace,.booking-summary{border-radius:22px;overflow:hidden}.booking-main{background:#f4f6f7}.booking-progress{background:#fafbf9}.final-cta{margin:0 20px 28px;border-radius:28px}.section-top h2{letter-spacing:-.05em}.address-suggestions{border-radius:16px;box-shadow:0 20px 60px #10273826}
@media(max-width:900px){.hero{margin:10px 10px 0;border-radius:20px}.arrival-section{margin:16px 10px;border-radius:20px}.final-cta{margin:0 10px 18px}.hero h1{font-size:clamp(2.8rem,8vw,4rem)}}
@media(max-width:600px){.hero .container{width:calc(100% - 28px)}.booking-panel{padding:22px 16px!important;border-radius:20px!important}.hero h1{font-size:2.85rem}.airport-shortcuts{gap:6px}.airport-shortcuts button{flex:1;padding:8px}.arrival-section .container{width:calc(100% - 36px)}.process-step{padding:20px}.trip-preview{font-size:.75rem}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important}.btn,.service-card,.service-card img,.process-step,.trip-preview-track span{transition:none!important}.service-card:hover,.process-step:hover,.btn:hover{transform:none}}

/* Consistent card gutters and readable process cards. */
.booking-panel{--panel-gutter:28px;padding:0!important}
.booking-panel-heading{padding:28px var(--panel-gutter) 0;gap:14px}
.booking-panel-heading p{margin:10px 0 0;line-height:1.6}
.booking-panel>.airport-shortcuts{margin:20px var(--panel-gutter) 0;gap:8px}
.booking-panel .quick-booking{padding:22px var(--panel-gutter) 28px}
.airport-shortcuts button{line-height:1.4;white-space:normal}
.service-card{display:flex;flex-direction:column;background:#fff;border:1px solid #e1e7e9}
.service-card .service-image{flex-shrink:0;margin:0;border-radius:0;overflow:hidden}
.service-card .service-body{padding:24px;display:flex;flex-direction:column;flex:1}
.service-card .service-body h3{margin:0 0 14px;line-height:1.35}
.service-card .service-body p{margin:0 0 22px;line-height:1.75}
.service-card .service-body .text-link{align-self:flex-start;margin-top:auto;padding:8px 0;line-height:1.5}
.process-step{padding:26px;color:#172a39;border:1px solid #dce4e8;display:flex;flex-direction:column}
.process-step .step-num{display:block;color:#84632f;margin:0 0 20px;font-size:1.65rem;line-height:1.2}
.process-step h3{color:#172a39;margin:0 0 12px;font-size:1.12rem;line-height:1.45}
.process-step p{color:#526573;margin:0;line-height:1.7;font-size:.95rem}
@media(max-width:900px){.booking-panel{--panel-gutter:24px}.service-card .service-body{padding:20px}.process-step{padding:22px}}
@media(max-width:600px){.booking-panel{--panel-gutter:20px;padding:0!important}.booking-panel-heading{padding-top:24px}.booking-panel-heading h2{font-size:1.55rem}.booking-panel .quick-booking{padding-top:20px;padding-bottom:24px}.booking-panel>.airport-shortcuts{margin-top:18px}.airport-shortcuts button{padding:9px 10px;flex:1 1 85px}.process-step{padding:24px}.process-step .step-num{margin-bottom:16px}}

/* Studio vehicle showcase: readable copy alongside a fully visible car. */
.vehicle-theater{background:#faf7f1;border:1px solid #e1e5e5;border-radius:24px}
.vehicle-scene{display:grid;grid-template-columns:42% 58%;min-height:0;color:var(--ink);align-items:center}
.vehicle-scene>img{position:relative;inset:auto;width:100%;height:auto;aspect-ratio:3/2;object-fit:contain;grid-column:2;grid-row:1;animation:none}
.vehicle-scrim{display:none}
.vehicle-story{grid-column:1;grid-row:1;width:auto;padding:40px 20px 36px 36px;animation:none}
.vehicle-story h3{font-size:clamp(2rem,3.3vw,3rem);color:#172a39}
.vehicle-story .eyebrow{color:#826334}
.vehicle-story p,.vehicle-detail-lines{color:#526573}
.vehicle-detail-lines svg{color:#826334}
.vehicle-scene-caption{position:relative;inset:auto;grid-column:1/-1;grid-row:2;text-align:center;padding:18px 24px;border-top:1px solid #e4e3dc;color:#485b68;background:#fff}
.vehicle-scene-caption span{color:#657681}
@media(max-width:760px){.vehicle-scene{display:flex;flex-direction:column}.vehicle-scene>img{order:0;height:auto;aspect-ratio:3/2;width:100%;object-fit:contain}.vehicle-story{order:1;padding:24px;width:100%}.vehicle-scene-caption{order:2;padding:18px 24px;text-align:left;width:100%}.vehicle-story h3{font-size:2.2rem}}

/* Airport selection may grow the form, but must not recenter the hero copy. */
.hero-grid{align-items:start}
.hero-grid>.hero-copy,.hero-grid>.booking-panel{align-self:start}

/* Freeze the original O’Hare image crop for every airport choice. */
.hero-photo{height:var(--airport-backdrop-height,100%);bottom:auto;object-position:center 54%;transform:scale(1.045)!important;transform-origin:center;transition:none;will-change:auto}
.hero::before{bottom:auto;height:var(--airport-backdrop-height,100%);background:linear-gradient(90deg,#071723e8 0%,#0d2338b0 48%,#081a2d55 100%),linear-gradient(0deg,#07172380,transparent 55%)}
@media(max-width:760px){.hero-photo,.hero::before{height:580px}.hero-photo{object-position:30% top;transform:none!important}.hero::before{background:linear-gradient(0deg,#0d2235 15%,#0d2235a0 65%,#071723a8 100%)}}

/* Upfront comparison preview. */
.sample-vehicle-price{display:block;font-size:1.65rem;font-weight:750;color:#172a39;margin:12px 0 8px;line-height:1.2}
.sample-vehicle-price small{display:block;font-size:.75rem;font-weight:500;color:#765923;margin-top:7px}
.vehicle-choice:has(input:checked){border-color:#a37b3b;background:#fcf9f3;box-shadow:0 0 0 2px #a37b3b22}
.route-map-card{border:1px solid #dde4e7;border-radius:18px;padding:20px;margin:20px 0 28px;background:#f8faf9}
.route-map-heading{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:10px}.route-map-heading h3{font-size:1.15rem}.route-map-heading>span{font-size:.7rem;white-space:nowrap;background:#e9e2d4;border-radius:20px;padding:5px 10px}
.route-map-card p,.route-map-card>a{font-size:.8rem;color:#536774;line-height:1.6}.map-choices{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:15px 0}.map-choices label{min-width:0;font-size:.8rem;font-weight:600}.map-choices select{display:block;width:100%;min-width:0;min-height:44px;margin-top:6px;padding:8px;border:1px solid #cbd6dc;border-radius:8px;background:white;font-size:.8rem}
#trip-map{height:290px;border-radius:12px;z-index:0;background:#e8eeeb}.map-status{margin-top:12px}.sample-fare{background:#fcf9f3}.sample-fare p{font-size:.85rem;margin-top:15px}.booking-summary [data-summary-edit]{margin:0 0 16px}
@media(max-width:600px){.map-choices{grid-template-columns:1fr}.route-map-heading{align-items:flex-start}.route-map-card{padding:14px}#trip-map{height:240px}.sample-vehicle-price{font-size:1.4rem}}

/* Matching visual keys on address cards, map markers and trip summary. */
.location-badge{display:inline-grid;place-items:center;width:30px;height:30px;flex-shrink:0;color:#fff;font:700 14px/1 'DM Sans',sans-serif;border:2px solid #fff;box-shadow:0 2px 8px #142b3920;vertical-align:middle}
.pickup-badge{background:#112638;border-radius:50%}.dropoff-badge{background:#87632c;border-radius:8px}
.trip-map-marker .location-badge{width:36px;height:36px;font-size:16px;border-width:3px;box-shadow:0 3px 12px #11263840}
.map-choices>div{background:#fff;border:1px solid #e0e6e8;border-radius:14px;padding:16px;min-width:0}.map-choices strong{display:flex;align-items:center;gap:9px;font-size:.9rem}.map-choices p{margin:10px 0 0;font-size:.88rem;overflow-wrap:anywhere;color:#213947}
.route-map-card{background:#fff;padding:24px;box-shadow:0 8px 32px #10263808}.route-map-heading h3{font-size:1.4rem}.route-map-card #trip-map{height:360px;border:1px solid #e1e6e9;border-radius:16px}
#trip-map .leaflet-tile-pane{filter:saturate(.18) brightness(1.06)}
#trip-map .leaflet-control-zoom{border:0;box-shadow:0 3px 14px #142b3924;border-radius:12px;overflow:hidden}#trip-map .leaflet-control-zoom a{width:38px;height:38px;line-height:38px;color:#112638}
#trip-map .leaflet-tooltip{border:0;border-radius:8px;padding:7px 10px;box-shadow:0 3px 12px #142b391c;color:#112638;font-weight:650}
.route-line:has(.location-badge)::before{display:none}.route-line small:has(.location-badge){display:flex;align-items:center;gap:8px;margin-bottom:8px}
@media(max-width:600px){.route-map-card{padding:15px}.route-map-card #trip-map{height:290px}.map-choices>div{padding:12px}}
/* Crisp vector basemap with a road-following route. */
.route-map-card #trip-map{height:420px;background:#eef1f4}.modern-map-pin{display:flex;flex-direction:column;align-items:center;gap:5px;cursor:pointer}.modern-map-pin .location-badge{width:38px;height:38px;font-size:16px;border-width:3px;box-shadow:0 3px 15px #142b3940}.map-pin-label{padding:5px 10px;background:white;border-radius:8px;color:#172a39;font:650 12px/1.4 'DM Sans',sans-serif;box-shadow:0 3px 14px #142b3920}.map-route-note{margin-bottom:0}.map-status{font-weight:650;color:#234d79!important}.maplibregl-ctrl-group{border-radius:12px!important;overflow:hidden}.maplibregl-ctrl button{width:38px;height:38px}@media(max-width:600px){.route-map-card #trip-map{height:330px}}

.phone-control{display:flex;gap:12px}.phone-control select{width:155px;flex-shrink:0}.phone-control input{min-width:0;flex:1}.payment-preview{border:1px solid #dce3e7;border-radius:20px;padding:24px;margin:24px 0}.payment-preview button:disabled{opacity:.6;cursor:not-allowed}.service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:650px){.service-grid{grid-template-columns:1fr}.phone-control{gap:8px}.phone-control select{width:125px}}

.address-retry{margin:8px 16px 14px;padding:10px 16px;border:1px solid #ccd6dd;border-radius:10px;background:#fff;color:#132b3b;font:inherit;cursor:pointer}.address-empty{padding:16px;line-height:1.5}

/* Supplied business identity across navigation and footer. */
.brand-logo{display:block;width:180px;height:90px;object-fit:contain;border-radius:8px}.site-footer .brand-logo{width:220px;height:110px}.brand{flex-shrink:0}.header-inner{min-height:106px}@media(max-width:760px){.brand-logo{width:132px;height:66px}.header-inner{min-height:80px}}

/* Transparent brand artwork on every page. */
.brand .brand-logo{background:transparent;border-radius:0;box-shadow:none}
/* Light footer keeps the navy transparent logo legible without a logo backdrop. */
.site-footer{background:#f4f6f7;color:#304653;border-top:1px solid #dce3e7}
.site-footer .brand,.footer-grid h3{color:#132b3a}
.footer-brand p,.footer-links span,.footer-bottom{color:#536977}
.footer-bottom{border-top-color:#dce3e7}
.footer-links a:hover,.footer-bottom a:hover{color:#132b3a;text-decoration:underline}
.trip-stops{padding:18px;margin:16px 0 22px;border:1px solid #dce3e7;border-radius:12px;background:#f7f9fa}
.trip-stops h3{font-size:1rem;margin:0 0 6px}.trip-stops .stop-row{display:block;margin:14px 0;padding-bottom:14px;border-bottom:1px solid #dce3e7}
.stop-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.stop-action{padding:7px 11px;border:1px solid #cbd5dc;border-radius:6px;background:white;color:#132b3a;font:inherit;font-size:.8rem;cursor:pointer}.stop-action:disabled{opacity:.4;cursor:default}.trip-stops .add-stop{font-weight:650;color:#132b3a}

/* Private-airport selector uses the same control treatment as location fields. */
.private-airport-chooser .field select{display:block;appearance:none;-webkit-appearance:none;box-sizing:border-box;width:100%;min-height:48px;border:1px solid #d5dde2;border-radius:5px;padding:11px 38px 11px 12px;background-color:#fff;color:var(--ink);font:inherit;font-size:.91rem;line-height:1.4;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23657582' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:14px}.private-airport-chooser .field select:hover{border-color:#9aabb7}.private-airport-chooser .field select[aria-invalid=true]{border-color:var(--error)}

/* Keep address feedback inside narrow mobile viewports. */
.address-suggestions{box-sizing:border-box;max-width:calc(100vw - 16px);overflow-x:hidden}.address-empty,.address-option,.address-suggestions-note{white-space:normal;overflow-wrap:anywhere}.address-retry{max-width:calc(100% - 32px);white-space:normal}
