.atlas-hero { --atlas-map-height:calc(100svh - 96px); --atlas-min-height:620px; height:var(--atlas-map-height); min-height:var(--atlas-min-height); max-width:none; position:relative; overflow:hidden; background:var(--paper); }
.atlas-toolbar { position:absolute; top:20px; left:4%; right:4%; display:flex; align-items:flex-start; flex-wrap:wrap; gap:12px 16px; z-index:2; pointer-events:none; }
.atlas-toolbar>* { pointer-events:auto; }
.atlas-heading { display:flex; align-items:flex-start; flex-wrap:wrap; gap:12px 24px; margin-right:auto; }
.atlas-heading h1 { font-size:clamp(28px,3.1vw,44px); white-space:normal; line-height:1.15; margin:0; letter-spacing:-.035em; text-shadow:0 1px 12px #fff,0 1px 4px #fff; }
.atlas-heading h1 span { color:var(--action); }
.atlas-purpose { max-width:40ch; margin:8px 0 0; padding:4px 8px; border-radius:8px; font-size:14px; line-height:1.5; background:#ffffffdf; }
.atlas-view-switch { display:flex; gap:4px; border:1px solid var(--line); background:#ffffffed; border-radius:24px; padding:3px; }
.atlas-view-switch a { min-height:44px; padding:10px 16px; border-radius:20px; }
.atlas-view-switch [aria-current] { background:var(--tint); color:var(--action); }
.atlas-toolbar .search-form { width:min(420px,100%); margin:0; min-width:220px; height:48px; background:#fffffff5; }
.atlas-search-toggle { min-height:44px; padding:8px 12px; border:1px solid var(--line); background:#fffffff2; border-radius:12px; color:var(--action); }
.atlas-toolbar [hidden],.atlas-controls [hidden] { display:none; }
.atlas-hero .scene-viewport { position:absolute; inset:0; width:100%; height:100%; min-height:0; display:grid; place-items:center; overflow:hidden; touch-action:pan-y; }
.atlas-hero .scene-canvas { position:relative; inset:auto; left:auto; top:auto; margin:0; width:max(112%,calc(max(var(--atlas-map-height),var(--atlas-min-height))*1.5*1.12)); height:auto; aspect-ratio:3/2; transform:none; transform-origin:center; }
.atlas-hero.atlas-ready .scene-canvas { position:absolute; width:1536px; height:1024px; left:50%; top:50%; transform:translate(-50%,-50%) translate(var(--pan-x,0px),var(--pan-y,0px)) scale(var(--atlas-scale,1)); }
.atlas-hero .world-image { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; object-position:center; }
.atlas-hero .hotspot,.atlas-object { position:absolute; left:var(--x); top:var(--y); width:44px; height:44px; padding:0; transform:translate(-50%,-50%) scale(var(--marker-scale,1)); display:block; text-decoration:none; z-index:1; }
.atlas-marker { position:relative; transform-origin:center; display:flex; flex-direction:column; align-items:center; justify-content:center; min-width:44px; min-height:44px; gap:3px; }
.atlas-hero .hotspot-label { font-size:13px; padding:9px 14px; color:var(--ink); border:1px solid var(--line); }
.atlas-hero .hotspot-dot { display:block; width:16px; height:16px; border-width:3px; }
.atlas-cutout { position:absolute; width:calc(160px * var(--image-scale,1)); height:auto; max-width:none; left:var(--x); top:var(--y); transform:translate(-50%,-100%); pointer-events:none; }
.atlas-controls { position:absolute; bottom:16px; left:4%; right:4%; z-index:2; display:flex; align-items:center; flex-wrap:wrap; gap:6px; pointer-events:none; }
.atlas-controls button,.atlas-controls a { pointer-events:auto; min-height:44px; min-width:44px; display:flex; align-items:center; justify-content:center; padding:8px 12px; border:1px solid var(--line); border-radius:12px; color:var(--action); background:#fffffff2; }
.atlas-controls button:disabled { opacity:.45; }
.atlas-controls a { margin-left:auto; }
.atlas-controls [data-pan-mode][aria-pressed="true"] { background:var(--action); color:var(--paper); }
.atlas-hero a:focus-visible,.atlas-hero button:focus-visible,.atlas-hero .scene-viewport:focus-visible { outline:3px solid var(--action); outline-offset:3px; }
/* One focus ring follows the visible marker, not the smaller transformed hit box. */
.atlas-hero a.hotspot:focus-visible,.atlas-hero a.atlas-object:focus-visible { outline:none; }
.atlas-hero .hotspot:focus-visible .atlas-marker,.atlas-object:focus-visible .atlas-marker { outline:3px solid var(--action); outline-offset:3px; border-radius:16px; }
.atlas-hero.is-expanded,.atlas-hero:fullscreen { position:fixed; inset:0; width:100%; height:100dvh; min-height:0; max-width:none; z-index:30; }
@media(max-width:600px) {
  .atlas-hero { --atlas-map-height:calc(100svh - 88px - 64px - env(safe-area-inset-bottom)); --atlas-min-height:520px; }
  .atlas-toolbar { top:12px; left:16px; right:16px; gap:8px; }
  .atlas-heading { width:100%; justify-content:space-between; gap:8px; }
  .atlas-heading h1 { font-size:27px; }
  .atlas-purpose { max-width:34ch; font-size:13px; }
  .atlas-view-switch a { padding:10px 12px; font-size:13px; }
  .atlas-search-toggle { font-size:13px; }
  .atlas-toolbar .search-form { flex:1; min-width:160px; padding:0 8px; }
  .atlas-hero .hotspot-label { position:absolute; width:1px; height:1px; padding:0; clip-path:inset(50%); overflow:hidden; white-space:nowrap; border:0; }
  .atlas-hero .hotspot-dot { width:18px; height:18px; box-shadow:0 0 0 10px #ffffffad; }
  .atlas-controls { bottom:12px; left:12px; right:12px; gap:4px; font-size:12px; }
  .atlas-controls button,.atlas-controls a { padding:8px; }
  .atlas-controls a { margin-left:0; }
}
@media(prefers-reduced-motion:reduce) { .atlas-hero * { scroll-behavior:auto; transition:none; } }

.atlas-hero .group-choices a { flex-direction:column; align-items:flex-start; gap:6px; min-height:44px; }
.atlas-hero .group-choices a span { font-size:14px; color:var(--muted); }

.atlas-business-link { display:flex; align-items:center; min-height:44px; padding:8px 14px; border:1px solid var(--line); border-radius:12px; background:white; color:var(--action); font-size:14px; }
.home-business { scroll-margin-top:24px; padding-top:48px; padding-bottom:48px; }
.home-business>p { max-width:72ch; }
.home-business-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; margin:28px 0 40px; }
.home-business-card { display:flex; flex-direction:column; overflow:hidden; border:1px solid var(--line); border-radius:20px; background:white; }
.home-business-card img,.home-business-image { display:block; width:100%; aspect-ratio:3/2; object-fit:cover; height:auto; }
.home-business-image { background-image:var(--sector-image); background-size:300% auto; background-position:0 0; }
.home-business-card strong { padding:16px 16px 8px; font-size:18px; }
.home-business-card>span:last-child { padding:0 16px 20px; color:var(--muted); font-size:14px; }
.home-business-card:hover { border-color:var(--action); }
.home-group-links { display:flex; flex-wrap:wrap; gap:10px; margin:20px 0; }
.home-group-links a { display:flex; align-items:center; min-height:44px; border:1px solid var(--line); padding:10px 16px; border-radius:12px; background:white; }
.home-business-note { font-size:13px; color:var(--muted); }
@media(max-width:1000px) { .home-business-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:600px) { .atlas-business-link { font-size:13px; } .home-business-grid { gap:12px; } .home-business-card strong { font-size:16px; padding:12px 12px 8px; } .home-business-card>span:last-child { padding:0 12px 16px; font-size:13px; } }

@media(max-width:360px) { .atlas-hero { --atlas-min-height:680px; } .atlas-business-link { padding:8px; font-size:12px; } }
