/* Shande TCM contemporary refinement, 19 Oct 2026.
   Additive layer over approved v20: all original logos, photographs, markup,
   routes, tools, downloads, and content system remain intact. */
:root{
  --jade:#123e34;
  --jade-dark:#092d27;
  --jade-mid:#235a4b;
  --cream:#f7f5ec;
  --paper:#fffefa;
  --ink:#19372f;
  --muted:#52665e;
  --gold:#a97a32;
  --gold2:#dbc38a;
  --line:#e3e4d9;
  --shadow:0 20px 52px rgba(8,45,36,.075);
}
html { scroll-padding-top: 116px; }
body { background:var(--paper); color:var(--ink); text-rendering:optimizeLegibility; }
::selection { background:#d5e7db; color:#0b3329; }
:focus-visible { outline:3px solid #b37b27!important; outline-offset:3px!important; }
a,button { -webkit-tap-highlight-color:transparent; }
button,input,textarea,select { font-family:var(--sans); }
img { height:auto; }
.wrap { width:min(1240px,calc(100% - 64px)); }
.topline { background:var(--jade-dark); }
.topline__inner { letter-spacing:.045em; }
.header { background:rgba(255,254,249,.975); border-bottom:1px solid rgba(13,65,51,.10); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px); }
.header.is-scrolled { box-shadow:0 8px 28px rgba(10,45,35,.09); }
.header__inner { height:92px; gap:20px; }
.brand { min-width:270px; gap:14px; }
.brand>img { width:58px; height:58px; object-fit:contain; flex-shrink:0; }
.brand__text b { font-size:22px; letter-spacing:.235em; }
.brand__text small { letter-spacing:.37em; font-size:9px; }
.nav { gap:21px; font-size:13px; }
.nav>a:not(.btn),.nav-item>.nav-parent { transition:color .2s ease; }
.nav>a:not(.btn):hover,.nav-item>.nav-parent:hover { color:var(--jade-mid); }
.nav-dropdown { background:#fffefa; border-color:#e1e6d8; box-shadow:0 25px 60px rgba(10,46,36,.14); }
.nav-dropdown a { font-size:13px; line-height:1.32; }
.nav-dropdown a:hover,.nav-dropdown a:focus-visible { background:#edf3eb; }
.btn { min-height:48px; padding:12px 24px; font-size:13.5px; letter-spacing:.005em; transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease; }
.btn--gold { background:#ad802e; box-shadow:0 10px 26px rgba(100,66,17,.16); color:#fff; }
.btn--gold:hover { background:#946920; box-shadow:0 14px 28px rgba(100,66,17,.20); transform:translateY(-2px); }
.btn--outline { border-color:#a9bcb1; background:#fffefa; }
.btn--outline:hover { border-color:var(--jade); background:#eef4ed; }
.btn--glass { background:rgba(7,42,33,.35); }
.btn--glass:hover { background:rgba(7,42,33,.66); transform:translateY(-2px); }
.kicker,.v6-kicker { font-size:12px; letter-spacing:.20em; color:#936820; }
.section { padding-block:82px; }
.section h2,.v21-depth__head h2,.v6-section-head h2 { letter-spacing:-.025em; }
.lead { color:#425b51; line-height:1.8; }
/* The approved hero photograph is deliberately unobstructed on the right. */
.v6-hero { height:auto; min-height:606px; padding:74px 0 68px; }
.v6-hero__bg { object-position:center 53%!important; }
.v6-hero__overlay { background:linear-gradient(90deg,rgba(4,35,28,.96) 0%,rgba(4,35,28,.91) 28%,rgba(4,35,28,.68) 46%,rgba(4,35,28,.20) 70%,rgba(4,35,28,.035) 100%)!important; }
.v6-hero__inner { min-height:460px; }
.v6-hero__copy { width:min(625px,57%); }
.v6-hero h1 { font-size:clamp(53px,5vw,74px); line-height:1.055; letter-spacing:-.04em; margin:16px 0 23px; }
.v6-hero h1 em { color:#f4d995; }
.v6-hero__lead { font-size:15.5px; line-height:1.79; max-width:560px; margin-bottom:25px; }
.v6-hero__actions { gap:12px; }
.v6-proof { margin-top:35px; padding-top:22px; gap:12px; }
.v6-proof div { padding-right:10px; margin-right:0; }
.v6-proof b { font-size:12.5px; line-height:1.4; }
.v6-proof span { font-size:11.5px; line-height:1.48; margin-top:5px; color:rgba(255,255,255,.80); }
.v20-facts { background:#fffefa; border-bottom:1px solid var(--line); }
.v20-fact { padding-block:26px!important; }
.v20-fact b { font-size:19px!important; line-height:1.25!important; }
.v20-fact span { font-size:12px!important; color:var(--muted)!important; }
.v20-fact small { font-size:10.5px!important; letter-spacing:.14em!important; }
/* Cards: more breathing room, useful legible summaries. */
.v6-services { padding:92px 0 100px; background:var(--cream); }
.v6-section-head { margin-bottom:36px; }
.v6-section-head h2 { font-size:clamp(39px,3.7vw,54px); }
.v6-section-head__right { font-size:15px; line-height:1.75; }
.v6-grid,.service-grid,.service-grid--large { gap:24px!important; }
.v6-card,.service-card,.article-card,.topic-card--visual,.v21-depth__card { border-radius:20px!important; border-color:#e2e4d8!important; box-shadow:0 9px 28px rgba(17,49,37,.065)!important; }
.v6-card figure,.service-card figure { aspect-ratio:5/3!important; }
.v6-card__body { padding:23px 24px 25px!important; min-height:200px!important; }
.v6-card .cn { font-size:13px!important; margin-bottom:8px!important; }
.v6-card h3 { font-size:25px!important; line-height:1.19!important; margin-bottom:10px!important; }
.v6-card p { font-size:13.5px!important; line-height:1.65!important; margin-bottom:17px!important; }
.v6-card b { font-size:13px!important; }
.service-card__body { padding:24px!important; }
.service-card__body p { font-size:14px!important; line-height:1.68!important; }
.service-card__body b { font-size:13px!important; }
.v21-depth__card { padding:30px!important; }
.v21-depth__card p { font-size:14px!important; line-height:1.75!important; }
.v6-story { padding:90px 0; background:#fffefa; }
.v6-story__visual { height:450px; border-radius:22px; }
.v6-story__content>h2 { font-size:clamp(37px,3.4vw,52px); line-height:1.13; }
.v6-story__content>p:not(.v6-kicker) { font-size:15px; line-height:1.77; }
.v6-story__points b { font-size:14px; }
.v6-story__points span { font-size:12.5px; line-height:1.65; }
.inner-hero { min-height:448px!important; max-height:none!important; background:#f7f5ee; }
.inner-hero__copy { padding:65px 0; }
.inner-hero__copy h1 { font-size:clamp(43px,4vw,60px); line-height:1.09; }
.inner-hero__copy p:last-child { font-size:16px; line-height:1.8; }
.inner-hero>figure { height:auto!important; max-height:none!important; min-height:448px!important; }
.inner-hero>figure img { height:100%!important; max-height:none!important; }
.prose-block p { font-size:15px; line-height:1.82; }
.contact-card,.qr-card,.notice,.booking-card { border-color:var(--line)!important; border-radius:20px!important; }
.article-card__body { padding:24px 25px 26px!important; }
.article-card h2 { line-height:1.24!important; }
.article-card p,.article-grid--2 .article-card p { font-size:14px!important; line-height:1.75!important; }
.article-card b { font-size:12.5px!important; }
.article-grid--2 .article-card__body { min-height:245px!important; }
.article-hero { background:var(--cream); }
.article-body { font-size:16px; line-height:1.83; color:#354f45; }
.article-body p,.article-body li { line-height:1.83; }
.article-body a:not(.btn) { text-decoration:underline; text-decoration-color:#9ebcad; text-underline-offset:3px; }
.article-body a:hover { text-decoration-color:#145743; }
.library-search-panel { background:linear-gradient(135deg,#fffefa,#f1f5ec); border-color:#dfe7dc; border-radius:22px; }
.library-search-box input { min-height:54px; font-size:15px; border-color:#c8d7ca; }
.library-search-panel__copy p:last-child { font-size:14px; }
.library-search-status { font-size:13px; }
.v6-location { background:linear-gradient(110deg,#092e26,#194c3d); }
.v6-location__grid { min-height:380px; }
.v6-location__copy h2 { font-size:clamp(34px,3vw,44px); }
.v6-location__copy p { font-size:14px; line-height:1.75; }
.v6-location__facts b { font-size:13px; }
.v6-location__facts span { font-size:12px; }
.v6-location__photo { height:380px; }
.footer { background:#092c26; padding-top:62px; }
.footer h3 { font-size:12px; }
.footer p,.footer li,.footer a { font-size:12.5px; line-height:1.85; }
.footer__bottom { font-size:11px; line-height:1.65; }
/* Small gestures improve wayfinding but not keyboard or reduced-motion flow. */
@media(hover:hover) and (prefers-reduced-motion:no-preference) {
  a.v6-card:hover,a.service-card:hover,a.article-card:hover,.topic-card--visual:hover { transform:translateY(-4px); box-shadow:0 25px 44px rgba(10,53,39,.12)!important; }
}
@media(max-width:1180px) {
  .nav { gap:12px; }
  .brand { min-width:245px; }
  .brand__text b { font-size:20px; }
  .v6-hero__copy { width:min(605px,62%); }
}
@media(max-width:1080px) {
  .header__inner { height:82px; }
  .nav.is-open { background:#fffefa!important; border:1px solid #dce4db!important; border-radius:20px!important; box-shadow:0 22px 54px rgba(8,43,33,.16)!important; padding:16px!important; }
  .nav.is-open>a:not(.btn),.nav.is-open>.nav-item>.nav-parent { font-size:15px!important; line-height:1.45!important; }
  .nav-dropdown { background:#f4f6ef; }
  .nav-dropdown a { font-size:13px!important; min-height:36px; align-items:center; }
  .inner-hero { grid-template-columns:1fr 1fr!important; }
}
@media(max-width:850px) {
  .wrap { width:min(100% - 40px,1240px); }
  .v6-hero { min-height:620px; padding:70px 0; }
  .v6-hero__copy { width:min(620px,76%); }
  .v6-hero__overlay { background:linear-gradient(90deg,rgba(4,35,28,.97) 0%,rgba(4,35,28,.82) 55%,rgba(4,35,28,.35) 100%)!important; }
  .v6-story__visual { height:390px; }
  .v6-story__content { grid-template-columns:1fr; }
  .v6-story__points { grid-column:1; grid-row:auto; border-left:0; border-top:1px solid var(--line); padding:10px 0 0; margin-top:18px; }
  .v6-story__points div { padding:10px 0; }
  .section,.v6-services,.v6-story { padding-block:66px; }
  .inner-hero { grid-template-columns:1fr!important; }
  .inner-hero>figure { min-height:340px!important; max-height:450px!important; }
  .inner-hero__copy { padding:50px 0; }
}
@media(max-width:720px) {
  html { scroll-padding-top:100px; }
  body { padding-bottom:calc(62px + env(safe-area-inset-bottom)); }
  .wrap { width:calc(100% - 36px); }
  .topline__inner { justify-content:center; font-size:10px; }
  .header__inner { height:74px; gap:10px; }
  .brand { min-width:0; gap:8px; }
  .brand>img { width:42px; height:48px; }
  .brand__text b { font-size:16px; letter-spacing:.17em; }
  .brand__text small { font-size:7px; letter-spacing:.22em; margin-top:6px; }
  .v6-hero { min-height:0; padding:72px 0 64px; }
  .v6-hero__bg { object-position:70% center!important; }
  .v6-hero__overlay { background:linear-gradient(180deg,rgba(5,36,29,.63) 0%,rgba(5,36,29,.89) 27%,rgba(5,36,29,.96) 59%,rgba(5,36,29,.99) 100%)!important; }
  .v6-hero__inner { min-height:0; }
  .v6-hero__copy { width:100%; }
  .v6-hero h1 { font-size:clamp(40px,11vw,55px); line-height:1.07; margin:13px 0 22px; }
  .v6-hero__lead { font-size:14.5px; line-height:1.8; }
  .v6-hero__actions { flex-direction:column; }
  .v6-hero__actions .btn { width:100%; min-height:52px; padding-inline:11px; }
  .v6-proof { margin-top:28px; padding-top:20px; gap:14px; }
  .v6-proof b { font-size:12px; }
  .v6-proof span { font-size:11px; }
  .v20-fact { padding-block:19px!important; }
  .v20-fact b { font-size:16px!important; }
  .v20-fact span { font-size:11.5px!important; }
  .section,.v6-services,.v6-story { padding-block:52px; }
  .section h2,.v6-section-head h2 { font-size:clamp(30px,8vw,39px); line-height:1.16; }
  .v6-section-head { display:block; margin-bottom:26px; }
  .v6-section-head__right { font-size:14px; }
  .v6-grid,.service-grid,.service-grid--large { gap:18px!important; }
  .v6-card__body { padding:20px 20px 23px!important; min-height:0!important; }
  .v6-card h3 { font-size:24px!important; }
  .v6-card p { font-size:14px!important; }
  .service-card__body { padding:21px!important; }
  .service-card__body p { font-size:14px!important; }
  .v21-depth__card { padding:23px!important; }
  .v6-story__visual { height:360px; }
  .v6-story__content>h2 { font-size:36px; }
  .v6-story__content>p:not(.v6-kicker) { font-size:14px; }
  .inner-hero__copy { padding:39px 0; }
  .inner-hero__copy h1 { font-size:clamp(35px,9.2vw,44px); }
  .inner-hero__copy p:last-child { font-size:14.5px; }
  .inner-hero>figure { min-height:240px!important; max-height:320px!important; }
  .prose-block p { font-size:14px; }
  .article-card__body { padding:20px!important; }
  .article-grid--2 .article-card__body { min-height:0!important; }
  .article-card p { font-size:14px!important; }
  .article-body { font-size:15.5px; }
  .footer { padding-top:46px; }
  .footer p,.footer li,.footer a { font-size:12px; }
  .mobile-actions { background:#fffefa; border-top:1px solid #dce4d9; box-shadow:0 -7px 28px rgba(9,44,35,.08); }
  .mobile-actions a { font-size:13px; }
  .mobile-actions a:last-child { background:var(--jade); color:#fff; }
}
@media(max-width:390px) {
  .brand__text b { font-size:14px; }
  .brand>img { width:37px; height:44px; }
  .v6-hero h1 { font-size:40px; }
  .v6-proof { grid-template-columns:1fr 1fr; }
}
@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after { scroll-behavior:auto!important; animation-duration:.01ms!important; transition-duration:.01ms!important; }
}
/* Override legacy fixed hero heights. Without these !important declarations,
   longer bilingual copy and proof points can be clipped at some widths. */
.v6-hero { height:auto!important; min-height:640px!important; }
.v6-hero__inner { height:auto!important; min-height:0!important; padding:0!important; align-items:center!important; }
@media(max-width:850px) { .v6-hero { min-height:0!important; } }
@media(max-width:720px) { .v6-hero { height:auto!important; min-height:0!important; } }
html[lang^="zh"] .v6-hero h1 { line-height:1.22; font-size:clamp(42px,4.2vw,63px); }
@media(max-width:720px) {
  html[lang^="zh"] .v6-hero h1 { font-size:clamp(32px,8.6vw,40px); line-height:1.31; }
}
/* Compact viewport navigation: the legacy mobile minimum brand width caused
   the menu button to sit off screen at 320–375 CSS pixels. */
@media(max-width:720px) {
  .header__inner { gap:9px!important; }
  .header__inner>.brand { min-width:0!important; width:auto!important; flex:0 1 auto!important; justify-content:flex-start!important; }
  .header__inner>.mobile-lang { margin-left:auto!important; flex-shrink:0!important; }
  .header__inner>.menu { margin-left:0!important; width:44px!important; padding:6px!important; flex-shrink:0!important; }
}
@media(max-width:360px) {
  html[lang^="zh"] .v6-hero h1 { font-size:29px!important; }
}
/* Legible colour contrast for small calls to action and hero overlines. */
.btn--gold { background:#956820!important; color:#fff!important; }
.btn--gold:hover { background:#805817!important; }
.v6-hero .v6-kicker { color:#efd18c!important; }
