.ch-widget{
  display:grid;
  grid-template-columns: 420px 1fr;
  gap: 28px;
  align-items: stretch;
}

.ch-widget input[type=text]{
  border-width: 0;
      box-shadow: 0;
      border-radius: 0;
      border-bottom: 1px solid #d1d5db;
}

/* Make left column match map height and allow inner scrolling */
.ch-left{
  display: flex;
  flex-direction: column;
  gap: 14px;
  height: 100%;      /* important: follow grid row height */
  min-height: 0;     /* important: allow children to shrink so overflow works */
}

/* Let the list consume remaining height and scroll */
.ch-list{
  flex: 1;
  min-height: 0;     /* important: enables scrolling inside flex item */
  overflow: auto;

  max-height: 570px;  /* remove the fixed limit */
  padding-right: 6px;
}


.ch-search{
  padding: 12px 14px;
  border: 0;
  border-bottom: 2px solid #e6e6e6;
  outline: none;
  font-size: 14px;
}


.ch-list button{
  color: black;
}

.ch-card{
  text-align:left;
  border: 1px solid #dcdcdc;
  border-radius: 14px;
  background: #0b000000;
  padding: 20px;
  margin-bottom: 20px;
  cursor:pointer;
}

.ch-card button{
  color: black;
}
.ch-list button:hover, .ch-list button:focus{
  background-color: white;
  border-color: black;
}

.ch-card.is-active{
  border: 1px solid #000000;
    background: #ffffff00;
}
.ch-card.is-active:hover .ch-title, .ch-card.is-active:focus .ch-title{
  color: black;
  font-weight: 700;
}

.ch-title{  font-size: 20px; margin-bottom: 6px;     font-weight: 500; padding-bottom: 20px;}
.ch-sub{ font-size: 14px; line-height: 1.35; }

.ch-map{
  height: 620px;
  border-radius: 22px;
  overflow:hidden;
}

.ch-popup-title{
  font-size: 20px;
    font-weight: 600;
    margin-bottom: 20px;
}

/* Mobile */
@media (max-width: 900px){
  .ch-widget{ grid-template-columns: 1fr; }
  .ch-map{ height: 350px; }
  .ch-left{ height: auto; }
  .ch-list{ max-height: 320px; }
  .leaflet-popup-content{
    width: 200px;
  }
  .leaflet-popup{
        left: -125px;
  }
  .leaflet-pane{
    top: 30px;
  }
}
