@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100;400;500;700&family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap");


@media screen and (min-width: 768px) {
  header {
    justify-content: space-between;
    padding: 24px 24px;
  }
  .wrapper{
    max-width: 1000px;
  }
}
header {
  justify-content: space-between;
}
header .logobox{
  display: flex;
  align-items: center;
}
header #logo{
  position: static;
}
header .hd-title{
  font-size: 12px;
  color: #707070;
  padding: 0 0.5rem;
}

@media screen and (min-width: 768px) {
  header .hd-title{
    font-size: 20px;
    padding: 0 1rem;
  }
}

header a.btn-gradient.reserve {
  min-width: 100px;
}

main{
  font-weight: 400;
  font-size: 16px;
}
main .kv{
  background: url(../img/bg-kv.jpg) center center no-repeat;
  background-size: cover;
  padding: 24px 16px 32px;
  height: auto;
}

.kv-header{
  text-align: center;
  margin-bottom: 16px;
}

.kv-gallery{
  position: relative;
  margin-bottom: 40px;
}

@media screen and (min-width: 768px) {
  main .kv{
    padding: 48px 32px 64px;
    height: auto;
  }
  .kv-header{
    margin-bottom: 32px;
  }
  .kv-header img{
    width: 480px;
  }
  .kv-gallery{
    max-width: 800px;
    margin: 40px auto 60px;
  }
}

main .kv .kv-swiper{
  width: 60vw;
  height: 60vw;
  margin: 0 auto;
  max-width: 640px;
  max-height: 640px;
}

/* 前へ次への矢印カスタマイズ */
.swiper-button-prev,
.swiper-button-next {
  height: 32px;
  width: 32px;
}

.swiper-button-prev {
  left: 0;
}
.swiper-button-next {
  right: 0;
}
/* 前へ次への矢印カスタマイズ */
.swiper-button-prev:after,
.swiper-button-next:after {
  background-repeat: no-repeat;
  background-size: contain;
  content: "";
  height: 50px;
  margin: auto;
  width: 50px;
}
/* 前への矢印カスタマイズ */
.swiper-button-prev:after {
  background-image: url(../img/slide-arrow-prev.svg);
}
/* 次への矢印カスタマイズ */
.swiper-button-next:after {
  background-image: url(../img/slide-arrow-next.svg);
}
/* 画像サイズ調整 */
.swiper-slide img {
  height: auto;
  width: 100%;
}

.kv-text{
  text-align: center;
  position: relative;
  background-color: #fff;
  border-radius: 12px;
  padding: 0;
}

.kv-text .item01{
  display: inline-block;
  color: #fff;
  background-color: #E9677A;
  font-weight: 700;
  padding: 4px 24px 3px;
  border-radius: 100vh;
  margin-top: -16px;
}
.kv-text .item02{
  font-weight: 500;
  color: #E9677A;
  padding: 16px;
}
.kv-text .item02 .text01{}
.kv-text .item02 .text02{}
.kv-text .item02 .text02 strong{
  font-size: 48px;
  line-height: 1.2;
}
.kv-text .item02 .text02 span{
  font-size: 20px;
  line-height: 1.2;
}
.kv-text .item02 .text02 small{
  font-size: 12px;
  line-height: 1.2;
}
.kv-text .item02 .text03{
  font-size: 18px;
  padding: 8px 0;
}
.kv-text .item02 .text03 strong{
  display: block;
}
.kv-text .item02 .text03 strong .number{
  font-size: 28px;
  line-height: 1;
}
.kv-text .item02 .text04{
  font-size: 14px;
  color: #43AFB2;
}

@media screen and (min-width: 768px) {
  .kv-text{
    max-width: 980px;
    margin: 0 auto;
  }
  .kv-text .item01{
    font-size: 20px;
    padding: 8px 48px 6px;
    margin-top: -20px;
  }
  .kv-text .item02{
    padding: 32px;
  }
  .kv-text .item02 .text01{
    font-size: 20px;
  }
  .kv-text .item02 .text02{}
  .kv-text .item02 .text02 strong{
    font-size: 60px;
    line-height: 1.2;
  }
  .kv-text .item02 .text02 span{
    font-size: 28px;
    line-height: 1.2;
  }
  .kv-text .item02 .text02 small{
    font-size: 20px;
    line-height: 1.2;
  }
  .kv-text .item02 .text03{
    font-size: 24px;
    padding: 16px 0;
  }
  .kv-text .item02 .text03 strong{
    display: inline-block;
  }
  .kv-text .item02 .text03 strong .number{
    font-size: 36px;
    line-height: 1;
  }
  .kv-text .item02 .text04{
    font-size: 22px;
  }
}

#price.price{
  background-image: none;
  background-color: #F8CED6;
  padding: 32px 0 40px;
}
#price::after{
  display: none;
}
.section-header h2{
  margin-bottom: 24px;
}
.section-header h2 .title{
  display: block;
  font-size: 24px;
  font-weight: 500;
  text-align: center;
  color: #707070;
}

@media screen and (min-width: 768px) {
  #price.price{
    background-image: none;
    background-color: #F8CED6;
    padding: 64px 0 80px;
  }
  .section-header h2{
    margin-bottom: 48px;
  }
  .section-header h2 .title{
    font-size: 32px;
  }
}

.ls-price li{
  color: #707070;
  background-color: #fff;
  margin-bottom: 8px;
  border-radius: 12px;
  padding: 16px;
  text-align: center;
}

.ls-price li span{
  font-weight: 400;
}

.ls-price li small{
  font-size: 14px;
  font-weight: 400;
}

.ls-price li .text{
  color: #E9677A;
  font-size: 16px;
  font-weight: 700;
  padding: 8px 0;
}

.ls-price li .text strong{
  font-size: 32px;
  font-weight: 700;
  padding: 0 0.25rem 0 0.25rem;
  line-height: 1.2;
}

.ls-price li .text span{
  font-weight: 700;
}

.ls-price li .text small{
  font-size: 12px;
  font-weight: 700;
}

@media screen and (min-width: 768px) {
  .ls-price li{
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 16px;
    padding: 32px;
  }
  .ls-price li h3 span{
    font-size: 24px;
  }
  .ls-price li h3 small{
    font-size: 20px;
  }

  .ls-price li p{
    font-size: 20px;
    text-align: left;
  }
  
  .ls-price li .text{
    font-size: 24px;
    padding: 12px 0;
  }

  .ls-price li .text strong{
    font-size: 40px;
  }
  
  .ls-price li .text span{
  }
  
  .ls-price li .text small{
    font-size: 20px;
  }
}

@media screen and (min-width: 1024px) {
  .ls-price li .text br{
    display: none;
  }
}

.notes{
  font-size: 14px;
  color: #707070;
  margin: 16px 0;
}

.notes li{
  display: flex;
}

.notes .icon{
  width: 1.5rem;
}

@media screen and (min-width: 768px) {
  .notes{
    font-size: 16px;
  }
}

main a.btn-gradient{
  font-size: 20px;
  min-width: none;
  max-width: 480px;
  width: 100%;
}

#point{
  background-color: #D6EBE9;
  margin: 0;
  padding: 32px 0 40px;
}

#point .list-point{
  margin-top: -16px;
}
#point .list-point li{
  display: flex;
  align-items: flex-start;
  margin: 0;
  padding: 16px 0;
  border-bottom: 2px dotted #8CC2CB;
}

#point .list-point li figure{
  width: 42%;
}

#point .list-point li .data{
  display: block;
}

#point .list-point li .data .icon{
  width: auto;
  height: auto;
  display: inline-block;
  font-size: 14px;
  font-weight: 700;
  color: #fff;
  background-color: #449AAD;
  padding: 6px 16px;
}

#point .list-point li .data .text{
  color: #449AAD;
  padding: 0;
  margin: 0;
  margin-top: 1rem;
  font-family: 500;
}

@media screen and (min-width: 768px) {
  #point{
    padding: 64px 0 80px;
  }
  
  #point .list-point{
    margin-top: -32px;
  }
  #point .list-point li{
    padding: 32px 0;
    border-bottom: 3px dotted #8CC2CB;
    align-items: center;
  }
  
  #point .list-point li figure{
    width: 38%;
  }
  
  #point .list-point li .data{
    padding: 0px 32px 0;
  }
  
  #point .list-point li .data .icon{
    font-size: 18px;
    padding: 12px 32px 10px;
  }
  
  #point .list-point li .data .text{
    font-size: 28px;
  }
}

.tips{
  padding: 48px 0 0 0;
}
.tips h2{
  font-size: 20px;
  font-weight: 500;
  text-align: center;
  color: #449AAD;
  line-height: 1;
  margin-bottom: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.tips h2::before{
  display: inline-block;
  width: 30px;
  height: 1px;
  content: "";
  background-color: #449AAD;
  transform: rotate(45deg);
}

.tips h2::after{
  display: inline-block;
  width: 30px;
  height: 1px;
  content: "";
  background-color: #449AAD;
  transform: rotate(-45deg);
}

.tips-list{
  display: flex;
  flex-wrap: wrap;
}

.tips-list li{
  width: 100%;
  text-align: center;
  padding: 16px 0;
}

.tips-list li figure{
  width: 70vw;
  margin: 0 auto;
}

.tips-list li .data{
  padding: 16px 0;
  color: #449AAD;
  font-weight: 500;
}

@media screen and (min-width: 768px) {
  .tips{
    padding: 96px 0 0 0;
  }
  .tips h2{
    font-size: 32px;
    margin-bottom: 48px;
  }
  
  .tips h2::before{
    margin-right: 0.5rem;
  }
  
  .tips h2::after{
    margin-left: 0.5rem;
  }
  
  .tips-list{
    display: flex;
    flex-wrap: wrap;
  }
  
  .tips-list li{
    width: 50%;
    text-align: center;
    padding: 32px 0;
  }
  
  .tips-list li figure{
    width: 320px;
    height: 320px;
    margin: 0 auto;
  }
  
  .tips-list li .data{
    font-size: 20px;
    padding: 16px 0;
  }
}

#shop.shop{
  padding: 32px 0 40px;
}

@media screen and (min-width: 768px) {
  #shop.shop{
    padding: 64px 0 80px;
  }
}

#shop .block-shop li .name {
  font-size: 18px;
  font-weight: 400;
  margin: 0 0 10px 0;
}

#shop .block-shop li .root {
  font-size: 14px;
  font-weight: 400;
  margin: 0 0 10px 0;
}

@media screen and (min-width: 768px) {
  #shop .block-shop li{
    width: 50%;
    max-width: 384px;
  }
}