@import url('https://fonts.googleapis.com/css2?family=Chakra+Petch:ital,wght@0,600;0,700;1,700&family=Noto+Sans+JP:wght@400;500;700;900&family=Roboto:wght@400;500;700;900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Heebo:wght@700;800;900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Archivo:ital,wght@0,100..900;1,100..900&display=swap');

.fc-brand{
	color:#bd041a;
}

.sectionStrong {
	padding: 80px 0 120px;
	margin: auto;
	width:100%;
	max-width:1100px;
	text-align: left;
	color:#212121;
	position: relative;
	left:-120px;	
	top: 70px;
	font-family: 'Noto Sans JP';
}
@media screen and (max-width: 1280px){
	.sectionStrong {
		padding: 80px 40px;
		margin: 80px auto 0;
		position: static;
		text-align: left;
	}
}
	@media screen and (max-width: 991px){
		.sectionStrong {
			padding: 30px 20px 0 !important;
			margin:0 auto;
			position: static;
			text-align: left;
		}
	}

.sectionStrong h1 {
	display:inline-block;
	background-color:#383838;
	color:#FFF;
	font-size:3.2em;
	line-height:1;
	font-weight:700;
	text-align:left;
	padding:0.2em 1.4em 0.25em;
	margin: 0 auto 30px;
	letter-spacing:0.05em;
}
.sectionStrong h1 em {
	font-size: 0.75em;
	font-style: normal;
	font-weight:500;
}
@media screen and (max-width: 1280px){
	.sectionStrong h1 {
		font-size:2.5em;
		padding:0.2em 0.5em 0.25em;
		margin-bottom: 10px;
	}
	.sectionStrong h1 em {
		font-size: 0.75em;
	}
	
}
@media screen and (max-width: 767px) {
	.sectionStrong h1 {
		font-size:1.15em;
	}
}


.sectionStrong p{ letter-spacing:0.01em; }

.sectionStrong h2 {
	opacity: 1;
	font-size: 1.9em;
	line-height: 1;
	font-weight: 900;
	text-align:left;
	color:#383838;
	margin-left:1.2em;
	margin-bottom: .2em;
	text-shadow: #fff 0 0 10px,#fff 0 0 10px,#fff 0 0 10px,#fff 0 0 10px;
}

@media screen and (max-width: 767px) {
	.sectionStrong h2 {
		opacity: 1;
		font-size: 1em;
		text-align:left;
		letter-spacing:0.025em;
		margin-left: auto;
		margin-bottom:1.5em;
	}	
}

.kinbox{
	width:100%;
	max-width:1160px;
	position:relative;
}

.mv_kin{
	font-size:27em;
	color:#da0019;
	padding-right: 0.05em;
	line-height: 0.9;
	letter-spacing:-0.02em;
	margin-left: -0.05em;
	font-family: "Archivo", sans-serif;
	font-optical-sizing: auto;
	font-weight: <weight>;
	font-style: normal;
	font-variation-settings:"wdth" 100;
	font-weight:700;
}
.mv_unit{
	font-size: 4.5em;
	color:#383838;
	font-weight:bold;
	letter-spacing: 0.08em;
	position:absolute;
	top:30px;
	display:inline-block;
	padding-left: 10px;
}
.mv_en{
	font-size:10em;
	color:#383838;
	font-weight:700;
	line-height:1;
	position:absolute;
	top: 180px;
	display:inline-block;	
}

.mv_cp{
	font-size: 3em;
	color:#383838;
	font-weight:bold;
	padding-left: 0.6em;
	line-height: .6;
	font-weight:900;
}
.mv_txt{
	font-size: 1.15em;
}

@media screen and (max-width: 1280px){
	.mv_kin{
		font-size: 18em;
		padding-right: 0.05em;
		line-height: 0.8;
		letter-spacing:-0.04em;
	  font-family: "Archivo", sans-serif;
		font-optical-sizing: auto;
		font-weight: <weight>;
		font-style: normal;
		font-variation-settings:
    "wdth" 100;
		font-weight:700;
	}	
	.mv_en{
		font-size:8em;
		top:80px;
	}
	.mv_unit{
		top:20px;
		font-size: 2.5em;
	}
}
@media screen and (max-width: 767px) {
	.mv_kin{
		font-size: 9em;
		padding-right: 0.05em;
		line-height: 0.8;
		letter-spacing:-0.04em;
	  font-family: "Archivo", sans-serif;
		font-optical-sizing: auto;
		font-weight: <weight>;
		font-style: normal;
		font-variation-settings:
    "wdth" 100;
		font-weight:700;
	}	
	.mv_unit{
		font-size: 1.2em;
		padding-left: 0;
	}
	.mv_cp{
		font-size: 1.6em;
		font-weight:bold;
		padding-left: 0;
		line-height: 1.4;
		font-weight:900;
	}	
	.mv_txt{
		font-size: 1em;
	}
	.mv_en{
		font-size: 3em;
		top: 60px;
	}
}





/*アニメーション前*/
.marker {
  padding: 0 1px;
  background-image: linear-gradient(#ffff7f, #ffff7f);
  background-size: 0 50%;/*幅をゼロにしておく*/
  background-position: 0 100%;
  background-repeat: no-repeat;
  transition: .8s;
	font-size:1.6em;
	font-weight: 500;
	color:#383838;
	border-radius:6px;
}
 
/*アニメーション後*/
.marker.active {
  background-size: 100% 50%;/*JSからクラスactiveを付与されたときに背景の幅を全体に広げる*/
}

.is-act .text >strong::before,
.is-act .text >strong::after{
	opacity: 0.5;
	color: #bb0013;
}
.is-act .text >strong::before{
	animation: wave 0.5s ease-in 0.5s both;
	animation-delay: 1.6s;
}
.is-act .text >strong::after{
	animation: wave 0.5s ease-in 0.05s both;
	animation-delay: 1.8s;
}

@media screen and (max-width: 960px) {
	.text span {
		display: inline-block;
		position: absolute;
		left:10px;
		top: auto;
		max-width: 120px;
		margin-top: 30px;
	}
			@media screen and (max-width: 767px) {
				.text span {
					left:10px;
					top: auto;
					max-width: 60px;
					margin-top:20px;
				}
			}
	.text strong em{
		font-size: 2rem;
		letter-spacing:0;
	}
	.text >strong{
		position: relative;
		display: inline-block;
		transform: scale(0);
		margin-top:0px;
		left: 50px;
	}
	.is-act .text >strong{
		-webkit-text-stroke-color: transparent;
		-webkit-text-fill-color: #bb0013;
		-webkit-text-stroke-width: 1px;
		 animation: zoom 0.5s ease-in both;
		 animation-delay: 1.5s;
		 transform: translateX(-100px);
		 transition: all .5s ease;		 
	}
	.text >strong::before,
	.text >strong::after {
		content: '300';
		position: absolute;
		top: 0;
		left: 50%;
		margin-left: -50%;
		width: 100%;
		height: 150%;
		opacity: 0;
		will-change: transform, opacity;
	}
	.is-act .text >strong::before,
	.is-act .text >strong::after{
		opacity: 0.5;
		color: #bb0013;
	}
	.is-act .text >strong::before{
		animation: wave 0.5s ease-in 0.5s both;
		animation-delay: 1.5s;
	}
	.is-act .text >strong::after{
		animation: wave 0.5s ease-in 0.05s both;
		animation-delay: 1.8s;
	}
}
		
			
		@keyframes anim2 {
			0% {
			transform: translateX(-100px);
			opacity: 0;
			}
		
			100% {
			transform: translateX(10px);
			opacity: 1;
			}
		}		
		
    @keyframes zoom {
      0% {
        transform: scale(1.5);
        opacity: 0;
      }
      100% {
        transform: scale(1);
        opacity: 1;
      }
    }
    @keyframes wave {
      0% {
        opacity: 0.5;
        transform: translateZ(0) scale(1);
      }
      to {
        opacity: 0;
        transform: translateZ(0) scale(1.3);
      }
    }


.mv-fs1{
	font-size:41.5rem;
	color:#bb0013;
	line-height:1;
	font-family: 'Roboto', sans-serif;
	font-weight:600;
	display: inline-block;
	letter-spacing:-0.06em;
}
@media screen and (max-width: 960px) {
	.mv-fs1{ font-size: 20rem; }
	@media screen and (max-width: 767px) {	.mv-fs1{ font-size:9rem; margin-bottom:20px; } }
}

.text__slideIn {
	font-size: 7rem;
	font-family: 'Noto Serif JP', serif;
	font-weight:700;
	line-height:1;
	padding:0;
}
@media screen and (max-width: 960px) {
	.text__slideIn {
		font-size: 4rem;
	}
		@media screen and (max-width: 767px) {	.text__slideIn{ font-size: 2rem; } }

}



.text__zoomIn {
	font-size: 2.4rem;
	line-height:1;
	padding:0;
	margin:0;
	text-align: left;
	position: absolute;
	left: 90px;
	top: 90px;
	font-weight:500;
}
@media screen and (max-width: 960px) {
	.text__zoomIn {
		font-size: 1.1rem;
		line-height:1;
		padding:0 1em;
		margin:0;
		position: absolute;
		left:0px;
		top: 100px;
		line-height:30px;
	}
}




.delay-0 {
  animation-delay: 0s;
}

.delay-1 {
  animation-delay: 0.4s;
}

.delay-2 {
  animation-delay: 0.8s;
}

.delay-3 {
  animation-delay: 1.2s;
}

.delay-4 {
  animation-delay: 1.6s;
}

.delay-5 {
  animation-delay: 2.0s;
}

.delay-6 {
  animation-delay: 2.6s;
}


.underline_txt{ margin:10px 0 0; padding:0; position:absolute; }

.underline {
	display: inline;
	position: relative;
	width:100%;
	z-index: 1;
	font-size: 2.4rem;
	line-height:1;
	padding:0;
	margin:0 !important;
	text-align: left;
	font-weight:500;		
	left: 100px;
	letter-spacing:0.08em;
}
.underline::before {
    content: "";
    width: 0;
    height: 20px;
    display: block;
    background-image: linear-gradient(120deg, #ffe28c,#ffe28c 100%);
    position: absolute;
    top: 35px;
    left: 0px;
    z-index: -1;
    animation: underAnime 0.8s forwards ease-out;
		animation-iteration-count: 1;
}

	@media screen and (max-width: 767px) {
		.underline {
			font-size: 0.8rem;
			line-height: 1;
			padding: 0;
			text-align: left;
			font-weight: 500;
			left: 24px;
			top: -60px;
			letter-spacing: 0.05em;
		}	
		.underline::before {
				content: "";
				width: 0;
				height: 10px;
				display: block;
				background-image: linear-gradient(120deg, #ffe28c,#ffe28c 100%);
				position: absolute;
				top: 10px;
				left: 0;
				z-index: -1;
				animation: underAnime 0.8s forwards ease-out;
				animation-iteration-count: 1;
		}
	}


@keyframes underAnime {
    0% {
        width: 0;
    }

    100% {
        width: 100%;
    }
}

