@charset "UTF-8";

/* lastest update: 2025/11/17 */

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html, body {
  width: 100%;
  height: 100%;
}


body {
    font-size:14px;
    line-height:1.8;
    font-family: "游ゴシック", YuGothic, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, Verdana, sans-serif;
    color:#000;
    letter-spacing: .1em;
}


ul, ol, li {
    list-style:none;
}


table {
    border-collapse: collapse;
    border:none;
}


a {
    text-decoration: none;
    color:#000;
}


.pc {display:block;}
.sp {display:none;}


@media all and (max-width:968px) {
.pc {display:none;}
.sp {display:block;}
}


.center {text-align:center !important;}
.right {text-align:right !important;}
.left {text-align:left !important;}


.mb5 {margin-bottom:5px !important;}
.mb10 {margin-bottom:10px !important;}
.mb15 {margin-bottom:15px !important;}
.mb20 {margin-bottom:20px !important;}
.mb30 {margin-bottom:30px !important;}
.mb40 {margin-bottom:40px !important;}
.mb50 {margin-bottom:50px !important;}
.mb60 {margin-bottom:60px !important;}
.mb70 {margin-bottom:70px !important;}
.mb80 {margin-bottom:80px !important;}
.mb90 {margin-bottom:90px !important;}
.mb100 {margin-bottom:100px !important;}
.mb120 {margin-bottom:120px !important;}
.mb150 {margin-bottom:150px !important;}

.pt50 {padding-top:50px !important;}
.pt0 {padding-top:0 !important;}

.clear {clear: both;}



/* loading */
#loadingWrap {
    width: 100%;
    height: 100vh;
    background: #000;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 10;
}
        
#loading {
    width: 5em;
    height: 5em;
    border-top: 3px solid rgba(255, 255, 255, 0.2);
    border-right: 3px solid rgba(255, 255, 255, 0.2);
    border-bottom: 3px solid rgba(255, 255, 255, 0.2);
    border-left: 3px solid rgba(255, 255, 255, 1);
    animation: loaderAnime 1s infinite linear;
    border-radius: 50%;
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    margin: auto;
    z-index: 11;
}
        
@keyframes loaderAnime {
    0% {
        transform: rotate(0deg);
    }
    100% {
        transform: rotate(360deg);
    }
}
        
.loadingNone {
    animation: loadingAnime 1s forwards;
}
        
@keyframes loadingAnime {
    0% {
        opacity: 1;
    }
    99% {
        opacity: 0;
    }
    100% {
        opacity: 0;
        display: none;
        z-index:-100;
    }
}
  



#wrapper {
    width:100%;
    padding:0 0 0 60px;
}


@media all and (max-width:968px) {
#wrapper {
    width:100%;
    padding:60px 0 0;
}    
}


.sp_logo {
    width:200px;
    position:absolute;
    top:10px;
    left:10px;
}


.block_content {
    width:100%;
    height:100%;
    position:fixed;
    top:0;
    left:0;
    right:0;
    bottom:0;
    background:rgba(255,255,255,.9);
    padding:3% 2% 5% 5.5%;
    z-index:999;
    transform: translateX(-100%);
    transition:  transform 1s cubic-bezier(0.215, 0.61, 0.355, 1);
    overflow:scroll;
}


.open .block_content {
    transform: translateX(0);
}


@media all and (max-width:968px) {
.block_content {
    width:100%;
    height:100%;
    position:fixed;
    top:0;
    left:0;
    right:0;
    bottom:0;
    background:rgba(255,255,255,.9);
    padding:75px 2% 5% 5.5%;
    z-index:999;
    transform: translateY(-100%);
    transition:  transform 1s cubic-bezier(0.215, 0.61, 0.355, 1);
    overflow:scroll;
}
    
.open .block_content {
    transform: translateY(0);
}  
}

.block_content .area_logo {
    width:100%;
    padding:1em;
    border-bottom:1px solid #CCC;
    margin:0 0 1em;
    position:relative;
}

.block_content #logo {
    display:block;
    width:250px;
    margin:0;
    
}


.block_content .area_logo a.btn_contact, .block_content .area_logo a.btn_call {
    display:block;
    width:300px;
    padding:1em;
    text-align:center;
    border:1px solid #333;
    color:#333;
    background:#FFF;
    position:absolute;
    right:320px;
    top:10px;
    font-family: toppan-bunkyu-mincho-pr6n, serif;
    font-weight: 400;
    font-style: normal;
    transition:  all 1s cubic-bezier(0.215, 0.61, 0.355, 1);
    margin:0;
}


.block_content .area_logo a.btn_call {
    display:block;
    width:300px;
    padding:.7em 1em;
    text-align:center;
    border:1px solid #333;
    color:#333;
    background:#FFF;
    position:absolute;
    right:0;
    top:10px;
    font-family: toppan-bunkyu-mincho-pr6n, serif;
    font-weight: 400;
    font-style: normal;
    transition:  all 1s cubic-bezier(0.215, 0.61, 0.355, 1);
    font-size:1.2em;
    margin:0;
}


.block_content .area_logo a.btn_contact:hover, .block_content .area_logo a.btn_call:hover {
    border:1px solid #000;
    color:#FFF;
    background:#000;
}



@media all and (max-width:968px) {
.block_content .area_logo {
    width:100%;
    padding:1em;
    border-bottom:1px solid #CCC;
    margin:0 0 1em;
    position:static;
}

.block_content #logo {
    display:block;
    width:250px;
    margin:0 auto 30px;
    text-align:center;
    
}


.block_content .area_logo a.btn_contact, .block_content .area_logo a.btn_call {
    display:block;
    width:100%;
    padding:1em;
    text-align:center;
    border:1px solid #333;
    color:#333;
    background:#FFF;
    position:static;
    right:auto;
    top:auto;
    font-family: toppan-bunkyu-mincho-pr6n, serif;
    font-weight: 400;
    font-style: normal;
    transition:  all 1s cubic-bezier(0.215, 0.61, 0.355, 1);
    margin:0 0 10px;
}


.block_content .area_logo a.btn_call {
    display:block;
    width:100%;
    padding:.7em 1em;
    text-align:center;
    border:1px solid #333;
    color:#333;
    background:#FFF;
    position:static;
    right:auto;
    top:auto;
    font-family: toppan-bunkyu-mincho-pr6n, serif;
    font-weight: 400;
    font-style: normal;
    transition:  all 1s cubic-bezier(0.215, 0.61, 0.355, 1);
    font-size:1.2em;
    margin:0 0 10px;
}


.block_content .area_logo a.btn_contact:hover, .block_content .area_logo a.btn_call:hover {
    border:1px solid #000;
    color:#FFF;
    background:#000;
}
}



.menu_title {
    padding:1em;
    position:relative;
}


.menu_title h3 {
    font-family: "游明朝", YuMincho, "ヒラギノ明朝 Pro W3", "Hiragino Mincho Pro", "ＭＳ Ｐ明朝", "MS PMincho", "serif";
    font-weight:normal;
    font-size:18px;
}


.menu_title a {
    position:absolute;
    top:1em;
    right:1em;
    padding:.5em .8em;
    border:1px solid #CCC;
    font-size:12px;
    color:#000;
    text-decoration:none;
    transition:all .5s ease;
}


.menu_title a:hover {
    border:1px solid #000;
}


.menu_list {
    width:100%;
    padding:0 0 1em;
    border-bottom:1px solid #CCC;
    margin:0 0 1em;
    overflow:hidden;
}


.menu_list li {
    width:25%;
    float:left;
}


.menu_list li a {
    display:block;
    width:100%;
    padding:1em;
    transition:all .3s ease;
    background:rgba(255,255,255,0);
    color:#000;
    text-decoration: none;
}


.menu_list li a:hover {
    background:rgba(255,255,255,.4);
}


.menu_img {
    width:100%;
    background:#CCC;
    margin:0 0 10px;
}


.title_content {
    margin:0 0 15px;
    font-family: toppan-bunkyu-mincho-pr6n, serif;
    font-weight: 400;
    font-style: normal;
}


.menu_img img {
    width:100%;
    vertical-align: bottom;
    transition:all .3s ease;
}


.menu_list li a:hover .menu_img img {
    opacity:.8;
}


@media all and (max-width:968px) {
.menu_list li {
    width:50%;
    float:left;
}


.menu_list li a {
    display:block;
    width:100%;
    padding:.5em;
    transition:all .3s ease;
    background:rgba(255,255,255,0);
    color:#000;
    text-decoration: none;
}
}


.list_works {
    width:100%;
    padding:0 0 1em;
    border-bottom:1px solid #CCC;
    margin:0 0 1em;
    overflow:hidden;
}


.list_works li {
    width:20%;
    float:left;
    padding:1em;
}


.list_works li a {
    display:block;
    width:100%;
    background:#000;
    overflow:hidden;
    color:#FFF;
    text-decoration: none;
    text-align:center;
    position:relative;
    transition:all 1s ease;
}


.list_works li a:hover {
    background:#000;
}


.list_works li a span {
    display:block;
    width:100%;
    text-align:center;
    transition:all 1s ease;
    opacity:0;
    position:absolute;
    left:50%;
    top:50%;
    transform:translateX(-50%) translateY(-50%);
    z-index:10;
}


.list_works li a:hover span {
    opacity:1;
}


.list_works li a img {
    display:block;
    width:100%;
    opacity:1;
    transition:all 1s ease;
}

.list_works li a:hover img {
    transform: scale(1.1);
    opacity:.5;
    
}


@media all and (max-width:968px) {
.list_works li {
    width:100%;
    float:left;
    padding:.5em;
}
    
    
.list_works li a {
    display:block;
    width:100%;
    background:#000;
    overflow:hidden;
    color:#FFF;
    text-decoration: none;
    text-align:center;
    position:relative;
    transition:all 1s ease;
}
    
    
.list_works li a span {
    display:block;
    width:100%;
    text-align:center;
    transition:all 1s ease;
    opacity:1;
    position:absolute;
    left:50%;
    top:50%;
    transform:translateX(-50%) translateY(-50%);
    z-index:10;
}
    
    
.list_works li a img {
    display:block;
    width:100%;
    opacity:.5;
}
}


.side_navi {
  width: 60px;
  height: 100%;
  background: #000;
  color: #FFF;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 9999;
}
.side_navi_inner {
  width: 100%;
  height: 100%;
  position: relative;
}
.btn_menu {
  width: 36px;
  height: 36px;
  position: relative;
  top: 50%;
  left: 50%;
  right:auto;
  margin: -18px 0 0 -18px;
  background: #000;
  border:1px solid #FFF;
  border-radius: 30px;
  overflow: hidden;
}
.btn_menu span {
  display: block;
  width: 20px;
  height: 1px;
  background: #FFF;
  margin: 17px auto;
  position: relative;
  transition:all .3s ease;
}
.btn_menu span::before, .btn_menu span::after {
  display: block;
  content: "";
  width: 20px;
  height: 1px;
  background: #FFF;
  position: absolute;
  transition:all .3s ease;
}
.btn_menu span::before {
  top: -5px;
}
.btn_menu span::after {
  bottom: -5px;
}
.btn_menu.inAction span {
  display: block;
  width: 20px;
  height: 1px;
  background: #000;
  margin: 17px auto;
  position: relative;
}
.btn_menu.inAction span::before, .btn_menu.inAction span::after {
  display: block;
  content: "";
  width: 20px;
  height: 1px;
  background: #FFF;
  position: absolute;
}
.btn_menu.inAction span::before {
  top: 0;
  transform: rotate(45deg);
}
.btn_menu.inAction span::after {
  bottom: 0;
  transform: rotate(-45deg);
}


@media all and (max-width:968px) {
.side_navi {
  width: 100%;
  height: 60px;
  background: #000;
  color: #FFF;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 9999;
}
.side_navi_inner {
  width: 100%;
  height: 100%;
  position: relative;
}
.btn_menu {
  width: 36px;
  height: 36px;
  position: absolute;
  top: 50%;
  left:auto;
  right: 10px;
  margin: -18px 0 0 0;
  background: #000;
  border:1px solid #FFF;
  border-radius: 30px;
  overflow: hidden;
}
}


.v_title_h3 {
    -webkit-writing-mode: vertical-rl;
    -ms-writing-mode: tb-rl;
    writing-mode: vertical-rl;
    font-size:30px;
    font-family: "游明朝", YuMincho, "ヒラギノ明朝 Pro W3", "Hiragino Mincho Pro", "ＭＳ Ｐ明朝", "MS PMincho", "serif";
    margin:0 auto;
    font-weight:normal;
    padding:1.3em 0 1.3em .7em;
    letter-spacing: .2em;
    width:2.2em;
    text-align:left;
    position:relative;
    border-top:3px double #000;
    border-bottom:3px double #000;
}


.v_title_h3::before {
    content:attr(data-title);
    font-size:.4em;
    position:absolute;
    left:0px;
    letter-spacing: .2em;
}



@media all and (max-width:968px) {
.v_title_h3 {
    -webkit-writing-mode: lr-tb;
    -ms-writing-mode: lr-tb;
    writing-mode: lr-tb;
    font-size:26px;
    font-family: "游明朝", YuMincho, "ヒラギノ明朝 Pro W3", "Hiragino Mincho Pro", "ＭＳ Ｐ明朝", "MS PMincho", "serif";
    margin:0 auto 20px;
    font-weight:normal;
    padding:.2em .5em .5em;
    letter-spacing: .2em;
    width:90%;
    text-align:center;
    position:relative;
    border-top:none;
    border-bottom:none;
}


.v_title_h3::before {
    content:attr(data-title);
    font-size:.4em;
    position:absolute;
    left:50%;
    bottom:5px;
    transform:translateX(-50%);
    letter-spacing: .2em;
}
}



.h_title_h3 {
    font-size:26px;
    font-family: "游明朝", YuMincho, "ヒラギノ明朝 Pro W3", "Hiragino Mincho Pro", "ＭＳ Ｐ明朝", "MS PMincho", "serif";
    margin:0 auto 20px;
    font-weight:normal;
    padding:.2em .5em .7em;
    letter-spacing: .2em;
    width:90%;
    text-align:center;
    position:relative;
    border-top:none;
    border-bottom:none;
}


.h_title_h3::before {
    content:attr(data-title);
    font-size:.4em;
    display:block;
    width:100%;
    position:absolute;
    left:50%;
    bottom:5px;
    transform:translateX(-50%);
    letter-spacing: .2em;
}



@media all and (max-width:968px) {
.h_title_h3 {
    font-size:26px;
    font-family: "游明朝", YuMincho, "ヒラギノ明朝 Pro W3", "Hiragino Mincho Pro", "ＭＳ Ｐ明朝", "MS PMincho", "serif";
    margin:0 auto 20px;
    font-weight:normal;
    padding:.2em 0 .7em;
    letter-spacing: .2em;
    width:90%;
    text-align:center;
    position:relative;
    border-top:none;
    border-bottom:none;
}


.h_title_h3::before {
    content:attr(data-title);
    font-size:.4em;
    display:block;
    width:100%;
    position:absolute;
    left:50%;
    bottom:5px;
    transform:translateX(-50%);
    letter-spacing: .2em;
}
}




.title_h4 {
    font-family: toppan-bunkyu-mincho-pr6n, serif;
    font-style: bold;
    font-size:1.5em;
    padding:0;
}


@media all and (max-width:968px) {
.title_h4 {
    font-family: toppan-bunkyu-mincho-pr6n, serif;
    font-style: bold;
    font-size:1.3em;
    padding:0;
}
}



/* TOPページ関連 */
#s01 {
	width:100%;
	height:150px;
	background:#F1F2F2;
	background-repeat:no-repeat;
	background-position:center center;
	background-size:cover;
	position:relative;
}


#s01 p {
    position: absolute;
    z-index: 10;
    top: 2.4em;
    right: 2.5em;
    -webkit-writing-mode: vertical-rl;
    -ms-writing-mode: tb-rl;
    writing-mode: vertical-rl;
    font-size:1.7vw;
    font-family: toppan-bunkyu-mincho-pr6n, serif;
    font-weight: 400;
    font-style: normal;
}


#s01 p span {
    background: #fff;
    padding: .6em .2em;
    margin:0 0 0 1em;
    display: inline-block;
}



@media all and (max-width:968px) {
#s01 p {
    position: absolute;
    z-index: 10;
    top: 2.4em;
    left: 50%;
    transform: translateX(-48%);
    -webkit-writing-mode: vertical-rl;
    -ms-writing-mode: tb-rl;
    writing-mode: vertical-rl;
    font-size:5vw;
    font-family: toppan-bunkyu-mincho-pr6n, serif;
    font-weight: 400;
    font-style: normal;
}
    
#s01 p span {
    background: #fff;
    padding: .6em .2em;
    margin:0 1em 0 0;
    display: inline-block;
}
}



.section {
    width:100%;
    margin:0 auto;
    overflow:hidden;
    padding:3.5em 0;
}


.section_special {
    width:96%;
    margin:0 auto;
    overflow:hidden;
    padding:3.5em 0;
}


.img_section_left {
    width:50%;
    float:left;
}


.img_section_right {
    width:50%;
    float:right;
}


.img_section_left img, .img_section_right img {
    width:100%;
}


.txt_section_left {
    width:50%;
    float:left;
    padding:5em 5em 0 0;
}


.txt_section_right {
    width:50%;
    float:right;
    padding:5em 0 0 5em;
}


.section_news {
    width:1000px;
    margin:0 auto;
    overflow:hidden;
}


.section_news .txt_section_left {
    width:30%;
    float:left;
    padding:5em;
}


.section_news .txt_section_right {
    width:70%;
    float:right;
    padding:5em 1em 0;
}


.section_works {
    width:100%;
    margin:0 auto;
    padding:3.5em 0 12em;
    position:relative;
    background:#EEE;
}


.section_works img {
    display:block;
    width:96%;
    margin:0 auto;
}


.box_works_summary {
    width:40%;
    padding:4em 3em;
    background:#FFF;
    position:absolute;
    bottom:50px;
    left:5%;
    overflow:hidden;
}


.box_works_summary2 {
    width:40%;
    padding:4em 3em;
    background:#FFF;
    position:absolute;
    bottom:50px;
    right:5%;
    overflow:hidden;
}


.works_summary_title {
    width:10%;
    float:left;
}


.works_summary_text {
    width:80%;
    float:right;
    padding:0 0 0 3em;
}


@media all and (max-width:968px) {
.img_section_left {
    width:100%;
    float:none;
}


.img_section_right {
    width:100%;
    float:none;
}
    
.txt_section_left {
    width:100%;
    float:none;
    padding:1em;
}


.txt_section_right {
    width:100%;
    float:none;
    padding:1em;
}
    
.section_news {
    width:96%;
    margin:0 auto;
    overflow:hidden;
}


.section_news .txt_section_left {
    width:100%;
    float:none;
    padding:2em 0 0;
}


.section_news .txt_section_right {
    width:100%;
    float:none;
    padding:0;
}
    
.section_works {
    width:100%;
    margin:0 auto;
    padding:3.5em 0;
    position:relative;
    background:#EEE;
}


.section_works img {
    display:block;
    width:96%;
    margin:0 auto;
}
    
.box_works_summary, .box_works_summary2 {
    width:96%;
    margin:0 auto;
    padding:1em;
    background:#FFF;
    position:static;
    bottom:auto;
    left:auto;
    overflow:hidden;
}


.works_summary_title {
    width:100%;
    float:none;
}


.works_summary_text {
    width:100%;
    float:none;
    padding:1em;
}
}


/* 会社紹介 */
.section_company {
    width:96%;
    margin:0 auto;
    overflow:hidden;
    padding:3.5em 0;
}


.list_company {
    width:100%;
    margin:0 auto;
    overflow:hidden;
    padding:5em 0;
}


.list_company li {
    width:20%;
    float:left;
    padding:0 1%;
    text-align:center;
}


.list_company li a {
    display:block;
    width:100%;
    height:500px;
    position:relative;
    font-family: toppan-bunkyu-mincho-pr6n, serif;
    font-weight: 400;
    font-style: normal;
    background:#000;
    overflow:hidden;
}


.list_company li a.companyInfo01::after {
    content:"";
    display:block;
    width:100%;
    height:100%;
    background:url("../images/top_company01.jpg") no-repeat center center;
    -webkit-background-size: cover;
    -moz-background-size: cover;
    -ms-background-size: cover;
    background-size: cover;
    -webkit-transition: all .3s ease-out;
    -moz-transition: all .3s ease-out;
    -ms-transition: all .3s ease-out;
    transition: all .3s ease-out;
}


.list_company li a.companyInfo02::after {
    content:"";
    display:block;
    width:100%;
    height:100%;
    background:url("../images/top_company02.jpg") no-repeat center center;
    -webkit-background-size: cover;
    -moz-background-size: cover;
    -ms-background-size: cover;
    background-size: cover;
    -webkit-transition: all .3s ease-out;
    -moz-transition: all .3s ease-out;
    -ms-transition: all .3s ease-out;
    transition: all .3s ease-out;
}


.list_company li a.companyInfo03::after {
    content:"";
    display:block;
    width:100%;
    height:100%;
    background:url("../images/top_company03.jpg") no-repeat center center;
    -webkit-background-size: cover;
    -moz-background-size: cover;
    -ms-background-size: cover;
    background-size: cover;
    -webkit-transition: all .3s ease-out;
    -moz-transition: all .3s ease-out;
    -ms-transition: all .3s ease-out;
    transition: all .3s ease-out;
}


.list_company li a.companyInfo04::after {
    content:"";
    display:block;
    width:100%;
    height:100%;
    background:url("../images/top_company04.jpg") no-repeat center center;
    -webkit-background-size: cover;
    -moz-background-size: cover;
    -ms-background-size: cover;
    background-size: cover;
    -webkit-transition: all .3s ease-out;
    -moz-transition: all .3s ease-out;
    -ms-transition: all .3s ease-out;
    transition: all .3s ease-out;
}


.list_company li a.companyInfo05::after {
    content:"";
    display:block;
    width:100%;
    height:100%;
    background:url("../images/top_company05.jpg") no-repeat center center;
    -webkit-background-size: cover;
    -moz-background-size: cover;
    -ms-background-size: cover;
    background-size: cover;
    -webkit-transition: all .3s ease-out;
    -moz-transition: all .3s ease-out;
    -ms-transition: all .3s ease-out;
    transition: all .3s ease-out;
}
.list_company li a.companyInfo01:hover::after,
.list_company li a.companyInfo02:hover::after,
.list_company li a.companyInfo03:hover::after,
.list_company li a.companyInfo04:hover::after {
    opacity: .8;
    -moz-transform: scale(1.1);
    -webkit-transform: scale(1.1);
    -ms-transform: scale(1.1);
    transform: scale(1.1);
}


.list_company li a h4 {
    -webkit-writing-mode: vertical-rl;
    -ms-writing-mode: tb-rl;
    writing-mode: vertical-rl;
    font-size:21px;
    padding:.6em .2em;
    background:#FFF;
    position:absolute;
    left:50%;
    top:50%;
    transform:translateX(-50%) translateY(-50%);
    z-index:999;
}


@media all and (max-width:968px) {
.list_company {
    width:100%;
    margin:0 auto;
    overflow:hidden;
    padding:2em 0 0;
}
    
.list_company li {
    width:50%;
    float:left;
    padding:0 2.5% 20px;
    text-align:center;
}
    
.list_company li a {
    display:block;
    width:100%;
    height:320px;
    position:relative;
    font-family: toppan-bunkyu-mincho-pr6n, serif;
    font-weight: 400;
    font-style: normal;
    background:#000;
    overflow:hidden;
}
    
.list_company li a h4 {
    -webkit-writing-mode: vertical-rl;
    -ms-writing-mode: tb-rl;
    writing-mode: vertical-rl;
    font-size:18px;
    padding:.4em .2em;
    background:#FFF;
    position:absolute;
    left:50%;
    top:50%;
    transform:translateX(-50%) translateY(-50%);
    z-index:999;
}
}



.section_recruit {
    width:100%;
    margin:0 auto;
    padding:3.5em 0 12em;
    position:relative;
    background:#EEE;
}


.section_recruit img {
    display:block;
    width:96%;
    margin:0 auto;
}


.box_recruit_summary {
    width:40%;
    padding:4em 3em;
    background:#FFF;
    position:absolute;
    bottom:50px;
    left:5%;
    overflow:hidden;
}


.recruit_summary_title {
    width:10%;
    float:left;
}


.recruit_summary_text {
    width:80%;
    float:right;
    padding:0 0 0 3em;
}


@media all and (max-width:968px) {
.section_recruit {
    width:100%;
    margin:0 auto;
    padding:3.5em 0;
    position:relative;
    background:#EEE;
}
    
.box_recruit_summary {
    width:96%;
    margin:0 auto;
    padding:1em;
    background:#FFF;
    position:static;
    bottom:auto;
    left:auto;
    overflow:hidden;
}
    
.recruit_summary_title {
    width:100%;
    float:none;
}


.recruit_summary_text {
    width:100%;
    float:none;
    padding:1em;
}
}



.list_news {
    width:100%;
    margin:0 auto;
    padding:0;
}


.list_news li {
    padding:1em 0;
    border-bottom:1px dotted #AAA;
}


.list_news li:first-child {
    padding:0 0 1em;
    border-bottom:1px dotted #AAA;
}


.list_news li:last-child {
    border:none;
}


/*.list_news li a {
    display:block;
    width:100%;
    padding:0;
}*/


.list_news li span {
    display:block;
    width:100%;
    padding:0 0 0 80px;
    position:relative;
}


.list_news li span::before {
    font-size:.7em;
    display:block;
    width:6em;
    text-align:center;
    padding:.3em .5em;
    background:#000;
    color:#FFF;
    content:attr(data-category);
    position:absolute;
    top:0;
    left:0;
}


@media all and (max-width:968px) {
.list_news {
    width:100%;
    margin:0 auto;
    padding:0;
}


.list_news li {
    padding:1em 0;
    border-bottom:1px dotted #AAA;
}


.list_news li:first-child {
    padding:0 0 1em;
    border-bottom:1px dotted #AAA;
}


/*.list_news li a {
    display:block;
    width:100%;
    padding:0;
}*/


.list_news li span {
    display:block;
    width:100%;
    padding:0 0 0 75px;
    position:relative;
}


.list_news li span::before {
    font-size:.7em;
    display:block;
    width:6em;
    text-align:center;
    padding:.3em .5em;
    background:#000;
    color:#FFF;
    content:attr(data-category);
    position:absolute;
    top:0;
    left:0;
}
}


.gotoList {
    padding:.5em 3em .5em 0;
    position:relative;
    transition:all .3s ease;
    color:#666;
}


.gotoList:hover {
    color:#000;
}


.gotoList::before {
    content:"";
    display:block;
    width:25px;
    height:1px;
    background:#666;
    position:absolute;
    top:1em;
    right:10px;
    transition:all .3s ease;
}


.gotoList::after {
    content:"";
    display:block;
    width:7px;
    height:7px;
    border-top:1px solid #666;
    border-right:1px solid #666;
    transform:rotate(45deg);
    position:absolute;
    top:.8em;
    right:10px;
    transition:all .3s ease;
}


.gotoList:hover::before {
    content:"";
    display:block;
    width:25px;
    height:1px;
    background:#000;
    position:absolute;
    top:1em;
    right:0;
}


.gotoList:hover::after {
    content:"";
    display:block;
    width:7px;
    height:7px;
    border-top:1px solid #000;
    border-right:1px solid #000;
    transform:rotate(45deg);
    position:absolute;
    top:.8em;
    right:0;
}




/* footer */
footer {
    width:100%;
    padding:2em 0;
    background:#000;
    color:#FFF;
    font-family: "游明朝", YuMincho, "ヒラギノ明朝 Pro W3", "Hiragino Mincho Pro", "ＭＳ Ｐ明朝", "MS PMincho", "serif";
}


footer a {
    color:#FFF;
}


.inner_footer {
    width:1200px;
    margin:0 auto;
}


.footer_menu {
    width:100%;
    padding:1.5em 0;
    border-bottom:1px solid #CCC;
    text-align:center;
    font-size:12px;
}


.footer_menu li {
    display:inline-block;
    padding:0 1.5em;
    border-right:1px solid #CCC;
}


.footer_menu li:last-child {
    display:inline-block;
    padding:0 1.5em;
    border:none;
}


.footer_subcontent {
    width:100%;
    padding:1em 0;
    overflow:hidden;
    font-size:11px;
}


.subcontent_left {
    width:50%;
    float:left;
    text-align:left;
}


.subcontent_right {
    width:50%;
    float:right;
    text-align:right;
}


@media all and (min-width:969px) and (max-width:1199px) {
.inner_footer {
    width:100%;
    margin:0 auto;
    padding:0 0 0 60px;
}    
}


@media all and (max-width:968px) {
.inner_footer {
    width:100%;
    margin:0 auto;
    padding:0;
}
    
.footer_menu {
    display:none;
}
    
.footer_subcontent {
    width:100%;
    padding:1em 0;
    overflow:hidden;
    font-size:11px;
}


.subcontent_left {
    width:100%;
    float:none;
    text-align:center;
    padding:0 1.5em 1.5em;
    border-bottom:1px solid #FFF;
}


.subcontent_right {
    width:100%;
    float:none;
    text-align:center;
    padding:1.5em 1.5em 0;
}
}





/*********************************************************/
/*********************************************************/
/*********************　下層ページ　************************/
/*********************************************************/
/*********************************************************/
.title_h2 {
    width:100%;
    margin:0 auto;
    height:350px;
    background:#000;
    background-repeat: no-repeat;
    background-position: center center;
    background-size:cover;
    position:relative;
}


.bg_aboutus {
    background-image: url("../images/bg_aboutus.jpg");
}

.bg_company {
    background-image: url("../images/bg_company.jpg");
}


.bg_recruit {
    background-image: url("../images/bg_recruit2.jpg");
}


.bg_news {
    background-image: url("../images/bg_news.jpg");
}


.bg_project {
    background-image: url("../images/bg_project.jpg");
}


.bg_works {
    background-image: url("../images/bg_works.jpg");
}


.title_h2 h2 {
    display:inline-block;
    background:#FFF;
    padding:.5em .8em;
    position:absolute;
    top:50%;
    transform:translateY(-50%);
    left:50px;
    font-family: toppan-bunkyu-mincho-pr6n, serif;
    font-weight: bold;
    font-size:30px;
    letter-spacing: .2em;
}


.title_h2 h2::after {
    content:attr(data-title);
    display:block;
    font-size:14px;
    letter-spacing: .1em;
}


@media all and (max-width:968px) {
.title_h2 {
    width:100%;
    margin:0 auto;
    height:200px;
    background:#000;
    background-repeat: no-repeat;
    background-position: center center;
    background-size:cover;
    position:relative;
}


.bg_aboutus {
    background-image: url("../images/bg_aboutus.jpg");
}
    
.bg_company {
    background-image: url("../images/bg_company.jpg");
}
       
.bg_recruit {
    background-image: url("../images/bg_recruit2.jpg");
}
    
.bg_news {
    background-image: url("../images/bg_news.jpg");
}
    
.bg_project {
    background-image: url("../images/bg_project.jpg");
}
    
.bg_works {
    background-image: url("../images/bg_works.jpg");
}


.title_h2 h2 {
    display:inline-block;
    background:#FFF;
    padding:.5em .8em;
    position:absolute;
    top:50%;
    transform:translateY(-50%);
    left:20px;
    font-family: toppan-bunkyu-mincho-pr6n, serif;
    font-weight: bold;
    font-size:26px;
    letter-spacing: .2em;
}


.title_h2 h2::after {
    content:attr(data-title);
    display:block;
    font-size:12px;
    letter-spacing: .1em;
}
}


.block_breadcrumb {
    padding:1em 50px;
    font-size:13px;
    border-bottom:1px dotted #DDD;
}


@media all and (max-width:968px) {
.block_breadcrumb {
    padding:1em 20px;
    font-size:12px;
    border-bottom:1px dotted #DDD;
}
}


#container {
    width:100%;
    padding:70px 0 100px;
}


.section_sub {
    width:80%;
    margin:0 auto 150px;
    overflow:hidden;
    padding:2em 0;
}


.section_sub .img_section_left {
    width:50%;
    float:left;
}


.section_sub .img_section_right {
    width:50%;
    float:right;
}


.section_sub .img_section_left img, .section_sub .img_section_right img {
    width:100%;
}


.section_sub .txt_section_left {
    width:50%;
    float:left;
    padding:0 3em 0 0;
}


.section_sub .txt_section_right {
    width:50%;
    float:right;
    padding:0 0 0 3em;
}


@media all and (max-width:968px) {
.section_sub {
    width:90%;
    margin:0 auto 100px;
    overflow:hidden;
    padding:2em 0;
}
    
.section_sub  .img_section_left {
    width:100%;
    float:none;
}


.section_sub  .img_section_right {
    width:100%;
    float:none;
}
    
.section_sub  .txt_section_left {
    width:100%;
    float:none;
    padding:1em;
}


.section_sub .txt_section_right {
    width:100%;
    float:none;
    padding:1em;
}
}


.section_gallery {
    width:80%;
    margin:0 auto 150px;
    overflow:hidden;
    padding:2em 0;
}


.section_gallery img {
    width:100%;
    padding:0 0 2em;
}


@media all and (max-width:968px) {
.section_gallery {
    width:90%;
    margin:0 auto;
    overflow:hidden;
    padding:2em 0;
}


.section_gallery img {
    width:100%;
    padding:0 0 2em;
}
}


.ceo_name {
    font-size:16px;
    font-family: toppan-bunkyu-mincho-pr6n, serif;
    padding:.5em 0;
    text-align:center;
}


.ceo_name span {
    font-size:0.7em;
}



.tbl_01 {
    width:80%;
    margin:0 auto;
    border:none;
    border-collapse: collapse;
}


.tbl_01 tr {
    border-bottom:1px solid #DDD;
}


.tbl_01 tr:last-child {
    border:none;
}


.tbl_01 th, .tbl_01 td {
    display:table-cell;
    padding:1em;
}

.tbl_01 th {
    width:25%;
    text-align:center;
}


@media all and (max-width:968px) {
.tbl_01 {
    width:100%;
    margin:0 auto;
    border:none;
    border-collapse: collapse;
}
    
.tbl_01 th {
    display:block;
    padding:1em .5em .5em;
    width:100%;
    text-align:left;
}
    
.tbl_01 td {
    display:block;
    padding:0 .5em 1em;
    width:100%;
    text-align:left;
}
}


.list_history {
    width:80%;
    margin:0 auto;
    padding:1em 0;
    position:relative;
}


.list_history::before {
    content:"";
    display:block;
    width:1px;
    height:auto;
    background:#CCC;
    position:absolute;
    top:0;
    bottom:0;
    left:11px;
    z-index:-1;
}


.list_history li {
    padding:1em 1em 1em 3em;
    position:relative;
}


.list_history li::before {
    content:"";
    display:block;
    width:15px;
    height:15px;
    border-radius: 30px;
    background:#CCC;
    position:absolute;
    top:18px;
    left:4px;
}


.list_history li span {
    display:inline-block;
    width:7em;
}


@media all and (max-width:968px) {
.list_history {
    width:100%;
    margin:0 auto;
    padding:1em 0;
    position:relative;
}


.list_history::before {
    content:"";
    display:block;
    width:1px;
    height:auto;
    background:#CCC;
    position:absolute;
    top:0;
    bottom:0;
    left:11px;
    z-index:-1;
}


.list_history li {
    padding:1em 1em 1em 3em;
    position:relative;
}


.list_history li::before {
    content:"";
    display:block;
    width:15px;
    height:15px;
    border-radius: 30px;
    background:#CCC;
    position:absolute;
    top:18px;
    left:4px;
}


.list_history li span {
    display:block;
    width:100%;
}
}


.sub_list_works {
    width:100%;
    padding:0 0 1em;
    margin:0 0 1em;
    overflow:hidden;
}


.sub_list_works li {
    width:33%;
    float:left;
    padding:2em;
}


.sub_list_works li a {
    display:block;
    width:100%;
    background:#000;
    overflow:hidden;
    color:#FFF;
    text-decoration: none;
    text-align:center;
    position:relative;
    transition:all .5s ease;
}


.sub_list_works li a:hover {
    background:#000;
}


.sub_list_works li a span {
    display:block;
    width:100%;
    text-align:center;
    transition:all .5s ease;
    opacity:0;
    position:absolute;
    left:50%;
    top:50%;
    transform:translateX(-50%) translateY(-50%);
    z-index:10;
}


.sub_list_works li a:hover span {
    opacity:1;
}


.sub_list_works li a img {
    display:block;
    width:100%;
    opacity:1;
    transition:all .5s ease;
}

.sub_list_works li a:hover img {
    transform: scale(1.1);
    opacity:.5;
    
}


@media all and (max-width:968px) {
.sub_list_works li {
    width:100%;
    float:left;
    padding:.5em;
}
    
    
.sub_list_works li a {
    display:block;
    width:100%;
    background:#000;
    overflow:hidden;
    color:#FFF;
    text-decoration: none;
    text-align:center;
    position:relative;
    transition:all 1s ease;
}
    
    
.sub_list_works li a span {
    display:block;
    width:100%;
    text-align:center;
    transition:all 1s ease;
    opacity:1;
    position:absolute;
    left:50%;
    top:50%;
    transform:translateX(-50%) translateY(-50%);
    z-index:10;
}
    
    
.sub_list_works li a img {
    display:block;
    width:100%;
    opacity:.5;
}
}


.block_jobInfo dl {
    width:100%;
    border-top:1px solid #DDD;
    padding:1.5em;
    overflow: hidden;
}


.block_jobInfo dt {
    width:25%;
    float:left;
    font-size:1.2em;
}

.block_jobInfo dd {
    width:75%;
    float:left;
    padding:0;
}


@media all and (max-width:560px) {
.block_jobInfo dl {
    width:100%;
    border-top:1px solid #DDD;
    padding:1.5em 0;
    overflow: hidden;
}


.block_jobInfo dt {
    width:25%;
    float:left;
    font-size:1em;
}

.block_jobInfo dd {
    width:75%;
    float:left;
    padding:0 0 0 1em;
}    
}


.contact_recruit {
    width:100%;
    max-width:1000px;
    text-align:center;
    margin:0 auto;
    padding:2em 0;
}


.contact_recruit h4 {
    font-size:1.4em;
    font-family: toppan-bunkyu-mincho-pr6n, serif;
    margin:0 0 30px;
}


.contact_recruit .btn_contact,
.contact_recruit .btn_call {
    width:40%;
    font-size:1.1em;
    margin:0 2.5%;
    display:inline-block;
    padding:1.5em .5em;
    border:1px solid #000;
}


@media all and (max-width:768px) {
.contact_recruit .btn_contact,
.contact_recruit .btn_call {
    width:100%;
    font-size:1.1em;
    margin:0 0 1em;
    display:inline-block;
    padding:1em;
    border:1px solid #000;
}   
}


.detail_btn {
    display: inline-block;
    margin-top: 10%;
    margin-right: 5%;
	float: left;
}
.detail_btn a {
    display: block;
    text-align: center;
    border: 1px solid #333;
    padding: 10px;
    width: 260px;
    position: relative;
}
.detail_btn a::after {
    content: "";
    position: absolute;
    background: #333;
    right: -40px;
    top: 50%;
    width: 80px;
    height: 1px;
    -webkit-transition: all .3s ease;
    transition: all .3s ease;
}
.detail_btn a:hover::after {
    right: -20px;
}