/* IKZ Directory UI 2.0.5 — loaded after editable modules on purpose. */

/* Larger full-directory cards */
.iz-map-page .iz-directory-v3 .iz-directory-sidebar {
  flex-basis: clamp(350px, 22vw, 410px) !important;
  width: clamp(350px, 22vw, 410px) !important;
}

.iz-map-page .iz-directory-v3 .iz-directory-list {
  display: flex !important;
  flex-direction: column !important;
  gap: 10px !important;
  padding: 10px !important;
}

.iz-map-page .iz-directory-v3 .iz-center-card {
  display: flex !important;
  align-items: flex-start !important;
  gap: 14px !important;
  margin: 0 !important;
  padding: 14px !important;
  border-radius: 15px !important;
}

.iz-map-page .iz-directory-v3 .iz-center-card-media {
  flex: 0 0 82px !important;
  width: 82px !important;
  height: 82px !important;
  border-radius: 11px !important;
}

.iz-map-page .iz-directory-v3 .iz-center-card-body {
  flex: 1 1 auto !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  min-width: 0 !important;
}

.iz-map-page .iz-directory-v3 .iz-center-card h3 {
  margin: 0 0 6px !important;
  font-size: 16px !important;
  line-height: 1.2 !important;
}

.iz-map-page .iz-directory-v3 .iz-center-address {
  margin: 0 0 8px !important;
  font-size: 11px !important;
  line-height: 1.45 !important;
}

.iz-map-page .iz-directory-v3 .iz-center-tags {
  gap: 5px !important;
  margin: 0 0 11px !important;
}

.iz-map-page .iz-directory-v3 .iz-center-tags span {
  min-height: 21px !important;
  padding: 4px 8px !important;
  font-size: 9px !important;
}

/* Sidebar: only Call + Learn more */
.iz-map-page .iz-directory-v3 .iz-center-actions {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 7px !important;
  width: 100% !important;
  margin-top: auto !important;
}

.iz-map-page .iz-directory-v3 .iz-center-action {
  position: relative !important;
  z-index: 3 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 36px !important;
  padding: 9px 13px !important;
  background: #fff !important;
  border: 1px solid #d7e0dc !important;
  border-radius: 9px !important;
  color: var(--iz-green, #08684f) !important;
  font-size: 10px !important;
  font-weight: 750 !important;
  line-height: 1 !important;
  text-decoration: none !important;
  white-space: nowrap !important;
}

.iz-map-page .iz-directory-v3 .iz-center-action:hover {
  color: #fff !important;
  background: var(--iz-green, #08684f) !important;
  border-color: var(--iz-green, #08684f) !important;
}

.iz-map-page .iz-directory-v3 .iz-center-action-phone {
  background: var(--iz-green-soft, #edf6f2) !important;
  border-color: transparent !important;
}

/* Map popup */
.iz-map-page .leaflet-popup-content-wrapper {
  overflow: hidden !important;
  padding: 0 !important;
  background: var(--iz-paper, #fff) !important;
  border: 1px solid var(--iz-border, #dbe3de) !important;
  border-radius: 15px !important;
  box-shadow: 0 18px 50px rgba(16, 37, 30, .2) !important;
}

.iz-map-page .leaflet-popup-content {
  width: 290px !important;
  margin: 0 !important;
}

.iz-map-page .leaflet-popup-close-button {
  top: 8px !important;
  right: 8px !important;
  z-index: 4 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 28px !important;
  height: 28px !important;
  padding: 0 !important;
  background: rgba(255,255,255,.94) !important;
  border: 1px solid var(--iz-border, #dbe3de) !important;
  border-radius: 50% !important;
  color: var(--iz-ink, #10251e) !important;
  font-size: 18px !important;
}

.iz-map-page .iz-popup {
  padding: 15px !important;
}

.iz-map-page .iz-popup-header {
  display: flex !important;
  align-items: flex-start !important;
  gap: 12px !important;
  padding-right: 25px !important;
}

.iz-map-page .iz-popup-image {
  flex: 0 0 62px !important;
  width: 62px !important;
  height: 62px !important;
  overflow: hidden !important;
  background: var(--iz-green-soft, #edf6f2) !important;
  border-radius: 10px !important;
}

.iz-map-page .iz-popup-image img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}

.iz-map-page .iz-popup-heading {
  flex: 1 1 auto !important;
  min-width: 0 !important;
}

.iz-map-page .iz-popup strong {
  display: block !important;
  margin: 1px 0 6px !important;
  color: var(--iz-ink, #10251e) !important;
  font-size: 15px !important;
  font-weight: 760 !important;
  line-height: 1.25 !important;
}

.iz-map-page .iz-popup p {
  margin: 0 !important;
  color: var(--iz-muted, #64736d) !important;
  font-size: 11px !important;
  line-height: 1.45 !important;
}

.iz-map-page .iz-popup-actions {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 7px !important;
  margin-top: 15px !important;
  padding-top: 13px !important;
  border-top: 1px solid var(--iz-border, #dbe3de) !important;
}

.iz-map-page .iz-popup-action {
  display: inline-flex !important;
  flex: 1 1 auto !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 38px !important;
  padding: 9px 12px !important;
  color: var(--iz-green, #08684f) !important;
  background: #fff !important;
  border: 1px solid var(--iz-border, #dbe3de) !important;
  border-radius: 9px !important;
  font-size: 10px !important;
  font-weight: 750 !important;
  line-height: 1 !important;
  text-align: center !important;
  text-decoration: none !important;
  white-space: nowrap !important;
}

.iz-map-page .iz-popup-action:hover {
  color: #fff !important;
  background: var(--iz-green, #08684f) !important;
  border-color: var(--iz-green, #08684f) !important;
}

.iz-map-page .iz-popup-action-primary {
  flex-basis: 100% !important;
  color: #fff !important;
  background: var(--iz-green, #08684f) !important;
  border-color: var(--iz-green, #08684f) !important;
}

@media (max-width: 820px) {
  .iz-map-page .iz-directory-v3 .iz-directory-sidebar {
    width: 100% !important;
  }

  .iz-map-page .iz-directory-v3 .iz-center-card-media {
    flex-basis: 76px !important;
    width: 76px !important;
    height: 76px !important;
  }

  .iz-map-page .iz-directory-v3 .iz-center-action {
    flex: 1 1 auto !important;
    min-height: 38px !important;
  }
}


/* =========================================================
   2.0.5 — FULL VIEWPORT DIRECTORY FIX
   Works independently of the Elementor wrapper class.
========================================================= */

html:has(.iz-directory-v3:not(.iz-directory-mode-home)),
body:has(.iz-directory-v3:not(.iz-directory-mode-home)) {
  width: 100%;
  min-height: 100%;
}

body:has(.iz-directory-v3:not(.iz-directory-mode-home)) {
  overflow: hidden !important;
}

.iz-directory-v3:not(.iz-directory-mode-home) {
  --iz-full-admin-height: 0px;
  --iz-full-header-height: var(--iz-header-height, 74px);

  position: relative !important;
  left: 50% !important;

  width: 100vw !important;
  max-width: none !important;
  height: calc(100dvh - var(--iz-full-admin-height) - var(--iz-full-header-height)) !important;
  min-height: 560px !important;

  margin: 0 0 0 -50vw !important;
  padding: 0 !important;
  overflow: hidden !important;
}

body.admin-bar .iz-directory-v3:not(.iz-directory-mode-home) {
  --iz-full-admin-height: 32px;
}

.iz-directory-v3:not(.iz-directory-mode-home) .iz-app-toolbar {
  flex: 0 0 69px !important;
  width: 100% !important;
  min-height: 69px !important;
}

.iz-directory-v3:not(.iz-directory-mode-home) .iz-directory-layout {
  display: flex !important;
  align-items: stretch !important;
  width: 100% !important;
  height: calc(100% - 69px) !important;
  min-height: 0 !important;
  overflow: hidden !important;
}

.iz-directory-v3:not(.iz-directory-mode-home) .iz-directory-sidebar {
  flex: 0 0 clamp(350px, 22vw, 410px) !important;
  width: clamp(350px, 22vw, 410px) !important;
  height: 100% !important;
  min-height: 0 !important;
}

.iz-directory-v3:not(.iz-directory-mode-home) .iz-directory-map-wrap {
  flex: 1 1 auto !important;
  width: auto !important;
  min-width: 0 !important;
  height: 100% !important;
  min-height: 0 !important;
}

.iz-directory-v3:not(.iz-directory-mode-home) .iz-directory-map,
.iz-directory-v3:not(.iz-directory-mode-home) .iz-directory-map.leaflet-container {
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
}

/* Keep Leaflet popup above all map and sidebar layers. */
.iz-directory-v3:not(.iz-directory-mode-home) .leaflet-pane,
.iz-directory-v3:not(.iz-directory-mode-home) .leaflet-map-pane {
  z-index: auto;
}

.iz-directory-v3:not(.iz-directory-mode-home) .leaflet-popup-pane {
  z-index: 900 !important;
}

.iz-directory-v3:not(.iz-directory-mode-home) .leaflet-popup {
  margin-bottom: 12px !important;
}

@media screen and (max-width: 782px) {
  body.admin-bar .iz-directory-v3:not(.iz-directory-mode-home) {
    --iz-full-admin-height: 46px;
  }
}

@media (max-width: 820px) {
  body:has(.iz-directory-v3:not(.iz-directory-mode-home)) {
    overflow: hidden !important;
  }

  .iz-directory-v3:not(.iz-directory-mode-home) {
    --iz-full-header-height: var(--iz-header-height-mobile, 64px);
    min-height: 520px !important;
  }

  .iz-directory-v3:not(.iz-directory-mode-home) .iz-directory-layout {
    position: relative !important;
    display: block !important;
  }

  .iz-directory-v3:not(.iz-directory-mode-home) .iz-directory-map-wrap {
    width: 100% !important;
    height: 100% !important;
  }

  .iz-directory-v3:not(.iz-directory-mode-home) .iz-directory-sidebar {
    width: 100% !important;
    height: min(68dvh, 620px) !important;
  }
}


/* =========================================================
   2.0.5 — FILTER RECOVERY + MAP CONTROLS
========================================================= */

.iz-directory-v3 .iz-apply-filters,
.iz-directory-v3 .iz-apply-filters * {
  color: #ffffff !important;
  opacity: 1 !important;
  visibility: visible !important;
}

.iz-directory-v3 .iz-apply-filters {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 5px !important;
  background: var(--iz-green, #08684f) !important;
  border-color: var(--iz-green, #08684f) !important;
  font-size: 14px !important;
  font-weight: 750 !important;
}

.iz-directory-v3 .iz-apply-count,
.iz-directory-v3 .iz-apply-label {
  display: inline !important;
  position: static !important;
  width: auto !important;
  height: auto !important;
  margin: 0 !important;
  clip: auto !important;
  overflow: visible !important;
  white-space: nowrap !important;
}

.iz-directory-v3 .iz-show-all-button {
  position: absolute;
  z-index: 600;
  left: 18px;
  bottom: 76px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 42px;
  padding: 0 15px;
  border: 1px solid rgba(18,34,30,.13);
  border-radius: 999px;
  background: rgba(255,255,255,.97);
  color: var(--iz-green, #08684f);
  font: 750 12px/1 inherit;
  box-shadow: 0 8px 24px rgba(18,34,30,.14);
  cursor: pointer;
  backdrop-filter: blur(10px);
}

.iz-directory-v3 .iz-show-all-button:hover,
.iz-directory-v3 .iz-show-all-button:focus-visible {
  color: #fff;
  background: var(--iz-green, #08684f);
  border-color: var(--iz-green, #08684f);
}

@media (max-width: 820px) {
  .iz-directory-v3 .iz-show-all-button {
    left: 12px;
    bottom: 70px;
  }
}
