/* Geographic context for published work, scoped to the portfolio map. */
html body[data-page-family] main .case-portfolio .project-map{width:100%;max-width:none;padding:40px 0;margin:24px 0 48px;border:0;color:#122747;scroll-margin-top:120px}
.project-map .pm-heading{display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:end;margin-bottom:28px}
.project-map .pm-heading h2{font-size:clamp(32px,4vw,54px);letter-spacing:-.045em;line-height:1.08;margin:10px 0 0}
.project-map .pm-heading p:not(.eyebrow){max-width:520px;margin:0;color:#52637c;line-height:1.65;font-size:17px}
.project-map .pm-shell{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,1fr);border:1px solid #cedaf0;border-radius:24px;overflow:hidden;background:#fff}
.project-map .pm-map-side{min-width:0;background:linear-gradient(145deg,#eef4ff,#e8eef8);display:flex;flex-direction:column}
.project-map .pm-countries{padding:22px 22px 0;display:flex;gap:8px;flex-wrap:wrap}
.project-map .pm-countries button{display:inline-flex;align-items:center;gap:9px;border:1px solid #c9d6ed;border-radius:50px;background:#fff;padding:10px 14px;font-family:inherit;font-weight:600;font-size:13px;line-height:1.25;color:#213f6c;cursor:pointer;min-height:44px}
.project-map .pm-countries button span{font-size:11px;opacity:.7}
.project-map .pm-countries button[aria-pressed=true]{background:#1747ee;color:white;border-color:#1747ee}
.project-map .pm-canvas{position:relative;aspect-ratio:4/3;overflow:hidden;isolation:isolate;margin-top:auto;margin-bottom:auto}
.project-map .pm-canvas svg{position:absolute;inset:0;width:100%;height:100%}
.project-map .pm-canvas path{fill:#d5deed;stroke:#f6f9ff;stroke-width:1;vector-effect:non-scaling-stroke}
.project-map .pm-canvas path.pm-country-shape{fill:#99b6f7;stroke:#779ae5}
.project-map .pm-canvas path.is-active{fill:#547feb;stroke:#1747ee}
.project-map .pm-pin{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-width:44px;min-height:44px;border:0;background:transparent;color:#18375c;font-family:inherit;font-weight:600;font-size:12px;line-height:1.3;cursor:pointer;z-index:2;padding:4px;white-space:nowrap}
.project-map .pm-dot{width:13px;height:13px;border:3px solid white;background:#1747ee;border-radius:50%;box-shadow:0 0 0 5px #1747ee20,0 2px 8px #142b5033;flex-shrink:0}
.project-map .pm-pin-label{border-radius:5px;background:#fffffff0;padding:4px 7px;box-shadow:0 2px 7px #142b5010;font-size:12px;line-height:1.25}
.project-map .pm-pin:hover,.project-map .pm-pin:focus-visible,.project-map .pm-pin.is-active{z-index:3}
.project-map .pm-pin:hover .pm-dot,.project-map .pm-pin.is-active .pm-dot{background:#0b2458;box-shadow:0 0 0 7px #1747ee25}
.project-map .pm-back{position:absolute;top:16px;left:22px;padding:10px 14px;background:white;color:#213f6c;border:1px solid #c9d6ed;border-radius:40px;font-family:inherit;font-weight:600;font-size:13px;line-height:1.4;min-height:44px;cursor:pointer;z-index:4}
.project-map .pm-map-note{position:absolute;bottom:14px;left:22px;right:16px;font-size:11px;line-height:1.4;color:#52637c;pointer-events:none}
.project-map .pm-panel{padding:26px;border-left:1px solid #cedaf0;min-width:0}
.project-map .pm-panel-head h3{font-size:25px;line-height:1.2;letter-spacing:-.025em;margin:8px 0}
.project-map .pm-status{font-size:13px;line-height:1.5;margin:0 0 18px;color:#52637c}
.project-map .pm-project{display:flex;flex-direction:column;gap:5px;padding:15px 0;border-top:1px solid #e1e7f2;text-decoration:none;color:#122747;line-height:1.4}
.project-map .pm-project strong{font-size:17px;display:flex;gap:12px;align-items:baseline}
.project-map .pm-project strong span{color:#1747ee}
.project-map .pm-project>span:last-child{font-size:13px;color:#52637c}
.project-map .pm-place{font-size:11px;letter-spacing:.035em;color:#52637c}
.project-map .pm-project:hover strong,.project-map .pm-project:focus-visible strong,.project-map .pm-project.is-active strong{color:#1747ee}
.project-map [hidden]{display:none!important}
.project-map button:focus-visible,.project-map a:focus-visible{outline:3px solid #1747ee;outline-offset:3px}
@media(max-width:760px){
html body[data-page-family] main .case-portfolio .project-map{padding:28px 0;margin:8px 0 24px}
.project-map .pm-heading{grid-template-columns:1fr;gap:16px}
.project-map .pm-heading p:not(.eyebrow){font-size:15px}
.project-map .pm-shell{grid-template-columns:1fr;border-radius:18px}
.project-map .pm-countries{padding:16px 14px 0;gap:6px}
.project-map .pm-countries button{padding:9px 11px;font-size:12px}
.project-map .pm-panel{border-left:0;border-top:1px solid #cedaf0;padding:22px}
.project-map .pm-map-note{font-size:10px;left:14px}
.project-map .pm-pin-label{font-size:10px;padding:3px 5px}
.project-map .pm-back{top:8px;left:14px}
}
/* Keep each dot anchored at the coordinate, independent of its label width. */
.project-map .pm-pin{width:44px;height:44px;padding:0;gap:0}
.project-map .pm-pin-label{position:absolute;left:50%;top:36px;transform:translateX(-50%)}
.project-map .pm-country-pin[data-pm-country="MD"] .pm-pin-label{top:auto;bottom:36px}

/* Original brand symbols; wordmarks are already provided by the adjacent names. */
.project-map .pm-client{display:grid;grid-template-columns:56px minmax(0,1fr);gap:14px;align-items:center;margin-block:3px}
.project-map .pm-client-logo{display:flex;align-items:center;justify-content:center;width:56px;height:56px;padding:8px;background:transparent;border:0;border-radius:0;overflow:hidden}
.project-map [data-pm-project="arabicparfums-es"] .pm-client-symbol{filter:brightness(.6)}
.project-map [data-pm-project="studiodent-md"] .pm-client-symbol path{fill:#172943}
.project-map .pm-client-symbol{display:block;position:static;width:100%;height:100%;overflow:hidden;flex:none}
.project-map .pm-client strong{min-width:0;display:block;font-size:16px;line-height:1.4}
.project-map .pm-client strong>span{display:inline-block;margin-left:5px}

.project-map .pm-inset-frame{fill:#edf3fd;stroke:#b9cbe7;stroke-width:1;vector-effect:non-scaling-stroke}
.project-map .pm-inset-label{font:600 10px Arial,sans-serif;letter-spacing:1px;fill:#52637c}
.project-map[data-map-detail="CA"] .pm-inset-label{display:none}
/* A single world canvas; the original blue portfolio identity remains intact. */
.project-map .pm-summary{display:flex;align-items:center;gap:28px;padding:0 0 24px;color:#52637c;font-size:12px}
.project-map .pm-summary>span{display:flex;align-items:baseline;gap:8px}
.project-map .pm-summary strong{font-size:25px;color:#17376a;font-weight:600;letter-spacing:-.05em}
.project-map .pm-summary .pm-summary-note{margin-left:auto;font-size:11px;letter-spacing:.04em}
.project-map .pm-shell{grid-template-columns:minmax(0,1.9fr) minmax(280px,1fr);box-shadow:0 22px 55px #143e7710}
.project-map .pm-map-side{background:radial-gradient(ellipse at 35% 35%,#f9fbff,#e9f0fb 75%)}
.project-map .pm-canvas{aspect-ratio:1.6;touch-action:none;cursor:grab;margin-block:auto;outline-offset:-4px}
.project-map .pm-canvas.is-dragging{cursor:grabbing}
.project-map .pm-canvas .pm-graticule{fill:none;stroke:#b4c8e2;stroke-opacity:.27;stroke-width:.6}
.project-map .pm-canvas path{fill:#d9e3f0;stroke:#f5f8fc;stroke-width:.65}
.project-map .pm-canvas .pm-country-shape{fill:#93b0f5;stroke:#668ddd;cursor:pointer;transition:fill .2s}
.project-map .pm-canvas .pm-country-shape:hover,.project-map .pm-canvas .pm-country-shape.is-active{fill:#416de6;stroke:#1747ee}
.project-map .pm-panel{display:flex;flex-direction:column;padding:28px 24px}
.project-map .pm-projects{max-height:450px;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#bccbe4 transparent;padding-right:5px}
.project-map .pm-project{padding-block:18px;transition:background .2s;padding-inline:8px;border-radius:7px}
.project-map .pm-project.is-active,.project-map .pm-project:hover{background:#edf3ff}
.project-map .pm-pin{cursor:pointer}
.project-map .pm-cluster{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#1747ee;color:#fff;font-size:12px;border:3px solid #fff;box-shadow:0 0 0 7px #1747ee18,0 4px 14px #17376a25}
.project-map .pm-region-pin .pm-pin-label{top:43px}
.project-map .pm-map-controls{position:absolute;top:18px;right:18px;display:grid;z-index:5;background:#ffffffed;border:1px solid #c9d6ed;border-radius:12px;box-shadow:0 4px 16px #18375c0c;overflow:hidden}
.project-map .pm-map-controls button{width:42px;height:42px;border:0;background:transparent;color:#1d3e70;font:22px/1 Arial;cursor:pointer}
.project-map .pm-map-controls button+button{border-top:1px solid #e1e8f2}
.project-map .pm-map-controls button:hover{background:#eaf0ff}
.project-map .pm-map-controls button:disabled{opacity:.3;cursor:default}
.project-map .pm-zoom-level{position:absolute;top:22px;left:20px;font:10px/1.3 monospace;letter-spacing:.04em;color:#52637c;padding:5px 8px;background:#ffffffb8;border:1px solid #d3dff0;border-radius:5px}
.project-map .pm-map-note{display:flex;flex-direction:column;gap:5px;background:linear-gradient(0deg,#eef4fce8,#eef4fc00);padding:16px 0 0;font-size:10px;left:20px;bottom:15px}
.project-map .pm-map-note span:last-child{font-size:9px;opacity:.8}
.project-map .pm-city-pin[data-country="RO"]:not([data-pm-city="bucuresti"]) .pm-pin-label{top:auto;bottom:36px}
@media(max-width:760px){
 .project-map .pm-shell{grid-template-columns:1fr}
 .project-map .pm-summary{gap:16px;flex-wrap:wrap;padding-bottom:20px;font-size:10px}
 .project-map .pm-summary strong{font-size:22px}
 .project-map .pm-summary .pm-summary-note{display:none}
 .project-map .pm-canvas{aspect-ratio:1.05;margin-top:10px}
 .project-map .pm-countries{gap:6px;padding:14px 12px 0}
 .project-map .pm-countries button{padding:8px 10px;font-size:11px}
 .project-map .pm-panel{padding:23px 18px}
 .project-map .pm-projects{max-height:320px}
 .project-map .pm-map-controls{top:12px;right:12px}
 .project-map .pm-map-controls button{width:40px;height:40px}
 .project-map .pm-map-note{left:12px;font-size:9px;bottom:12px}
 .project-map .pm-zoom-level{left:12px;top:16px}
}
@media(prefers-reduced-motion:reduce){.project-map *{transition:none!important}}

.project-map .pm-touch-hint{display:none}
@media(pointer:coarse){.project-map .pm-desktop-hint{display:none}.project-map .pm-touch-hint{display:inline}}

.project-map .pm-canvas.is-world-view,.project-map .pm-canvas.is-world-view.is-dragging{cursor:default}
.project-map .pm-continent-label{font:9px Arial,sans-serif;letter-spacing:2px;fill:#72849b;pointer-events:none}
.project-map .pm-summary .pm-selection-label{font-size:12px;color:#52637c}

/* The world is 2:1. Keep that same frame on every screen, with controls outside it. */
.project-map .pm-canvas{aspect-ratio:2;margin:0;flex:none;width:100%}
.project-map .pm-countries{padding-bottom:20px}
.project-map .pm-toolbar{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:14px 20px}
.project-map .pm-map-note{position:static;padding:0;background:none;flex:1}
.project-map .pm-map-controls{position:static;display:flex;flex:none;box-shadow:none}
.project-map .pm-map-controls button+button{border-top:0;border-left:1px solid #e1e8f2}
.project-map .pm-projects{height:0;min-height:0;max-height:none;flex:1}
.project-map .pm-pin.is-overview-pin{min-width:6px;min-height:6px;width:6px;height:6px}
.project-map .pm-pin.is-overview-pin .pm-dot{width:6px;height:6px;border:1px solid white;box-shadow:0 0 0 2px #1747ee18;z-index:1}
.project-map .pm-pin.is-overview-pin .pm-pin-label{left:50%;top:50%;bottom:auto;transform:translate(-50%,-50%) translate(var(--label-x),var(--label-y));z-index:2}
.project-map .pm-pin.is-overview-pin::before{content:"";position:absolute;left:50%;top:50%;height:1px;width:var(--leader-length);background:#6c89bd;transform-origin:0 50%;transform:rotate(var(--leader-angle));pointer-events:none}
@media(max-width:760px){
 .project-map .pm-countries{padding-bottom:18px}
 .project-map .pm-toolbar{padding:12px;gap:8px}
 .project-map .pm-map-controls button{width:32px;height:36px}
 .project-map .pm-projects{height:auto;max-height:320px;flex:none}
 .project-map .pm-zoom-level{top:auto;bottom:10px;left:10px}
}
@media(min-width:761px){.project-map .pm-panel{contain:size;min-height:0}}
