/* common
************************************************** */
a {
  font-size: inherit;
}

.flex {
  display: flex;
  flex-wrap: wrap;
}
.reverse {
  flex-flow: row-reverse;
}
.jc_sb {
  justify-content: space-between;
}
.jc_c {
  justify-content: center;
}
.jc_fe {
  justify-content: flex-end;
}
.ai_c {
  align-items: center;
}
.ai_fe {
  align-items: flex-end;
}

.w1600,
.w1200,
.w1000 {
  width: 100%;
  margin: 0 auto;
}
.w1600 {
  max-width: 1600px;
}
.w1200 {
  max-width: 1200px;
}
.w1000 {
  max-width: 1000px;
}


.pc_1000,
.pc_s {
  display: inline-block;
}
.sp_1000,
.sp_s {
  display: none;
}

@media screen and (max-width: 1000) {
  .pc_1000 {
    display: none;
  }
  .sp_1000 {
    display: inline-block;
  }
}

@media screen and (max-width: 767px) {
  .pc_s {
    display: none;
  }
  .sp_s {
    display: inline-block;
  }
}


/* page_top */
#page_top {
  width: calc(100% - 50px - 10rem);
  height: 360px;
  position: relative;
}
.recruit #page_top {
  height: 95px;
}

@media screen and (max-width: 767px) {
  #page_top {
    width: calc(100% - 30px);
    height: 240px;
  }
}


/* page_ttl */
#page_ttl {
  height: 360px;
  padding-bottom: 90px;
}
#page_ttl .inner {
  height: 100%;
}
#page_ttl .en {
  font-size: 96px;
  line-height: 1;
}
#page_ttl .ja {
  font-size: 20px;
  margin-top: 5px;
  padding-left: 5px;
}

#page_ttl .parent {
  font-size: 16px;
}
#page_ttl .parent .eng {
  font-size: 24px;
}
#page_ttl .child .ja {
  font-size: 42px;
  line-height: 1;
  margin-top: 10px;
  padding-left: 0;
}

@media screen and (max-width: 1000px) {
  #page_ttl .en {
    font-size: 72px;
  }
  #page_ttl .ja {
    font-size: 18px;
  }
}

@media screen and (max-width: 767px) {
  #page_ttl {
    height: 240px;
    padding-bottom: 80px;
  }
  #page_ttl .en {
    font-size: 36px;
  }
  #page_ttl .ja {
    font-size: 16px;
  }

  #page_ttl .parent {
    font-size: 14px;
  }
  #page_ttl .parent .eng {
    font-size: 20px;
  }
  #page_ttl .child .ja {
    font-size: 28px;
    margin-top: 5px;
  }
}


/* p_nav */
#p_nav {
  position: absolute;
  left: 0;
  bottom: 35px;
}
#p_nav .inner {
  font-size: 14px;
  line-height: 1.2;
  padding-left: 32px;
}
#p_nav .inner a {
  font-size: 14px;
}
#p_nav .top {
  position: absolute;
  left: 0;
  top: 0;
}
#p_nav .nav .sign {
  height: 24px;
  margin: 0 20px;
}

@media screen and (max-width: 767px) {
  #p_nav {
    bottom: 30px;
  }
  #p_nav .inner {
    font-size: 12px;
    padding-left: 28px;
  }
  #p_nav .inner a {
    font-size: 12px;
  }
  #p_nav .top img {
    width: 28px;
    height: auto;
  }
  #p_nav .nav .sign {
    height: 21px;
    margin: 0 10px;
  }
}


/* page_img */
#page_img {
  width: calc(100% - 50px - 10rem);
}
#page_img .img img {
  border-radius: 20px;
}

.works #page_img {
  width: calc(100% - 10rem);
  background-image: url(../img/common/page_img_bg.png);
  background-position: center top;
  background-repeat: no-repeat;
  background-size: cover;
  padding: 0 25px 100px;
  position: relative;
}
.works #page_img .page_img_cont {
  width: calc(100% - 100px);
  max-width: 1520px;
  background-color: rgba(17, 30, 90, 0.5);
  margin: 0 auto;
  position: absolute;
  left: 0;
  right: 0;
  bottom: 100px;
}
.works #page_img .page_img_cont .ttl {
  width: 100%;
  background-color: #111e5a;
  color: #e6e4e2;
  font-size: 18px;
  padding: 5px 15px;
}
.works #page_img .page_img_cont .cont {
  padding: 60px 30px;
}
.works #page_img .page_img_cont .left {
  font-family: "Roboto";
  width: 140px;
  font-size: 60px;
  font-weight: 700;
  line-height: 1;
  margin-right: 60px;
}
.works #page_img .page_img_cont .right {
  width: calc(100% - 200px);
  max-width: 930px;
  font-size: 30px;
  text-decoration: underline;
}

@media screen and (max-width: 1000px) {
  .works #page_img .page_img_cont .cont {
    padding-top: 30px;
    padding-bottom: 30px;
  }
  .works #page_img .page_img_cont .left {
    font-family: "Roboto";
    width: 120px;
    font-size: 36px;
    margin-right: 40px;
  }
  .works #page_img .page_img_cont .right {
    width: calc(100% - 160px);
    font-size: 16px;
  }
}

@media screen and (max-width: 767px) {
  #page_img {
    width: 100%;
  }

  #page_img .img {
    width: 100%;
    height: 210px;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
  }
  .works #page_img {
    width: 100%;
    height: 450px;
    background-image: url(../img/works/page_img.jpg);
  }
  .machining #page_img .img {
    background-image: url(../img/machining/page_img.jpg);
  }
  .development #page_img .img {
    background-image: url(../img/development/page_img.jpg);
  }
  .quality #page_img .img {
    background-image: url(../img/quality/page_img.jpg);
  }
  .products #page_img .img {
    background-image: url(../img/products/page_img.jpg);
  }
  .equipment #page_img .img {
    background-image: url(../img/equipment/page_img.jpg);
  }
  .company #page_img .img {
    background-image: url(../img/company/page_img.jpg);
  }

  #page_img .img img {
    display: none;
  }

  .works #page_img .page_img_cont {
    width: 100%;
    bottom: 0;
  }

  .works #page_img .page_img_cont .cont {
    padding: 15px;
  }
  .works #page_img .page_img_cont .left {
    width: 100%;
  }
  .works #page_img .page_img_cont .left br {
    display: none;
  }
  .works #page_img .page_img_cont .right {
    width: 100%;
    margin-top: 10px;
  }
}


/* page_content */
.products #page_content {
  padding-bottom: 100px;
}
.recruit #page_content {
  background-color: #27367c;
  padding-bottom: 150px;
}
@media screen and (max-width: 767px) {
  .recruit #page_content {
    padding-bottom: 100px;
  }

}


/* page_bg */
.page_bg {
  width: calc(100% - 10rem - 50px);
  background-color: #ffffff;
  border-radius: 20px;
  color: #111e5a;
  padding: 5vw 25px;
}

@media screen and (min-width: 1920px) {
  .page_bg {
    padding-top: 100px;
    padding-bottom: 100px;
  }
}

@media screen and (max-width: 767px) {
  .page_bg {
    width: 100%;
    border-radius: 0;
    padding: 40px 15px;
  }
}



section {
  color: #111e5a;
  padding-left: calc(5rem + 25px);
  padding-right: calc(5rem + 25px);
}
section.pt {
  padding-top: 100px;
}
section.pb {
  padding-bottom: 100px;
}
section.pt_first {
  padding-top: 200px;
}
section.pb_last {
  padding-bottom: 200px;
}

@media screen and (max-width: 1000px) {
  section.pt_first {
    padding-top: 100px;
  }
  section.pb_last {
    padding-bottom: 100px;
  }
}

@media screen and (max-width: 767px) {
  section {
    padding-left: 15px;
    padding-right: 15px;
  }

  section.pt {
    padding-top: 50px;
  }
  section.pb {
    padding-bottom: 50px;
  }
}


/* s_ttl */
.s_ttl {
  height: 80px;
  margin-bottom: 40px;
  padding-left: 25px;
  position: relative;
}
.s_ttl::before {
  content: '';
  width: 10px;
  height: 100%;
  background-color: #1ee25e;
  position: absolute;
  left: 0;
  top: 0;
}
.s_ttl .ttl {
  height: 100%;
  display: flex;
  flex-wrap: wrap;
  align-content: center;
}
.s_ttl .en {
  width: 100%;
  color: #888eac;
  font-size: 14px;
}
.s_ttl .ja {
  width: 100%;
  color: #111e5a;
  font-size: 28px;
  line-height: 1;
  margin-top: 5px;
}
.s_ttl .ja.white {
  color: #ffffff;
}

@media screen and (max-width: 1000px) {
  .s_ttl {
    height: 60px;
    margin-bottom: 30px;
    padding-left: 20px;
  }
  .s_ttl .ja {
    font-size: 24px;
  }
}

@media screen and (max-width: 767px) {
  .recruit #sec01 .s_ttl .ja {
    font-size: 21px;
  }
}


.b_ttl {
  width: 100%;
  background-color: #e6e4e2;
  font-size: 18px;
  margin-bottom: 30px;
  padding: 5px 20px;
}


.n_ttl {
  background-color: #fafaf9;
  border: 1px solid #e6e4e2;
  border-bottom: 4px solid #e6e4e2;
  font-size: 22px;
  margin-bottom: 40px;
  padding: 10px 20px;
  display: flex;
  align-items: center;
}
.n_ttl.mt {
  margin-top: 40px;
}
.n_ttl span {
  font-size: 10px;
  margin-right: 10px;
}

@media screen and (max-width: 1000px) {
  .n_ttl {
    font-size: 18px;
  }
}


.j_ttl {
  width: 100%;
  min-height: 40px;
  font-size: 28px;
  font-weight: 900;
  line-height: 40px;
  margin-bottom: 20px;
  padding-left: 25px;
  position: relative;
}
.j_ttl::before {
  content: '';
  width: 10px;
  height: 40px;
  background-color: #1ee25e;
  position: absolute;
  left: 0;
  top: 0;
}
.j_ttl.mt {
  margin-top: 60px;
}

@media screen and (max-width: 767px) {
  .j_ttl {
    min-height: 30px;
    font-size: 24px;
    font-weight: 900;
    line-height: 28px;
    padding-left: 20px;
  }
  .j_ttl::before {
    height: 30px;
  }
  .j_ttl.mt {
    margin-top: 50px;
  }
}


/* table */
table {
  width: 100%;
  text-align: left;
}
table th,
table td {
  vertical-align: top;
}

@media screen and (max-width: 1200px) {
  .list_scroll {
    width: 100%;
    overflow-x: auto;
  }
}


table.item_list {
  border-left: 1px solid #cfd2de;
  border-top: 1px solid #cfd2de;
}
table.item_list caption {
  font-size: 28px;
  font-weight: 900;
  text-align: left;
  line-height: 1;
  margin-bottom: 12px;
}
table.item_list th,
table.item_list td {
  border-right: 1px solid #cfd2de;
  border-bottom: 1px solid #cfd2de;
  padding: 10px 20px;
}
table.item_list th:last-child,
table.item_list td:last-child {
  width: 80px;
  text-align: center;
}
table.item_list th {
  min-height: 80px;
  background-color: #f2f1f0;
  font-size: 16px;
  font-weight: 400;
  text-align: center;
  vertical-align: middle;
}

table.item_list th span {
  font-size: 14px;
}

table.item_list td {
  font-size: 15px;
}

@media screen and (max-width: 1200px) {
  table.item_list {
    width: 1200px;
  }
}

@media screen and (max-width: 1000px) {
  table.item_list caption {
    font-size: 24px;
  }
}

@media screen and (max-width: 767px) {
  table.item_list caption {
    font-size: 20px;
  }
}


table.outline_list {
  border-top: 1px solid #cfd2de;
}
table.outline_list th,
table.outline_list td {
  border-bottom: 1px solid #cfd2de;
  font-size: 17px;
  font-weight: 400;
  padding: 20px 40px;
}
table.outline_list th {
  width: 340px;
  background-color: #e6e4e2;
}
table.outline_list td dl:not(:first-child) {
  margin-top: 15px;
}
table.outline_list td dl dt {
  width: 140px;
}
table.outline_list td dl dd {
  width: calc(100% - 140px);
}

@media screen and (max-width: 1000px) {
  table.outline_list th {
    width: 200px;
  }

  table.outline_list td dl dt {
    width: 100%;
    font-weight: 700;
  }
  table.outline_list td dl dd {
    width: 100%;
  }
}

@media screen and (max-width: 767px) {
  table.outline_list tr {
    display: flex;
    flex-wrap: wrap;
  }

  table.outline_list th,
  table.outline_list td {
    width: 100%;
    font-size: 16px;
    padding: 5px 10px;
  }
}


table.history_list th,
table.history_list td {
  font-size: 17px;
  font-weight: 400;
  padding: 20px;
}
table.history_list th:first-child {
  width: 120px;
  font-size: 28px;
  position: relative;
}
table.history_list th:first-child .year {
  position: absolute;
  left: 20px;
  top: 12px;
}
table.history_list th:nth-child(2) {
  width: 90px;
  color: #888eac;
}
table.history_list td {
  border-bottom: 1px solid #cfd2de;
  padding-left: 5px;
}
table.history_list tr:first-child td {
  border-top: 1px solid #cfd2de; 
}

@media screen and (max-width: 767px) {
  table.history_list {
    border-top: 1px solid #cfd2de;
  }
  table.history_list tr {
    display: flex;
    flex-wrap: wrap;
  }
  table.history_list th,
  table.history_list td {
    font-size: 16px;
    padding: 5px 10px;
  }
  table.history_list th:first-child {
    width: 85px;
    font-size: 20px;
  }
  table.history_list th:first-child .year {
    position: static;
  }
  table.history_list td {
    width: 100%;
  }
  table.history_list tr:first-child td {
    border-top: none;
  }
}


table.section_list th,
table.section_list td {
  font-size: 16px;
  padding: 10px 20px;
}
table.section_list tr:not(:last-child) th,
table.section_list tr:not(:last-child) td {
  border-bottom: 1px solid #cfd2de;
}
table.section_list th {
  width: 33.33%;
  max-width: 400px;
  background-color: #f2f1f0;
}
table.section_list td {
  background-color: #ffffff;
}

.machining table.section_list,
.development table.section_list {
  border-top: 1px solid #cfd2de;
}
.machining table.section_list caption {
  font-size: 28px;
  font-weight: 900;
  text-align: left;
  line-height: 1;
  margin-bottom: 12px;
}
.machining table.section_list th,
.machining table.section_list td {
  font-size: 18px;
  padding: 15px 20px;
}
.machining table.section_list tr:last-child th,
.machining table.section_list tr:last-child td,
.development table.section_list tr:last-child th,
.development table.section_list tr:last-child td {
  border-bottom: 1px solid #cfd2de;
}
.machining table.section_list tr:last-child th {
  background-color: #bbf6cf;
}
.machining table.section_list tr:last-child td {
  background-color: #e8fcef;
}


.message table.section_list {
  height: 100%;
}
.message table.section_list tr:not(:last-child) {
  height: 45px;
}
.message table.section_list th {
  width: 36.69%;
  min-width: 160px;
}

@media screen and (max-width: 767px) {
  table.section_list tr {
    display: flex;
    flex-wrap: wrap;
  }
  table.section_list th,
  table.section_list td {
    width: 100%;
    font-size: 16px;
    padding: 5px 10px;
  }
  table.section_list th {
    max-width: 100%;
  }

  .machining table.section_list caption {
    font-size: 20px;
    margin-bottom: 10px;
  }
  .machining table.section_list th,
  .machining table.section_list td {
    font-size: 16px;
    padding: 5px 10px;
  }
  .machining table.section_list tr:last-child th,
  .machining table.section_list tr:last-child td,
  .development table.section_list tr:last-child th,
  .development table.section_list tr:last-child td {
    border-bottom: 1px solid #cfd2de;
  }

  .message table.section_list {
    height: 100%;
  }
  .message table.section_list tr:not(:last-child) {
    height: auto;
  }
  .message table.section_list th {
    width: 100%;
  }
}


/* btn circle */
.btn .circle {
  width: 64px;
  height: 64px;
  position: absolute;
  right: 40px;
  top: 0;
  bottom: 0;
  margin: auto;
  z-index: 3;
}
.news .btn .circle {
  right: 5px;
}
.btn .circle::before,
.btn .circle::after {
  content: '';
  display: block;
  border-radius: 100vmax;
  position: absolute;
  left:50%;
  top:50%;
  transform: translate(-50%, -50%);
}
.btn .circle::before {
  width: 100%;
  height: 100%;
  background-color: #e6e4e2;
}
.btn .circle::after {
  width: 16px;
  height: 16px;
  background-color: #111e5a;
  transition: all 0.3s ease-in-out;
}
.btn:hover .circle::after {
  width: 45px;
  height: 45px;
  background-color: #111e5a;
}


.link_btn .btn {
  width: 600px;
  height: 200px;
  position: relative;
}
.works .link_btn .btn {
  margin-bottom: 15px;
}
.recruit .link_btn .btn {
  margin: 60px auto 0;
}
.link_btn .btn a {
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, #414b7b 16.99%, #29346a 17%);
  color: #ffffff;
  font-size: 22px;
  text-align: left;
  padding-left: 20%;
  cursor: pointer;
}

@media screen and (max-width: 1000px) {
  .link_btn .btn {
    height: 150px;
  }
}

@media screen and (max-width: 767px) {
  .link_btn .btn {
    width: 100%;
    max-width: 360px;
    height: 100px;
  }

  .btn .circle {
    width: 48px;
    height: 48px;
    right: 20px;
  }
  .btn .circle::after {
    width: 12px;
    height: 12px;
  }
  .btn:hover .circle::after {
    width: 32px;
    height: 32px;
  }
  .link_btn .btn a {
    background: linear-gradient(90deg, #414b7b 30px, #29346a 30px);
    font-size: 18px;
    padding-left: 50px;
  }
}


/* works
************************************************** */
.s_cont.work01 .left {
  width: 45%;
} 
.s_cont.work01 .right {
  width: 48.33%;
}
.s_cont.work01 .right .txt {
  font-size: 25px;
  line-height: 1.75;
  text-decoration: underline;
}

.cont.work02 .box {
  width: 46.66%;
  margin-bottom: 80px;
}
.cont.work02 .ttl {
  font-size: 32px;
  margin-bottom: 15px;
}
.cont.work02 .txt {
  font-size: 18px;
  line-height: 1.75;
  margin-top: 15px;
}
.cont.work02 .txt.ls105 {
  letter-spacing: -1.05px;
}
.cont.work02 .txt.ls070 {
  letter-spacing: -0.70px;
}

@media screen and (max-width: 1400px) {
  .cont.work02 .txt.ls {
    letter-spacing: 0;
  }
}

@media screen and (max-width: 1000px) {
  .cont.work02 .ttl {
    font-size: 24px;
    margin-bottom: 5px;
  }
  .cont.work02 .box {
    width: 48%;
    margin-bottom: 60px;
  }
}

@media screen and (max-width: 767px) {
  .s_cont.work01 .left {
    width: 100%;
  }
  .s_cont.work01 .right {
    width: 100%;
    margin-top: 30px;
  }

  .cont.work02 .box {
    width: 100%;
    margin-bottom: 40px;
  }
  .cont.work02 .ttl {
    font-size: 20px;
    margin-bottom: 10px;
  }
  .cont.work02 .txt {
    font-size: 16px;
    margin-top: 10px;
  }
}


/* works */
.works section {
  padding-left: calc(5rem + 25px);
  padding-right: calc(5rem + 25px);
  position: relative;
  z-index: 1;
}
.works #sec01 section {
  padding-top: 150px;
}
.works #sec01 {
  background-color: #111e5a;
  position: relative;
}
.works #sec01::before,
.works #sec01::after {
  content: '';
  width: 100%;
  height: 360px;
  position: absolute;
  left: 0;
  top: 0;
}
.works #sec01::before {
  background-color: #27367c;
}
.works #sec01::after {
  background-image: url(../img/works/works01_ttl.png);
  background-position: center 90px;
  background-repeat: no-repeat;
  background-size: contain;
}
.works #sec01 .s_ttl {
  margin-bottom: 130px;
}
.works #sec01 .s_ttl .ja {
  color: #ffffff;
}
.works #sec01 .s_cont {
  background-image: url(../img/works/works01_bg.png);
  background-position: center bottom;
  background-repeat: no-repeat;
}
.works .works_cont .cont {
  color: #ffffff;
}
.works .works_cont .cont.reverse {
  margin-top: 220px;
}
.works .works_cont .cont .left {
  width: 55.55%;
}
.works .works_cont .cont .right {
  width: 44.45%;
}
.works .works_cont .cont .right {
  padding: 80px 85px 80px 80px;
  position: relative;
}
.works .works_cont .cont .num {
  font-family: "Roboto";
  font-size: 28px;
  font-weight: 700;
  -ms-writing-mode: tb-rl;
  writing-mode: vertical-rl;
  position: absolute;
  left: 20px;
  top: 40px;
}
.works .works_cont .cont .ttl {
  font-size: 38px;
  text-decoration: underline;
}
.works .works_cont .cont .ttl span {
  color: #1ee25e;
  text-decoration: underline;
}
.works .works_cont .cont .txt {
  max-width: 1000px;
  font-size: 18px;
  line-height: 2.3;
  margin-top: 40px;
}

.works .works_cont .cont.reverse .left {
  width: 33.33%;
}
.works .works_cont .cont.reverse .right {
  width: 66.67%;
}

.works #sec02 {
  min-height: 1000px;
  background-color: #111e5a;
  background-image: url(../img/works/works02_img01.jpg);
  background-position: center top;
  background-repeat: no-repeat;
  position: relative;
}
.works #sec02::before {
  content: '';
  width: 100%;
  height: 1000px;
  background-color: rgba(17, 30, 90, 0.5);
  position: absolute;
  left: 0;
  top: 0;
}
.works #sec02 .works_cont .cont {
  padding: 80px 85px 80px 80px;
  position: relative;
}
.works #sec02 .works_cont .cont .txt {
  max-width: 660px;
}

.works_menu {
  margin-top: 80px;
}
.works_menu .left {
  width: 360px;
}
.works_menu .left .ttl {
  font-family: "Roboto";
  color: #ffffff;
  font-size: 60px;
  font-weight: 700;
}
.works_menu .right {
  width: calc(100% - 400px);
  max-width: 600px;
}


.works #sec03 section {
  padding-left: 0;
  padding-right: 0;
}
.works #sec03 .btn {
  width: 50%;
  height: 800px;
  overflow: hidden;
  position: relative;
}
.works #sec03 .btn::before {
  content: '';
  width: 100%;
  height: 100%;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  position: absolute;
  left: 0;
  top: 0;
  z-index: -1;
}
.works #sec03 .btn:first-child::before {
  background-image: url(../img/works/works03_img01.jpg);
}
.works #sec03 .btn:last-child::before {
  background-image: url(../img/works/works03_img02.jpg);
}
.works #sec03 .btn a {
  width: 100%;
  height: 100%;
  background-color: rgba(17, 30, 90, 0.5);
  color: #ffffff;
}
.works #sec03 .btn:hover::before {
  transition: 0.3s;
  transform: scale(1.1);
}


.works #sec03 .btn .ttl {
  font-family: "Roboto";
  font-size: 80px;
  font-weight: 700;
}
.works #sec03 .btn .circle {
  display: block;
  margin: 40px auto 0;
  position: relative;
  right: 0;
}

@media screen and (max-width: 1400px) {
  .works .works_cont .cont .right {
    padding-right: 40px;
  }

  .works #sec03 .btn {
    height: 600px;
  }
}

@media screen and (max-width: 1000px) {
  .works .works_cont .cont .left {
    width: 100%;
  }
  .works .works_cont .cont .right {
    width: 100%;
    padding-bottom: 0;
  }
  .works .works_cont .cont .ttl {
    font-size: 30px;
  }
  .works .works_cont .cont.reverse {
    margin-top: 120px;
  }

  .works_menu .left {
    width: 100%;
  }
  .works_menu .left .ttl {
    font-size: 54px;
  }
  .works_menu .right {
    width: 100%;
    max-width: 450px;
    margin-left: auto;
    margin-top: 40px;
  }

  .works #sec01 section {
    padding-top: 100px;
  }
  .works #sec01 .s_ttl {
    margin-bottom: 60px;
  }

  .s_cont.work01 .right .txt {
    font-size: 21px;
  }

  .works #sec03 .btn {
    height: 450px;
  }

  .works #sec03 .btn .ttl {
    font-size: 60px;
  }
}

@media screen and (max-width: 767px) {
  .works section {
    padding-left: 15px;
    padding-right: 15px;
  }

  .works #sec01 .s_cont {
    background-image: none;
  }
  .works .works_cont .cont .right {
    margin-top: 30px;
    padding: 0;
  }
  .works .works_cont .cont .num {
    writing-mode: unset;
    position: static;
  }

  .works .works_cont .cont .num {
    font-size: 21px;
  }
  .works .works_cont .cont .ttl {
    font-size: 24px;
  }
  .works .works_cont .cont .txt {
    font-size: 16px;
    line-height: 1.75;
    margin-top: 20px;
  }

  .works .works_cont .cont.reverse {
    flex-flow: wrap;
    margin-top: 50px;
  }

  .works .works_cont .cont.reverse .left {
    width: 100%;
  }
  .works .works_cont .cont.reverse .right {
    width: 100%;
    margin-top: 30px;
  }

  .works #sec02 .works_cont .cont {
    padding: 50px 0;
  }

  .works_menu {
    margin-top: 40px;
  }
  .works_menu .left .ttl {
    font-size: 45px;
  }

  .works #sec03 .btn {
    height: 320px;
  }
  .works #sec03 .btn .ttl {
    font-size: 32px;
  }

  .s_cont.work01 .right .txt {
    font-size: 18px;
  }
}

@media screen and (max-width: 480px) {
  .works #sec03 .btn {
    width: 100%;
    height: 240px;
  }
}


/* machining */
.point_line {
  border-top: 1px solid #111e5a;
  border-bottom: 1px solid #111e5a;
  margin-top: 100px;
}
.point_cont .box {
  width: 50%;
  background-color: #111e5a;
  background-image: url(../img/machining/point_bg.png);
  background-position: center top;
  background-repeat: no-repeat;
  padding: 40px 30px;
}
.point_cont .box:not(:last-child) {
  border-right: 1px solid #ffffff;
}
.point_cont .point {
  font-family: "Roboto";
  font-size: 18px;
  text-align: center;
}
.point_cont .ttl {
  max-width: 400px;
  color: #1ee25e;
  font-size: 18px;
  margin: 10px auto 0;
}
.point_cont .txt {
  max-width: 400px;
  font-size: 40px;
  text-decoration: underline;
  line-height: 1.2;
  margin: 0 auto;
}
.point_txt {
  font-size: 18px;
  line-height: 1.75;
  margin-top: 60px;
  margin-bottom: 100px;
}
.machining #sec01 .m_ttl {
  width: 100%;
  margin-bottom: 40px;
}
.machining #sec01 .s_box ul li {
  width: 31.66%;
}
.machining #sec01 .s_box ul li:nth-child(2) {
  width: 35%;
}
.machining #sec01 .s_box .box {
  margin-top: 15px;
  position: relative;
}
.machining #sec01 .s_box .box .txt {
  font-size: 18px;
  line-height: 1.75;
  position: absolute;
  right: 0;
  top: 0;
  display: flex;
  flex-wrap: wrap;
}
.machining #sec01 .s_box .box .icon {
  width: 120px;
}
.machining #sec01 .s_box .box .ttl {
  width: calc(100% - 420px);
  font-size: 30px;
  text-decoration: underline;
  padding-top: 15px;
}


.network_cont .left {
  width: 44.33%;
}
.network_cont .right {
  width: 46.66%;
}
.network_cont .right .txt {
  font-size: 18px;
  line-height: 1.75;
}

.machining #sec02 .n_ttl {
  margin-bottom: 60px;
}

.machining #sec02 .s_box {
  margin-top: 80px;
}
.machining #sec02 .s_box dl dt,
.machining #sec02 .s_box dl dd {
  padding: 15px 30px;
}
.machining #sec02 .s_box dl dt {
  background-color: #111e5a;
  color: #ffffff;
  font-size: 22px;
  font-weight: 900;
}
.machining #sec02 .s_box dl dd {
  font-size: 18px;
}
.machining #sec02 .s_box dl dd:not(:last-child),
.machining #sec02 .s_box dl:last-child dd:last-child {
  border-bottom: 1px solid #e6e4e2;
}
.machining #sec03 .s_cont .txt {
  font-size: 18px;
  margin-top: 10px;
}


@media screen and (max-width: 1400px) {
  .point_line {
    padding-left: 5rem;
    padding-right: 5rem;
  }
}

@media screen and (max-width: 1000px) {
  .point_cont .txt {
    font-size: 24px;
  }

  .machining #sec01 .s_box .box .ttl {
    font-size: 18px;
  }

  .machining #sec01 .s_box .box .txt {
    font-size: 16px;
  }
}

@media screen and (max-width: 767px) {
  .point_line {
    margin-top: 50px;
  }
  .point_cont .box {
      width: 100%;
  }

  .point_txt {
    margin: 50px 0;
  }

  .machining #sec01 .m_ttl {
    margin-bottom: 30px;
  }

  .machining #sec01 .s_box .box .txt {
    width: 100%;
    position: static;
  }
  .machining #sec01 .s_box .box .icon {
    width: 100%;
    text-align: center;
    margin-top: 20px;
  }
  .machining #sec01 .s_box .box .ttl {
    width: 100%;
    font-size: 16px;
    text-align: center;
  }
    
  .network_cont .left {
    width: 100%;
  }
  .network_cont .right {
    width: 100%;
    margin-top: 30px;
  }
  .network_cont .right .txt {
    font-size: 16px;
  }

  .machining #sec02 .s_box {
    margin-top: 50px;
  }
  .machining #sec02 .s_box dl dt,
  .machining #sec02 .s_box dl dd {
    padding: 10px 15px;
  }
  .machining #sec02 .s_box dl dt {
    font-size: 18px;
  }
  .machining #sec02 .s_box dl dd {
    font-size: 16px;
  }

  .machining #sec03 .s_cont .txt {
    font-size: 16px;
  }
}


/* development */
.case:not(:first-child) {
  margin-top: 80px;
}
.case .num {
  width: 120px;
  background-color: #e7e8ee;
  color: #f600c5;
  font-size: 18px;
  text-align: center;
  margin-right: 20px;
  padding: 10px;
}
.case .num_ttl {
  width: calc(100% - 140px);
  font-size: 18px;
  padding-top: 10px;
}

.case .ttl {
  font-size: 38px;
  margin: 15px 0;
}
.case .txt {
  font-size: 18px;
  line-height: 1.75;
}
.case .txt.ls010 {
  letter-spacing: -0.10px;
}

.development #sec03 .m_ttl {
  width: 100%;
  margin-top: 100px;
  margin-bottom: 30px;
}
.development #sec03 .m_txt {
  font-size: 16px;
  line-height: 1.75;
  padding: 0 20px
}

#development_slide {
  margin-bottom: 100px;
}

@media screen and (max-width: 1400px) {
  .case .txt.ls010 {
    letter-spacing: 0;
  }
}

@media screen and (max-width: 1000px) {
  .case .ttl {
    font-size: 24px;
    margin: 10px 0;
  }
}

@media screen and (max-width: 767px) {
  .case:not(:first-child) {
    margin-top: 40px;
  }
  .case .num_ttl {
    width: 100%;
  }
  .case .ttl {
    font-size: 21px;
    margin: 10px 0;
  }
  .case .txt {
    font-size: 16px;
  }

  .development #sec03 .m_ttl {
    width: 100%;
    margin-top: 50px;
    margin-bottom: 20px;
  }

  .development #sec03 .m_txt {
      padding: 0;
  }
}

/* quality */










/* products
************************************************** */
.products #sec01 .cont_box .box {
  max-width: 48.5%;
}
.products #sec01 .cont_box .box:nth-child(n+3) {
  margin-top: 60px;
}
.products #sec01 .cont_box .box .img {
  margin-bottom: 10px;
}
.products #sec01 .cont_box .box .ttl,
.products #sec01 .cont_box .box .flex {
  padding: 0 20px;
}
.products #sec01 .cont_box .box .ttl {
  font-size: 24px;
  margin-bottom: 10px;
}
.products #sec01 .cont_box .box .left {
  width: 110px;
  margin-right: 15px;
}
.products #sec01 .cont_box .box .left .left_ttl {
  width: 100%;
  background-color: #111e5a;
  color: #ffffff;
  font-size: 15px;
  text-align: center;
  padding: 5px;
}
.products #sec01 .cont_box .box .right {
  width: calc(100% - 125px);
}
.products #sec01 .cont_box .box .right ol li {
  font-size: 18px;
  text-indent: -1em;
  padding-left: 1em;
}

.products #sec02 {
  background-color: #111e5a;
}
.products #sec02 .cont_box .box:not(:first-child) {
  margin-top: 60px;
}
.products #sec02 .cont_box .box .ttl {
  width: 100%;
  background-color: #29346a;
  color: #ffffff;
  font-size: 24px;
  padding: 20px;
}

.products #sec02 .cont_box .box .img {
  overflow: hidden;
}
.products #sec02 .cont_box .box img {
  transition: 0.3s;
}
.products #sec02 .cont_box .box a:hover img {
  transform: scale(1.1);
}

@media screen and (max-width: 1000px) {
  .products #sec01 .cont_box .box .ttl,
  .products #sec01 .cont_box .box .flex {
    padding-left: 0;
    padding-right: 0;
  }
  .products #sec01 .cont_box .box .ttl {
    font-size: 18px;
  }
  .products #sec01 .cont_box .box .left {
    margin-right: 0;
  }
  .products #sec01 .cont_box .box .right {
    width: 100%;
    margin-top: 5px;
  }
  .products #sec01 .cont_box .box .right ol li {
    font-size: 16px;
  }

  .products #sec02 .cont_box .box .ttl {
    font-size: 16px;
  }
}

@media screen and (max-width: 767px) {
  .products #sec01 .cont_box .box {
    width: 100%;
    max-width: 100%;
  }
  .products #sec01 .cont_box .box:nth-child(n+2) {
    margin-top: 40px;
  }
}


/* benri */
.benri .page_bg {
  width: calc(100% - 50px - 10rem);
}
.benri section {
  padding-left: 0;
  padding-right: 0;
}
.benri .cont_bg {
  border-radius: 20px;
  padding: 60px 40px 80px;
}
.benri .cont_bg.bg {
  background-color: #f2f1f0;
}
.benri .m_ttl {
  width: 100%;
}

.benri #sec01 .s_cont .left {
  width: 55%;
}
.benri #sec01 .s_cont .right {
  width: 40%;
}
.benri #sec01 .s_cont .right .ttl {
  font-size: 36px;
  text-decoration: underline;
}
.benri #sec01 .s_cont .right .ttl span {
  color: #f600c5;
  text-decoration: underline;
}
.benri #sec01 .s_cont .right .txt {
  font-size: 18px;
  line-height: 1.75;
  margin-top: 40px;
}

.benri .item_cont .code {
  background-color: #ffffff;
  border: 1px solid #e6e4e2;
  border-top: none;
  font-size: 18px;
  padding: 5px 20px;
}
.benri .item_cont .left {
  width: 35%;
  margin-right: 3%;
}
.benri .item_cont .left .ttl {
  font-size: 24px;
  margin-bottom: 10px;
}

.benri .item_cont .right {
  width: 56.66%;
}
.benri .item_cont .right .ttl {
  font-size: 24px;
  margin-bottom: 10px;
}
.benri .item_cont .right .box {
  width: 50%;
}
.benri .item_cont .right .box_txt {
  width: 100%;
  font-size: 14px;
  margin-top: 5px;
}

.benri .n_ttl.mt {
  margin-bottom: 0;
}
.benri .n_cont {
  background-color: #fafaf9;
  border: 1px solid #e6e4e2;
}

.n_box {
  padding: 40px;
}
.n_box:not(:first-child) {
  border-top: 1px solid #e6e4e2;
  margin-top: 60px;
}
.n_box_left {
  width: 50%;
}
.n_box_left .step {
  width: 120px;
  background-color: #e6e4e2;
  border-radius: 100vmax;
  font-size: 18px;
  font-weight: 900;
  text-align: center;
  margin-right: 20px;
  padding: 10px;
}
.n_box_left .ttl {
  width: calc(100% - 140px);
  font-size: 24px;
  line-height: 48px;
}
.n_box_left .txt {
  width: calc(100% - 35px);
  margin-top: 15px;
}
.n_box_left .txt ol li {
  font-size: 18px;
  line-height: 1.75;
  text-indent: -1em;
  padding-left: 1em;
}

.n_box_right {
  width: 48%;
}
.n_box_right .img p {
  font-size: 20px;
  font-weight: 900;
  margin-bottom: 5px;
}
.n_box_right .img p:not(:first-child) {
  margin-top: 20px;
}
.n_box_right .img img {
  width: 49%;
}


.example_cont {
  padding-top: 40px;
}

.example_cont .img {
  width: 35%;
}
.example_cont .txt {
  width: 26%;
  font-size: 18px;
  line-height: 1.75;
}
.example_txt {
  font-size: 22px;
  margin-top: 10px;
}


.merit_cont .box {
  margin-top: 80px;
}
.merit_cont .box:first-child {
  margin-top: 40px;
}
.merit_cont .left {
  width: 38%;
}
.merit_cont .left .num {
  width: 220px;
  background-color: #f600c5;
  color: #ffffff;
  font-size: 22px;
  font-weight: 900;
  padding: 5px 20px;
}
.merit_cont .left .ttl {
  font-size: 50px;
  font-weight: 900;
  line-height: 1;
  margin-top: 10px;
}
.merit_cont .left .txt {
  font-size: 18px;
  line-height: 1.75;
  margin-top: 15px;
}
.merit_cont .right {
  width: 56%;
}
.merit_cont .right .img {
  text-align: center;
}

.movie_cont {
  width: 100%;
  background-color: #f3f4f7;
  margin-top: 40px;
}
.movie_cont .ttl {
  border-bottom: 1px solid #cfd2de;
  font-size: 30px;
  font-weight: 900;
  padding: 10px 40px;
}
.movie_cont .cont {
  max-width: 692px;
  padding: 40px;
}

.youtube {
  position: relative;
  width: 100%;
  padding-top: 56.25%;
}
.youtube iframe {
  position: absolute;
  top: 0;
  right: 0;
  width: 100%;
  height: 100%;
}

.standard_cont .cont .img:first-child {
  width: 52.5%;
  margin-right: 3%;
}
.standard_cont .cont .img:last-child {
  width: 32%;
}

table.standard_list {
  border-left: 1px solid #111e5a;
  border-top: 1px solid #111e5a;
}
table.standard_list.max1060 {
  max-width: 1060px;
}
table.standard_list.max960 {
  max-width: 960px;
}
table.standard_list caption {
  font-size: 18px;
  text-align: right;
  margin-bottom: 5px;
}

table.standard_list th,
table.standard_list td {
  border-right: 1px solid #111e5a;
  border-bottom: 1px solid #cfd2de;
  font-size: 18px;
  font-weight: 400;
  text-align: center;
  line-height: 1;
  vertical-align: middle;
  padding: 10px;
}
table.standard_list th {
  background-color: #e6e4e2;
}
table.standard_list td.last,
table.standard_list tr:last-child td {
  border-bottom: 1px solid #111e5a;
}
table.standard_list th span {
  font-size: 13px;
}
table.standard_list td:last-child {
  background-color: #ffffe2;
}

.standard_list_txt {
  margin-top: 5px;
}
.standard_list_txt li {
  font-size: 16px;
  text-indent: -1em;
  padding-left: 1em;
}

.yen {
  color: #888eac;
  font-size: 15px;
  margin-left: 5px;
}
.pink {
  color: #f600c5;
}

.benri .list_scroll {
  margin-top: 50px;
}
.list_scroll .type {
  font-size: 20px;
  margin-bottom: -30px;
}
.list_scroll.mt {
  margin-top: 50px;
}

.order_cont .cont {
  width: 47%;
  background-color: #e6e4e2;
}
.order_cont .cont {
  margin-top: 40px;
}
.order_cont .cont .box {
  padding: 40px;
}
.order_cont .cont .ttl {
  font-size: 28px;
  text-align: center;
}
.order_cont .cont .txt {
  max-width: 400px;
  font-size: 16px;
  line-height: 1.75;
  margin: 30px auto 0;
}
.order_cont .cont .btn {
  width: 100%;
  max-width: 260px;
  margin: 50px auto 0;
}
.order_cont .cont .btn a {
  font-family: "Roboto";
  display: block;
  width: 100%;
  background-color: #ffffff;
  border-radius: 10px;
  font-size: 38px;
  font-weight: 900;
  text-align: center;
  padding: 10px;
}

.order_cont .cont .download {
  width: 100%;
  max-width: 360px;
  margin: 30px auto 0;
}
.order_cont .cont .download a {
  display: block;
  width: 100%;
  background-color: #111e5a;
  background-image: url(../img/benri/order_download.svg);
  background-position: right 30px center;
  background-repeat: no-repeat;
  background-size: 20px auto;
  color: #ffffff;
  font-size: 18px;
  text-align: center;
  padding: 10px 20px;
}

.order_cont .cont .num {
  width: 100%;
  background-color: #1ee25e;
  font-size: 40px;
  font-weight: 900;
  text-align: center;
  padding: 20px;
}

@media screen and (max-width: 1400px) {
  .order_cont .cont .num {
    font-size: 30px;
  }
}

@media screen and (max-width: 1000px) {
  .benri .item_cont .right .ttl {
    font-size: 21px;
  }

  .benri .cont_bg {
    border-radius: 20px;
    padding-left: 25px;
    padding-right: 25px;
  }

  .n_box_left .step {
    width: 100px;
    font-size: 16px;
    margin-right: 20px;
  }
  .n_box_left .ttl {
    width: 100%;
    font-size: 18px;
    margin-top: 5px;
  }

  .example_txt {
    font-size: 16px;
  }

  .merit_cont .left .ttl {
    font-size: 32px;
  }

  table.standard_list {
    width: 1200px;
  }


  .order_cont .cont {
    width: 100%;
  }
}

@media screen and (max-width: 767px) {
  .benri .page_bg {
    width: 100%;
    padding-left: 15px;
    padding-right: 15px;
  }
  .benri .cont_bg.bg {
    width: calc(100% + 30px);
    margin-left: -15px;
    padding-left: 15px;
    padding-right: 15px;
    border-radius: 0;
  }

  .benri #sec01 .s_cont .left {
    width: 100%;
  }
  .benri #sec01 .s_cont .right {
    width: 100%;
    margin-top: 20px;
  }
  .benri #sec01 .s_cont .right .ttl {
    font-size: 24px;
  }
  .benri #sec01 .s_cont .right .txt {
    font-size: 16px;
    margin-top: 20px;
  }

  .benri .cont_bg {
    padding-left: 0;
    padding-right: 0;
    padding-top: 50px;
    padding-bottom: 50px;
  }

  .benri .item_cont .left {
    width: 100%;
    margin-right: 0;
  }
  .benri .item_cont .left .ttl {
    font-size: 20px;
  }

  .benri .item_cont .right {
    width: 100%;
    margin-top: 30px;
  }
  .benri .item_cont .right .ttl {
    font-size: 20px;
  }
  .benri .item_cont .right .box {
    width: 100%;
  }
  .benri .item_cont .right .box:not(:first-child) {
    margin-top: 15px;
  }
  .benri .item_cont .code {
    background-color: transparent;
    border: none;
    padding: 5px;
  }


  .n_box {
    padding: 20px;
  }
  .n_box:not(:first-child) {
    margin-top: 40px;
  }
  .n_box_left {
    width: 100%;
  }
  .n_box_left .txt {
    width: 100%;
  }
  .n_box_left .txt ol li {
    font-size: 16px;
  }

  .n_box_right {
    width: 100%;
    margin-top: 20px;
  }
  .n_box_right .img p {
    font-size: 18px;
  }


  .example_cont .img {
    width: 49%;
  }
  .example_cont .txt {
    width: 100%;
    font-size: 16px;
    margin-top: 10px;
  }
  .example_txt {
    font-size: 16px;
  }


  .merit_cont .box {
    margin-top: 50px;
  }
  .merit_cont .box:first-child {
    margin-top: 40px;
  }
  .merit_cont .left {
    width: 100%;
  }
  .merit_cont .left .num {
    display: inline-block;
    width: auto;
    font-size: 20px;
    padding: 5px 15px;
  }
  .merit_cont .left .ttl {
    font-size: 26px;
  }
  .merit_cont .left .txt {
    font-size: 16px;
  }
  .merit_cont .right {
    width: 100%;
    margin-top: 20px;
  }


  .movie_cont .ttl {
    font-size: 20px;
    padding-left: 15px;
    padding-right: 15px;
  }
  .movie_cont .cont {
    padding: 15px;
  }

  .order_cont .cont .ttl {
    font-size: 24px;
  }
  .order_cont .cont .txt {
    margin-top: 20px;
  }
  .order_cont .cont .num {
    font-size: 24px;
    padding: 10px;
  }
  .order_cont .cont .btn a {
    font-size: 32px;
  }
  .order_cont .cont .download a {
    background-position: right 15px center;
    font-size: 16px;
  }
}


/* equipment
************************************************** */
.equipment #sec01 .cont_box .box {
  width: 31.66%;
}
.equipment #sec01 .cont_box .box:nth-child(n+4) {
  margin-top: 40px;
}

.equipment #sec01 .cont_box .box .ttl {
  font-size: 20px;
  margin-top: 8px;
}

.equipment #sec02 .s_cont .box:not(:first-child) {
  margin-top: 40px;
}

@media screen and (max-width: 1000px) {
  .equipment #sec01 .cont_box .box .ttl {
    font-size: 18px;
    margin-top: 5px;
  }
}

@media screen and (max-width: 767px) {
  .equipment #sec01 .cont_box .box {
    width: 49%;
  }
  .equipment #sec01 .cont_box .box:nth-child(n+3) {
    margin-top: 40px;
  }

  .equipment #sec01 .cont_box .box .ttl {
    font-size: 16px;
  }
}

@media screen and (max-width: 480px) {
  .equipment #sec01 .cont_box .box {
    width: 100%;
  }
  .equipment #sec01 .cont_box .box:nth-child(n+2) {
    margin-top: 40px;
  }
}


/* recruit
************************************************** */
.recruit {
  background-color: #111e5a;
}
.recruit .page_bg {
  width: 100%;
  background-color: #e6e4e2;
  background-image: url(../img/recruit/recruit_bg.png);
  background-position: center top;
  background-repeat: no-repeat;
  background-size: cover;
}
.recruit #sec03 .page_bg,
.recruit #sec04 .page_bg {
  background-image: url(../img/recruit/recruit_bg56.png);
}
.recruit #sec05 .s_ttl .ja,
.recruit #sec06 .s_ttl .ja {
  color: #ffffff;
}

.recruit .loupe {
  width: 168px;
  height: 144px;
  background-image: url(../img/recruit/recruit_loupe.png);
  background-position: center;
  background-repeat: no-repeat;
  font-size: 18px;
  text-decoration: underline;
  padding: 20px;
  padding-right: 25px;
  position: absolute;
  left: 0;
  right: 0;
  top: -3px;
  margin: auto;
}

.recruit #sec01 {
  background-color: #2e357b;
}
.recruit_img {
  width: 100%;
  height: 780px;
  background-image: url(../img/recruit/recruit_img.jpg);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  position: relative;
}
.recruit_img::before,
.recruit_img::after {
  content: '';
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
}
.recruit_img::before {
  background-image: url(../img/recruit/recruit_img01.png);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  top: 0;
}
.recruit_img::after {
  background-image: url(../img/recruit/recruit_img02.png);
  background-position: center;
  background-repeat: no-repeat;
  bottom: -160px;
}

.recruit_img .goat03 {
  animation: floating-xy 3.5s ease-in-out infinite alternate-reverse;
  position: absolute;
  left: 45%;
  top: 50%;
}

.recruit_txt {
  max-width: 90%;
  position: absolute;
  left: 0;
  right: 0;
  bottom: 120px;
  margin: auto;
}

.recruit #sec01 section {
  background-image: url(../img/recruit/recruit01_bg.png);
  background-position: center top;
  background-repeat: no-repeat;
}

.recruit #sec01 .s_cont {
  margin-top: -30px;
  position: relative;
}
.recruit #sec01 .s_cont .s_bg {
  max-width: 960px;
  height: 680px;
  background-image: url(../img/recruit/recruit01_img.png);
  background-position: center;
  background-repeat: no-repeat;
  background-size: auto 100%;
  margin: 0 auto;
  padding: 70px 100px 100px 120px;
  position: relative;
}

.recruit #sec01 .s_cont .s_bg .goat01,
.recruit #sec01 .s_cont .s_bg .goat02 {
  position: absolute;
}
.recruit #sec01 .s_cont .s_bg .goat01 {
  animation: floating-xy 3.5s ease-in-out infinite alternate-reverse;
  left: -145px;
  top: 120px;
}
.recruit #sec01 .s_cont .s_bg .goat02 {
  animation: floating-xy02 3.5s ease-in-out infinite alternate-reverse;
  left: -80px;
  bottom: 120px;
}
@keyframes floating-xy02 {
  0% {
    transform: translate(-10%, 10%);
  }
  50% {
    transform: translate(-10%, -10%);
  }
  100% {
    transform: translate(10%, -10%);
  }
}

.recruit #sec01 .s_cont .ttl {
  font-size: 40px;
  text-decoration: underline;
}
.recruit #sec01 .s_cont .ttl span {
  color: #1ee25e;
  text-decoration: underline;
}
.recruit #sec01 .s_cont .txt {
  max-width: 720px;
  font-size: 20px;
  margin-top: 10px;
}
.recruit #sec01 .s_cont .s_ttl {
  margin: 10px 0;
  padding-top: 10px;
}
.recruit #sec01 .s_cont ul {
  max-width: 630px;
}
.recruit #sec01 .s_cont ul li {
  width: 200px;
  height: 72px;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  font-size: 16px;
  padding: 10px;
}
.recruit #sec01 .s_cont ul li:nth-child(n+4) {
  margin-top: 5px;
}
.recruit #sec01 .s_cont ul li:first-child,
.recruit #sec01 .s_cont ul li:nth-child(3),
.recruit #sec01 .s_cont ul li:nth-child(5) {
  background-image: url(../img/recruit/recruit01_list01.png);
}
.recruit #sec01 .s_cont ul li:nth-child(2),
.recruit #sec01 .s_cont ul li:nth-child(6) {
  background-image: url(../img/recruit/recruit01_list02.png);
}
.recruit #sec01 .s_cont ul li:nth-child(4) {
  background-image: url(../img/recruit/recruit01_list03.png);
}
.recruit #sec01 .s_cont ul li.fs {
  font-size: 16px;
}

.recruit #sec01 .loupe {
  margin-top: 20px;
  position: static;
}
.sec01_ttl {
  color: #ffffff;
  text-align: center;
  margin: 30px 0 40px;
}
.sec01_ttl .en {
  font-size: 80px;
  line-height: 1;
}
.sec01_ttl .ja {
  font-size: 28px;
  text-decoration: underline;
  margin-top: 10px;
}

.recruit #sec01 .cont .box {
  width: 31.66%;
  position: relative;
  overflow: hidden;
}
.recruit #sec01 .cont .ttl {
  width: 100%;
  background-color: #111e5a;
  color: #ffffff;
  padding: 10px 20px;
  position: absolute;
  left: 0;
  bottom: 0;
}
.recruit #sec01 .cont .ttl .message {
  font-size: 16px;
}
.recruit #sec01 .cont .ttl .name {
  font-size: 20px;
}
.recruit #sec01 .cont .ttl .name span {
  font-size: 36px;
}

.recruit #sec01 .cont .box img {
  transition: 0.3s;
}
.recruit #sec01 .cont .box a:hover img {
  transform: scale(1.1);
}

.recruit #sec02 {
  background-image: url(../img/recruit/recruit02_bg.png);
  background-position: center top;
  background-repeat: no-repeat;
  position: relative;
}
.recruit .u_ttl {
  color: #ffffff;
  font-size: 40px;
  text-align: center;
  text-decoration: underline;
  margin-bottom: 80px;
}
.recruit .u_ttl.mt {
  margin-top: 100px;
}
.recruit .u_cont .box {
  width: 30%;
  border-radius: 20px;
  color: #ffffff;
  padding: 40px;
}
.recruit .u_cont .box:nth-child(n+4) {
  margin-top: 40px;
}
.recruit .u_cont.cont01 .box {
  background-color: #29346a;
}
.recruit .u_cont.cont01 .box:nth-child(n+7) {
  width: 48.33%;
}
.recruit .u_cont.cont01 .box .ttl {
  font-size: 24px;
  text-align: center;
  margin-bottom: 30px;
}
.recruit .u_cont.cont01 .box:nth-child(n+7) .ttl {
  text-align: left;
}
.recruit .u_cont.cont01 .box .ttl span {
  display: inline-block;
  text-decoration: underline;
}

.recruit .u_cont.cont01 .box .txt {
  font-size: 20px;
  text-align: center;
  margin-top: 40px;
}
.recruit .u_cont.cont01 .box:nth-child(4) .txt {
  margin-top: 60px;
}
.recruit .u_cont.cont01 .box .txt .num {
  font-size: 100px;
  position: relative;
}
.recruit .u_cont.cont01 .box .txt [data-ruby]::before {
	font-size: 20px;
	top: 0;
}
.recruit .u_cont.cont01 .box .point {
  font-size: 65px;
  position: absolute;
  right: -65px;
  bottom: 35px;
}
.recruit .u_cont.cont01 .box .from {
  width: 49%;
}
.recruit .u_cont.cont01 .box .from:nth-child(n+3) {
  margin-top: 10px;
}
.recruit .u_cont.cont01 .box .from .place,
.recruit .u_cont.cont01 .box .from .ratio {
  font-size: 24px;
}
.recruit .u_cont.cont01 .box .from .ratio span {
  font-size: 45px;
  margin-right: 5px;
}
.recruit .u_cont.cont01 .box dl dt {
  width: calc(100% - 56px);
  max-width: 160px;
  font-size: 20px;
  text-align: left;
  text-indent: -1em;
  padding-left: 1em;
}
.recruit .u_cont.cont01 .box dl dd {
  width: 56px;
  font-size: 20px;
  text-align: right;
}
.recruit .u_cont.cont01 .box .txt ol li {
  font-size: 18px;
  text-align: left;
  text-indent: -1em;
  padding-left: 1rem;
}
.recruit .u_cont.cont01 .box .txt ol li:not(:first-child) {
  margin-top: 5px;
}
.recruit .u_cont.cont01 .box:nth-child(4) .txt {
  line-height: 2.4;
}
.recruit .u_cont.cont01 .box:nth-child(8) .txt ol {
  width: 50%;
}

.recruit .u_cont.cont02 .box {
  border: 1px solid #ffffff;
  margin-right: 5%;
  padding: 50px 50px 80px;
  position: relative;
  z-index: 3;
}
.recruit .u_cont.cont02 .box:nth-child(3n) {
  margin-right: 0;
}

.recruit .u_cont.cont02 .box .txt {
  font-size: 30px;
}
.recruit .u_cont.cont02 .box:nth-child(2) .txt {
  font-size: 24px;
}
.recruit .u_cont.cont02 .box:nth-child(3) .txt,
.recruit .u_cont.cont02 .box:nth-child(4) .txt {
  font-size: 38px;
}
.recruit .u_cont.cont02 .box .mei {
  position: absolute;
  z-index: -1;
}
.recruit .u_cont.cont02 .box:first-child .mei {
  right: -15px;
  bottom: -30px;
}
.recruit .u_cont.cont02 .box:nth-child(2) .mei {
  right: -10px;
  bottom: -20px;
}
.recruit .u_cont.cont02 .box:nth-child(3) .mei {
  right: -15px;
  bottom: -35px;
}
.recruit .u_cont.cont02 .box:nth-child(4) .mei {
  left: -15px;
  bottom: -35px;
}
.recruit .u_cont.cont02 .box:nth-child(5) .mei {
  right: -35px;
  bottom: -25px;
}

.recruit .u_cont.cont01 .box:nth-child(5),
.recruit .u_cont.cont02 .box:nth-child(3),
.recruit .u_cont.cont02 .box:nth-child(4) {
  position: relative;
}
.recruit .u_cont.cont01 .box:nth-child(5) .goat04,
.recruit .u_cont.cont02 .box:nth-child(3) .goat05,
.recruit .u_cont.cont02 .box:nth-child(4) .goat06 {
  position: absolute;
}
.recruit .u_cont.cont01 .box:nth-child(5) .goat04 {
  right: 20px;
  top: -55px;
}
.recruit .u_cont.cont02 .box:nth-child(3) .goat05 {
  left: 10px;
  top: -62px;
}
.recruit .u_cont.cont02 .box:nth-child(4) .goat06 {
  right: 0;
  bottom: -2px;
}

.recruit #sec03 {
  background: linear-gradient(180deg, #111e5a 160px, #27367c 160px);
  position: relative;
}
.recruit #sec03 .loupe {
  top: 98px;
}
.recruit #sec03 .page_bg {
  padding-top: calc(5vw + 72px);
}
.recruit #sec03 .s_cont .box {
  width: 48.3%;
  min-height: 120px;
  background-color: #f2f1f0;
  padding: 30px;
}
.recruit #sec03 .s_cont .box:nth-child(n+3) {
  margin-top: 20px;
}
.recruit #sec03 .s_cont .box .ttl {
  font-size: 26px;
  line-height: 1.2;
}
.recruit #sec03 .s_cont .box .sub {
  font-size: 16px;
}

.recruit #sec03 .s_box {
  width: calc(100% + 50px);
  background-color: #ffffff;
  margin-left: -25px;
  margin-top: 100px;
  padding: 60px 0;
}
.recruit #sec03 .s_box .cont:not(:first-child) {
  margin-top: 40px;
}
.recruit #sec03 .s_box .left {
  width: 47.5%;
}
.recruit #sec03 .s_box .left {
  margin-right: 5%;
}
.recruit #sec03 .s_box .reverse .left {
  margin-left: 5%;
  margin-right: 0;
}
.recruit #sec03 .s_box .right {
  width: 39%;
  padding-top: 60px;
}
.recruit #sec03 .s_box .right .ttl {
  font-size: 30px;
}
.recruit #sec03 .s_box .right .txt {
  font-size: 18px;
  line-height: 1.75;
  margin-top: 20px;
}

.recruit #sec04 {
  background-color: #27367c;
}

.recruit #sec05 {
  background-color: #27367c;

}
.recruit #sec05 .page_bg {
  background-color: #27367c;
} 

.recruit #sec05 .s_cont {
  background-image: url(../img/recruit/recruit05_left.png);
  background-position: left center;
  background-repeat: no-repeat;
}
.recruit #sec05 .cont:not(:first-child) {
  margin-top: 40px;
}
.recruit #sec05 .left {
  width: 30%;
}
.recruit #sec05 .left .box {
  width: 100%;
  height: 200px;
  background-color: #29346a;
  background-image: url(../img/machining/point_bg.png);
  background-position: center top;
  background-repeat: no-repeat;
  border-radius: 20px;
  color: #ffffff;
  text-align: center;
  padding: 30px;
}
.recruit #sec05 .left .box .point {
  font-size: 16px;
}
.recruit #sec05 .left .box .step {
  font-size: 16px;
}
.recruit #sec05 .left .box .ttl {
  font-size: 30px;
  margin-top: 30px;
}

.recruit #sec05 .right {
  width: 66%;
}
.recruit #sec05 .right .box {
  width: 100%;
  min-height: 200px;
  background-color: #29346a;
  border-radius: 20px;
  color: #ffffff;
  padding: 30px;
  position: relative;
}
.recruit #sec05 .right .txt {
  font-size: 18px;
  line-height: 1.6;
}
.recruit #sec05 .right .txt ol li {
  font-size: 18px;
  text-indent: -1em;
  padding-left: 1em;
}
.recruit #sec05 .right dl {
  margin-top: 30px;
}
.recruit #sec05 .right dl:nth-child(odd) {
  width: 69.44%;
}
.recruit #sec05 .right dl:nth-child(even) {
  width: 28.37%;
}
.recruit #sec05 .right dl dt {
  background-color: #414b7b;
  font-size: 16px;
  text-decoration: underline;
  margin-bottom: 15px;
  padding: 10px 20px;
}
.recruit #sec05 .right dl dd {
  font-size: 16px;
}
.recruit #sec05 .right dl dd span {
  font-size: 20px;
}
.recruit #sec05 .right dl dd .tel {
  font-size: 36px;
}

.recruit #sec05 .right dl dd .link_btn .btn {
  width: 500px;
  height: 100px;
  margin-top: 0;
}
.recruit #sec05 .right dl dd .link_btn .btn a {
  background: linear-gradient(90deg, #29346a 0%, #29346a 100%);
  padding-left: 10%;
}

.recruit #sec05 .right .box .goat_mail {
  position: absolute;
  right: 75px;
  bottom: 135px;
  animation: floating-xy 3.5s ease-in-out infinite alternate-reverse;
}

.recruit #sec05 .link_btn.mt {
  margin-top: -200px;
}

.recruit #sec06 {
  background-color: #111e5a;
  background-image: url(../img/recruit/recruit_bg.png);
  background-position: center top;
  background-repeat: no-repeat;
  background-size: cover;
}
.recruit #sec06 section {
  padding-bottom: 40px;
}
.recruit #sec06 .page_bg {
  background-color: transparent;
  background-image: none;
} 

.recruit #sec06 .s_cont {
  padding-top: 200px;
  position: relative;
}
.recruit #sec06 .comment {
  width: 100%;
  max-width: 860px;
  height: 380px;
  background: linear-gradient(90deg, rgba(246, 0, 197, 0.5) 0%, rgba(30, 226, 94, 0.2) 100%);
  border-radius: 50%;
  padding: 30px;
  position: absolute;
  right: -60px;
  top: -120px;
}
.recruit #sec06 .comment .ja {
  color: #ffffff;
  font-size: 36px;
  margin-top: 10px;
}

[data-ruby] {
	position: relative;
}
[data-ruby]::before {
	content: attr(data-ruby);
	font-size: 0.3em;
	position: absolute;
	top: -0.5em;
	left: 0;
	right: 0;
	margin: auto;
}

.recruit #sec06 .cont .box {
  width: 46.66%;
}
.recruit #sec06 .cont .box:nth-child(2) {
  padding-top: 180px;
}
.recruit #sec06 .cont .box:nth-child(3) {
  margin-top: -380px;
}
.recruit #sec06 .cont .box_bg {
  width: 100%;
  background-color: #29346a;
  border-radius: 20px;
  color: #ffffff;
  padding: 30px;
}

.recruit #sec06 .cont .box .features {
  width: 100%;
  background-color: #414b7b;
  padding: 5px 15px 8px;
}
.recruit #sec06 .cont .box .features .line {
  display: inline-flex;
  border-bottom: 1px solid #ffffff;
}
.recruit #sec06 .cont .box .features .ja {
  margin-right: 10px;
}

.recruit #sec06 .cont .box .ttl {
  margin-top: 15px;
  padding: 0 30px;
}
.recruit #sec06 .cont .box .ttl .ja {
  color: #1ee25e;
  font-size: 28px;
}
.recruit #sec06 .cont .box .ttl .vi {
  margin-top: 5px;
}

.recruit #sec06 .cont .box .txt {
  margin-top: 15px;
  padding: 0 30px;
}
.recruit #sec06 .cont .box .txt .ja {
  font-size: 18px;
}
.recruit #sec06 .cont .box .txt .vi {
  margin-top: 10px;
}

.recruit #sec06 .cont .box .img {
  text-align: center;
  margin-top: 25px;
}

.recruit #sec06 .s_img {
  width: calc(100% + 50px);
  margin-top: -40px;
}
.recruit #sec06 .s_img .img {
  width: 25%;
}


.tabs {
  margin-top: 100px;
}
.tab_item {
  display: block;
  width: 80px;
  height: 60px;
  background-color: #414b7b;
  border-radius: 5px;
  color: #ffffff;
  font-size: 20px;
  font-weight: 900;
  text-align: center;
  line-height: 58px;
  margin-left: 8px;
  transition: all 0.5s ease;
  cursor: pointer;
}
.tab_item:hover {
  background-color: #414b7b;
  color: #ffffff;
}

input[name="tab_item"] {
  display: none;
}
.tab_cont {
  display: none;
  width: 100%;
  padding-top: 20px;
  overflow: hidden;
}
#jp:checked ~ #jp_cont,
#vn:checked ~ #vn_cont {
  display: block;
}
.tabs input:checked + .tab_item {
  background-color: #ffffff;
  color: #111e5a;
}

.tab_cont ol {
  padding: 40px;
}
.tab_cont ol li {
  font-size: 16px;
  color: #ffffff;
  text-indent: -1em;
  padding-left: 1em;
}

.tab_cont .box {
  color: #ffffff;
  text-align: center;
  margin-top: 80px;
}
.tab_cont .box .ttl {
  background-color: #29346a;
  font-size: 22px;
  padding: 30px;
}
.tab_cont .box .txt {
  background-color: #414b7b;
  padding: 40px 30px;
}
.tab_cont .box .txt .tel {
  font-size: 20px;
  font-size: 700;
}
.tab_cont .box .txt .tel span {
  font-size: 36px;
}
.tab_cont .box .txt .info {
  font-size: 16px;
  margin-top: 10px;
}

.tab_cont#vn_cont table.section_list th,
.tab_cont#vn_cont table.section_list td {
  padding-top: 15px;
  padding-bottom: 5px;
}

.tab_cont#vn_cont ol li {
  text-indent: unset;
  line-height: 1;
  margin-bottom: 5px;
  padding-left: 0;
}

@media screen and (max-width: 1400px) {
  .recruit .u_cont .box {
    width: 32%;
  }
  .recruit .u_cont.cont02 .box {
    margin-right: 2%;
  }
  .recruit .u_cont.cont01 .box .txt .num {
    font-size: 80px;
  }
}

@media screen and (max-width: 1200px) {
  .recruit_img {
    height: 640px;
  }

  .recruit #sec01 .s_cont .s_bg {
    background-size: contain;
  }
  .recruit #sec01 .s_cont .ttl {
    font-size: 32px;
  }
  .recruit #sec01 .s_cont .txt {
    font-size: 18px;
  }

  .recruit #sec05 .right dl dd .tel {
    font-size: 32px;
  }

  .recruit #sec05 .right dl:nth-child(odd),
  .recruit #sec05 .right dl:nth-child(even) {
    width: 100%;
  }
  .recruit #sec06 .cont .box:nth-child(3) {
    margin-top: -280px;
  }
  .recruit #sec06 .cont .box .ttl,
  .recruit #sec06 .cont .box .txt {
    padding: 0;
  }
}

@media screen and (max-width: 1000px) {
  .recruit_img {
    height: 480px;
  }

  .recruit #sec01 .s_cont .s_bg {
    padding: 120px 40px 60px 75px;
  }
  
  .recruit #sec01 .s_cont .ttl {
    font-size: 24px;
  }
  .recruit #sec01 .s_cont .txt {
    font-size: 16px;
  }
  .recruit #sec01 .s_cont ul li {
      width: 32%;
      height: 60px;
      background-size: 100% auto;
      font-size: 15px;
      padding: 8px 5px;
  }
  .recruit #sec01 .s_cont ul li.fs {
    font-size: 14px;
  }

  .sec01_ttl .en {
    font-size: 36px;
  }
  .sec01_ttl .ja {
    font-size: 20px;
  }
  .recruit #sec01 .cont .ttl .name span {
    font-size: 28px;
  }

  .recruit #sec01 .s_cont .s_bg .goat01,
  .recruit #sec01 .s_cont .s_bg .goat02 {
    display: none;
  }

  .recruit #sec02 section {
    padding-top: 200px;
  }

  .recruit .u_ttl {
    font-size: 32px;
  }

  .recruit .u_cont .box {
    width: 48.5%;
    padding: 30px 20px;
  }
  .recruit .u_cont .box:nth-child(n+3) {
    margin-top: 60px;
  }
  .recruit .u_cont.cont01 .box .from .place,
  .recruit .u_cont.cont01 .box .from .ratio {
    font-size: 21px;
  }
  .recruit .u_cont.cont01 .box .from .ratio span {
    font-size: 24px;
  }
  .recruit .u_cont.cont01 .box:nth-child(8) .txt ol {
    width: 100%;
  }

  .recruit .u_cont.cont02 {
    justify-content: space-between;
  }
  .recruit .u_cont.cont02 .box {
    margin-right: 0;
    padding: 30px 30px 80px;
  }
  .recruit .u_cont.cont02 .box .txt {
    font-size: 21px;
  }
  .recruit .u_cont.cont02 .box:nth-child(2) .txt {
    font-size: 20px;
  }
  .recruit .u_cont.cont02 .box:nth-child(3) .txt,
  .recruit .u_cont.cont02 .box:nth-child(4) .txt {
    font-size: 24px;
  }
  .recruit .u_cont.cont02 .box:nth-child(4) .mei {
    left: 5px;
  }
  .recruit .u_cont.cont02 .box .mei img {
    width: 120px;
    height: auto;
  }

  .recruit #sec03 section {
    padding-left: 0;
    padding-right: 0;
  }

  .recruit #sec03 .loupe {
    top: 47px;
  }
  .recruit #sec03 .s_cont .box .ttl {
    font-size: 20px;
  }

  .recruit #sec03 .s_box .right {
    padding-top: 0;
  }
  .recruit #sec03 .s_box .right .ttl {
    font-size: 24px;
  }

  .recruit #sec05 .left .box .ttl {
    font-size: 21px;
  }
  .recruit #sec05 .right dl dd .link_btn .btn {
    width: 100%;
    max-width: 500px;
  }

  .recruit #sec05 .link_btn.mt {
    margin-top: -80px;
  }

  .recruit #sec06 .s_cont {
    padding-top: 0;
  }
  .recruit #sec06 .comment {
    height: auto;
    border-radius: 0;
    position: static;
  }
  .recruit #sec06 .comment .ja {
    font-size: 21px;
  }

  .recruit #sec06 .cont .box {
    width: 100%;
    margin-top: 40px;
  }
  .recruit #sec06 .cont .box:nth-child(2) {
    margin-top: 40px;
    padding-top: 0;
  }
  .recruit #sec06 .cont .box:nth-child(3) {
    margin-top: 40px;
  }

  .recruit #sec06 .s_img {
    width: 100%;
    margin-top: 40px;
  }

  .tab_cont ol {
    padding-left: 0;
    padding-right: 0;
  }
}

@media screen and (max-width: 767px) {
  .recruit_img {
    height: 320px;
    background-repeat: repeat-x;
    background-size: auto 100%;
    animation: animebg 45s linear infinite;
  }

  .recruit #sec01 .s_cont .s_bg {
    height: auto;
    background-color: #e6e4e2;
    background-image: url(../img/common/page_img_bg.png);
    background-size: auto 100%;
    padding: 30px 15px;
  }

  .recruit #sec01 .s_cont ul li {
    width: 49%;
    font-size: 13px;
  }
  .recruit #sec01 .s_cont ul li:nth-child(n+3) {
    margin-top: 5px;
  }
  .recruit #sec01 .s_cont ul li.fs {
    font-size: 12px;
  }
  .recruit #sec01 .s_cont ul li.fs br {
    display: none;
  }

  .recruit #sec01 .loupe {
    margin-top: 40px;
  }

  .sec01_ttl .en {
    font-size: 28px;
  }

  .recruit #sec01 .cont {
    justify-content: center;
  }
  .recruit #sec01 .cont .box {
    width: 100%;
    max-width: 380px;
  }
  .recruit #sec01 .cont .box:not(:first-child) {
    margin-top: 20px;
  }

  .recruit .u_ttl {
    font-size: 24px;
  }

  .recruit .u_cont {
    justify-content: center;
  }
  .recruit .u_cont .box,
  .recruit .u_cont.cont01 .box:nth-child(n+7) {
    width: 100%;
    max-width: 360px;
  }
  .recruit .u_cont.cont01 .box:nth-child(n+7) .ttl {
    text-align: center;
  }
  .recruit .u_cont.cont01 .box:nth-child(4) .txt {
    line-height: 1.75;
    margin-top: 0;
  }

  .recruit .u_cont .box:nth-child(n+2) {
    margin-top: 20px;
  }
  .recruit .u_cont .box:nth-child(5) {
    margin-top: 60px;
  }
  
  .recruit .u_cont.cont02 {
    justify-content: center;
  }
  .recruit .u_cont.cont02 .box:nth-child(3) {
    margin-top: 60px;
  }
  .recruit .u_cont.cont02 .box:nth-child(4) {
    padding-bottom: 100px;
  }
  .recruit .u_cont.cont02 .box:nth-child(5) .mei {
      right: -10px;
  }

  .recruit .u_ttl {
    margin-bottom: 40px;
  }
  .recruit .u_ttl.mt {
    margin-top: 60px;
  }

  .recruit #sec03 .s_ttl {
    margin-top: 85px;
  }

  .recruit #sec03 .s_cont .box {
    width: 100%;
    min-height: 100px;
    background-color: #f2f1f0;
    padding: 20px 15px;
  }
  .recruit #sec03 .s_cont .box:nth-child(n+2) {
    margin-top: 10px;
  }

  .recruit #sec03 .s_box {
    width: calc(100% + 30px);
    margin-left: -15px;
    margin-top: 50px;
    padding: 30px 0;
  }

  .recruit #sec03 .s_box .left {
    width: 100%;
  }
  .recruit #sec03 .s_box .left {
    margin-right: 0;
  }
  .recruit #sec03 .s_box .reverse .left {
    margin-left: 0;
  }
  .recruit #sec03 .s_box .right {
    width: 100%;
    margin-top: 30px;
    padding: 0 15px;
  }
  .recruit #sec03 .s_box .right .ttl {
    font-size: 20px;
  }
  .recruit #sec03 .s_box .right .txt {
    font-size: 16px;
  }

  .recruit #sec03 .s_box .reverse {
    flex-flow: wrap;
  }

  .recruit #sec05 .page_bg {
    padding: 0;
  }

  .recruit #sec05 .left {
    width: 100%;
  }
  .recruit #sec05 .left .box {
    width: 100%;
    height: 120px;
    padding: 20px;
  }
  .recruit #sec05 .left .box .ttl {
    font-size: 20px;
    margin-top: 10px;
  }

  .recruit #sec05 .right {
    width: 100%;
    margin-top: 20px;
  }
  .recruit #sec05 .right .box {
    min-height: 140px;
    padding: 20px;
  }

  .recruit #sec05 .right .txt {
    font-size: 16px;
  }
  .recruit #sec05 .right .txt ol li {
    font-size: 16px;
  }

  .recruit #sec05 .right dl dd span {
    font-size: 18px;
  }
  .recruit #sec05 .right dl dd .tel {
    font-size: 28px;
  }

  .recruit #sec06 .page_bg {
    padding-left: 0;
    padding-right: 0;
  }
  .recruit #sec06 .cont .box_bg {
    padding: 30px 15px;
  }

  .recruit #sec06 .comment .ja {
    font-size: 18px;
  }

  .recruit #sec06 .cont .box .ttl .ja {
    font-size: 21px;
  }
  .recruit #sec06 .cont .box .txt .ja {
    font-size: 16px;
  }

  .recruit #sec06 .s_img .img {
    width: 50%;
  }

  .tab_cont .box .ttl {
    font-size: 16px;
    padding: 20px 15px;
  }
  .tab_cont .box .txt .tel span {
    font-size: 24px;
  }
  .tab_cont .box {
    margin-top: 20px;
  }
}


/* message */
.m_img {
  position: relative;
}
.m_img .img img {
  border-radius: 20px;
}
.m_img .m_img_ttl {
  font-family: "Roboto";
  color: #ffffff;
  font-size: 60px;
  line-height: 1;
  position: absolute;
  left: 20px;
  bottom: 20px;
  z-index: 3;
}

.m_cont {
  background-color: #e6e4e2;
  background-image: url(../img/common/ruled_bg.png);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  border-radius: 20px;
  margin-top: 30px;
  padding: 30px;
}
.m_ttl {
  display: inline-block;
  font-size: 18px;
  background-color: #1ee25e;
  padding: 10px 20px;
}
.m_ttl.mb {
  margin-bottom: 30px;
}
.m_cont .m_ttl {
  width: 100%;
  margin-bottom: 30px;
}
.m_cont .left {
  width: 25.974%;
}
.m_cont .right {
  width: 70.78%;
}

.m_box li {
  width: 48.75%;
  background-color: #111e5a;
  border-radius: 20px;
  margin-top: 30px;
  padding: 35px;
}
.m_box li .m_ttl {
  font-size: 18px;
  margin-bottom: 15px;
  padding: 5px 15px;
}
.m_box li .m_txt {
  color: #ffffff;
  font-size: 20px;
  line-height: 1.6;
}
.m_box li .m_txt.ls030 {
  letter-spacing: -0.3px;
}

.m_box li:last-child {
  background-color: #e6e4e2;
}
.m_box li:last-child .m_ttl {
  background-color: #111e5a;
  color: #1ee25e;
}
.m_box li .fukidashi .txt {
  width: 49%;
  background-color: #ffffff;
  font-size: 25px;
  text-decoration: underline;
  padding: 25px;
  margin-bottom: 55px;
  position: relative;
}
.m_box li .fukidashi .txt::before {
  content: '';
  width: 50px;
  height: 40px;
  background-image: url(../img/message/fukidashi_sign.svg);
  background-position: center;
  background-repeat: no-repeat;
  background-size: 50px auto;
  position: absolute;
  left: 30px;
  top: calc(100% - 1px);
}

.m_box li .fukidashi .txt .m {
  font-size: 29px;
}
.m_box li .fukidashi .txt .l {
  font-size: 40px;
}

.message #sec02 {
  background-color: #f2f1f0;
}

.message #sec04 {
  background-color: #111e5a;
  background-image: url(../img/common/ruled_bg.png);
  background-position: center;
  background-repeat: no-repeat;
}
.message #sec04 section {
  padding-left: 5rem;
  padding-right: 5rem;
}

@media screen and (max-width: 1400px) {
  .m_box li .m_txt.ls030 {
    letter-spacing: 0;
  }

  .message #sec04 section {
    padding-left: calc(5rem + 25px);
    padding-right: calc(5rem + 25px);
  }
}

@media screen and (max-width: 1000px) {
  .m_box li {
    width: 100%;
  }
  .m_box li .fukidashi .txt {
    width: 100%;
    font-size: 21px;
    padding: 20px;
    margin-bottom: 30px;
  }
  .m_box li .fukidashi .txt::before {
    height: 30px;
    background-size: auto 32px;
  }

  .m_box li .fukidashi .txt .m {
    font-size: 24px;
  }
  .m_box li .fukidashi .txt .l {
    font-size: 32px;
  }
}

@media screen and (max-width: 767px) {
  .m_cont {
    padding-left: 15px;
    padding-right: 15px;
  }
  .m_cont .left {
    width: 100%;
  }
  .m_cont .right {
    width: 100%;
    margin-top: 20px;
  }

  .m_img .m_img_ttl {
    font-size: 24px;
  }

  .m_box li {
    padding: 20px 15px;
  }
  .m_box li .m_txt {
    font-size: 16px;
  }

  .message #sec04 section {
    padding-left: 15px;
    padding-right: 15px;
  }
}


/* company
************************************************** */
.company #sec01 .section_cont {
  background-color: #f2f1f0;
  border-radius: 20px;
  padding: 60px 40px 80px;
}
.company #sec01 .left {
  width: 51.66%;
}
.company #sec01 .right {
  width: 40%;
}
.company #sec01 .right .txt {
  font-size: 15px;
  line-height: 1.75;
}
.company #sec01 .right .sign {
  font-size: 18px;
  margin-top: 30px;
}
.company #sec01 .right .sign span {
  font-size: 26px;
}

.company #sec04 .cont {
  background-color: #f2f1f0;
  border-radius: 20px;
  padding: 60px 40px;
}
.company #sec04 .cont:not(:first-child) {
  margin-top: 60px;
}
.company #sec04 .info {
  margin-bottom: 40px;
}
.company #sec04 .info .office {
  width: 100%;
  border-bottom: 1px solid #cfd2de;
  font-size: 28px;
  margin-bottom: 10px;
  padding: 0 50px 10px;
}
.company #sec04 .info .addr {
  font-size: 20px;
  padding: 0 50px;
}
.company #sec04 .left,
.company #sec04 .right {
  width: 46.66%;
}
.company #sec04 .map {
  height: 100%;
}

@media screen and (max-width: 1000px) {
  .company #sec04 .info .office,
  .company #sec04 .info .addr {
    padding-left: 0;
    padding-right: 0;
  }
}

@media screen and (max-width: 767px) {
  .company #sec01 .section_cont {
    width: calc(100% + 30px);
    border-radius: 0;
    margin-left: -15px;
    padding: 40px 15px;
  }
  .company #sec01 .left {
    width: 100%;
  }
  .company #sec01 .right {
    width: 100%;
    margin-top: 20px;
  }
  .company #sec01 .right .sign {
    font-size: 16px;
    text-align: right;
    margin-top: 20px;
  }
  .company #sec01 .right .sign span {
    font-size: 20px;
  }

  .company #sec04 .cont {
    width: calc(100% + 30px);
    border-radius: 0;
    margin-left: -15px;
    padding: 30px 15px;
  }
  .company #sec04 .cont:not(:first-child) {
    margin-top: 30px;
  }
  .company #sec04 .info {
    margin-bottom: 20px;
  }
  .company #sec04 .info .office {
    font-size: 20px;
  }
  .company #sec04 .info .addr {
    font-size: 16px;
  }
  .company #sec04 .left,
  .company #sec04 .right {
    width: 100%;
  }
  .company #sec04 .map {
    height: 200px;
    margin-top: 10px;
  }
}


/* news
************************************************** */
.news section {
  padding-left: 0;
  padding-right: 0;
}

.news #sec01 .left {
  width: 28.33%;
}
.news #sec01 .left .ttl {
  width: 100%;
  height: 40px;
  background-color: #f2f1f0;
  color: #888eac;
  font-size: 15px;
  padding: 9px 30px 8px;
}
.news #sec01 .left ul li a {
  display: block;
  border-bottom: 1px solid #cfd2de;
  font-size: 15px;
  padding: 15px 30px;
}
.news #sec01 .left ul:last-child ul.children li:last-child a {
  border-bottom: none;
}

.news #sec01 .left li.current-cat .children a:hover,
.news #sec01 .left li a:hover,
.news #sec01 .left .children .current-cat a {
  background-color: #1ee25e;
}
.news #sec01 .left li.current-cat a {
  background-color: #1ee25e;
}
.news #sec01 .left li.current-cat .children a {
  background-color: transparent;
}

.news #sec01 .right {
  width: 66.66%;
}
.category #sec01 .right .post {
  min-height: 200px;
  font-size: 16px;
  border-bottom: 1px solid #cfd2de;
  position: relative;
}
.single #sec01 .right .post {
  font-size: 16px;
}
.category #sec01 .right .post:first-child {
  border-top: 1px solid #cfd2de;
}
.category #sec01 .right .post a {
  display: block;
  width: 100%;
  min-height: 198px;
  padding: 20px 100px 20px 20px;
}
.category #sec01 .right .post .date,
.single #sec01 .right .post .date {
  margin-right: 20px;
  padding-left: 15px;
  position: relative;
}
.single #sec01 .right .post .ttl {
  margin-bottom: 30px;
}
.single #sec01 .right .post .date {
  margin-bottom: 20px;
}
.category #sec01 .right .post .date::before,
.single #sec01 .right .post .date::before {
  content: '';
  width: 8px;
  height: 8px;
  background-color: #1ee25e;
  border-radius: 4px;
  position: absolute;
  left: 0;
  top: 8px;
}
.category #sec01 .right .post .ttl,
.single #sec01 .right .post .ttl {
  width: 100%;
  font-size: 26px;
}

.single #sec01 .right .post {
  border-top: 1px solid #cfd2de;
  border-bottom: 1px solid #cfd2de;
  padding: 20px 20px 120px;
}

.post_link {
  width: 100%;
  max-width: 360px;
  height: 34px;
  margin: 80px auto 0;
  position: relative;
}
.post_link .previus,
.post_link .center,
.post_link .next {
  position: absolute;
  line-height: 32px;
}
.post_link .previus {
  left: 0;
  top: 0;
}
.post_link .center {
  width: 60px;
  font-size: 24px;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  text-align: center;
  margin: auto;
}
.post_link .next {
  right: 0;
  top: 0;
}

.post_link .previus a,
.post_link .next a {
  display: block;
  width: 34px;
  height: 34px;
  background-color: #111e5a;
  border-radius: 3px;
  color: #888eac;
  text-align: center;
}

.wp-pagenavi {
  text-align: center;
  margin-top: 60px;
}
.wp-pagenavi a,
.wp-pagenavi span {
  border: none !important;
  color: #888eac !important;
  font-size: 24px;
  margin: 2px 10px !important;
  padding: 0 3px 6px !important;
}
.wp-pagenavi span.current {
  color: #111e5a !important;
}
.previouspostslink,
.nextpostslink {
  display: inline-block;
  width: 34px;
  height: 34px;
  background-color: #111e5a;
  color: #888eac;
  border-radius: 3px;
  display: inline-flex;
  justify-content: center;
  align-items: center;
}

@media screen and (max-width: 1400px) {
  .category #sec01 .right .post a {
    padding-right: 90px;
  }
}

@media screen and (max-width: 1000px) {
  .category #sec01 .right .post .ttl,
  .single #sec01 .right .post .ttl {
    font-size: 21px;
  }

  .post_link .center {
    font-size: 20px;
  }
}

@media screen and (max-width: 767px) {
  .news #sec01 .left {
      width: 100%;
    }
  .news #sec01 .left .ttl {
    width: 100%;
    height: 40px;
    background-color: #f2f1f0;
    color: #888eac;
    font-size: 15px;
    padding: 9px 30px 8px;
  }
  .news #sec01 .left ul li a {
    display: block;
    border-bottom: 1px solid #cfd2de;
    font-size: 15px;
    padding: 15px;
  }

  .news #sec01 .right {
    width: 100%;
    margin-top: 30px;
  }
  .category #sec01 .right .post {
    min-height: 140px;
  }
  .category #sec01 .right .post a {
    min-height: 138px;
    padding: 20px 80px 20px 5px;
  }
    
  .news #sec01 .left ul li:first-child {
    width: 100%;
  }
  .news #sec01 .left ul li {
    margin-top: 10px;
  }
  .news #sec01 .left ul li a {
    background-color: #111e5a;
    border-radius: 5px;
    border-bottom: none;
    color: #ffffff;
    text-align: center;
  }
  .news #sec01 .left ul.children {
    display: flex;
    justify-content: space-between;
  }
  .news #sec01 .left ul.children li:first-child,
  .news #sec01 .left ul.children li {
    width: 49%;
  }

  .category #sec01 .right .post .ttl,
  .single #sec01 .right .post .ttl {
    font-size: 18px;
  }

  .single #sec01 .right .post {
    padding: 20px 5px 60px;
  }
}


/* contact
************************************************** */
.contact section {
  padding-left: 0;
  padding-right: 0;
}

.contact .section_ttl .s_ttl {
  width: 280px;
}
.contact .section_ttl .s_txt {
  width: calc(100% - 280px);
  max-width: 660px;
  font-size: 16px;
  line-height: 1.75;
} 

table.mailform {
  border-top: 1px solid #cfd2de;
  margin-top: 60px;
}
table.mailform th,
table.mailform td {
  border-bottom: 1px solid #cfd2de;
  font-size: 17px;
  font-weight: 400;

}
table.mailform th {
  width: 300px;
  background-color: #f2f1f0;
  font-size: 18px;
  padding: 20px 40px;
}
table.mailform td {
  font-size: 16px;
  padding: 10px 0 10px 90px;
  position: relative;
}
table.mailform td .radio:nth-child(2) {
  margin-top: 10px;
}
table.mailform td .radio:last-child {
  margin-bottom: 15px;
}
table.mailform td label {
  font-size: 17px;
}

.contact .input_text,
.contact .textarea {
  width: 100%;
  border: 1px solid #cfd2de;
  padding: 10px;
}
.contact .input_text {
  height: 48px;
}
.contact .textarea {
  height: 230px;
}

.contact .input_text.w50 {
  width: calc(50% - 5px);
}
.contact table tr:first-child .wpcf7-form-control-wrap:last-child {
  margin-left: 10px;
}

::placeholder {
  color: #cfd2de;
  font-size: 15px;
}

.required {
  width: 90px;
  height: 68px;
  color: #f600c5;
  font-size: 12px;
  font-weight: 500;
  text-align: center;
  line-height: 68px;
  position: absolute;
  left: 0;
  top: 0;
}

.form_txt {
  font-size: 18px;
  text-align: center;
  margin-top: 60px;
}
.form_txt a {
  color: #414b7b;
}

.form_check {
  text-align: center;
  margin-top: 30px;
}
.form_check label {
  font-size: 20px;
  cursor: pointer;
}
.form_check .input_check {
  margin-bottom: 4px;
  -ms-transform: scale(1.5, 1.5);
  -webkit-transform: scale(1.5, 1.5);
  transform: scale(1.5, 1.5);
}

.form_btn {
  margin-top: 60px;
}
.form_btn .btn {
  width: 600px;
  height: 200px;
  margin: 15px;
  position: relative;
}
.form_btn .btn p {
  width: 100%;
  height: 100%;
}
.form_btn .btn input {
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, #414b7b 16.99%, #29346a 17%);
  border: none;
  color: #ffffff;
  font-size: 22px;
  text-align: left;
  padding-left: 20%;
  cursor: pointer;
}

form p {
  font-size: 18px;
}
form .required p {
  font-size: 12px;
}
.wpcf7-list-item {
  width: 100%;
}


.wpcf7 form .wpcf7-response-output {
  font-size: 16px;
}

.wpcf7-spinner {
  display: none !important;
}

@media screen and (max-width: 1000px) {
  table.mailform th {
    width: 230px;
  }
}

@media screen and (max-width: 767px) {
  .contact .section_ttl .s_txt {
    width: 100%;
    max-width: 100%;

  } 

  table.mailform {
    margin-top: 40px;
  }
  table.mailform tr {
    display: flex;
    flex-wrap: wrap;
  }
  table.mailform th,
  table.mailform td {
    width: 100%;
    font-size: 16px;
    padding: 5px 10px;
  }
  table.mailform td {
    padding-left: 0;
    padding-right: 0;
  }

  table.mailform td label {
    font-size: 16px;
  }

  .required {
    width: 35px;
    height: 35px;
    line-height: 30px;
    left: auto;
    top: -35px;
    right: 5px;
  }

  .form_txt {
    font-size: 16px;
    margin-top: 40px;
  }

  .form_check label {
    font-size: 18px;
  }

  .form_btn {
    margin-top: 40px;
  }
  .form_btn .btn {
    width: 100%;
    max-width: 360px;
    height: 100px;
  }
  .form_btn .btn input {
    background: linear-gradient(90deg, #414b7b 30px, #29346a 30px);
    font-size: 18px;
    text-align: left;
    padding-left: 50px;
  }
}


.contact_complete .s_txt {
  font-size: 18px;
  line-height: 1.75;
}

@media screen and (max-width: 767px) {
  .contact_complete .s_txt {
    font-size: 16px;
  }
}


/* privacy
************************************************** */
.privacy section {
  padding-left: 0;
  padding-right: 0;
}

.privacy .page_bg {
  font-size: 18px;
  line-height: 1.75;
}

.privacy dl {
  margin-top: 30px;
}
.privacy dl dd ol li {
  font-size: 18px;
  text-indent: -1em;
  padding-left: 1em;
}
.privacy dl dd a {
  color: #f600c5;
}

@media screen and (max-width: 767px) {
  .privacy .page_bg {
    font-size: 16px;
  }
  .privacy dl dd ol li {
    font-size: 16px;
  }
}










