/* =========================================================================
   MTM GROUP — BUILT FOR HUMAN POTENTIAL
   Obsidian luxury system: black · bone · champagne. Sharp edges only.
   Montserrat exclusively.
   ========================================================================= */

:root{
  --ink:   #060606;
  --coal:  #0B0B0B;
  --bone:  #F4F1EA;
  --mute:  #8F8A80;
  --gold:  #C8A968;
  --hair:  rgba(244,241,234,.09);
  --hair2: rgba(244,241,234,.16);

  --f: 'Montserrat', system-ui, sans-serif;
  --exp: cubic-bezier(.16,1,.3,1);
  --max: 1360px;
  --gut: clamp(22px,4.5vw,64px);
}

*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; border-radius:0; }
html{ scroll-behavior:smooth; }
body{
  background:var(--ink); color:var(--bone);
  font-family:var(--f); font-weight:400; line-height:1.5;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
img{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; color:inherit; background:none; border:0; }
::selection{ background:var(--gold); color:var(--ink); }
:focus-visible{ outline:1px solid var(--gold); outline-offset:4px; }

.wrap{ max-width:var(--max); margin:0 auto; padding-left:var(--gut); padding-right:var(--gut); }

/* fine pointer only */
@media (pointer:fine){
  body.has-cur, body.has-cur a, body.has-cur button{ cursor:none; }
}

/* ---------- Cursor: sharp square, difference blend ---------- */
.cur{
  position:fixed; left:0; top:0; width:10px; height:10px;
  background:var(--bone); z-index:9999; pointer-events:none;
  transform:translate(-50%,-50%);
  mix-blend-mode:difference;
  transition:width .3s var(--exp), height .3s var(--exp);
  display:none;
}
body.has-cur .cur{ display:block; }
.cur.is-big{ width:52px; height:52px; }

/* ---------- Top progress hairline ---------- */
.bar{
  position:fixed; left:0; top:0; height:2px; width:100%;
  background:var(--gold); z-index:9500;
  transform:scaleX(0); transform-origin:0 50%;
}

/* ---------- Loader ---------- */
.loader{
  position:fixed; inset:0; z-index:9400; background:var(--ink);
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:26px;
  transition:transform .9s var(--exp);
}
.loader.is-done{ transform:translateY(-101%); }
.loader__mark{ width:min(260px,52vw); overflow:hidden; }
.loader__mark img{
  width:100%; height:auto;
  clip-path:inset(0 100% 0 0);
  animation:logoWipe 1.3s var(--exp) .15s forwards;
}
@keyframes logoWipe{ to{ clip-path:inset(0 0 0 0); } }
.loader__sub{
  font-weight:400; font-size:10px; letter-spacing:.55em; text-transform:uppercase;
  color:var(--mute); opacity:0;
  animation:subIn 1s var(--exp) .8s forwards;
}
@keyframes subIn{ to{ opacity:1; letter-spacing:.4em; } }

/* ---------- Nav ---------- */
.nav{
  position:fixed; left:0; right:0; top:0; z-index:200;
  display:flex; align-items:center; justify-content:space-between;
  padding:22px var(--gut);
  background:transparent;
  transition:transform .55s var(--exp), background .4s ease, padding .4s ease, border-color .4s ease;
  border-bottom:1px solid transparent;
}
.nav.is-solid{
  background:rgba(6,6,6,.86); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  padding:15px var(--gut); border-bottom-color:var(--hair);
}
.nav.is-hide{ transform:translateY(-110%); }
.nav__brand img{ height:20px; width:auto; transition:opacity .3s ease; }
.nav__brand:hover img{ opacity:.7; }
.nav__links{ display:flex; gap:clamp(20px,3vw,42px); }
.nav__links a{
  font-weight:400; font-size:10.5px; letter-spacing:.3em; text-transform:uppercase;
  color:var(--mute); position:relative; padding:6px 0;
  transition:color .35s ease;
}
.nav__links a::after{
  content:""; position:absolute; left:0; bottom:0; width:100%; height:1px;
  background:var(--gold); transform:scaleX(0); transform-origin:100% 50%;
  transition:transform .45s var(--exp);
}
.nav__links a:hover{ color:var(--bone); }
.nav__links a:hover::after{ transform:scaleX(1); transform-origin:0 50%; }
.nav__cta{
  position:relative; overflow:hidden;
  padding:12px 22px; border:1px solid var(--gold);
  font-weight:500; font-size:10px; letter-spacing:.28em; text-transform:uppercase;
  color:var(--gold); transition:color .35s ease;
}
.nav__cta span{ position:relative; z-index:1; }
.nav__cta::before{
  content:""; position:absolute; inset:0; background:var(--gold);
  transform:translateY(101%); transition:transform .45s var(--exp);
}
.nav__cta:hover{ color:var(--ink); }
.nav__cta:hover::before{ transform:translateY(0); }
@media (max-width:980px){ .nav__links{ display:none; } }

/* ---------- Hero ---------- */
.hero{
  position:relative; min-height:100vh; overflow:hidden;
  display:flex; align-items:flex-end;
  padding:140px var(--gut) clamp(48px,7vh,90px);
}
/* ambient brand footage — heavily veiled so the hero stays obsidian */
.hero__video{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0;
  opacity:.55; filter:grayscale(.2) contrast(1.04) brightness(.88);
}
@media (max-width:900px){ .hero__video{ display:none; } }
/* faint editorial column hairlines */
.hero::before{
  content:""; position:absolute; inset:0; pointer-events:none; opacity:.55; z-index:1;
  background:
    linear-gradient(var(--hair), var(--hair)) 25% 0/1px 100% no-repeat,
    linear-gradient(var(--hair), var(--hair)) 50% 0/1px 100% no-repeat,
    linear-gradient(var(--hair), var(--hair)) 75% 0/1px 100% no-repeat;
}
.hero::after{
  content:""; position:absolute; inset:0; pointer-events:none; z-index:1;
  background:
    linear-gradient(180deg, rgba(6,6,6,.35), transparent 26%, transparent 58%, rgba(6,6,6,.66)),
    radial-gradient(120% 90% at 50% 110%, transparent 55%, rgba(0,0,0,.35) 100%);
}
.hero__ghost{
  position:absolute; right:-3vw; bottom:-9vw; z-index:1;
  font-weight:200; font-size:32vw; line-height:.8; letter-spacing:.02em;
  color:transparent; -webkit-text-stroke:1px rgba(244,241,234,.07);
  pointer-events:none; user-select:none; will-change:transform;
}
.hero__inner{ position:relative; z-index:2; width:100%; max-width:var(--max); margin:0 auto; will-change:transform; }
.hero__eyebrow{
  font-weight:400; font-size:10.5px; letter-spacing:.5em; text-transform:uppercase;
  color:var(--gold); margin-bottom:clamp(26px,4vh,44px);
}
.hero__title{
  font-weight:200; text-transform:uppercase;
  font-size:clamp(30px,5.6vw,78px);
  line-height:1.14; letter-spacing:.14em;
  margin-bottom:clamp(30px,5vh,54px);
}
.hero__line{ display:block; overflow:hidden; }
.hero__line--hollow{ color:var(--gold); font-weight:100; }
.hero__foot{
  display:flex; align-items:flex-end; justify-content:space-between; gap:40px;
  border-top:1px solid var(--hair); padding-top:26px;
}
.hero__sub{
  max-width:520px; font-size:clamp(13.5px,1.05vw,16px); line-height:1.75;
  color:var(--mute); font-weight:400;
}
.hero__cue{
  display:flex; flex-direction:column; align-items:center; gap:14px; flex:0 0 auto;
  font-weight:400; font-size:9.5px; letter-spacing:.45em; text-transform:uppercase; color:var(--mute);
  transition:color .35s ease;
}
.hero__cue:hover{ color:var(--gold); }
.hero__cue-line{
  display:block; width:1px; height:56px; background:var(--hair2);
  position:relative; overflow:hidden;
}
.hero__cue-line::after{
  content:""; position:absolute; left:0; top:-40%; width:100%; height:40%;
  background:var(--gold); animation:cueDrop 2.2s var(--exp) infinite;
}
@keyframes cueDrop{ 0%{ top:-40% } 65%,100%{ top:110% } }
@media (max-width:760px){
  .hero__foot{ flex-direction:column; align-items:flex-start; }
  .hero__cue{ display:none; }
}

/* char-split pieces */
.w{ display:inline-block; white-space:nowrap; overflow:hidden; vertical-align:top; }
.ch{
  display:inline-block; transform:translateY(115%);
  transition:transform 1s var(--exp);
  transition-delay:var(--cd,0s);
}
.is-in .ch{ transform:translateY(0); }

/* word-mask reveal for statements */
.wm{ display:inline-block; overflow:hidden; vertical-align:top; }
.wm i{
  display:inline-block; font-style:normal; transform:translateY(112%);
  transition:transform .9s var(--exp); transition-delay:var(--cd,0s);
}
.is-in .wm i{ transform:translateY(0); }

/* generic reveal */
.js .r{ opacity:0; transform:translateY(28px); }
.js .r.is-in{
  opacity:1; transform:translateY(0);
  transition:opacity .9s var(--exp), transform .9s var(--exp);
  transition-delay:var(--d,0s);
}

/* ---------- Strip (double marquee) ---------- */
.strip{
  border-top:1px solid var(--hair); border-bottom:1px solid var(--hair);
  padding:26px 0; overflow:hidden; background:var(--coal);
}
.strip__row{ display:flex; width:max-content; will-change:transform; }
.strip__row--b{ margin-top:10px; }
.strip__set{ display:flex; align-items:baseline; gap:28px; padding-right:28px; }
.strip__set span{
  font-weight:200; font-size:clamp(13px,1.3vw,17px); letter-spacing:.4em;
  text-transform:uppercase; white-space:nowrap;
}
.strip__set i{ font-style:normal; color:var(--gold); font-weight:300; }
.strip__row--b .strip__set span{
  font-weight:200; color:rgba(244,241,234,.34);
}

/* ---------- Section header ---------- */
.sec{
  display:flex; align-items:center; gap:20px;
  margin-bottom:clamp(40px,6vh,64px);
}
.sec__no{
  font-weight:200; font-size:clamp(18px,1.9vw,26px); letter-spacing:.06em; color:var(--gold);
}
.sec__rule{ flex:0 0 clamp(48px,7vw,110px); height:1px; background:var(--hair2); }
.sec__label{
  font-weight:400; font-size:10.5px; letter-spacing:.5em; text-transform:uppercase; color:var(--mute);
}

/* ---------- 01 Legacy ---------- */
.legacy{ padding:clamp(100px,14vh,170px) 0 clamp(80px,10vh,130px); }
.legacy__st{
  font-weight:200; text-transform:uppercase;
  font-size:clamp(19px,2.6vw,36px); line-height:1.5; letter-spacing:.16em;
  max-width:980px; margin-bottom:clamp(48px,7vh,80px);
}
.legacy__grid{
  display:grid; grid-template-columns:1fr 1fr; gap:clamp(24px,4vw,64px);
  max-width:1050px; margin-bottom:clamp(64px,9vh,110px);
}
@media (max-width:760px){ .legacy__grid{ grid-template-columns:1fr; } }
.legacy__p{ font-size:clamp(14px,1.1vw,16.5px); line-height:1.85; color:var(--mute); font-weight:400; }
.legacy__p b{ color:var(--bone); font-weight:600; }

.stats{
  display:grid; grid-template-columns:repeat(4,1fr);
  border-top:1px solid var(--hair); border-bottom:1px solid var(--hair);
}
@media (max-width:760px){ .stats{ grid-template-columns:repeat(2,1fr); } }
.stat{
  padding:clamp(30px,4vw,52px) clamp(18px,2vw,34px);
  border-left:1px solid var(--hair);
  display:flex; flex-direction:column; gap:12px;
}
.stat:first-child{ border-left:0; }
@media (max-width:760px){
  .stat:nth-child(odd){ border-left:0; }
  .stat:nth-child(n+3){ border-top:1px solid var(--hair); }
}
.stat__n{
  font-weight:100; font-size:clamp(32px,3.4vw,54px); line-height:.95; letter-spacing:.02em;
  color:var(--bone); font-variant-numeric:tabular-nums;
}
.stat__l{
  font-weight:400; font-size:9.5px; letter-spacing:.34em; text-transform:uppercase; color:var(--gold);
}

/* ---------- 02 Philosophy — pinned chapters ---------- */
.phil{ padding-top:clamp(90px,12vh,150px); background:var(--coal); border-top:1px solid var(--hair); }
.phil .sec{ margin-bottom:0; }
.phil__track{ position:relative; }
.phil__stage{
  position:sticky; top:0; height:100vh; overflow:hidden;
  display:flex; align-items:center;
  max-width:var(--max); margin:0 auto;
  padding:0 var(--gut);
}
.phil__no{
  position:absolute; right:var(--gut); bottom:8vh;
  display:flex; align-items:baseline; gap:10px;
  pointer-events:none;
}
.phil__no-cur{
  font-weight:100; font-size:clamp(70px,9vw,130px); line-height:1; letter-spacing:0;
  color:transparent; -webkit-text-stroke:1px rgba(200,169,104,.5);
}
.phil__no-cur.tick{ animation:noTick .6s var(--exp); }
@keyframes noTick{ from{ opacity:0; transform:translateY(14%);} to{ opacity:1; transform:translateY(0);} }
.phil__no-tot{
  font-weight:400; font-size:11px; letter-spacing:.4em; color:var(--mute);
}
.phil__panels{ position:relative; width:100%; max-width:760px; }
.phil__panel{
  position:absolute; left:0; top:50%; transform:translateY(-40%);
  width:100%; opacity:0; pointer-events:none;
  clip-path:inset(0 0 100% 0);
  transition:opacity .7s var(--exp), transform .7s var(--exp), clip-path .7s var(--exp);
}
.phil__panel.is-act{
  opacity:1; transform:translateY(-50%); clip-path:inset(0 0 0% 0); pointer-events:auto;
}
.phil__panel-no{ display:none; }
.phil__h{
  font-weight:200; text-transform:uppercase;
  font-size:clamp(26px,3.8vw,52px); line-height:1.28; letter-spacing:.16em;
  margin-bottom:26px;
}
.phil__p{
  max-width:460px; font-size:clamp(14px,1.15vw,17px); line-height:1.8;
  color:var(--mute); font-weight:400;
}
.phil__chips{
  list-style:none; display:flex; flex-wrap:wrap; gap:8px; margin-top:24px;
}
.phil__chips li{
  padding:9px 15px; border:1px solid var(--hair2);
  font-weight:400; font-size:9.5px; letter-spacing:.24em; text-transform:uppercase; color:var(--bone);
}
.phil__prog{
  position:absolute; left:var(--gut); bottom:8vh;
  display:flex; gap:8px;
}
.phil__seg{
  width:clamp(30px,4vw,56px); height:2px; background:var(--hair2);
  position:relative; overflow:hidden;
}
.phil__seg::after{
  content:""; position:absolute; inset:0; background:var(--gold);
  transform:scaleX(0); transform-origin:0 50%; transition:transform .5s var(--exp);
}
.phil__seg.is-on::after{ transform:scaleX(1); }

/* static fallback */
.phil--static .phil__track{ height:auto !important; }
.phil--static .phil__stage{
  position:static; height:auto; display:block; overflow:visible;
  padding-top:clamp(40px,6vh,60px); padding-bottom:clamp(50px,8vh,80px);
}
.phil--static .phil__no, .phil--static .phil__prog{ display:none; }
.phil--static .phil__panels{ max-width:none; }
.phil--static .phil__panel{
  position:static; transform:none; opacity:1; clip-path:none; pointer-events:auto;
  padding:clamp(34px,5vh,50px) 0; border-top:1px solid var(--hair);
}
.phil--static .phil__panel:first-child{ border-top:0; }
.phil--static .phil__panel-no{
  display:block; font-weight:300; font-size:26px; color:var(--gold); margin-bottom:16px;
}

/* ---------- 03 Destinations — 3D card grid ---------- */
.dest{ padding:clamp(100px,14vh,170px) 0 clamp(90px,12vh,150px); border-top:1px solid var(--hair); }
.dest__title, .exp__title{
  font-weight:200; text-transform:uppercase;
  font-size:clamp(19px,2.4vw,32px); line-height:1.4; letter-spacing:.18em;
  margin-bottom:clamp(48px,7vh,84px);
}
.dest__grid{
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:clamp(14px,1.6vw,24px);
  perspective:1400px;
}
@media (max-width:960px){ .dest__grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px){ .dest__grid{ grid-template-columns:1fr; } }

.card{ position:relative; }
.card__tilt{
  position:relative; overflow:hidden; height:100%;
  aspect-ratio:4/3.1;
  border:1px solid var(--hair2); background:var(--coal);
  transform-style:preserve-3d; will-change:transform;
  transition:transform .5s var(--exp), border-color .5s ease, box-shadow .5s ease;
}
.card:hover .card__tilt{
  border-color:rgba(200,169,104,.55);
  box-shadow:0 34px 70px -34px rgba(0,0,0,.95);
}
@media (max-width:600px){ .card__tilt{ aspect-ratio:16/10.5; } }

.card__media{ position:absolute; inset:0; overflow:hidden; }
.card__media img{
  width:100%; height:100%; object-fit:cover;
  filter:grayscale(.12) contrast(1.03) brightness(.94);
  transform:scale(1.07) translateZ(0);
  transition:transform 1s var(--exp), filter .6s ease;
}
.card:hover .card__media img{ transform:scale(1.13); filter:grayscale(0) contrast(1.04); }

/* champagne light that follows the cursor across the card */
.card__sheen{
  position:absolute; inset:0; pointer-events:none; z-index:2; opacity:0;
  background:radial-gradient(460px circle at var(--gx,50%) var(--gy,50%),
    rgba(200,169,104,.2), transparent 62%);
  transition:opacity .5s ease;
}
.card:hover .card__sheen{ opacity:1; }

.card__i{
  position:absolute; left:18px; top:16px; z-index:3;
  font-weight:200; font-size:13px; letter-spacing:.14em; color:rgba(244,241,234,.75);
  transition:color .4s ease;
}
.card:hover .card__i{ color:var(--gold); }

.card__meta{
  position:absolute; left:0; right:0; bottom:0; z-index:3;
  display:flex; align-items:flex-end; justify-content:space-between; gap:14px;
  padding:44px 18px 16px;
  background:linear-gradient(180deg, transparent, rgba(6,6,6,.88) 78%);
}
.card__n{
  font-weight:300; text-transform:uppercase;
  font-size:clamp(13px,1.15vw,16px); line-height:1.5; letter-spacing:.22em;
  position:relative; padding-bottom:8px;
}
.card__n::after{
  content:""; position:absolute; left:0; bottom:0; width:100%; height:1px;
  background:var(--gold); transform:scaleX(0); transform-origin:0 50%;
  transition:transform .6s var(--exp);
}
.card:hover .card__n::after{ transform:scaleX(1); }
.card__n em{ font-style:normal; color:var(--mute); font-weight:200; transition:color .45s ease; }
.card:hover .card__n em{ color:var(--gold); }
.card__t{
  font-weight:400; font-size:8.5px; letter-spacing:.4em; text-transform:uppercase;
  color:var(--mute); flex:0 0 auto; padding-bottom:8px;
  transition:color .4s ease;
}
.card:hover .card__t{ color:var(--bone); }

/* typographic card (no photography yet) */
.card--mono .card__tilt{ background:linear-gradient(160deg,#0D0C0A,var(--coal)); }
.card__mono{
  position:absolute; inset:0; display:grid; place-items:center;
  font-weight:100; font-size:clamp(120px,14vw,210px); line-height:1;
  color:transparent; -webkit-text-stroke:1px rgba(200,169,104,.28);
  user-select:none; transition:-webkit-text-stroke-color .5s ease, transform .8s var(--exp);
}
.card--mono:hover .card__mono{
  -webkit-text-stroke-color:rgba(200,169,104,.6);
  transform:scale(1.06);
}

/* ---------- 04 Expertise ---------- */
.exp{ padding:clamp(100px,14vh,170px) 0; background:var(--coal); border-top:1px solid var(--hair); }
.exp__rowwrap{ overflow:hidden; padding:0 var(--gut); }
.exp__row{
  display:grid; grid-template-columns:repeat(5,1fr);
  max-width:var(--max); margin:0 auto;
  border:1px solid var(--hair);
  will-change:transform;
}
@media (max-width:980px){ .exp__row{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .exp__row{ grid-template-columns:1fr; } }
.exp__cell{
  position:relative; overflow:hidden;
  min-height:clamp(200px,26vw,300px);
  padding:clamp(20px,2.2vw,32px);
  border-left:1px solid var(--hair);
  display:flex; flex-direction:column; justify-content:space-between;
  transition:background .5s var(--exp), color .5s var(--exp);
}
.exp__cell:first-child{ border-left:0; }
@media (max-width:980px){
  .exp__cell{ border-left:0; border-top:1px solid var(--hair); min-height:180px; }
  .exp__cell:first-child{ border-top:0; }
  .exp__cell:nth-child(2){ border-top:0; }
  .exp__cell:nth-child(even){ border-left:1px solid var(--hair); }
}
@media (max-width:560px){
  .exp__cell{ border-left:0 !important; border-top:1px solid var(--hair) !important; }
  .exp__cell:first-child{ border-top:0 !important; }
}
.exp__cell span{
  font-weight:200; font-size:13px; letter-spacing:.1em; color:var(--gold);
  transition:color .5s ease;
}
.exp__cell h3{
  font-weight:300; text-transform:uppercase;
  font-size:clamp(12.5px,1.1vw,15px); line-height:1.7; letter-spacing:.24em;
}
.exp__cell:hover{ background:var(--bone); color:var(--ink); }
.exp__cell:hover span{ color:var(--ink); }

/* ---------- 05 Careers ---------- */
.join{
  padding:clamp(120px,17vh,210px) 0;
  border-top:1px solid var(--hair);
  position:relative; overflow:hidden;
}
/* atmospheric facility image */
.join::before{
  content:""; position:absolute; inset:0;
  background:url("img/join-bg.jpg") center 35%/cover no-repeat;
  opacity:.45; filter:grayscale(.15) contrast(1.04);
  pointer-events:none;
}
.join::after{
  content:""; position:absolute; inset:0;
  background:
    linear-gradient(180deg, var(--ink) 0%, transparent 22%, transparent 74%, var(--ink) 100%),
    linear-gradient(90deg, rgba(6,6,6,.55), transparent 55%),
    radial-gradient(60% 100% at 50% 100%, rgba(200,169,104,.09), transparent 70%);
  pointer-events:none;
}
.join .wrap{ position:relative; z-index:1; }
.join__title{
  font-weight:200; text-transform:uppercase;
  font-size:clamp(28px,5vw,68px); line-height:1.2; letter-spacing:.18em;
  margin-bottom:clamp(28px,4vh,44px);
}
.join__title > span{ display:block; overflow:hidden; }
.join__title-b{ color:var(--gold); font-weight:100; }
.join__p{
  max-width:560px; font-size:clamp(14px,1.15vw,17px); line-height:1.85;
  color:var(--mute); font-weight:400; margin-bottom:clamp(40px,6vh,60px);
}
.join__actions{ display:flex; flex-wrap:wrap; gap:16px; position:relative; z-index:1; }
.btn{
  position:relative; overflow:hidden; display:inline-flex; align-items:center;
  padding:20px 34px;
  font-weight:500; font-size:11px; letter-spacing:.3em; text-transform:uppercase;
  transition:color .4s ease, border-color .4s ease;
}
.btn span{ position:relative; z-index:1; }
.btn::before{
  content:""; position:absolute; inset:0;
  transform:translateY(101%); transition:transform .5s var(--exp);
}
.btn--solid{ background:var(--bone); color:var(--ink); }
.btn--solid::before{ background:var(--gold); }
.btn--solid:hover::before{ transform:translateY(0); }
.btn--line{ border:1px solid var(--hair2); color:var(--bone); }
.btn--line::before{ background:var(--bone); }
.btn--line:hover{ color:var(--ink); border-color:var(--bone); }
.btn--line:hover::before{ transform:translateY(0); }

/* ---------- 06 Find Us — obsidian map ---------- */
.loc{ padding:clamp(100px,14vh,170px) 0; border-top:1px solid var(--hair); }
.loc__title{
  font-weight:200; text-transform:uppercase;
  font-size:clamp(19px,2.4vw,32px); line-height:1.4; letter-spacing:.18em;
  margin-bottom:clamp(44px,6vh,72px);
}
.gmap{ position:relative; }
.gmap__frame{
  position:relative; overflow:hidden;
  height:clamp(340px,52vh,560px);
  border:1px solid var(--hair2); background:var(--coal);
  transition:border-color .5s ease;
}
.gmap:hover .gmap__frame{ border-color:rgba(200,169,104,.45); }
.gmap__frame iframe{
  position:absolute; inset:0; width:100%; height:100%; border:0;
  /* recolour Google's light map into the obsidian palette */
  filter:invert(92%) hue-rotate(180deg) saturate(.16) contrast(1.04) brightness(.9);
}
.gmap__veil{
  position:absolute; inset:0; pointer-events:none;
  background:
    linear-gradient(180deg, rgba(6,6,6,.32), transparent 30%, transparent 72%, rgba(6,6,6,.5)),
    radial-gradient(120% 100% at 50% 50%, transparent 55%, rgba(6,6,6,.4) 100%);
  transition:opacity .5s ease;
}
.gmap.is-live .gmap__veil{ opacity:.3; }
/* champagne corner ticks */
.gmap__tick{ position:absolute; width:24px; height:24px; pointer-events:none; z-index:3; }
.gmap__tick--tl{ left:14px; top:14px; border-left:1px solid var(--gold); border-top:1px solid var(--gold); }
.gmap__tick--tr{ right:14px; top:14px; border-right:1px solid var(--gold); border-top:1px solid var(--gold); }
.gmap__tick--bl{ left:14px; bottom:14px; border-left:1px solid var(--gold); border-bottom:1px solid var(--gold); }
.gmap__tick--br{ right:14px; bottom:14px; border-right:1px solid var(--gold); border-bottom:1px solid var(--gold); }
/* MTM pin */
.gmap__pin{
  position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
  z-index:3; pointer-events:none; display:grid; place-items:center;
}
.gmap__pulse{
  position:absolute; width:64px; height:64px;
  border:1px solid var(--gold); animation:pinPulse 3.2s var(--exp) infinite;
}
@keyframes pinPulse{
  0%{ transform:scale(1); opacity:.55; }
  100%{ transform:scale(2); opacity:0; }
}
.gmap__badge{
  position:relative; width:64px; height:64px; display:grid; place-items:center;
  background:var(--ink); border:1px solid var(--gold);
  box-shadow:0 16px 34px -14px rgba(0,0,0,.95);
}
.gmap__badge img{ width:38px; height:auto; }
.gmap.is-live .gmap__pin{ opacity:0; transition:opacity .4s ease; }
/* click-to-interact shield */
.gmap__shield{
  position:absolute; inset:0; z-index:4; width:100%; height:100%;
  display:grid; place-items:center; background:transparent;
  transition:opacity .4s ease;
}
.gmap__hint{
  padding:13px 24px; background:rgba(6,6,6,.78); border:1px solid var(--gold);
  font-weight:400; font-size:9.5px; letter-spacing:.34em;
  text-transform:uppercase; color:var(--bone);
  transform:translateY(84px); transition:background .35s ease, color .35s ease;
}
.gmap__shield:hover .gmap__hint{ background:var(--gold); color:var(--ink); }
.gmap.is-live .gmap__shield{ opacity:0; pointer-events:none; }
/* venue plate */
.gmap__plate{
  position:absolute; left:0; bottom:0; z-index:3; pointer-events:none;
  display:flex; flex-direction:column; gap:7px;
  padding:24px clamp(24px,3vw,40px);
  background:linear-gradient(90deg, rgba(6,6,6,.92) 45%, transparent);
  max-width:min(480px,88%);
}
.gmap__plate-k{
  font-weight:400; font-size:9px; letter-spacing:.4em;
  text-transform:uppercase; color:var(--gold);
}
.gmap__plate strong{
  font-weight:200; font-size:clamp(19px,2.2vw,28px); line-height:1.1;
  letter-spacing:.16em; text-transform:uppercase;
}
.gmap__plate-a{ font-size:12.5px; line-height:1.7; color:var(--mute); font-weight:400; }
@media (max-width:600px){
  .gmap__plate{ position:static; max-width:none; background:none; padding:22px 0 0; }
  .gmap__hint{ transform:none; }
}
/* directions bar */
.gmap__cta{
  position:relative; overflow:hidden;
  display:flex; align-items:center; justify-content:space-between; gap:20px;
  margin-top:16px; padding:clamp(20px,2.6vw,30px) clamp(22px,3vw,38px);
  border:1px solid var(--gold); color:var(--gold);
  transition:color .45s ease;
}
.gmap__cta::before{
  content:""; position:absolute; inset:0; background:var(--gold);
  transform:translateY(101%); transition:transform .55s var(--exp);
}
.gmap__cta:hover{ color:var(--ink); }
.gmap__cta:hover::before{ transform:translateY(0); }
.gmap__cta-txt{
  position:relative; z-index:1; font-weight:300;
  font-size:clamp(13px,1.4vw,18px); letter-spacing:.34em; text-transform:uppercase;
}
.gmap__cta-arrow{
  position:relative; z-index:1; font-size:clamp(16px,1.6vw,22px); line-height:1;
  transition:transform .5s var(--exp);
}
.gmap__cta:hover .gmap__cta-arrow{ transform:translateX(10px); }

/* ---------- Footer ---------- */
.foot{ border-top:1px solid var(--hair); padding:clamp(70px,10vh,110px) 0 40px; background:var(--coal); }
.foot__mantra{
  font-weight:100; text-transform:uppercase;
  font-size:clamp(16px,2.2vw,30px); letter-spacing:.3em; line-height:1.4;
  color:rgba(244,241,234,.4);
  margin-bottom:clamp(50px,8vh,80px);
}
.foot__grid{
  display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:44px;
  padding-bottom:clamp(44px,7vh,64px);
}
@media (max-width:820px){ .foot__grid{ grid-template-columns:1fr; gap:34px; } }
.foot__brand img{ height:26px; width:auto; margin-bottom:16px; }
.foot__brand span{
  font-weight:400; font-size:9.5px; letter-spacing:.34em; text-transform:uppercase; color:var(--mute);
}
.foot__col h5{
  font-weight:400; font-size:10px; letter-spacing:.4em; text-transform:uppercase;
  color:var(--gold); margin-bottom:16px;
}
.foot__col p{ font-size:13px; line-height:2; color:var(--mute); font-weight:400; }
.foot__col a{ border-bottom:1px solid transparent; transition:color .3s ease, border-color .3s ease; }
.foot__col a:hover{ color:var(--bone); border-bottom-color:var(--gold); }
.foot__bot{
  border-top:1px solid var(--hair); padding-top:26px; text-align:center;
  font-weight:400; font-size:9.5px; letter-spacing:.3em; text-transform:uppercase; color:var(--mute);
}

/* ---------- Reduced motion / no-JS ---------- */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{
    animation-duration:.001ms !important; animation-iteration-count:1 !important;
    transition-duration:.001ms !important; scroll-behavior:auto !important;
  }
  .js .r, .js .r.is-in{ opacity:1; transform:none; }
  .ch, .wm i{ transform:none !important; }
  .loader{ display:none; }
  .hero__video{ display:none; }
  .cur{ display:none !important; }
  body.has-cur, body.has-cur a, body.has-cur button{ cursor:auto; }
}
.no-js .loader{ display:none; }
.no-js .cur, .no-js .bar{ display:none; }
