@charset "utf-8";

/*----------------------------------------------------
  popup
----------------------------------------------------*/
.popup {
  opacity: 0;
  visibility: hidden;
  transition: 300ms;
  height: 100vh;
  width: 100%;
  background: rgb(0, 0, 0, 0.7);
  position: fixed;
  top: 0;
  left: 0;
  z-index: 1100;
  display: flex;
  justify-content: center;
  align-items: center;
}
.popbox {
  max-height: calc(100% - 100px);
  width: 100%;
  max-width: 750px;
  overflow: hidden;
  overflow-y: auto;
  background-color: #fff;
  margin: 20px;
  padding: 30px;
  box-sizing: border-box;
  border-radius: 20px;
  position: relative;
}
.popup.show {
  opacity: 1;
  visibility: visible; 
}

.close {
  display: block;
  position: relative;
  margin-left: auto;
  width: 30px;
  height: 30px;
  cursor: pointer;
}
.close:hover{
  opacity: 0.7;
}
.close::before, .close::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 5px;
  height: 30px;
  background: #333;
}
.close::before {
  transform: translate(-50%,-50%) rotate(45deg);
}
.close::after {
  transform: translate(-50%,-50%) rotate(-45deg);
}
.popup .poptitle{
  text-align: center;
  margin-top: -30px;
  padding-bottom: 5px;
  border-bottom: 1px solid #d4bdac;
}
.popup .popsub_title{
  margin: 40px 0 20px;
  text-align: center;
}
.popup .mail{
  margin: 30px auto 0;
  max-width: 350px;
}
.popup .mail p{
  margin: 0 auto 10px;
  max-width: 350px;
}
.popup .mail #mailText {
  box-sizing: border-box;
  width: 100%;
  height: 45px;
  line-height: 45px;
  background-color: #fff1db;
  padding: 0px 10px 0px 10px;
  border-radius: 10px;
  border: 1px solid #d4bdac;
  display: block;
}
.popup .mail #mailButton {
  min-width: 100px;
  padding: 9px 2px 9px 2px;
  margin: auto;
  color: #fff;
  background-color: #dd0000;
  border-radius: 25px;
  border: none;
  display: block;
  cursor: pointer;
}
.popup .step ol {
  counter-reset: step;
  list-style: none;
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 0 25px;
}
.popup .step ol > li{
  position: relative;
}
.popup .step ol > li + li::after{
  content: "";
  position: absolute;
  top: 19px;
  left: -50%;
  width: 89.5%;
  border-top: 1px solid #d4bdac;
  display: block;
}
.popup .step ol > li:before {
  content: counter(step);
  counter-increment: step;
  position: relative;
  color: #fff;
  background-color: #d4bdac;
  margin: 0 auto 20px;
  text-align: center;
  height: 37px;
  width: 40px;
  padding-top: 3px;
  border-radius: 50%;
  display: block;
}
.popup .step ol > li:first-child:before{
  background-color: #dd0000;
}
.popup .step ol > li h4{
  text-align: center;
  font-family: 'NotoSans-B', 'NotoSansJP-B', sans-serif;
  font-size: 16px;
}