﻿@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:#61848B;}
a:hover{color:#14205F;}
a:active{color:#5D0000;}
a:hover img{opacity:.8;}
img{border:none;vertical-align:middle;}
span.hide{display: inline-block; overflow: hidden; height: 0px; width: 0px;}

#Map,#Map *,#jump{padding:0;overflow:visible;}
#jump a{position:absolute; top: 0px; width:0;height:0;overflow:auto;text-indent:-1000em; z-index: 200;}
#jump a:focus{width:12em;height:1.5em;text-indent:0;background:#FFFFFF;text-align:center;}

body{ min-width:320px;}
#TOP{ min-width:1120px; padding-bottom: 0; padding-top: 130px;/*ヘッダ分余白*/}
header .wrap,
header nav,
.contents .wrap,
.contents div.locus .wrap,
footer .wrap { width: 1120px; margin:0 auto;}

.contents article { float: left; width: calc(100% - 250px - 30px); margin-right: 30px;}
.no_nav .contents article { width: auto; float: none; margin-right: 0;}
.contents nav{ float: right; width: 250px;}

div.locus { margin-bottom: 3em; background-color: #F4F4F4; font-size: 0.8em;}
p.locus { margin-bottom: 0;}

header { position: fixed; top: 0px; left: 0px; right: 0px; margin: 0 auto; padding-top: 46px; background-color: #fff; z-index: 90;}
header .wrap { position: relative; overflow: visible;}

/* タイトル */
header h1,
header .title { position: absolute; top: 12px; left: 0px; width: 182px; height: 57px; margin: 0; padding: 0; float: left; 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 { position: absolute; top: 0px; left: 0px; right: 0px; float:right; margin:0; padding: 6px 0; background-color: #333;}
header .page_control .wrap { 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; color: #fff;}
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 #F0EFEE; border-radius: 0.3em;}
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 { background-color: #333;} /* ボタン色 */
header .page_control dl dd a:hover,
header .page_control dl dd a:focus { border-color: #FDF001;} /* ホバー色 */


/* ページコントロール - 翻訳ボタン */
header .page_control .voice,
header .page_control .language { float: left; display: block; height: 30px; margin:2px 0.5em 2px 0; padding: 0; text-align: center;}
header .page_control .voice a,
header .page_control .language a{ display: flex; justify-content: center; align-items: center; height: 100%; padding: 0 1em; font-size: 0.9em; text-decoration: none; border-radius: 0.3em;}
/**/
header .page_control .voice a,
header .page_control .language a{ color: #fff; border: 2px solid #333;} /* ボタン色 */
header .page_control .voice a:hover,
header .page_control .voice a:focus,
header .page_control .language a:hover,
header .page_control .language a:focus { border-color: #fff;} /* ホバー色 */

/* ページコントロール - 検索 */
header .page_control .search { width:380px; 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: 8em; color: #fff; font-size: 0.9em;}
header .page_control .search .search_inner { width: calc(100% - 8em); border: 2px solid #333;}
header .page_control .search input#search_txt {display: block; height: 30px; width:calc(100% - 4em); margin: 0%; padding: 0px 0.5em; line-height: 36px; background-color: #fff; border:none; float:left;}
header .page_control .search input#search_txt:focus {background-color:#FFFFFF; outline:1px solid #CCC;}
header .page_control .search input.search_bt { display: block; width: 4em; height:30px; ;margin: 0; padding:0px 0; font-weight:bold;border:none;float:left;}
header .page_control .search input#search_txt,
header .page_control .search input.search_bt { font-size: 100%;}
/**/
header .page_control .search .search_inner { border-color: #fff; 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 { color: #000; background-color: #FDF001;} /* 検索ボタン ホバー色 */

/* ハンバーガーメニュー */
p.hamburger_text { position: absolute; bottom: 0px; width: 100%; margin: 0px auto; padding: 0px; font-size: 0.6em; text-align: center;}
p.hamburger_text span {display: inline-block; overflow: hidden; width: 0px; height: 0px;}

.search_button span.icon,
.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;}
.home_button,
.search_button,
.menu_button { display: none; position: fixed; height: 44px; width: 44px; z-index: 110; border-radius: 0.3em;}
.home_button a,
.search_button a,
.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;}
.home_button span.icon,
.search_button span.icon { position: absolute; top: 4px; left: 9px; height: 26px; width: 26px; background: center center no-repeat;}
.home_button span.icon { background-image: url("../img/menu_home.png");}
.search_button span.icon {background-image: url("../img/menu_search.png");}

.search_button.active span.icon { -webkit-transform: rotate(360deg); transform: rotate(360deg);}

/**/
.home_button a,
.search_button a,
.menu_button a { background: #333333;} /* ボタン色 */
.hamburger span { background-color: #fff;} /* ハンバーガー色 */
p.hamburger_text { color: #fff;} /* 文字色 */
.home_button a:hover,
.home_button a:focus,
.search_button a:hover,
.search_button a:focus,
.menu_button a:hover,
.menu_button a:focus { background-color: #c00000;}


/* グローバルメニュー */
header nav{ padding-bottom: 0px;}
#menu { margin: 8px auto 12px; padding: 0; list-style: none; float: right;}
#menu li { float: left;}
#menu li a { position: relative; display: flex; align-items: center; justify-content: center; height: 60px; padding: 0.8em; font-size: 1.15em; text-decoration: none; transition-duration: 0.15s;}
#menu li a:focus:before,
#menu li a:hover:before { position: absolute; display: block; content: ""; bottom: 10%; left: 0.8em; right: 0.8em; height: 4px; background-color: #6A6A6A;}

/**/
header nav { background-color: transparent;} /* 帯背景色 */
#menu li a { color: #000; background-color: transparent;} /* ボタン色 */
#menu li a:hover,
#menu li a:focus { background-color: rgba(255,255,255,0.75);} /* ホバー色 */


/*---------
 CONTENTS
---------*/
.contents { clear: both;}
.contents h1 { position: relative; padding: 0.3em 0.1em; margin-left: 0px; margin-right: 0px; font-size: 2.3em; font-weight: normal;}
.contents h1:before { position: absolute; display: block; content: ""; bottom: 0px; left: 0px; right: 0px; height: 4px; background: url("../img/contents_h1_bg.png");}

.contents nav { overflow: visible;}
.contents nav ul,
.contents nav dl { padding:0;list-style:none;}
.contents nav dl { border: 1px solid #CCCCCC;}
.contents nav dl dt{ padding: 1em 0.5em; text-align: center; font-size: 1.15em; color:#FFFFFF; font-weight:bold; background:#666666;}
.contents nav dl dd{ margin:0;}
.contents nav dl dd:first-of-type a { margin-top: 0.5em;}
.contents nav dl dd:last-of-type a { margin-bottom: 0.5em;}
.contents nav dl dd a { position: relative; display: block; padding: 0.7em 0.7em 0.7em 2.4em;}
.contents nav dl dd a:before {
  position: absolute; display: block; content: ""; left: 1em; top: 0.95em; transition-duration: 0.2s;
  border-top: 0.4em solid transparent;
  border-bottom: 0.4em solid transparent;
  border-left: 0.6em solid #666666;
}
footer .nav li a:focus,
footer .nav li a:hover { text-decoration: underline;}

/* section */
article > div,
article > section{ margin-bottom:1em;}
section {}
section h2{ padding: 0.3em 0em; border-bottom: 4px solid #EEE;}
article { padding-left: 0px; padding-right: 0px;}

.file_section .file_list { margin-bottom: 0;}
.acrobat { padding: 1em; background: #EEE; border: none;}

/* footer */
footer { position: relative; padding: 1.2em 0; color: #fff; background: #000;}
footer .nav { text-align: center; font-size: 0.85em;}
footer .nav li { display: inline-block;}
footer .nav li a { position: relative; display: block; padding: 0.3em 1em 1em; color: #fff; text-decoration: none;}
footer .nav li a:focus,
footer .nav li a:hover { text-decoration: underline;}

footer dl { margin:1em 0 0 0;padding:0 0 1em 0; text-align: center;}
footer dt { margin:0;padding:0; font-size: 1.1em; margin-bottom: 1em;}
footer dd { margin:0;padding:0; font-size: 0.85em;}

footer .copyright { clear: both; margin: 0; padding: 1em; text-align: center; font-size: 0.8em;}
footer .copyright span { display: block; width: 1120px; margin: 0 auto;}

footer .reread_link{ width:60px; position:fixed; bottom: 10px; right:0; z-index: 80;}
footer .reread_link a{ position: relative;display:flex; justify-content: center; align-items: flex-end; height:60px; padding-bottom: 0.6em; color: #000; font-size: 0.85em; font-weight: bold; text-decoration: none; background-color: rgba(255,255,255,0.8); border: 3px solid #000; border-radius: 50%; overflow:hidden;}
footer .reread_link a:focus,
footer .reread_link a:hover { background-color: rgba(255,255,255,1);}
footer .reread_link a:before {
  position: absolute; display: block; content: ""; top: 0.8em; left: 50%; margin-left: -0.5em; transition-duration: 0.15s;
  border-bottom: 0.85em solid #000;
  border-left: 0.5em solid transparent;
  border-right: 0.5em solid transparent;
}
footer .reread_link a:focus:before,
footer .reread_link a:hover:before { top: 0.4em;}

/* テキストの縁どり */
.top_section_03 h2,
.top_section_03 p
{text-shadow: #fff 2px 0px,  #fff -2px 0px, #fff 0px -2px, #fff 0px 2px, #fff 2px 2px , #fff -2px 2px, #fff 2px -2px, #fff -2px -2px, #fff 1px 2px,  #fff -1px 2px, #fff 1px -2px, #fff -1px -2px, #fff 2px 1px,  #fff -2px 1px, #fff 2px -1px, #fff -2px -1px;}

.aaaaaa
{text-shadow: #000 2px 0px,  #000 -2px 0px, #000 0px -2px, #000 0px 2px, #000 2px 2px , #000 -2px 2px, #000 2px -2px, #000 -2px -2px, #000 1px 2px,  #000 -1px 2px, #000 1px -2px, #000 -1px -2px, #000 2px 1px,  #000 -2px 1px, #000 2px -1px, #000 -2px -1px;}


/**/
.menu_bg { position: fixed; bottom: 0px; left: 0px; right: 0px; height: 80px; background-color: #333; z-index: 80;}

/*************************************************
 CMS用テンプレート  .txtbox内部
**************************************************/

/* 見出し */
.txtbox h2{ margin:0 0 1em 0; padding: 0.4em 0.5em; font-size: 1.5em; background-color: #eee;}
.txtbox h3{ margin:0 0 1em 0; padding: 0.4em 0em; font-size: 1.4em; border-bottom: 3px solid #eee;}
.txtbox h4{ position: relative; margin:0 0 1em 0; padding: 0em 0.5em 0em 0.8em; font-size: 1.2em;}
.txtbox h4:before{ position: absolute; display: block; content: ""; top: 0.1em; bottom: 0.15em; left: 0px; width: 0.4em; background-color: #333;}
.txtbox h5{ margin:0 0 1em 0; padding: 0.5em 0em; font-size: 1.1em; border-bottom: 1px dotted #949494;}
.txtbox h6{ margin:0 0 1em 0; padding: 0.3em 0.5em; font-size: 1em;}

.txtbox h2 { padding-top: calc(130px + 1em); margin-top: -130px; background: linear-gradient( to top, #eee, #eee 2.3em, transparent 2.3em);}
.txtbox h2:first-of-type { padding-top: 0.4em; margin-top: 0;} 

/* list */
.txtbox ul > li:before,
article section.link_section li:before { width: 0.5em; height: 0.5em; top: 0.5em; left: 10px; border-radius:50%;} /* リストの色・形 */

.txtbox ul > li:before { background: #000066;}
article section.link_section li:before { background:#008842;}

/* table */
.txtbox table th,
.txtbox table td{border:1px solid #B7B7B7;} /* テーブル線の色 */
.txtbox table th{background: #F4F4F4;} /* THの色 */

/*************************************************
 レスポンシブ　1120 + 20 
**************************************************/
@media screen and (min-width:0px) and (max-width:1140px) {
	#TOP,
	textarea,
  header nav,
	header .wrap,
	footer .wrap,
	header .nav,
	.locus,
	.contents,
	.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,
	article > section,
	p.locus,
	.acrobat,
	.contents nav,
	.contents article,
	.no_nav .contents article,
	footer .wrap {margin-left:2%;margin-right:2%;} 
	footer .copyright { padding: 20px 0;}
  
  #TOP { padding-top: 0;}

	header { position: relative;}
	header .page_control { display: none; position: fixed; top: auto; bottom: 80px; left: 0px; right: 0px; margin-top: 0; float: none; z-index: 110;}
	header nav { position:fixed; bottom: 80px; left:0px; right:0; max-height:100%; padding:0; background-color: transparent; overflow:visible; z-index:105;}
  
  header .page_control .voice,
  header .page_control .language { float: none;}
  
  .home_button,
  .search_button,  
	.menu_button { display:block; top: inherit; bottom: 30px; padding-bottom: 0; transition-duration: 0.3s;}
  .home_button { left: 20%; margin-left: -22px;}
  .search_button { left: 80%; margin-left: -22px;}
  .menu_button { left: 50%; margin-left: -22px;}
  .search_button.active,
	.menu_button.active { box-shadow: 0px 0px 0px 2px rgba(255,255,255,0.9);}
	#menu { height:auto; width: auto; margin: 0 auto;overflow:visible ; display:none; float:none; border-top: 3px solid #333;}
	#menu li,
	#menu.menu1 li,
	#menu.menu2 li,
	#menu.menu3 li,
	#menu.menu4 li,
	#menu.menu5 li { float: none; width: auto; border-top: 1px solid #333;}
	#menu li a { height: auto; padding: 0.6em;}
	#menu li:first-of-type a:after { display: none;}
  
  #menu li a:hover:before,
  #menu li a:focus:before { bottom: 0.2em; left: 50%; right: inherit; width: 8.2em; margin-left: -4.1em;}

	header .title, header h1,
	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 .language,
	header .page_control .voice,
	header .page_control dl.textsize_change,
	header .page_control dl.color_change { float: none; width: 200px;}
	header .page_control .language,
	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;}
	
  header { padding-top: 0;}
  header .UD { margin-bottom: 8px;}
	header h1,
  header .title { margin: 10px auto 5px; height: auto; width: 182px;}
	header .title a,
  header h1 a { width: 75%; margin: 0 auto;}

  header .page_control .search label.search_txt { width: 7em;}
  header .page_control .search .search_inner { width: calc(100% - 7em);}
  
  .txtbox h2,
  .txtbox h2:first-of-type { padding-top: 0.4em; margin-top: 0; background: #eee,} 
  
	/**/
	#menu { background-color: #fff;} /* グローバルメニュー背景色（スマートフォン版） */


header .page_control .search input#search_txt {display: block; height: 30px; width:calc(100% - 4em); margin: 0%; padding: 0px 0.5em; line-height: 36px; background-color: #fff; border:none; float:left;}
}

@media screen and (min-width:0px) and (max-width:1200px) {
  footer .qr { margin-right: 70px;}
}


/*************************************************
 レスポンシブ　640 + 20 
**************************************************/
@media screen and (min-width:0px) and (max-width:660px) {
  
  br.mb { display: none;}

  footer { padding-top: 1em;}
  footer .nav {}
  footer .nav li { display: block; float: none; padding: 0.75em 0;}
  footer .nav li a { display: inline; text-align: center;}
  footer .nav li a:before { display: none;}
  footer .qr { clear: both; float: none; width: 296px; margin-left: auto; margin-right: auto;}
  
  footer .reread_link{ width:60px; bottom:60px;}
  footer .reread_link a { height:60px; background-size: contain;}
  footer .copyright { padding: 40px 0;}
  footer .copyright span { text-align: center;}
  
  footer dd span { display: block;}
  
}

@media screen and (min-width:1141px) {
	html body #menu,
	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:1120px;margin:0;padding:0;overflow-x:hidden;} 
#TOP{min-width:1120px;width:1120px;margin:0;padding:0;overflow-x:hidden;}
body,body > .wrap{background:none;}
#fb-root{display:none;}
}