/* mapa „Co Cię boli?” */
.bmap{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,5fr) minmax(0,4fr);gap:var(--space-xl);align-items:start}
.map-nav{min-width:0}
.map-list{position:relative;display:grid;gap:6px;align-content:start}
.map-arrow{display:none}
.map-btn{appearance:none;display:flex;flex-direction:column;align-items:flex-start;gap:0;width:100%;min-height:48px;padding:10px 14px;border:var(--rule);border-radius:8px;background:var(--panel,var(--color-tile));color:var(--color-ink);font:inherit;text-align:left;cursor:pointer;transition-property:background,border-color,color;transition-duration:var(--dur-micro);transition-timing-function:var(--ease-out)}
.map-btn b{font-weight:500}
.map-btn span{font-size:var(--text-sm);color:var(--color-neutral)}
@media (hover:hover) and (pointer:fine){.map-btn:hover{border-color:var(--color-blue)}}
.map-btn[aria-pressed="true"]{background:var(--color-blue);border-color:var(--color-blue);color:var(--color-on-blue)}
.map-btn[aria-pressed="true"] span{color:var(--color-on-blue-muted)}
.map-btn:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}
.map-stage{position:relative;aspect-ratio:3/4;max-height:640px;width:100%;border-radius:var(--radius);background:radial-gradient(60% 50% at 50% 45%,var(--color-tile),var(--color-paper) 70%);overflow:hidden}
.map-stage canvas{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:pan-y}
.map-stage .map-wait{position:absolute;inset:0;display:grid;place-items:center;color:var(--color-neutral);font-size:var(--text-sm);text-align:center;padding:var(--space-lg)}
.map-static{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.map-stage.is-flat .map-rotate{display:none}
.map-stage.is-flat .map-wait{inset:auto 0 0;padding:var(--space-md)}
.map-rotate{position:absolute;z-index:1;right:var(--space-md);bottom:var(--space-md);width:26px;height:26px;pointer-events:none;background:var(--color-neutral);-webkit-mask:var(--icon-rotate) center/contain no-repeat;mask:var(--icon-rotate) center/contain no-repeat}
.map-layers{position:absolute;z-index:2;top:var(--space-sm);right:var(--space-sm);display:flex;padding:3px;gap:2px;border:var(--rule);border-radius:999px;background:var(--color-tile)}
.map-layers[hidden]{display:none}
.map-layers button{appearance:none;border:0;background:transparent;font:500 var(--text-sm)/1 var(--font-body);color:var(--color-muted);padding:9px 14px;min-height:36px;border-radius:999px;cursor:pointer;transition-property:background,color;transition-duration:var(--dur-micro);transition-timing-function:var(--ease-out)}
.map-layers button{position:relative}
.map-layers button::after{content:"";position:absolute;inset:-4px 0}
.map-layers button[aria-pressed="true"]{background:var(--color-blue);color:var(--color-on-blue)}
@media (hover:hover) and (pointer:fine){.map-layers button[aria-pressed="false"]:hover{color:var(--color-ink)}}
.map-layers button:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}
.map-card{position:sticky;top:120px;background:var(--panel,var(--color-tile));border:var(--rule);border-radius:var(--radius);padding:var(--space-lg);display:grid;gap:var(--space-md);min-height:280px;align-content:start}
.map-card .map-k{font-size:var(--text-sm);color:var(--color-neutral)}
.map-card h3{font-size:var(--text-lg)}
.map-sec h4{margin:0 0 4px;font-size:var(--text-sm);font-weight:500;color:var(--color-neutral)}
.map-sec ul{margin:0;padding-left:1.1em;display:grid;gap:2px}
.map-extra{font-size:var(--text-sm);color:var(--color-muted)}
.map-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-sm) var(--space-xs);padding-top:var(--space-md);border-top:var(--rule)}
.map-actions .tel{font-size:var(--text-sm)}
.map-empty{color:var(--color-muted)}
.map-note{font-size:0.8rem;line-height:1.5;color:var(--color-neutral)}
@media (max-width:72rem){
  .bmap{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .map-nav{grid-column:1 / -1;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px}
  .map-arrow{display:grid;place-items:center;flex:none;width:44px;height:44px;padding:0;border:var(--rule);border-radius:50%;background:var(--panel,var(--color-tile));color:var(--color-blue);cursor:pointer;transition:opacity var(--dur-micro) var(--ease-out),transform 160ms var(--ease-out)}
  .map-arrow:not(:disabled):active{transform:scale(.94)}
  .map-arrow[hidden]{display:none}
  .map-arrow:disabled{opacity:.35;cursor:default}
  .map-arrow:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}
  @media (hover:hover) and (pointer:fine){.map-arrow:not(:disabled):hover{border-color:var(--color-blue)}}
  .map-list{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px;scroll-snap-type:x proximity;scrollbar-width:none}
  .map-list::-webkit-scrollbar{display:none}
  .map-btn{flex:0 0 auto;width:auto;scroll-snap-align:start}
  .map-btn span{display:none}
  .map-card{position:static}
}
@media (max-width:40rem){
  .bmap{grid-template-columns:minmax(0,1fr)}
  .map-stage{aspect-ratio:4/5;max-height:440px}
  .map-card{min-height:0}
}
/* nowa treść karty po wyborze okolicy wchodzi łagodnie */
.map-card > *{animation:karta-in 200ms var(--ease-out) both}
@keyframes karta-in{from{opacity:0;transform:translateY(8px)}}
@keyframes karta-fade{from{opacity:0}}
@media (prefers-reduced-motion:reduce){.map-btn{transition:none}.map-card > *{animation:karta-fade 120ms linear both}.map-arrow:active{transform:none}}
