@font-face { font-family: 'Cormorant Garamond'; src: url('/fonts/cormorantgaramond.woff2') format('woff2'); font-style: normal; font-weight: 400; font-display: swap; }
@font-face { font-family: 'DM Sans'; src: url('/fonts/dmsans.woff2') format('woff2'); font-style: normal; font-weight: 100 1000; font-display: swap; }
@font-face { font-family: 'Noto Sans SC'; src: url('/fonts/notosanssc.woff2') format('woff2'); font-style: normal; font-weight: 400; font-display: swap; }

:root { color-scheme: light; --paper: #f5f2eb; --ink: #1b1e1c; --forest: #245849; --line: #d6d4cc; --sans: 'DM Sans', 'Noto Sans SC', 'PingFang SC', 'Microsoft YaHei', sans-serif; --serif: 'Cormorant Garamond', 'Songti SC', SimSun, serif; --gutter: clamp(24px, 5vw, 80px); }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 36px; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--sans); font-weight: 400; -webkit-font-smoothing: antialiased; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; }
button { color: inherit; font: inherit; }
a:focus-visible, button:focus-visible { outline: 2px solid var(--forest); outline-offset: 6px; }
::selection { background: #d7e0d6; color: var(--ink); }
.page-shell { max-width: 1760px; margin-inline: auto; padding-inline: var(--gutter); }
.skip-link { position: absolute; top: 12px; left: 24px; padding: 12px 18px; background: var(--ink); color: var(--paper); transform: translateY(-200%); z-index: 10; }
.skip-link:focus { transform: none; }
.site-header { padding-top: clamp(36px, 4.85vw, 76px); display: flex; align-items: flex-start; justify-content: space-between; gap: 28px; }
.wordmark { display: inline-block; font-size: clamp(23px, 2.08vw, 33px); font-weight: 500; letter-spacing: .1em; text-decoration: none; line-height: 1.3; }
.wordmark::after { display: block; content: ''; width: 53px; height: 3px; margin-top: 14px; background: var(--forest); }
.header-controls, .main-nav, .language-switch { display: flex; align-items: center; }
.header-controls { gap: clamp(32px, 3.65vw, 58px); padding-top: 4px; }
.main-nav, .language-switch { gap: clamp(28px, 3.65vw, 58px); }
.main-nav a { font-size: clamp(15px, 1.25vw, 20px); text-decoration: none; }
.main-nav a:hover { text-decoration: underline; text-underline-offset: 6px; text-decoration-color: var(--forest); }
.language-switch button { background: none; border: 0; padding: 0 2px 10px; font-size: clamp(15px, 1.25vw, 20px); cursor: pointer; border-bottom: 3px solid transparent; line-height: 1.3; }
.language-switch button[aria-pressed='true'] { border-color: var(--forest); }
.hero { padding-top: clamp(95px, 9.9vw, 157px); padding-bottom: clamp(65px, 4.5vw, 72px); border-bottom: 1px solid var(--line); }
h1, h2, h3, p { margin: 0; font-weight: 400; }
h1, h2 { font-family: var(--serif); }
h1 { font-size: clamp(68px, 9.45vw, 150px); line-height: 1; letter-spacing: -.03em; }
h1 span, .about h2 span { display: block; }
.hero-description { margin-top: clamp(38px, 4.2vw, 66px); font-size: clamp(21px, 2.45vw, 39px); line-height: 1.35; letter-spacing: -.025em; }
.text-link { display: inline-block; margin-top: clamp(28px, 2.85vw, 46px); font-size: clamp(19px, 1.85vw, 29px); color: var(--forest); text-decoration-thickness: 1px; text-underline-offset: 5px; line-height: 1.4; }
.text-link:hover { text-decoration-thickness: 2px; }
.section-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(40px, 6vw, 96px); }
.services { padding-block: clamp(84px, 7.8vw, 124px) clamp(110px, 11vw, 174px); }
h2 { font-size: clamp(44px, 4.65vw, 74px); line-height: 1.06; letter-spacing: -.025em; }
.service-list { list-style: none; padding: 0; margin: 0; }
.service-list li { display: grid; grid-template-columns: 54px 1fr; gap: 26px; border-top: 1px solid var(--ink); padding-block: 30px 34px; }
.service-list li:last-child { border-bottom: 1px solid var(--ink); }
.service-number { color: var(--forest); font-size: 27px; line-height: 1.4; }
h3 { font-size: clamp(25px, 2.25vw, 35px); line-height: 1.25; letter-spacing: -.03em; }
.service-list p { margin-top: 6px; font-size: clamp(17px, 1.4vw, 22px); line-height: 1.5; letter-spacing: -.015em; }
.about { border-top: 1px solid var(--ink); padding-block: clamp(64px, 5.2vw, 83px) clamp(100px, 9vw, 144px); grid-template-columns: 1.1fr .9fr; gap: 64px; }
.about h2 { font-size: clamp(44px, 4.65vw, 74px); }
.about > p { font-size: clamp(21px, 1.8vw, 28px); line-height: 1.55; letter-spacing: -.02em; }
.site-footer { display: flex; align-items: center; justify-content: space-between; gap: 24px; border-top: 1px solid var(--ink); padding-block: 30px 50px; }
.site-footer a { text-decoration: none; font-size: 19px; }
.site-footer small { font-size: 14px; }
html[lang='zh-Hans'] h1 { font-family: 'Songti SC', SimSun, serif; font-size: clamp(57px, 8.8vw, 139px); line-height: 1.2; letter-spacing: -.03em; }
html[lang='zh-Hans'] h2 { font-family: 'Songti SC', SimSun, serif; line-height: 1.3; }

@media (max-width: 800px) {
  .header-controls { gap: 28px; }
  .main-nav, .language-switch { gap: 22px; }
  .section-grid { grid-template-columns: 1fr; gap: 38px; }
  .about h2 span { display: inline; }
  .about h2 span + span::before { content: ' '; }
  .about > p { max-width: 600px; }
}
@media (max-width: 540px) {
  .site-header { flex-wrap: wrap; row-gap: 25px; padding-top: 32px; }
  .wordmark { font-size: 24px; }
  .wordmark::after { width: 42px; margin-top: 12px; }
  .header-controls { width: 100%; justify-content: space-between; }
  .main-nav { gap: 30px; }
  .hero { padding-top: 72px; padding-bottom: 65px; }
  h1 { font-size: clamp(42px, 14.1vw, 68px); line-height: 1.16; letter-spacing: -.03em; }
  .hero-description { margin-top: 34px; font-size: 23px; max-width: 340px; }
  .text-link { margin-top: 28px; font-size: 19px; }
  .services { padding-block: 62px 80px; }
  h2, .about h2 { font-size: 44px; }
  .about h2 { font-size: clamp(32px, 10vw, 40px); }
  .service-list li { grid-template-columns: 33px 1fr; gap: 15px; padding-block: 24px 28px; }
  .service-number { font-size: 21px; }
  h3 { font-size: 26px; }
  .service-list p { font-size: 17px; }
  .about { padding-block: 54px 70px; gap: 30px; }
  .about h2 span { display: block; }
  .about h2 span + span::before { content: none; }
  .about > p { font-size: 21px; }
  .site-footer { padding-block: 24px 35px; }
  .site-footer a { font-size: 16px; }
  .site-footer small { font-size: 12px; }
  html[lang='zh-Hans'] h1 { font-size: clamp(46px, 11vw, 62px); }
  html[lang='zh-Hans'] h2 { font-size: 38px; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
