/* ============================================================
   SHAPER RETREATS — JAPAN RETREAT · presentation aid
   Visual-first. Big imagery, minimal text.
   ============================================================ */
:root{
  --dark:#212427; --red:#C74343; --red-hover:#b03a3a; --light:#f5f5f3;
  --white:#fff; --muted:#6d6d6d; --border:#e2e2df; --text:#2a2d30;
  --head:'Arial','Inter',sans-serif;
  --body:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --nav-h:68px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--body);color:var(--text);background:var(--dark);-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
section{position:relative}

/* ---------- NAV ---------- */
.nav{position:sticky;top:0;z-index:50;height:var(--nav-h);background:rgba(33,36,39,.96);backdrop-filter:blur(8px);border-bottom:1px solid rgba(255,255,255,.08)}
.nav__in{max-width:1200px;margin:0 auto;height:100%;padding:0 1.2rem;display:flex;align-items:center;gap:1rem}
.nav__logo{display:flex;align-items:center;text-decoration:none;white-space:nowrap}
.nav__logo img{height:46px;width:auto;display:block}
@media(max-width:680px){.nav__logo img{height:40px}}
.nav__links{display:flex;gap:1.1rem;margin-left:auto;overflow-x:auto;scrollbar-width:none}
.nav__links::-webkit-scrollbar{display:none}
.nav__links a{color:rgba(255,255,255,.72);text-decoration:none;font-size:.8rem;font-weight:500;letter-spacing:.04em;white-space:nowrap;text-transform:uppercase;transition:color .2s}
.nav__links a:hover{color:#fff}
/* currency toggle */
.nav__right{margin-left:auto;display:flex;align-items:center;gap:.85rem}
.nav__right .cur{margin-left:0}
.nav__site{color:#fff;text-decoration:none;font-size:.78rem;font-weight:600;letter-spacing:.03em;border:1px solid rgba(255,255,255,.32);padding:.42rem .9rem;border-radius:999px;white-space:nowrap;transition:background .2s}
.nav__site:hover{background:rgba(255,255,255,.16)}
@media(max-width:520px){.nav__site{display:none}}
.cur{display:inline-flex;border:1px solid rgba(255,255,255,.3);border-radius:999px;overflow:hidden;margin-left:1rem;flex-shrink:0}
.cur button{background:transparent;color:rgba(255,255,255,.7);border:0;padding:.35rem .8rem;font-family:var(--body);font-weight:700;font-size:.78rem;cursor:pointer;letter-spacing:.04em}
.cur button.on{background:var(--red);color:#fff}

/* ---------- SUB-HEADER NAV ---------- */
.subnav{position:sticky;top:var(--nav-h);z-index:49;background:rgba(28,31,33,.97);backdrop-filter:blur(8px);border-bottom:1px solid rgba(255,255,255,.08)}
.subnav__in{max-width:1200px;margin:0 auto;display:flex;gap:.2rem;padding:0 1rem;overflow-x:auto;scrollbar-width:none}
.subnav__in::-webkit-scrollbar{display:none}
.subnav__in a{flex:0 0 auto;color:rgba(255,255,255,.58);text-decoration:none;font-size:.76rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;padding:.8rem .75rem;border-bottom:2px solid transparent;white-space:nowrap;transition:color .2s,border-color .2s}
.subnav__in a:hover{color:#fff}
.subnav__in a.active{color:#fff;border-bottom-color:var(--red)}

/* ---------- SECTION SHELL ---------- */
.band{min-height:88vh;display:flex;align-items:flex-end;color:#fff;padding:3rem 1.2rem;background-size:cover;background-position:center;position:relative}
.band::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(33,36,39,.15) 0%,rgba(33,36,39,.1) 45%,rgba(33,36,39,.85) 100%);z-index:0}
.band>.wrap{position:relative;z-index:1;max-width:1100px;margin:0 auto;width:100%}
.wrap{max-width:1100px;margin:0 auto}
.sec{padding:5rem 1.2rem}
.sec--light{background:var(--light);color:var(--text)}
.sec--white{background:var(--white);color:var(--text)}
.sec--dark{background:var(--dark);color:#fff}
.eyebrow{font-family:var(--body);font-weight:700;letter-spacing:.18em;text-transform:uppercase;font-size:.72rem;color:var(--red);margin-bottom:.6rem}
.band .eyebrow{color:#fff;opacity:.85}
.h-xl{font-family:var(--head);font-weight:800;line-height:.98;letter-spacing:.01em;font-size:clamp(2.6rem,7vw,5.5rem);text-transform:uppercase}
.h-lg{font-family:var(--head);font-weight:700;line-height:1;letter-spacing:.01em;font-size:clamp(2rem,5vw,3.5rem);text-transform:uppercase}
.lead{font-size:clamp(1rem,2.2vw,1.3rem);line-height:1.5;max-width:640px;margin-top:1rem;font-weight:300}
.band .lead{color:rgba(255,255,255,.92)}

/* ---------- HERO ---------- */
.hero{min-height:100vh}
.hero--top{align-items:flex-start}
.hero--top>.wrap{margin-top:calc(var(--nav-h) + 1.4rem)}
.hero--top::after{background:linear-gradient(180deg,rgba(33,36,39,.82) 0%,rgba(33,36,39,.45) 32%,rgba(33,36,39,.12) 62%,rgba(33,36,39,.34) 100%)}
.band--mid{min-height:70vh}
.hero .h-xl{max-width:14ch}

/* ---------- PILL TAGS ---------- */
.tags{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:1.4rem}
.tag{font-family:var(--body);font-weight:600;font-size:.82rem;letter-spacing:.02em;padding:.5rem .95rem;border-radius:999px;background:rgba(255,255,255,.14);color:#fff;border:1px solid rgba(255,255,255,.25);backdrop-filter:blur(4px)}
.sec--light .tag,.sec--white .tag{background:#fff;color:var(--dark);border-color:var(--border)}

/* ---------- GALLERY (running strip) ---------- */
.gallery{display:flex;gap:1rem;overflow-x:auto;padding:1.5rem 0 .5rem;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}
.gallery img{height:340px;width:auto;border-radius:10px;object-fit:cover;scroll-snap-align:start;flex:0 0 auto;box-shadow:0 10px 30px rgba(0,0,0,.12)}
.gallery::-webkit-scrollbar{height:6px}.gallery::-webkit-scrollbar-thumb{background:#cfcfcf;border-radius:99px}
.split{display:grid;grid-template-columns:1.1fr 1fr;gap:2.5rem;align-items:center}
.split img{border-radius:12px;height:100%;max-height:520px;width:100%;object-fit:cover}
@media(max-width:760px){.split{grid-template-columns:1fr}}

/* ---------- DATES ---------- */
.dates{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.2rem;margin-top:2rem}
.date-card{border:1px solid var(--border);border-radius:14px;padding:1.6rem;background:#fff;text-align:center;transition:transform .2s,box-shadow .2s}
.date-card:hover{transform:translateY(-4px);box-shadow:0 16px 40px rgba(0,0,0,.1)}
.date-card .wk{font-family:var(--head);font-weight:700;font-size:1.7rem;color:var(--dark);text-transform:uppercase}
.date-card .mo{color:var(--muted);font-size:.9rem;margin-top:.3rem}

/* ---------- RULES LEGEND ---------- */
.rules{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem;margin-top:1.8rem}
.rule{border-radius:12px;padding:1.4rem;color:#fff}
.rule h4{font-family:var(--head);font-size:1.4rem;text-transform:uppercase;letter-spacing:.02em;margin-bottom:.3rem}
.rule p{font-size:.9rem;opacity:.92;line-height:1.4}
.rule--green{background:#3c7a4e}.rule--amber{background:#c9892b}.rule--red{background:var(--red)}
.note-strip{margin-top:1.5rem;padding:1rem 1.3rem;border-left:3px solid var(--red);background:rgba(199,68,68,.06);font-size:.95rem;border-radius:0 8px 8px 0}
.sec--dark .note-strip{background:rgba(255,255,255,.06)}

/* ---------- PRICING / ADD-ONS ---------- */
.incl{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:.6rem 1.6rem;margin-top:1.5rem;list-style:none}
.incl li{position:relative;padding-left:1.6rem;font-size:1rem;line-height:1.5}
.incl li::before{content:"✓";position:absolute;left:0;color:var(--red);font-weight:700}
.price-hero{font-family:var(--head);font-weight:800;font-size:clamp(2.5rem,6vw,4rem);color:var(--dark);line-height:1}
.price-hero .u{font-family:var(--body);font-size:1rem;font-weight:400;color:var(--muted);display:block;margin-top:.3rem}
.addons{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1rem;margin-top:2rem}
.addon{border:1px solid var(--border);border-radius:12px;overflow:hidden;background:#fff;display:flex;flex-direction:column}
.addon__b{padding:1rem 1.1rem;display:flex;justify-content:space-between;align-items:baseline;gap:.5rem}
.addon__n{font-weight:600}
.addon__p{color:var(--red);font-weight:700;white-space:nowrap}
.addon__m{padding:0 1.1rem 1.1rem;font-size:.82rem;color:var(--muted)}

/* ---------- BUILDER ---------- */
.builder{display:grid;grid-template-columns:1.3fr 1fr;gap:2.5rem;margin-top:2rem}
@media(max-width:860px){.builder{grid-template-columns:1fr}}
.opt{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1rem;border:1px solid rgba(255,255,255,.14);border-radius:10px;margin-bottom:.6rem;cursor:pointer;transition:all .15s}
.opt:hover{border-color:rgba(255,255,255,.35)}
.opt.sel{background:rgba(199,68,68,.16);border-color:var(--red)}
.opt__l{display:flex;flex-direction:column;flex:1;min-width:0}
.opt__p{min-width:74px;text-align:right}
.opt__l b{font-weight:600}.opt__l span{font-size:.8rem;color:rgba(255,255,255,.6)}
.opt__p{font-weight:700;color:#fff;white-space:nowrap}
.opt .chk{width:20px;height:20px;border:2px solid rgba(255,255,255,.4);border-radius:5px;flex-shrink:0;display:grid;place-items:center;font-size:.8rem}
.opt.sel .chk{background:var(--red);border-color:var(--red)}
.paxrow{display:flex;align-items:center;gap:1rem;margin-bottom:1.4rem}
.paxrow label{font-weight:600}
.stepper{display:inline-flex;align-items:center;border:1px solid rgba(255,255,255,.25);border-radius:999px;overflow:hidden}
.stepper button{background:transparent;color:#fff;border:0;width:38px;height:38px;font-size:1.3rem;cursor:pointer}
.stepper span{min-width:34px;text-align:center;font-weight:700;font-size:1.1rem}
.summary{position:sticky;top:116px;align-self:start;background:#fff;color:var(--text);border-radius:16px;padding:1.8rem;box-shadow:0 20px 50px rgba(0,0,0,.25)}
.summary h4{font-family:var(--head);text-transform:uppercase;letter-spacing:.04em;font-size:1.2rem;color:var(--dark);margin-bottom:1rem}
.summary .line{display:flex;justify-content:space-between;font-size:.9rem;padding:.35rem 0;border-bottom:1px solid var(--border);gap:1rem}
.summary .line span:last-child{font-weight:600;white-space:nowrap}
.summary .tot{display:flex;justify-content:space-between;align-items:baseline;margin-top:1.1rem;font-family:var(--head)}
.summary .tot .big{font-size:2.2rem;font-weight:800;color:var(--dark)}
.summary .pp{font-size:.85rem;color:var(--muted);text-align:right;margin-top:.2rem}

/* ---------- NEXT / FOOTER ---------- */
.cta{display:inline-block;background:var(--red);color:#fff;text-decoration:none;font-weight:700;padding:1rem 2rem;border-radius:8px;letter-spacing:.02em;margin-top:1.5rem;transition:background .2s}
.cta:hover{background:var(--red-hover)}
/* ---------- ITINERARY (example week) ---------- */
.week{margin-top:1.8rem;border-top:1px solid rgba(255,255,255,.12)}
.week__d{display:grid;grid-template-columns:96px 1fr;gap:1.3rem;padding:1.15rem 0;border-bottom:1px solid rgba(255,255,255,.12)}
.week__n{font-family:var(--head);font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--red);font-size:.82rem;padding-top:.2rem}
.week__t{font-weight:600;margin-bottom:.25rem}
.week__x{color:rgba(255,255,255,.72);font-size:.92rem;line-height:1.5}
.week__x b{color:#fff;font-weight:600}
@media(max-width:560px){.week__d{grid-template-columns:1fr;gap:.35rem}}
.mini-note{font-size:.82rem;color:rgba(255,255,255,.5);margin-top:1.2rem;font-style:italic}

/* ---------- COLLAPSIBLE ---------- */
.collapse{margin-top:1.6rem}
.collapse>summary{cursor:pointer;list-style:none;display:inline-flex;align-items:center;gap:.55rem;font-family:var(--body);font-weight:700;letter-spacing:.02em;color:#fff;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.28);padding:.7rem 1.25rem;border-radius:999px;font-size:.88rem;transition:background .2s}
.collapse>summary::-webkit-details-marker{display:none}
.collapse>summary::after{content:"+";font-size:1.15rem;line-height:1}
.collapse[open]>summary::after{content:"–"}
.collapse>summary:hover{background:rgba(255,255,255,.2)}
.collapse[open]>summary{margin-bottom:.5rem}

/* ---------- LIGHTBOX ARROWS ---------- */
.lb__nav{position:fixed;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.3);color:#fff;width:54px;height:54px;border-radius:999px;font-size:2rem;line-height:1;cursor:pointer;display:grid;place-items:center;z-index:210;transition:background .2s,opacity .2s}
.lb__nav:hover{background:rgba(255,255,255,.3)}
.lb__prev{left:2.5%}.lb__next{right:2.5%}
@media(max-width:560px){.lb__nav{width:44px;height:44px;font-size:1.5rem}.lb__prev{left:3%}.lb__next{right:3%}}

.footer{background:var(--dark);padding:3.5rem 1.2rem 2.5rem;border-top:1px solid rgba(255,255,255,.07)}
.footer__inner{display:flex;flex-direction:column;align-items:center;gap:1.4rem;text-align:center}
.footer__logo{height:74px;width:auto;opacity:.92}
.footer__contact{display:flex;gap:1.6rem;flex-wrap:wrap;justify-content:center}
.footer__contact a{font-size:.85rem;color:rgba(255,255,255,.55);text-decoration:none;transition:color .2s}
.footer__contact a:hover{color:#fff}
.footer__legal{font-size:.72rem;color:rgba(255,255,255,.3);letter-spacing:.1em;text-transform:uppercase}
@media(max-width:560px){.footer__contact{flex-direction:column;gap:.7rem}}

/* ---------- LOGISTICS ---------- */
.ship{display:flex;gap:1.4rem;align-items:center;background:rgba(199,68,68,.13);border:1px solid rgba(199,68,68,.4);border-radius:16px;padding:1.6rem 1.8rem;margin-top:2rem}
.ship__ic{font-size:2.6rem;line-height:1;flex-shrink:0}
.ship h3{font-family:var(--head);font-weight:700;text-transform:uppercase;letter-spacing:.02em;font-size:1.55rem;margin-bottom:.3rem}
.ship p{color:rgba(255,255,255,.85);font-size:.98rem;line-height:1.5;max-width:72ch}
@media(max-width:560px){.ship{flex-direction:column;align-items:flex-start}}
.three{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.2rem;margin-top:1.2rem}
.lcard{border:1px solid rgba(255,255,255,.16);border-radius:14px;padding:1.5rem;background:rgba(255,255,255,.03)}
.lcard h4{font-family:var(--head);font-weight:700;text-transform:uppercase;letter-spacing:.02em;font-size:1.35rem;margin-bottom:.4rem}
.lcard p{color:rgba(255,255,255,.78);font-size:.95rem;line-height:1.5}
.lcard--light{background:#fff;border-color:var(--border)}
.lcard--light h4{color:var(--dark)}.lcard--light p{color:var(--muted)}

/* ---------- SKI MAP + LIGHTBOX ---------- */
.mapfig{margin-top:2rem}
.mapfig img{width:100%;border-radius:12px;cursor:zoom-in;box-shadow:0 12px 36px rgba(0,0,0,.28)}
.mapfig figcaption{margin-top:.7rem;font-size:.85rem;color:rgba(255,255,255,.6);text-align:center}
.gallery img[data-zoom]{cursor:zoom-in}
.lightbox{display:none;position:fixed;inset:0;z-index:200;background:rgba(0,0,0,.93);align-items:center;justify-content:center;padding:1rem;cursor:zoom-out;overflow:auto}
.lightbox.open{display:flex}
.lightbox img{max-width:100%;max-height:92vh;object-fit:contain;cursor:zoom-in;border-radius:4px}
.lightbox img.zoomed{max-width:none;max-height:none;width:auto;cursor:zoom-out}

/* ---------- RESERVE BLOCK (send package: WhatsApp / copy / call) ---------- */
.rsv{max-width:560px;margin:1.6rem auto 0;text-align:center}
.rsv__week{margin:0 auto 1.1rem;max-width:320px;text-align:left}
.rsv__week label{display:block;font-size:.74rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.7);margin-bottom:.35rem}
.rsv__week select{width:100%;border:1px solid rgba(255,255,255,.35);border-radius:8px;padding:.75rem .9rem;font:inherit;font-size:1rem;background:#fff;color:#1a1a1a}
.rsv__actions{display:flex;flex-direction:column;align-items:center;gap:.9rem}
.rsv__actions .cta{margin-top:0}
.rsv__alt{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:.6rem 1.4rem;font-size:.95rem}
.rsv__alt a,.rsv__alt button{color:#fff;background:none;border:0;padding:0;font:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:3px;opacity:.9}
.rsv__alt a:hover,.rsv__alt button:hover{opacity:1}
.rsv__msg{margin:1rem 0 0;font-size:.95rem;color:rgba(255,255,255,.9)}
.rsv__msg:empty{display:none}
