@charset "utf-8";

@import url('https://fonts.googleapis.com/css2?family=Libre+Baskerville:ital,wght@0,400;0,700;1,400&family=Shippori+Mincho&display=swap');

/* ==========================================================================
   RESET
   ========================================================================== */
/*
* http://meyerweb.com/eric/tools/css/reset/
* v2.0 | 20110126
* License: none (public domain)
*/
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, strong, 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-size: 100%;
	font: inherit;
	vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
	display: block;
}
body {
	line-height: 1;
}
ol, ul {
	list-style: none;
}
blockquote, q {
	quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
	content: '';
	content: none;
}
table {
	border-collapse: collapse;
	border-spacing: 0;
}

hr {
	display: block;
	height: 1px;
	border: 0;
	border-top: 1px solid #ccc;
	margin: 1em 0;
	padding: 0;
}

fieldset {
	border: 0;
	margin: 0;
	padding: 0;
}

textarea {
	resize: vertical;
}

* {
	box-sizing: border-box;
}

audio, canvas, iframe, img, svg, video {
	vertical-align: middle;
}

a, a:hover {
	color: inherit;
	text-decoration: none;
}

b {
	font-weight: bold;
}

*:focus {
	outline: none;
}

/* ==========================================================================
   contents
   ========================================================================== */
html{
	scroll-behavior: smooth;
}

#wrapper {
	font-family: "Shippori Mincho","Yu Gothic", YuGothic, "ヒラギノ角ゴ ProN W3", Hiragino Kaku Gothic ProN, Arial, "メイリオ", Meiryo, serif;
	font-size: 62.5%;
	-webkit-text-size-adjust: 100%;
	width: 100%;
	overflow: hidden;
	background: #1c1e30;
	color: #fff;
}

#wrapper .text-en{
	font-family: "Libre Baskerville", serif;
    font-weight: 400;
    font-style: normal;
}

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

#wrapper .disp-pc { display: block; }
#wrapper .disp-sp { display: none; }

@media only screen and (max-width: 768px) {
	#wrapper .disp-pc { display: none; }
	#wrapper .disp-sp { display: block; }
}

#wrapper .lyt-inner {
	max-width: 1060px;
	margin-left: auto;
	margin-right: auto;
}

/* ==========================================================================
   common
   ========================================================================== */
#wrapper .flex-box{
	display: flex;
	flex-flow: row nowrap;
}

#wrapper .indent{
	padding-left:1rem;
	text-indent:-1rem;
}


/* ==========================================================================
   cssanime
   ========================================================================== */
html.no-scroll, body.no-scroll {
	overflow: hidden;
	height: 100vh;
}

.hero {
	position: relative;
	width: 100%;
	height: 100vh;
	overflow: hidden;
}

.hero .mv-anime {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	overflow: hidden;
}

.hero .mv-anime > div {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  background-repeat: no-repeat;
  opacity: 0;
}

.hero .block-1,
.hero .block-3 {
	background: url("../images/bg1-pc.jpg") no-repeat center center / cover;
}

.hero .logo-1 {
  position: absolute; inset: 0;
  background-image: url("../images/mv-copy.png");
  background-repeat: no-repeat;
  background-position: center center;
  background-size: 40%;
  z-index: 2;
}

.hero .block-2 {
	background: url("../images/bg2-pc.jpg") no-repeat center top / cover;
}

.hero .copy-1  {
  position: absolute;
  inset: 0;
  background: url("../images/copy1-pc.svg") no-repeat center center;
  background-size: 85%;
}

.hero .copy-2  {
	background: url("../images/copy2-pc.svg") no-repeat 53% 21% / contain;
	background-size: 26%;
	inset:auto;
}

.hero .copy-3  {
	background: url("../images/copy3-pc.svg") no-repeat 50% 67% / contain;
	background-size: 60%;
}

.hero .copy-1,
.hero .copy-2,
.hero .copy-3,
.hero .logo-1,
.hero .block-1 {
  will-change: transform, opacity;
  transform-origin: center center;
}

.hero .block-4 {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  background: url("../images/mv_bg-pc.jpg") no-repeat center top / cover;
  z-index: 3;
  opacity: 0;
  pointer-events: none;
}

.block-1{z-index:1}
.logo-1{z-index:2}
.block-2{z-index:3}
.copy-1{z-index:4}
.copy-2{z-index:5}
.copy-3{z-index:6}
.block-3{z-index:7}
.hero .mv-anime{ z-index: 50; }
.svglogo { z-index: 100; }

.svglogo {
  position: relative;
  z-index: 100;
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  transition: opacity .6s ease;
}

.svglogo.show {
	visibility: visible;
	opacity: 1;
	pointer-events: auto;
}

.copyimg {
	opacity: 0;
	display: none;
	transition: opacity .6s ease;
	position: relative;
	z-index: 110;
}

.copyimg.show { display: block;
	opacity: 1;
}


@media only screen and (max-width: 1024px) {


}

@media only screen and (max-width: 768px) {
	.hero .logo-1 {
		background-size: 80%;
		background-image: url("../images/mv-copy-sp.png");
	}

	.hero .block-2 {
		background: url("../images/bg2-sp.jpg") no-repeat center top / cover;
	}

	.hero .copy-1  {
		background: url("../images/copy1-sp.svg") no-repeat center center;
		background-size: 102%;
	}

	.hero .copy-2  {
		background: url("../images/copy2-sp.svg") no-repeat 54% 42% / contain;
		background-size: 38%;
	}

	.hero .copy-3  {
		background: url("../images/copy3-sp.svg") no-repeat 45% 56% / contain;
		background-size: 62%;
	}

	.hero .block-3 {
		background-image: url("../images/bg1-sp.jpg");
	}

	.hero .block-4 {
		background: url("../images/mv_bg-sp.jpg") no-repeat center top / cover;
	}
}


/* ==========================================================================
   svganime
   ========================================================================== */
.svglogo{
  position: relative;
  width: 100%;
  max-width: 100%;
  aspect-ratio: 1440 / 800;
  overflow: hidden;
  --shiftX: 10px;
}

.svglogo .mv-svg {
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%) scale(1.02);
  transform-origin: left center;
  display: block;
  width: 100%;
  height: auto;
  pointer-events: none;
}

.svglogo .copyimg{
  position: absolute;
  right: 14%;
  top: 49%;
  width: 20%;
  height: auto;
  transition: opacity .6s ease;
  z-index: 10;
  opacity: 0;
  pointer-events: none;
}

.svglogo .copyimg.show {
  opacity: 1;
  pointer-events: auto;
}

.copyimg {
	opacity: 0;
	display: none;
	transition: opacity .6s ease;
}

.copyimg.show {
	display: block;
	opacity: 1;
}


@media only screen and (max-width: 1024px) {
	.svglogo{
		width: 100%;
		max-width: 100%;
    aspect-ratio: 750 / 1170;
  }

	.svglogo .copyimg{
		right: calc(50 / 1170 * 100%);
		top: calc(590 / 1170 * 100%);
		width: calc(334  / 1170 * 100%);
		height: auto;
	}
}

@media only screen and (max-width: 768px) {
	.svglogo svg.hide{
		opacity: 1;
	}

	.svglogo {
		width: 100%;
		max-width: 100%;
		height: 100vh;
		aspect-ratio: auto;
		display: flex;
		justify-content: center;
		align-items: center;
		position: relative;
	}

	.svglogo .mv-svg {
		top: 50%;
		transform: translateY(-50%) scale(0.9);
		transform-origin: center center;
	}

	.svglogo .giflogo{
		position: absolute;
		inset: 0;
		width: 100%;
		height: 100%;
		display: block;
		object-fit: contain;
		object-position: center;
		margin-top: 0;
	}

	.svglogo .copyimg{
		right: calc(50 / 750 * 100%);
		top: calc(459 / 750 * 100%);
		width: calc(314 / 750 * 100%);
		height: auto;
	}
}


/* ====================
   .hero
   ==================== */
#wrapper .mv-info-area{
	justify-content: space-between;
	opacity: 0;
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	width: 100%;
	padding: 0 15px 30px 15px;
	z-index: 200;
	transition: opacity .6s ease;
}

.mv-info-area.show {
	opacity: 1;
}

#wrapper .mv-info-area .icon{
	width: 66px;
	position: relative;
}

#wrapper .mv-info-area .icon:after{
  content: "";
	position: absolute;
	background: url("../images/icon_arrow.png") no-repeat 0 0;
	background-size: contain;
	width: 20px;
	height: 20px;
	left: 0;
	right: 0;
	margin: 0 auto;
	top: 40px;
	transform: translate(-50%, -50%);
	animation: updown 1.5s infinite ease-in-out;
}

@keyframes updown {
  0% {
    transform: translate(0, 0);
  }
  50% {
    transform: translate(0, -5px);
  }
  100% {
    transform: translate(0, 0);
  }
}

#wrapper .mv-info-area .mv-sns-list{
	width: 29px;
	margin-top: -10px;
}

#wrapper .mv-info-area .mv-sns-list li + li{
	margin-top: 20px;
}

#wrapper .mv-info-area.show {
  opacity: 1;
}

@media only screen and (max-width: 1024px) {

}

@media only screen and (max-width: 768px) {
	#wrapper .mv-info-area{
	 padding: 0 15px 65px 15px;
	}
	
	#wrapper .mv-info-area .icon{
		width: 48px;
	}

	#wrapper .mv-info-area .mv-sns-list{
		width: 24px;
		margin-top: 0;
	}

	#wrapper .mv-info-area .mv-sns-list li + li{
		margin-top: 16px;
	}

	#wrapper .mv-info-area .icon:after{
		top: 13px;
	}
}

.svglogo .mv-svg .svg-elem-1{
  opacity: 0;
  transition: opacity .8s ease;
}

.svglogo .mv-svg [class^="svg-elem-"]{
  opacity: 0;
  transition: opacity .8s ease;
}

.svglogo .mv-svg.active .svg-elem-1,
.svglogo .mv-svg.active [class^="svg-elem-"]{
  opacity: 1 !important;
}


/* ====================
   .sec01
   ==================== */
#wrapper .sec01{
	background: url("../images/sec01_bg-pc.jpg") no-repeat center 0;
	background-size: cover;
	padding: 148px 0 175px 0;
}

#wrapper .sec01 .title-img{
	border-bottom: 1px solid #fff;
}

#wrapper .sec01 .title-img img{
	width: 293px;
	margin: 0 auto 3px auto;
	display: block;
}

#wrapper .sec01 .sub-title{
	text-align: right;
	margin-top: -22px;
}

#wrapper .sec01 .s-text{
  font-size: 13px;
}

#wrapper .sec01 .contents-news-box{
  margin: 80px 0 0 0;
}

#wrapper .sec01 .news-text{
	font-size: 25px;
	line-height: 1.6;
	color: #333545;
	margin: 10px 0 13px 0;
}

#wrapper .sec01 .news-text span{
	background: linear-gradient(transparent 10%, #fff 10%);
	display: inline;
}

#wrapper .sec01 .contents-news-box img{
	margin-top: 30px;
}

#wrapper .sec01 .text{
	font-size: 16px;
	line-height: 1.6;
}

#wrapper .sec01 .text + .text{
	margin-top: 35px;
}

#wrapper .sec01 .contents-news-box{
	gap: 0 70px;
}

#wrapper .sec01 .contents-news-box .news-title{
	width: 470px;
}

#wrapper .sec01 .contents-news-box .news-title img{
	width: 419px;
}

#wrapper .sec01 .contents-news-box .news-area{

	margin-top: 22px;
}

#wrapper .sec01 .sns-list{
	gap: 0 60px;
}

#wrapper .sec01 .sns-list li{
	width: 42px;
	position: relative;
}

#wrapper .sec01 .sns-list li:first-of-type:after{
	content: "";
	position: absolute;
	right: -36px;
	top: 32px;
	width: 1px;
	background: #fff;
	height: 40px;
}

@media only screen and (max-width: 1024px) {
	#wrapper .sec01 .content-inner{
		padding: 0 30px;
	}
	
	#wrapper .sec01 .title-img img{
		width: 30%;
	}
	
	#wrapper .sec01 .news-text{
		font-size: 19px;
		line-height: 1.8;
	}	
}

@media only screen and (max-width: 768px) {
	#wrapper .sec01{
		background: url("../images/sec01_bg-sp.jpg") no-repeat center 0;
		background-size: cover;
		padding: 65px 0 75px 0;
	}

	#wrapper .sec01 .title-img img{
		width: 55%;
		margin: 0 auto 3px auto;
	}

	#wrapper .sec01 .sub-title{
		margin-top: -10px;
	}

	#wrapper .sec01 .s-text{
		font-size: 3vw;
	}
	
	#wrapper .sec01 .sub-title{
		margin-top: -16px;
	}

	#wrapper .sec01 .contents-news-box{
		flex-flow: row wrap;
		margin: 80px 0 0 0;
	}

	#wrapper .sec01 .news-text{
		font-size: 4.8vw;
		margin: 5px 0 6px 0;
	}

	#wrapper .sec01 .contents-news-box img{
		margin-top: 10px;
	}

	#wrapper .sec01 .text{
		font-size: 3.8vw;
		line-height: 1.6;
	}

	#wrapper .sec01 .text + .text{
		margin-top: 25px;
	}

	#wrapper .sec01 .contents-news-box{
		gap: 0;
		margin: 38px 0 0 0;
	}

	#wrapper .sec01 .contents-news-box .news-title{
		width: 100%;
	}

	#wrapper .sec01 .contents-news-box .news-title img{
		width: 100%;
	}

	#wrapper .sec01 .sns-list{
		gap: 0 45px;
		margin-top: 10px;
	}

	#wrapper .sec01 .sns-list li{
		width: 30px;
	}

	#wrapper .sec01 .sns-list li:first-of-type:after{
		right: -24px;
		top: 10px;
		width: 1px;
		height: 30px;
	}
}

/* ====================
   .sec02
   ==================== */
#wrapper .sec02{
	padding: 95px 0 80px 0;
	text-align: center;
}

#wrapper .sec02 .title{
	font-size: 25px;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 10px;
	padding-bottom: 20px;
}

#wrapper .sec02 .text-en{
	font-size: 30px;
	line-height: 1.6;
	display: inline-block;
  transform: scaleX(0.6);
}

#wrapper .sec02 .l-text{
	font-size: 30px;
	line-height: 1.6;
}

#wrapper .sec02 .s-text{
	font-size: 15px;
	line-height: 1.6;
	margin-top: 5px;
}

#wrapper .sec02 .content-box + .content-box{
	margin-top: 59px;
}

@media only screen and (max-width: 1024px) {

}

@media only screen and (max-width: 768px) {
	#wrapper .sec02{
		padding: 65px 0 80px 0;
	}

	#wrapper .sec02 .title{
		font-size: 4.5vw;
	}

	#wrapper .sec02 .text-en{
		font-size: 6vw;
	}

	#wrapper .sec02 .l-text{
		font-size: 5.5vw;
	}

	#wrapper .sec02 .s-text{
		font-size: 3.3vw;
		line-height: 1.8;
	}

	#wrapper .sec02 .content-box + .content-box{
		margin-top: 30px;
	}

}


/* ====================
   footer
   ==================== */
#wrapper .footer{
	text-align: center;
  font-size: 13px;
	line-height: 1.4;
	padding: 30px 0 20px 0;
}

@media only screen and (max-width: 1024px) {

}

@media only screen and (max-width: 768px) {
	#wrapper .footer{
		font-size: 3vw;
		padding: 0px 0 20px 0;
	}
}

