@charset "utf-8";

/* ***** hero背景はテンプレートファイルにある ***** */

:root {
    /* ---------- フォント設定 ---------- */
    font-family: "Average", serif;
    font-weight: 400;
    font-style: normal;

    /* ---------- カスタムプロパティ(カラー設定ほか) ---------- */
    --white-color: rgb(255 255 255 / 1.0);
    --black-color: rgb(0 0 0 / 1.0);
    --text-color: rgb(51 51 51 / 1.0);
    --pale-bgcolor: rgb(242 250 252 / 1.0);
    --gray-bordercolor: rgb(228 228 228 / 1.0);
    --title-accent-color: rgb(5 89 176 / 1.0);
    --blog-title-color: rgb(9 72 158 / 1.0);
    --blog-shadow: rgb(0 0 0 / 0.25);
    --blog-pcshadow: rgb(0 0 0 / 0.1);
    --photo-bgcolor: rgb(240 240 239 / 1.0);
    --video-link-bgcolor: rgb(123 123 123 / 1.0);
    --transparent-bgcolor: rgb(9 10 34 / 0.9);
    --bgm-offcolor: rgb(153 153 153 / 1.0);
    --bio-bgcolor: rgb(10 75 162 / 1.0);
    --outstock-bgcolor: rgb(117 117 117 / 1.0);
    /* ----- 投稿ページ ----- */
    --blogpost-bgcolor: rgb(177 228 255 / 1.0);
    /* ----- フォント ----- */
    color: var(--text-color);
    --semibold: 600;
    --extrabold: 800;
    --Shippori: "Shippori Mincho", serif;
    --ABeeZee: "ABeeZee", sans-serif;
    --Noto-Sans: "Noto Sans JP", sans-serif;
}

/* ---------- 完成後消す ---------- */
a[href="#"] {
    color: red !important;

    span {
        color: red !important;
    }
}



/* -----------sp　全体レイアウト ---------- */
:root {
    font-size: calc(4.2666vw);
    /* 375px → 16px */
    font-weight: 400;
    font-style: normal;
    /* 16px/375 */
    scroll-behavior: smooth;
}

.break,
.s-break {
    display: block;
}

.s-wrapper {

    h2,
    h1 {
        font-family: "Average", serif;
        font-size: 1.5rem;
        text-align: center;

        .ja {
            font-size: 0.75rem;
        }

        &::first-letter,
        .ja::first-letter {
            color: var(--title-accent-color);
        }
    }

    .totop-link {
        margin: auto;
        display: block;
        width: 100%;
        height: 3.875rem;
        text-align: center;
        font-size: 1.125rem;
        line-height: 3.875rem;
        color: var(--black-color);
        background-color: var(--white-color);
        border-radius: 1.9375rem;
        border: 1px solid var(--black-color);
    }
}

/* ----- トップページ 泡柱レイアウト ----- */
.l-bubble-pillar,
.r-bubble-pillar {
    width: 2.8188rem;
    height: 23.985rem;
    position: absolute;
    background-repeat: no-repeat;
    background-size: contain;
    z-index: 10;
    opacity: 0.5;
}

.l-bubble-pillar {
    left: 0;
    transform: translateX(-50%);
}

.r-bubble-pillar {
    right: 0;
    transform: translateX(50%);
}

/* -----------PC　全体レイアウト ---------- */
@media screen and (width > 768px) {
    :root {
        font-size: min(calc(1.25vw), 16px);
        /* 16px/1280px- */
        --width1140: 71.25rem;
    }

    .l-wrapper {
        max-width: 1920px;
        margin: auto;
    }

    .s-break {
        display: inline;
    }

    .s-wrapper {
        width: 100%;
        overflow: hidden;

        h2,
        h1 {
            font-size: 4rem;

            .ja {
                font-size: 1.75rem;
            }
        }

        .link-btn {
            transition: all 0.3s;

            &:hover {
                opacity: 0.5;
            }
        }

        .totop-link {
            width: 26.375rem;
            height: 4.1875rem;
            font-size: 1.25rem;
            line-height: 4.1875rem;
            border-radius: 2.09375rem;
            transition: 0.3s;
            &:hover {
                opacity: 0.5;
            }
        }
    }
}

/* ----- トップページ 泡柱レイアウト ----- */
@media screen and (width > 1280px) {

    .l-bubble-pillar,
    .r-bubble-pillar {
        width: 6.875rem;
        height: 58.3rem;
        z-index: 1;
    }

    .l-bubble-pillar {
        left: initial;
        right: calc(100% - 8.375rem);
        transform: translateX(0);
    }

    .r-bubble-pillar {
        right: initial;
        left: calc(100% - 8.375rem);
        transform: translateX(0);
    }
}




/* ---------- キーフレーム ---------- */
@keyframes marquee1 {
    0% {
        translate: 0;
    }

    100% {
        translate: -100%;
    }
}

@keyframes marquee2 {
    0% {
        translate: 0;
    }

    100% {
        translate: 100%;
    }
}





/* ---------- 泡柱 レイアウト　----------- */
.infolist-page,
.bloglist-page,
.con_livelist-page,
.profile-page,
.newinfo-page,
.office-page,
.single {
    .pillar1 {
        top: -3rem;
    }

    .pillar2 {
        top: 24rem;
    }

    .pillar3 {
        top: 171rem;
    }

    .pillar4 {
        top: 194rem;
    }
}

/* ----- bubble-pillar 隠す ----- */
@media (width > 768px) and (width < 1430px) {

    .l-bubble-pillar,
    .r-bubble-pillar {
        display: none !important;
    }
}



/* --------- BGM ボタン ---------- */
/* ----- sp レイアウト ----- */
.bgm-link {
    display: none;
}

/* ----- pc レイアウト ----- */
@media screen and (width > 768px) {
    .bgm-link {
        position: fixed;
        z-index: 500;
        right: 2rem;
        bottom: 2rem;
        display: block;
        width: fit-content;
        display: flex;
        flex-direction: column;
        align-items: center;

        .bgm-img {
            width: 14.125rem;
            height: 13.25rem;
            background-size: contain;
            background-repeat: no-repeat;

            p {
                margin-left: 1.5rem;
                margin-top: 6rem;
                font-family: var(--Shippori);
                font-size: 2.25rem;
                text-align: center;
            }
        }

        .btn-area {
            color: var(--bgm-offcolor);
            font-size: 2.25rem;
            line-height: 1;

            .on-btn,
            .off-btn {
                padding: 0;
                border: none;
                background-color: initial;
                font-family: var(--Shippori);
                font-weight: var(--extrabold);
                font-size: 2.25rem;
                line-height: 1;
            }

            .on-btn.active,
            .off-btn.active {
                color: var(--title-accent-color);
            }

            .on-btn:not(.active),
            .off-btn:not(.active) {
                color: var(--bgm-offcolor);
            }
        }
    }
}





/* ---------- ヘッダー レイアウト ---------- */
/* ---------- sp レイアウト ---------- */
header {
    z-index: 1000;

    .h-wrapper {
        padding: 0 1.625rem;
        position: static;
        width: 100vw;
        display: flex;
        justify-content: space-between;

        .logo-area {
            margin: 0.9375rem 0;

            h1,
            div {
                a {
                    display: flex;
                    align-items: center;
                    gap: 0.5938rem;
                    color: var(--white-color);
                    font-size: 0.75rem;
                    font-family: var(--Shippori);

                    .logo-image {
                        width: 3.75rem;
                        height: auto;
                    }
                }
            }
        }

        .hamburger {
            border: none;
            background-color: inherit;
            padding: 0;
            margin: 0.875rem 0 0;
            display: flex;
            flex-direction: column;
            gap: 0.5rem;
            z-index: 1500;
            cursor: pointer;

            span {
                display: block;
                width: 1.875rem;
                height: 2px;
                border-radius: 1px;
                background-color: var(--white-color);
                transition: all 0.3s;
                transform-origin: center;
            }
        }

        .hamburger.active span:nth-child(1) {
            transform: rotate(45deg) translate(0.2746rem, calc(0.5rem + 1px));
        }

        .hamburger.active span:nth-child(2) {
            opacity: 0;
        }

        .hamburger.active span:nth-child(3) {
            transform: rotate(-45deg) translate(0.2746rem, calc(-0.5rem - 1px));
        }

        .header-nav {
            position: fixed;
            top: 0;
            left: 0;
            z-index: 1100;
            width: 100vw;
            min-height: 100dvh;
            background-repeat: no-repeat;
            background-size: cover;
            transition: all 0.3s;
            translate: 100% 0;

            ul {
                margin: 12.5616dvh 0 0 5.5625rem;

                li {
                    margin-bottom: 2.9557dvh;

                    a {
                        padding: 0.8621dvh 4vw;
                        display: inline-block;

                        span {
                            font-size: 2.217dvh;
                            font-family: var(--ABeeZee);
                            color: var(--white-color);
                            line-height: 1.1666;
                        }
                    }
                }
            }
        }

        .header-nav.active {
            translate: 0 0;
        }
    }
}

/* ----- pc レイアウト ----- */
@media screen and (width > 768px) {
    header {
        padding: 0;

        .h-wrapper {
            padding: 0 4rem;
            display: flex;
            align-items: center;

            .logo-area {
                position: static;
                /* margin: auto; */
                display: flex;
                /* justify-content: space-between; */
                align-items: center;

                h1,
                div {
                    a {
                        font-size: 1.125rem;
                        gap: 1.1875rem;
                        width: calc(7.2rem + 1.1875rem + 8.25rem);

                        .logo-image {
                            width: 8.25rem;
                        }
                    }
                }
            }

            .hamburger {
                display: none;
            }

            .header-nav {
                position: static;
                width: auto;
                min-height: fit-content;
                height: auto;
                background-color: inherit;
                translate: 0 0;
                transition: none;

                ul {
                    margin: 0;
                    padding-bottom: 0;
                    height: auto;
                    display: flex;
                    flex-wrap: wrap;
                    justify-content: end;
                    gap: 0;

                    li {
                        border: none;
                        margin-bottom: 0;
                        border-right: 1px solid var(--white-color);
                        padding: 0;

                        a {
                            display: block;
                            width: fit-content;
                            margin: 0;
                            padding: 0.4375rem 0.9375rem;
                            transition: all 0.3s;

                            span {
                                font-size: 1.125rem;
                            }

                            &:hover {
                                opacity: 0.5;
                            }
                        }
                    }
                }
            }
        }
    }
}





/* ----------- フッター　レイアウト ---------- */
/* ----- sp レイアウト ----- */

footer {
    padding: 1.5rem 1.625rem 1.4375rem;
    background-size: cover;
    background-repeat: no-repeat;

    .s-wrapper {
        menu {
            list-style: none;
        }

        a,
        p {
            color: var(--white-color);
        }

        .sns-link {
            margin-bottom: 9.75rem;
            width: 20.175rem;
            display: flex;
            flex-wrap: wrap;
            justify-content: space-between;
            gap: 0.5rem;

            a {
                display: block;
                width: 9.8125rem;
                height: 3.4375rem;
                background-size: cover;
                background-repeat: no-repeat;
            }
        }

        .policies-link {
            margin-bottom: 0.5rem;

            li {
                margin-bottom: 1.5rem;

                a {
                    font-size: 0.5936rem;
                }
            }
        }

        .copyright {
            small {
                font-size: 0.5rem;
                text-align: center;
            }
        }
    }
}

.footer-nav {
    .menu {
        margin: 0.625rem 1.6563rem 0.375rem;
        display: flex;
        justify-content: center;
        /* gap: 1.1875rem; */

        li {
            flex: 1 1 0;
            min-width: 0;

            a {

                /* width: fit-content; */

                span {
                    display: flex;
                    flex-direction: column;
                    justify-content: center;
                    align-items: center;
                    font-size: 0.67rem;

                    &::before {
                        margin-bottom: 0.1875rem;
                        display: block;
                        content: "";
                        width: 2rem;
                        height: 2rem;
                        background-size: contain;
                        background-repeat: no-repeat;
                    }
                }
            }
        }
    }
}

/* ----- pc レイアウト ----- */
@media screen and (width > 768px) {
    footer {
        padding: 5rem 0 1.5rem;
        background-size: cover;
        background-position: center right;
        background-repeat: no-repeat;

        .s-wrapper {
            padding: 0 2.7186rem;
            width: var(--width1140);
            margin: 0 auto;

            .sns-link {
                margin-bottom: 10.0625rem;
                flex-wrap: nowrap;
                gap: 1.875rem;

                a {
                    width: 20.6875rem;
                    height: 7.225rem;
                }
            }


            .policies-link {
                margin-bottom: 0.5rem;
                display: flex;
                gap: 1.625rem;

                li {
                    margin-bottom: 0;

                    a {
                        font-size: 0.8125rem;
                    }
                }
            }

            .copyright {
                text-align: center;

                small {
                    font-size: 1rem;
                }
            }
        }
    }

    .footer-nav {
        display: none;
    }
}





/* ---------- メインエリア レイアウト ---------- */

/* ----- sp レイアウト ----- */
.home {
    main {
        .hero-area {
            width: 100vw;
            aspect-ratio: 375 / 224;
            background-size: 167%;
            background-position: center center;
            background-size: cover;
            padding: 3.5625em 0 0 1.9375rem;

            h2 {
                width: 18.6875rem;
                aspect-ratio: 299 / 110;
                object-fit: contain;
            }
        }

        .hero-link-area {
            padding-top: 1.25rem;
            background-color: var(--pale-bgcolor);

            .menu {
                display: grid;
                grid-template-columns: repeat(5, 3.0125rem);
                width: 15.0625rem;
                margin: auto;

                .menu-item {
                    width: 6.625rem;

                    a {
                        display: flex;
                        flex-direction: column;
                        align-items: center;
                        justify-content: center;
                        width: 6.646rem;
                        height: 6.5rem;
                        background-size: contain;
                        background-repeat: no-repeat;

                        span {
                            display: flex;
                            flex-direction: column;
                            align-items: center;
                            justify-content: center;
                            gap: 0.1875rem;
                            width: fit-content;
                            font-size: 0.625rem;
                            font-family: var(--ABeeZee);
                            line-height: 1.4;

                            &::before {
                                content: "";
                                display: block;
                                width: 1.8312rem;
                                aspect-ratio: 1 / 1;
                                background-size: contain;
                                background-repeat: no-repeat;
                            }
                        }
                    }

                    &:first-child {
                        margin-left: -3.3125rem;
                    }

                    &:nth-child(2) {
                        grid-column-start: 2;
                        margin-left: -2.4844rem;
                    }

                    &:nth-child(3) {
                        grid-column-start: 3;
                        margin-left: -1.6563rem;
                    }

                    &:nth-child(4) {
                        grid-column-start: 4;
                        margin-left: -0.8281rem;
                    }

                    &:last-child {
                        grid-column-start: 5;
                    }

                    &:nth-child(2),
                    &:nth-child(4) {
                        grid-row-start: 2;
                        margin-top: -1.2613rem;
                    }
                }
            }
        }

        .news-area {
            padding-top: 1.25rem;
            padding-bottom: 2.6875rem;
            background-color: var(--pale-bgcolor);

            .s-wrapper {
                position: relative;

                h2 {
                    margin-bottom: 1rem;
                }

                .news-slider {
                    display: flex;
                    align-items: center;
                    gap: 16px;

                    .news-slider-window {
                        overflow: hidden;
                        width: 100vw;

                        .news-slider-track {
                            display: flex;
                            gap: 1.8481rem;
                            transition: transform 0.4s ease;
                            will-change: transform;

                            .news-slide {
                                flex: 0 0 14.6875rem;
                                height: 14.6875rem;
                                box-sizing: border-box;
                                overflow: hidden;

                                img {
                                    width: 100%;
                                    aspect-ratio: 1 / 1;
                                    border-radius: 0.625rem;
                                    object-fit: cover;
                                }

                                &:first-child {
                                    margin-left: 4.625rem;
                                }
                            }
                        }
                    }
                }
            }

            .news-arrow {
                position: absolute;
                top: 55%;
                flex-shrink: 0;
                width: 2.25rem;
                height: 2.25rem;
                border: none;
                border-radius: 50%;
                background-color: var(--black-color);
                color: var(--white-color);
                font-size: 2.25rem;
                line-height: 2.25rem;
                cursor: pointer;
                display: flex;
                justify-content: center;
                align-items: center;

                span {
                    display: block;
                    margin-top: -0.7rem;
                }

                &:disabled {
                    opacity: 0.3;
                    cursor: not-allowed;
                }

                &.next {
                    right: 1.55rem;
                }

                &.prev {
                    left: 1.55rem;
                    z-index: 100;
                }
            }
        }

        .info-area {
            background-color: var(--pale-bgcolor);

            .l-bubble-pillar,
            .r-bubble-pillar {
                display: none;
            }

            .s-wrapper {
                padding: 2rem 0 4rem;

                h2 {
                    margin-bottom: 2rem;
                }

                .info-item {
                    margin: 0 1.625rem 1.3125rem;

                    a {
                        display: block;
                        padding: 0.875rem;
                        border-radius: 0.625rem;
                        border: 1px solid var(--black-color);
                        background-color: var(--white-color);

                        .date-line {
                            margin-bottom: 0.4375rem;
                            display: flex;
                            align-items: center;
                            gap: 0.5rem;

                            .info-date {
                                font-size: 0.6875rem;
                            }

                            .news-new {
                                height: 0.8563rem;
                                font-size: 0.5625rem;
                                padding: 0 0.475rem;
                                color: var(--white-color);
                                background-color: var(--black-color);
                                border-radius: 0.125rem;
                            }
                        }

                        .info-title {
                            font-size: 0.6875rem;
                            line-height: 1.455;
                            font-weight: normal;
                            display: -webkit-box;
                            -webkit-box-orient: vertical;
                            -webkit-line-clamp: 2;
                            line-clamp: 2;
                            /* ← 2行で省略 */
                            overflow: hidden;
                        }
                    }

                    &:last-of-type {
                        margin-bottom: 1.5rem;
                    }
                }

                .noinfo {
                    text-align: center;
                }

                .info-link {
                    margin: auto;
                    display: block;
                    width: 10.875rem;
                    height: 1.9375rem;
                    font-size: 0.75rem;
                    text-align: center;
                    line-height: 1.9375rem;
                    background-color: var(--black-color);
                    color: var(--white-color);
                    border-radius: 0.9688rem;
                }
            }
        }

        .product-area {
            padding-bottom: 2.625rem;

            .l-bubble-pillar,
            .r-bubble-pillar {
                display: none;
            }

            .s-wrapper {
                position: relative;

                h2 {
                    margin-bottom: 2rem;
                }

                .product-slider {
                    margin-bottom: 2.4625rem;
                    overflow: hidden;
                    display: flex;
                    align-items: center;

                    .slider-window {
                        overflow: visible;
                        width: 100%;

                        .slider-track {
                            display: flex;
                            gap: 1.4688rem;
                            transition: transform 0.4s ease;

                            .slider-item {
                                width: 52vw;
                                flex-shrink: 0;
                                box-sizing: border-box;
                                padding: 0;
                                text-align: center;
                                transform: translate(24vw, 0);

                                img {
                                    width: 100%;
                                    aspect-ratio: 1 / 1;
                                    overflow: hidden;
                                    object-fit: cover;
                                    border-radius: 0.9375rem;
                                }

                                h3 {
                                    margin: 0.675rem 0 0.375rem;
                                    padding: 0.5rem 0 0;
                                    font-size: 0.8436rem;
                                    font-weight: normal;
                                    border-top: 1px solid var(--black-color);
                                    text-align: left;
                                    display: -webkit-box;
                                    -webkit-box-orient: vertical;
                                    -webkit-line-clamp: 1;
                                    line-clamp: 1;
                                    overflow: hidden;
                                }

                                .product-stock {
                                    width: 100%;
                                    height: 1.5rem;
                                    border-radius: 0.75rem;
                                    font-size: 0.8438rem;
                                    color: var(--white-color);
                                    line-height: 1.5rem;

                                    &.in-stock {
                                        background-color: var(--title-accent-color);
                                    }

                                    &.out-stock {
                                        background-color: var(--outstock-bgcolor);
                                    }
                                }
                            }
                        }
                    }
                }

                .slider-arrow {
                    position: absolute;
                    top: 40%;
                    z-index: 100;
                    width: 2.25rem;
                    height: 2.25rem;
                    background-color: var(--black-color);
                    color: var(--white-color);
                    border: none;
                    border-radius: 50%;
                    cursor: pointer;

                    span {
                        display: block;
                        font-size: 2rem;
                        margin-top: -0.95rem;
                    }

                    &.prev {
                        left: 12%;
                    }

                    &.next {
                        right: 12%;
                    }
                }


                .shop-link {
                    display: block;
                    margin: auto;
                    width: 11.9375rem;
                    height: 2.0625rem;
                    font-size: 0.75rem;
                    line-height: 2.0625rem;
                    text-align: center;
                    color: var(--white-color);
                    border-radius: 1.0313rem;
                    background-color: var(--black-color);
                }
            }
        }

        .concert-area {
            padding: 2.75rem 1.625rem 3.25rem;
            background-color: var(--pale-bgcolor);

            .s-wrapper {
                h2 {
                    margin-bottom: 1.5rem;
                }

                .contents {
                    width: 100%;
                    padding: 1rem;
                    background-color: var(--white-color);

                    .cons-date {
                        margin-bottom: 0.5rem;
                        font-size: 1.125rem;
                        line-height: 1.1666;
                    }

                    .cons-title {
                        margin-bottom: 1rem;
                        padding-bottom: 0.5rem;
                        font-size: 0.875rem;
                        font-weight: normal;
                        border-bottom: 1px solid var(--gray-bordercolor);
                    }

                    .cons-link {
                        display: block;
                        margin: auto;
                        width: 13.25rem;
                        height: 2.0625rem;
                        font-size: 0.75rem;
                        line-height: 2.0625rem;
                        color: var(--white-color);
                        border-radius: 1.0313rem;
                        background-color: var(--black-color);
                        text-align: center;
                    }
                }
            }
        }

        .profile-area {
            position: relative;
            padding: 2.0625rem 0 4rem;

            .l-bubble-pillar,
            .r-bubble-pillar {
                top: 16.8125rem;
            }

            .s-wrapper {
                position: relative;
                z-index: 10;

                h2 {
                    margin-bottom: 1rem;
                }

                .profile-img {
                    margin-bottom: 1.5rem;
                    width: 100vw;
                    height: 14.4375rem;
                    overflow: hidden;

                    img {
                        width: 100%;
                        height: 100%;
                        object-fit: cover;
                        object-position: center 17%;
                    }
                }

                .profile-text {

                    h3,
                    p {
                        font-family: var(--Shippori);
                    }

                    h3 {
                        font-size: 1.375rem;
                        font-weight: var(--extrabold);
                        text-align: center;
                        line-height: 1.3182;

                        .desc {
                            margin: 0.375rem 0 2.0625rem;
                            font-size: 0.75rem;
                        }
                    }

                    p {
                        margin-left: 2.4375rem;
                        font-size: 0.8125rem;
                        line-height: 1.8462;
                    }
                }
            }
        }

        .cmsong-area {
            padding: 2rem 0 2.4188rem;
            background-color: var(--pale-bgcolor);
            position: relative;

            .l-bubble-pillar,
            .r-bubble-pillar {
                top: -14.8125rem;
            }

            .s-wrapper {
                h2 {
                    margin-bottom: 1.5rem;
                }

                p {
                    padding: 0.7188rem;
                    font-family: var(--Shippori);
                    font-size: 0.75rem;
                    line-height: 1.8333;
                    text-align: center;
                    background-color: var(--white-color);
                }

                .cm-video {
                    padding: 2rem 1.625rem 0;

                    iframe {
                        width: 20.1875rem;
                        height: 11.3555rem;
                        margin-bottom: 2rem;

                        &:nth-child(2) {
                            margin-bottom: 0;
                        }

                        &:last-child {
                            display: none;
                        }
                    }
                }
            }
        }

        .therapy-area {

            .l-bubble-pillar,
            .r-bubble-pillar {
                display: none;
            }

            .s-wrapper {
                padding: 2.0625rem 0 4rem;

                h2 {
                    margin-bottom: 1rem;
                }

                .therapy-img-area {
                    margin-bottom: 1.5rem;
                    width: 100vw;

                    img {
                        width: 100%;
                    }
                }

                .desc-area {
                    margin: auto;
                    width: 20.1875rem;

                    .therapy-text {
                        padding: 1rem 0 1.5rem;
                        font-family: var(--Shippori);
                        font-size: 0.9375rem;
                        font-weight: var(--extrabold);
                        line-height: 2.1333;
                        border-top: 1px solid var(--gray-bordercolor);
                        border-bottom: 1px solid var(--gray-bordercolor);
                    }

                    .therapy-list {
                        margin-bottom: 1.5rem;
                        padding: 1rem 0;
                        border-bottom: 1px solid var(--gray-bordercolor);

                        dt {
                            &::before {
                                content: "●";
                            }
                        }

                        dd {
                            margin-bottom: 1.125rem;
                            margin-left: 0.5rem;

                            &:last-of-type {
                                margin-bottom: 0;
                            }
                        }

                        dt,
                        dd {
                            font-size: 0.875rem;
                            line-height: 1.2857;
                        }
                    }
                }

                .therapy-link {
                    margin: auto;
                    display: block;
                    width: 14.125rem;
                    height: 2.0625rem;
                    text-align: center;
                    font-size: 0.75rem;
                    line-height: 2.0625rem;
                    color: var(--white-color);
                    background-color: var(--black-color);
                    border-radius: 1.0313rem;
                }
            }
        }

        .blog-area {
            padding: 2rem 1.625rem 4rem;
            background-color: var(--pale-bgcolor);

            .s-wrapper {
                h2 {
                    margin-bottom: 1.5625rem;
                }

                .blog-list {
                    margin-bottom: 1.5rem;
                    display: flex;
                    flex-direction: column;
                    gap: 2rem;

                    .blog-item {
                        padding: 1.375rem;
                        border-radius: 0.5rem;
                        background-color: var(--white-color);
                        box-shadow: 0 4px 4px var(--blog-shadow);

                        .blog-thumb {
                            margin-bottom: 1rem;
                            width: 100%;
                            aspect-ratio: 279 / 207;
                            object-fit: cover;
                            object-position: center center;
                            overflow: hidden;
                        }

                        .blog-title {
                            margin-bottom: 1rem;
                            font-size: 1.125rem;
                            text-align: center;
                            color: var(--blog-title-color);
                        }

                        .blog-content {
                            margin-bottom: 1rem;
                            display: -webkit-box;
                            -webkit-box-orient: vertical;
                            -webkit-line-clamp: 4;
                            line-clamp: 4;
                            overflow: hidden;
                        }

                        .readmore-link {
                            margin-left: auto;
                            display: block;
                            width: 5.4375rem;
                            height: 1.5625rem;
                            font-size: 0.8125rem;
                            line-height: 1.5625rem;
                            text-align: center;
                            color: var(--white-color);
                            border-radius: 0.7813rem;
                            background-color: var(--title-accent-color);
                        }
                    }
                }

                .blog-link {
                    margin: auto;
                    display: block;
                    width: 10.1875rem;
                    height: 2.0625rem;
                    text-align: center;
                    font-size: 0.75rem;
                    line-height: 2.0625rem;
                    color: var(--white-color);
                    background-color: var(--title-accent-color);
                    border-radius: 1.0313rem;
                }
            }
        }

        .photogallery-area {
            padding: 2.0625rem 0 4rem;

            .s-wrapper {
                h2 {
                    margin-bottom: 1rem;
                }

                .gallery1,
                .gallery2 {
                    background-color: var(--photo-bgcolor);
                    display: flex;
                    position: relative;

                    .row1,
                    .row2 {
                        display: flex;

                        /* height: fit-content; */
                        img {
                            margin-right: 3px;
                            max-width: fit-content;
                            height: 16.1875rem;
                            object-fit: cover;
                        }
                    }

                    .row1 {
                        animation: marquee1 40s linear infinite;
                    }

                    .row2 {
                        animation: marquee2 40s linear infinite;

                    }
                }

                .gallery1 {
                    padding: 3px 0;
                }

                .gallery2 {
                    justify-content: flex-end;
                }
            }
        }

        .videogallery-area {
            padding: 2.0625rem 0 4rem;
            background-color: var(--text-color);

            .s-wrapper {
                padding: 0 1.625rem;

                h2 {
                    margin-bottom: 1.5rem;
                    color: var(--white-color);
                }

                .gallery {
                    margin-bottom: 2rem;
                    display: flex;
                    flex-direction: column;
                    gap: 1.5rem;

                    iframe {
                        width: 100%;
                    }
                }

                .video-link {
                    margin: auto;
                    display: block;
                    width: 12.6875rem;
                    height: 2.0625rem;
                    text-align: center;
                    font-size: 0.75rem;
                    line-height: 2.0625rem;
                    color: var(--white-color);
                    background-color: var(--video-link-bgcolor);
                    border-radius: 1.0313rem;
                }
            }
        }
    }
}

/* ----- pc レイアウト ----- */
@media screen and (width > 768px) {
    .home {
        main {
            .hero-area {
                width: min(100vw, 1920px);
                aspect-ratio: 1920 / 767;
                padding: 12.6042vw 0 0 13.8021vw;

                h2 {
                    width: min(38.5938vw, 741px);
                    aspect-ratio: 741 / 247;
                }
            }

            .hero-link-area {
                padding: 0;
                height: 0;

                .menu {
                    transform: translateY(-50%);
                    display: grid;
                    grid-template-columns: repeat(5, 13.75rem);
                    width: fit-content;

                    .menu-item {
                        width: 13.75rem;
                        margin: 0;

                        a {
                            width: 13.75rem;
                            height: 14.0625rem;

                            span {
                                gap: 0.375rem;
                                font-size: 1.5rem;
                                line-height: 1;

                                &::before {
                                    width: 4.3rem;
                                }
                            }
                        }

                        &:first-child,
                        &:nth-child(2),
                        &:nth-child(3),
                        &:nth-child(4),
                        &:last-child {
                            margin-left: 0;
                            grid-row-start: auto;
                            margin-top: 0;
                            grid-column-start: auto;
                        }
                    }
                }
            }

            .news-area {
                padding-top: 18.4375rem;
                padding-bottom: 8.75rem;

                .s-wrapper {
                    width: 71.25rem;
                    margin: auto;
                    padding-bottom: 6.25rem;

                    h2 {
                        margin-bottom: 3.4375rem;
                    }

                    .news-slider {
                        position: initial;
                        gap: 16px;

                        .news-slider-window {
                            width: 71.25rem;
                            margin: auto;

                            .news-slider-track {
                                gap: 2.4375rem;

                                .news-slide {
                                    flex: 0 0 24.4375rem;
                                    height: 24.4375rem;

                                    img {
                                        width: 100%;
                                        aspect-ratio: 1 / 1;
                                        border-radius: 0.625rem;
                                        object-fit: cover;
                                    }

                                    &:first-child {
                                        margin-left: 0;
                                    }
                                }
                            }
                        }
                    }
                }

                .news-arrow {
                    top: initial;
                    bottom: 0;
                    width: 3.375rem;
                    height: 3.375rem;
                    font-size: 3.375rem;
                    line-height: 1;

                    span {
                        margin-top: -1rem;
                    }

                    &.next {
                        right: 0;
                        background-color: var(--title-accent-color);
                    }

                    &.prev {
                        left: auto;
                        right: 4.5rem;
                    }
                }
            }

            .info-area {
                position: relative;
                padding: 5.25rem 0 9.6875rem;

                .s-wrapper {
                    margin: auto;
                    padding: 0 4.375rem;
                    max-width: 71.25rem;

                    h2 {
                        margin-bottom: 3.4375rem;
                    }

                    .info-item {
                        margin: 0 0 2rem;

                        a {
                            display: block;
                            padding: 1.25rem 1.5625rem;
                            border-radius: 0.9375rem;

                            .date-line {
                                margin-bottom: 0.3125rem;

                                .info-date {
                                    font-size: 1.5rem;
                                }

                                .news-new {
                                    height: auto;
                                    font-size: 1.25rem;
                                    padding: 1px 0.475rem;
                                    border-radius: 3px;
                                }
                            }

                            .info-title {
                                font-size: 1.25rem;
                                line-height: 1.2;
                            }
                        }

                        &:last-of-type {
                            margin-bottom: 3.5rem;
                        }
                    }

                    .info-link {
                        width: 31.4375rem;
                        height: 4.2313rem;
                        font-size: 1.69rem;
                        text-align: center;
                        line-height: 4.2313rem;
                        border-radius: 2.1156rem;
                    }
                }
            }

            .product-area {
                position: relative;
                padding: 7.5rem 0 10rem;

                .l-bubble-pillar,
                .r-bubble-pillar {
                    display: block;
                    top: -18.0625rem;
                }

                .s-wrapper {
                    padding: 0 4.375rem;
                    position: relative;
                    z-index: 10;

                    h2 {
                        margin-bottom: 0;
                    }

                    .product-slider {
                        padding-top: 3.4375rem;
                        margin: 0 auto 3.125rem;
                        max-width: 71.25rem;

                        .slider-window {
                            overflow: visible;
                            width: 100%;

                            .slider-track {
                                display: flex;
                                gap: 1.4688rem;
                                transition: transform 0.4s ease;

                                .slider-item {
                                    width: 18rem;
                                    transform: translate(0, 0);

                                    img {
                                        border-radius: 1.125rem;
                                    }

                                    h3 {
                                        margin: 1rem 0 1rem;
                                        padding: 0.58125rem 0 0;
                                        font-size: 1.25rem;
                                    }

                                    .product-stock {
                                        height: 2.25rem;
                                        border-radius: 1.125rem;
                                        font-size: 1.25rem;
                                        line-height: 2.25rem;
                                    }
                                }
                            }
                        }
                    }


                    .slider-arrow {
                        position: absolute;
                        top: 4.375rem;
                        z-index: 100;
                        width: 3.4375rem;
                        height: 3.4375rem;

                        span {
                            font-size: 3.4375rem;
                            margin-top: -1.6rem;
                        }

                        &.prev {
                            left: initial;
                            right: calc(4.5625rem + 4.375rem);

                            @media screen and (width > 1280px) {
                                right: calc((100vw - 1280px) / 2 + 4.5625rem + 4.375rem);
                            }


                        }

                        &.next {
                            background-color: var(--title-accent-color);
                            right: 4.375rem;

                            @media screen and (width > 1280px) {
                                right: calc((100vw - 1280px) / 2 + 4.375rem);
                            }
                        }

                        &:disabled {
                            opacity: 0.3;
                            cursor: not-allowed;
                        }
                    }




                    .shop-link {
                        width: 24.9375rem;
                        height: 4.125rem;
                        font-size: 1.69rem;
                        line-height: 4.125rem;
                        border-radius: 2.0625rem;
                    }
                }
            }

            .concert-area {
                padding: 10rem 0 15rem;

                .s-wrapper {
                    padding: 0 4.375rem;

                    h2 {
                        margin-bottom: 4.375rem;
                    }

                    .contents {
                        width: var(--width1140);
                        margin: auto;
                        padding: 3.1875rem 3.9375rem 3.75rem;
                        border-radius: 1.875rem;

                        .cons-date {
                            margin-bottom: 0.875rem;
                            font-size: 2.8125rem;
                            line-height: 1.1777;
                        }

                        .cons-title {
                            margin-bottom: 3.125rem;
                            padding-bottom: 2rem;
                            font-size: 1.875rem;
                        }

                        .cons-link {
                            width: 29.3125rem;
                            height: 4.25rem;
                            font-size: 1.69rem;
                            line-height: 4.25rem;
                            border-radius: 2.125rem;
                        }
                    }
                }
            }

            .profile-area {
                padding: 7.5rem 0;

                .l-bubble-pillar,
                .r-bubble-pillar {
                    display: none;
                }

                .s-wrapper {
                    position: relative;
                    z-index: 10;
                    max-width: 1443px;
                    margin: auto;

                    h2 {
                        margin-bottom: 3.4375rem;
                    }

                    .contents {
                        width: calc(100% - 20px);
                        margin: auto;
                        display: flex;
                        align-items: end;
                        justify-content: space-between;

                        .profile-img {
                            margin-bottom: 0;
                            width: min(38.115vw, 550px);
                            height: min(51.6978vw, 746px);
                            height: fit-content;

                            img {
                                width: 100%;
                                height: 100%;
                                object-fit: cover;
                                object-position: center 17%;
                            }
                        }

                        .profile-text {
                            width: min(51.5294vw, 758px);
                            display: flex;
                            flex-direction: column;
                            align-items: center;

                            h3 {
                                font-size: min(3.8808vw, 56px);
                                line-height: 1.228;

                                .desc {
                                    margin: 0 0 3.5rem;
                                    font-size: min(1.9404vw, 29px);
                                }
                            }

                            p {
                                font-size: min(1.386vw, 20px);
                                font-weight: var(--extrabold);
                                text-align: center;
                                line-height: 2.5;
                                letter-spacing: -0.06em;
                            }
                        }
                    }
                }
            }

            .cmsong-area {
                padding: 10rem 0 15rem;

                .l-bubble-pillar,
                .r-bubble-pillar {
                    display: block;
                    top: -19.75rem;
                }

                .s-wrapper {
                    padding: 0;
                    width: var(--width1140);
                    margin: auto;

                    h2 {
                        margin-bottom: 4rem;
                    }

                    p {
                        margin-left: calc(-1 * (100vw - var(--width1140)) / 2);
                        width: 100vw;
                        padding: 1.8125rem;
                        font-size: 1.6875rem;
                        line-height: 1.3704;
                        /* @media screen and (width > 1280px) {
                            margin-left: calc(-1 * (100vw - 1280px) /2 + -4.375rem);
                        } */

                    }

                    .cm-video {
                        padding: 4rem 0 0;
                        display: flex;
                        flex-direction: column;
                        align-items: end;

                        iframe {
                            width: 58.125rem;
                            height: 29.75rem;
                            margin-bottom: 4rem;

                            &:nth-child(2) {
                                margin-bottom: 4rem;
                                align-self: self-start;
                            }

                            &:last-child {
                                display: block;
                            }
                        }
                    }
                }
            }

            .therapy-area {
                position: relative;

                .l-bubble-pillar,
                .r-bubble-pillar {
                    display: block;
                    top: 25.875rem;
                }

                .s-wrapper {
                    margin: 0 1.094rem;
                    padding: 7.5rem 0;
                    width: var(--width1140);
                    margin: auto;


                    h2 {
                        margin-bottom: 3.4375rem;
                    }

                    .contents {
                        margin-bottom: 3.125rem;
                        display: flex;
                        flex-direction: row-reverse;
                        align-items: end;
                        gap: 1.5rem;

                        .therapy-img-area {
                            margin-bottom: 0;
                            width: 34.3125rem;

                            img {
                                width: 100%;
                            }
                        }

                        .desc-area {
                            /* ここから */
                            margin: 0;
                            width: 33.8125rem;

                            .therapy-text {
                                padding: 1.5rem 0;
                                font-size: 1.5rem;
                                line-height: 2.5;
                                border-top: none;
                            }

                            .therapy-list {
                                margin-bottom: 0;
                                padding: 1.625rem 0.5rem;

                                dd {
                                    margin-bottom: 2.0625rem;
                                    margin-left: 0.5rem;

                                    &:last-child {
                                        margin-bottom: 0;
                                    }
                                }

                                dt,
                                dd {
                                    font-size: 1.25rem;
                                    line-height: 1.2;
                                }
                            }
                        }
                    }

                    .therapy-link {
                        width: 31.4375rem;
                        height: 4.25rem;
                        font-size: 1.69rem;
                        line-height: 4.25rem;
                        border-radius: 2.125rem;
                    }
                }
            }

            .blog-area {
                padding: 10rem 0;

                .s-wrapper {
                    width: var(--width1140);
                    margin: auto;

                    h2 {
                        margin-bottom: 3.75rem;
                    }

                    .blog-list {
                        margin-bottom: 3.75rem;
                        display: flex;
                        flex-direction: row;
                        gap: 2rem;

                        .blog-item {
                            padding: 1.5rem 1.5rem 3.25rem;
                            position: relative;
                            box-shadow: 0 0 16px var(--blog-pcshadow);

                            .blog-thumb {
                                margin-bottom: 1rem;
                                width: 19.4375rem;
                                aspect-ratio: 311 / 207;
                            }

                            .blog-title {
                                margin-bottom: 1rem;
                                font-size: 1.125rem;
                            }

                            .blog-content {
                                margin-bottom: 1rem;
                            }

                            .readmore-link {
                                position: absolute;
                                bottom: 1.5rem;
                                right: 1.5rem;
                                width: 6.0625rem;
                                height: 1.75rem;
                                font-size: 0.8125rem;
                                line-height: 1.75rem;
                                border-radius: 0.875rem;
                            }

                            .blog-new {
                                position: absolute;
                                display: flex;
                                gap: 0.6875rem;
                                left: 50%;
                                top: -4.0625rem;
                                transform: translateX(-50%);
                                font-size: 2.3125rem;
                                line-height: 1;
                                font-family: "Average", serif;

                                &::after,
                                &::before {
                                    content: "";
                                    margin-top: 0.625rem;
                                    display: block;
                                    width: 0.5rem;
                                    height: 2.125rem;
                                    border-left: 2px dotted var(--text-color);
                                    border-right: 2px dotted var(--text-color);
                                }

                                &::before {
                                    transform: skewX(25deg);
                                }

                                &::after {
                                    transform: skewX(-25deg);
                                }

                            }
                        }
                    }

                    .blog-link {
                        width: 31.4375rem;
                        height: 4.25rem;
                        font-size: 1.75rem;
                        line-height: 4.25rem;
                        border-radius: 2.125rem;
                    }
                }
            }

            .photogallery-area {
                padding: 7.5rem 0;

                .s-wrapper {
                    h2 {
                        margin-bottom: 3.4375rem;
                    }

                    .gallery1,
                    .gallery2 {

                        .row1,
                        .row2 {

                            img {
                                height: 22.125rem;
                            }
                        }
                    }
                }
            }

            .videogallery-area {
                padding: 10rem 0 15rem;

                .s-wrapper {
                    padding: 0;
                    width: min(100%, 1426px);
                    margin: auto;

                    h2 {
                        margin-bottom: 3.75rem;
                    }

                    .gallery {
                        margin-bottom: 3.75rem;
                        flex-direction: row;
                        gap: 1.125rem;

                        iframe {
                            width: min(49.2286vw, 702px);
                            height: min(24.625rem, 394px);
                        }
                    }

                    .video-link {
                        width: 31.4375rem;
                        height: 4.25rem;
                        font-size: 1.75rem;
                        line-height: 4.25rem;
                        border-radius: 2.125rem;
                    }
                }
            }
        }
    }
}





/* ---------- 詳細なプロフィールページ ---------- */
/* ----- sp レイアウト ----- */
.profile-page {
    .profile-area {
        padding: 6.3125rem 2rem 6.9375rem;
        background-color: var(--pale-bgcolor);

        .s-wrapper {
            h1 {
                margin-bottom: 5.1875rem;
                font-size: 3rem;

                .ja {
                    font-size: 1.5rem;
                }
            }

            .desc-area {
                .img-area {
                    margin-bottom: 4.25rem;
                    width: 100%;
                    aspect-ratio: 311 / 436;
                    overflow: hidden;

                    img {
                        width: 100%;
                        height: 100%;
                        object-fit: contain;
                    }
                }

                .intro-area {
                    h2 {
                        font-size: 1.125rem;
                        color: var(--title-accent-color);

                        .ja {
                            margin-bottom: 2.5rem;
                            font-size: 1.125rem;
                            color: var(--text-color);
                            line-height: 1.4444;

                            .kana {
                                margin: 0.25rem 0 2.5rem;
                                font-size: 2.25rem;

                            }

                            &::first-letter {
                                color: inherit;
                            }
                        }
                    }

                    p {
                        margin-bottom: 5rem;
                        font-family: var(--Shippori);
                        color: var(--title-accent-color);
                        font-size: 1.25rem;
                        font-weight: var(--extrabold);
                        line-height: 1.75;
                        text-align: center;
                    }
                }
            }

            .link-area {
                display: flex;
                flex-direction: column;
                gap: 2.5rem;

                .linkbtn-area {
                    height: 3.5rem;
                    width: 100%;
                    display: flex;
                    justify-content: center;
                    align-items: center;
                    border-right: 1px solid var(--title-accent-color);
                    border-left: 1px solid var(--title-accent-color);

                    .prof-link {
                        padding: 0.2813rem 0;
                        display: flex;
                        align-items: center;
                        gap: 1rem;
                        font-size: 1.25rem;
                        font-family: var(--Shippori);
                        font-weight: var(--semibold);
                        color: var(--title-accent-color);
                        border-bottom: 1px dashed var(--title-accent-color);

                        .arrow-area {
                            display: flex;
                            justify-content: center;
                            align-items: center;
                            width: 1.25rem;
                            height: 1.25rem;
                            background-color: var(--title-accent-color);
                            border-radius: 50%;

                            span {
                                margin-top: 0.25rem;
                                display: block;
                                width: 0.75rem;
                                height: 0.5rem;
                                border-top: 0.5rem solid var(--white-color);
                                border-right: 0.375rem solid var(--title-accent-color);
                                border-left: 0.375rem solid var(--title-accent-color);
                            }
                        }
                    }
                }
            }
        }
    }

    .biography-area {
        padding: 5rem 1rem 8.125rem;
        background-color: var(--bio-bgcolor);

        .s-wrapper {
            padding: 4rem 1.1875rem;
            background-color: var(--white-color);
            border-radius: 1rem;

            h2 {
                font-size: 2rem;
                margin-bottom: 4.375rem;

                .ja {
                    font-size: 1rem;
                }
            }

            p {
                line-height: 1.6;
                font-family: var(--Noto-Sans);
            }

            .short-hr {
                margin: 3rem 4.6563rem;
                border: none;
                border: 1px dashed var(--black-color);
            }

            h3 {
                margin-bottom: 1.5rem;
                color: var(--title-accent-color);
                font-weight: var(--extrabold);
                line-height: 1.6;
            }

            .normal-hr {
                margin: 4.4375rem 0 3rem;
            }
        }
    }

    .product-area {
        padding: 5rem 1rem 7.5rem;
        background-color: var(--pale-bgcolor);

        .s-wrapper {
            h2 {
                font-size: 2rem;
                margin-bottom: 4.375rem;

                .ja {
                    font-size: 1rem;
                }
            }

            .product-list {
                margin-bottom: 6.25rem;
                display: grid;
                grid-template-columns: repeat(2, 10rem);
                gap: 2rem 1.4375rem;

                .product-item {
                    img {
                        width: 100%;
                        aspect-ratio: 1 / 1;
                        object-fit: cover;
                        border-radius: 0.75rem;
                    }

                    .product-title {
                        margin: 1rem 0;
                        padding-top: 0.75rem;
                        border-top: 1px solid var(--black-color);
                        font-family: var(--Shippori);
                        font-weight: var(--semibold);
                    }

                    .product-stock {
                        font-size: 0.875rem;
                        line-height: 1.75rem;
                        text-align: center;
                        color: var(--white-color);
                        border-radius: 0.875rem;

                        &.in-stock {
                            background-color: var(--title-accent-color);
                        }

                        &.out-stock {
                            background-color: var(--outstock-bgcolor);
                        }


                    }
                }
            }
        }
    }
}

/* ----- pc レイアウト ----- */
@media screen and (width > 768px) {
    .profile-page {

        .profile-area {
            padding: 7.5rem 2rem 15rem;
            background-size: contain;
            background-repeat: no-repeat;
            background-position: 0 25.625rem;

            .s-wrapper {
                width: var(--width1140);
                margin: auto;

                h1 {
                    margin-bottom: 7.5rem;
                    font-size: 4rem;

                    .ja {
                        font-size: 1.5rem;
                    }
                }

                .desc-area {
                    margin-bottom: 6rem;
                    display: flex;
                    justify-content: center;
                    gap: 8rem;

                    .img-area {
                        margin-bottom: 0;
                        width: 30.3125rem;
                        aspect-ratio: 485 / 680;

                        img {
                            object-fit: cover;
                        }
                    }

                    .intro-area {
                        margin-top: 17rem;
                        width: 30.4125rem;

                        h2 {
                            font-size: 1.375rem;
                            text-align: left;

                            .ja {
                                margin-bottom: 3rem;
                                font-size: 1.125rem;
                                line-height: 1.4444;
                                display: flex;
                                align-items: center;
                                gap: 2.5rem;

                                .kana {
                                    margin: 0.1875rem 0 0;
                                    font-size: 3rem;
                                }
                            }
                        }

                        p {
                            margin-bottom: 0;
                            font-size: 1.25rem;
                            line-height: 1.75;
                            text-align: left;
                        }
                    }
                }

                .link-area {
                    flex-direction: row;
                    gap: 0;

                    .linkbtn-area {
                        height: 4rem;
                        width: 50%;
                        border-right: none;
                        border-left: 2px solid var(--title-accent-color);

                        &:last-child {
                            border-right: 2px solid var(--title-accent-color);

                        }

                        .prof-link {
                            padding: 0.25rem 0;
                            transition: all 0.3s;

                            &:hover {
                                opacity: 0.5;
                            }

                            .arrow-area {
                                width: 1.25rem;
                                height: 1.25rem;
                                background-color: var(--title-accent-color);
                                border-radius: 50%;

                                span {
                                    margin-top: 0.125rem;
                                }
                            }
                        }
                    }
                }
            }
        }

        .biography-area {
            padding: 10rem 0;

            .s-wrapper {
                width: var(--width1140);
                margin: auto;
                padding: 10rem 8.75rem;

                h2 {
                    font-size: 3rem;
                    margin-bottom: 7.0625rem;

                    .ja {
                        font-size: 1.5rem;
                    }
                }

                p {
                    font-size: 1.125rem;
                    line-height: 1.5;

                }

                .short-hr {
                    margin: 4rem 0;
                    width: 9.75rem;
                }

                h3 {
                    margin-bottom: 2rem;
                    font-size: 1.125rem;
                    line-height: 1.5;
                }

                .normal-hr {
                    margin: 5rem 0 4rem;
                }
            }
        }

        .product-area {
            padding: 10rem 0 15rem;

            .s-wrapper {
                width: var(--width1140);
                margin: auto;

                h2 {
                    font-size: 4rem;
                    margin-bottom: 8.625rem;

                    .ja {
                        font-size: 1.75rem;
                    }
                }

                .product-list {
                    margin-bottom: 10rem;
                    display: grid;
                    grid-template-columns: repeat(4, 15rem);
                    gap: 6.25rem 3.75rem;

                    .product-item {
                        img {
                            border-radius: 1.25rem;
                        }

                        .product-title {
                            margin: 1.5rem 0;
                            padding-top: 0.75rem;
                            font-size: 1.25rem;
                            line-height: 1;
                        }

                        .product-stock {
                            font-size: 1rem;
                            line-height: 2rem;
                            border-radius: 1rem;
                        }
                    }
                }

                .totop-link {
                    transition: all 0.3s;

                    &:hover {
                        opacity: 0.5;
                    }
                }
            }
        }
    }
}




/* ----------- 汎用固定ページ設定 ---------- */
/* ----- sp レイアウト ----- */
.page-template-default:not(.home):not(.front-page),
.page-id-402,
.page-id-260,
.single {
    background-color: var(--pale-bgcolor);

    main {
        padding: 3rem 0;
    }
}

/* ----- pc レイアウト ----- */
@media screen and (width > 768px) {

    .page-template-default:not(.home):not(.front-page),
    .page-id-402,
    .page-id-260,
    .single {
        main {
            padding: 7.5rem 0 10rem;
        }
    }
}


/* ---------- 新着情報一覧ページ ---------- */
/* ----- sp レイアウト ----- */
.newinfo-page {
    padding: 2.9375rem 1.625rem 4rem;
    background-color: var(--pale-bgcolor);

    .s-wrapper {
        h1 {
            margin-bottom: 2.5625rem;
        }

        .newinfo-list {
            margin-bottom: 2rem;
            display: flex;
            flex-direction: column;
            gap: 2rem;

            .newinfo-item {
                padding: 1rem 0.9375rem;
                border-radius: 0.5rem;
                background-color: var(--white-color);
                box-shadow: 0 0 16px var(--blog-pcshadow);

                .date-line {
                    margin-bottom: 0.5rem;

                    .info-date {
                        font-size: 1.125rem;
                    }
                }

                .newinfo-thumb {
                    margin-bottom: 0.75rem;
                    width: 100%;
                    aspect-ratio: 291 / 164;
                    object-fit: cover;
                    object-position: center center;
                    overflow: hidden;
                    border-radius: 1rem;
                }

                .newinfo-title {
                    margin-bottom: 0.75rem;
                    padding-bottom: 0.75rem;
                    font-size: 0.578rem;
                    text-align: left;
                    border-bottom: 1px solid var(--gray-bordercolor);

                    &::first-letter {
                        color: var(--text-color);
                    }
                }
            }
        }
    }
}

/* ----- pc レイアウト ----- */
@media screen and (width > 768px) {
    .newinfo-page {
        padding: 7.5rem 0 15rem;
        background-size: contain;
        background-position: 0 72.6875rem;
        background-repeat: no-repeat;

        .s-wrapper {
            width: var(--width1140);
            margin: auto;

            h1 {
                margin-bottom: 3.75rem;
            }

            .newinfo-list {
                margin-bottom: 5rem;
                display: flex;
                flex-direction: row;
                flex-wrap: wrap;
                justify-content: space-between;
                gap: 4rem 0;

                .newinfo-item {
                    padding: 3.75rem 2.1875rem;
                    width: 100%;
                    box-shadow: 0 0 16px var(--blog-pcshadow);

                    .date-line {
                        margin-bottom: 0.875rem;

                        .newinfo-date {
                            font-size: 2.8125rem;
                        }
                    }

                    .newinfo-title {
                        padding-bottom: 2rem;
                        margin-bottom: 2rem;
                        font-size: 1.875rem;
                        line-height: 1.5;
                    }

                    .newinfo-thumb {
                        margin-bottom: 2rem;
                        width: 100%;
                        aspect-ratio: 1072 / 603;

                        img {
                            width: 100%;
                        }
                    }

                    .newinfo-link {
                        width: 26.625rem;
                        height: 4.375rem;
                        font-size: 1.6875rem;
                        line-height: 4.375rem;
                        border-radius: 2.1875rem;
                        transition: all 0.3s;

                        &:hover {
                            opacity: 0.5;
                        }
                    }
                }
            }
        }
    }
}





/* ---------- 事務所の詳細 ページ ---------- /*
/* ----- sp レイアウト ----- */
.office-page {
    padding: 3rem 1.625rem 4rem;
    background-color: var(--pale-bgcolor);

    .s-wrapper {
        h1 {
            margin-bottom: 2.5625rem;
        }

        dl {
            margin-bottom: 3rem;
            padding: 2rem 1rem;
            background-color: var(--white-color);
            border-radius: 0.5rem;

            dt {
                padding: 1.5rem 0 0.5rem;
                border-top: 1px solid var(--text-color);
                font-weight: var(--extrabold);
            }

            dd {
                padding: 0 0 1.5rem;

                &:last-of-type {
                    border-bottom: 1px solid var(--text-color);
                }
            }
        }
    }
}

/* ----- pc レイアウト ----- */
@media screen and (width > 768px) {
    .office-page {
        padding: 5.375rem 0 15rem;
        background-size: contain;
        background-repeat: no-repeat;
        background-position: 0 50%;

        .s-wrapper {

            h1 {
                margin-bottom: 3.5625rem;
            }

            dl {
                margin: auto;
                margin-bottom: 7.5rem;
                width: var(--width1140);
                padding: 5.9375rem 8.625rem;
                display: flex;
                flex-wrap: wrap;

                dt {
                    padding: 2rem 1.5rem;
                    width: 14rem;
                    font-size: 1.25rem;
                    font-weight: normal;

                    &:last-of-type {
                        border-bottom: 1px solid var(--text-color);
                    }
                }

                dd {
                    padding: 2rem 1.5rem;
                    width: 40rem;
                    font-size: 1.25rem;
                    border-top: 1px solid var(--text-color);
                }
            }
        }
    }
}






/* ---------- ブログ一覧ページ ---------- */
/* ----- sp レイアウト ----- */
.bloglist-page {
    padding: 2.9375rem 1.625rem 4rem;
    background-color: var(--pale-bgcolor);

    .s-wrapper {
        h1 {
            margin-bottom: 2.5625rem;
        }

        .blog-list {
            margin-bottom: 2rem;
            display: flex;
            flex-direction: column;
            gap: 2rem;

            .blog-item {
                padding: 1.375rem;
                border-radius: 0.5rem;
                background-color: var(--white-color);
                box-shadow: 0 0 16px var(--blog-pcshadow);

                .blog-thumb {
                    margin-bottom: 1rem;
                    width: 100%;
                    aspect-ratio: 279 / 207;
                    object-fit: cover;
                    object-position: center center;
                    overflow: hidden;
                }

                .blog-title {
                    margin-bottom: 1rem;
                    font-size: 1.125rem;
                    text-align: center;
                    color: var(--blog-title-color);

                    &::first-letter {
                        color: var(--text-color);
                    }
                }

                .blog-content {
                    margin-bottom: 1rem;
                    display: -webkit-box;
                    -webkit-box-orient: vertical;
                    -webkit-line-clamp: 4;
                    line-clamp: 4;
                    overflow: hidden;
                }

                .readmore-link {
                    margin-left: auto;
                    display: block;
                    width: 5.4375rem;
                    height: 1.5625rem;
                    font-size: 0.8125rem;
                    line-height: 1.5625rem;
                    text-align: center;
                    color: var(--white-color);
                    border-radius: 0.7813rem;
                    background-color: var(--title-accent-color);
                }
            }
        }
    }
}

/* ----- pc レイアウト ----- */
@media screen and (width > 768px) {
    .bloglist-page {
        padding: 7.5rem 0 15rem;
        background-size: contain;
        background-position: 0 72.6875rem;
        background-repeat: no-repeat;

        .s-wrapper {
            width: var(--width1140);
            margin: auto;

            h1 {
                margin-bottom: 3.75rem;
            }

            .blog-list {
                margin-bottom: 5rem;
                display: flex;
                flex-direction: row;
                flex-wrap: wrap;
                justify-content: space-between;
                gap: 2rem 0;

                .blog-item {
                    padding: 1.5rem 1.5rem 3.25rem;
                    width: 22.4375rem;
                    position: relative;
                    box-shadow: 0 0 16px var(--blog-pcshadow);

                    .blog-thumb {
                        margin-bottom: 1rem;
                        width: 19.4375rem;
                        aspect-ratio: 311 / 207;
                    }

                    .blog-title {
                        margin-bottom: 1rem;
                        font-size: 1.125rem;
                    }

                    .blog-content {
                        margin-bottom: 1rem;
                    }

                    .readmore-link {
                        position: absolute;
                        bottom: 1.5rem;
                        right: 1.5rem;
                        width: 6.0625rem;
                        height: 1.75rem;
                        font-size: 0.8125rem;
                        line-height: 1.75rem;
                        border-radius: 0.875rem;
                        transition: all 0.3s;

                        &:hover {
                            opacity: 0.5;
                        }
                    }
                }
            }
        }
    }
}





/* ---------- お知らせ一覧ページ ---------- */
/* ----- sp レイアウト ----- */
.infolist-page {
    padding: 2.9375rem 1.625rem 4rem;
    background-color: var(--pale-bgcolor);

    .s-wrapper {
        h1 {
            margin-bottom: 2.5625rem;
        }

        .info-list {
            margin-bottom: 2rem;
            display: flex;
            flex-direction: column;
            gap: 1.3125rem;

            .info-item {
                padding: 0.875rem 1.1875rem;
                border-radius: 0.625rem;
                background-color: var(--white-color);
                border: 1px solid var(--black-color);

                .date-line {
                    margin-bottom: 0.625rem;
                    display: flex;
                    align-items: center;
                    gap: 0.5rem;

                    .info-date {
                        font-size: 0.6875rem;
                    }

                    .news-new {
                        font-size: 0.5625rem;
                        padding: 0.125rem 0.5rem;
                        background-color: var(--black-color);
                        color: var(--white-color);
                        border-radius: 0.1875rem;
                    }
                }

                .info-title {
                    font-size: 0.8125rem;
                    text-align: left;
                    font-family: var(--ABeeZee);
                    font-weight: normal;
                }
            }
        }
    }
}

/* ----- pc レイアウト ----- */
@media screen and (width > 768px) {
    .infolist-page {
        padding: 7.5rem 0 15rem;
        background-size: contain;
        background-position: 0 72.6875rem;
        background-repeat: no-repeat;

        .s-wrapper {
            width: var(--width1140);
            margin: auto;

            h1 {
                margin-bottom: 3.75rem;
            }

            .info-list {
                margin-bottom: 5rem;
                display: flex;
                flex-direction: column;
                gap: 2rem;

                .info-item {
                    padding: 1.25rem 1.5625rem 1.125rem;
                    width: 100%;

                    .info-title {
                        font-size: 1.25rem;
                    }
                }
            }
        }
    }
}





/* ---------- コンサート情報一覧ページ ---------- */
/* ----- sp レイアウト ----- */
.con_livelist-page {
    padding: 2.9375rem 1.625rem 4rem;
    background-color: var(--pale-bgcolor);

    .s-wrapper {
        h1 {
            margin-bottom: 2.5625rem;
        }

        .con_live-list {
            margin-bottom: 2rem;
            display: flex;
            flex-direction: column;
            gap: 2rem;

            .con_live-item {
                padding: 1rem 0.9375rem;
                border-radius: 0.5rem;
                background-color: var(--white-color);
                box-shadow: 0 0 16px var(--blog-pcshadow);

                .date-line {
                    margin-bottom: 0.5rem;

                    .info-date {
                        font-size: 1.125rem;
                    }
                }

                .con_live-thumb {
                    margin-bottom: 0.75rem;
                    width: 100%;
                    aspect-ratio: 291 / 164;
                    object-fit: cover;
                    object-position: center center;
                    overflow: hidden;
                    border-radius: 1rem;
                }

                .con_live-title {
                    margin-bottom: 0.75rem;
                    padding-bottom: 0.75rem;
                    font-size: 0.578rem;
                    text-align: left;
                    border-bottom: 1px solid var(--gray-bordercolor);

                    &::first-letter {
                        color: var(--text-color);
                    }
                }

                .con_live-link {
                    margin: auto;
                    display: block;
                    width: 12.4375rem;
                    height: 2.0625rem;
                    font-size: 0.75rem;
                    line-height: 2.0625rem;
                    text-align: center;
                    color: var(--white-color);
                    border-radius: 1.0313rem;
                    background-color: var(--black-color);
                }
            }
        }
    }
}

/* ----- pc レイアウト ----- */
@media screen and (width > 768px) {
    .con_livelist-page {
        padding: 7.5rem 0 15rem;
        background-size: contain;
        background-position: 0 72.6875rem;
        background-repeat: no-repeat;

        .s-wrapper {
            width: var(--width1140);
            margin: auto;

            h1 {
                margin-bottom: 3.75rem;
            }

            .con_live-list {
                margin-bottom: 5rem;
                display: flex;
                flex-direction: row;
                flex-wrap: wrap;
                justify-content: space-between;
                gap: 4rem 0;

                .con_live-item {
                    padding: 3.75rem 2.1875rem;
                    width: 100%;
                    box-shadow: 0 0 16px var(--blog-pcshadow);

                    .date-line {
                        margin-bottom: 0.875rem;

                        .con_live-date {
                            font-size: 2.8125rem;
                        }
                    }

                    .con_live-title {
                        padding-bottom: 2rem;
                        margin-bottom: 2rem;
                        font-size: 1.875rem;
                    }

                    .con_live-thumb {
                        margin-bottom: 2rem;
                        width: 100%;
                        aspect-ratio: 1072 / 603;

                        img {
                            width: 100%;
                        }
                    }

                    .con_live-link {
                        width: 26.625rem;
                        height: 4.375rem;
                        font-size: 1.6875rem;
                        line-height: 4.375rem;
                        border-radius: 2.1875rem;
                        transition: all 0.3s;

                        &:hover {
                            opacity: 0.5;
                        }
                    }
                }
            }
        }
    }
}




/* ----- カテゴリーページ　ページネーション ----- */
/* ----- sp ----- */
.list-pagination {
    margin-bottom: 3rem;
    display: flex;
    justify-content: center;
    gap: 1rem;

    .page-numbers {
        margin: 0;
        width: 1.8125rem;
        min-width: auto;
        height: 1.8125rem;
        display: block;
        font-size: 1rem;
        line-height: 1.8125rem;
        font-family: var(--Noto-Sans);
        background-color: var(--black-color);
        transition: all 0.3s;

        &:active {
            background-color: var(--black-color);
        }
    }

    .current {
        background-color: var(--title-accent-color);
    }


}

/* ----- pc ----- */
@media screen and (width > 768px) {
    .list-pagination {
        margin-bottom: 7.5rem;

        .page-numbers {
            width: 1.8125rem;
            height: 1.8125rem;
            font-size: 1rem;
            line-height: 1.8125rem;

            &:hover {
                opacity: 0.6;
            }
        }

        .current:hover {
            opacity: 1;
        }
    }
}




/* ---------- 個別投稿 レイアウト---------- */
/* ----- sp レイアウト ----- */
.single {
    .post-area {
        padding: 0 1.5rem 1rem;
        background-color: var(--pale-bgcolor);

        .s-wrapper {
            .contents {
                margin-bottom: 2rem;

                .cate-date-area {
                    margin-bottom: 0.75rem;
                    display: flex;
                    align-items: center;
                    gap: 0.75rem;

                    .category {
                        padding: 0.2813rem 1rem;
                        font-size: 0.6875rem;
                        line-height: 1;
                        border-radius: 0.625rem;
                        background-color: var(--blogpost-bgcolor);
                    }

                    .post-date {
                        font-size: 0.6875rem;
                    }
                }

                .post-title {
                    margin-bottom: 2rem;
                    font-size: 1.25rem;
                    line-height: 1.3;
                    text-align: left;

                    &::first-letter {
                        color: var(--text-color);
                    }
                }

                .post-content {
                    padding: 1rem 0.9375rem;
                    border-radius: 1rem;
                    background-color: var(--white-color);
                    box-shadow: 0 0 16px var(--blog-pcshadow);
                }
            }
        }
    }
}

/* ----- pc レイアウト ----- */
@media screen and (width > 768px) {
    .single {
        .post-area {
            padding: 0.5625rem 1.5rem 5rem;
            background-size: cover;
            background-repeat: no-repeat;
            background-position: 0 50%;

            .s-wrapper {
                width: var(--width1140);
                margin: auto;

                .contents {
                    margin-bottom: 7.5rem;

                    .cate-date-area {
                        margin-bottom: 1.5rem;

                        .category {
                            padding: 0.5313rem 1.5rem;
                            font-size: 1.75rem;
                            line-height: 1;
                            border-radius: 1.40625rem;
                        }

                        .post-date {
                            font-size: 1.75rem;
                        }
                    }

                    .post-title {
                        margin-bottom: 5rem;
                        font-size: 3rem;

                        .post-content {
                            padding: 2rem 4rem;
                        }
                    }
                }
            }
        }
    }
}



/* -----ページナビゲーション -----*/
/* ----- sp レイアウト ----- */
.post-navigation {
    margin-bottom: 3rem;
    display: flex;
    flex-direction: column;
    gap: 1.5rem;

    .nav-previous,
    .nav-next {
        width: fit-content;

        a {
            display: flex;
            align-items: center;

            .arrow-area {
                width: 1.8125rem;
                height: 5rem;
                background-color: var(--title-accent-color);
                display: flex;
                justify-content: center;
                align-items: center;

                span {
                    display: inline-block;
                    width: 0.625rem;
                    height: 1.25rem;
                    background-size: contain;
                    background-repeat: no-repeat;
                }
            }

            img {
                display: none;
            }

            p {
                width: 100%;
                line-height: 1.3;
                display: -webkit-box;
                -webkit-box-orient: vertical;
                -webkit-line-clamp: 4;
                line-clamp: 4;
                /* ← 2行で省略 */
                overflow: hidden;
            }
        }
    }

    .nav-next {
        margin-left: auto;
    }
}

/* ----- pc レイアウト ----- */
@media screen and (width > 768px) {
    .post-navigation {
        margin-bottom: 3rem;
        display: flex;
        flex-direction: row;
        justify-content: space-between;

        .nav-previous,
        .nav-next {
            width: fit-content;

            a {
                display: flex;
                align-items: center;
                gap: 1rem;

                img {
                    display: block;
                    width: 5rem;
                    height: 3.75rem;
                }

                p {
                    width: 16em;
                }
            }
        }

        .nav-next {
            margin: 0;
        }
    }
}