/* Quiet editorial surfaces, shared with OnTrails Magazine. */
:root { --corp-surface:#ffffff; --corp-ink:#171917; --corp-muted:#596259; }
html, body { background-color:var(--corp-surface); }
.contour-background { isolation:isolate; }
.l-header { background:transparent; }
.corp-editorial { color:var(--corp-ink); padding:180px 0 64px; }
.corp-shell { width:min(1280px,calc(100% - 96px)); margin-inline:auto; }
.corp-editorial :is(h1,h2,h3,p,span,a,dt,dd) { background:transparent; box-shadow:none; }
.corp-editorial h1 { font:700 clamp(64px,10vw,144px)/.95 Arial,sans-serif; letter-spacing:-.065em; margin:24px 0 48px; }
.corp-eyebrow,.corp-section-label { font:500 11px/1.5 Arial,sans-serif; letter-spacing:.12em; }
.corp-total { font:400 14px/1 Arial,sans-serif; letter-spacing:0; vertical-align:top; display:inline-block; margin:12px 0 0 20px; }
.corp-lead { font-size:clamp(30px,4vw,56px); font-weight:600; line-height:1.55; letter-spacing:-.04em; margin:0 0 24px; }
.corp-description { max-width:620px; font-size:15px; line-height:2; margin:0; color:var(--corp-muted); }
.corp-intro { margin-bottom:72px; }
.corp-editorial .content-en { display:none; }
.project-filters { display:flex; gap:24px; border-bottom:1px solid #c8d0c7; padding-bottom:18px; }
.project-filters[hidden], .project-card[hidden] { display:none; }
.project-filters button { border:0; border-radius:0; padding:10px 0; font:600 12px Arial,sans-serif; color:var(--corp-muted); background:none; cursor:pointer; }
.project-filters button span { font-size:10px; margin-left:9px; }
.project-filters button[aria-pressed=true] { color:var(--corp-ink); box-shadow:0 2px 0 currentColor; }
.project-result { min-height:16px; margin:14px 0 22px; font:11px/1.5 Arial,sans-serif; color:var(--corp-muted); }
.project-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:56px 30px; }
.project-link { display:block; color:inherit; text-decoration:none; }
.project-image { aspect-ratio:4/3; overflow:hidden; background:rgba(255,255,255,.65); display:grid; place-items:center; }
.project-image img { width:100%; height:100%; object-fit:contain; transition:transform .6s cubic-bezier(.2,.7,.3,1); }
.project-link:hover img { transform:scale(1.035); }
.project-image--type { padding:28px; box-sizing:border-box; font:600 clamp(24px,3vw,40px)/1.2 Arial,sans-serif; letter-spacing:-.04em; overflow-wrap:anywhere; }
.project-meta { display:flex; justify-content:space-between; margin:18px 0 10px; font:11px/1.4 Arial,sans-serif; letter-spacing:.06em; color:var(--corp-muted); }
.project-card h2 { display:flex; justify-content:space-between; gap:12px; font:600 23px/1.3 Arial,sans-serif; letter-spacing:-.03em; margin:0; overflow-wrap:anywhere; }
.project-card h2 span { flex-shrink:0; font-weight:400; }
.project-description { font-size:13px; line-height:1.85; color:var(--corp-muted); margin:12px 0 0; }
.corp-about-section { padding:40px 0 64px; border-top:1px solid #c8d0c7; }
.corp-section-label { margin:0 0 40px; }
.practice-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:40px; }
.practice-card h3 { font-size:22px; font-weight:600; line-height:1.6; margin:20px 0 16px; letter-spacing:-.03em; }
.practice-card p:not(.corp-eyebrow) { font-size:14px; line-height:2; color:var(--corp-muted); }
.practice-links { display:flex; flex-wrap:wrap; gap:30px; margin-top:32px; }
.practice-links a,.profile-social { font-size:12px; color:inherit; text-underline-offset:6px; }
.corp-profile { display:grid; grid-template-columns:1fr 2fr; gap:40px; }
.profile-list { margin:0 0 24px; }
.profile-list>div { display:grid; grid-template-columns:130px 1fr; gap:24px; padding:20px 0; border-bottom:1px solid #d3dad1; }
.profile-list>div:first-child { padding-top:0; }
.profile-list dt { color:var(--corp-muted); font-size:12px; }
.profile-list dd { margin:0; font-size:14px; line-height:1.9; }
.corp-closing { margin-top:80px; padding:32px 0; border-top:1px solid #c8d0c7; }
.corp-closing>span { display:block; font:11px/1.5 Arial,sans-serif; letter-spacing:.1em; margin-bottom:24px; }
.corp-closing a { display:flex; justify-content:space-between; align-items:center; color:inherit; font-size:clamp(24px,3.4vw,44px); line-height:1.6; text-decoration:none; }
.corp-editorial a:focus-visible,.project-filters button:focus-visible { outline:2px solid #31563d; outline-offset:6px; }
@media(max-width:900px) { .project-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.practice-grid { gap:24px; }.corp-shell { width:calc(100% - 56px); } }
@media(max-width:600px) {
 .corp-editorial { padding:130px 0 32px; }.corp-shell { width:calc(100% - 40px); }
 .corp-editorial h1 { margin:20px 0 36px; }.corp-intro { margin-bottom:48px; }.corp-description { font-size:13px; }.corp-lead { font-size:32px; }
 .project-filters { gap:20px; }.project-filters button { font-size:11px; }.project-filters button span { margin-left:5px; }
 .project-grid { gap:32px 16px; }.project-card h2 { font-size:18px; }.project-description { font-size:12px; }.project-meta { font-size:9px; }
 .project-card:first-child { grid-column:1/-1; }.project-card:first-child h2 { font-size:26px; }.project-card:first-child .project-image { aspect-ratio:3/2; }
 .project-image--type { padding:16px; font-size:24px; }
 .practice-grid,.corp-profile { grid-template-columns:1fr; gap:24px; }.corp-section-label { margin-bottom:24px; }.corp-about-section { padding:28px 0 40px; }
 .practice-card h3 { margin-top:14px; }.profile-list>div { grid-template-columns:80px 1fr; gap:16px; }.profile-list dd { font-size:13px; }.corp-closing { margin-top:40px; }
}
@media(prefers-reduced-motion:reduce) { .project-image img { transition:none; } }

/* Undo legacy inline text highlights only in the new editorial pages. */
body { isolation:isolate; opacity:1; }
.corp-editorial :is(h1,h2,h3,p,dt,dd) { display:block; }
.corp-editorial :is(h1,h2,h3,p)::after { content:none; display:none; }
.corp-editorial .project-card h2 { display:flex; }
.corp-editorial .corp-total { display:inline-block; }
.corp-editorial .project-link { display:block; }
.corp-editorial .corp-closing a { display:flex; }

html { height:auto; min-height:100%; overflow-x:clip; }
body:not(.home):not(.front-page) { height:auto; min-height:100vh; overflow-x:clip; }

/* Outrank the legacy link/span highlight selectors. */
.l-main.corp-editorial :is(a,span) { background:transparent !important; box-shadow:none; }
@media(max-width:768px) { body:not(.home):not(.front-page) .l-main.corp-editorial { padding-top:32px; } }

.corp-editorial .corp-intro h1.corp-eyebrow { font:500 11px/1.5 Arial,sans-serif; letter-spacing:.12em; margin:0 0 28px; }

.project-more { display:flex; align-items:center; justify-content:space-between; gap:48px; margin:48px auto 0; padding:16px 24px; min-width:220px; border:1px solid #c8d0c7; background:#fff; color:var(--corp-ink); font:500 14px/1.5 Arial,sans-serif; cursor:pointer; }
.project-more[hidden] { display:none; }
.project-more:hover { border-color:var(--corp-ink); }
.project-more:focus-visible { outline:2px solid #31563d; outline-offset:6px; }

/* Let the shared contour background show through the contact copy. */
.contact-section { background:transparent; border-radius:0; }

.corp-contact .contact-form { max-width:760px; }
.corp-contact .hidden-fields-container { display:none; border:0; margin:0; padding:0; }
.corp-contact .wpcf7-form>p { margin:0 0 28px; }
.corp-contact .wpcf7-form label { display:block; font-size:14px; line-height:1.8; }

/* Match desktop header text edges, including the JP button's 4px inset. */
@media(min-width:769px) {
 .corp-shell, .drum-roll-container { width:100%; max-width:1400px; padding-left:19px; padding-right:15px; box-sizing:border-box; }
}

@media(max-width:768px) {
 .mobile-menu-overlay { background:#fff url('../images/contours.svg') center / cover no-repeat; }
}
