@charset "UTF-8";
/* CSS Document */
/*------------------------------
	フォント
------------------------------*/
/* Noto Sans JP */
/* Roboto */
/* Zen Kaku Gothic New */
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&family=Roboto:ital,wght@0,100..900;1,100..900&family=Zen+Kaku+Gothic+New:wght@900&display=swap');
/*------------------------------
	初期設定
------------------------------*/
/* 2023/10/24 ver.1.11.1 GitHub */
html,body{background-color:#fff}*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}:where([hidden]:not([hidden='until-found'])){display:none!important}:where(html){-webkit-text-size-adjust:none;tab-size:2;}:where(html:has(dialog:modal[open])){overflow:clip}:where(body){line-height:1.5;font-family: "Noto Sans JP","sans-serif"; -webkit-font-smoothing:antialiased}:where(button){all:unset}:where(input,button,textarea,select){font:inherit;color:inherit}:where(textarea){resize:vertical;resize:block}:where(button,label,select,summary,[role='button'],[role='option']){cursor:pointer}:where(:disabled){cursor:not-allowed}:where(label:has(>input:disabled),label:has(+input:disabled)){cursor:not-allowed}:where(a){color:inherit;text-underline-offset:.2ex;text-decoration:none}:where(ul,ol){list-style:none}:where(img,svg,video,canvas,audio,iframe,embed,object){display:block}:where(img,picture,svg,video){width:100%;max-inline-size:100%;block-size:auto}:where(p,h1,h2,h3,h4,h5,h6){overflow-wrap:break-word;font-size:1.6rem}:where(h2,h3,h4,h5,h6){font-weight:400}:where(hr){border:none;border-block-start:1px solid;color:inherit;block-size:0;overflow:visible}:where(dialog,[popover]){border:none;background:none;color:inherit;inset:unset;max-width:unset;max-height:unset}:where(dialog:not([open],[popover]),[popover]:not(:popover-open)){display:none!important}:where(:focus-visible){outline:3px solid CanvasText;box-shadow:0 0 0 5px Canvas;outline-offset:1px}:where(:focus-visible,:target){scroll-margin-block:8vh}:where(.visually-hidden:not(:focus-within,:active)){clip-path:inset(50%)!important;height:1px!important;width:1px!important;overflow:hidden!important;position:absolute!important;white-space:nowrap!important;border:0!important;user-select:none!important}
fieldset{all: unset;}

/*------------------------------
	ブラウザ対応
------------------------------*/
/* 2023/9/18(A (more) Modern CSS Reset) */
html{-moz-text-size-adjust:none;-webkit-text-size-adjust:none;text-size-adjust:none}body,h1,h2,h3,h4,p,figure,blockquote,dl,dd{margin-block-end:0}ul[role='list'],ol[role='list']{list-style:none}body{min-height:100dvh;line-height:1.5}h1,h2,h3,h4,button,input,label{line-height:1.1}a:not([class]){text-decoration-skip-ink:auto;color:currentColor}img,picture{max-width:100%;width:100%;display:block;font-size:1.6rem}input,button,textarea,select{font-family:inherit;font-size:inherit}textarea:not([rows]){min-height:10em}:target{scroll-margin-block:5ex}@media print{body{background-color:#fff!important}a,a:link,a:visited,a:hover{text-decoration:none!important}#tabLink{display:none!important}}

/*------------------------------
	ブレイクポイント
------------------------------*/
html {
  font-size: calc(100vw / 160);
  background-color: var(--beige-pale);
}

@media screen and (max-width: 768px) {
  html { font-size: calc(100vw / 37.5); }
}
/*------------------------------
カスタムプロパティ
------------------------------*/
:root {
  --black: #252525;
  --main: #0e178d;
  --accent: #d8ff00;
  --sub: #01a5e2;
  --bggray: #e5e5ef;

  --header-height: 8rem;
  @media screen and (max-width: 768px) {
    --header-height: 64px;
  }

  --font-noto: "Noto Sans JP";
  --font-roboto: "Roboto";
  --font-zen: "Zen Kaku Gothic New";

  --default-timing-function: cubic-bezier(0.35,0.35,0.2,1);
}
/*-----------------------------*/
@property --clip {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 0%;
}
@property --subpageMvPer01 {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 0%;
}
@property --subpageMvPer02 {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 0%;
}
@property --subpageMvPer03 {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 0%;
}
@property --subpageMvPerAptitudeTest01 {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 0%;
}
@property --subpageMvPerAptitudeTest02 {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 0%;
}
@property --subpageMvPerAptitudeTest03 {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 0%;
}
@property --subpageMvPerAptitudeTest04 {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 0%;
}
@property --subpageMvPerAptitudeTest05 {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 0%;
}
/*-----------------------------*/
@keyframes subpageMvPer01{
  to{--subpageMvPer01 : 100%}
}
@keyframes subpageMvPer02{
  to{--subpageMvPer02 : 100%}
}
@keyframes subpageMvPer03{
  to{--subpageMvPer03 : 100%}
}
@keyframes subpageMvPerAptitudeTest{
  to{
    --subpageMvPerAptitudeTest01 : 7%;
    --subpageMvPerAptitudeTest02 : 67.5%;
    --subpageMvPerAptitudeTest03 : 83.5%;
    --subpageMvPerAptitudeTest04 : 87.5%;
    --subpageMvPerAptitudeTest05 : 100%
  }
}

/*------------------------------
全体設定
------------------------------*/
body {
  font-size: 1.6rem;
  line-height: 1.1;
  font-family: "Noto Sans JP", sans-serif;
  background-color: #fff;
  color: var(--black);
  text-align: left;
  position: relative;
  overflow-x: hidden;
}
::selection,
::-webkit-selection {
  color: #fff;
  background-color: var(--main);
}
img::selection,
img::-webkit-selection {
  color: inherit;
  background-color: transparent;
}
/*------------------------------
表示切り替え
------------------------------*/
.spmask { display: block; }
.sponly { display: none; }
br.spmask { display: inline; }

@media screen and (max-width: 768px) {
  br.spmask,.spmask { display: none; }
  .sponly { display: block; }
  br.sponly { display: inline; }
}
/*------------------------------*/
body.menu-open,
body.is-loading {
  overflow: hidden;
}
html.is-loading,
body.is-loading {
  overflow: hidden;
  overscroll-behavior: none;
  touch-action: none;
}
/*------------------------------*/
.readText{
  font-size: 1.6rem;
  line-height: 2;
  text-align: left;
  @media screen and (max-width: 768px) {
    font-size: 1.3rem;
    line-height: 1.9;
  }
  &.center{
    text-align: center;
  }
}
/*------------------------------*/
[id^="anc"]{
  position: absolute;
  top: calc((var(--header-height)) * -1);
  left: 0;
  pointer-events: none;
}
:has(> [id^="anc"]){
  position: relative;
}
/*------------------------------
	MARK:magnetic
------------------------------*/
.magnetic-hover{
  width: 4rem;
  height: 4rem;
  border-radius: 50%;
  background-color: #fff;
  display: grid;
  place-content: center;
  position: relative;
  flex-shrink: 0;
  @media screen and (max-width: 768px) {
    width: 3.2rem;
    height: 3.2rem;
  }
  &::after{
    position: relative;
    z-index: 0;
    content: "";
    display: block;
    width: calc(4rem - 2px);
    height: calc(4rem - 2px);
    border-radius: 50%;
    background-color: var(--main);
    transform: scale(0.21);
    transition: transform 0.3s cubic-bezier(0, .66, 0, 1);
    @media screen and (max-width: 768px) {
      width: calc(3.2rem - 2px);
      height: calc(3.2rem - 2px);
    }
  }
  span{
    position: absolute;
    z-index: 1;
    display: block;
    width: 1.6rem;
    height: 1.6rem;
    top: calc(50% - 0.8rem);
    left: calc(50% - 0.8rem);
    @media screen and (max-width: 768px) {
      width: 1.2rem;
      height: 1.2rem;
      top: calc(50% - 0.6rem);
      left: calc(50% - 0.6rem);
    }
    &::after{
      content: "→";
      display: block;
      color: #fff;
      font-size: 1.6rem;
      /* width: 100%;
      height: 100%;
      border-radius: 50%;
      background-color: #fff; */
      line-height: 1;
      transform: scale(0);
      transition: transform 0.3s cubic-bezier(0, .64, .51, .99) -0.15s;
      @media screen and (max-width: 768px) {
        font-size: 1.2rem;
      }
    }
  }
  &.large{
    width: 6rem;
    height: 6rem;
    @media screen and (max-width: 768px) {
      width: 3.2rem;
      height: 3.2rem;
    }
    &::after{
      width: calc(6rem - 2px);
      height: calc(6rem - 2px);
      @media screen and (max-width: 768px) {
        width: calc(3.2rem - 2px);
        height: calc(3.2rem - 2px);
      }
    }
    span{
      width: 2rem;
      height: 2rem;
      top: calc(50% - 1rem);
      left: calc(50% - 1rem);
      @media screen and (max-width: 768px) {
        width: 1.2rem;
        height: 1.2rem;
        top: calc(50% - 0.6rem);
        left: calc(50% - 0.6rem);
      }
      &::after{
        font-size: 2rem;
        @media screen and (max-width: 768px) {
          font-size: 1.2rem;
        }
      }
    }
  }
}
a:has(.magnetic-hover){
  @media (any-hover:hover) {
    &:hover{
      .magnetic-hover::after{
        transform: scale(1);
      }
      .magnetic-hover span::after{
        transform: scale(1);
        transition: transform 0.3s cubic-bezier(0, .64, .54, 1.36) 0.05s;
      }
    }
  }
}
.hover-img{
  overflow: hidden;
  .image{
    overflow: hidden;
  }
  @media (any-hover:hover) {
    &:hover{
      img:not(.no-hover){
        transform: scale(1.06);
      }
    }
  }
  img:not(.no-hover){
    transition: transform 0.5s cubic-bezier(0.35, 0.35, 0.2, 1);
  }
}
/*------------------------------*/
.hover-text{
  display: inline-block;
  padding-block: 0.4em;
  background-image: linear-gradient(90deg, currentColor);
  background-position: 100% 100%;
  background-repeat: no-repeat;
  background-size: 0 1px;
  transition: background-size 0.3s var(--default-timing-function), background-image 0.3s var(--default-timing-function), color 0.3s var(--default-timing-function);
  @media (any-hover:hover) {
    &:hover {
      background-size: 100% 1px;
      background-position: 0 100%;
    }
  }
}
/*------------------------------*/
.hover-image{
  overflow: hidden;
  display: block;
  img:not(.no-hover){
    transition: transform 0.6s var(--default-timing-function);
  }
  @media (any-hover:hover) {
    &:hover {
      img:not(.no-hover){
        transform: scale(1.08);
      }
    }
  }
}
/*------------------------------*/
.hover-arrow{
  .arrow{
    position: relative;
    width: 1em;
    height: 1em;
    font-style: normal;
    font-family: var(--font-roboto);
    &::before{
      content: "";
      display: block;
      width: 100%;
      aspect-ratio: 1;
      background-color: #fff;
      border-radius: 50%;
      position: absolute;
      left: 50%;
      top: 50%;
      transform-origin: center center;
      transform: translate(-50%,-50%) scale(0);
      transition: transform 0.1s ease-in-out;
    }
    &::after{
      content: "→";
      color: var(--main);
      position: absolute;
      top: 0;
      left: 0;
      opacity: 0;
      transform: translate(-0.25em,0);
      transition: transform 0s 0.2s, opacity 0.1s ease-in-out;
    }
    &.prev{
      &::after{
        content: "←";
        transform: translate(0.25em,0);
      }
    }
  }
  @media (any-hover:hover) {
    &:hover {
      .arrow::before{
        transform: translate(-50%,-50%) scale(1.52);
        transition: transform 0.3s var(--default-timing-function);
      }
      .arrow::after{
        transform: translate(0,0);
        opacity: 1;
        transition: transform 0.3s ease 0.05s, opacity 0.2s ease-in-out 0.08s;
      }
    }
  }
  &.invert{
    .arrow::before{
      background-color: var(--main);
    }
    .arrow::after{
      color: #fff;
    }
  }
}
/*------------------------------*/


/*------------------------------
	MARK:UTIL
------------------------------*/
.inner{
  margin-inline: auto;
  width: 110rem;
  @media screen and (max-width: 768px) {
    padding-inline: 2rem;
    width: 100%;
  }
  &.narrow{
    width: 100rem;
    @media screen and (max-width: 768px) {
      width: 100%;
    }
  }
}
/*----------------------------*/
:root{
  --js-function: cubic-bezier(.08, .76, .4, 1);
}
:where(.jsTargetText) {
  white-space: nowrap;
}
:where(.jsTargetFadeUp) {
  transform: translateY(1rem);
  opacity: 0;
  transition: transform  1.2s var(--js-function), opacity 1.2s var(--js-function);
  &.shown {
    transform: translateY(0);
    opacity: 1;
  }
}
/*----------------------------*/
main:has(.subpage-mv){
  padding-top: var(--header-height);
}
.subpage-mv{
  --easing: cubic-bezier(.16, 1, .3, 1);
  --aptitude-mv-color: #272e95;
  height: 34rem;
  color: #fff;
  background-image: linear-gradient(
    90deg,
    var(--main) 0% var(--subpageMvPer03),
    var(--accent) var(--subpageMvPer03) var(--subpageMvPer02),
    var(--sub) var(--subpageMvPer02) var(--subpageMvPer01),
    var(--main) var(--subpageMvPer01) 100%
  );
  @media screen and (max-width: 768px) {
    height: 20rem;
  }
  &.shown{
    animation: 
    subpageMvPer01 0.4s var(--easing) 0.1s forwards,
    subpageMvPer02 0.5s var(--easing) 0.3s forwards,
    subpageMvPer03 0.7s var(--easing) 0.5s forwards
    ;
  }
  &.aptitude-test-mv{
    background-image: linear-gradient(
      55deg,
      var(--aptitude-mv-color) 0% var(--subpageMvPerAptitudeTest01),
      var(--main) var(--subpageMvPerAptitudeTest01) var(--subpageMvPerAptitudeTest02),
      var(--aptitude-mv-color) var(--subpageMvPerAptitudeTest02) var(--subpageMvPerAptitudeTest03),
      var(--main) var(--subpageMvPerAptitudeTest03) var(--subpageMvPerAptitudeTest04),
      var(--aptitude-mv-color) var(--subpageMvPerAptitudeTest04) var(--subpageMvPerAptitudeTest05),
      var(--main) var(--subpageMvPerAptitudeTest05) 100%
      );
    &.shown{
      animation: 
        subpageMvPerAptitudeTest 1.6s var(--easing) 0.1s forwards
      ;
    }
  }
  &.jobs-page-mv{
    background-image: linear-gradient(180deg, var(--main) calc(100% - 9rem), transparent calc(100% - 9rem));
    height: auto;
    @media screen and (max-width: 768px) {
      background-image: none;
      background-color: var(--main);
    }
    &.office{
      --main: var(--office);
    }
    .mv-image{
      display: grid;
      grid-template-columns: 1fr 1fr;
      @media screen and (max-width: 768px) {
        grid-template-columns: 1fr;
        padding-bottom: 3rem;
      }
    }
    .desc-wrap{
      display: flex;
      flex-direction: column;
      justify-content: space-between;
      padding-top: 2rem;
      @media screen and (max-width: 768px) {
        display: contents;
      }
      .title{
        @media screen and (max-width: 768px) {
          margin-top: 2rem;
        }
        .en{
          font-family: var(--font-roboto);
          letter-spacing: 0.1em;
          @media screen and (max-width: 768px) {
            font-size: 1.4rem;
          }
        }
        h1{
          font-weight: 600;
          font-size: 7.2rem;
          margin-top: 1rem;
          @media screen and (max-width: 768px) {
            font-size: 3.2rem;
          }
        }
      }
    }
    .scope{
      display: flex;
      flex-direction: column;
      row-gap: 3rem;
      padding-top: 1rem;
      border-top: max(0.1rem, 1px) solid #fff;
      @media screen and (max-width: 768px) {
        grid-column: span 2;
        margin-top: 3rem;
        padding-top: 2rem;
      }
    }
    .scope-wrap{
      min-height: 9rem;
      display: flex;
      flex-direction: column;
      justify-content: flex-end;
      @media screen and (max-width: 768px) {
        min-height: auto;
      }
    }
    .scope-hd{
      font-size: 1.6rem;
      font-weight: 600;
      &::before{
        content: "◼︎";
        display: inline-block;
        margin-right: 0.25em;
      }
      &.license{
        color: var(--main);
        @media screen and (max-width: 768px) {
          color: #fff;
        }
      }
    }
    ul{
      display: flex;
      flex-wrap: wrap;
      gap: 1rem;
      margin-top: 1.5rem;
      li{
        display: inline-block;
        padding: 1rem 1.2rem;
        background-color: var(--bggray);
        color: var(--black);
        @media screen and (max-width: 768px) {
          padding: 0.8rem 1rem;
          font-size: 1.4rem;
        }
      }
    }
    .image{
      @media screen and (max-width: 768px) {
        grid-row: 2/3;
        margin-top: 2rem;
      }
    }
  }
  .title-wrap{
    display: flex;
    align-items: flex-start;
    justify-content: center;
    flex-direction: column;
    row-gap: 1.2rem;
    padding-bottom: 6rem;
    height: 24rem;
    @media screen and (max-width: 768px) {
      height: 14rem;
      row-gap: 0.5rem;
      padding-bottom: 2rem;
    }
    .en{
      font-family: var(--font-roboto);
      font-size: 10rem;
      font-weight: 500;
      letter-spacing: 0.02em;
      @media screen and (max-width: 768px) {
        font-size: 5rem;
      }
    }
    h1{
      font-size: 1.6rem;
      font-weight: 600;
      @media screen and (max-width: 768px) {
        font-size: 1.4rem;
      }
    }
    &.requirements-title{
      display: grid;
      place-content: center;
      background: url(../image/requirements/mv.svg) no-repeat center/contain;
      @media screen and (max-width: 768px) {
        width: calc(100% - 4rem);
      }
      h1{
        display: grid;
        place-content: center;
        grid-area: 1/1;
        height: 100%;
        font-size: 5.2rem;
        font-weight: 600;
        padding-top: 1rem;
        @media screen and (max-width: 768px) {
          font-size: 2.4rem;
        }
      }
    }
    &.aptitude-test-title{
      width: 77rem;
      justify-content: flex-start;
      margin-top: -2rem;
      padding-bottom: 0;
      @media screen and (max-width: 768px) {
        width: 90%;
        margin-top: 2rem;
      }
    }
  }
}
/*----------------------------*/
.description{
  margin-block: 7rem;
  @media screen and (max-width: 768px) {
    margin-block: 4rem;
  }
  .readText{
    text-align: center;
    @media screen and (max-width: 768px) {
      text-align: left;
    }
  }
}
/*----------------------------*/
.aside-container{
  display: grid;
  grid-template-columns: 43rem 1fr;
  @media screen and (max-width: 768px) {
    display: block;
  }
  aside{
    padding-inline: 6rem 6rem;
    background-color: var(--bggray);
    @media screen and (max-width: 768px) {
      display: none;
    }
    .aside-sticky{
      position: sticky;
      top: var(--header-height);
      left: 0;
      padding-top: 8rem;
      height: calc(100dvh - var(--header-height));
      display: flex;
      flex-direction: column;
      justify-content: space-between;
      padding-bottom: 6rem;
    }
    .link-wrap{
      margin-top: 6rem;
      li{
        position: relative;
        padding-left: 1.6rem;
        &+ li{
          margin-top: 2.5rem;
        }
        &.current{
          &::before{
            background-color: var(--main);
          }
        }
        &::before{
          content: "";
          width: 0.4rem;
          height: 100%;
          background-color: #d0d0e5;
          position: absolute;
          left: 0;
          top: 0;
        }
      }
      a{
        span{
          font-size: 1.3rem;
          font-weight: 500;
          line-height: 1.65;
        }
        @media (any-hover: hover) {
          &:hover{
            color: var(--main);
          }
          
        }
      }
    }
  }
  .contents{
    padding-left: 9rem;
    padding-top: 8rem;
    padding-right: 25rem;
    padding-bottom: 13rem;
    @media screen and (max-width: 768px) {
      padding-left: 0;
      padding-top: 4rem;
      padding-right: 0;
      padding-bottom: 6rem;
      margin-inline: 2rem;
    }
  }
}
/*----------------------------*/
.filter{
  position: relative;
  .filter-grid{
    display: grid;
    grid-template-columns: 14rem 1fr;
    min-height: 16rem;
    @media screen and (max-width: 768px) {
      min-height: auto;
      grid-template-columns: 1fr;
    }
    .en{
      display: grid;
      place-content: center;
      background-color: var(--main);
      font-family: var(--font-roboto);
      color: #fff;
      font-size: 2.1rem;
      font-weight: 500;
      @media screen and (max-width: 768px) {
        font-size: 1.8rem;
        height: 4rem;
      }
    }
    .container{
      background-color: var(--bggray);
      padding: 1rem 1.5rem;
      position: relative;
      display: flex;
      align-items: stretch;
      @media screen and (max-width: 768px) {
        display: block;
        padding: 1rem 2rem 2rem;
      }
    }
    .terms{
      padding-block: 1rem;
      padding-right: 2rem;
      min-width: 21rem;
      max-width: 28rem;
      @media screen and (max-width: 768px) {
        min-width: auto;
        max-width: none;
        padding-block: 1.5rem;
        padding-right: 0;
      }
      &+ .terms{
        border-left: #b0b0c6 solid max(0.1rem,1px);
        padding-left: 2rem;
        @media screen and (max-width: 768px) {
          border-left: none;
          padding-left: 0;
          border-top: #b0b0c6 solid max(0.1rem, 1px);
        }
      }
    }
    .terms-title{
      font-size: 1.4rem;
      font-weight: 500;
      &::before{
        content: "◼︎";
        color: var(--main);
        display: inline-block;
        margin-right: 0.25em;
      }
    }
    .btn-wrap{
      font-size: 1.4rem;
      margin-top: 2rem;
      display: flex;
      gap: 1rem;
      flex-wrap: wrap;
      @media screen and (max-width: 768px) {
        margin-top: 1.5rem;
      }
      button{
        padding: 0.8rem 1.5rem;
        background-color: #fff;
        @media screen and (max-width: 768px) {
          padding: 0.6rem 1.5rem;
        }
        &.is-active{
          background-color: var(--main);
          color: #fff;
        }
        @media (any-hover: hover) {
          &:not(.is-active):hover{
            background-color: #f6f5f9;
          }
        }
      }
    }
    .resetBtn{
      position: absolute;
      bottom: 2rem;
      right: 3rem;
      color: var(--main);
      text-decoration: underline;
      font-size: 1.4rem;
      @media screen and (max-width: 768px) {
        position: static;
        display: block;
        margin-inline: auto 0;
      }
      @media (any-hover: hover) {
        &:hover{
          opacity: 0.5;
        }
      }
    }
  }
}

/*------------------------------
	MARK:keyframes
------------------------------*/
@keyframes beacon-ring {
  0% {
    width: 1rem;
    height: 1rem;
    opacity: 1;
  }
  100% {
    width: 8rem;
    height: 8rem;
    opacity: 0;
  }
}

@keyframes beacon-spin {
  0% { rotate: 0deg; }
  100% { rotate: 360deg; }
}

.interview-view-cursor{
  position: fixed;
  top: 0;
  left: 0;
  z-index: 1000001;
  width: 8.4rem;
  height: 8.4rem;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #080f6be6;
  color: #fff;
  font-family: var(--font-roboto);
  font-size: 1.4rem;
  font-weight: 500;
  letter-spacing: 0;
  line-height: 1;
  opacity: 0;
  pointer-events: none;
  transform: translate3d(-50%, -50%, 0) scale(0.72);
  will-change: transform, opacity;
  &.is-active{
    opacity: 1;
  }
  @media (any-hover:none), (pointer: coarse) {
    display: none;
  }
}