/* Andaman Cab Booking — full-width, mobile-first visual system */
.acb-wrap{width:100%;max-width:none;margin:0;overflow:hidden;background:#fff;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;color:#123047}
.acb-scene{height:360px;position:relative;overflow:hidden;background:linear-gradient(180deg,#74d8ff 0%,#bcefff 57%,#eef9ff 57%,#eef9ff 100%);isolation:isolate}
.acb-scene:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 78% 18%,rgba(255,255,255,.9) 0 4%,transparent 4.4%),radial-gradient(circle at 70% 24%,rgba(255,255,255,.65) 0 2.5%,transparent 2.9%),linear-gradient(180deg,transparent 0 61%,rgba(255,255,255,.18) 61% 62%,transparent 62%);opacity:.9}
.acb-sky{position:absolute;inset:0;background:linear-gradient(180deg,transparent 0 56%,#19a7cf 56% 70%,#087ea8 70% 71%,#d8b77d 71% 75%,#38464b 75%);z-index:0}
.acb-sky:after{content:"";position:absolute;left:-4%;right:-4%;bottom:94px;height:72px;background:linear-gradient(145deg,#147e62 0 48%,#0c684f 49% 100%);clip-path:polygon(0 100%,0 52%,12% 28%,22% 44%,34% 5%,45% 38%,57% 18%,68% 47%,80% 10%,91% 37%,100% 20%,100% 100%)}
.acb-ocean{position:absolute;left:0;right:0;bottom:106px;height:108px;background:repeating-linear-gradient(0deg,rgba(255,255,255,.12) 0 2px,transparent 2px 13px),linear-gradient(180deg,#1bb4d5,#087fa8);z-index:1;opacity:.95}
.acb-ocean:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.18),transparent);transform:translateX(-100%);animation:acb-shimmer 5s ease-in-out infinite}
.acb-hill{position:absolute;left:-5%;right:35%;bottom:112px;height:100px;background:#176f52;border-radius:55% 55% 0 0;z-index:2;opacity:.92}
.acb-palm{position:absolute;right:5%;bottom:88px;width:100px;height:170px;font-size:0;z-index:4}.acb-island-label{position:absolute;z-index:5;right:18%;bottom:188px;padding:7px 11px;border-radius:999px;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.38);color:#fff;font-size:10px;font-weight:900;letter-spacing:1.4px;backdrop-filter:blur(7px);animation:acb-label-float 4s ease-in-out infinite}.acb-story-sign{position:absolute;z-index:11;left:50%;bottom:83px;transform:translateX(-50%);padding:6px 11px;border-radius:999px;background:rgba(7,50,61,.68);color:#fff;font-size:9px;font-weight:900;letter-spacing:1.5px;white-space:nowrap;box-shadow:0 5px 14px rgba(0,0,0,.18);opacity:.86}
.acb-palm:before{content:"";position:absolute;right:40px;bottom:0;width:12px;height:128px;background:#6e4a2f;border-radius:10px;transform:rotate(7deg)}
.acb-palm:after{content:"🌴";position:absolute;right:-5px;top:-4px;font-size:95px;filter:drop-shadow(0 7px 5px rgba(0,0,0,.18))}
.acb-road{position:absolute;z-index:3;bottom:0;left:-2%;width:104%;height:100px;background:linear-gradient(180deg,#4d5659,#2e3538);transform:perspective(400px) rotateX(5deg)}
.acb-road:before{content:"";position:absolute;left:0;right:0;top:46px;height:5px;background:repeating-linear-gradient(90deg,#f8e7a5 0 82px,transparent 82px 150px);animation:acb-road 1.1s linear infinite}
.acb-road:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 0 30%,rgba(255,255,255,.08) 45%,transparent 60%);pointer-events:none}
/* Animated story characters */
.acb-man{position:absolute;z-index:8;left:16%;bottom:91px;width:54px;height:118px;animation:acb-wait 3.8s ease-in-out infinite;filter:drop-shadow(0 8px 4px rgba(0,0,0,.18))}
.acb-man:before{content:"";position:absolute;left:17px;top:0;width:24px;height:24px;border-radius:50%;background:#d89568;box-shadow:0 25px 0 -4px #173a52,0 57px 0 -2px #e5b33e}
.acb-man:after{content:"";position:absolute;left:18px;top:26px;width:22px;height:45px;border-radius:8px 8px 5px 5px;background:#0c6289;box-shadow:-12px 45px 0 -7px #18313c,12px 45px 0 -7px #18313c}
.acb-phone{position:absolute;z-index:9;left:20%;bottom:145px;width:9px;height:15px;background:#1d2630;border-radius:2px;animation:acb-phone 3.8s ease-in-out infinite}
.acb-cab{position:absolute;z-index:9;bottom:72px;left:-180px;width:148px;height:68px;font-size:0;border-radius:17px 22px 9px 9px;background:linear-gradient(180deg,#ffd34f,#f2a900);box-shadow:0 13px 15px rgba(0,0,0,.22);animation:acb-arrive 7.5s cubic-bezier(.35,.01,.2,1) infinite}
.acb-cab:before{content:"";position:absolute;left:31px;top:-29px;width:87px;height:37px;background:linear-gradient(135deg,#ffd34f 0 11%,#dff7ff 12% 47%,#b8e8f6 48% 85%,#ffd34f 86%);border-radius:20px 25px 4px 4px;box-shadow:inset 0 -5px 0 rgba(0,0,0,.06)}
.acb-cab:after{content:"";position:absolute;left:18px;bottom:-12px;width:28px;height:28px;border-radius:50%;background:#17232a;box-shadow:91px 0 0 #17232a,0 0 0 6px #e8eef0 inset,91px 0 0 6px #e8eef0 inset}
.acb-cab-label{position:absolute;left:46px;top:19px;font-size:10px;font-weight:950;color:#593900;letter-spacing:1px}.acb-cab-window{position:absolute;left:67px;top:-22px;width:30px;height:22px;border-radius:12px 12px 3px 3px;background:linear-gradient(145deg,#d8f7ff,#79c9dc);border:2px solid rgba(72,110,119,.25);overflow:visible}.acb-bye{position:absolute;left:77px;top:-47px;color:#fff;font-size:8px;line-height:.95;font-weight:1000;letter-spacing:.5px;text-align:center;text-shadow:0 2px 4px rgba(0,0,0,.35);opacity:0;animation:acb-bye 7.5s ease-in-out infinite}.acb-cab-wave{position:absolute;left:90px;top:-45px;width:14px;height:17px;border-radius:70% 20% 60% 20%;background:#d89568;transform:rotate(-28deg);opacity:0;transform-origin:bottom left;animation:acb-wave 7.5s ease-in-out infinite}
.acb-pickup-pin{position:absolute;z-index:7;left:18.3%;bottom:205px;width:22px;height:30px;border-radius:50% 50% 50% 0;background:#ef4b4b;transform:rotate(-45deg);box-shadow:0 5px 14px rgba(239,75,75,.35);animation:acb-pin 3.8s ease-in-out infinite}
.acb-pickup-pin:after{content:"";position:absolute;width:8px;height:8px;border-radius:50%;background:#fff;left:7px;top:7px}
.acb-scene-caption{position:absolute;z-index:12;left:28px;top:26px;color:#fff;max-width:520px;text-shadow:0 2px 8px rgba(0,45,65,.35)}
.acb-scene-caption .eyebrow{font-size:11px;font-weight:800;letter-spacing:2px;opacity:.9}.acb-scene-caption strong{display:block;margin-top:7px;font-size:clamp(24px,4vw,42px);line-height:1.05}.acb-scene-caption small{display:block;margin-top:9px;font-size:14px;opacity:.9}
.acb-status{position:absolute;z-index:13;right:24px;top:24px;display:flex;align-items:center;gap:8px;padding:10px 13px;border:1px solid rgba(255,255,255,.45);border-radius:999px;background:rgba(0,49,72,.38);backdrop-filter:blur(10px);color:#fff;font-size:12px;font-weight:800;letter-spacing:.2px}.acb-status-dot{width:8px;height:8px;border-radius:50%;background:#64ef9b;box-shadow:0 0 0 5px rgba(100,239,155,.16);animation:acb-pulse 1.5s infinite}
.acb-panel{padding:clamp(22px,4vw,46px);background:#fff}.acb-panel>span{font-size:12px;font-weight:800;letter-spacing:1.6px;color:#087ea8}.acb-panel h2{margin:7px 0;color:#083e64;font-size:clamp(27px,4vw,36px);line-height:1.1}.acb-panel p{color:#587080;margin:0 0 22px}.acb-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.acb-grid label{font-size:13px;font-weight:750;color:#254355;min-width:0}.acb-grid input,.acb-grid select,.acb-track input{display:block;width:100%;box-sizing:border-box;padding:13px 14px;margin-top:7px;border:1px solid #d6e4eb;border-radius:11px;background:#fbfdfe;color:#17384a;min-height:48px;font-size:16px;outline:none;transition:.2s}.acb-grid input:focus,.acb-grid select:focus,.acb-track input:focus{border-color:#13a5ce;box-shadow:0 0 0 4px rgba(19,165,206,.1);background:#fff}.acb-panel button,.acb-track button{margin-top:20px;background:linear-gradient(135deg,#0788b4,#075c93);color:#fff;border:0;border-radius:12px;padding:14px 26px;min-height:50px;font-weight:800;cursor:pointer;box-shadow:0 8px 18px rgba(5,91,137,.2);transition:.2s}.acb-panel button:hover,.acb-track button:hover{transform:translateY(-1px);box-shadow:0 11px 22px rgba(5,91,137,.27)}.acb-panel button:active,.acb-track button:active{transform:translateY(0)}
.acb-fare{margin-top:18px;padding:15px 16px;background:linear-gradient(135deg,#eefaff,#f5fbff);border:1px solid #d7edf5;border-radius:12px;color:#075c83;font-weight:750}.acb-success{margin-top:18px;padding:20px;border:1px solid #b7dfc2;border-radius:14px;background:linear-gradient(135deg,#f1fbf4,#fbfffc);color:#155724;line-height:1.6;animation:acb-success-in .45s ease both}.acb-success strong{font-size:19px}.acb-result-actions{margin-top:12px}.acb-result-actions button{width:auto;margin-top:0}.acb-book-now-external-wrap{margin:0 0 18px;text-align:center}.acb-book-now-external{display:inline-block;padding:12px 24px;border-radius:10px;text-decoration:none;font-weight:800;background:#f5b400;color:#fff;transition:.2s}.acb-book-now-external:hover{transform:translateY(-1px);filter:brightness(.96);color:#fff}.acb-track{width:100%;box-sizing:border-box;max-width:650px;margin:30px auto;padding:30px;border-radius:16px;background:#fff;box-shadow:0 10px 35px rgba(0,0,0,.08);font-family:inherit}.acb-track input{max-width:100%}
/* Booking state: a single polished story — waiting → arrival → pickup → success */
.acb-wrap.acb-booking-active .acb-cab{animation:acb-arrive-once 4.4s cubic-bezier(.25,.7,.25,1) forwards}.acb-wrap.acb-booking-active .acb-man{animation:acb-pickup-man 4.4s ease forwards}.acb-wrap.acb-booking-active .acb-pickup-pin{animation:acb-pin-off 4.4s ease forwards}.acb-wrap.acb-booking-active .acb-status:after{content:"  •  Driver is on the way"}.acb-wrap.acb-booking-active .acb-status-dot{background:#ffd24f}.acb-wrap.acb-booking-done .acb-status:after{content:"  •  Booking confirmed"}.acb-wrap.acb-booking-done .acb-status-dot{background:#64ef9b}
@keyframes acb-arrive{0%,12%{left:-180px}42%,61%{left:42%}82%,100%{left:105%}}@keyframes acb-arrive-once{0%{left:-180px}52%{left:42%}76%{left:42%}100%{left:105%}}@keyframes acb-pickup-man{0%,48%{transform:translateY(0)}60%{transform:translate(46px,0)}72%,100%{transform:translate(92px,0);opacity:.2}}@keyframes acb-wait{0%,100%{transform:translateY(0)}50%{transform:translateY(-2px)}}@keyframes acb-phone{0%,100%{transform:rotate(0)}50%{transform:rotate(-12deg)}}@keyframes acb-pin{0%,100%{transform:rotate(-45deg) translateY(0)}50%{transform:rotate(-45deg) translateY(-4px)}}@keyframes acb-pin-off{0%,55%{opacity:1}75%,100%{opacity:0}}@keyframes acb-road{to{background-position:-150px 0}}@keyframes acb-shimmer{0%,35%{transform:translateX(-100%)}65%,100%{transform:translateX(100%)}}@keyframes acb-pulse{50%{box-shadow:0 0 0 8px rgba(100,239,155,.03)}}@keyframes acb-success-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:900px){.acb-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.acb-scene{height:330px}}
@media(max-width:700px){.acb-scene{height:285px}.acb-scene-caption{left:16px;top:18px;right:16px}.acb-scene-caption strong{font-size:27px}.acb-scene-caption small{font-size:12px}.acb-status{top:auto;bottom:16px;right:14px}.acb-grid{grid-template-columns:1fr}.acb-panel{padding:20px 14px}.acb-panel h2{font-size:27px}.acb-panel button{width:100%}.acb-result-actions button{width:100%}.acb-man{left:12%;transform:scale(.88);transform-origin:bottom left}.acb-pickup-pin{left:14.3%;bottom:198px}.acb-cab{transform:scale(.88);transform-origin:bottom left}.acb-wrap.acb-booking-active .acb-cab{animation-name:acb-arrive-once-mobile}.acb-palm{right:1%;transform:scale(.78);transform-origin:bottom right}}
@keyframes acb-arrive-once-mobile{0%{left:-180px}52%{left:35%}76%{left:35%}100%{left:105%}}@keyframes acb-bye{0%,35%{opacity:0;transform:translateY(4px)}45%,63%{opacity:1;transform:translateY(0)}70%,100%{opacity:0;transform:translateY(-3px)}}@keyframes acb-wave{0%,40%{opacity:0;transform:rotate(-28deg) translateY(3px)}45%,58%{opacity:1;transform:rotate(25deg) translateY(-2px)}51%{transform:rotate(-22deg) translateY(-4px)}63%,100%{opacity:0;transform:rotate(-28deg)}}@keyframes acb-label-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
@media(max-width:700px){.acb-island-label{right:17%;bottom:177px;font-size:8px;padding:5px 8px}.acb-story-sign{bottom:75px;font-size:8px}.acb-bye{font-size:7px}}
@media(prefers-reduced-motion:reduce){.acb-cab,.acb-man,.acb-phone,.acb-pickup-pin,.acb-road:before,.acb-ocean:after,.acb-status-dot,.acb-bye,.acb-cab-wave,.acb-island-label{animation:none!important}.acb-wrap.acb-booking-active .acb-cab{left:42%}.acb-wrap.acb-booking-active .acb-man{transform:translateX(46px)}}

.acb-distance-field small{display:block;margin-top:7px;font-size:12px;line-height:1.45;color:#657784}.acb-distance-field input[readonly]{background:#f4f8fa;cursor:wait}.acb-route-loading{opacity:.7}
#acb-map{width:100%;height:300px;margin:16px 0;border-radius:18px;overflow:hidden;border:1px solid rgba(0,0,0,.1);background:#eaf4f8;box-shadow:0 10px 30px rgba(0,0,0,.08)}
.pac-container{z-index:999999}
@media(max-width:700px){#acb-map{height:240px;border-radius:14px}}
