@charset "UTF-8";

/* ---------------------------------------------------------------------------------------------
 @HTML5 Reset Stylesheet
---------------------------------------------------------------------------------------------*/

/* 
html5doctor.com Reset Stylesheet
v1.6.1
Last Updated: 2010-09-17
Author: Richard Clark - http://richclarkdesign.com 
Twitter: @rich_clark
*/

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, menu, nav, section, summary,
time, mark, audio, video {
	margin: 0;
	padding: 0;
	border: 0;
	outline: 0;
	font-size: 100%;
	vertical-align: baseline;
	background: transparent;
}

body {
	line-height: 1;
}

article,aside,details,figcaption,figure,
footer,header,hgroup,menu,nav,section { 
	display: block;
}

nav ul {
	list-style: none;
}

blockquote, q {
	quotes: none;
}

blockquote:before, blockquote:after,
q:before, q:after {
	content:'';
	content: none;
}

a {
	margin: 0;
	padding: 0;
	font-size: 100%;
	vertical-align: baseline;
	background: transparent;
}

/* change colours to suit your needs */
ins {
	background-color: #ff9;
	color: #000;
	text-decoration: none;
}

/* change colours to suit your needs */
mark {
	background-color: #ff9;
	color: #000;
	font-style: italic;
	font-weight: bold;
}

del {
	text-decoration: line-through;
}

abbr[title], dfn[title] {
	border-bottom: 1px dotted;
	cursor: help;
}

table {
	border-collapse: collapse;
	border-spacing: 0;
}

/* change border colour to suit your needs */
hr {
	display: block;
	height: 1px;
	border: 0;
	border-top: 1px solid #cccccc;
	margin: 1em 0;
	padding: 0;
}

input, select {
	vertical-align: middle;
}

img { vertical-align: bottom; border-style: none; } /*追加*/
*{
	box-sizing: border-box;
}

/* ---------------------------------------------------------------------------------------------
	Basic
---------------------------------------------------------------------------------------------*/

body {
	font: 15px/2 "Meiryo", Hiragino Kaku Gothic Pro, "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
	color: #666;
	-webkit-text-size-adjust: 100%;
	animation: fadeIn 1.5s ease 0s 1 normal;
}

@keyframes fadeIn { 0% {opacity: 0} 100% {opacity: 1} }

@media screen and ( max-width:670px ) {	
	body { font: 12px/2 "Meiryo", Hiragino Kaku Gothic Pro, "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif; }
	.wrap {
		width: 90%;
		margin: 0 auto;
	}
}

@media screen and ( min-width:671px ) and ( max-width:1023px ) {
	body { font: 14px/2 "Meiryo", Hiragino Kaku Gothic Pro, "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif; }
	.wrap {
		width: 95%;
		margin: 0 auto;
	}
}

@media screen and ( min-width:1024px ), print { 
	.wrap {
		width: 1000px;
		margin: 0 auto;
	}
}

_:lang(x)::-ms-backdrop, body { font-family: "Segoe UI", Meiryo, sans-serif; }

/*html { scroll-padding-top: 120px; }*/

a { color: #00228C; text-decoration: underline; transition: .6s; }
a:hover { transition: .6s; text-decoration: none; }

.cursor_default { cursor: default; }
.flex { display: flex; }

.flash:hover { opacity: 1; animation: flash 0.6s ease 0s  alternate; }
@keyframes flash { 0% {opacity: 0.2;} 100% {opacity: 1;} }

/* ---------------------------------------------------------------------------------------------
	Common
---------------------------------------------------------------------------------------------*/

.Mb005 { margin-bottom: 0.5em!important; }
.Mb010 { margin-bottom: 1em!important; }
.Mb015 { margin-bottom: 1.5em!important; }
.Mb020 { margin-bottom: 2em!important; }
.Mb025 { margin-bottom: 2.5em!important; }
.Mb030 { margin-bottom: 3em!important; }
.Mb040 { margin-bottom: 4em!important; }
.Mb050 { margin-bottom: 5em!important; }
.Mb060 { margin-bottom: 6em!important; }
.Mb070 { margin-bottom: 7em!important; }
.Mb080 { margin-bottom: 8em!important; }
.Mb120 { margin-bottom: 12em!important; }

.Mb010per { margin-bottom: 1%!important; }
.Mb020per { margin-bottom: 2%!important; }
.Mb025per { margin-bottom: 2.5%!important; }
.Mb030per { margin-bottom: 3.0%!important; }
.Mb050per { margin-bottom: 5%!important; }
.Mb100per { margin-bottom: 10%!important; }

.Ml-05 { margin-left: -0.5em!important; }
.Ml000 { margin-left: 0!important; }
.Ml005 { margin-left: 0.5em!important; }
.Ml010 { margin-left: 1em!important; }
.Ml015 { margin-left: 1.5em!important; }
.Ml020 { margin-left: 2em!important; }
.Ml025 { margin-left: 2.5em!important; }
.Ml030 { margin-left: 3em!important; }
.Ml040 { margin-left: 4em!important; }

.Ptb020 { padding: 2em 0; }
.Ptb { padding: 4em 0; }


.left { text-align: left!important; }
.center { text-align: center!important; }
.right { text-align: right!important; }


/* ---------------------------------------------------------------------------------------------
	Font - フォント
---------------------------------------------------------------------------------------------*/

.Fs05 { font-size: .5em!important; }
.Fs06 { font-size: .6em!important; }
.Fs07 { font-size: .7em!important; }
.Fs08 { font-size: .8em!important; }
.Fs085 { font-size: .85em!important; }

.Fs09 { font-size: .9em!important; }
.Fs095 { font-size: .95em!important; }
.Fs10 { font-size: 1em!important; }
.Fs11 { font-size: 1.1em!important; }
.Fs12 { font-size: 1.2em!important; }
.Fs15 { font-size: 1.5em!important; }
.Fs90 { font-size: 9em!important; }

.brown { color: #A67960; }
.red { color: #c00; }
.navy { color: #3e4a7b; }
.cornflowerblue { color: #266688; }



/* ---------------------------------------------------------------------------------------------
	Icon - アイコン
---------------------------------------------------------------------------------------------*/

.icon_pdf::after {
	margin-left: 5px;
	font-family: "Font Awesome 5 Free";
	content: "\f1c1";
	font-weight: bold;
	margin-right: 5px;
}

.icon_phone::before {
	font-family: "Font Awesome 5 Free";
	content: "\f095";
	font-size: .95em;
	font-weight: 900;
	margin-right: 5px;
	vertical-align: 0px;
	text-decoration: none;
}

.icon_arrow a::before {
	margin-left: 5px;
	font-family: "Font Awesome 5 Free";
	content: "\f0da";
	color: #60A578;
	font-size: 1.1em;
	font-weight: 900;
	margin-right: 5px;
}

.icon_new::after {
	display: inline-block;
	content: "NEW";
	text-decoration: none;
	color: #fff;
	background: #d00;
	font-size: 8px;
	font-weight: bold;
	line-height: 1;
	padding: 0.3em 0.5em 0.1em 0.5em;
	position: relative;
	bottom: 2px;
/*	transform: scale(0.9) translateX(-30%);*/
	animation: newAnime .7s infinite alternate;
}

@keyframes newAnime {
	0% { color: #d00; }
	100% { color: #fff; }
}

.icon_tel:before{
	font-family: "Font Awesome 5 Free";
	content: "\f095";
	font-size: .95em;
	font-weight: 900;
	margin-right: 5px;
	vertical-align: -1px;
	text-decoration: none;
}

.icon_fax:before{
	font-family: "Font Awesome 5 Free";
	content: "\f1ac";
	font-size: .95em;
	font-weight: 900;
	margin-right: 5px;
	vertical-align: -1px;
	text-decoration: none;
}

.icon_external-link::after {
    font-family: "Font Awesome 5 Free";
    content: "\f35d";
    font-weight: bold;
    margin: 0 5px 0 2px;
}

/* ---------------------------------------------------------------------------------------------
	List - リストスタイル
---------------------------------------------------------------------------------------------*/

.list_none { list-style: none; }

.list_arrow li { list-style: none; display: flex; }
.list_arrow li .date { margin-right: .5em; }
.list_arrow li::before { margin-left: 5px; font-family: "Font Awesome 5 Free"; content: "\f0da"; color: #596E7F; font-size: 1.1em; font-weight: 900; margin-right: .5em; }

.list_square { list-style: none; line-height: 2; }
.list_square li { text-indent: -1.5em; margin-right: 1.5em; }
.list_square li::before { content: "■"; font-size: 1.2em; vertical-align: middle; margin-right: 5px; }

.list_check { list-style: none; line-height: 2.2; }
.list_check li { text-indent: -2em; margin-right: 2em; }
.list_check li::before { margin-left: 5px; font-family: "Font Awesome 5 Free"; content: "\f058"; color: #5C6F80; font-size: 1.1em; font-weight: 900; margin-right: .5em; }

.note-circle { list-style: circle; margin-left: 1.5em; }

.note-ul {
	font-size: 0.9em;
	list-style: none;
	margin-top: 0.5em;
	padding-left: 1.2em;
	text-indent: -1.2em;
}

.note-ul li:before { content: "※"; margin-right: 0.2em; }

.note-ol {
	font-size: 0.9em;
	counter-reset: number;
	list-style: none;
	margin-top: 0.5em;
	padding-left: 2.1em;
	text-indent: -2.1em;
}

.note-ol li:before {
	counter-increment: number;
	content: "※"counter(number);
	margin-right: 0.5em;
}


/* ---------------------------------------------------------------------------------------------
	Table
---------------------------------------------------------------------------------------------*/

.not_border th, .not_border td { background: none!important; border: none!important; margin: 0!important; padding: 0!important; table-layout: auto!important; }
.not_border tbody { border: none!important; }

/*デフォルトテーブルスタイル*/
[class*="table01"] { width: 100%; }
[class*="table01"] th, [class*="table01"] td { border: 1px solid #ccc; vertical-align: middle; padding: .5em 1em; }

/* 見出し枠線ウォームカラー シンプル */
.table02 { width: 100%; margin-bottom: 10px; }
.table02 th { background: #fdf1e5; }
.table02 td { background: #fff; }
.table02 th, .table02 td { border: solid 1px #CF9C67; vertical-align: middle; padding: 1em; }


/* ---------------------------------------------------------------------------------------------
	Heading - 見出しデザイン
---------------------------------------------------------------------------------------------*/

.Ttl01 { font-size: 1.8em; color: #5C6F80; background: linear-gradient(to bottom, #E4EDF2 50%, #C8DBE2 50%); font-weight: bold; border-top: 1px solid #ccc; border-bottom: 1px solid #ccc; text-align: center; padding: .8em 0; line-height: 1; }

@media screen and ( max-width:670px ) {
	.Ttl01 { font-size: 1.2em; padding: 1em 0; }
}


[class*="Ttl02"]{ font-size: 1.2em; color: #5C6F80; background: #eee; border-radius: 7px; text-align: center; padding: .5em .5em; }

.Ttl02_top { font-size: 1.1em; }
@media screen and ( max-width:670px ) {
	.Ttl02_top { font-size: 3.1vw; }
}

[class*="Ttl02o"]{ font-size: 1.2em; color: #D26900; background: #FFEFDF; border-radius: 7px; text-align: center; padding: .5em .5em; }

[class*="Ttl02g"]{ font-size: 1.2em; color: #00793D; background: #EAF7F0; border-radius: 7px; text-align: center; padding: .5em .5em; }


.Ttl03 { font-size: 1.1em; color: #5C6F80; background: #E4EDF2; border-radius: 7px; text-align: center; padding: .5em 0; }



.Ttl04 { font-size: 1.1em; color: #786916; background: #F9F5DF; text-align: center; border-radius: 50px; padding: 1em; }


.Ttl05 { font-size: 1.5em; color: #5C6F80; }

/* ---------------------------------------------------------------------------------------------
 	Header - ヘッダー
---------------------------------------------------------------------------------------------*/

header { font-weight: bold; color: #596E7F; background: #E4EDF2; padding: .8% 0; z-index: 99; }
header a { color: #596E7F; text-decoration: none; }
header a:hover { color: #3e4a7b; }
header .header1 { font-size: 1em; display: flex; justify-content: space-between; border-bottom: 1px solid #ccc; padding: 1% 1.8%; }

.header1 nav a::before { display: inline-block; width: 1em; font-size: .95rem; color: #fff; background: #596E7F; text-align: center; line-height: 1; border-radius: 50%; font-family: "Font Awesome 5 Free"; font-weight: 900; margin-right: 5px; padding: 6px; transition: .6s; }
.header1 nav a:hover::before { background: #3e4a7b; transition: .6s; }
.header1 nav a#about::before { content: "\f129"; }
.header1 nav a#list::before { content: "\f0ca"; }
.header1 nav a#access::before { content: "\f5a0"; }
.header1 nav a + a { margin-left: .8em;}

header .header2 { display: flex; justify-content: space-between; text-align: center; width: 95%; margin: 0 auto; }



header .header2 a { width: 45%; border-left: 1px solid #ccc; padding: 1.6% 0 0 0; }
header .header2 a:last-of-type { border-right: 1px solid #ccc; }
header .header2 a#HOME { width: 10%; font-weight: normal; }
header .header2 a#HOME span::before { font-size: 2em; line-height: 1; font-family: "Font Awesome 5 Free"; content: "\f015"; display: block; font-weight: 900; }
header .header2 a.arrow { font-size: 1.3em; padding: 2.7% 0 0 0; }
header .header2 a.arrow span::after { position: relative; top: 1px; font-size: 1.2em; line-height: 1; font-family: "Font Awesome 5 Free"; content: "\f138"; font-weight: 900; margin-left: 8px; }

/* 以下 ホバーエフェクトbackground設定*/
header .header2 a { position: relative; z-index: 2; background: transparent; }
header .header2 a::before {content: ' '; position: absolute; top: 0; bottom: 0; left: 0; right: 0; z-index: -1; background : #E4EDF2; transition: .6s; }
header .header2 a::after { content: ' '; position: absolute; top: 0; bottom: 0; left: 0; right: 0; z-index: -2; background: linear-gradient( #fbfdff 0%, #E4EDF2 100%); transition: .6s; }
header .header2 a:hover::before{ opacity: 0; transition: .6s; }


@media screen and ( max-width:670px ) {
	header [class*="header"] { display: none; }
	header { font-size: 2.5vw; padding: 3.8% 0; }
}

@media screen and ( min-width:671px ) and ( max-width:1023px ) {
	header .header1 a#list, header .header1 a#contact { font-size: .8em; }
	header .header2 a.arrow { font-size: 1.1em; }
}

@media screen and ( min-width:671px ), print {
	header .sp { display: none; }
}


@media screen and ( min-width:1024px ), print {
	
}


/* ---------------------------------------------------------------------------------------------
	Nav
---------------------------------------------------------------------------------------------*/

.fixed {
	position: fixed;
	top: 0;
	padding: 0;
	width: 100%;
	z-index: 1000;
	box-shadow: 0 0 5px rgba(0, 0, 0, 0.5);
}

#header-nav > a { display: block; color: #000; text-decoration: none; padding: 15px 0; }

[id*="-nav"] ul li a::before { font-family: "Font Awesome 5 Free"; font-weight: 900; margin-right: .5em; text-align: center; display: inline-block; }


@media screen and ( min-width:1024px ), print {
	#header-nav { position: relative; width: 100%; line-height: 1.4; }
	#header-nav ul { width: 100%; position: absolute; display: flex; justify-content: space-between; z-index: 1; }
	#header-nav ul li { width: 20%; text-align: center; background: rgba( 255,255,255,.6 ); }
/*	#header-nav ul li + li { margin-left: 5em; transition: .6s; }*/
	#header-nav ul li a { display: block; color: #000; padding: 1.2em 0; }
	#header-nav ul li a:hover { background: rgba( 255,255,255,.4 ); }
	#header-nav ul li a:hover { color: #fff; background: rgba(237, 151, 68, .6); }
}


@media screen and ( min-width:671px ) and ( max-width:1023px ) {
	#header-nav ul { font-size: 16px; margin: 3em 0 2em 1em; }
}

@media screen and ( max-width:670px ) {
	#header-nav ul { font-size: 16px; margin: 3em 0 2em 1em; }
	#header-nav .fas::before { margin-right: 5px; }
	#header-nav ul li + ul { font-size: 14px; line-height: 2; margin: -.3em 0 .5em 1.5em; }
}

/*レスポンシブ時余白・文字サイズ調整*/
@media screen and ( min-width:1023px ) and ( max-width:1240px ) {

}

@media screen and ( min-width:1024px ), print {
	/* Float Shadow */
	#header-nav ul li {
		display: inline-block;
		vertical-align: middle;
		-webkit-transform: perspective(1px) translateZ(0);
		transform: perspective(1px) translateZ(0);
		box-shadow: 0 0 1px rgba(0, 0, 0, 0);
		position: relative;
		-webkit-transition-duration: 0.3s;
		transition-duration: 0.3s;
		-webkit-transition-property: transform;
		transition-property: transform;
	}
}


@media screen and ( max-width:1023px ) {
	#header-nav { display: inherit; line-height: 2.5; }
}



/* ---------------------------------------------------------------------------------------------
	Drawer Menu
---------------------------------------------------------------------------------------------*/

/*
@media screen and ( min-width:1024px ), print { .drawer_menu { display: none; } }
@media screen and ( min-width:671px ) and ( max-width:1023px ) {}
*/

@media screen and ( min-width:671px ), print { .drawer_menu { display: none; } }

@media screen and ( max-width:670px ) {
	.drawer_menu * {
		margin: 0;
		padding: 0;
		outline: none;
		-webkit-appearance: none;
		-moz-appearance: none;
		appearance: none;
		text-decoration: none;
		list-style: none;
	}

	.drawer_menu a { color: inherit; text-decoration: none; }
	.drawer_menu a:visited { color: inherit; }

	.drawer_menu .drawer_bg {
		width: 100%;
		height: 100%;
		position: fixed;
		z-index: 999;
		background-color: rgba(51, 51, 51, 0.5);
		display: none;
		top: 0;
		left: 0;
	}

	.drawer_menu .drawer_button {
		display: block;
		background: none;
		border: none;
		padding: 0;
		width: 40px;
		letter-spacing: 0.1em;
		cursor: pointer;
		position: fixed;
		top: .5%;
		right: 1.8%;
		z-index: 1001;
		text-align: center;
		outline: none;
	}
	
	@media screen and ( max-width:420px ), print {
		.drawer_menu .drawer_button { right: 3.2%; }
	}

	.drawer_menu .drawer_button.active .drawer_bar { width: 46px; }
	.drawer_menu .drawer_button.active .drawer_bar1 { transform: rotate(30deg); }
	.drawer_menu .drawer_button.active .drawer_bar2 { opacity: 0; }
	.drawer_menu .drawer_button.active .drawer_bar3 { transform: rotate(-30deg); }
	.drawer_menu .drawer_button.active .drawer_menu_text { display: none; }
	.drawer_menu .drawer_button.active .drawer_close { display: block; }

	.drawer_menu .drawer_bar {
		display: block;
		height: 2px;
		margin: 9px 0;
		transition: all 0.2s;
		transform-origin: 0 0;
	}

	.drawer_menu .drawer_text {
		text-align: center;
		font-size: 10px;
	}

	.drawer_menu .drawer_close {
		letter-spacing: 0.08em;
		display: none;
	}

	.drawer_menu .drawer_menu_text {
		display: block;
	}
	
	.drawer_menu .drawer_nav_wrapper {
		width: 312px;
		height: 100%;
		transition: all 0.2s;
		transform: translate(312px);
		position: fixed;
		top: 0;
		right: 0;
		z-index: 1000;
		background-color: #FFF;
		overflow-y: auto;
	}

	.drawer_menu .drawer_nav_wrapper.open {
		transform: translate(0);
	}

	.drawer_menu.left .drawer_button {
		right: auto;
		left: 32px;
	}

	.drawer_menu.left .drawer_nav_wrapper {
		transform: translate(-312px);
		right: auto;
		left: 0;
	}

	.drawer_menu.left .drawer_nav_wrapper.open {
		transform: translate(0);
	}

	/*+++ Default Navigation CSS +++*/
	.drawer_menu .drawer_nav {
/*	  padding: 75px 24px;*/
/*		margin: 28% 0;*/
	}

	.drawer_menu .drawer_nav > li { line-height: 2; }
	.drawer_menu .drawer_nav li ul { margin-top: 15px; }

	/*+++ Default Button Color +++*/
	.drawer_menu .drawer_button { color: #000; }
	.drawer_menu .drawer_button .drawer_bar { background-color: #000; }
}

/*ドロワーメニューボタン位置調整*/
@media screen and ( min-width:1024px), print {
	.drawer_button { display: none; }
}

@media screen and ( max-width:420px) {
	.drawer_menu .drawer_nav_wrapper { width: 100%; transform: translate(100%); }
}

/* ---------------------------------------------------------------------------------------------
	パンくずリスト
---------------------------------------------------------------------------------------------*/

#breadcrumb { font-size: 13px; padding: 8px 0; }
#breadcrumb ul { margin-left: 1.5em; }
#breadcrumb ul li { display: inline-block; list-style: none; text-align: left; }
#breadcrumb ul li:after { font-family: "Font Awesome 5 Free"; content: '\f0da'; color: #93B8C6; font-weight: bold; position: relative; left: 2px; padding: 0 .5em; }

#breadcrumb li:last-child { color: #666; }
#breadcrumb li:last-child:after { content: ''; }
#breadcrumb li a { text-decoration: none; color: #666; cursor: pointer; }
#breadcrumb li a:hover { text-decoration: underline; }

@media screen and ( max-width:670px ) {}

@media screen and ( min-width:671px ) and ( max-width:1023px ) {}

@media screen and ( min-width:1024px ), print {
	#breadcrumb { margin-top: 5px; }
	#breadcrumb li { display: inline; }
}


/* ---------------------------------------------------------------------------------------------
	Footer
---------------------------------------------------------------------------------------------*/

footer { position: relative; color: #202C60; }
footer .footer_menu { background: #C8DBE2; text-align: center; padding: 1em; }
footer .footer_menu h6 { font-size: 1.5em; margin-bottom: .5em; }
footer .footer_menu h6 a { color: #202C60; text-decoration: none; }
footer nav ul { font-size: .8em; display: flex; justify-content: center; }
footer nav li + li { margin-left: 2em; }
footer nav a { color: #202C60; text-decoration: none; }
footer nav a::before { content: "▶"; margin-right: 2px; }
footer nav a:hover { text-decoration: underline; }

#Copyright { font-size: 12px; color: #5B6E7F; background: #fff; text-align: center; padding: 15px 0; }

@media screen and ( max-width:670px ) {
	footer nav { display: none; }
	footer .footer_menu h6 { margin-bottom: 0; }
	footer .footer_menu h6 span { display: none; }
	#Copyright { font-size: 8px; margin: auto 1em; }
}

@media screen and ( min-width:671px ), print {
	footer .footer_menu h6 br { display: none; }
}

@media screen and ( min-width:671px ) and ( max-width:1023px ) {
	footer nav ul { font-size: .8em; flex-wrap: wrap; }
}


/* ---------------------------------------------------------------------------------------------
	Back to top
---------------------------------------------------------------------------------------------*/

#pageTop {
	display: none;
	position: fixed;
	bottom: 0;
	right: 0;
	background: #8F95AD;
	z-index: 2;
}

#pageTop a {
	display: block;
	z-index: 999;
	padding: 10px 10px;
	width: 50px;
	height: 50px;
	font-size: .99rem;
	color: #fff;
	font-weight: bold;
	text-decoration: none;
	text-align: center;
	border: 1px solid #ccc;
	transition: .6s;
/*	box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.5);*/
}

#pageTop a:hover { text-decoration: none; opacity: .7; transition: .6s; }

_:lang(x)::-ms-backdrop, #pageTop a i { position: relative; top: 2px; }
