/**

 * Find-your-practice block — layout/typography aligned to Healthcare Central London

 * reference `.practices` (main.css: ~31.8% / ~65.91%, vw type, #e8f6fd card, 59.4% map ratio).

 */

.practicesMap {

  position: relative;

  z-index: 2;

  isolation: isolate;

  padding: 2vw 0 5vw;

  background: #fff;

}



.practicesMap__title {

  margin: 0 0 2.5vw;

  text-align: left;

}



/* Same row model as reference `.practices__contentWrap` */

.practicesMap__grid {

  display: flex;

  flex-wrap: wrap;

  justify-content: space-between;

  align-items: stretch;

}



.practicesMap__featuredCol {

  width: 31.8%;

  display: flex;

  flex-direction: column;

  text-align: left;

}



.practicesMap__mapCol {

  width: 65.91%;

  display: flex;

  flex-direction: column;

  align-self: stretch;

}



.practicesMap__card {

  flex: 1;

  display: flex;

  flex-direction: column;

  width: 100%;

  height: 100%;

  padding: 2vw;

  border-radius: 0.875vw;

  background-color: #e8f6fd;

  box-shadow: 0 4px 18px rgba(0, 51, 71, 0.06);

  text-align: left;

}



.practicesMap__card--featured {

  cursor: default;

}



/* Practice name row + rule — `.practices__listTop` */

.practicesMap__listTop {

  position: relative;

  padding-bottom: 1.5vw;

  margin-bottom: 1.25vw;

}



.practicesMap__listTop::after {

  content: "";

  position: absolute;

  bottom: 0;

  left: 0;

  width: 100%;

  height: 1px;

  background-color: rgba(0, 51, 71, 0.4);

}



.practicesMap__cardTitle {

  margin: 0;

  font-size: 1.15vw;

  font-weight: 700;

  line-height: 1.35;

  color: #003347;

}



.practicesMap__cardBody {

  flex: 1 1 auto;

}



/* Field stack — `.practices__col` */

.practicesMap__col {

  margin-bottom: 1.25vw;

}



.practicesMap__col:last-child {

  margin-bottom: 0;

}



/* `.practices__colTitle` */

.practicesMap__label {

  margin: 0 0 0.35vw;

  font-size: 1vw;

  font-weight: 700;

  line-height: 1.7;

  letter-spacing: 0;

  text-transform: none;

  color: #003347;

}



/* `.practices__listText` */

.practicesMap__value,

.practicesMap__valueLink {

  font-size: 1vw;

  font-weight: 400;

  line-height: 1.7;

  color: #003347;

}



.practicesMap__valueLink--phone {

  text-decoration: none;

}



.practicesMap__valueLink--phone:hover {

  text-decoration: underline;

}



.practicesMap__valueLink:not(.practicesMap__valueLink--phone) {

  text-decoration: underline;

}



.practicesMap__valueLink:not(.practicesMap__valueLink--phone):hover {

  text-decoration: none;

}



/* `.practices__listText--link` */

.practicesMap__col--link {

  margin-top: 0;

}



.practicesMap__directions {

  display: inline-flex;

  align-items: center;

  gap: 0.5vw;

  margin-top: 0.75vw;

  font-size: 1vw;

  font-weight: 400;

  line-height: 1.7;

  color: #003347;

  text-decoration: underline;

}



.practicesMap__directions:hover {

  text-decoration: none;

}



.practicesMap__inlineIcon {

  flex-shrink: 0;

  color: currentColor;

}



/* `.practices__website` */

.practicesMap__cta {

  display: inline-flex;

  align-items: center;

  gap: 0.5vw;

  margin-top: 0.4375vw;

  align-self: flex-start;

  padding: 0.65vw 1.25vw;

  border-radius: 999px;

  background: #19025c;

  color: #fff;

  font-size: 1vw;

  font-weight: 700;

  line-height: 1.5;

  text-decoration: none;

}



.practicesMap__cta:hover {

  filter: brightness(1.06);

}



.practicesMap__cta .practicesMap__inlineIcon {

  color: #fff;

}



.practicesMap__placeholder {

  flex: 1;

  width: 100%;

  padding: 2vw;

  border-radius: 0.875vw;

  background: rgba(232, 246, 253, 0.65);

  border: 1px dashed rgba(0, 51, 71, 0.25);

  color: #003347;

  font-size: 1vw;

  line-height: 1.7;

}



.practicesMap__placeholder p {

  margin: 0;

}



/* `.practices__mapHolder` — aspect sets row height so left card matches map column */

.practicesMap__mapHolder {

  position: relative;

  width: 100%;

  padding-bottom: 59.4%;

  min-height: 100%;

  border-radius: 0.5vw;

  overflow: hidden;

  box-shadow: 0 4px 18px rgba(0, 51, 71, 0.06);

}



.practicesMap__mapHolder .practicesMap__map {

  position: absolute;

  top: 0;

  left: 0;

  width: 100%;

  height: 100%;

  min-height: 0;

}



.practicesMap__map--empty {

  position: relative;

  min-height: 12rem;

  border-radius: 0.5vw;

  background: rgba(0, 51, 71, 0.05);

}



.practicesMap__mapEmptyNote {

  margin: 0.75rem 0 0;

  font-size: 1rem;

  line-height: 1.6;

  color: rgba(0, 51, 71, 0.85);

}



.practicesMap__pin {

  background: transparent;

  border: 0;

}



.practicesMap__pin svg {

  display: block;

  filter: drop-shadow(0 6px 10px rgba(0, 0, 0, 0.25));

}



.practicesMap__popupTitle {

  font-weight: 800;

  margin-bottom: 4px;

}



.practicesMap__popupTitleLink {

  color: inherit;

  text-decoration: none;

}



.practicesMap__popupTitleLink:hover,

.practicesMap__popupTitleLink:focus {

  text-decoration: underline;

  text-underline-offset: 0.12em;

}



.practicesMap__popupWeb {

  display: inline-block;

  margin: 6px 0 8px;

  font-size: 12px;

  font-weight: 700;

  color: #0a58ca;

  text-decoration: underline;

}



.practicesMap__popupAddr {

  font-size: 12px;

  line-height: 1.35;

  opacity: 0.9;

}



/* Reference breakpoint max-width 1600px */

@media screen and (max-width: 1600px) {

  .practicesMap {

    padding: 2.2222222222vw 0 5.5vw;

  }



  .practicesMap__title {

    margin-bottom: 2.7777777778vw;

  }



  .practicesMap__card {

    padding: 2.2222222222vw;

    border-radius: 0.9722222222vw;

  }



  .practicesMap__listTop {

    padding-bottom: 1.6666666667vw;

    margin-bottom: 1.3888888889vw;

  }



  .practicesMap__cardTitle {

    font-size: 1.25vw;

  }



  .practicesMap__col {

    margin-bottom: 1.3888888889vw;

  }



  .practicesMap__label,

  .practicesMap__value,

  .practicesMap__valueLink,

  .practicesMap__directions,

  .practicesMap__cta {

    font-size: 1.1111111111vw;

  }



  .practicesMap__directions {

    margin-top: 0.8333333333vw;

    gap: 0.5555555556vw;

  }



  .practicesMap__cta {

    margin-top: 0.4861111111vw;

    gap: 0.45vw;

  }



  .practicesMap__mapHolder {

    border-radius: 0.5555555556vw;

  }

}



@media screen and (max-width: 1080px) {

  .practicesMap {

    padding: 3rem 0 3.5rem;

  }



  .practicesMap__title {

    margin-bottom: 2.5rem;

  }



  .practicesMap__card {

    padding: 2rem;

    border-radius: 0.5rem;

  }



  .practicesMap__listTop {

    padding-bottom: 1.5rem;

    margin-bottom: 1.25rem;

  }



  .practicesMap__cardTitle {

    font-size: 1.25rem;

  }



  .practicesMap__col {

    margin-bottom: 1.25rem;

  }



  .practicesMap__label,

  .practicesMap__value,

  .practicesMap__valueLink,

  .practicesMap__directions,

  .practicesMap__cta {

    font-size: 1rem;

  }



  .practicesMap__directions {

    margin-top: 0.75rem;

    gap: 0.5rem;

  }



  .practicesMap__cta {

    margin-top: 0.4375rem;

    padding: 0.65rem 1.25rem;

  }



  .practicesMap__placeholder {

    font-size: 1rem;

    padding: 2rem;

  }



  .practicesMap__mapHolder {

    border-radius: 0.5rem;

  }

}



@media screen and (max-width: 960px) {

  .practicesMap__grid {

    flex-direction: column-reverse;

    align-items: flex-start;

  }



  .practicesMap__featuredCol,

  .practicesMap__mapCol {

    width: 100%;

  }



  .practicesMap__mapCol {

    margin-bottom: 1rem;

  }



  .practicesMap__mapHolder {

    min-height: 18.875rem;

    padding-bottom: 56%;

  }

}



/* No title: top rule on body (when listTop absent) */

.practicesMap__card:not(:has(.practicesMap__listTop)) .practicesMap__cardBody {

  padding-top: 0.25rem;

  border-top: 1px solid rgba(0, 51, 71, 0.4);

}


