/* ============================================================
   TMT Trail Experience v3 — scoped under .ttx
   GSAP owns all motion; CSS owns layout, type, and color.
============================================================ */
.ttx{
  --canopy:#F6F4EF;
  --canopy-deep:#2C2C2C;
  --moss:#6E7F6A;
  --moss-soft:#E7EBDF;
  --mist:#6E7F6A;
  --ember:#FF4D00;
  --ember-glow:rgba(255,77,0,.3);
  --dawn:#C9862B;
  --dawn-bright:#E8B14F;
  --parchment:#2C2C2C;
  --parchment-dim:rgba(44,44,44,.66);
  --hairline:rgba(44,44,44,.15);
  --sage:#B2C1A9;
  --cardbg:#FFFFFF;
  --chipbg:rgba(44,44,44,.05);
  --onmedia:#F6F4EF;
  --onmedia-dim:rgba(246,244,239,.78);
  --f-display:'Fraunces',Georgia,serif;
  --f-body:'Inter',-apple-system,sans-serif;
  --f-mono:'IBM Plex Mono',monospace;
}
.ttx, .ttx *, .ttx *::before, .ttx *::after{margin:0; padding:0; box-sizing:border-box;}
.ttx{
  position:relative;
  background:var(--canopy);
  color:var(--parchment);
  font-family:var(--f-body);
  font-size:16px; line-height:1.6;
  overflow-x:hidden;
  overflow-x:clip;
  -webkit-font-smoothing:antialiased;
}
.ttx img{display:block; max-width:100%;}
.ttx a{color:inherit; text-decoration:none;}
.ttx .ttx-wrap{max-width:var(--ttx-maxw,1200px); margin:0 auto; padding:0 clamp(20px,4vw,48px); position:relative; z-index:2;}

/* film grain */
.ttx::after{
  content:""; position:absolute; inset:0; pointer-events:none; z-index:6; opacity:.035;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)' opacity='0.6'/%3E%3C/svg%3E");
}

/* ============ THE SNAKING TRAIL ============ */
.ttx .ttx-trail{position:absolute; top:0; left:0; z-index:1; pointer-events:none; overflow:visible;}
.ttx .ttx-trail-line{
  fill:none; stroke:var(--ember); stroke-width:2.2; stroke-linecap:round;
  stroke-dasharray:1 11;              /* dotted map-trail */
  opacity:.5;
}
.ttx .ttx-trail-glow{
  fill:none; stroke:var(--ember); stroke-width:10; stroke-linecap:round;
  opacity:.07; filter:blur(2px);
}
.ttx .ttx-trail-maskpath{fill:none; stroke:#fff; stroke-width:18; stroke-linecap:round;}
.ttx .ttx-anchor{position:relative; width:100%; height:0;}
.ttx .ttx-anchor::before{content:""; position:absolute; left:50%; top:0; width:1px; height:1px;}
.ttx .ttx-node{
  position:absolute; width:12px; height:12px; border-radius:50%;
  transform:translate(-50%,-50%);
  background:var(--canopy); border:2px solid rgba(44,44,44,.35);
  z-index:3; pointer-events:none;
  transition:background .5s ease, border-color .5s ease, box-shadow .5s ease;
}
.ttx .ttx-node[style*="right:0"]{transform:translate(50%,-50%);}
.ttx .ttx-node.is-lit{
  background:var(--ember); border-color:var(--ember);
  box-shadow:0 0 0 7px rgba(255,77,0,.13), 0 0 22px rgba(255,77,0,.6);
}
.ttx .ttx-node-end.is-lit{
  background:var(--dawn); border-color:var(--dawn);
  box-shadow:0 0 0 7px rgba(232,177,79,.15), 0 0 24px rgba(232,177,79,.6);
}
.ttx .ttx-tip{
  position:absolute; width:10px; height:10px; border-radius:50%;
  background:var(--ember); z-index:3; pointer-events:none;
  transform:translate(-50%,-50%);
  box-shadow:0 0 0 5px rgba(255,77,0,.18), 0 0 16px rgba(255,77,0,.8);
  opacity:0;
}
.ttx .ttx-tip::after{
  content:""; position:absolute; inset:-7px; border-radius:50%;
  border:1px solid rgba(255,77,0,.5);
  animation:ttx-pulse 1.8s ease-out infinite;
}
@keyframes ttx-pulse{0%{transform:scale(.6);opacity:.9}100%{transform:scale(1.8);opacity:0}}

/* ============ ALTIMETER ============ */
.ttx .ttx-alt{
  position:fixed; right:clamp(14px,2.6vw,40px); bottom:38px; z-index:880;
  font-family:var(--f-mono); text-align:right; color:var(--mist);
  opacity:0; pointer-events:none;
}
.ttx .ttx-alt-label{font-size:10px; letter-spacing:.22em; text-transform:uppercase; color:var(--parchment-dim); margin-bottom:2px;}
.ttx .ttx-alt-value{font-size:clamp(22px,2.4vw,30px); font-weight:500; color:var(--parchment); line-height:1.1; font-variant-numeric:tabular-nums;}
.ttx .ttx-alt-value b{color:var(--ember); font-weight:500;}
.ttx .ttx-alt-track{width:2px; height:120px; margin:12px 0 0 auto; background:rgba(168,195,179,.18); position:relative; border-radius:2px;}
.ttx .ttx-alt-fill{position:absolute; bottom:0; left:0; right:0; height:0%; background:linear-gradient(180deg,var(--dawn),var(--ember)); border-radius:2px;}

/* ============ SHARED ============ */
.ttx section{position:relative;}
.ttx .ttx-kicker{
  font-family:var(--f-mono); font-size:11px; letter-spacing:.28em; text-transform:uppercase;
  color:var(--ember); margin-bottom:18px; display:flex; align-items:center; gap:12px;
}
.ttx .ttx-kicker::before{content:""; width:28px; height:1px; background:var(--ember);}
.ttx .ttx-kicker-center{justify-content:center;}
.ttx .ttx-eyebrow{
  font-family:var(--f-mono); font-size:12px; letter-spacing:.3em; text-transform:uppercase;
  color:var(--dawn); display:inline-flex; align-items:center; gap:14px; margin-bottom:28px;
}
.ttx .ttx-eyebrow::before, .ttx .ttx-eyebrow::after{content:""; width:36px; height:1px; background:rgba(232,177,79,.5);}
.ttx .ttx-btn{
  font-family:var(--f-mono); font-size:13px; letter-spacing:.14em; text-transform:uppercase;
  padding:16px 32px; border-radius:2px; display:inline-block; will-change:transform;
  transition:box-shadow .3s ease, background .3s ease;
}
.ttx .ttx-btn-ember{background:var(--ember); color:var(--canopy-deep);}
.ttx .ttx-btn-ember:hover{box-shadow:0 12px 36px var(--ember-glow);}
.ttx .ttx-btn-ghost{border:1px solid rgba(242,239,230,.28); color:var(--parchment);}
.ttx .ttx-btn-ghost:hover{background:rgba(242,239,230,.08);}
.ttx .ttx-actions{margin-top:44px; display:flex; gap:18px; justify-content:center; flex-wrap:wrap;}
.ttx .ttx-chips{display:flex; flex-wrap:wrap; gap:10px; margin-top:24px;}
.ttx .ttx-chip{
  font-family:var(--f-mono); font-size:11px; letter-spacing:.12em; text-transform:uppercase;
  color:var(--mist); border:1px solid var(--hairline); border-radius:2px; padding:8px 13px;
  background:var(--chipbg); will-change:transform;
}
.ttx .ttx-link{
  display:inline-flex; align-items:center; gap:12px; margin-top:30px;
  font-family:var(--f-mono); font-size:12.5px; letter-spacing:.16em; text-transform:uppercase;
  color:var(--parchment);
}
.ttx .ttx-link i{font-style:normal; color:var(--ember); transition:transform .35s cubic-bezier(.22,1,.36,1);}
.ttx .ttx-link:hover i{transform:translateX(8px);}
.ttx .ttx-cue{
  position:absolute; bottom:26px; left:50%; transform:translateX(-50%); z-index:5;
  font-family:var(--f-mono); font-size:10px; letter-spacing:.28em; text-transform:uppercase;
  color:var(--parchment-dim); display:flex; flex-direction:column; align-items:center; gap:10px;
}
.ttx .ttx-cue span{
  width:1px; height:44px; background:linear-gradient(180deg,var(--ember),transparent);
  display:block; animation:ttx-drip 2.2s ease-in-out infinite; transform-origin:top;
}
@keyframes ttx-drip{0%{transform:scaleY(0)}45%{transform:scaleY(1)}100%{transform:scaleY(0);transform-origin:bottom}}

/* ============ HERO ============ */
.ttx .ttx-hero{
  height:100vh; height:100svh; min-height:640px;
  display:flex; align-items:center; justify-content:center;
  overflow:hidden; background:var(--canopy-deep);
}
.ttx .ttx-hero-media{position:absolute; inset:0; will-change:transform;}
.ttx .ttx-hero-media img{
  width:100%; height:100%; object-fit:cover; object-position:center 38%;
  filter:saturate(.9) brightness(.82);
}
.ttx .ttx-hero-shade{
  position:absolute; inset:0;
  background:
    radial-gradient(90% 70% at 50% 42%, rgba(7,14,11,.08), rgba(7,14,11,.62) 100%),
    linear-gradient(180deg, rgba(7,14,11,.5), transparent 30%, transparent 60%, var(--herofade, var(--canopy)) 100%);
}
.ttx .ttx-hero-inner{position:relative; z-index:4; text-align:center; padding:110px 24px 140px; max-width:1080px; will-change:transform,opacity;}
.ttx .ttx-hero-title{
  font-family:var(--f-display); font-weight:300;
  font-size:clamp(44px,8.4vw,108px); line-height:1.04; letter-spacing:-.015em;
}
.ttx .ttx-hero-title em{font-style:italic; font-weight:400;}
.ttx .ttx-hero-sub{margin:30px auto 0; max-width:600px; color:var(--parchment-dim); font-size:clamp(15px,1.6vw,18px);}

/* word-split spans (created by JS) */
.ttx .ttx-split .ttx-w{display:inline-block; overflow:hidden; vertical-align:top;}
.ttx .ttx-split .ttx-wi{display:inline-block; will-change:transform;}

/* ============ MANIFESTO ============ */
.ttx .ttx-manifesto{padding:clamp(110px,14vw,190px) 0;}
.ttx .ttx-mani{
  font-family:var(--f-display); font-weight:300;
  font-size:clamp(24px,3.4vw,42px); line-height:1.42; letter-spacing:-.005em;
  max-width:26ch; margin-top:10px;
}
.ttx .ttx-mani .ttx-mw{color:rgba(44,44,44,.18);}

/* ============ STOPS ============ */
.ttx .ttx-stops{padding:clamp(40px,6vw,90px) 0 clamp(60px,8vw,110px);}
.ttx .ttx-stop{
  position:relative;
  display:grid; grid-template-columns:1fr 1fr;
  gap:clamp(34px,5.5vw,80px); align-items:center;
  padding:clamp(60px,8vw,110px) 0;
}
.ttx .ttx-stop + .ttx-stop{border-top:1px solid var(--hairline);}
.ttx .ttx-stop-media{position:relative; aspect-ratio:4/3;}
.ttx .ttx-stop-frame{
  position:absolute; inset:-12px 12px 12px -12px;
  border:1px solid var(--hairline); border-radius:4px; z-index:0;
  transform-origin:left center;
}
.ttx .ttx-stop-imgwrap{
  position:absolute; inset:0; overflow:hidden; border-radius:4px;
  will-change:clip-path;
}
.ttx .ttx-stop-imgwrap img{
  width:100%; height:100%; object-fit:cover;
  filter:saturate(.92); will-change:transform;
}
.ttx .ttx-stop-imgwrap::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(160deg, rgba(255,77,0,.08), transparent 40%, rgba(7,14,11,.5) 100%);
  pointer-events:none;
}
.ttx .ttx-stop-idx{
  font-family:var(--f-mono); font-size:11.5px; letter-spacing:.24em; text-transform:uppercase;
  color:var(--ember); display:block; margin-bottom:16px;
}
.ttx .ttx-stop-title{
  font-family:var(--f-display); font-weight:300;
  font-size:clamp(30px,4vw,52px); line-height:1.06; letter-spacing:-.01em;
}
.ttx .ttx-stop-title em{font-style:italic; font-weight:400;}
.ttx .ttx-stop-text{color:var(--parchment-dim); margin-top:18px; font-size:15.5px; max-width:50ch;}
.ttx .ttx-stop-flip .ttx-stop-media{order:2;}
.ttx .ttx-stop-flip .ttx-stop-frame{inset:-12px -12px 12px 12px; transform-origin:right center;}

/* ============ CTA ============ */
.ttx .ttx-cta{
  padding:clamp(130px,16vw,210px) 0 clamp(110px,14vw,180px);
  background:var(--ctabg, var(--canopy-deep)); text-align:center; overflow:hidden;
}
.ttx .ttx-cta-fire{
  position:absolute; left:50%; bottom:-32%; transform:translateX(-50%);
  width:min(900px,120vw); height:70%;
  background:radial-gradient(50% 60% at 50% 100%, rgba(255,77,0,.22), rgba(232,177,79,.07) 55%, transparent 75%);
  pointer-events:none; animation:ttx-flicker 5s ease-in-out infinite;
}
@keyframes ttx-flicker{0%,100%{opacity:.85}50%{opacity:1}}
.ttx .ttx-cta-title{
  font-family:var(--f-display); font-weight:300;
  font-size:clamp(32px,4.6vw,58px); line-height:1.08; max-width:16ch; margin:0 auto;
}
.ttx .ttx-cta-title em{font-style:italic; font-weight:400;}
.ttx .ttx-cta-text{color:var(--parchment-dim); max-width:52ch; margin:24px auto 0;}

/* ============ RESPONSIVE ============ */
@media (max-width:960px){
  .ttx .ttx-stop{grid-template-columns:1fr;}
  .ttx .ttx-stop-flip .ttx-stop-media{order:0;}
  .ttx .ttx-alt-track{height:80px;}
}
@media (max-width:600px){
  .ttx .ttx-alt{right:14px; bottom:20px;}
  .ttx .ttx-alt-value{font-size:18px;}
  .ttx .ttx-alt-track{display:none;}
  .ttx .ttx-mani{max-width:100%;}
}

/* ============ REDUCED MOTION / NO-JS SAFETY ============
   Content is fully visible by default. GSAP sets initial hidden
   states only when it boots AND motion is allowed — so if JS
   fails or the user prefers reduced motion, the page reads
   perfectly as a static layout. */
@media (prefers-reduced-motion:reduce){
  .ttx .ttx-tip, .ttx .ttx-cue span{display:none;}
  .ttx .ttx-mani .ttx-mw{color:var(--parchment);}
}

/* ============================================================
   v3.1 additions
============================================================ */

/* --- Layering law: the trail line passes BEHIND all imagery;
       only the pulsing tip (z:3) rides over. Pinned stages are
       full scenes — the line never crosses them at all. --- */
.ttx .ttx-stop-media, .ttx .ttx-map-media, .ttx .ttx-trio-card, .ttx .ttx-feat, .ttx .ttx-legend{
  position:relative; z-index:2;
}
.ttx .ttx-hero, .ttx .ttx-journey-stage, .ttx .ttx-video-stage, .ttx .ttx-boom-stage{
  position:relative; z-index:2;
}

/* ============ TMT.1 MAP ============ */
.ttx .ttx-map{padding:clamp(70px,9vw,130px) 0;}
.ttx .ttx-map-head{max-width:720px; margin-bottom:clamp(40px,5vw,64px);}
.ttx .ttx-map-title{
  font-family:var(--f-display); font-weight:300;
  font-size:clamp(32px,4.6vw,58px); line-height:1.08; letter-spacing:-.01em;
}
.ttx .ttx-map-title em{font-style:italic; font-weight:400;}
.ttx .ttx-map-text{color:var(--parchment-dim); margin-top:20px; max-width:60ch;}
.ttx .ttx-map-media{margin:0;}
.ttx .ttx-map-frame{
  position:absolute; inset:-12px 12px 12px -12px;
  border:1px solid var(--hairline); border-radius:4px; z-index:0;
  transform-origin:left center;
}
.ttx .ttx-map-imgwrap{
  position:relative; overflow:hidden; border-radius:4px; will-change:clip-path;
  aspect-ratio:16/9;
}
.ttx .ttx-map-imgwrap img{width:100%; height:100%; object-fit:cover; will-change:transform;}
.ttx .ttx-legends{
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:clamp(14px,2.2vw,26px); margin-top:clamp(26px,3.4vw,40px);
}
.ttx .ttx-legend{
  border:1px solid var(--hairline); border-radius:4px;
  background:var(--cardbg);
  box-shadow:0 10px 30px rgba(44,44,44,.06);
  padding:22px 22px 24px; will-change:transform;
}
.ttx .ttx-legend-bar{display:block; width:34px; height:3px; border-radius:2px; margin-bottom:16px;}
.ttx .ttx-legend-1 .ttx-legend-bar{background:var(--ember);}
.ttx .ttx-legend-2 .ttx-legend-bar{background:#3E9B5F;}
.ttx .ttx-legend-3 .ttx-legend-bar{background:var(--dawn);}
.ttx .ttx-legend h4{
  font-family:var(--f-display); font-weight:400; font-size:19px; line-height:1.25;
}
.ttx .ttx-legend p{color:var(--parchment-dim); font-size:13.5px; margin-top:8px;}

/* ============ FEATURE CARDS ============ */
.ttx .ttx-feats{padding:clamp(30px,4vw,60px) 0 clamp(50px,6vw,90px);}
.ttx .ttx-feats-grid{
  display:grid; grid-template-columns:repeat(4,1fr);
  gap:clamp(14px,2vw,24px);
}
.ttx .ttx-feat{
  border-top:1px solid var(--hairline);
  padding:22px 4px 6px; will-change:transform;
  transition:border-color .4s ease;
}
.ttx .ttx-feat:hover{border-top-color:var(--ember);}
.ttx .ttx-feat-idx{
  font-family:var(--f-mono); font-size:11px; letter-spacing:.2em; color:var(--ember);
  display:block; margin-bottom:12px;
}
.ttx .ttx-feat h4{
  font-family:var(--f-display); font-weight:500; font-size:19px; line-height:1.25; color:var(--parchment);
}
.ttx .ttx-feat p{color:var(--parchment-dim); font-size:13.5px; margin-top:8px;}

/* ============ DISCOVER TRIO ============ */
.ttx .ttx-trio{padding:clamp(70px,9vw,130px) 0;}
.ttx .ttx-trio-head{max-width:720px; margin-bottom:clamp(40px,5vw,64px);}
.ttx .ttx-trio-head h2{
  font-family:var(--f-display); font-weight:300;
  font-size:clamp(32px,4.6vw,58px); line-height:1.08;
}
.ttx .ttx-trio-head h2 em{font-style:italic; font-weight:400;}
.ttx .ttx-trio-grid{
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:clamp(16px,2.4vw,28px);
}
.ttx .ttx-trio-card{
  display:flex; flex-direction:column;
  border:1px solid var(--hairline); border-radius:4px; overflow:hidden;
  background:var(--cardbg); will-change:transform;
  box-shadow:0 10px 30px rgba(44,44,44,.06);
  transition:border-color .4s ease, box-shadow .4s ease;
}
.ttx .ttx-trio-card:hover{border-color:rgba(255,77,0,.45); box-shadow:0 18px 50px rgba(44,44,44,.16);}
.ttx .ttx-trio-imgwrap{overflow:hidden; aspect-ratio:3/2;}
.ttx .ttx-trio-imgwrap img{
  width:100%; height:100%; object-fit:cover; filter:saturate(.92);
  transition:transform 1.1s cubic-bezier(.22,1,.36,1);
}
.ttx .ttx-trio-card:hover .ttx-trio-imgwrap img{transform:scale(1.06);}
.ttx .ttx-trio-body{padding:22px 22px 26px; display:flex; flex-direction:column; gap:8px; flex:1;}
.ttx .ttx-trio-body h4{font-family:var(--f-display); font-weight:400; font-size:22px;}
.ttx .ttx-trio-body p{color:var(--parchment-dim); font-size:14px;}
.ttx .ttx-trio-body .ttx-link{margin-top:auto; padding-top:14px;}
.ttx .ttx-trio-plain{
  justify-content:flex-end; min-height:100%;
  background:linear-gradient(160deg, rgba(255,77,0,.1), var(--sage));
}
.ttx .ttx-trio-plain .ttx-trio-body h4{font-size:clamp(24px,2.4vw,30px);}

/* ============ responsive for new sections ============ */
@media (max-width:960px){
  .ttx .ttx-feats-grid{grid-template-columns:repeat(2,1fr);}
  .ttx .ttx-legends{grid-template-columns:1fr;}
  .ttx .ttx-trio-grid{grid-template-columns:1fr;}
}


/* ============ STYLE-TAB TOGGLES ============ */
.ttx.ttx-no-trail .ttx-trail,
.ttx.ttx-no-trail .ttx-tip,
.ttx.ttx-no-trail .ttx-node,
.ttx.ttx-no-trail .ttx-anchor{display:none!important;}
.ttx.ttx-no-alt .ttx-alt{display:none!important;}
.ttx.ttx-no-grain::after{display:none!important;}


/* ============================================================
   v4 — light theme on-media overrides + new scenes
============================================================ */
.ttx .ttx-hero{color:var(--onmedia);}
.ttx .ttx-hero-sub{color:var(--onmedia-dim);}
.ttx .ttx-hero .ttx-btn-ghost{border-color:rgba(246,244,239,.4); color:var(--onmedia);}
.ttx .ttx-hero .ttx-btn-ghost:hover{background:rgba(246,244,239,.12);}
.ttx .ttx-cue{color:var(--onmedia-dim);}
.ttx .ttx-cta{color:var(--onmedia);}
.ttx .ttx-cta-text{color:var(--onmedia-dim);}
.ttx .ttx-cta .ttx-btn-ghost{border-color:rgba(246,244,239,.4); color:var(--onmedia);}
.ttx .ttx-cta .ttx-btn-ghost:hover{background:rgba(246,244,239,.12);}
.ttx .ttx-cta .ttx-camp-meta{color:rgba(246,244,239,.6);}

/* ============ PARALLAX RIDGES (full-section backdrop) ============ */
.ttx .ttx-manifesto{
  overflow:hidden; position:relative;
  min-height:110vh; display:flex; align-items:center;
  padding:clamp(110px,14vw,190px) 0;
}
.ttx .ttx-manifesto .ttx-wrap{width:100%;}
.ttx .ttx-ridges{
  position:absolute; inset:0; z-index:0; pointer-events:none;
}
.ttx .ttx-ridge{
  position:absolute; left:-12%; right:-12%; bottom:-4%;
  will-change:transform;
}
.ttx .ttx-ridge svg{display:block; width:100%; height:auto;}
/* each layer carries a solid skirt below its silhouette so scroll
   translation can never expose a hard bottom edge */
.ttx .ttx-ridge::after{
  content:""; position:absolute; left:0; right:0; top:99%; height:480px;
}
.ttx .ttx-ridge:nth-child(1){bottom:22%;}
.ttx .ttx-ridge:nth-child(1) svg path{fill:var(--ridge1,#B2C1A9); opacity:.35;}
.ttx .ttx-ridge:nth-child(1)::after{background:var(--ridge1,#B2C1A9); opacity:.35;}
.ttx .ttx-ridge:nth-child(2){bottom:9%;}
.ttx .ttx-ridge:nth-child(2) svg path{fill:var(--ridge2,#9DB292); opacity:.55;}
.ttx .ttx-ridge:nth-child(2)::after{background:var(--ridge2,#9DB292); opacity:.55;}
.ttx .ttx-ridge:nth-child(3){bottom:-2%;}
.ttx .ttx-ridge:nth-child(3) svg path{fill:var(--ridge3,#8AA083); opacity:.85;}
.ttx .ttx-ridge:nth-child(3)::after{background:var(--ridge3,#8AA083); opacity:.85;}
.ttx .ttx-ridge-mist{
  position:absolute; inset:auto 0 0 0; height:45%;
  background:linear-gradient(180deg, transparent, var(--canopy) 96%);
}

/* ============ GIANT MARQUEE ============ */
.ttx .ttx-marquee{
  padding:clamp(50px,7vw,100px) 0; overflow:hidden;
}
.ttx .ttx-marquee-track{
  display:inline-block;
  font-family:var(--f-body); font-weight:800; text-transform:uppercase;
  font-size:clamp(56px,9.5vw,140px); line-height:1; letter-spacing:.005em;
  white-space:nowrap; will-change:transform;
  color:var(--parchment); opacity:.92;
}

/* ============ BOOM SCENE ============ */
.ttx .ttx-boomsec{padding:0;}
.ttx .ttx-boom-stage{
  min-height:100vh; min-height:100svh;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  position:relative; overflow:hidden; gap:clamp(24px,4vh,44px);
}
.ttx .ttx-boom{
  position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
  font-family:var(--f-display); font-weight:300; text-align:center;
  font-size:clamp(48px,7.6vw,104px); line-height:1.05; letter-spacing:-.015em;
  white-space:nowrap; z-index:1; pointer-events:none;
}
.ttx .ttx-boom em{font-style:italic; font-weight:400;}
.ttx .ttx-boom .ttx-c{display:inline-block; will-change:transform,opacity;}
.ttx .ttx-boomsec .ttx-wrap{position:relative; z-index:2;}
.ttx .ttx-feats-grid{padding:0;}

/* ============ JOURNEY SEQUENCE ============ */
.ttx .ttx-journey{background:linear-gradient(180deg, var(--canopy), var(--moss-soft));}
.ttx .ttx-journey-stage{
  height:100vh; height:100svh; overflow:hidden;
  display:flex; align-items:center; justify-content:center; position:relative;
}
.ttx .ttx-journey-head{
  position:absolute; left:clamp(20px,5vw,72px); top:50%; transform:translateY(-50%);
  max-width:min(420px,36vw); z-index:3;
}
.ttx .ttx-journey-frames{
  position:relative; width:min(460px,58vw); aspect-ratio:3/4;
  border-radius:6px; overflow:hidden; z-index:2;
  box-shadow:0 30px 80px rgba(44,44,44,.25);
}
.ttx .ttx-jframe{
  position:absolute; inset:0; margin:0; will-change:clip-path;
}
.ttx .ttx-jframe img{
  width:100%; height:100%; object-fit:cover; will-change:transform;
}
.ttx .ttx-jframe figcaption{
  position:absolute; left:14px; bottom:12px;
  font-family:var(--f-mono); font-size:11px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--onmedia); background:rgba(44,44,44,.6); backdrop-filter:blur(6px);
  padding:8px 12px; border-radius:2px;
}
.ttx .ttx-journey-count{
  position:absolute; right:clamp(20px,5vw,72px); bottom:clamp(24px,5vh,52px);
  font-family:var(--f-mono); font-size:13px; letter-spacing:.2em;
  color:var(--parchment-dim); z-index:3;
}
.ttx .ttx-journey-count b{
  font-size:clamp(34px,4vw,54px); color:var(--parchment); font-weight:500; letter-spacing:0;
  margin-right:6px;
}

/* ============ VIDEO REVEAL ============ */
.ttx .ttx-video{background:var(--canopy-deep);}
.ttx .ttx-video-stage{
  height:100vh; height:100svh; overflow:hidden; position:relative;
  display:flex; align-items:center; justify-content:center;
  color:var(--onmedia);
}
.ttx .ttx-video-el{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  will-change:transform;
}
.ttx .ttx-video-maskshape{
  position:absolute; inset:-1px; width:calc(100% + 2px); height:calc(100% + 2px);
  will-change:transform,opacity; z-index:2; transform-origin:50% 55%;
}
.ttx .ttx-video-maskshape path{fill:var(--canopy);}
.ttx .ttx-video-head{
  position:absolute; left:50%; top:11%; transform:translateX(-50%);
  text-align:center; z-index:3; width:min(90vw,760px);
  color:var(--parchment);
}
.ttx .ttx-video-sub{
  margin-top:16px;
  font-family:var(--f-mono); font-size:11px; letter-spacing:.28em; text-transform:uppercase;
  color:var(--parchment-dim);
}
.ttx .ttx-video-sub::after{
  content:""; display:block; width:1px; height:34px; margin:10px auto 0;
  background:linear-gradient(180deg, var(--ember), transparent);
}
.ttx .ttx-video-sound{
  position:absolute; right:clamp(18px,4vw,48px); bottom:clamp(18px,4vh,44px); z-index:4;
  font-family:var(--f-mono); font-size:11px; letter-spacing:.16em; text-transform:uppercase;
  color:var(--onmedia); background:rgba(44,44,44,.55); backdrop-filter:blur(8px);
  border:1px solid rgba(246,244,239,.35); border-radius:999px;
  padding:12px 20px; cursor:pointer; opacity:0;
  transition:background .3s ease, border-color .3s ease;
}
.ttx .ttx-video-sound:hover{background:rgba(255,77,0,.7); border-color:transparent;}

@media (max-width:960px){
  .ttx .ttx-journey-head{position:static; transform:none; max-width:none; padding:80px clamp(20px,5vw,48px) 0; text-align:center;}
  .ttx .ttx-journey-stage{flex-direction:column; gap:22px; justify-content:flex-start;}
  .ttx .ttx-journey-frames{width:min(78vw,420px);}
  .ttx .ttx-boom{white-space:normal; width:92vw;}
}

/* ============================================================
   PRODUCT EXPERIENCE (.ttp) — Objectif TMT.1 template
============================================================ */
.ttp{
  --canopy:#F6F4EF; --canopy-deep:#2C2C2C; --ember:#FF4D00; --dawn:#C9862B;
  --dawn-bright:#E8B14F; --parchment:#2C2C2C; --parchment-dim:rgba(44,44,44,.66);
  --hairline:rgba(44,44,44,.15); --sage:#B2C1A9; --cardbg:#FFFFFF;
  --onmedia:#F6F4EF; --onmedia-dim:rgba(246,244,239,.78);
  --f-display:'Fraunces',Georgia,serif; --f-body:'Inter',-apple-system,sans-serif; --f-mono:'IBM Plex Mono',monospace;
}
.ttp, .ttp *, .ttp *::before, .ttp *::after{margin:0; padding:0; box-sizing:border-box;}
.ttp{
  background:var(--canopy); color:var(--parchment);
  font-family:var(--f-body); font-size:16px; line-height:1.65;
  overflow-x:hidden; overflow-x:clip; -webkit-font-smoothing:antialiased;
  position:relative;
}
.ttp img{display:block; max-width:100%;}
.ttp a{color:inherit; text-decoration:none;}
.ttp .ttp-kicker{
  font-family:var(--f-mono); font-size:11px; letter-spacing:.28em; text-transform:uppercase;
  color:var(--ember); margin-bottom:16px; display:flex; align-items:center; gap:12px;
}
.ttp .ttp-kicker::before{content:""; width:28px; height:1px; background:var(--ember);}
.ttp h2{font-family:var(--f-display); font-weight:300; font-size:clamp(30px,4.2vw,52px); line-height:1.1;}
.ttp h2 em{font-style:italic; color:var(--dawn); font-weight:400;}
.ttp .ttp-btn{
  font-family:var(--f-mono); font-size:13px; letter-spacing:.14em; text-transform:uppercase;
  padding:16px 30px; border-radius:2px; display:inline-block; text-align:center;
  transition:transform .3s ease, box-shadow .3s ease, background .3s ease;
}
.ttp .ttp-btn-ember{background:var(--ember); color:#fff;}
.ttp .ttp-btn-ember:hover{transform:translateY(-3px); box-shadow:0 12px 36px rgba(255,77,0,.3);}
.ttp .ttp-btn-ghost{border:1px solid rgba(44,44,44,.3);}
.ttp .ttp-btn-ghost:hover{background:rgba(44,44,44,.06); transform:translateY(-3px);}
.ttp .ttp-chip{
  font-family:var(--f-mono); font-size:11px; letter-spacing:.12em; text-transform:uppercase;
  border:1px solid var(--hairline); border-radius:2px; padding:9px 14px;
  color:var(--parchment-dim); background:var(--cardbg);
}

/* ---- hero ---- */
.ttp .ttp-hero{padding:clamp(90px,11vw,150px) clamp(20px,4vw,48px) clamp(50px,6vw,80px);}
.ttp .ttp-hero-grid{
  max-width:1200px; margin:0 auto;
  display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(36px,5vw,72px); align-items:center;
}
.ttp .ttp-title{
  font-family:var(--f-display); font-weight:300;
  font-size:clamp(52px,7.4vw,104px); line-height:.98; letter-spacing:-.015em;
}
.ttp .ttp-title em{font-style:italic; color:var(--ember); font-weight:400;}
.ttp .ttp-intro{color:var(--parchment-dim); margin-top:26px; max-width:56ch;}
.ttp .ttp-hero-actions{display:flex; gap:16px; flex-wrap:wrap; margin-top:36px;}
.ttp .ttp-hero-media{position:relative;}
.ttp .ttp-hero-media > img{
  width:100%; aspect-ratio:4/5; object-fit:cover; border-radius:5px;
  filter:saturate(.94);
}
.ttp .ttp-hero-frame{
  position:absolute; inset:-14px 14px 14px -14px;
  border:1px solid var(--hairline); border-radius:5px; z-index:0;
}
.ttp .ttp-price-tag{
  position:absolute; left:-16px; bottom:26px;
  background:var(--canopy-deep); color:var(--onmedia);
  border-radius:3px; padding:14px 20px; box-shadow:0 14px 40px rgba(44,44,44,.3);
}
.ttp .ttp-price-tag b{
  font-family:var(--f-mono); font-weight:500; font-size:clamp(22px,2.4vw,30px);
  color:var(--dawn-bright); display:block; line-height:1.1;
}
.ttp .ttp-price-tag span{
  font-family:var(--f-mono); font-size:10.5px; letter-spacing:.16em; text-transform:uppercase;
  color:var(--onmedia-dim);
}

/* ---- stats band ---- */
.ttp .ttp-stats{
  background:var(--sage); padding:clamp(40px,5vw,64px) clamp(20px,4vw,48px);
}
.ttp .ttp-stats-grid{
  max-width:1200px; margin:0 auto;
  display:grid; grid-template-columns:repeat(5,1fr); gap:clamp(14px,2vw,26px);
}
.ttp .ttp-stat{border-left:2px solid rgba(44,44,44,.28); padding-left:16px;}
.ttp .ttp-stat b{
  font-family:var(--f-mono); font-weight:500; display:block;
  font-size:clamp(26px,3.2vw,44px); line-height:1.05; color:#2C2C2C;
}
.ttp .ttp-stat span{
  font-family:var(--f-mono); font-size:10.5px; letter-spacing:.16em; text-transform:uppercase;
  color:rgba(44,44,44,.62);
}
.ttp .ttp-prac{
  max-width:1200px; margin:clamp(22px,3vw,34px) auto 0;
  display:flex; flex-wrap:wrap; gap:10px;
}
.ttp .ttp-prac .ttp-chip{background:rgba(246,244,239,.7); border-color:rgba(44,44,44,.2);}

/* ---- itinerary + sticky booking ---- */
.ttp .ttp-main{padding:clamp(70px,9vw,120px) clamp(20px,4vw,48px);}
.ttp .ttp-main-grid{
  max-width:1200px; margin:0 auto;
  display:grid; grid-template-columns:1fr 340px; gap:clamp(36px,5vw,72px);
  align-items:start;
}
.ttp .ttp-days{position:relative; padding-left:clamp(30px,4vw,52px);}
.ttp .ttp-spine{
  position:absolute; left:8px; top:8px; bottom:8px; width:2px;
  background:rgba(44,44,44,.12); border-radius:2px;
}
.ttp .ttp-spine-fill{
  position:absolute; top:0; left:0; right:0; height:100%;
  background:linear-gradient(180deg, var(--ember), var(--dawn));
  border-radius:2px; transform:scaleY(0); transform-origin:top;
}
.ttp .ttp-day{position:relative; padding:0 0 clamp(46px,6vw,72px);}
.ttp .ttp-day-dot{
  position:absolute; left:calc(-1 * clamp(30px,4vw,52px) + 3px); top:8px;
  width:12px; height:12px; border-radius:50%;
  background:var(--canopy); border:2px solid rgba(44,44,44,.35);
  transition:background .5s ease, border-color .5s ease, box-shadow .5s ease;
}
.ttp .ttp-day.is-lit .ttp-day-dot{
  background:var(--ember); border-color:var(--ember);
  box-shadow:0 0 0 6px rgba(255,77,0,.14);
}
.ttp .ttp-day-head{display:flex; align-items:baseline; gap:18px; flex-wrap:wrap; margin-bottom:14px;}
.ttp .ttp-day-head h3{
  font-family:var(--f-display); font-weight:300; font-size:clamp(26px,3vw,38px);
}
.ttp .ttp-day-meta{display:flex; gap:10px;}
.ttp .ttp-day-meta span{
  font-family:var(--f-mono); font-size:11px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--dawn); border:1px solid rgba(201,134,43,.4); border-radius:2px; padding:6px 11px;
}
.ttp .ttp-day p{color:var(--parchment-dim); max-width:62ch;}
.ttp .ttp-day-media{overflow:hidden; border-radius:5px; margin-top:22px;}
.ttp .ttp-day-media img{
  width:100%; aspect-ratio:16/9; object-fit:cover; filter:saturate(.94);
  will-change:transform;
}
.ttp .ttp-book{position:sticky; top:90px;}
.ttp .ttp-book-card{
  background:var(--cardbg); border:1px solid var(--hairline); border-radius:5px;
  padding:clamp(24px,3vw,34px); box-shadow:0 18px 50px rgba(44,44,44,.1);
  display:flex; flex-direction:column; gap:16px;
}
.ttp .ttp-book-price b{
  font-family:var(--f-mono); font-weight:500; font-size:clamp(32px,3.4vw,44px);
  color:var(--ember); line-height:1;
}
.ttp .ttp-book-price span{
  font-family:var(--f-mono); font-size:11px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--parchment-dim); display:block; margin-top:6px;
}
.ttp .ttp-book-card p{color:var(--parchment-dim); font-size:14px;}
.ttp .ttp-book-pdf{
  font-family:var(--f-mono); font-size:12px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--parchment); text-align:center;
}
.ttp .ttp-book-pdf:hover{color:var(--ember);}

/* ---- accommodation ---- */
.ttp .ttp-nights{
  background:linear-gradient(180deg, var(--canopy), #EDEBE2);
  padding:clamp(70px,9vw,120px) clamp(20px,4vw,48px);
}
.ttp .ttp-nights-head{max-width:1200px; margin:0 auto clamp(36px,5vw,56px);}
.ttp .ttp-nights-grid{
  max-width:1200px; margin:0 auto;
  display:grid; grid-template-columns:repeat(2,1fr); gap:clamp(18px,2.6vw,30px);
}
.ttp .ttp-night{
  background:var(--cardbg); border:1px solid var(--hairline); border-radius:5px; overflow:hidden;
  box-shadow:0 10px 30px rgba(44,44,44,.06); will-change:transform;
  transition:box-shadow .4s ease;
}
.ttp .ttp-night:hover{box-shadow:0 20px 55px rgba(44,44,44,.14);}
.ttp .ttp-night-media{overflow:hidden;}
.ttp .ttp-night-media img{
  width:100%; aspect-ratio:2.2/1; object-fit:cover;
  transition:transform 1.1s cubic-bezier(.22,1,.36,1);
}
.ttp .ttp-night:hover .ttp-night-media img{transform:scale(1.05);}
.ttp .ttp-night-body{padding:22px 24px 26px;}
.ttp .ttp-night h4{font-family:var(--f-display); font-weight:400; font-size:20px;}
.ttp .ttp-night p{color:var(--parchment-dim); font-size:14px; margin-top:8px;}

/* ---- product CTA ---- */
.ttp .ttp-cta{
  background:var(--canopy-deep); color:var(--onmedia); text-align:center;
  padding:clamp(90px,12vw,150px) clamp(20px,4vw,48px);
}
.ttp .ttp-cta h2{max-width:20ch; margin:0 auto clamp(28px,4vw,40px);}
.ttp .ttp-cta h2 em{color:var(--dawn-bright);}

@media (max-width:960px){
  .ttp .ttp-hero-grid{grid-template-columns:1fr;}
  .ttp .ttp-stats-grid{grid-template-columns:repeat(2,1fr); row-gap:26px;}
  .ttp .ttp-main-grid{grid-template-columns:1fr;}
  .ttp .ttp-book{position:static;}
  .ttp .ttp-nights-grid{grid-template-columns:1fr;}
}
@media (prefers-reduced-motion:reduce){
  .ttp [data-tr], .ttp [data-tr-img]{opacity:1!important; transform:none!important;}
  .ttp .ttp-spine-fill{transform:scaleY(1)!important;}
}

/* ============================================================
   Product v4.1 — new sections + stats band polish
============================================================ */
.ttp .ttp-stats-grid{align-items:start;}
.ttp .ttp-stat{border-left:2px solid rgba(44,44,44,.32); padding-left:16px; min-width:0;}
.ttp .ttp-stat b{white-space:nowrap;}
.ttp .ttp-prac{gap:10px 12px;}

.ttp .ttp-book-cal{font-size:12px; padding:14px 20px;}
.ttp .ttp-book-deposit{
  font-family:var(--f-mono); font-size:10.5px; letter-spacing:.1em; text-transform:uppercase;
  color:var(--parchment-dim); text-align:center; border-top:1px solid var(--hairline); padding-top:14px;
}

/* ---- all inclusive ---- */
.ttp .ttp-inc{padding:clamp(70px,9vw,120px) clamp(20px,4vw,48px); background:var(--canopy-deep); color:var(--onmedia);}
.ttp .ttp-inc-inner{max-width:1200px; margin:0 auto;}
.ttp .ttp-inc-head{margin-bottom:clamp(32px,4vw,50px);}
.ttp .ttp-inc h2 em{color:var(--dawn-bright);}
.ttp .ttp-inc-grid{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:clamp(12px,1.8vw,20px);
}
.ttp .ttp-inc-item{
  display:flex; align-items:flex-start; gap:14px;
  border:1px solid rgba(246,244,239,.16); border-radius:4px;
  padding:18px 20px; background:rgba(246,244,239,.04);
}
.ttp .ttp-inc-item i{
  font-style:normal; color:var(--ember); font-weight:700; font-family:var(--f-mono);
  line-height:1.5;
}
.ttp .ttp-inc-item span{color:var(--onmedia-dim); font-size:14.5px;}

/* ---- packing ---- */
.ttp .ttp-pack{padding:clamp(70px,9vw,120px) clamp(20px,4vw,48px); background:var(--sage);}
.ttp .ttp-pack-inner{max-width:1200px; margin:0 auto;}
.ttp .ttp-pack-head{margin-bottom:clamp(32px,4vw,50px); max-width:640px;}
.ttp .ttp-pack-grid{
  display:grid; grid-template-columns:repeat(2,1fr); gap:clamp(16px,2.4vw,28px);
}
.ttp .ttp-pack-card{
  background:var(--cardbg); border-radius:5px; padding:clamp(24px,3vw,34px);
  box-shadow:0 14px 40px rgba(44,44,44,.12);
}
.ttp .ttp-pack-card h4{
  font-family:var(--f-display); font-weight:400; font-size:21px;
  display:flex; align-items:baseline; justify-content:space-between; gap:12px;
  padding-bottom:14px; border-bottom:1px solid var(--hairline); margin-bottom:14px;
}
.ttp .ttp-pack-card h4 span{
  font-family:var(--f-mono); font-size:10.5px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--ember);
}
.ttp .ttp-pack-card ul{list-style:none;}
.ttp .ttp-pack-card li{
  color:var(--parchment-dim); font-size:14.5px; padding:8px 0 8px 22px; position:relative;
}
.ttp .ttp-pack-card li::before{
  content:""; position:absolute; left:0; top:16px; width:10px; height:2px;
  background:var(--ember); border-radius:2px;
}
.ttp .ttp-pack-carried h4 span{color:var(--dawn);}

/* ---- route flyover ---- */
.ttp .ttp-fly{padding:clamp(70px,9vw,120px) clamp(20px,4vw,48px);}
.ttp .ttp-fly-inner{max-width:1100px; margin:0 auto;}
.ttp .ttp-fly-head{margin-bottom:clamp(28px,3.6vw,44px);}
.ttp .ttp-fly-media{
  border-radius:6px; overflow:hidden; position:relative;
  box-shadow:0 28px 70px rgba(44,44,44,.22);
  border:1px solid var(--hairline);
}
.ttp .ttp-fly-video{display:block; width:100%; height:auto; background:#0a0a0a;}

/* ---- calendar band ---- */
.ttp .ttp-cal{padding:clamp(60px,8vw,100px) clamp(20px,4vw,48px);}
.ttp .ttp-cal-inner{
  max-width:1200px; margin:0 auto;
  display:flex; align-items:center; justify-content:space-between; gap:28px; flex-wrap:wrap;
  border:1px solid var(--hairline); border-radius:6px;
  background:var(--cardbg); box-shadow:0 14px 40px rgba(44,44,44,.08);
  padding:clamp(28px,4vw,48px);
}

@media (max-width:960px){
  .ttp .ttp-pack-grid{grid-template-columns:1fr;}
}


/* ============================================================
   Product v4.2 — dark stats band, day banners with elevation
   profiles, route map
============================================================ */
.ttp .ttp-stats{
  background:var(--canopy-deep); color:var(--onmedia);
  padding:clamp(50px,6vw,80px) clamp(20px,4vw,48px);
}
.ttp .ttp-stat{border-left:2px solid rgba(246,244,239,.22);}
.ttp .ttp-stat b{color:var(--dawn-bright);}
.ttp .ttp-stat span{color:rgba(246,244,239,.55);}
.ttp .ttp-prac .ttp-chip{
  background:rgba(246,244,239,.08); border-color:rgba(246,244,239,.22);
  color:rgba(246,244,239,.8);
}

.ttp .ttp-day{padding:0 0 clamp(50px,6vw,80px);}
.ttp .ttp-days{padding-left:0;}
.ttp .ttp-day-banner{
  display:flex; align-items:center; gap:clamp(16px,2.4vw,30px); flex-wrap:wrap;
  border-radius:5px; padding:16px clamp(18px,2.6vw,28px);
  color:#F6F4EF; margin-bottom:20px;
  box-shadow:0 12px 34px rgba(44,44,44,.16);
}
.ttp .ttp-day:nth-child(odd) .ttp-day-banner{background:var(--moss,#6E7F6A);}
.ttp .ttp-day:nth-child(even) .ttp-day-banner{background:var(--ember);}
.ttp .ttp-day-banner h3{
  font-family:var(--f-display); font-weight:400; font-size:clamp(22px,2.4vw,30px);
  color:#fff;
}
.ttp .ttp-day-facts{display:flex; gap:10px; flex-wrap:wrap;}
.ttp .ttp-fact{
  font-family:var(--f-mono); font-size:11.5px; letter-spacing:.12em; text-transform:uppercase;
  background:rgba(0,0,0,.22); border-radius:2px; padding:8px 12px; color:#fff;
}
.ttp .ttp-day-profile{
  margin-left:auto; width:clamp(140px,18vw,220px); height:48px; display:block;
  opacity:.95;
}
.ttp .ttp-day-profile path{
  fill:none; stroke:rgba(255,255,255,.95); stroke-width:2; stroke-linecap:round;
  filter:drop-shadow(0 1px 4px rgba(0,0,0,.3));
}

.ttp .ttp-fly-map{
  border-radius:6px; overflow:hidden; margin-bottom:clamp(18px,2.6vw,28px);
  border:1px solid var(--hairline); box-shadow:0 20px 55px rgba(44,44,44,.18);
  aspect-ratio:16/9; will-change:clip-path;
}
.ttp .ttp-fly-map img{width:100%; height:100%; object-fit:cover;}

@media (max-width:700px){
  .ttp .ttp-day-profile{width:100%; margin-left:0;}
}

/* ============================================================
   Product v4.3 — ticket card, editorial days, refined lists
============================================================ */

/* ---- trip ticket (replaces the band) ---- */
.ttp .ttp-stats{
  background:transparent!important; color:var(--parchment)!important;
  padding:0 clamp(20px,4vw,48px)!important;
}
.ttp .ttp-stats-card{
  max-width:1200px; margin:calc(-1 * clamp(40px,5vw,70px)) auto 0;
  position:relative; z-index:3;
  background:var(--cardbg); border:1px solid var(--hairline); border-radius:6px;
  box-shadow:0 24px 60px rgba(44,44,44,.14);
  padding:clamp(26px,3.4vw,44px) clamp(24px,3.4vw,44px) clamp(20px,2.6vw,30px);
}
.ttp .ttp-stats-card .ttp-stats-grid{margin:0;}
.ttp .ttp-stats-card .ttp-stat{border-left:1px solid var(--hairline);}
.ttp .ttp-stats-card .ttp-stat b{color:var(--ember)!important;}
.ttp .ttp-stats-card .ttp-stat span{color:var(--parchment-dim)!important;}
.ttp .ttp-stats-card .ttp-prac{
  margin:clamp(20px,2.6vw,28px) 0 0; padding-top:clamp(16px,2vw,22px);
  border-top:1px dashed var(--hairline);
  display:flex; flex-wrap:wrap; gap:6px 0; max-width:none;
}
.ttp .ttp-prac-item{
  font-family:var(--f-mono); font-size:11px; letter-spacing:.1em; text-transform:uppercase;
  color:var(--parchment-dim);
}
.ttp .ttp-prac-item:not(:last-child)::after{
  content:"·"; color:var(--ember); margin:0 14px;
}

/* ---- editorial day headers ---- */
.ttp .ttp-day-head{
  display:flex; align-items:baseline; gap:clamp(14px,2vw,22px);
  margin-bottom:18px; flex-wrap:nowrap;
}
.ttp .ttp-day-num{
  font-family:var(--f-mono); font-size:12px; letter-spacing:.2em;
  color:var(--ember);
}
.ttp .ttp-day-head h3{
  font-family:var(--f-display); font-weight:300;
  font-size:clamp(26px,3.2vw,40px); line-height:1; white-space:nowrap;
}
.ttp .ttp-day-rule{
  flex:1; height:1px; background:var(--hairline); align-self:center;
  transform-origin:left center;
}
.ttp .ttp-day-meta{
  font-family:var(--f-mono); font-size:12px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--dawn); white-space:nowrap;
}
@media (max-width:600px){
  .ttp .ttp-day-head{flex-wrap:wrap;}
  .ttp .ttp-day-rule{display:none;}
}

/* ---- all inclusive: editorial split ---- */
.ttp .ttp-inc{
  background:transparent; color:var(--parchment);
  padding:clamp(70px,9vw,120px) clamp(20px,4vw,48px);
}
.ttp .ttp-inc-inner{
  max-width:1200px; margin:0 auto;
  display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(36px,5vw,80px);
  align-items:start;
}
.ttp .ttp-inc-head{margin:0; position:sticky; top:110px;}
.ttp .ttp-inc h2 em{color:var(--dawn);}
.ttp .ttp-inc-note{color:var(--parchment-dim); margin-top:16px; max-width:40ch; font-size:15px;}
.ttp .ttp-inc-list{list-style:none; margin:0; padding:0;}
.ttp .ttp-inc-row{
  display:flex; align-items:flex-start; gap:18px;
  padding:18px 4px; border-bottom:1px solid var(--hairline);
  transition:padding-left .35s cubic-bezier(.22,1,.36,1);
}
.ttp .ttp-inc-row:first-child{border-top:1px solid var(--hairline);}
.ttp .ttp-inc-row:hover{padding-left:14px;}
.ttp .ttp-inc-row i{
  font-style:normal; flex:0 0 auto;
  width:24px; height:24px; border-radius:50%;
  background:var(--ember); color:#fff;
  font-size:12px; line-height:24px; text-align:center; font-family:var(--f-mono);
}
.ttp .ttp-inc-row span{color:var(--parchment); font-size:15.5px; padding-top:1px;}

/* ---- packing: one elevated card, two columns ---- */
.ttp .ttp-pack{
  background:linear-gradient(180deg, transparent, rgba(178,193,169,.25));
  padding:clamp(70px,9vw,120px) clamp(20px,4vw,48px);
}
.ttp .ttp-pack-head h2 em{color:var(--ember);}
.ttp .ttp-pack-card{
  max-width:1200px; margin:0 auto;
  display:grid; grid-template-columns:1fr 1px 1fr; gap:clamp(24px,3.4vw,48px);
  background:var(--cardbg); border:1px solid var(--hairline); border-radius:6px;
  box-shadow:0 24px 60px rgba(44,44,44,.12);
  padding:clamp(28px,3.6vw,48px);
}
.ttp .ttp-pack-divider{background:var(--hairline);}
.ttp .ttp-pack-col h4{
  font-family:var(--f-display); font-weight:400; font-size:22px;
  display:flex; align-items:baseline; justify-content:space-between; gap:12px;
  padding-bottom:16px; border-bottom:0; margin-bottom:6px;
}
.ttp .ttp-pack-col h4 span{
  font-family:var(--f-mono); font-size:10.5px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--ember);
}
.ttp .ttp-pack-col ul{list-style:none; margin:0; padding:0;}
.ttp .ttp-pack-col li{
  color:var(--parchment-dim); font-size:14.5px; padding:11px 0 11px 24px; position:relative;
  border-top:1px solid rgba(44,44,44,.07);
}
.ttp .ttp-pack-col li::before{
  content:""; position:absolute; left:0; top:20px; width:11px; height:2px;
  background:var(--ember); border-radius:2px;
}
.ttp .ttp-pack-carried h4 span{color:var(--dawn);}
.ttp .ttp-pack-carried li::before{background:var(--dawn);}
@media (max-width:860px){
  .ttp .ttp-inc-inner{grid-template-columns:1fr;}
  .ttp .ttp-inc-head{position:static;}
  .ttp .ttp-pack-card{grid-template-columns:1fr;}
  .ttp .ttp-pack-divider{display:none;}
}

/* ---- booking card background control ---- */
.ttp .ttp-book-card{background:var(--bookbg, var(--cardbg));}

/* ---- standalone CTA widget ---- */
.ttp .ttp-cta{background:var(--pctabg, var(--canopy-deep));}
.ttp .ttp-cta-actions{display:flex; gap:16px; justify-content:center; flex-wrap:wrap;}
.ttp .ttp-btn-onmedia{border-color:rgba(246,244,239,.4); color:var(--onmedia);}
.ttp .ttp-btn-onmedia:hover{background:rgba(246,244,239,.12);}
.ttp .ttp-cta h2 em{color:var(--dawn-bright);}


/* ============================================================
   v4.4 — GOLD ACCENTS: one rule to rule them all.
   Light sections use --dawn (Style tab: "Gold accent").
   Dark sections (hero photo, video, CTA) use --dawn-bright
   (Style tab: "Gold accent on dark sections").
   Override any single one in CSS via its class, e.g.:
   .ttx .ttx-em--hero{color:#FF4D00;}
============================================================ */
.ttx .ttx-em{font-style:italic; color:var(--dawn);}
.ttx .ttx-em--hero,
.ttx .ttx-em--cta,
.ttx .ttx-em--video{color:var(--dawn-bright,#E8B14F);}


/* ============================================================
   v4.4 — ASCENT STATS: the numbers climb like the route.
   Staircase baseline, trail-node dots, masked number reveals.
============================================================ */
.ttp .ttp-stats2{
  padding:clamp(60px,8vw,110px) clamp(20px,4vw,48px) clamp(50px,7vw,90px);
}
.ttp .ttp-stats2-inner{max-width:1200px; margin:0 auto;}
.ttp .ttp-ascent{
  display:grid; grid-template-columns:repeat(5,1fr);
  align-items:end; gap:clamp(14px,2vw,28px);
}
.ttp .ttp-stats2 .ttp-stat{
  border-left:0!important; padding-left:0!important;
  margin-bottom:calc((var(--i,1) - 1) * clamp(16px,3vw,46px));
  border-bottom:1px dashed rgba(255,77,0,.4);
  padding-bottom:16px;
  will-change:transform;
}
.ttp .ttp-stat-dot{
  width:9px; height:9px; border-radius:50%;
  background:var(--ember); display:block; margin-bottom:16px;
  box-shadow:0 0 0 5px rgba(255,77,0,.14);
}
.ttp .ttp-stats2 .ttp-stat-mask{display:block; overflow:hidden; padding:0; margin:0;}
.ttp .ttp-stats2 .ttp-stat b{
  display:block; font-family:var(--f-display); font-weight:300;
  font-size:clamp(40px,5.4vw,84px); line-height:1.02; letter-spacing:-.01em;
  color:var(--parchment)!important; white-space:nowrap; will-change:transform;
}
.ttp .ttp-stats2 .ttp-stat-label{
  display:block; margin-top:12px;
  font-family:var(--f-mono); font-size:10.5px; letter-spacing:.16em; text-transform:uppercase;
  color:var(--parchment-dim);
}
.ttp .ttp-prac2{
  margin-top:clamp(30px,4vw,48px);
  display:flex; flex-wrap:wrap; gap:6px 0;
}
@media (max-width:860px){
  .ttp .ttp-ascent{grid-template-columns:repeat(2,1fr); align-items:start;}
  .ttp .ttp-stats2 .ttp-stat{margin-bottom:0;}
}

/* ============================================================
   Product v5.0 — glance grid + sticky crossfade itinerary
============================================================ */

/* ---- glance: structured, at-a-glance, like the original ---- */
.ttp .ttp-glance{
  background:var(--glancebg,#CBD4C5);
  padding:clamp(50px,6.5vw,90px) clamp(20px,4vw,48px);
}
.ttp .ttp-glance-inner{max-width:1200px; margin:0 auto;}
.ttp .ttp-glance-head{
  display:flex; align-items:baseline; justify-content:space-between; gap:20px; flex-wrap:wrap;
  margin-bottom:clamp(20px,2.6vw,30px);
}
.ttp .ttp-glance-head h2{
  font-size:clamp(24px,3vw,38px); color:var(--glancetext,#3E4F35);
  font-weight:400; text-transform:uppercase; letter-spacing:.02em;
}
.ttp .ttp-glance-price{
  font-family:var(--f-mono); font-weight:500; color:var(--ember);
  font-size:clamp(20px,2.4vw,30px); letter-spacing:.02em;
}
.ttp .ttp-glance-price b{font-weight:700;}
.ttp .ttp-glance-row{
  display:grid; grid-template-columns:repeat(5,1fr); gap:8px;
  margin-bottom:14px;
}
.ttp .ttp-glance-grid{
  display:grid; grid-template-columns:repeat(2,1fr); gap:8px 14px;
}
.ttp .ttp-glance-tile{
  display:flex; align-items:center; gap:16px;
  background:var(--glancetile,#BDC9B4); border-radius:3px;
  padding:16px 18px; min-height:74px;
}
.ttp .ttp-glance-ico{
  flex:0 0 auto; width:34px; text-align:center;
  font-size:26px; line-height:1; color:var(--glancetext,#3E4F35);
}
.ttp .ttp-glance-ico svg{width:28px; height:28px; fill:currentColor;}
.ttp .ttp-glance-txt{display:flex; flex-direction:column; gap:3px; min-width:0;}
.ttp .ttp-glance-label{
  font-family:var(--f-mono); font-size:10px; letter-spacing:.18em; text-transform:uppercase;
  color:var(--glancetext,#3E4F35); opacity:.75;
}
.ttp .ttp-glance-value{
  font-family:var(--f-body); font-weight:700; font-size:15px; letter-spacing:.04em;
  text-transform:uppercase; color:var(--glancetext,#3E4F35);
}
.ttp .ttp-glance-stat.is-accent .ttp-glance-ico,
.ttp .ttp-glance-stat.is-accent .ttp-glance-value{color:var(--ember);}
.ttp .ttp-glance-line{
  display:block; font-family:var(--f-body); font-weight:600; font-size:13.5px;
  letter-spacing:.05em; text-transform:uppercase; color:var(--glancetext,#3E4F35);
  line-height:1.5;
}
.ttp .ttp-glance-link{color:var(--ember); transition:opacity .25s ease;}
.ttp .ttp-glance-link:hover{opacity:.75;}

/* ---- sticky itinerary ---- */
.ttp .ttp-itin{
  max-width:1200px; margin:0 auto;
  padding:clamp(60px,8vw,110px) clamp(20px,4vw,48px) clamp(20px,3vw,40px);
}
.ttp .ttp-iday{margin-bottom:clamp(60px,8vw,110px);}
.ttp .ttp-iday-banner{
  display:flex; align-items:center; justify-content:center; gap:clamp(24px,4vw,56px);
  background:var(--daybana,#54742F); color:#fff;
  border-radius:4px; padding:15px clamp(18px,2.6vw,28px);
  margin-bottom:clamp(24px,3.4vw,40px);
  box-shadow:0 12px 34px rgba(44,44,44,.14);
  flex-wrap:wrap;
}
.ttp .ttp-iday.is-even .ttp-iday-banner{background:var(--daybanb,#FF4D00);}
.ttp .ttp-iday-banner h3{
  font-family:var(--f-body); font-weight:700; font-size:clamp(18px,2vw,23px);
  letter-spacing:.02em; color:#fff;
}
.ttp .ttp-iday-fact{
  display:inline-flex; align-items:center; gap:9px;
  font-family:var(--f-body); font-weight:600; font-size:clamp(14px,1.6vw,17px);
  letter-spacing:.04em; color:#fff;
}
.ttp .ttp-iday-fact svg{width:22px; height:22px; opacity:.95;}
.ttp .ttp-iday-grid{
  display:grid; grid-template-columns:1fr 1fr; gap:clamp(26px,4.5vw,70px);
  align-items:start;
}
.ttp .ttp-iday.is-even .ttp-iday-media{order:2;}
.ttp .ttp-iday-media{min-width:0;}
.ttp .ttp-iday-stick{
  position:sticky; top:90px;
  height:min(74vh,620px); border-radius:6px; overflow:hidden;
  box-shadow:0 26px 65px rgba(44,44,44,.2);
  background:#111;
}
.ttp .ttp-iday-stick img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  opacity:0; will-change:transform,opacity;
}
.ttp .ttp-iday-stick img.is-on{opacity:1;}
.ttp .ttp-iday-count{
  position:absolute; right:14px; bottom:12px; z-index:2;
  font-family:var(--f-mono); font-size:11px; letter-spacing:.18em;
  color:rgba(255,255,255,.85); background:rgba(0,0,0,.4); backdrop-filter:blur(6px);
  padding:7px 11px; border-radius:2px;
}
.ttp .ttp-iday-count b{font-size:14px; color:#fff; font-weight:500;}
.ttp .ttp-iday-text{
  min-width:0; font-size:16.5px; line-height:1.85; color:var(--parchment-dim);
  padding-top:6px;
}
.ttp .ttp-iday-text p{margin:0 0 1.5em;}
.ttp .ttp-iday-text p:first-child::first-letter{
  font-family:var(--f-display); font-size:3.1em; line-height:.82;
  float:left; padding:6px 10px 0 0; color:var(--ember);
}

/* ---- booking as its own centered section ---- */
.ttp .ttp-booksec{
  padding:clamp(20px,3vw,40px) clamp(20px,4vw,48px) clamp(70px,9vw,110px);
}
.ttp .ttp-booksec .ttp-book-card{
  max-width:640px; margin:0 auto;
  border:1px solid var(--hairline); border-radius:6px;
  padding:clamp(26px,3.4vw,40px);
  box-shadow:0 22px 60px rgba(44,44,44,.12);
  display:flex; flex-direction:column; gap:16px;
  text-align:center;
}
.ttp .ttp-booksec .ttp-book-price b{
  font-family:var(--f-mono); font-weight:500; font-size:clamp(34px,3.6vw,46px);
  color:var(--ember); line-height:1;
}
.ttp .ttp-booksec .ttp-book-price span{
  font-family:var(--f-mono); font-size:11px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--parchment-dim); display:block; margin-top:6px;
}
.ttp .ttp-booksec .ttp-book-card p{color:var(--parchment-dim); font-size:14px;}

@media (max-width:900px){
  .ttp .ttp-glance-row{grid-template-columns:repeat(2,1fr);}
  .ttp .ttp-glance-grid{grid-template-columns:1fr;}
  .ttp .ttp-iday-grid{grid-template-columns:1fr;}
  .ttp .ttp-iday.is-even .ttp-iday-media{order:0;}
  .ttp .ttp-iday-stick{position:relative; top:0; height:56vw; max-height:440px;}
}
@media (prefers-reduced-motion:reduce){
  .ttp .ttp-iday-stick img{transition:none;}
}

/* ============================================================
   TMT DAY ITINERARY (.tdi) — STRICT ARCHITECTURE
   Sticky column pattern: flex parent MUST be align-items:
   flex-start so the sticky column keeps its own height and
   has room to travel. Image column carries its own
   aspect-ratio so it can never collapse.
============================================================ */
.tdi{
  --tdi-charcoal:#2C2C2C;
  --tdi-sage:#B2C1A9;
  --tdi-text:rgba(44,44,44,.72);
  --tdi-dropcap:#2C2C2C;
  --f-tdi-display:'Fraunces',Georgia,serif;
  --f-tdi-body:'Inter',-apple-system,sans-serif;
}
.tdi, .tdi *, .tdi *::before, .tdi *::after{margin:0; padding:0; box-sizing:border-box;}
.tdi{font-family:var(--f-tdi-body); -webkit-font-smoothing:antialiased;}
.tdi img{display:block; max-width:100%;}

/* ---- day section ---- */
.tdi .day-section{position:relative;}

/* ---- sticky push banner — STRICTLY charcoal or sage ---- */
.tdi .day-banner{
  position:sticky; top:0; z-index:10;
  display:flex; align-items:center; justify-content:center;
  gap:30px;
  padding:15px clamp(18px,2.6vw,28px);
  box-shadow:0 8px 26px rgba(44,44,44,.18);
}
.tdi .day-banner--charcoal{background:var(--tdi-charcoal,#2C2C2C); color:#F6F4EF;}
.tdi .day-banner--sage{background:var(--tdi-sage,#B2C1A9); color:#2C2C2C;}
.tdi .day-banner--green{background:var(--tdi-green,#426916); color:#FFFFFF;}
.tdi .day-banner--orange{background:var(--tdi-orange,#FF4D00); color:#FFFFFF;}
.tdi .day-banner h3{
  font-family:var(--f-tdi-body); font-weight:700;
  font-size:clamp(18px,2vw,23px); letter-spacing:.02em; color:inherit;
  line-height:1; margin:0; padding:0;
}
.tdi .tdi-fact{
  display:inline-flex; align-items:center; gap:9px;
  font-weight:600; font-size:clamp(14px,1.6vw,17px);
  letter-spacing:.04em; color:inherit; line-height:1;
}
.tdi .tdi-fact svg{width:22px; height:22px; opacity:.95;}

/* ---- CRITICAL: flex parent for the sticky column ----
   align-items:flex-start is mandatory — stretch would give the
   image column the full row height and sticky would never move. */
.tdi{width:100%; max-width:100%;}
.tdi .day-content{
  display:flex;
  align-items:flex-start;      /* CRITICAL — stretch kills sticky */
  justify-content:space-between;
  position:relative;
  width:100%; max-width:100%;
  padding:0 0 clamp(50px,7vw,100px);
}

/* ---- alternating 50/50: even days swap sides ---- */
.tdi .day-section:nth-child(even) .day-content{flex-direction:row-reverse;}

/* ---- Column A: the sticky image column — cannot collapse ---- */
.tdi .image-column{
  width:50%;
  position:sticky;
  top:50vh;                       /* viewport center anchor */
  transform:translateY(-50%);     /* true vertical centering */
  aspect-ratio:4/3;               /* collapse-proof landscape */
  overflow:hidden;
  border-radius:0;                /* full-bleed cinematic edge */
  background:#101010;
  box-shadow:0 26px 65px rgba(44,44,44,.22);
  z-index:1;                      /* always beneath the z10 banners */
}

/* ---- stacked crossfade images ---- */
.tdi .image-column img{
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:100%;
  object-fit:cover;
  opacity:0;
  will-change:transform,opacity;
}
.tdi .image-column img.is-on{opacity:1;}
.tdi .tdi-count{
  position:absolute; right:14px; bottom:12px; z-index:2;
  font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:.18em;
  color:rgba(255,255,255,.85); background:rgba(0,0,0,.42); backdrop-filter:blur(6px);
  padding:7px 11px; border-radius:2px;
}
.tdi .tdi-count b{font-size:14px; color:#fff; font-weight:500;}

/* ---- Column B: scrolling long-form text ---- */
.tdi .text-column{
  width:50%;
  padding:clamp(48px,7vw,120px) clamp(30px,5.5vw,100px);
  font-size:18px; line-height:1.8; color:var(--tdi-text);
}
.tdi .text-column p{margin:0 0 1.5em;}
.tdi .text-column p:first-of-type::first-letter{
  font-family:var(--f-tdi-display);
  font-size:3.4em; line-height:.8; font-weight:400;
  float:left; padding:8px 12px 0 0;
  color:var(--tdi-dropcap,#2C2C2C);
}

/* ---- responsive: stack, release sticky ---- */
@media (max-width:900px){
  .tdi .day-content,
  .tdi .day-section:nth-child(even) .day-content{flex-direction:column;}
  .tdi .image-column{position:relative; top:0; transform:none; width:100%;}
  .tdi .text-column{width:100%; padding:26px 0 0;}
  .tdi .text-column{font-size:16.5px;}
}
@media (prefers-reduced-motion:reduce){
  .tdi .image-column img{transition:none;}
}

/* ============================================================
   TMT ITINERARY (MODULAR) — .tmt-itinerary-wrapper
   Nav-aware sticky (65px fixed nav), remaining-viewport
   centered images, full-width cinematic, strictly scoped.
============================================================ */
.tmt-itinerary-wrapper{
  --tmt-nav:65px;
  --tmt-imgoff:32px;
  --tmt-green:#426916;
  --tmt-orange:#FF4D00;
  --tmt-text:rgba(44,44,44,.72);
  --tmt-dropcap:#2C2C2C;
  --tmt-gold:#C9862B;
  --f-tmt-display:'Fraunces',Georgia,serif;
  --f-tmt-body:'Inter',-apple-system,sans-serif;
  width:100%; max-width:100%;
  font-family:var(--f-tmt-body); -webkit-font-smoothing:antialiased;
}
.tmt-itinerary-wrapper *, .tmt-itinerary-wrapper *::before, .tmt-itinerary-wrapper *::after{
  margin:0; padding:0; box-sizing:border-box;
}
.tmt-itinerary-wrapper img{display:block; max-width:100%;}

.tmt-itinerary-wrapper .day-section{position:relative;}

/* ---- sticky banner BELOW the 65px fixed nav ---- */
.tmt-itinerary-wrapper .day-banner{
  position:sticky; top:var(--tmt-nav,65px); z-index:10;
  display:flex; align-items:center; justify-content:center; gap:30px;
  padding:15px clamp(18px,2.6vw,28px);
  box-shadow:0 8px 26px rgba(44,44,44,.18);
}
.tmt-itinerary-wrapper .day-banner--green{background:var(--tmt-green,#426916); color:#FFFFFF;}
.tmt-itinerary-wrapper .day-banner--orange{background:var(--tmt-orange,#FF4D00); color:#FFFFFF;}
.tmt-itinerary-wrapper .day-banner h3{
  font-family:var(--f-tmt-body); font-weight:700;
  font-size:clamp(18px,2vw,23px); letter-spacing:.02em;
  color:inherit; line-height:1; margin:0; padding:0;
}
.tmt-itinerary-wrapper .tmt-fact{
  display:inline-flex; align-items:center; gap:9px;
  font-weight:600; font-size:clamp(14px,1.6vw,17px);
  letter-spacing:.04em; color:inherit; line-height:1;
}
.tmt-itinerary-wrapper .tmt-fact svg{width:22px; height:22px; opacity:.95;}

/* ---- flex parent: flex-start is mandatory for sticky ---- */
.tmt-itinerary-wrapper .day-content{
  display:flex;
  align-items:flex-start;      /* text column keeps intrinsic height */
  justify-content:space-between;
  position:relative;
  width:100%; max-width:100%;
  min-height:calc(100vh - var(--tmt-nav,65px));  /* stage always fits */
  padding:0 clamp(10px,2vw,32px) clamp(50px,7vw,100px);
}
.tmt-itinerary-wrapper .day-section:nth-child(even) .day-content{flex-direction:row-reverse;}

/* ---- image column: OVERLAP-PROOF centering.
   The column stretches the full height of its day (align-self:
   stretch). Inside it, a sticky stage exactly as tall as the
   viewport below the nav; the framed image is flex-centered
   INSIDE the stage. Because the stage is in normal flow and
   never transformed, it clamps perfectly inside its own
   section — it cannot bleed over the banner above or the day
   below, and it stays pinned until the section truly ends. ---- */
.tmt-itinerary-wrapper .image-column{
  width:50%;
  align-self:stretch;          /* full-height rail for the sticky stage */
  position:relative;
  z-index:1;                   /* under the z10 banners */
}
.tmt-itinerary-wrapper .image-stick{
  position:sticky;
  top:var(--tmt-nav,65px);
  height:calc(100vh - var(--tmt-nav,65px));
  display:flex; align-items:center; justify-content:center;
  padding:clamp(18px,2.6vw,40px);
}
/* editorial frame: rounded art, offset gold hairline behind,
   ember corner tick — mirrored on alternating days */
.tmt-itinerary-wrapper .image-frame{
  position:relative;
  width:100%; max-width:680px;
  aspect-ratio:4/3;
}
.tmt-itinerary-wrapper .image-frame::before{
  content:""; position:absolute; z-index:0;
  inset:20px -16px -16px 20px;
  border:1px solid var(--tmt-gold,#C9862B);
  border-radius:12px; opacity:.55;
}
.tmt-itinerary-wrapper .image-frame::after{
  content:""; position:absolute; z-index:2; pointer-events:none;
  top:-13px; left:-13px; width:56px; height:56px;
  border-top:2px solid var(--tmt-orange,#FF4D00);
  border-left:2px solid var(--tmt-orange,#FF4D00);
  border-radius:12px 0 0 0;
}
.tmt-itinerary-wrapper .day-section:nth-child(even) .image-frame::before{
  inset:20px 20px -16px -16px;
}
.tmt-itinerary-wrapper .day-section:nth-child(even) .image-frame::after{
  left:auto; right:-13px;
  border-left:none; border-right:2px solid var(--tmt-orange,#FF4D00);
  border-radius:0 12px 0 0;
}
.tmt-itinerary-wrapper .image-clip{
  position:absolute; inset:0; z-index:1;
  border-radius:12px; overflow:hidden;
  background:#101010;
  box-shadow:0 30px 70px rgba(44,44,44,.26);
}
.tmt-itinerary-wrapper .image-clip img{
  position:absolute; top:0; left:0;
  width:100%; height:100%; object-fit:cover;
  opacity:0; will-change:transform,opacity;
}
.tmt-itinerary-wrapper .image-clip img.is-on{opacity:1;}
.tmt-itinerary-wrapper .tmt-count{
  position:absolute; right:14px; bottom:12px; z-index:2;
  font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:.18em;
  color:rgba(255,255,255,.85); background:rgba(0,0,0,.42); backdrop-filter:blur(6px);
  padding:7px 11px; border-radius:2px;
}
.tmt-itinerary-wrapper .tmt-count b{font-size:14px; color:#fff; font-weight:500;}

/* ---- text column ---- */
.tmt-itinerary-wrapper .text-column{
  width:50%;
  padding:clamp(48px,7vw,120px) clamp(30px,5.5vw,100px);
  font-size:18px; line-height:1.8; color:var(--tmt-text);
}
.tmt-itinerary-wrapper .text-column p{margin:0 0 1.5em;}
.tmt-itinerary-wrapper .text-column p:first-of-type::first-letter{
  font-family:var(--f-tmt-display);
  font-size:3.4em; line-height:.8; font-weight:400;
  float:left; padding:8px 12px 0 0;
  color:var(--tmt-dropcap,#2C2C2C);
}

/* ---- responsive ---- */
@media (max-width:900px){
  .tmt-itinerary-wrapper .day-content,
  .tmt-itinerary-wrapper .day-section:nth-child(even) .day-content{flex-direction:column;}
  .tmt-itinerary-wrapper .image-column{width:100%; align-self:auto;}
  .tmt-itinerary-wrapper .image-stick{position:relative; top:0; height:auto; padding:14px 6px 4px;}
  .tmt-itinerary-wrapper .day-content{min-height:0;}
  .tmt-itinerary-wrapper .text-column{width:100%; padding:26px clamp(20px,5vw,40px) 0;}
  .tmt-itinerary-wrapper .text-column{font-size:16.5px;}
}
@media (prefers-reduced-motion:reduce){
  .tmt-itinerary-wrapper .image-column img{transition:none;}
}

/* ============================================================
   TMT BOOKING TICKET — .tmt-booking-wrapper
   Dark boarding-pass card: perforated divider, ember glow,
   count-up price. The page's moment of drama.
============================================================ */
.tmt-booking-wrapper{
  --tmtb-bg:transparent; --tmtb-card:#2C2C2C; --tmtb-accent:#FF4D00;
  --tmtb-gold:#C9862B; --tmtb-btntext:#FFFFFF; --tmtb-text:#F6F4EF;
  --tmtb-page:#F6F4EF;
  background:var(--tmtb-bg);
  padding:clamp(60px,8vw,110px) clamp(20px,4vw,48px);
  font-family:'Inter',-apple-system,sans-serif; -webkit-font-smoothing:antialiased;
}
.tmt-booking-wrapper *, .tmt-booking-wrapper *::before, .tmt-booking-wrapper *::after{margin:0; padding:0; box-sizing:border-box;}
.tmt-booking-wrapper .tmtb-card{
  position:relative; overflow:hidden;
  max-width:880px; margin:0 auto;
  background:var(--tmtb-card);
  border-radius:14px;
  box-shadow:0 40px 90px rgba(44,44,44,.35);
  display:grid; grid-template-columns:1.5fr auto 1fr;
}
/* ember + gold ambience inside the dark card */
.tmt-booking-wrapper .tmtb-glow{
  position:absolute; inset:0; pointer-events:none;
  background:
    radial-gradient(520px 320px at 12% -10%, rgba(255,77,0,.16), transparent 62%),
    radial-gradient(460px 300px at 105% 115%, rgba(201,134,43,.14), transparent 60%);
}
.tmt-booking-wrapper .tmtb-main{
  position:relative; z-index:1;
  padding:clamp(30px,4vw,52px);
  display:flex; flex-direction:column; gap:18px;
}
.tmt-booking-wrapper .tmtb-kicker{
  display:flex; align-items:center; gap:12px;
  font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:.28em; text-transform:uppercase;
  color:var(--tmtb-accent);
}
.tmt-booking-wrapper .tmtb-kicker::before{content:""; width:28px; height:1px; background:var(--tmtb-accent);}
.tmt-booking-wrapper .tmtb-price b{
  font-family:'IBM Plex Mono',monospace; font-weight:500;
  font-size:clamp(48px,6vw,72px); color:var(--tmtb-accent); line-height:1; display:block;
  letter-spacing:.01em;
}
.tmt-booking-wrapper .tmtb-price span{
  display:block; margin-top:9px;
  font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:.18em; text-transform:uppercase;
  color:color-mix(in srgb, var(--tmtb-text) 60%, transparent);
}
.tmt-booking-wrapper .tmtb-text{
  color:color-mix(in srgb, var(--tmtb-text) 78%, transparent);
  font-size:14.5px; line-height:1.75; max-width:42ch;
}
.tmt-booking-wrapper .tmtb-deposit{
  margin-top:auto; padding-top:16px;
  border-top:1px solid color-mix(in srgb, var(--tmtb-text) 16%, transparent);
  font-family:'IBM Plex Mono',monospace; font-size:10.5px; letter-spacing:.1em; text-transform:uppercase;
  color:color-mix(in srgb, var(--tmtb-text) 55%, transparent);
}
/* perforated tear line with page-colored notches */
.tmt-booking-wrapper .tmtb-perf{
  position:relative; z-index:1; width:1px;
  background-image:linear-gradient(to bottom, color-mix(in srgb, var(--tmtb-text) 35%, transparent) 45%, transparent 45%);
  background-size:1px 12px;
}
.tmt-booking-wrapper .tmtb-perf::before,
.tmt-booking-wrapper .tmtb-perf::after{
  content:""; position:absolute; left:50%; transform:translateX(-50%);
  width:26px; height:26px; border-radius:50%;
  background:var(--tmtb-page);
  box-shadow:inset 0 3px 8px rgba(0,0,0,.18);
}
.tmt-booking-wrapper .tmtb-perf::before{top:-14px;}
.tmt-booking-wrapper .tmtb-perf::after{bottom:-14px;}
.tmt-booking-wrapper .tmtb-side{
  position:relative; z-index:1;
  padding:clamp(30px,4vw,52px) clamp(24px,3vw,40px);
  display:flex; flex-direction:column; justify-content:center; gap:14px; text-align:center;
}
.tmt-booking-wrapper .tmtb-btn{
  position:relative; overflow:hidden;
  display:block; text-decoration:none; border-radius:3px; cursor:pointer;
  font-family:'IBM Plex Mono',monospace; font-size:12.5px; letter-spacing:.14em; text-transform:uppercase;
  padding:17px 22px; transition:transform .3s ease, box-shadow .3s ease, background .3s ease, border-color .3s ease;
}
.tmt-booking-wrapper .tmtb-btn--solid{background:var(--tmtb-accent); color:var(--tmtb-btntext);}
.tmt-booking-wrapper .tmtb-btn--solid:hover{transform:translateY(-3px); box-shadow:0 14px 40px rgba(255,77,0,.45);}
.tmt-booking-wrapper .tmtb-sheen{
  position:absolute; top:0; bottom:0; left:0; width:46%;
  background:linear-gradient(105deg, transparent, rgba(255,255,255,.35), transparent);
  transform:translateX(-130%); pointer-events:none;
}
.tmt-booking-wrapper .tmtb-btn--ghost{
  border:1px solid color-mix(in srgb, var(--tmtb-text) 32%, transparent);
  color:var(--tmtb-text); background:transparent; font-size:11.5px; padding:15px 20px;
}
.tmt-booking-wrapper .tmtb-btn--ghost:hover{
  background:color-mix(in srgb, var(--tmtb-text) 8%, transparent);
  border-color:color-mix(in srgb, var(--tmtb-text) 55%, transparent);
  transform:translateY(-3px);
}
.tmt-booking-wrapper .tmtb-link{
  text-decoration:none; color:var(--tmtb-gold);
  font-family:'IBM Plex Mono',monospace; font-size:11.5px; letter-spacing:.14em; text-transform:uppercase;
  transition:color .25s ease;
}
.tmt-booking-wrapper .tmtb-link:hover{color:var(--tmtb-accent);}

@media (max-width:760px){
  .tmt-booking-wrapper .tmtb-card{grid-template-columns:1fr;}
  .tmt-booking-wrapper .tmtb-perf{
    width:auto; height:1px;
    background-image:linear-gradient(to right, color-mix(in srgb, var(--tmtb-text) 35%, transparent) 45%, transparent 45%);
    background-size:12px 1px;
  }
  .tmt-booking-wrapper .tmtb-perf::before{top:50%; left:-14px; transform:translateY(-50%);}
  .tmt-booking-wrapper .tmtb-perf::after{top:50%; bottom:auto; left:auto; right:-14px; transform:translateY(-50%);}
  .tmt-booking-wrapper .tmtb-main{text-align:center; align-items:center;}
  .tmt-booking-wrapper .tmtb-deposit{align-self:stretch;}
}

/* ============================================================
   TMT DETAILS SECTION — .tmt-details-wrapper
   One widget · two looks: Open rows / Elevated card
============================================================ */
.tmt-details-wrapper{
  --tmtd-bg:transparent; --tmtd-accent:#FF4D00; --tmtd-em:#C9862B;
  --tmtd-title:#2C2C2C; --tmtd-text:rgba(44,44,44,.7); --tmtd-card:#FFFFFF;
  background:var(--tmtd-bg);
  padding:clamp(60px,8vw,110px) clamp(20px,4vw,48px);
  font-family:'Inter',-apple-system,sans-serif; -webkit-font-smoothing:antialiased;
}
.tmt-details-wrapper *, .tmt-details-wrapper *::before, .tmt-details-wrapper *::after{margin:0; padding:0; box-sizing:border-box;}
.tmt-details-wrapper .tmtd-grid{
  max-width:1200px; margin:0 auto;
  display:grid; grid-template-columns:1fr 1fr; gap:clamp(36px,5vw,80px);
  align-items:start;
}
.tmt-details-wrapper .tmtd-head{position:sticky; top:110px;}
.tmt-details-wrapper .tmtd-kicker{
  display:flex; align-items:center; gap:12px; margin-bottom:16px;
  font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:.28em; text-transform:uppercase;
  color:var(--tmtd-accent);
}
.tmt-details-wrapper .tmtd-kicker::before{content:""; width:28px; height:1px; background:var(--tmtd-accent);}
.tmt-details-wrapper .tmtd-title{
  font-family:'Fraunces',Georgia,serif; font-weight:300;
  font-size:clamp(32px,4.4vw,54px); line-height:1.1; color:var(--tmtd-title);
}
.tmt-details-wrapper .tmtd-em{font-style:italic; font-weight:400; color:var(--tmtd-em);}
.tmt-details-wrapper .tmtd-text{color:var(--tmtd-text); margin-top:16px; max-width:40ch; font-size:15px; line-height:1.7;}
.tmt-details-wrapper .tmtd-list{list-style:none;}
.tmt-details-wrapper .tmtd-list li{
  display:flex; align-items:flex-start; gap:18px;
  color:var(--tmtd-title); font-size:15.5px; line-height:1.6;
}
.tmt-details-wrapper .tmtd-ico{
  font-style:normal; flex:0 0 auto; color:var(--tmtd-accent);
  display:inline-flex; align-items:center; justify-content:center;
}
.tmt-details-wrapper .tmtd-ico svg{width:1em; height:1em; fill:currentColor;}
/* — Open rows (All Inclusive) — */
.tmt-details-wrapper.is-rows .tmtd-list li{
  padding:18px 4px; border-bottom:1px solid rgba(44,44,44,.13);
  transition:padding-left .35s cubic-bezier(.22,1,.36,1);
}
.tmt-details-wrapper.is-rows .tmtd-list li:first-child{border-top:1px solid rgba(44,44,44,.13);}
.tmt-details-wrapper.is-rows .tmtd-list li:hover{padding-left:14px;}
.tmt-details-wrapper.is-rows .tmtd-ico{
  width:24px; height:24px; border-radius:50%;
  background:var(--tmtd-accent); color:#fff; font-size:11px;
}
/* — Elevated card (Pack Light) — */
.tmt-details-wrapper.is-card .tmtd-card{
  background:var(--tmtd-card); border:1px solid rgba(44,44,44,.12); border-radius:6px;
  box-shadow:0 24px 60px rgba(44,44,44,.12);
  padding:clamp(26px,3.4vw,44px);
}
.tmt-details-wrapper.is-card .tmtd-card.has-two{
  display:grid; grid-template-columns:1fr 1px 1fr; gap:clamp(22px,3vw,44px);
}
.tmt-details-wrapper.is-card .tmtd-div{background:rgba(44,44,44,.12);}
.tmt-details-wrapper .tmtd-colhead{
  font-family:'Fraunces',Georgia,serif; font-weight:400; font-size:21px; color:var(--tmtd-title);
  display:flex; align-items:baseline; justify-content:space-between; gap:12px;
  padding-bottom:14px; margin-bottom:6px;
}
.tmt-details-wrapper .tmtd-colhead span{
  font-family:'IBM Plex Mono',monospace; font-size:10.5px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--tmtd-accent);
}
.tmt-details-wrapper.is-card .tmtd-list li{
  padding:11px 0; border-top:1px solid rgba(44,44,44,.08);
  font-size:14.5px; color:var(--tmtd-text); gap:14px; align-items:center;
}
.tmt-details-wrapper.is-card .tmtd-ico{font-size:13px;}

/* ============================================================
   TMT NIGHTS GRID — .tmt-nights-wrapper
   2×2 cards with the slanted three-slice image header
============================================================ */
.tmt-nights-wrapper{
  --tmtn-bg:transparent; --tmtn-accent:#FF4D00; --tmtn-em:#C9862B;
  --tmtn-title:#2C2C2C; --tmtn-card:#FFFFFF; --tmtn-text:rgba(44,44,44,.7);
  background:var(--tmtn-bg);
  padding:clamp(60px,8vw,110px) clamp(20px,4vw,48px);
  font-family:'Inter',-apple-system,sans-serif; -webkit-font-smoothing:antialiased;
}
.tmt-nights-wrapper *, .tmt-nights-wrapper *::before, .tmt-nights-wrapper *::after{margin:0; padding:0; box-sizing:border-box;}
.tmt-nights-wrapper .tmtn-inner{max-width:1200px; margin:0 auto;}
.tmt-nights-wrapper .tmtn-head{margin-bottom:clamp(30px,4vw,48px);}
.tmt-nights-wrapper .tmtn-kicker{
  display:flex; align-items:center; gap:12px; margin-bottom:16px;
  font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:.28em; text-transform:uppercase;
  color:var(--tmtn-accent);
}
.tmt-nights-wrapper .tmtn-kicker::before{content:""; width:28px; height:1px; background:var(--tmtn-accent);}
.tmt-nights-wrapper .tmtn-title{
  font-family:'Fraunces',Georgia,serif; font-weight:300;
  font-size:clamp(32px,4.4vw,54px); line-height:1.1; color:var(--tmtn-title);
}
.tmt-nights-wrapper .tmtn-em{font-style:italic; font-weight:400; color:var(--tmtn-em);}
.tmt-nights-wrapper .tmtn-grid{
  display:grid; grid-template-columns:repeat(2,1fr);
  gap:clamp(18px,2.6vw,32px);
}
.tmt-nights-wrapper .tmtn-card{
  background:var(--tmtn-card); border:1px solid rgba(44,44,44,.12); border-radius:6px;
  overflow:hidden; box-shadow:0 12px 34px rgba(44,44,44,.08);
  transition:box-shadow .4s ease, transform .4s ease;
}
.tmt-nights-wrapper .tmtn-card:hover{box-shadow:0 24px 60px rgba(44,44,44,.16); transform:translateY(-4px);}
/* — the collage header: the site's own 3-photo image, shown whole — */
.tmt-nights-wrapper .tmtn-media{background:#101010;}
.tmt-nights-wrapper .tmtn-media img{width:100%; height:auto; display:block;}
.tmt-nights-wrapper .tmtn-body{padding:22px 24px 26px;}
/* — collapsible description — */
.tmt-nights-wrapper .tmtn-desc{
  display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical;
  overflow:hidden;
}
.tmt-nights-wrapper .tmtn-desc.is-open{
  display:block; -webkit-line-clamp:unset; overflow:visible;
}
.tmt-nights-wrapper .tmtn-more{
  margin-top:12px; padding:0; border:none; background:none; cursor:pointer;
  display:inline-flex; align-items:center; gap:8px;
  font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:.16em; text-transform:uppercase;
  color:var(--tmtn-accent);
  transition:opacity .25s ease;
}
.tmt-nights-wrapper .tmtn-more::after{
  content:"▾"; font-size:10px; transition:transform .35s ease;
}
.tmt-nights-wrapper .tmtn-more.is-open::after{transform:rotate(180deg);}
.tmt-nights-wrapper .tmtn-more:hover{opacity:.7;}
.tmt-nights-wrapper .tmtn-cardtitle{
  font-family:'Fraunces',Georgia,serif; font-weight:400; font-size:20px; color:var(--tmtn-title);
}
.tmt-nights-wrapper .tmtn-body p{color:var(--tmtn-text); font-size:14px; line-height:1.7; margin-top:8px;}

@media (max-width:860px){
  .tmt-details-wrapper .tmtd-grid{grid-template-columns:1fr;}
  .tmt-details-wrapper .tmtd-head{position:static;}
  .tmt-details-wrapper.is-card .tmtd-card.has-two{grid-template-columns:1fr;}
  .tmt-details-wrapper.is-card .tmtd-div{display:none;}
  .tmt-nights-wrapper .tmtn-grid{grid-template-columns:1fr;}
}

/* ============================================================
   TMT HERO + TRIP DETAILS — .tmt-hero-wrapper
============================================================ */
.tmt-hero-wrapper{
  --tmth-bg:transparent; --tmth-title:#2C2C2C; --tmth-em:#C9862B;
  --tmth-accent:#FF4D00; --tmth-btntext:#FFFFFF; --tmth-text:rgba(44,44,44,.72);
  --tmtg-bg:#CBD4C5; --tmtg-tile:#BDC9B4; --tmtg-text:#3E4F35;
  font-family:'Inter',-apple-system,sans-serif; -webkit-font-smoothing:antialiased;
}
.tmt-hero-wrapper *, .tmt-hero-wrapper *::before, .tmt-hero-wrapper *::after{margin:0; padding:0; box-sizing:border-box;}
.tmt-hero-wrapper img{display:block; max-width:100%;}

/* ---- hero ---- */
.tmt-hero-wrapper .tmth-hero{
  background:var(--tmth-bg);
  padding:clamp(60px,8vw,120px) clamp(20px,4vw,48px) clamp(50px,6vw,90px);
}
.tmt-hero-wrapper .tmth-grid{
  max-width:1200px; margin:0 auto;
  display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(32px,5vw,72px);
  align-items:center;
}
.tmt-hero-wrapper .tmth-kicker{
  display:flex; align-items:center; gap:12px; margin-bottom:20px;
  font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:.28em; text-transform:uppercase;
  color:var(--tmth-accent);
}
.tmt-hero-wrapper .tmth-kicker::before{content:""; width:28px; height:1px; background:var(--tmth-accent);}
.tmt-hero-wrapper .tmth-title{
  font-family:'Fraunces',Georgia,serif; font-weight:300;
  font-size:clamp(44px,6.4vw,84px); line-height:1.02; color:var(--tmth-title);
  margin-bottom:22px;
}
.tmt-hero-wrapper .tmth-em{font-style:italic; font-weight:400; color:var(--tmth-em);}
.tmt-hero-wrapper .tmth-intro{
  color:var(--tmth-text); font-size:16px; line-height:1.75; max-width:54ch; margin-bottom:30px;
}
.tmt-hero-wrapper .tmth-actions{display:flex; flex-wrap:wrap; gap:14px;}
.tmt-hero-wrapper .tmth-btn{
  display:inline-block; text-decoration:none; border-radius:2px;
  font-family:'IBM Plex Mono',monospace; font-size:12.5px; letter-spacing:.14em; text-transform:uppercase;
  padding:16px 28px; transition:transform .3s ease, box-shadow .3s ease, background .3s ease, color .3s ease;
}
.tmt-hero-wrapper .tmth-btn--solid{background:var(--tmth-accent); color:var(--tmth-btntext);}
.tmt-hero-wrapper .tmth-btn--solid:hover{transform:translateY(-3px); box-shadow:0 12px 36px rgba(255,77,0,.32);}
.tmt-hero-wrapper .tmth-btn--ghost{border:1px solid rgba(44,44,44,.28); color:var(--tmth-title);}
.tmt-hero-wrapper .tmth-btn--ghost:hover{background:rgba(44,44,44,.05); transform:translateY(-3px);}
.tmt-hero-wrapper .tmth-media{position:relative;}
.tmt-hero-wrapper .tmth-media img{
  width:100%; height:clamp(340px,46vw,560px); object-fit:cover; border-radius:6px;
  box-shadow:0 30px 70px rgba(44,44,44,.25);
}
.tmt-hero-wrapper .tmth-frame{
  position:absolute; inset:-14px 14px 14px -14px;
  border:1px solid var(--tmth-em); border-radius:6px; opacity:.55; pointer-events:none;
}
.tmt-hero-wrapper .tmth-price{
  position:absolute; right:-12px; bottom:-16px;
  background:var(--tmth-tagbg,#fff);
  border:1px solid var(--tmth-tagborder,rgba(44,44,44,.12)); border-radius:4px;
  box-shadow:0 18px 44px rgba(44,44,44,.2);
  padding:14px 20px; text-align:center;
}
.tmt-hero-wrapper .tmth-price b{
  display:block; font-family:'IBM Plex Mono',monospace; font-weight:500;
  font-size:24px; color:var(--tmth-tagprice,var(--tmth-accent)); line-height:1;
}
.tmt-hero-wrapper .tmth-price span{
  display:block; margin-top:5px;
  font-family:'IBM Plex Mono',monospace; font-size:9.5px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--tmth-tagsub,rgba(44,44,44,.55));
}

/* ---- trip details / characteristics ---- */
.tmt-hero-wrapper .tmtg-glance{
  background:var(--tmtg-bg);
  padding:clamp(50px,6.5vw,90px) clamp(20px,4vw,48px);
}
.tmt-hero-wrapper .tmtg-inner{max-width:1200px; margin:0 auto;}
.tmt-hero-wrapper .tmtg-head{
  display:flex; align-items:baseline; justify-content:space-between; gap:20px; flex-wrap:wrap;
  margin-bottom:clamp(20px,2.6vw,30px);
}
.tmt-hero-wrapper .tmtg-head h2{
  font-family:'Inter',sans-serif; font-size:clamp(24px,3vw,38px); color:var(--tmtg-text);
  font-weight:400; text-transform:uppercase; letter-spacing:.02em;
}
.tmt-hero-wrapper .tmtg-price{
  font-family:'IBM Plex Mono',monospace; font-weight:500; color:var(--tmth-accent);
  font-size:clamp(20px,2.4vw,30px); letter-spacing:.02em;
}
.tmt-hero-wrapper .tmtg-price b{font-weight:700;}
.tmt-hero-wrapper .tmtg-row{display:grid; grid-template-columns:repeat(5,1fr); gap:8px; margin-bottom:14px;}
.tmt-hero-wrapper .tmtg-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:8px 14px;}
.tmt-hero-wrapper .tmtg-tile{
  display:flex; align-items:center; gap:16px;
  background:var(--tmtg-tile); border-radius:3px;
  padding:16px 18px; min-height:74px;
}
.tmt-hero-wrapper .tmtg-ico{
  flex:0 0 auto; width:34px; text-align:center;
  font-size:26px; line-height:1; color:var(--tmtg-text);
  display:inline-flex; align-items:center; justify-content:center;
}
.tmt-hero-wrapper .tmtg-ico svg{width:28px; height:28px; fill:currentColor;}
.tmt-hero-wrapper .tmtg-txt{display:flex; flex-direction:column; gap:3px; min-width:0;}
.tmt-hero-wrapper .tmtg-label{
  font-family:'IBM Plex Mono',monospace; font-size:10px; letter-spacing:.18em; text-transform:uppercase;
  color:var(--tmtg-text); opacity:.75;
}
.tmt-hero-wrapper .tmtg-value{
  font-weight:700; font-size:15px; letter-spacing:.04em; text-transform:uppercase; color:var(--tmtg-text);
}
.tmt-hero-wrapper .tmtg-stat.is-accent .tmtg-ico,
.tmt-hero-wrapper .tmtg-stat.is-accent .tmtg-value{color:var(--tmth-accent);}
.tmt-hero-wrapper .tmtg-line{
  display:block; font-weight:600; font-size:13.5px; letter-spacing:.05em; text-transform:uppercase;
  color:var(--tmtg-text); line-height:1.5; text-decoration:none;
}
.tmt-hero-wrapper .tmtg-link{color:var(--tmth-accent); transition:opacity .25s ease;}
.tmt-hero-wrapper .tmtg-link:hover{opacity:.75;}

@media (max-width:900px){
  .tmt-hero-wrapper .tmth-grid{grid-template-columns:1fr;}
  .tmt-hero-wrapper .tmth-price{right:10px; bottom:-14px;}
  .tmt-hero-wrapper .tmtg-row{grid-template-columns:repeat(2,1fr);}
  .tmt-hero-wrapper .tmtg-grid{grid-template-columns:1fr;}
}

/* ============================================================
   TMT ROUTE MAP + FLYOVER — .tmt-map-wrapper
   Expedition chart (uncropped, gold-framed) + screening room.
============================================================ */
.tmt-map-wrapper{
  --tmtm-bg:transparent; --tmtm-accent:#FF4D00; --tmtm-em:#C9862B;
  --tmtm-title:#2C2C2C; --tmtm-gold:#C9862B; --tmtm-cinema:#2C2C2C;
  --tmtm-text:rgba(44,44,44,.6);
  background:var(--tmtm-bg);
  padding:clamp(60px,8vw,110px) clamp(20px,4vw,48px);
  font-family:'Inter',-apple-system,sans-serif; -webkit-font-smoothing:antialiased;
}
.tmt-map-wrapper *, .tmt-map-wrapper *::before, .tmt-map-wrapper *::after{margin:0; padding:0; box-sizing:border-box;}
.tmt-map-wrapper img, .tmt-map-wrapper video{display:block; max-width:100%;}
.tmt-map-wrapper .tmtm-inner{max-width:1200px; margin:0 auto;}
.tmt-map-wrapper .tmtm-head{margin-bottom:clamp(30px,4vw,48px);}
.tmt-map-wrapper .tmtm-kicker{
  display:flex; align-items:center; gap:12px; margin-bottom:16px;
  font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:.28em; text-transform:uppercase;
  color:var(--tmtm-accent);
}
.tmt-map-wrapper .tmtm-kicker::before{content:""; width:28px; height:1px; background:var(--tmtm-accent);}
.tmt-map-wrapper .tmtm-title{
  font-family:'Fraunces',Georgia,serif; font-weight:300;
  font-size:clamp(32px,4.4vw,54px); line-height:1.1; color:var(--tmtm-title);
}
.tmt-map-wrapper .tmtm-em{font-style:italic; font-weight:400; color:var(--tmtm-em);}

/* ---- the expedition chart: full image, never cropped ---- */
.tmt-map-wrapper .tmtm-chart{margin-bottom:clamp(40px,5.5vw,72px);}
.tmt-map-wrapper .tmtm-chart-frame{position:relative;}
.tmt-map-wrapper .tmtm-chart-frame::before{
  content:""; position:absolute; z-index:0;
  inset:18px -14px -14px 18px;
  border:1px solid var(--tmtm-gold); border-radius:12px; opacity:.55;
}
.tmt-map-wrapper .tmtm-chart-frame::after{
  content:""; position:absolute; z-index:2; pointer-events:none;
  top:-12px; left:-12px; width:54px; height:54px;
  border-top:2px solid var(--tmtm-accent); border-left:2px solid var(--tmtm-accent);
  border-radius:12px 0 0 0;
}
.tmt-map-wrapper .tmtm-chart-clip{
  position:relative; z-index:1; display:block;
  border-radius:12px; overflow:hidden;
  box-shadow:0 30px 70px rgba(44,44,44,.22);
  transition:transform .45s cubic-bezier(.22,1,.36,1), box-shadow .45s ease;
}
.tmt-map-wrapper .tmtm-chart-clip:hover{
  transform:translateY(-5px);
  box-shadow:0 40px 90px rgba(44,44,44,.3);
}
.tmt-map-wrapper .tmtm-chart-clip img{width:100%; height:auto;}  /* whole map, always */
.tmt-map-wrapper .tmtm-caption{
  margin-top:16px; text-align:right;
  font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--tmtm-text);
}

/* ---- the screening room ---- */
.tmt-map-wrapper .tmtm-cinema{
  position:relative; overflow:hidden;
  background:var(--tmtm-cinema);
  border-radius:16px;
  padding:clamp(18px,2.6vw,36px);
  box-shadow:0 40px 90px rgba(44,44,44,.35);
}
.tmt-map-wrapper .tmtm-cineglow{
  position:absolute; inset:0; pointer-events:none;
  background:
    radial-gradient(560px 340px at 10% -12%, rgba(255,77,0,.15), transparent 62%),
    radial-gradient(480px 320px at 106% 116%, rgba(201,134,43,.13), transparent 60%);
}
.tmt-map-wrapper .tmtm-screen{
  position:relative; z-index:1;
  border-radius:10px; overflow:hidden; background:#000;
}
.tmt-map-wrapper .tmtm-video{width:100%; height:auto;}  /* whole frame, no crop */
.tmt-map-wrapper .tmtm-play{
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  width:78px; height:78px; border-radius:50%; border:none; cursor:pointer;
  background:var(--tmtm-accent); color:#fff;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 16px 44px rgba(255,77,0,.45);
  transition:opacity .4s ease, transform .35s ease;
}
.tmt-map-wrapper .tmtm-play svg{width:30px; height:30px; margin-left:4px;}
.tmt-map-wrapper .tmtm-play:hover{transform:translate(-50%,-50%) scale(1.08);}
.tmt-map-wrapper .tmtm-screen.is-playing .tmtm-play{opacity:0; pointer-events:none;}
.tmt-map-wrapper .tmtm-cinelabel{
  position:relative; z-index:1;
  display:flex; align-items:center; gap:10px;
  margin-top:16px;
  font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:.18em; text-transform:uppercase;
  color:rgba(246,244,239,.75);
}
.tmt-map-wrapper .tmtm-dot{
  width:8px; height:8px; border-radius:50%; background:var(--tmtm-accent);
  animation:tmtmPulse 2.2s ease-in-out infinite;
}
@keyframes tmtmPulse{
  0%,100%{opacity:1; box-shadow:0 0 0 0 rgba(255,77,0,.4);}
  50%{opacity:.6; box-shadow:0 0 0 7px rgba(255,77,0,0);}
}
@media (prefers-reduced-motion:reduce){
  .tmt-map-wrapper .tmtm-dot{animation:none;}
}
