@charset "utf-8";

/*title
************************************************************************************/
.pagetitle{
	height: 200px;
	width: 100%;
	overflow: hidden;
	position: relative;
}
.pagetitle img{
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: .6;
	z-index: 10;
}
.pagetitle .titlebox{
	position: absolute;
	top: 50%;
	left: 50%;
	-webkit-transform: translate(-50%, -50%);
	transform: translate(-50%, -50%);
	width: 100%;
	margin: auto;
	z-index: 20;
	text-align: center;
}
.pagetitle .titlebox h1{
	font-size: 2.5em;
	color: #33326a;
	margin-bottom: .3em;
}
.pagetitle .titlebox .en_title{
	font-size: 1.125em;
	color: #33326a;
	padding: 0 50px;
	display: inline-block;
	position: relative;
}
.pagetitle .titlebox .en_title:before,
.pagetitle .titlebox .en_title:after{
	content: "";
	width: 25px;
	height: 1px;
	display: block;
	background-color: #33326a;
	position: absolute;
	top: 50%;
    transform: translateY(-50%);
}
.pagetitle .titlebox .en_title:before{
	left: 0;
}
.pagetitle .titlebox .en_title:after{
	right: 0;
}

.lv_h1 {
	position: relative;
	font-size: 2em;
	padding-bottom: 0.2em;
	border-bottom: 4px solid #DDD;
	margin: .5em 0 1em;
} 
.lv_h1::after {
	position: absolute;
	content: " ";
	border-bottom: solid 4px #33326a;
	bottom: -4px;
	width:10%;
	display: block;
}

.lv_h2{
	margin-bottom: 1em;
	padding: .7em .6em calc(.7em + 3px);
	font-size: 1.5em;
	background: #f3f3f3;
	position: relative;
}
.lv_h2::after{
	content: "";
	width: 100px;
	height: 3px;
	background: #33326a;
	position: absolute;
	left: 0;
	bottom: 0;
}

.lv_h3{
	margin-bottom: 1em;
	padding: 0 0 .4em 30px;
	font-size: 1.313em;
	position: relative;
}
.lv_h3:before{
	content: "";
	width: 15px;
	height:15px;
	display: block;
	background-color: #1b5e8b;
	position: absolute;
	left: 0;
	top: .4em;
}
.lv_h4{
	margin-bottom: .8em;
	padding: 0 0 .5em 0;
	font-size: 1.25em;
}


@media screen and (max-width: 599px) {
	.pagetitle .titlebox h1{
		font-size: 2em;
	}
	.lv_h1{
		font-size: 2em;
	}
	.lv_h2{
		font-size: 1.425em;
	}
}


/*menu btns
************************************************************************************/

/*contentsMenu
----------------------------------------------------------------------*/
@media screen and (min-width: 769px){
	.contentsMenu ul.contentstop-menu li a,
	.contentsMenu ul.contentstop-menu li a .title,
	.contentsMenu ul.contentstop-menu li{
		transition: all .3s ease-in-out;
	}
	/*
	.contentsMenu ul.contentstop-menu li a:hover .title{
		background: url("../../assets/img/ar_pink_cr.svg") no-repeat left .2em top .2em;
		background-size: 20px 20px;
	}*/
	.contentsMenu ul.contentstop-menu li:hover{
		background: #fff9ea;
	}
	.contentsMenu ul.contentstop-menu li a:hover{
		color: #DF3B64;
	}
}
.contentsMenu ul.contentstop-menu{
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	grid-template-rows: auto;
	column-gap: 20px;
	row-gap: 0px;
	align-items: stretch;
}
.contentsMenu ul.contentstop-menu > li{
	border-top: 1px solid #ccc;
	padding: 20px;
}
.contentsMenu ul.contentstop-menu li a{
	text-decoration: none;
	display: block;
}
.contentsMenu ul.contentstop-menu > li > a{
	font-weight: 300;
	font-size: 1.188em;
	margin-bottom: .6em;
	background: url("../../img/common/ar_pink_cr.svg") no-repeat left center;
	line-height: 40px;
	padding-left: 45px;
}
.contentsMenu ul.contentstop-menu > li > ul{
	font-size: 0.875em;
	display: block;
}
.contentsMenu ul.contentstop-menu > li > ul li{
	display: inline-block;
}
.contentsMenu ul.contentstop-menu > li > ul li a{
	display: inline;
}
.contentsMenu ul.contentstop-menu > li > ul li:after{
	content: "／";
}
.contentsMenu ul.contentstop-menu > li > ul li:last-child:after{
	content: "";
}

@media screen and (max-width: 599px) {
	.contentsMenu ul{
		display: block;
		margin-bottom: 20px;
	}
}

/*incontentsMenu
----------------------------------------------------------------------*/
ul.incontentsMenu{
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	grid-template-rows: auto;
	column-gap: 10px;
	row-gap: 10px;
	align-items: stretch;
	width: 100%;
}
ul.incontentsMenu li{
}
ul.incontentsMenu li a{
	display: block;
	padding: 1em 1em;
	text-align: center;
	text-decoration: none;
	background: #e4f4f7;
	position: relative;
	overflow: hidden;
}
@media screen and (min-width: 769px){
	ul.incontentsMenu li a,
	ul.incontentsMenu li a::before{
		transition: all .3s ease-in-out;
	}
	ul.incontentsMenu li a::before{
		content: "";
		width: 100%;
		height: 1px;
		background: #1ba2e1;
		position: absolute;
		left: -100%;
		bottom: 0;
	}
	ul.incontentsMenu li:hover a::before{
		content: "";
		width: 100%;
		height: 1px;
		background: #1ba2e1;
		position: absolute;
		left: 0;
		bottom: 0;
	}
	ul.incontentsMenu li a:hover{
		color: #1ba2e1;
	}
}
@media screen and (max-width: 768px){
	ul.incontentsMenu{
		grid-template-columns: 1fr 1fr;
	}
}
@media screen and (max-width: 415px){
	ul.incontentsMenu{
		grid-template-columns: 1fr;
	}
	ul.incontentsMenu li a{
		position: relative;
	}
	ul.incontentsMenu li a:after{
		content: "▼";
		position: absolute;
		right: 1em;
	}
}

/*subcontentsMenu
----------------------------------------------------------------------*/
ul.subcontentsMenu{
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	grid-template-rows: auto;
	column-gap: 20px;
	row-gap: 20px;
	align-items: stretch;
}
ul.subcontentsMenu li{
	border: 1px solid #9ceab8;
	border-radius: 5px;
}
ul.subcontentsMenu li a{
	display: block;
	text-decoration: none;
	color: #50b575;
	padding: 1.5em calc(1em + 20px) 1.5em 1em;
	background: url("../../img/common/ar_green.svg") no-repeat right 1em center;
	background-size: 15px 15px;
}
@media screen and (min-width: 769px){
	ul.subcontentsMenu li a{
		transition: all .3s ease-in-out;
	}
	ul.subcontentsMenu li a:hover{
		background: url("../../img/common/ar_green.svg") no-repeat right .7em center #fff9ea;
		background-size: 15px 15px;
	}
}

/*buttons
************************************************************************************/


.btn_more,
.btn_prev,
.btn_normal{
	margin-top: 2em;
	text-align: center;
}
.btn_more a,
.btn_prev a{
	display: inline-block;
	border: 1px solid #33326A;
	border-radius: 5px;
	text-decoration: none;
	color: #33326A;
}
.btn_more a{
	padding: .8em calc(1em + 50px) .8em 2em;
	background: url("../../img/common/ar_kon.svg") no-repeat right 30px center;
}
.btn_prev a{
	padding: .8em 2em .8em calc(1em + 50px);
	background: url("../../img/common/ar_kon_prev.svg") no-repeat left 30px center;
	background-size: 10px auto;
}

.btn_more a{
	padding: .8em calc(1em + 50px) .8em 2em;
	background: url("../../img/common/ar_kon.svg") no-repeat right 30px center;
}

.btn_normal a{
	display: inline-block;
	border: 1px solid #ECECEC;
	background: #33326A;
	border-radius: 5px;
	text-decoration: none;
	color: #FFF;
	padding: .8em 3em;
}


@media screen and (min-width: 769px) {
	.btn_more a,
	.btn_prev a,
	.btn_normal a{
		transition: all .3s ease-in-out;
	}
	.btn_more a:hover{
		background: url("../../img/common/ar_white.svg") no-repeat right 20px center #33326A;
		color: #FFF;
	}
	.btn_prev a:hover{
		background: url("../../img/common/ar_white_prev.svg") no-repeat left 20px center #33326A;
		background-size: 10px auto;
		color: #FFF;
	}
	.btn_normal a:hover{
		border: 1px solid #33326A;
		background: #FFF;
		color: #33326A;
	}
}



/*column
************************************************************************************/
.section {
	padding: 50px 0;
	text-align: left;
	word-break: break-all;
}
article > .section:nth-child(even){
	background: #fafae2;
}
article > .section:first-child{
	margin-top: 0;
}
.section:after {
	content: "";
	display: block;
	clear: both;
	height: 1px;
	overflow: hidden;
}
/*\*/
* html .section {
	height: 1em;
}
.section {
	display: block;
}
/* ▲ */
/* for IE7 */
*:first-child + html .section {
	zoom: 1;
}

.section-innner{
	margin: 0 0 50px;
}
.text {
	padding: 10px;
	line-height: 1.7;
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	-o-box-sizing: border-box;
	-ms-box-sizing: border-box;
	box-sizing: border-box;
}
.text20 {
	padding: 20px;
	line-height: 1.7;
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	-o-box-sizing: border-box;
	-ms-box-sizing: border-box;
	box-sizing: border-box;
}
.text p, .text20 p {
	padding-bottom: 1em;
}
.text p:last-child, .text20 p:last-child {
	padding-bottom: 0;
}
.text:after, .text20:after {
	content: "";
	display: block;
	clear: both;
	height: 1px;
	overflow: hidden;
}
/*\*/
* html .text, * html .text20 {
	height: 1em;
}
.text, .text20 {
	display: block;
}
/* ▲ */
/* for IE7 */
*:first-child + html .text, *:first-child + html .text20 {
	zoom: 1;
}

.border-frame{
	margin: 1em auto;
	padding: 30px;
	border: 1px solid #000;
	background: #FFF;
}

/*table
************************************************************************************/
table.normal{
	margin: 5px auto 15px auto;
	width: 100%;
	border: 1px solid #33326a;
}
table.normal.auto{
	width: auto;
	margin: 5px 0 15px 0;
}
table.normal caption{
	padding: 5px 0;
	text-align: left;
	display: block;
	font-weight: bold;
}
table.normal caption:before{
	content: "■";
}

table.normal thead th{
	padding: 15px;
	border: 1px solid #5c5bb9;
	text-align: center;
	font-weight:bold;
	background: #33326a;
	color: #FFF;
}
table.normal thead th a{
	color:#FFF;
}
table.normal tbody th{
	padding: 15px;
	text-align: left;
	border: 1px solid #33326a;
	background: #f4f4f4;
}
table.normal.auto th{
	padding: 15px;
}

table.normal tbody td{
	padding: 15px;
	border: 1px solid #33326a;
}
table.normal.center td{
	text-align: center;
}

.table_caption{
	text-align: right;
}

/*スクロール*/

.table_scroll .sp_comment{
	display: none;
}
.table_scroll .scroll_body{}


@media screen and (max-width: 768px) {
	.table_scroll .sp_comment{
		display: block;
		padding: 10px;
		border: 1px solid #ededed;
		margin: 10px 0;
	}
	.table_scroll .sp_comment:after{
		content: "※表が見切れている場合は、横にスクロールしてご覧いただけます";
		color: #666;
		display: block;
	}
	.table_scroll .scroll_body{
		width: 97%;
		margin: auto;
		overflow-x: scroll;
		font-size: 14px !important;
	}
	.table_scroll .scroll_body table{
		width: 1200px !important;
		font-size: 14px !important;
	}
	.table_scroll .scroll_body table th,
	.table_scroll .scroll_body table td,
	.table_scroll .scroll_body table.main th,
	.table_scroll .scroll_body table.main td,
	.table_scroll .scroll_body table.normal th,
	.table_scroll .scroll_body table.normal td{
		word-break: break-all;
		font-size: 14px !important;
	}
}



@media screen and (max-width: 768px) {
	table.smartphone,
	.cms-posts .smartphone table{
		display: block;
		width: 100%;
		border: 0 !important;
	}
	table.smartphone thead,
	.cms-posts .smartphone table thead{
		display: none;
	}
	table.smartphone tbody,
	.cms-posts .smartphone table tbody{
		display: block;
		width: 100%;
	}
	table.smartphone tr,
	.cms-posts .smartphone table tr{
		display: block;
		width: 100%;
	}
	table.smartphone th,
	table.smartphone td,
	.cms-posts .smartphone table th,
	.cms-posts .smartphone table td{
		display: list-item;
		width: 100%;
		padding: 10px 10px !important;
		-webkit-box-sizing: border-box;
		-moz-box-sizing: border-box;
		-o-box-sizing: border-box;
		-ms-box-sizing: border-box;
		box-sizing: border-box;
		display: block;
	}
	table.smartphone th,
	.cms-posts .smartphone table th{
		list-style-type: none;
		background: #888888;
		color: #FFF;
		display: block;
	}

	table.smartphone td,
	.cms-posts .smartphone table td{
		margin-left: 0;
		list-style-type: none;
		border: 0 !important;
	}
}



/*ページング
----------------------------------------------------------------------*/
.page_navi{
	text-align: center;
	margin-top: 50px;
}

ul.page_navi li{
	margin: 10px 0 15px 0;
	background: none;
	padding: 0;
	list-style-type: none;
	display: inline-block;
	font-size: 0.975em;
	font-weight: 300;
}
.cms-posts ul.page_navi li:before{
	display: none;
	float: none;
}
ul.page_navi li span{
	background: #0095d8;
	border: 2px solid #0095d8;
	width: 2.5em;
	height: 2.5em;
	border-radius: 50%;
	color: #fff;
	text-align: center;
	line-height: 2.5;
	margin: 0 5px;
	display: block;
		-webkit-transition: all 0.9s ease-in-out;
		-moz-transition: all 0.9s ease-in-out;
		-o-transition: all 0.9s ease-in-out;
		transition: all 0.9s ease-in-out;
}
ul.page_navi li a{
	background: #c9c9ca;
	border: 2px solid #c9c9ca;
	width: 2.5em;
	height: 2.5em;
	border-radius: 50%;
	color: #fff;
	text-align: center;
	line-height: 2.5;
	margin: 0 5px;
	display: block;
	text-decoration: none;
		-webkit-transition: all 0.9s ease-in-out;
		-moz-transition: all 0.9s ease-in-out;
		-o-transition: all 0.9s ease-in-out;
		transition: all 0.9s ease-in-out;
}

ul.page_navi li:first-child a{
	border: 2px solid #0095d8;
	background: #FFF url(../img/common/pagenav_prev.svg) no-repeat center center;
	-moz-background-size: 20px auto;
	background-size: 20px auto;
	display: block;
	text-indent: -9999px;
}
ul.page_navi li:last-child a{
	border: 2px solid #0095d8;
	background: #FFF url(../img/common/pagenav_next.svg) no-repeat center center;
	-moz-background-size: 20px auto;
	background-size: 20px auto;
	display: block;
	text-indent: -9999px;
}

ul.page_navi li:hover span,
ul.page_navi li:hover a{
	background: #0095d8;
}
ul.page_navi li:first-child:hover a{
	border: 2px solid #0095d8;
	background: #FFF url(../img/common/pagenav_prev.svg) no-repeat center center;
	-moz-background-size: 20px auto;
	background-size: 20px auto;
}
ul.page_navi li:last-child:hover a{
	border: 2px solid #0095d8;
	background: #FFF url(../img/common/pagenav_next.svg) no-repeat center center;
	-moz-background-size: 20px auto;
	background-size: 20px auto;
}

.screen-reader-response,
.wpcf7-not-valid-tip,
.wpcf7-response-output{
	color: #F00;
	display: block;
	padding: 0.3em 0;
}



