.wehamba-map-app{position:relative;width:100%;min-height:520px;background:#fff;border-radius:10px;overflow:hidden;font-family:Arial,sans-serif}.wehamba-map-toolbar{position:absolute;z-index:5;top:10px;left:10px;right:10px;display:flex;gap:7px;align-items:center;flex-wrap:wrap;pointer-events:none}.wehamba-map-toolbar>*{pointer-events:auto}.wehamba-map-search-wrap{position:relative;display:flex;flex:1 1 280px;max-width:520px;background:#fff;border-radius:7px;box-shadow:0 1px 5px rgba(0,0,0,.28);overflow:visible}.wehamba-map-search{flex:1;min-width:0;border:0!important;box-shadow:none!important;padding:11px 8px 11px 12px!important;font-size:15px!important;background:#fff!important}.wehamba-map-search::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none}.wehamba-map-search-clear{flex:0 0 auto;align-self:center;border:0;background:transparent;color:#666;font-size:25px;line-height:1;padding:4px 9px;cursor:pointer}.wehamba-map-search-clear[hidden]{display:none!important}.wehamba-map-search-btn,.wehamba-map-location-btn,.wehamba-map-categories-btn{border:0;background:#fff;padding:10px 12px;border-radius:7px;box-shadow:0 1px 5px rgba(0,0,0,.28);font-weight:600;cursor:pointer}.wehamba-map-search-btn{border-radius:0;box-shadow:none;background:#163f67;color:#fff}.wehamba-map-canvas{width:100%;height:70vh;min-height:520px;max-height:850px}.wehamba-map-category-panel{position:absolute;top:48px;right:0;box-sizing:border-box;background:#fff;padding:10px 12px;border-radius:7px;box-shadow:0 2px 10px rgba(0,0,0,.3);min-width:190px;max-width:min(360px,calc(100% - 8px));max-height:50vh;overflow-y:auto;overflow-x:hidden}.wehamba-map-cat-row{display:flex;align-items:flex-start;gap:6px;padding:6px 2px;white-space:normal;line-height:1.3;overflow-wrap:anywhere;word-break:normal}.wehamba-map-cat-row input{flex:0 0 auto;margin-top:2px}.wehamba-map-status{position:absolute;z-index:5;left:50%;bottom:18px;transform:translateX(-50%);background:rgba(255,255,255,.94);border-radius:14px;padding:5px 10px;font-size:12px;box-shadow:0 1px 4px rgba(0,0,0,.22);pointer-events:none}.wm-popup{box-sizing:border-box;min-width:0;width:240px;max-width:100%;padding-bottom:10px;line-height:1.4;white-space:normal;overflow:hidden;overflow-wrap:anywhere;word-break:break-word}.wm-popup *{box-sizing:border-box;max-width:100%}.wm-popup strong{display:block;font-size:16px;margin-bottom:3px;white-space:normal;overflow-wrap:anywhere}.wm-popup-desc{margin-top:5px;white-space:normal;overflow-wrap:anywhere;word-break:break-word}.wm-google-link{display:inline-block;margin-top:8px;padding:7px 9px;background:#163f67;color:#fff!important;text-decoration:none;border-radius:5px;white-space:normal;overflow-wrap:anywhere}.wehamba-map-search-suggestions{position:absolute;z-index:10000;top:calc(100% + 4px);left:0;right:0;background:#fff;border-top:1px solid #e1e1e1;border-radius:0 0 7px 7px;box-shadow:0 4px 10px rgba(0,0,0,.25);overflow:hidden}.wehamba-map-search-suggestions[hidden]{display:none!important}.wehamba-map-search-suggestion{display:flex;flex-direction:column;gap:2px;width:100%;border:0;border-bottom:1px solid #eee;background:#fff;color:#222;text-align:left;padding:10px 12px;font-size:14px;line-height:1.25;cursor:pointer;white-space:normal}.wehamba-map-search-suggestion:last-child{border-bottom:0}.wehamba-map-search-suggestion:active,.wehamba-map-search-suggestion:hover{background:#f3f5f7}.wehamba-map-error{padding:14px;background:#fff3cd;border:1px solid #ffe69c;border-radius:6px}@media(max-width:640px){.wehamba-map-app,.wehamba-map-canvas{min-height:72vh}.wehamba-map-toolbar{top:8px;left:8px;right:8px}.wehamba-map-search-wrap{flex-basis:100%;max-width:none}.wehamba-map-location-btn,.wehamba-map-categories-btn{font-size:13px;padding:9px 10px}.wehamba-map-category-panel{top:94px;left:0;right:auto;width:min(320px,calc(100% - 4px));min-width:0;max-width:calc(100% - 4px);max-height:56vh;padding:10px 12px}.wehamba-map-cat-row{font-size:15px;padding:7px 2px}.wehamba-map-canvas{height:72vh}.wm-popup{width:min(230px,calc(100vw - 100px));max-width:230px}.gm-style .gm-style-iw-d{overflow-x:hidden!important;padding-bottom:6px!important}.gm-style .gm-style-iw-c{max-width:calc(100vw - 48px)!important}}
.wehamba-map-search-suggestion-title{display:block;font-weight:700;font-size:15px;color:#222}.wehamba-map-search-suggestion-meta{display:block;font-size:12px;color:#666;font-weight:400}

/* v0.2.9 mobile search-row sizing: keep Search visible even with long selected place text. */
@media(max-width:640px){
  .wehamba-map-search-wrap{width:100%;min-width:0;max-width:100%;flex:0 0 100%;box-sizing:border-box;}
  .wehamba-map-search{width:0;min-width:0;flex:1 1 0%;box-sizing:border-box;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;}
  .wehamba-map-search-clear{flex:0 0 44px;width:44px;padding:4px 6px;box-sizing:border-box;}
  .wehamba-map-search-btn{flex:0 0 86px;width:86px;min-width:86px;max-width:86px;padding:10px 6px;box-sizing:border-box;white-space:nowrap;overflow:hidden;text-overflow:clip;}
}

/* v0.3.0 mobile search-row hardening: keep the Search button fully inside the map on Android/iOS. */
@media(max-width:640px){
  .wehamba-map-toolbar{box-sizing:border-box;max-width:calc(100% - 16px);}
  .wehamba-map-search-wrap{
    width:calc(100% - 14px)!important;
    max-width:calc(100% - 14px)!important;
    flex:0 0 calc(100% - 14px)!important;
    min-width:0!important;
    box-sizing:border-box!important;
  }
  .wehamba-map-search{
    width:0!important;
    min-width:0!important;
    max-width:none!important;
    flex:1 1 auto!important;
  }
  .wehamba-map-search-clear{
    flex:0 0 42px!important;
    width:42px!important;
    min-width:42px!important;
  }
  .wehamba-map-search-btn{
    flex:0 0 78px!important;
    width:78px!important;
    min-width:78px!important;
    max-width:78px!important;
    padding:10px 4px!important;
  }
}


/* v0.3.1 custom lower-right fullscreen control. */
.wehamba-map-fullscreen-btn{position:absolute;z-index:6;right:18px;bottom:62px;width:44px;height:44px;border:0;border-radius:50%;background:#fff;color:#555;box-shadow:0 1px 6px rgba(0,0,0,.28);display:flex;align-items:center;justify-content:center;font-size:27px;line-height:1;cursor:pointer;padding:0}.wehamba-map-fullscreen-btn span{display:block;transform:translateY(-1px)}.wehamba-map-fullscreen-btn.is-fullscreen{font-size:31px}.wehamba-map-page-fullscreen{overflow:hidden!important}.wehamba-map-app.wehamba-map-fullscreen{position:fixed!important;inset:0!important;width:100vw!important;height:100dvh!important;min-height:100dvh!important;max-height:none!important;z-index:2147483000!important;border-radius:0!important;margin:0!important;background:#fff!important}.wehamba-map-app.wehamba-map-fullscreen .wehamba-map-canvas{height:100dvh!important;min-height:100dvh!important;max-height:none!important}.wehamba-map-app:fullscreen,.wehamba-map-app:-webkit-full-screen{width:100vw!important;height:100vh!important;min-height:100vh!important;max-height:none!important;border-radius:0!important;background:#fff!important}.wehamba-map-app:fullscreen .wehamba-map-canvas,.wehamba-map-app:-webkit-full-screen .wehamba-map-canvas{height:100vh!important;min-height:100vh!important;max-height:none!important}
@media(max-width:640px){.wehamba-map-fullscreen-btn{right:16px;bottom:64px;width:44px;height:44px}.wehamba-map-app.wehamba-map-fullscreen .wehamba-map-toolbar{top:max(8px,env(safe-area-inset-top));left:max(8px,env(safe-area-inset-left));right:max(8px,env(safe-area-inset-right))}.wehamba-map-app.wehamba-map-fullscreen .wehamba-map-fullscreen-btn{right:max(16px,env(safe-area-inset-right));bottom:max(64px,calc(env(safe-area-inset-bottom) + 50px))}}


/* v0.3.2 iOS horizontal-overflow containment. Keep the map inside its WordPress content column without affecting Google map panning. */
.wehamba-map-app{
  box-sizing:border-box!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  overflow-x:hidden!important;
}
.wehamba-map-canvas{
  box-sizing:border-box!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  overflow:hidden!important;
}
.wehamba-map-toolbar{
  box-sizing:border-box!important;
  min-width:0!important;
}
@supports (overflow: clip){
  .wehamba-map-app{overflow-x:clip!important;}
}
@media(max-width:640px){
  .wehamba-map-toolbar{
    left:8px!important;
    right:8px!important;
    width:auto!important;
    max-width:none!important;
  }
  .wehamba-map-search-wrap{
    width:100%!important;
    max-width:100%!important;
    flex:0 0 100%!important;
  }
  .wehamba-map-search-suggestions{
    box-sizing:border-box!important;
    max-width:100%!important;
  }
}


/* v0.3.7 compact category dropdown: smaller icons, tighter rows, full mobile panel height, and safe scrolling. */
.wehamba-map-cat-row{align-items:center;gap:9px;cursor:pointer}
.wehamba-map-cat-row input{margin:0;flex:0 0 auto}
.wehamba-map-cat-icon{display:block;width:24px;height:24px;flex:0 0 24px;object-fit:contain;border:0;background:transparent}
.wehamba-map-cat-icon-empty{visibility:hidden}
.wehamba-map-cat-name{display:block;min-width:0;flex:1 1 auto;line-height:1.25;white-space:normal;overflow-wrap:anywhere}
@media(max-width:640px){
  .wehamba-map-category-panel{
    max-height:min(58vh,420px);
    height:auto;
    padding:8px 10px 18px;
    overflow-y:auto;
    overflow-x:hidden;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior:contain;
  }
  .wehamba-map-cat-icon{width:22px;height:22px;flex-basis:22px}
  .wehamba-map-cat-row{gap:7px;padding:4px 2px;font-size:14px;line-height:1.2}
  .wehamba-map-cat-row input{margin:0;transform:scale(.94);transform-origin:center}
}

/* v0.4.4 full-bleed public map layout: break out of theme/page-builder content columns
   and use the browser viewport while keeping controls inside safe screen edges. */
.wehamba-map-app[data-wehamba-map]{
  width:100vw!important;
  max-width:none!important;
  margin-left:calc(50% - 50vw)!important;
  margin-right:calc(50% - 50vw)!important;
  border-radius:0!important;
}
.wehamba-map-app[data-wehamba-map] .wehamba-map-canvas{
  width:100%!important;
  max-width:none!important;
  height:82dvh;
  min-height:620px;
  max-height:none;
}
@supports not (height: 1dvh){
  .wehamba-map-app[data-wehamba-map] .wehamba-map-canvas{height:82vh;}
}
@media(max-width:900px){
  .wehamba-map-app[data-wehamba-map] .wehamba-map-canvas{
    height:78dvh;
    min-height:560px;
  }
}
@media(max-width:640px){
  .wehamba-map-app[data-wehamba-map]{
    width:100vw!important;
    max-width:100vw!important;
    margin-left:calc(50% - 50vw)!important;
    margin-right:calc(50% - 50vw)!important;
    border-radius:0!important;
  }
  .wehamba-map-app[data-wehamba-map] .wehamba-map-canvas{
    /* v0.8.33: let the map keep its full app-style height; the update strip now overlays it above the bottom nav. */
    height:78dvh;
    min-height:520px;
    max-height:none!important;
  }
  .wehamba-map-app[data-wehamba-map] .wehamba-map-toolbar{
    top:max(8px,env(safe-area-inset-top))!important;
    left:max(8px,env(safe-area-inset-left))!important;
    right:max(8px,env(safe-area-inset-right))!important;
  }
  .wehamba-map-app[data-wehamba-map] .wehamba-map-status{
    bottom:max(18px,calc(env(safe-area-inset-bottom) + 10px));
  }
}


/* v0.8.1: restored map freshness line from v0.5.6. */
.wehamba-map-updated-strip{
  box-sizing:border-box;
  width:100vw;
  max-width:none;
  min-height:28px;
  margin-left:calc(50% - 50vw);
  margin-right:calc(50% - 50vw);
  padding:5px 12px 12px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  background:#fff;
  border-top:1px solid rgba(0,0,0,.08);
  border-bottom:1px solid rgba(0,0,0,.08);
  color:#39424e;
  font-size:12px;
  line-height:17px;
  font-weight:600;
  text-align:center;
}
@media(max-width:640px){
  .wehamba-map-updated-strip{
    position:fixed;
    z-index:9997;
    left:0;
    right:0;
    bottom:calc(var(--wehamba-browser-bottom,0px) + var(--wehamba-bottom,58px) + env(safe-area-inset-bottom));
    width:100%;
    margin:0;
    min-height:30px;
    padding:5px 10px;
    font-size:11.5px;
    line-height:20px;
    box-shadow:0 -1px 4px rgba(0,0,0,.08);
  }
  /* v0.8.36: Safari uses the same Shell-provided browser/bottom offsets as other mobile contexts.
     Avoid an extra hard-coded 56px lift, which could split/expose the update strip after overlays. */
  .wehamba-shell-page.wehamba-ios-safari .wehamba-map-updated-strip{
    bottom:calc(var(--wehamba-browser-bottom,0px) + var(--wehamba-bottom,58px) + env(safe-area-inset-bottom));
  }
  .wehamba-shell-page.wehamba-ios-webview .wehamba-map-updated-strip{
    bottom:calc(var(--wehamba-browser-bottom,0px) + var(--wehamba-bottom,58px) + max(env(safe-area-inset-bottom),8px));
  }
  .wehamba-map-app.wehamba-map-fullscreen + .wehamba-map-updated-strip{display:none!important}
}


/* v0.8.7 Camping cold-start loading/recovery state. */
.wehamba-map-loading-overlay{position:absolute;z-index:4;inset:0;display:flex;align-items:center;justify-content:center;background:#f4f7fa;pointer-events:none}
.wehamba-map-loading-overlay[hidden]{display:none!important}
.wehamba-map-loading-card{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:18px;background:rgba(255,255,255,.96);box-shadow:0 1px 6px rgba(0,0,0,.16);font-size:13px;font-weight:600;color:#163f67}
.wehamba-map-loading-spinner{width:16px;height:16px;border:2px solid rgba(22,63,103,.22);border-top-color:#163f67;border-radius:50%;animation:wehambaMapSpin .8s linear infinite}
@keyframes wehambaMapSpin{to{transform:rotate(360deg)}}


/* v0.8.10: first-tap My Location reliability on touch devices. */
.wehamba-map-location-btn{
  touch-action:manipulation;
  -webkit-tap-highlight-color:rgba(0,0,0,.08);
  user-select:none;
  -webkit-user-select:none;
}
