@charset "utf-8"; /* default PC */
/* 下層共通 */
#contents .field-txt {
  font-size:20px;
  font-weight:500;
  margin-top:10px;
  text-align:center;
}

#contents .liteblue-box {
  background-color:#F1F4FD;
  padding:40px 45px;
}

#contents .white-box {
  background-color:#FFF;
  padding:35px 30px;
}

#contents .check-list {
  margin:0;
}

#contents .grid-2box.check-list {
  display:grid;
  gap:10px 20px;
  grid-template-columns:1fr 1fr;
}

#contents .grid-3box.check-list {
  display:grid;
  gap:10px 20px;
  grid-template-columns:1fr 1fr 1fr;
}

#contents .grid-4box.check-list {
  display:grid;
  gap:10px 20px;
  grid-template-columns:1fr 1fr 1fr 1fr;
}

#contents .grid-5box.check-list {
  display:grid;
  gap:10px 20px;
  grid-template-columns:1fr 1fr 1fr 1fr 1fr;
}

#contents .check-list li {
  margin-bottom:8px;
  padding-left:28px;
  position:relative;
}

#contents .check-list li:last-child {
  margin-bottom:0px;
}

#contents .check-list li::before {
  background:url(../image/contents/ico_check.svg) no-repeat center / contain;
  content:"";
  display:inline-block;
  height:20px;
  left:0;
  position:absolute;
  top:6px;
  width:20px;
}

#contents .lightblue-box {
  background-color:#F1F4FD;
  padding:30px 25px 25px;
}

/* end-contact */
#contents .end-contact h2 {
  color:#314FA5;
  font-weight:600;
  margin:0 0 40px 0;
}

#contents .end-contact {
  background:url(../image/contents/content/bg-contact_01.jpg) no-repeat center / cover;
  padding:65px 0 70px;
}

#contents .end-contact .bg-box {
  background-color:rgba(255, 255, 255, .9);
  margin:0 auto;
  max-width:1500px;
  padding:70px 30px 65px;
  position:relative;
  width:90%;
}

#contents .end-contact .bg-box:after {
  background:url(../image/contents/content/contact_photo_02.png) no-repeat center / contain;
  bottom:0;
  content:"";
  height:267px;
  left:auto;
  position:absolute;
  right:25px;
  top:auto;
  width:270px;
}

#contents .end-contact .link-btn.contact {
  background-color:#314FA5;
  border:0;
  color:#FFF;
  display:block;
  font-size:28px;
  letter-spacing:.05em;
  max-width:100%;
  padding:55px 100px 55px 140px;
  position:relative;
  text-align:left;
}

#contents .end-contact .btn-box {
  display:grid;
  gap:40px;
  grid-template-columns:1fr;
  margin:45px auto 0;
  max-width:700px;
  width:100%;
}

.animation.active {
  opacity:1;
  top:0;
  transition:.4s;
}

.animation {
  opacity:0;
  position:relative;
  top:40px;
  transition:.4s;
}

#contents .end-contact .btn-box .link-btn.contact::before {
  background-image:url(../image/contents/ico_contact.svg);
  background-repeat:no-repeat;
  background-size:contain;
  bottom:0;
  content:"";
  display:block;
  height:42px;
  left:75px;
  margin:auto;
  position:absolute;
  top:2px;
  width:42px;
}

/* ソフトウェア */
#contents .soft-dev {
  gap:30px 0;
}

#software .technology-area .check-list:nth-child(2) {
  display:grid;
  gap:10px;
  grid-template-columns:1fr 2fr;
  margin-top:8px;
}

#software .platform .check-list li {
  align-items:center;
  background-color:#FFF6DD;
  display:flex;
  margin-bottom:8px;
  padding:12px 20px;
}

#software .platform .check-list li p {
  margin-bottom:0;
  padding-left:25px;
  position:relative;
  text-indent:0;
}

#software .platform .check-list li::before {
  background:url(../image/contents/ico_check.svg) no-repeat center / contain;
  content:"";
  display:inline-block;
  height:20px;
  left:20px;
  position:absolute;
  top:19px;
  width:20px;
}

#software .built-in-area .check-list:nth-child(2) {
  margin-top:8px;
}

/* ハードウェア */
#hardware ul.style-none {
  padding:0;
}

/* 3D・CAD */
#cad3d h5 {
  color:#CC9600;
  font-size:22px;
}

#cad3d .img-2box.sml.img-area {
  width:25%;
}

#cad3d .img-2box-txt.sml.txt-area {
  margin-left:40px;
  width:calc(75% - 40px);
}

#cad3d .cad3d-area.check-list {
  display:grid;
  gap:10px 20px;
  grid-template-columns:1fr 1fr;
}

#cad3d .flow-box {
  margin:45px 0 40px;
}

#cad3d .flow-box .flow-wrapper {
  display:flex;
  justify-content:center;
}

#cad3d .flow-item .flow-txt p.text {
  font-size:20px;
  font-weight:bold;
  margin-bottom:5px;
  text-align:center;
}

#cad3d .flow-box .flow-wrapper .flow-item {
  background-color:#F1F4FD;
  color:#314FA5;
  display:flex;
  justify-content:center;
  margin-bottom:50px;
  margin-right:30px;
  padding:10px 20px 20px;
  position:relative;
  width:calc(100% / 3 - 20px);
}

#cad3d .flow-box .flow-wrapper .flow-item:last-child {
  margin-right:0;
}

#cad3d .flow-box .flow-wrapper .flow-item::before {
  border-right:3px solid #C09520;
  border-top:3px solid #C09520;
  bottom:0%;
  content:"";
  height:12px;
  margin:auto;
  position:absolute;
  right:-18px;
  top:0;
  transform:rotate(45deg);
  width:12px;
}

#cad3d .flow-box .flow-wrapper .flow-item:last-child::before {
  display:none;
}

#cad3d .price-txt {
  color:#EC6319;
  font-size:155%;
}

#cad3d .txt-2box.liteblue-box {
  padding:30px 35px;
}

#cad3d .item-box {
  display:flex;
  margin-bottom:30px;
}

#cad3d .function-txt {
  font-size:23px;
  font-weight:600;
  text-align:center;
}

/* 研究開発･補助金委託 */
#assindustry .table-01 th {
  width:10%;
}

#contact #contents .inner {
  margin:0 auto 70px;
}

/* 人材派遣･職業紹介 */
#introduce .flow-area {
  gap:30px;
  justify-content:flex-start;
}

#introduce .flow-area .flow-item {
  background-color:#F1F4FD;
  position:relative;
  width:calc((100% - 30px * 4) / 5);
}

#introduce .flow-area .flow-item .flow-txt {
  max-width:555px;
  padding:20px;
}

#introduce .flow-area .flow-item .flow-txt p:last-of-type {
  margin-bottom:0;
}

#introduce .flow-area.agreement .flow-item {
  background-color:#FFF;
}

#introduce .flow-area {
  counter-reset:aboutnum;
}

#introduce .flow-area .flow-item:before {
  align-items:center;
  background-color:#C09520;
  color:#FFF;
  content:"0" counter(aboutnum);
  counter-increment:aboutnum;
  display:flex;
  font-family:"roboto", "Noto Sans JP", YuGothic, "游ゴシック体", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ";
  font-size:20px;
  font-weight:400;
  height:45px;
  justify-content:center;
  left:0;
  letter-spacing:1px;
  padding:2px 11px 2px 10px;
  position:absolute;
  top:0;
  width:25px;
}

#introduce #contents .flow-item h4 {
  background-color:transparent;
  border-left:none;
  clip-path:none;
  color:#314FA5;
  font-weight:bold;
  padding:0;
  position:relative;
  width:100%;
}

#introduce .merit-area .merit-item .ttl-txt.bold {
  font-size:21px;
  margin-bottom:5px;
  padding-left:28px;
  position:relative;
}

#introduce .merit-area .merit-item .ttl-txt.bold::before {
  background:url(../image/contents/ico_check.svg) no-repeat center / contain;
  content:"";
  display:inline-block;
  height:21px;
  left:-3px;
  position:absolute;
  top:8px;
  width:24px;
}

#introduce .flow-area .flow-item .txt-2box {
  width:56%;
}

#introduce .flow-area .flow-item .txt-2box.end {
  width:40%;
}

#introduce .tel-txt,
#introduce .tel-txt a {
  color:#314FA5;
  font-size:22px;
  font-weight:600;
}

#introduce .structure-area .img-2box {
  width:50%;
}

#introduce .structure-area .img-2box-txt {
  margin-left:20px;
  width:calc(50% - 20px);
}

#introduce .link-btn[href$=".pdf"] {
  font-size:18px;
  margin:0;
  max-width:380px;
  padding:14px;
}

#introduce .link-btn.entry {
  background-color:#C09520;
  border:none;
  color:#FFF;
  font-size:23px;
  max-width:535px;
  padding:30px;
}

#introduce .link-btn.entry:hover {
  opacity:.5;
}

#introduce .link-btn.entry::after {
  border-left:7px solid #FFF;
}

@media screen and (max-width: 1500px) {
  /* お問い合わせエリア */ #contents .end-contact .bg-box:after {
    height:248px;
    right:30px;
    width:250px;
  }

  #contents .end-contact .btn-box {
    max-width:600px;
  }
}

@media screen and (max-width: 1340px) {
  #introduce .flow-area .flow-item {
    width:calc((100% - 30px * 2) / 3);
  }

  #contents .grid-3box.check-list {
    grid-template-columns:1fr 1fr;
  }

  /* お問い合わせエリア */
  #contents .end-contact .bg-box:after {
    background-size:202px;
    height:200px;
    right:30px;
    width:202px;
  }
}

/* view-1140 notePC,Tablet */
@media screen and (max-width: 1140px) {
  #software .technology-area .check-list:nth-child(2) {
    grid-template-columns:100%;
    margin-top:18px;
  }

  #contents .grid-5box.check-list {
    grid-template-columns:1fr 1fr 1fr;
  }

  #contents .check-list li::before {
    height:18px;
    top:5px;
    width:18px;
  }

  #contents .grid-2box.check-list {
    grid-template-columns:100%;
  }

  #contents .field-txt {
    font-size:16px;
  }

  #introduce .link-btn.entry {
    font-size:20px;
    max-width:460px;
    padding:25px;
  }

  #introduce .tel-txt,
  #introduce .tel-txt a {
    font-size:20px;
  }

  /* お問い合わせエリア */
  #contents .end-contact .btn-box {
    max-width:500px;
  }

  #contents .end-contact .link-btn.contact {
    font-size:23px;
    padding:45px 70px 45px 96px;
  }

  #contents .end-contact .btn-box .link-btn.contact::before {
    height:35px;
    left:40px;
    width:35px;
  }

  #contents .end-contact .bg-box:after {
    display:none;
  }
}

/* view-959 Mobile,Tablet */
@media screen and (max-width: 959px) {
  #contents .soft-dev {
    gap:15px 0;
  }

  #contents .dev-box {
    gap:30px;
  }

  #contents .dev-box .txt-3box {
    width:calc((100% - 30px * 1) / 2);
  }

  /* 下層共通 */
  #contents .sp-left {
    text-align:left;
  }

  #contents .grid-2box.check-list,
  #contents .grid-4box.check-list {
    gap:10px 20px;
    grid-template-columns:1fr;
  }

  #contents .grid-2box.check-list li {
    margin-bottom:0;
  }

  /* cad3d */
  #cad3d .flow-box .flow-wrapper .flow-item {
    margin-right:0px;
    padding:10px 20px 20px;
    position:relative;
    width:100%;
  }

  #cad3d .flow-box .flow-wrapper .flow-item::before {
    border-right:3px solid #C09520;
    border-top:3px solid #C09520;
    bottom:0%;
    content:"";
    height:12px;
    margin:auto;
    position:absolute;
    right:calc(50% - 15px);
    top:104%;
    transform:rotate(135deg);
    width:12px;
  }

  #cad3d .flow-box .flow-wrapper .flow-item img {
    width:100%;
  }

  /* 人材派遣･職業紹介 */
  #introduce .flow-area .flow-item {
    width:calc((100% - 30px * 1) / 2);
  }

  #introduce .flow-area .flow-item img {
    width:100%;
  }

  #introduce .structure-area .img-2box {
    margin-bottom:30px;
    width:100%;
  }

  #introduce .structure-area .img-2box-txt {
    margin:0;
    width:100%;
  }

  /* 研究開発･補助金委託 */
  #assindustry .table-01 th {
    width:100%;
  }

  /* お問い合わせフォーム */
  #contents .contact-area .table-01 p {
    margin-bottom:0px;
  }

  #contents .contact-area .table-01 th {
    padding:20px 15px 0px;
  }

  #contents .contact-area .table-01 tr {
    border-bottom:0px;
  }

  input,
  select,
  textarea {
    font-size:16px;
    width:100% !important;
  }

  /* お問い合わせエリア */
  #contents .end-contact .bg-box:after {
    background-size:150px;
    height:150px;
    right:45px;
    top:96px;
    width:151px;
  }

  #contents .end-contact .link-btn.contact {
    font-size:25px;
    padding:45px 15px 45px 100px;
  }

  #contents .end-contact .btn-box .link-btn.contact::before {
    left:40px;
    top:6px;
    width:40px;
  }
}

@media screen and (max-width: 767px) {
  #contents .grid-5box.check-list {
    grid-template-columns:1fr 1fr;
  }

  /* お問い合わせエリア */
  #contents .end-contact .bg-box:before,
  #contents .end-contact .bg-box:after {
    display:none;
  }
}

/* view-559 Mobile */
@media screen and (max-width: 559px) {
  #contents .grid-5box.check-list.last-box li:last-child {
    grid-column:1 / -1;
  }

  #contents .check-list li::before {
    height:17px;
    width:17px;
  }

  #contents .check-list li {
    padding-left:25px;
  }

  #software .platform .check-list li::before {
    height:17px;
    left:10px;
    top:16px;
    width:17px;
  }

  #software .platform .check-list li {
    margin:0;
    padding:10px;
  }

  #contents .grid-3box.check-list {
    gap:10px;
  }

  #contents .dev-box .txt-3box {
    width:100%;
  }

  #introduce .link-btn[href$=".pdf"] {
    font-size:17px;
  }

  #contents .end-contact .btn-box .link-btn.contact::before {
    height:25px;
    left:15px;
    width:25px;
  }

  #contents .end-contact .link-btn.contact {
    font-size:18px;
    padding:30px 15px 30px 50px;
  }

  #contents .end-contact .btn-box {
    margin-top:30px;
  }

  #contents .end-contact h2 {
    margin-bottom:20px;
  }

  #contents .end-contact .bg-box {
    padding:40px 15px 50px;
    width:93%;
  }

  #contents .end-contact {
    padding:55px 0 60px;
  }

  #introduce #contents .flow-item h4 {
    margin-bottom:15px;
  }

  #introduce .merit-area .merit-item .ttl-txt.bold::before {
    height:19px;
    left:0;
    width:19px;
  }

  #introduce .merit-area .merit-item .ttl-txt.bold {
    font-size:18px;
  }

  #introduce .link-btn.entry {
    font-size:18px;
    max-width:100%;
    padding:20px;
  }

  #introduce .flow-area .flow-item .flow-txt {
    padding:20px 15px 23px;
  }

  #introduce .tel-txt,
  #introduce .tel-txt a {
    font-size:18px;
  }

  #introduce .flow-area .flow-item {
    width:100%;
  }

  #contents .liteblue-box {
    margin-bottom:15px;
    padding:20px 15px;
  }

  /* 人材派遣 */
  #contents .grid-3box.check-list.cosmo {
    grid-template-columns:1fr;
  }
}
