/* ==========================================================================
   Explore Heaven Kashmir — Design System
   Sections: 1.Variables 2.Reset/Base 3.Typography 4.Utilities 5.Buttons
   6.Header/Nav 7.Preloader 8.Hero 9.Trip Planner 10.Cards 11.Sections
   12.Forms 13.Footer 14.Animations 15.Responsive 16.Accessibility
   ========================================================================== */

/* 1. VARIABLES ------------------------------------------------------------ */
:root{
  /* ladakhkashmirexpress.com-inspired palette (sun/light mode) */
  --pine:#0E5549;
  --forest:#0E5549;
  --saffron:#D9782D;
  --chinar:#A53A2A;
  --snow:#FBFAF6;
  --cream:#F4EBDD;
  --charcoal:#132724;
  --mist:#EEF3F0;

  --forest-rgb:14,85,73;
  --saffron-rgb:217,120,45;
  --chinar-rgb:165,58,42;

  --font-heading:'Playfair Display', 'Georgia', serif;
  --font-body:'Poppins','Segoe UI',sans-serif;
  --font-script:'Caveat', cursive;

  --radius-sm:8px;
  --radius-md:16px;
  --radius-lg:28px;
  --radius-pill:100px;

  --shadow-sm:0 4px 14px rgba(13,13,13,0.08);
  --shadow-md:0 12px 32px rgba(13,13,13,0.12);
  --shadow-lg:0 24px 60px rgba(13,13,13,0.18);

  --header-h:88px;
  --header-h-scrolled:72px;
  --topbar-h:40px;
  --transition:0.35s cubic-bezier(.4,0,.2,1);
  --container-max:1320px;

  /* Reactive theme tokens (light defaults — the header brand colours above
     stay fixed on purpose; only page chrome below responds to the toggle) */
  --surface:#FBFAF6;
  --text-heading:#132724;
  --text-body:#132724;
  --text-muted:#61716D;
  --text-faint:#94A9A2;
  --accent-forest:#0E5549;
  --accent-chinar:#A53A2A;
}

/* 1b. DARK THEME ------------------------------------------------------------ */
:root[data-theme="dark"]{
  --surface:#15211A;
  --mist:#212F27;
  --text-heading:#F3F1EA;
  --text-body:#C7D2CA;
  --text-muted:#9FAEA5;
  --text-faint:#7C8B82;
  --accent-forest:#74B497;
  --accent-chinar:#E2694F;
  --shadow-sm:0 4px 14px rgba(0,0,0,.35);
  --shadow-md:0 12px 32px rgba(0,0,0,.45);
  --shadow-lg:0 24px 60px rgba(0,0,0,.6);
}

/* 2. RESET / BASE ---------------------------------------------------------- */
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth; scroll-padding-top:calc(var(--header-h) + 20px); overflow-x:hidden; width:100%;}
body{
  font-family:var(--font-body);
  color:var(--text-body);
  background:var(--surface);
  line-height:1.7;
  overflow-x:hidden;
  width:100%;
  -webkit-font-smoothing:antialiased;
  transition:background var(--transition), color var(--transition);
}
img{max-width:100%; height:auto; display:block;}
a{text-decoration:none; color:inherit;}
ul{list-style:none; margin:0; padding:0;}
button{font-family:inherit; cursor:pointer;}
input,select,textarea{font-family:inherit;}
section{position:relative;}

::selection{background:var(--saffron); color:var(--pine);}

/* Skip link */
.skip-link{
  position:absolute; left:-999px; top:0; z-index:2000;
  background:var(--pine); color:var(--snow); padding:.75rem 1.5rem;
  border-radius:0 0 var(--radius-sm) 0;
}
.skip-link:focus{left:0;}

/* Focus visibility */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, [tabindex]:focus-visible{
  outline:3px solid var(--saffron);
  outline-offset:2px;
  border-radius:4px;
}

/* 3. TYPOGRAPHY ------------------------------------------------------------ */
h1,h2,h3,h4,h5,h6{
  font-family:var(--font-heading);
  color:var(--text-heading);
  font-weight:700;
  line-height:1.2;
  margin:0 0 .75rem;
}
h1{font-size:clamp(2.2rem, 4.5vw, 3.8rem);}
h2{font-size:clamp(1.8rem, 3.2vw, 2.75rem);}
h3{font-size:clamp(1.3rem, 2vw, 1.75rem);}
p{margin:0 0 1rem; color:var(--text-body);}
.text-cream p, .on-dark p{color:rgba(248,250,247,.85);}

.section-label{
  display:inline-flex; align-items:center; gap:.5rem;
  font-family:var(--font-script);
  font-size:1.4rem;
  color:var(--saffron);
  margin-bottom:.35rem;
}
.section-label::before{content:'';width:28px;height:2px;background:var(--saffron);display:inline-block;}
.section-title{margin-bottom:.5rem;}
.section-sub{color:var(--text-muted); max-width:640px; margin-bottom:2.5rem; font-size:1.05rem;}
.section-head{margin-bottom:2.5rem;}
.section-head.text-center{max-width:720px; margin-left:auto; margin-right:auto; text-align:center;}
.section-head.text-center .section-sub{margin-left:auto;margin-right:auto;}
.section-head.text-center .section-label::before{display:none;}

.text-saffron{color:var(--saffron) !important;}
.text-forest{color:var(--accent-forest) !important;}
.text-chinar{color:var(--accent-chinar) !important;}
.bg-pine{background:var(--pine) !important;}
.bg-forest{background:var(--forest) !important;}
.bg-cream{background:var(--cream) !important;}
.bg-mist{background:var(--mist) !important;}

/* 4. UTILITIES -------------------------------------------------------------- */
.container-xl{width:100%; max-width:var(--container-max); margin:0 auto; padding:0 20px;}
.section-pad{padding:6rem 0;}
@media (max-width:767px){.section-pad{padding:3.5rem 0;}}

.divider-chinar{
  width:64px;height:64px;margin:0 auto 1.5rem;
  background:no-repeat center / contain;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cpath d='M32 4c4 10 18 12 18 24 0 6-4 10-8 12 6 2 10 8 8 14-2-6-8-8-14-6 2 6 0 12-4 14-4-2-6-8-4-14-6-2-12 0-14 6-2-6 2-12 8-14-4-2-8-6-8-12C14 16 28 14 32 4z' fill='%23D99A2B'/%3E%3C/svg%3E");
  opacity:.85;
}
.pattern-mountains{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='40' viewBox='0 0 200 40'%3E%3Cpath d='M0 40 L20 10 L35 28 L55 4 L75 30 L95 14 L115 34 L135 8 L155 26 L175 12 L200 40 Z' fill='none' stroke='%230D0D0D' stroke-opacity='0.08' stroke-width='2'/%3E%3C/svg%3E");
  background-repeat:repeat-x; background-position:bottom;
}
.rounded-organic{border-radius:60% 40% 45% 55% / 55% 45% 55% 45%;}
.overlay-dark{position:relative;}
.overlay-dark::before{
  content:'';position:absolute;inset:0;
  background:linear-gradient(180deg, rgba(10,10,10,.15) 0%, rgba(10,10,10,.55) 65%, rgba(10,10,10,.85) 100%);
  z-index:1;
}
.overlay-dark > *{position:relative; z-index:2;}

.badge-pill{
  display:inline-flex; align-items:center; gap:.4rem;
  background:rgba(var(--saffron-rgb),.15); color:var(--saffron);
  border:1px solid rgba(var(--saffron-rgb),.35);
  font-size:.78rem; font-weight:600; letter-spacing:.04em; text-transform:uppercase;
  padding:.4rem 1rem; border-radius:var(--radius-pill);
}
.rating-stars{color:var(--saffron); font-size:.85rem; letter-spacing:2px;}

.aspect-16-9{aspect-ratio:16/9; overflow:hidden;}
.aspect-4-3{aspect-ratio:4/3; overflow:hidden;}
.aspect-1-1{aspect-ratio:1/1; overflow:hidden;}
.aspect-16-9 img, .aspect-4-3 img, .aspect-1-1 img{width:100%; height:100%; object-fit:cover;}

/* 5. BUTTONS ----------------------------------------------------------------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.55rem;
  font-weight:600; font-size:.95rem; letter-spacing:.01em;
  padding:.9rem 1.9rem; border-radius:var(--radius-pill);
  border:2px solid transparent; transition:transform var(--transition), box-shadow var(--transition), background var(--transition), color var(--transition), border-color var(--transition);
  white-space:nowrap;
}
.btn:active{transform:scale(.97);}
.btn-primary{background:var(--forest); color:var(--snow); box-shadow:var(--shadow-sm);}
.btn-primary:hover{background:var(--pine); color:var(--snow); box-shadow:var(--shadow-md); transform:translateY(-2px);}
.btn-saffron{background:var(--saffron); color:var(--charcoal);}
.btn-saffron:hover{background:#c98a20; color:var(--charcoal); transform:translateY(-2px); box-shadow:var(--shadow-md);}
.btn-outline-light{border-color:rgba(248,250,247,.7); color:var(--snow); background:transparent;}
.btn-outline-light:hover{background:var(--snow); color:var(--pine); transform:translateY(-2px);}
.btn-outline-pine{border-color:var(--accent-forest); color:var(--accent-forest); background:transparent;}
.btn-outline-pine:hover{background:var(--accent-forest); color:var(--surface); transform:translateY(-2px);}
.btn-whatsapp{background:#25D366; color:#fff;}
.btn-whatsapp:hover{background:#1ebe57; color:#fff; transform:translateY(-2px); box-shadow:var(--shadow-md);}
.btn-sm{padding:.6rem 1.3rem; font-size:.85rem;}
.btn-lg{padding:1.1rem 2.4rem; font-size:1.05rem;}
.btn-link-underline{
  display:inline-flex; align-items:center; gap:.4rem; font-weight:600; color:var(--accent-forest);
  border-bottom:2px solid var(--saffron); padding-bottom:2px; transition:gap var(--transition), color var(--transition);
}
.btn-link-underline:hover{gap:.7rem; color:var(--accent-chinar);}
.btn-icon-circle{
  width:52px; height:52px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center;
  background:var(--forest); color:var(--snow); flex-shrink:0; transition:transform var(--transition), background var(--transition);
}
.btn-icon-circle:hover{background:var(--saffron); color:var(--charcoal); transform:scale(1.08);}

/* 6. HEADER / NAV -------------------------------------------------------------- */
.topbar{
  background:var(--pine); color:#DCEBE6; font-size:.85rem;
  height:var(--topbar-h); display:flex; align-items:center;
}
.topbar a{color:inherit; transition:color var(--transition);}
.topbar a:hover{color:var(--saffron);}
.topbar .divider{width:1px; height:14px; background:rgba(248,250,247,.25); display:inline-block; margin:0 .85rem;}
.topbar .social-links a{
  width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;
  border-radius:50%; background:rgba(248,250,247,.08); margin-left:.4rem; font-size:.8rem;
}
.topbar .social-links a:hover{background:var(--saffron); color:var(--pine);}

.site-header{
  /* ladakhkashmirexpress.com-inspired palette, scoped to the header only —
     pinned so the header keeps this branding regardless of the light/dark
     page toggle below (mist pinned too since dropdowns/pills inherit it) */
  --pine:#0E5549;
  --forest:#0E5549;
  --saffron:#D9782D;
  --snow:#FFFFFF;
  --mist:#EEF3F0;

  position:sticky; top:0; z-index:1600; background:rgba(251,250,246,.92);
  backdrop-filter:blur(16px); box-shadow:0 2px 18px rgba(8,61,54,.08);
  transition:box-shadow var(--transition);
}
.main-nav-wrap{height:var(--header-h); display:flex; align-items:center; justify-content:space-between; transition:height var(--transition);}
.site-header.scrolled .main-nav-wrap{height:var(--header-h-scrolled);}

.brand{display:flex; align-items:center; gap:.65rem;}
.brand-icon{
  width:46px;height:46px;border-radius:50%; overflow:hidden;
  display:flex; align-items:center; justify-content:center;
  box-shadow:var(--shadow-sm); flex-shrink:0;
}
.brand-icon img{width:100%; height:100%; object-fit:cover;}
.brand-text{line-height:1.15;}
.brand-text .name{font-family:var(--font-heading); font-weight:700; color:var(--pine); font-size:1.28rem; display:block;}
.brand-text .tag{font-family:var(--font-script); color:var(--saffron); font-size:1rem;}

.main-nav{display:flex; align-items:center; gap:2px;}
.main-nav > li{position:relative;}
.main-nav > li > a{
  display:flex; align-items:center; gap:.3rem; padding:.6rem 1.05rem; font-weight:500; font-size:.94rem;
  color:#28423D; border-radius:var(--radius-pill); transition:background var(--transition), color var(--transition);
}
.main-nav > li > a:hover, .main-nav > li.active > a{background:var(--mist); color:var(--forest);}
.main-nav .dropdown-menu{
  display:block; position:absolute; top:calc(100% + 10px); left:0; min-width:260px;
  background:var(--snow); border-radius:var(--radius-md); box-shadow:var(--shadow-lg);
  padding:.6rem; opacity:0; visibility:hidden; transform:translateY(10px);
  transition:opacity var(--transition), transform var(--transition), visibility var(--transition);
  border:1px solid var(--mist);
  margin:0; list-style:none;
}
.main-nav li.has-dropdown:hover > .dropdown-menu,
.main-nav li.has-dropdown:focus-within > .dropdown-menu{opacity:1; visibility:visible; transform:translateY(0);}
.main-nav .dropdown-menu li a{
  display:block; padding:.6rem .9rem; border-radius:var(--radius-sm); font-size:.92rem; color:#28423D;
  transition:background var(--transition), color var(--transition), padding-left var(--transition);
}
.main-nav .dropdown-menu li a:hover{background:var(--mist); color:var(--forest); padding-left:1.15rem;}
.main-nav .caret{font-size:.65rem; transition:transform var(--transition);}
.main-nav li.has-dropdown:hover .caret{transform:rotate(180deg);}

.header-actions{display:flex; align-items:center; gap:.6rem;}
.header-actions .icon-btn{
  width:44px;height:44px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;
  background:var(--mist); color:var(--pine); transition:background var(--transition), color var(--transition), transform var(--transition);
  border:none;
}
.header-actions .icon-btn:hover{background:var(--forest); color:var(--snow); transform:translateY(-2px);}
.nav-toggle{display:none; flex-direction:column; gap:5px; width:44px;height:44px; align-items:center; justify-content:center; background:var(--mist); border-radius:50%; border:none;}
.nav-toggle span{width:20px; height:2px; background:var(--pine); border-radius:2px; transition:transform var(--transition), opacity var(--transition);}
.nav-toggle.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.nav-toggle.open span:nth-child(2){opacity:0;}
.nav-toggle.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

/* Theme toggle (sun/moon switch) */
.theme-toggle{
  position:relative; display:inline-flex; align-items:center; flex-shrink:0;
  width:64px; height:36px; padding:3px; border-radius:var(--radius-pill);
  background:var(--mist); border:none; overflow:hidden;
}
.theme-toggle .tt-thumb{
  position:absolute; top:3px; left:3px; width:30px; height:30px; border-radius:50%;
  background:var(--snow); box-shadow:var(--shadow-sm); z-index:1;
  transition:transform var(--transition);
}
.theme-toggle i{
  position:relative; z-index:2; width:30px; height:30px; flex-shrink:0;
  display:inline-flex; align-items:center; justify-content:center; font-size:.85rem;
  transition:color var(--transition);
}
.theme-toggle .fa-sun{color:var(--saffron);}
.theme-toggle .fa-moon{color:var(--pine); opacity:.45;}
[data-theme="dark"] .theme-toggle .tt-thumb{transform:translateX(28px); background:var(--forest);}
[data-theme="dark"] .theme-toggle .fa-sun{opacity:.45;}
[data-theme="dark"] .theme-toggle .fa-moon{color:var(--saffron); opacity:1;}

/* Search overlay */
.search-overlay{
  position:fixed; inset:0; background:rgba(13,13,13,.97); z-index:2000;
  display:flex; align-items:center; justify-content:center; opacity:0; visibility:hidden;
  transition:opacity var(--transition), visibility var(--transition);
}
.search-overlay.open{opacity:1; visibility:visible;}
.search-overlay form{width:min(680px, 90vw);}
.search-overlay input{
  width:100%; background:transparent; border:none; border-bottom:2px solid rgba(248,250,247,.4);
  color:var(--snow); font-size:clamp(1.5rem,4vw,2.4rem); font-family:var(--font-heading); padding:.6rem 0;
}
.search-overlay input::placeholder{color:rgba(248,250,247,.5);}
.search-overlay input:focus{outline:none; border-color:var(--saffron);}
.search-overlay .close-search{
  position:absolute; top:28px; right:28px; width:48px;height:48px;border-radius:50%;
  background:rgba(248,250,247,.1); color:var(--snow); display:flex; align-items:center; justify-content:center; border:none;
}
.search-overlay .close-search:hover{background:var(--saffron); color:var(--pine);}

/* Mobile nav panel */
@media (max-width:991px){
  .main-nav-wrap{height:var(--header-h-scrolled);}
  .nav-toggle{display:flex;}
  .header-actions .icon-btn.search-btn{display:none;}
  .main-nav{
    position:fixed; top:0; right:0; width:min(360px,88vw); height:100vh; height:100dvh;
    background:var(--snow); flex-direction:column; align-items:stretch; gap:0; padding:5.2rem 1.2rem 2rem;
    overflow-y:auto; transform:translateX(100%); transition:transform var(--transition); box-shadow:var(--shadow-lg); z-index:1500;
  }
  .main-nav.open{transform:translateX(0);}
  .main-nav > li{width:100%;}
  .main-nav > li > a{width:100%; justify-content:space-between; padding:.9rem .5rem; border-bottom:1px solid var(--mist); border-radius:0;}
  .main-nav .dropdown-menu{
    position:static; opacity:1; visibility:visible; transform:none; box-shadow:none; border:none;
    max-height:0; overflow:hidden; padding:0; transition:max-height var(--transition), padding var(--transition);
    background:var(--mist); border-radius:var(--radius-sm); margin-top:0;
  }
  .main-nav li.has-dropdown.open > .dropdown-menu{max-height:600px; padding:.5rem; margin-bottom:.4rem;}
  .main-nav li.has-dropdown:hover > .dropdown-menu{max-height:0; opacity:1; visibility:visible;}
  .main-nav li.has-dropdown.open:hover > .dropdown-menu{max-height:600px;}
  .nav-overlay{position:fixed; inset:0; background:rgba(10,10,10,.5); z-index:1400; opacity:0; visibility:hidden; transition:opacity var(--transition), visibility var(--transition);}
  .nav-overlay.open{opacity:1; visibility:visible;}
}

/* 7. PRELOADER ------------------------------------------------------------------ */
#preloader{
  position:fixed; inset:0; z-index:9999; background:var(--pine);
  display:flex; align-items:center; justify-content:center; flex-direction:column; gap:1.2rem;
  transition:opacity .6s ease, visibility .6s ease;
}
#preloader.hide{opacity:0; visibility:hidden; pointer-events:none;}
.preloader-icon{position:relative; width:96px; height:96px;}
.preloader-icon svg{width:100%; height:100%;}
.preloader-ripple{
  position:absolute; left:50%; bottom:-14px; width:120px; height:20px; transform:translateX(-50%);
  border-radius:50%; border:2px solid rgba(217,154,43,.5); animation:ripple 2.2s ease-out infinite;
}
.preloader-ripple:nth-child(2){animation-delay:.7s;}
@keyframes ripple{
  0%{width:40px; opacity:1;}
  100%{width:150px; opacity:0;}
}
.preloader-text{font-family:var(--font-heading); color:var(--snow); font-size:1.3rem; letter-spacing:.03em;}
.preloader-text .script{font-family:var(--font-script); color:var(--saffron); font-size:1.5rem;}
.preloader-bar{width:200px; height:3px; background:rgba(248,250,247,.15); border-radius:3px; overflow:hidden;}
.preloader-bar span{display:block; height:100%; width:0%; background:var(--saffron); animation:loadbar 1.8s ease-in-out infinite;}
@keyframes loadbar{
  0%{width:0%; margin-left:0;}
  50%{width:70%;}
  100%{width:0%; margin-left:100%;}
}

/* 8. HERO ------------------------------------------------------------------------ */
.hero-slider{position:relative; height:100vh; min-height:560px; max-height:980px; width:100%;}
.hero-slide{position:relative; height:100%; width:100%;}
.hero-slide-bg{
  position:absolute; inset:0; background-size:cover; background-position:center;
  transform:scale(1.12); transition:transform 7s ease-out;
}
.swiper-slide-active .hero-slide-bg{transform:scale(1);}
.hero-slide::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(10,10,10,.35) 0%, rgba(10,10,10,.25) 40%, rgba(10,10,10,.75) 100%);
}
.hero-content{
  position:relative; z-index:3; height:100%; display:flex; flex-direction:column; justify-content:center;
  color:var(--snow); max-width:760px; padding:0 20px;
}
.hero-content .badge-pill{margin-bottom:1.3rem; opacity:0; transform:translateY(24px);}
.hero-content h1{
  color:var(--snow); text-shadow:0 4px 24px rgba(0,0,0,.35); font-size:clamp(2.4rem,5.5vw,4.4rem);
  opacity:0; transform:translateY(30px);
}
.hero-content p{color:rgba(248,250,247,.92); font-size:1.15rem; max-width:560px; opacity:0; transform:translateY(30px);}
.hero-content .hero-cta{display:flex; gap:1rem; flex-wrap:wrap; margin-top:.5rem; opacity:0; transform:translateY(30px);}
.swiper-slide-active .badge-pill,
.swiper-slide-active h1,
.swiper-slide-active p,
.swiper-slide-active .hero-cta{
  opacity:1; transform:translateY(0); transition:opacity .9s ease .3s, transform .9s ease .3s;
}
.swiper-slide-active h1{transition-delay:.45s;}
.swiper-slide-active p{transition-delay:.6s;}
.swiper-slide-active .hero-cta{transition-delay:.75s;}

.hero-pagination{position:absolute; bottom:190px; left:20px; z-index:4; display:flex; gap:.6rem;}
@media (min-width:768px){.hero-pagination{left:calc((100vw - var(--container-max))/2 + 20px); bottom:170px;}}
.hero-pagination .swiper-pagination-bullet{
  width:38px; height:4px; border-radius:4px; background:rgba(248,250,247,.35); opacity:1;
  position:relative; overflow:hidden;
}
.hero-pagination .swiper-pagination-bullet-active{background:rgba(248,250,247,.35);}
.hero-pagination .swiper-pagination-bullet-active::after{
  content:''; position:absolute; inset:0; background:var(--saffron); animation:heroprogress 6s linear;
}
@keyframes heroprogress{from{width:0;} to{width:100%;}}
@media (max-width:767px){
  .hero-slide .hero-content{padding-bottom:96px;}
}
.hero-scroll-hint{
  position:absolute; bottom:26px; left:50%; transform:translateX(-50%); z-index:4; color:var(--snow);
  display:flex; flex-direction:column; align-items:center; gap:.4rem; font-size:.75rem; letter-spacing:.1em;
  text-transform:uppercase; opacity:.85;
}
.hero-scroll-hint .dot{width:6px;height:6px;border-radius:50%;background:var(--saffron); animation:bounce-dot 1.6s ease-in-out infinite;}
@keyframes bounce-dot{0%,100%{transform:translateY(0);} 50%{transform:translateY(10px);}}

/* 9. TRIP PLANNER (floating search) --------------------------------------------- */
.trip-planner-wrap{position:relative; z-index:10; margin-top:-92px;}
@media (max-width:767px){.trip-planner-wrap{margin-top:-60px;}}
.trip-planner{
  background:var(--surface); border-radius:var(--radius-lg); box-shadow:var(--shadow-lg);
  padding:1.8rem; border-top:4px solid var(--saffron);
}
.trip-planner .field label{font-size:.78rem; font-weight:600; text-transform:uppercase; letter-spacing:.05em; color:var(--accent-forest); margin-bottom:.35rem; display:block;}
.trip-planner .field select, .trip-planner .field input{
  width:100%; border:1.5px solid var(--mist); border-radius:var(--radius-sm); padding:.75rem .9rem;
  background:var(--surface); font-size:.92rem; color:var(--text-body); transition:border-color var(--transition);
}
.trip-planner .field select:focus, .trip-planner .field input:focus{outline:none; border-color:var(--accent-forest);}
.trip-planner .btn-primary{width:100%; height:100%;}

/* 10. CARDS ------------------------------------------------------------------------ */
.card-elevated{background:var(--surface); border-radius:var(--radius-md); box-shadow:var(--shadow-sm); transition:box-shadow var(--transition), transform var(--transition); overflow:hidden;}
.card-elevated:hover{box-shadow:var(--shadow-md); transform:translateY(-6px);}

/* Destination card */
.destination-card{position:relative; border-radius:var(--radius-md); overflow:hidden; height:100%; min-height:340px; box-shadow:var(--shadow-sm); transition:box-shadow var(--transition);}
.destination-card img{width:100%; height:100%; object-fit:cover; position:absolute; inset:0; transition:transform .8s ease;}
.destination-card:hover img{transform:scale(1.1);}
.destination-card:hover{box-shadow:var(--shadow-lg);}
.destination-card .dc-overlay{
  position:absolute; inset:0; background:linear-gradient(180deg, rgba(10,10,10,0) 35%, rgba(10,10,10,.88) 100%);
}
.destination-card .dc-body{position:absolute; left:0; right:0; bottom:0; padding:1.5rem; color:var(--snow); z-index:2;}
.destination-card .dc-tag{font-size:.72rem; text-transform:uppercase; letter-spacing:.08em; color:var(--saffron); font-weight:600;}
.destination-card h3{color:var(--snow); margin-bottom:.3rem; font-size:1.35rem;}
.destination-card p{color:rgba(248,250,247,.85); font-size:.88rem; margin-bottom:.7rem;}
.destination-card .dc-meta{display:flex; justify-content:space-between; align-items:center; font-size:.78rem; color:rgba(248,250,247,.75); border-top:1px solid rgba(248,250,247,.2); padding-top:.7rem;}
.destination-card .dc-link{
  opacity:0; transform:translateY(8px); transition:opacity var(--transition), transform var(--transition);
  display:inline-flex; align-items:center; gap:.35rem; color:var(--saffron); font-weight:600; font-size:.85rem; margin-top:.5rem;
}
.destination-card:hover .dc-link{opacity:1; transform:translateY(0);}
.destination-grid{display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:minmax(170px, auto); gap:1.25rem;}
.destination-grid .span-2-2{grid-column:span 2; grid-row:span 2;}
.destination-grid .span-2-1{grid-column:span 2; grid-row:span 1;}
@media (max-width:991px){
  .destination-grid{grid-template-columns:repeat(2,1fr); grid-auto-rows:minmax(220px, auto);}
  .destination-grid .span-2-2{grid-column:span 2; grid-row:span 2;}
  .destination-grid .span-2-1{grid-column:span 2; grid-row:span 1;}
}
@media (max-width:575px){
  .destination-grid{grid-template-columns:1fr; grid-auto-rows:minmax(260px, auto);}
  .destination-grid .span-2-2, .destination-grid .span-2-1{grid-column:span 1; grid-row:span 1;}
}

/* Package card */
.package-card{background:var(--surface); border-radius:var(--radius-md); overflow:hidden; box-shadow:var(--shadow-sm); transition:box-shadow var(--transition), transform var(--transition); height:100%; display:flex; flex-direction:column;}
.package-card:hover{box-shadow:var(--shadow-lg); transform:translateY(-6px);}
.package-card .pc-media{position:relative; aspect-ratio:4/3; overflow:hidden;}
.package-card .pc-media img{width:100%; height:100%; object-fit:cover; transition:transform .7s ease;}
.package-card:hover .pc-media img{transform:scale(1.08);}
.package-card .pc-badge{position:absolute; top:14px; left:14px; z-index:2;}
.package-card .pc-duration{position:absolute; bottom:14px; left:14px; z-index:2; background:rgba(10,10,10,.65); color:var(--snow); font-size:.78rem; padding:.35rem .8rem; border-radius:var(--radius-pill); backdrop-filter:blur(4px);}
.package-card .pc-body{padding:1.4rem; display:flex; flex-direction:column; flex:1;}
.package-card .pc-places{font-size:.82rem; color:var(--text-muted); margin-bottom:.5rem; display:flex; align-items:center; gap:.35rem;}
.package-card h3{font-size:1.2rem; margin-bottom:.5rem;}
.package-card .pc-meta{display:flex; flex-wrap:wrap; gap:.4rem .8rem; font-size:.78rem; color:var(--text-muted); margin-bottom:.9rem; padding-bottom:.9rem; border-bottom:1px dashed var(--mist);}
.package-card .pc-meta span{display:inline-flex; align-items:center; gap:.3rem;}
.package-card .pc-footer{margin-top:auto; display:flex; align-items:flex-end; justify-content:space-between; gap:.6rem;}
.package-card .pc-price-label{font-size:.72rem; color:var(--text-faint); text-transform:uppercase; letter-spacing:.04em;}
.package-card .pc-price{font-family:var(--font-heading); font-size:1.4rem; color:var(--accent-chinar); font-weight:700;}
.package-card .pc-actions{display:flex; flex-direction:column; gap:.5rem;}

/* Experience card */
.experience-card{position:relative; border-radius:var(--radius-md); overflow:hidden; aspect-ratio:3/4; box-shadow:var(--shadow-sm);}
.experience-card img{width:100%;height:100%;object-fit:cover; transition:transform .8s ease;}
.experience-card:hover img{transform:scale(1.12);}
.experience-card .ex-overlay{position:absolute; inset:0; background:linear-gradient(180deg, rgba(10,10,10,.05) 40%, rgba(10,10,10,.92) 100%);}
.experience-card .ex-body{position:absolute; left:0; right:0; bottom:0; padding:1.3rem; color:var(--snow); z-index:2;}
.experience-card h3{color:var(--snow); font-size:1.1rem; margin-bottom:.2rem;}
.experience-card .ex-desc{
  max-height:0; overflow:hidden; opacity:0; transition:max-height var(--transition), opacity var(--transition); font-size:.85rem; color:rgba(248,250,247,.85);
}
.experience-card:hover .ex-desc, .experience-card:focus-within .ex-desc{max-height:120px; opacity:1; margin-top:.4rem;}

/* Service card */
.service-card{background:var(--surface); border-radius:var(--radius-md); overflow:hidden; box-shadow:var(--shadow-sm); transition:box-shadow var(--transition), transform var(--transition); height:100%;}
.service-card:hover{box-shadow:var(--shadow-lg); transform:translateY(-6px);}
.service-card .sc-media{aspect-ratio:16/10; overflow:hidden; position:relative;}
.service-card .sc-media img{width:100%; height:100%; object-fit:cover; transition:transform .7s ease;}
.service-card:hover .sc-media img{transform:scale(1.08);}
.service-card .sc-icon{
  width:56px;height:56px;border-radius:50%; background:var(--forest); color:var(--snow); display:flex; align-items:center; justify-content:center;
  position:absolute; bottom:-28px; left:24px; font-size:1.35rem; box-shadow:var(--shadow-md); z-index:2;
}
.service-card .sc-body{padding:2.4rem 1.4rem 1.6rem;}

/* Benefit / why-us card */
.benefit-card{text-align:center; padding:2.2rem 1.4rem; background:var(--surface); border-radius:var(--radius-md); box-shadow:var(--shadow-sm); transition:transform var(--transition), box-shadow var(--transition); height:100%;}
.benefit-card:hover{transform:translateY(-6px); box-shadow:var(--shadow-md);}
.benefit-card .bc-icon{
  width:64px;height:64px; border-radius:50%; margin:0 auto 1.1rem; display:flex; align-items:center; justify-content:center;
  background:var(--mist); color:var(--forest); font-size:1.6rem; transition:background var(--transition), color var(--transition), transform var(--transition);
}
.benefit-card:hover .bc-icon{background:var(--saffron); color:var(--charcoal); transform:rotate(-8deg) scale(1.05);}
.benefit-card h3{font-size:1.05rem;}
.benefit-card p{font-size:.88rem; margin-bottom:0;}

/* Season card */
.season-tabs{display:flex; flex-wrap:wrap; gap:.6rem; justify-content:center; margin-bottom:2.5rem;}
.season-tab-btn{
  padding:.75rem 1.6rem; border-radius:var(--radius-pill); background:var(--mist); color:var(--text-heading); font-weight:600; font-size:.9rem; border:none;
  transition:background var(--transition), color var(--transition);
}
.season-tab-btn.active, .season-tab-btn:hover{background:var(--forest); color:var(--snow);}
.season-panel{display:none;}
.season-panel.active{display:block;}
.season-panel-inner{background:var(--surface); border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-sm);}
.season-panel-inner .season-img{aspect-ratio:4/3; overflow:hidden;}
.season-panel-inner .season-img img{width:100%;height:100%;object-fit:cover;}
.season-info-row{display:flex; gap:1.5rem; flex-wrap:wrap; margin:1rem 0;}
.season-info-item{flex:1; min-width:140px;}
.season-info-item .label{font-size:.72rem; text-transform:uppercase; letter-spacing:.05em; color:var(--saffron); font-weight:700;}

/* Counter stat */
.stat-item{text-align:center;}
.stat-item .stat-num{font-family:var(--font-heading); font-size:clamp(2.2rem,4vw,3.2rem); font-weight:800; color:var(--saffron); display:flex; align-items:baseline; justify-content:center; gap:.15rem;}
.stat-item .stat-label{color:rgba(248,250,247,.8); font-size:.9rem; text-transform:uppercase; letter-spacing:.05em;}

/* Testimonial */
.testimonial-card{
  background:var(--surface); border-radius:var(--radius-md); padding:2.2rem; box-shadow:var(--shadow-sm); position:relative; height:100%;
  display:flex; flex-direction:column;
}
.testimonial-card .quote-mark{font-family:var(--font-heading); font-size:3.2rem; color:var(--mist); position:absolute; top:12px; right:24px; line-height:1;}
.testimonial-card .tc-person{display:flex; align-items:center; gap:.9rem; margin-top:1.2rem;}
.testimonial-card .tc-person img{width:54px;height:54px;border-radius:50%; object-fit:cover; border:3px solid var(--mist);}
.testimonial-card .tc-name{font-weight:700; color:var(--text-heading); font-size:.98rem;}
.testimonial-card .tc-loc{font-size:.78rem; color:var(--text-faint);}
.testimonial-card .tc-package{font-size:.75rem; color:var(--accent-forest); font-weight:600; margin-top:.15rem;}

/* Team card */
.team-card{text-align:center;}
.team-card .team-photo{width:150px; height:150px; border-radius:50%; overflow:hidden; margin:0 auto 1.1rem; box-shadow:var(--shadow-md); border:4px solid var(--snow);}
.team-card .team-photo img{width:100%;height:100%;object-fit:cover;}
.team-card h3{margin-bottom:.15rem; font-size:1.1rem;}
.team-card .role{color:var(--saffron); font-weight:600; font-size:.85rem; margin-bottom:.6rem; display:block;}

/* Blog cards */
.blog-card{background:var(--surface); border-radius:var(--radius-md); overflow:hidden; box-shadow:var(--shadow-sm); transition:box-shadow var(--transition), transform var(--transition); height:100%;}
.blog-card:hover{box-shadow:var(--shadow-md); transform:translateY(-6px);}
.blog-card .bc-media{aspect-ratio:16/10; overflow:hidden;}
.blog-card .bc-media img{width:100%;height:100%;object-fit:cover; transition:transform .7s ease;}
.blog-card:hover .bc-media img{transform:scale(1.08);}
.blog-card .bc-content{padding:1.4rem;}
.blog-card .bc-meta{display:flex; gap:.9rem; font-size:.78rem; color:var(--text-faint); margin-bottom:.6rem; flex-wrap:wrap;}
.blog-card h3{font-size:1.08rem; margin-bottom:.5rem;}
.blog-card .bc-excerpt{font-size:.9rem; color:var(--text-muted);}
.blog-featured{position:relative; border-radius:var(--radius-lg); overflow:hidden; min-height:420px; display:flex; align-items:flex-end; box-shadow:var(--shadow-md);}
.blog-featured img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
.blog-featured .bf-overlay{position:absolute; inset:0; background:linear-gradient(180deg, rgba(10,10,10,0) 30%, rgba(10,10,10,.9) 100%);}
.blog-featured .bf-body{position:relative; z-index:2; padding:2.2rem; color:var(--snow);}
.blog-featured h2{color:var(--snow); font-size:clamp(1.5rem,2.6vw,2.1rem);}

/* Gallery */
.gallery-filters{display:flex; flex-wrap:wrap; gap:.6rem; justify-content:center; margin-bottom:2.2rem;}
.gallery-filter-btn{padding:.6rem 1.4rem; border-radius:var(--radius-pill); background:var(--mist); color:var(--text-heading); font-weight:600; font-size:.85rem; border:none; transition:background var(--transition), color var(--transition);}
.gallery-filter-btn.active, .gallery-filter-btn:hover{background:var(--forest); color:var(--snow);}
.gallery-masonry{column-count:4; column-gap:1rem;}
@media (max-width:991px){.gallery-masonry{column-count:3;}}
@media (max-width:575px){.gallery-masonry{column-count:2; column-gap:.6rem;}}
.gallery-item{break-inside:avoid; margin-bottom:1rem; position:relative; border-radius:var(--radius-sm); overflow:hidden; display:block; box-shadow:var(--shadow-sm);}
.gallery-item img{width:100%; display:block; transition:transform .6s ease;}
.gallery-item .gi-overlay{
  position:absolute; inset:0; background:rgba(13,13,13,.55); opacity:0; transition:opacity var(--transition);
  display:flex; align-items:center; justify-content:center; flex-direction:column; gap:.5rem; color:var(--snow); text-align:center; padding:1rem;
}
.gallery-item:hover .gi-overlay, .gallery-item:focus-visible .gi-overlay{opacity:1;}
.gallery-item:hover img{transform:scale(1.08);}
.gallery-item .gi-icon{width:44px;height:44px;border-radius:50%;background:rgba(248,250,247,.15); display:flex; align-items:center; justify-content:center; border:1px solid rgba(248,250,247,.4);}

/* Instagram strip */
.insta-strip{display:flex; gap:1rem; overflow-x:auto; padding-bottom:1rem; scroll-snap-type:x mandatory;}
.insta-strip::-webkit-scrollbar{height:6px;}
.insta-strip::-webkit-scrollbar-thumb{background:var(--mist); border-radius:3px;}
.insta-item{flex:0 0 220px; aspect-ratio:1/1; border-radius:var(--radius-sm); overflow:hidden; position:relative; scroll-snap-align:start;}
.insta-item img{width:100%;height:100%;object-fit:cover; transition:transform .6s ease;}
.insta-item .ii-overlay{position:absolute; inset:0; background:rgba(13,13,13,.5); opacity:0; transition:opacity var(--transition); display:flex; align-items:center; justify-content:center; color:var(--snow); font-size:1.4rem;}
.insta-item:hover .ii-overlay{opacity:1;}
.insta-item:hover img{transform:scale(1.1);}

/* Video banner */
.video-banner{position:relative; min-height:480px; display:flex; align-items:center; justify-content:center; text-align:center; border-radius:var(--radius-lg); overflow:hidden; margin:0 20px;}
.video-banner .vb-bg{position:absolute; inset:0; background-size:cover; background-position:center; background-attachment:fixed;}
@media (max-width:991px){.video-banner .vb-bg{background-attachment:scroll;}}
.video-banner .vb-overlay{position:absolute; inset:0; background:rgba(10,10,10,.5);}
.video-banner .vb-content{position:relative; z-index:2; color:var(--snow); padding:2rem;}
.play-btn{
  width:88px;height:88px;border-radius:50%; background:rgba(248,250,247,.15); border:2px solid rgba(248,250,247,.6);
  display:flex; align-items:center; justify-content:center; color:var(--snow); font-size:1.6rem; margin:0 auto 1.5rem;
  position:relative; transition:background var(--transition), transform var(--transition);
}
.play-btn:hover{background:var(--saffron); color:var(--pine); transform:scale(1.08);}
.play-btn::before, .play-btn::after{content:''; position:absolute; inset:0; border-radius:50%; border:2px solid rgba(248,250,247,.5); animation:pulse-ring 2.4s ease-out infinite;}
.play-btn::after{animation-delay:1.2s;}
@keyframes pulse-ring{0%{transform:scale(1); opacity:.8;} 100%{transform:scale(1.6); opacity:0;}}

/* Offer banner */
.offer-banner{position:relative; border-radius:var(--radius-lg); overflow:hidden; margin:0 20px; padding:5rem 2rem; text-align:center;}
.offer-banner .ob-bg{position:absolute; inset:0; background-size:cover; background-position:center;}
.offer-banner .ob-overlay{position:absolute; inset:0; background:linear-gradient(120deg, rgba(13,13,13,.92), rgba(31,93,66,.75));}
.offer-banner .ob-content{position:relative; z-index:2; color:var(--snow); max-width:640px; margin:0 auto;}
.offer-banner h2{color:var(--snow);}
.offer-banner .ob-actions{display:flex; gap:1rem; justify-content:center; flex-wrap:wrap; margin-top:1.5rem;}

/* Newsletter */
.newsletter-section{position:relative; border-radius:var(--radius-lg); overflow:hidden; margin:0 20px 0; padding:4rem 2rem; text-align:center;}
.newsletter-section .ns-bg{position:absolute; inset:0; background-size:cover; background-position:center;}
.newsletter-section .ns-overlay{position:absolute; inset:0; background:rgba(13,13,13,.88);}
.newsletter-section .ns-content{position:relative; z-index:2; color:var(--snow); max-width:560px; margin:0 auto;}
.newsletter-form{display:flex; gap:.6rem; margin-top:1.5rem; flex-wrap:wrap;}
.newsletter-form input{flex:1; min-width:220px; padding:.9rem 1.2rem; border-radius:var(--radius-pill); border:none; font-size:.95rem;}
.newsletter-form input:focus{outline:2px solid var(--saffron);}
.form-feedback{margin-top:.7rem; font-size:.88rem; min-height:1.3em;}
.form-feedback.success{color:#8fd6a8;}
.form-feedback.error{color:#f2a5a5;}

/* 12. FORMS ------------------------------------------------------------------------ */
.form-control-elegant{
  width:100%; border:1.5px solid var(--mist); background:var(--surface); border-radius:var(--radius-sm);
  padding:.85rem 1rem; font-size:.94rem; color:var(--text-body); transition:border-color var(--transition);
}
.form-control-elegant:focus{outline:none; border-color:var(--accent-forest); box-shadow:0 0 0 3px rgba(var(--forest-rgb),.12);}
.form-label-elegant{font-size:.82rem; font-weight:600; color:var(--text-heading); margin-bottom:.4rem; display:block;}
.form-group{margin-bottom:1.2rem;}
.invalid-feedback-elegant{color:var(--accent-chinar); font-size:.8rem; margin-top:.35rem; display:none;}
.was-validated-field.invalid .form-control-elegant{border-color:var(--accent-chinar);}
.was-validated-field.invalid .invalid-feedback-elegant{display:block;}
.was-validated-field.valid .form-control-elegant{border-color:var(--accent-forest);}

.enquiry-card{background:var(--surface); border-radius:var(--radius-lg); box-shadow:var(--shadow-md); padding:2rem; border-top:4px solid var(--saffron);}

/* FAQ accordion */
.faq-item{border-bottom:1px solid var(--mist);}
.faq-question{
  width:100%; text-align:left; background:none; border:none; padding:1.3rem .2rem; display:flex; align-items:center; justify-content:space-between;
  font-weight:600; color:var(--text-heading); font-size:1.02rem; gap:1rem;
}
.faq-question .faq-icon{flex-shrink:0; width:32px;height:32px;border-radius:50%; background:var(--mist); display:flex; align-items:center; justify-content:center; transition:transform var(--transition), background var(--transition), color var(--transition);}
.faq-question[aria-expanded="true"] .faq-icon{transform:rotate(45deg); background:var(--saffron); color:var(--charcoal);}
.faq-answer{max-height:0; overflow:hidden; transition:max-height .4s ease;}
.faq-answer-inner{padding:0 .2rem 1.3rem; color:var(--text-muted);}

/* 13. FOOTER ------------------------------------------------------------------------- */
.site-footer{background:var(--pine); color:rgba(248,250,247,.85); position:relative; overflow:hidden;}
.site-footer::before{
  content:''; position:absolute; top:0; left:0; right:0; height:60px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='400' height='60' viewBox='0 0 400 60' preserveAspectRatio='none'%3E%3Cpath d='M0 60 L40 10 L70 40 L110 5 L150 45 L190 15 L230 50 L270 8 L310 42 L350 18 L400 60 Z' fill='%230D0D0D'/%3E%3C/svg%3E");
  background-size:100% 100%; background-repeat:repeat-x; transform:translateY(-59%);
}
.footer-top{padding:5rem 0 3rem;}
.footer-brand p{color:rgba(248,250,247,.7);}
.footer-heading{color:var(--snow); font-family:var(--font-heading); font-size:1.05rem; margin-bottom:1.3rem;}
.footer-links li{margin-bottom:.65rem;}
.footer-links a{color:rgba(248,250,247,.72); font-size:.92rem; transition:color var(--transition), padding-left var(--transition); display:inline-block;}
.footer-links a:hover{color:var(--saffron); padding-left:4px;}
.footer-contact li{display:flex; gap:.7rem; margin-bottom:1rem; font-size:.9rem; color:rgba(248,250,247,.78);}
.footer-contact i{color:var(--saffron); margin-top:3px;}
.footer-social{display:flex; gap:.6rem; margin-top:1.2rem;}
.footer-social a{width:38px;height:38px;border-radius:50%; background:rgba(248,250,247,.08); display:flex; align-items:center; justify-content:center; transition:background var(--transition), transform var(--transition);}
.footer-social a:hover{background:var(--saffron); color:var(--pine); transform:translateY(-3px);}
.footer-newsletter input{width:100%; padding:.8rem 1rem; border-radius:var(--radius-sm); border:1px solid rgba(248,250,247,.2); background:rgba(248,250,247,.06); color:var(--snow); margin-bottom:.7rem;}
.footer-newsletter input::placeholder{color:rgba(248,250,247,.5);}
.footer-bottom{border-top:1px solid rgba(248,250,247,.12); padding:1.5rem 0; font-size:.85rem;}
.footer-bottom-links{display:flex; gap:1.3rem; flex-wrap:wrap;}
.footer-bottom-links a{color:rgba(248,250,247,.65); transition:color var(--transition);}
.footer-bottom-links a:hover{color:var(--saffron);}
.trust-badges{display:flex; gap:.7rem; flex-wrap:wrap; margin-top:1rem;}
.trust-badges span{background:rgba(248,250,247,.08); padding:.4rem .8rem; border-radius:var(--radius-sm); font-size:.75rem; color:rgba(248,250,247,.7); display:inline-flex; align-items:center; gap:.35rem;}

/* Back to top */
#backToTop{
  position:fixed; right:22px; bottom:22px; width:52px; height:52px; border-radius:50%; z-index:900;
  background:var(--forest); color:var(--snow); display:flex; align-items:center; justify-content:center;
  box-shadow:var(--shadow-md); opacity:0; visibility:hidden; transform:translateY(12px);
  transition:opacity var(--transition), visibility var(--transition), transform var(--transition), background var(--transition);
  border:none;
}
#backToTop.show{opacity:1; visibility:visible; transform:translateY(0);}
#backToTop:hover{background:var(--saffron); color:var(--charcoal);}
#backToTop svg{transform:rotate(-90deg);}
#backToTop .progress-ring{position:absolute; inset:0;}
#backToTop .progress-ring circle{fill:none; stroke:rgba(248,250,247,.25); stroke-width:3;}
#backToTop .progress-ring circle.bar{stroke:var(--saffron); stroke-linecap:round; transition:stroke-dashoffset .1s linear;}

/* Sticky mobile action bar (package/blog detail pages) */
.mobile-action-bar{
  position:fixed; left:0; right:0; bottom:0; z-index:950; background:var(--surface); box-shadow:0 -6px 24px rgba(13,13,13,.15);
  display:none; padding:.7rem 1rem; gap:.7rem;
}
.mobile-action-bar a{flex:1;}
@media (max-width:767px){.mobile-action-bar{display:flex;} body.has-mobile-bar{padding-bottom:74px;}}

/* Floating WhatsApp */
.float-whatsapp{
  position:fixed; left:22px; bottom:22px; width:56px;height:56px;border-radius:50%; background:#25D366; color:#fff;
  display:flex; align-items:center; justify-content:center; font-size:1.5rem; box-shadow:var(--shadow-md); z-index:900;
  animation:wa-pulse 2.6s ease-in-out infinite;
}
@keyframes wa-pulse{0%,100%{box-shadow:0 0 0 0 rgba(37,211,102,.45), var(--shadow-md);} 50%{box-shadow:0 0 0 10px rgba(37,211,102,0), var(--shadow-md);}}
@media (max-width:767px){.float-whatsapp{bottom:88px;}}

/* 11. PAGE HEADER (inner pages) --------------------------------------------------- */
.page-header{
  position:relative; min-height:340px; display:flex; align-items:center; background-size:cover; background-position:center;
  background-attachment:scroll;
}
.page-header::before{content:''; position:absolute; inset:0; background:linear-gradient(180deg, rgba(10,10,10,.55), rgba(13,13,13,.82));}
.page-header .ph-content{position:relative; z-index:2; color:var(--snow); padding:6rem 0 3rem;}
.page-header h1{color:var(--snow); text-shadow:0 3px 16px rgba(0,0,0,.3); margin-bottom:.6rem;}
.breadcrumb-elegant{display:flex; gap:.5rem; flex-wrap:wrap; font-size:.88rem; color:rgba(248,250,247,.75);}
.breadcrumb-elegant a{color:rgba(248,250,247,.85); transition:color var(--transition);}
.breadcrumb-elegant a:hover{color:var(--saffron);}
.breadcrumb-elegant .sep{color:var(--saffron);}
.page-header-mountains{
  position:absolute; bottom:-1px; left:0; right:0; height:44px; z-index:2;
  background:var(--surface);
}

/* Sticky enquiry sidebar (package details) */
.sticky-enquiry{position:sticky; top:calc(var(--header-h-scrolled) + 24px);}

/* Itinerary timeline */
.itinerary-day{display:flex; gap:1.2rem; padding-bottom:1.8rem; position:relative;}
.itinerary-day::before{content:''; position:absolute; left:21px; top:46px; bottom:0; width:2px; background:var(--mist);}
.itinerary-day:last-child::before{display:none;}
.itinerary-day .day-num{
  flex-shrink:0; width:44px;height:44px;border-radius:50%; background:var(--forest); color:var(--snow); display:flex; align-items:center; justify-content:center;
  font-weight:700; font-family:var(--font-heading); z-index:1;
}
.itinerary-day .day-body{padding-top:.35rem;}
.itinerary-day h4{margin-bottom:.4rem; font-size:1.05rem;}

/* Inclusion/exclusion lists */
.list-check li, .list-cross li{display:flex; gap:.6rem; margin-bottom:.65rem; font-size:.94rem; color:var(--text-muted);}
.list-check i{color:var(--accent-forest); margin-top:3px;}
.list-cross i{color:var(--accent-chinar); margin-top:3px;}

/* Tables (package filters etc.) */
.filter-bar{background:var(--surface); border-radius:var(--radius-md); box-shadow:var(--shadow-sm); padding:1.4rem; margin-bottom:2.5rem;}
.filter-chip{
  padding:.55rem 1.2rem; border-radius:var(--radius-pill); background:var(--mist); color:var(--text-heading); font-size:.85rem; font-weight:600;
  border:none; transition:background var(--transition), color var(--transition);
}
.filter-chip.active, .filter-chip:hover{background:var(--forest); color:var(--snow);}
.empty-state{text-align:center; padding:4rem 1rem;}
.empty-state i{font-size:3rem; color:var(--mist); margin-bottom:1rem;}

/* Blog sidebar */
.blog-sidebar-block{background:var(--surface); border-radius:var(--radius-md); box-shadow:var(--shadow-sm); padding:1.6rem; margin-bottom:1.6rem;}
.blog-sidebar-block h4{font-size:1.02rem; margin-bottom:1rem;}
.tag-pill{display:inline-block; padding:.4rem 1rem; border-radius:var(--radius-pill); background:var(--mist); color:var(--accent-forest); font-size:.8rem; margin:0 .4rem .4rem 0; transition:background var(--transition), color var(--transition);}
.tag-pill:hover{background:var(--forest); color:var(--snow);}
.author-box{display:flex; gap:1rem; align-items:center; background:var(--mist); border-radius:var(--radius-md); padding:1.4rem;}
.author-box img{width:64px;height:64px;border-radius:50%; object-fit:cover;}
.share-icons{display:flex; gap:.6rem;}
.share-icons a{width:40px;height:40px;border-radius:50%; background:var(--mist); color:var(--text-heading); display:flex; align-items:center; justify-content:center; transition:background var(--transition), color var(--transition);}
.share-icons a:hover{background:var(--forest); color:var(--snow);}

/* 14. ANIMATIONS -------------------------------------------------------------------- */
[data-aos]{transition-property:transform, opacity;}
.custom-cursor{position:fixed; width:14px;height:14px;border-radius:50%; background:var(--saffron); pointer-events:none; z-index:9998; mix-blend-mode:difference; transform:translate(-50%,-50%); transition:width .2s, height .2s, opacity .2s; opacity:0;}
.custom-cursor.active{opacity:1;}
.custom-cursor.grow{width:38px; height:38px;}
@media (hover:none), (pointer:coarse){.custom-cursor{display:none;}}

/* Reduced motion */
@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important;}
  .hero-slide-bg{transform:none !important;}
}

/* Skeleton / low-power fallback */
.no-animations [data-aos]{opacity:1 !important; transform:none !important;}

/* 15. MISC PAGE ELEMENTS -------------------------------------------------------------- */
.collage-wrap{position:relative;}
.collage-main{border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-md);}
.collage-badge{
  position:absolute; bottom:-30px; left:-30px; background:var(--surface); border-radius:50%; width:130px;height:130px;
  display:flex; flex-direction:column; align-items:center; justify-content:center; box-shadow:var(--shadow-lg); text-align:center; z-index:3;
}
.collage-badge .num{font-family:var(--font-heading); font-size:1.9rem; font-weight:800; color:var(--accent-chinar); line-height:1;}
.collage-badge .lbl{font-size:.68rem; text-transform:uppercase; letter-spacing:.03em; color:var(--text-heading); font-weight:600;}
.collage-float{
  position:absolute; top:-24px; right:-24px; width:160px; border-radius:var(--radius-md); overflow:hidden; box-shadow:var(--shadow-lg);
  border:6px solid var(--snow); z-index:3;
}
@media (max-width:767px){.collage-badge{width:100px;height:100px; left:-14px; bottom:-18px;} .collage-float{width:110px; top:-14px; right:-10px;}}
.checklist li{display:flex; gap:.7rem; align-items:flex-start; margin-bottom:.9rem;}
.checklist i{color:var(--accent-forest); background:var(--mist); width:26px;height:26px;border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:.7rem; flex-shrink:0; margin-top:2px;}

.error-page{min-height:70vh; display:flex; align-items:center; justify-content:center; text-align:center; padding:4rem 1rem;}
.error-page .code{font-family:var(--font-heading); font-size:clamp(5rem,14vw,9rem); color:var(--mist); font-weight:800; line-height:1;}

.map-placeholder{position:relative; border-radius:var(--radius-md); overflow:hidden; aspect-ratio:16/9; background:var(--mist);}
.map-placeholder iframe{width:100%;height:100%;border:0;}

/* Sitemap page */
.sitemap-col ul{margin-bottom:1.5rem;}
.sitemap-col li{margin-bottom:.5rem;}
.sitemap-col a{color:var(--accent-forest); font-size:.95rem;}
.sitemap-col a:hover{text-decoration:underline;}

/* lightGallery must always sit above the sticky header and search overlay */
.lg-outer, .lg-backdrop{z-index:2200 !important;}

/* 16. RESPONSIVE TUNING --------------------------------------------------------------- */
@media (max-width:575px){
  .container-xl{padding:0 16px;}
  .hero-content{padding-left:16px; padding-right:16px;}
  .newsletter-section, .offer-banner, .video-banner{margin:0 16px;}
}
