@charset "utf-8";
/*************************************************
 style.css
**************************************************/
*,
*::before,
*::after { box-sizing: border-box;}

body { margin:0; background: #ffffff; color: #333333; font-size:100%; line-height:1.5; font-family:"Hiragino Kaku Gothic ProN", "メイリオ", sans-serif; -webkit-text-size-adjust:100%;}
header ,article ,footer ,section ,h1,h2,h3,hr{clear:both;} /*-clear-*/
article ,section ,nav ,dl,ul,div{padding:0 0 5px;overflow:auto;} /*-hasLayout-*/
input[type="text"],input[type="button"],input[type="submit"]{-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:0;}
input[type="button"],input[type="submit"]{cursor:pointer;} /*-formAppearanceClear-*/

h1,h2,h3,h4,h5,p,dl,ul,ol {margin-top:0;}
ul{list-style:none;}
ul,ol{padding-left:0px;}/* 30px */
textarea{max-width:95%;}
fieldset{margin:0 0 1em;padding:0 0 5px;border:none;}
a{color:#0044cc;text-decoration:underline;}
a:visited{color:#32737f;}
a:hover{color:#14205F;}
a:active{color:#5D0000;}

a img { margin: 2px;}
a:hover img,
a:focus img { outline: 2px dotted;}
img {border: none; vertical-align: middle;}

#Map,#Map *,#jump{padding:0;overflow:visible;}
#jump a{position:absolute;width:0;height:0;overflow:auto;text-indent:-1000em;}
#jump a:focus{width:12em;height:1.5em;text-indent:0;background:#FFFFFF;text-align:center; z-index: 2;}

body{ min-width:320px;}
#TOP{ min-width:1024px; padding-bottom: 0;}
header .wrap,
header nav ul,
.contents .wrap,
.contents div.locus .wrap,
footer .wrap { width: 1024px; margin:0 auto;}

.contents article { float: left; width: calc(100% - 250px - 30px); margin-right: 30px;}
.no_nav .contents article { width: auto; float: none; margin-left: 0;}
.contents nav{ float: right; width: 250px;}


/* タイトル */
header {margin:0 auto;}
header h1,
header .title { width: 250px; margin: 10px 0 0.4em 0; padding: 0; float: left; font-size: 1.5em; border: none;}
header h1 a,
header .title a { display: block; height: 100%;}
header h1 img,
header .title img { max-width: 100%; height: auto;}


/* ページコントロール - 切り替えボタン */
header .UD{float:left;margin:0;padding:0;}
header .page_control{float:right;margin:14px 0 0 0;padding:0;}
header .page_control dl,
header .page_control dl dt,
header .page_control dl dd { min-height:34px; margin:0; padding:0;font-size: 0.95em;}
header .page_control dl{ float:left; display: flex; height:34px ; margin:0 0.5em 0 0; padding:0; overflow: hidden;}
header .page_control dl dt{ width:34px;}
header .page_control dl.color_change dt,
header .page_control dl.textsize_change dt { display: flex; justify-content: center; align-items: center;}
header .page_control dl.color_change dt { width: 60px;}
header .page_control dl.textsize_change dt { width: 90px;}
header .page_control dl dd a { display: block; width:30px; height:30px; margin: 2px; border: 2px solid #333333; border-radius: 50%;}
header .page_control dl.color_change dd a { background-color: #fff;}
header .page_control dl.color_change dd.high a { background-color: #000;}
header .page_control dl.color_change dd.low a { background-color: #ccc;}
header .page_control dl dd a img { margin: 0;}
/**/
header .page_control dl dd a { background-color: #333333;} /* ボタン色 */
header .page_control dl.textsize_change a:hover,
header .page_control dl.textsize_change a:focus,
header .page_control dl.color_change a:hover,
header .page_control dl.color_change a:focus,
header .page_control dl.color_change dd.high a:hover,
header .page_control dl.color_change dd.high a:focus,
header .page_control dl.color_change dd.default a:hover,
header .page_control dl.color_change dd.default a:focus,
header .page_control dl.color_change dd.low a:hover,
header .page_control dl.color_change dd.low a:focus { background-color: #057E29; border-color: #057E29;} /* ホバー色 */

/* ページコントロール - 翻訳ボタン */
header .page_control .voice { float: left; display: block; height: 34px; margin:0 0.5em 0 0; padding: 0; text-align: center;}
header .page_control .voice a { display: flex; justify-content: center; align-items: center; height: 100%; padding: 0 1em; font-size: 0.8em; text-decoration: none;}
/**/
header .page_control .voice a { color: #fff; background-color: #333333;} /* ボタン色 */
header .page_control .voice a:hover,
header .page_control .voice a:focus { background-color: #057E29;} /* ホバー色 */

/* ページコントロール - 検索 */
header .page_control .search { width:220px; margin: 0; padding: 0; float: right; text-align: center;}
header .page_control .search div { margin:0; padding:0;}
header .page_control .search label.search_txt{ float:left; display:flex; align-items: center; justify-content: center; height: 34px; width: 0px; font-size: 0.9em; overflow: hidden;}
header .page_control .search .search_inner { width: calc(100% - 0px); border: 0px solid #333;}
header .page_control .search input#search_txt {display: block; height: 34px; width:calc(100% - 4em); margin: 0%; padding: 0px 0.5em 0px 24px; line-height: 34px; background: url("../img/header_search.png") 6px center no-repeat #EEEEEE; border:none; float:left;}
header .page_control .search input#search_txt:focus {background-color:#FFFFFF; box-shadow: inset 0px 0px 0px 2px #ccc; border-right: none;}
header .page_control .search input.search_bt { display: block; width: 4em; height:34px; ;margin: 0; padding:0px 0; font-weight:bold;border:none;float:left;}
/**/
header .page_control .search .search_inner { border-color: #333; background-color: #333;} /* 検索枠色 */
header .page_control .search input.search_bt { color:#FFF; background-color: #333;} /* 検索ボタン色 */
header .page_control .search input.search_bt:hover,
header .page_control .search input.search_bt:focus { background-color: #057E29;} /* 検索ボタン ホバー色 */


/* ハンバーガーメニュー */
p.hamburger_text { position: absolute; bottom: 5px; height: 1em; width: 100%; margin: 0px auto; padding: 0px; font-size: 0.65em; text-align: center;}
p.hamburger_text span {display: inline-block; overflow: hidden; width: 0px; height: 0px;}
.hamburger,
.hamburger span { display: inline-block; transition: all 0.4s;}
.hamburger { position: relative; width: 22px; height: 19px; margin: 8px 0px 0px 11px;}
.hamburger span { position: absolute; left: 0; width: 100%; height: 3px; border-radius: 3px;}
.hamburger span:nth-of-type(1) { top: 0;}
.hamburger span:nth-of-type(2) { top: 8px;}
.hamburger span:nth-of-type(3) { bottom: 0;}
.menu_button { display:none; position: fixed; top: 0; right: 0; height: 44px; width: 44px; z-index: 110; border-radius: 0.3em;}
.menu_button a {display:block; height: 44px; width: 44px; transition-duration: 0.2s; overflow: hidden;}
.menu_button.active .hamburger { -webkit-transform: rotate(360deg); transform: rotate(360deg);}
.menu_button.active .hamburger span:nth-of-type(1) { -webkit-transform: translateY(8px) rotate(-45deg); transform: translateY(8px) rotate(-45deg);}
.menu_button.active .hamburger span:nth-of-type(2) { -webkit-transform: translateY(0) rotate(45deg); transform: translateY(0) rotate(45deg);}
.menu_button.active .hamburger span:nth-of-type(3) { opacity: 0;}
/**/
.menu_button a { background: #333;} /* ボタン色 */
.hamburger span { background-color: #fff;} /* ハンバーガー色 */
p.hamburger_text { color: #fff;} /* 文字色 */
.menu_button a:hover,
.menu_button a:focus { background-color: #057E29;}


/* グローバルメニュー */
header nav{ padding-bottom: 0px;}
#menu { display: flex; height: 64px; margin: 0 auto; padding: 0; list-style: none;}
#menu li { position: relative; float: left; padding: 2px;}
#menu li.menu01,
#menu li.menu05,
#menu li.menu06 { flex-grow: 1.2;}
#menu li:before ,
#menu li:first-of-type:after { position: absolute; display: block; content: ""; top: 10%; bottom: 10%; width: 1px; background: repeating-linear-gradient( #666666, #666666 3px, transparent 3px, transparent 5px);}
#menu li:before { right: 0px;}
#menu li:first-of-type:after { left: 0px;}
#menu li a { display: flex; align-items: center; justify-content: center; height: 60px; padding: 1em 1.2em; text-decoration: none; border-radius: 0.6em; transition-duration: 0.15s;}
/**/
header nav { background-color: transparent;} /* 帯背景色 */
#menu li a { color: #000; background-color: #fff;} /* ボタン色 */
#menu li a:hover,
#menu li a:focus { background-color: #CDF1D9;} /* ホバー色 */

/* パンくずリスト */
p.locus { margin-top: 1em; margin-bottom: 0.3em; font-size: 0.95em;}

/*---------
 CONTENTS
---------*/
.content_heading,
.content_body,
article section { padding: 20px 30px; border: 5px solid #F5F5F5;}
.content_heading { padding-bottom: 0px; border-bottom: none;}
.content_body { margin-bottom: 1.5em; padding-top: 0px; border-top: none;}

.contents h1 { padding: 0.75em 1em 0.7em; background-color: #B0E8C4; margin-left: -10px; margin-right: -10px; font-size: 1.6em;}
.contents nav { overflow: visible;}
.contents nav ul,
.contents nav dl { padding:0;list-style:none;}
.contents nav dl {}
.contents nav dl dt{ padding: 1.3em 0.5em 1.1em; text-align: center; font-size: 1.15em; border-bottom: 5px solid #B0E8C4; background-color: #E3F7EA;}
.contents nav dl dd{ margin:0; border-bottom: 2px solid #E2E2E2;}
.contents nav dl dd a { position: relative; display: block; padding: 1.1em 0.5em 1em 2em; text-decoration: none; transition-duration: 0.15s;}
.contents nav dl dd a:hover,
.contents nav dl dd a:focus { background-color: #F9F8E6;}
.contents nav dl dd a:before { position: absolute; display: block; content: ""; left: 1em; top: 1.45em; bottom: 1.4em; width: 3px; background-color: #144E27; transition-duration: 0.15s;}
.contents nav dl dd a:hover:before { left: 1.3em;}
.acrobat { margin-bottom: 0; padding: 1em; font-size: 0.9em; border: none; background-color: #eee;}

/* section */
article section { margin-bottom: 1.5em;}
section.link_section ul { margin-bottom: 0;}

/* footer */
footer { position: relative; padding: 2em 0 0; background: repeating-linear-gradient(-45deg, #D2F2DD, #D2F2DD 8px, #CDF1D9 8px, #CDF1D9 12px);}

footer .main { float: left;}
footer .other { float: right;}

footer .nav { display: flex; margin-bottom: 0;}
footer .nav li { margin: 0 1em 1em 0em;}
footer .nav li a { display: flex; padding: 1em 2em; text-decoration: none; transition-duration: 0.15s;}
footer .nav li.menu01 a { color: #fff; background-color: #1877B1;}
footer .nav li.menu02 a { color: #000; background-color: #B3E1ED;}
footer .nav li a:hover,
footer .nav li a:focus { color: #fff; background-color: #057E29;}

footer dl { margin:0 0 1em; padding:0;}
footer dt { margin:0; padding:0 0 0 26px; margin-bottom: 0.5em; font-size: 1.1em; background: url("../img/footer_title.png") 0px 0.2em no-repeat;}
footer dd { margin:0; padding:0; font-size: 0.9em;}

footer .banner { margin-bottom: 0;}
footer .banner li { margin: 0 0 1em 1em;}

footer .copyright { clear: both; margin: 0; padding: 0.5em; text-align: center; font-size: 0.8em;}
footer .copyright span { display: block; width: 1024px; margin: 0 auto;}

footer .reread_link { height: 100px; width: 100px; position:fixed; bottom: 10px; right:0; padding-bottom: 0; z-index: 100;}
footer .reread_link a { position: relative; display:flex; justify-content: center; align-items: flex-end; height:100%; width: 100%; padding-bottom: 0.5em; color: #000; font-size: 0.8em; text-align: center; text-decoration: none; border: 6px solid #9DE5B4; background-color: #fff; overflow: hidden; border-radius: 50%; transition-duration: 0.15s;}
footer .reread_link a:before { position: absolute; display: block; content: ""; height: 30px; top: 0.6em; left: 0px; right: 0px; background: url("../img/reread_link.png") center center no-repeat; transition-duration: 0.15s;}
footer .reread_link a:hover,
footer .reread_link a:focus { border-color: #057E29; background-color: #F9F8E6;}
footer .reread_link a:hover:before,
footer .reread_link a:focus:before{ top: 0.2em;}

.menu_bg { display: none; position: fixed; top: 0px; bottom: 0px; left: 0px; right: 0px; background-color: rgba(64,64,64,0.5); z-index: 100;}


/* 一覧ページ */
.content_body section { margin-left: 0; margin-right: 0; padding-left: 0; padding-right: 0; border: none; overflow: visible;}

.news dt,
.news dd { padding: 0.8em 0 0.8em 1em;}
.news dt { width: 8em; padding-left: 2em;}
.news dd { padding-left: 8em; border-bottom: 2px dotted #C0C0C0;}
.news dt,
.menu_list li { position: relative;}
.news dt:before,
.menu_list li:before { position: absolute; display: block; content: ""; top: 0.9em; left: 1em; width: 0.3em; height: 1.2em; background-color: #144E27;}

.menu_list li { padding: 0.8em 0 0.8em 2em; border-bottom: 2px dotted #C0C0C0;}
.menu_list .menu_text { padding: 0.5em 0 0 0.5em;}

/*************************************************
 CMS用テンプレート  .txtbox内部
**************************************************/
.txtbox,
.section_wrap { overflow: visible;}

.txtbox .image_box_left a,
.txtbox .image_box_right a { display: block; max-width: calc(100% - 4px);}

/* 見出し */
.txtbox h2,
article section h2 { background: #D2F2DD; margin:0 -10px 1em; padding: 0.3em 1.1em; font-size: 1.4em;}
article section h2{ background-color: #BAE7D9}
.txtbox h3,
article section h3 { margin:0 -10px 1em; padding: 0.3em 1.3em 0.2em; font-size: 1.25em; border-bottom: 2px solid #333;}
.txtbox h4,
article section h4 { margin:0 0 1em 0; padding:.3em 0.95em; font-size: 1.2em;}
.txtbox h5,
article section h5 { margin:0 0 1em 0; padding:.3em .5em; font-size: 1.1em;}
.txtbox h6{ margin:0 0 1em 0; padding:.3em .5em; font-size: 1em;}
.txtbox h4:before{ top: 28%; bottom: 32%; left: 0.35em; width: 0.3em; background-color: #144E27;}

.txtbox h4,
article section h4 { position: relative;}
.txtbox h4:before,
article section h4:before { position: absolute; display: block; content: "";}

/* list */
.txtbox ul > li:before,
article section.link_section li:before { width: 0.5em; height: 0.5em; top: 0.5em; left: 10px; background: #144E27;border-radius:50%;} /* リストの色・形 */

/* table */
.txtbox table th,
.txtbox table td{ border:1px solid #AAAAAA;} /* テーブル線の色 */
.txtbox table th{ background: #F5F5F5;} /* THの色 */


/*************************************************
 レスポンシブ　1024 + 20 
**************************************************/
@media screen and (min-width:0px) and (max-width:1044px) {
	#TOP,
	textarea ,
	header .wrap,
	footer .wrap,
	header .nav,
	.contents,
	.contents div.locus .wrap,
	.contents .wrap,
	.contents article,
	.no_nav .contents article,
	.contents nav,
	footer .copyright span { position:static;width:auto;min-width:0;max-width:100%;float:none;}

	header .wrap,
	p.locus,
	.contents nav,
	.contents article,
	.no_nav .contents article,
	footer .wrap {margin-left:2%;margin-right:2%;} 
	footer .copyright { padding: 20px 0;}

	header { position: relative;}
	header .page_control { display: none; position: fixed; top: 60px; left: 0px; right: 0px; margin-top: 0; z-index: 110;}
	header nav { position:fixed; top:0px; left:0px; right:0; max-height:100%; padding:0; background-color: transparent; box-shadow: 2px 2px 3px 0 rgba(0,0,0,0.4); overflow:visible; z-index:105;}
	.menu_button {display:block; top: 5px; right: 5px; padding-bottom: 0; transition-duration: 0.3s;}
	.menu_button.active { box-shadow: 0px 0px 0px 2px rgba(255,255,255,0.9);}
	#menu { height:auto; width: auto; padding-top: 234px; overflow:visible ;display:none;}
	#menu li { background-color: #fff;}
	#menu li,
	#menu.menu1 li,
	#menu.menu2 li,
	#menu.menu3 li,
	#menu.menu4 li,
	#menu.menu5 li { float: none; width: auto;}
	#menu li a { height: auto; padding: 0.75em 1em;}
	#menu li:before { top: 0px; bottom: auto; left: 2.5%; right: 2.5%; width: auto; height: 1px;}
	#menu li:first-of-type:after,
	#menu li:first-of-type:before { display: none;}

	header h1,
	header .title { margin-top: 4px; height: auto;}
	
	header .UD,
	header .page_control .search{position:static;width:auto;min-width:0;max-width:100%;float:none;}
	header .page_control .search,
	header .UD {margin-left:2%;margin-right:2%;}
	header .page_control .voice,
	header .page_control dl.textsize_change,
	header .page_control dl.color_change { float: none; width: 200px;}
	header .page_control .voice { margin: 5px auto 10px;}
	header .page_control dl.textsize_change,
	header .page_control dl.color_change { margin: 5px auto;}
	header .page_control dl dd a { margin-left: 5px; margin-right: 4px;}
	header .page_control dl.textsize_change dt,
	header .page_control dl.color_change dt { width: 84px;}
	
  .content_heading,
  .content_body,
  article section { padding: 10px 20px;}
  
	/**/
	#menu { background: repeating-linear-gradient(-45deg, #D2F2DD, #D2F2DD 8px, #CDF1D9 8px, #CDF1D9 12px);} /* グローバルメニュー背景色（スマートフォン版） */
}


/*************************************************
 レスポンシブ　640 + 20 
**************************************************/
@media screen and (min-width:0px) and (max-width:660px) {
	header .UD { bottom: 70px;}

	header h1,
	header .title { max-width: calc(320px - 70px);}

	footer .main,
	footer .other { float: none;}
	
	footer .nav { justify-content: center;}
	footer .nav li { margin: 0 0.5em 1em;}
	footer .nav li a { display: block; padding: 1em 1em;}

	footer .banner li { margin: 0 auto 1em; text-align: center;}

	footer .reread_link{ width:60px; height: 60px; bottom:60px;}
	footer .reread_link a { display: block; height:60px; text-align: left; text-indent: -1000em;}
	footer .reread_link a br { display: none;}
	footer .copyright span { text-align: center;}
	
/* 一覧ページ */
	.news dt { width: auto; padding-bottom: 0.3em}
	.news dd { padding-top: 0; padding-left: 2em;}

  
}

@media screen and (min-width:1045px) {
	html body #menu {display:flex;}
	header .page_control {display:block!important;}
	.menu_bg{display: none!important;}
}

@media screen and (-ms-high-contrast:active){
* {text-indent:0em !important;}
}

@media print{
/* 幅はコンテンツサイズに合わせて修正 */
html,body{width:1024px;margin:0;padding:0;overflow-x:hidden;} 
#TOP{min-width:1024px;width:1024px;margin:0;padding:0;overflow-x:hidden;}
body,body > .wrap{background:none;}
#fb-root{display:none;}
}