/* トップページ用CSS */

/* 共通パーツ（ページ内） */
.sec-text {
    font-size: calc(14 * var(--px));
    line-height: 1.8;
    letter-spacing: 0.08em;
}

/* MV */
.sec-top {
    & .sec-top_title-en {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip-path: inset(50%);
        white-space: nowrap;
    }
}

/* TRAINER'S BLOG */
.sec-blog {
    position: relative;
    background-color: var(--base);

    &::before {
        content: "";
        position: absolute;
        inset: 0;
        background: url(../img/blog_bg.png) center / cover no-repeat;
        opacity: 0.26;
        pointer-events: none;
    }

    & .sec-blog_inner {
        position: relative;
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: calc(32 * var(--px));
        padding: calc(40 * var(--px)) calc(16 * var(--px)) calc(56 * var(--px));
    }

    & .sec-blog_body {
        display: flex;
        flex-direction: column;
        gap: calc(24 * var(--px));
        width: 100%;
    }
}

.blog-gallery {
    display: flex;
    gap: calc(12 * var(--px));
    height: calc(250 * var(--px));
    border-radius: calc(32 * var(--px)) 0;
    overflow: hidden;

    & .blog-gallery_col {
        display: flex;
        flex-direction: column;
        gap: calc(8 * var(--px));
        flex: 1;
    }

    & .blog-gallery_item {
        position: relative;
        overflow: hidden;

        & img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            transition: transform 0.4s ease;
        }
    }

    & .blog-gallery_item--beauty {
        flex: 1;
    }

    & .blog-gallery_item--diet {
        height: calc(86 * var(--px));
        flex-shrink: 0;

        & img {
            object-position: center bottom;
        }
    }

    & .blog-gallery_item--private {
        flex: 1;
    }

    & .blog-gallery_label {
        position: absolute;
        left: calc(4.5 * var(--px));
        bottom: calc(5 * var(--px));
        font-family: var(--font-en);
        font-weight: 500;
        font-size: calc(16 * var(--px));
        line-height: 1;
        letter-spacing: 0.1em;
        color: var(--white);
    }

    & .blog-gallery_item--beauty .blog-gallery_label {
        left: calc(8 * var(--px));
    }

    & .blog-gallery_item--diet .blog-gallery_label {
        bottom: calc(2 * var(--px));
    }
}


/* VIP MENBER'S BENEFIT */
.sec-benefit {
    position: relative;
    background: url(../img/benefit_bg.png) center / cover no-repeat;

    & .sec-benefit_curve {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: calc(30 * var(--px));
    }

    & .sec-benefit_inner {
        position: relative;
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: calc(32 * var(--px));
        padding: calc(48 * var(--px)) calc(16 * var(--px)) calc(56 * var(--px));
    }
}

.benefit-card {
    width: 100%;
    border: 3px solid var(--white);
    border-radius: calc(16 * var(--px));

    & .benefit-card_inner {
        display: flex;
        flex-direction: column;
        gap: calc(16 * var(--px));
        padding-bottom: calc(24 * var(--px));
        border-radius: calc(12 * var(--px));
        background-color: var(--base);
        overflow: hidden;
    }

    & .benefit-card_img img {
        height: calc(200 * var(--px));
        object-fit: cover;
    }

    & .benefit-card_text {
        padding-inline: calc(16 * var(--px));
    }
}
