@charset "UTF-8";
/* ============================================================
   入試カレンダー改善版（画像 → HTML/CSS化）
   - PC: 試験日早見バー ＋ 月ノード付きタイムラインカード
   - SP: 縦積みカード（横スクロール不要）
   配色は既存LPに準拠:
     ブランド #063385 / 出願 #333 / 試験日 #e96e00 / 発表 #1d50a2
   ============================================================ */

.schedule-x {
  --sx-brand: #063385;
  --sx-apply: #3a3a3a;
  --sx-exam: #e96e00;
  --sx-result: #1d50a2;
  --sx-cream: #fef8dd;
  --sx-line: #c9d6ea;
  font-family: 'Noto Sans JP', sans-serif;
}

/* ---------- 試験日早見バー（PCのみ） ---------- */
.schedule-x__glance { display: none; }

/* ---------- タイムライン ---------- */
.schedule-x__list {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 24px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.schedule-x__item {
  position: relative;
  display: grid;
  grid-template-columns: 64px 1fr;
  gap: 0 12px;
}

/* 縦のレール */
.schedule-x__item:before {
  content: "";
  position: absolute;
  left: 31px;
  top: 0;
  bottom: -24px;
  width: 2px;
  background: var(--sx-line);
}
.schedule-x__item:last-child:before { bottom: 0; height: 18px; }

/* 月ノード */
.schedule-x__month {
  position: relative;
  z-index: 1;
  align-self: start;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: var(--sx-brand);
  color: #fff;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  line-height: 1.1;
  box-shadow: 0 0 0 4px #ebf4fb;
}
.schedule-x__month .y {
  font-size: 10px;
  letter-spacing: .05em;
  opacity: .75;
}
.schedule-x__month .m {
  font-family: Outfit, sans-serif;
  font-weight: 700;
  font-size: 22px;
}
.schedule-x__month .m small {
  font-size: 11px;
  font-weight: 700;
  margin-left: 1px;
}
/* ---------- カード ---------- */
.schedule-x__card {
  background: #fff;
  border-radius: 14px;
  box-shadow: 0 3px 14px rgba(6, 51, 133, .08);
  overflow: hidden;
  min-width: 0; /* グリッド内で内容幅より縮められるように */
}

/* カード見出し（区分・募集人員） */
.schedule-x__card-head {
  background: var(--sx-cream);
  padding: 14px 18px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.schedule-x__exam {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 10px;
  min-width: 0;
}
.schedule-x__exam-name { min-width: 0; }
.schedule-x__exam + .schedule-x__exam {
  border-top: 1px dashed #e3d9ae;
  padding-top: 10px;
}
.schedule-x__exam-name {
  font-size: 17px;
  font-weight: 700;
  color: #222;
  letter-spacing: .03em;
  line-height: 1.35;
}
.schedule-x__exam-name small {
  display: block;
  font-size: 12px;
  font-weight: 500;
  color: #555;
}
.schedule-x__capacity {
  margin-left: auto;
  font-size: 12px;
  color: #444;
  background: #fff;
  border: 1px solid #e0d8b0;
  border-radius: 999px;
  padding: 3px 12px;
  white-space: nowrap;
}
.schedule-x__capacity b {
  font-size: 14px;
  color: #111;
  margin-left: 4px;
}

/* 併願可・専願S対象チップ */
.schedule-x__chips {
  display: flex;
  gap: 6px;
  flex-shrink: 0;
}
.schedule-x__chip {
  font-size: 11px;
  font-weight: 700;
  line-height: 1;
  padding: 4px 8px;
  border-radius: 4px;
  background: #fff;
  white-space: nowrap;
}
.schedule-x__chip--heigan { color: #e60012; border: 1px solid #e60012; }
.schedule-x__chip--sengan { color: var(--sx-result); border: 1px solid var(--sx-result); }

/* ---------- 出願 → 試験 → 発表 の3ステップ ---------- */
.schedule-x__flow {
  display: flex;
  flex-direction: column;
  padding: 16px 18px 18px;
  gap: 18px;
}
.schedule-x__step {
  position: relative;
  border-radius: 10px;
  border: 1px solid #eee;
  display: flex;
  flex-direction: column;
}
.schedule-x__step-label { border-radius: 9px 9px 0 0; }
.schedule-x__step-body { border-radius: 0 0 9px 9px; }
/* SP: 下向き矢印でつなぐ */
.schedule-x__step:not(:last-child):after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -14px;
  transform: translateX(-50%);
  border: 7px solid transparent;
  border-top-color: #b8c6dd;
  border-bottom: none;
  z-index: 1;
}
.schedule-x__step-label {
  font-size: 13px;
  font-weight: 700;
  color: #fff;
  text-align: center;
  letter-spacing: .12em;
  padding: 6px 4px;
}
.schedule-x__step--apply  .schedule-x__step-label { background: var(--sx-apply); }
.schedule-x__step--exam   .schedule-x__step-label { background: var(--sx-exam); }
.schedule-x__step--result .schedule-x__step-label { background: var(--sx-result); }

.schedule-x__step-body {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  padding: 12px 10px 14px;
  text-align: center;
}
.schedule-x__step--apply  .schedule-x__step-body { background: #f5f5f5; }
.schedule-x__step--exam   .schedule-x__step-body { background: #fdf1e5; }
.schedule-x__step--result .schedule-x__step-body { background: #eaf2fb; }

.schedule-x__date {
  font-size: 15px;
  font-weight: 500;
  color: #222;
  line-height: 1.4;
}
.schedule-x__date b {
  font-family: Outfit, 'Noto Sans JP', sans-serif;
  font-size: 24px;
  font-weight: 700;
  letter-spacing: .02em;
}
.schedule-x__date small {
  font-size: 12px;
  font-weight: 500;
  color: #555;
  margin: 0 1px;
}
.schedule-x__step--exam .schedule-x__date b { color: var(--sx-exam); }
.schedule-x__step--result .schedule-x__date b { color: var(--sx-result); }

.schedule-x__step-note {
  font-size: 12px;
  color: #555;
}
.schedule-x__step-note--chip {
  background: #fff;
  border: 1px solid #ccc;
  border-radius: 999px;
  padding: 2px 12px;
  font-weight: 700;
  color: #333;
}
.schedule-x__step-note--em {
  font-weight: 700;
  font-size: 13px;
  color: #fff;
  background: var(--sx-exam);
  border-radius: 999px;
  padding: 4px 16px;
  letter-spacing: .05em;
  box-shadow: 0 1px 4px rgba(233, 110, 0, .35);
}

/* ============================================================
   PC（769px〜）
   ============================================================ */
@media (min-width: 769px) {

  /* ---- 試験日早見バー ---- */
  .schedule-x__glance {
    display: block;
    background: #fff;
    border-radius: 14px;
    box-shadow: 0 3px 14px rgba(6, 51, 133, .08);
    padding: 24px 32px 14px;
    margin-bottom: 56px;
  }
  .schedule-x__glance-ttl {
    font-size: 14px;
    font-weight: 700;
    color: var(--sx-brand);
    letter-spacing: .1em;
    margin-bottom: 18px;
  }
  .schedule-x__glance-ttl:before {
    content: "";
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--sx-exam);
    margin-right: 8px;
  }
  .schedule-x__glance-months {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
  }
  .schedule-x__glance-months span {
    font-size: 12px;
    font-weight: 700;
    color: #6b7d99;
    border-left: 1px solid var(--sx-line);
    padding: 0 0 10px 8px;
  }
  .schedule-x__glance-track {
    position: relative;
    height: 78px;
    background:
      repeating-linear-gradient(
        to right,
        var(--sx-line) 0, var(--sx-line) 1px,
        transparent 1px, transparent calc(100% / 6)
      );
  }
  .schedule-x__glance-track:before {
    content: "";
    position: absolute;
    top: 14px;
    left: 0;
    right: 0;
    height: 2px;
    background: var(--sx-line);
  }
  .schedule-x__glance-dot {
    position: absolute;
    top: 15px;
    transform: translate(-50%, -50%);
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: var(--sx-exam);
    box-shadow: 0 0 0 3px #fdf1e5;
  }
  .schedule-x__glance-dot i {
    position: absolute;
    top: 16px;
    left: 50%;
    transform: translateX(-50%);
    font-style: normal;
    font-family: Outfit, 'Noto Sans JP', sans-serif;
    font-weight: 700;
    font-size: 15px;
    color: var(--sx-exam);
    white-space: nowrap;
  }
  .schedule-x__glance-dot em {
    position: absolute;
    top: 38px;
    left: 50%;
    transform: translateX(-50%);
    font-style: normal;
    font-size: 11px;
    color: #444;
    white-space: nowrap;
  }
  /* 隣接ドットとラベルが重なる場合は2段目に逃がす */
  .schedule-x__glance-dot--alt em { top: 56px; }

  /* ---- タイムライン ---- */
  .schedule-x__list { gap: 30px; }
  .schedule-x__item {
    grid-template-columns: 92px 1fr;
    gap: 0 22px;
  }
  .schedule-x__item:before { left: 45px; bottom: -30px; }
  .schedule-x__month {
    width: 92px;
    height: 92px;
    box-shadow: 0 0 0 6px #ebf4fb;
  }
  .schedule-x__month .y { font-size: 12px; }
  .schedule-x__month .m { font-size: 34px; }
  .schedule-x__month .m small { font-size: 14px; }

  /* ---- カード ---- */
  .schedule-x__card {
    display: grid;
    grid-template-columns: 320px 1fr;
  }
  .schedule-x__card-head {
    padding: 20px 24px;
    justify-content: center;
    border-right: 1px solid #f0e9c8;
  }
  .schedule-x__exam-name { font-size: 18px; }

  /* ---- 3ステップを横並びに ---- */
  .schedule-x__flow {
    flex-direction: row;
    align-items: stretch;
    gap: 26px;
    padding: 20px 26px;
  }
  .schedule-x__step { flex: 1; }
  /* PC: 右向き矢印でつなぐ */
  .schedule-x__step:not(:last-child):after {
    left: auto;
    right: -20px;
    top: 50%;
    bottom: auto;
    transform: translateY(-50%);
    border: 8px solid transparent;
    border-left-color: #b8c6dd;
    border-right: none;
  }
  .schedule-x__step-body { padding: 14px 10px 16px; }
  .schedule-x__date b { font-size: 27px; }

}
