/* Production-only behaviors and accessible native form treatment. */
body:has(.article-body){background:var(--paper);color:var(--ink)}
.article-cover img{width:100%;height:auto;max-height:650px;object-fit:cover}.article-body img{height:auto;max-width:100%}.article-body iframe{max-width:100%}.article-body table{display:block;overflow:auto;max-width:100%}
.form-honeypot{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.contact-form button:disabled{opacity:.6;cursor:not-allowed;transform:none}.form-status:not(:empty){padding:16px;border:1px solid #869b90;border-radius:3px}.contact-form input,.contact-form textarea,.contact-form select{color:var(--ink)}.contact-form .caption a{text-decoration:underline}
.footer-newsletter{display:grid;grid-template-columns:1fr 1fr;gap:70px;padding:45px 0;border-top:1px solid #3d4b52}.footer-newsletter h2{font-size:26px;margin:14px 0}.footer-newsletter p{font-size:13px;line-height:1.8;color:#c3cbd0;max-width:520px}.footer-newsletter label{font-size:12px;display:block;margin-bottom:10px}.footer-newsletter form>div{display:flex;gap:12px}.footer-newsletter input{min-width:0;flex:1;width:100%;padding:13px;background:#22323b;border:1px solid #75858c;color:white;border-radius:3px;font:inherit}.footer-newsletter .caption{font-size:11px;margin-top:15px}.footer-newsletter .caption a{text-decoration:underline}.footer-newsletter form .button{flex:none}
@media(max-width:760px){.footer-newsletter{grid-template-columns:1fr;gap:25px}.footer-newsletter form>div{flex-wrap:wrap}.footer-newsletter input{min-width:160px}.footer-newsletter .button{padding:14px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Keep navigation reachable on long stories without hiding anchor destinations. */
:root{--header-height:88px}
html{scroll-padding-top:calc(var(--header-height) + 16px)}
.site-header{position:sticky;top:0;z-index:80;box-shadow:0 1px 0 #ffffff18}
.site-header .masthead{height:var(--header-height)}
.skip{position:fixed;z-index:100}
.mobile-menu>nav{max-height:calc(100dvh - var(--header-height) - 30px)}
@media(max-width:900px){:root{--header-height:72px}}
@media print{.site-header{position:static}}

/* Audited text contrast: preserve the palette while making small copy readable. */
.person-card>p{color:#526653}
.history-logo>.eyebrow,.history-logo .history-caption{color:#52634f}
.direction-route .direction-number{color:#7a8576}
.wt .product-surface figcaption{color:#425d69}
.wt .ai-flow .number,.wt .ai-proof figcaption{color:#354f3d}
.careers-craft .page-lead,.report-section .page-lead{color:#43564e}
.direction-photo figcaption{color:#515e57}
.project-info .eyebrow,.detail-card .card-number{color:#526957}
/* Keyboard focus stays below the persistent masthead when the browser scrolls it into view. */
:where(a,button,input,textarea,select,summary):focus-visible{scroll-margin-block:calc(var(--header-height) + 20px) 30px}
.services-editorial .direction-route .direction-number{color:#7a8576;opacity:1}
.wt .product-surface figcaption,.wt .ai-flow .number,.wt .ai-proof figcaption,.direction-photo figcaption{opacity:1}
.dark .detail-card .card-number{color:#bacdbb}
/* This source mockup has baked-in white padding: clip outside the device, leaving its UI intact. */
img[src*="LearningWrite"][src*="Mockup2"]{clip-path:inset(5.6% 7.6% 7.3% round 2.5%)}
/* Shared secondary-page and restored-case captions must match their actual surface. */
.hero-panel>.eyebrow{color:#405d55}
.editorial-photo figcaption{color:#405a49;opacity:1}
.case-experience .f-dark .case-restored figcaption{color:#c9d6cf}
.case-experience .f-paper .f-journey,.case-experience .f-paper .f-journey h3{color:var(--case-ink)}
.case-experience .f-paper .f-journey .eyebrow,.case-experience .f-paper .f-journey p{color:var(--case-ink);opacity:1}
.case-experience .f-dark .f-journey{background:transparent}
/* Keep this mockup at its intrinsic ratio so the bezel clip follows pixels, not contain-letterboxing. */
.case-experience .f-scene .v-image img[src*="LearningWrite"][src*="Mockup2"]{width:min(100%,840px);height:auto;max-height:none;margin-inline:auto}
.case-experience .f-dark .f-journey li>span{color:var(--case-accent)}

/* Clear industry choices in the shared navigation and relevant page hubs. */
.industry-menu summary{display:flex;align-items:center;gap:6px;font-size:inherit;padding-inline:5px}.mobile-industry-links{border-block:1px solid #52676c;margin-block:8px;padding-block:8px}.mobile-industry-links>span{display:block;padding:8px 12px 3px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#c5d4cf}
.industry-paths{display:flex;flex-wrap:wrap;align-items:center;gap:4px clamp(20px,3vw,44px);margin:24px 0 0;font-size:14px;line-height:1.5}.industry-paths>span{flex-basis:100%;font-size:12px;font-weight:400;opacity:.75}.industry-paths .text-link{width:auto;max-width:100%;box-sizing:border-box;display:inline-flex;align-items:center;gap:8px;min-height:44px;margin:0;padding:0;border:0;border-radius:0;background:transparent;color:inherit;font-size:16px;font-weight:500;line-height:1.5;white-space:nowrap;text-decoration:none}.industry-paths .text-link>span{font-size:14px;opacity:.65}.industry-paths .text-link:hover{background:transparent;color:inherit;text-decoration:underline;text-underline-offset:5px}.industry-paths .text-link:focus-visible{outline:2px solid currentColor;outline-offset:4px;border-radius:2px}.work-gallery>.industry-paths{margin:0 auto 20px}
