/* A local SVG atlas adapted from Warren's original client map. */
.client-atlas { background:#f7f7f7; padding:var(--section-y) 0; }
.client-atlas-heading { display:grid; grid-template-columns:1.2fr .8fr; gap:4rem; align-items:end; margin-bottom:3rem; }
.client-atlas-heading p { color:#777777; line-height:1.8; max-width:48ch; font-size:.97rem; margin:0; }
.client-atlas-layout { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(300px,1fr); border:1px solid #dfdfdf; border-radius:20px; overflow:hidden; background:#fff; }
.atlas-stage { position:relative; min-width:0; overflow:hidden; background:radial-gradient(ellipse at 25% 25%,#ffffff,#efefef); align-self:stretch; min-height:440px; }
.atlas-art { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; }
.atlas-art svg { width:100%; height:100%; overflow:hidden; touch-action:pan-y; cursor:grab; }
.atlas-art svg:active { cursor:grabbing; }
.atlas-art .state-path { fill:#e4e4e4; stroke:#fff; stroke-width:1.2; vector-effect:non-scaling-stroke; transition:fill .15s; cursor:pointer; }
.atlas-art .state-path:hover { fill:#d7d7d7; }
.atlas-art .state-path.selected-state { fill:#c7c7c7; }
.atlas-pin { cursor:pointer; outline:none; }
.atlas-pin circle { fill:#363636; stroke:#e2e2e2; stroke-width:1.5; vector-effect:non-scaling-stroke; filter:drop-shadow(0 2px 3px #2d2d2d25); }
.atlas-pin circle.atlas-hit { fill:transparent !important; stroke:none !important; filter:none; }
.atlas-pin text { fill:#fdfdfd; font-weight:800; pointer-events:none; font-family:var(--font-display); }
.atlas-pin.selected circle,.atlas-pin:hover circle,.atlas-pin:focus circle { fill:#edc529; stroke:#3e3e3e; stroke-width:2.5; }
.atlas-pin.selected text,.atlas-pin:hover text { fill:#272727; }
.atlas-zoom { position:absolute; z-index:2; display:flex; gap:1px; top:1rem; left:1rem; box-shadow:0 4px 15px #2d2d2d12; border:1px solid #d8d8d8; border-radius:7px; overflow:hidden; }
.atlas-zoom button { display:grid; place-items:center; height:33px; min-width:34px; border:0; background:#fffffff0; color:#545454; font:inherit; font-size:.85rem; cursor:pointer; padding:0 .6rem; }
.atlas-zoom button:last-child { font-size:.64rem; font-weight:800; }
.atlas-zoom button:hover { background:#eaeaea; }
.atlas-zoom button:focus-visible { outline:2px solid #757575; outline-offset:-3px; }
.atlas-selection { position:absolute; top:1.25rem; right:1.1rem; color:#898989; font-size:.66rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; pointer-events:none; }
.atlas-hint { position:absolute; left:1.2rem; bottom:1.1rem; color:#8d8d8d; font-size:.62rem; pointer-events:none; }
.map-loading { color:#8d8d8d; font-size:.9rem; padding:2rem; }
.client-atlas-detail { padding:1.7rem; background:#fff; border-left:1px solid #e3e3e3; }
.client-picker { display:flex; flex-wrap:wrap; gap:.4rem; border-bottom:1px solid #e4e4e4; padding-bottom:1.2rem; margin-bottom:1.7rem; }
.client-picker button { padding:.45rem .6rem; background:#f8f8f8; border:1px solid #e5e5e5; color:#818181; border-radius:6px; font:inherit; font-size:.63rem; font-weight:700; cursor:pointer; text-align:left; }
.client-picker button[aria-pressed='true'] { color:#474747; border-color:#bdbdbd; background:#ececec; }
.client-picker button:focus-visible { outline:2px solid #979797; outline-offset:2px; }
.client-map-location { font-size:.64rem; letter-spacing:.12em; text-transform:uppercase; font-weight:800; color:#929292; }
[data-client-detail] h3 { color:#303030; font-size:1.4rem; line-height:1.2; letter-spacing:-.03em; margin:.7rem 0; }
.client-map-headline { color:#7e7e7e; font-size:.87rem; line-height:1.6; margin:0 0 1.3rem; }
.client-map-metric { display:flex; flex-wrap:wrap; align-items:baseline; gap:.9rem; padding:1.2rem 0; border-top:1px solid #e6e6e6; border-bottom:1px solid #e6e6e6; }
.client-map-metric strong { font-size:3.3rem; color:#4f4f4f; font-weight:800; line-height:1; letter-spacing:-.06em; }
.client-map-metric span { font-size:.68rem; color:#909090; max-width:21ch; }
.client-map-period { color:#9d9d9d; font-size:.65rem; line-height:1.6; margin:.8rem 0 1.4rem; }
[data-client-detail] .btn { font-size:.72rem; padding:.8rem 1rem; }
.atlas-note { color:#989898; font-size:.72rem; margin:1.3rem 0 0; line-height:1.6; }
.atlas-note a { color:#6a6a6a; font-weight:700; margin-left:.5rem; }
.job-map-hero { background:#161616; color:#fff; padding:8.5rem 0 3.5rem; }
.job-map-hero .crumbs { display:flex; margin-bottom:2rem; }
.job-map-hero-grid { display:grid; grid-template-columns:1.35fr .65fr; gap:4rem; align-items:end; }
.job-map-hero h1 { font-size:clamp(2.6rem,5vw,4.8rem); letter-spacing:-.055em; line-height:1.07; margin:.7rem 0 1.5rem; max-width:19ch; }
.job-map-hero .lede { color:#b3b3b3; max-width:59ch; font-size:1.02rem; line-height:1.75; }
.job-map-hero-aside { padding-left:2rem; border-left:1px solid #454545; margin-bottom:.4rem; }
.job-map-hero-aside strong { display:block; color:#eed44b; font-size:4.4rem; font-weight:800; line-height:1; letter-spacing:-.065em; }
.job-map-hero-aside>span { color:#adadad; font-size:.85rem; display:block; margin:.6rem 0 2rem; }
.job-map-hero-aside a { color:#e5e5e5; font-size:.73rem; line-height:1.6; font-weight:700; }
.job-map-main { padding:2rem 0 4rem; background:#f5f5f5; }
.job-map-filters { display:grid; grid-template-columns:1.4fr 1fr .85fr 1.2fr; gap:.9rem; background:#fff; padding:1.2rem; border:1px solid #e0e0e0; border-radius:14px; }
.job-map-filters label { display:flex; flex-direction:column; gap:.45rem; font-size:.65rem; text-transform:uppercase; letter-spacing:.06em; font-weight:800; color:#939393; min-width:0; }
.job-map-filters input,.job-map-filters select { height:43px; border:1px solid #e0e0e0; border-radius:7px; padding:0 .7rem; background:#fbfbfb; color:#404040; font:inherit; font-size:.77rem; text-transform:none; letter-spacing:0; width:100%; font-weight:600; }
.job-map-filters input:focus,.job-map-filters select:focus { outline:2px solid #909090; outline-offset:2px; }
.job-map-status { display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:1rem .1rem; color:#7e7e7e; font-size:.75rem; }
.job-map-status p { margin:0; }
.job-map-status>div { display:flex; gap:.85rem; }
.job-map-status button { background:none; border:0; padding:.3rem 0; color:#717171; font:inherit; font-size:.7rem; cursor:pointer; font-weight:700; }
.job-map-status button:hover { text-decoration:underline; }
.job-map-status button:disabled { opacity:.5; cursor:wait; }
.job-atlas-layout { display:grid; grid-template-columns:minmax(0,1.65fr) minmax(300px,1fr); border:1px solid #dbdbdb; background:#fff; border-radius:17px; overflow:hidden; height:650px; }
.job-atlas-layout .atlas-stage { min-height:0; height:100%; }
.job-map-results { min-width:0; overflow-y:auto; overscroll-behavior:contain; background:#fff; border-left:1px solid #e2e2e2; padding:0 1.4rem 1.4rem; }
.job-map-results-heading { position:sticky; top:0; z-index:2; background:#fffffff5; border-bottom:1px solid #e5e5e5; display:flex; justify-content:space-between; align-items:center; padding:1.3rem 0; gap:1rem; }
.job-map-results-heading h2 { margin:0; font-size:1.05rem; letter-spacing:-.02em; color:#464646; }
.job-map-results-heading>span { padding:.25rem .45rem; background:#f0f0f0; color:#7a7a7a; font-size:.65rem; border-radius:4px; font-weight:800; }
.map-job-card { padding:1.2rem 0; border-bottom:1px solid #e8e8e8; }
.map-job-trade { font-size:.56rem; font-weight:800; color:#9c9c9c; text-transform:uppercase; letter-spacing:.07em; }
.map-job-card h3 { font-size:1.02rem; line-height:1.25; margin:.5rem 0 .45rem; letter-spacing:-.025em; }
.map-job-card h3 a { color:#3b3b3b; }
.map-job-card h3 a:hover { text-decoration:underline; }
.map-job-company { font-size:.76rem; color:#858585; margin:0 0 .7rem; }
.map-job-location { color:#9a9a9a; font-size:.65rem; margin:0 0 .4rem; line-height:1.5; }
.map-job-pay { color:#797979; font-size:.72rem; font-weight:700; margin:0; }
.map-job-actions { margin-top:1rem; display:flex; justify-content:space-between; gap:1rem; align-items:center; }
.map-job-actions button { border:0; background:none; color:#959595; font:inherit; font-size:.61rem; padding:0; cursor:pointer; }
.map-job-actions a { display:inline-block; background:#f3d64c; color:#3e3e3e; font-size:.65rem; font-weight:800; padding:.55rem .7rem; border-radius:5px; }
.job-map-more { display:block; width:100%; background:#f0f0f0; color:#757575; border:1px solid #e1e1e1; padding:.9rem; border-radius:7px; font:inherit; font-size:.73rem; font-weight:700; cursor:pointer; margin-top:1.2rem; }
.job-map-more[hidden] { display:none; }
.job-map-empty { padding:3rem 0; }
.job-map-empty h3 { color:#7a7a7a; font-size:1rem; }
.job-map-empty p { color:#a4a4a4; font-size:.8rem; line-height:1.7; }
.job-map-note { margin-top:1.2rem; }
.job-map-note p { color:#9d9d9d; font-size:.66rem; line-height:1.7; margin:.3rem 0; }
.job-map-note a { color:#7a7a7a; text-decoration:underline; text-underline-offset:2px; }
@media(max-width:1000px) { .client-atlas-layout { grid-template-columns:1.2fr 1fr; } .client-atlas-heading { grid-template-columns:1fr; gap:1.4rem; } .client-atlas-heading p { max-width:60ch; } .job-map-filters { grid-template-columns:1fr 1fr; } .job-map-hero-grid { gap:2rem; } .job-atlas-layout { grid-template-columns:1.2fr 1fr; } }
@media(max-width:920px) { .nav-links { visibility:hidden; pointer-events:none; } body.nav-open .nav-links { visibility:visible; pointer-events:auto; } }
@media(max-width:760px) { .client-atlas-layout,.job-atlas-layout { grid-template-columns:1fr; } .client-atlas-detail { border-left:0; border-top:1px solid #e5e5e5; } .atlas-stage { min-height:340px; } .job-atlas-layout { height:auto; } .job-atlas-layout .atlas-stage { height:350px; } .job-map-results { max-height:600px; border-left:0; border-top:1px solid #e5e5e5; } .job-map-hero-grid { grid-template-columns:1fr; gap:1.8rem; } .job-map-hero-aside { padding:1.3rem 0 0; border-left:0; border-top:1px solid #454545; display:flex; align-items:center; flex-wrap:wrap; gap:.7rem; } .job-map-hero-aside strong { font-size:2.8rem; } .job-map-hero-aside>span { margin:0; } .job-map-hero-aside a { flex-basis:100%; margin-top:.5rem; } .job-map-hero { padding:7.2rem 0 2.5rem; } .job-map-status { align-items:start; } .job-map-status>div { flex-shrink:0; flex-direction:column; gap:.2rem; align-items:end; } .atlas-selection { max-width:42%; text-align:right; } }
@media(max-width:440px) { .job-map-filters { padding:.9rem; gap:.8rem; } .job-map-filters label:first-child,.job-map-filters label:last-child { grid-column:1/-1; } .client-atlas-detail { padding:1.4rem; } .atlas-stage { min-height:300px; } }
@media(prefers-reduced-motion:reduce) { .atlas-art .state-path { transition:none; } }

/* Client evidence filters and markers; the jobs atlas keeps its own styling. */
.client-atlas .client-map-controls { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(150px,.8fr) minmax(150px,.8fr); gap:.8rem; margin:0 0 1rem; }
.client-atlas .client-map-controls label,.client-atlas label.client-map-select { display:flex; flex-direction:column; gap:.45rem; min-width:0; color:#626262; font-size:.65rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.client-atlas .client-map-controls input,.client-atlas .client-map-controls select,.client-atlas [data-client-select] { box-sizing:border-box; width:100%; min-height:44px; border:1px solid #d3d3d3; border-radius:7px; padding:.65rem .75rem; background:#fff; color:#343434; font:inherit; font-size:.78rem; font-weight:600; letter-spacing:0; text-transform:none; }
.client-atlas .client-map-controls input:focus-visible,.client-atlas .client-map-controls select:focus-visible,.client-atlas [data-client-select]:focus-visible,.client-atlas [data-client-reset]:focus-visible { outline:2px solid #4d4d4d; outline-offset:3px; }
.client-atlas .client-map-toolbar { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:.7rem 1.2rem; margin:0 0 1.1rem; }
.client-atlas .client-map-summary { display:flex; flex-wrap:wrap; gap:.5rem 1.5rem; margin:0 0 1.4rem; color:#626262; font-size:.73rem; line-height:1.65; }
.client-atlas .client-map-summary strong { margin-right:.2rem; color:#333; font-family:var(--font-display); font-size:1.3rem; letter-spacing:-.035em; }
.client-atlas .client-map-toolbar [data-client-status] { flex:1 1 250px; margin:0; color:#626262; font-size:.72rem; line-height:1.65; }
.client-atlas .client-map-legend { display:flex; flex:1 0 100%; flex-wrap:wrap; gap:.5rem 1rem; color:#666; font-size:.65rem; line-height:1.5; }
.client-atlas .client-map-legend span { display:inline-flex; align-items:center; gap:.4rem; }
.client-atlas .client-map-legend i { display:inline-block; flex:0 0 9px; width:9px; height:9px; border-radius:50%; }
.client-atlas .results-pin { background:#edc529; border:1px solid #3d3d3d; }
.client-atlas .hiring-pin { background:#353535; border:1px solid #fff; box-shadow:0 0 0 1px #707070; }
.client-atlas .directory-pin { background:#b8b8b8; border:1px solid #555; }
.client-atlas [data-atlas='clients'] { min-height:520px; }
.client-atlas [data-client-reset] { border:0; background:none; padding:.45rem 0; color:#4d4d4d; font:inherit; font-size:.73rem; font-weight:800; text-decoration:underline; text-underline-offset:3px; cursor:pointer; }
.client-atlas .client-map-select { display:block; width:100%; margin-bottom:1.3rem; }
.client-atlas [data-client-select]:disabled { color:#777; background:#f5f5f5; }
.client-atlas .client-map-kind { display:inline-flex; align-items:center; width:fit-content; padding:.35rem .5rem; border-radius:4px; background:#f4d74e; color:#333; font-size:.6rem; font-weight:800; letter-spacing:.035em; line-height:1.35; text-transform:uppercase; }
.client-atlas .client-map-kind[data-kind='hiring'] { background:#ececec; color:#444; }
.client-atlas .client-map-kind[data-kind='client'] { background:#e3e3e3; color:#333; }
.client-atlas [data-client-detail] .client-map-kind { margin:0 0 .8rem; }
.client-atlas [data-client-detail] .client-map-location { display:block; color:#727272; }
.client-atlas .client-map-copy { color:#656565; font-size:.8rem; line-height:1.7; margin:.95rem 0; }
.client-atlas .client-map-context { font-size:.71rem; }
.client-atlas .client-map-locations { padding-top:.7rem; border-top:1px solid #e4e4e4; font-size:.71rem; }
.client-atlas .client-map-recorded-hires strong { font-size:2.8rem; color:#444; }
.client-atlas .client-map-headline,.client-atlas .client-map-period,.client-atlas .atlas-note,.client-atlas .client-map-context { color:#666; }
.client-atlas .atlas-note a { color:#555; }
.client-atlas .client-map-empty { padding:1.2rem 0; }
.client-atlas .client-map-empty h3 { font-size:1.1rem; }
.client-atlas .client-map-empty p { color:#666; font-size:.8rem; line-height:1.7; }
[data-atlas='clients'] .atlas-pin.has-results circle:not(.atlas-hit) { fill:#edc529; stroke:#3d3d3d; }
[data-atlas='clients'] .atlas-pin.has-results text { fill:#272727; }
[data-atlas='clients'] .atlas-pin.has-results.selected circle:not(.atlas-hit),[data-atlas='clients'] .atlas-pin.has-results:hover circle:not(.atlas-hit),[data-atlas='clients'] .atlas-pin.has-results:focus circle:not(.atlas-hit) { fill:#f6d64b; stroke:#202020; stroke-width:2.5; }
[data-atlas='clients'] .atlas-pin.hiring-only circle:not(.atlas-hit) { fill:#353535; stroke:#fff; }
[data-atlas='clients'] .atlas-pin.hiring-only text { fill:#fff; }
[data-atlas='clients'] .atlas-pin.hiring-only.selected circle:not(.atlas-hit),[data-atlas='clients'] .atlas-pin.hiring-only:hover circle:not(.atlas-hit),[data-atlas='clients'] .atlas-pin.hiring-only:focus circle:not(.atlas-hit) { fill:#fff; stroke:#303030; stroke-width:2.5; }
[data-atlas='clients'] .atlas-pin.hiring-only.selected text,[data-atlas='clients'] .atlas-pin.hiring-only:hover text,[data-atlas='clients'] .atlas-pin.hiring-only:focus text { fill:#303030; }
[data-atlas='clients'] .atlas-pin.has-directory circle:not(.atlas-hit) { fill:#b8b8b8; stroke:#555; }
[data-atlas='clients'] .atlas-pin.has-directory text { fill:#252525; }
[data-atlas='clients'] .atlas-pin.has-directory.selected circle:not(.atlas-hit),[data-atlas='clients'] .atlas-pin.has-directory:hover circle:not(.atlas-hit),[data-atlas='clients'] .atlas-pin.has-directory:focus circle:not(.atlas-hit) { fill:#dedede; stroke:#303030; stroke-width:2.5; }
[data-atlas='clients'] .atlas-pin.has-directory.directory-mixed circle:not(.atlas-hit) { stroke-dasharray:2 2; }
[data-atlas='clients'] .atlas-pin:focus-visible circle:not(.atlas-hit) { stroke-width:3.5; }
@media(max-width:760px) { .client-atlas .client-map-controls { grid-template-columns:1fr 1fr; } .client-atlas .client-map-controls label:first-child { grid-column:1/-1; } .client-atlas [data-atlas='clients'] { min-height:380px; } }
@media(max-width:440px) { .client-atlas .client-map-controls { grid-template-columns:1fr; } .client-atlas .client-map-toolbar { align-items:flex-start; } .client-atlas [data-atlas='clients'] { min-height:320px; } }
