*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html, body {
  background:#04040A; color:#FFF; font-family:'Inter',sans-serif; font-weight:200;
  overflow-x:hidden; cursor:none;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
}

/* ── GLOBAL LINK RESET — applies to every link on every page, no exceptions ── */
a, a:link, a:visited, a:hover, a:active, a:focus {
  text-decoration:none !important;
  -webkit-text-decoration:none !important;
  color:inherit;
}
a { color:rgba(255,255,255,.78); transition:color .3s ease, opacity .3s ease; }
a:visited { color:rgba(255,255,255,.78); }

#cur { position:fixed; width:5px; height:5px; border-radius:50%; pointer-events:none; z-index:9999; transform:translate(-50%,-50%); background:#C9A96E; mix-blend-mode:screen; transition:background .8s; }
#cur-ring { position:fixed; width:30px; height:30px; border:1px solid rgba(201,169,110,0.3); border-radius:50%; pointer-events:none; z-index:9998; transform:translate(-50%,-50%); transition:width .25s,height .25s,border-color .8s; }

/* ── NAV (shared, one definition) ── */
nav.site-nav {
  position:fixed; top:0; left:0; right:0; z-index:200;
  padding:18px 32px; display:flex; justify-content:space-between; align-items:center;
  background:linear-gradient(to bottom,rgba(4,4,10,0.95),rgba(4,4,10,0.7) 80%,transparent);
  backdrop-filter:blur(4px);
}
.nav-brand { font-family:'Cormorant Garamond',serif; font-weight:300; font-size:13px; letter-spacing:.3em; text-transform:uppercase; color:#C9A96E; transition:color .3s ease, text-shadow .3s ease; }
.nav-brand:hover { color:#E8D5A3; text-shadow:0 0 14px rgba(201,169,110,.4); }
.nav-brand:visited { color:#C9A96E; }
.nav-menu-btn { font-size:9px; letter-spacing:.3em; text-transform:uppercase; color:rgba(255,255,255,.6); background:none; border:1px solid rgba(255,255,255,.15); padding:9px 16px; cursor:none; transition:border-color .3s,color .3s; }
.nav-menu-btn:hover { border-color:rgba(201,169,110,.5); color:#E8D5A3; }

/* Full menu overlay */
#nav-overlay {
  position:fixed; inset:0; z-index:500;
  background:rgba(4,4,10,0.98);
  display:flex; flex-direction:column;
  align-items:center; justify-content:center;
  opacity:0; pointer-events:none;
  transition:opacity .5s ease;
}
#nav-overlay.show { opacity:1; pointer-events:all; }
.nav-close { position:absolute; top:20px; right:28px; font-size:11px; letter-spacing:.3em; text-transform:uppercase; color:rgba(255,255,255,.5); cursor:none; background:none; border:none; }
.nav-close:hover { color:#FFF; }
.nav-links { display:flex; flex-direction:column; align-items:center; gap:6px; }
.nav-links a {
  font-family:'Playfair Display',serif; font-weight:200; font-style:italic;
  font-size:clamp(20px,4vw,32px); color:rgba(255,255,255,.55);
  padding:10px 0; transition:color .35s ease, text-shadow .35s ease, transform .3s ease;
  display:inline-block; text-decoration:none;
}
.nav-links a:hover {
  color:#E8D5A3;
  text-shadow:0 0 18px rgba(201,169,110,.45);
  transform:translateX(4px);
}
.nav-links a.current { color:#C9A96E; text-shadow:0 0 14px rgba(201,169,110,.35); }
.nav-links a:visited { color:rgba(255,255,255,.55); }
.nav-links .nav-sub { font-size:9px; letter-spacing:.3em; text-transform:uppercase; font-style:normal; font-family:'Inter',sans-serif; color:rgba(255,255,255,.25); margin-top:28px; margin-bottom:4px; }

/* ── PAGE HERO (shared pattern) ── */
.page-hero {
  min-height:60vh; display:flex; flex-direction:column;
  align-items:center; justify-content:center; text-align:center;
  padding:140px 28px 60px;
}
.hero-tag { font-size:9px; letter-spacing:.5em; text-transform:uppercase; color:rgba(201,169,110,0.6); margin-bottom:18px; opacity:0; animation:rise .9s ease .2s forwards; }
.hero-h { font-family:'Playfair Display',serif; font-weight:200; font-size:clamp(32px,7vw,62px); line-height:1.06; margin-bottom:18px; opacity:0; animation:rise 1.1s ease .4s forwards; }
.hero-h em { font-style:italic; color:rgba(220,210,255,0.85); }
.hero-sub { font-size:15px; line-height:1.85; color:rgba(255,255,255,0.6); max-width:440px; opacity:0; animation:rise 1s ease .7s forwards; }
@keyframes rise { from{opacity:0;transform:translateY(14px)} to{opacity:1;transform:none} }

/* ── CARDS (shared, used on Home for journey teaser) ── */
.card-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:1px; background:rgba(255,255,255,.05); max-width:1000px; margin:0 auto; border:1px solid rgba(255,255,255,.05); }
.journey-card {
  background:#06060C; padding:48px 32px; text-decoration:none;
  display:flex; flex-direction:column; gap:14px;
  transition:background .4s ease, transform .4s ease;
  position:relative; overflow:hidden;
}
.journey-card:hover { background:#0A0A14; transform:translateY(-3px); }
.journey-card:visited { color:inherit; }
.jc-num { font-size:9px; letter-spacing:.4em; text-transform:uppercase; color:rgba(255,255,255,.3); }
.jc-title { font-family:'Playfair Display',serif; font-weight:200; font-size:24px; color:#FFF; }
.jc-desc { font-size:13px; line-height:1.7; color:rgba(255,255,255,.55); }
.jc-link { font-size:9px; letter-spacing:.25em; text-transform:uppercase; color:#C9A96E; margin-top:8px; transition:color .3s ease, opacity .3s ease, transform .3s ease; display:inline-block; }
.journey-card:hover .jc-link { color:#E8D5A3; transform:translateX(3px); }

/* ── SECTION (generic reusable block) ── */
.section { padding:90px 28px; max-width:680px; margin:0 auto; }
.section-center { text-align:center; }
.section h2 { font-family:'Playfair Display',serif; font-weight:200; font-size:clamp(26px,4.5vw,42px); line-height:1.1; margin-bottom:18px; }
.section h2 em { font-style:italic; color:rgba(220,210,255,0.85); }
.section p { font-size:15px; line-height:1.88; color:rgba(255,255,255,0.62); margin-bottom:16px; }

/* ── BUTTONS (shared, ONE style each) ── */
.btn-primary {
  display:inline-flex; align-items:center; gap:12px;
  background:none; border:1px solid rgba(201,169,110,.4);
  color:#E8D5A3; font-family:'Inter',sans-serif; font-size:10px; font-weight:300;
  letter-spacing:.35em; text-transform:uppercase; padding:15px 34px;
  cursor:none; transition:border-color .4s ease,letter-spacing .4s ease,background .4s ease,box-shadow .4s ease;
}
.btn-primary:hover {
  border-color:rgba(201,169,110,.85); letter-spacing:.45em;
  background:rgba(201,169,110,.06);
  box-shadow:0 0 24px rgba(201,169,110,.18);
}
.btn-primary:visited { color:#E8D5A3; }

.btn-ghost {
  display:inline-flex; align-items:center; gap:10px;
  font-size:9px; letter-spacing:.3em; text-transform:uppercase;
  color:rgba(255,255,255,.5);
  border-bottom:1px solid rgba(255,255,255,.18); padding-bottom:4px;
  transition:color .3s ease,border-color .3s ease,transform .3s ease;
}
.btn-ghost:hover { color:#FFF; border-color:rgba(255,255,255,.5); transform:translateX(2px); }
.btn-ghost:visited { color:rgba(255,255,255,.5); }

/* ── CROSS-LINK CARD (the "explore full X" pattern) ── */
.crosslink {
  display:block; max-width:480px; margin:50px auto 0;
  border:1px solid rgba(255,255,255,.08); padding:28px 32px;
  text-decoration:none;
  transition:border-color .35s ease,background .35s ease,box-shadow .35s ease;
  text-align:center;
}
.crosslink:hover {
  border-color:rgba(201,169,110,.4);
  background:rgba(201,169,110,.04);
  box-shadow:0 0 30px rgba(201,169,110,.1);
}
.crosslink:visited { color:inherit; }
.crosslink .cl-label { font-size:8px; letter-spacing:.35em; text-transform:uppercase; color:rgba(255,255,255,.3); margin-bottom:8px; display:block; }
.crosslink .cl-title { font-family:'Cormorant Garamond',serif; font-style:italic; font-size:20px; color:#FFF; }
.crosslink .cl-arrow { font-size:11px; color:#C9A96E; margin-top:6px; display:block; transition:transform .35s ease; }
.crosslink:hover .cl-arrow { transform:translateX(5px); }

/* ── FOOTER (shared, ONE definition) ── */
footer.site-footer {
  border-top:1px solid rgba(255,255,255,.05);
  padding:60px 28px 40px;
  text-align:center;
}
.footer-brand { font-family:'Cormorant Garamond',serif; font-style:italic; font-size:18px; color:#C9A96E; margin-bottom:18px; }
.footer-links { display:flex; flex-wrap:wrap; justify-content:center; gap:24px; margin-bottom:28px; }
.footer-links a { font-size:9px; letter-spacing:.2em; text-transform:uppercase; color:rgba(255,255,255,.4); text-decoration:none; transition:color .3s ease, text-shadow .3s ease; }
.footer-links a:hover { color:#E8D5A3; text-shadow:0 0 12px rgba(201,169,110,.4); }
.footer-links a:visited { color:rgba(255,255,255,.4); }
.footer-contact { font-size:12px; color:rgba(255,255,255,.35); margin-bottom:8px; }
.footer-contact a { color:rgba(201,169,110,.7); text-decoration:none; transition:color .3s ease, text-shadow .3s ease; }
.footer-contact a:hover { color:#E8D5A3; text-shadow:0 0 12px rgba(201,169,110,.4); }
.footer-contact a:visited { color:rgba(201,169,110,.7); }
.footer-meta { font-size:9px; letter-spacing:.15em; color:rgba(255,255,255,.18); margin-top:20px; }

/* Generic glow background utility classes */
.glow-violet { background:radial-gradient(ellipse at 50% 30%,rgba(123,111,255,.06) 0%,transparent 60%),#04040A; }
.glow-gold   { background:radial-gradient(ellipse at 50% 30%,rgba(201,169,110,.07) 0%,transparent 60%),#04040A; }
.glow-rose   { background:radial-gradient(ellipse at 50% 30%,rgba(232,33,58,.05) 0%,transparent 60%),#04040A; }
.glow-multi  { background:radial-gradient(ellipse at 30% 30%,rgba(212,165,116,.05) 0%,transparent 50%),radial-gradient(ellipse at 70% 60%,rgba(123,111,255,.05) 0%,transparent 50%),#04040A; }

@media(max-width:640px){
  .nav-brand { font-size:11px; }
  .section { padding:60px 24px; }
}
