@charset "utf-8";
/* CSS Document */

/*---------------------------------------------
	webフォント
  ---------------------------------------------*/
@import url('https://fonts.googleapis.com/css2?family=Raleway:wght@500&family=Zen+Kaku+Gothic+New:wght@500&display=swap');

/*---------------------------------------------
	reset
  ---------------------------------------------*/
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font-style: normal;
  font-weight: normal;
  font-size: 100%;
}
li {
  list-style: none;
}
a:active, a:hover,a:link,a:visited {
  outline: 0;
  color: inherit;
}
@-ms-viewport {
  width: auto;
}
@-o-viewport {
  width: device-width;
}
@viewport {
  width: device-width;
}
* {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  -o-box-sizing: border-box;
  -ms-box-sizing: border-box;
  box-sizing: border-box;
}
img {
  max-width: 100%;
  vertical-align: bottom;
  height: auto;
}
table {
  border-collapse: collapse;
  border-spacing: 0;
}
table th, table td {
  word-break: break-all;
}
input[type="submit"] {
  -webkit-appearance: none;
  border-radius: 0;
}
/* -----------------------------------
    common
   ----------------------------------- */
html {
  font-size: 62.5%; /*1rem=10px*/
}
.en{
font-family: 'Raleway', sans-serif;
}

body {
  -webkit-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
  text-size-adjust: 100%;
  font-size: 1.6rem;
  color: #1a1a1a;
  line-height: 2;
  word-break:break-all; 
  text-justify:inter-ideograph;
  text-justify:inter-character;
  word-wrap:break-word;
  overflow-wrap:break-word;
  font-feature-settings: "palt";
  transition: all 1.5s;
font-family:'Zen Kaku Gothic New', "游ゴシック", YuGothic, "メイリオ", Meiryo, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
}


a { text-decoration: none; transition: all 0s}
a:hover { transition: all 0.3s linear;text-decoration: none }

.text-small {font-size: 0.85em; display: inline-block; }
.text-large{font-size: 20px !important}
.text-bold{font-weight: bold !important;}
.text-right {text-align: right !important;}
.text-left {text-align: left !important;}
.text-center {
	text-align: center !important;
	margin-left: auto;
	margin-right: auto;
}
span.text-sup,
span.text-sub{
	font-size: 75.5%;
	vertical-align: top;
	position: relative;
	top: -0.03em;
	padding-left: 1px;
	padding-right: 1px;
}
span.text-sub {
	vertical-align: bottom;
	top: 0.03em;
}
.mt-0 { margin-top: 0px !important; }
.mt-5 { margin-top: 5px !important; }
.mt-10 { margin-top: 10px !important; }
.mt-20 { margin-top: 20px !important; }
.mt-30 { margin-top: 30px !important; }
.mt-40 { margin-top: 40px !important; }
.mt-50 { margin-top: 50px !important; }
.mt-80 { margin-top: 80px !important; }
.mt-100 { margin-top: 100px !important; }
.mb-5 { margin-bottom: 5px !important; }
.mb-10 { margin-bottom: 10px !important; }
.mb-20 { margin-bottom: 20px !important; }
.mb-30 { margin-bottom: 20px !important; }
.mb-50 { margin-bottom: 50px !important; }
.mb-100 { margin-bottom: 100px !important; }
.ml-10 { margin-left: 10px !important; }
.ml-20 { margin-left: 20px !important; }
.mr-10 { margin-right: 10px !important; }
.mr-20 { margin-right: 20px !important; }
.ml-mr-5 { margin-left: 5px !important; margin-right: 5px !important; }
.ml-mr-10 { margin-left: 10px !important; margin-right: 10px !important; }
.ml-mr-20 { margin-left: 20px !important; margin-right: 20px !important; }
.ml-mr-50 { margin-left: 50px !important; margin-right: 50px !important; }
.margin-15{margin: 15px !important}
.pt-0 { padding-top: 0px !important; }
.pl-10 { padding-left: 10px !important; }
.pr-10 { padding-right: 10px !important; }
.plr-10 { padding-left: 10px !important;
	padding-right: 10px !important; 
}

.width1em { width: 1em !important; }
.width2em { width: 2em !important; }
.width3em { width: 3em !important; }
.width4em { width: 4em !important; }
.width5em { width: 5em !important; }
.width6em { width: 6em !important; }
.width7em { width: 7em !important; }
.width8em { width: 8em !important; }
.width9em { width: 9em !important; }
.width10em { width: 10em !important; }
.width11em { width: 11em !important; }
.width12em { width: 12em !important; }
.width13em { width: 13em !important; }
.width14em { width: 14em !important; }
.width15em { width: 15em !important; }
.width20em { width: 20em !important; }
.width25em { width: 25em !important; }
.width30em { width: 30em !important; }
.width40em { width: 40em !important; }
.width50em { width: 50em !important; }
.width15per { width: 15% !important; }
.width16per { width: 16% !important; }
.width35per { width: 35% !important; }
.width50per { width: 50% !important; }
.width55per { width: 55% !important; }
.width70per { width: 70% !important; }
.width80per { width: 80% !important; }
.width90per { width: 90% !important; }
.width100per { width: 99% !important; }
.width-auto { width: auto !important; }

.pc, .pc-block{display:inline !important;}
.sp , .sp-block{display:none !important;}
@media screen and (max-width:640px){
.pc, .pc-block{display:none !important;}
.sp{display:inline !important;}
.sp-block{display:block !important;}
}

/* -----------------------------------
   form
 * ----------------------------------- */
input,
select,
label {
	vertical-align: baseline;
}

/*---------------------------------------------
	flex
  ---------------------------------------------*/
.flex,
.flex-start,
.flex-end{
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;}
.flex-start{justify-content: flex-start;}
.flex-end{justify-content: flex-end;}

.margin-auto{
	margin-left: auto;
	margin-right: auto;
}


/*---------------------------------------------
	header
  ---------------------------------------------*/
header{
position: absolute;
top: 60px;
left: 60px;
z-index: 9999;
color: #fff;
opacity: 1;
}
header ul li{
font-size: 1.8rem;
}
@media screen and (max-width:640px){
header{
top: 30px;
left:30px;
}
header ul li{
font-size: 1.4rem;
}
}


/*---------------------------------------------
	スライダー
  ---------------------------------------------*/
.add-zoom {animation: fadezoom 12s 0s forwards;}
@keyframes fadezoom {
  0% {
      transform: scale(1.1);
      filter: blur(40px);
    }
  20% {filter: blur(0px);}
  100% {
      transform: scale(1);
      filter: blur(0px);
    }
}
.non-blur{animation: fadezoom2 12s 0s forwards;}
@keyframes fadezoom2 {
  0% {
      transform: scale(1.1);
      filter: blur(0px);
    }
  20% {filter: blur(0px);}
  100% {
      transform: scale(1);
      filter: blur(0px);
    }
}

.slick-slide img {
  height: 100vh;
  margin: auto;
  max-height: 100%;
  max-width: 100%;
  object-fit: cover;
  width: 100%;
}

.slick-slide{}

/*---------------------------------------------
	mainvisual
  ---------------------------------------------*/

.mainvisual{
display: flex;
flex-direction: column;
}

.mv-img{
position:fixed;
top: 0;
left: 0;
right: 0;
margin: 0 auto;
height: 100vh;
width: 100%;
overflow: hidden;
}

.mv-img::before{
content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
background-color: rgba(0,0,0,0.1);
z-index: 0;
}

.mv-img.active::before{
background: rgba(0,0,0,0.28);
  transition: all ease 1s;
}

.mv-img.bgchange{
background: #fff no-repeat center center / cover;
}
.mv-img.bgchange::before{
background: none !important;
}


#top .title-cont{
position: relative;
width: 100%;
min-height: 100vh;
}

#top h1{
position: absolute;
display: block;
width: 320px;
top: 50%;
left: 50%;
transform: translate(-50%,-50%);
opacity: 1;
}

.item{
position: relative;
z-index: 50;
min-height: 100vh;
padding: 40vh 0;
}

.introduction .inner {text-align: center;}
#top .introduction .inner{text-shadow: 0px 1px 2px rgba(0,0,0,0.7)}

.introduction .inner p{
font-size: 2rem;
line-height: 2.5;
padding-bottom: 20px; 
color: #fff;
}


.scrolldown {
  width: 1px;
  height: 60px;
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  margin: 0 auto;
  overflow: hidden;
z-index: 9999;
}
.scrolldown .line {
  width: 100%;
  height: 100%;
  display: block;
  background: linear-gradient(to bottom, white 50%, rgba(255, 255, 255, 0) 50%);
  background-position: 0 -60px;
  background-size: 100% 200%;
  animation: scrolldown 2.2s cubic-bezier(0.76, 0, 0.3, 1) forwards infinite;
}
@keyframes scrolldown {
  0% {
    background-position: 0 -60px;
  }
  75% {
    background-position: 0 0;
  }
  100% {
    background-position: 0 60px;
  }
}
@media screen and (max-width:640px){
    #top h1{
    width:240px;
    }
    .introduction .inner{
    padding: 0 1.5em;    
    }
    .introduction .inner p{
    font-size: 1.5rem;
    }
}

/*---------------------------------------------
	link
  ---------------------------------------------*/

.link{
padding: 150px 0;
background: #fff;
position: relative;
}

.link-cont{
width: 100%;
height: 60vh;
overflow: hidden;
position: relative;
}

.link-cont::before{
content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
background-color: rgba(0,0,0,0.2);
z-index: 1;
}

.link a{
 display: block;   
  position: relative;
  z-index: 1;
  overflow: hidden;
}

.link a + a{
margin-top: 60px;
}

.link a::after {
  display: block;
  position: absolute;
  content: "";
  margin: auto;
  background-image: url("../img/common/link-button.svg");
  background-repeat: no-repeat;
  width: 130px;
  height: 130px;
  top: 50%;
  right: 10vw;
  transform: translateY(-50%);
  transition-duration: 0.2s;
  z-index: 2;
}

.link .img-cont img{
width: 100%;
height: 60vh;
object-fit: cover;
transition: 1s ease;
}

.link .link-cont{
 display: inline-block;
  overflow: hidden;
}

.link a:hover .img-cont img{
    transform: scale(1.05);
}

.link a:hover::after {
  transition-delay: 0;
transition-duration: .8s;
  opacity: 1;
  right: 8vw;
}
.link-cont:hover::before{
 background-color: rgba(0,0,0,0.28);
    transition-duration: .5s;
}

.text-cont{
position: absolute;
top: 50%;
transform: translateY(-50%);
left: 13vw;
color: #fff;
z-index: 2;
}
.text-cont h2{
font-size: 8rem;
line-height: 1;
}
.text-cont span{
display: block;
font-size: 2.1rem;
margin-top: 30px;
}
.box-attention{
    background-color: #fffed6;
    padding: 20px;
    margin-top: 30px;
}
.box-attention p span{
    background: linear-gradient(to right, #FFE700 50%, transparent 50%) 0%
    bottom/200% 5px no-repeat;
    display: inline;
	animation: border_anim 6s infinite linear forwards;
}

@keyframes border_anim {
	from {
    background-position: 100% bottom;
  }
  to {
    background-position: 0% bottom;
  }
}
@media screen and (min-width:641px){
.text-cont.anim.fadein{
 transform: translate3d(0, -20%, 0);   
}
.text-cont.anim.fadein.active{
transform: translate3d(0, -50%, 0);
}    
}
@media screen and (max-width:640px){
.link a::after {
   opacity: 1;
  width: 80px;
  height: 80px;
  top:inherit;
  bottom: 11vw;
  right: 9vw;
  transform: none;
  transition-duration: 0.2s;
z-index: 2;
}
.link a:hover::after {
  transition-delay: 0;
}
.text-cont{
top: 9vw;
transform:none;
left: 7vw;
}

.text-cont h2{
font-size: 4.5rem;
}
.text-cont span{
font-size: 1.5rem;
margin-top: 10px;
} 

}

/*---------------------------------------------
	footer
  ---------------------------------------------*/

footer{
font-size: 1.4rem;
background: #fff;
position: relative;
z-index: 1;
}

footer .flex{
padding: 40px 2em 80px 0;
justify-content: flex-end;
}

@media screen and (max-width:640px){
footer .flex{
    width: 90%;
    margin: 40px auto 0px;
    flex-direction: column;
}
}


/*---------------------------------------------
	loding
  ---------------------------------------------*/
/*.lower #container {
  opacity:0;
  pointer-events: none;
}
body.lower.appear #container {
  animation-name: PageAnime-content;
  animation-duration: 0.8s;
  animation-delay: 0.8s;
  animation-fill-mode: forwards;
  opacity:0;
  pointer-events: auto;
    position: relative;
}
.animation #container  {
  opacity: 1;
  pointer-events: auto;
}
@keyframes PageAnime-content {
 0% {
     opacity: 0;
     filter: blur(30px);
}
30%{filter: blur(15px);}
50%{filter: blur(8px);}
100% {opacity: 1;}
}*/

body.lower #container{animation: fadein 3.5s forwards;}
@keyframes fadein {
	0% {opacity: 0}
	100% {opacity: 1}
}
.fade.animation-bg {
background-color:transparent;
  content: "";
  position: fixed;
  z-index: 999;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  animation-name: PageAnime-fade;
  animation-duration: 0.1s;
  animation-delay: 0.3s;
  animation-timing-function: ease-in-out;
  animation-fill-mode: forwards;
  pointer-events: none;
}

@keyframes PageAnime-fade {
  0% {
    opacity: 0;
    filter: blur(15px);
  }
    50%{
    filter: blur(15px);
    }
  100% {
    opacity: 0;
    display: none;
  }
}


/*top loding*/
#splash {
  position: fixed;
  width: 100%;
  height: 100%;
  z-index: 999;
  background:#fff;
  text-align:center;
}
#splash-inner {
  position: absolute;
width: 320px;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.splash-logo-1 {
animation: animate-svg-fill 2.5s cubic-bezier(0.47, 0, 0.745, 0.715) 1.2s both;
}
.splash-logo-2 {
animation: animate-svg-fill 2.5s cubic-bezier(0.47, 0, 0.745, 0.715) 1.6s both;
}
.splash-logo-3 {
animation: animate-svg-fill 2.5s cubic-bezier(0.47, 0, 0.745, 0.715) 2s both;
}
.splash-logo-4 {
 animation: animate-svg-fill 2.5s cubic-bezier(0.47, 0, 0.745, 0.715) 2.4s both;
}
@keyframes animate-svg-fill {
  0% {fill: transparent;}
  20% {fill: rgb(0, 0, 0);}
  100% {fill: #fff;}
}

@media screen and (max-width: 640px){
#splash-inner {
  width: 220px !important;
}
    #splash-logo-cont{
   width: 220px !important;   
    }
}


/*---------------------------------------------
	animation
  ---------------------------------------------*/
/*全体フェードイン*/
.anim.fadein {
      transform: translate3d(0, 30px, 0);
      opacity: 0;
      transition: transform 2s cubic-bezier(0.165, 0.84, 0.44, 1),opacity 2s cubic-bezier(0.165, 0.84, 0.44, 1);
}
.anim.fadein.active {
      transform: translate3d(0, 0, 0);
      opacity: 1;
}



/*サービスキャッチコピー*/

.bgcolor{
position: relative;
color: transparent;
}
.bgcolor::before{
    content: ""; 
    position: absolute; 
    z-index: 1; 
    top: 0%; 
    right: 100%; 
    bottom: 0%; 
    left: 0%;
    background : #1a1a1a;
  }
 .anim.fadein.active .bgcolor{
    animation-name: anima;
    animation-duration: 0.9s;
    animation-delay: 1s;
     animation-fill-mode: forwards;
}
.anim.fadein.active .bgcolor::before{
      animation-name: animb;
      animation-duration: 1.2s;
      animation-fill-mode: forwards;
}


@keyframes anima {
  100%{
    color: inherit;
  }
}
@keyframes animb {
  50%{
    left: 0%; right: 0%;
  }
  100%{
    left: 100%; right: 0%;
  }
}

/*delay*/


.delaytime05{
animation-delay: .5s !important;
}
.delaytime1{
animation-delay: 1s !important;
}
.delaytime15{
animation-delay: 1.5s !important;
}
.delaytime2{
animation-delay: 2s !important;
}
.delaytime25{
animation-delay: 2.5s !important;
}
.delaytime3{
animation-delay: 3s !important;
}
.delaytime5{
animation-delay: 5s !important;
}

.tdelaytime02{
transition-delay: .2s,.4s !important;
}
.tdelaytime03{
transition-delay: .25s,.6s !important;
}
.tdelaytime04{
transition-delay: .3s,.8s !important;
}
.tdelaytime05{
transition-delay: .35s,1s !important;
}
.tdelaytime06{
transition-delay: .4s,1.2s !important;
}
.tdelaytime07{
transition-delay: .45s,1.4s !important;
}
.tdelaytime08{
transition-delay: .5s,1.6s !important;
}