@charset "utf-8";

/*
/*    CSS MENU
/*

/*
*********************************************************************************
/*
/* コメントタイプ
/*
/*******************************************************************************/
/*------------------------------------------------------------------------------
--------------------------------------------------------------------------------
中コメント */
/*------------------------------------------------------------------------------
小コメント */
/* コメント */


/*
*********************************************************************************
/*
/* 大枠
/*
/*******************************************************************************/
html {
    overflow-y: scroll;
}
body#frontpage:not(.mv_animation_ended) {
	position: fixed;
	overflow: hidden;
	width: 100%;
	height: 100vh;
}

html:has(.js_header_on),
body.js_header_on {
	overflow: hidden;
}
/*
*********************************************************************************
/*
/* header
/*
/*******************************************************************************/
header {
	position: fixed;
	z-index: 100;
	background: #000;
	color: #fff;
	width: 100%;
	top: 0;
	left: 0;
	transition: var(--default-transition);
}

.gnav {
	position: fixed;
	z-index: 100;
	right: 0;
	top: 0;
	width: 85.4vw;
	transition: transform var(--default-transition);
	transform: translateX(100%);
	background: #fff;
}

.gnav_bg {
	position: fixed;
	top: 0;
	left: 0;
	z-index: 99;
	background: rgba(76, 76, 76, 0.8);
	transition: var(--default-transition);
	width: 100%;
	height: 100%;
	pointer-events: none;
	opacity: 0;
}

.gnav_in {
	height: 100dvh;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	overscroll-behavior-y: contain;
	background: #fff;
}

.gnav_btn {
	position: fixed;
	right: 4.6vw;
	top: 6.8vw;
	z-index: 101;
	width: 8vw;
	height: 6.3vw;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition: var(--default-transition);
	opacity: 0;
	pointer-events: none;
}

.gnav_btn:before {
	content: '';
	display: block;
	position: absolute;
	top: calc(50% - 0.5px);
	left: 0;
	width: 100%;
	height: 1px;
	z-index: 1;
	background: #fff;
	transition: var(--default-transition);
}

.gnav_btn span {
	width: 100%;
	height: 100%;
	position: relative;
}

.gnav_btn span:before,
.gnav_btn span:after {
	transition: var(--default-transition);
	content: "";
	display: block;
	position: absolute;
	left: 0;
	width: 100%;
	height: 1px;
	z-index: 1;
	background: #fff;
}

body.is-light-bg .gnav_btn:before,
body.is-light-bg .gnav_btn span:before,
body.is-light-bg .gnav_btn span:after {
	background: #000;
}
body.is-light-bg.js_header_on .gnav_btn:before,
body.is-light-bg.js_header_on .gnav_btn span:before,
body.is-light-bg.js_header_on .gnav_btn span:after {
	background: #fff;
}
.gnav_btn span:before {
	top: 0;
}

.gnav_btn span:after {
	bottom: 0;
}

.mv_animation_ended .gnav_btn,
body:not(#frontpage) .gnav_btn{
	opacity: 1;
	pointer-events: auto;
}

.mv_animation_ended .gnav_btn {
	opacity: 1;
	pointer-events: auto;
}

.js_header_on .gnav {
	transform: translateX(0);
}

.js_header_on .gnav_bg {
	pointer-events: auto;
	opacity: 1;
}

.js_header_on .gnav_btn {
	right: 88.2vw;
}

.js_header_on .gnav_btn:before {
	opacity: 0;
}

.js_header_on .gnav_btn span:before {
	top: 50%;
	transform: translateY(-50%) rotate(45deg);
}

.js_header_on .gnav_btn span:after {
	bottom: 50%;
	transform: translateY(50%) rotate(-45deg);
}
.gnav .nav_logo {
	background: #000;
	height: 29vw;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
}

.gnav .nav_logo a {
	display: block;
	width: 30vw;
}

.gnav .nav_con {
	padding-bottom: 20vw;
}
.gnav .nav_con .cta_li {
	padding: 5.3vw;
}


.gnav .gnav_list {
	border-top: 1px solid #d9d9d9;
}


.gnav_list>li {
	border-bottom: 1px solid #d9d9d9;
}

.gnav .gnav_list a {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	text-decoration: none;
	height: 16.5vw;
	position: relative;
	padding-left: 5.3vw;
}

.gnav .gnav_list a::after {
		position: absolute;
		content: "";
		background: url(../images/icon_link.svg) no-repeat center center / contain;
		width: 2vw;
		height: 5.4vw;
		top: 50%;
		right: 5.3vw;
		transform: translate(0%, -50%);
}
/*
*********************************************************************************
/*
/* モジュール
/*
/*******************************************************************************/
/*------------------------------------------------------------------------------
--------------------------------------------------------------------------------
テキスト */
/*------------------------------------------------------------------------------
--------------------------------------------------------------------------------
タイトル */


.site_tl_box {
	margin-bottom: 5vw;
}

.site_tl_box .site_tl_en {
	width: 127vw;
	margin-left: -41.8vw;
}

.site_tl_box .site_tl_ja {
	width: 42vw;
	margin: 0 auto;
	position: relative;
	padding-bottom: 3vw;
}

.site_tl_box .site_tl_ja::after {
	position: absolute;
	content: "";
	bottom: 0%;
	left: 50%;
	transform: translate(-50%, 0%);
	height: 1px;
	width: 42.1vw;
	background: var(--gold);
}

/*------------------------------------------------------------------------------
--------------------------------------------------------------------------------
リスト */
/*------------------------------------------------------------------------------
--------------------------------------------------------------------------------
ボタン */

/*------------------------------------------------------------------------------
CTA */

.cta_li {
	display: grid;
	grid-template-columns: 1fr;
	gap: 5.3vw;
}

.cta_li a {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	text-decoration: none;
	background: #000;
	color: #fff;
	text-align: center;
	position: relative;
	height: 15.5vw;
	letter-spacing: 0;
}
.cta_li>li+li a {
	background: var(--gold);
}


.cta_li a::after {
	position: absolute;
	content: "";
	background: url(../images/icon_arrow_next.svg) no-repeat center center / contain;
	filter: var(--svg_white);
	width: 4vw;
	height: 5.4vw;
	top: 50%;
	right: 4.2vw;
	transform: translate(0%, -50%);
	margin-top: -0.3vw;
}


/*------------------------------------------------------------------------------
--------------------------------------------------------------------------------
youtube */
.youtube {
	position: relative;
	width: 100%;
	padding-top: 56.25%;
	border-radius: 1.3vw;
	overflow: hidden;
}

.youtube iframe {
	position: absolute;
	top: 0;
	right: 0;
	width: 100%;
	height: 100%;
}

/*------------------------------------------------------------------------------
--------------------------------------------------------------------------------
mv */
/***************************************************
 * Generated by SVG Artista on 11/28/2025, 1:59:01 AM
 * MIT license (https://opensource.org/licenses/MIT)
 * W. https://svgartista.net
 **************************************************/

svg .svg-elem-1{fill:transparent;-webkit-transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 0.8s;transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 0.8s}svg.active .svg-elem-1{fill:rgb(255,255,255)}svg .svg-elem-2{fill:transparent;-webkit-transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 0.9s;transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 0.9s}svg.active .svg-elem-2{fill:rgb(255,255,255)}svg .svg-elem-3{fill:transparent;-webkit-transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 1s;transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 1s}svg.active .svg-elem-3{fill:rgb(255,255,255)}svg .svg-elem-4{fill:transparent;-webkit-transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 1.1s;transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 1.1s}svg.active .svg-elem-4{fill:rgb(255,255,255)}svg .svg-elem-5{fill:transparent;-webkit-transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 1.2000000000000002s;transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 1.2000000000000002s}svg.active .svg-elem-5{fill:rgb(255,255,255)}svg .svg-elem-6{fill:transparent;-webkit-transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 1.3s;transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 1.3s}svg.active .svg-elem-6{fill:rgb(255,255,255)}svg .svg-elem-7{fill:transparent;-webkit-transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 1.4000000000000001s;transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 1.4000000000000001s}svg.active .svg-elem-7{fill:rgb(255,255,255)}svg .svg-elem-8{fill:transparent;-webkit-transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 1.5s;transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 1.5s}svg.active .svg-elem-8{fill:rgb(255,255,255)}svg .svg-elem-9{fill:transparent;-webkit-transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 1.6s;transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 1.6s}svg.active .svg-elem-9{fill:rgb(255,255,255)}svg .svg-elem-10{fill:transparent;-webkit-transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 1.7000000000000002s;transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 1.7000000000000002s}svg.active .svg-elem-10{fill:rgb(255,255,255)}svg .svg-elem-11{fill:transparent;-webkit-transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 1.8s;transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 1.8s}svg.active .svg-elem-11{fill:rgb(255,255,255)}svg .svg-elem-12{fill:transparent;-webkit-transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 1.9000000000000001s;transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 1.9000000000000001s}svg.active .svg-elem-12{fill:rgb(255,255,255)}svg .svg-elem-13{fill:transparent;-webkit-transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 2s;transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 2s}svg.active .svg-elem-13{fill:rgb(255,255,255)}svg .svg-elem-14{fill:transparent;-webkit-transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 2.1s;transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 2.1s}svg.active .svg-elem-14{fill:rgb(255,255,255)}svg .svg-elem-15{fill:transparent;-webkit-transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 2.2s;transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 2.2s}svg.active .svg-elem-15{fill:rgb(255,255,255)}svg .svg-elem-16{fill:transparent;-webkit-transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 2.3s;transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 2.3s}svg.active .svg-elem-16{fill:rgb(255,255,255)}svg .svg-elem-17{fill:transparent;-webkit-transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 2.4000000000000004s;transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 2.4000000000000004s}svg.active .svg-elem-17{fill:rgb(255,255,255)}svg .svg-elem-18{fill:transparent;-webkit-transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 2.5s;transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 2.5s}svg.active .svg-elem-18{fill:rgb(255,255,255)}svg .svg-elem-19{fill:transparent;-webkit-transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 2.6s;transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 2.6s}svg.active .svg-elem-19{fill:rgb(255,255,255)}svg .svg-elem-20{fill:transparent;-webkit-transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 2.7s;transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 2.7s}svg.active .svg-elem-20{fill:rgb(255,255,255)}svg .svg-elem-21{fill:transparent;-webkit-transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 2.8s;transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 2.8s}svg.active .svg-elem-21{fill:rgb(255,255,255)}svg .svg-elem-22{fill:transparent;-webkit-transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 2.9000000000000004s;transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 2.9000000000000004s}svg.active .svg-elem-22{fill:rgb(255,255,255)}svg .svg-elem-23{fill:transparent;-webkit-transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 3s;transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 3s}svg.active .svg-elem-23{fill:rgb(255,255,255)}svg .svg-elem-24{fill:transparent;-webkit-transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 3.1000000000000005s;transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 3.1000000000000005s}svg.active .svg-elem-24{fill:rgb(255,255,255)}svg .svg-elem-25{fill:transparent;-webkit-transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 3.2s;transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 3.2s}svg.active .svg-elem-25{fill:rgb(255,255,255)}svg .svg-elem-26{-webkit-transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 3.3s;transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 3.3s}svg.active .svg-elem-26{}svg .svg-elem-27{-webkit-transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 3.4000000000000004s;transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 3.4000000000000004s}svg.active .svg-elem-27{}svg .svg-elem-28{-webkit-transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 3.5s;transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 3.5s}svg.active .svg-elem-28{}svg .svg-elem-29{-webkit-transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 3.6000000000000005s;transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 3.6000000000000005s}svg.active .svg-elem-29{}svg .svg-elem-30{-webkit-transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 3.7s;transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 3.7s}svg.active .svg-elem-30{}svg .svg-elem-31{-webkit-transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 3.8s;transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 3.8s}svg.active .svg-elem-31{}svg .svg-elem-32{-webkit-transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 3.9000000000000004s;transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 3.9000000000000004s}svg.active .svg-elem-32{}svg .svg-elem-33{-webkit-transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 4s;transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 4s}svg.active .svg-elem-33{}svg .svg-elem-34{-webkit-transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 4.1000000000000005s;transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 4.1000000000000005s}svg.active .svg-elem-34{}svg .svg-elem-35{-webkit-transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 4.2s;transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 4.2s}svg.active .svg-elem-35{}svg .svg-elem-36{-webkit-transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 4.3s;transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 4.3s}svg.active .svg-elem-36{}svg .svg-elem-37{-webkit-transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 4.4s;transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 4.4s}svg.active .svg-elem-37{}svg .svg-elem-38{fill:transparent;-webkit-transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 4.5s;transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 4.5s}svg.active .svg-elem-38{fill:rgb(255,255,255)}svg .svg-elem-39{-webkit-transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 4.6000000000000005s;transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 4.6000000000000005s}svg.active .svg-elem-39{}svg .svg-elem-40{fill:transparent;-webkit-transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 4.7s;transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 4.7s}svg.active .svg-elem-40{fill:rgb(255,255,255)}svg .svg-elem-41{-webkit-transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 4.8s;transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 4.8s}svg.active .svg-elem-41{}svg .svg-elem-42{fill:transparent;-webkit-transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 4.9s;transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 4.9s}svg.active .svg-elem-42{fill:rgb(255,255,255)}svg .svg-elem-43{-webkit-transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 5s;transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 5s}svg.active .svg-elem-43{}svg .svg-elem-44{fill:transparent;-webkit-transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 5.1s;transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 5.1s}svg.active .svg-elem-44{fill:rgb(255,255,255)}svg .svg-elem-45{-webkit-transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 5.2s;transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 5.2s}svg.active .svg-elem-45{}svg .svg-elem-46{-webkit-transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 5.3s;transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 5.3s}svg.active .svg-elem-46{}svg .svg-elem-47{-webkit-transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 5.4s;transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 5.4s}svg.active .svg-elem-47{}svg .svg-elem-48{fill:transparent;-webkit-transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 5.5s;transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 5.5s}svg.active .svg-elem-48{fill:rgb(255,255,255)}svg .svg-elem-49{-webkit-transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 5.6000000000000005s;transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 5.6000000000000005s}svg.active .svg-elem-49{}svg .svg-elem-50{-webkit-transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 5.7s;transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 5.7s}svg.active .svg-elem-50{}svg .svg-elem-51{-webkit-transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 5.8s;transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 5.8s}svg.active .svg-elem-51{}svg .svg-elem-52{fill:transparent;-webkit-transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 5.9s;transition:fill 0.7s cubic-bezier(0.47,0,0.745,0.715) 5.9s}svg.active .svg-elem-52{fill:rgb(255,255,255)}

/* カウンター全体を囲むコンテナ (4つの桁を保持) */
.counter-container {
	position: relative;
	/* width / height は JS で上書き */
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 5px;
	-webkit-mask-image: linear-gradient(to bottom,
			transparent 0%,
			black 15%,
			black 85%,
			transparent 100%);
	mask-image: linear-gradient(to bottom,
			transparent 0%,
			black 15%,
			black 85%,
			transparent 100%);
}

.digit-reel {
	display: block;
	overflow: hidden;
	background-position: 0 0;
	background-repeat: repeat-y;
	font-size: 0;
	box-sizing: border-box;
	animation-fill-mode: forwards;
    transform: translateZ(0); /* または translate3d(0, 0, 0) */
    
    /* 💡 推奨：ちらつき（フリッカー）対策 */
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    
    /* 💡 推奨：最適化のヒント */
    will-change: background-position, transform;
}

.mv {
	background: #000;
	position: relative;
	width: 100%;
	height: 100svh;
}

.mv::before {
	position: absolute;
	content: "";
	background: url(../images/mv_txt.png) no-repeat center center / contain;
	width: 100%;
	height: 6.3vw;
	z-index: 10;
	left: 0;
	top: calc((100svh / 2) - 56vw);
	opacity: 0;
}

.mv_bg {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 0;
	overflow: hidden;
	pointer-events: none;
}
.mv_bg img {
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	left: 0;
	-webkit-backface-visibility: visible;
	backface-visibility: visible;
	opacity: 0;
	object-fit: cover;
	object-position: center bottom;
}

.mv_counter {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	z-index: 2;
	width: 80vw;
}

.mv_door {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	z-index: 10;
	width: 48.4vw;
	opacity: 0;
	transition: 2s ease-in-out;
}

.mv_door.active {
	opacity: 1;
}

.mv_svg {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	z-index: 5;
	width: 48.4vw;
}

.mv_scroll {
	position: absolute;
	z-index: 10;
	left: 50%;
	bottom: 6vw;
	transform: translateX(-50%);
	width: 12vw;
	opacity: 0;
}

.mv_scroll::after {
	position: absolute;
	content: "";
	width: 1px;
	height:8vw;
	background: #ffffff;
	bottom: -6vw;
	left: 50%;
	transform: translate(-50%, 0%);
	animation: scrollLineAnimation 2s linear infinite;
}
        @keyframes scrollLineAnimation {
            0% {
                height: 0vw;
                bottom: 2vw;
            }
           80% {
                height: 8vw;
                bottom: -6vw;
            }
            100% {
                height: 0vw;
                bottom:-6vw;
            }
        }
.mv_counter.active {
	animation: fadeOutAndBlur 1s linear 1 both;
}

.mv_animation_ended .mv_bg img {
	animation: fadeInAndBlur 2s ease 1 both;
}

.mv_animation_ended .mv_scroll,
.mv_animation_ended .mv::before{
	animation: fadeInAndBlur 2s ease 1 both;
}

.mv::after {
	position: absolute;
	content: "";
	background: linear-gradient(to bottom,  rgba(0,0,0,0) 0%,rgba(0,0,0,0) 1%,rgba(0,0,0,1) 94%,rgba(0,0,0,1) 100%);
	width: 100%;
	height: 40vw;
	bottom: 0;
	left: 0;
}

@keyframes fadeOutAndBlur {
	0% {
		opacity: 1;
		filter: blur(0);
	}

	100% {
		opacity: 0;
		filter: blur(10px);
	}
}

@keyframes fadeInAndBlur {
	0% {
		filter: blur(10px);
		opacity: 0;
		scale: 1.15;
	}

	100% {
		filter: blur(0);
		opacity: 1;
		scale: 1;
	}
}
/*------------------------------------------------------------------------------
--------------------------------------------------------------------------------
テキストアニメーション */
.tate_move {
	-webkit-writing-mode: vertical-rl;
	writing-mode: vertical-rl;
}

.delay_lines:first-child {
	/* 背景などがある場合最初のテキストをそのアニメーション分遅らせる */
	--wait-bg: 1.3s;
}

.fade_txt .line {
	display: block;
}

.fade_txt .line span {
	opacity: 0;
}

.show.fade_txt .line span {
	animation: opacityChange 0.3s both;
	animation-delay: calc(var(--delay-word) * 1ms + var(--wait-bg, 0s));
	animation-play-state: paused;
}

.fade_txt .delay_lines.is-active .line span {
	animation-play-state: running;
}

.fade_txt.is-active .line span {
	animation-play-state: running;
}

@keyframes opacityChange {
	0% {
		opacity: 0;
	}

	100% {
		opacity: 1;
	}
}


/*------------------------------------------------------------------------------
--------------------------------------------------------------------------------
message */


#message {position: relative;background: #000;z-index: 2;}

#message .message_in {
	position: relative;
}

#message .message_in::before {
	position: absolute;
	content: "";
	background: url(../images/message_bg01_sp.webp) no-repeat right top / contain;
	top: 75vw;
	right: 0;
	width: 80vw;
	height: 154vw;
	z-index: 1;
	pointer-events: none;
}

#message .message_scroll a {
	position: absolute;
	content: "";
	bottom: -21vw;
	left: 50%;
	transform: translate(-50%, 0%);
	width: 30vw;
	height: 13.1vw;
	display:block;
	
}
   
#message .message_scroll::after {
	background: #fff;
	position: absolute;
	content: "";
	bottom: -21vw;
	left: 50%;
	transform: translate(-50%, 0%);
	width: 1px;
	height: 13.1vw;
	animation: scrollLineAnimation02 2s linear infinite;
}
        @keyframes scrollLineAnimation02 {
            0% {
                height: 0%;
                bottom:-7.9vw;
            }
           80% {
                height: 13.1vw;
                bottom: -21vw;
            }
            100% {
                height: 0%;
                bottom:-21vw;
            }
        }
#message .con01 {
	position: relative;
	padding-top: 10.6vw;
	z-index: 1;
	height: 140vw;
}

#message .con01 .tl {
	width: 19.2vw;
	position: absolute;
	top: 42vw;
	left: 2.6vw;
}

#message .con01 .txt {
	width: 27.5vw;
	margin: 0 auto;
}

#message .con02 {
	color: #fff;
	position: relative;
	z-index: 1;
	height: 86.7vw;
}

#message .con02 .txt01 {
	padding-left: 5vw;
}

#message .con03 {
	position: relative;
	z-index: 1;
	color: #fff;
}

#message .con03 .img01 {
	width: 52vw;
	left: -5.3vw;
	z-index: 10;
	top: -2.6vw;
	position: absolute;
}

#message .con03::before {
	position: absolute;
	content: "";
	background: url(../images/message_bg02_sp.webp) no-repeat center top /100% auto;
	width: 100%;
	height: 100%;
}

#message .con03 .inner {
	position: relative;
		height: 349.6vw;
}

#message .con03 .img01+* {
	position: relative;
	z-index: 10;
}

#message .con03 .txt03 {
	margin: 0 auto;
	height: 138.7vw;
	padding-top: 44vw;
}

#message .con03 .txt04 {
	margin: 0px 2vw 0 auto;
}

#message .con03 .img02 {
	position: absolute;
	bottom: 30vw;
	right: -10vw;
	width: 90vw;
	opacity: 0.8;
}

#message .con03 .img03 {
	position: absolute;
	bottom: 3.2vw;
	left: -17vw;
	width: 64.5vw;
}


#message .con04 {
	color: #fff;
	height: 130.5vw;
	position: relative;
}

#message .con04 .txt05 {
	margin: 0 auto;
	z-index: 2;
	position: relative;
}

#message .con04 .img01 {width: 100vw;left: -24vw;position: absolute;top: 63vw;z-index: 2; opacity: 0.8}

#message .con04 .img02 {
	position: absolute;
	z-index: 10;
	width: 62.7vw;
	right: 0;
	top: 94vw;
}


/*------------------------------------------------------------------------------
--------------------------------------------------------------------------------
story */
.story_area {
	background: #f7f7f7 url(../images/story_bg_sp.webp) no-repeat center top / 100% auto;
	position: relative;
	padding-top: 29vw;
	padding-bottom: 11vw;
	margin-top: -1px;
}

.story_area #story {
	padding-top: 14vw;
}

.story_area #story .inner {
	position: relative;
	padding: 0 1.3vw;
	z-index: 10;
}
/*------------------------------------------------------------------------------
--------------------------------------------------------------------------------
history */
#history {
	background: var(--beige);
	position: relative;
	margin-top: -1px;
}

#history::before {
	position: absolute;
	content: "";
	width: 100%;
	height: 18.7vw;
	background: linear-gradient(to bottom,  rgba(247,247,247,1) 0%,rgba(239,234,226,1) 100%);
}
#history .inner {
	position: relative;
}

#history .history_sliders {
	background: #efeae2;
	padding-bottom: 10.2vw;
}

#history .history_sliders .swiper-pagination {
	position: relative;
	inset: 0;
}

#history .history_slider02 {
	position: relative;
	width: 85.1vw;
	margin-left: -5.3vw;
	height: 95vw;
	padding: 14.6vw 15.2vw 0 0;
}

#history .history_slider02:before{
	content: '';
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 10;
	background: url(../images/history_frame_sp.webp) no-repeat left center / contain;
}

#history .history_slider02 .swiper-slide {
	position: relative;
	z-index: 1;
}

#history .site_tl_box .site_tl_en {
	margin-left: -6vw;
		padding-top:16vw;
}

#history .history_slider01 {
	width: 43.6vw;
	margin: 0 auto 5vw 3.2vw;
}



#history .txt_block .catch {
	width: 41.5vw;
	margin: 8vw auto 8vw;
	position: relative;
	padding-bottom: 3vw;
}

#history .txt_block .catch::after {
	position: absolute;
	content: "";
	background: var(--gold);
	width: 27vw;
	height: 1px;
		bottom: 0%;
	left: 50%;
	transform: translate(-50%, 0%);
}

#history .txt_block .txt {
	text-align: center;
}

#history .slide_area .link {
	text-align: right;
	font-size: var(--rem13);
	margin-top: 5vw;
	font-weight: 800;
}

#history .slide_area .link a {
	text-decoration: none;
	position: relative;
	padding-right:10vw
}

#history .slide_area .link a::after {
	position: absolute;
	content: "";
	background: url(../images/icon_arrow_next.svg) no-repeat center center / contain;
	width: 4vw;
	height: 4vw;
	top: 50%;
	right: 04vw;
	transform: translate(0%, -50%);
}


/*------------------------------------------------------------------------------
--------------------------------------------------------------------------------
vision */
#vision {
	position: relative;
	background: #fff url(../images/vision_bg_sp.webp) no-repeat center bottom / 100% auto;
	text-align: center;
	padding-bottom: 10.4vw;
	margin-top: -1px;
}

#vision::before {
	height: 18.6vw;
	position: absolute;
	content: "";
	width: 100%;
	background: linear-gradient(to bottom,  rgba(239,234,226,1) 0%,rgba(255,255,255,1) 100%);
	top: 0;
	left: 0;
}

#vision .site_tl_box {
	padding-top: 18.6vw;
}

#vision .site_tl_box .site_tl_en {
	width: 100vw;
	margin: 0 -5.3vw 5vw;
}

#vision .site_tl_box .site_tl_en {
	margin-left: -9.5vw;
	width: 108.4vw;
	margin-bottom: 5vw;
}

#vision .site_tl_box .site_tl_ja::after {
	width: 27vw;
}

#vision .txt {
	line-height: 1.9;
}

#vision .catch {
	font-size: var(--rem19);
	line-height: 1.6;
	font-weight: 500;
	margin-top: 8vw;
}

#vision .con_logo {
	width: 29.1vw;
	margin: 6vw auto 91vw;
}

/*------------------------------------------------------------------------------
--------------------------------------------------------------------------------
news */
#news {
	background: #f7f5f4;
	position: relative;
	/* margin-top: -1px; */
	padding-bottom: 9.8vw;
}

#news::before {
	position: absolute;
	content: "";
	background: linear-gradient(to bottom,  rgba(232,227,220,1) 0%,rgba(255,255,255,1) 100%);
	background: linear-gradient(to bottom, rgba(232, 227, 220, 1) 0%, rgb(247 245 244) 100%);
	width: 100%;
	height: 18.6vw;
	top: -1px;
	left: 0;
	height: 9.8vw;
}

#news .inner {

	position: relative;
}

#news .site_tl_box .site_tl_en {
	margin-left: 17.5vw;
	margin-bottom: 6vw;
	padding-top: 7.7vw;
	width: 111.6vw;
}

#news .site_tl_box .site_tl_ja::after {
	width: 37.1vw;
}

.news_li>li {
	position: relative;
}

.news_li>li::after {position: absolute;content: "";background: #bfbfbf;bottom: 0%;left: 50%;transform: translate(-50%, 0%);width: 110vw;height: 1px;}


.news_li a {
	text-decoration: none;
	display: block;
	position: relative;
	padding: 2.3vw 7vw 3vw 0;
}
.news_li a::after {
	position: absolute;
	content: "";
	background: url(../images/icon_link.svg) no-repeat center center / contain;
	width: 2vw;
	height: 5.4vw;
	top: 50%;
	right: 2.4vw;
	transform: translate(0%, -50%);
}
.news_li .date {
	color: #737373;
	font-size: var(--rem13);
	letter-spacing: 0.05em;
}

.news_li .txt {
	line-height: 1.4;
	letter-spacing: 0.05em;
}

#news .btn_link {
	text-align: right;
	font-size: var(--rem13);
	margin-top: 6vw;
	font-weight: 800;
}

#news .btn_link a {
	text-decoration: none;
	position: relative;
	padding-right: 6vw;
}

#news .btn_link a::after {
	position: absolute;
	content: "";
	background: url(../images/icon_arrow_next.svg) no-repeat center center / contain;
	width: 4vw;
	height: 4vw;
	top: 50%;
	right: 0;
	transform: translate(0%, -50%);
}


/*------------------------------------------------------------------------------
--------------------------------------------------------------------------------
f_cta */
.f_cta{
	margin-top: -1px;
	background: #f7f7f7 url(../images/footer_bg_sp.webp) no-repeat center bottom / 100% auto;
	position: relative;
	padding-bottom: 50vw;
}

/*------------------------------------------------------------------------------
--------------------------------------------------------------------------------
下層 */
body:not(#frontpage) header {
	position: fixed;
	opacity: 1;
	height: 20.3vw;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	top: 0;
	left: 0;
		pointer-events: inherit;
}
body:not(#frontpage) header>.logo {
	width: 29.7vw;
	margin: 0 auto;
	display: block;
}

body:not(#frontpage) .site_tl_box .site_tl_en {
	margin-left: 17.5vw;
	margin-bottom: 6vw;
	padding-top: 4vw;
	width: 111.6vw;
}
body:not(#frontpage) main {
	background: #fff url(../images/footer_bg_sp.webp) no-repeat center bottom / 100% auto;
	padding-bottom: 50vw;
}
body:not(#frontpage) .bread_area ul {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-start;
	color: #3f3f3f;
	font-size: var(--rem11);
	padding-top: 22.1vw;
}

body:not(#frontpage) .bread_area li:not(:last-child) {
	position: relative;
	padding-right: 3vw;
	margin-right: 3vw;
}

body:not(#frontpage) .bread_area li:not(:last-child)::after {
	position: absolute;
	content: "";
	background: url(../images/icon_link.svg) no-repeat center center / contain;
	width: 1vw;
	height: 1.4vw;
	top: 50%;
	right: 0;
	transform: translate(0%, -50%);
}
body:not(#frontpage) .bread_area a {
	color: #898989;
	text-decoration: none;
}
.news_detail_tl .date {
	color: #737373;
	font-size: var(--rem13);
	letter-spacing: 0.05em;
}

.news_detail_tl .txt {
	font-weight: 700;
	font-size: var(--rem20);
	line-height: 1.6;
	border-bottom: 1px solid #bfbfbf;
	padding-bottom: 6vw;
	margin-bottom: 6vw;
}

.news_detail_con>*+* {
	margin-top: 6vw;
}

.news_detail_con p img {
	width: auto;
	max-width: 100%;
}

.news_control {
	border-top: 1px solid #bfbfbf;
    padding-top: 6vw;
    margin-top: 6vw;
}

.news_control.news_control02 {
	border-top: 0;
    padding-top: 0;
}

.news_control a {
	text-decoration: none;
	display: block;
}

.page_list_num {
	display: flex;
	justify-content: center;
	gap: 2vw;
}

.page_list_num .page-numbers {
	color: #898989;
}

.page_list_num .page-numbers.current {
	color: var(--color);
}

.page_list_back {
	text-align: center;
}

.pagge_move_link {
	margin: 5vw 5.3vw 0;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
}

.pagge_move_link p.prev a {
	position: relative;
	padding-left:5vw;
}
.pagge_move_link p.prev a::before {
	position: absolute;
	content: "";
	background: url(../images/icon_arrow_prev.svg) no-repeat center center / contain;
	width: 4vw;
	height: 4vw;
	top: 50%;
	left: 0;
	transform: translate(0%, -50%);
}
.pagge_move_link p.next {
	margin-left: auto;
}
.pagge_move_link p.next a {

	position: relative;
	padding-right:5vw;
}
.pagge_move_link p.next a::before {
	position: absolute;
	content: "";
	background: url(../images/icon_arrow_next.svg) no-repeat center center / contain;
	width: 4vw;
	height: 4vw;
	top: 50%;
	right: 0;
	transform: translate(0%, -50%);
}
/*------------------------------------------------------------------------------
--------------------------------------------------------------------------------
footer */
footer {
	background: #000;
	position: relative;
	margin-top: -1px;
}

footer #pagetop {
	position: absolute;
	width: 12vw;
	top: -24vw;
	right: 2.6vw;
}

footer .f_nav_wrap {
	text-align: center;
}
footer .f_nav_wrap nav ul {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.5vw;
}
footer .f_nav_wrap nav a {
	color: #fff;
	display: inline-block;
	text-decoration: none;
	position: relative;
	font-size: var(--rem14);
	padding-right: 4.6vw;
}

footer .f_nav_wrap nav a[target="_blank"]::after {
	position: absolute;
	content: "";
	background: url(../images/icon_blank.svg) no-repeat center center / contain;
	width: 2.9vw;
	aspect-ratio: 1/1;
	filter: var(--svg_white);
	top: 1.6vw;
	right: 0;
}


footer .sns {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	width: 29.4vw;
	gap: 1vw;
	margin: 7vw auto 8vw;
}

footer .f_logo {
	width: 29.7vw;
	margin: 0 auto;
}

footer small {
	display: block;
	text-align: center;
	color: #fff;
	font-size: var(--rem08);
	padding: 4vw 0 2vw;
}