@charset "utf-8";
html,body,div,span,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,abbr,address,cite,code,del,dfn,em,img,ins,kbd,q,samp,small,strong,sub,sup,var,b,i,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,figcaption,figure,footer,header,hgroup,menu,nav,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;outline:0;font-size:100%;vertical-align:baseline;background:transparent;}
body{line-height:1;}
article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block;}
nav ul{list-style:none;}blockquote,q{quotes:none;}blockquote:before,blockquote:after,q:before,q:after{content:'';content:none;}a{margin:0;padding:0;font-size:100%;vertical-align:baseline;background:transparent;}ins{background-color:#ff9;color:#000;text-decoration:none;}mark{background-color:#ff9;color:#000;font-style:italic;font-weight:bold;}del{text-decoration:line-through;}abbr[title],dfn[title]{border-bottom:1px dotted;cursor:help;}table{border-collapse:collapse;border-spacing:0;}hr{display:block;height:1px;border:0;border-top:1px solid #ccc;margin:1em 0;padding:0;}input,select{vertical-align:middle;}
img{vertical-align:bottom;}
ol,ul {list-style:none;}

:root {
  --ggs: 0.8;
}
@media only screen and (max-width: 896px) {
  :root {
    --ggs: 0.5;
  }
}
.index-section{
  padding: 0;
}

/*----------------------------
font-family: 'Roboto Slab', serif;
----------------------------*/
.grecaptcha-badge {
  display: none;
}

html, body {
  font-family: "Yu Gothic", "游ゴシック", YuGothic, "游ゴシック体", "ヒラギノ角ゴ Pro W3", "メイリオ", sans-serif;
  /* font-family:dnp-shuei-anti-std,"Yu Gothic", "游ゴシック", YuGothic, "游ゴシック体", "ヒラギノ角ゴ Pro W3", "メイリオ", sans-serif; */
  font-weight: 500;
  font-size: 20px;
  line-height: 1.6;
  font-weight : 500;
  letter-spacing: 0em;
  font-style: normal;
  color: #ff0033;
  background: #e6e8e6;
  -webkit-font-smoothing: antialiased;
  -webkit-text-size-adjust: 100%;
  min-height: 100%;
  word-wrap: break-word;
  font-feature-settings: "palt";
}

body.lang-jp .lang_jp{
  display: block;
}
body.lang-jp .lang_en{
  display: none;
}
body.lang-en .lang_jp{
  display: none;
}
body.lang-en .lang_en{
  display: block;
}

.pc_only {
  display: block;
}

.sp_only {
  display: none;
}

@media only screen and (max-width: 896px) {
  .pc_only {
    display: none;
  }
  .sp_only {
    display: block;
  }
  body.page {
    padding-top: 0vw;
  }
}

img {
  width: 100%;
  height: auto;
}

::selection {
  background: #333333;
  color: #fff;
}

::-moz-selection {
  background: #ccc;
  color: #fff;
}


/*----------------------------------------------------
 link
--------------------------------------------------- */

a:link, a:visited, a:active {
  color: #050505;
  text-decoration: none;
  -webkit-tap-highlight-color: transparent;
}

a:hover {
  text-decoration: none;
}


/*----------------------------------------------------
 slick
--------------------------------------------------- */

:focus {
  outline: none;
}

.slick-slider {
  position: relative;
  display: block;
  box-sizing: border-box;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -webkit-touch-callout: none;
  -khtml-user-select: none;
  -ms-touch-action: pan-y;
  touch-action: pan-y;
  -webkit-tap-highlight-color: transparent;
}

.slick-list {
  position: relative;
  display: block;
  overflow: hidden;
  margin: 0;
  padding: 0;
}

.slick-list:focus {
  outline: none;
}

.slick-list.dragging {
  cursor: pointer;
  cursor: hand;
}

.slick-slider .slick-track, .slick-slider .slick-list {
  -webkit-transform: translate3d(0, 0, 0);
  -moz-transform: translate3d(0, 0, 0);
  -ms-transform: translate3d(0, 0, 0);
  -o-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
}

.slick-track {
  position: relative;
  top: 0;
  left: 0;
  display: block;
}

.slick-track:before, .slick-track:after {
  display: table;
  content: '';
}

.slick-track:after {
  clear: both;
}

.slick-loading .slick-track {
  visibility: hidden;
}

.slick-slide {
  display: none;
  float: left;
  height: 100%;
  min-height: 1px;
}

[dir='rtl'] .slick-slide {
  float: right;
}

.slick-slide img {
  display: block;
}

.slick-slide.slick-loading img {
  display: none;
}

.slick-slide.dragging img {
  pointer-events: none;
}

.slick-initialized .slick-slide {
  display: block;
}

.slick-loading .slick-slide {
  visibility: hidden;
}

.slick-vertical .slick-slide {
  display: block;
  height: auto;
  border: 1px solid transparent;
}

.slick-arrow.slick-hidden {
  display: none;
}

.slick-prev {
  display: block;
  position: absolute;
  top: 50%;
  z-index: 10;
  border: none;
  text-indent: -9999px;
  cursor: pointer;
  -webkit-transition: all 0.5s 0s ease;
  transition: all 0.5s 0s ease;
  width: 40px;
  height: 40px;
  left: 50%;
  margin-left: -540px;
}


.slick-next {
  display: block;
  position: absolute;
  top: 50%;
  z-index: 10;
  border: none;
  text-indent: -9999px;
  cursor: pointer;
  -webkit-transition: all 0.5s 0s ease;
  transition: all 0.5s 0s ease;
  width: 40px;
  height: 40px;
  left: 50%;
  margin-left: 430px;
}


.slide .slick-disabled {
  opacity: 0.2;
}

@media only screen and (max-width: 896px) {
  .slide .slick-prev:hover {
    opacity: 1;
  }
  .slide .slick-next:hover {
    opacity: 1;
  }
  .slick-prev {
    top: 50%;
    left: 15px;
    margin-top: -15px;
    background-size: 30px auto;
    width: 30px;
    height: 30px;
    z-index: 10;
  }
  .slick-next {
    top: 50%;
    right: 15px;
    margin-top: -15px;
    background-size: 30px auto;
    width: 30px;
    height: 30px;
    z-index: 10;
  }
  .slick-prev:hover, .slick-next:hover {
    -webkit-transform: scale3d(1, 1, 1) translate(0px, 0px) rotate(0deg);
    -moz-transform: scale3d(1, 1, 1) translate(0px, 0px) rotate(0deg);
    -ms-transform: scale3d(1, 1, 1) translate(0px, 0px) rotate(0deg);
    -o-transform: scale3d(1, 1, 1) translate(0px, 0px) rotate(0deg);
    transform: scale3d(1, 1, 1) translate(0px, 0px) rotate(0deg);
  }
}


/*----------------------------------------------------
  .scrollview
--------------------------------------------------- */

.scrollview {
  transition: all 0.8s 0s ease;
  opacity: 0;
  transform: scale(1, 1) translate(-0%, 20px);
}

.scrollview.view {
  opacity: 1;
  transform: scale(1, 1) translate(-0%, 0%);
}


/*----------------------------------------------------
 loading
--------------------------------------------------- */

#loading {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 9;
  background:#e6e8e6;
}
#loading.out {
  opacity: 0;
  transition: all 0.6s 0.2s linear;
}

#loading .inner {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 172px;
  margin-top: -16px;
  margin-left: -81px;
}
#loading .inner .p{
  width: 12px;
}
#loading .inner .m{
  position: absolute;
  top: 0;
  left: 14px;
  display: flex;
}
#loading .inner .m li{
  width: 14px;
  position: relative;
  margin-left: -2px;
  display: none;
}
#loading .inner .m li.view{
  display: block;
}
#loading .inner .m li:first-child{
  width: 15px;
  display: block;
}
#loading .inner .dot{
  position: absolute;
  bottom: 0;
  right: 60px;
  width: 32px;
  width: 82px;
  height: 5px;
  background: url(../img/loading_dot.svg) repeat-x right bottom;
  background-size: 33px auto;
}
#loading .inner .num{
  position: absolute;
  top: 2px;
  right: 0px;
  font-size: 34px;
  font-family: 'Roboto Slab', serif;
  font-weight: 300;
  line-height: 1;
  letter-spacing: 0;
}
#loading .inner .num .par{
  font-size: 20px;
  margin-left: -7px;
}
#loading .inner .h{
  position: absolute;
  top: 0;
  right: 40px;
  display: none;
  width: 16px;
}
#loading .inner .h.view{
  display: block;
}
@media only screen and (max-width: 896px) {

  #loading .inner {
    left: 50%;
  }
}
#loading.out .FormatLoader{
  opacity: 0;
  transition: all 0.3s 0.0s linear;
}

body.loadStart #loading .inner {
  opacity: 1;
  transition: all 0.4s 0.0s ease;
}

body.pageLoad #loading .inner {
  transition: all 0.4s 0.0s ease;
}

.FormatLoader, .FormatLoader:before, .FormatLoader:after {
  border-radius: 50%;
}

.FormatLoader {
  color: #ccc;
  font-size: 10px;
  text-indent: -99999em;
  margin: 0px auto;
  position: relative;
  width: 10em;
  height: 10em;
  box-shadow: inset 0 0 0 0.2em;
  -webkit-transform: translateZ(0);
  -ms-transform: translateZ(0);
  transform: translateZ(0);
  -webkit-animation: load2 2s infinite ease;
  animation: load2 2s infinite ease;
}

.FormatLoader:before, .FormatLoader:after {
  position: absolute;
  content: '';
}

.FormatLoader:before {
  width: 5.2em;
  height: 10.2em;
  background: #FFF;
  border-radius: 10.2em 0 0 10.2em;
  top: -0.1em;
  left: -0.1em;
  -webkit-transform-origin: 5.1em 5.1em;
  transform-origin: 5.1em 5.1em;
  -webkit-animation: load2 2s infinite ease 1.5s;
  animation: load2 2s infinite ease 1.5s;
}

.FormatLoader:after {
  width: 5.2em;
  height: 10.2em;
  background: #FFF;
  border-radius: 0 10.2em 10.2em 0;
  top: -0.1em;
  left: 4.9em;
  -webkit-transform-origin: 0.1em 5.1em;
  transform-origin: 0.1em 5.1em;
  -webkit-animation: load2 2s infinite ease;
  animation: load2 2s infinite ease;
}

@-webkit-keyframes load2 {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}

@keyframes load2 {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}

/*----------------------------------------------------
  .block_side
--------------------------------------------------- */

.block_side {
  position: fixed;
  top: 50%;
  right: -50px;
  z-index: 111;
  transform: rotate(90deg);
}
.block_side ul{
  display: flex;
  flex-direction: row; /* row row-reverse column */
  justify-content: space-between; /* flex-start  center  space-between */
  align-items: flex-start; /* flex-start  center  */
}
.block_side ul li{
}
.block_side ul li a{
  display: block;
  font-size: 14px;
  font-family: 'Roboto Slab', serif;
  color: #ff0033;
  font-weight: 500;
  padding: 0 10px;
  position: relative;
}
.block_side ul li a::after{
  content: "";
  position: absolute;
  bottom: -10px;
  left: 50%;
  width: 6px;
  height: 6px;
  border-radius: 6px;
  background: #ff0033;
  margin-left: -3px;
  opacity: 0;
  transition: all 0.6s 0s ease;
}
.block_side ul li a:hover:after,
.block_side ul li a.active:after{
  opacity: 1;
}
@media only screen and (max-width: 896px) {
  .block_side{
    display: none;
  }
}
/*----------------------------------------------------
  .block_header
--------------------------------------------------- */

.block_header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 111;
  height: 48px;
  border-bottom: 1px #ff0033 solid;
  /* opacity: 0; */
  transform:  translate(-0%, -110%);
}
body.pageLoad .block_header {
  transform:  translate(-0%, 0%);
  transition: all 0.6s 0.4s ease;
}
body.onScroll .block_header {
  opacity: 1;
}
.block_header .logo{
  position: absolute;
  top: 5px;
  left: 50%;
  width: 62px;
  margin-left: -31px;
}
.block_header .logo a{
  display: block;
  transition: all 0.4s 0s ease;
}
.block_header .logo a:hover{
  opacity: 0.5;
}
.block_header ul.lang{
  position: absolute;
  top: 22px;
  left: 35px;
  width: 62px;
  letter-spacing: 0;
}
.block_header ul.lang li{
  float: left;
  position: relative;
}
.block_header ul.lang li:first-child{
  padding-right: 17px;
  position: relative;
}
.block_header ul.lang li:first-child:after{
  content: "/";
  position: absolute;
  top: 0;
  right: 6px;
  font-family: 'Roboto Slab', serif;
  color: #ff0033;
  font-weight: 700;
  font-size: 10px;
}
.block_header ul.lang li a{
  display: block;
  font-family: 'Roboto Slab', serif;
  color: #ff0033;
  font-weight: 700;
  font-size: 10px;
  transition: all 0.4s 0s ease;
}
.block_header ul.lang li a:hover{
  opacity: 0.5;
}
.block_header .sns{
  position: absolute;
  top: 5px;
  right: 35px;
  width: 16px;
  transition: all 0.4s 0s ease;
}
.block_header .sns:hover{
  opacity: 0.5;
}
@media only screen and (max-width: 896px) {
  .block_header {
    position: fixed;
    top: 0;
    left: auto;
    right: 0;
    width: auto;
    z-index: 111;
    height: 100%;
    border-bottom: none;
    /* opacity: 0; */
    transform:  translate(-0%, -0%);
  }
  body.pageLoad .block_header {
  }
  body.onScroll .block_header {
    opacity: 1;
  }
  .block_header .logo{
    position: absolute;
    top: 20px;
    left: auto;
    right: 13px;
    width: 61px;
    margin-left: 0px;
  }
  .block_header .logo a{
  }
  .block_header .logo a:hover{
  }
  .block_header ul.lang{
    display: none;
  }
  .block_header .sns{
    position: fixed;
    top: auto;
    bottom: 20px;
    right: 15px;
    width: 24px;
  }
  .block_header .sns:hover{
  }
}

/*----------------------------------------------------
  .block_sp_menu
--------------------------------------------------- */
.block_sp_menu{
  display: none;
}
.block_sp_menu{
  display: block;
  position: fixed;
  top: 0;
  left: 0px;
  width: 100%;
  height: 100%;
  overflow-y: auto;
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch;
  background:rgba(255, 255, 255, 0.85);
  background-size: cover;
  z-index: 110;
  opacity: 0;
  visibility: hidden;
  transition: all 0.4s 0s ease;
}
body.menu_open .block_sp_menu{
  opacity: 1;
  visibility: visible;
}
.block_sp_menu .inner{
  position: absolute;
  top: 50%;
  left: 0;
  width: 100%;
  transform: translate(0%, -50%);
}
.block_sp_menu ul.menu{
  overflow: hidden;
}
.block_sp_menu ul.menu > li{
  margin-bottom: 20px;
}
.block_sp_menu ul.menu > li > a{
  position: relative;
  display: block;
  text-align: center;
}
.block_sp_menu ul.menu > li > a:hover{
}
.block_sp_menu ul.menu > li > a span{
  display: inline-block;
  font-size: 18px;
  font-family: 'Roboto Slab', serif;
  color: #ff0033;
  font-weight: 500;
  padding: 0 10px;
  position: relative;
}
.block_sp_menu ul.menu > li > a:hover span{
}
.block_sp_menu ul.menu > li > a span:before{
  content: "";
  position: absolute;
  top: 50%;
  left: -10px;
  margin-top: -3px;
  width: 6px;
  height: 6px;
  border-radius: 6px;
  background: #ff0033;
  transition: all 0.4s 0s ease;
  opacity: 0;
}
.block_sp_menu ul.menu > li > a.active span:before{
  opacity: 1;
}

.block_sp_menu ul.lang{
  text-align: center;
  letter-spacing: -0.4em;
}
.block_sp_menu ul.lang li{
  display: inline-block;
  letter-spacing: 0;
  position: relative;
}
.block_sp_menu ul.lang li:first-child{
  padding-right: 17px;
  position: relative;
}
.block_sp_menu ul.lang li:first-child:after{
  content: "/";
  position: absolute;
  top: -2px;
  right: 6px;
  font-family: 'Roboto Slab', serif;
  color: #ff0033;
  font-weight: 700;
  font-size: 12px;
}
.block_sp_menu ul.lang li a{
  display: block;
  font-family: 'Roboto Slab', serif;
  color: #ff0033;
  font-weight: 700;
  font-size: 10px;
  transition: all 0.4s 0s ease;
}
@media only screen and (max-width: 896px) {

}

/*----------------------------------------------------
  .sp_menu
--------------------------------------------------- */
.block_sp_btn a {
  display: none;
}


@media only screen and (max-width: 896px) {


  .block_sp_btn a {
    position: fixed;
    display: block;
    top: 50%;
    right: 0px;
    width: 45px;
    height: 45px;
    margin-top: -22px;
    z-index: 1100;
    transition: all 0.4s 0s ease;
  }
  body.menu_open .block_sp_btn a{
    opacity: 1;
  }
  .block_sp_btn a .wrap {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 45px;
    height: 45px;
    margin-top: -22px;
    margin-left: -22px;
    transition: all 0.4s 0s ease;
  }
  .block_sp_btn a span.l1 {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 1px;
    height: 45px;
    margin-top: -22px;
    margin-left: -6px;
    background: #ff0033;
    transform-origin: center center;
    animation: btn07-bar01 .75s forwards;
  }
  .block_sp_btn a span.l2 {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 1px;
    height: 45px;
    margin-top: -22px;
    margin-left: 6px;
    background: #ff0033;
    transform-origin: center center;
    animation: btn07-bar02 .75s forwards;
  }
  body.menu_open .block_sp_btn a span.l1 {
    animation: active-btn07-bar01 .75s forwards;
  }
  body.menu_open .block_sp_btn a span.l2 {
    animation: active-btn07-bar02 .75s forwards;
  }
  
  @keyframes btn07-bar01 {
    0% {
      transform: translateX(6px) rotate(20deg);
    }
    50% {
      transform: translateX(6px) rotate(0);
    }
    100% {
      transform: translateX(0) rotate(0);
    }
  }
  @keyframes active-btn07-bar01 {
    0% {
      transform: translateX(0) rotate(0);
    }
    50% {
      transform: translateX(6px) rotate(0);
    }
    100% {
      transform: translateX(6px) rotate(20deg);
    }
  }
  
  @keyframes btn07-bar02 {
    0% {
      transform: translateX(-6px) rotate(-20deg);
    }
    50% {
      transform: translateX(-6px) rotate(0);
    }
    100% {
      transform: translateX(0) rotate(0);
    }
  }
  @keyframes active-btn07-bar02 {
    0% {
      transform: translateX(0) rotate(0);
    }
    50% {
      transform: translateX(-6px) rotate(0);
    }
    100% {
      transform: translateX(-6px) rotate(-20deg);
    }
  }
    
}

/*----------------------------------------------------
  .wrapper
--------------------------------------------------- */

.wrapper {
  overflow: hidden;
  position: relative;
}
body.menu_open .wrapper {
  -ms-filter: blur(2px);
  filter: blur(2px);
}
@media only screen and (max-width: 896px) {
  .wrapper {
    overflow: hidden;
    position: relative;
  }
}

/*----------------------------------------------------
 block_mainvisual
--------------------------------------------------- */
.block_mainvisual {
  position: relative;
  z-index: 2;
  height: 100vh;
}
.block_mainvisual .copy{
  position: absolute;
  top: 108px;
  left: 35px;
  font-size: 42px;
  letter-spacing: 0;
  font-weight: 300;
  line-height: 58px;
  font-family: 'Roboto Slab', serif;
}
#animation_container{
  position: absolute;
  bottom: 0;
  left: 0;
}
@media only screen and (max-width: 896px) {
  .block_mainvisual {
    height: auto;
    overflow: hidden;
  }
  .block_mainvisual .copy{
    position: absolute;
    top: 88px;
    left: auto;
    right: 15px;
    text-align: right;
    font-size: 32px;
    line-height: 48px;
  }
  
  #animation_container{
    mix-blend-mode: difference;
    transform-origin: left top;
    position: absolute;
    top: 0;
    bottom: auto;
    left: 0;
    transform: translateX(210px) rotate(90deg) scale(0.8);
  }
}
/*----------------------------------------------------
 block_about
--------------------------------------------------- */
.block_about {
  position: relative;
  z-index: 2;
  height: 100vh;
}
.block_about .area{
  position: absolute;
  top: 50%;
  left:50%;
  width: 392px;
  margin-left: -186px;
  transform: translate(-0%, -50%);
}
.block_about .area .title{
  text-align: center;
  font-size: 18px;
  font-family: 'Roboto Slab', serif;
  font-weight: 500;
  margin-bottom:50px;
}
.block_about .area p{
  text-align: left;
  font-size: 13px;
  line-height: 23px;
  margin-bottom: 23px;
}
.block_about .area .textarea{
  padding-bottom: 20px;
}
.block_about .area dl{
  overflow: hidden;
  position: relative;
  display: flex;
  flex-direction: row; /* row row-reverse column */
  justify-content: space-between; /* flex-start  center  space-between */
  align-items: flex-start; /* flex-start  center  */
  padding-bottom: 8px;
}
.block_about .area dl:last-child{
  padding-bottom: 0;
}
.block_about .area dl dt{
  width: 40%;
  position: relative;
  font-size: 11px;
}
.block_about .area .box{
  position: relative;
}
.block_about .area .box:before{
  content: "";
  position: absolute;
  top: 0;
  left: 30%;
  width: 1px;
  height: 100%;
  background: #ff0033;
}
.block_about .area dl dd{
  width: 60%;
  font-size: 11px;
}
@media only screen and (max-width: 896px) {
  .block_about {
    height: auto;
  }
  .block_about .area{
    position: absolute;
    top: 50%;
    left:15px;
    width : -webkit-calc(100% - 40px) ;
    width : calc(100% - 40px) ;
    margin-left: 0;
    transform: translate(-0%, -50%);
  }
  .block_about .area .title{
    text-align: left;
    font-size: 18px;
    margin-bottom:40px;
  }
  .block_about .area p{
    font-size: 11px;
    line-height: 26px;
    margin-bottom: 12px;
  }
  .block_about .area dl{
  }
  .block_about .area dl:last-child{
  }
  .block_about .area dl dt{
    font-size: 11px;
  }
  .block_about .area .box{
  }
  .block_about .area .box:before{
  }
  .block_about .area dl dd{
    font-size: 11px;
  }
  .block_about .area .textarea{
    padding-right: 20vw;
  }

}