@charset "UTF-8";
/* CSS Document */

.btn{
  width: 340px;
  height: 75px;
  font-size: 2.4rem;
  line-height: 75px;
  color: #FFF;
  font-weight: 500;
  text-align: center;
  background: #c82667;
  border-radius: 50px;
  display: block;
  margin: 0 auto;
}

.kv h1{
  font-size: 2.1rem;
  line-height: 1;
  white-space: nowrap;
  text-align: center;
  color: #231815;
  margin-bottom: 25px;
}

.kv h1 img{
  width: 205px;
  vertical-align: bottom;
  transform: translateY(.15em)
}

.kv h1 em{
  color: #ca5d82;
}

.kv h1 span{
  position: relative;
}

.kv h1 span::before,
.kv h1 span::after{
  content: "";
  width: 2px;
  height: 105%;
  background: #231815;
  position: absolute;
  top: 50%;
}

.kv h1 span::before{
  left: -15px;
  transform: translateY(-50%) rotate(-15deg);
}

.kv h1 span::after{
  right: -15px;
  transform: translateY(-50%) rotate(15deg);
}

@media screen and (min-width: 768px) {
  .kv .bk{
    width: 100%;
    height: 238px;
    background: url("../img/kv_bk.jpg") no-repeat center center;
    background-size: cover;
    position: relative;
  }
  
   .kv .bk::before,
   .kv .bk::after{
     content: "";
     width: 1px;
     height: 65px;
     background: #231815;
     position: absolute;
     top: 50%;
     left: 50%;
  }
  .kv .bk::before{
     transform: translate(-50%,-50%) rotate(-45deg);
  }
  .kv .bk::after{
     transform: translate(-50%,-50%) rotate(45deg);
  }
  
  .kv .ske48{
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-430px,-50%)
  }
  
  .kv .pic{
    position: absolute;
    top: -15px;
    left: 50%;
    transform: translateX(105px)
  }
}

.intro{
  padding: 35px 0 80px;
  background-image: linear-gradient(130deg, rgba(255, 255, 255, 1), rgba(238, 240, 241, 1));
}

.intro > div{
  max-width: 960px;
  margin: 0 auto;
  position: relative;
}

.intro h2{
  margin-bottom: 50px;
}

.intro .txt_box{
  max-width: 555px;
}

.intro .txt_box p{
  font-size: 1.6rem;
  line-height: 1.6;
  margin-bottom: 20px;
}

.intro .txt_box p strong{
 color: #004a70;
  font-weight: 600;
}

.intro .ske{
  text-align: center;
  position: absolute;
  bottom: 0;
  right: 0;
}

@media screen and (max-width: 960px) {
  .intro .ske{
    position: static;
    bottom: auto;
    right: auto;
    margin-top: 20px;
  }
}

.event{
  padding: 105px 0 70px;
  background: url("../img/ei_bk.jpg") no-repeat center top #153343;
}

.event h2{
  font-size: 3.5rem;
  line-height: 1;
  text-align: center;
  color: #f4f5f6;
  margin-bottom: 45px;
}

.event h2 span{
  position: relative;
}

.event h2 span::before{
  content: "";
  width: 65px;
  height: 100px;
  background: url("../img/ei_kei.png") no-repeat left top;
  background-size: 100% auto;
  position: absolute;
  top: -35px;
  left: -65px;
}

.event .wbox{
  padding: 50px 80px 60px;
  background: #FFF;
  border-radius: 15px;
}

.event .wbox h3{
  font-size: 2.8rem;
  line-height: 1.3;
  text-align: center;
  margin-bottom: 30px;
}

.event .wbox h3 img{
  max-width: 100px;
  vertical-align: baseline;
  transform: translateY(.1em)
}

.event .wbox h3 span{
  font-size: 3.4rem;
  color: #ca5d82;
}

.event .wbox .pic{
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  margin-bottom: 25px;
}

.event .wbox .pic > div{
  width: 440px;
}

.event .wbox .pic > div + div{
  width: 308px;
}

.event .wbox .pic p{
  line-height: 1.8;
}
.event .wbox .pic p strong{
  color: #004a70;
  font-weight: 600;
}

.event dl {
	display: grid;
	grid-template-columns: 160px 1fr;
}

.event dt,
.event dd {
	margin: 0;
  padding: 20px 0;
	border-bottom: 1px solid #c9cbd0;
}

.event dl dt:first-of-type,
.event dl dd:first-of-type{
  padding-top: 0;
}

.event dl dt:last-of-type,
.event dl dd:last-of-type{
  border-bottom: none;
  padding-bottom: 0;
}

.event dt{
  font-size: 1.6rem;
  color: #004a70;
}

.event dd span{
  display: block;
  font-size: 1.3rem;
  text-indent: -1em;
  padding-left: 1em;
  margin-top: 8px;
}

.step{
  padding: 100px 0 70px;
}

.step h2{
  font-size: 3.5rem;
  line-height: 1;
  text-align: center;
  margin-bottom: 60px;
}

.step ol{
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  margin-bottom: 70px;
}

.step ol li{
  width: 25%;
  border-left: 1px solid #5486a0;
  padding: 15px 20px 20px;
}

.step ol li:last-of-type{
  border-right: 1px solid #5486a0;
}

.step ol li h3{
  text-align: center;
  margin-bottom: 30px;
}

.step ol li p{
  font-size: 1.5rem;
  font-weight: 500;
  margin-bottom: 10px;
}

.step ol li p.note{
  font-size: 1.3rem;
  color: #868686;
  letter-spacing: normal;
  margin-bottom: 0;
}

.ts{
  background: #e5ecee;
  padding: 100px 0 70px;
}

.ts h2{
  font-size: 3.5rem;
  color: #004a70;
  text-align: center;
  margin-bottom: 50px;
}

.ts .wbox{
  padding: 70px 45px 50px;
  background: #FFF;
  border: 1px solid #8d8d8d;
  border-radius: 15px;
}

.ts_list{
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 20px 65px;
  margin-bottom: 40px;
}

.ts_list figcaption{
  display: block;
  margin-top: 25px;
  text-align: center;
}

.ts .c2{
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
}

.ts .c2 dl{
  width: 420px;
}

.ts .c2 div{
  width: 415px;
}

.ts .c2 dl {
	display: grid;
	grid-template-columns: 90px 1fr;
}

.ts dt,
.ts dd {
	margin: 0;
  padding: 25px 0;
	border-top: 1px solid #c9cbd0;
}

.ts dt{
  font-size: 1.8rem;
  color: #004a70;
}

.ts dd img{
  width: 180px;
  vertical-align: bottom;
}

.ts dt:last-of-type,
.ts dd:last-of-type{
  padding-bottom: 0;
}

.ts dd li::before{
  content: "●";
  color: #0d2649;
  width: 1.2em;
  transform: scale(.6);
  display: inline-block;
}

.ts dd li:nth-child(2)::before{
  color: #d3cfd3;
}

.ts dd li:nth-child(3)::before{
  color: #b4151d;
}

.ts dd li:nth-child(4)::before{
  color: #1f7388;
}

.ts .bbox{
  padding: 25px 15px;
  background: #e5ecee;
  border-radius: 10px;
  margin-bottom: 15px;
}

.ts .bbox h3{
  font-size: 1.6rem;
  color: #004a70;
  margin-bottom: 5px;
}

.blnk_btn{
  height: 40px;
  line-height: 38px;
  color: #014a70;
  padding: 0 30px;
  background: #FFF;
  border: 1px solid #014a70;
  border-radius: 50px;
  display: inline-block;
}

.blnk_btn span{
  padding-right: 20px;
  display: inline-block;
  position: relative;
}

.blnk_btn span::after{
  content: "";
  width: 15px;
  height: 15px;
  background: url("../img/icon_blank.png") no-repeat center center;
  background-size: 100% 100%;
  position: absolute;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
}

.terms{
  padding: 105px 0;
}

.terms h2{
  font-size: 3.5rem;
  color: #004a70;
  text-align: center;
  margin-bottom: 50px;
}

.terms .box{
  padding: 40px 40px;
  background: #FFF;
  border: 1px solid #8d8d8d;
  border-radius: 15px;
}

.terms .box dl {
	display: grid;
	grid-template-columns: 165px 1fr;
}

.terms .box dt,
.terms .box dd {
	margin: 0;
  padding: 30px 0;
	border-bottom: 1px solid #c9cbd0;
}

.terms .box dt{
  font-size: 1.8rem;
  color: #004a70;
}

.terms .box dt:first-of-type,
.terms .box dd:first-of-type {
  padding-top: 0 !important;
}

.terms .box dt:last-of-type,
.terms .box dd:last-of-type {
	border-bottom: none;
  padding-bottom: 0 !important;
}

.terms .note{
  margin: 30px 0 70px;
}

.terms .note h3{
  font-size: 2.0rem;
  letter-spacing: .1em;
  margin-bottom: 15px;
}

.terms .note li{
  font-size: 1.5rem;
  padding-left: 1.3em;
}

.terms .note li::before{
  content: "●";
  color: #829297;
  width: 1.3em;
  margin-left: -1.3em;
  display: inline-block;
  transform: scale(.6)
}


@media screen and (max-width: 767px) {
  
  main{
    width: 100%;
    overflow: hidden;
  }

  .btn{
    width: 70vw;
    height: 15vw;
    font-size: 2.8rem;
    line-height: 15vw;
    border-radius: 10vw;
  }

  .kv h1{
    font-size: 1.8rem;
    line-height: 1.3;
    margin-bottom: 0;
  }

  .kv h1 img{
    width: 30vw;
    vertical-align: bottom;
    transform: translateY(.05em)
  }

  .kv h1 span::before,
  .kv h1 span::after{
    width: 1px;
  }

  .kv h1 span::before{
    left: -3vw;
    transform: translateY(-50%) rotate(-15deg);
  }

  .kv h1 span::after{
    right: -8vw;
    transform: translateY(-50%) rotate(15deg);
  }

  .kv .bk .ske48{
    display: none;
  }

  .intro{
    padding: 0 0 10vw;
    background-image: none;
  }
  
  .intro h2{
    margin-bottom: 8vw;
  }

  .intro .txt_box{
    max-width: 100%;
    padding: 0 5vw;
  }

  .intro .txt_box p{
    font-size: 1.9rem;
    line-height: 1.6;
    margin-bottom: 20px;
  }

  .intro .txt_box img{
    max-width: 100vw;
    width: 100vw;
    margin-left: -5vw;
  }

  .intro .ske{
    display: flex;
    flex-direction: column;
    flex-direction: column-reverse;
    margin-top: 8vw;
  }
  
  .event{
    padding: 15vw 0;
    background: url("../img/ei_bk.jpg") no-repeat center top #153343;
    background-size: 130vw auto;
  }

  .event h2{
    margin-bottom: 8vw;
  }

  .event h2 span::before{
    width: 8vw;
    height: 15vw;
    background: url("../img/ei_kei.png") no-repeat left top;
    background-size: 100% auto;
    position: absolute;
    top: -3vw;
    left: -8vw;
  }

  .event .wbox{
    padding: 10vw 5vw;
    background: #FFF;
    border-radius: 2vw;
  }

  .event .wbox h3{
    margin-bottom: 5vw;
  }

  .event .wbox h3 img{
    max-width: 20vw;
  }

  .event .wbox .pic{
    margin-bottom: 5vw;
    gap: 5vw 5vw;
  }

  .event .wbox .pic > div{
    width: 100%;
  }

  .event .wbox .pic > div + div{
    width: 100%;
  }

  .event .wbox .pic p{
    line-height: 1.8;
  }
  .event .wbox .pic p strong{
    color: #004a70;
    font-weight: 600;
  }

  .event dl {
    display: block;
    margin-bottom: 0;
  }

  .event dt,
  .event dd {
    margin: 0;
    padding: 0;
    border-bottom: 1px solid #c9cbd0;
  }
  
  .event dt{
    padding: 0;
    padding-bottom: 1vw;
    border-bottom: none;
  }
  
  .event dd {
    padding-bottom: 4vw;
    margin-bottom: 4vw;
  }

  .event dl dd:last-of-type{
    border-bottom: none;
    padding-bottom: 0;
    margin-bottom: 0;
  }

  .event dt{
    font-size: 1.8rem;
    color: #004a70;
  }

  .event dd span{
    margin-top: 1vw;
  }

  .step{
    padding: 15vw 0;
  }

  .step h2{
    font-size: 3.5rem;
    line-height: 1;
    text-align: center;
    margin-bottom: 10vw;
  }

  .step ol{
    margin-bottom: 10vw;
    gap: 3vw 0;
  }

  .step ol li{
    width: 50%;
    border-left: 1px solid #5486a0;
    padding: 5vw;
  }

  .step ol li:last-of-type{
    border-right: none;
  }
  
  .step ol li:first-of-type,
  .step ol li:nth-child(3){
    border-left: none;
  }

  .step ol li h3{
    width: 15vw;
    margin: 0 auto;
    margin-bottom: 3vw;
  }

  .step ol li p{
    font-size: 1.6rem;
    font-weight: 500;
    margin-bottom: 2vw;
  }

  .step ol li p.note{
    margin-bottom: 0;
  }

  .ts{
    background: #e5ecee;
    padding: 15vw 0;
  }

  .ts h2{
    font-size: 3.5rem;
    margin-bottom: 5vw;
  }

  .ts .wbox{
    padding: 8vw;
    background: #FFF;
    border: 1px solid #8d8d8d;
    border-radius: 2vw;
  }

  .ts_list{
    gap: 8vw 0;
    margin-bottom: 8vw;
  }
  
  .ts_list li{
    width: 50%;
    text-align: center;
  }
  
  .ts_list li img{
    width: auto;
    height: 30vw;
  }

  .ts_list figcaption{
    display: block;
    margin-top: 3vw;
    text-align: center;
  }

  .ts .c2{
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
  }

  .ts .c2 dl{
    width: 100%;
  }

  .ts .c2 div{
    width: 100%;
  }

  .ts .c2 dl {
    display: grid;
    grid-template-columns: 15vw 1fr;
    margin-bottom: 5vw;
  }

  .ts dt,
  .ts dd {
    margin: 0;
  }

  .ts dt{
    font-size: 1.8rem;
    color: #004a70;
  }

  .ts dd img{
    width: 40vw;
  }

  .ts .bbox{
    padding: 4vw;
    background: #e5ecee;
    border-radius: 1.5vw;
    margin-bottom: 5vw;
  }

  .ts .bbox h3{
    margin-bottom: 2vw;
  }

  .blnk_btn{
    height: 10vw;
    line-height: 9.8vw;
    padding: 0 5vw;
    border-radius: 10vw;
  }

  .blnk_btn span{
    padding-right: 4vw;
  }

  .blnk_btn span::after{
    width: 3.3vw;
    height: 3.3vw;
  }

  .terms{
    padding: 15vw 5vw;
  }

  .terms h2{
    margin-bottom: 8vw;
  }

  .terms .box{
    padding: 5vw;
    background: #FFF;
    border: 1px solid #8d8d8d;
    border-radius: 2vw;
  }

  .terms .box dl {
    display: block;
  }

  .terms .box dt{
    margin: 0;
    padding: 0;
    padding-bottom: 2vw;
    border-bottom: none;
  }

  .terms .box dd {
    margin: 0;
    padding: 0;
    padding-bottom: 4vw;
    margin-bottom: 4vw;
    border-bottom: 1px solid #c9cbd0;
  }

  .terms .box dt{
    font-size: 1.8rem;
    color: #004a70;
  }

  .terms .box dt:first-of-type,
  .terms .box dd:first-of-type {
    padding-top: 0 !important;
  }

  .terms .box dt:last-of-type,
  .terms .box dd:last-of-type {
    border-bottom: none;
    padding-bottom: 0 !important;
    margin-bottom: 0;
  }
  
  .terms .box dt:last-of-type{
    padding-bottom: 2vw !important;
  }

  .terms .note{
    margin: 5vw 0 10vw;
  }

  .terms .note h3{
    margin-bottom: 2vw;
  }
}

