/* =========================================================
   service.css  (/service 共通)
========================================================= */
.service-common:not(.post-type-archive-service, .single-outsourcing, .single-dx) header {
    background-color: rgba(255, 255, 255, 0.5);
    backdrop-filter: blur(20px);
    box-shadow: 0 2px 20px rgba(0, 0, 0, 0.1);
    transition: var(--transition);
}

.hero--service {
    position: relative;
    overflow: hidden;
    top: -64px;
    margin-bottom: -64px;
    background-image: var(--hero-bg, none);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}


.service-section-body__copy {
    font-size: 24px;
    font-weight: 500;
    margin-bottom: 16px;
}


.service-section-body__paragraph {
    display: flex;
    flex-direction: column;
    gap: 1.5em;
}

.overview-img__wrapper {
    margin-top: clamp(40px, 5vw, 64px);
}

.service-section .btn-arrow-square {
    margin-inline: auto 0;
    width: 100%;
}

.service-highlight {
    display: flex;
    align-items: center;
    gap: clamp(20px, 5vw, 32px);
    border: 1px solid rgba(0, 0, 0, 0.1);
    padding: 16px;
}


.service-highlight img {
    max-width: 160px;
    transition: var(--transition);
}

@media (hover: hover) and (pointer: fine) {

    .service-highlight:hover>figure img,
    .service-highlight:focus-visible>figure img {
        transform: scale(1.06);
    }
}

.service-highlight__body {
    flex-grow: 1;
    width: 100%;
}

.service-highlight__title__wrapper {
    margin-bottom: 10px;

    @media screen and (max-width: 900px) {
        margin-bottom: 24px;
    }
}

.service-highlight__title {
    display: inline-block;
    font-size: 16px;
    font-weight: 500;
    color: var(--color-text);
}

.service-highlight__body p {
    font-size: clamp(12px, 2vw, 14px);
    width: 100%;
}

@media screen and (max-width: 767px) {
    .service-highlight {
        flex-direction: column;
    }

    .service-highlight img {
        max-width: 100%;
    }

    .service-highlight__title__wrapper {
        display: flex;
        align-items: center;
        justify-content: space-between;
    }
}

/* =====共通Layout ===== */
.service-grid {
    display: grid;
    grid-template-columns: 280px minmax(0, 1fr);
    gap: clamp(40px, 5vw, 72px);
    padding: 0 80px;
    max-width: 1400px;
    margin-inline: auto;
}

@media screen and (max-width: 1024px) {
    .service-grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 0;
        padding: 0 20px;
    }
}

/* ===== Sidebar ===== */
.service-sidebar {
    --sidebar-arrow-bg: url(../images/service/simple-arrow.svg);
    grid-column: 1;
}


.service-sidebar__list li {
    text-transform: uppercase;
}

.service-sidebar__list li.is-sub a {
    padding-left: 1.25rem;
    font-size: 0.95em;
    opacity: .9;
}

.single-dx .service-sidebar__sp,
.single-qnavi .service-sidebar__sp,
.single-naviseries .service-sidebar__sp,
.service-branch-greasetrap .service-sidebar__sp,
.single-roaster_cleaning .service-sidebar__sp,
.single-airconditioning .service-sidebar__sp,
.single-pollutionrecovery .service-sidebar__sp,
.single-construction .service-sidebar__sp {
    position: relative;
    top: -50px;
    margin-bottom: -50px;
    z-index: 10;
}

@media (max-width: 1024px) {
    .service-sidebar {
        grid-column: 1;
        position: relative;
        top: 0;
    }

    .post-type-archive-service .service-sidebar,
    .single-dx .service-sidebar,
    .single-outsourcing .service-sidebar {
        top: -150px;
        margin-bottom: -180px;
    }
}

@media screen and (max-width: 767px) {
    .post-type-archive-service .service-sidebar {
        top: -50px;
        margin-bottom: 0;
    }

    .single-dx .service-sidebar,
    .single-outsourcing .service-sidebar {
        top: 0;
        margin-bottom: 0;
    }
}

@media (min-width: 1024px) {
    .service-grid {
        align-items: stretch;
    }

    .service-sidebar {
        position: relative;
        z-index: 2;
    }

}

/* ------------ SERVICE HERO ------------- */

.service-branch-greasetrap .hero--service,
.single-roaster_cleaning .hero--service,
.single-airconditioning .hero--service {
    padding: clamp(120px, 20vw, 220px) 0 0;
    overflow: hidden;
    position: relative;
}

@media screen and (max-width: 1024px) {

    .service-branch-greasetrap .hero--service,
    .single-roaster_cleaning .hero--service,
    .single-airconditioning .hero--service {
        padding-bottom: 50px;
    }

    .service-branch-greasetrap.single-construction .hero--service,
    .service-branch-greasetrap.single-pollutionrecovery .hero--service {
        padding-bottom: 70px;
    }
}

.single-qnavi .hero--service,
.single-naviseries .hero--service {
    padding: 84px 0 0;
    overflow: hidden;
    position: relative;
}

@media screen and (max-width: 767px) {

    .single-naviseries .hero--service {
        padding-bottom: 283px;
    }
}

.hero--service .breadcrumb span {
    font-size: clamp(8px, 1vw, 11px);
}

@media screen and (max-width: 1024px) {

    .single-qnavi .hero--service .hero-common__breadcrumb,
    .single-naviseries .hero--service .hero-common__breadcrumb {
        padding-bottom: 0;
    }

    .single-qnavi .hero--service .breadcrumb,
    .single-naviseries .hero--service .breadcrumb {
        position: absolute;
        z-index: 1;
        bottom: 0;
        right: 0;
    }

    .single-qnavi .hero--service .breadcrumb,
    .single-naviseries .hero--service .breadcrumb {
        bottom: 60px;
        padding-inline: 20px;
    }


    .single-greasetrap .hero--service .breadcrumb,
    .single-airconditioning .hero--service .breadcrumb,
    .service-branch-greasetrap.single-pollutionrecovery .hero--service .breadcrumb,
    .service-branch-greasetrap.single-construction .hero--service .breadcrumb {
        bottom: 10px;
    }
}

.service-branch-greasetrap .hero--service .breadcrumb span,
.single-roaster_cleaning .hero--service .breadcrumb span,
.single-airconditioning .hero--service .breadcrumb span {
    color: var(--color-white);
}

.service-branch-greasetrap .hero--service .breadcrumb__item+.breadcrumb__item::before,
.single-roaster_cleaning .hero--service .breadcrumb__item+.breadcrumb__item::before,
.single-airconditioning .hero--service .breadcrumb__item+.breadcrumb__item::before {
    color: white;
    opacity: .3;
}

.service-branch-greasetrap .hero--service .breadcrumb a span,
.single-roaster_cleaning .hero--service .breadcrumb a span,
.single-airconditioning .hero--service .breadcrumb a span {
    text-decoration: underline;
}



.single-qnavi .service-hero__inner,
.single-naviseries .service-hero__inner {
    min-height: clamp(480px, 33.169rem + 13.15vw, 620px);
    display: flex;
    flex-direction: row;
    align-items: center;
}

@media (max-width: 767px) {

    .single-qnavi .service-hero__inner,
    .single-naviseries .service-hero__inner {
        min-height: unset;
    }
}

.qnavi-phone figure {
    margin: 0;
}

.qnavi-phone picture {
    display: block;
    line-height: 0;
}

.qnavi-phone img {
    position: relative;
    z-index: 1;
    width: 100%;
    height: auto;
    object-fit: cover;
    object-position: center;
}

@media (max-width: 767px) {
    .hero--service {
        background-image: var(--hero-bg-sp, var(--hero-bg, none));
    }

    .single-qnavi .hero--service {
        padding: 120px 0 0;
    }

    .single-qnavi .service-hero__inner {
        flex-direction: column;
    }

}


.service-hero__title>* {
    position: relative;
    z-index: 1;
}

.hero--service .h2-title-jp {
    font-family: var(--font-latin);
}

.hero--service .h2-title-en {
    font-family: var(--font-sans-jp);
    font-size: clamp(40px, 7vw, 96px);
    margin-bottom: clamp(28px, 5vw, 60px);
    letter-spacing: -0.03em;
    font-weight: 500;
}

.service-branch-greasetrap .hero--service .h2-title-jp,
.single-roaster_cleaning .hero--service .h2-title-jp,
.single-airconditioning .hero--service .h2-title-jp {
    font-size: 12px;
    margin-bottom: 16px;
    font-weight: 500;
    color: var(--color-white);
    line-height: 1.2;
}

.service-branch-greasetrap .hero--service .h2-title-jp span:nth-child(2),
.single-roaster_cleaning .hero--service .h2-title-jp span:nth-child(2),
.single-airconditioning .hero--service .h2-title-jp span:nth-child(2) {
    background-color: var(--color-white);
}

.service-branch-greasetrap .hero--service .h2-title-en,
.single-roaster_cleaning .hero--service .h2-title-en,
.single-airconditioning .hero--service .h2-title-en {
    font-size: clamp(32px, 5vw, 40px);
    margin-bottom: clamp(42px, 5vw, 120px);
    font-weight: 500;
    line-height: 1.5;
    color: var(--color-white);
    letter-spacing: .05em;
}

.service-main__content {
    padding: clamp(80px, 10vw, 160px) 0;
    display: flex;
    flex-direction: column;
    gap: clamp(24px, 5vw, 40px);
    grid-column: 2;
    position: relative;
}

@media screen and (max-width: 1024px) {
    .service-main__content {
        grid-column: 1;
    }
}

.slide-gallery {
    margin: 0;
    padding-top: 40px;
}

.slide-gallery-container {
    position: static;
    width: 100%;
    max-width: 100%;
    height: auto;
    left: auto;
    overflow: hidden;
}

.slide-gallery-container .swiper {
    width: 100%;
    max-width: 100%;
    overflow: hidden;
}

.slide-gallery-container .swiper-slide img {
    display: block;
    max-width: 100%;
    height: auto;
}

.service-main__content .who-vision-swiper .swiper-slide,
.service-main__content .who-vision-swiper-bottom .swiper-slide {
    width: clamp(180px, 26vw, 320px) !important;
}

/* --- SP（1カラム）でも“親の幅”にフィット --- */
@media (max-width: 900px) {
    .slide-gallery {
        margin: 0 calc(50% - 50vw);
        width: 100vw;
    }

    .service-main__content .slide-gallery-container {
        margin-inline: 0;
    }

    .service-main__content .who-vision-swiper .swiper-slide,
    .service-main__content .who-vision-swiper-bottom .swiper-slide {
        width: clamp(140px, 60vw, 220px);
    }
}


.service-section {
    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
    padding-bottom: clamp(80px, 10vw, 120px);
}

.service-section:last-child,
.service-section--nb {
    border-bottom: none;
}

.service-section--pb-sm {
    padding-bottom: clamp(40px, 5vw, 60px);
}

/*==============================================================
/ トップ(service)
/==============================================================*/
.post-type-archive-service,
.single-dx,
.single-outsourcing {
    --kv-bottom-height: clamp(300px, 50vw, 540px);
}

.service-kv__bottom {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    /* height: var(--kv-bottom-height); */
}

.service-kv__bottom figure {
    margin: 0;
}

/* UA既定の1emを消す */
.service-kv__bottom picture {
    display: block;
    line-height: 0;
}

.service-kv__bottom img {
    display: block;
    /* インライン由来のベースライン隙間を消す */
    width: 100%;
    height: auto;
    max-height: 540px;
    object-fit: cover;
    object-position: center;
}

@media screen and (max-width: 767px) {
    .service-kv__bottom {
        grid-template-columns: 1fr;
    }
}


/*==============================================================
/ 　service コンテンツ
/==============================================================*/
.service-section-body__gallery {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(296px, 1fr));
    gap: clamp(16px, 2vw, 33px);
    margin: 40px auto;

    @media screen and (max-width: 768px) {
        grid-template-columns: repeat(2, 1fr);
    }
}

.service-section-body__1col {
    margin: clamp(40px, 5vw, 64px) auto;
}

.service-section-body__2col {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 48px 32px;
    margin: clamp(40px, 5vw, 64px) auto;
}

@media screen and (max-width: 767px) {
    .service-section-body__2col {
        grid-template-columns: 1fr;
    }
}

.service-section-body__2col>div img {
    display: block;
}

.service-section-body__2col__title {
    font-size: clamp(18px, 2vw, 20px);
    font-weight: 500;
    margin-bottom: clamp(24px, 5vw, 32px);
}

.service-section-body__2col .btn-arrow {
    margin-top: 24px;
    margin-inline: auto 0;
    color: var(--color-text);
    gap: 16px;
}

.service-section-body__2col figure {
    overflow: hidden;
    border-radius: var(--radius-sm);
    margin: 0;
    margin-bottom: clamp(24px, 2vw, 32px);
}

.single-construction .service-section-body__2col figure,
.single-greasetrap .service-section-body__2col figure,
.single-construction .service-highlight__title__wrapper,
.single-greasetrap .service-highlight__title__wrapper {
    margin-bottom: 0;
}

.single-greasetrap .service-highlight__title__wrapper {
    grid-template-columns: max-content;
}


.single-greasetrap .service-section-body__2col figure {
    border: 1px solid rgba(0, 0, 0, .1);
}

.service-section-body__2col figure>img {
    transition: var(--transition);
    display: block;
    width: 100%;
    height: auto;
}

@media screen and (max-width: 767px) {

    .single-construction .service-section-body__2col figure>img,
    .single-greasetrap .service-section-body__2col figure>img {
        width: 80px;
    }

    .single-greasetrap .service-section-body__2col figure>img {
        aspect-ratio: 1 / 1;
        object-fit: cover;
    }

    .single-construction .service-section-body__2col .service-highlight__title {
        font-size: 14px;
        white-space: nowrap;
    }
}


@media (hover: hover) and (pointer: fine) {
    .service-section-body__2col a:hover figure>img {
        transform: scale(1.06);
    }

    .service-section-body__2col a:hover .btn-arrow {
        color: var(--color-red);
    }
}

.service-section-body .case-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(296px, 1fr));
    gap: 16px;
    margin: 40px 0;
    max-width: 1000px;
}


.service-section-body .case-grid .case-card {
    background-color: #F5F7F8;
    max-width: 306px;
}

.service-section-body .case-grid .case-card .thumb img {
    aspect-ratio: 86 / 49;
    object-fit: cover;
    object-position: center right;
}

@media screen and (max-width: 767px) {
    .service-section-body .case-grid {
        grid-template-columns: 1fr;
    }

    .service-section-body .case-grid .case-card {
        max-width: 100%;
    }
}

/*==============================================================
/ DX
/ .single-dx
/==============================================================*/
.single-dx .service-kv__bottom {
    display: block;
}

/*==============================================================
/ QナビORDER
/ .single-qnavi
/==============================================================*/
.single-qnavi .hero--service .h2-title-jp,
.single-naviseries .hero--service .h2-title-jp {
    font-size: clamp(10px, 2vw, 12px);
    font-weight: 600;
    margin-bottom: clamp(16px, 3vw, 24px);
}

.single-qnavi .h2-title-en,
.single-naviseries .h2-title-en {
    font-size: clamp(32px, 5vw, 56px);
    margin-bottom: 20px;
}

.single-qnavi .page-links .h2-title-en,
.single-naviseries .page-links .h2-title-en {
    font-weight: 600;
}


.service-section-body__2col .service-2col__card {
    gap: 24px;
}

.service-2col__card__img {
    margin-bottom: 24px;
}

.radius img {
    border-radius: var(--radius-sm);
}

.service-2col__card__title {
    font-family: var(--font-latin);
    font-size: clamp(12px, 2vw, 16px);
    font-weight: 500;
    gap: 8px;
    display: flex;
    line-height: 1;
    margin-bottom: 16px;
}

.construction .service-2col__card__title {
    margin-bottom: clamp(40px, 5vw, 48px);
}

.service-2col__card__title .service-2col__card__num {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-left: 6px;
    color: var(--color-red);
}

.service-2col__card__title .service-2col__card__num::before {
    content: "";
    display: inline-block;
    width: 1px;
    height: 1em;
    background-color: rgba(0, 0, 0, .1);
}

.service-2col__card__title .service-2col__card__text {
    font-size: clamp(16px, 2vw, 18px);
    line-height: 1.6;
}

.service-2col__card__text {
    font-size: clamp(16px, 2vw, 14px);
    line-height: 1.8;
    font-weight: 500;
}

.qnavi-solution__2col>div {
    justify-content: center;
    gap: 0;
}

.qnavi-solution__2col .service-section-body__2col__title {
    font-size: clamp(18px, 2vw, 20px);
    margin-bottom: clamp(32px, 3vw, 48px);
    text-align: center;
}

.qnavi-solution__2col .qnavi-solution__num img {
    width: auto;
    max-height: 79px;
    margin-inline: auto;
    margin-bottom: 24px;
    display: block;
}

.qnavi-solution__2col .qnavi-solution__num {
    position: relative;
}

.qnavi-solution__2col .qnavi-solution__num::after {
    content: "";
    position: absolute;
    top: 50%;
    right: clamp(16px, 2vw, 30px);
    width: 12px;
    height: 68px;
    transform: translateY(-50%);
    background: url(../images/service/arrow-up.svg) no-repeat right center;
    background-size: contain;
    pointer-events: none;
}


.qnavi-solution__2col>div:nth-child(3) .qnavi-solution__num::after,
.qnavi-solution__2col>div:nth-child(4) .qnavi-solution__num::after {
    transform: rotate(180deg);
    top: 10px;
}

@media screen and (max-width: 767px) {
    .qnavi-solution__2col .qnavi-solution__num::after {
        background: url(../images/service/arrow-up-sp.svg) no-repeat right center;
    }
}

.qnavi-solution__2col p.bg-red {
    display: block;
    padding: 10px 16px;
    background: var(--color-red);
    font-size: 14px;
    line-height: 1.6;
    color: var(--color-white);
    text-align: center;
}

.qnavi-solution__2col p.bg-red span {
    display: inline-block;
}

/* ====== Timeline (導入プロセス) ====== */
.process-flow {
    --dot-size: 7px;
    --rail-gap: 32px;
    --item-gap: 32px;
    --badge-size: 88px;
    --col-gap: 32px;

}

/* レールは ul の ::before で描画 */
.process-flow__list {
    position: relative;
    list-style: none;
    margin: 0;
    padding: 0 0 0 var(--rail-gap);
}

.process-flow__list::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 1px;
    background: var(--color-red);
}

/* 各アイテム */
.process-flow__item {
    position: relative;
    margin: 0 0 var(--item-gap);
}

.process-flow__item:last-child {
    margin-bottom: 0;
}

/* レール上のマーカー（直径7px、中心がレール上に来る） */
.process-flow__marker {
    position: absolute;
    left: -32px;
    top: calc(var(--badge-size) / 2 - var(--dot-size) / 2);
    width: var(--dot-size);
    height: var(--dot-size);
    background: var(--color-red);
    border-radius: 50%;
    transform: translateX(-50%);
    /* 中心をレールに合わせる */
}

/* バッジ + 本文の2カラム */
.process-flow__card {
    display: grid;
    grid-template-columns: var(--badge-size) 1fr;
    column-gap: var(--col-gap);
    align-items: center;
}

/* 赤いバッジ */
.process-flow__badge {
    width: var(--badge-size);
    height: var(--badge-size);
    background: var(--color-red);
    color: #fff;
    border-radius: var(--radius-sm);
    display: grid;
    place-content: center;
    row-gap: 4px;
    text-align: center;
}

.process-flow__step {
    font-size: 12px;
    letter-spacing: 0;
    font-family: var(--font-latin);
    font-weight: 500;
}

.process-flow__num {
    font-family: var(--font-latin);
    display: block;
    font-size: clamp(24px, 2vw, 32px);
    font-weight: 500;
    line-height: 1;
}

/* 本文 */
.process-flow__title {
    margin: 0 0 8px;
    font-weight: 500;
    font-size: clamp(18px, 1.8vw, 20px);
    color: var(--color-text);
}

.process-flow__text {
    margin: 0;
    line-height: 1.8;
}

/* ====== SP（～767px） ====== */
@media (max-width: 767px) {
    .process-flow {
        --rail-gap: 16px;
        --item-gap: 24px;
        --badge-size: 60px;
        --col-gap: 16px;
    }

    .process-flow__card {
        align-items: start;
    }

    .process-flow__marker {
        left: -16px;
        top: calc(var(--badge-size) / 2 - var(--dot-size) / 2);
    }
}


/* PRICE グリッド */
.price-grid {
    --gap-pc: 48px;
    --gap-sp: 24px;
    --divider-color: rgba(0, 0, 0, .3);
    --icon-size: clamp(56px, 6vw, 74px);
    --title-size: clamp(16px, 2.2vw, 20px);
    --desc-size: clamp(13px, 1.6vw, 14px);
    display: grid;
    grid-template-columns: 1fr min-content 1fr;
    align-items: start;
    gap: var(--gap-pc);
    margin: clamp(24px, 4vw, 40px) 0;
    border: 1px solid rgba(0, 0, 0, .1);
    padding: clamp(24px, 4vw, 40px) 0;
}

/* カード */
.price-card {
    text-align: center;
}

.price-card__icon {
    width: auto;
    height: var(--icon-size);
    margin: 0 auto clamp(8px, 1.5vw, 16px);
}

.price-card__icon img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.price-card__title {
    font-weight: 500;
    font-size: var(--title-size);
    letter-spacing: .02em;
    margin: 0 0 clamp(8px, 1.5vw, 16px);
}

.price-card__desc {
    font-size: var(--desc-size);
    color: rgba(0, 0, 0, .7);
    line-height: 1.8;
    margin: 0;
}

/* 仕切り（PC：縦線に＋） */
.price-grid__divider {
    position: relative;
    align-self: stretch;
    justify-self: center;
    width: 1px;
    background: var(--divider-color);
}

.price-grid__divider::after {
    content: url(../images/service/icon-plus.svg);
    position: absolute;
    inset: 50% auto auto 50%;
    transform: translate(-50%, -50%);
    width: 28px;
    height: 28px;
    display: grid;
    place-items: center;
    background: #fff;
    color: #000;
    font-weight: 700;
    line-height: 1;
    padding: 16px 0;
}

/* SP：縦並び＋横線に＋（中央） */
@media (max-width: 1024px) {
    .price-card {
        display: flex;
        align-items: center;
        gap: 24px;
        padding-inline: 24px;
    }

    .price-card__body {
        display: flex;
        flex-direction: column;
        align-items: center;
        flex-grow: 1;
    }

    .price-card__body>* {
        text-align: left;
        width: 100%;
    }

    .price-grid {
        grid-template-columns: 1fr;
        grid-template-rows: auto min-content auto;
        gap: var(--gap-sp);
    }

    .price-grid__divider {
        width: 100%;
        height: 1px;
    }

    .price-grid__divider::after {
        content: url(../images/service/icon-plus-sp.svg);
        inset: 50% auto auto 50%;
        transform: translate(-50%, -50%);
        padding: 16px;
        width: 17px;
        height: 17px;
    }
}



/*==============================================================
/  NAVIシリーズ
/ .single-naviseries
/==============================================================*/
.section-bg-gray {
    background-color: #F5F7F8;
    padding: clamp(80px, 10vw, 120px) clamp(20px, 5vw, 40px);
    margin-bottom: clamp(80px, 10vw, 120px);
}

.section-bg-gray:not(:last-child) {
    padding-bottom: 0;
}

.section-bg-gray:last-child {
    margin-bottom: 0;
}


.section-bg-gray.innner-bg-gray {
    padding-block: 40px;
    gap: 32px;
    display: flex;
    flex-direction: column;
    margin-bottom: 8px;
}

.service-section-inner {
    padding-bottom: clamp(80px, 10vw, 120px);
    padding-top: clamp(24px, 5vw, 40px);
    border-top: 1px solid rgba(0, 0, 0, .1);
}

.service-section-inner:last-child {
    padding-bottom: 0;
}

.service-section-inner .service-section-body__2col {
    margin-bottom: 0;
}

.price-grid--3col {
    --gap-pc: 0;
    grid-template-columns: 1fr min-content 1fr min-content 1fr;
}

@media screen and (max-width: 767px) {
    .price-grid--3col {
        grid-template-columns: 1fr;
    }
}

/*==============================================================
/ アウトソーシング事業
/ .single-outsourcing
/==============================================================*/
.single-outsourcing .service-kv__bottom {
    display: block;
}

/*==============================================================
/ グリストラップ清掃
/ 単体.service-branch-greasetrap
/ グループ .service-branch-greasetrap
/==============================================================*/
/* 共通 */
.service-branch-greasetrap .page-links {
    margin-top: 8px;
}

section.page-links.page-links--gr {
    background: #2C2A2A;
}

section.page-links.page-links--gr::before {
    background: url(../images/service/link-list-bg.png) no-repeat 0 0;
}

.page-links--gr .h2-title-jp,
.page-links--gr .h2-title-en,
.page-links--gr .link-list li a {
    color: var(--color-white);
}

.page-links--gr .link-list li {
    border-bottom: 1px solid rgba(255, 255, 255, .15);
}



.service-branch-greasetrap .service-section-body__copy {
    font-size: clamp(20px, 2vw, 24px);
    margin-bottom: 40px;
}

.service-branch-outsourcing .service-section-body>p {
    margin-bottom: 40px;
}

.service-branch-greasetrap .service-section-body__2col>a.service-highlight {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 12px;
    min-width: 460px;
    max-width: 460px;
    min-height: 122px;
}

@media screen and (max-width: 767px) {
    .service-branch-greasetrap .service-section-body__2col>a.service-highlight {
        min-width: 100%;
        min-height: auto;
    }
}

.service-branch-greasetrap .service-section-body__2col.service-highlight__wrapper {
    gap: clamp(12px, 2vw, 32px);
}

.service-section-body__2col.service-3col {
    grid-template-columns: repeat(3, 1fr);
    gap: clamp(32px, 5vw, 96px) 32px;
    margin: 40px auto;

    @media screen and (max-width:767px) {
        grid-template-columns: repeat(2, 1fr);
    }
}

.service-branch-greasetrap .service-section-body__2col.service-3col img {
    display: block;
}

.service-section-body__2col .service-section-body__2col__title {
    display: block;
    font-size: clamp(16px, 2vw, 18px);
    margin: 24px 0 16px;
    font-weight: 500;

    @media screen and (max-width: 768px) {
        font-size: 16px;
    }
}

.service-highlight-other:not(.mb-0) {
    margin-bottom: clamp(80px, 10vw, 120px);
}

.service-highlight-other .service-highlight {
    border-top: none;
    border-right: none;
    border-left: none;
    border-bottom: 1px solid rgba(0, 0, 0, .1);
}

.service-highlight-other .service-highlight img {
    max-width: 120px;
}

.service-highlight-other .service-highlight:last-child {
    border-bottom: none;
}

.service-highlight-other .service-highlight__title {
    margin-bottom: 16px;
    font-size: 20px;
    font-weight: 700;
}


@media screen and (max-width: 767px) {
    .service-highlight-other .service-highlight__title {

        font-size: 18px;

    }

    .service-highlight-other .service-highlight {
        flex-direction: row;
        align-items: start;
    }

    .service-highlight-other .service-highlight img {
        max-width: 100px;
    }
}

.service-branch-greasetrap .service-section-body__paragraph {
    margin-bottom: 40px;
}

.service-2col_tb .service-2col__card {
    border-top: 1px solid rgba(0, 0, 0, .1);
    padding-top: 32px;
}

.process-flow__item--bb {
    border-bottom: 1px solid rgba(0, 0, 0, .1);
    padding-bottom: 32px;
}

.process-flow__item--bb:last-child {
    border-bottom: none;
    padding-bottom: 0;
}

.process-flow__body--2col {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px 32px;
    align-items: center;
}

.single-roaster_cleaning .process-flow__body--2col {
    grid-template-columns: 1fr auto;
}

@media screen and (max-width: 767px) {
    .single-roaster_cleaning .process-flow__body--2col {
        grid-template-columns: 1fr;
    }
}

.process-flow__img--2col {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px 32px;
}

.process-flow__body--2col-w {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 16px 32px;
}

.process-flow__img img {
    display: block;
    width: 100%;
    max-width: 152px;
    min-width: 152px;
}

@media screen and (max-width: 767px) {

    .process-flow__body--2col,
    .process-flow__img--2col,
    .process-flow__body--2col-w {
        grid-template-columns: 1fr;
    }

    .process-flow__img img {
        max-width: 186px;
    }
}

/* ====== 手順swiper ====== */
.service-section--hidden {
    overflow: hidden;
}

/* ====== ベース ====== */
.simple-steps {
    --gap-pc: 24px;
    --gap-sp: 16px;
    --arrow-size: 16px;
    --arrow-color: var(--color-red, #c00);
}

.simple-steps .swiper {
    overflow: visible;
}

/* PC表示時のグリッドでもはみ出さないように */

.simple-step {
    position: relative;
}

.simple-step img {
    display: block;
    width: 100%;
    height: auto;
}

/* 各画像の右側中央に赤い三角（最後は非表示） */
.simple-step::after {
    content: "";
    position: absolute;
    top: 50%;
    right: calc(var(--gap-pc) / -2 - var(--arrow-size)/2);
    transform: translateY(-50%);
    /* 三角形 */
    width: 0;
    height: 0;
    border-left: var(--arrow-size) solid var(--arrow-color);
    border-top: calc(var(--arrow-size)*0.7) solid transparent;
    border-bottom: calc(var(--arrow-size)*0.7) solid transparent;
    pointer-events: none;
}

.simple-steps .swiper-slide:last-child .simple-step::after {
    display: none;
}

/* --- PC（>1024px）: グリッド＋三角矢印 --- */
@media (min-width: 1025px) {
    .simple-steps .swiper-wrapper {
        /* Swiperを破棄したときに効くPCレイアウト */
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: var(--gap-pc);
    }

    .simple-steps .swiper-slide {
        width: auto !important;
    }

}

/* --- SP/タブレット（<=1024px）: スライダー --- */
@media (max-width: 1024px) {
    .simple-steps .swiper-wrapper {
        display: flex;
    }

    /* Swiper有効時の標準レイアウト */
    .simple-steps .swiper-slide {
        height: auto;
        max-width: 280px;
        width: auto !important;
    }


    /* 矢印はモバイルでは非表示（スワイプ誘導に任せる） */
    .simple-steps .swiper-scrollbar {
        margin-top: 10px;
        height: 3px;
        background: rgba(0, 0, 0, .08);
    }
}


.attention-box {
    display: flex;
    align-items: center;
    gap: 24px;
    padding: 20px;
    border: 1px solid var(--color-red, #c8001a);
    border-radius: var(--radius-md);
    margin-top: 32px;
}

.attention-box__label {
    flex: 0 0 auto;
    width: 80px;
    height: 80px;
    border-radius: var(--radius-sm);
    background: var(--color-red, #c8001a);
    color: #fff;
    font-weight: 500;
    font-size: 23px;
    letter-spacing: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.attention-box__body {
    flex: 1 auto;
    display: flex;
    gap: 24px;
    align-items: center;
}

.attention-box__text {
    flex: 1 auto;
    line-height: 1.9;
    color: var(--color-text);
    font-weight: 500;
}



.attention-box__thumb {
    flex: 0 200px;
    /* 右端のサムネ幅 */
}

.attention-box__thumb img {
    display: block;
    /* 画像下の余白対策 */
    width: 100%;
    height: auto;
    border-radius: 4px;
}

/* SP：縦積み&余白縮小 */
@media (max-width: 767px) {
    .attention-box {
        gap: 12px;
        padding: 16px;
        align-items: start;
    }

    .attention-box__label {
        width: 56px;
        height: 56px;
        font-size: 14px;
    }

    .attention-box__body {
        flex-direction: column;
        gap: 12px;

    }

    .attention-box__thumb {
        width: 100%;
        max-width: 198px;
        flex: 0 0 auto;
    }
}

.service-2col_boder {
    margin-bottom: 16px;

    @media screen and (max-width: 768px) {
        gap: 16px;
    }
}

.service-2col_boder .service-2col__card {
    border: 1px solid rgba(0, 0, 0, .1);
    padding: 24px;
}

.gr-note {
    font-size: clamp(13px, 1.6vw, 14px);
}

.gr-note a {
    text-decoration: underline;
}

/* ===== Before / After ===== */
.before-after {
    --gap: clamp(20px, 4vw, 48px);
    --arrow-base: 8px;
    --arrow-height: 16px;

    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: var(--gap);
    background: #fff;
    padding: clamp(24px, 5vw, 40px) 40px;
}

.ba-item {
    text-align: center;
}

.ba-label {
    font-size: 14px;
    line-height: 1;
    margin: 0 0 12px;
    font-weight: 700;
    letter-spacing: .04em;
}

.ba-label--after {
    color: var(--color-red);
}

.ba-figure {
    margin: 0;
}

.ba-figure img {
    display: block;
    width: 100%;
    border-radius: var(--radius-sm);
}

.ba-figure figcaption {
    margin-top: 12px;
    font-size: 14px;
}

/* 中央の小さな右向き三角（底辺16 / 高さ8） */
.ba-arrow {
    width: 0;
    height: 0;
    border-top: calc(var(--arrow-height)/2) solid transparent;
    border-bottom: calc(var(--arrow-height)/2) solid transparent;
    border-left: var(--arrow-base) solid var(--color-text);
    /* 位置の微調整 */
    transform: translateY(2px);
}

/* --- Responsive: 縦並び + 矢印を下向きに --- */
@media (max-width: 768px) {
    .before-after {
        grid-template-columns: 1fr;
        grid-auto-rows: auto;
    }

    .ba-arrow {
        margin: 8px auto;
        /* 中央に */
        transform: rotate(90deg);
        /* 下向きへ */
    }
}

/* ===== 基本 ===== */
.maintenance-section {
    background: #e9edf0;
    padding: 40px clamp(20px, 5vw, 40px);
    margin-top: clamp(80px, 10vw, 120px);
}

.maintenance-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: clamp(20px, 3vw, 32px);
    align-items: center;
}

.maintenance-title {
    font-size: clamp(20px, 3vw, 24px);
    line-height: 1.4;
    margin: 0 0 14px;
    font-weight: 500;
}

.maintenance-lead {
    font-size: clamp(13px, 1.6vw, 14px);
    margin: 0 0 20px;
    color: #333;
}

.maintenance-license {
    background: #fff;
    border: 1px solid rgba(0, 0, 0, .30);
    border-radius: var(--radius-sm);
    padding: clamp(16px, 2vw, 24px);
    font-weight: 500;
}

/* 右画像：親は div */
.maintenance-photo .photo-box {
    overflow: hidden;
}

.maintenance-photo img {
    display: block;
    /* 画像下の隙間防止 */
    width: 100%;
    height: auto;
    object-fit: cover;
}

/* ===== SP レイアウト ===== */
@media (max-width: 768px) {
    .maintenance-grid {
        grid-template-columns: 1fr;
    }

    .maintenance-photo {
        order: 2;
    }

    .maintenance-text {
        order: 1;
    }
}

/*==============================================================
/ 無煙ロースターのダクト清掃ロボット
/
/ .single-roaster_cleaning
/==============================================================*/
.single-roaster_cleaning .process-flow__list {
    margin-bottom: 40px;
}
