html {font-size: 62.5%;}
body {
  font-family: 'Noto Sans jp', '游ゴシック Medium', '游ゴシック体', 'Yu Gothic Medium', YuGothic, 'ヒラギノ角ゴ ProN', 'Hiragino Kaku Gothic ProN', 'メイリオ', Meiryo, 'ＭＳ Ｐゴシック', 'MS PGothic', sans-serif;
  -moz-text-size-adjust: none;/* sp用 */
  -ms-text-size-adjust: 100%;/* sp用 */
  -webkit-text-size-adjust: 100%;/* sp用 */
  text-size-adjust: 100%;/* sp用 */
  background: #fff;
  color: #000;
  font-size: 18px;
  line-height: 180%;
  text-align: justify;
  text-justify: inter-ideograph;
}
.wrap {overflow: hidden;}/* sp右余白対策 */
#contents {
  min-width:100vw;/* sp用 */
  min-height: 100vh;/* sp用 */
  width: 100%;
}
/* --------------------------------
 * header
 * -------------------------------- */
#header {
	height: 125px;
    width: 100%;
    padding-top: 25px;
}
/* ▼▼▼menu */
.hnav {
	height: 60px;
    width: 100%;
    text-align:center;
    background-color: #0f7dff;
}
.hnav li {
    color: #fff;
    font-size: 0.8em;
    line-height: 140%;
    text-align:center;
    width: 150px;
    display: inline-block;
    border-left: solid #fff 1px;
    margin: 0 0 0 7px;
}
.hnav li a {
    display: block;
    width: 100%;
    padding: 9px 4px;
}
.hnav li.start {border-left: none;}
.hnav a:link {color: #fff;}
.hnav a:visited {color: #fff;}
.hnav a:hover {color: #fff; background-color: #7bb8ff;}
.hnav a:active {color: #fff;}
/* ▲▲▲menu */

/* --------------------------------
 * fix header
 * -------------------------------- */
.fix-header {
	background-color:#0f7dff;
	height: 70px;
	top: -40px;/* 隠し */
	width: 100%;
	margin:0 auto;
	color: #fff;
	position: fixed;
	opacity:0;/* 最初 */
	z-index: 1000;
    box-shadow: 0px 3px 4px rgba(26, 26, 26, 0.4);
	}
.fix-header-l {
    width: 300px;
    display: inline-block;
}
.fix-header-r {
    width: 760px;
    display: inline-block;
    vertical-align: top;
    text-align:right;
    margin: 15px 0 0;
}
/* ▼▼▼menu */
.fhnav li {
    color: #fff;
    font-size: 0.8em;
    text-align:center;
    width: 108px;
    display: inline-block;
    border-left: solid #7bb8ff 1px;
    margin: 0 0 0 2px;
}
.fhnav li a {
    display: block;
    width: 100%;
    padding: 5px 1px;
}
.fhnav li.start {border-left: none;}
.fhnav a:link {color: #fff;}
.fhnav a:visited {color: #fff;}
.fhnav a:hover {color: #fff; background-color: #7bb8ff;}
.fhnav a:active {color: #fff;}
/* ▲▲▲menu */

/* link余白 */
#mn01 {margin-top:-65px; padding-top:105px;}
#mn02 {margin-top:-65px; padding-top:105px;}
#mn03 {margin-top:-65px; padding-top:105px;}
#mn04 {margin-top:-65px; padding-top:105px;}
#mn05 {margin-top:-65px; padding-top:105px;}

/* --------------------------------
 * main
 * -------------------------------- */
#main {width: 100%;}
/* --------------------------------
 * top
 * -------------------------------- */
#top {
    background-image: url(../images/bg_top.jpg);
    background-color: #fff;
    background-size:100% auto;
    background-repeat: no-repeat;
    height: 460px;
    width: 100%;
    padding-top: 250px;
    font-family: "Sawarabi Mincho";
}
.topbox {
    color: #fff;
    background-color: rgba( 0, 14, 112, 0.2 );
    font-size: 1.4em;
    line-height: 170%;
    text-align: center;
    margin:  0 auto;
    padding: 22px;
    height: 80px;
    width: 430px;
    border: solid #fff 1px;
}
.topttl {
    color: #fff;
    font-size: 2.2em;
    line-height: 160%;
    text-align: center;
    padding: 80px;
    }
/* --------------------------------
 * 00 News 通常非表示
 * -------------------------------- */
#news {
    color: #fff;
    margin: 0 auto;
    padding: 20px;
    width: 100%;
    background-color: #0f7dff;
}
.nbox {
    text-align: left;
    margin: 0 auto;
    padding: 10px 15px;
    width: 800px;
    border: solid #fff 1px;
}
/* --------------------------------
 * 01-05
 * -------------------------------- */
#greeting {
	width: 100%;
    padding-bottom: 80px;
}
.products-bg {background-color: #0f7d; width: 100%;}/* つなぎ目余白対策 */
#products01 {
 	color: #fff;
	width: 100%;
    padding-bottom: 10px;
    background-image: url(../images/bg_products01.jpg);
    background-size:100% auto;
    background-repeat: no-repeat;
    background-position:top;
	background-color: #0f7dff;
}
.neon{/* [左右][上下][ぼかし][影の色] */
	text-shadow: 0px 0px 5px #7bb8ff, 
				 0px 0px 10px #7bb8ff, 
				 0px 0px 0px #7bb8ff,	
				 0px 0px 0px #7bb8ff;
}
.pbox {
   width: 390px;
   height: 415px;
   background-color: rgba( 0, 14, 112, 0.4 );
   border-radius: 6px;
   margin: 5px;
   padding: 20px 25px;
   display: inline-block;
   vertical-align: top;
}
#products02 {
 	color: #fff;
	width: 100%;
	padding: 60px 0 80px;
    background-image: url(../images/bg_products02.jpg);
    background-size:100% auto;
    background-repeat: no-repeat;
    background-position:bottom;
	background-color: #0f7dff;
}
#company {
 	color: #000;
	width: 100%;
	padding-bottom: 80px;
    background-image: url(../images/bg_company.jpg);
    background-size:100% auto;
    background-repeat: no-repeat;
    background-position:top;
	background-color: #eee;
}
.ibox {
    text-align: left;
    margin: 30px auto;
    padding: 40px 65px;
    width: 690px;
	border-radius: 6px;
    border: solid #ccc 1px;
    font-size: 0.9em;
    line-height: 165%;
	background-color: #fff;
	text-align: justify;
}
img.ill {
   float: left;
   margin: 0px 20px 20px 0px;
}
#access {
    color: #000;
	width: 100%;
    padding-bottom: 80px;
    background-image: url(../images/bg_access.jpg);
    background-size:100% auto;
    background-repeat: no-repeat;
    background-position:bottom;
}
.abox {
   width: 445px;
   height: 100px;
   padding: 20px 0 0;
   display: inline-block;
   vertical-align: top;
}
#contact {
 	color: #fff;
	width: 100%;
    padding-bottom: 120px;
	background-color: #0f7dff;
}
.cbox {
    text-align: left;
    margin: 30px auto;
    padding: 10px 15px;
    width: 600px;
    border: solid #fff 1px;
    font-size: 0.9em;
    line-height: 160%;
}
/* --------------------------------
 * h
 * -------------------------------- */
h1{
   font-size: 1.4em;
   font-weight: 700;
   line-height: 160%;
   margin: 0;/* link余白で設定 */
   padding: 0;/* link余白で設定 */
   width: 100%;
   height: 160px;
   display: inline-block;
}
h1 span {
  display: block;
  font-size: 0.6em;
  font-weight: 100;
  letter-spacing:0.1em;
}
.bdttl {display: flex; align-items: center; justify-content: center;}
.bdttl:before,
.bdttl:after {
  border-top: 1px solid;
  content: "";
  flex-grow: 0.05;/* wide */
  width:5em;
}
.bdttl:before {margin-right: 1rem;}
.bdttl:after {margin-left: 1rem;}
h2 {
    position: relative;
    line-height: 1.2;
    color: #fff;
    font-size: 1.3em;
    font-weight: normal;
    padding:0.25em 1em;
    display: inline-block;
    top:0;
	margin: 0 0 15px 0;
    height: 55px;
    width: 88%;
}
h2:before,h2:after{
	position: absolute;
	top: 0;
	content: '';
	width: 8px;
	height: 100%;
	display: inline-block;
}
h2:before{
    border-left: solid 1px #fff;
    border-top: solid 1px #fff;
    border-bottom: solid 1px #fff;
    left: 0;
}
h2:after{
    content: '';
    border-top: solid 1px #fff;
    border-right: solid 1px #fff;
    border-bottom: solid 1px #fff;
    right: 0;
}
h3 {
    font-size: 1.2em;
    font-style: normal;
    margin: 0 0 15px;
    padding: 0 0 10px;
    line-height: 140%;
    border-bottom: solid 1px #fff;
    font-weight:600;
}
h3:before {
  font-family: "Font Awesome 5 Free";
  content: "\f14a";
  padding-right: 7px;
  color: #fff;
}
h4 {
    font-size: 1.1em;
    font-style: normal;
    font-weight: normal;
    margin: 0 0 15px;
    padding: 0 0 10px;
    line-height: 140%;
    border-bottom: solid 1px #000;
    font-weight:700;
}
h5 {
    font-size: 1.2em;
    font-style: normal;
    font-weight: normal;
    margin: 0 0 25px;
    padding: 0 0 7px;
    line-height: 140%;
    border-bottom: solid 1px #ccc;
	color: #666;
}
h5:before {
  font-family: "Font Awesome 5 Free";
  content: "\f27a";
  padding-right: 7px;
  color: #666;
}

/* --------------------------------
 * footer
 * -------------------------------- */
#footer {
	color: #fff;
	width: 100%;
	padding: 20px 0 0;
	background-color: #002870;
	font-size: 0.8em;
	line-height: 150%;
	height: 180px;
    clear: both;
    display: block;
}
.footerleft {
	width: 45%;
    float: left;
}
.footerright {
	width: 54%;
    float: right;
	text-align: right;
}
/* ▼▼▼menu */
.fnav li {
    color: #fff;
    display: inline-block;
    border-left: solid #fff 1px;
    padding: 0px 6px;
    text-align:center;
}
.fnav li a {
    display: block;
    width: 100%;
}
.fnav li.start {border-left: none;}
.fnav li.end {padding: 0 0 0  6px;}
.fnav a:link {color: #fff;}
.fnav a:visited {color: #fff;}
.fnav a:hover {color: #7bb8ff;}
.fnav a:active {color: #7bb8ff;}
/* ▲▲▲menu */

.copy {color: #fff; font-size: 0.6em; padding-top: 10px;}

/* --------------------------------
 * etc
 * -------------------------------- */
/**font**/
.mincho {font-family: "Sawarabi Mincho";}

.blue {color: #0f7dff;}
.wt   {color: #fff;}
.bk   {color: #000;}

.ss {font-size: 0.8em; font-weight: 100;}
.s {font-size: 0.9em; line-height: 160%; letter-spacing:-0.05em;}
.m {font-size: 1.2em;}
.l {font-size: 1.4em; line-height: 150%;}
.xl{font-size: 1.8em; line-height: 160%;}

.lsp {letter-spacing:-0.1em;}/* 字間 */
.lh {line-height: 140%}/* 行間 */
.hvr:hover {opacity:0.8;}/* リンク画像 */

.w468 {width: 468px;}
.w500 {width: 500px;}
.w700 {width: 700px; margin: 0 auto;}
.w800 {width: 800px; margin: 0 auto;}
.w900 {width: 900px; margin: 0 auto;}
.w1100 {width: 1100px; margin: 0 auto;}

/**link**/
a:link {color: #0000ff; text-decoration: none;}
a:visited {color: #0000ff; text-decoration: none;}
a:hover {color: #7bb8ff; text-decoration: none;}
a:active {color: #7bb8ff; text-decoration: none;}

/******** 共通 ********/
img {border: 0px;}
p {margin: 0; padding: 0; text-indent: 1em;}

.dpb {display: block;}
.dib {display: inline-block; vertical-align: top;}

.left{text-align: left;}
.right{text-align: right;}

.mgntop20 {margin: 20px 0 0 0;}
.mgntop30 {margin: 30px 0 0 0;}
.mgntop60 {margin: 60px 0 0 0;}
.mgntop90 {margin: 90px 0 0 0;}

.mgnbtm20 {margin: 0 auto 20px;}
.mgnbtm30 {margin: 0 auto 30px;}
.mgnbtm60 {margin: 0 auto 60px;}
.mgnbtm90 {margin: 0 auto 90px;}

.mgntb20  {margin: 20px auto;}
.mgntb30  {margin: 30px auto;}
.mgntb60  {margin: 60px auto;}
.mgntb90  {margin: 90px auto;}

.mgnleft20 {margin: 0 0 0 20px;}
.mgnleft30 {margin: 0 0 0 30px;}
.mgnleft60 {margin: 0 0 0 60px;}
.mgnleft90 {margin: 0 0 0 90px;}

.mgnright20 {margin: 0 20px 0 0;}
.mgnright30 {margin: 0 30px 0 0;}
.mgnright60 {margin: 0 60px 0 0;}
.mgnright90 {margin: 0 90px 0 0;}

.mgnlr30   {margin: 0 30px 0 30px;}

/* --------------------------------
 * table
 * -------------------------------- */
table {font-size: 0.9em;}
th,td{
    border-collapse: collapse;
    font-weight: normal;
    height: 30px;
    padding: 10px 20px;
    vertical-align: middle;
    border: 1px solid #ccc;
}
/* --------------------------------
 * table 2
 * -------------------------------- */
.prf {margin: 0px; padding: 0px;}
.prf th{font-weight: normal; text-align: left; background-color: #dfdfdf;}
.prf td{height: 38px; background-color: #fff;}
.prf th,td{border: 1px solid #ccc; vertical-align: top;}

/******** hr ********/
hr {height: 1px; background-color: #000; width: 100%; border: none;}

/* --------------------------------
 * 頭そろえ
 * -------------------------------- */
.c1 {display: inline-block; width: 50%;}
.c2 {display: inline-block; width: 50%;}

/******** pagetop ********/
.pagetop {
    background-color: #0f7dff;
	height: 50px;
	width: 50px;
    border-radius: 30px;
	text-align: center;
    position: fixed;
    bottom: 16px;
    right: 16px;
    font-size: 2em;
    line-height: 130%;
    }
.pagetop a {display: block; text-decoration: none;}
.pagetop:hover{opacity: 0.7 ;}
.pagetop a:link {color: #fff; text-decoration: none;}
.pagetop a:visited {color: #fff; text-decoration: none;}
.pagetop a:active {color: #fff; text-decoration: none;}

/******** fadeindown ********/
.fadeInDown {
 -webkit-animation-fill-mode:both;
 -ms-animation-fill-mode:both;
 animation-fill-mode:both;
 -webkit-animation-duration:1s;
 -ms-animation-duration:1s;
 animation-duration:1s;
 -webkit-animation-name: fadeInDown;
 animation-name: fadeInDown;
 visibility: visible !important;
}
@-webkit-keyframes fadeInDown {
 0% { opacity: 0; -webkit-transform: translateY(40px); }
 100% { opacity: 1; -webkit-transform: translateY(0); }
}
@keyframes fadeInDown {
 0% { opacity: 0; -webkit-transform: translateY(40px); -ms-transform: translateY(40px); transform: translateY(40px); }
 100% { opacity: 1; -webkit-transform: translateY(0); -ms-transform: translateY(0); transform: translateY(0); }
} 