/* 人材紹介事業ページ: 書類・手続きの世界に合わせた、実務的で落ち着いた見せ方
   紺 #173a62 / オレンジ #d9670f は既存のまま。見出しだけ明朝系にして「書面」の信頼感を出す */
body.recruit h1,
body.recruit main h2,
body.recruit .hero-slider .slide-inner h2{
    font-family: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", serif;
    font-weight: 700;
    letter-spacing: 0.02em;
}

/* トップ: 見出しを左の欄に、内容を右の欄に置く2カラムの編集レイアウト */
body.recruit main > section.rc-sec.rc-sec.rc-sec{
    display: grid;
    grid-template-columns: minmax(10rem, 15rem) minmax(0, 1fr);
    column-gap: 3.5rem;
    max-width: var(--container-max);
    margin: 0 auto;
    padding: 3.5rem var(--container-padding-x);
    background: transparent;
    border: 0;
    border-top: 1px solid #cfd8e3;
    border-radius: 0;
    box-shadow: none;
    box-sizing: border-box;
    text-align: left;
}
body.recruit main > section.rc-sec.rc-sec.rc-sec > h2{
    grid-column: 1;
    margin: 0;
    padding: 0;
    text-align: left;
    font-size: 1.55rem;
    line-height: 1.5;
    color: #173a62;
    align-self: start;
}
body.recruit main > section.rc-sec.rc-sec.rc-sec > *:not(h2){ grid-column: 2; }

/* 企業様のメリット: 表のように読む定義リスト */
.rc-ledger{ margin: 0; }
.rc-ledger-row{ display: grid; grid-template-columns: 11rem minmax(0, 1fr); gap: 0 2rem; padding: 1.1rem 0; border-bottom: 1px solid #dbe3ec; }
.rc-ledger-row:first-child{ padding-top: 0; }
.rc-ledger dt{ font-family: "Noto Serif JP", serif; font-weight: 700; color: #173a62; line-height: 1.7; }
.rc-ledger dd{ margin: 0; color: #33455c; line-height: 1.9; }

/* 採用の流れ: 工程ごとに担当の会社を明記する進行表 */
.rc-route-lead{ margin: 0 0 1.6rem; color: #33455c; line-height: 1.9; }
.rc-steps{ list-style: none; margin: 0; padding: 0; counter-reset: rc; border-left: 2px solid #173a62; }
.rc-step{
    counter-increment: rc;
    display: grid;
    grid-template-columns: 2rem 10rem minmax(0, 1fr) auto;
    gap: 0 1rem;
    align-items: baseline;
    padding: 1rem 0 1rem 1.2rem;
    border-bottom: 1px solid #dbe3ec;
}
.rc-step::before{ content: counter(rc); font-family: "Noto Serif JP", serif; font-weight: 700; font-size: 1.3rem; color: #173a62; }
.rc-step-name{ font-family: "Noto Serif JP", serif; font-weight: 700; color: #173a62; }
.rc-step-body{ color: #33455c; line-height: 1.8; }
.rc-step-who{ font-size: 0.82rem; font-weight: 700; padding: 0.25rem 0.7rem; border: 1.5px solid; white-space: nowrap; }
.rc-who-lead{ color: #173a62; border-color: #173a62; }
.rc-who-gyosei{ color: #fff; background: #d9670f; border-color: #d9670f; }
.rc-who-both{ color: #173a62; border-color: #d9670f; }
.rc-route-more{ margin: 1.2rem 0 0; font-size: 0.92rem; }

/* お客様の声: 引用そのものを主役にする */
.rc-voice-list{ display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem 3rem; margin: 0; }
.rc-voice{ margin: 0; padding-left: 1.2rem; border-left: 3px solid #d9670f; }
.rc-voice blockquote{ margin: 0 0 0.6rem; font-family: "Noto Serif JP", serif; font-weight: 600; font-size: 1.12rem; line-height: 1.9; color: #173a62; }
.rc-voice figcaption{ font-size: 0.85rem; color: #6b7d92; }
.rc-voice-more{ margin: 1.6rem 0 0; font-size: 0.92rem; }

@media (max-width: 900px){
    body.recruit main > section.rc-sec.rc-sec.rc-sec{ grid-template-columns: 1fr; padding: 2.5rem var(--container-padding-x); }
    body.recruit main > section.rc-sec.rc-sec.rc-sec > h2{ margin-bottom: 1.2rem; }
    body.recruit main > section.rc-sec.rc-sec.rc-sec > *:not(h2){ grid-column: 1; }
    .rc-ledger-row{ grid-template-columns: 1fr; gap: 0.2rem; }
    .rc-step{ grid-template-columns: 1.6rem minmax(0, 1fr); gap: 0.2rem 0.8rem; }
    .rc-step-body, .rc-step-who{ grid-column: 2; justify-self: start; }
    .rc-voice-list{ grid-template-columns: 1fr; }
}

/* 役割・日本語学習支援の見出しも左そろえにして、他の節とそろえる */
body.recruit.home main > section.group-roles > h2,
body.recruit.home main > section.jp-support > h2{
    text-align: left;
    font-size: 1.55rem;
    color: #173a62;
    padding: 0;
    max-width: var(--container-max);
    margin: 0 auto 1.4rem;
    padding-left: var(--container-padding-x);
    padding-right: var(--container-padding-x);
    box-sizing: border-box;
}

/* ---- サブページ共通の部品（特定技能ページなど） ---- */
.rc-lead{ margin: 0 0 1.4rem; line-height: 1.95; color: #33455c; max-width: 42rem; }
.rc-note{ margin: 1.4rem 0 0; font-size: 0.92rem; line-height: 1.9; color: #5a6b80; max-width: 44rem; }
body.recruit main > section.rc-sec h3{ margin: 1.8rem 0 0.7rem; font-family: "Noto Serif JP", serif; font-size: 1.05rem; font-weight: 700; color: #173a62; text-align: left; }
body.recruit main > section.rc-sec h3:first-of-type{ margin-top: 0; }

.rc-facts{ margin: 0; }
.rc-fact{ display: grid; grid-template-columns: 8rem minmax(0, 1fr); gap: 0 1.5rem; padding: 1rem 0; border-bottom: 1px solid #dbe3ec; }
.rc-fact:first-child{ border-top: 1px solid #dbe3ec; }
.rc-fact dt{ font-family: "Noto Serif JP", serif; font-weight: 700; color: #173a62; }
.rc-fact dd{ margin: 0; line-height: 1.9; color: #33455c; }

.rc-chips{ list-style: none; margin: 0 0 0.4rem; padding: 0; display: flex; flex-wrap: wrap; gap: 0.5rem; }
.rc-chips li{ margin: 0; padding: 0.45rem 0.95rem; border: 1px solid #c3cddb; color: #6b7d92; background: transparent; font-size: 0.95rem; }
.rc-chips.rc-chips--on li{ border-color: #173a62; color: #173a62; font-weight: 700; background: #fff; }

.rc-callout{ margin: 0 0 1.4rem; padding: 1rem 1.2rem; background: #fff; border-left: 4px solid #d9670f; line-height: 1.9; color: #33455c; max-width: 44rem; }
.rc-callout strong{ display: block; margin-bottom: 0.3rem; font-family: "Noto Serif JP", serif; color: #173a62; }

.rc-pair{ display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 2.5rem; margin-bottom: 0.4rem; }
.rc-pair p{ margin: 0 0 0.5rem; line-height: 1.9; color: #33455c; }
.rc-eg{ font-size: 0.9rem; color: #5a6b80; }

.rc-checks{ list-style: none; margin: 0 0 0.4rem; padding: 0; }
.rc-checks li{ position: relative; margin: 0 0 0.6rem; padding-left: 1.5rem; line-height: 1.85; color: #33455c; }
.rc-checks li::before{ content: ""; position: absolute; left: 0; top: 0.55em; width: 0.7rem; height: 0.7rem; border: 2px solid #173a62; }

.rc-table{ width: 100%; border-collapse: collapse; background: transparent; box-shadow: none; }
.rc-table th, .rc-table td{ padding: 0.8rem 0.9rem; text-align: left; border-bottom: 1px solid #dbe3ec; line-height: 1.7; vertical-align: top; background: transparent; color: #33455c; }
.rc-table thead th{ border-bottom: 2px solid #173a62; font-family: "Noto Serif JP", serif; color: #173a62; }
.rc-table tbody th{ width: 9rem; font-weight: 700; color: #173a62; }

@media (max-width: 900px){
    .rc-fact{ grid-template-columns: 1fr; gap: 0.2rem; }
    .rc-pair{ grid-template-columns: 1fr; }
    .rc-table tbody th{ width: auto; }
}

/* 画面幅 100vw の指定が縦スクロールバー分はみ出し、横スクロールが出ていたため */
body.recruit .hero-section{ width: 100%; margin-left: 0; margin-right: 0; }

/* サポート範囲の表: 担当会社名が折り返さない幅にする */
.rc-table--who td:nth-child(2){ white-space: nowrap; }
@media (max-width: 900px){
    .rc-table--who td:nth-child(2){ white-space: normal; }
}

/* ---- サービス内容: 詳細ページへの入口 ---- */
.rc-linkrows{ list-style: none; margin: 0; padding: 0; border-top: 2px solid #173a62; }
.rc-linkrows li{ border-bottom: 1px solid #dbe3ec; }
.rc-linkrows a{ display: grid; grid-template-columns: 9rem minmax(0, 1fr) auto; gap: 0 1.5rem; align-items: baseline; padding: 1.2rem 0; text-decoration: none; color: inherit; }
.rc-linkrow-name{ font-family: "Noto Serif JP", serif; font-weight: 700; font-size: 1.15rem; color: #173a62; }
.rc-linkrow-text{ line-height: 1.8; color: #33455c; }
.rc-linkrow-go{ font-size: 0.9rem; font-weight: 700; color: #d9670f; white-space: nowrap; border-bottom: 1.5px solid currentColor; }
.rc-linkrows a:hover .rc-linkrow-name, .rc-linkrows a:focus-visible .rc-linkrow-name{ color: #d9670f; }
.rc-linkrows a:focus-visible{ outline: 3px solid #0a5fa5; outline-offset: 2px; }

/* ---- 紹介の流れ: 工程が長い版 ---- */
.rc-steps--wide .rc-step{ grid-template-columns: 2rem 12rem minmax(0, 1fr) 10.5rem; align-items: start; }
.rc-steps--wide .rc-step-who{ justify-self: start; text-align: center; white-space: normal; }
.rc-step-body small{ display: block; margin-top: 0.3rem; font-size: 0.88rem; color: #6b7d92; }
.rc-who-co{ color: #5a6b80; border-color: #a7b4c4; }
.rc-who-both{ color: #173a62; border-color: #d9670f; }

/* ---- よくあるご質問 ---- */
.rc-faq h3{ margin: 2.2rem 0 0.4rem; }
.rc-qa{ border-bottom: 1px solid #dbe3ec; }
.rc-faq h3 + .rc-qa{ border-top: 1px solid #dbe3ec; }
.rc-qa summary{ position: relative; list-style: none; cursor: pointer; padding: 1rem 2.4rem 1rem 0; font-family: "Noto Serif JP", serif; font-weight: 700; line-height: 1.7; color: #173a62; }
.rc-qa summary::-webkit-details-marker{ display: none; }
.rc-qa summary::after{ content: "+"; position: absolute; right: 0.4rem; top: 0.85rem; font-family: "Noto Sans JP", sans-serif; font-size: 1.4rem; line-height: 1.2; color: #d9670f; }
.rc-qa[open] summary::after{ content: "−"; }
.rc-qa summary:focus-visible{ outline: 3px solid #0a5fa5; outline-offset: 2px; }
.rc-qa-a{ padding: 0 2.4rem 1.2rem 0; line-height: 1.9; color: #33455c; }
.rc-qa-a p{ margin: 0 0 0.6rem; }
.rc-qa-a ul{ margin: 0.4rem 0 0.4rem 1.1rem; padding: 0; }
.rc-qa-a li{ margin-bottom: 0.4rem; }

/* ---- 実績: 導入事例 ---- */
.rc-case{ margin: 0 0 2.4rem; }
.rc-case-meta{ margin: 0 0 0.2rem; font-size: 0.85rem; color: #6b7d92; }
body.recruit main > section.rc-sec .rc-case h3{ margin: 0 0 0.6rem; font-size: 1.15rem; }
.rc-case .rc-ledger-row{ grid-template-columns: 7rem minmax(0, 1fr); }
.rc-case .rc-ledger-row:first-child{ padding-top: 1.1rem; border-top: 1px solid #dbe3ec; }
.rc-case .rc-result dt{ color: #d9670f; }
.rc-case .rc-result dd{ font-weight: 700; color: #173a62; }
.rc-voice-list--wide{ grid-template-columns: repeat(2, minmax(0, 1fr)); }

@media (max-width: 900px){
    .rc-linkrows a{ grid-template-columns: 1fr; gap: 0.3rem; }
    .rc-steps--wide .rc-step{ grid-template-columns: 1.6rem minmax(0, 1fr); }
    .rc-steps--wide .rc-step-body, .rc-steps--wide .rc-step-who{ grid-column: 2; }
    .rc-case .rc-ledger-row{ grid-template-columns: 1fr; }
}

/* 中くらいの画面幅では、見出しを内容の上に置いて、内容の幅を確保する */
@media (max-width: 1100px){
    body.recruit main > section.rc-sec.rc-sec.rc-sec{ grid-template-columns: 1fr; padding: 2.5rem var(--container-padding-x); }
    body.recruit main > section.rc-sec.rc-sec.rc-sec > h2{ margin-bottom: 1.2rem; }
    body.recruit main > section.rc-sec.rc-sec.rc-sec > *:not(h2){ grid-column: 1; }
}

/* 詳細ページへのボタン風リンク */
.rc-btn{ display: inline-flex; align-items: center; gap: 0.6rem; padding: 0.6rem 1.1rem; border: 1.5px solid #173a62; color: #173a62; font-weight: 700; text-decoration: none; background: #fff; transition: background 0.2s, color 0.2s; }
.rc-btn::after{ content: ""; width: 0.5rem; height: 0.5rem; border-top: 2px solid currentColor; border-right: 2px solid currentColor; transform: rotate(45deg); }
.rc-btn:hover, .rc-btn:focus-visible{ background: #173a62; color: #fff; }

/* 担当会社の見出し */
.rc-company{ margin: 2rem 0 0.6rem; padding-left: 0.8rem; border-left: 4px solid #173a62; font-size: 1.1rem; color: #173a62; }
.rc-company--gyosei{ border-left-color: #d9670f; }
.rc-table--svc tbody th{ width: 12.5rem; }
@media (max-width: 900px){ .rc-table--svc tbody th{ width: auto; } }
