/*
Theme Name: GENSEN child
Theme URI:
Description: 株式会社ノア・ビルサービス求人サイト用
Template: gensen_tcd050
Author: noa-bs
Author URI: https://noa-bs.co.jp/
Version: 3.20.0
*/

/* ===========================================================
   noa-Job カスタムCSS（v3.1 — 雑誌的エディトリアル）

   ・全体白背景
   ・青はCTA（応募ボタンと連絡先）でのみ使用
   ・先輩スタッフの声はクリーム背景
   =========================================================== */

:root {
    --noa-bg:        #ffffff;   /* 全体は白 */
    --noa-bg-card:   #ffffff;
    --noa-bg-soft:   #f0e9d9;   /* 先輩スタッフの声などの強調背景 */
    --noa-text:      #1a1a1a;
    --noa-text-2:    #2a2a2a;
    --noa-muted:     #7a7065;
    --noa-muted-2:   #a8a092;
    --noa-line:      #d9cdb5;
    --noa-line-soft: #ebe2cf;
    --noa-ink:       #1a1a1a;   /* H2やラベル等の暗めアクセント */
    --noa-num:       #c4b89c;   /* 章番号や引用符の薄いベージュ */
    --noa-dark:      #14110d;

    /* 青はCTAのみで使用 */
    --noa-cta:       #1e3a8a;   /* 紺青：連絡先テキスト */
    --noa-cta-blue:  #2563eb;   /* 鮮青：ボタン */
    --noa-cta-blue-d:#1d4ed8;   /* ホバー */

    --noa-serif: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", "Hiragino Mincho Pro", "Noto Serif JP", "MS PMincho", "MS Mincho", serif;
    --noa-sans:  -apple-system, "Helvetica Neue", "Hiragino Sans", "Yu Gothic UI", "Meiryo", sans-serif;
}

/* ============================================================
   全体背景を白に
   ============================================================ */
body:is(.single-job, .single-introduce, .post-type-archive-job, .post-type-archive-introduce, .tax-introduce_cat, .tax-work_location, .tax-employment_type) {
    background: #ffffff !important;
}

/* ============================================================
   ベース
   ============================================================ */
:is(.single-job, .single-introduce) .post_content,
:is(.post-type-archive-job, .post-type-archive-introduce, .tax-introduce_cat, .tax-work_location, .tax-employment_type) .post_content {
    font-family: var(--noa-serif);
    line-height: 2;
    color: var(--noa-text);
    font-feature-settings: "palt";
    letter-spacing: 0.04em;
    counter-reset: section-counter;
}

/* ------------------------------------------------------------
   H2見出し — 4em右にずらし、上下に余白、下線付き
   ------------------------------------------------------------ */
:is(.single-job, .single-introduce) .post_content h2 {
    display: block;
    counter-increment: section-counter;
    clear: both;        /* float された写真を回り込まず、新しい行から始める */
    margin: 3.5em 0 1.5em;
    padding: 0 0 0.1em 1em;
    border: none;
    border-bottom: 1px solid var(--noa-line);
    font-family: var(--noa-serif);
    font-size: 2em;
    font-weight: 700;
    letter-spacing: 0.02em;
    color: var(--noa-text);
    line-height: 1.5;
    text-align: left;
    position: relative;
}

/* 章番号「01」をH2の上の左に薄く */
:is(.single-job, .single-introduce) .post_content h2::before {
    content: counter(section-counter, decimal-leading-zero);
    display: block;
    margin-bottom: 0.4em;
    font-family: var(--noa-sans);
    font-size: 0.45em;
    font-weight: 400;
    letter-spacing: 0.4em;
    color: var(--noa-num);
    line-height: 1;
}

/* ------------------------------------------------------------
   1-pre. キャッチコピー — 求人冒頭の太字キャッチ（職種別30個ローテーション）
   ------------------------------------------------------------ */
:is(.single-job, .single-introduce) .post_content .job-catch {
    margin: 1.6em auto 0.2em;
    padding: 0;
    font-family: var(--noa-serif);
    font-size: 1.9em;
    font-weight: 500;
    line-height: 1.5;
    letter-spacing: 0.08em;
    color: var(--noa-text);
    text-align: left;
    max-width: 40em;
    border: 0;
    background: transparent;
}

@media (max-width: 700px) {
    :is(.single-job, .single-introduce) .post_content .job-catch {
        font-size: 1.5em;
        margin: 1.2em auto 0.2em;
        letter-spacing: 0.06em;
    }
}

/* ------------------------------------------------------------
   1. リード文 — 背景なしの白、ドロップキャップ
   ------------------------------------------------------------ */
:is(.single-job, .single-introduce) .post_content .job-lead {
    margin: 3em auto 7em;
    padding: 1em 0 0;
    background: transparent;
    border: none;
    border-radius: 0;
    text-align: left;
    color: var(--noa-text);
    font-family: var(--noa-serif);
    font-size: 1.15em;
    font-weight: 500;
    line-height: 2.3;
    max-width: 40em;
    letter-spacing: 0.05em;
}

:is(.single-job, .single-introduce) .post_content .job-lead::before {
    content: none;
}

:is(.single-job, .single-introduce) .post_content .job-lead::first-letter,
:is(.single-job, .single-introduce) .post_content .job-lead > p:first-of-type::first-letter {
    float: left;
    font-family: var(--noa-serif);
    font-size: 4.4em;
    font-weight: 700;
    line-height: 0.9;
    margin: 0.05em 0.15em -0.1em -0.05em;
    color: var(--noa-text);
    letter-spacing: 0;
}

/* リード文が div になった場合の子 p のリセット (post_content > p 側の margin と衝突するため) */
:is(.single-job, .single-introduce) .post_content .job-lead > p {
    margin: 0.4em 0 1em;
    padding: 0;
    background: transparent;
    line-height: 2.1;
    font-size: inherit;
    font-family: inherit;
    letter-spacing: inherit;
    color: inherit;
}
:is(.single-job, .single-introduce) .post_content .job-lead > p:last-child {
    margin-bottom: 0;
}

/* リード文内のミニ見出し — ハピキタ leadText の【〜】や＜〜＞から生成 */
:is(.single-job, .single-introduce) .post_content .job-lead .job-lead-heading {
    clear: both;   /* ドロップキャップ (float:left) の後でも改行が効くように */
    margin: 2em 0 0.5em;
    padding: 0.15em 0 0.15em 0.9em;
    border-left: 3px solid var(--noa-brand, #1f4f8b);
    font-family: var(--noa-serif);
    font-size: 1.2em;
    font-weight: 700;
    line-height: 1.6;
    letter-spacing: 0.06em;
    color: var(--noa-text);
    background: transparent;
}

/* ------------------------------------------------------------
   2. ミッション・概要パラグラフ
   ------------------------------------------------------------ */
:is(.single-job, .single-introduce) .post_content .mission-text,
:is(.single-job, .single-introduce) .post_content > p {
    margin: 0.8em 0 1.5em;
    padding: 0;
    background: transparent;
    border-radius: 0;
    line-height: 2.1;
    font-size: 1em;
    color: var(--noa-text);
    font-family: var(--noa-serif);
    letter-spacing: 0.05em;
}

/* ------------------------------------------------------------
   3. 1日の流れ — タイムテーブル
   ------------------------------------------------------------ */
:is(.single-job, .single-introduce) .post_content .day-flow {
    list-style: none;
    margin: 1.4em 0 1.8em;
    padding: 0;
    border-top: 1px solid var(--noa-line);
}

:is(.single-job, .single-introduce) .post_content .day-flow li {
    display: flex;
    align-items: baseline;
    gap: 1.5em;
    padding: 1em 0.4em;
    border-bottom: 1px solid var(--noa-line);
    line-height: 1.8;
    font-family: var(--noa-serif);
}

:is(.single-job, .single-introduce) .post_content .day-flow li strong {
    flex: 0 0 5em;
    color: var(--noa-text);
    font-weight: 700;
    font-size: 0.95em;
    letter-spacing: 0.04em;
    font-family: var(--noa-sans);
}

/* ------------------------------------------------------------
   4. こんな方に来てほしい — タグ風セリフボタン
   ------------------------------------------------------------ */
:is(.single-job, .single-introduce) .post_content .ideal-person {
    list-style: none;
    margin: 1.4em 0 1.6em;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0.7em;
}

:is(.single-job, .single-introduce) .post_content .ideal-person li {
    display: inline-block;
    padding: 0.7em 1.4em;
    background: var(--noa-bg-card);
    border: 1px solid var(--noa-line);
    border-radius: 4px;
    line-height: 1.4;
    font-size: 0.95em;
    font-weight: 500;
    font-family: var(--noa-serif);
    color: var(--noa-text);
}

:is(.single-job, .single-introduce) .post_content .ideal-person li::before {
    content: none;
}

:is(.single-job, .single-introduce) .post_content .ideal-summary {
    margin: 1.6em 0 2em;
    padding: 1.2em 0;
    border-top: 1px solid var(--noa-line);
    border-bottom: 1px solid var(--noa-line);
    color: var(--noa-muted);
    font-size: 0.95em;
    font-style: italic;
    font-family: var(--noa-serif);
    line-height: 1.95;
    text-align: left;
    background: transparent;
    border-left: none;
    border-radius: 0;
}

/* ideal-summary 内の改行は不要：1行で表示 */
:is(.single-job, .single-introduce) .post_content .ideal-summary br {
    display: none;
}

/* ------------------------------------------------------------
   5. 先輩スタッフの声 — クリーム背景（#f0e9d9）
   ------------------------------------------------------------ */
:is(.single-job, .single-introduce) .post_content .senior-voice {
    margin: 2em 0;
    padding: 3em 2.5em 2em;
    background: var(--noa-bg-soft);
    border: none;
    border-radius: 0;
    position: relative;
    box-shadow: none;
}

:is(.single-job, .single-introduce) .post_content .senior-voice::before {
    content: "“";
    position: absolute;
    left: 1em;
    top: 0.05em;
    font-size: 5em;
    line-height: 1;
    color: var(--noa-num);
    font-family: var(--noa-serif);
    opacity: 0.85;
}

:is(.single-job, .single-introduce) .post_content .senior-voice .voice-quote {
    margin: 1.6em 0 1.2em;
    line-height: 2.1;
    color: var(--noa-text);
    font-size: 1.15em;
    font-weight: 500;
    font-family: var(--noa-serif);
    letter-spacing: 0.05em;
}

:is(.single-job, .single-introduce) .post_content .senior-voice .voice-name {
    margin: 0;
    color: var(--noa-muted);
    font-size: 0.85em;
    font-weight: 400;
    letter-spacing: 0.18em;
    font-family: var(--noa-sans);
    text-align: left;
}

/* ------------------------------------------------------------
   6. 研修・サポート — 番号付き縦リスト（数字は黒）
   ------------------------------------------------------------ */
:is(.single-job, .single-introduce) .post_content .training-list {
    list-style: none;
    margin: 1.4em 0 1.8em;
    padding: 0;
    counter-reset: training-counter;
}

:is(.single-job, .single-introduce) .post_content .training-list li {
    counter-increment: training-counter;
    position: relative;
    padding: 1em 0.6em 1em 4em;
    border-bottom: 1px solid var(--noa-line);
    line-height: 1.95;
    font-size: 1em;
    font-family: var(--noa-serif);
}

:is(.single-job, .single-introduce) .post_content .training-list li::before {
    content: counter(training-counter, decimal-leading-zero);
    position: absolute;
    left: 0.5em;
    top: 1.2em;
    color: var(--noa-num);
    font-size: 0.85em;
    font-weight: 700;
    letter-spacing: 0.1em;
    font-family: var(--noa-sans);
    background: none;
    width: auto;
    height: auto;
    border-radius: 0;
}

/* ------------------------------------------------------------
   7. 募集要項テーブル
   ------------------------------------------------------------ */
:is(.single-job, .single-introduce) .post_content .job-spec-table {
    width: 100%;
    margin: 1.4em 0 2em;
    border-collapse: collapse;
    font-size: 0.96em;
    background: transparent;
    table-layout: fixed;
    border-top: 1px solid var(--noa-line);
}

:is(.single-job, .single-introduce) .post_content .job-spec-table tr {
    border-bottom: 1px solid var(--noa-line);
}

:is(.single-job, .single-introduce) .post_content .job-spec-table th {
    width: 9em;
    padding: 1.3em 1em 1.3em 0.5em;
    text-align: left;
    vertical-align: top;
    background: transparent;
    color: var(--noa-muted);
    font-weight: 400;
    font-size: 0.88em;
    letter-spacing: 0.08em;
    font-family: var(--noa-sans);
    border: none;
    word-break: keep-all;
    line-height: 1.6;
}

:is(.single-job, .single-introduce) .post_content .job-spec-table td {
    padding: 1.3em 0.5em;
    vertical-align: top;
    line-height: 2;
    color: var(--noa-text);
    font-weight: 500;
    font-size: 0.97em;
    font-family: var(--noa-serif);
    word-break: normal;
    overflow-wrap: anywhere;
    white-space: normal;
}

/* タブレット中間幅：thの幅を縮め、トラッキングも詰める */
@media (max-width: 900px) {
    :is(.single-job, .single-introduce) .post_content .job-spec-table th {
        width: 7em;
        padding: 1.1em 0.6em 1.1em 0.4em;
        letter-spacing: 0.04em;
        font-size: 0.85em;
    }
    :is(.single-job, .single-introduce) .post_content .job-spec-table td {
        padding: 1.1em 0.4em;
        font-size: 0.94em;
    }
}

/* スマホ：縦積み（ラベル上、値下） */
@media (max-width: 768px) {
    :is(.single-job, .single-introduce) .post_content .job-spec-table {
        table-layout: auto;
        display: block;
    }
    :is(.single-job, .single-introduce) .post_content .job-spec-table tbody {
        display: block;
        width: 100%;
    }
    :is(.single-job, .single-introduce) .post_content .job-spec-table tr {
        display: block;
        width: 100%;
        padding: 0.9em 0;
        border-bottom: 1px solid var(--noa-line);
    }
    :is(.single-job, .single-introduce) .post_content .job-spec-table th,
    :is(.single-job, .single-introduce) .post_content .job-spec-table td {
        display: block;
        width: 100%;
        padding: 0;
        border: none;
    }
    :is(.single-job, .single-introduce) .post_content .job-spec-table th {
        margin-bottom: 0.3em;
        font-size: 0.82em;
        color: var(--noa-muted);
        letter-spacing: 0.04em;
        line-height: 1.4;
    }
    :is(.single-job, .single-introduce) .post_content .job-spec-table td {
        font-size: 0.97em;
        line-height: 1.85;
    }
}

/* ------------------------------------------------------------
   8. ノアで働くメリット — 白カードグリッド
   ------------------------------------------------------------ */
:is(.single-job, .single-introduce) .post_content .job-benefits {
    list-style: none;
    margin: 1.4em 0 1.8em;
    padding: 0;
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.2em;
}

@media (min-width: 720px) {
    :is(.single-job, .single-introduce) .post_content .job-benefits {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 1024px) {
    :is(.single-job, .single-introduce) .post_content .job-benefits {
        grid-template-columns: repeat(3, 1fr);
    }
}

:is(.single-job, .single-introduce) .post_content .job-benefits li {
    position: relative;
    padding: 1.6em 1.4em 1.4em;
    background: var(--noa-bg-card);
    border: 1px solid var(--noa-line);
    border-radius: 0;
    line-height: 1.85;
    font-size: 0.96em;
    font-family: var(--noa-serif);
    transition: transform 0.15s, box-shadow 0.2s;
}

:is(.single-job, .single-introduce) .post_content .job-benefits li::before {
    content: none;
}

:is(.single-job, .single-introduce) .post_content .job-benefits li:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(20, 17, 13, 0.06);
}

:is(.single-job, .single-introduce) .post_content .job-benefits li strong {
    display: block;
    color: var(--noa-text);
    font-weight: 700;
    font-size: 1.08em;
    margin-bottom: 0.4em;
    font-family: var(--noa-serif);
    letter-spacing: 0.03em;
    line-height: 1.5;
}

/* ------------------------------------------------------------
   9. キャリアパス — 番号削除、■マーカーのみ
   ------------------------------------------------------------ */
:is(.single-job, .single-introduce) .post_content .career-path {
    list-style: none;
    margin: 1.4em 0 1.8em;
    padding: 0;
}

:is(.single-job, .single-introduce) .post_content .career-path li {
    position: relative;
    padding: 1.4em 0.6em 1.4em 2.4em;
    background: transparent;
    border-bottom: 1px solid var(--noa-line);
    border-left: none;
    border-radius: 0;
    line-height: 1.9;
    font-size: 0.97em;
    font-family: var(--noa-serif);
    margin: 0;
}

:is(.single-job, .single-introduce) .post_content .career-path li::before {
    content: "■";
    position: absolute;
    left: 0.6em;
    top: 1.5em;
    color: var(--noa-num);
    font-size: 0.85em;
    line-height: 1;
    font-family: var(--noa-sans);
    letter-spacing: 0;
}

/* ------------------------------------------------------------
   10. アクセス情報
   ------------------------------------------------------------ */
:is(.single-job, .single-introduce) .post_content .access-info {
    margin: 1.2em 0 1.8em;
    padding: 0;
    background: transparent;
    border: none;
    border-radius: 0;
    line-height: 2.05;
    font-size: 1em;
    color: var(--noa-text);
    font-family: var(--noa-serif);
}

:is(.single-job, .single-introduce) .post_content .access-info::before {
    content: "▶︎ ";
    color: var(--noa-num);
    font-size: 0.85em;
    margin-right: 0.3em;
}

/* ------------------------------------------------------------
   11. 採用フロー — 4ステップカード（番号は薄ベージュ）
   ------------------------------------------------------------ */
:is(.single-job, .single-introduce) .post_content .recruit-flow {
    list-style: none;
    margin: 1.4em 0 1.8em;
    padding: 0;
    display: grid;
    grid-template-columns: 1fr;
    gap: 1em;
    counter-reset: flow-counter;
}

@media (min-width: 720px) {
    :is(.single-job, .single-introduce) .post_content .recruit-flow {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 1024px) {
    :is(.single-job, .single-introduce) .post_content .recruit-flow {
        grid-template-columns: repeat(4, 1fr);
    }
}

:is(.single-job, .single-introduce) .post_content .recruit-flow li {
    counter-increment: flow-counter;
    position: relative;
    padding: 1.6em 1.4em;
    background: var(--noa-bg-card);
    border: 1px solid var(--noa-line);
    border-radius: 0;
    border-left: none;
    margin: 0;
    line-height: 1.8;
    font-size: 0.94em;
    font-family: var(--noa-serif);
}

:is(.single-job, .single-introduce) .post_content .recruit-flow li::before {
    content: counter(flow-counter, decimal-leading-zero);
    display: block;
    margin-bottom: 0.5em;
    color: var(--noa-num);
    font-size: 2.6em;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.02em;
    font-family: var(--noa-serif);
    background: none;
    width: auto;
    height: auto;
    border-radius: 0;
    box-shadow: none;
    position: static;
}

/* ------------------------------------------------------------
   12. よくある質問 — 黒のセリフQ
   ------------------------------------------------------------ */
:is(.single-job, .single-introduce) .post_content .job-faq {
    margin: 1.4em 0 1.8em;
    padding: 0;
}

:is(.single-job, .single-introduce) .post_content .job-faq dt {
    margin: 0;
    padding: 1.4em 1em 0.6em 3em;
    position: relative;
    font-weight: 700;
    color: var(--noa-text);
    line-height: 1.7;
    font-size: 1.05em;
    font-family: var(--noa-serif);
    background: transparent;
    border: none;
    border-radius: 0;
}

:is(.single-job, .single-introduce) .post_content .job-faq dt::before {
    content: "Q.";
    position: absolute;
    left: 0.5em;
    top: 1.2em;
    color: var(--noa-num);
    font-size: 1.4em;
    font-weight: 700;
    font-family: var(--noa-serif);
    font-style: italic;
    line-height: 1;
}

:is(.single-job, .single-introduce) .post_content .job-faq dd {
    margin: 0;
    padding: 0 1em 1.4em 3em;
    position: relative;
    line-height: 2;
    color: var(--noa-text-2);
    background: transparent;
    border: none;
    border-bottom: 1px solid var(--noa-line);
    font-size: 0.96em;
    font-family: var(--noa-serif);
}

/* ------------------------------------------------------------
   13. CTAブロック — 唯一の「青」エリア
        ・メインメッセージは黒のまま
        ・ボタンは鮮青
        ・下のメッセージ＋連絡先は紺青
   ------------------------------------------------------------ */
:is(.single-job, .single-introduce) .post_content .job-cta-block {
    margin: 5em 0 2em !important;
    padding: 4em 2em !important;
    background: var(--noa-bg-soft) !important;
    border: none;
    border-radius: 16px !important;
    text-align: center;
    box-shadow: none;
    color: var(--noa-text);
}

:is(.single-job, .single-introduce) .post_content .job-cta-block > p:first-child {
    font-family: var(--noa-serif) !important;
    font-size: 1.7em !important;
    line-height: 1.7 !important;
    margin-bottom: 1.6em !important;
    color: var(--noa-text);
    font-weight: 700;
    letter-spacing: 0.04em;
}

:is(.single-job, .single-introduce) .post_content .job-cta-block .cta-button,
:is(.single-job, .single-introduce) .post_content .job-cta-block a.cta-button {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 0.6em;
    padding: 1.1em 3em !important;
    background: var(--noa-cta-blue) !important;
    color: #fff !important;
    text-decoration: none !important;
    border-radius: 4px !important;
    font-weight: 700 !important;
    font-size: 1em !important;
    font-family: var(--noa-sans) !important;
    letter-spacing: 0.1em;
    box-shadow: 0 4px 0 var(--noa-cta-blue-d);
    transition: transform 0.15s, box-shadow 0.2s, background 0.2s;
    border: none;
}

:is(.single-job, .single-introduce) .post_content .job-cta-block .cta-button:hover,
:is(.single-job, .single-introduce) .post_content .job-cta-block a.cta-button:hover {
    background: var(--noa-cta-blue-d) !important;
    transform: translateY(2px);
    box-shadow: 0 1px 0 var(--noa-cta-blue-d);
}

:is(.single-job, .single-introduce) .post_content .job-cta-block > p:nth-child(2) {
    margin: 1.5em 0 1em !important;
}

/* ボタンの下のメッセージ＋連絡先は青 */
:is(.single-job, .single-introduce) .post_content .job-cta-block > p:last-child {
    margin-top: 2em !important;
    padding-top: 1.4em !important;
    font-size: 0.95em !important;
    font-family: var(--noa-serif) !important;
    color: var(--noa-cta) !important;
    line-height: 2;
    border-top: 1px solid var(--noa-line);
    font-weight: 700;
    letter-spacing: 0.05em;
}

/* ============================================================
   ヘッダーロゴ：サブタイトル（株式会社ノア・ビルサービス 採用サイト）を非表示
   上に余白を追加
   ============================================================ */
#header_logo {
    padding-top: 16px !important;
}
#header_logo .logo {
    display: block !important;
    line-height: 1.2 !important;
}

#header_logo .desc {
    display: none !important;
}

#header_logo #logo_image,
#header_logo #logo_text {
    line-height: 1.2;
}

/* ============================================================
   アイキャッチ画像（自動表示）を求人ページでは非表示
   （featured imageは一覧サムネ用途のみ。記事内では PHOTO 01 を使う）
   ============================================================ */
:is(.single-job, .single-introduce) #post_image {
    display: none !important;
}

/* ============================================================
   サイドバーを非表示・本文をフル幅
   ・job/introduce の single + archive
   ・page「私たちについて」（page-id-17 / about）
   ・page「よくある質問」（page-id-20 / faq）
   ・page「お問い合わせ」（page-id-22 / contact）
   ・page「プライバシーポリシー」（page-id-23 / privacy）
   ・page「求人へ応募する」（page-id-48 / apply）
   ============================================================ */
:is(.single-job, .single-introduce, .single-post) #side_col,
:is(.post-type-archive-job, .post-type-archive-introduce, .tax-introduce_cat, .tax-work_location, .tax-employment_type) #side_col,
.page-id-17 #side_col,
.page-id-19 #side_col,
.page-id-20 #side_col,
.page-id-21 #side_col,
.page-id-22 #side_col,
.page-id-23 #side_col,
.page-id-24 #side_col,
.page-id-48 #side_col {
    display: none !important;
}

:is(.single-job, .single-introduce, .single-post) #left_col,
:is(.post-type-archive-job, .post-type-archive-introduce, .tax-introduce_cat, .tax-work_location, .tax-employment_type) #left_col,
.page-id-19 #left_col,
.page-id-20 #left_col,
.page-id-21 #left_col,
.page-id-22 #left_col,
.page-id-23 #left_col,
.page-id-24 #left_col,
.page-id-48 #left_col {
    width: 100% !important;
    float: none !important;
    max-width: 860px;
    margin: 0 auto;
}

/* /about/ はブランドストーリーのフル幅を活かすので max-width 制限なし */
.page-id-17 #left_col {
    width: 100% !important;
    float: none !important;
    max-width: none !important;
    margin: 0;
    padding: 0;
}

/* ============================================================
   求人一覧（archive）— リスト型（写真＋内容）
   ・1カラム1求人。左に小さな写真、右にメタ＋明朝タイトル＋抜粋
   ・行間に薄罫、ブランドストーリーと統一感
   ============================================================ */
:is(.post-type-archive-job, .post-type-archive-introduce, .tax-introduce_cat, .tax-work_location, .tax-employment_type) #introduce_list {
    --jl-bg:        #ffffff;
    --jl-text:      #2a2620;
    --jl-text-2:    #3a3528;
    --jl-text-3:    #5a5448;
    --jl-meta:      #9a9080;
    --jl-rule:      #e8e2d4;
    --jl-mincho:    "Hiragino Mincho ProN","Yu Mincho","YuMincho","Noto Serif JP",serif;
    --jl-sans:      -apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif;
    --jl-thumb:     128px;

    background: var(--jl-bg);
    padding: 8px 0 60px;
    max-width: 1080px;
    margin: 0 auto;
    border-top: 1px solid var(--jl-rule);
    /* row なしのフラット構造（archive-introduce.php override 前提） → 2カラム grid */
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    column-gap: 32px;
    row-gap: 0;
}

/* row：1col-per-row 構造。row 自体が grid item。
   （infinitescroll JS が itemSelector='.introduce_list_row' を期待しているため残置） */
:is(.post-type-archive-job, .post-type-archive-introduce, .tax-introduce_cat, .tax-work_location, .tax-employment_type) .introduce_list_row {
    margin: 0 !important;
    padding: 0;
    width: auto;
    min-width: 0;
}
:is(.post-type-archive-job, .post-type-archive-introduce, .tax-introduce_cat, .tax-work_location, .tax-employment_type) .introduce_list_row::before,
:is(.post-type-archive-job, .post-type-archive-introduce, .tax-introduce_cat, .tax-work_location, .tax-employment_type) .introduce_list_row::after {
    content: none;
}

/* 各求人＝grid item（grid track 100%） */
:is(.post-type-archive-job, .post-type-archive-introduce, .tax-introduce_cat, .tax-work_location, .tax-employment_type) .introduce_list_col {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    float: none !important;
    border-bottom: 1px solid var(--jl-rule);
    overflow: visible !important;
    height: auto !important;
}
/* a を flexbox にして写真+テキスト+矢印を一列に */
:is(.post-type-archive-job, .post-type-archive-introduce, .tax-introduce_cat, .tax-work_location, .tax-employment_type) .introduce_list_col a {
    display: flex !important;
    align-items: flex-start;
    gap: 16px;
    width: 100% !important;
    height: auto !important;
    overflow: visible !important;
    color: var(--jl-text) !important;
    text-decoration: none !important;
    padding: 14px 12px;
    transition: background 0.25s;
    position: relative;
    box-sizing: border-box;
}
:is(.post-type-archive-job, .post-type-archive-introduce, .tax-introduce_cat, .tax-work_location, .tax-employment_type) .introduce_list_col a::after {
    content: "→";
    align-self: center;
    color: var(--jl-rule);
    font-family: var(--jl-sans);
    font-size: 18px;
    flex-shrink: 0;
    transition: color 0.2s, transform 0.2s;
}
:is(.post-type-archive-job, .post-type-archive-introduce, .tax-introduce_cat, .tax-work_location, .tax-employment_type) .introduce_list_col a:hover,
:is(.post-type-archive-job, .post-type-archive-introduce, .tax-introduce_cat, .tax-work_location, .tax-employment_type) .introduce_list_col a:focus {
    background: #faf7f0;
}
:is(.post-type-archive-job, .post-type-archive-introduce, .tax-introduce_cat, .tax-work_location, .tax-employment_type) .introduce_list_col a:hover::after,
:is(.post-type-archive-job, .post-type-archive-introduce, .tax-introduce_cat, .tax-work_location, .tax-employment_type) .introduce_list_col a:focus::after {
    color: var(--jl-text);
    transform: translateX(4px);
}

/* 画像：左に正方形（128×128）／上揃え（flex item） */
.post-type-archive-job .introduce_list_col .image,
.post-type-archive-introduce .introduce_list_col .image,
.tax-introduce_cat .introduce_list_col .image,
.tax-work_location .introduce_list_col .image,
.tax-employment_type .introduce_list_col .image,
body.post-type-archive-job .introduce_list_col.article .image,
body.post-type-archive-introduce .introduce_list_col.article .image,
body.tax-introduce_cat .introduce_list_col.article .image,
body.tax-work_location .introduce_list_col.article .image,
body.tax-employment_type .introduce_list_col.article .image {
    overflow: hidden !important;
    background: #f3ede1 !important;
    height: var(--jl-thumb) !important;
    width: var(--jl-thumb) !important;
    padding-top: 0 !important;
    margin: 0 !important;
    position: relative !important;
    flex: 0 0 var(--jl-thumb);
    align-self: flex-start;
}
.post-type-archive-job .introduce_list_col .image img,
.post-type-archive-introduce .introduce_list_col .image img,
.tax-introduce_cat .introduce_list_col .image img,
.tax-work_location .introduce_list_col .image img,
.tax-employment_type .introduce_list_col .image img,
body.post-type-archive-job .introduce_list_col.article .image img,
body.post-type-archive-introduce .introduce_list_col.article .image img,
body.tax-introduce_cat .introduce_list_col.article .image img,
body.tax-work_location .introduce_list_col.article .image img,
body.tax-employment_type .introduce_list_col.article .image img {
    display: block !important;
    width: 100% !important;
    min-width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    object-fit: cover !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    margin: 0 !important;
    transform: none;
    transition: transform 0.6s ease;
}
.post-type-archive-job .introduce_list_col a:hover .image img,
.post-type-archive-job .introduce_list_col a:focus .image img,
.post-type-archive-introduce .introduce_list_col a:hover .image img,
.post-type-archive-introduce .introduce_list_col a:focus .image img,
.tax-introduce_cat .introduce_list_col a:hover .image img,
.tax-introduce_cat .introduce_list_col a:focus .image img,
.tax-work_location .introduce_list_col a:hover .image img,
.tax-work_location .introduce_list_col a:focus .image img,
.tax-employment_type .introduce_list_col a:hover .image img,
.tax-employment_type .introduce_list_col a:focus .image img {
    transform: scale(1.04) !important;
}

/* インフォ部：flex の伸縮アイテム（残りスペース全部使う）
   flex-basis: 0 + min-width: 0 で min-content の制約を完全に外し、
   コンテナの実幅を確実に占有させる */
:is(.post-type-archive-job, .post-type-archive-introduce, .tax-introduce_cat, .tax-work_location, .tax-employment_type) .introduce_list_col .info,
:is(.post-type-archive-job, .post-type-archive-introduce, .tax-introduce_cat, .tax-work_location, .tax-employment_type) .introduce_list_col.show_info .info {
    padding: 0 !important;
    background: transparent !important;
    flex: 1 1 0 !important;
    min-width: 0 !important;
    position: static !important;
    top: auto !important;
    right: auto !important;
    width: auto !important;
    height: auto !important;
    display: block !important;
}

/* メタ（カテゴリ／勤務地／雇用形態）：上段に薄字でオーバーライン */
:is(.post-type-archive-job, .post-type-archive-introduce, .tax-introduce_cat, .tax-work_location, .tax-employment_type) .introduce_list_col .meta {
    list-style: none;
    margin: 0 0 6px 0 !important;
    padding: 0 !important;
    display: flex;
    flex-wrap: wrap;
    gap: 4px 14px;
    font-family: var(--jl-sans);
    font-size: 11px;
    letter-spacing: 0.2em;
    color: var(--jl-meta);
    font-weight: 600;
    line-height: 1.4;
    text-transform: uppercase;
}
:is(.post-type-archive-job, .post-type-archive-introduce, .tax-introduce_cat, .tax-work_location, .tax-employment_type) .introduce_list_col .meta li {
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    list-style: none;
}
:is(.post-type-archive-job, .post-type-archive-introduce, .tax-introduce_cat, .tax-work_location, .tax-employment_type) .introduce_list_col .meta li span {
    background: transparent !important;
    color: var(--jl-meta) !important;
    border: 0 !important;
    padding: 0 !important;
    font-size: inherit !important;
    letter-spacing: inherit !important;
    font-weight: inherit !important;
    line-height: inherit !important;
    border-radius: 0 !important;
}
:is(.post-type-archive-job, .post-type-archive-introduce, .tax-introduce_cat, .tax-work_location, .tax-employment_type) .introduce_list_col .meta li + li::before {
    content: "／";
    color: var(--jl-rule);
    margin-right: 10px;
    font-weight: 400;
}

/* タイトル：明朝・最大2行（できるだけ多く見せる） */
:is(.post-type-archive-job, .post-type-archive-introduce, .tax-introduce_cat, .tax-work_location, .tax-employment_type) .introduce_list_col .info .title {
    font-family: var(--jl-mincho) !important;
    font-size: 18px !important;
    line-height: 1.5 !important;
    font-weight: 400 !important;
    letter-spacing: 0.02em;
    color: var(--jl-text) !important;
    margin: 0 0 6px 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    overflow-wrap: anywhere;
}

/* 抜粋：1行で簡潔に */
:is(.post-type-archive-job, .post-type-archive-introduce, .tax-introduce_cat, .tax-work_location, .tax-employment_type) .introduce_list_col .info .excerpt {
    font-family: var(--jl-mincho) !important;
    font-size: 13px !important;
    line-height: 1.8 !important;
    font-weight: 300 !important;
    color: var(--jl-text-3) !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 1;
    line-clamp: 1;
    -webkit-box-orient: vertical;
    overflow: hidden;
    letter-spacing: 0.02em;
}

/* "続きを読む"は非表示（右の矢印で代替） */
:is(.post-type-archive-job, .post-type-archive-introduce, .tax-introduce_cat, .tax-work_location, .tax-employment_type) .introduce_list_col .info .more {
    display: none !important;
}

/* レスポンシブ */
@media (max-width: 800px) {
    :is(.post-type-archive-job, .post-type-archive-introduce, .tax-introduce_cat, .tax-work_location, .tax-employment_type) #introduce_list {
        --jl-thumb: 100px;
        grid-template-columns: 1fr;
        column-gap: 0;
    }
    :is(.post-type-archive-job, .post-type-archive-introduce, .tax-introduce_cat, .tax-work_location, .tax-employment_type) .introduce_list_col a {
        column-gap: 14px;
        padding: 14px 12px;
    }
    :is(.post-type-archive-job, .post-type-archive-introduce, .tax-introduce_cat, .tax-work_location, .tax-employment_type) .introduce_list_col .info .title {
        font-size: 16px !important;
    }
    :is(.post-type-archive-job, .post-type-archive-introduce, .tax-introduce_cat, .tax-work_location, .tax-employment_type) .introduce_list_col .info .excerpt {
        display: none !important;
    }
}

/* ============================================================
   「私たちについて」 — Brand Story（案1：縦組みエディトリアル）
   design_handoff_brand_story/README.md 仕様
   data: design_handoff_brand_story/story-content.ts
   build: tools/build-brand-story.mjs
   ============================================================ */

.brand-story {
    --bs-bg:        #ffffff;
    --bs-text:      #2a2620;
    --bs-text-2:    #3a3528;
    --bs-text-3:    #5a5448;
    --bs-muted:     #7a7468;
    --bs-meta:      #9a9080;
    --bs-rule:      #e8e2d4;
    --bs-accent:    #c9b87a;
    --bs-mincho:    "Hiragino Mincho ProN","Yu Mincho","YuMincho","Noto Serif JP",serif;
    --bs-sans:      -apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif;

    background: var(--bs-bg);
    color: var(--bs-text);
    font-family: var(--bs-mincho);
    font-size: 16px;
    font-weight: 300;
    line-height: 1.7;
    margin: 0;
    padding: 0;
}

/* GENSEN テーマのページ装飾を /about/ では消す */
.page-id-17 #post_image,
.page-id-17 .post_meta,
.page-id-17 #post_title,
.page-id-17 .post_title,
.page-id-17 #breadcrumb,
.page-id-17 #header_post_title {
    display: none !important;
}

.page-id-17 #article {
    padding: 0 !important;
    margin: 0 !important;
}

.page-id-17 .post_content,
.page-id-17 .tcdce-body {
    padding: 0 !important;
    margin: 0 !important;
    background: var(--bs-bg) !important;
}

.brand-story p,
.brand-story h2 {
    margin: 0;
}

/* ============================================================
   1. Cover
   ============================================================ */
.bs-cover {
    min-height: 600px;
    padding: 56px 64px 96px;
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 64px;
    align-items: stretch;
    border-bottom: 1px solid var(--bs-rule);
}
.bs-cover-l {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}
.bs-pubLine {
    font-family: var(--bs-sans);
    font-size: 11px;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: var(--bs-meta);
    font-weight: 500;
}
.bs-brand {
    font-family: var(--bs-sans);
    font-size: 11px;
    letter-spacing: 0.35em;
    font-weight: 600;
    color: var(--bs-text-3);
}
.bs-cover-r {
    display: flex;
    gap: 24px;
}
.bs-coverLede {
    writing-mode: vertical-rl;
    font-size: 17px;
    line-height: 2.4;
    color: var(--bs-muted);
    padding-left: 32px;
    font-weight: 300;
    letter-spacing: 0.1em;
}
.bs-coverTitle {
    writing-mode: vertical-rl;
    text-orientation: upright;
    font-size: 64px;
    line-height: 1.7;
    font-weight: 400;
    letter-spacing: 0.08em;
    padding-left: 32px;
    color: var(--bs-text);
}
.bs-coverTitle div {
    margin: 0;
}

/* ============================================================
   2. Scenes ×3
   ============================================================ */
.bs-scene {
    padding: 100px 64px;
    border-bottom: 1px solid var(--bs-rule);
}
.bs-sceneIndex {
    display: flex;
    align-items: baseline;
    gap: 24px;
    margin-bottom: 56px;
}
.bs-sceneTime {
    font-size: 32px;
    font-weight: 400;
    letter-spacing: 0.05em;
    color: var(--bs-text);
}
.bs-sceneTimeEn {
    font-family: var(--bs-sans);
    font-size: 11px;
    letter-spacing: 0.25em;
    color: var(--bs-meta);
    font-weight: 500;
}
.bs-sceneRole {
    font-family: var(--bs-sans);
    font-size: 11px;
    letter-spacing: 0.25em;
    color: var(--bs-text-3);
    font-weight: 600;
    margin-left: auto;
}
.bs-sceneBodyWrap {
    overflow-x: auto;
    overflow-y: hidden;
    padding: 8px 0 16px;
}
.bs-sceneBody {
    writing-mode: vertical-rl;
    height: 380px;
    font-size: 16px;
    line-height: 2.4;
    color: var(--bs-text-2);
    letter-spacing: 0.08em;
    font-weight: 300;
}
.bs-sceneLine {
    margin: 0 0 0 44px;
}
.bs-sceneQuote {
    margin: 48px 0 0 0;
    padding-top: 32px;
    border-top: 1px solid var(--bs-rule);
    font-size: 19px;
    line-height: 2;
    font-weight: 400;
    letter-spacing: 0.04em;
    color: var(--bs-text);
    max-width: 640px;
}

/* ============================================================
   3. Bridge
   ============================================================ */
.bs-bridge {
    padding: 120px 64px;
    text-align: center;
    border-bottom: 1px solid var(--bs-rule);
}
.bs-bridgeTitle {
    font-size: 32px;
    line-height: 1.8;
    font-weight: 400;
    margin: 0 0 40px 0;
    letter-spacing: 0.04em;
    color: var(--bs-text);
}
.bs-bridgeBody {
    font-size: 17px;
    line-height: 2.2;
    color: var(--bs-text-3);
    max-width: 580px;
    margin: 0 auto 40px;
    font-weight: 300;
}
.bs-bridgeBody p {
    margin: 0 0 8px 0;
}
.bs-bridgeTail {
    font-size: 14px;
    line-height: 1.95;
    color: var(--bs-meta);
    font-weight: 400;
    max-width: 560px;
    margin: 0 auto;
    letter-spacing: 0.04em;
}

/* ============================================================
   4. History
   ============================================================ */
.bs-history {
    padding: 100px 64px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 80px;
    align-items: start;
    border-bottom: 1px solid var(--bs-rule);
}
.bs-histLabel {
    font-family: var(--bs-sans);
    font-size: 11px;
    letter-spacing: 0.25em;
    color: var(--bs-meta);
    font-weight: 600;
    margin-bottom: 20px;
}
.bs-histTitle {
    font-size: 32px;
    line-height: 1.5;
    font-weight: 400;
    margin: 0 0 32px 0;
    letter-spacing: 0.02em;
    color: var(--bs-text);
}
.bs-histBody {
    font-size: 16px;
    line-height: 2.1;
    color: var(--bs-text-3);
    margin: 0 0 16px 0;
    font-weight: 300;
}
.bs-histPromise {
    padding-left: 32px;
    border-left: 1px solid var(--bs-accent);
    font-size: 17px;
    line-height: 2.1;
    font-weight: 400;
    color: var(--bs-text);
}
.bs-histPromise p {
    margin: 0 0 6px 0;
}
.bs-histTail {
    font-size: 13px;
    line-height: 1.95;
    color: var(--bs-meta);
    margin-top: 32px;
    font-style: italic;
    font-weight: 300;
}

/* ============================================================
   5. Manifesto
   ============================================================ */
.bs-manifesto {
    padding: 100px 64px;
    max-width: 800px;
    margin: 0 auto;
    border-bottom: 1px solid var(--bs-rule);
}
.bs-manTitle {
    font-size: 36px;
    line-height: 1.5;
    font-weight: 400;
    margin: 0 0 40px 0;
    letter-spacing: 0.03em;
    color: var(--bs-text);
}
.bs-manBody {
    font-size: 17px;
    line-height: 2.2;
    color: var(--bs-text-3);
    margin-bottom: 40px;
    font-weight: 300;
}
.bs-manBody p {
    margin: 0 0 16px 0;
}
.bs-manLine {
    font-size: 22px;
    line-height: 1.8;
    font-weight: 400;
    margin: 0;
    padding-left: 24px;
    border-left: 1px solid var(--bs-text);
    letter-spacing: 0.04em;
    color: var(--bs-text);
}

/* ============================================================
   6. Closing + CTA
   ============================================================ */
.bs-closing {
    padding: 120px 64px;
    text-align: center;
}
.bs-closeTitle {
    font-size: 22px;
    line-height: 1.9;
    font-weight: 400;
    margin: 0 0 12px 0;
    letter-spacing: 0.04em;
    color: var(--bs-text);
}
.bs-closeSub {
    font-size: 17px;
    color: var(--bs-muted);
    margin: 0 0 56px 0;
    line-height: 1.9;
    font-weight: 300;
}
.bs-closeBody {
    max-width: 520px;
    margin: 0 auto 56px;
    font-size: 16px;
    line-height: 2.4;
    color: var(--bs-text-2);
    font-weight: 300;
}
.bs-closeBody p {
    margin: 0 0 6px 0;
}
.bs-closeSign {
    font-family: var(--bs-mincho);
    font-size: 22px;
    letter-spacing: 0.2em;
    color: var(--bs-text);
    font-weight: 400;
    padding-top: 40px;
    border-top: 1px solid var(--bs-rule);
    max-width: 480px;
    margin: 0 auto 64px;
    line-height: 1.6;
}
.bs-ctaBtn {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    background: transparent;
    color: var(--bs-text);
    border: 1px solid var(--bs-text);
    padding: 16px 32px;
    font-size: 14px;
    font-weight: 500;
    letter-spacing: 0.1em;
    cursor: pointer;
    border-radius: 0;
    font-family: var(--bs-sans);
    text-decoration: none;
    transition: background 0.2s, color 0.2s;
}
.bs-ctaBtn:hover,
.bs-ctaBtn:focus {
    background: var(--bs-text);
    color: var(--bs-bg);
}
.bs-ctaArrow {
    display: inline-block;
}
.bs-ctaSub {
    font-family: var(--bs-sans);
    font-size: 12px;
    letter-spacing: 0.15em;
    color: var(--bs-meta);
    margin-top: 20px;
    font-weight: 500;
}

/* ============================================================
   7. Corporate site outro（一番最後のコーポレート誘導）
   ============================================================ */
.bs-corporate {
    padding: 64px 64px 96px;
    text-align: center;
    border-top: 1px solid var(--bs-rule);
    max-width: 720px;
    margin: 0 auto;
}
.bs-corporateLead {
    font-size: 14px;
    color: var(--bs-muted);
    line-height: 1.95;
    font-weight: 300;
    margin: 0 0 12px 0;
    letter-spacing: 0.04em;
}
.bs-corporateLink {
    margin: 0;
    font-size: 15px;
    line-height: 1.8;
    color: var(--bs-text);
    font-weight: 400;
    letter-spacing: 0.04em;
}
.bs-corporateLink a {
    color: var(--bs-text);
    text-decoration: none;
    border-bottom: 1px solid var(--bs-rule);
    padding-bottom: 2px;
    transition: border-color 0.2s;
}
.bs-corporateLink a:hover,
.bs-corporateLink a:focus {
    border-bottom-color: var(--bs-text);
}
.bs-corporateArrow {
    color: var(--bs-meta);
    margin-right: 4px;
}

@media (max-width: 768px) {
    .bs-corporate {
        padding: 48px 24px 80px;
    }
}

/* ============================================================
   Responsive
   ============================================================ */
@media (max-width: 1100px) {
    .bs-cover,
    .bs-scene,
    .bs-bridge,
    .bs-history,
    .bs-manifesto,
    .bs-closing {
        padding-left: 40px;
        padding-right: 40px;
    }
}

@media (max-width: 768px) {
    .bs-cover {
        grid-template-columns: 1fr;
        padding: 80px 24px;
        min-height: auto;
    }
    .bs-coverTitle {
        font-size: 48px;
    }
    .bs-scene,
    .bs-bridge,
    .bs-history,
    .bs-manifesto,
    .bs-closing {
        padding: 80px 24px;
    }
    .bs-history {
        grid-template-columns: 1fr;
        gap: 48px;
    }
    .bs-bridgeTitle,
    .bs-histTitle {
        font-size: 26px;
    }
    .bs-manTitle {
        font-size: 30px;
    }
    .bs-sceneTime {
        font-size: 26px;
    }
    .bs-manLine {
        font-size: 19px;
    }
}

/* ============================================================
   求人ページ（body.single-job / single-introduce）の上部カテゴリーピル
   エディトリアル仕様：白フィル＋細枠、letter-spacing 強め
   GENSEN inline `.cat-introduce_cat { background-color:#1f4f8b !important; }` を上書き
   ============================================================ */
body.single-job ul#post_meta_top.meta li.cat > a,
body.single-job ul#post_meta_top.meta li.cat > span,
body.single-introduce ul#post_meta_top.meta li.cat > a,
body.single-introduce ul#post_meta_top.meta li.cat > span,
body.single-job ul.meta li.cat > a.cat-introduce_cat,
body.single-job ul.meta li.cat > a.cat-work_location,
body.single-job ul.meta li.cat > a.cat-employment_type,
body.single-introduce ul.meta li.cat > a.cat-introduce_cat,
body.single-introduce ul.meta li.cat > a.cat-work_location,
body.single-introduce ul.meta li.cat > a.cat-employment_type {
    background: transparent !important;
    background-color: transparent !important;
    color: #2a2620 !important;
    font-family: -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "Noto Sans JP", sans-serif !important;
    font-size: 11px !important;
    letter-spacing: 0.18em !important;
    font-weight: 600 !important;
    padding: 5px 11px !important;
    border: 1px solid #d8cfb6 !important;
    border-radius: 0 !important;
    line-height: 1.5 !important;
    min-width: 0 !important;
    text-decoration: none !important;
    transition: background 0.2s, border-color 0.2s;
}
/* 各タクソノミーで色味の差をつける */
body.single-job ul.meta li.cat > a.cat-introduce_cat,
body.single-introduce ul.meta li.cat > a.cat-introduce_cat {
    border-color: #2a2620 !important;
    background: #2a2620 !important;
    background-color: #2a2620 !important;
    color: #fdfcf8 !important;
}
body.single-job ul.meta li.cat > a.cat-work_location,
body.single-introduce ul.meta li.cat > a.cat-work_location {
    border-color: #c9b87a !important;
    color: #2a2620 !important;
}
body.single-job ul.meta li.cat > a.cat-employment_type,
body.single-introduce ul.meta li.cat > a.cat-employment_type {
    border-color: #d8cfb6 !important;
    color: #5a5448 !important;
}
body.single-job ul.meta li.cat > a:hover,
body.single-introduce ul.meta li.cat > a:hover {
    opacity: 0.78;
}
body.single-job ul#post_meta_top.meta,
body.single-introduce ul#post_meta_top.meta {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 8px;
    margin: 0 0 16px 0 !important;
    padding: 0 !important;
}
body.single-job ul#post_meta_top.meta li,
body.single-introduce ul#post_meta_top.meta li {
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
}

/* ============================================================
   検索結果ページ（body.search）
   求人一覧のエディトリアルテイストに統一
   ============================================================ */
body.search-results {
    --sr-bg:       #fffdfa;
    --sr-paper:    #f7f4ee;
    --sr-text:     #2a2620;
    --sr-text-3:   #5a5448;
    --sr-meta:     #9a9080;
    --sr-rule:     #e8e2d4;
    --sr-rule-2:   #d8cfb6;
    --sr-gold:     #c9b87a;
    --sr-mincho:   "Hiragino Mincho ProN","Yu Mincho","YuMincho","Noto Serif JP",serif;
    --sr-sans:     -apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif;
    background: var(--sr-bg);
}

/* サイドバー非表示・本文フル幅 */
body.search-results #side_col {
    display: none !important;
}
body.search-results #left_col {
    width: 100% !important;
    float: none !important;
    max-width: 1080px;
    margin: 0 auto;
}

/* 見出し「検索結果」 */
body.search-results #archive_headline {
    font-family: var(--sr-mincho) !important;
    font-size: 32px !important;
    font-weight: 400 !important;
    line-height: 1.5 !important;
    letter-spacing: 0.04em !important;
    color: var(--sr-text) !important;
    margin: 32px 0 24px 0 !important;
    padding: 0 8px !important;
    background: transparent !important;
    border: 0 !important;
    text-align: left;
}
body.search-results .archive_header,
body.search-results .archive_header .headline {
    font-family: var(--sr-mincho) !important;
    color: var(--sr-text) !important;
    background: transparent !important;
}

/* 並べ替え条件 タブ */
body.search-results .archive_filter,
body.search-results .archive_sort {
    background: var(--sr-bg) !important;
    border: 1px solid var(--sr-rule) !important;
    margin: 24px 8px 32px !important;
    border-radius: 0 !important;
    overflow: hidden;
}
body.search-results .archive_sort dt,
body.search-results .archive_filter_headline {
    background: var(--sr-text) !important;
    color: #fffdfa !important;
    font-family: var(--sr-sans) !important;
    font-size: 13px !important;
    letter-spacing: 0.15em !important;
    font-weight: 600 !important;
    padding: 16px 24px !important;
    border: 0 !important;
}
body.search-results .archive_sort dd,
body.search-results .archive_sort dd a {
    background: transparent !important;
    color: var(--sr-text-3) !important;
    font-family: var(--sr-sans) !important;
    font-size: 13px !important;
    letter-spacing: 0.1em !important;
    font-weight: 600 !important;
    padding: 16px 20px !important;
    border: 0 !important;
    transition: background 0.2s, color 0.2s;
}
body.search-results .archive_sort dd a:hover,
body.search-results .archive_sort dd.current a,
body.search-results .archive_sort dd a:focus {
    background: var(--sr-paper) !important;
    color: var(--sr-text) !important;
}

/* 件数表示 / ページネーション */
body.search-results #post_pagination,
body.search-results .post_count,
body.search-results .pagination_info {
    font-family: var(--sr-sans) !important;
    font-size: 13px !important;
    color: var(--sr-text-3) !important;
    margin: 24px 8px !important;
}
body.search-results #post_pagination a,
body.search-results #post_pagination span,
body.search-results #post_pagination p {
    background: transparent !important;
    color: var(--sr-text-3) !important;
    font-family: var(--sr-sans) !important;
    font-weight: 600 !important;
    font-size: 13px !important;
    border: 1px solid var(--sr-rule) !important;
    padding: 10px 14px !important;
    transition: background 0.2s, color 0.2s, border-color 0.2s;
}
body.search-results #post_pagination .current,
body.search-results #post_pagination span.current {
    background: var(--sr-text) !important;
    color: var(--sr-bg) !important;
    border-color: var(--sr-text) !important;
}
body.search-results #post_pagination a:hover,
body.search-results #post_pagination a:focus {
    background: var(--sr-paper) !important;
    border-color: var(--sr-text) !important;
}

/* 結果カード */
body.search-results #post_list {
    list-style: none;
    margin: 0 8px !important;
    padding: 0 !important;
}
body.search-results #post_list .article {
    list-style: none !important;
    background: transparent !important;
    border: 0 !important;
    border-bottom: 1px solid var(--sr-rule) !important;
    padding: 24px 0 !important;
    margin: 0 !important;
}
body.search-results #post_list .article a {
    text-decoration: none !important;
    color: var(--sr-text) !important;
    display: grid;
    grid-template-columns: 220px 1fr;
    gap: 24px;
    align-items: start;
}
body.search-results #post_list .article .image {
    margin: 0 !important;
    padding: 0 !important;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    background: var(--sr-paper);
}
body.search-results #post_list .article .image img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover;
    transition: transform 0.5s ease;
    display: block;
}
body.search-results #post_list .article a:hover .image img,
body.search-results #post_list .article a:focus .image img {
    transform: scale(1.04);
}
body.search-results #post_list .article .title {
    font-family: var(--sr-mincho) !important;
    font-size: 19px !important;
    font-weight: 400 !important;
    line-height: 1.55 !important;
    letter-spacing: 0.02em !important;
    color: var(--sr-text) !important;
    margin: 0 0 8px 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
}
body.search-results #post_list .article .excerpt,
body.search-results #post_list .article .post_content {
    font-family: var(--sr-mincho) !important;
    font-size: 14px !important;
    line-height: 1.85 !important;
    color: var(--sr-text-3) !important;
    margin: 0 0 12px 0 !important;
    background: transparent !important;
}

/* メタ＋カテゴリピル：エディトリアル化（角ばった outlined スタイル） */
body.search-results #post_list .article .meta {
    list-style: none;
    margin: 0 !important;
    padding: 0 !important;
    display: flex;
    flex-wrap: wrap;
    gap: 6px 8px;
    align-items: center;
}
body.search-results #post_list .article .meta li {
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
}
/* メタピル：プレーンテキスト（求人一覧と同じ editorial 統一）
   親テーマの ul.meta li.cat>span（rounded・色付き）を上書き。
   GENSEN inline `.cat-introduce_cat { background-color:#1f4f8b !important; }` も
   高い specificity ＋ background / background-color 両方で確実に潰す。 */
body.search-results ul.meta li.cat span.cat-introduce_cat,
body.search-results ul.meta li.cat span.cat-work_location,
body.search-results ul.meta li.cat span.cat-employment_type,
body.search-results ul.meta li.cat > span,
body.search-results ul.meta li.cat > a {
    background: transparent !important;
    background-color: transparent !important;
    color: var(--sr-text) !important;
    font-family: var(--sr-sans) !important;
    font-size: 11px !important;
    letter-spacing: 0.18em !important;
    font-weight: 600 !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    line-height: 1.5 !important;
    min-width: 0 !important;
    display: inline !important;
    text-align: left !important;
}
/* カテゴリ間に "／" 区切り */
body.search-results ul.meta li.cat + li.cat::before {
    content: "／";
    color: var(--sr-rule-2);
    margin: 0 8px;
    font-weight: 400;
}
/* 職種だけ僅かに墨色を強める（差別化） */
body.search-results ul.meta li.cat span.cat-introduce_cat {
    color: var(--sr-text) !important;
    font-weight: 700 !important;
}
body.search-results ul.meta li.cat span.cat-work_location,
body.search-results ul.meta li.cat span.cat-employment_type {
    color: var(--sr-text-3) !important;
}

body.search-results #post_list .article .meta li.date {
    margin-left: auto !important;
    color: var(--sr-meta) !important;
    font-family: var(--sr-sans) !important;
    font-size: 11px !important;
    letter-spacing: 0.1em !important;
    font-weight: 500 !important;
}

@media (max-width: 800px) {
    body.search-results #post_list .article a {
        grid-template-columns: 120px 1fr;
        gap: 16px;
    }
    body.search-results #archive_headline {
        font-size: 26px !important;
    }
    body.search-results #post_list .article .title {
        font-size: 16px !important;
    }
}
@media (max-width: 540px) {
    body.search-results #post_list .article a {
        grid-template-columns: 1fr;
        gap: 12px;
    }
    body.search-results #post_list .article .image {
        aspect-ratio: 16 / 9;
    }
}

/* ============================================================
   TOP（front-page）— top-1「明朝ジャーナル」
   設計参考: design_handoff_noah/prototypes/top-1.jsx
   ============================================================ */
.top-1 {
    --t1-bg:       #fdfcf8;
    --t1-paper:    #f5f1e8;
    --t1-text:     #2a2620;
    --t1-text-2:   #3a3528;
    --t1-text-3:   #5a5448;
    --t1-muted:    #7a7468;
    --t1-meta:     #9a9080;
    --t1-rule:     #e8e2d4;
    --t1-rule-2:   #d8cfb6;
    --t1-gold:     #c9b87a;
    --t1-mincho:   "Hiragino Mincho ProN","Yu Mincho","YuMincho","Noto Serif JP",serif;
    --t1-sans:     -apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif;

    background: var(--t1-bg);
    color: var(--t1-text);
    font-family: var(--t1-mincho);
    font-size: 16px;
    font-weight: 300;
    line-height: 1.7;
}

/* GENSEN の TOP デフォルト要素を抑制（ただし #header_slider は残す） */
body.home #header_image,
body.home #post_image,
body.home #post_title,
body.home #breadcrumb {
    display: none !important;
}
body.home #left_col {
    width: 100% !important;
    max-width: none !important;
    float: none !important;
    margin: 0;
    padding: 0;
}
body.home #side_col {
    display: none !important;
}
body.home .post_content,
body.home .tcdce-body {
    background: var(--t1-bg) !important;
    padding: 0 !important;
    margin: 0 !important;
}

/* ----- 1. Hero ----- */
.top-1 .t1-hero {
    padding: 80px 56px 96px;
    border-bottom: 1px solid var(--t1-rule);
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 56px;
    align-items: center;
    max-width: 1320px;
    margin: 0 auto;
}
.top-1 .t1-hero-eyebrow {
    font-family: var(--t1-sans);
    font-size: 11px;
    letter-spacing: 0.3em;
    color: var(--t1-meta);
    font-weight: 600;
    margin-bottom: 32px;
    text-transform: uppercase;
}
.top-1 .t1-hero-title {
    font-family: var(--t1-mincho);
    font-size: 72px;
    line-height: 1.35;
    font-weight: 400;
    letter-spacing: 0.04em;
    margin: 0 0 24px 0;
    color: var(--t1-text);
    background: transparent;
    border: 0;
}
.top-1 .t1-hero-sub {
    font-size: 19px;
    line-height: 1.85;
    color: var(--t1-muted);
    margin: 0;
    font-weight: 300;
    font-style: italic;
}
.top-1 .t1-hero-r {
    aspect-ratio: 4 / 5;
    background: var(--t1-rule);
    position: relative;
    overflow: hidden;
    border: 1px solid var(--t1-rule-2);
}
.top-1 .t1-slide {
    position: absolute;
    inset: 0;
    opacity: 0;
    transition: opacity 0.8s ease;
    pointer-events: none;
}
.top-1 .t1-slide.is-active {
    opacity: 1;
    pointer-events: auto;
}
.top-1 .t1-slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    filter: saturate(0.92) contrast(1.02);
}
.top-1 .t1-slide-caption {
    position: absolute;
    bottom: 40px;
    left: 24px;
    right: 24px;
    font-family: var(--t1-mincho);
    color: #fdfcf8;
    font-size: 17px;
    line-height: 1.6;
    text-shadow: 0 2px 16px rgba(0,0,0,0.4);
}
.top-1 .t1-hero-dots {
    position: absolute;
    bottom: 16px;
    left: 0;
    right: 0;
    display: flex;
    justify-content: center;
    gap: 6px;
    z-index: 2;
}
.top-1 .t1-hero-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: rgba(255,255,255,0.55);
    cursor: pointer;
    transition: width 0.3s, background 0.3s;
}
.top-1 .t1-hero-dot.is-active {
    width: 24px;
    background: #fdfcf8;
    border-radius: 3px;
}

/* ----- 2. Lead ----- */
.top-1 .t1-lead {
    padding: 120px 56px;
    border-bottom: 1px solid var(--t1-rule);
    max-width: 760px;
    margin-left: auto;
    margin-right: auto;
    text-align: center;
}
.top-1 .t1-lead-label {
    font-family: var(--t1-sans);
    font-size: 11px;
    letter-spacing: 0.3em;
    color: var(--t1-meta);
    font-weight: 600;
    margin-bottom: 32px;
    text-align: left;
}
.top-1 .t1-lead-body {
    font-size: 18px;
    line-height: 2.2;
    color: var(--t1-text-2);
    font-weight: 400;
    letter-spacing: 0.04em;
    text-align: center;
}
.top-1 .t1-lead-line {
    margin: 0 0 12px 0;
}

/* 共通：→リンク */
.top-1 .t1-link-arrow {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    margin-top: 40px;
    font-family: var(--t1-sans);
    font-size: 13px;
    letter-spacing: 0.15em;
    color: var(--t1-text);
    font-weight: 600;
    text-decoration: none;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--t1-text);
    transition: opacity 0.2s;
}
.top-1 .t1-link-arrow:hover,
.top-1 .t1-link-arrow:focus {
    opacity: 0.7;
}

/* ----- 3. Scenes ----- */
.top-1 .t1-scenes {
    padding: 60px 56px 0;
    max-width: 920px;
    margin: 0 auto;
}
.top-1 .t1-scenes-title {
    font-size: 14px;
    font-family: var(--t1-sans);
    letter-spacing: 0.3em;
    color: var(--t1-meta);
    font-weight: 600;
    margin-bottom: 48px;
    text-transform: uppercase;
}
.top-1 .t1-scene {
    padding: 40px 0;
    border-top: 1px solid var(--t1-rule);
    display: grid;
    grid-template-columns: 120px 1fr 320px;
    gap: 48px;
    align-items: center;
}
.top-1 .t1-scene-photo {
    margin: 0;
}
.top-1 .t1-scene-photo img {
    width: 100%;
    height: auto;
    display: block;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    background: var(--t1-soft);
}
.top-1 .t1-scene-no {
    font-size: 11px;
    letter-spacing: 0.3em;
    color: var(--t1-meta);
    font-family: var(--t1-sans);
    font-weight: 600;
    padding-top: 6px;
}
.top-1 .t1-scene-no-num {
    font-size: 36px;
    color: var(--t1-gold);
    font-weight: 400;
    font-family: var(--t1-mincho);
    display: block;
    margin-bottom: 8px;
}
.top-1 .t1-scene-time {
    font-size: 24px;
    font-weight: 400;
    letter-spacing: 0.05em;
    margin-bottom: 6px;
}
.top-1 .t1-scene-role {
    font-family: var(--t1-sans);
    font-size: 11px;
    letter-spacing: 0.25em;
    color: var(--t1-text-3);
    font-weight: 600;
    margin-bottom: 32px;
}
.top-1 .t1-scene-headline {
    font-family: var(--t1-mincho);
    font-size: 28px;
    line-height: 1.7;
    font-weight: 400;
    letter-spacing: 0.03em;
    margin: 0 0 24px 0;
    color: var(--t1-text);
    background: transparent;
    border: 0;
}
.top-1 .t1-scene-quote {
    font-size: 17px;
    line-height: 2;
    color: var(--t1-muted);
    margin: 0;
    font-weight: 400;
    padding-left: 20px;
    border-left: 1px solid var(--t1-gold);
}
.top-1 .t1-scenes-link-wrap {
    padding: 60px 0 120px;
    border-top: 1px solid var(--t1-rule);
    text-align: center;
}

/* ----- 3.5. News（お知らせ） ----- */
.top-1 .t1-news {
    max-width: 920px;
    margin: 0 auto;
    padding: 80px 56px;
}
.top-1 .t1-news-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-bottom: 32px;
    border-bottom: 1px solid var(--t1-rule);
    padding-bottom: 20px;
}
.top-1 .t1-news-label {
    font-family: var(--t1-sans);
    font-size: 11px;
    letter-spacing: 0.3em;
    color: var(--t1-meta);
    font-weight: 600;
    margin-bottom: 8px;
    text-transform: uppercase;
}
.top-1 .t1-news-title {
    font-family: var(--t1-mincho);
    font-size: 28px;
    font-weight: 400;
    line-height: 1.4;
    letter-spacing: 0.06em;
    color: var(--t1-text);
    margin: 0;
    padding: 0;
    background: transparent;
    border: 0;
}
.top-1 .t1-news-more {
    font-family: var(--t1-sans);
    font-size: 12px;
    letter-spacing: 0.18em;
    color: var(--t1-text-3);
    text-decoration: none;
    font-weight: 600;
    padding-bottom: 4px;
    border-bottom: 1px solid var(--t1-rule);
    transition: color 0.2s, border-color 0.2s;
    white-space: nowrap;
}
.top-1 .t1-news-more:hover,
.top-1 .t1-news-more:focus {
    color: var(--t1-text);
    border-color: var(--t1-text);
}
.top-1 .t1-news-more span {
    margin-left: 6px;
}
.top-1 .t1-news-list {
    list-style: none;
    margin: 0;
    padding: 0;
}
.top-1 .t1-news-item {
    border-bottom: 1px solid var(--t1-rule);
    margin: 0;
    padding: 0;
}
.top-1 .t1-news-item:first-child {
    border-top: 1px solid var(--t1-rule);
}
.top-1 .t1-news-link {
    display: grid;
    grid-template-columns: 110px 130px 1fr auto;
    align-items: center;
    gap: 24px;
    padding: 20px 8px;
    color: var(--t1-text);
    text-decoration: none;
    transition: background 0.2s;
}
.top-1 .t1-news-link:hover,
.top-1 .t1-news-link:focus {
    background: var(--t1-paper);
}
.top-1 .t1-news-date {
    font-family: var(--t1-sans);
    font-size: 13px;
    letter-spacing: 0.1em;
    color: var(--t1-text-3);
    font-feature-settings: "tnum";
    font-weight: 500;
}
.top-1 .t1-news-cat {
    display: inline-block;
    font-family: var(--t1-sans);
    font-size: 10px;
    letter-spacing: 0.18em;
    font-weight: 700;
    padding: 4px 10px;
    border: 1px solid currentColor;
    text-align: center;
    line-height: 1.4;
    color: var(--t1-text-3);
    white-space: nowrap;
    justify-self: start;
}
.top-1 .t1-news-cat--recruit-info {
    color: #1f4f8b;
}
.top-1 .t1-news-cat--event {
    color: #8a6c1f;
}
.top-1 .t1-news-cat--news {
    color: #5a5448;
}
.top-1 .t1-news-title-line {
    font-family: var(--t1-mincho);
    font-size: 16px;
    line-height: 1.55;
    letter-spacing: 0.04em;
    color: var(--t1-text);
}
.top-1 .t1-news-link:hover .t1-news-title-line {
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 4px;
}
.top-1 .t1-news-arrow {
    font-family: var(--t1-sans);
    font-size: 14px;
    color: var(--t1-meta);
    transition: transform 0.2s, color 0.2s;
}
.top-1 .t1-news-link:hover .t1-news-arrow {
    color: var(--t1-text);
    transform: translateX(4px);
}

/* ----- 4. Recruit + meta ----- */
.top-1 .t1-recruit {
    padding: 120px 56px;
    background: var(--t1-paper);
    border-top: 1px solid var(--t1-rule);
    border-bottom: 1px solid var(--t1-rule);
    text-align: center;
}
.top-1 .t1-recruit-title {
    font-family: var(--t1-mincho);
    font-size: 36px;
    line-height: 1.5;
    font-weight: 400;
    letter-spacing: 0.04em;
    margin: 0 0 32px 0;
    background: transparent;
    border: 0;
}
.top-1 .t1-recruit-body {
    font-size: 17px;
    line-height: 2.1;
    color: var(--t1-text-3);
    max-width: 600px;
    margin: 0 auto 56px;
    font-weight: 300;
}
.top-1 .t1-recruit-body p {
    margin: 0 0 6px 0;
}
.top-1 .t1-meta-row {
    display: flex;
    justify-content: center;
    gap: 56px;
    margin-top: 32px;
    padding-top: 32px;
    border-top: 1px solid var(--t1-rule-2);
}
.top-1 .t1-meta-num {
    font-size: 32px;
    font-weight: 400;
    color: var(--t1-text);
    font-family: var(--t1-mincho);
    line-height: 1.2;
}
.top-1 .t1-meta-label {
    font-family: var(--t1-sans);
    font-size: 11px;
    letter-spacing: 0.25em;
    color: var(--t1-meta);
    font-weight: 600;
    margin-top: 4px;
}

/* ----- 5. Open Positions ----- */
.top-1 .t1-jobs {
    padding: 120px 56px;
    max-width: 1100px;
    margin: 0 auto;
}
/* 連続する .t1-jobs（仕事を探す→ピックアップ求人）は間の余白を詰める */
.top-1 .t1-jobs.noa-top-jobs {
    padding-bottom: 40px;
}
.top-1 .t1-jobs + .t1-jobs {
    padding-top: 0;
}
/* ピックアップ求人のブロックタイトル直下の余白も小さく */
.top-1 .noa-top-pickup .t1-cat-block-title {
    margin-bottom: 16px;
}
.top-1 .t1-jobs-head {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin-bottom: 40px;
    padding-bottom: 24px;
    border-bottom: 1px solid var(--t1-rule);
}
.top-1 .t1-jobs-label {
    font-family: var(--t1-sans);
    font-size: 11px;
    letter-spacing: 0.3em;
    color: var(--t1-meta);
    font-weight: 600;
}
.top-1 .t1-jobs-title {
    font-family: var(--t1-mincho);
    font-size: 32px;
    font-weight: 400;
    letter-spacing: 0.04em;
    margin: 8px 0 0 0;
    background: transparent;
    border: 0;
}
.top-1 .t1-jobs-count {
    font-family: var(--t1-sans);
    font-size: 12px;
    color: var(--t1-muted);
    font-weight: 500;
}

/* カテゴリブロック（職種から / 勤務地から） */
.top-1 .t1-cat-block {
    margin-bottom: 32px;
}
.top-1 .t1-cat-block:last-child {
    margin-bottom: 0;
}
.top-1 .t1-cat-block-title {
    font-family: var(--t1-mincho);
    font-size: 18px;
    font-weight: 400;
    line-height: 1.4;
    letter-spacing: 0.04em;
    color: var(--t1-text);
    margin: 0 0 12px 0;
    padding: 0 0 8px 0;
    background: transparent;
    border: 0;
    border-bottom: 1px solid var(--t1-rule);
}
/* 勤務地：地域ラベルを左、pill 群を右に並べてコンパクトに */
.top-1 .t1-region-group {
    display: grid;
    grid-template-columns: 88px 1fr;
    gap: 0 16px;
    align-items: baseline;
    padding: 8px 0;
}
.top-1 .t1-region-group + .t1-region-group {
    border-top: 1px dashed var(--t1-rule);
}
.top-1 .t1-region-name {
    font-family: var(--t1-mincho);
    font-size: 14px;
    letter-spacing: 0.06em;
    color: var(--t1-text);
    font-weight: 400;
    line-height: 1.4;
    padding-top: 4px;
}
.top-1 .t1-region-name a {
    color: var(--t1-text);
    text-decoration: none;
    border-bottom: 1px solid transparent;
    transition: color 0.2s, border-color 0.2s;
}
.top-1 .t1-region-name a:hover,
.top-1 .t1-region-name a:focus {
    color: var(--t1-meta);
    border-bottom-color: currentColor;
}
.top-1 .t1-region-group .t1-pill-row {
    margin: 0;
}

@media (max-width: 640px) {
    .top-1 .t1-region-group {
        grid-template-columns: 1fr;
        gap: 6px 0;
    }
    .top-1 .t1-region-name {
        padding-top: 0;
    }
}

.top-1 .t1-tab-row {
    display: flex;
    gap: 4px;
    margin-bottom: 32px;
}
.top-1 .t1-tab {
    font-family: var(--t1-sans);
    background: transparent;
    border: none;
    padding: 12px 20px;
    font-size: 13px;
    letter-spacing: 0.1em;
    color: var(--t1-muted);
    font-weight: 600;
    cursor: pointer;
    border-bottom: 2px solid transparent;
    transition: color 0.2s, border-color 0.2s;
}
.top-1 .t1-tab.is-active {
    color: var(--t1-text);
    border-bottom-color: var(--t1-text);
}
.top-1 .t1-tab:hover:not(.is-active) {
    color: var(--t1-text-3);
}

.top-1 .t1-pill-row {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 48px;
}
/* 勤務地の region 内 pill-row は、grid 親が間隔を持つので margin リセット */
.top-1 .t1-region-group .t1-pill-row {
    margin-bottom: 0;
}
.top-1 .t1-pill {
    font-family: var(--t1-sans);
    padding: 6px 12px;
    border: 1px solid var(--t1-rule-2);
    background: var(--t1-bg);
    font-size: 12.5px;
    color: var(--t1-text-2);
    font-weight: 500;
    cursor: pointer;
    text-decoration: none;
    transition: background 0.2s, border-color 0.2s;
    line-height: 1.5;
}
.top-1 .t1-pill:hover,
.top-1 .t1-pill:focus {
    background: var(--t1-paper);
    border-color: var(--t1-text);
}
.top-1 .t1-pill-count {
    color: var(--t1-meta);
    margin-left: 8px;
    font-size: 11px;
}

.top-1 .t1-job-list {
    display: flex;
    flex-direction: column;
}
/* 列順：日付 / 写真 / 勤務地 / 職種 / 求人名 / 給与額 */
.top-1 .t1-job {
    display: grid;
    grid-template-columns: 76px 64px 60px 80px 1fr auto;
    gap: 16px;
    align-items: center;
    padding: 16px 0;
    border-bottom: 1px solid var(--t1-rule);
    font-family: var(--t1-sans);
    text-decoration: none;
    color: var(--t1-text);
    transition: background 0.2s;
}
.top-1 .t1-job:hover {
    background: var(--t1-paper);
}
.top-1 .t1-job-thumb {
    width: 64px;
    height: 64px;
    overflow: hidden;
    background: var(--t1-paper);
    border: 1px solid var(--t1-rule);
}
.top-1 .t1-job-thumb-img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover;
    display: block;
}
.top-1 .t1-job-date {
    font-size: 12px;
    color: var(--t1-meta);
    font-weight: 500;
    letter-spacing: 0.05em;
}
.top-1 .t1-job-badge {
    font-size: 11px;
    letter-spacing: 0.1em;
    color: var(--t1-text-3);
    font-weight: 700;
    border: 1px solid var(--t1-gold);
    padding: 4px 6px;
    text-align: center;
    line-height: 1.4;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.top-1 .t1-job-title {
    font-size: 16px;
    color: var(--t1-text);
    font-weight: 500;
    font-family: var(--t1-mincho);
    line-height: 1.5;
}
.top-1 .t1-job-wage {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 2px;
    white-space: nowrap;
    text-align: right;
}
.top-1 .t1-job-wage-type {
    font-family: var(--t1-sans);
    font-size: 10px;
    letter-spacing: 0.2em;
    color: var(--t1-meta);
    font-weight: 700;
    line-height: 1;
}
.top-1 .t1-job-wage-amount {
    font-family: var(--t1-mincho);
    font-size: 14px;
    color: var(--t1-text);
    font-weight: 500;
    letter-spacing: 0.02em;
    line-height: 1.3;
}
.top-1 .t1-job-loc {
    font-family: var(--t1-sans);
    font-size: 11px;
    letter-spacing: 0.1em;
    color: var(--t1-text-3);
    font-weight: 700;
    border: 1px solid var(--t1-rule-2);
    padding: 4px 6px;
    text-align: center;
    line-height: 1.4;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

@media (max-width: 768px) {
    /* モバイル：写真左固定／右側1段目に [日付 地域 職種] が横並び、2段目にタイトル、給与は最右に縦中央 */
    .top-1 .t1-job {
        grid-template-columns: 56px auto auto auto 1fr auto;
        grid-template-rows: auto auto;
        gap: 6px 8px;
        padding: 14px 0;
        align-items: center;
    }
    .top-1 .t1-job-thumb {
        grid-column: 1;
        grid-row: 1 / -1;
        width: 56px;
        height: 56px;
        align-self: start;
    }
    .top-1 .t1-job-date {
        grid-column: 2;
        grid-row: 1;
        font-size: 11px;
    }
    .top-1 .t1-job-loc {
        grid-column: 3;
        grid-row: 1;
        justify-self: start;
        font-size: 10px;
        padding: 3px 7px !important;
    }
    .top-1 .t1-job-badge {
        grid-column: 4;
        grid-row: 1;
        justify-self: start;
        font-size: 10px;
        padding: 3px 7px;
    }
    .top-1 .t1-job-title {
        grid-column: 2 / 6;
        grid-row: 2;
        font-size: 14.5px;
        line-height: 1.45;
    }
    .top-1 .t1-job-wage {
        grid-column: 6;
        grid-row: 1 / -1;
        align-self: center;
        align-items: flex-end;
        text-align: right;
    }
    .top-1 .t1-job-wage-amount {
        font-size: 13px;
    }
}

/* さらに狭い：給与をタイトル下に折り返し */
@media (max-width: 480px) {
    .top-1 .t1-job {
        grid-template-columns: 56px auto auto auto 1fr;
        grid-template-rows: auto auto auto;
    }
    .top-1 .t1-job-title {
        grid-column: 2 / 6;
        grid-row: 2;
    }
    .top-1 .t1-job-wage {
        grid-column: 2 / 6;
        grid-row: 3;
        align-items: flex-start;
        text-align: left;
        margin-top: 4px;
    }
}
.top-1 .t1-job-more {
    text-align: center;
    padding: 40px 0 0 0;
    margin-top: 16px;
}

/* ----- 6. Cards ----- */
.top-1 .t1-cards-wrap {
    padding: 120px 56px;
    background: var(--t1-paper);
    border-top: 1px solid var(--t1-rule);
}
.top-1 .t1-cards-inner {
    max-width: 1100px;
    margin: 0 auto;
}
.top-1 .t1-cards-head {
    text-align: center;
    margin-bottom: 56px;
}
.top-1 .t1-cards-title {
    font-family: var(--t1-mincho);
    font-size: 28px;
    font-weight: 400;
    letter-spacing: 0.04em;
    margin: 0;
    background: transparent;
    border: 0;
}
.top-1 .t1-cards-desc {
    font-family: var(--t1-mincho);
    font-size: 16px;
    line-height: 2;
    color: var(--t1-text-3);
    max-width: 640px;
    margin: 20px auto 0;
    letter-spacing: 0.04em;
}
/* 採用フロー風 番号付きフレームカード */
.top-1 .t1-cards-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    background: transparent;
    border: 0;
}
.top-1 .t1-card {
    background: var(--t1-bg);
    padding: 36px 32px 32px;
    min-height: 220px;
    display: block;
    text-decoration: none;
    color: var(--t1-text);
    border: 1px solid var(--t1-gold);
    transition: background 0.25s, transform 0.25s, box-shadow 0.25s;
}
.top-1 .t1-card:hover,
.top-1 .t1-card:focus {
    background: #fffdf9;
    transform: translateY(-2px);
    box-shadow: 0 8px 20px -8px rgba(154, 140, 90, 0.25);
}
.top-1 .t1-card-num {
    font-family: var(--t1-mincho);
    font-size: 44px;
    font-weight: 400;
    color: var(--t1-gold);
    letter-spacing: 0.04em;
    line-height: 1;
    margin: 0 0 32px 0;
}
.top-1 .t1-card-title {
    font-family: var(--t1-mincho);
    font-size: 20px;
    font-weight: 400;
    letter-spacing: 0.04em;
    margin: 0 0 10px 0;
    color: var(--t1-text);
    line-height: 1.5;
}
.top-1 .t1-card-body {
    font-size: 14px;
    line-height: 1.85;
    color: var(--t1-text-3);
    margin: 0;
}

/* ----- 6.5. Interview Section（余白広め × 横スクロール） ----- */
.top-1 .t1-interview {
    padding: 200px 0 220px;
    background: var(--t1-bg);
}
.top-1 .t1-interview-label,
.top-1 .t1-interview-title,
.top-1 .t1-interview-lead {
    text-align: center;
    padding-left: 24px;
    padding-right: 24px;
}
.top-1 .t1-interview-label {
    font-family: var(--t1-serif, "Georgia", serif);
    font-size: 12px;
    letter-spacing: 0.28em;
    color: var(--t1-text-3);
    margin-bottom: 28px;
    text-transform: uppercase;
}
.top-1 .t1-interview-title {
    font-family: var(--t1-mincho);
    font-size: 40px;
    font-weight: 400;
    letter-spacing: 0.12em;
    line-height: 1.5;
    margin: 0 0 36px;
    background: transparent;
    border: 0;
    color: var(--t1-text-1);
}
.top-1 .t1-interview-lead {
    font-family: var(--t1-mincho);
    font-size: 16px;
    line-height: 2.4;
    color: var(--t1-text-3);
    max-width: 640px;
    margin: 0 auto 120px;
}
/* カルーセル：3枚表示 + 前後矢印 */
.top-1 .t1-interview-carousel {
    position: relative;
    max-width: 1050px;
    margin: 0 auto 100px;
    padding: 0 80px;
}
.top-1 .t1-interview-viewport {
    overflow: hidden;
}
.top-1 .t1-interview-grid {
    display: flex;
    gap: 160px;
    overflow-x: auto;
    scroll-behavior: smooth;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding-bottom: 20px;
}
.top-1 .t1-interview-grid::-webkit-scrollbar {
    display: none;
}
/* 矢印ボタン */
.top-1 .t1-interview-nav {
    position: absolute;
    top: 40%;
    transform: translateY(-50%);
    width: 56px;
    height: 56px;
    border: 1px solid var(--t1-rule);
    background: #fff;
    border-radius: 50%;
    cursor: pointer;
    font-family: var(--t1-serif, "Georgia", serif);
    font-size: 20px;
    line-height: 1;
    color: var(--t1-text-1);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 2;
    transition: background 0.2s ease, border-color 0.2s ease, opacity 0.2s ease;
    padding: 0;
}
.top-1 .t1-interview-nav:hover {
    background: var(--t1-text-1);
    border-color: var(--t1-text-1);
    color: #fff;
}
.top-1 .t1-interview-nav-prev {
    left: 0;
}
.top-1 .t1-interview-nav-next {
    right: 0;
}
.top-1 .t1-interview-nav:disabled,
.top-1 .t1-interview-nav.is-disabled {
    opacity: 0.25;
    cursor: default;
    pointer-events: none;
}
.top-1 .t1-interview-card {
    text-decoration: none;
    color: inherit;
    display: block;
    flex: 0 0 180px;
    scroll-snap-align: start;
    transition: transform 0.3s ease;
}
.top-1 .t1-interview-card:hover {
    transform: translateY(-4px);
}
/* 白いベールが消える → 画像くっきり */
.top-1 .t1-interview-card:hover .t1-interview-card-image::after {
    opacity: 0;
}
.top-1 .t1-interview-card-image {
    position: relative;   /* ::after を上に重ねるため */
    width: 100%;
    aspect-ratio: 4 / 5;
    overflow: hidden;
    background: transparent;
    margin: 0 0 14px;
}
.top-1 .t1-interview-card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 1;
    filter: none;
    display: block;
}
/* 平常時: 白いベールをかけて薄く見せる */
.top-1 .t1-interview-card-image::after {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(255, 255, 255, 0.55);
    opacity: 1;
    transition: opacity 0.5s ease;
    pointer-events: none;
}
.top-1 .t1-interview-card-no {
    font-family: var(--t1-serif, "Georgia", serif);
    font-size: 11px;
    letter-spacing: 0.18em;
    color: var(--t1-text-3);
    margin-bottom: 8px;
}
.top-1 .t1-interview-card-name {
    font-family: var(--t1-mincho);
    font-size: 15px;
    line-height: 1.4;
    letter-spacing: 0.04em;
    color: var(--t1-text-1);
    margin-bottom: 4px;
}
.top-1 .t1-interview-card-role {
    font-size: 11px;
    letter-spacing: 0.04em;
    color: var(--t1-text-3);
    line-height: 1.5;
}
.top-1 .t1-interview .t1-link-arrow {
    display: block;
    text-align: center;
    font-family: var(--t1-mincho);
    font-size: 15px;
    letter-spacing: 0.12em;
    color: var(--t1-text-1);
    text-decoration: none;
    transition: opacity 0.2s ease;
}
.top-1 .t1-interview .t1-link-arrow:after {
    content: none;
}
.top-1 .t1-interview .t1-link-arrow:hover {
    opacity: 0.7;
}
.top-1 .t1-interview .t1-link-arrow span {
    margin-left: 8px;
}
/* タブレット */
@media (max-width: 1024px) {
    .top-1 .t1-interview {
        padding: 140px 0 160px;
    }
    .top-1 .t1-interview-title {
        font-size: 32px;
    }
    .top-1 .t1-interview-lead {
        margin-bottom: 80px;
    }
    .top-1 .t1-interview-carousel {
        padding: 0 64px;
    }
    .top-1 .t1-interview-grid {
        gap: 80px;
    }
    .top-1 .t1-interview-card {
        flex: 0 0 170px;
    }
    .top-1 .t1-interview-nav {
        width: 44px;
        height: 44px;
        font-size: 16px;
    }
}
/* モバイル */
@media (max-width: 640px) {
    .top-1 .t1-interview {
        padding: 100px 0 120px;
    }
    .top-1 .t1-interview-title {
        font-size: 26px;
        letter-spacing: 0.08em;
    }
    .top-1 .t1-interview-lead {
        font-size: 14px;
        margin-bottom: 56px;
    }
    .top-1 .t1-interview-carousel {
        padding: 0 40px;
        margin-bottom: 64px;
    }
    .top-1 .t1-interview-grid {
        gap: 40px;
    }
    .top-1 .t1-interview-card {
        flex: 0 0 62%;
    }
    .top-1 .t1-interview-card-name {
        font-size: 15px;
    }
    .top-1 .t1-interview-nav {
        width: 36px;
        height: 36px;
        font-size: 14px;
    }
}

/* ----- 7. Closing CTA ----- */
.top-1 .t1-cta {
    padding: 180px 56px 240px;
    text-align: center;
    background: var(--t1-paper);
    border-top: 1px solid var(--t1-rule);
}
.top-1 .t1-cta-body {
    font-size: 19px;
    line-height: 2.2;
    color: var(--t1-text-2);
    max-width: 600px;
    margin: 0 auto 120px;
    font-weight: 400;
}
.top-1 .t1-cta-body p {
    margin: 0 0 6px 0;
}
.top-1 .t1-cta-buttons {
    display: flex;
    gap: 12px;
    justify-content: center;
    flex-wrap: wrap;
}
.top-1 .t1-cta-primary,
.top-1 .t1-cta-secondary {
    font-family: var(--t1-sans);
    padding: 20px 40px;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.15em;
    text-decoration: none;
    cursor: pointer;
    transition: background 0.2s, color 0.2s;
    border-radius: 0;
    display: inline-block;
}
.top-1 .t1-cta-primary {
    background: var(--t1-text);
    color: var(--t1-bg);
    border: 1px solid var(--t1-text);
}
.top-1 .t1-cta-primary:hover,
.top-1 .t1-cta-primary:focus {
    background: #1a1814;
}
.top-1 .t1-cta-secondary {
    background: transparent;
    color: var(--t1-text);
    border: 1px solid var(--t1-text);
    font-weight: 500;
}
.top-1 .t1-cta-secondary:hover,
.top-1 .t1-cta-secondary:focus {
    background: var(--t1-text);
    color: var(--t1-bg);
}

/* レスポンシブ */
@media (max-width: 1024px) {
    .top-1 .t1-hero,
    .top-1 .t1-jobs,
    .top-1 .t1-cards-wrap,
    .top-1 .t1-recruit,
    .top-1 .t1-cta,
    .top-1 .t1-lead,
    .top-1 .t1-scenes,
    .top-1 .t1-news {
        padding-left: 32px;
        padding-right: 32px;
    }
    .top-1 .t1-hero-title { font-size: 56px; }
    .top-1 .t1-recruit-title { font-size: 30px; }
}

@media (max-width: 768px) {
    .top-1 .t1-news {
        padding: 56px 24px;
    }
    .top-1 .t1-news-head {
        flex-direction: column;
        align-items: flex-start;
        gap: 14px;
    }
    .top-1 .t1-news-title { font-size: 22px; }
    .top-1 .t1-news-link {
        grid-template-columns: 90px 1fr auto;
        grid-template-rows: auto auto;
        gap: 6px 14px;
        padding: 16px 6px;
        align-items: start;
    }
    .top-1 .t1-news-date {
        grid-row: 1 / 2;
        grid-column: 1 / 2;
        font-size: 12px;
    }
    .top-1 .t1-news-cat {
        grid-row: 1 / 2;
        grid-column: 2 / 3;
        justify-self: start;
        font-size: 9px;
        padding: 3px 8px;
    }
    .top-1 .t1-news-title-line {
        grid-row: 2 / 3;
        grid-column: 1 / 4;
        font-size: 15px;
        line-height: 1.6;
    }
    .top-1 .t1-news-arrow {
        grid-row: 1 / 2;
        grid-column: 3 / 4;
    }
}

@media (max-width: 768px) {
    .top-1 .t1-hero {
        grid-template-columns: 1fr;
        gap: 40px;
        padding: 56px 24px 64px;
    }
    .top-1 .t1-hero-r {
        aspect-ratio: 4 / 3;
    }
    .top-1 .t1-hero-title { font-size: 40px; }
    .top-1 .t1-hero-sub { font-size: 16px; }
    .top-1 .t1-lead,
    .top-1 .t1-recruit,
    .top-1 .t1-cards-wrap,
    .top-1 .t1-cta {
        padding-left: 24px;
        padding-right: 24px;
        padding-top: 80px;
        padding-bottom: 80px;
    }
    .top-1 .t1-scenes { padding: 32px 24px 0; }
    .top-1 .t1-scene {
        grid-template-columns: 1fr;
        gap: 24px;
        padding: 56px 0;
        align-items: start;
    }
    .top-1 .t1-scene-photo {
        order: -1;
    }
    .top-1 .t1-scene-photo img {
        aspect-ratio: 16 / 10;
    }
    .top-1 .t1-scene-no { padding-top: 0; }
    .top-1 .t1-scene-headline { font-size: 22px; }
    .top-1 .t1-scenes-link-wrap { padding: 40px 0 80px; }
    .top-1 .t1-meta-row {
        flex-direction: column;
        gap: 24px;
    }
    .top-1 .t1-jobs { padding: 80px 24px; }
    .top-1 .t1-jobs-title { font-size: 24px; }
    /* 注：t1-job のモバイルレイアウトは前述の @media (max-width:768px) で
       より詳細に定義済み。古い 1fr/auto 設定はここで意図的に削除。 */
    .top-1 .t1-cards-grid {
        grid-template-columns: 1fr;
    }
    .top-1 .t1-cta-buttons {
        flex-direction: column;
        align-items: stretch;
    }
}

/* ============================================================
   スタッフインタビュー（/interview/）
   雑誌風エディトリアル：archive と single
   ============================================================ */
.iv-archive,
.iv-single {
    --iv-text:    #2a2620;
    --iv-text-3:  #5a5448;
    --iv-meta:    #9a9080;
    --iv-rule:    #e8e2d4;
    --iv-soft:    #f7f4ee;
    --iv-accent:  #c9b87a;
    --iv-action:  #1f4f8b;
    --iv-mincho:  "Hiragino Mincho ProN","Yu Mincho","YuMincho","Noto Serif JP",serif;
    --iv-sans:    -apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif;
    color: var(--iv-text);
}

/* ----- archive ----- */
.iv-archive {
    max-width: 1080px;
    margin: 0 auto;
    padding: 32px 16px 80px;
}
.iv-archive-header {
    text-align: center;
    margin-bottom: 56px;
    padding-bottom: 32px;
    border-bottom: 1px solid var(--iv-rule);
}
.iv-archive-kicker {
    font-family: var(--iv-sans);
    font-size: 11px;
    letter-spacing: 0.4em;
    color: var(--iv-meta);
    font-weight: 700;
    margin-bottom: 12px;
}
.iv-archive-title {
    font-family: var(--iv-mincho);
    font-size: 32px;
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: 0.06em;
    margin: 0 0 16px 0;
    padding: 0;
    background: transparent;
    border: 0;
    color: var(--iv-text);
}
.iv-archive-lead {
    color: var(--iv-text-3);
    font-size: 14px;
    line-height: 2;
    margin: 0;
}

/* archive — リスト形式（横並び：サムネ + テキスト） */
.iv-archive-list {
    display: flex;
    flex-direction: column;
    border-top: 1px solid var(--iv-rule);
}
.iv-archive-card {
    border-bottom: 1px solid var(--iv-rule);
}
.iv-archive-card-link {
    display: grid;
    grid-template-columns: 200px 1fr;
    gap: 32px;
    align-items: center;
    padding: 28px 8px;
    color: var(--iv-text);
    text-decoration: none;
    transition: background 0.2s;
}
.iv-archive-card-link:hover,
.iv-archive-card-link:focus {
    background: var(--iv-soft);
}
.iv-archive-card-image {
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: var(--iv-soft);
    margin: 0;
}
.iv-archive-card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
}
.iv-archive-card-link:hover .iv-archive-card-image img {
    transform: scale(1.04);
}
.iv-archive-card-body {
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.iv-archive-card-num {
    font-family: var(--iv-sans);
    font-size: 11px;
    letter-spacing: 0.25em;
    color: var(--iv-accent);
    font-weight: 700;
    margin-bottom: 8px;
}
.iv-archive-card-catch {
    font-family: var(--iv-mincho);
    font-size: 22px;
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: 0.04em;
    margin: 0 0 12px 0;
    padding: 0;
    background: transparent;
    border: 0;
    color: var(--iv-text);
}
.iv-archive-card-person {
    font-size: 13px;
    line-height: 1.6;
    color: var(--iv-text-3);
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 4px 14px;
}
.iv-archive-card-name {
    font-family: var(--iv-mincho);
    font-size: 19px;
    color: var(--iv-text);
    letter-spacing: 0.04em;
    margin-right: 0;
}
.iv-archive-card-dept {
    color: var(--iv-meta);
    font-family: var(--iv-sans);
    font-size: 12px;
}
.iv-archive-empty {
    text-align: center;
    color: var(--iv-meta);
    padding: 80px 0;
}

/* ----- single ----- */
.iv-single {
    max-width: 880px;
    margin: 0 auto;
    padding: 32px 16px 80px;
}
.iv-single-cover {
    margin-bottom: 56px;
    padding-bottom: 40px;
    border-bottom: 1px solid var(--iv-rule);
}
.iv-single-cover-image {
    aspect-ratio: 16 / 10;
    overflow: hidden;
    background: var(--iv-soft);
    margin-bottom: 32px;
}
.iv-single-cover-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.iv-single-cover-body {
    text-align: center;
    max-width: 680px;
    margin: 0 auto;
}
.iv-single-kicker {
    font-family: var(--iv-sans);
    font-size: 11px;
    letter-spacing: 0.4em;
    color: var(--iv-meta);
    font-weight: 700;
    margin-bottom: 16px;
}
.iv-single-catch {
    font-family: var(--iv-mincho);
    font-size: 32px;
    font-weight: 400;
    line-height: 1.6;
    letter-spacing: 0.06em;
    margin: 0 0 32px 0;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--iv-text);
}
.iv-single-person {
    display: grid;
    grid-template-columns: max-content 1fr;
    gap: 4px 16px;
    margin: 0;
    text-align: left;
    max-width: 480px;
    margin-left: auto;
    margin-right: auto;
    padding: 18px 24px;
    background: var(--iv-soft);
    border: 1px solid var(--iv-rule);
    border-radius: 4px;
}
.iv-single-person dt {
    font-family: var(--iv-sans);
    font-size: 11px;
    color: var(--iv-meta);
    letter-spacing: 0.15em;
    font-weight: 600;
    margin: 0;
    padding: 4px 0;
}
.iv-single-person dd {
    font-family: var(--iv-mincho);
    font-size: 14px;
    color: var(--iv-text);
    margin: 0;
    padding: 4px 0;
    letter-spacing: 0.02em;
}

/* 本文（Q&A） */
.iv-single-body {
    font-size: 15px;
    line-height: 1.95;
    color: var(--iv-text);
}
.iv-single-body .iv-qa {
    margin: 0 0 56px 0;
}
.iv-single-body .iv-q {
    font-family: var(--iv-mincho);
    font-size: 19px;
    font-weight: 400;
    line-height: 1.6;
    letter-spacing: 0.04em;
    margin: 0 0 16px 0;
    padding: 0 0 0 36px;
    position: relative;
    color: var(--iv-text);
    background: transparent;
    border: 0;
}
.iv-single-body .iv-q::before {
    content: "Q.";
    position: absolute;
    left: 0;
    top: -2px;
    font-family: var(--iv-mincho);
    font-size: 22px;
    font-weight: 600;
    color: var(--iv-action);
    line-height: 1.4;
}
.iv-single-body .iv-a {
    margin: 0 0 24px 36px;
    padding: 0 0 0 24px;
    position: relative;
    font-size: 15px;
    line-height: 2;
    color: var(--iv-text-3);
    border-left: 1px solid var(--iv-rule);
}
.iv-single-body .iv-a::before {
    content: "A.";
    position: absolute;
    left: -36px;
    top: -2px;
    font-family: var(--iv-mincho);
    font-size: 22px;
    font-weight: 600;
    color: var(--iv-accent);
    line-height: 1.4;
}
.iv-single-body .iv-photo {
    margin: 32px 0;
}
.iv-single-body .iv-photo img {
    width: 100%;
    height: auto;
    display: block;
}

/* footer / CTA */
.iv-single-footer {
    margin-top: 64px;
    padding-top: 48px;
    border-top: 1px solid var(--iv-rule);
    text-align: center;
}
.iv-cta-lead {
    font-family: var(--iv-mincho);
    font-size: 19px;
    line-height: 1.7;
    letter-spacing: 0.04em;
    color: var(--iv-text);
    margin: 0 0 24px 0;
}
.iv-cta-buttons {
    display: flex;
    gap: 16px;
    justify-content: center;
    flex-wrap: wrap;
    margin-bottom: 32px;
}
.iv-cta-btn {
    display: inline-block;
    padding: 14px 32px;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-decoration: none;
    border-radius: 3px;
    font-family: var(--iv-sans);
    transition: background 0.2s, color 0.2s;
    background: transparent;
    color: var(--iv-text);
    border: 1px solid var(--iv-text);
}
.iv-cta-btn:hover,
.iv-cta-btn:focus {
    background: var(--iv-text);
    color: #ffffff;
}
.iv-cta-btn--primary {
    background: var(--iv-action);
    color: #ffffff;
    border-color: var(--iv-action);
}
.iv-cta-btn--primary:hover,
.iv-cta-btn--primary:focus {
    background: #1a3f72;
    color: #ffffff;
}
.iv-back {
    margin: 0;
    font-size: 13px;
}
.iv-back a {
    color: var(--iv-meta);
    text-decoration: none;
    border-bottom: 1px solid currentColor;
    padding-bottom: 1px;
}

/* 次の章 リンク (記事の一番最後) */
.iv-single .iv-next-chapter {
    text-align: center;
    margin: 60px auto 40px;
    padding: 0 24px;
    font-family: var(--noa-serif, serif);
    font-size: 15px;
    letter-spacing: 0.08em;
}
.iv-single .iv-next-chapter a {
    display: inline-block;
    padding: 18px 32px;
    color: var(--iv-meta, #666);
    text-decoration: none;
    border-top: 1px solid #ccc;
    border-bottom: 1px solid #ccc;
    transition: color 0.3s ease, letter-spacing 0.3s ease;
}
.iv-single .iv-next-chapter a:hover {
    color: #1a3f72;
    letter-spacing: 0.12em;
}
.iv-single .iv-next-chapter span {
    margin-right: 8px;
    transition: transform 0.3s ease;
    display: inline-block;
}
.iv-single .iv-next-chapter a:hover span {
    transform: translateX(-4px);
}

/* archive / single はサイドバー無しでフル幅 */
.post-type-archive-interview #side_col,
.single-interview #side_col {
    display: none !important;
}
.post-type-archive-interview #left_col,
.single-interview #left_col {
    width: 100% !important;
    float: none !important;
    max-width: none !important;
    margin: 0;
}
.post-type-archive-interview #post_title,
.single-interview #post_title {
    display: none !important;
}

@media (max-width: 800px) {
    .iv-archive-card-link {
        grid-template-columns: 120px 1fr;
        gap: 20px;
        padding: 20px 4px;
    }
    .iv-archive-card-catch {
        font-size: 17px;
        margin-bottom: 8px;
    }
    .iv-archive-card-num {
        font-size: 10px;
        margin-bottom: 4px;
    }
    .iv-archive-card-person {
        font-size: 12px;
    }
    .iv-archive-card-name {
        font-size: 16px;
    }
    .iv-archive-title,
    .iv-single-catch {
        font-size: 26px;
    }
    .iv-single-body .iv-q {
        font-size: 17px;
        padding-left: 32px;
    }
    .iv-single-body .iv-a {
        margin-left: 32px;
        font-size: 14.5px;
    }
}

/* ============================================================
   サイトマップ（/sitemap/）
   全ページ・全タクソノミーへのリンク集
   ============================================================ */
.sitemap {
    --sm-text:    #2a2620;
    --sm-text-3:  #5a5448;
    --sm-meta:    #9a9080;
    --sm-rule:    #e8e2d4;
    --sm-soft:    #f7f4ee;
    --sm-link:    #1f4f8b;
    --sm-mincho:  "Hiragino Mincho ProN","Yu Mincho","YuMincho","Noto Serif JP",serif;
    --sm-sans:    -apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif;

    max-width: 860px;
    margin: 0 auto;
    color: var(--sm-text);
    font-size: 15px;
    line-height: 1.85;
    padding: 0 8px;
}

.sitemap .sitemap-lead {
    color: var(--sm-text-3);
    font-size: 14px;
    margin: 0 0 40px 0;
    line-height: 1.95;
}

.sitemap .sitemap-section {
    margin: 0 0 56px 0;
}
.sitemap .sitemap-section:last-of-type {
    margin-bottom: 0;
}

.sitemap h2 {
    font-family: var(--sm-mincho);
    font-size: 22px;
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: 0.04em;
    color: var(--sm-text);
    margin: 0 0 20px 0;
    padding: 0 0 12px 0;
    border-bottom: 1px solid var(--sm-rule);
    background: transparent;
}

.sitemap h3 {
    font-family: var(--sm-sans);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.2em;
    color: var(--sm-meta);
    margin: 24px 0 12px 0;
    padding: 0;
    text-transform: uppercase;
    background: transparent;
    border: 0;
}

/* ページリスト（説明テキスト付き） */
.sitemap .sitemap-pages {
    list-style: none;
    margin: 0;
    padding: 0;
}
.sitemap .sitemap-pages li {
    padding: 8px 0;
    border-bottom: 1px solid var(--sm-rule);
    font-size: 14.5px;
    line-height: 1.6;
}
.sitemap .sitemap-pages li:first-child {
    padding-top: 0;
}
.sitemap .sitemap-pages a {
    font-family: var(--sm-mincho);
    font-size: 16px;
    color: var(--sm-text);
    text-decoration: none;
    border-bottom: 1px solid transparent;
    transition: color 0.2s, border-color 0.2s;
    margin-right: 12px;
}
.sitemap .sitemap-pages a:hover,
.sitemap .sitemap-pages a:focus {
    color: var(--sm-link);
    border-bottom-color: currentColor;
}
.sitemap .sitemap-desc {
    color: var(--sm-meta);
    font-size: 13px;
    font-family: var(--sm-sans);
}

/* タクソノミーリスト（件数付き） */
.sitemap .sitemap-terms {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0 24px;
}
.sitemap .sitemap-terms li {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    padding: 8px 0;
    border-bottom: 1px solid var(--sm-rule);
    font-size: 14.5px;
}
.sitemap .sitemap-terms a {
    font-family: var(--sm-mincho);
    font-size: 15px;
    color: var(--sm-text);
    text-decoration: none;
    border-bottom: 1px solid transparent;
    transition: color 0.2s, border-color 0.2s;
}
.sitemap .sitemap-terms a:hover,
.sitemap .sitemap-terms a:focus {
    color: var(--sm-link);
    border-bottom-color: currentColor;
}
.sitemap .sitemap-count {
    font-family: var(--sm-sans);
    font-size: 11px;
    color: var(--sm-meta);
    letter-spacing: 0.1em;
}

.sitemap .sitemap-empty {
    color: var(--sm-meta);
    font-size: 13px;
    margin: 0;
    padding: 8px 0;
}

@media (max-width: 640px) {
    .sitemap {
        font-size: 14px;
    }
    .sitemap h2 {
        font-size: 19px;
    }
    .sitemap .sitemap-terms {
        grid-template-columns: 1fr;
    }
    .sitemap .sitemap-pages a {
        display: block;
        margin-right: 0;
    }
    .sitemap .sitemap-desc {
        display: block;
        margin-top: 2px;
    }
}

/* ============================================================
   働く環境（/workstyle/）
   一日の流れ・福利厚生・働き方・拠点
   ============================================================ */
.workstyle {
    --ws-text:    #2a2620;
    --ws-text-3:  #5a5448;
    --ws-meta:    #9a9080;
    --ws-rule:    #e8e2d4;
    --ws-soft:    #f7f4ee;
    --ws-accent:  #c9b87a;
    --ws-action:  #1f4f8b;
    --ws-mincho:  "Hiragino Mincho ProN","Yu Mincho","YuMincho","Noto Serif JP",serif;
    --ws-sans:    -apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif;

    max-width: 860px;
    margin: 0 auto;
    color: var(--ws-text);
    font-size: 15px;
    line-height: 1.85;
    padding: 0 8px;
}

.workstyle .workstyle-lead {
    background: var(--ws-soft);
    border-left: 3px solid var(--ws-accent);
    padding: 26px 28px;
    margin: 0 0 120px 0;
    color: var(--ws-text-3);
    font-size: 14.5px;
    line-height: 2;
}

.workstyle .ws-section {
    margin: 0 0 140px 0;
}

.workstyle .ws-h2 {
    font-family: var(--ws-mincho);
    font-size: 22px;
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: 0.04em;
    color: var(--ws-text);
    margin: 0 0 24px 0;
    padding: 0 0 18px 0;
    border-bottom: 1px solid var(--ws-rule);
    background: transparent;
}
.workstyle .ws-section-desc {
    font-size: 14px;
    color: var(--ws-text-3);
    margin: 0 0 40px 0;
    line-height: 1.95;
}

/* ----- 一日の流れ：3カード ----- */
.workstyle .ws-day-cards {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    margin-top: 24px;
}
.workstyle .ws-day-card {
    background: #fffdfa;
    border: 1px solid var(--ws-rule);
    border-radius: 4px;
    padding: 20px 22px 16px;
}
.workstyle .ws-day-title {
    font-family: var(--ws-mincho);
    font-size: 17px;
    font-weight: 400;
    margin: 0 0 16px 0;
    padding: 0 0 10px 0;
    border-bottom: 1px solid var(--ws-rule);
    letter-spacing: 0.04em;
    color: var(--ws-text);
    background: transparent;
}
.workstyle .ws-timeline {
    list-style: none;
    margin: 0;
    padding: 0;
}
.workstyle .ws-timeline li {
    display: grid;
    grid-template-columns: 50px 1fr;
    gap: 12px;
    font-size: 13.5px;
    line-height: 1.6;
    padding: 6px 0;
    color: var(--ws-text-3);
}
.workstyle .ws-timeline li + li {
    border-top: 1px dashed var(--ws-rule);
}
.workstyle .ws-timeline time {
    font-family: var(--ws-sans);
    font-size: 12px;
    font-weight: 600;
    color: var(--ws-action);
    letter-spacing: 0.04em;
    padding-top: 2px;
}

/* ----- 福利厚生リスト ----- */
.workstyle .ws-benefits {
    list-style: none;
    margin: 24px 0 0 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px 24px;
}
.workstyle .ws-benefits li {
    position: relative;
    padding: 12px 16px 12px 36px;
    background: #fffdfa;
    border: 1px solid var(--ws-rule);
    border-radius: 3px;
    font-size: 14px;
    line-height: 1.7;
    color: var(--ws-text-3);
}
.workstyle .ws-benefits li::before {
    content: "✓";
    position: absolute;
    left: 14px;
    top: 12px;
    color: var(--ws-accent);
    font-weight: 700;
    font-size: 14px;
}
.workstyle .ws-benefits li strong {
    color: var(--ws-text);
    font-weight: 600;
}

/* ----- 多様な働き方：3カラム ----- */
.workstyle .ws-styles-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    margin-top: 24px;
}
.workstyle .ws-style-card {
    background: var(--ws-soft);
    border: 1px solid var(--ws-rule);
    border-radius: 4px;
    padding: 22px 22px 20px;
}
.workstyle .ws-style-label {
    display: inline-block;
    font-family: var(--ws-sans);
    font-size: 11px;
    letter-spacing: 0.2em;
    color: var(--ws-action);
    font-weight: 600;
    margin-bottom: 12px;
    padding: 4px 10px;
    background: #fff;
    border: 1px solid var(--ws-action);
    border-radius: 2px;
}
.workstyle .ws-style-title {
    font-family: var(--ws-mincho);
    font-size: 17px;
    font-weight: 400;
    margin: 0 0 10px 0;
    padding: 0;
    background: transparent;
    border: 0;
    line-height: 1.5;
    color: var(--ws-text);
}
.workstyle .ws-style-card p {
    margin: 0;
    font-size: 13.5px;
    line-height: 1.85;
    color: var(--ws-text-3);
}
.workstyle .ws-note {
    margin-top: 24px;
    padding: 16px 20px;
    background: #fffdfa;
    border-left: 3px solid var(--ws-accent);
    font-size: 14px;
    line-height: 1.85;
    color: var(--ws-text-3);
}
.workstyle .ws-note strong {
    color: var(--ws-text);
    font-weight: 600;
}

/* インタビューティーザー（リンクのみ） */
.workstyle .ws-link-arrow {
    display: inline-block;
    margin-top: 12px;
    color: var(--ws-action);
    text-decoration: none;
    font-family: var(--ws-mincho);
    font-size: 16px;
    border-bottom: 1px solid currentColor;
    padding-bottom: 2px;
    transition: color 0.2s;
}
.workstyle .ws-link-arrow:hover,
.workstyle .ws-link-arrow:focus {
    color: #1a3f72;
}

/* ----- 拠点 ----- */
.workstyle .ws-locations {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr;
    gap: 24px;
    margin-top: 24px;
}
.workstyle .ws-loc-group {
    background: #fffdfa;
    border: 1px solid var(--ws-rule);
    border-radius: 4px;
    padding: 18px 22px;
}
.workstyle .ws-loc-region {
    font-family: var(--ws-sans);
    font-size: 11px;
    letter-spacing: 0.25em;
    color: var(--ws-meta);
    font-weight: 600;
    margin: 0 0 12px 0;
    padding: 0 0 8px 0;
    border-bottom: 1px solid var(--ws-rule);
    background: transparent;
    text-transform: uppercase;
}
.workstyle .ws-loc-group ul {
    list-style: none;
    margin: 0;
    padding: 0;
}
.workstyle .ws-loc-group li {
    font-family: var(--ws-mincho);
    font-size: 14px;
    line-height: 1.85;
    color: var(--ws-text);
    padding: 4px 0;
    break-inside: avoid;
}
/* 北海道（最も項目数が多い・grid 内で 2fr の幅を持つ）は 2 カラム表示 */
.workstyle .ws-loc-group:first-of-type ul {
    columns: 2;
    column-gap: 20px;
}

/* ----- ボトムCTA ----- */
.workstyle .ws-cta {
    margin-top: 120px;
    padding: 60px 28px;
    text-align: center;
    background: var(--ws-soft);
    border: 1px solid var(--ws-rule);
    border-radius: 4px;
}
.workstyle .ws-cta-lead {
    font-family: var(--ws-mincho);
    font-size: 17px;
    line-height: 1.7;
    color: var(--ws-text);
    margin: 0 0 20px 0;
    letter-spacing: 0.02em;
}
.workstyle .ws-cta-btn {
    display: inline-block;
    background: var(--ws-action);
    color: #ffffff;
    padding: 14px 40px;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-decoration: none;
    border-radius: 3px;
    font-family: var(--ws-sans);
    transition: background 0.2s;
}
.workstyle .ws-cta-btn:hover,
.workstyle .ws-cta-btn:focus {
    background: #1a3f72;
}
.workstyle .ws-cta-sub {
    margin-top: 14px;
    font-size: 12px;
    color: var(--ws-meta);
    letter-spacing: 0.04em;
}

@media (max-width: 900px) {
    .workstyle .ws-day-cards,
    .workstyle .ws-styles-grid {
        grid-template-columns: 1fr;
    }
    .workstyle .ws-locations {
        grid-template-columns: 1fr 1fr;
    }
    .workstyle .ws-benefits {
        grid-template-columns: 1fr;
    }
}
@media (max-width: 640px) {
    .workstyle {
        font-size: 14px;
    }
    .workstyle .ws-h2 {
        font-size: 19px;
    }
    .workstyle .ws-locations {
        grid-template-columns: 1fr;
    }
    .workstyle .ws-loc-group:first-of-type ul {
        columns: 1;
    }
    .workstyle .ws-section {
        margin-bottom: 80px;
    }
}

/* ============================================================
   採用フロー（/flow/）
   縦タイムライン：左に番号バッジ、右にステップ内容
   ============================================================ */
.flow {
    --flow-text:   #2a2620;
    --flow-text-3: #5a5448;
    --flow-meta:   #9a9080;
    --flow-rule:   #e8e2d4;
    --flow-soft:   #f7f4ee;
    --flow-accent: #c9b87a;
    --flow-action: #1f4f8b;
    --flow-mincho: "Hiragino Mincho ProN","Yu Mincho","YuMincho","Noto Serif JP",serif;
    --flow-sans:   -apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif;

    max-width: 760px;
    margin: 0 auto;
    color: var(--flow-text);
    font-size: 15px;
    line-height: 1.85;
    padding: 0 8px;
}

.flow .flow-lead {
    background: var(--flow-soft);
    border-left: 3px solid var(--flow-accent);
    padding: 18px 22px;
    margin: 0 0 48px 0;
    color: var(--flow-text-3);
    font-size: 14px;
    line-height: 2;
}

/* タイムライン本体 */
.flow .flow-steps {
    list-style: none;
    margin: 0;
    padding: 0;
    position: relative;
}

/* 縦のつなぎ線 */
.flow .flow-steps::before {
    content: "";
    position: absolute;
    left: 32px;
    top: 32px;
    bottom: 32px;
    width: 1px;
    background: var(--flow-rule);
    z-index: 0;
}

.flow .flow-step {
    display: grid;
    grid-template-columns: 64px 1fr;
    gap: 24px;
    margin: 0 0 36px 0;
    position: relative;
    z-index: 1;
}
.flow .flow-step:last-child {
    margin-bottom: 0;
}

/* 番号バッジ */
.flow .flow-step-num {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: #fff;
    border: 1px solid var(--flow-accent);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--flow-mincho);
    font-size: 19px;
    font-weight: 400;
    letter-spacing: 0.04em;
    color: var(--flow-text);
}

/* ステップ内容 */
.flow .flow-step-content {
    background: var(--flow-soft);
    border: 1px solid var(--flow-rule);
    border-radius: 4px;
    padding: 20px 24px 18px;
    position: relative;
}
/* 三角ポインター（番号バッジに向ける） */
.flow .flow-step-content::before {
    content: "";
    position: absolute;
    left: -8px;
    top: 24px;
    width: 14px;
    height: 14px;
    background: var(--flow-soft);
    border-left: 1px solid var(--flow-rule);
    border-bottom: 1px solid var(--flow-rule);
    transform: rotate(45deg);
}

.flow .flow-step-title {
    font-family: var(--flow-mincho);
    font-size: 19px;
    font-weight: 400;
    line-height: 1.4;
    letter-spacing: 0.04em;
    color: var(--flow-text);
    margin: 0 0 12px 0;
    padding: 0;
    border: 0;
    background: transparent;
}
.flow .flow-step-content p {
    margin: 0 0 10px 0;
    font-size: 14.5px;
    line-height: 1.95;
    color: var(--flow-text-3);
}
.flow .flow-step-content p strong {
    font-weight: 600;
    color: var(--flow-text);
}
.flow .flow-step-content p:last-of-type {
    margin-bottom: 0;
}
.flow .flow-step-meta {
    margin-top: 12px;
    font-family: var(--flow-sans);
    font-size: 12px;
    letter-spacing: 0.08em;
    color: var(--flow-meta);
    padding-top: 10px;
    border-top: 1px dashed var(--flow-rule);
}

/* ボトムCTA */
.flow .flow-cta {
    margin-top: 64px;
    padding: 36px 28px;
    text-align: center;
    background: var(--flow-soft);
    border: 1px solid var(--flow-rule);
    border-radius: 4px;
}
.flow .flow-cta-lead {
    font-family: var(--flow-mincho);
    font-size: 17px;
    line-height: 1.7;
    color: var(--flow-text);
    margin: 0 0 20px 0;
    letter-spacing: 0.02em;
}
.flow .flow-cta-btn {
    display: inline-block;
    background: var(--flow-action);
    color: #ffffff;
    padding: 14px 40px;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-decoration: none;
    border-radius: 3px;
    font-family: var(--flow-sans);
    transition: background 0.2s;
}
.flow .flow-cta-btn:hover,
.flow .flow-cta-btn:focus {
    background: #1a3f72;
}
.flow .flow-cta-sub {
    margin-top: 14px;
    font-size: 12px;
    color: var(--flow-meta);
    letter-spacing: 0.04em;
}

@media (max-width: 640px) {
    .flow {
        font-size: 14px;
    }
    .flow .flow-steps::before {
        left: 24px;
    }
    .flow .flow-step {
        grid-template-columns: 48px 1fr;
        gap: 16px;
        margin-bottom: 28px;
    }
    .flow .flow-step-num {
        width: 48px;
        height: 48px;
        font-size: 16px;
    }
    .flow .flow-step-content {
        padding: 16px 18px 14px;
    }
    .flow .flow-step-title {
        font-size: 17px;
    }
    .flow .flow-step-content p {
        font-size: 14px;
    }
    .flow .flow-cta {
        padding: 28px 18px;
    }
}

/* ============================================================
   よくある質問（/faq/）
   <details>/<summary> ベースのアコーディオン
   ============================================================ */
.faq {
    --faq-text:   #2a2620;
    --faq-text-3: #5a5448;
    --faq-meta:   #9a9080;
    --faq-rule:   #e8e2d4;
    --faq-soft:   #f7f4ee;
    --faq-q:      #1f4f8b;
    --faq-mincho: "Hiragino Mincho ProN","Yu Mincho","YuMincho","Noto Serif JP",serif;
    --faq-sans:   -apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif;

    max-width: 760px;
    margin: 0 auto;
    color: var(--faq-text);
    font-size: 15px;
    line-height: 1.85;
    padding: 0 8px;
}

.faq .faq-lead {
    background: var(--faq-soft);
    border-left: 3px solid #c9b87a;
    padding: 26px 28px;
    margin: 0 0 100px 0;
    color: var(--faq-text-3);
    font-size: 14px;
    line-height: 1.95;
}
.faq .faq-lead a {
    color: var(--faq-q);
    border-bottom: 1px solid currentColor;
    padding-bottom: 1px;
    text-decoration: none;
}

.faq h2 {
    font-family: var(--faq-mincho);
    font-size: 20px;
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: 0.04em;
    color: var(--faq-text);
    margin: 120px 0 32px 0;
    padding: 0 0 18px 0;
    border-bottom: 1px solid var(--faq-rule);
    background: transparent;
}
.faq h2:first-of-type {
    margin-top: 8px;
}

/* 各 Q&A アイテム */
.faq .faq-item {
    border-bottom: 1px solid var(--faq-rule);
}
.faq .faq-item summary {
    list-style: none;
    cursor: pointer;
    padding: 26px 40px 26px 36px;
    font-size: 15.5px;
    line-height: 1.6;
    font-weight: 500;
    color: var(--faq-text);
    position: relative;
    transition: background 0.2s, color 0.2s;
    font-family: var(--faq-sans);
    letter-spacing: 0.02em;
}
.faq .faq-item summary::-webkit-details-marker {
    display: none;
}
/* 左に Q. */
.faq .faq-item summary::before {
    content: "Q.";
    position: absolute;
    left: 8px;
    top: 26px;
    font-family: var(--faq-mincho);
    font-size: 16px;
    font-weight: 600;
    color: var(--faq-q);
    line-height: 1.4;
    letter-spacing: 0;
}
/* 右に開閉アイコン */
.faq .faq-item summary::after {
    content: "+";
    position: absolute;
    right: 14px;
    top: 50%;
    transform: translateY(-50%);
    font-family: var(--faq-sans);
    font-size: 22px;
    font-weight: 300;
    color: var(--faq-meta);
    line-height: 1;
    transition: transform 0.25s, color 0.2s;
}
.faq .faq-item[open] summary::after {
    content: "−";
    color: var(--faq-q);
}
.faq .faq-item summary:hover {
    background: var(--faq-soft);
    color: var(--faq-q);
}

/* 回答ボディ */
.faq .faq-body {
    padding: 14px 36px 36px 36px;
    color: var(--faq-text-3);
    font-size: 14.5px;
    line-height: 1.95;
    background: #fffdf9;
    position: relative;
}
.faq .faq-body::before {
    content: "A.";
    position: absolute;
    left: 8px;
    top: 14px;
    font-family: var(--faq-mincho);
    font-size: 16px;
    font-weight: 600;
    color: #c9b87a;
    line-height: 1.4;
}
.faq .faq-body p {
    margin: 0;
}
.faq .faq-body p + p {
    margin-top: 10px;
}
.faq .faq-body strong {
    font-weight: 600;
    color: var(--faq-text);
}
.faq .faq-body a {
    color: var(--faq-q);
    border-bottom: 1px solid currentColor;
    padding-bottom: 1px;
    text-decoration: none;
}

@media (max-width: 640px) {
    .faq {
        font-size: 14px;
    }
    .faq h2 {
        font-size: 18px;
        margin-top: 80px;
    }
    .faq .faq-item summary {
        padding: 16px 36px 16px 32px;
        font-size: 14.5px;
    }
    .faq .faq-item summary::before,
    .faq .faq-body::before {
        left: 6px;
        font-size: 14px;
    }
    .faq .faq-body {
        padding: 4px 14px 20px 32px;
        font-size: 13.5px;
    }
}

/* ============================================================
   プライバシーポリシー（/privacy/）
   読みやすい組版・適度な余白・落ち着いた見出し
   ============================================================ */
.page-id-23 .post_content {
    --pri-text:   #2a2620;
    --pri-text-3: #5a5448;
    --pri-meta:   #9a9080;
    --pri-rule:   #e8e2d4;
    --pri-mincho: "Hiragino Mincho ProN","Yu Mincho","YuMincho","Noto Serif JP",serif;
    --pri-sans:   -apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif;

    max-width: 720px;
    margin: 0 auto;
    color: var(--pri-text);
    line-height: 1.95;
    font-size: 15px;
    padding: 0 8px;
}

.page-id-23 .post_content .privacy-lead {
    font-size: 15px;
    line-height: 2;
    color: var(--pri-text-3);
    padding: 20px 24px;
    background: #f7f4ee;
    border-left: 3px solid #c9b87a;
    margin: 0 0 40px 0;
}

.page-id-23 .post_content h2 {
    font-family: var(--pri-mincho);
    font-size: 19px;
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: 0.04em;
    color: var(--pri-text);
    margin: 48px 0 16px 0;
    padding: 0 0 12px 0;
    border-bottom: 1px solid var(--pri-rule);
    background: transparent;
}

.page-id-23 .post_content h2:first-of-type {
    margin-top: 0;
}

.page-id-23 .post_content p {
    margin: 0 0 14px 0;
    font-size: 15px;
    line-height: 1.95;
    color: var(--pri-text);
}

.page-id-23 .post_content ul {
    list-style: none;
    margin: 0 0 16px 0;
    padding: 0;
}

.page-id-23 .post_content ul li {
    position: relative;
    padding: 0 0 0 1.4em;
    margin: 0 0 8px 0;
    line-height: 1.85;
    font-size: 14.5px;
}

.page-id-23 .post_content ul li::before {
    content: "・";
    position: absolute;
    left: 0;
    top: 0;
    color: var(--pri-meta);
}

.page-id-23 .post_content .privacy-contact {
    font-style: normal;
    background: #f7f4ee;
    padding: 20px 24px;
    border-radius: 4px;
    line-height: 2;
    font-size: 14px;
    margin: 16px 0 32px 0;
}
.page-id-23 .post_content .privacy-contact a {
    color: #1f4f8b;
    text-decoration: none;
    border-bottom: 1px solid currentColor;
}

.page-id-23 .post_content .privacy-meta {
    font-size: 12px;
    color: var(--pri-meta);
    text-align: right;
    margin: 32px 0 0 0;
    line-height: 1.8;
    letter-spacing: 0.04em;
}

@media (max-width: 640px) {
    .page-id-23 .post_content {
        font-size: 14px;
    }
    .page-id-23 .post_content h2 {
        font-size: 17px;
        margin-top: 36px;
    }
    .page-id-23 .post_content .privacy-lead,
    .page-id-23 .post_content .privacy-contact {
        padding: 16px 18px;
    }
}

/* ============================================================
   求人応募フォーム（/contact/apply/）
   ============================================================ */
.noa-apply {
    --apply-bg:     #f0e9d9;  /* お問い合わせフォームと同じベージュ（var(--noa-bg-soft)） */
    --apply-soft:   #fffdfa;
    --apply-text:   #2a2620;
    --apply-text-3: #5a5448;
    --apply-meta:   #9a9080;
    --apply-rule:   #d9cdb5;  /* var(--noa-line) と揃える */
    --apply-accent: #1f4f8b;
    --apply-mincho: "Hiragino Mincho ProN","Yu Mincho","YuMincho","Noto Serif JP",serif;
    --apply-sans:   -apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif;

    max-width: 720px;
    margin: 0 auto;
    color: var(--apply-text);
}

.noa-apply-lead {
    text-align: center;
    color: var(--apply-text-3);
    font-size: 14px;
    line-height: 1.95;
    margin-bottom: 28px;
}

/* 応募求人カード（ページ上部） */
.noa-apply-job-card {
    background: var(--apply-soft);
    border: 1px solid var(--apply-rule);
    padding: 20px 24px;
    margin-bottom: 32px;
    border-radius: 4px;
}
.noa-apply-job-card--empty {
    text-align: center;
    color: var(--apply-text-3);
    font-size: 14px;
}
.noa-apply-job-card--empty a {
    color: var(--apply-accent);
    border-bottom: 1px solid currentColor;
    padding-bottom: 1px;
}

.noa-apply-job-info {
    display: grid;
    grid-template-columns: max-content 1fr;
    gap: 8px 12px;
    margin: 0;
    font-size: 15px;
    line-height: 1.6;
    color: var(--apply-text);
}
.noa-apply-job-info dt {
    font-family: var(--apply-sans);
    font-weight: 600;
    color: var(--apply-text-3);
    letter-spacing: 0.04em;
    margin: 0;
}
.noa-apply-job-info dd {
    font-family: var(--apply-mincho);
    font-weight: 400;
    margin: 0;
    color: var(--apply-text);
    letter-spacing: 0.02em;
}

/* CF7 フォーム本体（お問い合わせフォームと同じベージュ） */
.noa-apply-form-wrap .wpcf7 {
    background: var(--apply-bg);
    border: 1px solid var(--apply-rule);
    padding: 32px 28px;
    border-radius: 4px;
}
/* 応募求人カードもベージュで統一感を出す（少し濃いめ） */
.noa-apply-job-card {
    background: #e8dfc8;
}
.noa-apply-form-wrap .wpcf7-form > p {
    margin-bottom: 18px;
}
.noa-apply-form-wrap label {
    display: block;
    font-size: 13px;
    color: var(--apply-text-3);
    font-weight: 600;
    line-height: 1.6;
    letter-spacing: 0.04em;
    margin-bottom: 4px;
}
.noa-apply-form-wrap input[type="text"],
.noa-apply-form-wrap input[type="email"],
.noa-apply-form-wrap input[type="tel"],
.noa-apply-form-wrap input[type="date"],
.noa-apply-form-wrap input[type="url"],
.noa-apply-form-wrap textarea,
.noa-apply-form-wrap select {
    background: #ffffff;
    border: 1px solid var(--apply-rule);
    padding: 0.7em 0.9em;
    border-radius: 3px;
    width: 100%;
    box-sizing: border-box;
    font-size: 15px;
    color: var(--apply-text);
    margin-top: 6px;
    transition: border-color 0.2s;
}
.noa-apply-form-wrap input:focus,
.noa-apply-form-wrap textarea:focus,
.noa-apply-form-wrap select:focus {
    border-color: var(--apply-accent);
    outline: none;
}

/* 志望動機（チェックボックス） */
.noa-apply-form-wrap fieldset.cf7-motivation {
    border: 1px solid var(--apply-rule);
    padding: 18px 20px 12px;
    border-radius: 3px;
    margin: 8px 0 18px;
    background: #fffdfa;
}
.noa-apply-form-wrap fieldset.cf7-motivation legend {
    font-size: 13px;
    color: var(--apply-text-3);
    font-weight: 600;
    padding: 0 8px;
    letter-spacing: 0.04em;
}
.noa-apply-form-wrap .wpcf7-checkbox {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: 4px;
}
.noa-apply-form-wrap .wpcf7-list-item {
    margin: 0 !important;
    display: block;
}
.noa-apply-form-wrap .wpcf7-list-item label {
    display: flex;
    align-items: center;
    gap: 10px;
    font-weight: 400;
    color: var(--apply-text);
    font-size: 14px;
    cursor: pointer;
    margin-bottom: 0;
}
.noa-apply-form-wrap .wpcf7-list-item input[type="checkbox"] {
    width: 16px;
    height: 16px;
    margin: 0;
    cursor: pointer;
    accent-color: var(--apply-accent);
}

/* ファイル入力 */
.noa-apply-form-wrap input[type="file"] {
    margin-top: 6px;
    font-size: 13px;
    color: var(--apply-text-3);
}

/* プライバシーポリシー */
.noa-apply-form-wrap .wpcf7-acceptance {
    display: block;
    margin: 20px 0 24px;
    padding: 14px 16px;
    background: var(--apply-soft);
    border-radius: 3px;
    font-size: 13px;
}
.noa-apply-form-wrap .wpcf7-acceptance .wpcf7-list-item label {
    cursor: pointer;
    font-size: 13px;
}
.noa-apply-form-wrap .wpcf7-acceptance a {
    color: var(--apply-accent);
    border-bottom: 1px solid currentColor;
    padding-bottom: 1px;
}

/* 送信ボタン */
.noa-apply-form-wrap .wpcf7-submit {
    display: inline-block;
    background: var(--apply-accent);
    color: #ffffff;
    border: 0;
    padding: 14px 56px;
    font-size: 15px;
    font-weight: 600;
    letter-spacing: 0.1em;
    border-radius: 3px;
    cursor: pointer;
    transition: background 0.2s;
    font-family: var(--apply-sans);
}
.noa-apply-form-wrap .wpcf7-submit:hover,
.noa-apply-form-wrap .wpcf7-submit:focus {
    background: #1a3f72;
}
.noa-apply-form-wrap .wpcf7-form-control-wrap[data-name="submit"],
.noa-apply-form-wrap p:has(.wpcf7-submit) {
    text-align: center;
    margin-top: 28px;
}

/* CF7 メッセージ */
.noa-apply-form-wrap .wpcf7-response-output {
    margin: 20px 0 0 !important;
    padding: 12px 16px !important;
    border-radius: 3px;
    font-size: 14px;
}
.noa-apply-form-wrap .wpcf7-not-valid-tip {
    font-size: 12px;
    color: #c0392b;
    margin-top: 4px;
}

/* レスポンシブ */
@media (max-width: 640px) {
    .noa-apply-form-wrap .wpcf7 {
        padding: 24px 18px;
    }
    .noa-apply-job-card {
        padding: 16px 18px;
    }
    .noa-apply-job-info {
        grid-template-columns: 1fr;
        gap: 2px 0;
        font-size: 14px;
    }
    .noa-apply-job-info dt {
        margin-top: 8px;
    }
    .noa-apply-job-info dt:first-child {
        margin-top: 0;
    }
}

/* ============================================================
   お問い合わせフォーム（Contact Form 7）
   背景：温かみのあるベージュ
   ============================================================ */
.page-id-22 .wpcf7 {
    background: var(--noa-bg-soft);
    border: 1px solid var(--noa-line);
    padding: 2em 2em;
    border-radius: 4px;
    margin-top: 2em;
}

.page-id-22 .wpcf7-form input[type="text"],
.page-id-22 .wpcf7-form input[type="email"],
.page-id-22 .wpcf7-form input[type="tel"],
.page-id-22 .wpcf7-form input[type="url"],
.page-id-22 .wpcf7-form select,
.page-id-22 .wpcf7-form textarea {
    background: #ffffff;
    border: 1px solid var(--noa-line);
    padding: 0.6em 0.8em;
    border-radius: 3px;
    width: 100%;
    box-sizing: border-box;
}

.page-id-22 .wpcf7-form p {
    margin-bottom: 1em;
}

/* ============================================================
   写真スロット — 物語型・雑誌風（4箇所）
   ============================================================ */

/* 共通：写真フィギュア */
:is(.single-job, .single-introduce) .post_content .job-photo {
    margin: 1.4em 0;
    padding: 0;
}

:is(.single-job, .single-introduce) .post_content .job-photo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    margin: 0;
}

/* プレースホルダーボックス（写真未挿入時） */
:is(.single-job, .single-introduce) .post_content .photo-slot {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.6em;
    width: 100%;
    height: 100%;
    background: var(--noa-bg-soft);
    border: 1px dashed var(--noa-line);
    color: var(--noa-muted);
    text-align: center;
    padding: 1.2em;
    box-sizing: border-box;
}

:is(.single-job, .single-introduce) .post_content .photo-slot-label {
    font-family: var(--noa-sans);
    font-size: 0.75em;
    font-weight: 700;
    letter-spacing: 0.2em;
    color: var(--noa-num);
}

:is(.single-job, .single-introduce) .post_content .photo-slot-desc {
    font-family: var(--noa-serif);
    font-size: 0.85em;
    line-height: 1.6;
    color: var(--noa-muted);
}

/* ① ヒーロー画像：リード文の直後・16:9 フル幅 */
:is(.single-job, .single-introduce) .post_content .job-photo-hero {
    margin: -3em 0 4em;          /* リード文の下マージンと相殺、次のH2との間隔を確保 */
    aspect-ratio: 16 / 9;
}

/* ② 業務写真：仕事内容セクション・4:3 右寄せ */
:is(.single-job, .single-introduce) .post_content .job-photo-inline-right {
    float: right;
    width: 35%;
    aspect-ratio: 4 / 3;
    margin: 0 0 1em 1.5em;
    clear: right;
}

/* スマホ：右寄せを解除して幅100% */
@media (max-width: 768px) {
    :is(.single-job, .single-introduce) .post_content .job-photo-inline-right {
        float: none;
        width: 100%;
        margin: 1em 0;
    }
}

/* ③ ポートレート：先輩スタッフの声と並べて 1:1 */
:is(.single-job, .single-introduce) .post_content .voice-with-photo {
    display: grid;
    grid-template-columns: 35% 1fr;
    gap: 1.5em;
    align-items: stretch;
    margin: 1.4em 0 2em;
}

:is(.single-job, .single-introduce) .post_content .voice-with-photo .job-photo-portrait {
    margin: 0;
    aspect-ratio: 1 / 1;
}

:is(.single-job, .single-introduce) .post_content .voice-with-photo .senior-voice {
    margin: 0;
}

/* スマホ：ポートレートと声を縦並び */
@media (max-width: 768px) {
    :is(.single-job, .single-introduce) .post_content .voice-with-photo {
        grid-template-columns: 1fr;
        gap: 0;
    }
    :is(.single-job, .single-introduce) .post_content .voice-with-photo .job-photo-portrait {
        aspect-ratio: 16 / 10;
        margin-bottom: 1em;
    }
}

/* ④ アクセス写真：アクセス・職場環境セクション・16:9 フル幅 */
:is(.single-job, .single-introduce) .post_content .job-photo-access {
    margin: 0 0 1.4em;
    aspect-ratio: 16 / 9;
}

/* ④-2 アクセス写真：マサンリー（Pinterest風）レイアウト
   写真の枚数によって自動的に列数が変わる。
   ・1枚 → フル幅
   ・2〜4枚 → 2列
   ・5枚以上 → 3列
   ・スマホ → 常に1列
*/
:is(.single-job, .single-introduce) .post_content .access-photos {
    margin: 0 0 1.6em;
    column-gap: 0.8em;
    /* CSS Multi-column が break-inside: avoid をサポートしない場合の保険 */
    -webkit-column-gap: 0.8em;
}

:is(.single-job, .single-introduce) .post_content .access-photos.cols-1 {
    columns: 1;
    -webkit-columns: 1;
}

:is(.single-job, .single-introduce) .post_content .access-photos.cols-2 {
    columns: 2;
    -webkit-columns: 2;
}

:is(.single-job, .single-introduce) .post_content .access-photos.cols-3 {
    columns: 3;
    -webkit-columns: 3;
}

:is(.single-job, .single-introduce) .post_content .access-photos figure {
    display: block;
    margin: 0 0 0.8em;
    padding: 0;
    /* マサンリーの肝：要素の途中で改列されないように */
    break-inside: avoid;
    -webkit-column-break-inside: avoid;
    page-break-inside: avoid;
}

:is(.single-job, .single-introduce) .post_content .access-photos figure img {
    display: block;
    width: 100%;
    height: auto;
    margin: 0;
}

/* タブレット：3列 → 2列に縮小 */
@media (max-width: 1024px) {
    :is(.single-job, .single-introduce) .post_content .access-photos.cols-3 {
        columns: 2;
        -webkit-columns: 2;
    }
}

/* スマホ：すべて1列 */
@media (max-width: 720px) {
    :is(.single-job, .single-introduce) .post_content .access-photos.cols-2,
    :is(.single-job, .single-introduce) .post_content .access-photos.cols-3 {
        columns: 1;
        -webkit-columns: 1;
    }
}

/* ⑤ Google マップ埋め込み */
:is(.single-job, .single-introduce) .post_content .job-map {
    margin: 1.5em 0 1em;
    border: 1px solid var(--noa-line);
    overflow: hidden;
    line-height: 0;
}

:is(.single-job, .single-introduce) .post_content .job-map iframe {
    display: block;
    width: 100%;
    border: 0;
}

/* ⑥ 担当支店 アクセス・職場環境（写真 + マップ 横並び） */
:is(.single-job, .single-introduce) .post_content .access-wrap {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    margin: 1.5em 0 1em;
    align-items: stretch;
}
:is(.single-job, .single-introduce) .post_content .access-wrap .access-photo {
    margin: 0;
    overflow: hidden;
    background: var(--noa-bg-soft);
}
:is(.single-job, .single-introduce) .post_content .access-wrap .access-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    margin: 0;
    display: block;
    aspect-ratio: 4 / 3;
}
:is(.single-job, .single-introduce) .post_content .access-wrap .access-map {
    line-height: 0;
    border: 1px solid var(--noa-line);
    overflow: hidden;
    min-height: 280px;
}
:is(.single-job, .single-introduce) .post_content .access-wrap .access-map iframe {
    width: 100%;
    height: 100%;
    min-height: 280px;
    border: 0;
    display: block;
}
@media (max-width: 720px) {
    :is(.single-job, .single-introduce) .post_content .access-wrap {
        grid-template-columns: 1fr;
        gap: 12px;
    }
    :is(.single-job, .single-introduce) .post_content .access-wrap .access-photo img {
        aspect-ratio: 16 / 10;
    }
    :is(.single-job, .single-introduce) .post_content .access-wrap .access-map {
        min-height: 220px;
    }
    :is(.single-job, .single-introduce) .post_content .access-wrap .access-map iframe {
        min-height: 220px;
    }
}

/* スマホ全般での写真スロット文字サイズ調整 */
@media (max-width: 600px) {
    :is(.single-job, .single-introduce) .post_content .photo-slot-label {
        font-size: 0.7em;
    }
    :is(.single-job, .single-introduce) .post_content .photo-slot-desc {
        font-size: 0.78em;
    }
}


/* ============================================================
   写真スロット（汎用：本文中の画像挿入）
   ============================================================ */
:is(.single-job, .single-introduce) .post_content img {
    max-width: 100%;
    height: auto;
    border-radius: 0;
    margin: 1.4em 0;
}

:is(.single-job, .single-introduce) .post_content .alignleft {
    float: left;
    margin: 0.4em 1.6em 1em 0;
    max-width: 50%;
}

:is(.single-job, .single-introduce) .post_content .alignright {
    float: right;
    margin: 0.4em 0 1em 1.6em;
    max-width: 50%;
}

:is(.single-job, .single-introduce) .post_content .aligncenter {
    display: block;
    margin: 1.5em auto;
}

:is(.single-job, .single-introduce) .post_content .alignwide,
:is(.single-job, .single-introduce) .post_content .alignfull {
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    max-width: 100vw;
    width: 100vw;
}

:is(.single-job, .single-introduce) #post_thumbnail,
:is(.single-job, .single-introduce) .post-thumbnail,
:is(.single-job, .single-introduce) .eyecatch {
    margin: 0 0 2em;
    border-radius: 0;
    overflow: hidden;
    aspect-ratio: 16 / 9;
    background: var(--noa-bg-soft);
}

:is(.single-job, .single-introduce) #post_thumbnail img,
:is(.single-job, .single-introduce) .post-thumbnail img,
:is(.single-job, .single-introduce) .eyecatch img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    margin: 0;
    border-radius: 0;
}

/* ============================================================
   /about/ ページ
   ============================================================ */
.page-id-17 .post_content {
    font-family: var(--noa-serif);
}

.page-id-17 .post_content h2 {
    border-left: none;
    border-bottom: none;
    text-align: center;
    font-size: 1.5em;
    letter-spacing: 0.18em;
    padding: 0;
    margin: 2em 0;
    color: var(--noa-text);
    display: block;
    font-family: var(--noa-serif);
}

.page-id-17 .post_content h2::before {
    content: none;
}

.page-id-17 .post_content h2::after {
    content: "";
    display: block;
    width: 36px;
    height: 1px;
    background: var(--noa-text);
    margin: 0.8em auto 0;
}

.page-id-17 .post_content h3 {
    border-left: none;
    text-align: center;
    color: var(--noa-text);
    font-size: 1.1em;
    margin: 1.6em 0 0.8em;
}

.page-id-17 .post_content p {
    line-height: 2.3;
    margin: 1em auto;
    max-width: 38em;
    font-feature-settings: "palt";
    letter-spacing: 0.05em;
}

.page-id-17 .post_content hr {
    margin: 3em auto;
    width: 60px;
    border: none;
    border-top: 1px solid var(--noa-text);
}

/* ============================================================
   微調整
   ============================================================ */
.post_content strong {
    font-weight: 700;
    color: var(--noa-text);
}

.post_content a {
    color: var(--noa-text);
    text-decoration: underline;
    text-underline-offset: 0.2em;
    text-decoration-thickness: 1px;
}

.post_content a:hover {
    color: var(--noa-text-2);
    text-decoration-thickness: 2px;
}

/* ============================================================
   お知らせ（標準 post）の単独記事ページ
   - 角丸じゃない□形のカテゴリバッジ
   - 本文フォントを他ページと統一（明朝）
   - 浮遊する目次ウィジェットを非表示
   ============================================================ */

/* 1. カテゴリバッジ（cat-category）を □ に + TOPと同じ枠線色付け */
body.single-post .cat-category {
    border-radius: 0 !important;
    padding: 5px 12px !important;
    font-family: var(--noa-sans) !important;
    font-size: 11px !important;
    letter-spacing: 0.18em !important;
    font-weight: 700 !important;
    background: transparent !important;
    border: 1px solid currentColor !important;
    color: #5a5448 !important;       /* デフォルト（お知らせ） */
    line-height: 1.4 !important;
    display: inline-block !important;
}
/* term-49 = 募集情報 (recruit-info) → 青 */
body.single-post .cat-category.term-49 {
    color: #1f4f8b !important;
    background: transparent !important;
}
/* term-50 = 説明会・イベント (event) → 金 */
body.single-post .cat-category.term-50 {
    color: #8a6c1f !important;
    background: transparent !important;
}
/* term-48 = お知らせ (news) → グレー（既定で当たる） */
body.single-post .cat-category.term-48 {
    color: #5a5448 !important;
    background: transparent !important;
}

/* 本文の書式 */
body.single-post .post_content,
body.single-post .post_content .tcdce-body {
    font-family: var(--noa-serif);
    font-size: 15.5px;
    line-height: 1.95;
    letter-spacing: 0.04em;
    color: var(--noa-text);
}

body.single-post .post_content p {
    font-family: var(--noa-serif);
    font-size: 15.5px;
    line-height: 1.95;
    margin: 0 0 1.4em 0;
    color: var(--noa-text);
}

body.single-post .post_content h2 {
    font-family: var(--noa-serif);
    font-size: 22px;
    font-weight: 400;
    letter-spacing: 0.04em;
    color: var(--noa-text);
    margin: 56px 0 20px 0;
    padding: 0 0 12px 0;
    border: 0;
    border-bottom: 1px solid var(--noa-line);
    background: transparent;
    line-height: 1.4;
}

body.single-post .post_content h3 {
    font-family: var(--noa-serif);
    font-size: 18px;
    font-weight: 400;
    color: var(--noa-text);
    margin: 32px 0 14px 0;
    padding: 0;
    border: 0;
    background: transparent;
    line-height: 1.5;
}

body.single-post .post_content ul,
body.single-post .post_content ol {
    margin: 1em 0 1.4em 0;
    padding-left: 1.4em;
}
body.single-post .post_content ul li,
body.single-post .post_content ol li {
    font-family: var(--noa-serif);
    font-size: 15.5px;
    line-height: 1.95;
    margin-bottom: 0.4em;
}
body.single-post .post_content strong {
    color: var(--noa-text);
    font-weight: 600;
}

body.single-post .post_content .news-lede {
    font-size: 17px;
    line-height: 2;
    color: var(--noa-text);
    margin: 0 0 32px 0;
    padding: 18px 22px;
    background: var(--noa-bg-soft);
    border-left: 3px solid var(--noa-num);
}

body.single-post .post_content .news-table {
    width: 100%;
    border-collapse: collapse;
    margin: 16px 0 28px 0;
    font-family: var(--noa-serif);
}
body.single-post .post_content .news-table th,
body.single-post .post_content .news-table td {
    border: 1px solid var(--noa-line);
    padding: 10px 14px;
    font-size: 14.5px;
    line-height: 1.7;
    text-align: left;
    vertical-align: top;
}
body.single-post .post_content .news-table th {
    background: var(--noa-bg-soft);
    font-weight: 600;
    width: 8em;
    white-space: nowrap;
}

/* 2. 浮遊する目次ウィジェット（TCD のスティッキー TOC）を非表示 */
body.single-post #js-tcdce-toc-open,
body.single-post #js-tcdce-toc-modal,
body.single-post .p-toc-open,
body.single-post .p-toc-modal {
    display: none !important;
}

/* 本文中インラインの目次は残す（手動 TOC として邪魔ではない）。
   邪魔なら以下のコメントを外して非表示に。
body.single-post .post_content .p-toc { display: none !important; }
*/

/* フッター：外部リンク（コーポレートサイト）を視覚的に区別 */
#footer_bottom_menu a[target="_blank"]::after {
    content: " ↗";
    margin-left: 2px;
    font-size: 0.85em;
    opacity: 0.7;
}

/* ============================================================
   インタビュー single — handoff_interview_v1（縦組みエディトリアル長尺）
   12 sections: topbar / cover / profile / lede / Q&A前半
              / pull / timeline / Q&A後半 / numbers / closing / cta / related
   ============================================================ */

/* design tokens（handoff: I1=#1a1814 / P1=#f5f1e8 / G1=#9a8c5a / R1=#d8cfb6） */
.iv-single {
    --i1: #1a1814;
    --i2: #3a3530;
    --i3: #6a6358;
    --p1: #f5f1e8;
    --p2: #ede6d3;
    --g1: #9a8c5a;
    --g2: #c9b87a;
    --r1: #d8cfb6;
    --r2: #e8e2d4;
    --iv-mincho: "Hiragino Mincho ProN","Yu Mincho","YuMincho","Noto Serif JP",serif;
    --iv-sans:   -apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif;

    /* override the older .iv-single block above — full-width container */
    max-width: none !important;
    margin: 0;
    padding: 0;
    background: #ffffff;
    color: var(--i1);
    font-family: var(--iv-mincho);
    line-height: 1.85;
    letter-spacing: 0.04em;
}

/* 親レイアウトのコンテナを #content から外して紙感を出す */
body.single-interview #content,
body.single-interview #container {
    background: #ffffff;
}

/* 共通 inner（左右パディング付きの 880px 幅） */
.iv-single .iv-inner,
.iv-single .iv-profile,
.iv-single .iv-ledebox,
.iv-single .iv-qa-wrap,
.iv-single .iv-timeline,
.iv-single .iv-nums,
.iv-single .iv-closing,
.iv-single .iv-cta-wrap,
.iv-single .iv-related,
.iv-single .iv-back {
    max-width: 880px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 24px;
    padding-right: 24px;
    box-sizing: border-box;
}

/* セクション見出し共通 */
.iv-single .iv-eyebrow {
    font-family: var(--iv-sans);
    font-size: 11px;
    letter-spacing: 0.32em;
    color: var(--g1);
    font-weight: 700;
    margin-bottom: 14px;
    text-transform: uppercase;
}
.iv-single .iv-section-title {
    font-family: var(--iv-mincho);
    font-size: 32px;
    font-weight: 400;
    line-height: 1.55;
    letter-spacing: 0.06em;
    margin: 0 0 48px 0;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--i1);
}

/* ----- 1. Topbar ----- */
.iv-single .iv-topbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    max-width: 880px;
    margin: 0 auto;
    padding: 20px 24px 18px;
    border-bottom: 1px solid var(--r1);
    font-family: var(--iv-sans);
    font-size: 11px;
    letter-spacing: 0.28em;
    color: var(--i3);
    text-transform: uppercase;
    box-sizing: border-box;
}

/* ----- 2. Cover ----- */
.iv-single .iv-cover {
    max-width: 880px;
    margin: 0 auto;
    padding: 80px 24px 100px;
    display: grid;
    grid-template-columns: 1fr 320px;
    gap: 56px;
    align-items: stretch;
    box-sizing: border-box;
}
.iv-single .iv-cover-l {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-height: 480px;
}
.iv-single .iv-cover-eyebrow {
    font-family: var(--iv-sans);
    font-size: 11px;
    letter-spacing: 0.28em;
    color: var(--g1);
    font-weight: 700;
}
.iv-single .iv-cover-titlewrap {
    flex: 1;
    display: flex;
    align-items: center;
    margin: 32px 0;
}
.iv-single .iv-cover-title {
    writing-mode: vertical-rl;
    -webkit-writing-mode: vertical-rl;
    -ms-writing-mode: tb-rl;
    font-family: var(--iv-mincho);
    font-size: 50px;
    line-height: 1.7;
    letter-spacing: 0.08em;
    font-weight: 400;
    color: var(--i1);
    text-orientation: upright;
    -webkit-text-orientation: mixed;
}
.iv-single .iv-cover-title > div {
    white-space: nowrap;
    display: block;
    margin: 0 0 0 0.5em;
    padding: 0;
}
.iv-single .iv-cover-title > div:first-child {
    margin-left: 0;
}
.iv-single .iv-cover-lede {
    display: none;   /* lede は別セクションで表示 */
}
.iv-single .iv-cover-byline {
    font-family: var(--iv-sans);
    font-size: 10px;
    letter-spacing: 0.3em;
    color: var(--i3);
    text-transform: uppercase;
    border-top: 1px solid var(--r1);
    padding-top: 18px;
}
.iv-single .iv-cover-port {
    align-self: stretch;
}
.iv-single .iv-portrait {
    width: 100%;
    height: 100%;
    min-height: 480px;
    background-color: var(--p2);
    background-size: cover;
    background-position: center;
    border: 1px solid var(--r1);
    position: relative;
}
.iv-single .iv-portrait--dummy {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #2a2620 0%, #44392c 100%);
    color: var(--p1);
}
.iv-single .iv-portrait-initials {
    font-family: var(--iv-mincho);
    font-size: 88px;
    letter-spacing: 0.05em;
    color: var(--g2);
    line-height: 1;
}
.iv-single .iv-portrait-tag {
    font-family: var(--iv-sans);
    font-size: 10px;
    letter-spacing: 0.32em;
    color: var(--g1);
    margin-top: 28px;
    text-transform: uppercase;
}

/* ----- 3. Profile bar ----- */
.iv-single .iv-profile {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 32px;
    padding-top: 28px;
    padding-bottom: 28px;
    border-top: 1px solid var(--r1);
    border-bottom: 1px solid var(--r1);
    background: var(--p1);
    padding-left: 32px;
    padding-right: 32px;
}
.iv-single .iv-profile-name {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
}
.iv-single .iv-profile-name-jp {
    font-family: var(--iv-mincho);
    font-size: 22px;
    letter-spacing: 0.08em;
    color: var(--i1);
    line-height: 1.2;
}
.iv-single .iv-profile-name-en {
    font-family: var(--iv-sans);
    font-size: 10px;
    letter-spacing: 0.28em;
    color: var(--i3);
    text-transform: uppercase;
    line-height: 1;
}
.iv-single .iv-profile-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 16px 32px;
    font-family: var(--iv-sans);
    font-size: 11px;
    letter-spacing: 0.16em;
    color: var(--i3);
}
.iv-single .iv-profile-meta-item {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
}
.iv-single .iv-profile-meta-l {
    color: var(--g1);
    font-weight: 700;
    letter-spacing: 0.28em;
    line-height: 1;
}
.iv-single .iv-profile-meta-v {
    color: var(--i1);
    font-family: var(--iv-mincho);
    font-size: 13px;
    letter-spacing: 0.06em;
    line-height: 1.2;
}
.iv-single .iv-profile-chapter {
    font-family: var(--iv-sans);
    font-size: 10px;
    letter-spacing: 0.32em;
    color: var(--g1);
    border: 1px solid var(--g1);
    padding: 6px 12px;
    text-transform: uppercase;
    white-space: nowrap;
}

/* ----- 4. Lede ----- */
.iv-single .iv-ledebox {
    padding-top: 80px;
    padding-bottom: 80px;
}
.iv-single .iv-ledetext {
    font-family: var(--iv-mincho);
    font-size: 19px;
    line-height: 2.15;
    letter-spacing: 0.08em;
    color: var(--i1);
    margin: 0 auto;
    max-width: 640px;
    text-align: center;
}

/* ----- 5 & 8. Q&A ----- */
.iv-single .iv-qa-wrap {
    padding-top: 8px;
    padding-bottom: 8px;
}
.iv-single .iv-qa {
    margin: 0 0 64px 0;
    padding: 0;
    background: transparent;
    border: 0;
}
.iv-single .iv-qa:last-child {
    margin-bottom: 0;
}
.iv-single .iv-q {
    font-family: var(--iv-mincho);
    font-size: 22px;
    font-weight: 400;
    line-height: 1.65;
    letter-spacing: 0.06em;
    margin: 0 0 24px 0;
    padding: 0 0 18px 0;
    border-bottom: 1px solid var(--r1);
    color: var(--i1);
    background: transparent;
    display: flex;
    gap: 18px;
    align-items: baseline;
}
.iv-single .iv-q::before {
    content: none;   /* override the older .iv-single-body .iv-q::before */
}
.iv-single .iv-q-num {
    font-family: var(--iv-sans);
    font-size: 11px;
    letter-spacing: 0.28em;
    color: var(--g1);
    font-weight: 700;
    flex-shrink: 0;
    align-self: center;
    border: 1px solid var(--g1);
    padding: 5px 10px;
    line-height: 1;
}
.iv-single .iv-q-text {
    flex: 1;
}
.iv-single .iv-a {
    margin: 0;
    padding: 0;
    border: 0;
    color: var(--i2);
    font-family: var(--iv-mincho);
    font-size: 15.5px;
    line-height: 2.2;
    letter-spacing: 0.06em;
}
.iv-single .iv-a::before {
    content: none;
}
.iv-single .iv-a p {
    margin: 0 0 1.6em 0;
    padding: 0;
    color: inherit;
}
.iv-single .iv-a p:last-child {
    margin-bottom: 0;
}

/* ----- 6. Pull quote（黒地・大引用） ----- */
.iv-single .iv-pull {
    background: var(--i1);
    color: var(--p1);
    padding: 120px 24px 110px;
    margin: 80px 0;
    text-align: center;
    position: relative;
}
.iv-single .iv-pull-mark {
    font-family: var(--iv-mincho);
    font-size: 120px;
    line-height: 0.8;
    color: var(--g1);
    margin-bottom: 24px;
    letter-spacing: 0;
}
.iv-single .iv-pull-text {
    font-family: var(--iv-mincho);
    font-size: 32px;
    line-height: 2;
    letter-spacing: 0.1em;
    color: var(--p1);
    max-width: 720px;
    margin: 0 auto 36px auto;
    font-weight: 300;
}
.iv-single .iv-pull-sig {
    font-family: var(--iv-sans);
    font-size: 11px;
    letter-spacing: 0.28em;
    color: var(--g2);
    text-transform: uppercase;
}

/* ----- 7. Timeline ----- */
.iv-single .iv-timeline {
    padding-top: 60px;
    padding-bottom: 80px;
}
.iv-single .iv-timeline-head {
    margin-bottom: 48px;
}
.iv-single .iv-tl-grid {
    border-top: 1px solid var(--r1);
}
.iv-single .iv-tl-row {
    display: grid;
    grid-template-columns: 110px 130px 1fr;
    gap: 24px;
    align-items: baseline;
    padding: 22px 0;
    border-bottom: 1px solid var(--r1);
}
.iv-single .iv-tl-row--last {
    border-bottom: 1px solid var(--r1);
}
.iv-single .iv-tl-time {
    font-family: var(--iv-sans);
    font-size: 18px;
    font-weight: 700;
    letter-spacing: 0.1em;
    color: var(--g1);
    font-feature-settings: "tnum";
}
.iv-single .iv-tl-label {
    font-family: var(--iv-mincho);
    font-size: 16px;
    letter-spacing: 0.08em;
    color: var(--i1);
}
.iv-single .iv-tl-body {
    font-family: var(--iv-mincho);
    font-size: 14.5px;
    line-height: 1.95;
    color: var(--i2);
    letter-spacing: 0.04em;
}

/* ----- 9. Numbers ----- */
.iv-single .iv-nums {
    padding-top: 80px;
    padding-bottom: 80px;
}
.iv-single .iv-nums-head {
    margin-bottom: 48px;
}
.iv-single .iv-nums-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1px;
    background: var(--r1);
    border: 1px solid var(--r1);
}
.iv-single .iv-num-cell {
    background: var(--p1);
    padding: 22px 16px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-height: 130px;
}
.iv-single .iv-num-v {
    font-family: var(--iv-mincho);
    font-size: 42px;
    line-height: 1;
    letter-spacing: 0.02em;
    color: var(--i1);
    font-weight: 400;
}
.iv-single .iv-num-u {
    font-family: var(--iv-mincho);
    font-size: 14px;
    margin-left: 4px;
    color: var(--g1);
    letter-spacing: 0.04em;
}
.iv-single .iv-num-l {
    font-family: var(--iv-mincho);
    font-size: 11.5px;
    line-height: 1.6;
    letter-spacing: 0.04em;
    color: var(--i2);
    margin-top: 14px;
}

/* ----- 10. Closing ----- */
.iv-single .iv-closing {
    padding-top: 100px;
    padding-bottom: 100px;
    text-align: center;
    border-top: 1px solid var(--r1);
    border-bottom: 1px solid var(--r1);
    margin-top: 40px;
}
.iv-single .iv-closing-title {
    font-family: var(--iv-mincho);
    font-size: 28px;
    font-weight: 400;
    line-height: 1.7;
    letter-spacing: 0.1em;
    color: var(--i1);
    margin: 0 0 32px 0;
    padding: 0;
    background: transparent;
    border: 0;
}
.iv-single .iv-closing-body p {
    font-family: var(--iv-mincho);
    font-size: 16px;
    line-height: 2.2;
    letter-spacing: 0.08em;
    color: var(--i2);
    margin: 0 0 0.4em 0;
}

/* ----- 11. CTA ----- */
.iv-single .iv-cta-wrap {
    padding-top: 80px;
    padding-bottom: 80px;
    text-align: center;
}
.iv-single .iv-cta-wrap .iv-cta-btn {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    padding: 22px 56px;
    background: var(--i1);
    color: var(--p1);
    font-family: var(--iv-mincho);
    font-size: 17px;
    letter-spacing: 0.18em;
    text-decoration: none;
    border: 0;
    border-radius: 0;
    transition: background 0.25s, color 0.25s;
}
.iv-single .iv-cta-wrap .iv-cta-btn span {
    color: var(--g2);
    font-family: var(--iv-sans);
    font-size: 18px;
    transition: transform 0.25s;
}
.iv-single .iv-cta-wrap .iv-cta-btn:hover,
.iv-single .iv-cta-wrap .iv-cta-btn:focus {
    background: var(--i2);
    color: var(--p1);
}
.iv-single .iv-cta-wrap .iv-cta-btn:hover span {
    transform: translateX(4px);
}
.iv-single .iv-cta-sub {
    font-family: var(--iv-sans);
    font-size: 10px;
    letter-spacing: 0.32em;
    color: var(--g1);
    margin-top: 20px;
    text-transform: uppercase;
}

/* ----- 12. Related ----- */
.iv-single .iv-related {
    padding-top: 60px;
    padding-bottom: 80px;
    border-top: 1px solid var(--r1);
}
.iv-single .iv-related-head {
    margin-bottom: 40px;
}
.iv-single .iv-related-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}
.iv-single .iv-related-card {
    background: #ffffff;
    border: 1px solid var(--r1);
    padding: 28px 24px 24px;
    transition: transform 0.25s, border-color 0.25s, box-shadow 0.25s;
    text-decoration: none;    /* <a> の場合の下線消し */
    color: inherit;           /* <a> の場合のリンク色を継承 */
    display: block;           /* <a> でもカードとして扱う */
}
.iv-single .iv-related-card.iv-related-card-link {
    cursor: pointer;
}
.iv-single .iv-related-card:hover {
    border-color: var(--i1);
    transform: translateY(-2px);
}
.iv-single .iv-related-card-link:hover {
    box-shadow: 0 4px 12px rgba(0,0,0,0.06);
}
.iv-single .iv-related-init {
    width: 56px;
    height: 56px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-family: var(--iv-mincho);
    font-size: 20px;
    letter-spacing: 0.04em;
    margin-bottom: 18px;
}
.iv-single .iv-related-name {
    font-family: var(--iv-mincho);
    font-size: 17px;
    letter-spacing: 0.08em;
    color: var(--i1);
    margin-bottom: 6px;
}
.iv-single .iv-related-role {
    font-family: var(--iv-sans);
    font-size: 11px;
    letter-spacing: 0.16em;
    color: var(--i3);
    line-height: 1.7;
}

/* ----- back link ----- */
.iv-single .iv-back {
    padding-top: 40px;
    padding-bottom: 80px;
    text-align: center;
}
.iv-single .iv-back a {
    font-family: var(--iv-sans);
    font-size: 12px;
    letter-spacing: 0.18em;
    color: var(--i3);
    text-decoration: none;
    border-bottom: 1px solid var(--r1);
    padding-bottom: 4px;
}
.iv-single .iv-back a:hover {
    color: var(--i1);
    border-color: var(--i1);
}

/* ----- responsive ----- */
@media (max-width: 800px) {
    .iv-single .iv-topbar {
        flex-direction: column;
        gap: 6px;
        text-align: center;
        padding: 16px 20px 14px;
        font-size: 10px;
        letter-spacing: 0.22em;
    }
    .iv-single .iv-cover {
        grid-template-columns: 1fr;
        gap: 40px;
        padding: 56px 20px 72px;
    }
    .iv-single .iv-cover-l {
        min-height: auto;
    }
    .iv-single .iv-cover-titlewrap {
        margin: 28px 0;
    }
    .iv-single .iv-cover-title {
        font-size: 36px;
    }
    .iv-single .iv-portrait {
        min-height: 360px;
    }
    .iv-single .iv-portrait-initials {
        font-size: 64px;
    }
    .iv-single .iv-profile {
        grid-template-columns: 1fr;
        gap: 16px;
        padding-left: 20px;
        padding-right: 20px;
    }
    .iv-single .iv-profile-meta {
        gap: 6px 20px;
    }
    .iv-single .iv-profile-chapter {
        justify-self: start;
    }
    .iv-single .iv-ledebox,
    .iv-single .iv-qa-wrap,
    .iv-single .iv-timeline,
    .iv-single .iv-nums,
    .iv-single .iv-closing,
    .iv-single .iv-cta-wrap,
    .iv-single .iv-related,
    .iv-single .iv-back {
        padding-left: 20px;
        padding-right: 20px;
    }
    .iv-single .iv-section-title {
        font-size: 24px;
        margin-bottom: 32px;
    }
    .iv-single .iv-ledetext {
        font-size: 16px;
        line-height: 2;
    }
    .iv-single .iv-q {
        font-size: 18px;
        flex-direction: column;
        gap: 10px;
    }
    .iv-single .iv-q-num {
        align-self: flex-start;
    }
    .iv-single .iv-a {
        font-size: 14.5px;
        line-height: 2.05;
    }
    .iv-single .iv-pull {
        padding: 80px 24px 70px;
        margin: 56px 0;
    }
    .iv-single .iv-pull-mark {
        font-size: 80px;
    }
    .iv-single .iv-pull-text {
        font-size: 22px;
        line-height: 1.9;
    }
    .iv-single .iv-tl-row {
        grid-template-columns: 70px 1fr;
        gap: 12px 16px;
        row-gap: 4px;
    }
    .iv-single .iv-tl-time {
        font-size: 15px;
        grid-row: 1 / 2;
        grid-column: 1 / 2;
    }
    .iv-single .iv-tl-label {
        font-size: 15px;
        grid-row: 1 / 2;
        grid-column: 2 / 3;
    }
    .iv-single .iv-tl-body {
        grid-row: 2 / 3;
        grid-column: 1 / 3;
        font-size: 13.5px;
        color: var(--i3);
    }
    .iv-single .iv-nums-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    .iv-single .iv-num-cell {
        min-height: 120px;
        padding: 20px 14px;
    }
    .iv-single .iv-num-v {
        font-size: 36px;
    }
    .iv-single .iv-closing {
        padding-top: 64px;
        padding-bottom: 64px;
    }
    .iv-single .iv-closing-title {
        font-size: 22px;
    }
    .iv-single .iv-related-grid {
        grid-template-columns: 1fr;
        gap: 16px;
    }
}

/* ============================================================
   インタビュー本文中のインライン写真
   ============================================================ */
.iv-single .iv-inline-photo {
    max-width: 880px;
    margin: 60px auto;
    padding: 0 24px;
}
.iv-single .iv-inline-photo img {
    width: 100%;
    height: auto;
    display: block;
    background: var(--p2);
}
.iv-single .iv-inline-photo figcaption {
    margin-top: 14px;
    font-family: var(--iv-sans);
    font-size: 12px;
    letter-spacing: 0.18em;
    color: var(--i3);
    text-align: center;
    line-height: 1.6;
}

/* 一部位置はもう少し大きく見せたい（クロージング直前） */
.iv-single .iv-inline-photo + .iv-closing {
    margin-top: 0;
}

@media (max-width: 800px) {
    .iv-single .iv-inline-photo {
        margin: 40px auto;
        padding: 0 20px;
    }
    .iv-single .iv-inline-photo figcaption {
        font-size: 11px;
    }
}
