.l-main {
    --ff-mincho: "Shippori Mincho", serif;
    --ff-gothic: "Yu Gothic Medium", "Yu Gothic", YuGothic, sans-serif;
    width: 100%;
    margin: 0;
    padding: 0;
    overflow: hidden;
    background: #fff;
    font-family: var(--ff-gothic);
    font-weight: 500;
}
/* meiryo.css の要素セレクタより詳細度を上げるため子孫にも明示 */
.l-main * {
    font-family: var(--ff-gothic);
}

/*//////////////////// MV ////////////////////*/
.mv__wrapper {
    position: relative;
    width: 100%;
    min-width: 1280px;
}
/* 来店予約用クラスのみ利用。common.css の margin は不要 */
.mv__wrapper .ui-full-screen {
    margin: 0;
}
.mv__img {
    width: 100%;
    height: 856px;
    overflow: hidden;
}
    .mv__img img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center bottom;
    }

/* Figma: cta_wrap（MV下部キャッチ） */
.mv__catch {
    position: absolute;
    left: 50%;
    bottom: 21px;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 1140px;
    padding: 40px 30px;
    background: #fff;
    box-shadow: 0 4px 3px rgba(0, 0, 0, 0.04);
    transform: translateX(-50%);
    gap: 30px;
}
/* Figma: cta_wrap（MV下部キャッチ） */

    .mv-catch__service {
        display: flex;
        flex-direction: column;
        align-items: center;
    }
    .mv-catch__service > * + * {
        margin-top: 9px;
    }

        .mv-catch__ttl {
            position: relative;
            color: #3b519a;
            font-size: 22px;
            text-align: center;
            white-space: nowrap;
        }
            .mv-catch__ttl-em {
                position: relative;
            }
                .mv-catch__ttl-deco {
                    position: absolute;
                    top: -1px;
                    right: 10px;
                    width: 133px;
                    height: 3px;
                }
                    .mv-catch__ttl-deco svg {
                        width: 133px;
                        height: 3px;
                    }
        .mv-catch__tag-list {
            display: flex;
            flex-wrap: wrap;
            gap: 6px;
            align-items: center;
            justify-content: center;
            margin-bottom: 1px;
        }

            .mv-catch__tag {
                display: flex;
                align-items: center;
                justify-content: center;
                padding: 10px 19px;
                background: #3b519a;
                color: #fff;
                font-size: 20px;
                line-height: 1;
                white-space: nowrap;
            }
        .mv-catch__caption {
            color: #3e455d;
            font-size: 20px;
            line-height: 1;
            text-align: center;
            white-space: nowrap;
        }
            .mv-catch__caption-em {
                position: relative;
                z-index: 1;
            }
            .mv-catch__caption-em svg {
                color: #FFF0BF;
                width: 277px;
                height: 8px;
                position: absolute;
                top: 18px;
                left: 0;
                z-index: -1;
            }
    .mv-catch__divider {
        align-self: stretch;
        width: 1px;
        background: #d9d9d9;
    }
    .mv-catch__contact {
        display: flex;
        flex-direction: column;
        align-items: center;
    }
    .mv-catch__contact > * + * {
        margin-top: 11px;
    }

        .mv-catch__contact-ttl {
            display: flex;
            align-items: flex-end;
            justify-content: center;
            color: #3e455d;
            font-size: 20px;
            line-height: 1;
            text-align: center;
            white-space: nowrap;
            gap: 10px;
        }

            .mv-catch__deco {
                width: 1px;
                height: 19px;
                background: #3b519a;
            }
            .mv-catch__deco--left {
                transform: rotate(-25deg);
            }
            .mv-catch__deco--right {
                transform: rotate(25deg);
            }
        .mv-catch__btn {
            position: relative;
            z-index: 0;
            display: flex;
            align-items: center;
            justify-content: center;
            width: 400px;
            height: 80px;
            overflow: hidden;
            border: 1px solid #f38210;
            border-radius: 9999px;
            background: #fff;
            box-sizing: border-box;
            color: #fff;
            text-decoration: none;
        }
        .mv-catch__btn::before {
            content: "";
            position: absolute;
            inset: 0;
            z-index: -1;
            background: linear-gradient(94.12deg, #f38210 0.71%, #ff9f31 103.77%);
            transition: .4s;
            opacity: 1;
        }
            .mv-catch__btn-txt {
                font-size: 24px;
                line-height: 1;
                white-space: nowrap;
            }
            .mv-catch__btn-icn {
                position: absolute;
                top: 50%;
                right: 28px;
                width: 26px;
                height: 6px;
                color: inherit;
                transform: translateY(-50%);
            }
                .mv-catch__btn-icn svg {
                    width: 26px;
                    height: 6px;
                }

/*//////////////////// 共通セクション枠 ////////////////////*/
[class*="section__wrapper--"] {
    width: 100%;
    padding-block: 50px;
}
[class*="section__inner--"] {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 1140px;
    margin: 0 auto;
}
[class*="section__inner--"] > * + * {
    margin-top: 40px;
}

[class*="section__header--"] {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}
[class*="section__header--"] > * + * {
    margin-top: 17px;
}

/* 見出し・キャッチなど強調テキストのみ明朝 */
[class*="section__ttl--"],
[class*="section__subttl--"],
[class*="mv-catch__ttl"],
.mv-catch__tag,
[class*="mv-catch__caption"],
.mv-catch__contact-ttl,
.top-area__lead,
.top-contact__lead,
.top-contact__tel,
.top-vision__ttl,
.top-club__intro-ttl-txt,
.top-club__intro-ttl-accent,
.top-club__intro-caption,
.top-club__intro-em,
.top-sale__price,
.top-sale__price-num,
.top-sale__limited-ttl,
.top-staff__name,
.top-faq__icon,
.top-faq__q-txt,
.top-message__name-role,
.top-message__name-person {
    font-family: var(--ff-mincho);
}

[class*="section__ttl--"] {
    color: #3e455d;
    font-size: 36px;
    font-weight: 500;
    letter-spacing: 0.1em;
    line-height: 1;
}
[class*="section__subttl--"] {
    color: #3b519a;
    font-size: 20px;
    letter-spacing: 0.1em;
    line-height: 1;
}
/* class 属性末尾一致だと「xxx__slider js-swiper-xxx」で効かない */
[class*="__slider"] {
    width: 100%;
    overflow: hidden;
}
.section__pager {
    display: flex;
    align-items: center;
    gap: 12px;
}
.section__pager.is-invisible {
    visibility: hidden;
    pointer-events: none;
}

    .section__pager-btn {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 34px;
        height: 34px;
        padding: 0;
        border: 1px solid #3b519a;
        border-radius: 50%;
        background: transparent;
        box-sizing: border-box;
        color: #3b519a;
        cursor: pointer;
    }
        .section__pager-btn svg {
            width: 34px;
            height: 34px;
        }
    .section__pager-num {
        display: flex;
        align-items: center;
        font-size: 18px;
        line-height: 1;
        gap: 10px;
    }

        .section__pager-current {
            width: 21px;
            color: #3b519a;
            text-align: center;
        }
        .section__pager-divider {
            width: 1px;
            height: 14px;
            background: #cfd8dc;
        }
        .section__pager-total {
            width: 21px;
            color: #3e455d;
            text-align: center;
        }
.section__pager-wrap {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 1140px;
    max-width: 100%;
}
.btn__more {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 226px;
    height: 50px;
    border: 1px solid #f3a65a;
    border-radius: 9999px;
    color: #f3a65a;
    text-decoration: none;
}
    .btn__more-txt {
        font-size: 18px;
        line-height: 1;
    }
    .btn__more-icn {
        position: absolute;
        top: 50%;
        right: 18px;
        width: 21px;
        height: 5px;
        color: inherit;
        transform: translateY(-50%);
    }
        .btn__more-icn svg {
            width: 21px;
            height: 5px;
        }

.section__inner--plan,
.section__inner--voice {
    width: 100%;
}
.section__inner--voice {
    align-items: flex-start;
    padding-left: max(0px, calc((100% - 1140px) / 2));
    box-sizing: border-box;
}
.section__header--voice {
    width: 1140px;
    max-width: 100%;
    align-items: flex-start;
    text-align: left;
}

/*//////////////////// PLAN ////////////////////*/
    .top-plan__slider {
        align-self: stretch;
        width: 100%;
        margin-top: 38px;
        overflow: hidden;
        touch-action: pan-y;
        user-select: none;
        -webkit-user-select: none;
    }
        .top-plan__track {
            position: relative;
            display: flex;
            align-items: center;
            will-change: transform;
        }
            /*
             * レイアウト幅280固定。scale のはみ出し分は is-active の左右 margin で確保。
             * → 中心↔隣も、隣同士も見た目のギャップが同じ（40px）になる。
             */
            .top-plan__slide {
                display: flex;
                flex-shrink: 0;
                align-items: center;
                justify-content: center;
                box-sizing: border-box;
                width: 280px;
                height: 253px;
                margin-right: 40px;
            }
            .top-plan__slide.is-active {
                z-index: 2;
                margin-left: 50px;  /* scale はみ出し分 */
                margin-right: 90px; /* 余白40 + はみ出し50 */
            }
                        .top-plan__item {
                            display: block;
                            width: 280px;
                            height: 186px;
                            overflow: hidden;
                            color: inherit;
                            text-decoration: none;
                            transition: transform 0.35s ease;
                            transform-origin: center center;
                            -webkit-user-drag: none;
                            user-drag: none;
                        }
                        .top-plan__slide.is-active .top-plan__item {
                            transform: scale(1.357); /* 380/280 */
                        }
                        /* loop 復帰時: is-active 付け替えの scale アニメを止める（1/6で一瞬縮む対策） */
                        .top-plan__slider.is-jumping .top-plan__item {
                            transition: none;
                        }
                        .top-plan__item img {
                            display: block;
                            width: 100%;
                            height: 100%;
                            object-fit: cover;
                            pointer-events: none;
                            -webkit-user-drag: none;
                            user-drag: none;
                            transition: transform .4s;
                            transform-origin: center center;
                        }
    .section__inner--plan .section__pager {
        margin-top: 41px;
    }

/*//////////////////// VOICE ////////////////////*/
    /*
     * section__inner--voice が align-items:flex-start のため、
     * width/align-self がないとスライダーが全枚分の幅になり Swiper が動かない。
     */
    .top-voice__slider {
        align-self: stretch;
        width: 100%;
        overflow: hidden;
    }
        .top-voice__slider .swiper-slide {
            width: 310px;
            overflow: hidden;
        }
        /* Swiper未初期化時も spaceBetween:30 相当の間隔を維持 */
        .top-voice__slider:not(.swiper-initialized) .swiper-wrapper {
            display: flex;
        }
        .top-voice__slider:not(.swiper-initialized) .swiper-slide + .swiper-slide {
            margin-left: 30px;
        }
                    .top-voice__item {
                        display: flex;
                        flex-direction: column;
                        align-items: flex-end;
                        justify-content: space-between;
                        width: 310px;
                        min-height: 245px;
                        padding: 30px 30px 20px;
                        background: #fffbed;
                        box-sizing: border-box;
                        text-decoration: none;
                        transition: transform .4s;
                        transform-origin: center center;
                    }
                    .top-voice__item > * + * {
                        margin-top: 10px;
                    }

                        .top-voice__content {
                            display: flex;
                            flex-direction: column;
                            width: 100%;
                        }
                        .top-voice__content > * + * {
                            margin-top: 8px;
                        }

                            .top-voice__name {
                                overflow: hidden;
                                color: #3b519a;
                                font-size: 20px;
                                line-height: 1;
                                text-overflow: ellipsis;
                                white-space: nowrap;
                            }
                            .top-voice__text {
                                display: -webkit-box;
                                overflow: hidden;
                                color: #3e455d;
                                font-size: 16px;
                                line-height: 1.6;
                                -webkit-box-orient: vertical;
                                -webkit-line-clamp: 4;
                            }
                        .top-voice__staff {
                            display: flex;
                            align-items: center;
                            justify-content: flex-end;
                            width: 100%;
                            gap: 12px;
                        }

                            .top-voice__staff-name {
                                overflow: hidden;
                                color: #3b519a;
                                font-size: 16px;
                                line-height: 1;
                                text-overflow: ellipsis;
                                white-space: nowrap;
                            }
                            .top-voice__staff-img {
                                display: flex;
                                align-items: center;
                                justify-content: center;
                                width: 53px;
                                height: 53px;
                                overflow: hidden;
                                border-radius: 50%;
                                background: #cfd8dc;
                            }
                            .top-voice__staff-img img {
                                width: 100%;
                                height: 100%;
                                object-fit: cover;
                            }

/*//////////////////// AREA ////////////////////*/
.section__wrapper--area {
    padding-bottom: 100px;
}
    .section__inner--area {
        flex-direction: row;
        align-items: flex-start;
        padding: 100px 100px 97px;
        background: url(/images/top/area_bg.webp) no-repeat center / cover;
        box-sizing: border-box;
        overflow: hidden;
        gap: 40px;
    }
    .section__inner--area > * + * {
        margin-top: 0;
    }

        .top-area__info {
            width: 506px;
            position: relative;
            z-index: 2;
            display: flex;
            flex-direction: column;
            min-width: 0;
        }
        .top-area__info > * + * {
            margin-top: 39px;
        }

            .section__header--area {
                position: relative;
                flex-direction: row;
                align-items: center;
                justify-content: space-between;
                width: 100%;
                text-align: left;
            }
            .section__header--area > * + * {
                margin-top: 0;
            }
                .section__header-main {
                    display: flex;
                    flex-direction: column;
                }
                .section__header-main > * + * {
                    margin-top: 16px;
                }

                .top-area__ttl-deco {
                    position: absolute;
                    top: -23px;
                    right: 0;
                    width: 120px;
                    height: 120px;
                }
                .top-area__ttl-deco img {
                    width: 100%;
                    height: 100%;
                    object-fit: contain;
                }
            .top-area__description {
                display: flex;
                flex-direction: column;
            }
            .top-area__description > * + * {
                margin-top: 11px;
            }

                .top-area__lead {
                    color: #3b519a;
                    font-size: 24px;
                    line-height: 1.5;
                }
                .top-area__text {
                    color: #3e455d;
                    font-size: 16px;
                    line-height: 1.9;
                }
        .top-area__map {
            position: relative;
            z-index: 1;
            flex-shrink: 0;
            width: 394px;
            height: 424px;
        }
        .top-area__map img {
            width: 100%;
            height: 100%;
            object-fit: contain;
            object-position: center right;
        }

/*//////////////////// CONTACT ////////////////////*/
.section__wrapper--contact {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 100px 0 102px;
    background-color: #f6a055;
    background-image: url("/images/top/contact_bg.webp");
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
}
    .section__inner--contact {
        padding: 50px;
        background: rgba(255, 255, 255, 0.8);
        backdrop-filter: blur(10px);
        box-sizing: border-box;
    }
        .top-contact__lead {
            color: #3e455d;
            font-size: 20px;
            letter-spacing: 0.04em;
            line-height: 1.5;
            text-align: center;
            margin-top: 20px;
        }
        .top-contact__phone {
            display: flex;
            align-items: flex-start;
            gap: 20px;
            margin-top: 39px;
        }

            .top-contact__phone-number {
                display: flex;
                gap: 9px;
            }

                .top-contact__phone-icn {
                    display: flex;
                    align-items: center;
                    justify-content: center;
                    flex-shrink: 0;
                    width: 33px;
                    height: 33px;
                    color: #3b519a;
                    margin-top: 2px;
                }
                .top-contact__phone-icn svg {
                    width: 33px;
                    height: 33px;
                }
            .top-contact__tel {
                color: #3e455d;
                font-size: 42px;
                font-weight: 700;
                line-height: 0.7;
            }
        .top-contact__phone-divider {
            align-self: stretch;
            width: 1px;
            background: #3b519a;
        }
        .top-contact__phone-hours {
            color: #3e455d;
            font-size: 14px;
        }
            .top-contact__phone-hours p {
                line-height: 1.3;
            }
    .top-contact__btn-list {
        display: flex;
        flex-wrap: wrap;
        gap: 12px;
        justify-content: center;
        margin-top: 20px;
    }

    .top-contact__btn {
        position: relative;
        z-index: 0;
        display: flex;
        align-items: center;
        justify-content: center;
        width: 251px;
        height: 65px;
        overflow: hidden;
        border: 1px solid transparent;
        border-radius: 9999px;
        background: #fff;
        box-sizing: border-box;
        color: #fff;
        text-decoration: none;
    }
    .top-contact__btn::before {
        content: "";
        position: absolute;
        inset: 0;
        z-index: -1;
        transition: .4s;
        opacity: 1;
    }
        .top-contact__btn-txt {
            font-size: 18px;
            line-height: 1;
        }
        .top-contact__btn-icn {
            position: absolute;
            top: 50%;
            right: 20px;
            width: 21px;
            height: 5px;
            color: inherit;
            transform: translateY(-50%);
        }
        .top-contact__btn-icn svg {
            width: 21px;
            height: 5px;
        }
        .top-contact__btn--inquiry {
            border-color: #f38210;
        }
        .top-contact__btn--inquiry::before {
            background: linear-gradient(93.19deg, #f38210 0.71%, #ff9f31 103.77%);
        }
        .top-contact__btn--reserve {
            border-color: #3b519a;
        }
        .top-contact__btn--reserve::before {
            background: linear-gradient(102.36deg, #3b519a 3.25%, #3381da 99.59%);
        }
        .top-contact__btn--assess {
            border-color: #089acf;
        }
        .top-contact__btn--assess::before {
            background: linear-gradient(283.03deg, #089acf 0.83%, #0974cc 93.11%);
        }
        .top-contact__btn--line {
            border-color: #06c755;
        }
        .top-contact__btn--line::before {
            background: linear-gradient(102.41deg, #06c755 4.22%, #0fda62 97.34%);
        }

/*//////////////////// BLOG ////////////////////*/
.section__wrapper--blog {
    padding-top: 100px;
}
        .top-blog__body {
            display: flex;
            flex-direction: column;
            align-items: center;
            width: 100%;
            margin-top: 39px;
        }
        .top-blog__body > * + * {
            margin-top: 30px;
        }

            .top-blog__tab {
                display: flex;
                width: 1140px;
            }
    .top-blog__slider {
        overflow: visible;
    }
    .top-blog__tab-item {
        flex: 1;
        border-bottom: 1px solid #cfd8dc;
        transition: .4s;
    }
                    .top-blog__tab-btn {
                        display: flex;
                        align-items: center;
                        justify-content: center;
                        width: 100%;
                        padding: 0 0 16px;
                        border: none;
                        background: transparent;
                        color: #8e8e8e;
                        font-size: 20px;
                        line-height: 1;
                        cursor: pointer;
                        transition: .4s;
                    }
    .top-blog__tab-item.is-active {
        border-bottom-color: #3b519a;
    }
                    .top-blog__tab-item.is-active .top-blog__tab-btn {
                        color: #3b519a;
                    }
            .top-blog__slider .swiper-slide {
                width: 360px;
            }
            .top-blog__slider .swiper-slide.is-hidden {
                display: none;
            }
            /* Swiper未初期化時も spaceBetween:30 相当の間隔を維持 */
            .top-blog__slider:not(.swiper-initialized) .swiper-wrapper {
                display: flex;
                gap: 30px;
            }
                        .top-blog__item {
                            display: flex;
                            flex-direction: column;
                            width: 360px;
                            text-decoration: none;
                        }
                        .top-blog__item > * + * {
                            margin-top: 12px;
                        }

                            .top-blog__img {
                                position: relative;
                                display: block;
                                width: 100%;
                                height: 270px;
                                overflow: hidden;
                                background: #cfd8dc;
                            }
                            .top-blog__img img {
                                display: block;
                                width: 100%;
                                height: 100%;
                                object-fit: contain;
                                transition: transform .4s;
                                transform-origin: center center;
                            }
                                .top-blog__date {
                                    position: absolute;
                                    top: 10px;
                                    left: 10px;
                                    z-index: 1;
                                    padding: 8px 16px 4px;
                                    border-radius: 9999px;
                                    background: #3b519a;
                                    color: #fff;
                                    font-size: 16px;
                                    line-height: 1;
                                }
                            .top-blog__detail {
                                display: flex;
                                flex-direction: column;
                                width: 100%;
                            }
                            .top-blog__detail > * + * {
                                margin-top: 5px;
                            }

                                .top-blog__ttl {
                                    overflow: hidden;
                                    color: #3e455d;
                                    font-size: 18px;
                                    line-height: 1.4;
                                    text-overflow: ellipsis;
                                    white-space: nowrap;
                                }
                                .top-blog__text {
                                    display: -webkit-box;
                                    overflow: hidden;
                                    color: #8e8e8e;
                                    font-size: 16px;
                                    line-height: 1.7;
                                    -webkit-box-orient: vertical;
                                    -webkit-line-clamp: 2;
                                }
            .top-blog__body .section__pager-wrap {
                margin-top: 28px;
            }

/*//////////////////// MESSAGE ////////////////////*/
.section__wrapper--message {
    padding-bottom: 100px;
}
    .section__inner--message {
        flex-direction: row;
        align-items: flex-start;
        padding: 100px 0 100px 102px;
        gap: 78px;
        position: relative;
        z-index: 1;
    }
    .section__inner--message::after {
        content: "";
        background: #fffbed;
        position: absolute;
        top: 0;
        bottom: 0;
        left: 0;
        right: calc(50% - 50vw);
        z-index: -1;
    }
    .section__inner--message > * + * {
        margin-top: 0;
    }

        .section__header--message {
            flex-direction: row;
            flex-shrink: 0;
            align-items: flex-start;
            text-align: left;
            gap: 18px;
        }
        .section__header--message > * + * {
            margin-top: 0;
        }

            .section__ttl--message,
            .section__subttl--message {
                writing-mode: vertical-rl;
                text-orientation: upright;
                letter-spacing: 0.1em;
            }
            .section__ttl--message {
                width: 36px;
                font-size: 36px;
                line-height: 1.06;
                letter-spacing: 0.05em;
                margin-top: 3px;
            }
            .section__subttl--message {
                width: 16px;
                font-size: 20px;
                line-height: 1;
                letter-spacing: 0.02em;
            }
        .top-message__content {
            display: flex;
            flex: 1;
            align-items: flex-start;
            justify-content: space-between;
            min-width: 0;
            gap: 46px;
        }

            .top-message__text-wrap {
                display: flex;
                flex-direction: column;
                align-items: flex-end;
                max-width: 559px;
            }
            .top-message__text-wrap > * + * {
                margin-top: 24px;
            }

                .top-message__text {
                    display: flex;
                    flex-direction: column;
                    width: 100%;
                }
                .top-message__text p {
                    color: #3e455d;
                    font-size: 20px;
                    line-height: 1.6;
                }
                .top-message__text > * + * {
                    margin-top: 24px;
                }

                .top-message__name {
                    display: flex;
                    align-items: flex-end;
                    line-height: 1;
                    gap: 16px;
                }

                    .top-message__name-role {
                        color: #3e455d;
                        font-size: 16px;
                    }
                    .top-message__name-person {
                        color: #3b519a;
                        font-size: 20px;
                    }
            .top-message__img {
                flex-shrink: 0;
                width: 287px;
                height: 348px;
            }
            .top-message__img img {
                width: 100%;
                height: 100%;
                object-fit: cover;
                object-position: bottom;
            }

/*//////////////////// VISION ////////////////////*/
.section__wrapper--vision {
    padding: 100px 0;
    background: linear-gradient(126.43deg, #f4fbff 0%, #eaf7ff 99.48%);
}
        .top-vision__list {
            display: flex;
            flex-direction: column;
            width: 100%;
        }
        .top-vision__list > * + * {
            margin-top: 40px;
        }

    .top-vision__item {
        position: relative;
        display: flex;
        align-items: center;
        width: 100%;
        gap: 50px;
    }

    .top-vision__item--reverse {
        flex-direction: row-reverse;
    }
                .top-vision__img-wrap {
                    position: relative;
                    flex-shrink: 0;
                    width: 465px;
                    height: 319px;
                }
                    .top-vision__img {
                        position: relative;
                        z-index: 1;
                        width: 100%;
                        height: 100%;
                    }
                    .top-vision__img::after {
                        content: "";
                        position: absolute;
                        top: 10px;
                        left: 10px;
                        z-index: -1;
                        width: 100%;
                        height: 100%;
                        border-right: 1px solid #5db2b8;
                        border-bottom: 1px solid #5db2b8;
                    }
                    .top-vision__img img {
                        width: 100%;
                        height: 100%;
                        object-fit: cover;
                    }
                    .top-vision__num {
                        position: absolute;
                        top: -20px;
                        left: -20px;
                        z-index: 2;
                        width: 97px;
                        height: 97px;
                    }
                    .top-vision__item--reverse .top-vision__num {
                        top: -31px;
                    }
                    .top-vision__num img {
                        width: 100%;
                        height: 100%;
                        object-fit: contain;
                    }
                .top-vision__content {
                    display: flex;
                    flex: 1;
                    flex-direction: column;
                    min-width: 0;
                }
                .top-vision__content > * + * {
                    margin-top: 30px;
                }

                    .top-vision__ttl {
                        color: #3b519a;
                        font-size: 26px;
                        font-weight: 500;
                        line-height: 1;
                    }
                    .top-vision__body {
                        display: flex;
                        flex-direction: column;
                    }
                    .top-vision__body > * + * {
                        margin-top: 16px;
                    }

.top-vision__text {
    color: #3e455d;
    font-size: 16px;
    line-height: 1.8;
}
.top-vision__point-list {
    display: flex;
    flex-direction: column;
}
.top-vision__point-list > * + * {
    margin-top: 8px;
}

    .top-vision__point-item {
        display: flex;
        align-items: center;
        gap: 8px;
    }

        .top-vision__point-num {
            display: flex;
            align-items: center;
            justify-content: center;
            flex-shrink: 0;
            width: 25px;
            height: 25px;
            border-radius: 50%;
            background: #fff;
            color: #5db2b8;
            font-size: 16px;
            line-height: 1;
        }
        .top-vision__point-txt {
            color: #3e455d;
            font-size: 18px;
            line-height: 1.4;
        }

/*//////////////////// SUPPORT ////////////////////*/
.section__wrapper--support {
    padding: 100px 0;
}
        .top-support__list {
            display: flex;
            flex-wrap: wrap;
            gap: 30px;
            justify-content: center;
            width: 100%;
            padding: 0 60px;
            box-sizing: border-box;
            margin-top: 38px;
        }

            .top-support__item {
                display: flex;
                flex-direction: column;
                align-items: center;
                width: 145px;
            }
            .top-support__item > * + * {
                margin-top: 12px;
            }

                .top-support__icn {
                    display: flex;
                    align-items: center;
                    justify-content: center;
                    width: 145px;
                    height: 145px;
                }
                .top-support__icn img {
                    width: 100%;
                    height: 100%;
                    object-fit: contain;
                }
                .top-support__label {
                    width: 100%;
                    color: #3e455d;
                    font-size: 20px;
                    line-height: 1;
                    text-align: center;
                }

/*//////////////////// CLUB ////////////////////*/
.section__wrapper--club {
    padding: 100px 0 120px;
    background: linear-gradient(111.23deg, #f08b11 0.68%, #f6b136 100%);
}
            .section__ttl--club,
            .section__subttl--club {
                color: #fff;
            }
        .top-club__content {
            display: flex;
            flex-direction: column;
            align-items: center;
            width: 1162px;
            margin-top: 38px;
        }
        .top-club__content > * + * {
            margin-top: 30px;
        }

            .top-club__merit-frame {
                width: 100%;
                padding: 10px;
                border: 1px solid #fff;
                background: rgba(255, 255, 255, 0.2);
                box-sizing: border-box;
            }
                .top-club__merit {
                    display: flex;
                    flex-direction: column;
                    align-items: center;
                    width: 100%;
                    padding: 50px;
                    background: #fff;
                    box-sizing: border-box;
                }
                .top-club__merit > * + * {
                    margin-top: 30px;
                }

                    .top-club__intro {
                        display: flex;
                        flex-direction: column;
                        width: 100%;
                    }
                    .top-club__intro > * + * {
                        margin-top: 10px;
                    }

                        .top-club__intro-ttl {
                            display: flex;
                            align-items: center;
                            justify-content: center;
                            width: 100%;
                            gap: 20px;
                        }

                            .top-club__intro-line {
                                width: 191px;
                                height: 1px;
                                background: linear-gradient(90deg, #2c3089 0%, #51559e 100%);
                            }
                            .top-club__intro-ttl-main {
                                display: flex;
                                align-items: center;
                                flex-shrink: 0;
                                gap: 4px;
                            }

                                .top-club__intro-ttl-txt {
                                    background: linear-gradient(90deg, #2c3089 0%, #51559e 100%);
                                    -webkit-background-clip: text;
                                    background-clip: text;
                                    color: transparent;
                                    font-size: 26px;
                                    line-height: 1.3;
                                    white-space: nowrap;
                                }
                                .top-club__intro-ttl-accent {
                                    padding: 3px 10px;
                                    background: linear-gradient(90deg, #2c3089 0%, #51559e 100%);
                                    color: #fff;
                                    font-size: 26px;
                                    line-height: 1.3;
                                    white-space: nowrap;
                                }
                        .top-club__intro-caption {
                            color: #3e455d;
                            font-size: 20px;
                            line-height: 1.5;
                            text-align: center;
                        }
                            .top-club__intro-em {
                                color: #f3a65a;
                                position: relative;
                                z-index: 1;
                            }
                            .top-club__intro-em--line01 svg {
                                color: #FFF0BF;
                                width: 107px;
                                height: 8px;
                                position: absolute;
                                top: 20px;
                                left: 0;
                                z-index: -1;
                            }
                            .top-club__intro-em--line02 svg {
                                color: #FFF0BF;
                                width: 143px;
                                height: 8px;
                                position: absolute;
                                top: 20px;
                                left: 0;
                                z-index: -1;
                            }
                    .top-club__merit-list {
                        display: flex;
                        justify-content: center;
                        width: 100%;
                        gap: 20px;
                    }

                        .top-club__merit-item {
                            position: relative;
                            display: flex;
                            flex-direction: column;
                            width: 245px;
                        }
                        .top-club__merit-item > * + * {
                            margin-top: 12px;
                        }

                            .top-club__merit-img {
                                position: relative;
                                width: 245px;
                                height: 163px;
                            }
                            .top-club__merit-img > img {
                                width: 100%;
                                height: 100%;
                                object-fit: cover;
                            }
                                .top-club__merit-num {
                                    position: absolute;
                                    top: -8px;
                                    left: 8px;
                                    width: 50px;
                                    height: 56px;
                                }
                                .top-club__merit-num img {
                                    width: 100%;
                                    height: 100%;
                                    object-fit: contain;
                                }
                            .top-club__merit-detail {
                                display: flex;
                                align-items: center;
                                width: 100%;
                                gap: 12px;
                            }

                                .top-club__merit-icn {
                                    display: flex;
                                    align-items: center;
                                    justify-content: center;
                                    flex-shrink: 0;
                                    width: 60px;
                                    height: 60px;
                                }
                                .top-club__merit-icn img {
                                    width: 100%;
                                    height: 100%;
                                    object-fit: contain;
                                }
                                .top-club__merit-txt {
                                    flex: 1;
                                    color: #3e455d;
                                    font-size: 18px;
                                    letter-spacing: 0.05em;
                                    line-height: 1.4;
                                }
            .top-club__btn-list {
                display: flex;
                gap: 20px;
            }

                .top-club__btn {
                    position: relative;
                    z-index: 0;
                    display: flex;
                    align-items: center;
                    justify-content: center;
                    width: 400px;
                    height: 80px;
                    overflow: hidden;
                    border: 1px solid #2c3089;
                    border-radius: 9999px;
                    background: #fff;
                    box-sizing: border-box;
                    text-decoration: none;
                }
                .top-club__btn::before {
                    content: "";
                    position: absolute;
                    inset: 0;
                    z-index: -1;
                    background: linear-gradient(90deg, #2c3089 0%, #51559e 100%);
                    transition: .4s;
                }
                    .top-club__btn-txt {
                        font-size: 24px;
                        line-height: 1;
                    }
                    .top-club__btn-icn {
                        position: absolute;
                        top: 50%;
                        right: 28px;
                        width: 26px;
                        height: 6px;
                        color: inherit;
                        transform: translateY(-50%);
                    }
                    .top-club__btn-icn svg {
                        width: 26px;
                        height: 6px;
                    }
                    .top-club__btn--login {
                        color: #2c3089;
                        border-color: transparent;
                    }
                    .top-club__btn--login::before {
                        opacity: 0;
                    }
                    .top-club__btn--join {
                        color: #fff;
                    }
                    .top-club__btn--join::before {
                        opacity: 1;
                    }

/*//////////////////// SALE ////////////////////*/
.section__wrapper--sale {
    padding-block: 100px 50px;
}
    .top-sale__slider {
        margin-top: 39px;
        overflow: visible;
    }
        .top-sale__slider .swiper-slide {
            width: 360px;
        }
        /* Swiper未初期化時も spaceBetween:30 相当の間隔を維持 */
        .top-sale__slider:not(.swiper-initialized) .swiper-wrapper {
            display: flex;
            gap: 30px;
        }
            .top-sale__item {
                position: relative;
                display: flex;
                flex-direction: column;
                width: 360px;
                text-decoration: none;
            }
            .top-sale__item > * + * {
                margin-top: 14px;
            }

                .top-sale__img {
                    position: relative;
                    display: flex;
                    align-items: center;
                    justify-content: center;
                    width: 100%;
                    height: 270px;
                    overflow: hidden;
                    background: #cfd8dc;
                }
                .top-sale__img img {
                    width: 100%;
                    height: 100%;
                    object-fit: contain;
                    transition: transform .4s;
                    transform-origin: center center;
                }
                    .top-sale__badge {
                        position: absolute;
                        z-index: 1;
                        display: flex;
                        align-items: center;
                        justify-content: center;
                        height: 28px;
                        padding: 0 16px;
                        font-size: 16px;
                        line-height: 1;
                    }
                    .top-sale__badge--new {
                        top: 10px;
                        left: 10px;
                        border-radius: 9999px;
                        background: #3b519a;
                        color: #fff;
                    }
                    .top-sale__badge--type {
                        top: 10px;
                        right: 10px;
                        background: #fff;
                        color: #3b519a;
                        height: 26px;
                        padding: 0 10px;
                    }
                .top-sale__detail {
                    display: flex;
                    flex-direction: column;
                    width: 100%;
                }

                    .top-sale__info {
                        display: flex;
                        justify-content: space-between;
                        width: 100%;
                        padding-bottom: 14px;
                        border-bottom: 1px solid #cfd8dc;
                    }
                        .top-sale__price {
                            display: flex;
                            align-items: flex-end;
                            color: #e44b30;
                            font-size: 30px;
                            font-weight: 600;
                            line-height: 1;
                            gap: 3px;
                        }

                            .top-sale__price-num {
                                line-height: 1;
                                color: #e44b30;
                            }
                            .top-sale__price-unit {
                                color: #343437;
                                font-size: 16px;
                                line-height: 1.2;
                            }
                        .top-sale__update {
                            display: flex;
                            align-items: center;
                            height: 26px;
                            margin-top: 2px;
                            padding: 3px 10px 0;
                            background: #eceff1;
                            color: #3e455d;
                            font-size: 16px;
                            line-height: 1;
                        }
                    .top-sale__meta {
                        display: flex;
                        flex-direction: column;
                        width: 100%;
                        margin-top: 16px;
                    }

                        .top-sale__name,
                        .top-sale__address,
                        .top-sale__access,
                        .top-sale__spec {
                            overflow: hidden;
                            font-size: 16px;
                            text-overflow: ellipsis;
                            white-space: nowrap;
                        }
                        .top-sale__name {
                            color: #3e455d;
                            line-height: 1;
                        }
                        .top-sale__address {
                            margin-top: 6px;
                            color: #8e8e8e;
                            line-height: 1.5;
                        }
                        .top-sale__access {
                            color: #8e8e8e;
                            line-height: 1.5;
                        }
                        .top-sale__spec {
                            color: #8e8e8e;
                            line-height: 1.5;
                        }
                    .top-sale__item--limited {
                        min-height: 439px;
                    }
                        .top-sale__limited {
                            position: absolute;
                            inset: 0;
                            z-index: 2;
                            display: flex;
                            flex-direction: column;
                            align-items: center;
                            justify-content: center;
                            padding: 20px;
                            background: rgba(255, 255, 255, 0.8);
                            backdrop-filter: blur(20px);
                            box-sizing: border-box;
                            margin-top: 0;
                        }
                        .top-sale__limited > * + * {
                            margin-top: 21px;
                        }

                            .top-sale__limited-ttl-wrap {
                                display: flex;
                                flex-direction: column;
                                align-items: center;
                                text-align: center;
                            }
                            .top-sale__limited-ttl-wrap > * + * {
                                margin-top: 8px;
                            }

                                .top-sale__limited-ttl {
                                    color: #2c3089;
                                    font-size: 32px;
                                    line-height: 1;
                                }
                                .top-sale__limited-caption {
                                    color: #3e455d;
                                    font-size: 16px;
                                }
                            .top-sale__limited-btns {
                                display: flex;
                                flex-direction: column;
                            }
                            .top-sale__limited-btns > * + * {
                                margin-top: 8px;
                            }

                            .top-sale__limited-btn {
                                position: relative;
                                z-index: 0;
                                display: flex;
                                align-items: center;
                                justify-content: center;
                                width: 226px;
                                height: 50px;
                                overflow: hidden;
                                border: 1px solid #2c3089;
                                border-radius: 9999px;
                                background: #f2f2f2;
                                box-sizing: border-box;
                                text-decoration: none;
                            }
                            .top-sale__limited-btn::before {
                                content: "";
                                position: absolute;
                                inset: 0;
                                z-index: -1;
                                background: linear-gradient(162.29deg, #2c3089 1.79%, #51559e 101.27%);
                                transition: .4s;
                            }
                                .top-sale__limited-btn-txt {
                                    font-size: 18px;
                                    line-height: 1;
                                }
                                .top-sale__limited-btn-icn {
                                    position: absolute;
                                    top: 50%;
                                    right: 17px;
                                    width: 21px;
                                    height: 5px;
                                    color: inherit;
                                    transform: translateY(-50%);
                                }
                                .top-sale__limited-btn-icn svg {
                                    width: 21px;
                                    height: 5px;
                                }
                                .top-sale__limited-btn--join {
                                    color: #fff;
                                }
                                .top-sale__limited-btn--join::before {
                                    opacity: 1;
                                }
                                .top-sale__limited-btn--login {
                                    color: #2c3089;
                                }
                                .top-sale__limited-btn--login::before {
                                    opacity: 0;
                                }

/*//////////////////// COMPANY ////////////////////*/
        .top-company__body {
            width: 100%;
            margin-top: 36px;
        }
            .top-company__content {
                display: flex;
                width: 100%;
                gap: 50px;
            }

                .top-company__img {
                    position: relative;
                    display: flex;
                    align-items: center;
                    justify-content: center;
                    flex-shrink: 0;
                    width: 570px;
                    height: 428px;
                    overflow: hidden;
                    background: #cfd8dc;
                    margin-top: 3px;
                }
                .top-company__img img {
                    width: 100%;
                    height: 100%;
                    object-fit: cover;
                }
                .top-company__detail {
                    display: flex;
                    flex: 1;
                    flex-direction: column;
                    align-items: flex-end;
                    min-width: 0;
                }
                .top-company__detail > .btn__more {
                    margin-top: 27px;
                }
                .top-company__info-list {
                    display: flex;
                    flex-direction: column;
                    width: 100%;
                }
                .top-company__info-list > * + * {
                    margin-top: 17px;
                }

                    .top-company__info-item {
                        display: flex;
                        align-items: stretch;
                        width: 100%;
                    }
                        .top-company__info-label {
                            flex-shrink: 0;
                            width: 120px;
                            padding-bottom: 16px;
                            border-bottom: 1px solid #3b519a;
                            color: #3b519a;
                            font-size: 16px;
                            line-height: 1.4;
                        }
                        .top-company__info-value {
                            flex: 1;
                            min-width: 0;
                            padding: 0 0 16px 10px;
                            border-bottom: 1px solid #d3d3d3;
                            color: #3e455d;
                            font-family: "Yu Gothic", YuGothic, sans-serif;
                            font-size: 16px;
                            line-height: 1.4;
                        }
                        .top-company__info-value a {
                            color: #3e455d;
                            font-family: "Yu Gothic", YuGothic, sans-serif;
                            font-size: 16px;
                            line-height: 1.4;
                        }

/*//////////////////// NEWS ////////////////////*/
    .section__inner--news {
        flex-direction: row;
        align-items: center;
        padding: 60px 0 60px 101px;
        box-sizing: border-box;
        gap: 76px;
        position: relative;
        z-index: 1;
    }
    .section__inner--news::after {
        content: "";
        background: linear-gradient(144.33deg, #f4fbff 0%, #eaf7ff 99.48%);
        position: absolute;
        top: 0;
        bottom: 0;
        left: 0;
        right: calc(50% - 50vw);
        z-index: -1;
    }
    .section__inner--news > * + * {
        margin-top: 0;
    }

        .section__header--news {
            flex-shrink: 0;
            align-items: flex-start;
            width: 159px;
            text-align: left;
        }
        .section__header--news > * + * {
            margin-top: 18px;
        }
        .top-news__body {
            display: flex;
            flex: 1;
            flex-direction: column;
            align-items: flex-end;
            min-width: 0;
        }
        .top-news__body > * + * {
            margin-top: 40px;
        }

            .top-news__scroll {
                width: 100%;
                max-height: 360px;
                overflow: auto;
            }
            .top-news__scroll .simplebar-track.simplebar-vertical {
                right: 0;
                width: 3px;
                background: #e2e2e2;
            }
            .top-news__scroll .simplebar-track.simplebar-vertical .simplebar-scrollbar:before,
            .top-news__scroll .simplebar-track.simplebar-vertical .simplebar-scrollbar.simplebar-visible:before {
                top: 0;
                bottom: 0;
                right: 0;
                left: 0;
                background: #3b519a;
                border-radius: 9999px;
                opacity: 1;
            }
                .top-news__list {
                    display: flex;
                    flex-direction: column;
                    width: 100%;
                    padding-right: 50px;
                    box-sizing: border-box;
                }
                .top-news__list > * + * {
                    margin-top: 20px;
                }

                    .top-news__item {
                        display: flex;
                        flex-direction: column;
                        width: 100%;
                        padding-bottom: 18px;
                        border-bottom: 1px solid #e2e2e2;
                    }
                    .top-news__item > * + * {
                        margin-top: 12px;
                    }

                        .top-news__date {
                            color: #3b519a;
                            font-size: 16px;
                            line-height: 1.4;
                        }
                        .top-news__subject {
                            display: flex;
                            flex-direction: column;
                        }
                        .top-news__subject > * + * {
                            margin-top: 6px;
                        }

                            .top-news__ttl {
                                color: #3e455d;
                                font-size: 16px;
                                line-height: 1.4;
                            }

/*//////////////////// STAFF ////////////////////*/
    .top-staff__slider,
    .top-staff__slider.swiper {
        align-self: stretch;
        width: 100%;
        overflow: visible;
    }
        .top-staff__slider .swiper-slide {
            width: 540px;
        }
        /* Swiper未初期化時も spaceBetween:60 相当の間隔を維持（2名表示） */
        .top-staff__slider:not(.swiper-initialized) .swiper-wrapper {
            display: flex;
            gap: 60px;
        }

            .top-staff__item {
                display: flex;
                align-items: center;
                width: 540px;
                gap: 30px;
            }

                .top-staff__img {
                    display: flex;
                    align-items: center;
                    justify-content: center;
                    flex-shrink: 0;
                    width: 244px;
                    height: 325px;
                    overflow: hidden;
                    background: #cfd8dc;
                }
                .top-staff__img img {
                    width: 100%;
                    height: 100%;
                    object-fit: cover;
                }
                .top-staff__content {
                    display: flex;
                    flex: 1;
                    flex-direction: column;
                    align-items: flex-start;
                    justify-content: center;
                    min-width: 0;
                }
                .top-staff__content > * + * {
                    margin-top: 40px;
                }

                    .top-staff__info {
                        display: flex;
                        flex-direction: column;
                        width: 100%;
                    }
                    .top-staff__info > * + * {
                        margin-top: 16px;
                    }

                        .top-staff__name-wrap {
                            display: flex;
                            flex-direction: column;
                        }
                        .top-staff__name-wrap > * + * {
                            margin-top: 2px;
                        }

                            .top-staff__kana {
                                color: #8e8e8e;
                                font-size: 14px;
                                line-height: 1;
                            }
                            .top-staff__name {
                                color: #3b519a;
                                font-size: 20px;
                                font-weight: 600;
                                line-height: 1.4;
                            }
                        .top-staff__text {
                            display: -webkit-box;
                            overflow: hidden;
                            color: #3e455d;
                            font-size: 16px;
                            line-height: 1.5;
                            -webkit-box-orient: vertical;
                            -webkit-line-clamp: 3;
                        }

/*//////////////////// FAQ ////////////////////*/
.section__wrapper--faq {
    padding-bottom: 100px;
}
        .top-faq__list {
            display: flex;
            flex-wrap: wrap;
            gap: 30px;
            width: 100%;
            margin-top: 38px;
        }

            .top-faq__item {
                display: flex;
                flex-direction: column;
                width: calc((100% - 30px) / 2);
                padding: 30px;
                background: #f9f9f9;
                box-sizing: border-box;
            }
            .top-faq__item > * + * {
                margin-top: 9px;
            }

                .top-faq__question,
                .top-faq__answer {
                    display: flex;
                    width: 100%;
                    gap: 12px;
                }
                .top-faq__question > * + *,

                .top-faq__question {
                    align-items: center;
                    min-height: 54px;
                }
                .top-faq__answer {
                    align-items: flex-start;
                }
                    .top-faq__icon {
                        display: flex;
                        align-items: center;
                        justify-content: center;
                        flex-shrink: 0;
                        width: 35px;
                        height: 35px;
                        border-radius: 50%;
                        font-size: 18px;
                        font-weight: 700;
                        letter-spacing: 0.03em;
                        line-height: 1;
                    }
                    .top-faq__icon--q {
                        background: #3b519a;
                        color: #fff;
                        padding-bottom: 3px;
                    }
                    .top-faq__icon--a {
                        background: #fff;
                        color: #3b519a;
                        font-size: 20px;
                        padding-bottom: 4px;
                    }
                    .top-faq__q-txt {
                        flex: 1;
                        min-width: 0;
                        min-height: auto;
                        color: #3b519a;
                        font-size: 18px;
                        letter-spacing: 0.03em;
                        line-height: 1.5;
                    }
                    .top-faq__a-txt {
                        flex: 1;
                        min-width: 0;
                        color: #343437;
                        font-size: 16px;
                        line-height: 1.8;
                    }
