@charset "UTF-8";
/*===== Common =====*/
html {
  font-size: 62.5%;
}
@media screen and (min-width: 1400px) {
  html {
    font-size: 0.7142857143vw;
  }
}

body {
  font-size: 1.6rem;
}

/* base
==================================*/
h1,
h2,
h3,
h4,
h5,
h6,
p,
pre,
blockquote,
ul,
li,
ol,
dl,
dd,
tr {
  font-size: 1.6rem;
  line-height: 1.5;
  overflow-wrap: anywhere;
  line-break: strict;
  word-break: break-all;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  line-height: 1;
}

a {
  color: #152449;
  text-decoration: none;
  transition: 0.3s;
}
a:visited {
  color: #152449;
}
a:hover {
  color: #152449;
  text-decoration: none;
}
a:active {
  color: #152449;
}
@media (min-width: 800px) {
  a.tel {
    pointer-events: none;
    cursor: default;
  }
}

@media (min-width: 800px) {
  .sp {
    display: none !important;
  }
}
@media (max-width: 799px) {
  .pc {
    display: none !important;
  }
}
/* main
==================================*/
main {
  display: block; /*IE対策*/
}

/*　Retina対応時のCSS↓　*/
/*===== header・footer（全ページ共通のため _component.scss に記載） =====*/
/*===== pageTop =====*/
#pageTop {
  opacity: 0;
  position: fixed;
  right: 0;
  bottom: 0;
  z-index: 888;
  transition: 0.3s;
}
#pageTop.active {
  opacity: 1;
}
#pageTop a {
  display: block;
  width: 5rem;
}
#pageTop a:hover {
  opacity: 0.7;
}

/* loader
==================================*/
#loader {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: #fff;
  z-index: 1001;
}

/* Animation
==================================*/
.c-anim-up {
  transform: translate(0, 3rem);
  opacity: 0;
  transition: 0.3s ease;
}

.move {
  transform: translate(0, 0);
  opacity: 1;
}

.delay1 {
  -moz-transition-delay: 300ms;
  -webkit-transition-delay: 300ms;
  -o-transition-delay: 300ms;
  -ms-transition-delay: 300ms;
}

.delay2 {
  -moz-transition-delay: 600ms;
  -webkit-transition-delay: 600ms;
  -o-transition-delay: 600ms;
  -ms-transition-delay: 600ms;
}

.delay3 {
  -moz-transition-delay: 900ms;
  -webkit-transition-delay: 900ms;
  -o-transition-delay: 900ms;
  -ms-transition-delay: 900ms;
}

.delay4 {
  -moz-transition-delay: 1200ms;
  -webkit-transition-delay: 1200ms;
  -o-transition-delay: 1200ms;
  -ms-transition-delay: 1200ms;
}

.delay5 {
  -moz-transition-delay: 1500ms;
  -webkit-transition-delay: 1500ms;
  -o-transition-delay: 1500ms;
  -ms-transition-delay: 1500ms;
}

.delay6 {
  -moz-transition-delay: 1800ms;
  -webkit-transition-delay: 1800ms;
  -o-transition-delay: 1800ms;
  -ms-transition-delay: 1800ms;
}

.delay7 {
  -moz-transition-delay: 2100ms;
  -webkit-transition-delay: 2100ms;
  -o-transition-delay: 2100ms;
  -ms-transition-delay: 2100ms;
}

/*===== Component =====*/
html {
  overflow: auto;
}
html.no_move {
  overflow: hidden;
}

#loading {
  inset: 0;
  width: auto;
  height: auto;
}

img {
  max-width: 100%;
  height: auto;
}
img[src$=".png"], img[src$=".jpg"] {
  backface-visibility: hidden;
}

.container {
  max-width: 130rem;
  margin-left: auto;
  margin-right: auto;
  padding-left: 5rem;
  padding-right: 5rem;
  box-sizing: border-box;
}
@media (max-width: 799px) {
  .container {
    padding-left: 2rem;
    padding-right: 2rem;
  }
}

.row {
  display: flex;
  flex-wrap: wrap;
  box-sizing: border-box;
}
.row .col {
  position: relative;
  width: 100%;
  min-height: 1px;
  box-sizing: border-box;
}
.row .col.col_4 {
  flex: 0 0 33.3333%;
  max-width: 33.3333%;
}

/*===== 本文の均等割付け（2行以上になる左揃えの文章。各ページで指定済みのものは除く） =====*/
.business_txt,
.recruit_txt,
.r-interview_lead,
.r-entry_txt,
.r-message_txt,
.contact_lead,
.privacy_body p,
.privacy_body li,
.entry_body p,
.works_work_txt,
.works_flow_txt,
.env_row_txt,
.overview_list dd,
.req_list dd {
  text-align: justify;
}

/*===== 矢印アイコン（青い角丸の中に →） =====*/
.c-arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 3.4rem;
  height: 2rem;
  border-radius: 1rem;
  background-color: #22a2fa;
  overflow: hidden;
  transition: 0.3s;
}
.c-arrow::before {
  content: "";
  width: 43%;
  aspect-ratio: 18/10;
  color: #fff;
  background-color: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 10'%3E%3Cpath d='M0 5h17M12.5.6 17 5l-4.5 4.4' fill='none' stroke='%23000' stroke-width='1.3'/%3E%3C/svg%3E") no-repeat center/contain;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 10'%3E%3Cpath d='M0 5h17M12.5.6 17 5l-4.5 4.4' fill='none' stroke='%23000' stroke-width='1.3'/%3E%3C/svg%3E") no-repeat center/contain;
  transition: transform 0.3s;
}
@media (max-width: 799px) {
  .c-arrow {
    width: 2.4rem;
    height: 1.4rem;
    border-radius: 0.7rem;
  }
}

@keyframes arrow_loop {
  0% {
    transform: translateX(0);
  }
  45% {
    transform: translateX(200%);
  }
  45.1% {
    transform: translateX(-200%);
  }
  100% {
    transform: translateX(0);
  }
}
@keyframes line_reenter {
  0% {
    background-position: right bottom 2px;
    background-size: 100% 1px;
  }
  45% {
    background-position: right bottom 2px;
    background-size: 0 1px;
  }
  45.1% {
    background-position: left bottom 2px;
    background-size: 0 1px;
  }
  100% {
    background-position: left bottom 2px;
    background-size: 100% 1px;
  }
}
@keyframes arrow_back {
  0%, 100% {
    transform: translateX(0);
  }
  50% {
    transform: translateX(-0.8rem);
  }
}
/*===== ボタン（白い角丸 + 矢印） =====*/
.c-btn {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 29.6rem;
  height: 5.6rem;
  padding: 0 2.2rem 0 3.2rem;
  border-radius: 2.8rem;
  background-color: #fff;
  box-sizing: border-box;
  border-top: 0.3rem solid transparent;
  color: #1e2d51;
  font-size: 1.6rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  transition: background-color 0.4s, color 0.4s;
}
.c-btn .c-arrow {
  margin-top: -0.3rem;
}
.c-btn:visited {
  color: #1e2d51;
}
.c-btn.c-btn--blue {
  background-color: #22a2fa;
  color: #fff;
}
.c-btn.c-btn--blue .c-arrow {
  background-color: #fff;
}
.c-btn.c-btn--blue .c-arrow::before {
  color: #22a2fa;
}
@media (min-width: 800px) {
  .c-btn:hover {
    background-color: #152449;
    color: #fff;
  }
  .c-btn:hover .c-arrow::before {
    animation: arrow_loop 0.6s ease;
  }
}
@media (max-width: 799px) {
  .c-btn {
    font-size: 1.4rem;
  }
  .c-btn .c-arrow {
    width: 3.4rem;
    height: 2rem;
    border-radius: 1rem;
  }
  .c-btn .c-arrow::before {
    font-size: 1.4rem;
  }
}

/*===== 見出し（● 日本語 + 大きい英字） =====*/
.c-ttl .c-ttl_jp {
  display: flex;
  align-items: center;
  font-size: 1.6rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  line-height: 1.5;
  color: #4e5462;
}
.c-ttl .c-ttl_jp::before {
  content: "";
  width: 1.2rem;
  height: 1.2rem;
  margin-right: 1rem;
  border-radius: 50%;
  background-color: #22a2fa;
}
.c-ttl .c-ttl_en {
  display: block;
  margin-top: 0.9rem;
  font-family: "Questrial", "IBM Plex Sans JP", sans-serif;
  font-weight: 400;
  font-size: 8.2rem;
  line-height: 1;
  letter-spacing: 0;
  color: #152449;
}
.c-ttl.c-ttl--white .c-ttl_jp,
.c-ttl.c-ttl--white .c-ttl_en {
  color: #fff;
}
@media (max-width: 799px) {
  .c-ttl .c-ttl_jp {
    font-size: 1.3rem;
  }
  .c-ttl .c-ttl_jp::before {
    position: relative;
    top: -0.2rem;
    width: 0.8rem;
    height: 0.8rem;
  }
  .c-ttl .c-ttl_en {
    margin-top: -0.8rem;
    font-size: 6.9rem;
    line-height: 1.19;
  }
}

body:not(#Top) .c-ttl .c-ttl_jp {
  font-size: 1.4rem;
  letter-spacing: 0.08em;
}
@media (max-width: 799px) {
  body:not(#Top) .c-ttl .c-ttl_jp {
    font-size: 1.3rem;
  }
}
body:not(#Top) .c-ttl:not(.c-ttl--white) .c-ttl_jp {
  color: #152449;
}

body:not(#Top) .r-interview .c-ttl .c-ttl_jp {
  font-size: 1.6rem;
}
@media (max-width: 799px) {
  body:not(#Top) .r-interview .c-ttl .c-ttl_jp {
    font-size: 1.3rem;
  }
}

body:not(#Top) .r-interview--sub .c-ttl .c-ttl_jp {
  color: #263353;
}

/*===== ロゴ（マーク + 社名の SVG。PC 240×36 / SP 192×36 が等倍。フッターは SP も PC と同じ形） =====*/
.logo,
.gnav_logo,
.footer_logo {
  line-height: 0;
}
.logo a,
.gnav_logo a,
.footer_logo a {
  display: inline-block;
}
.logo img,
.gnav_logo img,
.footer_logo img {
  display: block;
  width: 24rem;
  height: auto;
}

@media (max-width: 799px) {
  .logo img,
  .gnav_logo img {
    width: 19.2rem;
  }
}

/*===== テキストメニューのホバー：下線が左から出て、マウスを離すと右へ抜ける（ヘッダー・メニュー・フッター共通） =====*/
header .header_nav a,
.gnav .gnav_menu ul a,
.gnav .gnav_foot a,
.page_head .breadcrumb a,
footer .footer_menu ul a,
footer .footer_privacy {
  background: linear-gradient(currentColor, currentColor) no-repeat right bottom/0 1px;
  transition: color 0.3s, background-size 0.4s;
}
@media (min-width: 800px) {
  header .header_nav a:hover,
  .gnav .gnav_menu ul a:hover,
  .gnav .gnav_foot a:hover,
  .page_head .breadcrumb a:hover,
  footer .footer_menu ul a:hover,
  footer .footer_privacy:hover {
    background-position: left bottom;
    background-size: 100% 1px;
  }
}

/*===== header =====*/
header {
  position: fixed;
  top: 4rem;
  left: 4rem;
  right: 4rem;
  z-index: 100;
}
header .header_inner {
  display: flex;
  align-items: center;
  height: 7.2rem;
  padding: 0 2.2rem 0 2.8rem;
  border-radius: 1.6rem;
  background-color: #fff;
}
header .logo {
  margin-right: auto;
}
header .header_nav ul {
  display: flex;
  gap: 2.3rem;
}
header .header_nav a {
  font-size: 1.4rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  white-space: nowrap;
}
header .header_nav a.here {
  color: #22a2fa;
}
header .header_contact {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 12.4rem;
  height: 3.4rem;
  margin-left: 3rem;
  box-sizing: border-box;
  border-top: 0.3rem solid transparent;
  border-radius: 1.7rem;
  background-color: #22a2fa;
  color: #fff;
  font-size: 1.4rem;
  font-weight: 500;
  letter-spacing: 0.06em;
}
header .header_contact:visited {
  color: #fff;
}
@media (min-width: 800px) {
  header .header_contact:hover {
    color: #fff;
    background-color: #152449;
  }
}
@media (max-width: 1200px) {
  header .logo img {
    width: 19.9rem;
  }
  header .header_nav ul {
    gap: 1.6rem;
  }
  header .header_nav a {
    font-size: 1.3rem;
  }
  header .header_contact {
    margin-left: 2rem;
  }
}
@media (max-width: 1000px) {
  header {
    left: 2rem;
    right: 2rem;
  }
  header .header_inner {
    padding: 0 1.6rem 0 2rem;
  }
  header .logo img {
    width: 18rem;
  }
  header .header_nav ul {
    gap: 1.4rem;
  }
  header .header_nav a {
    font-size: 1.2rem;
    letter-spacing: 0.06em;
  }
  header .header_contact {
    width: 10.4rem;
    margin-left: 1.4rem;
    font-size: 1.2rem;
  }
}
header .gnav_btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  width: 5.7rem;
  height: 3.4rem;
  margin-left: 0.6rem;
  border-radius: 1.7rem;
  background-color: #212121;
  color: #fff;
  transition: 0.3s;
}
header .gnav_btn .line {
  width: 1.8rem;
  height: 2px;
  border-radius: 1px;
  background-color: #fff;
}
@media (min-width: 800px) {
  header .gnav_btn:hover {
    background-color: #22a2fa;
  }
}
@media (max-width: 799px) {
  header {
    top: 1rem;
    left: 1rem;
    right: 1rem;
  }
  header .header_inner {
    height: 5.6rem;
    padding: 0 1rem 0 0.8rem;
    border-radius: 0.8rem;
  }
  header .logo img {
    width: 19.2rem;
  }
  header .gnav_btn {
    margin-left: 0;
  }
}

/*===== グローバルナビ =====*/
.gnav {
  --gnav-head: 7.2rem;
  --gnav-radius: 1.6rem;
  position: fixed;
  inset: 0;
  z-index: 200;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.2s 0.6s, visibility 0s 0.8s;
}
.gnav_open .gnav {
  opacity: 1;
  visibility: visible;
  transition: opacity 0.2s, visibility 0s;
}
.gnav .gnav_bg {
  position: absolute;
  inset: 0;
}
.gnav .gnav_panel {
  position: absolute;
  top: 4rem;
  left: 4rem;
  right: 4rem;
  clip-path: inset(0 0 calc(100% - var(--gnav-head)) 0 round var(--gnav-radius));
  transition: clip-path 0.5s cubic-bezier(0.65, 0, 0.35, 1) 0.1s;
}
.gnav_open .gnav .gnav_panel {
  clip-path: inset(0 round var(--gnav-radius));
  transition: clip-path 0.7s cubic-bezier(0.65, 0, 0.35, 1) 0.15s;
}
.gnav .gnav_panel > :not(.gnav_close) {
  opacity: 0;
  transition: opacity 0.2s;
}
.gnav_open .gnav .gnav_panel > :not(.gnav_close) {
  opacity: 1;
  transition: opacity 0.4s 0.6s;
}
.gnav .gnav_panel {
  display: grid;
  grid-template-columns: 30.3rem 1fr;
  grid-template-areas: "logo menu" "cta menu" "cta foot";
  min-height: 54.2rem;
  padding: 9.2rem 11.3rem 9.2rem 11.2rem;
  border-radius: 1.6rem;
  background-color: #fff;
  box-sizing: border-box;
  overflow-y: auto;
  max-height: calc(100% - 7.6rem);
}
.gnav .gnav_close {
  position: absolute;
  top: 1.9rem;
  right: 2.2rem;
  width: 5.7rem;
  height: 3.4rem;
  border-radius: 1.7rem;
  background-color: #212121;
  color: #fff;
  transition: background-color 0.3s;
}
.gnav_open .gnav .gnav_close {
  background-color: #152449;
}
.gnav .gnav_close::before, .gnav .gnav_close::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 1.8rem;
  height: 2px;
  border-radius: 1px;
  background-color: #fff;
  transform: translate(-50%, calc(-50% - 0.35rem));
  transition: transform 0.4s, width 0.4s;
}
.gnav .gnav_close::after {
  transform: translate(-50%, calc(-50% + 0.35rem));
}
.gnav_open .gnav .gnav_close::before, .gnav_open .gnav .gnav_close::after {
  width: 2rem;
  transition-delay: 0.15s;
}
.gnav_open .gnav .gnav_close::before {
  transform: translate(-50%, -50%) rotate(41deg);
}
.gnav_open .gnav .gnav_close::after {
  transform: translate(-50%, -50%) rotate(-41deg);
}
@media (min-width: 800px) {
  .gnav_open .gnav .gnav_close:hover {
    background-color: #22a2fa;
  }
}
.gnav .gnav_logo {
  grid-area: logo;
}
.gnav .gnav_logo img {
  width: 30rem;
}
.gnav .gnav_menu {
  grid-area: menu;
  display: flex;
  justify-content: flex-end;
  padding: 1.4rem 0 0 4rem;
}
.gnav .gnav_menu .gnav_col:nth-child(1) {
  width: 20.6rem;
}
.gnav .gnav_menu .gnav_col:nth-child(2) {
  width: 20rem;
}
.gnav .gnav_menu .gnav_ttl {
  font-family: "Questrial", "IBM Plex Sans JP", sans-serif;
  font-weight: 400;
  text-transform: uppercase;
  font-size: 2.2rem;
  letter-spacing: 0.08em;
  line-height: 2.4rem;
  white-space: nowrap;
}
.gnav .gnav_menu ul {
  margin-top: 1.6rem;
}
.gnav .gnav_menu ul li {
  font-size: 1.4rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 2.3;
  white-space: nowrap;
}
.gnav .gnav_cta {
  grid-area: cta;
  align-self: end;
  padding-top: 18rem;
}
.gnav .gnav_cta .gnav_tel_label {
  padding-left: 2.9rem;
  font-size: 1.3rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 1.94;
}
.gnav .gnav_cta .gnav_tel {
  padding-left: 2.9rem;
  font-family: "Questrial", "IBM Plex Sans JP", sans-serif;
  font-weight: 400;
  font-size: 2.8rem;
  letter-spacing: 0.02em;
  line-height: 3.6rem;
}
.gnav .gnav_cta .c-btn {
  margin-top: 1.4rem;
}
.gnav .gnav_foot {
  grid-area: foot;
  align-self: end;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  font-size: 1.4rem;
  line-height: 1.5;
  white-space: nowrap;
}
.gnav .gnav_foot a {
  font-weight: 500;
  letter-spacing: 0.08em;
}
.gnav .gnav_foot small {
  font-family: "Questrial", "IBM Plex Sans JP", sans-serif;
  font-weight: 400;
  font-size: 1.4rem;
  letter-spacing: 0.04em;
}
.gnav .gnav_foot small::before {
  content: "｜";
  margin: 0 0.4rem 0 2px;
  font-family: "IBM Plex Sans JP", sans-serif;
}
@media (max-width: 1200px) {
  .gnav .gnav_panel {
    grid-template-columns: auto 1fr;
    padding: 8rem 6%;
  }
  .gnav .gnav_menu {
    justify-content: flex-end;
    padding-left: 4rem;
  }
  .gnav .gnav_menu .gnav_col:nth-child(1), .gnav .gnav_menu .gnav_col:nth-child(2) {
    width: auto;
    margin-right: 4.8rem;
  }
}
@media (max-width: 1000px) {
  .gnav .gnav_close {
    right: 1.6rem;
  }
  .gnav .gnav_panel {
    left: 2rem;
    right: 2rem;
    grid-template-columns: 1fr;
    grid-template-areas: "logo" "menu" "cta" "foot";
    min-height: 0;
    padding: 6.4rem 8% 4.8rem;
  }
  .gnav .gnav_menu {
    justify-content: flex-start;
    padding: 4.8rem 0 0;
  }
  .gnav .gnav_cta {
    padding-top: 4rem;
  }
  .gnav .gnav_cta .gnav_tel_label,
  .gnav .gnav_cta .gnav_tel {
    padding-left: 0;
  }
  .gnav .gnav_foot {
    justify-content: flex-start;
    margin-top: 3.2rem;
  }
}
@media (max-width: 799px) {
  .gnav {
    --gnav-head: 5.6rem;
    --gnav-radius: 1rem;
  }
  .gnav .gnav_panel {
    top: 1rem;
    left: 1rem;
    right: 1rem;
    display: block;
    min-height: 0;
    padding: 1.8rem 0 3.2rem;
    border-radius: 1rem;
    max-height: calc(100% - 2rem);
  }
  .gnav .gnav_close {
    top: 1.1rem;
    right: 1rem;
  }
  .gnav .gnav_logo {
    padding-left: 1rem;
  }
  .gnav .gnav_logo img {
    width: 19.2rem;
  }
  .gnav .gnav_menu {
    flex-wrap: wrap;
    padding: 4.8rem 0 0 4rem;
  }
  .gnav .gnav_menu .gnav_col:nth-child(n) {
    margin-right: 0;
  }
  .gnav .gnav_menu .gnav_col:nth-child(1) {
    width: 15.8rem;
  }
  .gnav .gnav_menu .gnav_col:nth-child(2) {
    width: auto;
  }
  .gnav .gnav_menu .gnav_col:nth-child(3) {
    width: 100%;
    margin-top: 3.4rem;
  }
  .gnav .gnav_menu .gnav_ttl {
    font-size: 1.8rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
  }
  .gnav .gnav_menu ul {
    margin-top: 1rem;
  }
  .gnav .gnav_menu ul li {
    line-height: 2.4;
  }
  .gnav .gnav_cta {
    padding-top: 4rem;
    text-align: center;
  }
  .gnav .gnav_cta .gnav_tel_label,
  .gnav .gnav_cta .gnav_tel {
    padding-left: 0;
  }
  .gnav .gnav_cta .gnav_tel {
    font-size: 2.6rem;
  }
  .gnav .gnav_cta .c-btn {
    margin: 1.4rem auto 0;
  }
  .gnav .gnav_foot {
    justify-content: center;
    margin-top: 3.2rem;
    font-size: 1.2rem;
  }
  .gnav .gnav_foot small {
    font-size: 1.2rem;
  }
}

/*===== お問い合わせ（フッターの上） =====*/
.footer_contact {
  position: relative;
  overflow: hidden;
  padding: 3.9rem 5.9rem;
  background-color: #d8edfb;
}
.footer_contact::before {
  content: "";
  position: absolute;
  top: 12.8rem;
  left: 65.8571428571%;
  width: 138.3rem;
  height: 118.1rem;
  background: url(../images/common/contact_bg.svg) no-repeat 0 0/100% 100%;
}
.footer_contact .footer_contact_inner {
  position: relative;
  display: flex;
  align-items: center;
  height: 29.4rem;
  padding-left: 15.5rem;
  border-radius: 2rem;
  background-color: #fff;
  overflow: hidden;
}
.footer_contact .footer_contact_txt {
  font-size: 2rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 1.8;
}
.footer_contact .footer_contact_link {
  position: absolute;
  top: 50%;
  left: 55.8502340094%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 35.2rem;
  height: 35.2rem;
  padding-top: 1.4rem;
  border-radius: 50%;
  box-sizing: border-box;
  transform: translateY(-50%);
  isolation: isolate;
}
.footer_contact .footer_contact_link::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  border-radius: 50%;
  background-color: #f4f4f5;
  transition: background-color 0.5s, transform 0.5s;
}
.footer_contact .footer_contact_link .c-ttl_jp {
  font-size: 1.6rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  line-height: 1.5;
}
.footer_contact .footer_contact_link .footer_contact_en {
  margin-top: 0.6rem;
  font-family: "Questrial", "IBM Plex Sans JP", sans-serif;
  font-weight: 400;
  font-size: 5.6rem;
  line-height: 1;
}
.footer_contact .footer_contact_link .c-arrow {
  margin-top: 3.6rem;
}
.footer_contact .footer_contact_link .c-arrow {
  transition: background-color 0.5s;
}
.footer_contact .footer_contact_link .c-arrow::before {
  transition: color 0.5s;
}
@media (min-width: 800px) {
  .footer_contact .footer_contact_link:hover::before {
    background-color: #22a2fa;
    transform: scale(1.06);
  }
  .footer_contact .footer_contact_link:hover .c-arrow {
    background-color: #fff;
  }
  .footer_contact .footer_contact_link:hover .c-arrow::before {
    color: #22a2fa;
    animation: arrow_loop 0.6s ease;
  }
}
@media (max-width: 1200px) {
  .footer_contact {
    padding: 3.9rem 4.2%;
  }
  .footer_contact .footer_contact_inner {
    padding-left: 9%;
  }
  .footer_contact .footer_contact_link {
    left: auto;
    right: 8%;
  }
}
@media (max-width: 1000px) {
  .footer_contact .footer_contact_inner {
    padding-left: 6%;
  }
  .footer_contact .footer_contact_txt {
    font-size: 1.6rem;
  }
  .footer_contact .footer_contact_link {
    right: 5%;
    width: 30rem;
    height: 30rem;
  }
  .footer_contact .footer_contact_link .footer_contact_en {
    font-size: 4.8rem;
  }
  .footer_contact .footer_contact_link .c-arrow {
    margin-top: 2.8rem;
  }
}
@media (max-width: 799px) {
  .footer_contact {
    padding: 5.9rem 3.1rem;
  }
  .footer_contact::before {
    top: -61.3rem;
    left: auto;
    right: -54.5rem;
    width: 101.1rem;
    height: 86.6rem;
    transform: translate(15.6rem, 23.2rem) rotate(-46.6deg);
  }
  .footer_contact .footer_contact_inner {
    display: block;
    height: auto;
    padding: 3rem 0 3.2rem;
    text-align: center;
  }
  .footer_contact .footer_contact_txt {
    font-size: 1.5rem;
    line-height: 1.8;
  }
  .footer_contact .footer_contact_link {
    position: relative;
    top: auto;
    left: auto;
    right: auto;
    width: 24.3rem;
    height: 24.3rem;
    margin: 2.4rem auto 0;
    padding-top: 2.4rem;
    transform: none;
  }
  .footer_contact .footer_contact_link .c-ttl_jp {
    font-size: 1.4rem;
  }
  .footer_contact .footer_contact_link .footer_contact_en {
    margin-top: 0.4rem;
    font-size: 4.4rem;
  }
  .footer_contact .footer_contact_link .c-arrow {
    width: 3.4rem;
    height: 2rem;
    margin-top: 2.8rem;
    border-radius: 1rem;
  }
  .footer_contact .footer_contact_link .c-arrow::before {
    font-size: 1.4rem;
  }
}

/*===== 下層ページのタイトル・パンくず =====*/
.page_head {
  position: relative;
  z-index: 0;
  padding: 22.7rem 8.43% 12.4rem;
  border-bottom: 1px solid transparent;
}
.page_head::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1px;
  height: 1px;
  background-color: #d7dbe2;
  pointer-events: none;
}
.page_head .page_head_bg {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  z-index: -1;
  height: 53.3rem;
  overflow: hidden;
  pointer-events: none;
}
.page_head .page_head_bg img {
  position: absolute;
  top: 0;
  left: 25.3rem;
  width: 114.7rem;
  max-width: none;
}
.page_head .page_head_en {
  display: flex;
  align-items: center;
  font-family: "Questrial", "IBM Plex Sans JP", sans-serif;
  font-weight: 400;
  color: #22a2fa;
  font-size: 1.8rem;
  letter-spacing: 0.04em;
  line-height: 1.1;
}
.page_head .page_head_en::before {
  content: "";
  flex-shrink: 0;
  width: 1.1rem;
  height: 1.1rem;
  margin-right: 1.4rem;
  border-radius: 50%;
  background-color: #22a2fa;
}
.page_head .page_head_ttl {
  margin-top: 2.1rem;
  font-size: 5.6rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1.2;
}
.page_head .breadcrumb {
  position: absolute;
  right: 6.29%;
  bottom: 7rem;
}
.page_head .breadcrumb ol {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.page_head .breadcrumb li {
  font-size: 1.2rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 1.5;
  color: #0e182c;
}
.page_head .breadcrumb li + li::before {
  content: "/";
  margin: 0 1rem;
  color: #22a2fa;
}
.page_head .breadcrumb a {
  color: #8e94a2;
}
@media (min-width: 800px) {
  .page_head .breadcrumb a:hover {
    color: #22a2fa;
  }
}
.page_head.page_head--blue {
  background-color: #22a2fa;
  border-bottom-color: transparent;
}
.page_head.page_head--blue::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1px;
  height: 1px;
  background-color: rgba(255, 255, 255, 0.3);
  pointer-events: none;
}
.page_head.page_head--blue .page_head_en,
.page_head.page_head--blue .page_head_ttl,
.page_head.page_head--blue .breadcrumb li,
.page_head.page_head--blue .breadcrumb a {
  color: #fff;
}
.page_head.page_head--blue .page_head_en::before {
  background-color: #fff;
}
.page_head.page_head--blue .breadcrumb li + li::before {
  color: #fff;
}
.page_head.page_head--blue .breadcrumb a {
  color: #afdcfa;
}
@media (max-width: 799px) {
  .page_head {
    z-index: 1;
    padding: 11.2rem 2.3rem 2.2rem;
  }
  .page_head .page_head_bg {
    height: 28.8rem;
  }
  .page_head .page_head_bg img {
    left: auto;
    right: 0;
    width: min(97.33%, 36.3737024221rem);
  }
  .page_head .page_head_en {
    font-size: 1.4rem;
  }
  .page_head .page_head_en::before {
    width: 1rem;
    height: 1rem;
    margin-right: 1rem;
  }
  .page_head .page_head_ttl {
    margin-top: 1.3rem;
    font-size: 3.6rem;
  }
  .page_head .breadcrumb {
    position: static;
    margin-top: 2.7rem;
  }
}

/*===== 関連ページへのリンク（紺のカード2枚） =====*/
.c-links {
  display: flex;
  gap: 3rem;
  padding: 8.1rem 4.22% 7.8rem;
  border-top: 1px solid #d7dbe2;
}
.c-links .c-link_card {
  position: relative;
  flex: 1;
  min-width: 0;
  min-height: 19.9rem;
  padding: 4.8rem 6.5rem 4rem 6.1rem;
  border-radius: 2rem;
  background: linear-gradient(354deg, #343e57 0%, #5f687d 100%);
  box-sizing: border-box;
  color: #fff;
  isolation: isolate;
}
.c-links .c-link_card::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  border-radius: inherit;
  background-color: #152449;
  opacity: 0;
  transition: opacity 0.5s;
}
@media (min-width: 800px) {
  .c-links .c-link_card:hover::before {
    opacity: 1;
  }
  .c-links .c-link_card:hover .c-arrow::before {
    animation: arrow_loop 0.6s ease;
  }
}
.c-links .c-link_en {
  display: flex;
  align-items: center;
  font-family: "Questrial", "IBM Plex Sans JP", sans-serif;
  font-weight: 400;
  font-size: 1.8rem;
  letter-spacing: 0.04em;
  line-height: 1.1;
}
.c-links .c-link_en::before {
  content: "";
  width: 1.1rem;
  height: 1.1rem;
  margin-right: 1.1rem;
  border-radius: 50%;
  background-color: #22a2fa;
}
.c-links .c-link_ttl {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.6rem;
  margin-top: 1.8rem;
  font-size: 3.8rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.22;
  white-space: nowrap;
}
.c-links .c-arrow {
  width: 4.2rem;
  height: 2.4rem;
  border-radius: 1.2rem;
  background-color: #fff;
}
.c-links .c-arrow::before {
  color: #22a2fa;
}
@media (max-width: 1139px) {
  .c-links .c-link_card {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 4rem 3.2rem;
  }
  .c-links .c-link_ttl {
    font-size: 3rem;
  }
}
@media (max-width: 1139px) and (min-width: 800px) {
  .c-links .c-link_ttl {
    padding-right: 5.8rem;
  }
  .c-links .c-arrow {
    position: absolute;
    top: 50%;
    right: 3.2rem;
    margin-top: -1.2rem;
  }
}
@media (max-width: 856px) {
  .c-links .c-link_ttl {
    font-size: 2.6rem;
  }
}
@media (max-width: 799px) {
  .c-links {
    flex-direction: column;
    gap: 1.3rem;
    padding: 6.1rem 0.8rem 6.3rem;
  }
  .c-links .c-link_card {
    min-height: 0;
    padding: 3rem 2.4rem 3.2rem;
  }
  .c-links .c-link_en {
    font-size: 1.3rem;
  }
  .c-links .c-link_en::before {
    width: 0.8rem;
    height: 0.8rem;
    margin-right: 0.8rem;
  }
  .c-links .c-link_ttl {
    margin-top: 1.2rem;
    font-size: 2.4rem;
  }
  .c-links .c-arrow {
    width: 3.4rem;
    height: 2rem;
    border-radius: 1rem;
  }
  .c-links .c-arrow::before {
    font-size: 1.4rem;
  }
}

/*===== 採用系：リード（見出し・文章・写真。写真の位置は各ページで指定） =====*/
.r-lead {
  position: relative;
  min-height: 49.3rem;
  margin-top: 5.5rem;
  padding: 0 11.29%;
  color: #fff;
}
.r-lead .r-lead_body {
  position: relative;
  z-index: 1;
  max-width: 52%;
}
.r-lead .r-lead_ttl {
  font-size: 4.2rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 1.6;
}
.r-lead .r-lead_txt {
  width: 57.6rem;
  max-width: 100%;
  margin: 4rem 0 0 7.7rem;
  font-size: 1.8rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 1.9;
  text-align: justify;
}
.r-lead .r-lead_img {
  position: absolute;
  border-radius: 1.2rem;
  overflow: hidden;
}
.r-lead .r-lead_img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
@media (max-width: 1000px) {
  .r-lead .r-lead_ttl {
    font-size: 3.2rem;
  }
  .r-lead .r-lead_txt {
    margin-left: 0;
  }
}
@media (max-width: 799px) {
  .r-lead {
    min-height: 0;
    margin-top: 4.8rem;
    padding: 0 2.4rem;
  }
  .r-lead .r-lead_body {
    max-width: none;
  }
  .r-lead .r-lead_ttl {
    font-size: 2.4rem;
  }
  .r-lead .r-lead_txt {
    width: auto;
    margin: 2.4rem 0 0;
    font-size: 1.5rem;
  }
  .r-lead .r-lead_imgs {
    position: relative;
    height: 29rem;
    margin: 3.2rem -2.4rem 0;
  }
}

/*===== 採用系：社員インタビュー =====*/
.r-interview {
  margin: 0 8.57%;
  padding: 12rem 0 14.2rem;
}
.r-interview .r-interview_head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 4rem;
}
@media (max-width: 979px) {
  .r-interview .r-interview_head {
    display: block;
  }
}
.r-interview .r-interview_head .c-ttl {
  flex-shrink: 0;
}
.r-interview .r-interview_head .c-ttl_en {
  color: #22a2fa;
  font-size: 9.4rem;
  line-height: 0.85;
  margin-top: 2.2rem;
}
.r-interview .r-interview_lead {
  flex: 0 1 54rem;
  font-size: 1.8rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 1.9;
}
@media (max-width: 979px) {
  .r-interview .r-interview_lead {
    margin-top: 2.4rem;
  }
}
.r-interview .r-interview_list {
  display: flex;
  justify-content: space-between;
  gap: 6%;
  margin-top: 5.4rem;
}
.r-interview .r-interview_item {
  flex: 0 1 54.3rem;
  min-width: 0;
}
.r-interview .r-interview_item:nth-child(2) {
  margin-top: 8rem;
}
.r-interview .r-interview_item a {
  position: relative;
  display: block;
}
@media (min-width: 800px) {
  .r-interview .r-interview_item a:hover .r-interview_img::after {
    opacity: 1;
  }
  .r-interview .r-interview_item a:hover .c-arrow::before {
    animation: arrow_loop 0.6s ease;
  }
}
.r-interview .r-interview_img {
  position: relative;
  display: block;
  aspect-ratio: 543/507;
  border-radius: 2rem;
  overflow: hidden;
}
.r-interview .r-interview_img picture {
  display: block;
  height: 100%;
}
.r-interview .r-interview_img img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.r-interview .r-interview_img::after {
  content: "";
  position: absolute;
  inset: 0;
  background-color: rgba(21, 36, 73, 0.25);
  opacity: 0;
  transition: opacity 0.4s;
}
.r-interview .r-interview_num {
  position: relative;
  display: block;
  margin: -3.7rem 0 0 7%;
  font-family: "Questrial", "IBM Plex Sans JP", sans-serif;
  font-weight: 400;
  color: #22a2fa;
  font-size: 8rem;
  letter-spacing: -0.04em;
  line-height: 0.77;
}
.r-interview .r-interview_ttl {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  margin: 1.5rem 0 0 6%;
  padding-right: 5rem;
}
.r-interview .r-interview_ttl span {
  padding: 0 0.7rem;
  background-color: #fff;
  font-size: 2.8rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.43;
}
@media (min-width: 800px) {
  .r-interview .r-interview_ttl span {
    white-space: nowrap;
  }
}
.r-interview .r-interview_ttl span + span {
  margin-top: 2px;
}
.r-interview .c-arrow {
  position: absolute;
  right: 2%;
  bottom: 1rem;
}
@media (min-width: 800px) and (max-width: 979px) {
  .r-interview .c-arrow {
    position: static;
    display: flex;
    margin: 1rem 2% 0 auto;
  }
}
@media (max-width: 1200px) {
  .r-interview .r-interview_ttl span {
    font-size: 2.2rem;
  }
}
@media (max-width: 799px) {
  .r-interview {
    margin: 0 2.2rem;
    padding: 6.4rem 0 7.2rem;
  }
  .r-interview .r-interview_head {
    display: block;
  }
  .r-interview .r-interview_head .c-ttl_en {
    margin-top: 0.4rem;
    font-size: 4.8rem;
    line-height: 1.28;
  }
  .r-interview .r-interview_lead {
    margin-top: 2rem;
    padding: 0 1rem;
    font-size: 1.5rem;
  }
  .r-interview .r-interview_list {
    display: block;
    margin-top: 4rem;
  }
  .r-interview .r-interview_item + .r-interview_item {
    margin-top: 4.8rem;
  }
  .r-interview .r-interview_num {
    margin: -1.9rem 0 0 5%;
    font-size: 5.6rem;
  }
  .r-interview .r-interview_ttl {
    margin: 0.6rem 0 0;
    padding-right: 4rem;
  }
  .r-interview .r-interview_ttl span {
    font-size: 1.8rem;
  }
  .r-interview .c-arrow {
    bottom: 0.6rem;
  }
}

.r-interview .r-interview_item.is-current .r-interview_img::after {
  background-color: rgba(2, 107, 179, 0.4);
  opacity: 1;
}

@media (min-width: 800px) {
  .r-interview.r-interview--sub .r-interview_head {
    align-items: flex-start;
  }
  .r-interview.r-interview--sub .r-interview_head .c-ttl_en {
    margin-top: 1.8rem;
    font-size: 6.4rem;
    letter-spacing: 0.04em;
    line-height: 0.96;
  }
  .r-interview.r-interview--sub .r-interview_lead {
    flex-basis: 51rem;
    color: #263353;
    font-size: 1.6rem;
    line-height: 2.1;
  }
  .r-interview.r-interview--sub .r-interview_list {
    margin-top: 6.3rem;
  }
  .r-interview.r-interview--sub .r-interview_item:nth-child(2) {
    margin-top: 0;
  }
}

/*===== 採用系：環境を知る / 仕事を知る のバナー =====*/
.r-banners {
  display: flex;
  flex-direction: column;
  gap: 3rem;
  margin: 0 4.22%;
  padding-bottom: 7.9rem;
}
.r-banners .r-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 4rem;
  min-height: 29.8rem;
  padding: 3rem 3.6rem 3rem 10.1rem;
  border-radius: 2rem;
  background-color: #22a2fa;
  box-sizing: border-box;
  color: #fff;
  transition: background-color 0.5s;
}
@media (min-width: 800px) {
  .r-banners .r-banner:hover {
    background-color: #152449;
  }
  .r-banners .r-banner:hover .c-arrow::before {
    animation: arrow_loop 0.6s ease;
  }
}
.r-banners .r-banner_en {
  display: flex;
  align-items: center;
  font-family: "Questrial", "IBM Plex Sans JP", sans-serif;
  font-weight: 400;
  font-size: 1.8rem;
  letter-spacing: 0.04em;
  line-height: 1.1;
}
.r-banners .r-banner_en::before {
  content: "";
  width: 1.1rem;
  height: 1.1rem;
  margin-right: 1.2rem;
  border-radius: 50%;
  background-color: #fff;
}
.r-banners .r-banner_ttl {
  display: flex;
  align-items: center;
  gap: 4rem;
  margin-top: 2.8rem;
  font-size: 4.2rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.1;
  white-space: nowrap;
}
.r-banners .c-arrow {
  width: 4.2rem;
  height: 2.4rem;
  border-radius: 1.2rem;
  background-color: #fff;
}
.r-banners .c-arrow::before {
  color: #22a2fa;
}
.r-banners .r-banner_img {
  flex: 0 1 39rem;
  aspect-ratio: 390/202;
  border-radius: 2rem;
  overflow: hidden;
}
.r-banners .r-banner_img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
@media (max-width: 1000px) {
  .r-banners .r-banner {
    padding-left: 4.8rem;
  }
  .r-banners .r-banner_ttl {
    font-size: 3.2rem;
  }
}
@media (max-width: 799px) {
  .r-banners {
    gap: 1rem;
    margin: 0 0.8rem;
    padding-bottom: 7.8rem;
  }
  .r-banners .r-banner {
    gap: 1.2rem;
    min-height: 14.5rem;
    padding: 1rem 1.1rem 1rem 3.7rem;
  }
  .r-banners .r-banner_en {
    font-size: 1.3rem;
  }
  .r-banners .r-banner_en::before {
    width: 1.1rem;
    height: 1.1rem;
    margin-right: 0.9rem;
  }
  .r-banners .r-banner_ttl {
    flex-direction: column;
    align-items: flex-start;
    gap: 1.9rem;
    margin-top: 1.4rem;
    font-size: 2.4rem;
    line-height: 1.17;
  }
  .r-banners .c-arrow {
    width: 3.4rem;
    height: 1.9rem;
  }
  .r-banners .r-banner_img {
    flex: 0 0 12.5rem;
    aspect-ratio: 1;
    border-radius: 1.6rem;
  }
}

/*===== 採用系：Join Our Team =====*/
.r-entry {
  position: relative;
  z-index: 0;
  color: #fff;
}
.r-entry .r-entry_bg {
  position: absolute;
  inset: 0;
  z-index: -1;
  background-color: #d8edfb;
  isolation: isolate;
}
.r-entry .r-entry_bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.r-entry .r-entry_bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background-color: #475168;
  opacity: 0.8;
  mix-blend-mode: multiply;
}
.r-entry .r-entry_inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 4rem;
  min-height: 57.1rem;
  padding: 8rem 8.57% 8rem 4.21%;
  box-sizing: border-box;
}
.r-entry .r-entry_ttl img {
  display: block;
  width: 36.2rem;
}
.r-entry .r-entry_ttl span {
  display: block;
  margin: -1.4rem 0 0 10.2rem;
  font-family: "Questrial", "IBM Plex Sans JP", sans-serif;
  font-weight: 400;
  font-size: 9.4rem;
  line-height: 0.85;
  white-space: nowrap;
}
.r-entry .r-entry_txt {
  margin: 3.9rem 0 0 10rem;
  font-size: 1.6rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.9;
}
.r-entry .r-entry_btns {
  display: flex;
  flex-direction: column;
  gap: 2.1rem;
  flex: 0 1 49.2rem;
}
.r-entry .r-entry_btn {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 8.7rem;
  padding: 0 2.5rem 0 7.2rem;
  box-sizing: border-box;
  border-top: 0.3rem solid transparent;
  border-radius: 4.4rem;
  background-color: #fff;
  color: #152449;
  font-size: 1.6rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  transition: 0.3s;
}
.r-entry .r-entry_btn .c-arrow {
  margin-top: -0.3rem;
  width: 4.2rem;
  height: 2.4rem;
  border-radius: 1.2rem;
}
.r-entry .r-entry_btn.r-entry_btn--blue {
  background-color: #22a2fa;
  color: #fff;
}
.r-entry .r-entry_btn.r-entry_btn--blue .c-arrow {
  background-color: #fff;
}
.r-entry .r-entry_btn.r-entry_btn--blue .c-arrow::before {
  color: #22a2fa;
}
@media (min-width: 800px) {
  .r-entry .r-entry_btn:hover {
    background-color: #152449;
    color: #fff;
  }
  .r-entry .r-entry_btn:hover .c-arrow::before {
    animation: arrow_loop 0.6s ease;
  }
}
@media (max-width: 1000px) {
  .r-entry .r-entry_ttl span,
  .r-entry .r-entry_txt {
    margin-left: 4rem;
  }
  .r-entry .r-entry_ttl img {
    width: 26rem;
  }
  .r-entry .r-entry_ttl span {
    font-size: 7rem;
  }
  .r-entry .r-entry_btn {
    padding-left: 4rem;
  }
}
@media (max-width: 799px) {
  .r-entry .r-entry_inner {
    display: block;
    min-height: 58.4rem;
    padding: 8.2rem 3.9rem 8.4rem 3.1rem;
  }
  .r-entry .r-entry_ttl img {
    width: 22.5rem;
  }
  .r-entry .r-entry_ttl span {
    margin: -0.9rem 0 0 6.4rem;
    font-size: 5.8rem;
  }
  .r-entry .r-entry_txt {
    margin: 5.3rem 0 0 1px;
    font-size: 1.5rem;
    line-height: 1.8;
  }
  .r-entry .r-entry_btns {
    gap: 1.6rem;
    margin-top: 4rem;
  }
  .r-entry .r-entry_btn {
    height: 5.6rem;
    padding: 0 2.2rem 0 3.2rem;
    font-size: 1.4rem;
    font-weight: 500;
    letter-spacing: 0.06em;
  }
  .r-entry .r-entry_btn .c-arrow {
    width: 3.4rem;
    height: 2rem;
  }
}

/*===== 前へ・次へ（矢印の付いたリンク） =====*/
.c-pager_link {
  display: inline-flex;
  align-items: center;
  gap: 1.3rem;
  color: #000;
  font-size: 1.6rem;
  font-weight: 500;
  letter-spacing: 0.02em;
  white-space: nowrap;
}
.c-pager_link::before {
  content: "";
  flex-shrink: 0;
  width: 4.9rem;
  height: 2.7rem;
  border-radius: 1.4rem;
  background: #22a2fa url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 10'%3E%3Cpath d='M0 5h14.5M10.5 1l4 4-4 4' fill='none' stroke='%23fff' stroke-width='1.4'/%3E%3C/svg%3E") no-repeat 50% 50%/33% auto;
  transform: scaleX(-1);
}
.c-pager_link.c-pager_link--next {
  flex-direction: row-reverse;
}
.c-pager_link.c-pager_link--next::before {
  transform: none;
}
.c-pager_link > span {
  background: linear-gradient(currentColor, currentColor) no-repeat right bottom/0 1px;
  transition: color 0.3s, background-size 0.4s;
}
@media (min-width: 800px) {
  .c-pager_link:hover {
    color: #21a1fa;
  }
  .c-pager_link:hover::before {
    animation: pager_arrow_loop 0.6s ease;
  }
  .c-pager_link:hover > span {
    background-position: left bottom;
    background-size: 100% 1px;
  }
}
@media (max-width: 799px) {
  .c-pager_link {
    gap: 0.5rem;
    font-size: 1.2rem;
  }
  .c-pager_link::before {
    width: 3.9rem;
    height: 2.1rem;
  }
}

@keyframes pager_arrow_loop {
  0% {
    background-position: 50% 50%;
  }
  45% {
    background-position: 170% 50%;
  }
  45.1% {
    background-position: -70% 50%;
  }
  100% {
    background-position: 50% 50%;
  }
}
/*===== footer =====*/
footer .footer_inner {
  padding: 10.3rem 0 5rem;
  background: linear-gradient(174deg, #5f687d 0%, #424c63 51%, #333e57 100%);
  color: #fff;
}
footer .footer_inner a,
footer .footer_inner a:visited,
footer .footer_inner a:hover {
  color: #fff;
}
footer .footer_contents {
  display: flex;
  justify-content: space-between;
  padding: 0 12.1rem 0 11.7rem;
}
footer .footer_logo {
  line-height: 1;
}
footer .footer_address {
  margin-top: 1.7rem;
  font-size: 1.4rem;
  font-style: normal;
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 1.8;
}
footer .footer_map {
  display: inline-block;
  font-size: 1.4rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 1.8;
  background: linear-gradient(currentColor, currentColor) no-repeat left bottom 2px/100% 1px;
}
@media (min-width: 800px) {
  footer .footer_map:hover {
    animation: line_reenter 0.6s ease;
  }
}
footer .footer_menu {
  display: flex;
  padding-top: 1.5rem;
}
footer .footer_menu .footer_col:nth-child(1) {
  width: 17.1rem;
}
footer .footer_menu .footer_col:nth-child(2) {
  width: 17.3rem;
}
footer .footer_menu .footer_col:nth-child(3) {
  width: 9.1rem;
}
footer .footer_menu .footer_ttl {
  font-family: "Questrial", "IBM Plex Sans JP", sans-serif;
  font-weight: 400;
  text-transform: uppercase;
  font-size: 2rem;
  letter-spacing: 0.08em;
  line-height: 1.2;
  white-space: nowrap;
}
footer .footer_menu ul {
  margin-top: 1.3rem;
}
footer .footer_menu ul li {
  font-size: 1.3rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 2.3;
  white-space: nowrap;
}
footer .footer_bottom {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  margin-top: 16.3rem;
  padding: 3.2rem 12.1rem 0 11.9rem;
  border-top: 1px solid rgba(255, 255, 255, 0.4);
  white-space: nowrap;
}
footer .footer_copy {
  font-family: "Questrial", "IBM Plex Sans JP", sans-serif;
  font-weight: 400;
  font-size: 1.4rem;
  letter-spacing: 0.08em;
  line-height: 1.5;
}
footer .footer_privacy {
  font-size: 1.2rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 1.5;
}
@media (max-width: 1200px) {
  footer .footer_contents {
    column-gap: 6rem;
    padding: 0 8%;
  }
  footer .footer_menu .footer_col:nth-child(1), footer .footer_menu .footer_col:nth-child(2) {
    width: auto;
    margin-right: 4.8rem;
  }
  footer .footer_menu .footer_col:nth-child(3) {
    width: auto;
  }
  footer .footer_bottom {
    margin-top: 12rem;
    padding: 3.2rem 8% 0;
  }
}
@media (max-width: 1000px) {
  footer .footer_contents {
    column-gap: 4rem;
    padding: 0 5%;
  }
  footer .footer_menu .footer_col:nth-child(1), footer .footer_menu .footer_col:nth-child(2) {
    margin-right: 3.2rem;
  }
  footer .footer_bottom {
    margin-top: 8rem;
    padding: 3.2rem 5% 0;
  }
}
@media (max-width: 799px) {
  footer .footer_inner {
    padding: 6.2rem 0 4rem;
  }
  footer .footer_contents {
    display: block;
    padding: 0 3.2rem 0 3rem;
  }
  footer .footer_address {
    margin-top: 1.6rem;
  }
  footer .footer_menu {
    flex-wrap: wrap;
    padding-top: 5rem;
  }
  footer .footer_menu .footer_col:nth-child(n) {
    margin-right: 0;
  }
  footer .footer_menu .footer_col:nth-child(1) {
    width: 17.3rem;
  }
  footer .footer_menu .footer_col:nth-child(2) {
    width: auto;
  }
  footer .footer_menu .footer_col:nth-child(3) {
    width: 100%;
    margin-top: 3.7rem;
  }
  footer .footer_menu ul {
    margin-top: 1.2rem;
  }
  footer .footer_menu ul li {
    line-height: 2.6;
  }
  footer .footer_bottom {
    flex-wrap: wrap;
    gap: 0.8rem 1.6rem;
    align-items: center;
    margin-top: 6.2rem;
    padding: 3.2rem 3.2rem 0 3.1rem;
  }
  footer .footer_copy {
    font-size: 1.2rem;
  }
}

/*===== リスト系 =====*/
.news_ul {
  margin: 0 0 1.9rem;
}
.news_ul .news_li {
  border-bottom: 1px solid #e8e8e8;
  padding: 2.2rem 1.4rem;
}
.news_ul .news_li > a {
  display: flex;
  align-items: center;
}
.news_ul .news_li > a .date {
  font-size: 1.6rem;
  color: #919191;
  margin-right: 2.4rem;
}
.news_ul .news_li > a .img_wrap {
  margin-right: 1.7rem;
}
@media (min-width: 800px) {
  .news_ul .news_li > a .title {
    background: linear-gradient(#000, #000) 0 100%/0 1px no-repeat;
    transition: background 0.4s ease;
  }
  .news_ul .news_li > a:hover .title {
    background-size: 100% 1px;
  }
}
@media (max-width: 799px) {
  .news_ul .news_li {
    padding: 1.4rem 0;
  }
  .news_ul .news_li > a {
    display: block;
    position: relative;
    padding-left: 8rem;
  }
  .news_ul .news_li > a .img_wrap {
    margin-right: 0;
    position: absolute;
    top: 0;
    left: -0.5rem;
    bottom: 0;
    margin: auto;
    display: flex;
    align-items: center;
  }
  .news_ul .news_li > a .img_wrap img {
    max-width: 5.7rem;
  }
  .news_ul .news_li > a .date,
  .news_ul .news_li > a .title {
    display: block;
  }
  .news_ul .news_li > a .date {
    font-size: 1.4rem;
    margin: 0 0 0.7rem;
  }
  .news_ul .news_li > a .title {
    font-size: 1.6rem;
    line-height: 1.3;
  }
}

/*===== ページナビ =====*/
.page_navigation .wp-pagenavi {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 4.5rem 0 5rem;
}
@media (max-width: 799px) {
  .page_navigation .wp-pagenavi {
    margin: 3rem 0 4rem;
  }
}
.page_navigation .wp-pagenavi > .page,
.page_navigation .wp-pagenavi .current {
  font-size: 1.6rem;
  font-weight: 500;
  width: 4rem;
  height: 4rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 0.5rem;
  box-sizing: border-box;
  margin: 0 0.5rem;
}
.page_navigation .wp-pagenavi > .page:not(.current),
.page_navigation .wp-pagenavi .current:not(.current) {
  background-color: #f3f3f3;
}
@media (min-width: 800px) {
  .page_navigation .wp-pagenavi > .page:not(.current):hover,
  .page_navigation .wp-pagenavi .current:not(.current):hover {
    color: #fff;
    background-color: #000;
  }
}
.page_navigation .wp-pagenavi > .page.current,
.page_navigation .wp-pagenavi .current.current {
  background-color: #000;
  color: #fff;
}
.page_navigation .wp-pagenavi .nextpostslink,
.page_navigation .wp-pagenavi .previouspostslink {
  position: relative;
  font-weight: 500;
  box-sizing: border-box;
}
.page_navigation .wp-pagenavi .nextpostslink::before,
.page_navigation .wp-pagenavi .previouspostslink::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  margin: auto;
  width: 0.9rem;
  height: 1.4rem;
  background-image: url(../images/common/pager_arrow.svg);
  background-repeat: no-repeat;
  background-size: contain;
  transition: all 0.3s ease;
}
.page_navigation .wp-pagenavi .nextpostslink.previouspostslink,
.page_navigation .wp-pagenavi .previouspostslink.previouspostslink {
  padding-left: 3.3rem;
  margin-right: 3rem;
}
.page_navigation .wp-pagenavi .nextpostslink.previouspostslink::before,
.page_navigation .wp-pagenavi .previouspostslink.previouspostslink::before {
  left: 0;
  transform: scale(-1, 1);
}
@media (min-width: 800px) {
  .page_navigation .wp-pagenavi .nextpostslink.previouspostslink:hover::before,
  .page_navigation .wp-pagenavi .previouspostslink.previouspostslink:hover::before {
    left: -0.5rem;
  }
}
.page_navigation .wp-pagenavi .nextpostslink.nextpostslink,
.page_navigation .wp-pagenavi .previouspostslink.nextpostslink {
  padding-right: 3.3rem;
  margin-left: 3rem;
}
.page_navigation .wp-pagenavi .nextpostslink.nextpostslink::before,
.page_navigation .wp-pagenavi .previouspostslink.nextpostslink::before {
  right: 0;
}
@media (min-width: 800px) {
  .page_navigation .wp-pagenavi .nextpostslink.nextpostslink:hover::before,
  .page_navigation .wp-pagenavi .previouspostslink.nextpostslink:hover::before {
    right: -0.5rem;
  }
}
.page_navigation .wp-pagenavi .list_back {
  margin-left: 5.8rem;
  margin-right: 5.8rem;
}
.page_navigation .wp-pagenavi .list_back > a {
  font-weight: 500;
}
.page_navigation .wp-pagenavi .list_back > a > .list_icon {
  display: inline-block;
  padding-left: 2.4rem;
  position: relative;
}
.page_navigation .wp-pagenavi .list_back > a > .list_icon::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  margin: auto;
  width: 1.4rem;
  height: 1.4rem;
  background-image: url(../img/news/list_icon.svg);
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
}
.page_navigation > ul {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 4.5rem 0 5rem;
}
.page_navigation > ul .link_page,
.page_navigation > ul .current_page {
  font-size: 1.6rem;
  font-weight: 500;
  width: 4rem;
  height: 4rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 0.5rem;
  box-sizing: border-box;
  margin: 0 0.5rem;
}
.page_navigation > ul .link_page:not(.current_page),
.page_navigation > ul .current_page:not(.current_page) {
  background-color: #f3f3f3;
}
@media (min-width: 800px) {
  .page_navigation > ul .link_page:not(.current_page):hover,
  .page_navigation > ul .current_page:not(.current_page):hover {
    color: #fff;
    background-color: #000;
  }
}
.page_navigation > ul .link_page.current_page,
.page_navigation > ul .current_page.current_page {
  background-color: #000;
  color: #fff;
}

/*===== Contact_reset =====*/
main#Contact {
  /*------ Reset CSS ------*/
}
main#Contact input {
  -webkit-appearance: none;
}
main#Contact input[type=text] {
  padding: 0;
  border: none;
  border-radius: 0;
  outline: none;
  background: none;
}
main#Contact input[type=radio] {
  opacity: 0;
  margin: 0;
  width: 0;
  height: 0;
  font-size: 0;
  line-height: 1;
}
main#Contact input[type=radio]:checked + label {
  background: #ff0000;
}
main#Contact input[type=checkbox] {
  opacity: 0;
  margin: 0;
  width: 0;
  height: 0;
  font-size: 0;
  line-height: 1;
}
main#Contact input[type=checkbox]:checked + label {
  background: #ff0000;
}
main#Contact input::placeholder {
  color: #b7b7b7;
}
main#Contact input:-ms-input-placeholder {
  color: #b7b7b7;
}
main#Contact input::-webkit-input-placeholder {
  color: #b7b7b7;
}
main#Contact button,
main#Contact input[type=button],
main#Contact input[type=submit] {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  padding: 0;
  border: none;
  outline: none;
  background: transparent;
}
main#Contact textarea {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  resize: none;
  padding: 0;
  border: 0;
  outline: none;
  background: transparent;
  border-radius: 0;
}
main#Contact select {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  border: none;
  outline: none;
  background: transparent;
  border-radius: 0;
}
main#Contact {
  /*------ Reset END ------*/
}

/*===== Layout =====*/
/*===== Top =====*/
#Top main {
  position: relative;
  overflow: hidden;
  /*===== MV =====*/
}
#Top main .mv {
  position: relative;
  z-index: 2;
  aspect-ratio: 1400/770;
}
#Top main .mv .mv_slider {
  position: relative;
  z-index: 1;
  height: 100%;
}
#Top main .mv .mv_slide {
  position: absolute;
  inset: 0;
  z-index: 1;
}
#Top main .mv .mv_slide.is-next {
  z-index: 2;
}
#Top main .mv .mv_slide.is-active {
  z-index: 3;
}
#Top main .mv .mv_slide.is-leaving .mv_half {
  animation: mv_leave 2s ease-in-out both;
}
#Top main .mv .mv_slide.is-leaving .mv_half.mv_half--r {
  animation-name: mv_leave_down;
  animation-delay: 0.15s;
}
#Top main .mv .mv_half {
  position: absolute;
  top: 0;
  width: 50%;
  height: 100%;
  overflow: hidden;
  isolation: isolate;
}
#Top main .mv .mv_half.mv_half--l {
  left: 0;
}
#Top main .mv .mv_half.mv_half--r {
  right: 0;
}
#Top main .mv .mv_photo {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 112%;
}
#Top main .mv .mv_photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
#Top main .mv .mv_half--r .mv_photo {
  transform: translateY(-10.7%);
}
#Top main .mv .is-on .mv_half--l .mv_photo {
  animation: mv_drift_up 10s linear both;
}
#Top main .mv .is-on .mv_half--r .mv_photo {
  animation: mv_drift_down 10s linear both;
}
#Top main .mv .mv_tex {
  display: none;
}
#Top main .mv .mv_slide--01 .mv_half {
  background-color: #0066ff;
}
#Top main .mv .mv_slide--02 .mv_half--l {
  background-color: #0066ff;
}
#Top main .mv .mv_slide--02 .mv_half--r {
  background-color: #22a2fa;
}
#Top main .mv .mv_slide--03 .mv_half {
  background-color: #22a2fa;
}
#Top main .mv .mv_copy {
  position: absolute;
  left: 9.5%;
  top: 37.4%;
  z-index: 2;
  width: 27.55%;
  filter: drop-shadow(0 0 3rem rgba(8, 34, 50, 0.35));
}
#Top main .mv .mv_copy img {
  width: 100%;
}
#Top main {
  /*===== About =====*/
}
#Top main .about {
  position: relative;
  z-index: 1;
  padding: 16rem 0 12.3rem;
}
#Top main .about .about_bg {
  position: absolute;
  top: -31.36vw;
  left: -3.21%;
  z-index: -1;
  width: 104.29%;
  max-width: none;
}
#Top main .about .about_inner {
  display: flex;
  justify-content: space-between;
  width: calc(100% - 16rem);
  max-width: 106rem;
  margin: 0 auto;
}
#Top main .about .about_ttl {
  font-size: 3.6rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  line-height: 2;
  white-space: nowrap;
}
#Top main .about .about_body {
  flex: 0 1 54.1rem;
  margin-left: 4rem;
}
#Top main .about .about_txt {
  font-size: 1.8rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  line-height: 2.6;
  text-align: justify;
}
#Top main .about .about_btns {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 1.8rem;
  margin-top: 8.1rem;
}
#Top main {
  /*===== Business =====*/
}
#Top main .business {
  position: relative;
  z-index: 1;
}
#Top main .business .business_panel {
  position: relative;
  z-index: 1;
  display: flex;
  margin: 0 4.22%;
  padding: 10.1rem 6.93% 10.1rem 7.14%;
  border-radius: 2rem;
  background: linear-gradient(354deg, #343e57 0%, #6e768a 100%);
}
#Top main .business .business_photo {
  position: relative;
  flex-shrink: 0;
  width: 40%;
  aspect-ratio: 434/610;
  align-self: flex-start;
  border-radius: 2rem;
  overflow: hidden;
  background-color: #fff;
}
#Top main .business .business_img {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 0.5s;
  isolation: isolate;
}
#Top main .business .business_img.is-active {
  opacity: 1;
}
#Top main .business .business_img[data-business-img="4"]::after {
  opacity: 0.35;
}
#Top main .business .business_img[data-business-img="5"]::after {
  opacity: 0.2;
}
#Top main .business .business_img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
#Top main .business .business_body {
  flex: 1;
  min-width: 0;
  margin-left: 5.71%;
  padding-top: 2rem;
}
#Top main .business .business_txt {
  margin-top: 5rem;
  color: #fff;
  font-size: 1.6rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 1.9;
}
#Top main .business .business_list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-rows: repeat(3, 6.9rem);
  grid-auto-flow: column;
  column-gap: 8%;
  margin-top: 4.6rem;
}
#Top main .business .business_list li {
  border-top: 1px solid #8e94a2;
}
#Top main .business .business_list li:nth-child(3), #Top main .business .business_list li:nth-child(5) {
  border-bottom: 1px solid #8e94a2;
}
#Top main .business .business_list a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 100%;
  color: #fff;
  font-size: 1.8rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 1.6;
}
#Top main .business .business_list a:hover {
  color: #22a2fa;
}
#Top main .business .business_list a:hover .c-arrow::before {
  animation: arrow_loop 0.6s ease;
}
#Top main .business .business_city {
  height: 43.2rem;
  margin-top: -12.1rem;
  background-color: #d8edfb;
}
#Top main .business .business_city img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
#Top main {
  /*===== News =====*/
}
#Top main .news {
  padding: 8.3rem 8.43% 9.7rem 11.36%;
}
#Top main .news .news_inner {
  display: flex;
  justify-content: space-between;
}
#Top main .news .c-ttl_en {
  margin-top: 2.2rem;
}
#Top main .news .news_more {
  margin-top: 7.2rem;
}
#Top main .news .news_head {
  flex-shrink: 0;
}
#Top main .news .news_list {
  flex: 0 1 69.2rem;
  min-width: 0;
  margin-left: 4rem;
  padding-top: 1.4rem;
}
#Top main .news .news_list li + li {
  margin-top: 1.3rem;
}
#Top main .news .news_list a {
  position: relative;
  display: block;
  padding: 3.6rem 9rem 3.6rem 3.8rem;
  border-radius: 2rem;
  background-color: #fff;
  transition: background-color 0.4s, box-shadow 0.4s;
}
#Top main .news .news_list a::after {
  content: "→";
  position: absolute;
  top: calc(50% - 0.8rem);
  right: 3.6rem;
  color: #22a2fa;
  font-size: 1.6rem;
  line-height: 1;
}
#Top main .news .news_list a:hover {
  background-color: rgba(255, 255, 255, 0.5);
  box-shadow: 0 0.8rem 2.4rem rgba(21, 36, 73, 0.12);
}
#Top main .news .news_list time {
  display: block;
  font-family: "Questrial", "IBM Plex Sans JP", sans-serif;
  font-weight: 400;
  color: #22a2fa;
  font-size: 1.4rem;
  letter-spacing: 0.08em;
  line-height: 1.71;
}
#Top main .news .news_list .news_title {
  display: -webkit-box;
  margin-top: 0.3rem;
  overflow: hidden;
  font-size: 1.6rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 1.5;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
#Top main {
  /*===== Recruit =====*/
}
#Top main .recruit {
  padding: 0 4.22% 5.8rem;
}
#Top main .recruit .recruit_panel {
  position: relative;
  display: flex;
  justify-content: space-between;
  height: 62.1rem;
  padding-left: 10rem;
  border-radius: 2rem;
  background-color: #22a2fa;
  overflow: hidden;
  isolation: isolate;
}
#Top main .recruit .recruit_bg {
  position: absolute;
  top: -115.4rem;
  left: -24.1rem;
  z-index: -1;
  width: 141.7rem;
  max-width: none;
}
#Top main .recruit .recruit_body {
  flex: 0 1 45.6rem;
  min-width: 0;
  padding-top: 10.5rem;
}
#Top main .recruit .recruit_body .c-ttl_jp {
  line-height: 2.5;
}
#Top main .recruit .recruit_body .c-ttl_jp::before {
  background-color: #fff;
}
#Top main .recruit .recruit_txt {
  margin-top: 4.7rem;
  color: #fff;
  font-size: 1.6rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 1.9;
}
#Top main .recruit .c-btn {
  margin-top: 6.5rem;
}
#Top main .recruit .recruit_loop {
  display: flex;
  gap: 1.7rem;
  margin-right: 6.1rem;
}
#Top main .recruit .recruit_col {
  width: 24.2rem;
}
#Top main .recruit .recruit_track {
  display: flex;
  flex-direction: column;
  gap: 1.7rem;
  will-change: transform;
}
#Top main .recruit .recruit_col--up .recruit_track {
  margin-top: -10.3rem;
  animation: recruit_up 40s linear infinite;
}
#Top main .recruit .recruit_col--down .recruit_track {
  margin-top: -20.9rem;
  animation: recruit_down 40s linear infinite;
}
#Top main .recruit .recruit_img {
  position: relative;
  flex-shrink: 0;
  height: 32.3rem;
  border-radius: 2rem;
  overflow: hidden;
  isolation: isolate;
}
#Top main .recruit .recruit_img::before {
  mix-blend-mode: soft-light;
}
#Top main .recruit .recruit_img::after {
  opacity: 0.25;
  mix-blend-mode: color-burn;
}
#Top main .recruit .recruit_img.recruit_img--01::before, #Top main .recruit .recruit_img.recruit_img--04::before {
  opacity: 0.3;
}
#Top main .recruit .recruit_img.recruit_img--02::before {
  opacity: 0.05;
}
#Top main .recruit .recruit_img.recruit_img--03::before {
  opacity: 0.17;
}
#Top main .recruit .recruit_img.recruit_img--05::before {
  opacity: 0.19;
}
#Top main .recruit .recruit_img.recruit_img--06::before {
  opacity: 0.18;
}
#Top main .recruit .recruit_img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/*===== 1200px 以下（PC の狭い幅）：重なり・余白不足が出ないよう段組みを調整 =====*/
@media (max-width: 1200px) {
  #Top main .about .about_inner {
    display: block;
    width: auto;
    padding: 0 8%;
  }
  #Top main .about .about_body {
    width: auto;
    max-width: 54.1rem;
    margin: 4.8rem 0 0 auto;
  }
  #Top main .business .business_panel {
    padding: 8rem 6%;
  }
  #Top main .business .business_photo {
    width: 36%;
    height: auto;
    aspect-ratio: 434/610;
    align-self: flex-start;
  }
  #Top main .business .business_body {
    margin-left: 6%;
    padding-top: 0;
  }
  #Top main .business .business_list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 3.2rem;
  }
  #Top main .business .business_list a {
    gap: 1.2rem;
    white-space: nowrap;
  }
  #Top main .news {
    padding-left: 8%;
    padding-right: 6%;
  }
  #Top main .news .news_head {
    flex-shrink: 0;
  }
  #Top main .news .news_list {
    width: auto;
    flex: 1;
    max-width: 69.2rem;
  }
  #Top main .recruit .recruit_panel {
    padding-left: 6%;
  }
  #Top main .recruit .recruit_body {
    flex: 1;
    width: auto;
    max-width: 45.6rem;
    margin-right: 4rem;
  }
  #Top main .recruit .recruit_loop {
    flex-shrink: 0;
    margin-right: 4%;
  }
}
@media (max-width: 1000px) {
  #Top main .business .business_list {
    grid-template-columns: 1fr;
    grid-template-rows: none;
    grid-auto-flow: row;
  }
  #Top main .business .business_list li {
    height: 6rem;
  }
  #Top main .business .business_list li:nth-child(3), #Top main .business .business_list li:nth-child(5) {
    border-bottom: none;
  }
  #Top main .business .business_list li:last-child {
    border-bottom: 1px solid #8e94a2;
  }
  #Top main .news .news_inner {
    display: block;
  }
  #Top main .news .news_head {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
  }
  #Top main .news .news_more {
    margin-top: 0;
  }
  #Top main .news .news_list {
    max-width: none;
    margin: 4rem 0 0;
  }
  #Top main .recruit .recruit_col--down {
    display: none;
  }
}

@keyframes recruit_up {
  from {
    transform: translateY(0);
  }
  to {
    transform: translateY(-102rem);
  }
}
@keyframes recruit_down {
  from {
    transform: translateY(-102rem);
  }
  to {
    transform: translateY(0);
  }
}
@media (prefers-reduced-motion: reduce) {
  #Top main .recruit .recruit_col .recruit_track {
    animation: none;
  }
}
@keyframes mv_leave {
  0% {
    clip-path: inset(0 0 0 0);
    opacity: 1;
  }
  45% {
    opacity: 1;
  }
  100% {
    clip-path: inset(0 0 100% 0);
    opacity: 0;
  }
}
@keyframes mv_leave_down {
  0% {
    clip-path: inset(0 0 0 0);
    opacity: 1;
  }
  45% {
    opacity: 1;
  }
  100% {
    clip-path: inset(100% 0 0 0);
    opacity: 0;
  }
}
@keyframes mv_drift_up {
  from {
    transform: translateY(0);
  }
  to {
    transform: translateY(-10.7%);
  }
}
@keyframes mv_drift_down {
  from {
    transform: translateY(-10.7%);
  }
  to {
    transform: translateY(0);
  }
}
/*===== News（一覧・詳細） =====*/
#News main {
  /*===== 一覧 =====*/
}
#News main .news_wrap {
  padding: 12.2rem 8% 9.9rem;
}
#News main .news_list {
  max-width: 90.6rem;
  margin: 0 auto;
}
#News main .news_list li + li {
  margin-top: 1.4rem;
}
#News main .news_list a {
  position: relative;
  display: block;
  padding: 3.3rem 13.1rem 3.3rem 7rem;
  border-radius: 2rem;
  background-color: #fff;
  transition: background-color 0.4s, box-shadow 0.4s;
}
#News main .news_list a::after {
  content: "→";
  position: absolute;
  top: calc(50% - 0.8rem);
  right: 4.1rem;
  color: #22a2fa;
  font-size: 1.6rem;
  line-height: 1;
}
#News main .news_list a:hover {
  background-color: rgba(255, 255, 255, 0.5);
  box-shadow: 0 0.8rem 2.4rem rgba(21, 36, 73, 0.12);
}
#News main .news_list time {
  display: block;
  font-family: "Questrial", "IBM Plex Sans JP", sans-serif;
  font-weight: 400;
  color: #22a2fa;
  font-size: 1.4rem;
  letter-spacing: 0.08em;
  line-height: 1.71;
}
#News main .news_list .news_title {
  display: -webkit-box;
  margin-top: 0.5rem;
  overflow: hidden;
  font-size: 1.6rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 1.5;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
#News main .pagination {
  margin-top: 9.3rem;
}
#News main .pagination .nav-links {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 2.8rem;
}
#News main .pagination .page-numbers {
  display: inline-flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  height: 5.9rem;
  font-family: "Questrial", "IBM Plex Sans JP", sans-serif;
  font-weight: 400;
  color: #0f0f0f;
  font-size: 2.4rem;
  letter-spacing: 0.02em;
}
#News main .pagination .page-numbers.current {
  width: 5.9rem;
  border-radius: 50%;
  background-color: #22a2fa;
  color: #fff;
}
#News main .pagination .page-numbers.dots {
  width: 1.8rem;
  font-size: 0;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 4'%3E%3Cg fill='%23152449'%3E%3Ccircle cx='2' cy='2' r='2'/%3E%3Ccircle cx='9' cy='2' r='2'/%3E%3Ccircle cx='16' cy='2' r='2'/%3E%3C/g%3E%3C/svg%3E") no-repeat 50% 50%/1.8rem 0.4rem;
}
#News main .pagination .page-numbers:not(.current):not(.dots):not(.c-pager_link) {
  background: linear-gradient(currentColor, currentColor) no-repeat right calc(100% - 1.7rem)/0 1px;
  transition: color 0.3s, background-size 0.4s;
}
#News main .pagination .page-numbers:not(.current):not(.dots):not(.c-pager_link):hover {
  color: #21a1fa;
  background-position: left calc(100% - 1.7rem);
  background-size: 100% 1px;
}
#News main .pagination .prev {
  margin-right: 7.4rem;
  color: #000;
  font-family: "IBM Plex Sans JP", sans-serif;
  font-size: 1.6rem;
  font-weight: 500;
  letter-spacing: 0.02em;
}
#News main .pagination .next {
  margin-left: 4.8rem;
  color: #000;
  font-family: "IBM Plex Sans JP", sans-serif;
  font-size: 1.6rem;
  font-weight: 500;
  letter-spacing: 0.02em;
}
@media (max-width: 1000px) {
  #News main .pagination .prev,
  #News main .pagination .next {
    font-size: 0;
    gap: 0;
  }
}
#News main {
  /*===== 詳細 =====*/
}
#News main .news_article {
  max-width: 89.5rem;
  margin: 0 auto;
  padding: 6.4rem 8% 13.5rem;
  box-sizing: content-box;
}
#News main .news_article_head time {
  display: block;
  margin-top: 3.2rem;
  font-family: "Questrial", "IBM Plex Sans JP", sans-serif;
  font-weight: 400;
  color: #22a2fa;
  font-size: 1.4rem;
  letter-spacing: 0.08em;
  line-height: 1.71;
}
#News main .news_article_ttl {
  color: #0e182c;
  font-size: 4rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 1.4;
  overflow-wrap: anywhere;
  word-break: normal;
}
#News main .entry_body {
  margin-top: 5.8rem;
}
#News main .entry_body p {
  font-size: 1.8rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 2;
  overflow-wrap: anywhere;
  word-break: normal;
}
#News main .entry_body p + p {
  margin-top: 3.6rem;
}
#News main .entry_body a {
  color: #0682d9;
  text-decoration: underline;
  text-underline-offset: 0.4rem;
}
#News main .entry_body a:hover {
  text-decoration: none;
}
#News main .entry_body figure,
#News main .entry_body img {
  display: block;
  margin: 5.6rem auto;
}
#News main .entry_body figure img {
  margin: 0;
}
#News main .entry_body figure + figure {
  margin-top: -3.2rem;
}
#News main .entry_body .wide img {
  width: 100%;
}
#News main .entry_body .narrow img {
  width: 32rem;
  max-width: 100%;
  margin: 0 auto;
}
#News main .entry_body h2 {
  margin: 6.4rem 0 2.4rem;
  padding-bottom: 1.2rem;
  border-bottom: 1px solid rgba(21, 36, 73, 0.15);
  color: #0e182c;
  font-size: 2.4rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 1.5;
}
#News main .entry_body h3 {
  margin: 4.8rem 0 2rem;
  padding-left: 1.6rem;
  border-left: 0.3rem solid #22a2fa;
  color: #0e182c;
  font-size: 2rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 1.5;
}
#News main .entry_body ul,
#News main .entry_body ol {
  margin: 3.6rem 0;
}
#News main .entry_body li {
  font-size: 1.8rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 2;
  overflow-wrap: anywhere;
}
#News main .entry_body ul li {
  position: relative;
  padding-left: 1.2em;
}
#News main .entry_body ul li::before {
  content: "";
  position: absolute;
  top: calc(1em - 0.3rem);
  left: 0.3em;
  width: 0.6rem;
  height: 0.6rem;
  border-radius: 50%;
  background-color: #22a2fa;
}
#News main .entry_body ol {
  padding-left: 1.6em;
}
#News main .entry_body ol li {
  list-style: decimal;
}
#News main .entry_body ol li::marker {
  color: #22a2fa;
}
#News main .entry_body > :first-child {
  margin-top: 0;
}
#News main .news_pager {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 7.1rem;
}
#News main .news_back {
  justify-content: center;
  width: 29.8rem;
  height: 5.8rem;
  padding: 0;
}

/*===== Contact（入力・確認・完了） =====*/
#Contact main button {
  font-family: inherit;
}
#Contact main .contact_wrap {
  padding: 6.4rem 8% 12.4rem;
}
#Contact main .contact_lead {
  max-width: 62.5rem;
  margin: 0 auto;
  font-size: 1.6rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 1.9;
}
#Contact main .contact_lead.contact_lead--center {
  text-align: center;
}
#Contact main .contact_form {
  max-width: 108.4rem;
  margin: 6.4rem auto 0;
  padding: 6.5rem 16.7% 9.7rem;
  border-radius: 1.2rem;
  background-color: #fff;
  box-sizing: border-box;
}
#Contact main .form_item + .form_item {
  margin-top: 3.1rem;
}
#Contact main dt {
  font-size: 1.6rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.9;
}
#Contact main .need {
  margin-left: 0.6rem;
  color: #fa3622;
}
#Contact main dd {
  margin-top: 0.8rem;
}
#Contact main input[type=text],
#Contact main input[type=tel],
#Contact main input[type=email],
#Contact main textarea {
  width: 100%;
  height: 5.9rem;
  padding: 0 1.9rem;
  border: 1px solid transparent;
  border-radius: 0.4rem;
  outline: none;
  background-color: #f4f4f5;
  box-sizing: border-box;
  color: #152449;
  font-family: inherit;
  font-size: 1.6rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  appearance: none;
  transition: border-color 0.3s;
}
#Contact main input[type=text]::placeholder,
#Contact main input[type=tel]::placeholder,
#Contact main input[type=email]::placeholder,
#Contact main textarea::placeholder {
  color: #bbc0cb;
}
#Contact main input[type=text]:focus,
#Contact main input[type=tel]:focus,
#Contact main input[type=email]:focus,
#Contact main textarea:focus {
  border-color: #22a2fa;
}
#Contact main textarea {
  display: block;
  height: 17.6rem;
  padding: 1.4rem 1.9rem;
  line-height: 1.9;
  resize: vertical;
  word-break: normal;
}
#Contact main .radio_list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem 3.9rem;
  padding-top: 1.4rem;
}
#Contact main .radio_list input {
  position: absolute;
  opacity: 0;
}
#Contact main .radio_list label {
  position: relative;
  display: inline-flex;
  align-items: center;
  cursor: pointer;
  font-size: 1.6rem;
  font-weight: 500;
  letter-spacing: 0.08em;
}
#Contact main .radio_list label::before {
  content: "";
  flex-shrink: 0;
  width: 2.7rem;
  height: 2.7rem;
  margin-right: 0.6rem;
  border-radius: 50%;
  background-color: #f4f4f5;
}
#Contact main .radio_list label::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 0.6rem;
  width: 1.5rem;
  height: 1.5rem;
  margin-top: -0.75rem;
  border-radius: 50%;
  background-color: #22a2fa;
  opacity: 0;
  transition: opacity 0.2s;
}
#Contact main .radio_list input:checked + label::after {
  opacity: 1;
}
#Contact main .radio_list input:focus-visible + label::before {
  outline: 2px solid #22a2fa;
}
#Contact main .zip_row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
#Contact main .zip_row input[type=text] {
  width: 26.8rem;
  height: 6rem;
}
#Contact main .ad_btn {
  width: 14.2rem;
  height: 6rem;
  border-radius: 0.4rem;
  background-color: #263353;
  color: #fff;
  font-size: 1.6rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  transition: background-color 0.3s;
}
#Contact main .ad_btn:hover {
  background-color: #22a2fa;
}
#Contact main span.error,
#Contact main .ERR {
  display: block;
  width: 100%;
  margin-top: 0.6rem;
  color: #fa3622;
  font-size: 1.4rem;
  font-weight: 500;
}
#Contact main .agree_area {
  display: flex;
  justify-content: center;
  margin-top: 5.1rem;
}
#Contact main .agree_area input {
  position: absolute;
  opacity: 0;
}
#Contact main .agree_area label {
  position: relative;
  display: inline-flex;
  align-items: center;
  cursor: pointer;
  font-size: 1.6rem;
  font-weight: 500;
  letter-spacing: 0.08em;
}
#Contact main .agree_area label::before {
  content: "";
  flex-shrink: 0;
  width: 3rem;
  height: 3rem;
  margin-right: 1.2rem;
  border: 1px solid #d7dbe2;
  border-radius: 0.4rem;
  background-color: #fff;
  box-sizing: border-box;
}
#Contact main .agree_area label::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 1.1rem;
  width: 0.7rem;
  height: 1.3rem;
  margin-top: -1rem;
  border-right: 0.3rem solid #22a2fa;
  border-bottom: 0.3rem solid #22a2fa;
  transform: rotate(45deg);
  opacity: 0;
}
#Contact main .agree_area input:checked + label::after {
  opacity: 1;
}
#Contact main .agree_area input:focus-visible + label::before {
  outline: 2px solid #22a2fa;
}
#Contact main .agree_area a {
  color: #0682d9;
  background: linear-gradient(currentColor, currentColor) no-repeat left bottom 2px/100% 1px;
}
#Contact main .agree_area a:hover {
  animation: line_reenter 0.6s ease;
}
#Contact main .submit_area {
  display: flex;
  justify-content: center;
  margin-top: 5rem;
}
#Contact main .submit_area button:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}
@media (min-width: 800px) {
  #Contact main .submit_area button:disabled:hover {
    background-color: #22a2fa;
    color: #fff;
  }
  #Contact main .submit_area button:disabled:hover .c-arrow::before {
    animation: none;
  }
}
#Contact main .submit_area .koumoku {
  display: flex;
  flex-direction: row-reverse;
  justify-content: center;
  flex-wrap: wrap;
  gap: 2rem;
}
#Contact main .submit_area input[type=submit] {
  width: 24rem;
  height: 5.6rem;
  border: none;
  border-radius: 2.8rem;
  background-color: #22a2fa;
  color: #fff;
  cursor: pointer;
  font-family: inherit;
  font-size: 1.6rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  appearance: none;
  transition: background-color 0.3s;
}
#Contact main .submit_area input[type=submit]:hover {
  background-color: #152449;
}
#Contact main .submit_area .btn_back input[type=submit] {
  border: 1px solid #d7dbe2;
  background-color: #fff;
  color: #152449;
  transition: background-color 0.4s, color 0.4s;
}
#Contact main .submit_area .btn_back input[type=submit]:hover {
  background-color: #152449;
  color: #fff;
}
#Contact main .form_list--confirm dd {
  padding: 1.4rem 1.9rem;
  border-radius: 0.4rem;
  background-color: #f4f4f5;
  font-size: 1.6rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 1.9;
  overflow-wrap: anywhere;
  word-break: normal;
}
#Contact main .contact_done {
  text-align: center;
}
#Contact main .contact_done p {
  margin-top: 2.4rem;
  font-size: 1.6rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 1.9;
}
#Contact main .contact_done .c-btn {
  margin: 4.8rem auto 0;
}
#Contact main .contact_done_ttl {
  font-size: 2.8rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.5;
}
@media (max-width: 1000px) {
  #Contact main .contact_form {
    padding-left: 8%;
    padding-right: 8%;
  }
}

/*===== Privacy =====*/
#Privacy main .privacy_body {
  max-width: 76.2rem;
  margin: 0 auto;
  padding: 11rem 8% 11.2rem;
  box-sizing: content-box;
}
#Privacy main .privacy_body section + section {
  margin-top: 6rem;
}
#Privacy main .privacy_body h2 {
  font-size: 2.8rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.9;
}
#Privacy main .privacy_body p,
#Privacy main .privacy_body li {
  font-size: 1.6rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 1.9;
}
#Privacy main .privacy_body h2 + p {
  margin-top: 1.1rem;
}
#Privacy main .privacy_body p + ul,
#Privacy main .privacy_body ul + p {
  margin-top: 2.4rem;
}
#Privacy main .privacy_body ul {
  padding-left: 2.3rem;
}
#Privacy main .privacy_body ul li {
  position: relative;
}
#Privacy main .privacy_body ul li::before {
  content: "・";
  position: absolute;
  left: -1.1em;
}

/*===== About =====*/
#About main {
  /*===== 進化する街の、インフラを担う。 =====*/
}
#About main .about_copy {
  position: relative;
  z-index: 0;
  min-height: 98.8rem;
  margin-top: 4rem;
  padding: 15.7rem 0 12rem 16.79%;
  box-sizing: border-box;
  color: #fff;
}
#About main .about_copy_bg {
  position: absolute;
  top: 2.4rem;
  left: 0;
  right: 0;
  bottom: -1.3rem;
  z-index: -1;
  overflow: hidden;
}
#About main .about_copy_bg picture {
  position: absolute;
  top: -1.3rem;
  left: 0;
  right: 0;
  bottom: 0;
}
#About main .about_copy_bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 0;
}
#About main .about_copy_ttl {
  font-size: 4.8rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 1.4;
}
#About main .about_copy_txt {
  width: 61.2rem;
  max-width: 52.5321888412%;
  margin: 7.4rem 0 0 13.6480686695%;
  font-size: 1.8rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 1.9;
  text-align: justify;
}
#About main .about_copy_img {
  position: absolute;
  border-radius: 1.2rem;
  overflow: hidden;
}
#About main .about_copy_img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
#About main .about_copy_img.about_copy_img--01 {
  top: 0;
  left: 66.93%;
  width: 14%;
  aspect-ratio: 196/268;
}
#About main .about_copy_img.about_copy_img--02 {
  top: 54.8rem;
  left: 81.29%;
  width: 15.57%;
  aspect-ratio: 218/303;
}
#About main .about_copy_img.about_copy_img--03 {
  top: 48rem;
  left: 6.43%;
  width: 11.93%;
  aspect-ratio: 167/193;
}
#About main {
  /*===== Our Strength =====*/
}
#About main .strength {
  padding: 10rem 0 9.6rem;
}
#About main .strength_ttl {
  text-align: center;
}
#About main .strength_ttl_jp {
  display: block;
  font-size: 1.4rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 2.04;
}
#About main .strength_ttl_en {
  display: block;
  margin-top: 0.6rem;
  font-family: "Questrial", "IBM Plex Sans JP", sans-serif;
  font-weight: 400;
  color: #22a2fa;
  font-size: 7.2rem;
  line-height: 1;
}
#About main .strength_item {
  display: flex;
  align-items: center;
  margin-top: 8.8rem;
}
#About main .strength_item + .strength_item {
  margin-top: 12.2rem;
}
#About main .strength_img {
  position: relative;
  flex-shrink: 0;
  width: 46.79%;
  margin-left: 2.71%;
  aspect-ratio: 655/442;
  border-radius: 2rem;
  overflow: hidden;
}
#About main .strength_img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
#About main .strength_body {
  width: 28.5%;
  margin-left: 9.43%;
}
#About main .strength_item--reverse {
  flex-direction: row-reverse;
  justify-content: flex-end;
}
#About main .strength_item--reverse .strength_img {
  margin-left: 9.5%;
}
#About main .strength_item--reverse .strength_body {
  margin-left: 12.5%;
}
#About main .strength_num {
  font-family: "Questrial", "IBM Plex Sans JP", sans-serif;
  font-weight: 400;
  color: #22a2fa;
  font-size: 1.4rem;
  letter-spacing: 0.04em;
  line-height: 1.41;
}
#About main .strength_item_ttl {
  margin-top: 1.6rem;
  font-size: min(3.4rem, 2.6vw);
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.6;
}
#About main .strength_item_ttl::after {
  content: "";
  display: block;
  width: 2.2rem;
  height: 0.3rem;
  margin-top: 2rem;
  background-color: #22a2fa;
}
#About main .strength_txt {
  margin-top: 4.4rem;
  font-size: 1.6rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 1.9;
  text-align: justify;
}
@media (max-width: 1200px) {
  #About main .strength_body {
    width: 38%;
    margin-left: 5%;
  }
  #About main .strength_item--reverse .strength_body {
    margin-left: 5%;
  }
  #About main .strength_item--reverse .strength_img {
    margin-left: 5%;
  }
  #About main .strength_item_ttl {
    font-size: min(2.8rem, 3.4vw);
  }
}

/*===== Business =====*/
#Business main .biz {
  position: relative;
  z-index: 0;
  margin-top: 6.4rem;
  padding-bottom: 5.3rem;
}
#Business main .biz::before {
  content: "";
  position: absolute;
  top: 5.6rem;
  left: 0;
  right: 0;
  z-index: -1;
  height: 123.6rem;
  background: linear-gradient(354deg, #343e57 0%, #6e768a 100%);
}
#Business main {
  /*===== イントロ =====*/
}
#Business main .biz_intro {
  position: relative;
  min-height: 69.3rem;
  padding-top: 21.3rem;
  box-sizing: border-box;
  color: #fff;
  text-align: center;
}
#Business main .biz_intro_ttl {
  font-size: 4.6rem;
  font-weight: 500;
  letter-spacing: 0;
  line-height: 1.13;
}
#Business main .biz_intro_ttl span {
  display: block;
}
#Business main .biz_intro_ttl .amp {
  margin: 0.6rem 0;
  font-size: 3.6rem;
}
#Business main .biz_intro_txt {
  width: 36.8rem;
  max-width: 36%;
  margin: 7.5rem auto 0;
  font-size: 1.6rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 1.9;
  text-align: justify;
}
#Business main .biz_intro_img {
  position: absolute;
  border-radius: 1.2rem;
  overflow: hidden;
}
#Business main .biz_intro_img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
#Business main .biz_intro_img.biz_intro_img--a {
  top: 9.6rem;
  left: 0;
  width: 25.21%;
  aspect-ratio: 353/423;
  border-radius: 0 1.2rem 1.2rem 0;
}
#Business main .biz_intro_img.biz_intro_img--b {
  top: 39.2rem;
  left: 14.21%;
  width: 17.36%;
  aspect-ratio: 243/267;
}
#Business main .biz_intro_img.biz_intro_img--c {
  top: 0;
  left: 72.29%;
  width: 11.93%;
  aspect-ratio: 167/193;
}
#Business main .biz_intro_img.biz_intro_img--d {
  top: 40.4rem;
  left: 70.93%;
  width: 20.5%;
  aspect-ratio: 287/289;
}
#Business main {
  /*===== 工事 5 項目 =====*/
}
#Business main .biz_card {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 59.3rem;
  margin: 12.6rem 4.22% 0;
  padding: 6rem 7.06% 6rem 55.6%;
  border-radius: 2rem;
  background-color: #152449;
  box-sizing: border-box;
  overflow: hidden;
  isolation: isolate;
  color: #fff;
  scroll-margin-top: 14rem;
}
#Business main .biz_card + .biz_card {
  margin-top: 3rem;
}
#Business main .biz_card.biz_card--left {
  padding: 6rem 55.6% 6rem 7.14%;
}
#Business main .biz_card_img {
  position: absolute;
  inset: 0;
  z-index: -1;
}
#Business main .biz_card_img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
#Business main .biz_card_body {
  width: 100%;
  max-width: 40.3rem;
}
#Business main .biz_card_num {
  font-family: "Questrial", "IBM Plex Sans JP", sans-serif;
  font-weight: 400;
  font-size: 1.4rem;
  letter-spacing: 0.04em;
  line-height: 1.41;
}
#Business main .biz_card_ttl {
  margin-top: 2rem;
  font-size: 4.2rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.1;
  white-space: nowrap;
}
#Business main .biz_card_ttl::after {
  content: "";
  display: block;
  width: 2.2rem;
  height: 0.3rem;
  margin-top: 3.2rem;
  background-color: #22a2fa;
}
#Business main .biz_card_txt {
  margin-top: 3.2rem;
  font-size: 1.8rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 1.9;
  text-align: justify;
}
@media (max-width: 1200px) {
  #Business main .biz_intro_txt {
    width: calc(46% - 6rem);
    max-width: 36.8rem;
  }
  #Business main .biz_intro_img.biz_intro_img--b {
    left: 12%;
    width: 15%;
  }
  #Business main .biz_intro_img.biz_intro_img--d {
    left: 73%;
    width: 18.5%;
  }
}
@media (max-width: 1200px) {
  #Business main .biz_card,
  #Business main .biz_card.biz_card--left {
    padding-left: 6%;
    padding-right: 6%;
  }
  #Business main .biz_card {
    justify-content: flex-end;
  }
  #Business main .biz_card--left {
    justify-content: flex-start;
  }
  #Business main .biz_card_ttl {
    font-size: 3.4rem;
  }
  #Business main .biz_card_txt {
    font-size: 1.6rem;
  }
}

/*===== Company =====*/
#Company main .company {
  padding: 6.4rem 0 12.8rem;
}
#Company main {
  /*===== グループ代表あいさつのバナー =====*/
}
#Company main .greeting_bnr {
  position: relative;
  z-index: 1;
  display: block;
  margin: 0 8.43%;
  transition: opacity 0.3s;
}
#Company main .greeting_bnr:hover {
  opacity: 0.85;
}
#Company main .greeting_bnr img {
  width: 100%;
}
#Company main {
  /*===== 会社概要 =====*/
}
#Company main .overview {
  display: flex;
  margin: 11.8rem 11.29% 0;
}
#Company main .overview_ttl {
  flex-shrink: 0;
  width: 31.3rem;
}
#Company main .overview_ttl .c-ttl_en {
  color: #22a2fa;
  font-size: 5.6rem;
  line-height: 1.1;
}
#Company main .overview_body {
  flex: 1;
  min-width: 0;
  max-width: 77.1rem;
}
#Company main .overview_list {
  margin-top: 13rem;
}
#Company main .overview_list > div {
  display: flex;
  padding: 2.6rem 0;
  border-bottom: 1px solid #d7dbe2;
}
#Company main .overview_list > div:first-child {
  border-top: 1px solid #d7dbe2;
}
#Company main .overview_list dt {
  flex-shrink: 0;
  width: 23.1rem;
  padding-left: 1px;
  font-size: 1.6rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.9;
}
#Company main .overview_list dd {
  flex: 1;
  min-width: 0;
  font-size: 1.6rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 1.9;
}
#Company main .overview_list .group_links a {
  background: linear-gradient(currentColor, currentColor) no-repeat left bottom 2px/100% 1px;
}
#Company main .overview_list .group_links a:hover {
  animation: line_reenter 0.6s ease;
}
#Company main .overview_list .sales li {
  display: flex;
  gap: 1em;
  line-height: 1.9;
}
#Company main .overview_list .sales li span:first-child {
  flex-shrink: 0;
}
#Company main .overview_map {
  margin-top: 5.3rem;
}
#Company main .overview_map iframe {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 771/343;
  border: 0;
  border-radius: 1.2rem;
}
@media (max-width: 1200px) {
  #Company main .overview {
    display: block;
    margin-left: 6%;
    margin-right: 6%;
  }
  #Company main .overview_ttl {
    width: auto;
  }
  #Company main .overview_body {
    max-width: none;
  }
  #Company main .overview_list {
    margin-top: 4.8rem;
  }
  #Company main .overview_list dt {
    width: 18rem;
  }
}

/*===== Recruit（採用情報トップ） =====*/
#Recruit main .page_head {
  border-bottom-color: transparent;
  z-index: 1;
}
#Recruit main .page_head::after {
  content: none;
}
#Recruit main {
  /*===== メッセージ =====*/
}
#Recruit main .r-message {
  position: relative;
  z-index: 0;
  min-height: calc(30vh + 123.7rem);
  padding: calc(30vh + 14.1rem) 0 12rem;
  box-sizing: border-box;
  background: linear-gradient(to bottom, #22a2fa calc(100% - 10rem), #d8edfb 0);
  color: #fff;
  overflow-x: clip;
}
@media (max-width: 979px) {
  #Recruit main .r-message {
    padding-top: calc(30vh + 6.9rem);
    padding-bottom: 21.3rem;
  }
}
#Recruit main .r-message_bg {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 10rem;
  z-index: -1;
  clip-path: inset(0);
}
#Recruit main .r-message_bg picture {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  overflow: hidden;
}
#Recruit main .r-message_bg picture::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgba(34, 162, 250, 0.75) 0%, rgba(34, 162, 250, 0.55) 45%, rgba(34, 162, 250, 0.7) 100%);
}
#Recruit main .r-message_bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: blur(var(--blur, 0px));
  transform: scale(1.06);
}
#Recruit main .r-message_bg::after {
  content: "";
  position: absolute;
  top: -2px;
  left: 0;
  right: 0;
  height: 26rem;
  background: linear-gradient(to bottom, #22a2fa 0%, rgba(34, 162, 250, 0) 100%);
}
#Recruit main .r-message_ttl {
  position: absolute;
  top: calc(20vh + 6.9rem);
  left: 17.64%;
  writing-mode: vertical-rl;
  font-feature-settings: normal;
  font-size: 4rem;
  font-weight: 500;
  letter-spacing: 0.05em;
  line-height: 1.5;
}
@media (max-width: 1079px) {
  #Recruit main .r-message_ttl {
    left: 6rem;
  }
}
@media (max-width: 979px) {
  #Recruit main .r-message_ttl {
    position: static;
    margin: 0 auto;
    height: -webkit-max-content;
    height: max-content;
  }
}
#Recruit main .r-message_txt {
  width: 62.5rem;
  max-width: 50%;
  margin: 12.8rem 0 0 33%;
}
@media (max-width: 1079px) {
  #Recruit main .r-message_txt {
    max-width: 55%;
    margin-left: 24rem;
  }
}
@media (max-width: 979px) {
  #Recruit main .r-message_txt {
    max-width: 60%;
    margin: 8rem auto 0;
  }
}
#Recruit main .r-message_txt p {
  font-size: 1.8rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 2.1;
}
#Recruit main .r-message_txt p + p {
  margin-top: 3.78rem;
}
#Recruit main .r-message_img {
  position: absolute;
  width: 16.07%;
  aspect-ratio: 225/290;
}
#Recruit main .r-message_img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
#Recruit main .r-message_img.r-message_img--a {
  top: calc(30vh + 69.4rem);
  left: 11.43%;
}
@media (max-width: 1079px) {
  #Recruit main .r-message_img.r-message_img--a {
    left: 0;
  }
}
#Recruit main .r-message_img.r-message_img--b {
  top: calc(30vh + 94.8rem);
  left: 72.64%;
}
@media (max-width: 1079px) {
  #Recruit main .r-message_img.r-message_img--b {
    top: calc(30vh + 100rem);
    left: auto;
    right: 0;
  }
}
@media (max-width: 979px) {
  #Recruit main .r-message_img.r-message_img--b {
    top: calc(30vh + 105.8rem);
  }
}
#Recruit main .r-light {
  background-color: #d8edfb;
}
#Recruit main .r-interview {
  padding-top: 1.9rem;
}

/*===== Environment（環境を知る） =====*/
#Environment main .env_blue {
  display: flow-root;
  padding-bottom: 1px;
  background-color: #22a2fa;
}
@media (max-width: 1200px) {
  #Environment main .r-lead_txt {
    margin-left: 0;
  }
}
#Environment main .r-lead_img.r-lead_img--a {
  top: 0;
  left: 63.43%;
  width: 28.93%;
  aspect-ratio: 405/301;
  background: linear-gradient(354deg, #343e57 0%, #6e768a 100%);
}
#Environment main .r-lead_img.r-lead_img--b {
  top: 24.4285714286vw;
  left: 59.36%;
  width: 12.79%;
  aspect-ratio: 179/151;
  z-index: 1;
}
#Environment main .r-lead_img.r-lead_img--c {
  top: 15.3571428571vw;
  left: 80.71%;
  width: 9.07%;
  aspect-ratio: 127/183;
}
#Environment main {
  /*===== 休暇制度・定年と資産形成・福利厚生 =====*/
}
#Environment main .env_sec {
  position: relative;
  z-index: 0;
  padding: 0 11.29%;
}
#Environment main .env_sec .c-ttl_en {
  font-size: 5.6rem;
  line-height: 1;
}
#Environment main .env_sec .c-ttl--white .c-ttl_en {
  color: #fff;
}
#Environment main .env_sec--holiday {
  margin-top: -5.2rem;
  padding-top: 8.1rem;
}
#Environment main .env_sec--holiday::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  z-index: -1;
  height: 97.2rem;
  background-color: #d8edfb;
}
#Environment main .env_sec--retirement {
  z-index: 1;
  margin-top: 15.8rem;
  padding-bottom: 0;
}
#Environment main .env_sec--retirement .c-ttl .c-ttl_jp::before {
  background-color: #fff;
}
#Environment main .env_cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 3.7rem 2.6rem;
  margin-top: 4.8rem;
}
#Environment main .env_sec--retirement .env_cards {
  position: relative;
  z-index: 1;
  margin-bottom: -12.2rem;
}
#Environment main .env_card {
  position: relative;
  min-height: 41.6rem;
  padding: 5rem 3.4rem 4rem;
  border-radius: 2rem;
  background-color: #fff;
  box-sizing: border-box;
  text-align: center;
}
#Environment main .env_sec--retirement .env_card {
  min-height: 44.9rem;
}
#Environment main .env_card_num {
  position: absolute;
  top: 3.7rem;
  left: 3.4rem;
  font-family: "Questrial", "IBM Plex Sans JP", sans-serif;
  font-weight: 400;
  color: #22a2fa;
  font-size: 2rem;
  letter-spacing: 0.04em;
  line-height: 1;
}
#Environment main .env_card_icon {
  display: block;
  width: 13.4rem;
  margin: 0 auto;
}
#Environment main .env_card_icon img {
  width: 100%;
}
#Environment main .env_card_ttl {
  margin-top: 2.9rem;
  font-size: 2.4rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.4;
}
#Environment main .env_card_txt {
  margin-top: 2.4rem;
  font-size: 1.8rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 1.9;
  text-align: justify;
}
#Environment main .env_sec--holiday .env_card:first-child .env_card_txt {
  text-align: center;
}
#Environment main .env_sec--benefits {
  padding-top: 24rem;
  padding-bottom: 7.9rem;
  background-color: #d8edfb;
}
#Environment main .env_rows {
  margin-top: 4.8rem;
}
#Environment main .env_row {
  position: relative;
  display: grid;
  grid-template-columns: 42.8rem 1fr;
  column-gap: 4rem;
  align-items: center;
  min-height: 19rem;
  padding: 3.7rem 6.4rem 3.7rem 8.3rem;
  border-radius: 2rem;
  background-color: #fff;
  box-sizing: border-box;
}
#Environment main .env_row + .env_row {
  margin-top: 3rem;
}
#Environment main .env_row .env_card_num {
  top: 3.7rem;
  left: 3.4rem;
}
#Environment main .env_row_ttl {
  font-size: 2.4rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.5;
}
#Environment main .env_row_txt {
  font-size: 1.8rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 1.9;
}
@media (max-width: 1200px) {
  #Environment main .env_card {
    padding-left: 2.4rem;
    padding-right: 2.4rem;
  }
  #Environment main .env_card_ttl {
    font-size: min(2.4rem, 1.9vw);
  }
  #Environment main .env_card_txt {
    font-size: 1.6rem;
  }
  #Environment main .env_row {
    grid-template-columns: 34% 1fr;
  }
}
@media (max-width: 1000px) {
  #Environment main .env_cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  #Environment main .env_card_ttl {
    font-size: 2.2rem;
  }
}

/*===== Works（仕事を知る） =====*/
#Works main .works_blue {
  display: flow-root;
  padding-bottom: 13.6rem;
  background-color: #22a2fa;
}
#Works main .r-lead_ttl {
  white-space: nowrap;
}
@media (max-width: 1000px) {
  #Works main .r-lead_ttl {
    font-size: 4rem;
  }
}
@media (max-width: 979px) {
  #Works main .r-lead_ttl {
    white-space: normal;
  }
}
@media (max-width: 1200px) {
  #Works main .r-lead_txt {
    margin-left: 0;
  }
}
#Works main .r-lead_img.r-lead_img--a {
  top: 0;
  left: 68.5%;
  width: 22.64%;
  aspect-ratio: 317/383;
}
#Works main .r-lead_img.r-lead_img--b {
  top: 18.3571428571vw;
  left: 60.79%;
  width: 12.79%;
  aspect-ratio: 1/1;
}
#Works main {
  /*===== 白いパネル（施工管理の仕事・仕事の流れ） =====*/
}
#Works main .works_panel {
  margin: 3.9rem 4.14% 0;
  padding: 10.7rem 7.06% 5.9rem;
  border-radius: 2rem;
  background-color: #fff;
}
#Works main .works_panel + .works_panel {
  margin-top: 12.3rem;
}
#Works main .works_panel .c-ttl_en {
  color: #22a2fa;
  font-size: 5.6rem;
  line-height: 1;
}
#Works main .works_work_head {
  display: flex;
  justify-content: space-between;
  gap: 4rem;
  margin-top: -5.1rem;
}
#Works main .works_work_txt {
  flex: 0 1 45.8rem;
  padding-top: 5.1rem;
}
#Works main .works_work_txt p {
  margin-top: 4rem;
  font-size: 1.6rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 1.9;
  text-align: justify;
}
#Works main .works_work_img {
  flex: 0 1 54.3rem;
  aspect-ratio: 543/383;
  border-radius: 1.6rem;
  overflow: hidden;
}
#Works main .works_work_img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
#Works main .works_points {
  margin-top: 6.9rem;
}
#Works main .works_points > div {
  display: grid;
  grid-template-columns: 42rem 1fr;
  align-items: center;
  gap: 0 2rem;
  padding: 5.6rem 0;
  border-top: 1px solid #d7dbe2;
}
#Works main .works_points > div:last-child {
  padding-bottom: 3.8rem;
}
#Works main .works_points dt {
  display: flex;
  align-items: center;
  gap: 4.8rem;
  font-size: 2.8rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.5;
}
#Works main .works_points dd {
  font-size: 1.6rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 1.9;
}
#Works main .works_point_num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 7.5rem;
  height: 7.5rem;
  border-radius: 50%;
  background-color: #22a2fa;
  color: #fff;
  font-family: "Questrial", "IBM Plex Sans JP", sans-serif;
  font-weight: 400;
  font-size: 3rem;
  letter-spacing: -0.04em;
}
#Works main .works_panel--flow {
  display: grid;
  grid-template-columns: 34.9rem 1fr;
  align-items: start;
  padding-top: 10.1rem;
  padding-bottom: 11.6rem;
}
#Works main .works_flow_item {
  display: flex;
  gap: 7.4rem;
  padding: 0 0 5rem;
}
#Works main .works_flow_item + .works_flow_item {
  padding-top: 5rem;
  border-top: 1px solid #d7dbe2;
}
#Works main .works_flow_img {
  flex-shrink: 0;
  width: 23.5rem;
  aspect-ratio: 235/158;
  border-radius: 1.2rem;
  overflow: hidden;
}
#Works main .works_flow_img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
#Works main .works_flow_body {
  flex: 1;
  min-width: 0;
}
#Works main .works_flow_en {
  font-family: "Questrial", "IBM Plex Sans JP", sans-serif;
  font-weight: 400;
  color: #22a2fa;
  font-size: 1.4rem;
  letter-spacing: 0.04em;
  line-height: 1.4;
}
#Works main .works_flow_ttl {
  margin-top: 1.8rem;
  font-size: 2.8rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.5;
}
#Works main .works_flow_txt {
  margin-top: 2.8rem;
  font-size: 1.6rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 1.9;
}
@media (max-width: 1200px) {
  #Works main .works_points > div {
    grid-template-columns: 32rem 1fr;
  }
  #Works main .works_points dt {
    gap: 2.4rem;
    font-size: 2.4rem;
  }
  #Works main .works_panel--flow {
    grid-template-columns: 1fr;
  }
  #Works main .works_panel--flow .works_flow {
    margin-top: 4.8rem;
  }
}
@media (max-width: 1000px) {
  #Works main .works_points > div {
    grid-template-columns: 1fr;
    gap: 1.6rem;
  }
  #Works main .works_flow_item {
    gap: 3.2rem;
  }
}

/*===== People（人を知る：社員インタビュー詳細） =====*/
#People main .p-top {
  padding: 7.1rem 4.21% 0;
  background: linear-gradient(to bottom, #22a2fa 38.3rem, transparent 0);
}
#People main .p-hero {
  position: relative;
  z-index: 0;
  display: flex;
  align-items: flex-start;
  min-height: 49.9rem;
  padding: 6.4rem 4rem 6rem 12.8rem;
  border-radius: 2rem;
  background-color: #263353;
  box-sizing: border-box;
  overflow: hidden;
  color: #fff;
}
#People main .p-hero_img {
  position: absolute;
  inset: 0;
  z-index: -2;
}
#People main .p-hero_img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
#People main .p-hero_num {
  display: flex;
  align-items: center;
  font-family: "Questrial", "IBM Plex Sans JP", sans-serif;
  font-weight: 400;
  font-size: 1.8rem;
  letter-spacing: 0.04em;
}
#People main .p-hero_num::before {
  content: "";
  width: 1.1rem;
  height: 1.1rem;
  margin-right: 1.4rem;
  border-radius: 50%;
  background-color: #fff;
}
#People main .p-hero_ttl {
  margin-top: 4rem;
  font-size: 3.6rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.322;
}
#People main .p-hero_en {
  margin-top: 2.8rem;
  font-family: "Questrial", "IBM Plex Sans JP", sans-serif;
  font-weight: 400;
  font-size: 2.8rem;
  letter-spacing: 0.04em;
  line-height: 1.2;
}
#People main .p-hero_name {
  font-size: 1.4rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 1.8;
}
#People main .p-hero_role {
  margin-top: 2.2rem;
  font-size: 1.6rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.5;
}
#People main {
  /*===== Q&A =====*/
}
#People main .p-article {
  padding: 11.9rem 0 12.5rem;
}
#People main .p-block {
  display: flex;
  align-items: flex-start;
  gap: 8.5910652921%;
  padding: 0 8.43%;
}
#People main .p-block + .p-block, #People main .p-block + .p-wide {
  margin-top: 11rem;
}
#People main .p-block.p-block--right {
  flex-direction: row-reverse;
}
#People main .p-wide + .p-block {
  margin-top: 12.5rem;
}
#People main .p-block_img {
  flex: 0 0 38.058419244%;
  aspect-ratio: 443/583;
  margin-top: 3.5rem;
  border-radius: 2rem;
  overflow: hidden;
}
#People main .p-block_img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
#People main .p-wide ~ .p-block .p-block_img {
  aspect-ratio: 442/483;
}
#People main .p-block_body {
  flex: 1;
  min-width: 0;
  max-width: 62rem;
}
#People main .p-qa + .p-qa {
  margin-top: 6.4rem;
}
#People main .p-qa_num {
  font-family: "Questrial", "IBM Plex Sans JP", sans-serif;
  font-weight: 400;
  color: #22a2fa;
  font-size: 1.8rem;
  letter-spacing: 0.04em;
  line-height: 1;
}
#People main .p-qa_ttl {
  margin-top: 1.6rem;
  font-size: 3.2rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.4;
}
#People main .p-qa_txt {
  margin-top: 3.4rem;
  font-size: 1.6rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 2.1;
  text-align: justify;
}
#People main .p-qa_txt + .p-qa_txt {
  margin-top: 3.2rem;
}
#People main .p-wide {
  margin-top: 5.1rem;
  aspect-ratio: 1400/543;
  background-color: #22a2fa;
}
#People main .p-wide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
#People main {
  /*===== 1日のスケジュール =====*/
}
#People main .p-schedule {
  padding: 5.6rem 9.43% 5.7rem;
  background-color: #d8edfb;
}
#People main .p-schedule .c-ttl_en {
  color: #22a2fa;
  font-size: 5.6rem;
  line-height: 1;
}
#People main .p-schedule_cards {
  display: flex;
  gap: 2.2rem;
  margin-top: 3rem;
}
#People main .p-schedule_card {
  flex: 0 1 55.7rem;
  min-height: 47.7rem;
  padding: 4.6rem 4rem 4rem 6.4rem;
  border-radius: 2rem;
  background-color: #fff;
  box-sizing: border-box;
}
#People main .p-schedule_card:only-child {
  flex-basis: 100%;
}
#People main .p-schedule_ttl {
  font-size: 2rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.5;
}
#People main .p-schedule_list {
  margin-top: 3rem;
}
#People main .p-schedule_list > div {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: 5.6rem;
  min-height: 9.2rem;
}
#People main .p-schedule_list > div:last-child {
  min-height: 4.3rem;
}
#People main .p-schedule_list > div::before {
  content: "";
  position: absolute;
  top: 1.3rem;
  left: 12.2rem;
  z-index: 1;
  width: 1.6rem;
  height: 1.6rem;
  border-radius: 50%;
  background-color: #22a2fa;
}
#People main .p-schedule_list > div:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 2.1rem;
  left: 12.95rem;
  width: 1px;
  height: 100%;
  background-color: #d7dbe2;
}
#People main .p-schedule_list dt {
  flex-shrink: 0;
  width: 10.3rem;
  height: 4.3rem;
  border-radius: 2.2rem;
  background-color: #22a2fa;
  color: #fff;
  font-size: 1.8rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 4.3rem;
  text-align: center;
}
#People main .p-schedule_list dd {
  padding-top: 1rem;
  font-size: 1.6rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.4;
}
@media (max-width: 1200px) {
  #People main .p-hero {
    padding-left: 6.4rem;
  }
  #People main .p-qa_ttl {
    font-size: 2.6rem;
  }
  #People main .p-schedule {
    padding-left: 6%;
    padding-right: 6%;
  }
  #People main .p-schedule_card {
    padding-left: 3.2rem;
    padding-right: 2.4rem;
  }
}
@media (max-width: 1000px) {
  #People main .p-block {
    gap: 5%;
    padding: 0 6%;
  }
  #People main .p-block_img {
    flex-basis: 36%;
  }
  #People main .p-schedule_cards {
    flex-direction: column;
  }
}

/*===== Requirements（募集要項） =====*/
#Requirements main .req {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 6.6rem 8.43% 10rem 11.29%;
  background-color: #22a2fa;
}
#Requirements main .req .c-ttl {
  flex-shrink: 0;
}
#Requirements main .req .c-ttl_jp::before {
  background-color: #fff;
}
#Requirements main .req .c-ttl_en {
  font-size: 5.6rem;
  line-height: 1;
  white-space: nowrap;
}
#Requirements main .req_list {
  width: 85.1rem;
  max-width: 100%;
  margin: 6.1rem 0 0 auto;
  padding: 2rem 4.1rem;
  border-radius: 2rem;
  background-color: #fff;
  box-sizing: border-box;
}
#Requirements main .req_list > div {
  display: flex;
  padding: 3.5rem 0;
}
#Requirements main .req_list > div + div {
  border-top: 1px solid #d7dbe2;
}
#Requirements main .req_list dt {
  flex-shrink: 0;
  width: 23rem;
  font-size: 1.6rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.9;
}
#Requirements main .req_list dd {
  flex: 1;
  min-width: 0;
  font-size: 1.6rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 1.9;
}
#Requirements main .req_list dd p,
#Requirements main .req_list dd li {
  line-height: 1.9;
}
#Requirements main .req_list dd p + p,
#Requirements main .req_list dd ul + p {
  margin-top: 1.9em;
}
#Requirements main .req_list dd li {
  position: relative;
  padding-left: 1em;
}
#Requirements main .req_list dd li::before {
  content: "・";
  position: absolute;
  left: 0;
}
#Requirements main .req_list dd .note {
  padding-left: 1em;
  text-indent: -1em;
}
@media (max-width: 1079px) {
  #Requirements main .req {
    flex-direction: column;
    padding-left: 6%;
    padding-right: 6%;
  }
  #Requirements main .req_list {
    width: 100%;
    margin: 4.8rem 0 0;
  }
  #Requirements main .req_list dt {
    width: 18rem;
  }
}