/*-------------------------------------------------
  General definition 2017
-------------------------------------------------*/
* {
	font-family: "メイリオ","Meiryo","ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro","ＭＳ Ｐゴシック", "MS P Gothic","Osaka", Verdana, Arial, Helvetica, sans-serif;
	margin: 0;
	padding: 0;
}
html {
	font-size: 100%;
}
body {
	width: 100%;
	background-color: #FFFAFA;
}
address {
	font-style: normal;
}
blockquote {
	line-height: 1.5;
	margin: 0.5em 0;
	padding: 0.5em;
	border: 1px solid #999999;
	background-color: #ffffff;
}
blockquote.ui-state-highlight {
	color: #6e6e6e;
}
blockquote.ui-state-highlight:before {
	font-family: 'Font Awesome 5 Free';
	font-weight: 900;
	content: '\f10d';	/* quote left */
	margin-right: 0.6rem;
}
blockquote.ui-state-highlight:after {
	font-family: 'Font Awesome 5 Free';
	font-weight: 900;
	content: '\f10e';	/* quote right */
	margin-left: 0.6rem;
}
img {
	border: 0;
	vertical-align: bottom;
}
img:not(.canvas > img) {
	max-width: 100%;
	height: auto;
	width: auto;
}
strong {
	letter-spacing : 1px;
}
b {
	color: #3d3d3d;
	white-space: nowrap;	/* ex. mobile */
}
/* Form Factor */
form p {
	text-align: left;
	line-height: 1.5;
	margin-bottom: 1em;
}
label {
	color: #0070a3;
	font-weight: 600;
}
input[type=text],
button {
	vertical-align: middle;
}
input[type=text],
textarea {
	font-size: 0.9em;
}
input[type=text],
textarea {
	padding: 3px;
	border: 1px solid #999999;
}
textarea {
	height: 6rem !important;
}
select:focus {
	border: 1px solid #999999;
	background-color: #bbffff !important;
	outline: none;
}
select:focus {
	outline: 0;
}
select:-moz-focusring { 
	color: transparent; 
	text-shadow: 0 0 0 #000000;
}
button {
	padding: 2px 6px 0 6px;
	border: 1px solid #999999;
}
button:focus {
	background-color: #bbffff !important;
	outline: none;
}
button::-moz-focus-inner {
	border-width: 0px;
}
/* Links */
a:link,
a:visited {
	color: #1C6FB1;
	font-weight: 600;
	text-decoration: none;
	outline: none;
}
a:hover,
a:active {
	color: #ff0000;
	outline: none;
}
a:hover {
	transition: 1.0s;
}

/* Headings */
h1,
h4,
h5,
h6 {
	color: #2e83ff;
	font-weight: normal;
}
h2,
h3 {
	color: #000000;
	font-weight: normal;
}
h2 {
	text-align: center;
	font-weight: 900;
	padding: 9px;
	clear: both;
	text-shadow: 0 8px 5px rgba(50, 50, 50, .25);
}
h2 span:before {
	content: "\A";
	white-space: pre ;
}
h2 .fab,
h2 .far,
h2 .fas {
	font-size: 3rem;
}
h3 {
	font-size: 1.15em;
	text-align: center;
}
h3 span:before {
	content: "\A";
	white-space: pre;
}
h4 {
	font-size: 1em;
}
h5 {
	font-size: 1em;
	counter-increment: number;
}
h5:before {
 content: counter(number, decimal-leading-zero)'. ';
}
/* Lists */
ul {
	list-style: none;
	float: none;
}
ol {
	margin-left: 2em;
	float: none;
	list-style-type: decimal-leading-zero;
}
dt {
	color: #191970;
	font-weight: 600;
}

/* Table Factor */
table {
	width: 100%;
	margin: 3px 0 24px 0;
	border-collapse: separate;
	border-top: 1px solid #999999;
	border-left: 1px solid #999999;
	border-spacing: 0;
}
th, td {
	padding: 6px;
	border-right: 1px solid #999999;
	border-bottom: 1px solid #999999;
}
thead th {
	color: #2e83ff;
	text-align: center;
	vertical-align: middle;
	background-color: #B0E2FF;
}
tbody th {
	color: #191970;
	text-align: left;
	vertical-align: top;
	background-color: #F0F8FF;
}
td {
	vertical-align: top;
}
td th,
td td {
	font-size: 100%;
}
caption {
	font-size: 0.85em;	/* ex. tablet, mobile */
	caption-side: top;
	text-align: left;
}
/*-------------------------------------------------
  Header
-------------------------------------------------*/
#header {
	width: 100%;
	background-color: transparent;
	border-bottom: 1px solid transparent;
}
#catch {
	width: 100%;
	margin-bottom: 1rem;
/*	position: relative;*/
}
#catch img {
	max-width: 100%;
}
/*
#slideoverlay {
	position: absolute;
	left: 6px;
	z-index: 100;
}
*/
#logo {
	margin: 0.25em 0 0.5em 0.5em;	/* ex. mobile */
	float: left;	/* ex. mobile */
}
#logo img {
	height: 28px;	/* ex. tablet, mobile */
}
#navigation {
	margin-top: 0.3em;	/* ex. tablet, mobile */
	margin-left: 1.5em;	/* ex. mobile */
	float: left;	/* ex. mobile */
}
#navigation ul {
	margin: 0;	/* ex. mobile */
}
#navigation li {
	text-align: center;	/* ex. mobile */
	vertical-align: top;
	display: inline;
	margin: 0 0.5em;	/* ex. tablet */
}
#navigation li:hover {
	border-bottom: 3px dotted #ff0000;
}
#navigation li a {
	display: inline-block;
	padding: 6px 0;
}
#navigation li a:link,
#navigation li a:visited {
	color: #1C6FB1;
}
#navigation li a:hover {
	color: #ff0000;
}
#Home #navigation {
	text-align: center;
	width: 100%;
	margin: 0 auto;
	float: none;
	clear: both;
}
#Home #navigation li a {
	width: 6.5em;	/* ex. mobile */
}
#Home #navigation li .fab,
#Home #navigation li .far,
#Home #navigation li .fas {
	font-size: 3rem;	/* ex. mobile */
}
#Home #navigation li span:before {
	content: "\A";
	white-space: pre;
}
body#cat_2   #navigation li.cat_2 a,
body#cat_3   #navigation li.cat_3 a,
body#cat_4   #navigation li.cat_4 a,
body#cat_5   #navigation li.cat_5 a,
body#blog    #navigation li.blog  a,
body#inquiry #navigation li.inquiry a {
	color: #bfbfbf;
}
#toolbar {
	margin: 0.5em 0.5em 0.5em 0;	/* ex. mobile */
	float: right;	/* ex. mobile */
}
.formfield {
	margin-right: 0;
	width: 10em !important;	/* ex. tablet, mobile */
	height: 1.5em;
}
.formbutton {
	margin-left: -5px;
}
button .fa-search {
	height: 1.45em;	/* ex. pcwide */
}
.inquirybutton {
	font-size: 0.9em;
	padding: 6px 12px;
}
#slider {
	clear: both;
}
#slider img {
	width: 100vw;
}

/*-------------------------------------------------
  Content wrappers
-------------------------------------------------*/
#mainwrapper {
	font-size: 120%;	/* ex. pcwide, tablet, mobile */
	margin: 0 auto;
	border: 1px solid transparent;
}
#wrapper {
	margin: 0 10em;	/* ex. tablet, mobile */
}
/*-------------------------------------------------
  Item styles
-------------------------------------------------*/
.content {
	width: 100%;
	margin-bottom: 2em;
	border: 1px solid transparent;
}
.contentheader {
	margin-top: 2em;
}
.contentheader h3 {
	font-weight: 900;
	margin-top: 1.5em;
	margin-bottom: 0.5em;
	border-bottom: 1px solid #191970;
}
.contentbody {
	font-size: 100%;
	line-height: 2;
	margin-bottom: 0.5em;
	word-break: normal;
}
.contentbody h4 {
	font-weight: 900;
	margin-top: 2em;
	clear: both;
}
.contentbody h4:before {
	font-family: 'Font Awesome 5 Free';
	content: '\f192';
	margin-right: 3px;
}
.contentbody h4:first-child {
	margin-top: 0;
}
.contentbody ul li,
.contentbody ol li {
	margin-left: 2em;	/* ex. tablet, mobile */
}
.contentbody hr {
	visibility: hidden;
	margin: 0;
	width: 100%;
	clear: both;
}
.contentbody input[type=text],
.contentbody textarea {
	width: 99% !important;
}

.contentfooter {
	border-top: 1px dashed #999999;
}
.contentfooter p {
	font-size: 0.85em;
	margin-top: 0.25em;
}
/*-------------------------------------------------
  Footer
-------------------------------------------------*/
#footer {
	text-align: center;
	margin: 0 auto;
	width: 100%;
	bottom: 0;
}
#copyright {
	margin: 6px 0;
}
#copyright h6 a {
	color: #2e83ff;
	font-weight: normal;
	letter-spacing: 1px;
}
#copyright h6 a:hover,
#copyright h6 a:active {
	color: #ff0000;
}
/*-------------------------------------------------
  Miscelaneous
-------------------------------------------------*/
.clearfix:after {
	color: transparent;
	content: "";
	display: block;
	height: 0;
	clear: both;
	visibility: hidden;
}
* html .clearfix {
	height: 1%;
}
.tile {
	margin: 0 6px 6px 6px;
	width: 22%;	/* ex. tablet, mobile */
	border: 1px solid #999999;
	position: relative;
	display: inline-block;
}
.tile h3 {
	font-size: 0.85em;	/* ex. mobile */
	font-weight: 600;	/* ex. mobile */
}
.tile a h3 {
	color: #ffffff;
	padding-top: 3px;
	padding-bottom: 3px;
	width: 100%;
	display: inline-block;
}
.tile a:hover h3,
.tile a:active h3 {
	color: #ff0000;
}
.tile a:hover h3 {
	transition: 1.0s;
}
.tile:before {
	display: block;
	content: "";
	padding-top: 100%;
}
.tilebody {
	width: 100%;
	height: 100%;
	background-color: #ffffff;
	overflow: hidden;
	position: absolute;
	top: 0;
	left: 0;
}
.tilebody img {
	max-width: 145% !important;
	width: 145% !important;
	height: 100% !important;
	position: absolute;
	left: -20%
}
.tilebody img:hover {
	opacity: 0.5;
}
.tile:last-child .tilebody:before {
	font-size: 5rem;	/* ex. mobile */
	font-family: 'Font Awesome 5 Free';
	font-weight: 900;
	content: '\f02d';
	white-space: pre;
}
.tilefooter {
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	background-color: rgba(0,0,0,0.6);
	overflow: hidden;
	z-index: 200;
	border: none;
}
.canvas {
	border: 1px solid #999999;
}
p.pnavi {
	font-size: 0.9em;
	text-align: center;
	margin-bottom: 1em;
}
.hidden {
	display: none;
}
.clearing {
	font-size: 1px;
	clear: both;
	height: 0;
}
.migi {
	text-align: right;
}
.hidari {
	text-align: left !important;
}
.chuo {
	text-align: center;
}
.leftbox, .middlebox, .rightbox {
	margin-top: 3px;
	margin-bottom: 3px;
}
.leftbox {
	float: left;
	margin-right: 12px;
	max-width: 40%;	/* ex. mobile */
}
.middlebox {
	float: left;
	margin-right: 2px;
	margin-left: 2px;
}
.rightbox {
	float: right;
	margin-left: 12px;	/* ex. mobile */
	max-width: 35%;	/* ex. mobile */
}
.rightbox img {
	margin-bottom: 2px;
	padding: 0;
	border: 1px solid #999999;
	width: 100%;
	height: auto;
}
.outsetphoto {
	max-width: 84%;
	float: left;
}
.outsetphoto img {
	margin-bottom: 2px;
	padding: 0;
	border: 1px solid #999999;
	width: 100%;
}
.additionalphoto {
	text-align: center;
	width: 14%;
	height: 100%;
	float: right;
	margin: 0;
}
.additionalphoto img {
	margin-bottom: 6px;
	width: 100%;
	border: 1px solid #999999;
}
.notice {
	margin: 0.5em 0;
	padding: 0.5em;
	border: 1px solid #999999;
	background-color: #fffaf0;
}
.notice > div {
	text-align: left;
	margin: 0 auto;
	display: table;
}
.underline {
	text-decoration: underline;
}
dl.pseudotable {
	line-height: 150%;
	margin-top: 6px;
	margin-right: 0;
	margin-left: 2em;	/* ex. tablet, mobile */
}
.pseudotable dt {
	margin-left: 0;
	padding-bottom: 0.5em;	/* ex. mobile */
	width: 7em;
}
.pseudotable dt a {
	background: white;
}
dl.pseudotable dl.pseudotable dt {
	font-weight: normal;
}
.pseudotable dd {
	margin: -2.77em 0 3px 0;	/* ex. mobile */
	padding-top: 0.7em;	/* ex. mobile */
	padding-bottom: 0.5em;
	padding-left: 7.5em;	/* ex. mobile */
	word-break: normal;
}
dl.pseudotable dl.pseudotable {
	font-size: 100%;
	margin-top: 0;
	margin-bottom: 0;
	margin-left: 0;
}
.pseudotable ul li,
.pseudotable ol li {
	margin-left: 0 !important;
	line-height: 1.8;
}
dl.pseudotablewide {
	line-height: 150%;
	margin-top: 6px;
	margin-right: 0;
	margin-left: 2em;	/* ex. tablet, mobile */
}
.pseudotablewide dt {
	margin-left: 0;
	padding-bottom: 0.5em;	/* ex. mobile */
	width: 10em;
}
.pseudotablewide dt a {
	background: white;
}
dl.pseudotablewide dl.pseudotable dt {
	font-weight: normal;
}
.pseudotablewide dd {
	margin: -2.77em 0 3px 0;	/* ex. mobile */
	padding-top: 0.7em;	/* ex. mobile */
	padding-bottom: 0.5em;
	padding-left: 11em;	/* ex. mobile */
	word-break: normal;
}
dl.pseudotablewide dl.pseudotable {
	font-size: 100%;
	margin-top: 0;
	margin-bottom: 0;
	margin-left: 0;
}
.pseudotablewide ul li,
.pseudotablewide ol li {
	margin-left: 0 !important;
	line-height: 1.8;
}
dl.pseudotablenarrow {
	line-height: 150%;
	margin-top: 6px;
	margin-right: 0;
	margin-left: 2em;	/* ex. tablet, mobile */
}
.pseudotablenarrow dt {
	margin-left: 0;
	padding-bottom: 0.5em;
	width: 5em;
}
.pseudotablenarrow dt a {
	background: white;
}
dl.pseudotablenarrow dl.pseudotable dt,
dl.pseudotable dl.pseudotablenarrow dt {
	font-weight: normal;
}
.pseudotablenarrow dd {
	margin: -2.77em 0 3px 0;	/* ex. mobile */
	padding-top: 0.7em;	/* ex. mobile */
	padding-bottom: 0.5em;
	padding-left: 5em;	/* ex. mobile */
	word-break: normal;
}
dl.pseudotable dl.pseudotablenarrow,
dl.pseudotablenarrow dl.pseudotable {
	font-size: 100%;
	margin-top: 0;
	margin-bottom: 0;
	margin-left: 0;
}
.pseudotablenarrow ul li,
.pseudotablenarrow ol li {
	margin-left: 0 !important;
	line-height: 1.8;
}
.notice dl.pseudotable,
.notice dl.pseudotablenarrow {
	margin-left: 0;
}
ul.disc {
	list-style: disc;
	margin-left: 16px;
	float: none;
}
ul.square {
	list-style: square;
	margin-bottom: 1em;
	margin-left: 16px;
	float: none;
}
.bottommarginless {
	margin-bottom: 0;
	padding-bottom: 0;
}
.codebox {
	line-height: 0.75;
	background-color: black;
	margin: 0 0 0.5em 0;
	padding: 0.75em 0.5em;
}
pre {
	overflow: visible;
	white-space: pre-wrap;
	word-wrap: break-word;
}
code {
	color: #99FF00;
	font-size: 0.85em;
	font-family: courier, monospace;
}
.touhaba {
	font-family: monospace;
}
.lead {
	font-weight: 600;
	text-align: center;	/* ex. mobile */
	margin-bottom: 1em;
	padding: 0.5em;
}
#Home .lead {
	margin-top: 1em;
}
.nospam {
	color: transparent;
	font-size: 1px;
}
.highlight {
	font-weight: 600;
	background: #ffff00;
}
.current {
	background: #bbffff;
}
.pageswitch {
	text-align: center;
	font-size: 0.56em;
	margin: 1em auto 2em auto;
	line-height: 2.5;
}
.pageswitch strong {
	color: #ffffff;
	border: 1px solid #bfbfbf;
	margin: 0;
	padding: 3px 9px;
	background-color: #bfbfbf;
}
.pageswitch a {
	color: #1C6FB1;
	border: 1px solid #1C6FB1;
	padding: 3px 9px;
}
.pageswitch a:hover,
.pageswitch a:active {
	color: #ff0000;
	border: 1px solid #ff0000;
}
.npsb_prevnolink,
.npsb_nextnolink {
	color: #bfbfbf;
	border: 1px solid #bfbfbf;
	padding: 3px 9px;
}
.fa-hand-point-right {
	margin-right: 9px;
}
.fa-external-link-alt {
	margin-right: 3px;
}
#news {
	text-align: left;
}
#news li {
	color: #000000;
	font-weight: normal;
	line-height: 1.3;
	margin-bottom: 0.5em;
	width: 100%;
	height: 2.6em;
	overflow: hidden;
	white-space: nowrap;
	text-overflow: ellipsis;
}
#news li:last-child {
	margin-bottom: 0;
}
#news .date {
	color: #6e6e6e;
}
#news .newsdesc {
	margin: 0 0 0.5em 1.5em;
	width: 97%;	/* ex. mobile */
	overflow: hidden;
	white-space: nowrap;
	text-overflow: ellipsis;
	display: inline-block;
}
li.catid_1:before {
	color: #2e83ff;
	font-family: 'Font Awesome 5 Free';
	font-weight: 900;	/* for solid icon */
	content: '\f0a1';	/* bullhorn */
	margin-right: 0.3rem;
}
li.catid_2:before {
	color: #2e83ff;
	font-family: 'Font Awesome 5 Free';
	font-weight: 900;	/* for solid icon */
	content: '\f05a';	/* info-circle */
	margin-right: 0.3rem;
}
li.catid_3:before {
	color: #2e83ff;
	font-family: 'Font Awesome 5 Free';
	font-weight: normal;	/* for solid icon */
	content: '\f1cd';	/* life-ring */
	margin-right: 0.3rem;
}
li.catid_4:before {
	color: #2e83ff;
	font-family: 'Font Awesome 5 Free';
	font-weight: 900;	/* for solid icon */
	content: '\f019';	/* download */
	margin-right: 0.3rem;
}
li.catid_5:before {
	color: #2e83ff;
	font-family: 'Font Awesome 5 Free';
	font-weight: 900;	/* for solid icon */
	content: '\f0ae';	/* task */
	margin-right: 0.3rem;
}
li.catid_6:before,
li.catid_7:before,
li.catid_8:before {
	color: #2e83ff;
	font-family: 'Font Awesome 5 Free';
	font-weight: 900;	/* for solid icon */
	content: '\f044';	/* edit */
	margin-right: 0.3rem;
}
/* Colorbox */
#cboxTitle,
#cboxCurrent {
	color: #000000;
	font-size: 0.9em;
	font-weight: normal;
}
#cboxPrevious,
#cboxNext,
#cboxClose {
	bottom: -26px;
}
/* Blog a tag */
#blog .contentbody a[href]:after {
	font-family: 'Font Awesome 5 Free';
	font-weight: 900;
	content: '\f35d';	/* external-link-alt */
	margin-right: 0.3rem;
	margin-left: 0.3rem;
}
#blog .contentbody a[href][title]:after {
	font-family: 'Font Awesome 5 Free';
	font-weight: normal;
	content: '\f0a4';	/* hand-point-right */
	margin-left: 0.3rem;
}
#blog .contentbody a.cbg[href][title]:after {
	content: '';	/* none */
	margin-left: 0;
}
/* Start of detail sentence */
.piston {
	animation: piston 0.5s linear 6;
}
@keyframes piston {
	0%		{transform: translate(0,0); color: #ff0000;}
	12.5%	{transform: translate(1px,0); color: #ff0000;}
	25%		{transform: translate(0,0); color: #ff0000;}
	37.5%	{transform: translate(-1px,0); color: #ff0000;}
	50%		{transform: translate(0,0); color: #ff0000;}
	62.5%	{transform: translate(1px,0); color: #ff0000;}
	75%		{transform: translate(0,0); color: #ff0000;}
	87.5%	{transform: translate(-1px,0); color: #ff0000;}
	100%	{transform: translate(0,0); color: #ff0000;}
}