:root{
  /* fixed brand tokens */
  --ink:#0a1628;
  --ink-deep:#050d1a;
  --ink-mid:#0f1d35;
  --gold:#c9a961;
  --gold-light:#e4cb89;
  --gold-deep:#a08544;
  --paper:#f7f3ec;
  --paper-warm:#efe8db;
  --line:rgba(201,169,97,.25);
  /* themeable tokens -- DARK (night) defaults */
  --c-bg:#060d18;
  --c-bg-deep:#050d1a;
  --c-bg-alt:#080f1c;
  --c-grad1:#0a1628;
  --c-grad2:#0d1b30;
  --c-grad3:#061122;
  --c-text:#ffffff;
  --c-text-rgb:255,255,255;
  --c-surf1-rgb:13,27,48;
  --c-surf2-rgb:6,17,34;
  --c-surf3-rgb:15,29,53;
  --c-surf4-rgb:10,22,40;
  --c-surf5-rgb:26,40,64;
  --c-nav-rgb:6,13,24;
  --text-mute:rgba(var(--c-text-rgb),.6);
  --text-dim:rgba(var(--c-text-rgb),.45);
}

/* ===== LIGHT (day) theme ===== */
html[data-theme="light"]{
  --gold:#a07f30;
  --gold-light:#bd9540;
  --c-bg:#f7f3ec;
  --c-bg-deep:#efe7d8;
  --c-bg-alt:#f1ebdf;
  --c-grad1:#efe7d6;
  --c-grad2:#e7dcc4;
  --c-grad3:#f4eee2;
  --c-text:#1b2330;
  --c-text-rgb:27,35,48;
  --c-surf1-rgb:255,255,255;
  --c-surf2-rgb:255,255,255;
  --c-surf3-rgb:255,255,255;
  --c-surf4-rgb:255,255,255;
  --c-surf5-rgb:255,255,255;
  --c-nav-rgb:247,243,236;
}

/* ===== Day / Night toggle button ===== */
.theme-toggle{
  display:inline-flex;align-items:center;justify-content:center;
  width:40px;height:40px;margin-left:14px;padding:0;
  background:transparent;border:1px solid var(--line);
  border-radius:6px;cursor:pointer;color:var(--gold-light);
  font-size:16px;line-height:1;transition:all .3s;
}
.theme-toggle:hover{border-color:var(--gold);background:rgba(201,169,97,.08);}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:'Inter','Noto Sans SC',sans-serif;
  background:var(--c-bg);
  color:var(--c-text);
  line-height:1.6;
  overflow-x:hidden;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}

/* Subtle grain across the whole site */
body::before{
  content:"";
  position:fixed;inset:0;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.4'/%3E%3C/svg%3E");
  opacity:.04;pointer-events:none;mix-blend-mode:overlay;z-index:9999;
}

/* ========== NAV ========== */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:100;
  padding:22px 56px;
  display:flex;justify-content:space-between;align-items:center;
  background:linear-gradient(to bottom, rgba(var(--c-nav-rgb),.95), rgba(var(--c-nav-rgb),.7) 70%, transparent);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  transition:padding .3s;
}
.nav .logo{
  display:flex;align-items:center;gap:12px;
}
.nav .logo-mark{
  width:38px;height:38px;
  border:1px solid var(--gold);
  border-radius:50%;
  display:grid;place-items:center;
  position:relative;
  background:radial-gradient(circle at 30% 30%, rgba(228,203,137,.18), transparent 70%);
}
.nav .logo-mark::before{
  content:"";position:absolute;inset:3px;
  border:1px solid rgba(201,169,97,.3);border-radius:50%;
}
.nav .logo-mark span{
  font-family:'Cormorant Garamond',serif;
  font-weight:500;font-size:20px;
  color:var(--gold-light);line-height:1;
}
.nav .logo-text{display:flex;flex-direction:column;line-height:1}
.nav .logo-text .en{
  font-family:'Cormorant Garamond',serif;
  font-weight:500;font-size:19px;
  color:var(--c-text);letter-spacing:.04em;
}
.nav .logo-text .en em{
  font-style:italic;color:var(--gold);font-weight:400;
}
.nav .logo-text .cn{
  font-family:'Noto Serif SC',serif;
  font-size:9px;color:var(--text-dim);
  letter-spacing:.4em;margin-top:4px;
}

.nav ul{
  display:flex;gap:42px;list-style:none;align-items:center;
}
.nav ul a{
  font-family:'Inter',sans-serif;
  font-size:13px;
  color:rgba(var(--c-text-rgb),.75);
  letter-spacing:.15em;
  text-transform:uppercase;
  font-weight:400;
  position:relative;
  padding:6px 0;
  transition:color .3s;
}
.nav ul a .cn{
  font-family:'Noto Serif SC',serif;
  font-size:10px;
  color:var(--text-dim);
  letter-spacing:.25em;
  display:block;
  margin-top:2px;
  text-transform:none;
}
.nav ul a:hover{color:var(--gold-light)}
.nav ul a.active{color:var(--gold)}
.nav ul a.active::after{
  content:"";position:absolute;
  bottom:-4px;left:50%;
  transform:translateX(-50%);
  width:6px;height:6px;border-radius:50%;
  background:var(--gold);
}

.nav-cta{
  padding:11px 22px;
  border:1px solid var(--gold);
  color:var(--gold-light);
  font-family:'Cormorant Garamond',serif;
  font-style:italic;
  font-size:14px;
  letter-spacing:.15em;
  transition:all .3s;
  background:transparent;
  cursor:pointer;
}
.nav-cta:hover{
  background:var(--gold);
  color:var(--ink-deep);
}

/* ========== FOOTER ========== */
footer{
  background:var(--c-bg-deep);
  border-top:1px solid var(--line);
  padding:80px 56px 32px;
  position:relative;
}
footer::before{
  content:"";position:absolute;
  top:-1px;left:50%;
  width:120px;height:1px;
  background:var(--gold);
  transform:translateX(-50%);
}
.foot-grid{
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr 1fr;
  gap:60px;
  max-width:1400px;margin:0 auto;
  padding-bottom:50px;
  border-bottom:1px solid rgba(var(--c-text-rgb),.08);
}
.foot-brand .en{
  font-family:'Cormorant Garamond',serif;
  font-size:28px;color:var(--c-text);letter-spacing:.04em;
}
.foot-brand .en em{font-style:italic;color:var(--gold);}
.foot-brand .cn{
  font-family:'Noto Serif SC',serif;
  font-size:11px;color:var(--text-dim);
  letter-spacing:.45em;margin-top:8px;
}
.foot-brand p{
  font-family:'Cormorant Garamond',serif;
  font-style:italic;font-size:14px;
  color:var(--text-mute);margin-top:20px;
  line-height:1.7;max-width:320px;
}
.foot-col h4{
  font-family:'Cormorant Garamond',serif;
  font-style:italic;font-weight:500;
  font-size:14px;color:var(--gold);
  letter-spacing:.3em;text-transform:uppercase;
  margin-bottom:22px;padding-bottom:12px;
  border-bottom:1px solid rgba(201,169,97,.2);
}
.foot-col ul{list-style:none;display:flex;flex-direction:column;gap:11px;}
.foot-col li{
  font-family:'Inter',sans-serif;
  font-size:13px;color:var(--text-mute);
  transition:color .2s;
}
.foot-col a:hover{color:var(--gold-light)}
.foot-col .label-zh{
  font-family:'Noto Serif SC',serif;
  font-size:11px;color:var(--text-dim);
  letter-spacing:.2em;margin-right:8px;
}
.foot-bottom{
  max-width:1400px;margin:32px auto 0;
  display:flex;justify-content:space-between;align-items:center;
  font-size:11px;color:var(--text-dim);
  letter-spacing:.15em;
}
.foot-bottom .cities span{margin:0 14px;position:relative;}
.foot-bottom .cities span:not(:last-child)::after{
  content:"";position:absolute;
  right:-15px;top:50%;
  width:3px;height:3px;border-radius:50%;
  background:var(--gold);transform:translateY(-50%);
}

/* ========== REUSABLE ========== */
.eyebrow{
  display:inline-flex;align-items:center;gap:14px;
  font-family:'Cormorant Garamond',serif;
  font-style:italic;font-size:13px;
  color:var(--gold);letter-spacing:.4em;
  text-transform:uppercase;
  margin-bottom:24px;
}
.eyebrow::before{
  content:"";width:36px;height:1px;background:var(--gold);
}

.section-title{
  font-family:'Cormorant Garamond',serif;
  font-weight:400;font-size:56px;
  color:var(--c-text);letter-spacing:.02em;line-height:1.15;
  margin-bottom:20px;
}
.section-title em{font-style:italic;color:var(--gold);font-weight:500;}
.section-title-cn{
  font-family:'Noto Serif SC',serif;
  font-weight:300;font-size:18px;
  color:var(--text-mute);letter-spacing:.3em;
  margin-bottom:40px;
}

.btn-gold{
  display:inline-flex;align-items:center;gap:12px;
  padding:16px 34px;
  background:var(--gold);
  color:var(--ink-deep);
  font-family:'Cormorant Garamond',serif;
  font-style:italic;font-size:16px;
  letter-spacing:.2em;
  border:none;cursor:pointer;
  transition:all .3s;
}
.btn-gold:hover{background:var(--gold-light);transform:translateY(-2px);}
.btn-gold::after{content:"→";font-style:normal;font-size:18px;}

.btn-ghost{
  display:inline-flex;align-items:center;gap:12px;
  padding:16px 34px;
  border:1px solid var(--gold);
  color:var(--gold-light);
  font-family:'Cormorant Garamond',serif;
  font-style:italic;font-size:16px;
  letter-spacing:.2em;
  background:transparent;cursor:pointer;
  transition:all .3s;
}
.btn-ghost:hover{background:rgba(201,169,97,.1);}
.btn-ghost::after{content:"→";font-style:normal;font-size:18px;}

/* ========== MOBILE ========== */
@media (max-width:880px){
  .nav{padding:16px 22px;}
  .nav ul{display:none;}
  .nav-cta{padding:9px 14px;font-size:12px;}
  .section-title{font-size:36px;}
  .section-title-cn{font-size:14px;}
  footer{padding:60px 22px 24px;}
  .foot-grid{grid-template-columns:1fr;gap:40px;padding-bottom:32px;}
  .foot-bottom{flex-direction:column;gap:16px;text-align:center;}

  /* Mobile nav drop-down menu (toggled by .nav-toggle via script.js) */
  .nav{flex-wrap:wrap;}
  .nav ul.open{
    display:flex;
    flex-direction:column;
    gap:4px;
    flex-basis:100%;
    order:3;
    margin-top:14px;
    padding-top:14px;
    border-top:1px solid rgba(var(--c-text-rgb),.08);
  }
  .nav ul.open li{width:100%;}
  .nav ul.open a{padding:10px 0;display:block;}
  .nav-toggle{display:inline-flex;}
}

/* ========== MOBILE NAV TOGGLE BUTTON ========== */
.nav-toggle{
  display:none;
  flex-direction:column;
  justify-content:center;
  gap:5px;
  width:40px;height:40px;
  margin-left:14px;
  padding:0;
  background:transparent;
  border:1px solid rgba(var(--c-text-rgb),.18);
  border-radius:6px;
  cursor:pointer;
}
.nav-toggle span{
  display:block;
  width:18px;height:1.5px;
  margin:0 auto;
  background:var(--gold,#c9a96a);
  transition:transform .25s ease, opacity .25s ease;
}
.nav-toggle.open span:nth-child(1){transform:translateY(6.5px) rotate(45deg);}
.nav-toggle.open span:nth-child(2){opacity:0;}
.nav-toggle.open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg);}

/* ========== CONTACT FORM FEEDBACK + VALIDATION ========== */
.form-notice{
  margin:0 0 18px;
  padding:12px 16px;
  border-radius:6px;
  font-family:'Noto Sans SC',sans-serif;
  font-size:13px;
  line-height:1.5;
}
.form-notice[data-type="error"]{
  background:rgba(180,60,60,.12);
  border:1px solid rgba(180,60,60,.4);
  color:#e8a9a9;
}
.form-notice[data-type="success"]{
  background:rgba(201,169,106,.12);
  border:1px solid rgba(201,169,106,.4);
  color:var(--gold-light,#d8be8e);
}
.field-error{
  border-color:rgba(180,60,60,.7) !important;
  box-shadow:0 0 0 2px rgba(180,60,60,.15);
}

/* ========== REVEAL-ON-SCROLL (progressive enhancement) ========== */
.js-ready [data-reveal]{
  opacity:0;
  transform:translateY(18px);
  transition:opacity .7s ease, transform .7s ease;
}
.js-ready [data-reveal].is-visible{
  opacity:1;
  transform:none;
}

/* ===== AEAS registered-agent badge ===== */
.aeas-badge{
  display:inline-flex;align-items:center;gap:10px;
  padding:9px 22px;
  border:1px solid var(--gold);
  font-family:'Cormorant Garamond',serif;font-style:italic;
  font-size:14px;color:var(--gold-light);letter-spacing:.12em;
}
