﻿@media only screen and (max-width: 1400px) {
  html {
    font-size: calc(10*100vw/1400);
  }
}

.main__area {
  /* font-family: minion-pro, '游明朝', 'Yu Mincho', YuMincho, 'Hiragino Mincho Pro', serif; */
  /* font-family: "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "Yu Gothic", "Open Sans", "メイリオ", sans-serif; */
  font-family: "zen-maru-gothic", sans-serif;
  font-optical-sizing: auto;
  font-weight: 700;
  font-style: normal;
  box-sizing: border-box;
  overflow: clip;
  /* background: #000; */
  color: #0A171F;
  /* border-bottom: 1px solid #fff; */
}

.main__area img,
.main__area svg {
  display: block;
  width: 100%;
  height: auto;
  position: relative;
  image-rendering: optimizequality;
}

@media screen and (max-width: 767px) {
  .main__area .pc_only {
    display: none;
  }
}

.main_content {
  position: relative;
  z-index: 3;
  transform: translateZ(1px);
  width: calc(375*(100vw / 375));
  margin: 0 auto;
}
@media screen and (min-width: 768px) {
  .main_content {
    width: 140rem;
  }
}
/************** js **************/
.js-fade.active:not(.mv__tx_wrap) {
  opacity: 1;
  /* transform: translateY(0rem); */
}

.js-fade:not(.mv__tx_wrap) {
  opacity: 0;
  transition: 1.5s;
  /* transform: translateY(5rem); */
}

.js-fade.deray01 {
  transition-delay: 0.3s;
}

.js-fade.deray02 {
  transition-delay: 0.5s;
}

/************** btn **************/
.list_btn {
  position: relative;
  z-index: 2;
  transform: translateZ(1px);
}
.top_btn {
  position: relative;
  z-index: 2;
  transform: translateZ(1px);
  padding-bottom: calc(123 * (100vw / 375));
}

.black_btn01 {
  margin: calc(40 * (100vw / 375)) auto 0;
  width: calc(300 * (100vw / 375));
  height: calc(60 * (100vw / 375));
  font-size: calc(16 * (100vw / 375));
  max-width: 100%;
  max-height: 100%;
  letter-spacing: 0.12em;
  line-height: 1;
  position: relative;
  z-index: 15;
  color: #0A171F;
  border: none;
  background-color: #CFECED;
  border-radius: calc(30 * (100vw / 375));
  font-family: "zen-maru-gothic", sans-serif;
  font-weight: 700;
}
.black_btn02 {
  margin: calc(20 * (100vw / 375)) auto 0;
  width: calc(300 * (100vw / 375));
  height: calc(60 * (100vw / 375));
  font-size: calc(16 * (100vw / 375));
  max-width: 100%;
  max-height: 100%;
  letter-spacing: 0.12em;
  line-height: 1;
  position: relative;
  z-index: 15;
  color: #0A171F;
  border: solid calc(1.5* (100vw / 375)) #CFECED;
  background-color: #ffffff;
  border-radius: calc(30 * (100vw / 375));
  font-family: "zen-maru-gothic", sans-serif;
  font-weight: 700;
}

@media only screen and (min-width: 768px) {
  .top_btn {
    padding-bottom: 10.2rem;
  }

  .black_btn01 {
    margin: 7.1rem auto 0;
    width: 30rem;
    height: 6rem;
    font-size: 1.6rem;
    border-radius: 3rem;
  }
  .black_btn02 {
    margin: 2rem auto 0;
    width: 30rem;
    height: 6rem;
    font-size: 1.6rem;
    border: solid 1.5px #CFECED;
    border-radius: 3rem;
  }
}
/* ===============================================
### PC用デザイン###
=============================================== */
@media screen and (min-width:768px) {

  .main__area {
    margin-top: .6rem;
  }

  .mv__img {
    width: 120rem;
    margin: auto;
  }

  .main__area img {
    width: 100%;
    height: auto;
  }

  .main__area .sp_only {
    display: none;
  }

  /************** btn **************/
  .sec_btn {
    padding-bottom: 10rem;
  }

  .black_btn {
    margin: 7.6rem auto 0;
    width: 30rem;
    height: 6rem;
    font-size: 1.6rem;
    max-width: 100%;
    max-height: 100%;
    font-weight: 500;
    /* letter-spacing: 0.05em; */
    line-height: 1;
    position: relative;
    z-index: 15;
    color: var(--white);
    border-radius: 0.8rem;
  }
}

/* パンくず 追加スタイル PC */
@media only screen and (min-width: 768px) {
  .breadcrumb__list {
    padding-bottom: 1.6rem;
  }
}

.sticky_wrap {
  position: sticky;
  top: 10rem;
}


/* ===============================================
* mv__tx_wrap *
=============================================== */
.mv__tx_wrap {
  padding: calc(56 * (100vw / 375)) 0 0;
  text-align: center;
}

.mv__tx_wrap .mv__text {
  line-height: 2;
  font-size: calc(14 * (100vw / 375));
  letter-spacing: 0.08em;
}

@media screen and (min-width: 768px) {
  .mv__tx_wrap {
    padding: 5.3rem 0 0;
  }
  .mv__tx_wrap .mv__text {
    font-size: 1.5rem;
    line-height: 2.4;
  }
}

/* ===============================================
* sec01 *
=============================================== */

.sec01 {
  margin-top: calc(56*(100vw / 375));
  background-color: #CFECED;
}
.sec01 .sec_block01 {
  width: calc(375*(100vw / 375));
  margin: 0 auto;
  padding-top: calc(0*(100vw / 375));
}
.sec01 .sec_warp {
  width: calc(345*(100vw / 375));
  margin: 0 auto;
  margin-top: calc(120 * (100vw / 375));
  display: flex;
  justify-content: space-between;
  flex-direction: column;
}
.sec01 .sec_block02 {
  width: calc(250*(100vw / 375));
  position: relative;
}
.sec01 .sec_block02 .sec_block_img04 {
  position: absolute;
  width: calc(160 * (100vw / 375));
  top: calc(-80 * (100vw / 375));
  left: calc(185 * (100vw / 375));
  z-index: 5;
}
.sec01 .sec_block03 {
  width: calc(220 * (100vw / 375));
  margin-top: calc(41 * (100vw / 375));
  margin-left: calc(125 * (100vw / 375));
}
@media screen and (min-width: 768px) {
  .sec01 {
    margin-top: 5.2rem;
  }
  .sec01 .sec_block01 {
    width: 79.6rem;
    margin: 0 auto;
    padding-top: 8rem;
  }
  .sec01 .sec_warp {
    width: 115rem;
    margin-top: 8rem;
    margin-left: 15rem;
    flex-direction: row;
    row-gap: 8rem;
  }
  .sec01 .sec_block02 {
    width: 55rem;
  }
  .sec01 .sec_block02 .sec_block_img04 {
    width: 40rem;
    top: 98.7rem;
    left: 10.2rem;
  }
  .sec01 .sec_block03 {
    width: 52rem;
    margin-top: 43rem;
    margin-left: 0;
  }
}

/* ===============================================
* sec02 *
=============================================== */

.sec02 {
  padding-top: calc(30 * (100vw / 375));
  background-color: #CFECED;
}
.sec02 .sec_block01 {
  width: calc(375*(100vw / 375));
  margin: 0 auto;
}
.sec02 .sec_warp {
  width: calc(345*(100vw / 375));
  margin: 0 auto;
  margin-top: calc(45 * (100vw / 375));
  display: flex;
  justify-content: space-between;
  flex-direction: column;
  position: relative;
}
.sec02 .sec_block02 {
  width: calc(220*(100vw / 375));
}
.sec02 .sec_block03 {
  position: absolute;
  width: calc(220 * (100vw / 375));
  top: calc(224 * (100vw / 375));
  left: calc(125 * (100vw / 375));
  z-index: 5;
}
.sec02 .sec__tax {
  margin-top: calc(263 * (100vw / 375));
}
.sec02 .sec_block04 {
  width: calc(375 * (100vw / 375));
  margin-top: calc(42 * (100vw / 375));
  padding-bottom: calc(30 * (100vw / 375));
}
@media screen and (min-width: 768px) {
  .sec02 {
    padding-top: 38.6rem;
  }
  .sec02 .sec_block01 {
    width: 100%;
  }
  .sec02 .sec_warp {
    width: 100rem;
    margin: 0 auto;
    margin-top: 0rem;
  }
  .sec02 .sec_block02 {
    width: 100%;
    display: flex;
    justify-content: space-between;
  }
  .sec02 .sec_block_img02 {
    width: 52rem;
  }
  .sec02 .sec_block03 {
    width: 52rem;
    top: 47rem;
    left: 48rem;
  }
  .sec02 .sec__tax {
    margin-top: 19.8rem;
    width: 38.7rem;
  }
  .sec02 .sec__tax a .price {
    padding-left: 3.9rem;
  }
  .sec02 .sec_block04 {
    width: 100%;
    margin-top: 47rem;
    padding-bottom: 9.6rem;
  }
}

/* ===============================================
* sec03 *
=============================================== */

.sec03 {
  margin-top: calc(64 * (100vw / 375));
}
.sec03 .sec_block_txt {
  width: calc(375*(100vw / 375));
  margin: 0 auto;
  text-align: center;
  letter-spacing: 0.08em;
}
.sec03 .sec_title {
  font-size: calc(24*(100vw / 375));
  color: #2F719D;
}
.sec03 .sec_lead {
  font-size: calc(14*(100vw / 375));
  color: #0A171F;
  margin-top: calc(25 * (100vw / 375));
}
.sec03 .sec_warp {
  width: calc(345*(100vw / 375));
  margin: 0 auto;
  margin-top: calc(32 * (100vw / 375));
  display: flex;
  justify-content: space-between;
  flex-direction: column;
}
.sec03 .sec_block02 {
  width: calc(345*(100vw / 375));
}
.sec03 .sec_block03 {
  width: calc(345 * (100vw / 375));
  margin-top: calc(42 * (100vw / 375));
}
.sec03 .img_lead {
  margin-top: calc(13 * (100vw / 375));
  font-size: calc(14 * (100vw / 375));
  color: #0A171F;
  position: relative;
  text-align: center;
  padding-left: calc(24 * (100vw / 375));
}
.sec03 .img_lead::before {
  content: "";
  position: absolute;
  left: calc(107 * (100vw / 375));
  top: 50%;
  transform: translateY(-50%);
  width: calc(20*(100vw / 375));
  height: calc(20*(100vw / 375));
  border-radius: 50%;
  background-color: #0A171F;
}
.sec03 .sec_block04 {
  width: calc(345 * (100vw / 375));
  margin: 0 auto;
  margin-top: calc(40 * (100vw / 375));
}
@media screen and (min-width: 768px) {
  .sec03 {
    margin-top: 8.5rem;
  }
  .sec03 .sec_block_txt {
    width: 55rem;
  }
  .sec03 .sec_title {
    font-size: 3rem;
  }
  .sec03 .sec_lead {
    font-size: 1.6rem;
    margin-top: 4.8rem;
  }
  .sec03 .sec_warp {
    width: 110rem;
    margin: 0 auto;
    margin-top: 5.2rem;
    flex-direction: row;
    row-gap: 4rem;
  }
  .sec03 .sec_block02 {
    width: 50rem;
  }
  .sec03 .sec_block03 {
    width: 57rem;
    margin-top: 6.7rem;
  }
  .sec03 .img_lead {
    margin-top: 1.7rem;
    font-size: 1.6rem;
    text-align: left;
    padding-left: 20.7rem;
  }
  .sec03 .img_lead::before {
    content: "";
    position: absolute;
    left: 17.4rem;
    top: 50%;
    transform: translateY(-50%);
    width: 2.4rem;
    height: 2.4rem;
    border-radius: 50%;
    background-color: #0A171F;
  }
  .sec03 .sec_block04 {
    width: 110rem;
    margin: 0 auto;
    margin-top: 4.5rem;
  }
}

/* ===============================================
* sec04 *
=============================================== */

.sec04 {
  margin-top: calc(40 * (100vw / 375));
}
.sec04 .sec_block01 {
  width: calc(345*(100vw / 375));
  margin: 0 auto;
}
.sec04 .sec_warp {
  width: calc(345*(100vw / 375));
  margin: 0 auto;
  margin-top: calc(30 * (100vw / 375));
  display: flex;
  justify-content: space-between;
  flex-direction: column;
}
.sec04 .sec_block02 {
  width: calc(345*(100vw / 375));
}
.sec04 .sec_block03 {
  width: calc(345 * (100vw / 375));
  margin-top: calc(30 * (100vw / 375));
}
.sec04 .sec_block_img04 {
  width: calc(192 * (100vw / 375));
  margin-top: calc(20 * (100vw / 375));
  margin-left: calc(153 * (100vw / 375));
}

@media screen and (min-width: 768px) {
  .sec04 {
    margin-top: 4rem;
  }
  .sec04 .sec_block01 {
    width: 75rem;
  }
  .sec04 .sec_warp {
    width: 110rem;
    margin: 0 auto;
    margin-top: 4rem;
    display: flex;
    justify-content: space-between;
    flex-direction: row;
    row-gap: 3rem;
  }
  .sec04 .sec_block02 {
    width: 53.5rem;
  }
  .sec04 .sec_block03 {
    width: 53.5rem;
    margin-top: 0;
  }
  .sec04 .sec_block_img04 {
    width: 22.4rem;
    margin-top: 0.9rem;
    margin-left: 31.1rem;
  }
}

.sec__tax {
  margin-top: calc(39 * (100vw / 375));
  width: calc(255 * (100vw / 375));
  padding-left: calc(47 * (100vw / 375));
}

.sec__tax a {
  text-align: center;
  font-size: calc(15*(100vw / 375));
  line-height: 1.6;
  letter-spacing: 0.08em;
  color: #0A171F;
  white-space: nowrap;
}

.sec__tax a .price {
  position: relative;
  display: inline-block;
  font-size: calc(14 * (100vw / 375));
  line-height: 1;
  padding-left: calc(26 * (100vw / 375));
  padding-right: calc(89 * (100vw / 375));
  margin-top: calc(22 * (100vw / 375));
}

.sec__tax .price::before {
  content: "";
  position: absolute;
  width: calc(74 * (100vw / 375));
  height: calc(28 * (100vw / 375));
  background: url(../img/buy_btn_sp.png) center / contain no-repeat;
  top: calc(-7 * (100vw / 375));
  right: calc(10 * (100vw / 375));
}

@media screen and (min-width: 768px) {
  .sec__tax {
    margin-top: 2.9rem;
    width: 31rem;
    padding-left: 0;
  }

  .sec__tax a {
    font-size: 1.8rem;
  }

  .sec__tax a .price {
    font-size: 1.6rem;
    padding-right: 8.9rem;
    margin-top: 2.1rem;
    padding-left: 0;
  }

  .sec__tax .price::before {
    width: 8rem;
    height: 3rem;
    background: url(../img/buy_btn_pc.png) center / contain no-repeat;
    top: -0.7rem;
    right: 0.4rem;
  }
}