/* =======================================================
about
======================================================= */
.l-about {
  padding-bottom: min(calc(240 / 1440 * 100vw), 240px);
  background: var(--color-black02);
}
@media screen and (max-width: 767px) {
  .l-about {
    padding-bottom: 12.3125rem;
  }
}

.p-about-subttl {
  padding-bottom: min(calc(10 / 1440 * 100vw), 10px);
  font-size: min(calc(24 / 1440 * 100vw), 24px);
  font-weight: 900;
  line-height: 1;
  text-align: center;
  background: var(--color-white);
}
@media screen and (max-width: 767px) {
  .p-about-subttl {
    padding-bottom: 0.3125rem;
    font-size: 1.125rem;
  }
}
.p-about__ttl {
  width: fit-content;
  padding: 0 min(calc(10 / 1440 * 100vw), 10px) min(calc(2 / 1440 * 100vw), 2px);
  margin: 0 auto min(calc(100 / 1440 * 100vw), 100px);
  font-size: min(calc(100 / 1440 * 100vw), 100px);
  font-weight: 800;
  line-height: 1;
  background: var(--color-white);
}
@media screen and (max-width: 767px) {
  .p-about__ttl {
    padding: 0 0.3125rem 0.1875rem;
    margin-bottom: 3rem;
    font-size: 3.5rem;
  }
}
.p-about__list {
  margin-bottom: min(calc(7 / 1440 * 100vw), 7px);
}
@media screen and (max-width: 767px) {
  .p-about__list {
    margin-bottom: 2.5rem;
  }
}
.p-about__item {
  background: rgba(255, 255, 255, 0.25);
}
.p-about__item-ttl {
  color: var(--color-white);
  background: var(--color-black02);
}
.p-about__item-txt {
  padding-right: min(calc(15 / 1440 * 100vw), 15px);
  font-size: min(calc(18 / 1440 * 100vw), 18px);
}
@media screen and (max-width: 767px) {
  .p-about__item-txt {
    padding-right: 0.6875rem;
    font-size: 0.75rem;
  }
}
.p-about__item.--company-establishment .p-about__item-subttl-wrapper::before {
  background-image: url("../images/top/about-us--company-establishment.svg");
}
.p-about__item.--number-of-employees .p-about__item-subttl-wrapper::before {
  background-image: url("../images/top/about-us--number-of-employees.svg");
}
.p-about__item.--average-age .p-about__item-subttl-wrapper::before {
  background-image: url("../images/top/about-us--average-age.svg");
}
.p-about__item.--capital .p-about__item-subttl-wrapper::before {
  background-image: url("../images/top/about-us--capital.svg");
}
.p-about__item.--sales .p-about__item-subttl-wrapper::before {
  background-image: url("../images/top/about-us--sales.svg");
}
.p-about__item.--listing .p-about__item-subttl-wrapper::before {
  background-image: url("../images/top/about-us--listing.svg");
}
.p-about__btn {
  margin-left: auto;
}

/* =======================================================
common
======================================================= */
.--is-fade {
  opacity: 0;
}
.--is-fade.--js-animated {
  opacity: 1;
}

.js-line-fadein-inner {
  display: inline-block;
  opacity: 0;
  animation: lineFadeIn 0.5s ease-out forwards;
}

@keyframes lineFadeIn {
  0% {
    opacity: 0;
    transform: translateY(2em);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}
.js-txt-fadein-inner {
  display: inline-block;
  opacity: 0;
  animation: txtSingleFadeIn 0.5s ease forwards;
}

@keyframes txtSingleFadeIn {
  0% {
    opacity: 0;
    transform: translateY(1em);
  }
  50% {
    opacity: 1;
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}
.l-all__wrapper {
  overflow: hidden;
}

.p-head__box-wrapper {
  background: rgba(30, 30, 30, 0.85);
}
.p-head__gnav {
  color: var(--color-white);
}
@media screen and (max-width: 767px) {
  .p-head__gnav-wrapper {
    background: var(--color-black02);
  }
}
.p-head__gnav.u-color__accent {
  color: var(--color-accent);
}
.p-head__gnav.--external::after {
  background-image: url("../images/top/head-gnav-item-external.svg");
}
.p-head__burger {
  background: rgba(30, 30, 30, 0.85);
}
.p-head__burger-bars::before, .p-head__burger-bars::after,
.p-head__burger-bars .p-head__burger-bar {
  background: var(--color-white);
}
.p-head__btn.--recruit {
  color: var(--color-txt);
  background: rgba(255, 255, 255, 0.85);
}

.l-inner {
  max-width: min(calc(1440 / 1440 * 100vw), 1440px);
}

.c-btn {
  display: flex;
  gap: min(calc(12 / 1440 * 100vw), 12px);
  align-items: center;
  width: fit-content;
  padding: min(calc(6 / 1440 * 100vw), 6px) min(calc(8 / 1440 * 100vw), 8px);
  overflow: hidden;
  font-size: min(calc(38 / 1440 * 100vw), 38px);
  font-weight: 900;
  line-height: 1;
  color: transparent;
  letter-spacing: 0.03em;
}
@media screen and (max-width: 767px) {
  .c-btn {
    gap: 0.75rem;
    padding: 0.25rem 0.3125rem 0.375rem;
    font-size: 1.625rem;
  }
}
.c-btn::after {
  width: min(calc(38 / 1440 * 100vw), 38px);
  height: min(calc(38 / 1440 * 100vw), 38px);
  content: "";
  background: url("../images/common/btn-arrow.svg") center center/cover no-repeat;
}
@media screen and (max-width: 767px) {
  .c-btn::after {
    width: 1.875rem;
    height: 1.875rem;
  }
}
.c-btn.u-font__en {
  font-size: min(calc(39 / 1440 * 100vw), 39px);
}
@media screen and (max-width: 767px) {
  .c-btn.u-font__en {
    font-size: 2rem;
  }
}

/* =======================================================
info
======================================================= */
.l-info {
  padding-bottom: min(calc(160 / 1440 * 100vw), 160px);
}
@media screen and (max-width: 767px) {
  .l-info {
    padding-bottom: 5rem;
  }
}

.p-info .c-hgroup {
  margin-bottom: min(calc(50 / 1440 * 100vw), 50px);
}
@media screen and (max-width: 767px) {
  .p-info .c-hgroup {
    margin-bottom: 2.5rem;
  }
}
.p-info__link {
  position: relative;
  height: min(calc(330 / 1440 * 100vw), 330px);
  background: var(--color-gray03);
}
.p-info__link-wrapper {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: min(calc(6 / 1440 * 100vw), 6px);
}
@media screen and (max-width: 767px) {
  .p-info__link-wrapper {
    grid-template-columns: repeat(2, 1fr);
    gap: 0.375rem;
  }
}
@media screen and (max-width: 767px) {
  .p-info__link {
    height: 10.3125rem;
  }
}
.p-info__link .c-btn {
  text-shadow: 0 -1.5em 0 var(--color-white), 0 0 0 var(--color-white);
  transition: all 0.5s ease;
}
@media screen and (max-width: 767px) {
  .p-info__link .c-btn {
    gap: 0;
    justify-content: space-between;
    width: 100%;
    font-size: 1.4375rem;
  }
}
@media screen and (max-width: 767px) {
  .p-info__link .c-btn::after {
    width: 1.625rem;
    height: 1.625rem;
  }
}
@media (hover: hover) {
  .p-info__link:hover {
    opacity: 1;
  }
  .p-info__link:hover .c-btn {
    text-shadow: 0 0 0 var(--color-white), 0 1.5em 0 var(--color-white);
    background: var(--color-accent);
  }
}
.p-info__link::before {
  position: absolute;
  top: 50%;
  left: 50%;
  content: "";
  background: center center/cover no-repeat;
  transition: all 0.5s ease;
  transform: translate(-50%, -50%);
}
@media screen and (max-width: 767px) {
  .p-info__link::before {
    top: 2.5rem;
    left: 50%;
    transform: translateX(-50%);
  }
}
.p-info__link:first-of-type::before {
  width: min(calc(90 / 1440 * 100vw), 90px);
  height: min(calc(100 / 1440 * 100vw), 100px);
  background-image: url("../images/top/info-icon01.svg");
}
@media screen and (max-width: 767px) {
  .p-info__link:first-of-type::before {
    width: 2.8125rem;
    height: 3.125rem;
  }
}
@media (hover: hover) {
  .p-info__link:first-of-type:hover::before {
    background-image: url("../images/top/info-icon01--accent.svg");
  }
}
.p-info__link:nth-of-type(2)::before {
  width: min(calc(91 / 1440 * 100vw), 91px);
  height: min(calc(90 / 1440 * 100vw), 90px);
  background-image: url("../images/top/info-icon02.svg");
}
@media screen and (max-width: 767px) {
  .p-info__link:nth-of-type(2)::before {
    width: 2.8125rem;
    height: 2.75rem;
  }
}
@media (hover: hover) {
  .p-info__link:nth-of-type(2):hover::before {
    background-image: url("../images/top/info-icon02--accent.svg");
  }
}
.p-info__link:nth-of-type(3)::before {
  width: min(calc(94 / 1440 * 100vw), 94px);
  height: min(calc(96 / 1440 * 100vw), 96px);
  background-image: url("../images/top/info-icon03.svg");
}
@media screen and (max-width: 767px) {
  .p-info__link:nth-of-type(3)::before {
    width: 2.9375rem;
    height: 3rem;
  }
}
@media (hover: hover) {
  .p-info__link:nth-of-type(3):hover::before {
    background-image: url("../images/top/info-icon03--accent.svg");
  }
}
.p-info__link:nth-of-type(4)::before {
  width: min(calc(100 / 1440 * 100vw), 100px);
  height: min(calc(96 / 1440 * 100vw), 96px);
  background-image: url("../images/top/info-icon04.svg");
}
@media screen and (max-width: 767px) {
  .p-info__link:nth-of-type(4)::before {
    width: 3.125rem;
    height: 3rem;
  }
}
@media (hover: hover) {
  .p-info__link:nth-of-type(4):hover::before {
    background-image: url("../images/top/info-icon04--accent.svg");
  }
}

/* =======================================================
interview
======================================================= */
.l-interview {
  padding-bottom: min(calc(140 / 1440 * 100vw), 140px);
}
@media screen and (max-width: 767px) {
  .l-interview {
    padding-bottom: 8.125rem;
  }
}
.l-interview .c-hgroup {
  margin-bottom: min(calc(50 / 1440 * 100vw), 50px);
}
@media screen and (max-width: 767px) {
  .l-interview .c-hgroup {
    margin-bottom: 2.5rem;
  }
}
@media screen and (min-width: 768px) {
  .l-interview .c-to-external__btn,
  .l-interview .c-to-internal__btn {
    margin-left: auto;
  }
}
.l-interview .c-to-external__btn {
  margin-bottom: min(calc(16 / 1440 * 100vw), 16px);
}
@media screen and (max-width: 767px) {
  .l-interview .c-to-external__btn {
    margin-bottom: 1rem;
  }
}

.p-instagram__slide {
  width: min(calc(390 / 1440 * 100vw), 390px);
}
@media screen and (max-width: 767px) {
  .p-instagram__slide {
    width: 15.625rem;
  }
}
.p-instagram__slide > img {
  height: min(calc(487 / 1440 * 100vw), 487px);
}
@media screen and (max-width: 767px) {
  .p-instagram__slide > img {
    height: 19.5625rem;
  }
}

/* =======================================================
job
======================================================= */
.l-job {
  padding: min(calc(120 / 1440 * 100vw), 120px) 0 min(calc(140 / 1440 * 100vw), 140px);
}
@media screen and (max-width: 767px) {
  .l-job {
    padding: 3.75rem 0 4.375rem;
  }
}

.p-job {
  display: grid;
  grid-template: "hgroup intro" "link-wrapper link-wrapper";
  grid-template-columns: repeat(2, 1fr);
  gap: min(calc(40 / 1440 * 100vw), 40px) min(calc(6 / 1440 * 100vw), 6px);
}
@media screen and (max-width: 767px) {
  .p-job {
    grid-template: "hgroup" "intro" "link-wrapper";
    grid-template-columns: auto;
    gap: 0;
  }
}
.p-job .c-hgroup {
  grid-area: hgroup;
}
@media screen and (max-width: 767px) {
  .p-job .c-hgroup {
    margin-bottom: 2.5rem;
  }
}
.p-job__intro {
  grid-area: intro;
  align-self: end;
  margin-bottom: min(calc(32 / 1440 * 100vw), 32px);
  font-weight: 700;
  line-height: calc(25/18);
  letter-spacing: 0.03em;
}
@media screen and (max-width: 767px) {
  .p-job__intro {
    margin-bottom: 1.25rem;
    font-size: 0.875rem;
    font-weight: 500;
    line-height: calc(24/14);
  }
}
.p-job__link {
  height: min(calc(470 / 1440 * 100vw), 470px);
}
.p-job__link-wrapper {
  display: grid;
  grid-area: link-wrapper;
  grid-template-columns: repeat(2, 1fr);
  gap: min(calc(6 / 1440 * 100vw), 6px);
}
@media screen and (max-width: 767px) {
  .p-job__link-wrapper {
    grid-template-columns: auto;
    gap: 0.375rem;
  }
}
@media screen and (max-width: 767px) {
  .p-job__link {
    height: 14.625rem;
  }
}
.p-job__link::after {
  background: center center/cover no-repeat;
}
.p-job__link:first-of-type::after {
  background-image: url("../images/top/job-link-bg01.webp");
}
.p-job__link:nth-of-type(2)::after {
  background-image: url("../images/top/job-link-bg02.webp");
}

/* =======================================================
mv
======================================================= */
.l-mv {
  position: relative;
  display: grid;
  align-items: end;
  height: 100vh;
  padding-bottom: min(calc(50 / 1440 * 100vw), 50px);
  overflow: hidden;
}
@media screen and (max-width: 767px) {
  .l-mv {
    padding-bottom: 3.125rem;
  }
}

.p-mv {
  width: 100%;
  max-width: min(calc(1520 / 1440 * 100vw), 1520px);
  padding: 0 min(calc(15 / 1440 * 100vw), 15px);
}
@media screen and (max-width: 767px) {
  .p-mv {
    max-width: none;
    padding: 0;
  }
}
.p-mv__slide {
  overflow: hidden;
}
.p-mv__slide-container {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: -1;
  width: 100%;
  height: 100%;
  transform: translate(-50%, -50%);
}
.p-mv__slide-imgwrapper {
  width: 100%;
  height: 100%;
}
.p-mv__slide-imgwrapper > img {
  object-fit: cover;
}
@keyframes zoomIn {
  0% {
    transform: scale(1);
  }
  100% {
    transform: scale(1.1);
  }
}
.p-mv__hgroup {
  margin-bottom: min(calc(25 / 1440 * 100vw), 25px);
}
@media screen and (max-width: 767px) {
  .p-mv__hgroup {
    margin-bottom: 0.9375rem;
  }
}
.p-mv__hgroup-imgwrapper {
  display: flex;
}
.p-mv__hgroup-ttl {
  display: flex;
  width: fit-content;
}
@media screen and (min-width: 768px) {
  .p-mv__hgroup-ttl .p-mv__hgroup-imgwrapper {
    width: min(calc(722 / 1440 * 100vw), 722px);
  }
}
.p-mv__hgroup-txt {
  display: flex;
  width: fit-content;
}
@media screen and (min-width: 768px) {
  .p-mv__hgroup-txt .p-mv__hgroup-imgwrapper {
    width: min(calc(357 / 1440 * 100vw), 357px);
  }
}
.p-mv__txt {
  margin-left: min(calc(15 / 1440 * 100vw), 15px);
  font-size: min(calc(14 / 1440 * 100vw), 14px);
  font-weight: 800;
  line-height: calc(20/14);
  color: var(--color-white);
}
@media screen and (max-width: 767px) {
  .p-mv__txt {
    margin-left: 0.9375rem;
    font-size: 0.75rem;
    line-height: calc(17/12);
  }
}
.p-mv__btn {
  gap: min(calc(70 / 1440 * 100vw), 70px);
}
@media screen and (max-width: 767px) {
  .p-mv__btn {
    gap: 0.6875rem;
  }
}

/* =======================================================
other
======================================================= */
.l-other {
  transform: translateY(min(calc(-140 / 1440 * 100vw), -140px));
}
@media screen and (max-width: 767px) {
  .l-other {
    transform: translateY(-7.3125rem);
  }
}

.p-other__link {
  height: min(calc(470 / 1440 * 100vw), 470px);
}
.p-other__link-wrapper {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: min(calc(3 / 1440 * 100vw), 3px);
}
@media screen and (max-width: 767px) {
  .p-other__link-wrapper {
    grid-template-columns: auto;
    gap: 0.375rem;
  }
}
@media screen and (max-width: 767px) {
  .p-other__link {
    height: 14.625rem;
  }
}
.p-other__link::after {
  background: center center/cover no-repeat;
}
.p-other__link:first-of-type::after {
  background-image: url("../images/top/other-link-bg01.webp");
}
.p-other__link:nth-of-type(2)::after {
  background-image: url("../images/top/other-link-bg02.webp");
}