/*
 * 採用（/recruit/）とお役立ち資料（/download/・/download/{slug}/）専用のスタイル。
 * main.css の .lower-page の変数（--lower-ink / --lower-green / --lower-mint / --lower-line）に乗せる。
 * main.css と分けているのは、サービスページ側の改修と衝突させないため。
 * functions.php で上の3種類のページのときだけ読み込む。
 */

/* ---------- 共通：画像の上に文字パネルを重ねるヒーロー ---------- */
.rc-hero,
.dl-hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(440px, 600px);
  min-height: clamp(540px, 46vw, 700px);
  border-bottom: 1px solid var(--lower-line);
  background: var(--lower-mint);
  overflow: hidden;
}
.rc-hero__visual,
.dl-hero__visual {
  grid-column: 1 / -1;
  grid-row: 1;
  margin: 0;
}
.rc-hero__visual img,
.dl-hero__visual img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 22% 50%;
}
.rc-hero__body,
.dl-hero__body {
  position: relative;
  grid-column: 2;
  grid-row: 1;
  align-self: center;
  margin: 4rem max(3.2rem, calc((100vw - 1320px) / 2)) 4rem 0;
  padding: clamp(3.2rem, 3.4vw, 4.8rem);
  border: 1px solid var(--lower-line);
  background: rgba(255, 255, 255, .94);
}
.rc-hero__body h1,
.dl-hero__body h1 {
  margin: 1.4rem 0 2.2rem;
  color: var(--lower-ink);
  font-family: "Zen Kaku Gothic New", "Noto Sans JP", sans-serif;
  font-size: clamp(3rem, 2.9vw, 4.2rem);
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: -.02em;
  line-break: strict;
}
.rc-hero__body p,
.dl-hero__body p {
  margin-top: 1.2rem;
  color: #42534c;
  font-size: 1.5rem;
  line-height: 1.95;
  line-break: strict;
}
.rc-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 1.2rem;
  margin-top: 3rem;
}
.rc-actions .secondary-link { color: var(--lower-ink); background: #fff; }

/* 行末に1〜2文字だけ残る改行を減らす（対応ブラウザのみ。未対応でも表示は崩れない） */
.rc-hero p, .dl-hero p, .rc-message__body p, .rc-event__body > p, .rc-job__table dd, .rc-flow__list p, .rc-steps p, .rc-cta p, .dl-pickup__body > p, .download-single__lead, .dl-toc li { text-wrap: pretty; }

/* ---------- 採用：数字で見る ---------- */
.rc-facts { border-bottom: 1px solid var(--lower-line); background: #fff; }
.rc-facts .content-shell { margin: 0 auto; }
.rc-facts__list {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 0;
  padding: 0;
  list-style: none;
}
.rc-facts__list li {
  display: flex;
  flex-direction: column;
  gap: .6rem;
  padding: 4.4rem 2.4rem;
  border-right: 1px solid var(--lower-line);
}
.rc-facts__list li:first-child { border-left: 1px solid var(--lower-line); }
.rc-facts__list strong {
  color: var(--lower-ink);
  font-family: "Roboto", "Noto Sans JP", sans-serif;
  font-size: clamp(3.4rem, 3.6vw, 4.8rem);
  font-weight: 300;
  line-height: 1.1;
  letter-spacing: -.03em;
}
.rc-facts__list strong small { margin-left: .4rem; font-size: 1.6rem; font-weight: 500; letter-spacing: 0; }
.rc-facts__list span { color: var(--lower-ink); font-size: 1.4rem; font-weight: 700; }
.rc-facts__list em { color: #6a7872; font-size: 1.25rem; font-style: normal; }

/* ---------- 採用：代表メッセージ ---------- */
.rc-message__grid {
  display: grid;
  grid-template-columns: minmax(240px, 380px) minmax(0, 1fr);
  gap: clamp(4rem, 7vw, 9rem);
  align-items: start;
}
.rc-message__photo { margin: 0; }
.rc-message__photo img { display: block; width: 100%; height: auto; }
.rc-message__body h2 {
  margin: 1.2rem 0 3rem;
  color: var(--lower-ink);
  font-size: clamp(2.6rem, 3vw, 3.6rem);
  font-weight: 500;
  line-height: 1.5;
  line-break: strict;
}
.rc-message__body p { margin-top: 1.6rem; color: #35443e; font-size: 1.55rem; line-height: 2; line-break: strict; }
.rc-message__body .rc-message__sign { margin-top: 3.2rem; color: #52605a; font-size: 1.3rem; }
.rc-message__sign strong { display: block; margin-top: .4rem; color: var(--lower-ink); font-size: 2rem; font-weight: 700; letter-spacing: .08em; }

/* ---------- 採用：登壇・受賞 ---------- */
.rc-record__list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  padding: 1px;
  background: var(--lower-line);
}
.rc-event { display: flex; flex-direction: column; background: #fff; }
.rc-event__img { margin: 0; background: var(--lower-ink); }
.rc-event__img img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; object-position: 50% 30%; }
.rc-event__img figcaption { padding: .8rem 1.6rem; color: #6a7872; background: #fff; font-size: 1.1rem; line-height: 1.6; border-bottom: 1px solid var(--lower-line); }
.rc-event__body { display: flex; flex: 1; flex-direction: column; padding: 3.2rem clamp(2.4rem, 3vw, 3.6rem) 3.6rem; }
.rc-event__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 1.2rem; color: var(--lower-green); font-size: 1.25rem; font-weight: 700; letter-spacing: .06em; }
.rc-event__meta time { font-family: "Roboto", sans-serif; font-size: 1.4rem; }
.rc-event__meta span { padding: .3rem 1rem; background: var(--lower-mint); }
.lower-page .rc-event h3 { margin: 1.4rem 0 1.2rem; color: var(--lower-ink); font-size: 1.9rem; font-weight: 700; line-height: 1.6; }
.rc-event__body > p { color: #42534c; font-size: 1.45rem; line-height: 1.9; }
.rc-event__links { display: flex; flex-wrap: wrap; gap: .8rem 2rem; margin: auto 0 0; padding: 2rem 0 0; list-style: none; }
.rc-event__links a { color: var(--lower-green); font-size: 1.35rem; font-weight: 700; border-bottom: 1px solid currentColor; }
.rc-record__more { max-width: 900px; margin-top: 6rem; }
.lower-page .rc-record__more h3,
.lower-page .rc-examples h3 { margin-bottom: 1.6rem; color: var(--lower-ink); font-size: 1.9rem; font-weight: 700; }
.rc-record__more .check-list,
.rc-examples ul { border-color: var(--lower-line); }
.rc-record__more .check-list li { border-color: var(--lower-line); }

/* ---------- 採用：一緒にやること ---------- */
.rc-steps {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  margin: 0;
  padding: 1px;
  list-style: none;
  background: var(--lower-line);
}
.rc-steps li { display: flex; flex-direction: column; gap: 1rem; padding: 3.2rem 2.6rem 3.6rem; background: #fff; }
.rc-steps__num { color: var(--lower-green); font-family: "Roboto", sans-serif; font-size: 1.3rem; font-weight: 700; letter-spacing: .12em; }
.rc-steps strong { color: var(--lower-ink); font-size: 2.4rem; font-weight: 500; }
.rc-steps p { color: #42534c; font-size: 1.45rem; line-height: 1.85; }
.rc-examples { margin-top: 7rem; }
.rc-note { margin-bottom: 2rem; color: #6a7872; font-size: 1.3rem; }
.rc-examples ul {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 4rem;
  margin: 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--lower-line);
}
.rc-examples li { display: flex; gap: 1.6rem; align-items: baseline; padding: 1.8rem 0; border-bottom: 1px solid var(--lower-line); color: #35443e; font-size: 1.45rem; line-height: 1.8; }
.rc-examples li span { flex: none; min-width: 8.5em; color: var(--lower-green); font-size: 1.25rem; font-weight: 700; }

/* ---------- 採用：募集要項 ---------- */
.rc-job__table { margin: 0; border-top: 1px solid var(--lower-ink); }
.rc-job__table > div { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 3rem; padding: 2.6rem 0; border-bottom: 1px solid var(--lower-line); }
.rc-job__table dt { color: var(--lower-ink); font-size: 1.45rem; font-weight: 700; }
.rc-job__table dd { margin: 0; color: #35443e; font-size: 1.5rem; line-height: 1.9; line-break: strict; }
.rc-job__status { display: flex; flex-wrap: wrap; gap: .8rem 2rem; align-items: baseline; margin-top: 3.2rem; padding: 2.4rem 2.8rem; background: var(--lower-mint); color: var(--lower-ink); font-size: 1.45rem; line-height: 1.8; }
.rc-job__status span { color: var(--lower-green); font-size: 1.25rem; font-weight: 700; letter-spacing: .08em; }

/* ---------- 採用：参加までの流れ ---------- */
.rc-flow__list {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 2.4rem;
  margin: 0;
  padding: 0;
  list-style: none;
  counter-reset: none;
}
.rc-flow__list li { position: relative; padding: 3rem 2.6rem; border-top: 3px solid var(--lower-green); background: #fff; box-shadow: inset 0 0 0 1px var(--lower-line); }
.rc-flow__list li:not(:last-child)::after {
  position: absolute;
  top: 50%;
  right: -1.9rem;
  z-index: 1;
  width: 1.4rem;
  height: 1.4rem;
  border-top: 2px solid var(--lower-green);
  border-right: 2px solid var(--lower-green);
  transform: translateY(-50%) rotate(45deg);
  content: "";
}
.lower-page .rc-flow__list h3 { margin: 1rem 0 1.2rem; color: var(--lower-ink); font-size: 2rem; font-weight: 700; }
.rc-flow__list p { color: #42534c; font-size: 1.4rem; line-height: 1.85; }

/* ---------- 採用：最後の導線 ---------- */
.rc-cta { padding: clamp(8rem, 10vw, 12rem) 0; color: #fff; background: var(--lower-ink); }
.rc-cta .content-shell { max-width: 900px; margin: 0 auto; }
.rc-cta .section-kicker { color: #9fd9bf; }
.rc-cta h2 { margin: 1.4rem 0 2rem; color: #fff; font-size: clamp(2.8rem, 3.4vw, 4.2rem); font-weight: 500; line-height: 1.45; }
.rc-cta p { color: rgba(255, 255, 255, .82); font-size: 1.5rem; line-height: 1.95; }
.lower-page .rc-cta .primary-link { color: var(--lower-ink); background: #fff; }
.lower-page .rc-cta .primary-link:hover { color: #fff; background: var(--lower-green); }
.lower-page .rc-cta .secondary-link { color: #fff; border-color: rgba(255, 255, 255, .6); background: transparent; }

/* ---------- 資料：一覧 ---------- */
.download-page .soft-cta h2,
.download-single .soft-cta h2 { text-wrap: balance; }
.dl-hero__visual img { object-position: 0% 50%; }
.lower-page .dl-hero .download-nav { justify-content: flex-start; margin: 3rem 0 0; }
.lower-page .download-nav a { display: inline-flex; align-items: baseline; gap: .8rem; color: var(--lower-ink); }
.download-nav small { color: var(--lower-green); font-size: 1.2rem; }
.dl-pickup__grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: clamp(4rem, 6vw, 8rem); align-items: center; }
.dl-pickup__cover { display: block; border: 1px solid var(--lower-line); }
.dl-pickup__cover img { display: block; width: 100%; height: auto; }
.lower-page .dl-pickup h2 { margin: 1.2rem 0 1.8rem; font-size: clamp(2.6rem, 3vw, 3.6rem); line-height: 1.45; }
.lower-page .dl-pickup h2 a { color: var(--lower-ink); }
.dl-pickup__body > p { color: #42534c; font-size: 1.5rem; line-height: 1.95; }
.dl-pickup .check-list { margin: 2.4rem 0 3.2rem; border-color: var(--lower-line); }
.dl-pickup .check-list li { padding-top: 1.2rem; padding-bottom: 1.2rem; border-color: var(--lower-line); font-size: 1.4rem; }
.lower-page .download-card__cover { aspect-ratio: 16 / 9; border: 1px solid var(--lower-line); background: #fff; }
.download-card:hover .download-card__cover img { transform: scale(1.02); }
.download-card__cover img { transition: transform .35s ease; }
.lower-page .download-card__title { margin-top: .6rem; color: var(--lower-ink); font-size: 1.8rem; font-weight: 700; line-height: 1.55; }
.download-empty p { margin: 1.2rem 0 0; }

/* ---------- 資料：個別ページ ---------- */
.dl-crumb { margin-bottom: 3.2rem; }
.dl-crumb ol { display: flex; flex-wrap: wrap; gap: .6rem 1.2rem; margin: 0; padding: 0; list-style: none; color: #6a7872; font-size: 1.2rem; }
.dl-crumb li:not(:last-child)::after { margin-left: 1.2rem; content: "/"; }
.dl-crumb a { color: var(--lower-green); }
.download-single .section { padding-top: clamp(4rem, 6vw, 7rem); }
.lower-page.download-single h1 { margin: 1.2rem 0 2rem; color: var(--lower-ink); font-size: clamp(2.8rem, 3.4vw, 4rem); font-weight: 700; line-height: 1.45; }
.dl-spec { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; margin: 3rem 0 0; padding: 1px; background: var(--lower-line); }
.dl-spec > div { padding: 1.6rem 2rem; background: #fff; }
.dl-spec > div:first-child { grid-column: 1 / -1; }
.dl-spec dt { color: var(--lower-green); font-size: 1.2rem; font-weight: 700; letter-spacing: .06em; }
.dl-spec dd { margin: .4rem 0 0; color: var(--lower-ink); font-size: 1.45rem; line-height: 1.7; }
.download-single__cover { border: 1px solid var(--lower-line); }
.dl-toc { margin-top: 5rem; }
.lower-page .dl-toc h2 { margin-bottom: 2rem; font-size: 2.2rem; }
.dl-toc ol { margin: 0; padding: 0; list-style: none; counter-reset: toc; border-top: 1px solid var(--lower-line); }
.dl-toc li { position: relative; padding: 1.8rem 0 1.8rem 5rem; border-bottom: 1px solid var(--lower-line); color: #35443e; font-size: 1.5rem; line-height: 1.75; counter-increment: toc; }
.dl-toc li::before { position: absolute; top: 1.8rem; left: 0; color: var(--lower-green); font-family: "Roboto", sans-serif; font-size: 1.5rem; font-weight: 700; content: counter(toc, decimal-leading-zero); }
.lower-page .download-form { border-top-color: var(--lower-green); background: var(--lower-mint); }
.lower-page .download-form h2 { margin: 0 0 1rem; color: var(--lower-ink); font-size: 2.2rem; font-weight: 700; line-height: 1.5; }
.lower-page .download-form h2::before { display: none; }
.download-form .mm-form__required,
.download-form .mm-form__optional { display: inline-block; margin-left: .8rem; padding: .1rem .7rem; font-size: 1.1rem; font-weight: 700; line-height: 1.6; vertical-align: .1em; }
.download-form .mm-form__required { color: #fff; background: var(--lower-green); }
.download-form .mm-form__optional { color: #52605a; background: #fff; border: 1px solid var(--lower-line); }
.download-form .mm-form input[type="text"],
.download-form .mm-form input[type="email"] { margin-top: .6rem; }
.download-form .mm-form input[type="submit"] { width: 100%; }
.download-form .mm-form__field { margin-bottom: 1.4rem; }
.download-form .mm-form label { font-size: 1.35rem; }
.download-form .mm-form__acceptance { font-size: 1.25rem; }
.download-form .wpcf7-response-output { font-size: 1.3rem; line-height: 1.7; }
.dl-ready { margin-top: 1.6rem; }
.dl-jump { display: none; }
#dl-form { scroll-margin-top: 90px; }
.dl-ready .primary-link { width: 100%; }
.dl-related .download-grid { margin-bottom: 1rem; }

/* ---------- サービスページ末尾の関連資料（inc/aio.php） ---------- */
.mm-related-dl { padding: clamp(7rem, 9vw, 11rem) max(3.2rem, calc((100% - 1200px) / 2)); border-top: 1px solid rgba(19,36,30,.2); background: #e6f4ed; }
.mm-related-dl__inner { max-width: 1200px; margin: 0 auto; }
.mm-related-dl .section-kicker { color: #087f57; }
.mm-related-dl h2 { margin: 1.2rem 0 1.2rem; color: #13241e; font-size: clamp(2.4rem, 2.8vw, 3.4rem); font-weight: 500; line-height: 1.45; }
.mm-related-dl > .mm-related-dl__inner > p { margin-bottom: 3.6rem; color: #52605a; font-size: 1.45rem; }
.mm-related-dl .download-card__cover { aspect-ratio: 16 / 9; border: 1px solid rgba(19,36,30,.2); background: #fff; box-shadow: none; }
.mm-related-dl .download-card__title { margin-top: .6rem; color: #13241e; font-size: 1.7rem; font-weight: 700; line-height: 1.55; }
.mm-related-dl .quiet-link { margin-top: 3.2rem; color: #087f57; }

/* ---------- レスポンシブ ---------- */
@media (max-width: 1080px) {
  .rc-steps,
  .rc-flow__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rc-flow__list li:not(:last-child)::after { display: none; }
  .rc-facts__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rc-facts__list li:nth-child(3) { border-left: 1px solid var(--lower-line); }
  .rc-facts__list li:nth-child(-n+2) { border-bottom: 1px solid var(--lower-line); }
}
@media (max-width: 900px) {
  .rc-hero,
  .dl-hero { display: block; min-height: 0; }
  .rc-hero__visual img,
  .dl-hero__visual img { height: auto; aspect-ratio: 16 / 9; }
  .rc-hero__body,
  .dl-hero__body { margin: 0; padding: 4rem 2.4rem 5rem; border: 0; background: #fff; }
  .rc-message__grid,
  .dl-pickup__grid { grid-template-columns: 1fr; }
  .rc-message__photo { max-width: 320px; }
  .rc-record__list { grid-template-columns: 1fr; }
  .rc-examples ul { grid-template-columns: 1fr; }
  .rc-job__table > div { grid-template-columns: 1fr; gap: .8rem; padding: 2rem 0; }
  .lower-page .dl-jump { display: inline-flex; width: 100%; margin-top: 2.4rem; }
}
@media (max-width: 600px) {
  .rc-hero__body h1,
  .dl-hero__body h1 { font-size: 2.6rem; text-wrap: balance; }
  .rc-steps,
  .rc-flow__list { grid-template-columns: 1fr; }
  .rc-facts__list li { padding: 2.8rem 1.6rem; }
  .rc-examples li { flex-direction: column; gap: .4rem; }
  .rc-actions a { width: 100%; }
  .dl-spec { grid-template-columns: 1fr; }
}
