@import url('https://fonts.googleapis.com/css2?family=Jost:ital,wght@0,100..900;1,100..900&family=Noto+Sans+JP:wght@100..900&display=swap');

:root{
	--black: #000000;
	--red: #E12F27;
	--base_font_family:"Jost",'Noto Sans CJK JP' , 'Noto Sans JP'  ,sans-serif;
	--jost:"Jost", sans-serif;
}


*{
	margin:0;
	padding:0;
	list-style: none;
	box-sizing: border-box;
	text-decoration: none;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
}

*::before,
*::after{
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	box-sizing: border-box;
	}

html {
	-ms-text-size-adjust: none;
	-webkit-text-size-adjust: none;
}

input,
select,
textarea{
	font-family: var(--base_font_family);
	color:var(--black);
	-webkit-font-smoothing: antialiased;
	-ms-text-size-adjust: none;
	-webkit-text-size-adjust: none;
	font-feature-settings: 'palt';
	touch-action: manipulation;
	resize: none;
	display: block;
}

button{
	border: none;
	background: none;
	border-radius: 0;
	cursor: pointer;
}

body{
	color: var(--black);
	font-size: 16px;
	font-family: var(--base_font_family);
	-webkit-font-smoothing: antialiased;
	-ms-text-size-adjust: none;
	-webkit-text-size-adjust: none;
}


img{
	display: block;
	object-position: center;
	width: 100%;
}

#body_wrap{
	overflow: hidden;
}

#body_wrap.fixed {
	width: 100%;
	height: 100%;
	position: fixed;
}



a{
	color: var(--black);
}

section{
	position: relative;
}

.container{
	max-width: 1240px;
	padding-inline: 20px;
	margin-inline: auto;
}

#body_wrap{
	overflow: clip;
}

.fax a{
	pointer-events: none;
}

@media (any-hover:hover){
	a[href^="tel:"] {
		pointer-events: none;
	}
}

/*
------------------------------------
アニメーション関係
------------------------------------
*/

.common_hover_opa{
	transition: 0.4s;
}


@media (any-hover:hover){
	.common_hover_opa:hover{
		opacity: 0.7;
	}
	
}


/*
------------------------------------
共通パーツ
------------------------------------
*/

/*セクション見出し*/
.common_sec_title{
	text-align: center;
	font-weight: 600;
	font-size: 50px;
	letter-spacing: 0.03em;
	text-align: center;
}

.common_sec_title.white{
	color:#fff;
}

/*波線*/
.common_wave{
	position: absolute;
	width:1920px;
	height:30px;
	min-width: calc(100% + 20px);
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	background-repeat: repeat-x;
	background-size: 1920px 30px;
	z-index: 1;
}


.common_wave.wave_top{
	top:-20px;
}

.common_wave.wave_top.wave_red{
	background-image: url('../img/top/wave_red_top.png');
}
.common_wave.wave_top.wave_gray{
	background-image: url('../img/top/wave_gray_top.png');
}
.common_wave.wave_top.wave_navy{
	background-image: url('../img/top/wave_navy_top.png');
}

.common_wave.wave_bottom{
	bottom:-30px;
}
.common_wave.wave_bottom.wave_red{
	background-image: url('../img/top/wave_red_bottom.png');
}

/*
------------------------------------
ヘッダー
------------------------------------
*/

header{
	position: absolute;
	width:100%;
	top:90px;
	left:0;
}

header .header_inner{
	max-width: 1920px;
	margin-inline: auto;
	padding-left: 66px;
	padding-right: 45px;
}

header .header_flex{
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
}

header .header_logo{
	display: block;
	width:107px;
}

header .header_left{
	padding-top: 10px;
}

header .lang_frame{
	position: relative;
}

header .lang_block{
	min-width: 184px;
	min-height: 44px;
	border-radius: 9999px;
	display: flex;
	align-items: center;
	padding:6px 44px 6px 12px;
	position: relative;
	background-color: var(--red);
	z-index: 2;
	cursor: pointer;
}

header .lang_block::before{
	content:'';
	width:24px;
	height:24px;
	border-radius: 50%;
	flex-shrink: 0;
	background-image: url('../img/common/icon_lang_white.svg');
	margin-right: 10px;
}

header .lang_contents{
	position: absolute;
	width:100%;
	background-color: #fff;
	top: 50%;
	left: 50%;
	transform: translateX(-50%);
	padding:28px 12px 12px;
	z-index: 1;
	display: none;
}

header .lang_contents p + p{
	margin-top: 6px;
}

header .lang_text{
	font-family: var(--jost);
	font-size: 20px;
	letter-spacing: 0.03em;
	line-height: 1;
	color: #fff;
}

header .lang_radi{
	width:23px;
	height:23px;
	border-radius: 50%;
	background-color: #fff;
	display: flex;
	justify-content: center;
	align-items: center;
	position: absolute;
	right:12px;
	top:0;
	bottom:0;
	margin:auto;
}

header .lang_radi::after{
	content:'';
	width:8px;
	height:6px;
	background-image: url('../img/common/icon_angle_bottom_red.svg');
}

header .lang_block.active .lang_radi{
	transform: rotateZ(180deg)
}

/*
------------------------------------
LP本体
------------------------------------
*/

#page_bg{
	position: fixed;
	top:0;
	left:0;
	width:100%;
	height:100vh;
	z-index: -10;
}

#page_bg img{
	width:100%;
	height:100%;
	object-fit: cover;
}

.top_fv_section{
	min-height:100vh;
}

.top_fv_section .fv_inner{
	position: relative;
	display: flex;
	justify-content: center;
	align-items: flex-end;
	min-height:min(100vh , 1080px);
	padding-top:100px;
	/* padding-top: 320px; */
}

.top_fv_section .fv_news_area{
	position: absolute;
	top:0;
	left:0;
	width:100%;
	min-height: 50px;
	display: flex;
	justify-content: center;
	align-items: center;
	padding:10px;
	font-weight: 500;
	font-size: 18px;
	color: #fff;
	background-color: #50B6BB;
}

.top_fv_section .fv_block{
	padding-bottom: 170px;
	padding-bottom: 190px;
}

.top_fv_section .fv_logo{
	max-width:605px;
	margin-inline: auto;
}

.top_fv_section .fv_text{
	margin-top: 16px;
	font-weight: 600;
	font-size: 51px;
	letter-spacing: 0.03em;
	line-height: 1.1;
	text-align: center;

	/* text-shadow:6px 0 0 #fff,
				-6px 0 0 #fff,
				0 6px 0 #fff,
				0 -6px 0 #fff,
				6px 6px 0 #fff,
				-6px 6px 0 #fff,
				6px -6px 0 #fff,
				-6px -6px 0 #fff; */
}

.top_fv_section .fv_text img{
	height:161px;
	width:auto;
	margin-inline: auto;
}

.top_fv_section .place_text{
	display: flex;
	justify-content: center;
	align-items: center;
	margin-top: 8px;
	margin-inline: auto;
	width: fit-content;
	min-width: 338px;
	min-height: 40px;
	border-radius: 9999px;
	background: #000;
	padding:2px 4px;
	font-family: var(--jost);
	font-size: 22px;
	letter-spacing: 0.03em;
	text-align: center;
	color: #fff;

}

.top_fv_section .scroll_point{
	display: flex;
	flex-direction: column;
	align-items: center;
	gap:8px;
	font-family: var(--jost);
	font-weight: 500;
	letter-spacing: 0.03em;
	text-align: center;
	position: absolute;
	bottom:50px;
	left:0;
	right:0;
	margin:auto;
	z-index: 6;
}

.top_fv_section .scroll_frame{
	width:17px;
	overflow: hidden;
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
}

.top_fv_section .scroll_bar{
	width: 2px;
	height: 62px;
	border-radius: 1px;
	background-color: var(--black);
}

.top_fv_section .scroll_radi{
	width:17px;
	aspect-ratio: 1 / 1;
	border:2px solid var(--black);
	border-radius: 50%;
	position: absolute;
	top:0;
	left:0;
	animation-name: scroll_radi;
	animation-duration: 1.5s;
	animation-fill-mode: forwards;
	animation-iteration-count: infinite;
}

@keyframes scroll_radi{
	0%{
		transform: translateY(0px);
		opacity: 0;
	}

	50%{
		opacity: 1;
	}
	100%{
		transform: translateY(45px);
		opacity: 0;
	}
}

.top_about_section{
	color:#fff;
	padding-top: 80px;
	padding-bottom: 80px;
	min-height: 1030px;
	background-color: var(--red);
}

.top_about_section .about_deco{
	position: absolute;
	width:218px;
	height:180px;
	background-size: contain;
	background-image: url('../img/top/about_deco.svg');
	
	z-index: 3;
}

.top_about_section .about_deco01{
	top:-76px;
	right:calc(50% + 540px);
}
.top_about_section .about_deco02{
	bottom: 64px;
    right: calc(50% + 526px);
}

.top_about_section .common_sec_title{
	position: relative;
	z-index: 2;
}

.top_about_section .about_contents{
	margin-top: 30px;
	position: relative;
}


.top_about_section .about_text{
	font-size: 18px;
	letter-spacing: 0.03em;
	line-height: 1.9;
	position: relative;
	z-index: 2;
	max-width: 620px;
}

.top_about_section .about_img{
	position: absolute;
	width:916px;
	left:348px;
	top:-116px;
}

.top_about_section .ticket_block{
	width: fit-content;
	margin-top: 40px;
	padding-left: 10px;
}

.top_about_section .ticket_head{
	font-weight: 600;
	font-size: 26px;
	line-height: 1.2;
	display: flex;
	justify-content: center;
	align-items: center;
	gap:44px;
}

.top_about_section .ticket_head::before,
.top_about_section .ticket_head::after{
	content:'';
	width:4px;
	height:72px;
	border-radius: 9999px;
	background-color: #fff;
}

.top_about_section .ticket_head::before{
	transform: rotateZ(-24deg);
}
.top_about_section .ticket_head::after{
	transform: rotateZ(24deg);
}

.top_about_section .ticket_head span{
	font-family: var(--jost);
}

.top_about_section .ticket_contents{
	margin-top: 16px;
	display: flex;
	align-items: flex-start;
	gap:24px;
}

.top_about_section .ticket_text{
	color:#FFFF00;
	font-weight: 600;
	font-family: var(--jost);
}

.top_about_section .ticket_price{
	display: flex;
	align-items: flex-start;
	justify-content: center;
	gap:8px;
}

.top_about_section .ticket_price_num{
	font-size: 125px;
	line-height: 0.8;
	/* height:93px; */
}

.top_about_section .ticket_price_num span{
	font-size: 99px;
}

.top_about_section .ticket_tax{
	font-size: 34px;
}

.top_about_section .ticket_yen{
	font-size: 54px;
	line-height: 0.8;
}

.top_about_section .ticket_sale{
	display: flex;
	align-items: center;
	gap:12px;
	font-size: 50px;
}

.top_about_section .ticket_sale::after{
	content:'';
	width:20px;
	height:38px;
	background-color: #FFFF00;
	flex-shrink: 0;
	clip-path: polygon(0 0, 0% 100%, 100% 50%);
}

.top_about_section .ticket_qr{
	flex-shrink: 0;
	width:140px;
}

.top_about_section .ticket_guide{
	font-weight: 600;
	font-size: 26px;
	line-height: 1.2;
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
	margin-top: 16px;
}

.top_about_section .ticket_guide::after{
	content:'';
	width:55px;
	height:26px;
	background-color: #FFFF00;
	clip-path: polygon(50% 100%, 0 0, 100% 0);
	margin-top: 8px;
}

.top_about_section .ticket_button{
	display: flex;
    justify-content: center;
    align-items: center;
    width: 520px;
    min-height: 94px;
    border-radius: 9999px;
    padding: 10px;
    background-color: #fff;
    margin-inline: auto;
    margin-top: 18px;
    transition-duration: 0.4s;
    box-shadow: 0 0 0 3px #000, 0 8px 0 0 #000;
	position: relative;
	z-index: 3;
}

.top_about_section .ticket_button img{
	width:215px;
}

.top_shop_section{
	padding-top: 96px;
	padding-bottom: 96px;
	background-color: #F0F0F0;
}

.top_shop_section .guide_text{
	margin-top: 10px;
	font-size: 20px;
	letter-spacing: 0.03em;
	line-height: 1.3;
	text-align: center;
}

.top_shop_section .guide_remark{
	margin-top: 10px;
	font-size: 14px;
	letter-spacing: 0.03em;
	line-height: 1.8;
	text-align: center;
	display: block;
}

.top_shop_section .shop_list{
	margin-top: 64px;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap:86px 38px;
	position: relative;
}

.top_shop_section .shop_deco{
	position: absolute;
	z-index: 1;
	width:82px;
	height:118px;
	background-size: contain;
	background-image: url('../img/top/shop_deco.svg');
}

.top_shop_section .shop_deco01,
.top_shop_section .shop_deco03{
	left:calc(50% + 668px);
}

.top_shop_section .shop_deco02,
.top_shop_section .shop_deco04{
	right:calc(50% + 668px);
	transform: rotateZ(180deg);
}

.top_shop_section .shop_deco01{
	top:556px;
}
.top_shop_section .shop_deco02{
	top:1240px;
}
.top_shop_section .shop_deco03{
	top:1920px;
}
.top_shop_section .shop_deco04{
	top:2616px;
}

.top_shop_section .shop_card{
	border:3px solid var(--black);
	border-radius: 26px;
	position: relative;
	padding:7px 7px 20px;
	min-height: 594px;
	background-color: #fff;
	cursor: pointer;
	transition-duration: 0.4s;
	min-height: 100%;
	height:100%;
}

@media(any-hover:hover){
	.top_shop_section .shop_card:hover{
		opacity: 0.7;
	}
}

.top_shop_section .shop_card .shop_card_num{
	display: flex;
	align-items: center;
	flex-direction: column;
	position: absolute;
	z-index: 2;
	font-family: var(--jost);
	font-weight: 500;
	font-size: 32px;
	letter-spacing: 0;
	right:10px;
	top:-42px;
	line-height: 1;
}

.top_shop_section .shop_card .shop_card_num::after{
	content:'';
	width:3px;
	height:22px;
	border-radius: 2px;
	background-color: var(--black);
	margin-left: 2px;
}

.top_shop_section .shop_card .shop_card_body{
	padding-inline: 12px;
	padding-top: 12px;
}

.top_shop_section .shop_card .shop_card_name{
	min-height: 64px;
	display: flex;
	align-items: center;

	font-weight: 600;
	font-size: 24px;
	letter-spacing: 0.01em;
	line-height: 1.2;
}

.top_shop_section .shop_card ul{
	margin-top: 14px;
}

.top_shop_section .shop_card li{
	display: flex;
	align-items: center;
	gap:12px;
	font-size: 13px;
	letter-spacing: 0.03em;
	line-height: 1.4;
	min-height: 38px;
}

.top_shop_section .shop_card li + li{
	margin-top: 2px;
}

.top_shop_section .shop_card li .jost{
	font-family: var(--jost);
}

.top_shop_section .shop_card li .icon{
	display: flex;
	justify-content: center;
	align-items: center;
	flex-shrink: 0;
	width:32px;
	aspect-ratio: 1 / 1;
	border-radius: 50%;
	background-color: #EAEAEA;
}

.top_shop_section .shop_card li .icon::after{
	content:'';
}

.top_shop_section .shop_card li .icon.map::after{
	width:14px;
	height:17px;
	background-image: url('../img/common/icon_map_black.svg');
}

.top_shop_section .shop_card li .icon.tel::after{
	width:17px;
	height:14px;
	background-image: url('../img/common/icon_tel_black.svg');
}

.top_shop_section .shop_card li .icon.train::after{
	width:12px;
	height:15px;
	background-image: url('../img/common/icon_train_black.svg');
}

.top_shop_section .shop_card li .icon.time::after{
	width:15px;
	height:15px;
	background-image: url('../img/common/icon_time_black.svg');
}

.top_shop_section .shop_card li .icon.holiday::after{
	width:19px;
	height:15px;
	background-image: url('../img/common/icon_holiday_black.svg');
}


.top_shop_section .shop_card li .info_remark{
	font-size: 10px;
}
.top_shop_section .shop_card .shop_plus_icon{
	width:37px;
	aspect-ratio: 1 / 1;
	border-radius: 50%;
	display: flex;
	justify-content: center;
	align-items: center;
	background-color: var(--red);
	position: absolute;
	right:12px;
	bottom:12px;
}

.top_shop_section .shop_card .shop_plus_icon::after{
	content:'';
	width:12px;
	height:12px;
	background-image: url('../img/common/icon_plus_white.svg');
}

.top_map_section{
	padding-top: 106px;
	padding-bottom: 96px;
	background-color: var(--red);
}

.top_map_section .map_deco{
	position: absolute;
	background-size: contain;
	z-index: 2;
}

.top_map_section .map_deco01{
	width:208px;
	height:165px;
	top: -88px;
    left: calc(50% + 566px);
	background-image: url('../img/top/map_deco01.svg');
}

.top_map_section .map_deco02{
	width:82px;
	height:118px;
	top: 172px;
    right: calc(50% + 632px);
	background-image: url('../img/top/map_deco02.svg');
}

.top_map_section .map_text{
	font-size: 18px;
	letter-spacing: 0.03em;
	line-height: 1.6;
	text-align: center;
	color: #fff;
	margin-top: 16px;
}

.top_map_section .map_frame{
	margin-top: 20px;
	border: 4px solid var(--black);
	border-radius: 26px;
	padding:10px;	
	background-color: #fff;
}

.top_map_section .map{
	position: relative;
	aspect-ratio: 1 / calc(576 / 1170);
}

.top_map_section .map img{
	width:100%;
	height:100%;
	object-fit: cover;
}

.top_map_section .map_pin{
	position: absolute;
	width:calc(35 / 1170 * 100%);
	aspect-ratio: 1 / calc(44 / 35);
	z-index: 2;
}

.top_map_section .map_pin01{
	background-image: url('../img/top/map_pin01.png');
	top:calc(212 / 576 * 100%);
	left:calc(397 / 1170 * 100%);
}
.top_map_section .map_pin02{
	background-image: url('../img/top/map_pin02.png');
	top:calc(452 / 576 * 100%);
	left:calc(280 / 1170 * 100%);
}
.top_map_section .map_pin03{
	background-image: url('../img/top/map_pin03.png');
	top:calc(111 / 576 * 100%);
	left:calc(799 / 1170 * 100%);
}
.top_map_section .map_pin04{
	background-image: url('../img/top/map_pin04.png');
	top:calc(294 / 576 * 100%);
	left:calc(704 / 1170 * 100%);
}
.top_map_section .map_pin05{
	background-image: url('../img/top/map_pin05.png');
	top:calc(368 / 576 * 100%);
	left:calc(700 / 1170 * 100%);
}
.top_map_section .map_pin06{
	background-image: url('../img/top/map_pin06.png');
	top:calc(246 / 576 * 100%);
	left:calc(285 / 1170 * 100%);
}
.top_map_section .map_pin07{
	background-image: url('../img/top/map_pin07.png');
	top:calc(101 / 576 * 100%);
	left:calc(458 / 1170 * 100%);
}
.top_map_section .map_pin08{
	background-image: url('../img/top/map_pin08.png');
	top:calc(234 / 576 * 100%);
	left:calc(644 / 1170 * 100%);
}
.top_map_section .map_pin09{
	background-image: url('../img/top/map_pin09.png');
	top:calc(199 / 576 * 100%);
	left:calc(667 / 1170 * 100%);
}
.top_map_section .map_pin10{
	background-image: url('../img/top/map_pin10.png');
	top:calc(156 / 576 * 100%);
	left:calc(458 / 1170 * 100%);
}
.top_map_section .map_pin11{
	background-image: url('../img/top/map_pin11.png');
	top:calc(344 / 576 * 100%);
	left:calc(481 / 1170 * 100%);
}
.top_map_section .map_pin12{
	background-image: url('../img/top/map_pin12.png');
	top:calc(331 / 576 * 100%);
	left:calc(658 / 1170 * 100%);
}
.top_map_section .map_pin13{
	background-image: url('../img/top/map_pin13.png');
	top:calc(388 / 576 * 100%);
	left:calc(595 / 1170 * 100%);
}
.top_map_section .map_pin14{
	background-image: url('../img/top/map_pin14.png');
	top:calc(198 / 576 * 100%);
	left:calc(334 / 1170 * 100%);
}


.en_body .top_map_section .map_pin01{
	top:calc(205 / 576 * 100%);
	left:calc(404 / 1170 * 100%);
}
.en_body .top_map_section .map_pin02{
	top: calc(435 / 576 * 100%);
    left: calc(305 / 1170 * 100%);
}
.en_body .top_map_section .map_pin03{
	top:calc(111 / 576 * 100%);
	left:calc(799 / 1170 * 100%);
}
.en_body .top_map_section .map_pin04{
	top:calc(294 / 576 * 100%);
	left:calc(715 / 1170 * 100%);
}
.en_body .top_map_section .map_pin05{
	top:calc(368 / 576 * 100%);
	left:calc(700 / 1170 * 100%);
}
.en_body .top_map_section .map_pin06{
	top: calc(244 / 576 * 100%);
    left: calc(317 / 1170 * 100%);
}
.en_body .top_map_section .map_pin07{
	top:calc(101 / 576 * 100%);
	left:calc(467 / 1170 * 100%);
}
.en_body .top_map_section .map_pin08{
	top:calc(234 / 576 * 100%);
	left:calc(644 / 1170 * 100%);
}
.en_body .top_map_section .map_pin09{
	top:calc(199 / 576 * 100%);
	left:calc(667 / 1170 * 100%);
}
.en_body .top_map_section .map_pin10{
	top:calc(156 / 576 * 100%);
	left:calc(470 / 1170 * 100%);
}
.en_body .top_map_section .map_pin11{
	top: calc(341 / 576 * 100%);
    left: calc(483 / 1170 * 100%);
}
.en_body .top_map_section .map_pin12{
	top: calc(323 / 576 * 100%);
    left: calc(665 / 1170 * 100%);
}
.en_body .top_map_section .map_pin13{
	top: calc(381 / 576 * 100%);
    left: calc(609 / 1170 * 100%);
}
.en_body .top_map_section .map_pin14{
	top: calc(196 / 576 * 100%);
    left: calc(366 / 1170 * 100%);
}




.top_note_section{
	background-color: rgba(255 , 255 , 255 , 0.6);
	padding-top: 140px;
	padding-bottom: 160px;
}

.top_note_section .note_deco{
	position: absolute;
	background-size: contain;
	z-index: 2;
}

.top_note_section .note_deco01{
	width: 167px;
    height: 139px;
    top: -60px;
    left: calc(50% + 532px);
	background-image: url('../img/top/note_deco01.svg');
}

.top_note_section .note_deco02{
	width: 82px;
    height: 118px;
    top: 644px;
    right: calc(50% + 632px);
	background-image: url('../img/top/note_deco02.svg');
}

.top_note_section .note_box{
	margin-top: 56px;
	border:3px solid var(--black);
	border-radius: 26px;
	padding:72px 56px 60px;
	position: relative;
	background-color: #fff;
}

.top_note_section .note_box_head{
	position: absolute;
	top: -25px;
	left: 50%;
	transform: translateX(-50%);
	width: fit-content;
	min-width: 410px;
	min-height: 50px;
	border-radius: 9999px;
	background: var(--black);
	display: flex;
	justify-content: center;
	align-items: center;
	padding:4px 8px;
	font-weight: 600;
	font-size: 22px;
	letter-spacing: 0.03em;
	text-align: center;
	color: #fff;
	
}

.top_note_section .note_box_head span{
	font-family: var(--jost);
}

.top_note_section .note_contents + .note_contents{
	margin-top: 48px;
}

.top_note_section .note_head{
	font-size: 24px;
	font-weight: bold;
	color:var(--red);
}

.top_note_section .note_list{
	margin-top: 16px;
}

.top_note_section .note_list li{
	position: relative;
	padding-left: 26px;
	font-size: 18px;
	letter-spacing: 0.03em;
	line-height: 1.5;
}

.top_note_section .note_list li::before{
	content:'';
	width:14px;
	height:14px;
	border-radius: 50%;
	background-color: var(--red);
	position: absolute;
	left:0;
	top:10px;
}

.top_note_section .note_list li + li{
	margin-top: 22px;
}

.top_contact_section{
	padding-top: 90px;
	padding-bottom: 80px;
	background-color: var(--red);
}

.top_contact_section .contact_deco{
	position: absolute;
	background-size: contain;
	z-index: 2;
}

.top_contact_section .contact_deco01{
	width: 208px;
    height: 165px;
    top: -60px;
    left: calc(50% + 565px);
	background-image: url('../img/top/contact_deco01.svg');
}

.top_contact_section .contact_deco02{
	width: 82px;
    height: 118px;
    top: 180px;
    right: calc(50% + 580px);
	background-image: url('../img/top/contact_deco02.svg');
}


.top_contact_section .jost{
	font-family: var(--jost);
}

.top_contact_section .contact_text01{
	text-align: center;
	font-family: var(--jost);
	font-size: 18px;
	letter-spacing: 0.03em;
	line-height: 1.8;
	text-align: center;
	color: #fff;
	margin-top: 16px;
}

.top_contact_section a{
	color:#fff;
}

.top_contact_section .contact_text02{
	font-size: 14px;
	line-height: 2;
	letter-spacing: 0.03em;
	text-align: center;
	color: #fff;
	margin-top: 18px;
}


/*
------------------------------------
フッター
------------------------------------
*/

footer{
	padding-top: 26px;
	padding-bottom: 56px;
	background-color: #3A474E;
	position: relative;
	z-index: 2;
}

footer .footer_inner{
	max-width: 1920px;
	margin-inline: auto;
	padding-inline:105px ;
}

footer .footer_flex{
	display: flex;
	align-items: flex-start;
	gap:48px;
}

footer .footer_logo{
	width:205px;
}

footer .sns_list{
	display: flex;
	align-items: center;
	gap:26px;
}

footer .sns{
	width:51px;
	aspect-ratio: 1 / 1;
	border-radius: 50%;
	display: flex;
	justify-content: center;
	align-items: center;
	background-color: #fff;
}

footer .sns.x img{
	width:23px;
}
footer .sns.insta img{
	width:26px;
}
/*
------------------------------------
ポップアップ
------------------------------------
*/

.common_shop_popup{
	position: fixed;
	width:100%;
	top:0;
	left:0;
	z-index: 100;
	background-color: rgba(0 , 0 , 0 , 0.76);
	transition-duration: 0.4s;
	opacity: 0;
	pointer-events: none;
}

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

.common_shop_popup .shop_popup_inner{
	height: 100vh;
	display: flex;
	justify-content: center;
	align-items: center;
}

.common_shop_popup .shop_popup_frame{
	height: calc(100vh - 160px);
	max-height: 1000px;
	width:92%;
	max-width:1200px;
	padding:30px 20px;
	background-color: #fff;
	border-radius: 26px;
	position: relative;
}

.common_shop_popup .shop_popup_scroll{
	overflow-y: auto;
	height:100%;
}

.common_shop_popup .shop_popup_scroll::-webkit-scrollbar {
	width:14px;	
}

.common_shop_popup .shop_popup_scroll::-webkit-scrollbar-track {
	background: #E8E8E8;
	border-radius :9999px;
}

.common_shop_popup .shop_popup_scroll::-webkit-scrollbar-thumb {
	background: var(--red);
	border-radius :9999px;
}

.common_shop_popup .shop_popup_close{
	width: 87px;
	height: 87px;
	border-radius: 50%;
	display: flex;
	justify-content: center;
	align-items: center;
	background: var(--red);
	cursor: pointer;
	position: absolute;
	top:-36px;
	left:-36px;
}	

.common_shop_popup .shop_popup_close::after{
	content:'';
	width:22px;
	height:22px;
	background-image: url('../img/common/icon_close_white.svg');
}

.common_shop_popup .shop_popup_contents{
	padding:36px 72px 36px 44px;
}

.common_shop_popup .shop_flex{
	display: flex;
	align-items: flex-start;
	position: relative;
	min-height: 660px;
	gap:48px;
}

.common_shop_popup .shop_main_img{
	flex-shrink: 0;
	width:516px;
	aspect-ratio: 1 / calc(455 / 516);
}

.common_shop_popup .shop_main_img img{
	width:100%;
	height:100%;
	object-fit: cover;
	border-radius: 20px;
}


.common_shop_popup .shop_name{
	font-weight: 600;
	font-size: 30px;
	letter-spacing: 0.03em;
	line-height: 1.2;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap:8px;
}

.common_shop_popup .shop_name::after{
	content:'';
	width:22px;
	height:4px;
	border-radius: 4px;
	background-color: var(--red);
}

.common_shop_popup .shop_text{
	letter-spacing: 0.03em;
	line-height: 1.5;
	margin-top: 16px;
}

.common_shop_popup .shop_gal_list{
	position: absolute;
	left:0;
	top:480px;
	display: flex;
	align-items: flex-start;
	gap:20px;
}

.common_shop_popup .shop_gal_list li{
	width:248px;
	aspect-ratio: 1 / calc(180 / 248);
}

.common_shop_popup .shop_gal_list li img{
	width:100%;
	height:100%;
	object-fit: cover;
	border-radius: 20px;
}

.common_shop_popup .shop_menu_frame{
	margin-top: 50px;
	position: relative;
}

.common_shop_popup .shop_menu_img{
	aspect-ratio: 1 / calc(278 / 481);
}

.common_shop_popup .shop_menu_img img{
	width:100%;
	height:100%;
	object-fit: cover;
	border-radius: 20px;
}

.common_shop_popup .shop_menu_head{
	display: flex;
	align-items: center;
	min-height:36px;
	padding:6px 22px 6px 8px;
	border-radius: 9999px;
	position: absolute;
	top:0;
	left:-12px;
	transform: translateY(-50%);
	background-color: var(--red);
	font-weight: 600;
	font-size: 18px;
	letter-spacing: 0.03em;
	line-height: 1.2;
	color: #fff;
	
}

.common_shop_popup .shop_menu_head span{
	display: flex;
	justify-content: center;
	align-items: center;
	width:130px;
	height:24px;
	flex-shrink: 0;
	margin-right: 7px;
	background-color: #fff;
	font-weight: 600;
	font-size: 16px;
	letter-spacing: 0.03em;
	line-height: 1.2;
	color: var(--red);
	border-radius: 999px;
}

.common_shop_popup .shop_menu_set{
	margin-top: 16px;
}

.common_shop_popup .shop_menu_set_head{
	font-weight: 600;
	font-size: 18px;
	letter-spacing: 0.03em;
	line-height: 1.5;
	color: var(--red);
}

.common_shop_popup .shop_menu_set_text{
	letter-spacing: 0.03em;
	line-height: 1.5;
}

.common_shop_popup .shop_menu_set_list{
	margin-top: 8px;
}

.common_shop_popup .shop_menu_set_list li{
	font-size: 13px;
	line-height: 1.5;
	padding-left: 16px;
	position: relative;
}

.common_shop_popup .shop_menu_set_list li::before{
	content:'・';
	font-family: var(--base_font_family);
	font-size: 13px;
	line-height: 1.5;
	color:var(--red);
	position: absolute;
	top:0;
	left:0;
}

.common_shop_popup .shop_info_box{
	margin-top: 60px;
	border-radius: 20px;
	background-color: #F5F5F5;
	padding:52px 38px 38px;
	position: relative;
}

.common_shop_popup .shop_info_head{
	display: flex;
	justify-content: center;
	align-items: center;
	width:fit-content;
	min-height: 42px;
	min-width: 151px;
	padding:4px 8px;
	border-radius: 9999px;
	background-color: var(--red);
	font-weight: 600;
	font-size: 24px;
	letter-spacing: 0.03em;
	line-height: 1.3;
	color: #fff;
	position: absolute;
	top:0;
	left:-20px;
	transform: translateY(-50%);
}

.common_shop_popup .shop_info_list_flex{
	display: flex;
	align-items: flex-start;
}

.common_shop_popup .shop_info_list{
	width:50%;
	padding-right: 4px;
}

.common_shop_popup .shop_info_list li{
	display: flex;
	align-items: flex-start;
	gap:13px;
	position: relative;
}


.common_shop_popup .shop_info_list li + li{
	margin-top: 20px;	
}

.common_shop_popup .shop_info_list .tel{
	font-family: var(--jost);
}

.common_shop_popup .shop_info_icon{
	flex-shrink: 0;
	width:49px;
	aspect-ratio: 1 / 1;
	border-radius: 50%;
	background-color: var(--red);
	display: flex;
	justify-content: center;
	align-items: center;
} 

.common_shop_popup .shop_info_icon::after{
	content:'';
}

.common_shop_popup .shop_info_icon.map::after{
	width:21px;
	height:26px;
	background-image: url('../img/common/icon_map_white.svg');
}
.common_shop_popup .shop_info_icon.tel::after{
	width:26px;
	height:22px;
	background-image: url('../img/common/icon_tel_white.svg');
}
.common_shop_popup .shop_info_icon.train::after{
	width:19px;
	height:23px;
	background-image: url('../img/common/icon_train_white.svg');
}
.common_shop_popup .shop_info_icon.time::after{
	width:22px;
	height:22px;
	background-image: url('../img/common/icon_time_white.svg');
}
.common_shop_popup .shop_info_icon.holiday::after{
	width:29px;
	height:23px;
	background-image: url('../img/common/icon_holiday_white.svg');
}
.common_shop_popup .shop_info_icon.insta::after{
	width:21px;
	height:21px;
	background-image: url('../img/common/icon_insta_white.svg');
}

.common_shop_popup .shop_info_list .qr{
	width:60px;
	position: absolute;
	left:300px;
	top: 50%;
	transform: translateY(-50%);
}

.common_shop_popup .shop_info_contents{
	font-size: 18px;
	letter-spacing: 0.03em;
	line-height: 1.2;
	min-height: 49px;
	display: flex;
	align-items: center;
}

.common_shop_popup .shop_info_contents .insta{
	border-bottom: 1px solid ;
	transition-duration: 0.4s;
	transition-property: border-color;
}

@media(any-hover:hover){
	.common_shop_popup .shop_info_contents .insta:hover{
		border-color: transparent;
	}
}


.common_shop_popup .shop_info_remark{
	font-size: 14px;
}

.common_shop_popup .shop_google_map{
	display: flex;
	justify-content: center;
	align-items: center;
	max-width: 325px;
	min-height:70px;
	border-radius: 9999px;
	padding:10px;
	background-color: var(--red);
	margin-inline: auto;
	
	font-family: var(--jost);
	font-weight: 600;
	font-size: 24px;
	letter-spacing: 0.03em;
	line-height: 1.2;
	color: #fff;
	gap:12px;
	transition-duration: 0.4s;
	box-shadow: 
    0 0 0 3px #000, 
    0 8px 0 0 #000; 
	margin-top: 24px;
	margin-bottom: 32px;
}

@media(any-hover:hover){
	.common_shop_popup .shop_google_map:hover{
		opacity: 0.7;
	}
}



.common_shop_popup .shop_google_map::after{
	content:'';
	width:20px;
	height:3px;
	border-radius: 10px;
	background-color: #fff;
}