@charset "UTF-8";
/*!
 * Bootstrap	v5.3.8 (https://getbootstrap.com/)
 * Copyright 2011-2025 The Bootstrap Authors
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
 */

body{
	background: #E50020;
	margin: 0;
	overflow-x: hidden;
	font-family: "Zen Maru Gothic", sans-serif;
	font-weight: 400;
	font-size: 16px;
	color: #211714;
}

h2,h3,h4,h5,h6{
	font-weight: 700;
}

h2{
	position: relative;
	text-align: center;
	margin-block: 0 40px;
	font-size: 40px;
	color: #E50020;
	padding-left: 65px;
	display: inline-block;
	left: 50%;
	transform: translateX(-50%);
}
h2::before{
	content: url("../img/img_ribbon_red.svg");
	position: absolute;
	display: inline-block;
	width: 60px;
	height: 40px;
	left: -5px;
	top: 50%;
	transform: translateY(-50%);
}

h2.title::before{
	content: url("../img/img_ribbon_white.svg");
}


h3{
	position: relative;
	margin-block: 100px 20px;
	font-size: 30px;
	color: #E50020;
	border-left: 10px #ff9ea7 solid;
	padding-left: 10px;
}

h4{
	position: relative;
	padding-bottom: 10px;
	font-weight: bold;
	margin-bottom: 20px;
}
h4::after{
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 4px;
	background-image: radial-gradient(circle, #ff9ea7 2px, transparent 2px);
	background-size: 8px 4px; /* 横間隔16px、縦10px */
	background-repeat: repeat-x;
	background-position: left center;
}

img{
	width: 100%;
}

@media (max-width: 599px){
	h2{
		margin-top: 20px;
		font-size: 35px;
	}
	h3{
		font-size: 25px;
	}
}

img{
	border-radius: 10px;
}

a.text_link{
	position: relative;
	text-decoration: none;
	border-bottom: 3px dotted #ff9ea7;
}
a.text_link::after{
	content: url("../img/img_link.svg");
	width: 15px;
	height: 15px;
	display: inline-block;
	margin-inline: 5px 2px;
	position: relative;
	top: 1px;
}

.main_color{
	color: #E50020;
}

.txt_c{
	text-align: center;
}

ul.ul,
ul.caution{
	list-style: none;
	padding-left: 20px;
}
ul.ul li,
ul.caution li{ 
	position: relative;
	margin-bottom: 5px;
}
ul.ul li::before,

ul.caution li::before{
	font-weight: bold;
	position: absolute;
	left: -20px;
}
ul.ul li::before{
	content: "● ";
	color: #ff9ea7;
}

ul.caution li::before{
	content: "※ ";
	color: #E50020;
}

@media screen and (min-width: 600px){
	.sp_only{
		display: none;
	}
}
@media screen and (max-width: 599px){
	.pc_only{
		display: none;
	}
}

section{
	padding: 20px;
}

section:not(.main){
	width: 100%;
	max-width: 1000px;
	position: relative;
	margin: auto;
	margin-block: 120px;
}

section.main{
	padding: 0;
}
section.menu{
	margin-top: 0 !important;
}


.inlineblock span{
	display: inline-block;
}

section div.bg-w{
	background: #fff;
	margin: 50px 10px;
	padding: 50px;
	border-radius: 20px;
}
@media (max-width: 599px){
	section div.bg-w{
	margin: 50px 0px;
	padding: 20px;
	}
}

section:has(div.bg-w){
	margin-block: 0 !important;
}
section:not(:has(div.bg-w)){
	color: #fff;
	font-weight: 700;
}

section:not(:has(div.bg-w)) h2{
	color: #FFF;
}

.border_dotted{
	max-width: 1000px;
	height: 10px;
	margin: auto;
	position: relative;
}
.border_dotted::after{
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 10px;
	background-image: radial-gradient(circle, #fff 5px, transparent 5px);
	background-size: 20px 10px; /* 横間隔16px、縦10px */
	background-repeat: repeat-x;
	background-position: left center;
}

a{
	transition: all 0.2s;
	color: #E50020;
	font-weight: bold;
}
a:hover{
	color: #f4d923;
}

/* flex */
.flexes{
	display: flex;
	flex-wrap: wrap;
}

.flexes > div{
	margin: 1%;
}
.flex_1{
	margin: 1% 0;
	width: 100%;
}

.flex_2{
	width: 48%;
}
.flex_3{
	width: 31%;
}
.flex_4{
	width: 23%;
}

@media (max-width: 991px){
	.flex_3,.flex_4{
		width: 48%;
	}
}

@media (max-width: 799px){
	.flex_2{
		margin: 2% 0 !important;
		width: 100%;
	}
}

@media (max-width: 599px){
	.flex_1,.flex_3,.flex_4{
		margin: 2% 0 !important;
		width: 100%;
	}
}


/* footer */

footer{
	background: #221714;
	text-align: center;
	color: #fff;
}
.footer_message{
	padding: 10px;
}



/*スクロールで出現アニメーション*/

.scroll_fadein{
		opacity: 0;
		transition: all 1s;
		}
.scrollin{
		opacity: 1 !important;
		transform: initial;
}


/* ページトップボタン - page_top */

#page_top{
	position: fixed;
	display: block;
	width: 80px;
	height: 80px;
	right: 15px;
	bottom: 15px;
	opacity: 0;
	z-index: 101;
}

#page_top a{
	display: block;
	width: 80px;
	height: 80px;
}

#page_top a::before,
#page_top a::after{
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
	background-repeat: no-repeat;
	background-image: 100%;
}
#page_top a::before{
	content: "";
	background: no-repeat url("../img/img_for_top.svg");
	width: 100%;
	height: 100%;
	pointer-events: none;
}
#page_top a::after{
	content: "";
	border-radius: 50%;
	background: #FFF;
	width: 70%;
	height: 70%;
	z-index: -1;
}

#page_top.UpMove{
	animation: UpAnime 0.5s forwards;
}

@keyframes UpAnime{
	from {
		opacity: 0;
	transform: translateY(100px);
	}

	to {
		opacity: 1;
	transform: translateY(0);
	}

}

#page_top.DownMove{
	animation: DownAnime 0.5s forwards;
}

@keyframes DownAnime{
	from {
		opacity: 1;
	transform: translateY(0);
	}

	to {
		opacity: 1;
	transform: translateY(100px);
	}

}
#page_top a:hover {
  animation: tremble .5s ease-in-out;
}
@keyframes tremble {
  15% { transform: translateX(3px) rotate(1deg); }
  30% { transform: translateX(-3px) rotate(-1deg); }
  45% { transform: translateX(2px) rotate(1deg); }
  60% { transform: translateX(-2px) rotate(-1deg); }
  75% { transform: translateX(1px) rotate(1deg); }
  90% { transform: translateX(-1px) rotate(-1deg); }
}

/* main - メイン */

.main_img_logo{
	display: none;
}

.main_img_contents{
	position: relative;
	background: #fff;
	width: 100vw;
	left: 50%;
	transform: translateX(-50%);
}
.main_img_contents::before{
	content: "";
	position: absolute;
	width: calc(100% - 50px);
	height: calc(100% - 50px);
	border-radius: 10px;
	background: #E50020;
	left: 50%;
	top: 50%;
	transform: translate(-50%,-50%);
	z-index: -1;
}

.main_img_content{
	position: relative;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	left: 50%;
	transform: translateX(-50%);
}
@media (min-width: 992px){
.main_img_content{
		max-width: 1200px;
	}
	.main_img_content div.img_main_title{
		width: 40%;
	}
	.main_img_content div.img_main_title img{
		position: relative;
		top: 50%;
		transform: translateY(-45%);
	}
	.main_img_content div.img_main_kitty{
		width: 50%;
		align-items: end;
		text-align: center;
	}
	.main_img_content div.img_main_kitty{
		padding-top: 50px;
	}
	.img_main_title{
		padding-block: 100px;
		padding-inline: 5% 2%;
	}
}
@media (max-width: 991px){
	.main_img_content{
		max-width: 600px;
	}
	.main_img_content div{
		width: 80%;
	}
	.main_img_content div.img_main_kitty,
	.main_img_content div.img_main_title{
		text-align: center;
	}
	.main_img_content div.img_main_kitty img{
		height: 100%;
	}
	.img_main_title{
		padding-top: 50px;
	}
}
@media (max-width: 599px){
	.main_img_content{
		height: 550px;
		position: relative;
	}
	.main_img_content div.img_main_kitty{
		position: absolute;
		bottom: 0;
	}
	.main_img_content div.img_main_title img{
		max-width: 380px;
	}
	.main_img_content div.img_main_kitty img{
		max-width: 325px;
	}
}

section.menu{
	padding: 0;
}




/* メニュー - menu */


@media (min-width: 992px){
	.menu{
		position: relative;
		height: 80px;
	}
	.navbar{
		position: absolute;
		z-index: 100;
		font-weight: bold;
		top: 0;
		background: #221714;
		width: 100vw;
		left: 50%;
		transform: translateX(-50%);
	}
	
	.navbar-nav{
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		list-style: none;
	}
	.navbar-nav a{
		color: #fff !important;
		text-decoration: none;
		display: block;
		padding: 20px 30px !important;
	}
	.navbar-expand-lg .navbar-collapse{
		margin: auto;
		flex-grow: initial;
	}
	.navbar-nav a:hover{
		color: #f4d923 !important;
	}
	
	.scroll-nav{
		position: fixed !important;
	}
}


/* SPメニュー */

.navbar-toggler{
	border: none;
}

.navbar-toggler:focus{
	box-shadow: none;
}

.navbar_icon{
	position: relative;
	width: 60px;
	height: 60px;
}

.navbar_icon .navbar_line{
	display: inline-block;
	width: 30px;
	height: 1px;
	border-bottom: 4px #E50020 solid;
	position: absolute;
	left: 15px;
	transition: all 0.3s;
}
.navbar-toggler.active .navbar_icon .navbar_line{
	left: 16px;
}

.navbar_icon::before{
	content: "";
	background: #fff;
	border-radius: 50%;
	position: absolute;
	width: 60px;
	height: 60px;
	display: block;
	left: 50%;
	top: 50%;
	transform: translate(-50%,-50%);
	border: 3px #E50020 solid;
}

.navbar_icon .navbar_line.first{
	top: 18px;
	transform-origin: top left;
}

.navbar_icon .navbar_line.second{
	top: 28px;
}

.navbar_icon .navbar_line.third{
	top: 38px;
	transform-origin: bottom left;
}

.navbar-toggler{
	position: absolute;
	right: 15px;
	top: 15px;
	padding: 0;
}

.navbar-toggler[aria-expanded="true"] .navbar_line.first{
	transform: rotate(35deg);
	width: 36px;
}

.navbar-toggler[aria-expanded="true"] .navbar_line.second{
	opacity: 0;
}

.navbar-toggler[aria-expanded="true"] .navbar_line.third{
	transform: rotate(-35deg);
	width: 36px;
}


@media (max-width: 991px){
	.navbar-toggler{
		z-index: 101;
	}
	.navbar-toggler.active{
		top: 15px;
		right: 15px;
	}
	.menu{
		position: static !important;
		height: 60px;
	}
	.navbar:has(button.navbar-toggler.active){
		position: fixed;
	}
	.navbar{
		top: 0;
		width: 100%;
		z-index: 100;
		padding: 0;
	}
	.navbar-collapse::before{
		position: absolute;
		content: "";
		background: #E50020;
		width: 100%;
		height: 100%;
		opacity: 0;
		top: 50%;
		left: 50%;
		transform: translate(-50%,-50%);
		z-index: -1;
		transition: opacity 0.3s;
	}
	.navbar-collapse.show::before{
		opacity: 1;
	}
	.navbar-collapse{
		height: 100vh;
		width: 100vw;
		top: 0;
		left: 0;
	}
	.collapsing{
		transition: initial;
	}
	.navbar-collapse:not(.show){
		opacity: 0;
		pointer-events: none;
	}
	.navbar-collapse.show{
		opacity: 1;
		pointer-events: auto;
		position: fixed;
	}
	.navbar-collapse .nav_innner{
		position: relative;
		width: 100%;
		height: 100%;
	}
	.navbar-collapse .navbar-nav{
		position: absolute;
		max-width: 320px;
		border-radius: 120px;
		width: 100%;
		left: 50%;
		top: 50%;
		transform: translate(-50%,-50%);
		font-size: 24px;
		text-align: center;
		background: #fff;
		padding: 50px;
	}
	header:has(.show) .header_logo::before{
		background: no-repeat url("../img/header_logo_color.png") center/100%;
	}
	.collapse.show .nav-link{
		color: #211714;
		padding: 10px;
	}
	.collapse.show .nav-item:not(:last-child){
		position: relative;
	}
	.collapse.show .nav-item:not(:last-child)::after{
		content: "";
		position: absolute;
		left: 0;
		right: 0;
		bottom: 0;
		height: 4px;
		background-image: radial-gradient(circle, #E50020 2px, transparent 2px);
		background-size: 10px 4px; /* 横間隔16px、縦10px */
		background-repeat: repeat-x;
		background-position: left center;
	}

	.collapse.show .navbar-nav .nav-link[aria-expanded="true"]{
		color: #E50020;
	}
	.collapse.show .navbar-nav .nav-link:hover{
		color: #E50020;
	}
}


@media (max-width: 599px){
	.navbar.scroll-nav_sp{
		position: fixed;
	}
}

@media (min-width: 599px) and (max-width: 991px) {
	.navbar.scroll-nav_md{
		position: fixed;
	}
}

.menu_x{
	max-width: 20px;
	padding: 0 !important;
}
.menu_x img{
	width: 30px;
	border-radius: 0;
}
@media (max-width: 991px){
	.nav_x{
		position: absolute;
		bottom: -80px;
		left: 50%;
		transform: translateX(-50%);
	}
}


/* days_place - 日時 */
.nagasaki_ten{
	text-align: center;
	background: #f4d923;
	color: #211714;
	padding: 10px;
	font-size: 30px;
	font-weight: bold;
}
@media (max-width: 991px){
	.nagasaki_ten{
		background: #211714;
		color: #f4d923;
	}
}

@media (min-width: 599px) and (max-width: 991px) {
	.nagasaki_ten{
		transform: translateY(-80px);
	}
}

.nagasaki_ten_if{
	text-align: center;
	background: #211714;
	color: #f4d923;
	padding: 10px;
	font-size: 30px;
	font-weight: bold;
	width: 100vw;
}



.days_place{
margin-block: 0 !important;
width: 100vw !important;
background: #211714;
margin: 0;
max-width: initial !important;
}

@media (min-width: 599px) and (max-width: 991px) {
	.days_place{
		transform: translateY(-80px);
	}
}

.days_place.sp_only{
	margin-block: 0 !important;
}

.img_days_place{
	text-align: center;
	max-width: 1000px;
	margin: auto;
}
.img_days_place img.sp_only{
	height: 130px;
}
.navbar-toggler{
	color: #fff;
}



/* news - お知らせ */

section.news{
	margin-block: 150px;
}

h2.title{
	color: #fff;
}

.news .bg-w{
	margin: 0;
	background: initial;
	padding: initial;
}

.news_lists{
	padding: 30px;
	max-width: 500px;
	background: #FFF;
	position: relative;
	margin: auto;
	border-radius: 20px;
}

ul.news_list,
ul.news_list_in_lists{
	list-style: none;
	padding-inline-start: 0;
}

ul.news_list{
	margin-bottom: 0;
}

ul.news_list > li{
	padding-block: 10px;
	margin: 0;
	border-bottom: 3px #E50020 dotted;
}

@media (min-width: 600px){
	ul.news_list > li{
		display: flex;
	}
}

ul.news_list > li:first-child{
	border-top: 3px #E50020 dotted;
}

.news_days,
.news_list_in_lists,
.news_list_in_lists li{
	display: inline-block;
}
.news_days{
	width: 120px;
	font-weight: bold;
	color: #E50020;
	font-family: "Cherry Bomb One", system-ui;
}
.news_list_in_lists{
	padding-inline-start: 20px;
	width: calc(100% - 140px);
}
@media (max-width: 599px){
	.news_days{
		display: block;
	}
	.news_list_in_lists{
		width: 100%;
	}
}


/* concept - 開催概要 */

@media (max-width: 599px){
	.concept{
		margin-block-start: 50px !important;
	}
}

.concept_subtitle{
	margin-bottom: 15px;
	padding: 5px;
	position: relative;
}
.concept_subtitle::before{
    content: "";
    position: absolute;
    max-width: 12em;
    left: 50%;
    right: 0;
    bottom: 0;
    height: 4px;
    background-image: radial-gradient(circle, #fff 2px, transparent 2px);
    background-size: 8px 4px;
    background-repeat: repeat-x;
    background-position: left center;
    transform: translateX(-50%);
}

.concept_title{
	font-size: 35px;
	line-height: 1.5em;
}
.concept_lead{
	padding-block: 50px;
	margin-bottom: 50px;
	font-size: 1.3em;
	position: relative;
}

.concept_lead::before{
    content: "";
    position: absolute;
    max-width: 500px;
    left: 50%;
    right: 0;
    bottom: 0;
    height: 4px;
    background-image: radial-gradient(circle, #ff9ea7 2px, transparent 2px);
    background-size: 8px 4px;
    background-repeat: repeat-x;
    background-position: left center;
    transform: translateX(-50%);
}
.concept_inner{
	margin: auto;
	text-align: center;
	max-width: 600px;
	line-height: 2em;
}
.concept_inner p{
	margin-bottom: 1.5em;
}


/* SNS */ 
.SNS {
	overflow: hidden;
}
@media (max-width: 783px){
	.SNS h2{
		width: 12em;
	}
}
@media (max-width: 599px){
	.SNS h2{
		width: 9em;
	}
}

.SNS .SNS_bg{
	position: relative;
	border-radius: 50%;
	margin: auto;
	font-weight: bold;
	color: #211714;
}
.SNS .SNS_bg::before{
	content: "";
	position: absolute;
	display: block;
	width: 450px;
	height: 450px;
	background: no-repeat url("../img/img_sns_bg.svg");
	left: 50%;
	top: 50%;
	transform: translate(-50%,-50%);
	z-index: -1;
}

@media (max-width: 599px){
	.SNS .SNS_bg::before{
		width: 110%;
		background-position: center;
	}
}

.SNS_inner{
	width: 100%;
	padding: 0;
    padding-block: 100px;
}
.SNS_inner a{
	text-decoration: none;
	color: #211714;
	max-width: 450px;
    display: block;
    margin: auto;
}

.SNS .SNS_inner .img_x_icon{
	text-align: center;
}
.SNS .SNS_inner .img_x_icon img{
	max-width: 150px;
}
@media (max-width: 599px){
	.SNS .SNS_inner .img_x_icon img{
		max-width: 100px;
	}
}

.sns_account{
	font-size: 2em;
	color: #E50020;
	padding: 10px;
}

.sns_check{
	text-align: center;
	color: #E50020;
	margin-bottom: 20px;
	font-size: 1.3em;
	position: relative;
	display: inline-block;
	left: 50%;
	transform: translateX(-50%);
}
.sns_check::before,
.sns_check::after{
	content: "";
	position: absolute;
	background: center / 100% 100% no-repeat url("http://xs507531.xsrv.jp/202607tokimeki/wp-content/uploads/2026/07/sns_check.svg");
	width: 20px;
	height: 20px;
	font-size: 1.5em;
	top: 50%;
	transform: translateY(-50%);
}
.sns_check::before{
	left: -25px;
}
.sns_check::after{
	right: -25px;
	transform: translateY(-50%) scale(-100%, 100%);
}


/* photo_spots - フォトスポット */
.photo_spots{
	overflow-x: hidden;
}

.photo_spots .flexes{
	justify-content: center;
}


.photo_spots_txt{
	margin: auto;
	position: relative;
	padding-block: 150px;
}
.photo_spots_txt::before{
	position: absolute;
	content: "";
	background: center / 100% 100% no-repeat url("../img/img_sns_bg.svg");
	width: 450px;
	height: 450px;
	left: 50%;
	top: 50%;
	transform: translate(-50%,-50%);
	z-index: -1;
}


@media (max-width: 599px){
	.photo_spots{
		padding: 0;
	}
	.photo_spots_txt::before{
		margin: 0;
		max-width: 95%;
	}
}

.photo_spots_txt > div{
	color: #211714;
	width: 80%;
	margin: auto;
}
.photo_spots_img{
	position: relative;
}
.photo_spots_img_inner{
	width: 100%;
	height: 0;
	padding-bottom: 60%;
}
.photo_spots_img img{
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
	border: 20px #fff solid;
	object-fit: cover;
}

	.photo_spots .flex_2.photo_spots_txt{
		transform: translateY(20%);
	}
	.photo_spots .flex_2.photo_spots_img{
		transform: translateY(-20%);
	}

/* goods - グッズ */

.goods .flex_2{
	background: #ffedef;
	border-radius: 20px;
	
}

.goods_text{
	text-align: center;
	font-weight: bold;
	margin-block: 20px 40px;
}
.goods_name{
	margin-bottom: 10px;
	padding: 2px 15px;
	background: #E50020;
	color: #fff;
	border-radius: 50px;
	display: inline-block;
}
.goods_fee{
	color: #211714;
}
.goods_img{
	position: relative;
	width: 100%;
	height: 0;
	padding-bottom: 100%;
}

.goods_img img{
	object-fit: contain;
	border-radius: 20px;
}

/* ticket - チケット */

.ticket .ticket_special{
	align-items: center;
}
/*
.ticket_fee{
	font-weight: bold;
	justify-content: center;
	font-size: 1.2em;
}
.ticket_fee span{
	color: #E50020;
}
.ticket_fee .fee_flex{
	display: inline-block;
	margin-inline: 0;
}


@media (min-width: 927px){
	.ticket_fee .fee_flex{
		padding-inline: 20px;
	}
	.ticket_fee .fee_flex:not(:first-child){
		border-left: 2px solid #ff9ea7;
	}
}

@media (max-width: 926px){
	.ticket_fee .fee_flex{
		width: 80%;
		padding-block: 10px;
	}
	.ticket_fee .fee_flex:not(:first-child){
		border-top: 2px solid #ff9ea7;
	}
}
*/

.ticket_fee_table_pc,
.ticket_fee_table_sp{
	margin: auto;
	position: relative;
	left: 50%;
	transform: translateX(-50%);
	display: inline-block;
	font-weight: bold;
	font-size: 20px;
	margin-bottom: 20px;
	background: #FFF;
	border-radius: 10px;
	padding: 30px;
}
.ticket_fee_table_sp tbody{
	display: block;
	width: 100%;
}
.ticket_fee_table_pc tr *{
	padding: 10px 30px;
}
.ticket_fee_table_pc tr:nth-child(2){
	background: #ffedef;
}

.ticket_fee_table_pc thead th:first-child,
.ticket_fee_table_pc tbody th{
	width: 150px;
	color: #E50020;
}
.ticket_fee_table_pc thead th:not(:first-child),
.ticket_fee_table_pc tbody td{
	
}
.ticket_fee_table_pc thead{
	position: relative;
	border-bottom: 4px #ff9ea7 solid;
}

.ticket_special{
	margin-block: 10px 50px;
}

.tilet_special_title_fee{
	color: #E50020;
	font-size: 0.8em;
}
.tilet_special_title_fee small{
	font-size: 0.7em;
}

.ticket_fee_table_pc td{
	text-align: right;
}
.ticket_fee_table_sp td{
	display: inline-block;
	width: 10rem;
	position: relative;
}
.ticket_fee_table_sp td span{
	position: absolute;
	right: 0;
}

@media (max-width: 599px){
	.ticket_fee_table_pc{
		display: none;
	}
}

@media (min-width: 600px){
	.ticket_fee_table_sp{
		display: none;
	}
}

@media (max-width: 599px){
	.ticket_fee_table_sp{
		width: 100%;
	}
}
.ticket_fee_table_sp tr{
	padding: 20px 0;
    display: block;
	}

.ticket_fee_table_sp td,
.ticket_fee_table_sp th{
	display: block;
}
.ticket_fee_table_sp th{
	color: #E50020;
	position: relative;
	padding-bottom: 10px;
}
.ticket_fee_table_sp th::before{
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 4px;
    background-image: radial-gradient(circle, #ff9ea7 2px, transparent 2px);
    background-size: 8px 4px;
    background-repeat: repeat-x;
    background-position: left center;
}


/* access - アクセス */


.access_name{
	margin-bottom: 30px;
	text-align: center;
}
.access_name img{
	max-width: 300px;
	border-radius: 0;
	margin-bottom: 10px;
}

.access_list_inner{
	margin-bottom: 10px;
}

.access_list_inner .access_list_name,
.access_list_inner .access_list_how{
	display: inline-block;
}
.access_list_inner .access_list_name{
	position: relative;
	color: #E50020;
	font-weight: bold;
	width: 100px;
}
.access_list_inner .access_list_name::after{
	content: "  ･･･";
	color: #ff9ea7;
}

.access_map iframe{
	width: 100%;
	height: 450px;
	border-radius: 20px;
}


@media (max-width: 599px){
	.access_list_inner .access_list_name{
		display: block;
		width: 100%;
	}
}

/*
.access_map{
	position: relative;
}
.access_map::before{
	content: "";
	border-radius: 20px;
	position: absolute;
	display: block;
	background: #E50020;
	width: 100%;
	height: 100%;
	mix-blend-mode: hue;
	pointer-events: none;
}
*/


/* faq - よくあるご質問 */

.faq_content{
	margin-block: 40px;
	padding-left: 50px;
}
.faq_Q,
.faq_A{
	position: relative;
}
.faq_Q{
	font-weight: bold;
	padding-bottom: 5px;
	margin-bottom: 15px;
	position: relative;
}
.faq_Q::after{
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 2px;
	background-image: radial-gradient(circle, #ff9ea7 1px, transparent 1px);
	background-size: 4px 2px; /* 横間隔16px、縦10px */
	background-repeat: repeat-x;
	background-position: left center;
}
.faq_Q::before,
.faq_A::before{
	position: absolute;
	left: -50px;
	top: -5px;
	font-weight: bold;
	font-size: 25px;
	line-height: 30px;
	width: 35px;
	height: 35px;
	color: #fff;
	text-align: center;
	border-radius: 50%;
}
.faq_Q::before{
	content: "Q";
	background: #211714;
}
.faq_A::before{
	content: "A";
	background: #E50020;
}


/* sponsor */

section.sponsor{
	background: #FFF;
	width: 100vw;
	max-width: initial;
	position: relative;
	left: 50%;
	transform: translateX(-50%);
	margin-block: initial;
	margin: initial;
	padding: 100px 50px;
}

section.sponsor table{
	color: #211714;
	max-width: 1000px;
	margin: auto;
}

section.sponsor table tr:not(:first-child){
	border-top: 1px solid #ff9ea7;
}
section.sponsor table th,
section.sponsor table td{
	padding-block: 10px;
}
section.sponsor table th{
	min-width: 200px;
}

section.sponsor table img{
	max-width: 150px;
}

@media (max-width: 599px){
	section.sponsor table th,
	section.sponsor table td{
		display: block;
	}
	section.sponsor table th{
		padding-bottom: 0;
	}
}


.kenbi .kenbi_link{
	text-align: center;
	margin-block: 50px;
	font-size: 20px;
}
.kenbi .kenbi_link a{
	position: relative;
	background: #E50020;
	color: #fff;
	padding: 20px;
	display: block;
	max-width: 500px;
	margin: auto;
	text-decoration: none;
	border-radius: 100px;
}
.kenbi .kenbi_link a::after{
	content: url(../img/img_link_white.svg);
	width: 20px;
	height: 20px;
	display: inline-block;
	margin-inline: 5px 2px;
	position: relative;
	top: 2px;
}
.kenbi .kenbi_link a:hover{
	background: #f4d923;
}

.kenbi .kenbi_link a small{
	font-size: 0.7em;
}

.access .kenbi .kenbi_link a::after{
	content: none;
}

.access .kenbi .kenbi_link a i{
	position: relative;
}
.access .kenbi .kenbi_link a i::after{
	content: url(../img/img_link_white.svg);
	width: 20px;
	height: 20px;
	display: inline-block;
	margin-inline: 5px 2px;
	position: relative;
	top: 2px;
}