/* Stepfox Food Delivery · sfd-map.css (P-MAPS) · ceiling 70 lines (SPEC §3.1, §4.1, §5.4–§5.7): container isolation, static preview, pins, clusters, courier, home/store/user pins, picker pin, popup card, carousel, controls, attribution, cooperative-gesture hint, overlays, tile tint. Mechanics and token reads only (Leaflet internals only inside .sfd-map); values are theme-owned; no priority flags. */
.sfd-map{position:relative;isolation:isolate;overflow:hidden;min-height:var(--sfd-map-h);background:var(--sfd-map-land);color:var(--sfd-ink);--sfd-map-tile-filter:saturate(.4) sepia(.2) brightness(1.05) contrast(.92)}
:root[data-sfd-scheme="dark"] .sfd-map{background:var(--sfd-map-land-dark);--sfd-map-tile-filter:invert(1) hue-rotate(180deg) saturate(.35) brightness(.88) contrast(.92) sepia(.1)}
.sfd-map__canvas,.sfd-map__leaflet{position:absolute;inset:0;z-index:0}
.sfd-map__preview{display:block;width:100%;height:100%;transition:opacity var(--sfd-dur-3) var(--sfd-ease)}.sfd-map.is-live .sfd-map__preview{opacity:0;visibility:hidden}
.sfd-map__skip{position:absolute;top:.5rem;left:.5rem;z-index:5;padding:.5rem 1rem;border-radius:var(--sfd-radius-pill);background:var(--sfd-surface);color:var(--sfd-ink);box-shadow:var(--sfd-shadow-focus)}
.sfd-map__skip:not(:focus){width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.sfd-map__after{position:absolute;outline:0}
.sfd-map .leaflet-container{background:transparent;font:inherit;line-height:1.4}.sfd-map.is-tinted .leaflet-tile-pane{filter:var(--sfd-map-tile-filter)}
.sfd-map.is-click:not(.is-armed) .leaflet-container{cursor:pointer}.sfd-map .leaflet-container .leaflet-control-attribution{margin:0 0 .5rem .5rem;padding:.125rem .5rem;border-radius:var(--sfd-radius-pill);background:var(--sfd-surface);color:var(--sfd-muted);font-size:var(--wp--preset--font-size--x-small,.6875rem);line-height:1.6}
.sfd-map .leaflet-container .leaflet-control-attribution a{color:var(--sfd-ink)}
.sfd-map .leaflet-marker-icon:focus-visible,.sfd-map .leaflet-container:focus-visible{outline:0}.sfd-map .leaflet-container:focus-visible{box-shadow:inset var(--sfd-shadow-focus)}
.sfd-marker{display:flex;align-items:flex-start;justify-content:center}.sfd-marker:focus-visible>span{box-shadow:var(--sfd-shadow-focus)}
.sfd-pin{position:relative;box-sizing:border-box;display:flex;align-items:center;justify-content:center;flex:none;width:var(--sfd-pin-size);height:var(--sfd-pin-size);border:var(--sfd-pin-ring) solid var(--sfd-on-accent);border-radius:50%;background:var(--sfd-pin-bg,var(--sfd-surface));color:var(--sfd-on-accent);box-shadow:var(--sfd-pin-shadow);transform-origin:50% 120%;transition:transform var(--sfd-dur-2) var(--sfd-spring),opacity var(--sfd-dur-2) var(--sfd-ease)}
.sfd-pin--restaurant::after{content:"";position:absolute;top:100%;left:50%;margin:calc(var(--sfd-pin-ring) * -.5) 0 0 -.375rem;border:.375rem solid transparent;border-top:.5rem solid var(--sfd-on-accent);border-bottom:0}
.sfd-marker .sfd-pin>.sfd-pin__logo{width:100%;height:100%;border-radius:50%;object-fit:cover}.sfd-pin .sfd-icon{width:55%;height:55%}
.sfd-pin__badge{position:absolute;top:-.25rem;right:-.375rem;display:flex;align-items:center;justify-content:center;width:1.25rem;height:1.25rem;border-radius:50%;background:var(--sfd-night);color:var(--sfd-on-night)}.sfd-pin__badge .sfd-icon{width:.75rem;height:.75rem}
.sfd-pin__label{position:absolute;bottom:calc(100% + .375rem);left:50%;display:none;padding:.125rem .5rem;border-radius:var(--sfd-radius-pill);background:var(--sfd-night);color:var(--sfd-on-night);font-family:var(--sfd-font-body);font-size:var(--wp--preset--font-size--x-small,.75rem);font-weight:var(--wp--custom--sfd--semibold,600);line-height:1.5;font-variant-numeric:var(--sfd-nums,tabular-nums);white-space:nowrap;transform:translateX(-50%);pointer-events:none}
.sfd-marker:hover .sfd-pin--restaurant,.sfd-marker:focus-visible .sfd-pin--restaurant,.sfd-pin.is-hover{transform:scale(1.08);box-shadow:var(--sfd-pin-shadow),0 0 0 var(--sfd-pin-ring) var(--sfd-accent)}
.sfd-pin.is-selected{transform:scale(1.15);box-shadow:var(--sfd-pin-shadow),0 0 0 var(--sfd-pin-ring) var(--sfd-accent)}.sfd-pin.is-selected .sfd-pin__label,.sfd-map.is-z15 .sfd-pin--restaurant:not(.is-out):not(.is-quiet) .sfd-pin__label{display:block}
.sfd-pin.is-closed .sfd-pin__logo{filter:grayscale(1)}.sfd-pin.is-closed{opacity:.7}.sfd-pin.is-out{opacity:.55}.sfd-pin.is-out .sfd-pin__label{display:none}.sfd-pin.is-entering{animation:sfd-map-in var(--sfd-dur-3) var(--sfd-ease)}
.sfd-pin--home,.sfd-pin--store{width:calc(var(--sfd-pin-size) * .91);height:calc(var(--sfd-pin-size) * .91);border-radius:50% 50% 50% 0;transform:rotate(-45deg);transform-origin:50% 50%}.sfd-pin--home{background:var(--sfd-ink)}.sfd-pin--store{background:var(--sfd-accent)}
.sfd-pin--home .sfd-icon,.sfd-pin--store .sfd-icon{transform:rotate(45deg)}.sfd-pin--user{width:1.125rem;height:1.125rem;background:var(--sfd-ink)}
.sfd-cluster{box-sizing:border-box;display:flex;align-items:center;justify-content:center;width:100%;height:100%;border:var(--sfd-pin-ring) solid var(--sfd-on-accent);border-radius:50%;background:var(--sfd-accent);color:var(--sfd-on-accent);box-shadow:var(--sfd-cluster-halo),var(--sfd-pin-shadow);font-family:var(--sfd-font-body);font-size:var(--wp--preset--font-size--small,.9375rem);font-weight:var(--wp--custom--sfd--strong,700);line-height:1;font-variant-numeric:var(--sfd-nums,tabular-nums)}
.sfd-courier{position:relative;box-sizing:border-box;display:flex;align-items:center;justify-content:center;width:var(--sfd-courier-size);height:var(--sfd-courier-size);border-radius:50%;background:var(--sfd-night);color:var(--sfd-on-night);box-shadow:var(--sfd-pin-shadow)}.sfd-courier>.sfd-icon{position:relative;z-index:1;width:50%;height:50%}
.sfd-courier__wedge{position:absolute;inset:-.5rem;transform:rotate(var(--sfd-bearing,0deg));transition:transform 300ms var(--sfd-ease)}.sfd-courier__wedge::before{content:"";position:absolute;top:0;left:50%;margin-left:-.4375rem;border:.4375rem solid transparent;border-bottom:.5rem solid var(--sfd-accent);border-top:0}
.sfd-courier__pulse{position:absolute;inset:0;border:var(--sfd-pin-ring) solid var(--sfd-accent);border-radius:50%;animation:sfd-map-pulse 2s var(--sfd-ease) infinite}
@keyframes sfd-map-pulse{from{opacity:.7;transform:scale(1)}to{opacity:0;transform:scale(1.7)}}@keyframes sfd-map-in{from{opacity:0;transform:scale(.6)}}
.sfd-picker__pin{position:absolute;top:50%;left:50%;z-index:1;width:3rem;height:3rem;margin:-2.9rem 0 0 -1.5rem;color:var(--sfd-accent);pointer-events:none;transition:transform var(--sfd-dur-3) var(--sfd-spring)}.sfd-picker__pin .sfd-icon{position:relative;z-index:1;width:100%;height:100%}
.sfd-picker__shadow{position:absolute;bottom:-.125rem;left:50%;width:.75rem;height:.3rem;margin-left:-.375rem;border-radius:50%;background:var(--sfd-night);opacity:.35;transition:transform var(--sfd-dur-3) var(--sfd-ease),opacity var(--sfd-dur-3) var(--sfd-ease)}
.sfd-map.is-moving .sfd-picker__pin{transform:translateY(-.5rem)}.sfd-map.is-moving .sfd-picker__shadow{opacity:.2;transform:translateY(.5rem) scale(1.4)}
.sfd-map .leaflet-container .leaflet-popup-content-wrapper{padding:0;overflow:hidden;border-radius:var(--sfd-radius-lg);background:var(--sfd-surface);color:var(--sfd-ink);box-shadow:var(--sfd-shadow-pop)}
.sfd-map .leaflet-container .leaflet-popup-content{width:17.5rem;margin:0;font:inherit;line-height:1.4}.sfd-map .leaflet-popup-tip-container{display:none}
.sfd-map .leaflet-container a.leaflet-popup-close-button{top:.375rem;right:.375rem;z-index:1;display:flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;border-radius:50%;background:var(--sfd-surface);color:var(--sfd-ink);box-shadow:var(--sfd-shadow-xs);font-family:var(--sfd-font-body);font-size:var(--wp--preset--font-size--large,1.25rem);line-height:1}
.sfd-map-card{display:flex;flex-direction:column;color:var(--sfd-ink)}.sfd-map-card__media{display:block;aspect-ratio:16/9;background:var(--sfd-surface-2)}.sfd-map .sfd-map-card__cover{display:block;width:100%;height:100%;object-fit:cover}
.sfd-map-card__body{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:.25rem .75rem;padding:.75rem 1rem 1rem}.sfd-map .sfd-map-card__logo{grid-row:span 2;width:2.75rem;height:2.75rem;border-radius:50%;object-fit:cover;background:var(--sfd-surface-2)}
.sfd-map .sfd-map-card__title{margin:0;font-family:var(--sfd-font-display);font-size:var(--wp--preset--font-size--medium,1rem);font-weight:var(--wp--custom--sfd--strong,700);line-height:1.25}.sfd-map .sfd-map-card__title a{color:inherit;text-decoration:none}.sfd-map-card__meta{margin:0;color:var(--sfd-muted);font-size:var(--wp--preset--font-size--small,.8125rem);font-variant-numeric:var(--sfd-nums,tabular-nums)}.sfd-map-card__meta .sfd-icon{width:.875rem;height:.875rem;vertical-align:-.125rem;color:var(--sfd-star)}
.sfd-map .sfd-map-card__link{grid-column:1/-1;display:flex;align-items:center;justify-content:center;min-height:44px;margin-top:.5rem;border-radius:var(--sfd-radius-pill);background:var(--sfd-accent);color:var(--sfd-on-accent);font-weight:var(--wp--custom--sfd--strong,700);text-decoration:none}
.sfd-map-card--compact{position:relative;flex-direction:row;height:100%;border-radius:var(--sfd-radius-lg);background:var(--sfd-surface);box-shadow:var(--sfd-shadow-float)}.sfd-map-card--compact .sfd-map-card__body{flex:1;padding:.75rem}.sfd-map-card--compact .sfd-map-card__link{display:none}.sfd-map-card--compact .sfd-map-card__title a::after{content:"";position:absolute;inset:0;border-radius:inherit}
.sfd-map-carousel{position:absolute;inset:auto 0 calc(.75rem + var(--sfd-map-inset-b,0px));z-index:3;display:grid;grid-auto-flow:column;grid-auto-columns:min(86%,21rem);gap:.75rem;margin:0;padding:0 .75rem;list-style:none;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding:0 .75rem;scrollbar-width:none}
.sfd-map-carousel::-webkit-scrollbar{display:none}.sfd-map-carousel__item{min-width:0;scroll-snap-align:center}.sfd-map-carousel__item.is-current .sfd-map-card{box-shadow:var(--sfd-shadow-float),0 0 0 var(--sfd-pin-ring) var(--sfd-accent)}
.sfd-map__controls{position:absolute;right:.75rem;bottom:calc(1.75rem + var(--sfd-map-inset-b,0px));z-index:2;display:flex;flex-direction:column;gap:.5rem}.sfd-map.is-carousel .sfd-map__controls{visibility:hidden}.sfd-map:not(.is-carousel) .sfd-map-carousel{display:none}
.sfd-map .leaflet-bottom{bottom:var(--sfd-map-inset-b,0px)}.sfd-map.is-carousel .leaflet-bottom{bottom:var(--sfd-map-carousel-lift,0px)}
.sfd-map__btn{appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-width:44px;min-height:44px;padding:0;border:0;border-radius:var(--sfd-radius-pill);background:var(--sfd-surface);color:var(--sfd-ink);box-shadow:var(--sfd-shadow-card);font-family:var(--sfd-font-body);font-size:var(--wp--preset--font-size--small,.875rem);font-weight:var(--wp--custom--sfd--semibold,600);line-height:1;cursor:pointer}
.sfd-map__btn:focus-visible{outline:0;box-shadow:var(--sfd-shadow-focus)}.sfd-map__btn .sfd-icon{width:1.25rem;height:1.25rem}.sfd-map__btn[aria-busy="true"] .sfd-icon{animation:sfd-pulse 1.2s var(--sfd-ease) infinite}.sfd-map__btn--recenter,.sfd-map__pill{padding:0 1rem;white-space:nowrap}
.sfd-map__pill{position:absolute;top:.75rem;left:50%;z-index:2;white-space:nowrap;transform:translateX(-50%);box-shadow:var(--sfd-shadow-float)}
.sfd-map__hint{position:absolute;inset:0;z-index:4;display:flex;align-items:center;justify-content:center;padding:1.5rem;color:var(--sfd-on-night);font-family:var(--sfd-font-body);font-size:var(--wp--preset--font-size--medium,1rem);font-weight:var(--wp--custom--sfd--semibold,600);line-height:1.35;text-align:center;pointer-events:none;opacity:0;transition:opacity var(--sfd-dur-3) var(--sfd-ease)}
.sfd-map__hint::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--sfd-night);opacity:.55}.sfd-map__hint.is-visible{opacity:1}
.sfd-map__hint--click{inset:auto auto calc(.75rem + var(--sfd-pin-ring)) 50%;padding:.5rem 1rem;overflow:hidden;border-radius:var(--sfd-radius-pill);font-size:var(--wp--preset--font-size--small,.875rem);transform:translateX(-50%);white-space:nowrap}.sfd-map.is-click:not(.is-armed):hover .sfd-map__hint--click{opacity:1}
.sfd-map__overlay{position:absolute;inset:0;z-index:5;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:1.5rem 1.5rem calc(1.5rem + var(--sfd-map-inset-b,0px));background:var(--sfd-surface-2);color:var(--sfd-ink);text-align:center}.sfd-map__overlay p{margin:0}
.sfd-map__overlay--load{background:none}.sfd-map__overlay-title{font-weight:var(--wp--custom--sfd--strong,700)}.sfd-map__note{position:absolute;top:.75rem;left:.75rem;z-index:2;margin:0;padding:.25rem .625rem;border-radius:var(--sfd-radius-pill);background:var(--sfd-surface);color:var(--sfd-muted);font-size:var(--wp--preset--font-size--x-small,.6875rem)}
@media (prefers-reduced-motion:reduce){.sfd-pin,.sfd-picker__pin,.sfd-picker__shadow,.sfd-courier__wedge,.sfd-map__hint,.sfd-map__preview{transition:none}.sfd-courier__pulse{display:none}.sfd-pin.is-entering{animation:none}}
