@charset "UTF-8";
/*アニメーション
----------------------------*/
@keyframes border_anime {
  0% {
    width: 0;
  }
  100% {
    width: 100%;
  }
}
/*共通
----------------------------*/
.l-container {
  width: 100%;
  background-color: #e4e4e4;
}

.l-header {
  background-color: #fff;
  position: relative;
  z-index: 2;
}

.l-footer {
  padding: 0;
  background-color: #fff;
  position: relative;
  z-index: 2;
}

.pc-footer {
  margin: 0;
}

#feature {
  width: 100%;
  margin: 0 auto;
  color: #555555;
  box-sizing: border-box;
  text-align: center;
  font-family: "Yu Gothic", "游ゴシック", "YuGothic", "游ゴシック体", "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN", Meiryo, メイリオ, Helvetica, Arial, sans-serif;
  font-weight: 500;
  font-style: normal;
  font-feature-settings: "palt";
  position: relative;
  padding-bottom: calc(120 * (100vw / 1400));
}
@media screen and (min-width: 1400px) {
  #feature {
    padding-bottom: 120px;
  }
}
#feature * {
  padding: 0;
  margin: 0;
  box-sizing: border-box;
}
#feature a {
  width: 100%;
  height: auto;
  display: block;
  color: #555555;
}
#feature a:hover {
  text-decoration: none;
}
#feature img {
  width: 100%;
  height: auto;
  display: block;
}
#feature figure {
  background-color: #fff;
}
#feature .fadeimg {
  transition: 0.3s;
}
#feature .js_anime.is_fade {
  transition-property: opacity, transform;
  transition-duration: 1.5s;
  opacity: 0;
  transform: translateY(1.5rem);
}
#feature .js_anime.is_show.is_fade {
  opacity: 1;
  transform: translateY(0);
}
#feature .js_anime.is_show.is_line::after {
  animation: border_anime 1.8s ease forwards;
  animation-delay: 0.5s;
}
#feature .inner {
  width: 100%;
  max-width: 1400px;
  margin: 0 auto;
  position: relative;
}

#feature {
  /*メインビジュアル（.hero)
  ----------------------------*/
}
#feature .hero {
  padding-top: calc(100 * (100vw / 1400));
  position: relative;
}
@media screen and (min-width: 1400px) {
  #feature .hero {
    padding-top: 100px;
  }
}
#feature .hero .hero__img {
  width: calc(900 * (100vw / 1400));
  max-width: 900px;
  margin: 0 auto;
}
#feature .hero .hero__logo {
  width: calc(414 * (100vw / 1400));
  max-width: 414px;
  margin: calc(61 * (100vw / 1400)) auto 0;
  transform: translateX(calc(-3 * (100vw / 1400)));
}
@media screen and (min-width: 1400px) {
  #feature .hero .hero__logo {
    margin: 61px auto 0;
    transform: translateX(-3px);
  }
}
#feature .hero .hero__ttl {
  margin-top: calc(21 * (100vw / 1400));
  font-size: calc(20 * (100vw / 1400));
  line-height: 1;
  letter-spacing: 0.11em;
}
@media screen and (min-width: 1400px) {
  #feature .hero .hero__ttl {
    margin-top: 21px;
    font-size: 20px;
  }
}
#feature .hero .hero__txt {
  margin-top: calc(41 * (100vw / 1400));
  font-size: calc(14 * (100vw / 1400));
  line-height: calc(28 * (100vw / 1400));
  letter-spacing: 0.075em;
}
@media screen and (min-width: 1400px) {
  #feature .hero .hero__txt {
    margin-top: 41px;
    font-size: 14px;
    line-height: 28px;
  }
}
#feature .sec .inner {
  width: calc(660 * (100vw / 1400));
  max-width: 660px;
  margin: 0 auto;
  position: relative;
}
#feature .sec .sec__credit {
  position: absolute;
  top: calc(100% + calc(14 * (100vw / 1400)));
}
@media screen and (min-width: 1400px) {
  #feature .sec .sec__credit {
    top: calc(100% + 14px);
  }
}
#feature .sec .sec__credit .sec__creditttl {
  margin-bottom: calc(1 * (100vw / 1400));
  text-align: left;
  font-size: calc(12 * (100vw / 1400));
  line-height: calc(24 * (100vw / 1400));
  letter-spacing: 0.1em;
}
@media screen and (min-width: 1400px) {
  #feature .sec .sec__credit .sec__creditttl {
    margin-bottom: 1px;
    font-size: 12px;
    line-height: 24px;
  }
}
#feature .sec .sec__credit .credit .item {
  width: fit-content;
}
#feature .sec .sec__credit .credit .item .link {
  display: flex;
  justify-content: flex-start;
  flex-wrap: wrap;
}
#feature .sec .sec__credit .credit .item .link span {
  font-size: calc(12 * (100vw / 1400));
  line-height: calc(24 * (100vw / 1400));
  letter-spacing: 0.09em;
}
@media screen and (min-width: 1400px) {
  #feature .sec .sec__credit .credit .item .link span {
    font-size: 12px;
    line-height: 24px;
  }
}
#feature .sec .sec__credit .credit .item .link span.price {
  margin-left: calc(5 * (100vw / 1400));
  letter-spacing: 0.03em;
}
@media screen and (min-width: 1400px) {
  #feature .sec .sec__credit .credit .item .link span.price {
    margin-left: 5px;
  }
}
#feature .sec .sec__flex {
  display: flex;
  justify-content: space-between;
  position: relative;
}
#feature .sec .sec__flex.is_reverse {
  flex-direction: row-reverse;
}
#feature .sec .sec__color {
  position: relative;
}
#feature .sec .sec__color.sec__color01 {
  width: calc(102 * (100vw / 1400));
  max-width: 102px;
}
#feature .sec .sec__color.sec__color02 {
  width: calc(104 * (100vw / 1400));
  max-width: 104px;
}
#feature .sec .sec__img {
  width: calc(320 * (100vw / 1400));
  max-width: 320px;
  position: relative;
}
#feature .sec .sec__ttl {
  position: relative;
}
#feature .sec .sec__ttl.sec__ttl01 {
  width: calc(235 * (100vw / 1400));
  max-width: 235px;
  margin: 0 auto;
}
#feature .sec .sec__ttl.sec__ttl02 p {
  font-family: "jaf-bernina-sans", sans-serif;
  font-weight: 400;
  font-size: calc(20 * (100vw / 1400));
  line-height: 1;
  letter-spacing: 0.13em;
  text-align: left;
}
@media screen and (min-width: 1400px) {
  #feature .sec .sec__ttl.sec__ttl02 p {
    font-size: 20px;
  }
}
#feature .sec .sec__ttl.sec__ttl03 p {
  font-size: calc(18 * (100vw / 1400));
  line-height: 1;
  letter-spacing: 0.145em;
}
@media screen and (min-width: 1400px) {
  #feature .sec .sec__ttl.sec__ttl03 p {
    font-size: 18px;
  }
}
#feature .sec .sec__txt {
  font-size: calc(14 * (100vw / 1400));
  line-height: calc(28 * (100vw / 1400));
  letter-spacing: 0.07em;
  text-align: justify;
}
@media screen and (min-width: 1400px) {
  #feature .sec .sec__txt {
    font-size: 14px;
    line-height: 28px;
  }
}
#feature .sec.sec01 {
  margin-top: calc(94 * (100vw / 1400));
}
@media screen and (min-width: 1400px) {
  #feature .sec.sec01 {
    margin-top: 94px;
  }
}
#feature .sec.sec01 .sec__contents:nth-child(2) {
  width: calc(295 * (100vw / 1400));
  max-width: 295px;
}
#feature .sec.sec01 .sec__txt {
  margin-top: calc(43 * (100vw / 1400));
}
@media screen and (min-width: 1400px) {
  #feature .sec.sec01 .sec__txt {
    margin-top: 43px;
  }
}
#feature .sec.sec02 {
  margin-top: calc(149 * (100vw / 1400));
}
@media screen and (min-width: 1400px) {
  #feature .sec.sec02 {
    margin-top: 149px;
  }
}
#feature .sec.sec02 .sec__ttl::after {
  content: "";
  width: 0;
  height: 1px;
  background-color: #555555;
  position: absolute;
  bottom: calc(-12 * (100vw / 1400));
  left: 0;
}
@media screen and (min-width: 1400px) {
  #feature .sec.sec02 .sec__ttl::after {
    bottom: -12px;
  }
}
#feature .sec.sec02 .sec__img {
  margin-top: calc(52 * (100vw / 1400));
}
@media screen and (min-width: 1400px) {
  #feature .sec.sec02 .sec__img {
    margin-top: 52px;
  }
}
#feature .sec.sec02 .sec__color.sec__color01 {
  margin: calc(35 * (100vw / 1400)) auto 0;
}
@media screen and (min-width: 1400px) {
  #feature .sec.sec02 .sec__color.sec__color01 {
    margin: 35px auto 0;
  }
}
#feature .sec.sec02 .sec__color.sec__color02 {
  margin: calc(34 * (100vw / 1400)) auto 0;
  transform: translateX(calc(-2 * (100vw / 1400)));
}
@media screen and (min-width: 1400px) {
  #feature .sec.sec02 .sec__color.sec__color02 {
    margin: 34px auto 0;
    transform: translateX(-2px);
  }
}
#feature .sec.sec02 .sec__txt {
  margin-top: calc(24 * (100vw / 1400));
}
@media screen and (min-width: 1400px) {
  #feature .sec.sec02 .sec__txt {
    margin-top: 24px;
  }
}
#feature .sec.sec03 {
  margin-top: calc(112 * (100vw / 1400));
}
@media screen and (min-width: 1400px) {
  #feature .sec.sec03 {
    margin-top: 112px;
  }
}
#feature .sec.sec03 .sec__contents:nth-child(1) {
  width: calc(295 * (100vw / 1400));
  max-width: 295px;
}
#feature .sec.sec03 .sec__ttl {
  margin-top: calc(119 * (100vw / 1400));
}
@media screen and (min-width: 1400px) {
  #feature .sec.sec03 .sec__ttl {
    margin-top: 119px;
  }
}
#feature .sec.sec03 .sec__txt {
  margin-top: calc(41 * (100vw / 1400));
}
@media screen and (min-width: 1400px) {
  #feature .sec.sec03 .sec__txt {
    margin-top: 41px;
  }
}
#feature .sec.sec04 {
  margin-top: calc(120 * (100vw / 1400));
}
@media screen and (min-width: 1400px) {
  #feature .sec.sec04 {
    margin-top: 120px;
  }
}
#feature .sec.sec04 .sec__btn {
  width: calc(440 * (100vw / 1400));
  max-width: 440px;
  margin: 0 auto;
  position: relative;
}
