
*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; font-size:17px; }
:root{
  --blue-900:#06142b;
  --blue-700:#0a469a;
  --blue-600:#0a5cc2;
  --blue-500:#1a72dc;
  --blue-400:#4da3ff;
  --blue-100:#e8f1fd;
  --ink:#0f1115;
  --ink-soft:#333a46;
  --stone:#5f6b7b;
  --stone-light:#97a2b3;
  --line:#dfe7f2;
  --cream:#f4f8fd;
  --paper:#ffffff;
  --gold:#5db0ff;
  --gold-dark:#1a72dc;
  --sage:#0b3f86;
  --terracotta:#0a5cc2;
  --story-dark:#06142b;
  --tours-dark:#0a2e5c;
  --nav-h:96px;

  --font-display: "Poppins", sans-serif;
  --font-body: "Manrope", sans-serif;

  --container: 1400px;
  --radius-sm: 10px;
  --radius-md: 18px;
  --radius-lg: 28px;
  --shadow-sm: 0 2px 10px rgba(6,20,43,0.07);
  --shadow-md: 0 12px 32px rgba(6,20,43,0.11);
  --shadow-lg: 0 24px 60px rgba(6,20,43,0.18);
  --ease: cubic-bezier(.22,.61,.36,1);
}

html{ height:100%; }
body{ min-height:100%; }
body{
  font-family: var(--font-body);
  color: var(--ink);
  background: var(--cream);
  line-height:1.6;
  font-size:1.03rem;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ list-style:none; }
button{ font-family:inherit; cursor:pointer; border:none; background:none; color:inherit; }
input,textarea{ font-family:inherit; font-size:inherit; color:inherit; }
h1,h2,h3,h4{ font-family:var(--font-display); font-weight:600; line-height:1.12; letter-spacing:-0.01em; }
.container{ width:100%; max-width:var(--container); margin-inline:auto; padding-inline:28px; position:relative; z-index:2; }
section{ position:relative; }
::selection{ background:var(--gold); color:var(--blue-900); }

::-webkit-scrollbar{ width:10px; }
::-webkit-scrollbar-track{ background:var(--cream); }
::-webkit-scrollbar-thumb{ background:var(--blue-500); border-radius:10px; }

a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible{
  outline:2px solid var(--gold); outline-offset:3px; border-radius:4px;
}

/* ============================================
   utility
============================================ */
.eyebrow{
  display:inline-flex; align-items:center; gap:10px;
  font-family:var(--font-body); font-weight:700; font-size:13px;
  letter-spacing:0.16em; text-transform:uppercase; color:var(--terracotta);
}
.eyebrow::before{ content:""; width:26px; height:2px; background:var(--terracotta); border-radius:2px; }
.eyebrow.on-dark{ color:var(--gold); }
.eyebrow.on-dark::before{ background:var(--gold); }

.section-pad{ padding-block: clamp(72px, 9vw, 130px); }
.section-head{ max-width:920px; margin-bottom:52px; }
.section-head h2{ font-size:clamp(1.9rem, 3.4vw, 3rem); margin-top:16px; white-space:normal; text-wrap:balance; }
.section-head p.lead{ margin-top:16px; color:var(--stone); font-size:1.1rem; white-space:normal; }
.section-head.center{ margin-inline:auto; text-align:center; }
.dark-section .section-head p.lead{ color:rgba(255,255,255,0.62); }

.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  padding:16px 30px; border-radius:999px; font-weight:700; font-size:15px;
  letter-spacing:0.01em; transition:transform .35s var(--ease), box-shadow .35s var(--ease), background-color .3s, color .3s, border-color .3s;
  white-space:nowrap;
}
.btn svg{ width:17px; height:17px; flex-shrink:0; transition:transform .35s var(--ease); }
.btn-primary{ background:linear-gradient(135deg,var(--blue-500),var(--blue-600)); color:#fff; box-shadow:0 12px 26px -8px rgba(10,92,194,0.55); }
.btn-primary:hover{ background:linear-gradient(135deg,var(--blue-600),var(--blue-700)); transform:translateY(-2px); box-shadow:0 16px 32px -8px rgba(10,92,194,0.65); }
.btn-gold{ background:linear-gradient(135deg,var(--blue-500),var(--blue-600)); color:#fff; box-shadow:0 12px 26px -8px rgba(10,92,194,0.6); }
.btn-gold:hover{ background:linear-gradient(135deg,#2b84f0,var(--blue-500)); transform:translateY(-2px); }
.btn-ghost-light{ border:1.5px solid rgba(255,255,255,0.55); color:#fff; }
.btn-ghost-light:hover{ background:rgba(255,255,255,0.12); border-color:#fff; transform:translateY(-2px); }
.btn-outline{ border:1.5px solid var(--line); color:var(--ink); background:var(--paper); }
.btn-outline:hover{ border-color:var(--blue-500); color:var(--blue-600); transform:translateY(-2px); }
.btn-outline-dark{ border:1.5px solid rgba(255,255,255,.28); color:#fff; }
.btn-outline-dark:hover{ background:rgba(255,255,255,.1); border-color:#fff; transform:translateY(-2px); }
.btn-text{ font-weight:700; font-size:14.5px; display:inline-flex; align-items:center; gap:7px; color:var(--blue-600); }
.btn-text.light{ color:#fff; }
.btn-text svg{ width:16px; height:16px; transition:transform .3s var(--ease); }
.btn-text:hover svg{ transform:translateX(4px); }
.btn:hover svg.arrow{ transform:translateX(3px); }
.btn-sm{ padding:11px 20px; font-size:13.5px; }

.reveal{ opacity:0; transform:translateY(28px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
.reveal.in-view{ opacity:1; transform:translateY(0); }
.reveal-delay-1{ transition-delay:.08s; } .reveal-delay-2{ transition-delay:.16s; } .reveal-delay-3{ transition-delay:.24s; } .reveal-delay-4{ transition-delay:.32s; }
.reveal-zoom{ opacity:0; transform:scale(.92); transition:opacity .8s var(--ease), transform .8s var(--ease); }
.reveal-zoom.in-view{ opacity:1; transform:scale(1); }
.reveal-left{ opacity:0; transform:translateX(-32px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
.reveal-left.in-view{ opacity:1; transform:translateX(0); }
.reveal-right{ opacity:0; transform:translateX(32px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
.reveal-right.in-view{ opacity:1; transform:translateX(0); }



.bg-watermark{
  position:absolute; top:-1.3vw; font-family:var(--font-display); font-weight:700;
  font-size:min(20vw,260px); line-height:0.8; white-space:nowrap; pointer-events:none;
  user-select:none; letter-spacing:-0.02em; z-index:0; opacity:0.045; color:var(--blue-900);
  will-change:transform;
}
.bg-watermark.wm-left{ left:-2vw; }
.bg-watermark.wm-right{ right:-2vw; text-align:right; }
.dark-section .bg-watermark{ color:#fff; opacity:0.05; }

.icon{ width:24px; height:24px; stroke:currentColor; fill:none; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }

/* ============================================
   2. HEADER — floating glass bar, white dropdown cards, side drawer
============================================ */
.navbar{ position:fixed; top:0; left:0; right:0; z-index:1000; padding:14px 0; pointer-events:none; transition:transform .45s var(--ease), opacity .3s ease; }
/* smart-hide: slides away while scrolling down, returns on any upward scroll (transform stays 'none' when shown so fixed dropdowns keep the viewport as their containing block) */
.navbar.nav-hidden{ transform:translateY(-130%); opacity:0; }
.navbar.nav-hidden .nav-bar{ pointer-events:none; }
@media (prefers-reduced-motion:reduce){ .navbar{ transition:none; } }
.navbar > .container{ pointer-events:none; }
.nav-bar{
  position:relative; isolation:isolate; pointer-events:auto;
  display:flex; align-items:center; gap:14px; min-height:72px; padding:8px 10px 8px 26px;
  border-radius:999px; border:1px solid rgba(10,92,194,.10);
  box-shadow:0 16px 40px -14px rgba(6,20,43,.30);
  transition:box-shadow .35s var(--ease);
}
.nav-bar::before{
  content:""; position:absolute; inset:0; z-index:-1; border-radius:inherit;
  background:rgba(255,255,255,.88); backdrop-filter:blur(18px) saturate(170%); -webkit-backdrop-filter:blur(18px) saturate(170%);
  transition:background .35s var(--ease);
}
.navbar.scrolled .nav-bar{ box-shadow:0 20px 48px -14px rgba(6,20,43,.42); }
.navbar.scrolled .nav-bar::before{ background:rgba(255,255,255,.97); }

.brand{ display:flex; align-items:center; flex-shrink:0; }
.brand img{ height:46px; width:auto; display:block; }

.nav-links{ display:flex; align-items:center; justify-content:center; flex:1 1 auto; gap:2px; align-self:stretch; min-width:0; }
.nav-links > a, .nav-item > a{
  position:relative; display:inline-flex; align-items:center; gap:6px; padding:11px 15px;
  font-size:14.5px; font-weight:600; color:var(--ink-soft); border-radius:999px; white-space:nowrap;
  transition:color .25s var(--ease), background-color .25s var(--ease);
}
.nav-links > a:hover, .nav-item:hover > a, .nav-item:focus-within > a{ color:var(--blue-600); background:var(--blue-100); }
.nav-links > a.active, .nav-item > a.active{ color:var(--blue-600); }
.nav-links > a.active::after, .nav-item > a.active::after{
  content:""; position:absolute; left:50%; bottom:3px; width:5px; height:5px; margin-left:-2.5px; border-radius:50%; background:var(--blue-600);
}
.nav-links > a{ align-self:center; }
.nav-item{ position:relative; align-self:stretch; display:flex; align-items:center; }
.nav-item .caret{ width:13px; height:13px; transition:transform .3s var(--ease); }
.nav-item:hover .caret, .nav-item:focus-within .caret{ transform:rotate(180deg); }

.dd-panel{
  position:absolute; top:100%; left:50%; padding-top:14px;
  transform:translate(-50%,8px); transform-origin:top center;
  opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity .28s var(--ease), transform .38s var(--ease), visibility .28s; z-index:1100;
}
.nav-item:hover .dd-panel, .nav-item:focus-within .dd-panel{ opacity:1; visibility:visible; pointer-events:auto; transform:translate(-50%,0); }
.dd-panel > div{
  background:#fff; border:1px solid var(--line); border-radius:22px; padding:10px;
  box-shadow:0 34px 70px -22px rgba(6,20,43,.38);
}
.dd-about, .dd-services{ left:0; transform:translate(0,8px); }
.nav-item:hover .dd-about, .nav-item:focus-within .dd-about,
.nav-item:hover .dd-services, .nav-item:focus-within .dd-services{ transform:translate(0,0); }
.dd-about > div{ width:268px; }
.dd-services > div{ width:440px; max-width:calc(100vw - 40px); }
.dd-services-grid{ display:grid; grid-template-columns:1fr 1fr; gap:2px; }
.dd-link{ display:flex; align-items:center; gap:12px; padding:10px 12px; border-radius:14px; transition:background-color .22s var(--ease); }
.dd-link:hover{ background:var(--blue-100); }
.dd-icon{
  width:40px; height:40px; border-radius:12px; flex-shrink:0; display:grid; place-items:center;
  background:linear-gradient(135deg,#eaf2fd,#d5e5fb); color:var(--blue-600); transition:background .25s var(--ease), color .25s var(--ease);
}
.dd-link:hover .dd-icon{ background:var(--blue-600); color:#fff; }
.dd-icon .icon{ width:19px; height:19px; color:inherit; }
.dd-link strong{ display:block; font-family:var(--font-display); font-size:13.5px; font-weight:600; color:var(--ink); line-height:1.3; }
.dd-link small{ font-size:11.5px; color:var(--stone); }

/* Tours mega-panel — same width as the site container, anchored to the bar */
.dd-tours{
  position:fixed; left:50%; right:auto; top:var(--dd-top, var(--nav-h));
  width:min(calc(var(--container) - 56px), calc(100vw - 32px));
}
.dd-tours > div{ width:100%; padding:12px; }
.dd-tours-inner{ padding:14px; }
.dd-tours-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:6px; }
@media (max-width:1300px){ .dd-tours-grid{ grid-template-columns:repeat(3,1fr); } }
@media (max-width:1140px){ .dd-tours-grid{ grid-template-columns:repeat(2,1fr); } }
.dd-tour{ display:flex; align-items:center; gap:12px; padding:8px; border-radius:14px; transition:background-color .22s var(--ease); min-width:0; }
.dd-tour:hover{ background:var(--blue-100); }
.dd-tour-media{ width:112px; height:80px; flex-shrink:0; border-radius:10px; position:relative; overflow:hidden; }
.dd-tour-media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .5s var(--ease); }
.dd-tour:hover .dd-tour-media img{ transform:scale(1.08); }
.dd-tour strong{ font-family:var(--font-display); font-size:13px; font-weight:600; line-height:1.3; color:var(--ink); }

.dd-hotels{ left:auto; right:0; transform:translate(0,8px); }
.nav-item:hover .dd-hotels, .nav-item:focus-within .dd-hotels{ transform:translate(0,0); }
.dd-hotels > div{ width:auto; display:flex; gap:10px; }
.dd-hotel{ display:flex; flex-direction:column; align-items:flex-start; gap:10px; width:176px; border-radius:16px; padding:9px; transition:background-color .22s var(--ease); }
.dd-hotel:hover{ background:var(--blue-100); }
.dd-hotel-media{ width:100%; height:100px; border-radius:12px; flex-shrink:0; display:grid; place-items:center; position:relative; overflow:hidden; }
.dd-hotel-media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.dd-hotel strong{ font-family:var(--font-display); font-size:13.5px; display:block; font-weight:600; color:var(--ink); }
.dd-hotel small{ font-size:11.5px; color:var(--stone); }

.nav-cta{ display:flex; align-items:center; gap:8px; flex-shrink:0; margin-left:auto; }
.nav-links ~ .nav-cta{ margin-left:0; }
.np-ico{ width:42px; height:42px; border-radius:50%; background:var(--blue-100); color:var(--blue-600); display:grid; place-items:center; flex-shrink:0; transition:background .25s, color .25s; }
.np-ico .icon{ width:19px; height:19px; }
.np-text small{ display:block; font-size:11px; color:var(--stone); line-height:1.1; }
.np-text strong{ display:block; font-family:var(--font-display); font-size:14px; font-weight:700; color:var(--ink); line-height:1.3; white-space:nowrap; }
.nav-quote{ padding:14px 24px; font-size:14px; }
@media (min-width:1360px){ .nav-phone{ display:flex; } }
@media (max-width:1240px){ .nav-links > a, .nav-item > a{ padding:10px 11px; font-size:14px; } .nav-quote{ padding:13px 18px; } }

/* toggle — pill with two-tone bars that open up on hover */
.nav-toggle{
  display:none; align-items:center; gap:10px; height:48px; padding:0 20px 0 17px; border-radius:999px; flex-shrink:0;
  background:linear-gradient(135deg,var(--blue-500),var(--blue-700)); color:#fff;
  font-family:var(--font-body); font-size:13px; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
  box-shadow:0 12px 24px -10px rgba(10,92,194,.75); transition:transform .3s var(--ease), box-shadow .3s var(--ease);
}
.nav-toggle:hover{ transform:translateY(-1px); box-shadow:0 16px 28px -10px rgba(10,92,194,.85); }
.nt-lines{ position:relative; width:20px; height:14px; display:block; flex-shrink:0; }
.nt-lines i{ position:absolute; left:0; height:2px; border-radius:2px; background:#fff; transition:width .35s var(--ease), transform .35s var(--ease); }
.nt-lines i:nth-child(1){ top:0; width:100%; }
.nt-lines i:nth-child(2){ top:6px; width:65%; background:var(--blue-400); }
.nt-lines i:nth-child(3){ top:12px; width:100%; }
.nav-toggle:hover .nt-lines i:nth-child(2){ width:100%; }
.nav-toggle[aria-expanded="true"] .nt-lines i:nth-child(1){ transform:translateY(6px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] .nt-lines i:nth-child(2){ width:0; }
.nav-toggle[aria-expanded="true"] .nt-lines i:nth-child(3){ transform:translateY(-6px) rotate(-45deg); }

/* side drawer */
.drawer-backdrop{
  position:fixed; inset:0; z-index:1190; background:rgba(3,11,23,.58); backdrop-filter:blur(5px); -webkit-backdrop-filter:blur(5px);
  opacity:0; visibility:hidden; transition:opacity .4s var(--ease), visibility .4s;
}
.drawer-backdrop.open{ opacity:1; visibility:visible; }
.drawer-backdrop{ touch-action:none; cursor:pointer; }
html.drawer-lock{ overflow:hidden; }
.mobile-drawer{
  position:fixed; top:0; right:0; bottom:0; z-index:1200; width:80%; max-width:440px;
  display:flex; flex-direction:column; padding:22px 24px 28px; overflow-y:auto; overflow-x:hidden; overscroll-behavior:contain;
  background:#13309c; color:#fff;
  transform:translateX(104%); transition:transform .55s var(--ease); box-shadow:-30px 0 80px rgba(0,0,0,.4);
  border-radius:28px 0 0 28px;
}
.mobile-drawer.open{ transform:translateX(0); }
.mobile-drawer::before{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(70% 40% at 100% 0%, rgba(77,163,255,.28), transparent 70%);
}
.md-top{ position:relative; display:flex; align-items:center; justify-content:space-between; gap:12px; padding-bottom:18px; border-bottom:1px solid rgba(255,255,255,.1); }
.md-top .brand img{ height:44px; }
.drawer-close{ width:46px; height:46px; border-radius:50%; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.14); display:grid; place-items:center; flex-shrink:0; transition:transform .45s var(--ease), background .3s; }
.drawer-close:hover{ background:var(--blue-500); transform:rotate(90deg); }
.drawer-close .icon{ color:#fff; width:19px; height:19px; }
.mobile-links{ position:relative; display:flex; flex-direction:column; margin-top:12px; counter-reset:mlink; }
.mobile-links > *{ opacity:0; transform:translateX(26px); transition:opacity .5s var(--ease), transform .5s var(--ease); }
.mobile-drawer.open .mobile-links > *{ opacity:1; transform:translateX(0); }
.mobile-drawer.open .mobile-links > *:nth-child(1){ transition-delay:.12s; }
.mobile-drawer.open .mobile-links > *:nth-child(2){ transition-delay:.17s; }
.mobile-drawer.open .mobile-links > *:nth-child(3){ transition-delay:.22s; }
.mobile-drawer.open .mobile-links > *:nth-child(4){ transition-delay:.27s; }
.mobile-drawer.open .mobile-links > *:nth-child(5){ transition-delay:.32s; }
.mobile-drawer.open .mobile-links > *:nth-child(6){ transition-delay:.37s; }
.mobile-links > a, .mobile-acc-trigger{
  counter-increment:mlink; display:flex; align-items:center; gap:14px; width:100%; text-align:left;
  font-family:var(--font-display); font-size:1.28rem; font-weight:500; color:rgba(255,255,255,.94);
  padding:15px 2px; border-bottom:1px solid rgba(255,255,255,.08); transition:color .25s, padding-left .3s var(--ease);
}
.mobile-links > a::before, .mobile-acc-trigger::before{
  content:"0" counter(mlink); font-family:var(--font-body); font-size:11px; font-weight:700; letter-spacing:.1em; color:var(--blue-400); min-width:20px;
}
.mobile-links > a:hover, .mobile-acc-trigger:hover{ color:var(--blue-400); padding-left:8px; }
.mobile-links > a.active{ color:var(--blue-400); }
.mobile-acc-trigger .caret{ width:18px; height:18px; margin-left:auto; transition:transform .35s var(--ease), color .25s; flex-shrink:0; }
.mobile-acc.open .mobile-acc-trigger{ color:var(--blue-400); }
.mobile-acc.open .mobile-acc-trigger .caret{ transform:rotate(180deg); }
.mobile-acc-panel{ max-height:0; overflow:hidden; transition:max-height .5s var(--ease); }
.mobile-acc.open .mobile-acc-panel{ max-height:640px; }
.mobile-acc-panel a{ display:block; font-size:.98rem; font-weight:500; color:rgba(255,255,255,.66); padding:11px 6px 11px 36px; border-bottom:1px solid rgba(255,255,255,.05); transition:color .25s, padding-left .25s; }
.mobile-acc-panel a:hover{ color:#fff; padding-left:42px; }
.md-cta{ position:relative; display:grid; grid-template-columns:1fr; gap:10px; margin-top:24px; }
.md-cta .btn{ padding:14px 18px; font-size:14px; }
.mobile-extra{ position:relative; margin-top:auto; padding-top:24px; display:flex; flex-direction:column; gap:14px; }
.mobile-contact{ color:rgba(255,255,255,.62); font-size:13.5px; line-height:1.7; }
.mobile-social{ display:flex; gap:10px; }
.mobile-social a{ width:42px; height:42px; border-radius:14px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.1); display:grid; place-items:center; transition:transform .3s var(--ease), background .3s; }
.mobile-social a:hover{ background:var(--blue-500); transform:translateY(-3px); }
.mobile-social .icon{ width:18px; height:18px; color:#fff; }

@media (max-width:1080px){
  .nav-links{ display:none; }
  .nav-toggle{ display:inline-flex; }
  .nav-quote{ display:none; }
  .nav-bar{ padding:8px 8px 8px 20px; min-height:66px; }
  .brand img{ height:40px; }
}
@media (max-width:420px){
  .navbar{ padding:10px 0; }
  .nav-toggle .nt-label{ display:none; }
  .nav-toggle{ padding:0 15px; }
  .nav-bar{ gap:8px; padding-left:16px; }
  .brand img{ height:34px; }
}

/* ============================================
   3. HERO — photo slider, per-slide text, zoom + crossfade
============================================ */
.hero{ position:relative; min-height:100svh; display:flex; align-items:flex-end; padding-top:110px; padding-bottom:64px; overflow:hidden; color:#fff; }
.hero-slider{ position:absolute; inset:0; z-index:0; overflow:hidden; }
.hero-slide{ position:absolute; inset:0; background-size:cover; background-position:center 55%; opacity:0; transform:scale(1); transition:opacity 1.7s ease-in-out; }
.hero-slide.active{ opacity:1; z-index:1; animation:heroSlideZoom 8s linear forwards; }
@keyframes heroSlideZoom{ from{ transform:scale(1); } to{ transform:scale(1.13); } }
/* clean image — only a soft bottom anchor so the caption stays legible, no full-bleed fade */
.hero-scrim{ position:absolute; inset:0; z-index:1; background:linear-gradient(0deg, rgba(6,16,26,0.8) 0%, rgba(6,16,26,0.4) 30%, transparent 54%); }

.mouse-flag{ transform:rotate(var(--tilt,0deg)); transition:transform .25s ease-out; }
.flags-inner{ display:block; animation:flagSway 4s ease-in-out infinite; }
@keyframes flagSway{ 0%,100%{ transform:rotate(-2deg); } 50%{ transform:rotate(2deg); } }
/* hero flag: anchored bottom-right, inclined up into the hero */
.hero-flags{ position:absolute; bottom:0; right:0; z-index:3; pointer-events:none; transform-origin:bottom right; transform:rotate(var(--tilt,32deg)); opacity:0.94; }
.hero-flags .flags-inner{ transform-origin:bottom right; }

.hero-inner{ position:relative; z-index:4; width:100%; }
.hero-caption{ min-height:auto; }
.hero-title{ font-size:clamp(1.7rem, 3vw, 2.5rem); font-weight:600; color:#fff; white-space:normal; text-wrap:balance; text-shadow:0 4px 30px rgba(0,0,0,0.3); transition:opacity .5s var(--ease), transform .5s var(--ease); }
.hero-subtitle{ margin-top:12px; font-size:clamp(0.92rem,1.15vw,1.02rem); font-weight:500; color:rgba(255,255,255,0.86); max-width:54ch; transition:opacity .5s var(--ease), transform .5s var(--ease); }
.hero-cta{ margin-top:28px; transition:opacity .5s var(--ease), transform .5s var(--ease); }
.hero-caption.fade-out .hero-title, .hero-caption.fade-out .hero-subtitle, .hero-caption.fade-out .hero-cta{ opacity:0; transform:translateY(14px); }
.hero-caption.fade-out{ }
.hero-title, .hero-subtitle, .hero-cta{ opacity:1; transform:translateY(0); }

/* Slide picker — replaces the old generic CTA buttons: each button carries its own slide's image + title + subtitle */
.hero-slides-nav{ display:flex; flex-wrap:wrap; gap:12px; margin-top:32px; }
.hero-slide-btn{ display:flex; align-items:center; gap:11px; padding:7px 18px 7px 7px; border-radius:999px; background:rgba(255,255,255,0.08); border:1px solid rgba(255,255,255,0.22); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); transition:background .3s, border-color .3s, transform .3s; text-align:left; }
.hero-slide-btn:hover{ background:rgba(255,255,255,0.16); transform:translateY(-2px); }
.hero-slide-btn.active{ background:rgba(255,255,255,0.22); border-color:var(--gold); }
.hero-slide-thumb{ width:42px; height:42px; border-radius:50%; overflow:hidden; flex-shrink:0; border:1.5px solid rgba(255,255,255,0.45); }
.hero-slide-thumb img{ width:100%; height:100%; object-fit:cover; }
.hero-slide-btn-text strong{ display:block; font-size:12px; font-weight:700; color:#fff; line-height:1.25; white-space:nowrap; }
.hero-slide-btn-text span{ display:block; font-size:10px; color:rgba(255,255,255,0.62); margin-top:2px; max-width:150px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
@media (max-width:900px){ .hero-slide-btn-text span{ display:none; } }
@media (max-width:640px){ .hero-slides-nav{ display:none; } }

.hero-nav{ position:absolute; top:50%; transform:translateY(-50%); z-index:5; width:52px; height:52px; border-radius:50%; background:rgba(255,255,255,0.12); border:1.5px solid rgba(255,255,255,0.35); display:flex; align-items:center; justify-content:center; color:#fff; backdrop-filter:blur(6px); transition:background .3s, transform .3s, border-color .3s; }
.hero-nav:hover{ background:rgba(255,255,255,0.24); border-color:#fff; }
.hero-nav .icon{ width:22px; height:22px; }
.hero-nav.prev{ left:clamp(14px,3vw,40px); }
.hero-nav.next{ right:clamp(14px,3vw,40px); }
@media (min-width:721px){ .hero-inner{ padding-inline-start:88px; } }
@media (max-width:720px){ .hero-nav{ display:block; } }

/* ============================================
   4. PAGE BANNER (inner pages)
============================================ */
.page-banner{ position:relative; min-height:56vh; display:flex; align-items:flex-end; overflow:hidden; color:#fff; padding-top:var(--nav-h); }
.page-banner-media{ position:absolute; inset:0; z-index:0; }
.page-banner-media img{ width:100%; height:100%; object-fit:cover; transform:scale(1.04); }
.page-banner-scrim{ position:absolute; inset:0; z-index:1; background:linear-gradient(190deg, rgba(8,26,42,0.35) 0%, rgba(8,25,40,0.86) 100%); }
.page-banner-inner{ position:relative; z-index:2; padding-bottom:56px; width:100%; }
.breadcrumb{ display:flex; align-items:center; gap:8px; font-size:12.5px; font-weight:700; letter-spacing:0.06em; text-transform:uppercase; color:rgba(255,255,255,0.65); margin-bottom:18px; }
.breadcrumb a{ color:rgba(255,255,255,0.8); transition:color .2s; }
.breadcrumb a:hover{ color:var(--gold); }
.page-banner h1{ font-size:clamp(2.4rem,5vw,4rem); color:#fff; max-width:20ch; text-shadow:0 4px 30px rgba(0,0,0,.3); }
.page-banner p.lead{ margin-top:16px; color:rgba(255,255,255,0.78); font-size:1.1rem; max-width:60ch; }
.page-banner-meta{ display:flex; flex-wrap:wrap; gap:12px 26px; margin-top:26px; }
.page-banner-meta span{ display:flex; align-items:center; gap:8px; font-size:13.5px; font-weight:600; color:rgba(255,255,255,0.85); }
.page-banner-meta .icon{ width:16px; height:16px; color:var(--gold); }

/* ============================================
   5. ABOUT / OUR STORY — dark theme
============================================ */
.dark-section{ background:var(--story-dark); color:#fff; overflow:hidden; }
.dark-section .eyebrow{ color:var(--gold); }
.dark-section .eyebrow::before{ background:var(--gold); }
.tours-theme{ background:var(--tours-dark); }

.about-grid{ display:grid; grid-template-columns: 0.92fr 1.08fr; gap:clamp(30px,5vw,90px); align-items:center; position:relative; z-index:2; }
.about-read-more{ margin-top:26px; }
.about-visual{ position:relative; }
.about-art{ position:relative; border-radius:var(--radius-lg); overflow:hidden; aspect-ratio:4/4.4; box-shadow:var(--shadow-lg); }
.about-art img{ width:100%; height:100%; object-fit:cover; transition:transform .9s var(--ease); }
.about-visual:hover .about-art img{ transform:scale(1.06); }
.about-badge{ position:absolute; top:20px; right:20px; z-index:2; display:flex; align-items:center; gap:10px; background:rgba(255,255,255,0.96); border-radius:999px; box-shadow:var(--shadow-md); padding:9px 18px 9px 9px; }
.about-badge-icon{ width:40px; height:40px; border-radius:50%; background:var(--blue-100); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.about-badge-icon .icon{ width:19px; height:19px; color:var(--blue-900); }
.about-badge-text{ font-family:var(--font-display); font-weight:800; font-size:12.5px; color:var(--ink); line-height:1.3; white-space:nowrap; }
.about-text h2{ font-size:clamp(1.7rem, 2.8vw, 2.5rem); margin-top:14px; max-width:none; color:#fff; white-space:normal; }
.about-text p.lead{ margin-top:22px; color:rgba(255,255,255,0.64); font-size:1.1rem; max-width:54ch; white-space:normal; }
.story-subhead{ font-family:var(--font-display); font-weight:700; font-size:1.1rem; color:var(--ink); margin-top:20px; }

.story-strip{ list-style:none; display:grid; grid-template-columns:repeat(4,1fr); gap:20px 14px; margin-top:32px; padding-top:26px; border-top:1px solid var(--line); position:relative; z-index:2; max-width:560px; }
.story-strip li{ display:flex; flex-direction:column; align-items:center; text-align:center; gap:10px; }
.story-strip-icon{ width:62px; height:62px; border-radius:50%; background:var(--cream); border:1px solid var(--line); display:flex; align-items:center; justify-content:center; flex-shrink:0; transition:transform .4s var(--ease), background .4s var(--ease); }
.story-strip li:hover .story-strip-icon{ transform:translateY(-4px); background:var(--blue-100); }
.story-strip-icon .icon{ width:29px; height:29px; color:var(--sage); }
.story-strip li span:last-child{ font-size:11.5px; font-weight:700; color:var(--ink-soft); line-height:1.3; max-width:12ch; }
@media (max-width:560px){ .story-strip{ grid-template-columns:repeat(2,1fr); gap:22px 14px; max-width:none; } }
.about-stats{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; margin-top:42px; padding-top:36px; border-top:1px solid rgba(255,255,255,0.14); }
.about-stats .num{ font-family:var(--font-display); font-size:clamp(1.7rem,3vw,2.4rem); color:var(--gold); font-weight:600; }
.about-stats .cap{ font-size:12.5px; color:rgba(255,255,255,0.6); font-weight:600; margin-top:4px; }

/* ============================================
   6. TEAM
============================================ */
.team{ background:var(--paper); overflow:hidden; }
.team-grid{ position:relative; z-index:2; display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.team-card{ text-align:center; padding:36px 24px; border-radius:var(--radius-md); background:var(--cream); border:1px solid var(--line); transition:transform .45s var(--ease), box-shadow .45s var(--ease), background .4s; }
.team-card:hover{ transform:translateY(-8px); box-shadow:var(--shadow-md); background:var(--paper); }
.team-avatar{ width:92px; height:92px; border-radius:50%; margin:0 auto 18px; display:flex; align-items:center; justify-content:center; font-family:var(--font-display); font-size:1.75rem; font-weight:600; color:#fff; transition:transform .5s var(--ease); box-shadow:0 10px 24px rgba(13,58,92,0.18); }
.team-card:hover .team-avatar{ transform:scale(1.08) rotate(-4deg); }
.team-card h3{ font-size:1.16rem; }
.team-role{ display:block; font-size:11.5px; font-weight:800; letter-spacing:0.06em; text-transform:uppercase; color:var(--terracotta); margin-top:6px; margin-bottom:12px; }
.team-bio{ font-size:13.8px; color:var(--stone); line-height:1.6; }

/* Team list page — photo-top cards */
.team-profiles-grid{ position:relative; z-index:2; display:grid; grid-template-columns:repeat(4,1fr); gap:26px; }
.team-profile-card{ display:flex; flex-direction:column; border-radius:var(--radius-md); background:var(--cream); border:1px solid var(--line); overflow:hidden; transition:transform .4s var(--ease), box-shadow .4s var(--ease), background .4s; }
.team-profile-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-md); background:var(--paper); }
.team-profile-photo{ position:relative; aspect-ratio:1/1.05; overflow:hidden; }
.team-profile-photo img{ width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease); }
.team-profile-card:hover .team-profile-photo img{ transform:scale(1.06); }
.team-profile-body{ padding:22px 22px 26px; text-align:center; }
.team-profile-body h3{ font-size:1.14rem; }
.team-profile-body .team-role{ margin-top:2px; display:block; }
.team-profile-body .btn{ margin-top:18px; width:100%; justify-content:center; }
@media (max-width:1080px){ .team-profiles-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .team-profiles-grid{ grid-template-columns:1fr; } .team-profile-card{ max-width:340px; margin-inline:auto; } }

/* Team profile detail page — left photo + quick facts, right full bio */
.profile-layout{ position:relative; z-index:2; display:grid; grid-template-columns:0.8fr 1.2fr; gap:clamp(30px,5vw,70px); align-items:start; }
.profile-photo-col .profile-photo{ border-radius:var(--radius-lg); overflow:hidden; aspect-ratio:4/4.6; box-shadow:var(--shadow-lg); }
.profile-photo-col .profile-photo img{ width:100%; height:100%; object-fit:cover; }
.profile-points{ list-style:none; margin-top:22px; display:flex; flex-direction:column; gap:12px; }
.profile-points li{ display:flex; align-items:flex-start; gap:11px; font-size:14px; font-weight:600; color:var(--ink-soft); background:var(--cream); border:1px solid var(--line); border-radius:12px; padding:12px 14px; }
.profile-points .icon{ width:18px; height:18px; color:var(--blue-600); flex-shrink:0; margin-top:1px; }
.profile-details .eyebrow{ color:var(--terracotta); }
.profile-details h1{ font-size:clamp(1.8rem,3vw,2.5rem); margin-top:10px; color:var(--ink); }
.profile-details .profile-role{ font-size:1.05rem; font-weight:700; color:var(--blue-600); margin-top:8px; display:block; }
.profile-details .profile-bio{ margin-top:22px; font-size:15.5px; line-height:1.8; color:var(--stone); }
.profile-details .profile-bio + .profile-bio{ margin-top:16px; }
.profile-contact-card{ margin-top:30px; padding:22px; border-radius:var(--radius-md); background:var(--cream); border:1px solid var(--line); display:flex; flex-wrap:wrap; gap:22px; }
.profile-contact-card div{ display:flex; align-items:center; gap:10px; font-size:14px; font-weight:600; color:var(--ink-soft); }
.profile-contact-card .icon{ width:17px; height:17px; color:var(--blue-600); }
@media (max-width:900px){ .profile-layout{ grid-template-columns:1fr; } .profile-photo-col{ max-width:360px; margin-inline:auto; width:100%; } }

/* ============================================
   7. SERVICES
============================================ */
.services{ background:var(--cream); overflow:hidden; }
.services-grid{ position:relative; z-index:2; display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.service-card{ padding:36px 30px; border-radius:var(--radius-md); background:var(--paper); border:1px solid var(--line); transition:transform .4s var(--ease), box-shadow .4s var(--ease), background-color .4s var(--ease), border-color .4s; position:relative; overflow:hidden; }
.service-card::before{ content:""; position:absolute; top:0; left:0; width:100%; height:3px; background:linear-gradient(90deg, var(--terracotta), var(--gold)); transform:scaleX(0); transform-origin:left; transition:transform .45s var(--ease); }
.service-card:hover{ transform:translateY(-8px); box-shadow:var(--shadow-md); border-color:transparent; }
.service-card:hover::before{ transform:scaleX(1); }
.service-icon{ width:58px; height:58px; border-radius:16px; background:var(--blue-900); display:flex; align-items:center; justify-content:center; margin-bottom:22px; transition:background .4s, transform .4s var(--ease); }
.service-card:hover .service-icon{ transform:rotate(-8deg) scale(1.08); }
.service-card:nth-child(2) .service-icon{ background:var(--terracotta); }
.service-card:nth-child(3) .service-icon{ background:var(--sage); }
.service-card:nth-child(4) .service-icon{ background:var(--gold-dark); }
.service-card:nth-child(5) .service-icon{ background:var(--blue-600); }
.service-card:nth-child(6) .service-icon{ background:var(--blue-900); }
.service-icon .icon{ color:#fff; width:27px; height:27px; }
.service-card h3{ font-size:1.26rem; margin-bottom:10px; }
.service-card p{ color:var(--stone); font-size:14.8px; }
.service-num{ position:absolute; top:24px; right:26px; font-family:var(--font-display); font-size:2.3rem; color:var(--line); font-weight:600; }

/* ============================================
   8. TOURS — 3-col, scroll-snap horizontal carousel, larger vertical cards
============================================ */
.tours{ position:relative; overflow:hidden; color:#fff; }
.tours-head{ position:relative; z-index:2; display:flex; justify-content:space-between; align-items:flex-end; gap:30px; margin-bottom:50px; text-align:left; flex-wrap:wrap; }
.tours-head .heading-block{ max-width:820px; text-align:left; }
.tours-head h2{ font-size:clamp(2.1rem,3.6vw,3rem); margin-top:14px; text-align:left; color:#fff; white-space:normal; }
.tours-head p.lead{ text-align:left; margin-top:14px; white-space:normal; }
.tours-head .view-all-wrap{ flex-shrink:0; padding-bottom:6px; }

.tours-viewport{ position:relative; z-index:2; overflow-x:auto; overflow-y:hidden; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; scrollbar-width:none; padding-bottom:4px; }
.tours-viewport.no-snap{ scroll-snap-type:none; }
.tours-viewport::-webkit-scrollbar{ display:none; }
.tours-track{ display:flex; gap:28px; }
.tour-card3{ scroll-snap-align:start; flex:0 0 calc(33.333% - 19px); border-radius:var(--radius-md); overflow:hidden; }
.tour-media{ position:relative; aspect-ratio:3/4; border-radius:var(--radius-md); overflow:hidden; box-shadow:var(--shadow-sm); cursor:pointer; }
.tour-photo{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease); }
.tour-gradient{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; }
.tour-gradient .icon{ width:32%; height:32%; color:rgba(255,255,255,0.9); stroke-width:1.1; transition:transform .7s var(--ease); }
.tour-media:hover .tour-photo, .tour-card3.info-open .tour-photo{ transform:scale(1.09); }
.tour-media:hover .tour-gradient .icon, .tour-card3.info-open .tour-gradient .icon{ transform:scale(1.15) rotate(-3deg); }
.tour-media::after{ content:""; position:absolute; inset:0; background:linear-gradient(200deg, rgba(0,0,0,0) 30%, rgba(0,0,0,0.55)); z-index:1; }
.tour-cat2{ position:absolute; top:20px; left:20px; z-index:3; background:rgba(255,255,255,0.94); color:var(--ink); font-size:11px; font-weight:800; letter-spacing:0.05em; text-transform:uppercase; padding:7px 13px; border-radius:999px; }
.tour-basic{ position:absolute; left:24px; right:24px; bottom:22px; z-index:3; transition:opacity .4s var(--ease), transform .4s var(--ease); }
.tour-basic h3{ color:#fff; font-size:1.55rem; text-shadow:0 2px 16px rgba(0,0,0,0.35); }
.tour-media:hover .tour-basic, .tour-card3.info-open .tour-basic{ opacity:0; transform:translateY(10px); }
.tour-hover{ position:absolute; inset:0; z-index:4; display:flex; flex-direction:column; justify-content:flex-end; padding:26px; background:linear-gradient(200deg, rgba(13,58,92,.1) 0%, rgba(8,25,40,.95) 74%); opacity:0; transform:translateY(14px); transition:opacity .45s var(--ease), transform .45s var(--ease); pointer-events:none; }
.tour-media:hover .tour-hover, .tour-card3.info-open .tour-hover{ opacity:1; transform:translateY(0); pointer-events:auto; }
.tour-hover h3{ color:#fff; font-size:1.4rem; margin-bottom:14px; }
.th-meta{ display:flex; flex-wrap:wrap; gap:10px 16px; margin-bottom:16px; }
.th-meta span{ display:flex; align-items:center; gap:6px; font-size:13px; font-weight:600; color:rgba(255,255,255,0.9); }
.th-meta .icon{ width:15px; height:15px; color:var(--gold); }
.th-foot{ display:flex; align-items:center; justify-content:space-between; padding-top:14px; border-top:1px dashed rgba(255,255,255,0.25); }
.tour-diff{ font-size:12px; font-weight:700; color:var(--gold); text-transform:uppercase; letter-spacing:0.04em; }

.tours-nav{ display:flex; align-items:center; justify-content:center; gap:20px; margin-top:34px; position:relative; z-index:2; }
.tours-dots{ display:flex; gap:8px; }
.tours-dots button{ width:9px; height:9px; border-radius:50%; background:rgba(255,255,255,.3); transition:background .3s, width .3s; }
.tours-dots button.active{ background:var(--gold); width:26px; border-radius:6px; }

.view-all-btn{ display:inline-flex; align-items:center; gap:10px; padding:16px 28px; border-radius:999px; background:linear-gradient(135deg,var(--blue-500),var(--blue-600)); color:#fff; font-weight:700; font-size:14.5px; transition:transform .35s var(--ease), background .35s; }
.view-all-btn:hover{ background:linear-gradient(135deg,#2b84f0,var(--blue-500)); transform:translateY(-2px); }
.view-all-btn .icon{ width:17px; height:17px; }

/* ============================================
   9. SLH / PHOTO BANNERS (alternating, parallax)
============================================ */
.photo-banner{ min-height:66vh; display:flex; align-items:center; overflow:hidden; color:#fff; }
.photo-banner-media{ position:absolute; inset:-8% -4%; z-index:0; will-change:transform; }
.photo-banner-media img{ width:100%; height:100%; object-fit:cover; }
.photo-banner-scrim{ position:absolute; inset:0; z-index:1; }
.photo-banner.align-left .photo-banner-scrim{ background:linear-gradient(90deg, rgba(6,18,29,0.92) 0%, rgba(6,18,29,0.68) 45%, rgba(6,18,29,0.18) 80%); }
.photo-banner.align-right .photo-banner-scrim{ background:linear-gradient(270deg, rgba(6,18,29,0.92) 0%, rgba(6,18,29,0.68) 45%, rgba(6,18,29,0.18) 80%); }
.photo-banner-inner{ position:relative; z-index:3; }
.photo-banner-text{ max-width:640px; }
.photo-banner.align-right .photo-banner-text{ margin-left:auto; text-align:right; }
.photo-banner.align-right .eyebrow{ justify-content:flex-end; }
.photo-banner.align-right .eyebrow::before{ order:2; }
.photo-banner-text h2{ font-size:clamp(1.7rem,2.8vw,2.5rem); margin-top:14px; color:#fff; white-space:normal; }
.photo-banner-text p.lead{ margin-top:18px; color:rgba(255,255,255,0.78); font-size:1.08rem; line-height:1.7; white-space:normal; }
.photo-banner-text .btn{ margin-top:32px; }

.partner-banner{ min-height:0; align-items:stretch; }
@media (min-width:981px){
  .partner-banner{ max-height:600px; }
  .partner-banner .photo-banner-text{ max-width:700px; }
  .partner-banner .photo-banner-text h2{ font-size:clamp(1.7rem,2.5vw,2.2rem); margin-top:10px; }
  .partner-banner .photo-banner-text p.lead{ margin-top:12px; font-size:1rem; line-height:1.6; }
  .partner-banner .photo-banner-text .btn{ margin-top:22px; padding:13px 26px; }
  .partner-banner .partner-bottom{ position:absolute; left:28px; bottom:clamp(30px,3.4vw,46px); max-width:calc(100% - 760px); }
  .partner-banner .partner-features{ flex-direction:column; gap:14px; }
  .partner-banner .partner-features li{ border-left:none; padding:0; }
}
.partner-inner{ display:flex; flex-direction:column; justify-content:space-between; padding-block:clamp(40px,4.4vw,56px); gap:28px; }
.partner-bottom{ display:flex; align-items:flex-end; justify-content:space-between; gap:28px 36px; flex-wrap:wrap; }
.partner-features{ list-style:none; display:flex; flex-wrap:wrap; gap:0; }
.partner-features li{ display:flex; align-items:center; gap:10px; padding:0 22px; border-left:1px solid rgba(255,255,255,0.3); }
.partner-features li:first-child{ border-left:none; padding-left:0; }
.partner-features .icon{ width:22px; height:22px; color:#fff; flex-shrink:0; }
.partner-features span{ font-size:14px; font-weight:600; color:#fff; line-height:1.3; }
.partner-signoff{ position:absolute; top:clamp(28px,3.4vw,48px); left:28px; z-index:4; font-family:'Caveat', cursive; font-weight:700; font-size:clamp(1.35rem,2vw,1.8rem); color:#fff; line-height:1.15; text-align:left; margin:0; }
.partner-signoff span{ text-decoration:underline; text-decoration-style:wavy; text-decoration-color:var(--gold); text-underline-offset:6px; }

/* ============================================
   10. GO GREEN
============================================ */
.go-green{ background:linear-gradient(160deg, #0b3f86, #06142b); color:#fff; overflow:hidden; }
.gg-grid{ margin-top:44px; display:grid; grid-template-columns:repeat(4,1fr); gap:22px; position:relative; z-index:2; }
.gg-card{ display:flex; align-items:center; gap:18px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.18); border-radius:var(--radius-md); padding:22px 24px; backdrop-filter:blur(6px); transition:transform .4s var(--ease), background .4s, box-shadow .4s; }
.gg-card:hover{ transform:translateY(-8px); background:rgba(255,255,255,.15); box-shadow:var(--shadow-md); }
.gg-icon{ width:56px; height:56px; border-radius:14px; background:rgba(255,255,255,.92); display:flex; align-items:center; justify-content:center; flex-shrink:0; transition:transform .4s var(--ease); overflow:hidden; }
.gg-card:hover .gg-icon{ transform:rotate(-8deg) scale(1.08); }
.gg-icon img{ width:72%; height:72%; object-fit:contain; }
.gg-card p{ font-weight:600; font-size:15px; line-height:1.4; }
@media (max-width:1080px){ .gg-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:480px){ .gg-grid{ grid-template-columns:1fr; } }

/* ============================================
   11. HOTELS — light theme
============================================ */
.hotels{ background:var(--cream); position:relative; overflow:hidden; }
.stay{ background:linear-gradient(180deg,#06142b 0%,#0a2a57 100%); color:#fff; isolation:isolate; }
.stay-glow{ position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:radial-gradient(50% 45% at 85% 10%, rgba(26,114,220,.35), transparent 70%), radial-gradient(40% 40% at 5% 95%, rgba(77,163,255,.14), transparent 70%); }
.stay-top{ display:grid; grid-template-columns:1.15fr 1fr; gap:clamp(24px,5vw,80px); align-items:end; }
.stay-top h2{ color:#fff; font-size:clamp(2rem,4vw,3.4rem); line-height:1.08; margin-top:16px; white-space:normal; text-wrap:balance; }
.stay-top h2 span{ display:block; background:linear-gradient(90deg,var(--blue-400),#bfe0ff); -webkit-background-clip:text; background-clip:text; color:transparent; }
.stay-top .lead{ color:rgba(255,255,255,.72); font-size:1.08rem; line-height:1.7; max-width:50ch; }
.stay-note{ display:inline-flex; align-items:center; gap:10px; margin-top:18px; padding:9px 16px 9px 12px; border-radius:999px; font-size:12.5px; font-weight:700; letter-spacing:.06em; color:#cfe5ff; background:rgba(77,163,255,.12); border:1px solid rgba(77,163,255,.28); }
.stay-note .icon{ width:16px; height:16px; color:var(--blue-400); }

/* route / altitude trail */
.stay-trail{ list-style:none; display:grid; grid-template-columns:auto 1fr auto 1fr auto; align-items:center; gap:0 16px; margin-top:clamp(36px,5vw,60px); padding:20px clamp(18px,3vw,34px); border-radius:22px; background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.1); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); }
.stay-stop{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.stay-dot{ width:14px; height:14px; border-radius:50%; background:var(--blue-500); box-shadow:0 0 0 5px rgba(77,163,255,.22); flex-shrink:0; }
.stay-stop strong{ font-family:var(--font-display); font-size:1.02rem; font-weight:600; color:#fff; }
.stay-stop small{ font-size:12.5px; font-weight:700; color:var(--blue-400); letter-spacing:.04em; }
.stay-leg{ position:relative; height:2px; background:repeating-linear-gradient(90deg,rgba(150,200,255,.55) 0 8px,transparent 8px 15px); display:flex; justify-content:center; }
.stay-leg span{ position:absolute; top:-30px; font-size:11px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:rgba(207,229,255,.7); white-space:nowrap; }

/* hotel cards — same row, title only; details fade in on hover (no box, colour fade only) */
.stay-cards{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(18px,2.4vw,32px); margin-top:clamp(28px,3.4vw,44px); align-items:stretch; }
.stay-card{ position:relative; display:block; border-radius:var(--radius-lg); overflow:hidden; min-height:clamp(440px,40vw,560px); isolation:isolate; box-shadow:0 30px 60px -28px rgba(0,0,0,.65); transition:transform .5s var(--ease), box-shadow .5s var(--ease); }
.stay-card:hover, .stay-card:focus-visible{ transform:translateY(-6px); box-shadow:0 40px 70px -26px rgba(10,92,194,.55); }
.stay-card-img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-3; transition:transform .9s var(--ease); }
.stay-card:hover .stay-card-img, .stay-card:focus-visible .stay-card-img{ transform:scale(1.07); }
/* base fade (title legibility) and full fade (details legibility) */
.stay-card::before{ content:""; position:absolute; inset:0; z-index:-2; background:linear-gradient(180deg,rgba(6,20,43,0) 45%,rgba(6,20,43,.88) 100%); }
.stay-card::after{ content:""; position:absolute; inset:0; z-index:-1; opacity:0; transition:opacity .5s var(--ease); background:linear-gradient(180deg,rgba(6,20,43,.15) 0%,rgba(8,40,92,.62) 40%,rgba(6,20,43,.94) 100%); }
.stay-card:hover::after, .stay-card:focus-visible::after{ opacity:1; }
.stay-card-chip{ position:absolute; top:22px; left:22px; display:inline-flex; align-items:center; gap:8px; padding:9px 16px 9px 12px; border-radius:999px; font-size:12.5px; font-weight:800; letter-spacing:.05em; color:#fff; background:rgba(6,20,43,.5); border:1px solid rgba(255,255,255,.22); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); opacity:0; transform:translateY(-8px); transition:opacity .45s var(--ease), transform .45s var(--ease); }
.stay-card:hover .stay-card-chip, .stay-card:focus-visible .stay-card-chip{ opacity:1; transform:none; }
.stay-card-chip .icon{ width:15px; height:15px; color:var(--blue-400); }
.stay-card-panel{ position:absolute; left:0; right:0; bottom:0; padding:clamp(24px,2.6vw,36px); }
.stay-card-panel h3{ font-size:clamp(1.6rem,2.6vw,2.2rem); font-weight:600; color:#fff; letter-spacing:-.01em; text-shadow:0 2px 18px rgba(0,0,0,.45); }
.stay-reveal{ display:grid; grid-template-rows:0fr; opacity:0; transition:grid-template-rows .55s var(--ease), opacity .45s var(--ease) .05s; }
.stay-reveal > div{ overflow:hidden; min-height:0; }
.stay-card:hover .stay-reveal, .stay-card:focus-visible .stay-reveal{ grid-template-rows:1fr; opacity:1; }
.stay-card-step{ margin-top:14px; font-size:11px; font-weight:800; letter-spacing:.16em; text-transform:uppercase; color:var(--blue-400); }
.stay-tagline{ margin-top:6px; font-size:14px; font-weight:600; color:rgba(255,255,255,.78); }
.stay-perks{ list-style:none; display:grid; grid-template-columns:1fr 1fr; gap:10px 14px; margin-top:18px; padding-top:18px; border-top:1px solid rgba(255,255,255,.18); }
.stay-perks li{ display:flex; align-items:center; gap:10px; font-size:13px; font-weight:600; color:rgba(255,255,255,.92); line-height:1.3; }
.stay-perks .icon{ width:30px; height:30px; padding:7px; border-radius:10px; background:rgba(77,163,255,.2); color:var(--blue-400); flex-shrink:0; }
.stay-cta{ display:flex; align-items:center; justify-content:space-between; margin-top:20px; padding:6px 6px 6px 20px; border-radius:999px; background:linear-gradient(135deg,var(--blue-500),var(--blue-600)); font-size:14px; font-weight:700; color:#fff; box-shadow:0 12px 26px -10px rgba(10,92,194,.8); }
.stay-cta i{ width:38px; height:38px; border-radius:50%; background:#fff; display:grid; place-items:center; transition:transform .4s var(--ease); }
.stay-cta i .icon{ width:16px; height:16px; color:var(--blue-600); }
.stay-card:hover .stay-cta i{ transform:translateX(4px); }
/* touch devices can't hover: show everything */
@media (hover:none){
  .stay-reveal{ grid-template-rows:1fr; opacity:1; }
  .stay-card::after{ opacity:1; }
  .stay-card-chip{ opacity:1; transform:none; }
}

@media (max-width:980px){
  .stay-top{ grid-template-columns:1fr; align-items:start; gap:18px; }
  .stay-cards{ grid-template-columns:1fr; }
  .stay-card{ min-height:520px; }
}
@media (max-width:720px){
  .stay-trail{ grid-template-columns:1fr; gap:0; padding:18px 20px; }
  .stay-leg{ width:2px; height:34px; margin:6px 0 6px 6px; background:repeating-linear-gradient(180deg,rgba(150,200,255,.55) 0 6px,transparent 6px 12px); justify-content:flex-start; }
  .stay-leg span{ position:static; margin-left:18px; align-self:center; white-space:normal; }
  .stay-leg:empty{ }
}
@media (max-width:520px){
  .stay-perks{ grid-template-columns:1fr; }
  .stay-card{ min-height:560px; }
}

/* ============================================
   12. REVIEWS
============================================ */
.reviews{ background:var(--paper); overflow:hidden; }
.reviews-carousel{ margin-top:8px; position:relative; z-index:2; }
.reviews-viewport{ overflow:hidden; cursor:grab; touch-action:pan-y; }
.reviews-viewport.dragging{ cursor:grabbing; }
.reviews-track{ display:flex; gap:24px; will-change:transform; transition:transform .6s var(--ease); }
.reviews-track.dragging{ transition:none; }
.review-card{ flex:0 0 calc(50% - 12px); background:var(--cream); border:1px solid var(--line); border-radius:var(--radius-md); padding:32px 32px 30px; box-shadow:var(--shadow-sm); transition:transform .4s var(--ease), box-shadow .4s var(--ease); user-select:none; }
.review-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-md); }
.review-top{ display:flex; align-items:center; gap:14px; margin-bottom:16px; }


.review-avatar {
  max-width: 80px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    overflow: hidden;
    border-radius: 50%;
}

.review-avatar img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 50%;
}

.review-top h4{ font-size:1.02rem; }
.review-loc{ font-size:12.5px; color:var(--stone); }
.review-stars{ margin-left:auto; display:flex; gap:2px; }
.review-stars .icon{ width:14px; height:14px; color:var(--blue-600); fill:var(--blue-600); }
.review-quote{ color:var(--ink-soft); font-size:15.5px; line-height:1.75; font-family:var(--font-display); font-style:italic; }
.review-tag{ display:inline-block; margin-top:18px; font-size:11px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; color:var(--blue-700); background:var(--blue-100); padding:6px 12px; border-radius:999px; }
.reviews-controls{ display:flex; align-items:center; justify-content:center; gap:20px; margin-top:38px; position:relative; z-index:2; }
.rc-btn{ width:46px; height:46px; border-radius:50%; border:1.5px solid var(--line); display:flex; align-items:center; justify-content:center; transition:background .3s, border-color .3s, transform .3s, color .3s; background:var(--paper); }
.rc-btn:hover{ background:var(--blue-900); border-color:var(--blue-900); color:#fff; transform:translateY(-2px); }
.reviews-dots{ display:flex; gap:8px; }
.reviews-dots button{ width:9px; height:9px; border-radius:50%; background:var(--line); transition:background .3s, width .3s; }
.reviews-dots button.active{ background:var(--terracotta); width:26px; border-radius:6px; }

/* ============================================
   13. BLOG
============================================ */
.blog{ overflow:hidden; }
.blog-grid{ position:relative; z-index:2; display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }
.blog-card{ border-radius:var(--radius-md); overflow:hidden; background:var(--paper); border:1px solid var(--line); transition:transform .4s var(--ease), box-shadow .4s var(--ease); }
.blog-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-md); }
.blog-media{ aspect-ratio:16/10.5; position:relative; display:flex; align-items:center; justify-content:center; overflow:hidden; }
.blog-media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .7s var(--ease); }
.blog-card:hover .blog-media img{ transform:scale(1.08); }
.blog-media .icon{ width:34%; height:34%; color:rgba(255,255,255,0.85); stroke-width:1; transition:transform .6s var(--ease); }
.blog-card:hover .blog-media .icon{ transform:scale(1.14) rotate(-3deg); }
.blog-date{ position:absolute; top:14px; left:14px; z-index:2; background:rgba(255,255,255,0.92); color:var(--ink); font-size:11.5px; font-weight:800; padding:6px 11px; border-radius:8px; text-align:center; line-height:1.15; }
.blog-body{ padding:26px 26px 28px; }
.blog-cat{ font-size:11.5px; font-weight:800; letter-spacing:0.08em; text-transform:uppercase; color:var(--terracotta); }
.blog-body h3{ font-size:1.2rem; margin-top:10px; line-height:1.3; }
.blog-body p{ color:var(--stone); font-size:14.3px; margin-top:10px; }
.blog-read{ margin-top:18px; }
.blog-foot-row{ display:flex; justify-content:center; margin-top:46px; }

/* ============================================
   14. FOOTER
============================================ */
/* Plan Your Trip CTA — full-width band, sits directly above the footer */
.ptc-actions{ display:flex; gap:12px; flex-wrap:wrap; }

/* ---------- Floating "Plan Your Journey" widget (sticky, top-left, icon -> hover label -> click-to-expand) ---------- */
.plan-journey-float{
  position:fixed; top:calc(var(--nav-h) + 24px); left:8px; z-index:950;
  opacity:0; visibility:hidden; transform:translate(-28px,-10px);
  transition:opacity .5s var(--ease), transform .5s var(--ease), visibility .5s;
}
.plan-journey-float.is-visible{ opacity:1; visibility:visible; transform:translate(0,0); }

.pj-toggle{
  --pj-size:60px;
  position:relative; display:flex; align-items:center; gap:0;
  background:linear-gradient(135deg, var(--blue-900) 0%, #08243a 60%, var(--story-dark) 100%);
  color:#fff; border:none; border-radius:999px;
  width:var(--pj-size); height:var(--pj-size); max-width:var(--pj-size); padding:0; justify-content:center;
  font-family:inherit; font-weight:700; font-size:13px; letter-spacing:.02em; white-space:nowrap;
  box-shadow:var(--shadow-lg); cursor:pointer; overflow:hidden;
  transition:max-width .45s var(--ease), padding .45s var(--ease), transform .3s var(--ease), box-shadow .3s var(--ease);
}
.pj-toggle::after{
  content:''; position:absolute; inset:0; border-radius:999px;
  border:1.5px solid var(--gold); opacity:0; pointer-events:none;
  animation:pj-ring 2.6s ease-out infinite;
}
.pj-toggle:hover{
  width:auto; max-width:240px; padding:0 16px 0 15px; justify-content:flex-start; gap:8px;
  transform:translateY(-2px); box-shadow:0 20px 40px rgba(0,0,0,.32);
}
.pj-toggle:hover::after{ animation-play-state:paused; opacity:0; }
.pj-toggle .icon{
  width:30px; height:30px; flex-shrink:0;
  transition:width .45s var(--ease), height .45s var(--ease);
  animation:pj-bounce 2.6s ease-in-out infinite;
}
.pj-toggle:hover .icon{ width:22px; height:22px; animation-play-state:paused; transform:translateY(0); }
.pj-toggle .pj-label{
  max-width:0; opacity:0; overflow:hidden;
  transition:max-width .45s var(--ease), opacity .3s var(--ease) .05s;
}
.pj-toggle:hover .pj-label{ max-width:220px; opacity:1; }
.plan-journey-float.is-open .pj-toggle{
  opacity:0; visibility:hidden; transform:scale(.7);
  transition:opacity .3s var(--ease), transform .3s var(--ease), visibility .3s;
}
.plan-journey-float.is-open .pj-toggle .icon{ animation:none; }
@keyframes pj-bounce{
  0%,100%{ transform:translateY(0); }
  50%{ transform:translateY(-6px); }
}
@keyframes pj-ring{
  0%{ transform:scale(1); opacity:.55; }
  100%{ transform:scale(1.55); opacity:0; }
}

.pj-panel{
  width:300px; max-width:calc(100vw - 40px);
  background:linear-gradient(135deg, var(--blue-900) 0%, #08243a 60%, var(--story-dark) 100%);
  color:#fff; border-radius:var(--radius-lg); box-shadow:var(--shadow-lg);
  padding:0 18px; margin-top:0;
  max-height:0; opacity:0; overflow:hidden;
  transform:translateY(-10px) scale(.96); transform-origin:top left;
  transition:max-height .5s var(--ease), opacity .4s var(--ease), transform .45s var(--ease), padding .5s var(--ease), margin .5s var(--ease);
}
.plan-journey-float.is-open .pj-panel{
  max-height:560px; opacity:1; transform:translateY(0) scale(1);
  padding:18px 18px 16px; margin-top:0;
}
.pj-panel .eyebrow{ padding-right:0; }
.pj-panel h2{ color:#fff; font-size:1.32rem; line-height:1.25; margin-top:10px; max-width:none; white-space:normal; }
.pj-panel p{ color:rgba(255,255,255,.62); margin-top:12px; font-size:13.5px; line-height:1.65; }
.pj-panel .ptc-actions{ margin-top:18px; flex-direction:column; gap:8px; }
.pj-panel .ptc-actions .btn{ width:100%; justify-content:center; padding:10px 16px; font-size:13.5px; }
@media (max-width:640px){
  .plan-journey-float{ left:6px; top:calc(var(--nav-h) + 12px); }
  .pj-toggle{ --pj-size:50px; }
  .pj-toggle .icon{ width:25px; height:25px; }
  .pj-panel{ width:calc(100vw - 32px); max-width:none; }
}
@media (hover:none){
  .pj-toggle:hover{ width:var(--pj-size); max-width:var(--pj-size); padding:0; justify-content:center; }
  .pj-toggle:hover .pj-label{ max-width:0; opacity:0; }
  .pj-toggle:hover .icon{ width:25px; height:25px; }
}

/* On pages with the itinerary/detail side-nav, drop the widget below it so the two don't overlap */
body:has(.detail-side-nav) .plan-journey-float{ top:calc(var(--nav-h) + 300px); }
@media (max-width:1080px){
  body:has(.detail-side-nav) .plan-journey-float{ top:calc(var(--nav-h) + 90px); }
}
@media (max-width:640px){
  body:has(.detail-side-nav) .plan-journey-float{ top:calc(var(--nav-h) + 84px); }
}

.site-footer{
  position:relative; isolation:isolate; overflow:hidden; color:rgba(255,255,255,.72);
  background:linear-gradient(180deg,#041229 0%,#07224a 38%,#0a3a7e 72%,#0e55b0 100%);
  border-radius:0; padding-top:clamp(54px,6vw,88px);
}
.site-footer::before{
  content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:radial-gradient(55% 55% at 90% 0%, rgba(26,114,220,.32), transparent 70%), radial-gradient(40% 40% at 4% 30%, rgba(77,163,255,.12), transparent 70%);
}
.footer-grid{ display:grid; grid-template-columns:1.45fr .8fr 1fr 1.3fr; gap:clamp(28px,3.6vw,56px); padding-bottom:clamp(36px,4.4vw,60px); }
.footer-grid > *{ min-width:0; }
.footer-brand img{ height:64px; width:auto; display:block; max-width:100%; }
.footer-brand p{ margin-top:20px; font-size:14.5px; line-height:1.75; color:rgba(255,255,255,.62); max-width:40ch; }
.footer-social{ display:flex; gap:10px; margin-top:24px; flex-wrap:wrap; }
.footer-social a{ width:42px; height:42px; border-radius:14px; background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.1); display:grid; place-items:center; transition:background .3s, border-color .3s, transform .35s var(--ease); }
.footer-social a:hover{ background:var(--blue-500); border-color:var(--blue-400); transform:translateY(-4px); }
.footer-social .icon{ width:17px; height:17px; color:#fff; }
.footer-col h5{ font-family:var(--font-body); font-size:12.5px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; color:#fff; margin-bottom:22px; padding-bottom:14px; position:relative; }
.footer-col h5::after{ content:""; position:absolute; left:0; bottom:0; width:30px; height:3px; border-radius:3px; background:linear-gradient(90deg,var(--blue-400),var(--blue-600)); }
.footer-col ul{ display:flex; flex-direction:column; gap:12px; }
.footer-col ul a{ display:inline-flex; align-items:center; font-size:14.5px; line-height:1.4; color:rgba(255,255,255,.62); transition:color .25s; }
.footer-col ul a::before{ content:""; width:0; height:2px; border-radius:2px; background:var(--blue-400); margin-right:0; transition:width .3s var(--ease), margin .3s var(--ease); flex-shrink:0; }
.footer-col ul a:hover{ color:#fff; }
.footer-col ul a:hover::before{ width:12px; margin-right:9px; }
.footer-contact-card{ background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.1); border-radius:24px; padding:24px; backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); }
.footer-contact-card h5{ margin-bottom:20px; }
.footer-contact{ gap:14px !important; }
.footer-contact li{ display:flex; gap:12px; align-items:flex-start; font-size:14px; line-height:1.5; color:rgba(255,255,255,.7); overflow-wrap:anywhere; }
.footer-contact .fc-ico{ width:34px; height:34px; border-radius:11px; background:rgba(77,163,255,.14); display:grid; place-items:center; flex-shrink:0; }
.footer-contact .icon{ width:16px; height:16px; color:var(--blue-400); }
.footer-contact-card .btn{ width:100%; margin-top:20px; padding:14px 20px; font-size:14px; }

/* ---------- Manang scene (between footer links and copyright) ---------- */
.manang-scene{
  position:relative; width:100%; height:clamp(280px,29vw,440px); overflow:hidden; background:transparent; border:0;
}
.manang-scene > svg{ position:absolute; inset:0; width:100%; height:100%; display:block; }
.ms-back{ z-index:1; }
.ms-land{ z-index:3; }
.ms-word{
  position:absolute; z-index:0; left:0; right:0; top:15%; text-align:center; padding-left:.06em; pointer-events:none; user-select:none;
  font-family:var(--font-display); font-weight:700; font-size:clamp(48px,12vw,190px); line-height:1; letter-spacing:.06em;
  color:transparent; -webkit-text-stroke:1.5px rgba(160,205,255,.45);
  background:linear-gradient(180deg,rgba(150,200,255,.34),rgba(150,200,255,0) 78%); -webkit-background-clip:text; background-clip:text;
  white-space:nowrap; overflow:hidden;
}
.ms-kicker{ position:absolute; z-index:2; left:0; right:0; top:calc(15% + clamp(54px,13.4vw,214px)); text-align:center; font-size:clamp(10px,1vw,13px); font-weight:800; letter-spacing:.42em; text-transform:uppercase; color:rgba(200,225,255,.7); pointer-events:none; padding-inline:16px; }
.ms-shimmer{ animation:msShimmer 5s ease-in-out infinite; }
@keyframes msShimmer{ 0%,100%{ opacity:.12; transform:translateX(-10px); } 50%{ opacity:.75; transform:translateX(12px); } }
.ms-smoke{ animation:msSmoke 5.2s ease-out infinite; opacity:0; }
@keyframes msSmoke{ 0%{ opacity:0; transform:translate(0,0) scale(.6); } 18%{ opacity:.55; } 100%{ opacity:0; transform:translate(16px,-46px) scale(2.1); } }
.ms-win{ animation:msFlicker 4.6s ease-in-out infinite; }
@keyframes msFlicker{ 0%,100%{ opacity:.95; } 46%{ opacity:.55; } 52%{ opacity:1; } 78%{ opacity:.7; } }
.ms-walk{ animation:msWalk 90s linear infinite; }
@keyframes msWalk{ from{ transform:translateX(-160px); } to{ transform:translateX(1780px); } }
.ms-bob{ animation:msBob .9s ease-in-out infinite; }
@keyframes msBob{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-1.6px); } }
.ms-flag{ transform-box:fill-box; transform-origin:50% 0; animation:msFlag 1.9s ease-in-out infinite; }
@keyframes msFlag{ 0%,100%{ transform:rotate(-7deg) scaleY(1); } 50%{ transform:rotate(8deg) scaleY(.88); } }
.ms-par{ transition:transform .5s var(--ease); will-change:transform; }
@media (prefers-reduced-motion:reduce){ .manang-scene *{ animation:none !important; transition:none !important; } .ms-smoke{ opacity:.3; } }

.footer-bottom{ position:relative; display:flex; justify-content:space-between; align-items:center; padding-block:22px; flex-wrap:wrap; gap:12px 24px; font-size:13px; color:rgba(255,255,255,.5); }
.footer-bottom a{ color:rgba(255,255,255,.66); transition:color .25s; }
.footer-bottom a:hover{ color:var(--blue-400); }
.footer-legal{ display:flex; gap:22px; flex-wrap:wrap; }
.footer-credit a{ font-weight:700; color:#fff; text-decoration:underline; text-decoration-color:rgba(255,255,255,.35); text-underline-offset:4px; transition:color .25s, text-decoration-color .25s; }
.footer-credit a:hover{ color:#bfe0ff; text-decoration-color:#bfe0ff; }
.footer-end{ background:transparent; border:0; }

@media (max-width:1080px){
  .footer-grid{ grid-template-columns:1fr 1fr; }
  .footer-brand{ grid-column:1 / -1; }
  .footer-brand p{ max-width:60ch; }
}
@media (max-width:720px){
  .site-footer{ border-radius:0; }
  .footer-grid{ grid-template-columns:1fr; gap:34px; }
  .footer-bottom{ flex-direction:column; align-items:flex-start; text-align:left; }
  .footer-legal{ justify-content:flex-start; }
  .footer-credit{ text-align:left; }
  /* centre the village (stupa at x≈860 of 1600) in the scene on mobile */
  .manang-scene > svg{ left:-70px; width:calc(100% + 70px); }
}


.to-top{ position:fixed; right:26px; bottom:26px; z-index:900; width:52px; height:52px; border-radius:50%; background:linear-gradient(135deg,var(--blue-500),var(--blue-700)); color:#fff; display:flex; align-items:center; justify-content:center; box-shadow:0 12px 28px -6px rgba(10,92,194,0.6); opacity:0; visibility:hidden; transform:translateY(12px); transition:opacity .35s var(--ease), transform .35s var(--ease), visibility .35s; }
.to-top.show{ opacity:1; visibility:visible; transform:translateY(0); }
.to-top:hover{ background:var(--blue-600); transform:translateY(-3px); }
.to-top .icon{ width:20px; height:20px; }

/* ============================================
   15. TOUR / HOTEL DETAIL PAGES
============================================ */
.detail-layout{ display:grid; grid-template-columns:240px 1fr 300px; gap:44px; align-items:start; }
.detail-side-nav{ position:sticky; top:calc(var(--stick,var(--nav-h)) + var(--title-h,0px) + 24px); display:flex; flex-direction:column; gap:2px; }
.detail-side-nav a{ display:flex; align-items:center; gap:10px; padding:11px 16px; border-radius:10px; font-size:14px; font-weight:700; color:var(--stone); transition:background .25s, color .25s; border-left:2px solid var(--line); }
.detail-side-nav a:hover{ color:var(--blue-600); background:var(--blue-100); }
.detail-side-nav a.active{ color:var(--terracotta); background:var(--blue-100); border-left:2px solid var(--terracotta); }
.detail-side-nav a .icon{ width:18px; height:18px; flex-shrink:0; }
.detail-side-nav a .dsn-text{ overflow:hidden; text-overflow:ellipsis; }
.detail-main h2{ font-size:1.7rem; margin-top:6px; }
.detail-block{ padding-top:60px; margin-top:-30px; }
.detail-block:first-child{ padding-top:0; margin-top:0; }
.detail-main p{ color:var(--ink-soft); font-size:15.5px; line-height:1.8; margin-top:16px; }
.detail-main .eyebrow{ margin-bottom:0; }
.highlight-grid{ display:grid; grid-template-columns:1fr 1fr; gap:12px 22px; margin-top:22px; }
.highlight-grid li{ display:flex; gap:10px; align-items:flex-start; font-weight:600; font-size:14.5px; color:var(--ink-soft); }
.highlight-grid .icon{ width:18px; height:18px; color:var(--sage); flex-shrink:0; margin-top:2px; }

.incl-excl-grid{ display:grid; grid-template-columns:1fr 1fr; gap:32px; margin-top:22px; }
.incl-excl-grid h4{ font-family:var(--font-display); font-size:1.02rem; margin-bottom:14px; }
.incl-excl-grid ul{ display:flex; flex-direction:column; gap:12px; }
.incl-excl-grid li{ display:flex; gap:10px; align-items:flex-start; font-size:14.3px; color:var(--ink-soft); line-height:1.5; }
.incl-list .icon{ width:17px; height:17px; color:var(--sage); flex-shrink:0; margin-top:2px; }
.excl-list .icon{ width:17px; height:17px; color:var(--terracotta); flex-shrink:0; margin-top:2px; }
@media (max-width:640px){ .incl-excl-grid{ grid-template-columns:1fr; gap:24px; } }

.facts-box{ position:sticky; top:calc(var(--stick,var(--nav-h)) + var(--title-h,0px) + 24px); background:var(--paper); border:1px solid var(--line); border-radius:var(--radius-md); padding:28px; box-shadow:var(--shadow-md); }
.facts-box h4{ font-family:var(--font-display); font-size:1.2rem; margin-bottom:18px; }
.facts-list{ display:flex; flex-direction:column; }
.facts-list li{ display:flex; justify-content:space-between; gap:12px; padding:13px 0; border-bottom:1px solid var(--line); font-size:13.8px; }
.facts-list li:last-child{ border-bottom:none; }
.facts-list .k{ color:var(--stone); font-weight:600; }
.facts-list .v{ color:var(--ink); font-weight:700; text-align:right; }
.facts-box .btn{ width:100%; margin-top:20px; }
.facts-price{ text-align:center; padding:14px; background:var(--blue-100); border-radius:12px; margin-bottom:18px; }
.facts-price .cur{ font-size:12px; font-weight:700; color:var(--blue-700); text-transform:uppercase; letter-spacing:0.06em; }
.facts-price .amt{ font-family:var(--font-display); font-size:1.9rem; color:var(--blue-900); font-weight:700; margin-top:2px; }

.itin-day{ border:1px solid var(--line); border-radius:14px; margin-top:14px; overflow:hidden; }
.itin-day-trigger{ width:100%; display:flex; align-items:center; justify-content:space-between; gap:16px; padding:20px 22px; text-align:left; background:var(--paper); transition:background .25s; }
.itin-day-trigger:hover{ background:var(--cream); }
.itin-day-trigger .day-tag{ font-size:11.5px; font-weight:800; letter-spacing:0.08em; text-transform:uppercase; color:var(--terracotta); display:block; margin-bottom:4px; }
.itin-day-trigger h4{ font-family:var(--font-display); font-size:1.08rem; font-weight:600; }
.itin-day-trigger .caret{ width:20px; height:20px; color:var(--stone); flex-shrink:0; transition:transform .35s var(--ease); }
.itin-day.open .itin-day-trigger .caret{ transform:rotate(180deg); color:var(--terracotta); }
.itin-day-panel{ max-height:0; overflow:hidden; transition:max-height .5s var(--ease); background:var(--cream); }
.itin-day.open .itin-day-panel{ max-height:600px; }
.itin-day-panel p{ padding:4px 22px 22px; color:var(--ink-soft); font-size:14.8px; line-height:1.75; margin-top:0; }

.gallery-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:22px; }
.gallery-grid a{ position:relative; border-radius:14px; overflow:hidden; aspect-ratio:4/3; display:block; }
.gallery-grid img{ width:100%; height:100%; object-fit:cover; transition:transform .5s var(--ease); }
.gallery-grid a:hover img{ transform:scale(1.08); }
.gallery-grid a:first-child{ grid-column:span 2; grid-row:span 2; }
.gallery-grid.gallery-grid-plain a:first-child{ grid-column:auto; grid-row:auto; }

/* Simple listing grids (Tours / Hotels / Blog index pages) */
.grid-3{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }
.grid-2{ display:grid; grid-template-columns:1fr 1fr; gap:28px; }
.listing-card{ border-radius:var(--radius-md); overflow:hidden; background:var(--paper); border:1px solid var(--line); transition:transform .4s var(--ease), box-shadow .4s var(--ease); }
.listing-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-md); }
.listing-media{ position:relative; aspect-ratio:4/3; overflow:hidden; }
.listing-media img{ width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease); }
.listing-card:hover .listing-media img{ transform:scale(1.08); }
.listing-cat{ position:absolute; top:16px; left:16px; z-index:2; background:rgba(255,255,255,0.94); color:var(--ink); font-size:11px; font-weight:800; letter-spacing:0.05em; text-transform:uppercase; padding:6px 12px; border-radius:999px; }
.listing-body{ padding:24px 24px 26px; }
.listing-body h3{ font-size:1.24rem; }
.listing-meta{ display:flex; flex-wrap:wrap; gap:8px 16px; margin-top:12px; }
.listing-meta span{ display:flex; align-items:center; gap:6px; font-size:13px; font-weight:600; color:var(--stone); }
.listing-meta .icon{ width:14px; height:14px; color:var(--terracotta); }
.listing-body p{ color:var(--stone); font-size:14.3px; margin-top:12px; }
.listing-read{ margin-top:18px; }

/* Contact page */
.contact-map{ width:100%; height:56vh; min-height:420px; border:0; display:block; }
.contact-info-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.contact-info-card{ padding:30px; border-radius:var(--radius-md); background:var(--paper); border:1px solid var(--line); text-align:center; transition:transform .4s var(--ease), box-shadow .4s var(--ease); }
.contact-info-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-md); }
.contact-info-card .icon-wrap{ width:56px; height:56px; border-radius:16px; background:var(--blue-900); display:flex; align-items:center; justify-content:center; margin:0 auto 18px; }
.contact-info-card .icon-wrap .icon{ color:#fff; width:26px; height:26px; }
.contact-info-card h3{ font-size:1.1rem; margin-bottom:8px; }
.contact-info-card p{ color:var(--stone); font-size:14px; }
.contact-form-grid{ display:grid; grid-template-columns:1.1fr 0.9fr; gap:56px; align-items:flex-start; }
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:16px; }
.form-field{ display:flex; flex-direction:column; gap:8px; }
.form-field.full{ grid-column:1/-1; }
.form-field label{ font-size:13px; font-weight:700; color:var(--ink-soft); }
.form-field input, .form-field textarea, .form-field select{ padding:14px 16px; border-radius:10px; border:1.5px solid var(--line); background:var(--paper); font-size:14.5px; }
.form-field textarea{ resize:vertical; min-height:120px; }
.contact-form .btn{ margin-top:8px; }

/* Package Inquiry form (tour detail pages) */
.inquiry-section{ background:var(--paper); }
.inquiry-card{ max-width:980px; margin-inline:auto; }
.inquiry-head{ text-align:center; padding-bottom:26px; border-bottom:1px solid var(--line); margin-bottom:34px; }
.inquiry-head h2{ text-transform:uppercase; font-weight:800; letter-spacing:0.01em; font-size:clamp(1.7rem,3vw,2.3rem); }
.inquiry-for{ margin-bottom:26px; font-size:15px; }
.inquiry-for strong{ display:block; font-weight:800; color:var(--ink); margin-bottom:4px; }
.inquiry-for span{ color:var(--stone); }
.form-row-3{ display:grid; grid-template-columns:1fr 1fr 1fr; gap:16px; margin-bottom:16px; }
.form-row-split{ display:grid; grid-template-columns:1fr 1.4fr; gap:16px; margin-bottom:16px; align-items:start; }
.form-rooms{ display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
.form-rooms .form-field label{ font-weight:600; color:var(--stone); }
.form-radio-row{ display:flex; align-items:center; gap:22px; margin-bottom:18px; flex-wrap:wrap; }
.form-radio-row .radio-label{ font-size:13px; font-weight:700; color:var(--ink-soft); margin-right:2px; }
.radio-opt{ display:inline-flex; align-items:center; gap:7px; font-size:14.5px; font-weight:600; color:var(--ink-soft); cursor:pointer; }
.radio-opt input{ width:16px; height:16px; accent-color:var(--terracotta); cursor:pointer; }
.inquiry-form .btn{ margin-top:6px; }
@media (max-width:720px){ .form-row-3{ grid-template-columns:1fr; } .form-row-split{ grid-template-columns:1fr; } .form-rooms{ grid-template-columns:1fr 1fr 1fr; } }
@media (max-width:480px){ .form-rooms{ grid-template-columns:1fr; } }

/* ============================================
   16. RESPONSIVE
============================================ */
@media (max-width: 1200px){
  .detail-layout{ grid-template-columns:200px 1fr 280px; gap:32px; }
}
@media (max-width: 1080px){
  .about-grid{ grid-template-columns:1fr; }
  .about-visual{ max-width:440px; margin-inline:auto; }
  .about-text h2{ white-space:normal; }
  .team-grid{ grid-template-columns:repeat(2,1fr); }
  .services-grid{ grid-template-columns:repeat(2,1fr); }
  .blog-grid{ grid-template-columns:repeat(2,1fr); }
  .tour-card3{ flex:0 0 calc(50% - 14px); }
  .grid-3{ grid-template-columns:repeat(2,1fr); }
  .detail-layout{ grid-template-columns:1fr; }
  .detail-side-nav{
    position:sticky; top:calc(var(--stick,var(--nav-h)) + var(--title-h,0px)); z-index:500;
    flex-direction:row; overflow-x:auto; gap:8px;
    margin-bottom:32px; padding:10px 4px;
    background:var(--cream); box-shadow:0 8px 18px -14px rgba(13,58,92,.35);
    -webkit-overflow-scrolling:touch; scrollbar-width:none;
  }
  .detail-side-nav::-webkit-scrollbar{ display:none; }
  .detail-side-nav a{ white-space:nowrap; border-left:none; border-bottom:2px solid var(--line); flex-shrink:0; }
  .facts-box{ position:static; order:-1; }
  .contact-form-grid{ grid-template-columns:1fr; gap:36px; }
  .contact-info-grid{ grid-template-columns:1fr; }
}
@media (max-width: 900px){
  .grid-2{ grid-template-columns:1fr; }
}
@media (max-width: 720px){
  html{ font-size:16px; }
  .container{ padding-inline:20px; }
  .section-pad{ padding-block:68px; }
  .hero{ padding-top:112px; }
  .hero-flags{ display:block; }
  .hero-title, .section-head h2, .tours-head h2, .page-banner h1{ white-space:normal; }
  .section-head p.lead, .tours-head p.lead{ white-space:normal; }
  .team-grid{ grid-template-columns:1fr 1fr; }
  .services-grid{ grid-template-columns:1fr; }
  .tours-head{ flex-direction:column; align-items:flex-start; }
  .blog-grid{ grid-template-columns:1fr; }
  .hotels-grid{ grid-template-columns:1fr; }
  .about-stats{ grid-template-columns:1fr 1fr; }
  .review-card{ flex:0 0 100%; }
  .tour-card3{ flex:0 0 94%; }
  .grid-3{ grid-template-columns:1fr; }
  .photo-banner-scrim{ background:linear-gradient(180deg, rgba(6,18,29,0.4) 0%, rgba(6,18,29,0.9) 70%) !important; }
  .photo-banner{ min-height:auto; padding-block:80px; }
  .photo-banner.align-right .photo-banner-text{ margin-left:0; text-align:left; }
  .photo-banner.align-right .eyebrow{ justify-content:flex-start; }
  .partner-inner{ padding-block:0; gap:36px; }
  .partner-signoff{ left:20px; top:-52px; }
  .partner-bottom{ flex-direction:column; align-items:flex-start; gap:24px; }
  .partner-features{ flex-direction:column; gap:14px; }
  .partner-features li{ border-left:none; padding:0; }
  .gallery-grid{ grid-template-columns:repeat(2,1fr); }
  .gallery-grid a:first-child{ grid-column:span 2; grid-row:span 1; }
  .gallery-grid.gallery-grid-plain a:first-child{ grid-column:auto; grid-row:auto; }
  .form-row{ grid-template-columns:1fr; }
  .page-banner{ min-height:44vh; }
  .detail-side-nav{ justify-content:center; gap:6px; }
  .detail-side-nav a{ padding:12px; border-radius:50%; justify-content:center; }
  .detail-side-nav a .icon{ width:20px; height:20px; }
  .detail-side-nav a .dsn-text{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
  .detail-block{ scroll-margin-top:calc(var(--title-h,0px) + 80px); }
}
@media (max-width: 480px){
  .section-head h2, .tours-head h2, .hero-title, .page-banner h1{ white-space:normal; }
  .section-head p.lead, .tours-head p.lead{ white-space:normal; }
}

/* ---------- width / overflow hardening ---------- */
.form-row > *, .form-row-3 > *, .form-row-split > *, .form-rooms > *, .form-field, .contact-info-grid > *, .grid-2 > *{ min-width:0; }
.form-field input, .form-field textarea, .form-field select{ width:100%; max-width:100%; min-width:0; }
.section-pad > .container > div[class*="reveal"]{ min-width:0; }
img, video, iframe{ max-width:100%; }
@media (max-width:860px){ .form-row-split{ grid-template-columns:1fr; } .form-rooms{ grid-template-columns:repeat(3,minmax(0,1fr)); } }
.contact-form-grid > *{ min-width:0; }
main, section, .section-pad{ overflow-x:clip; } html, body{ overflow-x:clip; }

body.nav-is-hidden:not(:has(.detail-side-nav)) .plan-journey-float{ top:20px; }
.plan-journey-float{ transition:opacity .5s var(--ease), transform .5s var(--ease), visibility .5s, top .45s var(--ease); }

@media (min-width:721px){ .footer-credit{ margin-right:72px; } }


/* =====================================================================
   Round 9 — mobile fixes, services hover, footer night scene, title bar,
   about / go-green / careers pages, team hover
===================================================================== */

/* closed drawer must not leak its shadow onto the page */
.mobile-drawer{ box-shadow:none; visibility:hidden; transition:transform .55s var(--ease), visibility 0s linear .55s; }
.mobile-drawer.open{ box-shadow:-30px 0 80px rgba(0,0,0,.4); visibility:visible; transition:transform .55s var(--ease), visibility 0s; }

/* toggle sits on the right on mobile */
@media (max-width:1080px){ .nav-links ~ .nav-cta{ margin-left:auto; } }

/* ---- Services: icon + title first, details on hover / tap ---- */
.services--hover .service-card{ display:flex; flex-direction:column; min-height:250px; cursor:pointer; outline:none; }
.services--hover .service-card h3{ margin:auto 0 0; transition:color .3s var(--ease); }
.services--hover .service-detail{ display:grid; grid-template-rows:0fr; opacity:0; transition:grid-template-rows .5s var(--ease), opacity .4s var(--ease); }
.services--hover .service-detail > div{ overflow:hidden; min-height:0; }
.services--hover .service-detail p{ padding-top:10px; }
.services--hover .service-card:hover .service-detail,
.services--hover .service-card:focus-within .service-detail,
.services--hover .service-card.is-open .service-detail{ grid-template-rows:1fr; opacity:1; }
.services--hover .service-card:hover h3, .services--hover .service-card.is-open h3{ color:var(--blue-600); }
@media (max-width:720px){
  .services-grid{ grid-template-columns:1fr 1fr; gap:12px; }
  .service-card{ padding:18px 14px; }
  .services--hover .service-card{ min-height:168px; }
  .service-num{ display:none; }
  .service-icon{ width:44px; height:44px; border-radius:13px; margin-bottom:14px; }
  .service-icon .icon{ width:22px; height:22px; }
  .service-card h3{ font-size:.98rem; line-height:1.2; }
  .service-card p{ font-size:12.5px; line-height:1.5; }
}

/* ---- Go Green: two columns on mobile ---- */
.gg-more{ position:relative; z-index:2; margin-top:36px; text-align:center; }
@media (max-width:480px){
  .gg-grid{ grid-template-columns:1fr 1fr; gap:12px; margin-top:32px; }
  .gg-card{ flex-direction:column; text-align:center; padding:18px 10px; gap:10px; }
  .gg-icon{ width:48px; height:48px; }
  .gg-card p{ font-size:12.5px; }
}

/* ---- Footer links: two separate columns on mobile ---- */
@media (max-width:720px){
  .footer-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px 18px; }
  .footer-brand, .footer-contact-card{ grid-column:1 / -1; }
  .footer-col ul a{ font-size:14px; overflow-wrap:anywhere; }
}

/* ---- Tour detail: separate sticky title bar ---- */
:root{ --title-h:0px; }
body{ --stick:var(--nav-h); }
body.nav-is-hidden{ --stick:0px; }
body:has(.detail-titlebar){ --title-h:78px; }
.detail-block{ scroll-margin-top:calc(var(--title-h) + 28px); }
.page-banner--plain{ min-height:60vh; }
.page-banner--plain .page-banner-scrim{ background:linear-gradient(190deg, rgba(8,26,42,.25) 0%, rgba(8,25,40,.72) 100%); }
.page-banner--plain .page-banner-inner{ padding-bottom:26px; }
.page-banner--plain .breadcrumb{ margin-bottom:0; }
.detail-titlebar{
  position:sticky; top:var(--stick); z-index:900; min-height:var(--title-h);
  display:flex; align-items:center;
  background:rgba(255,255,255,.94); backdrop-filter:blur(14px) saturate(160%); -webkit-backdrop-filter:blur(14px) saturate(160%);
  border-bottom:1px solid var(--line); box-shadow:0 14px 30px -24px rgba(6,20,43,.55);
  transition:top .45s var(--ease);
}
.detail-titlebar-inner{ display:flex; align-items:center; gap:14px 28px; width:100%; padding-block:12px; }
.dt-title{ display:flex; flex-direction:column; min-width:0; }
.dt-tag{ font-size:11px; font-weight:800; letter-spacing:.16em; text-transform:uppercase; color:var(--blue-600); }
.dt-title h1{ font-size:clamp(1.15rem,2.2vw,1.8rem); color:var(--ink); margin-top:2px; white-space:normal; overflow-wrap:anywhere; text-wrap:balance; line-height:1.15; text-shadow:none; }
.dt-meta{ display:flex; gap:8px 22px; margin-left:auto; flex-wrap:wrap; }
.dt-meta li{ display:flex; align-items:center; gap:8px; font-size:13.5px; font-weight:700; color:var(--ink-soft); white-space:nowrap; }
.dt-meta .icon{ width:16px; height:16px; color:var(--blue-600); }
.dt-cta{ padding:12px 22px; font-size:14px; flex-shrink:0; }
@media (max-width:1080px){
  .detail-side-nav{ top:calc(var(--stick) + var(--title-h)); }
  .dt-meta{ display:none; }
  .dt-cta{ margin-left:auto; }
}
@media (max-width:720px){
  body:has(.detail-titlebar){ --title-h:64px; }
  .detail-titlebar-inner{ padding-block:8px; gap:12px; }
  .dt-cta{ padding:10px 16px; font-size:13px; }
  .dt-cta .icon{ display:none; }
}

/* ---- Team list: smooth hover, View Profile only on hover ---- */
.team-profile-wrap{ height:100%; }
.team-profile-card{ height:100%; will-change:transform; transition:transform .55s var(--ease), box-shadow .55s var(--ease), background-color .55s var(--ease); }
.team-profile-card:hover, .team-profile-card:focus-within{ transform:translateY(-6px); }
.team-profile-photo img{ transition:transform .9s var(--ease); }
.team-profile-photo::after{ content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(180deg,transparent 45%,rgba(6,20,43,.6) 100%); opacity:0; transition:opacity .55s var(--ease); }
.team-view{
  position:absolute; left:14px; right:14px; bottom:14px; z-index:2; display:flex; align-items:center; justify-content:center; gap:8px;
  padding:12px 18px; border-radius:999px; background:rgba(255,255,255,.96); color:var(--blue-700); font-size:14px; font-weight:700;
  box-shadow:0 14px 30px -14px rgba(6,20,43,.6);
  opacity:0; transform:translateY(18px); transition:opacity .45s var(--ease), transform .6s var(--ease), background-color .3s, color .3s;
}
.team-view .icon{ width:16px; height:16px; transition:transform .4s var(--ease); }
.team-view:hover{ background:var(--blue-600); color:#fff; }
.team-view:hover .icon{ transform:translateX(4px); }
.team-profile-card:hover .team-view, .team-profile-card:focus-within .team-view{ opacity:1; transform:none; }
.team-profile-card:hover .team-profile-photo::after, .team-profile-card:focus-within .team-profile-photo::after{ opacity:1; }
@media (hover:none){ .team-view{ opacity:1; transform:none; } .team-profile-photo::after{ opacity:1; } }
.team-profile-body{ padding:20px 22px 24px; }

/* ---- About: Discover Nepal + eco practices ---- */
.discover-grid{ display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(28px,5vw,80px); align-items:start; margin-top:48px; }
.discover-grid > *{ min-width:0; }
.discover-lead{ position:sticky; top:calc(var(--stick) + 28px); }
.discover-quote{ font-family:var(--font-display); font-size:clamp(1.4rem,2.4vw,2rem); line-height:1.28; font-weight:600; color:var(--ink); padding-left:22px; border-left:4px solid var(--blue-500); }
.discover-facts{ display:grid; gap:14px; margin-top:32px; }
.discover-facts li{ display:flex; align-items:center; gap:18px; padding:16px 20px; border-radius:var(--radius-md); background:var(--cream); border:1px solid var(--line); }
.discover-facts strong{ font-family:var(--font-display); font-size:1.55rem; color:var(--blue-600); min-width:5.4ch; line-height:1; }
.discover-facts span{ font-size:14px; color:var(--stone); font-weight:600; line-height:1.4; }
.discover-text p{ font-size:1.07rem; line-height:1.85; color:var(--ink-soft); }
.discover-text p + p{ margin-top:20px; }
.eco-grid{ margin-top:48px; display:grid; grid-template-columns:repeat(2,1fr); gap:22px; }
.eco-card{ position:relative; padding:30px 28px; border-radius:var(--radius-md); background:var(--paper); border:1px solid var(--line); overflow:hidden; }
.eco-card.reveal.in-view{ transition:opacity .8s var(--ease), transform .5s var(--ease), box-shadow .5s var(--ease), border-color .5s; }
.eco-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-md); border-color:transparent; }
.eco-num{ position:absolute; top:18px; right:22px; font-family:var(--font-display); font-size:2.2rem; font-weight:600; color:var(--line); }
.eco-ico{ width:50px; height:50px; border-radius:15px; background:linear-gradient(135deg,var(--blue-500),var(--blue-700)); display:grid; place-items:center; margin-bottom:18px; }
.eco-ico .icon{ width:24px; height:24px; color:#fff; }
.eco-card h3{ font-size:1.16rem; margin-bottom:10px; padding-right:44px; }
.eco-card p{ color:var(--stone); font-size:15px; }

/* ---- Go Green page ---- */
.gg-detail-grid{ margin-top:48px; display:grid; grid-template-columns:repeat(2,1fr); gap:22px; position:relative; z-index:2; }
.gg-detail{ display:flex; gap:22px; padding:28px; border-radius:var(--radius-md); background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.18); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); }
.gg-detail.reveal.in-view{ transition:opacity .8s var(--ease), transform .5s var(--ease), background-color .4s; }
.gg-detail:hover{ background:rgba(255,255,255,.14); transform:translateY(-6px); }
.gg-detail-icon{ width:68px; height:68px; border-radius:18px; background:rgba(255,255,255,.94); display:grid; place-items:center; flex-shrink:0; }
.gg-detail-icon img{ width:72%; height:72%; object-fit:contain; }
.gg-detail-num{ font-size:12px; font-weight:800; letter-spacing:.16em; color:var(--blue-400); }
.gg-detail h3{ font-size:1.2rem; margin:6px 0 10px; color:#fff; }
.gg-detail p{ color:rgba(255,255,255,.8); font-size:15px; line-height:1.7; }

/* ---- Careers page ---- */
.careers-intro{ display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(28px,5vw,80px); align-items:center; }
.careers-intro > *{ min-width:0; }
.career-vals{ display:grid; gap:16px; }
.career-vals li{ display:flex; gap:18px; padding:22px; border-radius:var(--radius-md); background:var(--cream); border:1px solid var(--line); }
.career-val-ico, .career-role-ico{ width:48px; height:48px; border-radius:14px; background:linear-gradient(135deg,var(--blue-500),var(--blue-700)); display:grid; place-items:center; flex-shrink:0; }
.career-val-ico .icon, .career-role-ico .icon{ color:#fff; width:22px; height:22px; }
.career-vals h3{ font-size:1.05rem; }
.career-vals p{ color:var(--stone); font-size:14.5px; margin-top:4px; }
.career-roles{ margin-top:44px; display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.career-role{ padding:30px 26px; border-radius:var(--radius-md); background:var(--paper); border:1px solid var(--line); }
.career-role.reveal.in-view{ transition:opacity .8s var(--ease), transform .5s var(--ease), box-shadow .5s var(--ease); }
.career-role:hover{ transform:translateY(-6px); box-shadow:var(--shadow-md); }
.career-role-ico{ margin-bottom:18px; }
.career-role h3{ font-size:1.12rem; margin-bottom:8px; }
.career-role p{ color:var(--stone); font-size:14.8px; }
.career-steps{ margin-top:26px; display:grid; gap:20px; counter-reset:st; }
.career-steps li{ counter-increment:st; position:relative; padding:2px 0 2px 62px; }
.career-steps li::before{ content:counter(st); position:absolute; left:0; top:0; width:44px; height:44px; border-radius:50%; background:var(--blue-100); color:var(--blue-700); display:grid; place-items:center; font-family:var(--font-display); font-weight:700; }
.career-steps strong{ display:block; font-family:var(--font-display); font-size:1.05rem; }
.career-steps span{ color:var(--stone); font-size:14.5px; }

@media (max-width:1000px){
  .discover-grid, .careers-intro{ grid-template-columns:1fr; }
  .discover-lead{ position:static; }
  .career-roles{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:760px){
  .eco-grid, .gg-detail-grid{ grid-template-columns:1fr; }
  .gg-detail{ padding:22px; gap:16px; }
  .gg-detail-icon{ width:56px; height:56px; }
}
@media (max-width:560px){ .career-roles{ grid-template-columns:1fr; } }

.footer-contact-card{ align-self:start; }

.btn-outline-ink{ border:1.5px solid var(--ink); color:var(--ink); background:transparent; }
.btn-outline-ink:hover{ background:var(--ink); color:#fff; transform:translateY(-2px); }
.career-steps{ list-style:none; }
@media (max-width:720px){ .ms-kicker{ display:none; } }

.dt-meta, .dt-cta{ display:none !important; }


/* =====================================================================
   Services — image rail (desktop accordion) / tile grid (tablet & mobile)
===================================================================== */
.svc-rail{ position:relative; z-index:2; display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:36px; }
.svc-panel{ position:relative; min-height:236px; border-radius:var(--radius-md); overflow:hidden; isolation:isolate; color:#fff; cursor:pointer; outline:none; box-shadow:0 18px 40px -26px rgba(6,20,43,.6); }
.svc-panel.reveal.in-view{ transition:opacity .8s var(--ease), transform .8s var(--ease); }
.svc-bg{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; transition:transform 1s var(--ease); }
.svc-panel:hover .svc-bg{ transform:scale(1.06); }
.svc-panel::after{ content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg,rgba(6,20,43,.35) 0%,rgba(6,20,43,.25) 40%,rgba(6,20,43,.85) 100%); }
.svc-ico{ position:absolute; top:14px; left:14px; width:44px; height:44px; border-radius:14px; background:rgba(255,255,255,.16); border:1px solid rgba(255,255,255,.32); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); display:grid; place-items:center; transition:background .4s var(--ease), border-color .4s; }
.svc-ico .icon{ width:22px; height:22px; color:#fff; }
.svc-num{ display:none; }
.svc-list{ display:contents; }
.svc-stage{ display:none; }
.svc-prog{ display:none; }
.svc-vtitle{ position:absolute; left:14px; right:14px; bottom:14px; font-size:.98rem; font-weight:600; line-height:1.2; transition:opacity .3s; }
.svc-body{ position:absolute; inset:0; padding:16px 14px; display:flex; flex-direction:column; justify-content:flex-end; background:linear-gradient(180deg,rgba(6,20,43,.6),rgba(6,20,43,.96)); opacity:0; pointer-events:none; transition:opacity .4s var(--ease); }
.svc-body h3{ font-size:1rem; line-height:1.2; }
.svc-body p{ margin-top:6px; font-size:12.5px; line-height:1.5; color:rgba(255,255,255,.86); }
.svc-link{ display:inline-flex; align-items:center; gap:8px; align-self:flex-start; margin-top:12px; padding:8px 14px; border-radius:999px; background:#fff; color:var(--blue-700); font-weight:700; font-size:12.5px; }
.svc-link .icon{ width:14px; height:14px; }
.svc-panel.is-open .svc-body{ opacity:1; pointer-events:auto; }
.svc-panel{ transition:min-height .5s var(--ease), box-shadow .4s; }
@media (max-width:639px){ .svc-panel.is-open{ min-height:310px; } }
.svc-panel.is-open .svc-vtitle{ opacity:0; }
.svc-panel.is-open .svc-ico{ background:linear-gradient(135deg,var(--blue-500),var(--blue-700)); border-color:transparent; }
@media (min-width:640px){
  .svc-rail{ grid-template-columns:repeat(3,1fr); gap:16px; }
  .svc-panel{ min-height:300px; }
  .svc-body{ padding:22px 20px; }
  .svc-body h3{ font-size:1.15rem; }
  .svc-body p{ font-size:14px; }
  .svc-vtitle{ font-size:1.1rem; left:20px; right:20px; bottom:20px; }
  .svc-ico{ top:18px; left:18px; }
}

/* ---- Premium showcase (desktop, JS-enhanced) ---- */
@keyframes svcKen{ from{ transform:scale(1.16); } to{ transform:scale(1); } }
@keyframes svcProg{ from{ transform:scaleX(0); } to{ transform:scaleX(1); } }
@keyframes svcSheen{ from{ transform:translateX(-120%) skewX(-18deg); } to{ transform:translateX(260%) skewX(-18deg); } }
@keyframes svcPulse{ 0%{ box-shadow:0 0 0 0 rgba(77,163,255,.55); } 100%{ box-shadow:0 0 0 14px rgba(77,163,255,0); } }
@media (min-width:1081px){
  .svc-rail.is-showcase{ display:grid; grid-template-columns:minmax(380px,.78fr) 1.5fr; gap:34px; height:clamp(580px,43vw,660px); margin-top:56px; align-items:stretch; }
  .is-showcase .svc-list{ display:flex; flex-direction:column; gap:10px; min-height:0; }

  /* rows */
  .is-showcase .svc-panel{ flex:1 1 0; min-height:0; display:flex; align-items:center; gap:18px; padding:0 24px; border-radius:20px; background:#fff; border:1px solid var(--line); color:var(--ink); box-shadow:0 1px 0 rgba(10,70,154,.04); translate:0 0; transition:translate .55s var(--ease), border-color .35s, background .35s, box-shadow .55s var(--ease), color .35s; }
  .is-showcase .svc-panel.reveal.in-view{ transition:opacity .8s var(--ease), transform .8s var(--ease), translate .55s var(--ease), border-color .35s, background .35s, box-shadow .55s var(--ease), color .35s; }
  .is-showcase .svc-panel::before{ content:""; position:absolute; inset:0; z-index:-1; border-radius:inherit; background:linear-gradient(105deg,var(--blue-500) 0%,var(--blue-700) 58%,#082f6b 100%); opacity:0; transition:opacity .5s var(--ease); }
  .is-showcase .svc-panel::after{ content:""; position:absolute; top:0; bottom:0; left:0; width:38%; z-index:-1; background:linear-gradient(90deg,transparent,rgba(255,255,255,.22),transparent); transform:translateX(-120%) skewX(-18deg); pointer-events:none; }
  .is-showcase .svc-panel.is-active::after{ animation:svcSheen 1.1s var(--ease) .1s 1 both; }
  .is-showcase .svc-bg, .is-showcase .svc-body{ display:none; }
  .is-showcase .svc-ico{ position:static; transform:none; flex:none; width:50px; height:50px; border-radius:16px; background:var(--blue-100); border:0; backdrop-filter:none; -webkit-backdrop-filter:none; transition:background .4s, transform .5s var(--ease); }
  .is-showcase .svc-ico .icon{ width:23px; height:23px; color:var(--blue-600); transition:color .4s; }
  .is-showcase .svc-vtitle{ position:static; writing-mode:horizontal-tb; transform:none; flex:1; min-width:0; font-size:1.08rem; font-weight:600; letter-spacing:0; white-space:normal; opacity:1; }
  .is-showcase .svc-num{ display:block; position:static; font-family:var(--font-display); font-size:.95rem; font-weight:600; letter-spacing:.08em; color:var(--blue-500); opacity:.55; transition:opacity .4s, color .4s; }
  .is-showcase .svc-panel:not(.is-active):hover{ border-color:rgba(26,114,220,.45); background:#f6faff; }
  .is-showcase .svc-panel:not(.is-active):hover .svc-ico{ transform:scale(1.08) rotate(-4deg); }
  .is-showcase .svc-panel.is-active{ color:#fff; border-color:transparent; translate:12px 0; box-shadow:0 26px 46px -24px rgba(10,70,154,.7); }
  .is-showcase .svc-panel.is-active::before{ opacity:1; }
  .is-showcase .svc-panel.is-active .svc-ico{ background:rgba(255,255,255,.18); }
  .is-showcase .svc-panel.is-active .svc-ico .icon{ color:#fff; }
  .is-showcase .svc-panel.is-active .svc-num{ color:#fff; opacity:.8; }
  .is-showcase .svc-panel:focus-visible{ outline:2px solid var(--blue-400); outline-offset:3px; }
  .is-showcase .svc-prog{ display:block; position:absolute; left:0; right:0; bottom:0; height:3px; background:rgba(255,255,255,.9); transform:scaleX(0); transform-origin:left; border-radius:0 3px 3px 0; }
  .is-showcase .svc-panel.is-active .svc-prog{ animation:svcProg var(--svc-dur,7s) linear forwards; }
  .is-showcase.is-paused .svc-prog, .is-showcase.is-offscreen .svc-prog{ animation-play-state:paused; }

  /* stage */
  .is-showcase .svc-stage{ display:block; position:relative; isolation:isolate; overflow:hidden; border-radius:var(--radius-lg); background:var(--blue-900); box-shadow:0 44px 80px -42px rgba(6,20,43,.7); --mx:50%; --my:50%; --px:0px; --py:0px; transition:opacity 1s var(--ease), transform 1.1s var(--ease); }
  .svc-rail.is-showcase:not(.svc-in) .svc-stage{ opacity:0; transform:translateY(46px) scale(.97); }
  .svc-slide{ position:absolute; inset:0; z-index:0; clip-path:inset(0 0 0 100%); visibility:hidden; transition:clip-path 1.05s cubic-bezier(.77,0,.18,1); }
  .svc-slide img{ width:100%; height:100%; object-fit:cover; display:block; translate:var(--px) var(--py); scale:1.06; transition:translate .6s var(--ease); }
  .svc-slide.is-active{ z-index:2; clip-path:inset(0 0 0 0); visibility:visible; }
  .svc-slide.is-leaving{ z-index:1; clip-path:inset(0 0 0 0); visibility:visible; transition:none; }
  .svc-slide.is-active img, .svc-slide.is-leaving img{ animation:svcKen 9s ease-out forwards; }
  .svc-slide::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(6,20,43,.5) 0%,rgba(6,20,43,0) 28%,rgba(6,20,43,.25) 55%,rgba(6,20,43,.9) 100%); pointer-events:none; }
  .svc-spot{ position:absolute; inset:0; z-index:3; pointer-events:none; background:radial-gradient(520px circle at var(--mx) var(--my),rgba(77,163,255,.2),transparent 62%); mix-blend-mode:screen; opacity:0; transition:opacity .5s; }
  .svc-stage:hover .svc-spot{ opacity:1; }

  .svc-top{ position:absolute; z-index:5; top:26px; left:30px; right:26px; display:flex; align-items:center; justify-content:space-between; color:#fff; pointer-events:none; }
  .svc-count{ font-family:var(--font-display); display:flex; align-items:baseline; gap:8px; }
  .svc-count b{ font-size:2.8rem; font-weight:600; line-height:1; letter-spacing:-.02em; display:inline-block; }
  .svc-count b.is-tick{ animation:svcTick .6s var(--ease); }
  .svc-count span{ font-size:1rem; font-weight:500; opacity:.6; }
  @keyframes svcTick{ from{ opacity:0; transform:translateY(14px); } to{ opacity:1; transform:none; } }
  .svc-nav{ display:flex; gap:10px; pointer-events:auto; }
  .svc-nav button{ width:46px; height:46px; border-radius:50%; border:1px solid rgba(255,255,255,.35); background:rgba(255,255,255,.14); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); color:#fff; display:grid; place-items:center; cursor:pointer; transition:background .3s, transform .35s var(--ease), color .3s; }
  .svc-nav button .icon{ width:18px; height:18px; }
  .svc-nav button:hover{ background:#fff; color:var(--blue-700); transform:scale(1.08); }
  .svc-nav button:focus-visible{ outline:2px solid #fff; outline-offset:3px; }

  .svc-card{ position:absolute; z-index:4; left:30px; bottom:30px; width:min(560px,calc(100% - 60px)); padding:30px 32px 32px; border-radius:24px; color:#fff; background:linear-gradient(160deg,rgba(10,32,70,.55),rgba(6,20,43,.62)); border:1px solid rgba(255,255,255,.18); backdrop-filter:blur(18px) saturate(1.35); -webkit-backdrop-filter:blur(18px) saturate(1.35); box-shadow:0 30px 60px -30px rgba(0,0,0,.6); }
  .svc-card{ opacity:0; transition:opacity .35s var(--ease); }
  .svc-slide.is-active .svc-card{ opacity:1; transition-delay:.3s; }
  .svc-card > *{ opacity:0; transform:translateY(22px); transition:opacity .5s var(--ease), transform .7s var(--ease); }
  .svc-slide.is-active .svc-card > *{ opacity:1; transform:none; }
  .svc-slide.is-active .svc-card > *:nth-child(1){ transition-delay:.45s; }
  .svc-slide.is-active .svc-card > *:nth-child(2){ transition-delay:.55s; }
  .svc-slide.is-active .svc-card > *:nth-child(3){ transition-delay:.65s; }
  .svc-slide.is-active .svc-card > *:nth-child(4){ transition-delay:.75s; }
  .svc-slide.is-active .svc-card > *:nth-child(5){ transition-delay:.85s; }
  .svc-kicker{ display:inline-flex; align-items:center; gap:10px; font-size:12px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:rgba(255,255,255,.82); }
  .svc-kicker i{ width:34px; height:34px; border-radius:11px; display:grid; place-items:center; background:linear-gradient(135deg,var(--blue-500),var(--blue-700)); animation:svcPulse 2.4s ease-out infinite; }
  .svc-kicker .icon{ width:17px; height:17px; color:#fff; }
  .svc-card h3{ margin-top:16px; font-size:clamp(1.8rem,2.5vw,2.4rem); line-height:1.12; letter-spacing:-.01em; }
  .svc-card p{ margin-top:12px; font-size:15.5px; line-height:1.65; color:rgba(255,255,255,.88); max-width:48ch; }
  .svc-chips{ display:flex; flex-wrap:wrap; gap:8px; margin-top:18px; }
  .svc-chips li{ padding:7px 14px; border-radius:999px; font-size:12.5px; font-weight:600; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.22); }
  .svc-cta{ display:inline-flex; align-items:center; gap:10px; margin-top:24px; padding:13px 24px; border-radius:999px; background:#fff; color:var(--blue-700); font-weight:700; font-size:14.5px; transition:background .3s, color .3s, gap .35s var(--ease), box-shadow .3s; }
  .svc-cta .icon{ width:16px; height:16px; transition:transform .35s var(--ease); }
  .svc-cta:hover{ background:var(--blue-500); color:#fff; gap:14px; box-shadow:0 14px 30px -12px rgba(26,114,220,.8); }
  .svc-cta:hover .icon{ transform:translateX(3px); }
  .svc-cta:focus-visible{ outline:2px solid #fff; outline-offset:3px; }
}
@media (prefers-reduced-motion:reduce){
  .svc-slide, .svc-slide img, .svc-card > *, .is-showcase .svc-panel{ transition:none !important; animation:none !important; }
  .is-showcase .svc-panel.is-active .svc-prog{ animation:none; transform:scaleX(1); }
  .svc-kicker i{ animation:none !important; }
}

/* ---------- Lightbox ---------- */
.gallery-grid a{ cursor:zoom-in; }
.gallery-grid a::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 55%,rgba(6,20,43,.55)); opacity:0; transition:opacity .4s var(--ease); pointer-events:none; }
.gallery-grid a::before{ content:""; position:absolute; z-index:2; right:14px; bottom:14px; width:42px; height:42px; border-radius:50%; background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230a5cc2' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='6'/%3E%3Cpath d='M20 20l-4-4M11 8v6M8 11h6'/%3E%3C/svg%3E") center/20px no-repeat; opacity:0; transform:scale(.7); transition:opacity .4s var(--ease), transform .45s var(--ease); pointer-events:none; }
.gallery-grid a:hover::after, .gallery-grid a:focus-visible::after{ opacity:1; }
.gallery-grid a:hover::before, .gallery-grid a:focus-visible::before{ opacity:1; transform:none; }
.lightbox{ position:fixed; inset:0; z-index:3000; display:grid; grid-template-rows:1fr auto; opacity:0; visibility:hidden; transition:opacity .35s var(--ease), visibility .35s; }
.lightbox[hidden]{ display:none; }
.lightbox.open{ opacity:1; visibility:visible; }
.lb-backdrop{ position:absolute; inset:0; background:rgba(3,10,22,.94); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); }
.lb-stage{ position:relative; z-index:1; margin:0; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:64px 84px 8px; min-height:0; }
.lb-img{ max-width:100%; max-height:calc(100vh - 230px); width:auto; height:auto; object-fit:contain; border-radius:14px; box-shadow:0 40px 90px -30px rgba(0,0,0,.8); opacity:0; transform:translateX(var(--lb-from,0px)) scale(.94); }
.lb-img.is-in{ opacity:1; transform:none; transition:opacity .45s var(--ease), transform .6s var(--ease); }
.lb-cap{ margin-top:14px; display:flex; gap:14px; align-items:center; color:rgba(255,255,255,.8); font-size:13.5px; font-weight:600; max-width:90%; text-align:center; }
.lb-count{ padding:4px 12px; border-radius:999px; background:rgba(255,255,255,.12); font-variant-numeric:tabular-nums; letter-spacing:.06em; }
.lb-btn{ position:absolute; z-index:3; width:48px; height:48px; border-radius:50%; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.2); color:#fff; display:grid; place-items:center; transition:background .3s, transform .35s var(--ease); }
.lb-btn:hover{ background:var(--blue-600); border-color:transparent; }
.lb-btn .icon{ width:20px; height:20px; }
.lb-close{ top:18px; right:18px; }
.lb-close:hover{ transform:rotate(90deg); }
.lb-prev{ left:18px; top:calc(50% - 60px); } .lb-next{ right:18px; top:calc(50% - 60px); }
.lb-prev:hover{ transform:translateX(-4px); } .lb-next:hover{ transform:translateX(4px); }
.lb-thumbs{ position:relative; z-index:2; display:flex; gap:10px; justify-content:center; padding:10px 20px 22px; overflow-x:auto; scrollbar-width:none; }
.lb-thumbs::-webkit-scrollbar{ display:none; }
.lb-thumbs[hidden]{ display:none; }
.lb-thumb{ flex:0 0 auto; width:72px; height:52px; border-radius:10px; overflow:hidden; opacity:.5; border:2px solid transparent; transition:opacity .3s, border-color .3s, transform .35s var(--ease); }
.lb-thumb img{ width:100%; height:100%; object-fit:cover; }
.lb-thumb:hover{ opacity:.85; transform:translateY(-3px); }
.lb-thumb.is-current{ opacity:1; border-color:var(--blue-400); }
@media (max-width:720px){
  .lb-stage{ padding:64px 12px 4px; }
  .lb-img{ max-height:calc(100vh - 210px); border-radius:10px; }
  .lb-btn{ width:42px; height:42px; }
  .lb-prev{ left:8px; top:auto; bottom:92px; } .lb-next{ right:8px; top:auto; bottom:92px; }
  .lb-thumb{ width:56px; height:42px; }
}
@media (prefers-reduced-motion:reduce){ .lb-img.is-in, .lightbox{ transition:none; } }


/* ---------- Careers: vacancy list ---------- */
.vac-list{ margin-top:44px; display:grid; gap:16px; }
.vac{ display:flex; align-items:center; justify-content:space-between; gap:24px 36px; padding:26px 30px; border-radius:var(--radius-md); background:var(--cream); border:1px solid var(--line); position:relative; overflow:hidden; }
.vac::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:4px; background:linear-gradient(180deg,var(--blue-400),var(--blue-700)); transform:scaleY(0); transform-origin:top; transition:transform .5s var(--ease); }
.vac.reveal.in-view{ transition:opacity .8s var(--ease), transform .5s var(--ease), box-shadow .5s var(--ease), background-color .4s; }
.vac:hover{ transform:translateY(-4px); box-shadow:var(--shadow-md); background:var(--paper); }
.vac:hover::before{ transform:scaleY(1); }
.vac-main{ min-width:0; flex:1; }
.vac-tags{ display:flex; flex-wrap:wrap; gap:8px; }
.vac-tag{ padding:5px 12px; border-radius:999px; font-size:11.5px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; background:var(--paper); border:1px solid var(--line); color:var(--stone); }
.vac-tag--dept{ background:var(--blue-100); border-color:transparent; color:var(--blue-700); }
.vac h3{ margin-top:12px; font-size:1.3rem; }
.vac p{ margin-top:8px; color:var(--stone); font-size:15px; max-width:70ch; }
.vac-meta{ display:flex; flex-wrap:wrap; gap:8px 22px; margin-top:14px; }
.vac-meta li{ display:flex; align-items:center; gap:8px; font-size:13.5px; font-weight:700; color:var(--ink-soft); }
.vac-meta .icon{ width:16px; height:16px; color:var(--blue-600); }
.vac-apply{ flex-shrink:0; }
.vac-note{ margin-top:30px; text-align:center; color:var(--stone); }
.vac-note a{ color:var(--blue-600); font-weight:700; text-decoration:underline; text-underline-offset:4px; }
@media (max-width:760px){
  .vac{ flex-direction:column; align-items:flex-start; padding:22px 20px; }
  .vac-apply{ width:100%; justify-content:center; }
}

/* drawer: roomier side padding */
.mobile-drawer{ padding-left:clamp(28px,8.5vw,40px); padding-right:clamp(28px,8.5vw,40px); }
@media (max-width:360px){ .md-top .brand img{ height:34px; } .drawer-close{ width:40px; height:40px; } }
/* ============================================
   404 PAGE
============================================ */
.nf-hero{
  position:relative; isolation:isolate; overflow:hidden; color:#fff; text-align:center;
  min-height:100vh; min-height:100svh; display:flex; align-items:center; justify-content:center;
  padding:calc(var(--nav-h) + 24px) 0 clamp(190px,26vw,330px);
  background:linear-gradient(180deg,#030b1c 0%,#071d44 48%,#0a3a7e 82%,#041229 100%);
}
.nf-inner{ position:relative; z-index:5; display:flex; flex-direction:column; align-items:center; }
.nf-eyebrow{ justify-content:center; animation:nfRise .8s var(--ease) both; }
.nf-code{ display:flex; align-items:center; justify-content:center; gap:clamp(4px,1.6vw,18px); margin:6px 0 4px; animation:nfRise .9s .08s var(--ease) both; }
.nf-digit{
  font-family:var(--font-display); font-weight:700; line-height:1; font-size:clamp(5.6rem,19vw,13rem); letter-spacing:-.02em;
  color:transparent; -webkit-text-stroke:2px rgba(190,225,255,.75);
  background:linear-gradient(180deg,rgba(190,225,255,.5),rgba(190,225,255,0) 85%); -webkit-background-clip:text; background-clip:text;
  animation:nfFloat 5s ease-in-out infinite;
}
.nf-code .nf-digit:last-child{ animation-delay:-2.5s; }
.nf-compass{ width:clamp(5rem,17vw,11.6rem); height:auto; flex-shrink:0; filter:drop-shadow(0 0 28px rgba(77,163,255,.45)); animation:nfFloat 5s -1.2s ease-in-out infinite; }
.nf-needle{ transform-box:view-box; transform-origin:60px 60px; animation:nfNeedle 7s ease-in-out infinite; }
.nf-hero h1{ font-size:clamp(1.7rem,4.2vw,3rem); color:#fff; max-width:22ch; text-wrap:balance; animation:nfRise .9s .18s var(--ease) both; }
.nf-lead{ max-width:54ch; margin-top:16px; font-size:clamp(15px,1.4vw,17px); line-height:1.75; color:rgba(220,236,255,.78); animation:nfRise .9s .28s var(--ease) both; }
.nf-actions{ display:flex; gap:14px; flex-wrap:wrap; justify-content:center; margin-top:30px; animation:nfRise .9s .38s var(--ease) both; }
.nf-links{ display:flex; gap:10px 22px; flex-wrap:wrap; justify-content:center; margin-top:28px; animation:nfRise .9s .48s var(--ease) both; }
.nf-links a{ display:inline-flex; align-items:center; gap:8px; font-size:14px; font-weight:700; color:rgba(220,236,255,.72); transition:color .25s, transform .3s var(--ease); }
.nf-links a:hover{ color:#fff; transform:translateY(-2px); }
.nf-links .icon{ width:16px; height:16px; color:var(--blue-400); }

/* sky */
.nf-stars{ position:absolute; inset:0; z-index:0; pointer-events:none; background-repeat:repeat; }
.nf-stars-a{
  background-image:
    radial-gradient(1.4px 1.4px at 12% 18%,#fff,transparent 60%), radial-gradient(1.2px 1.2px at 28% 62%,#dcecff,transparent 60%),
    radial-gradient(1.6px 1.6px at 44% 12%,#fff,transparent 60%), radial-gradient(1.2px 1.2px at 63% 38%,#dcecff,transparent 60%),
    radial-gradient(1.4px 1.4px at 78% 22%,#fff,transparent 60%), radial-gradient(1.2px 1.2px at 91% 56%,#fff,transparent 60%),
    radial-gradient(1.2px 1.2px at 6% 82%,#dcecff,transparent 60%), radial-gradient(1.6px 1.6px at 52% 74%,#fff,transparent 60%);
  background-size:520px 420px; animation:nfTwinkle 4.2s ease-in-out infinite;
}
.nf-stars-b{
  background-image:
    radial-gradient(1.2px 1.2px at 20% 40%,#fff,transparent 60%), radial-gradient(1.4px 1.4px at 36% 86%,#dcecff,transparent 60%),
    radial-gradient(1.2px 1.2px at 58% 8%,#fff,transparent 60%), radial-gradient(1.6px 1.6px at 72% 66%,#fff,transparent 60%),
    radial-gradient(1.2px 1.2px at 88% 30%,#dcecff,transparent 60%), radial-gradient(1.2px 1.2px at 4% 52%,#fff,transparent 60%);
  background-size:380px 340px; animation:nfTwinkle 5.6s -2.2s ease-in-out infinite;
}
.nf-moon{
  position:absolute; z-index:1; top:calc(var(--nav-h) + 18px); right:clamp(18px,9vw,150px); width:clamp(54px,7vw,96px); aspect-ratio:1; border-radius:50%;
  background:radial-gradient(circle at 34% 32%,#ffffff,#d6e8ff 55%,#9fc4f2 100%); box-shadow:0 0 60px 14px rgba(150,200,255,.28), 0 0 160px 50px rgba(90,150,230,.16);
  animation:nfMoon 8s ease-in-out infinite;
}
.nf-cloud{ position:absolute; z-index:2; width:clamp(150px,22vw,320px); height:auto; pointer-events:none; }
.nf-cloud-1{ top:26%; left:-20%; animation:nfDrift 46s linear infinite; }
.nf-cloud-2{ top:44%; left:-20%; width:clamp(110px,16vw,240px); animation:nfDrift 64s -26s linear infinite; }
.nf-snow{ position:absolute; inset:0; z-index:3; pointer-events:none; overflow:hidden; }
.nf-snow i{ position:absolute; top:-10px; left:var(--x); width:var(--s); height:var(--s); border-radius:50%; background:rgba(255,255,255,.85); animation:nfSnow var(--t) var(--d) linear infinite; }

/* scene */
.nf-scene{ position:absolute; left:0; right:0; bottom:0; z-index:4; height:clamp(190px,26vw,340px); pointer-events:none; }
.nf-scene svg{ position:absolute; inset:0; width:100%; height:100%; display:block; }
.nf-flag{ transform-box:fill-box; transform-origin:50% 0; animation:msFlag 1.9s ease-in-out infinite; }
.nf-sign{ transform-box:fill-box; transform-origin:50% 0; animation:nfSwing 3.6s ease-in-out infinite; }
.nf-sign-2{ animation-duration:4.4s; animation-delay:-1.4s; }
.nf-walker{ animation:nfWalk 38s linear infinite; }
.nf-step{ animation:nfStep .7s ease-in-out infinite; }

@keyframes nfRise{ from{ opacity:0; transform:translateY(22px); } to{ opacity:1; transform:none; } }
@keyframes nfFloat{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-10px); } }
@keyframes nfNeedle{ 0%{ transform:rotate(0); } 12%{ transform:rotate(140deg); } 22%{ transform:rotate(-70deg); } 34%{ transform:rotate(250deg); } 46%{ transform:rotate(190deg); } 52%{ transform:rotate(215deg); } 58%{ transform:rotate(200deg); } 82%{ transform:rotate(205deg); } 100%{ transform:rotate(360deg); } }
@keyframes nfTwinkle{ 0%,100%{ opacity:.35; } 50%{ opacity:1; } }
@keyframes nfMoon{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(8px); } }
@keyframes nfDrift{ from{ transform:translateX(0); } to{ transform:translateX(140vw); } }
@keyframes nfSnow{ from{ transform:translate(0,-10px); opacity:0; } 10%{ opacity:1; } 50%{ transform:translate(18px,50vh); } to{ transform:translate(-14px,105vh); opacity:.2; } }
@keyframes nfSwing{ 0%,100%{ transform:rotate(-5deg); } 50%{ transform:rotate(5deg); } }
@keyframes nfWalk{ from{ transform:translate(-80px,296px); } to{ transform:translate(1700px,296px); } }
@keyframes nfStep{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-2px); } }

@media (max-width:720px){
  .nf-hero{ align-items:flex-start; padding-top:calc(var(--nav-h) + 8px); }
  .nf-actions .btn{ flex:1 1 100%; justify-content:center; }
  .nf-scene svg{ left:-40px; width:calc(100% + 40px); }
}
@media (prefers-reduced-motion:reduce){
  .nf-hero *{ animation:none !important; }
  .nf-snow{ display:none; }
}

/* ============================================
   FORM FEEDBACK + HONEYPOT
============================================ */
.nm-hp{ position:absolute !important; left:-9999px !important; width:1px; height:1px; overflow:hidden; opacity:0; }
.form-status{ margin-top:16px; font-size:14.5px; font-weight:600; line-height:1.6; min-height:1.6em; }
.form-status.is-success{ color:#1b7a43; }
.form-status.is-error{ color:#c0392b; }
.contact-form button[disabled]{ opacity:.7; cursor:progress; }

/* ============================================
   REVIEWS ARCHIVE + FALLBACK LIST
============================================ */
.reviews-page-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr)); gap:24px; }
.reviews-page-grid .review-card{ flex:none; }
.navigation.pagination{ margin-top:44px; text-align:center; }
.navigation.pagination .nav-links{ display:flex; gap:8px; justify-content:center; flex-wrap:wrap; }
.navigation.pagination .page-numbers{ padding:10px 16px; border:1px solid var(--line); border-radius:999px; font-weight:700; font-size:14px; color:var(--ink); }
.navigation.pagination .page-numbers.current, .navigation.pagination a.page-numbers:hover{ background:var(--blue-600, #1a72dc); border-color:var(--blue-600, #1a72dc); color:#fff; }
.navigation.pagination .screen-reader-text{ position:absolute; left:-9999px; }

/* ============================================
   RENDER PERFORMANCE — skip painting off-screen sections until needed
============================================ */
.site-footer{ content-visibility:auto; contain-intrinsic-size:auto 640px; }
.reviews{ content-visibility:auto; contain-intrinsic-size:auto 720px; }
