:root{
  --ivory:#FBF8F3; --cream:#F3ECE0; --rose:#D9A7A0; --rose-soft:#E9CFC9;
  --rose-deep:#C2857D; --gold:#C7A977; --gold-soft:#E4D3AE;
  --ink:#4A4039; --ink-soft:#7A6E64; --line:#E7DCCB; --white:#FFFFFF;
  --burgundy:#5A1322; --burgundy-soft:#7A1E30;
  --serif-display:'Cormorant Garamond', serif;
  --serif-tc:'Noto Serif TC', serif;
  --sans:'Inter','Noto Serif TC',sans-serif;
  --maxw:1140px;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{font-family:var(--serif-tc);color:var(--ink);background:var(--ivory);line-height:1.85;-webkit-font-smoothing:antialiased;}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px;}
.eyebrow{font-family:var(--sans);font-size:.72rem;letter-spacing:.32em;text-transform:uppercase;color:var(--gold);font-weight:500;margin-bottom:18px;}

/* NAV */
header{position:sticky;top:0;z-index:50;background:rgba(251,248,243,.88);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);}
.nav{display:flex;align-items:center;justify-content:space-between;height:70px;}
.brand{font-family:var(--serif-display);font-size:1.4rem;letter-spacing:.18em;font-weight:600;}
.brand span{color:var(--rose-deep);}
.nav-links{display:flex;gap:32px;align-items:center;}
.nav-links a{font-family:var(--sans);font-size:.82rem;letter-spacing:.12em;color:var(--ink-soft);transition:color .2s;}
.nav-links a:hover{color:var(--rose-deep);}
.nav-cta{font-family:var(--sans);font-size:.78rem;letter-spacing:.1em;background:var(--rose-deep);color:var(--white)!important;padding:10px 20px;border-radius:999px;transition:background .2s;}
.nav-cta:hover{background:var(--burgundy);}
.menu-btn{display:none;background:none;border:none;font-size:1.5rem;color:var(--ink);cursor:pointer;}

/* BUTTONS */
.btn{font-family:var(--sans);font-size:.86rem;letter-spacing:.08em;font-weight:500;padding:15px 30px;border-radius:999px;cursor:pointer;border:1px solid transparent;transition:all .22s;display:inline-flex;align-items:center;gap:9px;}
.btn-line{background:#06C755;color:var(--white);}
.btn-line:hover{filter:brightness(.94);transform:translateY(-1px);}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--line);}
.btn-ghost:hover{border-color:var(--rose-deep);color:var(--rose-deep);}
.btn-dark{background:var(--burgundy);color:var(--white);}
.btn-dark:hover{background:var(--burgundy-soft);}

/* FOOTER */
footer{background:var(--burgundy);color:#E8D5DB;padding:54px 0 38px;}
footer .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:30px;align-items:flex-start;}
.foot-brand{font-family:var(--serif-display);font-size:1.5rem;letter-spacing:.16em;color:var(--ivory);margin-bottom:10px;}
.foot-brand span{color:var(--gold-soft);}
.foot-tag{font-size:.85rem;max-width:300px;color:#E0C8D0;}
.foot-links{display:flex;gap:26px;font-family:var(--sans);font-size:.82rem;letter-spacing:.06em;flex-wrap:wrap;}
.foot-links a:hover{color:var(--ivory);}
.foot-bottom{border-top:1px solid rgba(231,220,203,.16);margin-top:36px;padding-top:22px;font-family:var(--sans);font-size:.72rem;letter-spacing:.06em;color:#C9A8B2;text-align:center;}

/* Keep Chinese text from orphaning 1-2 chars on a new line */
h1,h2,h3,h4,h5,.zh,.sub,.intro,.quote-zh,.card p,.svc p,.why-card p,.door p,.door li,.mstep span{
  line-break:strict; word-break:keep-all; overflow-wrap:break-word;
}

@media(max-width:860px){
  .nav-links{display:none;position:absolute;top:70px;left:0;right:0;flex-direction:column;background:var(--ivory);padding:18px 28px;border-bottom:1px solid var(--line);gap:16px;}
  .nav-links.open{display:flex;}
  .menu-btn{display:block;}
}

/* Language switcher */
.lang-switch{display:flex;gap:2px;align-items:center;border:1px solid var(--line);border-radius:999px;padding:3px;background:var(--white);}
.lang-switch button{font-family:var(--sans);font-size:.72rem;letter-spacing:.04em;border:none;background:transparent;color:var(--ink-soft);padding:6px 11px;border-radius:999px;cursor:pointer;transition:all .18s;}
.lang-switch button.active{background:var(--burgundy);color:var(--white);}
.lang-switch button:hover:not(.active){color:var(--burgundy);}
@media(max-width:860px){
  .lang-switch{margin-left:auto;margin-right:10px;}
}
