.map-contact-layout{position:relative;min-height:470px;isolation:isolate}.map-contact-layout>iframe{display:block;width:100%;height:470px;border:0}.map-contact-card{position:absolute;z-index:1;right:24px;top:24px;bottom:24px;width:min(390px,43%);padding:20px;border:1px solid #e2e9f1;border-radius:18px;background:rgba(255,255,255,.97);box-shadow:0 12px 40px #12325024;display:flex;flex-direction:column;gap:12px;color:#102940}.map-contact-row{display:flex;align-items:center;gap:14px;background:#f5f8fc;padding:14px;border-radius:10px;min-height:78px}.map-contact-icon{color:#1269ed;flex:0 0 29px;width:29px;height:29px}.map-contact-icon svg{width:100%;height:100%}.map-contact-row strong,.map-contact-row a{display:block;font-size:16px;font-weight:650;line-height:1.35;color:#132c47;text-decoration:none}.map-contact-row small{display:block;color:#75869a;font-size:12px;margin-top:4px}.map-contact-card .map-contact-note{font-size:12px;color:#647b94;line-height:1.4;margin:0}.map-contact-card .map-book{width:100%;min-height:49px;margin-top:auto;display:flex;align-items:center;justify-content:center;font-size:16px;border:0;cursor:pointer}.vehicle-location{padding:28px;background:#f3f7fc}.vehicle-location h3{font-size:23px;margin:0 0 20px}.vehicle-map-frame{border:1px solid #dce6f0;border-radius:14px;overflow:hidden}.vehicle-map-frame .map-contact-card{width:43%;right:18px;top:18px;bottom:18px;padding:16px}.booking-dialog{width:min(470px,calc(100% - 28px));max-height:90dvh;border:0;border-radius:14px;padding:28px;color:#112942}.booking-dialog::backdrop{background:#001124bd;backdrop-filter:blur(4px)}.booking-dialog h2{font-size:24px;margin:0 18px 12px 0}.booking-dialog label{display:block;font-size:14px;margin:15px 0}.booking-dialog input{display:block;width:100%;padding:12px;border:1px solid #c2d0e1;border-radius:6px;font:inherit;margin-top:6px}.booking-dialog p{color:#61758b;font-size:14px;line-height:1.5}.booking-close{position:absolute;right:12px;top:10px;background:none;border:0;font-size:28px;cursor:pointer}.booking-dialog .booking-consent{display:flex;gap:9px;align-items:flex-start;font-size:12px}.booking-consent input{width:18px;height:18px;flex-shrink:0;margin:3px 0 0}.booking-consent a{color:#1269ed;text-decoration:underline}.booking-dialog .booking-note{font-size:12px}.booking-dialog .btn{width:100%}.booking-dialog .booking-trap{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.booking-dialog button:disabled{opacity:.6;cursor:wait}@media(max-width:760px){.map-contact-layout{min-height:0;display:flex;flex-direction:column}.map-contact-layout>iframe{height:290px}.map-contact-card,.vehicle-map-frame .map-contact-card{position:static;inset:auto;width:auto;margin:12px;padding:16px;border-radius:14px;box-shadow:0 8px 20px #12325010}.map-contact-row{padding:12px;min-height:70px}.map-contact-row strong,.map-contact-row a{font-size:16px}.vehicle-location{padding:20px 12px}.vehicle-location h3{font-size:21px;padding:0 8px}.booking-dialog{padding:25px 20px}}
@media(max-width:760px){.map-contact-layout{display:block;min-height:510px}.map-contact-layout>iframe{height:510px}.map-contact-card,.vehicle-map-frame .map-contact-card{position:absolute;left:auto;right:12px;top:20px;bottom:20px;width:min(320px,79%);margin:0;padding:13px;border-radius:14px;gap:10px}.map-contact-row{padding:11px 9px;min-height:82px;gap:9px}.map-contact-icon{width:24px;height:24px;flex-basis:24px}.map-contact-row strong,.map-contact-row a{font-size:14px}.map-contact-row small{font-size:11px}.map-contact-card .map-contact-note{font-size:11px}.map-contact-card .map-book{font-size:15px}}

/* Compact mobile contact overlay; leave the map visible and interactive. */
@media(max-width:760px){
.map-contact-card,.vehicle-map-frame .map-contact-card{top:12px;right:12px;bottom:auto;width:min(250px,70%);padding:10px;gap:7px;border-radius:12px;box-sizing:border-box}
.map-contact-row{min-height:0;padding:9px 8px;gap:8px;border-radius:8px}
.map-contact-icon{width:20px;height:20px;flex-basis:20px}
.map-contact-row strong,.map-contact-row a{font-size:13px;line-height:1.3;overflow-wrap:anywhere}
.map-contact-row small{font-size:10px;line-height:1.2;margin-top:3px}
.map-contact-card .map-contact-note{font-size:10px;line-height:1.35}
.map-contact-card .map-book{min-height:44px;margin-top:3px;padding:10px 8px;font-size:14px}
}

/* Maps are desktop-only at the owner request. */
@media(max-width:760px){#salon-map,.vehicle-location{display:none!important}}
