@charset "utf-8";
/*
   HEADER
--------------------------------------------------------------*/
.header{
  background-color: #141825;
  height: 45px;
}
.header-logo img{
  width: 45px;
}
.modal-btn{
  top: 0;
  right: 0;
  width: 75px;
  height: 52px;
  border-bottom-left-radius: 20px;
}

/* ハンバーガーメニュー */
.hamburger{
  width: 35px;
  height: 16px;
}
.hamburger-line{
  width: 35px;
  height: 2px;
}
.hamburger-line > span{
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) rotate(0deg);
  -webkit-transform: translate(-50%, -50%) rotate(0deg);
  width: 35px;
  height: 2px;
  display: block;
  -webkit-transition: all .3s;
  transition: all .3s;
}
.hamburger-line .line-top{
  margin-top: -8px;
}
.hamburger-line .line-bot{
  margin-top: 8px;
}
.hamburger-line .line-top::before,
.hamburger-line .line-bot::before{
  position: absolute;
  right: 6px;
  content:'';
  width: 4px;
  height: 2px;
  background-color: var(--color-fff);
  z-index: 10;
  opacity: 1;
  -webkit-transition: all .8s;
  transition: all .8s;
}
.hamburger-line .line-top::before{
  right: 6px;
}
.hamburger-line .line-bot::before{
  left: 6px;
}
.hamburger-text{
  width: 32px;
  height: 8px;
}
.hamburger-text > span{
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) rotate(0deg);
  -webkit-transform: translate(-50%, -50%) rotate(0deg);
  text-align:justify;
  text-align-last:justify;
  -webkit-transition: all .6s;
  transition: all .6s;
}
.hamburger-text-menu{
  opacity: 1;
}
.hamburger-text-close{
  opacity: 0;
}
.header-modal.active .hamburger-line .line-top::before,
.header-modal.active .hamburger-line .line-bot::before{
  opacity: 0;
}
.header-modal.active .hamburger-line .line-top::before,
.header-modal.active .hamburger-line .line-bot::before{
  opacity: 0;
}
.header-modal.active .hamburger-line{
  background-color: transparent;
}
.header-modal.active .hamburger-line .line-top{
  margin-top: 0;
transform: translate(-50%, -50%) rotate(150deg);
-webkit-transform: translate(-50%, -50%) rotate(150deg);
}
.header-modal.active .hamburger-line .line-bot{
  margin-top: 0;
transform: translate(-50%, -50%) rotate(30deg);
    -webkit-transform: translate(-50%, -50%) rotate(30deg);
}
.header-modal.active .hamburger-text-menu{
  opacity: 0;
}
.header-modal.active .hamburger-text-close{
  opacity: 1;
}
@media (min-width: 768px) {
  .header{
    height: 75px;
  }
  .header-logo img{
    width: 75px;
  }
  .modal-btn{
    width: 110px;
    height: 82px;
    cursor: pointer;
  }
  .hamburger{
    width: 45px;
    height: 26px;
  }
  .hamburger-line{
    width: 45px;
    height: 2px;
  }
  .hamburger-line > span{
    width: 45px;
    height: 2px;
  }
  .hamburger-line .line-top{
    margin-top: -13px;
  }
  .hamburger-line .line-bot{
    margin-top: 13px;
  }
  .hamburger-line .line-top::before,
  .hamburger-line .line-bot::before{
    right: 8px;
    width: 6px;
    height: 2px;
  }
  .hamburger-line .line-top::before{
    right: 8px;
  }
  .hamburger-line .line-bot::before{
    left: 8px;
  }
  .hamburger-text{
    width: 45px;
    height: 14px;
  }
}
@media (min-width: 1024px) {
}
.modal{
  top: 0;
  right: calc(-100% - 1px);
  -webkit-transition: all .6s;
  transition: all .6s;
  width: 100%;
  height: 100vh;
  border-bottom-left-radius: 20px;
  border-top-left-radius: 20px;
}
.header-modal.active .modal{
  right: 0;
}
.cta-item-inner{
  height: 52px;
}
.menu-drawer-nav{
  width: 74.66vw;
}
@media (min-width: 768px) {
  .modal{
    width: 480px;
    right: -481px;
  }
  .header-modal.active .modal{
    right: 0;
  }
  .menu-drawer-nav{
    width: 280px;
    margin-bottom: 45px;
    padding-bottom: 45px;
  }
  .cta-item-inner{
    height: 56px;
  }
  .cta-actions{
    width: 245px;
  }
}
/*
   FOOTER
--------------------------------------------------------------*/
.footer-copy{
  background-color: #141825;
}
@media (min-width: 1024px) {
  .footer-brand img{
    width: 114px;
  }
}
/*
   ANIMATION
--------------------------------------------------------------*/

/* フェードインアニメーション */
.animation.op{
	opacity: 0;
	visibility: hidden;
	-webkit-transition: opacity 1s ease-in;
   transition: opacity 1s ease-in;
}
.animation.op.on{
	visibility: visible;
	opacity: 1;
}

/* 左からフェードインアニメーション */
.animation.move-left{
	opacity: 0;
  transform: translate3d(-40px,0,0);
  transition-duration: 1s, .8s;
  transition-timing-function: ease-in, ease;
  transition-property: opacity, transform;
}
.animation.move-left.on{
	opacity: 1;
  transform: translate3d(0,0,0);
}

/* 下から上へフェードインアニメーション */
.animation.move-bottom{
	opacity: 0;
  transform: translate(0, 40px);
  transition-duration: 1s, .8s;
  transition-timing-function: ease-in, ease;
  transition-property: opacity, transform;
}
.animation.move-bottom.on{
	opacity: 1;
  transform: translate(0, 0);
}

/* 上から下へフェードインアニメーション */
.animation.move-top{
	opacity: 0;
  transform: translate(0, -40px);
  transition-duration: 1s, .8s;
  transition-timing-function: ease-in, ease;
  transition-property: opacity, transform;
}
.animation.move-top.on{
	opacity: 1;
  transform: translate(0, 0);
}

/* マスク表示→画像表示 */
.animation.mask-bg{
	position: relative;
	overflow: hidden;
}
.animation.mask-bg .target-cts{
	position: relative;
	opacity: 0;
  transition-delay: .8s;
  z-index: 0;
}
.animation.mask-bg::before{
	content: '';
	position: absolute;
	background-color: var(--color-base1);
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	z-index: 10;
  transform: translate(100%, 0);
}
.animation.mask-bg.on::before{
	animation: animation-bg  1.6s ease-out forwards;
}
.animation.on.mask-bg .target-cts{
	opacity: 1;
}

@-webkit-keyframes animation-bg {
  0% {
    -webkit-transform: translate(-101%, 0);
            transform: translate(-101%, 0);
    opacity: 0;
  }
  40%,60% {
    opacity: 1;
    -webkit-transform: translate(0%, 0);
            transform: translate(0%, 0);
  }
  100% {
    opacity: 1;
    -webkit-transform: translate(100%, 0);
            transform: translate(100%, 0);
  }
}
@keyframes animation-bg {
  0% {
    -webkit-transform: translate(-101%, 0);
            transform: translate(-101%, 0);
    opacity: 0;
  }
  40%,60% {
    opacity: 1;
    -webkit-transform: translate(0%, 0);
            transform: translate(0%, 0);
  }
  100% {
    opacity: 1;
    -webkit-transform: translate(100%, 0);
            transform: translate(100%, 0);
  }
}

.animation.blur{
	opacity: 0;
  filter: blur(15px);
  transition:
    opacity .5s ease,
    filter .8s ease,
    transform .5s ease;
}
.animation.blur.on{
	opacity: 1;
  filter: blur(0);
}

.marker{
  display:inline;
  padding:0 .15em;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
  background-image: linear-gradient(
    transparent 60%,
    var(--color-base4) 60%,
    var(--color-base4) 100%,
    transparent 100%
  );
  background-repeat:no-repeat;
  background-size:0% 100%;
  background-position:0 0;
  transition: background-size .9s ease;
}

.marker.on{
  background-size: 100% 100%;
}