@charset "utf-8";

/* スタイルシート
作成者：Hatomi Inc.
作成日：R8.02.12
-------------------------------------------------------------------------------------*/

/* =================================================================================
  TOP
==================================================================================== */

/* =========================================================
  Recruit MV（TOP用）
========================================================= */

/* 背景 */
.recruitMv--graduate{   --mv-bg: url("../images/mv_graduate.jpg"); }
.recruitMv--highschool{ --mv-bg: url("../images/mv_highschool.jpg"); }
.recruitMv--midcareer{  --mv-bg: url("../images/mv_midcareer.jpg"); }

/* =========================================================
  MV base
========================================================= */

.recruitMv{
  position: relative;
  overflow: hidden;
  background: transparent;
  min-height: clamp(520px, 45vw, 760px);
}

/* TB */
@media only screen and (max-width: 960px){
  .recruitMv{
    min-height: clamp(460px, 62vw, 680px);
  }
}

/* SP */
@media only screen and (max-width: 480px){
  .recruitMv{
    min-height: clamp(520px, 120vw, 680px);
  }
}

/* =======================================================
  BG
========================================================= */

.recruitMv__bg{
  position: fixed;
  inset: 0;
  height: 100vh;

  background-image: var(--mv-bg);
  background-size: cover;
  background-position: 70% center;

  z-index: 0;
  pointer-events: none;

  opacity: 0;
  visibility: hidden;
  transform: scale(1.08);
  will-change: opacity, transform;

  transition:
    opacity .2s ease,
    transform 1.3s cubic-bezier(.2,.7,.2,1);
}

/* TB */
@media only screen and (max-width: 960px){
  .recruitMv__bg{ background-position: 72% center; }
}

/* SP */
@media only screen and (max-width: 480px){
  .recruitMv__bg{ background-position: 70% 30%; }
}

@media (max-width: 700px){
  .recruitMv__bg{ background-position: 82% center; }
}

.recruitMv.is-fixedbg .recruitMv__bg{
  opacity: 1;
  visibility: visible;
}

.recruitMv.is-inview .recruitMv__bg{
  transform: scale(1.0);
}

/* ========================================================
  overlay gradient
========================================================= */

.recruitMv::before{
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    90deg,
    rgba(255,255,255,0.98) 0%,
    rgba(255,255,255,0.96) 36%,
    rgba(255,255,255,0.70) 52%,
    rgba(255,255,255,0.00) 72%
  );
  pointer-events: none;
  z-index: 1;
}

.graduate .recruitMv::before{
  background: linear-gradient(
    90deg,
    rgba(255,255,255,0.98) 0%,
    rgba(255,255,255,0.80) 36%,
    rgba(255,255,255,0.40) 52%,
    rgba(255,255,255,0.00) 72%
  );
}


/* TB */
@media only screen and (max-width: 960px){
  .recruitMv::before{
    background: linear-gradient(
      90deg,
      rgba(255,255,255,0.98) 0%,
      rgba(255,255,255,0.92) 44%,
      rgba(255,255,255,0.40) 66%,
      rgba(255,255,255,0.00) 82%
    );
  }
  .graduate .recruitMv::before{
    background: linear-gradient(
      90deg,
      rgba(255,255,255,0.98) 0%,
      rgba(255,255,255,0.60) 44%,
      rgba(255,255,255,0.40) 66%,
      rgba(255,255,255,0.00) 82%
    );
  }
}

/* SP */
@media only screen and (max-width: 480px){
  .recruitMv::before{
    background: linear-gradient(
      90deg,
      rgba(255,255,255,0.90) 0%,
      rgba(255,255,255,0.78) 46%,
      rgba(255,255,255,0.22) 68%,
      rgba(255,255,255,0.00) 84%
    );
  }
}

/* =======================================================
  layer order
========================================================= */

.recruitMv .column__outer,
.recruitMv .column__inner{
  position: relative;
  z-index: 2;
}

.recruitMv .column__inner{
  display: flex;
  align-items: center;
  min-height: clamp(520px, 45vw, 760px);
}

/* TB */
@media only screen and (max-width: 960px){
  .recruitMv .column__inner{
    align-items: center;
  }
}

/* SP */
@media only screen and (max-width: 480px){
  .recruitMv .column__inner{
    align-items: flex-start;
  }
}

.recruitMv__body{
  max-width: 34rem;
}

/* TB */
@media only screen and (max-width: 960px){
  .recruitMv__body{
    padding-top: clamp(64px, 8vw, 112px);
    max-width: 32rem;
  }
}

/* SP */
@media only screen and (max-width: 480px){
  .recruitMv__body{
    position: absolute;
    left: 0;
    top: 45%;
    transform: translateY(-50%);
    padding-top: 0;
    max-width: 100%;
  }
}

/* =========================================================
  title / lead / entry
========================================================= */

.recruitMv__title{
  margin: 0;
  font-size: clamp(2.0rem, 2.4vw + 1.2rem, 3.2rem);
  line-height: 1.15;
  letter-spacing: 0.02em;
  color: #091057;
  font-family: "Times New Roman","游明朝","Yu Mincho","Hiragino Mincho ProN",serif;
  font-weight: 700;
}

/* TB */
@media only screen and (max-width: 960px){
  .recruitMv__title{
    font-size: clamp(1.85rem, 2.8vw + 1.0rem, 2.8rem);
  }
}

/* SP */
@media only screen and (max-width: 480px){
  .recruitMv__title{
    font-size: clamp(1.7rem, 5.4vw + 0.6rem, 2.2rem);
  }
}

.recruitMv__accent{ color: #FD3C3C; }
.recruitMv__smalltxt{ font-size: 60%; display: inline-block; margin: 0 .3rem; }

.recruitMv__lead{
  margin-top: 1.35rem;
  margin-bottom: 0;
  font-size: clamp(0.95rem, 0.25vw + 0.9rem, 1.05rem);
  line-height: 2.0;
  letter-spacing: 0.08em;
  color: #000;
  font-family: "Times New Roman","游明朝","Yu Mincho","Hiragino Mincho ProN",serif;
  font-weight: 600;
}

/* TB */
@media only screen and (max-width: 960px){
  .recruitMv__lead{
    font-size: clamp(0.92rem, 0.35vw + 0.86rem, 1.02rem);
    line-height: 1.95;
  }
}

/* SP */
@media only screen and (max-width: 480px){
  .recruitMv__lead{
    font-size: 0.95rem;
    line-height: 1.9;
  }
}

.recruitMv__lead br.sp_view{ display: none; }

@media only screen and (max-width: 480px){
  .recruitMv__lead br.sp_view{ display: inline; }
}

/* ===== ENTRY ===== */
.recruitMv__entry{
  position: relative;
  display: inline-block;
  width: 8.75rem;
  margin-top: 2.2rem;
  padding-bottom: 0.55rem;
  text-decoration: none;
  color: #091057;
  font-weight: 700;
  letter-spacing: 0.26em;
}

.recruitMv__entryText{
  font-size: 0.95rem;
  line-height: 1;
}

.recruitMv__entry::before{
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width:100%;
  height:1px;
  background: currentColor;
  transition: width .25s ease;
}

.recruitMv__entry::after{
  content:"";
  position:absolute;
  right:0;
  bottom:0.03rem;
  width:0.875rem;
  height:1px;
  background: currentColor;
  transform: rotate(45deg);
  transform-origin: right center;
  transition: right .25s ease;
}

.recruitMv__entry:hover::before{ width:110%; }
.recruitMv__entry:hover::after{ right:-10%; }

/* =========================================================
  MV animation
========================================================= */

.recruitMv__title,
.recruitMv__lead,
.recruitMv__entry{
  opacity: 0;
  transform: translate3d(0, 14px, 0);
  transition:
    opacity .8s ease,
    transform .9s cubic-bezier(.2,.7,.2,1);
  will-change: opacity, transform;
}

.recruitMv.is-inview .recruitMv__title,
.recruitMv.is-inview .recruitMv__lead,
.recruitMv.is-inview .recruitMv__entry{
  opacity: 1;
  transform: translate3d(0,0,0);
}

.recruitMv__title{ transition-delay: .15s; }
.recruitMv__lead{  transition-delay: .28s; }
.recruitMv__entry{ transition-delay: .44s; }

@media (prefers-reduced-motion: reduce){
  .recruitMv__bg,
  .recruitMv__title,
  .recruitMv__lead,
  .recruitMv__entry{
    transition: none !important;
    transform: none !important;
    opacity: 1 !important;
    visibility: visible !important;
  }
}


/* =======================================================
  Recruit Interview
========================================================= */

.anchorlink{
  position: relative;
  top: -5.625rem;
  display: block;
}

/* セクション */
.recruitInterview{
  padding: 4rem 0;
  background: #fff;
	 position: relative;
}

.recruitInterview .column__outer{
  padding-left: 0;
  padding-right: 0;
}

@media (max-width: 480px){
  .recruitInterview .column__outer{
    padding-left: 0;
    padding-right: 0;
  }
}

.recruitInterview__head{
  padding-left: 2rem;
  padding-right: 2rem;
  display: flex;
  align-items: baseline;
  gap: 2rem;
  padding-bottom: 1.75rem;
}

@media (max-width: 550px){
  .recruitInterview__head{
    padding-left: 2rem;
    padding-right: 2rem;
			 display: block;
  }
}

.recruitInterview__title{
  margin: 0;
  font-size: clamp(2.4rem, 2vw + 1.6rem, 4.2rem);
  letter-spacing: .02em;
  line-height: 1;
}
.recruitInterview__lead{
  margin: 0;
  font-size: .85rem;
  letter-spacing: .09em;
	 font-weight: 700;
}

@media (max-width: 550px){
  .recruitInterview__lead{
    padding-top: .5rem;
  }
}

.recruitInterview__grid{
  margin-top: 2.25rem;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  overflow: visible;
}

@media (max-width: 700px){
  .recruitInterview__grid{
    grid-template-columns: 1fr;
    gap: 1.25rem;
  }
}

.recruitInterviewCard{
  background: #fff;
  min-width: 0;
}

.recruitInterviewCard__link{
  display: grid;
  grid-template-rows: auto auto;
  text-decoration: none;
  color: inherit;
  min-width: 0;
}

.recruitInterviewCard__top{
  position: relative;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: #111;
  isolation: isolate;
}

.recruitInterviewCard__media{
  position: absolute;
  inset: 0;
  z-index: 0;
}
.recruitInterviewCard__media img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transform: scale(1);
  transition: transform .5s ease;
  will-change: transform;
}

.recruitInterviewCard__veil{
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to top,
    rgba(9,16,87,.8) 0%,
    rgba(9,16,87,.6) 40%,
    rgba(9,16,87,0) 100%
  );
  z-index: 1;
}

.recruitInterviewCard__body{
  position: absolute;
  left: 1rem;
  right: 1rem;
  bottom: 1rem;
  color: #fff;
  z-index: 2;
  font-family:
    "Times New Roman",
    "游明朝",
    "Yu Mincho",
    "Hiragino Mincho ProN",
    serif;
  font-weight: 600;
}

@media (max-width: 700px){
  .recruitInterviewCard__body{
    left: 1.25rem;
    right: 1.25rem;
    bottom: 1.7rem;
  }
}

.recruitInterviewCard__catch{
  margin: 0 0 .75rem;
  font-weight: 700;
  letter-spacing: .07em;
  line-height: 1.75;
  text-shadow: 0 .125rem .625rem rgba(0,0,0,.25);
  font-size: 90%;
}

@media (max-width: 800px){
  .recruitInterviewCard__catch{
    font-size: 85%;
  }
}

@media (max-width: 700px){
  .recruitInterviewCard__catch{
    font-size: 110%;
  }
}

@media (max-width: 480px){
  .recruitInterviewCard__catch{
    font-size: 90%;
  }
}

.recruitInterviewCard__meta{
  margin: 0;
  letter-spacing: .04em;
  line-height: 1.75;
  text-shadow: 0 .125rem .625rem rgba(0,0,0,.25);
  font-size: 85%;
}

@media (max-width: 700px){
  .recruitInterviewCard__meta{
    font-size: 110%;
  }
}

@media (max-width: 480px){
  .recruitInterviewCard__meta{
    font-size: 90%;
  }
}

.recruitInterviewCard__footer{
  background: #fff;
  padding: 1.35rem 2rem 1.25rem;
  display: flex;
  justify-content: flex-end;
  align-items: flex-end;
}

@media (max-width: 700px){
  .recruitInterviewCard__footer{
    padding-left: 1.25rem;
    padding-right: 1.25rem;
  }
}

.recruitInterviewCard__more{
  position: relative;
  display: inline-block;
  width: 13.5rem;
  height: 2.1rem;
  color: #091057;
  overflow: visible;
}

.recruitInterviewCard__moreText{
  position: absolute;
  right: 0;
  top: 0;
  font-weight: 700;
  letter-spacing: .1em;
  font-size: .8rem;
  line-height: 1;
  background: #fff;
  padding-left: .7rem;
  z-index: 2;
}

.recruitInterviewCard__moreLine{
  position: absolute;
  right: 0;
  bottom: .25rem;
  width: 50%;
  height: 1px;
  background: currentColor;
  transform-origin: right center;
  transition: width .25s ease;
}

.recruitInterviewCard__moreArrow{
  position: absolute;
  right: 0;
  bottom: .25rem;
  width: 1.05rem;
  height: 1px;
  background: currentColor;
  transform: rotate(45deg);
  transform-origin: right center;
  transition: transform .25s ease;
}

.recruitInterviewCard__link:hover .recruitInterviewCard__media img{
  transform: scale(1.04);
}
.recruitInterviewCard__link:hover .recruitInterviewCard__moreLine{
  width: 100%;
}
.recruitInterviewCard__link:hover .recruitInterviewCard__moreArrow{
  transform: rotate(45deg) translateX(.22rem);
}

/* =======================================================
  inview
========================================================= */

.recruitInterview__head,
.recruitInterviewCard{
  opacity: 0;
  transform: translate3d(0, 18px, 0);
  transition:
    opacity .7s ease,
    transform .8s cubic-bezier(.2,.7,.2,1);
  transition-delay: var(--iv-delay, 0s);
  will-change: opacity, transform;
}

.recruitInterview.is-inview .recruitInterview__head,
.recruitInterview.is-inview .recruitInterviewCard{
  opacity: 1;
  transform: translate3d(0,0,0);
}

/* =======================================================
  Training / Career
========================================================= */

.trainingCareer{
  background: #0a1460;
  color: #fff;
  padding: 4rem 0 4.25rem;
	 position: relative;
}
@media (min-width: 961px){
  .trainingCareer{
    padding: 4.25rem 0 4.75rem;
  }
}
@media (max-width: 960px){
  .trainingCareer{
    padding: 3.5rem 0 4rem;
  }
}
@media (max-width: 480px){
  .trainingCareer{
    padding: 3.25rem 0 3.5rem;
  }
}

.trainingCareer .column__outer{
	padding: 0 0;
}

.trainingCareer .column__inner{
	max-width: none;
}

.trainingCareer__head{
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 4rem;
	 /*padding: 0 2rem;*/
	 width: 100%;
	 max-width: 1200px;
	 margin-left: auto;
	 margin-right: auto;
}

@media (max-width: 1250px){
  .trainingCareer__head{
    padding: 0 2rem;
  }
}

@media (min-width: 961px){
  .trainingCareer__head{
    margin-bottom: 4rem;
  }
}
@media (max-width: 960px){
  .trainingCareer__head{
    margin-bottom: 4rem;
  }
}
@media (max-width: 700px){
  .trainingCareer__head{
    margin-bottom: 4rem;
			 flex-direction: column;
			 gap: 2.5rem;
  }
}
@media (max-width: 480px){
  .trainingCareer__head{
    flex-direction: column;
    align-items: flex-start;
    gap: 1.25rem;
    margin-bottom: 4rem;
  }
}

.trainingCareer__title{
  margin: 0;
  line-height: 1.05;
  letter-spacing: 0.02em;
}
@media (min-width: 961px){
  .trainingCareer__title{}
}
@media (max-width: 960px){
  .trainingCareer__title{}
}
@media (max-width: 700px){
  .trainingCareer__title{
			margin-right: auto;
	}
}
@media (max-width: 480px){
  .trainingCareer__title{}
}

.trainingCareer__titleMain{
  display: block;
  font-size: clamp(2rem, 2.1vw + 1.2rem, 2rem);
  font-weight: 700;
	 font-family:
    "Times New Roman",
    "游明朝",
    "Yu Mincho",
    "Hiragino Mincho ProN",
    serif;
}
@media (min-width: 961px){
  .trainingCareer__titleMain{}
}
@media (max-width: 960px){
  .trainingCareer__titleMain{}
}
@media (max-width: 700px){
  .trainingCareer__titleMain{
			font-size: clamp(1.7rem, 2.1vw + 1.2rem, 1.7rem);
	}
}
@media (max-width: 480px){
  .trainingCareer__titleMain{}
}

.trainingCareer__titleSub{
  display: block;
  margin-top: 0.6rem;
  font-size: clamp(2rem, 2.1vw + 1.2rem, 2rem);
  font-weight: 700;
	 font-family:
    "Times New Roman",
    "游明朝",
    "Yu Mincho",
    "Hiragino Mincho ProN",
    serif;
	  white-space: nowrap;
}
@media (min-width: 961px){
  .trainingCareer__titleSub{
    margin-top: 0.75rem;
  }
}
@media (max-width: 960px){
  .trainingCareer__titleSub{
    margin-top: 0.65rem;
  }
}
@media (max-width: 700px){
  .trainingCareer__titleSub{
			font-size: clamp(1.7rem, 2.1vw + 1.2rem, 1.7rem);
	}
}
@media (max-width: 480px){
  .trainingCareer__titleSub{
    margin-top: 0.55rem;
  }
}

.trainingCareer__btn{
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;

  text-decoration: none;
  color: #0a1460;
  background: #fff;

  padding: 0.5rem 1.25rem;
  
  box-shadow: 0 0 0 1px rgba(255,255,255,.2) inset;
}
@media (min-width: 961px){
  .trainingCareer__btn{
    margin-top: 0.25rem;
  }
}
@media (max-width: 960px){
  .trainingCareer__btn{
    padding: 0.7rem 1.1rem;
    min-width: auto;
  }
}
@media (max-width: 700px){
  .trainingCareer__btn{
    padding: 0.7rem 1.1rem;
    min-width: auto;
			 margin:2rem auto 0;
  }
}
@media (max-width: 480px){
  .trainingCareer__btn{
    width: 100%;
    min-width: 0;
  }
}

.trainingCareer__btn__wrap{
}

@media (max-width: 700px){
  .trainingCareer__btn__wrap{
    display: flex;
			 justify-content: center;
			 padding: 0 2rem;
  }
}

.trainingCareer__btn.pc_view{
}

@media (min-width: 701px){
  .trainingCareer__btn.pc_view{
    display: inline-flex;
  }
}

@media (max-width: 700px){
  .trainingCareer__btn.pc_view{
    display: none;
  }
}

.trainingCareer__btn.sp_view{
}

@media (min-width: 701px){
  .trainingCareer__btn.sp_view{
    display: none;
  }
}

@media (max-width: 700px){
  .trainingCareer__btn.sp_view{
    display: inline-flex;
  }
}


/* =========================
  矢印
========================= */

.trainingCareer__cta{
  position: relative;
  height: 22px;
  width: 9.5rem;
  margin-left: auto;
  flex: 0 0 auto;
}
@media (min-width: 961px){
  .trainingCareer__cta{
    width: 5.5rem;
  }
}
@media (max-width: 960px){
  .trainingCareer__cta{
    width: 4.5rem;
  }
}
@media (max-width: 480px){
  .trainingCareer__cta{
    width: 3.5rem;
  }
}

.trainingCareer__line{
  position: absolute;
  top: 50%;
  right: 18px;

  width: 4.25rem;
  height: 1px;
  background: rgba(10,20,96,.9);

  transform: translateY(-50%) translateX(7px);
  transition: transform .25s ease;
}
@media (min-width: 961px){
  .trainingCareer__line{
    width: 4.5rem;
  }
}
@media (max-width: 960px){
  .trainingCareer__line{
    width: 4.25rem;
  }
}
@media (max-width: 480px){
  .trainingCareer__line{
    width: 3.5rem;
  }
}

.trainingCareer__arrow{
  position: absolute;
  top: 50%;
  right: 13px;

  width: 10px;
  height: 10px;

  border-top: 1px solid rgba(10,20,96,.9);

  transform: translateY(-50%) rotate(45deg);
  transition: transform .25s ease;
}
@media (min-width: 961px){
  .trainingCareer__arrow{}
}
@media (max-width: 960px){
  .trainingCareer__arrow{}
}
@media (max-width: 480px){
  .trainingCareer__arrow{}
}

.trainingCareer__btn:hover .trainingCareer__arrow{
  transform: translate(6px, -50%) rotate(45deg);
}
@media (min-width: 961px){
  .trainingCareer__btn:hover .trainingCareer__arrow{}
}
@media (max-width: 960px){
  .trainingCareer__btn:hover .trainingCareer__arrow{}
}
@media (max-width: 480px){
  .trainingCareer__btn:hover .trainingCareer__arrow{}
}

.trainingCareer__btn:hover .trainingCareer__line{
  transform: translateY(-50%) translateX(13px);
}
@media (min-width: 961px){
  .trainingCareer__btn:hover .trainingCareer__line{}
}
@media (max-width: 960px){
  .trainingCareer__btn:hover .trainingCareer__line{}
}
@media (max-width: 480px){
  .trainingCareer__btn:hover .trainingCareer__line{}
}

.trainingCareer__carousel{
  position: relative;
  overflow: hidden;
}
@media (min-width: 961px){
  .trainingCareer__carousel{
    padding-bottom: 0.25rem;
  }
}
@media (max-width: 960px){
  .trainingCareer__carousel{
    padding-bottom: 0.15rem;
  }
}
@media (max-width: 480px){
  .trainingCareer__carousel{
    padding-bottom: 0.1rem;
  }
}

.trainingCareer__track{
  --gap: 2.5rem;

  display: flex;
  align-items: center;
  gap: var(--gap);
  width: max-content;

  will-change: transform;
  transform: translate3d(0,0,0);
}
@media (min-width: 961px){
  .trainingCareer__track{
    --gap: 2.75rem;
  }
}
@media (max-width: 960px){
  .trainingCareer__track{
    --gap: 2rem;
  }
}
@media (max-width: 480px){
  .trainingCareer__track{
    --gap: 1.5rem;
  }
}

.trainingCareer__item{
  margin: 0;
  flex: 0 0 auto;
}
@media (min-width: 961px){
  .trainingCareer__item{}
}
@media (max-width: 960px){
  .trainingCareer__item{}
}
@media (max-width: 480px){
  .trainingCareer__item{}
}

.trainingCareer__item img{
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
}
@media (min-width: 961px){
  .trainingCareer__item img{}
}
@media (max-width: 960px){
  .trainingCareer__item img{}
}
@media (max-width: 480px){
  .trainingCareer__item img{}
}


/* =========================================================
  写真サイズ
  1枚目 400px / 2枚目 300px / 3枚目 300px / 4枚目 380px
========================================================= */

/* ===== 1枚目 ===== */
.trainingCareer__item--w1{
  width: 400px;
}
@media (min-width: 961px){
  .trainingCareer__item--w1{}
}
@media (max-width: 960px){
  .trainingCareer__item--w1{
    width: 340px;
  }
}
@media (max-width: 480px){
  .trainingCareer__item--w1{
    width: 280px;
  }
}

/* ===== 2枚目 ===== */
.trainingCareer__item--w2{
  width: 300px;
}
@media (min-width: 961px){
  .trainingCareer__item--w2{}
}
@media (max-width: 960px){
  .trainingCareer__item--w2{
    width: 260px;
  }
}
@media (max-width: 480px){
  .trainingCareer__item--w2{
    width: 220px;
  }
}

/* ===== 3枚目 ===== */
.trainingCareer__item--w3{
  width: 300px;
}
@media (min-width: 961px){
  .trainingCareer__item--w3{}
}
@media (max-width: 960px){
  .trainingCareer__item--w3{
    width: 260px;
  }
}
@media (max-width: 480px){
  .trainingCareer__item--w3{
    width: 220px;
  }
}

/* ===== 4枚目 ===== */
.trainingCareer__item--w4{
  width: 380px;
}
@media (min-width: 961px){
  .trainingCareer__item--w4{}
}
@media (max-width: 960px){
  .trainingCareer__item--w4{
    width: 320px;
  }
}
@media (max-width: 480px){
  .trainingCareer__item--w4{
    width: 260px;
  }
}

/* =========================================================
  Recruit Banner
========================================================= */

.recruitBanner{
  position: relative;
  width: 100%;
  overflow: hidden;
  background: none;
}
@media (min-width: 961px){
  .recruitBanner{
    height: 330px;
  }
}
@media (max-width: 960px){
  .recruitBanner{
    height: 250px;
  }
}
@media (max-width: 480px){
  .recruitBanner{
    height: 180px;
  }
}

.recruitBanner::before{
  content: "";
  position: absolute;
  inset: 0;
  background: url("../images/recruit_bnr_bg.jpg") center / cover no-repeat;
  transform: scale(1);
  transition: transform .6s ease;
  z-index: 0;
}

.recruitBanner::after{
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(10,20,96,.45);
  z-index: 1;
}

.recruitBanner:hover::before{
  transform: scale(1.08);
}

/* ===== .recruitBanner__link ===== */
.recruitBanner__link{
  position: relative;
  display: block;
  height: 100%;
  text-decoration: none;
  color: #fff;
  z-index: 2;
}

/* ===== .recruitBanner__inner ===== */
.recruitBanner__inner{
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  padding-right: 6%;
}
@media (min-width: 961px){
  .recruitBanner__inner{}
}
@media (max-width: 960px){
  .recruitBanner__inner{
    padding-right: 5%;
  }
}
@media (max-width: 480px){
  .recruitBanner__inner{
    padding-right: 1.5rem;
  }
}

.recruitBanner__content{
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 1rem;
	 margin-top: 6rem;
}
@media (min-width: 961px){
  .recruitBanner__content{
    gap: 1.1rem;
			 margin-top: 10rem;
  }
}
@media (max-width: 960px){
  .recruitBanner__content{
    gap: 1rem;
			 margin-top: 6rem;
  }
}
@media (max-width: 480px){
  .recruitBanner__content{
    gap: 0.9rem;
			 margin-top: 4rem;
  }
}

.recruitBanner__text{
  margin: 0 1rem 0 0;
  font-size: clamp(1.25rem, 1.2vw + 0.8rem, 1.3rem);
  letter-spacing: .05em;
  font-weight: 600;
  white-space: nowrap;
	 font-family:
    "Times New Roman",
    "游明朝",
    "Yu Mincho",
    "Hiragino Mincho ProN",
    serif;
}
@media (min-width: 961px){
  .recruitBanner__text{
			font-size: clamp(1.25rem, 1.2vw + 0.8rem, 1.5rem);
	}
}
@media (max-width: 960px){
  .recruitBanner__text{}
}
@media (max-width: 480px){
  .recruitBanner__text{
    text-align: right;
    white-space: normal;
  }
}


/* =======================================================
  矢印ユニット
========================================================= */

.recruitBanner__cta{
  position: relative;
  height: 22px;
  width: 12rem;
}

@media (min-width: 961px){
  .recruitBanner__cta{}
}
@media (max-width: 960px){
  .recruitBanner__cta{
    width: 10rem;
  }
}
@media (max-width: 480px){
  .recruitBanner__cta{
    width: 9rem;
  }
}

.recruitBanner__line{
  position: absolute;
  top: 50%;
  right: 18px;

  width: 9rem;
  height: 1px;
  background: rgba(255,255,255,.95);

  transform: translateY(-50%) translateX(7px);
  transition: transform .25s ease;
}
@media (min-width: 961px){
  .recruitBanner__line{}
}
@media (max-width: 960px){
  .recruitBanner__line{
    width: 11rem;
  }
}
@media (max-width: 480px){
  .recruitBanner__line{
    width: 10rem;
  }
}

.recruitBanner__arrow{
  position: absolute;
  top: 7px;
  right: 10px;

  width: 10px;
  height: 10px;

  transform: translateY(-50%);
  transition: transform .25s ease;
}

.recruitBanner__arrow::before{
  content: "";
  position: absolute;
  inset: 0;
  margin: auto;

  width: 10px;
  height: 1px;
  background: rgba(255,255,255,.95);

  transform: rotate(45deg);
  transform-origin: center;
}

.recruitBanner__link:hover .recruitBanner__arrow{
  transform: translate(6px, -50%);
}
@media (min-width: 961px){
  .recruitBanner__link:hover .recruitBanner__arrow{}
}
@media (max-width: 960px){
  .recruitBanner__link:hover .recruitBanner__arrow{}
}
@media (max-width: 480px){
  .recruitBanner__link:hover .recruitBanner__arrow{}
}

.recruitBanner__link:hover .recruitBanner__line{
  transform: translateY(-50%) translateX(13px);
}
@media (min-width: 961px){
  .recruitBanner__link:hover .recruitBanner__line{}
}
@media (max-width: 960px){
  .recruitBanner__link:hover .recruitBanner__line{}
}
@media (max-width: 480px){
  .recruitBanner__link:hover .recruitBanner__line{}
}

/* =======================================================
  Recruit Banner
========================================================= */

.recruitBanner{
  opacity: 0;
  transition: opacity 1s ease;
}

.recruitBanner.is-inview{
  opacity: 1;
}

@media (prefers-reduced-motion: reduce){
  .recruitBanner{
    opacity: 1 !important;
    transition: none !important;
  }
}

/* =======================================================
  About Us
========================================================= */

.aboutUs{
  padding: 5rem 0 0;
	 position: relative;
	 background-color: #FFF;
}
@media (min-width: 961px){
  .aboutUs{
    padding: 6rem 0 0;
  }
}
@media (max-width: 960px){
  .aboutUs{
    padding: 4.5rem 0 0;
  }
}
@media (max-width: 700px){
  .aboutUs{
    padding: 4rem 0 0;
  }
}

.aboutUs__head{
  display: flex;
  align-items: baseline;
  gap: 2rem;
  margin-bottom: 2.5rem;
}
@media (min-width: 961px){
  .aboutUs__head{
    margin-bottom: 3rem;
  }
}
@media (max-width: 960px){
  .aboutUs__head{
    margin-bottom: 2.25rem;
  }
}
@media (max-width: 700px){
  .aboutUs__head{
    gap: 1.25rem;
    margin-bottom: 1.75rem;
  }
}

.aboutUs__title{
  margin: 0;
  font-size: clamp(2.4rem, 2vw + 1.6rem, 4.2rem);
  line-height: 1;
  letter-spacing: 0.02em;
  color: #0a1460;
  font-weight: 500;
	 font-family: "Times New Roman","游明朝","Yu Mincho","Hiragino Mincho ProN",serif;
}
@media (min-width: 961px){ .aboutUs__title{} }
@media (max-width: 960px){ .aboutUs__title{} }
@media (max-width: 700px){ .aboutUs__title{} }

.aboutUs__lead{
  margin: 0;
  font-size: .85rem;
  letter-spacing: .09em;
  font-weight: 700;
	 color: #0a1460;
	 font-family: "Times New Roman","游明朝","Yu Mincho","Hiragino Mincho ProN",serif;
}
@media (min-width: 961px){ .aboutUs__lead{} }
@media (max-width: 960px){ .aboutUs__lead{} }
@media (max-width: 700px){ .aboutUs__lead{} }


/* ========================================================
  Tiles Grid
========================================================= */

.aboutUs__tiles{
  display: grid;
  width: 100vw;
  margin-left: calc(50% - 50vw);
}
@media (min-width: 961px){
  .aboutUs__tiles{
    grid-template-columns: repeat(6, 1fr);
    grid-auto-rows: 220px;
  }
}
@media (max-width: 960px){
  .aboutUs__tiles{
    grid-template-columns: repeat(6, 1fr);
    grid-auto-rows: 210px;
  }
}
@media (max-width: 700px){
  .aboutUs__tiles{
    grid-template-columns: repeat(2, 1fr);
    grid-auto-rows: 190px;
  }
}

.aboutTile{
  position: relative;
  display: block;
  overflow: hidden;
  text-decoration: none;
  color: #fff;
  isolation: isolate;
}
@media (min-width: 961px){ .aboutTile{} }
@media (max-width: 960px){ .aboutTile{} }
@media (max-width: 700px){ .aboutTile{} }

@media (min-width: 701px){
  .aboutTile--01,
  .aboutTile--02,
  .aboutTile--03{
    grid-column: span 2;
    grid-row: span 2;
  }

  .aboutTile--04,
  .aboutTile--05{
    grid-column: span 3;
    grid-row: span 1;
  }
}

.aboutTile--fullSP{}
@media (min-width: 961px){ .aboutTile--fullSP{} }
@media (max-width: 960px){ .aboutTile--fullSP{} }
@media (max-width: 700px){
  .aboutTile--fullSP{
    grid-column: 1 / -1;
  }
}

.aboutTile--01{ background: url("../images/graduate_about_01.jpg") center bottom / cover no-repeat;}
.aboutTile--02{ background: url("../images/graduate_about_02.jpg") center top / cover no-repeat;}
.aboutTile--03{ background: url("../images/graduate_about_03.jpg") center top / cover no-repeat;}
.aboutTile--04{ background: url("../images/graduate_about_04.jpg") left top 20% / cover no-repeat;}
.aboutTile--05{ background: url("../images/graduate_about_05.jpg") center bottom / cover no-repeat;}

.aboutTile::before{
  content: "";
  position: absolute;
  inset: 0;
  background: inherit;
  transform: scale(1);
  transition: transform .6s ease;
  z-index: 0;
}
@media (min-width: 961px){ .aboutTile::before{} }
@media (max-width: 960px){ .aboutTile::before{} }
@media (max-width: 700px){ .aboutTile::before{} }

.aboutTile:hover::before{
  transform: scale(1.06);
}

.aboutTile__overlay{
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
}
@media (min-width: 961px){ .aboutTile__overlay{} }
@media (max-width: 960px){ .aboutTile__overlay{} }
@media (max-width: 700px){ .aboutTile__overlay{} }

.aboutTile--01 .aboutTile__overlay{ background: rgba(10,20,96,.6); }
.aboutTile--02 .aboutTile__overlay{ background: rgba(0,166,170,.6); }
.aboutTile--03 .aboutTile__overlay{ background: rgba(246,173,50,.6); }
.aboutTile--04 .aboutTile__overlay{ background: rgba(236,76,80,.6); }
.aboutTile--05 .aboutTile__overlay{ background: rgba(80,90,120,.6); }


.aboutTile__body{
  position: absolute;
  left: 2rem;
  right: 2rem;
  bottom: 1.75rem;
  z-index: 2;
}
@media (min-width: 961px){
  .aboutTile__body{
    left: 2.25rem;
    right: 2.25rem;
    bottom: 1.9rem;
  }
}
@media (max-width: 960px){
  .aboutTile__body{
    left: 1.5rem;
    right: 1.5rem;
    bottom: 1.35rem;
  }
}
@media (max-width: 700px){
  .aboutTile__body{
    left: 1.1rem;
    right: 1.1rem;
    bottom: 1rem;
  }
}

.aboutTile__body--row{
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1rem;
}
@media (min-width: 961px){ .aboutTile__body--row{} }
@media (max-width: 960px){ .aboutTile__body--row{} }
@media (max-width: 700px){
  .aboutTile__body--row{
    display: block;
  }
}

.aboutTile__label{
  margin: 0;
  display: flex;
  align-items: baseline;
  gap: 1rem;
  font-weight: 600;
  letter-spacing: .06em;
  white-space: nowrap;
}
@media (min-width: 961px){
  .aboutTile__label{ font-size: 1.1rem; }
}
@media (max-width: 960px){
  .aboutTile__label{ font-size: 1.0rem; }
}
@media (max-width: 700px){
  .aboutTile__label{
    font-size: 0.9rem;
    gap: 0.3rem;
    white-space: nowrap;
  }
}

@media (max-width: 400px){
  .aboutTile__label{
    font-size: 0.85rem;
    gap: 0.3rem;
    white-space: nowrap;
  }
}

.aboutTile__txt{
  font-family: "Times New Roman","游明朝","Yu Mincho","Hiragino Mincho ProN",serif;
	 font-weight: 700;
}
.aboutTile__num{
  font-size: clamp(2.3rem, 2vw + 1.3rem, 3.5rem);
  line-height: 1;
  font-weight: 600;
  letter-spacing: 0.02em;
}
@media (min-width: 961px){ .aboutTile__num{} }
@media (max-width: 960px){ .aboutTile__num{} }
@media (max-width: 700px){
  .aboutTile__num{
    font-size: clamp(2rem, 4vw + 1rem, 2.8rem);
  }
}

/* =========================================================
  Arrow unit
========================================================= */

.aboutTile__cta--under{
  position: relative;
  margin-top: 0.4rem;
  height: 22px;
  display: block;
  margin-left: auto;
}
@media (min-width: 961px){
  .aboutTile__cta--under{ margin-right: -1rem;margin-left: 0;}
}
@media (max-width: 960px){
  .aboutTile__cta--under{ margin-right: -1rem;margin-left: 0;}
}
@media (max-width: 700px){
  .aboutTile__cta--under{ width: min(300px, 100%); }
}

.aboutTile__cta--side{
  position: relative;
  height: 22px;
  width: 240px;
  display: block;
  margin-left: auto;
}
@media (min-width: 961px){
  .aboutTile__cta--side{ width: 260px; }
}
@media (max-width: 960px){
  .aboutTile__cta--side{ width: 240px; }
}
@media (max-width: 700px){
  .aboutTile__cta--side{
    margin-top: 0.9rem;
    width: min(300px, 100%);
  }
}

.aboutTile__line{
  position: absolute;
  top: 50%;
  right: 18px;

  width: 380px;
  height: 1px;
  background: rgba(255,255,255,.95);

  transform: translateY(-50%) translateX(7px);
  transition: transform .25s ease;
}
@media (min-width: 961px){
  .aboutTile__line{ width: 7rem; }
}
@media (max-width: 960px){
  .aboutTile__line{ width: 7rem; }
}
@media (max-width: 700px){
  .aboutTile__line{ width: 7rem; }
}

.aboutTile__arrow{
  position: absolute;
  top: 50%;
  right: 13px;

  width: 10px;
  height: 10px;

  border-top: 1px solid rgba(255,255,255,.95);

  transform: translateY(-50%) rotate(45deg);
  transition: transform .25s ease;
}
@media (min-width: 961px){ .aboutTile__arrow{} }
@media (max-width: 960px){ .aboutTile__arrow{} }
@media (max-width: 700px){ .aboutTile__arrow{} }

.aboutTile:hover .aboutTile__arrow{
  transform: translate(6px, -50%) rotate(45deg);
}
@media (min-width: 961px){ .aboutTile:hover .aboutTile__arrow{} }
@media (max-width: 960px){ .aboutTile:hover .aboutTile__arrow{} }
@media (max-width: 700px){ .aboutTile:hover .aboutTile__arrow{} }

.aboutTile:hover .aboutTile__line{
  transform: translateY(-50%) translateX(13px);
}
@media (min-width: 961px){ .aboutTile:hover .aboutTile__line{} }
@media (max-width: 960px){ .aboutTile:hover .aboutTile__line{} }
@media (max-width: 700px){ .aboutTile:hover .aboutTile__line{} }


/* =========================================================
  About Us - inview
========================================================= */

.aboutUs__head{
  opacity: 0;
  transition: opacity .6s ease;
}
.aboutUs.is-inview .aboutUs__head{
  opacity: 1;
}

.aboutTile{
  opacity: 0;
  transition: opacity .6s ease;
  transition-delay: var(--iv-delay, 0s);
  will-change: opacity;
}
.aboutTile.is-inview{
  opacity: 1;
}

@media (prefers-reduced-motion: reduce){
  .aboutUs__head,
  .aboutTile{
    opacity: 1 !important;
    transition: none !important;
  }
}

/* =======================================================
  ENTRY
========================================================= */

.entryBand{
  padding: 3rem 0;
  background:
    linear-gradient(
      180deg,
      rgba(230,232,242,1) 0%,
      rgba(216,219,234,1) 45%,
      rgba(230,232,242,1) 100%
    );
}
@media (min-width: 961px){ .entryBand{} }
@media (max-width: 960px){
  .entryBand{ padding: 2.5rem 0; }
}
@media (max-width: 700px){
  .entryBand{ padding: 2.25rem 0; }
}

.entryBand .column__outer{
	padding: 0 0;
}

.entryBand .column__inner{
	max-width: none;
}

.entryBand__link{
  position: relative;
  display: block;
  overflow: hidden;
  text-decoration: none;
  color: #fff;
  border-radius: 0;
  min-height: 22rem;
}
@media (min-width: 961px){
  .entryBand__link{ min-height: 22rem; }
}
@media (max-width: 960px){
  .entryBand__link{ min-height: 20rem; }
}
@media (max-width: 700px){
  .entryBand__link{ min-height: 18rem; }
}

.entryBand__bg{
  position: absolute;
  inset: 0;
  background: url("../images/entry_bnr_bg.jpg") left center / cover no-repeat;
  transform: scale(1);
  transition: transform .7s ease;
  z-index: 0;
}

.entryBand__shade{
  position: absolute;
  inset: 0;
  background:
    linear-gradient(
      90deg,
      rgba(10,20,96,.00) 0%,
      rgba(10,20,96,.20) 22%,
      rgba(10,20,96,.45) 40%,
      rgba(10,20,96,.52) 52%,
      rgba(10,20,96,.82) 65%,
      rgba(10,20,96,.98) 100%
    );
  z-index: 1;
  pointer-events: none;
}

.entryBand__link:hover .entryBand__bg{
  transform: scale(1.06);
}

.entryBand__content{
  position: relative;
  z-index: 2;
  height: 100%;
  min-height: inherit;

  display: flex;
  flex-direction: column;
  justify-content: space-between;

  padding: 3.25rem 4rem;
}
@media (min-width: 961px){
  .entryBand__content{
    padding: 3.5rem 2rem;
  }
}
@media (max-width: 960px){
  .entryBand__content{
    padding: 3rem 2rem;
  }
}
@media (max-width: 700px){
  .entryBand__content{
    padding: 2.5rem 2rem;
  }
}

.entryBand__head{
  display: flex;
  align-items: baseline;
	 justify-content: flex-end;
  gap: 1.25rem;
}
@media (min-width: 961px){ .entryBand__head{} }
@media (max-width: 960px){ .entryBand__head{} }
@media (max-width: 700px){
  .entryBand__head{ gap: 1rem; }
}

.entryBand__title{
  margin: 0;
  font-size: clamp(3.2rem, 4vw + 1.2rem, 6.2rem);
  letter-spacing: .06em;
  line-height: 1;
  font-weight: 500;
	 font-family: "Times New Roman","游明朝","Yu Mincho","Hiragino Mincho ProN",serif;
}

@media (max-width: 700px){
  .entryBand__title{font-size: clamp(2.5rem, 4vw + 1.2rem, 4.2rem); }
}

.entryBand__sub{
  margin: 0;
  font-size: clamp(1rem, 0.6vw + 0.85rem, 1.25rem);
  letter-spacing: .14em;
  font-weight: 500;
  white-space: nowrap;
}

.entryBand__foot{
  display: grid;
  justify-items: end;
  gap: 0.9rem;
}

.entryBand__lead{
  margin: 0;
  text-align: left;
  font-size: clamp(0.95rem, 0.35vw + 0.9rem, 1.05rem);
  letter-spacing: .08em;
  line-height: 1.7;
  font-weight: 500;
}


/* =========================================================
  Arrow
========================================================= */
.entryBand__cta{
  position: relative;
  height: 22px;
  width: min(18rem, 100%);
}
@media (min-width: 961px){
  .entryBand__cta{ width: min(20rem, 100%); }
}
@media (max-width: 960px){
  .entryBand__cta{ width: min(18rem, 100%); }
}
@media (max-width: 700px){
  .entryBand__cta{ width: min(16rem, 100%); }
}

.entryBand__line{
  position: absolute;
  top: 50%;
  right: 18px;

  width: 7rem;
  height: 1px;
  background: rgba(255,255,255,.95);

  transform: translateY(-50%) translateX(7px);
  transition: transform .25s ease;
}
@media (min-width: 961px){ .entryBand__line{} }
@media (max-width: 960px){ .entryBand__line{} }
@media (max-width: 700px){ .entryBand__line{} }

.entryBand__arrow{
  position: absolute;
  top: 50%;
  right: 13px;
  width: 10px;
  height: 10px;
  border-top: 1px solid rgba(255,255,255,.95);
  transform: translateY(-50%) rotate(45deg);
  transition: transform .25s ease;
}
@media (min-width: 961px){ .entryBand__arrow{} }
@media (max-width: 960px){ .entryBand__arrow{} }
@media (max-width: 700px){ .entryBand__arrow{} }

.entryBand__link:hover .entryBand__arrow{
  transform: translate(6px, -50%) rotate(45deg);
}
.entryBand__link:hover .entryBand__line{
  transform: translateY(-50%) translateX(13px);
}

/* =======================================================
  Entry Band
========================================================= */

.entryBand{
  opacity: 0;
  transition: opacity .6s ease;
  will-change: opacity;
}

.entryBand.is-inview{
  opacity: 1;
}

@media (prefers-reduced-motion: reduce){
  .entryBand{
    opacity: 1 !important;
    transition: none !important;
  }
}

/* =================================================================================
  Requirements(募集要項)
==================================================================================== */

.requirements{
  background: #F2F2F2;
  padding: 4rem 0;
}
@media only screen and (max-width: 960px){
  .requirements{
    padding: 3rem 0;
  }
}
@media only screen and (max-width: 480px){
  .requirements{
    padding: 2.5rem 0;
  }
}

.requirements__title{
  margin: 0;
  color: #111;
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 1.4;
  font-size: clamp(1.15rem, 0.6vw + 1.05rem, 1.45rem);
	 margin-bottom: 2rem;
}

.requirements__title .underline{
  position: relative;
  display: inline-block;
  padding-bottom: 0.4em;
}

.requirements__title .underline::after{
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 2px;
  background-color: #091057;
}

.requirements__tableWrap{
  background: #fff;
  overflow: hidden;
	 padding: 2rem 2rem;
}

.requirementsTable__table {
  width: 100%;
  border-collapse: collapse;
}

.requirementsTable__row {
  border-top: 1px solid rgba(0, 0, 0, .12);
}
.requirementsTable__row:last-child {
  border-bottom: none;
}

.requirementsTable__row:first-child {
  border-top: none;
}

.requirementsTable__label {
  width: 12rem;
  padding: 1.375rem 0;
  font-weight: 700;
  text-align: left;
  vertical-align: top;
  white-space: nowrap;
}

.requirementsTable__row:first-child .requirementsTable__label {
  padding-top: 0;
}

.requirementsTable__value {
  padding: 1.375rem 0 1.375rem 3rem;
  line-height: 1.9;
}

.requirementsTable__row:first-child .requirementsTable__value {
  padding-top: 0;
}

@media (max-width: 700px) {
  .requirementsTable {
    padding: 52px 0;
  }
  .requirementsTable__title {
    margin-bottom: 24px;
  }
  .requirementsTable__row {
    grid-template-columns: 150px 1fr;
    column-gap: 28px;
    padding: 18px 0;
  }
  .requirementsTable__value {
    line-height: 1.85;
  }
}

@media (max-width: 700px) {
  .requirementsTable__table, .requirementsTable__table tbody,
	 .requirementsTable__row {
    display: block;
    width: 100%;
  }
  .requirementsTable__label, .requirementsTable__value {
    display: list-item;
    list-style: none;
    width: 100%;
  }
  .requirementsTable__row {
    padding: 1rem 0;
    border-top: 1px solid rgba(0, 0, 0, .12);
  }
  .requirementsTable__label {
    padding: 0 0 0.5rem;
    white-space: normal;
  }
  .requirementsTable__value {
    padding: 0;
  }
	}

	.requirementsTable__row:first-child {
  padding-top: 0;
 }
	.requirementsTable__row:last-child {
  padding-bottom: 0;
 }
	.requirementsTable__row:first-child th.requirementsTable__label,
	.requirementsTable__row:first-child td.requirementsTable__value {
  padding-top: 0;
 }
	.requirementsTable__row:last-child th.requirementsTable__label,
	.requirementsTable__row:last-child td.requirementsTable__value {
  padding-bottom: 0;
 }


/* =======================================================
  careerLinkTiles
========================================================= */

.careerLinkTiles{
  padding: 3.5rem 0;
  background: #F2F2F2;
}
@media only screen and (max-width: 960px){
  .careerLinkTiles{
    padding: 3rem 0;
  }
}
@media only screen and (max-width: 480px){
  .careerLinkTiles{
    padding: 2.25rem 0;
  }
}

.careerLinkTiles__grid{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2.5rem;
}
@media only screen and (max-width: 960px){
  .careerLinkTiles__grid{
    gap: 1.5rem;
  }
}
@media only screen and (max-width: 550px){
  .careerLinkTiles__grid{
    grid-template-columns: 1fr;   /* 1列 */
    gap: 1rem;
  }
}

.careerLinkTiles__card{
  display: grid;
  place-items: center;
  min-height: 10.5rem;
  text-decoration: none;
  color: #fff;
  font-weight: 700;
  letter-spacing: .02em;
}
@media only screen and (max-width: 960px){
  .careerLinkTiles__card{
    min-height: 9.5rem;
  }
}
@media only screen and (max-width: 550px){
  .careerLinkTiles__card{
    min-height: 5.25rem;
  }
}

.careerLinkTiles__text{
  font-size: clamp(1rem, 0.35vw + 0.95rem, 1rem);
}
@media only screen and (max-width: 640px){
  .careerLinkTiles__text{
    font-size: 0.95rem; 
  }
}
@media only screen and (max-width: 550px){
  .careerLinkTiles__text{
    font-size: 0.9rem; 
  }
}

/* =======================================================
  careerLinkTiles hover
========================================================= */

.careerLinkTiles__card{
  transition:
    background-color 0.35s ease,
    transform 0.25s ease,
    box-shadow 0.25s ease;
}

.careerLinkTiles__card.is-data{
  background-color: #58B2B2;
}
.careerLinkTiles__card.is-ideal{
  background-color: #FF8C8C;
}
.careerLinkTiles__card.is-faq{
  background-color: #5F668F;
}

@media (hover: hover) {

  .careerLinkTiles__card.is-data:hover{
    background-color: #4aa3a3; /* 少し暗く */
    box-shadow: 0 8px 20px rgba(0,0,0,0.08);
    transform: translateY(-3px);
  }

  .careerLinkTiles__card.is-ideal:hover{
    background-color: #f27a7a;
    box-shadow: 0 8px 20px rgba(0,0,0,0.08);
    transform: translateY(-3px);
  }

  .careerLinkTiles__card.is-faq:hover{
    background-color: #50577f;
    box-shadow: 0 8px 20px rgba(0,0,0,0.08);
    transform: translateY(-3px);
  }

}

/* =======================================================
  Entry Banner
========================================================= */

.careerEntryBanner{
  padding: 1rem 0 4.5rem;
	 width: 100%;
}

@media (max-width: 700px){
  .careerEntryBanner{
    padding: 1rem 0 2rem;
  }
}

@media (max-width: 480px){
  .careerEntryBanner{
    padding: 0 0 2rem;
  }
}

.careerEntryBanner__link{
  display: grid;
  grid-template-columns: 1fr 1fr;
  width: 100%;
  text-decoration: none;
  color: inherit;
}

@media only screen and (min-width: 1101px){
  .careerEntryBanner__inner{
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto;
  }
}

@media only screen and (max-width: 800px){
  .careerEntryBanner__link{
    grid-template-columns: 1fr;
  }
}

.careerEntryBanner__link{
  display: grid;
  grid-template-columns: 1fr 1fr;
  background: #081a62;
  border-radius: 0;
  overflow: hidden;
  text-decoration: none;
  color: #fff;
  min-height: 240px;
}
@media only screen and (max-width: 800px){
  .careerEntryBanner__link{
    grid-template-columns: 1fr;
    min-height: auto;
  }
}

.careerEntryBanner__media{
  position: relative;
  background: #081a62;
}
.careerEntryBanner__media img{
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
@media only screen and (max-width: 800px){
  .careerEntryBanner__media img{
    height: auto;
  }
}

.careerEntryBanner__body{
  position: relative;
  padding: 3.0rem 3.2rem 3.0rem;
  display: grid;
  align-content: center;
  gap: 1.05rem;
}
@media only screen and (max-width: 960px){
  .careerEntryBanner__body{
    padding: 2.6rem 2.6rem 2.6rem;
  }
}
@media only screen and (max-width: 800px){
  .careerEntryBanner__body{
    padding: 2.2rem 1.7rem 2.2rem;
  }
}

.careerEntryBanner__eyebrow{
  margin: 0;
  font-weight: 600;
  letter-spacing: 0.22em;
  font-size: clamp(1.1rem, 0.6vw + 1.0rem, 1.4rem);
}

.careerEntryBanner__sub{
  margin: 0;
  font-weight: 600;
  letter-spacing: 0.08em;
  line-height: 1.9;
  font-size: clamp(0.9rem, 0.2vw + 0.85rem, 1.0rem);
}

/* ========================
  矢印
========================= */

.careerEntryBanner__cta{
  position: relative;
  margin-top: 0.55rem;
  height: 22px;
  width: min(320px, 100%);
	 margin-left: auto;
}

.careerEntryBanner__line{
  position: absolute;
  top: 50%;
  right: 18px;

  width: 210px;
  height: 1px;
  background: rgba(255,255,255,.95);

  transform: translateY(-50%) translateX(7px);
  transition: width .25s ease, transform .25s ease;
}

.careerEntryBanner__arrow{
  position: absolute;
  top: 50%;
  right: 13px;

  width: 10px;
  height: 10px;

  border-right: 1px solid rgba(255,255,255,.95);

  transform: translateY(-50%) rotate(-45deg);
  transition: transform .25s ease;
}

.careerEntryBanner__link:hover .careerEntryBanner__arrow{
  transform: translate(6px, -50%) rotate(-45deg);
}

.careerEntryBanner__link:hover .careerEntryBanner__line{
  transform: translateY(-50%) translateX(13px); /* 7 + 6 */
}

@media only screen and (max-width: 480px){
  .careerEntryBanner__line{
    width: 170px;
  }
  .careerEntryBanner__cta{
    width: 100%;
  }
}

/* =======================================================
  Selection Steps
========================================================= */

.selectionSteps{
  position: relative;
  padding: 4rem 0;
  background-color: #fff;
  background-image: url("../images/selectionsteps_bg.png");
  background-repeat: repeat;
  background-position: top left;
  background-size: 1280px auto;
  opacity: 1;
}
@media only screen and (max-width: 960px){
  .selectionSteps{
    padding: 3rem 0;
  }
}
@media only screen and (max-width: 700px){
  .selectionSteps{
    padding: 2.75rem 0;
  }
}
@media only screen and (max-width: 480px){
  .selectionSteps{
    padding: 2.5rem 0;
  }
}

.selectionSteps__head{
  margin-bottom: 1.75rem;
}
@media only screen and (max-width: 960px){
  .selectionSteps__head{ margin-bottom: 1.5rem; }
}
@media only screen and (max-width: 700px){
  .selectionSteps__head{ margin-bottom: 1.25rem; }
}
@media only screen and (max-width: 480px){
  .selectionSteps__head{ margin-bottom: 1rem; }
}

.selectionSteps__title{
  margin: 0;
  font-size: clamp(1.35rem, 0.7vw + 1.1rem, 1.75rem);
  line-height: 1.25;
  letter-spacing: 0.02em;
}
@media only screen and (max-width: 960px){
  .selectionSteps__title{
    font-size: clamp(1.25rem, 0.9vw + 1.05rem, 1.6rem);
  }
}
@media only screen and (max-width: 700px){
  .selectionSteps__title{
    font-size: clamp(1.18rem, 1vw + 1rem, 1.45rem);
  }
}
@media only screen and (max-width: 480px){
  .selectionSteps__title{
    font-size: clamp(1.12rem, 1.2vw + 0.98rem, 1.35rem);
  }
}

.selectionSteps__list{
  list-style: none;
  margin: 0;
  padding: 0;

  display: flex;
  align-items: stretch;
  gap: 10px;
}
@media only screen and (max-width: 700px){
  .selectionSteps__list{
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.9rem;
  }
}
@media only screen and (max-width: 480px){
  .selectionSteps__list{
    gap: 0.75rem;
  }
}

.selectionSteps__item{
  position: relative;
  flex: 1 1 0;
  min-width: 0;
}
@media only screen and (max-width: 700px){
  .selectionSteps__item{ flex: none; }
}

.selectionSteps__list.four_card .selectionSteps__item{
}
@media only screen and (min-width: 1001px){
  .selectionSteps__list.four_card .selectionSteps__item{ 
  flex:auto;
	 max-width: 210px;
	}
}

.selectionSteps__card{
  position: relative;

  height: 100%;
  min-height: 300px;

  border: 1px solid #0b1a55;
  background: #fff;

  padding: 2.25rem 1.25rem;

  display: grid;
  place-items: center;
}
@media only screen and (max-width: 960px){
  .selectionSteps__card{
    min-height: 260px;
    padding: 2rem 1rem;
  }
}
@media only screen and (max-width: 700px){
  .selectionSteps__card{
    min-height: auto;
    padding: 1.75rem 1rem;
  }
}
@media only screen and (max-width: 480px){
  .selectionSteps__card{
    padding: 1.7rem 0.9rem;
  }
}

.selectionSteps__item:not(:last-child) .selectionSteps__card::after{
  content: "";
  position: absolute;

  top: 50%;
  right: -20px;

  transform: translateY(-50%);

  width: 30px;
  height: 30px;
  border-radius: 50%;

  background-color: #0b1a55;

  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='7' viewBox='0 0 14 7'%3E%3Cpath d='M1 1l6 5 6-5' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' transform='rotate(-90 7 3.5)'/%3E%3C/svg%3E");

  background-repeat: no-repeat;
  background-size: 20px 13px;
		background-position: center 55%;

  z-index: 3;
}

@media only screen and (max-width: 700px){

  .selectionSteps__item:not(:last-child) .selectionSteps__card::after{
    top: auto;
    right: 50%;
    bottom: -20px;

    transform: translateX(50%);

    width: 30px;
    height: 30px;

    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='7' viewBox='0 0 14 7'%3E%3Cpath d='M1 1l6 5 6-5' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");

    background-size: 16px 9px;
			 background-position: center 55%;
  }

}

.selectionSteps__text{
  margin: 0;
  text-align: center;
  color: #0b1a55;
  font-weight: 700;
  letter-spacing: 0.02em;
  line-height: 1.5;
  font-size: clamp(0.95rem, 0.25vw + 0.92rem, 1.05rem);
	 white-space: nowrap;
}
@media only screen and (max-width: 960px){
  .selectionSteps__text{
    font-size: clamp(0.92rem, 0.35vw + 0.88rem, 1.02rem);
  }
}
@media only screen and (max-width: 700px){
  .selectionSteps__text{ font-size: 0.95rem; }
}
@media only screen and (max-width: 480px){
  .selectionSteps__text{ font-size: 0.9rem; }
}

/* =================================================================================
  #career-advancement
==================================================================================== */

.gridBg{
  position: relative;
  --grid-color: 235,243,250;
  --grid-opacity: .85;
  --grid-size: 16px;/*（16x16 / 1px）*/
}
.gridBg::before{
  content:"";
  position:absolute;
  inset:0;
  background-image:
    linear-gradient(rgba(var(--grid-color), var(--grid-opacity)) 1px, transparent 1px),
    linear-gradient(90deg, rgba(var(--grid-color), var(--grid-opacity)) 1px, transparent 1px);
  background-size: var(--grid-size) var(--grid-size);
  background-position: 0 0;
  pointer-events:none;
  z-index:0;
}
.gridBg > *{
  position: relative;
  z-index: 1;
}

.careerGridArea{
  position: relative;
  overflow: hidden;
}

/* =======================================================
  Career Stepup
========================================================= */
.careerStepup{
  padding: 5rem 0;
}
@media (max-width: 700px){
  .careerStepup{ padding: 3.5rem 0; }
}

.careerStepup__head{
  margin-bottom: 2rem;
}

.careerStepup__title{
  margin: 0 0 2rem;
  color: #111;
  font-weight: 400;
  letter-spacing: 0.08em;
  line-height: 1.4;
  font-size: clamp(1.1rem, 0.6vw + 1.05rem, 1.35rem);
}

.careerStepup__title .underline{
  position: relative;
  display: inline-block;
  padding-bottom: 0.4em;
}

.careerStepup__title .underline::after{
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 2.2rem;
  height: 2px;
  background-color: #091057;
}

.careerStepup__lead{
  line-height: 2;
  font-size: clamp(.95rem, .25vw + .9rem, 1.05rem);
}

.careerStepup__lead p{
  margin: 0 auto 1.5rem;
  max-width: 1000px;
}

/* =======================================================
  Cards wrapper
========================================================= */

.careerStepupCards{
  margin-top: 2.5rem;
  background: rgba(255,255,255,.92);
  border: 1px solid rgba(11,30,91,.18);
  padding: 2rem 2rem 5rem;
}
@media (max-width: 700px){
  .careerStepupCards{
    padding: 1.25rem;
  }
}

.careerStepupCards__title{
  margin: 0 0 2rem;
  font-size: 1.1rem;
  font-weight: 700;
  letter-spacing: .02em;
  position: relative;
  padding-bottom: .6rem;
}
.careerStepupCards__title::after{
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width: 1.8rem;
  height: 2px;
  background: #0B1E5B;
}
.careerStepupCards .note{
  margin-bottom: .5rem;
}

.careerStepupCards .em{
  color: #0B1E5B;
	 font-weight: 600;
}

/* =========================================================
  Cards list
========================================================= */

.careerStepupCards__list{
  list-style: none;
  margin: 0;
  padding: 0;

  display: flex;
  align-items: flex-end;
  gap: 3.75rem;
}
@media (min-width: 701px) and (max-width: 1050px){
  .careerStepupCards__list{
    gap: 2rem;
  }
}
@media (max-width: 700px){
  .careerStepupCards__list{
    flex-direction: column;
    gap: 3rem;
    align-items: center;
  }
}
@media (max-width: 700px){
  .careerStepupCards__list{
    align-items: stretch;
  }
}

.careerStepupCards__item{
  position: relative;
  flex: 1 1 0;
  min-width: 0;
  display: flex;
}

@media (max-width: 700px){
  .careerStepupCards__item{
    display: block;
    width: 100%;
  }
}

.careerStepupCards__item:nth-of-type(2){
  margin-bottom: 65px;
}
.careerStepupCards__item:nth-of-type(3){
  margin-bottom: 130px;
}
@media (max-width: 700px){
  .careerStepupCards__item:nth-of-type(2),
  .careerStepupCards__item:nth-of-type(3){
    margin-bottom: 0;
  }
}

.careerStepupCards__item:not(:last-child)::after{
  content:"";
  position:absolute;
  right: -10rem;
  bottom: -1rem;

  width: 9.75rem;
  height: 3.25rem;

  background: url("../images/careerstepup_arrow02.svg") center / contain no-repeat;
  pointer-events: none;
  z-index: 1;
}
@media (min-width: 701px) and (max-width: 1050px){
  .careerStepupCards__item:not(:last-child)::after{
    width: 8.70rem;
    height: 2.75rem;
  }
}
@media (max-width: 700px){
  .careerStepupCards__item:not(:last-child)::after{
    right: auto;
    left: 50%;
    bottom: -2.6rem;
    transform: translateX(-50%) rotate(90deg);
    width: 8.75rem;
    height: 3rem;
  }
}
@media (max-width: 700px){
  .careerStepupCards__item:not(:last-child)::after{
    width: 5.6rem;
    height: 2.0rem;
    bottom: -0.5rem;
  }
}
@media (max-width: 700px){
  .careerStepupCards__item:not(:last-child){
    padding-bottom: 4.2rem;
  }
}

/* =======================================================
  Step Card
========================================================= */
.stepCard{
  --card-top: #18888A;
  --card-bottom: #091057;
  border-radius: 5px;
  padding: 1.25rem 1.25rem 1.15rem;
  color: #fff;
  background: linear-gradient(
    180deg,
    var(--card-top) 0%,
    var(--card-top) 20%,
    var(--card-bottom) 100%
  );

  box-shadow: 0 10px 22px rgba(0,0,0,.18);
  min-height: 240px;
  width: 100%;
}
@media (min-width: 701px) and (max-width: 1050px){
  .stepCard{
    padding: 1.25rem .6rem 1.15rem;
  }
}
@media (max-width: 700px){
  .stepCard{
    width: 80%;
  }
}
@media (max-width: 700px){
  .stepCard{
    width: 100%;
    max-width: 420px;
    margin: 0 auto;
  }
}

.stepCard__pill{
  margin: 0 0 1.1rem;
  background: #fff;
  color: #0B1E5B;
  border-radius: 999px;
  padding: .45rem .9rem;
  font-weight: 700;
  font-size: .92rem;
  line-height: 1;
  text-align: center;
}
@media (min-width: 701px) and (max-width: 1050px){
  .stepCard__pill{
    font-size: .82rem;
    white-space: nowrap;
  }
}

.stepCard__head{
  display: flex;
  align-items: flex-start;
  gap: 1rem;
}

.stepCard__texts{
  flex: 1 1 auto;
  min-width: 0;
}

.stepCard__role{
  margin: 0 0 .2rem;
  font-size: 1.35rem;
  font-weight: 500;
  letter-spacing: .02em;
}
@media (min-width: 951px) and (max-width: 1050px){
  .stepCard__role{
    font-size: 1.2rem;
  }
}
@media (min-width: 701px) and (max-width: 950px){
  .stepCard__role{
    font-size: 1.1rem;
    white-space: nowrap;
  }
}

.stepCard__meta{
  margin: 0 0 .9rem;
  display: inline-flex;
  align-items: baseline;
  gap: .75rem;
  font-size: 1.05rem;
  font-weight: 600;
}
@media (min-width: 1001px) and (max-width: 1080px){
  .stepCard__meta{
    font-size: 1rem;
  }
}
@media (min-width: 701px) and (max-width: 1000px){
  .stepCard__meta{
    display: block;
    margin: 0 0 .2rem;
    font-size: .9rem;
  }
}

.stepCard__meta span{
  white-space: nowrap;
}
@media (min-width: 701px) and (max-width: 1000px){
  .stepCard__meta span{
    display: block;
  }
}

.stepCard__meta span.stepCard__metaSep{
  width: 1px;
  height: 1.2em;
  display: inline-block;
  /* 必要なら戻す
  background: rgba(255,255,255,.65);
  */
}
@media (min-width: 701px) and (max-width: 1050px){
  .stepCard__meta span.stepCard__metaSep{
    display:none
  }
}

.stepCard__face{
  width: 82px;
  height: 82px;
  border-radius: 999px;
  background: rgba(255,255,255,.92);
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  overflow: hidden;
}
.stepCard__face img{
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.stepCard__desc{
  margin: .25rem 0 0;
  font-size: .98rem;
  line-height: 1.75;
  font-weight: 600;
}
@media (min-width: 951px) and (max-width: 1050px){
  .stepCard__desc{
    font-size: .88rem;
  }
}
@media (min-width: 701px) and (max-width: 950px){
  .stepCard__desc{
    font-size: .80rem;
  }
}


/* ========================================================
  OJT
========================================================= */

.careerOjt{
  padding: 0 0 2rem;
}

@media (max-width: 700px){
  .careerOjt{
    padding: 0 0 2rem;
  }
}

.careerOjt__head{
  margin-bottom: 1.5rem;
}

.careerOjt__title{
  margin: 0;
  color: #111;
  font-weight: 400;
  letter-spacing: 0.08em;
  line-height: 1.4;
  font-size: clamp(1.1rem, 0.6vw + 1.05rem, 1.35rem);
}

.careerOjt__title .underline{
  position: relative;
  display: inline-block;
  padding-bottom: 0.4em;
}

.careerOjt__title .underline::after{
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 2.2rem;
  height: 2px;
  background-color: #091057;
}

.careerOjt__lead{
  max-width: 1000px;
  margin: 0 auto;
  line-height: 2;
  font-size: clamp(.95rem, .25vw + .9rem, 1.05rem);
}

.careerOjt__lead p{
  margin: 0 0 1.5rem;
}

/* =======================================================
  Job Rotation
========================================================= */

.careerJobRotation{
  padding: 0rem 0 2rem;
}

@media (max-width: 800px){
  .careerJobRotation{
    padding: 0rem 0 2rem;
  }
}

.careerJobRotation__head{
  margin-bottom: 1.5rem;
}

.careerJobRotation__title{
  margin: 0;
  color: #111;
  font-weight: 400;
  letter-spacing: 0.08em;
  line-height: 1.4;
  font-size: clamp(1.1rem, 0.6vw + 1.05rem, 1.35rem);
}

.careerJobRotation__title .underline{
  position: relative;
  display: inline-block;
  padding-bottom: 0.4em;
}

.careerJobRotation__title .underline::after{
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 2.2rem;
  height: 2px;
  background-color: #091057;
}

/* layout */
.careerJobRotation__grid{
  display: grid;
  grid-template-columns: 1fr 420px;
  gap: 3rem;
  align-items: start;
	 max-width: 1000px;
  margin: 0 auto;
}

@media (max-width: 900px){
  .careerJobRotation__grid{
    grid-template-columns: 1fr 360px;
    gap: 2rem;
  }
}

.careerJobRotation__lead{
  max-width: 1000px;
  margin: 0 auto;
  line-height: 2;
  font-size: clamp(.95rem, .25vw + .9rem, 1.05rem);
}

.careerJobRotation__lead p{
  margin: 0 0 1.5rem;
}

.careerJobRotation__lead p:nth-last-of-type(1){
  margin: 0 0;
}

.careerJobRotation__media{
  margin: 0;
}

.careerJobRotation__media img{
  width: 100%;
  height: auto;
  display: block;
}

@media (max-width: 800px){
  .careerJobRotation__grid{
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }

  .careerJobRotation__media{
    display: flex;
    justify-content: center;
  }

  .careerJobRotation__media img{
    width: 100%;
    max-width: 420px;
  }
}

@media (max-width: 480px){
  .careerJobRotation__media img{
    width: 80%;
    max-width: none;
  }
}

/* =======================================================
  Career Layer Exam
========================================================= */

.careerLayerExam{
  padding: 0rem 0 2rem;
}

/* title */
.careerLayerExam__head{
  margin: 0 0 2.25rem;
}

.careerLayerExam__title{
  margin: 0;
  color: #111;
  font-weight: 400;
  letter-spacing: .08em;
  line-height: 1.4;
  font-size: clamp(1.1rem, 0.6vw + 1.05rem, 1.35rem);
  position: relative;
  padding-bottom: .6rem;
}

.careerLayerExam__title::after{
  content:"";
  position:absolute;
  left: 0;
  bottom: 0;
  width: 2.2rem;
  height: 2px;
  background: #091057;
}

.careerLayerExam__lead{
  max-width: 1000px;
  margin: 0 auto;
  line-height: 2;
  font-size: clamp(.95rem, .25vw + .9rem, 1.05rem);
}

.careerLayerExam__lead p{
  margin: 0 0 2.25rem;
}

.careerLayerExam__lead p:last-child{
  margin-bottom: 0;
}

@media (max-width: 700px){
  .careerLayerExam{
    padding: 3.25rem 0;
  }
  .careerLayerExam__head{
    margin-bottom: 1.75rem;
  }
  .careerLayerExam__lead p{
    margin-bottom: 1.75rem;
  }
}

/* =======================================================
  careerStepupBlock
========================================================= */

.careerStepupBlock{
	margin: 2rem 0 5rem;
}

@media (max-width: 1200px){
	.careerStepupBlock{
	margin: 2rem 0 4rem;
}
}

.careerStepupBlock .careerStepupCards{
	margin-top: 0;
}

.careerStepupBlock .careerStepupCards__list {
	margin-top: 1rem;
}

@media (max-width: 700px) {
  .careerStepupBlock .careerStepupCards__list {
    margin-top: 3rem;
  }
}

/* =========================================================
  Career Training
========================================================= */

.careerTraining{
  padding: 4rem 0;
}

.careerTraining__head{
  margin-bottom: 0;
}

.careerTraining__title{
  margin: 0 0 2rem;
  font-weight: 400;
  letter-spacing: .08em;
}

.careerTraining__title .underline{
  position: relative;
  display: inline-block;
  padding-bottom: .4em;
}

.careerTraining__title .underline::after{
  content:"";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 2.2rem;
  height: 2px;
  background: #091057;
}

.careerTraining__lead{
  max-width: 1000px;
  margin: 0 auto;
}

.careerTraining__lead p.note{
  margin-bottom: 2rem;
}


/* =======================================================
  Career Training Matrix Outer
========================================================= */

.careerTrainingMatrix_outer{
  padding-left: 0;
}

@media (max-width: 1170px){
  .careerTrainingMatrix_outer{
    padding-left: 4rem;
  }
}

@media (max-width: 700px){
  .careerTrainingMatrix_outer{
    padding-left: 2rem;
  }
}

.careerTrainingMatrix_outer p{
  padding-bottom: .8rem;
}

.careerTrainingMatrix_outer .careerTrainingMatrix{
  overflow: visible;
}


/* =======================================================
  Career Training Matrix
  メンバー → 主任 → 店長
========================================================= */

.careerTrainingMatrix{
  --levelW: 150px;
  --border: rgba(0,0,0,.14);
  --border_black: rgba(0,0,0,.7);
  --cellPadY: 1rem;
  --cellPadX: 1rem;

  display: grid;
  grid-template-columns: var(--levelW) 1fr 1fr;
  border: 1px solid var(--border);
  background: rgba(255,255,255,.95);
  overflow: hidden;

  grid-template-areas:
    "hdBlankTop hdReq hdOpt"
    "stfReq stfReq1 stfOpt1"
    "stfReq stfReq2 stfOpt2"
    "stfReq stfReq3 stfOpt3"
    "supReq supReq1 supOpt1"
    "supReq supReq2 supOpt2"
    "supReq supReq3 supOpt3"
    "mgrReq mgrReq1 mgrOpt1"
    "mgrReq mgrReq2 mgrOpt2"
    "mgrReq mgrReq3 mgrOpt3";
}

/* =======================================================
  Head
========================================================= */

.ctHead{
  color: #fff;
  font-weight: 700;
  text-align: center;
  padding: 1.25rem 1rem;
  background: linear-gradient(180deg, #18888A 0%, #091057 100%);
  border-bottom: 1px solid var(--border);
}

.ctHead--top.ctHead--blank{
  grid-area: hdBlankTop;
  border-right: 1px solid var(--border);
}

.ctHead--top.ctHead--req{
  grid-area: hdReq;
  border-right: 1px solid var(--border);
}

.ctHead--top.ctHead--opt{
  grid-area: hdOpt;
}

.ctHead--bottom{
  display: none;
}


/* =======================================================
  Level
========================================================= */

.ctLevel{
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  background: rgba(0,0,0,.06);
  border-right: 1px solid var(--border);
  border-bottom: 2px solid var(--border_black);
}

.ctLevel--req.ctLevel--stf{ grid-area: stfReq; }
.ctLevel--req.ctLevel--sup{ grid-area: supReq; }
.ctLevel--req.ctLevel--mgr{ grid-area: mgrReq; }

.ctLevel--opt{
  display: none;
}

.ctLevel--opt.ctLevel--stf{ grid-area: stfOpt; }
.ctLevel--opt.ctLevel--sup{ grid-area: supOpt; }
.ctLevel--opt.ctLevel--mgr{ grid-area: mgrOpt; }


/* =======================================================
  Cell
========================================================= */

.ctCell{
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--cellPadY) var(--cellPadX);
  text-align: center;
  line-height: 1.8;
  background: #fff;
  border-bottom: 1px solid var(--border);
}

.ctCell--req{
  border-right: 1px solid var(--border);
}

.ctCell--btm{
  border-bottom: 2px solid var(--border_black);
}

.ctLevel--req.ctLevel--mgr,
.ctCell--mgr-3{
  border-bottom: 0;
}


/* ========================================================
  Grid Area
========================================================= */

/* メンバー */
.ctCell--stf-1.ctCell--req{ grid-area: stfReq1; }
.ctCell--stf-1.ctCell--opt{ grid-area: stfOpt1; }
.ctCell--stf-2.ctCell--req{ grid-area: stfReq2; }
.ctCell--stf-2.ctCell--opt{ grid-area: stfOpt2; }
.ctCell--stf-3.ctCell--req{ grid-area: stfReq3; }
.ctCell--stf-3.ctCell--opt{ grid-area: stfOpt3; }

/* 主任 */
.ctCell--sup-1.ctCell--req{ grid-area: supReq1; }
.ctCell--sup-1.ctCell--opt{ grid-area: supOpt1; }
.ctCell--sup-2.ctCell--req{ grid-area: supReq2; }
.ctCell--sup-2.ctCell--opt{ grid-area: supOpt2; }
.ctCell--sup-3.ctCell--req{ grid-area: supReq3; }
.ctCell--sup-3.ctCell--opt{ grid-area: supOpt3; }

/* 店長 */
.ctCell--mgr-1.ctCell--req{ grid-area: mgrReq1; }
.ctCell--mgr-1.ctCell--opt{ grid-area: mgrOpt1; }
.ctCell--mgr-2.ctCell--req{ grid-area: mgrReq2; }
.ctCell--mgr-2.ctCell--opt{ grid-area: mgrOpt2; }
.ctCell--mgr-3.ctCell--req{ grid-area: mgrReq3; }
.ctCell--mgr-3.ctCell--opt{ grid-area: mgrOpt3; }


/* =======================================================
  レベルアップ表示（必須研修側）
  メンバー → 主任 → 店長
========================================================= */

.careerTrainingMatrix_outer .ctLevel--req.ctLevel--stf,
.careerTrainingMatrix_outer .ctLevel--req.ctLevel--sup{
  position: relative;
}

.careerTrainingMatrix_outer .ctLevel--req.ctLevel--stf::after,
.careerTrainingMatrix_outer .ctLevel--req.ctLevel--sup::after{
  content:"";
  position: absolute;
  left: -7.3rem;
  bottom: -1rem;
  width: 9.75rem;
  height: 2.25rem;
  background: url("../images/careerstepup_arrow.svg") center / contain no-repeat;
  pointer-events: none;
  z-index: 1;
  transform: scaleX(1) rotate(105deg);
}

.careerTrainingMatrix_outer .ctLevel--req.ctLevel--stf::before,
.careerTrainingMatrix_outer .ctLevel--req.ctLevel--sup::before{
  content:"レベルアップ";
  position: absolute;
  left: -5.3rem;
  bottom: 3.2rem;
  width: 9.75rem;
  height: 2.25rem;
  font-size: .85rem;
  pointer-events: none;
  z-index: 2;
}

@media (min-width: 701px) and (max-width: 1050px){
  .careerTrainingMatrix_outer .ctLevel--req.ctLevel--stf::after,
  .careerTrainingMatrix_outer .ctLevel--req.ctLevel--sup::after{
    left: -6rem;
    width: 8.70rem;
    height: 1.75rem;
  }

  .careerTrainingMatrix_outer .ctLevel--req.ctLevel--stf::before,
  .careerTrainingMatrix_outer .ctLevel--req.ctLevel--sup::before{
    left: -4rem;
    bottom: 2.5rem;
    width: 8.70rem;
    height: 1.75rem;
    font-size: .8rem;
  }
}

@media (max-width: 700px){
  .careerTrainingMatrix_outer .ctLevel--req.ctLevel--stf::after,
  .careerTrainingMatrix_outer .ctLevel--req.ctLevel--sup::after{
    left: -2.5rem;
    width: 3.5rem;
    height: 1.7rem;
  }

  .careerTrainingMatrix_outer .ctLevel--req.ctLevel--stf::before,
  .careerTrainingMatrix_outer .ctLevel--req.ctLevel--sup::before{
    left: -3rem;
    bottom: 1.5rem;
    width: 5rem;
    height: 1.75rem;
    font-size: .8rem;
  }
}


/* =======================================================
  SP
========================================================= */

@media (max-width: 700px){

  .careerTrainingMatrix{
    grid-template-columns: var(--levelW) 1fr;
    grid-auto-flow: row;
    grid-auto-columns: 0;
    grid-template-areas:
      "hdBlankTop hdReq"
      "stfReq stfReq1"
      "stfReq stfReq2"
      "stfReq stfReq3"
      "supReq supReq1"
      "supReq supReq2"
      "supReq supReq3"
      "mgrReq mgrReq1"
      "mgrReq mgrReq2"
      "mgrReq mgrReq3"
      "hdBlankBottom hdOptBottom"
      "stfOpt stfOpt1"
      "stfOpt stfOpt2"
      "stfOpt stfOpt3"
      "supOpt supOpt1"
      "supOpt supOpt2"
      "supOpt supOpt3"
      "mgrOpt mgrOpt1"
      "mgrOpt mgrOpt2"
      "mgrOpt mgrOpt3";
  }

  .ctHead--top.ctHead--opt{
    display: none;
  }

  .ctHead--top.ctHead--blank{
    border-right: none;
  }

  .ctHead--top.ctHead--req{
    border-right: 0;
    /*padding-right: 150px;*/
			 margin-left: -9.45rem;
  }

  .ctHead--bottom{
    display: block;
  }

  .ctHead--bottom.ctHead--blank{
    grid-area: hdBlankBottom;
    border-right: none;
  }

  .ctHead--bottom.ctHead--opt{
    grid-area: hdOptBottom;
    /*padding-right: 150px;*/
			margin-left: -9.45rem;
  }

  .ctCell--req{
    border-right: 0;
  }

  .ctCell--opt{
    text-align: left;
    justify-content: flex-start;
  }

  .ctLevel--opt{
    display: flex;
  }

  /* SP選択側の最下段も店長 */
  .ctLevel--opt.ctLevel--mgr.ctLevel--btm{
    border-bottom: none;
  }
}


/* =======================================================
  SP
========================================================= */

@media (max-width: 400px){

  .careerTrainingMatrix{
    --levelW: 100px;
    grid-template-columns: var(--levelW) 1fr;
    grid-auto-flow: row;
    grid-auto-columns: 0;
    grid-template-areas:
      "hdBlankTop hdReq"
      "stfReq stfReq1"
      "stfReq stfReq2"
      "stfReq stfReq3"
      "supReq supReq1"
      "supReq supReq2"
      "supReq supReq3"
      "mgrReq mgrReq1"
      "mgrReq mgrReq2"
      "mgrReq mgrReq3"
      "hdBlankBottom hdOptBottom"
      "stfOpt stfOpt1"
      "stfOpt stfOpt2"
      "stfOpt stfOpt3"
      "supOpt supOpt1"
      "supOpt supOpt2"
      "supOpt supOpt3"
      "mgrOpt mgrOpt1"
      "mgrOpt mgrOpt2"
      "mgrOpt mgrOpt3";
  }

  .ctHead--top.ctHead--req{
    padding-right: 0;
    margin-left: -100px;
  }

  .ctHead--bottom.ctHead--opt{
    padding-right: 0;
    margin-left: -100px;
  }
}


/* =======================================================
  SP 選択研修側のレベルアップ表示
========================================================= */

.careerTrainingMatrix_outer .ctLevel--opt.ctLevel--stf,
.careerTrainingMatrix_outer .ctLevel--opt.ctLevel--sup{
  position: relative;
}

.careerTrainingMatrix_outer .ctLevel--opt.ctLevel--stf::after,
.careerTrainingMatrix_outer .ctLevel--opt.ctLevel--sup::after{
  content:"";
  position: absolute;
  left: -7.3rem;
  bottom: -1rem;
  width: 9.75rem;
  height: 2.25rem;
  background: url("../images/careerstepup_arrow.svg") center / contain no-repeat;
  pointer-events: none;
  z-index: 1;
  transform: scaleX(1) rotate(105deg);
}

.careerTrainingMatrix_outer .ctLevel--opt.ctLevel--stf::before,
.careerTrainingMatrix_outer .ctLevel--opt.ctLevel--sup::before{
  content:"レベルアップ";
  position: absolute;
  left: -5.3rem;
  bottom: 3.2rem;
  width: 9.75rem;
  height: 2.25rem;
  font-size: .85rem;
  pointer-events: none;
  z-index: 2;
}

@media (min-width: 701px){
  .careerTrainingMatrix_outer .ctLevel--opt.ctLevel--stf::after,
  .careerTrainingMatrix_outer .ctLevel--opt.ctLevel--sup::after,
  .careerTrainingMatrix_outer .ctLevel--opt.ctLevel--stf::before,
  .careerTrainingMatrix_outer .ctLevel--opt.ctLevel--sup::before{
    display: none;
  }
}

@media (max-width: 700px){
  .careerTrainingMatrix_outer .ctLevel--opt.ctLevel--stf::after,
  .careerTrainingMatrix_outer .ctLevel--opt.ctLevel--sup::after{
    left: -2.5rem;
    width: 3.5rem;
    height: 1.7rem;
  }

  .careerTrainingMatrix_outer .ctLevel--opt.ctLevel--stf::before,
  .careerTrainingMatrix_outer .ctLevel--opt.ctLevel--sup::before{
    left: -3rem;
    bottom: 1.5rem;
    width: 5rem;
    height: 1.75rem;
    font-size: .8rem;
  }
}





