@charset "UTF-8";




.flag {
    overflow: hidden;
    transform: translateX(-100%);
    transition: transform 3s cubic-bezier(0.215, 0.61, 0.355, 1);
}

.flag .en,
.flag .jp {
    display: block;
    transition: transform 3s cubic-bezier(0.215, 0.61, 0.355, 1);
}

/* Mirror movement */
.flag .en {
    transform: translateX(100%);
}

.flag .jp {
    transform: translateX(100%);
}

/* Animate in when visible */
.flag.-visible {
    transform: translateX(0);
}

.flag.-visible .en,
.flag.-visible .jp {
    transform: translateX(0);
}

.flag2 {
    overflow: hidden;
    transform: translateX(-100%);
    transition: transform 1s cubic-bezier(0.215, 0.61, 0.355, 1);
}

.flag2 .en,
.flag2 .jp {
    display: block;
    transition: transform 1s cubic-bezier(0.215, 0.61, 0.355, 1);
}

.main-caption {
    font-family: var(--zenkaku);
    font-style: normal;
    font-weight: 700;
    font-size: 5.6rem;
    line-height: 1.4;
    letter-spacing: 0.1em;
    color: #212121;
    margin-bottom: 4.1rem;
    @media screen and (max-width: 767px) {
        font-size: 3.2rem;
        line-height: 133%;
        margin-bottom: 2rem;
    }
}

.sub-cation {
    font-family: var(--zenkaku);
    font-style: normal;
    font-weight: 400;
    font-size: 1.8rem;
    line-height: 3.3rem;
    letter-spacing: 0.06em;
    color: #000000;
    margin-bottom: 6.4rem;
    @media screen and (max-width: 767px) {
        font-size: 1.6rem;
        line-height: 3rem;
        margin-bottom: 3.8rem;
    }
}

.first-background-block {
    width: 100%;
    background-color: #fff7ea;
    padding-top: 17.8rem;
    @media screen and (max-width: 767px) {
        padding-top: 6.3rem;
    }
}

/* main-banner */

#main-banner {
    width: 100%;
    position: relative;
    &:before {
        content: "";
        position: absolute;
        width: 88.6rem;
        height: 90rem;
        top: -17.8rem;
        right: 0;
        background: url("../img/top/donut-bg.svg") no-repeat top center / 100% auto;
        z-index: 0;
        @media screen and (max-width: 767px) {
            width: 34.8rem;
            height: 35.2rem;
            top: -6.3rem;
        }
    }
    &:after {
        content: "";
        position: absolute;
        width: 97%;
        height: 120rem;
        background: url("../img/top/main-banner-bg.svg") no-repeat center / 100% auto;
        top: -36rem;
        left: -2rem;
        z-index: 8;
        @media screen and (max-width: 767px) {
            background: url("../img/top/main-banner-bg-sp.svg") no-repeat center / 100% auto;
            top: 0;
            left: 1.5rem;
            width: 34.2rem;
            height: 45rem;
        }
    }
    .banner-img-container {
        position: relative;
        width: 100%;
        height: 72.1rem;
        @media screen and (max-width: 767px) {
            height: 60.2rem;
        }
        .banner-img1 {
            width: 73.3rem;
            position: absolute;
            left: 0;
            top: 0;
            z-index: 99;
            @media screen and (max-width: 767px) {
                width: 29.9rem;
                top: 10.3rem;
                left: 2.4rem;
            }
            &:before {
                content: "";
                position: absolute;
                z-index: -1;
                top: 6rem;
                right: 6rem;
                width: 100%;
                height: 100%;
                background: url("../img/top/main-banner-bg01.png") no-repeat center / 100% auto;
                opacity: 0.6;
                @media screen and (max-width: 767px) {
                    top: 2rem;
                    right: 2rem;
                }
            }
            & img {
                width: 100%;
                vertical-align: top;
            }
        }

        .banner-img2 {
            width: 48.5rem;
            position: absolute;
            right: 27.5rem;
            top: 26.8rem;
            z-index: 2;
            @media screen and (max-width: 767px) {
                right: unset;
                left: 0;
                top: 32.6rem;
                width: 20.657rem;
            }
            &:before {
                content: "";
                position: absolute;
                z-index: -1;
                top: 6rem;
                left: 6rem;
                width: 100%;
                height: 100%;
                background: url("../img/top/main-banner-bg01.png") no-repeat center / 100% auto;
                opacity: 0.6;
                @media screen and (max-width: 767px) {
                    top: 2rem;
                    left: 2rem;
                }
            }
            & img {
                width: 100%;
                vertical-align: top;
            }
        }
        .banner-img3 {
            width: 39.5rem;
            position: absolute;
            right: 0;
            top: 4rem;
            @media screen and (max-width: 767px) {
                width: 17.35rem;
                top: 0;
            }
            &:before {
                content: "";
                position: absolute;
                z-index: -1;
                top: 6rem;
                left: 6rem;
                width: 100%;
                height: 100%;
                background: url("../img/top/main-banner-bg01.png") no-repeat center / 100% auto;
                opacity: 0.6;
                @media screen and (max-width: 767px) {
                    top: 1rem;
                    right: 1rem;
                }
            }
            & img {
                width: 100%;
                vertical-align: top;
            }
        }
        .banner-text {
            position: absolute;
            bottom: 0;
            left: 0;
            @media screen and (max-width: 767px) {
                left: 50%;
                transform: translateX(-50%);
            }
            .banner-title-jp {
                font-family: var(--zenkaku);
                font-style: normal;
                font-weight: 700;
                font-size: 5.29647rem;
                line-height: 1;
                letter-spacing: 0.12em;
                color: #212121;
                text-align: center;
                margin-bottom: 2rem;
                position: relative;
                @media screen and (max-width: 767px) {
                    font-size: 3.4rem;
                    line-height: 118%;
                    width: 24rem;
                    margin-bottom: 0.8rem;
                }
                &:before {
                    content: "";
                    position: absolute;
                    top: -3rem;
                    left: -7rem;
                    width: 4rem;
                    height: 9rem;
                    background: url("../common/img/quotes01.png") no-repeat center / 100% auto;
                    @media screen and (max-width: 767px) {
                        width: 2.5rem;
                        left: -3rem;
                    }
                }
                &:after {
                    content: "";
                    position: absolute;
                    top: -3rem;
                    right: -6rem;
                    width: 4rem;
                    height: 9rem;
                    background: url("../common/img/quotes02.png") no-repeat center / 100% auto;
                    @media screen and (max-width: 767px) {
                        width: 2.5rem;
                        right: -2.5rem;
                    }
                }
            }
            .banner-title-en {
                font-family: var(--lato);
                font-style: normal;
                font-weight: 700;
                font-size: 1.8rem;
                line-height: 2.2rem;
                text-align: center;
                letter-spacing: 0.04em;
                color: #212121;
                @media screen and (max-width: 767px) {
                    font-size: 1.4rem;
                    height: auto;
                }
            }
        }
    }
    .scroll-animation {
        display: flex;
        gap: 1rem;
        position: absolute;
        right: 2.4rem;
        bottom: -8rem;
        @media screen and (max-width: 767px) {
            display: none;
        }
        .scroll-text {
            font-family: var(--lato);
            font-style: normal;
            font-weight: 800;
            font-size: 15px;
            line-height: 18px;
            text-align: right;
            letter-spacing: 0.04em;
            color: #212121;
        }
        .scroll-bar {
            position: relative;
            width: 5px;
            height: 18.6rem;
            background-color: #ddd;
            overflow: hidden;
            border-radius: 4px;
            &:before {
                content: "";
                position: absolute;
                top: 0;
                left: 0;
                width: 100%;
                height: 30%;
                border-radius: 4px;
                background-color: orange;
                animation: fillDown 2.5s ease-in-out infinite;
            }
        }
    }
}

/* scroll-animation */

@keyframes fillDown {
    0% {
        height: 30%;
    }
    50% {
        height: 100%;
    }
    100% {
        height: 30%;
    }
}

/* block2 */

#block2 {
    padding-top: 16rem;
    width: 100%;
    padding-bottom: 15.3rem;
    position: relative;
    &:before {
        content: "";
        position: absolute;
        width: 100%;
        height: 100%;
        top: -33rem;
        left: 50%;
        transform: translateX(-50%);
        background: url("../img/top/block2-bg.svg") no-repeat top center / 100% auto;
        z-index: 0;
        @media screen and (max-width: 767px) {
            top: 50rem;
            width: 75%;
            height: 44rem;
            left: 0;
            transform: unset;
            background: url("../img/top/block2-bg-sp.svg") no-repeat top center / 100% auto;
        }
    }

    @media screen and (max-width: 767px) {
        padding-top: 5rem;
        padding-bottom: 5rem;
    }
    .content-flex {
        display: flex;
        justify-content: space-between;
        margin-bottom: 20.7rem;
        @media screen and (max-width: 767px) {
            flex-direction: column;
            margin-bottom: 5rem;
            padding: 0 2.4rem;
            box-sizing: border-box;
        }
        .img-container {
            padding-top: 2rem;
            width: 57.1rem;
            @media screen and (max-width: 767px) {
                overflow: hidden;
                width: 118%;
                padding-top: 0;
                margin-left: -1rem;
            }
            & img {
                width: 100%;
                vertical-align: top;
            }
        }
        .text-block {
            width: 52rem;
            @media screen and (max-width: 767px) {
                width: 100%;
                margin-top: -1rem;
            }
            & p {
                font-family: var(--zenkaku);
                font-style: normal;
                font-weight: 500;
                font-size: 2rem;
                line-height: 6.6rem;
                letter-spacing: 0.04em;
                color: #212121;
                @media screen and (max-width: 767px) {
                    font-size: 1.8rem;
                    line-height: 200%;
                }
                .orange-text {
                    color: #f08300;
                }
            }
        }
    }
    #site-steps {
        width: 100%;
        .site-steps-link {
            display: flex;
            width: 100%;
            height: 47.6rem;
            align-items: center;
            border-radius: 24.3rem;
            background-color: #fff;
            overflow: hidden;
            position: relative;
            box-shadow: 0px 0px 14.6px rgba(162, 159, 156, 0.2);
            transition: all 0.3s ease-in;
            @media screen and (max-width: 767px) {
                height: auto;
                flex-direction: column;
                border-radius: 16.6rem;
                max-width: 33.5rem;
            }
            &:hover {
                box-shadow: 0px 0px 20px rgba(240, 131, 0, 0.5);
                opacity: 0.85;
            }
            &:after {
                content: "";
                position: absolute;
                width: 7rem;
                height: 7rem;
                background: url("../common/img/orange-arrow.svg") no-repeat center center / 100% auto;
                right: 9.7rem;
                top: 50%;
                transform: translateY(-50%);
                @media screen and (max-width: 767px) {
                    width: 4.2rem;
                    height: 4.2rem;
                    right: unset;
                    left: 50%;
                    top: unset;
                    transform: translateX(-50%);
                    bottom: 4.8rem;
                }
            }
            .link-img {
                background-color: #ffe6bd;
                width: 76.3rem;
                height: 76.3rem;
                border-radius: 76.3rem;
                display: flex;
                justify-content: center;
                align-items: center;
                @media screen and (max-width: 767px) {
                    width: 33.5rem;
                    height: 33.5rem;
                    border-radius: 0 0 33.5rem 33.5rem;
                }
                & img {
                    width: 43.6rem;
                    vertical-align: top;
                    @media screen and (max-width: 767px) {
                        width: 22.2rem;
                    }
                }
            }
            .text-block {
                flex: 1;
                padding-left: 8.8rem;
                padding-right: 21.6rem;
                box-sizing: border-box;
                @media screen and (max-width: 767px) {
                    padding: 2.5rem 3.2rem 12rem;
                }
                .link-title {
                    font-family: var(--lato);
                    font-style: normal;
                    font-weight: 700;
                    font-size: 6.39245rem;
                    line-height: 7.7rem;
                    text-align: center;
                    letter-spacing: 0.04em;
                    color: #5e4939;
                    display: flex;
                    align-items: center;
                    margin-bottom: 3rem;
                    @media screen and (max-width: 767px) {
                        font-size: 3.8rem;
                        line-height: 1.2;
                        flex-direction: column;
                        align-items: flex-start;
                        margin-bottom: 1.2rem;
                    }
                    & span {
                        font-family: var(--zenkaku);
                        font-style: normal;
                        font-weight: 500;
                        font-size: 2.20566rem;
                        line-height: 4rem;
                        letter-spacing: 0.04em;
                        color: #f08300;
                        padding-left: 2.6rem;
                        @media screen and (max-width: 767px) {
                            padding-left: 0;
                            font-size: 1.4rem;
                            line-height: 2.4rem;
                        }
                    }
                }
                .bold-text {
                    font-family: var(--zenkaku);
                    font-style: normal;
                    font-weight: 700;
                    font-size: 2.1rem;
                    line-height: 3.7rem;
                    letter-spacing: 0.04em;
                    color: #5e4939;
                    margin-bottom: 2rem;
                    @media screen and (max-width: 767px) {
                        font-size: 1.6rem;
                        line-height: 140%;
                        margin-bottom: 1.5rem;
                        letter-spacing: 0.03em;
                    }
                }
                .reg-text {
                    font-family: var(--zenkaku);
                    font-style: normal;
                    font-weight: 500;
                    font-size: 1.8rem;
                    line-height: 3.4rem;
                    letter-spacing: -0.01em;
                    color: #5e4939;
                    @media screen and (max-width: 767px) {
                        font-size: 1.4rem;
                        line-height: 170%;
                    }
                }
            }
        }
    }
}

#reasons {
    width: 100%;
    background-color: #ffefd5;
    padding-top: 10rem;
    padding-bottom: 11rem;
    position: relative;
    &:before {
        content: "";
        position: absolute;
        background: url("../img/top/reasons-bg.svg") no-repeat center center / 100% auto;
        width: 169rem;
        height: 100%;
        left: 50%;
        top: 50%;
        transform: translate(-50%, -50%);
        z-index: 0;
    }
    @media screen and (max-width: 767px) {
        padding-top: 5rem;
        padding-bottom: 5rem;
    }
    .contents-flex {
        display: flex;
        justify-content: space-between;
        gap: 8rem;
        @media screen and (max-width: 767px) {
            flex-direction: column;
            gap: 2rem;
        }
        .reasons-img {
            width: 53rem;
            @media screen and (max-width: 767px) {
                width: 102%;
                padding-left: 1.8rem;
                overflow: hidden;
            }
            & img {
                width: 100%;
                vertical-align: top;
            }
        }
        .link-bars {
            flex: 1;
            @media screen and (max-width: 767px) {
                margin-top: -1rem;
            }
            & li {
                width: 100%;
                margin-bottom: 2rem;
                & a {
                    background-color: #fff;
                    width: 100%;
                    border-radius: 1rem;
                    padding: 4.7rem 10rem 4.3rem 6.1rem;
                    box-sizing: border-box;
                    position: relative;
                    transition: all 0.3s ease-in;
                    border: 2px transparent solid;
                    @media screen and (max-width: 767px) {
                        padding: 2.7rem 2.5rem 4.7rem;
                    }
                    &:hover {
                        border: 2px #f08300 solid;
                        opacity: 0.85;
                        .link-header {
                            color: #f68300 !important;
                        }
                    }
                    &:after {
                        content: "";
                        position: absolute;
                        width: 4.13rem;
                        height: 4.13rem;
                        border-radius: 4.13rem;
                        background: url("../common/img/orange-arrow.svg") no-repeat center center / 100% auto;
                        right: 4.4rem;
                        top: 50%;
                        transform: translateY(-50%);
                        @media screen and (max-width: 767px) {
                            right: 1.4rem;
                            bottom: 0;
                            top: unset;
                            width: 2.6rem;
                            height: 2.6rem;
                            border-radius: 2.6rem;
                        }
                    }
                    .link-header {
                        font-family: var(--zenkaku);
                        font-style: normal;
                        font-weight: 700;
                        font-size: 2.4rem;
                        line-height: 3.5rem;
                        letter-spacing: 0.1em;
                        color: #212121;
                        margin-bottom: 1.9rem;
                        transition: all 0.3s ease-in;
                        @media screen and (max-width: 767px) {
                            font-size: 1.8rem;
                            line-height: 1.4;
                            margin-bottom: 1.3rem;
                            letter-spacing: 0;
                        }
                    }
                    .link-description {
                        font-family: var(--zenkaku);
                        font-style: normal;
                        font-weight: 400;
                        font-size: 1.8rem;
                        line-height: 2.8rem;
                        letter-spacing: -0.01em;
                        color: #212121;
                        @media screen and (max-width: 767px) {
                            font-size: 1.4rem;
                            line-height: 138%;
                        }
                    }
                }
            }
        }
    }
}

#about {
    width: 100%;
    padding-top: 10rem;
    padding-bottom: 13.1rem;
    background-color: #fff7ea;
    position: relative;
    &:before {
        content: "";
        position: absolute;
        width: 93%;
        height: 130rem;
        bottom: 34.9rem;
        left: 3rem;
        background: url("../img/top/about-bg.svg") no-repeat top center / 100% auto;
        z-index: 0;
        @media screen and (max-width: 767px) {
            display: none;
        }
    }
    @media screen and (max-width: 767px) {
        padding-top: 5rem;
        padding-bottom: 5rem;
    }
    .link-flex {
        display: flex;
        justify-content: space-between;
        @media screen and (max-width: 767px) {
            flex-direction: column;
            gap: 0;
        }
        .link-card {
            width: 70rem;
            border-radius: 1rem;
            background-color: #fff;
            overflow: hidden;
            transition: all 0.3s ease-in;
            border: 2px transparent solid;
            @media screen and (max-width: 767px) {
                width: 100%;
            }
            &:hover {
                border: 2px #f08300 solid;
                opacity: 0.85;
                .link-header {
                    color: #f68300 !important;
                }
            }
            .link-header {
                position: relative;
                width: 100%;
                height: 11rem;
                padding: 3.8rem 8rem 3.2rem 3.8rem;
                box-sizing: border-box;
                font-family: var(--zenkaku);
                font-style: normal;
                font-weight: 700;
                font-size: 2.6rem;
                line-height: 3.8rem;
                letter-spacing: 0.1em;
                color: #212121;
                transition: all 0.3s ease-in;
                @media screen and (max-width: 767px) {
                    height: auto;
                    padding: 2.4rem 2rem;
                    font-size: 1.8rem;
                    line-height: 3rem;
                }
                &:after {
                    content: "";
                    position: absolute;
                    width: 4.13rem;
                    height: 4.13rem;
                    border-radius: 4.13rem;
                    background: url("../common/img/orange-arrow.svg") no-repeat center center / 100% auto;
                    right: 3rem;
                    top: 50%;
                    transform: translateY(-50%);
                    @media screen and (max-width: 767px) {
                        width: 2.6rem;
                        height: 2.6rem;
                        border-radius: 2.6rem;
                        right: 1.7rem;
                    }
                }
            }
            .link-contents {
                width: 100%;
                & img {
                    width: 100%;
                    vertical-align: top;
                }
            }
        }
    }
    #about-company {
        padding-top: 13rem;
        @media screen and (max-width: 767px) {
            padding-top: 5rem;
        }
        .link-card {
            background-color: #fff;
            border-radius: 1rem;
            display: flex;
            align-items: center;
            margin-bottom: 3rem;
            transition: all 0.3s ease-in;
            position: relative;
            @media screen and (max-width: 767px) {
                flex-direction: column;
                margin-bottom: 1rem;
            }
            &:after {
                content: "";
                position: absolute;
                background: url("../common/img/orange-arrow.svg") no-repeat center center / 100% auto;
                width: 4.13rem;
                height: 4.13rem;
                border-radius: 4.13rem;
                right: 4rem;
                top: 50%;
                transform: translateY(-50%);
                border: 2px transparent solid;
                transition: all 0.3s ease-in;
                @media screen and (max-width: 767px) {
                    width: 2.6rem;
                    height: 2.6rem;
                    border-radius: 2.6rem;
                    top: unset;
                    bottom: 0;
                    right: 1.4rem;
                }
            }
            &:hover {
                border: 2px #f08300 solid;
                opacity: 0.85;
                .header,
                .link-heading {
                    color: #f68300 !important;
                }
            }
        }
        .link-card.full-width {
            width: 100%;
            padding: 4rem 16.5rem 4rem 5.1rem;
            box-sizing: border-box;
            gap: 6.7rem;
            border: 2px transparent solid;
            &:hover {
                border: 2px #f08300 solid;
                opacity: 0.85;
                .header {
                    color: #f68300 !important;
                }
            }
            @media screen and (max-width: 767px) {
                padding: 2rem 2rem 4.6rem;
                gap: 1rem;
            }
            .link-img {
                width: 47rem;
                background-color: #f3f3f3;
                border-radius: 1rem;
                @media screen and (max-width: 767px) {
                    width: 100%;
                }
                & img {
                    width: 100%;
                    vertical-align: top;
                }
            }
            .text-block {
                flex: 1;
                @media screen and (max-width: 767px) {
                    padding-right: 2.5rem;
                    box-sizing: border-box;
                    @media screen and (max-width: 767px) {
                        padding-right: 0;
                    }
                }
                .header {
                    margin-bottom: 4rem;
                    @media screen and (max-width: 767px) {
                        margin-bottom: 1rem;
                    }
                    .link-heading {
                        font-family: var(--zenkaku);
                        font-style: normal;
                        font-weight: 700;
                        font-size: 3.5rem;
                        line-height: 5.1rem;
                        letter-spacing: 0.1em;
                        color: #212121;
                        transition: all 0.3s ease-in;
                        @media screen and (max-width: 767px) {
                            font-size: 1.8rem;
                            line-height: 3.2rem;
                        }
                    }
                    .orange-sub-heading {
                        font-family: var(--zenkaku);
                        font-style: normal;
                        font-weight: 500;
                        font-size: 1.8rem;
                        line-height: 3.3rem;
                        letter-spacing: 0.04em;
                        color: #f08300;
                        @media screen and (max-width: 767px) {
                            font-size: 1.4rem;
                            line-height: 2.8rem;
                        }
                    }
                }
                .plain-text {
                    font-family: var(--zenkaku);
                    font-style: normal;
                    font-weight: 400;
                    font-size: 1.8rem;
                    line-height: 2.8rem;
                    letter-spacing: -0.01em;
                    color: #212121;
                    @media screen and (max-width: 767px) {
                        font-size: 1.4rem;
                        line-height: 138%;
                    }
                }
            }
        }
        .link-card.half-width {
            width: 70.5rem;
            height: 17.1rem;
            padding: 4.3rem 6rem 4.3rem 5.7rem;
            box-sizing: border-box;
            gap: 4rem;
            @media screen and (max-width: 767px) {
                padding: 2rem;
                width: 100%;
                height: 9.3rem;
                gap: 1.7rem;
                flex-direction: row;
            }
            &:after {
                @media screen and (max-width: 767px) {
                    top: 50%;
                    transform: translateY(-50%);
                    bottom: unset;
                }
            }
            .vector-img {
                width: 9.8rem;
                @media screen and (max-width: 767px) {
                    width: 5.8rem;
                }
                & img {
                    width: 100%;
                    vertical-align: top;
                }
            }
            .header {
                font-family: var(--zenkaku);
                font-style: normal;
                font-weight: 700;
                font-size: 2.6rem;
                line-height: 3.9rem;
                letter-spacing: 0.1em;
                color: #212121;
                transition: all 0.3s ease-in;
                @media screen and (max-width: 767px) {
                    font-size: 1.8rem;
                    line-height: 130%;
                }
            }
        }
    }
    .link-card1,
    .link-card2 {
        border: none !important;
        &:hover {
            opacity: 0.75;
            border: none !important;
            box-shadow: 0 0.4rem 1rem rgba(240, 131, 0, 0.3), 0 0.2rem 0.4rem rgba(0, 0, 0, 0.1);
            .header {
                color: #f68300 !important;
            }
        }
    }
    .link-card1 {
        @media screen and (max-width:767px){
            margin-bottom: 2rem;
        }
    }
}

#about-yoshinoya {
    width: 100%;
    padding-top: 13rem;
    /* padding-bottom: 20rem; */
    padding-bottom: 13rem;
    background: url("../img/top/about-yoshinoya-holdings.jpg") no-repeat top center / cover;
    @media screen and (max-width: 767px) {
        padding-top: 5rem;
        padding-bottom: 15rem;
    }
    .contents-flex {
        display: flex;
        gap: 8.9rem;
        justify-content: space-between;
        @media screen and (max-width: 767px) {
            flex-direction: column;
            gap: 2rem;
        }
        .main-text {
            width: 62rem;
            @media screen and (max-width: 767px) {
                width: 100%;
            }
            .common-header .jp,
            .main-caption,
            .sub-cation {
                color: #fff;
            }
            .main-caption {
                @media screen and (max-width: 767px) {
                    font-size: 3rem;
                }
            }
        }
        .links-container {
            flex: 1;
            width: 76.5rem;
            padding-top: 2.9rem;
            @media screen and (max-width: 767px) {
                width: 100%;
                padding-top: 0;
            }
            & ul li {
                margin-bottom: 3rem;
                background-color: #fff;
                border-radius: 1rem;
                @media screen and (max-width:767px){
                margin-bottom: 2rem;
                }
                .link-card {
                    background-color: #fff;
                    border-radius: 1rem;
                    width: 100%;
                    padding: 4.5rem 11.8rem 4.5rem 6.2rem;
                    box-sizing: border-box;
                    position: relative;
                    transition: all 0.3s ease-in;
                    border: 2px #fff solid;
                    @media screen and (max-width: 767px) {
                        padding: 2rem 5rem 2rem 2rem;
                    }
                    &:after {
                        content: "";
                        position: absolute;
                        background: url("../common/img/orange-arrow.svg") no-repeat center center / 100% auto;
                        width: 4.13rem;
                        height: 4.13rem;
                        border-radius: 4.13rem;
                        right: 4rem;
                        top: 50%;
                        transform: translateY(-50%);
                        @media screen and (max-width: 767px) {
                            width: 2.6rem;
                            height: 2.6rem;
                            border-radius: 2.6rem;
                            right: 1.7rem;
                        }
                    }
                    &:hover {
                        border: 2px solid #f68300;
                        opacity: 0.85;
                        .link-header {
                            color: #f68300 !important;
                        }
                    }
                    .link-header {
                        font-family: var(--zenkaku);
                        font-style: normal;
                        font-weight: 700;
                        font-size: 2.7rem;
                        line-height: 3.9rem;
                        letter-spacing: 0.1em;
                        color: #212121;
                        margin-bottom: 1.9rem;
                        transition: all 0.3s ease-in;
                        @media screen and (max-width: 767px) {
                            font-size: 1.8rem;
                            line-height: 3rem;
                            margin-bottom: 1rem;
                        }
                    }
                    .link-description {
                        font-family: var(--zenkaku);
                        font-style: normal;
                        font-weight: 400;
                        font-size: 1.8rem;
                        line-height: 2.8rem;
                        letter-spacing: -0.01em;
                        color: #212121;
                        @media screen and (max-width: 767px) {
                            font-size: 1.4rem;
                            line-height: 2.6rem;
                        }
                    }
                }
            }
        }
    }
}

#partner {
    width: 100%;
    background: url("../img/top/partner.png") no-repeat center / cover;
    padding-top: 12rem;
    padding-bottom: 9.1rem;
    border-radius: 10rem 10rem 0 0;
    position: relative;
    margin-top: -10rem;
    @media screen and (max-width: 767px) {
        padding-top: 6.3rem;
        padding-bottom: 5rem;
        background: url("../img/top/partner-sp.png") no-repeat bottom / cover;
        border-radius: 3rem 3rem 0 0;
    }
    .contents-flex {
        width: 100%;
        display: flex;
        justify-content: space-between;
        gap: 16rem;
        @media screen and (max-width: 767px) {
            flex-direction: column;
            gap: 0;
        }
        .text-block {
            flex: 1;
            width: 100%;
            .header {
                .en {
                    font-family: var(--lato);
                    font-style: normal;
                    font-weight: 700;
                    font-size: 2rem;
                    line-height: 2.4rem;
                    letter-spacing: 0.04em;
                    color: #ffffff;
                    margin-bottom: 0.7rem;
                    @media screen and (max-width: 767px) {
                        font-size: 1.8rem;
                        margin-bottom: 0.2rem;
                    }
                }
                .jp {
                    font-family: var(--zenkaku);
                    font-style: normal;
                    font-weight: 700;
                    font-size: 4.9rem;
                    line-height: 7.6rem;
                    letter-spacing: 0.1em;
                    color: #ffffff;
                    margin-bottom: 4rem;
                    @media screen and (max-width: 767px) {
                        font-size: 3.2rem;
                        line-height: 1.2;
                        margin-bottom: 3.8rem;
                    }
                }
            }
            .sub-text {
                font-family: var(--zenkaku);
                font-style: normal;
                font-weight: 700;
                font-size: 2.3rem;
                line-height: 3.7rem;
                letter-spacing: 0.01em;
                color: #f9f9f7;
                margin-bottom: 2.5rem;
                @media screen and (max-width: 767px) {
                    font-size: 2.1rem;
                    line-height: 1.5;
                    margin-bottom: 2rem;
                }
            }
            .body-text {
                font-family: var(--zenkaku);
                font-style: normal;
                font-weight: 500;
                font-size: 1.8rem;
                line-height: 3.4rem;
                letter-spacing: -0.01em;
                color: #f9f9f7;
                margin-bottom: 4.5rem;
                @media screen and (max-width: 767px) {
                    font-size: 1.6rem;
                    line-height: 150%;
                    margin-bottom: 3.4rem;
                }
            }
        }
        .link-container {
            display: flex;
            width: 100%;
            justify-content: flex-end;
            & a {
                display: flex;
                align-items: center;
                gap: 2.5rem;
                transition: all 0.3s ease-in;
                &:hover {
                    opacity: 0.85;
                }
                @media screen and (max-width: 767px) {
                    margin-top: 3rem;
                    gap: 1.5rem;
                }
                & span {
                    font-family: var(--zenkaku);
                    font-style: normal;
                    font-weight: 500;
                    font-size: 2rem;
                    line-height: 3.4rem;
                    text-align: right;
                    letter-spacing: -0.01em;
                    color: #f9f9f7;
                    @media screen and (max-width: 767px) {
                        font-size: 1.6rem;
                        line-height: 3rem;
                    }
                }
                & img {
                    width: 4.13rem;
                    vertical-align: top;
                    transform: translateX(-8px);
                    transition: all 0.3s ease;
                    @media screen and (max-width: 767px) {
                        width: 3rem;
                    }
                }
            }
            & a:hover img {
                transform: translateX(0);
            }
            & a:active img {
                transform: scale(0.9);
            }
        }
        .img-block {
            width: 52rem;
            @media screen and (max-width: 767px) {
                width: 25.7rem;
                margin: 0 auto;
            }
            & img {
                width: 100%;
                vertical-align: top;
            }
        }
    }
}
