/* ---------------- Recruit Section Styles ---------------- */
/* 求人一覧ページのスタイル */

/* セクション全体 */
.job-card {
    display: flex;
    flex-direction: column;
}

.job-card__wrapper {
    border-radius: var(--radius-lg);
    overflow: hidden;
    box-shadow: var(--shadow-sm);
    transition: box-shadow var(--dur-normal) var(--ease-standard);
}

.job-card__wrapper:hover {
    box-shadow: var(--shadow-md);
}

.job-card__link {
    display: flex;
    flex-direction: column;
    text-decoration: none;
    color: inherit;
}

/* フィルター共通スタイルはcomponents.cssで管理 */
/* Grid配置: 求人フィルター専用 */
.filter__inner {
    display: grid;
    grid-template-columns: repeat(2, auto);
    grid-template-rows: repeat(5, auto);
}

.job-filter__employment,
.job-filter__business,
.job-filter__qualification {
    grid-column: 1 / 2;
}

.job-filter__employment {
    grid-row: 1 / 2;
}

.job-filter__business {
    grid-row: 2 / 3;
}

.job-filter__qualification {
    grid-row: 3 / 4;
}

.filter__btn--search {
    grid-row: 4 / 5;
    margin-block-start: var(--space-xxl);
}

.filter__btn--clear {
    grid-row: 5 / 6;
}

/* 求人カード一覧 */
.job-list {
    padding: 2rem 1rem;
}

.job-list__inner {
    max-width: var(--contents-max-width);
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 3rem;
    align-items: center;
}

.job-list__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2rem;
    width: 100%;
}

.job-list__grid > p {
    margin-inline: auto;
    margin-block-end: var(--space-xl);
}

/* 求人カード */

.job-card__image {
    aspect-ratio: 263 / 148;
    background: #d9d9d9;
    border-radius: var(--radius-lg) var(--radius-lg) 0 0;
    overflow: hidden;
}

.job-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.job-card__body {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    padding: 1.5rem;
    background: var(--bg-white);
    border: 1px solid var(--border-gray);
    border-top: none;
    border-radius: 0 0 var(--radius-lg) var(--radius-lg);
}

.job-card__info {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.job-card__title {
    font-size: var(--font-base);
    font-weight: var(--fw-bold);
    line-height: var(--lh-180);
    letter-spacing: 0.02em;
    margin: 0;
}

.job-card__location {
    font-size: var(--font-sm);
    font-weight: var(--fw-medium);
    line-height: var(--lh-180);
    letter-spacing: 0.02em;
}

.job-card__tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.job-card__tag {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.25rem 1rem;
    border: 1px solid var(--border-gray);
    border-radius: 90px;
    background: var(--bg-white);
    font-size: var(--font-sm);
    font-weight: var(--fw-medium);
    line-height: var(--lh-180);
    letter-spacing: 0.02em;
}

.job-list__empty {
    text-align: center;
    color: var(--text-secondary);
    font-size: var(--font-base);
    line-height: var(--lh-180);
    width: 100%;
}

/* microCMS連携用: ローディング・エラー状態 */
.job-list__loading,
.job-list__error {
    text-align: center;
    font-size: var(--font-base);
    line-height: var(--lh-180);
    width: 100%;
    padding: 2rem;
}

.job-list__loading {
    color: var(--text-secondary);
}

.job-list__error {
    color: var(--color-error, #d32f2f);
}

.job-list .btn__pill-base {
    margin-inline: auto;
    text-align: center;
}

.job-section.section__bg-cool-white .job-list__inner + .btn__pill-base {
    margin-block-start: var(--space-xxl);
}

.section__bg-cool-white .job-list .btn__pill-base + .btn__pill-base {
    margin-block-start: var(--space-xxl);
}

/* PC向けスタイル */
@media (min-width: 960px) {
    .job-section {
        gap: 0;
    }

    .job-section.section__bg-cool-white {
        padding-block-start: calc(var(--space-xl) * 3);
        padding-block-end: 0;
    }
    .job-section.section__bg-cool-white .job-list {
        padding-block-start: calc(var(--space-md) * 3);
    }

    .job-filter {
        margin-block-start: 3rem;
        padding: 3.75rem 5rem;
    }

    .job-filter__inner {
        grid-template-rows: repeat(4, auto);
    }

    .job-filter__employment,
    .job-filter__business,
    .job-filter__qualification {
        grid-column: 1 / 3;
    }

    .filter__btn--clear {
        grid-row: 4 / 5;
        order: 5;
    }

    .filter__btn--search {
        grid-row: 5 / 6;
        order: 4;

        margin-block-start: var(--space-xl);
    }

    .job-filter__row {
        flex-direction: row;
        align-items: flex-start;
        gap: 3rem;
    }
    .job-filter__label {
        font-size: var(--font-sm);
        min-width: 5rem;
    }

    .job-filter__options {
        gap: var(--gap-sm);
        flex: 1;
    }

    .job-filter__tag {
        font-size: var(--font-xs);
        padding: 0.4rem 0.8rem;
        line-height: var(--lh-150);
    }

    .filter__btn--clear {
        grid-column: 1 / 2;
        grid-row: 4 / 5;
    }

    .filter__btn--search {
        grid-column: 2 / 3;
        grid-row: 4 / 5;
    }

    .job-list__grid > p {
        grid-column: 2 / 3;
    }

    .job-list {
        padding: 5rem;
    }

    .job-list__inner {
        gap: 5rem;
    }

    .job-list__grid {
        grid-template-columns: repeat(3, 1fr);
        gap: 2.5rem 2.5rem;
    }

    .job-card__body {
        padding: 1.5rem;
        gap: 2rem;
    }

    .job-card__title {
        font-size: var(--font-base);
    }

    .job-card__location {
        font-size: var(--font-sm);
    }
    .job-card__tag {
        gap: var(--gap-xs);
        padding: 0.4rem 0.8rem;
        font-size: var(--font-xs);
        line-height: var(--lh-150);
    }
}

/* ============================================================
   求人詳細ページ（Job Detail Page）スタイル
   テンプレートとして再利用可能な堅牢な設計
   ============================================================ */

/* --- 求人詳細カード全体 --- */
.job-detail {
    background: var(--bg-white);
    overflow: hidden;
    border-top: 1px solid var(--border-gray);
    border-bottom: 1px solid var(--border-gray);
}
.last-updated {
    font-size: var(--font-xs);
    color: var(--text-secondary);
    text-align: right;
    padding-inline-end: var(--space-lg);
}
/* --- ヘッダーセクション --- */
.job-detail__header {
    background: var(--bg-navy);
    color: var(--text-white);
    padding: var(--space-xl);
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--gap-md);
}

.job-detail__employment-type {
    display: inline-flex;
    align-items: center;
    padding: var(--space-xs) var(--space-md);
    border-radius: var(--radius-sm);
    font-size: var(--font-sm);
    font-weight: var(--fw-bold);
    background: var(--bg-white);
    color: var(--text-navy);
}

.job-detail__title {
    font-size: var(--font-xl);
    font-weight: var(--fw-bold);
    line-height: var(--lh-150);
}

.job-detail__location {
    display: flex;
    align-items: center;
    gap: var(--space-md);
    font-size: var(--font-sm);
    color: var(--text-white);
}

.job-detail__location .material-symbols-rounded {
    font-size: 1.25rem;
}

.job-detail__location-access {
    display: inline-block;
}
.job-detail__location-access::before {
    content: "/";
    display: inline-block;
    height: 1lh;
    padding-inline-end: var(--space-md);
}

.job-detail__location-item {
    display: flex;
    flex-direction: column;
    gap: var(--space-xs);
}

.job-detail__hero-wrapper {
    display: flex;
    flex-direction: column;
    gap: var(--gap-xl);
}

/* --- モバイル固定CTA --- */
.job-detail__sticky-cta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: var(--bg-off-white);
    border-bottom: 1px solid var(--border-gray);
    padding: var(--space-md);
    position: sticky;
    top: 0;
    z-index: 10;
    box-shadow: var(--shadow-sm);
}

.job-detail__sticky-salary-label {
    display: block;
    font-size: var(--font-xs);
    font-weight: var(--fw-bold);
    color: var(--text-secondary);
}

.job-detail__sticky-salary-value {
    font-size: var(--font-lg);
    font-weight: var(--fw-bold);
    color: var(--text-primary);
}

.job-detail__sticky-btn {
    display: inline-flex;
    align-items: center;
    padding: var(--space-sm) var(--space-lg);
    background: var(--bg-navy);
    color: var(--text-white);
    font-size: var(--font-sm);
    font-weight: var(--fw-bold);
    border-radius: var(--radius-round);
    text-decoration: none;
    transition: background var(--dur-fast) var(--ease-standard);
}

.job-detail__sticky-btn:hover {
    background: var(--bg-blue);
}

/* --- コンテンツエリア --- */
.job-detail__content {
    padding: var(--space-xl) var(--space-xl) var(--space-section);
    display: flex;
    flex-direction: column;
    gap: var(--space-section);
}

/* --- 募集ポイントセクション --- */
.job-detail__highlights {
    display: grid;
    gap: var(--space-lg);
    background: var(--bg-off-white);
    border-radius: var(--radius-lg);
    padding: var(--space-lg);
    border: 1px solid var(--border-gray);
    width: 100%;
    box-sizing: border-box;
}

.job-detail__highlights-content {
    width: 100%;
    min-width: 0;
}

.job-detail__highlights-title {
    font-size: var(--font-lg);
    font-weight: var(--fw-bold);
    margin: 0;
    width: 100%;
}

.job-detail__highlights-list {
    display: flex;
    flex-direction: column;
    gap: var(--space-sm);
    list-style: none;
    margin-block-start: var(--space-md);
    margin-inline: 0;
    padding: 0;
    width: 100%;
}

.job-detail__highlights-item {
    display: flex;
    align-items: flex-start;
    gap: var(--space-sm);
    font-size: var(--font-base);
    font-weight: var(--fw-medium);
    line-height: var(--lh-180);
}

.job-detail__highlights-item .material-symbols-rounded {
    color: var(--text-navy);
    font-size: 1.5rem;
    flex-shrink: 0;
    margin-block-start: 0.1em;
}

/* --- 給与ハイライト --- */
.job-detail__salary-highlight {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    padding-block-start: var(--space-lg);
    border-top: 1px solid var(--border-gray);
    width: 100%;
    min-width: 0;
}

.job-detail__salary-label {
    font-size: var(--font-base);
    font-weight: var(--fw-bold);
    margin-bottom: var(--space-xs);
}

.job-detail__salary-value {
    font-size: var(--font-title);
    font-weight: var(--fw-black);
    color: var(--text-primary);
    line-height: 1;
}

.job-detail__salary-value span {
    font-size: var(--font-lg);
    font-weight: var(--fw-bold);
    margin-left: var(--space-xs);
}

.job-detail__salary-note {
    font-size: var(--font-sm);
    color: var(--text-secondary);
    margin-block-start: var(--space-sm);
}

/* --- メインCTAバナー --- */
.job-detail__cta-banner {
    background: var(--bg-pale-blue);
    border-radius: var(--radius-lg);
    padding: var(--space-xl);
    text-align: center;
    position: relative;
    overflow: hidden;
    width: 100%;
    box-sizing: border-box;
}

.job-detail__cta-title {
    color: var(--text-navy);
    font-size: var(--font-xl);
    font-weight: var(--fw-bold);
    line-height: var(--lh-150);
    margin: 0 0 var(--space-sm);
}

.job-detail__cta-desc {
    font-size: var(--font-sm);
    margin-bottom: var(--space-lg);
    line-height: var(--lh-180);
}

.job-detail__cta-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-sm);
    padding: var(--space-md) var(--space-xl);
    background: var(--bg-white);
    color: var(--text-primary);
    font-size: var(--font-base);
    font-weight: var(--fw-bold);
    border-radius: var(--radius-round);
    text-decoration: none;
    transition: all var(--dur-fast) var(--ease-standard);
}

.job-detail__cta-btn--entry {
    background: var(--bg-navy);
    color: var(--text-white);
}

.job-detail__cta-btn:hover {
    color: var(--text-navy);
    transform: translateY(-2px);
}
.job-detail__cta-btn--entry:hover {
    background: var(--bg-blue);
    color: var(--text-white);
}

.job-detail__cta-btn .material-symbols-rounded {
    font-size: 1.5rem;
}
.job-detail__cta-btn + .job-detail__cta-btn {
    margin-block-start: var(--space-md);
}

/* --- セクション共通 --- */
.job-detail__section {
    display: flex;
    flex-direction: column;
    gap: var(--space-lg);
    width: 100%;
}

.job-detail__section-header {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
}

.job-detail__section-header .material-symbols-rounded {
    font-size: 1.75rem;
    color: var(--text-primary);
}

.job-detail__section-title {
    font-size: var(--font-xxl);
    font-weight: var(--fw-bold);
    color: var(--text-primary);
    margin: 0;
}

.job-detail__section-body {
    font-size: var(--font-sm);
    color: var(--text-primary);
    line-height: var(--lh-180);
    width: 100%;
}

/* --- カードグリッド --- */
.job-detail__card-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-lg);
    width: 100%;
}

.job-detail__card {
    background: var(--bg-white);
    border: 1px solid var(--border-gray);
    border-radius: var(--radius-lg);
    padding: var(--space-lg);
    width: 100%;
    box-sizing: border-box;
    min-width: 0;
}

.job-detail__card-title {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    font-size: var(--font-base);
    font-weight: var(--fw-bold);
}

.job-detail__card-list {
    list-style: disc;
    margin: 0;
    padding-left: 1.5rem;
    display: flex;
    flex-direction: column;
    gap: var(--space-xs);
    margin-block-start: var(--space-sm);
}

.job-detail__card-list li {
    font-size: var(--font-sm);
}

/* --- タグ一覧 --- */
.job-detail__tags {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-sm);
    width: 100%;
    margin-block-start: var(--space-sm);
    list-style: none;
    margin: 0;
    padding: 0;
}

.job-detail__tag {
    display: inline-flex;
    align-items: center;
    padding: var(--space-sm) var(--space-md);
    background: var(--bg-off-white);
    border-radius: var(--radius-round);
    font-size: var(--font-sm);
    font-weight: var(--fw-medium);
}

/* --- 応募資格セクション --- */
.job-detail__requirements {
    background: var(--bg-off-white);
    border-radius: var(--radius-lg);
    padding: var(--space-lg);
    border: 1px solid var(--border-gray);
    width: 100%;
    box-sizing: border-box;
}

.job-detail__requirements-main {
    margin-bottom: var(--space-lg);
}

.job-detail__requirements-label {
    font-size: var(--font-sm);
    font-weight: var(--fw-bold);
    color: var(--text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: var(--space-sm);
}

.job-detail__requirements-title {
    font-size: var(--font-xxl);
    font-weight: var(--fw-bold);
    margin: 0 0 var(--space-sm);
}

.job-detail__requirements-desc {
    font-size: var(--font-base);
    line-height: var(--lh-180);
}

.job-detail__requirements-welcome {
    padding-block-start: var(--space-lg);
    border-top: 1px solid var(--border-gray);
}

.job-detail__qualification-tags {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-sm);
    margin-block-start: var(--space-md);
    width: 100%;
}

.job-detail__qualification-tag {
    display: inline-flex;
    padding: var(--space-sm) var(--space-md);
    background: var(--bg-white);
    border: 1px solid var(--border-gray);
    border-radius: var(--radius-md);
    font-size: var(--font-sm);
    color: var(--text-primary);
    box-shadow: var(--shadow-sm);
}

/* --- 募集要項テーブル --- */
.job-detail__table {
    border: 1px solid var(--border-gray);
    border-radius: var(--radius-md);
    overflow: hidden;
    width: 100%;
    box-sizing: border-box;
}

.job-detail__table-row {
    display: grid;
    grid-template-columns: 1fr;
    border-bottom: 1px solid var(--border-gray);
}

.job-detail__table-row:last-child {
    border-bottom: none;
}

.job-detail__table-header {
    background: var(--bg-off-white);
    padding: var(--space-sm) var(--space-md);
    font-weight: var(--fw-bold);
    color: var(--text-primary);
    font-size: var(--font-base);
}

.job-detail__table-data {
    padding: var(--space-md);
    background: var(--bg-white);
    color: var(--text-primary);
    font-size: var(--font-base);
    line-height: var(--lh-180);
}

.job-detail__table-main {
    font-size: var(--font-sm);
    font-weight: var(--fw-medium);
}

.job-detail__table-sub {
    font-size: var(--font-xs);
    color: var(--text-secondary);
}

.job-detail__table-link {
    display: inline-flex;
    align-items: center;
    gap: var(--space-xs);
    font-size: var(--font-sm);
    font-weight: var(--fw-bold);
    color: var(--text-link);
    text-decoration: none;
}

.job-detail__table-link:hover {
    text-decoration: underline;
}

.job-detail__table-link .material-symbols-rounded {
    font-size: 1.125rem;
}

.job-detail__map iframe {
    width: 100%;
    aspect-ratio: 4 / 3;
    border-radius: var(--radius-md);
    margin-block-start: var(--space-md);
    overflow: hidden;
}

/* --- 企業情報 --- */
.job-detail__company {
    background: var(--bg-white);
    border: 1px solid var(--border-gray);
    border-radius: var(--radius-md);
    padding: var(--space-lg);
    width: 100%;
    box-sizing: border-box;
}

.job-detail__company-title {
    font-size: var(--font-lg);
    font-weight: var(--fw-bold);
    margin: 0 0 var(--space-md);
}

.job-detail__company-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-md);
}

.job-detail__company-item {
    display: flex;
    flex-direction: column;
    gap: var(--space-xs);
}

.job-detail__company-label {
    font-size: var(--font-xs);
    color: var(--text-secondary);
}

.job-detail__company-value {
    font-size: var(--font-sm);
    font-weight: var(--fw-medium);
    color: var(--text-primary);
}

/* --- フッターCTA --- */
.job-detail__footer {
    background: var(--bg-off-white);
    padding: var(--space-xl) var(--space-xl);
    text-align: center;
    border-top: 1px solid var(--border-gray);
}

.job-detail__footer-title {
    font-size: var(--font-xl);
    font-weight: var(--fw-bold);
    color: var(--text-primary);
}

.job-detail__footer-desc {
    font-size: var(--font-base);
    color: var(--text-secondary);
}

.job-detail__footer-cta {
    max-width: 28rem;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: var(--space-md);
}

.job-detail__apply-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-sm);
    width: 100%;
    padding: var(--space-lg);
    background: var(--bg-navy);
    color: var(--text-white);
    font-size: var(--font-lg);
    font-weight: var(--fw-bold);
    border-radius: var(--radius-round);
    text-decoration: none;
    transition: all var(--dur-fast) var(--ease-standard);
    box-shadow: var(--shadow-md);
}

.job-detail__apply-btn:hover {
    background: var(--bg-blue);
    transform: translateY(-2px);
}

.job-detail__apply-btn .material-symbols-rounded {
    font-size: 1.75rem;
}

@media (min-width: 768px) {
    .job-detail__cta-btn + .job-detail__cta-btn {
        margin-block-start: 0;
        margin-inline-start: var(--space-md);
    }
}
/* --- PC向けスタイル --- */
@media (min-width: 960px) {
    .job-detail {
        border-radius: var(--radius-lg);
        border: 1px solid var(--border-gray);
    }
    .job-detail__header {
        padding: var(--space-xl) var(--space-section);
    }

    .job-detail__title {
        font-size: var(--font-title);
    }

    .job-detail__section-title {
        font-size: var(--font-xl);
    }

    .job-detail__content {
        padding: var(--space-xxl) var(--space-section);
        gap: calc(var(--space-section) * 1.2);
    }

    .job-detail__section-body {
        font-size: var(--font-base);
    }

    /* 2カラムレイアウト */
    .job-detail__hero-wrapper {
        flex-direction: row;
        gap: var(--space-xl);
        align-items: stretch;
    }

    .job-detail__photo-area {
        flex: 1;
        min-width: 0;
    }

    .job-detail__highlights {
        flex: 1;
        min-width: 0;
        grid-template-columns: 1fr;
        gap: var(--space-lg);
        padding: var(--space-xl);
    }

    .job-detail__highlights-content {
        display: flex;
        flex-direction: column;
        justify-content: center;
    }

    .job-detail__salary-highlight {
        align-items: flex-start;
        text-align: left;
        border-top: 1px solid var(--border-gray);
        border-left: none;
        padding-top: var(--space-lg);
        padding-left: 0;
    }

    .job-detail__cta-banner {
        padding: var(--space-xl) var(--space-section);
    }

    .job-detail__cta-title {
        font-size: var(--font-title--m);
    }

    .job-detail__card-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .job-detail__table-row {
        grid-template-columns: minmax(12rem, auto) 1fr;
    }

    .job-detail__table-header {
        font-size: var(--font-sm);
        display: flex;
        align-items: center;
    }

    .job-detail____map iframe {
        aspect-ratio: 20 / 9;
    }

    .job-detail__company-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .job-detail__footer {
        padding: var(--space-xxl) var(--space-section);
    }
}

/* --- チップ（カテゴリ別） --- */
.job-detail__chip {
    display: inline-flex;
    align-items: center;
    padding: var(--space-sm) var(--space-md);
    border-radius: var(--radius-round);
    font-size: var(--font-sm);
    font-weight: var(--fw-medium);
    line-height: var(--lh-150);
    color: var(--text-navy);
    background: var(--bg-pale-blue);
}

/* チップグループ */
.job-detail__chips {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-md);
    width: 100%;
    list-style: none;
    margin: 0;
    padding: 0;
}

.job-detail__card-title + .job-detail__chips,
.job-detail__subsection-title + .job-detail__chips {
    margin-block-start: var(--space-md);
}

/* --- シフトリスト --- */
.job-detail__shifts,
.job-detail__salarys-list {
    display: flex;
    flex-direction: column;
    gap: var(--space-sm);
    width: 100%;
    list-style: none;
    margin: 0;
    padding: 0;
}

.job-detail__shifts li,
.job-detail__salarys-list li {
    font-size: var(--font-sm);
    line-height: var(--lh-160);
    font-weight: var(--fw-medium);
}
.job-detail__salarys-list li span::after {
    content: "：";
    display: inline-block;
}

/* --- サブセクション --- */
.job-detail__subsection {
    margin-block-start: var(--space-lg);
    padding-block-start: var(--space-lg);
    border-top: 1px solid var(--border-gray);
}

.job-detail__subsection:first-child {
    margin-block-start: 0;
    padding-block-start: 0;
    border-top: none;
}

.job-detail__subsection-title {
    font-size: var(--font-base);
    font-weight: var(--fw-bold);
    display: flex;
    align-items: center;
    gap: var(--space-sm);
}

#job-description .job-detail__subsection {
    margin-block-start: 0;
    padding-block-start: 0;
    border-top: 0;
}

/* --- 求める人材セクション --- */
.job-detail__wanted {
    background: var(--bg-white);
    border: 1px solid var(--border-gray);
    border-radius: var(--radius-lg);
    padding: var(--space-xl);
    width: 100%;
    box-sizing: border-box;
}

.job-detail__wanted-intro {
    font-size: var(--font-sm);
    color: var(--text-primary);
    line-height: var(--lh-180);
}

/* --- 勤務地詳細 --- */

.job-detail__location-label {
    font-size: var(--font-xs);
    font-weight: var(--fw-bold);
    color: var(--text-secondary);
}

.job-detail__location-value {
    font-size: var(--font-base);
    color: var(--text-primary);
    line-height: var(--lh-180);
}

/* --- 応募情報 --- */
.job-detail__application-info {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-md);
}

@media (min-width: 960px) {
    .job-detail__location {
        font-size: var(--font-base);
    }
    .job-detail__location-detail {
        display: flex;
        flex-direction: column;
        gap: var(--space-md);
    }
    .job-detail__location-access::before {
        padding-inline-start: var(--space-md);
    }

    .job-detail__wanted-intro {
        font-size: var(--font-base);
    }
    .job-detail__application-info {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* --- 写真スライダー --- */
.job-detail__photo-swiper {
    width: 100%;
    position: relative;
    display: flex;
    gap: var(--gap-md);
    flex-direction: column;
    overflow: hidden;
}

.job-detail__photo-swiper .swiper-slide {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    aspect-ratio: 16 / 9;
    border-radius: var(--radius-lg);
}

.job-detail__photo-swiper .swiper-slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    border-radius: var(--radius-lg);
}

.job-detail__photo-swiper .swiper-pagination {
    position: static;
    display: flex;
    gap: var(--gap-xs);
    justify-content: center;
}

.job-detail__photo-swiper .swiper-pagination-bullet {
    background-color: var(--bg-light-gray);
    width: 2.5rem;
    height: 0.4rem;
    border-radius: var(--radius-sm);
    opacity: 1;
}

.job-detail__photo-swiper .swiper-pagination-bullet-active {
    background-color: var(--bg-navy);
}
.job-detail__photo-caption {
    font-size: var(--font-sm);
    color: var(--text-secondary);
    text-align: center;
    min-height: 2lh;
}

/* --- 選考プロセス --- */
.job-detail__process {
    display: flex;
    flex-direction: column;
    gap: var(--space-lg);
    margin-block-start: var(--space-xl);
}

.job-detail__process-step {
    display: flex;
    align-items: center;
    gap: var(--space-md);
}

.job-detail__process-number {
    flex-shrink: 0;
}

.job-detail__process-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    background: var(--bg-navy);
    color: var(--text-white);
    border-radius: var(--radius-round);
    font-size: var(--font-base);
    font-weight: var(--fw-bold);
    line-height: 1;
}

.job-detail__process-content {
    flex: 1;
}

.job-detail__process-text {
    font-size: var(--font-base);
    font-weight: var(--fw-medium);
    margin: 0;
}

.job-detail__process-notes {
    display: flex;
    flex-direction: column;
    gap: var(--space-sm);
    margin-block-start: var(--space-xl);
    padding: var(--space-lg);
    background: var(--bg-pale-blue);
    border-radius: var(--radius-md);
}

.job-detail__process-note {
    font-size: var(--font-sm);
    line-height: var(--lh-160);
    margin: 0;
}

@media (min-width: 960px) {
    .job-detail__process {
        gap: var(--space-md);
    }

    .job-detail__process-icon {
        font-size: var(--font-base);
    }

    .job-detail__process-text {
        font-size: var(--font-sm);
    }

    .job-detail__process-arrow .material-symbols-rounded {
        font-size: 1.5rem;
    }

    .job-detail__process-notes {
        padding: var(--space-lg);
    }

    .job-detail__process-note {
        font-size: var(--font-sm);
    }
}
