*,
*::after,
*::before {
  box-sizing: border-box;
  padding: 0;
  margin: 0;
}

.dm-map {
  display: flex;
  align-items: flex-start;
  position: relative;
  height: 63.90625vw;
  width: 100%;
  overflow: hidden;
}

.dm-map .map__container{
  max-width: var(--content-width);
  width: 100%;
  height: 100%;
  margin: 0px auto;
  
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}

.dm-map .map__reset-button {
  display: none;
  position: absolute;
  top: 0px;
  z-index: 3;
  background-color: #ffffff;
  padding: 12px 32px;
  border-radius: 99px;

  font-size: 1.0417vw;
  font-weight: bold;

  border: 1px solid #578c00;
  color: #578c00;

  cursor: pointer;
}

.dm-map .map__reset-button.show {
  display: inline-block;
}

.dm-map h2 {
  margin-bottom: 1.667rem;
}

.dm-map .button {
  display: flex;
  width: auto;
  align-items: center;
  justify-content: center;
  padding: 6px 6px 6px 16px;
  background-color: #578c00;
  color: #ffffff;
  text-decoration: none;
  border-radius: 99px;
  font-weight: bold;
  font-size: 1.0417vw;
  margin-top: 2.5rem;
  cursor: pointer;
}

.dm-map .button::after {
  content: "";
  display: inline-block;
  width: 48px;
  height: 48px;
  background-color: black;
  border-radius: 100%;
  background-image: url("./button-arrow.svg");
  background-size: 24px 24px;
  background-repeat: no-repeat;
  background-position: center;
  margin-left: 24px;
}

.dm-map .map__text-default {
  flex: 0 0 24.21875rem;
  position: relative;
  z-index: 2;

  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
}

.dm-map .map__text-default.hide {
  display: none;
}

.map__region-content {
  display: none;
  flex: 0 0 39.84375vw;
  z-index: 2;
  margin-top: 72px;
}

.map__region-content.show {
  display: block;
}

.map__region-content img {
  width: 100%;
  height: 26.5625vw;
  object-fit: cover;
  display: block;
  border-top-left-radius: 20px;
  border-top-right-radius: 20px;
}

.map__region-content .region__text {
  background-color: #ffffff;
  padding: 1.667vw;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  
  border-bottom-left-radius: 20px;
  border-bottom-right-radius: 20px;
}

.dm-map .map__map-container {
  position: absolute;
  top: 0px;
  left: 0px;
  width: 100%;
  height: 100%;
}

.dm-map .map__map-container svg {
  width: 100%;
  height: auto;
}

.dm-map .map__map-container svg #map__wrapper {
  transform: translate(22.65625vw, -56px);
}

.dm-map .map__text-default .map__title,
.dm-map .map__text-default .map__description {
  width: 100%;
}

.dm-map svg #map > g {
  cursor: pointer;
}

.dm-map svg #map > g path {
  transition: fill 0.3s ease;
}

.dm-map svg #map > g:hover path {
  fill: #578c00;
}

@media screen and (min-width: 1024px){
    .dm-map .map__container{
      font-size: 0.833vw;
      line-height: 140%;
    }
    
    .dm-map h2 {
      font-size: 3.333vw;
      line-height: 100%;
    }

}

@media screen and (max-width: 767px){
    .dm-map{
        height: auto;
    }
    
    .dm-map p{
        margin: 0px;
    }
    
    .dm-map .map__container {
      flex-direction: column;
      max-width: 100%;
    }
    
    .dm-map .map__map-container{
        position: relative;
        height: 106.67vw;
    }
    
    .dm-map .map__map-container svg{
        position: absolute;
        left: 50%;
        transform: translate(-50%, 0);
        width: auto;
        height: 106.67vw;
    }
    
    .dm-map .map__text-default{
        flex: 0 0 auto;
        margin-bottom: 48px;
        max-width: var(--content-width);
        padding-left: 16px;
        padding-right: 16px;
    }
    
    .dm-map .map__reset-button{
        font-size: 16px;
        left: 50%;
        top: 16px;
        transform: translate(-50%, 0);
    }
    
    .dm-map .button{
        font-size: 16px;
        margin-top: 28px;
    }
    
    .map__region-content{
        flex: 0 0 auto;
        height: auto;
        padding: 24px;
        margin: 0px;
    }
    
    .dm-map .map__region-content img{
        border-radius: 10px;
        margin-bottom: 12px;
    }
}
