@charset "UTF-8";
/**************************
Compass Text Replacement
*/
/**************************
Inline List
*/
/**************************
Inline Block List
*/
/**************************
horizontal-list
*/
/**************************
Bullets
*/
/* simple clearfix */
/**************************
@mixin for sprite
*/
@keyframes fade-in {
	0% {
		display: none;
	}
	1% {
		display: block;
		opacity: 0;
	}
	100% {
		display: block;
		opacity: 1;
	}
}

@keyframes fade-out {
	0% {
		display: block;
		opacity: 1;
	}
	99% {
		display: block;
		opacity: 0;
	}
	100% {
		display: none;
		opacity: 0;
	}
}

@keyframes gnav_sub {
	0% {
		opacity: 0;
		transform: scale(0.9) translateY(-5%);
	}
	100% {
		transform: scale(1) translateY(0);
	}
}

/***********************************************************************
 ***********************************************************************
 ***********************************************************************
## Layout
*/
.wrapper {
	width: auto;
	min-width: 1000px;
}

.root {
	min-width: 1000px;
	box-sizing: border-box;
	padding-top: 155px;
}

.pc_container,
.pc_tb_container,
.container {
	width: 1200px;
	min-width: 1200px;
	box-sizing: border-box;
	margin-left: auto;
	margin-right: auto;
}

.pc_container-relative,
.pc_tb_container-relative,
.container-relative {
	position: relative;
	top: 0;
	left: 0;
}

.pc_container-lg,
.pc_tb_container-lg,
.container-lg {
	min-width: 0;
	max-width: 1200px;
	width: auto;
}

.pc_container-sm,
.pc_tb_container-sm,
.container-sm {
	width: 500px;
	min-width: 500px;
	box-sizing: border-box;
	margin-left: auto;
	margin-right: auto;
}

.pc_container-sm2,
.pc_tb_container-sm2,
.container-sm2 {
	width: 300px;
	min-width: 300px;
	box-sizing: border-box;
	margin-left: auto;
	margin-right: auto;
}

.pc_padding,
.padding {
	padding-left: 10px;
	padding-right: 10px;
}

.main_wrapper {
	display: -ms-flexbox;
	display: flex;
	margin-bottom: 60px;
}

.main_column {
	-ms-flex-order: 2;
	    order: 2;
	width: 950px;
	padding-left: 30px;
}

.sub_column {
	-ms-flex-order: 1;
	    order: 1;
	width: 220px;
}

.main_content {
	font-size: 0.938rem;
	margin-bottom: 7em;
}

.scroll_to_top {
	right: 10px;
}

/***********************************************************************
 ***********************************************************************
 ***********************************************************************

## Utility - Cosmetic

ユーティリティー設定。
このサイト専用というわけでもない共通設定。

*/
.pc_none,
.root .pc_none {
	display: none;
}

.block,
.pc_block {
	display: block;
}

.tel_link,
.tel_link-no {
	pointer-events: none;
	cursor: default;
	color: inherit;
}

.root .tel_link,
.root .tel_link:hover, .root
.tel_link-no,
.root
.tel_link-no:hover {
	text-decoration: none;
	color: inherit;
}

.sp_click {
	pointer-events: none;
	cursor: default;
}

/***********************************************************************
 ***********************************************************************
 ***********************************************************************



## Component - Base

コンポーネント設定。
各ページでよく使い回す記述。
このサイト専用の共通設定。

*/
/**************************

## - 段組設定 2列 3列 4列

PCの時だけ、中央に等間隔で余白を作り、width: 100%; を守って列になる。
ul でなくてもいい。

**2列 .pc_column2**

	<ul class="pc_column2">
		<li>コンテンツ</li>
		<li>コンテンツ</li>
		<li>コンテンツ</li>
		<li>コンテンツ</li>
		<li>コンテンツ</li>
	</ul>

**3列 .pc_column3**

	<ul class="pc_column3">
		<li>コンテンツ</li>
		<li>コンテンツ</li>
		<li>コンテンツ</li>
		<li>コンテンツ</li>
		<li>コンテンツ</li>
	</ul>

**4列 .pc_column4**

	<ul class="pc_column4">
		<li>コンテンツ</li>
		<li>コンテンツ</li>
		<li>コンテンツ</li>
		<li>コンテンツ</li>
		<li>コンテンツ</li>
	</ul>

*/
.pc_column2 > *:nth-child(2n) {
	padding-bottom: 20px;
}

.pc_column2 > *:last-child {
	padding-bottom: 0;
}

.pc_column3 > *:nth-child(3n) {
	padding-bottom: 20px;
}

.pc_column3 > *:last-child {
	padding-bottom: 0;
}

.pc_column4 > *:nth-child(4n) {
	padding-bottom: 20px;
}

.pc_column4 > *:last-child {
	padding-bottom: 0;
}

.pc_column2::before, .pc_column2::after {
	content: '';
	display: table;
}

.pc_column2::after {
	clear: both;
}

.pc_column2 > * {
	width: 50%;
	float: left;
	box-sizing: border-box;
}

.pc_column2 > *:nth-child(2n + 1) {
	clear: left;
	padding-right: 15px;
}

.pc_column2 > *:nth-child(2n) {
	padding-left: 15px;
}

.pc_column3 {
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	    flex-wrap: wrap;
	width: 100%;
}

.pc_column3 > * {
	width: 220px;
	margin-right: 35px;
}

.pc_column3 > *:nth-child(3n) {
	margin-right: 0;
}

.pc_column4::before, .pc_column4::after {
	content: '';
	display: table;
}

.pc_column4::after {
	clear: both;
}

.pc_column4::before, .pc_column4::after {
	content: '';
	display: table;
}

.pc_column4::after {
	clear: both;
}

.pc_column4 > * {
	width: 25%;
	float: left;
	box-sizing: border-box;
}

.pc_column4 > *:nth-child(4n + 1) {
	clear: left;
	padding-right: 12px;
}

.pc_column4 > *:nth-child(4n + 2) {
	padding-left: 4px;
	padding-right: 8px;
}

.pc_column4 > *:nth-child(4n + 3) {
	padding-left: 8px;
	padding-right: 4px;
}

.pc_column4 > *:nth-child(4n) {
	padding-left: 12px;
}

.pc_column2_2 {
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	    flex-wrap: wrap;
	width: 100%;
}

.pc_column2_2 > * {
	width: 360px;
	margin-right: 10px;
}

.pc_column2_2 > *:nth-child(2n) {
	margin-right: 0;
}

.pc_column2_2 > *:nth-child(2n) {
	padding-bottom: 20px;
}

.pc_column2_2 > *:last-child {
	padding-bottom: 0;
}
.pc_column3_grid{
display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}

.set::before, .set::after {
	content: '';
	display: table;
}

.set::after {
	clear: both;
}

.set .resize.right {
	width: 100%;
	box-sizing: border-box;
	float: right;
	padding-left: 330px;
	margin-left: -300px;
}

.set .fix.left {
	width: 300px;
	position: relative;
	top: 0;
	left: 0;
	z-index: 2;
	float: left;
}

.set .resize.left {
	width: 100%;
	box-sizing: border-box;
	float: left;
	padding-right: 330px;
	margin-right: -300px;
}

.set .fix.right {
	width: 300px;
	position: relative;
	top: 0;
	left: 0;
	z-index: 2;
	float: right;
}

.set .fix > img,
.set .resize > img {
	display: block;
	margin-left: auto;
	margin-right: auto;
	max-width: 100%;
}

.set-2 .resize.right {
	width: 100%;
	box-sizing: border-box;
	float: right;
	padding-left: 200px;
	margin-left: -180px;
}

.set-2 .fix.left {
	width: 180px;
	position: relative;
	top: 0;
	left: 0;
	z-index: 2;
	float: left;
}

.set-2 .resize.left {
	width: 100%;
	box-sizing: border-box;
	float: left;
	padding-right: 200px;
	margin-right: -180px;
}

.set-2 .fix.right {
	width: 180px;
	position: relative;
	top: 0;
	left: 0;
	z-index: 2;
	float: right;
}

/***********************************************************************
 ***********************************************************************
 ***********************************************************************

## Project

特定ページ専用、効果範囲が限定的な記述。
コンテンツ内容に密接で、汎用性がなく、機能の付け替えを想定していない。

*/
.header {
	border-top: 2px solid #00295e;
	height: 155px;
	box-shadow: 0 2px 3px 0 rgba(0, 0, 0, 0.15);
}

.header__1 {
	height: 93px;
	box-sizing: border-box;
}

.header__1__inner {
	display: -ms-flexbox;
	display: flex;
	-ms-flex-pack: justify;
	    justify-content: space-between;
	width: 100%;
}

.header__1__2__1 {
	margin-bottom: 13px;
	padding-top: 11px;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-pack: justify;
	    justify-content: space-between;
}

.header__2 {
	height: 60px;
	box-sizing: border-box;
	border-top: 1px solid #ccd4df;
}

.header__logo {
	padding-top: 17px;
}

.header__logo a,
.header__logo img {
	height: 60px;
}

.header__menu {
	padding-top: 3px;
	display: -ms-flexbox;
	display: flex;
	font-size: 13px;
	line-height: 1;
	margin-right: 6px;
}

.header__menu li {
	margin-right: 22px;
}

.header__menu a:hover {
	text-decoration: underline;
}

.header__menu a img {
	position: relative;
	top: 3px;
	left: 0;
	margin-right: 2px;
}

.header__search {
	width: 220px;
	height: 30px;
}

.header__tel {
	text-indent: -119988px;
	overflow: hidden;
	text-align: left;
	background: url("../img/header_tel.png") 0 0 no-repeat transparent;
	background-size: 246px 24px;
	width: 246px;
	height: 24px;
	display: block;
	float: right;
}

.footer-scroll_to_top_stop .scroll_to_top {
	position: absolute;
	top: -70px;
}

.main_content {
	padding-left: 10px;
	padding-right: 10px;
}

.main_content h2:not(.cancel),
.main_content h3:not(.cancel),
.main_content .h-2,
.main_content .update_text,
.main_content .pagelink_box {
	margin-left: -10px;
	margin-right: -10px;
}

.main_content .pc_wide {
	margin-left: -10px;
	margin-right: -10px;
}

.main_content h2:not(.cancel) {
	font-family: "FOT-ニューロダン Pro DB", "NewRodinPro-DB", "Roboto", "ヒラギノ角ゴ Pro W6", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
	font-weight: normal;
	min-height: 72px;
	font-size: 1.5rem;
	margin-bottom: 25px;
	padding: 19px 18px 18px;
}

.main_content h3:not(.cancel) {
	font-size: 1.125rem;
	min-height: 50px;
	padding: 12px 15px 11px;
	margin-bottom: 25px;
}

.main_content h3:not(.cancel) .sub {
	font-size: 0.875rem;
}

.main_content h4:not(.cancel) {
	font-size: 1.125rem;
}

.main_content h5:not(.cancel) {
	font-size: 1rem;
}

.main_content .h-2 {
	padding: 18px 13px 12px;
	min-height: 60px;
	font-size: 1.313rem;
}

.gnav__ul {
	width: 100%;
	display: -ms-flexbox;
	display: flex;
}

.gnav__li {
	width: 14.28571%;
	max-width: 14.28571%;
	min-width: 14.28571%;
	box-sizing: border-box;
	border-right: 1px solid #ccd4df;
}

.gnav__li:first-child {
	border-left: 1px solid #ccd4df;
}

.gnav__a {
	font-family: "FOT-ロダン Pro M", "RodinPro-M", "Roboto", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
	font-weight: normal;
	height: 59px;
	text-align: center;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-align: center;
	    align-items: center;
	-ms-flex-pack: center;
	    justify-content: center;
	width: 100%;
	position: relative;
	top: 0;
	left: 0;
}

.gnav__a::before {
	content: '';
	display: block;
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 4px;
	transition: background-color .15s linear;
}

.gnav__a:hover::before, .gnav__a.active::before {
	background-color: #2255aa;
}

.gnav__text {
	color: #000;
	position: relative;
	top: 1px;
	left: 0;
	letter-spacing: .07em;
}

.gnav__sub {
	display: none;
	visibility: hidden;
	position: relative;
	top: 0;
	left: 0;
	z-index: 99;
}

.inited .gnav__sub {
	visibility: visible;
}

.header-fixed .gnav__sub {
	-ms-transform: translateX(-170px);
	    transform: translateX(-170px);
}

.gnav__sub__container {
	position: relative;
	width: 250px;
	padding-top: 0;
	top: 0;
	left: 0;
	box-sizing: border-box;
	transition: opacity .5s ease-in-out;
	z-index: 10;
}

.gnav__sub__container::before {
	content: '';
	position: absolute;
	top: -9px;
	left: 50%;
	-ms-transform: translateX(-50%);
	    transform: translateX(-50%);
}

.gnav__sub__container-3 {
	width: 440px;
}
.w770{
	width: 770px;
}
.gnav__sub__container-3 .gnav__sub__ul1 {
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	    flex-wrap: wrap;
		background-color: #fff;

}

.gnav__sub__container-3 .li1 {
	width: calc(100% / 2);
	box-sizing: border-box;
}
.gnav__sub__container-3.w770 .list3 li:not(.li1-comment){
 width: calc(100% / 3);
}

.gnav__sub__container-4 .li1-comment,
.gnav__sub__container-2 .li1-comment,
.gnav__sub__container-3 .li1-comment {
	width: 100%;
	background-color: #fffde9;
	font-weight: bold;
}
.gnav__sub__container-3.w770 .li1-comment:nth-child(n + 2) {
	/* border-top: 1px solid #e5e9ef; */
	/* outline: 1px solid #e5e9ef; */
}
.gnav__sub__container-3 .li1-odd{
	border-right: 1px solid #e5e9ef;
}

.gnav__sub__ul1 {
	position: absolute;
	top: 0;
	left: -1px;
	width: 100%;
	overflow: hidden;
	padding: 0;
	box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.05);
	border: 1px solid #ccd4df;
	/* border-bottom: 0 none; */
}

.gnav__sub .li1 {
	/* border-bottom: 1px solid #ccd4df; */
	outline: 1px solid #e5e9ef;
	position: relative;
	top: 0;
	left: 0;
}

.gnav__sub .li1 .toggle,
.gnav__sub .li1 .accordion__content {
	display: none;
}

.gnav__sub .li1-comment > span {
	display: block;
	font-size: 0.875rem;
	padding: 4px 35px 1px 15px;
	box-sizing: border-box;
}

.gnav__sub .li2 {
	display: none;
}

.gnav__sub .a1 {
	display: block;
	padding-top: 9px;
	padding-bottom: 4px;
	padding-right: 10px;
	padding-left: 30px;
	min-height: 35px;
	box-sizing: border-box;
	color: #222;
	background-color: #fff;
	line-height: 1.33333;
	font-size: 0.938rem;
	position: relative;
	top: 0;
	left: 0;
}

.gnav__sub .a1::before {
	content: '';
	display: block;
	background: url("../img/icon/arrow_link.png") 0 0 no-repeat transparent;
	background-size: 8px 10px;
	width: 8px;
	height: 10px;
	position: absolute;
	top: 50%;
	left: 13px;
	margin-top: -3px;
}

@media all and (-ms-high-contrast: none) {
	.gnav__sub .a1::before {
		/* IE11以上 */
		margin-top: -4px;
	}
}

.gnav__sub li.active > a,
.gnav__sub li > a:hover {
	font-weight: bold;
	text-decoration: none;
	background-color: #f2f5f7;
}

.gnav__sub-show {
	display: block;
}

.gnav__sub-show .anime {
	animation-name: gnav_sub;
	animation-duration: .3s;
	animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
	animation-fill-mode: forwards;
}

.gnav .sub_cate_none {
	background-color: #fff;
}

.person {
	display: -ms-flexbox;
	display: flex;
	width: 100%;
}

.person__head {
	margin-right: 30px;
}

.person__body {
	width: 100%;
}

.index_list {
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	    flex-wrap: wrap;
	width: 100%;
}

.index_list > * {
	width: 300px;
	margin-right: 12px;
}

.index_list > *:nth-child(3n) {
	margin-right: 0;
}

.index_list li {
	padding-bottom: 12px;
}

.footer__nav_area {
	background-color: #f5f4ed;
	padding-top: 47px;
	padding-bottom: 50px;
	position: relative;
	top: 0;
	left: 0;
	padding-left: 10px;
	padding-right: 10px;
}

.footer__nav_area .toggle {
	display: none;
}

.footer__nav_area__inner {
	display: -ms-flexbox;
	display: flex;
}

.footer__nav_area__column {
	width: 240px;
	padding-left: 20px;
	padding-right: 20px;
	box-sizing: border-box;
}

.footer__nav_area__column:first-child {
	padding-left: 0;
	width: 220px;
}

.footer__nav_area__column:last-child {
	padding-right: 0;
	width: 220px;
}

.footer__nav_area__column-lg {
	width: 480px;
}

.footer__nav_area__column-lg .footer__nav::before, .footer__nav_area__column-lg .footer__nav::after {
	content: '';
	display: table;
}

.footer__nav_area__column-lg .footer__nav::after {
	clear: both;
}

.footer__nav_area__column-lg ul {
	width: 50%;
	float: left;
	box-sizing: border-box;
}

.footer__nav_area__column-lg ul.footer_special_display {
	width: auto;
}

.footer__nav_area__column-lg h4 + ul {
	padding-right: 10px;
}

.footer__nav_area__column-lg h4 + ul + ul {
	padding-left: 10px;
}

.footer__nav_area .li1-comment,
.footer__nav_area .sub_cate_none {
	display: none;
}

.footer__nav {
	width: 100%;
}

.footer__nav:not(:last-child) {
	margin-bottom: 40px;
}

.footer__nav h4 {
	font-size: 0.875rem;
	font-weight: bold;
	line-height: 1.3;
	padding-bottom: .5ex;
	border-bottom: 1px solid #c7b299;
	margin-bottom: 11px;
}

.footer__nav h4 a {
	color: #222;
}

.footer__nav h4 a:hover {
	text-decoration: none;
	opacity: 0.7;
	transition: 0.2s opacity;
}

.footer__nav .li1 {
	margin-bottom: 1px;
	padding: 0.1em 0;
	line-height: 1;
}

.footer__nav .li1.fsd_li {
	height: auto;
}

.footer__nav .fsd_li .a2 {
    color: #000;
    font-size: 0.813rem;
}

.footer__nav .a1 {
	color: #000;
	font-size: 0.813rem;
	line-height: 1.5;
}

.footer__nav .a1:hover {
	text-decoration: underline;
	color: #000;
}

.footer__nav .sub_ul2 {
	display: none;
}

.footer__nav .sub_ul2.footer_special_display {
	display: block;
}


.footer__nav .fsd_none {
	display: none;
}


.footer__foot_area {
	padding-top: 28px;
	padding-bottom: 20px;
	min-height: 150px;
	box-sizing: border-box;
	padding-left: 10px;
	padding-right: 10px;
	background-color: #00295e;
	color: #fff;
}

.footer__1 {
	width: 100%;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-pack: justify;
	    justify-content: space-between;
	min-height: 74px;
	margin-bottom: 10px;
}

.footer__1__1 {
	/* display: -ms-flexbox;
	display: flex; */
}

.footer__1__1__2__1 {
	display: -ms-flexbox;
	display: flex;
}

@media only screen and (max-width: 1100px) {
	.footer__1__1__2__1 {
		-ms-flex-direction: column;
		    flex-direction: column;
	}
	.footer__1__1__2__1 > * {
		margin-bottom: 10px;
	}
}

.footer__2 {
	width: 100%;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-pack: justify;
	    justify-content: space-between;
	vertical-align: bottom;
	-ms-flex-align: center;
	    align-items: center;
}

.footer__2__1 {
	-ms-flex-order: 2;
	    order: 2;
}

.footer__2__2 {
	-ms-flex-order: 1;
	    order: 1;
}

.footer__logo {
	margin-right: 23px;
	margin-bottom: 15px;
}

.footer__address {
	font-size: 0.875rem;
	padding-top: 3px;
	margin-bottom: 2px;
	margin-right: 5px;
}

.footer__banner_list {
	padding-top: 2px;
	display: flex;
	gap: 15px;
	align-items: center;
	flex-wrap: wrap;
}

/* .footer__banner_list::before, .footer__banner_list::after {
	content: '';
	display: table;
}

.footer__banner_list::after {
	clear: both;
} */

.footer__banner_list > * {
	/* width: 50%; */
	/* float: left; */
	box-sizing: border-box;
}

.footer__banner_list > *:nth-child(2n + 1) {
	/* clear: left; */
	/* padding-right: 10px; */
}

.footer__banner_list > *:nth-child(2n) {
	/* padding-left: 10px; */
}

.footer__menu {
	display: -ms-flexbox;
	display: flex;
	justify-content: flex-end;
	margin-top: 15px;
}

.footer__menu li:not(:last-child) {
	margin-right: 22px;
}

.footer__menu a {
	color: #fff;
	font-size: 0.813rem;
}

.footer__menu a::before {
	content: '';
	display: inline-block;
	background: url("../img/icon/arrow_white.png") 0 center no-repeat transparent;
	background-size: 6px 8px;
	width: 6px;
	height: 8px;
	margin-right: 4px;
}

.footer__menu a:hover {
	text-decoration: underline;
}

.footer__copyright {
	padding-top: 6px;
}

.cate_area__inner {
	min-height: 180px;
}

.cate_area .container {
	position: relative;
	top: 0;
	left: 0;
}

.cate_area .breadcrumbs {
	position: absolute;
	top: 0;
	left: 0;
}

.cate_area h2 {
	padding-top: 82px;
}

.cate_area h2 .main {
	font-size: 1.875rem;
}

.half_flex {
	display: -ms-flexbox;
	display: flex;
	margin: 0 auto;
}

.schedule_th01 {
	width: 288px;
}

.mb20{
    margin-bottom: 20px;
}

.mb30{
    margin-bottom: 30px;
}

.mb40{
    margin-bottom: 40px;
}
table.table_w400{
	width: 400px;
}