/* ==========================================================================
   JUNGLE BLISS — Design Tokens
   ========================================================================== */
:root{
  /* Canopy greens */
  --canopy-950:#0C2018;
  --canopy-800:#153B29;
  --canopy-700:#1B4332;
  --fern-600:#317355;
  --fern-500:#40916C;
  --leaf-400:#74C69D;
  --leaf-300:#9FDDBB;

  /* Warm jungle-floor palette (from brand art) */
  --parchment-50:#FBF3E2;
  --parchment-100:#F4EAD3;
  --bark-800:#4A2E17;
  --bark-700:#6B4226;
  --bark-500:#8B5A2E;

  /* Fruit accents */
  --mango-500:#EE9B3A;
  --mango-400:#F4B860;
  --papaya-600:#E1601F;
  --papaya-500:#EB7233;
  --blush-300:#F3BDB0;
  --blush-200:#F7D2C8;

  --ink:#20281F;
  --paper:#FFFDF8;

  /* Type */
  --font-display:'Baloo 2', system-ui, sans-serif;
  --font-body:'Quicksand', system-ui, sans-serif;

  /* Shape / rhythm */
  --radius-lg:28px;
  --radius-md:18px;
  --radius-sm:12px;
  --container:1200px;
  --section-pad:clamp(64px, 9vw, 120px);

  --shadow-soft:0 20px 45px -20px rgba(12,32,24,.35);
  --shadow-pop:0 14px 30px -12px rgba(74,46,23,.45);

  --ease-jungle:cubic-bezier(.22,1,.36,1);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; scroll-behavior:auto !important; }
}

body{
  margin:0;
  font-family:var(--font-body);
  color:var(--ink);
  background:var(--parchment-50);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

h1,h2,h3,h4{
  font-family:var(--font-display);
  margin:0;
  line-height:1.05;
  color:var(--bark-800);
  letter-spacing:.2px;
}

p{ margin:0; }
a{ color:inherit; text-decoration:none; }
img{ max-width:100%; display:block; }
button{ font-family:inherit; cursor:pointer; }
ul{ margin:0; padding:0; list-style:none; }

.container{
  width:min(100% - 40px, var(--container));
  margin-inline:auto;
}

.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-family:var(--font-body);
  font-weight:700;
  font-size:.78rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--fern-600);
  background:rgba(64,145,108,.1);
  border:1px solid rgba(64,145,108,.25);
  padding:7px 16px;
  border-radius:999px;
}
.eyebrow.on-dark{
  color:var(--leaf-300);
  background:rgba(159,221,187,.12);
  border-color:rgba(159,221,187,.3);
}

.section-head{
  max-width:680px;
  margin-bottom:clamp(32px,5vw,56px);
}
.section-head h2{
  font-size:clamp(2rem, 4vw, 3.1rem);
  margin-top:14px;
}
.section-head p{
  margin-top:16px;
  font-size:1.08rem;
  line-height:1.6;
  color:var(--bark-700);
}
.section-head.center{ margin-inline:auto; text-align:center; }

/* Buttons */
.btn{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-family:var(--font-display);
  font-weight:600;
  font-size:1.02rem;
  padding:15px 30px;
  border-radius:999px;
  border:none;
  transition:transform .35s var(--ease-jungle), box-shadow .35s var(--ease-jungle), background .3s;
  white-space:nowrap;
}
.btn:active{ transform:translateY(1px) scale(.98); }
.btn-primary{
  background:linear-gradient(135deg, var(--mango-400), var(--papaya-600));
  color:#fff;
  box-shadow:0 14px 28px -10px rgba(225,96,31,.55);
}
.btn-primary:hover{ transform:translateY(-3px); box-shadow:0 20px 34px -12px rgba(225,96,31,.6); }
.btn-ghost{
  background:rgba(255,255,255,.08);
  color:#fff;
  border:1.5px solid rgba(255,255,255,.4);
  backdrop-filter:blur(6px);
}
.btn-ghost:hover{ background:rgba(255,255,255,.18); transform:translateY(-3px); }
.btn-outline{
  background:transparent;
  color:var(--bark-800);
  border:1.5px solid var(--bark-500);
}
.btn-outline:hover{ background:var(--bark-800); color:#fff; transform:translateY(-3px); }
.btn-sm{ padding:11px 20px; font-size:.9rem; }

/* ==========================================================================
   Leaf canopy — layered 3D blur backdrop (signature motif)
   ========================================================================== */
.leaf-canopy{
  position:absolute; inset:0;
  overflow:hidden;
  pointer-events:none;
  z-index:0;
}
.leaf-canopy .leaf{
  position:absolute;
  filter:blur(var(--blur, 6px));
  opacity:var(--op, .55);
  transform:translate3d(0,0,0) rotate(var(--rot,0deg));
  will-change:transform;
}
.leaf svg{ display:block; width:100%; height:100%; }
.leaf-canopy.dark .leaf.l-a{ --blur:2px; --op:.9; }
.leaf-canopy.dark .leaf.l-b{ --blur:10px; --op:.5; }
.leaf-canopy.dark .leaf.l-c{ --blur:18px; --op:.35; }

@keyframes driftA{ 0%,100%{ transform:translate3d(0,0,0) rotate(-4deg);} 50%{ transform:translate3d(6px,-14px,0) rotate(-1deg);} }
@keyframes driftB{ 0%,100%{ transform:translate3d(0,0,0) rotate(6deg);} 50%{ transform:translate3d(-10px,10px,0) rotate(9deg);} }
@keyframes driftC{ 0%,100%{ transform:translate3d(0,0,0) rotate(0deg);} 50%{ transform:translate3d(8px,8px,0) rotate(3deg);} }

/* Leaf-edge section dividers (torn-leaf silhouette instead of a straight line) */
.leaf-divider{
  display:block;
  width:100%;
  line-height:0;
  position:relative;
  z-index:2;
}
.leaf-divider svg{ width:100%; height:auto; display:block; }

/* ==========================================================================
   Nav
   ========================================================================== */
.site-nav{
  position:fixed; inset:0 0 auto 0;
  z-index:100;
  padding:18px 0;
  transition:background .4s var(--ease-jungle), padding .4s var(--ease-jungle), box-shadow .4s;
}
.site-nav .container{ display:flex; align-items:center; justify-content:space-between; gap:20px; }
.site-nav.scrolled{
  padding:10px 0;
  background:rgba(12,32,24,.88);
  backdrop-filter:blur(14px) saturate(140%);
  box-shadow:0 8px 24px -16px rgba(0,0,0,.5);
}
.brand{ display:flex; align-items:center; gap:12px; }
.brand-badge{
  width:46px; height:46px; border-radius:50%;
  background:radial-gradient(circle at 32% 28%, var(--leaf-400), var(--fern-600) 70%);
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 6px 16px -4px rgba(0,0,0,.4);
  font-family:var(--font-display); color:#fff; font-size:1.3rem;
}
.brand-name{
  font-family:var(--font-display);
  font-size:1.35rem;
  color:#fff;
  line-height:1;
}
.brand-name span{ color:var(--mango-400); }
.brand-tag{ display:block; font-family:var(--font-body); font-size:.62rem; letter-spacing:.18em; text-transform:uppercase; color:var(--leaf-300); margin-top:3px; }

.nav-links{ display:flex; align-items:center; gap:34px; }
.nav-links a{
  font-weight:600; font-size:.95rem; color:#EFEAD9;
  position:relative; padding:4px 0;
}
.nav-links a::after{
  content:''; position:absolute; left:0; bottom:-2px; width:0; height:2px;
  background:var(--mango-400); transition:width .3s var(--ease-jungle);
}
.nav-links a:hover::after{ width:100%; }
.nav-cta{ display:flex; align-items:center; gap:14px; }
.nav-phone{ display:flex; align-items:center; gap:8px; color:#EFEAD9; font-weight:700; font-size:.92rem; }
.nav-toggle{
  display:none; width:44px; height:44px; border-radius:12px; border:none;
  background:rgba(255,255,255,.12); color:#fff; align-items:center; justify-content:center;
}

/* ==========================================================================
   Hero
   ========================================================================== */
.hero{
  position:relative;
  min-height:100svh;
  display:flex; align-items:center;
  background:
    radial-gradient(1100px 700px at 82% 8%, rgba(64,145,108,.5), transparent 60%),
    radial-gradient(900px 600px at 10% 95%, rgba(238,155,58,.22), transparent 55%),
    linear-gradient(160deg, var(--canopy-950), var(--canopy-800) 55%, var(--canopy-700));
  overflow:hidden;
  padding-top:110px;
}
.hero-grid{
  position:relative; z-index:3;
  display:grid;
  grid-template-columns:1.05fr .95fr;
  align-items:center;
  gap:40px;
  width:100%;
}
.hero-copy .eyebrow{ margin-bottom:22px; }
.hero-copy h1{
  font-size:clamp(2.6rem, 5.4vw, 4.6rem);
  color:#FBF6E9;
}
.hero-copy h1 em{
  font-style:normal;
  background:linear-gradient(100deg, var(--mango-400), var(--leaf-300) 85%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.hero-copy p.lead{
  margin-top:22px; font-size:1.15rem; line-height:1.65;
  color:#D9E4D6; max-width:520px;
}
.hero-actions{ display:flex; gap:16px; margin-top:34px; flex-wrap:wrap; }
.hero-meta{
  margin-top:46px; display:flex; gap:34px; flex-wrap:wrap;
}
.hero-meta div{ border-left:2px solid rgba(255,255,255,.18); padding-left:14px; }
.hero-meta strong{ display:block; font-family:var(--font-display); font-size:1.4rem; color:#fff; }
.hero-meta span{ font-size:.78rem; color:#AFC4B4; text-transform:uppercase; letter-spacing:.08em; }

.hero-visual{ position:relative; z-index:3; display:flex; justify-content:center; align-items:flex-end; height:100%; }
.hero-stage{
  position:relative;
  width:min(420px, 90%);
  aspect-ratio:2/3;
}
.hero-stage .glow{
  position:absolute; inset:8% 4% 0 4%;
  background:radial-gradient(ellipse at 50% 40%, rgba(116,198,157,.5), transparent 65%);
  filter:blur(10px);
  border-radius:50%;
}
.hero-stage img{
  position:relative; z-index:2; width:100%; height:100%; object-fit:contain;
  animation:floaty 6s ease-in-out infinite;
  filter:drop-shadow(0 30px 24px rgba(0,0,0,.4));
}
@keyframes floaty{ 0%,100%{ transform:translateY(0) rotate(-1.5deg);} 50%{ transform:translateY(-18px) rotate(1.5deg);} }

.hero-chip{
  position:absolute; z-index:4;
  background:rgba(251,246,233,.95);
  color:var(--bark-800);
  border-radius:16px;
  padding:10px 16px;
  font-family:var(--font-display);
  font-size:.9rem;
  box-shadow:var(--shadow-pop);
  display:flex; align-items:center; gap:8px;
  animation:bob 5s ease-in-out infinite;
}
.hero-chip.c1{ top:6%; left:-4%; animation-delay:.2s; }
.hero-chip.c2{ bottom:12%; right:-6%; animation-delay:1.2s; }
.hero-chip.c3{
  top:30%;
  left:-5%;
  animation-delay:.65s;
  background:rgba(224,244,218,.94);
}
.hero-chip.c4{
  top:43%;
  right:-6%;
  animation-delay:1.65s;
  background:rgba(255,244,215,.95);
}
.hero-chip.c5{
  bottom:30%;
  left:-4%;
  animation-delay:2.1s;
  background:rgba(247,220,207,.95);
}
@keyframes bob{ 0%,100%{ transform:translateY(0);} 50%{ transform:translateY(-10px);} }

.scroll-cue{
  position:absolute; left:50%; bottom:26px; transform:translateX(-50%);
  z-index:3; display:flex; flex-direction:column; align-items:center; gap:8px;
  color:#C9DBCB; font-size:.72rem; letter-spacing:.14em; text-transform:uppercase;
}
.scroll-cue .stick{ width:2px; height:34px; background:linear-gradient(#F4B860, transparent); border-radius:2px; overflow:hidden; position:relative; }
.scroll-cue .stick::after{ content:''; position:absolute; top:0; left:0; width:100%; height:40%; background:#fff; animation:scrollDown 1.8s ease-in-out infinite; }
@keyframes scrollDown{ 0%{ top:-40%; } 100%{ top:100%; } }

/* ==========================================================================
   Story / crew section
   ========================================================================== */
.story{
  position:relative;
  background:var(--parchment-50);
  padding:var(--section-pad) 0;
  overflow:hidden;
}
.story-intro-grid{
  display:grid;
  grid-template-columns:1.3fr .8fr;
  gap:48px;
  align-items:center;
  margin-bottom:70px;
}
.story-intro{ max-width:560px; }
.story-badge{
  position:relative;
  border-radius:var(--radius-lg);
  overflow:hidden;
  box-shadow:var(--shadow-soft);
  border:6px solid var(--paper);
  transform:rotate(2deg);
  transition:transform .5s var(--ease-jungle);
}
.story-badge:hover{ transform:rotate(0deg) scale(1.02); }
.story-badge img{ width:100%; height:100%; object-fit:cover; aspect-ratio:1/1; }
@media (max-width:900px){
  .story-intro-grid{ grid-template-columns:1fr; text-align:center; }
  .story-intro{ max-width:none; margin-inline:auto; }
  .story-badge{ max-width:360px; margin-inline:auto; }
}
.crew{ display:flex; flex-direction:column; gap:clamp(50px, 8vw, 90px); }
.crew-row{
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:clamp(24px,5vw,64px);
  align-items:center;
}
.crew-row.reverse{ grid-template-columns:1.15fr .85fr; }
.crew-row.reverse .crew-figure{ order:2; }
.crew-figure{ position:relative; }
.crew-figure .ring{
  position:absolute; inset:6%;
  border-radius:50%;
  background:radial-gradient(circle at 35% 30%, var(--blush-200), transparent 70%);
  z-index:0;
}
.crew-figure img{
  position:relative; z-index:1;
  width:100%;
  filter:drop-shadow(0 24px 20px rgba(74,46,23,.28));
  transition:transform .5s var(--ease-jungle);
}
.crew-figure:hover img{ transform:translateY(-8px) rotate(-1deg) scale(1.02); }

.crew-copy .role-tag{
  display:inline-block;
  font-family:var(--font-display);
  font-size:.82rem;
  color:var(--papaya-600);
  background:var(--blush-200);
  padding:6px 16px;
  border-radius:999px;
  margin-bottom:16px;
}
.crew-copy h3{ font-size:clamp(1.7rem, 3vw, 2.3rem); }
.crew-copy .native{ font-family:var(--font-body); font-weight:700; color:var(--fern-600); font-size:1rem; margin-left:10px; }
.crew-copy p{ margin-top:16px; color:var(--bark-700); line-height:1.7; font-size:1.04rem; }
.crew-copy .guards{
  margin-top:20px; display:flex; align-items:center; gap:10px;
  font-family:var(--font-display); font-size:.92rem; color:var(--bark-800);
}
.guards .dot{ width:8px; height:8px; border-radius:50%; background:var(--mango-500); }

/* ==========================================================================
   Menu
   ========================================================================== */
.menu-section{
  position:relative;
  background:linear-gradient(180deg, var(--canopy-800), var(--canopy-950));
  padding:var(--section-pad) 0;
  overflow:hidden;
}
.menu-section .section-head h2, .menu-section .section-head p{ color:#EFEAD9; }
.menu-section .section-head p{ color:#AFC4B4; }

.menu-tabs{
  display:flex; flex-wrap:wrap; gap:10px;
  margin-bottom:26px;
  position:relative; z-index:2;
}
.menu-tab{
  font-family:var(--font-display);
  font-size:.92rem;
  padding:11px 22px;
  border-radius:999px;
  background:rgba(255,255,255,.06);
  color:#D9E4D6;
  border:1px solid rgba(255,255,255,.14);
  transition:all .3s var(--ease-jungle);
  display:flex; align-items:center; gap:8px;
}
.menu-tab:hover{ background:rgba(255,255,255,.12); }
.menu-tab.active{
  background:linear-gradient(135deg, var(--mango-400), var(--papaya-600));
  color:#fff; border-color:transparent;
  box-shadow:0 10px 22px -10px rgba(225,96,31,.6);
}

.menu-subfilters{
  display:flex; flex-wrap:wrap; gap:8px;
  margin-bottom:34px;
  position:relative; z-index:2;
}
.menu-subfilters.hidden{ display:none; }
.chip{
  font-size:.82rem; font-weight:700; padding:7px 16px; border-radius:999px;
  background:rgba(116,198,157,.1); color:var(--leaf-300);
  border:1px solid rgba(116,198,157,.3);
  transition:all .25s var(--ease-jungle);
}
.chip:hover{ background:rgba(116,198,157,.2); }
.chip.active{ background:var(--leaf-400); color:var(--canopy-950); border-color:transparent; }

.menu-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(270px, 1fr));
  gap:18px;
  position:relative; z-index:2;
}
.menu-card{
  background:rgba(251,246,233,.04);
  border:1px solid rgba(255,255,255,.08);
  border-radius:var(--radius-md);
  padding:22px;
  backdrop-filter:blur(6px);
  transition:transform .4s var(--ease-jungle), background .4s, border-color .4s, box-shadow .4s;
  opacity:0; transform:translateY(18px);
}
.menu-card.reveal{ opacity:1; transform:translateY(0); }
.menu-card:hover{
  transform:translateY(-6px);
  background:rgba(251,246,233,.08);
  border-color:rgba(238,155,58,.4);
  box-shadow:0 20px 34px -18px rgba(0,0,0,.6);
}
.menu-card h4{ color:#FBF6E9; font-size:1.12rem; }
.menu-card .ingredients{
  margin-top:8px; font-size:.85rem; color:#9FB3A3; line-height:1.5; min-height:2.6em;
}
.menu-card .prices{
  margin-top:16px; display:flex; gap:8px; flex-wrap:wrap;
}
.price-pill{
  font-family:var(--font-display);
  font-size:.85rem;
  color:var(--canopy-950);
  background:var(--leaf-300);
  padding:6px 12px;
  border-radius:10px;
  display:flex; flex-direction:column; align-items:center; line-height:1.1;
}
.price-pill small{ font-family:var(--font-body); font-size:.6rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em; opacity:.7; }
.price-pill.single{ background:var(--mango-400); }

.menu-empty{ color:#9FB3A3; padding:40px 0; text-align:center; font-family:var(--font-display); font-size:1.1rem; }

/* ==========================================================================
   Combos / Pricing highlight
   ========================================================================== */
.combos{
  position:relative;
  background:var(--parchment-50);
  padding:var(--section-pad) 0;
}
.combo-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(240px,1fr));
  gap:22px;
}
.combo-card{
  position:relative;
  background:var(--paper);
  border-radius:var(--radius-lg);
  padding:30px 26px;
  box-shadow:var(--shadow-soft);
  border:1px solid rgba(107,66,38,.08);
  transition:transform .4s var(--ease-jungle), box-shadow .4s;
}
.combo-card:hover{ transform:translateY(-8px); box-shadow:0 30px 50px -22px rgba(12,32,24,.35); }
.combo-card.best::before{
  content:'Best Value';
  position:absolute; top:-14px; right:22px;
  background:linear-gradient(135deg, var(--mango-400), var(--papaya-600));
  color:#fff; font-family:var(--font-display); font-size:.78rem;
  padding:7px 14px; border-radius:999px;
  box-shadow:0 8px 16px -6px rgba(225,96,31,.5);
}
.combo-card .icon{
  width:56px; height:56px; border-radius:16px;
  background:radial-gradient(circle at 30% 25%, var(--leaf-300), var(--fern-600));
  display:flex; align-items:center; justify-content:center;
  font-size:1.5rem; margin-bottom:18px;
}
.combo-card h4{ font-size:1.25rem; }
.combo-card p{ margin-top:10px; color:var(--bark-700); font-size:.92rem; line-height:1.55; min-height:2.7em; }
.combo-card .price{
  margin-top:18px; font-family:var(--font-display); font-size:1.7rem; color:var(--papaya-600);
}
.combo-card .price span{ font-size:.85rem; color:var(--bark-500); font-family:var(--font-body); font-weight:700; }

/* ==========================================================================
   Visit / Location
   ========================================================================== */
.visit{
  position:relative;
  background:linear-gradient(160deg, var(--canopy-950), var(--canopy-700));
  padding:var(--section-pad) 0;
  overflow:hidden;
}
.visit-grid{
  display:grid; grid-template-columns:1fr 1fr; gap:44px; align-items:stretch;
  position:relative; z-index:2;
}
.visit-copy .section-head p{ color:#AFC4B4; }
.visit-copy .section-head h2{ color:#FBF6E9; }
.visit-cards{ display:grid; gap:16px; margin-top:30px; }
.visit-card{
  display:flex; gap:16px; align-items:flex-start;
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.1);
  border-radius:var(--radius-md);
  padding:20px;
}
.visit-card .ico{
  width:46px; height:46px; border-radius:12px; flex:none;
  background:linear-gradient(135deg, var(--mango-400), var(--papaya-600));
  display:flex; align-items:center; justify-content:center; font-size:1.2rem;
}
.visit-card h4{ color:#FBF6E9; font-size:1.02rem; }
.visit-card p, .visit-card a{ color:#C9DBCB; font-size:.92rem; margin-top:4px; line-height:1.5; }
.visit-card a:hover{ color:var(--mango-400); }
.visit-hours td{ padding:2px 0; color:#C9DBCB; font-size:.88rem; }
.visit-hours td:first-child{ padding-right:16px; color:#9FB3A3; }

.map-frame{
  position:relative;
  border-radius:var(--radius-lg);
  overflow:hidden;
  min-height:340px;
  box-shadow:var(--shadow-soft);
  border:6px solid rgba(255,255,255,.06);
}
.map-frame iframe{ width:100%; height:100%; min-height:340px; border:0; filter:saturate(.85) brightness(.95); }

/* ==========================================================================
   Footer
   ========================================================================== */
.site-footer{
  background:var(--canopy-950);
  padding:54px 0 26px;
  position:relative;
  z-index:2;
}
.footer-top{
  display:flex; justify-content:space-between; align-items:flex-start;
  gap:30px; flex-wrap:wrap;
  padding-bottom:34px;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.footer-brand p{ color:#9FB3A3; margin-top:12px; max-width:320px; font-size:.92rem; line-height:1.6; }
.footer-links{ display:flex; gap:64px; flex-wrap:wrap; }
.footer-col h5{ font-family:var(--font-display); color:#FBF6E9; font-size:.95rem; margin-bottom:14px; }
.footer-col a, .footer-col span{ display:block; color:#9FB3A3; font-size:.9rem; margin-bottom:10px; }
.footer-col a:hover{ color:var(--mango-400); }
.footer-bottom{
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px;
  padding-top:22px; color:#7A9285; font-size:.8rem;
}

/* Floating WhatsApp CTA */
.float-whatsapp{
  position:fixed; right:22px; bottom:22px; z-index:200;
  width:60px; height:60px; border-radius:50%;
  background:linear-gradient(135deg,#3fb96b,#1f8a4c);
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 14px 30px -10px rgba(31,138,76,.6);
  transition:transform .3s var(--ease-jungle);
  animation:pulseWA 2.6s ease-in-out infinite;
}
.float-whatsapp:hover{ transform:scale(1.08); }
@keyframes pulseWA{ 0%,100%{ box-shadow:0 14px 30px -10px rgba(31,138,76,.6);} 50%{ box-shadow:0 14px 34px -6px rgba(31,138,76,.85);} }

/* Reveal-on-scroll utility */
.reveal-up{ opacity:0; transform:translateY(28px); transition:opacity .8s var(--ease-jungle), transform .8s var(--ease-jungle); }
.reveal-up.in{ opacity:1; transform:translateY(0); }

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width:980px){
  .nav-links, .nav-phone{ display:none; }
  .nav-toggle{ display:flex; }
  .hero-grid{ grid-template-columns:1fr; text-align:center; }
  .hero-copy p.lead{ margin-inline:auto; }
  .hero-actions{ justify-content:center; }
  .hero-meta{ justify-content:center; }
  .hero-visual{ margin-top:20px; }
  .crew-row, .crew-row.reverse{ grid-template-columns:1fr; text-align:center; }
  .crew-row.reverse .crew-figure{ order:0; }
  .crew-figure{ max-width:320px; margin-inline:auto; }
  .crew-copy .guards{ justify-content:center; }
  .visit-grid{ grid-template-columns:1fr; }
}
@media (max-width:640px){
  .section-head h2{ font-size:1.8rem; }
  .hero-chip{ display:none; }
  .footer-top{ flex-direction:column; }
  .footer-links{ gap:34px; }
}

/* Focus visibility for keyboard nav */
a:focus-visible, button:focus-visible{
  outline:3px solid var(--mango-400);
  outline-offset:3px;
  border-radius:6px;
}

/* ==========================================================================
   Cinematic upgrade — liquid motion, natural depth, premium surfaces
   ========================================================================== */
:root{
  --ease-liquid:cubic-bezier(.16,1,.3,1);
  --ease-spring-soft:cubic-bezier(.34,1.56,.64,1);
  --ease-reveal:cubic-bezier(.22,1,.36,1);
  --ease-hover:cubic-bezier(.2,.8,.2,1);
  --surface-night:rgba(13,39,29,.72);
  --surface-light:rgba(255,253,248,.78);
  --shadow-depth:0 38px 80px -32px rgba(5,22,15,.62);
  --shadow-gold:0 28px 65px -32px rgba(244,184,96,.7);
  --perspective:1000px;
  --wave-height:clamp(76px,8vw,128px);
}
body.menu-open{ overflow:hidden; }
section,header{ isolation:isolate; }
.scroll-progress{ position:fixed; inset:0 0 auto; height:3px; z-index:300; pointer-events:none; }
.scroll-progress span{ display:block; height:100%; width:100%; transform:scaleX(var(--scroll-progress,0)); transform-origin:left; background:linear-gradient(90deg,var(--leaf-300),var(--mango-400),var(--papaya-500)); box-shadow:0 0 14px rgba(244,184,96,.7); }

/* 3D leaf cursor — desktop pointer devices only */
.leaf-cursor{
  position:fixed;
  left:0;
  top:0;
  width:46px;
  height:46px;
  z-index:1000;
  pointer-events:none;
  opacity:0;
  transform:translate3d(var(--cursor-x,-100px),var(--cursor-y,-100px),0);
  transition:opacity .2s ease;
  contain:layout style;
  overflow:visible;
}
.leaf-cursor.visible{ opacity:1; }
.leaf-cursor img{
  position:absolute;
  width:66px;
  height:66px;
  object-fit:contain;
  left:-11px;
  top:-49px;
  transform-origin:70% 85%;
  transform:perspective(180px) rotateX(18deg) rotateY(var(--cursor-tilt,0deg)) rotateZ(var(--cursor-rotate,-28deg)) scale(var(--cursor-scale,1));
  filter:drop-shadow(3px 4px 2px rgba(4,25,14,.28)) drop-shadow(8px 12px 8px rgba(4,25,14,.22)) saturate(1.18) contrast(1.08);
  transition:transform .28s var(--ease-spring-soft),filter .25s ease;
}
.leaf-cursor-glow{
  position:absolute;
  width:30px;
  height:30px;
  left:-14px;
  top:-15px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(159,221,187,.35),transparent 68%);
  filter:blur(4px);
  transform:scale(var(--cursor-glow,1));
  transition:transform .25s ease;
}
.leaf-cursor-point{
  position:absolute;
  width:7px;
  height:7px;
  left:-3px;
  top:-3px;
  border-radius:50%;
  background:radial-gradient(circle at 30% 25%,#fff 0 18%,#c8f2d0 30%,#4b9c69 72%);
  box-shadow:0 0 0 1px rgba(7,38,22,.5),inset -1px -1px 2px rgba(5,56,29,.35),0 3px 8px rgba(3,31,17,.38);
}
.leaf-cursor.interactive img{
  --cursor-scale:1.22;
  filter:drop-shadow(3px 4px 2px rgba(4,25,14,.3)) drop-shadow(9px 14px 9px rgba(4,25,14,.28)) saturate(1.28) brightness(1.08);
}
.leaf-cursor.interactive .leaf-cursor-glow{ --cursor-glow:1.5; }
html.leaf-cursor-enabled,html.leaf-cursor-enabled a,html.leaf-cursor-enabled button{ cursor:none; }

/* Natural PNG leaf depth system */
.png-leaves{ position:absolute; inset:0; overflow:hidden; pointer-events:none; z-index:2; }
.png-leaf{ position:absolute; width:clamp(180px,25vw,500px); transform:translate3d(var(--parallax-x,0),var(--parallax-y,0),0) rotate(var(--leaf-rotate,0deg)) scaleX(var(--mirror,1)); transform-origin:18% 82%; will-change:transform; animation:leafSway 9s var(--ease-liquid) infinite alternate; }
.depth-front{ filter:drop-shadow(0 24px 22px rgba(0,0,0,.3)); opacity:.94; }
.depth-mid{ filter:blur(2px) drop-shadow(0 18px 22px rgba(0,0,0,.24)); opacity:.7; animation-duration:14s; }
.depth-back{ filter:blur(7px); opacity:.28; animation-duration:19s; }
@keyframes leafSway{
  0%{ transform:translate3d(calc(var(--parallax-x,0px) - 8px),calc(var(--parallax-y,0px) + 6px),0) rotate(calc(var(--leaf-rotate,0deg) - 2deg)) scaleX(var(--mirror,1)); }
  34%{ transform:translate3d(calc(var(--parallax-x,0px) + 14px),calc(var(--parallax-y,0px) - 14px),0) rotate(calc(var(--leaf-rotate,0deg) + 4deg)) scaleX(var(--mirror,1)); }
  68%{ transform:translate3d(calc(var(--parallax-x,0px) - 4px),calc(var(--parallax-y,0px) - 22px),0) rotate(calc(var(--leaf-rotate,0deg) - 1deg)) scaleX(var(--mirror,1)); }
  100%{ transform:translate3d(calc(var(--parallax-x,0px) + 18px),calc(var(--parallax-y,0px) - 8px),0) rotate(calc(var(--leaf-rotate,0deg) + 5deg)) scaleX(var(--mirror,1)); }
}
.leaf-hero-a{ left:-9%; bottom:-12%; --leaf-rotate:24deg; }
.leaf-hero-b{ right:-7%; top:-8%; --leaf-rotate:-36deg; --mirror:-1; }
.leaf-hero-c{ left:28%; top:-15%; width:260px; --leaf-rotate:92deg; }
.leaf-hero-d{ right:-7%; bottom:2%; width:300px; --leaf-rotate:-8deg; }
.hero-leaves{ z-index:5; }
.hero-leaves .depth-mid,.hero-leaves .depth-back{ z-index:-1; }
.leaf-hero-a{ left:-6%; bottom:-16%; width:clamp(220px,25vw,460px); }
.leaf-hero-b{ right:-9%; top:-10%; opacity:.58; }
.leaf-hero-c{ left:42%; top:-19%; opacity:.2; }
.leaf-hero-d{ right:-9%; bottom:-8%; width:clamp(210px,20vw,360px); opacity:.72; }
.story-leaves{ z-index:4; }
.story-leaf-a{ left:-10%; top:33%; width:clamp(190px,19vw,340px); --leaf-rotate:62deg; filter:drop-shadow(0 22px 20px rgba(44,69,31,.22)); opacity:.78; }
.story-leaf-b{ right:-6%; top:1%; --leaf-rotate:-24deg; --mirror:-1; }
.story-leaf-c{ right:-8%; bottom:4%; width:clamp(190px,20vw,350px); --leaf-rotate:-16deg; opacity:.72; }
.menu-leaf-a{ left:-10%; top:4%; --leaf-rotate:30deg; }
.menu-leaf-b{ right:-5%; top:31%; --leaf-rotate:-44deg; --mirror:-1; }
.menu-leaf-c{ left:-7%; bottom:3%; --leaf-rotate:12deg; }
.combo-leaf-a{ right:-13%; bottom:-18%; width:clamp(330px,34vw,620px); --leaf-rotate:-58deg; --mirror:-1; opacity:.86; }
.combo-leaf-b{ left:-10%; top:4%; width:clamp(280px,29vw,540px); --leaf-rotate:42deg; }
.combo-leaf-c{ right:-12%; top:2%; width:clamp(260px,28vw,520px); --leaf-rotate:-72deg; --mirror:-1; opacity:.5; animation-duration:12s; }
.combo-leaf-d{ left:-12%; bottom:-22%; width:clamp(300px,32vw,580px); --leaf-rotate:54deg; opacity:.7; animation-delay:-3s; }
.visit-leaf-a{ left:-13%; bottom:-16%; width:clamp(340px,36vw,660px); --leaf-rotate:48deg; }
.visit-leaf-b{ right:-14%; top:-18%; width:clamp(330px,35vw,640px); --leaf-rotate:-62deg; --mirror:-1; opacity:.62; }
.visit-leaf-c{ left:20%; top:-21%; width:clamp(250px,27vw,500px); --leaf-rotate:86deg; opacity:.22; animation-duration:15s; }
.visit-leaf-d{ right:-16%; bottom:-20%; width:clamp(340px,37vw,680px); --leaf-rotate:-48deg; --mirror:-1; opacity:.72; animation-delay:-5s; }

/* Atmosphere and restrained particle pools */
.atmosphere{ position:absolute; inset:0; z-index:1; pointer-events:none; overflow:hidden; }
.atmosphere::before{ content:""; position:absolute; width:62%; height:120%; right:-8%; top:-32%; background:conic-gradient(from 190deg at 48% 0,transparent 0 30%,rgba(255,226,154,.18) 36%,transparent 43% 58%,rgba(180,255,205,.08) 64%,transparent 72%); filter:blur(12px); animation:sunSweep 18s ease-in-out infinite alternate; }
.atmosphere span{ position:absolute; border-radius:50%; filter:blur(36px); opacity:.4; animation:fogDrift 16s ease-in-out infinite alternate; }
.atmosphere span:nth-child(1){ width:54%; height:20%; left:-10%; bottom:7%; background:rgba(122,190,150,.2); }
.atmosphere span:nth-child(2){ width:45%; height:18%; right:-8%; top:38%; background:rgba(255,210,134,.12); animation-delay:-5s; }
.atmosphere span:nth-child(3){ width:30%; height:20%; left:38%; top:12%; background:rgba(217,244,213,.1); animation-delay:-9s; }
@keyframes fogDrift{ to{ transform:translate3d(38px,-13px,0) scale(1.08); } }
@keyframes sunSweep{ to{ transform:translateX(-3%) rotate(2deg); opacity:.75; } }
.particles{ position:absolute; inset:0; z-index:2; overflow:hidden; pointer-events:none; }
.particle{ position:absolute; width:var(--size,4px); aspect-ratio:1; border-radius:50%; left:var(--x); top:var(--y); background:var(--color,rgba(255,221,148,.72)); box-shadow:0 0 12px var(--color,rgba(255,221,148,.72)); animation:particleFloat var(--duration,10s) ease-in-out var(--delay,0s) infinite alternate; }
@keyframes particleFloat{ to{ transform:translate3d(var(--drift,22px),-46px,0) scale(.7); opacity:.24; } }

/* Floating navigation */
.site-nav{ padding:20px 0; }
.site-nav .container{ padding:8px 10px 8px 14px; border:1px solid transparent; border-radius:24px; transition:all .5s var(--ease-liquid); }
.site-nav.scrolled{ background:transparent; box-shadow:none; padding:9px 0; }
.site-nav.scrolled .container{ background:rgba(8,29,21,.78); border-color:rgba(255,255,255,.12); backdrop-filter:blur(22px) saturate(145%); box-shadow:0 18px 50px -30px rgba(0,0,0,.75),inset 0 1px rgba(255,255,255,.08); }
.nav-links a::after{ left:50%; width:5px; height:5px; border-radius:50%; transform:translateX(-50%) scale(0); bottom:-7px; box-shadow:0 0 12px var(--mango-400); transition:transform .35s var(--ease-spring-soft); }
.nav-links a:hover::after,.nav-links a.active::after{ width:5px; transform:translateX(-50%) scale(1); }
.nav-links a.active{ color:#fff; }

/* Hero cinematic stage and timed entrance */
.hero{ min-height:max(720px,100svh); background:radial-gradient(ellipse at 76% 27%,rgba(74,153,101,.6),transparent 32%),radial-gradient(ellipse at 78% 76%,rgba(234,136,49,.2),transparent 30%),linear-gradient(150deg,#071d15 0%,#123d29 45%,#1d593d 100%); }
.hero::before{ content:""; position:absolute; inset:0; z-index:0; opacity:.13; background-image:radial-gradient(rgba(255,255,255,.5) .7px,transparent .7px); background-size:6px 6px; mask-image:linear-gradient(to bottom,black,transparent 80%); }
.hero-grid{
  z-index:4;
  width:min(100% - 40px,var(--container));
  margin-inline:auto;
}
.hero-copy{ position:relative; z-index:3; }
.headline-line{ display:block; overflow:hidden; animation:headlineIn .85s var(--ease-reveal) both; }
.headline-line:nth-child(2){ animation-delay:.12s; }
@keyframes headlineIn{ from{ opacity:0; transform:translateY(38px); filter:blur(8px); } }
.hero-copy .eyebrow{ animation:heroReveal .55s .12s var(--ease-reveal) both; }
.hero-copy .lead{ animation:heroReveal .65s .5s var(--ease-reveal) both; }
.hero-actions{ animation:heroReveal .65s .65s var(--ease-reveal) both; }
.hero-meta{ animation:heroReveal .65s .78s var(--ease-reveal) both; }
@keyframes heroReveal{ from{ opacity:0; transform:translateY(18px); filter:blur(5px); } }
.hero-stage{ width:min(480px,94%); perspective:var(--perspective); transform-style:preserve-3d; animation:mascotRise .9s .24s var(--ease-reveal) both; }
@keyframes mascotRise{ from{ opacity:0; transform:translateY(40px) scale(.97); } }
.hero-stage::after{ content:""; position:absolute; left:12%; right:10%; bottom:3%; height:10%; border-radius:50%; background:rgba(0,0,0,.42); filter:blur(16px); transform:rotateX(68deg); }
.hero-stage .glow{ inset:8% -7% 4%; background:radial-gradient(circle at 50% 40%,rgba(253,190,83,.32),rgba(90,205,131,.2) 35%,transparent 68%); animation:halo 8s ease-in-out infinite; }
@keyframes halo{ 50%{ transform:scale(1.08) rotate(3deg); filter:blur(18px); } }
.hero-stage img{ transform:rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg)) translate3d(0,var(--float-y,0),24px); animation:heroIdle 8s 1.5s ease-in-out infinite; filter:drop-shadow(0 38px 28px rgba(0,0,0,.48)) drop-shadow(0 0 18px rgba(255,220,146,.14)); }
@keyframes heroIdle{ 50%{ transform:rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg)) translate3d(0,-12px,24px) rotate(1deg); } }

/* Three-layer liquid section transitions */
.wave-transition{ height:clamp(68px,6vw,92px); margin-block:-28px; overflow:hidden; background:transparent; }
.wave-transition > svg{ display:none; }
.wave-layer{ position:absolute; width:136%; left:-18%; height:72%; bottom:-2%; border-radius:50% 50% 0 0 / 100% 100% 0 0; transform:translate3d(var(--wave-x,0),var(--wave-y,0),0); animation:waveDrift 14s ease-in-out infinite alternate; }
.wave-rear{ height:46%; opacity:.18; bottom:38%; background:#9fd6ba; animation-duration:18s; }
.wave-middle{ height:54%; opacity:.32; bottom:21%; background:#c8e2c5; animation-duration:15s; animation-delay:-5s; }
.wave-front{ height:58%; background:var(--wave-color,#fbf3e2); animation-duration:12s; animation-delay:-8s; }
.wave-to-cream{ --wave-color:var(--parchment-50); }
.wave-to-dark{ --wave-color:var(--canopy-800); }
@keyframes waveDrift{ to{ transform:translate3d(calc(var(--wave-x,0px) + 4%),calc(var(--wave-y,0px) - 5px),0) scaleY(1.08); border-radius:55% 45% 0 0 / 45% 58% 0 0; } }

/* Daylight clearing, dimensional poster and character habitats */
.story{ background:radial-gradient(circle at 76% 4%,rgba(255,220,147,.45),transparent 26%),linear-gradient(135deg,#fff9e9,#f4ead3); }
.story::before{ content:""; position:absolute; inset:0; opacity:.14; background-image:repeating-linear-gradient(105deg,transparent 0 22px,rgba(77,112,65,.15) 23px,transparent 25px); mask-image:radial-gradient(circle at 12% 20%,black,transparent 55%); animation:shadowPass 18s ease-in-out infinite alternate; }
@keyframes shadowPass{ to{ transform:translateX(35px) rotate(1deg); opacity:.2; } }
.story .container,.combos .container{ position:relative; z-index:3; }
.story-badge{ perspective:var(--perspective); transform:rotateZ(1deg) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg)); border:10px solid #fffaf0; box-shadow:0 36px 70px -30px rgba(70,48,20,.55),inset 0 0 0 2px rgba(238,155,58,.24); overflow:visible; }
.story-badge::before{ content:""; position:absolute; inset:-18px; border:1px solid rgba(107,66,38,.2); border-radius:36px; z-index:-1; }
.story-badge::after,.menu-card::after,.combo-card::after{ content:""; position:absolute; inset:0; border-radius:inherit; pointer-events:none; background:radial-gradient(circle at var(--pointer-x,50%) var(--pointer-y,50%),rgba(255,255,255,.2),transparent 30%); opacity:0; transition:opacity .3s; }
.story-badge:hover::after,.menu-card:hover::after,.combo-card:hover::after{ opacity:1; }
.crew{ position:relative; }
.crew::before{ display:none; }
.crew-row{ position:relative; min-height:430px; padding:clamp(24px,4vw,52px); border-radius:48px; background:linear-gradient(135deg,rgba(255,255,255,.52),rgba(255,250,232,.18)); box-shadow:inset 0 1px rgba(255,255,255,.8),0 30px 75px -55px rgba(65,46,20,.5); }
.crew-row:nth-child(1){ --scene-a:rgba(244,184,96,.58); --scene-b:rgba(225,96,31,.16); }
.crew-row:nth-child(2){ --scene-a:rgba(243,189,176,.55); --scene-b:rgba(255,244,214,.7); }
.crew-row:nth-child(3){ --scene-a:rgba(116,198,157,.48); --scene-b:rgba(238,155,58,.18); }
.crew-figure .ring{ inset:3%; background:radial-gradient(circle at 35% 30%,var(--scene-a),var(--scene-b) 52%,transparent 72%); filter:drop-shadow(0 25px 25px rgba(45,73,48,.16)); animation:ringBreathe 9s ease-in-out infinite; }
@keyframes ringBreathe{ 50%{ transform:scale(1.05) rotate(2deg); } }
.crew-figure img{ animation:crewIdle 10s 1s ease-in-out infinite; }
@keyframes crewIdle{ 50%{ transform:translateY(-8px) rotate(.6deg); } }
.role-tag{ transition:transform .3s var(--ease-spring-soft); }
.role-tag:hover{ transform:translateY(-2px) rotate(-1deg); }

/* Night clearing and premium cards */
.menu-section{ background:radial-gradient(circle at 78% 12%,rgba(53,118,79,.45),transparent 26%),radial-gradient(circle at 18% 70%,rgba(238,155,58,.08),transparent 28%),linear-gradient(165deg,#123e2b,#071c15 74%); }
.menu-section::before{ content:""; position:absolute; inset:-25%; z-index:1; opacity:.075; background:repeating-radial-gradient(ellipse at 50% 10%,transparent 0 28px,rgba(188,255,211,.6) 30px,transparent 34px 58px); transform:rotate(-9deg); animation:caustics 22s linear infinite; }
@keyframes caustics{ to{ transform:translate3d(5%,3%,0) rotate(-5deg); } }
.menu-tabs{ padding:7px; border-radius:24px; background:rgba(1,16,10,.28); border:1px solid rgba(255,255,255,.08); width:max-content; max-width:100%; }
.menu-tab{ position:relative; overflow:hidden; border-color:transparent; }
.menu-tab span{ transition:transform .35s var(--ease-spring-soft); }
.menu-tab:hover span,.menu-tab.active span{ transform:translateY(-2px) rotate(-5deg) scale(1.08); }
.menu-tab[aria-selected="true"]{ background:linear-gradient(135deg,var(--mango-400),var(--papaya-600)); color:#fff; box-shadow:0 12px 28px -14px rgba(238,155,58,.85); }
.menu-card{ position:relative; overflow:hidden; min-height:164px; transform-style:preserve-3d; background:linear-gradient(145deg,rgba(255,255,255,.095),rgba(255,255,255,.035)); border-color:rgba(255,255,255,.13); box-shadow:inset 0 1px rgba(255,255,255,.08),0 24px 45px -35px #000; }
.menu-card::before{ content:""; position:absolute; inset:0 auto auto 8%; width:65%; height:1px; background:linear-gradient(90deg,transparent,rgba(255,230,170,.75),transparent); }
.menu-card.reveal{ transform:translateY(0) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg)); }
.menu-card:hover{ transform:translateY(-7px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg)); }
.price-pill{ box-shadow:inset 0 1px rgba(255,255,255,.5),0 7px 15px -10px #000; }

/* Jungle picnic */
.combos{ overflow:hidden; background:radial-gradient(ellipse at 20% 12%,rgba(159,221,187,.4),transparent 30%),radial-gradient(ellipse at 88% 78%,rgba(238,155,58,.2),transparent 26%),linear-gradient(155deg,#fff9e9,#efe5cb); }
.combos{ padding-bottom:clamp(76px,7vw,96px); }
.combos::before{ content:""; position:absolute; inset:0; opacity:.17; background-image:radial-gradient(rgba(80,99,58,.5) .7px,transparent .8px); background-size:9px 9px; }
.combo-card{ transform-style:preserve-3d; overflow:visible; background:linear-gradient(145deg,rgba(255,255,255,.94),rgba(255,249,232,.75)); border-color:rgba(107,66,38,.12); box-shadow:0 30px 55px -38px rgba(23,58,37,.6),inset 0 1px #fff; }
.combo-card:hover{ transform:translateY(-8px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg)); }
.combo-card.best{ border-color:rgba(238,155,58,.55); box-shadow:0 34px 65px -30px rgba(225,96,31,.45),inset 0 1px #fff; }
.combo-card.best::before{ animation:badgeGlow 3s ease-in-out infinite; }
@keyframes badgeGlow{ 50%{ transform:translateY(-2px); box-shadow:0 10px 22px -5px rgba(225,96,31,.65); } }
.combo-card .icon{ transition:transform .45s var(--ease-spring-soft); }
.combo-card:hover .icon{ transform:translateY(-3px) rotate(-5deg); }
@media (min-width:981px){
  .combo-card.best{
    grid-column:2 / span 2;
    width:100%;
    display:grid;
    grid-template-columns:64px minmax(0,1fr) auto;
    grid-template-rows:auto auto;
    column-gap:22px;
    align-items:center;
  }
  .combo-card.best .icon{ grid-row:1 / span 2; margin:0; }
  .combo-card.best h4{ align-self:end; }
  .combo-card.best p{ align-self:start; min-height:0; }
  .combo-card.best .price{ grid-column:3; grid-row:1 / span 2; margin:0; white-space:nowrap; }
}

/* Sunset arrival */
.visit{ background:radial-gradient(circle at 76% 20%,rgba(244,184,96,.2),transparent 28%),radial-gradient(circle at 14% 80%,rgba(64,145,108,.28),transparent 34%),linear-gradient(145deg,#071c15,#113b29 58%,#183e2b); }
.visit{ padding-top:clamp(76px,7vw,96px); }
.visit-card{ transition:transform .4s var(--ease-liquid),background .4s,border-color .4s; box-shadow:inset 0 1px rgba(255,255,255,.07); backdrop-filter:blur(10px); }
.visit-card:hover{ transform:translateY(-4px); background:rgba(255,255,255,.08); border-color:rgba(244,184,96,.28); }
.visit-card .ico{ box-shadow:0 12px 25px -12px rgba(238,155,58,.75),inset 0 1px rgba(255,255,255,.45); }
.map-frame{ transform-style:preserve-3d; transform:rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg)); border:8px solid rgba(255,249,229,.12); box-shadow:0 40px 85px -34px rgba(0,0,0,.7),0 0 40px -25px rgba(244,184,96,.7),inset 0 1px rgba(255,255,255,.18); }
.map-frame::before{ content:""; position:absolute; inset:10px; border:1px solid rgba(244,184,96,.3); border-radius:20px; pointer-events:none; z-index:2; }

/* Refined controls */
.btn{ position:relative; overflow:hidden; isolation:isolate; }
.btn::after{ content:""; position:absolute; inset:-100% -35%; z-index:-1; background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.32) 48%,transparent 61%); transform:translateX(-60%) rotate(10deg); transition:transform .7s var(--ease-liquid); }
.btn:hover::after{ transform:translateX(60%) rotate(10deg); }
.float-whatsapp{ width:62px; height:62px; }
.float-whatsapp::after{ content:"Order now"; position:absolute; right:72px; padding:8px 12px; border-radius:10px; background:#123d29; color:#fff; font-size:.78rem; font-weight:700; white-space:nowrap; opacity:0; transform:translateX(8px); transition:.3s var(--ease-liquid); box-shadow:0 10px 24px -14px #000; }
.float-whatsapp:hover::after{ opacity:1; transform:translateX(0); }

@media (max-width:980px){
  .site-nav .container{ width:min(100% - 24px,var(--container)); }
  .nav-links.open-mobile{ display:flex; position:fixed; top:82px; left:12px; right:12px; flex-direction:column; align-items:stretch; gap:4px; padding:18px; border-radius:24px; background:rgba(7,29,21,.96); border:1px solid rgba(255,255,255,.12); box-shadow:0 30px 60px -30px #000; backdrop-filter:blur(22px); animation:mobileMenuIn .35s var(--ease-liquid); }
  .nav-links.open-mobile a{ display:block; padding:13px 16px; border-radius:14px; }
  .nav-links.open-mobile a:hover{ background:rgba(255,255,255,.07); }
  @keyframes mobileMenuIn{ from{ opacity:0; transform:translateY(-12px) scale(.98); } }
  .hero{ padding-top:125px; }
  .hero-grid{ gap:8px; }
  .hero-stage{ max-width:370px; aspect-ratio:1/1.22; }
  .hero-chip.c3{ left:-2%; }
  .hero-chip.c4{ right:-3%; }
  .hero-chip.c5{ left:-1%; }
  .hero-meta{ margin-top:30px; }
  .crew::before{ display:none; }
  .crew-row{ min-height:0; }
  .menu-tabs,.menu-subfilters{ flex-wrap:nowrap; width:calc(100vw - 40px); overflow-x:auto; scrollbar-width:none; scroll-snap-type:x proximity; }
  .menu-tab,.chip{ flex:0 0 auto; scroll-snap-align:start; }
}
@media (max-width:640px){
  :root{ --wave-height:72px; }
  .container{ width:min(100% - 28px,var(--container)); }
  .brand-tag,.nav-cta .btn{ display:none; }
  .site-nav .container{ border-radius:18px; padding:5px 6px 5px 10px; }
  .brand-badge{ width:40px; height:40px; }
  .brand-name{ font-size:1.15rem; }
  .hero{ min-height:auto; padding:118px 0 82px; }
  .hero-copy h1{ font-size:clamp(2.55rem,13vw,3.7rem); }
  .hero-copy p.lead{ font-size:1rem; }
  .hero-actions .btn{ width:100%; justify-content:center; }
  .hero-meta{ gap:16px; }
  .hero-meta div{ width:calc(33.333% - 12px); padding-left:8px; }
  .hero-meta strong{ font-size:1.14rem; }
  .hero-meta span{ font-size:.62rem; }
  .hero-visual{ margin-top:22px; }
  .hero-stage{ width:min(300px,90%); }
  .leaf-hero-a{ width:190px; left:-23%; bottom:-4%; }
  .leaf-hero-b{ width:170px; right:-21%; top:8%; }
  .depth-back{ display:none; }
  .story-leaf-a,.menu-leaf-a,.combo-leaf-a,.visit-leaf-a{ opacity:.45; width:180px; }
  .combo-leaf-c,.combo-leaf-d,.visit-leaf-c,.visit-leaf-d{ display:none; }
  .crew-row{ padding:24px 18px; border-radius:32px; }
  .menu-grid{ grid-template-columns:1fr; }
  .menu-card{ min-height:0; }
  .combo-grid{ grid-template-columns:1fr; }
  .float-whatsapp{ right:14px; bottom:14px; width:56px; height:56px; }
  .float-whatsapp::after{ display:none; }
}
@media (hover:none),(pointer:coarse){
  .leaf-cursor{ display:none; }
  .png-leaf{ animation-duration:16s; }
  .menu-card:hover,.combo-card:hover,.story-badge,.map-frame{ transform:none; }
}
@media (prefers-reduced-motion:reduce){
  .leaf-cursor{ display:none; }
  html.leaf-cursor-enabled,html.leaf-cursor-enabled a,html.leaf-cursor-enabled button{ cursor:auto; }
  .png-leaf,.atmosphere::before,.atmosphere span,.particle,.wave-layer,.hero-stage .glow,.hero-stage img,.crew-figure img,.crew-figure .ring,.combo-card.best::before{ animation:none !important; }
  .headline-line,.hero-copy .eyebrow,.hero-copy .lead,.hero-actions,.hero-meta,.hero-stage{ animation:none !important; opacity:1; filter:none; transform:none; }
  .png-leaf{ transform:rotate(var(--leaf-rotate,0deg)) scaleX(var(--mirror,1)) !important; }
  .reveal-up{ opacity:1; transform:none; }
}

/* ==========================================================================
   Unified cinematic language — hero atmosphere across every jungle zone
   ========================================================================== */
.story-leaves,
.menu-leaves,
.combo-leaves,
.visit-leaves{
  z-index:1;
}
.story .container,
.menu-section > .container,
.combos .container,
.visit-grid{
  position:relative;
  z-index:3;
}

/* Warm clearing with the same glow, grain and depth as the hero */
.story{
  background:
    radial-gradient(circle at 82% 8%,rgba(244,184,96,.34),transparent 25%),
    radial-gradient(circle at 8% 52%,rgba(116,198,157,.25),transparent 32%),
    linear-gradient(145deg,#fff8e8 0%,#f4ead3 52%,#f9f0d9 100%);
}
.story::after,
.combos::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  opacity:.12;
  background-image:radial-gradient(rgba(23,67,48,.65) .7px,transparent .8px);
  background-size:8px 8px;
  mask-image:linear-gradient(to bottom,black,transparent 82%);
}
.story-intro-grid{
  position:relative;
  padding:clamp(28px,5vw,64px);
  border-radius:clamp(30px,4vw,52px);
  overflow:hidden;
  background:
    radial-gradient(circle at 82% 12%,rgba(64,145,108,.46),transparent 30%),
    radial-gradient(circle at 8% 95%,rgba(238,155,58,.15),transparent 35%),
    linear-gradient(145deg,#0a281c,#164b33);
  border:1px solid rgba(255,255,255,.12);
  box-shadow:0 42px 90px -48px rgba(5,30,19,.74),inset 0 1px rgba(255,255,255,.08);
}
.story-intro-grid::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  opacity:.12;
  background-image:radial-gradient(rgba(255,255,255,.7) .6px,transparent .7px);
  background-size:7px 7px;
}
.story-intro{ position:relative; z-index:2; }
.story-intro h2{ color:#fff8e9; }
.story-intro p[style]{ color:#c8d9cb !important; }
.story-intro .eyebrow{
  color:var(--leaf-300);
  background:rgba(159,221,187,.1);
  border-color:rgba(159,221,187,.28);
}
.story-badge{
  z-index:2;
  border-color:rgba(255,250,238,.94);
  box-shadow:0 38px 75px -30px rgba(0,0,0,.66),0 0 45px -28px rgba(244,184,96,.8);
}

/* Character scenes become cinematic mini hero stages */
.crew{ gap:clamp(38px,6vw,72px); }
.crew-row{
  overflow:hidden;
  background:
    radial-gradient(circle at 18% 42%,var(--scene-a),transparent 29%),
    radial-gradient(circle at 90% 5%,rgba(116,198,157,.2),transparent 30%),
    linear-gradient(145deg,#0d3022,#174d35);
  border:1px solid rgba(255,255,255,.1);
  box-shadow:0 36px 80px -46px rgba(5,32,21,.75),inset 0 1px rgba(255,255,255,.08);
}
.crew-row::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  opacity:.1;
  pointer-events:none;
  background-image:radial-gradient(rgba(255,255,255,.72) .6px,transparent .7px);
  background-size:7px 7px;
  mask-image:linear-gradient(110deg,black,transparent 72%);
}
.crew-row::after{
  content:"";
  position:absolute;
  width:46%;
  aspect-ratio:1;
  right:-12%;
  top:-40%;
  z-index:0;
  border-radius:50%;
  background:radial-gradient(circle,rgba(244,184,96,.14),transparent 65%);
  filter:blur(12px);
}
.crew-figure,
.crew-copy{ position:relative; z-index:2; }
.crew-copy h3{ color:#fff8e9; }
.crew-copy .native{ color:var(--leaf-300); }
.crew-copy p{ color:#c9dbcb; }
.crew-copy .guards{ color:#f8e8c9; }
.crew-copy .role-tag{
  color:#ffcb75;
  background:rgba(238,155,58,.13);
  border:1px solid rgba(244,184,96,.25);
  box-shadow:inset 0 1px rgba(255,255,255,.08);
}
.crew-figure .ring{
  box-shadow:inset 0 0 60px rgba(255,255,255,.06),0 30px 60px -35px rgba(0,0,0,.8);
}

/* Menu retains its night clearing but gains the hero's soft light beams */
.menu-section::after{
  content:"";
  position:absolute;
  inset:-20% -10%;
  z-index:0;
  pointer-events:none;
  opacity:.22;
  background:
    conic-gradient(from 195deg at 72% 0,transparent 0 32%,rgba(255,224,159,.16) 37%,transparent 43%),
    radial-gradient(ellipse at 14% 74%,rgba(68,153,104,.28),transparent 28%);
  filter:blur(14px);
  animation:sunSweep 20s ease-in-out infinite alternate;
}

/* Picnic pricing uses deep hero surfaces on the warm jungle floor */
.combos{
  background:
    radial-gradient(circle at 14% 16%,rgba(116,198,157,.4),transparent 25%),
    radial-gradient(circle at 88% 72%,rgba(238,155,58,.24),transparent 28%),
    linear-gradient(145deg,#fff8e7,#eee3c8);
}
.combo-card{
  overflow:hidden;
  color:#d5e3d7;
  background:
    radial-gradient(circle at 90% 0,rgba(64,145,108,.3),transparent 34%),
    linear-gradient(145deg,rgba(10,43,29,.97),rgba(21,65,45,.94));
  border-color:rgba(255,255,255,.11);
  box-shadow:0 34px 65px -42px rgba(5,36,22,.85),inset 0 1px rgba(255,255,255,.08);
}
.combo-card h4{ color:#fff8e9; }
.combo-card p{ color:#bcd0c0; }
.combo-card .price{ color:#ffc46c; }
.combo-card .price span{ color:#c9dbcb; }
.combo-card.best{
  border-color:rgba(244,184,96,.55);
  background:
    radial-gradient(circle at 88% 0,rgba(238,155,58,.27),transparent 38%),
    linear-gradient(145deg,#123c29,#1c593c);
  box-shadow:0 38px 75px -34px rgba(225,96,31,.4),0 0 45px -34px rgba(244,184,96,.8),inset 0 1px rgba(255,255,255,.1);
}

/* Sunset location is framed like the hero stage, with foliage behind it */
.visit::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  opacity:.11;
  background-image:radial-gradient(rgba(255,255,255,.75) .7px,transparent .8px);
  background-size:8px 8px;
  mask-image:linear-gradient(100deg,black,transparent 78%);
}
.visit-copy,
.map-frame{ position:relative; z-index:3; }
.visit-card{
  background:linear-gradient(145deg,rgba(255,255,255,.08),rgba(255,255,255,.035));
  border-color:rgba(255,255,255,.12);
  box-shadow:0 24px 45px -36px rgba(0,0,0,.8),inset 0 1px rgba(255,255,255,.08);
}
.map-frame{
  background:#123c2a;
  box-shadow:0 42px 88px -35px rgba(0,0,0,.78),0 0 48px -28px rgba(244,184,96,.58),inset 0 1px rgba(255,255,255,.18);
}

/* Footer continues the same night atmosphere instead of ending abruptly */
.site-footer{
  overflow:hidden;
  background:
    radial-gradient(circle at 82% 0,rgba(64,145,108,.24),transparent 28%),
    linear-gradient(155deg,#061b13,#0b2b1e);
}
.site-footer::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  opacity:.08;
  background-image:radial-gradient(rgba(255,255,255,.7) .6px,transparent .7px);
  background-size:8px 8px;
}
.site-footer .container{ position:relative; z-index:2; }

@media (max-width:980px){
  .story-intro-grid{ padding:clamp(26px,6vw,46px); }
  .crew-row{ border-radius:36px; }
}
@media (max-width:640px){
  .story-intro-grid{ border-radius:30px; }
  .story-intro p[style]{ font-size:1rem !important; }
  .crew-row{ border-radius:28px; }
}
@media (prefers-reduced-motion:reduce){
  .menu-section::after{ animation:none; }
}

/* ==========================================================================
   Dedicated collection pages
   ========================================================================== */
.inner-page{
  min-height:100vh;
  background:#081f16;
}
.inner-page .hero-leaves{ z-index:1; }
.inner-page .site-nav{ position:fixed; }
.page-nav{ gap:clamp(14px,1.8vw,26px); }
.page-nav a{ font-size:.86rem; white-space:nowrap; }
.page-nav a[aria-current="page"]{ color:#fff; }
.page-nav a[aria-current="page"]::after{ width:5px; transform:translateX(-50%) scale(1); }
.page-hero{
  position:relative;
  min-height:clamp(580px,72vh,760px);
  display:flex;
  align-items:center;
  overflow:hidden;
  padding:140px 0 95px;
  background:
    radial-gradient(circle at 78% 28%,var(--page-glow,rgba(64,145,108,.58)),transparent 32%),
    radial-gradient(circle at 12% 90%,rgba(238,155,58,.15),transparent 35%),
    linear-gradient(150deg,#071d15,#123d29 52%,#1d593d);
}
.page-hero::before{
  content:"";
  position:absolute;
  inset:0;
  opacity:.12;
  background-image:radial-gradient(rgba(255,255,255,.62) .7px,transparent .8px);
  background-size:7px 7px;
  mask-image:linear-gradient(to bottom,black,transparent 88%);
}
.page-hero::after{
  content:"";
  position:absolute;
  width:58%;
  height:120%;
  right:-4%;
  top:-30%;
  background:conic-gradient(from 192deg at 50% 0,transparent 0 32%,rgba(255,226,154,.15) 38%,transparent 44% 61%,rgba(185,255,210,.08) 67%,transparent 73%);
  filter:blur(14px);
  animation:sunSweep 18s ease-in-out infinite alternate;
}
.page-hero-grid{
  position:relative;
  z-index:4;
  display:grid;
  grid-template-columns:1.05fr .8fr;
  align-items:center;
  gap:clamp(30px,6vw,90px);
}
.page-hero-copy{ max-width:690px; }
.page-kicker{
  display:inline-flex;
  align-items:center;
  gap:9px;
  color:var(--leaf-300);
  background:rgba(159,221,187,.1);
  border:1px solid rgba(159,221,187,.28);
  border-radius:999px;
  padding:8px 16px;
  font-size:.76rem;
  font-weight:800;
  letter-spacing:.15em;
  text-transform:uppercase;
}
.page-hero h1{
  margin-top:22px;
  color:#fff8e9;
  font-size:clamp(3rem,6vw,5.8rem);
  line-height:.92;
  letter-spacing:-.02em;
}
.page-hero h1 em{
  display:block;
  font-style:normal;
  color:var(--mango-400);
}
.page-hero-copy > p{
  max-width:590px;
  margin-top:25px;
  color:#c9dbcb;
  font-size:clamp(1rem,1.4vw,1.18rem);
  line-height:1.7;
}
.page-hero-art{
  position:relative;
  min-height:430px;
  display:grid;
  place-items:center;
  perspective:var(--perspective);
}
.page-hero-art::before{
  content:"";
  position:absolute;
  width:min(430px,88%);
  aspect-ratio:1;
  border-radius:50%;
  background:radial-gradient(circle at 40% 35%,rgba(244,184,96,.36),rgba(64,145,108,.18) 46%,transparent 70%);
  animation:halo 9s ease-in-out infinite;
}
.page-hero-art::after{
  content:"";
  position:absolute;
  width:72%;
  height:11%;
  bottom:4%;
  border-radius:50%;
  background:rgba(0,0,0,.42);
  filter:blur(16px);
  transform:rotateX(68deg);
}
.page-hero-art img{
  position:relative;
  z-index:2;
  width:min(410px,95%);
  max-height:520px;
  object-fit:contain;
  filter:drop-shadow(0 35px 28px rgba(0,0,0,.48));
  animation:heroIdle 9s 1s ease-in-out infinite;
}
.page-orbit-chip{
  position:absolute;
  z-index:4;
  padding:10px 16px;
  border-radius:16px;
  color:var(--bark-800);
  background:rgba(255,248,232,.94);
  box-shadow:0 18px 35px -22px rgba(0,0,0,.7);
  font-family:var(--font-display);
  font-size:.86rem;
  animation:bob 6s ease-in-out infinite;
}
.page-orbit-chip.one{ top:15%; left:-3%; }
.page-orbit-chip.two{ right:-4%; bottom:18%; animation-delay:-2.4s; }

.catalog-section{
  position:relative;
  overflow:hidden;
  padding:clamp(76px,8vw,112px) 0;
  background:
    radial-gradient(circle at 8% 4%,rgba(116,198,157,.24),transparent 27%),
    radial-gradient(circle at 91% 80%,rgba(238,155,58,.12),transparent 28%),
    linear-gradient(155deg,#0b2b1e,#071c15);
}
.catalog-section::before{
  content:"";
  position:absolute;
  inset:0;
  opacity:.09;
  background-image:radial-gradient(rgba(255,255,255,.7) .65px,transparent .75px);
  background-size:8px 8px;
}
.catalog-section .container{ position:relative; z-index:3; }
.catalog-intro{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:30px;
  margin-bottom:50px;
}
.catalog-intro h2{ color:#fff8e9; font-size:clamp(2.2rem,4vw,3.6rem); }
.catalog-intro p{ max-width:540px; color:#a9c0ae; line-height:1.65; }
.catalog-groups{ display:grid; gap:70px; }
.catalog-group-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  margin-bottom:24px;
  padding-bottom:16px;
  border-bottom:1px solid rgba(255,255,255,.1);
}
.catalog-group-head h2{ color:#fff8e9; font-size:clamp(1.7rem,3vw,2.35rem); }
.catalog-count{
  flex:none;
  color:var(--leaf-300);
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.catalog-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(250px,1fr));
  gap:18px;
}
.catalog-card{
  position:relative;
  min-height:172px;
  overflow:hidden;
  padding:24px;
  border:1px solid rgba(255,255,255,.1);
  border-radius:22px;
  background:
    radial-gradient(circle at 100% 0,rgba(64,145,108,.2),transparent 35%),
    linear-gradient(145deg,rgba(255,255,255,.075),rgba(255,255,255,.025));
  box-shadow:0 25px 46px -36px rgba(0,0,0,.85),inset 0 1px rgba(255,255,255,.07);
  transition:transform .42s var(--ease-liquid),border-color .35s,box-shadow .35s;
}
.catalog-card:hover{
  transform:translateY(-6px);
  border-color:rgba(244,184,96,.34);
  box-shadow:0 34px 58px -38px rgba(0,0,0,.95),0 0 32px -26px rgba(244,184,96,.8),inset 0 1px rgba(255,255,255,.09);
}
.catalog-card h3{ color:#fff8e9; font-size:1.16rem; }
.catalog-card p{ margin-top:9px; color:#9fb6a4; font-size:.87rem; line-height:1.55; min-height:2.7em; }
.catalog-card .prices{ display:flex; flex-wrap:wrap; gap:8px; margin-top:18px; }
.catalog-card.featured{ border-color:rgba(244,184,96,.5); }
.catalog-card.featured::before{
  content:"Jungle favourite";
  position:absolute;
  right:14px;
  top:14px;
  color:#ffca77;
  font-size:.61rem;
  font-weight:800;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.offer-grid{ grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); }
.offer-card{ min-height:245px; }
.offer-card .offer-icon{
  display:grid;
  place-items:center;
  width:54px;
  height:54px;
  margin-bottom:22px;
  border-radius:17px;
  background:linear-gradient(145deg,var(--leaf-300),var(--fern-600));
  font-size:1.45rem;
  box-shadow:0 16px 28px -18px rgba(0,0,0,.8);
}
.offer-card .offer-price{
  margin-top:20px;
  color:#ffc36a;
  font-family:var(--font-display);
  font-size:1.7rem;
}
.offer-card .offer-price span{ color:#a9c0ae; font-family:var(--font-body); font-size:.78rem; font-weight:700; }
.offer-card.best-offer{
  border-color:rgba(244,184,96,.58);
  background:
    radial-gradient(circle at 95% 0,rgba(238,155,58,.27),transparent 40%),
    linear-gradient(145deg,rgba(25,79,53,.96),rgba(10,44,29,.96));
}
.offer-card.best-offer::after{
  content:"Best Offer";
  position:absolute;
  top:18px;
  right:18px;
  padding:7px 13px;
  border-radius:999px;
  color:#fff;
  background:linear-gradient(135deg,var(--mango-400),var(--papaya-600));
  font-size:.68rem;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.empty-feature{
  display:grid;
  grid-template-columns:1fr .8fr;
  align-items:center;
  gap:clamp(30px,6vw,80px);
  padding:clamp(30px,6vw,70px);
  border:1px solid rgba(255,255,255,.11);
  border-radius:42px;
  background:
    radial-gradient(circle at 88% 15%,rgba(238,155,58,.24),transparent 32%),
    linear-gradient(145deg,rgba(255,255,255,.075),rgba(255,255,255,.025));
  box-shadow:0 35px 75px -50px #000,inset 0 1px rgba(255,255,255,.08);
}
.empty-feature h2{ color:#fff8e9; font-size:clamp(2.2rem,5vw,4.3rem); }
.empty-feature p{ margin-top:18px; color:#b5c9b9; line-height:1.7; }
.empty-feature-art{
  position:relative;
  min-height:350px;
  display:grid;
  place-items:center;
}
.empty-feature-art::before{
  content:"";
  position:absolute;
  width:88%;
  aspect-ratio:1;
  border-radius:50%;
  background:radial-gradient(circle,rgba(244,184,96,.35),rgba(64,145,108,.18) 48%,transparent 70%);
}
.empty-feature-art img{ position:relative; z-index:2; width:min(360px,100%); max-height:420px; object-fit:contain; filter:drop-shadow(0 30px 24px rgba(0,0,0,.5)); }
.page-footer-links{ display:flex; flex-wrap:wrap; gap:16px 28px; }
.page-footer-links a{ color:#9fb3a3; font-size:.88rem; }
.page-footer-links a:hover,.page-footer-links a[aria-current="page"]{ color:var(--mango-400); }

@media (max-width:1120px){
  .page-nav{ display:none; }
  .page-nav ~ .nav-cta .nav-phone{ display:none; }
  .page-nav ~ .nav-cta .nav-toggle{ display:flex; }
  .page-nav.open-mobile{
    display:flex;
    position:fixed;
    top:82px;
    left:12px;
    right:12px;
    flex-direction:column;
    align-items:stretch;
    gap:4px;
    padding:18px;
    border:1px solid rgba(255,255,255,.12);
    border-radius:24px;
    background:rgba(7,29,21,.97);
    box-shadow:0 30px 60px -30px #000;
    backdrop-filter:blur(22px);
    animation:mobileMenuIn .35s var(--ease-liquid);
  }
  .page-nav.open-mobile a{ display:block; padding:13px 16px; border-radius:14px; }
}
@media (max-width:820px){
  .page-hero-grid,
  .empty-feature{ grid-template-columns:1fr; text-align:center; }
  .page-hero{ padding-top:130px; }
  .page-hero-copy{ margin-inline:auto; }
  .page-hero-copy > p{ margin-inline:auto; }
  .page-hero .hero-actions{ justify-content:center; }
  .page-hero-art{ min-height:340px; }
  .page-hero-art img{ max-height:390px; }
  .catalog-intro{ display:block; }
  .catalog-intro p{ margin-top:16px; }
  .empty-feature-art{ min-height:300px; }
}
@media (max-width:640px){
  .page-hero{ min-height:auto; padding:120px 0 75px; }
  .page-hero h1{ font-size:clamp(2.8rem,14vw,4.2rem); }
  .page-hero-art{ min-height:300px; }
  .page-orbit-chip{ font-size:.75rem; padding:8px 12px; }
  .page-orbit-chip.one{ left:1%; }
  .page-orbit-chip.two{ right:1%; }
  .catalog-grid{ grid-template-columns:1fr; }
  .catalog-groups{ gap:52px; }
  .empty-feature{ border-radius:30px; }
}
@media (prefers-reduced-motion:reduce){
  .page-hero::after,
  .page-hero-art::before,
  .page-hero-art img,
  .page-orbit-chip{ animation:none; }
}

/* ==========================================================================
   Mobile jungle navigation — cinematic drawer and tactile hamburger
   ========================================================================== */
.nav-toggle{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  padding:0;
  transform:translateZ(0);
  transition:
    transform .38s var(--ease-spring-soft),
    background .35s var(--ease-liquid),
    box-shadow .35s var(--ease-liquid),
    border-color .35s;
}
.nav-toggle::before{
  content:"";
  position:absolute;
  inset:-50%;
  z-index:-1;
  background:conic-gradient(from 210deg,transparent,rgba(244,184,96,.34),transparent 42%);
  transform:rotate(-55deg) scale(.5);
  opacity:0;
  transition:transform .55s var(--ease-liquid),opacity .3s;
}
.nav-toggle-lines{
  position:relative;
  width:21px;
  height:16px;
  display:block;
}
.nav-toggle-lines span{
  position:absolute;
  left:0;
  width:100%;
  height:2px;
  border-radius:999px;
  background:#fff8e9;
  box-shadow:0 0 8px rgba(244,184,96,.22);
  transform-origin:center;
  transition:
    top .38s var(--ease-liquid),
    transform .42s var(--ease-spring-soft),
    width .32s var(--ease-liquid),
    opacity .25s;
}
.nav-toggle-lines span:nth-child(1){ top:0; }
.nav-toggle-lines span:nth-child(2){ top:7px; width:72%; }
.nav-toggle-lines span:nth-child(3){ top:14px; }
.nav-toggle:hover{ transform:translateY(-2px); }
.nav-toggle:active{ transform:scale(.9); }
.site-nav.menu-active .nav-toggle{
  background:linear-gradient(145deg,rgba(244,184,96,.28),rgba(225,96,31,.18));
  border-color:rgba(244,184,96,.45);
  box-shadow:0 10px 28px -16px rgba(238,155,58,.9),inset 0 1px rgba(255,255,255,.14);
  transform:rotate(90deg);
}
.site-nav.menu-active .nav-toggle::before{ opacity:1; transform:rotate(15deg) scale(1); }
.site-nav.menu-active .nav-toggle-lines span:nth-child(1){ top:7px; transform:rotate(45deg); }
.site-nav.menu-active .nav-toggle-lines span:nth-child(2){ opacity:0; width:0; transform:scaleX(0); }
.site-nav.menu-active .nav-toggle-lines span:nth-child(3){ top:7px; transform:rotate(-45deg); }
.nav-menu-scrim{
  position:fixed;
  inset:0;
  z-index:98;
  display:block;
  width:100%;
  height:100%;
  padding:0;
  border:0;
  background:rgba(2,17,11,.58);
  backdrop-filter:blur(3px);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .42s var(--ease-liquid),visibility 0s linear .42s;
}
.nav-menu-scrim.visible{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transition-delay:0s;
}

@media (max-width:1120px){
  body.menu-open{ overscroll-behavior:none; }
  .site-nav{ z-index:104; }
  .site-nav .nav-phone{ display:none; }
  .site-nav .nav-toggle{ display:flex; }
  .site-nav.menu-active,
  .site-nav.scrolled.menu-active,
  .site-nav.menu-closing,
  .site-nav.scrolled.menu-closing{
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
  }
  .site-nav.menu-active .container,
  .site-nav.menu-closing .container{
    background:rgba(7,29,21,.88);
    border-color:rgba(255,255,255,.12);
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
    box-shadow:0 18px 45px -28px #000,inset 0 1px rgba(255,255,255,.08);
  }
  .page-nav,
  .page-nav.open-mobile,
  .nav-links.page-nav.open-mobile{
    position:fixed;
    inset:78px 10px 10px;
    z-index:102;
    display:flex;
    flex-direction:column;
    align-items:stretch;
    justify-content:center;
    gap:7px;
    width:auto;
    max-width:none;
    margin:0;
    padding:clamp(66px,10vh,100px) 18px 24px;
    overflow:hidden auto;
    border:1px solid rgba(255,255,255,.13);
    border-radius:30px;
    background:
      linear-gradient(145deg,rgba(7,31,22,.96),rgba(16,61,41,.95)),
      url("../assets/11.png") right -145px bottom -110px / 360px auto no-repeat;
    background-blend-mode:normal,screen;
    box-shadow:0 34px 85px -35px rgba(0,0,0,.92),inset 0 1px rgba(255,255,255,.09);
    backdrop-filter:blur(26px) saturate(140%);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:translate3d(0,-24px,0) scale(.965);
    transform-origin:50% 0;
    transition:
      opacity .34s var(--ease-liquid),
      transform .52s var(--ease-liquid),
      visibility 0s linear .52s;
  }
  .page-nav::before{
    content:"Explore the jungle";
    position:absolute;
    top:27px;
    left:28px;
    color:var(--leaf-300);
    font-size:.68rem;
    font-weight:800;
    letter-spacing:.18em;
    text-transform:uppercase;
  }
  .page-nav::after{
    content:"";
    position:absolute;
    top:33px;
    right:28px;
    width:54px;
    height:1px;
    background:linear-gradient(90deg,transparent,var(--mango-400));
    box-shadow:0 0 12px rgba(244,184,96,.45);
  }
  .page-nav.open-mobile,
  .nav-links.page-nav.open-mobile{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transform:translate3d(0,0,0) scale(1);
    transition-delay:0s;
  }
  .page-nav li{
    width:100%;
    opacity:0;
    transform:translate3d(0,22px,0);
    transition:
      opacity .32s var(--ease-liquid),
      transform .48s var(--ease-liquid);
  }
  .page-nav.open-mobile li{
    opacity:1;
    transform:translate3d(0,0,0);
    transition-delay:calc(.11s + var(--menu-index,0) * .055s);
  }
  .page-nav a,
  .page-nav.open-mobile a,
  .nav-links.page-nav.open-mobile a{
    position:relative;
    display:flex;
    align-items:center;
    min-height:62px;
    padding:13px 54px 13px 52px;
    overflow:hidden;
    border:1px solid rgba(255,255,255,.075);
    border-radius:19px;
    color:#eef5eb;
    background:linear-gradient(135deg,rgba(255,255,255,.065),rgba(255,255,255,.018));
    font-family:var(--font-display);
    font-size:clamp(1.02rem,4.7vw,1.24rem);
    font-weight:600;
    letter-spacing:.01em;
    box-shadow:inset 0 1px rgba(255,255,255,.055);
    transition:
      transform .3s var(--ease-spring-soft),
      background .3s,
      border-color .3s,
      color .3s;
  }
  .page-nav li{ counter-increment:mobile-menu; }
  .page-nav{ counter-reset:mobile-menu; }
  .page-nav a::before{
    content:"0" counter(mobile-menu);
    position:absolute;
    left:18px;
    color:var(--mango-400);
    font-family:var(--font-body);
    font-size:.65rem;
    font-weight:800;
    letter-spacing:.08em;
    opacity:.9;
  }
  .page-nav a::after{
    content:"→";
    position:absolute;
    right:19px;
    bottom:auto;
    left:auto;
    width:auto;
    height:auto;
    color:var(--leaf-300);
    background:none;
    font-family:var(--font-body);
    font-size:1.2rem;
    line-height:1;
    transform:translateX(0);
    opacity:.78;
    transition:transform .3s var(--ease-spring-soft),color .3s;
  }
  .page-nav a:hover,
  .page-nav a:focus-visible{
    color:#fff;
    background:linear-gradient(135deg,rgba(64,145,108,.25),rgba(238,155,58,.09));
    border-color:rgba(159,221,187,.25);
    transform:translateX(4px);
  }
  .page-nav a:hover::after,
  .page-nav a:focus-visible::after{ width:auto; transform:translateX(4px); color:var(--mango-400); }
  .page-nav a:active{
    transform:translateX(3px) scale(.975);
    background:linear-gradient(135deg,rgba(238,155,58,.2),rgba(64,145,108,.2));
  }
  .page-nav a[aria-current="page"]{
    border-color:rgba(244,184,96,.28);
    background:linear-gradient(135deg,rgba(238,155,58,.16),rgba(64,145,108,.12));
  }
}

@media (max-width:420px){
  .page-nav,
  .page-nav.open-mobile,
  .nav-links.page-nav.open-mobile{
    inset:72px 8px 8px;
    padding:58px 12px 18px;
    border-radius:25px;
  }
  .page-nav::before{ top:23px; left:20px; }
  .page-nav::after{ top:29px; right:20px; }
  .page-nav a,
  .page-nav.open-mobile a,
  .nav-links.page-nav.open-mobile a{
    min-height:57px;
    padding-block:10px;
  }
}

@media (prefers-reduced-motion:reduce){
  .page-nav,
  .page-nav li,
  .nav-menu-scrim,
  .nav-toggle,
  .nav-toggle-lines span{ transition-duration:.01ms !important; }
}
