.ghf-pvc { max-width: 1100px; margin: 0 auto; }
.ghf-pvc__panel { background: #fff; border: 1px solid rgba(0,0,0,.08); border-radius: 14px; padding: 16px; }
.ghf-pvc__title { margin: 0 0 12px 0; font-size: 22px; font-weight: 800; }

.ghf-pvc__label { display:block; font-weight: 700; margin: 10px 0 6px; }
.ghf-pvc__input { width: 100%; padding: 10px 12px; border: 1px solid rgba(0,0,0,.14); border-radius: 10px; box-sizing: border-box; }

.ghf-pvc__row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; align-items: start; }
@media (max-width: 640px) { .ghf-pvc__row { grid-template-columns: 1fr; } }

.ghf-pvc__help { font-size: 12px; opacity: .75; margin-top: 6px; line-height: 1.35; }

.ghf-pvc__btn {
  margin-top: 10px;
  padding: 11px 14px;
  border-radius: 10px;
  border: 1px solid rgba(0,0,0,.12);
  background: #fff;
  cursor: pointer;
  font-weight: 800;
  box-sizing: border-box;
}
.ghf-pvc__btn:hover { background: rgba(0,0,0,.03); }
.ghf-pvc__btn:disabled { opacity: .45; cursor: not-allowed; }

.ghf-pvc__result {
  margin-top: 14px;
  padding: 12px;
  border-radius: 12px;
  border: 1px solid rgba(0,0,0,.10);
  background: rgba(0,0,0,.02);
}
.ghf-pvc__resultTitle { font-weight: 900; margin-bottom: 6px; font-size: 16px; }
.ghf-pvc__valueRange { font-size: 22px; font-weight: 900; margin-bottom: 10px; }
.ghf-pvc__breakdown div { margin: 4px 0; }

.ghf-pvc__warn {
  margin-top: 12px;
  padding: 10px 12px;
  border-radius: 10px;
  border: 1px solid rgba(255,0,0,.25);
  background: rgba(255,0,0,.06);
}

.ghf-pvc hr {
  border: none;
  border-top: 1px solid rgba(0,0,0,.08);
  margin: 14px 0;
}

/* Map */
.ghf-pvc__map {
  height: 300px;
  width: 100%;
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid rgba(0,0,0,.08);
  position: relative;
}

/* Suggestions dropdown */
.ghf-pvc__location { position: relative; }
.ghf-pvc__suggestions {
  position: absolute;
  top: calc(100% + 6px);
  left: 0; right: 0;
  background: #fff;
  border: 1px solid rgba(0,0,0,.14);
  border-radius: 10px;
  overflow: hidden;
  z-index: 99999;
  max-height: 260px;
  overflow-y: auto;
  box-shadow: 0 8px 24px rgba(0,0,0,.08);
}
.ghf-pvc__suggestion {
  padding: 10px 12px;
  cursor: pointer;
  border-bottom: 1px solid rgba(0,0,0,.06);
  line-height: 1.25;
}
.ghf-pvc__suggestion:hover { background: rgba(0,0,0,.04); }

/* =========================================================
   HARD FIX: Leaflet core CSS subset
   Stops “scattered tiles” caused by theme img {max-width:100%}
   ========================================================= */

#ghf-pvc-map,
.ghf-pvc__map {
  position: relative !important;
  overflow: hidden !important;
}

.ghf-pvc__map .leaflet-pane,
.ghf-pvc__map .leaflet-tile-pane,
.ghf-pvc__map .leaflet-overlay-pane,
.ghf-pvc__map .leaflet-shadow-pane,
.ghf-pvc__map .leaflet-marker-pane,
.ghf-pvc__map .leaflet-tooltip-pane,
.ghf-pvc__map .leaflet-popup-pane,
.ghf-pvc__map .leaflet-map-pane {
  position: absolute !important;
  left: 0 !important;
  top: 0 !important;
}

.ghf-pvc__map .leaflet-layer,
.ghf-pvc__map .leaflet-tile-container,
.ghf-pvc__map .leaflet-pane > svg,
.ghf-pvc__map .leaflet-pane > canvas {
  position: absolute !important;
  left: 0 !important;
  top: 0 !important;
}

.ghf-pvc__map img.leaflet-tile,
.ghf-pvc__map img.leaflet-marker-icon,
.ghf-pvc__map img.leaflet-marker-shadow {
  position: absolute !important;
  left: 0 !important;
  top: 0 !important;

  max-width: none !important;
  max-height: none !important;
  width: auto !important;
  height: auto !important;
  border: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
}

.ghf-pvc__map img { max-width: none !important; }