@charset "UTF-8";

/*================================================
 * CSSリセット
 ================================================*/
html,body,div,span,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,abbr,address,cite,code,del,dfn,em,img,ins,kbd,q,samp,small,strong,sub,sup,var,b,i,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,figcaption,figure,footer,header,hgroup,main,menu,nav.gnav,section,summary,time,mark,audio,video{
	margin:0;
	padding:0;
	border:0;
	outline:0;
	font-size:100%;
	vertical-align:baseline;
	background:transparent;
	font-weight:normal;
}
body{line-height:1;}
article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav.gnav,section{display:block;}
ul{list-style:none;}
blockquote,q{quotes:none;}
blockquote:before,blockquote:after,q:before,q:after{content:none;}
a{margin:0;padding:0;font-size:100%;vertical-align:baseline;background:transparent;}
del{text-decoration:line-through;}
abbr[title],dfn[title]{border-bottom:1px dotted;cursor:help;}
table{border-collapse:collapse;border-spacing:0;}
hr{display:block;height:1px;border:0;border-top:1px solid #ccc;margin:1em 0;padding:0;}
input,select{vertical-align:middle;}

/*================================================
 * 共通
 ================================================*/
body {
	font-size: 14px;
	font-family: "メイリオ",Meiryo,"ヒラギノ角ゴ Pro W3","Hiragino Kaku Gothic Pro",Osaka,"ＭＳ Ｐゴシック","MS PGothic",sans-serif;
	line-height: 1.6;
	-webkit-text-size-adjust: 100%;
	color: #333;
	background: #fff;
}

a {
	color: #043771;
	text-decoration: none;
}
a:hover {
	color: #144d8d;
}

img {
	max-width: 100%;
	vertical-align: bottom;
}

strong {
	font-weight: bold;
	color: #ff0000;
}

p {
	margin: 0 0 1em 0;
}

#contents {
	width: 980px;
	margin: 0 auto;
}

header + #contents {
	padding-top: 50px;
}

.inner {
	position: relative;
	width: 980px;
	margin: 0 auto;
}

.con_main {
	margin-bottom: 40px;
}

.heading_text {
	color: #052667;
}

h1 {
	font-size: 18px;
}

h2 {
	margin-top: 50px;
	margin-bottom: 0.25em;
	font-size: 17px;
	border-bottom: 3px solid #052667;
	color: #052667;
	font-weight: bold;
}

h4 {
	margin-top: 10px;
	margin-bottom: 0.25em;
	font-size: 14px;
	color: #052667;
	font-weight: bold;
}

.sub_heading:before {
	content:"\00ab";
}
.sub_heading:after {
	content:"\00bb";
}

.fa-blue:before {
	color: #052667;
}

.center {
	text-align: center;
}

/*================================================
 * ヘッダー
 ================================================*/
header {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	background: #fff;
	z-index: 100;
}

header:after {
	content: "";
	display: block;
	clear: both;
}

header h1 {
	float: left;
	height: 50px;
	font-size: 16px;
	line-height: 50px;
	color: #fff;
}

header h1 img {
	height: 40px;
	width: auto;
	vertical-align: middle;
}

@media screen and (max-width:768px) {
	header h1 {
		padding: 0 0 0 10px;
	}
}

/*================================================
 * グローバルナビ
 ================================================*/
@media print, screen and (min-width:769px) {
	nav.gnav:after {
		content: '';
		display: block;
		clear: both;
	}
	nav.gnav {
		display: block !important;
		float: right;
	}
	nav.gnav ul {
		margin: 0;
		padding: 0;
	}
	nav.gnav ul li {
		position: relative;
		line-height: 50px;
		margin: 0;
		padding: 0;
		list-style: none;
	}
	nav.gnav ul li a {
		display: block;
		background: #fff;
		color: #000;
		font-size: 13px;
		font-weight: bold;
		text-decoration: none;
	}
	nav.gnav ul li:hover > a {
		color: #fff;
		background: #333;
	}
	nav.gnav > ul > li {
		position: relative;
		width: 120px;
		float: left;
		margin: 0;
		padding: 0;
		text-align: center;
		list-style: none;
		line-height: 50px;
	}
	nav.gnav > ul {
		display: block !important;
	}
	#spMenu {
		display: none;
	}
}

@media screen and (max-width:768px) {
	nav.gnav {
		display: none;
	}
	nav.gnav ul {
		margin: 0;
		padding: 0;
	}
	nav.gnav > ul {
		z-index: 2;
		overflow: auto;
		position: fixed;
		top: 50px;
		right: 0;
		width: 100%;
		height: calc(100% - 50px);
	}
	nav.gnav li {
		position: relative;
		width: 100%;
		float: none;
		margin: 0;
		text-align: left;
		list-style: none;
		border-bottom: 1px solid #333;
		background: #000;
	}
	nav.gnav li a {
		display: block;
		padding: 10px 20px;
		color: #fff;
		text-decoration: none;
		background: #000;
	}
	nav.gnav li a:hover {
		color: #fff;
		background: #222;
	}

	.spMenuWrap {
		display: block;
		position: fixed;
		top: 0;
		right: 0;
		background: transparent;
	}
	#spMenu {
		position: absolute;
		top: 10px;
		right: 10px;
	}
	#spMenu:hover {
		cursor: pointer;
	}
	#navBtn {
		display: inline-block;
		position: relative;
		width: 30px;
		height: 30px;
		border-radius: 5%;
		background: #333;
	}
	#navBtnIcon {
		display: block;
		position: absolute;
		top: 50%;
		left: 50%;
		width: 14px;
		height: 2px;
		margin: -1px 0 0 -7px;
		background: #f1f1f1;
		transition: .2s;
	}
	#navBtnIcon:before,
	#navBtnIcon:after {
		display: block;
		content: '';
		position: absolute;
		top: 50%;
		left: 0;
		width: 14px;
		height: 2px;
		background: #f1f1f1;
		transition: 0.3s;
	}
	#navBtnIcon:before {
		margin-top: -6px;
	}
	#navBtnIcon:after {
		margin-top: 4px;
	}
}

/*================================================
 * スライドショー
 ================================================*/
.slide {
	padding-top: 50px;
	overflow: hidden;
	position: relative;
}
.slideInner {
	list-style: none;
	margin: 0;
	padding: 0;
}
.slideInner li {
	position: absolute;
	width: 100%;
	margin: 0;
	padding: 0;
	background-color: #fff;
	background-position: 50% 0;
	background-repeat: no-repeat;
}

/*================================================
 * 画像共通
 ================================================*/
.imgS,
.imgC {
	clear: both;
	overflow: hidden;
	margin-bottom: 50px;
	text-align: center;
}

.imgS img {
	border-radius: 0;
}

.imgC img {
	border-radius: 5px;
}

/*================================================
 * お知らせ
 ================================================*/
.information {
	margin-bottom: 80px;
}
.information dt {
	clear: both;
	float: left;
	margin: 0;
	padding: 10px 0;
	vertical-align: top;
	border-bottom: none;
	font-weight: bold;
}
.information dd {
	margin: 0;
	padding: 10px 0 10px 8em;
	vertical-align: top;
	border-bottom: 1px dotted #333;
}

/*================================================
 * テーブル共通
 ================================================*/
table {
	width: 100%;
	margin-bottom: 1em;
	border-collapse: collapse;
	border: 1px solid #ddd;
}
th {
	padding: 10px;
	text-align: center;
	vertical-align: middle;
	border: 1px solid #ddd;
	background: #f1f1f1;
	font-weight: bold;
}
td {
	padding: 10px;
	text-align: left;
	border: 1px solid #ddd;
}

/*================================================
 * 利用料金
 ================================================*/
.price-table-wrap {
	width: 100%;
	margin: 20px 0;
}
.price-caption {
	font-weight: bold;
	margin-bottom: 8px;
	font-size: 18px;
}
.price-table {
	width: 100%;
	border-collapse: collapse;
	table-layout: fixed;
	font-size: clamp(11px, 1.2vw, 14px);
	line-height: 1.4;
	background: #fff;
}
.price-table th,
.price-table td {
	border: 1px solid #333;
	padding: 0.5em 0.35em;
	vertical-align: middle;
	word-break: break-word;
	overflow-wrap: break-word;
}
.price-table th {
	background: #f5f5f5;
	text-align: center;
}
.price-notes {
	margin-top: 12px;
	padding-left: 0;
	font-size: clamp(11px, 1.4vw, 14px);
	line-height: 1.7;
}

.notice_time {
	margin: 20px 0 40px;
}

/*================================================
 * 教室・施設テーブル
 ================================================*/
.facility-table-wrap {
	width: 100%;
	margin-bottom: 30px;
}
.facility-table {
	width: 100%;
	border-collapse: collapse;
	table-layout: fixed;
}
.facility-table th,
.facility-table td {
	border: 1px solid #333;
	padding: 10px;
	vertical-align: top;
	line-height: 1.6;
	box-sizing: border-box;
}
.facility-table th {
	background: #f5f5f5;
	text-align: center;
}

/*================================================
 * hidden box
 ================================================*/
.hidden_box {
	margin: 2em 0;
	padding: 0;
	text-align: center;
}
.hidden_box label {
	display: inline-block;
	border-radius: 3px;
	padding: 8px 50px;
	color: #fff !important;
	text-align: center;
	text-decoration: none;
	background: #000;
	transition: 0.5s;
	cursor: pointer;
}
.hidden_box label:hover {
	background: #333;
}
.hidden_box input {
	display: none;
}
.hidden_box .hidden_show {
	height: 0;
	padding: 0;
	overflow: hidden;
	opacity: 0;
	transition: 0.8s;
}
.hidden_box input:checked ~ .hidden_show {
	padding: 10px 0;
	height: auto;
	opacity: 1;
}

/*================================================
 * 施設写真
 ================================================*/
.photo-grid {
	display: flex;
	flex-wrap: wrap;
	gap: 20px;
}
.photoText {
	width: calc((100% - 40px) / 3);
	text-align: center;
	box-sizing: border-box;
}
.photoText img {
	width: 100%;
	height: 220px;
	object-fit: cover;
	display: block;
}
.photoText p {
	margin: 10px 0 0;
	line-height: 1.5;
}

/*================================================
 * アクセステーブル
 ================================================*/
.access-table-wrap {
	width: 100%;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}
.access-table {
	width: 100%;
	table-layout: fixed;
	border-collapse: collapse;
}
.access-table th,
.access-table td {
	box-sizing: border-box;
	word-break: break-word;
	overflow-wrap: break-word;
	vertical-align: top;
}
.shokai {
	width: 100%;
	border: 2px solid #d6ceb4;
	overflow: hidden;
	word-break: break-all;
	word-wrap: break-word;
}
.shokai th {
	padding: 6px 8px 5px;
	border-top: solid 1px #ffffff;
	width: 30%;
	color: #13131e;
	font-weight: bold;
	font-size: 100%;
	text-align: left;
	vertical-align: top;
	background-color: #eeece4;
}
.shokai td {
	padding: 5px 10px;
	text-align: left;
	vertical-align: top;
	color: #595960;
	background-color: #ffffff;
	border-top: dotted 1px #e0dccc;
}

/*================================================
 * マップ
 ================================================*/
.map-wrap {
	position: relative;
	width: 100%;
	max-width: 100%;
	padding-top: 56.25%;
	margin-top: 10px;
}
.map-wrap iframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 100% !important;
	height: 100% !important;
	border: 0;
}

/*================================================
 * 電話
 ================================================*/
.box_contact,
.box_contact.effect {
	margin: 0 !important;
	padding: 0 !important;
}
.box_contact {
	background-color: #ffffff;
	padding-top: 50px;
	padding-bottom: 30px;
	text-align: center;
	padding-right: 10px;
	padding-left: 10px;
}
.box_contact .box_in {
	text-align: center !important;
	margin: 0 !important;
	padding: 0 !important;
}
.box_contact .tel {
	width: 100% !important;
	text-align: center !important;
	float: none !important;
	margin: 0 !important;
	padding: 0 !important;
	line-height: 1.2 !important;
}
.box_contact .tel a {
	display: inline-block !important;
	float: none !important;
	margin: 0 !important;
	padding: 0 !important;
	line-height: 1.2 !important;
	text-decoration: none;
	font-size: 30px;
	font-weight: bold;
	color: #0085B2;
}
.box_contact .tel a strong {
	font-size: 150%;
	color: #0085B2;
}
.box_contact .tel a i {
	padding-right: 10px;
	font-size: 120%;
}

/*================================================
 * 関連リンク
 ================================================*/
.related_section {
	width: 100%;
	margin: 28px 0 30px;
	box-sizing: border-box;
}
.related_heading {
	margin: 0 0 18px 0;
}
.related_heading_inner {
	display: flex;
	align-items: center;
	gap: 12px;
	color: #052667;
	font-weight: 700;
	line-height: 1.2;
}
.related_heading_icon {
	font-size: 42px;
	line-height: 1;
	color: #052667;
}
.related_heading_text {
	font-size: 30px;
	font-weight: 700;
	letter-spacing: 0.02em;
	color: #052667;
}
.related_heading_line {
	width: 100%;
	height: 4px;
	background: #123b8f;
	margin-top: 10px;
}
.related_list {
	display: flex;
	flex-wrap: wrap;
	gap: 18px;
	justify-content: space-between;
}
.related_item {
	width: calc((100% - 36px) / 3);
	box-sizing: border-box;
}
.related_btn {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	width: 100%;
	min-height: 72px;
	padding: 12px 44px 12px 18px;
	box-sizing: border-box;
	text-decoration: none !important;
	text-align: left !important;
	border-radius: 14px;
	background: #ffffff;
	position: relative;
	overflow: hidden;
	transition: all 0.25s ease;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
	border: 1px solid #d9d9d9;
}
.related_btn:before {
	content: "";
	position: absolute;
	top: 12px;
	bottom: 12px;
	left: 0;
	width: 6px;
	border-radius: 0 4px 4px 0;
}
.related_btn:after {
	content: ">";
	position: absolute;
	right: 16px;
	top: 50%;
	transform: translateY(-50%);
	font-size: 24px;
	font-weight: bold;
	opacity: 0.75;
	line-height: 1;
}
.related_btn:hover {
	transform: translateY(-2px);
	box-shadow: 0 6px 14px rgba(0, 0, 0, 0.10);
}
.related_btn_inner {
	display: block;
	width: 100%;
	text-align: left !important;
}
.related_btn_sub {
	display: block;
	margin: 0 0 3px 0;
	font-size: 11px;
	line-height: 1.2;
	letter-spacing: 0.08em;
	font-weight: 700;
	text-align: left !important;
}
.related_btn_main {
	display: block;
	margin: 0;
	font-size: 16px;
	line-height: 1.4;
	font-weight: 700;
	text-align: left !important;
	word-break: break-word;
}

.related_btn.gym {
	background: #ffffff;
	border-color: #cfd9ea;
}
.related_btn.gym:before {
	background: #2c67b1;
}
.related_btn.gym,
.related_btn.gym .related_btn_sub,
.related_btn.gym .related_btn_main {
	color: #11467f;
}

.related_btn.track {
	background: #ffffff;
	border-color: #d5dfd2;
}
.related_btn.track:before {
	background: #4d9b45;
}
.related_btn.track,
.related_btn.track .related_btn_sub,
.related_btn.track .related_btn_main {
	color: #2c6b2a;
}

.related_btn.movie {
	background: #ffffff;
	border-color: #ead2cd;
}
.related_btn.movie:before {
	background: #d25544;
}
.related_btn.movie,
.related_btn.movie .related_btn_sub,
.related_btn.movie .related_btn_main {
	color: #a63e31;
}

/*================================================
 * フッター
 ================================================*/
footer {
	clear: both;
	margin-top: 0;
	padding: 0 !important;
	text-align: center;
}
footer .sfnav {
	margin: 0 !important;
	padding: 18px 20px !important;
	text-align: center;
	line-height: 1.6 !important;
	color: #000;
	font-size: 11px;
	background: #f5f5f5;
}
footer .copyright {
	display: block !important;
	width: 100% !important;
	min-height: 56px !important;
	margin: 0 !important;
	padding: 14px 20px !important;
	box-sizing: border-box !important;
	text-align: center !important;
	line-height: 1.6 !important;
	color: #fff;
	font-size: 11px;
	background: #001d56;
}
footer .copyright small,
footer small.copyright {
	display: block !important;
	width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	line-height: 1.6 !important;
	white-space: normal !important;
	word-break: break-word !important;
}

/*================================================
 * トップへ戻る
 ================================================*/
.totop {
	position: fixed;
	bottom: 15px;
	right: 15px;
	z-index: 1;
}
.totop a {
	display: block;
	text-decoration: none;
}
.totop img {
	background: #052667;
}
.totop img:hover {
	background: #002146;
}

/*================================================
 * レスポンシブ
 ================================================*/
@media screen and (max-width:979px) {
	#contents {
		box-sizing: border-box;
		width: 100%;
		padding: 0 10px;
	}
	.inner {
		width: 100%;
		padding: 0 10px;
		box-sizing: border-box;
	}
}

@media screen and (max-width:767px) {
	h2 {
		margin-top: 30px;
	}
	.imgC,
	.imgS {
		margin-bottom: 30px;
	}
	.imgC img,
	.imgS img {
		max-width: 100%;
	}
	.information {
		margin-bottom: 40px;
	}
	.information dt {
		float: none;
		padding: 10px 0 0 0;
	}
	.information dd {
		padding: 0 0 10px 0;
		border-bottom: 1px dotted #333;
	}
	.price-caption {
		font-size: 16px;
	}
	.price-table {
		font-size: 10px;
		line-height: 1.25;
	}
	.price-table th,
	.price-table td {
		padding: 4px 2px;
	}
	.price-notes {
		font-size: 12px;
	}
	.photoText {
		width: 100%;
	}
	.photoText img {
		height: auto;
	}
	.access-table th,
	.access-table td {
		display: block;
		width: 100% !important;
	}
	.access-table th {
		padding-bottom: 6px;
	}
	.access-table td {
		padding-top: 0;
	}
	.map-wrap {
		padding-top: 70%;
	}
	.box_contact .tel a {
		font-size: 24px;
	}
	.related_heading_icon {
		font-size: 34px;
	}
	.related_heading_text {
		font-size: 24px;
	}
	.related_heading_line {
		height: 4px;
		margin-top: 8px;
	}
	.related_list {
		gap: 12px;
	}
	.related_item {
		width: 100%;
	}
	.related_btn {
		min-height: 64px;
		padding: 10px 40px 10px 16px;
	}
	.related_btn_sub {
		font-size: 10px;
	}
	.related_btn_main {
		font-size: 14px;
	}
	.related_btn:after {
		right: 14px;
		font-size: 20px;
	}
	footer {
		padding-top: 8px !important;
	}
	footer .sfnav {
		padding: 14px 12px !important;
		margin-top: 8px !important;
	}
	footer .copyright {
		min-height: 52px !important;
		padding: 12px 10px !important;
	}
	footer .copyright small,
	footer small.copyright {
		font-size: 12px !important;
		line-height: 1.5 !important;
	}
}

@media (max-width: 400px) {
	.shokai th {
		width: 100%;
		display: block;
		margin: 0 auto;
		border: none;
		border-radius: 3px;
	}
	.shokai td {
		display: list-item;
		width: 100%;
		border-top: none !important;
	}
}