@charset "UTF-8";

header {
  height: 15.38461vw;
}
header.fixed {
  height: 15.38461vw;
  background-color: #FFF;
}
header .menu_trigger .menu_line span {
  background-color: #FFF;
}
header.fixed .menu_trigger .menu_line span,
header:has(.nav_global.active) .menu_trigger .menu_line span {
  background-color: #333;
}

#top {
  padding: 30vw 0;
}
#top .font_size_s {
  font-size: 3.75vw;
}
#top .font_size_m {
  font-size: 4vw;
}
#top .font_size_l {
  font-size: 7vw;
}
#top .font_size_xl {
  font-size: 6vw;
}
#top .line_02 {
  margin-top: 0vw;
}
#top .line_03 {
  margin-top: 2.5vw;
}
#top .line_04 {
  margin-top: 4vw;
}
#top .line_05 {
  margin-top: 1.5vw;
}
#top .copy .line_05 {
  padding: 2em 5vw;
}
#top .bg_top video {
  width: 640px;
  position: absolute;
  top: 60vw;
  left: 50%;
  transform: translate(-50%, -50%);
	opacity: 0.4;
}
.title_page {
  font-size: 7.3vw;
}

#message {
  padding: 8vw 0;
}
#message::before {
  top: -10vw;
  height: 10vw;
}
#message::after {
  bottom: -10vw;
  height: 10vw;
}
#message .text {
  padding: 8vw 0 4vw 0;
}
#message .text p {
  font-size: 3.75vw;
}

#service {
  padding: 18vw 0 12vw;
}
#service::after {
  bottom: -10vw;
  height: 10vw;
}
#service .list_service {
  gap: 18vw;
  padding-top: 10vw;
  counter-reset: service-num;
}
#service .list_service li {
  position: relative;
  gap: 0;
  counter-increment: service-num;
}
#service .list_service li:nth-child(odd),
#service .list_service li:nth-child(even) {
  flex-direction: column;
}
#service .list_service li .number span {
  font-size: 50px;
}
#service .list_service li .image {
  width: 100%;
}
#service .list_service li .image span {
  width: 74vw;
  margin-inline: auto;
}
#service .list_service li .image span::before {
  top: -6vw;
}
#service .list_service li:nth-child(odd) .image span::before {
  left: -3vw;
  transform: skewY(-5deg);
}
#service .list_service li:nth-child(even) .image span::before {
  right: -3vw;
  transform: skewY(5deg);
}
#service .list_service li .text {
  width: 100%;
}
#service .list_service li .text .number {
  text-align: center;
  font-size: 18vw;
  margin-bottom: .4em;
}
#service .list_service li .text h3 {
  display: flex;
  align-items: center;
  padding-bottom: .6em;
  font-size: 5.6vw;
}
#service .list_service li .text h3::before {
  content: counter(service-num, decimal-leading-zero);
  margin-right: 0.25em;
  color: #FFDF00;
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 200;
  font-style: normal;
  font-size: 11.733vw;
}
#service .list_service li .text h4 {
  font-size: 4.5vw;
}
#service .list_service li .text p {
  font-size: 3.75vw;
}

#culture {
  padding: 18vw 0 56vw;
}
#culture .copy {
  padding: 15vw 0 8vw;
  font-size: 5vw;
  letter-spacing: -0.05em;
}
#culture .inner {
  margin-bottom: 13.333vw;
}
#culture p {
  font-size: 3.75vw;
  text-align: left;
}
#culture .bnr {
  margin: 13.333vw auto 0;
  width: 90%;
}
#case {
  padding: 12vw 0 20vw;
}
#case .slider_case {
  margin: 12vw 0 20vw;
}
#case .slider_case .slide {
  width: 64vw;
  margin: 0 3vw;
}
#case .slider_case .slide a h3 {
  font-size: 2.8vw;
}
#case .slider_case .slide a p {
  font-size: 3.75vw;
}
#case::before {
    top: -80px;
    height: 80px;
}
.slick-prev,
.slick-next {
  width: 12vw;
  height: 12vw;
}
.slick-prev {
  left: 3vw;
}
.slick-next {
  right: 3vw;
}
.slick-prev:before,
.slick-next:before {
  width: 12vw;
  height: 12vw;
}
.slick-dotted.slick-slider {
  margin-bottom: 8vw;
}
.slick-dots {
  bottom: -8vw;
}
.slick-dots li {
  width: 2.5vw;
  height: 2.5vw;
  margin: 0 2vw;
}
.slick-dots li button {
  width: 2.5vw;
  height: 2.5vw;
}
.slick-dots li button:before {
  width: 2.5vw;
  height: 2.5vw;
}

#customers {
  padding-bottom: 12vw;
}
#customers .list_customers {
  gap: 5vw;
  width: 100%;
  margin: 10vw auto 0;
}
#customers .list_customers .slide {
  margin: 0 5.333vw;
}
#customers .list_customers img {
  max-width: 53.333vw;
  height: 21.333vw;
}

#company {
  padding: 12vw 0;
}
#company dl {
  margin-top: 8vw;
  font-size: 3.2vw;
}

#contact {
  background-position: left -30vw center;
  padding: 10vw 0 12vw;
}
#contact .flex {
  flex-direction: column;
  gap: 8vw;
  margin-top: 8vw;
}