/* =========================
    base
========================= */
*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    font-size: 62.5%;
}

body {
    margin: 0;
    color: #333;
    font-family:"Noto Sans JP", sans-serif;
    background: #ffffff;
}

.font-en {
    font-family: "Oswald", sans-serif;
    letter-spacing: 0.05em;
}

img {
    display: block;
    max-width: 100%;
    height: auto;
}

a {
    color: inherit;
    text-decoration: none;
}

ul,
ol {
    margin: 0;
    padding: 0;
    list-style: none;
}

.smooth {
    display: inline-block;
    width: fit-content;
    max-width: 100%;
    overflow: hidden;
    opacity: 0;
    clip-path: inset(0 100% 0 0);
    transition:
    clip-path 1.4s cubic-bezier(0.37, 0, 0.63, 1),
    transform 1.4s cubic-bezier(0.37, 0, 0.63, 1),
    opacity 0.6s ease;
    will-change: clip-path;
}

.smooth.is-animated {
    opacity: 1;
    clip-path: inset(0 0 0 0);
}

/* =========================
    共通ヘッダー
========================= */
.l-header {
    background: #ffffff;
}

.l-header__inner {
    display: flex;
    align-items: stretch;
    justify-content: space-between;
    min-height: 10.6rem;
    padding-left: 5.2rem;
}

.l-header__logo {
    display: flex;
    align-items: center;
    margin: 0;
    flex-shrink: 0;
}

.l-header__logo a {
    display: block;
    width: 33rem;
}

.l-header__nav {
    margin-left: auto;
}

.l-header__nav-list {
    display: flex;
    height: 100%;
}

.l-header__nav-list li {
    height: 100%;
}

.l-header__nav-list a {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    padding: 0 2.8rem;
    font-size: clamp(1.2rem, 0.9vw, 1.6rem);
    font-weight: 700;
    white-space: nowrap;
}

.l-header__contact {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 13.8rem;
    min-height: 10.6rem;
    background: #2f6298;
    color: #fff;
    flex-shrink: 0;
}

.l-header__contact-icon {
    font-size: 2.8rem;
    line-height: 1;
    margin-bottom: 0.8rem;
}

.l-header__contact-text {
    font-size: 16px;
    font-weight: 500;
    letter-spacing: 0.08em;
}

/* =========================
    下層FV共通
========================= */
.c-page-fv {
    padding: 0 0 2.4rem;
    background: #ffffff;
}

.c-page-fv__inner {
    width: min(100%, 1728px);
    margin-left: auto;
    margin-right: 0;
}

.c-page-fv__visual {
    position: relative;
    height: 500px;
    overflow: visible;
}

.c-page-fv__bg-img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.c-page-fv__visual::after {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.2);
    z-index: 1;
}

.c-page-fv__triangle {
    position: absolute;
    top: 0;
    left: 0;
    width: 500px;
    height: 500px;
    pointer-events: none;
}

.c-page-fv__triangle--light {
    background: rgba(85, 147, 207, 0.7);
    clip-path: polygon(0 0, 100% 0, 0 100%);
    z-index: 2;
}

.c-page-fv__triangle--dark {
    background: rgba(47, 95, 143, 0.7);
    clip-path: polygon(0 0, 100% 100%, 0 100%);
    z-index: 3;
}

.c-page-fv__content {
    position: absolute;
    top: 0;
    left: 108px; /* 1920時に左300pxに合わせるための実値 */
    z-index: 6;
    color: #fff;
}

.c-page-fv__content-inner {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    width: auto;
    margin: 0;
    padding-top: 160px;
}

.c-page-fv__title-en {
    margin: 0;
    font-family: "Oswald", sans-serif;
    font-size: 100px;
    line-height: 0.9;
    font-weight: 700;
    letter-spacing: 0.03em;
    color: #fff;
}

.c-page-fv__title-ja {
    margin: 2.4rem 0 0;
    font-size: 28px;
    line-height: 1.2;
    font-weight: 700;
    color: #fff;
}

.c-page-fv__character {
    position: absolute;
    width: 85px;
    height: 150px;

    left: -50px;
    bottom: 10px;

    z-index: 10;
}

.c-page-fv__character img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.c-page-fv__bottom {
    height: 68px;
    background: transparent;
    position: relative;
}

.c-page-fv__bottom-inner {
    width: 1320px;
    margin-left: 108px; /* 右300pxに揃う実値 */
    margin-right: 0;
}

.c-breadcrumb {
    height: 100%;
}

.c-breadcrumb__list {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    height: 100%;
    gap: 16px;
    color: #333;
    font-size: 14px;
    font-weight: 400;
    padding-top: 14px;
}

.c-breadcrumb__item {
    position: relative;
}

.c-breadcrumb__item:first-child a {
    color: #5692CE;
}

.c-breadcrumb__item + .c-breadcrumb__item {
    padding-left: 2.2rem;
}

.c-breadcrumb__item + .c-breadcrumb__item::before {
    content: "/";
    position: absolute;
    left: 0;
    top: 0;
    color: rgba(34, 34, 34, 0.5);
}

@media (max-width: 1280px) {
    .l-header__inner {
    padding-left: 2rem;
    }

    .l-header__logo a {
    width: 26rem;
    }

    .l-header__nav-list a {
    padding: 0 1.6rem;
    font-size: 1.5rem;
    }

    .c-page-fv__title-en {
    font-size: 9rem;
    }

    .c-page-fv__title-ja {
    font-size: 3rem;
    }
}

@media (max-width: 768px) {
    .c-page-fv__visual {
    height: 320px;
    }

    .c-page-fv__triangle {
    width: 280px;
    height: 280px;
    }

    .c-page-fv__content {
    left: 40px;
    top: 0;
    }

    .c-page-fv__content-inner {
    padding-top: 110px;
    }

    .c-page-fv__character {
    left: 16px;
    bottom: -10px;
    width: 78px;
    }
}

/* =========================
    hover
========================= */
.l-header__nav-list a,
.l-header__contact,
.c-breadcrumb a {
    transition: opacity 0.3s ease;
}

.l-header__nav-list a:hover,
.l-header__contact:hover,
.c-breadcrumb a:hover {
    opacity: 0.72;
}

.l-header__contact {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.l-header__contact-icon {
    display: block;
    width: 24px;
    height: 24px;
    margin-bottom: 8px;
    line-height: 1;
}

.l-header__contact-icon svg {
    display: block;
    width: 100%;
    height: 100%;
    stroke: #fff;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.l-header__contact-text {
    color: #fff;
}

/* =========================
    responsive
========================= */
@media (max-width: 1280px) {
    .l-header__inner {
    padding-left: 2rem;
    }

    .l-header__logo a {
    width: 26rem;
    }

    .l-header__nav-list a {
    padding: 0 1.6rem;
    font-size: 1.5rem;
    }

    .c-page-fv__title-en {
    font-size: 9rem;
    }

    .c-page-fv__title-ja {
    font-size: 3rem;
    }
}

/* ===============================
    共通
=============================== */
.l-inner {
    max-width: 1320px;
    margin: 0 auto;
    padding: 0;
}

.c-section-title {
    text-align: center;
    font-size: 28px;
    margin-bottom: 60px;
    font-weight: bold;
}

.c-section-title span {
    color: #3d6ea8;
}

.c-button {
    display: inline-block;
    padding: 12px 28px;
    background: #3d6ea8;
    color: #fff;
    border-radius: 999px;
    text-decoration: none;
    font-size: 14px;
}

/* ===============================
    FV
=============================== */
.p-recruit-fv {
    position: relative;
    height: 300px;
    background: linear-gradient(135deg, #3d6ea8 40%, #ccc 40%);
    display: flex;
    align-items: center;
}

.p-recruit-fv__title {
    color: #fff;
    font-size: 48px;
    letter-spacing: 0.1em;
}

.p-recruit-fv__sub {
    color: #fff;
    font-size: 14px;
}

/* ===============================
    メッセージ
=============================== */
.p-recruit-message {
    text-align: center;
    padding: 80px 0;
}

.p-recruit-message__title {
    font-size: 52px;
    letter-spacing: 0.1em;
    text-align: center;
    line-height: 90px;
    transform: rotate(-5deg);
}

/* 各行 */
.p-recruit-message__title span {
    position: relative;
    display: inline-block;
}

/* 下線 */
.p-recruit-message__title span::after {
    content: "";
    position: absolute;
    left: -5%;
    bottom: -8px;

    width: 110%;
    height: 2px;
    background: #5593CF;

    transform-origin: left center;
}

.p-recruit-message__text {
    max-width: 1320px;
    margin: 0 auto 70px;
    font-size: 18px;
    font-weight: 700;
    line-height: 200%;
    letter-spacing: 0.1em;
    margin-top: 100px;
}

.p-recruit-message__img {
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    margin-top: 150px;
}

.p-recruit-message__img img {
    width: 100%;
    height: auto;
    display: block;
}

/* =======================================
    3つの魅力
======================================= */
.p-recruit-charm {
    background: #fff;
}

.p-recruit-charm__visual {
    position: relative;
}

.p-recruit-charm__visual > img {
    display: block;
    width: 100%;
    height: auto;
}

.p-recruit-charm__head {
    position: absolute;
    left: 50%;
    bottom: -40px;
    transform: translateX(-50%);
    width: min(1320px, 90%);
    padding-top: 82px;
    background: #fff;
    text-align: center;
}

.p-recruit-charm__title {
    bottom: -40px;
    margin: 0;
}

/* 白箱の高さぶん、下の要素を持ち上げないための余白 */
.p-recruit-charm__list {
    margin-top: 80px;
}


.p-recruit-charm__title-text {
    display: inline-block;
    position: relative;
    font-size: 36px;
    line-height: 1.2;
    font-weight: 700;
    letter-spacing: 0.1em;
    color: #333;
}

.p-recruit-charm__title-num {
    margin: 0 0.08em;
    font-family: Oswald;
    font-size: 100px;
    line-height: 1;
    color: #5593CF;
    font-weight: 700;
}

.p-recruit-charm__underline-img {
    display: block;
    width: 560px;
    max-width: 82%;
    margin: 14px auto 0;
}

/* 各ブロック */
.p-recruit-charm__list {
    display: flex;
    flex-direction: column;
    gap: 48px;
}

.p-recruit-charm__item {
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: center;
    background: #f3f3f3;
    min-height: 300px;
}

.p-recruit-charm__item--reverse .p-recruit-charm__text {
    order: 2;
}

.p-recruit-charm__item--reverse .p-recruit-charm__image {
    order: 1;
}

/* テキスト側 */
.p-recruit-charm__text {
    position: relative;
    padding: 28px 40px 28px 20px;
}

.p-recruit-charm__num {
    position: absolute;
    top: -8px;
    left: 0;
    margin: 0;
    font-size: clamp(7rem, 10vw, 11rem);
    line-height: 1;
    font-weight: 700;
    color: #dfe7f1;
    letter-spacing: 0.04em;
    z-index: 0;
}

.p-recruit-charm__item-title {
    position: relative;
    z-index: 1;
    margin: 78px 0 22px;
    font-size: 3.2rem;
    line-height: 1.5;
    font-weight: 700;
    color: #2f6298;
    letter-spacing: 0.04em;
}

.p-recruit-charm__desc {
    position: relative;
    z-index: 1;
    margin: 0;
    max-width: 470px;
    font-size: 1.6rem;
    line-height: 2.1;
    letter-spacing: 0.04em;
    color: #333;
}

/* 画像側 */
.p-recruit-charm__image {
    padding-left: 20px;
}

.p-recruit-charm__item--reverse .p-recruit-charm__image {
    padding-left: 0;
    padding-right: 20px;
}

.p-recruit-charm__image img {
    display: block;
    width: 100%;
    aspect-ratio: 600 / 360;
    object-fit: cover;
}

/* 03 数字カード */
.p-recruit-charm__data {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
    padding-left: 20px;
}

.p-recruit-charm__data-card {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 188px;
    padding: 24px 18px;
    background: #5e95cd;
    color: #fff;
    text-align: center;
}

.p-recruit-charm__data-card--dark {
    background: #2f6298;
}

.p-recruit-charm__data-label {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 32px;
    margin: 0 auto 22px;
    padding: 0 18px;
    border-radius: 999px;
    background: #fff;
    color: #5e95cd;
    font-size: 1.3rem;
    font-weight: 700;
    letter-spacing: 0.04em;
}

.p-recruit-charm__data-card--dark .p-recruit-charm__data-label {
    color: #2f6298;
}

.p-recruit-charm__data-value {
    margin: 0;
    font-size: 5rem;
    line-height: 1;
    font-weight: 700;
    letter-spacing: 0.02em;
}

.p-recruit-charm__data-value span {
    margin-left: 0.18em;
    font-size: 1.6rem;
    font-weight: 500;
}

/* =======================================
    レスポンシブ
======================================= */
@media (max-width: 1024px) {
    .p-recruit-charm {
    padding: 100px 0;
    }

    .p-recruit-charm__head {
    padding: 46px 20px 40px;
    }

    .p-recruit-charm__title-text {
    font-size: 3.4rem;
    }

    .p-recruit-charm__item {
    grid-template-columns: 1fr;
    gap: 28px;
    }

    .p-recruit-charm__item--reverse .p-recruit-charm__text,
    .p-recruit-charm__item--reverse .p-recruit-charm__image {
    order: initial;
    }

    .p-recruit-charm__text {
    padding: 20px 0 0;
    }

    .p-recruit-charm__item-title {
    margin-top: 70px;
    }

    .p-recruit-charm__desc {
    max-width: none;
    }

    .p-recruit-charm__image,
    .p-recruit-charm__item--reverse .p-recruit-charm__image {
    padding: 0;
    }

    .p-recruit-charm__data {
    padding-left: 0;
    }
}

@media (max-width: 767px) {
    .p-recruit-charm {
    padding: 80px 0;
    }

    .p-recruit-charm__inner {
    padding: 0 16px;
    }

    .p-recruit-charm__head {
    padding: 34px 14px 28px;
    }

    .p-recruit-charm__title-text {
    font-size: 2.6rem;
    line-height: 1.4;
    letter-spacing: 0.04em;
    }

    .p-recruit-charm__underline {
    width: 260px;
    margin-top: 10px;
    }

    .p-recruit-charm__list {
    gap: 40px;
    }

    .p-recruit-charm__num {
    top: 0;
    font-size: 6.4rem;
    }

    .p-recruit-charm__item-title {
    margin: 52px 0 16px;
    font-size: 2.4rem;
    line-height: 1.5;
    }

    .p-recruit-charm__desc {
    font-size: 1.5rem;
    line-height: 2;
    }

    .p-recruit-charm__image img {
    aspect-ratio: 343 / 220;
    }

    .p-recruit-charm__data {
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    }

    .p-recruit-charm__data-card {
    min-height: 140px;
    padding: 18px 10px;
    }

    .p-recruit-charm__data-label {
    min-height: 28px;
    margin-bottom: 16px;
    padding: 0 12px;
    font-size: 1.1rem;
    }

    .p-recruit-charm__data-value {
    font-size: 3.6rem;
    }

    .p-recruit-charm__data-value span {
    font-size: 1.3rem;
    }
}

/* =========================================
    特徴 01 / 02 / 03
========================================= */
.p-recruit-feature {
    padding-top: 120px;
    padding-bottom: 150px;
    background: #fff;
}

.p-recruit-feature__inner {
    width: min(100%, 1320px);
    margin: 0 auto;
    padding: 0 32px;
}

.p-recruit-feature__row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    align-items: flex-start;
    column-gap: 0;
}

.p-recruit-feature__row + .p-recruit-feature__row {
    margin-top: 104px;
}

/* 02だけ左右を入れ替える */
.p-recruit-feature__row--reverse .p-recruit-feature__media {
    order: 1;
}

.p-recruit-feature__row--reverse .p-recruit-feature__text {
    order: 2;
}

/* 左右共通 */
.p-recruit-feature__text,
.p-recruit-feature__media,
.p-recruit-feature__cards {
    min-width: 0;
}

/* テキスト */
.p-recruit-feature__text {
    position: relative;
    padding: 24px 24px 24px 24px;
}

.p-recruit-feature__num {
    position: absolute;
    top: -8px;
    left: 0;
    margin: 0;
    font-family: "Oswald", sans-serif;
    font-size: 140px;
    line-height: 1;
    font-weight: 700;
    letter-spacing: 0.08em;
    color: #edf4fa;
}

.p-recruit-feature__title {
    position: relative;
    z-index: 1;
    margin: 80px 0 24px;
    font-size: 32px;
    line-height: 1.45;
    font-weight: 700;
    letter-spacing: 0.08em;
    color: #2f5f8f;
}

.p-recruit-feature__desc {
    position: relative;
    z-index: 1;
    margin: 0;
    max-width: 540px;
    font-size: 16px;
    line-height: 2;
    letter-spacing: 0.08em;
    color: #333;
}

/* 01と03 左側テキストは左寄せ */
.p-recruit-feature__row:not(.p-recruit-feature__row--reverse) .p-recruit-feature__text {
    justify-self: start;
}

/* 02 右側テキストは右カラム内で右端に寄せる */
.p-recruit-feature__row--reverse .p-recruit-feature__text {
    justify-self: end;
    width: 100%;
    max-width: 560px;
    padding-left: 40px; /* 写真との間の余白 */
    padding-right: 0;
}

/* 画像 */
.p-recruit-feature__media {
    margin: 0;
    width: 100%;
}

.p-recruit-feature__media img {
    display: block;
    width: 100%;
    aspect-ratio: 640 / 380;
    object-fit: cover;
}

/* 02の画像は左カラムいっぱい */
.p-recruit-feature__row--reverse .p-recruit-feature__media {
    justify-self: start;
    width: 100%;
}

/* 03のカード群 */
.p-recruit-feature__cards {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
}

.p-recruit-feature-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    min-height: 236px;
    padding: 22px 18px 18px;
    background: #5593CF;
    color: #fff;
    text-align: center;
}

.p-recruit-feature-card--dark {
    background: #2F5F8F;
}

.p-recruit-feature-card__label {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    margin: 0 0 22px;
    padding: 0 20px;
    border-radius: 999px;
    background: #fff;
    color: #5593CF;
    font-size: 16px;
    line-height: 1;
    font-weight: 700;
    letter-spacing: 0.04em;
}

.p-recruit-feature-card--dark .p-recruit-feature-card__label {
    color: #2F5F8F;
}

.p-recruit-feature-card__icon {
    width: 52px;
    height: 52px;
    margin-bottom: 18px;
}

.p-recruit-feature-card__icon svg {
    width: 100%;
    height: 100%;
    fill: none;
    stroke: #fff;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
    opacity: 0.95;
}

.p-recruit-feature-card__value {
    margin: 0;
    font-size: 54px;
    line-height: 1;
    font-weight: 700;
    letter-spacing: 0.02em;
}

.p-recruit-feature-card__value small {
    margin-right: 0.2em;
    font-size: 18px;
    font-weight: 700;
}

.p-recruit-feature-card__value span {
    margin-left: 0.16em;
    font-size: 18px;
    font-weight: 700;
}

.p-recruit-feature-card__note {
    margin: 8px 0 0;
    font-size: 12px;
    line-height: 1.4;
    font-weight: 500;
}

/* =========================================
    SP
========================================= */
@media (max-width: 767px) {
    .p-recruit-feature {
    padding-top: 80px;
    padding-bottom: 80px;
    }

    .p-recruit-feature__inner {
    padding: 0 16px;
    }

    .p-recruit-feature__row {
    grid-template-columns: 1fr;
    row-gap: 24px;
    }

    .p-recruit-feature__row + .p-recruit-feature__row {
    margin-top: 40px;
    }

    .p-recruit-feature__row--reverse .p-recruit-feature__media,
    .p-recruit-feature__row--reverse .p-recruit-feature__text {
    order: initial;
    }

    .p-recruit-feature__text,
    .p-recruit-feature__row--reverse .p-recruit-feature__text {
    max-width: none;
    width: 100%;
    justify-self: auto;
    padding: 12px 0 0;
    }

    .p-recruit-feature__num {
    top: 0;
    font-size: 70px;
    }

    .p-recruit-feature__title {
    margin: 48px 0 18px;
    font-size: 28px;
    }

    .p-recruit-feature__desc {
    max-width: none;
    font-size: 15px;
    line-height: 2;
    }

    .p-recruit-feature__cards {
    gap: 10px;
    }

    .p-recruit-feature-card {
    min-height: 160px;
    padding: 16px 10px 14px;
    }

    .p-recruit-feature-card__label {
    min-height: 28px;
    margin-bottom: 14px;
    padding: 0 12px;
    font-size: 11px;
    }

    .p-recruit-feature-card__icon {
    width: 40px;
    height: 40px;
    margin-bottom: 12px;
    }

    .p-recruit-feature-card__value {
    font-size: 38px;
    }

    .p-recruit-feature-card__value small,
    .p-recruit-feature-card__value span {
    font-size: 13px;
    }

    .p-recruit-feature-card__note {
    font-size: 10px;
    }
}

.p-recruit-feature-card__icon {
    width: 52px;
    height: 52px;
    margin-bottom: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.p-recruit-feature-card__icon img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

/* 数値だけ Oswald */
.p-recruit-feature-card__value {
    font-family: "Oswald", sans-serif;
    font-weight: 700;
}

/* 単位（small / span）は日本語フォント */
.p-recruit-feature-card__value small,
.p-recruit-feature-card__value span {
    font-family: "Noto Sans JP", sans-serif;
    font-weight: 700;
}

/* =========================================
    共通セクションヘッド
========================================= */
.c-section-head {
    text-align: center;
    margin-bottom: 40px;
}

.c-section-head__icon {
    width: 52px;
    margin: 0 auto 0px;
}

.c-section-head__icon img {
    width: 100%;
    height: auto;
}

.c-section-head__title {
    font-size: 36px;
    font-weight: 700;
    letter-spacing: 0.08em;
    margin-bottom: 50px;
    margin-top: 20px;
}

.c-section-head__lead {
    font-size: 16px;
    line-height: 2;
    color: #333;
}

/* =========================================
    セクション全体
========================================= */
.p-benefit {
    padding: 150px 0;
    background: #EDF4FA;
}

.p-benefit__inner {
    width: min(100%, 1320px);
    margin: 0 auto;
}

/* =========================================
    グループタイトル
========================================= */
.p-benefit__group + .p-benefit__group {
    margin-top: 80px;
}

.p-benefit__group-title {
    font-size: 28px;
    font-weight: 700;
    margin-bottom: 44px;
    display: flex;
    align-items: center;
    gap: 20px;
}

.p-benefit__group-title span {
    width: 20px;
    height: 20px;
    background: #5593CF;
    transform: rotate(45deg);
}

/* =========================================
    グリッド
========================================= */
.p-benefit__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
}

/* =========================================
    カード
========================================= */
.p-benefit-card {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 20px;
    background: #fff;
    border-left: 3px solid #5593CF;
}

/* アイコン */
.p-benefit-card__icon {
    width: 80px;
    height: 80px;
    flex-shrink: 0;
    border: 1px solid #5c8fc4;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.p-benefit-card__icon img {
    width: 42px;
    height: 42px;
    object-fit: contain;
}

/* テキスト */
.p-benefit-card__title {
    font-size: 20px;
    font-weight: 700;
    margin-top: 0;
    margin-bottom: 18px;
    color: #2f5f8f;
}

.p-benefit-card__text {
    font-size: 14px;
    line-height: 1.8;
    color: #555;
    margin: 0;
}

/* 最後の横長カード */
.p-benefit-card--wide {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: 80px minmax(0, 1fr) auto;
    align-items: center;
    gap: 24px;
    padding: 20px 20px;
}

/* 中央の本文 */
.p-benefit-card--wide .p-benefit-card__body {
    min-width: 0;
}

/* 右側リンク群 */
.p-benefit-card__links {
    display: flex;
    gap: 12px;
    height: 100%;
    flex-shrink: 0;
}

.p-benefit-card__link {
    width: 250px;
    height: 80px;
    padding: 12px 16px;
    border: 1px solid #5593CF;
    background: #fff;
    color: #2f5f8f;
    text-align: center;

    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 100%;
}

.p-benefit-card__link-area {
    display: block;
    font-size: 14px;
    line-height: 1.4;
    color: #5593cf;
    margin-bottom: 4px;
}

.p-benefit-card__link-name {
    display: block;
    font-size: 18px;
    line-height: 1.4;
    font-weight: 700;
    color: #5593cf;
}


/* =========================================
    SP
========================================= */
@media (max-width: 768px) {
    .p-benefit {
    padding: 80px 0;
    }

    .p-benefit__grid {
    grid-template-columns: 1fr;
    }

    .c-section-head {
    margin-bottom: 48px;
    }
}

@media (max-width: 768px) {
    .p-benefit-card--wide {
    grid-template-columns: 1fr;
    gap: 16px;
    }

    .p-benefit-card__links {
    flex-direction: column;
    }

    .p-benefit-card__link {
    width: 100%;
    }
}

/* =========================================
    先輩社員の出身校
========================================= */
.p-school {
    padding: 150px 0;
    background: #fff;

    position: relative;
}

/* 地図を疑似要素で固定 */
.p-school::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;

    width: 730px;
    height: 720px;

    background: url("/assets/img/map-japan.svg") no-repeat center / contain;

    transform: translate(-50%, -45%); /* ← ここで微調整 */

    z-index: 0;
}

/* コンテンツは前面 */
.p-school__inner,
.p-school__content {
    position: relative;
    z-index: 1;
}

/* 学校リスト：5列固定 */
.p-school__list {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: repeat(5, 232px);
    column-gap: 40px;
    row-gap: 0;
    justify-content: center;
}

/* 1校 */
.p-school__item {
    position: relative;

    height: 74px; /* ← minじゃなくて固定 */
    display: flex;
    align-items: center;
    justify-content: center;

    text-align: center;
    font-size: 16px;
    line-height: 1.4;
    color: #333;
}

/* 上線 */
.p-school__item::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 232px;
    height: 1px;
    background: #5593CF;
}

/* 最終行だけ下線 */
.p-school__item:nth-last-child(-n + 5)::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 232px;
    height: 1px;
    background: #5593CF;
}

/* SP */
@media (max-width: 767px) {
    .p-school {
    position: relative;
    overflow: hidden;
    padding: 80px 0;
    }

    /* 日本地図をSPでも明示 */
    .p-school::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 260px;
    height: 260px;
    background: url("/assets/img/map-japan.svg") no-repeat center / contain;
    transform: translate(-50%, -42%);
    z-index: 0;
    }

    .p-school__inner {
    max-width: calc(100% - 32px);
    position: relative;
    z-index: 1;
    }

    .p-school__content {
    position: relative;
    z-index: 1;
    padding: 20px 0 16px;
    background: none;
    }

    .p-school__list {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 12px;
    row-gap: 0;
    justify-content: center;
    }

    .p-school__item {
    position: relative;
    min-height: 68px;
    height: auto;
    padding: 12px 4px 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    font-size: 12px;
    line-height: 1.35;
    white-space: normal;
    word-break: keep-all;
    overflow-wrap: anywhere;
    }

    /* 上線は全アイテム */
    .p-school__item::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 1px;
    background: #5593CF;
    }

    /* 既存の最後尾制御をやめる */
    .p-school__item:nth-last-child(-n + 5)::after {
    content: none;
    }

    /* 最後の2つだけ下線 */
    .p-school__item:nth-last-child(-n + 2)::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 1px;
    background: #5593CF;
    }
}

/* ===============================
    学校向け
=============================== */
.p-school-parents {
    position: relative;
    overflow: hidden;
    background-color: #5593CF;
    padding: 90px 0 100px;
}

.p-school-parents__inner {
    width: min(100% - 80px, 1320px);
    margin: 0 auto;
    position: relative;
    z-index: 2;
}

.p-school-parents__content {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 540px;
    align-items: start;
}

.p-school-parents__text {
    position: relative;
    z-index: 2;
    color: #fff;
}

.p-school-parents__eyebrow {
    margin: 0 0 44px;
    color: rgb(255, 255, 255);
    font-family: Oswald;
    font-size: 18px;
    font-weight: 700;
    letter-spacing: 0.12em;
    line-height: 1.4;
    opacity: 0.5;
}

.p-school-parents__title {
    margin: 0 0 24px;
    font-size: 36px;
    font-weight: 700;
    line-height: 1.45;
    letter-spacing: 0.08em;
}

.p-school-parents__lead {
    margin: 0 0 32px;
    font-size: 24px;
    font-weight: 700;
    line-height: 2;
    letter-spacing: 0.08em;
}

.p-school-parents__body {
    max-width: 700px;
}

.p-school-parents__body p {
    margin: 0;
    font-size: 1.5rem;
    line-height: 2.2;
    letter-spacing: 0.06em;
}

.p-school-parents__body p + p {
    margin-top: 4px;
}

.p-school-parents__info {
    max-width: 700px;
    margin-top: 44px;
    border: 1px solid rgba(255, 255, 255, 0.7);
}

.p-school-parents__info-head {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 320px;
    min-height: 42px;
    margin: 0;
    padding: 8px 24px;
    background: #fff;
    color: #5593CF;
    font-size: 1.6rem;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: 0.06em;
}

.p-school-parents__info-text {
    margin: 0;
    padding: 26px 22px 28px;
    color: #fff;
    font-size: 16px;
    font-weight: 400;
    line-height: 2.0;
    letter-spacing: 0.1em;
}

.p-school-parents__image {
    width: 100%;
    margin-left: auto;
}

.p-school-parents__image img {
    display: block;
    width: 100%;
    height: auto;
}

/* 背景ロゴ */
.p-school-parents__bg-logo {
    position: absolute;
    top: 0;
    left: -380px;
    z-index: 1;
    pointer-events: none;
}

.p-school-parents__bg-logo img,
.p-school-parents__bg-logo svg {
    display: block;
    width:  1200px;
    height: auto;
}

/* 1440px前後で少し詰める */
@media (max-width: 1440px) {
    .p-school-parents__content {
    grid-template-columns: minmax(0, 1fr) 380px;
    column-gap: 70px;
    }

    .p-school-parents__image {
    max-width: 380px;
    }
}

/* タブレット */
@media (max-width: 1024px) {
    .p-school-parents {
    padding: 80px 0;
    }

    .p-school-parents__inner {
    width: min(100% - 48px, 1320px);
    }

    .p-school-parents__content {
    grid-template-columns: 1fr;
    row-gap: 48px;
    }

    .p-school-parents__image {
    max-width: 520px;
    margin-left: 0;
    }

    .p-school-parents__bg-logo {
    left: -80px;
    top: 42%;
    }

    .p-school-parents__bg-logo img,
    .p-school-parents__bg-logo svg {
    width: min(58vw, 460px);
    }
}

/* SP */
@media (max-width: 767px) {
    .p-school-parents {
    padding: 64px 0 72px;
    }

    .p-school-parents__inner {
    width: min(100% - 32px, 1320px);
    }

    .p-school-parents__title {
    margin-bottom: 24px;
    line-height: 1.5;
    }

    .p-school-parents__lead {
    margin-bottom: 22px;
    font-size: 2rem;
    line-height: 1.8;
    }

    .p-school-parents__body p {
    font-size: 1.4rem;
    line-height: 2;
    }

    .p-school-parents__info {
    margin-top: 28px;
    }

    .p-school-parents__info-head {
    display: flex;
    min-width: 0;
    width: 100%;
    padding: 10px 16px;
    font-size: 1.5rem;
    }

    .p-school-parents__info-text {
    padding: 20px 16px 22px;
    font-size: 1.4rem;
    line-height: 2;
    }

    .p-school-parents__bg-logo {
    left: -70px;
    top: 28%;
    }

    .p-school-parents__bg-logo img,
    .p-school-parents__bg-logo svg {
    width: 280px;
    }
}

/* ===============================
    募集要項
=============================== */
.p-recruit {
    background: #fff;
}

.p-recruit__inner {
    width: min(100% - 80px, 1320px);
    margin: 0 auto;
    padding-top: 150px;
    padding-bottom: 150px;
}

/* タイトル */
.p-recruit__head {
    text-align: center;
    margin-bottom: 54px;
}

.p-recruit__icon img {
    display: block;
    width: 34px;
    margin: 0 auto 10px;
}

.p-recruit__title {
    margin: 0;
    font-size: 3.2rem;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: 0.08em;
    color: #222;
}

/* 2カラム */
.p-recruit__list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    column-gap: 36px;
    row-gap: 0;
}

/* 各行 */
.p-recruit__item {
    display: flex;
    align-items: center;
    gap: 14px;
    min-height: 100px;
    padding: 0;
    position: relative;
    text-decoration: none;
    color: #222;
}

/* 各行の下線 */
.p-recruit__item::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background: #5593CF;
}

/* 1行目だけ上線を追加 */
.p-recruit__item:nth-child(1)::before,
.p-recruit__item:nth-child(2)::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 1px;
    background: #5593CF;
}

/* ラベル */
.p-recruit__label {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 130px;
    height: 30px;
    padding: 0 10px;
    flex-shrink: 0;
    color: #fff;
    font-size: 14px;
    font-weight: 400;
    line-height: 1;
    letter-spacing: 0.08em;
    white-space: nowrap;
}

.p-recruit__label.is-blue {
    background: #2F5F8F;
}

.p-recruit__label.is-green {
    background: #30837C;
}

.p-recruit__label.is-orange {
    background: #E09F1F;
}

/* 職種名 */
.p-recruit__text {
    margin: 0;
    flex: 1;
    font-size: 20px;
    font-weight: 700;
    line-height: 1.6;
    letter-spacing: 0.08em;
    color: #333;
}

/* 矢印 */
.p-recruit__arrow {
    flex-shrink: 0;
    color: #5593CF;
    font-size: 2rem;
    line-height: 1;
}

/* hover */
.p-recruit__item:hover .p-recruit__arrow {
    transform: translateX(4px);
    transition: transform 0.25s ease;
}

/* SP */
@media (max-width: 767px) {
    .p-recruit {
    padding: 72px 0;
    }

    .p-recruit__inner {
    width: min(100% - 32px, 1320px);
    }

    .p-recruit__list {
    grid-template-columns: 1fr;
    }

    .p-recruit__item:nth-child(2)::before {
    content: none;
    }
}

/* ===============================
    CTA
=============================== */
.p-recruit-cta {
    background: #3d6ea8;
    color: #fff;
    text-align: center;
    padding: 80px 0;
}

/* ===============================
    SP対応
=============================== */
/* =========================
    CTA（共通）
========================= */
.c-cta {
    position: relative;
    overflow: hidden;
    color: #fff;
}

/* 背景 */
.c-cta__bg {
    position: absolute;
    inset: 0;
}

.c-cta__bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* 青グラデ */
.c-cta__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
    90deg,
    rgba(85, 147, 208, 0.9) 0%,
    rgba(47, 95, 143, 0.9) 100%
    );
}

/* 内側 */
.c-cta__inner {
    position: relative;
    z-index: 2;
    margin: 0 auto;
    padding-top: 220px;
    padding-bottom: 120px;
}

/* ===== ヘッド ===== */
.c-cta__head {
    position: relative;
    text-align: center;
    margin-bottom: 60px;
}

/* ★ ここが今回の本質 */
.c-cta__bg-text {
    position: absolute;
    top: -120px;
    left: 50%;
    transform: translateX(-50%);
    margin: 0;

    font-family: "Oswald", sans-serif;
    font-size: clamp(80px, 10vw, 140px);
    font-weight: 700;
    letter-spacing: 0.08em;

    color: transparent;

    /* 外側2pxの線 */
    -webkit-text-stroke: 2px rgba(255,255,255,0.3);

    pointer-events: none;
    user-select: none;
    white-space: nowrap;
}

.c-cta__title {
    margin: 0;
    font-size: clamp(28px, 3vw, 36px);
    font-weight: 700;
    letter-spacing: 0.06em;
}

.c-cta__lead {
    margin-top: 20px;
    font-size: 16px;
    line-height: 2;
}

/* ===== カード ===== */
.c-cta__cards {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 32px;
    margin: 0 auto;
}

.c-cta__card {
    border: 1px solid rgba(255,255,255,0.5);
    padding: 48px 24px;
    text-align: center;
}

.c-cta__card-label {
    margin-bottom: 18px;
    margin-top: 0;
    font-size: 16px;
    font-weight: 700;
}

/* TEL */
.c-cta__tel {
    display: inline-flex;
    align-items: center;
    gap: 16px;
    color: #fff;
    text-decoration: none;
}

.c-cta__tel-icon {
    width: 32px;
    height: 32px;
}

.c-cta__tel-number {
    font-family: "Oswald", sans-serif;
    font-size: clamp(34px, 3vw, 40px);
    font-weight: 700;
}

/* 備考 */
.c-cta__note {
    margin: 0;
    font-size: 14px;
}

/* MAIL */
.c-cta__mail-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 460px;
    height: 80px;
    background: #fff;
    color: #2F5F8F;
    text-decoration: none;
    font-size: 18px;
    font-weight: 700;
}

.c-cta__mail-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 16px;
    color: #2F5F8F;
    flex-shrink: 0;
}

.c-cta__mail-icon svg {
    display: block;
    width: 22px;
    height: 16px;
}

.c-cta__mail-icon svg path {
    stroke: currentColor;
    fill: none;
}

.c-cta__mail-btn:hover {
    transform: translateY(-2px);
    opacity: 0.9;
}

/* ===== レスポンシブ ===== */
@media (max-width: 768px) {
    .c-cta__inner {
    padding: 70px 16px 40px;
    }

    .c-cta__bg-text {
    font-size: 60px;
    top: -20px;
    }

    .c-cta__cards {
    grid-template-columns: 1fr;
    }

    .c-cta__mail-btn {
    width: 100%;
    }
}

.c-footer {
    color: #222;
    background: #fff;
    font-family:
    "Noto Sans JP",
    "Yu Gothic",
    "Hiragino Kaku Gothic ProN",
    sans-serif;
}

.c-footer * {
    box-sizing: border-box;
}

.c-footer a {
    text-decoration: none;
    transition: opacity 0.3s ease;
}

.c-footer a:hover {
    opacity: 0.75;
}

.c-footer__main {
    padding: 0 0 90px;
    background: #fff;
}

.c-footer__inner {
    width: 100%;
    max-width: 1320px;
    margin: 0 auto;
}

.c-footer__main .c-footer__inner {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 60px;
    padding-top: 120px;
}

.c-footer__left {
    flex: 0 0 320px;
}

.c-footer__logo {
    display: inline-block;
    width: 240px;
}

.c-footer__logo img {
    display: block;
    width: 100%;
    height: auto;
}

.c-footer__company {
    margin-top: 18px;
}

.c-footer__company-name {
    margin: 0 0 18px;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.5;
}

.c-footer__address {
    margin: 0;
    font-style: normal;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.8;
    color: #444;
}

.c-footer__right {
    flex: 1 1 auto;
    min-width: 0;
}

.c-footer__nav {
    margin-top: 8px;
}

.c-footer__nav-list {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 18px 32px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.c-footer__nav-list a {
    display: inline-block;
    font-size: 16px;
    font-weight: 700;
    line-height: 1;
    color: #333;
    white-space: nowrap;
}

.c-footer__cta-row {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 18px;
    margin-top: 28px;
}

.c-footer__association {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 285px;
    height: 82px;
    padding: 12px 18px;
    background: #fff;
    border: 1px solid #d9d9d9;
}

.c-footer__association img {
    display: block;
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
}

.c-footer__contact-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-width: 300px;
    height: 82px;
    padding: 0 28px;
    background: #2F5F8F;
    color: #fff !important;
}

.c-footer__contact-icon {
    flex: 0 0 auto;
}

.c-footer__contact-btn span {
    font-size: 16px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.04em;
}

.c-footer__permit {
    margin: 18px 0 0;
    text-align: right;
    font-size: 13px;
    font-weight: 400;
    line-height: 1.8;
    color: #444;
}

.c-footer__bottom {
    background: #5593D0;
}

.c-footer__inner--bottom {
    display: flex;
    justify-content: space-between;
    align-items: center;
    min-height: 60px;
    gap: 20px;
}

.c-footer__copyright,
.c-footer__privacy {
    font-size: 12px;
    line-height: 1.6;
    color: #fff;
}

.c-footer__copyright {
    margin: 0;
}

.c-footer__privacy {
    white-space: nowrap;
}

@media (max-width: 1024px) {
    .c-footer__main {
    padding: 56px 0 48px;
    }

    .c-footer__main .c-footer__inner {
    flex-direction: column;
    gap: 40px;
    }

    .c-footer__left {
    flex: none;
    }

    .c-footer__right {
    width: 100%;
    }

    .c-footer__nav-list {
    justify-content: flex-start;
    }

    .c-footer__cta-row {
    justify-content: flex-start;
    }

    .c-footer__permit {
    text-align: left;
    }
}

@media (max-width: 767px) {
    .c-footer__main {
    padding: 40px 0 32px;
    }

    .c-footer__inner {
    padding: 0 16px;
    }

    .c-footer__logo {
    width: 200px;
    }

    .c-footer__company-name {
    font-size: 20px;
    }

    .c-footer__address {
    font-size: 13px;
    line-height: 1.9;
    }

    .c-footer__nav-list {
    flex-direction: column;
    gap: 12px;
    }

    .c-footer__cta-row {
    flex-direction: column;
    align-items: stretch;
    gap: 14px;
    }

    .c-footer__association,
    .c-footer__contact-btn {
    width: 100%;
    min-width: 0;
    height: 72px;
    }

    .c-footer__permit {
    font-size: 12px;
    line-height: 1.8;
    }

    .c-footer__inner--bottom {
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    min-height: auto;
    padding-top: 14px;
    padding-bottom: 14px;
    gap: 8px;
    }
}

.c-footer__association {
    display: flex;
    align-items: center;
    gap: 12px;
    width: 320px;
    height: 80px;
    padding: 0 18px;
    background: #fff;
    border: 1px solid #d9d9d9;
}

.c-footer__association-logo img {
    width: 48px;
    height: auto;
}

.c-footer__association-text {
    font-size: 16px;
    font-weight: 700;
    line-height: 1;
    color: #333;
}


/* =========================================
    responsive complete
    最小文字サイズ12px対応版
    完全置き換え用
========================================= */

/* ---------- 共通 ---------- */
html,
body {
    overflow-x: hidden;
}

.l-inner,
.p-recruit-feature__inner,
.p-benefit__inner,
.p-school__inner,
.p-school-parents__inner,
.p-recruit__inner,
.c-cta__inner,
.c-footer__inner {
    width: min(100% - 40px, 1320px);
    margin-inline: auto;
}

/* ---------- Header ---------- */
.l-header__inner {
    width: 100%;
    min-height: 10.6rem;
    padding-left: clamp(16px, 2.7vw, 52px);
    padding-right: 0;
    flex-wrap: nowrap;
    row-gap: 0;
}

.l-header__logo a {
    width: clamp(180px, 17vw, 330px);
}

.l-header__nav {
    margin-left: auto;
    width: auto;
    order: 0;
}

.l-header__nav-list {
    flex-wrap: nowrap;
    justify-content: flex-end;
    gap: 0;
}

.l-header__nav-list li {
    width: auto;
}

.l-header__nav-list a {
    padding: 0 clamp(10px, 1.25vw, 28px);
    min-height: 0;
    font-size: clamp(12px, 0.78vw, 16px);
}

.l-header__contact {
    width: clamp(96px, 8vw, 138px);
    min-height: 10.6rem;
    flex-shrink: 0;
}

.l-header__contact-text {
    font-size: clamp(12px, 0.9vw, 16px);
}

/* ---------- FV 最終版 ---------- */
.c-page-fv {
    padding: 68px 0 24px;
    background: #fff;
}

.c-page-fv__inner {
    width: min(100%, 1728px);
    margin-left: auto;
    margin-right: 0;
    position: relative;
}

.c-page-fv__visual {
    position: relative;
    height: auto;
    aspect-ratio: 1728 / 500;
    overflow: hidden;
}

.c-page-fv__bg-img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
}

.c-page-fv__visual::after {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.2);
    z-index: 1;
}

.c-page-fv__triangle {
    position: absolute;
    top: 0;
    left: 0;
    width: 500px;
    height: 500px;
    pointer-events: none;
}

.c-page-fv__triangle--light {
    background: rgba(85, 147, 207, 0.7);
    clip-path: polygon(0 0, 100% 0, 0 100%);
    z-index: 2;
}

.c-page-fv__triangle--dark {
    background: rgba(47, 95, 143, 0.7);
    clip-path: polygon(0 0, 100% 100%, 0 100%);
    z-index: 3;
}

.c-page-fv__content {
    position: absolute;
    top: 0;
    left: 108px;
    z-index: 6;
    color: #fff;
}

.c-page-fv__content-inner {
    width: auto;
    margin: 0;
    padding-top: 160px;
}

.c-page-fv__title-en {
    margin: 0;
    font-family: "Oswald", sans-serif;
    font-size: 100px;
    line-height: 0.9;
    font-weight: 700;
    letter-spacing: 0.03em;
    color: #fff;
}

.c-page-fv__title-ja {
    margin: 24px 0 0;
    font-size: 28px;
    line-height: 1.2;
    font-weight: 700;
    color: #fff;
}

.c-page-fv__character {
    position: absolute;
    top: auto;
    width: 85px;
    height: 150px;
    z-index: 10;
}

.c-page-fv__character img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.c-page-fv__bottom {
    min-height: 68px;
    height: auto;
    background: transparent;
    position: relative;
}

.c-page-fv__bottom-inner {
    width: min(100% - 40px, 1320px);
    margin-left: auto;
    margin-right: auto;
}

.c-breadcrumb {
    height: 100%;
}

.c-breadcrumb__list {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 16px;
    min-height: 68px;
    padding-top: 14px;
    padding-bottom: 12px;
    color: #333;
    font-size: clamp(12px, 0.8vw, 14px);
    font-weight: 400;
}

/* ---------- Message ---------- */
.p-recruit-message {
    padding: clamp(56px, 7vw, 80px) 0;
}

.p-recruit-message__title {
    font-size: clamp(30px, 3.6vw, 52px);
    font-weight: bold;
    font-family: var(--font-japanese);
    line-height: 1.75;
}

.p-recruit-message__text {
    margin-top: clamp(48px, 6vw, 100px);
    margin-bottom: 0;
    font-size: clamp(12px, 1vw, 18px);
    line-height: 2;
    letter-spacing: 0.06em;
}

/* ---------- 3つの魅力 ---------- */
.p-recruit-charm__head {
    width: min(100% - 40px, 1320px);
    padding-top: clamp(40px, 5vw, 82px);
    bottom: clamp(-28px, -2vw, -40px);
}

.p-recruit-charm__title-text {
    font-size: clamp(24px, 2.5vw, 36px);
}

.p-recruit-charm__title-num {
    font-size: clamp(56px, 7vw, 100px);
}

.p-recruit-charm__desc {
    font-size: clamp(12px, 0.95vw, 16px);
}

.p-recruit-charm__data-label {
    font-size: clamp(12px, 0.9vw, 13px);
}

.p-recruit-charm__data-value span {
    font-size: clamp(12px, 0.9vw, 16px);
}

/* ---------- Feature ---------- */
.p-recruit-feature {
    padding-top: clamp(80px, 9vw, 120px);
    padding-bottom: clamp(80px, 10vw, 150px);
}

.p-recruit-feature__inner {
    padding-inline: 0;
}

.p-recruit-feature__row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(24px, 3vw, 48px);
    align-items: center;
}

.p-recruit-feature__row + .p-recruit-feature__row {
    margin-top: clamp(56px, 7vw, 104px);
}

.p-recruit-feature__text {
    padding: 24px 0;
}

.p-recruit-feature__row--reverse .p-recruit-feature__text {
    max-width: none;
    padding-left: 0;
}

.p-recruit-feature__num {
    font-size: clamp(72px, 9vw, 140px);
}

.p-recruit-feature__title {
    margin-top: clamp(44px, 5vw, 80px);
    margin-bottom: clamp(16px, 2vw, 24px);
    font-size: clamp(24px, 2.1vw, 32px);
}

.p-recruit-feature__desc {
    max-width: 100%;
    font-size: clamp(12px, 0.95vw, 16px);
}

.p-recruit-feature__cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(12px, 1.6vw, 20px);
}

.p-recruit-feature-card {
    min-height: clamp(180px, 18vw, 236px);
    padding: clamp(16px, 2vw, 22px) clamp(12px, 1.4vw, 18px) 18px;
}

.p-recruit-feature-card__label {
    min-height: 34px;
    padding-inline: clamp(12px, 1.2vw, 20px);
    font-size: clamp(12px, 0.9vw, 16px);
}

.p-recruit-feature-card__icon {
    width: clamp(40px, 3.8vw, 52px);
    height: clamp(40px, 3.8vw, 52px);
}

.p-recruit-feature-card__value {
    font-size: clamp(36px, 3.2vw, 54px);
}

.p-recruit-feature-card__value small,
.p-recruit-feature-card__value span {
    font-size: clamp(12px, 0.9vw, 18px);
}

.p-recruit-feature-card__note {
    font-size: 12px;
}

/* ---------- 共通セクションヘッド ---------- */
.c-section-head__icon {
    width: clamp(40px, 3vw, 52px);
}

.c-section-head__title {
    margin-top: 20px;
    margin-bottom: clamp(24px, 3vw, 50px);
    font-size: clamp(24px, 2.4vw, 36px);
}

.c-section-head__lead {
    font-size: clamp(12px, 0.95vw, 16px);
}

/* ---------- Benefit ---------- */
.p-benefit {
    padding: clamp(80px, 10vw, 150px) 0;
}

.p-benefit__group + .p-benefit__group {
    margin-top: clamp(48px, 6vw, 80px);
}

.p-benefit__group-title {
    gap: 16px;
    margin-bottom: clamp(24px, 4vw, 44px);
    font-size: clamp(20px, 2vw, 28px);
}

.p-benefit__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(16px, 2vw, 30px);
}

.p-benefit-card {
    align-items: flex-start;
    padding: clamp(16px, 1.8vw, 20px);
}

.p-benefit-card__icon {
    width: clamp(64px, 5vw, 80px);
    height: clamp(64px, 5vw, 80px);
}

.p-benefit-card__icon img {
    width: clamp(32px, 2.6vw, 42px);
    height: clamp(32px, 2.6vw, 42px);
}

.p-benefit-card__title {
    margin-bottom: 12px;
    font-size: clamp(17px, 1.3vw, 20px);
}

.p-benefit-card__text {
    font-size: clamp(12px, 0.85vw, 14px);
}

.p-benefit-card--wide {
    grid-template-columns: clamp(64px, 5vw, 80px) minmax(0, 1fr) auto;
    gap: clamp(16px, 2vw, 24px);
}

.p-benefit-card__link {
    width: min(250px, 100%);
    min-width: 180px;
    height: 80px;
}

.p-benefit-card__link-area {
    font-size: clamp(12px, 0.85vw, 14px);
}

.p-benefit-card__link-name {
    font-size: clamp(14px, 1.1vw, 18px);
}

/* ---------- School ---------- */
.p-school {
    padding: clamp(80px, 10vw, 150px) 0;
}

.p-school::before {
    width: min(52vw, 730px);
    height: min(52vw, 720px);
}

.p-school__list {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    column-gap: clamp(12px, 2vw, 40px);
}

.p-school__item {
    height: 74px;
    padding-inline: 8px;
    font-size: clamp(12px, 0.95vw, 16px);
}

.p-school__item::before,
.p-school__item:nth-last-child(-n + 5)::after {
    width: 100%;
}

/* ---------- School parents ---------- */
.p-school-parents {
    padding: clamp(72px, 8vw, 100px) 0;
}

.p-school-parents__inner {
    width: min(100% - 40px, 1320px);
}

.p-school-parents__content {
    grid-template-columns: minmax(0, 1fr) minmax(320px, 40%);
    column-gap: clamp(24px, 3vw, 70px);
}

.p-school-parents__eyebrow {
    font-size: clamp(12px, 1vw, 18px);
}

.p-school-parents__title {
    font-size: clamp(24px, 2.4vw, 36px);
}

.p-school-parents__lead {
    font-size: clamp(16px, 1.5vw, 24px);
    line-height: 1.9;
}

.p-school-parents__body p {
    font-size: clamp(12px, 0.95vw, 16px);
}

.p-school-parents__info-head {
    font-size: clamp(12px, 0.95vw, 16px);
}

.p-school-parents__info-text {
    font-size: clamp(12px, 0.95vw, 16px);
}

/* ---------- Recruit list ---------- */
.p-recruit__inner {
    width: min(100% - 40px, 1320px);
    padding-top: clamp(80px, 10vw, 150px);
    padding-bottom: clamp(80px, 10vw, 150px);
}

.p-recruit__list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: clamp(20px, 2vw, 36px);
}

.p-recruit__label {
    font-size: clamp(12px, 0.85vw, 14px);
}

.p-recruit__text {
    font-size: clamp(16px, 1.2vw, 20px);
}

.p-recruit__arrow {
    font-size: clamp(18px, 1.2vw, 20px);
}

/* ---------- CTA ---------- */
.c-cta__inner {
    width: min(100% - 40px, 1320px);
    padding-top: clamp(140px, 12vw, 220px);
    padding-bottom: clamp(72px, 8vw, 120px);
}

.c-cta__bg-text {
    top: clamp(-80px, -7vw, -120px);
    font-size: clamp(56px, 10vw, 140px);
}

.c-cta__title {
    font-size: clamp(24px, 3vw, 36px);
}

.c-cta__lead {
    font-size: clamp(12px, 0.95vw, 16px);
}

.c-cta__cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(16px, 2vw, 32px);
}

.c-cta__card {
    padding: clamp(28px, 3vw, 48px) clamp(16px, 2vw, 24px);
}

.c-cta__card-label {
    font-size: clamp(12px, 0.95vw, 16px);
}

/* ---------- Footer ---------- */
.c-footer__inner {
    width: min(100% - 40px, 1320px);
}

.c-footer__company-name {
    font-size: clamp(14px, 1vw, 18px);
}

.c-footer__address,
.c-footer__permit,
.c-footer__privacy,
.c-footer__copyright,
.c-footer__association-text,
.c-footer__nav-list a,
.c-footer__contact-btn span {
    font-size: clamp(12px, 0.9vw, 16px);
}

/* =========================================
    1919px以下
========================================= */
@media (max-width: 1919px) {
    .c-page-fv__triangle {
    width: min(28.935185%, 500px);
    height: auto;
    aspect-ratio: 1 / 1;
    }

    .c-page-fv__content {
    left: clamp(20px, 6vw, 108px);
    }

    .c-page-fv__content-inner {
    padding-top: clamp(120px, 10vw, 160px);
    }

    .c-page-fv__title-en {
    font-size: clamp(56px, 7vw, 100px);
    }

    .c-page-fv__title-ja {
    margin-top: clamp(12px, 1.4vw, 24px);
    font-size: clamp(20px, 2vw, 28px);
    }

    .c-page-fv__character {
    left: clamp(16px, 8vw, 150px);
    top: auto;
    width: clamp(56px, 5vw, 85px);
    height: auto;
    }
}

/* =========================================
    1400px以下
========================================= */
@media (max-width: 1400px) {
    .l-header__inner {
    padding-right: 0;
    }

    .l-header__nav-list a {
    padding: 0 clamp(10px, 1vw, 18px);
    font-size: clamp(12px, 0.72vw, 15px);
    white-space: nowrap;
    }

    .p-benefit__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .p-benefit-card--wide {
    grid-column: 1 / -1;
    }

    .p-school__list {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

/* =========================================
    1024px以下
========================================= */
@media (max-width: 1024px) {
    .c-page-fv__visual {
    aspect-ratio: 1280 / 400;
    }

    .c-page-fv__triangle {
    width: min(31.25%, 400px);
    height: auto;
    aspect-ratio: 1 / 1;
    }

    .c-page-fv__content {
    left: 40px;
    }

    .c-page-fv__content-inner {
    padding-top: 60px;
    }

    .c-page-fv__title-en {
    font-size: 72px;
    line-height: 0.95;
    }

    .c-page-fv__title-ja {
    margin-top: 16px;
    font-size: 22px;
    line-height: 1.3;
    }

    .c-page-fv__character {
    left: 24px;
    top: auto;
    width: 64px;
    height: auto;
    }

    .c-page-fv__bottom-inner {
    width: min(100% - 32px, 1320px);
    }


    .p-recruit-feature__row {
    grid-template-columns: 1fr;
    align-items: flex-start;
    }

    .p-recruit-feature__row--reverse .p-recruit-feature__media,
    .p-recruit-feature__row--reverse .p-recruit-feature__text {
    order: initial;
    }

    .p-benefit-card--wide {
    grid-template-columns: 1fr;
    }

    .p-benefit-card__links {
    flex-direction: column;
    }

    .p-benefit-card__link {
    width: 100%;
    min-width: 0;
    }

    .p-school__list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .p-school::before {
    width: min(64vw, 560px);
    height: min(64vw, 560px);
    transform: translate(-50%, -42%);
    }

    .p-school-parents__inner {
    width: min(100% - 48px, 1320px);
    }

    .p-school-parents__content {
    grid-template-columns: 1fr;
    row-gap: 48px;
    }

    .p-school-parents__image {
    max-width: 520px;
    margin-left: 0;
    }

    .c-cta__cards {
    grid-template-columns: 1fr;
    }
}

/* =========================================
    767px以下
========================================= */
@media (max-width: 767px) {
    .l-inner,
    .p-recruit-feature__inner,
    .p-benefit__inner,
    .p-school__inner,
    .p-school-parents__inner,
    .p-recruit__inner,
    .c-cta__inner,
    .c-footer__inner {
    width: min(100% - 32px, 1320px);
    }

    .l-header__inner {
    min-height: 72px;
    padding-left: 16px;
    padding-right: 16px;
    align-items: center;
    justify-content: space-between;
    }

    .c-page-fv {
    padding-bottom: 16px;
    }

    .c-page-fv__inner {
    width: 100%;
    }

    .c-page-fv__triangle {
    top: 0;
    left: 0;
    width: 50%;
    height: 100%;
    aspect-ratio: auto;
    }

    .c-page-fv__content {
    left: 20px;
    top: 0;
    }

    .c-page-fv__title-en {
    font-size: 48px;
    line-height: 0.95;
    }

    .c-page-fv__title-ja {
    margin-top: 12px;
    font-size: 18px;
    line-height: 1.4;
    }

    .c-page-fv__character {
    left: 16px;
    top: auto;
    width: 56px;
    height: auto;
    }

    .c-page-fv__bottom-inner {
    width: min(100% - 32px, 1320px);
    margin-left: auto;
    margin-right: auto;
    }

    .c-breadcrumb__list {
    justify-content: flex-end;
    text-align: right;
    gap: 8px;
    min-height: auto;
    padding-top: 18px;
    padding-bottom: 10px;
    font-size: 12px;
    white-space: nowrap;
    }

    .c-breadcrumb__item + .c-breadcrumb__item {
    padding-left: 14px;
    }

    .p-recruit-message__title {
    font-size: 30px;
    line-height: 1.8;
    }

    .p-recruit-message__title span::after {
    bottom: -4px;
    }

    .p-recruit-message__text {
    font-size: 14px;
    text-align: center;
    }

    .p-recruit-charm__head {
    width: calc(100% - 32px);
    bottom: -20px;
    padding-top: 28px;
    }

    .p-recruit-charm__title-text {
    font-size: 24px;
    line-height: 1.5;
    }

    .p-recruit-charm__title-num {
    font-size: 58px;
    }

    .p-recruit-feature {
    padding-top: 64px;
    padding-bottom: 80px;
    }

    .p-recruit-feature__row + .p-recruit-feature__row {
    margin-top: 40px;
    }

    .p-recruit-feature__text {
    padding-top: 8px;
    }

    .p-recruit-feature__num {
    font-size: 70px;
    }

    .p-recruit-feature__title {
    margin-top: 46px;
    font-size: 24px;
    }

    .p-recruit-feature__desc {
    font-size: 14px;
    }

    .p-recruit-feature__cards {
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    }

    .p-recruit-feature-card {
    min-height: 160px;
    }

    .p-recruit-feature-card__label,
    .p-recruit-feature-card__value small,
    .p-recruit-feature-card__value span,
    .p-recruit-feature-card__note {
    font-size: 14px;
    }

    .c-section-head__title {
    font-size: 26px;
    }

    .c-section-head__lead,
    .p-benefit-card__text,
    .p-benefit-card__link-area {
    font-size: 14px;
    }

    .p-benefit {
    padding: 80px 0;
    }

    .p-benefit__grid {
    grid-template-columns: 1fr;
    }

    .p-benefit__group-title {
    font-size: 20px;
    gap: 12px;
    }

    .p-school {
    padding: 80px 0;
    }

    .p-school__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 12px;
    }

    .p-school__item {
    min-height: 58px;
    height: auto;
    padding: 14px 0 12px;
    font-size: 14px;
    }

    .p-school::before {
    width: min(88vw, 420px);
    height: min(88vw, 420px);
    transform: translate(-50%, -40%);
    opacity: 0.2;
    }

    .p-school-parents {
    padding: 64px 0 72px;
    }

    .p-school-parents__inner {
    width: min(100% - 32px, 1320px);
    }

    .p-school-parents__title {
    margin-bottom: 24px;
    line-height: 1.5;
    }

    .p-school-parents__lead {
    margin-bottom: 22px;
    font-size: 20px;
    line-height: 1.8;
    }

    .p-school-parents__body p,
    .p-school-parents__info-head,
    .p-school-parents__info-text {
    font-size: 14px;
    }

    .p-school-parents__info-head {
    display: flex;
    min-width: 0;
    width: 100%;
    padding: 10px 16px;
    }

    .p-school-parents__info-text {
    padding: 20px 16px 22px;
    line-height: 2;
    }

    .p-recruit {
    padding: 0;
    }

    .p-recruit__inner {
    width: min(100% - 32px, 1320px);
    }

    .p-recruit__list {
    grid-template-columns: 1fr;
    }

    .p-recruit__item:nth-child(2)::before {
    content: none;
    }

    .p-recruit__label {
    width: 116px;
    font-size: 14px;
    }

    .p-recruit__text {
    font-size: 16px;
    }

    .c-cta__inner {
    width: min(100% - 32px, 1320px);
    padding-top: 120px;
    padding-bottom: 72px;
    }

    .c-cta__bg-text {
    top: -60px;
    font-size: 56px;
    -webkit-text-stroke: 1.5px rgba(255,255,255,0.3);
    }

    .c-cta__title {
    font-size: 24px;
    }

    .c-cta__lead,
    .c-cta__card-label {
    font-size: 14px;
    }

    .c-cta__cards {
    grid-template-columns: 1fr;
    gap: 16px;
    }

    .c-footer__company-name {
    font-size: 14px;
    }

    .c-footer__address,
    .c-footer__permit,
    .c-footer__privacy,
    .c-footer__copyright,
    .c-footer__association-text,
    .c-footer__nav-list a,
    .c-footer__contact-btn span {
    font-size: 14px;
    }
}

/* =========================================
    480px以下
========================================= */
@media (max-width: 480px) {
    .p-recruit-feature__cards {
    grid-template-columns: 1fr;
    }

    .p-school__list {
    grid-template-columns: 1fr;
    }

    .c-page-fv__visual {
    aspect-ratio: 375 / 300;
    }

    .c-page-fv__content-inner {
    padding-top: 136px;
    }

    .c-page-fv__title-en {
    font-size: 44px;
    }

    .c-page-fv__title-ja {
    font-size: 16px;
    }

    .c-page-fv__character {
    width: 52px;
    }
}

/* =========================================
    smartphone hamburger menu
========================================= */
.l-header__toggle,
.l-header__sp-head,
.l-header__sp-contact-wrap {
    display: none;
}

@media (max-width: 767px) {
    .l-header {
    position: relative;
    z-index: 200;
    }

    .l-header__contact {
    display: none;
    }

    .l-header__toggle {
    position: relative;
    z-index: 220;
    display: inline-flex;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 0;
    background: transparent;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    cursor: pointer;
    flex-shrink: 0;
    }

    .l-header__toggle-line {
    display: block;
    width: 28px;
    height: 2px;
    background: #2F5F8F;
    transition: transform 0.3s ease, opacity 0.3s ease;
    }

    .l-header__toggle-line + .l-header__toggle-line {
    margin-top: 7px;
    }

    .l-header__nav {
    position: fixed;
    inset: 0;
    width: 100%;
    height: 100dvh;
    background: #5593CF;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    overflow-y: auto;
    transition: opacity 0.3s ease, visibility 0.3s ease;
    z-index: 210;
    margin-left: 0;
    }

    .l-header.is-open .l-header__nav {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    }

    .l-header__sp-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 84px;
    padding: 0 24px 0 40px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.9);
    }

    .l-header__sp-logo {
    width: min(78%, 300px);
    }

    .l-header__sp-logo img {
    display: block;
    width: 100%;
    height: auto;
    }

    .l-header__sp-close {
    position: relative;
    width: 40px;
    height: 40px;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
    flex-shrink: 0;
    }

    .l-header__sp-close span {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 34px;
    height: 2px;
    background: #fff;
    }

    .l-header__sp-close span:first-child {
    transform: translate(-50%, -50%) rotate(45deg);
    }

    .l-header__sp-close span:last-child {
    transform: translate(-50%, -50%) rotate(-45deg);
    }

    .l-header__nav-list {
    display: block;
    height: auto;
    border-top: 0;
    }

    .l-header__nav-list li {
    height: auto;
    border-bottom: 1px solid rgba(255, 255, 255, 0.9);
    }

    .l-header__nav-list a {
    position: relative;
    display: flex;
    align-items: center;
    min-height: 112px;
    padding: 20px 72px 20px 40px;
    color: #fff;
    font-size: 24px;
    font-weight: 700;
    line-height: 1.4;
    white-space: normal;
    justify-content: flex-start;
    }

    .l-header__nav-list a::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 36px;
    width: 20px;
    height: 20px;
    transform: translateY(-50%);
    background: no-repeat center / contain;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='M13 5l7 7-7 7'/%3E%3C/svg%3E");
    }

    .l-header__sp-contact-wrap {
    display: block;
    padding: 100px 53px 60px;
    }

    .l-header__sp-contact {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 18px;
    min-height: 160px;
    background: #2F5F8F;
    color: #fff;
    }

    .l-header__sp-contact-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    flex-shrink: 0;
    }

    .l-header__sp-contact-icon svg {
    display: block;
    width: 100%;
    height: 100%;
    stroke: #fff;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
    }

    .l-header__sp-contact-text {
    font-size: 24px;
    font-weight: 700;
    line-height: 1.4;
    }

    body.is-menu-open {
    overflow: hidden;
    }
}

@media (max-width: 480px) {
    .l-header__sp-head {
    min-height: 72px;
    padding: 0 20px;
    }

    .l-header__sp-logo {
    width: min(76%, 250px);
    }

    .l-header__sp-close {
    width: 32px;
    height: 32px;
    }

    .l-header__sp-close span {
    width: 26px;
    }

    .l-header__nav-list a {
    min-height: 84px;
    padding: 16px 56px 16px 20px;
    font-size: 18px;
    }

    .l-header__nav-list a::after {
    right: 20px;
    width: 16px;
    height: 16px;
    }

    .l-header__sp-contact-wrap {
    padding: 56px 20px 40px;
    }

    .l-header__sp-contact {
    min-height: 96px;
    gap: 12px;
    }

    .l-header__sp-contact-icon {
    width: 32px;
    height: 32px;
    }

    .l-header__sp-contact-text {
    font-size: 18px;
    }
}

@media (max-width: 527px) {
    .p-recruit-message__title {
        font-size: 20px;
        line-height: 1.8;
    }
}

/* =========================================
    p-recruit-charm responsive fix
    1024以下：
    ・上写真は全面表示をやめる
    ・三人が見えるトリミングにする
    ・白帯は写真高の約1/3
    767以下：
    ・01〜03は縦積み
    ・02も文章を上、写真を下
========================================= */

@media (max-width: 1024px) {
    .p-recruit-charm {
    padding: 0 0 100px;
    }

    .p-recruit-charm__visual {
    position: relative;
    overflow: visible;
    }

    .p-recruit-charm__visual > img {
    display: block;
    width: 100%;
    height: 360px;
    object-fit: cover;
    object-position: center top;
    }

    .p-recruit-charm__head {
    left: 50%;
    bottom: -32px;
    transform: translateX(-50%);
    width: min(100% - 48px, 744px);
    min-height: 120px; /* 360pxの約1/3 */
    padding: 34px 20px 26px;
    background: #fff;
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
    }

    .p-recruit-charm__title {
    margin: 0;
    }

    .p-recruit-charm__title-text {
    font-size: 3rem;
    line-height: 1.4;
    letter-spacing: 0.06em;
    }

    .p-recruit-charm__title-num {
    font-size: 6.4rem;
    }

    .p-recruit-charm__underline-img {
    width: 360px;
    max-width: 78%;
    margin: 10px auto 0;
    }

    .p-recruit-feature {
    padding-top: 84px;
    padding-bottom: 100px;
    }

    .p-recruit-feature__inner {
    width: min(100% - 48px, 744px);
    padding: 0;
    }

    .p-recruit-feature__row {
    grid-template-columns: 1fr;
    row-gap: 24px;
    align-items: start;
    }

    .p-recruit-feature__row + .p-recruit-feature__row {
    margin-top: 56px;
    }

    /* 02も文章→写真の順に統一 */
    .p-recruit-feature__row--reverse .p-recruit-feature__text,
    .p-recruit-feature__row--reverse .p-recruit-feature__media {
    order: initial;
    }

    .p-recruit-feature__text,
    .p-recruit-feature__row--reverse .p-recruit-feature__text {
    width: 100%;
    max-width: none;
    justify-self: auto;
    padding: 12px 0 0;
    }

    .p-recruit-feature__num {
    top: 0;
    font-size: 8rem;
    }

    .p-recruit-feature__title {
    margin: 52px 0 18px;
    font-size: 2.8rem;
    line-height: 1.5;
    }

    .p-recruit-feature__desc {
    max-width: none;
    font-size: 1.5rem;
    line-height: 2;
    }

    .p-recruit-feature__media,
    .p-recruit-feature__row--reverse .p-recruit-feature__media {
    width: 100%;
    justify-self: auto;
    }

    .p-recruit-feature__media img {
    width: 100%;
    aspect-ratio: 744 / 320;
    object-fit: cover;
    object-position: center center;
    }

    .p-recruit-feature__cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    }
}

@media (max-width: 767px) {
    .p-recruit-charm {
    padding: 0 0 80px;
    }

    .p-recruit-charm__visual > img {
    height: 180px;
    object-position: center top;
    }

    .p-recruit-charm__head {
    width: calc(100% - 32px);
    min-height: 60px; /* 180pxの約1/3 */
    bottom: -20px;
    padding: 18px 14px 16px;
    }

    .p-recruit-charm__title-text {
    font-size: 2.4rem;
    line-height: 1.45;
    }

    .p-recruit-charm__title-num {
    font-size: 5.6rem;
    }

    .p-recruit-charm__underline-img {
    width: 240px;
    max-width: 78%;
    margin-top: 8px;
    }

    .p-recruit-feature {
    padding-top: 56px;
    padding-bottom: 80px;
    }

    .p-recruit-feature__inner {
    width: min(100% - 32px, 744px);
    padding: 0;
    }

    .p-recruit-feature__row {
    grid-template-columns: 1fr;
    row-gap: 20px;
    }

    .p-recruit-feature__row + .p-recruit-feature__row {
    margin-top: 40px;
    }

    /* 02も確実に文章→写真 */
    .p-recruit-feature__row--reverse .p-recruit-feature__text {
    order: 1;
    }

    .p-recruit-feature__row--reverse .p-recruit-feature__media {
    order: 2;
    }

    .p-recruit-feature__text,
    .p-recruit-feature__row--reverse .p-recruit-feature__text {
    padding: 10px 0 0;
    }

    .p-recruit-feature__num {
    font-size: 7rem;
    }

    .p-recruit-feature__title {
    margin: 46px 0 16px;
    font-size: 2.4rem;
    }

    .p-recruit-feature__desc {
    font-size: 1.4rem;
    line-height: 2;
    }

    .p-recruit-feature__media img {
    aspect-ratio: 343 / 220;
    }

    .p-recruit-feature__cards {
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    }
}

@media (max-width: 480px) {
    .p-recruit-charm__visual > img {
    height: 160px;
    }

    .p-recruit-charm__head {
    min-height: 54px;
    }

    .p-recruit-feature__cards {
    grid-template-columns: 1fr;
    }
}

/* =========================================
    p-recruit-charm 再調整
    ・1024〜768：01〜03は左右配置
    ・767以下：上写真はトリミング維持、01〜03は文章上/写真下
========================================= */

/* ---------- 1024〜768 ---------- */
@media (max-width: 1024px) and (min-width: 768px) {
    .p-recruit-charm {
    padding: 0 0 100px;
    }

    .p-recruit-charm__visual {
    position: relative;
    overflow: visible;
    }

    .p-recruit-charm__visual > img {
    display: block;
    width: 100%;
    height: 360px;
    object-fit: cover;
    object-position: center top;
    }

    .p-recruit-charm__head {
    left: 50%;
    bottom: -32px;
    transform: translateX(-50%);
    width: calc(100% - 48px);
    max-width: 1320px;    
    min-height: 120px;
    padding: 34px 20px 26px;
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    }

    .p-recruit-charm__title {
    margin: 0;
    }

    .p-recruit-charm__title-text {
    font-size: 3rem;
    line-height: 1.4;
    letter-spacing: 0.06em;
    }

    .p-recruit-charm__title-num {
    font-size: 6.4rem;
    }

    .p-recruit-charm__underline-img {
    width: 360px;
    max-width: 78%;
    margin: 10px auto 0;
    }

    .p-recruit-feature {
    padding-top: 84px;
    padding-bottom: 100px;
    }

    .p-recruit-feature__inner {
    width: calc(100% - 48px);
    max-width: 1320px;
    padding: 0;
    }

    /* ここが重要：1カラムにしない */
    .p-recruit-feature__row {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    align-items: center;
    gap: 24px;
    }

    .p-recruit-feature__row + .p-recruit-feature__row {
    margin-top: 56px;
    }

    /* 02はPCと同じ左右反転を維持 */
    .p-recruit-feature__row--reverse .p-recruit-feature__media {
    order: 1;
    }

    .p-recruit-feature__row--reverse .p-recruit-feature__text {
    order: 2;
    }

    .p-recruit-feature__text,
    .p-recruit-feature__row--reverse .p-recruit-feature__text {
    width: 100%;
    max-width: none;
    padding: 12px 0 0;
    justify-self: auto;
    }

    .p-recruit-feature__num {
    top: 0;
    font-size: 8rem;
    }

    .p-recruit-feature__title {
    margin: 52px 0 18px;
    font-size: 2.4rem;
    line-height: 1.5;
    }

    .p-recruit-feature__desc {
    max-width: none;
    font-size: 1.4rem;
    line-height: 2;
    }

    .p-recruit-feature__media,
    .p-recruit-feature__row--reverse .p-recruit-feature__media {
    width: 100%;
    justify-self: auto;
    }

    .p-recruit-feature__media img {
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    object-position: center center;
    }

    .p-recruit-feature__cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    }
}

/* ---------- 767以下 ---------- */
@media (max-width: 767px) {
    .p-recruit-charm {
    padding: 0 0 80px;
    }

    /* PCの全面表示に戻さない */
    .p-recruit-charm__visual {
    position: relative;
    overflow: visible;
    }

    .p-recruit-charm__visual > img {
    display: block;
    width: 100%;
    height: 180px;
    object-fit: cover;
    object-position: center top;
    }

    .p-recruit-charm__head {
    width: calc(100% - 32px);
    min-height: 60px;
    bottom: -20px;
    left: 50%;
    transform: translateX(-50%);
    padding: 18px 14px 16px;
    background: #fff;
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
    }

    .p-recruit-charm__title {
    margin: 0;
    }

    .p-recruit-charm__title-text {
    font-size: 2.4rem;
    line-height: 1.45;
    letter-spacing: 0.04em;
    }

    .p-recruit-charm__title-num {
    font-size: 5.6rem;
    }

    .p-recruit-charm__underline-img {
    width: 240px;
    max-width: 78%;
    margin-top: 8px;
    }

    .p-recruit-feature {
    padding-top: 56px;
    padding-bottom: 80px;
    }

    .p-recruit-feature__inner {
    width: min(100% - 32px, 744px);
    padding: 0;
    }

    .p-recruit-feature__row {
    grid-template-columns: 1fr;
    row-gap: 20px;
    }

    .p-recruit-feature__row + .p-recruit-feature__row {
    margin-top: 40px;
    }

    /* 01〜03全部 文章上 / 写真下 */
    .p-recruit-feature__text {
    order: 1;
    }

    .p-recruit-feature__media,
    .p-recruit-feature__cards {
    order: 2;
    }

    /* 02も明示的に戻す */
    .p-recruit-feature__row--reverse .p-recruit-feature__text {
    order: 1;
    }

    .p-recruit-feature__row--reverse .p-recruit-feature__media {
    order: 2;
    }

    .p-recruit-feature__text,
    .p-recruit-feature__row--reverse .p-recruit-feature__text {
    max-width: none;
    width: 100%;
    justify-self: auto;
    padding: 10px 0 0;
    }

    .p-recruit-feature__num {
    top: 0;
    font-size: 7rem;
    }

    .p-recruit-feature__title {
    margin: 46px 0 16px;
    font-size: 2.4rem;
    line-height: 1.5;
    }

    .p-recruit-feature__desc {
    max-width: none;
    font-size: 1.4rem;
    line-height: 2;
    }

    .p-recruit-feature__media img {
    width: 100%;
    aspect-ratio: 343 / 220;
    object-fit: cover;
    object-position: center center;
    }

    .p-recruit-feature__cards {
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    }
}

@media (max-width: 480px) {
    .p-recruit-charm__visual > img {
    height: 160px;
    }

    .p-recruit-charm__head {
    min-height: 54px;
    }

    .p-recruit-feature__cards {
    grid-template-columns: 1fr;
    }
}

/* =========================================
    480以下でもカードを横並び維持
========================================= */
@media (max-width: 480px) {
    .p-recruit-feature__cards {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 10px;
    }
}

/* =========================================
    先輩社員の出身校
    できるだけ5列で収める調整
========================================= */
.p-school__list {
    display: grid;
    grid-template-columns: repeat(5, minmax(180px, 1fr));
    column-gap: clamp(12px, 1.6vw, 40px);
    row-gap: 0;
    justify-content: center;
}

.p-school__item {
    height: 74px;
    padding: 0 8px;
    font-size: clamp(12px, 0.9vw, 16px);
}

/* ボーダーは固定幅ではなく各セル幅に合わせる */
.p-school__item::before {
    width: 100%;
}

.p-school__item:nth-last-child(-n + 5)::after {
    width: 100%;
}

/* =========================================
    先輩社員の出身校
    969以下でも5列を維持しやすくする
========================================= */
@media (max-width: 969px) {
    .p-school__list {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    column-gap: 20px;
    }

    .p-school__item {
    padding: 0 4px;
    font-size: 14px;
    }

    .p-school__item::before,
    .p-school__item:nth-last-child(-n + 5)::after {
    width: 100%;
    }
}

@media (max-width: 767px) {
    /* 日本地図 */
    .p-school {
    position: relative;
    overflow: hidden;
    }

    .p-school::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 260px;
    height: 260px;
    background: url("../img/map-japan.svg") no-repeat center / contain;
    transform: translate(-50%, -42%);
    z-index: 0;
    pointer-events: none;
    }

    .p-school__inner,
    .p-school__content,
    .p-school__list {
    position: relative;
    z-index: 1;
    }

    .p-school__content {
    background: none !important;
    }

    /* 学校名は5列維持 */
    .p-school__list {
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    column-gap: 8px !important;
    }

    .p-school__item {
    min-height: 68px;
    height: auto;
    padding: 10px 2px;
    font-size: 14px;
    line-height: 1.3;
    white-space: normal;
    word-break: keep-all;
    overflow-wrap: anywhere;
    }

    /* いったん既存の下線ルールを無効化 */
    .p-school__item::after,
    .p-school__item:nth-last-child(-n + 2)::after,
    .p-school__item:nth-last-child(-n + 5)::after {
    content: none !important;
    }

    /* 最後の5つにだけ下線を出す */
    .p-school__item:nth-last-child(-n + 5)::after {
    content: "" !important;
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 1px;
    background: #5593CF;
    }

    .p-school__item::before {
    width: 100%;
    }
}

/* =========================================
    p-school 日本地図を実画像で表示
========================================= */
.p-school {
    position: relative;
    overflow: hidden;
}

.p-school__bg-map {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 730px;
    height: 720px;
    transform: translate(-50%, -45%);
    z-index: 0;
    pointer-events: none;
}

.p-school__bg-map img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.p-school__inner,
.p-school__content,
.p-school__list {
    position: relative;
    z-index: 1;
}

/* 既存の疑似要素は使わない */
.p-school::before {
    content: none !important;
}

@media (max-width: 767px) {
    .p-school__bg-map {
    width: auto;
    height: auto;
    transform: translate(-50%, -42%);
    }
}

@media (max-width: 767px) {
    .p-school__bg-map {
    width: 100%;
    max-width: 100%;
    height: auto;
    }

    .p-school__bg-map img {
    width: 100%;
    height: auto;
    }
}

/* ===============================
    p-school-parents responsive fix
    ※1920以上は触らない
=============================== */

/* 1024以下でもまだ横並びを維持 */
@media (max-width: 1024px) {
    .p-school-parents {
    padding: 80px 0;
    }

    .p-school-parents__inner {
    width: min(100% - 48px, 1320px);
    }

    .p-school-parents__content {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(320px, 44%);
    column-gap: clamp(24px, 4vw, 56px);
    row-gap: 0;
    align-items: start;
    }

    .p-school-parents__image {
    width: 100%;
    max-width: none;
    margin-left: auto;
    }

    .p-school-parents__image img {
    width: 100%;
    height: auto;
    display: block;
    }

    /* 背景ロゴは下げず、セクション頭に揃える */
    .p-school-parents__bg-logo {
    top: 0;
    left: -250px;
    }

    .p-school-parents__bg-logo img,
    .p-school-parents__bg-logo svg {
    width: 1000px;
    height: auto;
    }

    .p-school-parents__eyebrow {
    font-size: clamp(12px, 1.3vw, 18px);
    }

    .p-school-parents__title {
    font-size: clamp(24px, 3vw, 36px);
    line-height: 1.45;
    }

    .p-school-parents__lead {
    font-size: clamp(16px, 2vw, 24px);
    line-height: 1.8;
    }

    .p-school-parents__body p,
    .p-school-parents__info-head,
    .p-school-parents__info-text {
    font-size: clamp(12px, 1.3vw, 16px);
    }
}

/* 767以下でのみ縦並び */
@media (max-width: 767px) {
    .p-school-parents {
    padding: 64px 0 72px;
    }

    .p-school-parents__inner {
    width: min(100% - 32px, 1320px);
    }

    .p-school-parents__content {
    grid-template-columns: 1fr;
    row-gap: 32px;
    }

    .p-school-parents__text {
    order: 1;
    }

    .p-school-parents__image {
    order: 2;
    max-width: 100%;
    margin-left: 0;
    }

    .p-school-parents__title {
    margin-bottom: 24px;
    font-size: clamp(22px, 6vw, 30px);
    line-height: 1.5;
    }

    .p-school-parents__eyebrow {
    margin-bottom: 20px;
    font-size: 12px;
    line-height: 1.4;
    }

    .p-school-parents__lead {
    margin-bottom: 22px;
    font-size: clamp(16px, 4.8vw, 20px);
    line-height: 1.8;
    }

    .p-school-parents__body p {
    font-size: 14px;
    line-height: 2;
    }

    .p-school-parents__info {
    margin-top: 28px;
    }

    .p-school-parents__info-head {
    display: flex;
    width: 100%;
    min-width: 0;
    padding: 10px 16px;
    font-size: 14px;
    }

    .p-school-parents__info-text {
    padding: 20px 16px 22px;
    font-size: 14px;
    line-height: 2;
    }

    /* SPでもロゴの頭を揃える */
    .p-school-parents__bg-logo {
    top: 0;
    left: -150px;
    }

    .p-school-parents__bg-logo img,
    .p-school-parents__bg-logo svg {
    width: 700px;
    height: auto;
    }
}

/* =========================================
    ABOUT
========================================= */
.p-about {
    background: #fff;
}

/* FVは採用ページの共通下層FVを流用 */
.c-page-fv--about .c-page-fv__visual::after {
    background: rgba(0, 0, 0, 0.28);
}

/* =========================================
    選ばれ続ける理由
    採用情報の feature 構成に寄せる
========================================= */
.p-about-reason {
    padding: 120px 0 150px;
    background: #fff;
}

.p-about-reason__head {
    text-align: center;
    margin-bottom: 110px;
}

.p-about-reason__title {
    margin: 0;
    font-size: 5.2rem;
    line-height: 1.55;
    font-weight: 700;
    letter-spacing: 0.08em;
    color: #333;
    transform: rotate(-5deg);
}

.p-about-reason__title span {
    position: relative;
    display: inline-block;
}

.p-about-reason__title span::after {
    content: "";
    position: absolute;
    left: -4%;
    bottom: -10px;
    width: 108%;
    height: 2px;
    background: #5593CF;
}

.p-about-reason__lead {
    max-width: 980px;
    margin: 70px auto 0;
    font-size: 1.6rem;
    line-height: 2.2;
    letter-spacing: 0.08em;
    color: #333;
}

.p-about-reason__list {

}

/* =========================================
    各理由
========================================= */
.p-about-reason-item {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 104px;
}

.p-about-reason-item:last-child {
    margin-bottom: 0;
}

.p-about-reason-item--reverse {
    margin-bottom: 32px;
}

.p-about-reason-item__body,
.p-about-reason-item__image {
    min-width: 0;
}

.p-about-reason-item__body {
    position: relative;
    padding: 24px 24px 24px 24px;
}

.p-about-reason-item__num {
    position: absolute;
    top: -8px;
    left: 0;
    margin: 0;
    font-family: "Oswald", sans-serif;
    font-size: 140px;
    line-height: 1;
    font-weight: 700;
    letter-spacing: 0.08em;
    color: #EDF4FA;
}

.p-about-reason-item__title {
    position: relative;
    z-index: 1;
    margin: 80px 0 24px;
    font-size: 3.2rem;
    line-height: 1.5;
    font-weight: 700;
    letter-spacing: 0.08em;
    color: #2F5F8F;
}

.p-about-reason-item__text {
    position: relative;
    z-index: 1;
    margin: 0;
    font-size: 1.6rem;
    line-height: 2;
    letter-spacing: 0.08em;
    color: #333;
}

/* 01・03 */
.p-about-reason-item:not(.p-about-reason-item--reverse) .p-about-reason-item__body {
    flex: 1;
}

/* 02 */
.p-about-reason-item--reverse .p-about-reason-item__body {
    flex: 1;
    padding-left: 40px;
    padding-right: 0;
}

.p-about-reason-item__image {
    margin: 0;
    width: 40%;
}

.p-about-reason-item__image img {
    display: block;
    width: 100%;
    aspect-ratio: 490 / 370;
    object-fit: cover;
}

.p-about-reason-item--reverse .p-about-reason-item__image {
    width: 40%;
}

.p-about-reason-item__link {
    margin-top: 34px;
}

/* =========================================
    3工場カード
========================================= */
.p-about-factory-cards {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
    margin-bottom: 104px;
}

.p-about-factory-card {
    padding: 24px 20px;
    background: #EDF4FA;
}

.p-about-factory-card__title {
    margin: 0 0 12px;
    font-size: 1.8rem;
    line-height: 1.6;
    font-weight: 700;
    letter-spacing: 0.06em;
    color: #333;
}

.p-about-factory-card__text {
    margin: 0;
    font-size: 1.4rem;
    line-height: 1.9;
    letter-spacing: 0.04em;
    color: #333;
}

/* =========================================
    tablet
========================================= */
@media (max-width: 1024px) {
    .p-about-reason {
    padding: 100px 0 120px;
    }

    .p-about-reason__head {
    margin-bottom: 80px;
    }

    .p-about-reason__title {
    font-size: 4rem;
    }

    .p-about-reason__lead {
    margin-top: 54px;
    font-size: 1.5rem;
    }

    .p-about-reason__list {
    gap: 80px;
    }

    .p-about-reason-item,
    .p-about-reason-item--reverse {
    flex-direction: column;
    }

    .p-about-reason-item--reverse .p-about-reason-item__image {
    order: 1;
    }

    .p-about-reason-item--reverse .p-about-reason-item__body {
    order: 2;
    }

    .p-about-reason-item__body,
    .p-about-reason-item--reverse .p-about-reason-item__body {
    max-width: none;
    width: 100%;
    justify-self: auto;
    padding: 12px 0 0;
    }

    .p-about-reason-item__num {
    top: 0;
    left: 0;
    font-size: 10rem;
    }

    .p-about-reason-item__title {
    margin: 56px 0 18px;
    font-size: 3rem;
    }

    .p-about-reason-item__text {
    max-width: none;
    font-size: 1.5rem;
    line-height: 2;
    }

    .p-about-reason-item__image,
    .p-about-reason-item--reverse .p-about-reason-item__image {
    width: 100%;
    }

    .p-about-factory-cards {
    grid-template-columns: 1fr;
    gap: 16px;
    margin-top: 24px;
    }
}

/* =========================================
    SP
========================================= */
@media (max-width: 767px) {
    .p-about-reason {
    padding: 80px 0;
    }

    .p-about-reason__head {
    margin-bottom: 56px;
    }

    .p-about-reason__title {
    font-size: 2.8rem;
    line-height: 1.7;
    }

    .p-about-reason__title span::after {
    bottom: -7px;
    }

    .p-about-reason__lead {
    margin-top: 42px;
    font-size: 1.2rem;
    line-height: 2;
    }

    .p-about-reason__list {
    gap: 56px;
    }

    .p-about-reason-item,
    .p-about-reason-item--reverse {
    row-gap: 22px;
    }

    .p-about-reason-item__num {
    font-size: 7rem;
    top: 0;
    }

    .p-about-reason-item__title {
    margin: 44px 0 18px;
    font-size: 2.4rem;
    line-height: 1.6;
    }

    .p-about-reason-item__text {
    font-size: 1.2rem;
    line-height: 2;
    }

    .p-about-reason-item__image img {
    aspect-ratio: 343 / 220;
    }

    .p-about-factory-card {
    padding: 18px 16px;
    }

    .p-about-factory-card__title {
    font-size: 1.5rem;
    margin-bottom: 10px;
    }

    .p-about-factory-card__text {
    font-size: 1.2rem;
    line-height: 1.9;
    }
}

/* =========================================
    tablet
    ※ 1024以下でも左右レイアウト維持
========================================= */
@media (max-width: 1024px) {
    .p-about-reason {
    padding: 100px 0 120px;
    }

    .p-about-reason__head {
    margin-bottom: 80px;
    }

    .p-about-reason__title {
    font-size: 4rem;
    }

    .p-about-reason__lead {
    margin-top: 54px;
    font-size: 1.5rem;
    }

    .p-about-reason__list {
    gap: 80px;
    }

    /* ここ重要：縦積みにしない */
    .p-about-reason-item {
    grid-template-columns: minmax(0, 1fr) minmax(0, 480px);
    column-gap: 40px;
    align-items: center;
    }

    .p-about-reason-item--reverse {
    grid-template-columns: minmax(0, 480px) minmax(0, 1fr);
    }

    .p-about-reason-item__body {
    padding: 16px 16px 16px 16px;
    }

    .p-about-reason-item--reverse .p-about-reason-item__body {
    width: 100%;
    max-width: none;
    padding-left: 24px;
    padding-right: 0;
    justify-self: auto;
    }

    .p-about-reason-item__num {
    font-size: 10rem;
    top: 0;
    left: 0;
    }

    .p-about-reason-item__title {
    margin: 56px 0 18px;
    font-size: 2.8rem;
    }

    .p-about-reason-item__text {
    max-width: none;
    font-size: 1.5rem;
    line-height: 2;
    }

    .p-about-reason-item__image img {
    aspect-ratio: 480 / 300;
    }

    .p-about-factory-cards {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin-top: 24px;
    }

    .p-about-factory-card {
    padding: 20px 16px;
    }

    .p-about-factory-card__title {
    font-size: 1.6rem;
    }

    .p-about-factory-card__text {
    font-size: 1.3rem;
    }
}

/* =========================================
    SP
    ※ 767以下で縦積み
========================================= */
@media (max-width: 767px) {
    .p-about-reason {
    padding: 80px 0;
    }

    .p-about-reason__head {
    margin-bottom: 56px;
    }

    .p-about-reason__title {
    font-size: 2.8rem;
    line-height: 1.7;
    }

    .p-about-reason__title span::after {
    bottom: -7px;
    }

    .p-about-reason__lead {
    margin-top: 42px;
    font-size: 1.4rem;
    line-height: 2;
    }

    .p-about-reason__list {
    gap: 56px;
    }

    .p-about-reason-item,
    .p-about-reason-item--reverse {
    grid-template-columns: 1fr;
    row-gap: 22px;
    }

    /* 01・03はそのまま */
    .p-about-reason-item__body,
    .p-about-reason-item--reverse .p-about-reason-item__body {
    width: 100%;
    max-width: none;
    padding: 12px 0 0;
    justify-self: auto;
    }

    /* 02だけ：文字を上、画像を下 */
    .p-about-reason-item--reverse .p-about-reason-item__body {
    order: 1;
    }

    .p-about-reason-item--reverse .p-about-reason-item__image {
    order: 2;
    }

    .p-about-reason-item__num {
    font-size: 7rem;
    top: 0;
    left: 0;
    }

    .p-about-reason-item__title {
    margin: 44px 0 18px;
    font-size: 2.4rem;
    line-height: 1.6;
    }

    .p-about-reason-item__text {
    max-width: none;
    font-size: 1.4rem;
    line-height: 2;
    }

    .p-about-reason-item__image img {
    aspect-ratio: 343 / 220;
    }

    .p-about-factory-cards {
    grid-template-columns: 1fr;
    gap: 16px;
    margin-top: 24px;
    }

    .p-about-factory-card {
    padding: 18px 16px;
    }

    .p-about-factory-card__title {
    font-size: 1.5rem;
    margin-bottom: 10px;
    }

    .p-about-factory-card__text {
    font-size: 1.4rem;
    line-height: 1.9;
    }
}

/* =========================================
    数字で見る横浜容器工業
========================================= */
.p-about-data {
    padding: 0 0 150px;
    background: #fff;
}

.p-about-data__head {
    text-align: center;
    margin-bottom: 70px;
}

.p-about-data__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px 28px;
    max-width: 920px;
    margin: 0 auto;
}

.p-about-data-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 190px;
    padding: 22px 18px;
    color: #fff;
    text-align: center;
    background: #2F5F8F;
}

/* ===============================
    PC・タブレット（3列2段）
    1行目：濃 / 薄 / 濃
    2行目：薄 / 濃 / 薄
=============================== */
.p-about-data-card:nth-child(1),
.p-about-data-card:nth-child(3),
.p-about-data-card:nth-child(5) {
    background: #2F5F8F;
}

.p-about-data-card:nth-child(2),
.p-about-data-card:nth-child(4),
.p-about-data-card:nth-child(6) {
    background: #5593CF;
}

.p-about-data-card__label {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 32px;
    margin: 0 0 22px;
    padding: 0 22px;
    border-radius: 999px;
    background: #fff;
    color: #2F5F8F;
    font-size: 1.3rem;
    line-height: 1;
    font-weight: 700;
    letter-spacing: 0.04em;
}

/* 薄背景カードのラベル文字色 */
.p-about-data-card:nth-child(2) .p-about-data-card__label,
.p-about-data-card:nth-child(4) .p-about-data-card__label,
.p-about-data-card:nth-child(6) .p-about-data-card__label {
    color: #5593CF;
}

.p-about-data-card__value {
    margin: 0;
    font-family: "Oswald", sans-serif;
    font-size: 5.4rem;
    line-height: 1;
    font-weight: 700;
    letter-spacing: 0.02em;
}

.p-about-data-card__value span {
    margin-left: 0.16em;
    font-family: "Noto Sans JP", sans-serif;
    font-size: 1.7rem;
    font-weight: 700;
}

.p-about-data-card__text {
    margin: 18px 0 0;
    font-size: 1.3rem;
    line-height: 1.7;
    font-weight: 500;
    letter-spacing: 0.04em;
}

/* =========================================
    tablet
========================================= */
@media (max-width: 1024px) {
    .p-about-data {
    padding-bottom: 120px;
    }

    .p-about-data__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
    max-width: none;
    }

    .p-about-data-card {
    min-height: 170px;
    padding: 20px 16px;
    }

    .p-about-data-card__label {
    min-height: 30px;
    margin-bottom: 18px;
    padding: 0 18px;
    font-size: 1.2rem;
    }

    .p-about-data-card__value {
    font-size: 4.8rem;
    }

    .p-about-data-card__value span {
    font-size: 1.5rem;
    }

    .p-about-data-card__text {
    margin-top: 14px;
    font-size: 1.2rem;
    }
}

/* =========================================
    SP（767以下）
    1行目：濃 / 薄
    2行目：薄 / 濃
    3行目：濃 / 薄
========================================= */
@media (max-width: 767px) {
    .p-about-data {
    padding-bottom: 80px;
    }

    .p-about-data__head {
    margin-bottom: 40px;
    }

    .p-about-data__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    }

    .p-about-data-card {
    min-height: 148px;
    padding: 16px 10px;
    background: #2F5F8F; /* いったんリセット */
    }

    /* SP配色
        1:濃 2:薄
        3:薄 4:濃
        5:濃 6:薄 */
    .p-about-data-card:nth-child(1),
    .p-about-data-card:nth-child(4),
    .p-about-data-card:nth-child(5) {
    background: #2F5F8F;
    }

    .p-about-data-card:nth-child(2),
    .p-about-data-card:nth-child(3),
    .p-about-data-card:nth-child(6) {
    background: #5593CF;
    }

    .p-about-data-card__label {
    min-height: 28px;
    margin-bottom: 14px;
    padding: 0 12px;
    font-size: 1.1rem;
    color: #2F5F8F; /* いったんリセット */
    }

    .p-about-data-card:nth-child(2) .p-about-data-card__label,
    .p-about-data-card:nth-child(3) .p-about-data-card__label,
    .p-about-data-card:nth-child(6) .p-about-data-card__label {
    color: #5593CF;
    }

    .p-about-data-card__value {
    font-size: 3.8rem;
    }

    .p-about-data-card__value span {
    font-size: 1.2rem;
    }

    .p-about-data-card__text {
    margin-top: 12px;
    font-size: 1.1rem;
    line-height: 1.6;
    }
}

/* =========================================
    共通詳細リンク（菱形＋→）
========================================= */
.c-detail-link {
    display: inline-flex;
    align-items: center;
    gap: 20px; /* 指定 */
    margin-top: 34px;
    color: #333;
    text-decoration: none;
    transition: opacity 0.3s ease;
}

/* .c-detail-link:hover {
    opacity: 0.72;
} */

.c-detail-link__text {
    font-size: 15px;
    line-height: 1.6;
    font-weight: 700;
    letter-spacing: 0.06em;
}

/* ===== 菱形 ===== */
.c-detail-link__icon {
    position: relative;
    width: 100px;   /* 指定 */
    height: 60px;   /* 指定 */
    background: #5593CF;
    flex-shrink: 0;

    clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%);
}

/* ===== →（横矢印）棒 ===== */
.c-detail-link__icon::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;

    width: 20px;   /* 指定 */
    height: 2px;   /* 指定 */

    background: #fff;

    transform: translate(-60%, -50%);
}

/* ===== →（矢印の先） ===== */
.c-detail-link__icon::after {
    content: "";
    position: absolute;
    top: 50%;
    left: calc(50% + 6px);

    width: 8px;
    height: 8px;

    border-top: 2px solid #fff;
    border-right: 2px solid #fff;

    transform: translate(-50%, -50%) rotate(45deg);
}

/* =========================================
    SP
========================================= */
@media (max-width: 767px) {
    .c-detail-link {
    gap: 14px;
    margin-top: 24px;
    }

    .c-detail-link__text {
    font-size: 12px;
    }

    .c-detail-link__icon {
    width: 70px;
    height: 42px;
    }

    .c-detail-link__icon::before {
    width: 14px;
    height: 2px;
    }

    .c-detail-link__icon::after {
    width: 6px;
    height: 6px;
    border-top: 2px solid #fff;
    border-right: 2px solid #fff;
    }
}

/* =========================================
    ドラム缶の回収ページ
========================================= */
.p-retrieval {
    overflow: hidden;
}

/* -----------------------------------------
    intro
----------------------------------------- */
.p-retrieval-intro {
    padding: clamp(60px, 6vw, 100px) 0 clamp(70px, 7vw, 118px);
    background: #fff;
}

.p-retrieval-intro__lead {
    margin: 0;
    text-align: center;
    font-size: clamp(14px, 1vw, 18px);
    line-height: 2.2;
    font-weight: 700;
    letter-spacing: 0.08em;
    color: #333;
}

/* -----------------------------------------
    全国回収ネットワーク
----------------------------------------- */
.p-retrieval-network {
    padding: clamp(72px, 8vw, 120px) 0 0;
    background: #262626;
    color: #fff;
}

.p-retrieval-network__inner {
    max-width: 1320px;
}

.p-retrieval-network__head {
    margin: 0 auto;
    text-align: center;
    position: relative;
}

.p-retrieval-network__title {
    margin: 0;
    font-size: clamp(24px, 2.1vw, 42px);
    line-height: 1.5;
    font-weight: 700;
    letter-spacing: 0.08em;
    color: #fff;
    z-index: 1;
}

.p-retrieval-network__text {
    margin: 28px auto 0;
    max-width: 760px;
    font-size: clamp(14px, 0.95vw, 15px);
    line-height: 2.1;
    letter-spacing: 0.06em;
    color: rgba(255, 255, 255, 0.88);
    z-index: 2;
}

.p-retrieval-network__map {
    width: 100vw;
    margin-top: -10%;
    max-width: none;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    z-index: 0;
}

.p-retrieval-network__map img {
    display: block;
    width: 100%;
    height: auto;
    z-index: 0;
}

/* -----------------------------------------
    Drum-Net
----------------------------------------- */
.p-retrieval-drum-net {
    padding: clamp(80px, 9vw, 140px) 0 clamp(80px, 9vw, 140px);
    background: #fff;
}

.p-retrieval-drum-net__head {
    text-align: center;
}

.p-retrieval-drum-net__eyebrow {
    margin: 0;
    font-size: clamp(12px, 0.95vw, 18px);
    line-height: 1.6;
    font-weight: 700;
    letter-spacing: 0.12em;
    color: #333;
}

.p-retrieval-drum-net__title {
    margin: 10px 0 0;
    font-size: clamp(44px, 5vw, 86px);
    line-height: 1;
    font-weight: 600;
    letter-spacing: 0.03em;
    color: #5593CF;
}

.p-retrieval-drum-net__lead {
    margin: 28px auto 0;
    font-size: clamp(14px, 0.95vw, 15px);
    line-height: 2;
    letter-spacing: 0.06em;
    color: #333;
}

/* flow */
.p-retrieval-flow {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    margin-top: clamp(40px, 5vw, 70px);
    border-top: 1px solid #c6d2dd;
    border-bottom: 1px solid #c6d2dd;
}

.p-retrieval-flow__item {
    position: relative;
    min-width: 0;
    margin-block: 18px 24px;
    padding-inline: 18px;
    text-align: center;
    border-left: 1px solid #c6d2dd;
    background: #fff;
}

.p-retrieval-flow__item:first-child {
    border-left: none;
}

.p-retrieval-flow__item::after {
    content: "";
    position: absolute;
    top: 50%;
    right: -7px;
    width: 12px;
    height: 12px;
    border-top: 1px solid #c6d2dd;
    border-right: 1px solid #c6d2dd;
    transform: translateY(-50%) rotate(45deg);
    background: #c6d2dd;
    z-index: 2;
    clip-path: polygon(0 0, 100% 0, 100% 100%);
}

.p-retrieval-flow__item:last-child::after {
    content: none;
}

.p-retrieval-flow__num {
    display: block;
    margin-bottom: 14px;
    font-size: clamp(14px, 1vw, 18px);
    line-height: 1;
    font-weight: 600;
    color: #5593CF;
}

.p-retrieval-flow__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 58px;
    height: 58px;
    margin: 0 auto 16px;
}

.p-retrieval-flow__icon img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.p-retrieval-flow__title {
    margin: 0;
    font-size: clamp(14px, 0.9vw, 16px);
    line-height: 1.8;
    font-weight: 700;
    letter-spacing: 0.04em;
    color: #333;
}

.p-retrieval-flow__note {
    margin: 8px 0 0;
    font-size: 14px;
    line-height: 1.6;
    color: #666;
}

/* Drum-Net CTA */
.p-retrieval-drum-net__cta {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(20px, 2.4vw, 32px);
    margin-top: clamp(40px, 5vw, 68px);
}

.p-retrieval-drum-net__cta-box {
    padding: clamp(28px, 3vw, 42px) clamp(20px, 2.4vw, 40px);
    text-align: center;
    color: #fff;
}

.p-retrieval-drum-net__cta-box--light {
    background: #5593CF;
}

.p-retrieval-drum-net__cta-box--dark {
    background: #2F5F8F;
}

.p-retrieval-drum-net__cta-label {
    margin: 0;
    font-size: clamp(14px, 0.95vw, 16px);
    line-height: 1.6;
    font-weight: 700;
    letter-spacing: 0.06em;
    color: #fff;
}

.p-retrieval-drum-net__cta-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    min-width: min(100%, 320px);
    min-height: 62px;
    margin-top: 24px;
    padding: 14px 24px;
    border: 1px solid rgba(255, 255, 255, 0.65);
    transition: all 0.3s ease;
}

.p-retrieval-drum-net__cta-btn:hover {
    background-color: #fff;
    color: #5593CF;
}

.p-retrieval-drum-net__cta-btn-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    flex-shrink: 0;
}

.p-retrieval-drum-net__cta-btn-icon img,
.p-retrieval-drum-net__cta-btn-icon svg {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.p-retrieval-drum-net__cta-btn-icon svg {
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.p-retrieval-drum-net__cta-btn:hover .p-retrieval-drum-net__cta-btn-icon svg {
    stroke: #5593CF;
}

.p-retrieval-drum-net__cta-btn span:last-child {
    font-size: clamp(14px, 0.95vw, 16px);
    line-height: 1.5;
    font-weight: 700;
    letter-spacing: 0.06em;
}

.p-retrieval-drum-net__cta-note {
    margin: 18px 0 0;
    font-size: clamp(14px, 0.9vw, 14px);
    line-height: 1.9;
    color: rgba(255, 255, 255, 0.92);
}

/* -----------------------------------------
    回収条件
----------------------------------------- */
.p-retrieval-condition {
    padding: 0 0 clamp(90px, 9vw, 140px);
    background: #fff;
}

.p-retrieval-condition__box {
    position: relative;
    padding: clamp(50px, 4vw, 64px) clamp(20px, 4vw, 80px);
    background: #EDF4FA;
}

.p-retrieval-condition__head {
    position: absolute;
    top: 25px;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 100%;
    text-align: center;
}

.p-retrieval-condition__title {
    margin: 0;
    font-size: clamp(24px, 2vw, 40px);
    line-height: 1.5;
    font-weight: 700;
    letter-spacing: 0.08em;
    color: #333;
}

.p-retrieval-condition__lead {
    margin: 18px auto 0;
    max-width: 880px;
    font-size: clamp(14px, 0.9vw, 14px);
    line-height: 2;
    letter-spacing: 0.04em;
    color: #555;
}

.p-retrieval-condition__list {
    margin-top: clamp(28px, 3.2vw, 44px);
    border-top: 1px solid #bdd0e1;
}

.p-retrieval-condition__item {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 22px 0;
    border-bottom: 1px solid #bdd0e1;
}

.p-retrieval-condition__check {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    flex-shrink: 0;
    font-size: 16px;
    line-height: 1;
    color: #2F5F8F;
}

.p-retrieval-condition__text {
    font-size: clamp(14px, 0.95vw, 16px);
    font-weight: bold;
    line-height: 1.9;
    letter-spacing: 0.04em;
    color: #333;
}

.p-retrieval-condition__note {
    margin-top: 18px;
    font-size: clamp(14px, 0.95vw, 16px);
    line-height: 1.9;
    letter-spacing: 0.04em;
    color: #666;
}

/* -----------------------------------------
    responsive
----------------------------------------- */
@media (max-width: 1200px) {
    .p-retrieval-flow {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .p-retrieval-flow__item:nth-child(3)::after {
    content: none;
    }
}

@media (max-width: 1024px) {
    .p-retrieval-network__head,
    .p-retrieval-drum-net__lead,
    .p-retrieval-condition__lead {
    width: min(100%, 100%);
    }

    .p-retrieval-drum-net__cta {
    grid-template-columns: 1fr;
    }

    .p-retrieval-condition__box {
    padding-left: 24px;
    padding-right: 24px;
    }
}

@media (max-width: 767px) {
    .p-retrieval-intro {
    padding: 56px 0 64px;
    }

    .p-retrieval-network {
    padding-top: 64px;
    }

    .p-retrieval-network__title {
    font-size: 24px;
    line-height: 1.6;
    }

    .p-retrieval-network__text {
    margin-top: 20px;
    }

    .p-retrieval-drum-net {
    padding: 72px 0 80px;
    }

    .p-retrieval-flow {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: 36px;
    }

    .p-retrieval-flow__item:nth-child(3)::after {
    content: "";
    }

    .p-retrieval-flow__item:nth-child(even)::after {
    content: none;
    }

    .p-retrieval-flow__item {
    padding: 16px 12px 20px;
    }

    .p-retrieval-flow__icon {
    width: 46px;
    height: 46px;
    margin-bottom: 12px;
    }

    .p-retrieval-drum-net__cta-box {
    padding: 28px 16px;
    }

    .p-retrieval-drum-net__cta-btn {
    min-width: 100%;
    }

    .p-retrieval-condition {
    padding-bottom: 80px;
    }

    .p-retrieval-condition__box {
    padding: 70px 16px;
    }

    .p-retrieval-condition__item {
    gap: 10px;
    padding: 18px 0;
    }
}

@media (max-width: 480px) {
    .p-retrieval-flow {
    grid-template-columns: 1fr;
    border: none;
    }

    .p-retrieval-flow__item {
    margin-block: 0;
    padding-block: 30px;
    border-left: 1px solid #c6d2dd;
    border-right: 1px solid #c6d2dd;
    }

    .p-retrieval-flow__item::before {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: calc(100% - 36px);
    height: 1px;
    background: #c6d2dd;
    }

    .p-retrieval-flow__item:first-child {
    border-left: 1px solid #c6d2dd;
    border-right: 1px solid #c6d2dd;
    }

    .p-retrieval-flow__item:first-child::before {
    content: none;
    }

    .p-retrieval-flow__item::after{
    top: auto;
    bottom: -7px;
    right: 50%;
    transform: translateX(50%) rotate(45deg);
    clip-path: polygon(100% 100%, 100% 0, 0 100%);
    }

    .p-retrieval-flow__item:nth-child(even)::after {
    content: "";
    }

    .p-retrieval-flow__item:last-child::after {
    content: none;
    }

    .p-retrieval-network__title,
    .p-retrieval-condition__title {
    font-size: 22px;
    }
}

/* =========================================
    COMPANY
========================================= */
.p-about {
    background: #fff;
}

/* FVは共通を流用 */
.c-page-fv--company .c-page-fv__visual::after {
    background: rgba(0, 0, 0, 0.28);
}

/* =========================================
    共通見出しの白版
========================================= */
.c-section-head--white .c-section-head__title,
.c-section-head--white .c-section-head__lead {
    color: #fff;
}

/* =========================================
    共通詳細リンク（菱形＋→）
    ※ 共通CSSに未追加なら使用
========================================= */
.c-detail-link {
    display: inline-flex;
    align-items: center;
    gap: 20px;
    margin-top: 34px;
    color: #333;
    text-decoration: none;
    transition: opacity 0.3s ease;
}

/* .c-detail-link:hover {
    opacity: 0.72;
} */

.c-detail-link__text {
    font-size: 16px;
    line-height: 1.6;
    font-weight: 700;
    letter-spacing: 0.08em;
}

.c-detail-link__icon {
    position: relative;
    width: 86px;
    height: 52px;
    flex-shrink: 0;
    background: #5593CF;
    clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%);
}

.c-detail-link__icon::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 20px;
    height: 2px;
    background: #fff;
    transform: translate(-60%, -50%);
}

.c-detail-link__icon::after {
    content: "";
    position: absolute;
    top: 50%;
    left: calc(50% + 6px);
    width: 8px;
    height: 8px;
    border-top: 2px solid #fff;
    border-right: 2px solid #fff;
    transform: translate(-50%, -50%) rotate(45deg);
}

/* =========================================
    ページ内ナビ
========================================= */
.p-about-nav {
    padding: 32px 0 48px;
    background: #fff;
}

.p-about-nav__list {
    display: grid;
    grid-template-columns: repeat(6, 210px);
    gap: 12px;
    justify-content: center;
}

.p-about-nav__link {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 210px;
    height: 70px;
    padding: 0 20px 0 18px;
    border: 1px solid #5593CF;
    background: #fff;
    color: #333;
    text-decoration: none;
    transition: all 0.3s ease;
}

.p-about-nav__link:hover {
    background-color: #5593CF;
}

.p-about-nav__text {
    display: block;
    font-size: 14px;
    line-height: 1.4;
    font-weight: 500;
    letter-spacing: 0.04em;
    color: #333;
}

.p-about-nav__link:hover .p-about-nav__text{
    color: #fff;
}

.p-about-nav__arrow {
    position: relative;
    display: block;
    width: 16px;
    height: 16px;
    flex-shrink: 0;
}

.p-about-nav__arrow::before {
    content: "";
    position: absolute;
    top: 1px;
    left: 50%;
    width: 1px;
    height: 12px;
    background: #5593CF;
    transform: translateX(-50%);
}

.p-about-nav__arrow::after {
    content: "";
    position: absolute;
    bottom: 1px;
    left: 50%;
    width: 7px;
    height: 7px;
    border-right: 1px solid #5593CF;
    border-bottom: 1px solid #5593CF;
    transform: translateX(-50%) rotate(45deg);
}

.p-about-nav__link:hover .p-about-nav__arrow::before{
    background: #fff;
}
.p-about-nav__link:hover .p-about-nav__arrow::after {
    border-right: 1px solid #fff;
    border-bottom: 1px solid #fff;
}

/* =========================================
    タブレット：2列表示
========================================= */
@media (max-width: 1279px) {
    .p-about-nav__list {
    grid-template-columns: repeat(2, minmax(280px, 1fr));
    max-width: 900px;
    margin: 0 auto;
    }

    .p-about-nav__link {
    width: 100%;
    }
}

/* =========================================
    スマホ：非表示
========================================= */
@media (max-width: 767px) {
    .p-about-nav {
    display: none;
    }
}

/* =========================================
    企業理念
========================================= */
.p-about-message {
    padding: 0 0 150px;
    background: #fff;
}

.p-about-message__inner {
    max-width: 1320px;
    margin: 0 auto;
}

.p-about-message__head {
    margin-bottom: 56px;
}

.p-about-message__body {
    width: 100%;
}

/* 上段：左文章 + 右画像 */
.p-about-message__content {
    display: flex;
    align-items: flex-start;
    gap: 80px;
    overflow: visible;
}

.p-about-message__text-wrap {
    flex: 1;
}

.p-about-message__catch {
    margin: 0 0 28px;
    font-size: 40px;
    line-height: 1.5;
    font-weight: 700;
    letter-spacing: 0.08em;
    color: #2F5F8F;
}

.p-about-message__text p {
    margin: 0;
    font-size: 16px;
    line-height: 2.0;
    letter-spacing: 0.08em;
}

.p-about-message__text p + p {
    margin-top: 30px;
}

.p-about-message__emphasis {
    font-weight: 700;
}

.p-about-message__leadline {
    padding: 10px 0;
    border-top: 1px solid #5593CF;
    border-bottom: 1px solid #5593CF;
    font-size: 20px;
    font-weight: 700;
    color: #2F5F8F;
}

.p-about-message__image-wrap {
    width: 50%;
}

.p-about-message__image {
    margin: 0;
}

.p-about-message__image img {
    display: block;
    width: 100%;
    height: auto;
    min-height: 430px;
    object-fit: cover;
}

/* ISOエリア */
.p-about-message__iso {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 260px;
    align-items: center;
    margin-top: 64px;
    background: #EDF4FA;
}

.p-about-message__iso-title {
    margin: 40px 40px 30px;
    font-size: 24px;
    line-height: 1.5;
    font-weight: 700;
    letter-spacing: 0.04em;
    color: #333;
}

.p-about-message__iso-text {
    margin: 0 40px 40px;
    max-width: 860px;
    font-size: 16px;
    line-height: 2.0;
    letter-spacing: 0.08em;
    color: #333;
}

.p-about-message__iso-button {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100%;
    padding: 24px 20px;
    border-left: 1px solid #D3DFEB;
}

/* 共通ボタンを中央寄せで使うための補助 */
.c-detail-link--center {
    justify-content: center;
    margin-top: 0;
}

/* =========================================
    1440以下
========================================= */
@media (max-width: 1440px) {
    .p-about-message__content {
    gap: 56px;
    }

    .p-about-message__text-wrap {
    /* width: 520px;
    max-width: 520px; */
    }

    .p-about-message__catch {
    font-size: 36px;
    }
}

/* =========================================
    1024以下
========================================= */
@media (max-width: 1024px) {
    .p-about-message {
    padding: 0 0 120px;
    }

    .p-about-message__head {
    margin-bottom: 40px;
    }

    .p-about-message__content {
    display: block;
    }

    .p-about-message__text-wrap {
    width: 100%;
    max-width: none;
    margin-bottom: 24px;
    }

    .p-about-message__catch {
    margin-bottom: 24px;
    font-size: 36px;
    }

    .p-about-message__text p {
    font-size: 15px;
    line-height: 2.05;
    }

    .p-about-message__image-wrap {
    width: 100%;
    }

    .p-about-message__image img {
    min-height: 360px;
    }

    .p-about-message__iso {
    grid-template-columns: 1fr 220px;
    margin-top: 48px;
    }

    .p-about-message__iso-body {
    padding: 32px 24px;
    }

    .p-about-message__iso-title {
    font-size: 26px;
    }

    .p-about-message__iso-text {
    font-size: 14px;
    line-height: 2;
    }
}

/* =========================================
    767以下
========================================= */
@media (max-width: 767px) {
    .p-about-message {
    padding: 0 0 80px;
    }

    .p-about-message__head {
    margin-bottom: 28px;
    }

    .p-about-message__text-wrap {
    width: 100%;
    max-width: none;
    }

    .p-about-message__catch {
    margin: 0 0 20px;
    font-size: 28px;
    line-height: 1.5;
    }

    .p-about-message__text p {
    font-size: 14px;
    line-height: 2;
    }

    .p-about-message__text p + p {
    margin-top: 18px;
    }

    .p-about-message__leadline {
    padding: 8px 0;
    }

    .p-about-message__image {
    width: 100%;
    margin-top: 28px;
    }

    .p-about-message__image img {
    min-height: auto;
    aspect-ratio: 343 / 240;
    }

    .p-about-message__iso {
    grid-template-columns: 1fr;
    margin-top: 36px;
    }

    .p-about-message__iso-body {
    padding: 24px 20px 20px;
    }

    .p-about-message__iso-title {
    margin: 0 0 14px;
    font-size: 20px;
    line-height: 1.6;
    }

    .p-about-message__iso-text {
    margin: 0;
    font-size: 14px;
    line-height: 1.9;
    }

    .p-about-message__iso-button {
    justify-content: flex-start;
    border-left: none;
    border-top: 1px solid #D3DFEB;
    }
}

/* =========================================
    代表挨拶
========================================= */
.p-about-greeting {
    padding: 0 0 150px;
    background: #fff;
}

.p-about-greeting__inner {
    max-width: 1320px;
    margin: 0 auto;
}

.p-about-greeting__content {
    display: flex;
    grid-template-columns: 500px minmax(0, 1fr);
    gap: 74px;
    align-items: start;
}

/* =========================================
    左：1枚画像
========================================= */

.p-about-greeting__media {
    width: 45%;
}

.p-about-greeting__photo {
    position: relative;
    margin: 0;
    overflow: hidden;
}

.p-about-greeting__photo img {
    display: block;
    width: 100%;
    height: auto;
}

/* =========================================
    写真上コピー
========================================= */
.p-about-greeting__copy {
    position: absolute;
    top: 25%;
    left: 13%;
    z-index: 2;
    display: flex;
    flex-direction: column-reverse;
    align-items: flex-start;
    width: 31%;
    pointer-events: none;
}

.p-about-greeting__copy-bracket {
    width: 130px;
    height: auto;
    margin-bottom: 8px;
}

.p-about-greeting__copy-text {
    position: absolute;
    top: -10%;
    left: 7%;
    rotate: -7deg;
    margin: 0;
    font-size: 1.7rem;
    line-height: 1.6;
    font-weight: 500;
    letter-spacing: 0.08em;
    color: #fff;
    text-shadow: 0 0 10px rgba(0, 0, 0, 0.18);
}

/* =========================================
    右：テキスト
========================================= */
.p-about-greeting__body {
    flex: 1;
}

.p-about-greeting__lead {
    margin: 0 0 34px;
    font-size: 26px;
    line-height: 1.8;
    font-weight: 700;
    letter-spacing: 0.04em;
    color: #2F5F8F;
}

.p-about-greeting__text p {
    margin: 0;
    font-size: 16px;
    line-height: 2.2;
    letter-spacing: 0.04em;
    color: #333;
}

.p-about-greeting__text p + p {
    margin-top: 10px;
}

.p-about-greeting__name {
    display: flex;
    justify-content: flex-end;
    align-items: baseline;
    gap: 18px;
    margin: 22px 0 0;
}

.p-about-greeting__name-role {
    font-size: 14px;
    line-height: 1.6;
    color: #333;
}

.p-about-greeting__name-text {
    font-size: 16px;
    line-height: 1;
    font-weight: 700;
    letter-spacing: 0.08em;
    color: #333;
}

/* =========================================
    アニメーション下準備
========================================= */
.p-about-greeting__copy-bracket,
.p-about-greeting__copy-text {
    opacity: 0;
    transition: transform 0.9s ease, opacity 0.9s ease;
}

.p-about-greeting__copy-bracket {
    transform: translateY(24px);
}

.p-about-greeting__copy-text {
    transform: translateY(24px) rotate(-7deg);
}

.p-about-greeting.is-animated .p-about-greeting__copy-bracket,
.p-about-greeting.is-animated .p-about-greeting__copy-text {
    opacity: 1;
}

.p-about-greeting.is-animated .p-about-greeting__copy-bracket {
    transform: translateY(0);
}

.p-about-greeting.is-animated .p-about-greeting__copy-text {
    transform: translateY(0) rotate(-7deg);
}

.p-about-greeting.is-animated .p-about-greeting__copy-bracket {
    animation: greetingBracketFloat 3.2s ease-in-out infinite;
    animation-delay: 0.9s;
}

.p-about-greeting.is-animated .p-about-greeting__copy-text {
    animation: greetingTextFloat 3.2s ease-in-out infinite;
    animation-delay: 0.9s;
}

@keyframes greetingBracketFloat {
    0%, 100% {
    transform: translateY(0);
    opacity: 0.92;
    }
    50% {
    transform: translateY(-4px);
    opacity: 1;
    }
}

@keyframes greetingTextFloat {
    0%, 100% {
    transform: translateY(0);
    opacity: 0.9;
    }
    50% {
    transform: translateY(3px);
    opacity: 1;
    }
}

/* =========================================
    1366以下
========================================= */
@media (max-width: 1366px) {
    .p-about-greeting__content {
    grid-template-columns: 440px minmax(0, 1fr);
    gap: 48px;
    }

    .p-about-greeting__copy-text {
    font-size: 1.2rem;
    }

    .p-about-greeting__copy-bracket {
    width: 116px;
    }

    .p-about-greeting__lead {
    font-size: 24px;
    }
}

/* =========================================
    1024以下
========================================= */
@media (max-width: 1024px) {
    .p-about-greeting {
    padding: 0 0 120px;
    }

    .p-about-greeting__content {
    flex-direction: column-reverse;
    gap: 40px;
    }

    .p-about-greeting__media {
    display: flex;
    justify-content: center;
    width: 100%;
    }

    .p-about-greeting__copy-text {
    left: 15%;
    font-size: clamp(0.8rem, 2.25vw, 2.6rem);
    }

    .p-about-greeting__body {
    padding-top: 0;
    }

    .p-about-greeting__lead {
    margin-bottom: 24px;
    font-size: 24px;
    line-height: 1.7;
    }

    .p-about-greeting__text p {
    font-size: 15px;
    line-height: 2.05;
    }

    .p-about-greeting__name-text {
    font-size: 28px;
    }
}

/* =========================================
    767以下
========================================= */
@media (max-width: 767px) {
    .p-about-greeting {
    padding: 0 0 80px;
    }

    .p-about-greeting__content {
    gap: 28px;
    }

    .p-about-greeting__photo {
    width: 100%;
    }

    .p-about-greeting__copy-bracket {
    width: 92px;
    margin-bottom: 6px;
    }

    .p-about-greeting__lead {
    margin-bottom: 18px;
    font-size: 20px;
    line-height: 1.7;
    }

    .p-about-greeting__text p {
    font-size: 14px;
    line-height: 2;
    }

    .p-about-greeting__text p + p {
    margin-top: 10px;
    }

    .p-about-greeting__name {
    gap: 12px;
    margin-top: 20px;
    }

    .p-about-greeting__name-role {
    font-size: 12px;
    }

    .p-about-greeting__name-text {
    font-size: 22px;
    }
}

/* =========================================
    HISTORY
========================================= */
.p-history {
    position: relative;
    overflow: hidden;
    padding: 110px 0 150px;
    background: linear-gradient(90deg, #5b99db 0%, #2f5f8f 100%);
}

/* 背景写真 --------------------------------- */
.p-history__photos {
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
}

.p-history__photo {
    position: absolute;
    margin: 0;
    overflow: hidden;
}

.p-history__photo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* 1920幅カンプ基準の配置 */
.p-history__photo--01 {
    top: 490px;
    left: 120px;
    width: 480px;
    height: auto;
}

.p-history__photo--02 {
    top: 820px;
    right: 210px;
    width: 480px;
    height: auto;
}

.p-history__photo--03 {
    top: 1182px;
    left: 250px;
    width: 480px;
    height: auto;
}

.p-history__photo--04 {
    top: 1600px;
    right: 80px;
    width: 540px;
    height: auto;
}

.p-history__photo--05 {
    top: 2200px;
    left: 80px;
    width: 480px;
    height: auto;
}

.p-history__photo--06 {
    top: 2600px;
    right: 140px;
    width: 480px;
    height: auto;
}

/* 本体 --------------------------------- */
.p-history__inner {
    position: relative;
    z-index: 3;
    width: 100%;
}

.p-history__head {
    text-align: center;
    padding: 0 24px;
}

.p-history__icon {
    width: 52px;
    margin: 0 auto 10px;
}

.p-history__icon img {
    display: block;
    width: 100%;
    height: auto;
}

.p-history__title {
    margin: 0;
    color: #fff;
    font-size: 36px;
    line-height: 1.4;
    font-weight: 700;
    letter-spacing: 0.06em;
}

.p-history__lead {
    margin: 40px 0 0;
    color: #fff;
    font-size: 16px;
    line-height: 2.0;
    font-weight: 400;
    letter-spacing: 0.08em;
}

/* 年代グループ --------------------------------- */
.p-history__era {
    margin-top: 100px;
}

.p-history__era + .p-history__era {
    margin-top: 80px;
}

.p-history__era-title {
    display: flex;
    align-items: center;
    justify-content: center;
    width: fit-content;
    min-width: 246px;
    height: 70px;
    margin: 0 auto 48px;
    padding: 0 28px;
    border: 1px solid rgba(255, 255, 255, 0.72);
    color: #fff;
    font-size: 28px;
    line-height: 1.4;
    font-weight: 700;
    letter-spacing: 0.06em;
    background: transparent;
}

/* 白帯群 --------------------------------- */
.p-history__rows {
    position: relative;
    width: 860px;
    margin: 0 auto;
}

.p-history__line {
    position: absolute;
    top: 55px;
    bottom: 55px;
    left: 161px; /* 36(padding) + 200(year area) + 45(marker area center) */
    width: 1px;
    background: #2f5f8f;
    z-index: 20;
    pointer-events: none;
}

.p-history__row {
    position: relative;
    z-index: 10;
    display: grid;
    grid-template-columns: 80px 90px 1fr;
    align-items: center;
    width: 860px;
    height: 110px;
    padding: 0 34px 0 36px;
    background: rgba(255, 255, 255, 0.8);
}

.p-history__row + .p-history__row {
    margin-top: 20px;
}

.p-history__year {
    color: #2f5f8f;
    font-family: "Oswald", sans-serif;
    font-size: 36px;
    line-height: 1;
    font-weight: 700;
    letter-spacing: 0.03em;
}

.p-history__marker {
    position: relative;
    width: 90px;
    height: 100%;
}

.p-history__marker::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 45px;
    width: 20px;
    height: 20px;
    background: #2f5f8f;
    transform: translate(-50%, -50%) rotate(45deg);
    z-index: 22;
}

.p-history__desc {
    color: #333;
    font-size: 16px;
    line-height: 2;
    font-weight: 400;
    letter-spacing: 0.08em;
}

.p-history__desc--split {
    display: flex;
    align-items: center;
    gap: 28px;
}

.p-history__desc--split strong {
    font-size: 24px;
    line-height: 1.6;
    font-weight: 700;
}

.p-history__desc--split span {
    font-size: 16px;
    line-height: 1.8;
}

/* =========================================
    1600以下
========================================= */
@media (max-width: 1600px) {
    .p-history__photo--01 {
    left: 24px;
    width: 290px;
    height: 384px;
    }

    .p-history__photo--02 {
    right: 30px;
    width: 320px;
    height: 318px;
    }

    .p-history__photo--03 {
    left: 60px;
    width: 320px;
    height: 255px;
    }

    .p-history__photo--04 {
    right: 20px;
    width: 420px;
    height: 226px;
    }

    .p-history__photo--05 {
    left: 20px;
    width: 380px;
    height: 281px;
    }

    .p-history__photo--06 {
    right: 30px;
    width: 390px;
    height: 255px;
    }
}

/* =========================================
    1200以下
========================================= */
@media (max-width: 1200px) {
    .p-history {
    padding: 64px 0 110px;
    }

    .p-history__title {
    font-size: 32px;
    }

    .p-history__lead {
    font-size: 14px;
    line-height: 2.1;
    }

    .p-history__era-title {
    min-width: 220px;
    height: 62px;
    font-size: 24px;
    }

    .p-history__rows {
    width: min(860px, calc(100% - 80px));
    }

    .p-history__row {
    width: 100%;
    grid-template-columns: 160px 72px 1fr;
    padding: 0 24px 0 28px;
    }

    .p-history__line {
    left: 224px; /* 28 + 160 + 36 */
    }

    .p-history__marker {
    width: 72px;
    }

    .p-history__marker::before {
    left: 36px;
    }

    .p-history__year {
    font-size: 32px;
    }

    .p-history__desc,
    .p-history__desc--split strong,
    .p-history__desc--split span {
    font-size: 15px;
    }

    .p-history__photo--01,
    .p-history__photo--02,
    .p-history__photo--03,
    .p-history__photo--04,
    .p-history__photo--05,
    .p-history__photo--06 {
    opacity: 0.28;
    }
}

/* =========================================
    900以下
========================================= */
@media (max-width: 900px) {
    .p-history {
    padding: 56px 0 90px;
    }

    .p-history__head {
    padding: 0 16px;
    }

    .p-history__title {
    font-size: 28px;
    }

    .p-history__lead {
    font-size: 13px;
    line-height: 2;
    }

    .p-history__era {
    margin-top: 48px;
    }

    .p-history__era + .p-history__era {
    margin-top: 44px;
    }

    .p-history__era-title {
    min-width: 190px;
    height: 54px;
    margin-bottom: 24px;
    font-size: 22px;
    }

    .p-history__rows {
    width: calc(100% - 32px);
    }

    .p-history__row {
    grid-template-columns: 120px 56px 1fr;
    height: 96px;
    padding: 0 16px 0 18px;
    }

    .p-history__row + .p-history__row {
    margin-top: 12px;
    }

    .p-history__line {
    top: 48px;
    bottom: 48px;
    left: 166px; /* 18 + 120 + 28 */
    }

    .p-history__marker {
    width: 56px;
    }

    .p-history__marker::before {
    left: 28px;
    width: 18px;
    height: 18px;
    }

    .p-history__year {
    font-size: 28px;
    }

    .p-history__desc {
    font-size: 14px;
    line-height: 1.8;
    }

    .p-history__desc--split {
    gap: 16px;
    }

    .p-history__desc--split strong,
    .p-history__desc--split span {
    font-size: 14px;
    }

    .p-history__photo--01,
    .p-history__photo--03,
    .p-history__photo--05 {
    left: -20px;
    }

    .p-history__photo--02,
    .p-history__photo--04,
    .p-history__photo--06 {
    right: -20px;
    }
}

/* =========================================
    767以下
========================================= */
@media (max-width: 767px) {
    .p-history {
    padding: 48px 0 72px;
    }

    .p-history__icon {
    width: 38px;
    margin-bottom: 8px;
    }

    .p-history__title {
    font-size: 24px;
    }

    .p-history__lead {
    margin-top: 20px;
    font-size: 14px;
    line-height: 1.9;
    }

    .p-history__era {
    margin-top: 40px;
    }

    .p-history__era + .p-history__era {
    margin-top: 36px;
    }

    .p-history__era-title {
    min-width: 160px;
    height: 46px;
    margin-bottom: 18px;
    padding: 0 18px;
    font-size: 18px;
    }

    .p-history__rows {
    width: calc(100% - 24px);
    }

    .p-history__line {
    display: none;
    }

    .p-history__row {
    grid-template-columns: 90px 42px 1fr;
    height: auto;
    min-height: 84px;
    padding: 14px 12px 14px 14px;
    }

    .p-history__year {
    font-size: 24px;
    }

    .p-history__marker {
    width: 42px;
    }

    .p-history__marker::before {
    left: 21px;
    width: 16px;
    height: 16px;
    }

    .p-history__desc {
    font-size: 14px;
    line-height: 1.75;
    }

    .p-history__desc--split {
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
    }

    .p-history__desc--split strong,
    .p-history__desc--split span {
    font-size: 14px;
    }

    .p-history__photo--01,
    .p-history__photo--02,
    .p-history__photo--03,
    .p-history__photo--04,
    .p-history__photo--05,
    .p-history__photo--06 {
    opacity: 0.16;
    }

    .p-history__photo--01 {
    top: 260px;
    width: 180px;
    height: 238px;
    }

    .p-history__photo--02 {
    top: 620px;
    width: 190px;
    height: 188px;
    }

    .p-history__photo--03 {
    top: 980px;
    width: 180px;
    height: 139px;
    }

    .p-history__photo--04 {
    top: 1310px;
    width: 240px;
    height: 129px;
    }

    .p-history__photo--05 {
    top: 1610px;
    width: 220px;
    height: 163px;
    }

    .p-history__photo--06 {
    top: 1880px;
    width: 230px;
    height: 150px;
    }
}

/* =========================================
    環境・品質方針
========================================= */
.p-about-policy {
    padding: 150px 0;
    background: #fff;
}

.p-about-policy__inner {
    width: min(100% - 80px, 1320px);
    margin: 0 auto;
}

.p-about-policy__head {
    text-align: center;
}

.p-about-policy__lead {
    margin: 34px 0 0;
    font-size: 16px;
    line-height: 2.0;
    font-weight: 400;
    letter-spacing: 0.08em;
    color: #333;
}

.p-about-policy__links {
    display: grid;
    grid-template-columns: 1fr 1px 1fr;
    align-items: center;
    max-width: 860px;
    margin: 72px auto 0;
}

.p-about-policy__item {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 104px;
}

.p-about-policy__divider {
    width: 1px;
    height: 104px;
    background: #d9e1ea;
    justify-self: center;
}

/* 共通ボタンをこのセクション用に整える */
.c-detail-link--policy {
    margin-top: 0;
    justify-content: center;
    gap: 24px;
}

.c-detail-link--policy .c-detail-link__text {
    font-size: 18px;
    line-height: 1.8;
    font-weight: 700;
    letter-spacing: 0.04em;
    color: #333;
}

/* =========================================
    1024以下
========================================= */
@media (max-width: 1024px) {
    .p-about-policy {
    padding: 120px 0;
    }

    .p-about-policy__inner {
    width: min(100% - 48px, 1320px);
    }

    .p-about-policy__lead {
    margin-top: 28px;
    font-size: 14px;
    line-height: 2.05;
    }

    .p-about-policy__links {
    max-width: 760px;
    margin-top: 56px;
    }

    .p-about-policy__item {
    min-height: 92px;
    }

    .p-about-policy__divider {
    height: 92px;
    }

    .c-detail-link--policy .c-detail-link__text {
    font-size: 14px;
    }
}

/* =========================================
    767以下
========================================= */
@media (max-width: 767px) {
    .p-about-policy {
    padding: 80px 0;
    }

    .p-about-policy__inner {
    width: min(100% - 32px, 1320px);
    }

    .p-about-policy__lead {
    margin-top: 20px;
    font-size: 14px;
    line-height: 1.9;
    }

    .p-about-policy__links {
    grid-template-columns: 1fr;
    gap: 20px;
    margin-top: 36px;
    }

    .p-about-policy__item {
    min-height: auto;
    }

    .p-about-policy__divider {
    width: 100%;
    height: 1px;
    }

    .c-detail-link--policy {
    justify-content: space-between;
    width: 100%;
    gap: 16px;
    }

    .c-detail-link--policy .c-detail-link__text {
    font-size: 14px;
    line-height: 1.8;
    }
}

/* =========================================
    会社概要
========================================= */
.p-about-outline {
    padding: 150px 0;
    background: #EDF4FA;
}

.p-about-outline__inner {
    width: min(100% - 80px, 1320px);
    margin: 0 auto;
}

/* =========================================
    テーブル
========================================= */
.p-about-outline__table {
    width: 100%;
    margin-top: 56px;
    border-top: 1px solid #5593CF;
}

.p-about-outline__row {
    display: grid;
    grid-template-columns: 220px 1fr;
    border-bottom: 1px solid #5593CF;
}

.p-about-outline__label,
.p-about-outline__content {
    padding-top: 40px;
    padding-bottom: 40px;
    font-size: 16px;
    line-height: 2;
    letter-spacing: 0.04em;
    color: #333;
}

.p-about-outline__label {
    padding-right: 24px;
    font-weight: 700;
}

.p-about-outline__content {
    padding-left: 0;
    font-weight: 400;
}

.p-about-outline__link {
    color: #5593CF;
    text-decoration: underline;
    text-underline-offset: 0.12em;
}

/* =========================================
    下部画像＋GoogleMap
========================================= */
.p-about-outline__media {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
    margin-top: 80px;
}

.p-about-outline__photo,
.p-about-outline__map {
    margin: 0;
}

.p-about-outline__photo img,
.p-about-outline__map iframe {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 360px;
    border: 0;
    object-fit: cover;
}

/* =========================================
    1200以下
========================================= */
@media (max-width: 1200px) {
    .p-about-outline {
    padding: 120px 0;
    }

    .p-about-outline__inner {
    width: min(100% - 48px, 1320px);
    }

    .p-about-outline__table {
    margin-top: 44px;
    }

    .p-about-outline__row {
    grid-template-columns: 180px 1fr;
    }

    .p-about-outline__label,
    .p-about-outline__content {
    padding-top: 20px;
    padding-bottom: 20px;
    font-size: 15px;
    line-height: 1.9;
    }

    .p-about-outline__photo img,
    .p-about-outline__map iframe {
    min-height: 300px;
    }
}

/* =========================================
    767以下
========================================= */
@media (max-width: 767px) {
    .p-about-outline {
    padding: 80px 0;
    }

    .p-about-outline__inner {
    width: min(100% - 32px, 1320px);
    }

    .p-about-outline__table {
    margin-top: 28px;
    }

    .p-about-outline__row {
    grid-template-columns: 1fr;
    }

    .p-about-outline__label,
    .p-about-outline__content {
    padding-top: 14px;
    padding-bottom: 14px;
    font-size: 14px;
    line-height: 1.8;
    }

    .p-about-outline__label {
    padding-right: 0;
    padding-bottom: 4px;
    }

    .p-about-outline__content {
    padding-top: 0;
    }

    .p-about-outline__media {
    grid-template-columns: 1fr;
    margin-top: 24px;
    }

    .p-about-outline__photo img,
    .p-about-outline__map iframe {
    min-height: 220px;
    }
}

/* =========================================
    事業所一覧
========================================= */
.p-about-base {
    padding: 150px 0;
    background: #fff;
}

.p-about-base__inner {
    width: min(100% - 80px, 1320px);
    margin: 0 auto;
}

.p-about-base__grid {
    display: grid;
    grid-template-columns: repeat(3, 400px);
    justify-content: center;
    gap: 0 40px;
    margin-top: 56px;
}

/* =========================================
    1工場カード
========================================= */
.p-about-base-card {
    width: 400px;
    min-height: 546px;
}

.p-about-base-card__image {
    margin: 0;
    width: 400px;
    height: 246px;
    overflow: hidden;
}

.p-about-base-card__image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.p-about-base-card__body {
    padding-top: 18px;
}

.p-about-base-card__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.p-about-base-card__title {
    margin: 0;
    font-size: 24px;
    line-height: 1.5;
    font-weight: 700;
    color: #333;
}

.p-about-base-card__map {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 80px;
    height: 28px;
    padding: 0 14px;
    background: #5593CF;
    color: #fff;
    font-size: 14px;
    line-height: 1;
    font-weight: 500;
    letter-spacing: 0.04em;
    text-decoration: none;
    transition: opacity 0.3s ease;
}

.p-about-base-card__map:hover {
    opacity: 0.72;
}

.p-about-base-card__info {
    margin-top: 18px;
}

.p-about-base-card__info p {
    margin: 0;
    font-size: 14px;
    line-height: 2;
    font-weight: 400;
    color: #333;
}

.p-about-base-card__line {
    width: 400px;
    height: 1px;
    margin-top: 18px;
    background: #C6D2DD;
}

.p-about-base-card__product {
    margin: 18px 0 0;
    font-size: 16px;
    line-height: 1.8;
    font-weight: 700;
    color: #2F5F8F;
}

.p-about-base-card__specs {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
    margin-top: 14px;
}

.p-about-base-card__spec {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 36px;
    border: 1px solid #AFC7E1;
    color: #5593CF;
    font-size: 16px;
    line-height: 1.5;
    font-weight: 400;
    letter-spacing: 0.03em;
    text-align: center;
}

/* =========================================
    1200以下
========================================= */
@media (max-width: 1200px) {
    .p-about-base {
    padding: 120px 0;
    }

    .p-about-base__inner {
    width: min(100% - 48px, 1320px);
    }

    .p-about-base__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 40px 32px;
    margin-top: 44px;
    }

    .p-about-base-card {
    width: 100%;
    min-height: auto;
    }

    .p-about-base-card__image {
    width: 100%;
    height: auto;
    aspect-ratio: 400 / 246;
    }

    .p-about-base-card__line {
    width: 100%;
    }

    .p-about-base-card__title {
    font-size: 22px;
    }

    .p-about-base-card__product,
    .p-about-base-card__spec {
    font-size: 15px;
    }
}

/* =========================================
    767以下
========================================= */
@media (max-width: 767px) {
    .p-about-base {
    padding: 80px 0;
    }

    .p-about-base__inner {
    width: min(100% - 32px, 1320px);
    }

    .p-about-base__grid {
    grid-template-columns: 1fr;
    gap: 32px;
    margin-top: 28px;
    }

    .p-about-base-card__body {
    padding-top: 14px;
    }

    .p-about-base-card__head {
    gap: 12px;
    }

    .p-about-base-card__title {
    font-size: 20px;
    }

    .p-about-base-card__map {
    min-width: 68px;
    height: 26px;
    padding: 0 10px;
    font-size: 12px;
    }

    .p-about-base-card__info {
    margin-top: 12px;
    }

    .p-about-base-card__info p {
    font-size: 14px;
    line-height: 1.9;
    }

    .p-about-base-card__line {
    margin-top: 14px;
    }

    .p-about-base-card__product {
    margin-top: 14px;
    font-size: 14px;
    line-height: 1.8;
    }

    .p-about-base-card__specs {
    gap: 8px;
    margin-top: 10px;
    }

    .p-about-base-card__spec {
    min-height: 32px;
    padding: 6px 8px;
    font-size: 14px;
    line-height: 1.6;  }
}

/* =========================================
    再生・リユースページ
========================================= */

/* FVは共通を流用 */
.c-page-fv--recycle .c-page-fv__visual::after {
    background: rgba(0, 0, 0, 0.36);
}

/* =========================
    main
========================= */
.p-recycle {
    background: #fff;
}

/* =========================
    セクション全体
========================= */
.p-recycle-tech {
    padding: 110px 0 150px;
}

.p-recycle-tech__head {
    margin-bottom: 88px;
}

.p-recycle-tech .c-section-head__icon {
    margin: 0 auto 24px;
}

.p-recycle-tech .c-section-head__title {
    margin-top: 0;
    margin-bottom: 42px;
    font-size: 36px;
    line-height: 1.5;
    letter-spacing: 0.08em;
    color: #333;
}

.p-recycle-tech .c-section-head__lead {
    margin: 0 auto;
    font-size: 16px;
    line-height: 2.4;
    letter-spacing: 0.08em;
    color: #333;
}

/* =========================
    工場ブロック
========================= */
.p-factory + .p-factory {
    margin-top: 82px;
}

.p-factory__heading {
    display: flex;
    align-items: center;
    width: 100%;
    min-height: 58px;
    margin: 0 0 26px;
    padding: 15px 24px;
    background: #5593CF;
    color: #fff;
    font-size: 24px;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.08em;
}

.p-factory__desc {
    margin: 0 0 34px;
    font-size: 14px;
    line-height: 2.3;
    letter-spacing: 0.08em;
    color: #333;
}

/* =========================
    スライダー
========================= */
.p-factory-slider {
    position: relative;
}

.p-factory-slider__viewport {
    overflow: hidden;
}

.p-factory-slider__track {
    display: flex;
    gap: 40px;
    transition: transform 0.45s ease;
    will-change: transform;
}

.p-factory-card {
    flex: 0 0 calc((100% - 80px) / 3);
    min-width: 0;
}

.p-factory-card__img {
    aspect-ratio: 400 / 267;
    overflow: hidden;
    background: #e9eef4;
}

.p-factory-card__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.p-factory-card__title {
    margin: 12px 0 0;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.04em;
    color: #333;
}

/* 矢印 */
.p-factory-card + .p-factory-card {
    position: relative;
}

.p-factory-card + .p-factory-card::before {
    content: "";
    position: absolute;
    top: 43%;
    left: -25px;
    width: 10px;
    height: 10px;
    border-top: 2px solid #9CBDE0;
    border-right: 2px solid #9CBDE0;
    transform: translateY(-50%) rotate(45deg);
}

/* フッター */
.p-factory-slider__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    margin-top: 24px;
}

/* 進捗バー */
.p-factory-slider__progress {
    position: relative;
    flex: 1;
    height: 4px;
}

.p-factory-slider__progress-rail {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 4px;
    background: #D7E4F0;
}

.p-factory-slider__progress-thumb {
    position: absolute;
    top: 0;
    left: 0;
    width: 250px;
    height: 4px;
    background: #5593CF;
    transform: translateX(0);
    transition: transform 0.45s ease;
}

/* ボタン */
.p-factory-slider__nav {
    display: flex;
    gap: 10px;
}

.p-factory-slider__btn {
    position: relative;
    width: 42px;
    height: 42px;
    padding: 0;
    border: 1px solid #C6D2DD;
    background: #fff;
    border-radius: 50%;
    cursor: pointer;
    transition: opacity 0.3s ease, border-color 0.3s ease, background 0.3s ease;
}

.p-factory-slider__btn::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 9px;
    height: 9px;
    border-top: 2px solid #5593CF;
    border-right: 2px solid #5593CF;
}

.p-factory-slider__btn--prev::before {
    transform: translate(-35%, -50%) rotate(-135deg);
}

.p-factory-slider__btn--next::before {
    transform: translate(-65%, -50%) rotate(45deg);
}

.p-factory-slider__btn:hover {
    background: #F6FAFE;
    border-color: #5593CF;
}

.p-factory-slider__btn[disabled] {
    opacity: 0.35;
    pointer-events: none;
}

/* =========================
    特徴ボックス
========================= */
.p-factory-feature {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
    margin-top: 36px;
}

.p-factory-feature__item {
    padding: 24px 28px 22px;
    background: #EDF4FA;
    min-height: 140px;
}

.p-factory-feature__title {
    margin: 0 0 12px;
    padding-bottom: 12px;
    border-bottom: 1px solid #9AB9D9;
    color: #333;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.08em;
}

.p-factory-feature__text {
    margin: 0;
    color: #333;
    font-size: 14px;
    line-height: 2.1;
    letter-spacing: 0.08em;
}

/* =========================
    1024以下
========================= */
@media (max-width: 1024px) {
    .p-recycle-tech {
    padding: 90px 0 120px;
    }

    .p-recycle-tech__head {
    margin-bottom: 72px;
    }

    .p-recycle-tech .c-section-head__title {
    margin-bottom: 28px;
    font-size: 36px;
    }

    .p-recycle-tech .c-section-head__lead {
    font-size: 14px;
    line-height: 2.2;
    }

    .p-factory__heading {
    min-height: 52px;
    padding: 14px 18px;
    font-size: 20px;
    }

    .p-factory-slider__track {
    gap: 24px;
    }

    .p-factory-card {
    flex: 0 0 calc((100% - 24px) / 2);
    }

    .p-factory-card + .p-factory-card::before {
    left: -17px;
    }

    .p-factory-slider__progress-thumb {
    width: 150px;
    }

    .p-factory-feature {
    gap: 16px;
    }
}

/* =========================
    767以下
========================= */
@media (max-width: 767px) {
    .p-recycle-tech {
    padding: 64px 0 90px;
    }

    .p-recycle-tech__head {
    margin-bottom: 52px;
    }

    .p-recycle-tech .c-section-head__icon {
    width: 28px;
    margin-bottom: 16px;
    }

    .p-recycle-tech .c-section-head__title {
    margin-bottom: 22px;
    font-size: 24px;
    line-height: 1.6;
    }

    .p-recycle-tech .c-section-head__lead {
    font-size: 14px;
    line-height: 2;
    }

    .p-factory + .p-factory {
    margin-top: 54px;
    }

    .p-factory__heading {
    margin-bottom: 16px;
    padding: 12px 14px;
    font-size: 16px;
    line-height: 1.6;
    }

    .p-factory__desc {
    margin-bottom: 18px;
    font-size: 14px;
    line-height: 2;
    }

    .p-factory-slider__track {
    gap: 16px;
    }

    .p-factory-card {
    flex: 0 0 100%;
    }

    .p-factory-card + .p-factory-card::before {
    content: none;
    }

    .p-factory-card__title {
    margin-top: 10px;
    font-size: 14px;
    }

    .p-factory-slider__footer {
    margin-top: 16px;
    gap: 14px;
    }

    .p-factory-slider__progress-thumb {
    width: 80px;
    }

    .p-factory-slider__btn {
    width: 36px;
    height: 36px;
    }

    .p-factory-feature {
    grid-template-columns: 1fr;
    gap: 12px;
    margin-top: 22px;
    }

    .p-factory-feature__item {
    min-height: auto;
    padding: 16px 14px;
    }

    .p-factory-feature__title {
    margin-bottom: 8px;
    padding-bottom: 8px;
    font-size: 14px;
    }

    .p-factory-feature__text {
    font-size: 14px;
    line-height: 1.9;
    }
}

/* =========================================
    各種製品の販売ページ
========================================= */

/* FV */
.c-page-fv--products .c-page-fv__visual::after {
    background: rgba(0, 0, 0, 0.32);
}

.p-products {
    background: #fff;
}

/* =========================================
    ページ内ナビ
    会社案内と同じ見た目
    1列目6つ / 2列目5つ中央揃え
========================================= */
.p-products-nav {
    padding: 100px 0 80px;
    background: #fff;
}

.p-products-nav__list {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 12px;
    max-width: 1320px;
    margin: 0 auto;
}

.p-products-nav__link {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 210px;
    height: 70px;
    padding: 0 20px 0 18px;
    border: 1px solid #5593CF;
    background: #fff;
    color: #333;
    text-decoration: none;
    transition: all 0.3s ease;
    flex: 0 0 210px;
}

.p-products-nav__link:hover {
    background-color: #5593CF;
}

.p-products-nav__text {
    display: block;
    font-size: 14px;
    line-height: 1.4;
    font-weight: 500;
    letter-spacing: 0.04em;
    color: #333;
}

.p-products-nav__link:hover .p-products-nav__text {
    color: #fff;
}

.p-products-nav__arrow {
    position: relative;
    display: block;
    width: 16px;
    height: 16px;
    flex-shrink: 0;
}

.p-products-nav__arrow::before {
    content: "";
    position: absolute;
    top: 1px;
    left: 50%;
    width: 1px;
    height: 12px;
    background: #5593CF;
    transform: translateX(-50%);
}

.p-products-nav__arrow::after {
    content: "";
    position: absolute;
    bottom: 1px;
    left: 50%;
    width: 7px;
    height: 7px;
    border-right: 1px solid #5593CF;
    border-bottom: 1px solid #5593CF;
    transform: translateX(-50%) rotate(45deg);
}

.p-products-nav__link:hover .p-products-nav__arrow::before {
    background: #fff;
}

.p-products-nav__link:hover .p-products-nav__arrow::after {
    border-right: 1px solid #fff;
    border-bottom: 1px solid #fff;
}

@media (max-width: 1279px) {
    .p-products-nav__list {
    display: grid;
    grid-template-columns: repeat(2, minmax(280px, 1fr));
    max-width: 900px;
    }

    .p-products-nav__link {
    width: 100%;
    flex: initial;
    }
}

@media (max-width: 767px) {
    .p-products-nav {
    display: none;
    }
}

/* =========================================
    セクション共通
========================================= */
.p-products-section {
    padding: 0 0 92px;
}

.p-products-section__head {
    margin-bottom: 46px;
    text-align: center;
}

.p-products-section__icon {
    width: 52px;
    margin: 0 auto 10px;
}

.p-products-section__icon img {
    width: 100%;
    height: auto;
}

.p-products-section__title {
    margin: 0;
    color: #333;
    font-size: clamp(2.4rem, 2vw, 3.2rem);
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: 0.08em;
}

.p-products-section__lead {
    max-width: 760px;
    margin: 18px auto 0;
    color: #333;
    font-size: 14px;
    line-height: 2.1;
    letter-spacing: 0.06em;
}

/* =========================================
    商品リスト
========================================= */
.p-products-list {
    display: flex;
    flex-direction: column;
    gap: 54px;
}

.p-product-card {
    display: grid;
    grid-template-columns: 280px minmax(0, 1fr);
    align-items: start;
    column-gap: 64px;
}

.p-product-card--compact {
    align-items: center;
}

.p-product-card__image {
    margin: 0;
    text-align: center;
}

.p-product-card__image img {
    display: inline-block;
    width: auto;
    max-width: 100%;
    max-height: 280px;
    object-fit: contain;
}

.p-product-card__body {
    min-width: 0;
}

.p-product-card__title {
    position: relative;
    margin: 0;
    padding-left: 18px;
    color: #333;
    font-size: clamp(2rem, 1.6vw, 2.6rem);
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.06em;
}

.p-product-card__title::before {
    content: "";
    position: absolute;
    top: 0.35em;
    left: 0;
    width: 5px;
    height: 1.2em;
    background: #5593CF;
}

.p-product-card__sub {
    margin: 10px 0 0;
    color: #333;
    font-size: 14px;
    line-height: 1.8;
    letter-spacing: 0.04em;
}

.p-product-card__desc {
    margin: 14px 0 0;
    color: #333;
    font-size: 14px;
    line-height: 2.1;
    letter-spacing: 0.04em;
}

.p-product-card__table {
    width: 100%;
    margin-top: 18px;
    border-collapse: collapse;
    table-layout: fixed;
}

.p-product-card__table th,
.p-product-card__table td {
    border-bottom: 1px solid #D4E0EC;
    padding: 13px 14px;
    vertical-align: top;
    font-size: 14px;
    line-height: 1.9;
    letter-spacing: 0.04em;
}

.p-product-card__table th {
    width: 180px;
    background: #EDF4FA;
    color: #333;
    font-weight: 700;
    text-align: left;
}

.p-product-card__table td {
    color: #333;
    background: #fff;
    font-weight: 400;
}

/* =========================================
    カードグリッド
========================================= */
.p-products-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 38px 30px;
}

.p-products-grid--other {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.p-products-grid-card {
    text-align: left;
}

.p-products-grid-card__image {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 220px;
    margin: 0 0 12px;
}

.p-products-grid-card__image img {
    width: auto;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

.p-products-grid-card__title {
    margin: 0;
    color: #333;
    font-size: 14px;
    line-height: 1.8;
    font-weight: 500;
    letter-spacing: 0.04em;
}

/* =========================================
    セクション別余白調整
========================================= */
.p-products-section--plastic {
    padding-bottom: 86px;
}

.p-products-section--other {
    padding-bottom: 140px;
}

/* =========================================
    画面幅1320より下
========================================= */
@media (max-width: 1400px) {
    .p-products-nav,
    .p-products-section {
    padding-left: 24px;
    padding-right: 24px;
    }

    .p-product-card {
    column-gap: 40px;
    }
}

@media (max-width: 1200px) {
    .p-products-nav__list {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .p-product-card {
    grid-template-columns: 240px minmax(0, 1fr);
    }

    .p-products-grid--other {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 1024px) {
    .p-products-nav {
    padding-top: 28px;
    padding-bottom: 56px;
    }

    .p-products-section {
    padding-bottom: 76px;
    }

    .p-product-card {
    grid-template-columns: 220px minmax(0, 1fr);
    column-gap: 28px;
    }

    .p-product-card__image img {
    max-height: 220px;
    }

    .p-product-card__table th,
    .p-product-card__table td {
    padding: 12px 10px;
    font-size: 13px;
    }

    .p-product-card__table th {
    width: 150px;
    }

    .p-products-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px 20px;
    }

    .p-products-grid-card__image {
    height: 190px;
    }
}

@media (max-width: 767px) {
    .p-products-nav {
    padding: 22px 16px 46px;
    }

    .p-products-nav__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    }

    .p-products-nav__link {
    min-height: 52px;
    padding: 10px 12px 15px;
    }

    .p-products-nav__link span:first-child {
    font-size: 12px;
    line-height: 1.5;
    }

    .p-products-section {
    padding: 0 16px 60px;
    }

    .p-products-section__head {
    margin-bottom: 34px;
    }

    .p-products-section__icon {
    width: 24px;
    margin-bottom: 8px;
    }

    .p-products-section__title {
    font-size: 24px;
    }

    .p-products-section__lead {
    margin-top: 14px;
    font-size: 12px;
    line-height: 2;
    }

    .p-products-list {
    gap: 40px;
    }

    .p-product-card {
    grid-template-columns: 1fr;
    row-gap: 22px;
    }

    .p-product-card__image {
    text-align: center;
    }

    .p-product-card__image img {
    max-height: 220px;
    }

    .p-product-card__title {
    padding-left: 14px;
    font-size: 20px;
    }

    .p-product-card__sub,
    .p-product-card__desc {
    font-size: 12px;
    }

    .p-product-card__table {
    margin-top: 14px;
    }

    .p-product-card__table,
    .p-product-card__table tbody,
    .p-product-card__table tr,
    .p-product-card__table th,
    .p-product-card__table td {
    display: block;
    width: 100%;
    }

    .p-product-card__table tr {
    margin-bottom: 8px;
    }

    .p-product-card__table th,
    .p-product-card__table td {
    padding: 10px 12px;
    font-size: 12px;
    line-height: 1.8;
    }

    .p-product-card__table th {
    border-bottom: 0;
    }

    .p-products-grid,
    .p-products-grid--other {
    grid-template-columns: 1fr 1fr;
    gap: 18px 14px;
    }

    .p-products-grid-card__image {
    height: 148px;
    margin-bottom: 10px;
    }

    .p-products-grid-card__title {
    font-size: 12px;
    line-height: 1.7;
    }

    .p-products-section--other {
    padding-bottom: 90px;
    }
}

@media (max-width: 480px) {
    .p-products-nav__list {
    grid-template-columns: 1fr;
    }

    .p-products-grid,
    .p-products-grid--other {
    grid-template-columns: 1fr;
    }

    .p-products-grid-card__image {
    height: 180px;
    }
}

/* =========================================
    鋼製ドラム
========================================= */
.p-products-steel {
    padding: 0 0 120px;
}

.p-products-steel .p-products-section__head {
    text-align: center;
    margin-bottom: 40px;
}

.p-products-steel .p-products-section__icon {
    width: 52px;
    margin: 0 auto 10px;
}

.p-products-steel .p-products-section__icon img {
    display: block;
    width: 100%;
    height: auto;
}

.p-products-steel .p-products-section__title {
    margin: 0;
    font-size: clamp(2.4rem, 2vw, 3.2rem);
    line-height: 1.3;
    font-weight: 700;
    letter-spacing: 0.08em;
    color: #333;
}

.p-products-steel .p-products-section__lead {
    max-width: 1320px;
    margin: 40px auto 0;
    font-size: clamp(1.4rem, 0.95vw, 1.8rem);
    line-height: 2;
    font-weight: 400;
    letter-spacing: 0.04em;
    color: #333;
}

.p-products-steel__list {
    display: flex;
    flex-direction: column;
    gap: 74px;
}

.p-products-steel-item {
    display: grid;
    grid-template-columns: 300px 1fr;
    column-gap: 82px;
    align-items: start;
}

.p-products-steel-item__image {
    margin: 0;
    display: flex;
    align-items: flex-start;
    justify-content: center;
}

.p-products-steel-item__image img {
    display: block;
    width: 100%;
    max-width: 260px;
    height: auto;
    object-fit: contain;
}

.p-products-steel-item__body {
    min-width: 0;
    padding-top: 14px;
}

.p-products-steel-item__title {
    position: relative;
    margin: 0;
    padding-left: 18px;
    font-size: clamp(2rem, 1.6vw, 2.6rem);
    line-height: 1.5;
    font-weight: 700;
    letter-spacing: 0.04em;
    color: #333;
}

.p-products-steel-item__title::before {
    content: "";
    position: absolute;
    top: 0.28em;
    left: 0;
    width: 4px;
    height: 1.35em;
    background: #5593CF;
}

.p-products-steel-item__spec {
    margin: 16px 0 0;
    font-size: clamp(1.3rem, 0.9vw, 1.6rem);
    line-height: 1.8;
    font-weight: 700;
    letter-spacing: 0.03em;
    color: #555;
}

.p-products-steel-table-wrap {
    margin-top: 18px;
}

.p-products-steel-table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
}

.p-products-steel-table th,
.p-products-steel-table td {
    border: 1px solid #D7DDE4;
    padding: 14px 12px;
    vertical-align: middle;
    font-size: clamp(1.2rem, 0.84vw, 1.5rem);
    line-height: 1.6;
    color: #333;
}

.p-products-steel-table th {
    background: #EDF4FA;
    text-align: left;
    font-weight: 700;
}

.p-products-steel-table td {
    background: #fff;
    text-align: right;
    font-weight: 400;
}

.p-products-steel-table th:nth-child(1) {
    /* width: 27%; */
}

.p-products-steel-table td:nth-child(2) {
    /* width: 16%; */
}

.p-products-steel-table th:nth-child(3) {
    /* width: 27%; */
}

.p-products-steel-table td:nth-child(4) {
    /* width: 16%; */
}

.p-products-steel-item--small .p-products-steel-item__body {
    padding-top: 8px;
}

.p-products-steel-item__desc {
    margin-top: 18px;
    color: #555;
}

.p-products-steel-item__desc p {
    margin: 0 0 14px;
    font-size: clamp(1.4rem, 0.95vw, 1.8rem);
    line-height: 1.8;
    font-weight: 700;
}

.p-products-steel-item__desc ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.p-products-steel-item__desc li {
    font-size: clamp(1.4rem, 0.95vw, 1.8rem);
    line-height: 1.9;
    color: #666;
}

/* =========================================
    1400以下
========================================= */
@media (max-width: 1400px) {
    .p-products-steel {
    padding-left: 24px;
    padding-right: 24px;
    }

    .p-products-steel-item {
    grid-template-columns: 260px 1fr;
    column-gap: 54px;
    }

    .p-products-steel-item__image img {
    max-width: 230px;
    }
}

/* =========================================
    1024以下
========================================= */
@media (max-width: 1024px) {
    .p-products-steel {
    padding-bottom: 90px;
    }

    .p-products-steel .p-products-section__head {
    margin-bottom: 44px;
    }

    .p-products-steel__list {
    gap: 56px;
    }

    .p-products-steel-item {
    grid-template-columns: 220px 1fr;
    column-gap: 34px;
    }

    .p-products-steel-item__image img {
    max-width: 200px;
    }

    .p-products-steel-item__body {
    padding-top: 8px;
    }

    .p-products-steel-table th,
    .p-products-steel-table td {
    padding: 12px 10px;
    font-size: 1.2rem;
    }
}

/* =========================================
    767以下
========================================= */
@media (max-width: 767px) {
    .p-products-steel {
    padding: 0 16px 70px;
    }

    .p-products-steel .p-products-section__head {
    margin-bottom: 34px;
    }

    .p-products-steel .p-products-section__icon {
    width: 24px;
    margin-bottom: 8px;
    }

    .p-products-steel .p-products-section__title {
    font-size: 24px;
    }

    .p-products-steel .p-products-section__lead {
    margin-top: 14px;
    font-size: 14px;
    line-height: 1.9;
    }

    .p-products-steel__list {
    gap: 42px;
    }

    .p-products-steel-item {
    grid-template-columns: 1fr;
    row-gap: 20px;
    }

    .p-products-steel-item__image {
    justify-content: center;
    }

    .p-products-steel-item__image img {
    max-width: 180px;
    }

    .p-products-steel-item__body {
    padding-top: 0;
    }

    .p-products-steel-item__title {
    padding-left: 14px;
    font-size: 20px;
    }

    .p-products-steel-item__spec {
    margin-top: 10px;
    font-size: 14px;
    line-height: 1.8;
    }

    .p-products-steel-table,
    .p-products-steel-table tbody,
    .p-products-steel-table tr,
    .p-products-steel-table th,
    .p-products-steel-table td {
    display: block;
    width: 100%;
    }

    .p-products-steel-table tr {
    margin-bottom: 10px;
    border: 1px solid #D7DDE4;
    }

    .p-products-steel-table th,
    .p-products-steel-table td {
    border: 0;
    padding: 10px 12px;
    font-size: 14px;
    line-height: 1.7;
    }

    .p-products-steel-table th {
    background: #EDF4FA;
    text-align: left;
    }

    .p-products-steel-table td {
    text-align: left;
    background: #fff;
    border-top: 1px solid #D7DDE4;
    }

    .p-products-steel-item__desc {
    margin-top: 14px;
    }

    .p-products-steel-item__desc p,
    .p-products-steel-item__desc li {
    font-size: 14px;
    }
}

/* =========================================
    ステンレスドラム ～ コンテナ
========================================= */
.p-products-single-section {
    padding: 0 0 150px;
}

.p-products-single-section:last-of-type {
    padding-bottom: 150px;
}

.p-products-single-section__head {
    text-align: center;
    margin-bottom: 80px;
}

.p-products-single-section__icon {
    width: 52px;
    height: 30px;
    margin: 0 auto 16px;
}

.p-products-single-section__icon img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.p-products-single-section__title {
    margin: 0;
    color: #333;
    font-size: clamp(2.4rem, 1.875vw, 3.6rem);
    line-height: 1.4;
    font-weight: 700;
    letter-spacing: 0.08em;
}

.p-products-single-list {
    display: flex;
    flex-direction: column;
    gap: 80px;
}

.p-products-single-item {
    display: grid;
    grid-template-columns: 320px minmax(0, 1fr);
    column-gap: 118px;
    align-items: start;
}

.p-products-single-item__image {
    margin: 0;
    display: flex;
    align-items: flex-start;
    justify-content: center;
}

.p-products-single-item__image img {
    display: block;
    width: auto;
    max-width: 100%;
    max-height: 320px;
    object-fit: contain;
}

.p-products-single-item__body {
    min-width: 0;
    padding-top: 18px;
}

.p-products-single-item__title {
    position: relative;
    margin: 0;
    padding-left: 20px;
    color: #333;
    font-size: clamp(2rem, 1.458vw, 2.8rem);
    line-height: 1.5;
    font-weight: 700;
    letter-spacing: 0.04em;
}

.p-products-single-item__title::before {
    content: "";
    position: absolute;
    top: 0.28em;
    left: 0;
    width: 4px;
    height: 1.28em;
    background: #5593CF;
}

.p-products-single-item__spec {
    margin: 14px 0 0;
    color: #555;
    font-size: clamp(1.4rem, 0.938vw, 1.8rem);
    line-height: 1.8;
    font-weight: 700;
    letter-spacing: 0.03em;
}

.p-products-single-item__desc {
    margin-top: 26px;
}

.p-products-single-item__desc p {
    margin: 0 0 8px;
    color: #666;
    font-size: clamp(1.4rem, 0.938vw, 1.8rem);
    line-height: 1.95;
    font-weight: 400;
    letter-spacing: 0.03em;
}

.p-products-single-item__list {
    margin: 18px 0 0;
    padding: 0;
    list-style: none;
}

.p-products-single-item__list li {
    color: #555;
    font-size: clamp(1.4rem, 0.938vw, 1.8rem);
    line-height: 1.8;
    font-weight: 400;
    letter-spacing: 0.03em;
}

/* =========================================
    1400以下
========================================= */
@media (max-width: 1400px) {
    .p-products-single-section {
    padding-left: 24px;
    padding-right: 24px;
    }

    .p-products-single-item {
    grid-template-columns: 280px minmax(0, 1fr);
    column-gap: 72px;
    }

    .p-products-single-item__image img {
    max-height: 280px;
    }
}

/* =========================================
    1024以下
========================================= */
@media (max-width: 1024px) {
    .p-products-single-section {
    padding-bottom: 110px;
    }

    .p-products-single-section__head {
    margin-bottom: 56px;
    }

    .p-products-single-list {
    gap: 64px;
    }

    .p-products-single-item {
    grid-template-columns: 220px minmax(0, 1fr);
    column-gap: 40px;
    }

    .p-products-single-item__image img {
    max-height: 220px;
    }

    .p-products-single-item__body {
    padding-top: 6px;
    }
}

/* =========================================
    767以下
========================================= */
@media (max-width: 767px) {
    .p-products-single-section {
    padding: 0 16px 80px;
    }

    .p-products-single-section__head {
    margin-bottom: 36px;
    }

    .p-products-single-section__icon {
    width: 36px;
    height: 21px;
    margin-bottom: 10px;
    }

    .p-products-single-section__title {
    font-size: 24px;
    }

    .p-products-single-list {
    gap: 48px;
    }

    .p-products-single-item {
    grid-template-columns: 1fr;
    row-gap: 20px;
    }

    .p-products-single-item__image img {
    max-height: 200px;
    }

    .p-products-single-item__body {
    padding-top: 0;
    }

    .p-products-single-item__title {
    padding-left: 16px;
    font-size: 20px;
    }

    .p-products-single-item__spec {
    margin-top: 10px;
    font-size: 12px;
    }

    .p-products-single-item__desc {
    margin-top: 16px;
    }

    .p-products-single-item__desc p,
    .p-products-single-item__list li {
    font-size: 12px;
    line-height: 1.9;
    }
}

/* =========================================
    ステンレスドラム ～ コンテナ
========================================= */
.p-products-single-section {
    padding: 0 0 150px;
}

.p-products-single-section__head {
    text-align: center;
    margin-bottom: 80px;
}

.p-products-single-section__icon {
    width: 52px;
    height: 30px;
    margin: 0 auto 16px;
}

.p-products-single-section__icon img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.p-products-single-section__title {
    margin: 0;
    font-size: 36px;
    line-height: 1.4;
    font-weight: 700;
    letter-spacing: 0.08em;
    color: #333;
}

.p-products-single-list {
    display: flex;
    flex-direction: column;
    gap: 80px;
}

.p-products-single-item {
    display: grid;
    grid-template-columns: 320px minmax(0, 1fr);
    column-gap: 118px;
    align-items: start;
}

.p-products-single-item__image {
    margin: 0;
    display: flex;
    align-items: flex-start;
    justify-content: center;
}

.p-products-single-item__image img {
    display: block;
    width: auto;
    max-width: 100%;
    max-height: 320px;
    object-fit: contain;
}

.p-products-single-item__body {
    min-width: 0;
    padding-top: 18px;
}

.p-products-single-item__title {
    position: relative;
    margin: 0;
    padding-left: 20px;
    font-size: 28px;
    line-height: 1.5;
    font-weight: 700;
    letter-spacing: 0.04em;
    color: #333;
}

.p-products-single-item__title::before {
    content: "";
    position: absolute;
    top: 0.28em;
    left: 0;
    width: 4px;
    height: 1.28em;
    background: #5593CF;
}

.p-products-single-item__capacity {
    margin: 14px 0 0;
    font-size: 18px;
    line-height: 1.8;
    font-weight: 700;
    letter-spacing: 0.03em;
    color: #555;
}

.p-products-single-item__text {
    margin-top: 20px;
}

.p-products-single-item__text p {
    margin: 0 0 8px;
    font-size: 16px;
    line-height: 1.95;
    font-weight: 400;
    letter-spacing: 0.03em;
    color: #666;
}

.p-products-single-item__types {
    margin: 24px 0 0;
    padding: 0;
    list-style: none;
}

.p-products-single-item__types li {
    font-size: 16px;
    line-height: 1.8;
    font-weight: 400;
    letter-spacing: 0.03em;
    color: #555;
}

/* =========================================
    1400以下
========================================= */
@media (max-width: 1400px) {
    .p-products-single-section {
    padding-left: 24px;
    padding-right: 24px;
    }

    .p-products-single-item {
    grid-template-columns: 280px minmax(0, 1fr);
    column-gap: 72px;
    }

    .p-products-single-item__image img {
    max-height: 280px;
    }

    .p-products-single-item__title {
    font-size: clamp(2rem, 1.9vw, 2.8rem);
    }

    .p-products-single-item__capacity {
    font-size: clamp(1.4rem, 1.1vw, 1.8rem);
    }

    .p-products-single-item__text p,
    .p-products-single-item__types li {
    font-size: clamp(1.2rem, 1vw, 1.6rem);
    }
}

/* =========================================
    1024以下
========================================= */
@media (max-width: 1024px) {
    .p-products-single-section {
    padding-bottom: 110px;
    }

    .p-products-single-section__head {
    margin-bottom: 56px;
    }

    .p-products-single-list {
    gap: 64px;
    }

    .p-products-single-item {
    grid-template-columns: 220px minmax(0, 1fr);
    column-gap: 40px;
    }

    .p-products-single-item__image img {
    max-height: 220px;
    }

    .p-products-single-item__body {
    padding-top: 6px;
    }
}

/* =========================================
    767以下
========================================= */
@media (max-width: 767px) {
    .p-products-single-section {
    padding: 0 16px 80px;
    }

    .p-products-single-section__head {
    margin-bottom: 36px;
    }

    .p-products-single-section__icon {
    width: 36px;
    height: 21px;
    margin-bottom: 10px;
    }

    .p-products-single-section__title {
    font-size: 24px;
    }

    .p-products-single-list {
    gap: 48px;
    }

    .p-products-single-item {
    grid-template-columns: 1fr;
    row-gap: 20px;
    }

    .p-products-single-item__image img {
    max-height: 200px;
    }

    .p-products-single-item__body {
    padding-top: 0;
    }

    .p-products-single-item__title {
    padding-left: 16px;
    font-size: 20px;
    }

    .p-products-single-item__capacity {
    margin-top: 10px;
    font-size: 12px;
    }

    .p-products-single-item__text {
    margin-top: 14px;
    }

    .p-products-single-item__text p,
    .p-products-single-item__types li {
    font-size: 14px;
    line-height: 1.9;
    }

    .p-products-single-item__types {
    margin-top: 16px;
    }
}

/* =========================================
    プラスチック容器 / その他
========================================= */
.p-products-grid-section {
    padding: 0 0 150px;
}

.p-products-grid-section__head {
    text-align: center;
    margin-bottom: 80px;
}

.p-products-grid-section__icon {
    width: 52px;
    height: 30px;
    margin: 0 auto 16px;
}

.p-products-grid-section__icon img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.p-products-grid-section__title {
    margin: 0;
    font-size: 36px;
    line-height: 1.4;
    font-weight: 700;
    letter-spacing: 0.08em;
    color: #333;
}

.p-products-grid-section__lead {
    max-width: 1320px;
    margin: 24px auto 0;
}

.p-products-grid-section__lead p {
    margin: 0;
    font-size: 16px;
    line-height: 2;
    font-weight: 400;
    letter-spacing: 0.03em;
    color: #555;
}

.p-products-grid-list {
    display: grid;
    gap: 80px 20px;
}

.p-products-grid-list--plastic {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.p-products-grid-list--other {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.p-products-grid-card {
    min-width: 0;
}

.p-products-grid-card__image {
    margin: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.p-products-grid-card__image img {
    display: block;
    width: auto;
    max-width: 100%;
    height: auto;
    object-fit: contain;
}

.p-products-grid-card__body {
    margin-top: 16px;
}

.p-products-grid-card__title {
    position: relative;
    margin: 0;
    padding-left: 20px;
    font-size: 28px;
    line-height: 1.5;
    font-weight: 700;
    letter-spacing: 0.04em;
    color: #333;
}

.p-products-grid-card__title::before {
    content: "";
    position: absolute;
    top: 0.28em;
    left: 0;
    width: 4px;
    height: 1.28em;
    background: #5593CF;
}

.p-products-grid-card__capacity {
    margin: 10px 0 0;
    min-height: 29px;
    font-size: 16px;
    line-height: 1.8;
    font-weight: 700;
    letter-spacing: 0.03em;
    color: #555;
}

.p-products-grid-card__types {
    margin: 8px 0 0;
    padding: 0;
    list-style: none;
}

.p-products-grid-card__types li {
    font-size: 16px;
    line-height: 1.8;
    font-weight: 400;
    letter-spacing: 0.03em;
    color: #555;
}

/* 画像サイズ調整 */
.p-products-grid-list--plastic .p-products-grid-card__image {
    height: 330px;
}

.p-products-grid-list--other .p-products-grid-card__image {
    height: 240px;
}

/* =========================================
    1400以下
========================================= */
@media (max-width: 1400px) {
    .p-products-grid-section {
    padding-left: 24px;
    padding-right: 24px;
    }

    .p-products-grid-list {
    gap: 64px 40px;
    }

    .p-products-grid-card__title {
    font-size: clamp(2rem, 1.9vw, 2.8rem);
    }

    .p-products-grid-card__capacity,
    .p-products-grid-card__types li,
    .p-products-grid-section__lead p {
    font-size: clamp(1.2rem, 1vw, 1.6rem);
    }

    .p-products-grid-list--plastic .p-products-grid-card__image {
    height: 280px;
    }

    .p-products-grid-list--other .p-products-grid-card__image {
    height: 210px;
    }
}

/* =========================================
    1024以下
========================================= */
@media (max-width: 1024px) {
    .p-products-grid-section {
    padding-bottom: 110px;
    }

    .p-products-grid-section__head {
    margin-bottom: 56px;
    }

    .p-products-grid-list--plastic,
    .p-products-grid-list--other {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .p-products-grid-list {
    gap: 56px 28px;
    }

    .p-products-grid-list--plastic .p-products-grid-card__image {
    height: 240px;
    }

    .p-products-grid-list--other .p-products-grid-card__image {
    height: 200px;
    }

    .p-products-grid-card__body {
    margin-top: 14px;
    }
}

/* =========================================
    767以下
========================================= */
@media (max-width: 767px) {
    .p-products-grid-section {
    padding: 0 16px 80px;
    }

    .p-products-grid-section__head {
    margin-bottom: 36px;
    }

    .p-products-grid-section__icon {
    width: 36px;
    height: 21px;
    margin-bottom: 10px;
    }

    .p-products-grid-section__title {
    font-size: 24px;
    }

    .p-products-grid-section__lead {
    margin-top: 14px;
    }

    .p-products-grid-section__lead p {
    font-size: 14px;
    line-height: 1.9;
    }

    .p-products-grid-list--plastic,
    .p-products-grid-list--other {
    grid-template-columns: 1fr;
    }

    .p-products-grid-list {
    gap: 42px;
    }

    .p-products-grid-list--plastic .p-products-grid-card__image {
    height: auto;
    }

    .p-products-grid-list--other .p-products-grid-card__image {
    height: auto;
    }

    .p-products-grid-card__body {
    margin-top: 12px;
    }

    .p-products-grid-card__title {
    padding-left: 16px;
    font-size: 20px;
    }

    .p-products-grid-card__capacity {
    min-height: 0;
    margin-top: 8px;
    font-size: 14px;
    }

    .p-products-grid-card__types {
    margin-top: 6px;
    }

    .p-products-grid-card__types li {
    font-size: 14px;
    line-height: 1.9;
    }
}

/* =========================================
    採用情報 下層詳細ページ
========================================= */
.p-recruit-detail-page {
    background: #fff;
}

/* FVだけ下層詳細用に微調整 */
.c-page-fv--recruit-detail .c-page-fv__visual::after {
    background: rgba(0, 0, 0, 0.36);
}

/* =========================================
    募集要項詳細
========================================= */
.p-recruit-detail {
    padding: 78px 0 150px;
    background: #fff;
}

.p-recruit-detail__inner {
    width: min(100% - 80px, 1320px);
    margin: 0 auto;
}

/* head */
.p-recruit-detail__head {
    text-align: center;
    margin-bottom: 60px;
}

.p-recruit-detail__category {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 90px;
    height: 26px;
    margin: 0 auto 28px;
    padding: 0 16px;
    color: #fff;
    font-size: clamp(1.2rem, 0.9vw, 1.4rem);
    font-weight: 400;
    line-height: 1;
    letter-spacing: 0.08em;
    white-space: nowrap;
}

.p-recruit-detail__category.is-blue {
    background: #2F5F8F;
}

.p-recruit-detail__category.is-green {
    background: #30837C;
}

.p-recruit-detail__category.is-orange {
    background: #E09F1F;
}

.p-recruit-detail__title {
    margin: 0;
    color: #222;
    font-size: clamp(2.8rem, 2.2vw, 5.4rem);
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.08em;
}

/* table */
.p-recruit-detail__table {
    width: min(100%, 1320px);
    margin: 0 auto;
    border-top: 1px solid #D7DDE3;
}

.p-recruit-detail__row {
    display: grid;
    grid-template-columns: 240px minmax(0, 1fr);
    min-height: 90px;
    border-bottom: 1px solid #D7DDE3;
}

.p-recruit-detail__row:nth-child(even) {
    border-bottom-color: #8FB3D5;
}

.p-recruit-detail__th,
.p-recruit-detail__td {
    display: flex;
    align-items: center;
    min-width: 0;
}

.p-recruit-detail__th {
    padding: 18px 24px 18px 0;
    color: #333;
    font-size: clamp(1.2rem, 1vw, 1.6rem);
    font-weight: 700;
    line-height: 1.8;
    letter-spacing: 0.08em;
}

.p-recruit-detail__td {
    padding: 18px 0 18px 20px;
    color: #333;
    font-size: clamp(1.2rem, 1vw, 1.6rem);
    font-weight: 400;
    line-height: 1.9;
    letter-spacing: 0.08em;
}

/* apply button */
.p-recruit-detail__cta {
    display: flex;
    justify-content: center;
    margin-top: 78px;
}

.p-recruit-detail__apply-btn {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 18px;
    width: 320px;
    height: 84px;
    background: #2F5F8F;
    color: #fff;
    font-size: clamp(1.4rem, 1vw, 1.8rem);
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.08em;
    transition: opacity 0.3s ease;
}

.p-recruit-detail__apply-btn:hover {
    opacity: 0.72;
}

.p-recruit-detail__apply-arrow {
    position: relative;
    display: block;
    width: 20px;
    height: 12px;
    flex-shrink: 0;
}

.p-recruit-detail__apply-arrow::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 0;
    width: 16px;
    height: 1px;
    background: #fff;
    transform: translateY(-50%);
}

.p-recruit-detail__apply-arrow::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 0;
    width: 7px;
    height: 7px;
    border-top: 1px solid #fff;
    border-right: 1px solid #fff;
    transform: translateY(-50%) rotate(45deg);
}

/* pager */
.p-recruit-detail__pager {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    column-gap: 20px;
    margin-top: 118px;
}

.p-recruit-detail__pager-link {
    color: #333;
    font-size: clamp(1.4rem, 0.95vw, 1.4rem);
    font-weight: 400;
    line-height: 1.6;
    letter-spacing: 0.08em;
    transition: opacity 0.3s ease;
}

.p-recruit-detail__pager-link:hover {
    opacity: 0.72;
}

.p-recruit-detail__pager-link--prev {
    justify-self: start;
}

.p-recruit-detail__pager-link--center {
    justify-self: center;
}

.p-recruit-detail__pager-link--next {
    justify-self: end;
}

/* =========================================
    tablet
========================================= */
@media (max-width: 1024px) {
    .p-recruit-detail {
    padding: 64px 0 110px;
    }

    .p-recruit-detail__inner {
    width: min(100% - 48px, 1320px);
    }

    .p-recruit-detail__row {
    grid-template-columns: 200px minmax(0, 1fr);
    min-height: 84px;
    }

    .p-recruit-detail__th {
    padding-right: 16px;
    }

    .p-recruit-detail__td {
    padding-left: 16px;
    }

    .p-recruit-detail__pager {
    margin-top: 88px;
    }
}

/* =========================================
    SP
========================================= */
@media (max-width: 767px) {
    .c-page-fv--recruit-detail .c-page-fv__title-en {
    font-size: clamp(4.2rem, 12vw, 7rem);
    }

    .c-page-fv--recruit-detail .c-page-fv__title-ja {
    font-size: clamp(1.8rem, 4vw, 2.4rem);
    }

    .p-recruit-detail {
    padding: 52px 0 80px;
    }

    .p-recruit-detail__inner {
    width: min(100% - 32px, 1320px);
    }

    .p-recruit-detail__head {
    margin-bottom: 36px;
    }

    .p-recruit-detail__category {
    min-width: 74px;
    height: 24px;
    margin-bottom: 20px;
    padding: 0 12px;
    font-size: 1.2rem;
    }

    .p-recruit-detail__title {
    font-size: clamp(2.2rem, 6vw, 3rem);
    line-height: 1.5;
    }

    .p-recruit-detail__table {
    border-top: 1px solid #D7DDE3;
    }

    .p-recruit-detail__row {
    grid-template-columns: 1fr;
    min-height: auto;
    padding: 0;
    }

    .p-recruit-detail__th {
    padding: 14px 0 8px;
    font-size: 1.4rem;
    line-height: 1.8;
    }

    .p-recruit-detail__td {
    padding: 0 0 14px;
    font-size: 1.2rem;
    line-height: 1.9;
    }

    .p-recruit-detail__cta {
    margin-top: 46px;
    }

    .p-recruit-detail__apply-btn {
    width: 100%;
    max-width: 320px;
    height: 68px;
    gap: 14px;
    font-size: 1.4rem;
    }

    .p-recruit-detail__pager {
    grid-template-columns: 1fr;
    row-gap: 20px;
    margin-top: 56px;
    text-align: center;
    }

    .p-recruit-detail__pager-link--prev,
    .p-recruit-detail__pager-link--center,
    .p-recruit-detail__pager-link--next {
    justify-self: center;
    }
}

/* =========================================
    エントリーフォーム
========================================= */
.p-entry-page {
    background: #fff;
}

.p-entry {
    padding: 76px 0 150px;
    background: #fff;
}

.p-entry__inner {
    width: min(100% - 80px, 1320px);
    margin: 0 auto;
}

/* =========================================
    入力に関してのご注意（アコーディオン）
========================================= */
.p-entry-note {
    margin-bottom: 58px;
    background: #edf4fa;
}

.p-entry-note__toggle {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    width: 100%;
    padding: 24px 20px;
    border: 0;
    background: transparent;
    cursor: pointer;
}

.p-entry-note__label {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 230px;
    min-height: 42px;
    padding: 0 20px;
    background: #2f5f8f;
    color: #fff;
    font-size: clamp(1.2rem, 1vw, 1.8rem);
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.08em;
}

.p-entry-note__icon {
    position: relative;
    width: 14px;
    height: 14px;
    flex-shrink: 0;
}

.p-entry-note__icon::before,
.p-entry-note__icon::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    background: #2f5f8f;
    transform: translate(-50%, -50%);
    transition: opacity 0.3s ease;
}

.p-entry-note__icon::before {
    width: 14px;
    height: 1px;
}

.p-entry-note__icon::after {
    width: 1px;
    height: 14px;
}

.p-entry-note.is-open .p-entry-note__icon::after {
    opacity: 0;
}

.p-entry-note__body {
    padding: 0 40px 30px;
}

.p-entry-note__body-inner {
    max-width: 920px;
    margin: 0 auto;
}

.p-entry-note__body-inner p {
    margin: 0;
    color: #333;
    font-size: clamp(1.2rem, 0.95vw, 1.4rem);
    font-weight: 400;
    line-height: 2.1;
    letter-spacing: 0.08em;
}

.p-entry-note__body-inner p + p {
    margin-top: 2px;
}

/* =========================================
    フォーム
========================================= */
.p-entry-form {
    width: min(100%, 1180px);
    margin: 0 auto;
}

.p-entry-form__row {
    display: grid;
    grid-template-columns: 230px minmax(0, 1fr);
    align-items: center;
    min-height: 86px;
    border-bottom: 1px solid #d9d9d9;
}

.p-entry-form__head {
    display: flex;
    align-items: center;
    gap: 14px;
    min-width: 0;
    padding: 16px 24px 16px 20px;
}

.p-entry-form__head p {
    display: flex;
    align-items: center;
    gap: 8px;
}

.p-entry-form__label {
    color: #333;
    font-size: clamp(1.4rem, 0.95vw, 1.4rem);
    font-weight: 400;
    line-height: 1.8;
    letter-spacing: 0.08em;
}

.p-entry-form__required {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 28px;
    height: 18px;
    padding: 0 6px;
    background: #d92d2d;
    color: #fff;
    font-size: 1.4rem;
    font-weight: 400;
    line-height: 1;
    letter-spacing: 0.04em;
    white-space: nowrap;
}

.p-entry-form__field {
    padding: 16px 20px 16px 0;
}

.p-entry-form__field input,
.p-entry-form__field textarea,
.p-entry-form__field select {
    width: 100%;
    border: 0;
    outline: none;
    background: #f5f5f5;
    color: #333;
    font-family: "Noto Sans JP", sans-serif;
    font-size: max(12px, 1.4rem);
    font-weight: 400;
    line-height: 1.6;
    letter-spacing: 0.04em;
}

.p-entry-form__field input,
.p-entry-form__field select {
    height: 48px;
    padding: 0 18px;
}

.p-entry-form__field textarea {
    min-height: 122px;
    padding: 14px 18px;
    resize: vertical;
}

.p-entry-form__select-wrap {
    position: relative;
    width: 100%;
    max-width: 360px;
}

.p-entry-form__select-wrap::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 16px;
    width: 8px;
    height: 8px;
    border-right: 1px solid #666;
    border-bottom: 1px solid #666;
    transform: translateY(-65%) rotate(45deg);
    pointer-events: none;
}

.p-entry-form__select-wrap select {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    padding-right: 42px;
    cursor: pointer;
}

.p-entry-form__row--textarea {
    align-items: start;
}

.p-entry-form__row--textarea .p-entry-form__head,
.p-entry-form__row--textarea .p-entry-form__field {
    padding-top: 18px;
    padding-bottom: 18px;
}

/* =========================================
    個人情報同意
========================================= */
.p-entry-form__privacy {
    padding: 26px 0 22px;
    border-bottom: 1px solid #d9d9d9;
}

.p-entry-form__privacy-text {
    margin: 0;
    color: #333;
    font-size: clamp(1.2rem, 0.9vw, 1.2rem);
    font-weight: 400;
    line-height: 1.9;
    letter-spacing: 0.06em;
    text-align: center;
}

.p-entry-form__privacy-check {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    margin-top: 12px;
}

.p-entry-form__privacy-check p {
    display: flex;
    align-items: center;
}

.p-entry-form__checkbox {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #333;
    font-size: clamp(1.2rem, 0.95vw, 1.4rem);
    font-weight: 400;
    line-height: 1.6;
    letter-spacing: 0.06em;
    cursor: pointer;
}

.p-entry-form__checkbox a {
    text-decoration: underline;
}

.p-entry-form__checkbox .wpcf7-form-control-wrap {
    width: auto;
}

.p-entry-form__checkbox input {
    width: 14px;
    height: 14px;
    margin: 0;
}

/* =========================================
    送信ボタン
========================================= */
.p-entry-form__submit {
    display: flex;
    justify-content: center;
    margin-top: 34px;
}

.p-entry-form__submit p {
    text-align: center;
}

.wpcf7-spinner {
    display: none;
}

.p-entry-form__submit-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 190px;
    height: 52px;
    padding: 0 28px;
    border: 0;
    border-radius: 999px;
    background: #2f5f8f;
    color: #fff;
    font-family: "Noto Sans JP", sans-serif;
    font-size: clamp(1.2rem, 0.95vw, 1.4rem);
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.08em;
    cursor: pointer;
    transition: opacity 0.3s ease;
}

.p-entry-form__submit-btn:hover {
    opacity: 0.72;
}

.is-confirming .p-entry-form__row,
.is-confirming .p-entry-form__privacy {
    display: none;
}

.p-entry-form__confirm {
    width: min(100%, 1180px);
    margin: 0 auto;
    border-top: 1px solid #d9d9d9;
}

.p-entry-form__confirm-row {
    display: grid;
    grid-template-columns: 230px minmax(0, 1fr);
    border-bottom: 1px solid #d9d9d9;
}

.p-entry-form__confirm-label {
    padding: 20px 24px 20px 20px;
    color: #333;
    font-size: clamp(1.4rem, 0.95vw, 1.4rem);
    line-height: 1.8;
    letter-spacing: 0.08em;
}

.p-entry-form__confirm-value {
    min-height: 68px;
    padding: 20px 20px 20px 0;
    color: #333;
    font-size: max(12px, 1.4rem);
    line-height: 1.8;
    letter-spacing: 0.04em;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

.p-entry-form__back-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 150px;
    height: 52px;
    margin-right: 18px;
    padding: 0 28px;
    border: 1px solid #2f5f8f;
    border-radius: 999px;
    background: #fff;
    color: #2f5f8f;
    font-family: "Noto Sans JP", sans-serif;
    font-size: clamp(1.2rem, 0.95vw, 1.4rem);
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.08em;
    cursor: pointer;
    transition: opacity 0.3s ease;
}

.p-entry-form__back-btn:hover {
    opacity: 0.72;
}

/* =========================================
    レスポンシブ
========================================= */
@media (max-width: 1024px) {
    .p-entry {
    padding: 64px 0 120px;
    }

    .p-entry__inner {
    width: min(100% - 48px, 1320px);
    }

    .p-entry-form__row {
    grid-template-columns: 200px minmax(0, 1fr);
    }

    .p-entry-form__head {
    padding-right: 16px;
    }

    .p-entry-form__field {
    padding-right: 0;
    }

    .p-entry-form__confirm-row {
    grid-template-columns: 200px minmax(0, 1fr);
    }

    .p-entry-form__confirm-label {
    padding-right: 16px;
    }

    .p-entry-form__confirm-value {
    padding-right: 0;
    }
}

@media (max-width: 767px) {
    .p-entry {
    padding: 48px 0 80px;
    }

    .p-entry__inner {
    width: min(100% - 32px, 1320px);
    }

    .p-entry-note {
    margin-bottom: 36px;
    }

    .p-entry-note__toggle {
    gap: 10px;
    padding: 18px 16px;
    }

    .p-entry-note__label {
    min-width: 0;
    min-height: 36px;
    padding: 0 14px;
    font-size: 1.2rem;
    }

    .p-entry-note__body {
    padding: 0 16px 20px;
    }

    .p-entry-note__body-inner {
    text-align: left;
    }

    .p-entry-note__body-inner p {
    font-size: 1.2rem;
    line-height: 2;
    }

    .p-entry-form__row {
    grid-template-columns: 1fr;
    min-height: auto;
    padding: 12px 0;
    }

    .p-entry-form__head {
    padding: 0 0 10px;
    }

    .p-entry-form__field {
    padding: 0;
    }

    .p-entry-form__field input,
    .p-entry-form__field select {
    height: 44px;
    padding: 0 14px;
    }

    .p-entry-form__field textarea {
    min-height: 112px;
    padding: 12px 14px;
    }

    .p-entry-form__select-wrap {
    max-width: none;
    }

    .p-entry-form__privacy {
    padding: 18px 0 16px;
    }

    .p-entry-form__privacy-text {
    text-align: left;
    font-size: 1.4rem;
    line-height: 1.9;
    }

    .p-entry-form__privacy-check {
    align-items: flex-start;
    justify-content: flex-start;
    gap: 10px;
    margin-top: 10px;
    }

    .p-entry-form__checkbox {
    align-items: flex-start;
    font-size: 1.4rem;
    line-height: 1.8;
    }

    .p-entry-form__submit {
    margin-top: 28px;
    }

    .p-entry-form__submit-btn {
    min-width: 180px;
    height: 48px;
    font-size: 1.4rem;
    }

    .p-entry-form__confirm-row {
    grid-template-columns: 1fr;
    padding: 12px 0;
    }

    .p-entry-form__confirm-label {
    padding: 0 0 10px;
    font-size: 1.4rem;
    }

    .p-entry-form__confirm-value {
    min-height: auto;
    padding: 0;
    font-size: 1.4rem;
    }

    .p-entry-form__back-btn {
    min-width: 130px;
    height: 48px;
    margin-right: 10px;
    font-size: 1.4rem;
    }
}

/* =========================================
    エントリー完了ページ
========================================= */
.p-entry-complete-page {
    background: #fff;
}

.p-entry-complete {
    padding: 92px 0 160px;
    background: #fff;
}

.p-entry-complete__inner {
    width: min(100% - 80px, 1320px);
    margin: 0 auto;
}

.p-entry-complete__box {
    width: min(100%, 1120px);
    margin: 0 auto;
    padding: 52px 72px 54px;
    background: #edf4fa;
}

.p-entry-complete__box p {
    margin: 0;
    color: #333;
    font-size: clamp(1.2rem, 1vw, 1.8rem);
    font-weight: 400;
    line-height: 2.2;
    letter-spacing: 0.08em;
}

.p-entry-complete__box p + p {
    margin-top: 4px;
}

.p-entry-complete__back {
    display: flex;
    justify-content: center;
    margin-top: 86px;
}

.p-entry-complete__back-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 18px;
    color: #333;
    text-decoration: none;
    transition: opacity 0.3s ease;
}

.p-entry-complete__back-link:hover {
    opacity: 0.72;
}

.p-entry-complete__back-text {
    font-size: clamp(1.2rem, 0.95vw, 1.6rem);
    font-weight: 700;
    line-height: 1.6;
    letter-spacing: 0.08em;
}

.p-entry-complete__back-arrow {
    position: relative;
    display: block;
    width: 100px;
    height: 60px;
    flex-shrink: 0;
}

.p-entry-complete__back-arrow::before {
    content: "";
    position: absolute;
    inset: 0;
    background: #5593cf;
    clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%);
}

/* 矢印の横棒 */
.p-entry-complete__back-arrow::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 18px;
    height: 2px;
    background: #fff;
    transform: translate(-58%, -50%);
}

/* 矢印の先 */
.p-entry-complete__back-arrow span {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 8px;
    height: 8px;
    border-top: 2px solid #fff;
    border-right: 2px solid #fff;
    transform: translate(15%, -50%) rotate(45deg);
    z-index: 1;
}

/* =========================================
    レスポンシブ
========================================= */
@media (max-width: 1024px) {
    .p-entry-complete {
    padding: 72px 0 120px;
    }

    .p-entry-complete__inner {
    width: min(100% - 48px, 1320px);
    }

    .p-entry-complete__box {
    padding: 42px 40px 44px;
    }

    .p-entry-complete__back {
    margin-top: 64px;
    }
}

@media (max-width: 767px) {
    .p-entry-complete {
    padding: 52px 0 80px;
    }

    .p-entry-complete__inner {
    width: min(100% - 32px, 1320px);
    }

    .p-entry-complete__box {
    padding: 28px 20px 30px;
    }

    .p-entry-complete__box p {
    font-size: 1.2rem;
    line-height: 2;
    }

    .p-entry-complete__back {
    margin-top: 40px;
    }

    .p-entry-complete__back-link {
    gap: 12px;
    }

    .p-entry-complete__back-text {
    font-size: 1.2rem;
    }

    .p-entry-complete__back-arrow {
    width: 60px;
    height: 40px;
    }

    .p-entry-complete__back-arrow::before {
    left: 21px;
    width: 14px;
    }

    .p-entry-complete__back-arrow::after {
    right: 15px;
    width: 7px;
    height: 7px;
    }
}

@media (max-width: 767px) {
    .p-entry-complete__back-arrow {
    width: 80px;
    height: 48px;
    }

    .p-entry-complete__back-arrow::after {
    width: 14px;
    height: 2px;
    }

    .p-entry-complete__back-arrow span {
    width: 7px;
    height: 7px;
    }
}

/* =========================================
    お問い合わせページ
========================================= */
.p-contact-page {
    background: #fff;
}

.p-contact {
    padding: 76px 0 150px;
    background: #fff;
}

.p-contact__inner {
    width: min(100% - 80px, 1320px);
    margin: 0 auto;
}

/* =========================================
    入力に関してのご注意
    ※ エントリーフォームと同一
========================================= */
.p-entry-note {
    margin-bottom: 58px;
    background: #edf4fa;
}

.p-entry-note__toggle {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    width: 100%;
    padding: 24px 20px;
    border: 0;
    background: transparent;
    cursor: pointer;
}

.p-entry-note__label {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 230px;
    min-height: 42px;
    padding: 0 20px;
    background: #2f5f8f;
    color: #fff;
    font-size: clamp(1.2rem, 1vw, 1.8rem);
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.08em;
}

.p-entry-note__icon {
    position: relative;
    width: 14px;
    height: 14px;
    flex-shrink: 0;
}

.p-entry-note__icon::before,
.p-entry-note__icon::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    background: #2f5f8f;
    transform: translate(-50%, -50%);
    transition: opacity 0.3s ease;
}

.p-entry-note__icon::before {
    width: 14px;
    height: 1px;
}

.p-entry-note__icon::after {
    width: 1px;
    height: 14px;
}

.p-entry-note.is-open .p-entry-note__icon::after {
    opacity: 0;
}

.p-entry-note__body {
    padding: 0 40px 30px;
}

.p-entry-note__body-inner {
    max-width: 920px;
    margin: 0 auto;
}

.p-entry-note__body-inner p {
    margin: 0;
    color: #333;
    font-size: clamp(1.2rem, 0.95vw, 1.4rem);
    font-weight: 400;
    line-height: 2.1;
    letter-spacing: 0.08em;
}

.p-entry-note__body-inner p + p {
    margin-top: 2px;
}

/* =========================================
    お問い合わせフォーム
========================================= */
.p-contact-form {
    width: min(100%, 1180px);
    margin: 0 auto;
}

.p-contact-form__row {
    display: grid;
    grid-template-columns: 230px minmax(0, 1fr);
    align-items: center;
    min-height: 86px;
    border-bottom: 1px solid #d9d9d9;
}

.p-contact-form__head {
    display: flex;
    align-items: center;
    gap: 14px;
    min-width: 0;
    padding: 16px 24px 16px 20px;
}

.p-contact-form__label {
    color: #333;
    font-size: clamp(1.4rem, 0.95vw, 1.4rem);
    font-weight: 400;
    line-height: 1.8;
    letter-spacing: 0.08em;
}

.p-contact-form__required {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 28px;
    height: 18px;
    padding: 0 6px;
    background: #d92d2d;
    color: #fff;
    font-size: 1.4rem;
    font-weight: 400;
    line-height: 1;
    letter-spacing: 0.04em;
    white-space: nowrap;
}

.p-contact-form__field {
    padding: 16px 20px 16px 0;
}

.p-contact-form__field input,
.p-contact-form__field textarea,
.p-contact-form__field select {
    width: 100%;
    border: 0;
    outline: none;
    background: #f5f5f5;
    color: #333;
    font-family: "Noto Sans JP", sans-serif;
    font-size: max(12px, 1.4rem);
    font-weight: 400;
    line-height: 1.6;
    letter-spacing: 0.04em;
}

.wpcf7-form-control-wrap {
    width: 100%;
}

.p-contact-form__checkbox .wpcf7-form-control-wrap {
    width: auto;
}

.p-contact-form__field input,
.p-contact-form__field select {
    height: 48px;
    padding: 0 18px;
}

.p-contact-form__field textarea {
    min-height: 122px;
    padding: 14px 18px;
    resize: vertical;
}

.p-contact-form__select-wrap {
    position: relative;
    width: 100%;
    max-width: 360px;
}

.p-contact-form__select-wrap::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 12%;
    width: 8px;
    height: 8px;
    border-right: 1px solid #666;
    border-bottom: 1px solid #666;
    transform: translateY(-65%) rotate(45deg);
    pointer-events: none;
}

.p-contact-form__select-wrap select {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    padding-right: 42px;
    cursor: pointer;
}

.p-contact-form__row--textarea {
    align-items: start;
}

.p-contact-form__row--textarea .p-contact-form__head,
.p-contact-form__row--textarea .p-contact-form__field {
    padding-top: 18px;
    padding-bottom: 18px;
}

/* =========================================
    個人情報同意
========================================= */
.p-contact-form__privacy {
    padding: 26px 0 22px;
    border-bottom: 1px solid #d9d9d9;
}

.p-contact-form__privacy-text {
    margin: 0;
    color: #333;
    font-size: clamp(1.2rem, 0.9vw, 1.2rem);
    font-weight: 400;
    line-height: 1.9;
    letter-spacing: 0.06em;
    text-align: center;
}

.p-contact-form__privacy-check {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    margin-top: 12px;
}

.p-contact-form__privacy-check p {
    display: flex;
    align-items: center;
}

.p-contact-form__checkbox {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #333;
    font-size: clamp(1.2rem, 0.95vw, 1.4rem);
    font-weight: 400;
    line-height: 1.6;
    letter-spacing: 0.06em;
    cursor: pointer;
}

.p-contact-form__checkbox a {
    text-decoration: underline;
}

.p-contact-form__checkbox input {
    width: 14px;
    height: 14px;
    margin: 0;
}

.wpcf7-acceptance input {
    appearance: checkbox;
    -webkit-appearance: checkbox;
    -moz-appearance: checkbox;
}

/* =========================================
    送信ボタン
========================================= */
.p-contact-form__submit {
    display: flex;
    justify-content: center;
    margin-top: 34px;
}

.p-contact-form__submit p {
    text-align: center;
}

.p-contact-form__submit-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 190px;
    height: 52px;
    padding: 0 28px;
    border: 0;
    border-radius: 999px;
    background: #2f5f8f;
    color: #fff;
    font-family: "Noto Sans JP", sans-serif;
    font-size: clamp(1.2rem, 0.95vw, 1.4rem);
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.08em;
    cursor: pointer;
    transition: opacity 0.3s ease;
}

.p-contact-form__submit-btn:hover {
    opacity: 0.72;
}

.is-confirming .p-contact-form__row,
.is-confirming .p-contact-form__privacy {
    display: none;
}

.p-contact-form__confirm {
    width: min(100%, 1180px);
    margin: 0 auto;
    border-top: 1px solid #d9d9d9;
}

.p-contact-form__confirm-row {
    display: grid;
    grid-template-columns: 230px minmax(0, 1fr);
    border-bottom: 1px solid #d9d9d9;
}

.p-contact-form__confirm-label {
    padding: 20px 24px 20px 20px;
    color: #333;
    font-size: clamp(1.4rem, 0.95vw, 1.4rem);
    line-height: 1.8;
    letter-spacing: 0.08em;
}

.p-contact-form__confirm-value {
    min-height: 68px;
    padding: 20px 20px 20px 0;
    color: #333;
    font-size: max(12px, 1.4rem);
    line-height: 1.8;
    letter-spacing: 0.04em;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

.p-contact-form__back-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 150px;
    height: 52px;
    margin-right: 18px;
    padding: 0 28px;
    border: 1px solid #2f5f8f;
    border-radius: 999px;
    background: #fff;
    color: #2f5f8f;
    font-family: "Noto Sans JP", sans-serif;
    font-size: clamp(1.2rem, 0.95vw, 1.4rem);
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.08em;
    cursor: pointer;
    transition: opacity 0.3s ease;
}

.p-contact-form__back-btn:hover {
    opacity: 0.72;
}

/* =========================================
    レスポンシブ
========================================= */
@media (max-width: 1024px) {
    .p-contact {
    padding: 64px 0 120px;
    }

    .p-contact__inner {
    width: min(100% - 48px, 1320px);
    }

    .p-contact-form__row {
    grid-template-columns: 200px minmax(0, 1fr);
    }

    .p-contact-form__head {
    padding-right: 16px;
    }

    .p-contact-form__field {
    padding-right: 0;
    }

    .p-contact-form__confirm-row {
    grid-template-columns: 200px minmax(0, 1fr);
    }

    .p-contact-form__confirm-label {
    padding-right: 16px;
    }

    .p-contact-form__confirm-value {
    padding-right: 0;
    }
}

@media (max-width: 767px) {
    .p-contact {
    padding: 48px 0 80px;
    }

    .p-contact__inner {
    width: min(100% - 32px, 1320px);
    }

    .p-entry-note {
    margin-bottom: 36px;
    }

    .p-entry-note__toggle {
    gap: 10px;
    padding: 18px 16px;
    }

    .p-entry-note__label {
    min-width: 0;
    min-height: 36px;
    padding: 0 14px;
    font-size: 1.2rem;
    }

    .p-entry-note__body {
    padding: 0 16px 20px;
    }

    .p-entry-note__body-inner {
    text-align: left;
    }

    .p-entry-note__body-inner p {
    font-size: 1.4rem;
    line-height: 2;
    }

    .p-contact-form__row {
    grid-template-columns: 1fr;
    min-height: auto;
    padding: 12px 0;
    }

    .p-contact-form__head {
    padding: 0 0 10px;
    }

    .p-contact-form__field {
    padding: 0;
    }

    .p-contact-form__field input,
    .p-contact-form__field select {
    height: 44px;
    padding: 0 14px;
    }

    .p-contact-form__field textarea {
    min-height: 112px;
    padding: 12px 14px;
    }

    .p-contact-form__select-wrap::after {
    right: 22%;
    }

    .p-contact-form__privacy {
    padding: 18px 0 16px;
    }

    .p-contact-form__privacy-text {
    text-align: left;
    font-size: 1.4rem;
    line-height: 1.9;
    }

    .p-contact-form__privacy-check {
    align-items: flex-start;
    justify-content: flex-start;
    gap: 10px;
    margin-top: 10px;
    }

    .p-contact-form__checkbox {
    align-items: flex-start;
    font-size: 1.4rem;
    line-height: 1.8;
    }

    .p-contact-form__submit {
    margin-top: 28px;
    }

    .p-contact-form__submit-btn {
    min-width: 180px;
    height: 48px;
    font-size: 1.4rem;
    }

    .p-contact-form__confirm-row {
    grid-template-columns: 1fr;
    padding: 12px 0;
    }

    .p-contact-form__confirm-label {
    padding: 0 0 10px;
    font-size: 1.4rem;
    }

    .p-contact-form__confirm-value {
    min-height: auto;
    padding: 0;
    font-size: 1.4rem;
    }

    .p-contact-form__back-btn {
    min-width: 130px;
    height: 48px;
    margin-right: 10px;
    font-size: 1.4rem;
    }
}

/* =========================================
    お問い合わせ完了ページ
========================================= */
.p-contact-complete-page {
    background: #fff;
}

.p-contact-complete {
    padding: 92px 0 160px;
    background: #fff;
}

.p-contact-complete__inner {
    width: min(100% - 80px, 1320px);
    margin: 0 auto;
}

.p-contact-complete__box {
    width: min(100%, 1120px);
    margin: 0 auto;
    padding: 52px 72px 54px;
    background: #edf4fa;
}

.p-contact-complete__box p {
    margin: 0;
    color: #333;
    font-size: clamp(1.2rem, 1vw, 1.8rem);
    font-weight: 400;
    line-height: 2.2;
    letter-spacing: 0.08em;
}

.p-contact-complete__box p + p {
    margin-top: 4px;
}

.p-contact-complete__back {
    display: flex;
    justify-content: center;
    margin-top: 86px;
}

.p-contact-complete__back-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 18px;
    color: #333;
    text-decoration: none;
    transition: opacity 0.3s ease;
}

.p-contact-complete__back-link:hover {
    opacity: 0.72;
}

.p-contact-complete__back-text {
    font-size: clamp(1.2rem, 0.95vw, 1.6rem);
    font-weight: 700;
    line-height: 1.6;
    letter-spacing: 0.08em;
}

/* 菱形：W100 H60 のきれいな菱形（回転は使わない） */
.p-contact-complete__back-arrow {
    position: relative;
    display: block;
    width: 100px;
    height: 60px;
    flex-shrink: 0;
}

.p-contact-complete__back-arrow::before {
    content: "";
    position: absolute;
    inset: 0;
    background: #5593cf;
    clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%);
}

/* 矢印 */
.p-contact-complete__back-arrow-line {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 18px;
    height: 2px;
    background: #fff;
    transform: translate(-58%, -50%);
    z-index: 1;
}

.p-contact-complete__back-arrow-head {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 8px;
    height: 8px;
    border-top: 2px solid #fff;
    border-right: 2px solid #fff;
    transform: translate(18%, -50%) rotate(45deg);
    z-index: 1;
}

/* =========================================
    レスポンシブ
========================================= */
@media (max-width: 1024px) {
    .p-contact-complete {
    padding: 72px 0 120px;
    }

    .p-contact-complete__inner {
    width: min(100% - 48px, 1320px);
    }

    .p-contact-complete__box {
    padding: 42px 40px 44px;
    }

    .p-contact-complete__back {
    margin-top: 64px;
    }
}

@media (max-width: 767px) {
    .p-contact-complete {
    padding: 52px 0 80px;
    }

    .p-contact-complete__inner {
    width: min(100% - 32px, 1320px);
    }

    .p-contact-complete__box {
    padding: 28px 20px 30px;
    }

    .p-contact-complete__box p {
    font-size: 1.2rem;
    line-height: 2;
    }

    .p-contact-complete__back {
    margin-top: 40px;
    }

    .p-contact-complete__back-link {
    gap: 12px;
    }

    .p-contact-complete__back-text {
    font-size: 1.2rem;
    }

    .p-contact-complete__back-arrow {
    width: 80px;
    height: 48px;
    }

    .p-contact-complete__back-arrow-line {
    width: 14px;
    }

    .p-contact-complete__back-arrow-head {
    width: 7px;
    height: 7px;
    }
}

/* =========================================
    プライバシーポリシーページ
========================================= */
.p-privacy-page {
    background: #fff;
}

.p-privacy {
    padding: 74px 0 150px;
    background: #fff;
}

.p-privacy__inner {
    width: min(100% - 80px, 1320px);
    margin: 0 auto;
}

.p-privacy__content {
    width: min(100%, 1320px);
    margin: 0 auto;
}

.p-privacy__lead {
    margin: 0 0 54px;
    color: #333;
    font-size: clamp(1.2rem, 0.95vw, 1.4rem);
    font-weight: 400;
    line-height: 2.3;
    letter-spacing: 0.08em;
}

.p-privacy__section + .p-privacy__section {
    margin-top: 34px;
}

.p-privacy__title {
    margin: 0 0 10px;
    color: #222;
    font-size: clamp(1.4rem, 1.1vw, 2rem);
    font-weight: 700;
    line-height: 1.8;
    letter-spacing: 0.08em;
}

.p-privacy__text {
    margin: 0;
    color: #333;
    font-size: clamp(1.2rem, 0.95vw, 1.4rem);
    font-weight: 400;
    line-height: 2.3;
    letter-spacing: 0.08em;
}

.p-privacy__list {
    margin: 8px 0 0;
    padding: 0;
    list-style: none;
}

.p-privacy__list li {
    position: relative;
    padding-left: 1em;
    color: #333;
    font-size: clamp(1.2rem, 0.95vw, 1.4rem);
    font-weight: 400;
    line-height: 2.2;
    letter-spacing: 0.08em;
}

.p-privacy__list li::before {
    content: "・";
    position: absolute;
    left: 0;
    top: 0;
}

/* 戻る */
.p-privacy__back {
    display: flex;
    justify-content: center;
    margin-top: 66px;
}

.p-privacy__back-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 18px;
    color: #333;
    text-decoration: none;
    transition: opacity 0.3s ease;
}

.p-privacy__back-link:hover {
    opacity: 0.72;
}

.p-privacy__back-text {
    font-size: clamp(1.2rem, 0.95vw, 1.6rem);
    font-weight: 700;
    line-height: 1.6;
    letter-spacing: 0.08em;
}

/* 菱形：W100 H60 のきれいな菱形 */
.p-privacy__back-arrow {
    position: relative;
    display: block;
    width: 100px;
    height: 60px;
    flex-shrink: 0;
}

.p-privacy__back-arrow::before {
    content: "";
    position: absolute;
    inset: 0;
    background: #5593cf;
    clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%);
}

.p-privacy__back-arrow-line {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 18px;
    height: 2px;
    background: #fff;
    transform: translate(-58%, -50%);
    z-index: 1;
}

.p-privacy__back-arrow-head {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 8px;
    height: 8px;
    border-top: 2px solid #fff;
    border-right: 2px solid #fff;
    transform: translate(18%, -50%) rotate(45deg);
    z-index: 1;
}

/* =========================================
    レスポンシブ
========================================= */
@media (max-width: 1024px) {
    .p-privacy {
    padding: 60px 0 120px;
    }

    .p-privacy__inner {
    width: min(100% - 48px, 1320px);
    }

    .p-privacy__lead {
    margin-bottom: 42px;
    }

    .p-privacy__section + .p-privacy__section {
    margin-top: 28px;
    }

    .p-privacy__back {
    margin-top: 56px;
    }
}

@media (max-width: 767px) {
    .p-privacy {
    padding: 46px 0 80px;
    }

    .p-privacy__inner {
    width: min(100% - 32px, 1320px);
    }

    .p-privacy__lead {
    margin-bottom: 34px;
    font-size: 1.4rem;
    line-height: 2.1;
    }

    .p-privacy__section + .p-privacy__section {
    margin-top: 24px;
    }

    .p-privacy__title {
    margin-bottom: 8px;
    font-size: 1.4rem;
    line-height: 1.8;
    }

    .p-privacy__text,
    .p-privacy__list li {
    font-size: 1.4rem;
    line-height: 2;
    }

    .p-privacy__back {
    margin-top: 40px;
    }

    .p-privacy__back-link {
    gap: 12px;
    }

    .p-privacy__back-text {
    font-size: 1.4rem;
    }

    .p-privacy__back-arrow {
    width: 80px;
    height: 48px;
    }

    .p-privacy__back-arrow-line {
    width: 14px;
    }

    .p-privacy__back-arrow-head {
    width: 7px;
    height: 7px;
    }
}

/* =========================================
    404ページ
========================================= */
.p-error-page {
    background: #fff;
}

.p-error404 {
    padding: 92px 0 160px;
    background: #fff;
}

.p-error404__inner {
    width: min(100% - 80px, 1320px);
    margin: 0 auto;
}

.p-error404__message {
    text-align: center;
}

.p-error404__message p {
    margin: 0;
    color: #333;
    font-size: clamp(1.2rem, 0.95vw, 1.6rem);
    font-weight: 400;
    line-height: 2.2;
    letter-spacing: 0.08em;
}

.p-error404__message p + p {
    margin-top: 2px;
}

/* 戻る */
.p-error404__back {
    display: flex;
    justify-content: center;
    margin-top: 74px;
}

.p-error404__back-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 18px;
    color: #333;
    text-decoration: none;
    transition: opacity 0.3s ease;
}

.p-error404__back-link:hover {
    opacity: 0.72;
}

.p-error404__back-text {
    font-size: clamp(1.2rem, 0.95vw, 1.6rem);
    font-weight: 700;
    line-height: 1.6;
    letter-spacing: 0.08em;
}

/* 菱形：W100 H60 のきれいな菱形 */
.p-error404__back-arrow {
    position: relative;
    display: block;
    width: 100px;
    height: 60px;
    flex-shrink: 0;
}

.p-error404__back-arrow::before {
    content: "";
    position: absolute;
    inset: 0;
    background: #5593cf;
    clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%);
}

.p-error404__back-arrow-line {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 18px;
    height: 2px;
    background: #fff;
    transform: translate(-58%, -50%);
    z-index: 1;
}

.p-error404__back-arrow-head {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 8px;
    height: 8px;
    border-top: 2px solid #fff;
    border-right: 2px solid #fff;
    transform: translate(18%, -50%) rotate(45deg);
    z-index: 1;
}

/* =========================================
    レスポンシブ
========================================= */
@media (max-width: 1024px) {
    .p-error404 {
    padding: 72px 0 120px;
    }

    .p-error404__inner {
    width: min(100% - 48px, 1320px);
    }

    .p-error404__back {
    margin-top: 60px;
    }
}

@media (max-width: 767px) {
    .p-error404 {
    padding: 52px 0 80px;
    }

    .p-error404__inner {
    width: min(100% - 32px, 1320px);
    }

    .p-error404__message p {
    font-size: 1.4rem;
    line-height: 2;
    }

    .p-error404__back {
    margin-top: 40px;
    }

    .p-error404__back-link {
    gap: 12px;
    }

    .p-error404__back-text {
    font-size: 1.4rem;
    }

    .p-error404__back-arrow {
    width: 80px;
    height: 48px;
    }

    .p-error404__back-arrow-line {
    width: 14px;
    }

    .p-error404__back-arrow-head {
    width: 7px;
    height: 7px;
    }
}

.p-recruit-detail__pager {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 20px;
}

.p-recruit-detail__pager-col--prev {
    justify-self: start;
}

.p-recruit-detail__pager-col--center {
    justify-self: center;
}

.p-recruit-detail__pager-col--next {
    justify-self: end;
}

@media (max-width: 767px) {
    .p-recruit-detail__pager {
    grid-template-columns: 1fr;
    gap: 16px;
    }

    .p-recruit-detail__pager-col--prev,
    .p-recruit-detail__pager-col--center,
    .p-recruit-detail__pager-col--next {
    justify-self: center;
    }
}

.p-post {
    padding: 88px 0 120px;
    background: #ffffff;
}

.p-post__inner {
    width: min(100% - 48px, 960px);
    margin: 0 auto;
}

.p-post__article {
    padding: 48px;
    background: #fff;
    border: 1px solid #d9e4ef;
    border-radius: 24px;
    box-shadow: 0 16px 44px rgba(47, 95, 143, 0.08);
}

.p-post__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    margin-bottom: 20px;
}

.p-post__date {
    color: #2f5f8f;
    font-size: 1.4rem;
    font-weight: 600;
    letter-spacing: 0.08em;
}

.p-post__category {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    padding: 6px 14px;
    background: #edf4fa;
    border-radius: 999px;
    color: #2f5f8f;
    font-size: 1.2rem;
    font-weight: 700;
    letter-spacing: 0.08em;
}

.p-post__title {
    margin: 0;
    color: #333;
    font-size: clamp(2.6rem, 3vw, 4rem);
    line-height: 1.5;
    letter-spacing: 0.06em;
}

.p-post__thumbnail {
    margin: 36px 0 0;
    overflow: hidden;
    border-radius: 20px;
}

.p-post__thumbnail img {
    width: 100%;
    height: auto;
}

.p-post__content {
    margin-top: 40px;
    color: #333;
    font-size: 1.6rem;
    line-height: 2;
    letter-spacing: 0.04em;
}

.p-post__content > * {
    margin-top: 0;
    margin-bottom: 0;
}

.p-post__content > * + * {
    margin-top: 24px;
}

.p-post__content h2,
.p-post__content h3,
.p-post__content h4 {
    color: #2f5f8f;
    font-weight: 700;
    line-height: 1.6;
}

.p-post__content h2 {
    font-size: 2.8rem;
}

.p-post__content h3 {
    font-size: 2.2rem;
}

.p-post__content h4 {
    font-size: 1.8rem;
}

.p-post__content ul,
.p-post__content ol {
    padding-left: 1.5em;
}

.p-post__content ul {
    list-style: disc;
}

.p-post__content ol {
    list-style: decimal;
}

.p-post__content li + li {
    margin-top: 8px;
}

.p-post__content a {
    color: #2f5f8f;
    text-decoration: underline;
    text-underline-offset: 0.2em;
}

.p-post__content img {
    height: auto;
}

.p-post__pager {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 24px;
    margin-top: 40px;
}

.p-post__pager-col--prev {
    justify-self: start;
}

.p-post__pager-col--center {
    justify-self: center;
}

.p-post__pager-col--next {
    justify-self: end;
}

.p-post__pager-link,
.p-post__back-link {
    color: #2f5f8f;
    font-size: 1.4rem;
    font-weight: 700;
    letter-spacing: 0.08em;
}

.p-post__back-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 52px;
    padding: 0 28px;
    border: 1px solid #2f5f8f;
    border-radius: 999px;
    transition: background-color 0.3s ease, color 0.3s ease;
}

.p-post__back-link:hover {
    background: #2f5f8f;
    color: #fff;
}

@media (max-width: 767px) {
    .p-post {
    padding: 56px 0 80px;
    }

    .p-post__inner {
    width: min(100% - 32px, 960px);
    }

    .p-post__article {
    padding: 28px 20px;
    border-radius: 20px;
    }

    .p-post__meta {
    gap: 10px;
    margin-bottom: 16px;
    }

    .p-post__title {
    font-size: 2.4rem;
    }

    .p-post__content {
    margin-top: 28px;
    font-size: 1.5rem;
    }

    .p-post__content h2 {
    font-size: 2.2rem;
    }

    .p-post__content h3 {
    font-size: 1.9rem;
    }

    .p-post__content h4 {
    font-size: 1.7rem;
    }

    .p-post__pager {
    grid-template-columns: 1fr;
    justify-items: center;
    gap: 16px;
    margin-top: 32px;
    }

    .p-post__pager-col--prev,
    .p-post__pager-col--center,
    .p-post__pager-col--next {
    justify-self: center;
    }
}

.p-post-archive {
    padding: 88px 0 120px;
    background: #ffffff;
}

.p-post-archive__inner {
    width: min(100% - 48px, 1320px);
    margin: 0 auto;
}

.p-post-archive__list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 32px;
}

.p-post-card {
    min-width: 0;
}

.p-post-card__link {
    display: flex;
    flex-direction: column;
    height: 100%;
    overflow: hidden;
    background: #fff;
    border: 1px solid #d9e4ef;
    border-radius: 24px;
    box-shadow: 0 16px 44px rgba(47, 95, 143, 0.08);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.p-post-card__link:hover {
    transform: translateY(-6px);
    box-shadow: 0 18px 48px rgba(47, 95, 143, 0.16);
}

.p-post-card__thumbnail {
    aspect-ratio: 16 / 10;
    overflow: hidden;
}

.p-post-card__thumbnail img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.p-post-card__body {
    display: flex;
    flex: 1;
    flex-direction: column;
    padding: 24px;
}

.p-post-card__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    margin-bottom: 16px;
}

.p-post-card__date {
    color: #2f5f8f;
    font-size: 1.3rem;
    font-weight: 600;
    letter-spacing: 0.08em;
}

.p-post-card__category {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 30px;
    padding: 4px 12px;
    background: #edf4fa;
    border-radius: 999px;
    color: #2f5f8f;
    font-size: 1.1rem;
    font-weight: 700;
    letter-spacing: 0.08em;
}

.p-post-card__title {
    margin: 0;
    color: #333;
    font-size: 2rem;
    line-height: 1.7;
    letter-spacing: 0.04em;
}

.p-post-card__excerpt {
    margin: 16px 0 0;
    color: #333;
    font-size: 1.5rem;
    line-height: 1.9;
    letter-spacing: 0.04em;
}

.p-post-archive__pagination {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
    margin-top: 48px;
}

.p-post-archive__pagination-item a,
.p-post-archive__pagination-item span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 46px;
    min-height: 46px;
    padding: 0 14px;
    border: 1px solid #2f5f8f;
    border-radius: 999px;
    color: #2f5f8f;
    font-size: 1.4rem;
    font-weight: 700;
    letter-spacing: 0.06em;
}

.p-post-archive__pagination-item .current {
    background: #2f5f8f;
    color: #fff;
}

.p-post-archive__pagination-item a:hover {
    background: #2f5f8f;
    color: #fff;
}

.p-post-archive__empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 24px;
    padding: 80px 24px;
    background: #fff;
    border: 1px solid #d9e4ef;
    border-radius: 24px;
    text-align: center;
}

.p-post-archive__empty p {
    margin: 0;
    color: #333;
    font-size: 1.6rem;
    line-height: 2;
    letter-spacing: 0.04em;
}

@media (max-width: 1024px) {
    .p-post-archive__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767px) {
    .p-post-archive {
    padding: 56px 0 80px;
    }

    .p-post-archive__inner {
    width: min(100% - 32px, 1320px);
    }

    .p-post-archive__list {
    grid-template-columns: 1fr;
    gap: 20px;
    }

    .p-post-card__body {
    padding: 20px;
    }

    .p-post-card__title {
    font-size: 1.8rem;
    }

    .p-post-card__excerpt {
    font-size: 1.4rem;
    }

    .p-post-archive__pagination {
    gap: 8px;
    margin-top: 36px;
    }

    .p-post-archive__pagination-item a,
    .p-post-archive__pagination-item span {
    min-width: 42px;
    min-height: 42px;
    font-size: 1.3rem;
    }
}
