@charset "UTF-8";
/* webfont 変数　*/
/* common-title
-----------------------------------------------------*/
/* ofi */
@media (min-width: 1696px) {
  /*====================================================================/
  /*--Large PC 以上--
  /====================================================================*/
}
@media (min-width: 1296px) {
  /*====================================================================/
  /*---PC 以上--
  /====================================================================*/
}
@media (min-width: 1024px) {
  /*====================================================================/
  /*--XGAサイズ　iPadPro 以上--
  /====================================================================*/
}
@media (min-width: 768px) {
  /*====================================================================/
  /*--タブレット　iPadmini 以上--
  /====================================================================*/
}
@media (min-width: 576px) {
  /*====================================================================/
  /*--スマホ 以上--
  /====================================================================*/
}
@media (min-width: 376px) {
  /*====================================================================/
  /*--iPhone 以上--
  /====================================================================*/
}
@media (max-width: 1695px) {
  /*====================================================================/
  /*--Large PC 未満--
  /====================================================================*/
}
@media (max-width: 1295px) {
  /*====================================================================/
  /*--PC 未満--
  /====================================================================*/
}
@media (max-width: 1023px) {
  /*====================================================================/
  /*--XGAサイズ iPadPro 未満--
  /====================================================================*/
}
@media (max-width: 767px) {
  /*====================================================================/
  /*--タブレット iPadmini 未満--
  /====================================================================*/
}
@media (max-width: 575px) {
  /*====================================================================/
  /*--iPhone 以下--
  /====================================================================*/
}
@media (min-width: 576px) and (max-width: 767px) {
  /*====================================================================/
  /*--スマホ以上 タブレット iPadmini未満--
  /====================================================================*/
}
@media (min-width: 768px) and (max-width: 1023px) {
  /*====================================================================/
  /*--タブレット iPadmini以上 XGAサイズ iPadPro未満--
  /====================================================================*/
}
@media (min-width: 1024px) and (max-width: 1295px) {
  /*====================================================================/
  /*--XGAサイズ iPadPro以上 PC未満--
  /====================================================================*/
}
@media (min-width: 1296px) and (max-width: 1695px) {
  /*====================================================================/
  /*--px以上 Large PC未満--
  /====================================================================*/
}
/*====================================================================

index.css

=====================================================================*/
/*--------------------------------------------------------------------/
	scroll animation
/--------------------------------------------------------------------*/
.js-reveal-left {
  display: block;
  opacity: 0;
  clip-path: inset(0 100% 0 0); /* 上から下に隠れている状態 */
  transition: clip-path 0.5s cubic-bezier(0.5, 1, 0.25, 1), opacity 0.1s ease;
  pointer-events: none; /* 表示されるまでクリック不可にする（念のため） */
}

.js-reveal-top {
  display: block;
  opacity: 0;
  clip-path: inset(0 0 100% 0); /* 上から下に隠れている状態 */
  transition: clip-path 0.9s cubic-bezier(0.5, 1, 0.25, 1), opacity 0.1s ease;
  pointer-events: none; /* 表示されるまでクリック不可にする（念のため） */
}

/* クラスがついた時：表示 */
.js-reveal-left.is-active,
.js-reveal-top.is-active {
  opacity: 1;
  clip-path: inset(0 0 0 0); /* 全開 */
  pointer-events: auto;
}

.js-reveal-bottom {
  opacity: 0;
  /* 1. 下側を削る 2. 30px下に下げておく */
  transform: translateY(30px);
  /* transformもアニメーション対象に加える */
  transition: transform 1.2s cubic-bezier(0.5, 1, 0.25, 1), opacity 0.6s ease;
  pointer-events: none;
}

/* 表示状態 */
.js-reveal-bottom.is-active {
  opacity: 1;
  clip-path: inset(0 0 0 0);
  transform: translateY(0); /* 元の位置に戻る */
  pointer-events: auto;
}

/* フェードイン専用設定 */
.js-reveal-fade {
  opacity: 0;
  /* 透明度だけを1.2秒かけて変化させる */
  transition: opacity 1.2s ease;
  pointer-events: none;
}

/* 表示状態 */
.js-reveal-fade.is-active {
  opacity: 1;
  pointer-events: auto;
}

/*--------------------------------------------------------------------/
	main-view
/--------------------------------------------------------------------*/
.main-view {
  position: relative;
  padding-top: clamp(5em, 8vw, 8em);
  padding-bottom: clamp(6em, 9vw, 9em);
  overflow: hidden;
  color: #ffffff;
}
.main-view::before {
  position: absolute;
  top: 0;
  left: 0;
  content: "";
  width: 36%;
  height: 100%;
  background: rgba(54, 133, 243, 0.6);
  transform: skew(30deg);
  transform-origin: top left;
}
.main-view__inner {
  position: relative;
  z-index: 1;
}
.main-view__ttl {
  position: absolute;
  top: 0;
  left: 0;
  width: 71.66%;
  z-index: 2;
  max-width: 320px;
}
@media (min-width: 1920px) {
  .main-view__ttl {
    max-width: 16.66vw;
  }
}
@media (min-width: 768px) {
  .main-view__ttl {
    width: 40%;
    max-width: 510px;
  }
}
@media (min-width: 768px) and (min-width: 1920px) {
  .main-view__ttl {
    max-width: 26.56vw;
  }
}
.main-view__img {
  position: relative;
  width: 84%;
  padding-top: clamp(9em, 12vw, 12em);
  max-width: 1200px;
}
@media (min-width: 1920px) {
  .main-view__img {
    max-width: 62.5vw;
  }
}
.main-view__img {
  margin-left: auto;
  margin-right: auto;
}
@media (min-width: 1024px) {
  .main-view__img {
    padding-top: 0;
  }
}
@media (min-width: 1296px) {
  .main-view__img {
    width: 100%;
    max-width: 1000px;
  }
}
@media (min-width: 1296px) and (min-width: 1920px) {
  .main-view__img {
    max-width: 52.08vw;
  }
}

.main-view__bg {
  position: absolute;
  top: 14vw;
  display: flex;
  overflow: hidden;
  white-space: nowrap;
  z-index: -1;
}
@media (min-width: 1024px) {
  .main-view__bg {
    top: 6vw;
  }
}
.main-view__bg__list {
  display: flex;
  animation: animation 10s linear infinite;
}
@media (min-width: 1024px) {
  .main-view__bg__list {
    animation: animation 15ss linear infinite;
  }
}
.main-view__bg__list li {
  width: 40vw;
  margin-left: 120vw;
  height: auto;
}
@media (min-width: 1024px) {
  .main-view__bg__list li {
    width: 36vw;
    margin-left: 120vw;
  }
}

/*---------------------------------------------------------
 introduce-cont
---------------------------------------------------------*/
.introduce-cont {
  padding-top: clamp(20em, 40vw, 40em);
  position: relative;
}
@media (min-width: 1024px) {
  .introduce-cont {
    padding-top: clamp(10em, 20vw, 20em);
  }
}
@media (min-width: 1024px) {
  .introduce-cont__img {
    position: absolute;
    width: 80%;
    top: 30vw;
    right: -4%;
    z-index: -1;
  }
}
@media (min-width: 1296px) {
  .introduce-cont__img {
    top: 14vw;
    width: 67.7%;
  }
}
@media (max-width: 1023px) {
  .introduce-cont__img {
    margin-bottom: clamp(2em, 3vw, 3em);
    display: flex;
    justify-content: flex-end;
  }
  .introduce-cont__img img {
    width: 80%;
  }
}
@media (min-width: 1024px) {
  .introduce-cont__inner {
    position: relative;
  }
}

.introduce-cont__ttl {
  position: absolute;
  top: 50vw;
  width: 50%;
  max-width: 280px;
}
@media (min-width: 1920px) {
  .introduce-cont__ttl {
    max-width: 14.58vw;
  }
}
@media (min-width: 576px) {
  .introduce-cont__ttl {
    top: 30vw;
  }
}
@media (min-width: 768px) {
  .introduce-cont__ttl {
    max-width: 360px;
  }
}
@media (min-width: 768px) and (min-width: 1920px) {
  .introduce-cont__ttl {
    max-width: 18.75vw;
  }
}
@media (min-width: 1024px) {
  .introduce-cont__ttl {
    top: -4em;
    right: 0;
    width: 34.33%;
    max-width: 410px;
  }
}
@media (min-width: 1024px) and (min-width: 1920px) {
  .introduce-cont__ttl {
    max-width: 21.35vw;
  }
}
.introduce-cont__ttl__inner {
  width: 100%;
  position: relative;
}
.introduce-cont__ttl .is-txt {
  position: absolute;
  display: block;
  width: 22%;
}
.introduce-cont__ttl .is-txt01 {
  top: 0;
  right: 0;
}
.introduce-cont__ttl .is-txt02 {
  top: 0;
  right: 25%;
}
.introduce-cont__ttl .is-txt03 {
  top: 10vw;
  left: 25%;
}
@media (min-width: 1024px) {
  .introduce-cont__ttl .is-txt03 {
    top: 6em;
  }
}
.introduce-cont__ttl .is-txt04 {
  top: 10vw;
  left: 0;
}
@media (min-width: 1024px) {
  .introduce-cont__ttl .is-txt04 {
    top: 6em;
  }
}
.introduce-cont__txt {
  margin-top: 2em;
  line-height: 2.5;
  font-size: clamp(8.7px, 3.11vw, 17px);
}
@media (min-width: 768px) {
  .introduce-cont__txt {
    font-size: clamp(20px, 2.6vw, 24px);
  }
}
@media (min-width: 1024px) {
  .introduce-cont__txt {
    margin-top: 0;
  }
}
@media (min-width: 1296px) {
  .introduce-cont__txt {
    font-size: 1.5rem;
  }
}

.introduce-cont__gallery {
  padding-top: clamp(3em, 9vw, 9em);
  display: flex;
  overflow: hidden;
  white-space: nowrap;
}
@media (min-width: 1024px) {
  .introduce-cont__gallery {
    padding-top: clamp(12em, 18vw, 18em);
  }
}
.introduce-cont__gallery__list {
  display: flex;
  animation: animation 20s linear infinite;
}
@media (min-width: 1024px) {
  .introduce-cont__gallery__list {
    animation: animation 30s linear infinite;
  }
}
.introduce-cont__gallery__list li {
  width: 40vw;
  height: auto;
  margin-right: 2vw;
}
@media (min-width: 1024px) {
  .introduce-cont__gallery__list li {
    width: 23.75vw;
    margin-right: 1.25vw;
  }
}
.introduce-cont__gallery__list li:nth-of-type(even) {
  margin-top: 4vw;
}
@media (min-width: 1024px) {
  .introduce-cont__gallery__list li:nth-of-type(even) {
    margin-top: 2.5vw;
  }
}

@keyframes animation {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-100%);
  }
}
/*---------------------------------------------------------
 slider-cont 
---------------------------------------------------------*/
.slider-cont {
  padding-top: clamp(6em, 9vw, 9em);
  padding-bottom: clamp(6em, 9vw, 9em);
  color: #ffffff;
}
.slider-cont.slider-cont01 {
  background: #2B2929;
}
.slider-cont.slider-cont01 .slider-box__img .is-add {
  left: -10%;
}
.slider-cont.slider-cont01 .is-title {
  width: 60%;
}
.slider-cont.slider-cont01 .swiper-foot {
  left: 0;
}
@media (min-width: 768px) {
  .slider-cont.slider-cont01 .swiper-foot {
    left: 45%;
  }
}
.slider-cont.slider-cont02 {
  background: #104DA3;
}
@media (min-width: 768px) {
  .slider-cont.slider-cont02 .slider-box__inner {
    flex-direction: row-reverse;
  }
}
.slider-cont.slider-cont02 .slider-box__img .is-add {
  right: -12%;
}
.slider-cont.slider-cont02 .swiper-foot {
  left: 0;
}
.slider-cont__list {
  position: relative;
  max-width: 1520px;
  margin-left: auto;
  margin-right: auto;
}

.slider-box {
  width: 100%;
  margin-left: auto;
  margin-right: auto;
}
.slider-box__inner {
  display: flex;
}
@media (min-width: 768px) {
  .slider-box__inner {
    justify-content: space-between;
  }
}
@media (max-width: 767px) {
  .slider-box__inner {
    flex-direction: column;
    row-gap: 3em;
  }
}
.slider-box__img {
  position: relative;
}
@media (min-width: 768px) {
  .slider-box__img {
    width: 35.416%;
  }
}
@media (max-width: 767px) {
  .slider-box__img {
    width: 60%;
    margin-left: auto;
    margin-right: auto;
  }
}
.slider-box__img .is-add {
  position: absolute;
  bottom: -3em;
  width: 48%;
  z-index: 2;
}
.slider-box__img__inner {
  position: relative;
  border-radius: 0.5em;
  z-index: 2;
}
.slider-box__img__inner img {
  border-radius: 0.5em;
}
.slider-box__img__inner::before {
  position: absolute;
  transform-origin: center center;
  content: "";
  width: 100%;
  height: 100%;
  background: #F0E921;
  rotate: -15deg;
  border-radius: 0.5em;
  z-index: -1;
}
.slider-box__txt {
  padding-bottom: 6em;
}
@media (min-width: 768px) {
  .slider-box__txt {
    width: 54.86%;
  }
}
.slider-box__txt__ttl {
  margin-bottom: 0.4em;
  font-size: clamp(10.5px, 3.75vw, 28px);
}
@media (min-width: 768px) {
  .slider-box__txt__ttl {
    font-size: clamp(16px, 2.08vw, 32px);
  }
}
.slider-box__txt__ttl .is-title {
  font-size: 1.8em;
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: baseline;
  line-height: 1.2;
  font-weight: 700;
}
.slider-box__txt__ttl .is-title .is-num {
  color: #F0E921;
  justify-self: end;
  font-size: 1.5em;
  font-family: 'Montserrat', sans-serif;
}
.slider-box__txt__ttl .is-eng {
  text-transform: capitalize;
  color: #3685F3;
  font-weight: 600;
  font-family: 'Montserrat', sans-serif;
}
.slider-box__txt__catch {
  color: #202020;
  padding: 0.5em 1.25em;
  border-radius: 0.1em;
  background: #F0E921;
  margin-bottom: 1em;
  font-size: clamp(11px, 3.93vw, 20px);
  line-height: 1.5;
  font-weight: 700;
}
@media (min-width: 768px) {
  .slider-box__txt__catch {
    font-size: clamp(12px, 1.56vw, 26px);
  }
}
.slider-box__txt__catch p {
  width: fit-content;
  margin-left: auto;
  margin-right: auto;
}
@media (min-width: 768px) {
  .slider-box__txt__txt {
    font-size: clamp(11px, 1.43vw, 17px);
  }
}
@media (min-width: 1696px) {
  .slider-box__txt__txt {
    font-size: 1.06rem;
  }
}

.swiper {
  overflow: visible !important;
}

.swiper-foot {
  position: absolute;
  bottom: 5em;
}

.swiper-control {
  position: relative;
  width: 100%;
}

.swiper-next_prev {
  position: absolute;
  display: flex;
  height: 48px;
  flex-shrink: 0;
  width: 102px;
  column-gap: 12px;
}
@media (min-width: 1024px) {
  .swiper-next_prev {
    height: 64px;
    column-gap: 16px;
    width: 136px;
  }
}

.swiper-button-prev,
.swiper-button-next {
  margin: 0;
  float: none;
  display: block;
  background-image: none;
  width: 48px;
  height: 48px;
  position: relative;
}
@media (min-width: 1024px) {
  .swiper-button-prev,
  .swiper-button-next {
    width: 64px;
    height: 64px;
  }
}
.swiper-button-prev::before,
.swiper-button-next::before {
  content: "";
  position: absolute;
  background: transparent;
  border: 1px solid #ffffff;
  width: 100%;
  height: 100%;
  transition: all 0.3s ease 0s;
  border-radius: 50%;
}
.swiper-button-prev::after,
.swiper-button-next::after {
  position: absolute;
  top: 50%;
  left: 50%;
  color: #ffffff;
  font-size: 1.5em;
  z-index: 3;
  transition: all 0.3s ease 0s;
}
.swiper-button-prev:hover::before,
.swiper-button-next:hover::before {
  background: #023BAE;
  border-color: #023BAE;
}
.swiper-button-prev:hover::after,
.swiper-button-next:hover::after {
  color: #ffffff;
}

.slider-cont02 .swiper-button-prev:hover::before,
.slider-cont02 .swiper-button-next:hover::before {
  background: #ffffff;
  border-color: #ffffff;
}
.slider-cont02 .swiper-button-prev:hover::after,
.slider-cont02 .swiper-button-next:hover::after {
  color: #023BAE;
}

.swiper-button-prev:after {
  content: "\e902";
  font-family: "icomoon" !important;
  speak: never;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.swiper-button-prev::after {
  transform: translate(-60%, -50%);
}

.swiper-button-next:after {
  content: "\e901";
  font-family: "icomoon" !important;
  speak: never;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.swiper-button-next::after {
  transform: translate(-40%, -50%);
}

.swiper-navigation-icon {
  display: none !important;
}

.swiper-scrollbar {
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  width: calc(100% - 102px - 1em);
  height: 6px;
  z-index: 1;
  background: #f6f6f6;
}
@media (min-width: 1024px) {
  .swiper-scrollbar {
    width: calc(100% - 136px - 1em);
    height: 8px;
  }
}

.swiper-scrollbar-drag {
  background: #C9CED2;
  height: 6px;
  cursor: pointer;
  transition: all 0.3s ease 0s;
}
@media (min-width: 1024px) {
  .swiper-scrollbar-drag {
    height: 8px;
  }
}
.swiper-scrollbar-drag:hover {
  background-color: #1463D3;
}

/*---------------------------------------------------------
 message-cont
---------------------------------------------------------*/
.message-cont {
  position: relative;
  color: #202020;
  padding-top: clamp(5em, 10vw, 10em);
  padding-bottom: clamp(5em, 10vw, 10em);
  background: #E7DA42;
  overflow: hidden;
}
.message-cont::before, .message-cont::after {
  position: absolute;
  left: 0;
  content: "";
  width: 100%;
  height: 3px;
  background-image: linear-gradient(to right, #202020 24px, transparent 20px);
  background-size: 32px 8px;
  background-repeat: repeat-x;
  background-position: left bottom;
}
@media (min-width: 1024px) {
  .message-cont::before, .message-cont::after {
    background-image: linear-gradient(to right, #202020 32px, transparent 20px);
    background-size: 40px 8px;
    height: 4px;
  }
}
.message-cont::before {
  top: 1.5em;
}
.message-cont::after {
  bottom: 1.5em;
}
.message-cont__inner {
  position: relative;
  z-index: 1;
}
.message-cont__ttl {
  position: relative;
  text-align: center;
  z-index: 2;
  font-size: clamp(12px, 4.29vw, 20px);
}
@media (min-width: 1024px) {
  .message-cont__ttl {
    font-size: clamp(20px, 2vw, 32px);
  }
}
@media (min-width: 1296px) {
  .message-cont__ttl {
    font-size: 2rem;
  }
}
.message-cont__ttl em {
  display: block;
  color: #202020;
  text-transform: capitalize;
  font-style: normal;
  font-size: 1.75em;
  margin-bottom: 0.3em;
  line-height: 1;
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
}
@media (min-width: 768px) {
  .message-cont__ttl em {
    font-size: 2.8em;
  }
}
.message-cont__ttl b {
  display: block;
  width: fit-content;
  color: #ffffff;
  background: #202020;
  padding: 0.5em 1.25em;
  line-height: 1;
  font-weight: 700;
  margin-left: auto;
  margin-right: auto;
}
.message-cont__img {
  position: relative;
  border-radius: 0.5em;
  z-index: 1;
  margin-top: -1em;
  margin-bottom: 3em;
  max-width: 920px;
}
@media (min-width: 1920px) {
  .message-cont__img {
    max-width: 47.91vw;
  }
}
.message-cont__img {
  margin-left: auto;
  margin-right: auto;
}
@media (min-width: 1024px) {
  .message-cont__img {
    margin-bottom: clamp(3em, 4vw, 4em);
  }
}
.message-cont__img img {
  border-radius: 0.5em;
}
.message-cont__img::before {
  position: absolute;
  top: 1em;
  left: 1em;
  content: "";
  width: 100%;
  height: 100%;
  background: #ffffff;
  z-index: -1;
  border-radius: 0.5em;
}
.message-cont__txt {
  max-width: 920px;
}
@media (min-width: 1920px) {
  .message-cont__txt {
    max-width: 47.91vw;
  }
}
.message-cont__txt {
  margin-left: auto;
  margin-right: auto;
}
@media (min-width: 1296px) {
  .message-cont__bg {
    position: absolute;
    top: 8.5vw;
    left: 50%;
    right: 0;
    transform: translateX(-50%);
    width: 100%;
    min-width: 1920px;
  }
}
@media (min-width: 1920px) {
  .message-cont__bg {
    top: 7vw;
  }
}
@media (max-width: 1295px) {
  .message-cont__bg {
    margin-top: 2em;
  }
}

/*---------------------------------------------------------
 interview-cont
---------------------------------------------------------*/
.interview-cont {
  position: relative;
  color: #ffffff;
  padding-top: clamp(4em, 9vw, 9em);
  padding-bottom: clamp(4em, 9vw, 9em);
  background: #2B2929;
}
.interview-cont__txt {
  margin-bottom: clamp(3em, 6vw, 6em);
  display: flex;
  margin-left: auto;
  margin-right: auto;
  max-width: 1440px;
}
@media (min-width: 1920px) {
  .interview-cont__txt {
    max-width: 75vw;
  }
}
@media (min-width: 1024px) {
  .interview-cont__txt {
    align-items: center;
    column-gap: 8%;
  }
}
@media (max-width: 1023px) {
  .interview-cont__txt {
    flex-direction: column;
    row-gap: 1.5em;
  }
}
.interview-cont__txt__ttl {
  font-size: clamp(14px, 5vw, 32px);
}
@media (min-width: 1024px) {
  .interview-cont__txt__ttl {
    flex-shrink: 0;
    font-size: clamp(24px, 2.4vw, 36px);
  }
}
.interview-cont__txt__ttl em {
  display: block;
  color: #FB5F1C;
  text-transform: capitalize;
  font-style: normal;
  font-size: 2em;
  font-family: 'Montserrat', sans-serif;
}
.interview-cont__txt__ttl b {
  display: block;
  font-weight: 700;
}
@media (min-width: 768px) {
  .interview-cont__txt__txt {
    font-size: clamp(14px, 1.82vw, 18px);
  }
}
.interview-cont__list {
  margin-bottom: clamp(2em, 3vw, 3em);
  display: flex;
  flex-wrap: wrap;
  gap: 1em;
  gap: 1.5em 4%;
}
@media (min-width: 768px) {
  .interview-cont__list {
    gap: 1.5em 2%;
  }
}
@media (min-width: 1296px) {
  .interview-cont__list {
    gap: 1.5em 3%;
  }
}
.interview-cont__list > * {
  width: 48%;
}
@media (min-width: 768px) {
  .interview-cont__list > * {
    width: 23.5%;
  }
}
@media (min-width: 1296px) {
  .interview-cont__list > * {
    width: 22.75%;
  }
}
.interview-cont__list .is-modalbutton {
  position: relative;
  color: #ffffff;
  cursor: pointer;
  border-width: 0;
  width: 100%;
  background: transparent;
  -webkit-appearance: button;
  text-transform: none;
  overflow: visible;
  margin: 0;
  will-change: transform;
  backface-visibility: hidden;
  transform: translateZ(0);
  border-radius: 1em;
  transition: all 0.3s ease 0s;
}
.interview-cont__list .is-modalbutton img {
  transition: all 0.3s ease 0s;
}
.interview-cont__list .is-modalbutton:hover {
  background-color: #2B2929;
  transform: scale(1.1, 1.1);
}

.modal {
  display: none;
}

.modal.is-open {
  display: block;
}

.modal__overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(20, 99, 211, 0.8);
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 12;
}

.modal__container {
  position: relative;
  color: #ffffff;
  background-color: #104DA3;
  padding: clamp(1.5em, 3vw, 3em) clamp(1.5em, 5%, 5em);
  max-height: 100vh;
  overflow-y: auto;
  box-sizing: border-box;
  width: 90%;
  border-radius: 1em;
  max-width: 1200px;
}
@media (min-width: 1920px) {
  .modal__container {
    max-width: 62.5vw;
  }
}
@media (min-width: 768px) {
  .modal__container {
    padding: clamp(2em, 4vw, 4em) clamp(1.5em, 3%, 5em);
  }
}

.modal__flex {
  display: flex;
  width: 100%;
}
@media (min-width: 768px) {
  .modal__flex {
    column-gap: 5%;
    align-items: center;
  }
}
@media (max-width: 767px) {
  .modal__flex {
    flex-direction: column;
    row-gap: 2em;
  }
}

@media (min-width: 768px) {
  .modal__img {
    width: 45%;
    flex-shrink: 0;
  }
}
@media (min-width: 1024px) {
  .modal__img {
    width: 41%;
  }
}
@media (max-width: 767px) {
  .modal__img {
    width: min(60%, 395px);
  }
}

@media (min-width: 768px) {
  .modal__txt {
    flex-shrink: 1;
    width: 50%;
  }
}
@media (min-width: 1024px) {
  .modal__txt {
    width: 54%;
  }
}

.modal__ttl {
  line-height: 1.25;
  color: #F0E921;
  padding-bottom: 0.75em;
  margin-bottom: 1em;
  border-bottom: 1px solid #F0E921;
  font-size: clamp(16px, 5.71vw, 20px);
  font-weight: 700;
}
@media (min-width: 768px) {
  .modal__ttl {
    font-size: clamp(20px, 2.6vw, 36px);
  }
}
@media (min-width: 1296px) {
  .modal__ttl {
    font-size: 1.88rem;
  }
}

.modal__close {
  position: absolute;
  top: 0.5em;
  right: 1.25em;
  background: transparent;
  border: 0;
  color: #ffffff;
}
.modal__close::before {
  content: "✕";
  font-size: 2em;
}

@media (min-width: 768px) {
  .modal__cont {
    font-size: clamp(15px, 1.95vw, 18px);
  }
}
@media (min-width: 1696px) {
  .modal__cont {
    font-size: 1.13rem;
  }
}

/**************************\
  Demo Animation Style
\**************************/
@keyframes mmfadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes mmfadeOut {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}
@keyframes mmslideIn {
  from {
    transform: translateY(15%);
  }
  to {
    transform: translateY(0);
  }
}
@keyframes mmslideOut {
  from {
    transform: translateY(0);
  }
  to {
    transform: translateY(-10%);
  }
}
.micromodal-slide {
  display: none;
}

.micromodal-slide.is-open {
  display: block;
}

.micromodal-slide[aria-hidden=false] .modal__overlay {
  animation: mmfadeIn 0.3s cubic-bezier(0, 0, 0.2, 1);
}

.micromodal-slide[aria-hidden=false] .modal__container {
  animation: mmslideIn 0.3s cubic-bezier(0, 0, 0.2, 1);
}

.micromodal-slide[aria-hidden=true] .modal__overlay {
  animation: mmfadeOut 0.3s cubic-bezier(0, 0, 0.2, 1);
}

.micromodal-slide[aria-hidden=true] .modal__container {
  animation: mmslideOut 0.3s cubic-bezier(0, 0, 0.2, 1);
}

.micromodal-slide .modal__container,
.micromodal-slide .modal__overlay {
  will-change: transform;
}

/*---------------------------------------------------------
 works-cont
---------------------------------------------------------*/
.works-cont {
  position: relative;
  padding-top: clamp(4em, 9vw, 9em);
  padding-bottom: clamp(4em, 9vw, 9em);
  background: #ffffff;
  overflow: hidden;
}
.works-cont::before {
  position: absolute;
  top: 0;
  content: "";
  width: 50%;
  height: 100%;
  background: #F0E921;
  transform: skew(-30deg);
}
@media (min-width: 768px) {
  .works-cont::before {
    width: 40%;
    right: 46%;
    transform-origin: top right;
  }
}
@media (max-width: 767px) {
  .works-cont::before {
    width: 100%;
    left: 80%;
    transform-origin: top left;
  }
}
.works-cont__inner {
  display: flex;
  position: relative;
  z-index: 2;
}
@media (min-width: 768px) {
  .works-cont__inner {
    flex-direction: row-reverse;
    column-gap: 6%;
    align-items: center;
  }
}
@media (min-width: 1024px) {
  .works-cont__inner {
    column-gap: 8%;
  }
}
@media (max-width: 767px) {
  .works-cont__inner {
    flex-direction: column;
    row-gap: 3em;
  }
}
@media (min-width: 768px) {
  .works-cont__txt {
    width: 50%;
  }
}
@media (min-width: 1024px) {
  .works-cont__txt {
    width: 45%;
  }
}
.works-cont__txt__ttl {
  color: #1463D3;
  margin-bottom: clamp(0.75em, 1vw, 1em);
  text-align: center;
  font-weight: 900;
  font-size: clamp(16px, 5.71vw, 30px);
}
@media (min-width: 768px) {
  .works-cont__txt__ttl {
    text-align: left;
    font-size: clamp(24px, 3.13vw, 46px);
  }
}
@media (min-width: 1696px) {
  .works-cont__txt__ttl {
    font-size: 2.88rem;
  }
}
.works-cont__txt__ttl .is-add {
  width: clamp(80px, 30%, 203px);
  margin-left: auto;
  margin-right: auto;
}
@media (min-width: 768px) {
  .works-cont__txt__ttl .is-add {
    margin: 0;
    width: clamp(80px, 30%, 203px);
  }
}
.works-cont__txt__txt {
  font-size: clamp(8.5px, 3.04vw, 20px);
}
@media (min-width: 768px) {
  .works-cont__txt__txt {
    font-size: clamp(12px, 1.56vw, 20px);
  }
}
@media (min-width: 768px) {
  .works-cont__img {
    width: 44%;
  }
}
@media (min-width: 1024px) {
  .works-cont__img {
    width: 48%;
  }
}
@media (max-width: 767px) {
  .works-cont__img {
    width: 90%;
    margin-left: auto;
    margin-right: auto;
  }
}

/*---------------------------------------------------------
 recruitment-cont
---------------------------------------------------------*/
.recruitment-cont {
  padding-top: clamp(4em, 9vw, 9em);
  padding-bottom: clamp(4em, 9vw, 9em);
}
.recruitment-cont__ttl {
  text-align: center;
  margin-bottom: 1.5em;
  font-size: clamp(12px, 4.29vw, 20px);
}
@media (min-width: 768px) {
  .recruitment-cont__ttl {
    font-size: clamp(20px, 2.6vw, 24px);
  }
}
.recruitment-cont__ttl .is-add {
  display: block;
  width: clamp(100px, 30%, 158px);
  margin-bottom: 1em;
  margin-left: auto;
  margin-right: auto;
}
.recruitment-cont__ttl b {
  display: block;
  font-size: 2em;
  margin-bottom: 0.2em;
  color: #ffffff;
  font-weight: 700;
}
.recruitment-cont__ttl em {
  display: block;
  color: #F0E921;
  text-transform: capitalize;
  font-style: normal;
  font-family: 'Montserrat', sans-serif;
}
.recruitment-cont__table {
  background: #ffffff;
  border-radius: 0.5em;
  padding: clamp(1.5em, 3vw, 3em) clamp(1.5em, 8%, 5em);
  margin-bottom: clamp(3em, 6vw, 6em);
}
.recruitment-cont__table table {
  width: 100%;
  font-size: 0.9em;
}
@media (min-width: 768px) {
  .recruitment-cont__table table {
    font-size: 1em;
  }
}
.recruitment-cont__table table tr {
  border-bottom: 1px solid #C9CED2;
}
.recruitment-cont__table table th {
  text-align: left;
  padding: 1em 0;
  font-weight: 700;
}
@media (min-width: 768px) {
  .recruitment-cont__table table th {
    position: relative;
    display: table-cell;
    width: 25%;
    min-width: 180px;
    padding: 1.25em 0;
  }
}
@media (min-width: 1296px) {
  .recruitment-cont__table table th {
    width: 240px;
  }
}
@media (max-width: 767px) {
  .recruitment-cont__table table th {
    display: block;
    width: 100%;
    padding-bottom: 0;
  }
}
@media (min-width: 768px) {
  .recruitment-cont__table table th::before {
    position: absolute;
    bottom: -1px;
    left: 0;
    content: "";
    width: 100%;
    height: 1px;
    background: #1463D3;
  }
}
.recruitment-cont__table table td {
  vertical-align: center;
}
@media (min-width: 768px) {
  .recruitment-cont__table table td {
    display: table-cell;
    padding: 1em 1.25em 1em 0.5em;
  }
}
@media (max-width: 767px) {
  .recruitment-cont__table table td {
    display: block;
    width: 100%;
    padding-top: 0;
    padding-left: 0;
    padding-bottom: 1em;
  }
}

/*--------------------------------------------------------------------/
/* common-contact
---------------------------------------------------------------------*/
.common-contact {
  position: relative;
  color: #ffffff;
  background-color: #2B2929;
  border-radius: 0.5em;
  padding: clamp(2em, 3vw, 3em) clamp(1.5em, 8%, 5em);
}
@media (min-width: 768px) {
  .common-contact {
    padding: clamp(3em, 4vw, 4em) clamp(1.5em, 8%, 5em);
  }
}
.common-contact__inner {
  display: flex;
}
@media (min-width: 1024px) {
  .common-contact__inner {
    justify-content: space-between;
    align-items: center;
  }
}
@media (max-width: 1023px) {
  .common-contact__inner {
    flex-direction: column;
  }
}
.common-contact__ttl {
  margin-bottom: 1.5em;
  font-size: clamp(12px, 4.29vw, 20px);
}
@media (min-width: 1024px) {
  .common-contact__ttl {
    width: 30%;
    font-size: clamp(18px, 1.8vw, 32px);
  }
}
@media (min-width: 1696px) {
  .common-contact__ttl {
    font-size: 2rem;
  }
}
.common-contact__ttl b {
  display: block;
  font-size: 1.5em;
  margin-bottom: 0.3em;
  font-weight: 700;
}
.common-contact__ttl em {
  display: block;
  color: #F0E921;
  text-transform: capitalize;
  font-style: normal;
  font-family: 'Montserrat', sans-serif;
}
@media (min-width: 1024px) {
  .common-contact__txt {
    width: 68.57%;
  }
}
.common-contact__txt p {
  margin-bottom: 1.5em;
}
.common-contact__txt__flex {
  display: flex;
  margin-left: auto;
  margin-right: auto;
}
@media (min-width: 768px) {
  .common-contact__txt__flex {
    column-gap: 1em;
  }
}
@media (max-width: 767px) {
  .common-contact__txt__flex {
    flex-direction: column;
    row-gap: 1em;
  }
}
@media (min-width: 1296px) {
  .common-contact__txt__flex .is-entry {
    max-width: 440px;
  }
}
@media (min-width: 1296px) and (min-width: 1920px) {
  .common-contact__txt__flex .is-entry {
    max-width: 22.91vw;
  }
}
@media (min-width: 1296px) {
  .common-contact__txt__flex .is-line {
    max-width: 440px;
  }
}
@media (min-width: 1296px) and (min-width: 1920px) {
  .common-contact__txt__flex .is-line {
    max-width: 22.91vw;
  }
}