@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Funnel+Sans:ital,wght@0,300..800;1,300..800&family=Noto+Sans+JP:wght@100..900&family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Cinzel:wght@400..900&family=Roboto+Mono:ital,wght@0,100..700;1,100..700&display=swap");
@supports (-webkit-touch-callout: none) {
  html {
    height: -webkit-fill-available;
  }
  body {
    min-height: 100vh;
    height: -webkit-fill-available;
  }
}
html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  padding: 0;
  position: relative;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-style: normal;
  background-color: #ffffff;
  color: #1a1a1a;
}

img {
  max-width: 100%;
  height: auto;
  vertical-align: middle;
  font-style: italic;
  background-repeat: no-repeat;
  background-size: cover;
  shape-margin: 0.75rem;
}

input,
button,
textarea,
select {
  /*  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  border: none;*/
}

a {
  text-decoration: none;
}

* {
  box-sizing: border-box;
}

.post,
.page {
  margin: 0;
}

.c-container {
  width: min(100vw - 2rem, 1280px);
  margin: 0 auto;
  position: relative;
}
.c-container-narrow {
  width: min(100vw - 2rem, 1024px);
  margin: 0 auto;
  position: relative;
}

.c-btn-primary, .c-btn-primary:visited {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  white-space: nowrap;
  text-decoration: none !important;
  background-color: #151f2b;
  color: #ffffff;
  padding: 0.75rem 3rem;
  border-radius: 2rem;
  gap: 1rem;
  position: relative;
}
.c-btn-primary:after, .c-btn-primary:visited:after {
  content: "";
  width: 24px;
  height: 24px;
  position: relative;
  border-radius: 12px;
  background-image: url("../images/icon_arrow.svg");
  background-size: 75%;
  background-repeat: no-repeat;
  background-position: center;
  transition: transform 0.5s cubic-bezier(0.68, -0.55, 0.265, 1.55);
}
.c-btn-primary:before, .c-btn-primary:visited:before {
  content: "";
  width: 24px;
  height: 24px;
  position: absolute;
  border-radius: 12px;
  right: 3rem;
  top: calc(50% - 12px);
  z-index: 10;
  border: 1px solid rgba(255, 255, 255, 0.5);
  transition: transform 0.5s cubic-bezier(0.77, 0, 0.175, 1);
}
.c-btn-primary:hover, .c-btn-primary:visited:hover {
  color: #ffffff;
}
.c-btn-primary:hover:after, .c-btn-primary:visited:hover:after {
  transform: translateX(5px);
}
.c-btn-primary:hover:before, .c-btn-primary:visited:hover:before {
  transform: scale(0);
}
.c-btn-primary.small, .c-btn-primary:visited.small {
  padding: 0.5rem 2rem;
  font-size: 0.875rem;
}
.c-btn-primary.small:before, .c-btn-primary:visited.small:before {
  right: 2rem;
}
.c-btn-back, .c-btn-back:visited {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  white-space: nowrap;
  text-decoration: none !important;
  background-color: #151f2b;
  color: #ffffff;
  padding: 0.5rem 2rem;
  font-size: 0.875rem;
  border-radius: 2rem;
  gap: 1rem;
  position: relative;
}
.c-btn-back:before, .c-btn-back:visited:before {
  content: "";
  width: 24px;
  height: 24px;
  position: relative;
  border-radius: 12px;
  background-image: url("../images/icon_arrow.svg");
  background-size: 75%;
  background-repeat: no-repeat;
  background-position: center;
  transform: translateX(0) rotate(180deg);
  transition: transform 0.5s cubic-bezier(0.68, -0.55, 0.265, 1.55);
}
.c-btn-back:after, .c-btn-back:visited:after {
  content: "";
  width: 24px;
  height: 24px;
  position: absolute;
  border-radius: 12px;
  left: 2rem;
  top: calc(50% - 12px);
  z-index: 10;
  border: 1px solid rgba(255, 255, 255, 0.5);
  transition: transform 0.5s cubic-bezier(0.77, 0, 0.175, 1);
}
.c-btn-back:hover, .c-btn-back:visited:hover {
  color: #ffffff;
}
.c-btn-back:hover:before, .c-btn-back:visited:hover:before {
  transform: translateX(-5px) rotate(180deg);
}
.c-btn-back:hover:after, .c-btn-back:visited:hover:after {
  transform: scale(0);
}

.c-scroll {
  position: relative;
  overflow: hidden;
}
.c-scroll.slide-left {
  color: rgba(21, 31, 43, 0);
  position: relative;
  transition: color 0.1s 0.3s cubic-bezier(0.785, 0.135, 0.15, 0.86);
}
.c-scroll.slide-left.active {
  color: #151f2b;
}
.c-scroll.slide-left.active:after {
  animation: title-slide 0.5s forwards cubic-bezier(0.785, 0.135, 0.15, 0.86);
}
.c-scroll.slide-left:after {
  position: absolute;
  top: 0;
  left: 0;
  right: inherit;
  content: "";
  width: 0%;
  height: 100%;
  background-color: #151f2b;
}
.c-scroll.fade-in {
  opacity: 0;
  transition: opacity 0.5s 0.5s cubic-bezier(0.445, 0.05, 0.55, 0.95);
}
.c-scroll.fade-in.active {
  opacity: 1;
}
.c-scroll.slide-up p {
  transform: translateY(100%);
  transition: transform 0.5s cubic-bezier(0.47, 0, 0.745, 0.715);
}
.c-scroll.slide-up.active p {
  transform: translateY(0);
}
.c-scroll:has(> img) {
  position: relative;
}
.c-scroll:has(> img) img {
  transform: translateX(-100%);
  transition: transform 0.5s cubic-bezier(0.39, 0.575, 0.565, 1);
}
.c-scroll:has(> img):after {
  content: "";
  position: absolute;
  display: block;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background-color: white;
  transition: width 0.5s cubic-bezier(0.47, 0, 0.745, 0.715);
}
.c-scroll:has(> img).active img {
  transform: translateX(0);
}
.c-scroll:has(> img).active:after {
  width: 0;
}
.c-scroll:has(> img).reverse img {
  transform: translateX(100%);
}
.c-scroll:has(> img).reverse:after {
  left: inherit;
  right: 0;
}
.c-scroll:has(> img).reverse.active img {
  transform: translateX(0);
}

@keyframes title-slide {
  0% {
    width: 0;
  }
  50% {
    width: 100%;
  }
  100% {
    transform: translateX(100%);
  }
}
.p-header {
  width: 100%;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 400;
  transform: translateY(0);
  transition: transform 0.5s cubic-bezier(0.165, 0.84, 0.44, 1);
}
.p-header.scrolled {
  transform: translateY(32px);
}
.p-header-flex {
  display: flex;
  align-items: center;
  justify-content: space-between;
  max-width: calc(1280px - 4rem);
  margin: 0 auto;
}
.p-header-nav {
  background-color: #151f2b;
  padding: 1rem 1.5rem;
  width: 100%;
  border-radius: 0;
  transition: width 0.5s cubic-bezier(0.165, 0.84, 0.44, 1), border-radius 0.5s cubic-bezier(0.165, 0.84, 0.44, 1);
  margin: 0 auto;
}
.scrolled .p-header-nav {
  width: min(100vw - 2rem, 1280px);
  border-radius: 8px;
}
.p-header-nav p {
  margin: 0;
  padding: 0;
}
.p-header-nav a,
.p-header-nav a:visited {
  font-family: "Roboto Mono", monospace;
  font-weight: 400;
  font-style: normal;
  color: #ffffff;
}
.p-header-nav-pc {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
  gap: 2rem;
  font-size: 0.875rem;
}
@media screen and (max-width:991px) {
  .p-header-nav-pc {
    display: none;
  }
}
.p-header-nav-pc a,
.p-header-nav-pc a:visited {
  position: relative;
}
.p-header-nav-pc a.fx-random,
.p-header-nav-pc a:visited.fx-random {
  display: inline-block;
  font-weight: bold;
  cursor: pointer;
}
.p-header-nav-pc a:after,
.p-header-nav-pc a:visited:after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -2px;
  width: 0;
  height: 1px;
  background-color: #ffffff;
  transition: width 0.25s cubic-bezier(0.86, 0, 0.07, 1);
}
.p-header-nav-pc a:hover:after,
.p-header-nav-pc a:visited:hover:after {
  width: 100%;
}
.p-header-nav-sp {
  width: 100%;
  height: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  transition: height 0.25s cubic-bezier(0.23, 1, 0.32, 1);
}
@media screen and (min-width:992px) {
  .p-header-nav-sp {
    display: none;
  }
}
.p-header-nav-sp ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  align-items: center;
  font-family: "Roboto Mono", monospace;
  font-weight: 400;
  font-style: normal;
  font-size: clamp(1rem, 5vw, 2rem);
}
.p-header-nav-sp ul li {
  opacity: 0;
  transform: translateX(-30px);
}
.p-header:has(input[type=checkbox]:checked) {
  height: inherit;
}
.p-header:has(input[type=checkbox]:checked) .p-header-nav-sp {
  height: 50vh;
}
.p-header:has(input[type=checkbox]:checked) .p-header-nav-sp ul li {
  transition: all 0.25s 0.25s cubic-bezier(0.445, 0.05, 0.55, 0.95);
  opacity: 1;
  transform: translateX(0px);
}
.p-header:has(input[type=checkbox]:checked) .p-header-nav-sp ul li:first-child {
  transition-delay: 0.15s;
}
.p-header:has(input[type=checkbox]:checked) .p-header-nav-sp ul li:nth-child(2) {
  transition-delay: 0.2s;
}
.p-header:has(input[type=checkbox]:checked) .p-header-nav-sp ul li:nth-child(3) {
  transition-delay: 0.25s;
}
.p-header:has(input[type=checkbox]:checked) .p-header-nav-sp ul li:nth-child(4) {
  transition-delay: 0.3s;
}
.p-header:has(input[type=checkbox]:checked) .p-header-nav-sp ul li:nth-child(5) {
  transition-delay: 0.35s;
}
.p-header:has(input[type=checkbox]:checked) .p-header-nav-sp ul li:nth-child(6) {
  transition-delay: 0.4s;
}
.p-header-logo {
  width: 40px;
}
.p-header-logo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-header-toggle {
  padding: 0;
  margin: 0;
  position: relative;
  z-index: 300;
  width: 36px;
  height: 36px;
  display: block;
  cursor: pointer;
}
@media screen and (min-width:992px) {
  .p-header-toggle {
    display: none;
  }
}
.p-header-toggle span {
  display: inline-block;
  transition: all 0.4s;
  position: absolute;
  left: 0;
  width: 36px;
  height: 3px;
  border-radius: 2px;
  background-color: #ffffff;
}
.p-header-toggle span:nth-of-type(1) {
  top: 6px;
  animation: menu-open01 0.5s forwards cubic-bezier(0.075, 0.82, 0.165, 1);
}
.p-header-toggle span:nth-of-type(2) {
  top: 16px;
  transition: all 0.25s 0.25s;
  opacity: 1;
}
.p-header-toggle span:nth-of-type(3) {
  top: 26px;
  animation: menu-open02 0.5s forwards cubic-bezier(0.075, 0.82, 0.165, 1);
}
.p-header input[type=checkbox] {
  display: none !important;
}
.p-header input[type=checkbox]:checked + label span:nth-of-type(1) {
  animation: menu-close01 0.5s forwards cubic-bezier(0.075, 0.82, 0.165, 1);
}
.p-header input[type=checkbox]:checked + label span:nth-of-type(2) {
  opacity: 0;
}
.p-header input[type=checkbox]:checked + label span:nth-of-type(3) {
  animation: menu-close02 0.5s forwards cubic-bezier(0.075, 0.82, 0.165, 1);
}
@media screen and (min-width:992px) {
  .p-header input[type=checkbox] {
    display: none;
  }
}
@media screen and (min-width:992px) {
  .p-header label {
    display: none;
  }
}

@keyframes menu-open01 {
  0% {
    transform: translateY(10px) rotate(45deg);
  }
  50% {
    transform: translateY(10px) rotate(0);
  }
  100% {
    transform: translateY(0) rotate(0);
  }
}
@keyframes menu-open02 {
  0% {
    transform: translateY(-10px) rotate(-45deg);
  }
  50% {
    transform: translateY(-10px) rotate(0);
  }
  100% {
    transform: translateY(0) rotate(0);
  }
}
@keyframes menu-close01 {
  0% {
    transform: translateY(0) rotate(0);
  }
  50% {
    transform: translateY(10px) rotate(0);
  }
  100% {
    transform: translateY(10px) rotate(45deg);
  }
}
@keyframes menu-close02 {
  0% {
    transform: translateY(0) rotate(0);
  }
  50% {
    transform: translateY(-10px) rotate(0);
  }
  100% {
    transform: translateY(-10px) rotate(-45deg);
  }
}
@keyframes slide-down {
  0% {
    transform: translateY(-200px);
  }
  100% {
    transform: translateY(0);
  }
}
.p-footer {
  width: 100%;
  background-color: #151f2b;
  padding: 5rem 0;
  color: #ffffff;
  position: relative;
  z-index: 100;
}
.p-footer a,
.p-footer a:visited {
  transition: opacity 0.25s cubic-bezier(0.86, 0, 0.07, 1);
  opacity: 1;
}
.p-footer a:hover,
.p-footer a:visited:hover {
  opacity: 0.5;
}
.p-footer-flex {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
@media screen and (max-width:991px) {
  .p-footer-flex {
    flex-direction: column-reverse;
  }
}
.p-footer-id {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin: 0 1rem;
}
.p-footer-logo {
  width: 120px;
}
.p-footer-logo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-footer-copyright {
  font-size: 0.75rem;
}
@media screen and (max-width:991px) {
  .p-footer-nav {
    width: 100%;
    padding: 0 1rem;
  }
}
.p-footer-nav nav {
  display: flex;
  gap: 2rem;
  margin-bottom: 2rem;
}
@media screen and (max-width:991px) {
  .p-footer-nav nav {
    flex-direction: column;
    gap: 1rem;
  }
}
.p-footer-nav nav h4 {
  font-weight: 400;
  font-size: 1rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.5);
  margin: 0.5rem 0;
  padding: 0 1rem 0.25rem 0;
}
.p-footer-nav nav ul {
  margin: 0;
  font-size: 0.875rem;
  padding: 0 0 0 1.5rem;
}
.p-footer-nav nav ul li {
  line-height: 2;
}
.p-footer-nav nav a,
.p-footer-nav nav a:visited {
  color: #ffffff;
}
.p-footer-privacy {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  gap: 2rem;
  font-size: 0.75rem;
}
@media screen and (max-width:991px) {
  .p-footer-privacy {
    margin-bottom: 3rem;
  }
}
.p-footer-privacy a,
.p-footer-privacy a:visited {
  color: #ffffff;
}

.p-main {
  width: 100%;
  position: relative;
  z-index: 100;
}
.home .p-main {
  overflow: hidden;
}

.p-top-kv {
  width: 100%;
  aspect-ratio: 1920/1080;
  position: fixed;
  top: 77px;
  left: 0;
  z-index: 1;
}
@media screen and (max-width:991px) {
  .p-top-kv {
    aspect-ratio: 6/5;
  }
}
@media screen and (min-width:1728px) {
  .p-top-kv {
    aspect-ratio: inherit;
    height: 90vh;
  }
}
.p-top-kv video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-top-kv-mask {
  width: 100%;
  aspect-ratio: 1920/1080;
  position: fixed;
  top: 77px;
  left: 0;
  z-index: 2;
  backdrop-filter: blur(0px);
}
@media screen and (max-width:991px) {
  .p-top-kv-mask {
    aspect-ratio: 6/5;
  }
}
@media screen and (min-width:1728px) {
  .p-top-kv-mask {
    aspect-ratio: inherit;
    height: 90vh;
  }
}
.p-top-kv-mask-2 {
  width: 100%;
  aspect-ratio: 1920/1080;
  position: fixed;
  top: 77px;
  left: 0;
  z-index: 3;
  opacity: 0;
  background-color: #ffffff;
}
@media screen and (max-width:991px) {
  .p-top-kv-mask-2 {
    aspect-ratio: 6/5;
  }
}
@media screen and (min-width:1728px) {
  .p-top-kv-mask-2 {
    aspect-ratio: inherit;
    height: 90vh;
  }
}
.p-top-contact {
  background-color: #ffffff;
  padding: 4rem 0;
}
.p-top-contact-box {
  display: block;
  padding: 2rem;
  background-color: #151f2b;
  border-radius: 8px;
  color: #ffffff;
}
@media screen and (max-width:991px) {
  .p-top-contact-box {
    padding: 1rem 1rem 2rem;
  }
}
.p-top-contact-box > p {
  text-align: center;
}
@media screen and (max-width:991px) {
  .p-top-contact-box > p {
    font-size: 0.875rem;
  }
}
.p-top-contact-flex {
  width: 100%;
  display: flex;
  justify-content: space-around;
}
@media screen and (max-width:991px) {
  .p-top-contact-flex {
    flex-direction: column;
    gap: 0.5rem;
  }
}
.p-top-contact-flex div {
  width: 50%;
  text-align: center;
}
@media screen and (max-width:991px) {
  .p-top-contact-flex div {
    width: 100%;
  }
}
@media screen and (min-width:992px) {
  .p-top-contact-flex div:first-child {
    border-right: 1px solid rgba(255, 255, 255, 0.2);
  }
}
.p-top-contact-flex a,
.p-top-contact-flex a:visited {
  font-size: 2rem;
  color: #ffffff;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.5rem;
  font-family: "Roboto Mono", monospace;
  font-weight: 400;
  font-style: normal;
}
.p-top-contact-flex a:before,
.p-top-contact-flex a:visited:before {
  content: "";
  width: 2rem;
  height: 2rem;
  display: block;
  background-repeat: no-repeat;
  background-size: contain;
}
.p-top-contact-flex a[href*=contact]:before,
.p-top-contact-flex a:visited[href*=contact]:before {
  background-image: url("../images/icon_mail.svg");
}
.p-top-contact-flex a[href*=tel]:before,
.p-top-contact-flex a:visited[href*=tel]:before {
  background-image: url("../images/icon_call.svg");
}
.p-top-contact-flex a[href*=tel] + p,
.p-top-contact-flex a:visited[href*=tel] + p {
  line-height: 1;
  margin: 0;
  padding: 0;
}
.p-top-contents {
  background-color: #ffffff;
  margin-top: calc(56.25% + 77px);
}
@media screen and (max-width:991px) {
  .p-top-contents {
    margin-top: calc(83% + 77px);
  }
}
.p-top-contents h2 {
  color: #151f2b;
}
.p-top-mission {
  position: relative;
  z-index: 100;
  padding: 5rem 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6rem;
}
@media screen and (max-width:991px) {
  .p-top-mission {
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
  }
}
.p-top-mission h2 {
  flex-shrink: 0;
  font-family: "Poppins", serif;
  font-weight: 400;
  font-style: normal;
  font-weight: 600;
  font-size: 3rem;
  line-height: 1;
  margin: 0 0 1.5rem;
}
.p-top-mission p {
  line-height: 2;
}
.p-top-mission .c-btn-primary {
  margin-top: 2rem;
}
.p-top-service {
  position: relative;
  z-index: 100;
  background-color: rgba(21, 31, 43, 0.2);
  padding: 5rem 0;
}
.p-top-service h2 {
  display: inline-block;
  margin: 0 0 1.5rem;
  font-family: "Poppins", serif;
  font-weight: 400;
  font-style: normal;
  font-weight: 600;
  font-size: 3rem;
  line-height: 1;
}
.p-top-service-lead p {
  color: #151f2b;
  font-size: 2.5rem;
  font-weight: 700;
  line-height: 1.5;
  margin: 0 0 0.5rem;
}
@media screen and (max-width:991px) {
  .p-top-service-lead p {
    font-size: 7vw;
  }
}
.p-top-service-lead .slide-up:nth-child(1) p {
  transition-delay: 0.3s;
}
.p-top-service-lead .slide-up:nth-child(2) p {
  transition-delay: 0.6s;
}
.p-top-service-lead .slide-up:nth-child(3) p {
  transition-delay: 0.9s;
  margin-bottom: 0;
}
.p-top-service .c-btn-primary {
  margin-top: 3rem;
}
.p-top-company {
  position: relative;
  z-index: 100;
  padding: 5rem 0;
}
.p-top-company h2 {
  display: inline-block;
  margin: 0 0 1.5rem;
  font-family: "Poppins", serif;
  font-weight: 400;
  font-style: normal;
  font-weight: 600;
  font-size: 3rem;
  line-height: 1;
}
.p-top-company h3 {
  font-size: 1.5rem;
  margin: 0 0 0.5rem;
  color: #151f2b;
}
.p-top-company p {
  margin: 0 0 1.5rem;
}
.p-top-company-flex {
  display: flex;
  align-items: center;
  gap: 3rem;
}
@media screen and (max-width:991px) {
  .p-top-company-flex {
    flex-direction: column;
    align-items: flex-start;
  }
}
.p-top-company-image {
  width: calc(50vw - 1.5rem);
  height: 480px;
  border-radius: 0 8px 8px 0;
  display: block;
  overflow: hidden;
}
.p-top-company-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
@media screen and (max-width:991px) {
  .p-top-company-image {
    width: calc(100vw - 1rem);
    height: 30vh;
  }
}
.p-top-company-text {
  width: calc(50vw - 1.5rem - (100vw - 1280px) / 2);
}
@media screen and (max-width:991px) {
  .p-top-company-text {
    width: calc(100vw - 2rem);
    margin: 0 auto;
  }
}
.p-top-recruit {
  position: relative;
  z-index: 100;
  padding: 0 0 5rem 0;
}
.p-top-recruit h2 {
  display: inline-block;
  margin: 0 0 1.5rem;
  font-family: "Poppins", serif;
  font-weight: 400;
  font-style: normal;
  font-weight: 600;
  font-size: 3rem;
  line-height: 1;
}
.p-top-recruit h3 {
  font-size: 1.5rem;
  margin: 0 0 0.5rem;
  color: #151f2b;
}
.p-top-recruit p {
  margin: 0 0 1.5rem;
}
.p-top-recruit-flex {
  display: flex;
  flex-direction: row-reverse;
  align-items: center;
  gap: 3rem;
}
@media screen and (max-width:991px) {
  .p-top-recruit-flex {
    flex-direction: column;
    align-items: flex-end;
  }
}
.p-top-recruit-image {
  width: calc(50vw - 1.5rem);
  height: 480px;
  border-radius: 8px 0 0 8px;
  display: block;
  overflow: hidden;
}
.p-top-recruit-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
@media screen and (max-width:991px) {
  .p-top-recruit-image {
    width: calc(100vw - 1rem);
    height: 30vh;
  }
}
.p-top-recruit-text {
  width: calc(50vw - 1.5rem - (100vw - 1280px) / 2);
}
@media screen and (max-width:991px) {
  .p-top-recruit-text {
    width: calc(100vw - 2rem);
    margin: 0 auto;
  }
}
.p-top-news {
  position: relative;
  z-index: 100;
  background-color: rgba(21, 31, 43, 0.2);
  padding: 3rem 0;
}
.p-top-news .c-container {
  display: flex;
  align-items: center;
  gap: 5rem;
  overflow: hidden;
}
@media screen and (max-width:991px) {
  .p-top-news .c-container {
    flex-direction: column;
    align-items: flex-start;
    gap: 2rem;
  }
}
@media screen and (max-width:991px) {
  .p-top-news .p-top-news-title {
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
  }
}
.p-top-news h2 {
  display: block;
  margin: 0 0 1.5rem;
  font-family: "Poppins", serif;
  font-weight: 400;
  font-style: normal;
  font-weight: 600;
  font-size: 3rem;
  line-height: 1;
}
@media screen and (max-width:991px) {
  .p-top-news h2 {
    margin: 0;
  }
}
.p-top-news-items {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.p-top-news-item {
  display: flex;
  gap: 1rem;
  align-items: center;
  color: #1a1a1a;
}
.p-top-news-item:visited, .p-top-news-item:hover {
  color: #1a1a1a;
}
.p-top-news-item:visited .p-top-news-item__image img, .p-top-news-item:hover .p-top-news-item__image img {
  transform: scale(1.1);
}
.p-top-news-item__image {
  width: 160px;
  aspect-ratio: 16/10;
  background-image: url("../images/cover_news.png");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  display: block;
  flex-shrink: 0;
  border: 1px solid rgba(255, 255, 255, 0.75);
  overflow: hidden;
}
.p-top-news-item__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.25s cubic-bezier(0.39, 0.575, 0.565, 1);
}
.p-top-news-item__text time {
  font-size: 0.875rem;
}
.p-top-news-item__text p {
  margin: 0.5rem 0 0;
  position: relative;
}
.p-top-news-item__text p:after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -2px;
  width: 0;
  height: 1px;
  background-color: #1a1a1a;
  transition: width 0.25s cubic-bezier(0.86, 0, 0.07, 1);
}
.p-top-news-item:hover p:after {
  width: 100%;
}

.p-gear {
  width: 100%;
  height: 1300px;
  max-width: 100vw;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
  overflow: hidden;
}
.home .p-gear, .page-template-page-aboutus .p-gear, .p-service .p-gear {
  height: 2500px;
}
.p-gear img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-gear-group, .p-gear-group-04, .p-gear-group-03, .p-gear-group-02, .p-gear-group-01 {
  width: 600px;
  aspect-ratio: 1/1;
  position: absolute;
  opacity: 0.1;
}
@media screen and (max-width:991px) {
  .p-gear-group, .p-gear-group-04, .p-gear-group-03, .p-gear-group-02, .p-gear-group-01 {
    width: 300px;
  }
}
.p-gear-group img, .p-gear-group-04 img, .p-gear-group-03 img, .p-gear-group-02 img, .p-gear-group-01 img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-gear-group-01 {
  top: 100px;
  left: -200px;
}
@media screen and (max-width:991px) {
  .p-gear-group-01 {
    left: -100px;
  }
}
@media screen and (max-width:575px) {
  .p-gear-group-01 {
    left: -150px;
  }
}
.p-gear-group-02 {
  top: 700px;
  right: -200px;
}
@media screen and (max-width:991px) {
  .p-gear-group-02 {
    right: -100px;
  }
}
@media screen and (max-width:575px) {
  .p-gear-group-02 {
    right: -150px;
  }
}
.p-gear-group-03 {
  top: 1300px;
  left: -200px;
}
@media screen and (max-width:991px) {
  .p-gear-group-03 {
    left: -100px;
  }
}
@media screen and (max-width:575px) {
  .p-gear-group-03 {
    left: -150px;
  }
}
.p-gear-group-04 {
  top: 1900px;
  right: -200px;
}
@media screen and (max-width:991px) {
  .p-gear-group-04 {
    right: -100px;
  }
}
@media screen and (max-width:575px) {
  .p-gear-group-04 {
    right: -150px;
  }
}
.p-gear-01 {
  position: absolute;
  top: 0;
  left: 0;
  width: 78%;
}
.p-gear-02 {
  position: absolute;
  bottom: 0;
  right: 0;
  width: 40%;
}
.p-gear-03 {
  position: absolute;
  bottom: 0;
  right: 0;
  width: 78%;
}
.p-gear-04 {
  position: absolute;
  top: 0;
  left: 0;
  width: 40%;
}
.p-gear-05 {
  position: absolute;
  top: 0;
  left: 0;
  width: 60%;
}
.p-gear-06 {
  position: absolute;
  bottom: 0;
  right: 0;
  width: 60%;
}

.p-single {
  background-color: #f3f3f3;
  padding: 6rem 0;
  overflow: hidden;
}
.p-single-contents {
  position: relative;
  z-index: 100;
  border-radius: 16px;
  overflow: hidden;
  background-color: #ffffff;
  border: 1px solid #ffffff;
  filter: drop-shadow(0px 0px 16px rgba(21, 31, 43, 0.2));
}
.p-single-eyecatch {
  width: 100%;
  aspect-ratio: 16/9;
  overflow: hidden;
}
.p-single-eyecatch img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-single-body {
  overflow: hidden;
  padding: 3rem;
}
@media screen and (max-width:991px) {
  .p-single-body {
    padding: 2rem 1rem;
  }
}
.p-single-body h2 {
  font-size: 2rem;
  margin-top: 1rem;
}
@media screen and (max-width:991px) {
  .p-single-body h2 {
    font-size: 1.75rem;
  }
}
.p-single-body time {
  margin-bottom: 0;
}
.p-single-body .c-btn-back {
  margin-top: 2rem;
}

.p-page {
  background-color: #ffffff;
  padding: 6rem 0;
  width: 100%;
}
.p-page .c-container,
.p-page .c-container-narrow {
  position: relative;
  z-index: 100;
}
.p-page .c-container p,
.p-page .c-container-narrow p {
  line-height: 2;
}
.p-page .c-container ul,
.p-page .c-container-narrow ul {
  margin-left: 0;
}
.p-page .c-container ul ul,
.p-page .c-container-narrow ul ul {
  margin-top: 0.5rem;
}
.p-page h2 {
  color: #151f2b;
}
.p-page-default {
  overflow: hidden;
}
.p-page-title {
  height: 377px;
  background-color: #1a1a1a;
  position: relative;
}
.p-page-title__image {
  width: 100%;
  height: 120%;
  position: absolute;
  top: 0;
  left: 0;
  opacity: 0.5;
}
.p-page-title__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-page-title .c-container {
  display: flex;
  align-items: center;
  height: 100%;
}
.p-page-title h1 {
  color: #ffffff;
  font-size: 3.5rem;
  font-family: "Poppins", serif;
  font-weight: 500;
  font-style: normal;
}
.p-page-flex {
  display: flex;
  gap: 6rem;
  width: 100%;
  align-items: flex-start;
  margin-bottom: 4rem;
}
@media screen and (max-width:991px) {
  .p-page-flex {
    margin-bottom: 2rem;
    flex-direction: column;
    gap: 0;
    align-items: stretch;
  }
}
.p-page-flex:last-child {
  margin-bottom: 0;
}
.p-page a[id] {
  display: block;
  margin-top: -100px;
  padding-top: 100px;
}
@media screen and (min-width:992px) {
  .p-page-sectitle {
    width: 200px;
  }
}
.p-page-sectitle h2 {
  display: inline-block;
  margin: 0 0 1.5rem;
  font-family: "Poppins", serif;
  font-weight: 400;
  font-style: normal;
  font-weight: 600;
  font-size: 2.75rem;
  line-height: 1;
}
.p-page-contents {
  flex: 1;
}
.p-page-contents h3 {
  font-size: 2rem;
  margin: 0 0 1.5rem;
  display: flex;
  align-items: center;
  line-height: 1;
}
.p-page-contents h3 small {
  font-size: 1.25rem;
  font-weight: 500;
  margin-left: 0.5rem;
  display: flex;
  align-items: center;
}
.p-page-contents h3 small:before {
  content: "";
  width: 1.5rem;
  height: 1px;
  background-color: #1a1a1a;
  margin-right: 0.25rem;
}
.p-page table {
  width: 100%;
}
.p-page table td,
.p-page table th {
  padding: 1.5rem 0;
  text-align: left;
  border-bottom: 1px solid rgba(26, 26, 26, 0.2);
}
.p-page table td ul,
.p-page table th ul {
  margin-left: 0.75rem;
  padding-left: 0.75rem;
}
@media screen and (max-width:991px) {
  .p-page table th {
    padding-bottom: 0;
    border-bottom: none;
    display: block;
  }
  .p-page table td {
    padding-top: 0.5rem;
    display: block;
  }
}
.p-page table tr:last-child td,
.p-page table tr:last-child th {
  border-bottom: none;
}
.p-page-iframe {
  width: 100%;
  aspect-ratio: 16/9;
  border: 1px solid rgba(26, 26, 26, 0.4);
}
@media screen and (max-width:991px) {
  .p-page-iframe {
    aspect-ratio: 1/1;
  }
}
.p-page-iframe iframe {
  width: 100%;
  height: 100%;
}

.p-contact {
  background-color: #f3f3f3;
  padding: 6rem 0;
  width: 100%;
  overflow: hidden;
}
.p-contact-nav {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  justify-content: flex-end;
  margin-bottom: 1rem;
  gap: 1.5rem;
}
.p-contact-nav a,
.p-contact-nav a:visited {
  color: #151f2b;
  display: flex;
  gap: 0;
  align-items: center;
  transition: opacity 0.25s cubic-bezier(0.86, 0, 0.07, 1);
  font-weight: 600;
}
.p-contact-nav a:hover,
.p-contact-nav a:visited:hover {
  opacity: 0.5;
}
.p-contact-nav a:before,
.p-contact-nav a:visited:before {
  content: "";
  width: 1.5rem;
  height: 1.5rem;
  display: block;
  background-image: url("../images/icon_triangle.svg");
  background-size: cover;
}
.p-contact-contents {
  position: relative;
  z-index: 100;
  border-radius: 16px;
  overflow: hidden;
  background-color: #ffffff;
  border: 1px solid #ffffff;
  filter: drop-shadow(0px 0px 16px rgba(21, 31, 43, 0.2));
}
.p-contact-body {
  overflow: hidden;
  padding: 3rem 7rem;
}
@media screen and (max-width:991px) {
  .p-contact-body {
    padding: 2rem 1rem;
  }
}
.p-contact-body strong {
  color: red;
}
.p-contact-body h2 {
  font-size: 2rem;
  margin-bottom: 3rem;
  text-align: center;
  color: #151f2b;
}
@media screen and (max-width:991px) {
  .p-contact-body h2 {
    font-size: 1.75rem;
  }
}
.p-contact-body a,
.p-contact-body avisited {
  color: #1a1a1a;
  text-decoration: underline;
}
.p-contact-body input[type=text],
.p-contact-body input[type=tel],
.p-contact-body input[type=email],
.p-contact-body input[type=url],
.p-contact-body textarea {
  width: 100%;
  padding: 0.5rem;
  margin-top: 0.5rem;
}

.wpcf7-radio {
  margin-top: 0.5rem;
  display: block;
}

.wpcf7-submit {
  margin: 2rem auto 0 !important;
  width: 200px;
  display: inline-flex !important;
  justify-content: center !important;
  align-items: center !important;
  white-space: nowrap !important;
  text-decoration: none !important;
  background-color: #151f2b !important;
  color: #ffffff !important;
  padding: 0.75rem 3rem !important;
  border-radius: 2rem !important;
  border: none !important;
  cursor: pointer;
  transition: background-color 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
.wpcf7-submit:hover {
  background-color: #365070 !important;
}
.wpcf7-submit:disabled {
  background-color: #e6e6e6 !important;
}

p:has(.wpcf7-submit) {
  display: flex;
  justify-content: center;
  flex-direction: column;
}

p:has(.wpcf7-validates-as-required) > label:after {
  content: "*";
  color: red;
}

p:has(input[type=checkbox]) {
  display: flex;
  justify-content: center;
  margin-top: 4rem;
}

.p-value-title {
  width: 100%;
  height: 200px;
  background-color: #1a1a1a;
  margin-bottom: 1.5rem;
  position: relative;
  padding: 2rem;
  overflow: hidden;
  display: flex;
  align-items: center;
}
.p-value-title img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: grayscale(100%);
  position: absolute;
  top: 0;
  left: 0;
  opacity: 0.75;
}
.p-value-title p {
  color: #ffffff;
  position: relative;
  z-index: 100;
  font-family: "Poppins", serif;
  font-weight: 500;
  font-style: normal;
  font-size: 3rem;
  line-height: 1;
  margin: 0;
  padding: 0;
}
.p-value-text {
  margin-bottom: 1rem;
}
.p-value-text h4 {
  font-size: 1.5rem;
  font-weight: 500;
  margin: 0;
  padding-bottom: 0;
}
.p-value-text p {
  margin-top: 0;
  font-size: 1.125rem;
}

.p-service {
  background-color: #f3f3f3;
}
.p-service-lead {
  font-size: 1.25rem;
  font-weight: 500;
  text-align: center;
  margin: 0 0 4rem;
}
@media screen and (max-width:991px) {
  .p-service-lead {
    text-align: left;
  }
  .p-service-lead br {
    display: none;
  }
}
.p-service-item {
  width: 100%;
  padding: 4rem;
  background-color: #ffffff;
  border-radius: 8px;
  display: block;
  margin-bottom: 2rem;
}
.p-service-item:last-child {
  margin-bottom: 0;
}
@media screen and (max-width:991px) {
  .p-service-item {
    padding: 4rem 2rem;
  }
}
.p-service-item h2 {
  font-family: "Poppins", serif;
  font-weight: 400;
  font-style: normal;
  font-weight: 600;
  font-size: 2.25rem;
  margin: 0 auto 2rem;
  text-align: center;
}
.p-service-item ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  justify-content: center;
  gap: 1rem;
  margin-top: 3rem;
}
@media screen and (max-width:991px) {
  .p-service-item ul {
    flex-direction: column;
    gap: 2rem;
  }
}
.p-service-item ul li {
  width: calc(50% - 0.5rem);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
  font-weight: 600;
}
@media screen and (max-width:991px) {
  .p-service-item ul li {
    width: 100%;
  }
}
.p-service-item ul li p {
  border-radius: 8px;
  overflow: hidden;
  aspect-ratio: 16/10;
  border: 1px solid rgba(26, 26, 26, 0.2);
  display: block;
}
.p-service-item ul li a {
  display: block;
  width: 100%;
  height: 100%;
}
.p-service-item ul li a:hover img {
  transform: scale(1.1);
}
.p-service-item ul li img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.25s cubic-bezier(0.39, 0.575, 0.565, 1);
}
.p-service-detail {
  position: relative;
  z-index: 100;
  border-radius: 16px;
  overflow: hidden;
  background-color: #ffffff;
  border: 1px solid #ffffff;
  filter: drop-shadow(0px 0px 16px rgba(21, 31, 43, 0.2));
}
.p-service-detail-eyecatch {
  width: 100%;
  aspect-ratio: 16/9;
  overflow: hidden;
}
.p-service-detail-eyecatch img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-service-detail-body {
  overflow: hidden;
  padding: 3rem;
}
@media screen and (max-width:991px) {
  .p-service-detail-body {
    padding: 2rem 1rem;
  }
}
.p-service-detail-body h2 {
  font-size: 2.5rem;
  margin-top: 1rem;
}
@media screen and (max-width:991px) {
  .p-service-detail-body h2 {
    font-size: 1.75rem;
  }
}
.p-service-detail-body .c-btn-back {
  margin-top: 2rem;
}

.u-align-center {
  text-align: center !important;
}
/* ---------------------------------------------
   アンカーリンク着地位置（固定ヘッダー分のオフセット）
--------------------------------------------- */
#vision,
#value,
#message,
#outline,
#access,
#recruitment-support,
#human-resource-development,
#consulting-and-outsourcing,
#recruitment-agency {
  scroll-margin-top: 120px;
}

/* ---------------------------------------------
   NEWS一覧 ページネーション
--------------------------------------------- */
.p-main .pagination {
  margin-top: 3rem;
}
.p-main .pagination .nav-links {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
}
.p-main .pagination .page-numbers {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  min-width: 2.5rem;
  height: 2.5rem;
  padding: 0 0.5rem;
  border: 1px solid currentColor;
  text-decoration: none;
  transition: opacity 0.3s;
}
.p-main .pagination a.page-numbers:hover {
  opacity: 0.6;
}
.p-main .pagination .page-numbers.current {
  background: #333;
  border-color: #333;
  color: #fff;
}

/* ---------------------------------------------
   NEWS一覧：本文なし（リンクなし）アイテム
--------------------------------------------- */
.p-top-news-item.is-nolink {
  cursor: default;
}
.p-top-news-item.is-nolink:hover .p-top-news-item__image img {
  transform: none;
}
.p-top-news-item.is-nolink:hover p:after {
  width: 0;
}
