@charset "UTF-8";
:root{--paper:#f7f6f2;--ink:#272d27;--muted:#646960;--line:#d9dcd1;--green:#3f4a3b;--soft:#edeee6;--serif:"Songti SC","Noto Serif CJK SC","Source Han Serif SC",STSong,SimSun,serif;--sans:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;--gutter:clamp(24px,5vw,88px)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:15px;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}img{display:block;width:100%;height:100%;object-fit:cover}figure,p,h1,h2,h3{margin:0}button,a,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--green);outline-offset:7px}::selection{background:#d6dcc9;color:#263022}.skip-link{position:fixed;top:12px;left:12px;z-index:20;padding:12px 20px;background:var(--ink);color:white;transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}
.site-header{height:106px;display:flex;align-items:center;justify-content:space-between;padding:0 var(--gutter);border-bottom:1px solid var(--line)}.brand{display:flex;gap:13px;align-items:center}.brand-mark{width:36px;height:40px;stroke:currentColor;stroke-width:1.15}.brand-name{font-size:21px;letter-spacing:.13em;font-weight:500}.brand-roman{display:block;font-size:9px;letter-spacing:.44em;font-weight:400;padding-top:3px}.main-nav{display:flex;gap:clamp(24px,3.3vw,54px);align-items:center;font-size:13px}.main-nav a{padding:8px 0;position:relative}.main-nav a:not(.nav-contact)::after{content:"";position:absolute;bottom:2px;left:0;width:100%;height:1px;background:var(--ink);transform:scaleX(0);transform-origin:left;transition:transform .2s}.main-nav a:hover::after,.main-nav a[aria-current="location"]::after{transform:scaleX(1)}.nav-contact span{margin-left:18px;font-size:19px}.menu-toggle{display:none}
.hero{display:grid;grid-template-columns:.92fr 1.08fr;min-height:680px;max-width:1800px;margin:auto}.hero-copy{display:flex;flex-direction:column;align-items:flex-start;padding:70px 40px 28px var(--gutter)}.eyebrow{display:flex;align-items:center;gap:10px;font-size:10px;line-height:1.7;letter-spacing:.18em}.tiny-dot{width:5px;height:5px;border-radius:50%;background:currentColor;display:inline-block;flex-shrink:0}.hero h1{font-family:var(--serif);font-size:clamp(42px,4.7vw,78px);font-weight:400;line-height:1.3;letter-spacing:-.025em;margin-top:65px;white-space:nowrap}.hero-description{font-size:14px;line-height:2;color:var(--muted);margin-top:28px;letter-spacing:.02em}.text-link{display:flex;justify-content:space-between;gap:38px;border-bottom:1px solid #818875;padding:10px 0 11px;margin-top:29px;font-size:12px;transition:gap .2s}.text-link:hover{gap:49px}.text-link span{font-size:20px;line-height:.7}.hero-bottom{margin-top:auto;padding-top:60px;display:flex;justify-content:space-between;gap:20px;width:100%;font-size:10px;color:var(--muted)}.quiet-english{font-family:Georgia,serif;font-style:italic;letter-spacing:.02em;font-size:13px}.hero-visual{position:relative;overflow:hidden;min-width:0}.hero-visual img{position:absolute;inset:0;object-position:50% 66%}.hero-visual figcaption{position:absolute;bottom:20px;left:25px;right:25px;display:flex;justify-content:space-between;gap:15px;color:#fff;font-size:10px;letter-spacing:.06em;text-shadow:0 1px 4px #000}.hero-visual::after{content:"";position:absolute;bottom:0;left:0;right:0;height:105px;background:linear-gradient(transparent,rgba(0,0,0,.34));pointer-events:none}.hero-visual figcaption{z-index:1}
.section-wrap{padding:96px var(--gutter);max-width:1800px;margin:auto}.section-index{display:flex;justify-content:space-between;gap:20px;font-size:10px;letter-spacing:.12em;color:var(--muted);margin-bottom:58px}.section-index .quiet-english{letter-spacing:0}h2{font-family:var(--serif);font-size:clamp(32px,3.05vw,48px);line-height:1.48;letter-spacing:-.025em;font-weight:400}.about{border-bottom:1px solid var(--line)}.about-content{display:grid;grid-template-columns:1fr 1fr;gap:7vw}.about-body{max-width:515px;padding-top:6px}.about-body p{font-size:14px;line-height:2.15;color:var(--muted);margin-bottom:20px}.about-body .about-signoff{font-size:12px;color:var(--ink);margin-top:29px;margin-bottom:0}
.services{padding-top:85px;padding-bottom:100px}.services-layout{display:grid;grid-template-columns:.82fr 1.18fr;gap:8vw}.services-intro>p{margin-top:20px;font-size:13px;line-height:2;color:var(--muted)}.small-caption{font-size:11px;color:var(--muted);line-height:1.8}.services-intro>.small-caption{display:block;margin-top:37px;letter-spacing:.14em}.service{border-top:1px solid var(--line)}.service:last-child{border-bottom:1px solid var(--line)}.service summary{list-style:none;cursor:pointer;display:flex;align-items:center;padding:25px 0;gap:25px}.service summary::-webkit-details-marker{display:none}.service-number{font-size:10px;color:var(--muted);align-self:flex-start;padding-top:4px}.service-title{font-size:21px;font-weight:400;letter-spacing:.03em}.service-title small{display:block;font-size:10px;color:var(--muted);margin-top:8px;letter-spacing:.03em}.plus{margin-left:auto;display:block;width:15px;height:15px;position:relative}.plus::before,.plus::after{content:"";width:13px;height:1px;position:absolute;background:var(--ink);top:7px;left:1px}.plus::after{transform:rotate(90deg);transition:transform .15s}.service[open] .plus::after{transform:rotate(0)}.service-description{padding:0 34px 27px 40px;max-width:560px}.service-description p{font-size:13px;line-height:2;color:var(--muted)}.service-description .service-tags{font-size:10px;margin-top:18px;color:var(--ink);letter-spacing:.04em}
.space-note{display:grid;grid-template-columns:1fr 1fr;background:var(--soft);max-width:1800px;margin:auto}.courtyard-visual{position:relative;height:580px;overflow:hidden}.courtyard-visual img{object-position:50% 55%}.courtyard-visual figcaption{position:absolute;bottom:17px;left:22px;font-size:10px;color:white;text-shadow:0 1px 5px #000;background:#0005;padding:5px 8px}.space-copy{padding:70px clamp(40px,6vw,100px);display:flex;flex-direction:column;justify-content:center}.space-copy h2{margin:40px 0 24px}.space-copy>p:not(.eyebrow):not(.small-caption){font-size:13px;line-height:2;color:var(--muted)}.space-rule{display:block;background:#a6ae99;width:34px;height:1px;margin:35px 0 22px}
.approach{padding-top:96px;padding-bottom:91px}.approach-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:57px}.approach-heading>p{font-size:12px;line-height:2;color:var(--muted);padding-right:10%}.process-list{display:grid;grid-template-columns:repeat(4,1fr);gap:40px;list-style:none;padding:0;margin:0}.process-list li{border-top:1px solid var(--line);padding-top:17px}.process-number{font-size:10px;color:var(--muted)}.process-list h3{font-size:17px;font-weight:400;margin:27px 0 15px}.process-list p{font-size:12px;line-height:2;color:var(--muted);max-width:245px}.scope-note{font-size:10px;color:var(--muted);margin-top:36px}
.contact{background:var(--green);color:#f5f4ed;padding-top:61px;padding-bottom:82px;max-width:none}.contact .section-index{color:#c4cbbf;margin-bottom:49px}.contact-layout{display:grid;grid-template-columns:1fr 1fr;gap:7vw}.contact h2{font-size:clamp(43px,4.5vw,68px)}.contact-layout>div>p{font-size:12px;margin-top:14px;color:#d4d9ce}.contact-details{padding-top:12px}.contact .contact-location{font-size:11px;display:flex;align-items:center;gap:9px;margin:0 0 21px;color:#e3e7db}.contact-pending{font-size:19px;letter-spacing:.04em}.contact-note{font-size:11px;line-height:1.9;margin-top:12px;color:#c4cbbf}.contact-channel{display:block;border-bottom:1px solid #75816c;padding:11px 0 14px;margin-top:9px;font-size:20px;letter-spacing:.03em;background:transparent;width:100%;text-align:left;cursor:pointer;border-top:0;border-left:0;border-right:0}.contact-channel small{display:block;font-size:10px;margin-bottom:8px;color:#c4cbbf}.contact-channel:focus-visible{outline-color:#e4ebd9}.contact-feedback{font-size:11px;min-height:1em;color:#e8edde;margin-top:12px}
.site-footer{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:33px var(--gutter)}.footer-brand{font-size:15px;letter-spacing:.1em}.footer-brand>span{font-size:9px;letter-spacing:.2em;margin-left:16px}.footer-meta{font-size:9px;line-height:1.9;color:var(--muted);margin-left:auto;text-align:right}.back-top{font-size:20px;margin-left:15px;padding:8px 12px}.noscript-note{padding:16px var(--gutter);font-size:12px;border-top:1px solid var(--line)}
@media(min-width:1800px){.site-header,.site-footer{padding-left:max(var(--gutter),calc((100vw - 1624px)/2));padding-right:max(var(--gutter),calc((100vw - 1624px)/2))}.contact{padding-left:max(var(--gutter),calc((100vw - 1624px)/2));padding-right:max(var(--gutter),calc((100vw - 1624px)/2))}}
@media(max-width:1000px){.hero{min-height:610px}.hero-copy{padding-top:47px;padding-right:27px}.hero h1{margin-top:56px;font-size:clamp(38px,5vw,56px)}.hero-description{font-size:12px}.hero-bottom .quiet-english{display:none}.hero-visual figcaption{flex-direction:column;gap:6px;left:18px}.about-content{gap:40px}.services-layout{gap:45px}.space-copy{padding:50px 35px}.courtyard-visual{height:490px}.process-list{gap:25px}.approach-heading>p{padding-right:0}.section-wrap{padding-top:74px;padding-bottom:74px}}
@media(max-width:700px){html{scroll-padding-top:25px}.site-header{height:85px;position:relative;z-index:5}.brand-mark{width:30px;height:35px}.brand-name{font-size:19px}.brand-roman{font-size:8px}.menu-toggle{display:flex;align-items:center;gap:13px;border:0;background:none;padding:12px 0 12px 16px;font-size:12px;cursor:pointer}.menu-icon{width:19px;height:10px;border-top:1px solid;border-bottom:1px solid}.menu-toggle[aria-expanded="true"] .menu-icon{height:0;border-bottom:0;transform:rotate(45deg)}.menu-toggle[aria-expanded="true"] .menu-icon::after{content:"";display:block;width:19px;border-top:1px solid;transform:rotate(-90deg);margin-top:-1px}.main-nav{display:none;position:absolute;top:84px;left:0;right:0;background:var(--paper);padding:20px var(--gutter) 30px;border-bottom:1px solid var(--line);box-shadow:0 12px 18px #272d2710;gap:0;align-items:stretch}.main-nav.is-open{display:flex;flex-direction:column}.main-nav a{padding:14px 0}.nav-contact span{float:right}.hero{display:flex;flex-direction:column;min-height:0}.hero-copy{padding:43px var(--gutter) 34px;min-height:465px}.eyebrow{font-size:9px;letter-spacing:.12em}.hero h1{margin-top:36px;font-size:clamp(40px,10.8vw,66px);line-height:1.28}.hero-description{margin-top:23px;font-size:13px;line-height:1.95}.text-link{margin-top:19px}.hero-bottom{padding-top:32px;font-size:9px}.hero-bottom .quiet-english{display:block;font-size:12px}.hero-visual{height:510px}.hero-visual img{object-position:50% 62%}.hero-visual figcaption{flex-direction:row;left:24px;right:24px;font-size:9px}.section-wrap{padding:64px var(--gutter)}.section-index{margin-bottom:35px;font-size:9px;letter-spacing:.07em}.section-index .quiet-english{font-size:11px}h2{font-size:33px;line-height:1.45}.about-content{grid-template-columns:1fr;gap:28px}.about-body{padding:0;max-width:none}.about-body p{font-size:13px;line-height:2.1;margin-bottom:16px}.about-body .about-signoff{line-height:2;margin-top:22px}.services-layout{grid-template-columns:1fr;gap:33px}.services-intro>p{margin-top:16px}.services-intro>.small-caption{margin-top:21px}.service-title{font-size:20px}.service summary{padding:24px 0}.service-description{padding-left:39px;padding-right:8px}.space-note{display:flex;flex-direction:column-reverse}.space-copy{padding:55px var(--gutter)}.space-copy h2{margin-top:30px;margin-bottom:18px}.space-rule{margin:26px 0 20px}.courtyard-visual{height:450px}.approach-heading{display:block;margin-bottom:37px}.approach-heading>p{margin-top:20px}.process-list{grid-template-columns:1fr 1fr;gap:30px 22px}.process-list h3{margin-top:22px;font-size:16px}.process-list p{font-size:11px}.scope-note{font-size:9px;line-height:1.9;margin-top:28px}.contact .section-index{margin-bottom:33px}.contact-layout{grid-template-columns:1fr;gap:40px}.contact h2{font-size:45px}.contact-details{padding-top:0}.site-footer{flex-wrap:wrap;gap:20px;padding-top:28px;padding-bottom:28px}.footer-brand{font-size:14px}.footer-brand>span{font-size:8px;margin-left:11px}.footer-meta{order:3;width:100%;text-align:left;margin-left:0;display:flex;flex-wrap:wrap;gap:6px 15px}.back-top{margin-left:auto;padding-right:0}.contact-note br{display:none}}
@media(max-width:360px){.hero-copy{min-height:445px}.section-index .quiet-english{display:none}.hero-visual{height:430px}.hero-visual figcaption{flex-direction:column}.hero h1{font-size:39px}.process-list{gap:26px 18px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important}}

/* Editorial refinements and complete, progressively enhanced visitor journey. */
.site-header { position: sticky; top: 0; z-index: 10; background: var(--paper); }
.main-nav { font-size: 14px; }
.company-facts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px; margin: 48px 0 0; }
.company-facts > div { border-top: 1px solid var(--line); padding-top: 18px; }
.company-facts dt { font-size: 11px; color: var(--muted); }
.company-facts dd { margin: 11px 0 0; font-size: 15px; line-height: 1.7; }
.service-description p, .about-body p { font-size: 15px; }
.service-description .service-tags { font-size: 11px; line-height: 1.9; }
.process-list p { font-size: 14px; }
.scope-note { font-size: 11px; line-height: 1.9; }
.before-start { display: grid; grid-template-columns: .82fr 1.18fr; gap: 8vw; border-top: 1px solid var(--line); margin-top: 54px; padding-top: 34px; }
.before-start > h3 { font-size: 16px; font-weight: 400; padding-top: 13px; }
.faq-item { border-bottom: 1px solid var(--line); }
.faq-item summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 17px 0; list-style: none; cursor: pointer; font-size: 14px; line-height: 1.75; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item .plus { flex: 0 0 15px; }
.faq-item[open] .plus::after { transform: rotate(0); }
.faq-answer { padding: 0 26px 22px 0; }
.faq-answer p { font-size: 14px; line-height: 2; color: var(--muted); }
.download-link { display: inline-flex; align-items: center; gap: 24px; min-height: 44px; margin-top: 14px; font-size: 12px; border-bottom: 1px solid var(--line); }
.download-link:hover { border-color: var(--ink); }
.contact-download { display: inline-flex; align-items: center; justify-content: space-between; gap: 45px; padding: 14px 0; margin-top: 26px; min-height: 48px; font-size: 13px; border-bottom: 1px solid #9aa58e; }
.contact-download:hover { border-bottom-color: #f7f6f2; }
.contact-download:focus-visible { outline-color: #f7f6f2; }
.contact-layout > div > .download-note { font-size: 11px; line-height: 1.8; color: #c4cbbf; margin-top: 13px; }
.contact-note { font-size: 12px; }
.hero-visual figcaption, .courtyard-visual figcaption { font-size: 11px; line-height: 1.7; }
.hero-visual figcaption > span:last-child { background: #1b211bb0; padding: 3px 7px; }
.hero-visual figcaption { align-items: flex-end; }
.courtyard-visual figcaption { background: #1b211bb0; }
.site-footer { display: block; }
.footer-row { display: flex; align-items: center; justify-content: space-between; gap: 30px; }
.footer-meta { font-size: 11px; }
.site-notes { border-top: 1px solid var(--line); margin-top: 20px; color: var(--muted); }
.site-notes summary { min-height: 44px; display: flex; align-items: center; gap: 12px; list-style: none; cursor: pointer; width: fit-content; font-size: 12px; }
.site-notes summary::-webkit-details-marker { display: none; }
.site-notes summary span { font-size: 14px; }
.site-notes[open] summary span { transform: rotate(45deg); }
.site-notes > div { max-width: 900px; padding: 4px 0 8px; }
.site-notes p { font-size: 12px; line-height: 2; margin-bottom: 12px; }
@media(max-width:1000px) {
  .hero-visual figcaption { align-items: flex-start; }
  .before-start { gap: 45px; }
}
@media(max-width:700px) {
  html { scroll-padding-top: 106px; }
  .site-header { position: sticky; }
  .menu-toggle { min-height: 44px; font-size: 13px; }
  .main-nav a { min-height: 48px; }
  .hero-copy { min-height: 435px; padding-top: 34px; }
  .hero h1 { margin-top: 30px; }
  .hero-description { font-size: 14px; }
  .hero-bottom { padding-top: 28px; }
  .section-index { font-size: 11px; }
  .about-body p, .service-description p { font-size: 14px; }
  .about-body .about-signoff { font-size: 13px; }
  .company-facts { grid-template-columns: 1fr; gap: 0; margin-top: 29px; }
  .company-facts > div { display: flex; justify-content: space-between; align-items: baseline; gap: 20px; padding: 15px 0; }
  .company-facts dd { font-size: 14px; margin: 0; text-align: right; }
  .company-facts dt { font-size: 12px; }
  .hero-visual figcaption { flex-direction: column; align-items: flex-start; gap: 7px; }
  .process-list p { font-size: 13px; line-height: 1.95; }
  .scope-note { font-size: 11px; }
  .before-start { grid-template-columns: 1fr; gap: 16px; margin-top: 35px; padding-top: 22px; }
  .faq-answer { padding-right: 0; }
  .faq-item summary { font-size: 14px; }
  .contact .section-index > .quiet-english { display: none; }
  .footer-row { flex-wrap: wrap; gap: 17px; }
  .footer-meta { font-size: 11px; gap: 4px 14px; }
}

/* Audit fixes: clear first-screen positioning and comfortably sized targets. */
.brand, .text-link, .back-top { min-height: 44px; }
.main-nav a, .footer-brand { min-height: 44px; display: inline-flex; align-items: center; }
.back-top { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; }
.hero-eyebrow { font-size: 12px; letter-spacing: .08em; }
.hero-eyebrow .eyebrow-en { font-size: 10px; letter-spacing: .15em; margin-left: 10px; }
@media(max-width:700px) {
  .hero-eyebrow .eyebrow-en { display: none; }
  .main-nav a { justify-content: space-between; }
  .main-nav .nav-contact span { float: none; }
}
