/* Three stages remain visible together. */
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.approach .section-heading{margin-bottom:34px}
.process-overview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5%}
.process-overview li{min-width:0}
.process-art{width:100%;height:245px;object-fit:contain;object-position:left center;margin-bottom:21px}
.process-stage{font-family:"SFMono-Regular",Consolas,monospace;font-size:10px;letter-spacing:.025em;line-height:1.7;color:var(--muted)}
.process-overview h3{font-size:clamp(23px,2.4vw,33px);font-weight:500;letter-spacing:-.055em;line-height:1.13;margin-top:9px;max-width:390px}
.process-summary{font-size:14px;letter-spacing:-.02em;line-height:1.6;color:var(--muted);margin-top:10px;max-width:340px}
@media(max-width:800px){.process-overview{gap:4%}.process-art{height:180px;margin-bottom:16px}.process-overview h3{font-size:24px}.process-summary{font-size:12px}}
@media(max-width:560px){.approach .section-heading{margin-bottom:28px}.approach .section-heading h2{font-size:32px;line-height:1.08;letter-spacing:-.055em}.approach .section-heading>p{font-size:12px;line-height:1.7;margin-top:15px}.process-overview{display:flex;flex-direction:column;gap:0}.process-overview li{display:grid;grid-template-columns:98px minmax(0,1fr);gap:18px;align-items:center;padding:23px 0;border-top:1px solid var(--line)}.process-overview li:first-child{padding-top:0;border-top:0}.process-overview li:last-child{padding-bottom:0}.process-art{width:98px;height:auto;aspect-ratio:4/3;object-fit:contain;margin:0}.process-stage{font-size:8px}.process-overview h3{font-size:21px;letter-spacing:-.05em;line-height:1.14;margin-top:5px}.process-summary{font-size:11px;line-height:1.5;margin-top:6px}}
@media(max-width:360px){.process-overview li{grid-template-columns:78px minmax(0,1fr);gap:15px}.process-art{width:78px}.process-overview h3{font-size:19px}}
.text-link:hover{text-decoration-color:currentColor}

/* Keep heading phrases legible on narrow screens, without breaking words or hiding spaces. */
h2,h3{text-wrap:balance;word-spacing:.025em}
.hero h1{word-spacing:.025em}
.hero-art figcaption,.hero-bottom,.company-record dt,.verification-note{color:var(--muted)}
p{orphans:2;widows:2}
.section-heading>div{min-width:0}
@media(max-width:560px){.hero h1{font-size:clamp(64px,19vw,102px)}.expertise .section-heading h2,.approach .section-heading h2,.intro h2,.company h2{font-size:clamp(27px,7.8vw,33px)}.philosophy h2{font-size:clamp(26px,7.6vw,33px)}.contact h2{font-size:clamp(34px,10vw,43px)}}
@media(min-width:801px){.approach{padding-block:90px}.process-art{height:180px}.process-overview h3{max-width:18ch;min-height:2.26em}}
@media(min-width:561px){.process-overview h3{min-height:2.26em}}
