@charset "utf-8";
/******************************************************************
*******************************************************************
レイアウト準備でbody非表示（utility.jsに記述）
*******************************************************************
******************************************************************/
body { opacity: 0; transition: .6s; }
body.is-loaded { opacity: 1; }





/******************************************************************
*******************************************************************
各ページ共通
HEADER-FOOTER周り
*******************************************************************
******************************************************************/
header {
	position: fixed;
	top: 0;
	left: 0;
	background: #e1f1f6;
	z-index: 1030;
	transition: all .5s ease;
}



/*********************************
#gnav > .logo
*********************************/
nav#gnav h1.logo { width: 26rem; }
nav#gnav h1.logo img { width: 100%; max-width: 26rem; height: auto; }



/*********************************
#gnav > .main-nav
*********************************/
nav#gnav .main-nav {
	position: relative;
	width: calc(100% - 30rem);
}
nav#gnav .main-nav a {
	position: relative;
	display: block;
	font-size: calc(1.3rem + 2 * ((100vw - 320px) / 960)); /*ベースサイズ最小1.3rem - 最大1.5rem*/
	font-weight: 700;
	line-height: 1;
	font-style: italic;
	font-style: oblique;
	font-family: 'notosansjp'!important;
	transition: all .5s!important;
}
nav#gnav .main-nav a:not(:first-child) { margin-left: 2rem; }

nav#gnav .main-nav a.current,
nav#gnav .main-nav a:hover {
	color: #1c4e9f!important;
	opacity: 1!important;
}
nav#gnav .main-nav a.current::after,
nav#gnav .main-nav a:hover::after {
	transform: scale(1, 1)!important;
	opacity: 1!important;
}






@media (max-width: 1199.98px) {
	nav#gnav h1.logo,
	nav#gnav h1.logo img { max-width: 21rem; }
	nav#gnav .main-nav { width: calc(100% - 23rem); }
	nav#gnav .main-nav a { font-size: calc(1.2rem + 2 * ((100vw - 320px) / 960)); } /*ベースサイズ最小1.2rem - 最大1.5rem*/
}
@media (max-width: 991.98px) {
	nav#gnav h1.logo {
		margin: 0 auto!important;
		text-align: center;
	}
	nav#gnav .main-nav { width: 100%; }
}
@media (max-width: 575.98px) {
	nav#gnav h1.logo,
	nav#gnav h1.logo img { width: 20rem; }
}






/******************************************************************
*******************************************************************
#sm-nav
*******************************************************************
******************************************************************/
#sm-nav {
	position: fixed;
	top: .8rem;
	left: 5%;
	z-index: 1030;
	transition: all .5s ease;
}



.menu-trigger {
	display: inline-block;
	position: relative;
	width: 4.45rem;
	height: 4.45rem;
	top: 0;
	margin: 0;
	padding: 0;
	background: #1c4e9f;
	border: none!important;
	border-radius: 50%;
	appearance: none!important;
	pointer-events: auto;
	z-index: 1040;
	transition: all .5s ease;
}
.menu-trigger span {
	display: inline-block;
	position: absolute;
	top: 1rem;
	left: 1rem;
	width: 2.45rem;
	height: 0.15rem;
	background-color: #fff;
	border-radius: 0.15rem;
	line-height: 1;
	transition: all .5s ease;
}
.menu-trigger span:nth-of-type(1) { top: 1.25rem; }
.menu-trigger span:nth-of-type(2) { top: 2.15rem; }
.menu-trigger span:nth-of-type(3) { top: 3.05rem; }
.menu-trigger:hover {
	cursor: pointer;
	transform: scale(1.1)!important;
}



@media (max-width: 575.98px) {
	#sm-nav { top: 1.225rem; }
	.menu-trigger {
		width: 3.2rem;
		height: 3.2rem;
	}
	.menu-trigger span {
		left: .8rem;
		width: 1.6rem;
	}
	.menu-trigger span:nth-of-type(1) { top: 1rem; }
	.menu-trigger span:nth-of-type(2) { top: 1.525rem; }
	.menu-trigger span:nth-of-type(3) { top: 2.05rem; }
}



/*********************************
追従ナビ > スマホ用 > 開いた時
*********************************/
body.modal-open .menu-trigger span:nth-of-type(1),
.modal.show .menu-trigger span:nth-of-type(1){ transform: rotate(-45deg); top: 2.2rem; }
body.modal-open .menu-trigger span:nth-of-type(2),
.modal.show .menu-trigger span:nth-of-type(2){ display: none; }
body.modal-open .menu-trigger span:nth-of-type(3),
.modal.show .menu-trigger span:nth-of-type(3){ transform: rotate(45deg); top: 2.2rem; }



@media (max-width: 575.98px) {
	body.modal-open .menu-trigger span:nth-of-type(1),
	.modal.show .menu-trigger span:nth-of-type(1){ top: 1.55rem; }
	body.modal-open .menu-trigger span:nth-of-type(3),
	.modal.show .menu-trigger span:nth-of-type(3){ top: 1.55rem; }
}



/*********************************
モーダル中身
#sm-nav
*********************************/
#sm-nav h1.logo-sm { width: 24rem; }
#sm-nav h1.logo-sm img { width: 100%; max-width: 24rem; height: auto; }

#sm-nav .sm-nav-list li a {
	position: relative;
	display: inline-block;
	font-size: calc(1.3rem + 2 * ((100vw - 320px) / 960)); /*ベースサイズ最小1.3rem - 最大1.5rem*/
	font-weight: 700;
	line-height: 1;
	font-style: italic;
	font-style: oblique;
	font-family: 'notosansjp'!important;
	transition: all .5s!important;
}
	
	
	
	
	
#sm-nav .sm-nav-list li a::after {
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	margin-left: auto;
	margin-right: auto;
	content: '';
	width: 100%;
	height: 1px;
	background: #1c4e9f;
	transform: scale(0, 1);
	transform-origin: left top;
	z-index: 1;
	-webkit-transition: bottom .5s ease, transform .5s ease;
			transition: bottom .5s ease, transform .5s ease;
}
#sm-nav .sm-nav-list li a.current,
#sm-nav .sm-nav-list li a:hover {
	color: #1c4e9f!important;
	opacity: 1!important;
}
#sm-nav .sm-nav-list li a.current::after,
#sm-nav .sm-nav-list li a:hover::after {
	transform: scale(1, 1)!important;
	opacity: 1!important;
}
#sm-nav .sm-nav-list li a.current:hover { cursor: default!important; }




#sm-nav .sm-nav-list li ul.sns-list li {
	width: 2rem;
	height: 2rem;
}
#sm-nav .sm-nav-list li ul.sns-list li img {
	width: 100%;
	height: auto;
}
#sm-nav .sm-nav-list li ul.sns-list li a::after { display: none!important; }
#sm-nav .sm-nav-list li ul.sns-list li a:hover {
	opacity: .3!important;
	cursor: pointer!important;
}


@media (max-width: 575.98px) {
	#sm-nav h1.logo-sm { width: 20rem; }
	#sm-nav h1.logo-sm img { max-width: 20rem; }
}





/*********************************
モーダル中身共通
*********************************/
.modal {
	height: 100vh;
	height: 100dvh;
	padding: 5%!important;
	opacity: 0;
	transform: translateX(10rem);
	background-color: rgba(255,255,255,1);
	transition: all .25s ease;
	z-index: 1060;
}
.modal.show { 
	opacity: 1;
	transform: translateX(0);
	transition: all .5s ease;
}
.modal-dialog {
	pointer-events: auto;
	max-width: inherit!important;
}
.modal-content {
	background: none;
	border: none;
}
.modal-header {
	padding: 0;
	border: none;
}
.modal-dialog-scrollable .modal-body { padding: 0 5%; }
.modal-backdrop {
	background: none;
	height: auto;
}
.modal-backdrop.show { opacity: 0; }



/*********************************
メニューモーダル中身 // .menuModal
*********************************/
#menuModal.modal { z-index: 1030!important; }
#menuModal.modal .modal-dialog { max-width: 320px!important; }





/******************************************************************
*******************************************************************
各ページ共通
nav以下
*******************************************************************
******************************************************************/
/*********************************
h系
*********************************/
h2, h3 {
	font-family: 'notosansjp'!important;
	font-weight: 700;
	line-height: 1;
	font-style: italic;
	font-style: oblique;
}
h4, h5 {
	font-family: 'notosansjp'!important;
	font-weight: 700;
	line-height: 1;
}
h2 { font-size: calc(1.8rem + 8 * ((100vw - 320px) / 960)); } /*ベースサイズ最小1.8rem - 最大2.6rem*/
h2 > span {
	position: relative;
	padding-bottom: .5rem;
	padding-left: 4rem;
}
h2 > span::before {
	content: "";
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    width: 3rem;
    height: 3rem;
    background: center center / contain no-repeat;
	background-image: url("img/h2_marker-blue.svg");
}
h3 { font-size: calc(1.7rem + 8 * ((100vw - 320px) / 960)); } /*ベースサイズ最小1.7rem - 最大2.5rem*/
h4 { font-size: calc(1.5rem + 5 * ((100vw - 320px) / 960)); } /*ベースサイズ最小1.5rem - 最大1.8rem*/
h5 { font-size: calc(1.4rem + 2 * ((100vw - 320px) / 960)); } /*ベースサイズ最小1.4rem - 最大1.6rem*/
@media (max-width: 575.98px) {
	h2, h3, h4 { font-weight: bold; }
}



/*********************************
#bgとmain
*********************************/
#bg {
	position: fixed;
	/** topはutility.jsでheaderの高さ分を指定 **/
	left: 0;
	z-index: 1;
	width: 100vw;
	height: 100vh;
	height: 100dvh;
	background-position: 0px 0px;
	background-size: cover;
	background-image: url("img/bg.svg");
	z-index: 1;
}
main {
	position: relative;
	/** padding-topはutility.jsでheaderの高さ分を指定 **/
	z-index: 1;
}





/*********************************
more-link
*********************************/
.more-link {
	font-size: calc(1.4rem + 4 * ((100vw - 320px) / 960)); /*ベースサイズ最小1.4rem - 最大1.8rem*/
	line-height: 1;
	font-style: italic;
	font-style: oblique;
	font-family: 'notosansjp'!important;
	font-weight: 700;
}



/*********************************
.hover-line-lr
*********************************/
.hover-line-lr span.line {
	position: relative;
	display: inline;
	line-height: 1.5!important;
	background-repeat: no-repeat;
	background-position: 0 100%;
	background-size: 0% 1.5px;
	transition:
		background-size .4s cubic-bezier(.22,.61,.36,1),
		background-position .4s cubic-bezier(.22,.61,.36,1);
	background-image: linear-gradient(#1c4e9f, #1c4e9f);
}
.hover-line-lr:active span.line { background-size: 100% 1.5px; cursor: pointer; }
.hover-line-lr span.line.white { background-image: linear-gradient(#fff, #fff); }
@media (hover: hover) {
	.hover-line-lr:hover span.line { background-size: 100% 1.5px; cursor: pointer; }
}



/*********************************
more-link × a.hover-line-lr
*********************************/
.hover-line-lr.more-link span.line { background-size: calc(100% - (1.4rem + 4 * ((100vw - 320px) / 960)) * 1.5) 1.5px; }
.hover-line-lr.more-link:active span.line { background-size: 100% 1.5px; }
@media (hover: hover) {
	.hover-line-lr.more-link:hover span.line { background-size: 100% 1.5px; }
}



/*********************************
.button-style
*********************************/
.button-style {
	position: relative;
	overflow: hidden;
	display: inline-block;
	background: #1c4e9f;
	border: 2px solid #1c4e9f;
	border-radius: 2rem;
	padding: 2rem 3rem!important;
	transition:
		background .4s ease-in,
		color .4s ease-in;
}
.button-style span {
	position: relative;
	font-size: calc(1.4rem + 4 * ((100vw - 320px) / 960));
    line-height: 1;
    font-family: 'notosansjp' !important;
	font-weight: 700;
	color: #fff;
	z-index: 1;
	display: flex;
	align-items: center;
	gap: .5rem;
	padding-right: 4rem;
}
.button-style span::before,
.button-style span::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 0;
	transform: translateY(-50%);
	width: 2.7rem;
	height: 2.7rem;
	background: no-repeat center / contain;
	transition: opacity .4s ease-in;
}
.button-style span::before {
	opacity: 1;
	background-image: url('img/outerlink_white.svg');
}
.button-style span::after {
	opacity: 0;
	background-image: url('img/outerlink.svg');
}
.button-style:active { background: #fff; cursor: pointer; }
.button-style:active span { color: #1c4e9f; }
.button-style:active span::before { opacity: 0; }
.button-style:active span::after  { opacity: 1; }
@media (hover: hover) {
	.button-style:hover { background: #fff; cursor: pointer; }
	.button-style:hover span { color: #1c4e9f; }
	.button-style:hover span::before { opacity: 0; }
	.button-style:hover span::after  { opacity: 1; }
}


.button-style.small-style {
	border: 2px solid #1c4e9f;
	padding: 1rem 1.5rem!important;
	border-radius: 1rem;
}
.button-style.small-style span {
	font-size: calc(1.3rem + 2 * ((100vw - 320px) / 960));
	padding-right: 3rem;
}
.button-style.small-style span::before,
.button-style.small-style span::after {
	width: 2rem;
	height: 2rem;
}
.button-style.small-style span::before { background-image: url('img/outerlink_s_white.svg'); }
.button-style.small-style span::after { background-image: url('img/outerlink_s.svg'); }



@media (max-width: 575.98px) {
	.button-style { padding: 1rem 1.5rem!important; }
}



/******************************************************************
*******************************************************************
TOPページ
*******************************************************************
******************************************************************/
#pictogram_link ul li a {
	position: relative;
	display: block;
	width: 100%;
	height: 100%;
	background-position: center;
	background-repeat: no-repeat;
	background-size: 100%;
}
#pictogram_link ul li a p {
	position: absolute;
	top: 0;
	left: 0;
	display: block;
	width: 100%;
	height: 100%;
	background-position: center;
	background-repeat: no-repeat;
	background-size: 100%;
	z-index: 1;
}
#pictogram_link ul li a img.default {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: auto;
	z-index: 100;
}
#pictogram_link ul li a:hover {
	opacity: 1!important;
}
#pictogram_link ul li a:hover p {
	background: transparent!important;
	opacity: 1!important;
}
#pictogram_link ul li a:hover img.default { opacity: 0!important; }



/*********************************
マウスーオーバ後に、別形式のエンブレム画像「img.hover」を表示するなら
下の:hoverのopacityを1に変更。
不要なら、カスタムフィールドやpage-fron.phpでの記述も削除
*********************************/
#pictogram_link ul li a img.hover {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: auto;
	opacity: 0;
	z-index: 99;
}
#pictogram_link ul li a:hover img.hover{ opacity: 0!important; }









/*********************************
ul#news-list
*********************************/
ul#news-list li { border-top: 1px dashed #1c4e9f; }
ul#news-list li:last-child {
	border-bottom: 1px dashed #1c4e9f;
	padding-bottom: 2rem;
}
ul#news-list li a .date { width: 8rem; }
ul#news-list li a .cat { width: 10rem; }
@media (max-width: 991.98px) {
	ul#news-list li a .date,
	ul#news-list li a .cat { width: 7rem; }
}
@media (max-width: 575.98px) {
	ul#news-list li a .cat { width: auto; }
	ul#news-list li a .cat span {
		font-size: 1rem!important;
		width: 7rem!important;
	}
}





/*********************************
.event-sche-table
*********************************/
.event-sche-table {
	position: relative;
	padding-bottom: 88.5%;
	height: 0;
	overflow: hidden;
}
.event-sche-table iframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 100% !important;
	height: 100% !important;
	border: .1rem solid #1c4e9f;
}





/*********************************
.inner-nav 
*********************************/
.inner-nav a span {
	font-family: 'notosansjp'!important;
	font-weight: 700;
	line-height: 1;
	font-style: italic;
	font-style: oblique;
	font-size: calc(1.5rem + 3 * ((100vw - 320px) / 960)); /*最小1.5rem - 最大1.8rem*/
}
.inner-nav a.hover-line-lr span.line { background-size: calc(100% - (1.5rem + 3 * ((100vw - 320px) / 960)) * 1.5) 1.5px; }
.inner-nav a.hover-line-lr:active span.line { background-size: 100% 1.5px; }
@media (hover: hover) {
	.inner-nav a.hover-line-lr:hover span.line { background-size: 100% 1.5px; }
}
.inner-nav.is-fixed {
	position: fixed;
	left: 0;
	width: 100%;
	z-index: 200;
	padding-left: 5%;
	padding-right: 5%;
	background: #e1f1f6;
}
.inner-nav.is-fixed a span { font-size: calc(1.3rem + 2 * ((100vw - 320px) / 960)); }




@media (max-width: 991.98px) {
	.inner-nav a span { font-size: calc(1.3rem + 2 * ((100vw - 320px) / 960)); }
}
@media (max-width: 767.98px) {
	.inner-nav a span,
	.inner-nav.is-fixed a span { font-size: 1.2rem; }
}





/*********************************
#facilities .facility-item .pictogram-area
*********************************/
#facilities .facility-item .pictogram-area {
	width: 15rem;
	height: 15rem;
}
#facilities .facility-item .pictogram-area > div {
	position: relative;
	display: block;
	width: 100%;
	height: 100%;
	background-position: center;
	background-repeat: no-repeat;
	background-size: 100%;
}
#facilities .facility-item .pictogram-area > div p.backcolor {
	position: absolute;
	top: 0;
	left: 0;
	display: block;
	width: 100%;
	height: 100%;
	background-position: center;
	background-repeat: no-repeat;
	background-size: 100%;
	z-index: 1;
}
#facilities .facility-item .pictogram-area > div img.default {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: auto;
	z-index: 100;
}





@media (max-width: 575.98px) {
	#facilities .facility-item .pictogram-area {
		width: 10rem;
		height: 10rem;
	}
	#facilities .facility-item .basic-info table th,
	#facilities .facility-item .basic-info table td {
		display: block;
		width: 100%;
	}
	#facilities .facility-item .basic-info table th { padding: 2rem 0 1rem 0; }
	#facilities .facility-item .basic-info table tr:first-child th { border-top: 1px dashed #1c4e9f; }
	#facilities .facility-item .basic-info table td {
		padding: 0 0 2rem 1rem;
		border-bottom: 1px dashed #1c4e9f;
	}
}















/******************************************************************
*******************************************************************
COMMONページ
*******************************************************************
******************************************************************/
/*********************************
#main_img
*********************************/
#main_img .main {
	position: relative;
	width: 100%;
	height: 0;
	padding-top: 56.25%;
	background-position: center;
	background-size: cover;
	background-repeat: no-repeat;
}
#main_img .main p {
	position: absolute;
	top: 0;
	left: 0;
	width: 25%;
}



/*********************************
#exp
*********************************/
.pictogram_s { min-width: 15.2rem; }



/*********************************
#usage_list
*********************************/
#usage_list table th,
#usage_list table td {
	vertical-align: top;
	padding: 1rem 0 .5rem 0;
	border-bottom: 1px solid #ccc;
}
#usage_list table tr:last-child th,
#usage_list table tr:last-child td {
	padding: 1rem 0 0 0;
	border: none!important;
}
#usage_list table th {
	font-weight: normal;
	width: 15rem;
}
#usage_list table td {
	width: calc(100% - 19rem);
	padding-left: 4rem!important;
}
#usage_list table td a.more-link {
	max-width: 30rem;
	line-height: 1.3;
	margin-bottom: 1rem!important;
}
#usage_list table td a.more-link:first-of-type { margin-top: 2rem!important; }



@media (max-width: 767.98px) {
	#usage_list table td {
		width: calc(100% - 17rem);
		padding-left: 2rem!important;
	}
}
@media (max-width: 575.98px) {
	.p-5per { padding: 7.5%; }
	#usage_list table th,
	#usage_list table td {
		display: block;
		width: 100%;
	}
	#usage_list table tr:last-child th,
	#usage_list table tr:last-child td {
		border-bottom: 1px solid #ccc!important;
		padding: 1rem 0 .5rem 0;
	}
	#usage_list table th { font-weight: bold; }
	#usage_list table td { padding-left: 2rem!important; }
	#usage_list table td a.more-link { max-width: 20rem; }
}





/******************************************************************
*******************************************************************
お知らせページ
*******************************************************************
******************************************************************/
.page-info span {
    line-height: 1.5;
    font-style: italic;
    font-style: oblique;
    font-family: 'notosansjp' !important;
    font-weight: 700;
}
.page-info span.current { font-size: calc(1.5rem + 5 * ((100vw - 320px) / 960)); }

.archive-pagination li { padding: .5rem; }
.archive-pagination li a,
.archive-pagination li span {
	font-size: calc(1.4rem + 4 * ((100vw - 320px) / 960));
    line-height: 1.5;
    font-style: italic;
    font-style: oblique;
    font-family: 'notosansjp' !important;
    font-weight: 700;
}
.archive-pagination li.active {
	background: #144ebe;
	border-radius: 50%;
}
.archive-pagination li.active span { color: #fff; }
.archive-pagination li a {
	position: relative;
	display: inline;
	line-height: 1.5!important;
	background-repeat: no-repeat;
	background-position: 0 100%;
	background-size: 0% 1.5px;
	transition:
		background-size .4s cubic-bezier(.22,.61,.36,1),
		background-position .4s cubic-bezier(.22,.61,.36,1);
	background-image: linear-gradient(#1c4e9f, #1c4e9f);
}
@media (hover: hover) {
	.archive-pagination li a:hover { background-size: 100% 1.5px; }
}









ul.single-pagination li.toarchive { width: 30rem; }
ul.single-pagination li:not(.toarchive) { width: calc((100% - 36rem)/2); }
@media (max-width: 767.98px) {
	ul.single-pagination li.toarchive { width: 25rem; }
	ul.single-pagination li:not(.toarchive) { width: calc((100% - 31rem)/2); }
	ul.single-pagination li p.d-md-none a {
		display: inline-block;
		font-size: 3rem;
		line-height: 1;
	}
}
@media (max-width: 575.98px) {
	ul.single-pagination li.toarchive { width: 22rem; }
	ul.single-pagination li:not(.toarchive) { width: calc((100% - 28rem)/2); }
}




/******************************************************************
*******************************************************************
予約状況ページ
*******************************************************************
******************************************************************/
.pictogram { max-width: 20rem; }
.booking-table {
	position: relative;
	padding-bottom: 60rem;
	height: 0;
	overflow: hidden;
}
.booking-table iframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 100% !important;
	height: 100% !important;
	border: .1rem solid #1c4e9f;
}







/******************************************************************
*******************************************************************
利用案内／料金ページ
*******************************************************************
******************************************************************/
table.opening th,
table.opening td { vertical-align: top; }
table.opening tr:not(:last-child) th,
table.opening tr:not(:last-child) td { padding-bottom: .5rem; }
table.opening th {
	font-weight: normal;
	width: 10rem;
}
table.opening td {
	width: calc(100% - 12rem);
	padding-left: 2rem!important;
}
.charge-table {
	position: relative;
	padding-bottom: 47.5%;
	height: 0;
	overflow: hidden;
}
.charge-table iframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 100% !important;
	height: 100% !important;
	border: .1rem solid #1c4e9f;
}
table.cancel_detail { width: 100%; }
table.cancel_detail th,
table.cancel_detail td {
	vertical-align: top;
	padding: 1rem 0 .5rem 0;
	border-bottom: 1px solid #ccc;
}
table.cancel_detail tr:last-child th,
table.cancel_detail tr:last-child td {
	padding: 1rem 0 0 0;
	border: none!important;
}
table.cancel_detail th {
	font-weight: normal;
	width: 24rem;
}
table.cancel_detail td {
	width: calc(100% - 28rem);
	padding-left: 4rem!important;
}
#usage-charge a.more-link { max-width: 30rem; }


@media (max-width: 767.98px) {
	table.cancel_detail th { width: 14rem; }
	table.cancel_detail td { width: calc(100% - 18rem); }
	.charge-table { padding-bottom: 80%; }
}
@media (max-width: 575.98px) {
	table.opening th { width: 8rem; }
	table.opening td {
		width: calc(100% - 8rem);
		padding-left: 0!important;
	}
	table.cancel_detail th,
	table.cancel_detail td {
		display: block;
		width: 100%;
	}
	table.cancel_detail th,
	table.cancel_detail td,
	table.cancel_detail tr:last-child th {
		padding: 1rem 0 .5rem 0;
		border-bottom: 1px solid #1c4e9f!important;
	}
	table.cancel_detail tr:nth-child(2) th { border-top: 1px solid #1c4e9f!important; }
	table.cancel_detail tr:last-child td { padding: 1rem 0 .5rem 0; }
	table.cancel_detail th { color: #1c4e9f!important; }
	table.cancel_detail td {
		padding-left: 2rem!important;
		padding-bottom: 2rem;
	}
}





/******************************************************************
*******************************************************************
アクセス／営業時間ページ
*******************************************************************
******************************************************************/
#about-access-slide-area .cover {
	position: relative;
	width: 45%;
	z-index: 2;
}
#about-access-slide-area .cover > img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: right center;
	display: block;
}
#about-access-slide-area .cover-over-con-area {
	position: absolute;
	max-width: 85rem;
	top: 0;
	bottom: 0;
	left: auto;
	right: 5%;
	margin: auto 5% auto auto;
}
#about-access-slide-area .cover-over-con-area .cover-over-con .text-area { width: 72%; }
#about-access-slide-area .swiper.swiper-area {
	position: relative;
	z-index: 1;
	margin-left: -5%;
	width: 60%;
	height: auto;
}
#about-access-slide-area .swiper.swiper-area { margin-right: 0!important; }
#about-access-slide-area .swiper-slide img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
@media (max-width: 3839.98px) {
	#about-access-slide-area .cover-over-con-area { max-width: 72rem; }
}
@media (max-width: 2599.98px) {
	#about-access-slide-area .cover-over-con-area { max-width: 60rem; }
}
@media (max-width: 1919.98px) {
	#about-access-slide-area .cover-over-con-area { max-width: 46rem; }
	#about-access-slide-area .cover-over-con-area .cover-over-con .text-area { width: 75%; }
}
@media (max-width: 1199.98px) {
	#about-access-slide-area .cover-over-con-area {
		max-width: 40rem;
		left: 0;
		right: 0;
		margin: auto;
	}
	#about-access-slide-area .cover-over-con-area .cover-over-con .flag { width: 90%; }
	#about-access-slide-area .cover-over-con-area .cover-over-con .text-area {
		width: 85%;
		margin: 2rem auto 0 auto!important;
	}
}
@media (max-width: 991.98px) {
	#about-access-slide-area .cover-over-con-area { max-width: 30rem; }
	#about-access-slide-area .cover-over-con-area .cover-over-con .text-area { margin: 1.5rem 0 0 0!important; }
	#about-access-slide-area .cover-over-con-area .cover-over-con .text-area h3 { font-size: 1.6rem; }
	#about-access-slide-area .cover-over-con-area .cover-over-con .text-area p { font-size: 1rem; }
}
@media (max-width: 767.98px) {
	#about-access-slide-area .cover { width: 100%; }
	#about-access-slide-area .cover > img {
		height: 35rem;
		object-position: center top;
	}
	#about-access-slide-area .cover-over-con-area {
		max-width: 30rem;
		left: 0;
		right: 0;
		margin: auto;
	}
	#about-access-slide-area .cover-over-con-area .cover-over-con .flag {
		width: 100%;
		margin: 0 auto!important;
		margin-top: -30%!important;
	}
	#about-access-slide-area .cover-over-con-area .cover-over-con .text-area {
		width: 100%;
		margin: 2rem auto 0 auto!important;
	}
	#about-access-slide-area .cover-over-con-area .cover-over-con .text-area h3 { font-size: 1.7rem; text-align: center; }
	#about-access-slide-area .cover-over-con-area .cover-over-con .text-area p { font-size: 1.3rem; }
}
@media (max-width: 575.98px) {
	#about-access-slide-area .cover > img { height: 30rem; }
	#about-access-slide-area .cover-over-con-area { max-width: 25rem; }
	#about-access-slide-area .cover-over-con-area .cover-over-con .flag { margin-top: -30%!important; }
	#about-access-slide-area .cover-over-con-area .cover-over-con .text-area h3 { font-size: 1.5rem;}
	#about-access-slide-area .cover-over-con-area .cover-over-con .text-area p { font-size: 1.1rem; }
}


.gmap {
    position: relative;
    padding-bottom: 47.5%;
    height: 0;
    overflow: hidden;
}

.gmap iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100% !important;
    height: 100% !important;
}
#access table th,
#access table td,
#parking table th,
#parking  table td {
	border-bottom: 1px solid #1c4e9f;
	padding: 1.5rem 0;
}
#access table tr:first-child th,
#access table tr:first-child td,
#parking table tr:first-child th,
#parking  table tr:first-child td { border-top: 1px solid #1c4e9f; }
#access table th { width: 24rem; }
#parking table th { width: 20rem; }
#access table th span,
#access table td span,
#parking table th span,
#parking  table td span { font-size: calc(1rem + 3 * ((100vw - 320px) / 960)); }



@media (max-width: 767.98px) {
	.gmap { padding-bottom: 80%; }
	#access table th { width: 18rem; }
	#parking table th { width: 18rem; }
}
@media (max-width: 575.98px) {
	#access table th,
	#parking table th,
	#access table tr:first-child th,
	#parking table tr:first-child th,
	#access table tr:first-child td,
	#parking table tr:first-child td { border: none; }
	#access table tr:first-child th,
	#parking  table tr:first-child th { border-top: 1px solid #1c4e9f!important; }
	#access table tr:first-child td,
	#parking  table tr:first-child td { border-bottom: 1px solid #1c4e9f!important; }
	#access table th,
	#access table td,
	#parking table th,
	#parking table td { 
		display: block;
		width: 100%;
	}
	#access table th,
	#parking table th { padding-bottom: 0; }
	#access table th p::before,
	#parking table th p::before { content: '・'; }
	#access table td,
	#parking table td { padding-left: 1rem; }
}





/******************************************************************
*******************************************************************
施設利用・料金ページ
*******************************************************************
******************************************************************/
#doc-download table th,
#doc-download table td { vertical-align: middle; }
#doc-download table td {
	width: 20rem;
	padding-left: 3rem;
}
@media (max-width: 575.98px) {
	#doc-download table th,
	#doc-download table td { display: block; }
	#doc-download table th { padding-bottom: 1rem; }
	#doc-download table th p::before { content: '・'; }
	#doc-download table td {
		width: 18rem;
		padding-left: 0;
		margin: 0 auto;
	}
	#doc-download table td a.button-style.small-style { padding: 1rem 1rem !important; }
}




/******************************************************************
*******************************************************************
スクールページ
*******************************************************************
******************************************************************/
/*********************************
#sort ul.sort-list
*********************************/
#sort ul.sort-list li:not(:last-child) { margin-bottom: 1rem; }
#sort ul.sort-list li .title { width: 15rem; }
#sort ul.sort-list li .title span::after {
	padding-left: 1rem;
	content: '▶︎';
}
#sort ul.sort-list li div { width: calc(100% - 20rem); }
#sort ul.sort-list li div a {
	background: #fff;
	border: 1px solid #1c4e9f;
	padding: .5rem 2rem;
	border-radius: 2rem;
	font-size: calc(1.2rem + 2 * ((100vw - 320px) / 960)); /*ベースサイズ最小1.2rem - 最大1.4rem*/
}
#sort ul.sort-list li div a.none { display: none!important; }
#sort ul.sort-list li div a.current,
#sort ul.sort-list li div a:hover {
	background: #1c4e9f;
	color: #fff!important;
	opacity: 1!important;
}
#sort ul.sort-list li div a.current { cursor: default!important; }




@media (max-width: 991.98px) {
	#sort ul.sort-list li div a { padding: .25rem 1.5rem; }
}
@media (max-width: 767.98px) {
#sort ul.sort-list li .title span::after { content: '▼'; }
	#sort ul.sort-list li:not(:last-child) { margin-bottom: 2rem; }
	#sort ul.sort-list li div { width: 100%; }
}



/*********************************
#pro-list
*********************************/
#pro-list ul li { padding: 0 1.25%; }
#pro-list ul li .inner { border-radius: 5rem 5rem 5rem 0; }
#pro-list ul li table { width: 100%; }
#pro-list ul li table th,
#pro-list ul li table td {
	vertical-align: top;
	padding: 1rem 0 .5rem 0;
	border-bottom: 1px dashed #1c4e9f;
	font-size: calc(1.2rem + 2 * ((100vw - 320px) / 960)); /*ベースサイズ最小1.2rem - 最大1.4rem*/
}
#pro-list ul li table tr:last-child th,
#pro-list ul li table tr:last-child td {
	padding: 1rem 0 0 0;
	border: none!important;
}
#pro-list ul li table th {
	font-weight: normal;
	width: 10rem;
}
#pro-list ul li table td { width: calc(100% - 8rem); }
#pro-list ul li .check {
	padding: .25rem 1.55rem .25rem 1rem!important;
	text-align: center;
	color: #fff!important;
	background-color: #1c4e9f;
	border-radius: 5rem!important;
}
#pro-list ul li .check img { margin-right: 1rem; }
#pro-list ul li .more-link { padding: .25rem 1.25rem; }
#pro-list ul li .more-link:first-of-type { margin-top: 3rem!important; }
#pro-list ul li .img { width: 15.6rem; }
#pro-list ul li .text { width: calc(100% - 18rem); }



@media (max-width: 991.98px) {
	#pro-list ul li .img { width: 10rem; }
	#pro-list ul li .text { width: calc(100% - 12rem); }
}
@media (max-width: 767.98px) {
	#pro-list ul li table th { width: 8rem; }
	#pro-list ul li table td { width: calc(100% - 6rem); }
	#pro-list ul li .inner { border-radius: 3rem 3rem 3rem 0; }
	#pro-list ul li .img {
		margin-left: auto;
		margin-right: auto;
	}
	#pro-list ul li .text { width: 100%; }
}
@media (max-width: 575.98px) {
	#pro-list ul li {
		max-width: 40rem;
		margin-left: auto;
		margin-right: auto;
	}
	#pro-list ul li .more-link { padding: .25rem 1rem; }
}








/******************************************************************
*******************************************************************
スクールシングルページ
*******************************************************************
******************************************************************/
/*********************************
#pro-list
*********************************/
#pro-single .inner {
	padding: 0 1.25%;
	border-radius: 5rem 5rem 5rem 0;
}
#pro-single .inner table { width: 100%; }
#pro-single .inner table th,
#pro-single .inner table td {
	vertical-align: top;
	padding: 1rem 0 .5rem 0;
	border-bottom: 1px dashed #1c4e9f;
	font-size: calc(1.2rem + 2 * ((100vw - 320px) / 960)); /*ベースサイズ最小1.2rem - 最大1.4rem*/
}
#pro-single .inner table tr:last-child th,
#pro-single .inner table tr:last-child td {
	padding: 1rem 0 0 0;
	border: none!important;
}
#pro-single .inner table th {
	font-weight: normal;
	width: 10rem;
}
#pro-single .inner table td { width: calc(100% - 8rem); }
#pro-single .inner .check {
	padding: .25rem 1.55rem .25rem 1rem!important;
	text-align: center;
	color: #fff!important;
	background-color: #1c4e9f;
	border-radius: 5rem!important;
}
#pro-single .inner .check img { margin-right: 1rem; }
#pro-single .inner .more-link { padding: .25rem 1.25rem; }
#pro-single .inner .more-link:first-of-type { margin-top: 3rem!important; }
#pro-single .inner .img { width: 15.6rem; }
#pro-single .inner .text { width: calc(100% - 18rem); }



@media (max-width: 991.98px) {
	#pro-single .inner .img { width: 10rem; }
	#pro-single .inner .text { width: calc(100% - 12rem); }
}
@media (max-width: 767.98px) {
	#pro-single .inner table th { width: 8rem; }
	#pro-single .inner table td { width: calc(100% - 6rem); }
	#pro-single .inner .inner { border-radius: 3rem 3rem 3rem 0; }
	#pro-single .inner .img {
		margin-left: auto;
		margin-right: auto;
	}
	#pro-single .inner .text { width: 100%; }
}
@media (max-width: 575.98px) {
	#pro-single .inner {
		max-width: 40rem;
		margin-left: auto;
		margin-right: auto;
	}
	#pro-single .inner .more-link { padding: .25rem 1rem; }
}




/******************************************************************
*******************************************************************
お問い合わせページ
*******************************************************************
******************************************************************/
#contact .button-style span {
	gap: 0;
	padding-right: 0;
}
#contact .button-style span.fs-26-18 { font-size: calc(1.8rem + 8 * ((100vw - 320px) / 960)); } /*ベースサイズ最小1.8rem - 最大2.6rem*/
#contact .button-style span.fs-15-13 { font-size: calc(1.3rem + 2 * ((100vw - 320px) / 960)); } /*ベースサイズ最小1.3rem - 最大1.5rem*/
#contact .button-style span::before,
#contact .button-style span::after { background: none!important; }
#contact .button-style:not(:last-child) { margin-bottom: 2rem; }
#contact .button-style.fax:active { background: #1c4e9f; cursor: default; }
#contact .button-style.fax:active span { color: #fff; }
@media (hover: hover) {
	#contact .button-style.fax:hover { background: #1c4e9f; cursor: default; }
	#contact .button-style.fax:hover span { color: #fff; }
}


/*********************************
#contact
*********************************/
.contact-form table { width: 100%; }
.contact-form table th,
.contact-form table td {
	vertical-align: top;
	padding-bottom: 1.5rem;
	line-height: 1.5;
}
.contact-form table th {
	font-weight: normal;
	width: 20rem;
}
.contact-form table td { width: calc(100% - 20rem); }
.contact-form .check {
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 5rem;
}
.contact-form .check p {
	margin: 0!important;
	padding: 0!important;
	font-size: 1.2rem;
	font-size: calc(1.1rem + 2 * ((100vw - 320px) / 960))!important;
	line-height: 1;
}
.contact-form .check p.check-box { margin-right: 1rem!important; }
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 textarea {
	width: 100%;
	padding: 0 .75rem;
	font-family: "Helvetica Neue", "Helvetica", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Arial", "Yu Gothic", "Meiryo", sans-serif!important;
	font-size: 1.4rem;
	font-size: calc(1.3rem + 2 * ((100vw - 320px) / 960)); /*ベースサイズ最小1.3rem - 最大1.5rem*/
	line-height: 1.8;
	letter-spacing: .05rem;
	color: #1c4e9f;
	font-weight: 400;
}
.wpcf7 textarea { padding: .75rem; }
.contact-form .button { text-align: center; }
input[type="submit"].wpcf7-form-control {
	width: 24rem;
	margin: 0 auto;
	padding: 0.75rem 1.25rem;
	font-size: calc(1.3rem + 2 * ((100vw - 320px) / 960));
	text-align: center;
	color: #1c4e9f;!important;
	letter-spacing: .15rem;
	border: 0.1rem solid #000;
	border-radius: 5rem!important;
	background: #fff!important;
	transition: all .5s ease;
}
input[type="submit"][disabled].wpcf7-form-control {
	border: 1px solid #ccc;
	background: transparent;
	color: #ccc!important;
}
input[type="submit"].wpcf7-form-control:hover {
	background: #000!important;
	color: #fff!important;
}
input[type="submit"][disabled].wpcf7-form-control:hover {
	border: 1px solid #ccc!important;
	background: transparent!important;
	color: #ccc!important;
	cursor: default!important;
}
.wpcf7-spinner { display: none!important; }
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output,
.wpcf7-not-valid-tip {
	border: none!important;
	text-align: center;
	font-size: 1.2rem;
	font-size: calc(1.1rem + 2 * ((100vw - 320px) / 960))!important;
	color: #fff;
	background: #1c4e9f;
	padding: .5rem;
}
.wpcf7 form.sent .wpcf7-response-output {
	border: none!important;
	margin-top: -10rem!important;
	text-align: center;
	font-size: 1.2rem;
	font-size: calc(1.1rem + 2 * ((100vw - 320px) / 960))!important;
	line-height: 1.5;
	color: #fff;
	background: #1c4e9f;
	padding: .5rem;
}
#contact table span.asterisk:before {
    content: " *";
    font-size: 1.5rem;
	line-height: 1;
	font-weight: bold;
    color: #fba09f;
}


@media (max-width: 575.98px) {
	.contact-form table th,
	.contact-form table td {
		display: block;
		width: 100%;
		margin: 0!important;
		padding: 0!important;
	}
	.contact-form table th { padding-bottom: .75rem!important; }
	.contact-form table td { padding-bottom: 2rem!important; }
	.wpcf7 textarea { height: 20rem; }
	.contact-form .pp-box .pp-box-inner { max-height: 20rem!important; }
}





/******************************************************************
*******************************************************************
404
*******************************************************************
******************************************************************/
body.error404 {
	min-height: 100dvh;
	display: flex;
	flex-direction: column;
}
body.error404 header { flex-shrink: 0; }
body.error404 footer {
	flex-shrink: 0;
	margin-top: 0!important;
}
body.error404 main {
	flex: 1;
	display: flex;
}
body.error404 main section.contents { flex: 1; }





/******************************************************************
*******************************************************************
footer
*******************************************************************
******************************************************************/
footer {
	color: #fff;
	background: #1c4e9f;
	position: relative;
	z-index: 10;
}
footer .footer-logo img {
    width: 100%;
    max-width: 26rem;
    height: auto;
}





@media (max-width: 1199.98px) {
	footer .footer-logo,
	footer .footer-logo img { max-width: 21rem; }
}
@media (max-width: 575.98px) {
	footer .footer-logo,
	footer .footer-logo img { width: 18rem; }
}




/*********************************
totop
*********************************/
.totop {
	position: fixed;
	bottom: 0rem;
	right: 2.5%;
	width: 7rem;
	height: 7rem;
	color: #1c4e9f !important;
    text-align: center;
    border-radius: 50%;
	font-size: calc(1.2rem + 4 * ((100vw - 320px) / 960)); /*ベースサイズ最小1.2rem - 最大1.8rem*/
	line-height: 1;
	font-style: italic;
	font-style: oblique;
	font-family: 'notosansjp'!important;
	font-weight: 700;
	opacity: 0;
	z-index: 100;
	transition: all .5s ease;
}
.totop.show {
	bottom: 2rem;
	opacity: 1;
}
.totop:hover {
	bottom: 2.5rem;
	opacity: 1!important;
}
.totop.show.fp { bottom: 10rem; }
.totop.show.fp:hover { bottom: 12rem; }


/*********************************
.tobooking / .tocharge
*********************************/
.tobooking {
	position: fixed;
	bottom: 50%;
	right: 2%;
	width: 10rem;
	height: 10rem;
	color: #1c4e9f !important;
    text-align: center;
    border-radius: 50%;
	font-size: calc(1.4rem + 4 * ((100vw - 320px) / 960)); /*ベースサイズ最小1.4rem - 最大1.8rem*/
	line-height: 1;
	font-style: italic;
	font-style: oblique;
	font-family: 'notosansjp'!important;
	font-weight: 700;
	opacity: 1;
	z-index: 100;
	transition: transform .5s ease;
}
.tocharge {
	position: fixed;
	bottom: calc(50% - 9rem);
	right: 2%;
	width: 10rem;
	height: 10rem;
	color: #1c4e9f !important;
    text-align: center;
    border-radius: 50%;
	font-size: calc(1.4rem + 4 * ((100vw - 320px) / 960)); /*ベースサイズ最小1.4rem - 最大1.8rem*/
	line-height: 1;
	font-style: italic;
	font-style: oblique;
	font-family: 'notosansjp'!important;
	font-weight: 700;
	opacity: 1;
	z-index: 99;
	transition: transform .5s ease;
}
.tobooking:hover,
.tocharge:hover {
	transform: scale(1.1);
	z-index: 100;
}
@media (max-width: 1919.98px) {
	.tobooking,
	.tocharge { right: 1.5%; }
}
@media (max-width: 991.98px) {
	.tobooking {
		right: 2.5%;
		width: 7rem;
		height: 7rem;
	}
	.tocharge {
		bottom: calc(50% - 6.25rem);
		right: 2.5%;
		width: 7rem;
		height: 7rem;
	}
}

@media (max-width: 575.98px) {
	.tobooking {
		bottom: 2rem;
		right: auto;
		left: 2.5%;
		z-index: 9;
	}
	.tocharge {
		bottom: 2rem;
		right: auto;
		left: calc(2.5% + 6.25rem);
		z-index: 8;
	}
}





/*********************************
Privacy Policyモーダル中身 // #ppModal
*********************************/
#ppModal.modal { padding:0!important; }
#ppModal.modal .modal-header { padding: .8rem 5%!important; }
#ppModal.modal h3,
#ppModal.modal h4 { line-height: 1.2 !important; }
@media (max-width: 575.98px) {
	#ppModal.modal .modal-header { padding: 1.25rem 4%!important; }
}