/* ============================================
   Wanderlust Voyages - Premium Travel Theme
   ============================================ */
:root{
  --primary: #27B5FF;
  --primary-dark: #1191d6;
  --secondary: #FFC107;
  --white: #ffffff;
  --dark: #16232e;
  --gray: #6b7785;
  --light-bg: #f4faff;
  --radius: 16px;
  --shadow: 0 10px 30px rgba(39,181,255,0.15);
  --gradient: linear-gradient(135deg, #27B5FF 0%, #6fd1ff 100%);
  --gradient-warm: linear-gradient(135deg, #FFC107 0%, #ffda6a 100%);
}

*{box-sizing:border-box;}
body{
  font-family:'Poppins', sans-serif;
  color: var(--dark);
  background: var(--white);
  /* No overflow-x:hidden here on purpose - hiding overflow just clips
     content and hides the scrollbar. The fixes below target the actual
     causes of horizontal overflow instead. */
}
h1,h2,h3,h4,.brand-text,.footer-logo{
  font-family:'Playfair Display', serif;
  font-weight:700;
}
a{text-decoration:none; transition:.3s all;}
img{max-width:100%;}

/* ===== Topbar & Header ===== */
.topbar{background:var(--dark); color:#cfe9ff; font-size:.85rem; padding:6px 0;}
.topbar a{color:#cfe9ff; margin-left:12px;}
.topbar-left span{margin-right:20px;}
.main-nav{background:var(--white); box-shadow:0 4px 20px rgba(0,0,0,.06); padding:12px 0;}
.brand-text{font-size:1.6rem; color:var(--primary-dark);}
.brand-highlight{color:var(--secondary);}
.nav-link{font-weight:500; color:var(--dark)!important; margin:0 8px;}
.nav-link.active, .nav-link:hover{color:var(--primary)!important;}
.navbar-toggler{
  border:0; padding:.55rem .75rem; border-radius:14px;
  background:var(--light-bg); box-shadow:0 8px 20px rgba(39,181,255,.12);
}
.navbar-toggler:focus{box-shadow:0 0 0 .2rem rgba(39,181,255,.18);}
.main-nav .dropdown-menu{
  border:none; border-radius:16px; padding:10px;
  box-shadow:0 18px 40px rgba(12,27,40,.14);
}
.main-nav .dropdown-item{
  border-radius:10px; padding:.55rem .95rem;
}
.main-nav .dropdown-item:hover,
.main-nav .dropdown-item:focus{
  background:var(--light-bg);
  color:var(--primary-dark);
}
.btn-outline-call{border:2px solid var(--primary); color:var(--primary); border-radius:50px; font-weight:600; padding:8px 18px;}
.btn-outline-call:hover{background:var(--primary); color:#fff;}
.btn-book-now{background:var(--gradient-warm); color:var(--dark); font-weight:700; border-radius:50px; padding:8px 22px; box-shadow:0 6px 15px rgba(255,193,7,.4); border:none;}
.btn-book-now:hover{transform:translateY(-2px);}

/* ===== Buttons Generic ===== */
.btn-premium{
  background:var(--gradient); color:#fff; border:none; padding:12px 30px;
  border-radius:50px; font-weight:600; box-shadow:var(--shadow); transition:.3s;
}
.btn-premium:hover{transform:translateY(-3px); box-shadow:0 15px 30px rgba(39,181,255,.35); color:#fff;}
.btn-outline-premium{
  border:2px solid var(--primary); color:var(--primary); padding:12px 30px; border-radius:50px; font-weight:600; background:transparent;
}
.btn-outline-premium:hover{background:var(--primary); color:#fff;}

/* ===== Hero ===== */
.hero-slider{position:relative; height:90vh; min-height:600px; overflow:hidden;}
.homeHeroSwiper,
.homeHeroSwiper .swiper-wrapper,
.homeHeroSwiper .swiper-slide{height:100%;}
.homeHeroSwiper,
.contentSwiper,
.packageHeroSwiper{overflow:hidden;}
.hero-slide{
  height:90vh; min-height:600px; background-size:cover; background-position:center;
  display:flex; align-items:center; position:relative;
}
.hero-slide::before{
  content:''; position:absolute; inset:0;
  background:linear-gradient(90deg, rgba(10,30,50,.75) 0%, rgba(10,30,50,.35) 60%, rgba(10,30,50,.1) 100%);
}
.hero-content{position:relative; z-index:2; color:#fff; max-width:640px; padding:40px 0 88px;}
.hero-content .subtitle{color:var(--secondary); font-weight:600; letter-spacing:2px; text-transform:uppercase;}
.hero-content h1{font-size:3.2rem; line-height:1.2; margin:10px 0 20px;}
.hero-content p{font-size:1.1rem; color:#e6f3ff; margin-bottom:25px;}
.hero-actions{align-items:center;}
.homeHeroSwiper .swiper-pagination{bottom:28px!important;}
.homeHeroSwiper .swiper-pagination-bullet{
  width:11px; height:11px; opacity:1; background:rgba(255,255,255,.45);
  transition:.25s ease;
}
.homeHeroSwiper .swiper-pagination-bullet-active{
  width:34px; border-radius:999px; background:var(--secondary);
}
.packageHeroSwiper{height:420px;}
.packageHeroSwiper .swiper-button-next,
.packageHeroSwiper .swiper-button-prev{
  width:46px; height:46px; border-radius:50%;
  background:rgba(12,27,40,.48); color:#fff;
  box-shadow:0 12px 28px rgba(0,0,0,.18);
}
.packageHeroSwiper .swiper-button-next::after,
.packageHeroSwiper .swiper-button-prev::after{font-size:1rem; font-weight:700;}

/* Search Tour Form (glass) */
.search-tour-form{
  position:relative; z-index:3; margin-top:-70px;
  background:rgba(255,255,255,.65); backdrop-filter:blur(18px);
  border:1px solid rgba(255,255,255,.5); border-radius:var(--radius);
  padding:25px; box-shadow:var(--shadow);
}
.search-tour-form label{font-weight:600; font-size:.85rem; color:var(--dark);}
.search-tour-form .form-control, .search-tour-form .form-select{border-radius:10px; border:1px solid #d9eefb;}

/* ===== Glassmorphism Cards ===== */
.glass-card{
  background:rgba(255,255,255,.55); backdrop-filter:blur(12px);
  border:1px solid rgba(255,255,255,.6); border-radius:var(--radius);
  box-shadow:var(--shadow); padding:30px;
}

/* ===== Section Titles ===== */
.section-title{text-align:center; max-width:700px; margin:0 auto 50px;}
.section-title .tag{color:var(--primary); font-weight:600; letter-spacing:2px; text-transform:uppercase; font-size:.85rem;}
.section-title h2{font-size:2.4rem; margin:10px 0;}
.bg-light-blue{background:var(--light-bg);}

/* ===== Stats ===== */
.stats-section{background:var(--gradient); color:#fff; padding:60px 0;}
.stat-item h3{font-size:2.8rem; font-weight:800; margin-bottom:5px;}
.stat-item p{opacity:.9; text-transform:uppercase; font-size:.85rem; letter-spacing:1px;}

/* ===== Package Cards ===== */
.package-card{
  border-radius:var(--radius); overflow:hidden; background:#fff;
  box-shadow:0 8px 25px rgba(0,0,0,.08); transition:.35s; height:100%;
}
.package-card:hover{transform:translateY(-8px); box-shadow:0 20px 40px rgba(39,181,255,.25);}
.package-img{position:relative; height:230px; overflow:hidden;}
.package-img img{width:100%; height:100%; object-fit:cover; transition:.5s;}
.package-card:hover .package-img img{transform:scale(1.1);}
.price-badge{position:absolute; top:15px; right:15px; background:var(--secondary); color:var(--dark); font-weight:700; padding:6px 14px; border-radius:50px; font-size:.9rem;}
.duration-badge{position:absolute; top:15px; left:15px; background:rgba(0,0,0,.55); color:#fff; padding:6px 14px; border-radius:50px; font-size:.8rem;}
.package-body{padding:20px;}
.package-body h5{font-weight:700; margin-bottom:6px;}
.package-loc{color:var(--gray); font-size:.85rem; margin-bottom:8px;}
.rating i{color:var(--secondary); font-size:.85rem;}

/* ===== Destinations ===== */
.destination-card{position:relative; border-radius:var(--radius); overflow:hidden; height:340px;}
.destination-card img{width:100%; height:100%; object-fit:cover; transition:.5s;}
.destination-card:hover img{transform:scale(1.1);}
.destination-overlay{
  position:absolute; bottom:0; left:0; right:0; padding:20px;
  background:linear-gradient(to top, rgba(0,0,0,.75), transparent); color:#fff;
}
.destination-overlay h5{margin-bottom:2px;}

/* ===== Why Choose Us ===== */
.feature-box{text-align:center; padding:30px 20px; border-radius:var(--radius); background:#fff; box-shadow:0 8px 20px rgba(0,0,0,.06); transition:.3s; height:100%;}
.feature-box:hover{transform:translateY(-6px); box-shadow:0 15px 30px rgba(39,181,255,.2);}
.feature-icon{width:70px; height:70px; margin:0 auto 15px; border-radius:50%; background:var(--gradient); display:flex; align-items:center; justify-content:center; color:#fff; font-size:1.8rem;}

/* ===== Testimonial ===== */
.testimonial-card{background:#fff; border-radius:var(--radius); box-shadow:0 8px 25px rgba(0,0,0,.08); padding:30px; margin:10px;}
.testimonial-card img{width:55px; height:55px; border-radius:50%; object-fit:cover;}
.testimonial-card .stars i{color:var(--secondary);}

/* ===== Timeline ===== */
.timeline{position:relative; padding-left:40px; border-left:3px solid var(--primary);}
.timeline-item{position:relative; margin-bottom:30px;}
.timeline-item::before{content:''; position:absolute; left:-49px; top:0; width:16px; height:16px; background:var(--secondary); border-radius:50%; border:3px solid #fff; box-shadow:0 0 0 3px var(--primary);}

/* ===== CTA Banner ===== */
.cta-banner{background:var(--gradient); border-radius:var(--radius); padding:50px; color:#fff; text-align:center; position:relative; overflow:hidden;}

/* ===== FAQ ===== */
.accordion-button:not(.collapsed){background:var(--light-bg); color:var(--primary-dark);}
.accordion-button:focus{box-shadow:none;}

/* ===== Vehicle & Price Tables ===== */
.vehicle-card{background:#fff; border-radius:var(--radius); box-shadow:0 8px 20px rgba(0,0,0,.07); overflow:hidden; transition:.3s;}
.vehicle-card:hover{transform:translateY(-6px);}
.price-table th{background:var(--primary); color:#fff;}
.price-table td, .price-table th{vertical-align:middle;}

/* ===== Sticky Sidebar ===== */
.sticky-sidebar{position:sticky; top:100px;}

/* ===== Breadcrumb ===== */
.breadcrumb-section{background:var(--light-bg); padding:25px 0;}
.breadcrumb-section.has-bg{
  position:relative; background-size:cover; background-position:center; padding:80px 0;
}
.breadcrumb-section.has-bg::before{
  content:""; position:absolute; inset:0; background:rgba(15,22,35,.25);
}
.breadcrumb-section.has-bg .container{position:relative; z-index:1;}
.breadcrumb-section.has-bg .breadcrumb-item, .breadcrumb-section.has-bg .breadcrumb-item a{color:#fff;}
.breadcrumb-section.has-bg .breadcrumb-item.active{color:#e9f7ff;}
.breadcrumb-section.has-bg .breadcrumb-item+.breadcrumb-item::before{color:rgba(255,255,255,.6);}

/* ===== Floating Buttons ===== */
.float-btn{
  position:fixed; width:55px; height:55px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  color:#fff; font-size:1.4rem; z-index:999; box-shadow:0 8px 20px rgba(0,0,0,.25); transition:.3s;
}
.whatsapp-float{background:#25D366; bottom:25px; right:25px;}
.call-float{background:var(--primary); bottom:90px; right:25px;}
.back-to-top{background:var(--dark); bottom:155px; right:25px; opacity:0; visibility:hidden;}
.back-to-top.show{opacity:1; visibility:visible;}
.float-btn:hover{transform:scale(1.1); color:#fff;}

/* ===== Custom Itinerary side button (fixed, right-middle, vertical tab) ===== */
.itinerary-side-btn-wrap{
  position:fixed; right:0; top:50%; transform:translateY(-50%);
  width:46px; height:200px; z-index:998;
}
.itinerary-side-btn{
  position:absolute; top:50%; left:50%; width:200px; height:46px;
  transform:translate(-50%,-50%) rotate(-90deg); transform-origin:center center;
  background:var(--gradient); color:#fff;
  display:flex; align-items:center; justify-content:center; gap:8px;
  border-radius:12px 12px 0 0;
  font-weight:600; font-size:.9rem; letter-spacing:.3px; text-decoration:none;
  box-shadow:0 -4px 20px rgba(0,0,0,.2); transition:.3s;
}
.itinerary-side-btn:hover{color:#fff; box-shadow:0 -6px 24px rgba(0,0,0,.28); padding-bottom:6px;}
.itinerary-side-btn i{font-size:1.1rem;}
/* Tablet only: same rotated tab, a little smaller. Below 768px the phone
   rule further down replaces it with a bottom-left pill so it's never lost. */
@media (min-width:768px) and (max-width:991.98px){
  .itinerary-side-btn-wrap{width:40px; height:160px;}
  .itinerary-side-btn{width:160px; height:40px; font-size:.8rem;}
}

/* ===== Custom Itinerary Builder Form ===== */
.itinerary-step{position:relative; padding-left:55px; margin-bottom:30px;}
.itinerary-step-number{
  position:absolute; left:0; top:0; width:38px; height:38px; border-radius:50%;
  background:var(--gradient); color:#fff; display:flex; align-items:center; justify-content:center;
  font-weight:700; font-size:1rem;
}
.itinerary-step h5{margin-bottom:4px;}
.itinerary-step .step-hint{color:var(--gray); font-size:.85rem; margin-bottom:15px;}
.destination-checks label{
  border:1px solid #d9eefb; border-radius:50px; padding:8px 18px; margin:0 8px 8px 0;
  display:inline-flex; align-items:center; gap:6px; cursor:pointer; font-size:.9rem; transition:.2s;
}
.destination-checks input[type="checkbox"]{accent-color:var(--primary);}
.destination-checks label:has(input:checked){background:var(--light-bg); border-color:var(--primary); color:var(--primary-dark); font-weight:600;}

/* ===== Footer ===== */
.site-footer{background:#0c1b28; color:#a9bccb;}
.footer-newsletter{background:var(--gradient); padding:35px 0; color:#fff;}
.footer-logo{color:#fff; font-size:1.5rem;}
.footer-logo span{color:var(--secondary);}
.footer-links{list-style:none; padding:0;}
.footer-links li{margin-bottom:10px;}
.footer-links a{color:#a9bccb;}
.footer-links a:hover{color:var(--secondary); padding-left:5px;}
.footer-social a{display:inline-flex; width:38px; height:38px; border-radius:50%; background:rgba(255,255,255,.08); color:#fff; align-items:center; justify-content:center; margin-right:8px;}
.footer-social a:hover{background:var(--secondary); color:#000;}
.footer-bottom{background:#081420; padding:15px 0; font-size:.85rem;}
.payment-icons i{font-size:1.6rem; margin-left:12px; color:#a9bccb;}

/* ===== Page Header (inner pages) ===== */
.page-header{background:var(--gradient); color:#fff; padding:80px 0 40px; text-align:center; position:relative;}
.page-header h1{margin-bottom:10px;}

/* ===== Utility ===== */
.rounded-premium{border-radius:var(--radius)!important;}
.shadow-premium{box-shadow:var(--shadow)!important;}
.text-primary-custom{color:var(--primary)!important;}
.bg-gradient-primary{background:var(--gradient)!important;}
.legal-content h2{margin-top:30px; color:var(--primary-dark);}
.legal-content p, .legal-content li{color:var(--gray);}

@media (max-width:991px){
  .hero-slider{height:auto; min-height:0;}
  .homeHeroSwiper,
  .homeHeroSwiper .swiper-wrapper,
  .homeHeroSwiper .swiper-slide{height:auto!important;}
  .hero-content h1{font-size:2.2rem;}
  .hero-slide{height:auto; min-height:580px; padding:118px 0 88px;}
  .hero-content{max-width:100%; padding:24px 0 76px;}
  .homeHeroSwiper .swiper-pagination{bottom:20px!important;}
  .search-tour-form{margin-top:20px;}
}


/* ================================
   BUTTON DESIGN FIXES & ENHANCEMENTS
   ================================ */

/* Base button reset for consistency */
.btn{
  font-family:'Poppins', sans-serif;
  letter-spacing:.3px;
  white-space:nowrap;
}

/* Call Now button - outline style fix */
.btn-outline-call{
  border:2px solid var(--primary);
  color:var(--primary);
  border-radius:50px;
  font-weight:600;
  padding:9px 20px;
  background:transparent;
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-size:.9rem;
  transition:.3s all;
}
.btn-outline-call:hover{
  background:var(--primary);
  color:#fff;
  box-shadow:0 8px 18px rgba(39,181,255,.35);
  transform:translateY(-2px);
}

/* Book Now button - premium gradient */
.btn-book-now{
  background:var(--gradient-warm);
  color:var(--dark)!important;
  font-weight:700;
  border-radius:50px;
  padding:9px 24px;
  box-shadow:0 6px 15px rgba(255,193,7,.4);
  border:none;
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-size:.9rem;
  transition:.3s all;
}
.btn-book-now:hover{
  transform:translateY(-3px);
  box-shadow:0 12px 25px rgba(255,193,7,.55);
  color:var(--dark)!important;
}

/* Premium primary button (solid gradient blue) */
.btn-premium{
  background:var(--gradient);
  color:#fff!important;
  border:none;
  padding:13px 32px;
  border-radius:50px;
  font-weight:600;
  box-shadow:0 8px 20px rgba(39,181,255,.3);
  transition:.35s all;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
}
.btn-premium:hover{
  transform:translateY(-3px);
  box-shadow:0 15px 32px rgba(39,181,255,.45);
  color:#fff!important;
  background:linear-gradient(135deg, #1191d6 0%, #27B5FF 100%);
}
.btn-premium:active{transform:translateY(0);}

/* Outline premium button - fixed contrast for use on dark/hero backgrounds */
.btn-outline-premium{
  border:2px solid var(--primary);
  color:var(--primary)!important;
  padding:12px 30px;
  border-radius:50px;
  font-weight:600;
  background:transparent;
  transition:.3s all;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
}
.btn-outline-premium:hover{
  background:var(--primary);
  color:#fff!important;
  box-shadow:0 10px 22px rgba(39,181,255,.35);
  transform:translateY(-2px);
}
/* Variant for use on hero/dark image backgrounds */
.btn-outline-premium.on-dark{
  border-color:#fff;
  color:#fff!important;
}
.btn-outline-premium.on-dark:hover{
  background:#fff;
  color:var(--primary)!important;
}

/* Small buttons inside cards (vehicle/destination) */
.btn-sm.btn-warning{
  background:var(--secondary);
  color:var(--dark);
  font-weight:700;
  border:none;
  border-radius:50px;
  padding:6px 18px;
  transition:.3s all;
}
.btn-sm.btn-warning:hover{
  background:#e6ac00;
  transform:translateY(-2px);
  box-shadow:0 6px 14px rgba(255,193,7,.4);
}

/* Newsletter subscribe button */
.footer-newsletter .btn-warning{
  background:var(--dark);
  color:#fff;
  border-radius:50px;
  padding:10px 22px;
  border:none;
  font-weight:600;
  transition:.3s all;
}
.footer-newsletter .btn-warning:hover{
  background:#000;
  transform:translateY(-2px);
}

/* CTA banner button */
.cta-banner .btn-warning{
  background:var(--secondary);
  color:var(--dark);
  font-weight:700;
  border-radius:50px;
  padding:14px 40px;
  border:none;
  box-shadow:0 10px 22px rgba(0,0,0,.2);
  transition:.3s all;
}
.cta-banner .btn-warning:hover{
  transform:translateY(-3px) scale(1.03);
  box-shadow:0 15px 30px rgba(0,0,0,.3);
}

/* Gallery filter buttons - active state fix */
.gallery-filter-btn{
  border-radius:50px;
  padding:8px 22px;
  font-weight:600;
  font-size:.9rem;
}
.gallery-filter-btn.active{
  background:var(--primary);
  color:#fff;
  border-color:var(--primary);
}

/* WhatsApp inquiry submit button icon spacing */
.whatsapp-inquiry-form button i,
.btn i{margin-right:2px;}

/* Pagination buttons */
.pagination .page-link{
  border-radius:50%;
  width:42px; height:42px;
  display:flex; align-items:center; justify-content:center;
  margin:0 4px;
  color:var(--primary);
  border:1px solid #d9eefb;
  font-weight:600;
}
.pagination .page-item.active .page-link{
  background:var(--gradient);
  border-color:var(--primary);
  color:#fff;
}
.pagination .page-link:hover{
  background:var(--light-bg);
  color:var(--primary-dark);
}

/* ================================
   IMAGE / VISUAL DESIGN FIXES
   ================================ */

/* Ensure all card/section images fill nicely and never distort */
.package-img img, .destination-card img, .vehicle-card img,
.gallery-item img, .testimonial-card img{
  display:block;
}

/* Fix images inside about/story sections to keep consistent aspect ratio */
section img.rounded-premium{
  width:100%;
  object-fit:cover;
}

/* Avatar image circle fix (client testimonials) */
.testimonial-card img{
  border-radius:50%;
  object-fit:cover;
  width:55px;
  height:55px;
  flex-shrink:0;
}

/* Hero background fallback gradient if image fails to load */
.hero-slide{
  background-color:var(--dark);
  background-repeat:no-repeat;
}

/* Feature icon consistent circle sizing fix */
.feature-icon{
  flex-shrink:0;
}

/* Vehicle card image fixed height + cover to avoid stretch */
.vehicle-card img{
  width:100%;
  height:200px;
  object-fit:cover;
}

/* Sticky sidebar table small screen fix */
@media (max-width:767px){
  .sticky-sidebar{position:relative; top:0;}
  .price-table th, .price-table td{font-size:.85rem;}
}

/* Improve nav-cta button spacing on mobile */
@media (max-width:991px){
  .navbar-collapse{
    margin-top:14px; padding:18px;
    border:1px solid #dfeef9; border-radius:18px;
    background:#fff; box-shadow:0 18px 36px rgba(12,27,40,.08);
  }
  .main-nav .navbar-nav{align-items:stretch!important;}
  .main-nav .nav-link{margin:0; padding:10px 0;}
  .main-nav .dropdown-menu{
    position:static!important; transform:none!important; margin-top:6px;
    background:#f8fcff; box-shadow:none; border:1px solid #dfeef9;
  }
  .nav-cta{width:100%; flex-direction:column;}
  .nav-cta .btn{flex:1; justify-content:center;}
}


/* ================================
   POST SEARCH-FORM REMOVAL SPACING FIX
   ================================ */
.hero-slider{margin-bottom:0;}
.stats-section.mt-5{margin-top:0!important;}
.hero-slider + .stats-section{margin-top:0;}

/* Leaner header nav spacing (fewer items) */
.main-nav .navbar-nav{gap:4px;}
@media (min-width:992px){
  .main-nav .navbar-nav .nav-item{margin:0 6px;}
}


/* ================================================================
   MOBILE RESPONSIVE FIXES
   Fixes the actual sources of horizontal overflow (wide tables,
   long words, tight paddings) instead of hiding the scrollbar.
   A scrollbar only appears if something genuinely still overflows -
   that's a signal to fix, not to suppress.
   ================================================================ */

/* Nothing should be able to force the page wider than the viewport */
img, svg, video, canvas, embed, object{max-width:100%; height:auto;}
iframe{max-width:100%;}
table{max-width:100%;}

/* Long words / URLs / emails wrap instead of stretching their container */
p, li, td, th, h1, h2, h3, h4, h5, h6, a{
  overflow-wrap:break-word;
  word-wrap:break-word;
}

/* Wide tables scroll horizontally within their own box - the scrollbar
   for that box stays visible and usable, it just doesn't drag the
   whole page sideways with it. */
.table-responsive{-webkit-overflow-scrolling:touch;}

/* Fixed / rotated elements must not push the layout wider than 100vw */
.itinerary-side-btn-wrap, .float-btn{max-width:100vw;}

@media (max-width:991.98px){
  .hero-content h1{font-size:2rem;}
  .section-title h2{font-size:1.9rem;}
  .glass-card{padding:22px;}
  .cta-banner{padding:35px 22px;}
  .navbar-brand img{max-width:250px; height:auto;}
}

@media (max-width:767.98px){
  h1{font-size:1.7rem;}
  h2{font-size:1.5rem;}
  h3{font-size:1.25rem;}
  .section-title h2{font-size:1.6rem;}
  .section-title{margin-bottom:35px;}
  .py-5{padding-top:2.5rem!important; padding-bottom:2.5rem!important;}
  section,
  .breadcrumb-section,
  .stats-section,
  .site-footer{
    overflow-x:clip;
  }

  /* Buttons wrap instead of overflowing narrow screens */
  .btn{white-space:normal;}
  .btn-premium, .btn-outline-premium{padding:11px 20px; font-size:.9rem;}
  .d-flex.flex-wrap.gap-2 > .btn,
  .d-flex.flex-wrap.gap-3 > .btn{flex:1 1 auto; min-width:0;}

  /* Media blocks scale down instead of forcing width */
  .hero-slider{overflow:visible;}
  .hero-slide{
    min-height:520px;
    padding:108px 0 84px;
    align-items:flex-end;
    background-position:center center;
  }
  .hero-content{
    padding:10px 0 48px;
  }
  .hero-content h1{font-size:1.95rem; line-height:1.15;}
  .hero-content p{font-size:.98rem; margin-bottom:20px;}
  .hero-content .subtitle{font-size:.78rem; letter-spacing:1.6px;}
  .hero-actions{gap:12px!important;}
  .hero-actions .btn{flex:1 1 100%;}
  .homeHeroSwiper .swiper-pagination{bottom:12px!important;}
  .homeHeroSwiper .swiper-pagination-bullet{width:10px; height:10px;}
  .homeHeroSwiper .swiper-pagination-bullet-active{width:28px;}
  .packageHeroSwiper{height:280px!important;}
  .aos-init[data-aos="fade-left"],
  .aos-init[data-aos="fade-right"]{
    transform:translate3d(0, 24px, 0)!important;
  }
  .package-img{height:190px;}
  .destination-card{height:250px;}
  .vehicle-card img{height:170px;}
  .breadcrumb-section.has-bg{padding:38px 0;}
  .row.g-3 img.rounded-premium{height:150px!important;}
  .timeline{padding-left:28px;}
  .timeline-item::before{left:-37px;}
  .itinerary-step{padding-left:0; padding-top:52px;}
  .itinerary-step-number{left:0; top:0;}
  .destination-checks{
    display:grid;
    gap:10px;
  }
  .destination-checks label{
    margin:0;
    width:100%;
    justify-content:center;
    border-radius:14px;
  }
  .vehicle-card .d-flex.gap-2{flex-wrap:wrap;}
  .vehicle-card .d-flex.gap-2 > .btn{width:100%!important;}
  .footer-newsletter .row{text-align:center;}
  .gallery-filter-btn{flex:1 1 calc(50% - .5rem);}
  .pagination{flex-wrap:wrap; gap:.45rem;}
  .pagination .page-link{margin:0;}

  /* Sidebar becomes a normal block (already handled above 767px too) */
  .sticky-sidebar{position:static; top:auto;}

  /* Floating buttons: smaller, tighter, out of the way */
  .float-btn{width:46px; height:46px; font-size:1.15rem;}
  .whatsapp-float{bottom:16px; right:14px;}
  .call-float{bottom:72px; right:14px;}
  .back-to-top{bottom:128px; right:14px;}

  /* Custom Itinerary tab doesn't fit rotated on a phone - it becomes a
     reachable bottom-left floating pill instead, mirroring the other
     floating buttons on the opposite side. Still fully visible, not hidden. */
  .itinerary-side-btn-wrap{
    left:12px; right:auto; top:auto; bottom:16px;
    transform:none; width:auto; height:auto;
  }
  .itinerary-side-btn{
    position:static; transform:none;
    width:46px; height:46px; padding:0;
    border-radius:50%; font-size:.8rem;
    box-shadow:0 8px 20px rgba(0,0,0,.25);
  }
  .itinerary-side-btn span{display:none;}
  .itinerary-side-btn:hover{padding-bottom:0; box-shadow:0 10px 22px rgba(0,0,0,.3);}

  /* Footer tidy-up */
  .footer-newsletter form{flex-wrap:wrap;}
  .footer-newsletter form .form-control{flex:1 1 100%;}
  .footer-newsletter form .btn{flex:1 1 100%;}
  .footer-bottom .container{justify-content:center; text-align:center;}
  .payment-icons{
    display:flex;
    justify-content:center;
    flex-wrap:wrap;
    gap:10px;
  }
  .payment-icons i{margin:0;}
}

@media (max-width:575.98px){
  .glass-card, .testimonial-card{padding:18px;}
  .cta-banner{padding:28px 16px;}
  .stat-item h3{font-size:2rem;}
  .price-table th, .price-table td{font-size:.8rem; padding:.45rem .5rem;}
  .breadcrumb{font-size:.85rem; flex-wrap:wrap;}
  .hero-slide{min-height:480px; padding:96px 0 78px;}
  .hero-content h1{font-size:1.72rem;}
  .hero-content p{font-size:.93rem;}
  .packageHeroSwiper{height:240px!important;}
  .gallery-filter-btn{flex:1 1 100%;}
}
