@charset "UTF-8";
@font-face {
  font-family: "icomoon";
  src: url("/assets/fonts/icomoon.eot?92qpvy");
  src: url("/assets/fonts/icomoon.eot?92qpvy#iefix") format("embedded-opentype"), url("/assets/fonts/icomoon.ttf?92qpvy") format("truetype"), url("/assets/fonts/icomoon.woff?92qpvy") format("woff"), url("/assets/fonts/icomoon.svg?92qpvy#icomoon") format("svg");
  font-weight: normal;
  font-style: normal;
  font-display: block;
}
/* ===========================================
    Base Settings
=========================================== */
html {
  scroll-behavior: smooth;
  font-size: 0.625em;
}
@media screen and (min-width: 1920px) {
  html {
    font-size: 0.625em;
  }
}
@media screen and (max-width: 1280px) {
  html {
    font-size: min(1vw, 9px);
  }
}
@media screen and (max-width: 767px) {
  html {
    font-size: min(2.5vw, 12px);
  }
}

body {
  line-height: 1.6;
  font-family: "Noto Sans JP", serif;
  font-size: 1.5rem;
  font-feature-settings: "palt";
  letter-spacing: 0.1em;
  transition: font-size 0.3s;
  color: #333;
}
@media screen and (max-width: 767px) {
  body.stoped {
    overflow: hidden;
  }
}

em {
  font-style: normal;
}

dt {
  font-weight: 400;
}

img, video {
  max-width: 100%;
  vertical-align: bottom;
}

a[href="#"] {
  pointer-events: none;
}

*[id*=anc-] {
  scroll-margin-top: 8rem;
}
body.business *[id*=anc-] {
  scroll-margin-top: 13rem;
}
@media screen and (max-width: 767px) {
  *[id*=anc-] {
    scroll-margin-top: 6rem;
  }
  body.business *[id*=anc-] {
    scroll-margin-top: 6rem;
  }
}

/* ===========================================
    Header
=========================================== */
.header {
  position: fixed;
  z-index: 100;
  top: 0;
  left: 0;
  width: 100%;
  background-color: #ffffff;
}

.header-global {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.header-global__logo {
  margin-left: min(2%, 3rem);
}
.header-global__logo img {
  height: 3rem;
}
.header-global__lang {
  margin: 0 min(2%, 3rem) 0 1.5rem;
}
.header-global__lang a {
  position: relative;
  display: block;
}
.header-global__lang a img {
  width: 2rem;
}
.header-global__lang a span {
  position: absolute;
  top: -1.2em;
  left: 0;
  width: 100%;
  text-align: center;
  font-size: 1.2rem;
}
@media screen and (min-width: 768px) {
  .header-global__nav {
    margin-left: auto;
  }
}
@media screen and (max-width: 767px) {
  .header-global {
    height: 6rem;
  }
  .header-global__logo img {
    height: 2rem;
  }
  .header-global__lang {
    margin: 0.6rem 5% 0 auto;
  }
  .header-global__nav {
    position: fixed;
    top: 6rem;
    left: 100vw;
    width: 100%;
    max-height: calc(100vh - 6rem);
    overflow-y: auto;
    background-color: #E5ECF3;
    opacity: 0;
    transition: opacity 0.2s 0s, left 0s 0.2s;
  }
  .header-global__nav.opened {
    left: 0;
    opacity: 1;
    transition: opacity 0.3s;
  }
}

.header-local {
  height: 5rem;
  background-color: #E5E5E5;
}
@media screen and (max-width: 767px) {
  .header-local {
    display: none;
  }
}

@media screen and (min-width: 768px) {
  .nav-btn {
    display: none;
  }
}
@media screen and (max-width: 767px) {
  .nav-btn {
    width: 2.6rem;
    height: 2.6rem;
    margin-right: 4%;
    display: flex;
    justify-content: center;
    align-items: center;
    cursor: pointer;
  }
  .nav-btn span {
    position: relative;
    width: 3rem;
    height: 0.2rem;
    background-color: #004385;
    transition: background-color 0.2s;
  }
  .nav-btn span::before, .nav-btn span::after {
    content: "";
    position: absolute;
    left: 0;
    width: 100%;
    height: 0.2rem;
    background-color: #004385;
    transition: 0.2s;
  }
  .nav-btn span::before {
    top: -0.8rem;
  }
  .nav-btn span::after {
    bottom: -0.8rem;
  }
  .nav-btn.opened span {
    background-color: transparent;
  }
  .nav-btn.opened span::before {
    top: 0;
    transform: rotate(45deg);
  }
  .nav-btn.opened span::after {
    bottom: 0;
    transform: rotate(-45deg);
  }
}

/* ===========================================
    Footer
=========================================== */
.footer-local {
  padding: 10rem 0;
  background-color: #E5E5E5;
}
.footer-local__header {
  margin-bottom: 2rem;
  font-size: 2rem;
  font-weight: 500;
  letter-spacing: 0.1em;
  color: #004385;
}
@media screen and (max-width: 767px) {
  .footer-local {
    padding: 15vw 0;
  }
  .footer-local__header {
    font-size: 1.8rem;
  }
}

.footer-global {
  padding: 10rem 0;
  background-color: #004385;
}
@media screen and (max-width: 767px) {
  .footer-global {
    padding: 15vw 0;
  }
}

.footer-bottom {
  padding: 2rem 0;
  background-color: #000000;
  font-size: 1.2rem;
  color: #ffffff;
}
.footer-bottom .logo {
  margin-right: auto;
}
.footer-bottom .logo img {
  height: 3rem;
}
.footer-bottom .copyright {
  margin-left: 2rem;
}
.footer-bottom .copyright small {
  font-size: 1.2rem;
}
@media screen and (max-width: 767px) {
  .footer-bottom .logo img {
    height: 2.4rem;
  }
  .footer-bottom .copyright {
    margin: 0.5em 0 0;
    width: 100%;
    text-align: center;
  }
  .footer-bottom .copyright small {
    font-size: 1rem;
  }
}

/* ===========================================
    Global Nav
=========================================== */
@media screen and (min-width: 768px) {
  .header .global-nav {
    display: flex;
  }
  .header .global-nav > li {
    margin: 0 1em;
  }
  .header .global-nav > li > a, .header .global-nav > li > span {
    position: relative;
    display: flex;
    align-items: center;
    height: 8rem;
    cursor: pointer;
    font-weight: 500;
    letter-spacing: 1px;
    transition: 0.3s;
  }
  .header .global-nav > li > a.sp, .header .global-nav > li > span.sp {
    display: none;
  }
  .header .global-nav > li > a::before, .header .global-nav > li > span::before {
    content: "";
    position: absolute;
    bottom: 1.5rem;
    left: 0;
    width: 100%;
    height: 0;
    border-top: solid 0.2rem #004385;
    opacity: 0;
    transition: 0.3s;
  }
  .header .global-nav > li:hover > a::before, .header .global-nav > li:hover > span::before {
    bottom: 2rem;
    opacity: 1;
  }
  .header .global-nav > li .child {
    position: fixed;
    top: -22rem;
    left: 0;
    width: 100%;
    opacity: 0;
    transition-property: opacity, top;
    transition-duration: 0.2s, 0s;
    transition-delay: 0s, 0.2s;
  }
  .header .global-nav > li .child.sp {
    display: none;
  }
  .header .global-nav > li .child ul {
    width: min(80%, 1200px);
    margin: 0 auto;
    display: flex;
    justify-content: center;
  }
  .header .global-nav > li .child ul li {
    width: min(30%, 35rem);
  }
  .header .global-nav > li .child ul li a {
    position: relative;
    height: 15rem;
    padding: 0 2rem;
    display: flex;
    justify-content: center;
    align-items: center;
    background-position: center center;
    background-size: cover;
    background-repeat: no-repeat;
  }
  .header .global-nav > li .child ul li a.nav--aerospace {
    background-image: url(/assets/images/common/nav__aerospace.jpg);
  }
  .header .global-nav > li .child ul li a.nav--machinery {
    background-image: url(/assets/images/common/nav__machinery.jpg);
  }
  .header .global-nav > li .child ul li a.nav--dp {
    background-image: url(/assets/images/common/nav__dp.jpg);
  }
  .header .global-nav > li .child ul li a::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    display: block;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 67, 133, 0.3);
    mix-blend-mode: multiply;
    transition: 0.3s;
  }
  .header .global-nav > li .child ul li a span {
    position: relative;
    text-align: center;
    font-size: 1.8rem;
    font-weight: 500;
    letter-spacing: 0.2em;
    color: #ffffff;
  }
  body.en .header .global-nav > li .child ul li a span {
    font-family: "Play", sans-serif;
    letter-spacing: 0.05em;
  }
  .header .global-nav > li .child ul li a:hover::before {
    background-color: rgba(0, 67, 133, 0.9);
  }
  .header .global-nav > li:hover .child {
    top: 8rem;
    opacity: 1;
    transition: opacity 0.3s;
  }
}
@media screen and (min-width: 768px) and (max-width: 1280px) {
  .header .global-nav > li {
    margin: 0 0 0 1.5vw;
  }
}
@media screen and (max-width: 767px) {
  .header .global-nav {
    padding: 5% 10%;
  }
  .header .global-nav > li > a, .header .global-nav > li > span {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1rem 0.5rem 1rem 0;
    font-weight: 500;
  }
  .header .global-nav > li > a::after, .header .global-nav > li > span::after {
    content: "";
    width: 0.6rem;
    height: 0.6rem;
    border: solid currentColor;
    border-width: 1px 1px 0 0;
    transform: rotate(45deg);
  }
  .header .global-nav > li > a.pc, .header .global-nav > li > span.pc {
    display: none;
  }
  .header .global-nav > li > span::after {
    transform: rotate(135deg);
  }
  .header .global-nav > li > span.opened::after {
    transform: rotate(-45deg);
  }
  .header .global-nav > li .child.pc {
    display: none;
  }
  .header .global-nav > li .child > ul {
    padding-left: 1rem;
  }
  .header .global-nav > li .child > ul > li {
    padding-left: 2rem;
    border-left: solid 1px #004385;
  }
  .header .global-nav > li .child > ul > li span, .header .global-nav > li .child > ul > li a {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-right: 1.5rem;
  }
  .header .global-nav > li .child > ul > li span::after, .header .global-nav > li .child > ul > li a::after {
    content: "";
    width: 0.6rem;
    height: 0.6rem;
    border: solid currentColor;
    border-width: 1px 1px 0 0;
    transform: rotate(45deg);
  }
  .header .global-nav > li .child > ul > li span {
    padding: 1rem 1.5rem 1rem 0;
    font-weight: 500;
  }
  .header .global-nav > li .child > ul > li span::after {
    content: none;
    transform: rotate(135deg);
  }
  .header .global-nav > li .child > ul > li span.opened::after {
    transform: rotate(-45deg);
  }
  .header .global-nav > li .child > ul > li ul {
    padding-left: 2rem;
  }
  .header .global-nav > li .child > ul > li ul li {
    padding-bottom: 1rem;
  }
}

@media screen and (min-width: 768px) {
  body.top .nav--top::before,
  body.news .nav--news::before,
  body[class*=corporate-about] .nav--about::before,
  body.business .nav--business::before,
  body.corporate-csr .nav--csr::before,
  body.corporate-outline .nav--outline::before,
  body.recruit .nav--recruit::before,
  body.corporate-contact .nav--contact::before {
    bottom: 2rem !important;
    opacity: 1 !important;
  }
}

.footer {
  position: relative;
  z-index: 2;
  font-family: "Noto Sans JP", sans-serif;
}
.footer .global-nav {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  color: #ffffff;
}
.footer .global-nav > li {
  min-width: 13.3333333333%;
}
.footer .global-nav > li > *:not(ul) {
  position: relative;
  display: block;
  padding-bottom: 0.8rem;
  border-bottom: solid 1px #ffffff;
  font-size: 1.4rem;
  letter-spacing: 0.1em;
}
.footer .global-nav > li > *:not(ul)::before {
  content: "";
  position: absolute;
  bottom: -1px;
  left: 0;
  width: 2em;
  height: 0;
  border-bottom: solid 1px #4c7baa;
  transition: width 0.3s;
}
.footer .global-nav > li:hover > *:not(ul)::before {
  width: 100%;
}
.footer .global-nav > li ul {
  margin-top: 1.5rem;
}
.footer .global-nav > li ul li {
  margin-top: 0.8rem;
  font-size: 1.2rem;
}
.footer .global-nav > li ul li a:hover {
  text-decoration: underline;
}
@media screen and (max-width: 767px) {
  .footer .global-nav {
    flex-wrap: wrap;
    gap: 3rem 5%;
  }
  .footer .global-nav > li {
    width: 47.5%;
  }
}

/* ===========================================
    Local Nav
=========================================== */
.header-local .local-nav {
  display: flex;
  justify-content: center;
}
.header-local .local-nav li a {
  height: 5rem;
  padding: 0 1.5em;
  border-top: solid 0.3rem transparent;
  display: flex;
  align-items: center;
  transition: 0.3s;
}
body.en .header-local .local-nav li a {
  font-family: "Play", sans-serif;
  letter-spacing: 0.05em;
}
.header-local .local-nav li a:hover {
  border-top-color: #004385;
  background-color: #ffffff;
  color: #004385;
}

body.aerospace-top .nav--aerospace-top,
body.aerospace-about .nav--aerospace-about,
body.aerospace-strength .nav--aerospace-strength,
body[class*=aerospace-technical] .nav--aerospace-technical,
body.aerospace-base .nav--aerospace-base,
body.aerospace-contact .nav--aerospace-contact,
body.machinery-top .nav--machinery-top,
body.machinery-about .nav--machinery-about,
body.machinery-strength .nav--machinery-strength,
body[class*=machinery-technical] .nav--machinery-technical,
body.machinery-base .nav--machinery-base,
body.machinery-contact .nav--machinery-contact,
body.dp-top .nav--dp-top,
body.dp-about .nav--dp-about,
body[class*=dp-products] .nav--dp-products,
body.dp-base .nav--dp-base,
body.dp-contact .nav--dp-contact {
  border-top-color: #004385 !important;
  background-color: #ffffff;
  color: #004385;
}

@media screen and (min-width: 768px) {
  .footer-local .local-nav {
    display: flex;
  }
  .footer-local .local-nav > li {
    margin-right: 2rem;
    border-bottom: solid 1px #004385;
    display: flex;
    font-weight: 500;
    letter-spacing: 0.1em;
    color: #004385;
  }
  .footer-local .local-nav > li ul {
    display: flex;
  }
  .footer-local .local-nav > li ul li {
    margin-left: 2rem;
    font-weight: 300;
  }
  .footer-local .local-nav > li a {
    position: relative;
    display: block;
    padding-bottom: 1rem;
  }
  .footer-local .local-nav > li a::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 0;
    height: 0;
    border-bottom: solid 2px currentColor;
    transition: 0.2s;
  }
  .footer-local .local-nav > li a:hover::after {
    width: 100%;
  }
}
@media screen and (max-width: 767px) {
  .footer-local .local-nav {
    border-bottom: solid 1px #4c7baa;
    color: #004385;
  }
  .footer-local .local-nav > li > a, .footer-local .local-nav > li > span {
    display: block;
    padding: 1rem;
    border-top: solid 1px #4c7baa;
    font-weight: 700;
  }
  .footer-local .local-nav > li ul li a {
    display: block;
    padding: 1rem 2rem;
    border-top: solid 1px #b2b2b2;
  }
}

/* ===========================================
    Wrapper
=========================================== */
.wrapper {
  padding-top: 8rem;
}
@media screen and (max-width: 767px) {
  .wrapper {
    padding-top: 6rem !important;
  }
}
body.business .wrapper {
  padding-top: 13rem;
}

/* ===========================================
    Page Title
=========================================== */
.page-title {
  position: relative;
  background-color: #004385;
}
.page-title__image {
  width: 100%;
}
.page-title__image picture {
  display: block;
  width: 100%;
}
.page-title__image picture img {
  -o-object-fit: cover;
     object-fit: cover;
  width: 100%;
  height: max(60rem, 70vh - 8rem);
}
@media screen and (min-width: 768px) {
  body.business .page-title__image picture img {
    height: max(55rem, 70vh - 8rem - 5rem);
  }
}
.page-title__image picture img.size--l {
  height: max(70rem, 80vh - 8rem);
}
@media screen and (min-width: 768px) {
  body.business .page-title__image picture img.size--l {
    height: max(65rem, 80vh - 8rem - 5rem);
  }
}
.page-title__image figcaption {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
}
.page-title__textbox {
  height: clamp(230px, 30vw, 30vh);
  display: flex;
  justify-content: center;
  align-items: center;
}
.page-title__text {
  width: 90%;
  padding-left: 0.2em;
  text-align: center;
  font-size: 2.8rem;
  font-weight: 500;
  letter-spacing: 0.2em;
  color: #ffffff;
  text-shadow: 0 0 5px rgba(0, 0, 0, 0.8);
}
body.en .page-title__text {
  font-family: "Play", sans-serif;
  font-size: 3rem;
  letter-spacing: 0.1em;
}
.page-title__text .sub-text {
  display: block;
  text-align: center;
  font-size: 0.5em;
  font-weight: 400;
}
@media screen and (max-width: 767px) {
  .page-title__image picture img {
    height: max(200px, 45vh);
  }
  .page-title__image picture img.size--l {
    height: max(240px, 50vh);
  }
  .page-title__textbox {
    height: 14rem;
  }
  .page-title__text {
    padding-left: 0.1em;
    font-size: 2.2rem;
    letter-spacing: 0.1em;
  }
}

/* ===========================================
    Section
=========================================== */
.section {
  padding-top: 20rem;
}
.section:first-child {
  padding-top: 10rem;
}
.section[class*=bg--] {
  margin-top: 20rem;
  padding-top: 10rem;
}
.section[class*=bg--].mt-0 {
  margin-top: 0;
}
@media screen and (max-width: 767px) {
  .section {
    padding-top: 30vw;
  }
  .section:first-child {
    padding-top: 15vw;
  }
  .section[class*=bg--] {
    margin-top: 30vw;
    padding-top: 15vw;
  }
}

aside.section {
  position: relative;
  z-index: 2;
  padding-top: min(15rem, 15vw);
  background-color: #ffffff;
}
@media screen and (max-width: 767px) {
  aside.section {
    padding-top: 20vw;
  }
}

/* ===========================================
    News List
=========================================== */
.news-list {
  border-top: solid 1px #b2b2b2;
}
.news-list li a {
  min-height: 12rem;
  border-bottom: solid 1px #b2b2b2;
  display: flex;
  justify-content: space-between;
  align-items: center;
  transition: color 0.3s;
}
.news-list li a .date {
  width: 6em;
  margin-right: 3rem;
  font-family: "Play", sans-serif;
  font-weight: 700;
}
.news-list li a .category {
  width: 9em;
  margin-right: 3rem;
  font-weight: 700;
}
.news-list li a .category span {
  display: block;
}
.news-list li a .title {
  flex: 1;
  position: relative;
  padding: 1em 0 1em 2.5em;
}
.news-list li a .title::before {
  content: "\e900";
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  line-height: 1;
  font-family: "icomoon" !important;
  font-size: 1.4em;
  color: #b2b2b2;
  transition: color 0.3s;
}
.news-list li a:hover {
  color: #004385;
}
.news-list li a:hover .title::before {
  color: currentColor;
}
.news-list li a .thumb {
  width: min(20%, 26rem);
  height: 8rem;
  margin-left: 2em;
}
.news-list li a .thumb img {
  -o-object-fit: cover;
     object-fit: cover;
  width: 100%;
  height: 100%;
}
@media screen and (max-width: 767px) {
  .news-list li a {
    flex-wrap: wrap;
    min-height: initial;
    padding: 2em 0;
  }
  .news-list li a .date {
    width: 7em;
    margin: 0;
  }
  .news-list li a .category {
    width: calc(100% - 7em);
    margin: 0;
  }
  .news-list li a .category span {
    display: inline-block;
  }
  .news-list li a .category span:not(:last-child)::after {
    content: "/";
    margin: 0 0.5em;
  }
  .news-list li a .title {
    flex: none;
    width: 100%;
    padding: 0.5em 0;
  }
  .news-list li a .title::before {
    content: none;
  }
  .news-list li a .thumb {
    width: 100%;
    height: auto;
    margin: 0.5em auto 0;
  }
  .news-list li a .thumb img {
    height: 100%;
    max-height: 20rem;
  }
}

.news-list--biz {
  display: flow-root;
}
.news-list--biz dt {
  float: left;
  width: 10em;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-family: "Play", sans-serif;
  font-weight: 700;
  letter-spacing: 0.1em;
}
.news-list--biz dt .new {
  padding: 0 0.5em;
  background-color: #cc0000;
  font-size: 1.2rem;
  color: #ffffff;
}
.news-list--biz dd {
  padding-left: 12em;
}
.news-list--biz dd:not(:last-child) {
  margin-bottom: 1rem;
}
.news-list--biz dd a {
  position: relative;
  display: inline-block;
  padding-left: 2em;
  transition: color 0.3s;
}
.news-list--biz dd a::before {
  content: "\e900";
  position: absolute;
  top: 0.7em;
  left: 0;
  transform: translateY(-50%);
  line-height: 1;
  font-family: "icomoon" !important;
  font-size: 1.2em;
  color: #b2b2b2;
  transition: color 0.3s;
}
.news-list--biz dd a:hover {
  color: #004385;
}
.news-list--biz dd a:hover::before {
  color: currentColor;
}
@media screen and (max-width: 767px) {
  .news-list--biz dt {
    float: none;
    margin-bottom: 0.5em;
  }
  .news-list--biz dd {
    padding-left: 0;
  }
  .news-list--biz dd:not(:last-child) {
    margin-bottom: 2em;
  }
  .news-list--biz dd a {
    padding-left: 0;
  }
  .news-list--biz dd a::before {
    content: none;
  }
}

/* ===========================================
    Base List
=========================================== */
.base-list__item {
  margin-bottom: 3rem;
  display: flex;
  gap: 3rem;
}
.base-list__item .thumb {
  width: 28%;
}
.base-list__item .text {
  flex: 1;
  display: flow-root;
}
.base-list__item .address {
  float: left;
  max-width: calc(100% - 20rem);
  margin-bottom: 1em;
}
.base-list__item .gmap {
  float: right;
}
.base-list__item .tel {
  clear: both;
}
@media screen and (max-width: 767px) {
  .base-list__item {
    margin-bottom: 10vw;
    flex-direction: column;
    gap: 2rem;
  }
  .base-list__item:last-child {
    margin-bottom: 0;
  }
  .base-list__item .thumb {
    width: 100%;
  }
  .base-list__item .address {
    float: none;
    max-width: initial;
  }
  .base-list__item .gmap {
    float: none;
    margin-bottom: 1em;
  }
}
.base-list--ty-block > * {
  display: flex;
  flex-direction: column;
}
.base-list--ty-block .thumb {
  margin-bottom: 2rem;
}
.base-list--ty-block .address {
  margin-bottom: 1rem;
  flex-grow: 1;
}
.base-list--ty-block .address span {
  display: inline-block;
}
.base-list--ty-block .address span:first-child {
  margin-right: 1rem;
}
.base-list--ty-block .tel {
  margin-top: auto;
  margin-bottom: 2rem;
  font-weight: 500;
}

/* ===========================================
    Logo List / Client List
=========================================== */
.logo-list {
  justify-content: center;
  align-items: center;
}
.logo-list li img {
  width: 100%;
}
@media screen and (max-width: 767px) {
  .logo-list {
    gap: 3rem !important;
  }
  .logo-list li {
    width: calc((100% - 3rem) / 2) !important;
  }
}

.client-list {
  margin-top: min(5rem, 5vw);
}
.client-list li {
  margin-top: 0.5em;
  font-size: 1.6rem;
  font-weight: 500;
  color: #004385;
}
@media screen and (max-width: 767px) {
  .client-list li {
    margin-top: 0.25em;
    font-size: 1.5rem;
  }
}
.client-list__notes {
  width: 100%;
  font-size: 1.4rem;
}

table.client-list caption {
  caption-side: bottom;
  margin-top: 0.5em;
  padding: 0 3em;
}
@media screen and (max-width: 767px) {
  table.client-list caption {
    padding: 0;
  }
}
table.client-list caption span {
  font-size: 0.8em;
}
table.client-list td {
  padding: 0.25em 3em;
  font-size: 1.6rem;
  font-weight: 500;
  color: #004385;
}
@media screen and (max-width: 767px) {
  table.client-list td {
    display: block;
    padding: 0 0 0.5em;
  }
}

/* ===========================================
    Thumbnail List
=========================================== */
.thumb-list {
  gap: 6rem 3rem !important;
}
.thumb-list figure:not(:last-child) {
  margin-bottom: 1em;
}
.thumb-list figcaption {
  margin-top: 1em;
  font-weight: 700;
  color: #004385;
}
.thumb-list figcaption small {
  font-weight: 400;
}
@media screen and (max-width: 767px) {
  .thumb-list {
    gap: 10vw 0 !important;
  }
}

/* ===========================================
    Description List
=========================================== */
.dl-list--ty-a {
  display: flow-root;
  border-top: solid 1px #b2b2b2;
}
.dl-list--ty-a > dt {
  clear: both;
  float: left;
  padding: 2rem 2rem 2rem 0;
}
.dl-list--ty-a > dd {
  padding: 2rem 0 2rem min(18%, 20em);
  border-bottom: solid 1px #b2b2b2;
}
.dl-list--ty-b {
  display: grid;
  grid-template-columns: 15em 1fr;
  border-top: solid 1px #b2b2b2;
}
.dl-list--ty-b > dt {
  padding: 2rem 2rem 2rem 0;
  border-bottom: solid 1px #b2b2b2;
  font-weight: 700;
  color: #004385;
}
.dl-list--ty-b > dd {
  padding: 2rem 0;
  border-bottom: solid 1px #b2b2b2;
}
@media screen and (max-width: 767px) {
  .dl-list--ty-a > dt {
    float: none;
    padding: 2rem 0 0;
    color: #004385;
  }
  .dl-list--ty-a > dd {
    padding: 0.5rem 0 2rem;
  }
  .dl-list--ty-b {
    display: block;
  }
  .dl-list--ty-b > dt {
    padding: 2rem 0 0;
    border-bottom: none;
  }
  .dl-list--ty-b > dd {
    padding: 0.5em 0 2rem 0;
  }
}

/* ===========================================
    Half BLock
=========================================== */
.half-block {
  display: flex;
}
.half-block > * {
  width: 50%;
}
.half-block__image figure {
  position: relative;
  width: 100%;
  height: 100%;
}
.half-block__image figcaption {
  position: absolute;
  top: 4%;
  left: 2%;
  font-size: 1rem;
}
.half-block__image img {
  -o-object-fit: cover;
     object-fit: cover;
  width: 100%;
  height: 100%;
}
.half-block__text {
  display: flex;
  align-items: center;
}
.half-block__text .inner {
  width: min(68.75%, 66rem);
  margin-left: min(15.625%, 150px);
  padding: 5rem 0;
}
.half-block:nth-child(even) {
  flex-direction: row-reverse;
}
.half-block:nth-child(even) .half-block__text {
  justify-content: flex-end;
}
.half-block:nth-child(even) .half-block__text .inner {
  margin-right: min(15.625%, 150px);
}
@media screen and (max-width: 767px) {
  .half-block {
    display: block;
  }
  .half-block > * {
    width: 100%;
  }
  .half-block__text {
    display: block;
  }
  .half-block__text .inner {
    width: 80%;
    margin: 0 auto !important;
    padding: 7vw 0 10vw;
  }
}

/* ===========================================
    Tab BLock
=========================================== */
@keyframes tab-content {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
.tab-list > * {
  cursor: pointer;
}
.tab-list > * .banner figure img {
  filter: grayscale(1);
}
.tab-list > * .banner figure figcaption {
  background-color: rgba(0, 0, 0, 0.5);
  transition: background-color 0.3s;
}
.tab-list > * .banner figure figcaption > * {
  text-shadow: 0 0 10px black;
}
.tab-list > *:hover .banner figure img, .tab-list > *.active .banner figure img {
  filter: grayscale(0);
}
.tab-list > *:hover .banner figure figcaption, .tab-list > *.active .banner figure figcaption {
  background-color: rgba(0, 0, 0, 0);
}
.tab-list > *.active {
  cursor: default;
}

.tab-contents > * {
  display: none;
}
.tab-contents > *.show {
  display: block;
  animation-name: tab-content;
  animation-duration: 1s;
}
@media screen and (max-width: 767px) {
  .tab-contents > * {
    margin-top: -6rem;
    padding-top: 8rem;
  }
}

/* ===========================================
    Fadein
=========================================== */
.fadein, .header, .page-title, main {
  opacity: 0.01;
  transition: opacity 0.8s ease-out;
}
.fadein.visible, .header.visible, .page-title.visible, main.visible {
  opacity: 1;
}

.fadeinUp, .heading--lv01,
.heading--lv01 ~ * {
  opacity: 0.01;
  transform: translateY(10rem);
  transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}
.fadeinUp.visible, .heading--lv01.visible,
.heading--lv01 ~ *.visible {
  opacity: 1;
  transform: translateY(0px);
}

#application_list .fadeinUp, #application_list .heading--lv01,
#application_list .heading--lv01 ~ * {
  opacity: 1;
  transform: translateY(0px);
}

/* ===========================================
    技術実績 | 専門技術 | 航空宇宙産業
    /aerospace/technical/work/
=========================================== */
.work-list {
  border-top: solid 1px #000000;
}
.work-list > * {
  padding: 2.5rem 0;
  border-bottom: solid 1px #000000;
  display: flex;
  align-items: stretch;
}
.work-list > * > * {
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.work-list > * .title {
  width: 20%;
  padding: 2rem 2.5%;
  background-color: #004385;
  font-weight: 700;
  color: #ffffff;
}
.work-list > * .title .en {
  line-height: 1.2;
  font-family: "Play", sans-serif;
  font-size: 1.3em;
  letter-spacing: 0.1em;
}
.work-list > * .title .ja {
  margin-top: 1em;
}
.work-list > * .text {
  flex: 1;
  padding: 2rem 2.5%;
}
.work-list > * .text dl {
  display: flex;
  flex-wrap: wrap;
  gap: 1em;
}
.work-list > * .text dl dt {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 9rem;
  background-color: #004385;
  text-align: center;
  font-size: 0.9em;
  color: #ffffff;
}
.work-list > * .text dl dd {
  width: calc(100% - 9rem - 1em);
}
.work-list > * .image {
  width: 30%;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .work-list > * {
    flex-wrap: wrap;
  }
  .work-list > * .title {
    display: block;
    width: 100%;
    padding: 1rem 2rem;
  }
  .work-list > * .title .en {
    display: inline-block;
    margin: 0 1em 0 0;
  }
  .work-list > * .title .en br {
    display: none;
  }
  .work-list > * .title .ja {
    display: inline-block;
    margin: 0;
  }
  .work-list > * .text {
    padding: 0;
  }
  .work-list > * .image {
    padding-top: 1rem;
  }
}
@media screen and (max-width: 767px) {
  .work-list > * .text {
    flex: none;
    width: 100%;
    padding: 2rem 0 0;
    font-size: 0.9em;
  }
  .work-list > * .image {
    width: 100%;
    padding-top: 2rem;
  }
}/*# sourceMappingURL=style.css.map */