/* ============================================================
   JIFFY TRICE — Immersive hamburger navigation
   Isolated component: no legacy nav-burger/mobile-menu selectors.
   ============================================================ */

:root {
  --jt-menu-ease: cubic-bezier(.16,1,.3,1);
  --jt-menu-line: rgba(255,255,255,.12);
  --jt-menu-soft: rgba(255,255,255,.48);
}

.jt-nav { z-index: 70; }
.jt-nav-inner { width:100%; }
.jt-nav-actions {
  margin-left:auto;
  display:flex;
  align-items:center;
  gap:8px;
}
.jt-nav-logo { flex:0 1 auto; min-width:0; }

.jt-menu-toggle {
  position:relative;
  flex:0 0 46px;
  width:46px;
  height:46px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0;
  border:1px solid rgba(255,255,255,.16);
  border-radius:999px;
  background:rgba(5,5,5,.28);
  color:#fff;
  -webkit-backdrop-filter:blur(12px);
  backdrop-filter:blur(12px);
  cursor:pointer;
  overflow:hidden;
  isolation:isolate;
  -webkit-tap-highlight-color:transparent;
  transition:transform 260ms var(--jt-menu-ease), border-color 220ms ease, background-color 220ms ease;
}
.jt-menu-toggle-ring {
  position:absolute;
  inset:3px;
  border:1px solid rgba(255,255,255,.07);
  border-radius:inherit;
  opacity:.75;
  transition:transform 620ms var(--jt-menu-ease), opacity 240ms ease;
}
.jt-menu-toggle-icon {
  position:relative;
  width:19px;
  height:14px;
  display:block;
}
.jt-menu-toggle-icon i {
  position:absolute;
  left:0;
  width:19px;
  height:1px;
  display:block;
  background:currentColor;
  transform-origin:center;
  transition:top 420ms var(--jt-menu-ease), transform 420ms var(--jt-menu-ease), width 360ms var(--jt-menu-ease);
}
.jt-menu-toggle-icon i:first-child { top:4px; }
.jt-menu-toggle-icon i:last-child { top:10px; width:13px; left:6px; }
.jt-menu-toggle-text { display:none; }

.jt-menu-toggle[aria-expanded="true"] { background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.32); }
.jt-menu-toggle[aria-expanded="true"] .jt-menu-toggle-ring { transform:rotate(90deg) scale(.92); opacity:.25; }
.jt-menu-toggle[aria-expanded="true"] .jt-menu-toggle-icon i:first-child,
.jt-menu-toggle[aria-expanded="true"] .jt-menu-toggle-icon i:last-child {
  top:7px;
  left:0;
  width:19px;
}
.jt-menu-toggle[aria-expanded="true"] .jt-menu-toggle-icon i:first-child { transform:rotate(45deg); }
.jt-menu-toggle[aria-expanded="true"] .jt-menu-toggle-icon i:last-child { transform:rotate(-45deg); }
.jt-menu-toggle:active { transform:scale(.94); }
.jt-menu-toggle:focus-visible { outline:1px solid #fff; outline-offset:4px; }

.jt-menu[hidden] { display:none !important; }
.jt-menu {
  position:fixed;
  inset:0;
  z-index:60;
  display:block;
  overflow:hidden;
  background:#020202;
  color:#fff;
  opacity:0;
  visibility:hidden;
  transition:opacity 300ms ease, visibility 0s linear 300ms;
}
.jt-menu.is-open {
  opacity:1;
  visibility:visible;
  transition:opacity 300ms ease, visibility 0s linear 0s;
}

.jt-menu::before {
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(circle at 8% 20%, rgba(255,255,255,.62) 0 1px, transparent 1.4px),
    radial-gradient(circle at 18% 71%, rgba(255,255,255,.25) 0 1px, transparent 1.3px),
    radial-gradient(circle at 32% 11%, rgba(255,255,255,.32) 0 1px, transparent 1.2px),
    radial-gradient(circle at 48% 82%, rgba(255,255,255,.4) 0 1px, transparent 1.4px),
    radial-gradient(circle at 62% 28%, rgba(255,255,255,.28) 0 1px, transparent 1.3px),
    radial-gradient(circle at 77% 68%, rgba(255,255,255,.48) 0 1px, transparent 1.3px),
    radial-gradient(circle at 91% 16%, rgba(255,255,255,.28) 0 1px, transparent 1.3px),
    radial-gradient(circle at 94% 88%, rgba(255,255,255,.42) 0 1px, transparent 1.3px),
    radial-gradient(ellipse at 74% 42%, rgba(255,255,255,.045), transparent 30%),
    linear-gradient(180deg, rgba(255,255,255,.018), transparent 28%, transparent 70%, rgba(255,255,255,.015));
  opacity:.75;
}
.jt-menu::after {
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:radial-gradient(ellipse at center, transparent 38%, rgba(0,0,0,.4) 76%, rgba(0,0,0,.78) 100%);
}

.jt-menu-atmosphere {
  position:absolute;
  inset:0;
  overflow:hidden;
  pointer-events:none;
  opacity:0;
  transform:scale(.98);
  transition:opacity 800ms ease 80ms, transform 1200ms var(--jt-menu-ease) 80ms;
}
.jt-menu.is-open .jt-menu-atmosphere { opacity:1; transform:none; }
.jt-menu-orbit {
  position:absolute;
  border:1px solid rgba(255,255,255,.06);
  border-radius:50%;
  transform:rotate(-14deg);
}
.jt-menu-orbit-a { width:min(68vw,900px); aspect-ratio:1.85/1; right:-18vw; top:17%; }
.jt-menu-orbit-b { width:min(46vw,620px); aspect-ratio:1.85/1; right:-8vw; top:29%; border-color:rgba(255,255,255,.035); transform:rotate(7deg); }
.jt-menu-planet {
  position:absolute;
  right:clamp(24px,10vw,180px);
  top:clamp(120px,21vh,220px);
  width:5px;
  height:5px;
  border-radius:50%;
  background:#fff;
  box-shadow:0 0 16px rgba(255,255,255,.7), 0 0 40px rgba(255,255,255,.22);
  animation:jtPlanetPulse 3.8s ease-in-out infinite;
}
@keyframes jtPlanetPulse { 50% { transform:scale(.7); opacity:.5; } }

.jt-menu-shell {
  position:relative;
  z-index:2;
  box-sizing:border-box;
  width:min(100%,1600px);
  height:100%;
  min-height:100dvh;
  margin-inline:auto;
  padding:
    max(92px, calc(72px + env(safe-area-inset-top)))
    max(clamp(18px,5vw,72px), env(safe-area-inset-right))
    max(18px, env(safe-area-inset-bottom))
    max(clamp(18px,5vw,72px), env(safe-area-inset-left));
  display:grid;
  grid-template-rows:auto minmax(0,1fr) auto;
  gap:clamp(12px,2.8vh,30px);
  opacity:.7;
  transform:translate3d(0,-10px,0);
  transition:opacity 460ms ease, transform 720ms var(--jt-menu-ease);
}
.jt-menu.is-open .jt-menu-shell { opacity:1; transform:none; }

.jt-menu-head {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  color:rgba(255,255,255,.34);
  font-size:.52rem;
  letter-spacing:.15em;
  text-transform:uppercase;
  opacity:0;
  transform:translateY(-6px);
  transition:opacity 320ms ease 80ms, transform 500ms var(--jt-menu-ease) 80ms;
}
.jt-menu.is-open .jt-menu-head { opacity:1; transform:none; }

.jt-menu-links {
  align-self:center;
  width:100%;
  max-height:100%;
  overflow:auto;
  overscroll-behavior:contain;
  scrollbar-width:none;
}
.jt-menu-links::-webkit-scrollbar { display:none; }
.jt-menu-link {
  --delay:70ms;
  position:relative;
  isolation:isolate;
  display:grid;
  grid-template-columns:28px minmax(0,1fr) auto 22px;
  align-items:center;
  gap:10px;
  min-height:clamp(58px,10.4dvh,86px);
  padding:4px 0;
  border-top:1px solid var(--jt-menu-line);
  color:rgba(255,255,255,.94);
  opacity:0;
  transform:translate3d(0,22px,0);
  transition:opacity 440ms ease var(--delay), transform 640ms var(--jt-menu-ease) var(--delay), color 220ms ease;
}
.jt-menu-link:last-child { border-bottom:1px solid var(--jt-menu-line); }
.jt-menu-link:nth-child(1){--delay:70ms}.jt-menu-link:nth-child(2){--delay:108ms}.jt-menu-link:nth-child(3){--delay:146ms}.jt-menu-link:nth-child(4){--delay:184ms}.jt-menu-link:nth-child(5){--delay:222ms}.jt-menu-link:nth-child(6){--delay:260ms}
.jt-menu.is-open .jt-menu-link { opacity:1; transform:none; }
.jt-menu-link::before {
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:linear-gradient(90deg, rgba(255,255,255,.055), rgba(255,255,255,.012) 58%, transparent 88%);
  opacity:0;
  transform:scaleX(.74);
  transform-origin:left center;
  transition:opacity 200ms ease, transform 520ms var(--jt-menu-ease);
}
.jt-menu-index {
  align-self:start;
  margin-top:clamp(10px,1.5vh,14px);
  color:rgba(255,255,255,.28);
  font:500 .48rem/1 var(--f-mono);
  letter-spacing:.12em;
  transition:color 220ms ease, transform 380ms var(--jt-menu-ease);
}
.jt-menu-title {
  min-width:0;
  font-family:var(--f-display);
  font-size:clamp(2rem,10.6vw,3.7rem);
  line-height:.9;
  letter-spacing:-.03em;
  text-transform:uppercase;
  white-space:nowrap;
  transition:transform 500ms var(--jt-menu-ease), letter-spacing 500ms var(--jt-menu-ease), opacity 220ms ease;
}
.jt-menu-caption {
  display:none;
  color:rgba(255,255,255,.28);
  font-size:.5rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  white-space:nowrap;
  transition:color 220ms ease, transform 500ms var(--jt-menu-ease);
}
.jt-menu-arrow {
  justify-self:end;
  color:rgba(255,255,255,.25);
  font:400 1rem/1 var(--f-body);
  transition:color 220ms ease, transform 380ms var(--jt-menu-ease);
}
.jt-menu-link.is-current .jt-menu-index,
.jt-menu-link[aria-current="true"] .jt-menu-index { color:#fff; }
.jt-menu-link.is-current::after,
.jt-menu-link[aria-current="true"]::after {
  content:"";
  position:absolute;
  left:0;
  top:50%;
  width:3px;
  height:3px;
  border-radius:50%;
  background:#fff;
  box-shadow:0 0 10px rgba(255,255,255,.7);
  transform:translate(-10px,-50%);
}

.jt-menu-footer {
  min-width:0;
  display:grid;
  gap:11px;
  color:rgba(255,255,255,.4);
  font-size:.52rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  opacity:0;
  transform:translateY(8px);
  transition:opacity 360ms ease 280ms, transform 540ms var(--jt-menu-ease) 280ms;
}
.jt-menu.is-open .jt-menu-footer { opacity:1; transform:none; }
.jt-menu-socials { display:flex; flex-wrap:wrap; gap:8px 16px; }
.jt-menu-footer a { color:inherit; transition:color 180ms ease; }
.jt-menu-mail { width:fit-content; max-width:100%; color:rgba(255,255,255,.72)!important; letter-spacing:.025em; text-transform:none; overflow-wrap:anywhere; }

body.jt-menu-open { overflow:hidden; }
body.jt-menu-open .jt-nav { transform:none !important; background:transparent !important; border-bottom-color:transparent !important; -webkit-backdrop-filter:none !important; backdrop-filter:none !important; }
body.jt-menu-open .jt-nav-cta { opacity:0; transform:translateX(8px); pointer-events:none; transition:opacity 180ms ease, transform 320ms var(--jt-menu-ease); }
body:not(.jt-menu-open) .jt-nav-cta { transition:opacity 240ms ease, transform 420ms var(--jt-menu-ease); }

@media (hover:hover) and (pointer:fine) {
  .jt-menu-toggle:hover { transform:scale(1.045); border-color:rgba(255,255,255,.3); background:rgba(255,255,255,.06); }
  .jt-menu-toggle:hover .jt-menu-toggle-ring { transform:rotate(38deg); opacity:.4; }
  .jt-menu-links:has(.jt-menu-link:hover) .jt-menu-link:not(:hover),
  .jt-menu-links:has(.jt-menu-link:focus-visible) .jt-menu-link:not(:focus-visible) { color:rgba(255,255,255,.35); }
  .jt-menu-link:hover::before,
  .jt-menu-link:focus-visible::before { opacity:1; transform:scaleX(1); }
  .jt-menu-link:hover .jt-menu-title,
  .jt-menu-link:focus-visible .jt-menu-title { transform:translateX(clamp(5px,.7vw,11px)); letter-spacing:-.015em; }
  .jt-menu-link:hover .jt-menu-index,
  .jt-menu-link:focus-visible .jt-menu-index { color:rgba(255,255,255,.92); transform:translateX(2px); }
  .jt-menu-link:hover .jt-menu-caption,
  .jt-menu-link:focus-visible .jt-menu-caption { color:rgba(255,255,255,.68); transform:translateX(-3px); }
  .jt-menu-link:hover .jt-menu-arrow,
  .jt-menu-link:focus-visible .jt-menu-arrow { color:#fff; transform:translate(3px,-3px) rotate(4deg); }
  .jt-menu-footer a:hover,
  .jt-menu-footer a:focus-visible { color:#fff; }
}
.jt-menu-link:focus-visible { outline:1px solid rgba(255,255,255,.7); outline-offset:-1px; }
.jt-menu-link:active .jt-menu-title { transform:translate3d(4px,1px,0) scale(.985); transition-duration:90ms; }

@media (max-width:479px) {
  .jt-nav-inner { padding-inline:max(clamp(12px,4vw,18px),env(safe-area-inset-left)) max(clamp(12px,4vw,18px),env(safe-area-inset-right)); gap:6px; }
  .jt-nav-logo img { height:16px; width:auto; max-width:clamp(98px,30vw,118px); }
  .jt-nav-actions { gap:5px; }
  .jt-menu-toggle { width:40px; height:40px; flex-basis:40px; }
  .jt-menu-toggle-icon { transform:scale(.92); }
  .jt-nav .jt-nav-cta.shimmer-btn { min-width:76px; min-height:38px; padding:8px 9px; font-size:.63rem; }
  .jt-menu-shell { padding-top:max(82px,calc(64px + env(safe-area-inset-top))); gap:10px; }
  .jt-menu-head { font-size:.45rem; }
  .jt-menu-head span:last-child { display:none; }
  .jt-menu-link { grid-template-columns:24px minmax(0,1fr) 18px; min-height:clamp(54px,9.1dvh,70px); gap:8px; }
  .jt-menu-caption { display:none; }
  .jt-menu-title { font-size:clamp(1.85rem,10.2vw,2.8rem); }
  .jt-menu-index { margin-top:9px; font-size:.45rem; }
  .jt-menu-footer { font-size:.48rem; }
  .jt-menu-orbit-a { width:110vw; right:-58vw; }
  .jt-menu-orbit-b { display:none; }
}

@media (min-width:600px) {
  .jt-menu-shell { padding-inline:max(clamp(30px,6vw,74px),env(safe-area-inset-left)) max(clamp(30px,6vw,74px),env(safe-area-inset-right)); }
  .jt-menu-link { grid-template-columns:40px minmax(0,1fr) auto 26px; min-height:clamp(72px,10.8dvh,100px); }
  .jt-menu-title { font-size:clamp(3.3rem,8.8vw,5.7rem); }
  .jt-menu-caption { display:block; }
  .jt-menu-footer { grid-template-columns:1fr auto; align-items:end; }
}

@media (min-width:1024px) {
  .jt-nav-inner { min-height:80px; padding-inline:clamp(30px,3.5vw,56px); }
  .jt-nav-logo img { height:20px; width:auto; }
  .jt-nav-actions { gap:10px; }
  .jt-menu-toggle { width:48px; height:48px; flex-basis:48px; }
  .jt-nav .jt-nav-cta.shimmer-btn { min-width:108px; min-height:44px; padding-inline:18px; font-size:.74rem; }
  .jt-menu-shell { padding-top:max(104px,calc(84px + env(safe-area-inset-top))); padding-inline:clamp(48px,6vw,96px); }
  .jt-menu-links { max-width:1260px; margin-inline:auto; }
  .jt-menu-link { grid-template-columns:54px minmax(0,1fr) 120px 32px; min-height:clamp(86px,11.7dvh,118px); gap:18px; }
  .jt-menu-title { font-size:clamp(4.7rem,7.1vw,7.3rem); }
  .jt-menu-caption { font-size:.56rem; }
  .jt-menu-index { margin-top:16px; font-size:.52rem; }
}

@media (max-height:650px) and (orientation:landscape) {
  .jt-menu-shell { padding-top:max(70px,calc(56px + env(safe-area-inset-top))); grid-template-columns:minmax(0,1.7fr) minmax(190px,.7fr); grid-template-rows:auto minmax(0,1fr); column-gap:clamp(24px,5vw,64px); row-gap:8px; }
  .jt-menu-head { grid-column:1/-1; }
  .jt-menu-links { align-self:stretch; }
  .jt-menu-link { min-height:44px; }
  .jt-menu-title { font-size:clamp(1.8rem,5.6vw,3.3rem); }
  .jt-menu-index { margin-top:8px; }
  .jt-menu-footer { align-self:end; grid-template-columns:1fr; }
}

@media (prefers-reduced-motion:reduce) {
  .jt-menu-toggle,
  .jt-menu-toggle-ring,
  .jt-menu-toggle-icon i,
  .jt-menu,
  .jt-menu-atmosphere,
  .jt-menu-shell,
  .jt-menu-head,
  .jt-menu-link,
  .jt-menu-link::before,
  .jt-menu-title,
  .jt-menu-index,
  .jt-menu-caption,
  .jt-menu-arrow,
  .jt-menu-footer,
  .jt-nav-cta { transition-duration:1ms !important; transition-delay:0ms !important; }
  .jt-menu-planet { animation:none; }
}

/* ============================================================
   FINAL HEADER POSITION FIX
   Desktop: logo stays left; hamburger + Book Now sit at the
   actual right edge of the viewport, not inside the centered wrap.
   ============================================================ */
@media (min-width:1024px) {
  .jt-nav-inner {
    width:100%;
    max-width:none;
    margin-inline:0;
    box-sizing:border-box;
    padding-left:max(clamp(28px,3.2vw,52px), env(safe-area-inset-left));
    padding-right:max(clamp(28px,3.2vw,52px), env(safe-area-inset-right));
  }

  .jt-nav-logo {
    margin-right:auto;
  }

  .jt-nav-actions {
    margin-left:auto;
    margin-right:0;
    flex:0 0 auto;
    justify-content:flex-end;
  }

  .jt-nav .jt-nav-cta.shimmer-btn {
    margin-left:0 !important;
    margin-right:0 !important;
  }
}
