.property-map-page { background: #f3f1eb; }

.property-map-hero {
  padding: 68px 5%;
  border-bottom: 5px solid #d6b13e;
  background: linear-gradient(90deg, rgba(0, 0, 0, .92), rgba(0, 0, 0, .52)), url('/assets/img/powerlines2.jpg') center/cover no-repeat;
  color: #fff;
}

.property-map-hero h1 { max-width: 980px; margin: 0 0 18px; font-size: clamp(40px, 6vw, 76px); line-height: .98; }
.property-map-hero p:last-child { max-width: 880px; margin: 0; font-size: clamp(18px, 2.2vw, 25px); font-weight: 700; }
.map-kicker { margin: 0 0 10px; color: #e3bd45; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }

.property-map-workspace { display: grid; grid-template-columns: minmax(330px, 410px) minmax(0, 1fr); min-height: 760px; }
.property-map-sidebar { padding: 24px; border-right: 1px solid #d1ccc0; background: #f7f5ef; }
.property-map-main { position: relative; min-height: 760px; }
#property-route-map { width: 100%; height: 760px; background: #dbe4e8; }
.map-loading-message, .map-load-error { margin: 0; padding: 24px; color: #17324d; font-weight: 800; }
.map-load-error { color: #850909; background: #ffe3e0; }

.property-search-card, .map-result-card, .property-map-legend {
  margin-bottom: 18px;
  padding: 20px;
  border: 1px solid #d6d0c2;
  border-radius: 15px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(0, 0, 0, .07);
}

.property-search-card h2 { margin-bottom: 14px; font-size: 29px; }
.search-methods { display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 18px; }
.search-method {
  border: 2px solid #222;
  border-radius: 999px;
  padding: 8px 12px;
  background: #fff;
  color: #111;
  font: inherit;
  font-size: 13px;
  font-weight: 900;
  cursor: pointer;
}
.search-method:hover, .search-method:focus-visible, .search-method.active { border-color: #b90f0f; background: #b90f0f; color: #fff; }

.search-panel label, .map-setback-field label { display: block; margin: 10px 0 5px; color: #222; font-size: 14px; font-weight: 900; }
.search-panel[hidden] { display: none !important; }
.search-panel input, .search-panel select, .map-setback-field select {
  width: 100%;
  min-height: 46px;
  border: 2px solid #aaa398;
  border-radius: 8px;
  padding: 9px 11px;
  background: #fff;
  color: #111;
  font: inherit;
}
.search-panel input:focus, .search-panel select:focus, .map-setback-field select:focus { border-color: #b90f0f; outline: 2px solid rgba(185, 15, 15, .18); }
.map-setback-field { margin-top: 13px; padding-top: 10px; border-top: 1px solid #ddd7ca; }
.str-fields { display: grid; grid-template-columns: repeat(3, 1fr); gap: 9px; }
.map-search-submit { width: 100%; margin-top: 16px; border: 0; border-radius: 8px; padding: 13px 14px; background: #b90f0f; color: #fff; font: inherit; font-weight: 900; cursor: pointer; }
.map-search-submit:hover, .map-search-submit:focus-visible { background: #850909; }
.map-search-submit:disabled { cursor: wait; opacity: .68; }

.map-search-status { margin-top: 13px; padding: 11px; border-radius: 8px; background: #efede7; font-size: 14px; }
.map-search-status.error { background: #ffe3e0; color: #850909; font-weight: 800; }
.map-search-status.success { background: #e7f4e5; color: #285f29; }
.map-search-choices { display: grid; gap: 7px; margin-top: 10px; }
.map-choice { border: 1px solid #bbb4a8; border-radius: 7px; padding: 9px; background: #fff; text-align: left; cursor: pointer; }
.map-choice:hover { border-color: #b90f0f; background: #fff3f2; }

.map-result-card { border: 3px solid #b90f0f; }
.map-result-card.outside { border-color: #39713a; }
.map-result-label { margin: 0; font-size: 13px; font-weight: 900; letter-spacing: .05em; text-transform: uppercase; }
.map-result-card strong { display: block; margin: 4px 0; color: #b90f0f; font-size: 42px; line-height: 1; }
.map-result-card.outside strong { color: #39713a; }
.map-result-card p { margin-bottom: 7px; }
.map-result-status { font-weight: 900; }
.map-result-note { color: #68635b; font-size: 12px; }

.property-map-legend h3 { margin-bottom: 12px; }
.property-map-legend p { display: flex; align-items: center; gap: 9px; margin: 8px 0; font-size: 13px; font-weight: 750; }
.legend-line { display: inline-block; width: 32px; border-top: 5px solid #d10b0b; }
.legend-line.bsshb { border-color: #8b0000; border-top-style: dashed; }
.legend-dot { width: 11px; height: 11px; border: 2px solid #fff; border-radius: 50%; background: #e00000; box-shadow: 0 0 0 1px #a00000; }
.legend-house { display: inline-flex; width: 21px; height: 21px; align-items: center; justify-content: center; border-radius: 50%; background: #b90f0f; color: #fff; font-weight: 900; }

.property-map-notice { padding: 42px 5%; border-top: 5px solid #b90f0f; background: #111; color: #fff; }
.property-map-notice h2 { color: #e3bd45; }
.property-map-notice p { max-width: 1050px; }
.property-map-notice a { color: #f0d473; }
.map-mobile-help { display: none; }

.searched-location-icon { display: flex; width: 32px; height: 32px; align-items: center; justify-content: center; border: 3px solid #fff; border-radius: 50% 50% 50% 0; background: #b90f0f; color: #fff; font-size: 22px; font-weight: 900; box-shadow: 0 2px 8px rgba(0, 0, 0, .45); transform: rotate(-45deg); }
.searched-location-icon span { transform: rotate(45deg); }
.leaflet-popup-content { line-height: 1.35; }

@media (max-width: 900px) {
  .property-map-workspace { grid-template-columns: 1fr; }
  .property-map-sidebar { border-right: 0; }
  .property-map-main, #property-route-map { min-height: 590px; height: 590px; }
  .map-mobile-help { display: block; position: absolute; z-index: 500; right: 10px; bottom: 10px; left: 10px; padding: 8px; border-radius: 7px; background: rgba(0, 0, 0, .72); color: #fff; font-size: 12px; text-align: center; pointer-events: none; }
}

@media (max-width: 540px) {
  .property-map-hero { padding: 50px 5%; }
  .property-map-sidebar { padding: 14px; }
  .search-method { flex: 1 1 100%; }
  .str-fields { grid-template-columns: 1fr; }
}
