@charset "UTF-8";
/* Reset Stylesheet Based on - html5doctor.com Reset Stylesheet http://html5doctor.com/html-5-reset-stylesheet/ */
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; }
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { display: block; }
table { border-collapse: collapse; border-spacing: 0; }
input, select { vertical-align: middle; }
ul, li { list-style: none; }
/*-------------------------------------
clearfix
-------------------------------------*/
.clearfix:before,.clearfix:after { content: ""; display: table; }
.clearfix:after { clear: both; }
.clearfix { zoom: 1; }

/*-------------------------------------
common
-------------------------------------*/
body { font: 75%/1.5 "Oswald", sans-serif, Arial, Helvetica, Verdana, "ヒラギノ角ゴPro W3", "Hiragino Kaku Gothic Pro", Osaka, "メイリオ", Meiryo, "ＭＳ Ｐゴシック"; font-weight: 300; letter-spacing: .05em; -webkit-text-size-adjust: 100%; }
a { text-decoration: none; cursor: pointer; color: rgb(0,120,210); }
h1 { font-size: 44px; font-weight: 400; }
h2 { font-size: 44px; font-weight: 400; }
h3 { font-size: 18px; font-weight: 400; }
h4 { font-size: 18px; font-weight: 300; }
p, dl, ul { font-size: 16px; }
input, select, table { font-size: 16px; }
img { vertical-align: bottom; }
.inner { max-width: 1100px; margin: 0 auto; padding: 0 2%; }
.block { background: rgba(0,0,0,0.04); }
.more { width: 300px; margin: 40px auto 10px; text-align: center; font-weight: 400; }
.more a { display: block; padding: 8px; color: rgb(0,0,0); background: rgb(255,255,255); border: solid 1px rgb(0,0,0); border-radius: 2em; transition: all 0.2s ease 0s; }
.more a:hover { color: rgb(255,255,255); background: rgb(0,0,0); }
.coming-soon { margin: 100px 0 200px; text-align: center; font-size: 20px; }

/*-------------------------------------
header
-------------------------------------*/
header { width: 100%; min-width: 1100px; }
header .gb-head { background: rgb(0,60,120); }
header .gb-head h1 { font-size: 15px; padding: 8px 0; float: left; color: rgb(255,255,255); }
header .gb-head h1 span { margin-left: 20px; color: rgb(255,240,100); }
header .gb-head ul { float: right; }
header .gb-head li { float: left; font-size: 15px; font-weight: 500; }
header .gb-head li a { width: 140px; padding: 8px 0; display: block; text-align: center; color: rgb(255,255,255); }
header .gb-head li.menu1 a { background: rgb(40,40,40); }
header .gb-head li.menu2 a { background: rgb(220,0,0); }

header .gb-cont { background: rgb(255,255,255); }
header .gb-cont .logo { width: 16%; margin: 15px 0 0; float: left; }
header .gb-cont .logo img { max-width: 160px; }
header .gb-cont nav { width: 52%; padding: 0 8% 0 4%; float: left; }
header .gb-cont nav ul { display: block; }
header .gb-cont nav li { width: 25%; float: left; font-weight: 400; letter-spacing: 0.12em; }
header .gb-cont nav li a { padding: 25px 0 32px; color: rgb(0,0,0); position: relative; display: block; text-decoration: none; text-align: center; }
header .gb-cont nav li a::after { position: absolute; bottom: 18px; left: 0; content: ''; width: 100%; height: 2px; background: rgb(0,0,0); transform: scale(0, 1); transform-origin: right top; transition: transform .3s; }
header .gb-cont nav li a:hover::after { transform-origin: left top; transform: scale(1, 1); }
header .gb-cont .supported { width: 20%; margin: 26px 0 0; float: left; }
header .gb-cont .supported img { max-width: 240px; float: right; }

/*-------------------------------------
footer
-------------------------------------*/
footer { width: 100%; min-width: 1100px; background: rgb(0,60,120); }
footer .pagetop { width: 100%; height: 58px; display: block; background: rgb(30,30,30); position: relative; overflow: hidden; -webkit-transition: all 0.3s ease 0s; -moz-transition: all 0.3s ease 0s; -o-transition: all 0.3s ease 0s; transition: all 0.3s ease 0s; }
footer .pagetop .arrow { width: 28px; height: 58px; margin: 0 auto; display: block; background: url(../images/pagetop.png) no-repeat; background-position: 0 20px; position: relative; z-index: 2; }
footer .pagetop:after { width: 100%; height: 58px; content: ""; position: absolute; left: 0; top: 58px; background: rgb(60,60,60); z-index: 1; -webkit-transition: all 0.3s ease 0s; -moz-transition: all 0.3s ease 0s; -o-transition: all 0.3s ease 0s; transition: all 0.3s ease 0s; }
footer .pagetop:hover:after { top: 0; }
footer .copy { text-align: center; color: rgb(255,255,255); font-size: 16px; font-weight: 400; letter-spacing: 0.2em; padding: 15px 0; }
footer .copyright { padding: 15px 0px 20px; text-align: center; color: rgb(255,255,255); background: rgb(0,0,0); font-size: 14px; }

/*-------------------------------------
contents
-------------------------------------*/
.contents { width: 100%; min-width: 1100px; overflow: hidden; }



/*-------------------------------------
top common
-------------------------------------*/
/* top-heading */
.top-heading { padding-bottom: 10px; text-align: center; letter-spacing: 0.2em; }
.top-heading span { display: block; font-size: 18px; letter-spacing: 0.2em; }



/*-------------------------------------
top
-------------------------------------*/
/* top-visual */
.top-visual { width: 100%; min-width: 1100px; height: 777px; padding: 40px 0; background: linear-gradient(180deg,#316e9b,#316e9b 70%,#1d507d); }
.top-visual h1 { width: 1100px; margin: 141px auto 0; text-align: right; }

/* top-company-logo */
.top-company-logo { width: 100%; min-width: 1100px; height: 108px; background: url("../images/top_company_logo.gif") repeat-x bottom; background-size: 3400px; }
.top-company-logo { animation: company-logo-bgLoop 100s linear infinite; }
@keyframes company-logo-bgLoop {
    0% { background-position: 0 0;}
  100% { background-position: -3400px 0;}
}

/* top-product */
.top-product { padding: 40px 0; }
.top-product figure { margin: 30px 0; }

/* top-company */
.top-company { padding: 40px 0; }
.top-company figure { margin: 20px 0 30px; }

/* top-catalog */
.top-catalog { padding: 40px 0; }
.top-catalog figure { margin-top: 30px; }

/* top-contact */
.top-contact { padding: 40px 0; }
.top-contact h3 { margin: 30px 0 0 25px; font-size: 24px; letter-spacing: 0.1em; color: rgb(0,0,0); }
.top-contact table { width: 100%; margin-top: 30px; background: rgb(255,255,255); color: rgb(0,0,0); }
.top-contact table th { width: 25%; padding: 25px; text-align: left; border-top: 1px solid rgb(240,240,240); font-weight: 300; box-sizing: border-box; }
.top-contact table td { width: 75%; padding: 25px; border-top: 1px solid rgb(240,240,240); box-sizing: border-box; }



/*-------------------------------------
page common
-------------------------------------*/
.headline { width: 100%; padding: 0 0 0; background: rgba(0,0,0,0.04); }
.headline h1 { margin: 0 0 0; padding: 25px 0 40px; text-align: center; letter-spacing: 0.2em; color: rgb(0,0,0); }
.headline h1 span { display: block; font-size: 18px; letter-spacing: 0.2em; }



/*-------------------------------------
unit
-------------------------------------*/
 .unit { padding: 40px 0 60px; background: linear-gradient(180deg,#316e9b,#316e9b 70%,#1d507d); }
 .unit .leading { color: rgb(255,255,255); margin-bottom: 15px; font-size: 16px; }



/*-------------------------------------
product
-------------------------------------*/
.product { padding: 40px 0 60px; }



/*-------------------------------------
company
-------------------------------------*/
.company { padding: 40px 0 60px; }



/*-------------------------------------
catalog
-------------------------------------*/
.catalog { padding: 40px 0 60px; }



/*-------------------------------------
how to use
-------------------------------------*/
.howtouse { padding: 40px 0 60px; }



/*-------------------------------------
contact
-------------------------------------*/
.contact { padding: 40px 0 60px; }
.contact h2 { }
.contact h3 { margin: 0 0 0 25px; font-size: 24px; letter-spacing: 0.1em; color: rgb(0,0,0); }
.contact table { width: 100%; margin-top: 30px; background: rgb(255,255,255); color: rgb(0,0,0); }
.contact table th { width: 25%; padding: 25px; text-align: left; border-top: 1px solid rgb(240,240,240); font-weight: 300; box-sizing: border-box; }
.contact table td { width: 75%; padding: 25px; border-top: 1px solid rgb(240,240,240); box-sizing: border-box; }
