:root{
  --navy:#0e2a47;
  --navy-dark:#0a1e34;
  --orange:#f4821f;
  --orange-dark:#dd6f10;
  --cream:#f7f8fa;
  --text:#1f2937;
  --muted:#6b7280;
  --border:#e6e8ec;
  --white:#ffffff;
  --radius:14px;
  --shadow:0 20px 40px -20px rgba(14,42,71,0.25);
  --font-head:'Poppins', sans-serif;
  --font-script:'Dancing Script', cursive;
}
   #pageLoader .ld-flight{animation:ldFly 3.6s linear infinite;animation-delay:-1.7s;}
   @keyframes ldFly{0%{transform:translate(-1500px,300px)}100%{transform:translate(1700px,-620px)}}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--font-head);
  color:var(--text);
  background:var(--white);
  -webkit-font-smoothing:antialiased;
}
a{text-decoration:none;color:inherit;}
ul{list-style:none;margin:0;padding:0;}
img{max-width:100%;display:block;}
button{font-family:inherit;cursor:pointer;}
input,select{font-family:inherit;}

.container{
  width:100%;
  max-width:1240px;
  margin:0 auto;
  padding:0 24px;
}

/* Buttons */
.btn{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:10px 26px;
  border-radius:25px;
  font-weight:500;
  font-size:0.85rem;
  border:none;
  transition:transform .15s ease, box-shadow .15s ease, background .15s ease;
}
input::placeholder {font-size:14px !important; opacity: 0.8;}
.btn-primary {
    background: linear-gradient(171deg, #078fcb, #000000e6);
    color: var(--white);
}
.btn-primary:hover{
  background:var(--orange-dark);
  transform:translateY(-1px);
}

/* Top info bar */
.topbar{
  background:linear-gradient(171deg, #078fcb, #000000e6);
  color:#cfd8e3;
  font-size:0.85rem;
}
.topbar-inner{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:9px 24px;
}
.topbar-contact a{
  margin-right:24px;
  color:#ffffff;;
}
.topbar-contact a:hover{color:var(--white);}
.topbar-social{display:flex;align-items:center;gap:14px;}
.follow-label{margin-right:2px;color:#ffffff;}
.topbar-social a{
  width:26px;height:26px;
  border-radius:50%;
  background:rgba(255,255,255,0.08);
  display:inline-flex;align-items:center;justify-content:center;
  color:var(--white);
  font-size:0.75rem;
  transition:background .15s ease;
}
.topbar-social a:hover{background:var(--orange);}

/* Main nav */
.site-header{
  background:var(--white);
  border-bottom:1px solid var(--border);
  position:sticky;
  top:0;
  z-index:100;
}
.nav-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:16px 24px;
  gap:24px;
}
.logo{
  display:flex;
  align-items:center;
  gap:10px;
  flex-shrink:0;
}
.logo-icon{
  font-size:1.6rem;
  color:var(--navy);
}
.logo-text{
  font-weight:700;
  font-size:1.4rem;
  color:var(--navy);
  line-height:1.1;
  display:block;
}
.logo-text.light{color:var(--white);}
.logo-text small{
  display:block;
  font-family:var(--font-script);
  font-weight:600;
  font-size:1rem;
  color:var(--orange);
  line-height:1;
}
.logo-img{
  max-height:90px;
  max-width:220px;
  object-fit:contain;
}
.logo-img.light{
  max-height:44px;
}
.main-nav{
  display:flex;
  align-items:center;
  gap:30px;
  flex-wrap:wrap;
}
.nav-link{
  font-size:0.85rem;
  font-weight:300;
  color:var(--text);
  background:none;
  border:none;
  padding:0;
  display:inline-flex;
  align-items:center;
  gap:6px;
}
.nav-link:hover, .nav-link.active{color:#1f2937;}
.nav-dropdown{position:relative;}
.dropdown-toggle i{font-size:0.7rem;}
.dropdown-menu{
  position:absolute;
  top:calc(100% + 16px);
  left:0;
  background:var(--white);
  border:1px solid var(--border);
  border-radius:10px;
  box-shadow:var(--shadow);
  min-width:180px;
  padding:8px;
  display:none;
  flex-direction:column;
  margin-top: -10px;
}
.nav-dropdown:hover .dropdown-menu{display:flex;}
.nav-dropdown.open .dropdown-toggle i{transform:rotate(180deg);}
.dropdown-menu a{
  padding:9px 12px;
  border-radius:6px;
  font-size:0.9rem;
}
.dropdown-menu a:hover{background:var(--cream);color:var(--orange);}
.nav-actions{display:flex;align-items:center;gap:16px;}
.nav-toggle{
  display:none;
  background:none;border:none;
  font-size:1.3rem;
  color:var(--navy);
}

/* Hero slider */
.hero-slider{
  position:relative;
  min-height:max(540px, 72vh);
  overflow:hidden;
}
.hero-slide{
  position:absolute;
  inset:0;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:80px 0 90px;
  opacity:0;
  visibility:hidden;
  transition:opacity 1s ease;
  z-index:1;
  overflow:hidden;
}
.hero-slide.active{
  position:absolute;
  opacity:1;
  visibility:visible;
  z-index:2;
}
.hero-slide-bg{
  position:absolute;
  inset:0;
  background-size:cover;
  background-position:center;
  transform:scale(1);
  transition:transform 7s ease-out;
  z-index:0;
}
.hero-slide.active .hero-slide-bg{
  transform:scale(1.12);
}
.hero-inner{position:relative;z-index:2;color:var(--white);text-align:center;max-width:760px;margin:0 auto;}
.hero-cta{margin-top:24px;}

/* Staggered fade-up entrance for the eyebrow/subtitle/button, replays each time a slide activates */
.hero-slide .hero-eyebrow,
.hero-slide .hero-sub,
.hero-slide .hero-cta{
  opacity:0;
}
.hero-slide.active .hero-eyebrow{animation:heroFadeUp .7s ease forwards;animation-delay:.15s;}
.hero-slide.active .hero-sub{animation:heroFadeUp .8s ease forwards;animation-delay:.75s;}
.hero-slide.active .hero-cta{animation:heroFadeUp .8s ease forwards;animation-delay:.95s;}
@keyframes heroFadeUp{
  from{opacity:0;transform:translateY(26px);}
  to{opacity:1;transform:translateY(0);}
}

/* Split-text title entrance: two halves converge from opposite sides */
.hero-title{overflow:hidden;}
.hero-title .split-line{display:block;opacity:0;}
.hero-title .split-left{transform:translateX(-70px);}
.hero-title .split-right{transform:translateX(70px);}
.hero-slide.active .hero-title .split-left{animation:splitInLeft .75s cubic-bezier(.2,.8,.2,1) forwards;animation-delay:.3s;}
.hero-slide.active .hero-title .split-right{animation:splitInRight .75s cubic-bezier(.2,.8,.2,1) forwards;animation-delay:.42s;}
@keyframes splitInLeft{to{opacity:1;transform:translateX(0);}}
@keyframes splitInRight{to{opacity:1;transform:translateX(0);}}

/* Curtain wipe transition between slides — two panels close together to
   cover the slider, the slide swaps underneath, then they open back apart. */
.hero-curtain{
  position:absolute;
  inset:0;
  z-index:5;
  pointer-events:none;
  display:flex;
  flex-direction:column;
}
.hero-curtain-panel{
  flex:1;
  background:var(--navy-dark);
  transform:scaleY(0);
  transition:transform .45s cubic-bezier(.76,0,.24,1);
}
.hero-curtain-top{transform-origin:top;}
.hero-curtain-bottom{transform-origin:bottom;}
.hero-curtain.closed .hero-curtain-panel{transform:scaleY(1);}

@media (prefers-reduced-motion: reduce){
  .hero-slide-bg{transition:none;transform:none !important;}
  .hero-slide .hero-eyebrow, .hero-slide .hero-sub, .hero-slide .hero-cta{
    animation:none !important;
    opacity:1;
  }
  .hero-title .split-line{
    animation:none !important;
    opacity:1 !important;
    transform:none !important;
  }
  .hero-curtain-panel{transition:none !important;}
}

.slider-arrow{
  position:absolute;
  top:42%;
  z-index:5;
  width:46px;height:46px;
  border-radius:50%;
  background:rgba(255,255,255,0.14);
  border:1px solid rgba(255,255,255,0.4);
  color:var(--white);
  display:flex;align-items:center;justify-content:center;
  backdrop-filter:blur(4px);
  transition:background .15s ease;
}
.slider-arrow:hover{background:var(--orange);border-color:var(--orange);}
.slider-arrow.prev{left:28px;}
.slider-arrow.next{right:28px;}

.slider-dots{
  position:absolute;
  bottom:28px;
  left:50%;
  transform:translateX(-50%);
  z-index:5;
  display:flex;
  gap:8px;
}
.slider-dot{
  width:9px;height:9px;
  border-radius:5px;
  background:rgba(255,255,255,0.5);
  border:none;
  cursor:pointer;
  transition:width .2s ease, background .2s ease;
  display:none;
}
.slider-dot.active{background:var(--orange);width:26px;}
.hero-eyebrow{
  font-family:var(--font-script);
  font-size:1.7rem;
  color:var(--orange);
  margin:0 0 6px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
}
.hero-plane{font-size:1.1rem;transform:rotate(20deg);}
.hero-title{
  font-size:3.4rem;
  line-height:1.1;
  font-weight:600;
  margin:0 auto 18px;
  max-width:700px;
}
.hero-sub{
  font-size:1.05rem;
  color:#e4e9f0;
  max-width:520px;
  line-height:1.6;
  margin-left:auto;
  margin-right:auto;
}

/* Search widget */
.search-widget{
  position:relative;
  z-index:3;
  margin-top:-64px;
  background:var(--white);
  border-radius:16px;
  box-shadow:var(--shadow);
  padding:22px 26px;
  display:flex;
  align-items:center;
  gap:18px;
  flex-wrap:wrap;
}
.search-field{
  display:flex;
  align-items:flex-start;
  gap:10px;
  flex:1;
  min-width:150px;
}
.field-icon{color:var(--orange);font-size:1.1rem;margin-top:3px;}
.search-field label{
  display:block;
  font-size:0.8rem;
  font-weight:600;
  color:var(--text);
  margin-bottom:3px;
}
.search-field input, .search-field select{
  border:none;
  outline:none;
  font-size:0.72rem;
  color:var(--muted);
  width:100%;
  background:transparent;
  padding:0;
}
.search-divider{width:1px;height:38px;background:var(--border);}
.search-btn{white-space:nowrap;padding:14px 28px;}

/* Feature strip */
.feature-strip{
  margin-top:-40px;
  position:relative;
  z-index:2;
  padding-bottom:2px;
}
.feature-grid{
  background:var(--white);
  border-radius:16px;
  box-shadow:var(--shadow);
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:20px;
  padding:34px 30px;
  display:none;
}
.feature-item{
  display:flex;
  align-items:flex-start;
  gap:14px;
  padding-right:10px;
}
.feature-icon{
  width:52px;height:52px;
  flex-shrink:0;
  border-radius:50%;
  border:1.5px solid var(--orange);
  color:var(--orange);
  display:flex;align-items:center;justify-content:center;
  font-size:1.25rem;
}
.feature-item h3{
  margin:0 0 4px;
  font-size:1.02rem;
  color:var(--navy);
}
.feature-item p{
  margin:0;
  font-size:0.87rem;
  color:var(--muted);
  line-height:1.5;
}

/* Destinations */
.destinations{padding:10px 0 50px;}
.section-heading{
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  margin:0 auto 38px;
  gap:14px;
  max-width:680px;
  margin-top: 8%;
}
.section-heading .carousel-controls, .section-heading .btn-outline{align-self:center;}
.eyebrow{
  font-family:var(--font-script);
  color:var(--orange);
  font-size:1.25rem;
  margin:0 0 4px;
}
.section-heading h2{
  font-size:1.6rem;
  margin:0 0 10px;
  color:var(--navy);
  font-weight:400;
}
.section-sub{margin:0 auto;color:var(--muted);max-width:460px;text-align:center;font-size:13px;font-weight: 200;}
.carousel-controls{display:flex;gap:10px;}
.carousel-btn{
  width:42px;height:42px;
  border-radius:50%;
  border:1px solid var(--border);
  background:var(--white);
  display:flex;align-items:center;justify-content:center;
  color:var(--navy);
  transition:background .15s ease, color .15s ease;
}
.carousel-btn:hover{background:var(--orange);color:var(--white);border-color:var(--orange);}

.destination-grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:28px;
}
.destination-card{
  border-radius:24px;
  overflow:hidden;
  box-shadow:0 18px 40px -22px rgba(14,42,71,0.32);
  border:1px solid rgba(230,232,236,0.6);
  background:var(--white);
  transition:transform .28s cubic-bezier(.2,.8,.2,1), box-shadow .28s ease;
  display:block;
}
.destination-card:hover{
  transform:translateY(-8px);
  box-shadow:0 30px 50px -22px rgba(14,42,71,0.4);
}
.destination-image{
  height:210px;
  background-size:cover;
  background-position:center;
  background-color:var(--cream);
  position:relative;
  overflow:hidden;
  transition:transform .5s ease;
}
.destination-card:hover .destination-image{transform:scale(1.06);}
.card-badge{
  position:absolute;
  top:18px;
  left:18px;
  z-index:2;
  background:rgba(255,255,255,0.96);
  color:var(--navy);
  font-size:0.78rem;
  font-weight:700;
  letter-spacing:0.01em;
  padding:8px 16px;
  border-radius:20px;
  box-shadow:0 8px 18px rgba(14,42,71,0.22);
}
.card-badge.orange{background:var(--orange);color:var(--white);}
.destination-info{padding:22px 22px 24px;}
.destination-info h3{
  margin:0;
  font-size:1.15rem;
  font-weight:700;
  color:var(--navy);
  letter-spacing:-0.01em;
}
.destination-price-row{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  margin-top:18px;
  padding-top:18px;
  border-top:1px dashed var(--border);
  font-size:16px;
}
.destination-price-row .price-block{display:flex;flex-direction:column;gap:4px;}
.destination-price-row .price-label{font-size:0.78rem;color:var(--muted);}
.price{
  font-weight:500;
  color:var(--navy);
  font-size:1.20rem;
  letter-spacing: 1px;
  font-family: 'Font Awesome 6 Brands';
}
.card-cta{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:0.85rem;
  font-weight:600;
  color:var(--white);
  background:var(--navy);
  padding:11px 20px;
  border-radius:24px;
  white-space:nowrap;
  transition:background .2s ease, transform .2s ease;
}
.destination-card:hover .card-cta, .package-card:hover .card-cta{
  background:var(--orange);
  transform:translateX(2px);
}

/* Footer */
.site-footer{
  background:var(--navy-dark);
  color:#c6d0dc;
  padding-top:56px;
}
.footer-inner{
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr 1fr;
  gap:32px;
  padding-bottom:40px;
  border-bottom:1px solid rgba(255,255,255,0.08);
}
.footer-brand p{
  margin-top:14px;
  font-size:0.88rem;
  line-height:1.6;
  color:#a9b6c6;
  max-width:280px;
}
.footer-col h4{
  color:var(--white);
  margin:0 0 16px;
  font-size:0.95rem;
}
.footer-col a{
  display:block;
  margin-bottom:10px;
  font-size:0.88rem;
  color:#a9b6c6;
}
.footer-col a:hover{color:var(--orange);}
.footer-bottom{
  text-align:center;
  padding:18px 0;
  font-size:0.82rem;
  color:#8695a8;
}

/* Simple placeholder page (stub nav pages) */
.page-placeholder{
  padding:100px 0;
  text-align:center;
}
.page-placeholder h1{
  font-size:2.4rem;
  color:var(--navy);
  margin:0 0 16px;
}
.page-placeholder .section-sub{
  margin:0 auto 28px;
}

/* Outline button */
.btn-outline{
  background:transparent;
  border:1.5px solid var(--navy);
  color:var(--navy);
}
.btn-outline:hover{background:var(--navy);color:var(--white);}
.btn.block{display:flex;justify-content:center;width:100%;margin-bottom:12px;}
.btn.small{padding:8px 16px;font-size:0.82rem;}

/* Generic page hero (inner pages) */
.page-hero{
  background:linear-gradient(120deg, var(--navy) 0%, var(--navy-dark) 100%);
  color:var(--white);
  padding:70px 0 60px;
  text-align:center;
}
p{font-size:16px !important;}
.page-hero h1{font-size:2.4rem;margin:0 0 12px;font-weight: 600;}
.page-hero .eyebrow{color:var(--orange);font-family:var(--font-script);font-size:1.3rem;margin:0 0 4px;}
.page-hero .section-sub{color:#dbe3ee;max-width:560px;margin:0 auto;}
.page-hero .section-sub a{color:var(--orange);font-weight:600;}

/* Detail hero (destination / package / blog) */
.detail-hero{
  background-size:cover;
  background-position:center;
  color:var(--white);
  padding:110px 0 50px;
  text-align:center;
}
.detail-hero .eyebrow{font-family:var(--font-script);color:var(--orange);font-size:1.3rem;margin:0 0 6px;}
.detail-hero h1{font-size:2.4rem;margin:0 0 10px;}
.detail-location{margin:0 auto;color:#e4e9f0;}

.detail-body{padding:56px 0;}
.detail-grid{
  display:grid;
  grid-template-columns:2fr 1fr;
  gap:40px;
  align-items:start;
}
.detail-grid h2{color:var(--navy);margin-top:0;}
.body-copy{color:var(--muted);line-height:1.75;}
.detail-sidebar{
  background:var(--cream);
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:26px;
  position:sticky;
  top:100px;
}
.detail-sidebar a{color:var(--navy);font-weight:400;}
.price.big{font-size:1.8rem;color:var(--orange);font-weight:700;margin:4px 0 18px;}
.muted-line{color:#000;font-size:0.95rem !important;margin:0;font-weight:500;}

.check-list{list-style:none;margin:0;padding:0;}
.check-list li{
  display:flex;align-items:center;gap:10px;
  padding:8px 0;
  color:var(--text);
  border-bottom:1px solid var(--border);
}
.check-list i{color:var(--orange);}

.article-copy{
  max-width:760px;
  margin:0 auto;
  color:var(--text);
  line-height:1.8;
  font-size:1.02rem;
}

/* Section heading centered variant */
.section-heading.center{justify-content:center;text-align:center;}
.section-heading.center .section-sub{margin:0 auto;}

/* Testimonials */
.testimonials-strip{padding:70px 0;background:var(--cream);}
.testimonial-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:24px;
  margin-top:30px;
}
.testimonial-grid.full{grid-template-columns:repeat(2, 1fr);}
.testimonial-card{
  background:var(--white);
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:26px;
}
.stars{color:var(--orange);margin-bottom:12px;font-size:0.9rem;}
.stars .dim{color:#dfe3ea;}
.testimonial-message{
  color:var(--text);
  font-size:0.85rem;
  line-height:1.6;
  margin:0 0 18px;
}
.testimonial-person{display:flex;align-items:center;gap:12px;}
.avatar{
  width:44px;height:44px;
  border-radius:50%;
  background-size:cover;
  background-position:center;
  flex-shrink:0;
}
.testimonial-person strong{display:block;color:var(--navy);font-size:0.9rem;}
.testimonial-person span{font-size:0.8rem;color:var(--muted);}

/* Testimonials — single-slide slider (home page) */
.tslider-section{background:#f3faff;padding:80px 0 70px;}
.tslider-section .section-heading h2{font-size:clamp(1.9rem, 4vw, 2.8rem);}
.tslider{
  position:relative;
  max-width:1100px;
  margin:46px auto 0;
  padding:0 70px;
}
.tslider-track{position:relative;display:grid;}
.tslide{
  grid-area:1 / 1;
  text-align:center;
  opacity:0;
  visibility:hidden;
  transform:translateY(10px);
  transition:opacity .55s ease, transform .55s ease, visibility 0s linear .55s;
}
.tslide.active{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
  transition:opacity .55s ease, transform .55s ease, visibility 0s;
}
.tslide-avatar{
  width:120px;height:120px;
  margin:0 auto 26px;
  border-radius:50%;
  background:#fff;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 10px 30px -14px rgba(14,42,71,0.25);
}
.tslide-avatar .avatar-img{
  width:98px;height:98px;
  border-radius:50%;
  background-size:cover;background-position:center;
  background-color:var(--cream);
}
.tslide-message{
  max-width:900px;
  margin:0 auto 26px;
  color:var(--navy);
  font-size:clamp(1.05rem, 2vw, 1.5rem);
  font-weight:700;
  line-height:1.5;
  letter-spacing:-0.01em;
}
.tslide-name{margin:0 0 4px;color:var(--navy);font-size:1.35rem;font-weight:600;}
.tslide-role{color:var(--muted);font-size:0.95rem;}
.tslider-arrow{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:50px;height:50px;
  border:none;
  border-radius:6px;
  background:#1a9be6;
  color:#fff;
  font-size:1rem;
  cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:background .2s ease, transform .2s ease;
}
.tslider-arrow:hover{background:var(--orange);transform:translateY(-50%) scale(1.08);}
.tslider-arrow.prev{left:0;}
.tslider-arrow.next{right:0;}
.tslider-dots{display:flex;justify-content:center;gap:8px;margin-top:34px;}
.tslider-dots .tdot{
  width:8px;height:8px;border-radius:5px;border:none;padding:0;cursor:pointer;
  background:#cfd8e3;
  transition:width .25s ease, background .25s ease;
}
.tslider-dots .tdot.active{width:26px;background:#1a9be6;}
@media (max-width:640px){
  .tslider{padding:0 0 64px;}
  .tslider-arrow{top:auto;bottom:0;transform:none;width:44px;height:44px;}
  .tslider-arrow:hover{transform:scale(1.08);}
  .tslider-arrow.prev{left:calc(50% - 56px);}
  .tslider-arrow.next{right:calc(50% - 56px);}
  .tslider-dots{display:none;}
  .tslide-avatar{width:100px;height:100px;}
  .tslide-avatar .avatar-img{width:80px;height:80px;}
}

/* Blog */
.blog-teaser{padding:90px 0;}
.blog-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:28px;
}
.blog-grid.full{grid-template-columns:repeat(3, 1fr);}
.blog-card{
  border:1px solid var(--border);
  border-radius:22px;
  overflow:hidden;
  background:var(--white);
  box-shadow:0 14px 32px -20px rgba(14,42,71,0.22);
  transition:transform .28s cubic-bezier(.2,.8,.2,1), box-shadow .28s ease;
}
.blog-card:hover{transform:translateY(-8px);box-shadow:0 26px 44px -20px rgba(14,42,71,0.32);}
.blog-image{height:190px;background-size:cover;background-position:center;background-color:var(--cream);overflow:hidden;transition:transform .5s ease;}
.blog-card:hover .blog-image{transform:scale(1.06);}
.blog-info{padding:20px 22px 22px;}
.blog-date{font-size:0.75rem;color:var(--orange);font-weight:700;letter-spacing:0.03em;text-transform:uppercase;}
.blog-info h3{margin:10px 0 8px;color:var(--navy);font-size:1.08rem;font-weight:700;letter-spacing:-0.01em;}
.blog-info p{margin:0;color:var(--muted);font-size:0.88rem;line-height:1.55;}

/* Packages */
.package-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:28px;
}
.package-grid.full{grid-template-columns:repeat(4, 1fr);}
.package-card{
  border-radius:22px;
  overflow:hidden;
  border:1px solid var(--border);
  background:var(--white);
  box-shadow:0 14px 32px -20px rgba(14,42,71,0.28);
  transition:transform .28s cubic-bezier(.2,.8,.2,1), box-shadow .28s ease;
  display:block;
}
.package-card:hover{transform:translateY(-8px);box-shadow:0 26px 44px -20px rgba(14,42,71,0.38);}
.package-card .destination-image:hover{transform:none;}
.package-card:hover .destination-image{transform:scale(1.06);}

/* Destination grid full-page variant */
.destination-grid.full{grid-template-columns:repeat(4, 1fr);}

/* Package category filter tabs */
.package-filter-tabs{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-bottom:28px;
}
.filter-tab{
  padding:10px 20px;
  border-radius:30px;
  border:1.5px solid var(--border);
  color:var(--navy);
  font-size:0.85rem;
  font-weight:600;
  background:var(--white);
  transition:all .2s ease;
}
.filter-tab:hover{border-color:var(--orange);color:var(--orange);}
.filter-tab.active{background:var(--navy);border-color:var(--navy);color:var(--white);}

/* Team */
.team-grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:24px;
}
.team-card{text-align:center;}
.team-photo{
  width:140px;height:140px;
  border-radius:50%;
  background-size:cover;
  background-position:center;
  margin:0 auto 16px;
}
.team-card h3{margin:0 0 4px;color:var(--navy);font-size:1.05rem;}
.team-bio{color:var(--muted);font-size:0.85rem;margin-top:8px;}

/* Stats */
.stats-grid{
  background:var(--white);
  border-radius:16px;
  box-shadow:var(--shadow);
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  padding:34px 20px;
  text-align:center;
}
.stat-value{font-size:1.8rem;font-weight:700;color:var(--orange);}
.stat-label{font-size:0.85rem;color:var(--muted);margin-top:6px;}

/* FAQ */
.faq-list{max-width:760px;margin:0 auto;}
.faq-item{
  border:1px solid var(--border);
  border-radius:10px;
  padding:16px 20px;
  margin-bottom:14px;
}
.faq-item summary{
  cursor:pointer;
  font-weight:600;
  color:var(--navy);
  display:flex;
  justify-content:space-between;
  align-items:center;
  list-style:none;
}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary i{color:var(--orange);font-size:0.8rem;transition:transform .15s ease;}
.faq-item[open] summary i{transform:rotate(45deg);}
.faq-item p{color:var(--muted);margin:14px 0 0;line-height:1.6;}

/* Pricing table */
.pricing-table{
  width:100%;
  border-collapse:collapse;
  background:var(--white);
}
.pricing-table th, .pricing-table td{
  padding:14px 16px;
  text-align:left;
  border-bottom:1px solid var(--border);
  font-size:0.92rem;
}
.pricing-table th{color:var(--navy);font-size:0.82rem;text-transform:uppercase;letter-spacing:0.04em;}

/* Gallery */
.gallery-grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:16px;
  padding-top: 50px;
}
.gallery-item{
  height:200px;
  border-radius:10px;
  background-size:cover;
  background-position:center;
  position:relative;
  display:flex;
  align-items:flex-end;
  overflow:hidden;
}
.gallery-item span{
  background:linear-gradient(0deg, rgba(10,30,52,0.75), transparent);
  color:var(--white);
  width:100%;
  padding:10px 12px;
  font-size:0.82rem;
}

/* Forms (contact / booking) */
.alert{
  padding:14px 18px;
  border-radius:10px;
  margin-bottom:22px;
  font-size:0.92rem;
}
.alert-success{background:#e6f6ec;color:#1c7a41;border:1px solid #b9e6c9;}
.alert-error{background:#fdecec;color:#b3261e;border:1px solid #f6c6c3;}
.alert-error ul{margin:0;padding-left:18px;}
.form-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
}
.form-grid.narrow{max-width:800px; margin:auto;}
.form-row{display:flex;flex-direction:column;gap:6px;}
.form-row.full{grid-column:1 / -1;}
.form-row label{font-size:0.85rem;font-weight:600;color:var(--navy);}
.form-row input, .form-row select, .form-row textarea{
  border:1px solid var(--border);
  border-radius:8px;
  padding:11px 14px;
  font-size:0.92rem;
  font-family:inherit;
  color:var(--text);
}
.form-row input:focus, .form-row select:focus, .form-row textarea:focus{
  outline:none;
  border-color:var(--orange);
}

/* Enquiry popup */
.enquiry-overlay{
  position:fixed;
  inset:0;
  background:rgba(10,30,52,0.6);
  display:flex;
  align-items:center;
  justify-content:center;
  z-index:1000;
  opacity:0;
  visibility:hidden;
  transition:opacity .25s ease;
  padding:20px;
}
.enquiry-overlay.open{opacity:1;visibility:visible;}
.enquiry-modal{
  background:var(--white);
  border-radius:16px;
  padding:36px;
  width:100%;
  max-width:370px;
  position:relative;
  box-shadow:0 40px 80px -20px rgba(0,0,0,0.4);
  transform:translateY(20px) scale(0.97);
  transition:transform .3s ease;
  max-height:90vh;
  overflow-y:auto;
}
.enquiry-overlay.open .enquiry-modal{transform:translateY(0) scale(1);}
.enquiry-close{
  position:absolute;
  top:14px;right:14px;
  width:34px;height:34px;
  border-radius:50%;
  border:none;
  background:var(--cream);
  color:var(--muted);
  font-size:1.4rem;
  line-height:1;
  cursor:pointer;
  display:flex;align-items:center;justify-content:center;
}
.enquiry-close:hover{background:#fdecec;color:var(--red, #c0392b);}
.enquiry-body .eyebrow{font-family:var(--font-script);color:var(--orange);font-size:1.3rem;margin:0 0 4px;}
.enquiry-body h2{color:var(--orange-dark);margin:0 0 8px;font-size:1.1rem;text-align:center;font-weight:400}
.enquiry-sub{color:var(--muted);font-size:0.6rem !important;margin:0 0 20px; text-align:center;}
.enquiry-sub p{font-size:0.8rem !important;margin:0 0 20px; text-align:center;}
.enquiry-body form{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.enquiry-body .form-row.full{grid-column:1/-1;}
.enquiry-body .btn.block{grid-column:1/-1;margin-top:4px;}
.enquiry-success{text-align:center;padding:20px 0;}
.enquiry-success i{font-size:3rem;color:var(--green, #1c7a41);margin-bottom:14px;}
.enquiry-success h2{color:var(--navy);margin:0 0 8px;}
.enquiry-success p{color:var(--muted);margin:0 0 20px;}

@media (max-width: 640px){
  .enquiry-body form{grid-template-columns:1fr;}
  .enquiry-modal{padding:28px 22px;}
}
@media (max-width: 1024px){
  .destination-grid, .destination-grid.full{grid-template-columns:repeat(2, 1fr);}
  .feature-grid{grid-template-columns:repeat(2, 1fr);}
  .footer-inner{grid-template-columns:1fr 1fr;}
  .testimonial-grid, .testimonial-grid.full{grid-template-columns:1fr;}
  .blog-grid, .blog-grid.full{grid-template-columns:repeat(2, 1fr);}
  .package-grid, .package-grid.full{grid-template-columns:repeat(2, 1fr);}
  .team-grid{grid-template-columns:repeat(2, 1fr);}
  .stats-grid{grid-template-columns:repeat(2, 1fr);gap:24px;}
  .gallery-grid{grid-template-columns:repeat(2, 1fr);}
  .detail-grid{grid-template-columns:1fr;}
  .detail-sidebar{position:static;}
  .form-grid{grid-template-columns:1fr;}
}

@media (max-width: 900px){
  .main-nav{
    position:absolute;
    top:100%;
    left:0;
    right:0;
    background:var(--white);
    flex-direction:column;
    align-items:flex-start;
    padding:16px 24px;
    border-top:1px solid var(--border);
    border-bottom:1px solid var(--border);
    display:none;
    gap:14px;
  }
  .main-nav.open{display:flex;}
  .nav-toggle{display:block;}
  .nav-dropdown{width:100%;}
  .dropdown-menu{
    position:static;
    box-shadow:none;
    border:none;
    background:transparent;
    min-width:0;
    padding:4px 0 0 14px;
    display:none;
  }
  .dropdown-menu.show{display:flex;}
  .nav-dropdown:hover .dropdown-menu{display:none;}
  .nav-dropdown:hover .dropdown-menu.show{display:flex;}
  .search-widget{flex-direction:column;align-items:stretch;}
  .search-divider{display:none;}
  .slider-dots{bottom:24px;}
  .slider-arrow{width:38px;height:38px;font-size:0.85rem;}
}

@media (max-width: 640px){
  .topbar-contact a:last-child{margin-right:0;}
  .hero-slider{min-height:max(460px, 66vh);}
  .hero-slide{padding:56px 0 76px;}
  .hero-title{font-size:2.3rem;}
  .destination-grid, .destination-grid.full{grid-template-columns:1fr;}
  .feature-grid{grid-template-columns:1fr;padding:26px;}
  .footer-inner{grid-template-columns:1fr;}
  .blog-grid, .blog-grid.full{grid-template-columns:1fr;}
  .package-grid, .package-grid.full{grid-template-columns:1fr;}
  .team-grid{grid-template-columns:1fr;}
  .stats-grid{grid-template-columns:1fr;}
  .gallery-grid{grid-template-columns:1fr;}
}

/* ===================== Scroll-triggered reveal animations ===================== */

/* Section heading fades/slides up as its section enters view */
.reveal-section .section-heading{
  opacity:0;
  transform:translateY(22px);
  transition:opacity .6s ease, transform .6s ease;
}
.reveal-section.in-view .section-heading{opacity:1;transform:translateY(0);}

/* Card grids: each card fades/slides up with a staggered delay */
.reveal-section .destination-card,
.reveal-section .package-card,
.reveal-section .blog-card,
.reveal-section .testimonial-card,
.reveal-section .team-card,
.reveal-section .feature-item,
.reveal-section .stat-item,
.reveal-section .faq-item{
  opacity:0;
  transform:translateY(26px);
  transition:opacity .55s ease, transform .55s ease;
}
.reveal-section.in-view .destination-card,
.reveal-section.in-view .package-card,
.reveal-section.in-view .blog-card,
.reveal-section.in-view .testimonial-card,
.reveal-section.in-view .team-card,
.reveal-section.in-view .feature-item,
.reveal-section.in-view .stat-item,
.reveal-section.in-view .faq-item{
  opacity:1;
  transform:translateY(0);
}

/* Stagger — nth-child delay, covers grids up to 8 wide */
.reveal-section .destination-card:nth-child(1), .reveal-section .package-card:nth-child(1), .reveal-section .blog-card:nth-child(1), .reveal-section .testimonial-card:nth-child(1), .reveal-section .team-card:nth-child(1), .reveal-section .feature-item:nth-child(1), .reveal-section .stat-item:nth-child(1), .reveal-section .faq-item:nth-child(1){transition-delay:.03s;}
.reveal-section .destination-card:nth-child(2), .reveal-section .package-card:nth-child(2), .reveal-section .blog-card:nth-child(2), .reveal-section .testimonial-card:nth-child(2), .reveal-section .team-card:nth-child(2), .reveal-section .feature-item:nth-child(2), .reveal-section .stat-item:nth-child(2), .reveal-section .faq-item:nth-child(2){transition-delay:.1s;}
.reveal-section .destination-card:nth-child(3), .reveal-section .package-card:nth-child(3), .reveal-section .blog-card:nth-child(3), .reveal-section .testimonial-card:nth-child(3), .reveal-section .team-card:nth-child(3), .reveal-section .feature-item:nth-child(3), .reveal-section .stat-item:nth-child(3), .reveal-section .faq-item:nth-child(3){transition-delay:.17s;}
.reveal-section .destination-card:nth-child(4), .reveal-section .package-card:nth-child(4), .reveal-section .blog-card:nth-child(4), .reveal-section .testimonial-card:nth-child(4), .reveal-section .team-card:nth-child(4), .reveal-section .feature-item:nth-child(4), .reveal-section .stat-item:nth-child(4), .reveal-section .faq-item:nth-child(4){transition-delay:.24s;}
.reveal-section .destination-card:nth-child(5), .reveal-section .package-card:nth-child(5), .reveal-section .blog-card:nth-child(5), .reveal-section .testimonial-card:nth-child(5), .reveal-section .team-card:nth-child(5), .reveal-section .faq-item:nth-child(5){transition-delay:.31s;}
.reveal-section .destination-card:nth-child(6), .reveal-section .package-card:nth-child(6), .reveal-section .blog-card:nth-child(6), .reveal-section .team-card:nth-child(6), .reveal-section .faq-item:nth-child(6){transition-delay:.38s;}
.reveal-section .destination-card:nth-child(7), .reveal-section .faq-item:nth-child(7){transition-delay:.45s;}
.reveal-section .destination-card:nth-child(8), .reveal-section .faq-item:nth-child(8){transition-delay:.52s;}

@media (prefers-reduced-motion: reduce){
  .reveal-section .section-heading,
  .reveal-section .destination-card,
  .reveal-section .package-card,
  .reveal-section .blog-card,
  .reveal-section .testimonial-card,
  .reveal-section .team-card,
  .reveal-section .feature-item,
  .reveal-section .stat-item,
  .reveal-section .faq-item{
    opacity:1 !important;
    transform:none !important;
    transition:none !important;
  }
}

/* Animated underline on nav links */
.nav-link{position:relative;}
.nav-link::after{
  content:'';
  position:absolute;
  left:0;bottom:-6px;
  width:0;
  height:2px;
  background:var(--orange);
  transition:width .25s ease;
}
.nav-link:hover::after, .nav-link.active::after{width:100%;}

/* Tactile press feedback on buttons */
.btn{transition:transform .15s ease, box-shadow .15s ease, background .15s ease;}
.btn:active{transform:scale(0.96);}

/* Carousel / slider arrow subtle pulse on hover */
.carousel-btn, .slider-arrow{transition:background .15s ease, color .15s ease, transform .15s ease;}
.carousel-btn:hover, .slider-arrow:hover{transform:scale(1.08);}

/* Contact page map embed */
.map-section{width:100%;}
.map-embed{
  width:100%;
  height:420px;
}
.map-embed iframe{display:block;width:100%;height:100%;}
@media (max-width:640px){
  .map-embed{height:300px;}
}

/* Destinations slider (kicks in automatically once there are more than 4 featured destinations) */
.destination-grid.slider{
  display:flex;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  gap:24px;
  padding-bottom:4px;
  scrollbar-width:none;
  -ms-overflow-style:none;
}
.destination-grid.slider::-webkit-scrollbar{display:none;}
.destination-grid.slider .destination-card{
  flex:0 0 auto;
  width:270px;
  scroll-snap-align:start;
}
.slider-nav{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:20px;
  margin-top:32px;
}
.slider-progress{display:flex;align-items:center;gap:6px;}
.slider-progress .progress-dot{
  width:8px;height:8px;
  border-radius:5px;
  background:var(--border);
  border:none;
  padding:0;
  cursor:pointer;
  transition:width .25s ease, background .25s ease;
}
.slider-progress .progress-dot.active{
  width:26px;
  background:var(--orange);
}

@media (max-width:640px){
  .destination-grid.slider .destination-card{width:230px;}
}

/* Gallery slider (homepage) — same peeking-card mechanics as the destinations slider */
.gallery-grid.slider{
  display:flex;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  gap:16px;
  padding-bottom:4px;
  scrollbar-width:none;
  -ms-overflow-style:none;
}
.gallery-grid.slider::-webkit-scrollbar{display:none;}
.gallery-grid.slider .gallery-item{
  flex:0 0 auto;
  width:270px;
  scroll-snap-align:start;
}
@media (max-width:640px){
  .gallery-grid.slider .gallery-item{width:230px;}
}

/* Blog slider (auto-sliding) — 3 cards per view on desktop, 2 on tablet, 1 on mobile */
.blog-grid.slider{
  display:flex;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  gap:24px;
  padding:6px 0 14px;
  scrollbar-width:none;
  -ms-overflow-style:none;
}
.blog-grid.slider::-webkit-scrollbar{display:none;}
.blog-grid.slider .blog-card{
  flex:0 0 calc((100% - 48px) / 3);
  width:calc((100% - 48px) / 3);
  scroll-snap-align:start;
}
@media (max-width:980px){
  .blog-grid.slider .blog-card{flex-basis:calc((100% - 24px) / 2);width:calc((100% - 24px) / 2);}
}
@media (max-width:640px){
  .blog-grid.slider .blog-card{flex-basis:100%;width:100%;}
}

/* ===== Special Tours / International pages ===== */
.tour-hero{padding:130px 0 70px;}
.tour-hero .detail-location{max-width:620px;font-size:1rem !important;}
.tour-hero-cta{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:24px;}
.tour-btn-ghost{border:1.5px solid rgba(255,255,255,0.7);color:var(--white);background:transparent;}
.tour-btn-ghost:hover{background:var(--white);color:var(--navy);}
.tour-highlights{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;margin-top:30px;}
.tour-highlight{display:flex;gap:14px;align-items:flex-start;}
.tour-highlight h3{margin:2px 0 4px;font-size:1rem;color:var(--navy);font-weight:600;}
.tour-highlight p{margin:0;color:var(--muted);line-height:1.5;}
.tour-side-note{color:var(--muted);margin:6px 0 16px;line-height:1.5;}
.tour-facts{margin:0 0 20px;}
.tour-facts li{display:flex;flex-direction:column;gap:2px;padding:10px 0;border-bottom:1px solid var(--border);}
.tour-facts span{font-size:0.75rem;color:var(--muted);text-transform:uppercase;letter-spacing:0.04em;}
.tour-facts strong{font-size:0.9rem;color:var(--navy);font-weight:500;}
.tour-call{display:flex;align-items:center;justify-content:center;gap:8px;font-size:0.9rem;}
.tour-call i{color:var(--orange);}
.tour-section{padding:60px 0;}
.tour-alt{background:var(--cream);}
.tour-places{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.tour-place{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);padding:24px;transition:transform .2s ease, box-shadow .2s ease;}
.tour-place:hover{transform:translateY(-4px);box-shadow:var(--shadow);}
.tour-place-num{font-size:0.8rem;font-weight:700;color:var(--orange);letter-spacing:0.05em;}
.tour-place h3{margin:8px 0 6px;color:var(--navy);font-size:1.05rem;font-weight:600;}
.tour-place p{margin:0;color:var(--muted);line-height:1.55;}
.tour-two-col{display:grid;grid-template-columns:3fr 2fr;gap:50px;align-items:start;}
.tour-h2{color:var(--navy);font-size:1.4rem;font-weight:500;margin:0 0 24px;}
.tour-itinerary{list-style:none;margin:0;padding:0;position:relative;}
.tour-itinerary::before{content:"";position:absolute;left:34px;top:8px;bottom:8px;width:2px;background:var(--border);}
.tour-itinerary li{display:flex;gap:18px;align-items:flex-start;padding:0 0 22px;position:relative;}
.tour-day{flex-shrink:0;width:70px;text-align:center;background:var(--orange);color:var(--white);font-size:0.75rem;font-weight:600;border-radius:20px;padding:5px 0;position:relative;z-index:1;}
.tour-itinerary h3{margin:2px 0 4px;font-size:0.98rem;color:var(--navy);font-weight:600;}
.tour-itinerary p{margin:0;color:var(--muted);line-height:1.55;}
.tour-small{color:var(--muted);font-style:italic;}
.tour-cta{background:linear-gradient(120deg, var(--navy) 0%, var(--navy-dark) 100%);color:var(--white);text-align:center;padding:60px 0;}
.tour-cta h2{margin:0 0 10px;font-size:1.7rem;font-weight:500;}
.tour-cta p{color:#dbe3ee;max-width:560px;margin:0 auto;}
@media (max-width:1024px){
  .tour-places{grid-template-columns:repeat(2,1fr);}
  .tour-two-col{grid-template-columns:1fr;gap:40px;}
}
@media (max-width:640px){
  .tour-hero{padding:90px 0 50px;}
  .tour-hero h1{font-size:1.8rem;}
  .tour-highlights, .tour-places{grid-template-columns:1fr;}
  .tour-section{padding:44px 0;}
}
.tour-sidebar .btn.btn-primary{color:var(--white);}


/* ===================== HERO ANIMATION PACK ===================== */

/* 1. Ken Burns: alternate the pan direction on every slide so they don't all feel the same */
.hero-slide-bg{transform-origin:center center;}
.hero-slide:nth-child(3n+2).active .hero-slide-bg{transform:scale(1.14) translate(-2.5%,1.5%);}
.hero-slide:nth-child(3n+3).active .hero-slide-bg{transform:scale(1.14) translate(2.5%,-1.5%);}

/* 2. Scenery layer: drifting clouds + planes crossing the sky */
.hero-fx{position:absolute;inset:0;z-index:3;pointer-events:none;overflow:hidden;}
.fx-cloud{
  position:absolute;
  width:260px;height:70px;
  border-radius:100px;
  background:rgba(255,255,255,.22);
  filter:blur(14px);
  left:-300px;
  animation:fxCloud linear infinite;
}
.fx-cloud-1{top:14%;animation-duration:42s;}
.fx-cloud-2{top:46%;width:340px;height:90px;opacity:.7;animation-duration:64s;animation-delay:-20s;}
.fx-cloud-3{top:72%;width:220px;animation-duration:52s;animation-delay:-35s;opacity:.6;}
@keyframes fxCloud{from{transform:translateX(0);}to{transform:translateX(calc(100vw + 600px));}}

.fx-plane{
  position:absolute;
  top:16%;left:-160px;
  display:flex;align-items:center;
  color:#fff;
  font-size:2rem;
  filter:drop-shadow(0 4px 6px rgba(0,0,0,.35));
  animation:fxPlane 14s ease-in-out infinite;
  animation-delay:1.5s;
}
.fx-plane i{transform:rotate(0deg);}
.fx-trail{
  display:block;
  width:170px;height:3px;
  margin-right:6px;
  border-radius:3px;
  background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.85));
}
.fx-plane-2{top:30%;font-size:1.2rem;opacity:.75;animation-duration:22s;animation-delay:8s;}
.fx-plane-2 .fx-trail{width:100px;}
@keyframes fxPlane{
  0%{transform:translate(0,0) rotate(-4deg);opacity:0;}
  6%{opacity:1;}
  50%{transform:translate(calc(50vw + 80px),-40px) rotate(-8deg);}
  92%{opacity:1;}
  100%{transform:translate(calc(100vw + 380px),-90px) rotate(-10deg);opacity:0;}
}

/* 3. Text entrance: eyebrow slides in, plane icon wobbles, button pops with a light sweep */
.hero-slide.active .hero-eyebrow{animation:heroSlideIn .8s cubic-bezier(.2,.8,.2,1) forwards;animation-delay:.15s;}
@keyframes heroSlideIn{from{opacity:0;transform:translateX(-60px);}to{opacity:1;transform:translateX(0);}}
.hero-slide.active .hero-plane{animation:planeWobble 3s ease-in-out 1s infinite;}
@keyframes planeWobble{0%,100%{transform:rotate(20deg) translate(0,0);}50%{transform:rotate(12deg) translate(6px,-5px);}}

.hero-title .split-line{text-shadow:0 3px 18px rgba(0,0,0,.35);}
.hero-slide.active .hero-sub{animation:heroFadeUp .9s ease forwards;animation-delay:.8s;}

.hero-cta{position:relative;overflow:hidden;}
.hero-slide.active .hero-cta{animation:heroPop .7s cubic-bezier(.3,1.5,.5,1) forwards;animation-delay:1.05s;}
@keyframes heroPop{0%{opacity:0;transform:scale(.6) translateY(20px);}100%{opacity:1;transform:scale(1) translateY(0);}}
.hero-cta::after{
  content:"";
  position:absolute;top:0;left:-70%;
  width:45%;height:100%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.55),transparent);
  transform:skewX(-20deg);
}
.hero-slide.active .hero-cta::after{animation:ctaShine 3.2s ease-in-out 2s infinite;}
@keyframes ctaShine{0%{left:-70%;}45%,100%{left:130%;}}

@media (max-width:640px){
  .fx-plane{font-size:1.4rem;}
  .fx-trail{width:90px;}
  .fx-plane-2{display:none;}
}
@media (prefers-reduced-motion: reduce){
  .hero-fx{display:none;}
  .hero-slide.active .hero-plane,
  .hero-slide.active .hero-cta::after{animation:none !important;}
}


/* ===================== PAGE LOADER (realistic white airliner, flies like the hero slider plane) ===================== */
.page-loader{
  position:fixed;inset:0;
  z-index:99999;
  background:#4a5f95;
  opacity:1;visibility:visible;
  transition:opacity .45s ease, visibility .45s ease;
}
.page-loader.hide{opacity:0;visibility:hidden;pointer-events:none;}
.pl-track{position:absolute;inset:0;overflow:hidden;}
/* Sky: dusk cloud photo-style background, drifting slowly sideways */
.pl-sky{
  position:absolute;inset:0;
  background:#4a5f95 url("https://vlinemarine.com/aakasaveedhilo/uploads/images/loader-sky.jpg") repeat-x 0 0;
  background-size:auto 100%;
  animation:plSkyDrift 80s linear infinite;
}
@keyframes plSkyDrift{from{background-position-x:0;}to{background-position-x:-200vh;}}
.pl-plane{
  position:absolute;
  top:50%;left:-680px;margin-top:-55px;
  display:flex;align-items:center;
  filter:drop-shadow(0 5px 10px rgba(40,30,80,.45));
  animation:plFlyAcross 3.2s ease-in-out infinite;
}
.pl-jet{width:clamp(220px,32vw,340px);height:auto;display:block;}
.pl-trail{
  display:block;
  width:300px;height:4px;
  margin-right:4px;
  border-radius:3px;
  background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.85));
}
@keyframes plFlyAcross{
  0%{transform:translate(0,30px) rotate(-4deg);opacity:0;}
  8%{opacity:1;}
  50%{transform:translate(calc(50vw + 380px),-40px) rotate(-8deg);}
  92%{opacity:1;}
  100%{transform:translate(calc(100vw + 760px),-120px) rotate(-10deg);opacity:0;}
}
@media (prefers-reduced-motion: reduce){
  .pl-plane{animation:none !important;left:50%;transform:translateX(-50%);margin-top:-55px;opacity:1;}
  .pl-trail{display:none;}
  .pl-sky{animation:none !important;}
}

/* Homepage popup banner */
.promo-overlay{
  position:fixed;inset:0;
  background:rgba(10,30,52,0.65);
  display:flex;align-items:center;justify-content:center;
  z-index:1100;
  opacity:0;visibility:hidden;
  transition:opacity .3s ease;
  padding:20px;
}
.promo-overlay.open{opacity:1;visibility:visible;}
.promo-modal{
  position:relative;
  max-width:520px;width:100%;
  transform:translateY(20px) scale(0.97);
  transition:transform .3s ease;
}
.promo-overlay.open .promo-modal{transform:translateY(0) scale(1);}
.promo-modal img{
  display:block;width:100%;height:auto;
  max-height:85vh;object-fit:contain;
  border-radius:14px;
  box-shadow:0 40px 80px -20px rgba(0,0,0,0.5);
}
.promo-close{
  position:absolute;top:-14px;right:-14px;
  width:36px;height:36px;border-radius:50%;
  border:none;background:#fff;color:var(--navy);
  font-size:1.5rem;line-height:1;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 6px 16px rgba(0,0,0,0.3);
  z-index:2;
}
.promo-close:hover{background:var(--orange);color:#fff;}
@media (max-width:640px){
  .promo-close{top:-10px;right:-6px;}
}

/* About page — company profile sections */
.about-block{padding:64px 0;background:var(--white);}
.about-block.alt{background:var(--cream);}
.about-head{text-align:center;margin-bottom:32px;}
.about-head .eyebrow{font-family:var(--font-script);color:var(--orange);font-size:1.3rem;margin:0 0 4px;}
.about-head h2{color:var(--navy);margin:0;font-size:2rem;font-weight:600;}
.about-two{display:grid;grid-template-columns:1.2fr 1fr;gap:40px;align-items:start;}
.about-quote{
  margin:0;padding:28px 30px;
  background:var(--navy);color:#fff;
  border-radius:var(--radius);
  font-size:1.25rem;line-height:1.5;font-weight:500;
  border-left:5px solid var(--orange);
}
.about-quote span{display:block;margin-top:16px;font-size:0.95rem;font-weight:400;color:#dbe3ee;}
.about-subhead{color:var(--orange-dark);font-size:1.1rem;font-weight:600;margin:0 0 10px;}
.about-list{list-style:none;margin:0;padding:0;}
.about-list li{position:relative;padding:7px 0 7px 26px;color:var(--text);}
.about-list li::before{content:"\2713";position:absolute;left:0;top:7px;color:var(--orange);font-weight:700;}
.about-list.tight li{padding:4px 0 4px 24px;font-size:0.92rem;}
.about-list.tight li::before{top:4px;}
.about-cards{display:grid;grid-template-columns:1fr 1fr 1.4fr;gap:24px;align-items:start;}
.about-card{background:var(--cream);border:1px solid var(--border);border-radius:var(--radius);padding:26px;}
.about-card p{margin:0;color:var(--text);line-height:1.65;}
.founder-grid{display:grid;grid-template-columns:320px 1fr;gap:44px;align-items:start;}
.founder-photo{margin:0;text-align:center;}
.founder-photo img{width:100%;height:auto;border-radius:var(--radius);box-shadow:var(--shadow);display:block;}
.founder-photo figcaption{margin-top:14px;color:var(--navy);line-height:1.5;}
.about-tagline{margin-top:20px;font-weight:600;color:var(--orange-dark);font-size:1.05rem;}
@media (max-width:900px){
  .about-two,.about-cards,.founder-grid{grid-template-columns:1fr;gap:24px;}
  .founder-photo{max-width:320px;margin:0 auto;}
  .about-block{padding:44px 0;}
}

/* ===== Credentials pages (Awards, Recognitions, International Participations, Why Only Aakasaveedhilo) ===== */
.cred-intro{max-width:760px;margin:0 auto 36px;text-align:center;color:var(--muted);line-height:1.75;}
.cred-feature{display:grid;grid-template-columns:1.25fr 1fr;gap:40px;align-items:center;margin-bottom:48px;}
.cred-feature.reverse{grid-template-columns:1fr 1.25fr;}
.cred-feature.reverse .cred-photo{order:2;}
.cred-photo{margin:0;}
.cred-photo img{width:100%;height:auto;display:block;border-radius:var(--radius);box-shadow:var(--shadow);}
.cred-photo figcaption{margin-top:10px;font-size:0.85rem;color:var(--muted);text-align:center;}
.cred-tag{display:inline-block;background:rgba(244,130,31,0.12);color:var(--orange-dark);font-weight:600;font-size:0.78rem;letter-spacing:.04em;text-transform:uppercase;padding:5px 12px;border-radius:999px;margin-bottom:12px;}
.cred-feature h3{color:var(--navy);font-size:1.45rem;margin:0 0 12px;font-weight:600;}
.cred-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.cred-gallery .cred-photo img{aspect-ratio:4/3;object-fit:cover;}
.cred-badges{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;}
.cred-badge{display:flex;gap:16px;align-items:flex-start;background:var(--white);border:1px solid var(--border);border-radius:var(--radius);padding:22px;}
.cred-badge i{flex:0 0 46px;height:46px;border-radius:50%;background:var(--navy);color:var(--orange);display:flex;align-items:center;justify-content:center;font-size:1.1rem;}
.cred-badge h3{margin:0 0 4px;color:var(--navy);font-size:1rem;font-weight:600;}
.cred-badge p{margin:0;color:var(--muted);line-height:1.6;}
.client-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:18px;}
.client-logo{background:var(--white);border:1px solid var(--border);border-radius:12px;height:110px;display:flex;align-items:center;justify-content:center;padding:14px;}
.client-logo img{max-width:100%;max-height:100%;object-fit:contain;}
.timeline{position:relative;max-width:820px;margin:0 auto;padding-left:34px;}
.timeline::before{content:"";position:absolute;left:11px;top:6px;bottom:6px;width:2px;background:var(--border);}
.timeline-item{position:relative;background:var(--white);border:1px solid var(--border);border-radius:var(--radius);padding:20px 22px;margin-bottom:20px;}
.timeline-item::before{content:"";position:absolute;left:-30px;top:24px;width:14px;height:14px;border-radius:50%;background:var(--orange);box-shadow:0 0 0 4px rgba(244,130,31,0.2);}
.timeline-year{font-weight:700;color:var(--orange-dark);font-size:0.9rem;}
.timeline-item h3{margin:4px 0 6px;color:var(--navy);font-size:1.1rem;font-weight:600;}
.timeline-item p{margin:0;color:var(--muted);line-height:1.6;}
.why-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;}
.why-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);padding:26px;}
.why-card h3{display:flex;align-items:center;gap:10px;color:var(--navy);font-size:1.1rem;margin:0 0 12px;font-weight:600;}
.why-card h3 i{color:var(--orange);}
.why-banner{margin-top:40px;background:linear-gradient(120deg,var(--navy) 0%,var(--navy-dark) 100%);color:var(--white);border-radius:var(--radius);padding:34px;text-align:center;}
.why-banner .te{font-size:1.6rem;font-weight:600;color:var(--orange);display:block;margin-bottom:6px;}
.why-banner strong{font-size:1.25rem;letter-spacing:.05em;}
@media (max-width: 900px){
  .cred-feature,.cred-feature.reverse,.cred-badges,.why-grid{grid-template-columns:1fr;gap:24px;}
  .cred-feature.reverse .cred-photo{order:0;}
  .cred-gallery{grid-template-columns:repeat(2,1fr);}
}
@media (max-width: 560px){
  .cred-gallery{grid-template-columns:1fr;}
  .client-grid{grid-template-columns:repeat(2,1fr);}
}

/* Contact page office photos */
.office-section{padding-bottom:0;}
.office-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px;}
.office-card{background:var(--cream);border:1px solid var(--border);border-radius:var(--radius);padding:20px;}
.office-card h3{color:var(--navy);margin:16px 0 8px;font-size:1.2rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;}
.office-card p{margin:0;line-height:1.65;}
.office-card a{color:var(--navy);}
.office-photo{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:calc(var(--radius) - 4px);box-shadow:var(--shadow);}
@media (max-width:760px){.office-grid{grid-template-columns:1fr;gap:24px;}}

/* ===================== Mobile responsive fixes (top bar, header, containers) ===================== */
html,body{max-width:100%;overflow-x:hidden;}
img,video,iframe{max-width:100%;}

@media (max-width:900px){
  .topbar-inner{flex-direction:column;gap:8px;padding:8px 16px;text-align:center;}
  .topbar-contact{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 16px;}
  .topbar-contact a{margin-right:0;word-break:break-word;}
  .topbar-social{justify-content:center;gap:10px;}
  .nav-inner{padding:10px 16px;gap:10px;}
  .logo{min-width:0;flex:1 1 auto;}
  .logo-img{width:auto;height:auto;max-height:60px;max-width:min(52vw,220px);}
  .nav-actions{gap:10px;flex-shrink:0;}
  .nav-actions .btn{padding:9px 18px;white-space:nowrap;}
}
@media (max-width:640px){
  .container{padding-left:16px;padding-right:16px;}
  .topbar{font-size:.78rem;}
  .topbar-contact{flex-direction:column;align-items:center;gap:4px;}
  .logo-img{max-height:48px;max-width:46vw;}
  .nav-actions .btn{padding:8px 14px;font-size:.78rem;}
  .nav-toggle{padding:6px;font-size:1.25rem;}
}
@media (max-width:380px){
  .logo-img{max-width:40vw;}
  .nav-actions{gap:6px;}
  .nav-actions .btn{padding:7px 11px;font-size:.74rem;}
}

/* ===================== Popular Destinations: one card per slide on phones ===================== */
@media (max-width:640px){
  .destination-grid.slider{gap:14px;}
  .destination-grid.slider .destination-card{flex:0 0 100%;width:100%;scroll-snap-align:center;}
}

/* ===================== Space between hero slider and Popular Destinations ===================== */
.feature-strip{margin-top:0;}
.destinations{padding-top:64px;}
.destinations .section-heading{margin-top:0;}
@media (max-width:640px){
  .destinations{padding-top:44px;}
}

/* ===================== Honeymoon brochure panels ===================== */
.tour-banners-section{padding-top:20px;}
.tour-banners{display:grid;gap:22px;}
.tour-banner{margin:0;border-radius:16px;overflow-x:auto;box-shadow:var(--shadow);background:var(--white);-webkit-overflow-scrolling:touch;scrollbar-width:thin;}
.tour-banner img{display:block;width:100%;height:auto;}
.tour-banner-hint{display:none;text-align:center;font-size:.8rem !important;color:var(--muted);margin:-18px 0 14px;}
@media (max-width:640px){
  .tour-banners{gap:16px;}
  /* panels contain small text, so keep them readable and let the visitor swipe */
  .tour-banner img{width:auto;min-width:640px;max-width:none;}
  .tour-banner-hint{display:block;}
}

/* Honeymoon panels now sit directly under the hero */
.tour-banners-section{padding-top:48px;padding-bottom:10px;}
@media (max-width:640px){.tour-banners-section{padding-top:32px;}}

/* Honeymoon story panels are the very first section under the menu */
.tour-banners-section{padding-top:36px;padding-bottom:36px;}
@media (max-width:640px){.tour-banners-section{padding-top:24px;padding-bottom:24px;}}

/* ===================== Hero slide 1: runway take-off ===================== */
.takeoff-scene{
  position:absolute;inset:0;overflow:hidden;
  background:linear-gradient(180deg,#14509f 0%,#2f80d6 38%,#7cc0f5 68%,#d4ecff 84%,#eaf6ff 100%);
}
/* darken the left/centre a little so the white heading stays readable */
.takeoff-scene::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 38%,rgba(10,30,52,.5),rgba(10,30,52,0) 70%);pointer-events:none;z-index:4;}
.to-sun{position:absolute;right:9%;top:14%;width:150px;height:150px;border-radius:50%;background:radial-gradient(circle,rgba(255,244,205,.95) 0%,rgba(255,236,170,.45) 40%,rgba(255,236,170,0) 70%);}
.to-cloud{position:absolute;width:240px;height:60px;border-radius:60px;background:rgba(255,255,255,.55);filter:blur(7px);animation:toCloudDrift linear infinite;}
.to-cloud::before,.to-cloud::after{content:"";position:absolute;border-radius:50%;background:inherit;}
.to-cloud::before{width:90px;height:90px;left:30px;top:-40px;}
.to-cloud::after{width:70px;height:70px;right:40px;top:-26px;}
.to-cloud-1{top:12%;left:-280px;animation-duration:70s;}
.to-cloud-2{top:30%;left:-280px;animation-duration:95s;animation-delay:-40s;opacity:.7;transform:scale(.7);}
@keyframes toCloudDrift{to{transform:translateX(calc(100vw + 600px));}}
.to-cloud-2{animation-name:toCloudDrift2;}
@keyframes toCloudDrift2{from{transform:translateX(0) scale(.7);}to{transform:translateX(calc(100vw + 600px)) scale(.7);}}

.to-hills{position:absolute;left:0;right:0;}
.to-hills-far{bottom:17%;height:20%;background:#5d92cf;opacity:.55;clip-path:polygon(0 100%,0 62%,7% 44%,16% 60%,27% 30%,39% 58%,52% 38%,63% 62%,76% 36%,88% 56%,100% 42%,100% 100%);}
.to-hills-near{bottom:17%;height:12%;background:#3f78b8;opacity:.75;clip-path:polygon(0 100%,0 55%,10% 40%,22% 62%,35% 42%,50% 66%,64% 44%,78% 64%,90% 46%,100% 58%,100% 100%);}
.to-tower{position:absolute;right:9%;bottom:17%;width:10px;height:78px;background:#26466f;}
.to-tower::before{content:"";position:absolute;left:-14px;top:-18px;width:38px;height:20px;border-radius:4px;background:#26466f;box-shadow:inset 0 -6px 0 #7fb6ea;}
.to-tower::after{content:"";position:absolute;left:3px;top:-30px;width:4px;height:14px;background:#26466f;}

.to-runway{
  position:absolute;left:0;right:0;bottom:0;height:19%;
  background:linear-gradient(180deg,#4a4f58 0%,#2c3037 55%,#1f2329 100%);
  border-top:3px solid #e9edf2;
}
.to-runway-line{position:absolute;left:0;right:0;top:46%;height:5px;background:repeating-linear-gradient(90deg,#fff 0 56px,transparent 56px 110px);opacity:.9;}
.to-runway-lights{position:absolute;left:0;right:0;top:8px;height:6px;background:radial-gradient(circle,#ffd45a 0 2.5px,transparent 3px) 0 0/46px 6px repeat-x;animation:toBlink 1.2s steps(2) infinite;}
@keyframes toBlink{50%{opacity:.35;}}

.to-plane{
  position:absolute;left:3vw;bottom:calc(19% - 6px);
  width:clamp(200px,27vw,340px);
  z-index:3;
  transform-origin:50% 75%;
  transform:rotate(16deg);       /* the picture is nose-up; 16deg levels it for the ground roll */
  will-change:transform;
}
.to-plane img{display:block;width:100%;height:auto;filter:drop-shadow(0 10px 12px rgba(0,0,0,.35));}
.to-shadow{
  position:absolute;left:calc(3vw + 4%);bottom:calc(19% - 12px);
  width:clamp(170px,22vw,280px);height:14px;
  border-radius:50%;background:rgba(0,0,0,.45);filter:blur(5px);
  z-index:2;
}

/* The take-off only plays once the page loader has gone, and replays each time the slide comes back */
html.page-ready .hero-takeoff.active .to-plane{animation:toFly 5s linear .3s both;}
html.page-ready .hero-takeoff.active .to-shadow{animation:toShadow 5s linear .3s both;}
@keyframes toFly{
  0%  {transform:translate(0,0) rotate(16deg);animation-timing-function:cubic-bezier(.55,.05,.9,.6);}
  56% {transform:translate(50vw,0) rotate(16deg);animation-timing-function:ease-in-out;}
  64% {transform:translate(58vw,-1.5vh) rotate(7deg);animation-timing-function:cubic-bezier(.35,.1,.6,1);}
  100%{transform:translate(115vw,-64vh) rotate(-4deg);}
}
@keyframes toShadow{
  0%  {transform:translateX(0) scaleX(1);opacity:1;animation-timing-function:cubic-bezier(.55,.05,.9,.6);}
  56% {transform:translateX(50vw) scaleX(1);opacity:1;animation-timing-function:ease-in-out;}
  64% {transform:translateX(58vw) scaleX(.9);opacity:.8;}
  80% {transform:translateX(78vw) scaleX(.5);opacity:0;}
  100%{transform:translateX(115vw) scaleX(.3);opacity:0;}
}
/* hide the generic flying plane/cloud layer while the take-off slide is showing */
.hero-slider:has(.hero-takeoff.active) .hero-fx{display:none;}

@media (max-width:640px){
  .to-runway{height:16%;}
  .to-plane{bottom:calc(16% - 5px);width:clamp(190px,50vw,260px);}
  .to-shadow{bottom:calc(16% - 10px);width:clamp(160px,42vw,220px);}
  .to-hills-far,.to-hills-near,.to-tower{bottom:15%;}
  .to-sun{width:100px;height:100px;}
}
@media (prefers-reduced-motion:reduce){
  .to-cloud,.to-runway-lights{animation:none !important;}
  html.page-ready .hero-takeoff.active .to-plane,html.page-ready .hero-takeoff.active .to-shadow{animation:none !important;}
  .to-plane{transform:translate(46vw,-10vh) rotate(4deg);}
  .to-shadow{opacity:0;}
}

/* take-off slide polish: keep the scene behind the text, text above the runway, plane sitting on the tarmac */
.takeoff-scene{z-index:1;isolation:isolate;}
.hero-takeoff{padding:70px 0 26%;}
.to-plane{bottom:calc(19% - 16px);}
.to-shadow{bottom:calc(19% - 14px);}
@media (max-width:640px){
  .hero-takeoff{padding:48px 0 24%;}
  .to-plane{bottom:calc(16% - 14px);}
  .to-shadow{bottom:calc(16% - 12px);}
}
/* keep the heading block fully inside the shorter hero on desktop */
.hero-takeoff{padding:34px 0 22%;}
.hero-takeoff .hero-title{font-size:clamp(2.3rem,4.6vw,3.5rem);line-height:1.1;}
.hero-takeoff .hero-sub{margin-top:10px;}
.hero-takeoff .hero-cta{margin-top:18px;}
@media (max-width:640px){.hero-takeoff{padding:48px 0 24%;}.hero-takeoff .hero-title{font-size:2.3rem;}}
.hero-takeoff{justify-content:flex-start;padding-top:40px;}
@media (max-width:640px){.hero-takeoff{padding-top:36px;}}

/* ===== Take-off slide: the "Life is calling" message drops in from the top (no other text or button) ===== */
.takeoff-text{display:flex;justify-content:center;}
.to-message{
  display:block;
  width:clamp(280px,34vw,440px);height:auto;
  filter:drop-shadow(0 3px 8px rgba(0,0,0,.45));
}
html:not(.page-ready) .hero-takeoff .to-message{opacity:0;}
html.page-ready .hero-takeoff.active .to-message{animation:toDrop 1.3s cubic-bezier(.3,.7,.4,1) .2s both;}
@keyframes toDrop{
  0%  {transform:translateY(-140%);opacity:0;}
  12% {opacity:1;}
  58% {transform:translateY(10px);}
  76% {transform:translateY(-12px);}
  90% {transform:translateY(4px);}
  100%{transform:translateY(0);opacity:1;}
}
@media (max-width:640px){.to-message{width:min(86vw,360px);}}
@media (prefers-reduced-motion:reduce){
  html.page-ready .hero-takeoff.active .to-message{animation:none !important;opacity:1;}
  html:not(.page-ready) .hero-takeoff .to-message{opacity:1;}
}

/* ===== Luggage beside the message: bags drop first, then the hat drops onto them ===== */
.takeoff-text{align-items:center;gap:clamp(14px,2.4vw,34px);max-width:none;}
.to-luggage{position:relative;flex:0 0 auto;width:clamp(150px,15vw,210px);}
.to-bags{display:block;width:100%;height:auto;filter:drop-shadow(0 8px 10px rgba(0,0,0,.4));}
.to-cap{position:absolute;left:49%;top:-8%;width:30%;height:auto;z-index:2;filter:drop-shadow(0 4px 5px rgba(0,0,0,.35));}
html:not(.page-ready) .hero-takeoff .to-bags,
html:not(.page-ready) .hero-takeoff .to-cap{opacity:0;}
html.page-ready .hero-takeoff.active .to-bags{animation:toDrop 1.2s cubic-bezier(.3,.7,.4,1) 1.0s both;}
html.page-ready .hero-takeoff.active .to-cap{animation:toCapDrop 1s cubic-bezier(.3,.7,.4,1) 2.1s both;}
@keyframes toCapDrop{
  0%  {transform:translateY(-480%) rotate(-28deg);opacity:0;}
  10% {opacity:1;}
  60% {transform:translateY(10%) rotate(7deg);}
  78% {transform:translateY(-12%) rotate(-3deg);}
  90% {transform:translateY(3%) rotate(1deg);}
  100%{transform:translateY(0) rotate(0);opacity:1;}
}
@media (max-width:640px){
  .takeoff-text{flex-direction:column;gap:4px;}
  .to-luggage{width:30vw;align-self:flex-end;margin-right:6vw;}
}
@media (prefers-reduced-motion:reduce){
  html.page-ready .hero-takeoff.active .to-bags,html.page-ready .hero-takeoff.active .to-cap{animation:none !important;opacity:1;}
  html:not(.page-ready) .hero-takeoff .to-bags,html:not(.page-ready) .hero-takeoff .to-cap{opacity:1;}
}

/* ===================== HERO SLIDE 1 — "WHAT IS YOUR PLAN??" ===================== */
/* Sky background, the branded mug held up from the bottom edge, and the
   landmarks standing inside the mug (they sit behind the mug image, so the
   rim/body hides their bases). Landmark positions are in mug-image pixels
   (the mug PNG is 666 x 429): --x = left edge, --w = width, --y = where the base sits. */
.hero-slider:has(.hero-plan.active) .hero-fx{display:none;}
.hero-plan{padding:0;justify-content:flex-start;background:#3aa6dd;}
.plan-bg{
  position:absolute;inset:0;z-index:0;
  background:url('../uploads/images/plan/hero-sky.jpg') center bottom/cover no-repeat;
  transform:scale(1.04);transition:transform 8s ease-out;
}
.hero-plan.active .plan-bg{transform:scale(1);}

.plan-inner{position:relative;z-index:3;height:100%;display:flex;align-items:center;}
.plan-text{color:#fff;max-width:min(900px, 60vw);padding:40px 0 60px;}
.plan-title{
  font-family:var(--font-head);font-weight:800;
  font-size:clamp(2.1rem, 4.6vw, 4.8rem);line-height:1.02;letter-spacing:-0.045em;
  margin:0 0 18px;color:#fff;
  text-shadow:0 4px 22px rgba(0,60,120,.25);
}
.plan-list{list-style:none;margin:0;padding:0 0 0 clamp(14px,2.4vw,44px);}
.plan-list li{margin:0;}
.plan-list a{
  display:inline-block;color:#fff;text-decoration:none;
  font-size:clamp(1.15rem, 1.9vw, 1.9rem);font-weight:400;line-height:1.55;
  text-shadow:0 2px 10px rgba(0,60,120,.3);
  transition:color .2s ease, transform .2s ease;
}
.plan-list a:hover,.plan-list a:focus-visible{color:var(--orange);transform:translateX(6px);}

.plan-mug{
  position:absolute;z-index:2;bottom:0;
  right:clamp(-60px, 4vw, 120px);
  width:clamp(320px, 44vw, 760px);
  aspect-ratio:666/429;
  /* image is cut off at the wrist on the right, so let it run off the bottom-right edge */
  transform:translateY(6%);
}
.plan-mug-img{position:absolute;inset:0;width:100%;height:100%;z-index:5;display:block;
  filter:drop-shadow(0 18px 30px rgba(0,40,90,.25));}
.plan-lm{
  position:absolute;display:block;height:auto;
  left:calc(var(--x) / 666 * 100%);
  width:calc(var(--w) / 666 * 100%);
  bottom:calc((429 - var(--y)) / 429 * 100%);
  transform-origin:50% 100%;
}
.lm-eiffel {--x:86; --w:94; --y:30; z-index:1;}
.lm-opera  {--x:100;--w:74; --y:20; z-index:4;}
.lm-pisa   {--x:150;--w:58; --y:22; z-index:2;}
.lm-liberty{--x:184;--w:64; --y:20; z-index:3;}
.lm-bigben {--x:224;--w:64; --y:22; z-index:2;}

/* entrance: mug rises from the bottom, then the landmarks pop up out of it */
.hero-plan .plan-title,.hero-plan .plan-list li{opacity:0;}
.hero-plan.active .plan-title{animation:heroSlideIn .8s cubic-bezier(.2,.8,.2,1) .2s forwards;}
.hero-plan.active .plan-list li{animation:heroFadeUp .6s ease forwards;}
.hero-plan.active .plan-list li:nth-child(1){animation-delay:.55s;}
.hero-plan.active .plan-list li:nth-child(2){animation-delay:.65s;}
.hero-plan.active .plan-list li:nth-child(3){animation-delay:.75s;}
.hero-plan.active .plan-list li:nth-child(4){animation-delay:.85s;}
.hero-plan.active .plan-list li:nth-child(5){animation-delay:.95s;}
.hero-plan.active .plan-mug{animation:mugRise 1s cubic-bezier(.2,.8,.2,1) .1s both;}
.hero-plan .plan-lm{opacity:0;}
.hero-plan.active .plan-lm{animation:lmPop .7s cubic-bezier(.3,1.4,.5,1) forwards;}
.hero-plan.active .lm-eiffel {animation-delay:1.0s;}
.hero-plan.active .lm-pisa   {animation-delay:1.12s;}
.hero-plan.active .lm-liberty{animation-delay:1.24s;}
.hero-plan.active .lm-bigben {animation-delay:1.36s;}
.hero-plan.active .lm-opera  {animation-delay:1.48s;}
@keyframes mugRise{from{transform:translateY(60%);opacity:0;}to{transform:translateY(6%);opacity:1;}}
@keyframes lmPop{from{opacity:0;transform:translateY(70%);}to{opacity:1;transform:translateY(0);}}

@media (max-width:820px){
  .plan-inner{align-items:flex-start;}
  .hero-slider:has(.hero-plan){min-height:max(600px, 80vh);}
  .plan-bg{background-position:8% bottom;}
  .plan-title,.plan-list a{text-shadow:0 2px 12px rgba(0,50,110,.55);}
  .plan-text{padding:40px 0 0;max-width:none;}
  .plan-mug{right:auto;left:50%;width:min(84vw, 460px);transform:translate(-38%,6%);}
  @keyframes mugRise{from{transform:translate(-38%,60%);opacity:0;}to{transform:translate(-38%,6%);opacity:1;}}
}
@media (prefers-reduced-motion: reduce){
  .plan-bg{transition:none;transform:none;}
  .hero-plan .plan-title,.hero-plan .plan-list li,.hero-plan .plan-lm{opacity:1 !important;animation:none !important;}
  .hero-plan.active .plan-mug{animation:none;}
}

/* ===================== Why choose us (below hero) ===================== */
.why-choose{padding:56px 0 20px;background:#f6fbff;}
.why-grid{
  display:grid;
  grid-template-columns:2.25fr 1fr 1fr;
  gap:25px;
  align-items:stretch;
}
.why-main{
  grid-column:1;
  position:relative;
  min-height:560px;
  border-radius:18px;
  padding:64px 62px;
  color:#fff;
  background-color:#5d88a8;
  background-size:cover;
  background-position:center bottom;
  overflow:hidden;
}
.why-main::before{
  content:"";
  position:absolute;inset:0;
  background:linear-gradient(180deg, rgba(14,42,71,0.62) 0%, rgba(14,42,71,0.28) 50%, rgba(14,42,71,0.05) 100%);
}
.why-main > *{position:relative;z-index:1;}
.why-eyebrow{margin:0 0 18px;font-size:1.05rem;font-weight:500;color:#fff;}
.why-main h2{
  margin:0 0 22px;
  max-width:560px;
  color:#fff;
  font-size:clamp(1.8rem, 3.2vw, 2.6rem);
  line-height:1.15;
  letter-spacing:-0.02em;
}
.why-text{max-width:520px;margin:0 0 30px;color:#fff;font-size:1.05rem;line-height:1.75;}
.why-btn{
  display:inline-block;
  padding:15px 22px;
  background:#0b0b0c;
  color:#fff;
  border-radius:6px;
  font-weight:600;
  letter-spacing:0.02em;
  transition:background .2s ease, transform .2s ease;
}
.why-btn:hover{background:var(--orange);transform:translateY(-2px);}
.why-cards{
  grid-column:2 / 4;
  display:grid;
  grid-template-columns:1fr 1fr;
  grid-template-rows:1fr 1fr;
  gap:25px;
}
.why-card{
  position:relative;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  min-height:267px;
  padding:34px 36px;
  border-radius:18px;
  color:#fff;
  background-color:#0f4468;
  background-size:cover;
  background-position:center;
  overflow:hidden;
}
.why-card::before{
  content:"";
  position:absolute;inset:0;
  background:linear-gradient(180deg, rgba(14,42,71,0.15) 0%, rgba(8,58,94,0.78) 62%, rgba(5,52,86,0.96) 100%);
}
.why-card > *{position:relative;z-index:1;}
.why-card i{font-size:3rem;color:#fff;}
.why-card h3{margin:0;color:#fff;font-size:1.45rem;font-weight:600;line-height:1.3;letter-spacing:-0.01em;}
@media (max-width:1100px){
  .why-grid{grid-template-columns:1fr;}
  .why-main,.why-cards{grid-column:1;}
  .why-main{min-height:460px;}
}
@media (max-width:640px){
  .why-choose{padding:40px 0 10px;}
  .why-grid,.why-cards{gap:16px;}
  .why-main{padding:40px 26px;min-height:420px;}
  .why-cards{grid-template-columns:1fr 1fr;}
  .why-card{min-height:200px;padding:22px 18px;}
  .why-card i{font-size:2.2rem;}
  .why-card h3{font-size:1.05rem;}
}


/* ===================== Home blog section — image cards with overlaid text ===================== */
.blog-teaser{background:#dcf0fe;padding:70px 0 80px;}
.blog-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:20px;
  margin-bottom:46px;
}
.blog-head .eyebrow{margin:0 0 10px;color:#1a9be6;font-weight:500;}
.blog-head h2{margin:0 0 16px;color:#0b0b0c;font-size:clamp(1.9rem, 4vw, 3rem);line-height:1.1;letter-spacing:-0.02em;}
.blog-head-sub{margin:0;color:var(--muted);font-size:1rem;}
.blog-viewall{
  flex-shrink:0;
  margin-top:8px;
  padding:14px 26px;
  background:#fff;
  color:#0b0b0c;
  border-radius:6px;
  font-weight:500;
  transition:background .2s ease, color .2s ease;
}
.blog-viewall:hover{background:var(--orange);color:#fff;}
.blog-teaser .blog-grid.slider{padding:0;gap:36px;}
.blog-teaser .blog-grid.slider .blog-card{
  flex:0 0 calc((100% - 72px) / 3);
  width:calc((100% - 72px) / 3);
  position:relative;
  aspect-ratio:513 / 500;
  border:none;
  border-radius:10px;
  background:#0f2a3f;
  box-shadow:none;
}
.blog-teaser .blog-card:hover{transform:none;box-shadow:0 22px 40px -22px rgba(14,42,71,0.55);}
.blog-teaser .blog-image{position:absolute;inset:0;height:100%;}
.blog-teaser .blog-card::after{
  content:"";
  position:absolute;inset:0;
  background:linear-gradient(180deg, rgba(0,0,0,0) 38%, rgba(0,0,0,0.78) 100%);
  pointer-events:none;
}
.blog-teaser .blog-info{
  position:absolute;
  left:0;right:0;bottom:0;
  z-index:2;
  padding:0 38px 30px;
}
.blog-teaser .blog-info h3{
  margin:0 0 22px;
  color:#fff;
  font-size:1.6rem;
  font-weight:600;
  line-height:1.3;
  letter-spacing:-0.01em;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.blog-meta{display:flex;flex-wrap:wrap;gap:12px;}
.blog-meta span{
  padding:6px 10px;
  border-radius:5px;
  background:rgba(255,255,255,0.14);
  color:#fff;
  font-size:0.9rem;
  backdrop-filter:blur(2px);
}
@media (max-width:980px){
  .blog-teaser .blog-grid.slider{gap:24px;}
  .blog-teaser .blog-grid.slider .blog-card{flex-basis:calc((100% - 24px) / 2);width:calc((100% - 24px) / 2);}
}
@media (max-width:640px){
  .blog-teaser{padding:50px 0 56px;}
  .blog-head{flex-direction:column;margin-bottom:30px;}
  .blog-teaser .blog-grid.slider .blog-card{flex-basis:100%;width:100%;aspect-ratio:1 / 1;}
  .blog-teaser .blog-info{padding:0 22px 24px;}
  .blog-teaser .blog-info h3{font-size:1.3rem;margin-bottom:16px;}
}


/* ===================== Trusted by travelers (below Incredible Journeys) ===================== */
.trust-section{background:#fff8f3;padding:70px 0 80px;}
.trust-grid{
  display:grid;
  grid-template-columns:1.05fr 1fr;
  gap:80px;
  align-items:center;
}
.trust-visual{position:relative;min-height:700px;}
.trust-photo-main{
  position:absolute;
  top:0;left:0;
  width:75%;
  height:675px;
  border-radius:12px;
  background-color:#c98a4b;
  background-size:cover;
  background-position:center;
  overflow:hidden;
  text-align:center;
  color:#fff;
  padding:48px 20px 0;
}
.trust-photo-main::before{
  content:"";
  position:absolute;inset:0;
  background:linear-gradient(180deg, rgba(120,60,10,0.55) 0%, rgba(120,60,10,0.18) 40%, rgba(0,0,0,0) 70%);
}
.trust-photo-main > *{position:relative;z-index:1;display:block;}
.trust-brand{font-size:1.6rem;font-weight:800;letter-spacing:-0.01em;margin-bottom:6px;}
.trust-photo-title{font-size:clamp(1.8rem, 3.6vw, 3rem);font-weight:800;letter-spacing:0.01em;line-height:1.1;margin-bottom:22px;}
.trust-photo-sub{font-size:1.05rem;font-weight:600;}
.trust-photo-small{
  position:absolute;
  right:0;bottom:0;
  width:50%;
  height:520px;
  border-radius:12px;
  background-color:#e88a2c;
  background-size:cover;
  background-position:center;
  overflow:hidden;
  box-shadow:0 20px 40px -22px rgba(0,0,0,0.45);
  display:flex;
  align-items:flex-end;
  padding:0 0 10px 30px;
}
.trust-photo-small::before{
  content:"";
  position:absolute;inset:0;
  background:linear-gradient(180deg, rgba(232,138,44,0) 55%, rgba(232,138,44,0.55) 100%);
}
.trust-outline-word{
  position:relative;
  z-index:1;
  font-size:clamp(2.2rem, 4.5vw, 4rem);
  font-weight:800;
  letter-spacing:0.02em;
  color:transparent;
  -webkit-text-stroke:2px #fff;
}
.trust-eyebrow{margin:0 0 18px;color:#b8672a;font-size:1.05rem;font-weight:500;}
.trust-content h2{
  margin:0 0 24px;
  color:#5a2d0c;
  font-size:clamp(2rem, 4vw, 3.4rem);
  line-height:1.1;
  letter-spacing:-0.02em;
}
.trust-text{margin:0 0 34px;color:#6b5f57;font-size:1.05rem;line-height:1.75;}
.trust-feature{
  display:flex;
  align-items:center;
  gap:26px;
  padding:26px 26px;
  margin-bottom:24px;
  border:1px solid #f1dccb;
  border-radius:12px;
  background:#fffaf6;
}
.trust-feature i{font-size:2.6rem;color:#b8672a;width:64px;text-align:center;flex-shrink:0;}
.trust-feature h3{margin:0 0 6px;color:#5a2d0c;font-size:1.5rem;font-weight:600;letter-spacing:-0.01em;}
.trust-feature p{margin:0;color:#6b5f57;font-size:1.02rem;}
.trust-btn{
  display:inline-block;
  margin-top:20px;
  padding:18px 30px;
  background:#b8672a;
  color:#fff;
  border-radius:6px;
  font-weight:600;
  transition:background .2s ease, transform .2s ease;
}
.trust-btn:hover{background:#a05620;transform:translateY(-2px);}
@media (max-width:1000px){
  .trust-grid{grid-template-columns:1fr;gap:40px;}
  .trust-visual{min-height:620px;max-width:620px;margin:0 auto;width:100%;}
  .trust-photo-main{height:580px;}
  .trust-photo-small{height:440px;}
}
@media (max-width:640px){
  .trust-section{padding:48px 0 56px;}
  .trust-visual{min-height:460px;}
  .trust-photo-main{height:420px;padding-top:30px;}
  .trust-photo-small{height:320px;padding-left:18px;}
  .trust-brand{font-size:1.2rem;}
  .trust-feature{gap:16px;padding:20px 18px;}
  .trust-feature i{font-size:2rem;width:46px;}
  .trust-feature h3{font-size:1.2rem;}
}

/* ===================== Travel India — 30 state boxes ===================== */
.india-grid{
  display:grid;
  grid-template-columns:repeat(5, 1fr);
  gap:20px;
  padding-top:40px;
}
.india-card{
  position:relative;
  display:flex;
  align-items:flex-end;
  height:230px;
  border-radius:14px;
  background-size:cover;
  background-position:center;
  overflow:hidden;
  color:#fff;
  transition:transform .28s cubic-bezier(.2,.8,.2,1), box-shadow .28s ease;
}
.india-card::before{
  content:"";
  position:absolute;inset:0;
  background:linear-gradient(180deg, rgba(0,0,0,0) 30%, rgba(8,24,44,0.82) 100%);
}
.india-card:hover{transform:translateY(-6px);box-shadow:0 20px 34px -18px rgba(14,42,71,0.5);}
.india-card-info{position:relative;z-index:1;padding:16px 16px 18px;}
.india-card h3{margin:0 0 6px;color:#fff;font-size:1.05rem;font-weight:700;line-height:1.25;}
.india-card h3 i{color:var(--orange);font-size:0.9rem;margin-right:4px;}
.india-card p{margin:0;color:rgba(255,255,255,0.88);font-size:0.8rem;line-height:1.45;}
@media (max-width:1100px){ .india-grid{grid-template-columns:repeat(4, 1fr);} }
@media (max-width:860px){ .india-grid{grid-template-columns:repeat(3, 1fr);gap:16px;} }
@media (max-width:600px){
  .india-grid{grid-template-columns:repeat(2, 1fr);gap:12px;padding-top:28px;}
  .india-card{height:190px;}
  .india-card-info{padding:12px;}
  .india-card h3{font-size:0.95rem;}
  .india-card p{font-size:0.74rem;}
}
