@charset "UTF-8";
/******************** CSS RESET ********************/
*, *::before, *::after {
	box-sizing: border-box;
}
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 100%;
	vertical-align: baseline;
	background: transparent;
}
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
	display: block;
}
body {
	line-height: 1;
}
ol, ul {
	list-style: none;
}
img {
	max-width: 100%;
	vertical-align: bottom;
}
hr {
	display: block;
	height: 1px;
	border: 0;
	border-top: 1px solid #777;
	margin: 1em 0;
	padding: 0;
}
blockquote, q {
	quotes: none;
}
blockquote:before, blockquote:after, q:before, q:after {
	content: '';
	content: none;
}
table {
	border-collapse: collapse;
	border-spacing: 0;
}
address {
	font-style: normal;
}
input:not([type="radio"]):not([type="checkbox"]), button, textarea {
	padding: 0;
	margin: 0;
	background: none;
	border: 1px solid #ccc;
	border-radius: 0;
	-webkit-appearance: none;
}
input[type="radio"]{
	margin-top: 0;
	padding-top: 0;
}
input,
label{
	vertical-align: middle;
}
legend{
	width: 100%;
}
/******************** 共通設定 ********************/
html{
	/* scroll-padding-top: 97px; */
	overflow: auto;
	scroll-behavior: smooth;
}
body{
	font-family: arial, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "Meiryo UI", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
	line-height: 1.5;
	letter-spacing: 0.05em;
	color: #333;
	font-size: 100%;
	-webkit-text-size-adjust: 100%;
	-webkit-overflow-scrolling: touch;
	overflow-wrap: anywhere;
}
@media (min-width: 1025px) {
	body{
		position: static !important;
		width: 100% !important;
	}
}
@media (max-width: 1024px){
	html{
		/* scroll-padding-top: 0; */
	}
}
/**** テキスト ****/
h1, h2, h3, h4, h5, h6, strong, em, b, th{
	font-family: arial, "ヒラギノ角ゴ Pro W6", "Hiragino Kaku Gothic Pro", "Meiryo UI", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
}
a{
	color: #016493;
	text-decoration: underline;
}
a:hover{
	/* color: #860000; */
	text-decoration: none;
}
a:active{
	color: #860000;
}

/**** 別ウィンドウで開く ****/
/* .window{
	display: inline-block;
	font-size: 62.5%;
	font-weight: normal;
	background: #e0f4ff;
	color: #333;
	border-radius: 4px;
	padding: 1px 4px;
	margin: 0 4px;
	border: 1px solid #007bbb;
	vertical-align: text-bottom;
	word-wrap: break-word;
	outline: 1px solid #fff;
} */

/**** フォーム ****/
input, button, textarea{
	background: #fff;
	border: 1px solid #777;
	font-size: 100%;
	letter-spacing: 0.12em;
	color: #333;
}
/* text,textarea */
textarea, input[type="text"], input[type="file"], input[type="password"], input[type="email"], input[type="tel"]{
	min-height: 30px;
	font-family: arial, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "Meiryo UI", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
	background: #fff;
	border: 1px solid #ccc;
	padding: 8px 6px;
	appearance: none;
	border-radius: 0;
}
/* select */
select, select[size], select[multiple], select[size][multiple]{
	padding: 8px 24px 8px 6px;
	font-family: arial, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "Meiryo UI", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
	min-height: 24px;
	min-width: 24px;
	color: #333;
	appearance: none;
	background: #fff url(../images/select.svg) calc(100% - 8px) center no-repeat;
	border: 1px solid #ccc;
	border-radius: 0;
}
select[multiple], select[size][multiple]{
	background: #fff;
	padding: 8px 6px;
}
/* submit,reset,button */
button, button[type="button"], input[type="submit"], input[type="reset"], input[type="button"]{
	background: #555;
	border-radius: 4px;
	cursor: pointer;
	color: #fff;
	display: inline-block;
	text-align: center;
	padding: 8px 16px;
	width: auto;
}
button:hover, button[type="button"]:hover, input[type="submit"]:hover, input[type="reset"]:hover, input[type="button"]:hover{
	background: #666;
}
/**** その他 ****/
:focus-visible{
	outline: 2px solid #000;
	outline-offset: 2px;
}
.focus_visible:focus-visible{
  border-radius: 0;
  z-index: 1;
  position: relative;
}
.none{
	display: none;
}


/********** ヘッダー **********/
header{
	background: #fff;
	width: 100%;
}
header .logo{
	margin: 0 auto;
	padding: 0 20px;
	width: 100%;
	max-width: 1000px;
}
header nav{
	margin: 0;
	width: 100%;
	background-color: #016493;
}
header nav ul{
	margin: 10px auto 0;
	padding: 0 20px;
	width: 100%;
	max-width: 1000px;
	display: flex;
	flex-wrap: wrap;
}
header nav ul li{
	margin: 0;
	position: relative;
}
header nav ul li::before{
	content: '';
	position: absolute;
	top: calc(50% - 15px);
	left: 0;
	width: 1px;
	height: 30px;
	background-color: #00537b;
}
header nav ul li a{
	padding: 13px 17px 12px;
	color: #fff;
	text-decoration: none;
	display: block;
}
header nav ul li a:hover,
header nav ul li.current-menu-item a,
header nav ul li.current-page-ancestor a{
	color: #fff;
	background-color: #00537b;
}
header nav ul ul{
	display: none;
}
@media only screen and (max-width: 999px) {
	header{
	}
	header .inner{
		padding: 0 12px 10px;
		border-bottom: 2px solid #016493;
		display: flex;
		gap: 0 10px;
		align-items: center;
		justify-content: space-between;
	}
	header .logo{
		margin: 0;
		padding: 0;
		max-width: calc(100% - 64px);
	}
	header nav{
		display: none;
	}
}

/***** drawer *****/
#menu_button{
	margin: 10px 0 0;
	display: inline-block;
}
#menu_button button{
	position: relative;
	padding: 32px 0 0;
	width: 54px;
	min-height: 54px;
	font-size: 70%;
	text-align: center;
	letter-spacing: -0.5px;
	text-decoration: none;
	background: #016493;
	border: 0;
	border-radius: 0;
	display: inline-block;
	z-index: 2;
}
#menu_button button strong{
	color: #fff;
}
#menu_button button span{
	position: absolute;
	top: 9px;
	left: 50%;
	margin-left: -19px;
	display: inline-block;
	background: #fff;
	height: 3px;
	width: 38px;
	transition: 0.3s;
}
#menu_button button span:before,
#menu_button button span:after{
	content: '';
	position: absolute;
	left: 50%;
	margin-left: -19px;
	background: #fff;
	height: 3px;
	width: 38px;
	transition: 0.3s;
}
#menu_button button span:before{
	top: 9px;
}
#menu_button button span:after{
	top: 18px;
}
#menu_button.active button span{
	background: none;
}
#menu_button.active button span:before,
#menu_button.active button span:after{
	top: 8px;
	margin-left: -17px;
	width: 34px;
	rotate: 45deg;
}
#menu_button.active button span:after{
	rotate: -45deg;
}
/* sidr */
#sidr{
	width: 100%;
	color: #333;
	font-size: 100%;
	background: #fff;
	overflow-x: hidden;
	overflow-y: auto;
}
#sidr .sidr-inner{
  padding: 0 0 15px;
}
#sidr .close{
	text-align: left;
	position: relative;
	padding: 0;
	margin: 0;
}
#sidr .close button{
	padding: 8px 10px 8px 34px;
	width: 100%;
	color: #fff;
	text-align: left;
	text-decoration: none;
	background: #016493;
	border: 0;
	border-radius: 0;
	display: inline-block;
	position: relative;
}
#sidr .close button::before,
#sidr .close button::after{
	content: '';
	background: #fff;
	height: 2px;
	width: 16px;
	position: absolute;
	left: 10px;
	top: 50%;
	margin-top: 0;
	transform: rotate(-45deg);
}
#sidr .close button::after{
	transform: rotate(45deg);
}
#sidr ul li{
	background: none;
	border-bottom: 1px solid #aaa;
	display: block;
	text-align: left;
	margin: 0;
	padding: 0;
	position: relative;
}
#sidr ul li:last-child{
	border: 0;
}
#sidr ul li a{
	padding: 8px 20px 8px 12px;
	width: 100%;
	text-decoration: none;
	display: inline-block;
}
#sidr ul li.current_page_item > a{
	font-family: arial, "ヒラギノ角ゴ Pro W6", "Hiragino Kaku Gothic Pro", "Meiryo UI", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
	font-weight: bold;
}
#sidr ul ul{
	padding-left: 20px;
	border-top: 1px solid #aaa;
	display: none;
}
#sidr ul li a:has(~ ul.sub-menu){
	padding-right: 40px;
}
#sidr li span.arrow{
	position: absolute;
	top: 6px;
	right: 10px;
	width: 28px;
	height: 28px;
	background-color: #016493;
}
#sidr li span.arrow::before{
	content: '';
	position: absolute;
	top: calc(50% - 8px);
	right: calc(50% - 5px);
	width: 10px;
	height: 10px;
	border-bottom: 2px solid #fff;
	border-right: 2px solid #fff;
	rotate: 45deg;
	transition: 0.3s;
}
#sidr li span.arrow.active::before{
	top: calc(50% - 3px);
	rotate: -135deg;
}
#sidr ul ul li span.arrow{
	top: 5px;
	width: 24px;
	height: 24px;
}
#sidr ul ul li span.arrow::before{
	top: calc(50% - 6px);
	right: calc(50% - 4px);
	width: 8px;
	height: 8px;
}
#sidr ul ul a{
	padding: 6px 8px 7px;
	font-size: 87.5%;
}
@media print, screen and (min-width: 1000px) {
	#menu_button,
	#sidr{
		display: none!important;
	}
}

/********** フッター **********/
footer{
	margin: 50px 0 0;
	width: 100%;
	border-top: 1px solid #016493;
	position: relative;
}
footer .pageup{
	position: fixed;
	bottom: 189px;
	right: 60px;
	translate: 0 -50%;
}
footer .pageup a{
	width: 32px;
	height: 32px;
	background: rgba(0, 0, 0, .5);
	border: 1px solid rgba(255, 255, 255, .5);
	border-radius: 4px;
	display: inline-block;
}
@keyframes rollArrow{
	0% {
		translate: 0 0;
        animation-timing-function: linear;
	}
	25% {
		translate: 0 -100%;
        animation-timing-function: linear;
	}
	25.1% {
		translate: 0 100%;
        animation-timing-function: linear;
	}
	50% {
		translate: 0 0;
        animation-timing-function: linear;
	}
	75% {
		translate: 0 -100%;
        animation-timing-function: linear;
	}
	75.1% {
		translate: 0 100%;
        animation-timing-function: linear;
	}
	100% {
		translate: 0 0;
        animation-timing-function: ease;
	}
}
footer .pageup a:hover img{
	animation: rollArrow 0.8s;
}
footer .inner{
	margin: 0 auto;
	padding: 20px;
	width: 100%;
	max-width: 1000px;
}
footer .address p{
	margin-top: 6px;
	font-size: 87.5%;
}
footer .address p.tit{
	margin-top: 0;
	font-size: 112.5%;
}
footer .address .tel_mail{
	margin-top: 10px;
	display: flex;
	flex-wrap: wrap;
	gap: 0 20px;
}
footer .address .tel_mail > div{
	font-size: 87.5%;
	display: flex;
}
footer .address .tel_mail p{
	margin-top: 0;
	font-size: 100%;
}
footer .foot_link{
	margin-top: 10px;
	font-size: 75%;
	display: flex;
	gap: 6px 20px;
	flex-wrap: wrap;
}
footer .foot_link li{
	position: relative;
}
footer .foot_link li::before{
	content: '';
	position: absolute;
	top: 0;
	right: -11px;
	width: 1px;
	height: 100%;
	background-color: #333;
}
footer .foot_link li:last-child:before{
	content: none;
}
footer .foot_link li a{
	color: #333;
}
footer .c_right{
	margin-top: 10px;
	font-size: 75%;
}
@media only screen and (max-width: 999px) {
	footer .pageup{
		right: 12px;
	}
	footer .inner{
		padding: 20px 12px;
	}
}
/********** main **********/
.main_wrap{
	margin: 20px auto 0;
	padding: 0 20px;
	width: 100%;
	max-width: 1000px;
	background-color: #fff;
	display: flex;
	gap: 40px 20px;
	align-items: flex-start;
	justify-content: space-between;
}
.main_wrap main{
	width: 100%;
	background-color: #fff;
	position: relative;
}
.main_wrap main:has(+ aside) {
	width: calc(100% - 260px);
}
.main_wrap main .h1,
#contents h1{
	margin: 0 0 20px;
	padding: 10px 14px;
	color: #fff;
	font-size: 125%;
	background: #016493;
}
.main_wrap main .h2,
#contents h2{
	margin: 0 0 10px;
	padding: 3px 15px;
	color: #016493;
	font-size: 125%;
	text-align: center;
	border: 2px solid #6dd6d9;
	border-radius: 20px;
}
.main_wrap main h1.no_tit,
.main_wrap main h2.no_tit{
	margin: 0;
	padding: 0;
	background: none;
	border: 0;
	position: absolute;
	z-index: -1;
}
@media only screen and (max-width: 999px) {
	.main_wrap{
		padding: 0 12px;
		flex-direction: column;
		gap: 40px 20px;
	}
	.main_wrap main:has(+ aside){
		width: 100%;
	}
	.main_wrap main .h1{
		margin: 0 0 16px;
	}
	.main_wrap main .h2{
		margin: 0 0 16px;
	}
}

/********** aside **********/
.main_wrap aside{
	width: 240px;
	display: flex;
	flex-direction: column;
	gap: 30px 0;
}
@media only screen and (max-width: 999px) {
	.main_wrap aside{
		width: 100%;
	}
}
/* sub_index */
aside .wsp-container h2,
aside .wsp-container .wsp-pages-list > li,
aside .wsp-container .wsp-pages-list > li > a,
aside .wsp-container .children .children{
	display: none;
}
aside .wsp-container .wsp-pages-list > li.current_page_item,
aside .wsp-container .wsp-pages-list > li.current_page_parent,
aside .wsp-container .wsp-pages-list > li.current_page_ancestor,
aside .wsp-container .wsp-pages-list .current_page_item > .children,
aside .wsp-container .wsp-pages-list .current_page_parent > .children{
	display: block;
}
aside .wsp-container li a{
	margin: 0;
	padding: 13px 15px 10px 27px;
	color: #295970;
	font-size: 87.5%;
	line-height: 1.2;
	text-decoration: none;
	font-weight: bold;
	background: #d9eaf2 url(../img/arrow-sidenav-circle.png) no-repeat 8px center;
	border-bottom: 2px solid #ffffff;
	display: block;
}
aside .wsp-container li a:hover,
aside .wsp-container li.current_page_item > a{
	background-color: #c1dcea;
}
aside .wsp-container .children .children li a{
	padding: 11px 4px 9px 20px;
	color: #6b8fa1;
	background: #fff url(../img/arrow-sidenav.png) no-repeat 10px center;
	border-bottom: 1px dotted #295970;
}
aside .wsp-container .children .children li.current_page_item > a{
	color: #2a5970;
	font-weight: bold;
	font-family: arial, "ヒラギノ角ゴ Pro W6", "Hiragino Kaku Gothic Pro", "Meiryo UI", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
}

/********** #contents **********/
#contents h1{
	margin-bottom: 20px;
}
.top #contents h1:first-child{
	display: none;
}
#contents h1:nth-child(n+2){
	margin-top: 40px;
}
#contents h2{
	margin: 30px 0 20px;
}
#contents h3{
	margin: 30px 0 20px;
	padding: 0 0 3px;
	border-bottom: 1px solid #aaa;
}
#contents p{
	margin: 10px 0 0;
}
#contents ul{
	margin-top: 10px;
}
#contents ul li{
	margin-top: 4px;
	padding-left: 12px;
	position: relative;
}
#contents ul li::before{
	content: '';
	position: absolute;
	top: 8px;
	left: 0;
	width: 6px;
	height: 6px;
	background-color: #333;
	border-radius: 50%;
}
#contents ol{
	margin: 10px 0 0 30px;
	list-style-type: decimal;
}
#contents ol li{
	margin-top: 4px;
}
#contents figure{
	margin-top: 10px;
}
#contents figcaption{
	text-align: center;
}
#contents table td,
#contents table th{
	padding: 3px 5px;
	vertical-align: middle;
	background-color: #fff;
	border: 2px solid #999;
}
#contents table th{
	color: #fff;
	text-align: center;
	background-color: #033664;
}
#contents .wp-block-table table thead{
	border-bottom: 0;
}
#contents .wp-block-separator{
	border-top: 1px dotted #999;
}
#contents .wp-block-embed iframe{
	height: auto;
}

/* single_list */
.top #contents .wp-block-columns .single_list{
	max-height: 350px;
	overflow: auto;
}
#contents .single_list li{
	margin-top: 12px;
	padding: 0;
	display: flex;
	gap: 0 10px;
}
.top #contents .single_list li{
	margin-top: 8px;
	padding: 0 0 8px;
	border-bottom: 1px solid #ccc;
}
#contents .single_list li:first-child{
	margin-top: 0;
}
#contents .single_list li::before{
	content: none;
}
#contents .single_list li .date{
	width: 128px;
}
#contents .single_list li .text{
	width: calc(100% - 138px);
}
/* column用 */
#contents .wp-block-columns .single_list li{
	flex-direction: column;
}
#contents .wp-block-columns .single_list li .date,
#contents .wp-block-columns .single_list li .text{
	width: 100%;
}
@media only screen and (max-width: 999px) {
	#contents .single_list li{
		flex-direction: column;
	}
	#contents .single_list li .date,
	#contents .single_list li .text{
		width: 100%;
	}
}

/* sitemap */
#contents .wsp-pages-title{
	display: none;
}
#contents .wsp-pages-list{
	margin: 0 0 0 1.5em;
}
#contents .wsp-pages-list ul.children{
	margin-top: 0;
}
#contents .wsp-pages-list li{
	margin: 0;
	padding: 0 0 0 1.2em;
	line-height: 2em;
	background: url(../img/download.gif) left top 8px no-repeat;
}
#contents .wsp-pages-list li::before{
	content: none;
}
#contents .wsp-pages-list > li > a{
	font-weight: 700;
}

/* the_posts_navigation */
.nav-links{
	margin-top: 30px;
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	flex-direction: row-reverse;
	gap: 6px 8px;
}
.nav-links a{
	padding: 5px 12px;
	color: #333;
	text-decoration: none;
	background-color: #d9eaf2;
	display: block;
	position: relative;
}
.nav-links .nav-previous a{
	padding-right: 24px;
}
.nav-links .nav-next a{
	padding-left: 24px;
}
.nav-links a::before{
	content: '';
	position: absolute;
	top: calc(50% - 4px);
	width: 8px;
	height: 8px;
	border-top: 2px solid #333;
	border-right: 2px solid #333;
}
.nav-links .nav-previous a::before{
	right: 12px;
	rotate: 45deg;
}
.nav-links .nav-next a::before{
	left: 12px;
	rotate: -135deg;
}
.nav-links a:hover{
	background-color: #c1dcea;
}

/* カラムブロック */
@media only screen and (max-width: 781px){
	#contents .wp-block-columns.is-layout-flex{
		gap: 0 1em;
	}
}
/* single */
.single_date{
	text-align: right;
}

/* form */
#contents .smf-form .smf-text-control__control{
	padding: 12px 16px;
}
#contents .smf-form .smf-textarea-control__control{
	border: 1px solid #ccc;
	border-radius: 0;
	box-shadow: none;
}
#contents .smf-form .smf-item__col--label{
	margin: 14px 0 2px;
}
#contents .smf-action button.smf-button-control__control{
	margin-top: 10px;
	background: #efefef;
	border: 2px solid #000;
	border-radius: 0;
}

/* detail */
#contents .wp-block-details{
	margin-top: 10px;
}
#contents .wp-block-details summary{
	color: #016493;
	list-style: none;
	position: relative;
}
#contents .wp-block-details summary:hover{
	text-decoration: underline;
}
#contents .wp-block-details summary::-webkit-details-marker {
  display:none;
}
#contents .wp-block-details summary ~ *{
	margin: 0 0 0 1em;
	padding: 10px;
	background: #f2f2f2;
}
@media only screen and (max-width: 768px){
	.content .wp-block-details{
		margin-top: 16px;
	}
	.content h2 + .wp-block-details{
		margin-top: 30px;
	}
	.content .wp-block-details summary{
		padding: 14px 40px 14px 48px;
		background-position: top 14px left 16px, center right 10px;
		background-size: 24px auto, 28px auto;
	}
	.content .wp-block-details summary::before,
	.content .wp-block-details summary::after{
		right: 16px;
		width: 16px;
	}
}

/* 個別style */
#contents p.login_btn a{
	width: auto;
	padding: 10px 16px;
	font-size: 18px;
	line-height: 1.3;
	text-align: center;
	color: #fff!important;
	text-decoration: none !important;
	background-color: #696969;
	border: 1px solid #5f5f5f;
	border-radius: 6px;
	display: inline-block;
}
#contents .picture table{
	border-collapse: separate;
	border-spacing: 4px;
}
#contents .picture table td,
#contents .picture table th{
	border: 0;
}
#contents .picture table th{
	color: #333;
	background-color: #cee1f4;
}
/* パスワード保護 */
.post-password-form input[type="submit"]{
	padding: 0 6px;
	height: 30px;
	color: #333;
	background: #efefef;
	border: 2px solid #000;
	border-radius: 0;
}