@charset "utf-8";

@import "reset.css";
@import "animate.css";
@import "perfect-scrollbar.min.css";
@import "vegas.min.css";

/* 共通部分
============================================================================== */
* { -webkit-box-sizing: border-box; box-sizing: border-box; }
*:before,
*:after { -webkit-box-sizing: border-box; box-sizing: border-box; }
html, body {
    background-color:#FFF;
    overflow-x: hidden;
    font-size: 16px;
    font-weight:400;
    font-style: normal;
    letter-spacing: 0.1em;
    line-height: 1.5;
    color: #000;
   font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif;
    -webkit-font-smoothing: antialiased;
}
#content, footer { min-width: 0; }
.inner {
    width:100%;
    max-width: 1080px;
    margin: 0 auto;
    position: relative;
}
table { table-layout: fixed; }
td input { max-width: 100%; }
i, em { font-style: normal; }
ul { padding:0; margin:0; }
li { list-style: none; }
img { max-width:100%; height:auto; }
a, a:hover, a:active, a:focus { outline: none; text-decoration:none; }
a:hover {
    -webkit-transition: all .7s;
    transition: all .7s;
    opacity: 0.6;
}
figure { margin:0; }
.pc-only { /*display: none;*/ }
.sp-only { display: none; }

/* 汎用パーツ
============================================================================== */
/* link effect */
a.effect { position:relative; }
a.effect::after {
    content: ''; position: absolute; bottom: .1em; left: 0;
    width:100%; height: 1px; background-color: #000;
    opacity: 0; transition: .3s;
}
a.effect:hover::after { bottom:-.1em; opacity:1; }
a.noeffect::after { content: ''; background-color: transparent; }
a.noeffect:hover::after { width:0; }

/* parts */
.btn_common, .btn_common a, .btn_common > em {
    display:-webkit-box; display:-ms-flexbox; display: -webkit-flex; display:flex;
    -webkit-box-pack:center; -ms-flex-pack:center;
    -webkit-justify-content: center; justify-content: center;
    -webkit-align-items: flex-start; align-items: flex-start;
    -webkit-flex-wrap: wrap; flex-wrap: wrap;
    text-align:center;
}
.btn_common > span,
.btn_common > em,
.btn_common a {
    padding:10px 0;
    display:inline-block;
    position:relative;
    color:#FFF;
    line-height:1.25;
    font-weight:900;
    background-color:#000;
    vertical-align:middle;
    border:1px solid #000;
    -o-transition:.3s ease-out, background .3s ease-in; -ms-transition:.3s ease-out, background .3s ease-in; -moz-transition:.3s ease-out, background .3s ease-in; -webkit-transition:.3s ease-out, background .3s ease-in; transition:.3s ease-out, background .3s ease-in;
}
.btn_common a span { display:inline-block; vertical-align: middle; }
.btn_common a:hover { color:#000; background-color:transparent; border-color:#000; }
.btn_common a:hover:after { background-color:transparent; }

.btn_common,
.btn_common a,
.btn_common > span,
.btn_common > em {
    -webkit-justify-content: flex-start; justify-content: flex-start;
    text-align:left;
}
.btn_common.text-center,
.btn_common.text-center a,
.btn_common.text-center em {
    padding-left: 0px;
    padding-right:55px;
    text-align:center;
}
.btn_common a,
.btn_common em {
    /*padding:0 0 0 15px;*/
    color:#1443ef;
    font-size:18px;
    font-weight: lighter;
    letter-spacing:0;
    background-color:transparent;
    vertical-align:middle;
    border:none;
}
.btn_common.gray em,
.btn_common.gray a {
    color:#DDD;
}
.btn_common a:before,
.btn_common a:after,
.btn_common em:before,
.btn_common em:after {
    content:"";
    width:44px;
    height:44px;
    background:url(../img/common/btn_circle.png) left top / 100% auto no-repeat;
    position:absolute;
    right: 0px;
    top: 50%;
    transform: translateY(-50%);
    -webkit- transform: translateY(-50%);
    transition: .3s;
}
.btn_common a:before,
.btn_common em:before {
    width:11px;
    height:21px;
    right: 16px;
    z-index:2;
    background: url(../img/common/btn_arrow.png) left top / 100% auto no-repeat;
}
.btn_common.gray em:after,
.btn_common.gray a:after { background-image:url(../img/common/btn_circle_gray.png); }
.btn_common.gray em:before,
.btn_common.gray a:before { background-image:url(../img/common/btn_arrow_gray.png); }
.btn_common em:hover,
.btn_common a:hover { color:#1443ef; background-color:transparent; border-color:#1443ef; }
.btn_common.gray em:hover,
.btn_common.gray a:hover { color:#DDD; background-color:transparent; border-color:#DDD; }
.btn_common em:hover:before,
.btn_common a:hover:before { transition: .3s; right: 12px; }


.parallelogram a {
    display:-webkit-box; display:-ms-flexbox; display: -webkit-flex; display:flex;
    -webkit-box-pack:center; -ms-flex-pack:center;
    -webkit-justify-content: center; justify-content: center;
    -webkit-align-items: center; align-items: center;
    -webkit-flex-wrap: wrap; flex-wrap: wrap;
    position:relative;
    transform:skewX(-30deg);
    -webkit-font-smoothing: antialiased;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
}
.parallelogram a:hover { opacity:1; }
.parallelogram a:not(:first-child) { margin-left:-1px; }
.parallelogram a span {
    transform:skewX(30deg);
}
.parallelogram.white a { background:#FFF; color:#000; }
.parallelogram .w105 { width:105px; height:45px; }
.parallelogram .w115 { width:115px; height:45px; }
.parallelogram .w120 { width:120px; height:45px; }
.parallelogram .w125 { width:125px; height:45px; }
.parallelogram .w130 { width:130px; height:45px; }
.parallelogram .w140 { width:110px; height:45px; }

.trapezoid { position:relative; }
.trapezoid a {
    display:-webkit-box; display:-ms-flexbox; display: -webkit-flex; display:flex;
    -webkit-box-pack:center; -ms-flex-pack:center;
    -webkit-justify-content: center; justify-content: center;
    -webkit-align-items: center; align-items: center;
    -webkit-flex-wrap: wrap; flex-wrap: wrap;
    border-left: 27px solid transparent;
    height: 0;
}
.trapezoid.blue a { background:transparent; color:#FFF; }
.trapezoid a.w200 { width:200px; }
.trapezoid a.w130 { width:130px; }
.trapezoid a {
    line-height: 45px;
    border-bottom: 45px solid #1443ef;
}
.trapezoid a span,
.trapezoid a small {
    position:absolute;
    width:100%;
    margin:auto;
    padding-left:40px;
    top:50%;
    left:50%;
    transform: translateY(-50%) translateX(-50%);
    -webkit- transform: translateY(-50%) translateX(-50%);
}
.trapezoid.right a { border-left:none; border-right:27px solid transparent; }
.trapezoid.right a small {
    padding-left:0;
    padding-right:0;
    left:auto;
    right:50%;
}

.dl-list { margin:0; word-break:break-all; }
.dl-list > dt { /*float:left;*/ min-width:0;}
.dl-list > dd { margin-left:0; }
.dl-list > dt:not(:last-of-type),
.dl-list > dd:not(:last-of-type) { margin-bottom: 10px; }

.ul-list li {
    line-height: 1.35;
    letter-spacing: 0.1em;
    padding-left: 1.2em;
    position: relative;
}
.ul-list li:before {
    content: "";
    width: 5px; height: 5px;
    border-radius: 50%;
    background: #FFF;
    position: absolute; left: 0; top: calc(0.65em - 2px);
}
.ul-list.black li:before { background:#000; }
.ul-list li:not(:last-child) { margin-bottom: 10px; }

.tbl_01 { width:100%; border-collapse:collapse; }
.tbl_01 .col1 { width:210px; }
.tbl_01 .col2 { width:auto; }
.tbl_01 th,
.tbl_01 td { text-align:left; background-color:#FFF; word-break:break-all; }
.tbl_01 th {
    padding:15px 20px;
    color:#000;
    vertical-align:middle;
    background-color:#eeeeee;
    border-bottom:1px solid #ccc;
	font-weight:normal;
}
.tbl_01 td { padding:15px 20px; border-bottom:1px solid #ccc; }
.tbl_01 tr:last-child { border-bottom:1px solid #ccc; }

/* default */
.clearfix { zoom: 1; }
.clearfix:after { content: ""; display: block; clear: both; }
.flexbox {
    display:-webkit-box; display:-ms-flexbox; display: -webkit-flex; display:flex;
    -webkit-box-pack:center; -ms-flex-pack:center;
    -webkit-justify-content: center; justify-content: center;
    -webkit-align-items: flex-start; align-items: flex-start;
    -webkit-flex-wrap: wrap; flex-wrap: wrap;
}
.flexbox.start { -webkit-justify-content: flex-start; justify-content: flex-start; }
.flexbox.end { -webkit-justify-content: flex-end; justify-content: flex-end; }
.flexbox.around { -webkit-justify-content: space-around; justify-content: space-around; }
.flexbox.between { -webkit-justify-content: space-between; justify-content: space-between; }
.flexbox.nowrap { -webkit-flex-wrap: nowrap; flex-wrap: nowrap; }
.flexbox.stretch { -webkit-align-items: stretch; align-items: stretch; }
.mt5  { margin-top:5px; }
.mt10 { margin-top:10px; }
.mt15 { margin-top:15px; }
.mt20 { margin-top:20px; }
.mt25 { margin-top:25px; }
.mt30 { margin-top:30px; }
.mt35 { margin-top:35px; }
.mt40 { margin-top:40px; }
.mt45 { margin-top:45px; }
.mt50 { margin-top:50px; }
.mt55 { margin-top:55px; }
.mt60 { margin-top:60px; }
.mt65 { margin-top:65px; }
.mt70 { margin-top:70px; }
.mt75 { margin-top:75px; }
.mt80 { margin-top:80px; }
.mt85 { margin-top:85px; }
.mt90 { margin-top:90px; }
.mt95 { margin-top:95px; }
.mt100 { margin-top:100px; }
.mt105 { margin-top:105px; }
.mt110 { margin-top:110px; }
.mt115 { margin-top:115px; }
.mt120 { margin-top:120px; }
.mt125 { margin-top:125px; }
.mt130 { margin-top:130px; }
.mt135 { margin-top:135px; }
.mt140 { margin-top:140px; }
.mt145 { margin-top:145px; }
.mt150 { margin-top:150px; }

.w520 { width:520px; }
.w500 { width:500px; }
.w330 { width:330px; }
.w270 { width:270px; }
.w260 { width:260px; }
.w250 { width:250px; }
.w240 { width:240px; }
.w230 { width:230px; }
.w200 { width:200px; }
.w190 { width:190px; }
.w180 { width:180px; }
.w170 { width:170px; }
.w160 { width:160px; }
.w150 { width:150px; }
.w120 { width:120px; }
.w100 { width:100px; }

.mw300 { min-width:300px; }
.mw290 { min-width:290px; }
.mw270 { min-width:270px; }
.mw250 { min-width:250px; }
.mw200 { min-width:200px; }
.mw180 { min-width:180px; }
.mw165 { min-width:165px; }
.mw160 { min-width:160px; }
.mw155 { min-width:155px; }
.mw150 { min-width:150px; }
.mw140 { min-width:140px; }
.mw125 { min-width:125px; }
.mw115 { min-width:115px; }

.ml30 { margin-left:30px; }

/* font */
.mincho {
    font-family: "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
    font-weight: 500; }
.bold { font-weight:bold; }
.nobold { font-weight:normal; }
.uchikeshi { text-decoration:line-through; }
.underline { text-decoration: underline; }
.tategaki1 { writing-mode: tb-rl; /* IE独自仕様 */ writing-mode: vertical-rl; -moz-writing-mode: vertical-rl; -o-writing-mode: vertical-rl; -webkit-writing-mode: vertical-rl; }
.tategaki2 { writing-mode: vertical-rl; -moz-writing-mode: vertical-rl; -o-writing-mode: vertical-rl; -webkit-writing-mode: vertical-rl; }

/* color */
.error { color:#d51518; }
.blue { color:#4664d4; }
.red { color:#ff3f3f; }
.brown { color:#c29040; }

/* layout */
.text-center { text-align:center; }
.vtop { vertical-align:top; }
.vmid { vertical-align:middle; }
.flr{ float:right; }
.fll{ float:left; }

/* column */
ul.five { width:100%; column-count: 5; -moz-column-count: 5; -webkit-column-count: 5; }
ul.quad { width:100%; column-count: 4; -moz-column-count: 4; -webkit-column-count: 4; }
ul.triple { width:100%; column-count: 3; -moz-column-count: 3; -webkit-column-count: 3; }
ul.double { width:100%; column-count: 2; -moz-column-count: 2; -webkit-column-count: 2; }
ul.single { width:100%; }
@media screen and (max-width: 768px) {
    ul.five, ul.quad, ul.triple, ul.double { column-count: 1; -moz-column-count: 1; -webkit-column-count: 1; }
}


/* style
================================================================================= */
/* header */
#wrap { margin-top:100px; }
header {
    width:100%;
    height:auto;
    background-color:rgba(33,33,33,1);
    position:relative;
    z-index:9;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    margin:auto;
}
header:after {
    content:"";
    width:100%;
    height:1px;
    position:absolute;
    bottom:3px;
    background:#FFF;
}
.head {
    width: 100%;
    max-width:1120px;
    height: auto;
    margin:0 auto;
    position:relative;
}
.head .inner {
    width:auto;
    max-width:1120px;
}
.head .inner .row.flexbox {
    margin:0;
    padding:0;
}
.head .inner .row > .left { margin:25px 0; }
.head .inner .row > .right { margin:3px 0 0; }
.head .inner .row > .right > .flexbox {
    -webkit-justify-content: flex-end;
    justify-content: flex-end;
    -webkit-flex-wrap: nowrap; /* Safari */
    flex-wrap: nowrap;
}

.head .inner .row .right > .flexbox .tel {
    height:46px;
    -webkit-align-items: center;
    align-items: center;
	margin-right:30px;
}
.head .inner .row .right > .flexbox .tel a {
    pointer-events:none;
    font-size:20px;
    line-height:1;
    font-weight:400;
    letter-spacing:0.25em;
    color:#FFF;
    vertical-align:bottom;
}
.head .inner .row .right .flexbox .tel a:before {
    content:url(../img/common/head_tel_icn.png);
    padding-right:13px;
    vertical-align:middle;
}
.head .inner .row .right > .flexbox .tel a span {
    vertical-align:top;
}
.head .inner .row .right .flexbox .contact a { vertical-align:bottom; }
.head .inner .row .right .flexbox .contact span:before {
    content:url(../img/common/head_mail_icn.png);
    padding-right:13px;
    vertical-align:middle;
}
.head .inner .row .right .flexbox .contact a span { vertical-align:top; }

.head .inner .row .right .parallelogram { margin-left:20px; }
.head .inner .row .right .parallelogram a {
   /* font-weight:500;*/
   font-size:90%;
}
.head .inner .row .right .parallelogram a:hover {
    color:#FFF;
    background:#999;
}
.head .inner .row .right .parallelogram a:not(:last-child):after {
    content:"|";
    transform:skewX(0deg);
    position:absolute;
    top:25%;
    right:-4px;
    font-size:20px;
    line-height:1;
}
.head .inner .row .right .trapezoid { margin-left:-15px; }

.head .inner .lang {
    display: flex;
    align-items: center;
    height: 46px;
}

.head .inner .lang ul {
	display: flex;
}
.head .inner .lang li {
    padding-left: 5px;
}
.head .inner .lang li a {
    display: block;
    padding: 3px;
}
.head .inner .lang li img {
    display: block;
    width: 36px;
    height: auto;
}

/* gnav */
.gnav_wrap {
    margin-top:-40px;
    width: 100%;
    max-width:1120px;
}
.gnav_wrap .gnav > ul {
    margin:0 auto;
    -webkit-justify-content: flex-end;
    justify-content: flex-end;
}
.gnav_wrap .gnav > ul > li.sp-only { display:none; }
.gnav_wrap .gnav > ul > li,
.gnav_wrap .gnav > ul > li a {
    display:-webkit-box;/*--- Androidブラウザ用 ---*/
    display:-ms-flexbox;/*--- IE10 ---*/
    display: -webkit-flex;/*--- safari（PC）用 ---*/
    display:flex;
    -webkit-box-pack:center;/*--- Androidブラウザ用 ---*/
    -ms-flex-pack:center;/*--- IE10 ---*/
    -webkit-justify-content: center;
    justify-content: center;
    -webkit-align-items: center;
    align-items: center;
    text-align:center;
}
.gnav_wrap .gnav > ul > li {
    position:relative;
    width:auto;
    height:40px;
    padding-bottom:10px;
    border-bottom:3px solid transparent;
    transition:.3s ease-out, background .3s ease-in;
}
.gnav_wrap .gnav > ul > li:not(:first-child) { margin-left:30px; }
.gnav_wrap .gnav > ul > li.active,
.gnav_wrap .gnav > ul > li:hover {
    border-color:#1443ef;
    transition:.3s ease-out, background .3s ease-in;
}
.gnav_wrap .gnav > ul > li a {
    width:100%;
    height:100%;
}
.gnav_wrap .gnav > ul > li a p {
    color:#FFF;
    line-height:1;
    font-weight:300;
    /*letter-spacing:0.3em;*/
}

.gnav_wrap .gnav > ul > li.trigger01:hover .sub_menu,
.gnav_wrap .gnav > ul > li.trigger02:hover .sub_menu {
    visibility: visible;
    opacity: 1;
    z-index:11;
    transition:.3s ease-out, background .3s ease-in;
}
.gnav_wrap .gnav > ul > li .sub_menu {
    display:block;
    visibility: hidden;
    opacity: 0;
    position:absolute;
    top:calc(100% + 3px);
    right: 100%;
    left: 0;
    transform: translateX(-50%);
    width:100vw;
    margin: 0 auto;
    padding-top:0;
    z-index:10;
    background:rgba(33,33,33,.8);
    transition:.3s ease-out, background .3s ease-in;
}
.gnav_wrap .gnav > ul > li:nth-of-type(2) .sub_menu { left: calc(100% - 70%); }
.gnav_wrap .gnav > ul > li:nth-of-type(3) .sub_menu { left: calc(100% - 210%); }
.gnav_wrap .gnav > ul > li:nth-of-type(5) .sub_menu { left: calc(100% - 240%); }
.gnav_wrap .gnav > ul > li .sub_menu ul {
    width:1080px; /* base % */
    padding:15px 0;
    margin:0 auto;
    z-index: 9;
}
.gnav_wrap .gnav > ul > li .sub_menu ul li {
    background:transparent;
    text-align:left;
    padding: 0 10px 0 25px;
    width: auto;
    height:auto;
    position:relative;
}
.gnav_wrap .gnav > ul > li .sub_menu ul > li:hover { border-color:transparent; }
.gnav_wrap .gnav > ul > li .sub_menu ul > li a:hover {
    border-color:#FFF;
    transition:.3s ease-out, background .3s ease-in;
}
.gnav_wrap .gnav > ul > li .sub_menu ul a {
    -webkit-justify-content: flex-start;
    justify-content: flex-start;
    -webkit-flex-wrap: nowrap; /* Safari */
    flex-wrap: nowrap;
    border-bottom:1px solid transparent;
}
.gnav_wrap .gnav > ul > li .sub_menu ul a p {
    /*word-break:keep-all;*/
    color:#FFF;
    font-weight:400;
    letter-spacing:0.1em;
	line-height: 1.2; 
}


/* fixed navi */
.head .fix {
    position: fixed;
    bottom: 10px;
    right: 10px;
}
.head .fix ul { margin:0; padding:0; }
.head .fix ul li {}
.head .fix ul li a {
    line-height:0;
    border-radius:50%;
}


/* パンくずリスト */
.main_page .breadcrumb { margin:15px auto; }
.main_page .breadcrumb li {
    position:relative;
    display:inline-block;
    padding-right:20px;
}
.main_page .breadcrumb li:not(:last-child):after {
    content:"\f105";
    font-family: "Font Awesome 5 Free";
    font-weight:900;
    position:absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    -webkit- transform: translateY(-50%);
}
.main_page .breadcrumb li a {
    color:inherit;
}


/* 下層共通部品 */
.col_img_l {
    width:auto; margin-right: 40px; flex-shrink:0;
    -webkit-box-ordinal-group:0; -ms-flex-order:0; -webkit-order:0; order:0;
}
.col_img_r {
    width:auto; margin-left: 40px; flex-shrink:0;
    -webkit-box-ordinal-group:2; -ms-flex-order:2; -webkit-order:2; order:2;
}
.col_txt_l,
.col_txt_r { flex-grow: 1; -webkit-box-ordinal-group:1; -ms-flex-order:1; -webkit-order:1; order:1; }

.row_page_common {
    display:-webkit-box; display:-ms-flexbox; display: -webkit-flex; display:flex;
    -webkit-box-pack:center; -ms-flex-pack:center;
    -webkit-justify-content: space-between; justify-content: space-between;
    -webkit-align-items: stretch; align-items: stretch;
    -webkit-flex-wrap: nowrap; flex-wrap: nowrap;
}
.row_page_common:not(:last-child) { margin-bottom: 45px; }
.row_page_common.wrap { -webkit-flex-wrap: wrap; flex-wrap: wrap; }
.row_page_common .col_sub_row {
    width:100%;
    -webkit-box-ordinal-group:2; -ms-flex-order:2; -webkit-order:2; order:2;
}

/* 画像共通装飾 */
figure > span {
    display: block;
    position:relative;
    padding:4px 0;
    line-height: 0;
}
figure > span:before,
figure > span:after {
    content:"";
    width:100%; height:1px;
    background:#1443ef;
    position:absolute; top:0; left:0;
}
figure > span:after { top:auto; bottom:0; }
figure > figcaption {
    margin-top:5px;
}


/* 下層メインビジュアル */
.main_page .bg01 {
    background:url(../img/common/bg_sub.png) calc(50% + 420px) top no-repeat,
                url(../img/common/bgc_sub.png) left top repeat;
}
.main_page .obi {
    position:relative;
    /*height: 220px;*/
    height:auto;
    min-height:220px;
    padding:20px 0;
    display:-webkit-box; display:-ms-flexbox; display: -webkit-flex; display:flex;
    -webkit-box-pack:center; -ms-flex-pack:center;
    -webkit-justify-content: center; justify-content: center;
    -webkit-align-items: center; align-items: center;
    -webkit-flex-wrap: wrap; flex-wrap: wrap;
    flex-flow: column;
}
.main_page .obi > p {
    color:#FFF;
    line-height:1;
    font-weight:500;
    letter-spacing:0.1em;
}
.main_page .obi h1 {
    color:#FFF;
    margin:0;
}
.main_page h1 strong {
    display:block;
    margin-top:10px;
    font-size:36px;
    line-height:1.2;
    letter-spacing:0.15em;
	
}

/* 下層見出し */
.lower h2 {
    margin:40px 0 45px;
    text-align:center;
}
.lower h2 span {
    display:inline-block;
    font-size: 28px;
    line-height: 1.5;
    font-weight:lighter;
    letter-spacing:0.1em;
    color:#1443ef;
    text-align:left;
    padding:0 0 30px;
    position:relative;
    vertical-align:bottom;
}
.lower h2 span::after {
    content: "";
    display: block;
    width:100px; height:1px;
    margin:auto;
    background:#1443ef;
    position:absolute; bottom:0; left:0; right:0;
}
.lower .row_page_common .col_txt_l h2,
.lower .row_page_common .col_txt_r h2 {
    margin:0;
    text-align:left;
}
.lower .row_page_common .col_txt_r h2 {
    text-align:left;
}
.lower .row_page_common .col_txt_l h2 span,
.lower .row_page_common .col_txt_r h2 span {
    padding:0 0 6px;
}
.lower .row_page_common .col_txt_l h2 span::after,
.lower .row_page_common .col_txt_r h2 span::after {
    width:110px;
    bottom:0; left:0; right:auto;
}

.lower h3 { margin-bottom:10px; }
.lower h3 span {
    display:inline-block;
    font-size: 26px;
    line-height: 1.2;
    font-weight: lighter;
    letter-spacing:0.1em;
    color:#1443ef;
    text-align:left;
    padding:0 0 0 40px;
    position:relative;
}
.lower h3 span::after {
    content: ""; display: block;
    display: block;
    width:25px; height:1px;
    margin:auto;
    background:#1443ef;
    position:absolute; top:48%; left:0;
    transform: translateY(-50%);
    -webkit- transform: translateY(-50%);
}
.lower h3 > .date {
    margin-top:5px;
    font-weight:400;
}

.content_low { width:100%; padding-top: 100px; }
.content_low .inner { width:100%; max-width:100%; }
.page_main { width: 100%; padding : 0px 0 140px; }
.page_main section { max-width:1080px; margin:0 auto; }
.page_main section:not(:last-child) { padding-bottom: 100px; }
.lower #content article:last-child { margin-bottom:190px; }


/* footer */
footer {
	margin-top:100px;
	}
.foot_main .sp-only { display: none; }
.foot_main {
    width: 100%;
    padding:45px 0 10px;
    background:url(../img/common/foot_bg.jpg) center top / auto 100% no-repeat;
}
.top footer .inner,
.foot_main .inner { max-width:1120px; }
.top .foot_main .inner,
.foot_main .inner {
    width: auto;
    -webkit-justify-content: space-between; justify-content: space-between;
    -ms-flex-wrap: nowrap; -webkit-flex-wrap: nowrap; flex-wrap: nowrap;
}

.foot_main .col_l,
.foot_main .col_r {
    width:540px;
    min-height:182px;
}
.foot_main .col_l {
    background:#FFF;
    padding:25px 30px 20px;
}
.foot_main .col_r {
    background:#1443ef;
    color:#FFF;
    padding:40px 15px 40px;
}
.foot_main .col_l .address {
	font-size:14px;}
.foot_main .col_l h2 { margin:0; text-align: center; }
.foot_main .col_l .address dl:not(:first-child) { margin-top:5px; }
.foot_main .col_l .address dt { font-weight:bold; }
.foot_main .col_l .address dd { font-weight:normal; }

.foot_main .col_r ul.flexbox li.flexbox {
    padding-left:15px;
    -webkit-justify-content: center; justify-content: center;
    -webkit-align-items: flex-end; align-items: flex-end;
    flex-flow:column;
}
.foot_main .col_r .tel {
    display:block;
    color:inherit;
    vertical-align:middle;
    text-align:right;
    pointer-events: none;
}
.foot_main .col_r .tel span {
    font-size:23px;
    line-height:1;
    font-weight:500;
    letter-spacing:0.2em;
}
.foot_main .col_r .tel span:before {
    content:url(../img/common/foot_tel.png);
    margin-right:5px;
    vertical-align:middle;
}
.foot_main .col_r .fax {
    display:block;
    color:inherit;
    vertical-align:middle;
    text-align:right;
    margin-top:10px;
}
.foot_main .col_r .fax span {
    font-size:18px;
    line-height:1;
    font-weight:500;
    letter-spacing:0.2em;
    margin-right:5px;
}
.foot_main .col_r .fax span:before {
    content:url(../img/common/foot_fax.png);
    margin-right:5px;
    vertical-align:middle;
}
.foot_main .contact a span {
    display:-webkit-box; display:-ms-flexbox; display: -webkit-flex; display:flex;
    line-height:50px;
    -webkit-justify-content: center; justify-content: center;
    -webkit-align-items: center; align-items: center;
}
.btn_common.contact a {
    color:#1443ef; background-color:#FFF; border:1px solid #FFF;
    line-height:1;
    font-weight:600;
    letter-spacing:0.2em;
    padding:13px 0;
}
.btn_common.contact a span { vertical-align:middle; }
.btn_common.contact a:after,
.btn_common.contact a:before { display:none; }
.btn_common.contact a span:before {
    content:url(../img/common/foot_mail.png);
    margin-right:5px;
    margin-top: 0px;
    line-height:1;
    vertical-align:bottom;
}

.foot_links {
    color:#FFF;
}
.foot_links .inner {
    position:relative;
}
.foot_links .inner > div.banners { width:380px; }
/*.foot_links .inner > div.banners a { pointer-events:none; }*/
.foot_links .inner > div.links { width:auto; font-size:85%; }
.foot_links .inner .links > ul {
    -webkit-justify-content: center; justify-content: center;
    -webkit-align-items: flex-start; align-items: flex-start;
    -webkit-flex-wrap: nowrap; flex-wrap: nowrap;
}
.foot_links .inner .links > ul:not(:last-child) { margin-right:50px; }
.foot_links .inner .links > ul li a:hover p { opacity:0.6; transition: .3s; }
.foot_links .inner .links > ul li {
    line-height: 1.5;
    margin-bottom:3px;
}
.foot_links .inner .links > ul li a { color:inherit; }
.foot_links .inner .links > ul li.active a { border-bottom:1px solid #FFF; }
.foot_links .inner .links > ul li.sub > ul {
    margin-left:1em;
    margin-top:5px;
}
.foot_links .inner .links > ul li.sub > ul li {
    padding-left:0.7em;
}
.foot_links .inner .links > ul li.sub > ul li:before {
    width:3px; height:3px;top:0.6em;
}

.copyright {
    text-align: center;
    position: relative;
    color:#FFF;
}
.copyright small {
    font-size: 14px;
    line-height: 1;
    letter-spacing:0;
}
.powerdby {
    margin-top:10px;
    text-align:center;
}


/* /top
==============================================================================*/
/* slider */
.title_area {
    margin-top:0px;
    position:relative;
    width:100%;
    z-index:2;
}
.main_img {
    width:100%;
    height: 800px;
    margin:0 auto;
    margin-top:-100px;
    background-position: center center;
    background-size:cover;
}
.main_img .inner {
    position:relative;
    width:auto;
    height:100%;
    margin:0 auto;
}
.main_img .inner .logo_index {
    position:absolute;
    top:170px;
    bottom:0;
    left:0;
    right:0;
    margin:auto;
    text-align:center;
    width:100%;
    height:auto;
    transition: .3s;
    background: url(../img/top/title_index_bg01.png) center 215px no-repeat,
                url(../img/top/title_index_bg02.png) center 270px no-repeat;
}
.main_img .inner .logo_index img {
    display:block;
    margin-left:auto;
    margin-right:auto;
}

.top .inner {
    max-width:1120px;
}

.top .production-flow {
    background:#f5f4ef;
    padding:30px 0 40px;
}
.top .production-flow .inner { max-width:1200px; }
.top .production-flow .bg01 {
    padding:15px 30px 15px 25px;
    background:url(../img/top/bg01.jpg) center top / auto 100% repeat;
}
.top .production-flow .bg01 .ovr {
    width:666px;
    height:415px;
    padding:30px 40px;
    color:#FFF;
    background:url(../img/top/bg01_ovr.png) left top / 100% auto repeat;
    position:relative;
}
.top .production-flow .bg01:before {
    content:"";
    width:calc(100% - 80px);
    height:1px;
    margin:0 30px 0 50px;
    position:absolute;
    z-index:2;
    top:140px;
    left:0;
    background:url(../img/top/bg01_bdr.png) left top / 100% auto no-repeat;
}
.top .production-flow .bg01:after {
    content:url(../img/top/bg01_txt.png);
    position:absolute;
    top:100px; right:30px;
}

.top .technical-introduction {
    background:url(../img/top/bg02.png) calc(50% + 220px) top / auto 100% no-repeat;
    padding:90px 0 30px;
}
.top .technical-introduction .row_page_common {
    -webkit-justify-content: flex-start; justify-content: flex-start;
    width:100%;
}
.top .technical-introduction .col_txt_l {
    width:405px;
}
.top .technical-introduction .col_img_r {
    width:calc(100% - 405px);
    height:832px;
    flex-flow:column wrap;
}
.top .technical-introduction .col_img_r figure:nth-of-type(2n) {
    margin-top:60px;
}
.top .technical-introduction .col_img_r figure:nth-of-type(3) {
    margin-left:40px;
}
.top .technical-introduction .col_img_r h3 {
    font-size:20px;
    line-height:1;
}

.top .product-example {
    background:url(../img/top/bg03.png) center top / 100% auto no-repeat;
    padding:0 0 60px;
}
.top .product-example .bg01 {
    background:rgba(0,0,0,.8);
    padding:45px 0 40px;
    color:#FFF;
}
.top .product-example .col_img_l {
    width:650px;
}
.top .product-example .col_img_l figure { z-index:2; line-height:0; position:relative; }
.top .product-example .col_img_l figure:nth-of-type(2) { z-index:1; margin:35px 0 0 -32px; }
.top .product-example .col_img_l figure:nth-of-type(3) { z-index:3; margin:-20px 0 0 0; }
.top .product-example .col_img_l figure:nth-of-type(4) { z-index:4; margin:15px 0 0 -32px; }
.top .product-example h2 {
    text-align:right;
    margin-right:25px;
}
.top .product-example .spec {
    flex-flow: column nowrap;
}
.top .product-example .spec p {
    font-size:16px;
}
.top .product-example .btnul {
    margin-top:50px;
	margin-right:50px;
}
.top .product-example .banners li { margin-bottom:5px; }
.top .product-example .banners li:nth-of-type(n + 2) {
    margin-left:5px;
}
.top .product-example .banners figure {
    position:relative;
    background:#000;
}
.top .product-example .banners figure:after {
    content:"";
    position:absolute;
    width:100%;
    left:0;
    bottom:-3px;
    border-bottom:1px solid #1443ef;
}
.top .product-example .banners figure figcaption {
    display:block;
    background:rgba(0,0,0,.8);
    padding:10px 0;
    width:100%;
    position:absolute;
    bottom:0;
    text-align:center;
}
.top .product-example .banners figure figcaption .btn_common,
.top .product-example .banners figure figcaption .btn_common a {
    -webkit-justify-content: center;
    justify-content: center;
    font-size:18px;
    letter-spacing:0.1em;
}
.top .product-example .banners li:nth-of-type(2) figure figcaption .btn_common a { letter-spacing:-0.1em; }

.top .recruit {
    background:url(../img/top/bg04.jpg) center top / 1920px auto no-repeat;
    padding:125px 0 0;
}
.top .recruit .inner {
    position:relative;
}
.top .recruit .inner:before,
.top .recruit .inner:after {
    content:"";
    position:absolute; top:-60px; left:-100px;
    width:623px; height:476px;
    background:url(../img/top/bg04_ovr1.png) left top / 100% auto no-repeat;
}
.top .recruit .inner:after {
    position:absolute; top:75px; left:auto; right:-100px;
    width:625px; height:476px;
    background:url(../img/top/bg04_ovr2.png) left top / 100% auto no-repeat;
}
.top .recruit h2 {
    margin-left:50%;
}
.top .recruit h2 img {
    display:block;
}
.top .recruit h2 img.sp-only { display:none; }
.top .recruit .banners {
    margin-top:440px;
}
.top .recruit .banners li { margin-bottom:5px; }
.top .recruit .banners li:nth-of-type(n + 2) {
    margin-left:5px;
}
.top .recruit .banners figure {
    position:relative;
    line-height:0;
    background:#000;
}
.top .recruit .banners figure figcaption {
    display:block;
    background:url(../img/top/banner_ovr.png) left top / 100% auto no-repeat;
    width:100%; height:128px;
    position:absolute;
    bottom:0;
    text-align:center;
}
.top .recruit .banners figure figcaption .btn_common,
.top .recruit .banners figure figcaption .btn_common em {
    -webkit-justify-content: center;
    justify-content: center;
    font-size:21px;
    letter-spacing:0em;
	font-weight:lighter;
}
.top .recruit .banners figure figcaption .btn_common.gray em:after { background-image:url(../img/common/btn_circle.png); }
.top .recruit .banners figure figcaption .btn_common.gray em:before { background-image:url(../img/common/btn_arrow_gray.png); }
.top .recruit .banners figure figcaption .btn_common {
    position:absolute; bottom:8px; right:12px;
}
.top .recruit .banners li:nth-of-type(1) figure figcaption .btn_common { bottom:0px; }
.top .recruit .banners li:nth-of-type(1) figure figcaption .btn_common em {
    font-size:18px;
}

.top .news {
    padding:60px 0;
}
.top .news .news_box {
    width:710px;
    padding:0;
    background:#FFF;
}
.top .news .banners { width:370px; }
.top .news .banners figure {
    position:relative;
    line-height:0;
    background:#000;
}
.top .news .banners figure > a {
    line-height:0;
}
.top .news .banners figure > a:before,
.top .news .banners figure > a:after {
    display:none;
}
.top .news .banners figure figcaption {
    display:block;
    background:rgba(0,0,0,.8);
    padding:3px 0;
    width:100%;
    position:absolute;
    top:47%; left:0;
    transform: translateY(-50%);
    -webkit- transform: translateY(-50%);
    text-align:center;
}
.top .news .banners figure figcaption .btn_common,
.top .news .banners figure figcaption .btn_common span {
    -webkit-justify-content: center;
    justify-content: center;
    font-size:21px;
    letter-spacing:0em;
}

.top .news .news_box h2 {
    color:#1443ef;
    font-size:23px;
    font-weight:500;
    letter-spacing:0.05em;
    text-align:left;
}
.top .news .news_box h2 .newslink {
    font-size:16px;
}
.top .news_box ul {
    height: 260px;
    margin-top:15px;
    padding-right: 15px;
    overflow: hidden;
    position: relative;
}
.top .news_box ul li {
    margin-bottom: 10px;
    border-bottom:1px dashed #DDD;
}
.top .news_box dl {
    text-align:left;
    -webkit-justify-content:flex-start; justify-content:flex-start;
    -webkit-align-items: flex-start; align-items: flex-start;
}
.top .news_box dl dt {
    min-width:150px;
    margin-left:10px;
    margin-right: 10px;
    vertical-align:middle;
    letter-spacing:0.05em;
}
.top .news_box dl dd {
    word-break: break-word;
    word-wrap: break-word;
    word-break: break-all;
}
.top .news_box dl dd a {
    color:inherit;
}
/* パーフェクトスクロールバー */
.ps-container > .ps-scrollbar-y-rail > .ps-scrollbar-y {
    background: #cccccc !important;
    -webkit-border-radius: 0px !important;
    border-radius: 0px !important;
    right: 0px !important;
    width: 11px !important;
}
.ps-container > .ps-scrollbar-y-rail {
    background: #ffffff !important;
    -webkit-border-radius: 0px !important;
    border-radius: 0px !important;
    width: 11px !important;
    right: 0px !important;
    opacity: 1;
}

/* /sub/
==============================================================================*/
.dl-list.dtw60 > dd { margin-left:70px;}
.dl-list.dtw60 > dt:not(:last-of-type),
.dl-list.dtw60 > dd:not(:last-of-type) { margin-bottom: 2px; }

/* 共通ボタンエリアの横調整 */
.btnul.flexbox.start li:not(:first-child) {
    margin-left:60px;
}

/* step */
.steps.row_page_common {
    position:relative;
    padding-bottom:68px;
    margin-bottom:0;
	 -webkit-justify-content: flex-start;
    justify-content: flex-start;
}
.steps:not(:last-child):after { /* 区切り線 */
    content:"";
    position:absolute; bottom:-18px; left:0;
    width:100%;
    height:18px;
    border-top:1px solid #1443ef;
    background:url(../img/common/border_triangle.png) center bottom no-repeat;
}
.steps h2 .step { display:block; line-height:0; }
.steps h2 .step a {
    pointer-events:none;
    background: #1443ef;
    padding:2px 10px;
    position:relative;
    line-height:0;
}
.steps h2 .step a:after {
    content:"";
    display:inline-block;
    line-height:1;
    width:21px;
    height:100%;
    position:absolute;
    top:0;
    right:-21px;
    background:url(../img/common/titlebg_r.png) left top / auto 100% no-repeat;
}
.steps h2 .step small {
    display:inline-block;
    color:#FFF;
    font-size:18px;
    line-height:1;
    font-weight:light;
}
.lower .steps h2 > span { margin-top:10px; }
.lower .steps h2 span::after { display:none; }

.steps .stepdl { width:33%; }
.steps .stepdl:not(:first-child):nth-of-type(3n + 1) { margin-top:35px; }
.steps .stepdl dt {
    font-size:18px;
    line-height:1.2;
    font-weight:500;
    color:#2E2E2E;
}
.steps .stepdl dd {
    margin-top:5px;
    margin-left:0.5em;
}
.steps .stepdl dd ul li {
    line-height: 1.1;
    padding-left: 0.5em;
}
.steps .stepdl dd ul li:before {
    width: 3px; height: 3px;
    top: 0.35em;
}

/* recruit */
.recruit.row_page_common {
    position:relative;
}
.recruit.row_page_common .col_img_r {
    position:relative;
    margin-left:0;
}
.recruit.row_page_common .col_img_l {
    position:relative;
    margin-right:0;
}
.recruit.row_page_common .recruitbg {
    position:relative;
    z-index:3;
    margin-top:230px;
    margin-right:-130px;
    width:408px;
}
.recruit.row_page_common .recruitbg .in {
    position:relative;
    background:url(../img/common/bgc_recruit.png) left top repeat;
    padding:30px 100px 60px;
}
.recruit.row_page_common .recruitbg .in:before {
    content:"";
    width:100%;
    height:103px;
    position:absolute;
    top:-102px;
    left:0;
    background:url(../img/common/bg_recruit.png) center top / 100% auto no-repeat;
}
.recruit.row_page_common .recruitbg .name,
.recruit.row_page_common .recruitbg .attrib {
    color:#FFF;
    font-size:20px;
    line-height:1.3;
}
.recruit.row_page_common .recruitbg .name span {
    display:block;
    font-size:26px;
}
.recruit.row_page_common .recruitbg .attrib span {
    display:block;
    font-size:18px;
    letter-spacing:0;
}

.recruitexp.row_page_common h2 {
    font-size: 30px;
    padding:0;
}
.recruitexp.row_page_common h2 span {
    font-weight:500;
    letter-spacing:0em;
}
.recruitexp.row_page_common h2 span::after {
    display: none;
}
.recruitexp.row_page_common h2 .recruitq {
    display:block;
    margin-bottom:5px;
}
.recruitexp.row_page_common h2 .recruitq small {
    font-size:20px;
    line-height:1;
    font-weight:500;
    color:#1443ef;
    padding:0 4px 4px 4px;
    border-bottom:1px solid #1443ef;
}


/* bggray */
.bggray.row_page_common {
    position:relative;
}
.bggray.row_page_common .col_img_r {
    position:relative;
    margin-left:0;
}
.bggray.row_page_common .col_img_l {
    position:relative;
    margin-right:0;
}
.bggray.row_page_common .txtarea {
    position:relative;
    z-index:3;
    margin-top:140px;
    width:480px;
}
.bggray.row_page_common .col_txt_l.txtarea {
    margin-right:-60px;
}
.bggray.row_page_common .col_txt_r.txtarea {
    margin-left:-60px;
}
.bggray.row_page_common .txtarea .in {
    position:relative;
    background:#fafafa;
    padding:45px 40px 75px;
}
.bggray.row_page_common .txtarea h2 span {
    font-size: 22px;
    padding:0;
}
.bggray.row_page_common .txtarea h2 span::after {
    display:none;
}


.tx_right {
	text-align:right;
	}

/* サイトマップ */
/* .sitemap */
.smap {
	margin-left: 5px;
	margin-bottom: 20px;
}
.smap ul {
	margin: 0;
	padding: 0;
	list-style-type: none;
}
.smap li {
	margin: 0;
	padding-bottom: 5px;
}
.smap a {
	display: block;
	color: #000000;
	width: 100%;
	padding: 2px 10px;
	text-decoration: none;
	margin-bottom: 5px;
	margin-top: 5px;
	border-bottom-width: 1px;
	border-bottom-style: dotted;
	border-bottom-color: #CCCCCC;
	background-image: none;
}
.smap .nolink {
	display: block;
	color: #000000;
	width: 500px;
	padding: 2px 10px;
	text-decoration: none;
	margin-bottom: 5px;
	margin-top: 5px;
	border-bottom-width: 1px;
	border-bottom-style: dotted;
	border-bottom-color: #CCCCCC;
	background-image: none;
}
.smap a:hover {
	color: #333;
	border-bottom-width: 1px;
	border-bottom-style: solid;
	border-bottom-color: #CCCCCC;
}
.smap ul ul {
	margin-left: 20px;
	padding: 0;
	list-style-type: none;
}
.smap li li a {
	display: block;
	color: #333;
	width: 280px;
	padding: 5px 10px;
	margin: 0;
	text-decoration: none;
	border-left-width: 1px;
	border-top-style: none;
	border-bottom-style: dotted;
	border-left-style: solid;
	border-left-color: #CCCCCC;
	border-bottom-width: 1px;
	border-bottom-color: #CCCCCC;
}
/* 第一階層 */
.smap > li > a {
	font-size: 110%;
	font-weight: bold;
}

.fs12 {
	font-size:12px;
	}
	
.kline {
	border-top:#ccc dotted 1px;
	border-bottom:#ccc dotted 1px;
	padding:20px;
	background-color:#F4F4F4;
	
	}
@media screen and (min-width: 768px) {
.pc_ml20 {
	margin-left:0px;
	}
}

/* wp-pagenavi */
.wp-pagenavi {
    padding: 0;
    margin: 50px 0 40px;
    overflow: hidden;
    position: relative;
    text-align: center;
}
.wp-pagenavi a {
    display: inline-block;
    margin: 0 2px;
    text-align: center;
    list-style: none;
}
.wp-pagenavi a:hover {
    opacity: 0.6;
    border: 1px solid #1443ef;
}
.wp-pagenavi a,
.wp-pagenavi span {
    transition: all .6s ease;
    display: inline-block;
    width: auto;
    padding: 7px 10px;
    margin: 2px 4px 2px;
    color: #1443ef;
    text-decoration: none;
    line-height: 1;
    border: 1px solid #1443ef;
}
.wp-pagenavi .current {
    background: #1443ef;
    color: #FFF;
    border-color: #1443ef;
}

/* /news/ */
.lower article section .news .catlist {}
.lower article section .news .catlist li {
    min-width:215px;
    background:#112659;
    text-align:center;
    margin:0 0.5em 1em;
}
.lower article section .news .catlist li:hover { outline:1px solid #1443ef; -webkit-transition: all .3s; transition: all .3s; }
.lower article section .news .catlist li a {
    color:#FFF;
    display:block;
    padding:1em 1em;
}
.lower article section .navigation {}
.lower article section .navigation li {
    width:420px;
    background:#FFF;
    border:1px solid #1443ef;
    text-align:center;
    margin:0 0.5em;
}
.lower article section .navigation li:hover { outline:1px solid #1443ef; -webkit-transition: all .3s; transition: all .3s; }
.lower article section .navigation li.disnon { border:none; }
.lower article section .navigation li a {
    color:#1443ef;
    display:block;
    padding:1em 1em;
    position:relative;
}
.lower article section .navigation li.navileft a:after,
.lower article section .navigation li.naviright a:before {
    content:"\f105";
    color:#1443ef;
    font-family: "Font Awesome 5 Free";
    font-weight:900;
    position:absolute;
    right: 1em;
    top: 50%;
    transform: translateY(-50%);
    -webkit- transform: translateY(-50%);
}
.lower article section .navigation li.navileft a:after {
    content:"\f104";
    right: auto;
    left:1em;
}


.lower article section .news .ind {}
.lower article section .news .ind:after { content: ""; display: block; clear: both; }
.lower article section .news .ind:nth-of-type(n + 2) {
    padding-top:40px;
    border-top:1px solid #DDD;
}
.lower article section .news .ind .contbox {}
.lower article section .news .ind .contbox .imgwrap {
    width:35%;
    max-height:200px;
    overflow:hidden;
    float:right;
    margin-left:40px;
}
.lower article section .news .ind .contbox .imgwrap img {
    width:100%;
    height:auto;
}

/* recruit */
.lower article section .recruit.tblwrap h3:nth-of-type(n + 2){
    padding-top:60px;
    border-top:1px solid #DDD;
}