/* ===== Change the whole colour scheme from these variables ===== */
:root{
  --primary-color:#12294d;     /* deep Himalayan indigo */
  --secondary-color:#0b1b36;
  --accent-color:#c4582f;      /* terracotta */
  --dark-color:#070f1f;
  --light-color:#f6f0e4;       /* warm cream */
  --text-color:#1d2433;
  --muted-color:#5b6475;
  --border-color:#e1d8c7;
  --wa-color:#168043;
  --radius:3px;
  --head-font:"Fraunces",Georgia,"Times New Roman",serif;
  --body-font:"Figtree",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --contour:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='420' height='420' fill='none' stroke='%23ffffff' stroke-opacity='.07' stroke-width='1.2'%3E%3Cpath d='M-20 300C60 240 120 330 200 280S340 200 440 260'/%3E%3Cpath d='M-20 260C60 200 120 290 200 240S340 160 440 220'/%3E%3Cpath d='M-20 220C60 160 120 250 200 200S340 120 440 180'/%3E%3Cpath d='M-20 180C60 120 120 210 200 160S340 80 440 140'/%3E%3Cpath d='M-20 140C60 80 120 170 200 120S340 40 440 100'/%3E%3Cpath d='M-20 340C60 280 120 370 200 320S340 240 440 300'/%3E%3Cpath d='M-20 380C60 320 120 410 200 360S340 280 440 340'/%3E%3C/svg%3E")}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:90px;-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--body-font);color:var(--text-color);line-height:1.65;background:var(--light-color);overflow-x:hidden;font-size:16px}
img{max-width:100%;height:auto;display:block}
a{color:var(--accent-color)}
h1,h2,h3{font-family:var(--head-font);font-weight:700;line-height:1.18;color:var(--secondary-color);margin:0 0 .55em;letter-spacing:-.01em}
h1{font-size:clamp(1.9rem,6vw,3.4rem)}
h2{font-size:clamp(1.55rem,4.2vw,2.4rem)}
h3{font-size:1.18rem}
p{margin:0 0 1em}
ul{margin:0;padding:0;list-style:none}
:focus-visible{outline:3px solid var(--accent-color);outline-offset:2px}
.container{width:min(1200px,100% - 32px);margin-inline:auto}
.narrow{max-width:820px}
.center{text-align:center}
.lead{font-size:1.06rem;color:var(--muted-color);max-width:66ch}
.center .lead,.sec-head .lead{margin-inline:auto}
.sec-head{text-align:center;margin-bottom:2.4rem}
.sec-head::before{content:"";display:block;width:46px;height:3px;background:var(--accent-color);margin:0 auto 16px}

/* Buttons */
.btn{display:inline-flex;align-items:center;gap:.55em;justify-content:center;min-height:48px;padding:.65em 1.4em;border-radius:var(--radius);border:2px solid transparent;font:700 .97rem var(--body-font);letter-spacing:.01em;text-decoration:none;cursor:pointer;transition:background .2s,color .2s,border-color .2s,transform .2s}
.btn:hover{transform:translateY(-1px)}
.btn-sm{min-height:42px;padding:.45em 1.05em;font-size:.92rem}
.btn-primary{background:var(--primary-color);color:#fff}.btn-primary:hover{background:var(--accent-color)}
.btn-accent{background:var(--accent-color);color:#fff}.btn-accent:hover{background:#a8461f}
.btn-outline{border-color:var(--primary-color);color:var(--primary-color);background:transparent}.btn-outline:hover{background:var(--primary-color);color:#fff}
.btn-light{background:#fff;color:var(--secondary-color)}.btn-light:hover{background:var(--light-color)}
.btn-wa{background:var(--wa-color);color:#fff}.btn-wa:hover{background:#0f6532}
.actions{display:flex;flex-wrap:wrap;gap:12px}

/* Preloader */
#preloader{position:fixed;inset:0;z-index:9999;background:var(--secondary-color) var(--contour);display:grid;place-items:center;transition:opacity .5s,visibility .5s}
#preloader.done{opacity:0;visibility:hidden}
.pl-inner{display:flex;flex-direction:column;align-items:center;gap:16px;color:#fff;text-align:center;padding:16px}
.pl-inner img{animation:zoom 1.4s ease-in-out infinite;width:110px;height:auto}
.pl-name{font:700 1.15rem var(--head-font)}
.pl-bar{width:160px;height:3px;background:rgba(255,255,255,.2);position:relative;overflow:hidden}
.pl-bar::after{content:"";position:absolute;inset:0;background:var(--accent-color);transform:translateX(-100%);animation:load 1.2s ease-in-out infinite}
@keyframes zoom{0%,100%{transform:scale(.85)}50%{transform:scale(1.12)}}
@keyframes load{to{transform:translateX(100%)}}

/* Top bar + header */
.topbar{background:var(--dark-color);color:#d9dfeb;font-size:.85rem}
.topbar .container{display:flex;justify-content:space-between;gap:12px;padding:7px 0}
.topbar a{color:#fff;text-decoration:none;font-weight:600}.topbar i{color:var(--accent-color);margin-right:6px}
.site-header{position:sticky;top:0;z-index:100;background:var(--light-color);border-bottom:1px solid var(--border-color)}
.hdr{display:flex;align-items:center;justify-content:space-between;min-height:72px;gap:12px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font:700 1.08rem var(--head-font);color:var(--secondary-color);min-width:0}
.brand img{width:48px;height:auto;flex:none}
.brand span{overflow-wrap:anywhere}
.menu-btn{display:none;background:var(--primary-color);border:0;border-radius:var(--radius);color:#fff;width:46px;height:46px;place-items:center;cursor:pointer;flex:none}
.menu-btn .i-close{display:none}
.menu-btn[aria-expanded=true] .i-open{display:none}.menu-btn[aria-expanded=true] .i-close{display:block}
nav ul{display:flex;align-items:center;gap:24px}
nav a:not(.btn){text-decoration:none;color:var(--text-color);font-weight:600;font-size:.95rem;padding:6px 0;border-bottom:2px solid transparent}
nav a:not(.btn):hover{border-color:var(--accent-color);color:var(--accent-color)}

/* Hero */
.hero{position:relative;height:min(80vh,680px);min-height:520px;background:var(--secondary-color) var(--contour);overflow:hidden;touch-action:pan-y}
.slide{position:absolute;inset:0;background:var(--secondary-color) var(--contour) center/cover no-repeat;opacity:0;visibility:hidden;transition:opacity .8s,visibility .8s;display:flex;align-items:center;padding-bottom:90px}
.slide::before{content:"";position:absolute;inset:0;background:linear-gradient(95deg,rgba(7,15,31,.9) 15%,rgba(7,15,31,.45))}
.slide.active{opacity:1;visibility:visible}
.slide-in{position:relative;color:#fff}
.slide-in h1,.slide-in h2{color:#fff;font-size:clamp(1.9rem,6vw,3.5rem);max-width:17ch}
.slide-text{max-width:54ch;font-size:1.08rem;color:#e3e8f2}
.eyebrow{display:inline-block;font:700 .8rem var(--body-font);letter-spacing:.14em;color:#fff;background:var(--accent-color);padding:5px 12px;margin-bottom:1.1em}
.h-arrow{position:absolute;top:44%;width:46px;height:46px;border-radius:50%;border:1px solid rgba(255,255,255,.55);background:rgba(7,15,31,.4);color:#fff;cursor:pointer;z-index:2}
.h-arrow:hover{background:var(--accent-color);border-color:var(--accent-color)}
.h-prev{left:14px}.h-next{right:14px}
.dots{position:absolute;bottom:118px;left:0;right:0;display:flex;justify-content:center;gap:10px;z-index:2}
.dot{width:12px;height:12px;border-radius:50%;border:2px solid #fff;background:transparent;padding:0;cursor:pointer}
.dot.active{background:var(--accent-color);border-color:var(--accent-color)}
.hero-facts{position:absolute;left:0;right:0;bottom:0;z-index:2;display:grid;grid-template-columns:repeat(4,1fr);background:rgba(7,15,31,.82);border-top:1px solid rgba(255,255,255,.12);padding-bottom:70px}
.hero-facts li{padding:14px 10px;text-align:center;color:#c9d2e3;border-right:1px solid rgba(255,255,255,.1);font-size:.85rem}
.hero-facts li:last-child{border:0}
.hero-facts strong{display:block;color:#fff;font:700 1.25rem var(--head-font)}

/* Sections */
.section{padding:clamp(52px,8vw,92px) 0}
.alt{background:#fff;background-image:none}
.pull{position:relative;margin-top:-70px;padding-top:0;background:transparent;z-index:3}
.pull .container{background:#fff;border-top:4px solid var(--accent-color);padding:clamp(22px,4vw,40px);box-shadow:0 18px 40px -22px rgba(11,27,54,.45)}
.grid{display:grid;gap:22px}
.g3{grid-template-columns:repeat(3,1fr)}
.g4{grid-template-columns:repeat(4,1fr)}
.g5{grid-template-columns:repeat(5,1fr)}
.g-pk{grid-template-columns:repeat(4,1fr)}
.two{display:grid;grid-template-columns:1.4fr 1fr;gap:40px;align-items:start}
.two>*{min-width:0}

/* Route tickets */
.ticket{background:#fff;border:1px solid var(--border-color);border-top:4px solid var(--primary-color);padding:20px;display:flex;flex-direction:column;position:relative;transition:border-color .2s,transform .2s}
.ticket:hover{border-top-color:var(--accent-color);transform:translateY(-3px)}
.ticket h3{margin-bottom:.4em}
.ticket>p{color:var(--muted-color);flex:1;font-size:.96rem}
.t-route{display:flex;align-items:center;gap:8px;font:700 .72rem var(--body-font);letter-spacing:.08em;text-transform:uppercase;color:var(--muted-color);margin-bottom:14px}
.t-route span:first-child,.t-route span:last-child{flex:none;max-width:38%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.t-line{flex:1;position:relative;height:30px;display:grid;place-items:center}
.t-line::before{content:"";position:absolute;left:0;right:0;top:50%;border-top:2px dashed var(--accent-color)}
.t-line i{position:relative;background:#fff;padding:0 6px;color:var(--accent-color);font-size:1rem}
.card-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:6px}

/* Cards */
.card{background:#fff;border:1px solid var(--border-color);border-radius:var(--radius);display:flex;flex-direction:column;overflow:hidden}
.card:hover{border-color:var(--primary-color)}
.card img{width:100%;aspect-ratio:16/10;object-fit:cover;background:var(--primary-color) var(--contour)}
.pbody{padding:18px 20px 22px;display:flex;flex-direction:column;flex:1;gap:4px}
.pbody p{color:var(--muted-color);font-size:.96rem}
.pbody .card-actions{margin-top:auto;padding-top:12px}
.link{font-weight:700;text-decoration:none;display:inline-flex;gap:6px;align-items:center;color:var(--accent-color)}.link:hover{text-decoration:underline}
.dur{font:700 .8rem var(--body-font);letter-spacing:.06em;text-transform:uppercase;color:var(--accent-color)}
.ticks li{display:flex;gap:10px;align-items:flex-start;margin-bottom:8px}
.ticks i{color:var(--accent-color);margin-top:.4em;font-size:.82em;flex:none}.ticks.x i{color:#a33}
.pbody .ticks{margin:8px 0 4px;font-size:.93rem}
.meta li{display:flex;gap:8px;color:var(--muted-color);font-size:.9rem;margin-bottom:4px}.meta i{color:var(--primary-color);margin-top:.35em}
.vcard .btn{align-self:flex-start;margin-top:10px}
.why{padding:24px;border:1px solid var(--border-color);background:#fff;position:relative}
.why i{display:grid;place-items:center;width:52px;height:52px;background:var(--primary-color);color:#fff;font-size:1.25rem;margin-bottom:14px;border-radius:var(--radius)}
.why p{color:var(--muted-color);margin:0}
.alt .why{background:var(--light-color)}

/* Reviews */
.slider-wrap{position:relative}
.rv-track{display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;scroll-behavior:smooth;-webkit-overflow-scrolling:touch}
.rv-track::-webkit-scrollbar{display:none}
.rev{flex:0 0 calc((100% - 40px)/3);scroll-snap-align:start;background:var(--light-color);border:1px solid var(--border-color);border-left:4px solid var(--accent-color);padding:24px}
.stars{color:var(--accent-color);margin-bottom:10px;display:flex;gap:3px}
.who{display:flex;flex-direction:column;font-size:.92rem}.who span{color:var(--muted-color)}
.rv-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:44px;height:44px;border-radius:50%;border:1px solid var(--border-color);background:#fff;color:var(--primary-color);cursor:pointer}
.rv-arrow:hover{background:var(--accent-color);color:#fff;border-color:var(--accent-color)}
.rv-prev{left:-18px}.rv-next{right:-18px}

/* Forms */
.booking-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:1.2rem;text-align:left}
.pull .booking-form{grid-template-columns:repeat(4,minmax(0,1fr))}
.pull .booking-form .fg.full{grid-column:1/-1}
.section:not(.pull) .booking-form{background:var(--light-color);border:1px solid var(--border-color);padding:clamp(18px,3vw,32px)}
.fg{display:flex;flex-direction:column;gap:6px;min-width:0}.fg.full{grid-column:1/-1}
label{font-weight:700;font-size:.88rem;color:var(--secondary-color)}
input,select,textarea{width:100%;min-width:0;min-height:48px;padding:10px 12px;border:1px solid #c8bfae;border-radius:var(--radius);font:inherit;font-size:16px;background:#fff;color:var(--text-color)}
input.invalid,select.invalid{border-color:#b3261e}
.form-note{grid-column:1/-1;margin:0;font-weight:700}.form-note.err{color:#b3261e}.form-note.ok{color:var(--wa-color)}

/* Inner pages */
.page-hero{background:var(--secondary-color) var(--contour);color:#fff;padding:clamp(44px,7vw,80px) 0;border-bottom:4px solid var(--accent-color)}
.page-hero h1{color:#fff;margin-bottom:.4em}.page-hero p{color:#d3dbea;max-width:62ch;margin:0}
.crumbs{display:flex;flex-wrap:wrap;gap:8px;font-size:.88rem;margin-bottom:16px;align-items:center;color:#c9d2e3}
.crumbs a{color:#fff}.crumbs .sep::after{content:"/";color:#7f8cab}
.info{border:1px solid var(--border-color);border-top:4px solid var(--accent-color);padding:22px;background:#fff;display:flex;flex-direction:column;gap:12px}
.info dl{margin:0}.info dt{font:700 .78rem var(--body-font);letter-spacing:.06em;text-transform:uppercase;color:var(--muted-color)}.info dd{margin:0 0 10px}
img.wide{width:100%;aspect-ratio:16/9;object-fit:cover;margin-bottom:1.4rem;background:var(--primary-color) var(--contour)}
.timeline{list-style:none;margin:0;padding:0 0 0 26px;border-left:3px solid var(--primary-color)}
.timeline li{margin-bottom:24px;position:relative}
.timeline li::before{content:"";position:absolute;left:-35px;top:6px;width:15px;height:15px;border-radius:50%;background:var(--accent-color);border:3px solid #fff}
.timeline h3{margin-bottom:.2em}
details{border:1px solid var(--border-color);background:#fff;margin-bottom:10px}
summary{cursor:pointer;padding:15px 18px;font-weight:700;color:var(--secondary-color)}
details p{padding:0 18px;margin:0 0 16px;color:var(--muted-color)}
.alt details{background:var(--light-color)}
.cta-band{background:var(--primary-color) var(--contour);color:#fff;padding:48px 0}
.cta-band .container{display:flex;flex-wrap:wrap;gap:24px;align-items:center;justify-content:space-between}
.cta-band h2{color:#fff;margin-bottom:.2em}.cta-band p{margin:0;color:#d3dbea}
.contact-list li{display:flex;gap:12px;margin-bottom:14px;align-items:flex-start;overflow-wrap:anywhere}
.contact-list i{margin-top:.35em;width:18px;text-align:center;color:var(--accent-color);flex:none}
.contact-list a{color:inherit}.contact-list.dark{color:var(--text-color)}.contact-list.dark a{color:var(--primary-color);font-weight:600}
.loc-block{display:flex;gap:14px;align-items:flex-start;border:1px dashed #b9ae99;padding:20px;margin-top:20px;background:#fff}
.loc-block i{font-size:1.5rem;color:var(--accent-color)}.loc-block p{margin:0}

/* Footer */
.site-footer{background:var(--dark-color);color:#c3cbdb;padding-top:60px;position:relative}
.site-footer::before{content:"";position:absolute;inset:0;background:var(--contour);opacity:.6;pointer-events:none}
.site-footer>*{position:relative}
.site-footer h3{color:#fff;font-size:1.05rem;margin-bottom:1em;padding-bottom:10px;border-bottom:2px solid var(--accent-color);display:inline-block}
.site-footer a{color:#c3cbdb;text-decoration:none}.site-footer a:hover{color:#fff}
.site-footer .brand{color:#fff;margin-bottom:14px}
.fgrid{display:grid;grid-template-columns:1.3fr .8fr 1.1fr 1.3fr 1.3fr;gap:32px}
.fgrid>*{min-width:0}
.fgrid li{margin-bottom:9px;font-size:.94rem}
.contact-list li i{color:var(--accent-color)}
.social{display:flex;gap:10px;margin-top:12px}
.social a{width:42px;height:42px;display:grid;place-items:center;border:1px solid #33425f;border-radius:50%}
.social a:hover{background:var(--accent-color);border-color:var(--accent-color)}
.copy{border-top:1px solid #1b2a47;margin-top:46px;padding:18px 0;font-size:.9rem;text-align:center}.copy p{margin:0}

/* Floating */
.float-btn{position:fixed;right:16px;z-index:90;width:54px;height:54px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:1.5rem;text-decoration:none;box-shadow:0 6px 16px rgba(0,0,0,.28)}
.float-wa{bottom:16px;background:var(--wa-color)}
.float-call{bottom:82px;background:var(--accent-color)}
.to-top{position:fixed;left:16px;bottom:16px;z-index:90;width:46px;height:46px;border:0;border-radius:50%;background:var(--primary-color);color:#fff;cursor:pointer;opacity:0;visibility:hidden;transform:translateY(10px);transition:.3s}
.to-top.show{opacity:1;visibility:visible;transform:none}

/* ===== Tablet ===== */
@media (max-width:1100px){
 .g4,.g-pk,.g5{grid-template-columns:repeat(3,1fr)}.fgrid{grid-template-columns:repeat(3,1fr)}
 .rev{flex-basis:calc((100% - 20px)/2)}.pull .booking-form{grid-template-columns:repeat(2,minmax(0,1fr))}
 nav ul{gap:16px}.rv-prev{left:-8px}.rv-next{right:-8px}
}
@media (max-width:900px){
 .menu-btn{display:grid}
 nav{position:absolute;top:100%;left:0;right:0;background:var(--light-color);border-bottom:3px solid var(--accent-color);max-height:0;overflow:hidden;visibility:hidden;transition:max-height .35s,visibility .35s}
 nav.open{max-height:80vh;visibility:visible;overflow-y:auto}
 nav ul{flex-direction:column;align-items:stretch;gap:0;padding:6px 16px 20px}
 nav li a:not(.btn){display:block;padding:15px 2px;border-bottom:1px solid var(--border-color);font-size:1.02rem}
 .nav-cta{margin-top:16px;width:100%}
 .g3,.g4,.g-pk,.g5{grid-template-columns:repeat(2,1fr)}.two{grid-template-columns:1fr;gap:28px}.fgrid{grid-template-columns:repeat(2,1fr)}
}
/* ===== Mobile ===== */
@media (max-width:600px){
 .topbar .container{justify-content:center}.topbar span{display:none}
 .hdr{min-height:64px}.brand img{width:40px}.brand span{font-size:.95rem;line-height:1.2}
 .hero{height:auto;min-height:calc(100svh - 120px);max-height:640px}
 .slide{padding:36px 0 200px;align-items:flex-start}
 .h-arrow{display:none}.dots{bottom:160px}
 .slide-text{font-size:1rem}
 .hero-facts{grid-template-columns:repeat(2,1fr);padding-bottom:30px}
 .hero-facts li{padding:10px 6px;border-bottom:1px solid rgba(255,255,255,.1)}
 .hero-facts li:nth-child(2){border-right:0}.hero-facts li:nth-child(n+3){border-bottom:0}
 .hero-facts strong{font-size:1.05rem}
 .pull{margin-top:-30px}.pull .container{width:calc(100% - 20px)}
 .g3,.g4,.g-pk,.g5{grid-template-columns:1fr}.fgrid{grid-template-columns:1fr;gap:36px}
 .booking-form,.pull .booking-form{grid-template-columns:1fr}
 .actions{flex-direction:column;align-items:stretch}.actions .btn{width:100%}
 .card-actions .btn{flex:1}
 .rev{flex-basis:100%}
 .rv-arrow{top:auto;bottom:-56px;transform:none}.rv-prev{left:calc(50% - 52px)}.rv-next{right:calc(50% - 52px)}
 .slider-wrap{margin-bottom:64px}
 .float-btn{width:50px;height:50px;right:12px}.float-call{bottom:74px}.float-wa{bottom:12px}.to-top{left:12px;bottom:12px}
 .site-footer{padding-bottom:70px}
 .cta-band .container{flex-direction:column;align-items:stretch}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* form fixes */
.fg.actions{flex-direction:row;flex-wrap:wrap;gap:12px}
.pull .container.narrow{max-width:1200px}
@media (max-width:600px){.fg.actions{flex-direction:column}.fg.actions .btn{width:100%}}
.brand img{
  width:85px !important;
  height:auto !important;
  max-width:none !important;
  flex:none;
}
.site-header{
  position:sticky;
  top:0;
  z-index:100;
  background:linear-gradient(135deg,#f8fbff 0%,#eef5fb 100%);
  border-bottom:3px solid #f4b400;
  box-shadow:0 3px 12px rgba(10,35,70,.12);
}
.site-header{
  background:linear-gradient(135deg,#D8C3A5 0%,#BFA27A 100%);
  border-bottom:3px solid #1D3557;
  box-shadow:0 4px 14px rgba(40,30,15,.18);
}
/* Premium Himalayan Header */
.site-header{
  background:#AFA68C !important;
  border-bottom:3px solid #1B3045 !important;
  box-shadow:0 4px 14px rgba(27,48,69,.18);
}

.brand{
  color:#1B3045 !important;
}

nav a:not(.btn){
  color:#1B3045 !important;
}

nav a:not(.btn):hover{
  color:#FFFFFF !important;
  border-color:#FFFFFF !important;
}
footer .brand,
footer .brand span,
footer .footer-brand,
footer .footer-brand span,
footer h3,
footer h4{
  color:#AFA68C !important;
}


/* =====================================================================
   ADVANCED ANIMATION LAYER  (added)
   Motion only: no text, colours, sizes or layout are changed.
   Remove everything from this comment to the end of the file to undo.
   ===================================================================== */
:root{--ease-out:cubic-bezier(.22,.72,.2,1);--ease-spring:cubic-bezier(.34,1.56,.64,1)}

/* ---------- 1. Scroll reveal (classes are added by js/script.js) ---------- */
.js-anim .rv{opacity:0;translate:0 34px;
  transition:opacity .85s var(--ease-out) var(--rd,0s),translate .85s var(--ease-out) var(--rd,0s),scale .85s var(--ease-out) var(--rd,0s),filter 1s var(--ease-out) var(--rd,0s)}
.js-anim .rv-left{translate:-48px 0}
.js-anim .rv-right{translate:48px 0}
.js-anim .rv-zoom{translate:0 24px;scale:.92}
.js-anim .rv-clip{translate:0 30px;scale:1.05;filter:blur(10px)}
.js-anim .rv.in{opacity:1;translate:0 0;scale:1}
.js-anim .rv-clip.in{filter:blur(0)}

/* heading accent line grows */
.js-anim .sec-head.rv::before{width:0;transition:width .9s var(--ease-out) calc(var(--rd,0s) + .25s)}
.js-anim .sec-head.rv.in::before{width:46px}

/* timeline dots pop in */
.js-anim .timeline li.rv::before{scale:0;transition:scale .6s var(--ease-spring) calc(var(--rd,0s) + .3s)}
.js-anim .timeline li.rv.in::before{scale:1}

/* review stars + tick icons pop in one by one */
@keyframes popIn{0%{scale:0;opacity:0}70%{scale:1.25;opacity:1}100%{scale:1}}
.rev.in .stars i{animation:popIn .5s var(--ease-spring) both}
.rev.in .stars i:nth-child(1){animation-delay:calc(var(--rd,0s) + .35s)}
.rev.in .stars i:nth-child(2){animation-delay:calc(var(--rd,0s) + .42s)}
.rev.in .stars i:nth-child(3){animation-delay:calc(var(--rd,0s) + .49s)}
.rev.in .stars i:nth-child(4){animation-delay:calc(var(--rd,0s) + .56s)}
.rev.in .stars i:nth-child(5){animation-delay:calc(var(--rd,0s) + .63s)}
.in .ticks li i{animation:popIn .45s var(--ease-spring) both}
.in .ticks li:nth-child(1) i{animation-delay:calc(var(--rd,0s) + .45s)}
.in .ticks li:nth-child(2) i{animation-delay:calc(var(--rd,0s) + .55s)}
.in .ticks li:nth-child(3) i{animation-delay:calc(var(--rd,0s) + .65s)}
.in .ticks li:nth-child(4) i{animation-delay:calc(var(--rd,0s) + .75s)}
.in .ticks li:nth-child(n+5) i{animation-delay:calc(var(--rd,0s) + .85s)}

/* ---------- 2. Preloader ---------- */
#preloader{transition:opacity .5s,visibility .5s,scale .8s var(--ease-out)}
#preloader.done{scale:1.08}
.pl-name{animation:heroUp .8s var(--ease-out) .2s both}
.pl-bar{animation:heroUp .8s var(--ease-out) .35s both}

/* ---------- 3. Hero ---------- */
@keyframes heroUp{from{opacity:0;translate:0 40px}to{opacity:1;translate:0 0}}
@keyframes kenburns{from{scale:1.1}to{scale:1.18}}
.slide{isolation:isolate}
.slide::after{content:"";position:absolute;inset:0;z-index:-1;background:inherit;scale:1.18;translate:0 var(--py,0px);will-change:scale,translate}
.slide.active::after{animation:kenburns 11s ease-out both}

.js-anim:not(.ready) .slide .eyebrow,
.js-anim:not(.ready) .slide h1,.js-anim:not(.ready) .slide h2,
.js-anim:not(.ready) .slide .slide-text,.js-anim:not(.ready) .slide .actions,
.js-anim:not(.ready) .hero-facts li,
.js-anim:not(.ready) .page-hero .crumbs,.js-anim:not(.ready) .page-hero h1,.js-anim:not(.ready) .page-hero p{opacity:0}

.ready .slide.active .eyebrow{animation:heroUp .8s var(--ease-out) .05s both}
.ready .slide.active h1,.ready .slide.active h2{animation:heroUp .95s var(--ease-out) .2s both}
.ready .slide.active .slide-text{animation:heroUp .95s var(--ease-out) .38s both}
.ready .slide.active .actions{animation:heroUp .95s var(--ease-out) .55s both}

.ready .hero-facts li{animation:heroUp .8s var(--ease-out) both}
.ready .hero-facts li:nth-child(1){animation-delay:.7s}
.ready .hero-facts li:nth-child(2){animation-delay:.82s}
.ready .hero-facts li:nth-child(3){animation-delay:.94s}
.ready .hero-facts li:nth-child(4){animation-delay:1.06s}
.hero-facts strong{font-variant-numeric:tabular-nums}

.dot{transition:width .45s var(--ease-out),border-radius .45s,background .3s,border-color .3s}
.dot.active{width:34px;border-radius:12px}
.h-arrow{transition:background .25s,border-color .25s,scale .3s var(--ease-spring)}
.h-arrow:hover{scale:1.12}

/* inner page banners */
.ready .page-hero .crumbs{animation:heroUp .7s var(--ease-out) .05s both}
.ready .page-hero h1{animation:heroUp .9s var(--ease-out) .18s both}
.ready .page-hero p{animation:heroUp .9s var(--ease-out) .34s both}

/* slowly drifting contour lines (same pattern, now moving) */
@keyframes drift{to{translate:420px 420px}}
.page-hero,.cta-band{position:relative;overflow:hidden;background-image:none}
.page-hero>.container,.cta-band>.container{position:relative}
.page-hero::before,.cta-band::before{content:"";position:absolute;inset:-420px;background:var(--contour);animation:drift 90s linear infinite;pointer-events:none}

/* ---------- 4. Scroll progress bar + header ---------- */
.scroll-progress{position:fixed;left:0;top:0;width:100%;height:3px;z-index:300;pointer-events:none;
  background:linear-gradient(90deg,var(--accent-color),#f0a35e);transform-origin:0 50%;transform:scaleX(var(--p,0))}
.site-header{transition:box-shadow .35s}
.site-header.is-stuck{box-shadow:0 12px 28px -10px rgba(27,48,69,.38)}
nav a:not(.btn){transition:color .25s,border-color .25s}
.brand img{transition:rotate .55s var(--ease-spring),scale .55s var(--ease-spring)}
.brand:hover img{rotate:-8deg;scale:1.08}
@keyframes fadeDown{from{opacity:0;translate:0 -18px}to{opacity:1;translate:0 0}}
@media (min-width:901px){
  .ready nav li{animation:fadeDown .6s var(--ease-out) both}
  .ready nav li:nth-child(1){animation-delay:.1s}.ready nav li:nth-child(2){animation-delay:.17s}
  .ready nav li:nth-child(3){animation-delay:.24s}.ready nav li:nth-child(4){animation-delay:.31s}
  .ready nav li:nth-child(5){animation-delay:.38s}.ready nav li:nth-child(6){animation-delay:.45s}
  .ready nav li:nth-child(7){animation-delay:.52s}
  @keyframes ctaPulse{0%,100%{box-shadow:0 0 0 0 rgba(196,88,47,.45)}60%{box-shadow:0 0 0 13px rgba(196,88,47,0)}}
  .nav-cta{animation:ctaPulse 2.8s ease-in-out 2s infinite}
}

/* ---------- 5. Buttons ---------- */
.btn{position:relative;overflow:hidden;transition:background .2s,color .2s,border-color .2s,transform .2s,box-shadow .3s,translate .3s var(--ease-out)}
.btn::after{content:"";position:absolute;top:0;left:-75%;width:50%;height:100%;pointer-events:none;
  background:linear-gradient(105deg,transparent,rgba(255,255,255,.38),transparent);transform:skewX(-20deg);transition:left .75s var(--ease-out)}
.btn:hover::after{left:135%}
.btn:active{transform:translateY(1px) scale(.97)}
.btn-primary:hover{box-shadow:0 12px 22px -12px rgba(18,41,77,.6)}
.btn-accent:hover{box-shadow:0 12px 22px -12px rgba(196,88,47,.7)}
.btn-wa:hover{box-shadow:0 12px 22px -12px rgba(22,128,67,.7)}
.btn .ripple{position:absolute;border-radius:50%;background:rgba(255,255,255,.45);pointer-events:none;scale:0;animation:ripple .65s ease-out forwards}
@keyframes ripple{to{scale:3.2;opacity:0}}
.link i{transition:translate .25s var(--ease-out)}
.link:hover i{translate:5px 0}

/* ---------- 6. Cards, tickets, features, reviews ---------- */
.tilt{position:relative;--mx:50%;--my:50%}
.card{position:relative;transition:transform .35s var(--ease-out),box-shadow .35s,border-color .2s}
.card:hover{transform:translateY(-6px);box-shadow:0 24px 40px -24px rgba(11,27,54,.55)}
.card img{transition:scale .9s var(--ease-out)}
.card:hover img{scale:1.08}
.ticket{transition:border-color .2s,transform .2s,box-shadow .3s}
.ticket:hover{box-shadow:0 20px 34px -22px rgba(11,27,54,.5)}
.why{transition:transform .35s var(--ease-out),box-shadow .35s,border-color .25s}
.why:hover{transform:translateY(-6px);box-shadow:0 22px 36px -24px rgba(11,27,54,.5);border-color:var(--accent-color)}
.why i{transition:background .3s,rotate .5s var(--ease-spring),scale .5s var(--ease-spring)}
.why:hover i{background:var(--accent-color);rotate:-8deg;scale:1.1}
.rev{transition:transform .35s var(--ease-out),box-shadow .35s}
.rev:hover{transform:translateY(-5px);box-shadow:0 20px 34px -24px rgba(11,27,54,.5)}
.rv-arrow{transition:background .25s,color .25s,border-color .25s,scale .3s var(--ease-spring)}
.rv-arrow:hover{scale:1.12}

@media (hover:hover) and (pointer:fine){
  .tilt:hover{transform:perspective(900px) translateY(-6px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg))}
}
.tilt::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .35s;
  background:radial-gradient(260px circle at var(--mx) var(--my),rgba(196,88,47,.12),transparent 62%)}
.tilt:hover::after{opacity:1}

/* route ticket: the little icon travels along the dashed line on hover */
@keyframes travel{from{left:-32%}to{left:32%}}
.ticket:hover .t-line i{animation:travel 1.7s ease-in-out infinite alternate}

/* ---------- 7. Forms + FAQ ---------- */
input,select,textarea{transition:border-color .25s,box-shadow .25s}
input:focus,select:focus,textarea:focus{border-color:var(--accent-color);box-shadow:0 0 0 4px rgba(196,88,47,.16)}
.fg label{transition:color .25s}
.fg:focus-within label{color:var(--accent-color)}
@keyframes shake{20%{translate:-7px 0}40%{translate:6px 0}60%{translate:-4px 0}80%{translate:3px 0}}
input.invalid,select.invalid{animation:shake .45s}
.form-note.err,.form-note.ok{animation:heroUp .5s var(--ease-out) both}

details{transition:border-color .25s,box-shadow .3s}
details[open]{border-color:var(--accent-color);box-shadow:0 14px 28px -20px rgba(11,27,54,.5)}
details[open]>p{animation:fadeDown .45s var(--ease-out)}
summary{transition:color .25s,padding-left .25s var(--ease-out)}
summary:hover{color:var(--accent-color);padding-left:24px}
@supports (interpolate-size:allow-keywords){
  details{interpolate-size:allow-keywords}
  details::details-content{block-size:0;overflow:clip;transition:block-size .4s var(--ease-out),content-visibility .4s allow-discrete}
  details[open]::details-content{block-size:auto}
}

/* ---------- 8. Footer + floating buttons ---------- */
.fgrid li a{background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;transition:background-size .35s var(--ease-out),color .2s}
.fgrid li a:hover{background-size:100% 1px}
.social a{transition:background .25s,border-color .25s,translate .35s var(--ease-spring),scale .35s var(--ease-spring)}
.social a:hover{translate:0 -5px;scale:1.1}

@keyframes ring{0%{scale:1;opacity:.55}100%{scale:1.9;opacity:0}}
@keyframes ringShake{0%,68%,100%{rotate:0deg}72%{rotate:-18deg}77%{rotate:16deg}82%{rotate:-13deg}87%{rotate:9deg}92%{rotate:-5deg}}
.float-btn{transition:scale .3s var(--ease-spring)}
.float-btn:hover{scale:1.1}
.float-btn::before{content:"";position:absolute;inset:0;border-radius:50%;background:inherit;z-index:-1;pointer-events:none;animation:ring 2.4s ease-out infinite}
.float-wa::before{animation-delay:1s}
.float-call i{animation:ringShake 3.6s ease-in-out infinite}
.to-top:hover{translate:0 -3px}

@media print{
  .js-anim .rv{opacity:1!important;translate:none!important;scale:none!important;filter:none!important}
  .scroll-progress{display:none}
}
.site-footer{overflow:hidden}

