:root{
  --ink:#0b2238;
  --ink-2:#102b45;
  --graphite:#5e6874;
  --stone:#f5f6f7;
  --line:#d8dde3;
  --gold:#b49445;
  --white:#ffffff;
  --body-font:Aptos, Arial, Helvetica, sans-serif;
  --title-font:Garamond, 'EB Garamond', Georgia, 'Times New Roman', serif;
  --cn-font:Aptos, SimSun, 'Songti SC', STSong, serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#fff;color:var(--ink);font-family:var(--body-font);font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body.cn-site{font-family:var(--cn-font);letter-spacing:.01em}
a{color:inherit;text-decoration:none}.container{width:min(1180px,calc(100% - 48px));margin:0 auto}
.site-header{position:fixed;top:0;left:0;right:0;height:76px;display:flex;align-items:center;gap:24px;padding:12px 44px;background:rgba(255,255,255,.96);backdrop-filter:blur(10px);border-bottom:1px solid rgba(216,221,227,.65);z-index:1000}
.brand{display:flex;align-items:center}.brand img{width:54px;height:auto;display:block}.nav{margin-left:auto;display:flex;align-items:center;gap:22px;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#33475c}.nav a{position:relative;padding:8px 0}.nav a:hover{color:var(--ink)}.nav a:after{content:'';position:absolute;left:0;right:0;bottom:1px;height:1px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .25s}.nav a:hover:after{transform:scaleX(1)}
.language-switch{display:flex;align-items:center;gap:6px;font-size:11px;letter-spacing:.08em;text-transform:uppercase}.language-switch a{border:1px solid var(--line);padding:5px 8px;background:#fff}.language-switch a.active{background:var(--ink);color:#fff;border-color:var(--ink)}.language-switch span{color:#7a8490}
.section{padding:88px 0}.hero{min-height:720px;padding-top:132px;display:flex;align-items:center;position:relative;overflow:hidden;border-bottom:1px solid #e9edf1}.hero-bg{position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.98) 0%,rgba(255,255,255,.9) 48%,rgba(255,255,255,.55) 100%),url('hero-london-ink.jpg') center right/cover no-repeat;opacity:.96}.hero .container{position:relative}.hero-copy{max-width:820px}.eyebrow{margin:0 0 16px;color:var(--gold);font-weight:700;font-size:12px;letter-spacing:.16em;text-transform:uppercase}.cn-site .eyebrow{letter-spacing:.08em}
h1,h2,h3{margin:0;color:var(--ink);line-height:1.08}h1{font-family:var(--title-font);font-size:clamp(40px,4.4vw,54px);font-weight:600;letter-spacing:-.032em;max-width:810px}h2{font-family:var(--title-font);font-size:clamp(28px,2.6vw,36px);font-weight:600;letter-spacing:-.022em}h3{font-size:20px;font-weight:700}.cn-site h1,.cn-site h2{font-family:SimSun,'Songti SC',STSong,serif;font-weight:700;letter-spacing:.02em}.cn-site h1{font-size:clamp(34px,4.1vw,50px);max-width:920px}.cn-site h2{font-size:clamp(24px,2.4vw,32px)}
.lead{max-width:650px;margin:24px 0 0;font-size:19px;color:#33475c}.rule{width:84px;height:3px;background:var(--ink);margin:30px 0 28px}.hero h2{font-size:34px;letter-spacing:-.015em}.cn-site .hero h2{font-size:30px}.supporting{max-width:760px;margin:16px 0 0;color:var(--graphite);font-size:16.5px}.cn-site .hero .supporting{max-width:960px}.hero-actions{display:flex;gap:16px;margin-top:32px}.button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 22px;border:1px solid var(--ink);font-family:var(--body-font);font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;transition:all .25s}.button.primary{background:var(--ink);color:white}.button.primary:hover{background:#173a5b}.button.secondary{background:transparent;color:var(--ink)}.button.secondary:hover{border-color:var(--gold);color:var(--gold)}
.about-section,.resources-section{background:var(--stone)}.about-grid{display:grid;grid-template-columns:1fr;gap:52px;align-items:start}.text-block>p:not(.eyebrow){max-width:760px;color:#4d5965;font-size:17px}.capability-line{margin:16px 0 24px;max-width:920px;color:#44515e;font-family:var(--title-font);font-size:20px;font-style:italic;letter-spacing:-.01em}.cn-site .capability-line{font-family:SimSun,'Songti SC',STSong,serif;font-size:18px;font-style:normal;color:#3f4c58}.quote-card{display:none}.phase-row{margin-top:40px;display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:#d8dde3}.phase{background:white;padding:26px 28px;min-height:205px;transition:transform .25s, box-shadow .25s}.phase:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(11,34,56,.12)}.phase strong{font-family:var(--title-font);font-size:30px;line-height:1.1;display:block;color:var(--ink)}.cn-site .phase strong{font-family:SimSun,'Songti SC',STSong,serif;font-size:28px}.phase span{display:block;color:var(--gold);font-weight:700;margin:12px 0 14px;font-size:13px}.phase p{margin:0;color:#4d5965;font-size:15px}.phase .phase-copy{display:block;margin-top:0}
.problems-section{background:var(--ink);color:white}.problems-section .eyebrow,.problems-section h2{color:white}.problems-section .section-head p:last-child{color:#c7d1da}.problem-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.problem-card{background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.1);padding:30px;min-height:220px;transition:background .25s, transform .25s}.problem-card:hover{background:rgba(255,255,255,.09);transform:translateY(-4px)}.problem-card h3{font-family:var(--title-font);font-size:28px;color:white}.cn-site .problem-card h3{font-family:SimSun,'Songti SC',STSong,serif}.problem-card span{display:block;color:var(--gold);font-weight:700;margin:10px 0 14px;font-size:13px}.problem-card p{color:#d5dde5;margin:0;font-size:15px}.problem-intro{max-width:760px;color:#c7d1da;font-size:17px;margin-bottom:34px}
.section-head{max-width:850px;margin-bottom:44px}.section-head p:last-child{color:#5e6874;font-size:18px}.cards{display:grid;gap:1px;background:#d8dde3;border:1px solid #d8dde3}.four-cards{grid-template-columns:repeat(4,1fr)}.card{background:#fff;padding:30px 26px;min-height:250px;transition:background .25s, transform .25s}.card:hover{background:#fbfbfc;transform:translateY(-4px)}.card-number{display:inline-block;color:var(--gold);font-size:13px;font-weight:700;margin-bottom:22px}.card h3{min-height:56px;display:flex;align-items:flex-start}.cn-site .card h3{min-height:62px}.card p{color:#5e6874;margin:18px 0 0;font-size:15px}.expertise-section{background:#fff}.expertise-top{display:block;margin-bottom:36px;max-width:900px}.expertise-top h2{white-space:nowrap}.expertise-top p{margin:18px 0 0;color:#5e6874;font-size:18px;max-width:900px;white-space:normal}.expertise-list{border-top:1px solid var(--line)}.expertise-item{display:grid;grid-template-columns:64px minmax(230px,.55fr) minmax(0,1fr);gap:26px;align-items:center;border-bottom:1px solid var(--line);padding:24px 0;transition:background .25s,padding-left .25s}.expertise-item:hover{background:#f7f8f9;padding-left:18px}.expertise-item .num{color:var(--gold);font-weight:700;font-size:13px}.expertise-item p{margin:0;color:#5e6874}.resources-section .resource-card{background:#fff;border:1px solid var(--line);padding:32px 34px;max-width:560px;box-shadow:0 12px 28px rgba(11,34,56,.06)}.resource-card p{color:#5e6874}.contact-section{padding-bottom:110px}.contact-card{display:grid;grid-template-columns:1fr minmax(300px,420px);gap:46px;align-items:center;background:var(--ink);color:white;padding:52px 56px}.contact-card h2,.contact-card .eyebrow{color:white}.contact-card p{color:#d3dce4}.contact-details{background:#fff;color:var(--ink);border-top:4px solid var(--gold);padding:28px 32px;display:grid;gap:8px;text-align:left;box-shadow:0 15px 35px rgba(0,0,0,.12)}.contact-details span{color:#5e6874;text-transform:uppercase;font-size:12px;letter-spacing:.12em}.contact-details a{font-family:var(--body-font);font-size:22px;font-weight:600;letter-spacing:0;color:var(--ink)}.cn-site .contact-details a{font-family:var(--body-font)}.site-footer{background:#071827;color:#d3dce4;padding:44px 0;font-size:13px}.footer-grid{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:36px}.site-footer strong{color:white}.site-footer p{max-width:780px}.footer-links{display:flex;gap:18px;align-items:start;flex-wrap:wrap}.footer-links a{color:#d3dce4}.footer-links a:hover{color:#fff}.reveal{animation:fadeUp .6s ease both}@keyframes fadeUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:960px){.site-header{height:auto;position:sticky;padding:14px 22px;flex-wrap:wrap}.brand img{width:48px}.nav{order:3;width:100%;overflow:auto;gap:18px}.hero{min-height:auto;padding:90px 0}.about-grid,.expertise-top,.contact-card,.footer-grid{grid-template-columns:1fr}.phase-row,.four-cards,.problem-cards{grid-template-columns:1fr}.expertise-top p{grid-column:1/2}.expertise-top h2{white-space:normal}.expertise-item{grid-template-columns:42px 1fr}.expertise-item p{grid-column:2/3}.contact-details{text-align:left}.hero-actions{flex-direction:column;align-items:flex-start}}
@media(max-width:640px){.container{width:min(100% - 30px,1180px)}.section{padding:68px 0}.hero-copy h1{font-size:38px}.hero h2{font-size:28px}.lead{font-size:17px}.quote-card p{font-size:22px}.contact-card{padding:34px 28px}.contact-details a{font-size:18px}}

.about-section h2{font-size:clamp(30px,3.0vw,40px);white-space:nowrap}
@media(max-width:900px){.about-section h2{white-space:normal}}

.card p{padding-top:4px}.card h3{min-height:72px;align-items:flex-start}.cn-site .card h3{min-height:76px}

.problem-card.problem{background:rgba(255,255,255,.04)}
.problem-card.solution{background:rgba(255,255,255,.075);border-top:3px solid var(--gold)}
.problem-label{display:block;color:var(--gold);font-size:12px;text-transform:uppercase;letter-spacing:.11em;font-weight:700;margin-bottom:10px}
.problem-card h3{min-height:64px}
.problem-card.solution h3{color:#fff}
.problem-card.problem h3{color:#fff}
.latin{font-family:var(--body-font)!important}
.cn-site .button,.cn-site .nav,.cn-site .language-switch,.cn-site .latin,.cn-site .contact-details a{font-family:var(--body-font)!important}


/* v9 refinements: non-duplicative challenge/response cards and consistent headings */
.problem-cards{grid-template-columns:repeat(3,1fr);align-items:stretch}
.problem-card{position:relative;overflow:visible;min-height:230px}
.problem-card.challenge{background:rgba(255,255,255,.04)}
.problem-card.solution{background:rgba(255,255,255,.075);border-top:3px solid var(--gold)}
.expertise-section .section-head{max-width:850px;margin-bottom:44px}
.expertise-section .section-head p:last-child{color:#5e6874;font-size:18px;max-width:850px}
.expertise-section .eyebrow,.services-section .eyebrow{font-size:12px;color:var(--gold);letter-spacing:.16em;text-transform:uppercase;font-weight:700}
.cn-site .expertise-section .eyebrow,.cn-site .services-section .eyebrow{letter-spacing:.08em}
.single-line-cn{white-space:nowrap;max-width:1200px!important}
@media(max-width:1100px){.single-line-cn{white-space:normal}}

/* v10 refinements */
.problem-card{transition:background .25s ease, transform .25s ease, box-shadow .25s ease, border-color .25s ease}
.problem-card:hover{background:rgba(255,255,255,.10);transform:translateY(-4px);box-shadow:0 18px 36px rgba(0,0,0,.14);border-color:rgba(255,255,255,.18)}
.problem-card.solution:hover{border-top-color:var(--gold)}
.cn-site .phase-copy .latin,.cn-site .single-line-cn .latin{font-family:var(--body-font);font-style:normal;white-space:nowrap}


/* v11 fix: keep embedded English terms inside Chinese sentences inline */
.phase p span.latin,
.phase .phase-copy span.latin,
.cn-site .phase p span.latin,
.cn-site .phase-copy span.latin,
.cn-site .card p span.latin,
.cn-site .problem-card p span.latin,
.cn-site p span.latin {
  display:inline!important;
  margin:0!important;
  color:inherit!important;
  font-weight:inherit!important;
  font-size:inherit!important;
  line-height:inherit!important;
  white-space:nowrap!important;
}


/* v12 fix: keep mixed English/Chinese solution titles on one line */
.problem-card h3 .latin,
.cn-site .problem-card h3 .latin {
  display:inline!important;
  margin:0!important;
  color:inherit!important;
  font-weight:inherit!important;
  font-size:inherit!important;
  line-height:inherit!important;
  white-space:nowrap!important;
  font-family:var(--body-font)!important;
}
.nowrap-title{white-space:nowrap;}
@media(max-width:720px){.nowrap-title{white-space:normal;}}
