/* --------------------------------------------------------------- */
/* HEADER */
/* --------------------------------------------------------------- */

/* #header {
    background: transparent;
    transition: transform 0.35s ease, background 0.35s ease;
    will-change: transform;
    position: fixed;
    width: 100%;
    top: 0;
    z-index: 9999;
}

#header.hide {
    transform: translateY(-100%);
}

#header.show {
    transform: translateY(0);
    background: rgba(255, 255, 255, 0.9);
    height: 12rem;
}

.header-nav {
    transition: color 0.3s ease;
}

#header.show .header-nav {
    color: #000;
}

#header.hide .header-nav {
    color: #fff;
} */

#header {
    transition: transform 0.35s ease;
    will-change: transform;
}

#header.hide {
    transform: translateY(-100%);
}

#header.show {
    transform: translateY(0);
}


/* --------------------------------------------------------------- */
/* COMMON CSS */
/* --------------------------------------------------------------- */
#wrapper {
    @media screen and (max-width: 1080px) {
        padding-top: 0;
        padding-bottom: 0;
    }
}

#contents {
    background: #e3fbef;
    position: relative;

    /* &::before {
        content: "";
        position: fixed;
        top: 3rem;
        left: 0;
        width: 25%;
        height: 100%;
        background-image: url(../../img/ems/bubble-bg.svg);
        background-size: cover;
        background-repeat: no-repeat;
        background-position: center;
        z-index: 1;
        mix-blend-mode: multiply;
    } */

    @media screen and (max-width: 767px) {
        &::before {
            display: none;
        }
    }
}

.common-section-title {
    margin-bottom: 4rem;

    @media screen and (max-width: 767px) {
        margin-bottom: 2.5rem;
    }
}

.common-section-eng-title {
    display: block;
    font-family: "Jost";
    font-style: normal;
    font-weight: 500;
    font-size: 2rem;
    line-height: 4.5rem;
    leading-trim: both;
    text-edge: cap;
    letter-spacing: 0.07em;
    color: #5be075;

    @media screen and (max-width: 767px) {
        font-size: 1.3rem;
        line-height: 2.7rem;
    }
}

.common-section-jp-title {
    font-family: "Noto Sans CJK JP", "Noto Sans JP", sans-serif;
    font-style: normal;
    font-weight: 500;
    font-size: 3.4rem;
    line-height: 1.6;
    leading-trim: both;
    text-edge: cap;
    letter-spacing: 0.06em;
    color: #0b0b0b;

    @media screen and (max-width: 767px) {
        font-size: 2rem;
    }
}

/* --------------------------------------------------------------- */
/* MENU CSS */
/* --------------------------------------------------------------- */

.sp-bottom-dropdown {
    position: fixed;
    bottom: 2rem;
    width: 100%;
    display: flex;
    justify-content: center;
    z-index: 9;

    @media screen and (max-width: 767px) {
    }
}

.sp-dropdown-header {
    background: #ffffff;
    padding: 1.2rem 1.8rem;
    width: 90%;
    height: 4.8rem;
    border-radius: 1.4rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.15);
    cursor: pointer;
    border: 1px solid #e6f5e6;

    @media screen and (max-width: 767px) {
    }
}

.sp-menu-text {
    font-family: "Jost";
    font-style: normal;
    font-weight: 500;
    font-size: 1.4rem;
    leading-trim: both;
    text-edge: cap;
    text-align: center;
    letter-spacing: 0.07em;
    color: #5be075;

    @media screen and (max-width: 767px) {
    }
}

.sp-menu-title {
    flex: 1;
    font-family: "Noto Sans CJK JP", "Noto Sans JP", sans-serif;
    font-style: normal;
    font-weight: 500;
    font-size: 1.4rem;
    line-height: 3rem;
    leading-trim: both;
    text-edge: cap;
    text-align: left;
    letter-spacing: 0.09em;
    color: #0b0b0b;
    padding-left: 2rem;

    @media screen and (max-width: 767px) {
    }
}

.ems-hamburger-sp {
    position: relative;
    width: 2rem;
    height: 0.2rem;
    background: #5be075;
    border-radius: 0.3rem;
    cursor: pointer;
    transition: all 0.3s ease;

    &::before,
    &::after {
        content: "";
        position: absolute;
        width: 100%;
        height: 100%;
        background: #5be075;
        border-radius: 0.3rem;
        transition: all 0.3s ease;

        @media screen and (max-width: 767px) {
        }
    }

    &::before {
        top: -0.5rem;
    }

    &::after {
        top: 0.5rem;
    }

    @media screen and (max-width: 767px) {
    }
}

.sp-dropdown-content {
    position: absolute;
    bottom: 6rem;
    width: 90%;
    height: auto;
    background: #ffffff;
    border-radius: 1.5rem;
    overflow: hidden;
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.15);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s ease, transform 0.3s ease;
    transform: translateY(10px);

    @media screen and (max-width: 767px) {
    }
}

.sp-dropdown-content.open {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);

    @media screen and (max-width: 767px) {
    }
}

.sp-dropdown-content ul {
    list-style: none;
    padding: 1.2rem;
    margin: 0;

    @media screen and (max-width: 767px) {
    }
}

.sp-dropdown-content a {
    text-decoration: none;
    padding: 1rem;
    padding-left: 2rem;
    border-bottom: 1px solid #eee;

    &:last-child {
        border-bottom: none;
    }

    @media screen and (max-width: 767px) {
    }
}

.ems-hamburger-sp.open {
    background: transparent;

    &::before {
        transform: rotate(45deg);
        top: 0;
    }

    &::after {
        transform: rotate(-45deg);
        top: 0;
    }
    @media screen and (max-width: 767px) {
    }
}

/* --------------------------------------------------------------- */
/* EMS HEADER */
/* --------------------------------------------------------------- */

.ems-header {
    position: fixed;
    /* top: 15%; */
    top: 14.8rem;
    left: 50%;
    transform: translateX(-50%);
    width: 120rem;
    z-index: 99;
    display: flex;
    justify-content: center;
    align-items: center;
    background: rgba(255, 255, 255, 0.95);
    box-shadow: 0 0.2rem 0.6rem rgba(0, 0, 0, 0.05);
    padding: 1.2rem 0;
    backdrop-filter: blur(0.6rem);
    border-radius: 0.8rem;

    .ems-nav {
        display: flex;
        align-items: center;
        gap: 2rem;
        padding: 1.2rem 4rem;

        & a {
            text-decoration: none;
            font-size: 1.5rem;
            color: #000;
            font-weight: 500;
            position: relative;
            transition: color 0.2s ease;
            display: flex;
            gap: 1rem;
            align-items: center;

            /* &.active {
                color: #5be075;
            } */

            &:hover {
                color: #5be075;
            }
        }

        .divider {
            color: #bfbfbf;
            font-weight: 300;
        }
    }

    @media print {
        top: 15rem;
    }

    @media screen and (max-width: 1024px) {
        top: 20rem;
    }
}

.dli-chevron-down {
    position: relative;
    top: 0.2rem;
    display: inline-block;
    vertical-align: middle;
    color: #5be075;
    line-height: 1;
    width: 0.8rem;
    height: 0.8rem;
    border: 0.15em solid currentColor;
    border-left: 0;
    border-bottom: 0;
    box-sizing: border-box;
    transform: translateY(-25%) rotate(135deg);
}

/* --------------------------------------------------------------- */
/* FV */
/* --------------------------------------------------------------- */

.ems-fv {
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-top: 20rem;
    background: linear-gradient(180deg, #e3fbef 0%, #f6fff9 100%);
    position: relative;
    overflow: hidden;

    .ems-fv-left {
        width: 71rem;
        color: #222;
        position: relative;
        right: -15rem;
        flex-shrink: 0;

        .ems-fv-title {
            display: block;
            font-family: "Noto Sans CJK JP", "Noto Sans JP", sans-serif;
            font-style: normal;
            font-weight: 500;
            font-size: 6rem;
            line-height: 8.4rem;
            leading-trim: both;
            text-edge: cap;
            letter-spacing: 0.07em;
            color: #0b0b0b;
            margin-bottom: 2rem;
        }

        .ems-fv-sub {
            display: block;
            font-family: "Noto Sans CJK JP", "Noto Sans JP", sans-serif;
            font-style: normal;
            font-weight: 400;
            font-size: 2rem;
            line-height: 9.6rem;
            leading-trim: both;
            text-edge: cap;
            letter-spacing: 0.08em;
            color: #0b0b0b;
            margin-bottom: 5rem;
        }

        .ems-fv-link-btn {
            position: relative;
            z-index: 1;
        }

        .ems-fv-btn {
            display: inline-block;
            background: #00aa66;
            box-shadow: 6px 6px 12px 2px rgba(122, 174, 146, 0.46);
            border-radius: 5rem;
            font-family: "Noto Sans CJK JP", "Noto Sans JP", sans-serif;
            font-style: normal;
            font-weight: 400;
            font-size: 2rem;
            line-height: 1.6;
            leading-trim: both;
            text-edge: cap;
            text-align: center;
            letter-spacing: 0.08em;
            color: #ffffff;
            padding: 1.8rem 5.5rem;
            text-decoration: none;
            transition: background 0.2s ease;
            position: relative;
            z-index: 9;

            &:hover {
                background: #5be075;
            }

            @media screen and (max-width: 767px) {
                align-items: flex-start;
                font-size: 1.4rem;
                padding: 0 4rem;
                border-radius: 3.4rem;
                display: flex;
                justify-content: center;
                width: 27rem;
                height: 5.6rem;
                align-items: center;
            }
        }
    }

    .ems-fv-right {
        flex: 65%;
        z-index: 1;
        position: relative;
        text-align: right;
        flex-shrink: 1;

        .ems-fv-img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            display: block;
        }
    }

    @media screen and (max-width: 767px) {
        flex-direction: column;
        text-align: center;
        gap: 1rem;
        padding: 5rem 0;

        .ems-fv-right {
            order: 0;
            text-align: center;
            width: 100%;

            .ems-fv-img {
                width: 100%;
                margin: 0 auto;
                transform: none;
            }
        }

        .ems-fv-left {
            padding: 0 2rem;
            order: 1;
            width: 100%;
            margin-right: 0;
            right: 0;

            .ems-fv-title {
                font-size: 2.7rem;
                margin-bottom: 2rem;
                text-align: left;
                line-height: 4rem;
            }

            .ems-fv-sub {
                line-height: 1.6;
                font-size: 1.6rem;
                text-align: left;
                margin-bottom: 2.4rem;
            }
        }
    }
}

/* .ems-fv {
    background: transparent;
    transition: background 0.3s ease;
    position: relative;
    z-index: 1;
}

.ems-fv.scrolled {
    background: rgba(255, 255, 255, 0.8);
} */

/* --------------------------------------------------------------- */
/* SECTION 1 */
/* --------------------------------------------------------------- */

.sec1-solar {
    width: 100%;
    background: #fff;
    position: relative;
    overflow: hidden;

    &::before,
    &::after {
        content: "";
        position: absolute;
        top: 0;
        width: 25%;
        height: 35%;
        background-image: url(../../img/ems/bubble-bg.svg);
        background-size: cover;
        background-repeat: no-repeat;
        background-position: center;
        z-index: 3;
        opacity: 0.5;
    }

    &::before {
        top: 45%;
        left: 0;
    }

    &::after {
        right: 0;
    }

    & .sec1-solar-inner {
        position: relative;
        z-index: 0;
        background: #5be075;
        border-top-left-radius: 5rem;
        border-top-right-radius: 5rem;
        display: flex;
        align-items: center;
        justify-content: space-between;
        width: 100%;
        margin: 0 auto;
        padding: 10.5rem 15rem;
        gap: 9.5rem;
        color: #fff;
    }

    & .sec1-solar-left {
        width: 48%;

        & .sec1-solar-title {
            display: block;
            font-family: "Noto Sans CJK JP", "Noto Sans JP", sans-serif;
            font-style: normal;
            font-weight: 500;
            font-size: 4.2rem;
            line-height: 6.8rem;
            leading-trim: both;
            text-edge: cap;
            letter-spacing: 0.07em;
            color: #ffffff;
            margin-bottom: 3rem;
        }

        & .sec1-solar-desc {
            font-family: "Noto Sans JP";
            font-style: normal;
            font-weight: 400;
            font-size: 1.8rem;
            line-height: 4rem;
            leading-trim: both;
            text-edge: cap;
            letter-spacing: 0.09em;
            color: #ffffff;
        }
    }

    & .sec1-solar-right {
        width: 48%;
    }

    @media screen and (max-width: 1024px) {
        & .sec1-solar-inner {
            flex-direction: column;
            text-align: center;
            gap: 5rem;
            padding: 8rem 4rem;
            border-top-left-radius: 5rem;
            border-top-right-radius: 5rem;
        }

        & .sec1-solar-left,
        & .sec1-solar-right {
            width: 100%;
        }

        & .sec1-solar-left {
            order: 1;
            & .sec1-solar-title {
                font-size: 2.6rem;
            }

            & .sec1-solar-desc {
                font-size: 1.5rem;
            }
        }

        & .sec1-solar-right {
            order: 0;
        }
    }

    @media screen and (max-width: 767px) {
        &::after {
            width: 85%;
        }

        & .sec1-solar-inner {
            padding: 7rem 2rem;
            padding-bottom: 8.5rem;
            border-top-left-radius: 5rem;
            border-top-right-radius: 5rem;
            gap: 4rem;
        }

        & .sec1-solar-left {
            & .sec1-solar-title {
                text-align: left;
                font-size: 2.55rem;
                line-height: 1.7;
                margin-bottom: 3.5rem;
            }

            & .sec1-solar-desc {
                font-size: 1.4rem;
                line-height: 1.8;
                text-align: left;
            }
        }
    }
}

/* --------------------------------------------------------------- */
/* SECTION 2 */
/* --------------------------------------------------------------- */

.sec2-about {
    padding-top: 19.5rem;
    width: 100%;
    background: #5be075;
    position: relative;
    overflow: hidden;

    &::before {
        content: "";
        position: absolute;
        inset: 0;
        background: #f2fdfa;
        border-top-left-radius: 5rem;
        border-top-right-radius: 5rem;
        z-index: 0;
    }

    &::after {
        content: "";
        position: absolute;
        top: 0%;
        right: 0;
        width: 25%;
        height: 101rem;
        background-image: url(../../img/ems/circle-bg.svg);
        background-size: cover;
        background-repeat: no-repeat;
        background-position: center;
        z-index: 0;
        opacity: 0.5;
    }

    .sec2-about-header,
    .sec2-mechanism-header {
        text-align: center;
        margin-bottom: 11rem;
        position: relative;
        z-index: 0;

        @media screen and (max-width: 768px) {
            margin-bottom: 4.5rem;
        }
    }

    .sec2-about-body {
        position: relative;
        z-index: 2;
    }

    .sec2-mechanism-header {
        margin-bottom: 4rem;

        @media screen and (max-width: 768px) {
            margin-bottom: 3rem;
        }
    }

    .common-section-block {
        padding-bottom: 11rem;

        .common-section-text {
            font-family: "Noto Sans JP";
            font-style: normal;
            font-weight: 400;
            font-size: 1.8rem;
            line-height: 4rem;
            leading-trim: both;
            text-edge: cap;
            letter-spacing: 0.09em;
            color: #0b0b0b;
            flex: none;
            order: 1;
            align-self: stretch;
            flex-grow: 0;
        }

        .pb115 {
            padding-bottom: 11.5rem;
        }

        .common-section-block-img-content {
            display: flex;
            flex-direction: column;

            .common-section-block-img-title {
                font-family: "Noto Sans CJK JP", "Noto Sans JP", sans-serif;
                font-style: normal;
                font-weight: 500;
                font-size: 2.8rem;
                line-height: 8.8rem;
                leading-trim: both;
                text-edge: cap;
                text-align: center;
                letter-spacing: 0.1em;
                color: #00aa66;
                padding-bottom: 0.5rem;

                @media screen and (max-width: 768px) {
                    font-size: 1.9rem;
                    line-height: 1.6;
                    padding-bottom: 0;
                }
            }

            .common-section-block-img {
                width: 85%;
                margin: auto;

                @media screen and (max-width: 768px) {
                    overflow-x: scroll;
                    white-space: nowrap;
                    width: 100%;

                    .about-future-table,
                    .benefit-img-01,
                    .benefit-img-02,
                    .mechanism-img {
                        width: 85rem;
                        max-width: none;
                        padding-bottom: 1.5rem;
                        box-shadow: 0px 4px 37px 2px rgba(49, 69, 44, 0.07);
                        /* box-shadow: 0px 2.5303px 23.4053px 1.26515px rgba(49, 69, 44, 0.07); */

                        &::after {
                            content: "←";
                            position: absolute;
                            right: 0;
                            bottom: 0;
                            z-index: 1;
                            margin-left: -1.5rem;
                            display: flex;
                            flex-wrap: wrap;
                            justify-content: center;
                            align-items: center;
                            width: 3rem;
                            height: 3rem;
                            border-radius: 1.5rem;
                            border: 0.1rem solid #000;
                            animation: arrowtable 2s infinite forwards;
                        }
                    }

                    .about-future-table {
                        padding-bottom: 0;
                    }
                }
            }

            .benefit-block-img,
            .efficient-block-img {
                padding-top: 0;
                display: flex;
                flex-direction: column;
                gap: 3.3rem;
            }

            .benefit-block-img {
                padding-top: 8rem;
            }

            .benefit-img,
            .efficient-img {
                border-radius: 3rem;
                box-shadow: 0px 4px 37px 2px rgba(49, 69, 44, 0.07);
            }

            @media screen and (max-width: 767px) {
                display: flex;
                flex-direction: column;
                gap: 2rem;

                .benefit-block-img {
                    padding-top: 1.5rem;
                }
            }
        }
    }

    #mechanism {
        .common-section-text {
            display: flex;
            justify-content: center;
            text-align: center;
            padding-bottom: 6rem;

            @media screen and (max-width: 767px) {
                text-align: left;
                padding-bottom: 4rem;
            }
        }
    }

    .mini-note {
        font-family: "Noto Sans CJK JP", "Noto Sans JP", sans-serif;
        font-style: normal;
        font-weight: 500;
        font-size: 1.4rem;
        leading-trim: both;
        text-edge: cap;
        text-align: right;
        letter-spacing: 0.09em;
        color: #373737;
        display: flex;
        justify-content: flex-end;
        position: relative;
        right: 4.5rem;
        line-height: 1.6;
        padding-top: 1rem;

        @media screen and (max-width: 767px) {
            font-size: 1.1rem;
            padding-top: 3rem;
            right: none;
            left: 0;
            text-align: left;
        }
    }

    .benefit-block-title {
        @media screen and (max-width: 767px) {
            font-family: "Noto Sans CJK JP", "Noto Sans JP", sans-serif;
            font-style: normal;
            font-weight: 500;
            font-size: 1.9rem;
            line-height: 3rem;
            leading-trim: both;
            text-edge: cap;
            text-align: center;
            letter-spacing: 0.1em;
            color: #0b0b0b;
            padding-top: 6rem;
        }
    }
    .benefit-second {
        padding-top: 2rem !important;
    }

    .benefit-third {
        padding-top: 0 !important;
    }

    @media screen and (max-width: 1024px) {
    }

    @media screen and (max-width: 767px) {
        padding-top: 7rem;

        & .common-section-block {
            padding-bottom: 5rem;
            .pb115 {
                padding-bottom: 5rem;
            }
        }

        & .common-section-block .common-section-text {
            font-size: 1.4rem;
            line-height: 1.8;
        }

        &::after {
            display: none;
        }
    }
}

.benefits-container {
    .common-section-block-img-content {
        gap: 3.3rem;

        & img {
            box-shadow: 0px 4px 37px 2px rgba(49, 69, 44, 0.07);
            border-radius: 3rem;
        }
    }
}

.last-after {
    position: relative;

    &::after {
        content: "";
        position: absolute;
        bottom: -45rem;
        right: 0;
        width: 25%;
        height: 101rem;
        background-image: url(../../img/ems/circle-bg.svg);
        background-size: cover;
        background-repeat: no-repeat;
        background-position: center;
        z-index: 0;
        opacity: 0.5;
    }

    @media screen and (max-width: 767px) {
        display: none;
    }
}

.common-section-block-img-sp {
    padding: 5.8rem 2rem;
    background: #ffffff;
    box-shadow: 0px 4px 37px 2px rgba(49, 69, 44, 0.07);
    border-radius: 3rem;
    display: flex;
    flex-direction: column;
    gap: 3rem;

    .efficient-img-01-sp {
        overflow-x: scroll;
        padding-bottom: 1rem;

        & img {
            width: 90rem;
            max-width: none;
        }
    }

    .efficient-img-01-sp-02 {
        & img {
            width: 100%;
        }
    }
}

/* --------------------------------------------------------------- */
/* MECHANISM */
/* --------------------------------------------------------------- */

.mechanism-img {
    box-shadow: 0px 4px 37px 2px rgba(49, 69, 44, 0.07);
    border-radius: 3rem;
}

/* --------------------------------------------------------------- */
/* GREEN */
/* --------------------------------------------------------------- */

.green-background-container {
    background-image: url("../../img/ems/ems-green-bg.png");
    background-size: cover;
    background-position: center;
    padding: 13rem 27.5rem;
    padding-top: 13rem;
    color: white;
    box-shadow: 0px 0px 29px rgba(0, 0, 0, 0.23);
    border-radius: 5rem;
    position: relative;
    width: 98%;
    margin: auto;

    @media screen and (max-width: 767px) {
        width: 100%;
        padding: 7rem 2rem;
        margin-bottom: 8rem;
    }
}

.green-content {
    text-align: center;
    margin: 0 auto;

    @media screen and (max-width: 767px) {
    }
}

.green-content-text {
    display: flex;
    flex-direction: column;

    @media screen and (max-width: 767px) {
    }
}

.green-section-title {
    display: block;
    margin-bottom: 4rem;
    font-family: "Noto Sans CJK JP", "Noto Sans JP", sans-serif;
    font-style: normal;
    font-weight: 500;
    font-size: 3.8rem;
    line-height: 8.8rem;
    leading-trim: both;
    text-edge: cap;
    text-align: center;
    letter-spacing: 0.08em;
    color: #ffffff;

    @media screen and (max-width: 767px) {
        font-size: 2.6rem;
        line-height: 1.6;
        margin-bottom: 3rem;
    }
}

.green-section-desc {
    font-family: "Noto Sans CJK JP", "Noto Sans JP", sans-serif;
    font-style: normal;
    font-weight: 500;
    font-size: 1.6rem;
    line-height: 3.2rem;
    leading-trim: both;
    text-edge: cap;
    text-align: center;
    letter-spacing: 0.09em;
    color: #ffffff;
    margin-bottom: 7rem;

    @media screen and (max-width: 767px) {
        font-family: "Noto Sans JP";
        font-style: normal;
        font-weight: 400;
        font-size: 1.4rem;
        line-height: 2.5rem;
        text-align: left;
        margin-bottom: 5rem;
    }
}

.service-items {
    display: flex;
    justify-content: space-between;
    gap: 2rem;
    flex-wrap: wrap;

    @media screen and (max-width: 767px) {
        flex-direction: column;
        gap: 4.5rem;
        flex-wrap: nowrap;
    }
}

.service-item {
    padding: 3rem 0;
    flex: 1 1 calc(33% - 1.5rem);
    text-align: center;
    color: white;

    @media screen and (max-width: 767px) {
        padding: 0;
    }
}

.service-icon {
    width: 80%;
    /* height: 14.6rem; */
    margin: auto;
    margin-bottom: 5.5rem;

    & img {
        height: 14.9rem;
    }

    @media screen and (max-width: 767px) {
        width: 25%;
        height: auto;
        margin-bottom: 3rem;

        & img {
            height: auto;
        }
    }
}

.co2-icon {
    @media screen and (max-width: 767px) {
        width: 30%;
    }
}

.ev-icon {
    @media screen and (max-width: 767px) {
        width: 10%;
    }
}

.service-title {
    display: block;
    font-family: "Noto Sans CJK JP", "Noto Sans JP", sans-serif;
    font-style: normal;
    font-weight: 500;
    font-size: 2.6rem;
    line-height: 3.2rem;
    leading-trim: both;
    text-edge: cap;
    text-align: center;
    letter-spacing: 0.09em;
    color: #ffffff;
    margin-bottom: 2.5rem;

    @media screen and (max-width: 767px) {
        font-size: 2.1rem;
        line-height: 2.6rem;
        margin-bottom: 1rem;
    }
}

.service-description {
    display: block;
    font-family: "Noto Sans CJK JP", "Noto Sans JP", sans-serif;
    font-style: normal;
    font-weight: 500;
    font-size: 1.8rem;
    line-height: 3.2rem;
    leading-trim: both;
    text-edge: cap;
    text-align: center;
    letter-spacing: 0.09em;
    color: #ffffff;
    opacity: 0.81;

    @media screen and (max-width: 767px) {
        font-size: 1.4rem;
        line-height: 2.6rem;
    }
}

/* --------------------------------------------------------------- */
/* GREEN */
/* --------------------------------------------------------------- */

.fs {
    @media screen and (max-width: 767px) {
        margin-bottom: 2.5rem !important;
    }
}

.fs41 {
    font-size: 4.1rem;

    @media screen and (max-width: 767px) {
        font-size: 2.4rem;
    }
}

/* --------------------------------------------------------------- */
/* FLOW */
/* --------------------------------------------------------------- */

.ems-flow {
}

.ems-flow-title {
    display: flex;
    gap: 1rem;
    align-items: center;
    padding-bottom: 5rem;
    padding-top: 3.5rem;

    @media screen and (max-width: 767px) {
        margin-top: 3rem;
        padding-top: 0;
        padding-bottom: 3rem;
    }
}

.ems-flow-jp-title {
    font-family: "Noto Sans CJK JP", "Noto Sans JP", sans-serif;
    font-style: normal;
    font-weight: 500;
    font-size: 2.6rem;
    line-height: 8.8rem;
    leading-trim: both;
    text-edge: cap;
    letter-spacing: 0.1em;
    color: #0b0b0b;

    @media screen and (max-width: 767px) {
        font-size: 2rem;
        line-height: 1.6;
    }
}

.ems-block {
    padding-top: 14rem;
    padding-bottom: 8rem !important;

    @media screen and (max-width: 767px) {
        padding-bottom: 0 !important;
        padding-top: 1rem;
    }
}

.ems-flow-img {
    @media screen and (max-width: 767px) {
        width: 100%;
        display: flex;
        margin: auto;
    }
}

/* --------------------------------------------------------------- */
/* LINEUP */
/* --------------------------------------------------------------- */

.sec2-lineup {
    background: #f2fdfa;
    position: relative;
    /* padding-top: 3rem; */

    @media screen and (max-width: 767px) {
        padding-top: 6rem;
    }
}

.sec2-lineup-header {
    display: flex;
    flex-direction: column;
    align-items: center;
    position: relative;
    padding-bottom: 4rem;
    /* top: 13rem; */

    @media screen and (max-width: 767px) {
        padding-bottom: 3rem;
        /* top: 3rem; */
    }
}

.sec2-eng-title {
    font-family: "Jost";
    font-style: normal;
    font-weight: 500;
    font-size: 3.6rem;
    line-height: 4rem;
    leading-trim: both;
    text-edge: cap;
    text-align: center;
    letter-spacing: 0.07em;
    color: #5be075;

    @media screen and (max-width: 768px) {
        font-size: 1.8rem;
        line-height: 1.8;
        padding-bottom: 0;
    }
}

.sec2-jp-title {
    font-family: "Noto Sans CJK JP", "Noto Sans JP", sans-serif;
    font-style: normal;
    font-weight: 500;
    font-size: 5.1rem;
    line-height: 8.8rem;
    leading-trim: both;
    text-edge: cap;
    text-align: center;
    letter-spacing: 0.08em;
    color: #0b0b0b;

    @media screen and (max-width: 768px) {
        font-size: 2.4rem;
        line-height: 1.6;
    }
}

.sec2-lineup-img {
    width: 100%;
    height: auto;

    & img {
        width: 100%;
        object-fit: cover;
        background-repeat: no-repeat;
    }

    @media screen and (max-width: 768px) {
        padding-bottom: 2rem;
    }
}

.sec2-lineup-table {
    @media screen and (max-width: 768px) {
        width: 100%;
        overflow-x: scroll;

        & img {
            width: 90rem;
            max-width: none;
        }
    }
}

.sec2-lineup-note {
    font-family: "Noto Sans CJK JP", "Noto Sans JP", sans-serif;
    font-style: normal;
    font-weight: 500;
    font-size: 1.6rem;
    line-height: 3.2rem;
    leading-trim: both;
    text-edge: cap;
    letter-spacing: 0.09em;
    color: #000000;
    display: flex;
    justify-content: center;
    padding-bottom: 5rem;

    @media screen and (max-width: 768px) {
        font-size: 1.4rem;
        line-height: 1.6;
        font-weight: 400;
        padding-bottom: 3rem;
    }
}

/* --------------------------------------------------------------- */
/* SUPPORT */
/* --------------------------------------------------------------- */

.sec2-support-container {
    padding-top: 6rem;
    /* padding-bottom: 5rem; */
    background: #f2fdfa;

    @media screen and (max-width: 768px) {
    }
}

.sec2-support {
    width: 100%;
    display: flex;
    gap: 1rem;
    align-items: center;
    height: 66rem;

    @media screen and (max-width: 768px) {
        flex-direction: column;
        padding-top: 3rem;
        padding-bottom: 2rem;
        height: auto;
    }
}

.sec2-support-left {
    width: 49%;
    display: flex;
    flex-direction: column;
    justify-content: center;

    @media screen and (max-width: 768px) {
        width: 100%;
        order: 1;
        padding-bottom: 7rem;
    }
}

.sec2-support-left-title {
    font-family: "Noto Sans CJK JP", "Noto Sans JP", sans-serif;
    font-style: normal;
    font-weight: 500;
    font-size: 3.7rem;
    line-height: 6.2rem;
    leading-trim: both;
    text-edge: cap;
    letter-spacing: 0.08em;
    color: #0b0b0b;
    padding-bottom: 5rem;

    & span {
        background-color: #5be075;
        color: #ffffff;
        display: inline-flex;
        align-items: center;
        height: 4.5rem;
    }

    @media screen and (max-width: 768px) {
        font-size: 2.5rem;
        line-height: 4rem;
        padding-bottom: 3rem;
    }
}

.sec2-support-left-desc {
    font-family: "Noto Sans CJK JP", "Noto Sans JP", sans-serif;
    font-style: normal;
    font-weight: 500;
    font-size: 1.6rem;
    line-height: 3.2rem;
    leading-trim: both;
    text-edge: cap;
    letter-spacing: 0.09em;
    color: #000000;

    @media screen and (max-width: 768px) {
        font-size: 1.4rem;
    }
}

.sec2-support-right {
    width: 53%;
    height: 100%;
    background: url("../../img/ems/support-bg.png");
    background-position: center;
    background-repeat: no-repeat;
    background-size: 115% 127%;

    & img {
        /* width: 42rem; */
        height: 43.9rem;
        display: flex;
        margin: auto;
        justify-content: center;
        position: relative;
        top: 10rem;
    }

    @media screen and (max-width: 768px) {
        width: 100%;
        order: 0;
        background-size: 131.2% 141%;

        & img {
            width: 70%;
            height: auto;
            top: auto;
            padding-bottom: 2rem;
        }
    }
}

/* --------------------------------------------------------------- */
/* FOOTER */
/* --------------------------------------------------------------- */

#ems-footer {
    background: #f2fdfa;
    position: relative;
    padding-top: 10rem;
    color: white;
    overflow: hidden;

    &::before {
        content: "";
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        border-top-left-radius: 5rem;
        border-top-right-radius: 5rem;
        background-image: url("../../img/ems/ems-footer.png");
        background-size: cover;
        background-position: center;
        opacity: 1;
        z-index: 0;
    }

    @media screen and (max-width: 768px) {
        padding-bottom: 5rem;
        padding-top: 8rem;

        &::before {
            background-image: url("../../img/ems/ems-footer-sp.png");
        }
    }
}

.ems-footer-content {
    @media screen and (max-width: 768px) {
    }
}

.ems-footer-title {
    display: flex;
    gap: 2rem;
    align-items: flex-end;
    padding-bottom: 5rem;

    @media screen and (max-width: 768px) {
        padding-bottom: 4.2rem;
        padding-left: 1rem;
        flex-direction: column;
        align-items: flex-start;
        gap: 1.5rem;
    }
}

.ems-footer-jp-title {
    font-family: "Noto Sans CJK JP", "Noto Sans JP", sans-serif;
    font-style: normal;
    font-weight: 500;
    font-size: 4.3rem;
    leading-trim: both;
    text-edge: cap;
    text-align: center;
    letter-spacing: 0.08em;
    color: #ffffff;

    @media screen and (max-width: 768px) {
        font-size: 3rem;
        order: 1;
    }
}

.ems-footer-eng-title {
    font-family: "Jost";
    font-style: normal;
    font-weight: 500;
    font-size: 2rem;
    leading-trim: both;
    text-edge: cap;
    letter-spacing: 0.07em;
    color: #ffffff;

    @media screen and (max-width: 768px) {
        order: 0;
        font-size: 1.8rem;
    }
}

.contact-label {
    width: 100%;
    background: #f2f8fb;
    box-shadow: 0px 4px 31px rgba(196, 215, 224, 0.31);
    border-radius: 2rem;
    height: 18.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    margin-bottom: 5rem;

    &::after {
        content: "";
        position: absolute;
        left: 50%;
        width: 2px;
        height: 50%;
        background-color: #d1d1d1;
        transform: translateX(-50%);
        display: flex;
        align-items: center;
        justify-content: center;
    }

    @media screen and (max-width: 767px) {
    }
}

.contact-label-left {
    width: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 2.5rem;
    text-decoration: none;

    @media screen and (max-width: 767px) {
    }
}

.contact-label-left-desc {
    font-family: "Noto Sans CJK JP", "Noto Sans JP", sans-serif;
    font-style: normal;
    font-weight: 500;
    font-size: 2rem;
    line-height: 3.2rem;
    leading-trim: both;
    text-edge: cap;
    letter-spacing: 0.09em;
    color: #000000;

    @media screen and (max-width: 767px) {
        font-size: 1.4rem;
    }
}

.contact-label-right {
    width: 50%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;

    @media screen and (max-width: 767px) {
    }
}

.contact-label-right-phone {
    font-family: "Roboto";
    font-style: normal;
    font-weight: 500;
    font-size: 2.4rem;
    line-height: 3.5rem;
    letter-spacing: 0.06em;
    color: #5be075;

    & span {
        font-size: 4.27rem;
    }
    @media screen and (max-width: 767px) {
        font-size: 1.9rem;
        text-align: center;

        & span {
            font-size: 3rem;
        }
    }
}

.contact-label-right-time {
    font-family: "Noto Sans CJK JP", "Noto Sans JP", sans-serif;
    font-style: normal;
    font-weight: 500;
    font-size: 1.6rem;
    line-height: 3.5rem;
    leading-trim: both;
    text-edge: cap;
    text-align: center;
    letter-spacing: 0.09em;
    color: #848484;

    @media screen and (max-width: 767px) {
    }
}

.contact-label-sp {
    display: none;

    @media screen and (max-width: 767px) {
        display: flex;
        flex-direction: column;
        gap: 1.5rem;
        position: relative;

        .contact-label-mail {
            width: 100%;
            height: 10rem;
            background: #f2f8fb;
            box-shadow: 0px 4px 31px rgba(196, 215, 224, 0.31);
            border-radius: 1.4rem;
            padding: 2.6rem 3rem;
            display: flex;
            gap: 1.3rem;
            align-items: center;

            & img {
                width: 20%;
            }
        }

        .contact-label-phone {
            width: 100%;
            height: 10rem;
            background: #f2f8fb;
            box-shadow: 0px 4px 31px rgba(196, 215, 224, 0.31);
            border-radius: 1.4rem;
            padding: 2.6rem 3rem;
            display: flex;
            gap: 0;
            align-items: center;
            justify-content: center;
        }

        .contact-label-right-time {
            font-size: 1.2rem;
            line-height: 1.2;
        }
    }
}

.ems-footer-bottom {
    text-align: center;

    @media screen and (max-width: 768px) {
    }
}

.ems-footer-copyright {
    font-family: "Jost";
    font-style: normal;
    font-weight: 500;
    font-size: 1.4rem;
    line-height: 9.6rem;
    leading-trim: both;
    text-edge: cap;
    letter-spacing: 0.07em;
    color: #ffffff;

    @media screen and (max-width: 768px) {
    }
}
