@charset "UTF-8";
/* ===================================================================
   pages.css — 固定ページ + CPT(voice/interview/news) 統合CSS
   header.php の条件分岐読み込みを廃止し、全ページ共通で1本読み込む。
   各ソースを初出順で無改変連結（@charset のみ先頭に集約）。
   =================================================================== */


/* ============================================================
   [SOURCE] page-reason.css
   ============================================================ */
/* ===================================================
   page-reason.css — 私たちが企業を覚醒へと導ける理由
   =================================================== */

/* ----- Section 1: リード文 ----- */
.p-reason__intro {
    margin-top: 35px;
    text-align: center;
    color: var(--color-text);
}
.p-reason__intro p {
    margin: 0;
    font-family: var(--font-base);
    font-size: var(--fz-base);
    line-height: 1.8;
}

/* ----- Section 2〜: Reason 共通ブロック ----- */
.p-reason__block {
    padding: var(--space-5xl) 0;
    color: var(--color-text);
}

/* 見出しグループ（.p-reason__block 直下の先頭 div） */
.p-reason__block > div:first-child {
    text-align: center;
    margin-bottom: var(--space-2xl);
}
.p-reason__block > div:first-child > p {
    margin: 0;
    font-family: var(--font-serif);
    font-size: var(--fz-base);
    font-weight: 700;
    line-height: 1.8;
    color: var(--color-accent);
    letter-spacing: 0.04em;
}
.p-reason__block > div:first-child > h2 {
    margin: 0;
    font-family: var(--font-heading);
    font-size: var(--fz-3xl);
    font-weight: 700;
    line-height: 1.5;
}

/* 本文グループ（画像 + テキスト） */
.p-reason__block > div:last-child {
    display: flex;
    align-items: center;
    gap: var(--space-5xl);
}
.p-reason__block > div:last-child > .p-image {
    flex-shrink: 0;
    width: 400px;
}
.p-reason__block > div:last-child > .p-image img {
    display: block;
    width: 100%;
    height: auto;
}
.p-reason__block > div:last-child > .p-image + div {
    flex: 1;
    min-width: 0;
}
.p-reason__block > div:last-child > .p-image + div p {
    margin: 0;
    font-family: var(--font-base);
    font-size: var(--fz-base);
    line-height: 1.8;
}

/* ----- Reason03: 本文末尾のボタン群 ----- */
.p-reason__block--03 > div:last-child > .p-image + div > div {
    margin-top: var(--space-lg);
    display: flex;
    flex-direction: column;
    gap: var(--space-md);
}

/* ----- Section 5: アライアンスパートナー ----- */
.p-reason__alliance {
    padding: 0 0 var(--space-5xl);
    color: var(--color-text);
}
.p-reason__alliance h2 {
    font-family: var(--font-heading);
    font-size: var(--fz-3xl);
    font-weight: 700;
    line-height: 1.5;
    color: var(--color-text-dark);
    text-align: center;
    margin-bottom: var(--space-2xl);
}
/* 見出しグループ */
.p-reason__alliance > div:first-child {
    max-width: 733px;
    margin: 0 auto var(--space-2xl);
    text-align: center;
}
.p-reason__alliance > div:first-child > h3 {
    margin: 0 0 var(--space-lg);
    font-family: var(--font-heading);
    font-size: var(--fz-2xl);
    font-weight: 700;
    line-height: 1.5;
}
.p-reason__alliance > div:first-child > p {
    margin: 0;
    font-family: var(--font-base);
    font-size: var(--fz-base);
    line-height: 1.8;
}
/* ロゴカードグリッド */
.p-reason__alliance-list {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--space-lg);
}
.p-reason__alliance-list > div {
    aspect-ratio: 252 / 142;
    background: var(--color-white);
    border: 1px solid var(--color-border-dark);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}
.p-reason__alliance-list > div img {
    max-width: 70%;
    max-height: 70%;
    width: auto;
    height: auto;
    object-fit: contain;
}
.p-reason__alliance-list > div:first-child img,
.p-reason__alliance-list > div:nth-child(4) img {
    width: 130px;
}
.p-reason__alliance-list > div:nth-child(3) img {
    width: 145px;
}
.p-reason__alliance-list > div:nth-child(5) img {
    max-width: 85%;
}
.p-reason__alliance-list > div:nth-child(6) img {
    width: 145px;
}
.p-reason__alliance-list > div:nth-child(7) img {
    max-width: 78%;
}
.p-reason__alliance .btn {
    text-align: center;
    margin-top: var(--space-2xl);
}


/* ===================================================
   Responsive
   =================================================== */

/* ----- Tablet: 601–1024px ----- */
@media screen and (max-width: 1024px) {
    .p-reason__block {
        padding: var(--space-4xl) 0;
    }
    .p-reason__block > div:first-child {
        margin-bottom: var(--space-xl);
    }
    .p-reason__block > div:last-child {
        gap: var(--space-2xl);
    }
    .p-reason__block > div:last-child > .p-image {
        width: 320px;
    }
    .p-reason__alliance-list > div:nth-child(6) img {
        max-width: 55%;
        width: auto;
    }
    

    /* Alliance */
    .p-reason__alliance {
        padding: 0 0 var(--space-4xl);
    }
    .p-reason__alliance > div:first-child {
        margin-bottom: var(--space-xl);
    }
    .p-reason__alliance-list {
        grid-template-columns: repeat(2, 1fr);
        gap: var(--space-md);
    }
}

/* ----- SP: ≤600px ----- */
@media screen and (max-width: 600px) {
    .p-reason__intro {
        margin-top: 24px;
        text-align: left;
    }
    .p-reason__block {
        padding: var(--space-3xl) 0;
    }
    .p-reason__block > div:first-child {
        margin-bottom: var(--space-lg);
    }
    .p-reason__block > div:first-child > h2 {
        font-size: var(--fz-2xl);
    }
    .p-reason__block > div:last-child {
        flex-direction: column;
        gap: var(--space-md);
    }
    .p-reason__block > div:last-child > .p-image {
        width: min(280px, 80%);
        margin: 0 auto;
    }
    .p-reason__block > div:last-child > .p-image + div {
        width: 100%;
    }
    .p-reason__block--03 > div:last-child > .p-image + div > div .c-btn {
        margin: 0 auto;
    }

    /* Alliance */
    .p-reason__alliance {
        padding: 0 0 var(--space-3xl);
    }
    .p-reason__alliance > div:first-child {
        margin-bottom: var(--space-lg);
    }
    .p-reason__alliance > div:first-child > h3 {
        font-size: var(--fz-xl);
        margin-bottom: var(--space-md);
    }
    .p-reason__alliance > div:first-child > p {
        text-align: left;
    }
    .p-reason__alliance-list {
        gap: var(--space-sm);
    }
}


/* ============================================================
   [SOURCE] page-partnership.css
   ============================================================ */
/* ===================================================
   page-partnership.css — 協業について（親ページ）/ reason 共用
   service と同じカードCSSを流用しつつ、画像なしカード用に
   各カード内側の余白（上下・左）を追加
   =================================================== */

body.page-slug-partnership .p-service__list,
body.page-slug-reason .p-service__list {
    margin-bottom: var(--space-5xl);
}

body.page-slug-partnership .p-service__item > a,
body.page-slug-reason .p-service__item > a {
    padding: 40px;
}

@media screen and (max-width: 1024px) {
    body.page-slug-partnership .p-service__list,
    body.page-slug-reason .p-service__list {
        margin-bottom: var(--space-4xl);
    }
    body.page-slug-partnership .p-service__item > a,
    body.page-slug-reason .p-service__item > a {
        padding: var(--space-xl);        
    }
}
@media screen and (max-width: 600px) {
    body.page-slug-partnership .p-service__list,
    body.page-slug-reason .p-service__list {
        margin-bottom: var(--space-3xl);
    }
    body.page-slug-partnership .p-service__item > a,
    body.page-slug-reason .p-service__item > a {
        padding: var(--space-lg);
        padding-left: 16px;
    }
}


/* ============================================================
   [SOURCE] page-alliance.css
   ============================================================ */
/* ===================================================
   page-alliance.css — 協業パートナー募集ページ
   =================================================== */

/* SP専用改行（≤600px のみ表示） */
@media screen and (min-width: 601px) {
    [class*="p-alliance__"] br.sp { display: none; }
}

/* ===== p-alliance__intro ===== */
.p-alliance__intro {
    max-width: var(--content-narrow);
    margin: 0 auto;
    padding: var(--space-5xl) 0;
    text-align: center;
}
.p-alliance__intro > h2 {
    font-family: var(--font-heading);
    font-size: var(--fz-3xl);
    line-height: 1.6;
    color: var(--color-text-dark);
    margin-bottom: var(--space-2xl);
}
.p-alliance__intro > p {
    font-size: var(--fz-base);
    line-height: 1.9;
    color: var(--color-text);
    margin-bottom: var(--space-2xl);
}

@media screen and (max-width: 1024px) {
    .p-alliance__intro { padding: var(--space-4xl) var(--space-md); }
    .p-alliance__intro > h2 { font-size: var(--fz-2xl); }
}
@media screen and (max-width: 600px) {
    .p-alliance__intro { padding: var(--space-3xl) var(--space-md); }
    .p-alliance__intro > h2 { font-size: var(--fz-xl); }
}

/* ===== p-alliance__field ===== */
.p-alliance__field {
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    background-color: var(--color-bg-nav);
    padding: var(--space-5xl) var(--space-md);
}
.p-alliance__field > h2 {
    font-family: var(--font-heading);
    font-size: var(--fz-3xl);
    line-height: 1.6;
    color: var(--color-text-dark);
    text-align: center;
    margin-bottom: var(--space-xl);
}
.p-alliance__field > p {
    max-width: var(--content-narrow);
    margin: 0 auto;
    font-size: var(--fz-base);
    line-height: 1.9;
    color: var(--color-text);
    text-align: center;
}
.p-alliance__field > p:first-of-type {
    margin-bottom: var(--space-3xl);
}
.p-alliance__field > p:last-of-type {
    margin-top: var(--space-2xl);
    margin-bottom: 0;
}

/* ----- カテゴリグリッド ----- */
.p-alliance__field-list {
    max-width: var(--content-narrow);
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--space-lg);
}
.p-alliance__field-item {
    background-color: var(--color-white);
    border-radius: var(--radius-card);
    padding: var(--space-lg);
}
.p-alliance__field-item > h3 {
    font-family: var(--font-base);
    font-size: var(--fz-base);
    font-weight: 700;
    color: var(--color-text-dark);
    text-align: center;
    margin-bottom: var(--space-md);
}
.p-alliance__field-item > .p-image {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 80px;
    margin-bottom: var(--space-md);
}
.p-alliance__field-item > .p-image > img {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
}
.p-alliance__field-item > ul {
    list-style: none;
    padding: 0;
    margin: 0;
}
.p-alliance__field-item > ul > li {
    position: relative;
    padding-left: 1.2em;
    font-size: var(--fz-sm);
    line-height: 1.7;
    color: var(--color-text);
}
.p-alliance__field-item > ul > li + li {
    margin-top: var(--space-xs);
}
.p-alliance__field-item > ul > li::before {
    content: "●";
    position: absolute;
    left: 0;
    color: var(--color-text);
}

@media screen and (max-width: 1024px) {
    .p-alliance__field { padding: var(--space-4xl) var(--space-md); }
    .p-alliance__field > h2 { font-size: var(--fz-2xl); }
    .p-alliance__field-list { grid-template-columns: repeat(2, 1fr); }
}
@media screen and (max-width: 600px) {
    .p-alliance__field { padding: var(--space-3xl) var(--space-md); }
    .p-alliance__field > h2 { font-size: var(--fz-xl); }
    .p-alliance__field-list { grid-template-columns: 1fr; gap: var(--space-md); }
}

/* ===== p-alliance__case ===== */
.p-alliance__case {
    max-width: var(--content-narrow);
    margin: 0 auto;
    padding: var(--space-5xl) 0;
}
.p-alliance__case > h2 {
    font-family: var(--font-heading);
    font-size: var(--fz-3xl);
    line-height: 1.6;
    color: var(--color-text-dark);
    text-align: center;
    margin-bottom: var(--space-3xl);
}

/* ----- 事例カードリスト（pmg-partners.jp guidance03 sec03_list 準拠） ----- */
.p-alliance__case-list {
    display: flex;
    gap: 24px;
}

/* ----- 事例カード ----- */
.p-alliance__case-item {
    flex: 1;
    border: 1px solid #3B4043;
    border-radius: 8px;
    padding: 30px 0 18px;
    background-color: transparent;
    overflow: visible;
}
.p-alliance__case-item > h3 {
    font-family: var(--font-base);
    font-size: 16px;
    font-weight: 500;
    color: var(--color-text-dark);
    text-align: center;
    margin: 0 0 32px;
    padding: 0;
}

/* ----- ご相談内容ブロック（グレー背景＋下向き矢印） ----- */
.p-alliance__case-item > div {
    position: relative;
    background-color: #f0f3f5;
    padding: 18px 32px 32px;
    margin: 0;
}
.p-alliance__case-item > div::after {
    content: "";
    position: absolute;
    bottom: -22px;
    left: 50%;
    transform: translateX(-50%);
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 22px 28px 0 28px;
    border-color: #f0f3f5 transparent transparent transparent;
}
.p-alliance__case-item > div > p:first-child {
    font-size: 16px;
    text-align: center;
    color: var(--color-text);
    margin: 0 0 18px;
}
.p-alliance__case-item > div > div {
    display: flex;
    align-items: center;
    gap: 34px;
    margin: 18px 0 24px;
}
.p-alliance__case-item > div > div > div:first-child {
    flex-shrink: 0;
    text-align: center;
}
.p-alliance__case-item > div > div > div:first-child > .p-image {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 38px;
    margin: 0 auto var(--space-xs);
}
.p-alliance__case-item > div > div > div:first-child > .p-image > img {
    width: 100%;
    height: auto;
    display: block;
}
.p-alliance__case-item > div > div > div:first-child > p {
    font-size: 20px;
    font-weight: 500;
    color: var(--color-text-dark);
    text-align: center;
}
.p-alliance__case-item > div > div > div:last-child {
    position: relative;
    flex: 1;
    background-color: var(--color-white);
    border-radius: 8px;
    padding: 26px 16px;
}
.p-alliance__case-item > div > div > div:last-child::before {
    content: "";
    position: absolute;
    left: -10px;
    top: 50%;
    transform: translateY(-50%);
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 8px 10px 8px 0;
    border-color: transparent var(--color-white) transparent transparent;
}
.p-alliance__case-item > div > div > div:last-child > p {
    font-size: 16px;
    font-weight: 500;
    line-height: 24px;
    color: var(--color-text-dark);
}
.p-alliance__case-item > div > p:last-child {
    font-size: 15px;
    line-height: 1.8;
    color: var(--color-text);
    margin: 0;
}

/* ----- 成果ブロック ----- */
.p-alliance__case-item > p {
    margin: 36px 32px 0;
    padding: 0;
    font-size: 15px;
    line-height: 1.8;
    color: #003d83;
}
.p-alliance__case-item > p > span {
    display: block;
    width: fit-content;
    background-color: #003d83;
    color: var(--color-white);
    font-size: 14px;
    font-weight: 500;
    text-align: center;
    padding: 3px 8px;
    border-radius: 2px;
    margin: 0 0 4px;
}

@media screen and (max-width: 1024px) {
    .p-alliance__case { padding: var(--space-4xl) var(--space-md); }
    .p-alliance__case > h2 { font-size: var(--fz-2xl); }
    .p-alliance__case-list {
        flex-direction: column;
        max-width: 560px;
        margin: 0 auto;
    }
}
@media screen and (max-width: 600px) {
    .p-alliance__case { padding: var(--space-3xl) var(--space-md); }
    .p-alliance__case > h2 { font-size: var(--fz-xl); }
    .p-alliance__case-item > h3 {
        margin-bottom: 18px;
        font-size: 18px;
    }
    .p-alliance__case-item > div > div > div:last-child > p {
        font-size: 15px;
    }

    .page-slug-alliance h2,
    .page-slug-alliance p {
        text-align: left;
    }
    .page-slug-alliance h2 br,
    .page-slug-alliance p br {
        display: none;
    }
    .page-slug-alliance p span {
        display: block;
    }
}


/* ============================================================
   [SOURCE] page-consulting.css
   ============================================================ */
/* ===================================================
   page-consulting.css — コンサルティング会社・士業の皆様へ
   =================================================== */

/* SP専用改行（≤600px のみ表示） */
@media screen and (min-width: 601px) {
    [class*="p-consulting__"] br.sp { display: none; }
}
/* PC専用改行（≥601px のみ表示） */
@media screen and (max-width: 600px) {
    [class*="p-consulting__"] br.pc { display: none; }
}

/* ===== p-consulting__intro ===== */
.p-consulting__intro {
    max-width: var(--content-narrow);
    margin: 0 auto;
    padding: var(--space-5xl) 0;
    text-align: center;
}
.p-consulting__intro > h2 {
    font-family: var(--font-heading);
    font-size: var(--fz-3xl);
    line-height: 1.6;
    color: var(--color-text-dark);
    margin-bottom: var(--space-2xl);
}
.p-consulting__intro > p {
    font-size: var(--fz-base);
    line-height: 1.9;
    color: var(--color-text);
    margin: 0;
}
.p-consulting__intro > p > span {
    display: inline-block;
    border-bottom: 2px solid var(--color-primary);
    padding: 0 8px;
    margin-left: 4px;
    font-weight: 700;
    color: var(--color-primary);
}

@media screen and (max-width: 1024px) {
    .p-consulting__intro { padding: var(--space-4xl) var(--space-md); }
    .p-consulting__intro > h2 { font-size: var(--fz-2xl); }
}
@media screen and (max-width: 600px) {
    .p-consulting__intro { padding: var(--space-3xl) var(--space-md); }
    .p-consulting__intro > h2 { font-size: var(--fz-xl); }
}

/* ===== p-consulting__synergy ===== */
.p-consulting__synergy {
    max-width: var(--content-narrow);
    margin: 0 auto;
    padding: var(--space-5xl) 0;
}
.p-consulting__synergy > h2 {
    font-family: var(--font-heading);
    font-size: var(--fz-3xl);
    line-height: 1.6;
    color: var(--color-deep-blue);
    text-align: center;
    margin-bottom: var(--space-3xl);
}

/* ----- ロゴ + アイコン + パートナー横並び ----- */
.p-consulting__synergy-flex {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-2xl);
    margin-bottom: var(--space-3xl);
}
.p-consulting__synergy-flex > .p-image {
    flex-shrink: 0;
}
.p-consulting__synergy-flex > .p-image:first-child > img {
    max-width: 200px;
    height: auto;
}
.p-consulting__synergy-flex > .p-image:nth-child(2) > img {
    width: 560px;
    height: auto;
}
.p-consulting__synergy-flex > p {
    flex-shrink: 0;
    font-size: var(--fz-base);
    font-weight: 700;
    line-height: 1.5;
    color: var(--color-text-dark);
    text-align: right;
    margin: 0;
}

/* ----- パートナーカード（白背景） ----- */
.p-consulting__synergy-card {
    background-color: var(--color-bg-card);
    border-radius: var(--radius-card);
    padding: var(--space-3xl) var(--space-2xl);
    text-align: center;
}
.p-consulting__synergy-card > p:first-of-type {
    display: inline-block;
    background-color: var(--color-white);
    color: var(--color-deep-blue);
    font-size: var(--fz-base);
    font-weight: 700;
    padding: var(--space-sm) var(--space-xl);
    border-radius: var(--radius-lg);
    margin: 0 auto var(--space-xl);
}
.p-consulting__synergy-card > h3 {
    font-family: var(--font-heading);
    font-size: var(--fz-3xl);
    line-height: 1.6;
    color: var(--color-text-dark);
    margin-bottom: var(--space-xl);
}
.p-consulting__synergy-card > p:last-of-type {
    font-size: var(--fz-base);
    line-height: 1.9;
    color: var(--color-text);
    margin: 0;
}

@media screen and (max-width: 1024px) {
    .p-consulting__synergy { padding: var(--space-4xl) var(--space-md); }
    .p-consulting__synergy > h2 { font-size: var(--fz-2xl); }
    .p-consulting__synergy-flex { 
        flex-direction: column;
        gap: var(--space-lg); 
    }
    .p-consulting__synergy-flex > p { 
        font-size: var(--fz-xl); 
        text-align: center;
    }
    .p-consulting__synergy-card > h3 { font-size: var(--fz-2xl); }
}
@media screen and (max-width: 600px) {
    .p-consulting__synergy { padding: var(--space-3xl) var(--space-md); }
    .p-consulting__synergy > h2 { font-size: var(--fz-xl); }
    .p-consulting__synergy-flex {
        flex-direction: column;
        gap: var(--space-md);
    }
    .p-consulting__synergy-flex > p { text-align: center; font-size: var(--fz-lg); }
    .p-consulting__synergy-card { padding: var(--space-xl) var(--space-md); }
    .p-consulting__synergy-card > h3 { font-size: var(--fz-xl); }
}

/* ===== p-consulting__philosophy（想い・グレー背景フル幅） ===== */
.p-consulting__philosophy {
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    background-color: var(--color-bg-gray);
    padding: var(--space-5xl) var(--space-md);
    text-align: center;
}
.p-consulting__philosophy > h2 {
    max-width: var(--content-narrow);
    margin: 0 auto var(--space-2xl);
    font-family: var(--font-heading);
    font-size: var(--fz-3xl);
    line-height: 1.6;
    color: var(--color-text-dark);
}
.p-consulting__philosophy > p {
    max-width: var(--content-narrow);
    margin: 0 auto;
    font-size: var(--fz-base);
    line-height: 1.9;
    color: var(--color-text);
}

@media screen and (max-width: 1024px) {
    .p-consulting__philosophy { padding: var(--space-4xl) var(--space-md); }
    .p-consulting__philosophy > h2 { font-size: var(--fz-2xl); }
}
@media screen and (max-width: 600px) {
    .p-consulting__philosophy { padding: var(--space-3xl) var(--space-md); }
    .p-consulting__philosophy > h2 { font-size: var(--fz-xl); }
}

/* ===== p-consulting__values（5価値観・ペンタゴン円形配置） ===== */
.p-consulting__values {
    position: relative;
    aspect-ratio: 1;
    max-width: 720px;
    margin: var(--space-5xl) auto 0;
}
/* 中央の薄青円背景 */
.p-consulting__values::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 70%;
    aspect-ratio: 1;
    border-radius: 50%;
    background-color: var(--color-border-blue);
    opacity: 0.35;
    z-index: 0;
}
/* 中央のタイトル */
.p-consulting__values > p {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 1;
    margin: 0;
    text-align: center;
    font-family: var(--font-heading);
    font-size: var(--fz-2xl);
    line-height: 1.7;
    color: var(--color-text-dark);
}
/* 5カードのリスト（ペンタゴン配置の絶対位置基準） */
.p-consulting__values-list {
    position: absolute;
    inset: 0;
    z-index: 2;
}
.p-consulting__values-item {
    position: absolute;
    width: 30%;
    aspect-ratio: 1;
    background-color: var(--color-white);
    border-radius: 50%;
    padding: var(--space-md);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    box-sizing: border-box;
}
/* 各カード位置（ペンタゴン頂点） */
.p-consulting__values-item:nth-child(1) { top: 0;     left: 50%; transform: translateX(-50%); }   /* 専門性×伴走力（上） */
.p-consulting__values-item:nth-child(2) { top: 28%;   left: 0; }                                    /* 切磋琢磨（左上） */
.p-consulting__values-item:nth-child(3) { top: 28%;   right: 0; }                                   /* For You（右上） */
.p-consulting__values-item:nth-child(4) { bottom: 0;  left: 12%; }                                  /* 可能性に真剣であれ（左下） */
.p-consulting__values-item:nth-child(5) { bottom: 0;  right: 12%; }                                 /* 経営に虹をかける（右下） */

.p-consulting__values-item > h4 {
    font-family: var(--font-base);
    font-size: var(--fz-base);
    font-weight: 500;
    line-height: 1.4;
    color: var(--color-accent);
    margin: 0 0 var(--space-sm);
}
.p-consulting__values-item > p {
    font-size: var(--fz-xs);
    line-height: 1.6;
    color: var(--color-text);
    margin: 0;
}

/* ----- レスポンシブ ----- */
@media screen and (max-width: 1024px) {
    .p-consulting__values { max-width: 580px; margin-top: var(--space-4xl); }
    .p-consulting__values > p { font-size: var(--fz-xl); }
}
@media screen and (max-width: 600px) {
    /* SPは円形ペンタゴンを諦めて縦積みカードに切り替え */
    .p-consulting__values {
        aspect-ratio: auto;
        max-width: 100%;
        margin-top: var(--space-3xl);
    }
    .p-consulting__values::before { display: none; }
    .p-consulting__values > p {
        position: static;
        transform: none;
        margin: 0 0 var(--space-2xl);
        font-size: var(--fz-xl);
    }
    .p-consulting__values-list {
        position: static;
        display: flex;
        flex-direction: column;
        gap: var(--space-md);
    }
    .p-consulting__values-item {
        position: static;
        transform: none !important;
        width: 100%;
        aspect-ratio: auto;
        border-radius: var(--radius-card);
        padding: var(--space-lg);
    }
    .p-consulting__values-item > h4 { font-size: var(--fz-lg); }
    .p-consulting__values-item > p { font-size: var(--fz-sm); text-align: left; }
}

/* ===== p-consulting__flow（流れ） ===== */
.p-consulting__flow {
    max-width: var(--content-narrow);
    margin: var(--space-5xl) auto 0;
    border: 4px solid var(--color-white);
    border-radius: var(--radius-md);
    padding: var(--space-2xl) var(--space-2xl) var(--space-3xl);
}
.p-consulting__flow > h3 {
    width: fit-content;
    margin: 0 auto var(--space-2xl);
    padding-bottom: var(--space-sm);
    border-bottom: 2px solid var(--color-text-dark);
    font-family: var(--font-base);
    font-size: var(--fz-xl);
    font-weight: 500;
    letter-spacing: 0.2em;
    color: var(--color-text-dark);
    text-align: center;
}
.p-consulting__flow-list {
    display: flex;
    gap: var(--space-3xl);
}
.p-consulting__flow-item {
    position: relative;
    flex: 1;
    background-color: var(--color-white);
    border-radius: var(--radius-md);
    padding: var(--space-lg) var(--space-md);
    text-align: center;
}
/* ステップ間の矢印（最後の手前まで） */
.p-consulting__flow-item:not(:last-child)::after {
    content: "";
    position: absolute;
    top: 50%;
    right: -40px;
    transform: translateY(-50%);
    width: 24px;
    height: 24px;
    background: url('../images/icons/icon_arrow_flow.svg') no-repeat center / contain;
}
.p-consulting__flow-item > h4 {
    margin: 0 0 var(--space-sm);
    font-family: var(--font-base);
    font-size: var(--fz-base);
    font-weight: 500;
    color: var(--color-text-dark);
}
.p-consulting__flow-item > .p-image {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 75px;
    margin-bottom: var(--space-sm);
}
.p-consulting__flow-item > .p-image > img {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
}
.p-consulting__flow-item > p {
    font-size: var(--fz-sm);
    line-height: 1.7;
    color: var(--color-text);
    text-align: left;
    margin: 0;
}
/* 支援開始（最終ステップ・グレー背景・タイトルのみ） */
.p-consulting__flow-item--end {
    background-color: var(--color-border-light);
    display: flex;
    align-items: center;
    justify-content: center;
}
.p-consulting__flow-item--end > h4 {
    margin: 0;
}

@media screen and (max-width: 1024px) {
    .p-consulting__flow {
        margin-top: var(--space-4xl);
        padding: var(--space-xl) var(--space-md) var(--space-2xl);
    }
    .p-consulting__flow-list { gap: var(--space-2xl); }
    .p-consulting__flow-item:not(:last-child)::after {
        right: calc(-1 * var(--space-2xl) + 4px);
    }
}
@media screen and (max-width: 600px) {
    .p-consulting__flow {
        margin-top: var(--space-3xl);
        padding: var(--space-lg) var(--space-md) var(--space-xl);
    }
    .p-consulting__flow-list {
        flex-direction: column;
        gap: var(--space-2xl);
    }
    .p-consulting__flow-item:not(:last-child)::after {
        top: auto;
        right: 50%;
        bottom: calc(-1 * var(--space-2xl) + 4px);
        transform: translateX(50%) rotate(90deg);
    }
    .p-consulting__flow-item--end { padding: var(--space-md); }

    .page-slug-consulting h2,
    .page-slug-consulting p {
        text-align: left;
    }
    .page-slug-consulting h2 br,
    .page-slug-consulting p br {
        display: none;
    }
    .page-slug-consulting p span {
        display: block;
    }
}


/* ============================================================
   [SOURCE] page-financial.css
   ============================================================ */
/* ===================================================
   page-financial.css — 金融機関の皆様へ
   =================================================== */

/* SP専用改行（≤600px のみ表示） */
@media screen and (min-width: 601px) {
    [class*="p-financial__"] br.sp { display: none; }
}
/* PC専用改行（≥601px のみ表示） */
@media screen and (max-width: 600px) {
    [class*="p-financial__"] br.pc { display: none; }
}

/* ===== p-financial__intro ===== */
.p-financial__intro {
    max-width: var(--content-narrow);
    margin: 0 auto;
    padding: var(--space-5xl) 0;
    text-align: center;
}
.p-financial__intro > h2 {
    font-family: var(--font-heading);
    font-size: var(--fz-3xl);
    line-height: 1.6;
    color: var(--color-text-dark);
    margin-bottom: var(--space-2xl);
}
.p-financial__intro > p {
    font-size: var(--fz-base);
    line-height: 1.9;
    color: var(--color-text);
    margin: 0;
}

@media screen and (max-width: 1024px) {
    .p-financial__intro { padding: var(--space-4xl) var(--space-md); }
    .p-financial__intro > h2 { font-size: var(--fz-2xl); }
}
@media screen and (max-width: 600px) {
    .p-financial__intro { padding: var(--space-3xl) var(--space-md); }
    .p-financial__intro > h2 { font-size: var(--fz-xl); }
}

/* ===== p-financial__fsa（金融庁推奨セクション） ===== */
.p-financial__fsa {
    max-width: var(--content-width);
    margin: 0 auto;
    padding: 0 var(--space-md) var(--space-5xl);
}
.p-financial__fsa > .p-image {
    position: relative;
    left: 50%;
    transform: translateX(-50%);
    width: min(1800px, 100vw);
    margin-bottom: var(--space-2xl);
}
.p-financial__fsa > .p-image img {
    display: block;
    width: 100%;
    height: auto;
}

/* 金融庁推奨カード（背景画像付き濃紺ブロック） */
.p-financial__fsa-card {
    max-width: 1224px;
    margin: 0 auto;
    padding: var(--space-4xl) var(--space-2xl);
    background: url('../images/bg/financial_bg.webp') no-repeat center / cover;
    border-radius: var(--radius-md);
    text-align: center;
}
.p-financial__fsa-card > h2 {
    font-family: var(--font-heading);
    font-size: var(--fz-3xl);
    line-height: 1.6;
    color: var(--color-white);
    margin-bottom: var(--space-2xl);
}
.p-financial__fsa-card > p {
    max-width: var(--content-narrow);
    margin: 0 auto var(--space-2xl);
    font-size: var(--fz-base);
    line-height: 1.9;
    color: var(--color-white);
}
/* 金融庁外部リンクボタン */
.p-financial__fsa-card > a {
    position: relative;
    display: block;
    width: 480px;
    max-width: 100%;
    margin: 0 auto;
    padding: var(--space-md) var(--space-xl);
    background-color: var(--color-white);
    color: var(--color-text-dark);
    font-size: var(--fz-base);
    font-weight: 500;
    line-height: 1.5;
    text-align: center;
    text-decoration: none;
    border-radius: var(--radius-sm);
    transition: background-color var(--transition-base);
}
.p-financial__fsa-card > a:hover {
    background-color: var(--color-bg-gray);
}
.p-financial__fsa-card > a::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 8px;
    transform: translateY(-50%);
    width: 17px;
    height: 14px;
    background: url('../images/icons/icon_external_tab.svg') no-repeat center / contain;
}

@media screen and (max-width: 1024px) {
    .p-financial__fsa { padding-bottom: var(--space-4xl); }
    .p-financial__fsa-card { padding: var(--space-3xl) var(--space-xl); }
    .p-financial__fsa-card > h2 { font-size: var(--fz-2xl); }
}
@media screen and (max-width: 600px) {
    .p-financial__fsa { padding-bottom: var(--space-3xl); }
    .p-financial__fsa-card { padding: var(--space-2xl) var(--space-md); }
    .p-financial__fsa-card > h2 { font-size: var(--fz-xl); }
    .p-financial__fsa-card > a {
        width: 100%;
        padding: var(--space-md) var(--space-2xl);
        font-size: var(--fz-sm);
    }
    .p-financial__fsa-card > a::after { right: var(--space-md); }
}

/* ===== p-financial__safety（専門性×伴走力 + 安心宣言） ===== */
.p-financial__safety {
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    background-color: var(--color-bg-gray);
    padding: var(--space-5xl) var(--space-md);
    text-align: center;
}
.p-financial__safety > h2 {
    max-width: var(--content-narrow);
    margin: 0 auto var(--space-2xl);
    font-family: var(--font-heading);
    font-size: var(--fz-3xl);
    line-height: 1.6;
    color: var(--color-text-dark);
}
.p-financial__safety > p {
    max-width: var(--content-narrow);
    margin: 0 auto var(--space-3xl);
    font-size: var(--fz-base);
    line-height: 1.9;
    color: var(--color-text);
}

/* ----- 安心宣言カード ----- */
.p-financial__declaration {
    max-width: var(--content-narrow);
    margin: 0 auto;
    background-color: var(--color-white);
    border-radius: var(--radius-md);
    padding: var(--space-3xl) var(--space-2xl);
    text-align: left;
}
/* 安心宣言タイトル + 説明文（PCは横並び） */
.p-financial__declaration > div {
    display: flex;
    align-items: center;
    gap: var(--space-2xl);
    margin-bottom: var(--space-2xl);
}
.p-financial__declaration > div > h3 {
    flex-shrink: 0;
    position: relative;
    padding-right: 60px;
    margin: 0;
    font-family: var(--font-heading);
    font-size: var(--fz-3xl);
    font-weight: 700;
    color: var(--color-text-dark);
}
.p-financial__declaration > div > h3::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
    width: 50px;
    height: 40px;
    background: url('../images/img/financial_03.svg') no-repeat center / contain;
}
.p-financial__declaration > div > p {
    flex: 1;
    margin: 0;
    font-size: var(--fz-base);
    line-height: 1.9;
    color: var(--color-text);
}

/* 3項目リスト（縦積み・全幅） */
.p-financial__declaration > ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-md);
}
.p-financial__declaration > ul > li {
    background-color: rgba(0, 175, 236, 0.1);
    border-radius: var(--radius-sm);
    padding: var(--space-lg) var(--space-md);
    font-size: var(--fz-lg);
    font-weight: 700;
    line-height: 1.6;
    color: var(--color-text-dark);
    text-align: center;
}

@media screen and (max-width: 1024px) {
    .p-financial__safety { padding: var(--space-4xl) var(--space-md); }
    .p-financial__safety > h2 { font-size: var(--fz-2xl); }
    .p-financial__declaration { padding: var(--space-2xl) var(--space-xl); }
    .p-financial__declaration > div > h3 { font-size: var(--fz-2xl); padding-right: 50px; }
    .p-financial__declaration > div > h3::after { width: 40px; height: 32px; }
    .p-financial__declaration > ul > li { font-size: var(--fz-base); }
}
@media screen and (max-width: 600px) {
    .p-financial__safety { padding: var(--space-3xl) var(--space-md); }
    .p-financial__safety > h2 { font-size: var(--fz-xl); }
    .p-financial__declaration { padding: var(--space-xl) var(--space-md); }
    .p-financial__declaration > div {
        flex-direction: column;
        gap: var(--space-md);
        text-align: center;
    }
    .p-financial__declaration > div > h3 {
        font-size: var(--fz-xl);
        padding-right: 0;
    }
    .p-financial__declaration > div > h3::after {
        top: auto;
        bottom: 0;
        right: 50%;
        transform: translateX(50%);
    }
    .p-financial__declaration > ul > li { font-size: var(--fz-base); }

    .page-slug-financial h2,
    .page-slug-financial p {
        text-align: left;
    }
    .page-slug-financial h2 br,
    .page-slug-financial p br {
        display: none;
    }
    .page-slug-financial p span {
        display: block;
    }
}


/* ============================================================
   [SOURCE] page-faq.css
   ============================================================ */
/* ===================================================
   page-faq.css — よくある質問
   =================================================== */

/* SP/PC専用改行 */
@media screen and (min-width: 601px) {
    [class*="p-faq__"] br.sp { display: none; }
}
@media screen and (max-width: 600px) {
    [class*="p-faq__"] br.pc { display: none; }
}

/* ===== p-faq__anchors（カテゴリアンカーリスト） ===== */
.p-faq__anchors {
    display: flex;
    flex-wrap: wrap;
    max-width: 900px;
    margin: var(--space-3xl) auto;
    padding: 0;
    list-style: none;
}
.p-faq__anchors > li {
    width: calc(100% / 3);
    box-sizing: border-box;
    padding: var(--space-md) var(--space-2xl);
    border-right: 1px solid var(--color-border-gray);
    text-align: center;
    line-height: 1.5;
}
.p-faq__anchors > li:nth-child(3n+1) {
    border-left: 1px solid var(--color-border-gray);
}
.p-faq__anchors > li > a {
    position: relative;
    display: inline-block;
    width: 100%;
    padding-right: 18px;
    color: var(--color-text-dark);
    font-weight: 700;
    text-decoration: none;
    transition: color var(--transition-base);
}
.p-faq__anchors > li > a:hover {
    color: var(--color-deep-blue);
}
.p-faq__anchors > li > a::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 0;
    width: 6px;
    height: 6px;
    border-top: 2px solid var(--color-deep-blue);
    border-right: 2px solid var(--color-deep-blue);
    transform: translateY(-65%) rotate(135deg);
}

/* ===== p-faq__category ===== */
.p-faq__category {
    max-width: var(--content-narrow);
    margin: 0 auto var(--space-5xl);
}
.p-faq__category > h2 {
    font-family: var(--font-base);
    font-size: var(--fz-lg);
    font-weight: 700;
    color: var(--color-text-dark);
    text-align: center;
    margin-bottom: var(--space-2xl);
}

/* ===== アコーディオン Q&A ===== */
.p-faq__category > dl {
    position: relative;
    background-color: var(--color-white);
    border-radius: var(--radius-sm);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
    margin: 0 0 var(--space-md);
}
.p-faq__category > dl > dt {
    cursor: pointer;
    padding: 20px 65px 20px 75px;
    position: relative;
    font-weight: 700;
    color: var(--color-text-dark);
    line-height: 1.6;
    /* +/- アコーディオンアイコンを背景画像で描画（::before/::afterは Q. ラベル用に確保） */
    background-image:
        linear-gradient(var(--color-deep-blue), var(--color-deep-blue)),
        linear-gradient(var(--color-deep-blue), var(--color-deep-blue));
    background-position:
        right 25px center,
        right 31.5px center;
    background-size: 15px 2px, 2px 15px;
    background-repeat: no-repeat;
    transition: background-size var(--transition-base);
}
.p-faq__category > dl > dt.is-open {
    background-size: 15px 2px, 0 0;
}
/* Q. ラベル（dt の擬似要素・上下中央寄せ） */
.p-faq__category > dl > dt::before {
    content: "Q.";
    position: absolute;
    left: 40px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--color-deep-blue);
    font-size: var(--fz-lg);
    font-weight: 700;
    pointer-events: none;
}
.p-faq__category > dl > dd {
    display: none;
    padding: 20px 65px 20px 75px;
    margin: 0;
    position: relative;
    border-top: 1px solid var(--color-border-gray);
}
.p-faq__category > dl > dd::before {
    content: "A.";
    position: absolute;
    left: 40px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--color-deep-blue);
    font-size: var(--fz-lg);
    font-weight: 700;
    pointer-events: none;
}
.p-faq__category > dl > dd > p {
    margin: 0;
    font-size: var(--fz-sm);
    line-height: 1.9;
    color: var(--color-text);
}

/* ----- レスポンシブ ----- */
@media screen and (max-width: 1024px) {
    .p-faq__anchors > li {
        width: calc(100% / 2);
    }
    .p-faq__anchors > li:nth-child(3n+1) {
        border-left: none;
    }
    .p-faq__anchors > li:nth-child(2n+1) {
        border-left: 1px solid var(--color-border-gray);
    }
    .p-faq__category {
        padding: 0 var(--space-md);
        margin-bottom: var(--space-4xl);
    }
}
@media screen and (max-width: 600px) {
    .p-faq__anchors {
        flex-direction: column;
        margin: var(--space-2xl) auto;
    }
    .p-faq__anchors > li {
        width: 100%;
        border: none !important;
        border-bottom: 1px solid var(--color-border-gray) !important;
        padding: var(--space-md);
    }
    .p-faq__category { margin-bottom: var(--space-3xl); }
    .p-faq__category > dl::before {
        left: 14px;
        top: 22px;
    }
    .p-faq__category > dl > dt {
        padding: 20px 40px 20px 50px;
        font-size: var(--fz-sm);
    }
    .p-faq__category > dl > dt::before,
    .p-faq__category > dl > dt::after {
        left: 20px;
        width: 12px;
    }
    
    .p-faq__category > dl > dd {
        padding: 18px 16px 18px 50px;
    }
    .p-faq__category > dl > dd::before {
        left: 20px;
    }
    .p-faq__category > dl > dd > p {
        font-size: var(--fz-sm);
    }
}


/* ============================================================
   [SOURCE] page-privacy.css
   ============================================================ */
/* ===================================================
   page-privacy.css — 個人情報保護方針
   =================================================== */

/* ===== p-privacy__intro ===== */
.p-privacy__intro {
    max-width: var(--content-narrow);
    margin: var(--space-3xl) auto var(--space-2xl);
    padding: 0;
}
.p-privacy__intro > p {
    font-size: var(--fz-base);
    line-height: 1.9;
    color: var(--color-text);
    margin: 0;
}

/* ===== p-privacy__item（各方針セクション） ===== */
.p-privacy__item {
    max-width: var(--content-narrow);
    margin: 0 auto;
    padding: var(--space-2xl) 0;
    border-top: 1px solid var(--color-border-gray);
}
.p-privacy__item:last-of-type {
    border-bottom: 1px solid var(--color-border-gray);
    margin-bottom: var(--space-5xl);
}
.p-privacy__item > h2 {
    font-family: var(--font-base);
    font-size: var(--fz-lg);
    font-weight: 700;
    color: var(--color-text-dark);
    margin: 0 0 var(--space-md);
    line-height: 1.5;
}
.p-privacy__item > p {
    font-size: var(--fz-base);
    line-height: 1.9;
    color: var(--color-text);
    margin: 0 0 var(--space-md);
}
.p-privacy__item > p:last-child {
    margin-bottom: 0;
}

/* カウンタースタイル定義（ソースに準拠） */
@counter-style p-privacy-paren-decimal {
    system: extends decimal;
    prefix: "(";
    suffix: ") ";
}
@counter-style p-privacy-circled-decimal {
    system: fixed 1;
    symbols: "\2460" "\2461" "\2462" "\2463" "\2464" "\2465" "\2466" "\2467" "\2468" "\2469";
    suffix: " ";
}
@counter-style p-privacy-katakana {
    system: fixed 1;
    symbols: "ア" "イ" "ウ" "エ" "オ" "カ" "キ" "ク" "ケ" "コ";
    suffix: " ";
}

/* リスト全般 */
.p-privacy__item ol,
.p-privacy__item ul {
    margin: var(--space-md) 0;
    padding-left: 2.4em;
}
.p-privacy__item ol > li,
.p-privacy__item ul > li {
    font-size: var(--fz-base);
    line-height: 1.9;
    color: var(--color-text);
    margin-bottom: var(--space-sm);
}
.p-privacy__item ol > li:last-child,
.p-privacy__item ul > li:last-child {
    margin-bottom: 0;
}
/* typea: ol → (1)(2)(3) */
.p-privacy__item ol {
    list-style-type: p-privacy-paren-decimal;
    list-style-position: outside;
}
/* typeb: ul → ①②③ */
.p-privacy__item ul {
    list-style-type: p-privacy-circled-decimal;
    list-style-position: outside;
}
/* typec: ul[data-style="kana"] → ア イ ウ */
.p-privacy__item ul[data-style="kana"] {
    list-style-type: p-privacy-katakana;
}

/* リンク */
.p-privacy__item a {
    color: var(--color-primary);
    text-decoration: underline;
    transition: color var(--transition-base);
}
.p-privacy__item a:hover {
    color: var(--color-accent);
}

/* ----- レスポンシブ ----- */
@media screen and (max-width: 1024px) {
    .p-privacy__item { padding: var(--space-xl) var(--space-md); }
}
@media screen and (max-width: 600px) {
    .p-privacy__intro { margin: var(--space-2xl) auto var(--space-md); }
    .p-privacy__item { padding: var(--space-lg) var(--space-md); }
    .p-privacy__item > h2 { font-size: var(--fz-base); }
    .p-privacy__item > p,
    .p-privacy__item ol > li,
    .p-privacy__item ul > li { font-size: var(--fz-sm); }
}


/* ============================================================
   [SOURCE] page-error.css
   ============================================================ */
/* ===================================================
   page-error.css — 404 エラーページ
   =================================================== */

.p-error {
    max-width: var(--content-narrow);
    margin: var(--space-5xl) auto;
    padding: 0;
    text-align: center;
}
.p-error > p {
    font-size: var(--fz-base);
    line-height: 1.9;
    color: var(--color-text);
    margin: 0 0 var(--space-2xl);
}

@media screen and (max-width: 1024px) {
    .p-error { margin: var(--space-4xl) auto; }
}
@media screen and (max-width: 600px) {
    .p-error { margin: var(--space-3xl) auto; }
}


/* ============================================================
   [SOURCE] page-about.css
   ============================================================ */
/* ===================================================
   page-about.css — PMGホールディングスについて
   =================================================== */

/* ----- Section 1: 理念 + リード文 + メイン画像 ----- */
.p-about__intro {
    position: relative;
    max-width: var(--content-narrow);
    margin: var(--space-5xl) auto 0;
    padding: 0;
    text-align: center;
    color: var(--color-text);
}
.p-about__intro::before {
    content: "";
    position: absolute;
    top: 200px;
    left: 50%;
    transform: translateX(-50%);
    width: 100vw;
    height: 120%;
    background: url(../images/img/reason/about_07.webp) center / cover no-repeat;
    pointer-events: none;
    z-index: -1;
}
.p-about__intro > h2 {
    position: relative;
    margin: 0 0 var(--space-2xl);
    font-family: var(--font-heading);
    font-size: var(--fz-3xl);
    font-weight: 700;
    line-height: 1.5;
    color: var(--color-accent);
}
.p-about__intro > p {
    margin: 0;
    font-family: var(--font-base);
    font-size: var(--fz-base);
    line-height: 1.8;
}
.p-about__intro > .p-image {
    margin-top: var(--space-2xl);
}
.p-about__intro > .p-image img {
    display: block;
    width: 100%;
    height: auto;
}

/* ----- Section 2: Partnersがハブ ----- */
.p-about__hub {
    position: relative;
    max-width: var(--content-narrow);
    margin: 0 auto;
    padding: var(--space-5xl) 0;
    color: var(--color-text);
    display: flex;
    align-items: center;
    gap: var(--space-4xl);
}
.p-about__hub::before {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 100vw;
    height: calc(100vw * 448 / 1440);
    background: url('../images/bg/arc-bg.svg') top center / 100% 100% no-repeat;
    pointer-events: none;
    z-index: -1;
}
.p-about__hub > div:first-child {
    flex: 1;
    min-width: 0;
}
.p-about__hub > div:first-child > h2 {
    margin: 0 0 var(--space-lg);
    font-family: var(--font-heading);
    font-size: var(--fz-3xl);
    font-weight: 700;
    line-height: 1.5;
}
.p-about__hub > div:first-child > p {
    margin: 0;
    font-family: var(--font-base);
    font-size: var(--fz-base);
    line-height: 1.8;
}
.p-about__hub > div:first-child > .c-btn {
    margin-top: var(--space-lg);
}
.p-about__hub > .p-image {
    flex-shrink: 0;
    width: 400px;
}
.p-about__hub > .p-image img {
    display: block;
    width: 100%;
    height: auto;
}

/* ----- Section 3: PMG HOLDINGSの歩み ----- */
.p-about__history {
    position: relative;
    max-width: var(--content-narrow);
    margin: 0 auto;
    padding: var(--space-5xl) 0;
    color: var(--color-text);
}
.p-about__history::before {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 100vw;
    height: calc(100vw * 448 / 1440);
    background: url('../images/bg/arc-bg.svg') top center / 100% 100% no-repeat;
    pointer-events: none;
    z-index: -1;
}
.p-about__history > h2 {
    position: relative;
    margin: 0 0 var(--space-3xl);
    font-family: var(--font-heading);
    font-size: var(--fz-3xl);
    font-weight: 700;
    line-height: 1.5;
    color: var(--color-accent);
    text-align: center;
}

/* ----- 見出し装飾（icon-ttl.svg：トップと統一） ----- */
.p-about__intro > h2::before,
.p-about__history > h2::before {
    content: "";
    display: block;
    width: 23px;
    height: 18px;
    margin: 0 auto var(--space-sm);
    background: url('../images/icons/icon-ttl.svg') no-repeat center / contain;
}
.p-about__history > dl {
    margin: 0;
}
.p-about__history > dl > dt {
    display: flex;
    align-items: center;
    gap: var(--space-md);
    font-family: var(--font-heading);
    font-size: var(--fz-3xl);
    font-weight: 700;
    line-height: 1.5;
    color: var(--color-accent);
}
.p-about__history > dl > dt::after {
    content: "";
    flex: 1;
    border-top: 1px solid var(--color-border-dark);
}
.p-about__history > dl > dd {
    margin: 0;
    display: flex;
    gap: var(--space-2xl);
}
.p-about__history > dl > dd > h3 {
    flex-shrink: 0;
    width: 320px;
    margin: 0;
    font-family: var(--font-heading);
    font-size: var(--fz-xl);
    font-weight: 700;
    line-height: 1.5;
}
.p-about__history > dl > dd > p {
    flex: 1;
    margin: 0;
    font-family: var(--font-base);
    font-size: var(--fz-base);
    line-height: 1.8;
}
.p-about__history > dl > dt + dd {
    margin-top: var(--space-2xl);
}
.p-about__history > dl > dd + dd {
    margin-top: var(--space-xl);
}
.p-about__history > dl > dd + dt {
    margin-top: var(--space-2xl);
}

/* ===================================================
   Responsive
   =================================================== */
@media screen and (max-width: 1279px) {
    .p-about__intro::before {
        height: 100%;
    }
}

/* ----- Tablet: 601–1024px ----- */
@media screen and (max-width: 1024px) {
    .p-about__intro {
        margin-top: var(--space-4xl);
    }
    .p-about__intro > h2 {
        margin-bottom: var(--space-xl);
    }
    .p-about__intro > .p-image {
        margin-top: var(--space-xl);
    }

    .p-about__hub {
        padding: var(--space-4xl) var(--space-md);
        gap: var(--space-2xl);
    }
    .p-about__hub > .p-image {
        width: 320px;
    }

    .p-about__history {
        padding: var(--space-4xl) var(--space-md);
    }
    .p-about__history > h2 {
        margin-bottom: var(--space-2xl);
    }
    .p-about__history > dl > dd > h3 {
        width: 200px;
    }
    .p-about__history > dl > dd {
        gap: var(--space-xl);
    }

}

/* ----- SP: ≤600px ----- */
@media screen and (max-width: 600px) {
    .p-about__intro {
        margin-top: var(--space-2xl);
    }
    .p-about__intro::before {
        height: 80%;
    }
    .p-about__intro > h2 {
        margin-bottom: var(--space-lg);
        font-size: var(--fz-2xl);
    }
    .p-about__intro > p {
        text-align: left;
    }
    .p-about__intro > .p-image {
        margin-top: var(--space-lg);
    }

    .p-about__hub {
        flex-direction: column;
        gap: var(--space-lg);
        padding: var(--space-3xl) var(--space-md);
    }
    .p-about__hub > div:first-child > h2 {
        font-size: var(--fz-2xl);
    }
    .p-about__hub > .p-image {
        width: min(280px, 80%);
        margin: 0 auto;
    }

    .p-about__history {
        padding: var(--space-3xl) var(--space-md);
    }
    .p-about__history > h2 {
        margin-bottom: var(--space-xl);
        font-size: var(--fz-2xl);
    }
    .p-about__history > dl > dt {
        font-size: var(--fz-2xl);
    }
    .p-about__history > dl > dd {
        flex-direction: column;
        gap: var(--space-xs);
    }
    .p-about__history > dl > dd > h3 {
        width: auto;
        font-size: var(--fz-lg);
    }
    .p-about__history > dl > dt + dd {
        margin-top: var(--space-lg);
    }
    .p-about__history > dl > dd + dd {
        margin-top: var(--space-lg);
    }
    .p-about__history > dl > dd + dt {
        margin-top: var(--space-xl);
    }

}


/* ============================================================
   [SOURCE] page-company.css
   ============================================================ */
/* ===================================================
   page-company.css — 会社情報
   =================================================== */

/* ----- Section 1: 6カードインデックスグリッド ----- */
.p-company__index {
    max-width: var(--content-narrow);
    margin: 0 auto;
    padding: var(--space-5xl) 0;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    column-gap: var(--space-2xl);
    row-gap: var(--space-5xl);
    color: var(--color-primary);
}
.p-company__index > a {
    color: inherit;
    text-decoration: none;
}
.p-company__index > a > .p-image {
    aspect-ratio: 3 / 2;
    overflow: hidden;
}
.p-company__index > a > .p-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.p-company__index > a > p {
    margin: var(--space-xs) 0 0;
    display: flex;
    align-items: center;
    gap: var(--space-xs);
    font-family: var(--font-base);
    font-size: var(--fz-base);
    font-weight: 700;
    line-height: 1.8;
}
.p-company__index > a > p::before {
    content: "";
    flex-shrink: 0;
    width: 24px;
    height: 24px;
    background: url('../images/icons/icon_arrow_right.svg') no-repeat center / contain;
}

/* ===================================================
   Responsive
   =================================================== */

/* ----- Tablet: 601–1024px ----- */
@media screen and (max-width: 1024px) {
    .p-company__index {
        padding: var(--space-4xl) var(--space-md);
        column-gap: var(--space-lg);
        row-gap: var(--space-4xl);
    }
}

/* ----- SP: ≤600px ----- */
@media screen and (max-width: 600px) {
    .p-company__index {
        padding: var(--space-3xl) var(--space-md);
        grid-template-columns: 1fr;
        row-gap: var(--space-xl);
    }
}

/* ===================================================
   /company/profile/ — 会社概要テーブル
   =================================================== */
body.page-slug-profile .l-page-content {
    padding-top: var(--space-5xl);
    padding-bottom: var(--space-5xl);
}
body.page-slug-profile table:not(.year-schedule) {
    width: 100%;
    border-collapse: collapse;
    border-top: 1px solid var(--color-border-dark);
    border-bottom: 1px solid var(--color-border-dark);
    font-size: var(--fz-base);
    line-height: 1.8;
}
body.page-slug-profile table:not(.year-schedule) th,
body.page-slug-profile table:not(.year-schedule) td {
    padding: var(--space-md) var(--space-lg);
    border-bottom: 1px solid var(--color-border-dark);
    vertical-align: top;
    text-align: left;
}
body.page-slug-profile table:not(.year-schedule) th {
    width: 220px;
    background: var(--color-bg-nav);
    font-weight: 700;
    color: var(--color-text-dark);
}
body.page-slug-profile table:not(.year-schedule) td {
    background: var(--color-white);
    color: var(--color-text);
}
body.page-slug-profile table:not(.year-schedule) td > ul {
    margin: var(--space-sm) 0 0;
    padding-left: 1.4em;
}
body.page-slug-profile table:not(.year-schedule) td > ul > li {
    list-style: disc;
    margin: 0;
    padding: 0;
}

/* ----- レガシークラス互換（bg_gray2 / bg_white / left / white / regular） ----- */
body.page-slug-profile table:not(.year-schedule) th.bg_gray2 { background: var(--color-bg-nav); }
body.page-slug-profile table:not(.year-schedule) td.bg_white { background: var(--color-white); }
body.page-slug-profile table:not(.year-schedule) .left { text-align: left; }
body.page-slug-profile table:not(.year-schedule) .regular { font-weight: 700; }

/* ----- タブレット ----- */
@media screen and (max-width: 1024px) {
    body.page-slug-profile .l-page-content {
        padding: var(--space-3xl) var(--space-md);
    }
    body.page-slug-profile table:not(.year-schedule) th {
        width: 180px;
    }
}

/* ----- SP ----- */
@media screen and (max-width: 600px) {
    body.page-slug-profile .l-page-content {
        padding: var(--space-2xl) var(--space-md);
    }
    body.page-slug-profile table:not(.year-schedule),
    body.page-slug-profile table:not(.year-schedule) tbody,
    body.page-slug-profile table:not(.year-schedule) tr,
    body.page-slug-profile table:not(.year-schedule) th,
    body.page-slug-profile table:not(.year-schedule) td {
        display: block;
        width: 100%;
    }
    body.page-slug-profile table:not(.year-schedule) tr {
        border-bottom: 1px solid var(--color-border-dark);
    }
    body.page-slug-profile table:not(.year-schedule) th,
    body.page-slug-profile table:not(.year-schedule) td {
        padding: var(--space-sm) var(--space-md);
        border-bottom: none;
    }
    body.page-slug-profile table:not(.year-schedule) th {
        padding-bottom: 0;
    }
}

/* ===================================================
   /company/access/ — アクセス（Googleマップ + 住所）
   =================================================== */
body.page-slug-access .l-page-content {
    padding-top: var(--space-5xl);
    padding-bottom: var(--space-5xl);
}
body.page-slug-access .googlemap {
    margin: 0 auto;
}
body.page-slug-access .googlemap > iframe {
    display: block;
    width: 100%;
    height: 470px;
    border: 0;
    border-radius: var(--radius-md);
    margin-bottom: var(--space-2xl);
}
body.page-slug-access .googlemap > p {
    margin: 0 0 var(--space-md);
    font-size: var(--fz-base);
    font-weight: 700;
    line-height: 1.8;
    color: var(--color-text-dark);
}
body.page-slug-access .googlemap > ul {
    margin: 0;
    padding-left: 1.4em;
}
body.page-slug-access .googlemap > ul > li {
    list-style: disc;
    font-size: var(--fz-base);
    line-height: 1.8;
    color: var(--color-text);
}
body.page-slug-access .spbr {
    display: none;
}

/* ----- タブレット ----- */
@media screen and (max-width: 1024px) {
    body.page-slug-access .l-page-content {
        padding: var(--space-3xl) var(--space-md);
    }
    body.page-slug-access .googlemap > iframe {
        height: 400px;
    }
}

/* ----- SP ----- */
@media screen and (max-width: 600px) {
    body.page-slug-access .l-page-content {
        padding: var(--space-2xl) var(--space-md);
    }
    body.page-slug-access .googlemap > iframe {
        height: 300px;
    }
    body.page-slug-access .spbr {
        display: inline;
    }
}


/* ============================================================
   [SOURCE] page-profile.css
   ============================================================ */
/* ===================================================
   page-profile.css — 会社概要 / PMG健康経営プロジェクト
   =================================================== */

/* ===== p-profile__health（健康経営プロジェクト全体） ===== */
.p-profile__health {
    max-width: var(--content-narrow);
    margin: 0 auto;
    padding: var(--space-5xl) 0;
    color: var(--color-text);
    scroll-margin-top: var(--header-height);
}
.p-profile__health > h2 {
    font-family: var(--font-base);
    font-size: var(--fz-2xl);
    font-weight: 500;
    line-height: 1.5;
    color: var(--color-text-dark);
    text-align: center;
    margin: 0 0 var(--space-2xl);
}

/* イントロ */
.p-profile__health-intro {
    margin-bottom: var(--space-3xl);
}
.p-profile__health-intro > p {
    font-size: var(--fz-base);
    line-height: 1.9;
    margin: 0 0 var(--space-md);
}
.p-profile__health-intro > p.p-profile__health-date {
    text-align: right;
    margin-top: var(--space-md);
    margin-bottom: 0;
}

/* 5方針リスト */
.p-profile__health-list {
    display: flex;
    flex-direction: column;
    gap: var(--space-xl);
    margin-bottom: var(--space-3xl);
}
.p-profile__health-item {
    background-color: var(--color-bg-card);
    border-radius: var(--radius-card);
    padding: var(--space-xl);
}
.p-profile__health-item > h3 {
    font-family: var(--font-base);
    font-size: var(--fz-xl);
    font-weight: 600;
    line-height: 1.6;
    color: var(--color-text-dark);
    margin: 0 0 var(--space-md);
}
.p-profile__health-item > h3 > span {
    display: inline-flex;
    align-items: center;
    gap: var(--space-xs);
    color: #256CBF;
    font-weight: 700;
    margin-right: var(--space-sm);
}
.p-profile__health-item > h3 > span > span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border: 2px solid #256CBF;
    border-radius: 50%;
    font-size: var(--fz-base);
    font-weight: 700;
}
.p-profile__health-item > p {
    font-size: var(--fz-base);
    line-height: 1.9;
    margin: 0;
}

/* 「健康経営」とは（図解） */
.p-profile__health-diagram {
    margin: 0 auto var(--space-3xl);
    text-align: center;
}
.p-profile__health-diagram > h3 {
    font-family: var(--font-base);
    font-size: var(--fz-xl);
    font-weight: 600;
    line-height: 1.6;
    color: var(--color-text-dark);
    margin: 0 0 var(--space-xl);
    text-align: center;
}
.p-profile__health-diagram > .p-image {
    max-width: 1080px;
    margin: 0 auto;
}
.p-profile__health-diagram > .p-image img {
    display: block;
    width: 100%;
    height: auto;
}

/* 年間計画スケジュール表 */
.p-profile__health-schedule > h3 {
    font-family: var(--font-base);
    font-size: var(--fz-xl);
    font-weight: 600;
    line-height: 1.6;
    color: var(--color-text-dark);
    margin: 0 0 var(--space-xl);
    text-align: center;
}
/* ----- 年間計画スケジュール表（pmg-partners.jp 本番から完全複製） ----- */
table.year-schedule {
    width: 100%;
    color: #040000;
    text-align: center;
    font-size: 10px;
    table-layout: auto;
}
table.year-schedule th,
table.year-schedule td {
    border: 1px solid #fff;
    padding: 6px;
    vertical-align: middle;
}
table.year-schedule thead th {
    background: #33629B;
    color: #fff;
    font-weight: bold;
    font-size: 12px;
}
table.year-schedule thead th:first-child {
    background: #f4f4f4;
}
table.year-schedule tbody th {
    font-size: 11px;
    white-space: nowrap;
    width: 10%;
    text-align: left;
}
table.year-schedule tbody th span {
    display: none;
}
table.year-schedule tbody td {
    font-size: 11px;
    width: calc(90% / 12);
    font-weight: bold;
    padding: 4px 2px;
    line-height: 1.6;
}
.red-1st { background: #eff6ff; }
.red-2nd { background: #dfedff; }
.red-3rd { background: #bddbff; }
.red-4th { background: #99c7ff; }
.red-emp { background: #f4f4f4; }

@media screen and (max-width: 640px) {
    table.year-schedule,
    table.year-schedule thead,
    table.year-schedule tbody,
    table.year-schedule th,
    table.year-schedule td,
    table.year-schedule tr {
        display: block;
    }
    table.year-schedule thead {
        display: none;
    }
    table.year-schedule tbody tr {
        margin-bottom: 10px;
        overflow: hidden;
    }
    table.year-schedule tbody th {
        width: 96%;
        padding: 4px 2%;
        font-size: 14px;
        text-align: center;
        border-bottom: 1px solid #fff;
        box-sizing: content-box;
    }
    table.year-schedule tbody th br {
        display: none;
    }
    table.year-schedule tbody td {
        display: flex;
        justify-content: space-between;
        align-items: center;
        width: 96%;
        padding: 4px 2%;
        font-size: 12px;
        border-bottom: 1px solid #fff;
        box-sizing: content-box;
    }
    table.year-schedule tbody td br {
        display: none;
    }
    table.year-schedule tbody th span {
        display: inline;
    }
    table.year-schedule tbody td.red-emp {
        display: none;
    }
    table.year-schedule tbody td::before {
        content: attr(data-label);
        font-weight: normal;
    }
}

/* ----- レスポンシブ ----- */
@media screen and (max-width: 1024px) {
    .p-profile__health { padding: var(--space-4xl) var(--space-md); }
    .p-profile__health > h2 { font-size: var(--fz-xl); }
    .p-profile__health-item { padding: var(--space-lg); }
    .p-profile__health-item > h3 { font-size: var(--fz-lg); }
    .p-profile__health-diagram > h3,
    .p-profile__health-schedule > h3 { font-size: var(--fz-lg); }
}
@media screen and (max-width: 600px) {
    .p-profile__health { padding: var(--space-3xl) var(--space-md); }
    .p-profile__health > h2 { font-size: var(--fz-lg); }
    .p-profile__health-list { gap: var(--space-lg); }
    .p-profile__health-item { padding: var(--space-md); }
    .p-profile__health-item > h3 { font-size: var(--fz-base); }
    .p-profile__health-item > p,
    .p-profile__health-intro > p { font-size: var(--fz-sm); }
}


/* ============================================================
   [SOURCE] page-support.css
   ============================================================ */
/* ===================================================
   page-support.css — 支援事業
   =================================================== */

.p-support {
    padding: var(--space-5xl) 0;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-lg);
}

/* ----- カード ----- */
.p-support__card {
    display: flex;
    align-items: center;
    gap: var(--space-xl);
    padding-right: var(--space-xs);
    height: 240px;
    background: linear-gradient(82.09deg, #006CBF 0%, #00AFEC 94.71%);
    color: var(--color-white);
    text-decoration: none;
}
.p-support__card > .p-image {
    flex-shrink: 0;
    width: 240px;
    height: 240px;
}
.p-support__card > .p-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.p-support__card > .p-image + div {
    flex: 1;
    min-width: 0;
}
.p-support__card > .p-image + div p {
    margin: 0;
    font-family: var(--font-base);
    font-size: var(--fz-sm);
    font-weight: 700;
    line-height: 1.8;
}
.p-support__card > .p-image + div h2 {
    margin: 0;
    font-family: var(--font-heading);
    font-size: var(--fz-xl);
    font-weight: 700;
    line-height: 1.8;
}
.p-support__card > img:last-child {
    flex-shrink: 0;
    width: 24px;
    height: 24px;
}

/* ===================================================
   Responsive
   =================================================== */

/* ----- Tablet: 601–1024px ----- */
@media screen and (max-width: 1024px) {
    .p-support {
        padding: var(--space-4xl) 0;
        grid-template-columns: 1fr;
        gap: var(--space-md);
    }
}

/* ----- SP: ≤600px ----- */
@media screen and (max-width: 600px) {
    .p-support {
        padding: var(--space-3xl) 0;
        gap: var(--space-sm);
    }
    .p-support__card {
        gap: var(--space-md);
        height: 160px;
    }
    .p-support__card > .p-image {
        width: 160px;
        height: 160px;
    }
    .p-support__card > .p-image + div h2 {
        font-size: var(--fz-lg);
    }
}


/* ============================================================
   [SOURCE] page-message.css
   ============================================================ */
/* ===================================================
   page-message.css — 私たちの想いと理念
   =================================================== */

/* ----- Section 1: 代表メッセージ ----- */
.p-message__ceo {
    position: relative;
    max-width: var(--content-narrow);
    margin: var(--space-5xl) auto 0;
    color: var(--color-text);
    scroll-margin-top: calc(var(--header-height) + 40px);
}
.p-message__ceo::before {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 100vw;
    height: 130%;
    background: url(../images/img/company/message_08.webp) center / cover no-repeat;
    pointer-events: none;
    z-index: -1;
}

/* 見出し */
.p-message__ceo > h2 {
    position: relative;
    margin: 0 0 var(--space-2xl);
    font-family: var(--font-heading);
    font-size: var(--fz-3xl);
    font-weight: 700;
    line-height: 1.5;
    color: var(--color-accent);
    text-align: center;
}
.p-message__ceo > h2::before {
    content: "";
    display: block;
    width: 23px;
    height: 18px;
    margin: 0 auto var(--space-sm);
    background: url('../images/icons/icon-ttl.svg') no-repeat center / contain;
}

/* 写真 + キャッチ + サイン */
.p-message__ceo > h2 + div {
    display: flex;
    align-items: center;
    gap: 71px;
    margin-bottom: var(--space-5xl);
}
.p-message__ceo > h2 + div > .p-image {
    flex-shrink: 0;
    width: 440px;
}
.p-message__ceo > h2 + div > .p-image img {
    display: block;
    width: 100%;
    height: auto;
}
.p-message__ceo > h2 + div > div {
    min-width: 0;
}
.p-message__ceo > h2 + div > div > p {
    margin: 0 0 var(--space-3xl);
    font-family: var(--font-heading);
    font-size: 3rem;
    font-weight: 400;
    line-height: 1.5;
}
.p-message__ceo > h2 + div > div > div {
    display: flex;
    align-items: center;
    gap: var(--space-md);
}
.p-message__ceo > h2 + div > div > div > p {
    margin: 0;
    font-family: var(--font-base);
    font-size: var(--fz-base);
    line-height: 1.8;
}
.p-message__ceo > h2 + div > div > div > .p-image {
    flex-shrink: 0;
    width: 150px;
}
.p-message__ceo > h2 + div > div > div > .p-image img {
    display: block;
    width: 100%;
    height: auto;
}

/* 本文 */
.p-message__ceo > div:last-child {
    max-width: 717px;
    margin: 0 auto;
    text-align: center;
}
.p-message__ceo > div:last-child > p {
    margin: 0;
    font-family: var(--font-base);
    font-size: var(--fz-base);
    line-height: 1.8;
}
.p-message__ceo > div:last-child > p + p {
    margin-top: 1.8em;
}

/* ----- Section 2: Interview Movies ----- */
.p-message__movies {
    position: relative;
    max-width: var(--content-narrow);
    margin: var(--space-5xl) auto 0;
    padding: var(--space-5xl) 0;
    color: var(--color-text);
}
.p-message__movies::before {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 100vw;
    height: calc(100vw * 448 / 1440);
    background: url('../images/bg/arc-bg.svg') top center / 100% 100% no-repeat;
    pointer-events: none;
    z-index: -1;
}
.p-message__movies > h2 {
    margin: 0 0 var(--space-2xl);
    font-family: var(--font-heading);
    font-size: var(--fz-3xl);
    font-weight: 400;
    line-height: 1.5;
    color: var(--color-accent);
    text-align: center;
}
.p-message__movies > div {
    display: flex;
    gap: var(--space-2xl);
    align-items: flex-start;
}
.p-message__movies > div > a,
.p-message__movies > div > button {
    flex: 1;
    min-width: 0;
    text-decoration: none;
    color: inherit;
    /* button reset */
    appearance: none;
    background: transparent;
    border: none;
    padding: 0;
    margin: 0;
    font: inherit;
    text-align: inherit;
    cursor: pointer;
    display: block;
}
.p-message__movies > div > a > .p-image,
.p-message__movies > div > button > .p-image {
    position: relative;
    width: 100%;
    aspect-ratio: 333 / 189;
    overflow: hidden;
}
.p-message__movies > div > a > .p-image img,
.p-message__movies > div > button > .p-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.p-message__movies > div > a > .p-image::after,
.p-message__movies > div > button > .p-image::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 44px;
    height: 44px;
    background: url('../images/icons/icon_play_circle.svg') no-repeat center / contain;
    pointer-events: none;
}
.p-message__movies > div > a:last-child > .p-image::after {
    display: none;
}
.p-message__movies > div > a > p,
.p-message__movies > div > button > p {
    margin: var(--space-sm) 0 0;
    font-family: var(--font-base);
    font-size: var(--fz-base);
    line-height: 1.8;
}

/* ----- Section 3: 経営理念 ----- */
.p-message__philosophy {
    position: relative;
    max-width: var(--content-narrow);
    margin: 0 auto;
    padding: var(--space-5xl) 0;
    color: var(--color-text);
    text-align: center;
    scroll-margin-top: calc(var(--header-height) + 40px);
}
.p-message__philosophy::before {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 100vw;
    height: calc(100vw * 448 / 1440);
    background: url('../images/bg/arc-bg.svg') top center / 100% 100% no-repeat;
    pointer-events: none;
    z-index: -1;
}

/* 経営理念 見出し（二重ダイヤ deco） */
.p-message__philosophy > h2 {
    position: relative;
    margin: 0 0 var(--space-md);
    font-family: var(--font-heading);
    font-size: var(--fz-3xl);
    font-weight: 700;
    line-height: 1.5;
    color: var(--color-accent);
}
.p-message__philosophy > h2::before {
    content: "";
    display: block;
    width: 23px;
    height: 18px;
    margin: 0 auto var(--space-sm);
    background: url('../images/icons/icon-ttl.svg') no-repeat center / contain;
}

/* 可能性に真剣であれ */
.p-message__philosophy > h2 + p {
    margin: 0 0 var(--space-md);
    font-family: var(--font-heading);
    font-size: var(--fz-6xl);
    font-weight: 700;
    line-height: 1.2;
}

/* 本文（視覚改行は<br>、単一p） */
.p-message__philosophy > h2 + p + p {
    margin: 0 0 var(--space-5xl);
    font-family: var(--font-base);
    font-size: var(--fz-base);
    line-height: 1.8;
}

/* VISION / MISSION */
.p-message__philosophy > div:first-of-type {
    margin: 0 0 var(--space-5xl);
}
.p-message__philosophy > div:first-of-type > p {
    margin: 0;
    font-family: var(--font-heading);
    font-size: var(--fz-5xl);
    font-weight: 700;
    line-height: 1.4;
}
.p-message__philosophy > div:first-of-type > p + p {
    margin-top: var(--space-5xl);
}
.p-message__philosophy > div:first-of-type > p > span {
    display: block;
    margin-bottom: var(--space-md);
    font-size: var(--fz-2xl);
    color: var(--color-accent);
}

/* 4カード（ACTION/SLOGAN/CORE VALUE/TAGLINE） */
.p-message__philosophy > div:last-of-type {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2xl);
}
.p-message__philosophy > div:last-of-type > div {
    flex: 0 0 calc(50% - var(--space-2xl) / 2);
    min-width: 0;
    box-sizing: border-box;
    background-color: var(--color-bg-card);
    padding: var(--space-2xl);
}
.p-message__philosophy > div:last-of-type > div > p:first-child {
    margin: 0 0 var(--space-lg);
    font-family: var(--font-heading);
    font-size: var(--fz-xl);
    font-weight: 700;
    line-height: 1.5;
    color: var(--color-accent);
}
.p-message__philosophy > div:last-of-type > div > p:last-child {
    margin: 0;
    font-family: var(--font-heading);
    font-size: var(--fz-2xl);
    font-weight: 700;
    line-height: 1.5;
}


/* ===================================================
   Responsive
   =================================================== */

/* ----- Tablet: 601–1024px ----- */
@media screen and (max-width: 1024px) {
    .p-message__ceo {
        margin-top: var(--space-4xl);
    }
    .p-message__ceo::before {
        height: 110%;
    }
    .p-message__ceo > h2 {
        margin-bottom: var(--space-xl);
    }
    .p-message__ceo > h2 + div {
        gap: var(--space-2xl);
        margin-bottom: var(--space-4xl);
    }
    .p-message__ceo > h2 + div > .p-image {
        width: 340px;
    }
    .p-message__ceo > h2 + div > div > p {
        font-size: var(--fz-3xl);
        margin-bottom: var(--space-2xl);
    }

    .p-message__movies {
        margin-top: var(--space-4xl);
        padding: var(--space-4xl) var(--space-md);
    }
    .p-message__movies > div {
        gap: var(--space-lg);
    }

    .p-message__philosophy {
        padding: var(--space-4xl) var(--space-md);
    }
    .p-message__philosophy > h2 + p {
        font-size: var(--fz-5xl);
    }
    .p-message__philosophy > div:first-of-type > p {
        font-size: var(--fz-4xl);
    }
    .p-message__philosophy > div:last-of-type > div {
        padding: var(--space-xl);
    }

}

/* ----- SP: ≤600px ----- */
@media screen and (max-width: 600px) {
    .p-message__ceo {
        margin-top: var(--space-2xl);
    }
    .p-message__ceo > h2 {
        margin-bottom: var(--space-lg);
        font-size: var(--fz-2xl);
    }
    .p-message__ceo > h2 + div {
        flex-direction: column;
        gap: var(--space-lg);
        margin-bottom: var(--space-3xl);
    }
    .p-message__ceo > h2 + div > .p-image {
        width: 100%;
    }
    .p-message__ceo > h2 + div > div > p {
        font-size: 20px;
        margin-bottom: var(--space-lg);
        text-align: center;
    }
    .p-message__ceo > h2 + div > div > div {
        justify-content: center;
    }
    .p-message__ceo > div:last-child {
        text-align: left;
    }
    .p-message__ceo > div:last-child > p + p {
        margin-top: 1.5em;
    }
    .p-message__ceo > div:last-child > p br {
        display: none;
    }

    .p-message__movies {
        margin-top: var(--space-3xl);
        padding: var(--space-3xl) var(--space-md);
    }
    .p-message__movies > h2 {
        font-size: var(--fz-2xl);
        margin-bottom: var(--space-xl);
    }
    .p-message__movies > div {
        flex-direction: column;
        gap: var(--space-xl);
    }

    .p-message__philosophy {
        padding: var(--space-3xl) 0;
    }
    .p-message__philosophy > h2 {
        font-size: var(--fz-2xl);
    }
    .p-message__philosophy > h2 + p {
        font-size: var(--fz-4xl);
    }
    .p-message__philosophy > h2 + p + p {
        margin-bottom: var(--space-3xl);
    }
    .p-message__philosophy > div:first-of-type {
        margin-bottom: var(--space-3xl);
    }
    .p-message__philosophy > div:first-of-type > p + p {
        margin-top: var(--space-3xl);
    }
    .p-message__philosophy > div:first-of-type > p {
        font-size: var(--fz-2xl);
    }
    .p-message__philosophy > div:first-of-type > p > span {
        font-size: var(--fz-xl);
    }
    .p-message__philosophy > div:last-of-type {
        gap: var(--space-lg);
    }
    .p-message__philosophy > div:last-of-type > div {
        flex: 0 0 100%;
        padding: var(--space-xl);
    }
    .p-message__philosophy > div:last-of-type > div > p:last-child {
        font-size: var(--fz-xl);
    }

}


/* ============================================================
   [SOURCE] page-group.css
   ============================================================ */
/* ===================================================
   page-group.css — グループ会社紹介
   =================================================== */

/* ----- リード文 ----- */
.p-group__intro {
    max-width: var(--content-narrow);
    margin: var(--space-5xl) auto var(--space-2xl);
    padding: 0;
    color: var(--color-text-dark);
}
.p-group__intro > p {
    margin: 0;
    font-family: var(--font-base);
    font-size: var(--fz-sm);
    font-weight: 500;
    line-height: 2;
}

/* ----- グループ会社一覧 外側ラッパー（#f2fbfe 背景カード） ----- */
.p-group__list {
    max-width: var(--content-narrow);
    margin: 0 auto;
    padding: var(--space-2xl);
    background-color: var(--color-bg-nav);
    border-radius: var(--radius-card);
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2xl);
    box-sizing: border-box;
}

/* ----- 各グループ会社セクション（白カード） ----- */
.p-group__company {
    flex: 0 0 calc(50% - var(--space-2xl) / 2);
    min-width: 0;
    box-sizing: border-box;
    background-color: var(--color-white);
    padding: var(--space-2xl);
    display: flex;
    flex-direction: column;
    color: var(--color-text-dark);
}

/* ロゴ（中央・下40px） */
.p-group__company > .p-image {
    margin: 0 auto var(--space-2xl);
}
.p-group__company > .p-image img {
    display: block;
    height: auto;
}

/* 社名 + サブタイトル（左寄せ・下16px） */
.p-group__company > h2 {
    margin: 0 0 var(--space-md);
    width: 100%;
    font-family: var(--font-base);
    font-size: var(--fz-2xl);
    font-weight: 700;
    line-height: 1.4;
}
.p-group__company > h2 > span {
    display: block;
    margin-top: var(--space-xs);
    font-size: var(--fz-base);
}

/* 説明文（下24px） */
.p-group__company > p:nth-of-type(1) {
    margin: 0 0 var(--space-lg);
    width: 100%;
    font-family: var(--font-base);
    font-size: var(--fz-sm);
    font-weight: 500;
    line-height: 2;
}

/* 区切り線（下24px） */
.p-group__company > hr {
    width: 100%;
    height: 1px;
    border: 0;
    background-color: var(--color-border-dark);
    margin: 0 0 var(--space-lg);
}

/* 主な事業 + サービス */
.p-group__company > p:nth-of-type(2) {
    margin: 0 0 var(--space-2xl);
    width: 100%;
    font-family: var(--font-base);
    font-size: var(--fz-sm);
    font-weight: 700;
    line-height: 2;
}
.p-group__company > p:nth-of-type(2) > span {
    display: block;
    margin-top: var(--space-sm);
    font-weight: 500;
}

/* コーポレートサイトボタン */
.p-group__company > .c-btn {
    margin: auto;
}


/* ===================================================
   Responsive
   =================================================== */

/* ----- Tablet: 601–1024px ----- */
@media screen and (max-width: 1024px) {
    .p-group__intro {
        margin-top: var(--space-4xl);
    }
    .p-group__list {
        padding: var(--space-xl);
        gap: var(--space-lg);
    }
    .p-group__company {
        flex: 0 0 calc(50% - var(--space-lg) / 2);
        padding: var(--space-xl);
    }

}

/* ----- SP: ≤600px ----- */
@media screen and (max-width: 600px) {
    .p-group__intro {
        margin-top: var(--space-2xl);
    }
    .p-group__list {
        padding: var(--space-md);
        gap: var(--space-md);
    }
    .p-group__company {
        flex: 0 0 100%;
        padding: var(--space-lg);
    }
    .p-group__company > h2 {
        font-size: var(--fz-xl);
    }

}


/* ============================================================
   [SOURCE] page-service.css
   ============================================================ */
/* ===================================================
   page-service.css — 支援事業
   =================================================== */

/* ----- 支援事業カード一覧ラッパー（見出しなしのため div） ----- */
.p-service__list {
    max-width: var(--content-narrow);
    margin: var(--space-5xl) auto;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2xl);
}

/* ----- 各サービスカード（h2を持つので section） ----- */
.p-service__item {
    flex: 0 0 calc(50% - var(--space-2xl) / 2);
    min-width: 0;
    box-sizing: border-box;
}

/* ----- クリック可能領域（section内のa） ----- */
.p-service__item > a {
    position: relative;
    display: flex;
    align-items: center;
    gap: 24px;
    padding-right: 24px;
    background-image: linear-gradient(82deg, var(--color-primary) 0%, var(--color-accent) 94.7%);
    color: var(--color-white);
    text-decoration: none;
    transition: opacity var(--transition-base);
}
.p-service__item > a:hover {
    opacity: 0.9;
}

/* 左のイメージ（240×240固定） */
.p-service__item > a > .p-image {
    width: 180px;
    height: 240px;
    overflow: hidden;
}
.p-service__item > a > .p-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* 中央のテキストブロック（ラベル + h2） */
.p-service__item > a > div {
    flex: 1;
    min-width: 0;
}
.p-service__item > a > div > p {
    margin: 0;
    font-family: var(--font-base);
    font-size: var(--fz-sm);
    font-weight: 700;
    line-height: 1.8;
}
.p-service__item > a > div > h2 {
    margin: 0;
    font-family: var(--font-base);
    font-size: var(--fz-xl);
    font-weight: 700;
    line-height: 1.8;
}

/* 右の矢印アイコン（擬似要素、absolute で浮かせてレイアウトに影響させない） */
.p-service__item > a::after {
    content: "";
    position: absolute;
    top: 50%;
    right: var(--space-sm);
    transform: translateY(-50%);
    width: 24px;
    height: 24px;
    background: url('../images/icons/icon_arrow_right.svg') no-repeat center / contain;
    filter: brightness(0) invert(1);
    pointer-events: none;
}

/* ===================================================
   Responsive
   =================================================== */

/* ----- Tablet: 601–1024px ----- */
@media screen and (max-width: 1024px) {
    .p-service__list {
        margin-top: var(--space-4xl);
        margin-bottom: var(--space-4xl);
        gap: var(--space-lg);
    }
    .p-service__item {
        flex: 0 0 calc(50% - var(--space-lg) / 2);
    }
    .p-service__item > a {
        padding-right: 16px;
        gap: 16px;
    }
    .p-service__item > a > .p-image {
        width: 180px;
        height: 180px;
    }
    .p-service__item > a::after {
        right: -3px;
    }
}

/* ----- SP: ≤600px ----- */
@media screen and (max-width: 600px) {
    .p-service__list {
        margin-top: var(--space-2xl);
        margin-bottom: var(--space-3xl);
        gap: var(--space-md);
    }
    .p-service__item {
        flex: 0 0 100%;
    }
    .p-service__item > a {
        gap: var(--space-md);
    }
    .p-service__item > a > .p-image {
        height: 180px;
    }
    .p-service__item > a > div > h2 {
        font-size: var(--fz-lg);
    }
    
}


/* ============================================================
   [SOURCE] page-consultant.css
   ============================================================ */
/* ===================================================
   page-consultant.css — 中小企業にコンサルティングが必要な理由
   =================================================== */

/* ----- Section 1: 数字で紐解く中小企業経営（アーク無し） ----- */
.p-consultant__numbers {
    max-width: var(--content-narrow);
    margin: var(--space-5xl) auto 0;
    padding: 0;
    color: var(--color-text);
}

/* 見出し（バッジ + メイン見出し） */
.p-consultant__numbers > h2 {
    margin: 0 0 var(--space-2xl);
    font-family: var(--font-heading);
    font-size: var(--fz-3xl);
    font-weight: 700;
    line-height: 1.5;
    color: var(--color-primary-dark);
    text-align: center;
}
.p-consultant__numbers > h2 > span {
    display: block;
    width: fit-content;
    margin: 0 auto var(--space-md);
    padding: var(--space-xs) var(--space-sm);
    background-color: var(--color-bg-nav);
    font-family: var(--font-base);
    font-size: var(--fz-base);
    font-weight: 700;
    line-height: 1.8;
}

/* リード文 */
.p-consultant__numbers > p {
    margin: 0;
    font-family: var(--font-base);
    font-size: var(--fz-base);
    line-height: 1.8;
}
.p-consultant__numbers > p + p {
    margin-top: 1.8em;
}
.p-consultant__numbers > p:last-of-type {
    margin-bottom: var(--space-4xl);
}

/* グラフカードグリッド（2×2） */
.p-consultant__numbers > div {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2xl);
}

/* ----- グラフカード（上部グラデ帯 + 下部枠付き本文） ----- */
.p-consultant__card {
    flex: 0 0 calc(50% - var(--space-2xl) / 2);
    min-width: 0;
    box-sizing: border-box;
    overflow: hidden;
    background-color: var(--color-white);
    display: flex;
    flex-direction: column;
}

/* カードヘッダー（グラデ帯） */
.p-consultant__card > h3 {
    margin: 0;
    min-height: 112px;
    padding: var(--space-lg);
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(73deg, var(--color-primary) 0%, var(--color-accent) 94.7%);
    font-family: var(--font-base);
    font-size: var(--fz-lg);
    font-weight: 700;
    line-height: 1.8;
    color: var(--color-white);
    text-align: center;
}

/* カード本文（枠付きボックス） */
.p-consultant__card > div {
    flex: 1 1 auto;
    padding: var(--space-lg);
    border: 1px solid var(--color-border-light);
    border-top: 0;
    box-sizing: border-box;
    text-align: center;
}
.p-consultant__card > div > p:first-of-type {
    margin: 0 0 var(--space-md);
    font-family: var(--font-base);
    font-size: var(--fz-sm);
    line-height: 1.8;
    color: var(--color-primary-dark);
}
.p-consultant__card > div > .p-image {
    margin: 0 auto var(--space-sm);
    max-width: 472px;
}
.p-consultant__card > div > .p-image img {
    display: block;
    width: 100%;
    height: auto;
}
.p-consultant__card > div > p:last-of-type {
    margin: 0;
    font-family: var(--font-base);
    font-size: var(--fz-xxs);
    line-height: 1.8;
    color: var(--color-text);
}

/* ----- Section 2: 本物のコンサルティング ----- */
.p-consultant__truth {
    position: relative;
    max-width: var(--content-narrow);
    margin: var(--space-5xl) auto 0;
    padding: var(--space-5xl) 0 0;
    color: var(--color-text);
}
.p-consultant__truth::before {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 100vw;
    height: calc(100vw * 448 / 1440);
    background: url('../images/bg/arc-bg.svg') top center / 100% 100% no-repeat;
    pointer-events: none;
    z-index: -1;
}
.p-consultant__truth > h2 {
    margin: 0 0 var(--space-2xl);
    font-family: var(--font-heading);
    font-size: var(--fz-3xl);
    font-weight: 700;
    line-height: 1.5;
    color: var(--color-primary-dark);
    text-align: center;
}
.p-consultant__truth > p {
    margin: 0;
    font-family: var(--font-base);
    font-size: var(--fz-base);
    line-height: 1.8;
}
.p-consultant__truth > p + p {
    margin-top: 1.8em;
}
.p-consultant__truth > p:last-of-type {
    margin-bottom: var(--space-4xl);
}
.p-consultant__truth > div {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2xl);
}

/* ----- Section 3: 経営者の想いに寄り添い ----- */
.p-consultant__partner {
    position: relative;
    max-width: var(--content-narrow);
    margin: var(--space-5xl) auto 0;
    padding: var(--space-5xl) 0 0;
    color: var(--color-text);
}
.p-consultant__partner::before {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 100vw;
    height: calc(100vw * 448 / 1440);
    background: url('../images/bg/arc-bg.svg') top center / 100% 100% no-repeat;
    pointer-events: none;
    z-index: -1;
}
.p-consultant__partner > h2 {
    margin: 0 0 var(--space-2xl);
    font-family: var(--font-heading);
    font-size: var(--fz-3xl);
    font-weight: 700;
    line-height: 1.5;
    color: var(--color-primary-dark);
    text-align: center;
}
.p-consultant__partner > p {
    margin: 0;
    font-family: var(--font-base);
    font-size: var(--fz-base);
    line-height: 1.8;
}
.p-consultant__partner > p + p {
    margin-top: 1.8em;
}
.p-consultant__partner > p:last-of-type {
    margin-bottom: var(--space-4xl);
}

/* ワイドカード（2グラフ横並び） */
.p-consultant__wide-card {
    margin-bottom: var(--space-4xl);
    border-radius: var(--radius-card);
    overflow: hidden;
    background-color: var(--color-white);
}
.p-consultant__wide-card > h3 {
    margin: 0;
    min-height: 112px;
    padding: var(--space-lg);
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(58deg, var(--color-primary) 0%, var(--color-accent) 94.7%);
    font-family: var(--font-base);
    font-size: var(--fz-lg);
    font-weight: 700;
    line-height: 1.8;
    color: var(--color-white);
    text-align: center;
}
.p-consultant__wide-card > div {
    display: flex;
    border: 1px solid var(--color-border-light);
    border-top: 0;
    box-sizing: border-box;
}
.p-consultant__wide-card > div > div {
    flex: 1;
    min-width: 0;
    padding: var(--space-lg);
    text-align: center;
}
.p-consultant__wide-card > div > div + div {
    border-left: 1px solid var(--color-border-light);
}
.p-consultant__wide-card > div > div > p:first-of-type {
    margin: 0 0 var(--space-md);
    font-family: var(--font-base);
    font-size: var(--fz-sm);
    line-height: 1.8;
    color: var(--color-primary-dark);
}
.p-consultant__wide-card > div > div > .p-image {
    margin: 0 auto var(--space-sm);
    max-width: 472px;
}
.p-consultant__wide-card > div > div > .p-image img {
    display: block;
    width: 100%;
    height: auto;
}
.p-consultant__wide-card > div > div > p:last-of-type {
    margin: 0;
    font-family: var(--font-base);
    font-size: var(--fz-xxs);
    line-height: 1.8;
    color: var(--color-text);
}

/* リピート率89.6%ブロック */
.p-consultant__trust {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-2xl);
}
.p-consultant__trust > .p-image {
    flex: 0 0 320px;
    width: 320px;
    height: 320px;
}
.p-consultant__trust > .p-image img {
    display: block;
    width: 100%;
    height: 100%;
}
.p-consultant__trust > div {
    display: flex;
    flex-direction: column;
    gap: var(--space-2xl);
    align-items: flex-start;
}
.p-consultant__trust > div > h3 {
    margin: 0;
    font-family: var(--font-heading);
    font-size: var(--fz-2xl);
    font-weight: 700;
    line-height: 1.5;
    color: var(--color-primary-dark);
}
.p-consultant__trust > div > h3 > span {
    display: block;
    width: fit-content;
    margin-bottom: var(--space-sm);
    padding: var(--space-xs) var(--space-sm);
    background-color: var(--color-bg-nav);
    font-family: var(--font-base);
    font-size: var(--fz-base);
    font-weight: 700;
    line-height: 1.8;
}


/* ===================================================
   Responsive
   =================================================== */

/* ----- Tablet: 601–1024px ----- */
@media screen and (max-width: 1024px) {
    .p-consultant__numbers {
        margin-top: var(--space-4xl);
    }
    .p-consultant__numbers > p:last-of-type {
        margin-bottom: var(--space-3xl);
    }
    .p-consultant__numbers > div {
        gap: var(--space-lg);
    }
    .p-consultant__card {
        flex: 0 0 calc(50% - var(--space-lg) / 2);
    }
    .p-consultant__card > h3 {
        min-height: 96px;
        padding: var(--space-md);
        font-size: var(--fz-base);
    }

    .p-consultant__truth,
    .p-consultant__partner {
        margin-top: var(--space-4xl);
    }
    .p-consultant__truth > p:last-of-type,
    .p-consultant__partner > p:last-of-type {
        margin-bottom: var(--space-3xl);
    }
    .p-consultant__truth > div {
        gap: var(--space-lg);
    }
    .p-consultant__wide-card {
        margin-bottom: var(--space-3xl);
    }
    .p-consultant__wide-card > h3 {
        min-height: 96px;
        padding: var(--space-md);
        font-size: var(--fz-base);
    }

}

/* ----- SP: ≤600px ----- */
@media screen and (max-width: 600px) {
    .p-consultant__numbers {
        margin-top: var(--space-2xl);
    }
    .p-consultant__numbers > h2 {
        font-size: var(--fz-2xl);
    }
    .p-consultant__numbers > h2 > span {
        font-size: var(--fz-sm);
    }
    .p-consultant__numbers > p:last-of-type {
        margin-bottom: var(--space-xl);
    }
    .p-consultant__numbers > div {
        gap: var(--space-md);
    }
    .p-consultant__card {
        flex: 0 0 100%;
    }
    .p-consultant__card > h3 {
        min-height: auto;
        padding: var(--space-md);
        font-size: var(--fz-base);
    }
    .p-consultant__card > div {
        padding: var(--space-md);
    }

    .p-consultant__truth,
    .p-consultant__partner {
        margin-top: var(--space-2xl);
    }
    .p-consultant__truth > h2,
    .p-consultant__partner > h2 {
        font-size: var(--fz-2xl);
    }
    .p-consultant__truth > p:last-of-type,
    .p-consultant__partner > p:last-of-type {
        margin-bottom: var(--space-xl);
    }
    .p-consultant__truth > div {
        gap: var(--space-md);
    }
    .p-consultant__wide-card {
        margin-bottom: var(--space-xl);
    }
    .p-consultant__wide-card > div {
        flex-direction: column;
    }
    .p-consultant__wide-card > div > div + div {
        border-left: 0;
        border-top: 1px solid var(--color-border-light);
    }
    .p-consultant__trust {
        flex-direction: column;
        gap: var(--space-lg);
    }
    .p-consultant__trust > .p-image {
        flex-basis: 240px;
        width: 240px;
        height: 240px;
    }
    .p-consultant__trust > div > h3 {
        font-size: var(--fz-xl);
    }

}


/* ============================================================
   [SOURCE] page-hr.css
   ============================================================ */
/* ===================================================
   page-hr.css — 人財・組織開発 詳細ページ
   =================================================== */

/* ========== アンカーリンクのオフセット ========== */
html {
    scroll-padding-top: calc(var(--header-height) + var(--space-md));
}

/* ========== Section 2: イントロ ========== */
.p-hr__intro {
    max-width: 800px;
    margin: 0 auto;
    padding: var(--space-5xl) var(--space-md);
    text-align: center;
}
.p-hr__intro > p {
    font-size: var(--fz-base);
    line-height: 1.8;
    color: var(--color-text-dark);
    margin-bottom: 32px;
}
.p-hr__intro > p:last-child {
    margin-bottom: 0;
}
.p-hr__intro > .p-image > img {
    width: 100%;
    height: auto;
    display: block;
}

@media screen and (max-width: 1024px) {
    .p-hr__intro {
        max-width: none;
        padding: var(--space-4xl) var(--space-lg);
    }
    .p-hr__intro > p {
        text-align: left;
    }
    .p-hr__intro > p br {
        display: none;
    }
}
@media screen and (max-width: 600px) {
    .p-hr__intro {
        padding: var(--space-2xl) var(--space-md);
    }
    .p-hr__intro > p {
        font-size: var(--fz-sm);
        margin-bottom: var(--space-xl);
    }
}

/* ========== Section 3: 支援の特徴 ========== */
.p-hr__features {
    position: relative;
    max-width: var(--content-narrow);
    margin: 0 auto;
    padding: var(--space-5xl) 0;
}
.p-hr__features::before {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 100vw;
    height: calc(100vw * 448 / 1440);
    background: url('../images/bg/arc-bg.svg') top center / 100% 100% no-repeat;
    pointer-events: none;
    z-index: -1;
}
.p-hr__features > h2 {
    position: relative;
    text-align: center;
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: var(--fz-3xl);
    line-height: 1.5;
    color: var(--color-accent);
    margin-bottom: var(--space-2xl);
}
.p-hr__features > h2::before {
    content: "";
    display: block;
    width: 23px;
    height: 18px;
    margin: 0 auto var(--space-sm);
    background: url('../images/icons/icon-ttl.svg') no-repeat center / contain;
}
.p-hr__features > div {
    display: flex;
    gap: var(--space-2xl);
    align-items: stretch;
}
.p-hr__features > div > p {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--color-accent);
    border-radius: var(--radius-xl);
    padding: var(--space-xl) 10px;
    text-align: center;
    font-size: var(--fz-base);
    line-height: 1.8;
    color: var(--color-text);
}

@media screen and (max-width: 1024px) {
    .p-hr__features {
        padding: var(--space-4xl) var(--space-lg);
    }
    .p-hr__features > div {
        gap: var(--space-md);
    }
    .p-hr__features > div > p {
        padding: var(--space-lg) var(--space-sm);
        font-size: var(--fz-sm);
    }
}
@media screen and (max-width: 600px) {
    .p-hr__features {
        padding: var(--space-2xl) var(--space-md);
    }
    .p-hr__features > h2 {
        font-size: var(--fz-2xl);
        margin-bottom: var(--space-lg);
    }
    .p-hr__features > div {
        flex-direction: column;
        gap: var(--space-md);
    }
    .p-hr__features > div > p {
        padding: var(--space-lg) var(--space-md);
    }
}

/* ========== Section 4: 主な支援内容 ========== */
.p-hr__services {
    position: relative;
    max-width: var(--content-narrow);
    margin: 0 auto;
    padding: var(--space-5xl) 0;
}
.p-hr__services::before {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 100vw;
    height: calc(100vw * 448 / 1440);
    background: url('../images/bg/arc-bg.svg') top center / 100% 100% no-repeat;
    pointer-events: none;
    z-index: -1;
}
.p-hr__services > h2 {
    position: relative;
    text-align: center;
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: var(--fz-3xl);
    line-height: 1.5;
    color: var(--color-accent);
    margin-bottom: var(--space-2xl);
}
.p-hr__services > h2::before {
    content: "";
    display: block;
    width: 23px;
    height: 18px;
    margin: 0 auto var(--space-sm);
    background: url('../images/icons/icon-ttl.svg') no-repeat center / contain;
}

/* アンカーナビ */
.p-hr__services-nav {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-md);
    margin-bottom: var(--space-5xl);
}
.p-hr__services-nav > a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-sm);
    padding: 12px 20px;
    border: 1px solid var(--color-border-dark);
    border-radius: var(--radius-sm);
    background-color: var(--color-white);
    font-size: var(--fz-base);
    line-height: 1.8;
    color: var(--color-text);
    text-decoration: none;
    transition: var(--transition-base);
}
.p-hr__services-nav > a::after {
    content: "";
    flex-shrink: 0;
    width: 24px;
    height: 24px;
    background: url('../images/icons/icon_arrow_right.svg') no-repeat center / contain;
    transform: rotate(90deg);
}
.p-hr__services-nav > a:hover {
    border-color: var(--color-accent);
    color: var(--color-accent);
}

/* 詳細カード */
.p-hr__services-item {
    display: flex;
    gap: var(--space-2xl);
    align-items: flex-start;
    margin-bottom: var(--space-3xl);
}
.p-hr__services-item:last-child {
    margin-bottom: 0;
}
.p-hr__services-item > .p-image {
    flex-shrink: 0;
    width: 120px;
    height: 120px;
    padding: 16px;
}
#service-01 .p-image, #service-04 .p-image {
    padding: 8px;
}
.p-hr__services-item > .p-image > img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}
.p-hr__services-item > div {
    min-width: 0;
}
.p-hr__services-item > div > h3 {
    padding-bottom: var(--space-md);
    margin-bottom: var(--space-md);
    border-bottom: 1px solid var(--color-border-dark);
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: var(--fz-2xl);
    line-height: 1.5;
    color: var(--color-primary);
}
.p-hr__services-item > div > p {
    font-size: var(--fz-base);
    line-height: 1.8;
    color: var(--color-text-dark);
}

@media screen and (max-width: 1024px) {
    .p-hr__services {
        padding: var(--space-4xl) var(--space-lg);
    }
    .p-hr__services-nav > a {
        font-size: var(--fz-sm);
    }
    .p-hr__services-item {
        gap: var(--space-lg);
    }
    .p-hr__services-item > .p-image {
        width: 96px;
        height: 96px;
    }
}
@media screen and (max-width: 600px) {
    .p-hr__services {
        padding: var(--space-2xl) var(--space-md);
    }
    .p-hr__services > h2 {
        font-size: var(--fz-2xl);
        margin-bottom: var(--space-lg);
    }
    .p-hr__services-nav {
        grid-template-columns: 1fr;
        gap: var(--space-sm);
        margin-bottom: var(--space-2xl);
    }
    .p-hr__services-nav > a {
        padding: 10px 16px;
        font-size: var(--fz-sm);
    }
    .p-hr__services-item {
        flex-direction: column;
        gap: var(--space-md);
        align-items: center;
        margin-bottom: var(--space-xl);
    }
    .p-hr__services-item > .p-image {
        width: 80px;
        height: 80px;
    }
    .p-hr__services-item > div > h3 {
        font-size: var(--fz-xl);
        text-align: center;
    }
    .p-hr__services-item > div > p {
        font-size: var(--fz-sm);
    }
}

/* ========== Section 5: トータルフロー ========== */
.p-hr__flow {
    position: relative;
    max-width: var(--content-narrow);
    margin: 0 auto;
    padding: var(--space-5xl) 0;
    text-align: center;
}
.p-hr__flow::before {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 100vw;
    height: calc(100vw * 460 / 1440);
    background: url('../images/bg/arc-bg.svg') top center / 100% 100% no-repeat;
    pointer-events: none;
    z-index: -1;
}
.p-hr__flow > h2 {
    position: relative;
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: var(--fz-3xl);
    line-height: 1.5;
    color: var(--color-accent);
    margin-bottom: var(--space-xl);
}
.p-hr__flow > h2::before {
    content: "";
    display: block;
    width: 23px;
    height: 18px;
    margin: 0 auto var(--space-sm);
    background: url('../images/icons/icon-ttl.svg') no-repeat center / contain;
}
.p-hr__flow > p {
    font-size: var(--fz-base);
    line-height: 1.8;
    color: var(--color-text-dark);
    margin-bottom: var(--space-2xl);
}

/* フロー画像（succession 等：8ステップの代わりに画像で表示する場合） */
.p-hr__flow > .p-image {
    margin-top: var(--space-2xl);
}
.p-hr__flow > .p-image > img {
    max-width: 100%;
    height: auto;
    display: block;
    margin: 0 auto;
}

/* ステップ群 */
.p-hr__flow-steps {
    display: flex;
    justify-content: center;
    align-items: stretch;
    gap: 40px;
    list-style: none;
    padding: 0;
    margin: 0;
}
.p-hr__flow-steps > li {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--space-md) var(--space-lg);
    border: 1px solid var(--color-accent);
    border-radius: var(--radius-card);
    background-color: var(--color-white);
    writing-mode: vertical-rl;
    text-orientation: upright;
    letter-spacing: 2px;
    font-family: var(--font-base);
    font-weight: 500;
    font-size: 15px;
    line-height: 1.5;
    color: var(--color-text);
    white-space: nowrap;
    min-height: 280px;
}
.p-hr__flow-steps > li:nth-child(3) {
    background-color: var(--color-bg-nav);
}
.p-hr__flow-steps > li:last-child {
    background-color: var(--color-accent);
    border-color: var(--color-accent);
    color: var(--color-white);
}
.p-hr__flow-steps > li:not(:last-child)::after {
    content: "";
    position: absolute;
    top: 50%;
    right: calc(-1 * var(--space-lg) / 2 - 16px);
    transform: translateY(-50%);
    width: 0;
    height: 0;
    border-top: 7px solid transparent;
    border-bottom: 7px solid transparent;
    border-left: 14px solid var(--color-accent);
}

@media screen and (max-width: 1024px) {
    .p-hr__flow {
        padding: var(--space-4xl) var(--space-lg);
    }
    .p-hr__flow-steps {
        gap: var(--space-md);
    }
    .p-hr__flow-steps > li {
        padding: var(--space-md) var(--space-sm);
        min-height: 260px;
        font-size: var(--fz-sm);
    }
    .p-hr__flow-steps > li:not(:last-child)::after {
        right: calc(-1 * var(--space-md) / 2 - 7px);
    }
}
@media screen and (max-width: 600px) {
    .p-hr__flow {
        padding: var(--space-2xl) var(--space-md);
    }
    .p-hr__flow > h2 {
        font-size: var(--fz-2xl);
        margin-bottom: var(--space-md);
    }
    .p-hr__flow > p {
        font-size: var(--fz-sm);
        margin-bottom: var(--space-xl);
        text-align: left;
    }
    .p-hr__flow > p br {
        display: none;
    }
    /* フロー図はSPで縮小せず横スクロール（読める幅を維持） */
    .p-hr__flow > .p-image {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
    .p-hr__flow > .p-image > img {
        width: 700px;
        max-width: none;
        margin: 0;
    }
    .p-hr__flow-steps {
        flex-direction: column;
        align-items: center;
        gap: var(--space-lg);
    }
    .p-hr__flow-steps > li {
        writing-mode: horizontal-tb;
        min-height: auto;
        width: 100%;
        max-width: 320px;
        padding: var(--space-md);
        letter-spacing: 1px;
        white-space: normal;
        text-align: center;
    }
    .p-hr__flow-steps > li:not(:last-child)::after {
        top: auto;
        right: auto;
        left: 50%;
        bottom: calc(-1 * var(--space-lg) / 2 - 4px);
        transform: translateX(-50%);
        border-top: 10px solid var(--color-accent);
        border-bottom: none;
        border-left: 7px solid transparent;
        border-right: 7px solid transparent;
    }
}

/* ========== Section 6: 支援事業一覧 ========== */
.p-hr__related {
    position: relative;
    max-width: var(--content-width);
    margin: 0 auto;
    padding: var(--space-5xl) 0;
    text-align: center;
}
.p-hr__related::before {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 100vw;
    height: calc(100vw * 448 / 1440);
    background: url('../images/bg/arc-bg.svg') top center / 100% 100% no-repeat;
    pointer-events: none;
    z-index: -1;
}
.p-hr__related > h2 {
    font-family: var(--font-heading);
    font-weight: 400;
    font-size: var(--fz-3xl);
    line-height: 1.5;
    color: var(--color-text);
    margin-bottom: var(--space-2xl);
}
.p-hr__related > div {
    display: flex;
    gap: var(--space-md);
    max-width: var(--content-narrow);
    margin: 0 auto var(--space-md);
}
.p-hr__related > div:last-child {
    margin-bottom: 0;
}
.p-hr__related > div > a {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 148px;
    width: 100%;
    overflow: hidden;
    background-color: var(--color-primary-dark);
    text-decoration: none;
    color: var(--color-white);
    transition: opacity var(--transition-base);
}
.p-hr__related > div > a > img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 0;
}
.p-hr__related > div > a::before {
    content: "";
    position: absolute;
    inset: 0;
    background-color: var(--color-overlay);
    z-index: 1;
    transition: background-color var(--transition-base);
}
.p-hr__related > div > a:hover::before {
    background-color: rgba(12, 86, 160, 0.4);
}
.p-hr__related > div > a > p {
    position: relative;
    z-index: 2;
    font-weight: 700;
    font-size: var(--fz-xl);
    line-height: 1.8;
}
.p-hr__related > div > a > p > span {
    display: block;
    font-size: var(--fz-sm);
}

@media screen and (max-width: 1024px) {
    .p-hr__related {
        padding: var(--space-4xl) var(--space-lg);
    }
    .p-hr__related > div > a {
        height: 140px;
    }
}
@media screen and (max-width: 600px) {
    .p-hr__related {
        padding: var(--space-2xl) var(--space-md);
    }
    .p-hr__related > h2 {
        font-size: var(--fz-2xl);
        margin-bottom: var(--space-lg);
    }
    .p-hr__related > div {
        flex-direction: column;
        gap: var(--space-sm);
        margin-bottom: var(--space-sm);
    }
    .p-hr__related > div > a {
        height: 100px;
    }
    .p-hr__related > div > a > p {
        font-size: var(--fz-lg);
    }
    .p-hr__related > div > a > p > span {
        font-size: var(--fz-xs);
    }
}


/* ============================================================
   [SOURCE] page-contact.css
   ============================================================ */
/* ===================================================
   page-contact.css — お問い合わせ（CF7）
   =================================================== */

.p-contact {
    display: block;
}
.p-contact > .l-page-content {
    max-width: 800px;
    margin: 0 auto;
    padding: var(--space-5xl) var(--space-md);
}

/* ----- フォームグループ（dl） ----- */
.p-contact .cf7_form {
    margin-bottom: var(--space-3xl);
    border-radius: var(--radius-md);
    overflow: hidden;
}

/* dt: ラベル＋必須/任意バッジ（左260px） */
.p-contact .cf7_form > dt {
    float: left;
    width: 260px;
    min-height: 60px;
    padding: var(--space-md) 0;
    font-size: var(--fz-base);
    font-weight: 700;
    line-height: 1.6;
    display: flex;
    align-items: center;
    justify-content: space-between;
    color: var(--color-text-dark);
}

/* dd: 入力エリア（左260px分の余白） */
.p-contact .cf7_form > dd {
    padding: var(--space-md) 0 var(--space-md) 260px;
    font-size: var(--fz-base);
    line-height: 1.6;
    border-bottom: 3px solid var(--color-white);
    min-height: 60px;
}
.p-contact .cf7_form > dd:last-of-type {
    border-bottom: none;
}

/* 必須/任意バッジ */
.p-contact .cf7_form .required,
.p-contact .cf7_form .will {
    flex-shrink: 0;
    margin-right: var(--space-md);
    padding: 2px 10px;
    font-size: var(--fz-xs);
    font-weight: 700;
    line-height: 1.4;
    color: var(--color-white);
    background: var(--color-primary);
    border-radius: 8px;
}
.p-contact .cf7_form .will {
    background: #EFEFEF;
    color: #006CBF;
}

/* ----- input / select / textarea ----- */
.p-contact .cf7_form .wpcf7-form-control-wrap {
    display: block;
}
.p-contact .cf7_form input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=submit]),
.p-contact .cf7_form select,
.p-contact .cf7_form textarea {
    width: 100%;
    padding: 10px;
    font-family: inherit;
    font-size: var(--fz-base);
    color: var(--color-text);
    background: var(--color-white);
    border: 1px solid var(--color-border-dark);
    border-radius: 8px;
    transition: var(--transition-base);
    box-sizing: border-box;
}
.p-contact .cf7_form input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=submit]):focus,
.p-contact .cf7_form select:focus,
.p-contact .cf7_form textarea:focus {
    border-color: var(--color-primary);
    outline: none;
    box-shadow: 0 0 4px var(--color-primary);
}
.p-contact .cf7_form textarea {
    height: 150px;
    line-height: 1.6;
    resize: vertical;
}

/* 幅ユーティリティ */
.p-contact .cf7_form .width80  { max-width: 80px;  }
.p-contact .cf7_form .width100 { max-width: 100px; }
.p-contact .cf7_form .width150 { max-width: 150px; }
.p-contact .cf7_form .width200 { max-width: 200px; }
.p-contact .cf7_form .width250 { max-width: 250px; }
.p-contact .cf7_form .width300 { max-width: 300px; }
.p-contact .cf7_form .width400 { max-width: 400px; }

/* ----- radio / checkbox ----- */
.p-contact .cf7_form .wpcf7-radio,
.p-contact .cf7_form .wpcf7-checkbox {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-md);
}
.p-contact .cf7_form .wpcf7-list-item {
    margin: 0 !important;
}
.p-contact .cf7_form .wpcf7-list-item label {
    display: inline-flex;
    align-items: center;
    gap: var(--space-xs);
    cursor: pointer;
}
.p-contact .cf7_form .wpcf7-list-item input[type=radio],
.p-contact .cf7_form .wpcf7-list-item input[type=checkbox] {
    accent-color: var(--color-primary);
    width: 18px;
    height: 18px;
    cursor: pointer;
}

/* ----- file ----- */
.p-contact .cf7_form input[type=file] {
    font-size: var(--fz-sm);
    color: var(--color-text);
}

/* ----- 送信ボタン / 戻るボタン共通の基本スタイル ----- */
.p-contact .submit {
    margin-top: var(--space-2xl);
}
.p-contact .submit input[type=submit],
.p-contact .submit .wpcf7-submit,
.p-contact .wpcf7-previous {
    box-sizing: border-box;
    display: block;
    width: fit-content;
    min-width: 280px;
    margin-left: auto;
    margin-right: auto;
    padding: var(--space-md) var(--space-3xl);
    font-size: var(--fz-lg);
    font-weight: 700;
    color: var(--color-white);
    border: none;
    border-radius: 8px;
    cursor: pointer;
    transition: var(--transition-base);
}
.p-contact .submit input[type=submit]:hover,
.p-contact .submit .wpcf7-submit:hover,
.p-contact .wpcf7-previous:hover {
    opacity: 0.7;
}

/* ----- 個別の背景色のみ分岐 ----- */
.p-contact .submit input[type=submit],
.p-contact .submit .wpcf7-submit {
    background: var(--color-primary);
}
.p-contact .wpcf7-previous {
    margin-top: var(--space-md);
    background: #EFEFEF;
    color: #006CBF;
}

/* CF7 のレスポンス枠の体裁 */
.p-contact .wpcf7-response-output {
    margin: var(--space-md) 0 0;
    padding: var(--space-sm) var(--space-md);
    border-radius: 8px;
    font-size: var(--fz-sm);
}

/* CF7 個別フィールドのエラーチップ */
.p-contact .wpcf7-not-valid-tip {
    display: block;
    margin-top: 6px;
    padding: 2px 9px;
    background: #dc3232;
    color: #fff;
    font-size: var(--fz-sm);
    font-weight: 700;
    border-radius: 8px;
}
.p-contact .wpcf7-not-valid {
    border-color: #dc3232 !important;
    background-color: #fff7f7;
}

.privacy  {
    text-align: center;
}
.privacy .wpcf7-list-item {
    margin-left: 32px;
}
.privacy span.wpcf7-list-item-label {
    font-size: 20px;
}
.privacy span.wpcf7-list-item-label a {
    color: var(--color-primary);
}
.privacy input[type="checkbox"] {
    background: #fff;
    border: 1px solid #ccc;
    content: '';
    display: block;
    width: 20px;
    height: 20px;
    left: 0;
    margin-top: 9px;
    position: absolute;
}

/* ===================================================
   タブレット (max-width: 1024px)
   =================================================== */
@media screen and (max-width: 1024px) {
    .p-contact > .l-page-content {
        padding: var(--space-3xl) var(--space-md);
    }
}

/* ===================================================
   SP (max-width: 600px) — dt/dd を縦積みに
   =================================================== */
@media screen and (max-width: 600px) {
    .p-contact > .l-page-content {
        padding: var(--space-2xl) var(--space-md);
    }
    .p-contact .cf7_form > dt {
        float: none;
        width: 100%;
        min-height: auto;
        padding: var(--space-md) 0 var(--space-xs);
    }
    .p-contact .cf7_form > dd {
        padding: 0 0 var(--space-md);
        border-bottom: 1px solid var(--color-white);
    }
    .p-contact .submit input[type=submit],
    .p-contact .submit .wpcf7-submit {
        min-width: 200px;
        font-size: var(--fz-base);
    }
}

/* ===================================================
   c-modal--privacy — 個人情報保護方針モーダル
   =================================================== */
.c-modal--privacy .c-modal__content {
    width: min(90vw, 880px);
    max-height: 86vh;
    background: var(--color-white);
    border-radius: var(--radius-md);
    padding: var(--space-3xl) var(--space-2xl);
    overflow-y: auto;
    display: block;
    text-align: left;
    line-height: 1.8;
}
.c-modal--privacy .c-modal__content h2 {
    font-size: var(--fz-xl);
    font-weight: 700;
    margin: var(--space-xl) 0 var(--space-md);
    color: var(--color-text-dark);
}
.c-modal--privacy .c-modal__content h2:first-child {
    margin-top: 0;
}
.c-modal--privacy .c-modal__content p {
    margin: 0 0 var(--space-md);
    font-size: var(--fz-base);
}
.c-modal--privacy .c-modal__content ol,
.c-modal--privacy .c-modal__content ul {
    margin: 0 0 var(--space-md) var(--space-lg);
    padding: 0;
}
.c-modal--privacy .c-modal__content li {
    margin-bottom: var(--space-xs);
}
.c-modal--privacy .c-modal__content a {
    color: var(--color-link);
    text-decoration: underline;
}
.c-modal--privacy .p-privacy__intro,
.c-modal--privacy .p-privacy__item {
    margin-bottom: var(--space-xl);
}
.c-modal--privacy .p-privacy__item:last-child {
    margin-bottom: 0;
}

@media screen and (max-width: 600px) {
    .c-modal--privacy .c-modal__content {
        padding: var(--space-xl) var(--space-md);
        max-height: 82vh;
    }
}


/* ============================================================
   [SOURCE] page-client-service.css
   ============================================================ */
/* ===================================================
   page-client-service.css — 支援企業様専用サービス
   外部リンクカード一覧（2列グリッド、520×180 画像1枚）
   =================================================== */

.p-client-service__list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-lg);
    max-width: var(--content-narrow);
    margin: 0 auto;
    padding: var(--space-2xl) 0 var(--space-5xl);
}
.p-client-service__list > a {
    display: block;
    transition: opacity var(--transition-base);
}
.p-client-service__list > a:hover {
    opacity: 0.8;
}
.p-client-service__list > a > img {
    display: block;
    width: 100%;
    height: auto;
}

@media screen and (max-width: 600px) {
    .p-client-service__list {
        grid-template-columns: 1fr;
    }
}


/* ============================================================
   [SOURCE] page-interview.css
   ============================================================ */
/* ===================================================
   page-interview.css — お取引先様インタビュー（CPT: interview）
   =================================================== */

/* ---------------------------------------------------
   archive-interview（一覧）
   --------------------------------------------------- */
.p-interview-archive > .l-page-content {
    padding-top: var(--space-2xl);
    padding-bottom: var(--space-5xl);
}
.p-interview-archive__intro {
    text-align: center;
    margin-bottom: var(--space-2xl);
}
.p-interview-archive__intro > p {
    font-size: var(--fz-lg);
    color: var(--color-text);
    line-height: 1.8;
}
.p-interview-archive__partner-types {
    display: flex;
    gap: var(--space-lg);
    max-width: var(--content-narrow);
    margin: var(--space-2xl) auto 80px;
}
.p-interview-archive__partner-types > div {
    flex: 1;
    padding: 12px var(--space-2xl);
    background-color: var(--color-white);
    border: 1px solid var(--color-primary);
    border-radius: var(--radius-pill);
    text-align: center;
}
.p-interview-archive__partner-types > div > p {
    font-size: var(--fz-xs);
    color: var(--color-text);
    line-height: 1.8;
}
.p-interview-archive__partner-types > div > p > span {
    display: block;
    font-family: var(--font-base);
    font-weight: 700;
    font-size: var(--fz-sm);
    color: var(--color-primary);
}

/* カードリスト */
.p-interview-archive__list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-lg);
}

/* カード */
.p-interview-archive__card {
    background-color: var(--color-white);
    border-radius: var(--radius-card);
    overflow: hidden;
    transition: box-shadow var(--transition-base), transform var(--transition-base);
    border: 1px solid #d2d2d2;
}
.p-interview-archive__card:hover {
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.08);
    transform: translateY(-2px);
}
.p-interview-archive__card > a {
    display: block;
    padding: var(--space-lg);
    color: var(--color-text);
    text-decoration: none;
}
.p-interview-archive__card > a:hover {
    opacity: 1;
}
.p-interview-archive__card .p-image {
    margin-bottom: var(--space-lg);
    border-radius: var(--radius-sm);
    overflow: hidden;
    aspect-ratio: 296 / 196;
    background-color: var(--color-bg-card);
}
.p-interview-archive__card .p-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.p-interview-archive__card > a > div:last-child {
    display: flex;
    flex-direction: column;
    gap: var(--space-sm);
}
.p-interview-archive__card > a > div:last-child > p {
    font-size: 18px;
    font-weight: 700;
    color: #006CBF;
    line-height: 1.5;
}
.p-interview-archive__card > a > div:last-child > h2 {
    font-family: var(--font-base);
    font-size: var(--fz-base);
    font-weight: 400;
    color: var(--color-text);
    line-height: 1.7;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.p-interview-archive__partner-badge {
    display: inline-block;
    align-self: flex-start;
    padding: 2px 12px;
    font-size: var(--fz-xs);
    line-height: 1.8;
    color: var(--color-primary);
    border: 1px solid var(--color-primary);
    border-radius: var(--radius-md);
}
.p-interview-archive__more {
    display: inline-flex;
    align-items: center;
    gap: var(--space-xs);
    align-self: flex-end;
    margin-top: var(--space-xs);
    font-size: var(--fz-sm);
    font-weight: 700;
    color: var(--color-primary);
}
.p-interview-archive__more::after {
    content: "";
    width: 24px;
    height: 24px;
    background: url('../images/icons/icon_arrow_right.svg') no-repeat center / contain;
}
.p-interview-archive__empty {
    text-align: center;
    padding: var(--space-5xl) 0;
    color: var(--color-text-gray);
}

/* ページネーション */
.p-interview-archive__pager {
    margin-top: var(--space-3xl);
}
.p-interview-archive__pager > ul {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 6px;
    list-style: none;
}
.p-interview-archive__pager > ul > li > a,
.p-interview-archive__pager > ul > li > span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    font-size: var(--fz-base);
    font-weight: 400;
    color: #b6c3cd;
    background-color: var(--color-white);
    border: 1px solid var(--color-border-light);
    border-radius: 3px;
    transition: background-color var(--transition-base), color var(--transition-base), border-color var(--transition-base);
}
.p-interview-archive__pager > ul > li > a:hover {
    opacity: 1;
    background-color: var(--color-bg-nav);
    color: var(--color-primary);
    border-color: var(--color-primary);
}
.p-interview-archive__pager > ul > li > .current {
    background-color: var(--color-accent);
    color: var(--color-white);
    border-color: var(--color-accent);
}
.p-interview-archive__pager-arrow {
    display: inline-block;
    width: 24px;
    height: 24px;
    background: url('../images/icons/icon_arrow_right.svg') no-repeat center / contain;
}
.p-interview-archive__pager-arrow--prev {
    transform: scaleX(-1);
}

/* ---------------------------------------------------
   single-interview（詳細）
   --------------------------------------------------- */
.p-interview-single {
    display: block;
}
.p-interview-single > .l-page-content {
    padding-top: var(--space-2xl);
    padding-bottom: var(--space-5xl);
}

/* 詳細ページのヘッダー帯：薄青グラデに上書き（voice と同等） */
.p-interview-single .l-page-hero {
    height: auto;
    padding-top: var(--space-md);
    padding-bottom: var(--space-2xl);
    background: linear-gradient(to bottom, #e9faff 50%, #fcfeff 100%);
    color: var(--color-text);
    overflow: visible;
}
.p-interview-single .l-page-hero::after {
    display: none;
}
.p-interview-single .l-page-hero .breadcrumb {
    color: var(--color-text);
}
.p-interview-single .l-page-hero .breadcrumb a {
    color: var(--color-primary);
}
.p-interview-single .l-page-hero .breadcrumb li + li::before {
    color: var(--color-text-gray);
}
.p-interview-single .l-page-hero__inner {
    padding: 24px var(--space-md) 0;
}
.p-interview-single .l-page-hero__title {
    color: var(--color-text-dark);
    margin-bottom: 12px;
    font-weight: 400;
    font-family: var(--font-heading);
}

/* 会社情報ブロック */
.p-interview-single__company {
    display: flex;
    gap: var(--space-2xl);
    align-items: center;
    margin-bottom: var(--space-3xl);
}
.p-interview-single__company .p-image {
    flex: 0 0 480px;
    aspect-ratio: 480 / 320;
    background-color: var(--color-white);
    border-radius: var(--radius-sm);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}
.p-interview-single__company .p-image img {
    max-width: 80%;
    max-height: 80%;
    object-fit: contain;
    display: block;
}
.p-interview-single__company-info {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: var(--space-md);
}
.p-interview-single__partner-badge {
    display: inline-block;
    align-self: flex-start;
    padding: 2px 12px;
    font-size: var(--fz-xs);
    line-height: 1.8;
    color: var(--color-primary);
    border: 1px solid var(--color-primary);
    border-radius: var(--radius-md);
}
.p-interview-single__company-name {
    font-family: var(--font-base);
    font-size: var(--fz-2xl);
    font-weight: 700;
    color: var(--color-primary);
    line-height: 1;
}
.p-interview-single__company-business > p {
    display: flex;
    align-items: flex-start;
    gap: var(--space-md);
    font-size: var(--fz-sm);
    color: var(--color-text);
    line-height: 1.8;
}
.p-interview-single__company-business > p > span {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    padding: 0 var(--space-sm);
    font-size: var(--fz-xs);
    color: var(--color-text);
    background-color: var(--color-bg-nav);
    line-height: 24px;
}
.p-interview-single__company-link {
    margin-top: var(--space-md);
}
.p-interview-single__company-link::after {
    background-image: url('../images/icons/icon_external.svg');
    width: 12px;
    height: 12px;
}

/* Q&Aセクション */
.p-interview-single__qa {
    margin-top: var(--space-3xl);
}
.p-interview-single__qa-item {
    margin-bottom: var(--space-2xl);
}
.p-interview-single__qa-question {
    padding: var(--space-md) 0 var(--space-lg);
    font-family: var(--font-heading);
    font-size: var(--fz-2xl);
    font-weight: 400;
    color: var(--color-primary);
    line-height: 1.5;
}
.p-interview-single__qa-answer {
    padding-bottom: var(--space-xl);
    font-size: var(--fz-base);
    color: var(--color-text);
    line-height: 1.8;
}
.p-interview-single__qa-answer > p {
    margin-bottom: var(--space-md);
}
.p-interview-single__qa-answer > p:last-child {
    margin-bottom: 0;
}
.p-interview-single__qa-item .p-image {
    margin: var(--space-lg) auto;
    max-width: 360px;
    aspect-ratio: 360 / 240;
    border-radius: var(--radius-sm);
    overflow: hidden;
}
.p-interview-single__qa-item .p-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* 前後・一覧ナビ */
.p-interview-single__nav {
    display: flex;
    justify-content: center;
    align-items: flex-start;
    gap: 33px;
    margin-top: var(--space-4xl);
}
.p-interview-single__nav > div {
    flex-shrink: 0;
}
.p-interview-single__nav a {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 60px;
    padding: 0 var(--space-2xl);
    font-size: var(--fz-sm);
    font-weight: 700;
    color: var(--color-primary);
    background-color: var(--color-white);
    border: 1px solid var(--color-primary);
    border-radius: var(--radius-card);
    line-height: 1.7;
}
.p-interview-single__nav-prev,
.p-interview-single__nav-next {
    min-width: 173px;
}
.p-interview-single__nav-back {
    min-width: 239px;
}
.p-interview-single__nav-prev::before,
.p-interview-single__nav-next::after {
    content: "";
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 24px;
    height: 24px;
    background: url('../images/icons/icon_arrow_right.svg') no-repeat center / contain;
}
.p-interview-single__nav-prev::before {
    left: 8px;
    transform: translateY(-50%) scaleX(-1);
}
.p-interview-single__nav-next::after {
    right: 8px;
}

/* ===================================================
   レスポンシブ — タブレット (601-1024px)
   =================================================== */
@media screen and (max-width: 1024px) {
    .p-interview-archive > .l-page-content {
        padding-top: var(--space-4xl);
        padding-bottom: var(--space-4xl);
    }
    .p-interview-archive__partner-types {
        gap: var(--space-md);
    }
    .p-interview-archive__partner-types > div {
        padding: 12px var(--space-md);
    }
    .p-interview-archive__list {
        grid-template-columns: repeat(2, 1fr);
        gap: var(--space-md);
    }
    .p-interview-single > .l-page-content {
        padding-top: var(--space-xl);
        padding-bottom: var(--space-4xl);
    }
    .p-interview-single__company {
        gap: var(--space-lg);
    }
    .p-interview-single__company .p-image {
        flex-basis: 40%;
    }
    .p-interview-single__qa > h2 {
        font-size: var(--fz-2xl);
    }
    .p-interview-single__qa-question {
        font-size: var(--fz-xl);
    }
}

/* ===================================================
   レスポンシブ — スマートフォン (600px以下)
   =================================================== */
@media screen and (max-width: 600px) {
    .p-interview-archive > .l-page-content {
        padding-top: var(--space-3xl);
        padding-bottom: var(--space-3xl);
    }
    .p-interview-archive__partner-types {
        flex-direction: column;
        gap: var(--space-sm);
        margin-top: var(--space-lg);
    }
    .p-interview-archive__list {
        grid-template-columns: 1fr;
        gap: var(--space-md);
    }
    .p-interview-archive__card > a {
        padding: var(--space-md);
    }
    .p-interview-archive__pager > ul > li > a,
    .p-interview-archive__pager > ul > li > span {
        width: 36px;
        height: 36px;
        font-size: var(--fz-sm);
    }

    .p-interview-single > .l-page-content {
        padding-top: var(--space-lg);
        padding-bottom: var(--space-3xl);
    }
    .p-interview-single__company {
        flex-direction: column;
        gap: 0;
    }
    .p-interview-single__company .p-image {
        flex: none;
        width: 100%;
    }
    .p-interview-single__company-info {
        padding: var(--space-md);
    }
    .p-interview-single__company-heading > p {
        font-size: var(--fz-lg);
    }
    .p-interview-single__company-body > p:not(.p-interview-single__company-name) {
        flex-direction: column;
        gap: var(--space-xs);
    }
    .p-interview-single__company-body > p > span {
        align-self: flex-start;
    }
    .p-interview-single__intro {
        padding: var(--space-md);
    }
    .p-interview-single__subtitle {
        font-size: var(--fz-lg);
    }
    .p-interview-single__qa > h2 {
        font-size: var(--fz-xl);
    }
    .p-interview-single__qa-question {
        font-size: var(--fz-lg);
    }
    .p-interview-single__qa-answer {
        font-size: var(--fz-sm);
    }
    .p-interview-single__qa-closing {
        font-size: var(--fz-base);
    }
    .p-interview-single__nav {
        grid-template-columns: 1fr;
        gap: var(--space-sm);
        text-align: center;
    }
    .p-interview-single__nav > div:first-child,
    .p-interview-single__nav > div:last-child {
        text-align: center;
    }
}


/* ============================================================
   [SOURCE] page-voice.css
   ============================================================ */
/* ===================================================
   page-voice.css — お客様の声 (CPT: voice)
   =================================================== */

/* ---------------------------------------------------
   archive-voice（一覧）
   --------------------------------------------------- */
.p-voice-archive {
    display: block;
}
.p-voice-archive > .l-page-content {
    padding-top: var(--space-5xl);
    padding-bottom: var(--space-5xl);
}

/* ----- 絞り込みフォーム（デザイン確認のため一旦表示中。リリース時は display:none に戻す） ----- */
.p-voice-archive__filter {
    display: none;
    background: var(--color-bg-nav);
    border-radius: var(--radius-card);
    padding: var(--space-2xl) var(--space-xl);
    margin-bottom: var(--space-3xl);
}
.p-voice-archive__filter > h2 {
    text-align: center;
    font-family: var(--font-base);
    font-size: var(--fz-2xl);
    font-weight: 700;
    color: var(--color-text);
    line-height: 1.5;
    margin-bottom: var(--space-lg);
}
.p-voice-archive__filter > form {
    background: var(--color-white);
    border-radius: var(--radius-card);
    padding: var(--space-xl) var(--space-2xl);
}
.p-voice-archive__filter > form > section {
    margin-bottom: var(--space-lg);
}
.p-voice-archive__filter > form > section:last-of-type {
    margin-bottom: 0;
}
.p-voice-archive__filter > form > section > h3 {
    text-align: center;
    font-family: var(--font-base);
    font-size: var(--fz-base);
    font-weight: 400;
    color: var(--color-text);
    line-height: 1.5;
    margin-bottom: var(--space-md);
}
.p-voice-archive__filter > form > section > div {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-sm) var(--space-md);
}
.p-voice-archive__filter > form > section > div > label {
    display: inline-flex;
    align-items: center;
    gap: var(--space-xs);
    min-width: 80px;
    font-size: var(--fz-sm);
    color: var(--color-text);
    line-height: 1.5;
    cursor: pointer;
}
.p-voice-archive__filter > form > section > div > label > input {
    accent-color: var(--color-primary);
    cursor: pointer;
}
.p-voice-archive__filter-actions {
    display: flex;
    gap: var(--space-md);
    justify-content: center;
    margin-top: var(--space-lg);
}
.p-voice-archive__filter-actions > a,
.p-voice-archive__filter-actions > button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 197px;
    height: 57px;
    font-family: var(--font-base);
    font-size: var(--fz-base);
    font-weight: 700;
    color: var(--color-primary);
    background: var(--color-white);
    border: 1px solid var(--color-primary);
    border-radius: var(--radius-sm);
    text-decoration: none;
    cursor: pointer;
    transition: var(--transition-base);
}
.p-voice-archive__filter-actions > button {
    color: var(--color-white);
    background: var(--color-primary);
}
.p-voice-archive__filter-actions > a:hover {
    background: var(--color-bg-nav);
    opacity: 1;
}
.p-voice-archive__filter-actions > button:hover {
    background: var(--color-primary-dark);
}

/* ----- カードリスト ----- */
.p-voice-archive__list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-2xl) var(--space-lg);
    margin-bottom: var(--space-3xl);
}
.p-voice-archive__card {
    background: var(--color-white);
    border: 1px solid var(--color-border-light);
    border-radius: var(--radius-card);
    padding: var(--space-xl);
    transition: box-shadow var(--transition-base), transform var(--transition-base);
}
.p-voice-archive__card:hover {
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.08);
    transform: translateY(-2px);
}

/* カード内：タイトル → 日付+タグ → 画像 */
.p-voice-archive__card > h2 {
    margin-bottom: var(--space-md);
    font-family: var(--font-base);
    font-size: var(--fz-base);
    font-weight: 700;
    line-height: 1.5;
}
.p-voice-archive__card > h2 > a {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    color: var(--color-text);
    text-decoration: none;
    transition: var(--transition-base);
}
.p-voice-archive__card > h2 > a:hover {
    color: var(--color-primary);
    opacity: 1;
}
.p-voice-archive__card > div {
    display: flex;
    align-items: center;
    gap: var(--space-md);
    margin-bottom: var(--space-md);
}
.p-voice-archive__card > div > p {
    font-size: var(--fz-sm);
    color: var(--color-text);
    line-height: 1.5;
}
.p-voice-archive__card > div > div {
    display: flex;
    gap: var(--space-xs);
}
.p-voice-archive__card > div > div > a {
    display: inline-flex;
    align-items: center;
    height: 22px;
    padding: 0 var(--space-sm);
    font-size: var(--fz-xs);
    color: var(--color-primary);
    background: var(--color-white);
    border: 1px solid var(--color-primary);
    border-radius: 11px;
    line-height: 1;
    text-decoration: none;
    transition: var(--transition-base);
}
.p-voice-archive__card > div > div > a:hover {
    background: var(--color-bg-nav);
    opacity: 1;
}
.p-voice-archive__card > a {
    display: block;
    text-decoration: none;
}
.p-voice-archive__card > a > .p-image {
    aspect-ratio: 4 / 3;
    background: var(--color-bg-nav);
    border-radius: var(--radius-sm);
    overflow: hidden;
}
.p-voice-archive__card > a > .p-image > img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
}

/* ----- ページネーション ----- */
.p-voice-archive__pager {
    margin-top: var(--space-3xl);
}
.p-voice-archive__pager > ul {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 6px;
    list-style: none;
    margin: 0;
    padding: 0;
}
.p-voice-archive__pager > ul > li > a,
.p-voice-archive__pager > ul > li > span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    font-size: var(--fz-base);
    font-weight: 700;
    color: var(--color-text);
    border-radius: var(--radius-sm);
    text-decoration: none;
    transition: var(--transition-base);
}
.p-voice-archive__pager > ul > li > a:hover {
    background: var(--color-bg-nav);
    color: var(--color-primary);
    opacity: 1;
}
.p-voice-archive__pager > ul > li > .current {
    background: var(--color-primary);
    color: var(--color-white);
}
/* 境界（1ページ目の前へ / 最終ページの次へ）：薄めて無効表示 */
.p-voice-archive__pager > ul > li > .is-disabled {
    opacity: 0.3;
    cursor: default;
    pointer-events: none;
}
.p-voice-archive__pager-arrow {
    display: inline-block;
    width: 24px;
    height: 24px;
    background: url('../images/icons/icon_arrow_right.svg') no-repeat center / contain;
}
.p-voice-archive__pager-arrow--prev {
    transform: scaleX(-1);
}

/* ----- 0件時 ----- */
.p-voice-archive__empty {
    text-align: center;
    padding: var(--space-5xl) 0;
}
.p-voice-archive__empty > p {
    color: var(--color-text-gray);
    font-size: var(--fz-base);
}

/* ---------------------------------------------------
   single-voice（詳細）
   --------------------------------------------------- */
.p-voice-single {
    display: block;
}

/* 詳細ページのヘッダー帯：interview と同じ薄青グラデに上書き */
.p-voice-single .l-page-hero {
    height: auto;
    padding-top: var(--space-md);
    padding-bottom: var(--space-2xl);
    background: linear-gradient(to bottom, #e9faff 50%, #fcfeff 100%);
    color: var(--color-text);
    overflow: visible;
}
.p-voice-single .l-page-hero::after {
    display: none;
}
.p-voice-single .l-page-hero .breadcrumb {
    color: var(--color-text);
}
.p-voice-single .l-page-hero .breadcrumb a {
    color: var(--color-primary);
}
.p-voice-single .l-page-hero .breadcrumb li + li::before {
    color: var(--color-text-gray);
}
.p-voice-single .l-page-hero__inner {
    padding: 24px var(--space-md) 0;
}
.p-voice-single .l-page-hero__title {
    color: var(--color-text);
    margin-bottom: 12px;
    font-weight: 400;
    font-family: var(--font-heading);
}

.p-voice-single > .l-page-content {
    max-width: 960px;
    margin: 0 auto;
    padding: var(--space-5xl) var(--space-md);
}

/* ----- 日付 + タグ（H1直下、FV帯内、左寄せ） ----- */
.p-voice-single__meta {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: var(--space-md);
}
.p-voice-single__meta > p {
    font-size: var(--fz-sm);
    color: var(--color-text);
    line-height: 1.5;
}
.p-voice-single__meta > div {
    display: flex;
    gap: var(--space-xs);
}
.p-voice-single__meta > div > a {
    display: inline-flex;
    align-items: center;
    height: 24px;
    padding: 0 var(--space-md);
    font-size: var(--fz-xs);
    color: var(--color-primary);
    background: var(--color-white);
    border: 1px solid var(--color-primary);
    border-radius: 12px;
    line-height: 1;
    text-decoration: none;
    transition: var(--transition-base);
}
.p-voice-single__meta > div > a:hover {
    background: var(--color-bg-nav);
    opacity: 1;
}

/* ----- メディアエリア（4分岐） ----- */
.p-voice-single__media {
    display: flex;
    justify-content: center;
    gap: var(--space-2xl);
    margin-bottom: var(--space-3xl);
}
/* 単体表示（動画のみ or アンケのみ） */
.p-voice-single__media > div {
    flex: 0 1 640px;
}
/* 両方表示 → 2カラム */
.p-voice-single__media--both > div {
    flex: 1 1 460px;
    max-width: 460px;
}
.p-voice-single__media > div > button {
    display: block;
    width: 100%;
    background: none;
    border: none;
    padding: 0;
    margin: 0;
    color: inherit;
    font: inherit;
    cursor: pointer;
}
.p-voice-single__media > div > button > .p-image {
    aspect-ratio: 4 / 3;
    background: var(--color-bg-nav);
    border-radius: var(--radius-sm);
    overflow: hidden;
    margin-bottom: var(--space-2xl);
    position: relative;
    transition: opacity var(--transition-base);
}
.p-voice-single__media > div > button:hover > .p-image {
    opacity: 0.85;
}
.p-voice-single__media > div > button > .p-image > img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
}
.p-voice-single__media > div > button > span {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 280px;
    height: 56px;
    margin: 0 auto;
    font-size: var(--fz-base);
    font-weight: 700;
    color: var(--color-primary);
    background: var(--color-bg-btn);
    border: 1px solid var(--color-border-blue);
    border-radius: var(--radius-sm);
    box-shadow: var(--shadow-btn);
    line-height: 1.8;
    transition: transform var(--transition-base);
}
.p-voice-single__media > div > button:hover > span {
    transform: translateY(-1px);
}

/* ----- 本文（Gutenberg ブロック） ----- */
.p-voice-single__body {
    color: var(--color-text);
    font-size: var(--fz-base);
    line-height: 1.8;
    margin-bottom: var(--space-3xl);
}
.p-voice-single__body > * {
    margin-bottom: var(--space-xl);
}
.p-voice-single__body > *:last-child {
    margin-bottom: 0;
}
.p-voice-single__body > h2 {
    margin-top: var(--space-2xl);
    padding: var(--space-sm);
    font-family: var(--font-base);
    font-size: var(--fz-3xl);
    font-weight: 700;
    color: var(--color-primary);
    line-height: 1.5;
    border-top: 1px solid var(--color-primary);
    border-bottom: 1px solid var(--color-primary);
}
.p-voice-single__body > h3 {
    margin-top: var(--space-xl);
    padding-left: 24px;
    position: relative;
    font-family: var(--font-base);
    font-size: var(--fz-2xl);
    font-weight: 700;
    color: var(--color-primary);
    line-height: 1.5;
}
.p-voice-single__body > h3::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.7em;
    width: 12px;
    height: 2px;
    background: var(--color-primary);
}
.p-voice-single__body > p,
.p-voice-single__body > ul,
.p-voice-single__body > ol {
    font-size: var(--fz-base);
    color: var(--color-text);
    line-height: 1.8;
}

/* テーブル（Gutenberg のテーブルブロック）
   1列目を見出し列扱いにして薄青背景 */
.p-voice-single__body .wp-block-table {
    margin: var(--space-xl) 0;
}
.p-voice-single__body .wp-block-table > table {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--fz-sm);
}
.p-voice-single__body .wp-block-table > table td,
.p-voice-single__body .wp-block-table > table th {
    padding: var(--space-md);
    border: 1px solid var(--color-border-light);
    color: var(--color-text);
    line-height: 1.8;
    text-align: left;
    vertical-align: middle;
}
.p-voice-single__body .wp-block-table > table tr > td:first-child,
.p-voice-single__body .wp-block-table > table tr > th:first-child {
    width: 240px;
    background: var(--color-bg-nav);
    font-weight: 700;
    color: var(--color-text);
    font-size: var(--fz-base);
}

/* ----- 隣接記事ナビ（前 / 一覧 / 次） ----- */
.p-voice-single__nav {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    gap: var(--space-xl);
    align-items: center;
    margin-top: var(--space-3xl);
}
.p-voice-single__nav > div {
    display: flex;
}
.p-voice-single__nav > div:first-child {
    justify-content: flex-end;
}
.p-voice-single__nav > div:last-child {
    justify-content: flex-start;
}
.p-voice-single__nav > div > a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 60px;
    padding: 0 var(--space-2xl);
    font-size: var(--fz-sm);
    font-weight: 700;
    color: var(--color-primary);
    background: var(--color-white);
    border: 1px solid var(--color-primary);
    border-radius: var(--radius-card);
    text-decoration: none;
    white-space: nowrap;
    transition: var(--transition-base);
}
.p-voice-single__nav > div > a:hover {
    background: var(--color-bg-nav);
    opacity: 1;
}
/* 前/次の矢印（一覧へは矢印なし） */
.p-voice-single__nav > div:first-child > a {
    padding-left: var(--space-md);
}
.p-voice-single__nav > div:first-child > a::before {
    content: "";
    width: 24px;
    height: 24px;
    margin-right: var(--space-xs);
    background: url('../images/icons/icon_arrow_right.svg') no-repeat center / contain;
    transform: scaleX(-1);
    flex-shrink: 0;
}
.p-voice-single__nav > div:last-child > a {
    padding-right: var(--space-md);
}
.p-voice-single__nav > div:last-child > a::after {
    content: "";
    width: 24px;
    height: 24px;
    margin-left: var(--space-xs);
    background: url('../images/icons/icon_arrow_right.svg') no-repeat center / contain;
    flex-shrink: 0;
}

/* ---------------------------------------------------
   c-modal — 基底は component.css に集約済み（重複排除）。
   ここ（旧 page-voice.css）にあった基底定義は削除。
   voice 固有の .c-modal--privacy 等の修飾子は各ソース側に残置。
   --------------------------------------------------- */

/* ---------------------------------------------------
   レスポンシブ：タブレット (601-1024px)
   --------------------------------------------------- */
@media screen and (max-width: 1024px) {
    .p-voice-archive__list {
        grid-template-columns: repeat(2, 1fr);
    }
    .p-voice-single__media {
        flex-direction: column;
        align-items: center;
    }
    .p-voice-single__media > div,
    .p-voice-single__media--both > div {
        flex: 0 1 auto;
        width: 100%;
        max-width: 640px;
    }
    .p-voice-single__nav {
        gap: var(--space-md);
    }
    /* 前/次ボタンは矢印のみに収縮（テキスト非表示） */
    .p-voice-single__nav > div:first-child > a > span,
    .p-voice-single__nav > div:last-child > a > span {
        display: none;
    }
    .p-voice-single__nav > div:first-child > a,
    .p-voice-single__nav > div:last-child > a {
        padding: 0 var(--space-md);
    }
    .p-voice-single__nav > div:first-child > a::before {
        margin-right: 0;
    }
    .p-voice-single__nav > div:last-child > a::after {
        margin-left: 0;
    }
}

/* ---------------------------------------------------
   レスポンシブ：SP (≤600px)
   --------------------------------------------------- */
@media screen and (max-width: 600px) {
    .p-voice-archive > .l-page-content {
        padding: var(--space-2xl) var(--space-md);
    }
    .p-voice-archive__list {
        grid-template-columns: 1fr;
    }

    .p-voice-archive__filter,
    .p-voice-archive__filter > form {
        padding: 24px;
    }

    /* SP絞り込み: 2列グリッド・常時展開・中央寄せ */
    .p-voice-archive__filter > form > section {
        padding-bottom: var(--space-lg);
        border-bottom: 1px solid var(--color-border-gray);
    }
    .p-voice-archive__filter > form > section:last-of-type {
        padding-bottom: 0;
        border-bottom: none;
    }
    .p-voice-archive__filter > form > section > div {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: var(--space-sm) var(--space-md);
    }
    .p-voice-archive__filter-actions {
        flex-direction: column;
        align-items: stretch;
    }
    .p-voice-archive__filter-actions > a,
    .p-voice-archive__filter-actions > button {
        width: 100%;
    }

    /* single SP */
    .p-voice-single > .l-page-content {
        padding: var(--space-2xl) var(--space-md);
    }
    .p-voice-single__media > div > button > span {
        width: 100%;
        max-width: 280px;
    }
    .p-voice-single .l-page-hero__inner {
        padding-top: 16px;
    }
    .p-voice-single__body > h2 {
        font-size: var(--fz-2xl);
    }
    .p-voice-single__body > h3 {
        font-size: var(--fz-xl);
    }
    .p-voice-single__body .wp-block-table > table tr {
        display: flex;
        flex-direction: column;
    }
    .p-voice-single__body .wp-block-table > table tr > td:first-child,
    .p-voice-single__body .wp-block-table > table tr > th:first-child {
        width: 100%;
    }
    .p-voice-single__nav {
        gap: var(--space-md);
    }
    .p-voice-single__nav > div:first-child,
    .p-voice-single__nav > div:last-child {
        justify-content: center;
    }
}


/* ============================================================
   [SOURCE] page-news.css
   ============================================================ */
/* ===================================================
   page-news.css — 新着情報アーカイブ (home.php / category)
   =================================================== */

.p-news-archive {
    display: block;
}
.p-news-archive > .l-page-content {
    padding-top: var(--space-5xl);
    padding-bottom: var(--space-5xl);
}

/* ----- カテゴリタブ ----- */
.p-news-archive__tabs {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: var(--space-2xl);
}
.p-news-archive__tabs > a {
    width: 110px;
    padding: 2px 8px;
    text-align: center;
    font-size: var(--fz-xs);
    color: var(--color-primary);
    border: 1px solid var(--color-primary);
    border-radius: var(--radius-md);
    line-height: 1.8;
    text-decoration: none;
    transition: all var(--transition-base);
}
.p-news-archive__tabs > a:hover {
    background-color: var(--color-primary);
    color: var(--color-white);
    opacity: 1;
}
.p-news-archive__tabs > a.is-active {
    background-color: var(--color-primary);
    color: var(--color-white);
}

/* ----- 投稿リスト ----- */
.p-news-archive__list {
    margin-bottom: var(--space-3xl);
    border-top: 1px solid var(--color-border-dark);
}
.p-news-archive__list > div {
    display: flex;
    align-items: center;
    gap: var(--space-lg);
    padding: 16px 24px;
    border-bottom: 1px solid var(--color-border-dark);
}
.p-news-archive__list dt {
    display: flex;
    align-items: center;
    gap: var(--space-lg);
    flex-shrink: 0;
}
.p-news-archive__list dt time {
    font-size: var(--fz-base);
    color: var(--color-text);
    line-height: 1.8;
}
.p-news-archive__list dt span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 110px;
    padding: 2px 8px;
    font-size: var(--fz-xs);
    color: var(--color-primary);
    border: 1px solid var(--color-primary);
    border-radius: var(--radius-md);
    line-height: 1.8;
}
.p-news-archive__list dd {
    font-size: var(--fz-base);
    line-height: 1.8;
}
.p-news-archive__list dd a {
    color: var(--color-text);
    transition: color var(--transition-base);
}
.p-news-archive__list dd a:hover {
    opacity: 1;
    color: var(--color-primary);
}

/* ページネーションは p-voice-archive__pager クラスを流用（page-voice.css） */

/* ----- 0件時 ----- */
.p-news-archive__empty {
    text-align: center;
    padding: var(--space-5xl) 0;
}
.p-news-archive__empty > p {
    color: var(--color-text-gray);
    font-size: var(--fz-base);
}

/* ----- 単体ページ：日付・NEW表示（h1直下） ----- */
.updateDate {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    margin-top: var(--space-sm);
    list-style: none;
    padding: 0;
}
.updateDate > li {
    list-style: none;
    font-size: var(--fz-xs);
    color: var(--color-text);
}
.updateDate > li > span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 2px 8px;
    font-size: var(--fz-xs);
    font-weight: 700;
    color: var(--color-white);
    background: var(--color-accent);
    border-radius: var(--radius-sm);
    line-height: 1.4;
}

/* ===================================================
   タブレット (max-width: 1024px)
   =================================================== */
@media screen and (max-width: 1024px) {
    .p-news-archive > .l-page-content {
        padding: var(--space-3xl) var(--space-md);
    }
}

/* ===================================================
   SP (max-width: 600px)
   =================================================== */
@media screen and (max-width: 600px) {
    .p-news-archive > .l-page-content {
        padding: var(--space-2xl) var(--space-md);
    }
    .p-news-archive__list > div {
        flex-direction: column;
        align-items: flex-start;
        gap: var(--space-xs);
        padding: var(--space-md) var(--space-sm);
    }
    .p-news-archive__list dt {
        gap: var(--space-md);
    }
}
