@charset "UTF-8";
/* CSS Document */

*, *:before, *:after {
  padding: 0;
  margin: 0;
  list-style: none;
    -webkit-box-sizing: border-box;
       -moz-box-sizing: border-box;
         -o-box-sizing: border-box;
        -ms-box-sizing: border-box;
            box-sizing: border-box;
}

body{
  background-color: #fff;
  color: #000;
  font-family: 'Noto Sans', "sans-serif", "メイリオ", Meiryo, Osaka, "ＭＳ ゴシック", "MS Gothic";
  font-size: 14px;
  text-align: center;
}

.wrapper {
  width: 1000px;
  margin: 0px auto;
}



a[href] {
  color:#000;
  text-decoration: underline;
}
a[href]:hover { color: #868686; text-decoration: none; }

a[href]:hover img { opacity: 0.8; }

.clfix:after {
  content: " ";
  display: block;
  font-size: 0px;
  height: 0px;
  clear: both;
}

.scroll-box {}

.simple_table th {
  text-align: left;
  font-weight: normal;
  padding-right: 1.5em;
}

.simple_table th, .simple_table td {padding: 3px 0px;}

.simple_table tr:nth-child(2n) {background-color: #EEEEEE;}


@media screen and (max-width: 900px) {
  .wrapper {
    width: 95vw;
  }
}

@media screen and (max-width: 520px) {
  body { font-size: 16px; -webkit-text-size-adjust: 100%; }
  td { font-size: 16px;  }
  
  .scroll-box {
    width: 95vw;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  .scroll-box:before {
    content: "← 左右にスクロールできます →";
    position:;
    display: block;
    font-size: 10px;
    padding: 3px;
    text-align: left;
  }
}

/*////////////////////
///header
////////////////////*/
header {
  width: 100%;
  display: block;
  position: relative;
  border-bottom: solid #000000 3px;
  margin-bottom: 18px;
}

header .wrapper {
  height: 65px;
}

header h1 {
  margin: 0px;
  display: block;
  float: left;
  width: 255px;
  height: 58px;
}
header h1 img {display: block;}

menu a, menu ul, menu li {
  -webkit-transition: all 0.4s ease;
  -moz-transition: all 0.4s ease;
  -o-transition: all 0.4s ease;
}

menu {
  display: block;
  margin: 0px 0px 0px 30px;
  float: left;
  width: 520px;
}

menu>ul>li {
  display: block;
  float: left;
  height: 65px;
  background-color: #fff;
  cursor: pointer;
}

menu>ul>li#menu_company { width: 120px; }
menu>ul>li#menu_works { width: 120px; }
menu>ul>li#menu_recruit { width: 120px; }
menu>ul>li#menu_map { width: 70px; }
menu>ul>li#menu_link { width: 90px; }

menu>ul>li:hover { background-color: #000; }

menu>ul>li a.main_menu {
  display: block;
  text-align: center;
  text-decoration: none;
  color: #000;
  font-size: 20px;
  line-height: 1em;
  font-weight: bold;
  padding-top: 15px;
}
menu>ul>li:hover a.main_menu { color: #fff; }

menu>ul>li .main_menu .en {
  display: block;
  font-size: 12px;
  line-height: 1em;
  margin-top: 5px;
}

border {
  width: 100%;
  display: block;
  position: relative;
  border-bottom: solid #000000 3px;
  margin-bottom: 18px;
  text-aligen: center;
}


/*サブメニュー*/
#sub_menu {
  display: block;
  width: 100%;
  background-color: #000;
}

#sub_menu ul {
  display: block;
  position: relative;
  width: 1000px;
  margin: 0px auto;
  padding: 0px;
  overflow: hidden;
  height: 0px;
}

#sub_menu ul li { display: block; margin: 0px; padding: 0px; }

#sub_menu p.menu_txt {
  display: none;
  color: #fff;
  font-size: 10px;
  line-height: 12px;
  margin: 0px;
  padding: 0px;
  padding-top: 5px
}

#sub_menu li a {
  text-decoration: none;
  color: #fff;
  font-size: 18px;
  line-height: 46px;
  padding: 0px 12px;
  margin: 0px 0px;
}
#sub_menu li a:hover { color: #868686; }

/*#sub_menu ul.m1 li.link_list {
  text-align: left;
  padding-left: 280px;
}
#sub_menu ul.m2 li.link_list {
  text-align: left;
  padding-left: 400px;
}
#sub_menu ul.m3 li.link_list {
  text-align: right;
}
#sub_menu ul.m4 li.link_list {
  text-align: left;
  padding-left: 640px;
}
#sub_menu ul.m5 li.link_list {
  text-align: right;
}*/

/*言語*/
#language_box {
  display: block;
  float: right;
  font-size: 12px;
  margin: 23px 0px 0px 0px;
}

#language_box li {
  display: inline;
  padding-left: 3px;
}

#language_box a { text-decoration: none; }


@media screen and (max-width: 900px) {
  header .wrapper {
    height: auto;
  }
  
  menu {
    margin: 0px auto;
    float: none;
    clear: both;
  }
  
  #sub_menu ul {
    width: auto;
  }
  
  /*#sub_menu ul.m1 li.link_list, #sub_menu ul.m2 li.link_list, #sub_menu ul.m3 li.link_list, #sub_menu ul.m4 li.link_list, #sub_menu ul.m5 li.link_list {
    padding-left: 0px;
    text-align: center;
  }*/
}

@media screen and (max-width: 520px) {
  menu>ul>li#menu_company { width: 110px; }
  menu>ul>li#menu_works { width: 110px; }
  menu>ul>li#menu_recruit { width: 110px; }
  menu>ul>li#menu_map { width: 70px; }
  menu>ul>li#menu_link { width: 90px; }
  
  #sub_menu li a {
    word-break: keep-all;
  }
}

.text-align-switch {

}
  @media screen and (max-width: 559px) {
    .text-align-switch {
      text-align: left; /* 559px以下だと左寄せになる */
    } 
  }

/*////////////////////
///slider
////////////////////*/
#top_slider {
  width: 100%;
  height: 630px;
  margin: 0px auto 0px auto;
  overflow: hidden;
}

#top_slider a img { display: block; }

#top_slider a {
  display: block;
  float: left;
  margin: 0px 10px;
  border: solid #DDD 1px;
  -webkit-transition: opacity 0.4s ease;
  -moz-transition: opacity 0.4s ease;
  -o-transition: opacity 0.4s ease;
}



/*////////////////////
///contents
////////////////////*/
.top_contents {
  margin-top: 20px;
  margin-bottom: 20px;
}

.contents {
  margin-top: 20px;
  margin-bottom: 20px;
  min-height: 500px;
}

#caution.wrapper {
  text-align: center;
  margin-bottom: 20px;
  font-weight: bold;
}

section {
  display: block;
  text-align: left;
  margin-bottom: 40px;
}

section h2 {
  display: block;
  color: #fff;
  background-color: #000;
  padding: 10px;
  font-size: 18px;
  line-height: 1em;
  margin-bottom: 10px;
}

section h3 {
  display: block;
  clear: both;
  font-weight: normal;
  font-size: 16px;
  border-left: solid 5px #000;
  padding-left: 8px;
  margin: 1.5em 0px;
}

h4 {
  display: block;
  color: #000;
  background-color: #c0c0c0;
  padding: 10px 10px 5px 10px;
  font-size: 18px;
  line-height: 1em;
  margin-top: -1px;
  margin-bottom: 10px;
  text-arigen: center;
}

h5 {
  display: block;
  color: #000;
  background-color: #c0c0c0;
  padding: 10px 10px 0px 10px;
  font-size: 54px;
  line-height: 1em;
  text-arigen: center;
}

section.one_colmun {
  width: 800px;
  margin-left: auto;
  margin-right: auto;
}


/*最新情報*/
#news_box {
  display: block;
  max-width: 400px;
  float: left;
}

section#news_box h2 {
}

#news_box dl {
  display: block;
  padding: 10px;
  height: 172px;
  overflow-y: scroll;
}

#news_box dt {
  display: block;
  float: left;
}

#news_box dd {
  display: block;
  margin-left: 6em;
  margin-bottom: 8px;
}

/*トップバナー*/
#banner_box {
  display: block;
  max-width: 560px;
  float: right;
}

#banner_box a, #banner_box img { display: block; }

#banner_box a {
  float: left;
  margin: 0px 0px 20px 20px;
}

@media screen and (max-width: 900px) {
  #news_box {
    max-width: 540px;
    float: none;
    clear: both;
    margin: 0px auto;
  }
  
  #banner_box {
    max-width: 580px;
    padding-right: 20px;
    float: none;
    clear: both;
    margin: 0px auto;
  }
}

@media screen and (max-width: 520px) {
  #banner_box {
    max-width: 440px;
  }
  section.one_colmun {
    width: 95vw;
  }
}

/*会社概要*/
#company_info dl {
  display: block;
  line-height: 1.8em;
}

.company_col_l {
  float: left;
  margin-right: 50px;
}

.company_col_r {
  float: left;
}

#company_info dt {
  display: block;
  float: left;
}

#company_info dd {
  display: block;
  padding-left: 5em;
}

.syachou { display: block; float: left; }
.syachou + span {
  display: block;
  padding-left: 8em;
}

#company_works ul {
  line-height: 1.8em;
}

#company_works li {
  list-style: disc;
  margin-left: 1.5em;
}

/*会社概要en*/
#en #company_info dd {
  padding-left: 11.5em;
}

#en .syachou { display: block; float: none; }
#en .syachou + span {
  display: block;
  padding-left: 1em;
}

/*作品一覧*/
#works_box {
  clear: both;
}

ul.works_link {
  display: block;
  margin-top: 20px;
  margin-bottom: 20px;
  border: solid 1px #000;
  float: left;
}

.works_link li {
  display: block;
  float: left;
  font-weight: bold;
  border-left: solid 1px #000;
}
.works_link li:first-child {
  border-left: none;
}

.works_link li a {
  display: block;
  padding: 5px 10px;
  text-decoration: none;
}

.works_link li a.current, .works_link li a:hover {
  background-color: #000;
  color: #FFF;
}

ul.work_cont {
    display:-webkit-box;
    display:-moz-box;
    display:-ms-box;
    display:-webkit-flexbox;
    display:-moz-flexbox;
    display:-ms-flexbox;
    display:-webkit-flex;
    display:-moz-flex;
    display:-ms-flex;
    display:flex;
    -webkit-box-lines:multiple;
    -moz-box-lines:multiple;
    -webkit-flex-wrap:wrap;
    -moz-flex-wrap:wrap;
    -ms-flex-wrap:wrap;
    flex-wrap:wrap;
}

li.works_box {
  display: block;
  background-color: #e5e5e5;
  float: left;
  padding: 8px;
  width: 320px;
  font-size: 12px;
  margin-right: 20px;
  margin-bottom: 20px;
}
li.works_box:nth-of-type(3n) { margin-right: 0px; }

.works_box h4 {
  font-size: 14px;
  line-height: 16px;
  margin-bottom: 10px;
}

.works_box .thumbnail {
  display: block;
  float: left;
  display: block;
}
.works_box .thumbnail img {
  display: block;
  width: 107px;
  height: auto;
}

.work_txt {
  float: right;
  width: 190px;
}

ul.works_icon { margin-top: 10px; width: 190px; }

.works_icon li {
  display: block;
  width: 60px;
  line-height: 20px;
  height: 20px;
  text-align: center;
  background-color: #9c9a9a;
  float: left;
  color: #595959;
  margin-right: 3px;
  margin-bottom: 3px;
  overflow: hidden;
}

.works_icon li.on {
  background-color: #f37222;
  color: #FFF;
}

li.works_box .works_icon li.s_txt {
  font-size: 11px;
}

/*テキスト用テーブル*/
#works_table, .decoration_table {
  border-top: solid 1px #000;
  border-left: solid 1px #000;
}

#works_table th, .decoration_table th {
  padding: 3px 6px;
  background-color: #000;
  color: #FFF;
  text-align: center;
  border-right: solid 1px #FFF;
  border-bottom: solid 1px #FFF;
}
#works_table tr th:last-child, .decoration_table tr th:last-child {
  border-right: solid 1px #000;
}

#works_box #works_table tr th:last-child {
  font-size: 11px;
}

#works_table td, .decoration_table td {
  padding: 3px 6px;
  border-right: solid 1px #000;
  border-bottom: solid 1px #000;
}

#works_box #works_table tr td:nth-child(2), #works_box #works_table tr th:nth-child(2) {width: auto;}
#works_box #works_table tr td:nth-child(3), #works_box #works_table tr th:nth-child(3) {width: 12em;}
#works_box #works_table tr td:nth-child(4), #works_box #works_table tr th:nth-child(4) {width: 8em; text-align: center;}
#works_box #works_table tr td:nth-child(5), #works_box #works_table tr th:nth-child(5) {width: 7em;}
#works_box #works_table tr td:nth-child(6), #works_box #works_table tr th:nth-child(6) {width: 6em; text-align: center;}

@media screen and (max-width: 900px) {
  li.works_box:nth-of-type(3n) { margin-right: 20px; }
}

@media screen and (max-width: 520px) {
  .scroll-box .decoration_table {
    width: 700px;
    margin-right: 2px;
    margin-bottom: 2px;
  }
  .works_box .thumbnail img {
    width: 140px;
    height: auto;
  }
  
  li.works_box {
    float: none;
    padding: 8px;
    width: 95vw;
    margin-right: 0px;
    margin-bottom: 20px;
  }
  li.works_box:nth-of-type(3n) { margin-right: 0px; }
  
  .work_txt {
    width: 320px;
  }
  
  ul.works_icon { width: 267px; }
}

/*社長プロフィール*/
.takahashi_img {
  float: right;
}

.takahashi_name {
  font-size: 1.5em;
}


#takahashi_info dl {
  display: block;
  margin-top: 0px;
  margin-top: 15px;
}
#takahashi_info dt {
  display: block;
  float: left;
}
#takahashi_info dd {
  display: block;
  padding-left: 21em;
}

#takahasi_txt h10{
  color: ##000;/*文字色*/
  border-top: solid 3px #000;/*上線*/
  text-align: left;
  }



#takahasi_txt p, #takahasi_txt table, #rights_info p, #freelance p, #internship p, #workshop p, #recruit_under p, #link_cont p {
  margin-bottom: 1em;
}

/*就活案内*/
#recruit_top ul {
  display: block;
  width: 666px;
  margin: 0px auto;
}

#recruit_top li {
  display: block;
  float: left;
  margin-right: 20px;
  margin-bottom: 20px;
  border: 1px solid #B2B2B2;
  border-radius: 10px;
  -webkit-border-radius: 10px;
  -moz-border-radius: 10px;
  background-color: #FFF;
  background: -webkit-linear-gradient(#FFFFFF 20%,#CFCFCF 100%);
  background: linear-gradient(#FFFFFF 20%,#CFCFCF 100%);
}

#recruit_top li.off {
  background-color: #CFCFCF;
  background: -webkit-linear-gradient(#CFCFCF 20%,#CFCFCF 100%);
  background: linear-gradient(#CFCFCF 20%,#CFCFCF 100%);
}

#recruit_top li a {
  display: block;

  text-align: center;
  text-decoration: none;
}

#recruit_top li a span,#recruit_top li a b { display: block; }

#recruit_top li a .head {
  border-left: solid 20px #b2b2b2;
  margin: 0px 30px 30px;
  padding: 20px 0px;
  font-size: 20px;
}

#recruit_top li a b {
  font-size: 12px;
  line-height: 0.8em;
}

#recruit_top li a b.chu {
  font-size: 30px;
}

/*ART TECH*/

#arttech_top .arttech_box {
  float: left;
  margin-right: 20px;
  margin-bottom: 20px;
  width: 250px;
  height: 250px;
  padding: 10px;
}

#arttech_top .arttech_box:nth-of-type(3n) { margin-right: 0px; }

.arttech_box h4 {
  display: block;
  margin: 0px 0px 1.5em;
}

.arttech_box h4 a {
  display: block;
  text-decoration: none;
  padding: 10px;
  font-size: 20px;
  font-weight: bold;
  background-color: #DCDCDC;
  text-align: center;
  border: 1px solid #B2B2B2;
  border-radius: 10px;
  -webkit-border-radius: 10px;
  -moz-border-radius: 10px;
}

h8 {
 font-size: 200px;
}


.arttech_box p { margin-bottom: 1em; }

.arttech_box ul {
  padding-left: 1.5em;
}

.arttech_box ul li {
  list-style: disc;
}


/*就活案内 - 下位ページ*/
#recruit_under dl {display: block;}

#recruit_under dt {
  display: block;
  float: left;
}

#recruit_under dd {
  display: block;
  padding-left: 9.5em;
}

#recruit_under ol, #recruit_under ul {
  padding-left: 1.8em;
}

#recruit_under ol li, #recruit_under ul li {
  margin-bottom: 5px;
}

#recruit_under ol > li{
  list-style: decimal;
}

#recruit_under li ol > li{
  list-style: upper-roman;
}

#recruit_under ul > li{
  list-style: disc;
}

/*マップ*/
img.map_image {
  max-width: 100%;
  height: auto;
  margin-bottom: 10px;
}

.sitemap a.toppage {
  display: block;
  text-decoration: none;
  border: solid 1px #000;
  padding: 5px;
}

.sitemap ul li ul {
  margin-top: .5em;
  margin-bottom: .75em;
  margin-left: 38px;
}
 
.sitemap ul li ul li {
  margin-bottom: .25em;
  position: relative;
}

.sitemap ul li ul .orikaeshi {
  display: block;
  float: left;
  width: 350px;
}
 
.sitemap ul li ul li::before {
  content: "";
  position: absolute;
  top: -0.5em;
  left: -16px;
  width: 10px;
  height: calc(100% + .75em);
  border-left: 1px solid #000;
}
 
.sitemap ul li ul li:last-child::before {
  height: calc(1em + .25em);
}
 
.sitemap ul li ul li::after {
  content: "";
  position: absolute;
  top: .75em;
  left: -16px;
  width: 10px;
  border-bottom: 1px solid #000;
}

/*リンク*/
#link_cont dt {
  display: block;
  border-bottom: dotted 1px #000;
  padding-bottom: 3px;
  margin-bottom: 3px;
}

#link_cont ul, #link_cont li { display: block; }

#link_cont dt span, #link_cont dt a, #link_cont li span, #link_cont li a {display: block; float: left;}

#link_cont dt .co_name, #link_cont li .co_name { font-weight: bold; width: 18em; }
#link_cont dt .president, #link_cont li .president { width: 15em; }

#link_cont dd {
  display: block;
  margin-bottom: 1.5em;
}

.link_col {float: left; width: 380px}

@media screen and (max-width: 520px) {
  #arttech_top .arttech_box {
    float: none;
    margin-right: 0px;
    width: auto;
    height: auto;
    padding: 0px;
    margin-bottom: 40px;
  }
  
  #takahashi_info dt {float: none;}
  #takahashi_info dd {padding-left: 1em;}
  
  #recruit_top ul {
    width: 95vw;
  }
  
  .sitemap ul li ul .orikaeshi {
    width: 220px;
  }
}

/*グリーティングカード*/

#g_card img { width: 100%; height: auto; }
#g_card p { margin-bottom: 1em; }
@media screen and (max-width: 520px) {
  #g_card img { width: 100vw; height: auto; }
}




/*////////////////////
///footer
////////////////////*/
footer {
  display: block;
  clear: both;
  background-color: #000;
  color: #fff;
  font-size: 12px;
  font-weight: normal;
}

footer .wrapper {text-align: right; padding: 8px 0px;}


.Foreword {
  margin-top: 5px;
  margin-bottom: 0px;
  text-align: left;
}