/* WH typography: architectural headings and comfortable project information. */
:root{
 --font-latin:'Segoe UI Variable Text','Segoe UI','Helvetica Neue',Arial,sans-serif;
 --font-cjk:'PingFang SC','Microsoft YaHei UI','Microsoft YaHei','Noto Sans CJK SC',sans-serif;
 --font-arabic:'Segoe UI',Tahoma,Arial,sans-serif;
 --font-heading:'Segoe UI Variable Display','Segoe UI','Helvetica Neue',Arial,sans-serif;
 --font-heading-cjk:'DengXian','PingFang SC','Microsoft YaHei UI','Microsoft YaHei',sans-serif;
 --text-main:#333333;--text-body:#585858;--text-caption:#6a6a6a;
}
body{font-size:17px;line-height:1.8;font-weight:400;font-kerning:normal;font-variant-numeric:lining-nums}
:is(h1,h2,h3,h4){font-family:var(--font-heading);font-weight:500;text-wrap:balance}
h1{font-weight:350;letter-spacing:-.035em;line-height:1.15}
h2{font-size:clamp(36px,3.65vw,50px);letter-spacing:-.025em;line-height:1.25;font-weight:400}
h3,h4{letter-spacing:-.012em}
[lang=zh-CN] :is(h1,h2,h3,h4){font-family:var(--font-heading-cjk);letter-spacing:.015em;line-break:strict;font-weight:400}
[lang=zh-CN] h1{font-size:clamp(48px,5vw,72px);line-height:1.28;letter-spacing:.025em}
[lang=zh-CN] h2{font-size:clamp(34px,3.25vw,46px);line-height:1.45;letter-spacing:.025em}
[lang=ar] :is(h1,h2,h3,h4){font-family:var(--font-arabic);letter-spacing:0;font-weight:500}
[lang=ar] h2{font-size:clamp(36px,3.65vw,50px);line-height:1.55}
.body-copy,.hero-lede{font-size:17px;line-height:1.85;text-wrap:pretty}
.body-copy{color:var(--text-body)}
[lang=zh-CN] :is(.body-copy,.hero-lede){line-height:1.95;letter-spacing:.015em}
[lang=ar] :is(.body-copy,.hero-lede){font-size:18px;line-height:2;letter-spacing:0}
.nav a{font-size:14px;font-weight:500;color:#4b4b4b;letter-spacing:.015em}
.languages a{font-size:13px;color:#686868}.header-cta{font-size:14px}
.eyebrow{font-size:12px;color:var(--text-caption);letter-spacing:.12em;font-weight:500}
[lang=zh-CN] .eyebrow{letter-spacing:.08em}
.audience-grid h3,.info-grid h3,.custom-grid h3,.team-roles h3{font-size:23px;line-height:1.5;font-weight:500}
[lang=zh-CN] :is(.audience-grid,.info-grid,.custom-grid,.team-roles) h3{font-weight:700;font-size:22px}
.audience-grid p,.info-grid p,.custom-grid p,.team-roles p,.factory-notes p,.archive-heading>p:last-child,.study-records dd{font-size:16px;line-height:1.9;color:var(--text-body)}
[lang=zh-CN] :is(.audience-grid,.info-grid,.custom-grid,.team-roles,.factory-notes) p,[lang=zh-CN] .study-records dd{letter-spacing:.015em;line-height:1.95}
[lang=ar] :is(.audience-grid,.info-grid,.custom-grid,.team-roles,.factory-notes) p,[lang=ar] .study-records dd{font-size:17px;line-height:2}
.subsection-title,.factory-notes h3{font-size:26px;line-height:1.5;font-weight:500}
[lang=zh-CN] :is(.subsection-title,.factory-notes h3){font-weight:700;font-size:25px}
.responsibility-grid h4{font-size:19px;line-height:1.6;font-weight:500}
[lang=zh-CN] .responsibility-grid h4{font-weight:700}
.responsibility-grid p,.scope-brief p,.home-case-heading p{font-size:16px;line-height:1.9;color:var(--text-body)}
.responsibility-head,.mobile-label{font-size:13px;color:var(--text-caption)}
.boundary-note{font-size:14px;line-height:1.9;color:var(--text-body)}
.home-case h3{font-size:25px;line-height:1.5}.home-case p{font-size:15px;color:var(--text-body)}
.project-copy h3,[lang=zh-CN] .project-copy h3{font-size:clamp(28px,2.35vw,34px);line-height:1.5}
[lang=ar] .project-copy h3{font-size:clamp(30px,2.6vw,38px);line-height:1.6}
.case-card h4,[lang=zh-CN] .case-card h4{font-size:22px;line-height:1.55;font-weight:500}
[lang=zh-CN] .case-card h4{font-weight:700}
[lang=ar] .case-card h4{font-size:24px;line-height:1.65}
.case-intro{font-size:15px;line-height:1.9;color:var(--text-body)}
.study-records dt,.project-location,.scope-tag,.case-location,.case-topline,.case-scope,.case-client{font-size:13px;line-height:1.8;color:var(--text-caption)}
.record-evidence dd,.case-client p{color:var(--text-body)}
.study-source,.furniture-details figcaption span,.capability-images figcaption,.case-figure figcaption,.archive-note,.form-hint{font-size:12px;line-height:1.85;color:var(--text-caption)}
.capability-grid .body-copy,.contact-grid .body-copy{color:var(--text-body)}
.capabilities .team-roles h3,.capabilities .factory-notes h3{color:var(--text-main)}
.capabilities .team-roles p,.capabilities .factory-notes p{color:var(--text-body)}
.capabilities .text-link{color:var(--text-main)}
.team-roles article,.factory-notes{border-color:#cfcfcf}
.item-index,.project-number{font-family:var(--font-latin);font-size:13px;font-variant-numeric:tabular-nums;color:var(--text-caption)}
.process-grid h3{font-size:23px;line-height:1.5}.process-grid .body-copy{font-size:16px;line-height:1.9;color:var(--text-body)}
.inquiry-form label{font-size:14px;color:#4d4d4d}.inquiry-form :is(input,textarea,select){font-size:16px;line-height:1.7}
.button,.text-link{font-size:14px}.home-case-meta,.home-case-link,.home-contact{font-size:13px;line-height:1.8}
[lang=ar] :is(.nav a,.eyebrow,.button,.text-link,.languages a){letter-spacing:0}
@media(max-width:1200px){.nav a{font-size:13px}.header-inner{gap:20px}}
@media(max-width:900px){.nav a{font-size:16px}.heading-intro{flex-basis:38%}}
@media(max-width:600px){
 body{font-size:16px}
 h2,[lang=zh-CN] h2{font-size:30px;line-height:1.45}[lang=ar] h2{font-size:33px;line-height:1.55}
 .hero h1{font-size:clamp(34px,9vw,48px);line-height:1.2}
 [lang=zh-CN] .hero h1{font-size:clamp(34px,9.4vw,42px);line-height:1.4;letter-spacing:.015em}
 [lang=ar] .hero h1{font-size:clamp(37px,10vw,46px);line-height:1.45}
 .body-copy,.hero-lede{font-size:16px;line-height:1.85}
 [lang=zh-CN] :is(.body-copy,.hero-lede){line-height:1.95}
 [lang=ar] :is(.body-copy,.hero-lede){font-size:17px;line-height:2}
 .audience-grid p,.info-grid p,.custom-grid p,.team-roles p,.factory-notes p,.responsibility-grid p,.scope-brief p,.study-records dd,.process-grid .body-copy{font-size:15px;line-height:1.95}
 [lang=ar] :is(.audience-grid,.info-grid,.custom-grid,.team-roles,.factory-notes) p,[lang=ar] .study-records dd{font-size:16px}
 .subsection-title,.factory-notes h3,[lang=zh-CN] :is(.subsection-title,.factory-notes h3){font-size:23px}
 .project-copy h3,[lang=zh-CN] .project-copy h3{font-size:26px;line-height:1.5}[lang=ar] .project-copy h3{font-size:28px}
 .case-intro{font-size:15px}.process-grid h3{font-size:21px}
 .eyebrow{font-size:11px}.languages a{font-size:12px}.button,.text-link{font-size:14px}
 .hero-bottom{font-size:11px}.form-hint{font-size:12px}
}
@media(max-width:360px){.languages a{font-size:11px}.hero-actions .button{font-size:13px;gap:12px}.hero-actions .text-link{font-size:13px}}

/* Dialog headings use a compact hierarchy so the full image stays in view. */
.lightbox .lightbox-header h2{font-size:24px;line-height:1.4;letter-spacing:0;text-wrap:pretty}
@media(max-width:600px){.lightbox .lightbox-header h2{font-size:19px;line-height:1.5}.lightbox-header p{line-height:1.7}.lightbox-bottom{font-size:12px;line-height:1.65}}
