/* JS PARK & STAY - JOURNEY DESIGN SYSTEM (shared by all pages). Prefix: jsj- */
.jsj{
  --night:#16191D;--charcoal:#22272E;--slate:#3A3F47;--coral:#D04A30;--coral-deep:#B23B24;--coral-hi:#FF9C85;--amber:#FFB547;--paper:#F8F5F2;
  --paper-soft:rgba(248,245,242,.76);--paper-faint:rgba(248,245,242,.52);--glass:rgba(22,25,29,.66);--glass-strong:rgba(22,25,29,.84);
  --line:rgba(248,245,242,.14);--field:rgba(248,245,242,.07);
  --display:"Big Shoulders Display","Arial Narrow","Roboto Condensed",sans-serif;
  --body:"Instrument Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --mono:"JetBrains Mono",ui-monospace,"SFMono-Regular",Consolas,monospace;
  --hdr:84px;
  position:relative;width:100%;background:var(--night);color:var(--paper);font-family:var(--body);font-size:1.0625rem;line-height:1.6;color-scheme:dark;overflow:clip;
}
.jsj *,.jsj *::before,.jsj *::after{box-sizing:border-box}
.jsj.no-webgl{background:linear-gradient(180deg,#0c0e11 0%,#22272E 55%,#B23B24 120%)}

/* 3D backdrop, confined to the page body */
.jsj-viewport{position:sticky;top:0;height:100vh;margin-bottom:-100vh;z-index:0;pointer-events:none}
.jsj-viewport canvas{display:block;width:100%;height:100%}
.jsj-scrim{position:absolute;inset:0;background:linear-gradient(90deg,rgba(22,25,29,.72) 0%,rgba(22,25,29,.35) 38%,rgba(22,25,29,0) 62%)}
.jsj-flow .jsj-scrim{background:linear-gradient(90deg,rgba(22,25,29,.82) 0%,rgba(22,25,29,.5) 42%,rgba(22,25,29,.08) 72%)}

/* type + common */
.jsj .jsj-eyebrow{display:flex;align-items:center;gap:10px;font-family:var(--mono);font-size:.72rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--amber);margin:0}
.jsj .jsj-eyebrow::before{content:"";width:26px;height:2px;background:var(--coral);border-radius:2px}
.jsj h1,.jsj h2{font-family:var(--display);font-weight:800;text-transform:uppercase;letter-spacing:.005em;line-height:.92;margin:0;color:var(--paper);text-wrap:balance}
.jsj h1{font-size:clamp(3.2rem,8.2vw,7rem)}
.jsj h1 em,.jsj h2 em{font-style:normal;color:var(--coral-hi)}
.jsj h2{font-size:clamp(2.3rem,4.6vw,3.7rem)}
.jsj h3{font-family:var(--body);font-weight:600;font-size:1.08rem;line-height:1.35;margin:0;color:var(--paper)}
.jsj p{margin:0;color:var(--paper-soft);max-width:60ch;font-size:inherit;line-height:1.6}
.jsj .jsj-lede{font-size:1.15rem;max-width:34rem}
.jsj .jsj-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:6px}
.jsj .jsj-btn{display:inline-flex;align-items:center;gap:8px;font-family:var(--body);font-weight:600;font-size:.95rem;line-height:1.2;text-decoration:none;border-radius:12px;padding:13px 20px;border:1px solid transparent;cursor:pointer;transition:background .2s ease,transform .2s ease,border-color .2s ease}
.jsj .jsj-btn-primary{background:var(--coral);color:var(--paper)}
.jsj .jsj-btn-primary:hover{background:var(--coral-deep);color:var(--paper);transform:translateY(-1px)}
.jsj .jsj-btn-ghost{background:transparent;color:var(--paper);border-color:var(--line)}
.jsj .jsj-btn-ghost:hover{border-color:var(--paper-faint);color:var(--paper)}
.jsj .jsj-btn-light{background:var(--paper);color:var(--night)}
.jsj .jsj-btn-light:hover{background:#fff;color:var(--night);transform:translateY(-1px)}
.jsj a:focus-visible,.jsj button:focus-visible,.jsj input:focus-visible,.jsj textarea:focus-visible{outline:2px solid var(--amber);outline-offset:3px}
.jsj .jsj-hint{display:flex;align-items:center;gap:10px;font-family:var(--mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--paper-faint);margin-top:18px}
.jsj .jsj-hint i{display:block;width:1px;height:34px;background:linear-gradient(var(--amber),transparent);animation:jsjdrop 1.8s ease-in-out infinite}
@keyframes jsjdrop{0%{transform:scaleY(.2);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}100%{transform:scaleY(1);transform-origin:bottom;opacity:0}}

.jsj .jsj-panel{width:min(31rem,100%);background:var(--glass);-webkit-backdrop-filter:blur(14px) saturate(1.1);backdrop-filter:blur(14px) saturate(1.1);border:1px solid var(--line);border-radius:20px;padding:clamp(20px,3vw,32px);display:flex;flex-direction:column;gap:16px}
.jsj .jsj-hero{width:min(40rem,100%);background:none;border:0;-webkit-backdrop-filter:none;backdrop-filter:none;padding:0}

/* lists + cards */
.jsj .jsj-steps{list-style:none;margin:4px 0 0;padding:0;display:grid;gap:14px;counter-reset:jsjstep}
.jsj .jsj-steps li{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 14px;align-items:start;counter-increment:jsjstep;margin:0}
.jsj .jsj-steps li::before{content:"0" counter(jsjstep);grid-row:span 2;font-family:var(--mono);font-weight:600;font-size:.8rem;color:var(--night);background:var(--amber);border-radius:8px;padding:5px 8px;line-height:1.2}
.jsj .jsj-steps strong,.jsj .jsj-cards strong{color:var(--paper);font-weight:600}
.jsj .jsj-steps p,.jsj .jsj-cards p,.jsj .jsj-ticks p{font-size:.95rem}
.jsj .jsj-checks{list-style:none;margin:4px 0 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.jsj .jsj-checks li{display:flex;gap:10px;align-items:flex-start;margin:0;font-size:.95rem;color:var(--paper);background:var(--field);border:1px solid var(--line);border-radius:12px;padding:10px 12px}
.jsj .jsj-checks li::before,.jsj .jsj-ticks li::before{content:"";flex:0 0 8px;height:8px;margin-top:8px;border-radius:50%;background:var(--amber);box-shadow:0 0 10px var(--amber)}
.jsj .jsj-ticks{list-style:none;margin:4px 0 0;padding:0;display:grid;gap:12px}
.jsj .jsj-ticks li{display:flex;gap:12px;align-items:flex-start;margin:0}
.jsj .jsj-ticks li > div{display:grid;gap:2px}
.jsj .jsj-cards{display:grid;gap:12px;margin-top:4px}
.jsj .jsj-cards article,.jsj .jsj-card{display:grid;gap:6px;align-content:start;padding:16px 18px;border-radius:14px;background:var(--field);border:1px solid var(--line)}
.jsj .jsj-dur{font-family:var(--mono);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--coral-hi)}
.jsj .jsj-email{display:flex;flex-wrap:wrap;align-items:center;gap:10px;font-size:.95rem;color:var(--paper-soft)}
.jsj .jsj-email a{font-family:var(--mono);font-size:.9rem;color:var(--paper);background:var(--field);border:1px solid var(--line);border-radius:8px;padding:4px 8px;text-decoration:none}
.jsj .jsj-email a:hover{border-color:var(--paper-faint)}

/* HOME: sticky stage panels */
.jsj-stages{position:relative;z-index:5}
.jsj .jsj-stage{min-height:150vh;padding:0 max(16px,5vw)}
.jsj #jsj-depart{min-height:170vh}
.jsj #jsj-book{min-height:130vh}
.jsj .jsj-inner{position:sticky;top:calc(var(--hdr) + clamp(24px,8vh,80px));padding:24px 0 48px;display:flex}

/* INNER PAGES: flowing glass sections over the scene */
.jsj-flow-body{position:relative;z-index:5}
.jsj .jsj-sec{padding:clamp(48px,8vw,104px) max(16px,5vw)}
.jsj .jsj-wrap{max-width:1180px;margin:0 auto;display:grid;gap:clamp(20px,3vw,32px)}
.jsj .jsj-pagehero{min-height:min(92vh,860px);display:flex;align-items:center;padding-top:calc(var(--hdr) + 40px)}
.jsj .jsj-pagehero .jsj-wrap{width:100%}
.jsj .jsj-head{display:grid;gap:14px;max-width:44rem;text-shadow:0 2px 18px rgba(0,0,0,.7)}
.jsj .jsj-hero{text-shadow:0 2px 22px rgba(0,0,0,.55)}
.jsj .jsj-box{background:var(--glass);-webkit-backdrop-filter:blur(14px) saturate(1.1);backdrop-filter:blur(14px) saturate(1.1);border:1px solid var(--line);border-radius:22px;padding:clamp(22px,3.4vw,40px);display:grid;gap:18px;min-width:0}
.jsj .jsj-grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.jsj .jsj-split{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(20px,3vw,32px);align-items:start}
.jsj .jsj-cta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px;border-radius:22px;padding:clamp(24px,4vw,44px);background:linear-gradient(120deg,var(--coral),var(--coral-deep));border:1px solid rgba(255,255,255,.12)}
.jsj .jsj-cta h2{font-size:clamp(2rem,4vw,3.1rem)}
.jsj .jsj-cta p{color:rgba(248,245,242,.86)}
.jsj .jsj-cta > div{display:grid;gap:10px;max-width:40rem}
.jsj .jsj-facts{display:grid;gap:10px}
.jsj .jsj-facts div{display:flex;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding-top:10px;font-size:.95rem}
.jsj .jsj-facts dt{font-family:var(--mono);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--paper-faint)}
.jsj .jsj-facts dd{margin:0;color:var(--paper);text-align:right}

/* CONTACT hub */
.jsj .jsj-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.jsj .jsj-tile{display:flex;align-items:center;gap:14px;padding:20px 22px;border-radius:18px;background:var(--glass);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid var(--line);text-decoration:none;color:var(--paper);transition:border-color .2s ease,transform .2s ease}
.jsj .jsj-tile:hover{border-color:var(--amber);transform:translateY(-2px);color:var(--paper)}
.jsj .jsj-tile i{display:inline-flex;align-items:center;justify-content:center;flex:0 0 40px;height:40px;border-radius:12px;background:rgba(255,181,71,.12);color:var(--amber);font-style:normal;font-size:1.1rem}
.jsj .jsj-tile strong{display:block;font-weight:600}
.jsj .jsj-tile span{display:block;font-size:.88rem;color:var(--paper-faint);overflow-wrap:anywhere}
.jsj .jsj-hubgrid{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:20px;align-items:stretch}
.jsj #jsj-enquiry{scroll-margin-top:calc(var(--hdr) + 20px)}
.jsj .jsj-map{display:flex;flex-direction:column;overflow:hidden;padding:0;gap:0}
.jsj .jsj-map iframe{display:block;flex:1;width:100%;min-height:320px;border:0;filter:grayscale(.35) contrast(1.05)}
.jsj .jsj-map .jsj-facts{padding:20px 24px 24px}

/* Contact Form 7, dark */
.jsj .jsp-enquiry-form label{font-family:var(--mono);font-size:.7rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--paper-faint);margin-bottom:8px}
.jsj .jsp-enquiry-form input[type="text"],.jsj .jsp-enquiry-form input[type="email"],.jsj .jsp-enquiry-form input[type="tel"],.jsj .jsp-enquiry-form input[type="date"],.jsj .jsp-enquiry-form textarea{width:100%;min-height:56px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:var(--field);color:var(--paper);font-family:var(--body);font-size:1rem;line-height:1.5;box-shadow:none;color-scheme:dark}
.jsj .jsp-enquiry-form textarea{min-height:130px;height:auto}
.jsj .jsp-enquiry-form input::placeholder,.jsj .jsp-enquiry-form textarea::placeholder{color:rgba(248,245,242,.42)}
.jsj .jsp-enquiry-form input:focus,.jsj .jsp-enquiry-form textarea:focus{border-color:var(--amber);background:rgba(248,245,242,.1);box-shadow:0 0 0 4px rgba(255,181,71,.12)}
.jsj .jsp-enquiry-form input[type="submit"]{min-height:54px;min-width:0;padding:14px 24px;border-radius:12px;background:var(--coral);color:var(--paper);font-family:var(--body);font-size:1rem;font-weight:600;box-shadow:none}
.jsj .jsp-enquiry-form input[type="submit"]:hover{background:var(--coral-deep);box-shadow:none}
.jsj .jsp-enquiry-form .wpcf7-not-valid-tip{color:var(--coral-hi)}
.jsj .wpcf7 form .wpcf7-response-output{color:var(--paper);border-color:var(--amber)}

/* HUD (home) */
.jsj-hud{position:fixed;z-index:15;right:max(16px,3vw);top:50%;transform:translateY(-50%);width:230px;font-family:var(--mono);color:var(--paper);background:var(--glass-strong);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--line);border-radius:16px;padding:16px;display:grid;gap:14px;transition:opacity .3s ease,visibility .3s}
.jsj-hud[data-off]{opacity:0;visibility:hidden}
.jsj-hud .jsj-hud-top{display:grid;gap:2px}
.jsj-hud .jsj-hud-code{font-family:var(--display);font-weight:800;font-size:2.4rem;line-height:1;color:var(--amber);letter-spacing:.04em}
.jsj-hud .jsj-hud-name{font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--paper-soft)}
.jsj-hud dl{margin:0;display:grid;gap:8px}
.jsj-hud dl div{display:flex;justify-content:space-between;align-items:baseline;gap:8px;border-top:1px solid var(--line);padding-top:8px}
.jsj-hud dt{font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--paper-faint);font-weight:400}
.jsj-hud dd{margin:0;font-size:.9rem;font-weight:600;color:var(--paper);font-variant-numeric:tabular-nums;text-align:right}
.jsj-hud ol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px}
.jsj-hud ol li{margin:0}
.jsj-hud ol button{width:100%;font-family:var(--mono);font-size:.62rem;font-weight:600;letter-spacing:.06em;color:var(--paper-faint);background:transparent;border:1px solid var(--line);border-radius:8px;padding:6px 0;cursor:pointer;line-height:1.2}
.jsj-hud ol button:hover{color:var(--paper);background:transparent}
.jsj-hud ol button[aria-current="step"]{color:var(--night);background:var(--amber);border-color:var(--amber)}
.jsj-hud .jsj-bar{height:3px;background:var(--line);border-radius:3px;overflow:hidden}
.jsj-hud .jsj-bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--coral),var(--amber))}

@media (max-width:900px){
  .jsj-scrim,.jsj-flow .jsj-scrim{background:linear-gradient(180deg,rgba(22,25,29,.6) 0%,rgba(22,25,29,.25) 35%,rgba(22,25,29,.25) 55%,rgba(22,25,29,.75) 100%)}
  .jsj-hud{top:auto;bottom:calc(12px + env(safe-area-inset-bottom,0px));left:16px;right:16px;width:auto;transform:none;grid-template-columns:auto minmax(0,1fr);align-items:center;padding:10px 14px;gap:6px 14px}
  .jsj-hud .jsj-hud-code{font-size:1.7rem}
  .jsj-hud dl{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
  .jsj-hud dl div{flex-direction:column;align-items:flex-start;border-top:0;padding-top:0;gap:0}
  .jsj-hud dd{text-align:left;font-size:.8rem}
  .jsj-hud ol{display:none}
  .jsj-hud .jsj-bar{grid-column:1/-1}
  .jsj{--hdr:76px}
  .jsj .jsj-inner{top:calc(var(--hdr) + 12px)}
  .jsj .jsj-stage{padding-bottom:110px}
  .jsj .jsj-grid3,.jsj .jsj-split,.jsj .jsj-tiles,.jsj .jsj-hubgrid{grid-template-columns:1fr}
  .jsj .jsj-pagehero{min-height:78vh}
}
@media (max-width:560px){
  .jsj .jsj-checks{grid-template-columns:1fr}
  .jsj-hud .jsj-hud-name{display:none}
}
@media (prefers-reduced-motion:reduce){
  .jsj .jsj-hint i{animation:none}
  .jsj .jsj-btn,.jsj-hud,.jsj .jsj-tile{transition:none}
}
