.dds-bmap{position:relative;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#111827}.dds-bmap-card{position:relative;background:#fff;border:1px solid #e5e7eb;border-radius:24px;padding:26px;box-shadow:0 18px 45px rgba(15,23,42,.08);max-width:1200px;margin:0 auto}.dds-bmap-header{max-width:860px;margin-bottom:20px}.dds-bmap-header h2{font-size:30px;margin:0 0 8px;font-weight:800;letter-spacing:-.02em}.dds-bmap-header p{font-size:16px;line-height:1.6;margin:0;color:#4b5563}.dds-map-wrap{width:100%;overflow:hidden;border-radius:20px;background:linear-gradient(180deg,#f8fafc,#eef2ff);padding:14px;border:1px solid #e5e7eb}.dds-pr-map{width:100%;height:auto;display:block}.dds-town{cursor:pointer;outline:none;stroke:#fff;stroke-width:1.2;vector-effect:non-scaling-stroke;transition:filter .15s ease,opacity .15s ease,stroke-width .15s ease}.dds-town:hover,.dds-town:focus{filter:brightness(1.07);stroke:#111827;stroke-width:2.2}.dds-town:focus{outline:none}.dds-bmap-tooltip{position:absolute;z-index:25;pointer-events:none;background:#111827;color:#fff;border-radius:999px;padding:8px 12px;font-size:13px;font-weight:700;box-shadow:0 10px 30px rgba(15,23,42,.22);opacity:0;transform:translateY(4px);transition:opacity .12s ease,transform .12s ease;white-space:nowrap}.dds-bmap-tooltip.is-visible{opacity:1;transform:translateY(0)}.dds-bmap-mobile-picker{display:none;margin:18px 0 14px;padding:14px;background:#f8fafc;border:1px solid #e5e7eb;border-radius:18px}.dds-bmap-mobile-picker label{display:block;margin:0 0 8px;font-size:14px;font-weight:800;color:#111827}.dds-town-select{width:100%;appearance:auto;border:1px solid #d1d5db;border-radius:14px;background:#fff;color:#111827;font-size:16px;padding:12px 14px;margin-bottom:10px}.dds-town-select-button{width:100%;border:0;border-radius:14px;background:#111827;color:#fff;font-size:16px;font-weight:800;padding:12px 14px;cursor:pointer}.dds-town-select-button:hover,.dds-town-select-button:focus{background:#374151}.dds-bmap-modal{position:fixed;inset:0;background:rgba(15,23,42,.62);display:none;align-items:center;justify-content:center;z-index:999999;padding:22px}.dds-bmap-modal.is-open{display:flex}.dds-bmap-modal-panel{position:relative;background:#fff;border-radius:22px;width:min(980px,96vw);height:min(760px,92vh);box-shadow:0 24px 80px rgba(0,0,0,.28);overflow:hidden;display:flex;flex-direction:column}.dds-bmap-close{position:absolute;top:14px;right:16px;width:38px;height:38px;border:0;border-radius:999px;background:#f3f4f6;font-size:26px;line-height:1;cursor:pointer;z-index:2}.dds-bmap-close:hover,.dds-bmap-close:focus{background:#e5e7eb}.dds-bmap-modal-title{font-size:20px;font-weight:800;padding:20px 62px 14px 22px;border-bottom:1px solid #e5e7eb}.dds-bmap-loader{padding:14px 22px;color:#6b7280}.dds-bmap-modal iframe{border:0;width:100%;height:100%;flex:1;display:block;opacity:0;transition:opacity .18s ease;background:#fff}.dds-bmap-modal iframe.is-loaded{opacity:1}.dds-bmap-fallback{border-top:1px solid #e5e7eb;padding:10px 16px;text-align:right;font-size:14px}.dds-bmap-fallback a{color:#2563eb;text-decoration:none;font-weight:700}.dds-bmap-fallback a:hover{text-decoration:underline}@media(max-width:700px){.dds-bmap-card{padding:16px;border-radius:18px}.dds-bmap-header{margin-bottom:10px}.dds-bmap-header h2{font-size:23px}.dds-bmap-header p{font-size:15px;line-height:1.5}.dds-bmap-mobile-picker{display:block}.dds-map-wrap{padding:8px;border-radius:16px;opacity:.58;max-height:260px}.dds-map-wrap .dds-town{pointer-events:none;cursor:default}.dds-bmap-tooltip{display:none}.dds-bmap-modal{padding:0}.dds-bmap-modal-panel{width:100vw;height:100vh;border-radius:0}.dds-bmap-modal-title{font-size:18px}.dds-bmap-fallback{text-align:center}}


/* v1.3 final mobile dropdown UX overrides */
@media (max-width: 700px) {
  .dds-bmap-mobile-picker {
    display: block !important;
    text-align: center !important;
    padding: 16px !important;
    margin: 18px auto 16px auto !important;
    gap: 5px !important;
  }

  .dds-bmap-mobile-picker label {
    display: block !important;
    font-size: 16px !important;
    line-height: 1.3 !important;
    margin: 0 0 5px 0 !important;
    text-align: center !important;
  }

  .dds-town-select {
    width: 100% !important;
    max-width: 430px !important;
    min-height: 46px !important;
    display: block !important;
    margin: 0 auto 5px auto !important;
    font-size: 16px !important;
    line-height: 1.4 !important;
    padding: 5px !important;
    border: 1px solid #000 !important;
    border-radius: 6px !important;
    background-color: #fff !important;
    color: #111827 !important;
    box-sizing: border-box !important;
  }

  .dds-town-select-button {
    width: 100% !important;
    max-width: 430px !important;
    display: block !important;
    margin: 5px auto 0 auto !important;
    font-size: 16px !important;
    padding: 12px 14px !important;
    box-sizing: border-box !important;
  }

  .dds-map-wrap {
    max-height: 220px !important;
  }
}


/* v1.3.1 clean mobile duplicate dropdown fix
   The site/theme may auto-enhance <select> fields into a second visual dropdown.
   Keep only the plugin's native select visible inside this component. */
.dds-bmap-mobile-picker .nice-select,
.dds-bmap-mobile-picker .select2,
.dds-bmap-mobile-picker .select2-container,
.dds-bmap-mobile-picker .chosen-container,
.dds-bmap-mobile-picker .selectric-wrapper,
.dds-bmap-mobile-picker .bootstrap-select,
.dds-bmap-mobile-picker .custom-select,
.dds-bmap-mobile-picker .select-selected,
.dds-bmap-mobile-picker .select-items,
.dds-bmap-mobile-picker [class*="nice-select"],
.dds-bmap-mobile-picker [class*="select2"],
.dds-bmap-mobile-picker [class*="selectric"],
.dds-bmap-mobile-picker [class*="chosen"] {
  display: none !important;
  visibility: hidden !important;
  height: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  overflow: hidden !important;
}

.dds-bmap-mobile-picker select.dds-town-select {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  height: auto !important;
  min-height: 46px !important;
}
