*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --sand:#f8f1e4;
  --sand-soft:#efe3c6;
  --paper:#fffaf1;
  --mist:#e9f4f7;
  --ink:#12384b;
  --ink-soft:#27596f;
  --deep:#0a2331;
  --navy:#0f2b3c;
  --teal:#2b7f99;
  --gold:#f4ba18;
  --gold-soft:#ffd76a;
  --white:#ffffff;
  --line:rgba(15,43,60,.12);
  --muted:#5a6f7b;
  --shadow:0 28px 80px rgba(8,31,44,.14);
  --tt-logo:url("https://zegfirgyhdjyehvhlrnh.supabase.co/storage/v1/object/public/True%20Travel/TT_Logo-removebg-preview.png");
}
html{scroll-behavior:smooth}
body{
  min-height:100vh;
  min-height:100svh;
  min-height:100dvh;
  overflow-x:hidden;
  color:var(--ink);
  font-family:'DM Sans',sans-serif;
  background:
    radial-gradient(circle at 12% 10%,rgba(244,186,24,.16),transparent 22%),
    radial-gradient(circle at 86% 0%,rgba(50,130,156,.22),transparent 28%),
    linear-gradient(180deg,#f8f1e2 0%,#f4ecd9 18%,#d9edf3 52%,#f6f0e4 100%);
}
a{color:inherit}
button{font:inherit}
body.nav-open{overflow:hidden}
.page-shell{width:min(1320px,calc(100% - 48px));margin:0 auto}
.logo-slot{position:relative;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:50%}
.logo-slot img{display:block}

#nav{
  position:fixed;
  top:0;
  left:0;
  right:0;
  z-index:10000;
  padding:24px 32px;
  display:flex;
  align-items:center;
  justify-content:center;
  pointer-events:none;
}
.nav-pill{
  position:relative;
  display:flex;
  align-items:center;
  width:100%;
  max-width:1180px;
  padding:7px 14px 7px 30px;
  border-radius:100px;
  background:rgba(253,250,244,.94);
  border:1px solid rgba(244,186,24,.18);
  backdrop-filter:blur(28px) saturate(180%);
  -webkit-backdrop-filter:blur(28px) saturate(180%);
  box-shadow:0 12px 50px rgba(0,0,0,.1),0 1px 0 rgba(255,255,255,.8) inset;
  transition:background .35s,border-color .35s,box-shadow .35s;
  pointer-events:all;
}
#nav.scrolled .nav-pill{
  background:rgba(253,250,244,.97);
  border-color:rgba(244,186,24,.24);
  box-shadow:0 16px 56px rgba(0,0,0,.12),0 1px 0 rgba(255,255,255,.84) inset;
}
.nav-top-row{display:flex;align-items:center;gap:18px;min-width:0}
.nav-logo-pill{display:flex;align-items:center;gap:14px;text-decoration:none;flex-shrink:0}
.nav-logo-pill .logo-slot{
  width:138px;
  height:72px;
  border-radius:26px;
  background:rgba(255,255,255,.9);
  border:1px solid rgba(22,56,78,.1);
  padding:5px 10px;
  box-shadow:0 12px 28px rgba(8,30,42,.12);
}
.nav-logo-pill img{
  width:100% !important;
  height:100% !important;
  border-radius:0 !important;
  object-fit:contain !important;
}
.nav-logo-pill-text{
  font-family:'Playfair Display',serif;
  font-size:24px;
  font-weight:700;
  color:var(--ink);
  line-height:.92;
}
.nav-logo-pill-text span{
  display:block;
  font-size:12px;
  font-weight:300;
  letter-spacing:.32em;
  text-transform:uppercase;
  font-family:'DM Sans',sans-serif;
  color:var(--ink-soft);
  opacity:.78;
}
.nav-burger{
  display:none;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:5px;
  width:64px;
  height:52px;
  appearance:none;
  border:1px solid rgba(22,56,78,.12);
  background:rgba(22,56,78,.04);
  border-radius:18px;
  padding:0 16px;
  cursor:pointer;
  flex-shrink:0;
  color:var(--ink);
  transition:transform .25s,background .25s,border-color .25s,box-shadow .25s;
}
.nav-burger span{display:block;width:24px;height:2.5px;border-radius:999px;transition:transform .25s,opacity .25s,width .25s,background .25s}
.nav-burger span:nth-child(1){background:var(--ink-soft)}
.nav-burger span:nth-child(2){width:18px;background:var(--gold)}
.nav-burger span:nth-child(3){background:#111111}
.nav-burger:hover{transform:translateY(-1px);background:rgba(22,56,78,.08);box-shadow:0 10px 24px rgba(0,0,0,.08)}
#nav.nav-open .nav-burger span:nth-child(1){transform:translateY(7.5px) rotate(45deg)}
#nav.nav-open .nav-burger span:nth-child(2){opacity:0}
#nav.nav-open .nav-burger span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}
.nav-links-pill{display:flex;align-items:center;gap:8px;margin-left:auto}
.nav-links-pill a{
  font-size:14px;
  letter-spacing:.14em;
  text-transform:uppercase;
  font-weight:500;
  color:rgba(22,56,78,.72);
  text-decoration:none;
  padding:12px 20px;
  border-radius:100px;
  transition:all .25s;
  white-space:nowrap;
}
.nav-links-pill a:hover,
.nav-links-pill a[aria-current="page"]{background:rgba(22,56,78,.08);color:var(--ink)}
.nav-cta-pill{
  background:var(--gold) !important;
  color:var(--white) !important;
  border-radius:100px;
  font-weight:600 !important;
  box-shadow:0 4px 20px rgba(244,186,24,.35);
  padding:16px 32px !important;
}
.nav-cta-pill:hover{
  background:var(--ink) !important;
  box-shadow:0 6px 28px rgba(22,56,78,.24) !important;
  transform:translateY(-1px) !important;
}

.brand-copy{font-family:'Playfair Display',serif;font-size:30px;font-weight:700;line-height:.92;color:var(--ink)}
.brand-copy span{display:block;font-family:'DM Sans',sans-serif;font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--gold);margin-top:8px}
main{padding-top:146px;padding-bottom:34px}
.contact-page{display:grid;gap:28px}
.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:12px;
  font-size:11px;
  letter-spacing:.3em;
  text-transform:uppercase;
  font-weight:700;
  color:var(--gold);
}
.eyebrow::before{content:'';width:34px;height:1px;background:currentColor}

.contact-hero{
  display:grid;
  grid-template-columns:minmax(0,.88fr) minmax(360px,1.12fr);
  gap:28px;
  align-items:stretch;
}
.hero-copy{
  position:relative;
  overflow:hidden;
  padding:42px 40px;
  border-radius:38px;
  color:var(--white);
  background:
    radial-gradient(circle at 88% 18%,rgba(255,255,255,.14),transparent 18%),
    linear-gradient(145deg,rgba(9,35,50,.98) 0%,rgba(17,59,81,.96) 44%,rgba(35,117,143,.82) 100%);
  border:1px solid rgba(255,255,255,.12);
  box-shadow:var(--shadow);
}
.hero-copy::after{
  content:'';
  position:absolute;
  inset:auto -100px -108px auto;
  width:290px;
  height:290px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(255,255,255,.12) 0%,rgba(255,255,255,0) 70%);
}
.hero-copy h1{
  margin-top:20px;
  max-width:10ch;
  font-family:'Playfair Display',serif;
  font-size:clamp(48px,5.8vw,84px);
  line-height:.92;
  letter-spacing:-.05em;
}
.hero-intro{
  margin-top:22px;
  max-width:620px;
  font-size:16px;
  line-height:1.82;
  color:rgba(255,255,255,.82);
}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:28px}
.hero-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:54px;
  padding:0 22px;
  border-radius:999px;
  border:1px solid transparent;
  appearance:none;
  text-decoration:none;
  font-size:12px;
  letter-spacing:.16em;
  text-transform:uppercase;
  font-weight:700;
  cursor:pointer;
  transition:transform .25s,background .25s,border-color .25s,color .25s,box-shadow .25s;
}
.hero-btn:hover{transform:translateY(-1px)}
.hero-btn-primary{
  background:var(--gold);
  color:var(--white);
  box-shadow:0 14px 30px rgba(244,186,24,.32);
}
.hero-btn-primary:hover{box-shadow:0 18px 34px rgba(244,186,24,.38)}
.hero-btn-secondary,
.hero-btn-secondary-dark{
  background:rgba(255,255,255,.08);
  border-color:rgba(255,255,255,.18);
  color:var(--white);
  backdrop-filter:blur(14px);
}
.hero-btn-secondary:hover,
.hero-btn-secondary-dark:hover{
  background:rgba(255,255,255,.14);
  border-color:rgba(255,255,255,.28);
}
.hero-strip{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
  margin-top:30px;
}
.hero-fact{
  position:relative;
  padding:18px 18px 16px;
  border-radius:22px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.12);
  backdrop-filter:blur(8px);
}
.hero-fact span{
  display:block;
  font-size:10px;
  letter-spacing:.18em;
  text-transform:uppercase;
  font-weight:700;
  color:rgba(255,255,255,.62);
}
.hero-fact strong{
  display:block;
  margin-top:10px;
  font-family:'Playfair Display',serif;
  font-size:22px;
  line-height:1.06;
}
.hero-fact p{
  margin-top:10px;
  font-size:13px;
  line-height:1.68;
  color:rgba(255,255,255,.76);
}

.signal-stage{
  --pointer-x:62%;
  --pointer-y:28%;
  --beam-angle:14deg;
  --tilt-x:-2.5;
  --tilt-y:1.5;
  position:relative;
  min-height:640px;
  border-radius:40px;
  overflow:hidden;
  isolation:isolate;
  outline:none;
  background:
    radial-gradient(circle at 20% 16%,rgba(255,255,255,.08),transparent 18%),
    radial-gradient(circle at 82% 20%,rgba(244,186,24,.12),transparent 18%),
    linear-gradient(180deg,#071d2b 0%,#0d3248 34%,#15637d 72%,#dec39a 100%);
  border:1px solid rgba(255,255,255,.16);
  box-shadow:0 32px 90px rgba(6,24,36,.22);
  transform:perspective(1400px) rotateX(calc(var(--tilt-y) * -1deg)) rotateY(calc(var(--tilt-x) * 1deg));
  transition:transform .22s ease,box-shadow .22s ease;
}
.signal-stage::before{
  content:'';
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at var(--pointer-x) var(--pointer-y),rgba(255,255,255,.18) 0%,rgba(255,255,255,.05) 16%,transparent 34%),
    linear-gradient(180deg,rgba(255,255,255,.02),rgba(255,255,255,0));
  z-index:0;
  pointer-events:none;
}
.signal-stage.is-live{
  box-shadow:0 38px 110px rgba(6,24,36,.28);
}
.signal-stars,
.signal-orb,
.signal-aura,
.signal-rotor,
.signal-pointer-beam,
.signal-haze,
.signal-water,
.signal-horizon,
.signal-echo,
.signal-lighthouse,
.signal-panel,
.signal-caption{position:absolute}
.signal-stars{
  inset:0;
  background:
    radial-gradient(circle at 16% 18%,rgba(255,255,255,.88) 0 1px,transparent 1.5px),
    radial-gradient(circle at 26% 12%,rgba(255,255,255,.6) 0 1px,transparent 1.5px),
    radial-gradient(circle at 47% 18%,rgba(255,255,255,.72) 0 1px,transparent 1.5px),
    radial-gradient(circle at 65% 14%,rgba(255,255,255,.65) 0 1px,transparent 1.5px),
    radial-gradient(circle at 81% 22%,rgba(255,255,255,.5) 0 1px,transparent 1.5px);
  opacity:.8;
}
.signal-orb{
  top:84px;
  right:106px;
  width:114px;
  height:114px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(255,248,224,.98) 0%,rgba(255,240,188,.72) 44%,rgba(255,240,188,0) 74%);
  filter:blur(.2px);
  animation:signalOrbDrift 8s ease-in-out infinite;
}
.signal-aura{
  top:56px;
  right:76px;
  width:176px;
  height:176px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(255,243,209,.22) 0%,rgba(255,243,209,.04) 52%,transparent 74%);
  animation:signalOrbDrift 10s ease-in-out infinite reverse;
}
.signal-rotor,
.signal-pointer-beam{
  top:162px;
  left:104px;
  width:170vmax;
  height:120vmax;
  transform-origin:0 50%;
  pointer-events:none;
}
.signal-rotor{
  transform:translateY(-50%);
  animation:signalSweep 14s cubic-bezier(.48,.05,.29,.96) infinite alternate;
  opacity:.78;
}
.signal-rotor::before,
.signal-pointer-beam::before{
  content:'';
  position:absolute;
  left:0;
  top:50%;
  width:100%;
  height:32%;
  transform:translateY(-50%);
  clip-path:polygon(0 50%,100% 0,100% 100%);
  filter:blur(5px);
}
.signal-rotor::before{
  background:linear-gradient(90deg,rgba(255,255,255,.92) 0%,rgba(255,249,228,.32) 12%,rgba(255,249,228,.12) 26%,rgba(255,249,228,0) 62%);
}
.signal-pointer-beam{
  transform:translateY(-50%) rotate(var(--beam-angle));
  transition:transform .18s ease,opacity .18s ease;
  opacity:.52;
}
.signal-pointer-beam::before{
  background:linear-gradient(90deg,rgba(255,251,239,.94) 0%,rgba(255,251,239,.24) 12%,rgba(255,251,239,.08) 22%,rgba(255,251,239,0) 54%);
}
.signal-haze{
  inset:auto -12% 20% -12%;
  height:160px;
  background:radial-gradient(circle at 50% 50%,rgba(255,255,255,.18),rgba(255,255,255,0) 72%);
  opacity:.5;
  filter:blur(18px);
}
.signal-water{
  inset:auto 0 0;
  height:41%;
  background:
    linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,0)),
    linear-gradient(180deg,#1f758f 0%,#1c687f 32%,#154b61 100%);
  overflow:hidden;
}
.signal-water::before{
  content:'';
  position:absolute;
  inset:0 -10%;
  background:
    repeating-linear-gradient(180deg,rgba(255,255,255,.22) 0 2px,rgba(255,255,255,0) 2px 18px),
    linear-gradient(90deg,rgba(255,255,255,.14),rgba(255,255,255,0) 24%,rgba(255,255,255,.12) 52%,rgba(255,255,255,0) 76%,rgba(255,255,255,.16));
  mix-blend-mode:screen;
  opacity:.34;
  animation:signalWater 14s linear infinite;
}
.signal-water::after{
  content:'';
  position:absolute;
  left:-10%;
  right:-10%;
  top:-20px;
  height:38px;
  background:linear-gradient(180deg,rgba(255,255,255,.32),rgba(255,255,255,0));
  filter:blur(12px);
  opacity:.4;
}
.signal-horizon{
  left:0;
  right:0;
  bottom:34%;
  height:82px;
  background:
    linear-gradient(180deg,rgba(39,103,125,0) 0%,rgba(24,77,96,.76) 100%),
    radial-gradient(circle at 12% 80%,rgba(8,28,39,.86) 0 13%,transparent 14%),
    radial-gradient(circle at 24% 88%,rgba(8,28,39,.92) 0 15%,transparent 16%),
    radial-gradient(circle at 44% 88%,rgba(8,28,39,.88) 0 14%,transparent 15%),
    radial-gradient(circle at 61% 92%,rgba(8,28,39,.88) 0 14%,transparent 15%),
    radial-gradient(circle at 80% 84%,rgba(8,28,39,.84) 0 15%,transparent 16%);
}
.signal-echo{
  left:96px;
  top:150px;
  width:44px;
  height:44px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.4);
  opacity:0;
}
.signal-echo-one{animation:signalEcho 4.8s ease-out infinite}
.signal-echo-two{animation:signalEcho 4.8s ease-out 1.3s infinite}
.signal-lighthouse{
  left:70px;
  bottom:108px;
  width:72px;
  height:262px;
  filter:drop-shadow(0 16px 26px rgba(0,0,0,.3));
}
.signal-spire{
  position:absolute;
  left:50%;
  top:0;
  width:10px;
  height:16px;
  transform:translateX(-50%);
  background:#09131a;
  clip-path:polygon(50% 0,0 100%,100% 100%);
}
.signal-roof{
  position:absolute;
  left:50%;
  top:14px;
  width:34px;
  height:24px;
  transform:translateX(-50%);
  background:linear-gradient(180deg,#181716 0%,#060606 100%);
  clip-path:polygon(50% 0,7% 100%,93% 100%);
}
.signal-lantern{
  position:absolute;
  left:50%;
  top:34px;
  width:26px;
  height:40px;
  transform:translateX(-50%);
  border-radius:8px 8px 10px 10px;
  background:linear-gradient(180deg,#282828 0%,#101010 100%);
  border:2px solid #101010;
  box-shadow:0 0 0 1px rgba(255,255,255,.08) inset;
}
.signal-lantern::before{
  content:'';
  position:absolute;
  inset:4px;
  border-radius:4px;
  background:
    radial-gradient(circle at 50% 52%,rgba(255,255,255,.96) 0 18%,rgba(255,255,255,.22) 18% 56%,rgba(255,255,255,0) 56%),
    linear-gradient(90deg,rgba(255,255,255,.7) 0 16%,rgba(17,17,17,.8) 16% 27%,rgba(255,255,255,.24) 27% 48%,rgba(17,17,17,.8) 48% 59%,rgba(255,255,255,.24) 59% 80%,rgba(17,17,17,.8) 80% 91%,rgba(255,255,255,.62) 91% 100%);
  animation:signalLamp 2.2s ease-in-out infinite;
}
.signal-gallery{
  position:absolute;
  left:50%;
  top:70px;
  width:58px;
  height:14px;
  transform:translateX(-50%);
  border-radius:999px;
  background:linear-gradient(180deg,#f0f2f4 0%,#bfc9d1 100%);
  border:2px solid #111111;
}
.signal-gallery::before{
  content:'';
  position:absolute;
  inset:2px 8px;
  background:repeating-linear-gradient(90deg,transparent 0 5px,#111111 5px 7px,transparent 7px 12px);
  opacity:.56;
  border-radius:999px;
}
.signal-body{
  position:absolute;
  left:50%;
  bottom:22px;
  width:42px;
  height:166px;
  transform:translateX(-50%);
  clip-path:polygon(17% 0,83% 0,100% 100%,0 100%);
  background:
    linear-gradient(to bottom,#191513 0 18%,#d2bb93 18% 37%,#191513 37% 57%,#d2bb93 57% 78%,#191513 78% 100%);
  box-shadow:inset 0 0 0 2px rgba(17,17,17,.62),inset 8px 0 10px rgba(255,255,255,.12),inset -10px 0 12px rgba(0,0,0,.22);
}
.signal-body::before{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(255,255,255,.16) 0 18%,rgba(255,255,255,0) 18% 82%,rgba(0,0,0,.14) 82% 100%);
}
.signal-body::after{
  content:'';
  position:absolute;
  left:50%;
  top:40px;
  width:8px;
  height:14px;
  transform:translateX(-50%);
  border-radius:999px;
  background:#171717;
  box-shadow:0 44px 0 #171717;
}
.signal-door{
  position:absolute;
  left:50%;
  bottom:22px;
  width:14px;
  height:28px;
  transform:translateX(-50%);
  border-radius:8px 8px 0 0;
  background:#151515;
  box-shadow:0 0 0 1px rgba(255,255,255,.14);
}
.signal-panel{
  right:28px;
  top:28px;
  z-index:4;
  max-width:260px;
  padding:18px 18px 16px;
  border-radius:22px;
  background:rgba(255,255,255,.09);
  border:1px solid rgba(255,255,255,.16);
  backdrop-filter:blur(14px);
  color:#ffffff;
}
.signal-panel-label{
  display:inline-flex;
  align-items:center;
  min-height:28px;
  padding:0 10px;
  border-radius:999px;
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.16);
  font-size:10px;
  letter-spacing:.16em;
  text-transform:uppercase;
  font-weight:700;
}
.signal-panel strong{
  display:block;
  margin-top:14px;
  font-family:'Playfair Display',serif;
  font-size:28px;
  line-height:1.02;
}
.signal-panel p{
  margin-top:10px;
  font-size:13px;
  line-height:1.68;
  color:rgba(255,255,255,.76);
}
.signal-caption{
  left:28px;
  right:28px;
  bottom:26px;
  z-index:4;
  display:flex;
  justify-content:space-between;
  gap:18px;
  align-items:flex-end;
}
.signal-caption-chip{
  display:inline-flex;
  align-items:center;
  min-height:34px;
  padding:0 14px;
  border-radius:999px;
  background:rgba(244,186,24,.24);
  border:1px solid rgba(255,255,255,.12);
  font-size:10px;
  letter-spacing:.18em;
  text-transform:uppercase;
  font-weight:700;
  color:#ffffff;
  white-space:nowrap;
}
.signal-caption p{
  max-width:360px;
  font-size:13px;
  line-height:1.68;
  color:rgba(255,255,255,.82);
  text-align:right;
}

.contact-lanes,
.contact-grid{
  border-radius:38px;
}
.contact-lanes{
  padding:34px 0 0;
}
.section-head{
  display:flex;
  justify-content:space-between;
  gap:28px;
  align-items:end;
}
.section-head h2,
.map-head h2,
.concierge-card h2{
  margin-top:14px;
  font-family:'Playfair Display',serif;
  font-size:clamp(34px,4vw,56px);
  line-height:.98;
  letter-spacing:-.04em;
}
.section-head p{
  max-width:460px;
  font-size:15px;
  line-height:1.78;
  color:var(--muted);
}
.lane-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
  margin-top:24px;
}
.lane-card{
  min-height:288px;
  display:flex;
  flex-direction:column;
  padding:28px 24px;
  border-radius:30px;
  background:linear-gradient(180deg,rgba(255,255,255,.96) 0%,rgba(248,242,229,.84) 100%);
  border:1px solid rgba(15,43,60,.08);
  box-shadow:0 20px 54px rgba(8,31,44,.08);
  text-decoration:none;
  transition:transform .25s,box-shadow .25s,border-color .25s;
}
.lane-card:hover{
  transform:translateY(-4px);
  box-shadow:0 28px 66px rgba(8,31,44,.12);
  border-color:rgba(244,186,24,.28);
}
.lane-card.is-gold{
  background:linear-gradient(160deg,#ffd364 0%,#f4ba18 100%);
  color:var(--navy);
}
.lane-label{
  display:inline-flex;
  align-items:center;
  width:max-content;
  min-height:28px;
  padding:0 10px;
  border-radius:999px;
  background:rgba(18,56,75,.06);
  border:1px solid rgba(18,56,75,.08);
  font-size:10px;
  letter-spacing:.18em;
  text-transform:uppercase;
  font-weight:700;
  color:var(--ink-soft);
}
.lane-card.is-gold .lane-label{
  background:rgba(255,255,255,.38);
  border-color:rgba(18,56,75,.1);
  color:var(--navy);
}
.lane-card h3{
  margin-top:18px;
  font-family:'Playfair Display',serif;
  font-size:40px;
  line-height:.98;
  letter-spacing:-.04em;
}
.lane-card p{
  margin-top:14px;
  font-size:14px;
  line-height:1.78;
  color:var(--muted);
}
.lane-card.is-gold p{color:rgba(10,35,49,.78)}
.lane-card strong{
  display:block;
  margin-top:auto;
  padding-top:22px;
  font-size:13px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--ink);
}
.lane-card.is-gold strong{color:var(--navy)}

.contact-grid{
  display:grid;
  grid-template-columns:minmax(0,1.06fr) minmax(320px,.94fr);
  gap:22px;
  align-items:stretch;
}
.contact-map-card,
.concierge-card{
  padding:30px;
  border-radius:34px;
  box-shadow:var(--shadow);
}
.contact-map-card{
  background:rgba(255,255,255,.84);
  border:1px solid rgba(255,255,255,.92);
}
.map-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  margin-bottom:20px;
}
.map-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  padding:0 18px;
  border-radius:999px;
  text-decoration:none;
  border:1px solid rgba(15,43,60,.12);
  background:rgba(15,43,60,.04);
  font-size:11px;
  letter-spacing:.16em;
  text-transform:uppercase;
  font-weight:700;
  color:var(--ink);
  transition:transform .25s,background .25s,border-color .25s;
}
.map-link:hover{
  transform:translateY(-1px);
  background:rgba(244,186,24,.14);
  border-color:rgba(244,186,24,.24);
}
.map-frame{
  overflow:hidden;
  border-radius:28px;
  min-height:460px;
  border:1px solid rgba(15,43,60,.08);
  background:#d7e8ee;
}
.map-frame iframe{display:block;width:100%;height:100%;min-height:460px;border:0}
.map-meta-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
  margin-top:18px;
}
.map-meta-item{
  padding:18px 16px;
  border-radius:22px;
  background:linear-gradient(180deg,rgba(248,243,232,.86) 0%,rgba(239,245,247,.88) 100%);
  border:1px solid rgba(15,43,60,.08);
}
.map-meta-item span{
  display:block;
  font-size:10px;
  letter-spacing:.18em;
  text-transform:uppercase;
  font-weight:700;
  color:var(--ink-soft);
}
.map-meta-item strong{
  display:block;
  margin-top:10px;
  font-family:'Playfair Display',serif;
  font-size:21px;
  line-height:1.1;
}

.concierge-card{
  color:var(--white);
  background:
    radial-gradient(circle at 90% 12%,rgba(255,255,255,.12),transparent 18%),
    linear-gradient(150deg,#0e3145 0%,#164962 44%,#286b82 100%);
  border:1px solid rgba(255,255,255,.14);
}
.detail-list{display:grid;gap:14px;margin-top:24px}
.detail-item{
  padding:18px 18px 16px;
  border-radius:22px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.12);
}
.detail-item span{
  display:block;
  font-size:10px;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:rgba(255,255,255,.62);
  font-weight:700;
}
.detail-item strong{
  display:block;
  margin-top:10px;
  font-family:'Playfair Display',serif;
  font-size:24px;
  line-height:1.1;
}
.detail-item p{
  margin-top:10px;
  font-size:13px;
  line-height:1.72;
  color:rgba(255,255,255,.78);
}
.detail-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}
.concierge-card .hero-btn-secondary-dark{
  background:rgba(255,255,255,.08);
  border-color:rgba(255,255,255,.18);
  color:var(--white);
}

.page-footer{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  padding:0 0 28px;
}
.brand-copy-footer{font-size:24px}
.brand-copy-footer span{max-width:460px;letter-spacing:.16em}
.footer-links{display:flex;gap:18px;flex-wrap:wrap}
.footer-links a{text-decoration:none;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}
.footer-links a:hover{color:var(--ink)}

@keyframes signalSweep{
  0%{transform:translateY(-50%) rotate(-22deg)}
  100%{transform:translateY(-50%) rotate(18deg)}
}
@keyframes signalWater{
  0%{transform:translateX(0)}
  100%{transform:translateX(8%)}
}
@keyframes signalEcho{
  0%{opacity:.6;transform:scale(.3)}
  72%{opacity:0;transform:scale(8.4)}
  100%{opacity:0;transform:scale(8.4)}
}
@keyframes signalOrbDrift{
  0%,100%{transform:translate3d(0,0,0)}
  50%{transform:translate3d(10px,-6px,0)}
}
@keyframes signalLamp{
  0%,100%{opacity:.9;filter:drop-shadow(0 0 8px rgba(255,255,255,.8))}
  50%{opacity:1;filter:drop-shadow(0 0 14px rgba(255,255,255,1))}
}

@media (prefers-reduced-motion:reduce){
  .signal-stage,
  .lane-card,
  .hero-btn,
  .map-link{transition:none}
  .signal-orb,
  .signal-aura,
  .signal-rotor,
  .signal-water::before,
  .signal-echo,
  .signal-lantern::before{animation:none}
}

@media(max-width:1180px){
  .contact-hero,
  .contact-grid{grid-template-columns:1fr}
  .section-head{flex-direction:column;align-items:flex-start}
  .signal-stage{min-height:560px}
}
@media(max-width:980px){
  .hero-strip,
  .lane-grid,
  .map-meta-grid{grid-template-columns:1fr}
}
@media(max-width:760px){
  .page-shell{width:min(1320px,calc(100% - 24px))}
  #nav{padding:12px 10px;align-items:flex-start}
  .nav-pill{
    width:min(430px,calc(100% - 20px));
    max-width:none;
    padding:6px 56px 6px 12px;
    border-radius:24px;
    box-shadow:0 20px 54px rgba(5,22,35,.12),0 1px 0 rgba(255,255,255,.86) inset;
  }
  .nav-top-row{display:grid;grid-template-columns:minmax(0,1fr) auto;width:100%;min-width:0;align-items:center;gap:8px}
  .nav-logo-pill{gap:8px;min-width:0;max-width:100%;width:100%;margin-right:0}
  .nav-logo-pill .logo-slot{
    width:88px;
    height:50px;
    border-radius:18px;
    padding:6px 8px;
  }
  .nav-logo-pill-text{min-width:0;font-size:18px;line-height:.82;white-space:normal;overflow:hidden}
  .nav-logo-pill-text span{font-size:7px;letter-spacing:.14em;white-space:normal;overflow:hidden}
  .nav-burger{display:flex !important;position:absolute;top:50%;right:10px;z-index:3;transform:translateY(-50%);width:46px;height:38px;padding:0 11px;gap:3px;border-radius:14px;background:rgba(255,255,255,.86);border-color:rgba(22,56,78,.16);box-shadow:0 10px 22px rgba(5,22,35,.08)}
  .nav-burger:hover{transform:translateY(calc(-50% - 1px))}
  .nav-burger span{width:18px}
  .nav-burger span:nth-child(2){width:13px}
  .nav-links-pill{
    position:absolute;
    top:calc(100% + 12px);
    left:0;
    width:100%;
    margin-left:0;
    display:grid;
    grid-template-columns:1fr;
    gap:8px;
    padding:12px;
    border-radius:22px;
    background:rgba(253,250,244,.98);
    border:1px solid rgba(22,56,78,.08);
    box-shadow:0 24px 60px rgba(0,0,0,.14);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:translateY(-8px);
    transition:opacity .25s,transform .25s,visibility .25s;
  }
  #nav.nav-open .nav-links-pill{opacity:1;visibility:visible;pointer-events:auto;transform:none}
  .nav-links-pill a{
    display:flex;
    align-items:center;
    justify-content:flex-start;
    min-height:50px;
    padding:0 16px;
    font-size:10px;
    letter-spacing:.16em;
    text-align:left;
    border-radius:18px;
    background:rgba(22,56,78,.04);
  }
  .nav-cta-pill{min-height:52px;padding:0 18px !important;justify-content:center}
  main{padding-top:118px;padding-bottom:24px}
  .contact-page{gap:22px}
  .hero-copy,
  .contact-map-card,
  .concierge-card{padding:24px 22px;border-radius:28px}
  .hero-copy h1{font-size:clamp(36px,11vw,58px)}
  .hero-intro,.section-head p{font-size:14px;line-height:1.72}
  .signal-stage{min-height:500px;border-radius:30px}
  .signal-panel{right:18px;top:18px;max-width:228px}
  .signal-caption{
    left:18px;
    right:18px;
    bottom:18px;
    flex-direction:column;
    align-items:flex-start;
  }
  .signal-caption p{text-align:left}
  .contact-lanes{padding-top:10px}
  .map-head{flex-direction:column}
  .map-frame,
  .map-frame iframe{min-height:320px}
  .page-footer{flex-direction:column;align-items:flex-start}
}
@media(max-width:560px){
  .page-shell{width:min(1320px,calc(100% - 20px))}
  .hero-actions,
  .detail-actions,
  .footer-links{flex-direction:column;align-items:stretch}
  .hero-btn,
  .map-link{width:100%}
  .hero-copy{padding:20px 18px;border-radius:24px}
  .hero-copy h1{font-size:clamp(30px,10.8vw,44px)}
  .hero-intro{font-size:13px;line-height:1.68}
  .eyebrow{font-size:10px;letter-spacing:.26em}
  .section-head h2,
  .map-head h2,
  .concierge-card h2{font-size:clamp(30px,11vw,42px)}
  .signal-stage{min-height:430px}
  .signal-orb{
    top:54px;
    right:54px;
    width:88px;
    height:88px;
  }
  .signal-aura{
    top:28px;
    right:28px;
    width:132px;
    height:132px;
  }
  .signal-rotor,
  .signal-pointer-beam{
    top:136px;
    left:78px;
  }
  .signal-lighthouse{
    left:48px;
    bottom:94px;
    width:56px;
    height:210px;
  }
  .signal-body{width:32px;height:134px}
  .signal-gallery{width:46px}
  .signal-lantern{
    width:22px;
    height:34px;
  }
  .lane-card,
  .detail-item,
  .map-meta-item{padding:18px 16px}
  .lane-card h3{font-size:34px}
  .contact-map-card,
  .concierge-card{padding:18px 16px;border-radius:24px}
  .signal-panel{
    right:12px;
    top:12px;
    left:12px;
    max-width:none;
  }
}
@media(max-width:420px){
  .page-shell{width:min(1320px,calc(100% - 16px))}
  .nav-pill{padding:4px 6px 4px 7px}
  .nav-logo-pill .logo-slot{
    width:74px;
    height:42px;
    border-radius:14px;
  }
  .nav-logo-pill-text{font-size:14px}
  .nav-logo-pill-text span{font-size:5px;letter-spacing:.1em}
  .nav-burger{right:5px;width:38px;height:32px;padding:0 9px;background:rgba(255,255,255,.95)}
  .nav-burger:hover{transform:translateY(calc(-50% - 1px))}
  .nav-burger span{width:16px}
  .nav-burger span:nth-child(2){width:11px}
  main{padding-top:92px}
  .contact-page{gap:18px}
  .hero-copy{padding:18px 14px;border-radius:20px}
  .contact-map-card,
  .concierge-card{padding:14px 12px;border-radius:20px}
  .lane-card,
  .detail-item,
  .map-meta-item{padding:14px 12px;border-radius:18px}
  .signal-stage{min-height:396px;border-radius:22px}
  .signal-panel strong{font-size:22px}
  .hero-btn,.map-link{font-size:11px}
}
