@charset "UTF-8";

/* =========================================================
   職員採用ページ（page-recruit.php）専用
   - SP は 750px 幅デザイン。--u = 1デザインpx（750px基準の 1vw/7.5）
   ========================================================= */

.recruit-mv,
.recruit {
  --recruit-yellow: #ffc000;
  --recruit-navy: #003f88;
  --recruit-gray: #f1f2ee;
  --u: calc(100vw / 750);
}

/* ---------- メインビジュアル ---------- */
.recruit-mv {
  background-color: var(--recruit-yellow);
  overflow: hidden;
}
.recruit-mv_inner {
  position: relative;
  box-sizing: border-box;
  width: 100%;
  max-width: 1280px;
  height: 400px;
  margin: 0 auto;
  padding: 100px 40px 0;
}
.recruit-mv_body {
  width: 720px;
  margin-left: 15px;
  text-align: center;
  font-family: "ゴシックMB101 B", "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-feature-settings: "palt" 1;
}
.recruit-mv_catch {
  margin: 0;
  font-size: 83px;
  font-weight: 900;
  line-height: 1.2;
  white-space: nowrap;
}
.recruit-mv_catch small {
  font-size: 58px;
}
.recruit-mv_sub {
  margin: 25px 0 0;
  font-size: 48px;
  line-height: 1.3;
  letter-spacing: 0.05em;
}
.recruit-mv_rabbit {
  position: absolute;
  bottom: 0;
}
.recruit-mv_rabbit img {
  display: block;
  height: auto;
}
.recruit-mv_rabbit--new {
  right: 260px;
}
.recruit-mv_rabbit--answer {
  right: 70px;
}
.recruit-sp-br {
  display: none;
}

/* ---------- 共通：セクションタイトル ---------- */
.recruit-sec_ttl {
  margin-bottom: 65px;
}

/* ---------- 代表メッセージ ---------- */
.recruit-message {
  padding: 140px 0 130px;
  background-color: var(--recruit-gray);
}
.recruit-sec_ttl--message {
  margin-bottom: 116px;
}
.recruit-message_body {
  display: flex;
  gap: 94px;
}
.recruit-message_photo {
  flex: 0 0 402px;
}
.recruit-message_photo img {
  display: block;
  width: 100%;
  height: auto;
}
.recruit-message_text {
  flex: 1;
  margin-top: -11px;
  font-size: 22px;
  font-weight: 500;
  letter-spacing: -0.01em;
  line-height: 40px;
}
.recruit-message_text p {
  margin: 0 0 40px;
}
.recruit-message_text .recruit-message_name {
  margin: 80px 0 0;
  font-size: 26px;
  letter-spacing: 0.05em;
  line-height: 1.5;
}

/* ---------- 募集要項 ---------- */
.recruit-guide {
  padding: 136px 0 165px;
}
.recruit-guide_list {
  margin: 0;
}
.recruit-guide_item {
  position: relative;
  margin-top: 42px;
  padding: 76px 40px 40px;
  background-color: var(--recruit-gray);
}
.recruit-guide_item:first-child {
  margin-top: 0;
}
.recruit-guide_item dt {
  position: absolute;
  top: 0;
  left: 0;
  padding: 0 12px;
  background-color: var(--recruit-yellow);
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 0.05em;
  line-height: 36px;
}
.recruit-guide_item dd {
  margin: 0;
}
.recruit-guide_item p {
  margin: 0;
}
.recruit-guide_main {
  font-size: 38px;
  font-weight: 700;
  line-height: 1.4;
}
.recruit-guide_main small {
  margin-left: 6px;
  font-size: 20px;
}
.recruit-guide_lead {
  font-size: 22px;
  font-weight: 700;
  line-height: 1.8;
}
.recruit-guide_lead--lg {
  font-size: 24px;
}
.recruit-guide_main + .recruit-guide_note,
.recruit-guide_lead + .recruit-guide_note {
  margin-top: 16px;
}
.recruit-guide_note {
  font-size: 18px;
  line-height: 1.75;
}
.recruit-guide_lead + .recruit-guide_main {
  margin-top: 10px;
}
.recruit-guide_detail {
  display: flex;
  margin: 16px 0 20px;
  padding: 16px 20px;
  background-color: #fff;
  font-size: 18px;
  line-height: 1.75;
}
.recruit-guide_detail-label {
  flex: 0 0 62px;
}

/* ---------- 募集日程 ---------- */
.recruit-schedule {
  padding: 110px 0 175px;
  background-color: var(--recruit-gray);
}
.recruit-schedule_list {
  width: 700px;
  margin: 0 auto;
  padding: 0;
  list-style: none;
}
.recruit-schedule_list li {
  position: relative;
  min-height: 104px;
  margin-top: 52px;
  padding-left: 126px;
}
.recruit-schedule_list li:first-child {
  margin-top: 0;
}
.recruit-schedule_list li:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 112px;
  left: 51px;
  width: 2px;
  height: 36px;
  background-color: var(--recruit-yellow);
}
.recruit-schedule_num {
  position: absolute;
  top: 0;
  left: 0;
  width: 104px;
  height: 104px;
  border-radius: 50%;
  background-color: var(--recruit-yellow);
  font-size: 24px;
  font-weight: 700;
  line-height: 104px;
  text-align: center;
}
.recruit-schedule_list p {
  margin: 0;
}
.recruit-schedule_label {
  padding-top: 14px;
  font-size: 20px;
  line-height: 1.5;
  letter-spacing: 0.05em;
}
.recruit-schedule_date {
  margin-top: 4px;
  font-size: 32px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.05em;
  white-space: nowrap;
}
.recruit-schedule_ref {
  margin-left: 4px;
  color: var(--recruit-navy);
  font-size: 20px;
  text-decoration: none;
}

/* ---------- 注記 ---------- */
.recruit-notes {
  margin-top: 110px;
  padding: 64px 48px 76px;
  background-color: #fff;
}
.recruit-notes_block {
  margin-top: 50px;
}
.recruit-notes_block:first-child {
  margin-top: 0;
}
.recruit-notes_ttl {
  display: inline-block;
  margin: 0 0 30px;
  padding: 0 8px;
  background-color: var(--recruit-navy);
  color: #fff;
  font-size: 24px;
  font-weight: 700;
  line-height: 36px;
}
.recruit-notes_text,
.recruit-notes_bullets {
  margin: 0;
  font-size: 18px;
  line-height: 1.75;
}
.recruit-notes_text + .recruit-notes_text,
.recruit-notes_form + .recruit-notes_text {
  margin-top: 20px;
}
.recruit-notes_form {
  width: fit-content;
  margin: 25px 0 20px;
  padding: 0 24px;
  background-color: var(--recruit-gray);
  color: var(--recruit-navy);
  font-size: 24px;
  font-weight: 700;
  line-height: 60px;
}
.recruit-notes_form a {
  color: inherit;
  text-decoration: underline;
}
.recruit-notes_bullets {
  padding: 0;
  list-style: none;
}
.recruit-notes_bullets li {
  position: relative;
  padding-left: 1.1em;
}
.recruit-notes_bullets li::before {
  content: "";
  position: absolute;
  top: 0.55em;
  left: 0;
  width: 0.8em;
  height: 0.8em;
  border-radius: 50%;
  background-color: var(--recruit-yellow);
}

/* =========================================================
   SP
   ========================================================= */
@media screen and (max-width: 767px) {
  .recruit-mv_inner {
    width: 100%;
    height: calc(400 * var(--u));
    padding: calc(50 * var(--u)) 0 0;
  }
  .recruit-mv_body {
    width: 100%;
    margin-left: 0;
  }
  .recruit-mv_catch {
    font-size: calc(78 * var(--u));
  }
  .recruit-mv_catch small {
    font-size: calc(54 * var(--u));
  }
  .recruit-mv_sub {
    margin-top: calc(50 * var(--u));
    font-size: calc(45 * var(--u));
    line-height: calc(66 / 45);
  }
  .recruit-sp-br {
    display: inline;
  }
  .recruit-mv_rabbit--new {
    right: auto;
    left: calc(55 * var(--u));
  }
  .recruit-mv_rabbit--answer {
    right: auto;
    left: calc(548 * var(--u));
  }
  .recruit-mv_rabbit--new img {
    width: calc(125 * var(--u));
  }
  .recruit-mv_rabbit--answer img {
    width: calc(142 * var(--u));
  }

  .recruit-sec_ttl {
    margin-bottom: calc(65 * var(--u));
  }

  .recruit-message {
    padding: calc(140 * var(--u)) 0 calc(160 * var(--u));
  }
  .recruit-sec_ttl--message {
    margin-bottom: calc(66 * var(--u));
  }
  .recruit-message_body {
    display: block;
  }
  .recruit-message_photo {
    width: calc(474 * var(--u));
    margin: 0 auto;
  }
  .recruit-message_text {
    margin-top: calc(123 * var(--u));
    padding: 0 0 0 calc(30 * var(--u));
    font-size: calc(32 * var(--u));
    line-height: calc(56 / 32);
  }
  .recruit-message_text p {
    margin-bottom: calc(56 * var(--u));
  }
  .recruit-message_text .recruit-message_name {
    margin-top: calc(110 * var(--u));
    font-size: calc(36 * var(--u));
  }

  .recruit-guide {
    padding: calc(130 * var(--u)) 0 calc(160 * var(--u));
  }
  .recruit-guide_item {
    margin-top: calc(40 * var(--u));
    padding: calc(100 * var(--u)) calc(30 * var(--u)) calc(40 * var(--u));
  }
  .recruit-guide_item dt {
    padding: 0 calc(15 * var(--u));
    font-size: calc(30 * var(--u));
    line-height: calc(55 * var(--u));
  }
  .recruit-guide_main {
    font-size: calc(54 * var(--u));
  }
  .recruit-guide_main small {
    display: block;
    margin-left: 0;
    font-size: calc(34 * var(--u));
  }
  .recruit-guide_lead,
  .recruit-guide_lead--lg {
    font-size: calc(34 * var(--u));
    line-height: calc(56 / 34);
  }
  .recruit-guide_main + .recruit-guide_note,
  .recruit-guide_lead + .recruit-guide_note {
    margin-top: calc(20 * var(--u));
  }
  .recruit-guide_note {
    font-size: calc(28 * var(--u));
    line-height: 1.6;
  }
  .recruit-guide_detail {
    flex-direction: column;
    margin: calc(20 * var(--u)) 0 calc(30 * var(--u));
    padding: calc(24 * var(--u)) calc(30 * var(--u));
    font-size: calc(28 * var(--u));
    line-height: calc(44 / 28);
  }
  .recruit-guide_detail-label {
    flex: none;
    margin-bottom: calc(10 * var(--u));
  }

  .recruit-schedule {
    padding: calc(80 * var(--u)) 0 calc(160 * var(--u));
  }
  .recruit-schedule_list {
    width: 100%;
  }
  .recruit-schedule_list li {
    min-height: calc(104 * var(--u));
    margin-top: calc(52 * var(--u));
    padding-left: calc(125 * var(--u));
  }
  .recruit-schedule_list li:not(:last-child)::after {
    top: calc(112 * var(--u));
    left: calc(51 * var(--u));
    height: calc(36 * var(--u));
  }
  .recruit-schedule_num {
    width: calc(104 * var(--u));
    height: calc(104 * var(--u));
    font-size: calc(30 * var(--u));
    line-height: calc(104 * var(--u));
  }
  .recruit-schedule_label {
    padding-top: calc(10 * var(--u));
    font-size: calc(28 * var(--u));
  }
  .recruit-schedule_date {
    font-size: calc(34 * var(--u));
    letter-spacing: 0;
  }
  .recruit-schedule_ref {
    font-size: calc(24 * var(--u));
  }

  .recruit-notes {
    margin-top: calc(100 * var(--u));
    padding: calc(60 * var(--u)) calc(30 * var(--u));
  }
  .recruit-notes_block {
    margin-top: calc(60 * var(--u));
  }
  .recruit-notes_ttl {
    margin-bottom: calc(30 * var(--u));
    padding: 0 calc(12 * var(--u));
    font-size: calc(32 * var(--u));
    line-height: calc(49 / 32);
  }
  .recruit-notes_text,
  .recruit-notes_bullets {
    font-size: calc(28 * var(--u));
    line-height: calc(45 / 28);
  }
  .recruit-notes_form {
    width: auto;
    padding: calc(24 * var(--u));
    font-size: calc(28 * var(--u));
    line-height: 1.6;
  }
}

/* ---------- 記号 ---------- */
.recruit-colon {
  margin: 0 0.25em;
}
.recruit-mark {
  color: #d7000f;
}
