@charset "utf-8";
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700&family=Poppins:wght@400;600;700&display=swap');
* {
  margin: 0;
  padding: 0;
}
html {
  overflow-y: scroll;
}
table {
  border-collapse: collapse;
}
img {
  border: none;
  vertical-align: top;
}
.clear {
  clear: both;
}
body {
  background: #F5F5F5 url("../images/body_line_pc.png");
  color: #272727;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 15px;
}
h3, h4, h5, h6 {
  letter-spacing: 0.02em;
}
header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 5000;
}
header.desktop {
  height: 100px;
}
header::before {
  content: '';
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #fff;
  transform-origin: center top;
  z-index: 0;
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}
#toppage header::before {
  transform: scaleY(0);
}
#toppage header.startActive::before {
  transform: scaleY(1);
}
.header_inner {
  height: 100px;
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 20px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.header_logo {
  width: 90px;
  position: relative;
  z-index: 5;
}
.header_logo img {
  width: 100%;
  height: auto;
}
.header_nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.header_nav > ul {
  width: 700px;
  display: flex;
  justify-content: center;
}
.header_nav > ul > li {
  list-style: none;
  width: 22%;
  height: 100px;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  cursor: pointer;
}
.header_nav li.nav4, .header_nav li.nav5 {
  width: 17%
}
.header_nav li::after {
  content: '';
  display: block;
  position: absolute;
  bottom: 0;
  left: calc(50% - 20px);
  width: 40px;
  height: 1px;
  background: rgba(255, 255, 255, 0);
}
#toppage .header_nav li::after {
  display: none;
}
#company .header_nav li.nav1::after {
  background: #F69602;
}
#business-summary .header_nav li.nav2::after {
  background: #F69602;
}
#service .header_nav li.nav3::after {
  background: #F69602;
}
#news .header_nav li.nav4::after {
  background: #F69602;
}
#recruitment .header_nav li.nav5::after {
  background: #F69602;
}
.header_nav li .en {
  font-family: 'Poppins', sans-serif;
  font-size: 14px;
  font-weight: 600;
}
.header_nav > ul > li > a {
  position: relative;
  display: inline-block;
  width: 100%;
  height: 100px;
  line-height: 100px;
  text-align: center;
  outline: none;
  will-change: transform;
}
.header_nav > ul > li > a > span {
  display: block;
  position: absolute;
  width: 100%;
  height: 100px;
  transform-style: preserve-3d;
  transition: transform 0.3s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: transform;
}
.rotatefront span:nth-child(1) {
  color: #000;
  transform: rotateX(0deg);
  transform-origin: 0 50% -25px;
}
#toppage .rotatefront span:nth-child(1) {
  color: #fff;
}
#toppage header.startActive .rotatefront span:nth-child(1) {
  color: #000;
}
.parentHover .rotatefront span:nth-child(1), .rotatefront:hover span:nth-child(1) {
  transform: rotateX(-90deg);
}
.rotatefront span:nth-child(2) {
  color: #F69602;
  transform: rotateX(90deg);
  transform-origin: 0 50% -25px;
}
.parentHover .rotatefront span:nth-child(2), .rotatefront:hover span:nth-child(2) {
  transform: rotateX(0deg);
}
.contact_btn {
  font-family: 'Poppins', sans-serif;
  font-size: 14px;
  font-weight: 600;
  margin-left: 20px;
}
.contact_btn a {
  width: 160px;
  height: 44px;
  display: flex;
  justify-content: center;
  align-items: center;
  background: #BBC5CE;
  box-sizing: border-box;
  color: #fff;
  text-decoration: none;
  border-radius: 40px;
  position: relative;
  transition: background 0.3s;
}
.contact_btn span {
  position: relative;
  display: inline-block;
}
.contact_btn span::after {
  content: '';
  display: block;
  width: 15px;
  height: 14px;
  background: url("../images/contact_btn_icon.png") no-repeat 0 0;
  background-size: 15px;
  position: absolute;
  top: calc(50% - 7px);
  left: -25px;
}
@media (hover: hover) {
  .contact_btn a:hover {
    background: #F69602;
    color: #fff;
  }
}
.nav1 .subnav, .nav2 .subnav, .nav3 .subnav, .nav5 .subnav {
  position: absolute;
  top: 100px;
  left: -15px;
  width: calc(100% + 30px);
  background: #384C57;
  display: none;
}
.subnav ul {
  width: 100%;
}
.subnav li {
  list-style: none;
}
.subnav ul li:last-child {
  border-bottom: none;
}
.subnav li {
  font-size: 11px;
  line-height: 1.5;
  position: relative;
}
.subnav li span.en {
  font-size: 14px;
}
.subnav li a {
  color: #BBC5CE;
  text-decoration: none;
  padding: 10px 15px;
  display: block;
  transition: color 0.3s;
  position: relative;
}
.subnav li a::before, .subnav li a::after {
  content: '';
  display: block;
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 1px;
}
.subnav li a::before {
  background: #2F3133;
}
.subnav li a::after {
  background: #fff;
  transition: transform 0.3s cubic-bezier(0.22, 1, 0.36, 1);
  transform-origin: left center;
  transform: scaleX(0);
}
.subnav li a:hover::after {
  transform: scaleX(1);
}
.subnav li a:hover {
  color: #fff;
}
.subnav ul li:last-child a::before {
  display: none;
}
/* ==== footer ==== */
.footer_tile_section {
  background: #f1efef;
  padding: 0 0 80px;
}
.footer_tile_flex {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 20px;
  display: flex;
  justify-content: space-between;
}
.footer_tile {
  width: calc(50% - 25px);
  height: 200px;
  cursor: pointer;
  position: relative;
  overflow: hidden;
  display: flex;
  justify-content: center;
  align-items: center;
  color: #fff;
  box-sizing: border-box;
  padding: 20px 50px;
}
.footer_tile::before {
  content: '';
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-repeat: no-repeat;
  background-position: center center;
  background-size: 110%;
  transition: background 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}
.footer_tile::after {
  content: '';
  display: block;
  position: absolute;
  top: 20px;
  left: 25px;
  width: 70px;
  height: 43px;
  background-repeat: no-repeat;
  background-position: center center;
  background-size: 100%;
  background-image: url("../images/footer_tile_logo.png");
}
.footer_tile.recruit::after {
  top: 20px;
  left: inherit;
  right: 25px;
}
.footer_tile:hover::before {
  background-size: 100%
}
.footer_tile.group::before {
  background-image: url("../images/footer_tile_group.jpg")
}
.footer_tile.recruit::before {
  background-image: url("../images/footer_tile_recruit.jpg")
}
@media(max-width: 960px) {
  .footer_tile_flex {
    display: block;
  }
  .footer_tile {
    width: 100%;
    height: 200px;
    padding: 20px;
    margin: 0 0 20px;
  }
}
@media(max-width: 640px) {
  .footer_tile::before {
    background-size: auto 110%;
    transition: background 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  }
  .footer_tile:hover::before {
    background-size: auto 100%;
  }
}
.footer_tile_inner {
  position: relative;
  z-index: 5;
  color: #fff;
  width: 100%;
}
.group .footer_tile_inner {
  text-align: center;
  width: 100%;
}
.recruit .footer_tile_inner {
  text-align: left;
}
.footer_tile.recruit {
  display: flex;
  justify-content: flex-start;
  align-items: center;
}
.footer_tile.group p, .footer_tile.recruit p {
  font-size: 18px;
  font-weight: 500;
  margin: 0 0 10px;
}
.footer_tile.group p span {
  position: relative;
  display: inline-block;
}
.footer_tile.group p span::after {
  content: '';
  display: block;
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 1px;
  background: #fff;
}
.footer_tile h4 {
  font-family: 'Poppins', sans-serif;
  font-size: 44px;
  font-weight: 600;
  line-height: 1;
}
.footer_tile .footer_tile_link {
  position: absolute;
  bottom: 20px;
  right: 95px;
  text-align: right;
  font-size: 13px;
}
.footer_tile_link a {
  color: #fff;
  position: relative;
  display: inline-block;
  text-decoration: none;
}
.footer_tile_link a::after {
  content: '';
  display: block;
  position: absolute;
  width: 16px;
  height: 16px;
  background: url("../images/icon_blank_wht.png") no-repeat 0 0;
  background-size: 13px;
  right: -75px;
  top: 5px;
}
.footer_tile_link a::before {
  content: '';
  display: block;
  position: absolute;
  top: 50%;
  left: -100px;
  width: 90px;
  height: 1px;
  background: #fff;
}
footer {
  background: #272727;
  color: #fff;
  padding: 60px 20px 20px;
}
footer p {
  line-height: 1.8;
  font-size: 13px;
}
footer a {
  color: #fff;
  text-decoration: none;
}
.footer_inner, .footer_bottom_inner {
  max-width: 1160px;
  margin: 0 auto;
}
.footer_inner {
  display: flex;
  justify-content: space-between;
}
.footer_inner_left {
  margin-right: 80px;
}
.footer_inner_right {
  flex: 1;
}
.footer_logo {
  width: 394px;
  margin-bottom: 45px;
}
.footer_logo img {
  width: 100%;
  height: auto;
}
.footer_left_upper {
  display: flex;
}
.footer_left_upper p:first-child {
  margin-right: 40px;
}
.footer_right_upper, .footer_right_bottom, .footer_right_bottom_left {
  display: flex;
}
.footer_right_upper {
  margin-bottom: 30px;
}
.footer_right_bottom {
  display: flex;
  justify-content: space-between;
  margin-bottom: 40px;
}
.footer_right_bottom .footer_item_hdr {
  white-space: nowrap;
  margin-right: 35px;
}
.footer_right_upper .footer_right_upper_item:first-child {
  width: 25%;
}
.footer_right_upper .footer_right_upper_item:nth-child(2) {
  width: 40%;
}
.footer_right_upper .footer_right_upper_item:nth-child(3) {
  width: 35%;
}
.footer_item_hdr {
  margin-bottom: 25px;
  cursor: pointer;
}
.footer_item_hdr h5 {
  font-family: 'Poppins', sans-serif;
  font-size: 15px;
  font-weight: 600;
  color: #B2C1C9;
}
.footer_item_hdr h6 {
  font-size: 12px;
  font-weight: 500;
}
.footer_item_hdr h5 a {
  color: #B2C1C9;
  text-decoration: none;
}
.footer_right_upper_item li {
  list-style: none;
  font-size: 12px;
  margin-bottom: 8px;
  position: relative;
}
.footer_right_upper_item ul {
  margin-left: 12px;
}
.footer_right_upper_item li::after {
  content: '';
  display: block;
  position: absolute;
  top: 50%;
  left: -12px;
  width: 6px;
  height: 1px;
  background: #fff;
}
.footer_bottom_right ul {
  display: flex;
}
.footer_bottom_right li {
  list-style: none;
  font-size: 11px;
  border-right: 1px solid #fff;
}
.footer_bottom_right ul li:last-child {
  border-right: none;
}
.footer_bottom_right li a {
  display: inline-block;
  padding: 0 8px;
}
.footer_bottom_inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.footer_bottom_left {
  width: 206px;
}
.footer_bottom_left img {
  width: 100%;
  height: auto;
}
.footer_left_bottom ul {
  display: flex;
}
.footer_left_bottom li {
  list-style: none;
  width: 20px;
  margin-right: 5px;
}
.footer_left_bottom li img {
  width: 100%;
  height: auto;
}
.copyright {
  max-width: 1160px;
  margin: 0 auto;
  padding: 0 20px;
  color: #A5A5A5;
  text-align: right;
  font-size: 12px;
  padding-top: 15px;
  font-family: 'Poppins', sans-serif;
  font-weight: 400;
}
.footer_info {
  background: #f1efef;
  padding: 80px 20px;
}
.footer_bnr_inner {
  max-width: 1200px;
  margin: 0 auto;
}
@media(min-width: 961px) {
  .footer_bnr_sp {
    display: none;
  }
}
@media(max-width: 960px) {
  .footer_bnr_pc {
    display: none;
  }
  .footerBnrSP {
    padding-bottom: 20px !important;
  }
  .footerBnrSP ul {
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
  }
  .footerBnrSP li {
    list-style: none;
    width: calc(50% - 5px);
    margin: 0 0 10px;
  }
}
.pagetop_scroll_item {
  position: fixed;
  right: 10px;
  bottom: 50px;
  z-index: 1000;
  height: 200px;
  display: none;
  cursor: pointer;
}
.pagetop_scroll {
  color: #1e1e1e;
  transition: bottom 0.4s cubic-bezier(0.16, 1, 0.3, 1);
  position: relative;
  top: 150px;
}
.pagetop_scroll p {
  font-family: 'Poppins', sans-serif;
  font-size: 16px;
  font-weight: 600;
  transform: rotate(90deg);
}
.pagetop_scroll .pagetop_scroll_bar {
  width: 1px;
  height: 200px;
  background: #1e1e1e;
  position: absolute;
  left: 34px;
  top: -283px;
  z-index: 2000;
  transform-origin: center bottom;
  transform: scaleY(0);
  animation: pageTopScroll 0.8s ease infinite;
  animation-direction: alternate;
}
.pagetop_scroll::after {
  content: '';
  display: block;
  height: 1px;
  width: 45px;
  background: #1e1e1e;
  position: absolute;
  top: -49px;
  left: 10px;
  transform: rotate(-45deg)
}
.pagetop_scroll_item.footerFixed {
  bottom: 240px;
}
.pagetop_scroll.footerFixed {
  color: #fff;
}
.pagetop_scroll.footerFixed .pagetop_scroll_bar, .pagetop_scroll.footerFixed::after {
  background: #fff;
}
@media(max-width: 768px) {
  .hero_scroll p, .pagetop_scroll p {
    font-size: 12px !important;
  }
  .pagetop_scroll::after {
    width: 32px;
  }
  .pagetop_scroll_item {
    right: 0px;
    bottom: 150px;
    height: 70px;
  }
  .pagetop_scroll .pagetop_scroll_bar {
    height: 100px;
    left: 25px;
    top: -164px;
  }
  .pagetop_scroll::after {
    top: -40px;
    left: 10px;
  }
}
@keyframes pageTopScroll {
  0%, 15% {
    transform: scale(0);
    opacity: 0;
  }
  30% {
    transform: scale(0);
    opacity: 1;
  }
  80% {
    transform: scale(1);
    opacity: 1;
  }
  100% {
    transform: scale(1);
    opacity: 1;
  }
}
/* ==== // footer ==== */
@media(min-width: 769px) {
  br.spbr {
    display: none;
  }
}
@media(max-width: 768px) {
  br.pcbr {
    display: none;
  }
}