.map-wrap {
  width: 100%;
  position: relative;
}
.map-wrap.loaded .google-map {
  opacity: 1;
  visibility: visible;
}
.map-wrap .inner-map-wrap {
  --map-height: 400px;
  height: var(--map-height);
  background: rgba(241, 241, 241, 1);
  position: relative;
  flex: 1 1 auto;
}
@media all and (min-width: 2px) and (max-width: 960px)  {
  .map-wrap .inner-map-wrap {
    order: 1;
  }
}
.map-wrap .inner-map-wrap:before {
  display: block;
  content: "Loading map...";
  position: absolute;
  z-index: 1;
  top: 50%;
  left: 50%;
  text-align: center;
  transform: translate(-50%, -50%);
}
@media all and (min-width: 2px) and (max-width: 640px)  {
  .map-wrap {
    margin: 0 0 10px;
  }
}
.map-wrap .map-contact-details {
  position: absolute;
  top: 50%;
  right: 80px;
  padding: 40px;
  background: white;
  z-index: 10;
  max-height: calc(100% - 40px);
  transform: translateY(-50%);
  overflow: auto;
}
@media all and (min-width: 2px) and (max-width: 960px)  {
  .map-wrap .map-contact-details {
    position: relative;
    transform: none;
    max-height: none;
    padding: 40px 0;
    right: initial;
    top: initial;
  }
}
.map-wrap .map-contact-details ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.map-wrap .map-contact-details .social li {
  display: inline-block;
}
.display-map {
  display: flex;
  gap: 0;
}
@media all and (min-width: 2px) and (max-width: 960px)  {
  .display-map {
    flex-direction: column;
    gap: 20px;
  }
}
.google-map {
  opacity: 0;
  visibility: hidden;
  transition: opacity ease-in-out 0.3s, visibility ease-in-out 0.3s;
  height: 100%;
  position: relative;
  z-index: 5;
}
.google-map img {
  max-width: inherit !important;
}
.google-map .gm-style .gm-style-iw-c {
  padding: 0;
}
.google-map .gm-style .gm-style-iw-a button {
  display: none !important;
}
.google-map .content {
  padding: 20px;
  min-width: 200px;
}
.google-map .content h3, .google-map .content p {
  color: rgba(0, 156, 222, 1);
  margin-bottom: 5px;
}
.google-map .content ul {
  margin: 0;
  padding: 0;
  list-style: none;
}
.google-map .closeInfo {
  display: block;
  position: absolute;
  right: 5px;
  top: 5px;
  background: rgba(255, 158, 27, 1);
  border: 0;
  color: white;
  transition: background ease-in-out 0.3s;
  font-size: 13px;
  padding: 0;
  border-radius: 18px;
  text-align: center;
  cursor: pointer;
  padding: 5px;
}
.google-map .closeInfo .icon {
  width: 8px;
  height: 8px;
  display: block;
}
.google-map .closeInfo:hover {
  background: rgba(204, 126, 22, 1);
}
.google-map .closeInfo:hover .icon {
  stroke: white;
}
.locations-wrap {
  flex: 0 0 30%;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
@media all and (min-width: 2px) and (max-width: 960px)  {
  .locations-wrap {
    flex-basis: 100%;
    order: 2;
  }
}
.locations-wrap h4 {
  font-size: 1rem;
  font-family: "filson-soft";
  color: rgba(255, 158, 27, 1);
  line-height: 20px;
  font-weight: 400;
  margin-bottom: 0;
}
@media all and (max-width: 1220px) {
  .locations-wrap h4 {
    font-size: 1rem;
  }
}
@media all and (max-width: 640px) {
  .locations-wrap h4 {
    font-size: 1rem;
  }
}
.locations-wrap .locations {
  width: 100%;
  background: white;
  max-height: 700px;
  overflow: hidden;
}
@media all and (min-width: 2px) and (max-width: 960px)  {
  .locations-wrap .locations {
    max-height: initial;
  }
}
.locations-wrap .locations .locations-list-wrap {
  height: calc(100% - 60px);
  overflow: auto;
}
.locations-wrap .locations h3 {
  background: rgba(255, 158, 27, 1);
  color: white;
  padding: 14px 20px;
  margin: 0;
  height: 60px;
}
.locations-wrap .locations .location-list {
  list-style: none;
  margin: 0;
  counter-reset: section;
  height: 100%;
}
.locations-wrap .locations .location-list > li {
  padding: 30px;
  border-top: 1px solid rgba(217, 217, 217, 1);
}
.locations-wrap .locations .location-list > li:after {
  content: "";
  display: table;
  clear: both;
}
.locations-wrap .locations .location-list > li:first-child {
  border: 0;
  margin: 0;
}
.locations-wrap .locations .location-list > li:not(.error):not(.loading):before {
  font-size: 90px;
  line-height: 90px;
  position: absolute;
  right: 20px;
  top: 65px;
  left: auto;
  width: auto;
  counter-increment: section;
  content: counter(section);
  display: block;
  font-family: "filson-soft";
  color: rgba(241, 241, 241, 0.5);
  font-weight: 700;
}
.locations-wrap .locations .location-list > li.error {
  padding: 20px 20px 20px 28px;
}
.locations-wrap .locations .location-list > li ul {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
@media all and (min-width: 641px) and (max-width: 960px)  {
  .locations-wrap .locations .location-list > li ul {
    flex-direction: row;
    flex-wrap: wrap;
    gap: 20px;
  }
}
@media all and (min-width: 641px) and (max-width: 960px)  {
  .locations-wrap .locations .location-list > li li {
    flex: 1 1 49%;
  }
  .locations-wrap .locations .location-list > li li.address {
    flex-basis: 100%;
  }
  .locations-wrap .locations .location-list > li li:nth-child(2n) {
    margin-right: 0;
  }
}
@media all and (min-width: 2px) and (max-width: 640px)  {
  .locations-wrap .locations .location-list > li li {
    width: 100%;
    margin: 0;
  }
}
.locations-wrap .locations .location-list > li .opening-times {
  padding: 0;
  border-radius: 0;
  margin: 15px 0 0;
  border: 1px solid rgba(241, 241, 241, 1);
}
.locations-wrap .locations .location-list > li .opening-times ul {
  gap: 0;
}
.locations-wrap .locations .location-list > li .opening-times li {
  font-size: 0.8125rem;
  border-top: 1px solid rgba(241, 241, 241, 1);
}
.locations-wrap .locations .location-list > li .opening-times li:first-child {
  border: 0;
}
.locations-wrap .locations .location-list > li .opening-times li, .locations-wrap .locations .location-list > li .opening-times .closure {
  border-radius: 0;
  padding: 0;
  margin: 0;
}
.locations-wrap .locations .location-list > li .opening-times .closure {
  padding: 5px;
}
.locations-wrap .locations .location-list > li .opening-times dl {
  display: flex;
  margin: 0;
  justify-content: space-between;
}
.locations-wrap .locations .location-list > li .opening-times dt, .locations-wrap .locations .location-list > li .opening-times dd {
  padding: 8px 6px;
}
.locations-wrap .locations .location-list > li .opening-times .today {
  font-weight: 700;
}
.locations-wrap .locations .location-list .loading {
  background: rgba(241, 241, 241, 1);
  padding: 20px;
  text-align: center;
}
@keyframes rotate {
  100% {
    transform: rotate(-360deg);
  }
}
.locations-wrap .locations .location-list .loading .icon {
  position: initial;
  animation: rotate 1s linear infinite;
  margin-right: 5px;
  display: inline-block;
}
.locations-wrap .locations .show-on-map, .locations-wrap .locations .distance {
  font-size: 0.8125rem;
  text-decoration: underline;
  line-height: 31px;
  cursor: pointer;
}
.locations-wrap .locations .show-on-map {
  display: block;
  margin: 0 0 10px 0;
}
.locations-wrap .locations .distance {
  float: right;
  margin: 0 0 0 10px;
  text-decoration: none;
  clear: right;
  line-height: 20px;
  color: rgba(98, 181, 229, 1);
}
.locations-wrap .locations .distance:before {
  content: "";
  background: url("data:image/svg+xml,%3Csvg viewBox='0 0 20 20' height='20' width='20' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform='matrix(0.8333333333333334,0,0,0.8333333333333334,0,0)'%3E%3Cpath d='M23.25,4.5c0,1.7-2.537,5.678-3.437,7.036a.375.375,0,0,1-.625,0C18.287,10.179,15.75,6.2,15.75,4.5a3.75,3.75,0,0,1,7.5,0Z' fill='none' stroke='rgba(0, 156, 222, 1)' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5'%3E%3C/path%3E%3Cpath d='M19.5,4.125a.375.375,0,0,1,.375.375' fill='none' stroke='rgba(0, 156, 222, 1)' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5'%3E%3C/path%3E%3Cpath d='M19.125,4.5a.375.375,0,0,1,.375-.375' fill='none' stroke='rgba(0, 156, 222, 1)' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5'%3E%3C/path%3E%3Cpath d='M19.5,4.875a.375.375,0,0,1-.375-.375' fill='none' stroke='rgba(0, 156, 222, 1)' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5'%3E%3C/path%3E%3Cpath d='M19.875,4.5a.375.375,0,0,1-.375.375' fill='none' stroke='rgba(0, 156, 222, 1)' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5'%3E%3C/path%3E%3Cpath d='M5.25,12.375a.375.375,0,0,1,.375.375' fill='none' stroke='rgba(0, 156, 222, 1)' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5'%3E%3C/path%3E%3Cpath d='M4.875,12.75a.375.375,0,0,1,.375-.375' fill='none' stroke='rgba(0, 156, 222, 1)' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5'%3E%3C/path%3E%3Cpath d='M5.25,13.125a.375.375,0,0,1-.375-.375' fill='none' stroke='rgba(0, 156, 222, 1)' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5'%3E%3C/path%3E%3Cpath d='M5.625,12.75a.375.375,0,0,1-.375.375' fill='none' stroke='rgba(0, 156, 222, 1)' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5'%3E%3C/path%3E%3Cpath d='M5.25,8.25a4.5,4.5,0,0,1,4.5,4.5c0,1.921-2.688,5.577-3.909,7.138a.75.75,0,0,1-1.182,0C3.438,18.326.75,14.671.75,12.75A4.5,4.5,0,0,1,5.25,8.25Z' fill='none' stroke='rgba(0, 156, 222, 1)' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5'%3E%3C/path%3E%3Cpath d='M6.75 23.25L19.5 15' fill='none' stroke='rgba(0, 156, 222, 1)' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5'%3E%3C/path%3E%3C/g%3E%3C/svg%3E") center no-repeat;
  background-size: 15px;
  width: 15px;
  height: 15px;
  margin: 0 5px 0 0;
  display: inline-block;
  vertical-align: middle;
}
.locations-wrap .marker {
  padding: 20px 40px;
}
.locations-wrap .map-wrap {
  flex-basis: 49%;
  height: 600px;
}
@media all and (min-width: 2px) and (max-width: 960px)  {
  .locations-wrap .map-wrap {
    flex-basis: auto;
    height: 400px;
    margin: 0 0 20px;
    order: 1;
  }
}
.location-finder ul, .map-wrap ul, .contact-groups ul, .locations-wrap ul {
  list-style: none;
  padding: 0;
  margin: 0;
}
.location-finder li, .map-wrap li, .contact-groups li, .locations-wrap li {
  position: relative;
  padding: 0 0 0 22px;
  line-height: 22px;
  flex-basis: 100%;
}
.location-finder li .icon, .map-wrap li .icon, .contact-groups li .icon, .locations-wrap li .icon {
  position: absolute;
  top: 4px;
  left: 0;
  margin: 0 5px 0 0;
}
.location-finder li.address, .map-wrap li.address, .contact-groups li.address, .locations-wrap li.address {
  position: relative;
  padding-left: 22px;
  width: 100%;
  flex-basis: 100%;
}
.location-finder li a, .map-wrap li a, .contact-groups li a, .locations-wrap li a {
  color: rgba(0, 156, 222, 1);
  text-decoration: none;
  font-weight: 400;
}
.location-finder {
  margin-bottom: var(--wp--style--block-gap);
}
.location-finder h2 {
  display: none;
}
.location-finder .search-location-form {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  margin-bottom: 20px;
}
@media all and (min-width: 2px) and (max-width: 1220px)  {
  .location-finder .search-location-form {
    width: 80%;
  }
}
@media all and (min-width: 2px) and (max-width: 960px)  {
  .location-finder .search-location-form {
    width: 100%;
    float: none;
    margin: 0;
  }
}
.location-finder .search-location-form .form-row, .location-finder .search-location-form .buttons {
  flex: 1 0 32%;
  margin: 0 10px 10px;
  align-content: center;
}
@media all and (min-width: 2px) and (max-width: 640px)  {
  .location-finder .search-location-form .form-row, .location-finder .search-location-form .buttons {
    flex: 1 0 100%;
    margin: 0 0 20px;
  }
}
.location-finder .search-location-form .buttons {
  flex: 0 0 200px;
}
@media all and (min-width: 2px) and (max-width: 640px)  {
  .location-finder .search-location-form .buttons {
    flex: 1 0 100%;
  }
  .location-finder .search-location-form .buttons .button {
    width: 100%;
  }
}
.location-finder .search-location-form .actions {
  flex-basis: 100%;
}
.location-finder .search-location-form .actions:after {
  content: "";
  display: table;
  clear: both;
}
.location-finder .use-location, .location-finder .reset-search {
  font-size: 0.8125rem;
  display: block;
  color: white;
  cursor: pointer;
  padding: 10px;
  text-decoration: underline;
  text-align: center;
  float: left;
}
.location-finder .use-location .icon, .location-finder .reset-search .icon {
  margin: 0 2px 0 0;
}
.location-finder .reset-search {
  float: right;
}
