@charset "utf-8";

/* ↓↓↓ common ↓↓↓ */
html {
  overflow-x: hidden;
}

/* ↑↑↑ common ↑↑↑ */

/* ↓↓↓ fv ↓↓↓ */
.fv {
  width: 100%;
  height: 603px;
  padding-top: 75px;
  position: relative;
  container-type: inline-size;
}

@media (max-width: 768px) {
  .fv {
    height: 500px;
    padding-top: 35px;
  }
}

.fv::before {
  content: '';
  position: absolute;
  top: 0;
  right: 0;
  width: 66.321cqw;
  height: 100%;
  background: rgb(140, 188, 237);
  background: linear-gradient(-120deg, rgba(100, 219, 214, 0.5) -10%, rgba(140, 211, 244, 0.5) 48%, rgba(140, 188, 237, 0.5) 110%);
}

@media (max-width: 768px) {
  .fv::before {
    width: 85.334%;
  }
}

.fv::after {
  content: 'WORK';
  position: absolute;
  bottom: -6px;
  right: -2px;
  font-family: var(--abel);
  font-size: 13.5rem;
  letter-spacing: -0.02em;
  line-height: .73;
  color: transparent;
  -webkit-text-stroke: 1px #FFF;
  text-stroke: 1px #FFF;
  opacity: .8;
}

@media (max-width: 1200px) {
  .fv::after {
    font-size: calc(13.7754cqw - 15px);
  }
}

@media (max-width: 768px) {
  .fv::after {
    font-size: 6.15rem;
    line-height: .95;
    -webkit-text-stroke: 0.5px #FFF;
    text-stroke: 0.5px #FFF;
  }
}

.fv .image-block {
  width: 75.472cqw;
  margin: 0 auto;
  translate: -30px 0;
  position: relative;
  z-index: 1;
}

@container (max-width: 980px) {
  .fv .image-block {
    margin-left: 10.204cqw;
    translate: 0;
  }
}

@media (max-width: 768px) {
  .fv .image-block {
    width: 85.334%;
    margin-left: 0;
  }
}

.fv .image-block .pagetitle {
  width: 378px;
  height: 78px;
  font-family: var(--notosans);
  font-size: 3.0rem;
  color: #fff;
  display: grid;
  place-content: center;
  position: relative;
  z-index: 2;
  overflow: hidden;
  background: rgb(0, 107, 216);
  background: linear-gradient(90deg, rgba(0, 107, 216, 1) 0%, rgba(0, 158, 230, 1) 48%, rgba(0, 107, 216, 1) 100%);
  scale: 0 1;
  transform-origin: left;
}

@container (max-width: 980px) {
  .fv .image-block .pagetitle {
    width: 38.572cqw;
    font-size: max(22px, 3.0612cqw);
  }
}

@media (max-width: 768px) {
  .fv .image-block .pagetitle {
    width: 270px;
    height: 56px;
    font-size: 2.4rem;
  }
}

.fv .image-block .pagetitle .wrap {
  display: block;
  width: fit-content;
  height: 100%;
  transform-origin: left;
  translate: -100% 0;
  overflow: hidden;
}

.fv .image-block .pagetitle .txt {
  display: block;
  width: 100%;
  height: 100%;
  translate: 100% 0;
}

.fv .image-block .image {
  width: 100%;
  height: 400px;
  margin-top: -39px;
  position: relative;
  z-index: 1;
  overflow: hidden;
}

@media (max-width: 768px) {
  .fv .image-block .image {
    height: 390px;
    margin-top: -28px;
  }
}

.fv .image-block .image img {
  height: 100%;
  object-fit: cover;
  object-position: center;
}

/* ↑↑↑ fv ↑↑↑ */

/* ↓↓↓ contents ↓↓↓ */
.contents {
  margin-top: 90px;
  padding: 0 27px;
  container-type: inline-size;
}

@media (max-width: 768px) {
  .contents {
    margin-top: 65px;
  }
}

.read-block {
  max-width: 720px;
  margin: 0 auto;
}

.read-block .title {
  margin-bottom: 20px;
  padding-bottom: 30px;
  font-family: var(--notosans);
  font-size: 3.2rem;
  color: #4F515E;
  text-align: center;
  letter-spacing: .3em;
  line-height: 1;
  position: relative;
}

.read-block .title.-abel {
  font-family: var(--abel);
}

@container (max-width: 645px) {
  .read-block .title {
    font-size: 4.9612cqw;
  }
}

@media (max-width: 768px) {
  .read-block .title {
    margin-bottom: 25px;
    padding-bottom: 20px;
    font-size: 2.8rem;
    line-height: 1.6;
  }
}

.read-block .title::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  translate: -50% 0;
  width: 45px;
  height: 1px;
  background-color: #006BD8;
}

.read-block .text {
  font-size: 1.4rem;
  font-weight: 400;
  line-height: 2.14;
  text-align: justify;
  word-break: break-all;
}

.occupation-image {
  max-width: 480px;
  margin: 70px auto 0;
}

.occupation {
  width: calc(100% + 54px);
  padding: 110px 27px 80px;
  translate: -27px 0;
}

.occupation.-technical {
  margin-top: 85px;
  background: url(../img/employee/technical-bg_pc.jpg) no-repeat;
  background-size: cover;
}

.occupation.-office {
  background: url(../img/employee/office-bg_pc.jpg) no-repeat;
  background-size: cover;
}

@media (max-width: 768px) {
  .occupation {
    padding: 90px 12px 55px;
  }

  .occupation.-technical {
    background: url(../img/employee/technical-bg_sp.jpg) repeat-y;
    background-size: 100% auto;
    margin-top: 75px;
  }

  .occupation.-office {
    background: url(../img/employee/office-bg_sp.jpg) repeat-y;
    background-size: 100% auto;
  }
}

.occupation .group {
  max-width: 900px;
  margin: 0 auto;
  padding: 0 25px 75px;
  background-color: #fff;
}

@media (max-width: 768px) {
  .occupation .group {
    padding: 0 35px 35px;
  }
}

.occupation .group .title-wrap {
  position: relative;
  margin-bottom: 65px;
  padding-top: 80px;
}

@media (max-width: 768px) {
  .occupation .group .title-wrap {
    margin-bottom: 50px;
    padding-top: 85px;
  }
}

.occupation .group .title-wrap::before {
  content: '';
  position: absolute;
  top: -40px;
  left: 50%;
  width: 1px;
  height: 80px;
  background-color: #006BD8;
}

.occupation.-technical .group .title-wrap::before {
  background-color: #006BD8;
}

.occupation.-office .group .title-wrap::before {
  background-color: #22CCC4;
}

.occupation.-office .group .card .caption {
  background-color: #22CCC4;
}

@media (max-width: 768px) {
  .occupation .group .title-wrap::before {
    height: 64px;
    top: -32px;
  }
}

.occupation .group .title-wrap::after {
  content: '';
  position: absolute;
  top: 40px;
  left: 50%;
  translate: -6px 0;
  rotate: 45deg;
  width: 13px;
  height: 13px;
}

.occupation.-technical .group .title-wrap::after {
  background-color: #006BD8;
}

.occupation.-office .group .title-wrap::after {
  background-color: #22CCC4;
}

@media (max-width: 768px) {
  .occupation .group .title-wrap::after {
    top: 32px;
    translate: -5px 0;
    width: 11px;
    height: 11px;
  }
}

.occupation .group .title-wrap .head {
  display: block;
  font-family: 'Shippori Mincho', serif;
  font-size: 2.8rem;
  font-weight: 500;
  line-height: 1;
  letter-spacing: .3em;
  color: #4F515D;
  text-align: center;
}

@media (max-width: 768px) {
  .occupation .group .title-wrap .head {
    font-size: 2.4rem;
  }
}

.occupation .group .inner {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  max-width: 790px;
  margin: 0 auto;
}

.occupation .group .inner::after {
  content: '';
  display: block;
  width: calc(100% / 3);
}

@media (max-width: 768px) {
  .occupation .group .inner ::after{
    display: none;
  }
}

.occupation .group .card {
  position: relative;
  width: calc(100% / 3);
  padding: 0 15px;
  background-color: #fff;
}

.occupation .group .card:nth-of-type(3n) {
  padding: 0 0 0 30px;
}

.occupation .group .card:nth-of-type(3n)::before {
  content: '';
  position: absolute;
  width: 1px;
  height: 80%;
  bottom: 0;
  left: 6px;
  border-left: 1px dashed #A7A8AE;
}

.occupation .group .card:nth-of-type(3n + 1) {
  padding: 0 30px 0 0;
}

.occupation .group .card:nth-of-type(3n + 1)::before {
  content: '';
  position: absolute;
  width: 1px;
  height: 80%;
  bottom: 0;
  right: 6px;
  border-left: 1px dashed #A7A8AE;
}

.occupation .group .card:nth-of-type(n + 4) {
  margin-top: 35px;
}

@media (max-width: 768px) {
  .occupation .group .card {
    width: 100%;
    padding: 0 0 25px;
  }

  .occupation .group .card:nth-of-type(3n),
  .occupation .group .card:nth-of-type(3n + 1) {
    padding: 0 0 25px;
  }

  .occupation .group .card:nth-of-type(3n)::before,
  .occupation .group .card:nth-of-type(3n + 1)::before {
    display: none;
  }

  .occupation .group .card:not(:last-of-type)::after {
    content: '';
    position: absolute;
    display: block;
    width: 100%;
    height: 1px;
    left: 0;
    bottom: 0;
    border-bottom: 1px dashed #A7A8AE;
  }

  .occupation .group .card:nth-of-type(n + 2) {
    margin-top: 20px;
  }
  
}

.occupation .group .card .caption {
  display: flex;
  align-items: center;
  justify-content: center;
  max-width: 174px;
  width: 100%;
  height: 25px;
  font-size: 1.8rem;
  letter-spacing: 0.2em;
  margin: 0 auto 18px;
  color: #fff;
}

.occupation.-technical .group .card .caption {
  background-color: #006BD8;
}

.occupation.-office .group .card .caption {
  background-color: #22CCC4;
}

.occupation .group .card .text {
  text-align: justify;
  font-size: 1.4rem;
  line-height: 2;
  letter-spacing: 0.04em;
}

.interview {
  padding-top: 105px;
}

@media (max-width: 768px) {
  .interview {
    padding-top: 75px;
  }
}

.interview .btn-group {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  margin-top: 50px;
}

@media (max-width: 768px) {
  .interview .btn-group {
    width: calc(100% + 54px);
    translate: -27px 0;
  }
}

.interview .btn-group .btn {
  cursor: pointer;
  position: relative;
  overflow: hidden;
  display: flex;
  justify-content: center;
  align-items: center;
  height: 48px;
  border-radius: 24px;
  font-size: 1.6rem;
  letter-spacing: 0.2em;
  margin: 0 8px 8px;
}

@media (max-width: 768px) {
  .interview .btn-group .btn {
    margin: 0 5px 8px;
  }
}

.interview .btn-group .btn.-all {
  width: 118px;
  color: #009EE6;
  background: linear-gradient(90deg, #4ED6D0, #3389E0);
}

.interview .btn-group .btn.-all.-active {
  color: #fff;
}

.interview .btn-group .btn.-all::before {
  content: '';
  position: absolute;
  top: 1px;
  left: 1px;
  width: calc(100% - 2px);
  height: calc(100% - 2px);
  background-color: #fff;
  border-radius: 24px;
}

.interview .btn-group .btn.-all.-active::before {
  display: none;
}

.interview .btn-group .btn.-technical {
  width: 200px;
  color: #006BD8;
  border: 1px solid #006BD8;
  background-color: #fff;
}

.interview .btn-group .btn.-technical.-active {
  color: #fff;
  background-color: #006BD8;
}

.interview .btn-group .btn .txt {
  position: relative;
  z-index: 1;
}

.interview .list {
  max-width: 900px;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  margin: 70px auto 0;
  container-type: inline-size;
}

@media (max-width: 768px) {
  .interview .list {
    margin: 50px auto 0;
  }
}

.interview .list .searchitem {
  position: relative;
  display: flex;
  flex-direction: column;
  width: calc((100% - 45px) / 2);
  padding-left: 27px;
  transition: all 300ms 0s ease;
}

.interview .list .searchitem:nth-child(n + 3) {
  margin-top: 85px;
}

@media (max-width: 768px) {
  .interview .list .searchitem {
    width: 100%;
    padding-left: 20px;
  }

  .interview .list .searchitem:nth-child(n + 2) {
    margin-top: 50px;
  }
}

.interview .list .searchitem.-hide {
  animation-name: itemHide;
  animation-delay: 0s;
  animation-duration: .3s;
  animation-timing-function: ease;
  animation-fill-mode: forwards;
}

@keyframes itemHide {
  0% {
    transform: scale(1);
    visibility: visible;
  }

  100% {
    transform: scale(0);
    visibility: hidden;
  }
}

.interview .list .searchitem.-none {
  display: none;
}

.interview .list .searchitem.-show {
  display: flex;
  animation-name: itemShow;
  animation-delay: 0s;
  animation-duration: .3s;
  animation-timing-function: ease;
  animation-fill-mode: forwards;
}

@keyframes itemShow {
  0% {
    transform: scale(0);
    visibility: hidden;
  }

  100% {
    transform: scale(1);
    visibility: visible;
  }
}

.interview .copy-group {
  position: relative;
  margin: -54px 0 25px -27px;
  display: flex;
  flex-direction: column;
  min-height: 150px;
  z-index: 1;
}

@container (max-width: 900px) {
  .interview .copy-group {
    margin: min(-75px, -12cqw) 0 25px -27px;
    min-height: 16.667cqw;
  }
}

@media (max-width: 768px) {
  .interview .copy-group {
    margin: -92px 0 20px -20px;
    min-height: initial;
  }
}

.interview .copy-group .numbering {
  width: max-content;
  font-family: var(--zenkaku);
  font-size: 1.4rem;
  letter-spacing: 0.07em;
  color: #4F515E;
  background-color: #fff;
  padding: 0 2px;
}

@container (max-width: 900px) {
  .interview .copy-group .numbering {
    font-size: max(1.2rem, 1.55556cqw);
  }
}

@media (max-width: 768px) {
  .interview .copy-group .numbering {
    font-size: 1.4rem;
  }
}

.interview .copy-group .copy {
  width: max-content;
  font-family: 'Shippori Mincho', serif;
  font-size: 2.8rem;
  letter-spacing: 0.07em;
  color: #fff;
  padding: 0 8px;
  margin-top: 8px;
} 

.interview .copy-group.-typeA .copy {
  background-color: #22CCC4;
}

.interview .copy-group.-typeB .copy {
  background-color: #009EE6;
}

.interview .copy-group.-typeC .copy {
  background-color: #006BD8;
}

@container (max-width: 900px) {
  .interview .copy-group .copy {
    font-size: 3.11111cqw;
  }
}

@media (max-width: 768px) {
  .interview .copy-group .copy {
    font-size: 2.2rem;
  }
}

.interview .info-group {
  margin-top: auto;
  color: #4F515E;
}

.interview .info-group .affiliation {
  font-size: 1.4rem;
  margin-bottom: 10px;
}

.interview .info-group .name {
  font-size: 2rem;
  letter-spacing: 0.15em;
  margin-right: 20px;
}

@media (max-width: 768px) {
  .interview .info-group .name {
    font-size: 1.8rem;
    margin-right: 0;
  }
}

.interview .info-group .year {
  display: inline-block;
  font-size: 1.4rem;
  letter-spacing: 0.07em;
}

@container (max-width: 900px) {
  .interview .info-group .year {
    font-size: max(1.2rem, 1.55556cqw);
  }
}

@media (max-width: 768px) {
  .interview .info-group .year {
    font-size: 1.4rem;
  }
}

@media (min-width: 769px) {
  .interview .searchitem {
    transition: opacity 0.3s ease;
  }

  .interview .searchitem:hover {
    opacity: 0.7;
  }

  .interview .searchitem .image {
    overflow: hidden;
  }

  .interview .searchitem .image img {
    transition: transform 0.3s ease;
  }

  .interview .searchitem:hover .image img {
    transform: scale(1.1);
  }
}
/* ↑↑↑ contents ↑↑↑ */

/* ↓↓↓ footer ↓↓↓ */
footer .container .entry {
  margin-top: 80px;
}

@media (max-width: 768px) {
  footer .container .entry {
    margin-top: 70px;
  }
}

/* ↑↑↑ footer ↑↑↑ */