@charset "utf-8";
/*=============================================*/
/* HEADER */
/*=============================================*/
.l-header {
  background: #fff;
}
.l-header .-ttl {
  width: 100%;
  padding: clamp(9px, 0.92vw, 12px);
  background: #E5EBF4;
  color: #00418F;
  font-size: clamp(16px, 1.615vw, 21px);
  font-weight: 700;
  line-height: 1;
  text-align: center;
}
@media (max-width: 639px) {
  .l-header__top .btn-corporate {
    flex-direction: column;
    width: clamp(81px, 21.6vw, 286px);
    padding: 5px;
    border-radius: 8px;
    font-size: clamp(12px, 3.2vw, 18px);
    font-feature-settings: "palt";
    line-height: 1.25;
    text-align: center;
  }
}
@media (max-width: 1024px) {
  .l-header__pc {
    display: none;
  }
  .l-header__top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 5px 10px;
  }
  .l-header__top .-logo {
    width: clamp(243px, 63.73vw, 300px);
  }
}
@media (min-width: 1025px) {
  .l-header__sp {
    display: none;
  }
  .l-header__pc {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    min-height: 79px;
    padding-right: clamp(15px, 2vw, 32px);
    padding-left: clamp(15px, 1.625vw, 26px);
  }
  .l-header__logo {
    display: grid;
    align-items: center;
    gap: 10px;
    grid-template-columns: 1fr clamp(100px, 12.84vw, 167px);
    gap: var(--m24);
    width: min(83%, 872px);
  }
  .l-header__logo .-ttl {
    justify-self: end;
  }
}
@media (min-width: 640px) {
  .l-header__sp .btn-corporate br {
    display: none;
  }
}
/*=============================================*/
/* BTN - コーポレートサイトへ戻る */
/*=============================================*/
.btn-corporate {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  width: clamp(238px, 22vw, 286px);
  padding: 13px;
  background: #fff;
  border: 1px solid #00418F;
  border-radius: 12px;
  color: #00418F;
  font-size: var(--font18);
  font-weight: 700;
  line-height: 1;
}
.btn-corporate::after {
  content: "";
  width: clamp(12px, 1.23vw, 16px);
  aspect-ratio: 16 / 14;
  background: url(../images/arrow_b.svg) center / contain no-repeat;
}
@media (any-hover: hover) {
  .btn-corporate:hover {
    background: #00418F;
    color: #fff;
  }
  .btn-corporate:hover::after {
    background-image: url(../images/arrow_w.svg);
  }
}
/*=============================================*/
/* メインコンテンツ */
/*=============================================*/
.hero {
  margin-bottom: 28px;
}
/* TITLE
-----------------------------------------------*/
.c-ttl {
  width: clamp(304px, 53.84vw, 700px);
  margin-inline: auto;
  padding: clamp(16px, 1.76vw, 23px);
  background: rgba(255, 255, 255, 0.7);
  border: 1px solid rgba(219, 0, 15, 0.7);
  border-radius: 48px;
  text-align: center;
  position: relative;
}
.c-ttl .-ja {
  color: #DB000F;
  font-size: var(--font32);
  font-weight: 600;
}
.c-ttl .-en {
  display: block;
  width: clamp(147px, 17.69vw, 230px);
  padding: clamp(2px, 0.46vw, 6px) 5px clamp(6px, 0.76vw, 10px);
  background: #DB000F;
  border-radius: 16px;
  color: #fff;
  font-size: clamp(12px, 1.23vw, 1.6rem);
  font-weight: 700;
  letter-spacing: 0.2em;
  line-height: 1;
  position: absolute;
  top: -3px;
  left: 50%;
  transform: translateX(-50%) translateY(-50%);
}
@media (min-width: 640px) {
  .c-ttl {
    border-width: 3px;
  }
}
/* 採用メッセージ
-----------------------------------------------*/
.sec-message {
  margin-bottom: clamp(70px, 9.0625vw, 145px);
  position: relative;
}
@media (max-width: 639px) {
  .sec-message .-spImg {
    margin: 0 calc(50% - 50vw);
    padding-left: 18px;
  }
}
@media (min-width: 640px) {
  .sec-message .-spImg {
    display: none;
  }
  .sec-message::before {
    content: "";
    width: 70%;
    aspect-ratio: 960 / 664;
    background: url(../images/img01.png) center / contain no-repeat;
    position: absolute;
    right: 0;
    top: clamp(25px, 4.15vw, 54px);
    top: 54px;
  }
}
@media (min-width: 1025px) {
  .sec-message::before {
    width: min(50%, 960px);
  }
}
.sec-message .c-content {
  max-width: 1160px;
  position: relative;
}
@media (max-width: 639px) {
  .sec-message .c-content {
    width: 100%;
  }
}
.sec-message h2 {
  margin-bottom: 30px;
}
@media (min-width: 640px) {
  .sec-message h2 {
    margin-bottom: 23.43vw;
  }
}
@media (min-width: 1025px) {
  .sec-message h2 {
    margin-bottom: var(--m70);
  }
}
.sec-message .txt {
  max-width: 770px;
  padding: var(--m55) var(--m70) clamp(30px, 5.15vw, 67px);
  background: rgba(255, 241, 242, 0.5);
  border-radius: clamp(25px, 4.15vw, 54px);
}
.sec-message .txt p + p {
  margin-top: 2em;
}
@media (max-width: 639px) {
  .sec-message .txt {
    margin-top: -60px;
    padding-top: 90px;
    padding-bottom: 90px;
    border-radius: 0;
    position: relative;
  }
  .sec-message .txt::before {
    content: "";
    width: 100%;
    aspect-ratio: 375 / 108;
    background: url(../images/message.svg) center / contain no-repeat;
    position: absolute;
    left: 0;
    bottom: -28px;
    z-index: -1;
  }
}
/* マーカーテキスト
-----------------------------------------------*/
.copy {
  margin-bottom: var(--m120);
}
.copy p {
  color: #00418F;
  font-size: var(--font32);
  font-weight: 700;
  line-height: 1.875;
  text-align: center;
}
.copy p em {
  text-decoration: underline;
  text-decoration-thickness: 0.68em;
  text-decoration-color: #FFFF00;
  text-underline-offset: -0.2em;
  text-decoration-skip-ink: none;
}
/* 各拠点の仕事風景
-----------------------------------------------*/
.sec-movie {
  margin-bottom: var(--m150);
  padding: var(--m100) 0;
  background: url(../images/bg01_sp.jpg) center top / cover no-repeat;
  border-radius: 24px;
}
@media (min-width: 640px) {
  .sec-movie {
    background-image: url(../images/bg01.jpg);
    border-radius: min(9.23vw, 120px);
  }
}
@media (max-width: 639px) {
  .sec-movie .c-content {
    width: 100%;
  }
}
.sec-movie h2 {
  margin-bottom: var(--m70);
}
.sec-movie .c-movie {
  max-width: 830px;
  margin-inline: auto;
}
/* 先輩からのメッセージ
-----------------------------------------------*/
.sec-message2 {
  width: 96%;
  margin-bottom: 28px;
}
.sec-message2 h2 {
  margin-bottom: var(--m80);
}
.blc-senpai {
  margin-bottom: var(--m80);
  padding: clamp(6px, 0.76vw, 10px);
  background: linear-gradient(100deg, rgba(89,133,234,0.65) 4%, rgba(130,216,229,0.65) 100%); 
  border-radius: clamp(37px, 3.46vw, 45px);
  position: relative;
}
.blc-senpai .-inner {
  padding: clamp(39px, 4.38vw, 57px) 0 clamp(45px, 5vw, 65px);
  background: #fff;
  border-radius: clamp(34px, 2.69vw, 36px);
}
.blc-senpai .-cont {
  width: min(81vw, 980px);
  margin-inline: auto;
}
.blc-senpai .-img {
  display: block;
  margin-bottom: clamp(28px, 3.07vw, 40px);
}
.blc-senpai .-job {
  margin-bottom: var(--m10);
  font-size: clamp(20px, 1.84vw, 2.4rem);
  font-weight: 700;
  line-height: 1.4;
}
.blc-senpai .-name {
  font-size: clamp(18px, 1.53vw, 2.0rem);
  font-weight: 500;
  line-height: 1.77;
}
@media (max-width: 639px) {
  .blc-senpai .-prof {
    display: flex;
    align-items: flex-end;
    gap: 18px;
    margin-bottom: 20px;
  }
  .blc-senpai .-prof img {
    flex-shrink: 0;
    width: 39.473684%;
  }
}
@media (min-width: 640px) {
  .blc-senpai .-prof img {
    display: none;
  }
  .blc-senpai .-name {
    margin-bottom: var(--m20);
    line-height: 1.4;
  }
}
/* 採用情報
-----------------------------------------------*/
.sec-recruit {
  padding: clamp(86px, 18.3vw, 238px) 0 var(--m135);
  background: url(../images/bg02_sp.jpg) center top / 100% no-repeat #CCE5FF;
}
@media (min-width: 640px) {
  .sec-recruit {
    background-image: url(../images/bg02.jpg);
    background-size: cover;
  }
}
.sec-recruit .c-content {
  width: 88.88%;
}
.sec-recruit h2 {
  margin-bottom: var(--m85);
  background: #fff;
}
.sec-recruit h2 .-en {
  width: 85%;
  max-width: 382px;
}
.sec-recruit .c-dtable {
  max-width: 980px;
  margin-inline: auto;
}
.sec-recruit ol {
  counter-reset: cnt;
}
.sec-recruit ol li {
  padding-left: 1.1em;
  line-height: 2;
  position: relative;
}
.sec-recruit ol li::before {
  content: ""counter(cnt)"､";
  counter-increment: cnt;
  position: absolute;
  left: 0;
}
.sec-recruit .-flex {
  display: flex;
  gap: 1em;
}
/* 採用情報
-----------------------------------------------*/
.sec-entry {
  padding: var(--m110) 0 var(--m120);
}
.sec-entry .c-content {
  width: 89.6%;
}
.sec-entry h2 {
  margin-bottom: clamp(30px, 4.84vw, 63px);
}
.sec-entry .-txt {
  margin-bottom: var(--m60);
  font-size: var(--font20);
  font-weight: 500;
}
@media (min-width: 640px) {
  .sec-entry .-txt {
    text-align: center;
  }
}
.btn-recruit {
  display: inline-block;
  gap: 10px;
  width: min(100%, 647px);
  padding: clamp(25px, 4.3vw, 56px) clamp(20px, 2.92vw, 38px);
  background: #00418F;
  border: 2px solid #00418F;
  border-radius: 20px;
  color: #fff;
  font-size: clamp(20px, 2.76vw, 3.6rem);
  font-weight: 600;
  line-height: 1;
  position: relative;
}
.btn-recruit::before {
  content: "";
  width: 100%;
  height: 100%;
  background: #4164B6;
  border-radius: 20px;
  position: absolute;
  left: 10px;
  top: 10px;
  z-index: -1;
}
.btn-recruit::after {
  content: "";
  width: clamp(16px, 2.46vw, 32px);
  aspect-ratio: 32 / 27;
  background: url(../images/arrow_w.svg) center / contain no-repeat;
  position: absolute;
  right: clamp(20px, 2.92vw, 38px);
  top: 50%;
  transform: translateY(-50%);
}
@media (any-hover: hover) {
  .btn-recruit:hover {
    background: #fff;
    color: #00418F;
  }
  .btn-recruit:hover::after {
    background-image: url(../images/arrow_b.svg);
  }
}
/*=============================================*/
/* FOOTER */
/*=============================================*/
.l-footer {
  padding: clamp(20px, 2.15vw, 28px) 10px 20px;
  background: #EFEFEF;
  text-align: center;
}
.l-footer .-btn {
  margin-bottom: var(--m20);
}
.l-copyright {
  font-size: 12px;
  text-align: center;
}
@media (min-width: 640px) {
  .l-copyright {
    font-size: 13px;
  }
  .l-footer .-btn .btn-corporate {
    margin-inline: auto;
  } 
}
/*=============================================*/
/* page__top */
/*=============================================*/
.page__top {
  width: min(98%, 1590px);
  text-align: right;
  position: fixed;
  bottom: 54px;
  right: 50%;
  transform: translateX(50%);
  z-index: 9999;
  cursor: pointer;
  transition: all ease-in-out .3s;
}
.page__top img {
  width: clamp(40px, 4.61vw, 60px);
  height: clamp(40px, 4.61vw, 60px);
}
@media (min-width: 640px) {
  .page__top {
    bottom: clamp(85px, 7.92vw, 103px);
  }
}