@charset "UTF-8";

/* 共通パーツ
-------------------------------------------------- */
html {
    font-size: 62.5%;

    /* @media (min-width: 768px) and (max-width: 1440px) {
        font-size: calc(10 / 1440 * 100vw);
    }

    @media (min-width: 320px) and (max-width: 767px) {
        font-size: calc(10 / 767 * 100vw);
    } */
}

body {
    color: #fff;
    font-size: 1.6rem;
    font-family: "Noto Sans JP", "Zen Maru Gothic", "League Spartan", "Playfair Display", sans-serif;
}

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

a, span {
    display: inline-block;
}

@media screen and (min-width: 768px) {
    a[href^="tel:"] {
        pointer-events: none;
        cursor: default;
    }
}

.l-inner {
    position: relative;
    z-index: 20;
    max-width: 1100px;
    margin-inline: auto;
    padding-inline: 20px;
}

.c-title {
    color: #d4af37;
    font-size: clamp(2.00rem, 2.07vw + 1.22rem, 4.20rem);
    font-weight: 700;
    letter-spacing: 0.08em;
    text-align: center;
    filter: drop-shadow(0 0 8px rgba(0, 0, 0, 0.75));
    text-stroke: 10px #fff;
    -webkit-text-stroke: 10px #fff;
    paint-order: stroke;
}

.min-large {
    display: block;
}

.sp-only {
    display: none;
}

/* ボタン */

.btn__small {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 15px;
    width: 230px;
    padding: 10px 20px;
    background-color: #d4af37;
    border: 2px solid #fff;
    border-radius: 60px;
    transition: all 0.4s ease;
}

.btn__small:hover {
    background-color: #d72638;
    transform: scale(1.05);
}

.btn__small img {
    width: 25px;
}

.btn__small span {
    font-weight: 700;
    letter-spacing: 0.08em;
}

.l-header__cta .btn__small:nth-of-type(2) span {
    font-size: 1.3rem;
}

.btn__large {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 15px;
    width: 350px;
    padding: 20px;
    background-color: #d4af37;
    border: 2px solid #fff;
    border-radius: 60px;
    transition: all 0.4s ease;
}

.btn__large:hover {
    background-color: #d72638;
    transform: scale(1.05);
}

.btn__large img {
    width: 35px;
}

.btn__large span {
    font-size: 2.4rem;
    font-weight: 700;
    letter-spacing: 0.08em;
}

.p-fv__cta > .btn__large span {
    font-size: 2rem;
}

/* swiper */
.swiper-container {
    position: relative;
}

.swiper {
    margin-bottom: 20px;
}

.swiper-button-prev::before,
.swiper-button-next::before,
.swiper-button-prev::after,
.swiper-button-next::after {
    position: absolute;
    content: "";
    margin: auto;
    bottom: 0;
    background: none;
}

.swiper-button-box {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
}

.swiper-button-prev,
.swiper-button-next {
    display: flex;
    align-items: center;
    width: 10%;
}

.swiper-button-prev {
    justify-content: flex-start;
    transform: rotate(180deg);
}

.swiper-button-next {
    justify-content: flex-end;
}

.swiper-pagination {
    position: static !important;
    width: 100% !important;
    color: #000;
    font-size: 14px;
    font-weight: 700;
}

.swiper-pagination-bullet {
    width: 15px;
    height: 15px;
    /* background-color: #d9d9d9; */
    border-radius: 50%;
}

.swiper-pagination-bullet-active {
    background-color: #d72638;
    border: 3px solid #d4af37;
}

@media screen and (max-width: 1200px) {

    .btn__small {
        width: 220px;
    }
}

@media screen and (max-width: 768px) {

    .pc-only {
        display: none;
    }

    .sp-only {
        display: block;
    }

    .btn__small {
        display: none
    }
}

/* ヘッダー
-------------------------------------------------- */
.l-header {
    position: fixed;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    z-index: 100;
    width: 100%;
    max-width: 1440px;
    padding: 25px 0;
}

.l-header__inner {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    padding-inline: 30px;
}

.l-header__logo a {
    display: flex;
    align-items: center;
    transition: all 0.4s ease;
}

.l-header__logo a:hover {
    opacity: 0.7;
}

.l-header__logo img {
    width: 100px;
}

.l-header__logo span {
    color: #000;
    font-size: clamp(1.40rem, 0.94vw + 1.05rem, 2.40rem);
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.08em;
    text-align: center;
}

.l-header__cta {
    display: flex;
    align-items: center;
    gap: 30px;
}

@media screen and (max-width: 768px) {

    .l-header {
        left: 0;
        transform: translateX(0);
        width: 40%;
        max-width: 768px;
        padding: 25px 0;
    }
}

/* ファーストビュー
-------------------------------------------------- */
.p-fv {
    position: relative;
}

.p-fv__title {
    position: absolute;
    top: 33%;
    left: 50%;
    transform: translate(-50%, 0);
    z-index: 10;
    width: 100%;
    font-size: clamp(3.20rem, 3.76vw + 1.79rem, 7.20rem);
    font-weight: 700;
    font-style: italic;
    line-height: 1.5;
    letter-spacing: 0.08em;
    text-align: center;
    text-shadow: 4px 4px 4px rgba(0, 0, 0, 0.25);
}

.p-fv__title span {
    position: relative;
    color: #dc0e23;
    text-shadow: 0 0 8px rgba(255, 255, 255, 1);
}

.p-fv__title span::after {
    content: "";
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: -1;
    height: 36px;
    background-color: #fff;
    transform:skewX(-15deg) ;
}

.p-fv__list {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 20;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    width: 100%;
    padding: 30px 0;
    background-color: #d72638;
    border-radius: 10px;
}

.p-fv__item {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 20px;
    width: 250px;
}

.p-fv__item-circle {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 50px;
    height: 50px;
    border-radius: 50%;
    border: 3px solid #fff;
}

.p-fv__item-circle img {
    width: 20px;
}

.p-fv__item p {
    font-size: clamp(1.20rem, 0.38vw + 1.06rem, 1.60rem);
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.08em;
    text-align: center;
}

.p-fv__cta-wrapper {
    padding: 140px 0 35px 0;
    background-color: #292929;
}

.p-fv__text {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 10px;
    font-size: 2rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-align: center;
}

.p-fv__text::before,
.p-fv__text::after {
    content: "";
    width: 20px;
    height: 3px;
    background-color: #fff;
}

.p-fv__text::before {
    margin-right: 10px;
    transform: rotate(45deg);
}

.p-fv__text::after {
    margin-left: 10px;
    transform: rotate(-45deg);
}

.p-fv__cta {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    gap: 45px;
}

.p-fv__description {
    font-size: 1.3rem;
    line-height: 1.5;
    letter-spacing: 0.08em;
    text-align: center;
}

@media screen and (max-width: 1200px) {

    .p-fv__list {
        width: 75%;
    }
}

@media screen and (max-width: 992px) {

    .p-fv__title {
        top: 24%;
    }
}

@media screen and (max-width: 768px) {

    .p-fv__title {
        top: 26%;
        left: 8%;
        transform: translate(0, 0);
        width: 60%;
        text-align: left;
    }

    .p-fv__list {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -195%);
    }

    .p-fv__cta {
        flex-direction: column;
        align-items: center;
        gap: 20px;
    }

    .p-fv__cta-wrapper {
        position: relative;
        z-index: 10;
        margin-top: -20rem;
        padding-top: 60px;
    }
}

@media screen and (max-width: 576px) {

    .p-fv__title {
        top: 22%;
        width: 70%;
    }

    .p-fv__list {
        transform: translate(-50%, -125%);
        width: 90%;
        align-items: flex-start;
    }

    .p-fv__cta-wrapper {
        margin-top: -7rem;
    }

    .p-fv__text {
        font-size: 1.9rem;
    }
}

/* こんなお悩みありませんか？
-------------------------------------------------- */
.p-worry {
    padding-top: 100px;
    background-image: linear-gradient(#8a8989, #f0eeee 37%);
}

.p-worry__title {
    margin-bottom: 160px;
}

.p-worry__person {
    position: relative;
    z-index: 10;
    display: flex;
    align-items: flex-end;
    justify-content: center;
}

.p-worry__woman-img {
    width: 290px;
}

.p-worry__man-img {
    width: 310px;
}

.p-worry__img-01,
.p-worry__img-02,
.p-worry__img-03,
.p-worry__img-04,
.p-worry__img-05,
.p-worry__img-06,
.p-worry__img-07,
.p-worry__img-08 {
    position: absolute;
}

.p-worry__img-01,
.p-worry__img-02,
.p-worry__img-03,
.p-worry__img-04,
.p-worry__img-05,
.p-worry__img-06 {
    width: 225px;
}

.p-worry__img-07,
.p-worry__img-08 {
    width: 150px;
}

.p-worry__img-01 {
    top: 53%;
    left: 4%;
}

.p-worry__img-02 {
    top: 31%;
    left: 10%;
}

.p-worry__img-03 {
    top: 13%;
    left: 26%;
}

.p-worry__img-04 {
    top: 13%;
    right: 26%;
}

.p-worry__img-05 {
    top: 31%;
    right: 8%;
}

.p-worry__img-06 {
    top: 54%;
    right: 0%;
}

.p-worry__img-07 {
    top: 31%;
    left: 37%;
}

.p-worry__img-08 {
    top: 12%;
    right: 11%;
    transform: scalex(-1);
}

@media screen and (max-width: 992px) {

    .p-worry__woman-img {
        width: 210px;
    }

    .p-worry__man-img {
        width: 200px;
    }

    .p-worry__img-01,
    .p-worry__img-02,
    .p-worry__img-03,
    .p-worry__img-04,
    .p-worry__img-05,
    .p-worry__img-06 {
        width: 170px;
    }

    .p-worry__img-07,
    .p-worry__img-08 {
        width: 110px;
    }

}

@media screen and (max-width: 768px) {

    .p-worry {
        padding-top: 5rem;
    }

    .p-worry__img-01,
    .p-worry__img-02,
    .p-worry__img-03,
    .p-worry__img-04,
    .p-worry__img-05,
    .p-worry__img-06 {
        width: 140px;
    }

    .p-worry__img-07,
    .p-worry__img-08 {
        width: 110px;
    }

    .p-worry__img-02 {
        top: 36%;
    }

    .p-worry__img-03 {
        top: 22%;
        left: 21%;
    }

    .p-worry__img-04 {
        top: 17%;
        right: 26%;
    }

    .p-worry__img-05 {
        top: 28%;
        right: 5%;
    }

    .p-worry__img-06 {
        top: 43%;
    }
}

@media screen and (max-width: 576px) {

    .p-worry {
        padding-top: 4rem;
    }

    .p-worry__woman-img {
        width: 130px;
    }

    .p-worry__man-img {
        width: 140px;
    }

    .p-worry__img-01,
    .p-worry__img-02,
    .p-worry__img-03,
    .p-worry__img-04,
    .p-worry__img-05,
    .p-worry__img-06 {
        width: 120px;
    }

    .p-worry__img-07,
    .p-worry__img-08 {
        width: 70px;
    }

    .p-worry__img-01 {
        top: 53%;
        left: 4%;
    }

    .p-worry__img-02 {
        top: 37%;
        left: 7%;
    }

    .p-worry__img-03 {
        top: 21%;
        left: 11%;
    }

    .p-worry__img-04 {
        top: 17%;
        right: 20%;
    }

    .p-worry__img-05 {
        top: 47%;
        right: 0%;
    }

    .p-worry__img-06 {
        top: 31%;
        right: 0%;
    }

    .p-worry__img-07 {
        top: 31%;
        left: 37%;
    }

    .p-worry__img-08 {
        top: 12%;
        right: 11%;
        transform: scalex(-1);
    }
}

/* そんなあなたに短期集中のパーソナルトレーニング
-------------------------------------------------- */
.p-training {
    position: relative;
    padding: 5rem 0 20rem 0;
}

.p-training::before {
    content: "";
    position: absolute;
    top: -75px;
    left: 0;
    z-index: 20;
    width: 100%;
    height: 100%;
    background-image: url(../img/training/training-bg-img.png);
    background-size: 100% 100%;
    background-repeat: no-repeat;
}

.p-training__title {
    margin-bottom: 5rem;
    color: #fff;
    font-size: clamp(2.00rem, 2.07vw + 1.22rem, 4.20rem);
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.08em;
    text-align: center;
    filter: drop-shadow(0 0 8px rgba(0, 0, 0, 0.75));
    text-stroke: 10px #d4af37;
    -webkit-text-stroke: 10px #d4af37;
    paint-order: stroke;
}

.p-training__flex {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    gap: 6rem;
}

.p-training__list {
    display: flex;
    flex-direction: column;
    gap: 3rem;
}

.p-training__item {
    position: relative;
    padding-left: 40px;
}

.p-training__item::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    z-index: 10;
    width: 25px;
    height: 20px;
    background-size: contain;
    background-repeat: no-repeat;
    background-image: url(../img/training/trainig-icon.png);
}

.p-training__item-title {
    margin-bottom: 10px;
    font-size: clamp(1.60rem, 1.19vw + 0.68rem, 2.40rem);
    font-weight: 700;
    letter-spacing: 0.08em;
    text-shadow: 4px 4px 4px rgba(0, 0, 0, 0.25);
}

.p-training__item-text {
    font-size: clamp(1.20rem, 0.60vw + 0.74rem, 1.60rem);
    font-weight: 500;
    letter-spacing: 0.08em;
}

.p-training__img {
    width: calc(420 / 1040 * 100%);
}

@media screen and (max-width: 1400px) {

    .p-training__list {
        gap: 2rem;
    }

    .p-training__img {
        width: calc(370 / 1040 * 100%);
    }
}

@media screen and (max-width: 1200px) {

    .p-training__title {
        margin-bottom: 2rem;
    }
}

@media screen and (max-width: 768px) {

    .p-training {
        padding: 5rem 0 35rem 0;
    }

    .p-training::before {
        top: -80px;
    }

    .p-training__title {
        margin-bottom: 7rem;
    }

    .p-training__flex {
        flex-direction: column;
        gap: 6rem;
    }

    .p-training__list {
        gap: 3rem;
    }

    .p-training__item-title {
        font-size: clamp(1.80rem, 2.04vw + 1.03rem, 2.60rem);
    }

    .p-training__item-text {
        font-size: clamp(1.00rem, 2.04vw + 0.23rem, 1.80rem);
    }

    .p-training__img {
        width: 100%;
    }
}

@media screen and (max-width: 576px) {

    .p-training {
        padding: 5rem 0 20rem 0;
    }
}

@media screen and (max-width: 450px) {

    .p-training__title {
        margin-bottom: 3rem;
        font-size: 1.9rem;
    }

    .p-training__flex {
        gap: 1rem;
    }

    .p-training__list {
        gap: 2rem;
    }

    .p-training__item {
        padding-left: 20px;
    }

    .p-training__item::before {
        left: -10px;
    }

    .p-training__item-title {
        font-size: 1.6rem;
    }

    .p-training__item-text {
        font-size: 1.0rem;
    }
}


/* PERSONAL FITNESS CLUBのこだわり
-------------------------------------------------- */
.p-commitment {
    position: relative;
    padding-top: 190px;
}

.p-commitment__title {
    margin-bottom: 50px;
}

.p-commitment__text-wrapper {
    width: calc(690 / 1040 * 100%);
    margin-inline: auto;
    margin-bottom: 70px;
}

.p-commitment__text {
    color: #292929;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.08em;
}

.p-commitment__flex {
    display: flex;
    justify-content: center;
    margin-bottom: 70px;
    gap: 10rem;
}

.p-commitment__item--img {
    position: relative;
    width: calc(510 / 1040 * 100%);
}

.p-commitment__item--text {
    width: calc(420 / 1040 * 100%);
}

.p-commitment__img-01 {
    width: calc(420 / 510 * 100%);
}

.p-commitment__img-02 {
    position: absolute;
    right: 0;
    bottom: 0;
    width: calc(240 / 510 * 100%);
}

.p-commitment__img-03 {
    display: block;
    width: calc(420 / 510 * 100%);
    margin-left: auto;
}

.p-commitment__img-04 {
    position: absolute;
    bottom: 0;
    left: 0;
    width: calc(240 / 510 * 100%);
}

.p-commitment__item--text span {
    display: block;
    margin-bottom: 35px;
    color: #ff707f;
    font-size: clamp(2.40rem, 0.75vw + 2.12rem, 3.20rem);
    font-weight: 700;
    letter-spacing: 0.08em;
    text-align: center;
}

.p-commitment__item--text h4 {
    margin-bottom: 20px;
    color: #d72638;
    font-size: clamp(1.60rem, 1.19vw + 0.68rem, 2.40rem);
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.08em;
    text-align: center;
}

.p-commitment__item--text h4::after {
    content: "";
    display: block;
    width: 65px;
    height: 1px;
    margin-inline: auto;
    margin-top: 20px;
    background-color: #ff707f;
}

.p-commitment__item--text p {
    color: #292929;
    font-size: clamp(1.20rem, 0.60vw + 0.74rem, 1.60rem);
    font-weight: 500;
    line-height: 1.5;
    letter-spacing: 0.08em;
}

.p-commitment__cta {
    position: relative;
    padding: 10rem 0 5rem 0;
}

.p-commitment__cta::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: url(../img/CTA/CTA-bg-img-01.png);
    background-size: 100% 100%;
    background-repeat: no-repeat;
}

.p-commitment__cta-img {
    position: absolute;
    top: -360px;
    right: -10%;
    z-index: 10;
    width: calc(330 / 1080 * 100%);
}


@media screen and (max-width: 1400px) {

    .p-commitment__cta {
        padding-top: 8rem;
    }

    .p-commitment__img-02 {
        bottom: -5%;
    }

    .p-commitment__img-04 {
        bottom: -20%;
    }

    .p-commitment__cta-img {
        top: -300px;
        right: 0;
        z-index: -1;
    }
}

@media screen and (max-width: 1200px) {

    .p-commitment__cta {
        padding-top: 7rem;
    }
}

@media screen and (max-width: 992px) {

    .p-commitment__flex {
        gap: 5rem;
    }

    .p-commitment__img-02 {
        bottom: 15%;
    }

    .p-commitment__img-04 {
        bottom: 5%;
    }
}

@media screen and (max-width: 768px) {

    .p-commitment {
        padding-top: 0;
    }

    .p-commitment__text-wrapper {
        width: 100%;
    }

    .p-commitment__flex {
        flex-direction: column;
        margin-bottom: 17rem;
    }

    .p-commitment__flex:nth-of-type(3) {
        margin-bottom: 30rem;
    }

    .p-commitment__item--img {
        width: 100%;
        order: 2;
    }

    .p-commitment__item--text {
        width: 100%;
        order: 1;
    }

    .p-commitment__img-02 {
        bottom: -30%;
    }

    .p-commitment__img-04 {
        bottom: -40%;
    }

    .p-commitment__cta {
        padding: 10rem 0 5rem 0;
    }

    .p-commitment__cta::before {
        top: 0;
    }

    .p-commitment__cta-img {
        top: -150%;
        right: 50%;
        transform: translateX(50%);
        z-index: -10;
        width: calc(540 / 1080 * 100%);
    }
}

@media screen and (max-width: 576px) {

    .p-commitment__flex {
        margin-bottom: 10rem;
    }

    .p-commitment__cta {
        padding-top: 7rem;
    }

    .p-commitment__cta-img {
        top: -120%;
        width: calc(740 / 1080 * 100%);
    }
}

@media screen and (max-width: 400px) {

    .p-commitment {
        padding-top: 8rem;
    }

    .p-commitment__cta-img {
        top: -120%;
        width: calc(940 / 1080 * 100%);
    }
}

/* お客様の声
-------------------------------------------------- */
.p-voice {
    margin-bottom: 100px;
    padding-top: 120px;
}

.p-voice__title {
    margin-bottom: 70px;
}

.p-voice__list {
    display: flex;
    align-items: center;
    justify-content: center;
}

.p-voice__item {
    width: calc(330 / 1040 * 100%);
    height: 700px;
    background-color: #d72638;
    filter: drop-shadow(0 0 4px rgba(0, 0, 0, 0.25));
    transform: skewX(-3deg);
}

.p-voice__item-img {
    width: calc(315 / 330 * 100%);
    margin-inline: auto;
    margin-bottom: 15px;
    padding: 0.5rem;
}

.p-voice__item-text-wrapper {
    padding: 10px 35px 35px 35px;
    text-align: center;
}

.p-voice__item-name {
    margin-bottom: 10px;
    font-size: clamp(1.40rem, 0.30vw + 1.17rem, 1.60rem);
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.08em;
    text-align: center;
}

.p-voice__item-title {
    position: relative;
    display: inline-block;
    margin-bottom: 25px;
    font-size: clamp(1.40rem, 1.49vw + 0.25rem, 2.40rem);
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.08em;
}

.p-voice__item-title::after {
    content: "";
    position: absolute;
    right: 0;
    bottom: 4px;
    left: 0;
    z-index: -1;
    height: 7px;
    background-color: #d4af37;
}

.p-voice__item-text {
    font-size: clamp(1.20rem, 0.60vw + 0.74rem, 1.60rem);
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.08em;
    text-align: left;
}

.p-voice__list li:nth-of-type(1) {
    margin-top: 25px;
}

.p-voice__list li:nth-of-type(3) {
    margin-top: -25px;
}

@media screen and (max-width: 1200px) {

    .p-voice__item {
        height: 650px;
    }
}

@media screen and (max-width: 992px) {

    .p-voice__item-title::after {
        height: 4px;
    }

    .p-voice__item {
        height: 600px;
    }
}

@media screen and (max-width: 768px) {

    .p-voice {
        padding-top: 25rem;
    }

    .p-voice__list {
        flex-direction: column;
    }

    .p-voice__item {
        width: calc(630 / 1040 * 100%);
        height: 700px;
    }

    .p-voice__item-name {
        font-size: clamp(1.40rem, 2.04vw + 0.64rem, 2.20rem);
    }

    .p-voice__item-title {
        font-size: clamp(1.40rem, 2.04vw + 0.64rem, 2.20rem);
    }

    .p-voice__list li:nth-of-type(1) {
        margin-top: 0;
    }

    .p-voice__list li:nth-of-type(3) {
        margin-top: 0;
    }
}

@media screen and (max-width: 576px) {

    .p-voice {
        padding-top: 30rem;
    }

    .p-voice__title {
        margin-bottom: 3rem;
    }

    .p-voice__item {
        width: calc(940 / 1040 * 100%);
        height: 660px;
    }

    .p-voice__item-text-wrapper {
        padding: 10px 30px 35px 30px;
        text-align: left;
    }

    .p-voice__item-title {
        margin-bottom: 10px;
        font-size: 1.8rem;
    }

    .p-voice__item-title::after {
        height: 3px;
    }
}

/* 専属スタッフ紹介
-------------------------------------------------- */
.p-staff {
    margin-bottom: 100px;
}

.p-staff__title {
    margin-bottom: 50px;
}

.p-staff__list {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    row-gap: 80px;
    column-gap: 20px;
}

.p-staff__item {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: first baseline;
    width: calc(330 / 1040 * 100%);
}

.p-staff__item-title {
    margin-bottom: 20px;
    padding: 10px 20px;
    font-weight: 700;
    letter-spacing: 0.08em;
    background-color: #d72638;
    border-radius: 90px;
}

.p-staff__item-img {
    position: relative;
    width: 200px;
    margin-bottom: 20px;
}

.p-staff__tag-trainer,
.p-staff__tag-diet {
    position: absolute;
    z-index: 10;
    color: #d72638;
    font-size: 2.4rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-stroke: 2px #d4af37;
    -webkit-text-stroke: 2px #d4af37;
    paint-order: stroke;
    transform: rotate(-10deg);
}

.p-staff__tag-trainer {
    bottom: 10px;
    right: 0;
    font-family: "League Spartan";
}

.p-staff__tag-diet {
    bottom: 0;
    left: 0;
    font-family: "Playfair Display";
}

.p-staff__item-name {
    margin-bottom: 25px;
    color: #292929;
    font-size: clamp(2.00rem, 0.38vw + 1.86rem, 2.40rem);
    font-weight: 700;
    letter-spacing: 0.08em;
}

.p-staff__item-text {
    color: #292929;
    font-size: 1.6rem;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.08em;
}

@media screen and (max-width: 768px) {

    .pc-only {
        display: none;
    }

    .p-staff__item {
        display: block;
        width: 100%;
        text-align: center;
    }

    .p-staff__item-title {
        display: inline-block;
    }

    .p-staff__item-img {
        margin-inline: auto;
    }

    .p-staff__item-text {
        text-align: left;
    }
}

/* 無料カウンセリングの流れ
-------------------------------------------------- */

.p-flow__container {
    position: relative;
    max-width: 1440px;
    margin-inline: auto;
}

.p-flow__bg-img {
    position: absolute;
    top: 90px;
    right: 0;
    z-index: -10;
    max-width: 820px;
}

.p-flow__bg-img::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: linear-gradient(90deg, #ffffff 10%, transparent);
}

.p-flow__title {
    margin-bottom: 40px;
}

.p-flow__list {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.p-flow__item {
    display: flex;
    align-items: center;
    width: calc(710 / 1040 * 100%);
    background-color: #d72638;
    border: 3px solid #ff707f;
    border-radius: 10px;
}

.p-flow__item span {
    width: calc(90 / 710 * 100%);
    color: #fff;
    font-size: clamp(1.20rem, 1.88vw + 0.49rem, 3.20rem);
    font-weight: 700;
    letter-spacing: 0.08em;
    text-align: center;
}

.p-flow__item-contents {
    display: flex;
    align-items: flex-start;
    gap: 25px;
    width: calc(620 / 710 * 100%);
    padding: 15px 25px 25px 20px;
    background-color: #fff;
    border-radius: 0 10px 10px 0;
}

.p-flow__list li:nth-of-type(1) img {
    width: 120px;
}

.p-flow__list li:nth-of-type(3) img {
    width: 70px;
}

.p-flow__list li:nth-of-type(5) img {
    width: 125px;
}

.p-flow__contents-flex {
    display: flex;
    align-items: flex-start;
    flex-direction: column;
    gap: 15px;
}

.p-flow__contents-flex h4 {
    color: #d72638;
    font-size: clamp(1.20rem, 1.13vw + 0.78rem, 2.40rem);
    font-weight: 700;
    letter-spacing: 0.08em;
}

.p-flow__contents-flex p {
    color: #292929;
    font-size: clamp(1.00rem, 0.56vw + 0.79rem, 1.60rem);
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.08em;
}

.p-flow__item-triangle {
    display: flex;
    align-items: center;
    justify-content: center;
    width: calc(710 / 1040 * 100%);
}

.triangle {
    display: inline-block;
    position: relative;
    width: 32px;
    height: 20px;
    background: #ff707f;
    clip-path: polygon(0 0, 100% 0%, 50% 100%);
}

.triangle::before {
    content: "";
    display: block;
    position: absolute;
    top: 2px;
    left: 50%;
    width: 23.7px;
    height: 14.8px;
    background: #d72638;
    clip-path: polygon(0 0, 100% 0%, 50% 100%);
    transform: translateX(-50%);
}

.p-flow__cta {
    position: relative;
    padding: 70px 0 50px 0;
}

.p-flow__cta::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: url(../img/CTA/CTA-bg-img-02.png);
    background-size: 100% 100%;
    background-repeat: no-repeat;
}

.p-flow__cta-bg-img {
    position: absolute;
    top: 5%;
    left: 0;
}

.p-flow__cta-img {
    position: absolute;
    top: -150px;
    left: -26%;
    z-index: -10;
    width: calc(560 / 1080 * 100%);
}

.p-flow__cta-message {
    font-size: clamp(2.20rem, 0.19vw + 2.13rem, 2.40rem);
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.08em;
    text-align: center;
    filter: drop-shadow(4px 4px 4px rgba(0, 0, 0, 0.25));
}

.p-flow__cta-message--highlight {
    position: relative;
    color: #d4af37;
    text-stroke: 2px #fff;
    -webkit-text-stroke: 2px #fff;
    paint-order: stroke;
}

.p-flow__cta-message--highlight::after {
    content: "";
    position: absolute;
    right: 0;
    bottom: 7px;
    left: 0;
    z-index: -1;
    height: 10px;
    background-color: #d72638;
}

.p-flow__cta-message--number {
    font-size: 4.8rem;
    letter-spacing: 0.08em;
}

.p-flow__cta-description {
    margin-bottom: 15px;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.08em;
    text-align: center;
}

@media screen and (max-width: 1400px) {

    .p-flow__cta {
        padding-top: 10rem;
    }

    .p-flow__cta-img {
        left: -13%;
        z-index: -1;
    }
}


@media screen and (max-width: 768px) {

    .p-flow__list {
        align-items: center;
    }

    .p-flow__cta {
        padding-top: 40rem;
    }

    .p-flow__cta-img {
        top: -420px;
        left: 50%;
        transform: translateX(-50%);
        z-index: -1;
        width: calc(700 / 1080 * 100%);
    }
}

@media screen and (max-width: 576px) {

    .p-flow__item {
        width: 100%;
    }

    .p-flow__item-contents {
        gap: 8px;
        padding: 15px 10px 25px 10px;
    }

    .p-flow__cta {
        padding-top: 20rem;
    }

    .p-flow__cta-img {
        top: -230px;
        width: calc(900 / 1080 * 100%);
    }
}

/* よくある質問
-------------------------------------------------- */
.p-faq {
    margin-bottom: 100px;
    padding-top: 180px;
}

.p-faq__title {
    margin-bottom: 50px;
}

.p-faq__accordion {
    max-width: 735px;
    margin-inline: auto;
}

.p-faq__accordion-item {
    border-bottom: 1px solid #292929;
}

.p-faq__accordion-question {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 15px 0;
}

.p-faq__accordion-label {
    width: 2.5%;
    font-size: clamp(1.40rem, 0.19vw + 1.33rem, 1.60rem);
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.08em;
}

.p-faq__accordion-question .p-faq__accordion-label {
    color: #d4af37;
}

.p-faq__accordion-answer .p-faq__accordion-label {
    color: #d72638;
}

.p-faq__accordion-text {
    width: 95%;
    margin-left: 15px;
    color: #292929;
    font-size: clamp(1.40rem, 0.19vw + 1.33rem, 1.60rem);
    font-weight: 700;
    letter-spacing: 0.08em;
}

.p-faq__accordion-symbol {
    width: 2.5%;
    color: #292929;
    font-size: clamp(1.40rem, 0.19vw + 1.33rem, 1.60rem);
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.08em;
}

.p-faq__accordion-answer {
    display: flex;
    align-items: first baseline;
    max-height: 0;
    overflow: hidden;
    transition: max-height 1s ease;
}

.p-faq__accordion-item.open .p-faq__accordion-answer {
    max-height: 500px;
    padding-bottom: 15px;
    transition: max-height 1s ease;
}

@media screen and (max-width: 576px) {

    .p-faq {
        margin-bottom: 100px;
        padding-top: 120px;
    }
}

/* アクセス
-------------------------------------------------- */

.p-access__title {
    margin-bottom: 50px;
}

.p-access__grid {
    display: grid;
    grid-template-columns: repeat(2, 2fr);
    place-content: center;
    gap: 25px;
    max-width: 735px;
    margin-inline: auto;
}

.p-access__map {
    margin-bottom: 15px;
}

.p-access__text {
    color: #292929;
    font-weight: 500;
    letter-spacing: 0.08em;
}

.p-access__cta {
    position: relative;
    padding: 120px 0 50px 0;
}

.p-access__cta::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: url(../img/CTA/CTA-bg-img-02.png);
    background-size: 100% 100%;
    background-repeat: no-repeat;
}

.p-access__cta-bg-img {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 10;
}

.p-access__cta-img {
    position: absolute;
    bottom: 0;
    right: 0;
    z-index: 10;
    width: calc(345 / 1080 * 100%);
}

@media screen and (max-width: 1400px) {

    .p-access__grid {
        margin-bottom: 40px;
    }

    .p-access__cta {
        padding-top: 8rem;
    }
}

@media screen and (max-width: 1200px) {

    .p-access__grid {
        margin-bottom: 70px;
    }

    .p-access__cta {
        padding-top: 2rem;
    }
}

@media screen and (max-width: 992px) {

    .p-access__cta-img {
        width: calc(445 / 1080 * 100%);
        height: 50vh;
    }

    .p-access__cta-img img {
        height: 100%;
    }
}

@media screen and (max-width: 768px) {

    .p-access__grid {
        grid-template-columns: repeat(1, 1fr);
        place-content: center;
        gap: 25px;
        max-width: 735px;
        margin-inline: auto;
        margin-bottom: 45rem;
    }

    .p-access__item {
        text-align: center;
    }

    .p-access__cta {
        padding-top: 8rem;
    }

    .p-access__cta-img {
        bottom: 85%;
        right: 50%;
        z-index: -10;
        transform: translateX(50%);
        width: calc(595 / 1080 * 100%);
        height: auto;
    }
}

@media screen and (max-width: 576px) {

    .p-access__map iframe {
        padding-right: 10px;
    }

    .p-access__cta {
        padding-top: 10rem;
    }

    .p-access__cta-img {
        width: calc(920 / 1080 * 100%);
    }

}


/* フッター
-------------------------------------------------- */
.l-footer {
    padding: 160px 0 70px 0;
    background-color: #d72638;
}

.l-footer__inner {
    max-width: 870px;
    margin-inline: auto;
}

.l-footer__flex {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 40px;
}

.l-footer__logo {
    display: flex;
    align-items: center;
    transition: all 0.4s ease;
}

.l-footer__logo:hover {
    opacity: 0.7;
}

.l-footer__logo img {
    width: 100px;
}

.l-footer__logo span {
    font-size: 2.4rem;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.08em;
    text-align: center;
}

.l-footer__address {
    display: flex;
    flex-direction: column;
    gap: 10px;
    width: 50%;
    font-size: clamp(1.00rem, 0.38vw + 0.86rem, 1.40rem);
    letter-spacing: 0.08em;
    transition: all 0.4s ease;
}

.l-footer__address a:hover {
    text-decoration: underline;
    opacity: 0.7;
}

.l-footer__address-text {
    display: flex;
    align-items: center;
}

.l-footer__address-text span {
    width: 35%;
}

.l-footer__privacy {
    display: block;
    max-width: 200px;
    margin-inline: auto;
    font-size: clamp(1.00rem, 0.38vw + 0.86rem, 1.40rem);
    letter-spacing: 0.08em;
    transition: all 0.4s ease;
}

.l-footer__privacy:hover {
    text-decoration: underline;
    opacity: 0.7;
}

.l-footer__logo.sp-only {
    display: none;
}

@media screen and (max-width: 1200px) {

    .l-footer {
        padding: 70px 0 70px 0;
        background-color: #d72638;
    }
}

@media screen and (max-width: 768px) {

    .pc-only {
        display: none;
    }

    .l-footer__address {
        width: 60%;
        margin-inline: auto;
    }

    .l-footer__privacy {
        margin-bottom: 2rem;
        text-align: center;
    }

    .l-footer__logo {
        flex-direction: column;
    }

    .l-footer__logo img {
        filter: invert(1);
    }
}

@media screen and (max-width: 576px) {

    .l-footer__address {
        width: 80%;
    }
}