@charset "UTF-8";

body{
	margin:0;
	background:#fff;
	color:var(--text);
}

body.movie-playing{
	overflow:hidden;
	position:fixed;
	width:100%;
}
.sp-show{display: none}

/* =================================
   Kintetsu app LP
   PC common + SP layout
   ================================= */

:root{
  --yellow:#ffe91a;
  --green:#168f4d;
  --pale:#edf6df;
  --text:#111;
  --white:#fff;
}

*{
  box-sizing:border-box;
}

html{
  scroll-behavior:smooth;
}

body{
  margin:0;
  background:var(--yellow);
  color:var(--text);
  font-family:
    -apple-system,
    BlinkMacSystemFont,
    "Noto Sans JP",
    "Yu Gothic",
    "Hiragino Kaku Gothic ProN",
    Meiryo,
    sans-serif;
}

img{
  max-width:100%;
  height:auto;
}

button{
  font-family:inherit;
}

/* =====================
 movie
 ===================== */
.movie-loading{
	position:absolute;
	top:50%;
	left:50%;
	transform:translate(-50%,-50%);
	z-index:3;
}

.movie-loading span{
	display:block;
	width:40px;
	height:40px;
	border:4px solid rgba(0,0,0,.2);
	border-top-color:#168f4d;
	border-radius:50%;
	animation:loadingRotate .8s linear infinite;
}


@keyframes loadingRotate{

	from{
		transform:rotate(0deg);
	}

	to{
		transform:rotate(360deg);
	}

}


.movie-loading.hide{
	opacity:0;
	pointer-events:none;
	transition:.3s;
}

.movie-intro{
  position:fixed;
	top:0;
	left:0;
	width:100%;
	height:100vh;
  background:#fff;
  z-index:9999;
  overflow:hidden;
}

.movie-intro::after{
	content:"";
	position:absolute;
	top:0;
	left:0;
	width:100%;
	height:100%;
	background:#ffe91a;
	transform:translateY(-100%);
	transition:transform 1.2s cubic-bezier(.77,0,.18,1);
	z-index:2;
}

.movie-intro.end::after{
	transform:translateY(0);
}

.movie-intro video{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center bottom;
}

.movie-intro.hide{
  opacity:0;
  pointer-events:none;
}

/* =====================
 main
 ===================== */

#rebone-wrapper{
  text-align:center;
  padding:10% 0;
}

.rebone-main{
  max-width:1000px;
  margin:0 auto;
}

/* =====================
 header / title
 ===================== */

.rebone-header{
  position:relative;
  display:flex;
  align-items:center;
}

.ttl{
  width:100%;
  margin:auto;
  transition:width .8s ease;
  position:relative;
  z-index:2;
	min-height:1000px;
}

#ttl1,
#ttl2,
#ttl3,
#ttl4{
  line-height:0;
}

#ttl1 svg,
#ttl2 svg,
#ttl3 svg,
#ttl4 svg{
  display:block;
  width:100%;
  height:auto;
}

.ttl.compact{
  width:55%;
  margin-left:0;
	min-height:0;
}

#ttl1,
#ttl2{
  width:100%;
  margin-top:3%;
}

#ttl3,
#ttl4{
  margin-top:5%;
}

#ttl3{
  display:inline-block;
  width:23%;
 margin-right:1%;
}

#ttl4{
 display:inline-block;
 width:75%;
 transform:scale(0);
 transform-origin:center;
}

#ttl1 svg path{
  opacity:0;
  transition:opacity .3s ease;
}

#ttl1 svg path,
#ttl2 svg path,
#ttl3 svg path{
  fill:#231815;
}

#ttl2,
#ttl3,
#ttl4{
  opacity:0;
  transition:opacity .5s ease;
}

.note{
  margin-top:10px;
  text-align:left;
  font-size:1em;
  color:#231815;
  opacity:0;
  transform:translateY(10px);
  transition:.8s ease;
}

.note.show{
  opacity:1;
  transform:none;
}

/* =====================
 kin
 ===================== */

.kin-wrapper{
	position: absolute;
	right: 0;
	top: 43%;
	width: 43%;
	height: 180%;
	transform: translateY(-50%);
	overflow: hidden;
	opacity: 0;
	padding-top: 6%;
}

.rebone-header.show .kin-wrapper{
  opacity:1;
}

.smp-v{
  position:relative;
  z-index:2;
  width:45%;
  margin-left:auto;
  transform:translateY(-120%);
}

.rebone-header.show .smp-v{
  animation:smpDrop .6s cubic-bezier(.2,.8,.2,1) .8s forwards;
}

@keyframes smpDrop{
  0%{transform:translateY(-120%)}
  70%{transform:translateY(10%)}
  100%{transform:translateY(0)}
}

.kin{
	position: absolute;
	z-index: 5;
	top: 15%;
	right: -14%;
	width: 100%;
	transform: translateX(100%);
}

.rebone-header.show .kin{
  animation:kinSlide .7s cubic-bezier(.2,.8,.2,1) 1.5s forwards;
}

@keyframes kinSlide{
  0%{transform:translateX(100%)}
  70%{transform:translateX(-10%)}
  100%{transform:translateX(0)}
}

.kin-shadow{
	position: absolute;
	right: 13%;
	bottom: 8%;
	width: 38%;
	opacity: 0;
}

.rebone-header.show .kin-shadow{
  animation:shadowFade .5s ease 2s forwards;
}

@keyframes shadowFade{
  to{opacity:.5}
}

.hello{
	position: absolute;
	left: 3%;
	top: 2%;
	width: 48%;
	opacity: 0;
}

.rebone-header.show .hello{
  animation:helloIn .8s cubic-bezier(.2,.8,.2,1) 2s forwards;
}

@keyframes helloIn{
  0%{
    opacity:.2;
    transform:translate(30px,30px) scale(.5);
  }
  70%{
    opacity:.8;
    transform:translate(-5px,-5px) scale(1.05);
  }
  100%{
    opacity:1;
    transform:none;
  }
}

/* =====================
 download
 ===================== */

.dl-wrapper{
	width: 80%;
	margin-top: 10%;
	margin-right: auto;
	margin-left: auto;
	margin-bottom: 8%;
	text-align: center;
	font-size: .8em;
}

.dl-wrapper .app,
.dl-wrapper .ggl{
	width: 20%;
	display: inline-block;
	margin-bottom: 3%;
}
.dl-wrapper .renew {
	font-size: 1.3em;
	margin-top: 0%;
}

/* =====================
 accordion
 ===================== */

.item{
  border-radius:24px;
  overflow:hidden;
  background:var(--pale);
  margin-top:3%;
}

#osusume .head{
  width:100%;
  padding:11px 24px;
  border:0;
  background:#fff;
  color:var(--green);
  display:flex;
  align-items:center;
  justify-content:space-between;
  cursor:pointer;
}

.osusume-ttl{
  font-size:1.5em;
  font-weight:900;
  letter-spacing:.2em;
}

.icon{
  width:28px;
  height:28px;
  position:relative;
}

.icon::before,
.icon::after{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:24px;
  height:3px;
  background:var(--green);
  transform:translate(-50%,-50%);
}

.icon::after{
  transform:translate(-50%,-50%) rotate(90deg);
  transition:.28s;
}

.item.open .icon::after{
  opacity:0;
}

#osusume .body{
	display:grid;
	grid-template-rows:0fr;
	transition:grid-template-rows .35s ease;
}

#osusume .body-inner{
	min-height:0;
	overflow:hidden;
}

#osusume .item.open .body{
	grid-template-rows:1fr;
}


.copy{
	min-height: 310px;
	padding: 34px;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
}

.copy p{
	margin: 0;
	font-size: 1.3em;
	line-height: 2;
	font-weight: 700;
	letter-spacing: .04em;
}

/* =====================
 PC
 ===================== */

.row{
	display: grid;
	grid-template-columns:1.05fr .95fr;
	align-items: flex-start;
	padding-top: 20px;
}

.visual{
  height:500px;
  display:flex;
  justify-content:center;
  align-items:flex-end;
	position: relative;
}

.visual img{
  height:500px;
  object-fit:contain;
}

.row .visual .kin3 {
	position: absolute;
	width: 50%;
	right: 72%;
	bottom: -27%;
}
.row .visual .kin4 {
	position: absolute;
	width: 26%;
	bottom: -37%;
	left: -98%;
}


.koboshi {
	display: block;
	animation: jump 1s ease-in-out infinite;
	width: 22%;
	position: absolute;
	bottom: 32%;
	right: 82%;
}


/* =====================
   吹き出しキンちゃん
===================== */

.title-box{
	position:relative;
	width:70%;
	margin:0 auto 2%;
}


.title-box .sub-ttl{
	width:100%;
	margin:0;
}


.kinBox{
	position: absolute;
	bottom: -79px;
	width: 107px;
	left: -117px;
	z-index: -1;
}


.kin-point img{
	width:100%;
	display:block;
}


.point{
	position: absolute;
	width: 70%;
	top: -70px;
	left: 34px;
}


.point img{
	width: 100%;
	display: block;
}


/* =====================
 campaign
 ===================== */

.campaign{
	text-align: center;
	padding: 18px 24px 0;
	margin-top: 4%;
	position: relative;
}

.campaign h2{
	margin: 0 0 24px;
	color: #e74919;
	font-size: 2em;
	line-height: 1.18;
	font-weight: 900;
}

.campaign p{
	max-width: 600px;
	margin: 0 auto;
	font-size: 1.3em;
	line-height: 2.1;
	font-weight: 700;
}

.campaign .button{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-top: 24px;
	min-width: 340px;
	padding: 11px 0;
	border-radius: 999px;
	background: #fff;
	color: var(--green);
	font-weight: 900;
	font-size: 1em;
	width: 50%;
}
.campaign .kin5 {
	position: absolute;
	width: 12%;
	bottom: -10%;
	left: 23%;
}
.campaign .kin6 {
	position: absolute;
	width: 12%;
	right: 6%;
	top: 16%;
}


/* =====================
   fixed kin
===================== */

.fixed-kin{
	position: fixed;
	right: -67px;
	bottom: -54px;
	width: 204px;
	z-index: 100;
	opacity: 0;
	transform: translateY(20px);
	transition: .5s ease;
}

.fixed-kin > img{
	display: block;
	width: 100%;
}


/* 吹き出し兼TOPリンク */
.fixed-top{
	position: absolute;
	right: 150px;
	top: -5px;
	width: 120px;
	opacity: 0;
	transform: translateY(20px) scale(.8);
	transition: .5s ease;
}

.fixed-top img{
	display:block;
	width:100%;
}


/* スクロール後表示 */
.fixed-kin.show{
	opacity:1;
	transform:translateY(0);
}

.fixed-kin.show .fixed-top{
	opacity:1;
	transform:translateY(0) scale(1);
}

.scroll-guide{
  display:none;
}

/* =====================
 SP
 ===================== */

@media(max-width:768px){
	
	.pc-show{display: none}
	.sp-show{display: block}
	
.scroll-guide{
	display: flex;
	position: absolute;
	left: 1%;
	transform: translateX(-5%);
	flex-direction: column;
	align-items: center;
	opacity: 0;
	transition: opacity .5s ease;
	z-index: 10;
	bottom: 40px;
}


  .scroll-guide.show{
    opacity:1;
  }


  .scroll-text{
    font-size:11px;
    letter-spacing:.25em;
    margin-bottom:12px;
  }


.scroll-arrow{
  width:1px;
  height:35px;
  background:transparent;
  position:relative;
  overflow:hidden;
}
	

.scroll-arrow::after{
  content:"";
  position:absolute;
  left:0;
  top:-35px;
  width:1px;
  height:35px;
  background:#222;
  animation:scrollLine 1.5s ease-in-out infinite;
}


@keyframes scrollLine{

  0%{
    transform:translateY(0);
    opacity:0;
  }

  20%{
    opacity:1;
  }

  70%{
    transform:translateY(35px);
    opacity:1;
  }

  100%{
    transform:translateY(35px);
    opacity:0;
  }


  }
	
.movie-intro video{
	width:100%;
	height:auto;
	display:block;
}

.movie-intro{
  position:fixed;
	top:0;
	left:0;
	width:100%;
	height:100vh;
  background:#fff;
  z-index:9999;
  overflow:hidden;
}

.movie-intro::after{
	content:"";
	position:absolute;
	top:0;
	left:0;
	width:100%;
	height:100%;
	background:#ffe91a;
	transform:translateY(-100%);
	transition:transform 1.2s cubic-bezier(.77,0,.18,1);
	z-index:2;
}

  #rebone-wrapper{
    padding:15px;
  }

  .rebone-header{
	display: block;
	width: 90%;
	margin-left: auto;
	margin-right: auto;
	position:relative;
  min-height:80svh;
  }
	
.ttl{
    min-height:120px;
  }
	
  .ttl.compact{
    width:100%;
  }
	#ttl3{
	display: inline-block;
	width: 18%;
	margin-right: 2%;
}
#ttl4{
	display: inline-block;
	width: 76%;
	transform: scale(0);
	transform-origin: center;
}
	
.note{
	text-align: center;
	font-size: 0.8em;
}
	
  .kin-wrapper{
	position: relative;
	width: 80%;
	height: auto;
	right: auto;
	top: auto;
	margin: 30px auto 0;
	transform: none;
	padding-bottom: 29px;
	padding-top: 40px;
  }
	
	.smp-v{
	position: relative;
	z-index: 2;
	width: 45%;
	margin-left: auto;
	transform: translateY(-120%);
}
.kin-shadow{
	position: absolute;
	right: 13%;
	bottom: 0%;
	width: 38%;
	opacity: 0;
}
.hello{
	position: absolute;
	left: 3%;
	top: 5%;
	width: 48%;
	opacity: 0;
}

  .dl-wrapper{
    width:100%;
  }

  .dl-wrapper .app,
  .dl-wrapper .ggl{
	width: 38%;
	margin-bottom: 3%;
  }
	
/* =====================
   吹き出しキンちゃん
===================== */

.title-box{
	position: relative;
	width: 70%;
	margin-top: 14%;
	margin-right: auto;
	margin-left: auto;
	margin-bottom: 2%;
}


.title-box .sub-ttl{
	width:100%;
	margin:0;
}


.kinBox{
	position: absolute;
	bottom: -46px;
	width: 76px;
	left: -57px;
	z-index: -1;
}


.kin-point img{
	width:100%;
	display:block;
}


.point{
	position: absolute;
	width: 70%;
	top: -50px;
	left: 15px;
}


.point img{
	width: 100%;
	display: block;
}

  .osusume-ttl{
	font-size: 1em;
	letter-spacing: .1em;
	text-align: left;
  }

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

  .copy{
	min-height: auto;
	padding: 15px;
	margin-left: auto;
	margin-right: auto;
	width: 90%;
  }

  .copy p{
    font-size:1em;
  }

  .visual{
    height:auto;
	position: relative;
  }

  .visual img{
	width: 50%;
	height: auto;
  }

.row .visual .kin3 {
	position: absolute;
	width: 87%;
	left: 0%;
	bottom: 2%;
	text-align: left;
}
.row .visual .kin4 {
	position: absolute;
	width: 48%;
	bottom: 2%;
	left: 8%;
	text-align: left;
}
.koboshi {
	display: block;
	animation: jump 1s ease-in-out infinite;
	width: 40%;
	position: absolute;
	bottom: 32%;
	right: -8%;
}

	
	/* =====================
 campaign
 ===================== */

.campaign{
	text-align: center;
	margin-top: 10%;
	padding: 0;
	position: relative;
}

.campaign h2{
	margin: 0 0 24px;
	color: #e74919;
	font-size: 1.8em;
	line-height: 1.18;
	font-weight: 900;
}

.campaign p{
	max-width: 600px;
	margin: 0 auto;
	font-size: 1em;
	line-height: 2.1;
	font-weight: 700;
	text-align: center;
}

.campaign .button{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-top: 24px;
	min-width: 300px;
	padding: 11px 0;
	border-radius: 999px;
	background: #fff;
	color: var(--green);
	font-weight: 900;
	font-size: 1em;
	width: 50%;
	margin-left: auto;
	margin-right: auto;
}
.campaign .kin5 {
	position: absolute;
	width: 15%;
	bottom: 1%;
	left: 6%;
}
.campaign .kin6 {
	position: absolute;
	width: 13%;
	right: 1%;
	top: 19%;
}


	
	
  .fixed-kin{
	width: 67px;
	right: -19px;
	bottom: -20px;
  }
	
/* 吹き出し兼TOPリンク */
.fixed-top{
	position: absolute;
	right: 50px;
	top: -17px;
	width: 51px;
	opacity: 0;
	transform: translateY(20px) scale(.8);
	transition: .5s ease;
}
}

/* accessibility */

@media(prefers-reduced-motion:reduce){

  *,
  *::before,
  *::after{
    animation-duration:.01ms!important;
    transition-duration:.01ms!important;
  }

}
