/* =====================================================================
   KASHMIR PORT — Bold Brutalist-Editorial
   Paper + ink + ONE crimson shout (#e21d2b · oklch 58% .224 25).
   Anton (display) / Public Sans (text) / JetBrains Mono (meta).
   Hero: asymmetric · Grid: offset. No rounded corners. No shadows.
   Depth = overlap + offset + load-bearing rules.
   ===================================================================== */

/* ---------- self-hosted fonts ---------------------------------------- */
@font-face{font-family:"Anton";font-style:normal;font-weight:400;font-display:swap;
  src:url("vendor/fonts/anton-latin.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"Anton";font-style:normal;font-weight:400;font-display:swap;
  src:url("vendor/fonts/anton-latinext.woff2") format("woff2");
  unicode-range:U+0100-02BA,U+1E00-1E9F,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}

@font-face{font-family:"Public Sans";font-style:normal;font-weight:400;font-display:swap;
  src:url("vendor/fonts/publicsans-400-latin.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"Public Sans";font-style:normal;font-weight:400;font-display:swap;
  src:url("vendor/fonts/publicsans-400-latinext.woff2") format("woff2");
  unicode-range:U+0100-02BA,U+1E00-1E9F,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:"Public Sans";font-style:normal;font-weight:600;font-display:swap;
  src:url("vendor/fonts/publicsans-600-latin.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"Public Sans";font-style:normal;font-weight:600;font-display:swap;
  src:url("vendor/fonts/publicsans-600-latinext.woff2") format("woff2");
  unicode-range:U+0100-02BA,U+1E00-1E9F,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:"Public Sans";font-style:normal;font-weight:700;font-display:swap;
  src:url("vendor/fonts/publicsans-700-latin.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"Public Sans";font-style:normal;font-weight:700;font-display:swap;
  src:url("vendor/fonts/publicsans-700-latinext.woff2") format("woff2");
  unicode-range:U+0100-02BA,U+1E00-1E9F,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}

@font-face{font-family:"JetBrains Mono";font-style:normal;font-weight:500;font-display:swap;
  src:url("vendor/fonts/jetbrainsmono-500-latin.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"JetBrains Mono";font-style:normal;font-weight:500;font-display:swap;
  src:url("vendor/fonts/jetbrainsmono-500-latinext.woff2") format("woff2");
  unicode-range:U+0100-02BA,U+1E00-1E9F,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}

/* ---------- tokens ---------------------------------------------------- */
:root{
  /* paper + ink: warm, barely-red-grey undertone to tie to the crimson */
  --paper:      oklch(98.4% 0.004 40);    /* warm paper, not pure #fff */
  --paper-2:    oklch(95.3% 0.008 36);    /* inset panels / alt rows   */
  --paper-3:    oklch(92.2% 0.010 34);    /* deeper inset / hairline field */
  --ink:        oklch(16.5% 0.014 25);    /* near-black, warm red-black */
  --ink-2:      oklch(40%   0.012 25);    /* secondary text / meta      */
  --rule:       oklch(16.5% 0.014 25);    /* borders = ink              */
  --accent:     oklch(58.4% 0.224 25.4);  /* #e21d2b — THE shout        */
  --accent-press:oklch(47%  0.205 25.4);  /* darker crimson, hover/active */
  --on-accent:  oklch(98.4% 0.004 40);    /* text on accent fills = paper */

  --hair: 1px; --bar: 2px; --slab: 4px;   /* border weights, used literally */
  --col-rule: color-mix(in oklch, var(--ink) 9%, transparent);

  --maxw: 1320px;
  --pad:  clamp(1.15rem, 4vw, 3.25rem);
  --gap-section: clamp(4.5rem, 9vw, 9rem);

  --display:"Anton","Arial Narrow",sans-serif;
  --text:"Public Sans",-apple-system,BlinkMacSystemFont,sans-serif;
  --mono:"JetBrains Mono",ui-monospace,"SFMono-Regular",Menlo,monospace;

  --h1: clamp(3rem, 12.5vw, 10.5rem);
  --h2: clamp(2.1rem, 6.5vw, 5rem);
  --h3: clamp(1.35rem, 2.4vw, 1.9rem);
  --body: clamp(1rem, 0.96rem + 0.35vw, 1.16rem);
  --meta: 0.76rem;
}

/* ---------- reset ----------------------------------------------------- */
*,*::before,*::after{box-sizing:border-box;}
*{margin:0;padding:0;border-radius:0 !important;}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;}
html,body{max-width:100%;overflow-x:hidden;}
body{
  background:var(--paper);
  color:var(--ink);
  font-family:var(--text);
  font-size:var(--body);
  line-height:1.55;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
}
img{display:block;max-width:100%;height:auto;}
a{color:inherit;text-decoration:none;}
button{font:inherit;color:inherit;background:none;border:none;cursor:pointer;}
ul{list-style:none;}
::selection{background:var(--accent);color:var(--on-accent);}

/* focus visibility — square, ink, brutalist */
a:focus-visible,button:focus-visible{
  outline:var(--slab) solid var(--accent);
  outline-offset:2px;
}

/* ---------- layout helpers ------------------------------------------- */
.wrap{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--pad);}
.mono{font-family:var(--mono);font-weight:500;text-transform:uppercase;letter-spacing:.14em;font-size:var(--meta);line-height:1.3;}
.disp{font-family:var(--display);font-weight:400;text-transform:uppercase;line-height:.86;letter-spacing:-.018em;}

/* full-bleed ink rules that fence every section */
.rule-top{border-top:var(--bar) solid var(--rule);}
.rule-bot{border-bottom:var(--bar) solid var(--rule);}
.rule-slab{border-top:var(--slab) solid var(--rule);}

/* ============================================================= *
 *  DEMO BANNER  (invariant)                                     *
 * ============================================================= */
.demo-banner{
  background:var(--ink);
  color:var(--paper);
  font-family:var(--mono);
  font-weight:500;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:.66rem;
  line-height:1.4;
  padding:.5rem var(--pad);
  text-align:center;
}
.demo-banner b{color:var(--accent);font-weight:500;}
.demo-banner a{color:var(--paper);text-decoration:underline;text-underline-offset:2px;}

/* ============================================================= *
 *  NAV                                                          *
 * ============================================================= */
#nav{
  position:sticky;top:0;z-index:60;
  background:var(--paper);
  border-bottom:var(--bar) solid var(--rule);
}
#nav .nav-in{
  display:flex;align-items:center;justify-content:space-between;
  gap:1rem;min-height:60px;
}
.brandmark{display:flex;align-items:baseline;gap:.5rem;}
.brandmark .bm-name{
  font-family:var(--display);text-transform:uppercase;letter-spacing:-.01em;
  font-size:1.32rem;line-height:1;color:var(--ink);
}
.brandmark .bm-dot{width:.42rem;height:.42rem;background:var(--accent);display:inline-block;transform:translateY(-.04em);}
.nav-links{display:flex;align-items:center;gap:1.6rem;}
.nav-links a{font-family:var(--mono);text-transform:uppercase;letter-spacing:.12em;font-size:.72rem;color:var(--ink-2);padding:.4rem 0;position:relative;}
.nav-links a::after{content:"";position:absolute;left:0;bottom:.1rem;height:var(--bar);width:0;background:var(--accent);transition:width .14s ease;}
.nav-links a:hover{color:var(--ink);}
.nav-links a:hover::after{width:100%;}
.nav-wa{
  font-family:var(--mono);font-weight:500;text-transform:uppercase;letter-spacing:.1em;
  font-size:.72rem;color:var(--on-accent);background:var(--accent);
  border:var(--bar) solid var(--accent);
  padding:.62rem .9rem;display:inline-flex;align-items:center;gap:.45rem;
  transition:background .1s linear,color .1s linear;
}
.nav-wa:hover{background:var(--ink);border-color:var(--ink);color:var(--paper);}
.nav-burger{display:none;width:46px;height:46px;border:var(--bar) solid var(--rule);align-items:center;justify-content:center;flex-direction:column;gap:4px;}
.nav-burger span{width:20px;height:2px;background:var(--ink);transition:transform .18s ease,opacity .18s ease;}

/* ============================================================= *
 *  MASTHEAD / HERO — asymmetric (7 type / 5 figure)            *
 * ============================================================= */
.masthead{position:relative;padding-top:clamp(1.5rem,4vw,3rem);padding-bottom:0;}
/* faint 12-col grid lines behind hero */
.grid-lines{position:absolute;inset:0;pointer-events:none;
  background-image:repeating-linear-gradient(to right,transparent,transparent calc((100% / 12) - 1px),var(--col-rule) calc((100% / 12) - 1px),var(--col-rule) calc(100% / 12));
  background-position:0 0;mix-blend-mode:normal;z-index:0;}
@media(max-width:760px){.grid-lines{display:none;}}

.mast-grid{position:relative;z-index:1;display:grid;grid-template-columns:1.45fr .95fr;gap:clamp(1.5rem,3vw,2.6rem);align-items:end;}

.mast-kicker{display:flex;flex-wrap:wrap;gap:.55rem 1.1rem;align-items:center;color:var(--ink-2);margin-bottom:clamp(1rem,2.4vw,2rem);}
.mast-kicker .tick{color:var(--accent);}

.mast-title{color:var(--ink);font-size:var(--h1);text-wrap:balance;}
.mast-title .ln{display:block;}
.mast-title .accent-word{color:var(--accent);}
/* the deliberate transgression: one word rotated + bleeding left */
.mast-title .skew{display:inline-block;transform:rotate(-3.2deg);transform-origin:left bottom;margin-left:-.04em;}

.mast-sub{font-size:var(--body);max-width:46ch;color:var(--ink-2);margin-top:clamp(1.1rem,2vw,1.6rem);line-height:1.5;text-wrap:pretty;}
.mast-sub strong{color:var(--ink);font-weight:700;}

.mast-actions{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:clamp(1.4rem,2.4vw,2rem);}

/* stamped CTA buttons */
.stamp{
  font-family:var(--mono);font-weight:500;text-transform:uppercase;letter-spacing:.1em;font-size:.8rem;
  display:inline-flex;align-items:center;gap:.55rem;
  padding:.95rem 1.3rem;border:var(--bar) solid var(--ink);
  min-height:48px;transition:background .1s linear,color .1s linear,border-color .1s linear;
  white-space:nowrap;
}
.stamp .arr{font-family:var(--mono);transition:transform .12s ease;}
.stamp:hover .arr{transform:translateX(3px);}
.stamp--wa{background:var(--accent);border-color:var(--accent);color:var(--on-accent);}
.stamp--wa:hover{background:var(--ink);border-color:var(--ink);color:var(--paper);}
.stamp--ink{background:transparent;color:var(--ink);}
.stamp--ink:hover{background:var(--ink);color:var(--paper);}
.stamp--paper{background:var(--paper);color:var(--ink);border-color:var(--ink);}
.stamp--paper:hover{background:var(--accent);border-color:var(--accent);color:var(--on-accent);}

/* hero figure — hard-framed, duotone crimson */
.mast-fig{position:relative;align-self:end;}
.fig-frame{position:relative;border:var(--bar) solid var(--ink);overflow:hidden;background:var(--ink);}
.fig-frame img{width:100%;aspect-ratio:3/4;object-fit:cover;filter:contrast(1.08) saturate(.92);}
.fig-frame--hero img{aspect-ratio:4/5;}
/* duotone overlay: crimson multiply (the single duotone on the page) */
.duotone::after{content:"";position:absolute;inset:0;background:var(--accent);mix-blend-mode:multiply;opacity:.30;pointer-events:none;}
.duotone::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(20,12,12,.45));z-index:1;pointer-events:none;}
.fig-cap{position:relative;display:flex;justify-content:space-between;gap:1rem;padding:.5rem .15rem 0;color:var(--ink-2);}

/* hero stat strip — hairline data table, fenced */
.mast-stats{position:relative;z-index:1;margin-top:clamp(2rem,4vw,3.2rem);border-top:var(--slab) solid var(--ink);border-bottom:var(--bar) solid var(--ink);}
.stat-row{display:grid;grid-template-columns:repeat(4,1fr);}
.stat-cell{padding:1.05rem var(--pad) 1.05rem 0;border-right:var(--hair) solid var(--rule);}
.stat-cell:last-child{border-right:none;}
.stat-cell .n{font-family:var(--display);font-size:clamp(1.8rem,4.2vw,3rem);line-height:.9;color:var(--ink);}
.stat-cell .l{display:block;margin-top:.35rem;color:var(--ink-2);}
.stat-cell.is-accent .n{color:var(--accent);}

/* ============================================================= *
 *  MARQUEE — crimson band, the accent's big appearance         *
 * ============================================================= */
.marquee{background:var(--accent);color:var(--on-accent);border-top:var(--bar) solid var(--ink);border-bottom:var(--bar) solid var(--ink);overflow:hidden;}
.marquee-track{display:flex;width:max-content;will-change:transform;animation:marquee 38s linear infinite;}
.marquee-track .seg{display:flex;align-items:center;flex:0 0 auto;}
.marquee-item{font-family:var(--mono);font-weight:500;text-transform:uppercase;letter-spacing:.16em;font-size:.84rem;padding:.74rem 1.3rem;display:inline-flex;align-items:center;}
.marquee-x{font-size:.74rem;opacity:.7;}
@keyframes marquee{from{transform:translateX(0);}to{transform:translateX(-50%);}}

/* ============================================================= *
 *  SECTION SCAFFOLD                                             *
 * ============================================================= */
.section{position:relative;padding-block:var(--gap-section);}
.sec-head{display:grid;grid-template-columns:auto 1fr;gap:clamp(1rem,3vw,2.2rem);align-items:start;margin-bottom:clamp(2rem,4vw,3.4rem);}
.sec-idx{font-family:var(--mono);font-weight:500;text-transform:uppercase;letter-spacing:.14em;font-size:.78rem;color:var(--ink-2);padding-top:.55rem;white-space:nowrap;}
.sec-idx b{color:var(--accent);font-weight:500;}
.sec-titlewrap{}
.sec-title{font-family:var(--display);text-transform:uppercase;line-height:.9;letter-spacing:-.018em;font-size:var(--h2);color:var(--ink);text-wrap:balance;}
.sec-lede{margin-top:.9rem;max-width:58ch;color:var(--ink-2);text-wrap:pretty;}

/* ============================================================= *
 *  INDEX / CONTENTS                                             *
 * ============================================================= */
.contents{border-top:var(--bar) solid var(--ink);border-bottom:var(--bar) solid var(--ink);background:var(--paper-2);}
.contents-in{display:grid;grid-template-columns:repeat(4,1fr);}
.toc{display:flex;flex-direction:column;gap:.15rem;padding:1.2rem 1.1rem 1.3rem;border-right:var(--hair) solid var(--rule);position:relative;transition:background .12s linear,color .12s linear;}
.toc:last-child{border-right:none;}
.toc .toc-n{font-family:var(--mono);font-weight:500;letter-spacing:.1em;font-size:.72rem;color:var(--accent);}
.toc .toc-l{font-family:var(--display);text-transform:uppercase;letter-spacing:-.01em;font-size:1.5rem;line-height:.95;color:var(--ink);margin-top:.5rem;}
.toc .toc-d{font-family:var(--mono);text-transform:uppercase;letter-spacing:.1em;font-size:.66rem;color:var(--ink-2);margin-top:.55rem;}
.toc:hover{background:var(--accent);}
.toc:hover .toc-n,.toc:hover .toc-l,.toc:hover .toc-d{color:var(--on-accent);}

/* ============================================================= *
 *  OFFERINGS — list-rows on an editorial grid (offset)         *
 * ============================================================= */
.trips{}
.trip-list{border-top:var(--bar) solid var(--ink);}
.trip{
  display:grid;
  grid-template-columns:[n]4.5rem [main]minmax(0,1fr) [meta]minmax(0,15rem) [price]auto;
  align-items:stretch;
  border-bottom:var(--hair) solid var(--rule);
  position:relative;
  transition:background .1s linear,color .1s linear;
}
.trip:nth-child(odd){background:transparent;}
.trip-link{display:contents;color:inherit;}
.trip-n{grid-column:n;font-family:var(--mono);font-weight:500;font-size:.84rem;letter-spacing:.06em;color:var(--ink-2);padding:1.5rem 0 1.5rem .15rem;}
.trip-main{grid-column:main;padding:1.4rem 1.4rem 1.5rem 0;min-width:0;}
.trip-title{font-family:var(--display);text-transform:uppercase;letter-spacing:-.01em;font-size:clamp(1.45rem,2.6vw,2.15rem);line-height:.94;color:var(--ink);}
.trip-desc{margin-top:.55rem;max-width:52ch;color:var(--ink-2);font-size:.96rem;line-height:1.5;text-wrap:pretty;}
.trip-meta{grid-column:meta;padding:1.55rem 1.2rem 1.5rem 0;align-self:start;}
.trip-meta .tm{font-family:var(--mono);text-transform:uppercase;letter-spacing:.08em;font-size:.7rem;color:var(--ink-2);line-height:1.55;}
.trip-price{grid-column:price;display:flex;flex-direction:column;align-items:flex-end;justify-content:center;gap:.5rem;padding:1.4rem .15rem 1.4rem 0;}
.price-stamp{font-family:var(--mono);font-weight:500;letter-spacing:.02em;font-size:.96rem;color:var(--on-accent);background:var(--accent);padding:.42rem .6rem;white-space:nowrap;border:var(--bar) solid var(--accent);}
.price-from{font-family:var(--mono);text-transform:uppercase;letter-spacing:.12em;font-size:.6rem;color:var(--ink-2);}
.trip-tag{position:absolute;top:0;left:4.5rem;transform:translateY(-50%);background:var(--ink);color:var(--paper);font-family:var(--mono);text-transform:uppercase;letter-spacing:.12em;font-size:.6rem;padding:.22rem .5rem;border:var(--hair) solid var(--ink);}
.trip-go{font-family:var(--mono);font-size:.9rem;color:var(--accent);transition:transform .12s ease;}

/* hover: whole row flips to accent */
.trip:hover{background:var(--accent);color:var(--on-accent);}
.trip:hover .trip-n,.trip:hover .trip-title,.trip:hover .trip-desc,.trip:hover .trip-meta .tm{color:var(--on-accent);}
.trip:hover .price-stamp{background:var(--ink);border-color:var(--ink);color:var(--paper);}
.trip:hover .price-from{color:var(--on-accent);}
.trip:hover .trip-tag{background:var(--paper);color:var(--ink);}
.trip:hover .trip-go{color:var(--on-accent);transform:translateX(4px);}

/* ============================================================= *
 *  DESTINATIONS — offset figure wall                           *
 * ============================================================= */
.dest-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(.9rem,1.6vw,1.5rem);}
.figure{position:relative;border:var(--bar) solid var(--ink);background:var(--paper-2);}
.figure .fig-img{position:relative;overflow:hidden;background:var(--ink);}
.figure .fig-img img{width:100%;height:100%;object-fit:cover;filter:contrast(1.06) saturate(.94);transition:transform .5s cubic-bezier(.16,1,.3,1);}
.figure:hover .fig-img img{transform:scale(1.04);}
.figure figcaption{display:flex;justify-content:space-between;align-items:baseline;gap:.6rem;padding:.6rem .7rem .65rem;border-top:var(--bar) solid var(--ink);background:var(--paper);}
.figure .fc-name{font-family:var(--display);text-transform:uppercase;letter-spacing:-.01em;font-size:1.15rem;line-height:1;color:var(--ink);}
.figure .fc-sub{font-family:var(--mono);text-transform:uppercase;letter-spacing:.08em;font-size:.6rem;color:var(--ink-2);text-align:right;}
.figure .fc-no{position:absolute;top:0;left:0;background:var(--accent);color:var(--on-accent);font-family:var(--mono);font-weight:500;letter-spacing:.06em;font-size:.66rem;padding:.26rem .5rem;z-index:2;}

/* offset spans — deliberately irregular, nothing centres */
.d1{grid-column:span 7;}   .d1 .fig-img{aspect-ratio:16/10;}
.d2{grid-column:span 5;}   .d2 .fig-img{aspect-ratio:3/4;}
.d3{grid-column:span 5;}   .d3 .fig-img{aspect-ratio:4/5;}
.d4{grid-column:span 7;}   .d4 .fig-img{aspect-ratio:16/10;}
.d5{grid-column:span 4;}   .d5 .fig-img{aspect-ratio:3/4;}
.d6{grid-column:span 4;}   .d6 .fig-img{aspect-ratio:3/4;}
.d7{grid-column:span 4;}   .d7 .fig-img{aspect-ratio:3/4;}
/* one figure bleeds past its top rule — the transgression here */
.d3{transform:translateY(-1.6rem);}

/* ============================================================= *
 *  JOURNEY — hairline day table + pinned figure                *
 * ============================================================= */
.journey-grid{display:grid;grid-template-columns:1fr .82fr;gap:clamp(1.4rem,3vw,3rem);align-items:start;}
.jtable{border-top:var(--bar) solid var(--ink);}
.jstep{display:grid;grid-template-columns:5.5rem 1fr;gap:1rem;padding:1.4rem 0;border-bottom:var(--hair) solid var(--rule);transition:padding-left .18s ease,background .12s linear;}
.jstep .jday{font-family:var(--mono);font-weight:500;text-transform:uppercase;letter-spacing:.1em;font-size:.74rem;color:var(--accent);padding-top:.3rem;}
.jstep .jbody{min-width:0;}
.jstep .jtitle{font-family:var(--display);text-transform:uppercase;letter-spacing:-.01em;font-size:clamp(1.25rem,2.2vw,1.7rem);line-height:.98;color:var(--ink);}
.jstep .jdesc{margin-top:.4rem;max-width:46ch;color:var(--ink-2);font-size:.94rem;line-height:1.5;text-wrap:pretty;}
.jstep.active{padding-left:1rem;background:var(--paper-2);}
.jstep.active .jtitle{color:var(--accent);}

.journey-fig{position:sticky;top:84px;}
.jfig-frame{position:relative;border:var(--bar) solid var(--ink);background:var(--ink);overflow:hidden;}
.jfig-frame .jm{position:absolute;inset:0;opacity:0;transition:opacity .5s ease;}
.jfig-frame .jm.active{opacity:1;position:relative;}
.jfig-frame img{width:100%;aspect-ratio:4/5;object-fit:cover;filter:contrast(1.06) saturate(.94);}
.jfig-cap{display:flex;justify-content:space-between;gap:1rem;padding:.55rem .15rem 0;color:var(--ink-2);}

/* ============================================================= *
 *  WHY — bordered list, mono kickers                           *
 * ============================================================= */
.why-grid{display:grid;grid-template-columns:repeat(2,1fr);border-top:var(--bar) solid var(--ink);border-left:var(--bar) solid var(--ink);}
.why-cell{padding:clamp(1.4rem,2.6vw,2.2rem);border-right:var(--bar) solid var(--ink);border-bottom:var(--bar) solid var(--ink);position:relative;}
.why-cell .wn{font-family:var(--mono);font-weight:500;letter-spacing:.12em;font-size:.7rem;color:var(--accent);}
.why-cell .wt{font-family:var(--display);text-transform:uppercase;letter-spacing:-.01em;font-size:clamp(1.3rem,2.2vw,1.75rem);line-height:.98;color:var(--ink);margin-top:.7rem;}
.why-cell .wd{margin-top:.6rem;max-width:42ch;color:var(--ink-2);font-size:.95rem;line-height:1.5;text-wrap:pretty;}

/* ============================================================= *
 *  PROOF — oversized pull-quote + review rows                  *
 * ============================================================= */
.proof-quote{position:relative;border-top:var(--slab) solid var(--ink);padding-top:clamp(2.2rem,4vw,3.4rem);margin-bottom:clamp(2.6rem,5vw,4rem);}
.proof-quote .qmark{font-family:var(--display);color:var(--accent);font-size:clamp(5rem,15vw,11rem);line-height:.6;position:absolute;top:.2rem;left:-.04em;opacity:1;transform:rotate(-4deg);pointer-events:none;}
.proof-quote blockquote{position:relative;font-family:var(--display);text-transform:uppercase;letter-spacing:-.012em;line-height:.96;font-size:var(--h2);color:var(--ink);max-width:18ch;text-wrap:balance;padding-left:clamp(2.4rem,6vw,5rem);}
.proof-quote blockquote .hot{color:var(--accent);}
.proof-quote .qwho{font-family:var(--mono);text-transform:uppercase;letter-spacing:.12em;font-size:.74rem;color:var(--ink-2);margin-top:1.3rem;padding-left:clamp(2.4rem,6vw,5rem);}
.proof-quote .qstars{color:var(--accent);}

.reviews{display:grid;grid-template-columns:repeat(3,1fr);border-top:var(--bar) solid var(--ink);border-left:var(--bar) solid var(--ink);}
.rev{padding:clamp(1.3rem,2.2vw,1.8rem);border-right:var(--bar) solid var(--ink);border-bottom:var(--bar) solid var(--ink);display:flex;flex-direction:column;gap:.85rem;}
.rev .rstars{font-family:var(--mono);font-size:.8rem;letter-spacing:.2em;color:var(--accent);}
.rev .rtext{font-size:.96rem;line-height:1.5;color:var(--ink);text-wrap:pretty;}
.rev .rwho{font-family:var(--mono);text-transform:uppercase;letter-spacing:.1em;font-size:.64rem;color:var(--ink-2);margin-top:auto;}

/* ============================================================= *
 *  CTA BAND — loudest stamp                                     *
 * ============================================================= */
.cta-band{background:var(--ink);color:var(--paper);border-top:var(--slab) solid var(--ink);}
.cta-in{display:grid;grid-template-columns:1.3fr .9fr;gap:clamp(1.6rem,4vw,3.5rem);align-items:center;padding-block:clamp(3rem,6vw,5.5rem);}
.cta-kicker{font-family:var(--mono);font-weight:500;text-transform:uppercase;letter-spacing:.16em;font-size:.74rem;color:var(--accent);}
.cta-title{font-family:var(--display);text-transform:uppercase;letter-spacing:-.018em;line-height:.9;font-size:var(--h2);color:var(--paper);margin-top:1rem;text-wrap:balance;}
.cta-title .hot{color:var(--accent);}
.cta-sub{margin-top:1.1rem;max-width:44ch;color:color-mix(in oklch,var(--paper) 72%,transparent);text-wrap:pretty;}
.cta-actions{display:flex;flex-direction:column;gap:.7rem;align-items:stretch;}
.cta-actions .stamp{justify-content:space-between;}
.stamp--wa-lg{background:var(--accent);border-color:var(--accent);color:var(--on-accent);font-size:.92rem;padding:1.15rem 1.4rem;}
.stamp--wa-lg:hover{background:var(--paper);border-color:var(--paper);color:var(--ink);}
.stamp--ghost{background:transparent;border-color:var(--paper);color:var(--paper);}
.stamp--ghost:hover{background:var(--paper);color:var(--ink);}

/* ============================================================= *
 *  FOOTER / CONTACT                                            *
 * ============================================================= */
.foot{background:var(--paper);border-top:var(--bar) solid var(--ink);}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:clamp(1.4rem,3vw,2.6rem);padding-block:clamp(2.6rem,5vw,4rem);}
.foot-brand .fb-name{font-family:var(--display);text-transform:uppercase;letter-spacing:-.012em;font-size:clamp(2.2rem,5vw,3.4rem);line-height:.9;color:var(--ink);}
.foot-brand .fb-dot{color:var(--accent);}
.foot-brand .fb-line{font-family:var(--mono);text-transform:uppercase;letter-spacing:.12em;font-size:.7rem;color:var(--ink-2);margin-top:.9rem;border-top:var(--hair) solid var(--rule);padding-top:.9rem;max-width:36ch;line-height:1.6;}
.foot-col h4{font-family:var(--mono);text-transform:uppercase;letter-spacing:.14em;font-size:.7rem;color:var(--accent);margin-bottom:1rem;}
.foot-col a,.foot-col p{display:block;color:var(--ink);font-size:.94rem;line-height:1.45;margin-bottom:.6rem;text-wrap:pretty;}
.foot-col a{position:relative;width:fit-content;}
.foot-col a:hover{color:var(--accent);}
.foot-bottom{border-top:var(--bar) solid var(--ink);padding-block:1rem;display:flex;flex-wrap:wrap;gap:.6rem 1.4rem;justify-content:space-between;align-items:center;}
.foot-bottom .fmono{font-family:var(--mono);text-transform:uppercase;letter-spacing:.1em;font-size:.64rem;color:var(--ink-2);}
.foot-bottom .fmono b{color:var(--accent);font-weight:500;}

/* ============================================================= *
 *  REVEAL MOTION (snappy, mechanical, short)                   *
 * ============================================================= */
[data-reveal]{opacity:0;transform:translateY(14px);transition:opacity .35s ease,transform .35s cubic-bezier(.2,.7,.3,1);}
[data-reveal].in{opacity:1;transform:none;}
[data-hero-el]{opacity:0;transform:translateY(16px);transition:opacity .4s ease,transform .4s cubic-bezier(.2,.7,.3,1);}
[data-hero-el].in{opacity:1;transform:none;}

/* ============================================================= *
 *  RESPONSIVE                                                  *
 * ============================================================= */
@media(max-width:1080px){
  .mast-grid{grid-template-columns:1.25fr 1fr;}
  .cta-in{grid-template-columns:1fr;}
  .foot-grid{grid-template-columns:1.3fr 1fr;}
}
@media(max-width:860px){
  .nav-links{display:none;}
  .nav-burger{display:flex;}
  #nav.open .nav-links{
    display:flex;flex-direction:column;align-items:flex-start;gap:0;
    position:absolute;top:100%;left:0;right:0;background:var(--paper);
    border-bottom:var(--bar) solid var(--ink);padding:.5rem var(--pad) 1rem;
  }
  #nav.open .nav-links a{width:100%;padding:.85rem 0;border-bottom:var(--hair) solid var(--rule);font-size:.84rem;}
  #nav.open .nav-links .nav-wa{width:100%;justify-content:center;margin-top:.7rem;padding:.95rem;border:var(--bar) solid var(--accent);}
  #nav.open .nav-burger span:nth-child(1){transform:translateY(6px) rotate(45deg);}
  #nav.open .nav-burger span:nth-child(2){opacity:0;}
  #nav.open .nav-burger span:nth-child(3){transform:translateY(-6px) rotate(-45deg);}

  .mast-grid{grid-template-columns:1fr;align-items:start;gap:clamp(1.4rem,4vw,2rem);}
  .mast-fig{max-width:min(78%,360px);margin-top:.5rem;}
  .mast-title .skew{transform:rotate(-2.4deg);}

  .stat-row{grid-template-columns:repeat(2,1fr);}
  .stat-cell{border-bottom:var(--hair) solid var(--rule);padding-right:1.1rem;padding-left:1.1rem;}
  .stat-cell:nth-child(2n){border-right:none;}

  .contents-in{grid-template-columns:repeat(2,1fr);}
  .toc:nth-child(2n){border-right:none;}
  .toc{border-bottom:var(--hair) solid var(--rule);}

  .dest-grid{grid-template-columns:repeat(2,1fr);}
  .d1,.d2,.d3,.d4,.d5,.d6,.d7{grid-column:span 1;transform:none;}
  .d1 .fig-img,.d4 .fig-img{aspect-ratio:4/3;}

  .journey-grid{grid-template-columns:1fr;}
  .journey-fig{position:relative;top:0;order:-1;max-width:480px;}
  .jfig-frame .jm{position:absolute;}
  .jfig-frame .jm.active{position:relative;}

  .cta-actions{align-items:stretch;}
}
@media(max-width:760px){
  .sec-head{grid-template-columns:1fr;gap:.6rem;}
  .sec-idx{padding-top:0;}

  /* offerings collapse to stacked rows (number + title, meta, price under) */
  .trip{grid-template-columns:3.2rem 1fr;grid-template-rows:auto auto auto;}
  .trip-n{grid-column:1;grid-row:1;padding:1.15rem 0 0 .1rem;}
  .trip-main{grid-column:2;grid-row:1;padding:1.1rem 0 .2rem 0;}
  .trip-meta{grid-column:1 / -1;grid-row:2;padding:.2rem 0 .4rem 0;}
  .trip-price{grid-column:1 / -1;grid-row:3;flex-direction:row;align-items:center;justify-content:flex-start;gap:.8rem;padding:.2rem 0 1.2rem 0;}
  .trip-tag{left:3.2rem;}
  .why-grid{grid-template-columns:1fr;}
  .reviews{grid-template-columns:1fr;}
  .proof-quote blockquote{max-width:none;}
  .foot-grid{grid-template-columns:1fr;}
}
@media(max-width:420px){
  .nav-wa span.lbl{display:none;}
  .mast-fig{max-width:88%;}
  .stamp{width:100%;justify-content:center;}
  .mast-actions{flex-direction:column;}
  .mast-actions .stamp{width:100%;justify-content:center;}
}

/* ============================================================= *
 *  REDUCED MOTION — freeze marquee, instant reveals            *
 * ============================================================= */
@media(prefers-reduced-motion:reduce){
  *{scroll-behavior:auto !important;}
  .marquee-track{animation:none !important;transform:none !important;}
  [data-reveal],[data-hero-el]{opacity:1 !important;transform:none !important;transition:none !important;}
  .figure .fig-img img{transition:none !important;}
  .jfig-frame .jm{transition:none !important;}
}
