@charset "UTF-8";


/* common
-------------------------------------------------*/
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;
    background: transparent;
}
article,aside,details,figcaption,figure,
footer,header,hgroup,menu,nav,section { 
    display: block;
}
ul {
    list-style: none;
}
img {
    width: 100%;
    max-width: 100%;
    height: auto;
	border: none;
	vertical-align: bottom;
}
blockquote, q {
    quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
    content: '';
    content: none;
}
address, em, code, cite, dfn, var, optgroup {
  font-style: normal;
}
table {
    border-collapse: collapse;
    border-spacing: 0;
}
input, select {
    vertical-align: middle;
}
input[type="button"],input[type="text"],input[type="submit"],input[type="reset"],textarea {
	-webkit-appearance: none;
	border-radius: 0;
	font-family: "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "Meiryo UI", "メイリオ", Meiryo, "ＭＳ Ｐ ゴシック", "MS PGothic", sans-serif;
}
.clearfix::after {
    content: "";
    display: block;
    clear: both;
}
.clear {
	font-size: 1px;
	height: 1px;
	clear: both;
}
sup {
    vertical-align: super;
    font-size: 0.5em;
}


/* module
------------------------------------------------- */
.floatL {
	float: left;
	display: inline;
}
.floatR {
	float: right;
	display: inline;
}
.alignCenter {text-align: center;}
.alignLeft {text-align: left;}
.alignRight {text-align: right;}
.valignTop {vertical-align: top;}
.valignMiddle {vertical-align: middle;}
.valignBottom {vertical-align: bottom;}

.light { font-weight: 300 }
.regular { font-weight: 400; }
.bold { font-weight: 700; }


.none { display: none; }
.pcon { display: block; }
.spon { display: none; }
@media only screen and (max-width:750px){
.pcon { display: none; }
.spon { display: block; }
}


/* a
------------------------------------------------- */
a {
    margin: 0;
    padding: 0;
    font-size: 100%;
    vertical-align: baseline;
	text-decoration: none;
	outline: none;
    color: #000;
}
a.cl {
    color: #009aff;
    text-decoration: underline;
}
a.telLink {
    pointer-events: auto;
}
@media only screen and (min-width:751px){
a:hover {
	text-decoration: underline;
}
a.cl:hover {
    text-decoration: none;
}
.al:hover {
	opacity: 0.7;
	filter: alpha(opacity=70);
	-ms-filter: "alpha(opacity=70)";
	transition: 0.3s;
	text-decoration: none;
}
a.telLink {
    pointer-events: none;
}
}


/* font
------------------------------------------------- */
@media only screen and (min-width:751px){
.fo11 { font-size: 11px; }
.fo12 { font-size: 12px; }
.fo14 { font-size: 14px; }
.fo16 { font-size: 16px; }
.fo18 { font-size: 18px; }
.fo20 { font-size: 20px; }
.fo21 { font-size: 21px; }
.fo22 { font-size: 22px; }
.fo27 { font-size: 27px; }
.fo32 { font-size: 32px; }
}
@media only screen and (min-width:751px) and (max-width:1280px){
.fo11 { font-size: 0.859375vw; }
.fo12 { font-size: 0.9375vw; }
.fo14 { font-size: 1.09375vw; }
.fo16 { font-size: 1.25vw; }
.fo18 { font-size: 1.40625vw; }
.fo20 { font-size: 1.5625vw; }
.fo21 { font-size: 1.64062vw; }
.fo22 { font-size: 1.71875vw; }
.fo27 { font-size: 2.10937vw; }
.fo32 { font-size: 2.5vw; }
}


/* body
------------------------------------------------- */
body {
	font-family: "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "Meiryo UI", "メイリオ", Meiryo, "ＭＳ Ｐ ゴシック", "MS PGothic", sans-serif;
	font-size: 14px;
	line-height: 2;
	color: #000;
    overflow-x: hidden;
	-webkit-text-size-adjust: 100%;
}
.foMaru {
    font-family:"ヒラギノ丸ゴ Pro W4", "ヒラギノ丸ゴ Pro", "Hiragino Maru Gothic Pro", "HG丸ｺﾞｼｯｸM-PRO", "HGMaruGothicMPRO", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "Meiryo UI", "メイリオ", Meiryo, "ＭＳ Ｐ ゴシック", "MS PGothic", sans-serif;
}
.foRed {
    color: #ff0000;
}
@media only screen and (min-width:751px) and (max-width:1280px){
body {
	font-size: 1.09375vw;
}
}
@media only screen and (max-width:750px){
body {
	font-size: 3.466vw;
    line-height: 1.75;
}
input, select {
    font-size: 3.466vw;
}
input[type="button"],input[type="text"],input[type="submit"],input[type="reset"],textarea {
	font-size: 3.466vw;
}
}


/* wrapper
------------------------------------------------- */
#wrapper {
	width: 100%;
	margin: 0 auto;
	clear: both;
    overflow-x: hidden;
    position: relative;
}


/* header
------------------------------------------------- */
#header {
    width: 100%;
    box-shadow: 0 1px 4px rgba(0,0,0,.16);
    position: relative;
}
#header::before {
    background-color: #cc0022;
    content: "";
    display: block;
    height: 1px;
    position: absolute;
    bottom: 3.4375em;
    left: 0;
    z-index: 1;
    width: 100%;
}
#header::after {
    width: 32%;
    background: url("../img/bg_header2.png") repeat-x center bottom 3.4375em;
    background-size: auto 1.142857142em;
    content: "";
    display: block;
    height: 100%;
    position: absolute;
    bottom: 0;
    right: 0;
    z-index: 1;
}
#header .hinner {
    max-width: 1280px;
    height: 9.642em;
    background: url("../img/bg_header1.png") left 7em bottom 3.4375em no-repeat;
    background-size: auto 1.142857142em;
    margin: 0 auto;
    padding: 0 6.428em;
    position: relative;
    box-sizing: border-box;
    z-index: 99;
}
@media only screen and (min-width:751px) and (max-width:1280px){
#header {
    background: url("../img/bg_header3.png") center bottom 3.4375em no-repeat;
    background-size: 100% auto;
}
#header::before {
    width: 0;
}
#header::after {
    width: 0;
}
#header .hinner {
    background: none;
}
}

#header .hlogo {
    width: 26.857em;
    padding-top: 0.85em;
}
#header .hnav {
    position: absolute;
    right: 6.428em;
    top: 1.35em;
    display: flex;
}
#header .hcontact {
    width: 10.571em;
    margin: 0 2em;
}
#header .hsearch {
    display: none;
}
#header .hsearch .hsearchBox {
    width: 14.2857em;
    border: 1px solid #dadcdc;
    margin: 0 2em;
    position: relative;
    border-radius: 0.35em;
}
#header .hsearch .hsearchBox .hsearch_input {
    width: 100%;
    line-height: 3.125;
    background-color: #f2f3f0;
    margin: 0;
    padding: 0 3.125em 0 1em;
    border: none;
    box-sizing: border-box;
    border-radius: 0.35em;
}
#header .hsearch .hsearchBox .hsearch_input::placeholder {
    color: #c3c3c3;
}
#header .hsearch .hsearchBox .hsearch_btn {
    width: 3em;
    height: 3.125em;
    background-color: transparent;
    position: absolute;
    border: none;
    z-index: 1;
    right: 0;
    top: 0;
    cursor: pointer;
    box-sizing: border-box;
}
#header .hsearch .hsearchBox .hsearch_btn .hsearch_icon::before {
    content: '';
    display: block;
    width: 1.3em;
    height: 1.3em;
    background: url("../img/icon_search.svg") center center no-repeat;
    background-size: contain;
}
#header .hd-logo {
    width: 13.214em;
    margin-top: 0.5em;
}
#header .gnav {
    position: absolute;
    left: 6.428em;
    bottom: 0;
}
#header .gnav ul {
    display: flex;
}
#header .gnav ul li:hover {
    background-color: #5b5b5b;
}
#header .gnav ul li a {
    display: block;
    line-height: 1.8375em;
    color: #666;
    padding: 0.8em 0;
}
#header .gnav ul li a.selected,
#header .gnav ul li a:hover {
    background-color: #5b5b5b;
    color: #fff;
    text-decoration: none;
}
#header .gnav ul li:hover a {
    color: #fff;
    text-decoration: none;
}
#header .gnav ul li a span {
    display: block;
    padding: 0 1.8em;
    border-left: 1px solid #cbcece;
}
#header .gnav ul li:last-child a span {
    border-right: 1px solid #cbcece;
}
#header .gnav ul .sub a span::after {
    content: '▼';
    padding-left: 0.3em;
}
#header .gnav ul .sub .submenu {
    display: none;
    width: 100vw;
    position: absolute;
    left: 0;
    top: 100%;
    background-color: #5b5b5b;
    text-align: center;
}
#header .gnav ul .sub .submenu .abom {
    width: 79.285em;
    margin: 0 auto;
}
#header .gnav ul .sub .submenu .schm {
    width: 57.142em;
    margin: 0 auto;
}
#header .gnav ul .sub .submenu .foom {
    width: 39.142em;
    margin: 0 auto;
}
#header .gnav ul .sub .submenu li {
    display: inline-block;
    margin: 1.5em 0.5em;
}
#header .gnav ul .sub .submenu li a {
    display: block;
    color: #fff;
    margin: 0;
    padding: 0.7em;
    line-height: 1;
    border: 1px solid #fff;
    min-width: 10.333em;
    box-sizing: border-box;
}
#header .gnav ul .sub .submenu li a:hover {
    opacity: 0.7;
	filter: alpha(opacity=70);
	-ms-filter: "alpha(opacity=70)";
	transition: 0.3s;
	text-decoration: none;
}
#header .hse {
    width: 14.357em;
    position: absolute;
    right: 6.428em;
    bottom: 0;
}
@media only screen and (max-width:750px){
#header {
    background: none;
    box-shadow: 0 1px 4px rgba(0,0,0,.16);
}
#header::before,
#header::after {
    display: none;
}
#header .hinner {
    background: none;
    height: 16vw;
    padding: 0;
}
#header .hlogo {
    width: 73.73vw;
    padding: 2.933vw 0 0 1.33vw;
}
#header .hnav,
#header .gnav,
#header .hse {
    display: none;
}
}


/* navtoggle
------------------------------------------------- */
@media only screen and (min-width:751px){
#navtoggle {
    display: none;
}
}
@media only screen and (max-width:750px){
#navtoggle {
    width: 16vw;
    height: 16vw;
    position: absolute;
    right: 0;
    top: 0;
    display: block;
    cursor: pointer;
    z-index: 9992;
    text-align: center;
    line-height: 1;
    background-color: #cc0022;
}
#navtoggle div span {
    display: block;
    position: absolute;
    height: 0.533vw;
    width: 6.4vw;
    background: #fff;
    left: 4.933vw;
    -webkit-transition: .35s ease-in-out;
    -moz-transition: .35s ease-in-out;
    transition: .35s ease-in-out;
}
#navtoggle div span:nth-child(1) {
    top: 5.466vw;
}
#navtoggle div span:nth-child(2) {
    top: 9.733vw;
}
body.active #navtoggle div span:nth-child(1) {
	top: 8vw;
	-webkit-transform: rotate(315deg);
	-moz-transform: rotate(315deg);
	transform: rotate(315deg);
}
body.active #navtoggle div span:nth-child(2) {
	top: 8vw;
	-webkit-transform: rotate(-315deg);
	-moz-transform: rotate(-315deg);
	transform: rotate(-315deg);
}
}


/* snav
------------------------------------------------- */
@media only screen and (min-width:751px){
#snav {
    display: none;
}
}
@media only screen and (max-width:750px){
#snav {
    display: none;
    width: 100%;
    position: absolute;
    top: 16vw;
    left: 0;
    background-color: #767676;
    font-size: 4.266vw;
    text-align: center;
    z-index: 99;
}
#snav a {
    color: #fff;
    display: block;
    line-height: 17.33vw;
}
#snav a.key {
    background: url("../img/icon_key.png") 73% center no-repeat;
    background-size: 3.33vw auto;
}
#snav ul li {
    border-bottom: 1px solid #fff;
}
#snav ul .sub > a {
    background: url("../img/icon1.png") 90% center no-repeat;
    background-size: 4.533vw auto;
}
#snav ul .sub > a.on {
    background: url("../img/icon2.png") 90% center no-repeat;
    background-size: 4.533vw auto;
}
#snav ul .sub div {
    display: none;
}
#snav ul .sub ul,
#snav ul .flex ul {
    display: flex;
    flex-wrap: wrap;
    background-color: #363636;
}
#snav ul .sub ul li,
#snav ul .flex ul li {
    width: 50%;
    box-sizing: border-box;
    border-top: 1px solid #fff;
    border-bottom: none;
}
#snav ul .sub ul li:nth-child(2n),
#snav ul .flex ul li:nth-child(2n) {
    border-left: 1px solid #fff;
}
#snav ul .flex ul {
    background-color: #767676;
}
#snav ul .flex ul li {
    border-top: none;
} 
}


/* contents
------------------------------------------------- */
.inner {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 10em;
    position: relative;
    box-sizing: border-box;
}
@media only screen and (max-width:750px){
.inner {
    width: 94%;
    padding: 0;
}
}


/* mainvisual
------------------------------------------------- */
.mainvisual {
    width: 100%;
    height: 10.21em;
    margin: 2.85em 0 1em;
}
.mainvisual .inner {
    width: 100%;
    height: 10.21em;
}
@media only screen and (max-width:750px){
.mainvisual {
    height: 19vw;
    margin: 0.3vw 0 9vw;
}
.mainvisual .inner {
    height: 19vw;
}
}


/* path
------------------------------------------------- */
#path {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 11.66em 4.5em;
    box-sizing: border-box;
}
@media only screen and (max-width:750px){
#path {
    display: none;
}  
}


/* headline
------------------------------------------------- */
.headline1 {
    width: 100%;
    text-align: center;
    color: #fff;
    font-weight: bold;
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translateY(-50%) translateX(-50%);
    letter-spacing: 0.2em;
}
.headline2 {
    margin-bottom: 2.5em;
}
.headline3 {
    border-bottom: 1px solid #5c8900;
    background: url("../img/bg_title.png") right bottom no-repeat;
    background-size: auto 100%;
    margin-bottom: 1em;
    padding-top: 0.5em;
}
.headline3 span {
    color: #5c8900;
    font-weight: bold;
    border-left: 0.3em solid #5c8900;
    padding-left: 0.8em;
    margin-bottom: 0.5em;
    line-height: 1.8;
    display: inline-block;
}
.headline4 {
    text-align: center;
    color: #5c8900;
    font-weight: bold;
    margin-bottom: 1em;
}
.headline5 {
    color: #5c8900;
    font-weight: bold;
    margin-bottom: 1em;
}
.headline6 {
    color: #ff8000;
    font-weight: bold;
    text-align: center;
    margin: -1em 0 0.5em;
}
@media only screen and (max-width:750px){
.headline1 {
    font-size: 5.33vw;
}
.headline2 {
    margin-bottom: 5.33vw;
}
.headline3 {
    font-size: 4vw;
}
.headline3 span {
    line-height: 1.6;
}
.headline4 {
    font-size: 4.8vw;
}
.headline6 {
    font-size: 4vw;
    margin: 0 0 0.5em;
}
}


/* form table
------------------------------------------------- */
.ftable1 {
    width: 94%;
    margin: 0 3% 4.5em;
}
.ftable1 th {
    background-color: #f8faf5;
    border: 1px solid #5c8900;
    font-weight: bold;
    text-align: center;
    padding: 1.5em 0;
    width: 16em;
    vertical-align: top;
}
.ftable1 td {
    background-color: #f8faf5;
    border: 1px solid #5c8900;
    text-align: left;
    padding: 1.5em;
    vertical-align: top;
}
.ftable1 td .text1 {
    border: 1px solid #b5b5b5;
    padding: 0 0.5em;
    box-sizing: border-box;
    line-height: 2;
}
.ftable1 td .textarea1 {
    border: 1px solid #b5b5b5;
    padding: 0.5em;
    box-sizing: border-box;
    line-height: 1.5;
}
@media only screen and (max-width:750px){
.ftable1 {
    width: 90vw;
    margin: 0 auto 10vw;
}
.ftable1 th {
    display: block;
    border-bottom: none;
    font-weight: normal;
    text-align: left;
    padding: 2.5vw 4vw 2vw;
    width: 100%;
    box-sizing: border-box;
}
.ftable1 td {
    display: block;
    border-top: none;
    border-bottom: none;
    padding: 0 4vw 3.5vw;
}
.ftable1 tr:last-child td {
    border-bottom: 1px solid #5c8900;
}
.ftable1 td .text1 {
    width: 100%;
    line-height: 2.5;
}
.ftable1 td .textarea1 {
    width: 100%;
}
}


/* btn, link
------------------------------------------------- */
.btnp1 {
    text-align: center;
}
.btnp1 a,
.btnp1 input {
    line-height: 3.8em;
    display: inline-block;
    color: #fff;
    text-align: center;
    font-weight: bold;
    background: url("../img/icon3.png") 3em center no-repeat #f79200;
    background-size: 0.7em auto;
    padding: 0 3em 0 4.5em;
    border: none;
    border-radius: 1em;
    cursor: pointer;
    margin: 0 auto;
    box-sizing: border-box;
}
.btnp1 a.back,
.btnp1 input.back {
    background: url("../img/icon4.png") 5em center no-repeat #808080;
    background-size: 0.7em auto;
    padding: 0 5em 0 6.5em;
}
.btnp1 a.pdf {
    background: url("../img/icon3.png") 3em center no-repeat, url("../img/icon_pdf.png") right 3em center no-repeat #f79200;
    background-size: 0.7em auto, 1.2em auto;
    padding: 0 4.5em;
}
.btnp1 a.excel {
    background: url("../img/icon3.png") 3em center no-repeat, url("../img/icon_excel.png") right 3em center no-repeat #f79200;
    background-size: 0.7em auto, 1.2em auto;
    padding: 0 4.5em;
}
.linkp1 a {
    background: url("../img/icon5.png") left center no-repeat, url("../img/icon_pdf.png") right center no-repeat;
    background-size: 0.7em auto, 1.2em auto;
    padding: 0.2em 2em 0.2em 1.5em;
    text-decoration: underline;
}
@media only screen and (min-width:751px){
.linkp1 a:hover {
    text-decoration: none;
}
}
@media only screen and (max-width:750px){
.btnp1 a,
.btnp1 input {
    font-size: 4vw;
    line-height: 14.66vw;
}
.btnp1 a.back,
.btnp1 input.back {
    background: url("../img/icon4.png") 3em center no-repeat #808080;
    background-size: 0.7em auto;
    padding: 0 3em 0 4.5em;
}
.btnp1.db a,
.btnp1.db input {
    background: url("../img/icon3.png") 1em center no-repeat #f79200;
    background-size: 0.7em auto;
    padding: 0 1.2em 0 2.7em;
}
.btnp1.db a.back,
.btnp1.db input.back {
    background: url("../img/icon4.png") 3em center no-repeat #808080;
    background-size: 0.7em auto;
    padding: 0 3.7em 0 5.2em;
}
.btnp1.db a.excel {
    background: url("../img/icon3.png") 1em center no-repeat #f79200;
    background-size: 0.7em auto;
    text-align: left;
    line-height: 1.5;
    padding: 0.7em 2.5em;
}
.btnp1.db a.excel img {
    width: 5vw;
}
.btnp1.db a.excel .spon {
    display: inline;
}
.linkp1 a {
    background: url("../img/icon5.png") left center no-repeat, url("../img/icon_pdf.png") right center no-repeat;
    background-size: 0.6em auto, 1.2em auto;
    padding: 0.2em 2.4em 0.2em 1.2em;
}
}


/* pnav
------------------------------------------------- */
.pnav {
    text-align: center;
    padding-top: 3em;
}
.pnav a,
.pnav span {
    margin: 0 0.2em;
}
.pnav a {
    width: 2em;
    height: 2em;
    line-height: 2em;
    text-align: center;
    color: #000;
    font-weight: bold;
    background-color: #d6e3a3;
    display: inline-block;
}
.pnav span.current {
    width: 2em;
    height: 2em;
    line-height: 2em;
    text-align: center;
    color: #fff;
    font-weight: bold;
    background-color: #5c8900;
    display: inline-block;
    text-decoration: none;
}
@media only screen and (min-width:751px){
.pnav a:hover {
    color: #fff;
    background-color: #5c8900;
    text-decoration: none;
}
}
@media only screen and (max-width:750px){
.pnav {
    padding-bottom: 10vw;
}
.pnav a,
.pnav span {
    font-size: 5.2vw;
}
}


/* footer
------------------------------------------------- */
#footer {
	width: 100%;
    border-top: 1px solid #d2d2d2;
    padding-top: 0.8em;
    margin-top: 4.5em;
}
#footer .finner {
	max-width: 1280px;
    margin: 0 auto;
    padding: 0 1.5em;
    position: relative;
    box-sizing: border-box;
    display: flex;
}
#footer .finner nav ul {
    display: flex;
    padding: 1.7em 3.5em 0 0;
}
#footer .finner nav ul li a {
    display: block;
    border-left: 1px solid #666;
    padding: 0 1em;
    color: #666;
    line-height: 1;
}
#footer .finner nav ul li:last-child a {
    border-right: 1px solid #666;
}
#footer .finner .fbnr {
    display: flex;
    padding-bottom: 0.6em;
}
#footer .finner .fbnr li:first-child {
    width: 4.5em;
    margin-right: 1em;
}
#footer .finner .fbnr li:last-child {
    width: 3.5em;
}
#footer .copyright {
    background-color: #cc0022;
}
#footer .copyright .finner {
    justify-content: space-between;
}
#footer .copyright .flogo {
    width: 16.42em;
    padding: 0.7em 0;
    line-height: 1;
}
#footer .copyright small {
    color: #fff;
    padding-top: 0.5em;
}
@media only screen and (max-width:750px){
#footer {
    border-top: 1px solid #cfcfcf;
    padding-top: 3.5vw;
    margin-top: 10vw;
}
#footer .finner {
    padding: 0 10vw;
    display: block;
}
#footer .finner nav ul {
    justify-content: center;
    flex-wrap: wrap;
    padding: 0;
}
#footer .finner nav ul li a {
    font-size: 2.933vw;
    padding: 0 1.2em;
    margin-bottom: 2vw;
}
#footer .finner nav ul li:nth-child(3) a {
    border-right: 1px solid #666;
}
#footer .finner .fbnr {
    justify-content: center;
    padding: 1vw 0 3.2vw;
}
#footer .finner .fbnr li:first-child {
    width: 19.33vw;
    margin-right: 4vw;
}
#footer .finner .fbnr li:last-child {
    width: 14.4vw;
}
#footer .copyright .finner {
    text-align: center;
    padding: 8.5vw 0 6.5vw;
}
#footer .copyright .flogo {
    width: 61vw;
    margin: 0 auto 5vw;
    padding: 0;
}
#footer .copyright small {
    font-size: 2.66vw;
    padding-top: 0;
}
}


/* pagetop
------------------------------------------------- */
#pagetop {
    width: 7.714em;
    position: fixed;
    right: 0;
    bottom: 0;
    z-index: 90;
}
@media only screen and (max-width:750px){
#pagetop {
    width: 19.733vw;
}
}