@charset "utf-8";


main {
    /* ヒーローセクション */
    .hero-banner {
        position: relative;
        width: 100%;
        max-height: 600px;
        overflow: hidden;

        .hero-text {
            width: 100%;
            z-index: 10;
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            color: #ffffff;
            text-align: center;
            padding: 0 20px;

            h2 {
                font-size: 2.5rem;
                font-weight: bold;
                margin-bottom: 1rem;
                line-height: 1.4;

                @media(width <=768px) {
                    font-size: 1.3rem;
                }
            }

            p {
                font-size: 1.2rem;

                @media(width <=768px) {
                    font-size: 1rem;
                }
            }
        }

        .hero-image {
            width: 100%;
            height: auto;
            display: block;
            object-fit: cover;
            filter: brightness(70%);
        }
    }

    /* トップページイントロ */
    .intro {
        background-color: #fff7f9;
        padding: var(--spacing-s);
        text-align: center;


        h2 {
            color: #c45c8b;
            padding: var(--spacing-s);

        }

        p {
            max-width: 800px;
            margin: 0 auto;
            font-size: 1rem;
            color: #444;
            line-height: 1.8;
        }

        .training {
            text-align: center;
            margin-top: var(--spacing-m);

            .training-button {
                display: inline-flex;
                align-items: center;
                gap: 0.5rem;
                background-color: var(--font-pink);
                color: #fff;
                font-weight: bold;
                padding: 0.75rem 2rem;
                border-radius: 2rem;
                text-decoration: none;
                font-size: 1rem;
                transition: background-color 0.3s ease, transform 0.2s ease;

                &:hover {
                    transform: scale(1.05);
                }

                &:active {
                    transform: scale(0.98);
                }

                @media (width <=480px) {
                    font-size: 0.9rem;
                    padding: 0.65rem 1.5rem;
                    white-space: nowrap;
                }
            }
        }
    }

    .beforeafter {
        background-color: #f8f8f8;
        padding: var(--spacing-l) 14px 56px;
        text-align: center;

        .beforeafter-inner {
            max-width: 1200px;
            margin: 0 auto;
            text-align: center;

            h2 {
                color: #c45c8b;
                font-size: 2rem;
                font-weight: bold;
                text-align: center;
                margin-bottom: var(--spacing-m);
                position: relative;
                line-height: 1.4;

                &::after {
                    content: "";
                    display: block;
                    width: 80px;
                    height: 3px;
                    background-color: #c45c8b;
                    margin: 0.8rem auto 0;
                    border-radius: 2px;
                }

                @media(width <=768px) {
                    font-size: 1.5rem;

                    &::after {
                        width: 50px;
                        height: 2px;
                    }
                }
            }

            .layout {
                margin-top: var(--spacing-s);
                display: flex;
                gap: var(--spacing-s);
                align-items: stretch;

                @media(width <=768px) {
                    display: grid;
                }

                .success-card {
                    background: #fff;
                    border-radius: 1rem;
                    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
                    padding: 1.5rem;
                    text-align: center;
                    max-width: 500px;
                    margin: 0 auto;
                    flex: 1;
                    display: flex;
                    flex-direction: column;
                    justify-content: space-between;
                    min-height: 670px;

                    @media(width <=768px) {
                        min-height: inherit;
                        max-width: 320px;
                    }

                    .photo-comparison {
                        display: flex;
                        justify-content: space-between;
                        gap: 1rem;
                        margin-bottom: 1rem;

                        img {
                            width: 100%;
                            border-radius: 0.5rem;
                            object-fit: cover;
                        }
                    }

                    .catch {
                        font-size: 1.25rem;
                        font-weight: bold;
                        color: #e91e63;
                        margin-bottom: 0.75rem;
                    }

                    .message {
                        font-size: 1rem;
                        color: #444;
                        line-height: 1.6;
                    }

                    @media (width <=480px) {
                        .photo-comparison {
                            flex-direction: column;

                            img {
                                width: 100%;
                            }
                        }
                    }
                }
            }

            .ba-more {
                text-align: center;
                margin-top: var(--spacing-m);

                .ba-button {
                    display: inline-flex;
                    align-items: center;
                    gap: 0.5rem;
                    background-color: var(--font-pink);
                    color: #fff;
                    font-weight: bold;
                    padding: 0.75rem 2rem;
                    border-radius: 2rem;
                    text-decoration: none;
                    font-size: 1rem;
                    transition: background-color 0.3s ease, transform 0.2s ease;

                    &:hover {
                        transform: scale(1.05);
                    }

                    &:active {
                        transform: scale(0.98);
                    }

                    @media (width <=480px) {
                        font-size: 0.9rem;
                        padding: 0.65rem 1.5rem;
                        white-space: nowrap;
                    }
                }
            }
        }
    }


    .review {
        background-color: #fefefe;
        padding: var(--spacing-l) 14px 56px;
        text-align: center;

        .review-inner {
            max-width: 1200px;
            margin: 0 auto;
            padding: 0 14px;
        }

        h2 {
            text-align: center;
            color: #c45c8b;
            font-size: 2rem;
            font-weight: bold;
            line-height: 1.4;
            margin-bottom: var(--spacing-m);
            position: relative;

            &::after {
                content: "";
                display: block;
                width: 80px;
                height: 3px;
                background-color: #c45c8b;
                margin: 0.8rem auto 0;
                border-radius: 2px;
            }

            @media(width <=768px) {
                font-size: 1.5rem;
                margin-bottom: 1.5rem;

                &::after {
                    width: 50px;
                    height: 2px;
                }
            }
        }

        .intro {
            background-color: inherit;
            padding: 0;
            text-align: center;
            color: #555;
            font-size: 1rem;
            margin-bottom: var(--spacing-s);
        }

        .review-list {
            text-align: left;
            display: flex;
            align-items: stretch;
            justify-content: center;
            gap: var(--spacing-s);

            @media(width <=768px) {
                display: grid;
            }

            .review-card {
                width: 100%;
                background: #fff;
                border-radius: 1rem;
                padding: 1.5rem;
                box-shadow: 0 4px 8px rgba(0, 0, 0, 0.08);

                .photo {
                    .video-wrapper {
                        position: relative;
                        width: 100%;
                        padding-bottom: 56.25%;

                        iframe {
                            position: absolute;
                            top: 0;
                            left: 0;
                            width: 100%;
                            height: 100%;
                            border: none;
                        }
                    }
                }

                .text {
                    flex: 1;

                    .user-info {
                        font-weight: bold;
                        color: #c45c8b;
                        margin-bottom: 0.5rem;
                    }

                    .comment {
                        font-size: 1rem;
                        color: #444;
                        line-height: 1.6;
                    }
                }
            }
        }

        .review-more {
            text-align: center;
            margin-top: var(--spacing-m);

            .review-button {
                display: inline-flex;
                align-items: center;
                gap: 0.5rem;
                background-color: var(--font-pink);
                color: #fff;
                font-weight: bold;
                padding: 0.75rem 2rem;
                border-radius: 2rem;
                text-decoration: none;
                font-size: 1rem;
                transition: background-color 0.3s ease, transform 0.2s ease;

                &:hover {
                    transform: scale(1.05);
                }

                &:active {
                    transform: scale(0.98);
                }

                @media (width <=480px) {
                    font-size: 0.9rem;
                    padding: 0.65rem 1.5rem;
                    white-space: nowrap;
                }
            }
        }
    }


    .price {
        background-color: #fff0f5;
        padding: var(--spacing-l) 14px 56px;
        text-align: center;

        .price-inner {
            max-width: 1200px;
            margin: 0 auto;
            padding: 0 14px;
        }

        h2 {
            color: #c45c8b;
            font-size: 2rem;
            font-weight: bold;
            text-align: center;
            margin-bottom: var(--spacing-m);
            position: relative;
            line-height: 1.4;

            &::after {
                content: "";
                display: block;
                width: 80px;
                height: 3px;
                background-color: #c45c8b;
                margin: 0.8rem auto 0;
                border-radius: 2px;
            }

            @media(width <=768px) {
                font-size: 1.5rem;

                &::after {
                    width: 50px;
                    height: 2px;
                }
            }
        }

        .intro {
            background-color: inherit;
            font-size: 1rem;
            color: #555;
            padding: 0;
            margin-bottom: var(--spacing-m);

            @media(width <=768px) {
                margin-bottom: var(--spacing-s);
            }
        }

        .price-list {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
            gap: 1.5rem;

            .price-card {
                cursor: pointer;
                border: 2px solid #f3c6da;
                background-color: #fff;
                box-shadow: 0 6px 12px rgba(0, 0, 0, 0.08);
                transition: transform 0.3s ease, box-shadow 0.3s ease;
                border-radius: 1rem;
                padding: 1.5rem;
                display: flex;
                flex-direction: column;
                align-items: center;

                &:hover {
                    transform: translateY(-4px);
                    box-shadow: 0 12px 20px rgba(0, 0, 0, 0.12);
                }

                &.recommended {
                    border: 2px solid #ff99bb;
                    background: linear-gradient(135deg, #ffe4ec, #ffffff);
                    position: relative;
                    z-index: 1;
                    transform: scale(1.03);
                    box-shadow: 0 12px 20px rgba(228, 60, 109, 0.2);

                    &::before {
                        content: "おすすめ";
                        position: absolute;
                        top: -12px;
                        left: 50%;
                        transform: translateX(-50%);
                        background-color: #e91e63;
                        color: #fff;
                        font-size: 0.75rem;
                        font-weight: bold;
                        padding: 0.3rem 0.8rem;
                        border-radius: 999px;
                        box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
                        letter-spacing: 0.05em;
                    }

                    &:hover {
                        transform: scale(1.06);
                        box-shadow: 0 14px 24px rgba(228, 60, 109, 0.3);
                    }
                }

                .plan-title {
                    font-size: 1.25rem;
                    font-weight: bold;
                    color: #c45c8b;
                    margin-bottom: 0.5rem;
                }

                .price {
                    padding: var(--spacing-s) 14px;
                    border-top: none;
                    background: linear-gradient(135deg, #fbeaff, #d6e0ff);
                    font-size: 1.2rem;
                    color: #e91e63;
                    font-weight: bold;
                    margin-bottom: 0.5rem;
                }

                .desc {
                    font-size: 1rem;
                    color: #444;
                    line-height: 1.5;
                }
            }
        }

        .price-more {
            text-align: center;
            margin-top: var(--spacing-m);

            .price-button {
                display: inline-flex;
                align-items: center;
                gap: 0.5rem;
                background-color: var(--font-pink);
                color: #fff;
                font-weight: bold;
                padding: 0.75rem 2rem;
                border-radius: 2rem;
                text-decoration: none;
                font-size: 1rem;
                transition: background-color 0.3s ease, transform 0.2s ease;

                &:hover {
                    transform: scale(1.05);
                }

                &:active {
                    transform: scale(0.98);
                }

                @media (width <=480px) {
                    font-size: 0.9rem;
                    padding: 0.65rem 1.5rem;
                    white-space: nowrap;
                }
            }
        }
    }

    .trainer {
        background-color: #fff;
        padding: var(--spacing-l) 14px 56px;

        .trainer-inner {
            max-width: 960px;
            margin: 0 auto;
            text-align: left;
        }

        h2 {
            color: #c45c8b;
            font-size: 2rem;
            font-weight: bold;
            text-align: center;
            margin-bottom: var(--spacing-m);
            line-height: 1.4;
            position: relative;

            &::after {
                content: "";
                display: block;
                width: 80px;
                height: 3px;
                background-color: #c45c8b;
                margin: 0.8rem auto 0;
                border-radius: 2px;
            }

            @media (width <=768px) {
                font-size: 1.5rem;

                &::after {
                    width: 50px;
                    height: 2px;
                }
            }
        }

        .intro {
            background-color: inherit;
            text-align: center;
            font-size: 1rem;
            color: #555;
            margin-bottom: var(--spacing-l);
        }

        .trainer-profile {
            display: flex;
            align-items: center;
            gap: 2rem;

            @media (width <=768px) {
                flex-direction: column;
                gap: 1.5rem;
            }

            .trainer-photo {
                flex-shrink: 0;
                width: 240px;
                height: 240px;
                border-radius: 50%;
                overflow: hidden;
                box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);

                img {
                    width: 100%;
                    height: 100%;
                    object-fit: cover;
                    display: block;
                }
            }

            .trainer-info {
                flex: 1;

                .trainer-name {
                    font-size: 1.5rem;
                    font-weight: bold;
                    color: #c45c8b;
                    margin-bottom: 0.25rem;
                }

                .trainer-title {
                    font-size: 1rem;
                    color: #999;
                    margin-bottom: 1rem;
                }

                .trainer-bio {
                    font-size: 1rem;
                    color: #333;
                    line-height: 1.6;
                }
            }
        }

        .trainer-more {
            text-align: center;
            margin-top: var(--spacing-l);

            .trainer-button {
                display: inline-block;
                background-color: #c45c8b;
                color: #fff;
                padding: 0.75rem 1.5rem;
                font-size: 1rem;
                border-radius: 999px;
                text-decoration: none;
                transition: background-color 0.3s ease, transform 0.3s ease;
                cursor: pointer;

                &:hover {
                    background-color: #a6446f;
                    transform: translateY(-2px);
                }
            }
        }
    }


    .faq {
        background-color: #f4f4f4;
        padding: var(--spacing-l) 14px 56px;

        .faq-inner {
            max-width: 960px;
            margin: 0 auto;
            text-align: left;
        }

        h2 {
            color: #c45c8b;
            font-size: 2rem;
            font-weight: bold;
            text-align: center;
            margin-bottom: var(--spacing-m);
            line-height: 1.4;
            position: relative;

            &::after {
                content: "";
                display: block;
                width: 80px;
                height: 3px;
                background-color: #c45c8b;
                margin: 0.8rem auto 0;
                border-radius: 2px;
            }

            @media (width <=768px) {
                font-size: 1.5rem;

                &::after {
                    width: 50px;
                    height: 2px;
                }
            }
        }

        .intro {
            background-color: inherit;
            text-align: center;
            font-size: 1rem;
            color: #555;
            margin-bottom: var(--spacing-s);
        }

        .faq-list {
            display: flex;
            flex-direction: column;

            .faq-item {
                background-color: #fff0f5;
                border-left: 4px solid #e91e63;
                border-radius: 0.5rem;
                box-shadow: 0 2px 6px rgba(0, 0, 0, 0.05);
                margin-bottom: var(--spacing-m);
                padding: 1rem 1.25rem;

                .faq-question {
                    font-weight: bold;
                    color: #c45c8b;
                    font-size: 1.1rem;
                    margin: 0 0 0.5rem;
                }

                .faq-answer {
                    color: #333;
                    line-height: 1.6;
                    font-size: 1rem;
                    margin: 0;
                }
            }
        }

        .faq-more {
            text-align: center;
            margin-top: -24px;

            .faq-button {
                margin-top: var(--spacing-m);
                display: inline-block;
                background-color: #c45c8b;
                color: #fff;
                padding: 0.75rem 1.5rem;
                font-size: 1rem;
                border-radius: 999px;
                text-decoration: none;
                transition: background-color 0.3s ease, transform 0.3s ease;
                cursor: pointer;

                &:hover {
                    background-color: #a6446f;
                    transform: translateY(-2px);
                }
            }
        }
    }


    .access {
        padding: var(--spacing-l) 14px;
        background-color: #f7fcff;

        h2 {
            text-align: center;
            font-size: 2rem;
            color: #c45c8b;
            font-weight: bold;
            margin-bottom: var(--spacing-m);
            position: relative;

            &::after {
                content: "";
                display: block;
                width: 80px;
                height: 3px;
                background-color: #c45c8b;
                margin: 0.8rem auto 0;
                border-radius: 2px;
            }

            @media (width <=768px) {
                font-size: 1.5rem;

            }
        }

        .desc {
            text-align: center;

            .br-sp {
                display: none;

                @media (width <=768px) {
                    display: inline;
                }
            }
        }

        .access-card {
            display: flex;
            gap: 2rem;
            max-width: 1200px;
            margin: 0 auto;
            background: #fff;
            border-radius: 1rem;
            box-shadow: 0 8px 16px rgba(0, 0, 0, 0.06);
            padding: 2rem;
            align-items: center;

            @media (width <=768px) {
                flex-direction: column;
                padding: 1.5rem;
            }

            .info {
                flex: 1;

                .store-name {
                    margin-bottom: 1rem;

                    .main {
                        display: block;
                        font-size: 1.25rem;
                        font-weight: bold;
                        color: #c45c8b;
                    }

                    .sub {
                        display: block;
                        font-size: 0.95rem;
                        color: #666;
                    }
                }

                .store-info {
                    list-style: none;
                    padding: 0;

                    li {
                        margin-bottom: 1rem;
                        font-size: 1rem;
                        color: #333;

                        .icon {
                            margin-right: 0.5rem;
                            font-size: 1.1rem;
                        }

                        .label {
                            font-weight: bold;
                            margin-right: 0.3rem;
                            color: #555;
                        }

                        a {
                            color: #c45c8b;
                            text-decoration: underline;

                            &:hover {
                                text-decoration: none;
                            }
                        }
                    }
                }
            }

            .map {
                flex: 1;

                iframe {
                    width: 100%;
                    height: 300px;
                    border-radius: 0.75rem;
                    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
                }
            }
        }
    }
}