@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;600;700;900&family=Noto+Serif+JP&display=swap");
.serif { font-family: "Noto Serif JP", serif; }

* { margin: 0; padding: 0; box-sizing: border-box; }

body { font-size: 16px; line-height: 175%; font-family: "Noto Sans JP", sans-serif; color: #1A1A1A; font-weight: 400; }

body, html { height: 100%; }

*::after, *::before { box-sizing: border-box; }

img { max-width: 100%; height: auto; vertical-align: top; overflow-clip-margin: inherit; }

a, button { color: inherit; text-decoration: none; -webkit-transition: ease all 0.5s; -moz-transition: ease all 0.5s; -ms-transition: ease all 0.5s; -o-transition: ease all 0.5s; transition: ease all 0.5s; }

input, textarea, button, select { outline: none; resize: none; }

a:hover, a:focus, a:active, button:hover, button:focus, button:active { -webkit-transition: ease all 0.35s; -moz-transition: ease all 0.35s; -ms-transition: ease all 0.35s; -o-transition: ease all 0.35s; transition: ease all 0.35s; }

.hv-o { -webkit-transition: ease all 0.35s; -moz-transition: ease all 0.35s; -ms-transition: ease all 0.35s; -o-transition: ease all 0.35s; transition: ease all 0.35s; }

.hv-o:hover { opacity: 0.8; }

a[href^="tel:"] { cursor: default; pointer-events: none; }
@media (max-width: 1024px) { a[href^="tel:"] { cursor: pointer; pointer-events: all; } }

.anchor_fixtop { display: block; position: relative; top: -200px; width: 100%; visibility: hidden; }
@media (max-width: 1000px) { .anchor_fixtop { top: -20vw; } }

#page_top { position: fixed; bottom: 40px; right: 40px; width: 70px; height: 70px; opacity: 0; background: #0059B6 url(../img/arrow-up.png) no-repeat center; background-size: 35px; border-radius: 100%; cursor: pointer; outline: none; border: 0; z-index: 50; }
#page_top.show { opacity: 1; }
#page_top.fixed { position: fixed; top: auto; bottom: 30px; }
@media (max-width: 1000px) { #page_top { right: 15px; } }
@media (max-width: 767px) { #page_top { bottom: 15px; width: 30px; height: 30px; background-size: 15px; } }

[class*="dflex"] { display: flex; flex-wrap: wrap; }

[class*="aic"] { align-items: center; }

[class*="aie"] { align-items: flex-end; }

[class*="ais"] { align-items: flex-start; }

[class*="jcc"] { justify-content: center; }

[class*="jcsb"] { justify-content: space-between; }

[class*="jcfe"] { justify-content: flex-end; }

[class*="grid"] { padding-left: 15px; padding-right: 15px; margin-left: auto; margin-right: auto; width: 100%; }

.grid-1410 { max-width: 1440px; }
.grid-1110 { max-width: 1140px; }
.grid-1085 { max-width: 1115px; }

iframe { vertical-align: top; }

ul { list-style: none; }

.txt__center { text-align: center; }

.vs-50 { width: 50%; }

@media (min-width: 1100px) { .wow_custom { opacity: 0; transform: translate3d(0, 100px, 0); }
  .wow_custom.show { animation: fade_in_0 500ms 500ms ease-in-out; animation-fill-mode: forwards; }
  .wow_custom.show.wow_vz_02 { animation: fade_in_0 500ms 500ms linear; animation-fill-mode: forwards; }
  .wow_custom.show.wow_vz_03 { animation: fade_in_0 500ms 1000ms linear; animation-fill-mode: forwards; }
  .wow_custom.show.wow_vz_04 { animation: fade_in_0 500ms 1500ms linear; animation-fill-mode: forwards; }
  .wow_custom.show.wow_vz_05 { animation: fade_in_0 500ms 2000ms linear; animation-fill-mode: forwards; }
  @keyframes fade_in_0 { 0% { opacity: 0; transform: translate3d(0, 100px, 0); }
    100% { opacity: 1; transform: translateZ(0); } }
  @keyframes fade_in_1 { 0% { opacity: 0; }
    100% { opacity: 1; } }
  @keyframes fade_in { 0% { opacity: 0; position: relative; top: 100px; }
    100% { position: relative; top: 0px; opacity: 1; } }
  @keyframes fade_left { 0% { opacity: 0; transform: translate3d(-100px, 0, 0); }
    100% { opacity: 1; transform: translateZ(0); } }
  @keyframes fade_right { 0% { opacity: 0; transform: translate3d(100px, 0, 0); }
    100% { opacity: 1; transform: translateZ(0); } }
  [data-animation="fade-left"].show { animation: fade_left 500ms 1s ease-in-out; animation-fill-mode: forwards; }
  [data-animation="fade-right"].show { animation: fade_right 500ms 1s ease-in-out; animation-fill-mode: forwards; }
  .wow_custom_no { opacity: 0; position: relative; z-index: 1; } }
.header_top { height: 90px; }
@media (min-width: 1001px) { .header_top.vs-02 { height: auto; } }

@media (min-width: 1201px) { .is_home .header_top { height: auto; } }
.wrap_header { width: 100%; height: 90px; position: fixed; left: 0; top: 0; z-index: 5; background-color: #fff; transition: ease all 0.35s; }
@media (min-width: 1201px) { .wrap_header:first-child { padding-left: 40px; } }

.show__sp { display: none !important; }

@media (max-width: 1200px) and (min-width: 768px) { .wrap_header:first-child { padding-left: 3.3333vw; }
  .header_top { height: 90px; } }
@media (max-width: 1000px) { .header_top, .wrap_header { height: 9vw; } }
@media (max-width: 767px) { .show__pc { display: none !important; }
  .show__sp { display: block !important; }
  .header_top { height: 9.733vh; }
  .wrap_header-item:nth-child(1) { height: 95px; background-color: #fff; } }
@media (max-width: 767px) and (max-width: 480px) { .wrap_header-item:nth-child(1) { height: calc(13.5125vw + 30px); } }

@media (max-width: 767px) { .wrap_header { padding: 0px 0; height: 9.733vh; }
  .wrap_header-item { width: 100%; padding-left: 15px; padding-right: 15px; }
  .wrap_header-item:nth-child(1) { display: flex; align-items: center; justify-content: space-between; }
  .wrap_header-item:nth-child(2) { display: none; background-color: #fff; }
  .wrap_header .logo { font-size: 0; line-height: 100%; }
  .wrap_header .logo a { font-size: 0; line-height: 100%; display: inline-block; } }
.page_banner { width: 100%; position: relative; padding-bottom: 3.9063vw; }
.page_banner::before { content: ""; position: absolute; left: 0; bottom: 0; width: 100%; max-width: 85.5729vw; height: 16.7188vw; background: #4b8c38; background: linear-gradient(90deg, #4b8c38 0%, #94cf3b 100%); }
.page_banner-item { position: relative; }
.page_banner-item > img { overflow: hidden; border-radius: 60px; }
.page_banner-title { width: 100%; max-width: 83.8542vw; padding-left: 1.5625vw; padding-right: 1.5625vw; position: absolute; left: 50%; top: calc(50% + 7px); transform: translate(-50%, -50%); }
@media (max-width: 1800px) { .page_banner-title img { width: auto; height: 5.4167vw; } }

.page_banner_recruit { padding-bottom: 0; }
.page_banner_recruit::before { content: none; }
.page_banner_recruit .page_banner-title { text-align: center; top: 231px; }

.page_banner_business { padding-bottom: 331px; }
.page_banner_business::before { height: 577px; max-width: 1636px; }

.page_banner_company { padding-bottom: 403px; }
.page_banner_company::before { height: 649px; max-width: 85.25vw; }

@media (max-width: 1100px) and (min-width: 768px) { .page_banner-item > img { border-radius: 30px; height: 275px; object-fit: cover; }
  .page_banner::before { height: 20vw; } }
@media (max-width: 767px) { .page_banner-title { padding-left: 0; padding-right: 0; }
  .page_banner-item > img { border-radius: 30px; height: 300px; object-fit: cover; } }
@media (max-width: 767px) and (max-width: 370px) { .page_banner-item > img { height: 81.0811vw; } }

@media (max-width: 767px) { .page_banner-title img { height: 45px; } }
@media (max-width: 767px) and (max-width: 370px) { .page_banner-title img { height: 12.1622vw; } }

@media (max-width: 767px) { .page_banner { padding-bottom: 30px; }
  .page_banner::before { height: 200px; } }
@media (max-width: 767px) and (max-width: 370px) { .page_banner { padding-bottom: 8.1081vw; }
  .page_banner::before { height: 54.0541vw; } }

.menu > li { position: relative; margin-left: 55px; padding: 3px 0; }
.menu > li:first-child { margin-left: 0; }
.menu > li:last-child { margin-left: 65px; padding: 0; }
.menu > li a { color: #1A1A1A; font-size: 18px; font-weight: 600; line-height: 155%; letter-spacing: 0; position: relative; font-family: "Noto Serif JP", serif; }
.menu > li a.active, .menu > li a:hover { color: #0059B6; }
.menu > li a.menu_button { background: #1A1A1A; display: flex; align-items: center; justify-content: center; color: #ffffff; width: 233px; height: 90px; position: relative; letter-spacing: 3px; }
.menu > li:last-child::before { content: none; }
.menu > li.active { display: block; }
.menu > li.active::before { opacity: 1; width: 100%; background: #1A1A1A; }

.menu > li:nth-child(4) { display: none; }
@media (max-width: 1200px) and (min-width: 768px) { .menu > li { margin-left: 4.5833vw; }
  .menu > li:last-child { margin-left: 5.4167vw; }
  .menu > li a.menu_button { width: 19.4167vw; } }
@media (max-width: 1200px) and (min-width: 768px) and (max-width: 1000px) { .menu > li { margin-left: 3vw; }
  .menu > li:last-child { margin-left: 3vw; }
  .menu > li a { font-size: 16px; }
  .menu > li a.menu_button { height: 9vw; } }
@media (max-width: 767px) { .header_top { background-color: #fff; }
  #menu_hum { display: block; position: relative; top: 0px; }
  #menu_hum > div { width: 40px; height: 30px; position: relative; display: flex; }
  #menu_hum span { background: #0059B6; -webkit-transform: translateY(-50%) rotate(0deg); transform: translateY(-50%) rotate(0deg); position: absolute; width: 100%; height: 2px; -webkit-transition: top 0.1s ease 0.3s, background 0.1s ease 0.3s, -webkit-transform 0.3s ease; transition: top 0.1s ease 0.3s, background 0.1s ease 0.3s, -webkit-transform 0.3s ease; transition: top 0.1s ease 0.3s, transform 0.3s ease, background 0.1s ease 0.3s; transition: top 0.1s ease 0.3s, transform 0.3s ease, background 0.1s ease 0.3s, -webkit-transform 0.3s ease; }
  #menu_hum span:nth-child(1) { top: 1px; }
  #menu_hum span:nth-child(2) { top: calc(50% - 0px); }
  #menu_hum span:nth-child(3) { bottom: -2px; }
  #menu_hum .change span { -webkit-transition: top 0.1s ease, background 0.1s ease, -webkit-transform 0.3s ease 0.1s; transition: top 0.1s ease, background 0.1s ease, -webkit-transform 0.3s ease 0.1s; transition: top 0.1s ease, transform 0.3s ease 0.1s, background 0.1s ease; transition: top 0.1s ease, transform 0.3s ease 0.1s, background 0.1s ease, -webkit-transform 0.3s ease 0.1s; }
  #menu_hum .change span:nth-child(1) { top: 50%; -webkit-transform: translateY(-50%) rotate(315deg); transform: translateY(-50%) rotate(315deg); }
  #menu_hum .change span:nth-child(2) { -webkit-transform: translateY(-50%) rotate(405deg); transform: translateY(-50%) rotate(405deg); display: none; }
  #menu_hum .change span:nth-child(3) { top: 50%; -webkit-transform: translateY(-50%) rotate(405deg); transform: translateY(-50%) rotate(405deg); }
  .chane-x { display: inline-block; position: relative; cursor: pointer; }
  .menu { width: 100%; margin-top: 0px; padding-bottom: 15px; }
  .menu > li { width: 100%; margin-left: 0; border-top: 1px dashed #0059B6; }
  .menu > li > a { display: block; padding-top: 12px; padding-bottom: 12px; font-size: 16px; }
  .menu > li > a.menu_button { height: 60px; width: 100%; padding-left: 0; }
  .menu > li > a.menu_button::before { content: none; }
  .menu > li > a.menu_button span { position: relative; display: inline-block; padding-left: 47px; }
  .menu > li > a.menu_button span::before { content: ""; position: absolute; width: 30px; height: 23px; z-index: 0; top: 50%; left: 0; transform: translateY(-50%); background: url(../img/icon_email.png) no-repeat center; background-size: contain; }
  .menu > li:last-child { margin-left: 0; padding-top: 15px; }
  .menu > li .sub_item { position: absolute; width: 55px; height: 55px; right: 0; top: 0; z-index: 10; }
  .menu > li .sub_item::before { content: ""; position: absolute; width: 0; height: 0; z-index: 0; -webkit-transition: ease all 0.35s; -moz-transition: ease all 0.35s; -ms-transition: ease all 0.35s; -o-transition: ease all 0.35s; transition: ease all 0.35s; top: 50%; left: 50%; transform: translate(-50%, -50%); border-left: 10px solid transparent; border-right: 10px solid transparent; border-top: 10px solid #0059B6; }
  .menu > li ul { position: relative; width: 100%; padding: 0; }
  .menu > li ul li a { padding: 11px; }
  .menu > li.clicked .sub_item::before { transform: translate(-50%, -50%) rotate(180deg); } }
/* Slider */
.slick-slider { position: relative; display: block; box-sizing: border-box; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; -webkit-touch-callout: none; -khtml-user-select: none; -ms-touch-action: pan-y; touch-action: pan-y; -webkit-tap-highlight-color: transparent; }

.slick-list { position: relative; display: block; overflow: hidden; margin: 0; padding: 0; }

.slick-list:focus { outline: none; }

.slick-list.dragging { cursor: pointer; cursor: hand; }

.slick-slider .slick-track, .slick-slider .slick-list { -webkit-transform: translate3d(0, 0, 0); -moz-transform: translate3d(0, 0, 0); -ms-transform: translate3d(0, 0, 0); -o-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); }

.slick-track { position: relative; top: 0; left: 0; display: block; margin-left: auto; margin-right: auto; }

.slick-track:before, .slick-track:after { display: table; content: ''; }

.slick-track:after { clear: both; }

.slick-loading .slick-track { visibility: hidden; }

.slick-slide { display: none; float: left; height: 100%; min-height: 1px; }

[dir='rtl'] .slick-slide { float: right; }

.slick-slide img { display: block; margin-left: auto; margin-right: 0; }

.slick-slide.slick-loading img { display: none; }

.slick-slide.dragging img { pointer-events: none; }

.slick-initialized .slick-slide { display: block; }

.slick-loading .slick-slide { visibility: hidden; }

.slick-vertical .slick-slide { display: block; height: auto; border: 1px solid transparent; }

.slick-arrow.slick-hidden { display: none; }

main { overflow: hidden; }

.title__default-01 { color: #ffffff; font-size: 50px; font-weight: 500; line-height: 175%; letter-spacing: 0; margin-left: 36px; text-align: center; }
.title__default-01 .num { font-size: 110px; display: block; line-height: 100%; margin-bottom: 25px; letter-spacing: -7px; position: relative; left: -1px; }
.title__default-01 .txt { writing-mode: vertical-lr; }
.title__default-02 { color: #333333; font-size: 50px; font-weight: 500; line-height: 148%; letter-spacing: 2px; background: url(../img/icon_machines.png) no-repeat right top; background-size: 100px; display: inline-block; margin-bottom: 40px; padding-top: 15px; padding-right: 55px; }
.title__default-02 span { font-size: 47px; }
.title__default-02 strong { color: #0059B6; font-weight: 500; }
.title__default-03 { background: url(../img/icon_machines_02.png) no-repeat top right; background-size: 5.1042vw; display: inline-block; padding: 3.3854vw 5.4688vw 2.8646vw 0; }
.title__default-03 span { color: #ffffff; font-size: 50px; font-weight: 500; line-height: 125%; letter-spacing: 0; display: block; }
.title__default-03 span.en { font-size: 28px; padding-left: 20px; position: relative; }
.title__default-03 span.en::before { content: ""; position: absolute; width: 11px; height: 2px; z-index: 0; top: 50%; left: 2px; transform: translateY(-50%); background: #ffffff; }
.title__default-04 { color: #333333; font-size: 60px; font-weight: 500; line-height: 150%; letter-spacing: 0; position: relative; padding-left: 20px; }
.title__default-04::before { content: ""; position: absolute; width: 5px; height: calc(100% - 38px); z-index: 0; background: #0059B6; top: 52%; left: 0; transform: translateY(-50%); }

.txt__default p { color: #1A1A1A; font-size: 16px; font-weight: 400; line-height: 175%; letter-spacing: 0; }
.txt__default.vs-02 p { color: #ffffff; }

.mv { position: relative; margin-bottom: 70px; z-index: 1; }
.mv__cont { position: absolute; left: 0; top: 90px; height: calc(100% - 90px); background: rgba(0, 89, 182, 0.8); width: 100%; max-width: 645px; }
.mv__cont h2 { color: #ffffff; font-size: 50px; font-weight: 500; line-height: 155%; letter-spacing: 0; margin-bottom: 3.125vw; }
.mv__cont h2 .en { display: block; font-size: 18px; opacity: 0.6; line-height: 155%; margin-top: 18px; letter-spacing: -0.5px; }
.mv__cont-item { padding-left: 75px; padding-right: 55px; }
.mv__cont-item p { font-size: 18px; padding-left: 7px; }
.mv__scroll { position: absolute; bottom: -4.1667vw; left: 50%; transform: translateX(-50%); cursor: pointer; height: 10.2083vw; color: #ffffff; font-size: 18px; }
.mv__scroll::before { content: ""; position: absolute; width: 1px; height: 4.1667vw; z-index: 0; bottom: 4.1667vw; left: 50%; transform: translateX(-50%); background: #ffffff; }
.mv__scroll::after { content: ""; position: absolute; width: 7px; height: 4.1667vw; z-index: 0; background: url(../img/icon_scroll.png) no-repeat center bottom; background-size: cover; bottom: 0; left: 50%; }

.top_mv__gp { padding: 30px; margin-bottom: 180px; position: relative; }
.top_mv__gp iframe { border: 0; }
.top_mv__gp::before { content: ""; position: absolute; width: 17px; height: 17px; z-index: 0; border: #0059B6 solid 2px; border-right-width: 0; border-bottom-width: 0; top: 0; left: 0; }
.top_mv__gp::after { content: ""; position: absolute; width: 17px; height: 17px; z-index: 0; border: #0059B6 solid 2px; border-left-width: 0; border-bottom-width: 0; top: 0; right: 0; }
.top_mv__gp .line_01 { position: absolute; width: 100%; bottom: 0; left: 0; }
.top_mv__gp .line_01::before { content: ""; position: absolute; width: 17px; height: 17px; z-index: 0; border: #ffffff solid 2px; border-right-width: 0; border-top-width: 0; bottom: 0; left: 0; }
.top_mv__gp .line_01::after { content: ""; position: absolute; width: 17px; height: 17px; z-index: 0; border: #ffffff solid 2px; border-left-width: 0; border-top-width: 0; bottom: 0; right: 0; }
.top_mv__gp iframe { width: 100%; height: 576px; }
.top_mv__gp h3 { color: #ffffff; font-size: 40px; font-weight: 500; line-height: 175%; letter-spacing: 0; background: linear-gradient(90deg, #004392 0%, #0059b6 100%); display: inline-block; padding: 3px 27px; position: absolute; top: 72px; left: -50px; }

.banner { background: #0059B6; margin-bottom: 62px; }
.banner__cont { width: calc(50% - 45px); }
.banner__cont-gp { width: 100%; max-width: 675px; margin-left: auto; margin-right: 0; padding-left: 15px; padding-right: 8.0729vw; }
.banner__cont-gp p { font-size: 19px; letter-spacing: 1px; }
.banner__img { width: calc(50% + 45px); }
.banner.vs-02 { position: relative; margin-bottom: 104px; }
.banner.vs-02 .banner__cont { position: absolute; top: 90px; left: 0; background: rgba(0, 89, 182, 0.8); height: calc(100% - 90px); width: 36.4583vw; }
.banner.vs-02 .banner__cont-gp { padding-right: 0; max-width: 470px; }
.banner.vs-02 .banner__img { width: 100%; }
.banner.vs-03 { height: 330px; background: #F2F2F2; }
.banner.vs-03 .title__default-03 { background-image: url(../img/icon_machines_03.png); }
@media (min-width: 768px) { .banner.vs-03 .title__default-03 { padding-right: 3.2vw; } }
.banner.vs-03 .title__default-03 span { color: #004392; }
.banner.vs-03 .title__default-03 span.en::before { background: #004392; }

.page_top { background: linear-gradient(180deg, #0059b6 0%, #004392 100%); position: relative; margin-bottom: 90px; }
.page_top::before { content: ""; position: absolute; width: 100%; height: 400px; z-index: 0; top: -1px; left: 0; background: #ffffff; clip-path: polygon(0% 0%, 100% 0%, 100% 50%, 50% 100%, 0% 50%); }

.top_service { margin-bottom: 100px; }
.top_service__gp { margin-bottom: 160px; background-repeat: no-repeat; background-position: center right; background-size: contain; }
.top_service__gp:last-child { margin-bottom: 0; }
.top_service__gp .img { max-width: 50%; }
.top_service__gp .img img { box-shadow: rgba(33, 42, 79, 0.3) 20px 20px 10px; }
@media (min-width: 1201px) { .top_service__gp.vs-01 .img { padding: 4.1667vw 0; }
  .top_service__gp.vs-02 .img { padding-top: 0.5vw; }
  .top_service__gp.vs-02 .cont .txt__default p { letter-spacing: 2.15px; }
  .top_service__gp.vs-02 .cont__item { padding-top: 29px; }
  .top_service__gp.vs-03 .cont { padding-top: 10px; }
  .top_service__gp.vs-03 .cont__item { padding-top: 36px; } }
.top_service__gp .cont { width: 100%; max-width: 750px; }
.top_service__gp .cont__item { max-width: 410px; width: 100%; margin-left: auto; margin-right: auto; position: relative; padding: 18px 20px 40px; }
.top_service__gp .cont__item::before { content: ""; position: absolute; width: 17px; height: 17px; z-index: 0; border: #ffffff solid 2px; border-right-width: 0; border-bottom-width: 0; top: 0; left: 0; }
.top_service__gp .cont__item::after { content: ""; position: absolute; width: 17px; height: 17px; z-index: 0; border: #ffffff solid 2px; border-left-width: 0; border-bottom-width: 0; top: 0; right: 0; }
.top_service__gp .cont__item .line_02 { position: absolute; bottom: 0; left: 0; width: 100%; }
.top_service__gp .cont__item .line_02::before { content: ""; position: absolute; width: 17px; height: 17px; z-index: 0; border: #ffffff solid 2px; border-right-width: 0; border-top-width: 0; bottom: 0; left: 0; }
.top_service__gp .cont__item .line_02::after { content: ""; position: absolute; width: 17px; height: 17px; z-index: 0; border: #ffffff solid 2px; border-left-width: 0; border-top-width: 0; bottom: 0; right: 0; }
.top_service__gp .cont .txt__default { writing-mode: vertical-rl; padding-top: 140px; }
.top_service__gp .cont .txt__default p { border-left: rgba(255, 255, 255, 0.3) solid 1px; font-size: 20px; letter-spacing: 1.5px; padding: 10px 12px 3px; }
@media (min-width: 1001px) { .top_service__gp .cont .txt__default p { min-height: 304px; } }
.top_service__gp .cont .txt__default p:first-child { border-right: rgba(255, 255, 255, 0.3) solid 1px; }
.top_service__gp .cont .txt__default span { writing-mode: initial; }
@media (min-width: 768px) { .top_service__gp:nth-child(2n) { justify-content: flex-end; background-position: center left; }
  .top_service__gp:nth-child(2n) .img { order: 1; } }
.top_service__gp:first-child .cont__item { padding-bottom: 105px; }

.top_technology { display: flex; }
.top_technology .img { width: calc(50% + 6.25vw); margin-right: -6.25vw; position: relative; z-index: 0; }
.top_technology .img::before { content: ""; position: absolute; width: 100%; height: 50%; z-index: 0; bottom: 0; left: 0; background: #ffffff; z-index: -1; }
.top_technology .cont { background: #ffffff; position: relative; z-index: 1; width: 50%; margin-top: 7.0313vw; padding-top: 4.0625vw; padding-left: 11.9792vw; }
.top_technology .cont p { font-size: 20px; border-right: #0059B6 solid 1px; letter-spacing: 2px; position: relative; padding: 0 12.2px; }
.top_technology .cont p::before { content: ""; position: absolute; width: 1px; height: 100%; z-index: 0; top: 0; left: -1px; background: #0059B6; }
.top_technology .cont .txt__default { writing-mode: vertical-rl; display: flex; flex-flow: column; align-items: flex-start; position: relative; }
.top_technology .cont .txt__default a { position: absolute; bottom: 17px; left: -62px; font-size: 20px; font-weight: 600; line-height: 175%; color: #1A1A1A; padding-bottom: 77px; letter-spacing: 2px; }
.top_technology .cont .txt__default a::before { content: ""; position: absolute; width: 50px; height: 50px; z-index: 0; background: #0059B6 url(../img/arrow-down.png) no-repeat center; border-radius: 100%; bottom: 0; left: 50%; transform: translateX(-50%); background-size: 19px; }

.is_hidden { display: none; }

@media (max-width: 1600px) { .title__default-01 { font-size: 3.125vw; }
  .title__default-01 .num { font-size: 6.875vw; margin-bottom: 1.5625vw; letter-spacing: -0.625vw; }
  .title__default-02 { font-size: 3.125vw; background-size: 6.25vw; margin-bottom: 2.5vw; padding-top: .9375vw; padding-right: 3.4375vw; }
  .title__default-02 span { font-size: 2.9375vw; }
  .title__default-03 span { font-size: 3.125vw; }
  .title__default-04 { font-size: 3.75vw; }
  .title__default-04::before { height: calc(100% - 2.375vw); }
  .mv__cont h2 { font-size: 3.125vw; }
  .top_service__gp { margin-bottom: 10vw; }
  .top_service__gp .cont { max-width: 50%; padding: 0 15px; }
  .top_service__gp .cont__item { padding: 1.125vw 15px 2.5vw; }
  .top_service__gp .cont .txt__default { padding-top: 8.75vw; }
  .top_service__gp:first-child .cont__item { padding-bottom: 6.5625vw; }
  .top_mv__gp { margin-bottom: 11.25vw; } }
@media (max-width: 1400px) { .top_mv__gp h3 { font-size: 2.8571vw; padding: .2143vw 1.9286vw; top: 5.1429vw; left: -3.5714vw; } }
@media (max-width: 1200px) { .title__default-03 span.en { font-size: 2.3333vw; }
  .mv__scroll { height: 11.5vw; }
  .mv__cont { top: 0; height: 100%; }
  .banner { margin-bottom: 5vw; }
  .banner.vs-02 { margin-bottom: 8.6667vw; }
  .banner__cont-gp { padding-right: 15px; }
  .banner__cont-gp p { font-size: 16px; }
  .top_mv__gp h3 { left: 0; }
  .top_service__gp .cont .txt__default p { font-size: 18px; }
  .top_technology .cont { padding-left: 9vw; }
  .top_technology .cont p { font-size: 18px; padding: 0 1.0167vw; }
  .top_technology .cont .txt__default a { padding-bottom: 6.4167vw; font-size: 18px; left: -5.1667vw; }
  .top_technology .cont .txt__default a::before { width: 4.1667vw; height: 4.1667vw; background-size: 1.5833vw; } }
@media (max-width: 1000px) { .mv__scroll { height: 12vw; font-size: 16px; }
  .mv__cont { position: relative; max-width: 100%; background: #0059B6; }
  .mv__cont h2 { margin-bottom: 2vw; }
  .mv__cont h2 .en { margin-top: 1.5vw; }
  .mv__cont-item { padding: 10vw 5vw; }
  .mv__cont-item p { font-size: 16px; padding-left: 0; }
  .banner__img { width: 50%; }
  .banner__img img { height: 260px; object-fit: cover; }
  .banner__cont { width: 50%; }
  .banner.vs-02 .banner__cont { top: 0; height: 100%; width: 50%; }
  .banner.vs-03 { height: 33vw; }
  .page_top::before { height: 55vw; }
  .top_mv__gp { padding: 15px; }
  .top_mv__gp iframe { height: 58vw; }
  .top_technology { flex-wrap: wrap; background: #ffffff; }
  .top_technology .img { width: 100%; margin-right: 0; }
  .top_technology .cont { width: 100%; margin-top: 0; max-width: 500px; margin-left: auto; margin-right: auto; } }
@media (max-width: 767px) { .title__default-01 { font-size: 24px; margin-left: 20px; }
  .title__default-01 .num { font-size: 50px; margin-bottom: 20px; letter-spacing: 0; }
  .title__default-02 { font-size: 24px; background-size: 45px; }
  .title__default-02 span { font-size: 23px; }
  .title__default-03 { background-size: 50px; padding: 15px 60px 15px 0px; }
  .title__default-03 span { font-size: 24px; }
  .title__default-03 span.en { font-size: 16px; }
  .title__default-04 { font-size: 26px; }
  .txt__default p { font-size: 15px; }
  .top_mv__gp { margin-bottom: 40px; }
  .top_mv__gp h3 { font-size: 18px; top: 35px; }
  .mv { margin-bottom: 10.6667vw; height: calc(100vh - 9.733vh); }
  .mv__img { height: 35.467vh; }
  .mv__img img { height: 100%; width: 100%; object-fit: cover; }
  .mv__cont { height: calc(100vh - 35.467vh - 9.733vh); display: flex; align-items: flex-start; }
  .mv__cont h2 { font-size: 8.4vw; margin-bottom: 6vw; line-height: 127%; }
  .mv__cont h2 .en { font-size: 3.2vw; letter-spacing: -0.1333vw; margin-top: 2vw; }
  .mv__cont p { text-align: justify; font-size: 3.33333vw; padding-left: .8vw; }
  .mv__cont-item { padding: 8vw 6.66667vw 18.6667vw; }
  .mv__scroll { height: 22.6667vw; bottom: -10.8vw; font-size: 3.3333vw; }
  .mv__scroll::before { height: 6vw; bottom: 10.8vw; }
  .mv__scroll::after { height: 10.8vw; width: .9333vw; }
  .banner__img { width: 100%; }
  .banner__img img { height: 48vw; }
  .banner__cont { width: 100%; order: 1; }
  .banner__cont-gp { padding: 20px 15px; }
  .page_top { margin-bottom: 50px; }
  .top_service { margin-bottom: 50px; }
  .top_service__gp .img, .top_service__gp .cont { max-width: 100%; }
  .top_service__gp .img { margin-bottom: 30px; padding-left: 15px; padding-right: 15px; }
  .top_service__gp:not(:last-child) { margin-bottom: 50px; }
  .top_service__gp .cont__item { padding: 20px 15px 40px !important; } }
@media (max-width: 767px) and (min-width: 371px) { .top_service__gp .cont { padding-left: 30px; padding-right: 30px; } }
@media (max-width: 767px) { .top_service__gp .cont .txt__default { padding-top: 72px; }
  .top_service__gp .cont .txt__default p { font-size: 16px; padding-bottom: 11px; display: block; }
  .top_service__gp:first-child .cont .txt__default p { padding-bottom: 0; min-height: 240px; }
  .top_technology .cont { padding-left: 16vw; padding-top: 30px; }
  .top_technology .cont .txt__default a { left: -40px; padding-bottom: 40px; }
  .top_technology .cont .txt__default a::before { width: 30px; height: 30px; background-size: 16px; }
  .top_technology { padding-top: 40px; }
  .top_technology .img { padding-left: 15px; padding-right: 15px; }
  .top_technology .cont { padding-left: 55px; padding-right: 15px; }
  .top_technology .cont p { font-size: 16px; padding: 5px 7.25px; font-weight: 500; } }
@media (max-width: 767px) and (max-width: 370px) { .top_technology .cont p { padding: 5px 1vw; } }
@media (max-width: 767px) { .top_technology .cont .txt__default a { bottom: 0; }
  .top_technology .title__default-02 { margin-bottom: 22px; } }
@media (max-width: 350px) { .top_technology .cont .txt__default a, .top_technology .cont p { font-size: 16px; }
  .title__default-03 { padding-right: 45px; }
  .title__default-03 span { font-size: 22px; } }
.page_pro { padding-bottom: 50px; }

.ul_list__pro-01 li { width: calc((100% - 4.3755vw) / 3); margin-right: 2.1875vw; }
.ul_list__pro-01 li:nth-child(3n) { margin-right: 0; }
.ul_list__pro-01 li p { padding-top: 5px; }
.ul_list__pro-02 li { width: calc((100% - 4.688vw) / 2); margin-right: 4.6875vw; margin-bottom: 40px; }
.ul_list__pro-02 li p { color: #000; }
.ul_list__pro-02 li:nth-child(2n) { margin-right: 0; }

.title__pro-01 { background: #0059B6; min-width: 86px; color: #ffffff; font-size: 18px; font-weight: 500; line-height: 165%; letter-spacing: 0; padding: 0 8px; text-align-last: justify; text-align: center; display: inline-block; }
.title__pro-02 { color: #000000; font-size: 19px; font-weight: 700; line-height: 165%; letter-spacing: 0; margin-bottom: 8px; }
.title__pro-03 { color: #004392; font-size: 18px; font-weight: 700; line-height: 180%; letter-spacing: 0; padding: 0 8px; }

.machining { margin-bottom: 86px; }
.machining__gp { margin-bottom: 43px; }
.machining__gp .cont { padding-left: 2.3438vw; }
.machining__gp-box { margin-bottom: 40px; }
.machining__gp-box h4 { width: 86px; }
.machining__gp-box:last-child { margin-bottom: 0; }
.machining__gp-item { padding-left: 14px; width: calc(100% - 86px); }
.machining__gp-item.p__line p { border-bottom: #D6D6D6 solid 1px; padding-bottom: 5.5px; margin-bottom: 5.5px; color: #000000; }
.machining__gp-item p.fix-01 { letter-spacing: -0.3px; }
.machining__item { margin-bottom: 30px; }
.machining__item p { border-bottom: #D6D6D6 solid 1px; padding-bottom: 5.5px; margin-bottom: 5.5px; color: #000000; }
.machining__item p:last-child { margin-bottom: 0; }
.machining .title__default-04 { margin-bottom: 45px; }

.programs { margin-bottom: 48px; }
.programs__img { padding-top: 8px; }
.programs__img .img { margin-bottom: 27px; }
.programs__img .img:last-child { margin-bottom: 0; }
.programs__cont { width: calc(50% + 45px); }
.programs__cont-head { margin-bottom: 47px; }
.programs__cont-head p { color: #000000; }

.table__pro-01 { width: 100%; border-spacing: 0; margin: 5px 0; }
.table__pro-01 td { color: #000000; font-size: 16px; font-weight: 500; line-height: 175%; letter-spacing: 0; border-bottom: #D6D6D6 solid 1px; padding: 5.5px 8px; }
.table__pro-01.vs-02 { margin-bottom: 40px; }
.table__pro-01.vs-02 td:first-child { width: 140px; }

.example .title__default-04 { margin-bottom: 34px; }
.example p { font-size: 24px; margin-top: 5px; }

@media (max-width: 1200px) { .page_pro { padding-bottom: 4.1667vw; }
  .machining { margin-bottom: 7.1667vw; }
  .machining__gp-box { margin-bottom: 3.3333vw; }
  .machining .title__default-04 { margin-bottom: 3.75vw; }
  .programs__img { width: 50%; padding-right: 15px; }
  .programs__cont { width: 50%; }
  .programs__cont-head { margin-bottom: 3.9167vw; }
  .example p { font-size: 2vw; } }
@media (max-width: 1000px) { .machining__gp .img { width: 100%; margin-bottom: 30px; }
  .machining__gp .img img { display: block; margin: auto; }
  .machining__gp .cont { width: 100%; padding-left: 0; }
  .programs__img { width: 100%; margin-bottom: 30px; padding-right: 0; }
  .programs__img img { margin: auto; display: block; }
  .programs__cont { width: 100%; } }
@media (max-width: 767px) { .title__pro-01 { font-size: 16px; }
  .title__pro-02 { font-size: 17px; }
  .table__pro-01 td { font-size: 15px; }
  .table__pro-01.vs-02 td:first-child { width: 130px; }
  .banner { margin-bottom: 33px; }
  .machining .title__default-04 { margin-bottom: 21px; }
  .ul_list__pro-02 li { margin-bottom: 20px; }
  .machining__gp-item { width: 100%; padding-left: 0; padding-top: 5px; }
  .programs { margin-bottom: 30px; }
  .example .title__default-04 { margin-bottom: 20px; }
  .example p { font-size: 16px; } }
@media (max-width: 480px) { .ul_list__pro-01 li { width: 100%; margin-right: 0; margin-bottom: 20px; }
  .ul_list__pro-01 li:last-child { margin-bottom: 0; } }
.title__company { color: #333333; font-size: 30px; font-weight: 500; line-height: 115%; letter-spacing: 0; border-left: #0059B6 solid 5px; padding-left: 10px; margin-bottom: 32px; }

.page_company { padding-bottom: 100px; }

.comp__gp-item { width: 660px; }
.comp__gp-item:nth-child(2) td { padding-bottom: 20px; }
.comp__gp table { width: 100%; border-spacing: 0; }
.comp__gp table td { color: #000000; font-size: 16px; font-weight: 500; line-height: 175%; letter-spacing: 0; border-bottom: #D6D6D6 solid 1px; padding: 10px 0; }
.comp__gp table td:first-child { font-weight: 700; border-bottom: #004392 solid 2px; width: 100px; vertical-align: top; }
.comp__gp table td:last-child { padding-left: 45px; }
.comp__gp table li { margin-bottom: 22px; }
.comp__gp table li:last-child { margin-bottom: 0; }

@media (max-width: 1400px) and (min-width: 1001px) { .comp__gp-item { width: calc((100% - 15.01px) / 2); margin-right: 15px; }
  .comp__gp-item:nth-child(2n) { margin-right: 0; } }
@media (max-width: 1400px) { .comp__gp table td:last-child { padding-left: 3.2143vw; } }
@media (max-width: 1000px) { .page_company { padding-bottom: 70px; }
  .title__company { font-size: 3vw; margin-bottom: 3vw; }
  .comp__gp-item { width: 100%; }
  .comp__gp-item:last-child { margin-bottom: 0; }
  .comp__gp table td { width: 100% !important; float: left !important; border: 0 !important; }
  .comp__gp table td:nth-child(1) { color: #ffffff; padding: 10px 15px; background-color: #0059B6; }
  .comp__gp table td:nth-child(2) { padding-left: 0; padding-bottom: 20px; }
  .comp__gp table li { margin-bottom: 15px; } }
@media (max-width: 767px) { .banner.vs-02 { margin-bottom: 40px; }
  .title__company { font-size: 20px; border-width: 3px; margin-bottom: 20px; }
  .page_company { padding-bottom: 24px; }
  .comp__gp table td { font-size: 15px; }
  .comp__gp table td:first-child { width: 94px; } }
.page_privacy { margin-top: 92px; padding-bottom: 110px; }
.page_privacy .grid-1110 > p { padding-bottom: 50px; }
.page_privacy p { letter-spacing: -0.15px; text-align: justify; }
.page_privacy h3 { color: #1A1A1A; font-size: 20px; font-weight: 600; line-height: 175%; letter-spacing: 0; display: block; margin-bottom: 7px; }
.page_privacy ul li { display: flex; align-items: center; color: #1A1A1A; font-size: 16px; font-weight: 400; line-height: 175%; letter-spacing: 0; }
.page_privacy ul li .first { width: 66px; }
.page_privacy ul li .last { width: calc(100% - 66px); }
.page_privacy-item { position: relative; padding-left: 30px; padding-bottom: 4px; margin-top: 55px; }
.page_privacy-item::before { content: ""; position: absolute; left: 0; top: 0; width: 4px; height: 100%; background-color: #EEEEF2; }

@media (max-width: 767px) { .page_privacy { margin-top: 44px; padding-bottom: 50px; }
  .page_privacy h3 { font-size: 15px; letter-spacing: -0.5px; }
  .page_privacy .grid-1110 > p { padding-bottom: 30px; }
  .page_privacy p { letter-spacing: 0.2px; }
  .page_privacy ul li { font-size: 15px; align-items: start; }
  .page_privacy-item { padding-left: 15px; margin-top: 30px; }
  .page_privacy-item::before { width: 2px; } }
.page_contact { padding: 30px 0 100px; }
.page_contact.confirm table td:last-child span { background: #F2F2F2; display: block; padding: 13px 15px; min-height: 54px; border-radius: 5px; }

.required { color: #ED1C24; }

.contact__head { margin-bottom: 72px; }
.contact__confirm { max-width: 615px; width: 100%; margin-left: auto; margin-right: auto; }
.contact__confirm label { cursor: pointer; border: #CCCCCC solid 1px; display: block; text-align: center; padding: 14px; margin-bottom: 42px; }
.contact__confirm label input { position: absolute; opacity: 0; left: 0; top: 50%; transform: translateY(-50%); }
.contact__confirm label input:checked ~ .contact__confirm-check::after { content: ""; }
.contact__confirm-label { position: relative; }
.contact__confirm p { color: #292929; margin-bottom: 60px; }
.contact__confirm a { color: #29ABE2; text-decoration: underline; }
.contact__confirm-check { display: inline-block; position: relative; padding-left: 30px; }
.contact__confirm-check::before { content: ""; position: absolute; width: 14px; height: 14px; z-index: 0; left: 0; top: 50%; transform: translateY(-50%); border: #1A1A1A solid 1px; }
.contact__confirm-check::after { content: ""; position: absolute; width: 10px; height: 10px; z-index: 0; left: 2px; top: 50%; transform: translateY(-50%); background: #1A1A1A; content: none; }

.table__contact { width: 100%; border-spacing: 0; margin-bottom: 20px; }
.table__contact .form-input { width: 100%; border: 0; height: 54px; background: #F2F2F2; border-radius: 5px; padding: 0 15px; font-size: 16px; font-family: "Noto Sans JP", sans-serif; color: #000; }
.table__contact .form-input::-webkit-input-placeholder { color: #999999; font-size: 16px; font-weight: 500; }
@media (max-width: 480px) { .table__contact .form-input::-webkit-input-placeholder { font-size: 15px; letter-spacing: -0.5px; } }
.table__contact .form-input::-moz-placeholder { color: #999999; font-size: 16px; font-weight: 500; }
@media (max-width: 480px) { .table__contact .form-input::-moz-placeholder { font-size: 15px; letter-spacing: -0.5px; } }
.table__contact .form-input:-ms-input-placeholder { color: #999999; font-size: 16px; font-weight: 500; }
@media (max-width: 480px) { .table__contact .form-input:-ms-input-placeholder { font-size: 15px; letter-spacing: -0.5px; } }
.table__contact .form-input:-moz-placeholder { color: #999999; font-size: 16px; font-weight: 500; }
@media (max-width: 480px) { .table__contact .form-input:-moz-placeholder { font-size: 15px; letter-spacing: -0.5px; } }
.table__contact .form-input.w200 { width: 200px; margin-right: 10px; }
.table__contact .form-input.vs-02 { margin-bottom: 45px; }
.table__contact textarea.form-input { height: 220px; padding: 13px 15px; }
.table__contact td { color: #1A1A1A; font-size: 16px; font-weight: 700; line-height: 175%; letter-spacing: 0; padding: 23px 0; }
.table__contact td:first-child { width: 196px; padding-right: 15px; }
.table__contact td:last-child { color: #999999; }
.table__contact td .inline { display: inline-block; }
.table__contact td .inline.vs-01 { padding: 0 15px; }
.table__contact tr.vs-02 td { vertical-align: top; }
.table__contact tr.vs-02 td:first-child { padding-top: 36px; }

.btn__submit button { background: #1A1A1A url(../img/arrow-right-02.png) no-repeat center right 15px; background-size: 13px; border: 0; border-radius: 0; width: 100%; height: 60px; max-width: 253px; margin-left: auto; margin-right: auto; color: #ffffff; font-size: 16px; cursor: pointer; padding-right: 12px; font-family: "Noto Sans JP", sans-serif; }

.btnform__gp .btn__submit { width: 253px; margin-right: 15px; }
.btnform__gp .btn__submit:last-child { margin-right: 0; }

@media (max-width: 1000px) { .page_contact { padding: 3vw 0 10vw; }
  .contact__head { margin-bottom: 7vw; }
  .contact__head .show__pc { display: none; }
  .contact__confirm p { margin-bottom: 6vw; }
  .contact__confirm label { margin-bottom: 4vw; }
  .table__contact td { font-size: 15px; padding: 2.3vw 0; }
  .table__contact td:first-child { width: 170px; }
  .table__contact td .inline.vs-01 { padding: 0 10px; }
  .table__contact tr.vs-02 td:first-child { padding-top: 3.6vw; }
  .table__contact .form-input.vs-02 { margin-bottom: 4.5vw; } }
@media (max-width: 767px) { .banner.vs-03 { margin-bottom: 40px; }
  .table__contact td { float: left; width: 100%; }
  .table__contact td:first-child { width: 100%; }
  .table__contact .form-input { height: 45px; }
  .table__contact textarea.form-input { height: 150px; }
  .contact__head { margin-bottom: 18px; }
  .page_contact { margin-top: -9px; padding: 0 0 50px; } }
@media (max-width: 600px) { .btnform__gp { max-width: 300px; margin-left: auto; margin-right: auto; }
  .btnform__gp .btn__submit { margin-right: 0; margin-bottom: 15px; } }
.footer_box { padding: 124px 0 108px; background: #F2F2F2; }
.footer_box .copyright { opacity: 0.5; }
@media (min-width: 768px) { .footer_box .copyright { position: absolute; bottom: 0; left: 0; } }
.footer__gp { position: relative; }
@media (min-width: 768px) { .footer__gp { padding-bottom: 7px; } }
.footer__gp-item { max-width: 455px; }
@media (min-width: 768px) { .footer__gp-item { width: 50%; } }
.footer__gp-menu li { margin-bottom: 12px; }
.footer__gp-menu li:last-child { margin-bottom: 0; }
@media (min-width: 768px) { .footer__gp-menu li:last-child { margin-top: 20px; } }
.footer__gp-menu li:nth-child(4) { display:none; }
.footer__gp-menu li a { color: #1A1A1A; font-size: 18px; font-weight: 600; line-height: 150%; letter-spacing: 0; font-family: "Noto Serif JP", serif; padding-left: 15px; background: url(../img/arrow-right-01.png) no-repeat center left; background-size: 7px; }
.footer__gp-menu li a.button { background: #1A1A1A; color: #ffffff; width: 100%; max-width: 270px; height: 72px; font-size: 17px; padding-left: 0; }
.footer__gp-menu li a.button span { background: url(../img/icon_email.png) no-repeat center left; background-size: 28px; display: inline-block; padding-left: 44px; }
.footer__gp-logo { margin-bottom: 17px; }

@media (max-width: 1200px) { .footer_box { padding: 10.3333vw 0 9vw; } }
@media (max-width: 767px) { .footer__gp-logo img { width: 150px; }
  .footer__gp-item { width: 100%; margin-bottom: 30px; }
  .footer__gp-menu { display: flex; flex-wrap: wrap; }
  .footer__gp-menu li { width: 50%; }
  .footer__gp-menu li a { font-size: 16px; }
  .footer__gp-menu li a.button { margin-left: auto; margin-right: auto; height: 60px; }
  .footer__gp-menu li:last-child { width: 100%; }
  .footer_box .copyright { width: 100%; text-align: center; } }

/*# sourceMappingURL=style.min.css.map */
