/*----------------------------------------
	base
------------------------------------------*/
html.html_reset {margin: 0!important; padding: 0!important;}
body {position: relative; height:100%; width: 100%; overflow-y: scroll; overflow-x: hidden; background-color: var(--c_bg_color); text-align: center; color: var(--c_font_color); font-family: var(--font_base_setting); font-size: var(--base_font_size); font-optical-sizing: auto; font-weight: 500; line-height: var(--base_line_height); word-break: break-word; /* word-break: auto-phrase; */
}
main {position: relative; overflow: clip;}
a { color: var(--c_link_color); }
img {max-width: 100%; height: auto;}
@media only screen and (max-width: 835px){
body {overflow: hidden; min-height: 100%;
	&.scroll_on { overflow-y: scroll; overflow-x: hidden; pointer-events: auto;}
}
}

/*----------------------------------------
	module
------------------------------------------*/
.pc_only {display: block;}
.sp_only {display: none!important;}
@media only screen and (max-width: 835px){
	.pc_only {display: none!important;}
	.sp_only {display: block!important;}
}

.mod_mb_0{margin-bottom: 0!important;}
.mod_mb_0p5distance{margin-bottom: calc(var(--base_distance)*0.5)!important;}
.mod_mb_1p0distance{margin-bottom: calc(var(--base_distance)*1)!important;}
.mod_mb_1p5distance{margin-bottom: calc(var(--base_distance)*1.5)!important;}
.mod_mb_2p0distance{margin-bottom: calc(var(--base_distance)*2)!important;}
.mod_mb_2p5distance{margin-bottom: calc(var(--base_distance)*2.5)!important;}
.mod_mb_3p0distance{margin-bottom: calc(var(--base_distance)*3)!important;}
.mod_mb_3p5distance{margin-bottom: calc(var(--base_distance)*3.5)!important;}
.mod_mb_4p0distance{margin-bottom: calc(var(--base_distance)*4)!important;}
.mod_mb_4p5distance{margin-bottom: calc(var(--base_distance)*4.5)!important;}
.mod_mb_0p5gap{margin-bottom: calc(var(--base_gap)*0.5)!important;}
.mod_mb_1p0gap{margin-bottom: calc(var(--base_gap)*1)!important;}
.mod_mb_1p5gap{margin-bottom: calc(var(--base_gap)*1.5)!important;}
.mod_mb_2p0gap{margin-bottom: calc(var(--base_gap)*2)!important;}
.mod_mb_2p5gap{margin-bottom: calc(var(--base_gap)*2.5)!important;}
.mod_mb_3p0gap{margin-bottom: calc(var(--base_gap)*3)!important;}
.mod_mb_3p5gap{margin-bottom: calc(var(--base_gap)*3.5)!important;}
.mod_mb_4p0gap{margin-bottom: calc(var(--base_gap)*4)!important;}
.mod_mb_4p5gap{margin-bottom: calc(var(--base_gap)*4.5)!important;}

.mod_text_bold{font-weight: bold;}
.mod_text_center{text-align: center;}
.mod_text_left{text-align: left;}
.mod_text_right{text-align: right;}
.mod_text_base{font-size: var(--base_font_size); line-height: var(--base_line_height);}
.mod_text_small {font-size: 0.6em; line-height: 1em;}
.mod_mb_0p5em{margin-bottom: 0.5em;}
.mod_mb_1p0em{margin-bottom: 1em;}
.mod_mb_1p5em{margin-bottom: 1.5em;}
.mod_mb_2p0em{margin-bottom: 2em;}
.mod_text_underline{text-decoration: underline;}

.mod_flex_box_01 , .mod_flex_box_02 , .mod_flex_box_03 , .mod_flex_box_04 { display: flex; flex-wrap:wrap; gap:var(--base_gap); justify-content: space-between;
	&.jst_center {justify-content: center; }
	&.ali_center {align-items: center; }
}
.mod_flex_box_01 { div , li {width: 100%;} }
.mod_flex_box_02 { div , li {width: calc((100% - var(--base_gap)*1)/2);} }
.mod_flex_box_03 { div , li {width: calc((100% - var(--base_gap)*2)/3);} }
.mod_flex_box_04 { div , li {width: calc((100% - var(--base_gap)*3)/4);} }
@media only screen and (max-width: 835px){
	.mod_flex_box_01 { div , li {width: 100%;} }
	.mod_flex_box_02 { div , li {width: 100%;} }
	.mod_flex_box_03 { div , li {width: calc((100% - var(--base_gap)*1)/2);} }
	.mod_flex_box_04 { div , li {width: calc((100% - var(--base_gap)*1)/2);} }
}

.mod_text_slide_anim_box {display: flex; height: 100px;
	img {display: block; width: auto; max-width: initial; height: 100%; animation: hor_move_l 40s linear infinite;}
	&.reverse {animation: hor_move_r 40s linear infinite;}
}

.mod_youtube_iframe_size {position: relative; display: block; width: 100%; height: auto; aspect-ratio: 16 / 9;}
.mod_disactive { pointer-events: none; }
.mod_negative_margin_top {margin-top: -20vh; padding-top: 20vh;}
.mod_scroll_bar_delete {-ms-overflow-style: none; scrollbar-width: none;}
.mod_scroll_bar_delete::-webkit-scrollbar {display:none;}

/* wrap settings
-------------------------------*/
.wrap_100px  { position: relative; margin: 0 auto; width: var(--base_wrap_width); max-width: 100px;}
.wrap_200px  { position: relative; margin: 0 auto; width: var(--base_wrap_width); max-width: 200px;}
.wrap_300px  { position: relative; margin: 0 auto; width: var(--base_wrap_width); max-width: 300px;}
.wrap_400px  { position: relative; margin: 0 auto; width: var(--base_wrap_width); max-width: 400px;}
.wrap_500px  { position: relative; margin: 0 auto; width: var(--base_wrap_width); max-width: 500px;}
.wrap_600px  { position: relative; margin: 0 auto; width: var(--base_wrap_width); max-width: 600px;}
.wrap_700px  { position: relative; margin: 0 auto; width: var(--base_wrap_width); max-width: 700px;}
.wrap_800px  { position: relative; margin: 0 auto; width: var(--base_wrap_width); max-width: 800px;}
.wrap_900px  { position: relative; margin: 0 auto; width: var(--base_wrap_width); max-width: 900px;}
.wrap_1000px { position: relative; margin: 0 auto; width: var(--base_wrap_width); max-width: 1000px;}
.wrap_1100px { position: relative; margin: 0 auto; width: var(--base_wrap_width); max-width: 1100px;}
.wrap_1200px { position: relative; margin: 0 auto; width: var(--base_wrap_width); max-width: 1200px;}
.wrap_1300px { position: relative; margin: 0 auto; width: var(--base_wrap_width); max-width: 1300px;}
.wrap_1400px { position: relative; margin: 0 auto; width: var(--base_wrap_width); max-width: 1400px;}
.wrap_1500px { position: relative; margin: 0 auto; width: var(--base_wrap_width); max-width: 1500px;}
.wrap_1600px { position: relative; margin: 0 auto; width: var(--base_wrap_width); max-width: 1600px;}
.wrap_1700px { position: relative; margin: 0 auto; width: var(--base_wrap_width); max-width: 1700px;}
.wrap_1800px { position: relative; margin: 0 auto; width: var(--base_wrap_width); max-width: 1800px;}
.wrap_1900px { position: relative; margin: 0 auto; width: var(--base_wrap_width); max-width: 1900px;}
.wrap_100px , .wrap_200px , .wrap_300px , .wrap_400px , .wrap_500px , .wrap_600px , .wrap_700px , .wrap_800px , .wrap_900px , .wrap_1000px , .wrap_1100px , .wrap_1200px , .wrap_1300px , .wrap_1400px , .wrap_1500px , .wrap_1600px , .wrap_1700px , .wrap_1800px , .wrap_1900px {
	&.w_100 {width: 100%;}
} 

/*----------------------------------------
	loading / opening animation
------------------------------------------*/
/* #loading {position: fixed; top: 0; left: 0; display: block; width: 100%; height: 100vh; height: 100svh; background-color: var(--c_bg_color);z-index: var(--z_loading);
	&.is_loaded {display: none;}
	&.load_open { animation: fade_out 1.4s forwards; pointer-events: none;}
	.logo {position: absolute; top: 50%; left: 50%; transform: translate(-50% , -50%); width: min(300px , 50%);
		img {width: 100%;}
	}
} */

#loading {position: fixed; top: 0; left: 0; display: block; width: 100%; height: 100vh; height: 100svh;  background: repeat center url(../images/webp/bg_noise_darkblue.webp); background-color: var(--c_bg_color); background-size: 250px; z-index: var(--z_loading);
	&.is_loaded {display: none;}
	&.load_open { animation: fade_out 1.2s forwards; pointer-events: none;}
	.logo {position: absolute; top: 50%; left: 50%; transform: translate(-50% , -50%); width: min(250px , 50%);
		img {display: block; width: 100%; height: auto; backface-visibility: visible; animation: rotation_loading_logo 2s linear infinite;}
	}
}

/*----------------------------------------
	common class
------------------------------------------*/

/* common parts
-------------------------------*/
.cmn_section {position: relative; display: block; width: 100%; height: auto; margin: 0 auto; padding: calc(var(--base_distance)*1) 0;}
.cmn_in_page_main {position: relative; display: block; width: 100%; height: auto; margin: 0 auto; padding: calc(var(--base_distance)*1) 0;}

.cmn_bg_layer {position: absolute; top: 0; left: 0; width: 100%; height: 100%;}
.cmn_main_layer {position: relative;}

.cmn_link_btn_outer {position: relative; display: block; text-align: center; width: 100%; height: auto; margin: 0 auto;}
.cmn_link_btn_a {position: relative; display: inline-block; margin: 0 auto; padding: 0.5em 1.5em; height: auto; width: auto; min-width: min(340px , 100%); background-color: var(--c_white); line-height: 1.4em; color: var(--c_link_color); font-size: clamp( 16px , 5.5vw , 26px ); text-decoration: initial!important; transition: 0.2s;
	img {position: relative; height: 1.4em; width: auto;}
	span {position: relative;}
	&::before {position: absolute; display: block; content: ""; background-color: var(--c_theme_color); width: 100%; height: 100%; left: 0; top: 0; transform-origin: right top; transform: scale(0, 1); transition: transform 0.4s;}
	&:hover {color: var(--c_white);
		&::before {transform-origin: left top; transform: scale(1,1);}
	}
	&.w_100 {width: 100%;}
	&.disactive {pointer-events: none; filter: grayscale(1); opacity: 0.5;}
}

:root {--h_title_size: min(66px , 6.5vw);}
.cmn_h_title_outer {position: relative; display: block; width: 90%; height: auto; margin: 0 auto; margin-bottom: calc(var(--base_distance)*0.8); text-align: center;}
.cmn_h_title {position: relative; display: inline-block; margin: 0 auto;
	&.type_img {height: var(--h_title_size); width: auto;
		img {display: block; width: auto; height: 100%; }
	}
	&.type_text {font-family: var(--f_decol); font-size: calc(var(--h_title_size)*0.85); line-height: 1.4em; color: var(--c_theme_color); letter-spacing: -0.05em;
		span {position: relative; display: inline-block;}
	}
	&::before , &::after { position: absolute; display: block; bottom: 0; content: ""; height: calc(var(--h_title_size)*0.6); width: calc(var(--h_title_size)* 0.6 * 178 / 44);}
	&::before {left: 0; background: no-repeat center right url(../images/svg/parts_h_title_side_l.svg); background-size: contain; transform: translate(-120% , 0%);}
	&::after {right: 0; background: no-repeat center left url(../images/svg/parts_h_title_side_r.svg); background-size: contain; transform: translate(120% , 0%);}
	&.type_text {
		&::before {transform: translate(-120% , -20%);}
		&::after {transform: translate(120% , -20%);}
	}
}
.cmn_h_title_02 {font-family: var(--f_decol); font-size: calc(var(--h_title_size)*0.8); line-height: 1.4em; color: var(--c_green); margin-bottom: 1.2em;}

.cmn_coming_soon_img{position: relative;background: var(--c_gray);aspect-ratio:16/9;display: flex;justify-content: center;align-items: center;
    &::before {content: 'COMING SOON';position: absolute;color: var(--c_white_l);font-size: 2em;}
}

/* accordion
-------------------------------*/
.cmn_accordion_box {
	.cmn_accordion_trigger { cursor: pointer; }
	.cmn_accordion_content { overflow: hidden; height: 0; transition: 0.4s ease;
	  &.accordion_open { height: auto; }
	}
}

/* write box
-------------------------------*/
.cmn_write_box_outer {position: relative; display: block; padding: calc(var(--base_gap)*2); margin-bottom: calc(var(--base_gap)*2);}
@media only screen and (max-width: 835px){
	.cmn_write_box_outer  {padding: calc(var(--base_gap)*2.5) calc(var(--base_gap)*1.5);}
}
:root {--cmn_write_box_theme_color: var(--c_theme_color);}
.cmn_write_box {position: relative; text-align: left; font-size: clamp(13px , 2vw , 16px); line-height: 1.5em;  width: 100%;
	.title_box {position: relative; display: block; padding-bottom: calc(clamp(17px , 2vw , 24px)*0.8) ; margin-bottom: 2em; border-bottom: 4px double var(--cmn_write_box_theme_color); }
	.date { font-size: clamp(12px , 2vw , 14px); line-height: 1.4em; font-weight: bold; margin-bottom: 0.7em; letter-spacing: 0.1em; }
	.box_title { position: relative; display: block; width: 100%; font-size: clamp(19px , 2vw , 24px);  line-height: 1.4em; font-weight: bold;}
	.border_box {position: relative; display: block; width: 100%; height: auto; background-color: var(--c_black_d); border: 1px solid var(--cmn_write_box_theme_color); padding: min( calc(var(--base_gap)*2) , 5vw) min( calc(var(--base_gap)*2) , 4vw); margin-bottom: 1.5em;}
	iframe {width: 100%;}
	figure { margin-bottom: 1.5em;}
	img {display: block; max-width: 100%; height: auto; margin: 0 auto; margin-bottom: 1.5em;
		&.app_badge {width: 170px!important; padding-top: 5px;}
	}
	p {line-height: 1.7em;}
	a {overflow-wrap: break-word; text-decoration: underline; font-weight: bold;}
	ul {margin-bottom: 1em;
		li {position: relative; display: block; margin-bottom: 0.5em; padding-left: 1.2em; 
			&::before {position: absolute; display: block; content: ""; top: 0; left: 0; width: 1em; height: 1em; transform: translateY(0.3em) scale(0.4); background-color: var(--cmn_list_color); border-radius: 9999px;}
			&:last-of-type {margin-bottom: 0;}
		}
	}
	hr {border-top: 1px solid var(--cmn_write_box_theme_color); border-right: none;border-bottom: none;border-left: none; margin-bottom: 3em; margin-top: 3em;}
	strong {font-weight: 900;}
	&.single h2 , &.in_page h3 {position: relative; display: block; padding-bottom: 0.4em; padding-left: 1.1em; font-size: clamp(17px , 2vw , 19px); font-weight: bold; margin-bottom: 0.7em; margin-top: 3em; line-height: 1.4em; border-bottom: 1px solid var(--cmn_write_box_theme_color); border-style: dashed; border-top: none; border-left: none; border-right: none; color: var(--c_font_color);
		&::before {position: absolute; display: block; content: ""; left: 0; top: 0.4em; width: 0.6em; height: 0.6em; background-color: var(--cmn_write_box_theme_color); transform: rotateZ(45deg);}
	}
	&.single h3 , &.in_page h4 {position: relative; display: inline-block; font-size: clamp(15px , 2vw , 17px); font-weight: bold; margin-bottom: 0.7em; margin-top: 1em; line-height: 1.4em; padding: 0.1em 0.7em 0.2em; border: 1px solid var(--cmn_write_box_theme_color); color: var(--cmn_write_box_theme_color);}
	&.single h4 , &.in_page h5 {position: relative; display: block; margin-top: 1.2em; margin-bottom: 0.2em; font-size: 1.05em; line-height: 1.4em; font-weight: bold; color: var(--cmn_write_box_theme_color); padding-left: 0.7em;
		&::before { position: absolute; display: block; content: ""; top: 0.75em; left: 0; width: 0.3em; height: 0.6em; background-color: var(--cmn_write_box_theme_color); transform: translateY(-50%); clip-path: polygon(0 0, 0% 100%, 100% 50%);}
	}
}

/*-- list style --*/
:root {--cmn_list_color: var(--c_theme_color);}
ul {
	&.cmn_list_circle , &.cmn_list_kome , &.cmn_list_asterisk  { 
		li {position: relative; display: block; margin-bottom: 0.5em; padding-left: 1.2em;
			&:last-of-type {margin-bottom: 0;}
		}
	}
	&.cmn_list_circle {
		li {
			&::before {position: absolute; display: block; content: ""; top: 0; left: 0; width: 1em; height: 1em; transform: translateY(0.3em) scale(0.4); background-color: var(--cmn_list_color); border-radius: 9999px;}
		}
	}
	&.cmn_list_kome {
		li { padding-left: 1.2em; font-size:0.95em; line-height:1.4em;
			&::before {position: absolute; display: block; content: ""; content: "※"; top: 0; left: 0; width: 1em; height: 1em; transform: translateY(0em); color: var(--cmn_list_color); background: initial;}
		}
	}
	&.cmn_list_asterisk {
		li { padding-left: 0.8em; font-size:0.95em; line-height:1.4em;
			&::before {position: absolute; display: block; content: ""; content: "*"; top: 0; left: 0; width: 1em; height: 1em; transform: translateY(0em); color: var(--cmn_list_color); background: initial;}
		}
	}
	&.cmn_list_underline {
		li { line-height:1.4em; border-bottom: 1px solid var(--cmn_list_color); padding-top: 0.8em; padding-bottom: 0.8em; margin-bottom: 0;
			&::before {position: absolute; display: block; content: ""; top: 0; left: 0; width: 1em; height: 1em; transform: translateY(calc(0.3em + 0.8em)) scale(0.4); background-color: var(--cmn_list_color); border-radius: 9999px;}
		}
	}
}
/*-- list style --*/

/*----------------------------------------
	header
------------------------------------------*/
:root { --header_logo_size: min(220px , 32vw);}
header{
	.header_logo { position: fixed; z-index: var(--z_header_logo);  top: 0; left: 0; width: var(--header_logo_size); height: var(--header_logo_size); transform: translate(-22% , -30%); transition: 0.2s;
		&::before { position: absolute; display: block; content: ""; top: 0; left: 0; width: 100%; height: 100%; background: no-repeat center url(../images/svg/header_logo_frame.svg); background-size: contain; animation: rotation 60s linear infinite;}
		img {position: absolute; display: block; top: 50%; left: 50%; width: 48%; height: auto; transform: translate(calc(-50% + 10%) , calc(-50% + 25%));}
		&.size_small {--header_logo_size: min(180px , 28vw);}
	}
}
@media only screen and (max-width: 835px){
	header{
		.header_logo {}
	}
}

/*----------------------------------------
	navigation
------------------------------------------*/
:root {--header_height: min(44px , 10vh);}
@media only screen and (min-width: 835px){
	#global_nav {position: fixed; z-index: var(--z_nav); top: 0; left: 0; display: flex; justify-content: flex-end; align-items: center; width: 100%; height: var(--header_height); padding: 0 calc(var(--header_height) *0.5);
		&::before { position: absolute; display: block; content: ""; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(255,255,255,0.5); backdrop-filter: brightness(6) blur(14px); pointer-events: none; transition: 0.2s; }
		.nav_links {--nav_font_size : min(16px , 1.3vw); display: flex; justify-content: flex-end; align-items: center; font-size: var(--nav_font_size); gap: 0.5em; line-height: 1.2em;
			li {
				.nav_link {position: relative; display: block; line-height: 1.5em; letter-spacing: 0em; white-space: nowrap; font-weight: 600; color: var(--c_font_color); padding: 0.3em 0.4em 0.3em; text-align: left; transition: 0.2s;
					&:hover , &.active { color: var(--c_link_color);}
					&.disactive {opacity: 0.5; pointer-events: none;}
				}
				&.sns_links {display: flex; justify-content: flex-end; align-items: flex-start; font-size: var(--nav_font_size); gap: 0.5em; margin-left: 0.5em;}
				.nav_link_icon {position: relative; display: block; width: 1.7em; height: 1.7em;
					img {display: block; width: 100%; height: auto; transition: 0.2s;}
					&:hover {
						img {transform: translateY(-2px);}
					}
				}
			}
		}
	}
}
@media only screen and (max-width: 835px){
	#global_nav {position: fixed; top: 0; left: 0; width: 100%; height: 100lvh; z-index: var(--z_nav); overflow-y: scroll; overflow-x: hidden; padding-top: calc(var(--nav_trigger_size)*1.5); opacity: 0; visibility: hidden; pointer-events: none; transition: 0.2s;
		&::before { position: absolute; display: block; content: ""; top: 0; left: 0; width: 100%; height: 100%; background-color: var(--c_black_d); opacity: 0.9;}
		.nav_links {--nav_font_size : 20px; position: relative; width: 85%; height: auto; margin: 0 auto; text-align: left; font-size: var(--nav_font_size); line-height: 1.2em; letter-spacing: 0.05em;
			li { opacity: 0; transform: translateX(-50px); transition: 0.2s; transition-delay: calc(var(--step_delay) * 0.05s + 0s);
				.nav_link , .sub_nav_link { position: relative; display: block; font-weight: 700; color: var(--c_font_color); white-space: nowrap; color: var(--c_white_l);}
				.nav_link { padding: 0.5em 0; padding-left: 1.2em;
					&::before { position: absolute; display: block; content: ""; left: 0; top: calc(0.6em + 0.5em); transform: translateY(-50%); width: 0.6em; height: 1em; background: no-repeat center url(); background-size: contain; }
					&.disactive {opacity: 0.5;}
				}
				&.sns_links {display: flex; justify-content: flex-start; align-items: flex-start; font-size: var(--nav_font_size); gap: 0.5em; padding: 0.8em 0;}
				.nav_link_icon {position: relative; display: inline-block; width: 2em; height: 2em; overflow: hidden;
					img {display: block; width: 100%; height: auto; transition: 0.2s;}
					&:hover {
						img {opacity: 0.7;}
					}
				}
			}
		}
		&.active { opacity: 1; visibility: visible; pointer-events: initial;
			.nav_links {
				li { opacity: 1; transform: translateX(0px);}
			}
		}
	}
}

/* nav trigger
-------------------------------*/
:root {--nav_trigger_size: clamp(50px , 10vw , 90px);}
.nav_trigger_outer {display: none; position: fixed; top: 0px; right: 0px; width: var(--nav_trigger_size); height:  var(--nav_trigger_size); cursor: pointer; z-index: var(--z_nav_trigger);
	.nav_trigger_bar { position: absolute; width: 60%; height: 30%; top: 50%; left: 50%; transform: translate(-50% , -50%); display: block; transition: 0.6s;
		span {position: absolute; left: 50%; transform: translate(-50% , -50%) rotateZ(0deg); width: 100%; height: clamp(2px , 0.5vw , 3px);  display: block; transition: 0.2s; background-color: var(--c_theme_color); border-radius: 9999px;
			&:nth-last-of-type(1) {top: calc(50% - 50%); width: 100%;}
			&:nth-last-of-type(2) {top: calc(50% - 0%); width: 100%;}
			&:nth-last-of-type(3) {top: calc(50% + 50%); width: 100%;}
		}
	}
	&.type_text {
		.nav_trigger_bar { height: 35%;
			span {
				&:nth-last-of-type(1) {top: calc(50% - 50%);}
				&:nth-last-of-type(2) {top: calc(50% - 10%);}
				&:nth-last-of-type(3) {top: calc(50% + 50%); height: 40%; background: no-repeat center url(../images/template_parts/hbg_menu_text.svg); background-size: contain;}
			}
		}
	}
	&.active {
		.nav_trigger_bar {
			span {
				&:nth-last-of-type(1) {transform: translate(-50% , -50%) rotateZ(-135deg); top: calc(50% - 0%);}
				&:nth-last-of-type(2) {transform: translate(-50% , -50%) rotateZ(135deg); top: calc(50% - 0%);}
				&:nth-last-of-type(3) { opacity: 0; }
			}
		}
	}
}
@media only screen and (max-width: 835px){
	.nav_trigger_outer {display: block;}
}

/*----------------------------------------
	footer
------------------------------------------*/
footer{ --border_size: 30px; position: relative; display: block; width: 100%; height: auto; background-color: var(--c_black_d); padding: calc(var(--base_distance)*0.8 + var(--border_size)) 0 calc(var(--base_distance)*0.8); margin-top: calc(var(--base_distance)*1);
	&::before { position: absolute; display: block; content: ""; top: 0; left: 0; width: 100%; height: var(--border_size); background: repeat-x center url(../images/svg/section_border_02.svg); background-size: auto 100%;}
	.footer_banners {position: relative; display: flex; gap: var(--base_gap); justify-content: center; flex-wrap: wrap; width: calc(90% - var(--over_frame_size_lr)*2); margin-bottom: calc(var(--base_gap)*2);
		a {display: block; width: calc( (100% - var(--base_gap)*4) / 5 ); transition: 0.2s;
			img {display: block; width: 100%; height: auto;}
			&:hover {opacity: 0.7;}
		}
	}
	.footer_text {font-size: 0.9em; text-align: center; color: var(--c_white_l); margin-bottom: 1.7em; line-height: 1.6em;
		strong {font-size: 1.1em;}
	}
	.copyright {font-size: 0.8em; text-align: center; color: var(--c_white_l); margin-bottom: 0; line-height: 1em;}
}
@media only screen and (max-width: 835px){
footer{ padding: calc(var(--base_distance)/1.5 + var(--border_size)) 0 calc(var(--base_distance)/1.5);
	.footer_banners { max-width: 450px;
		a {width: calc( (100% - var(--base_gap)*1)/2 );}
	}
}
}

/*----------------------------------------
	bg
------------------------------------------*/
#cmn_bg {position: fixed; top: 0; left: 0; width: 100%; height: 100lvh; background: no-repeat center url(../images/webp/dramatica_act5_teaser_bg_v04.webp); background-size: cover;}
@media screen and (max-width: 835px) {
	#cmn_bg {height: calc(var(--vh_px)*1.2);}
}

/*----------------------------------------
	over frame
------------------------------------------*/
:root {--over_frame_size_lr: clamp(12px , 1.5vw , 24px); --over_frame_size_tb: 3px;}
#over_frame {position: relative; z-index: var(--z_frame);
	.frame {position: fixed; display: block;
		&.left , &.right {top: 0; width: var(--over_frame_size_lr); height: calc(var(--vh_px)*1.2); background: var(--c_gradient_01);border-right: 2px solid var(--c_gold_d); border-left: 2px solid var(--c_gold_d);
			&::before { position: absolute; display: block; content: ""; top: 0; left: 50%; width: calc(100% - 4px); height: 100%; transform: translateX(-50%); background: repeat-y center url(../images/webp/over_frame_repeat_parts.png); background-size: 100% auto;}
		}
		&.left {left: 0; }
		&.right {right: 0;}
		&.top , &.bottom {left: 0; height: var(--over_frame_size_tb); width: 100vw; background-color: var(--c_gold_d);}
		&.top {top: 0;}
		&.bottom {bottom: 0;}
	}
	.corner_wave { --corner_wave_size:min(490px , 40vw); position: fixed; display: block; width: var(--corner_wave_size); height: calc(var(--corner_wave_size)*246 / 490); background: no-repeat top left url(../images/webp/over_frame_corner_wave_tl.webp); background-size: contain; opacity: 0.7;
		&.tl {top: 0; left: 0;}
		&.tr {top: 0; right: 0; transform: scaleX(-1);}
		&.bl {bottom: 0; left: 0; transform: scaleY(-1);}
		&.br {bottom: 0; right: 0; transform: scale(-1 , -1);}
	}
	.corner_deco {--corner_deco_size:min(120px , 13vw); --corner_deco_offset: clamp(2px , 1vw , 4px); position: fixed; display: block; width: var(--corner_deco_size); height: var(--corner_deco_size); background: no-repeat center url(../images/svg/over_frame_corner_deco_tl.svg); background-size: contain;
		&.tl {top: calc(var(--over_frame_size_tb) + var(--corner_deco_offset)); left: calc(var(--over_frame_size_lr) + var(--corner_deco_offset)); display: none;}
		&.tr {top: calc(var(--over_frame_size_tb) + var(--corner_deco_offset)); right: calc(var(--over_frame_size_lr) + var(--corner_deco_offset)); transform: scaleX(-1);}
		&.bl {bottom: calc(var(--over_frame_size_tb) + var(--corner_deco_offset)); left: calc(var(--over_frame_size_lr) + var(--corner_deco_offset)); transform: scaleY(-1);}
		&.br {bottom: calc(var(--over_frame_size_tb) + var(--corner_deco_offset)); right: calc(var(--over_frame_size_lr) + var(--corner_deco_offset)); transform: scale(-1 , -1);}
	}
}

/*----------------------------------------
	step delay
------------------------------------------*/
.cmn_step_delay_box {
	li,div,p,span  {
		&:nth-of-type(1) {--step_delay: 0;}
		&:nth-of-type(2) {--step_delay: 1;}
		&:nth-of-type(3) {--step_delay: 2;}
		&:nth-of-type(4) {--step_delay: 3;}
		&:nth-of-type(5) {--step_delay: 4;}
		&:nth-of-type(6) {--step_delay: 5;}
		&:nth-of-type(7) {--step_delay: 6;}
		&:nth-of-type(8) {--step_delay: 7;}
		&:nth-of-type(9) {--step_delay: 8;}
		&:nth-of-type(10) {--step_delay: 9;}
		&:nth-of-type(11) {--step_delay: 10;}
		&:nth-of-type(12) {--step_delay: 11;}
		&:nth-of-type(13) {--step_delay: 12;}
		&:nth-of-type(14) {--step_delay: 13;}
		&:nth-of-type(15) {--step_delay: 14;}
		&:nth-of-type(16) {--step_delay: 15;}
		&:nth-of-type(17) {--step_delay: 16;}
		&:nth-of-type(18) {--step_delay: 17;}
		&:nth-of-type(19) {--step_delay: 18;}
		&:nth-of-type(20) {--step_delay: 19;}
		&:nth-of-type(21) {--step_delay: 20;}
		&:nth-of-type(22) {--step_delay: 21;}
		&:nth-of-type(23) {--step_delay: 22;}
		&:nth-of-type(24) {--step_delay: 23;}
		&:nth-of-type(25) {--step_delay: 24;}
		&:nth-of-type(26) {--step_delay: 25;}
		&:nth-of-type(27) {--step_delay: 26;}
		&:nth-of-type(28) {--step_delay: 27;}
		&:nth-of-type(29) {--step_delay: 28;}
		&:nth-of-type(30) {--step_delay: 29;}
	}
}


/*----------------------------------------
	modal
------------------------------------------*/
.cmn_modal_layer{--modal_btn_size: clamp(50px , 5vw , 70px); position: fixed; top: 0px; left: 0; right: 0; bottom: 0; width: 100%; height: calc(100%); z-index: var(--z_modal); opacity: 0; visibility: hidden; pointer-events: none;
	.modal_bg {position: fixed; top: 0px; left: 0; right: 0; bottom: 0; width: 100%; height: 100%; opacity: 0; transition: 0.6s;
		&::before { position: absolute; display: block; content: ""; top: 0; left: 0; width: 100%; height: 100%; background-color: var(--c_black_d); opacity: 0.6; }
	}
	.modal_inner { position: absolute; width: auto; height: auto; top:50%; left: 50%; transform: translateX(-50%) translateY(-50%); text-align: left; opacity: 0; transition: 0.6s;
		img {width: auto; height: auto; max-width: min(1400px, 94vw); max-height: 75vh; cursor: initial;
			&.img_mono_modal_content {width: auto!important; height: auto!important; cursor: initial!important;}
		}
		.modal_youtube_video_box {width: min(1200px, 94vw); padding-top: min( 90vh , calc(100% * 1080 / 1920) );
			iframe {position: absolute; top: 0; left: 0; width: 100%; height: 100%;}
			img {position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: contain;}
		}
		.modal_textbox {width: min(1000px, 94vw); height: calc(75vh); background-color: var(--c_white_l); color: var(--c_black_d); padding: clamp(12px , 4vw , 50px); text-align: left; overflow: hidden; font-size: clamp(13px , 2vw , 16px);
			&.scrollable {overflow-x: hidden; overflow-y: scroll; overscroll-behavior: contain;}
		}
	}	
	.modal_close_btn {position: absolute; top: 4px; right: 4px; width: var(--modal_btn_size); height: var(--modal_btn_size); background: no-repeat center url("../images/template_parts/btn_close_02.svg"); background-size: contain; cursor: pointer;}
	&.visible { opacity: 1; visibility: visible; pointer-events: auto;
		.modal_bg { opacity: 1; }
		.modal_inner { opacity: 1;}
	}
}
.cmn_slide_modal_layer {
	.modal_inner.slide_modal_content_box {
		.slide_modal_content {position: absolute; width: auto; height: auto; top:50%; left: 50%; transform: translateX(-50%) translateY(-50%); opacity: 0; visibility: hidden; transition: 0.2s; pointer-events: none;
			&.slide_visible {opacity: 1; visibility: visible; pointer-events: initial;}
		}
	}
	.modal_prev_btn , .modal_next_btn {position: absolute; top: 50%; transform: translateY(-50%); height: min(270px , 25vh); width: min(80px , 10vw); background-color: var(--c_black); cursor: pointer; transition: 0.2s; -webkit-tap-highlight-color:rgba(0,0,0,0);
		&::before { position: absolute; display: block; content: ""; top: 50%; left: 50%; transform: translate(-50% , -50%); width: 40%; height: 100%; background: no-repeat center url(../images/template_parts/icon_arrow_slidemodal_02.svg); background-size: contain; }
		&.disactive {opacity: 0.2; pointer-events: none;}
		&:focus {outline: none;}
	}
	.modal_prev_btn {left: 0; border-top-right-radius: 10px; border-bottom-right-radius: 10px;
		&::before {transform: translate(-50% , -50%) scale(-1,1);}
		&:hover {transform: translateY(-50%) translateX(-4px);}
	}
	.modal_next_btn {right: 0; border-top-left-radius: 10px; border-bottom-left-radius: 10px;
		&:hover {transform: translateY(-50%) translateX(4px);}
	}
}
@media only screen and (max-width: 835px){
	.slide_modal {
		.modal_prev_btn , .modal_next_btn { width: 12%; height: 20vh; background-size: 30% auto;}
		.modal_prev_btn {left: 0;}
		.modal_next_btn {right: 0;}
	}
}
.cmn_img_mono_modal_trigger {cursor: pointer;}

/*----------------------------------------
	schedule_grid
------------------------------------------*/
.cmn_schedule_grid {
	--schedule_main_bg_color:rgba(0,0,0,0);
	--day_time_color:#252525;
	--grid_h_color:#191919;
	--saturday_color:#00B5EE;
	--sunday_color:#E5007F;
	--closed_day_color:#191919;
	--font_color:#191919;
	--border_color:#191919;
	--font-size:clamp(12px , 4.0vw , 18px);
	--grid_h_width: calc(var(--font-size) * 5);
	--grid_h_height: calc(var(--font-size) * 4);
	--grid_box_width: calc( (var(--schedule_grid_width) - var(--grid_h_width)) / var(--sc_day_num));
	--grid_box_height: calc(var(--font-size) * 3);
}
.cmn_schedule_grid { position: relative; display: grid; width: var(--schedule_grid_width); margin: 0 auto; grid-template-columns: var(--grid_h_width) repeat(var(--sc_day_num) , calc( (var(--schedule_grid_width) - var(--grid_h_width) ) / var(--sc_day_num))); grid-template-rows: var(--grid_h_height) repeat(var(--sc_time_num) , var(--grid_box_height)); background-color: var(--schedule_main_bg_color); overflow: hidden; grid-auto-flow: column; font-size: var(--font-size);
	p {position: relative; display: block; margin-bottom: 0; display: flex; justify-content: center; align-items: center; flex-direction: column; font-weight: bold; color: var(--font_color); line-height: 1.2em;
		&.grid_h {color: var(--grid_h_color); border-bottom: 1px solid var(--border_color); border-right: 1px solid var(--border_color); }
		&.day { color: var(--day_time_color); border-bottom: 1px solid var(--border_color);
			span {font-size: 0.7em;}
			&::before { position: absolute; display: block; content: ""; height: calc(var(--grid_box_height) * var(--sc_time_num) - 0.5em); width: 0px; top: initial; right: initial; left: 50%; bottom: 0; transform: translateX(0%) translateY(calc(100% + 0.5em)); border-top: initial; border-right: 1px dashed var(--border_color); }
		}
		&.time { color: var(--day_time_color); border-right: 1px solid var(--border_color);
			&::before { position: absolute; display: block; content: ""; height: 0px; width: calc(var(--grid_box_width) * var(--sc_day_num) - 0.5em); top: 50%; right: 0; transform: translateX(calc(100% + 0.5em)) translateY(-50%); border-top: 1px dashed var(--border_color); opacity: 0.7; }
		}
		&.sat {color: var(--saturday_color);}
		&.sun {color: var(--sunday_color);}
		&.closed {
			&::after {position: absolute; display: block; content: ""; left: 50%; bottom: calc(var(--grid_box_height)* var(--sc_time_num)* 0.5 * -1); color: var(--closed_day_color); width: 1.6em; height: calc(var(--grid_box_height) * var(--sc_time_num) * 0.6); min-height: 4.7em; transform: translate(-50% , 50%); opacity: 1; z-index: 1; content: "休 演 日"; writing-mode: vertical-rl; display: grid; place-items: center; background-color: var(--c_bg_color); border: 1px solid var(--border_color); border-radius: 9999px; font-size: 0.9em;}
		}
	}
}
@media only screen and (max-width: 835px){
	.cmn_schedule_grid {
		--grid_h_width: calc(var(--font-size) * 5);
		--grid_h_height: calc(var(--font-size) * 4);
		--grid_box_width: calc( (var(--schedule_grid_width) - var(--grid_h_width)) / var(--sc_time_num));
		--grid_box_height: calc(var(--font-size) * 3);
	}
	.cmn_schedule_grid {grid-auto-flow: row; grid-template-columns: var(--grid_h_width) repeat(var(--sc_time_num) , calc((var(--schedule_grid_width) - var(--grid_h_width)) / var(--sc_time_num))); grid-template-rows: var(--grid_h_height) repeat(var(--sc_day_num) , var(--grid_box_height)); 
		p {
			&.day { border-bottom: none; border-right: 1px solid var(--border_color);
				&::before { position: absolute; display: block; content: ""; height: 0px; width: calc(var(--grid_box_width) * var(--sc_time_num) - 0.5em); left: initial; bottom: initial; top: 50%; right: 0; transform: translateX(calc(100% + 0.5em)) translateY(-50%); border-top: 1px dashed var(--border_color); opacity: 0.7; }
			}
			&.time { border-bottom: 1px solid var(--border_color); border-right: none;
				&::before { position: absolute; display: block; content: ""; height: calc(var(--grid_box_height) * var(--sc_day_num) - 0.5em); width: 0px; top: initial; right: initial; left: 50%; bottom: 0; transform: translateX(0%) translateY(calc(100% + 0.5em)); border-top: initial; border-right: 1px dashed var(--border_color); }
			}
			&.closed {
				&::after { writing-mode: initial; height: 1.8em; min-height: initial; width: calc(var(--grid_box_width) * var(--sc_time_num) * 0.5); top: 50%; bottom: initial; left: initial; right: calc(var(--grid_box_width)* var(--sc_time_num)* 0.5 * -1); transform: translate(50% , -50%);}
			}
		}
	}
}

/*----------------------------------------
	404
------------------------------------------*/
#error_404 { padding: calc(var(--base_distance)*2) 0;
	p {color: var(--c_theme_color);}
	.title {font-size: 26px; line-height: 1em; margin-bottom: 1em;}
	.text {margin-bottom: 3em;}
	.link_flex {display: flex; justify-content: center; flex-wrap: wrap; gap: 10px; margin: 0 auto;}
	.error_toplink {position: relative; display: block; width: min(230px, 70%); height: 60px; display: grid; place-items:center; background-color: var(--c_link_color); color: var(--c_white); font-weight: bold; font-size: min(18px,4vw); white-space: nowrap; letter-spacing: 0.05em; margin: 0 auto; transition: 0.2s; border-radius: 5px;
		&:hover {transform: translateY(-2px);}
	}	
}