/*----------------------------------------
	base
------------------------------------------*/
html.html_reset {margin: 0!important; padding: 0!important;}
body {position: relative; height:100%; background-color: var(--c_bg_color); color: var(--c_font_color); font-family: var(--font_base_setting); font-size: var(--base_font_size); font-optical-sizing: auto; font-weight: 400; line-height: var(--base_line_height); word-break: break-all; 
}
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!important;}
.mod_mb_1p0em{margin-bottom: 1em!important;}
.mod_mb_1p5em{margin-bottom: 1.5em!important;}
.mod_mb_2p0em{margin-bottom: 2em!important;}
.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,.mod_flex_box_02 {> div,> li {width: 100%;}}
	.mod_flex_box_03,.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_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%;}
	}
}

/*----------------------------------------
	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.2) 0 var(--base_distance);}

.cmn_btn_outer{text-align: center;}
.cmn_link_btn_a {position: relative; display: inline-block; margin: 0 auto; padding: .6em 1.5em; height: auto; width: auto; min-width: min(340px , 100%); background-color: var(--c_black_d);border: 1px solid #fff; line-height: 1.4em; color: var(--c_white); font-size: clamp( 16px , 3.5vw , 22px ); text-decoration: initial!important; transition: 0.2s;text-align: center;font-family: var(--f_en);
	img {position: relative; height: 1.4em; width: auto;}
	span {position: relative;}
	&::before {position: absolute; display: block; content: ""; background: url(../images/svg/icon_arrow.svg) no-repeat center; background-size:contain; width: 20px; aspect-ratio: 30/45; right: 20px; top: 50%;transform: translateY(-50%);  transition: transform 0.4s;}
	&:hover {color: var(--c_white);
		/* &::before {transform-origin: left top; transform: scale(1,1);} */
	}
	&.back{
		&:before{transform: translateY(-50%)scale(-1,1);right: initial;left: 20px;}
	}
	&.w_100 {width: 100%;}
	&.disactive {pointer-events: none; filter: grayscale(1); opacity: 0.5;}
}

.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_white);}
.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;}
		}
	}
	blockquote{padding: 24px;background: rgb(0 0 0 / 4%);margin: 20px 0;
		p{
			&: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; color: var(--cmn_write_box_theme_color);}
	&.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
------------------------------------------*/
header{
	.header_logo {position: fixed; top: 0; left: 0; width: min(120px,  16vw); height: auto; z-index: var(--z_nav); transform: translate(15% , 30%); transition: 0.2s;
		img {display: block; width: 100%; height: auto;}
		&:hover {opacity: 0.7;}
	}
}
@media only screen and (max-width: 835px){
header{ }
}

/*----------------------------------------
	navigation
------------------------------------------*/
:root { --global_nav_pos: clamp(6px , 2vw , 10px);}
@media only screen and (min-width: 835px){
	#global_nav {position: fixed; top: 0; right: 0;padding: calc(var(--global_nav_pos)*1); z-index: var(--z_nav);background: transparent;width: 100%;
		.nav_links {display: flex; justify-content: flex-end; align-items: flex-start; font-size: min(18px , 1.3vw); gap: 0.5em;
			li {
				.nav_link {position: relative; display: block; line-height: 1.2em; letter-spacing: 0.05em; 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: 16px; gap: 0.5em;}
				.nav_link_icon {position: relative; display: block; width: 2em; height: 2em;
					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); background-color: var(--c_black_d); overflow-y: scroll; overflow-x: hidden; padding-top: 60px; opacity: 0; visibility: hidden; pointer-events: none; transition: 0.2s;
		.nav_links {position: relative; width: 85%; height: auto; margin: 0 auto; text-align: left; font-size: 20px; line-height: 1.2em; letter-spacing: 0.05em;
			li { opacity: 0; transform: translateX(-50px); transition: 0.2s;
				.nav_link , .sub_nav_link { position: relative; display: block; font-weight: 700; color: var(--c_font_color); white-space: nowrap;}
				.nav_link { padding: 0.5em 0; padding-left: 1.2em;
					&::before { position: absolute; display: block; content: ""; left: 0; top: calc(0.8em + 0.6em); 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: 20px; 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(60px , 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; border-radius: 9999px; z-index: var(--z_nav_trigger);
	.nav_trigger_bar { position: absolute; width: 50%; height: 24%; 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: 30%;
			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{position: relative;z-index: 3;background: #000;padding: 100px 20px 180px; text-align: center;
	.bnr_block{margin-bottom: 50px;
		ul{display: flex;justify-content: center;gap:20px;
			li{
				a{background: #fff;display: block;}
			}
		}
	}
}
@media only screen and (max-width: 835px){
footer{ padding: 50px 20px 80px;
	.bnr_block{
		ul{flex-direction: column;max-width: 70%;margin: 0 auto;
			li{}
		}
	}
}
}

/*----------------------------------------
	bg
------------------------------------------*/
.fix_bg{position: fixed;content: "";width: 100%;height: 100vh;top: 0;left: 0;display: block;z-index:1;
	img{object-fit: cover;width: 100%;height: 100%;}
}


/*----------------------------------------
	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);text-align: center;}
	.title {font-size: 26px; line-height: 1em; margin-bottom: 1em;text-align: center;}
	.text {margin-bottom: 3em;text-align: center;}
	.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: #000; 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);}
	}	
}

.news_wrap{
	ul{margin-bottom: 40px;}
	.news{--news_gap:10px;
		.news_link{display: flex;flex-direction: column; border-bottom: 1px solid var(--c_font_color);color: var(--c_font_color);position: relative;gap:var(--news_gap);padding: 24px 16px;
			&:first-of-type{border-top: 1px solid #fff;}
			.date{width: 100%;font-family: var(--f_en);font-size: 20px;line-height: 1.1em;
				.md{font-size: 25px;line-height: 1em;}
			}
			.news_title{width: 100%;position: relative;padding-right: 50px;
				&::after{position: absolute;content: "";background: url(../images/svg/icon_arrow.svg) no-repeat center; background-size:contain;width: 20px;aspect-ratio: 30/45; top: 50%;transform: translateY(-50%);right: 0;}
			}
		}
	}
}
@media screen and (max-width: 768px) {
	.news_wrap{
		.news{
			.news_link{flex-direction: column;padding: 18px 0px 18px 14px;
				.date{width: 100%;font-size: 16px;line-height: 1.1em;}
				.news_title{width: 100%;padding-right: 30px;
					&:after{width: 14px;}
				}
			}
		}
	}
}



/*----------------------------------------
	Pagination
------------------------------------------*/
.pagination{position: relative;overflow: hidden;display: flex;margin: 30px auto;justify-content: center;
	.page-numbers{display: flex;justify-content: center;
		li{border: 1px solid #ccc;margin-right: 8px;text-decoration: none;height: 40px;line-height: 40px;font-size: 14px;width: 40px;text-align: center;
			/* .current{color: #fff;background: #525252;border: none;} */
			a{color:#fff;display: block;width: 100%;
				&.dots{padding: 0 12px !important;}
				&:last-child{margin-right: 0;}
				&.next{width: 75px;line-height: 37px;}
				&.prev{width: 75px;line-height: 37px;}
			}
			&:has(.next){width: 75px;line-height: 37px;}
			&:has(.prev){width: 75px;line-height: 37px;}
			&:has(.current){border: none;
				.current{color: #fff;background: #525252;}
			}
		}
	}
	a{color: #000;}
}