@charset "UTF-8";

/**********************************************************
  https://www.westjr.co.jp/company/recruit/fresh/
**********************************************************/
*,
*::before,
*::after {
  box-sizing: border-box;
}

ul,
ol {
  padding: 0;
}

body,
h1,
h2,
h3,
h4,
h5,
h6,
p,
ul,
ol,
li,
figure,
figcaption,
dl,
dd {
  margin: 0;
}

html,
body {
  height: 100%;
}

html {
  word-break: normal;
  tab-size: 4;
  font-size: 62.5%;
}

body {
  min-height: 100vh;
  font-family: 'Noto Sans JP', 'Helvetica Neue', arial, 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', meiryo, sans-serif;
  font-optical-sizing: auto;
  font-weight: 500;
  font-style: normal;
  font-size: 1.4rem;
  font-feature-settings: 'palt';
  font-synthesis: none;
  line-height: 1.5;
  text-rendering: optimizeSpeed;
  text-size-adjust: 100%;
  overflow-wrap: break-word;
  color: #111;
  scroll-behavior: smooth;
}

ul,
ol {
  list-style: none;
}

a,
a:visited {
  -webkit-tap-highlight-color: transparent;
}

a:not([class]) {
  text-decoration-skip-ink: auto;
}

img {
  display: block;
  width: 100%;
  height: auto;
  margin: 0 auto;
  border-style: none;
}

input,
button,
textarea,
select {
  font: inherit;
}

a,
area,
button,
[role="button"],
input:not([type=range]),
label,
select,
summary,
textarea {
  touch-action: manipulation;
}

/********************************************   */

/* フレームクラス クラス名に f_ を付与 */

/********************************************   */

/********** 共通 **********/
.f_wrapper,
.f_header,
.f_content,
.f_footer {
  position: relative;
  z-index: 0;
  display: block;
  width: 100%;
}

.f_headerInner,
.f_footerInner {
  position: relative;
  z-index: 10;
  display: block;
  width: 100%;
}

body {
  position: static;
}

body.is-fixed {
  position: fixed;
  top: 0;
  right: 0;
  left: 0;
  z-index: 0;
  display: block;
  overflow: hidden;
}


.loader {
  animation: load8 1.1s infinite linear;
}

@keyframes load8 {
  0% {
    transform: rotate(0deg);
  }

  100% {
    transform: rotate(360deg);
  }
}

@keyframes load8 {
  0% {
    transform: rotate(0deg);
  }

  100% {
    transform: rotate(360deg);
  }
}


/********** ローディング **********/
.f_loader {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 100;
  display: block;
  width: 100%;
  width: 100vw;
  height: 100%;
  height: 100vh;
  margin: auto;
  background-color: #fff;
}

#Home .f_loader,
.is-loading .f_loader {
  display: none;
}

.f_loader .p_container {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  display: block;
  width: 240px;
  height: 240px;
  margin: auto;
  overflow: hidden;
}

.f_loader .p_container .p_loader,
.f_loader .p_container .p_loader::after {
  display: block;
  width: 100px;
  height: 100px;
  border-radius: 50%;
}

.f_loader .p_container .p_loader {
  position: relative;
  z-index: 0;
  margin: 70px auto;
  font-size: 1.0rem;
  text-indent: -9999em;
  border-top: 10px solid rgb(204 204 204 / 20%);
  border-right: 10px solid rgb(204 204 204 / 20%);
  border-bottom: 10px solid rgb(204 204 204 / 20%);
  border-left: 10px solid #ccc;
  transform: translateZ(0);
  transform: translateZ(0);
  animation: loading 1.1s infinite linear;
}

@keyframes loading {
  0% {
    transform: rotate(0deg);
  }

  100% {
    transform: rotate(360deg);
  }
}

@keyframes loading {
  0% {
    transform: rotate(0deg);
  }

  100% {
    transform: rotate(360deg);
  }
}

.pc {
  display: block;
}

.sp {
  display: none;
}

/********** ヘッダー **********/
.f_header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  width: 100%;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1;
  margin-inline: auto;
  opacity: 1;
  transform: translateY(0);
}
.f_header .p_header__left {
  display: block;
  width: min(6vw, 64px);
  padding: min(2vw, 20px) min(2.5vw, 25px);
  box-sizing: unset;
}
@media screen and (width <= 768px) {
  .f_header .p_header__left {
    width: 12vw;
    padding: 2vw;
  }
}
.f_header .p_header__right {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex: 1 0 0;
  gap: 4px;
}
.f_header .p_header__navi {
  display: flex;
  align-items: center;
  justify-content: center;

  &:nth-of-type(1) {
    width: fit-content;
    background-color: rgb(255 255 255 / 90%);
  }
  &:nth-of-type(2) {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 230px;
    gap: 4px;
  }
  &:nth-of-type(3) {
    width: 56px;
  }
}
@media screen and (width <= 1070px) {
  .f_header .p_header__navi:nth-of-type(1) {
    display: none;
  }
}
.f_header .p_header__button {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  width: 100%;
  height: 56px;
  background-color: #000;
  border: none;
  cursor: pointer;
}
.f_header .p_header__buttonName {
  font-size: 1.1rem;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.1em;
  color: #fff;
}
.f_header .p_header__buttonNar {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 17px;
  height: 17px;
  border-top: 2px solid #fff;
  border-bottom: 2px solid #fff;
  margin-top: 6px;

  &::before {
    content: "";
    display: block;
    width: 100%;
    height: 1px;
    border-top: 2px solid #fff;
  }
}
@media screen and (any-hover: hover) {
  .f_header .p_header__button:hover {
    background-color: #333;
  }
}

.f_nav {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100vh;
  position: fixed;
  z-index: -1;
  inset: 0;
  margin: auto;
  visibility: hidden;
  opacity: 0;
  clip-path: circle(0%);
  padding: 10px;
  background-color: rgb(204 225 241 / 0.9);
  overflow: hidden;
  overscroll-behavior: none;
  overscroll-behavior-block: contain;
  opacity: 0;
  transition: opacity 0.5s ease,
              clip-path 0.5s ease;

  &.--open {
    z-index: 99;
    visibility: visible;
    opacity: 1;
    clip-path: circle(100%);
  }
}
@media screen and (width <= 768px) {
  .f_nav {
    height: 100dvh;
    padding: calc(40 / 750 * 100vw);
    align-items: flex-start;
  }
}
@media screen and (height < 756px) {
  .f_nav {
    align-items: flex-start;
  }
}

.f_nav .p_nav__inner {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  width: 100%;
  max-width: 1158px;
  height: fit-content;
  padding-top: 30px;
  position: relative;
  z-index: 0;
  overflow-y: auto;
  gap: 30px;
}
@media screen and (width <= 768px) {
  .f_nav .p_nav__inner {
    height: 90svh;
    padding-top: calc(60 / 750 * 100vw);
    gap: 0;
  }
}
@media screen and (height < 756px) {
  .f_nav .p_nav__inner {
    height: 90svh;
    padding-top: calc(70 / 750 * 100vw);
  }
}
.f_nav .p_nav__close {
  display: block;
  width: 24px;
  height: 24px;
  position: absolute;
  z-index: 30;
  top: 0;
  right: 0;
  border: none;
  background-color: transparent;
  cursor: pointer;

  &::before,
  &::after {
    content: "";
    display: block;
    width: 100%;
    height: 1px;
    border-top: 1.5px solid #000;
    position: absolute;
    inset: 0;
    margin: auto;
  }
  &::before {
    transform: rotate(45deg);
  }
  &::after {
    transform: rotate(-45deg);
  }
}
@media screen and (width <= 768px) {
  .f_nav .p_nav__close {
    width: calc(60 / 750 * 100vw);
    height: calc(60 / 750 * 100vw);

    &::before,
    &::after {
      border-top: 2px solid #000;
    }
  }
}

.f_nav .p_nav__head {
  display: block;
  width: min(calc(318 / 1300 * 100vw), 318px);
  position: relative;
  z-index: 0;
}
@media screen and (width <= 768px) {
  .f_nav .p_nav__head {
    display: none;
  }
}

.f_nav .p_nav__body {
  display: flex;
  flex-wrap: wrap;
  width: min(calc(810 / 1300 * 100vw), 810px);
  position: relative;
  z-index: 0;
  gap: 6px min(calc(15 / 810 * 100%), 15px);
}
@media screen and (width <= 768px) {
  .f_nav .p_nav__body {
    flex-direction: column;
    width: 100%;
    gap: 10px;
  }
}


/********** コンテンツ **********/
.f_content {
  overflow: hidden;
}

.f_content .p_inner {
  position: relative;
  z-index: 0;
  display: block;
  width: 87.5%;
  max-width: 1000px;
  padding: 0;
  margin: 0 auto;
}

@media screen and (min-width: 960px) {
  .f_content .p_inner {
    padding: 0 10px;
  }

  .f_fixed_menu3col {
    display: none;
  }
}



/********** フッター **********/
.f_footer {
  position: relative;
  z-index: 0;
  padding-top: calc(100 / 750 * 100vw);
}

.f_footerTop {
  position: absolute;
  top: 0;
  right: 0;
  z-index: 10;
  display: block;
  width: calc(100 / 750 * 100vw);
  height: calc(100 / 750 * 100vw);
}

.f_footerTopBtn {
  position: relative;
  z-index: 0;
  display: block;
  width: 100%;
  height: 100%;
  overflow: hidden;
  text-indent: 100%;
  white-space: nowrap;
  background-color: #3071b5;
}

.f_footerTopBtn::before {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 0;
  display: block;
  width: calc(25 / 750 * 100vw);
  height: calc(25 / 750 * 100vw);
  margin: auto;
  content: "";
  border-top: 2px solid #fff;
  border-left: 2px solid #fff;
  transform: rotate(45deg) translate(calc(6 / 750 * 100vw), calc(6 / 750 * 100vw));
}

.f_footerInner {
  display: block;
  width: 100%;
  padding: calc(22 / 750 * 100vw) 0 calc(480 / 750 * 100vw);
  background-color: #fcfcfc;
  overflow: hidden;
}

.f_footerMenu {
  display: block;
  margin-bottom: calc(66/750 * 100vw);
  position: relative;
  z-index: 20;
}

.f_footerMenuLst {
  display: flex;
  flex-direction: column;
  width: calc(500/750 * 100vw);
  gap: calc(30/750 * 100vw) 0;
  align-items: center;
  justify-content: space-between;
  margin: 0 auto;
}

.f_footerMenuLstItem {
  width: 100%;
  height: calc(100/750 * 100vw);
}

.f_footerMenuLink {
  position: relative;
  z-index: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  color: #fff;
  font-size: calc(28/750 * 100vw);
  font-weight: 700;
  letter-spacing: 0.08em;
  text-align: center;
  text-decoration: none;
}

.f_footerMenuLstItem:nth-child(1) .f_footerMenuLink,
.f_footerMenuLstItem:nth-child(2) .f_footerMenuLink {
  background-color: #000;
}

.f_footerMenuLstItem:nth-child(1) .f_footerMenuLink.comingsoon {
  user-select: none;
  background-color: #ccc;
}

.f_footerMenuLstItem:nth-child(3) .f_footerMenuLink {
  background-color: #4a8ce2;
}

.f_footerMenuLink::before {
  position: absolute;
  top: 0;
  right: calc(50/750 * 100vw);
  bottom: 0;
  z-index: 0;
  display: block;
  width: calc(18/750 * 100vw);
  height: calc(18/750 * 100vw);
  content: "";
  border-top: 1px solid #fff;
  border-right: 1px solid #fff;
  transform: rotate(45deg);
  margin: auto 0;
}

.f_footerSns {
  display: block;
  width: 100%;
  max-width: 250px;
  margin: 20px auto;
  position: relative;
  z-index: 20;
}

.f_footerSnsLst {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.f_footerSnsLstItem:nth-child(1) {
  flex-basis: 49px;
}

.f_footerSnsLstItem:nth-child(2) {
  flex-basis: 50px;
}

.f_footerSnsLstItem:nth-child(3) {
  flex-basis: 60px;
}

.f_footerSnsLstLink {
  transition: opacity 150ms ease-out;
}

.f_footerSnsLstLink:hover {
  opacity: 0.7;
}

.f_footerBannerInner {
  max-width: 300px;
  margin: 20px auto;
}

.f_footerBannerInnerLink {
  transition: opacity 150ms ease-out;
}

.f_footerBannerInnerLink:hover {
  opacity: 0.7;
}

.f_footerCopy {
  font-size: 2.13vw;
  line-height: 1.75;
  text-align: center;
  position: relative;
  z-index: 20;
}

.f_footerPrivacy {
  margin-bottom: 1em;
  font-size: 2.13vw;
  line-height: 1.75;
  text-align: center;
  position: relative;
  z-index: 20;
}

.f_footerPrivacy a {
  color: #000;
  text-decoration: none;
}

.f_footerPrivacy a:hover {
  text-decoration: underline;
}

.f_footerPrivacy a::before {
  display: inline-block;
  width: calc(10 / 750 * 100vw);
  height: calc(10 / 750 * 100vw);
  margin-right: calc(5 / 750 * 100vw);
  content: "";
  border-top: 1px solid #000;
  border-right: 1px solid #000;
  transform: rotate(45deg) translate(calc(6 / 750 * -100vw), calc(4 / 750 * 100vw));
}

.f_footerColorBar1,
.f_footerColorBar2,
.f_footerColorBar3,
.f_footerColorBar4,
.f_footerColorBar5 {
  display: block;
  position: absolute;
  z-index: 0;
}

.f_footerColorBar1 {
  width: calc(765/750 * 100vw);
  height: calc(747/750 * 100vw);
  right: calc(430/750 * -100vw);
  bottom: calc(120/750 * 100vw);
  z-index: 3;
}

.f_footerColorBar2 {
  width: calc(620/750 * 100vw);
  height: calc(411/750 * 100vw);
  right: calc(20/750 * -100vw);
  bottom: calc(254/750 * -100vw);
  z-index: 1;
}

.f_footerColorBar3 {
  width: calc(1068/750 * 100vw);
  height: calc(675/750 * 100vw);
  left: calc(370/750 * -100vw);
  bottom: calc(76/750 * -100vw);
  z-index: 5;
}

.f_footerColorBar4 {
  width: calc(661/750 * 100vw);
  height: calc(501/750 * 100vw);
  left: calc(420/750 * -100vw);
  bottom: calc(86/750 * -100vw);
  z-index: 0;
}

.f_footerColorBar5 {
  width: calc(384/750 * 100vw);
  height: calc(605/750 * 100vw);
  left: calc(210/750 * -100vw);
  bottom: calc(260/750 * -100vw);
  z-index: 2;
}

@media screen and (min-width: 960px) {
  .f_footer {
    padding-top: 100px;
  }

  .f_footerTop {
    width: 100px;
    height: 100px;
  }

  .f_footerTopBtn {
    transition: opacity 150ms ease-out;
  }

  .f_footerTopBtn:hover {
    opacity: 0.7;
  }

  .f_footerTopBtn::before {
    width: 24px;
    height: 24px;
    transition: transform 150ms ease-out;
    transform: rotate(45deg) translate(3px, 3px);
  }

  .f_footerTopBtn:hover::before {
    transform: rotate(45deg) translate(0, 0);
  }

  .f_footerInner {
    padding-top: 80px;
    padding-bottom: 40px;
  }

  .f_footerMenu {
    display: block;
    width: 100%;
    max-width: 718px;
    margin: 0 auto 70px;
  }

  .f_footerMenuLst {
    display: flex;
    width: auto;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 0;
  }

  .f_footerMenuLstItem {
    flex-basis: 236px;
    height: auto;
  }

  .f_footerMenuLink {
    display: block;
    width: 100%;
    padding: 27px 0;
    font-size: 1.8rem;
    letter-spacing: 0.14em;
    transition: opacity 150ms ease-out;
  }

  .f_footerMenuLink:hover {
    opacity: 0.7;
  }

  .f_footerMenuLink.comingsoon:hover {
    opacity: 1.0;
  }

  .f_footerMenuLink::before {
    top: auto;
    right: 10px;
    bottom: 10px;
    width: 7px;
    height: 7px;
    transition: all 150ms ease-out;
  }

  .f_footerMenuLink:hover::before {
    right: 2px;
  }

  .f_footerSns {
    max-width: 300px;
    margin: 0 auto 420px;
  }

  .f_footerBannerInner {
    max-width: 600px;
    margin: 0 auto 70px;
  }

  .f_footerCopy {
    display: block;
    width: 100%;
    max-width: 940px;
    margin: 0 auto;
    font-size: 1.0rem;
    text-align: left;
  }

  .f_footerCopy small {
    display: flex;
    align-items: center;
    justify-content: space-between;
  }

  .f_footerCopy small span {
    flex-basis: auto;
  }

  .f_footerCopy br {
    display: none;
  }

  .f_footerPrivacy {
    display: block;
    width: 100%;
    max-width: 940px;
    padding-left: 8px;
    margin: 0 auto 0.5em;
    font-size: 1.0rem;
    text-align: left;
  }

  .f_footerPrivacy a::before {
    width: 5px;
    height: 5px;
    margin-right: 0;
    transform: rotate(45deg) translate(-6px, 4px);
  }

  .f_footerColorBar1 {
    width: 100%;
    max-width: 918px;
    height: auto;
    right: -400px;
    bottom: 140px;
  }

  .f_footerColorBar2 {
    width: 100%;
    max-width: 830px;
    height: auto;
    right: 90px;
    bottom: -300px;
  }

  .f_footerColorBar3 {
    width: 100%;
    max-width: 1281px;
    height: auto;
    left: -260px;
    bottom: -130px;
  }

  .f_footerColorBar4 {
    width: 100%;
    max-width: 882px;
    height: auto;
    left: -500px;
    bottom: -160px;
  }

  .f_footerColorBar5 {
    width: 100%;
    max-width: 461px;
    height: auto;
    left: -260px;
    bottom: -356px;
  }
}


/********************************************   */

/* モジュールクラス クラス名に m_ を付与 */

/* m_ の配下クラスに p_ を付与 */

/********************************************   */
.m_nav {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  width: 100%;
  position: relative;
  z-index: 0;

  &.--contents {
    & .p_nav__item {
      display: block;
      width: fit-content;
      height: auto;
      position: relative;
      z-index: 0;

      &:not(:last-child)::after {
        content: "";
        display: block;
        width: 1px;
        height: 30px;
        border-left: 1px solid #ddd;
        position: absolute;
        z-index: 1;
        top: 0;
        bottom: 0;
        right: 0;
        margin-block: auto;
      }
    }

    & .p_nav__name {
      display: flex;
      align-items: center;
      justify-content: center;
      flex-direction: column;
      width: 113px;
      min-height: 56px;
      color: #0068b7;
    }

    & .p_nav__name--jp {
      font-size: 1.3rem;
      font-weight: 500;
      letter-spacing: 0.1em;
      text-align: center;
      margin-block-end: 4px;
    }

    & .p_nav__name--en {
      font-family: "Oswald", serif;
      font-optical-sizing: auto;
      font-weight: 400;
      font-style: normal;
      font-size: 1.0rem;
      line-height: 1;
      letter-spacing: 0.03em;
      text-align: center;
    }

    & .p_nav__menu {
      display: block;
      visibility: hidden;
      opacity: 0;
      pointer-events: none;
      position: absolute;
      z-index: 25;
      transform: translate(-50%, -5%);
      transition: opacity 0.3s ease,
                  transform 0.3s ease;

      &.--active {
        display: block;
        width: 220px;
        visibility: visible;
        opacity: 1;
        pointer-events: auto;
        left: 50%;
        transform: translate(-50%, 0%);
        background-color: rgb(255 255 255 / 90%);
        padding: 25px 10px;

        &::before {
          content: "";
          display: block;
          width: 1px;
          height: 20px;
          border-left: 1px solid #000;
          position: absolute;
          z-index: 25;
          top: -5px;
          left: 0;
          right: 0;
          margin-inline: auto;
        }
      }
    }
  }

  &.--event,
  &.--entry {
    width: calc(50% - 2px);

    & .p_nav__head {
      display: flex;
      align-items: center;
      justify-content: center;
      width: 100%;
      min-height: 56px;
      position: relative;
      z-index: 0;
      font-size: 1.3rem;
      font-weight: 400;
      line-height: 1;
      letter-spacing: 0.03em;
      text-align: center;
      color: #fff;
    }

    .p_nav__menu {
      display: block;
      visibility: hidden;
      opacity: 0;
      pointer-events: none;
      position: absolute;
      z-index: 10;
      transition: opacity 0.3s ease;

      &.--active {
        display: flex;
        align-items: center;
        justify-content: center;
        visibility: visible;
        opacity: 1;
        pointer-events: auto;
        padding: 30px;
        gap: 10px;
        top: 56px;
      }
    }
  }

  &.--event {
    & .p_nav__head,
    & .p_nav__menu.--active {
      background-color: #4b8ce2;

      & .p_nav__item {
        display: block;
        width: fit-content;
      }

      & .p_nav__name {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 160px;
        min-height: 56px;
        background-color: #fff;
        color: #0068b7;
        text-decoration: none;
      }
    }

    & .p_nav__menu.--active {
      left: 50%;
      transform: translateX(-50%);
    }
  }

  &.--entry {

    & .p_nav__head,
    & .p_nav__menu.--active {
      background-color: #0068b7;

      & .p_nav__item {
        display: block;
        width: fit-content;
      }

      & .p_nav__name {
        display: flex;
        align-items: center;
        justify-content: center;
        flex-direction: column;
        width: 146px;
        min-height: 56px;
        background-color: #fff;
        text-decoration: none;
        color: #0068b7;
      }

      & .p_nav__name--num,
      & .p_nav__name--jp {
        font-size: 1.4rem;
        font-weight: 500;
        letter-spacing: 0.1em;
        line-height: 1;
      }

      & .p_nav__name--en {
        font-size: 1.7rem;
      }
    }

    & .p_nav__menu.--active {
      right: -60px;
    }
  }
}
.m_nav.--event .p_nav__name--en,
.m_nav.--entry .p_nav__name--en,
.m_nav.--entry .p_nav__name--jp {
  font-style: normal;
  font-weight: 500;
  letter-spacing: 0.03em;
  line-height: 1;
}
.m_nav.--event .p_nav__name--en,
.m_nav.--entry .p_nav__name--en {
  font-size: 1.3rem;
  margin-block-start: 4px;
}
@media screen and (width <= 768px) {
  .m_nav {

    &.--event,
    &.--entry {
      & .p_nav__menu.--active {
        width: 100vw;
        left: 0;
        right: 0;
        transform: translateX(0);
        position: fixed;
        padding-inline: 0;
      }
    }

    &.--event {
      & .p_nav__menu.--active .p_nav__name {
        width: calc(160 / 375 * 100vw);
      }
    }

    &.--entry .p_nav__menu.--active {
      flex-wrap: wrap;

      &::after {
        content: "";
        display: block;
        width: calc(160 / 375 * 100vw);
      }
    }

    &.--entry .p_nav__menu.--active .p_nav__item {
      width: calc(160 / 375 * 100vw);
    }

    &.--entry .p_nav__menu.--active .p_nav__name {
      width: 100%;
    }
  }
}

@media (any-hover: hover) {
  .m_nav.--contents .p_nav__item:hover .p_nav__name {
    filter: brightness(1.2);
  }

  .m_nav.--event .p_nav__name:hover,
  .m_nav.--entry .p_nav__name:hover {
    filter: brightness(1.2);
  }
}

.m_drop {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  width: 100%;
  gap: 5px;
}
.m_drop .p_drop__item {
  display: block;
  width: 100%;
}
.m_drop .p_drop__link {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  width: 100%;
  min-height: 32px;
  position: relative;
  z-index: 0;
  color: #0068b7;
  font-size: 1.3rem;
  font-weight: 400;
  text-decoration: none;

  &::before {
    content: "";
    display: block;
    width: 7px;
    height: 7px;
    border-top: 1px solid #0068b7;
    border-right: 1px solid #0068b7;
    transform: rotate(45deg);
    position: absolute;
    z-index: 10;
    top: 0;
    bottom: 0;
    right: 10px;
    margin-block: auto;
  }

  &.--blank::before {
    width: 15px;
    height: 12px;
    border: none;
    transform: rotate(0deg);
    background: url("/company/recruit/fresh/common/img/ico_blank_blue.svg") no-repeat center;
    background-size: contain;
    right: 5px;
  }
}
@media (any-hover: hover) {
  .m_drop .p_drop__link:hover {
    text-decoration: underline;
  }
}

.m_menu {
  display: block;
  width: min(calc(260 / 810 * 100%), 260px);
  background-color: rgb(255 255 255 / 95%);
  border-radius: 4px;
  padding: 15px;
  position: relative;
  z-index: 0;

  &.--bottom {
    display: flex;
    justify-content: flex-end;
    width: 100%;
    background-color: transparent;
  }
}
@media screen and (width <= 768px) {
  .m_menu {
    width: 100%;
    padding: calc(30 / 750 * 100vw) calc(30 / 750 * 100vw) calc(22 / 750 * 100vw);
  }
}

.m_menu .p_menu__title {
  display: flex;
  align-items: flex-start;
  flex-direction: column;
  width: 100%;
  padding-block-end: 7px;
  margin-block-end: 12px;
  border-bottom: 1.5px solid #73b2d8;
}
.m_menu .p_menu__title--jp {
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.1em;
  color: #0068b7;
  margin-block-end: 5px;
}
.m_menu .p_menu__title--en {
  font-family: "Oswald", serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
  font-size: 1.2rem;
  line-height: 1;
  letter-spacing: 0.03em;
  color: #73b2d8;
}
@media screen and (width <= 768px) {
  .m_menu .p_menu__title {
    padding-block-end: calc(8 / 375 * 100vw);
    margin-block-end: 0;
    border-bottom-width: 2px;
    border-bottom-color: transparent;
    position: relative;
    z-index: 0;

    &.--open {
      margin-block-end: calc(12 / 375 * 100vw);
      border-bottom-color: #73b2d8;
    }

    &::before,
    &::after {
      content: "";
      display: block;
      position: absolute;
      z-index: 5;
      top: 0;
      bottom: 0;
      left: auto;
      margin-block: auto;
    }
    &::before {
      width: calc(14 / 375 * 100vw);
      height: 1px;
      border-top: 1px solid #0068b7;
      right: calc(6 / 375 * 100vw);
    }
    &::after {
      width: 1px;
      height: calc(14 / 375 * 100vw);
      border-right: 1px solid #0068b7;
      right: calc(13 / 375 * 100vw);
    }
    &.--open::after {
      opacity: 0;
    }
  }

  .m_menu .p_menu__title--jp {
    font-size: 1.8rem;
  }

  .m_menu .p_menu__title--en {
    font-size: 1.5rem;
  }
}

.m_menu .p_menu__subTitle {
  display: flex;
  align-items: center;
  font-size: 1.3rem;
  font-weight: 400;
  color: #0068b7;
  margin-block-end: 5px;
  position: static;
  top: 0;
  left: 0;
  transform: translate(0, 0);
  padding: 0;

  &.--row {
    gap: 0.5em;
  }
}
.m_menu .p_menu__subTitle--en {
  font-family: "Oswald", serif;
    font-optical-sizing: auto;
    font-weight: 400;
    font-style: normal;
    font-size: 1.3rem;
    letter-spacing: 0.03em;
    line-height: 1;
}
@media screen and (width <= 768px) {
  .m_menu .p_menu__subTitle {
    font-size: 1.5rem;
    margin-block-end: 10px;
  }
  .m_menu .p_menu__subTitle--en {
    font-size: 1.4rem;
  }
}

.m_menu .p_menu__lst {
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  flex-direction: column;
  width: 100%;
  gap: 3px;

  &.--2col {
    flex-direction: row;
    flex-wrap: wrap;
    gap: 3px 4px;
  }
}
.m_menu .p_menu__item {
  display: block;
  width: 100%;
  height: auto;
  position: relative;
  z-index: 0;

  .--2col & {
    width: calc(50% - 2px);
  }
}
@media screen and (width <= 768px) {
  .m_menu > .p_menu__lst {
    display: flex;
    opacity: 0;
    height: 0;
    visibility: hidden;
    pointer-events: none;

    &.--open {
      opacity: 1;
      height: auto;
      visibility: visible;
      pointer-events: auto;
    }
  }
  .m_menu>.p_menu__inner {
    display: block;
    opacity: 0;
    height: 0;
    visibility: hidden;
    pointer-events: none;

    &.--open {
      opacity: 1;
      height: auto;
      visibility: visible;
      pointer-events: auto;
    }
  }

  .m_menu .p_menu__lst {
    gap: 10px;

    &.--2col {
      flex-direction: row;
      flex-wrap: wrap;
      gap: 10px 10px;
    }
  }

  .m_menu .p_menu__item {
    display: block;
    width: 100%;
    height: auto;
    position: relative;
    z-index: 0;

    .--2col & {
      width: calc(50% - 5px);
    }
  }
}

.m_menu .p_menu__link {
  display: flex;
  align-items: center;
  width: 100%;
  min-height: 30px;
  font-size: 1.3rem;
  font-weight: 400;
  color: #0068b7;
  text-decoration: none;
  padding-inline-end: 20px;
  position: relative;
  z-index: 0;

  &::before {
    content: "";
    display: block;
    width: 7px;
    height: 7px;
    border-top: 1px solid #0068b7;
    border-right: 1px solid #0068b7;
    transform: rotate(45deg);
    position: absolute;
    z-index: 1;
    top: 0;
    bottom: 0;
    right: 11px;
    margin-block: auto;
  }

  &.--1col {
    width: fit-content;
    padding-inline-end: 25px;
  }

  &.--blank::before {
    width: 15px;
    height: 12px;
    border: none;
    transform: rotate(0deg);
    background: url("/company/recruit/fresh/common/img/ico_blank_blue.svg") no-repeat center;
    background-size: contain;
    right: 5px;
  }

  &.--1row {
    width: 100%;
    margin-block: 10px;
    border-top: 1.5px solid #73b2d8;
    border-bottom: 1.5px solid #73b2d8;

    &::before {
      display: none;
    }
  }
}
@media screen and (any-hover: hover) {
  .m_menu .p_menu__link:hover {
    text-decoration: underline;
  }
}
@media screen and (width <= 768px) {
  .m_menu .p_menu__link {
    min-height: calc(36 / 375 * 100vw);
    font-size: 1.5rem;
    padding-inline-end: calc(20 / 375 * 100vw);

    &::before {
      width: calc(7 / 375 * 100vw);
      height: calc(7 / 375 * 100vw);
      right: calc(11 / 375 * 100vw);
    }

    &.--1col {
      padding-inline-end: calc(25 / 375 * 100vw);
    }

    &.--blank::before {
      width: calc(15 / 375 * 100vw);
      height: calc(12 / 375 * 100vw);
      right: calc(5 / 375 * 100vw);
    }

    &.--1row {
      margin-block: calc(10 / 375 * 100vw);
      border-top-width: 2px;
      border-bottom-width: 2px;
    }
  }
}

.m_checkpoint {
  display: block;
  width: 100%;
  position: relative;
  z-index: 0;
  padding-left: calc(20 / 318 * 100%);
}
.m_checkpoint .p_checkpoint__title {
  display: flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  min-height: 24px;
  background-color: #0068b7;
  padding-inline: 6px;
  font-family: "Oswald", serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
  font-size: 1.3rem;
  line-height: 1;
  letter-spacing: 0.03em;
  color: #fff;
  position: absolute;
  z-index: 10;
  top: -24px;
  left: 0;
}
.m_checkpoint .p_checkpoint__lst {
  display: block;
  width: 100%;
  height: auto;
  padding-top: 200px;
  position: relative;
  z-index: 0;
}
.m_checkpoint .p_checkpoint__item {
  padding-left: calc(18 / 298 * 100%);
  opacity: 0;
  visibility: hidden;
  transform: scale(1.05);
  transition: opacity 0.5s ease,
              transform 0.5s ease;
  position: absolute;
  z-index: 0;
  top: 0;
  left: 0;

  &.--active {
    opacity: 1;
    visibility: visible;
    transform: scale(1);
    z-index: 10;
  }
}
.m_checkpoint .p_checkpoint__subTitle {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  width: fit-content;
  min-width: 180px;
  min-height: 24px;
  font-size: 1.2rem;
  font-weight: 500;
  background-color: #fff;
  padding: 3px 10px;
  color: #000;
  transform: translate(0, 0);
  position: absolute;
  z-index: 10;
  top: 0;
  left: 0;
}
.m_checkpoint .p_checkpoint__read {
  margin-block-start: 10px;
  font-size: 1.2rem;
  font-weight: 400;
  line-height: calc(16 / 12);
}

/********** リンク **********/
.m_menuLink,
.m_menuLinkBlank {
  position: relative;
  z-index: 0;
  display: flex;
  width: 100%;
  padding: calc(35 / 750 * 100vw) calc(40 / 750 * 100vw) calc(35 / 750 * 100vw) calc(26 / 750 * 100vw);
  font-size: 4vw;
  line-height: 1;
  color: #fff;
  text-decoration: none;
  letter-spacing: 0.08em;
}

.m_menuLink:visited,
.m_menuLinkBlank:visited {
  color: #fff;
}

.m_menuLink::before {
  position: absolute;
  top: 0;
  right: calc(24 / 750 * 100vw);
  bottom: 0;
  display: block;
  width: calc(11 / 750 * 100vw);
  height: calc(11 / 750 * 100vw);
  margin: auto 0;
  content: "";
  border-top: 1px solid #fff;
  border-right: 1px solid #fff;
  transform: rotate(45deg);
}

.m_menuLinkBlank::before {
  position: absolute;
  top: 0;
  right: calc(23 / 750 * 100vw);
  bottom: 0;
  display: block;
  width: calc(17 / 750 * 100vw);
  height: calc(17 / 750 * 100vw);
  margin: auto 0;
  content: "";
  background: url('/company/recruit/fresh/common/img/ico_link_blank.svg') no-repeat center;
  background-size: contain;
}

.m_menuLink {
  align-items: center;
}

.m_menuLinkLeft {
  flex-basis: 27%;
}

.m_menuLinkRight {
  flex-basis: 73%;
  font-size: 3.2vw;
  line-height: 1.41;
  letter-spacing: 0.05em;
}

.m_linkBox {
  display: block;
  width: 100%;
}

.m_linkBox .p_mark,
.m_linkBox .p_pdf {
  position: relative;
  z-index: 0;
  display: block;
  width: 100%;
  padding-bottom: calc(20 / 750 * 100vw);
  font-size: 3.2vw;
  font-weight: 700;
  line-height: 1;
  color: #0068b6;
  text-decoration: none;
  border-bottom: 1px solid #0068b6;
}

.m_linkBox .p_mark.is-color2,
.m_linkBox .p_pdf.is-color2 {
  color: #5fd2b4;
  border-bottom-color: #5fd2b4;
}

.m_linkBox .p_mark::before {
  position: absolute;
  top: calc(6 / 750 * 100vw);
  right: 0;
  z-index: 0;
  display: block;
  width: calc(9 / 750 * 100vw);
  height: calc(9 / 750 * 100vw);
  content: "";
  border-top: 1px solid #0041AA;
  border-right: 1px solid #0041AA;
  transform: rotate(45deg);
}

.m_linkBox .p_mark.is-color2::before {
  border-top-color: #5fd2b4;
  border-right-color: #5fd2b4;
}

.m_linkBox .p_pdf::before {
  position: absolute;
  top: calc(0 / 750 * 100vw);
  right: calc(6 / 750 * 100vw);
  display: block;
  width: calc(55 / 750 * 100vw);
  height: calc(30 / 750 * 100vw);
  content: "";
  background: url('/company/recruit/fresh/common/img/icon_pdf.svg') no-repeat center;
  background-size: contain;
}

@media screen and (min-width: 960px) {

  .m_menuLink,
  .m_menuLinkBlank {
    position: relative;
    z-index: 0;
    display: flex;
    width: 100%;
    padding: calc(35 / 750 * 100vw) calc(40 / 750 * 100vw) calc(35 / 750 * 100vw) calc(26 / 750 * 100vw);
    font-size: 4vw;
    line-height: 1;
    color: #fff;
    text-decoration: none;
    letter-spacing: 0.08em;
  }

  .m_menuLink::before {
    position: absolute;
    top: 0;
    right: calc(24 / 750 * 100vw);
    bottom: 0;
    display: block;
    width: calc(11 / 750 * 100vw);
    height: calc(11 / 750 * 100vw);
    margin: auto 0;
    content: "";
    border-top: 1px solid #fff;
    border-right: 1px solid #fff;
    transform: rotate(45deg);
  }

  .m_menuLinkBlank::before {
    position: absolute;
    top: 0;
    right: calc(23 / 750 * 100vw);
    bottom: 0;
    display: block;
    width: calc(17 / 750 * 100vw);
    height: calc(17 / 750 * 100vw);
    margin: auto 0;
    content: "";
    background: url('/company/recruit/fresh/common/img/ico_link_blank.svg') no-repeat center;
    background-size: contain;
  }

  .m_menuLink {
    align-items: center;
  }

  .m_menuLinkLeft {
    flex-basis: 24.853%;
  }

  .m_menuLinkRight {
    flex-basis: 75.146%;
    font-size: 3.2vw;
    line-height: 1.41;
    letter-spacing: 0.05em;
  }

  .m_linkBox .p_mark,
  .m_linkBox .p_pdf {
    padding-bottom: 12px;
    font-size: 1.3rem;
  }

  .m_linkBox .p_mark:hover,
  .m_linkBox .p_pdf:hover {
    opacity: 0.7;
  }

  .m_linkBox .p_mark::before {
    top: 2px;
    right: 8px;
    width: 7px;
    height: 7px;
    transition: right 150ms ease-out;
  }

  .m_linkBox .p_mark:hover::before {
    right: 2px;
  }

  .m_linkBox .p_pdf::before {
    position: absolute;
    top: 0;
    right: 10px;
    width: 30px;
    height: 16px;
  }
}





/********** 職種、社員、採用情報 **********/
.m_lower {
  display: box;
  display: flexbox;
  display: flex;
  flex-wrap: wrap;
  flex-wrap: wrap;
  margin-top: calc(80 / 750 * 100vw);
}

.m_lower .p_lowerLeft {
  -ms-flex-preferred-size: 50%;
  flex-basis: 50%;
}

.m_lower .p_lowerLeft .p_lowerInner {
  background: url('/company/recruit/fresh/common/img/bg_menu1_sp.jpg') no-repeat center;
  background-size: cover;
}

.m_lower .p_lowerRight {
  -ms-flex-preferred-size: 50%;
  flex-basis: 50%;
}

.m_lower .p_lowerRight .p_lowerInner {
  background: url('/company/recruit/fresh/common/img/bg_menu2_sp.jpg') no-repeat center;
  background-size: cover;
}

.m_lower .p_lowerBottom {
  -ms-flex-preferred-size: 100%;
  flex-basis: 100%;
  margin-top: calc(10 / 750 * 100vw);
}

.m_lower .p_lowerBottom.linkNone {
  position: relative;
  z-index: 0;
  pointer-events: none;
}

.m_lower .p_lowerBottom.linkNone::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 10;
  display: block;
  width: 100%;
  height: 100%;
  margin: auto;
  content: "";
  background-color: rgb(0 0 0 / 30%);
}

.m_lower .p_lowerBottom .p_lowerInner {
  padding-bottom: calc(72 / 750 * 100vw);
  background: url('/company/recruit/fresh/common/img/bg_menu3_sp.jpg') no-repeat center;
  background-size: cover;
}

.m_lower .p_lowerInner {
  position: relative;
  z-index: 0;
  display: block;
  width: 100%;
  padding: calc(93 / 750 * 100vw) calc(10 / 750 * 100vw) calc(10 / 750 * 100vw);
  color: #fff;
  text-decoration: none;
}

.m_lower .p_lowerInner:visited {
  color: #fff;
}

.m_lower .p_lowerInner::before {
  position: absolute;
  right: calc(10 / 750 * 100vw);
  bottom: calc(12 / 750 * 100vw);
  z-index: 10;
  display: block;
  width: calc(9 / 750 * 100vw);
  height: calc(9 / 750 * 100vw);
  content: "";
  border-top: 1px solid #fff;
  border-right: 1px solid #fff;
  transform: rotate(45deg);
  transform: rotate(45deg);
}

.m_lower .p_lowerInnerTit {
  margin-bottom: calc(38 / 750 * 100vw);
  font-size: 3.73vw;
  font-weight: 700;
  line-height: 1;
  text-align: center;
  letter-spacing: 0.14em;
}

.m_lower .p_lowerInnerTxt {
  font-size: 3.2vw;
  line-height: 1.33;
  letter-spacing: 0.1em;
}

@media screen and (min-width: 960px) {
  .m_lower {
    width: 100%;
    max-width: 980px;
    margin: 100px auto 0
  }

  .m_lower .p_lowerLeft .p_lowerInner {
    background-image: url('/company/recruit/fresh/common/img/bg_menu1_pc.jpg');
  }

  .m_lower .p_lowerRight .p_lowerInner {
    background-image: url('/company/recruit/fresh/common/img/bg_menu2_pc.jpg');
  }

  .m_lower .p_lowerBottom {
    margin-top: 5px;
  }

  .m_lower .p_lowerBottom .p_lowerInner {
    padding-top: 87px;
    padding-bottom: 86px;
    background-image: url('/company/recruit/fresh/common/img/bg_menu3_pc.jpg')
  }

  .m_lower .p_lowerInner {
    padding: 70px 14px 10px;
    transition: all 150ms ease-out;
    transition: all 150ms ease-out;
  }

  .m_lower .p_lowerInner:hover {
    opacity: 0.7;
  }

  .m_lower .p_lowerInner:hover::before {
    right: 2px;
  }

  .m_lower .p_lowerInner::before {
    right: 14px;
    bottom: 10px;
    width: 7px;
    height: 7px;
    transition: all 150ms ease-out;
    transition: all 150ms ease-out;
  }

  .m_lower .p_lowerInnerTit {
    margin-bottom: 72px;
    font-size: 2.2rem
  }

  .m_lower .p_lowerBottom .p_lowerInnerTit {
    margin-bottom: 0;
  }

  .m_lower .p_lowerInnerTxt {
    font-size: 1.6rem;
  }

  .m_lower .p_lowerInnerTxt br {
    display: none;
  }
}

@media screen and (min-width: 960px) and (min-device-pixel-ratio: 2) {
  .m_lower .p_lowerLeft .p_lowerInner {
    background-image: url('/company/recruit/fresh/common/img/bg_menu1_pc@2.jpg');
  }

  .m_lower .p_lowerRight .p_lowerInner {
    background-image: url('/company/recruit/fresh/common/img/bg_menu2_pc@2.jpg');
  }

  .m_lower .p_lowerBottom .p_lowerInner {
    background-image: url('/company/recruit/fresh/common/img/bg_menu3_pc@2.jpg');
  }
}

.m_fadeIn {
  opacity: 0.01;
}

.m_fadeIn.is-show {
  animation: FadeInAnimation 1000ms ease-in-out 0ms 1 normal forwards;
}

.m_fadeIn .p_slideUp {
  transform: translate(0, 10%);
}

.m_fadeIn.is-show .p_slideUp {
  animation: SlideUpAnimation 1000ms ease-in-out 0ms 1 normal forwards;
}

@keyframes FadeInAnimation {
  0% {
    opacity: 0.01;
  }

  100% {
    opacity: 1;
  }
}

@keyframes SlideUpAnimation {
  0% {
    transform: translate(0, 10%);
  }

  100% {
    transform: translate(0, 0);
  }
}



/********** モーダル **********/
.m_modal {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 200;
  display: none;
  width: 100vw;
  height: 100vh;
  margin: auto;
  background-color: rgb(217 217 217 / 90%);
}

.m_modal .p_frame {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 10;
  display: block;
  width: 90vw;
  height: 84vh;
  padding: calc(20 / 750 * 100vw) calc(30 / 750 * 100vw) 0 calc(30 / 750 * 100vw);
  margin: auto;
  overflow: hidden;
  background-color: #fff;
}

.m_modal.is-movie .p_frame {
  background-color: transparent;
}

.m_modal .p_close {
  display: block;
  width: calc(64 / 750 * 100vw);
  height: calc(84 / 750 * 100vw);
  padding: 0;
  margin: 0 0 calc(10 / 750 * 100vw) auto;
  overflow: hidden;
  text-indent: 140%;
  white-space: nowrap;
  background: url('/company/recruit/fresh/common/img/icon_close.svg') no-repeat center;
  background-size: contain;
  border: none;
}

.m_modal .p_close:focus {
  outline: none;
}

.m_modal .p_inner {
  position: relative;
  z-index: 0;
  display: block;
  width: 100%;
  height: 88%;
  overflow-y: auto;
}

@media screen and (min-width: 960px) {
  .m_modal {
    width: 100%;
    height: 100%;
  }

  .m_modal .p_frame {
    display: block;
    width: 100%;
    max-width: 960px;
    height: 84%;
    max-height: 1000px;
    padding: 70px 110px 0 140px;
    background-color: #fff;
  }

  .m_modal .p_inner {
    height: 97%;
  }

  .m_modal .p_close {
    position: absolute;
    top: 24px;
    right: 30px;
    z-index: 10;
    width: 44px;
    height: 64px;
    margin-bottom: 10px;
    cursor: pointer;
  }
}
