@charset "UTF-8";
/*
	##### Loun9ine TOPページ専用 SP版 #####
	/index/css/top_sp.css
*/




/* [scroll------animation] 非表示 */
.scroll-down-box {
  display: none;
}




/* header 関連 (override) */
.header-main .inner {
  position: relative;
}
.header-logo .logo-02 {
  display: none
}




/* MV関連
=============================*/
.fv-area {
  display: flex;
  justify-content: center;
  position: fixed;
  top: calc(70/768*100vw);
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  height: calc(100vh - 9.114583333333332vw);
  padding: 0 30px;
  overflow: hidden;
  z-index: -1;
}
.fv-area .logo-01 {
  display: none;
  width: 75px;
  height: 109px;
  position: absolute;
  top: 40px;
  left: 70px;
  z-index: +1;
}
@media (max-width: 640px) {
  .fv-area .logo-01 {
    width: calc(75/640*100vw);
    height: calc(109/640*100vw);
    position: absolute;
    top: calc(40/640*100vw);
    left: calc(60/640*100vw);
  }
}
.fv-area .slide-area {
  position: relative;
  height: calc(100vh - 9.114583333333332vw);
  width: 100%;
  overflow: hidden;
  margin: 0 auto;
}
@media (max-width: 640px) {
  .fv-area {
    top: calc(86/640*100vw);
    height: calc(100vh - 13.4375vw);
    padding: 0 calc(20/640*100vw)
  }
  .fv-area .slide-area {
    height: calc(100vh - 13.4375vw);
  }
}
.fv-area .slider img {
  object-fit: cover;
}




/* ページ全体を被うマスク
=============================*/
.overlay-area {
  position: relative;
  box-sizing: content-box;
  display: block;
  margin-top: 100vh;
  background-color: var(--bg-color)
}
.overlay-area::before {
  content: '';
  display: block;
  position: absolute;
  background: url(/img/img-wave-bg.svg) no-repeat center center / cover
}
@media (min-width: 641px) {
  .overlay-area::before {
    width: 342px;
    height: 64px;
    top: -63px;
    left: 23px
  }
}
@media (max-width: 640px) {
  .overlay-area {
    margin-top: 95vh;
  }
  .overlay-area::before {
    width: calc(342/640*100vw);
    height: calc(64/640*100vw);
    top: calc(-63/640*100vw);
    left: calc(17/640*100vw)
  }
}




/* section 関連 */
.sec {
  position: relative;
  width: 100%;
}
.sec-title-2,
.sec-title,
.jp-title {
  font-family: 'Noto Serif JP', serif
}
.sec-title-2 .en-txt,
.sec-title .en-txt {
  font-size: 46px;
  font-weight: 400;
  letter-spacing: 0.035em;
}
.sec-title-2 .jp-txt,
.sec-title .jp-txt {
  font-size: 18px;
  font-weight: 500;
  letter-spacing: 0.2em;
  margin-top: 36px
}
.sec-title-2 {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  margin-bottom: 40px
}
.sec-title-2 .jp-txt {
  display: inline-block
}
.sec-title-2::after {
  content: '';
  display: block;
  width: 1px;
  height: 80px;
  background-color: var(--light-color);
  margin-top: 40px
}
.sec-title-2 .en-txt + br {
  display: none;
}
@media (max-width: 640px) {
  .sec-title-2 .en-txt,
  .sec-title .en-txt {
    font-size: calc(46/640*100vw)
  }
  .sec-title-2 .jp-txt,
  .sec-title .jp-txt {
    font-size: calc(22/640*100vw);
    margin-top: calc(36/640*100vw)
  }
  .sec-title-2 {
    margin: calc(40/640*100vw) auto;
  }
  .sec-title-2::after {
    height: calc(80/640*100vw);
    margin-top: calc(36/640*100vw)
  }
}
.action.sec-title::before,
.action.sec-title::after,
.action.sec-title-2::after {
  transform: scaleY(0);
  transform-origin: top;
  transition: transform .7s cubic-bezier(.97, 0, .73, 1) 1s
}
.action.sec-title::before {
  transition-delay: 0s
}
.action.start.sec-title::before,
.action.start.sec-title::after,
.action.start.sec-title-2::after {
  transform: scaleY(1)
}




/* NEWS & TOPICS */
.news {
  padding: 120px 30px 120px;
}
.news .sec-title {
  position: absolute;
  left: 30px;
  top: 50px;
}
.news .sec-title .en-txt {
  font-size: 40px;
}
.news .btn-box {
  position: absolute;
  right: 30px;
  bottom: 0;
}
@media (max-width: 640px) {
  .sec.news {
    padding: calc(120/640*100vw) calc(30/640*100vw) calc(140/640*100vw);
  }
  .news .sec-title {
    position: absolute;
    left: calc(20/640*100vw);
    top: calc(50/640*100vw);
  }
  .news .sec-title .en-txt {
    font-size: calc(42/640*100vw);
  }
  .news .btn-box {
    position: absolute;
    right: calc(20/640*100vw);
    bottom: calc(50/640*100vw);
  }
}
.news-blck,
.news .cols {
  flex-direction: column
}
.news .cols {
  position: relative;
  padding-bottom: 50px;
  margin-bottom: 60px;
}
.news .jp-title {
  font-size: 18px;
  font-weight: 500;
  letter-spacing: 0.145em;
}
.news .topics-col {
  margin-top: 50px;
}
.news .topics-col > li {
  margin-bottom: 3.25em
}
.news .topics-col li > dl {
  flex-direction: column
}
.news .cat-date {
  margin-bottom: 18px;
}
.news .cat-date span {
  white-space: nowrap;
  display: inline-block
}
.news .cat {
  font-size: 14px;
  font-weight: normal;
  letter-spacing: 0.14em;
  color: var(--light-color);
  white-space: nowrap;
  margin-right: 2em;
}
.news .date {
  white-space: nowrap;
  width: 7.5em;
  font-size: 15px;
  font-weight: 500;
}
.news .topic {
  font-size: 15px;
  line-height: 1.75;
}
@media (max-width: 640px) {
  .news .cols {
    padding-bottom: calc(80/640*100vw);
    margin-bottom: calc(50/640*100vw);
  }
  .news .jp-title {
    font-size: calc(22/640*100vw);
  }
  .news .topics-col {
    margin-top: calc(70/640*100vw);
  }
  .news .topics-col > li {
    margin-bottom: 2.25em
  }
  .news .cat-date {
    margin-bottom: .75em;
  }
  .news .cat {
    font-size: calc(20/640*100vw);
  }
  .news .date {
    font-size: calc(22/640*100vw);
  }
  .news .topic {
    font-size: calc(26/640*100vw);
  }
}
.news .contents-link-box .sub-title {
  font-size: 21px;
  letter-spacing: 0.035em;
  font-weight: 500;
  margin-right: 1em
}
.news .contents-link-box .blck {
  width: 540px
}
.news .contents-list a {
  white-space: nowrap
}
@media (max-width: 640px) {
  .news .contents-link-box {
    flex-direction: column
  }
  .news .contents-link-box .sub-title {
    font-size: calc(30/640*100vw);
  }
  .news .contents-link-box .blck {
    width: 100%;
    margin-top: calc(30/640*100vw)
  }
  .news .contents-list a {
    height: calc(156/640*100vw);
  }
}
@media (min-width: 641px) {
  .news .contents-list a {
    height: 70px;
  }
  .news .contents-list a br {
    display: none
  }
}




/* CONCEPT */
.concept *.start {
  animation-delay: .8s
}
.concept {
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 698px;
  padding: 90px 0 120px;
  background: rgba(0, 0, 0, .65) url(/img/img-concept-bg_tb.jpg) no-repeat center center / cover;
  background-blend-mode: darken
}
.concept .inner {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  color: #fff
}
.concept .logo {
  display: block;
  width: 50px;
  height: 73px;
  margin-bottom: 30px;
}
.concept .sec-title::after {
  content: '';
  display: block;
  width: 1px;
  height: 80px;
  background-color: var(--light-color);
  margin: 20px auto 27px;
}
.concept .lead {
  font-weight: 400;
  text-align: center;
}
.concept .lead span {
  display: inline-block
}
.concept .lead .line-01 {
  font-size: 30px;
  font-weight: 400;
  letter-spacing: 0.2em;
  margin-bottom: 36px
}
.concept .lead .line-02 {
  font-size: 38px;
  font-weight: 400;
  line-height: 1.3;
  margin-bottom: 50px;
}
.concept .des {
  font-size: 18px;
  font-weight: 400;
  line-height: 2;
}
@media (max-width: 640px) {
  .concept {
    min-height: auto;
    padding: calc(120/640*100vw) 0;
    background: rgba(0, 0, 0, .65) url(/img/img-concept-bg_sp.jpg) no-repeat center center / cover;
    background-blend-mode: darken
  }
  .concept .logo {
    width: calc(50/640*100vw);
    height: calc(73/940*100vw);
    margin-bottom: calc(36/640*100vw);
  }
  .concept .sec-title::after {
    height: calc(80/640*100vw);
    margin: calc(20/640*100vw) auto calc(40/640*100vw);
  }
  .concept .lead .line-01 {
    font-size: calc(30/640*100vw);
    margin-bottom: calc(36/640*100vw)
  }
  .concept .lead .line-02 {
    font-size: calc(40/640*100vw);
    margin-bottom: calc(55/640*100vw);
    line-height: 1.5
  }
  .concept .des {
    font-size: calc(26/640*100vw);
    width: calc(580/640*100vw);
    text-align: center;
  }
  .concept .des br {
    display: none
  }
}




/* ABOUT */
.about {
  position: relative;
  padding: 150px 30px 50px;
  z-index: 0;
}
.about::before {
  content: '';
  display: block;
  background-color: var(--bg2-color);
  width: 35.93vw;
  height: calc(100% - 224px);
  position: absolute;
  top: 0;
  right: 0;
  z-index: -1;
  transform-origin: top right;
  transform: scaleX(0);
  transition: transform 1s cubic-bezier(.51, 0, .21, 1.03)
}
.about.start::before {
  transform: scaleX(1);
}
.about .sec-title {
  position: relative;
  display: block;
  padding-left: 30px;
  padding-bottom: 36px;
  min-height: 140px;
  line-height: 1.1
}
.about .sec-title::before {
  position: absolute;
  left: 0;
  top: 0;
  content: '';
  display: block;
  height: 100%;
  border-left: 1px solid var(--light-color);
}
.about .sec-title .jp-txt {
  display: inline-block;
}
.about .cols {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center
}
.about .chart {
  width: 100%;
  max-width: 635px;
  height: auto
}
.about .slide-area {
  width: 100%;
  margin-top: calc(68/768*100vw);
  margin-bottom: calc(40/768*100vw);
}
@media (max-width: 640px) {
  .about {
    padding: calc(150/640*100vw) calc(30/640*100vw) 0;
  }
  .about::before {
    height: calc(100% - calc(245/640*100vw));
  }
  .about .sec-title {
    padding-left: calc(30/640*100vw);
    min-height: calc(140/640*100vw);
    padding-bottom: calc(36/640*100vw)
  }
}




/*FEATURE*/
.sec.feature {
  padding: 70px 30px 150px;
}
.feature-list {
  width: 100%;
  margin: 0 auto;
  flex-wrap: wrap
}
.feature-list::after {
  content: '';
  display: block;
}
.feature-list .card,
.feature-list::after {
  flex: 0 1 calc(353/708*100%);
}
.feature-list .card {
  margin-bottom: 2px;
  will-change: contents;
}
.feature-list .card .area {
  display: block;
  width: 100%;
  height: 100%;
  background-position: center 58px;
  background-repeat: no-repeat;
  background-size: auto 68px;
  padding: 160px 53px 30px;
  background-color: #fff;
}
.feature-list .card .ttl {
  font-size: 21px;
  font-weight: 500;
  line-height: 1.3;
  text-align: center;
  margin-bottom: 24px;
}
.feature-list .card .ttl::after {
  content: '';
  display: block;
  width: 20px;
  border-bottom: 1px solid var(--light-color);
  margin-top: 24px;
  margin-left: 50%;
  transform: translateX(-50%)
}
.feature-list .card .des {
  font-size: 15px;
  line-height: 2;
  margin-bottom: 30px;
}
.feature-list .card .btn-view-line {
  margin: 0 auto
}
@media (max-width: 640px) {
  .sec.feature {
    padding: calc(70/640*100vw) calc(30/640*100vw) calc(180/640*100vw);
  }
  .feature-list .card {
    flex: 0 1 100%
  }
  .feature-list::after {
    display: none
  }
  .feature-list .card .area {
    background-position: center calc(60/640*100vw);
    background-size: auto calc(92/640*100vw);
    padding: calc(192/640*100vw) calc(55/640*100vw) calc(60/640*100vw);
  }
  .feature-list .card .ttl {
    font-size: calc(32/640*100vw);
    margin-bottom: calc(21/640*100vw);
  }
  .feature-list .card .ttl::after {
    width: calc(21/640*100vw);
    margin-top: calc(21/640*100vw);
  }
  .feature-list .card .des {
    font-size: calc(24/640*100vw);
    margin-bottom: 10vw;
    text-align: justify
  }
}
.card-01 .area {
  background-image: url(/img/ico-feature-01.svg)
}
.card-02 .area {
  background-image: url(/img/ico-feature-02.svg)
}
.card-03 .area {
  background-image: url(/img/ico-feature-03.svg)
}
.card-04 .area {
  background-image: url(/img/ico-feature-04.svg)
}
.card-05 .area {
  background-image: url(/img/ico-feature-05.svg)
}
.card-06 .area {
  background-image: url(/img/ico-feature-06.svg)
}
.card-07 .area {
  background-image: url(/img/ico-feature-07.svg)
}
.card-08 .area {
  background-image: url(/img/ico-feature-08.svg)
}




/* MOVIES */
.movies {
  z-index: 0;
  padding-top: 150px;
  padding-bottom: 66px;
}
.movies::before {
  content: '';
  display: block;
  background-color: var(--bg2-color);
  background-image: url(/img/img-flip-wave-bg.svg);
  background-repeat: no-repeat;
  background-position: right -6px bottom -2px;
  width: calc(50vw - 41px);
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
  transform-origin: top left;
  transform: scaleX(0);
  transition: transform 1s cubic-bezier(.51, 0, .21, 1.03)
}
.movies.start::before {
  transform: scaleX(1);
}
.movies-area {
  width: 100%;
  padding: 0 30px;
}
.movies-area .btn-view-line {
  margin-top: 50px;
}
.movies-box {
  display: flex;
  flex-direction: column;
}
.movies-box iframe {
  position: absolute;
  width: 100%;
  height: 100%;
  aspect-ratio: 16/9;
  top: 0;
  left: 0;
}
.movie-l {
  position: relative;
  padding-top: calc(398/768*100vw);
  background-color: azure
}
.movie-r {
  display: flex;
  justify-content: space-between;
  margin-top: 2px;
  background-color: #c8c8c8
}
.movie-r1,
.movie-r2 {
  position: relative;
  width: calc(50% - 1px);
  padding-top: calc(199/768*100vw);
  background-color: darkseagreen
}
@media (max-width: 640px) {
  .movies {
    padding-top: calc(100/640*100vw);
    padding-bottom: calc(90/640*100vw)
  }
  .movies::before {
    background-position: right calc(-6/640*100vw) bottom calc(-2/640*100vw);
    width: calc(50vw - calc(50/640*100vw));
  }
  .movies-area {
    padding: 0 calc(30/640*100vw);
  }
  .movies-area .btn-view-line {
    margin-top: calc(50/640*100vw);
  }
  .movie-l {
    padding-top: calc(326/640*100vw);
    background-color: azure
  }
  .movie-r {
    margin-top: calc(2/640*100vw);
  }
  .movie-r1,
  .movie-r2 {
    width: calc(50% - 0.15625vw);
    padding-top: calc(163/640*100vw);
  }
}




/* LOCATIONS */
.sec.locations {
  padding-top: 28px
}
.locations-box {
  width: 100%;
  overflow: hidden;
  flex-wrap: wrap
}
.locations-box li {
  display: block;
  flex: 0 1 calc(50% - 1px);
  height: calc(270/768*100vw);
  margin-bottom: 2px
}
@media (max-width: 640px) {
  .locations-box li {
    flex: 0 1 calc(50% - .5px);
    height: calc(270/640*100vw);
    margin-bottom: 1px
  }
}
.locations-box li a {
  display: block;
  width: 100%;
  height: 100%;
  position: relative;
  will-change: contents;
  overflow: hidden;
}
.locations-box li a .fit-img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
}
.locations-box .location-detail {
  position: absolute;
  top: 0;
  left: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, .6);
  color: #fff;
  opacity: 0;
}




/* LESSON */
.sec.lesson {
  padding-top: 170px;
}
.lesson-area {
  display: block;
  width: calc(100% - 30px);
  padding-top: calc(438/768*100vw);
  background: url(/img/img-lesson_pc.jpg) no-repeat center top / auto calc(438/768*100vw)
}
.lesson-detail {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-items: flex-end;
  width: 100%;
  padding: calc(50/768*100vw) 0 0 calc(30/768*100vw);
  background-color: var(--bg-color)
}
.lesson-des {
  font-size: 18px;
  line-height: 2;
  margin-bottom: 35px
}
@media (max-width: 640px) {
  .sec.lesson {
    padding-top: calc(150/640*100vw)
  }
  .lesson-area {
    padding-top: calc(355/640*100vw)
  }
  .lesson-des {
    font-size: calc(26/640*100vw);
    margin-bottom: 0
  }
}




/* LESSON PRO */
.professional {
  padding-top: 157px;
}
.professional .inner {
  position: relative;
  padding-bottom: 110px;
  z-index: 0;
}
.professional .inner::before {
  content: '';
  display: block;
  background: var(--bg2-color) url(/img/img-wave-bg.svg) no-repeat left -6px bottom -2px / calc(368/768*100vw) auto;
  width: 48vw;
  height: calc(100% - calc(109/768*100vw));
  position: absolute;
  top: calc(109/768*100vw);
  right: 0;
  z-index: -1;
  transform-origin: top right;
  transform: scaleX(0);
  transition: transform 1.3s cubic-bezier(.51, 0, .21, 1.03)
}
.professional .inner.start::before {
  transform: scaleX(1);
}
@media (max-width: 640px) {
  .professional {
    padding-top: calc(130/640*100vw);
  }
  .professional .inner {
    padding-bottom: calc(140/640*100vw);
  }
  .professional .inner::before {
    height: calc(100% - calc(77/640*100vw));
    top: calc(77/640*100vw);
  }
}




/* HOW TO FLOW */
.howto {
  padding: 100px 30px;
  z-index: 0;
}
@media (max-width: 640px) {
  .howto {
    padding: calc(100/640*100vw) calc(30/640*100vw) calc(110/640*100vw)
  }
}
.howto::before {
  content: '';
  display: block;
  width: 100%;
  height: 41%;
  background-color: var(--bg2-color);
  position: absolute;
  left: 0;
  bottom: 0;
  z-index: -1;
  transform-origin: top right;
  transform: scaleX(0);
  transition: transform 1.3s cubic-bezier(.51, 0, .21, 1.03)
}
.howto.start::before {
  transform: scaleX(1);
}
.howto .steps-box {
  flex-direction: column;
}
.howto .step {
  border: 1px solid transparent;
  background-clip: content-box
}
.howto .step dl {
  width: 100%;
  height: 100%;
  flex-direction: column;
  justify-content: flex-start;
  padding: 40px 0
}
.howto .step dt,
.howto .step dd {
  padding-left: 162px
}
.howto .step dt {
  position: relative;
  flex-direction: column;
  padding-bottom: 20px
}
.howto .step dt::after {
  content: '';
  display: block;
  height: 1px;
  width: 20px;
  background-color: var(--light-color);
  margin-top: 20px
}
.howto .step .ttl1 {
  display: inline-block;
  font-size: 18px;
  letter-spacing: 0.14em;
  margin-bottom: 30px
}
.howto .step dt::before {
  content: '';
  width: 162px;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
  background-repeat: no-repeat;
  background-position: center bottom;
  background-size: auto 82px
}
.howto .step1 {
  background-color: #f6f6f5
}
.howto .step1 dt::before {
  background-image: url(/img/ico-flow-01.svg)
}
.howto .step2 {
  background-color: #fafaf9;
}
.howto .step2 dt::before {
  background-image: url(/img/ico-flow-02.svg)
}
.howto .step3 {
  background-color: #fff
}
.howto .step3 dt::before {
  background-image: url(/img/ico-flow-03.svg)
}
.howto .step .ttl1 .num {
  font-size: 38px;
  font-weight: 500
}
.howto .step .ttl2 {
  font-size: 21px;
  font-weight: 500;
  letter-spacing: 0.2em;
  line-height: 1.3
}
.howto .step .des {
  display: block;
  padding: 0 3em 0 162px;
  font-size: 16px;
  letter-spacing: 0.06em;
  line-height: 2;
}
@media (max-width: 640px) {
  .howto .step {
    position: relative;
  }
  /*
  .howto .step::before {
    position: absolute;
    top: 0;
    left: 0;
    content: '';
    display: block;
    width: calc(150/640*100vw);
    height: 100%;
    background-repeat: no-repeat;
    background-position: center center;
    background-size: auto calc(110/640*100vw)
  }
  */
  .howto .step .img-sp {
    position: absolute;
    top: 0;
    left: 0;
    content: '';
    display: block;
    width: calc(150/640*100vw);
    height: 100%;
    background-repeat: no-repeat;
    background-position: center center;
    background-size: auto calc(110/640*100vw)
  }
  .howto .step .img-pc {display: none;}
  .howto .step dl {
    padding: calc(50/640*100vw) 0
  }
  .howto .step dt,
  .howto .step dd {
    padding-left: calc(150/640*100vw)
  }
  .howto .step dt {
    padding-bottom: calc(28/640*100vw)
  }
  .howto .step dt::after {
    width: calc(20/640*100vw);
    margin-top: calc(20/640*100vw)
  }
  .howto .step .ttl1 {
    font-size: calc(24/640*100vw);
    margin-bottom: calc(40/640*100vw)
  }
  .howto .step dt::before {
    display: none;
  }
  .howto .step1::before {
    background-image: url(/img/ico-flow-01.svg)
  }
  .howto .step2::before {
    background-image: url(/img/ico-flow-02.svg)
  }
  .howto .step3::before {
    background-image: url(/img/ico-flow-03.svg)
  }
  .howto .step .ttl1 .num {
    font-size: calc(46/640*100vw);
  }
  .howto .step .ttl2 {
    font-size: calc(32/640*100vw)
  }
  .howto .step .des {
    padding: 0 1em 0 calc(150/640*100vw);
    font-size: calc(26/640*100vw)
  }
}




/* PRICE & TRIAL RESERVATION */
.price .col {
  flex: 0 1 50%;
  height: calc(250/768*100vw)
}
.price .col a {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100%;
  width: 100%;
  color: #fff;
  overflow: hidden;
  position: relative;
}
.price .col .ttl span {
  display: block;
  text-align: center
}
.price .col .ttl .en-txt {
  font-size: calc(40/768*100vw);
  font-weight: 400;
  line-height: 1.2;
  margin-bottom: calc(20/768*100vw);
}
.price .col .ttl .jp-txt {
  font-size: calc(18/768*100vw);
  font-weight: 400;
}
.price .left-col a {
  background: rgba(0, 0, 0, .75) url(/img/img-price_pc.jpg) no-repeat center center / cover;
  background-blend-mode: multiply
}
.price .right-col a {
  background: rgba(123, 114, 81, 1) url(/img/img-trial_pc.jpg) no-repeat center center / cover;
  background-blend-mode: multiply
}
.price .arrow {
  position: absolute;
  display: block;
  width: calc(60/768*100vw);
  height: calc(60/768*100vw);
  right: 0;
  bottom: 0;
}
.price .arrow::before {
  content: "";
  width: calc(25/768*100vw);
  height: 1px;
  background-color: #fff;
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
}
.price .arrow::after {
  content: "";
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 2.5px 0 2.5px 4.3px;
  border-color: transparent transparent transparent #fff;
  position: absolute;
  left: calc(25/768*100vw);
  top: 50%;
  transform: translateY(-50%);
}
@media (max-width: 640px) {
  .price .col .ttl .en-txt {
    font-size: calc(36/768*100vw);
  }
  .price .col .ttl .jp-txt {
    font-size: calc(22/768*100vw);
  }
  .price .arrow::before {
    width: calc(25/640*100vw)
  }
  .price .arrow::after {
    border-width: calc(7/640*100vw) 0 calc(7/640*100vw) calc(9/640*100vw);
  }
}




/* MEDIA COVERAGE */
#top .media {
  padding: 150px 30px 90px;
}
.media .inner {
  position: relative;
  flex-direction: column;
}
.media .sec-title {
  position: relative;
  display: block;
  padding-left: 30px;
  padding-bottom: 36px;
  min-height: 140px;
  line-height: 1.1
}
.media .sec-title::before {
  position: absolute;
  left: 0;
  top: 0;
  content: '';
  display: block;
  height: 100%;
  border-left: 1px solid var(--light-color);
}
.media .sec-title .jp-txt {
  display: inline-block;
}
.media .slide-area {
  margin-top: 40px;
  margin-bottom: 50px;
  overflow: hidden;
}
.media .btn-box {
  align-self: flex-end
}
@media (max-width: 640px) {
  #top .media {
    padding: calc(150/640*100vw) calc(30/640*100vw) calc(160/640*100vw)
  }
  .media .sec-title {
    padding-left: calc(30/640*100vw);
    min-height: calc(140/640*100vw);
    padding-bottom: calc(36/640*100vw)
  }
  .media .slide-area {
    margin-top: 0;
    margin-bottom: calc(75/640*100vw);
  }
}




/* FAQ */
.faq {
  padding: 120px 30px 200px;
  z-index: 0
}
.faq::before {
  content: '';
  display: block;
  background-color: var(--bg2-color);
  width: calc(50vw - 92px);
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
  transform-origin: top left;
  transform: scaleX(0);
  transition: transform 1.3s cubic-bezier(.51, 0, .21, 1.03)
}
.faq.start::before {
  transform: scaleX(1);
}
.faq .inner {
  width: 100%;
  margin: 0 auto
}
.faq-area .details {
  margin-bottom: 2px;
  will-change: contents
}
.faq-area .summary {
  position: relative;
  display: block;
  padding: 35px 90px 35px 52px;
  background-color: #fff;
  font-family: 'Noto Serif JP';
  font-size: 18px;
  font-weight: normal;
  line-height: 1.75;
  transition: background-color .3s ease
}
.faq-area .summary::before {
  content: 'Q. ';
  font-size: 22px;
  margin-left: -1.25em
}
.faq-area .summary::after {
  content: '+';
  position: absolute;
  right: 40px;
  top: 50%;
  transform: translateY(-50%);
  line-height: 1;
}
.faq-area .summary.open::after {
  content: '–'
}
.faq-area .summary + .ans {
  display: none;
  background-color: #fff;
  font-size: 16px;
  line-height: 2;
  padding: 35px 90px 35px 52px;
  transition: background-color .3s ease
}
.faq-area .summary.open,
.faq-area .summary.open + .ans {
  background-color: #fafaf8
}
@media (max-width: 640px) {
  .faq {
    padding: calc(90/640*100vw) calc(30/640*100vw) calc(150/640*100vw);
  }
  .faq::before {
    width: 42.19vw;
  }
  .faq-area .summary {
    padding: calc(35/640*100vw) calc(80/640*100vw);
    font-size: calc(26/640*100vw)
  }
  .faq-area .summary::before {
    font-size: calc(28/640*100vw);
  }
  .faq-area .summary::after {
    right: calc(30/640*100vw);
  }
  .faq-area .summary + .ans {
    font-size: calc(22/640*100vw);
    padding: calc(35/640*100vw) calc(80/640*100vw);
  }
}