
:root{
  --vp-blue:#062f7a;
  --vp-blue-2:#0b4ba8;
  --vp-blue-3:#083a91;
  --vp-gold:#d7a528;
  --vp-gold-2:#f2c14e;
  --vp-ink:#102b57;
  --vp-muted:#667085;
  --vp-light:#f5f8fc;
  --vp-border:#e4eaf3;
  --vp-shadow:0 12px 35px rgba(6,47,122,.10);
}
html{scroll-behavior:smooth}
body,button,input,select,textarea{font-family:Arial,Helvetica,sans-serif}
body{
  color:#152b4d;
  background:#fff;
}
a{text-decoration:none}
img{max-width:100%}
.text-vp{color:var(--vp-blue)!important}
.bg-vp{background:var(--vp-blue)!important}
.btn-vp{
  background:linear-gradient(135deg,var(--vp-gold-2),var(--vp-gold));
  color:#14284a;border:0;font-weight:800;
  box-shadow:0 5px 14px rgba(215,165,40,.22)
}
.btn-vp:hover{color:#102040;transform:translateY(-1px)}
.btn-outline-vp{border:1px solid var(--vp-blue);color:var(--vp-blue);font-weight:700}
.btn-outline-vp:hover{background:var(--vp-blue);color:#fff}
.topbar{background:var(--vp-blue);color:#fff;font-size:13px}
.topbar .container{min-height:34px}
.main-header{
  background:#fff;position:sticky;top:0;z-index:1030;
  box-shadow:0 4px 18px rgba(6,47,122,.08)
}
.brand-logo{width:275px;height:62px;object-fit:contain}
.navbar-nav .nav-link{
  color:#112c58;font-weight:800;font-size:14px;padding:.95rem .9rem!important;
  position:relative
}
.navbar-nav .nav-link:after{
  content:"";position:absolute;left:12px;right:12px;bottom:5px;height:3px;
  border-radius:99px;background:var(--vp-gold);transform:scaleX(0);transition:.2s
}
.navbar-nav .nav-link:hover:after,.navbar-nav .nav-link.active:after{transform:scaleX(1)}
.hotline{
  display:flex;align-items:center;gap:10px;padding:8px 15px;border-radius:9px;
  background:linear-gradient(135deg,#f6ce67,#c89418);color:#11264b;font-weight:900;
}
.hotline .phone{font-size:20px;line-height:1}
.hotline small{display:block;font-size:10px}
.hotline strong{font-size:17px}
.hero-wrap{background:#edf3fb;border-bottom:4px solid var(--vp-blue)}
.hero-slide{height:min(390px,30vw);min-height:235px;object-fit:cover;width:100%}
.hero-caption{
  position:absolute;left:5%;bottom:12%;max-width:450px;color:#fff;
  text-shadow:0 2px 10px rgba(0,0,0,.5)
}
.hero-caption .eyebrow{font-weight:800;letter-spacing:1px}
.hero-caption h1{font-size:clamp(24px,3.2vw,48px);font-weight:900}
.hero-caption p{font-size:clamp(13px,1.3vw,18px)}
.carousel-control-prev,.carousel-control-next{width:44px}
.carousel-control-prev-icon,.carousel-control-next-icon{
  background-color:rgba(6,47,122,.8);border-radius:50%;padding:22px;background-size:45%
}
.booking-section{margin-top:-3px;position:relative;z-index:5}
.booking-box{
  background:linear-gradient(135deg,#07337d,#0b4da8);
  color:#fff;border-radius:8px;padding:13px 14px 14px;box-shadow:var(--vp-shadow)
}
.booking-title{font-size:18px;font-weight:900;text-transform:uppercase;margin-bottom:9px}
.form-label{font-size:11px;font-weight:800;margin-bottom:4px}
.form-control,.form-select{border-radius:5px;border:1px solid #d7e0ef;min-height:38px;font-size:13px}
.form-control:focus,.form-select:focus{border-color:var(--vp-gold);box-shadow:0 0 0 .2rem rgba(215,165,40,.16)}
.section{padding:38px 0}
.section-title{text-align:center;color:var(--vp-blue);font-size:26px;font-weight:900;text-transform:uppercase;margin-bottom:18px}
.section-sub{text-align:center;color:#667085;margin:-7px auto 24px;max-width:700px}
.route-tabs{
  border:0;gap:6px;justify-content:center;margin-bottom:15px;flex-wrap:wrap
}
.route-tabs .nav-link{
  color:#263a5d;font-size:13px;font-weight:800;border:0;border-radius:6px;padding:9px 15px
}
.route-tabs .nav-link.active{background:var(--vp-blue);color:#fff}
.route-card{
  border:1px solid var(--vp-border);border-radius:8px;overflow:hidden;height:100%;
  background:#fff;box-shadow:0 4px 13px rgba(16,42,82,.07);transition:.2s
}
.route-card:hover{transform:translateY(-3px);box-shadow:var(--vp-shadow)}
.route-card img{height:112px;width:100%;object-fit:cover}
.route-card-body{padding:11px}
.route-name{font-weight:900;color:var(--vp-blue);font-size:14px}
.route-price{font-size:11px;color:#333;margin-top:6px}
.route-price b{color:#172e58}
.route-card .btn{font-size:11px;padding:6px 13px;margin-top:7px}
.why-wrap{background:#fbfcfe;border-top:1px solid #eef2f8;border-bottom:1px solid #eef2f8}
.why-item{text-align:center;padding:10px}
.why-icon{
  width:55px;height:55px;border:2px solid var(--vp-blue);border-radius:50%;
  display:flex;align-items:center;justify-content:center;margin:0 auto 8px;
  color:var(--vp-blue);font-size:25px;background:#fff
}
.why-item h3{font-size:14px;font-weight:900;margin:0 0 3px;color:var(--vp-blue)}
.why-item p{font-size:11px;color:#68758a;margin:0}
.page-hero{
  background:linear-gradient(135deg,#062f7a,#0c55b5);color:#fff;padding:42px 0
}
.page-hero h1{font-weight:900;margin:0;text-transform:uppercase}
.card-vp{border:1px solid var(--vp-border);border-radius:12px;box-shadow:var(--vp-shadow);height:100%}
.price-table thead th{background:var(--vp-blue);color:#fff}
.price-table td,.price-table th{vertical-align:middle;font-size:14px}
.service-icon{
  width:58px;height:58px;border-radius:14px;background:#edf4ff;color:var(--vp-blue);
  display:flex;align-items:center;justify-content:center;font-size:28px;margin-bottom:12px
}
.contact-card h3{font-size:16px;color:var(--vp-blue);font-weight:900}
.footer{background:#062f7a;color:#fff;padding:38px 0 0}
.footer h3{font-size:15px;font-weight:900;margin-bottom:14px}
.footer p,.footer li{font-size:12px;color:#d9e6ff;line-height:1.75}
.footer ul{padding:0;margin:0;list-style:none}
.footer a{color:#d9e6ff}
.footer a:hover{color:#fff}
.footer-logo{width:230px;height:60px;object-fit:contain;object-position:left center;filter:brightness(0) invert(1)}
.footer-bottom{border-top:1px solid rgba(255,255,255,.2);margin-top:24px;padding:11px 0;text-align:center;font-size:12px;color:#d9e6ff}
.float-call{
  position:fixed;right:16px;bottom:16px;z-index:1050;width:58px;height:58px;border-radius:50%;
  background:#d7a528;color:#11264b;display:flex;align-items:center;justify-content:center;
  font-size:24px;box-shadow:0 8px 25px rgba(0,0,0,.18);border:3px solid #fff
}
.toast-container{z-index:2000}
.route-img-fallback{background:#dfe9f6;display:flex;align-items:center;justify-content:center;color:#587099;font-weight:800}
@media(max-width:991.98px){
  .brand-logo{width:220px;height:55px}
  .hotline{display:none}
  .navbar-nav .nav-link{padding:.65rem .75rem!important}
  .hero-slide{height:330px}
  .booking-section{margin-top:0}
}
@media(max-width:767.98px){
  .topbar{font-size:11px}
  .brand-logo{width:205px;height:50px}
  .hero-slide{height:235px}
  .hero-caption{bottom:8%;left:8%;max-width:80%}
  .hero-caption p{display:none}
  .hero-caption h1{font-size:25px}
  .section{padding:28px 0}
  .section-title{font-size:21px}
  .route-card img{height:125px}
  .booking-box{border-radius:0}
}


/* Branding */
.brand-wrap{display:flex;align-items:center;gap:10px}
.brand-text{
  color:var(--vp-blue);
  font-size:17px;
  font-weight:900;
  line-height:1.05;
  white-space:nowrap;
  letter-spacing:.2px;
}
.footer-brand{display:flex;align-items:center;gap:10px}
.footer-brand span{font-size:16px;font-weight:900;color:#fff;white-space:nowrap}
.footer-logo{margin:0!important}

/* Floating hotline + Zalo */
.floating-contact{
  position:fixed;
  right:16px;
  bottom:16px;
  z-index:1050;
  display:flex;
  flex-direction:column;
  gap:10px;
}
.float-call,.float-zalo{
  position:static;
  width:58px;
  height:58px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 8px 25px rgba(0,0,0,.18);
  border:3px solid #fff;
}
.float-call{
  background:#d7a528;
  color:#11264b;
  font-size:24px;
}
.float-zalo{
  background:#0b68d7;
  color:#fff;
  font-size:12px;
  font-weight:900;
  text-decoration:none;
}
.float-zalo span{line-height:1}
.float-call:hover,.float-zalo:hover{transform:translateY(-2px);color:inherit}
.float-zalo:hover{color:#fff}
@media(max-width:767.98px){
  .brand-text{font-size:13px}
  .brand-wrap{gap:6px}
  .footer-brand span{font-size:14px}
  .floating-contact{right:12px;bottom:12px;gap:8px}
  .float-call,.float-zalo{width:52px;height:52px}
}


/* Refined header/footer branding for responsive layouts */
.main-header .container{min-height:76px}
.brand-wrap{gap:9px;flex:0 0 auto;align-items:center}
.brand-logo{width:72px;height:58px;object-fit:contain}
.brand-text{font-size:19px;letter-spacing:.3px}
.navbar-collapse{align-items:center}
.navbar-nav{margin-left:auto!important;margin-right:auto!important}
.footer-brand{gap:9px;align-items:center}
.footer-logo{width:78px;height:58px;object-fit:contain;filter:none!important}
.footer-brand span{font-size:17px}
.hero-caption{display:none!important}

@media(max-width:991.98px){
  .main-header .container{min-height:68px}
  .brand-logo{width:66px;height:52px}
  .brand-text{font-size:17px}
  .navbar-toggler{margin-left:auto}
}
@media(max-width:575.98px){
  .topbar .container{min-height:35px;gap:10px;white-space:nowrap;overflow:hidden}
  .topbar .container span{overflow:hidden;text-overflow:ellipsis}
  .topbar .container span:last-child{display:none}
  .main-header .container{min-height:86px;padding-top:8px;padding-bottom:8px}
  .brand-wrap{gap:7px}
  .brand-logo{width:68px;height:62px}
  .brand-text{font-size:17px}
  .navbar-toggler{width:52px;height:44px;padding:.35rem .65rem;border-radius:7px}
  .navbar-toggler-icon{width:1.45em;height:1.45em}
  .navbar-collapse{background:#fff;border-top:1px solid #edf1f7;margin-top:8px;padding-bottom:6px}
  .navbar-nav{margin:0!important;text-align:center}
  .navbar-nav .nav-link{padding:.65rem .75rem!important}
  .footer{padding-top:28px}
  .footer-brand{gap:8px}
  .footer-logo{width:68px;height:56px}
  .footer-brand span{font-size:15px}
}
