@charset "UTF-8";

/* == 全 体 ==================================================================== */
html {
	scroll-behavior: smooth;
	height: 100%; /*フッター&サブナビ固定の指示*/
	font-size: 625%; /*ベースサイズは100px*/
}
body {
	height: 100%; /*フッター&サブナビ固定の指示*/
	font-family: Arial, Helvetica, "游ゴシック Medium", "游ゴシック体", "Yu Gothic Medium", "YuGothic", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", Meiryo, "メイリオ", sans-serif, "MS Pゴシック", "MS PGothic";
	font-size: 0.16rem; /*基準はベースサイズ100pxの0.16倍で16px*/
	-webkit-text-size-adjust: 100%;
	line-height: 1.5625; /*25px*/
	margin: 0;
	padding: 0;
}
* {
	box-sizing: border-box;
}
h2,h3 {
	font-feature-settings: "palt";
}
ul,ol,dl {
	padding: 0;
}
a {
	text-decoration: none;
	transition: .4s;
	color: inherit;
}
img,
a img {
	max-width: 100%;
	height: auto;
	border: 0;
	vertical-align: top;
}
table {
	width: 100%;
	border-collapse: collapse;
	border-spacing: 0;
	border: solid 1px #348dcb;
	border-bottom: none;
	margin-bottom: 4%;
}
th, td {
	vertical-align: top;
	text-align: left;
	padding: 1em;
}
th {
	border-bottom: solid 1px #348dcb;
	background-color: #a1d4f8;
	font-weight: normal;
}
td {
	border-bottom: solid 1px #348dcb;
}
td>*:last-child {
	margin-bottom: 0;
}
em {
	font-style: normal;
}
sup {
	font-size: .05rem;
}
hr {
	border: none;
	border-bottom: 1px dotted #eeeeee;
	height: 1px;
}
iframe {
	width: 100%;
	max-height: 90vh;
}
/* -- 細々 -- */
.clear {clear: both;}
.center_box {
	display: table;
	margin-right: auto;
	margin-left: auto;
}
.nowrap,
a[href*="tel:"]{
	display: inline-block;
}
.notes {font-size: .875em; /*16px→14px*/}
.caption {color: #348dcb;}
.notes_box {
	display: block;
	background-color: #d3edff;
	padding: .3em;
}
.attention {color: #c00;}
.circle_ph {border-radius: 50%;}
.border_box {
	border: solid 5px #3296dc;
	border-radius: 10px;
	padding: 1.5em;
}
/* clearfix */
.clearfix:before,
.clearfix:after {
	content: " ";
	display: table;
}
.clearfix:after {
	clear: both;
}
.clearfix {
	*zoom: 1;
}

/* -- ヘッダー ----------------------------------------------------------------- */
header {
	max-width: 98%;
	margin: 10px auto 20px;
}
header .menulogo {
	text-align: center;
}
/*-----コンテンツメニュー-----*/
header ul {
	list-style-type: none;
}
input[name="topmenu_btn"] {display: none;}
.topmenu {
	width: 100%;
	color: #348dcb;
	margin: 0;
}
.topmenu a {
	display: block;
	padding: 10px 0;
}
.topmenu li>ul {
	width: 100%;
}
.topmenu li>ul>li>a {
	position: relative;
	padding-left: 18px;
}
.topmenu li>ul>li>a:before {
	content: "";
	position: absolute;
	top: 50%;
	left: 0;
	transform: translateY(-50%);
	border-style: solid;
	border-width: 6px 0 6px 13px;
	border-color: transparent transparent transparent #348dcb;
}
/* -- サイドメニュー -- */
#sidemenu {
	position: fixed;
	top: 50%;
	right: 0;
	z-index: 902;
	text-align: center;
	transform: translateY(-50%);
}
#sidemenu li {
	margin-bottom: 8px;
    list-style-type: none;
}
#sidemenu li>* {
	display: block;
	max-height: 10em;
	background-color: #b2d7f7;
	border-radius: 10px 0 0 10px;
	color: #358ccb;
	font-weight: bold;
}
#sidemenu li.sitemap_btn label,
#sidemenu li.top_btn a {
	padding: .5em;
}
#sidemenu li label::before {
	display: block;
	content: '\f0c9';
	font-family: 'Font Awesome 5 Free';
	font-size: 3.5rem;
	font-weight: 900;
}
#sidemenu li.top_btn a {
	background-image: url(/image/gotop_icon.png);
	background-repeat: no-repeat;
	background-position: center top 8px;
	background-size: auto 30px;
	padding: 38px 4px 0;
}
#sidemenu li.tl_hidden a {
	writing-mode: vertical-rl;
	-ms-writing-mode: tb-rl;
	line-height: 1em;
	padding: 1.5em .8em;
}
#sidemenu li *:hover {
	background-color: rgba(52,141,203,1);
}
/* -- コンテンツ --------------------------------------------------------------- */
.main_contents {
	width: 95%;
	max-width: 1680px;
	margin: 10px auto;
}
.main_contents *>*:first-child {
	margin-top: 0;
}
.main_contents a[href*="http"] {
	word-break: break-word;
	text-align: justify;
}
h1 {
	color: rgba(52,141,203,1);
	font-size: .16rem;
	font-weight: normal;
}
h1 strong {
	vertical-align: middle;
	letter-spacing: .25em;
	font-size: .35rem;
}
h2 {
	clear: both;
	position:relative;
	background: rgba(52,141,203,1);
	color: #fff;
	letter-spacing: .4em;
	font-weight: normal;
	padding: 0.2em 0.2em 0.2em 1.5em;
}
h2:before {
	content: "";
	position:absolute;
	top:30%;
	left:0;
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 10px 0 10px 17.3px;
	border-color: transparent transparent transparent #fff;
}
.subtitle {
	color: #4fa5e1;
	font-size: .32rem;
	line-height: 1.3;
	margin-bottom: .5em;
}
/* -- フッター ----------------------------------------------------------------- */
#footer {
	clear: both;
	padding-top: 5em;
}
#footer #outmenu {
	display: flex;
	color: rgba(52,141,203,1);
	list-style: none;
	margin: 0;
	padding: .6em 2% 0;
}
#outmenu li {
	min-height: 32px;
}
#footer #outmenu li a {
	display: block;
}
#footer #outmenu li img {
	vertical-align: middle;
	margin-right: 5px;
}
#footer_inner {
	background: rgba(52,141,203,1);
	color: rgba(255,255,255, 1);
	padding: .5em 2%;
}
#footer_inner a {
	color: #fff;
}
#footer_inner a:hover {
	color: #ffadad;
}
#footer_inner ul {
	list-style: none;
	letter-spacing: .3em;
}
#footer_menu {
	display: flex;
	padding: 0;
}
#footer_inner>ul>li {
	margin-bottom: 1em;
}
#footer_inner ul ul {
	font-size: 0.15rem;
	padding-left: 1em;
}
#footer_inner ul a {
	display: block;
	padding: .2em 0;
}
#footer_info {
	font-size: 0.14rem;
}
#footer_info p {
	margin: 0;
}
#footer_info .comname {
	font-size: 0.2rem;
	font-weight: 600;
}
#footer_info .acsno {
	font-size: .2rem;
	line-height: 1.2;
}
#footer #pagetop {
	display: none;
	position: fixed;
	right: 0;
	bottom: 0;
	z-index: 901;
}
.copyright {
	background-color: #fff;
	color: #999;
	font-size: .12rem;
	text-align: center;
	margin: 0;
	padding: .2em .5em;
}

/** ======================================================================================

   Responsive settings Media query

========================================================================================== **/
@media screen and (min-width: 768px) {
	a[href*="tel:"] {
		pointer-events: none;
		cursor: default;
		text-decoration: none;
		color: inherit;
	}
	.pc-hidden {display: none;}
	.topmenu {
		display: flex;
		color: #348dcb;
		text-align: center;
	}
	.topmenu>li {
		width: 14%;
		background-color: #F9F9F9;
		margin-left: .285%;
	}
	.topmenu>li:hover {
		background-color: #348dcb;
		color: #fff;
	}
	.topmenu li>ul {
		transition: .4s;
		display: none;
		opacity: 0;
		position: absolute;
		left: 1%;
		z-index: 501;
		width: 98%;
		height: auto;
		background-color: #348dcb;
		box-shadow: 0 2px 3px rgba(0,0,0,.3);
		text-align: left;
		padding: 1% 1% 0;
	}
	.topmenu li:hover>ul {
		display: flex;
		flex-wrap: wrap;
		opacity: 1;
	}
	.topmenu li>ul>li {
		width: 49%;
		margin-bottom: 1%;
		margin-right: 1%;
	}
	.topmenu li>ul>li:nth-child(even) {
		margin-right: 0;
	}
	.topmenu a:hover {
		background-color: #348dcb;
		color: #fff;
	}
	.topmenu li>ul>li>a {
		background-color: #fff;
		color: #348dcb;
	}
	h1 strong {
		font-size: .36rem;
		margin-right: .5em;
	}
	#footer #outmenu li a {
		padding-right: 2em;
	}
	#footer_inner>ul>li {
		/*width: 25%;*/
		margin-right: 3em;
	}
}
@media screen and (min-width: 1024px) {
	.tb-hidden {display: none;}
	.fl {float: left;}
	.fr {float: right;}
	.w70 {width: 70%;}
	.w50 {width: 49%;}
	.w30 {width: 28%;}
	.w25 {width: 23%;}
	.inline_group {
		display: flex;
		align-items: baseline;
	}
	body:not(#top) header {
		display: flex;
		align-items: center;
		margin-bottom: 70px;
	}
	header .menulogo {
		width: 30%;
		max-width: 483px;
		margin: 0 10px 0 0;
	}
	.topmenu {
		width: 70%;
	}
	.topmenu li>ul>li {
		width: 24.25%;
	}
	.topmenu li>ul>li:nth-child(even) {
		margin-right: 1%;
	}
	.topmenu li>ul>li:nth-child(4n) {
		margin-right: 0;
	}
	.subtitle {
		white-space: nowrap;
	}
	.inline_group>.subtitle+* {
		margin-left: 1em;
	}
}
@media screen and (min-width: 1025px) {
	#footer_inner {
		display: flex;
		align-items: center;
	}
	#footer_inner #footer_menu {
		width: 70%;
	}
}
@media screen and (max-width: 1023px) {
	#footer_info {
		border-top: solid #7bb6de 1px;
		text-align: center;
		margin-top: .5em;
		padding-top: .6em;
	}
	#footer_inner ul ul {
		letter-spacing: 0;
	}
	#footer #pagetop {
		width: 100px;
	}
}
@media screen and (max-width: 767px) {
	html {
		font-size: 562.5%; /*90%*/
	}
	.sp-hidden {display: none;}
	.topmenu {
		display: none;
		opacity: 0;
		position: fixed;
		top: 0;
		right: 0;
		bottom: 0;
		left: 0;
		z-index: 401;
		background-color: #348dcb;
		overflow: auto;
		color: #fff;
	}
	#open_toggle {
		width: 100%;
		background-color: #4f6371;
		color: #fff;
		text-align: center;
	}
	#open_toggle label {
		display: block;
		letter-spacing: .25em;
		padding: .3em;
	}
	#close_toggle {
		position: fixed;
		right: 0;
		z-index: 601;
	}
	#close_toggle label {
		display: inline-block;
		background-color: #fff;
		color: #348dcb;
		font-size: .5rem;
		line-height: 1;
		padding: 0 .2em;
	}
	input#topmenu_open:checked~.topmenu {
		display: block;
		opacity: 1;
	}
	input#topmenu_close:checked~.topmenu {
		display: none;
		opacity: 0;
	}
	.topmenu>li {
		border-bottom: solid #7bb6de 1px;
		font-size: .18rem;
	}
	.topmenu>li>a {
		padding-left: 1em;
	}
	.topmenu a:hover {
		background-color: rgba(255,255,255,.2);
	}
	.topmenu li>ul {
		margin-bottom: 1em;
		padding-left: 2em;
	}
	.topmenu li>ul>li>a:before {
		border-width: 4px 0 4px 8px;
		border-color: transparent transparent transparent #fff;
	}
	h1 strong {
		display: block;
	}
	#footer #outmenu {
		align-items: baseline;
		text-align: center;
	}
	#footer #outmenu li {
		width: 25%;
	}
	#footer #outmenu li img {
		display: block;
		margin: auto;
	}
	#footer_inner>ul {
		flex-wrap: wrap;
	}
	#footer_inner>ul>li {
		width: 100%;
	}
	.copyright {
		text-align: left;
		padding-right: 120px;
	}
}
