:root {

  --l-space: 8;
  --l-scrollbar-width: 0;
  --l-base-color: #fff;
  --l-light-color: #f7f6f2;
  --l-dark-color: #3c3c3c;
  --l-main-color: #1D449D;
  --l-accent-color: #FF7815;
  --l-grayish-color: #707070;
  --l-light-grayish-color: #F8F5EC;
  --l-primary-text-color: #333;
  --l-accent-text-color: #E34E00;
  --l-heading-text-color: #222;
  --l-light-text-color: #fff;
  --l-primary-font-set: "Noto Sans JP", sans-serif;
  --l-en-font-set: "Montserrat", sans-serif;
  --l-base-line-height: 1.7;
  --l-base-feature-settings: "pkna";
  --l-base-letter-spacing: 0.05em;
  --l-scroll-behavior: smooth;
  --l-ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
  --l-duration: 0.6s;
  --l-view-point: var(--l-sm-design-width);
}
@media screen and (min-width: 768px) {
  :root {
    --l-view-point: var(--l-md-design-width);
  }
}
@media screen and (min-width: 1024px) {
  :root {
    --l-view-point: var(--l-lg-design-width);
  }
}

/*============================
Mega Menu
============================*/
/* PCメガメニュー設定 */
.pcmenu .has-mega {
  position: relative; /* これは他でも使ってるならそのままでOK */
}

/* 初期状態：非表示 */

.header_wrap > .sub-menu {
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.4s ease, visibility 0.4s ease;
  position: absolute;
  top: 80px;
  left: 0;
  width: 100vw;
  background: #fff;
  padding: 30px 8vw;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
  z-index: 100;
  list-style: none;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 20px;
  display: grid;
  pointer-events: none; /* hover対策 */
}

/* 表示時 */
.header_wrap.mega-open > .sub-menu {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

/* メガメニュー内の各項目 */
.pcmenu .sub-menu li a {
  display: block;
  position: relative;
  text-align: center;
  color: #333;
}
.sub-menu a {
  display: block;
  color: #fff;
  text-decoration: none;
}

.sub-menu figure {
  position: relative;
  margin: 0;
  aspect-ratio: 279/155;
  overflow: hidden;
}

.sub-menu img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.sub-menu figcaption {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  white-space: nowrap;
  font-size: 17px;
  font-weight: 700;
  color: #fff;
  font-style:normal;
}





.pcmenu .sub-menu .caption {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 10px;
  background: rgba(0,0,0,0.5);
  font-size: 14px;
  color: #fff;
}

/* スマホ用 */
@media (max-width: 768px) {
  .pcmenu {
    flex-direction: column;
  }

  .pcmenu .sub-menu {
    position: static;
    display: block !important;
    background: none;
    grid-template-columns: 1fr;
    box-shadow: none;
    padding: 10px 0;
  }

  .pcmenu .sub-menu .caption {
    position: static;
    background: none;
    color: #000;
    font-size: 16px;
    padding: 8px 0 0;
  }
}

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

.sec1_list{
  max-width:620px;
}

.sec1_list .-item{
  display: flex;
  flex-direction:column;
  align-items: center;
  justify-content: center;
  aspect-ratio:1;
  border-radius:50%;
  border:2px solid #fff;
  color:#fff;
  width:190px;
  margin-inline:auto;
}

.sec1_list figure{
  margin-bottom:0;
}

.sec1_list .-title{
  font-size:23px;
  font-weight: 700;
}
.sec1_list .-text{
  font-size:16px;
  line-height:1.25;

}

.sec3_feature{
  position:relative;
  padding:0 2em 1.5em;
}

.sec3_feature:not(:first-child){
  padding:0 2em 2.5em;
}

@media screen and (min-width: 1024px) {
  .sec3_feature{
    padding:0 4em 1.5em;
  }
  .sec3_feature:not(:first-child){
    padding:0 4em 2.5em;
  }
}

.sec3_feature::before{
  position:absolute;
  content:"";
  bottom:0;
  left:0;
  width:100%;
  height:80%;
  background:#162B86;
  z-index:-1;
}

.sec3_feature .-number{
  position:absolute;
  bottom:0;
  right:1em;
}

.sec3_feature .-thumbnail{
  aspect-ratio:487/260;
  overflow:hidden;

}

.sec3_feature .-thumbnail img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.sec3_feature .-title{
  color:#fff;
  font-size:clamp(1.5rem, 1.409rem + 0.39vw, 1.875rem);
  margin:.25em 0;
}
.sec3_feature .-text{
  color:#fff;
  list-style:none;
  padding:0;
  line-height: 1.8;
}

@media screen and (min-width: 768px) {
  .sec3_wrap1 {
      margin-bottom: 170px !important;
  }
}

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

.ls_servicebox{
  max-width:1120px !important;
}
}
.ls_servicebox .-catch{
  font-size: clamp(1.5rem, 1.236rem + 1.13vw, 2.25rem);
  font-weight: 700;
  color: var(--l-dark-color);
  line-height: 1;

}

.sec5_catch{
  color:#142C96;
  font-weight:700;
  font-size:clamp(1.5rem, 1.104rem + 1.69vw, 2.625rem);
  line-height: 1.6;
}

.benefits{
  display: flex;
  align-items: center;
  border-bottom:1px solid #CCCCCC;
  padding:.5em 0;
  gap:28px;
}

.benefits .-title{
 font-size: clamp(1.313rem, 0.96rem + 1.5vw, 2.313rem);
 font-weight: 700;
 color:var(--l-main-color);
 line-height: 1.6;
 position:relative;
}

.benefits .-title::before{
  position:absolute;
  content:"";
  left:-.5em;
  width:.25em;
  height:.25em;
  border-radius:50%;
  background:#8995CA;
  top:.75em;
}

.benefits .-text{
  font-size: clamp(0.813rem, 0.768rem + 0.19vw, 0.938rem);
  font-weight: 500;
}



/*============================
vision
============================*/
.vision_sec2_content .-catch{
  font-size:clamp(2.25rem, 1.722rem + 2.25vw, 3.75rem);
  text-align: center;
  font-weight:700;
  line-height: 1.6;
}

@media screen and (min-width: 768px) {
  .vision_sec3_box1 .vision_sec3_box_left {
      width: 56%!important;
  }
}

.vision_sec3_box_lv4 span{
  color:var(--l-primary-text-color);
}


@media screen and (min-width: 768px) {
  .vision_sec3_box1 .vision_sec3_box_right {
      width: 43%;
  }

  .vision_sec3_box_img1{
    padding-left:3em;
  }

  .vision_sec3_box_right figure{
    margin-right:-2.5em;
    margin-left:-2.5em;
  }
}

@media screen and (min-width: 980px) {
	 .vision_sec3_box_right figure{
    margin-right:-5em;
    margin-left:-5em;
  }
}



.vision_sec3_box .-graph{
  max-width:1092px;
  margin-inline:auto;
  width:90%;
}


/*============================
Service
============================*/
.strengths.sec3_wrap1{
  margin-bottom:0!important;
}
.strengths__head{
  max-width:1320px;
  margin-inline:auto;
}
.strengths .l-grid{
  max-width:1120px;
  margin-inline:auto;
}

.strengths__item{
  padding:4em 0 0 1em;
}
.strengths__item.sec3_feature:not(:first-child) {
  padding:4em 0 0 1em ;
}
@media screen and (min-width: 768px) {
.strengths__item.sec3_feature:nth-child(2n){
  margin-top:7em;
}
}

.strengths__item.sec3_feature::before{
 display:none;
}



.strengths__item .-thumbnail{
  aspect-ratio:auto;

}

.strengths__item .-number{
  bottom:auto;
  right:auto;
  top:0;
  left:0;
}

.strengths__item .-title{
  font-size:clamp(2.25rem, 1.722rem + 2.25vw, 3.75rem);
  margin-top:0;
}

.strengths__item .-text{
  font-size:clamp(0.875rem, 0.743rem + 0.56vw, 1.25rem);
}

.-service.txtslider_wrap{
  padding:1em 0;
}

.-service.service_sec2_box_left{
  display:flex;
  flex-direction:column;
  justify-content: center;
  align-items: center;
  width:auto;

  padding-bottom:1em;
}

@media screen and (min-width: 768px) {
  .-service.service_sec2_box_left{
    flex-direction:row;
    gap:28px;
  }
}

/*============================
 Recruit Link
============================*/
.recruitLink{
  max-width:1140px;
  margin-inline:auto;
  width:90%;

}

.recruitLink .l-grid{
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
}

.recruitLink .l-grid__item{
  aspect-ratio: 427 / 235;
}





@media screen and (min-width: 768px){
  .recruitLink .l-grid {
    grid-template-columns: repeat(3, 1fr);
    grid-auto-rows: 200px;
    column-gap:16px;
    row-gap:28px;
  }
  .recruitLink .l-grid__item{
    aspect-ratio:auto;
  }

  .recruitLink .l-grid__item.-item01{
    grid-row: span 2;
    aspect-ratio:auto;
  }
}

.recruitLink__item{
  position:relative;
  display:block;
  width:100%;
  height:100%;

}

.recruitLink__item figure{
  position:relative;
  width:100%;
  height:100%;
  margin:0;
  overflow:hidden;
}

.recruitLink__item figure img{
  width:100%;
  height:100%;
  object-fit:cover;
	transition:transform .3s ease-in-out;

}
.recruitLink__item:hover img{
	transform:scale(1.1);
}

/* .l-grid__item.-item01 .recruitLink__item {
  background: url('img/bg_link01.jpg') center center/cover;
}
.l-grid__item:nth-child(2) .recruitLink__item {
  background: url('img/bg_link02.jpg') center center/cover;
}
.l-grid__item:nth-child(3) .recruitLink__item {
  background: url('img/bg_link03.jpg') center center/cover;
}
.l-grid__item:nth-child(4) .recruitLink__item {
  background: url('img/bg_link04.jpg') center center/cover;
}
.l-grid__item:nth-child(5) .recruitLink__item {
  background: url('img/bg_link05.jpg') center center/cover;
} */

.recruitLink__item p{
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%, -50%);
  color:#fff;
  white-space: nowrap;
  font-size: clamp(1rem, 0.736rem + 1.13vw, 1.75rem);
}

/*============================
 Recruit
============================*/
.demand{
  color:var(--l-primary-text-color);
}
.demand .-wrap{
  position:relative;
  max-width:1440px;
  margin-inline:auto;
  z-index:1;
}
.demand .-wrap::before,.demand .-wrap::after{
  position:absolute;
  content:"";
  left:0;
  top:0;
  width:100%;
  height:100%;

}
.demand .-wrap::before{
  background: url('img/bg_demand.jpg') center center/cover;
  z-index:-1;
  opacity:0.37;
}
.demand .-wrap::after{
  background: #162B86;
  z-index:-2;
}
.demand .l-grid{
  max-width:1120px;
  margin-inline:auto;
  padding:0 5%;
}
.demand .-item{
  background: #fff;
  padding:1.5em;
}
.demand .-head{
  display:flex;
  align-items:center;
  gap:14px;

}
.demand .-head figure{
  margin:0;
  width:24%;
}
.demand .-head p{
  font-size: clamp(1.313rem, 1.092rem + 0.94vw, 1.938rem);
  color:#142C96;
  line-height: 1.4;
  font-weight: 700;
  white-space: nowrap;
}
.demand .-body{
  margin-top: 1em;
  font-weight: 500;
}
@media screen and (min-width: 769px){
  .demand .-item{
  padding:2.5em;
  }
}
.stepUp{
  max-width:1140px;
  margin-inline:auto;
  position:relative;
}
.stepUp::after{
  position:absolute;
  content:"";
  left:50%;
  transform:translateX(-50%);
  bottom:-1.75em;
  width:40px;
  height:18px;
  background: url('img/ico_stepUp.svg') center center/cover;
}

.stepUp.-or::after{
  content:"or";
  background:none;
  color:var(--l-main-color);
  font-size: 40px;
  font-weight:700;
  width:auto!important;
  height:auto!important;
  bottom:-1.125em!important;
}
.stepUp.-last::after{
  display:none;
}

.stepUp__thumbnail{
  width:100%;
}

.stepUp__thumbnail img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.recruit_sec3_wrap2 .-heading{
  margin-top:.5em;
  font-size: clamp(1.125rem, 0.685rem + 1.88vw, 2.375rem);
  color:var(--l-main-color);
  font-weight: 700;
}

@media screen and (min-width: 1023px){
  .stepUp::after{
    bottom:-3.5em;
    width:70px;
  height:30px;
  }
.stepUp__thumbnail{
  width:32%;
  flex-shrink:0;
}

.stepUp.-or::after{
  bottom:-1.5em!important;
}
}

.stepUp__body{
  padding:1em;
  background:#728AE5;
}

.stepUp:nth-child(2) .stepUp__body{
  background:#6A7EDC;
}

.stepUp:nth-child(3) .stepUp__body{
  background:#4659B7;
}

.stepUp:nth-child(4) .stepUp__body{
  background:#2D42AC;
}

.stepUp:nth-child(5) .stepUp__body{
  background:#1D318E;
}

.stepUp:last-child .stepUp__body{
  background:#1A296B;
}


.stepUp__body h3{
  background:#fff;
  font-size:clamp(1.5rem, 1.104rem + 1.69vw, 2.625rem) ;
  padding:0.25em 0;
  display:flex;
  justify-content:center;
  align-items:center;
  gap:16px;
  color: #728AE5;

  .-title{
    font-size:clamp(0.938rem, 0.695rem + 1.03vw, 1.625rem);
    background: #728AE5;
    color:#fff;
    padding:0.125em .5em;
  }
}

.stepUp:nth-child(2) h3{
  color:#6A7EDC;
}
.stepUp:nth-child(3) h3{
  color:#4659B7;
}
.stepUp:nth-child(4) h3{
  color:#2D42AC;
}
.stepUp:nth-child(4) h3 .-title{
  background:#2D42AC;
}
.stepUp:nth-child(5) h3{
  color:#1D318E;
}
.stepUp:last-child h3{
  color:#1A296B;
}
.stepUp:last-child h3 .-title{
  background:#1A296B;
}

.stepUp__body .-catch{
  color:#fff;
  font-weight: 700;
  font-size: clamp(1.313rem, 1.092rem + 0.94vw, 1.938rem);
  text-align: left;

  span{

    font-size: clamp(1.75rem, 1.42rem + 1.41vw, 2.688rem);
    margin-left:.25em;
  }
}
.stepUp:last-child .stepUp__body .-catch{
  text-align:left;
  line-height: 1.4;
}

.stepUp__body ul{
  color:#fff;
  font-weight: 700;
  padding-inline-start:20px;
  text-align: left;
  line-height: 1.7;
}

.stepUp__body .-body{
  background: #fff;
  text-align: left;
  padding:1em;
  font-size: clamp(0.875rem, 0.831rem + 0.19vw, 1rem);
  font-weight: 400;
}



@media screen and (min-width: 768px){
  .stepUp__body{

    padding:1.5em;
  }
  .stepUp__body .-wrap{

    max-width:90%;
    margin-inline:auto;
  }
  .stepUp__body .-body{
    width:47%;
    flex-shrink:0;
  }

  /* .stepUp__body .-catch{
    text-align: center;
  } */
  }

  .benefitsItem{
    max-width:1120px;
    margin-inline:auto;
    padding:0 5%;
  }

  .benefitsItem h2{
    border-bottom:1px solid #000000;
    padding-bottom:.25em;
    margin-bottom: 1em;
  }

  .benefitsItem .-number{
    display:block;
    width:clamp(2rem, 1.076rem + 3.94vw, 4.625rem);
  }
  .benefitsItem .-title{
    font-size: clamp(1.25rem, 1.008rem + 1.03vw, 1.938rem);
  }

  .benefitsItem p{
    font-size: clamp(0.875rem, 0.831rem + 0.19vw, 1rem);
  }

  .benefitsItem .l-grid{
    max-width:880px;
  }

  .media{
    max-width:1120px;
    margin-inline:auto;
    padding:0 5%;
  }
  .-case .media{
    max-width:1440px;
    padding:0;
  }

  .media__title{
    font-size: clamp(1.125rem, 0.839rem + 1.22vw, 1.938rem);
    color:var(--l-main-color);
    font-weight: 700;
  }
  .media__catch{
    font-size:clamp(1rem, 0.78rem + 0.94vw, 1.625rem) ;
    font-weight: 700;
    line-height: 1.4;
    margin-top: .5em;
  }
  .media__text,.media__text p{
    margin-top: 1em;
    line-height: 1.875;
    font-size: clamp(0.875rem, 0.831rem + 0.19vw, 1rem);
  }
  @media screen and (min-width: 768px){
  .-case  .media__body{
    width:53%;
  }
}
  .media__img{
    margin:0;
  }

  @media screen and (min-width: 768px){
  .media__img{
    width:48%;
    flex-shrink:0;
  }
  .-case .media__img{
    width:36%;
  }
}

.voice{
  max-width:1440px;
  margin-inline:auto;
  padding:0 5%;

}
.voice figure{
  margin:0;
}

.requirements{
  max-width:1320px;
}

.requirements__item:not(:last-child){
  border-top:1px solid #CCCCCC;
}

.requirements__item{
  border-bottom:1px solid #CCCCCC;
  padding:1.5em 0;
}

.requirements dt{
  font-size: clamp(1rem, 0.692rem + 1.31vw, 1.875rem);
  font-weight: 700;
  color:var(--l-main-color);
}
.requirements dd{
  font-size: clamp(0.875rem, 0.787rem + 0.38vw, 1.125rem);

}
.requirements dd ul{
  list-style-type:none;
  line-height: 2;
}


@media screen and (min-width: 768px){
  .requirements dt{
    width:28%;
    flex-shrink:0;
  }

  .requirements__item{

    padding:2em 0;
  }
}

.dl{
  max-width:1320px;
  margin-inline:auto;
  padding:0 5%;
}

.dl__item{
  display: flex;
  flex-direction:column;
  border-bottom: 1px solid #CCCCCC;
}

.dl__item dt{
  font-size:clamp(1rem, 0.912rem + 0.38vw, 1.25rem) ;
  background:#EBEFF7;
  padding: 1em 1.25em;
  font-weight: 500;
}

.dl__item dd{
  font-size:clamp(0.875rem, 0.787rem + 0.38vw, 1.125rem) ;
  line-height: 1.8;
  padding: 1em ;
  margin:0;
}

.dl__item ul{
  list-style-type: none;
  padding:0;

}
.dl__item li{
  padding-left:1em;
  position:relative;
}
.dl__item li::before{
  position:absolute;
  content:"";
  left:0;
  top:.75em;
  width:.5em;
  height:.5em;
  border-radius:50%;
  background:#8995CA;

}

@media screen and (min-width: 768px){
  .dl__item{

    flex-direction: row;
  }

  .dl__item dt{
    width:20%;
    flex-shrink:0;

  }

  .dl__item dd{
    padding: 1em 1em 1em 2em;
  }
}

.recruit-flow{
  background: url('img/bg_flow.jpg') center center/cover;
}
.recruit-flow .-wrapper{
  max-width:1320px;
  margin-inline:auto;
  padding:0 5%;
}
.recruit-flow .lv2_wrap{
  margin:0;
  margin-bottom:1em;
}
.recruit-flow .lv2_txt1{
  color:#fff;

}
.recruit-flow .lv2_wrap::before{
  background:#fff;
}

.recruit-flow .-content{
  max-width:1120px;
  margin-inline:auto;
}
.recruit-flow .-text{
  margin-top:-2em;
}
@media screen and (min-width: 768px){
  .recruit-flow .-text{
    padding-left:3.5em;
    margin-top:-4em;
  }
}
.recruit-flow .-text p{
  color:#fff;
  font-size: clamp(0.875rem, 0.787rem + 0.38vw, 1.125rem);
}

.interview figure{
	aspect-ratio:689/452;
	overflow:hidden;
}
.interview figure img{
	width:100%;
	height:100%;
	object-fit:cover;
	transition:transform .3s ease-in-out;
}
.interview a:hover img{
	transform:scale(1.1);
}

.-map{
	max-width:1320px;
	padding:0 5%;
	margin-inline:auto;
	aspect-ratio:1320/564;
	overflow:hidden;
}
.-map iframe{
	width:100%;
	height:100%;
	object-fit:cover;
}
