/* ============================================================
   INFORMATION - 共通スタイル
   ============================================================ */

/* ==========================
   INDEX (info-index)
   - 上部 235px は紺色帯 (#003c7c)、その中に "採用情報" タイトル
   - 白パネル (1025px幅) が y=148 から下にかかる
   - 紺色帯から外れた部分の背景は薄水色 (#EBF2F6)
   ========================== */
.info-index {
  position: relative;
  background: #EBF2F6;
  padding: 0 0 6.667vw;                /* 80 @1200 */
}
.info-index__title-band {
  background: #003c7c;
  color: #ffffff;
  text-align: center;
  height: 19.583vw;                    /* 235 @1200 */
  padding-top: 5vw;                    /* 60 @1200 */
  box-sizing: border-box;
}
.info-index__title-band-text {
  margin: 0;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: max(16px, 1.833vw);       /* 22 @1200 / 最低16 */
  letter-spacing: 0.12em;
}
.info-index__panel {
  position: relative;
  z-index: 1;
  margin: -7.25vw auto 0;              /* -87 @1200 */
  max-width: 85.417vw;                 /* 1025 @1200 */
  background: #ffffff;
  padding: 4.667vw 2.667vw 5.333vw;    /* 56 / 32 / 64 @1200 */
  box-sizing: border-box;
}
.info-index__group + .info-index__group {
  margin-top: 4vw;                     /* 48 @1200 */
}
.info-index__group-head {
  margin: 0 auto 2.333vw;              /* 28 @1200 */
  text-align: center;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: max(14px, 1.5vw);         /* 18 @1200 / 最低14 */
  letter-spacing: 0.10em;
  color: #155c99;
  width: fit-content;
  padding-bottom: 0.667vw;             /* 8 @1200 */
  border-bottom: 1px solid #008BD3;
}
.info-index__btns {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1.167vw;                        /* 14 @1200 */
}
.info-index__btn {
  position: relative;
  width: 23.417vw;                     /* 281 @1200 */
  display: flex;
  align-items: center;
  justify-content: center;
  height: 3.833vw;                     /* 46 @1200 */
  padding: 0 1.5vw;                    /* 18 @1200 */
  background: #008BD3;
  color: #ffffff;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: max(13px, 1.167vw);       /* 14 @1200 / 最低13 */
  letter-spacing: 0.06em;
  text-decoration: none;
  transition: opacity 0.2s ease;
}
.info-index__btn:hover { opacity: 0.85; }
/* 矢印: 水平線 + 右端の上向き斜め線のみ (下なし) */
.info-index__btn-arrow {
  position: absolute;
  right: 1.5vw;                        /* 18 @1200 */
  top: 50%;
  transform: translateY(-50%);
  width: 2.333vw;                      /* 28 @1200 */
  height: 1px;
  background: #ffffff;
}
.info-index__btn-arrow::after {
  content: "";
  position: absolute;
  right: 0;
  top: 0;
  width: 0.917vw;                      /* 11 @1200 */
  height: 1px;
  background: #ffffff;
  transform-origin: right center;
  transform: rotate(35deg);
}

/* ==========================
   Recruit Table (募集要項)
   ========================== */
.info-recruit {
  background: #EBF2F6;
  padding: 8.333vw 0 15vw;             /* 100 / 180 @1200 */
}
.info-recruit__inner {
  max-width: 75vw;                     /* 900 @1200 */
  margin: 0 auto;
  padding: 0 2vw;                      /* 24 @1200 */
}
.info-recruit__title-wrap {
  text-align: center;
  margin-bottom: 6.667vw;              /* 80 @1200 */
}
.info-recruit__title {
  display: inline-block;
  margin: 0;
  font-family: "Inter", "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: max(20px, 2.5vw);         /* 30 @1200 / 最低20 */
  letter-spacing: 0.12em;
  color: #0091DD;
}
.info-recruit__panel {
  background: #D5E9F4;
  padding: 2vw 2vw 2.667vw;            /* 24 / 32 @1200 */
  box-sizing: border-box;
}
.info-recruit__card {
  background: #ffffff;
  padding: 2.667vw 3vw;                /* 32 / 36 @1200 */
  margin-bottom: 2vw;                  /* 24 @1200 */
}
.info-recruit__card:last-of-type {
  margin-bottom: 0;
}
.info-recruit__row {
  display: flex;
  align-items: start;
  gap: 4.167vw;                        /* 50 @1200 */
  padding: 2.083vw 2.333vw 2.083vw 3.333vw;  /* 25 / 28 / 40 @1200 */
  border-bottom: 1px solid #000;
}
.info-recruit__card .info-recruit__row:first-child {
  border-top: none;
}
.info-recruit__label {
  margin: 0;
  flex: 0 0 7.667vw;                   /* 92 @1200 */
  width: 7.667vw;
  text-align: justify;
  text-align-last: justify;                /* 文字を均等配置 (両端揃え) */
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-size: max(15px, 1.667vw);       /* 20 @1200 / 最低15 */
  letter-spacing: 0.06em;
  color: #000000;
}
.info-recruit__value,
.info-recruit__value p {
  margin: 0;
  font-family: "Noto Sans JP", sans-serif;
  font-size: max(14px, 1.5vw);         /* 18 @1200 / 最低14 */
  line-height: 1.5;
  letter-spacing: 0;
  color: #000;
}
.info-recruit__value p + p { margin-top: 0.333vw; }  /* 4 @1200 */
.info-recruit__value-indent { padding-left: 4.6em; }
@media (max-width: 767px) {
  .info-recruit__value-indent { padding-left: 8px; }
}
.info-recruit__spacer { height: 1vw; }   /* 12 @1200 */
.info-recruit__buttons {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2vw;                            /* 24 @1200 */
  margin-top: 2.667vw;                 /* 32 @1200 */
}
.info-recruit__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 5vw;                         /* 60 @1200 */
  min-height: 48px;
  background: #008BD3;
  color: #ffffff;
  text-decoration: none;
  font-family: "Poppins", sans-serif;
  font-weight: 500;
  font-size: max(16px, 1.833vw);       /* 22 @1200 / 最低16 */
  letter-spacing: 0.18em;
  transition: opacity 0.2s ease;
}
.info-recruit__btn--mypage { background: #006AB7; }
.info-recruit__btn:hover { opacity: 0.85; }

/* ==========================
   応募手順 (info-flow)
   ========================== */
.info-flow {
  background: #3cabe6;
  padding: 6.667vw 0;                  /* 80 @1200 */
}
.info-flow__title {
  margin: 0 0 3.333vw;                 /* 40 @1200 */
  text-align: center;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: max(22px, 3vw);           /* 36 @1200 / 最低22 */
  letter-spacing: 0.10em;
  color: #ffffff;
}
.info-flow__list {
  list-style: none;
  margin: 0 auto;
  padding: 0;
  max-width: 44.167vw;                 /* 530 @1200 */
  display: grid;
  gap: 0;
}
.info-flow__item {
  position: relative;
  display: flex;
  align-items: center;
  background: #ffffff;
  border-radius: 0;
  height: 6.167vw;                     /* 74 @1200 */
  padding: 0 1vw;                      /* 12 @1200 */
}
.info-flow__item--with-note {
  height: auto;
  min-height: 6.167vw;                 /* 74 @1200 */
  padding: 1.167vw 1vw;                /* 14 / 12 @1200 */
  align-items: center;
}
.info-flow__item--with-note .info-flow__main {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.info-flow__item--with-note .info-flow__label {
  margin-bottom: 0.333vw;              /* 4 @1200 */
}
.info-flow__note {
  margin: 0.333vw 0 0;                 /* 4 @1200 */
  padding: 0;
  text-align: center;
  font-family: "Noto Sans JP", sans-serif;
  font-size: max(10px, 0.833vw);       /* 10 @1200 / 最低10 */
  font-weight: 500;
  letter-spacing: 0.04em;
  color: #000;
  line-height: 1.5;
}
.info-flow__num {
  width: 4.167vw;                      /* 50 @1200 */
  height: 4.167vw;
  background: #155c99;
  color: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: "Poppins", sans-serif;
  font-weight: 400;
  font-size: max(15px, 1.667vw);       /* 20 @1200 / 最低15 */
  letter-spacing: 0.04em;
  border-radius: 0;
}
.info-flow__label {
  flex: 1;
  text-align: center;
  margin: 0;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: max(15px, 1.667vw);       /* 20 @1200 / 最低15 */
  letter-spacing: 0.08em;
  color: #000000;
  padding-right: 4.167vw;              /* 50 @1200 */
}
.info-flow__arrow {
  width: 4.167vw;                      /* 50 @1200 */
  height: 2.25vw;                      /* 27 @1200 */
  min-width: 32px;
  min-height: 18px;
  margin: 3.333vw auto;                /* 40 @1200 */
  background-image: url('../../assets/images/information/info-flow-arrow.svg');
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}

/* ==========================
   地域総合職 / エンジニア職 - タブ
   - 募集要項タイトル と 白パネル の間に配置
   - アクティブ: 紺色 (#003c7c) + 白文字
   - 非アクティブ: 薄水色 (#b8d6ea) + 紺文字
   ========================== */
.info-recruit__tabs {
  display: grid;
  grid-template-columns: repeat(var(--tabs-count, 7), 1fr);
  gap: 1px;
  margin-bottom: 0;
}
.info-recruit__tab {
  height: 4.75vw;                      /* 57 @1200 */
  min-height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0, 145, 221, 0.5);
  color: #ffffff;
  text-decoration: none;
  font-family: "Inter", "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: max(12px, 1.25vw);        /* 15 @1200 / 最低12 */
  letter-spacing: 0.04em;
  transition: opacity 0.2s ease;
}
.info-recruit__tab:hover { opacity: 0.85; }
.info-recruit__tab.is-active {
  background: #0091DD;
  color: #ffffff;
  pointer-events: none;
}

/* ==========================
   QA Page
   - Q: 青バー (#0091DD) 白文字 Q.N + 質問テキスト + 右に - アイコン
   - A: 白カード (Qの下、回答テキスト)
   ========================== */
.qa-list {
  background: #d5e9f4;
  padding: 6.833vw 0 7.083vw;          /* 82 / 85 @1200 */
}
.qa-list__inner {
  max-width: 67.5vw;                   /* 810 @1200 */
  margin: 0 auto;
  padding: 0 2vw;                      /* 24 @1200 */
}
.qa-block {
  margin-bottom: 5.5vw;                /* 66 @1200 */
}
.qa-block:last-child { margin-bottom: 0; }
.qa-block__q {
  display: flex;
  align-items: stretch;
  height: 4.667vw;                     /* 56 @1200 */
  min-height: 40px;
  background: #3CABE6;
  color: #ffffff;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: max(14px, 1.333vw);       /* 16 @1200 / 最低14 */
  letter-spacing: 0.06em;
}
.qa-block__no {
  flex: 0 0 6vw;                       /* 72 @1200 */
  background: #0091DD;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: "Poppins", sans-serif;
  font-weight: 500;
  font-size: max(18px, 2.083vw);       /* 25 @1200 / 最低18 */
  letter-spacing: 0;
}
.qa-block__qtext {
  flex: 1;
  display: flex;
  align-items: center;
  padding-left: 2.333vw;               /* 28 @1200 */
}
.qa-block__a {
  margin-top: 0.583vw;                 /* 7 @1200 */
  background: #ffffff;
  padding: 1.667vw 2.333vw;            /* 20 / 28 @1200 */
  font-family: "Noto Sans JP", sans-serif;
  font-size: max(13px, 1.167vw);       /* 14 @1200 / 最低13 */
  line-height: 1.85;
  letter-spacing: 0.04em;
  color: #1a1a1a;
}
.qa-block__a p { margin: 0; }
.qa-block__a a { color: #008BD3; text-decoration: underline; }

/* ==========================
   Privacy Policy
   - 外側: 紺色 (#003c7c) 背景
   - 中央に白パネル (840px幅)
   - 各セクション: 見出しに左縦線 (青)
   ========================== */
.privacy-body {
  background: #003c7c;
  padding: 5.333vw 0 6.667vw;          /* 64 / 80 @1200 */
}
.privacy-body__panel {
  background: #ffffff;
  max-width: 70vw;                     /* 840 @1200 */
  margin: 0 auto;
  padding: 4vw 4.167vw;                /* 48 / 50 @1200 */
  box-sizing: border-box;
}
.privacy-body__section + .privacy-body__section {
  margin-top: 4.167vw;                 /* 50 @1200 */
}
.privacy-body__h2 {
  position: relative;
  margin: 0 0 1.167vw;                 /* 14 @1200 */
  padding-left: 0.833vw;               /* 10 @1200 */
  font-family: "Noto Sans JP", sans-serif;
  font-size: max(14px, 1.333vw);       /* 16 @1200 / 最低14 */
  font-weight: 700;
  letter-spacing: 0.06em;
  color: #0091DD;
  line-height: 1.4;
}
.privacy-body__h2::before {
  content: "";
  position: absolute;
  top: 4px;
  left: 0;
  width: 2px;
  height: calc(100% - 4px);
  background: #0091DD;
}
.privacy-body__section p,
.privacy-body__section li {
  margin: 0;
  font-family: "Noto Sans JP", sans-serif;
  font-size: max(13px, 1.167vw);       /* 14 @1200 (13→14底上げ) / 最低13 */
  line-height: 1.429;                  /* 18/14 ≒ 1.43 */
  letter-spacing: 0.04em;
  color: #000;
}
.privacy-body__section p:last-child,
.privacy-body__section li:last-child { margin-bottom: 0; }
.privacy-body__section ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.privacy-body__section ul li::marker {
  content: none;
}
.privacy-body__section a {
  color: #0091DD;
  text-decoration: underline;
}
.privacy-body__notes {
  margin-top: 3.333vw;                 /* 40 @1200 */
}
.privacy-body__notes p {
  margin: 0;
  padding-left: 1em;
  text-indent: -1em;
  font-family: "Noto Sans JP", sans-serif;
  font-size: max(13px, 1.167vw);       /* 14 @1200 (13→14底上げ) / 最低13 */
  line-height: 1.429;                  /* 18/14 ≒ 1.43 */
  letter-spacing: 0.04em;
  color: #1a1a1a;
}
.privacy-body__notes a {
  color: #0091DD;
  text-decoration: underline;
}

/* ============ Tablet/SP レスポンシブ ============ */
@media (max-width: 1199px) {
  /* info-index: PC vw 値を固定px化 */
  .info-index { padding: 0 0 60px; }
  .info-index__title-band { height: 200px; padding-top: 48px; }
  .info-index__panel {
    max-width: calc(100% - 48px);
    margin: -72px auto 0;
    padding: 40px 24px 48px;
  }
  .info-index__group + .info-index__group { margin-top: 40px; }
  .info-index__group-head { margin: 0 auto 24px; padding-bottom: 8px; }
  .info-index__btns { gap: 12px; }
  .info-index__btn { width: 281px; height: 46px; padding: 0 18px; }
  .info-index__btn-arrow { right: 18px; width: 28px; }
  .info-index__btn-arrow::after { width: 11px; }

  /* info-recruit: PC vw 値を固定px化 */
  .info-recruit { padding: 60px 0 80px; }
  .info-recruit__inner,
  .info-recruit__panel { padding: 12px 12px 16px; max-width: 100%; }
  .info-recruit__title-wrap { margin-bottom: 48px; }
  .info-recruit__card { padding: 24px; margin-bottom: 16px; }
  .info-recruit__row { grid-template-columns: 1fr; padding: 20px 16px; gap: 8px; }
  .info-recruit__label { flex: 0 0 auto; width: auto; }
  .info-recruit__buttons { gap: 16px; margin-top: 24px; }
  .info-recruit__btn { height: auto; min-height: 48px; padding: 12px 16px; font-size: 16px; }

  /* 応募手順 padding/title 余白 */
  .info-flow { padding: 60px 0; }
  .info-flow__title { margin-bottom: 24px; }
  .info-flow__list { max-width: 530px; }
  .info-flow__item { height: 60px; padding: 0 12px; }
  .info-flow__item--with-note { padding: 12px; min-height: 60px; }
  .info-flow__num { width: 50px; height: 50px; }
  .info-flow__label { padding-right: 0; padding-left: 12px; text-align: left; }
  .info-flow__arrow { width: 50px; height: 27px; margin: 24px auto; }

  /* QA: vw解除 */
  .qa-list__inner { max-width: 100%; padding: 0 24px; }
  .qa-block { margin-bottom: 48px; }
  .qa-block__q { height: 56px; }
  .qa-block__no { flex: 0 0 72px; }
  .qa-block__qtext { padding-left: 24px; }
  .qa-block__a { margin-top: 7px; padding: 20px 28px; }

  /* privacy: vw解除 */
  .privacy-body { padding: 56px 0 64px; }
  .privacy-body__panel { max-width: calc(100% - 32px); padding: 40px 32px; }
  .privacy-body__section + .privacy-body__section { margin-top: 40px; }
  .privacy-body__h2 { margin: 0 0 14px; padding-left: 10px; }
  .privacy-body__notes { margin-top: 32px; }
}

@media (max-width: 767px) {
  .info-index__panel { padding: 24px 16px; max-width: calc(100% - 24px); }
  .info-index__title-band-text { font-size: 18px; }
  .info-index__group-head { font-size: 14px; }
  .info-index__btn { font-size: 13px; padding: 12px 16px; }
  .info-recruit { padding: 40px 0; }
  .info-recruit__inner,
  .info-recruit__panel { padding: 12px 12px 16px; }
  .info-recruit__title { font-size: 24px; }
  .info-recruit__title-wrap { margin-bottom: 40px;}
  .info-recruit__card { padding: 16px; }
  .info-recruit__row { font-size: 12px; padding: 12px 4px; flex-direction: column; gap: 8px; }
  .info-recruit__label { flex:auto; font-size: 16px; width: 68px; }
  .info-recruit__value, .info-recruit__value p { font-size: 14px; padding-left: 8px; }
  .info-recruit__value p.info-recruit__value-indent { padding-left: 8px; }
  /* 応募手順リスト: SP では画面幅にぴったりにならないように */
  .info-flow__list {
    max-width: calc(100% - 32px);
  }
  .info-flow { padding: 40px auto; }
  .info-flow__title { font-size: 24px; }
  .info-flow__label { padding-left: 12px; font-size: 18px;}
  /* QA SP */
  .qa-list { padding: 40px 0; }
  .qa-list__inner { padding: 0 16px; }
  .qa-block { margin-bottom: 32px; }
  .qa-block__no { flex: 0 0 50px; font-size: 18px; }
  .qa-block__qtext { padding-left: 10px; }
  .qa-block__a { padding: 12px 16px; }
  /* 個人情報 SP */
  .privacy-body__panel { padding: 40px 16px; }
}

/* ============ Tabs レスポンシブ ============ */
@media (max-width: 1199px) {
  .info-recruit__tabs {
    grid-template-columns: repeat(4, 1fr);
    gap: 1px;
  }
  /* 4列で7個 → 最終行に3個。奇数(1個だけ)余ったら中央寄せ */
  .info-recruit__tab {
    height: auto;
    min-height: 48px;
    padding: 8px 4px;
    font-size: 13px;
    text-align: center;
    line-height: 1.3;
  }
  /* 奇数番目最後の1個 (例: 7個目) は中央寄せ。7%4=3 → 最後3個が下行 */
}

@media (max-width: 767px) {
  .info-recruit__tabs {
    grid-template-columns: repeat(2, 1fr);
  }
  .info-recruit__tab {
    min-height: 40px;
    font-size: 13px;
  }
  /* 偶奇数別: 7個 (奇数) の場合、最後の1個を中央寄せ */
  .info-recruit__tab:last-child:nth-child(odd) {
    grid-column: 1 / -1;
    justify-self: center;
    width: 50%;
  }
}
