
:root{--deep:#031f20;--green:#0c4b45;--yellow:#f7bd22;--cream:#f5f3e9;--ink:#092f30;--muted:#617473}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--font-sans),sans-serif}a{text-decoration:none;color:inherit}button,input,select{font:inherit}.topbar{height:88px;display:flex;align-items:center;justify-content:space-between;padding:0 5vw;background:#fbfaf4;position:relative;z-index:20;border-bottom:1px solid #dfe3d8}.brand{display:flex;align-items:center;gap:11px;font-family:var(--font-display)}.brand-mark{width:42px;height:42px;border:2px solid var(--green);color:var(--green);font-weight:800;font-size:24px;display:grid;place-items:center;transform:skew(-8deg);border-radius:3px}.brand>span:last-child{font-size:16px;font-weight:800;letter-spacing:-.7px;line-height:1}.brand strong{color:#d89500}.brand small{display:block;font-size:7px;letter-spacing:2.3px;margin-top:5px}.topbar nav{display:flex;gap:38px;font-size:13px;font-weight:600}.topbar nav a:hover{color:#d89500}.hotline{display:grid;grid-template-columns:35px auto;column-gap:10px;align-items:center}.hotline>span{grid-row:1/3;width:35px;height:35px;border-radius:50%;background:var(--yellow);display:grid;place-items:center}.hotline small{font-size:8px;letter-spacing:1.6px}.hotline b{font-family:var(--font-display);font-size:17px}
.hero{min-height:650px;background:var(--deep);position:relative;color:white;padding:88px 5vw 118px;overflow:hidden}.hero-grid{position:absolute;inset:0;background-image:linear-gradient(#ffffff08 1px,transparent 1px),linear-gradient(90deg,#ffffff08 1px,transparent 1px);background-size:58px 58px;mask-image:linear-gradient(90deg,black,transparent 75%)}.hero-copy{position:relative;z-index:2;max-width:620px}.eyebrow,.kicker{font-size:10px;font-weight:800;letter-spacing:2.5px}.eyebrow{color:#b7d4cb;display:flex;align-items:center;gap:10px}.eyebrow span{width:22px;height:2px;background:var(--yellow)}h1,h2{font-family:var(--font-display);margin:20px 0;line-height:.98;letter-spacing:-3px}h1{font-size:clamp(48px,5.2vw,77px);font-weight:600}h1 em,h2 em{font-style:italic;font-weight:500;color:var(--yellow)}.hero-copy>p{color:#adc2bf;font-size:15px;line-height:1.8}.hero-actions{display:flex;align-items:center;gap:26px;margin:32px 0 48px}.primary-btn,.submit-btn{background:var(--yellow);color:#0b3030;font-weight:800;font-size:12px;letter-spacing:.8px;padding:18px 24px;display:inline-flex;align-items:center;justify-content:space-between;gap:35px;border:0;cursor:pointer}.primary-btn:hover,.submit-btn:hover{background:#ffd45b}.primary-btn span,.submit-btn span{font-size:21px}.text-link{font-weight:700;font-size:13px}.trust-row{display:flex;gap:48px}.trust-row>div{display:flex;flex-direction:column}.trust-row b{font:700 29px var(--font-display)}.trust-row b span{color:var(--yellow);font-size:14px}.trust-row small{color:#819e99;font-size:9px;text-transform:uppercase;letter-spacing:1px;margin-top:5px}
.hero-visual{position:absolute;right:27%;bottom:45px;width:430px;height:470px}.moon{position:absolute;width:280px;height:280px;border-radius:50%;background:#0d3d3a;right:20px;top:0;box-shadow:0 0 0 45px #083431}.landmark{position:absolute;right:0;bottom:90px;color:#174f4a;width:330px;height:220px;border-bottom:4px solid #174f4a;text-align:center;font:90px monospace}.landmark b{display:block;letter-spacing:24px;font-size:80px}.car{position:absolute;bottom:46px;left:0;width:330px;height:120px;z-index:3;filter:drop-shadow(0 20px 18px #0008)}.taxi-sign{position:absolute;left:155px;top:5px;background:#f2bd2b;color:#0b302f;padding:4px 12px;border-radius:4px 4px 0 0;font-size:9px;font-weight:800}.car-top{position:absolute;width:175px;height:55px;left:74px;top:27px;background:#d9e0d9;clip-path:polygon(20% 0,75% 0,100% 100%,0 100%)}.car-body{position:absolute;bottom:13px;width:100%;height:58px;border-radius:45px 60px 12px 12px;background:#eef0e6;border-bottom:7px solid #e6b11f}.car-body:before{content:"HANOI TAXI";color:#0b4541;font-weight:800;font-size:11px;position:absolute;left:125px;top:16px}.car-body i{position:absolute;width:29px;height:12px;background:#fff7af;left:9px;top:20px;border-radius:7px}.car-body i+i{left:auto;right:8px}.wheel{position:absolute;bottom:0;width:47px;height:47px;background:#071817;border:10px solid #263f3e;border-radius:50%;z-index:3}.w1{left:54px}.w2{right:49px}.road-line{position:absolute;bottom:0;height:3px;background:#dfaa20;transform:skewX(-35deg)}.l1{width:180px;left:-110px}.l2{width:90px;right:-20px}
.booking-card{position:absolute;z-index:4;right:5vw;top:72px;background:#fbfaf3;color:var(--ink);width:360px;padding:27px;box-shadow:0 25px 70px #00121299}.card-title{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:20px}.card-title span{font:800 18px var(--font-display)}.card-title small{color:#87928f;font-size:10px}.trip-tabs{display:grid;grid-template-columns:1fr 1fr;margin-bottom:16px;background:#e8ebe4;padding:3px}.trip-tabs button{border:0;padding:9px;background:transparent;font-size:11px;font-weight:700;color:#687b77;cursor:pointer}.trip-tabs .active{background:white;color:var(--ink);box-shadow:0 2px 8px #183c3420}.booking-card label{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.7px;display:block;position:relative;margin-bottom:12px}.booking-card input,.booking-card select{display:block;width:100%;height:42px;margin-top:6px;border:1px solid #d8ddd5;background:white;padding:0 11px;color:#213f3e;font-size:12px;outline:none}.booking-card input:focus,.booking-card select:focus{border-color:#0b554d;box-shadow:0 0 0 2px #0b554d16}.booking-card>label>.dot{position:absolute;left:-12px;top:31px;width:6px;height:6px;border-radius:50%;z-index:1}.green{background:#0a7a61}.gold{background:#e8aa06}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.submit-btn{width:100%;height:48px;margin-top:5px}.notice{font-size:10px!important;line-height:1.4!important;color:#08705f!important;text-align:center;margin:10px 0!important}.safe{text-align:center;font-size:8px!important;color:#81908e!important;margin:11px 0 0!important}
.section{padding:100px 7vw}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:48px}.section-heading h2,.why-copy h2{font-size:52px;font-weight:600;margin:14px 0 0}.section-heading h2 em{color:#158171}.section-heading>p{width:390px;color:var(--muted);line-height:1.8;font-size:13px}.kicker{color:#12705f}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.service-card{min-height:315px;padding:28px;position:relative;overflow:hidden;display:flex;flex-direction:column}.service-card.mint{background:#dceee5}.service-card.yellow{background:#f1c84f}.service-card.blue{background:#0a4440;color:white}.service-no{position:absolute;right:-5px;top:-34px;font:800 120px var(--font-display);opacity:.07}.service-icon{font-size:32px;margin:18px 0 34px}.service-card h3{font:700 21px var(--font-display);margin:0 0 13px}.service-card p{font-size:12px;line-height:1.7;max-width:280px;opacity:.72}.service-card>div:last-child{margin-top:auto;display:flex;align-items:center;justify-content:space-between;font-size:11px}.service-card>div:last-child a{width:35px;height:35px;border:1px solid currentColor;border-radius:50%;display:grid;place-items:center;font-size:19px}
.why{background:#e8e6dc;display:grid;grid-template-columns:1fr 1fr;gap:9vw;align-items:center}.why-art{height:520px;background:#0a4540;position:relative;display:grid;place-items:center;overflow:hidden}.map-loop{width:310px;height:360px;border:3px dashed #4e7770;border-radius:45% 55% 50% 46%;display:grid;place-items:center;color:#99afa7;letter-spacing:8px;font-size:11px;transform:rotate(-8deg);box-shadow:0 0 0 45px #0f504a inset}.pin{position:absolute;color:var(--yellow);font-size:28px}.p1{top:70px;left:110px}.p2{right:100px;top:190px}.p3{left:170px;bottom:75px}.mini-car{position:absolute;right:55px;bottom:45px;background:#f2c338;color:#123c38;font-weight:800;font-size:9px;width:100px;height:45px;border-radius:30px 25px 5px 5px;display:grid;place-items:center;box-shadow:0 15px 25px #001c1a}.why-copy h2{font-size:55px}.reasons{margin-top:37px}.reasons>div{display:grid;grid-template-columns:45px 1fr;gap:16px;padding:18px 0;border-top:1px solid #c7ccc2}.reasons>div>b{font-size:11px;color:#9a7842}.reasons span{display:flex;flex-direction:column;gap:6px}.reasons strong{font:700 14px var(--font-display)}.reasons small{font-size:11px;color:#6c7b78}
.pricing{background:#f8f6ed}.section-heading.compact{align-items:center}.section-heading.compact h2{font-size:44px}.price-table{border-top:2px solid var(--ink)}.price-row{display:grid;grid-template-columns:2fr repeat(3,1fr);padding:20px;border-bottom:1px solid #d7dad1;align-items:center;font:600 13px var(--font-display)}.price-row.head{font-size:9px;letter-spacing:1.4px;color:#72817d;padding-top:14px;padding-bottom:14px}.car-type{font-weight:700}.car-type i{font-style:normal;background:#dcece6;border-radius:50%;padding:9px;margin-right:14px;color:#0c6c5e}.cta{background:var(--yellow);padding:55px 7vw;display:flex;justify-content:space-between;align-items:center}.cta>div:first-child span{font-size:9px;font-weight:800;letter-spacing:2px}.cta h2{font-size:43px;margin:9px 0 0}.cta>div:last-child{display:flex;align-items:center;gap:25px}.cta .primary-btn{background:var(--deep);color:white}.cta>div:last-child>a:last-child{font-size:12px}footer{background:#031f20;color:#dce8e3;padding:65px 7vw 35px;display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px;position:relative}footer .brand-mark{border-color:#dce8e3;color:#dce8e3}footer .brand strong{color:var(--yellow)}footer>p{position:absolute;left:7vw;top:125px;color:#78938d;font-size:11px;line-height:1.7}footer>div{display:flex;flex-direction:column;gap:10px;font-size:11px;color:#91a8a3}footer>div b{font-size:9px;letter-spacing:1.5px;color:#eaf2ee;margin-bottom:5px}footer>small{grid-column:1/-1;border-top:1px solid #1a3c3b;padding-top:25px;margin-top:25px;color:#6a8580;font-size:9px}.mobile-call{display:none}
@media(max-width:1100px){.hero-visual{right:21%;opacity:.55}.booking-card{right:3vw}.hero{padding-left:4vw}.topbar nav{display:none}.section{padding-left:5vw;padding-right:5vw}}@media(max-width:760px){body{padding-bottom:58px}.topbar{height:70px;padding:0 20px}.hotline{display:none}.hero{padding:55px 20px 520px;min-height:auto}.hero-copy>p br{display:none}.hero-actions{margin-bottom:38px}.text-link{display:none}.trust-row{gap:22px}.trust-row b{font-size:23px}.hero-visual{right:-80px;bottom:370px;transform:scale(.7);transform-origin:bottom right}.booking-card{top:auto;bottom:35px;left:20px;right:20px;width:auto}.section{padding:72px 20px}.section-heading{display:block}.section-heading h2,.why-copy h2{font-size:39px;letter-spacing:-2px}.section-heading>p{width:auto}.service-grid{grid-template-columns:1fr}.service-card{min-height:275px}.why{grid-template-columns:1fr}.why-art{height:360px;order:2}.price-table{overflow-x:auto}.price-row{min-width:620px}.cta{padding:48px 20px;display:block}.cta h2{font-size:37px}.cta>div:last-child{margin-top:25px;align-items:flex-start;flex-direction:column}.cta .primary-btn{width:100%}footer{grid-template-columns:1fr;padding:55px 20px 30px}footer>p{position:static;margin:0}footer>small{grid-column:1}.mobile-call{display:block;position:fixed;z-index:50;bottom:0;left:0;right:0;height:58px;background:var(--yellow);color:var(--ink);text-align:center;padding:19px;font-size:13px;font-weight:800;letter-spacing:.5px}}

/* Brand, service photography, business information and policy pages */
.brand-mark{width:46px;position:relative;overflow:hidden}.brand-mark i{font-style:normal;transform:skew(8deg)}.brand-mark b{position:absolute;right:-2px;bottom:-4px;width:19px;height:19px;background:var(--yellow);color:var(--deep);font:800 10px var(--font-sans);display:grid;place-items:center;border-radius:10px;transform:skew(8deg)}
.booking-card input[type="hidden"]{display:none}.submit-btn:disabled{opacity:.65;cursor:wait}
.service-card{min-height:440px;padding:0}.service-photo{height:190px;flex:none;background-image:url('/taxi-services.png');background-repeat:no-repeat;background-size:300% 100%;filter:saturate(.86) contrast(1.02)}.service-photo.left{background-position:left center}.service-photo.center{background-position:center center}.service-photo.right{background-position:right center}.service-content{padding:25px 28px 28px;display:flex;flex:1;flex-direction:column;position:relative}.service-content .service-icon{font-size:23px;margin:0 0 18px}.service-content>div:last-child{margin-top:auto;display:flex;align-items:center;justify-content:space-between;font-size:11px}.service-content>div:last-child a{width:35px;height:35px;border:1px solid currentColor;border-radius:50%;display:grid;place-items:center;font-size:19px}
.business{background:#e4eee8;display:grid;grid-template-columns:1.1fr .9fr 1.2fr;gap:55px;align-items:start}.business h2{font-size:45px;margin:14px 0}.business>div>p{font-size:12px;line-height:1.8;color:#59706c}.business dl{margin:0}.business dl>div{border-top:1px solid #bdcec5;padding:14px 0}.business dt{font-size:9px;text-transform:uppercase;letter-spacing:1.2px;color:#6f827e}.business dd{margin:6px 0 0;font:700 13px var(--font-display)}.disclaimer{background:var(--deep);color:white;padding:28px}.disclaimer b{font:700 14px var(--font-display)}.disclaimer p{color:#9fb7b2!important;font-size:10px!important;line-height:1.7!important}.disclaimer a{color:var(--yellow);font-size:10px;font-weight:800}
.policy-page{min-height:100vh;background:#f8f6ed}.policy-hero{background:var(--deep);color:white;padding:60px 8vw 75px}.policy-hero .brand{margin-bottom:65px;width:max-content}.policy-hero .brand-mark{border-color:#dce8e3;color:#dce8e3}.policy-hero h1{font-size:clamp(48px,7vw,80px);max-width:850px}.policy-hero p{color:#9db5b0;max-width:660px;line-height:1.8}.policy-content{max-width:920px;margin:0 auto;padding:70px 30px 100px;display:grid;gap:18px}.policy-card{background:white;padding:30px 34px;border:1px solid #dde2d9}.policy-card h2{font-size:23px;letter-spacing:-1px;margin:0 0 15px}.policy-card p,.policy-card li{font-size:12px;line-height:1.9;color:#566b67}.policy-card ul{padding-left:18px}.policy-actions{display:flex;gap:15px;margin-top:20px}.policy-actions a{padding:15px 20px;background:var(--yellow);font-size:11px;font-weight:800}.policy-actions a+a{background:var(--deep);color:white}
@media(max-width:900px){.business{grid-template-columns:1fr;gap:30px}}@media(max-width:760px){.service-card{min-height:430px}.business{display:block}.business dl,.business .disclaimer{margin-top:30px}.policy-hero{padding:45px 22px 55px}.policy-hero .brand{margin-bottom:50px}.policy-content{padding:45px 20px 80px}.policy-card{padding:24px 20px}.policy-actions{flex-direction:column}}

/* Supplied Taxi Ba Vi brand identity */
.brand-image img{width:62px;height:62px;object-fit:cover;object-position:center;border-radius:9px;box-shadow:0 4px 18px #082d2b1a}.brand-image>span:last-child{font-size:13px;letter-spacing:0}.brand-image>span:last-child strong{display:block;font-size:14px;margin-top:3px}.brand-image>span:last-child small{font-size:6px}.topbar{height:96px}.topbar .brand-image img{width:68px;height:68px}.business{grid-template-columns:1.25fr 1fr .9fr}.business-intro{display:flex;gap:24px!important;align-items:flex-start}.business-intro>img{width:145px;height:145px;object-fit:cover;border-radius:14px;box-shadow:0 14px 35px #113a3225;flex:none}.business-intro h2{font-size:32px}.business dd{line-height:1.55}footer .brand-image img{width:72px;height:72px}footer .brand-image>span:last-child strong{color:var(--yellow)}.policy-hero .brand-image img{width:76px;height:76px}.policy-hero .brand-image>span:last-child strong{color:var(--yellow)}
@media(max-width:1100px){.business-intro{display:block}.business-intro>img{margin-bottom:22px}.business{grid-template-columns:1fr 1fr}.business .disclaimer{grid-column:1/-1}}@media(max-width:760px){.topbar{height:78px}.topbar .brand-image img{width:54px;height:54px}.brand-image>span:last-child{font-size:10px}.brand-image>span:last-child strong{font-size:11px}.business-intro{display:flex}.business-intro>img{width:100px;height:100px}.business-intro h2{font-size:28px}.business{display:block}}

/* Preserve the natural square proportions of each panel in the service triptych */
.service-photo{height:auto;aspect-ratio:1.28/1;background-size:300% auto;background-position-y:center}.service-card{min-height:560px}.business-intro>img,.brand-image img{object-fit:contain;background:#f4f4f2}
@media(max-width:1100px){.service-photo{aspect-ratio:1.18/1}.service-card{min-height:570px}}@media(max-width:760px){.service-photo{aspect-ratio:1.35/1}.service-card{min-height:590px}}

/* Real photography replacing the original decorative illustrations */
.hero-photo{width:520px;height:470px;right:24%;bottom:42px;border-radius:6px;overflow:hidden;box-shadow:0 30px 70px #00131299}.hero-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#031f20b0 0%,transparent 38%,transparent 75%,#031f2040 100%);pointer-events:none}.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:62% center;display:block}.hero-photo>span{position:absolute;z-index:2;left:24px;bottom:20px;color:#f7d15d;font-size:8px;letter-spacing:1.5px;font-weight:800}
.why-photo{display:block;background:#0a4540}.why-photo>img{width:100%;height:100%;object-fit:cover;object-position:center 45%;display:block}.why-photo:after{content:"";position:absolute;inset:55% 0 0;background:linear-gradient(transparent,#001a18cc);pointer-events:none}.photo-caption{position:absolute;z-index:2;left:30px;right:30px;bottom:28px;color:white;display:flex;justify-content:space-between;align-items:end;border-top:1px solid #ffffff55;padding-top:15px}.photo-caption b{font:700 18px var(--font-display)}.photo-caption span{font-size:9px;letter-spacing:.7px;color:#d2e2de}
@media(max-width:1100px){.hero-photo{right:22%;opacity:.72}}@media(max-width:760px){.hero-photo{right:-38px;bottom:368px;width:430px;height:320px;transform:none;opacity:.62}.hero-photo img{object-position:68% center}.why-photo{height:480px}.photo-caption{align-items:flex-start;flex-direction:column;gap:7px}}

.service-photo{background-image:url('taxi-services.png')!important}
