/* Local product preview: preserve the dark, apple-green transport identity. */
[hidden] { display: none !important; }
:focus-visible { outline: 3px solid var(--green-300); outline-offset: 4px; }
html { scroll-padding-top: 100px; }
body { overflow-wrap: break-word; }
.sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.desktop-nav { display:flex; gap:1.6rem; font-size:.86rem; }
.desktop-nav a { color:var(--paper-dim); }
.desktop-nav a:hover, .desktop-nav a[aria-current] { color:var(--green-300); }
.mobile-menu { display:none; }
.home-hero { display:grid; grid-template-columns:minmax(0,1.7fr) minmax(220px,.7fr); gap:5rem; align-items:center; padding-block:5rem; }
.preview-home .hero { min-height:0; padding:0; }
.home-hero h1 { font-size:clamp(2.6rem,5.1vw,4.8rem); line-height:1.03; letter-spacing:-.045em; margin:1.3rem 0; }
.home-hero h1 em { font-style:normal; color:var(--green-300); }
.home-hero .hero-sub { font-size:1.1rem; max-width:36rem; margin-inline:0; }
.hero-copy .hero-cta { justify-content:flex-start; }
.hero-proof { display:flex; flex-wrap:wrap; gap:.65rem 1.1rem; font-size:.8rem; color:var(--paper-dim); margin-top:1.4rem; }
.hero-proof span::before { content:'✓ '; color:var(--green-300); }
.tutorial-card { display:flex; flex-direction:column; align-items:center; gap:.8rem; }
.tutorial-card .hero-video { width:200px; max-width:100%; height:auto; }
.service-cards { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; margin-top:2rem; }
.service-card { border:1px solid var(--border-soft); border-radius:18px; background:var(--blue-900); color:var(--paper); padding:1.5rem; transition:transform .2s,border-color .2s; }
.service-card:hover { transform:translateY(-3px); border-color:var(--green-300); }
.service-card h3 { font-size:1.15rem; margin:.85rem 0 1.3rem; }
.service-card > span:last-child { color:var(--paper-dim); font-size:.8rem; }
.service-number { color:var(--green-300); font-size:.75rem; }
.home-trust { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:4rem; padding-block:2rem; }
.home-trust h2 { font-size:clamp(1.8rem,3vw,2.8rem); line-height:1.12; letter-spacing:-.025em; margin:.8rem 0 1rem; }
.home-trust p { color:var(--paper-dim); margin:0 0 1.5rem; }
.home-trust img { width:100%; height:300px; object-fit:cover; border-radius:22px; }
.reviews-rating { color:var(--green-300); font-size:1.2rem; font-weight:700; margin-top:1.5rem; font-variant-numeric:tabular-nums; }
.reviews-source-note { max-width:68ch; color:var(--paper-dim); font-size:.88rem; line-height:1.6; margin-top:.6rem; }
.reviews-section .testimonials-grid { grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr)); }
.reviews-section .testimonial-card { min-width:0; display:flex; flex-direction:column; }
.review-stars { color:var(--green-300); letter-spacing:.12em; }
.testimonial-card figcaption { margin-top:auto; }
.review-source { display:inline-flex; align-items:center; min-height:44px; color:var(--green-300); text-decoration:underline; text-underline-offset:4px; align-self:flex-start; }
.breadcrumbs { display:flex; flex-wrap:wrap; gap:.65rem; font-size:.8rem; color:var(--paper-dim); padding-block:1.5rem; }
.breadcrumbs a { color:var(--green-300); }
.page-title { font-size:clamp(2.3rem,5vw,4rem); line-height:1.1; letter-spacing:-.035em; padding-block:2rem; }
.preview-quote .journey { padding-top:1rem; }
.preview-quote .journey-head { text-align:left; margin-bottom:1rem; }
.preview-quote .journey-head .section-lede { margin-left:0; }
.preview-quote .spine-track, .preview-quote .spine-progress, .preview-quote .stop-pin, .preview-quote .stop-aside { display:none; }
.preview-quote .stop { display:block; padding:0; margin:0; width:100%; }
.preview-quote .stop-body { width:100%; padding:0; }
.preview-quote .stop-card { width:100%; padding:clamp(1rem,3vw,2rem); transform:none !important; opacity:1 !important; }
.preview-quote .stop > :not(.stop-body) { display:none; }
.preview-quote .toggle-launch { display:none; }
.preview-quote .journey > .wrap, .preview-quote .journey-head { max-width:980px; }
.service-picker { display:flex; flex-wrap:wrap; gap:.5rem; margin:1.7rem 0; }
.service-choice { appearance:none; background:var(--blue-900); border:1px solid var(--border-soft); color:var(--paper); border-radius:999px; padding:.7rem 1rem; min-height:44px; cursor:pointer; font:inherit; font-size:.88rem; }
.service-choice[aria-pressed=true] { background:var(--green-300); color:var(--blue-950); border-color:var(--green-300); }
.geo-banner { margin-bottom:0; }
.geo-banner-controls { flex-wrap:wrap; }
.origin-search-field { flex:1 1 320px; min-width:0; }
.search-field:has(.address-search-button) { display:flex; flex-wrap:wrap; gap:.5rem; }
.search-field:has(.address-search-button) input { flex:1 1 200px; min-width:0; width:auto; }
.address-search-button { flex:0 1 auto; white-space:normal; }
.draft-controls { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:.6rem; margin:1rem auto; font-size:.8rem; color:var(--paper-dim); }
.draft-controls input { accent-color:var(--green-300); }
.text-button { background:none; border:0; color:var(--green-300); text-decoration:underline; text-underline-offset:4px; font:inherit; font-size:.85rem; cursor:pointer; padding:.6rem 0; }
.panel.open, .faq-answer.open, .join-driver-fields.open { max-height:none; overflow:visible; }
.form-grid > *, .pax-pets-row > *, .confirm-row > * { min-width:0; }
.pax-pets-row { display:flex; flex-wrap:wrap; align-items:flex-start; }
.pax-pets-row > * { flex:1 1 230px; }
.option-grid { grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr)); }
.tourism-grid { grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr)); }
.btn { white-space:normal; min-height:44px; max-width:100%; }
button:disabled { opacity:.55; cursor:not-allowed; }
.inline-error { border:1px solid #ff9d9d; color:#ffd0d0; padding:.8rem; border-radius:10px; }
.confirm-bank-select { display:flex; flex-direction:column; align-items:flex-start; gap:.3rem; border:0; background:none; color:var(--paper); text-align:left; font:inherit; padding:.5rem; min-height:44px; cursor:pointer; }
.confirm-bank-copy { min-height:44px; }
.capacity-warning { color:#ffd29b; font-size:.85rem; }
.map-modal { padding:12px; }
.map-modal-card { max-height:calc(100dvh - 24px); }
.map-modal-foot { flex-wrap:wrap; }
.confirm-foot-row { flex-wrap:wrap; }
.confirm-foot-row .btn { flex:1 1 130px; }
.vehicle-modal-driver-text { min-width:0; }
.vehicle-modal-row { flex-wrap:wrap; }
.vehicle-modal-nav { width:44px; height:44px; }
.vehicle-modal-tab { min-height:44px; }
.coverage-map-hint { z-index:500; min-height:44px; max-width:90%; white-space:normal; }
.request-handoff { border:1px solid var(--green-300); border-radius:20px; padding:2rem; margin-block:2rem; }
.request-handoff p { margin:1rem 0; }
.privacy-controls { display:flex; flex-wrap:wrap; align-items:center; gap:.8rem; padding-bottom:2rem; font-size:.8rem; color:var(--paper-dim); }
.update-notice { position:fixed; bottom:1rem; left:1rem; width:min(400px,calc(100% - 2rem)); background:var(--blue-800); border:1px solid var(--green-300); padding:1rem; border-radius:16px; z-index:2100; }
.update-notice p { margin-bottom:.7rem; }
.service-detail { max-width:800px; padding-bottom:5rem; }
.service-detail h2 { margin-top:2rem; }
.service-detail p, .service-detail ul { color:var(--paper-dim); margin-block:1rem; }
.service-detail li { margin-block:.5rem; }
@media(max-width:900px) {
 .desktop-nav { display:none; }
 .mobile-menu { display:block; position:relative; }
 .mobile-menu summary { padding:.7rem; cursor:pointer; }
 .mobile-menu nav { position:absolute; right:0; top:3rem; min-width:220px; background:var(--blue-900); border:1px solid var(--border-soft); padding:1rem; border-radius:16px; box-shadow:var(--shadow-lg); }
 .mobile-menu nav a { display:block; padding:.7rem; }
 .home-hero { gap:2rem; grid-template-columns:minmax(0,1fr) 180px; }
 .service-cards { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .home-trust { gap:2rem; }
}
@media(max-width:600px) {
 .site-header .wrap { gap:.5rem; }
 .brand-word { font-size:.86rem; }
 .brand-word small { font-size:.6rem; }
 .brand-mark-img { width:32px; height:32px; }
 .header-actions { gap:.3rem; }
 .header-actions .btn { padding:.6rem .85rem; }
 .home-hero { grid-template-columns:1fr; padding-block:2.4rem; gap:2.5rem; }
 .home-hero h1 { font-size:2.9rem; }
 .home-hero .hero-sub { font-size:1rem; }
 .tutorial-card { border-top:1px solid var(--border-soft); padding-top:2rem; }
 .tutorial-card .hero-video { width:170px; }
 .home-trust { grid-template-columns:1fr; }
 .home-trust img { height:230px; }
 .service-card { padding:1rem; }
 .service-card h3 { font-size:1rem; }
 .geo-banner { padding:1rem; }
 .form-grid.two-col { grid-template-columns:1fr; }
 .preview-quote .journey-head .section-title { font-size:2rem; }
 .stop-card h3 { font-size:1.6rem; }
 .vehicle-modal-body, .confirm-modal-body { padding:1rem; }
 .vehicle-modal-info { padding:.8rem; }
 .vehicle-modal-driver { padding:.7rem; }
 .float-stack { right:12px; bottom:12px; }
 .privacy-controls { padding-bottom:7rem; }
}
@media(prefers-reduced-motion:reduce) {
 *, *::before, *::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; }
 .reveal-grid > *, .join-checklist > * { opacity:1 !important; transform:none !important; }
}

/* Service imagery is illustrative; the real vehicles remain in /flota/. */
.service-cards { grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; }
.service-card { padding:0; overflow:hidden; display:flex; flex-direction:column; min-width:0; background:#102239; border-color:transparent; text-decoration:none; }
.service-card:first-child { grid-column:span 2; display:grid; grid-template-columns:1.1fr 1fr; align-items:center; }
.service-art { aspect-ratio:1.35; width:100%; overflow:hidden; }
.service-art img { width:100%; height:100%; object-fit:contain; transition:transform .35s cubic-bezier(.22,.7,.2,1); }
.service-copy { display:flex; flex-direction:column; flex:1; padding:1.1rem 1.2rem 1.4rem; }
.service-copy h3 { font-size:1.15rem; margin:0 0 .4rem; }
.service-copy p { color:var(--paper-dim); font-size:.88rem; line-height:1.5; margin-bottom:1.2rem; }
.service-action { color:var(--green-300); font-size:.83rem; margin-top:auto; text-decoration:underline; text-underline-offset:.2em; }
.service-card:hover .service-art img { transform:scale(1.04); }
.service-card:active, .service-choice:active { transform:scale(.985); }
.service-selector { margin-block:1.5rem; border-bottom:1px solid var(--border-soft); padding-bottom:1.3rem; }
.service-selector > summary { min-height:52px; cursor:pointer; display:flex; justify-content:space-between; align-items:center; gap:1rem; font-weight:600; font-size:1.1rem; }
.service-selector > summary::after { content:'+'; color:var(--green-300); font-size:1.3rem; }
.service-selector[open] > summary::after { content:'−'; }
.service-selector[open] .selector-action { display:none; }
.selector-action { font-size:.82rem; font-weight:400; color:var(--green-300); margin-left:auto; }
.service-group { border:0; padding:0; margin-top:1.2rem; min-width:0; }
.service-group legend { font-size:.88rem; font-weight:600; color:var(--paper-dim); }
.service-picker { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.7rem; margin:.65rem 0 0; }
.service-choice { border-radius:16px; padding:.5rem .6rem 1rem; display:grid; grid-template-rows:auto auto 1fr; gap:.25rem; min-width:0; font-size:.96rem; line-height:1.3; background:#102239; border:2px solid transparent; color:var(--paper); text-align:center; transition:border-color .2s,transform .2s; }
.service-choice img { width:100%; height:108px; object-fit:contain; border-radius:10px; }
.service-choice > span { font-weight:600; }
.service-choice small { font-size:.78rem; line-height:1.4; color:var(--paper-dim); }
.service-choice[aria-pressed=true] { border-color:var(--green-300); background:#102239; color:var(--paper); }
.service-choice:hover { border-color:var(--silver-400); }
.service-choice[aria-pressed=true]:hover { border-color:var(--green-300); }
.service-group:last-child .service-picker { grid-template-columns:minmax(0,1fr); }
.service-group:last-child .service-choice { grid-template-columns:80px minmax(0,1fr); grid-template-rows:auto auto; text-align:left; padding:.5rem 1rem .5rem .4rem; align-items:center; }
.service-group:last-child .service-choice img { grid-row:span 2; height:72px; }
.service-group:last-child .service-choice > span { align-self:end; }
.service-group:last-child .service-choice small { align-self:start; }
.airport-direction { margin-block:1.5rem; }
.airport-direction .pill-toggle { flex-wrap:wrap; }
#airport-arrival-field { margin-top:1.5rem; }
.geo-banner, .stop-card { scroll-margin-top:100px; }
.geo-banner .field-label { font-size:1.1rem; margin-bottom:.6rem; }
.preview-quote .stop-card > h3 { font-size:1.5rem; }
.preview-quote .stop-card > .lede { max-width:65ch; }
.saved-routes { margin-bottom:1.5rem; }
.saved-routes > summary, .request-details > summary { min-height:44px; padding:.6rem 0; cursor:pointer; color:var(--paper); font-weight:600; }
.saved-routes > summary { color:var(--green-300); font-size:.9rem; }
.saved-route { display:flex; align-items:center; gap:1rem; border-bottom:1px solid var(--border-soft); padding:.6rem 0; }
.saved-route-use { display:grid; gap:.25rem; padding:.5rem 0; flex:1; min-width:0; text-align:left; border:0; background:none; color:var(--paper); font:inherit; cursor:pointer; }
.saved-route-use > span { font-size:.83rem; color:var(--paper-dim); }
.saved-route-use .saved-route-action { color:var(--green-300); }
.request-planning { border-top:1px solid var(--border-soft); padding-top:1.1rem; }
.request-planning h3 { font-size:1.05rem; margin-bottom:.7rem; }
#planSchedule { margin-top:1rem; }
.request-details { border-top:1px solid var(--border-soft); margin-top:.5rem; padding:.3rem 0; }
.request-details > summary { font-size:.9rem; }
.request-details > summary span { font-size:.8rem; color:var(--paper-dim); font-weight:400; margin-left:.3rem; }
.request-details p, .request-details label { font-size:.85rem; }
.request-details .field-input { margin-block:.3rem .6rem; }
.request-details .save-consent { display:flex; align-items:flex-start; gap:.65rem; padding:.8rem 0; line-height:1.5; }
.save-consent input { margin-top:.3rem; width:18px; height:18px; flex-shrink:0; accent-color:var(--green-300); }
.confirm-row { gap:.5rem 1.2rem; }
.confirm-row strong { max-width:68%; overflow-wrap:anywhere; }
.confirm-modal-body { overscroll-behavior:contain; scrollbar-color:var(--silver-400) var(--blue-900); }
.confirm-modal-body input { font-size:1rem; color-scheme:dark; }
.quote-box { flex-wrap:wrap; }
.quote-box .route-retry { flex-basis:100%; text-align:left; }
.quote-price { font-family:var(--font-body); font-variant-numeric:tabular-nums; }
.float-stack[inert] { visibility:hidden; }
.home-hero h1 { letter-spacing:-.04em; }
::selection { background:var(--green-300); color:var(--blue-950); }
input, textarea { caret-color:var(--green-300); }
@media(max-width:900px) {
 .service-cards { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .service-picker { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:600px) {
 body { padding-bottom:calc(82px + env(safe-area-inset-bottom)); }
 html { scroll-padding-bottom:calc(90px + env(safe-area-inset-bottom)); }
 .service-cards { gap:.65rem; }
 .service-copy { padding:.8rem .8rem 1rem; }
 .service-copy h3 { font-size:1rem; }
 .service-copy p { font-size:.8rem; margin-bottom:.8rem; }
 .service-art { aspect-ratio:1.1; }
 .service-card:first-child .service-art { aspect-ratio:1; }
 .service-card:first-child .service-copy { padding-left:.1rem; }
 .service-choice img { height:94px; }
 .service-selector > summary { font-size:1rem; }
 .selector-action { font-size:.75rem; }
 .preview-quote .stop-card { border:0; padding:1rem; }
 .confirm-modal-body { gap:1rem; }
 .confirm-row { display:grid; grid-template-columns:1fr; gap:.2rem; }
 .confirm-row strong { text-align:left; max-width:100%; }
 .confirm-foot-row .btn { font-size:.8rem; padding:.65rem .5rem; flex-basis:0; }
 .field-input, .search-field input { font-size:16px; min-height:48px; min-width:0; }
 .float-stack { right:0; left:0; bottom:0; padding:.6rem 1rem calc(.6rem + env(safe-area-inset-bottom)); display:flex; flex-direction:row; justify-content:center; align-items:center; gap:.7rem; background:var(--blue-950); border-top:1px solid var(--border-soft); }
 .float-stack .quick-float, .float-stack .wa-float { position:static; display:flex; gap:.5rem; width:auto; height:44px; padding:.6rem .9rem; border-radius:12px; box-shadow:none; font-size:.85rem; font-weight:600; }
 .float-stack .quick-float { background:var(--blue-800); color:var(--paper); }
 .float-stack .quick-float span { display:block; }
 .float-stack .wa-float::after { content:'WhatsApp'; color:white; }
 .float-stack .wa-float svg { width:22px; height:22px; }
 .install-tip { bottom:calc(100% + .5rem); right:1rem; max-width:calc(100vw - 2rem); }
 .privacy-controls { padding-bottom:1.5rem; }
 .update-notice { bottom:calc(88px + env(safe-area-inset-bottom)); }
}
