@charset "utf-8";

/* =========================================
   Variables
   PC カンプ: 1440px / SP カンプ: 375px（画像2倍）
   ========================================= */
:root {
    --color-text: #1a1a1a;
    --color-bg: #ffffff;
    --color-primary: #0b3b8c;
    --color-accent: #d8a13a;
    --color-gray: #767676;
    --color-line: #e0e0e0;
    --color-contact: #ea7900;

    --font-jp: "Noto Sans JP", sans-serif;
    --font-en: "Poppins", sans-serif;

    --fs-base: 16px;
    --fs-heading-lg: 60px;  /* 大見出し PC */
    --fs-heading-md: 30px;  /* 中見出し */
    --fs-footer-min: 14px;

    --inner-width: 1110px;
    --inner-padding: 20px;

    --btn-width: 280px;
    --btn-height: 56px;
    --card-width: 280px;

    --header-height: 80px;
    --contact-btn-height: 35px;
}

/* =========================================
   Base
   ========================================= */
html {
    scroll-behavior: smooth;
    scroll-padding-top: var(--header-height);
}

body {
    font-family: var(--font-jp);
    font-size: var(--fs-base);
    line-height: 1.8;
    color: var(--color-text);
    background-color: var(--color-bg);
}

/* =========================================
   Layout
   ========================================= */
.l-inner {
    width: min(100% - var(--inner-padding) * 2, var(--inner-width));
    margin-inline: auto;
}

.l-header {
    position: fixed;
    inset: 0 0 auto;
    z-index: 100;
    height: var(--header-height);
    background-color: transparent;
    color: #fff;
    transition: background-color .3s, color .3s;
}

.l-header.is-scrolled {
    background-color: #000;
    color: #fff;
}

.l-header__inner {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 32px;
    height: 100%;
    width: 100%;
    padding-inline: 16px;
}

.l-header__logo img {
    width: 250px;
    height: auto;
}

.l-header__list {
    display: flex;
    justify-content: flex-end;
    gap: 32px;
    white-space: nowrap;
}

.l-header__item--contact,
.l-header__drawer-foot {
    display: none;
}

.l-header__link.is-current {
    color: var(--color-accent);
}

@media screen and (min-width: 768px) {
    .l-header__link {
        position: relative;
        padding-bottom: 4px;
        transition: color .3s;
    }

    .l-header__link::after {
        content: "";
        position: absolute;
        bottom: 0;
        left: 0;
        width: 100%;
        height: 1px;
        background-image: repeating-linear-gradient(
            to right,
            currentColor 0,
            currentColor 5px,
            transparent 5px,
            transparent 10px
        );
        background-size: 10px 1px;
        background-repeat: repeat-x;
        opacity: 0;
        transform: scaleX(0);
        transform-origin: left center;
        transition: opacity .3s, transform .3s ease-out;
        pointer-events: none;
    }

    @media (hover: hover) {
        .l-header__link:hover::after {
            opacity: 1;
            transform: scaleX(1);
            animation: navDashedMove .5s linear infinite;
        }
    }

    /* Sub menu dropdown (PC) */
    .l-header__item {
        position: relative;
    }

    .l-header__item-head {
        display: flex;
        align-items: center;
    }

    .l-header__sub-toggle {
        display: none;
    }

    .l-header__sub-menu {
        position: absolute;
        top: calc(100% + 12px);
        left: 50%;
        translate: -50% 8px;
        min-width: 250px;
        padding: 24px 28px;
        background-color: #ffffff;
        border-radius: 20px;
        box-shadow: 0 12px 36px rgba(0, 0, 0, 0.14);
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transition: opacity .25s ease, translate .25s ease, visibility .25s;
        z-index: 100;
    }

    /* ホバーエリアの途切れを防ぐ（親リンクと重ならないようギャップ分のみ） */
    .l-header__sub-menu::before {
        content: "";
        position: absolute;
        bottom: 100%;
        left: 0;
        right: 0;
        height: 12px;
    }

    .l-header__item--has-sub:hover .l-header__sub-menu,
    .l-header__item--has-sub:focus-within .l-header__sub-menu {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        translate: -50% 0;
    }

    .l-header__item--has-sub .l-header__link {
        position: relative;
        z-index: 101;
    }

    .l-header__sub-list {
        display: grid;
        grid-template-columns: 1fr;
        gap: 14px;
        padding: 0;
        list-style: none;
    }

    .l-header__sub-item {
        display: block;
    }

    .l-header__sub-link {
        position: relative;
        display: inline-flex;
        align-items: center;
        gap: 12px;
        color: var(--color-text);
        font-size: 15px;
        font-weight: 500;
        line-height: 1.5;
        white-space: nowrap;
        text-decoration: none;
        padding-bottom: 3px;
        transition: color .25s;
    }

    .l-header__sub-bar {
        display: inline-block;
        width: 14px;
        height: 1.5px;
        background-color: var(--color-accent);
        flex-shrink: 0;
    }

    .l-header__sub-text {
        position: relative;
    }

    /* サブメニュー項目のホバーアニメーション（現在のナビと同じ点線アニメーション） */
    .l-header__sub-text::after {
        content: "";
        position: absolute;
        bottom: -3px;
        left: 0;
        width: 100%;
        height: 1px;
        background-image: repeating-linear-gradient(
            to right,
            var(--color-accent) 0,
            var(--color-accent) 5px,
            transparent 5px,
            transparent 10px
        );
        background-size: 10px 1px;
        background-repeat: repeat-x;
        opacity: 0;
        transform: scaleX(0);
        transform-origin: left center;
        transition: opacity .3s, transform .3s ease-out;
        pointer-events: none;
    }

    @media (hover: hover) {
        .l-header__sub-link:hover {
            color: var(--color-accent);
        }

        .l-header__sub-link:hover .l-header__sub-text::after {
            opacity: 1;
            transform: scaleX(1);
            animation: navDashedMove .5s linear infinite;
        }
    }
}

@keyframes navDashedMove {
    0% {
        background-position-x: 0;
    }
    100% {
        background-position-x: 10px;
    }
}

.l-header__contact {
    display: grid;
    grid-template-columns: auto auto;
    align-items: center;
    gap: 24px;
}

.l-header__tel {
    display: grid;
    justify-items: center;
    gap: 2px;
    white-space: nowrap;
}

.l-header__tel-number {
    display: grid;
    grid-template-columns: auto auto;
    align-items: center;
    gap: 8px;
    font-family: var(--font-en);
    font-size: 28px;
    font-weight: 700;
    line-height: 1.2;
}

.l-header__tel-number::before {
    content: "";
    width: 23px;
    height: 23px;
    background-color: currentColor;
    mask: url(../images/icon/icon_phone.svg) no-repeat center / contain;
}

.l-header__tel-hours {
    font-size: 12px;
    line-height: 1.4;
}

.l-header__contact-button {
    display: grid;
    grid-template-columns: auto auto;
    place-content: center;
    align-items: center;
    gap: 8px;
    width: 160px;
    height: var(--contact-btn-height);
    font-size: 14px;
    background-color: var(--color-contact);
    color: #fff;
    transition: opacity .3s;
}

.l-header__contact-button::before {
    content: "";
    width: 17.5px;
    height: 14px;
    background-color: currentColor;
    mask: url(../images/icon/icon_mail.svg) no-repeat center / contain;
}

.l-header__contact-button {
    transition: background-color .3s ease;
}

.l-header__contact-button:hover {
    background-color: #d66a00;
}

.l-header__hamburger {
    display: none;
}

.l-footer {
    display: grid;
    gap: 40px;
    padding-block: 50px 30px;
    font-size: var(--fs-footer-min);
    background-color: #1a1a1a;
    color: #fff;
}

.l-footer__inner {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: start;
    gap: 40px;
}

.l-footer__brand {
    display: grid;
    justify-items: start;
    gap: 24px;
}

.l-footer__logo img {
    width: 320px;
    height: auto;
}

.l-footer__address {
    display: grid;
    justify-items: start;
    font-style: normal;
    line-height: 1.9;
}

.l-footer__company,
.l-footer__contact-info {
    display: block;
}

.l-footer__hours {
    margin-left: 1em;
}

.l-footer__item--sp {
    display: none;
}

.l-footer__utility {
    display: grid;
    grid-template-columns: auto auto;
    align-items: center;
    justify-content: end;
    gap: 24px;
}

.l-footer__list {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 24px;
    white-space: nowrap;
}

.l-footer__contact-button {
    display: grid;
    grid-template-columns: auto auto;
    place-content: center;
    align-items: center;
    gap: 8px;
    width: 160px;
    height: var(--contact-btn-height);
    background-color: var(--color-contact);
    color: #fff;
    transition: opacity .3s;
}

.l-footer__contact-button::before {
    content: "";
    width: 17.5px;
    height: 14px;
    background-color: currentColor;
    mask: url(../images/icon/icon_mail.svg) no-repeat center / contain;
}

.l-footer__contact-button {
    transition: background-color .3s ease;
}

.l-footer__contact-button:hover {
    background-color: #d66a00;
}

.l-footer__bottom {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
    gap: 24px;
    padding-top: 24px;
    border-top: 1px solid rgba(255, 255, 255, .3);
}

.l-footer__copyright {
    text-align: left;
    font-family: var(--font-en);
}

.l-footer__pagetop {
    justify-self: end;
    font-family: var(--font-en);
}

/* =========================================
   Components
   ========================================= */
.c-heading-lg {
    font-family: var(--font-jp);
    font-size: var(--fs-heading-lg);
    font-weight: 700;
    line-height: 1.4;
}

.c-heading-md {
    font-size: var(--fs-heading-md);
    line-height: 1.5;
}

.c-button {
    display: grid;
    place-items: center;
    width: var(--btn-width);
    height: var(--btn-height);
    background-color: var(--color-primary);
    color: #fff;
    transition: background-color .3s ease, color .3s ease, border-color .3s ease;
}

.c-button--accent {
    background-color: var(--color-accent);
    color: var(--color-text);
}

.c-button--contact {
    background-color: var(--color-contact);
    color: #fff;
}

.c-button--outline {
    background-color: transparent;
    border: 1px solid currentColor;
    color: #fff;
}

.c-button:hover {
    background-color: #082d6b;
    color: #fff;
}

.c-button--accent:hover {
    background-color: #c48e26;
    color: #fff;
}

.c-button--contact:hover {
    background-color: #d66a00;
    color: #fff;
}

.c-button--outline:hover {
    background-color: #fff;
    border-color: #fff;
    color: var(--color-text);
}

.c-card {
    display: grid;
    gap: 16px;
    width: var(--card-width);
}

.c-section {
    display: grid;
    gap: 48px;
    padding-block: 100px;
}

.c-section-heading {
    display: grid;
    justify-items: start;
    gap: 8px;
}

.c-section-heading__en {
    font-family: var(--font-en);
    font-size: 60px;
    font-weight: 700;
    line-height: 1.1;
    color: var(--color-contact);
}

.c-section-heading__ja {
    font-weight: 700;
}

.c-section-heading--center {
    justify-items: center;
    text-align: center;
}

.c-section-heading--light .c-section-heading__en {
    color: #fff;
}

.c-heading-highlight {
    display: grid;
    justify-items: start;
    gap: 8px;
    font-size: 30px;
    font-weight: 700;
    line-height: 1.5;
}

.c-heading-highlight span {
    padding: 4px 12px;
    background-color: #d2d2d2;
    color: var(--color-text);
}

/* SPのみ有効な改行 */
.u-sp {
    display: none;
}

/* =========================================
   Pages（各ページ固有のスタイル）
   ========================================= */
/* Top Page Animations */
@keyframes mvBgFadeIn {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

@keyframes mvFadeInUp {
    from {
        opacity: 0;
        transform: translateY(28px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

body.page-top .p-mv {
    animation: mvBgFadeIn 1.2s cubic-bezier(0.25, 1, 0.5, 1) both;
}

body.page-top .p-mv__head {
    animation: mvFadeInUp 1s cubic-bezier(0.25, 1, 0.5, 1) 0.2s both;
}

body.page-top .p-mv__lead {
    animation: mvFadeInUp 1s cubic-bezier(0.25, 1, 0.5, 1) 0.4s both;
}

body.page-top .p-mv__buttons {
    animation: mvFadeInUp 1s cubic-bezier(0.25, 1, 0.5, 1) 0.6s both;
}

/* スクロールに合わせて下からふわっとフェードイン（topページ限定） */
body.page-top .js-scroll-fade {
    opacity: 0;
    transform: translateY(36px);
    transition: opacity 0.9s cubic-bezier(0.25, 1, 0.5, 1), transform 0.9s cubic-bezier(0.25, 1, 0.5, 1);
    will-change: opacity, transform;
}

body.page-top .js-scroll-fade.is-inview {
    opacity: 1;
    transform: translateY(0);
}

.p-mv {
    display: grid;
    align-content: center;
    gap: 32px;
    min-height: 100svh;
    padding-top: var(--header-height);
    background-image: url(../images/top/mv_bg-pc.webp);
    background-size: cover;
    background-position: center;
    color: #fff;
}

.p-mv__logo {
    display: none;
}

.p-mv__head {
    display: grid;
    justify-items: start;
    gap: 24px;
}

.p-mv__body {
    display: grid;
    justify-items: start;
    gap: 32px;
}

.p-mv__title {
    text-shadow: 0 2px 12px rgba(0, 0, 0, .35);
}

.p-mv__lead {
    line-height: 2;
    text-shadow: 0 2px 12px rgba(0, 0, 0, .35);
}

.p-mv__buttons {
    display: grid;
    grid-auto-flow: column;
    gap: 24px;
}

.p-mv--recruit {
    background-image: url(../images/recruit/recruit_mv_bg-pc.webp);
}

.p-mv--recruit .p-mv__label {
    font-family: var(--font-en);
    font-size: 30px;
    font-weight: 500;
    letter-spacing: .08em;
    text-shadow: 0 2px 12px rgba(0, 0, 0, .35);
}

.p-mv--recruit .p-mv__title-en {
    font-family: var(--font-en);
    font-size: 90px;
    font-weight: 700;
    line-height: 1.1;
    text-shadow: 0 2px 12px rgba(0, 0, 0, .35);
}

.p-mv--recruit .p-mv__catch {
    font-size: 45px;
    font-weight: 700;
    line-height: 1.5;
    text-shadow: 0 2px 12px rgba(0, 0, 0, .35);
}

.p-about {
    padding-block: 100px;
    background-color: #f1f1f1;
}

.p-about__inner {
    display: grid;
    grid-template-columns: minmax(0, 345px) minmax(0, 1fr);
    align-items: center;
    gap: 20px;
    padding-left: max(var(--inner-padding), (100% - var(--inner-width)) / 2);
}

.p-about__body {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    justify-items: start;
    gap: 32px;
}

/* 見出しは右カラムの画像に被せる */
.p-about__body > .c-heading-highlight {
    position: relative;
    z-index: 1;
    width: max-content;
    max-width: none;
    white-space: nowrap;
}

.p-about__lead {
    line-height: 2;
}

.p-about__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.p-business__list {
    display: grid;
    grid-template-columns: repeat(3, 346px);
    justify-content: space-between;
    gap: 40px;
}

.c-card-business {
    display: grid;
    grid-template-rows: auto 1fr;
    height: 100%;
    background-color: #fff;
    box-shadow: 0 2px 12px rgba(0, 0, 0, .06);
    overflow: hidden;
    transition: box-shadow .3s ease;
}

.c-card-business:hover {
    box-shadow: 0 8px 24px rgba(0, 0, 0, .12);
}

.c-card-business__image {
    width: 100%;
    height: 204px;
    object-fit: cover;
    transition: transform .5s cubic-bezier(0.25, 1, 0.5, 1);
}

.c-card-business:hover .c-card-business__image {
    transform: scale(1.08);
}

.c-card-business__body {
    display: grid;
    grid-template-rows: auto 1fr auto;
    gap: 12px;
    padding: 20px;
}

.c-card-business__title {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: baseline;
    gap: 8px;
    font-size: 16px;
    font-weight: 700;
}

.c-card-business__number {
    font-family: var(--font-en);
    font-size: 18px;
    font-weight: 700;
    color: var(--color-contact);
}

.c-card-business__text {
    font-size: 14px;
    line-height: 1.8;
}

.c-card-business__text--sp {
    display: none;
}

.c-card-business__more {
    display: grid;
    justify-content: end;
}

.c-card-business__arrow {
    justify-self: end;
    transition: transform .3s ease;
}

.c-card-business:hover .c-card-business__arrow {
    transform: translateX(6px);
}

.c-card-business__more-label {
    display: none;
}

.p-work {
    background-color: #1a1a1a;
    color: #fff;
}

.p-work__list {
    display: grid;
    grid-template-columns: repeat(3, 346px);
    justify-content: space-between;
    gap: 40px;
}

/* 4件目はSPのみ表示 */
.p-work__item:nth-child(4) {
    display: none;
}

.p-work__more {
    display: grid;
    justify-items: center;
}

.c-card-work {
    display: grid;
    grid-template-rows: auto 1fr;
    height: 100%;
    background-color: #fff;
    color: var(--color-text);
    overflow: hidden;
    transition: box-shadow .3s ease;
}

.c-card-work:hover {
    box-shadow: 0 8px 24px rgba(0, 0, 0, .2);
}

.c-card-work__image {
    width: 100%;
    height: 204px;
    object-fit: cover;
    transition: transform .5s cubic-bezier(0.25, 1, 0.5, 1);
}

.c-card-work:hover .c-card-work__image {
    transform: scale(1.08);
}

.c-card-work__body {
    display: grid;
    grid-template-rows: auto auto 1fr auto;
    gap: 10px;
    padding: 20px;
}

.c-card-work__title {
    font-size: 16px;
    font-weight: 700;
}

.c-card-work__tags {
    display: flex;
    flex-wrap: wrap;
    align-content: start;
    align-items: start;
    gap: 8px;
}

.c-card-work__tag {
    padding: 2px 10px;
    border: 1px solid var(--color-contact);
    border-radius: 999px;
    font-size: 11px;
    line-height: 1.6;
    color: var(--color-contact);
}

.c-card-work__text {
    font-size: 14px;
    line-height: 1.7;
}

.c-card-work__more {
    display: grid;
    justify-content: end;
}

.c-card-work__more-label {
    display: none;
}

.c-card-work__arrow {
    justify-self: end;
    transition: transform .3s ease;
}

.c-card-work:hover .c-card-work__arrow {
    transform: translateX(6px);
}

.p-recruit {
    display: grid;
    align-items: center;
    min-height: 420px;
    padding-block: 60px;
    border-bottom: 2px solid var(--color-contact);
    background-image: url(../images/top/top_recruit_bg.webp);
    background-size: cover;
    background-position: center;
}

.p-recruit__body {
    display: grid;
    justify-items: start;
    gap: 16px;
    max-width: 820px;
}

.p-recruit__title {
    font-size: 20px;
}

.p-recruit__text {
    font-size: 14px;
    line-height: 1.9;
}

.p-recruit-content {
    padding-block: 100px;
    background-color: #f1f1f1;
}

.p-recruit-content:has(+ .p-recruit-content) {
    padding-bottom: 40px;
}

.p-recruit-content + .p-recruit-content {
    padding-top: 0;
}

.p-recruit-content__inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 680px;
    align-items: center;
    gap: 50px;
    padding-left: max(var(--inner-padding), (100% - var(--inner-width)) / 2);
}

.p-recruit-content__body {
    display: grid;
    gap: 32px;
}

.p-recruit-content .c-section-heading {
    gap: 0;
}

.p-recruit-content__body > .c-heading-highlight {
    font-size: 28px;
}

.p-recruit-content__text {
    max-width: 480px;
    line-height: 2;
}

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

.p-recruit-content--projects {
    padding-bottom: 40px;
}

.p-recruit-cards {
    padding-block: 0 100px;
    background-color: #f1f1f1;
}

.p-recruit-cards__list {
    display: grid;
    grid-template-columns: repeat(3, 346px);
    justify-content: space-between;
    gap: 40px;
}

.c-card-recruit {
    display: grid;
    gap: 16px;
    height: 100%;
    padding: 24px;
    background-color: #fff;
}

.c-card-recruit__title {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: baseline;
    gap: 8px;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--color-line);
    font-size: 20px;
    font-weight: 700;
}

.c-card-recruit__number {
    font-family: var(--font-en);
    font-weight: 700;
    color: var(--color-accent);
}

.c-card-recruit__text {
    font-size: 14px;
    line-height: 1.8;
}

.p-recruit-cards:has(+ .p-recruit-work) {
    padding-bottom: 60px;
}

.p-recruit-work {
    padding-block: 0 100px;
    background-color: #f1f1f1;
}

.p-recruit-work__head {
    display: grid;
    gap: 16px;
    margin-bottom: 32px;
}

.p-recruit-work .c-section-heading {
    gap: 0;
}

.p-recruit-work__lead {
    line-height: 2;
}

.p-recruit-work__list {
    display: grid;
    grid-template-columns: repeat(2, 537px);
    justify-content: space-between;
    gap: 36px;
}

.c-card-role {
    display: grid;
    height: 100%;
    background-color: #fff;
}

.c-card-role__image {
    display: block;
    width: 100%;
    height: auto;
}

.c-card-role__body {
    display: grid;
    gap: 6px;
    padding: 24px;
}

.c-card-role__label {
    font-family: var(--font-en);
    font-size: 12px;
    font-weight: 500;
    letter-spacing: .08em;
    color: var(--color-gray);
}

.c-card-role__title {
    font-size: 20px;
    font-weight: 700;
}

.c-card-role__catch {
    padding-bottom: 6px;
    border-bottom: 1px solid var(--color-line);
    font-weight: 700;
    line-height: 1.8;
}

.c-card-role__text {
    font-size: 14px;
    line-height: 1.8;
}

.p-recruit-work:has(+ .p-recruit-management) {
    padding-bottom: 60px;
}

.p-recruit-management {
    padding-block: 0 100px;
    background-color: #f1f1f1;
}

.p-recruit-oneday {
    padding-block: 100px;
    background-color: #f1f1f1;
}

.p-recruit-oneday__head {
    display: grid;
    gap: 16px;
    margin-bottom: 40px;
}

.p-recruit-oneday .c-section-heading {
    gap: 0;
}

.p-recruit-oneday__lead {
    font-size: 14px;
    line-height: 1.8;
}

.p-recruit-oneday__track {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.p-recruit-oneday__list {
    --oneday-card: 126px;
    --oneday-gap: 38px;
    display: flex;
    gap: var(--oneday-gap);
    width: max-content;
    min-width: 100%;
    list-style: none;
    margin: 0;
    padding: 0;
    position: relative;
}

.p-recruit-oneday__list::before {
    content: "";
    position: absolute;
    top: calc(13px * 1.2 + 8px + 7.5px);
    left: calc(var(--oneday-card) / 2);
    right: calc(var(--oneday-card) / 2);
    height: 2px;
    background-color: var(--color-contact);
}

.p-recruit-oneday__item {
    display: grid;
    grid-template-rows: auto auto 1fr;
    justify-items: center;
    gap: 8px;
    flex: 0 0 var(--oneday-card);
    width: var(--oneday-card);
}

.p-recruit-oneday__time {
    font-family: var(--font-en);
    font-size: 13px;
    font-weight: 700;
    line-height: 1.2;
}

.p-recruit-oneday__dot {
    position: relative;
    z-index: 1;
    width: 15px;
    height: 15px;
    border-radius: 50%;
    background-color: var(--color-contact);
}

.c-card-oneday {
    display: grid;
    align-content: start;
    gap: 16px;
    width: var(--oneday-card);
    height: 150px;
    margin-top: 8px;
    padding: 16px 10px;
    background-color: #fff;
    text-align: center;
}

.c-card-oneday__title {
    font-size: 13px;
    font-weight: 700;
    line-height: 1.4;
}

.c-card-oneday__text {
    font-size: 10px;
    line-height: 1.6;
    text-align: left;
}

.p-recruit-growth {
    padding-block: 100px;
    background-color: #f3ddb9;
}

.p-recruit-growth:has(+ .p-recruit-qualification) {
    padding-bottom: 50px;
}

.p-recruit-growth .l-inner {
    display: grid;
    gap: 48px;
}

.p-recruit-growth__head {
    display: grid;
    justify-items: center;
    gap: 8px;
    text-align: center;
}

.p-recruit-growth__en {
    font-family: var(--font-en);
    font-size: 48px;
    font-weight: 700;
    line-height: 1.2;
}

.p-recruit-growth__lead {
    font-weight: 700;
}

.p-recruit-growth__list {
    display: grid;
    grid-template-columns: repeat(3, 350px);
    justify-content: space-between;
    gap: 24px;
}

.c-card-growth {
    display: grid;
    grid-template-rows: auto 1fr;
    width: 350px;
    height: 100%;
    background-color: #fff;
}

.c-card-growth__image {
    display: block;
    width: 100%;
    height: 240px;
    object-fit: cover;
}

.c-card-growth__body {
    display: grid;
    align-content: start;
    gap: 8px;
    padding: 24px;
}

.c-card-growth__step {
    font-family: var(--font-en);
    font-size: 24px;
    font-weight: 700;
    line-height: 1.2;
    color: var(--color-contact);
}

.c-card-growth__period {
    font-size: 12px;
    color: var(--color-gray);
}

.c-card-growth__title {
    font-size: 20px;
    font-weight: 700;
    line-height: 1.4;
}

.c-card-growth__text {
    font-size: 14px;
    line-height: 1.8;
    text-align: left;
}

.p-recruit-qualification {
    padding-block: 0 100px;
    background-color: #f3ddb9;
}

.p-recruit-qualification__card {
    display: grid;
    grid-template-columns: 350px minmax(0, 1fr);
    background-color: #dfdfdf;
}

.p-recruit-qualification__image {
    display: block;
}

.p-recruit-qualification__image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.p-recruit-qualification__body {
    display: grid;
    align-content: center;
    gap: 16px;
    padding: 32px 36px;
}

.p-recruit-qualification__title {
    font-size: 20px;
    font-weight: 700;
    line-height: 1.4;
}

.p-recruit-qualification__text {
    font-size: 13px;
    line-height: 1.8;
}

.p-recruit-qualification__buttons {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    padding-top: 8px;
}

.p-recruit-qualification__button {
    display: grid;
    place-items: center;
    min-height: 48px;
    padding-inline: 8px;
    background-color: var(--color-contact);
    color: #fff;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.3;
    text-align: center;
}

.p-recruit-management__title {
    margin-bottom: 32px;
    font-size: 28px;
    font-weight: 700;
}

.p-recruit-management__list {
    display: grid;
    grid-template-columns: repeat(4, 263px);
    justify-content: space-between;
    gap: 24px;
}

.c-card-management {
    display: grid;
    gap: 16px;
    height: 100%;
    padding: 24px;
    background-color: #fff;
}

.c-card-management__head {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: baseline;
    gap: 8px;
}

.c-card-management__number {
    font-family: var(--font-en);
    font-size: 24px;
    font-weight: 700;
    color: var(--color-accent);
}

.c-card-management__title {
    font-size: 16px;
    font-weight: 700;
}

.c-card-management__icon {
    display: block;
    width: 143px;
    height: auto;
    justify-self: center;
}

.c-card-management__text {
    font-size: 14px;
    line-height: 1.8;
}

.p-recruit-why {
    background-color: #f3ddb9;
}

.p-recruit-why .l-inner {
    display: grid;
    gap: 48px;
}

.p-recruit-why__head {
    display: grid;
    justify-items: center;
    gap: 8px;
    text-align: center;
}

.p-recruit-why__en {
    font-family: var(--font-en);
    font-size: 48px;
    font-weight: 700;
    line-height: 1.2;
}

.p-recruit-why__lead {
    font-weight: 700;
}

.p-recruit-why__list {
    display: grid;
    grid-template-columns: repeat(2, 537px);
    justify-content: space-between;
    align-items: start;
    gap: 36px;
}

.c-card-why {
    display: grid;
    grid-template-columns: 246px 1fr;
    align-items: start;
    background-color: #fff;
}

.c-card-why__image {
    display: block;
    width: 246px;
    height: auto;
    object-fit: cover;
}

.c-card-why__body {
    display: grid;
    gap: 8px;
    align-content: start;
    padding: 24px;
}

.c-card-why__head {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: baseline;
    gap: 8px;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--color-line);
}

.c-card-why__number {
    font-family: var(--font-en);
    font-size: 24px;
    font-weight: 700;
    color: var(--color-accent);
}

.c-card-why__title {
    font-size: 20px;
    font-weight: 700;
}

.c-card-why__text {
    font-size: 14px;
    line-height: 1.8;
}

.p-recruit-benefits {
    padding-block: 100px;
    background-color: #f1f1f1;
}

.p-recruit-benefits .l-inner {
    display: grid;
    gap: 40px;
}

.p-recruit-benefits__head {
    display: grid;
    gap: 16px;
}

.p-recruit-benefits .c-section-heading {
    gap: 0;
}

.p-recruit-benefits__lead {
    font-size: 16px;
    line-height: 1.8;
}

.p-recruit-benefits__list {
    display: grid;
    grid-template-columns: repeat(3, 350px);
    justify-content: space-between;
    gap: 30px;
}

.c-card-benefit {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
    gap: 16px;
    width: 350px;
    height: 170px;
    padding: 32px 28px;
    background-color: #fff;
    box-sizing: border-box;
}

.c-card-benefit__body {
    display: grid;
    gap: 8px;
}

.c-card-benefit__label {
    font-size: 12px;
    font-weight: 700;
    color: var(--color-gray);
    line-height: 1.4;
}

.c-card-benefit__value {
    font-size: 20px;
    font-weight: 700;
    line-height: 1.3;
    color: var(--color-text);
}

.c-card-benefit__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 68px;
    height: 68px;
    flex-shrink: 0;
}

.c-card-benefit__icon img {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
}

.p-recruit-interview {
    padding-block: 100px;
    background-color: #f3ddb9;
}

.p-recruit-interview .l-inner {
    display: grid;
    gap: 48px;
}

.p-recruit-interview__head {
    display: grid;
    justify-items: center;
    gap: 8px;
    text-align: center;
}

.p-recruit-interview .c-section-heading__en {
    font-size: 48px;
    color: var(--color-text);
}

.p-recruit-interview__lead {
    font-size: 14px;
    font-weight: 500;
}

.p-recruit-interview__list {
    display: grid;
    grid-template-columns: repeat(2, 537px);
    justify-content: space-between;
    gap: 36px;
}

.c-card-interview {
    display: grid;
    width: 537px;
    background-color: #fff;
}

.c-card-interview__image {
    display: block;
    width: 100%;
    height: 360px;
    object-fit: cover;
}

.c-card-interview__body {
    display: grid;
    gap: 12px;
    padding: 24px;
}

.c-card-interview__position {
    font-size: 12px;
    color: var(--color-gray);
    line-height: 1.4;
}

.c-card-interview__title {
    font-size: 20px;
    font-weight: 700;
    line-height: 1.4;
}

.c-card-interview__text {
    font-size: 16px;
    line-height: 1.8;
}

.p-recruit-requirements {
    padding-block: 100px;
    background-color: #f1f1f1;
}

.p-recruit-requirements .l-inner {
    display: grid;
    gap: 48px;
    width: min(100% - var(--inner-padding) * 2, 960px);
}

.p-recruit-requirements__head {
    display: grid;
    justify-items: center;
    gap: 8px;
    text-align: center;
}

.p-recruit-requirements__list {
    display: grid;
    gap: 12px;
}

.p-recruit-requirements__row {
    display: grid;
    grid-template-columns: 200px minmax(0, 1fr);
    align-items: center;
    gap: 32px;
    padding: 24px 32px;
    background-color: #fff;
}

.p-recruit-requirements__label {
    font-size: 15px;
    font-weight: 700;
    line-height: 1.5;
}

.p-recruit-requirements__value {
    font-size: 15px;
    line-height: 1.8;
}

.p-recruit-faq {
    padding-block: 100px;
    background-color: #f1f1f1;
}

.p-recruit-faq .l-inner {
    display: grid;
    gap: 48px;
    width: min(100% - var(--inner-padding) * 2, 960px);
}

.p-recruit-faq__head {
    display: grid;
    justify-items: center;
    gap: 8px;
    text-align: center;
}

.p-recruit-faq__list {
    display: grid;
    gap: 16px;
}

.c-accordion {
    background-color: #fff;
}

.c-accordion__summary {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
    gap: 16px;
    padding: 24px 32px;
    cursor: pointer;
    user-select: none;
    list-style: none;
}

.c-accordion__summary::-webkit-details-marker {
    display: none;
}

.c-accordion[open] .c-accordion__summary {
    padding-bottom: 12px;
}

.c-accordion__question {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.5;
    color: var(--color-text);
}

.c-accordion[open] .c-accordion__question {
    color: var(--color-contact);
}

.c-accordion__icon-q {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    width: 20px;
    flex-shrink: 0;
    font-family: var(--font-en);
    font-size: 20px;
    font-weight: 700;
    line-height: 1;
    color: var(--color-contact);
}

.c-accordion__toggle {
    position: relative;
    width: 18px;
    height: 18px;
    display: grid;
    place-items: center;
}

.c-accordion__toggle::before,
.c-accordion__toggle::after {
    content: '';
    position: absolute;
    background-color: #c4c4c4;
    transition: transform 0.25s ease, opacity 0.25s ease;
}

/* 横線（マイナス） */
.c-accordion__toggle::before {
    width: 16px;
    height: 2px;
}

/* 縦線（プラス用の縦棒） */
.c-accordion__toggle::after {
    width: 2px;
    height: 16px;
}

/* 開いている時は縦線を消してマイナス（ー）にする */
.c-accordion[open] .c-accordion__toggle::after {
    transform: rotate(90deg);
    opacity: 0;
}

.c-accordion__content {
    display: grid;
}

.c-accordion__body {
    padding: 0 32px 28px 64px;
}

.c-accordion__text {
    font-size: 14px;
    line-height: 1.9;
    color: #4a4a4a;
}

.p-contact {
    background-color: #dddcdc;
    border-block: 2px solid var(--color-contact);
}

.p-contact__inner {
    display: grid;
    justify-items: center;
    gap: 32px;
}

.p-contact__heading {
    display: grid;
    justify-items: center;
    gap: 8px;
    text-align: center;
}

.p-contact__en {
    font-family: var(--font-en);
    font-size: 42px;
    font-weight: 700;
    line-height: 1.2;
}

.p-contact__ja {
    font-size: 22px;
    font-weight: 700;
}

.p-contact__actions {
    display: grid;
    grid-template-columns: auto auto;
    align-items: center;
    gap: 48px;
}

.p-contact__tel {
    display: grid;
    justify-items: center;
    gap: 2px;
}

.p-contact__tel-number {
    display: grid;
    grid-template-columns: auto auto;
    align-items: center;
    gap: 8px;
    font-family: var(--font-en);
    font-size: 28px;
    font-weight: 700;
    line-height: 1.2;
}

.p-contact__tel-number::before {
    content: "";
    width: 23px;
    height: 23px;
    background-color: currentColor;
    mask: url(../images/icon/icon_phone.svg) no-repeat center / contain;
}

.p-contact__tel-hours {
    font-size: 12px;
}

.p-value {
    background-color: #f7dfbc;
}

.p-value__list {
    display: grid;
    gap: 60px;
}

.p-value__item {
    display: grid;
    grid-template-columns: 620px minmax(0, 1fr);
    align-items: center;
    gap: 40px;
}

/* 偶数行は画像を右side に */
.p-value__item:nth-child(even) {
    grid-template-columns: minmax(0, 1fr) 620px;
}

.p-value__item:nth-child(even) .p-value__image {
    order: 1;
}

.p-value__image {
    display: block;
    width: 620px;
}

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

.p-value__body {
    display: grid;
    justify-items: start;
    gap: 12px;
}

.p-value__heading {
    display: grid;
    justify-items: start;
    gap: 12px;
}

.p-value__number {
    font-family: var(--font-en);
    font-size: 20px;
    font-weight: 700;
    color: var(--color-contact);
}

.p-value__title {
    font-size: 20px;
}

.p-value__text {
    font-size: 14px;
    line-height: 1.9;
}

/* 下層ページ共通MV */
.p-page-mv {
    display: grid;
    place-content: center;
    justify-items: center;
    gap: 8px;
    min-height: calc(380px + var(--header-height));
    padding-block: calc(60px + var(--header-height)) 60px;
    background-size: cover;
    background-position: center;
    text-align: center;
    color: #fff;
}

.p-page-mv__title {
    font-size: 36px;
    text-shadow: 0 2px 12px rgba(0, 0, 0, .35);
}

.p-business-detail {
    background-color: #f2f2f2;
}

/* 施工事例アーカイブ */
.p-work-archive {
    gap: 60px;
    background-color: #f2f2f2;
}

.p-work-archive__categories {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 16px;
}

.c-category-button {
    display: grid;
    place-items: center;
    min-height: 36px;
    padding-inline: 8px;
    border: 1px solid #3c3229;
    background-color: #fff;
    font-size: 13px;
    line-height: 1.4;
    text-align: center;
    transition: background-color .3s, color .3s;
}

.c-category-button.is-current,
.c-category-button:hover {
    background-color: #3c3229;
    color: #fff;
}

.p-work-archive__list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 350px));
    justify-content: center;
    gap: 48px 30px;
}

.c-card-work-archive {
    display: grid;
    gap: 12px;
}

.c-card-work-archive__thumbnail {
    overflow: hidden;
}

.c-card-work-archive__image {
    width: 100%;
    aspect-ratio: 350 / 233;
    object-fit: cover;
    transition: transform .5s cubic-bezier(0.25, 1, 0.5, 1);
}

.c-card-work-archive:hover .c-card-work-archive__image {
    transform: scale(1.08);
}

.c-card-work-archive__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    font-size: 12px;
    line-height: 1.4;
}

.c-card-work-archive__date {
    color: var(--color-gray);
}

.c-card-work-archive__tag {
    padding: 2px 10px;
    border: 1px solid var(--color-contact);
    border-radius: 999px;
    color: var(--color-contact);
    font-size: 11px;
}

.c-card-work-archive__title {
    font-size: 15px;
    font-weight: 700;
    line-height: 1.6;
}

.c-pagination__list {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 20px;
    font-family: var(--font-en);
}

.c-pagination__number,
.c-pagination__arrow {
    display: grid;
    place-items: center;
    min-width: 20px;
    color: var(--color-gray);
    font-size: 14px;
    transition: color .3s;
}

.c-pagination__number.is-current {
    color: var(--color-text);
    font-weight: 700;
}

.c-pagination__arrow {
    font-size: 18px;
    color: var(--color-text);
}

.c-pagination__arrow.is-disabled {
    pointer-events: none;
    opacity: .3;
}

/* 施工事例詳細 */
.p-work-single {
    gap: 0;
    padding-block: 80px 100px;
    background-color: #f2f2f2;
}

.p-work-single__inner {
    display: grid;
    padding: 60px 40px;
    background-color: #fff;
}

.p-work-single__article {
    display: grid;
    gap: 48px;
}

.p-work-single__header,
.p-work-single__slider,
.p-work-single__detail {
    width: min(100%, 860px);
    margin-inline: auto;
}

.p-work-single__header {
    display: grid;
    gap: 16px;
    padding-bottom: 24px;
    border-bottom: 1px solid var(--color-line);
}

.p-work-single__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}

.p-work-single__date {
    font-size: 14px;
    line-height: 1.4;
    color: var(--color-gray);
}

.p-work-single__tag {
    padding: 2px 10px;
    border: 1px solid var(--color-contact);
    border-radius: 999px;
    color: var(--color-contact);
    font-size: 12px;
    line-height: 1.4;
}

.p-work-single__title {
    font-size: 28px;
    font-weight: 700;
    line-height: 1.5;
}

.p-work-single__slider {
    display: grid;
    gap: 16px;
}

.p-work-single__slider-main {
    position: relative;
    display: grid;
    align-items: center;
}

.p-work-single__slider-figure {
    margin: 0;
}

.p-work-single__slider-image {
    width: 100%;
    aspect-ratio: 860 / 573;
    object-fit: cover;
}

.p-work-single__slider-arrow {
    position: absolute;
    top: 50%;
    z-index: 1;
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    border: 1px solid var(--color-line);
    border-radius: 50%;
    background-color: rgba(255, 255, 255, .92);
    color: var(--color-text);
    translate: 0 -50%;
    transition: opacity .3s;
}

.p-work-single__slider-arrow span {
    width: 10px;
    height: 10px;
    border-top: 2px solid currentColor;
    border-right: 2px solid currentColor;
}

.p-work-single__slider-arrow--prev {
    left: 16px;
}

.p-work-single__slider-arrow--prev span {
    margin-left: 4px;
    rotate: -135deg;
}

.p-work-single__slider-arrow--next {
    right: 16px;
}

.p-work-single__slider-arrow--next span {
    margin-right: 4px;
    rotate: 45deg;
}

.p-work-single__slider-arrow:hover {
    opacity: .8;
}

.p-work-single__slider-thumbs {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.p-work-single__slider-thumb {
    display: block;
    width: 120px;
    padding: 0;
    border: 2px solid transparent;
    background: none;
    cursor: pointer;
    transition: border-color .3s, opacity .3s;
}

.p-work-single__slider-thumb.is-active {
    border-color: var(--color-contact);
}

.p-work-single__slider-thumb img {
    width: 100%;
    aspect-ratio: 3 / 2;
    object-fit: cover;
}

.p-work-single__detail {
    display: grid;
    gap: 24px;
}

.p-work-single__detail-heading {
    font-size: 20px;
    font-weight: 700;
    line-height: 1.5;
}

.p-work-single__detail-list {
    display: grid;
}

.p-work-single__detail-row {
    display: grid;
    grid-template-columns: 200px 1fr;
    gap: 24px;
    padding: 20px 24px;
}

.p-work-single__detail-row:nth-child(odd) {
    background-color: #f7f7f7;
}

.p-work-single__detail-term {
    font-weight: 700;
    line-height: 1.8;
}

.p-work-single__detail-desc {
    line-height: 1.8;
}

.p-work-single__back {
    display: grid;
    justify-items: center;
    padding-top: 48px;
}

.p-standards {
    background-color: #f3ddb9;
}

.p-standards__heading {
    display: grid;
    justify-items: center;
    gap: 4px;
    text-align: center;
}

.p-standards__en {
    font-family: var(--font-en);
    font-size: 48px;
    font-weight: 700;
    line-height: 1.2;
}

.p-standards__ja {
    font-size: 14px;
    font-weight: 700;
}

.p-standards__list {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 40px;
}

.p-standards__item {
    position: relative;
    display: grid;
    align-content: center;
    justify-items: center;
    gap: 8px;
    width: 280px;
    aspect-ratio: 1;
    padding: 40px;
    border: 1px solid var(--color-contact);
    border-radius: 50%;
    background-color: #fff;
    text-align: center;
}

.p-standards__item + .p-standards__item::before {
    content: "";
    position: absolute;
    top: 50%;
    left: -40px;
    width: 40px;
    border-top: 4px dotted var(--color-contact);
}

.p-standards__icon {
    width: 48px;
    height: 48px;
}

.p-standards__title {
    font-size: 18px;
    font-weight: 700;
}

.p-standards__text {
    font-size: 13px;
    line-height: 1.7;
}

.p-business-detail__list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 540px));
    justify-content: center;
    gap: 30px;
}

.c-card-service {
    display: grid;
    align-content: start;
    height: 100%;
    background-color: #fff;
}

.c-card-service__head {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: center;
    background-color: #f3ddb9;
}

.c-card-service__number {
    display: grid;
    place-items: center;
    width: 56px;
    padding-block: 14px;
    background-color: #fff;
    font-family: var(--font-en);
    font-size: 20px;
    font-weight: 700;
    color: var(--color-contact);
}

.c-card-service__title {
    padding-inline: 24px;
    font-size: 20px;
    font-weight: 700;
}

.c-card-service__image {
    width: 100%;
    height: auto;
    aspect-ratio: 540 / 350;
    object-fit: cover;
}

.c-card-service__body {
    display: grid;
    gap: 16px;
    padding: 24px;
}

.c-card-service__lead {
    font-size: 22px;
    font-weight: 700;
    line-height: 1.6;
}

.c-card-service__text {
    font-size: 14px;
    line-height: 1.9;
}

.p-page-mv__en {
    font-family: var(--font-en);
    font-size: 24px;
    font-weight: 500;
    letter-spacing: .08em;
    text-shadow: 0 2px 12px rgba(0, 0, 0, .35);
}

.p-greeting__inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: center;
    gap: 50px;
}

.p-greeting__body {
    display: grid;
    gap: 24px;
}

.p-greeting__text {
    line-height: 2;
}

.p-greeting__sign {
    justify-self: end;
    line-height: 2;
    text-align: right;
}

.p-greeting__name {
    font-size: 20px;
    font-weight: 700;
}

.p-features {
    background-color: #f3ddb9;
}

/* 画像・タイトル・本文の行位置を隣のカードと揃える */
.p-features__list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 30px;
}

.p-features__item {
    display: grid;
    grid-row: span 2;
    grid-template-rows: subgrid;
    row-gap: 0;
    background-color: #fff;
}

.p-features__image {
    width: 100%;
    height: auto;
}

.p-features__body {
    display: grid;
    align-content: start;
    gap: 12px;
    padding: 24px;
}

.p-features__title {
    font-size: 20px;
    font-weight: 700;
    line-height: 1.5;
}

.p-features__text {
    font-size: 14px;
    line-height: 1.9;
}

.p-profile {
    background-color: #f2f2f2;
}

.p-profile__list {
    display: grid;
    gap: 10px;
    width: min(100% - var(--inner-padding) * 2, 960px);
    margin-inline: auto;
}

.p-profile__row {
    display: grid;
    grid-template-columns: 220px minmax(0, 1fr);
    align-items: center;
    gap: 20px;
    padding: 24px 30px;
    background-color: #fff;
}

.p-profile__label {
    font-weight: 700;
}

.p-profile__value {
    line-height: 1.8;
}

.p-history {
    --history-gap: 60px;
    padding-top: 0;
    background-color: #f2f2f2;
}

.p-history__list {
    display: grid;
    gap: var(--history-gap);
    width: min(100%, 960px);
    margin-inline: auto;
}

.p-history__item {
    display: grid;
    grid-template-columns: 200px 20px minmax(0, 1fr);
    align-items: center;
    gap: 30px;
}

.p-history__label {
    font-weight: 700;
}

.p-history__marker {
    position: relative;
    align-self: stretch;
}

.p-history__marker::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background-color: #1f2a44;
    translate: -50% -50%;
    z-index: 1;
}

/* ドット同士を縦線でつなぐ（最後の項目は下に線を伸ばさない） */
.p-history__item:not(:last-child) .p-history__marker::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 1px;
    height: calc(50% + var(--history-gap));
    background-color: #9a9a9a;
    translate: -50% 0;
}

.p-history__text {
    line-height: 1.8;
}

.p-credentials {
    background-color: #f3ddb9;
}

.p-features .c-section-heading__en,
.p-credentials .c-section-heading__en {
    color: var(--color-text);
}

.p-credentials__list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 30px;
}

.p-credentials__item {
    display: grid;
    align-content: start;
    gap: 16px;
    padding: 24px;
    background-color: #fff;
}

.p-credentials__head {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: baseline;
    gap: 10px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--color-line);
    font-size: 18px;
    font-weight: 700;
}

.p-credentials__number {
    font-family: var(--font-en);
    color: var(--color-contact);
}

.p-credentials__text {
    font-size: 14px;
    line-height: 1.9;
    text-align: justify;
}

.p-credentials__note {
    font-size: 14px;
    font-weight: 700;
    line-height: 1.7;
}

.p-access__inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 520px);
    align-items: center;
    gap: 60px;
}

.p-access__body {
    display: grid;
    justify-items: start;
    gap: 24px;
}

.p-access .c-heading-highlight {
    font-size: 22px;
}

.p-access__text {
    line-height: 2;
}

.p-access__map {
    aspect-ratio: 16 / 10;
}

.p-access__map iframe {
    width: 100%;
    height: 100%;
    border: 0;
}

/* =========================================
   お問い合わせフォーム（contact.php）
   ========================================= */
.p-contact-form {
    padding-block: clamp(60px, 6vw, 100px);
    background-color: #ffffff;
}

.p-contact-form__inner {
    display: grid;
    gap: clamp(32px, 3.5vw, 48px);
}

.p-contact-form__intro {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 20px;
}

.p-contact-form__lead {
    font-size: clamp(14px, 0.2vw + 13.5px, 16px);
    line-height: 1.8;
    color: #1a1a1a;
}

.p-contact-form__required-note {
    font-size: clamp(12px, 0.2vw + 11.5px, 14px);
    color: #1a1a1a;
    white-space: nowrap;
}

.p-contact-form__form {
    display: grid;
    gap: clamp(24px, 2.5vw, 32px);
}

.p-contact-form__row {
    display: grid;
    grid-template-columns: 240px minmax(0, 1fr);
    align-items: center;
    gap: 24px;
}

.p-contact-form__row--top {
    align-items: start;
}

.p-contact-form__label {
    font-size: clamp(14px, 0.2vw + 13.5px, 16px);
    font-weight: 500;
    color: #1a1a1a;
    display: flex;
    align-items: center;
    gap: 2px;
}

.p-contact-form__field-wrap {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
}

.p-contact-form__field-column {
    display: grid;
    gap: 6px;
    width: 100%;
}

.p-contact-form__note {
    font-size: clamp(12px, 0.2vw + 11.5px, 14px);
    color: #767676;
    white-space: nowrap;
}

.p-contact-form__input,
.p-contact-form__select,
.p-contact-form__textarea {
    width: 100%;
    border: 1px solid #d0d0d0;
    border-radius: 0;
    background-color: #ffffff;
    font-family: inherit;
    font-size: clamp(14px, 0.2vw + 13.5px, 16px);
    line-height: 1.5;
    color: #1a1a1a;
    padding: 12px 16px;
    transition: border-color .2s;
}

.p-contact-form__input::placeholder,
.p-contact-form__textarea::placeholder {
    color: #999999;
}

.p-contact-form__input:focus,
.p-contact-form__select:focus,
.p-contact-form__textarea:focus {
    outline: none;
    border-color: #db7f2f;
}

.p-contact-form__input--half,
.p-contact-form__select--half {
    width: min(100%, 460px);
}

.p-contact-form__input--zip {
    width: min(100%, 200px);
}

.p-contact-form__select {
    appearance: none;
    -webkit-appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='10' viewBox='0 0 16 10'%3E%3Cpolygon points='0,0 16,0 8,10' fill='%23db7f2f'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 16px center;
    background-size: 14px 9px;
    padding-right: 44px;
    cursor: pointer;
}

.p-contact-form__textarea {
    min-height: 180px;
    resize: vertical;
}

/* 個人情報保護方針 */
.p-contact-form__policy-box {
    border: 1px solid #d0d0d0;
    background-color: #ffffff;
    padding: clamp(16px, 2vw, 24px);
    max-height: 180px;
    overflow-y: auto;
    font-size: clamp(12px, 0.2vw + 11.5px, 14px);
    line-height: 1.85;
    color: #333333;
    display: grid;
    gap: 12px;
}

.p-contact-form__policy-title {
    font-size: clamp(13px, 0.2vw + 12.5px, 15px);
    font-weight: 700;
    color: #1a1a1a;
}

.p-contact-form__policy-text {
    line-height: 1.85;
}

/* 同意エリア */
.p-contact-form__agree {
    display: grid;
    gap: 12px;
    justify-items: center;
    text-align: center;
}

.p-contact-form__agree-lead {
    font-size: clamp(13px, 0.2vw + 12.5px, 15px);
    color: #1a1a1a;
}

.p-contact-form__checkbox-label {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    font-size: clamp(14px, 0.2vw + 13.5px, 16px);
    font-weight: 500;
    user-select: none;
}

.p-contact-form__checkbox {
    appearance: none;
    -webkit-appearance: none;
    width: 20px;
    height: 20px;
    border: 1px solid #767676;
    border-radius: 0;
    background-color: #ffffff;
    display: grid;
    place-content: center;
    cursor: pointer;
    transition: background-color .2s, border-color .2s;
}

.p-contact-form__checkbox::before {
    content: "";
    width: 10px;
    height: 6px;
    border-left: 2px solid #ffffff;
    border-bottom: 2px solid #ffffff;
    transform: rotate(-45deg) translate(1px, -1px);
    opacity: 0;
    transition: opacity .2s;
}

.p-contact-form__checkbox:checked {
    background-color: #db7f2f;
    border-color: #db7f2f;
}

.p-contact-form__checkbox:checked::before {
    opacity: 1;
}

/* 送信ボタン */
.p-contact-form__actions {
    display: grid;
    justify-items: center;
}

.p-contact-form__submit {
    display: grid;
    place-items: center;
    width: min(100%, 440px);
    height: 60px;
    background-color: #db7f2f;
    color: #ffffff;
    font-family: inherit;
    font-size: clamp(16px, 0.2vw + 15.5px, 18px);
    font-weight: 700;
    border: none;
    border-radius: 0;
    cursor: pointer;
    transition: opacity .3s, background-color .3s;
}

.p-contact-form__submit:hover {
    opacity: .85;
}

/* エラーメッセージ */
.p-contact-form__error {
    font-size: clamp(12px, 0.2vw + 11.5px, 13px);
    color: #d93025;
    line-height: 1.4;
}

.p-contact-form__alert {
    padding: 16px;
    background-color: #fdecea;
    border: 1px solid #fad2cf;
    color: #d93025;
    font-size: clamp(13px, 0.2vw + 12.5px, 15px);
    display: grid;
    gap: 6px;
}

/* サンクス画面 */
.p-contact-thanks {
    display: grid;
    gap: 24px;
    justify-items: center;
    text-align: center;
    padding-block: clamp(40px, 4vw, 60px);
}

.p-contact-thanks__title {
    font-size: clamp(20px, 0.8vw + 17px, 28px);
    font-weight: 700;
    color: #1a1a1a;
}

.p-contact-thanks__text {
    font-size: clamp(14px, 0.2vw + 13.5px, 16px);
    line-height: 1.9;
    color: #444444;
}


/* =========================================
   Responsive（SP: 767px 以下）
   ========================================= */
@media screen and (max-width: 767px) {
    :root {
        --fs-heading-lg: 36px;
        --fs-heading-md: 22px;
        --header-height: 45px;
        --inner-padding: 16px;
    }

    .l-header__contact {
        display: none;
    }

    .l-header__inner {
        grid-template-columns: 1fr auto;
        align-items: center;
        padding-inline: 12px 45px;
    }

    .l-header__logo img {
        width: 140px;
    }

    /* TOPのMV内にロゴがあるため、スクロールするまでは重複表示させない */
    body.page-top .l-header:not(.is-scrolled) .l-header__logo {
        display: none;
    }

    .l-header__nav {
        position: fixed;
        inset: 0;
        display: grid;
        align-content: start;
        gap: 24px;
        overflow-y: auto;
        padding-block: 60px 40px;
        background-color: rgba(234, 121, 0, .9);
        color: #fff;
        translate: 100% 0;
        transition: translate .3s;
    }

    .l-header__nav.is-open {
        translate: 0 0;
    }

    .l-header__list {
        display: grid;
        grid-template-columns: 1fr;
        justify-content: stretch;
        gap: 0;
        width: 295px;
        margin-inline: auto;
        white-space: normal;
    }

    .l-header__item,
    .l-header__item--contact {
        display: block;
        border-bottom: 1px solid #fff;
    }

    .l-header__item-head {
        display: grid;
        grid-template-columns: 1fr auto;
        align-items: center;
    }

    .l-header__link {
        display: grid;
        grid-template-columns: 1fr auto;
        align-items: center;
        gap: 16px;
        padding-block: 18px;
        font-size: 14px;
        color: #ffffff;
    }

    .l-header__item:not(.l-header__item--has-sub) .l-header__link::after {
        content: "";
        width: 22px;
        height: 22px;
        background-color: currentColor;
        mask: url(../images/icon/icon_arrow.svg) no-repeat center / contain;
    }

    .l-header__sub-toggle {
        display: grid;
        place-items: center;
        width: 44px;
        height: 44px;
        background: transparent;
        border: none;
        color: #ffffff;
        cursor: pointer;
        padding: 0;
    }

    .l-header__sub-toggle-icon {
        position: relative;
        width: 14px;
        height: 14px;
    }

    .l-header__sub-toggle-icon::before,
    .l-header__sub-toggle-icon::after {
        content: "";
        position: absolute;
        top: 50%;
        left: 50%;
        translate: -50% -50%;
        background-color: currentColor;
        transition: transform .3s ease;
    }

    .l-header__sub-toggle-icon::before {
        width: 12px;
        height: 2px;
    }

    .l-header__sub-toggle-icon::after {
        width: 2px;
        height: 12px;
    }

    .l-header__item.is-open .l-header__sub-toggle-icon::after {
        transform: rotate(90deg);
        opacity: 0;
    }

    .l-header__sub-menu {
        display: grid;
        grid-template-rows: 0fr;
        transition: grid-template-rows .3s ease;
        overflow: hidden;
    }

    .l-header__item.is-open .l-header__sub-menu {
        grid-template-rows: 1fr;
    }

    .l-header__sub-list {
        min-height: 0;
        display: grid;
        gap: 12px;
        padding-block: 0 16px;
        padding-inline: 12px 0;
        list-style: none;
    }

    .l-header__sub-item {
        display: block;
    }

    .l-header__sub-link {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        font-size: 13px;
        color: rgba(255, 255, 255, 0.9);
        text-decoration: none;
        line-height: 1.4;
    }

    .l-header__sub-bar {
        display: inline-block;
        width: 10px;
        height: 1.5px;
        background-color: #ffffff;
        flex-shrink: 0;
    }

    .l-header__drawer-foot {
        display: grid;
        justify-items: center;
        gap: 16px;
        width: 295px;
        margin-inline: auto;
    }

    .l-header__drawer-tel {
        display: grid;
        justify-items: center;
        gap: 2px;
    }

    .l-header__drawer-button {
        display: grid;
        place-items: center;
        width: 100%;
        height: 48px;
        background-color: #f5cf9a;
        color: var(--color-text);
        font-size: 14px;
    }

    .l-header__drawer-privacy {
        font-size: 13px;
    }

    .l-header__drawer-copyright {
        font-family: var(--font-en);
        font-size: 10px;
    }

    .l-header__hamburger {
        position: fixed;
        top: 0;
        right: 0;
        display: grid;
        align-content: center;
        justify-items: center;
        gap: 6px;
        width: 45px;
        height: 45px;
        background-color: #1a1a1a;
    }

    .l-header__hamburger span {
        display: block;
        width: 22px;
        height: 2px;
        background-color: #fff;
        transition: translate .3s, rotate .3s, opacity .3s;
    }

    .l-header__hamburger[aria-expanded="true"] span:nth-child(1) {
        translate: 0 8px;
        rotate: 45deg;
    }

    .l-header__hamburger[aria-expanded="true"] span:nth-child(2) {
        opacity: 0;
    }

    .l-header__hamburger[aria-expanded="true"] span:nth-child(3) {
        translate: 0 -8px;
        rotate: -45deg;
    }

    .p-mv {
        gap: 0;
        min-height: 0;
        padding-top: 0;
        background-image: none;
        color: var(--color-text);
    }

    .p-mv__visual {
        display: grid;
        align-content: center;
        aspect-ratio: 375 / 667;
        padding-block: var(--header-height) 40px;
        background-image: url(../images/sp/mv_bg-sp.webp);
        background-size: cover;
        background-position: center;
        color: #fff;
    }

    .p-mv__head {
        justify-items: center;
        gap: 16px;
        text-align: center;
    }

    .p-mv__logo {
        display: block;
        width: 250px;
        height: auto;
    }

    .p-mv__title {
        font-size: 20px;
    }

    .p-mv__foot {
        padding-block: 24px 32px;
    }

    .p-mv__body {
        gap: 20px;
    }

    .p-mv__lead {
        line-height: 1.9;
    }

    .p-mv__lead br {
        display: none;
    }

    .p-mv__buttons {
        grid-auto-flow: column;
        grid-template-columns: repeat(2, 160px);
        justify-self: center;
        gap: 16px;
    }

    .p-mv__buttons .c-button {
        width: 160px;
        height: 44px;
        font-size: 13px;
    }

    .p-mv--recruit .p-mv__visual {
        background-image: url(../images/recruit/recruit_mv_bg-sp.webp);
    }

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

    .p-mv--recruit .p-mv__title-en {
        font-size: 36px;
    }

    .p-mv--recruit .p-mv__catch {
        font-size: 20px;
    }

    .p-about {
        padding-block: 60px;
    }

    .p-about__inner {
        grid-template-columns: 1fr;
        gap: 32px;
        padding-inline: var(--inner-padding);
    }

    /* SPではボタンを画像の下に出すため、bodyの子をinner直下の要素として扱う */
    .p-about__body {
        display: contents;
    }

    .p-about__image {
        order: 1;
        margin-inline: calc(var(--inner-padding) * -1);
    }

    .p-about__image img {
        height: auto;
    }

    .p-about__body > .c-button {
        order: 2;
        justify-self: center;
    }

    .c-section-heading__en {
        font-size: 36px;
    }

    .c-heading-highlight {
        display: block;
        font-size: 20px;
    }

    /* 折り返し位置に関係なく全行に帯を付けるため、インライン化して連続させる */
    .c-heading-highlight span {
        display: inline;
        box-decoration-break: clone;
        -webkit-box-decoration-break: clone;
        padding: 2px 0;
        line-height: 2;
    }

    .p-about__body > .c-heading-highlight {
        width: auto;
        white-space: normal;
    }

    .u-sp {
        display: inline;
    }

    .p-recruit {
        align-content: start;
        min-height: 720px;
        padding-block: 40px;
        background-image: url(../images/top/top_recruit_bg-sp.webp);
        background-position: bottom center;
    }

    .p-recruit__body {
        gap: 12px;
    }

    .p-recruit__title {
        font-size: 20px;
    }

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

    .p-recruit-content {
        padding-block: 60px;
    }

    .p-recruit-content:has(+ .p-recruit-content) {
        padding-bottom: 24px;
    }

    .p-recruit-content + .p-recruit-content {
        padding-top: 0;
    }

    .p-recruit-content__inner {
        grid-template-columns: 1fr;
        gap: 32px;
        padding-inline: var(--inner-padding);
    }

    .p-recruit-content__body {
        display: contents;
    }

    .p-recruit-content__body > .c-heading-highlight {
        font-size: 20px;
    }

    .p-recruit-content__image {
        order: -1;
        margin-inline: calc(var(--inner-padding) * -1);
    }

    .p-recruit-content--projects {
        padding-bottom: 32px;
    }

    .p-recruit-cards {
        padding-block: 0 60px;
    }

    .p-recruit-cards__list {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .p-recruit-cards:has(+ .p-recruit-work) {
        padding-bottom: 60px;
    }

    .p-recruit-work {
        padding-block: 0 60px;
    }

    .p-recruit-work__head {
        gap: 12px;
        margin-bottom: 24px;
    }

    .p-recruit-work__lead br {
        display: none;
    }

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

    .p-recruit-work:has(+ .p-recruit-management) {
        padding-bottom: 40px;
    }

    .p-recruit-management {
        padding-block: 0 60px;
    }

    .p-recruit-management__title {
        margin-bottom: 24px;
        font-size: 20px;
    }

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

    .c-card-management {
        padding: 16px;
        gap: 12px;
    }

    .c-card-management__number {
        font-size: 20px;
    }

    .c-card-management__title {
        font-size: 14px;
    }

    .c-card-management__icon {
        width: 100%;
        max-width: 143px;
    }

    .c-card-management__text {
        font-size: 13px;
    }

    .p-recruit-oneday {
        padding-block: 60px;
    }

    .p-recruit-oneday__head {
        margin-bottom: 24px;
    }

    .p-recruit-oneday__lead {
        font-size: 13px;
    }

    .p-recruit-oneday__track {
        padding-bottom: 8px;
    }

    .p-recruit-oneday__list {
        --oneday-gap: 12px;
    }

    .p-recruit-growth {
        padding-block: 60px;
    }

    .p-recruit-growth:has(+ .p-recruit-qualification) {
        padding-bottom: 50px;
    }

    .p-recruit-growth .l-inner {
        gap: 32px;
    }

    .p-recruit-growth__en {
        font-size: 28px;
    }

    .p-recruit-growth__list {
        grid-template-columns: 1fr;
        justify-content: stretch;
        gap: 24px;
    }

    .c-card-growth {
        width: 100%;
    }

    .c-card-growth__image {
        height: auto;
        aspect-ratio: 350 / 240;
    }

    .c-card-growth__body {
        padding: 16px;
    }

    .c-card-growth__step {
        font-size: 20px;
    }

    .c-card-growth__title {
        font-size: 18px;
    }

    .c-card-growth__text {
        font-size: 13px;
    }

    .p-recruit-why .l-inner {
        gap: 32px;
    }

    .p-recruit-why__en {
        font-size: 32px;
    }

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

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

    .c-card-why__image {
        width: 100%;
        height: auto;
    }

    .c-card-why__body {
        padding: 16px;
        gap: 8px;
    }

    .c-card-why__number {
        font-size: 20px;
    }

    .c-card-why__title {
        font-size: 18px;
    }

    .c-card-why__text {
        font-size: 13px;
    }

    .p-recruit-qualification {
        padding-block: 0 60px;
    }

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

    .p-recruit-qualification__image img {
        aspect-ratio: 350 / 240;
        height: auto;
    }

    .p-recruit-qualification__body {
        gap: 16px;
        padding: 24px 16px;
    }

    .p-recruit-qualification__title {
        font-size: 18px;
    }

    .p-recruit-qualification__text {
        font-size: 13px;
    }

    .p-recruit-qualification__text br {
        display: none;
    }

    .p-recruit-qualification__buttons {
        grid-template-columns: 1fr;
        gap: 10px;
        padding-top: 0;
    }

    .p-recruit-qualification__button {
        min-height: 44px;
    }

    .p-recruit-benefits {
        padding-block: 60px;
    }

    .p-recruit-benefits .l-inner {
        gap: 24px;
    }

    .p-recruit-benefits__head {
        gap: 12px;
    }

    .p-recruit-benefits .c-section-heading__en {
        font-size: clamp(20px, 6.4vw, 26px);
        overflow-wrap: break-word;
    }

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

    .p-recruit-benefits__list {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .c-card-benefit {
        width: 100%;
        height: auto;
        min-height: auto;
        padding: 24px 20px;
    }

    .c-card-benefit__value {
        font-size: 18px;
    }

    .c-card-benefit__icon {
        width: 56px;
        height: 56px;
    }

    .p-recruit-interview {
        padding-block: 60px;
    }

    .p-recruit-interview .l-inner {
        gap: 32px;
    }

    .p-recruit-interview .c-section-heading__en {
        font-size: 32px;
    }

    .p-recruit-interview__lead {
        font-size: 13px;
    }

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

    .c-card-interview {
        width: 100%;
    }

    .c-card-interview__image {
        height: auto;
        aspect-ratio: 537 / 360;
    }

    .c-card-interview__body {
        padding: 16px;
        gap: 8px;
    }

    .c-card-interview__title {
        font-size: 18px;
    }

    .c-card-interview__text {
        font-size: 13px;
    }

    .p-recruit-requirements {
        padding-block: 60px;
    }

    .p-recruit-requirements .l-inner {
        gap: 32px;
    }

    .p-recruit-requirements__list {
        gap: 8px;
    }

    .p-recruit-requirements__row {
        grid-template-columns: 1fr;
        gap: 8px;
        padding: 16px 20px;
    }

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

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

    .p-recruit-faq {
        padding-block: 60px;
    }

    .p-recruit-faq .l-inner {
        gap: 32px;
    }

    .p-recruit-faq__list {
        gap: 12px;
    }

    .c-accordion__summary {
        padding: 16px 20px;
        gap: 12px;
    }

    .c-accordion[open] .c-accordion__summary {
        padding-bottom: 8px;
    }

    .c-accordion__question {
        font-size: 14px;
        gap: 8px;
    }

    .c-accordion__icon-q {
        width: 18px;
        font-size: 18px;
    }

    .c-accordion__body {
        padding: 0 20px 20px 46px;
    }

    .c-accordion__text {
        font-size: 13px;
    }

    .p-work__more .c-button {
        width: 100%;
    }

    .p-work .c-section-heading {
        justify-items: start;
        gap: 4px;
        text-align: left;
    }

    .p-work .c-section-heading__ja {
        font-size: 14px;
    }

    /* 画像・タイトル・カテゴリー・READ MOREの行位置を隣のカードと揃える */
    .p-work__list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 24px 16px;
    }

    .p-work__item,
    .p-work__item:nth-child(4) {
        display: grid;
        grid-row: span 4;
        grid-template-rows: subgrid;
    }

    .c-card-work {
        grid-row: span 4;
        grid-template-rows: subgrid;
    }

    .c-card-work__image {
        height: 160px;
    }

    .c-card-work__body {
        grid-row: 2 / span 3;
        grid-template-rows: subgrid;
        gap: 12px;
        padding: 12px;
    }

    .c-card-work__title {
        align-content: start;
        font-size: 16px;
        line-height: 1.5;
    }

    .c-card-work__tag {
        font-size: 11px;
    }

    .c-card-work__text {
        display: none;
    }

    .c-card-work__more {
        grid-template-columns: 1fr auto;
        align-items: center;
        justify-content: stretch;
        gap: 8px;
        padding-bottom: 8px;
        border-bottom: 1px solid currentColor;
    }

    .c-card-work__more-label {
        display: block;
        font-family: var(--font-en);
        font-size: 14px;
        font-weight: 500;
        letter-spacing: .04em;
    }

    .c-card-work__arrow {
        width: 24px;
        height: 24px;
    }

    /* 背景のロゴは右下で見切れさせる */
    .p-business {
        position: relative;
        overflow: hidden;
    }

    .p-business::after {
        content: "";
        position: absolute;
        right: 0;
        bottom: 0;
        width: 200px;
        height: 300px;
        background-image: url(../images/top/top_business_sp_bg.webp);
        background-repeat: no-repeat;
        background-position: right bottom;
        background-size: cover;
        pointer-events: none;
    }

    .p-business .l-inner {
        position: relative;
        z-index: 1;
    }

    /* 画像・タイトル・テキスト・READ MOREの4行をsubgridで共有し、隣のカードと行位置を揃える */
    .p-business__list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-auto-rows: auto;
        gap: 32px 16px;
    }

    .p-business__item {
        display: grid;
        grid-row: span 4;
        grid-template-rows: subgrid;
        row-gap: 12px;
    }

    .c-card-business {
        grid-row: span 4;
        grid-template-rows: subgrid;
        row-gap: 12px;
        background-color: transparent;
        box-shadow: none;
    }

    .c-card-business__image {
        height: 160px;
    }

    .c-card-business__body {
        grid-row: 2 / span 3;
        grid-template-rows: subgrid;
        row-gap: 12px;
        padding: 0;
    }

    .c-card-business__title {
        align-content: start;
        font-size: 16px;
        line-height: 1.5;
    }

    .c-card-business__number {
        font-size: 16px;
    }

    .c-card-business__text {
        display: none;
    }

    .c-card-business__text--sp {
        display: block;
        font-size: 14px;
        line-height: 1.7;
    }

    .c-card-business__more {
        grid-template-columns: 1fr auto;
        align-items: center;
        justify-content: stretch;
        gap: 8px;
        padding-bottom: 12px;
        border-bottom: 1px solid currentColor;
    }

    .c-card-business__more-label {
        display: block;
        font-family: var(--font-en);
        font-size: 14px;
        font-weight: 500;
        letter-spacing: .04em;
    }

    .c-card-business__arrow {
        width: 24px;
        height: 24px;
    }

    .p-contact {
        padding-block: 50px;
    }

    .p-contact__inner {
        gap: 20px;
    }

    .p-contact__heading {
        gap: 4px;
    }

    .p-contact__actions {
        grid-template-columns: 1fr;
        justify-items: center;
        gap: 16px;
    }

    .p-contact__en {
        font-size: 36px;
    }

    .p-contact__ja {
        font-size: 20px;
    }

    .p-contact__tel-number {
        font-size: 32px;
    }

    .p-contact__tel-hours {
        font-size: 14px;
    }

    .p-value {
        gap: 32px;
    }

    .p-value .c-section-heading {
        justify-items: start;
        gap: 4px;
        text-align: left;
    }

    .p-value .c-section-heading__en {
        color: var(--color-text);
    }

    .p-value .c-section-heading__ja {
        font-size: 14px;
    }

    .p-value__list {
        gap: 48px;
    }

    /* SPは「番号→見出し→画像→本文」の縦並びにするため、bodyの子をitem直下として扱う */
    .p-value__item,
    .p-value__item:nth-child(even) {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .p-value__body {
        display: contents;
    }

    .p-value__heading {
        order: 1;
        gap: 0;
    }

    .p-value__number {
        font-size: 20px;
    }

    .p-value__image,
    .p-value__item:nth-child(even) .p-value__image {
        order: 2;
        width: 100%;
    }

    .p-value__text {
        order: 3;
        font-size: 16px;
    }

    .l-footer__inner {
        grid-template-columns: 1fr;
    }

    .l-footer__logo img {
        width: 240px;
    }

    .l-footer__utility {
        grid-template-columns: 1fr;
        justify-content: start;
        justify-items: start;
    }

    .l-footer {
        gap: 24px;
        padding-block: 32px 24px;
    }

    .l-footer__inner {
        gap: 24px;
    }

    .l-footer__brand {
        gap: 16px;
    }

    .l-footer__address {
        gap: 12px;
        font-size: 14px;
        line-height: 1.6;
    }

    /* SPでは社名を出さず、住所・電話のみ表示 */
    .l-footer__company {
        display: none;
    }

    .l-footer__contact-info {
        display: grid;
        justify-items: start;
    }

    .l-footer__tel-label {
        display: none;
    }

    .l-footer__tel {
        display: grid;
        grid-template-columns: auto auto;
        align-items: center;
        gap: 6px;
        font-family: var(--font-en);
        font-size: 24px;
        font-weight: 700;
        line-height: 1.2;
    }

    .l-footer__tel::before {
        content: "";
        width: 18px;
        height: 18px;
        background-color: currentColor;
        mask: url(../images/icon/icon_phone.svg) no-repeat center / contain;
    }

    .l-footer__hours {
        margin-left: 0;
        padding-left: 24px;
        font-size: 10px;
    }

    /* ナビは2列・行頭に中黒 */
    .l-footer__list {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        justify-content: start;
        gap: 12px 16px;
    }

    .l-footer__item {
        display: grid;
        grid-template-columns: auto 1fr;
        gap: 8px;
        font-size: 14px;
    }

    .l-footer__item--sp {
        display: grid;
    }

    .l-footer__item::before {
        content: "・";
    }

    .l-footer__contact-button {
        display: none;
    }

    .l-footer__bottom {
        grid-template-columns: 1fr;
        justify-items: start;
        gap: 8px;
        padding-top: 0;
        border-top: none;
    }

    .l-footer__copyright {
        text-align: left;
        font-size: 10px;
    }

    .l-footer__pagetop {
        display: none;
    }

    .p-page-mv {
        min-height: calc(220px + var(--header-height));
        padding-block: calc(40px + var(--header-height)) 40px;
    }

    .p-page-mv__en {
        font-size: 14px;
    }

    .p-credentials__list {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .p-access__inner {
        grid-template-columns: 1fr;
        gap: 32px;
    }

    .p-access__text {
        font-size: 14px;
        line-height: 1.9;
    }

    .p-access .c-button {
        justify-self: center;
    }

    .p-history {
        --history-gap: 32px;
    }

    .p-history__item {
        grid-template-columns: 20px minmax(0, 1fr);
        align-items: start;
        gap: 8px 16px;
    }

    .p-history__label {
        grid-column: 2;
        grid-row: 1;
    }

    .p-history__marker {
        grid-column: 1;
        grid-row: 1 / span 2;
        align-self: stretch;
    }

    .p-history__marker::before {
        top: 12px;
        translate: -50% 0;
    }

    .p-history__item:not(:last-child) .p-history__marker::after {
        top: 12px;
        height: calc(100% + var(--history-gap));
    }

    .p-history__text {
        grid-column: 2;
        grid-row: 2;
        font-size: 14px;
    }

    .p-profile__row {
        grid-template-columns: 1fr;
        gap: 8px;
        padding: 16px 20px;
    }

    .p-profile__value {
        font-size: 14px;
    }

    .p-features__list {
        grid-template-columns: 1fr;
        gap: 24px;
    }

    .p-features__item {
        grid-row: auto;
        grid-template-rows: none;
    }

    .p-standards__en {
        font-size: 32px;
    }

    .p-standards__list {
        flex-direction: column;
        gap: 24px;
    }

    .p-standards__item {
        width: min(100%, 260px);
        padding: 32px;
    }

    .p-standards__item + .p-standards__item::before {
        top: -24px;
        left: 50%;
        width: 0;
        height: 24px;
        border-top: none;
        border-left: 4px dotted var(--color-contact);
    }

    .p-business-detail__list {
        grid-template-columns: minmax(0, 1fr);
        gap: 24px;
    }

    .c-card-service__number {
        width: 44px;
        padding-block: 10px;
        font-size: 16px;
    }

    .c-card-service__title {
        padding-inline: 16px;
        font-size: 16px;
    }

    .c-card-service__body {
        gap: 12px;
        padding: 16px;
    }

    .c-card-service__lead {
        font-size: 18px;
    }

    .c-card-service__text {
        font-size: 13px;
    }

    .p-work-archive {
        gap: 40px;
    }

    .p-work-archive__categories {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 8px;
    }

    .c-category-button {
        min-height: 32px;
        padding-inline: 4px;
        font-size: 11px;
    }

    .p-work-archive__list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 28px 16px;
    }

    .c-card-work-archive {
        gap: 8px;
    }

    .c-card-work-archive__title {
        font-size: 13px;
    }

    .c-pagination__list {
        gap: 14px;
    }

    .p-work-single {
        padding-block: 48px 64px;
    }

    .p-work-single__inner {
        padding: 40px 20px;
    }

    .p-work-single__back {
        padding-top: 32px;
    }

    .p-work-single__article {
        gap: 32px;
    }

    .p-work-single__header {
        gap: 12px;
        padding-bottom: 20px;
    }

    .p-work-single__title {
        font-size: 22px;
    }

    .p-work-single__slider-arrow {
        width: 36px;
        height: 36px;
    }

    .p-work-single__slider-arrow--prev {
        left: 8px;
    }

    .p-work-single__slider-arrow--next {
        right: 8px;
    }

    .p-work-single__slider-thumb {
        width: 80px;
    }

    .p-work-single__detail-heading {
        font-size: 18px;
    }

    .p-work-single__detail-row {
        grid-template-columns: 1fr;
        gap: 4px;
        padding: 16px;
    }

    /* お問い合わせフォーム SP */
    .p-contact-form__intro {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
    }

    .p-contact-form__row {
        grid-template-columns: 1fr;
        gap: 8px;
    }

    .p-contact-form__input--half,
    .p-contact-form__select--half,
    .p-contact-form__input--zip {
        width: 100%;
    }

    .p-contact-form__submit {
        width: 100%;
    }
}
