@charset "utf-8";

/*========================
 見出し
=========================*/
#page-ttl {
    position: relative;
}
#page-ttl h2 {
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    margin: auto;
    text-align: center;
    color: #fff;
    line-height: 1.4;
    letter-spacing: 2px;
}
#page-ttl h2 .en {
    display: block;
    font-size: 35px;
    font-weight: bold;
    text-transform: uppercase;
}
#page-ttl h2 .jp {
    display: block;
    font-size: 16px;
    font-weight: bold;
}
#page-ttl .img {
    line-height: 0;
}

/*========================
 下層ページ
=========================*/
/*===== [人を知る] =====*/
main#people {
}
/*------------------------
 [#staff 詳細] 
------------------------*/
#people .staff-hx {
    font-size: 20px;
    font-weight: bold;
    background-image: linear-gradient(90deg, #0abab5 0 100px, #e3e3e3 100px);
    background-repeat: no-repeat;
    background-size: 100% 2px;
    background-position: bottom;
    padding-bottom: 12px;
    margin-bottom: 15px;
}
/*- [#people-ttl] -*/
#people #people-ttl {
    position: relative;
}
#people #people-ttl .img {
    line-height: 0;
}
#people #people-ttl .info-box {
    position: absolute;
    width: 100%;
    max-width: 1250px;
    margin: 0 auto;
    padding: 0 2%;
    left: 0;
    right: 0;
    bottom: 0;
}
#people #people-ttl .info {
    background-color: #0abab5;
    width: 100%;
    max-width: 400px;
    padding: 2.5%;
    line-height: 1.4;
}
#people #people-ttl .info h2 {
    color: #fff;
    font-size: 25px;
    font-weight: bold;
    margin-bottom: 10px;
}
#people #people-ttl .info .box {
    background-color: #fff;
    padding: 3%;
}
#people #people-ttl .info .box .shikaku {
    margin-bottom: 3px;
}
#people #people-ttl .info .box .nyusya {
}
/*- [#detail01] -*/
#people #detail01 {
    padding: 80px 0;
}
#people #detail01 .box {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    flex-direction: row-reverse;
}
#people #detail01 .box .img {
    width: 50%;
}
#people #detail01 .box .text-box {
    width: 100%;
}
#people #detail01 .box .text-box.w5 {
    width: 45%;
}
#people #detail01 .box .text-box p {
    line-height: 1.8;
}
/*- [#detail02] -*/
#people #detail02 {
    padding: 0 0 80px;
}
#people #detail02 .box {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
}
#people #detail02 .box .img {
    width: 50%;
}
#people #detail02 .box .text-box {
    width: 100%;
}
#people #detail02 .box .text-box.w5 {
    width: 45%;
}
#people #detail02 .box .text-box p {
    line-height: 1.8;
}
/*- [#detail03] -*/
#people #detail03 {
    padding: 0 0 80px;
}
#people #detail03 .box {
}
#people #detail03 .box .text-box {
    margin-bottom: 25px;
}
#people #detail03 .box .text-box p {
    line-height: 1.8;
}
#people #detail03 .box .img {
    width: 100%;
}
/*- [#comment] -*/
#people #comment {
    padding: 0 0 80px;
}
#people #comment .box {
    border: 2px solid #0abab5;
    padding: 22px 30px;
    position: relative;
}
#people #comment .box h3 {
    line-height: 1.4;
    font-size: 18px;
    font-weight: bold;
    position: absolute;
    top: -14px;
    left: 20px;
    width: 200px;
    background-color: #fff;
    text-align: center;
}
#people #comment .box p {
    line-height: 1.8;
}

/*------------------------
 [#staff 一覧] 
------------------------*/
#people #staff {
    padding: 80px 0 55px;
}
#people #staff .staff-list {
    display: flex;
    flex-wrap: wrap;
    align-content: flex-start;
    counter-reset: num; /* カウンターの名前を'num'として初期化 */
}
#people #staff .staff-list .box {
    width: calc(88% / 3);
    margin: 0 2% 25px;
    position: relative;
}
#people #staff .staff-list .box img {
}
#people #staff .staff-list .box .text-box {
    background-color: #fff;
    width: 90%;
    position: absolute;
    bottom: 5%;
    left: 0;
    right: 0;
    z-index: 1;
    padding: 20px 5% 15px;
    margin: auto;
}
#people #staff .staff-list .box .text-box .name {
    font-size: 16px;
    font-weight: bold;
    line-height: 1.4;
    margin-bottom: 5px;
    counter-increment: num; /* 各.list_itemでカウンターを1増やす */
    position: relative;
}
#people #staff .staff-list .box .text-box .name:before {
    font-size: 35px;
    color: #0abab5;
    letter-spacing: 2px;
    font-weight: 600;
    font-family: "Poppins", sans-serif;
    content: counter(num, decimal-leading-zero);
    position: absolute;
    left: 0;
    top: -43px;
}
#people #staff .staff-list .box .text-box .text {
    font-size: 14px;
    margin-bottom: 0;
}

/*===== [求人情報] =====*/
main#recruit {
}
#category-link {
    padding: 40px 0 0;
}
#category-link .link-box {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 15px;
}
#category-link .link-box h3 {
    width: 130px;
    line-height: 1.4;
    font-weight: bold;
    padding: 10px 0;
    margin-bottom: 10px;
}
#category-link .link-box ul {
    width: calc(97% - 130px);
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
}
#category-link .link-box ul li {
    line-height: 1.4;
    width: 200px;
    text-align: center;
    margin-bottom: 10px;
}
#category-link .link-box ul li a {
    display: block;
    background-color: #fff;
    border: 1px solid #0abab5;
    border-radius: 5px;
    margin-right: 10px;
    padding: 10px 10px;
    text-decoration: none;
    color: #0abab5;
    font-weight: bold;
}
#category-link .link-box ul li a:hover {
    background-color: #0abab5;
    color: #fff;
    transition: 0.5s;
}
/*--- [#recruit-list] ---*/
#recruit #recruit-list {
    padding: 80px 0 80px;
}
#recruit #recruit-list .box {
    margin-bottom: 30px;
}
#recruit #recruit-list .box h3 {
    line-height: 1.6;
    font-size: 18px;
    font-weight: bold;
    border-left: 5px solid #2ebfba;
    padding: 3px 0 3px 10px;
    margin-bottom: 10px;
}
#recruit #recruit-list .box table {
    width: 100%;
    line-height: 1.4;
    margin-bottom: 25px;
}
#recruit #recruit-list .box table tr {
    border-top: 1px solid #c1c1c1;
    border-bottom: 1px solid #c1c1c1;
}
#recruit #recruit-list .box table tr th {
    width: 200px;
    background-color: #ededed;
    vertical-align: middle;
    text-align: center;
    font-weight: bold;
    padding: 17px 2%;
}
#recruit #recruit-list .box table tr td {
    background-color: #fff;
    vertical-align: middle;
    padding: 17px 2%;
}
#recruit #recruit-list .box .link {
}
#recruit #recruit-list .box .link a {
    width: 260px;
    display: block;
    background-color: #0abab5;
    border: 1px solid #0abab5;
    border-radius: 5px;
    color: #fff;
    text-decoration: none;
    font-size: 16px;
    font-weight: bold;
    text-align: center;
    line-height: 1.2;
    letter-spacing: 2px;
    padding: 15px 15px 15px;
    margin: 0 auto;
}
#recruit #recruit-list .box .link a span {
    display: block;
    background: url(../img/common/icon01.png) no-repeat right center;
    background-size: 7px;
    padding: 0 15px;
}
#recruit #recruit-list .box .link a:hover {
    background-color: #fff;
    color: #0abab5;
    transition: 0.5s;
}
#recruit #recruit-list .box .link a:hover span {
    background: url(../img/common/icon02.png) no-repeat right center;
    background-size: 7px;
    transition: 0.5s;
}

/*===== [エントリー] =====*/
main#entry {
}
/*--- [#entry-form] ---*/
#entry #entry-form {
    padding: 80px 0;
}
#entry #entry-form .form-box table {
    border-collapse: collapse;
    width: 100%;
    border-top: 1px solid #dddddd;
}
#entry #entry-form .form-box table tr {
    border-bottom: 1px solid #dddddd;
}
#entry #entry-form .form-box table tr th {
    padding: 15px 0;
    width: 210px;
    vertical-align: middle;
    font-weight: bold;
    line-height: 1.4;
    font-size: 14px;
}
#entry #entry-form .form-box table tr th .hisu {
    color: #d61518;
    font-size: 13px;
    font-weight: bold;
    display: inline-block;
    padding: 2px 7px;
    margin-left: 15px;
}
#entry #entry-form .form-box table tr td {
    padding: 15px 3%;
    line-height: 1.4;
}
#entry #entry-form .form-box table tr td.check-list .mwform-radio-field {
    display: block;
    margin-left: 0;
    margin-bottom: 3px;
}
#entry #entry-form .form-box table tr td .txt {
    line-height: 1.4;
    margin-top: 10px;
}
#entry #entry-form .form-box table tr td span {
    line-height: 1.4;
}
#entry #entry-form .form-box table tr td input {
      border: none;
    background: #ececec;
    font-size: 14px;
    padding: 15px;
    width: 100%;
}
#entry #entry-form .form-box table tr td input.sex {
    width: auto;
}
#entry #entry-form .form-box table tr td input.radio {
    width: auto;
}
#entry #entry-form .form-box table tr td input.check {
      width: auto;
}
#entry #entry-form .form-box table tr td textarea {
    background: #ececec;
     width: 100%;
    height: 200px;
    font-size: 14px;
     padding: 3%;
}
#entry #entry-form .form-box .link {
    width: 250px;
    margin: 25px auto 30px;
}
#entry #entry-form .form-box .link a {
    display: block;
    text-decoration: none;
    font-weight: bold;
    border-radius: 5px;
    text-align: center;
    line-height: 1.4;
    padding: 12px 21px;
    background: url(../img/common/icon07.png) no-repeat right 10px center;
    background-size: 7px;
    background-color: #e3e3e3;
}
#entry #entry-form .form-box .link a:hover {
    background-color: #bab8b8;
    transition: 0.5s;
}
#entry #entry-form .form-box .btn {
    width: 250px;
    margin: 20px auto 0;
    text-align: center;
}
#entry #entry-form .form-box .btn input {
    width: 100%;
    display: block;
    background: url(../img/common/icon01.png) no-repeat right 10px center;
    background-size: 7px;
    background-color: #0abab5;
    border: 2px solid #0abab5;
    border-radius: 5px;
    text-decoration: none;
    line-height: 1.4;
    text-align: center;
    color: #ffffff;
    font-size: 14px;
    font-weight: bold;
    padding: 13px 33px;
}
#entry #entry-form .form-box .btn:hover input {
    color: #0abab5;
    background: url(../img/common/icon02.png) no-repeat right 10px center;
    background-size: 7px;
    background-color: #fff;
    transition: 0.5s;
}
#entry #entry-form .form-box table tr td select {
  background: #e3eff9;
  font-size: 14px;
  padding: 15px;
  width: 35%;
}

/*===== [代表メッセージ] =====*/
main#message {
}
/*--- [#daihyo] ---*/
#message #daihyo {
}
#message #daihyo .bg {
    position: relative;
    padding: 80px 0;
}
#message #daihyo .bg:after {
    width: 30%;
    position: absolute;
    content: '';
    height: 100%;
    left: 0;
    bottom: 0;
    background-color: #9de3e1;
    z-index: -1;
}
#message #daihyo .box {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: flex-start;
}
#message #daihyo .box .img {
    width: 45%;
    position: relative;
}
#message #daihyo .box .img .name-box {
    position: absolute;
    left: 0;
    bottom: 0;
}
#message #daihyo .box .img .name-box .name {
    background-color: #fff;
    border-radius: 0 15px 0 0;
    line-height: 1.4;
    font-weight: bold;
    font-size: 22px;
    padding: 15px 35px;
}
#message #daihyo .box .img .name-box .name span {
    display: block;
    font-size: 14px;
}
#message #daihyo .box .text-box {
    width: 50%;
    margin-top: 35px;
}
#message #daihyo .box .text-box h3 {
    line-height: 1.4;
    font-size: 24px;
    font-weight: bold;
    margin-bottom: 25px;
}
#message #daihyo .box .text-box .text {
    line-height: 2;
    margin-bottom: 1.5em;
}

/*===== [環境・教育を知る] =====*/
main#environment {
}
/*--- [#point] ---*/
#environment #point {
}
#environment #point .bg {
    position: relative;
    padding: 80px 0;
}
#environment #point .bg:after {
    width: 30%;
    position: absolute;
    content: '';
    height: 100%;
    left: 0;
    bottom: 0;
    background-color: #9de3e1;
    z-index: -1;
}
#environment #point h3.base-hx {
    margin-bottom: 5px;
}
#environment #point h3.base-hx:after {
    background-color: #1b1b1b;
}
#environment #point .main-txt {
    padding-left: 40px;
    line-height: 1.4;
    margin-bottom: 35px;
}
#environment #point .box {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 30px;
}
#environment #point .box .img {
    width: 50%;
}
#environment #point .box .text-box {
    width: 45%;
}
#environment #point .box .text-box h4 {
}
#environment #point .box .text-box h4 .en {
    display: block;
    color: #0abab5;
    font-size: 25px;
    font-weight: bold;
    line-height: 1.2;
}
#environment #point .box .text-box h4 .en span {
    color: #e1f7f6;
    font-size: 50px;
    padding-left: 5px;
    font-weight: 500;
}
#environment #point .box .text-box h4 .jp {
    display: block;
    line-height: 1.4;
    font-size: 18px;
    font-weight: bold;
    margin-bottom: 15px;
}
#environment #point .box .text-box .text {
    margin-bottom: 0;
}
#environment #point .box.n2 {
    flex-direction: row-reverse;
}
#environment #point .box.n2 .text-box h4 .en {
    color: #fff;
}
#environment #point .box.n2 .text-box h4 .en span {
    color: #bbebea;
}
/*--- [#education] ---*/
#environment #education {
    padding: 80px 0;
}
#environment #education h3.base-hx {
    margin-bottom: 5px;
}
#environment #education .main-txt {
    padding-left: 40px;
    line-height: 1.4;
    margin-bottom: 35px;
}
#environment #education .education-box {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    margin-top: 135px;
}
#environment #education .education-box .box {
    width: 48%;
    margin-bottom: 55px;
    margin-top: -100px;
}
#environment #education .education-box .box .img {
    position: relative;
}
#environment #education .education-box .box h4 {
    position: absolute;
    left: 0;
    bottom: 0;
    background-color: #fff;
    width: 80%;
    padding: 15px 3% 10px 0;
}
#environment #education .education-box .box .img h4 .en {
    display: block;
    color: #0abab5;
    font-size: 15px;
    font-weight: bold;
    line-height: 1.2;
    margin-bottom: 3px;
}
#environment #education .education-box .box .img h4 .jp {
    display: block;
    line-height: 1.4;
    font-size: 17px;
    font-weight: bold;
}
#environment #education .education-box .box .text-box {
    margin-top: 5px;
}
#environment #education .education-box .box .text-box .text {
    margin-bottom: 0;
}
#environment #education .education-box .box.n2 {
    margin-top: 0;
}

/*===== [会社を知る] =====*/
main#company {
}
/*--- [#front] ---*/
#company #front {
    padding: 80px 0 40px;
}
#company #front .front-box {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
}
#company #front .front-box .box {
    width: 31%;
}
#company #front .front-box .box .img {
    line-height: 0;
    margin-bottom: 15px;
}
#company #front .front-box .box .hx {
    text-align: center;
    line-height: 1.4;
    font-size: 20px;
    font-weight: bold;
    margin-bottom: 10px;
}
#company #front .front-box .box .text {
    margin-bottom: 0;
}
/*--- [#info] ---*/
#company #info {
    padding: 40px 0 45px;
}
#company #info .info-tbl {
    margin-bottom: 40px;
    width: 100%;
    line-height: 1.4;
}
#company #info .info-tbl tr {
}
#company #info .info-tbl tr th {
    width: 130px;
    background-color: #edf0f2;
    border: 1px solid #bdbdbd;
    text-align: center;
    font-weight: bold;
    padding: 13px 2%;
}
#company #info .info-tbl tr td {
    background-color: #fff;
    border: 1px solid #bdbdbd;
    padding: 13px 3%;
}
#company #info .info-tbl tr td .gmap {
    display: block;
    width: 100%;
    margin-top: 10px;
}
#company #info .info-tbl tr td .gmap iframe {
    width: 100%;
    height: 350px;
}
#company #info .in-info {
    display: flex;
    flex-direction: row-reverse;
    flex-wrap: wrap;
    justify-content: space-between;
    margin-bottom: 35px;
}
#company #info .in-info .box {
    width: 65%;
}
#company #info .in-info .box h4 {
    line-height: 1.4;
    font-size: 24px;
    font-weight: bold;
    margin-bottom: 15px;
}
#company #info .in-info .box .time {
    width: 100%;
    line-height: 1.4;
    margin-bottom: 20px;
}
#company #info .in-info .box .time tr {
}
#company #info .in-info .box .time tr th {
    background-color: #0abab5;
    border: 1px solid #fff;
    text-align: center;
    vertical-align: middle;
    color: #fff;
    padding: 10px 3px;
}
#company #info .in-info .box .time tr th.hx {
    width: 30%;
    min-width: 120px;
}
#company #info .in-info .box .time tr td {
    background-color: #f8f6e5;
    border: 1px solid #fff;
    text-align: center;
    vertical-align: middle;
    padding: 10px 3px;
}
#company #info .in-info .box .time tr td.hx {
}
#company #info .in-info .box dl {
    line-height: 1.4;
    margin-bottom: 10px;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: flex-start;
}
#company #info .in-info .box dl dt {
    background-color: #ff8400;
    width: 75px;
    text-align: center;
    padding: 6px 0;
    color: #fff;
}
#company #info .in-info .box dl dd {
    width: calc(97% - 75px);
    padding: 6px 0;
}
#company #info .in-info .gmap {
    width: 32%;
}
#company #info .in-info .gmap iframe {
    width: 100%;
    height: 350px;
}


/*===============================================
    ■tablet 画面の横幅が800pxまで
===============================================*/
@media screen and (max-width: 800px) {
/*===== [見出し] =====*/
  #page-ttl h2 {
    transform: translateY(-50%);
  }
/*===== [人を知る] =====*/
/*--[詳細]--*/
  #people #people-ttl {
    position: static;
  }
  #people #people-ttl .info-box {
    position: static;
    width: 100%;
    max-width: none;
    margin: 0 auto;
    padding: 0;
    left: auto;
    right: auto;
    bottom: auto;
  }
  #people #people-ttl .info {
    max-width: none;
  }
  #people #detail01 .box,
  #people #detail02 .box {
    align-items: flex-start;
  }
/*--[一覧]--*/
  #people #staff .staff-list .box {
    width: calc(92% / 2);
  }
}

/*===============================================
    ■smart 画面の横幅が570pxまで
===============================================*/
@media screen and (max-width: 570px) {
/*===== [見出し] =====*/
  #page-ttl h2 {
    line-height: 1.2;
  }
  #page-ttl h2 .en {
    font-size: 24px;
  }
  #page-ttl h2 .jp {
    font-size: 14px;
  }
/*===== [人を知る] =====*/
/*--[詳細]--*/
  #people #people-ttl .info h2 {
    font-size: 18px;
  }
  #people #detail01 {
    padding: 40px 0;
  }
  #people #detail02,
  #people #detail03,
  #people #comment {
    padding: 0 0 40px;
  }
  #people #detail01 .box .img,
  #people #detail02 .box .img {
    width: 100%;
    margin-bottom: 20px;
  }
  #people #detail01 .box .text-box,
  #people #detail01 .box .text-box.w5,
  #people #detail02 .box .text-box,
  #people #detail02 .box .text-box.w5 {
    width: 100%;
  }
  #people #comment .box {
    padding: 17px 12px;
  }
/*--[一覧]--*/
  #people #staff {
    padding: 40px 0 15px;
  }
  #people #staff .staff-list .box {
    width: 100%;
    margin: 0 0 25px;
  }
/*===== [求人情報] =====*/
  #category-link .link-box h3 {
    width: 100%;
    padding: 0;
  }
  #category-link .link-box ul {
    width: 100%;
    justify-content: space-between;
  }
  #category-link .link-box ul li {
    width: 49%;
  }
  #category-link .link-box ul li a {
    padding: 10px 10px;
    font-size: 14px;
  }
  #recruit #recruit-list {
    padding: 40px 0 40px;
  }
  #recruit #recruit-list .box table tr th {
    width: 100%;
    display: block;
    padding: 10px 2%;
  }
  #recruit #recruit-list .box table tr td {
    width: 100%;
    display: block;
  }
/*===== [エントリー] =====*/
  #entry #entry-form {
    padding: 40px 0;
  }
  #entry #entry-form .form-box table tr th {
    display: block;
    padding: 13px 0;
    text-align: left;
    border-bottom: 1px dashed #c2c2c2;
    margin-bottom: 5px;
    width: 100%;
    font-size: 16px;
    font-weight: bold;
  }
  #entry #entry-form .form-box table tr td {
    display: block;
    padding: 3px 0 15px;
    border-bottom: 1px solid #aaa;
  }
  #entry #entry-form .form-box table tr td.sp-check .wform-checkbox-field {
    margin-left: 0;
  }
  #entry #entry-form .form-box table tr td.sp-check label {
    display: block;
  }
  #entry #entry-form .form-box table tr td input {
    width: 100%;
  }
  #entry #entry-form .form-box table tr td select {
    width: 100%;
  }
/*===== [代表メッセージ] =====*/
  #message #daihyo .bg {
    padding: 40px 0;
  }
  #message #daihyo .box .img {
    width: 100%;
  }
  #message #daihyo .box .text-box {
    width: 100%;
  }
/*===== [環境・教育を知る] =====*/
  #environment #point .bg {
    padding: 40px 0 10px;
  }
  #environment #point .box .img {
    width: 100%;
    margin-bottom: 15px;
  }
  #environment #point .box .text-box {
    width: 100%;
  }
  #environment #education {
    padding: 40px 0 5px;
  }
  #environment #education .education-box {
    margin-top: 0;
  }
  #environment #education .education-box .box {
    width: 100%;
    margin-bottom: 35px;
    margin-top: 0;
  }
/*===== [会社を知る] =====*/
  #company #front {
    padding: 40px 0 20px;
  }
  #company #front .front-box .box {
    width: 100%;
    margin-bottom: 25px;
  }
  #company #front .front-box .box .img {
    width: 100%;
    max-width: 390px;
    margin: 0 auto 15px;
  }
  #company #front .front-box .box .text {
    text-align: center;
  }
  #company #info {
    padding: 20px 0 5px;
  }
  #company #info .info-tbl {
    border-top: 1px solid #bdbdbd;
  }
  #company #info .info-tbl tr th {
    width: 100%;
    display: block;
    padding: 8px 2%;
    border-top: none;
  }
  #company #info .info-tbl tr td {
    width: 100%;
    display: block;
    border-top: none;
  }
  #company #info .in-info .box {
    width: 100%;
    margin-bottom: 10px;
  }
  #company #info .in-info .gmap {
    width: 100%;
  }
  #company #info .in-info {
    padding-bottom: 35px;
    border-bottom: 1px solid #c9c4c4;
  }
}