/* V29: location map is immediately visible at its natural page position.
   New controls remain usable when the embedded Google controls differ by device. */
.salon-map-frame-v29{position:relative;aspect-ratio:1.35;min-height:310px;background:#f6f0f7}
.salon-map-frame-v29 iframe{display:block;width:100%;height:100%;border:0;background:#f6f0f7}
.salon-map-zoom-v29{position:absolute;top:12px;right:12px;z-index:3;display:grid;gap:2px;padding:3px;border:1px solid #ded4e0;background:#fff;border-radius:7px;box-shadow:0 3px 14px #31213b26}
.salon-map-zoom-button-v29{display:grid;place-items:center;width:42px;height:42px;min-height:42px;padding:0;border:0;border-radius:5px;background:white;color:#392640;font:600 26px/1 'DM Sans',Arial,sans-serif;cursor:pointer;touch-action:manipulation}
.salon-map-zoom-button-v29:hover{background:#f3e9f2}
.salon-map-zoom-button-v29:focus-visible{outline:3px solid #a469b0;outline-offset:1px}
.salon-map-zoom-button-v29:disabled{opacity:.4;cursor:not-allowed}
.salon-map-zoom-button-v29+button{border-top:1px solid #eee3ec;border-top-left-radius:0;border-top-right-radius:0}
@media(max-width:950px){.salon-map-frame-v29{aspect-ratio:1.6;min-height:300px}}
@media(max-width:680px){.salon-map-frame-v29{aspect-ratio:1.12;min-height:280px}.salon-map-zoom-v29{top:10px;right:10px}.salon-map-zoom-button-v29{width:44px;height:44px}}
@media(max-width:340px){.salon-map-frame-v29{aspect-ratio:1;min-height:250px}}
/* Embedded iframe has a 300px intrinsic width; suppress it in small grid columns. */
.contact-page-v23 .contact-grid-v23 > *,.salon-map-frame-v29 iframe{min-width:0;max-width:100%}

/* Stage 5: preserve the V31 map area with a consent-safe local placeholder. */
.salon-map-placeholder{height:100%;min-height:inherit;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:24px;box-sizing:border-box}
.salon-map-placeholder p{margin:10px 0;line-height:1.6}.salon-map-placeholder #salon-map-privacy{font-size:.86rem;max-width:48ch}
/* Keep Google's Map/Satellite selector and iframe fully unobstructed:
   the privacy-sensitive unload action lives BELOW the map, not over its controls. */
.salon-map-actions-v36{display:flex;flex-wrap:wrap;align-items:center;gap:9px 18px;margin-top:12px;min-width:0}
.salon-map-unload{position:static;display:inline-flex;align-items:center;justify-content:center;background:#fff;color:#392640;border:1px solid #b7a9b8;border-radius:7px;padding:9px 13px;min-height:44px;font:500 14px 'DM Sans',Arial,sans-serif;cursor:pointer;max-width:100%}
.salon-map-unload[hidden]{display:none!important}
.salon-map-actions-v36 .salon-map-directions-v28{margin:0;min-height:44px;max-width:100%}
@media(max-width:380px){.salon-map-actions-v36{align-items:stretch;gap:8px}.salon-map-actions-v36>*{width:100%;justify-content:flex-start}}
.salon-map-unload:focus-visible{outline:3px solid #7b5279;outline-offset:2px}
.salon-map-frame-v29 [hidden]{display:none!important}
.salon-map-frame-v29:has(.salon-map-placeholder:not([hidden])){aspect-ratio:auto;min-height:350px}
