:root{
  --indigo:#1A2238;
  --indigo-deep:#10142A;
  --gold:#D4A24C;
  --gold-soft:#E8C988;
  --ivory:#F7F2E9;
  --ivory-dim:#EFE7D6;
  --maroon:#6B1E2E;
  --charcoal:#2B2B2B;
  --line:rgba(26,34,56,0.14);
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  background:var(--ivory);
  color:var(--charcoal);
  font-family:'Public Sans', sans-serif;
  font-weight:400;
  line-height:1.6;
  overflow-x:hidden;
}
h1,h2,h3,h4{
  font-family:'Fraunces', serif;
  font-weight:500;
  color:var(--indigo);
  letter-spacing:-0.01em;
}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
.wrap{max-width:1280px; margin:0 auto; padding:0 40px;}
@media (max-width:700px){ .wrap{padding:0 22px;} }

/* ===== Focus visibility ===== */
a:focus-visible, button:focus-visible{
  outline:2px solid var(--gold); outline-offset:3px;
}

@media (prefers-reduced-motion: reduce){
  *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; scroll-behavior:auto !important;}
}

/* ===== Header ===== */
header{
  position:fixed; top:0; left:0; right:0; z-index:200;
  display:flex; align-items:center; justify-content:space-between;
  padding:26px 40px;
  transition:background 0.4s ease, padding 0.4s ease, box-shadow .4s ease;
}
header.scrolled{
  background:rgba(247,242,233,0.92);
  backdrop-filter:blur(10px);
  padding:14px 40px;
  box-shadow:0 1px 0 var(--line);
}
.logo{
  font-family:'Fraunces', serif;
  font-size:1.45rem;
  font-weight:500;
  color:var(--ivory);
  letter-spacing:0.01em;
  transition:color .4s ease, opacity .3s ease;
  display:flex; align-items:center; gap:10px;
}
header.scrolled .logo{color:var(--indigo);}
.logo .mark{color:var(--gold); font-style:italic; font-weight:400;}
.logo img{height:40px; width:auto; display:block;}
header .logo img{height:60px; transition:height .4s ease;}
header.scrolled .logo img{height:48px;}
nav{display:flex; align-items:center; gap:38px;}
nav a.nav-link{
  color:var(--ivory);
  font-size:0.92rem;
  letter-spacing:0.03em;
  text-transform:uppercase;
  font-weight:500;
  position:relative;
  transition:color .4s ease;
}
header.scrolled nav a.nav-link{color:var(--indigo);}
nav a.nav-link::after{
  content:''; position:absolute; left:0; bottom:-6px; height:1px; width:0;
  background:var(--gold); transition:width .3s ease;
}
nav a.nav-link:hover::after{width:100%;}
.nav-links{display:flex; gap:34px;}
.enquire-btn{
  border:1px solid var(--gold);
  color:var(--ivory);
  background:transparent;
  padding:10px 22px;
  font-size:0.85rem;
  letter-spacing:0.05em;
  text-transform:uppercase;
  transition:all .35s ease;
  font-weight:500;
  cursor:pointer;
}
header.scrolled .enquire-btn{color:var(--indigo); border-color:var(--indigo);}
.enquire-btn:hover{background:var(--gold); color:var(--indigo-deep); border-color:var(--gold);}

/* ===== Hamburger (mobile) ===== */
.hamburger{
  display:none;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:6px;
  width:36px; height:36px;
  background:transparent;
  border:none;
  cursor:pointer;
  z-index:210;
  flex-shrink:0;
}
.hamburger span{
  display:block;
  width:26px; height:2px;
  background:var(--ivory);
  transition:background .4s ease, transform .3s ease, opacity .3s ease;
}
header.scrolled .hamburger span{background:var(--indigo);}
.hamburger.open span:nth-child(1){transform:translateY(8px) rotate(45deg);}
.hamburger.open span:nth-child(2){opacity:0;}
.hamburger.open span:nth-child(3){transform:translateY(-8px) rotate(-45deg);}
.hamburger.open span, header.scrolled .hamburger.open span{background:var(--ivory);}

.nav-logo{display:none;}

.nav-backdrop{
  position:fixed; inset:0;
  background:rgba(16,20,42,0.55);
  opacity:0; pointer-events:none;
  transition:opacity .35s ease;
  z-index:204;
}
.nav-backdrop.open{opacity:1; pointer-events:auto;}

body.nav-locked{overflow:hidden;}

@media (max-width:1200px){
  header{padding:18px 22px;}
  header.scrolled{padding:12px 22px;}
  .logo{font-size:1.1rem;}
  header .logo img{height:56px;}
  header.scrolled .logo img{height:40px;}
  .hamburger{display:flex;}
  body.nav-locked header .logo{opacity:0; pointer-events:none;}
  nav{
    position:fixed; top:0; right:0;
    height:100vh;
    width:min(80vw, 320px);
    background:var(--indigo-deep);
    flex-direction:column;
    align-items:flex-start;
    justify-content:flex-start;
    padding:90px 40px 50px;
    transform:translateX(100%);
    transition:transform .45s ease;
    z-index:205;
    box-shadow:-12px 0 40px rgba(0,0,0,0.3);
  }
  nav.nav-open{transform:translateX(0);}
  .nav-logo{
    display:flex; align-items:center; gap:12px;
    margin-bottom:56px;
    font-family:'Fraunces', serif; font-size:1.15rem; font-weight:500;
    color:var(--ivory);
  }
  .nav-logo img{height:46px; width:auto;}
  .nav-logo .mark{color:var(--gold); font-style:italic; font-weight:400;}
  .nav-links{flex-direction:column; align-items:flex-start; gap:28px; margin-bottom:56px;}
  nav a.nav-link, header.scrolled nav a.nav-link{color:var(--ivory); font-size:1.05rem;}
  nav .enquire-btn, header.scrolled nav .enquire-btn{color:var(--ivory); border-color:var(--gold); width:100%; text-align:center;}
}

/* ===== Hero ===== */
.hero{
  position:relative;
  min-height:100vh;
  display:flex; align-items:center;
  background:
    radial-gradient(ellipse at 75% 20%, rgba(212,162,76,0.25), transparent 55%),
    linear-gradient(160deg, var(--indigo-deep) 0%, var(--indigo) 55%, #232c4a 100%);
  overflow:hidden;
}
.hero::before{
  content:'';
  position:absolute; inset:0;
  background-image:
    radial-gradient(1px 1px at 20% 30%, rgba(247,242,233,0.5), transparent),
    radial-gradient(1px 1px at 70% 15%, rgba(247,242,233,0.4), transparent),
    radial-gradient(1px 1px at 40% 60%, rgba(247,242,233,0.3), transparent),
    radial-gradient(1px 1px at 85% 70%, rgba(247,242,233,0.4), transparent),
    radial-gradient(1px 1px at 10% 80%, rgba(247,242,233,0.3), transparent),
    radial-gradient(1px 1px at 55% 40%, rgba(247,242,233,0.35), transparent);
  background-size:600px 600px;
  opacity:0.6;
}
.hero-jali{
  position:absolute; right:-8%; top:-10%; width:70%; height:140%;
  opacity:0.08;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cg fill='none' stroke='%23F7F2E9' stroke-width='1.2'%3E%3Ccircle cx='100' cy='100' r='70'/%3E%3Ccircle cx='100' cy='100' r='40'/%3E%3Cpath d='M100 0 L100 200 M0 100 L200 100 M30 30 L170 170 M170 30 L30 170'/%3E%3C/g%3E%3C/svg%3E");
  background-size:200px 200px;
}
.hero-content{
  position:relative; z-index:2;
  max-width:1280px; margin:0 auto;
  padding:0 40px;
  width:100%;
}
.hero-eyebrow{
  color:var(--gold-soft);
  font-size:0.85rem;
  letter-spacing:0.22em;
  text-transform:uppercase;
  margin-bottom:26px;
  display:flex; align-items:center; gap:14px;
  font-weight:500;
}
.hero-eyebrow::before{
  content:''; width:36px; height:1px; background:var(--gold-soft);
}
.hero h1{
  color:var(--ivory);
  font-size:clamp(2.6rem, 6vw, 5.4rem);
  line-height:1.04;
  font-weight:400;
  max-width:880px;
  margin-bottom:30px;
}
.hero h1 em{
  font-style:italic; color:var(--gold-soft); font-weight:500;
}
.hero-sub{
  color:rgba(247,242,233,0.78);
  font-size:1.1rem;
  max-width:520px;
  margin-bottom:46px;
  font-weight:300;
}
.hero-ctas{display:flex; gap:20px; flex-wrap:wrap;}
.btn-primary{
  background:var(--gold);
  color:var(--indigo-deep);
  padding:16px 34px;
  font-size:0.88rem;
  letter-spacing:0.05em;
  text-transform:uppercase;
  font-weight:600;
  transition:all .35s ease;
  display:inline-block;
}
.btn-primary:hover{background:var(--gold-soft); transform:translateY(-2px);}
.btn-ghost{
  border:1px solid rgba(247,242,233,0.4);
  color:var(--ivory);
  padding:16px 34px;
  font-size:0.88rem;
  letter-spacing:0.05em;
  text-transform:uppercase;
  font-weight:500;
  transition:all .35s ease;
  display:inline-block;
}
.btn-ghost:hover{border-color:var(--ivory); background:rgba(247,242,233,0.06);}

.scroll-cue{
  position:absolute; bottom:42px; left:40px; z-index:2;
  color:rgba(247,242,233,0.6);
  font-size:0.75rem; letter-spacing:0.15em; text-transform:uppercase;
  display:flex; flex-direction:column; align-items:center; gap:10px;
}
.scroll-cue .line{width:1px; height:40px; background:linear-gradient(to bottom, var(--gold-soft), transparent); animation:pulse 2.4s ease-in-out infinite;}
@keyframes pulse{0%,100%{opacity:0.3;} 50%{opacity:1;}}

/* ===== Intro / Philosophy ===== */
.philosophy{
  padding:140px 0 120px;
  background:var(--ivory);
}
.philosophy .wrap{
  display:grid; grid-template-columns:0.9fr 1.1fr; gap:90px; align-items:start;
}
@media (max-width:900px){ .philosophy .wrap{grid-template-columns:1fr; gap:40px;} }
.philosophy-label{
  color:var(--maroon);
  font-size:0.82rem;
  letter-spacing:0.18em;
  text-transform:uppercase;
  font-weight:600;
  margin-bottom:18px;
}
.philosophy h2{
  font-size:clamp(1.9rem, 3.4vw, 2.7rem);
  line-height:1.2;
  font-weight:400;
}
.philosophy-body p{
  font-size:1.06rem;
  color:#4a4a4a;
  margin-bottom:22px;
  max-width:560px;
}
.philosophy-body strong{color:var(--indigo); font-weight:600;}
.signoff{
  margin-top:30px;
  font-family:'Fraunces', serif;
  font-style:italic;
  font-size:1.2rem;
  color:var(--maroon);
}

/* ===== Signature: The Trail (journey strip) ===== */
.trail-section{
  background:var(--indigo-deep);
  padding:120px 0 100px;
  position:relative;
  overflow:hidden;
}
.trail-header{
  text-align:center; margin-bottom:80px; position:relative; z-index:2;
}
.trail-header .philosophy-label{color:var(--gold-soft); text-align:center;}
.trail-header h2{color:var(--ivory); font-size:clamp(1.9rem,3.4vw,2.8rem); font-weight:400; max-width:700px; margin:0 auto;}
.trail-header p{color:rgba(247,242,233,0.65); max-width:560px; margin:18px auto 0; font-size:1rem;}

.trail-track{
  position:relative;
  max-width:1280px; margin:0 auto;
  padding:0 40px 40px;
}
.trail-line{
  position:absolute;
  top:128px; left:40px; right:40px;
  height:1px;
  background:linear-gradient(90deg, transparent, var(--gold) 8%, var(--gold) 92%, transparent);
}
@media (max-width:900px){ .trail-line{display:none;} }
.trail-stops{
  display:grid; grid-template-columns:repeat(5,1fr); gap:24px;
  position:relative; z-index:2;
}
@media (max-width:1100px){ .trail-stops{grid-template-columns:repeat(2,1fr);} }
@media (max-width:600px){ .trail-stops{grid-template-columns:1fr;} }
.stop{
  display:flex; flex-direction:column; align-items:center; text-align:center;
  padding-top:0;
}
.stop-dot{
  width:14px; height:14px; border-radius:50%;
  background:var(--indigo-deep);
  border:2px solid var(--gold);
  margin-bottom:18px;
  position:relative;
  transition:transform .3s ease, background .3s ease;
}
.stop:hover .stop-dot{background:var(--gold); transform:scale(1.3);}
.stop-card{
  background:rgba(247,242,233,0.04);
  border:1px solid rgba(212,162,76,0.18);
  border-radius:2px;
  padding:26px 20px 28px;
  width:100%;
  transition:border-color .3s ease, background .3s ease, transform .3s ease;
}
.stop:hover .stop-card{
  border-color:rgba(212,162,76,0.55);
  background:rgba(247,242,233,0.07);
  transform:translateY(-6px);
}
.stop-region{
  color:var(--gold-soft);
  font-size:0.72rem; letter-spacing:0.14em; text-transform:uppercase;
  margin-bottom:10px; font-weight:600;
}
.stop-card h3{
  color:var(--ivory); font-size:1.3rem; font-weight:500; margin-bottom:10px;
}
.stop-card p{
  color:rgba(247,242,233,0.62); font-size:0.9rem; line-height:1.55;
}

/* ===== Experiences grid ===== */
.experiences{
  padding:130px 0 110px;
  background:var(--ivory-dim);
}
.exp-top{
  display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:60px; gap:30px; flex-wrap:wrap;
}
.exp-top h2{font-size:clamp(1.9rem,3.4vw,2.7rem); font-weight:400; max-width:560px;}
.exp-top p{max-width:380px; color:#5a5a5a; font-size:0.98rem;}
.exp-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:2px;
  background:var(--line);
}
@media (max-width:900px){ .exp-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:560px){ .exp-grid{grid-template-columns:1fr;} }
.exp-card{
  background:var(--ivory-dim);
  padding:44px 32px;
  transition:background .35s ease;
  position:relative;
  cursor:pointer;
}
.exp-card:hover{background:var(--indigo);}
.exp-card:hover h3, .exp-card:hover p, .exp-card:hover .exp-num{color:var(--ivory);}
.exp-card:hover .exp-arrow{color:var(--gold-soft); transform:translateX(4px);}
.exp-num{
  font-family:'Fraunces', serif; font-style:italic;
  color:var(--gold); font-size:0.95rem; margin-bottom:30px; display:block;
  transition:color .35s ease;
}
.exp-card h3{font-size:1.4rem; font-weight:500; margin-bottom:12px; transition:color .35s ease;}
.exp-card p{font-size:0.93rem; color:#666; line-height:1.6; margin-bottom:20px; transition:color .35s ease;}
.exp-arrow{color:var(--maroon); font-size:0.85rem; letter-spacing:0.04em; transition:all .3s ease; display:inline-block;}

/* ===== Packages ===== */
.packages{
  padding:130px 0 110px;
  background:var(--ivory);
}
.pkg-tabs{
  display:flex; gap:14px; margin-bottom:50px;
}
.pkg-tab{
  border:1px solid var(--line);
  background:transparent;
  color:var(--charcoal);
  padding:12px 28px;
  font-size:0.85rem;
  letter-spacing:0.05em;
  text-transform:uppercase;
  font-weight:600;
  cursor:pointer;
  transition:all .3s ease;
}
.pkg-tab:hover{border-color:var(--gold);}
.pkg-tab.active{background:var(--indigo); border-color:var(--indigo); color:var(--ivory);}
.pkg-grid{
  display:none;
  grid-template-columns:repeat(4,1fr); gap:26px;
}
.pkg-grid.is-active{display:grid;}
@media (max-width:1100px){ .pkg-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:560px){ .pkg-grid{grid-template-columns:1fr;} }
.pkg-card{
  height:390px;
  perspective:1600px;
  cursor:pointer;
  outline:none;
}
.pkg-card-inner{
  position:relative;
  width:100%; height:100%;
  transition:transform .6s cubic-bezier(.4,.1,.2,1);
  transform-style:preserve-3d;
}
@media (hover:hover) and (pointer:fine){
  .pkg-card:hover .pkg-card-inner{transform:rotateY(180deg);}
}
.pkg-card.flipped .pkg-card-inner,
.pkg-card:focus-visible .pkg-card-inner{transform:rotateY(180deg);}
.pkg-card-face{
  position:absolute; inset:0;
  backface-visibility:hidden;
  -webkit-backface-visibility:hidden;
  border:1px solid var(--line);
  overflow:hidden;
}
.pkg-card-front{
  background:var(--indigo-deep);
  display:flex; flex-direction:column; justify-content:flex-end;
  padding:24px 26px;
}
.pkg-card-front img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0;
}
.pkg-face-scrim{
  position:absolute; inset:0; z-index:1;
  background:linear-gradient(180deg, rgba(16,20,42,0.05) 45%, rgba(16,20,42,0.85) 100%);
}
.pkg-face-text{position:relative; z-index:2;}
.pkg-card-front .pkg-region{color:var(--gold-soft); margin-bottom:6px;}
.pkg-card-front h3{color:var(--ivory); margin-bottom:0;}
.pkg-card-back{
  background:var(--ivory-dim);
  transform:rotateY(180deg);
  padding:30px 26px;
  display:flex; flex-direction:column;
}
.pkg-region{
  color:var(--maroon); font-size:0.75rem; letter-spacing:0.14em; text-transform:uppercase;
  font-weight:600; margin-bottom:8px;
}
.pkg-card h3{font-size:1.3rem; font-weight:500; margin-bottom:16px;}
.pkg-durations{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:16px;}
.pkg-durations span{
  border:1px solid var(--gold); color:var(--indigo);
  font-size:0.75rem; letter-spacing:0.03em; font-weight:600;
  padding:5px 12px;
}
.pkg-card-back p{font-size:0.9rem; color:#5a5a5a; line-height:1.55; margin-bottom:18px; flex-grow:1;}
.pkg-price{font-size:0.92rem; color:#5a5a5a; margin-bottom:16px;}
.pkg-price strong{font-family:'Fraunces', serif; font-size:1.2rem; color:var(--indigo); font-weight:500;}
.pkg-price span{font-size:0.8rem;}
.text-cta{color:var(--maroon); font-size:0.85rem; font-weight:600; letter-spacing:0.03em; transition:color .3s ease;}
.text-cta:hover{color:var(--gold);}
.pkg-note{margin-top:36px; font-size:0.8rem; color:#888; max-width:720px;}
@media (max-width:560px){ .pkg-card{height:420px;} }

/* ===== Testimonial band ===== */
.testimonial-band{
  background:var(--maroon);
  padding:110px 0;
  position:relative;
  overflow:hidden;
}
.testimonial-band::before{
  content:'"';
  position:absolute; top:-40px; left:50%; transform:translateX(-50%);
  font-family:'Fraunces', serif; font-size:14rem; color:rgba(247,242,233,0.06);
  line-height:1;
}
.testimonial-band .wrap{max-width:880px; text-align:center; position:relative; z-index:2;}
.testimonial-band p.quote{
  font-family:'Fraunces', serif;
  font-size:clamp(1.4rem, 2.6vw, 2.1rem);
  color:var(--ivory);
  font-weight:400; font-style:italic;
  line-height:1.45;
  margin-bottom:30px;
}
.testimonial-band .attribution{
  color:var(--gold-soft); font-size:0.85rem; letter-spacing:0.1em; text-transform:uppercase;
}

/* ===== Why us ===== */
.why{
  padding:130px 0;
  background:var(--ivory);
}
.why-top{text-align:center; max-width:640px; margin:0 auto 70px;}
.why-top h2{font-size:clamp(1.9rem,3.4vw,2.7rem); font-weight:400;}
.why-grid{
  display:grid; grid-template-columns:repeat(4,1fr); gap:50px;
}
@media (max-width:900px){ .why-grid{grid-template-columns:repeat(2,1fr); gap:40px;} }
@media (max-width:560px){ .why-grid{grid-template-columns:1fr;} }
.why-item{text-align:center;}
.why-icon{
  width:54px; height:54px; margin:0 auto 22px;
  border:1px solid var(--gold); border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  color:var(--maroon); font-family:'Fraunces',serif; font-style:italic; font-size:1.3rem;
}
.why-item h4{font-size:1.05rem; font-weight:600; margin-bottom:10px;}
.why-item p{font-size:0.88rem; color:#666;}

/* ===== CTA ===== */
.cta-final{
  background:linear-gradient(160deg, var(--indigo-deep), var(--indigo));
  padding:130px 0;
  text-align:center;
  position:relative;
  overflow:hidden;
}
.cta-final .hero-jali{opacity:0.06; right:auto; left:-10%; top:-20%;}
.cta-final .wrap{position:relative; z-index:2;}
.cta-final .philosophy-label{color:var(--gold-soft); text-align:center;}
.cta-final h2{
  color:var(--ivory); font-size:clamp(2rem,4vw,3.2rem); font-weight:400; max-width:700px; margin:0 auto 36px;
}
.cta-final h2 em{color:var(--gold-soft); font-style:italic; font-weight:500;}

/* ===== Footer ===== */
footer{
  background:var(--indigo-deep);
  color:rgba(247,242,233,0.6);
  padding:80px 0 40px;
  font-size:0.9rem;
}
.footer-grid{
  display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:50px;
  padding-bottom:60px;
  border-bottom:1px solid rgba(247,242,233,0.1);
}
@media (max-width:800px){ .footer-grid{grid-template-columns:1fr 1fr; gap:36px;} }
@media (max-width:480px){ .footer-grid{grid-template-columns:1fr;} }
.footer-grid .logo{color:var(--ivory); margin-bottom:18px;}
.footer-grid p{max-width:300px; line-height:1.7; font-size:0.88rem;}
footer h5{
  color:var(--ivory); font-size:0.78rem; letter-spacing:0.12em; text-transform:uppercase;
  margin-bottom:20px; font-weight:600; font-family:'Public Sans', sans-serif;
}
footer ul{list-style:none;}
footer ul li{margin-bottom:12px;}
footer ul li a{transition:color .3s ease;}
footer ul li a:hover{color:var(--gold-soft);}
.footer-bottom{
  display:flex; justify-content:space-between; align-items:center; padding-top:32px; flex-wrap:wrap; gap:14px;
  font-size:0.8rem;
}
.visit-count{color:var(--gold-soft); letter-spacing:0.03em;}

/* fade-in on scroll */
.reveal{opacity:0; transform:translateY(24px); transition:opacity .8s ease, transform .8s ease;}
.reveal.is-visible{opacity:1; transform:translateY(0);}
