/* ===========================================
   グローバルリセット - パンくずリストのリンク色
   =========================================== */


/* パンくずリストのリンクの青を打ち消す */

.l-breadcrumbWrapper a,
.breadcrumbs a {
    color: inherit !important;
    text-decoration: none !important;
}

.l-breadcrumbWrapper a:hover,
.breadcrumbs a:hover {
    text-decoration: underline !important;
}

.l-breadcrumbWrapper i.fa-home,
.breadcrumbs i.fa-home {
    color: #333333 !important;
}


/* ===========================================
   Voice Archive Page
   =========================================== */

.p-voiceArchiveFilter {
    width: 45%;
    margin: 0 auto;
    padding: clamp(24px, 1.8vw, 40px) 0;
}

.p-voiceArchiveFilter__title {
    text-align: center;
    color: #5A5A5A;
    font-size: clamp(18px, 1.6vw, 28px);
    margin-bottom: clamp(16px, 1.2vw, 24px);
}

.p-voiceArchiveFilter__chips {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: clamp(10px, .8vw, 16px);
    max-width: 100%;
}

.c-chip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
}

.c-chip--filter {
    background: #60B7C5;
    color: #fff;
    padding: clamp(10px, .9vw, 16px) clamp(18px, 1.4vw, 28px);
    border-radius: clamp(60px, 4.68vw, 100px);
    font-weight: 700;
    width: 100%;
    min-width: 0;
}

.p-voiceArchiveList {
    position: relative;
    background: #F3F8F0;
    padding: clamp(60px, 4.7vw, 120px) clamp(100px, 7.8vw, 200px);
    margin-top: clamp(24px, 1.8vw, 40px);
    overflow: hidden;
    border-top-left-radius: 1000px clamp(200px, 15.6vw, 400px);
    border-top-right-radius: 1000px clamp(200px, 15.6vw, 400px);
    margin-left: clamp(-100px, -7.8vw, -200px);
    margin-right: clamp(-100px, -7.8vw, -200px);
}

.p-voiceArchiveList__container {
    position: relative;
    width: 100%;
}

.p-voiceArchiveList__title {
    text-align: center;
    color: #5A5A5A;
    font-size: clamp(20px, 1.8vw, 32px);
    margin-bottom: clamp(24px, 1.8vw, 40px);
}

.p-voiceArchiveList__grid {
    width: 60%;
    min-width: 800px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: clamp(20px, 1.6vw, 32px);
}

.p-voiceCard {
    background: #fff;
    border-radius: clamp(24px, 1.9vw, 36px);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    /* border: 1px solid rgba(0, 0, 0, 0.06); */
}

.p-voiceCard__link {
    display: flex;
    flex-direction: column;
    text-decoration: none;
    color: inherit;
    height: 100%;
    transition: opacity 0.3s ease;
}

.p-voiceCard__link:hover {
    opacity: 0.9;
}

.p-voiceCard__thumb {
    width: 85%;
    margin: clamp(20px, 1.6vw, 28px) auto 0;
    border-radius: clamp(20px, 1.5vw, 28px);
    overflow: hidden;
    display: block;
}

.p-voiceCard__thumb img {
    width: 100%;
    height: auto;
    display: block;
}

.p-voiceCard__body {
    padding: clamp(20px, 1.6vw, 32px) clamp(16px, 1.2vw, 24px) clamp(24px, 1.8vw, 36px);
    display: flex;
    flex-direction: column;
    gap: clamp(14px, 1.1vw, 18px);
    flex: 1;
}

.p-voiceCard__title {
    font-size: clamp(18px, 1.6vw, 26px);
    color: #5A5A5A;
    font-weight: 700;
    text-align: left;
    line-height: 1.6;
}

.p-voiceCard__cats {
    display: flex;
    flex-wrap: wrap;
    gap: clamp(8px, .6vw, 12px);
    justify-content: flex-start;
}

.c-chip--cat {
    background: #60B7C5;
    color: #fff;
    padding: 6px 10px;
    border-radius: clamp(8px, 0.6vw, 16px);
    font-size: clamp(12px, 1vw, 14px);
}

@media (max-width: 960px) {
    .p-voiceArchiveList__grid {
        grid-template-columns: 1fr;
        width: 90%;
        min-width: auto;
    }
    .p-voiceArchiveFilter {
        width: 90%;
    }
}


/**
 * Yawara Child Theme Custom Styles
 * やわら接骨院デザイン - フロントページ専用
 */


/* ===========================================
   Font Face / フォント定義
   =========================================== */


/* Google Fonts: Kosugi Maru は functions.php で読み込み */


/* ===========================================
   Parent Theme Reset / 親テーマリセット
   =========================================== */


/* 親テーマ（Arkhe）の全てのレイアウト制限をリセット */

*,
*::before,
*::after {
    box-sizing: border-box !important;
}

html {
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow-x: hidden !important;
}

body {
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow-x: hidden !important;
    color: #5A5A5A !important;
    font-family: var(--font-sans-jp) !important;
    line-height: 1.8 !important;
}


/* Arkheテーマの全体レイアウトをリセット */

.arkhe-site,
.arkhe-header,
.arkhe-main,
.arkhe-content,
.arkhe-container,
.arkhe-body,
#page,
#site-header,
#site-content,
#main,
#primary {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    display: block !important;
    position: relative;
}


/* 親テーマのスタイルを強制上書き */

body,
.arkhe-body,
main,
#main_content,
.arkhe-main,
.arkhe-container,
.arkhe-content {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
    font-family: var(--font-sans-jp) !important;
}


/* #main_content::after を適用 - デフォルトは #F2F8EF */

#main_content::after {
    content: '';
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    height: clamp(300px, 23.4vw, 600px);
    background: #F2F8EF;
    z-index: 0;
    pointer-events: none;
}


/* page-first と archive-symptom では background: #fff */

body.page-first #main_content::after,
body.archive-symptom #main_content::after,
body.page-template-page-first #main_content::after,
body.post-type-archive-symptom #main_content::after,
body.archive.post-type-archive-symptom #main_content::after,
body[class*="page-first"] #main_content::after,
body[class*="archive-symptom"] #main_content::after {
    background: #fff !important;
}


/* page-about では background: #65A373 */

body.page-about #main_content::after,
body.page-template-page-about #main_content::after,
body.page-template-about-page #main_content::after,
body[class*="page-about"] #main_content::after {
    background: #65A373 !important;
}


/* ===========================================
   Fade-in Animation Classes
   =========================================== */


/* fadein-load クラスの初期状態（画面ロード完了後1秒後に発火） */

.fadein-load {
    opacity: 0;
    filter: blur(10px);
    will-change: opacity, filter;
}


/* fadein-load アニメーション完了後 */

.fadein-load[data-fadein-load-animated] {
    opacity: 1;
    filter: blur(0px);
}


/* ===========================================
   CSS Variables / CSS変数
   =========================================== */

:root {
    --color-primary: #4A6B4A;
    --color-secondary: #E8F5E9;
    --color-accent-red: #D32F2F;
    --color-turquoise: #4DD0E1;
    --color-white: #FFFFFF;
    --color-black: #333333;
    --border-radius: 30px;
    --border-radius-small: 20px;
    --font-sans-jp: "Kosugi Maru", "Hiragino Maru Gothic ProN", "Yu Gothic", Meiryo, system-ui, -apple-system, "Segoe UI", sans-serif;
}


/* 全体のフォントを適用 */

html,
body {
    font-family: var(--font-sans-jp) !important;
    line-height: 1.8 !important;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-weight: 700 !important;
    /* synthetic bold */
    letter-spacing: .02em !important;
}


/* ===========================================
   Base Layout / 基本レイアウト
   =========================================== */

.l-container {
    /* width: 85%; */
    margin: 0 auto;
    padding: 0 20px;
    box-sizing: border-box;
    max-width: unset !important;
}

.l-section {
    position: relative;
    overflow-x: hidden;
}


/* ===========================================
   Hero Section / メインビジュアル
   =========================================== */

.p-heroSection {
    position: relative;
    height: 100vh;
    min-height: 600px;
    overflow: hidden;
    margin: 0 !important;
    padding: 0 !important;
}

.p-heroSection .l-container {
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

.p-heroSection__inner {
    position: relative;
    width: 100%;
    height: 100%;
}

.p-heroSection__image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.p-heroSection__imagePlaceholder {
    width: 100%;
    height: 100%;
    background: url('../images/common/yawara-sejutsu.JPG') center center/cover no-repeat;
}

.p-heroSection__overlay {
    position: absolute;
    top: 70%;
    left: 100px;
    transform: translateY(-50%);
    z-index: 10;
}

.p-heroSection__overlayBox {
    background: var(--color-white);
    padding: 20px 40px;
    border-radius: clamp(60px, 4.68vw, 100px);
    font-size: 28px;
    font-weight: 700;
    color: var(--color-black);
    margin-bottom: 20px;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.15);
    line-height: 1.3;
}

.p-heroSection__overlayBox:last-child {
    margin-bottom: 0;
}

.p-heroSection__accent {
    color: var(--color-accent-red);
}

.p-heroNews {
    position: absolute;
    right: 0;
    bottom: 0;
    display: flex;
    align-items: center;
    gap: clamp(12px, 1vw, 20px);
    background: rgba(255, 255, 255, 0.95);
    border-top-left-radius: clamp(28px, 2.2vw, 48px);
    padding: clamp(28px, 2.1vw, 40px) clamp(150px, 11.7vw, 300px) 0 clamp(50px, 3.9vw, 90px);
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.12);
    backdrop-filter: blur(6px);
    width: 50%;
    /* max-width: clamp(260px, 26vw, 420px); */
    z-index: 15;
}

.p-heroNews__viewport {
    overflow: hidden;
    flex: 1;
}

.p-heroNews__track {
    display: flex;
    transition: transform 0.35s ease;
}

.p-heroNews__item {
    flex: 0 0 100%;
    display: flex;
    align-items: center;
    gap: clamp(10px, 0.8vw, 16px);
}

.p-heroNews__date {
    color: #5A5A5A;
    font-size: clamp(16px, 1.25vw, 26px);
    flex-shrink: 0;
}

.p-heroNews__divider {
    width: 1px;
    height: clamp(16px, 1.2vw, 24px);
    background: rgba(90, 90, 90, 0.2);
    flex-shrink: 0;
}

.p-heroNews__title {
    font-size: clamp(16px, 1.25vw, 26px);
    color: #36BAC7;
    text-decoration: none;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    flex: 1;
}

.p-heroNews__title:hover {
    text-decoration: underline;
}

.p-heroNews__arrow {
    border: none;
    background: transparent;
    width: clamp(18px, 1.4vw, 28px);
    height: clamp(18px, 1.4vw, 28px);
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #36BAC7;
    cursor: pointer;
    transition: transform 0.2s ease;
}

.p-heroNews__arrow::before {
    content: '';
    display: block;
    width: clamp(10px, 0.8vw, 16px);
    height: clamp(10px, 0.8vw, 16px);
    border-top: 2px solid currentColor;
    border-right: 2px solid currentColor;
}

.p-heroNews__arrow--prev::before {
    transform: rotate(-135deg);
}

.p-heroNews__arrow--next::before {
    transform: rotate(45deg);
}

.p-heroNews__arrow:hover {
    transform: translateY(-1px);
}

.p-heroNews__arrow:disabled {
    opacity: 0.3;
    cursor: default;
    transform: none;
}

@media (max-width: 960px) {
    .p-heroNews {
        position: static;
        margin: clamp(20px, 3vw, 40px) auto 0;
        max-width: 480px;
        width: 90%;
    }
}


/* タブレット表示（451px〜959px）の調整 */

@media (min-width: 451px) and (max-width: 959px) {
    .p-heroSection {
        height: auto;
        min-height: auto;
        padding-bottom: 150px;
        overflow: visible;
    }
    .p-heroSection__inner {
        height: 70vh;
        min-height: auto;
        position: relative;
        overflow: hidden;
    }
    .p-heroSection__overlay {
        left: clamp(20px, 2vw, 50px);
        top: 60%;
        transform: translateY(-50%);
    }
    .p-heroSection__overlayBox {
        padding: clamp(15px, 1.5vw, 30px) clamp(20px, 2vw, 40px);
        font-size: clamp(20px, 2vw, 28px);
    }
    .p-heroNews {
        position: absolute;
        bottom: -120px;
        left: 50%;
        transform: translateX(-50%);
        margin: 0;
        max-width: 90%;
        width: 90%;
        border-radius: clamp(20px, 1.6vw, 30px);
        padding: clamp(20px, 1.6vw, 30px);
        background: #ffffff;
        box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
        z-index: 20;
    }
}

@media (max-width: 540px) {
    .p-heroNews {
        flex-direction: column;
        align-items: stretch;
        gap: clamp(12px, 1vw, 16px);
    }
    .p-heroNews__arrowWrapper,
    .p-heroNews__arrow {
        align-self: flex-end;
    }
    .p-heroNews__viewport {
        width: 100%;
    }
}

@media (max-width: 450px) {
    .p-heroSection {
        height: auto;
        min-height: unset;
        padding: clamp(20px, 6vw, 32px) 0 clamp(48px, 14vw, 72px);
    }
    .p-heroSection__inner {
        position: relative;
        min-height: unset;
        padding: 0 clamp(16px, 6vw, 24px);
        gap: clamp(20px, 6vw, 36px);
    }
    .p-heroSection__overlay {
        position: static;
        transform: none;
        left: auto;
        top: auto;
        margin: 0;
        display: grid;
        gap: clamp(12px, 4vw, 18px);
    }
    .p-heroSection__overlayBox {
        font-size: clamp(18px, 5vw, 24px);
        padding: clamp(12px, 4vw, 18px) clamp(18px, 6vw, 32px);
        margin: 0;
    }
    .p-heroSection__p {
        font-size: 22px;
    }
    .p-heroNews {
        position: absolute;
        width: 120%;
        bottom: -100px;
        left: -20% !important;
        flex-direction: row;
        margin: clamp(24px, 8vw, 36px) auto 0;
        border-radius: clamp(32px, 14vw, 48px);
        padding: clamp(16px, 5vw, 22px) clamp(20px, 6vw, 28px) clamp(16px, 5vw, 22px) 13%;
        box-shadow: none !important;
    }
    .p-heroNews__date,
    .p-heroNews__title {
        font-size: clamp(13px, 4vw, 16px);
    }
    .p-heroNews__arrow {
        width: clamp(18px, 4vw, 22px);
        height: clamp(18px, 4vw, 22px);
    }
}


/* ===========================================
   Media Queries / メディアクエリ
   =========================================== */


/* ====== LINE風 吹き出し（scoped） ====== */

.line-chat {
    padding: 20px 10px;
    max-width: 680px;
    margin: 20px auto;
    text-align: right;
    /* 右側吹き出しの揃え用 */
    font-size: 15px;
    line-height: 1.75;
}


/* 左（アイコン付き） */

.line-chat .balloon-left {
    width: 100%;
    margin: 12px 0;
    overflow: hidden;
}

.line-chat .balloon-left .faceicon {
    float: left;
    margin-right: -50px;
    width: 40px;
}

.line-chat .balloon-left .faceicon img {
    width: 100%;
    height: auto;
    border-radius: 50%;
    display: block;
}

.line-chat .balloon-left .chatting {
    width: 100%;
    text-align: left;
}

.line-chat .says {
    display: inline-block;
    position: relative;
    margin: 0 0 0 50px;
    padding: 12px 14px;
    max-width: 75%;
    border-radius: 12px;
    background: #FDFF00;
    /* ← 左バルーン背景 */
    color: #65A373;
    /* ← 文字色 */
    word-break: break-word;
}

.line-chat .says:after {
    content: "";
    position: absolute;
    top: 8px;
    left: -18px;
    border: 8px solid transparent;
    border-right: 18px solid #FDFF00;
    /* ← 吹き出し尻尾の色を背景と同色に */
    transform: rotate(35deg);
}

.line-chat .says p {
    margin: 0;
}


/* 右（アイコンなし） */

.line-chat .mycomment {
    margin: 12px 0;
}

.line-chat .mycomment p {
    display: inline-block;
    position: relative;
    margin: 0 10px 0 0;
    padding: 12px 14px;
    max-width: 75%;
    border-radius: 12px;
    background: #F3F8F0;
    /* ← 右バルーン背景 */
    color: #65A373;
    /* ← 文字色 */
    word-break: break-word;
}

.line-chat .mycomment p:after {
    content: "";
    position: absolute;
    top: 8px;
    right: -18px;
    border: 8px solid transparent;
    border-left: 18px solid #F3F8F0;
    /* ← 尻尾も同色 */
    transform: rotate(-35deg);
}


/* リンクも統一色に（必要なら） */

.line-chat a {
    color: #65A373;
    text-decoration: underline;
}


/* スマホ調整 */

@media (max-width: 480px) {
    .line-chat .says,
    .line-chat .mycomment p {
        max-width: 88%;
    }
}


/* タブレット (960px以下) */

@media (max-width: 960px) {
    .l-container {
        width: 95%;
        padding: 0 15px;
    }
    .p-heroSection {
        min-height: 500px;
    }
    .p-heroSection__overlay {
        left: 40px;
    }
    .p-heroSection__overlayBox {
        padding: 16px 30px;
        font-size: 22px;
        margin-bottom: 15px;
    }
}


/* スマホ (540px以下) */

@media (max-width: 540px) {
    .l-container {
        width: 100%;
        padding: 0 10px;
    }
    .p-heroSection {
        min-height: 400px;
    }
    .p-heroSection__overlay {
        left: 0px;
        right: 20px;
        top: 60%;
    }
    .p-heroSection__overlayBox {
        padding: 12px 20px;
        font-size: 16px;
        margin-bottom: 10px;
        border-radius: var(--border-radius-small);
        text-align: center;
    }
}


/* ===========================================
   Price Page / 施術・料金ページ
   =========================================== */

.p-pricePage {
    width: 100%;
}

.p-priceIntro {
    background: #fff;
}

.p-priceIntro__container {
    width: 80%;
    height: clamp(300px, 23.4vw, 500px);
    margin: 0 auto;
    background: #ffffff;
    border-radius: clamp(36px, 2.8vw, 72px);
    padding: clamp(40px, 3.1vw, 80px) clamp(24px, 2vw, 48px);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.p-priceIntro__title {
    font-size: clamp(32px, 2.5vw, 48px);
    font-weight: 700;
    color: #526456;
    text-align: center;
    margin-bottom: clamp(16px, 1.2vw, 24px);
}

.p-priceIntro__desc {
    font-size: clamp(16px, 1.25vw, 32px);
    color: #526456;
    line-height: 2;
    text-align: center;
}

.p-priceMenuSection {
    position: relative;
    background-color: #F2F8EF;
    padding: 0 clamp(100px, 7.8vw, 200px) clamp(80px, 6vw, 120px) clamp(100px, 7.8vw, 200px);
    overflow: hidden;
    border-top-left-radius: 1000px clamp(200px, 15.6vw, 400px);
    border-top-right-radius: 1000px clamp(200px, 15.6vw, 400px);
    margin-left: clamp(-100px, -7.8vw, -200px);
    margin-right: clamp(-100px, -7.8vw, -200px);
}

.p-priceMenuSection__container {
    width: 60%;
    min-width: 800px;
    margin: 0 auto;
    position: relative;
    z-index: 1;
}

.p-priceMenuSection__heading {
    padding-top: 30px;
    padding-bottom: 30px;
    margin-top: clamp(48px, 3.7vw, 96px);
    margin-bottom: clamp(24px, 1.8vw, 40px);
    font-size: clamp(24px, 2vw, 40px);
    font-weight: 700;
    color: #5A5A5A;
    text-align: center;
}

.symptom-menu-sub {
    margin-top: 0 !important;
}

.p-priceMenuSection__lead {
    font-size: clamp(14px, 1.1vw, 16px);
    color: #5A5A5A;
    line-height: 1.6;
    margin-bottom: clamp(40px, 3vw, 60px);
    text-align: center;
}

.p-priceMenuSection__groupHeader {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    gap: 5px;
    margin-bottom: 10px;
    position: relative;
}

.p-priceMenuSection__groupHeader--spaced {
    margin-top: clamp(40px, 3vw, 72px);
}

.p-priceMenuSection__groupPill {
    display: inline-block;
    background: #5B6D4C;
    color: #fff;
    padding: clamp(16px, 1.25vw, 32px);
    border-radius: clamp(20px, 1.56vw, 40px);
    font-weight: 700;
    font-size: clamp(20px, 1.56vw, 40px);
    width: 50%;
    min-width: 300px;
    text-align: center;
}

.p-priceMenuSection__bubbles {
    position: revert;
    margin-left: 30%;
    /* bottom: clamp(-28px, -2.2vw, -20px);
    right: clamp(140px, 10vw, 260px); */
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 3px;
}

.p-priceMenuSection__bubble {
    background: #5B6D4C;
    border-radius: 50%;
    display: inline-block;
}

.p-priceMenuSection__bubble--lg {
    width: 18px;
    height: 18px;
    transform: translateX(0);
}

.p-priceMenuSection__bubble--md {
    width: 12px;
    height: 12px;
    transform: translateX(-10px);
}

.p-priceMenuSection__bubble--sm {
    width: 6px;
    height: 6px;
    transform: translateX(-22px);
}

.p-priceMenuSection__list {
    display: grid;
    grid-template-columns: 1fr;
    gap: clamp(16px, 1.2vw, 24px);
    margin-bottom: clamp(20px, 1.5vw, 32px);
}

.c-priceItem {
    display: grid;
    grid-template-columns: 1fr 2fr;
    gap: clamp(28px, 2.1vw, 40px);
    align-items: center;
    background: #ffffff;
    border-radius: clamp(24px, 1.9vw, 36px);
    padding: clamp(28px, 2.1vw, 40px);
}

.c-priceItem__thumb img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: clamp(16px, 1.2vw, 20px);
}

.c-priceItem__content {
    padding: 0;
    display: flex;
    flex-direction: column;
}

.c-priceItem__head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
}

.c-priceItem__title {
    font-size: clamp(20px, 1.56vw, 40px);
    font-weight: 700;
    color: #5A5A5A;
}

.c-priceItem__price {
    font-size: clamp(14px, 1.1vw, 16px);
    color: #5A5A5A;
    font-weight: 700;
}

.c-priceItem__excerpt {
    font-size: clamp(14px, 1.1vw, 16px);
    color: #5A5A5A;
    line-height: 1.8;
    margin: clamp(8px, .6vw, 12px) 0 clamp(12px, .9vw, 16px);
}

.c-priceItem__lead {
    font-size: clamp(14px, 1.1vw, 16px);
    color: #5A5A5A;
    line-height: 1.8;
    margin: clamp(8px, .6vw, 12px) 0 clamp(12px, .9vw, 16px);
}

.c-priceItem__button {
    display: inline-block;
    background: #76B5C3;
    color: #fff;
    text-decoration: none;
    padding: clamp(10px, .9vw, 14px) clamp(16px, 1.2vw, 22px);
    border-radius: clamp(60px, 4.68vw, 100px);
    font-weight: 400;
    align-self: flex-end;
    font-size: clamp(16px, 1.25vw, 26px);
    width: clamp(200px, 15.6vw, 350px);
    text-align: center;
}

.c-priceItem__button::after {
    content: '→';
    display: inline-block;
    margin-left: .5em;
}

.c-priceItem__button:hover {
    transform: translateY(-2px);
}

@media (max-width: 960px) {
    .c-priceItem {
        grid-template-columns: 1fr;
    }
}


/* タブレット表示（451px〜960px）の調整 */

@media (min-width: 451px) and (max-width: 960px) {
    .p-priceMenuSection__container {
        min-width: auto;
        width: 90%;
    }
    .p-priceIntro__container {
        width: 90%;
    }
}


/* ===========================================
   About Section / 当院について
   =========================================== */

.p-aboutSection {
    position: relative;
    padding: 80px 0;
    overflow: visible;
}


/* アバウトセクション左側の円（擬似要素） - ヒーローセクション側へはみ出す */

.p-aboutSection::before {
    content: '';
    position: absolute;
    width: clamp(300px, 23.4vw, 500px);
    height: clamp(300px, 23.4vw, 500px);
    background-color: #EFFBFB;
    border-radius: 50%;
    left: -10%;
    top: -150px;
    z-index: 0;
    pointer-events: none;
}

.p-aboutSection__inner {
    /* max-width: 1200px; */
    width: 80%;
    margin: 0 auto;
}

.p-aboutSection__subtitle {
    font-size: clamp(14px, 1.2vw, 18px);
    font-weight: 600;
    color: #36BAC7;
    letter-spacing: 0.2em;
    margin-bottom: 20px;
    text-align: left;
}

.p-aboutSection__title {
    font-size: clamp(48px, 3.7vw, 96px);
    font-weight: 400;
    color: #5A5A5A;
    line-height: 1.5;
    margin-bottom: 60px;
}

.p-aboutSection__accent {
    color: #36BAC7;
}

.p-aboutSection__content {
    display: flex;
    gap: 60px;
    align-items: flex-start;
}

.p-aboutSection__textWrapper {
    flex: 1;
}

.p-aboutSection__text {
    font-size: clamp(16px, 1.25vw, 26px);
    line-height: 2;
    color: #5A5A5A;
    margin-bottom: 40px;
}

.p-aboutSection__text p {
    margin-bottom: 1em;
}

.p-aboutSection__text p:last-child {
    margin-bottom: 0;
}

.p-aboutSection__buttons {
    display: flex;
    gap: 20px;
}

.c-btn--green {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: clamp(16px, 1.5vw, 24px) clamp(32px, 3vw, 48px);
    background: #4A6B4A;
    color: #FFFFFF;
    text-decoration: none;
    border-radius: clamp(60px, 4.68vw, 100px);
    font-size: clamp(16px, 1.2vw, 20px);
    font-weight: 600;
    transition: all 0.3s ease;
    white-space: nowrap;
}

.c-btn--green:hover {
    background: #3a5a3a;
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(74, 107, 74, 0.3);
}


/* Arrow Button Styles / 矢印付きボタン */

.c-btn--arrow {
    position: relative;
    padding-right: clamp(80px, 6vw, 100px) !important;
    overflow: visible;
}


/* 矢印の横線部分 */

.c-btn--arrow::after {
    content: '';
    position: absolute;
    right: clamp(25px, 2.5vw, 35px);
    top: 50%;
    transform: translateY(-50%);
    width: clamp(25px, 2vw, 50px);
    height: 2px;
    border-radius: 9999px;
    background-color: #ffffff;
    transition: all 0.3s ease;
}


/* 矢印の斜め線部分（上下両方をborderで作成） */

.c-btn--arrow::before {
    content: '';
    position: absolute;
    right: clamp(25px, 2.5vw, 35px);
    top: calc(50% - clamp(6px, 0.5vw, 11px));
    width: clamp(11px, 1vw, 22px);
    height: clamp(11px, 1vw, 22px);
    border-right: 2px solid #ffffff;
    border-top: 2px solid #ffffff;
    transform: rotate(45deg);
    transition: all 0.3s ease;
    background: transparent;
}


/* ホバー時のアニメーション */

.c-btn--arrow:hover::before {
    transform: translateX(3px) rotate(45deg);
}

.c-btn--arrow:hover::after {
    transform: translateX(3px) translateY(-50%);
}


/* ===========================================
   SNS Section / SNS・Instagram
   =========================================== */

.p-snsSection {
    background-color: #F2F8EF;
    border-top-left-radius: clamp(200px, 15.6vw, 350px);
    border-top-right-radius: clamp(200px, 15.6vw, 350px);
    padding: clamp(80px, 6vw, 120px) 0 clamp(60px, 4.5vw, 90px);
    position: relative;
    overflow: hidden;
}

.p-snsSection__inner {
    /* max-width: 1200px; */
    width: 70%;
    min-width: 800px;
    margin: 0 auto;
    text-align: center;
}

.p-snsSection__titleGroup {
    margin-bottom: clamp(32px, 2.5vw, 48px);
    text-align: center;
    display: flex;
    gap: clamp(20px, 1.56vw, 40px);
    flex-direction: column;
    align-items: center;
}

.p-snsSection__subtitle {
    position: relative;
    line-height: 1.4;
    padding: 0.25em 1em;
    display: inline-block;
    font-size: clamp(18px, 1.4vw, 32px);
    font-weight: 600;
    color: #5A5A5A;
    text-align: center;
    margin-bottom: clamp(20px, 1.5vw, 30px);
}

.p-snsSection__subtitle::before,
.p-snsSection__subtitle::after {
    content: '';
    width: 20px;
    height: 30px;
    position: absolute;
    display: inline-block;
}

.p-snsSection__subtitle::before {
    border-left: solid 1px #5A5A5A;
    border-top: solid 1px #5A5A5A;
    top: -5px;
    left: 0;
}

.p-snsSection__subtitle::after {
    border-right: solid 1px #5A5A5A;
    border-bottom: solid 1px #5A5A5A;
    bottom: -5px;
    right: 0;
}

.p-snsSection__title {
    position: relative;
    display: inline-block;
    padding: 1rem 2rem calc(1rem + 10px);
    background: #fff100;
    font-size: clamp(28px, 2.1vw, 40px);
    font-weight: 700;
    color: #000;
    line-height: 1.3;
    text-align: center;
    margin-bottom: clamp(20px, 1.5vw, 30px);
    white-space: nowrap;
    letter-spacing: 1.8px;
}

.p-snsSection__title::before {
    position: absolute;
    top: -7px;
    left: -7px;
    width: 100%;
    height: 100%;
    content: '';
    border: 3px dotted #4A6B4A;
    pointer-events: none;
}

.p-snsSection__title::after {
    display: none;
}

.p-snsSection__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: clamp(15px, 1.2vw, 20px);
    margin-bottom: clamp(40px, 3vw, 60px);
}

.p-snsSection__item {
    aspect-ratio: 1;
    border-radius: 12px;
    overflow: hidden;
    background: #ffffff;
}

.p-imagePlaceholder--square {
    width: 100%;
    height: 100%;
    background: #f0f0f0;
    display: flex;
    align-items: center;
    justify-content: center;
}


/* YouTube動画埋め込み */

.p-snsSection__video {
    position: relative;
    width: 100%;
    max-width: 800px;
    margin: 0 auto clamp(40px, 3vw, 60px);
    aspect-ratio: 16 / 9;
    border-radius: clamp(12px, 0.9vw, 20px);
    overflow: hidden;
    box-shadow: none;
}

.p-snsSection__videoFrame {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: none;
}

.p-snsSection__videoOverlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
    pointer-events: auto;
    background: transparent;
    cursor: pointer;
}


/* ホバー時にオーバーレイを表示してYouTubeのUI要素を隠す */

.p-snsSection__video:hover .p-snsSection__videoOverlay {
    pointer-events: auto;
}


/* 右上の装飾用白丸 */

.p-snsSection::before {
    content: '';
    position: absolute;
    top: 0;
    right: clamp(80px, 6.25vw, 140px);
    width: clamp(120px, 9.4vw, 200px);
    height: clamp(120px, 9.4vw, 200px);
    background-color: #ffffff;
    border-radius: 50%;
    opacity: 0.8;
    z-index: 0;
}

.p-snsSection::after {
    content: '';
    position: absolute;
    top: clamp(120px, 9.4vw, 180px);
    right: clamp(40px, 3.1vw, 80px);
    width: clamp(48px, 3.7vw, 96px);
    height: clamp(48px, 3.7vw, 96px);
    background-color: #ffffff;
    border-radius: 50%;
    opacity: 0.7;
    z-index: 0;
}

.c-btn--instagram {
    background: #4A6B4A;
    color: #ffffff;
    padding: clamp(16px, 1.5vw, 24px) clamp(32px, 3vw, 48px);
    border-radius: clamp(60px, 4.68vw, 100px);
    font-size: clamp(16px, 1.2vw, 20px);
    font-weight: 600;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s ease;
    white-space: nowrap;
}

.c-btn--instagram:hover {
    background: #3a5a3a;
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(74, 107, 74, 0.3);
}

.c-btn--primary {
    background: #4A6B4A;
    color: #ffffff;
    padding: clamp(16px, 1.5vw, 24px) clamp(32px, 3vw, 48px);
    border-radius: clamp(60px, 4.68vw, 100px);
    font-size: clamp(16px, 1.2vw, 20px);
    font-weight: 600;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s ease;
    white-space: nowrap;
}

.c-btn--primary:hover {
    background: #3a5a3a;
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(74, 107, 74, 0.3);
}


/* Media Queries for SNS Section */

@media (max-width: 960px) {
    .p-snsSection {
        padding: clamp(60px, 5vw, 80px) 0 clamp(40px, 3vw, 60px);
    }
    .p-snsSection__inner {
        min-width: auto;
    }
    .p-snsSection__grid {
        grid-template-columns: repeat(2, 1fr);
        gap: clamp(12px, 1vw, 15px);
    }
    .p-snsSection__video {
        max-width: 100%;
        margin-bottom: clamp(30px, 2.5vw, 40px);
    }
    .p-snsSection::before {
        top: clamp(40px, 3vw, 60px);
        right: clamp(50px, 4vw, 80px);
        width: clamp(80px, 6vw, 120px);
        height: clamp(80px, 6vw, 120px);
    }
    .p-snsSection::after {
        top: clamp(80px, 6vw, 120px);
        right: clamp(20px, 2vw, 40px);
        width: clamp(60px, 4.5vw, 90px);
        height: clamp(60px, 4.5vw, 90px);
    }
}

@media (max-width: 540px) {
    .p-snsSection {
        padding: clamp(40px, 4vw, 60px) 0 clamp(30px, 2.5vw, 40px);
        border-top-left-radius: clamp(60px, 4.68vw, 100px);
        border-top-right-radius: clamp(60px, 4.68vw, 100px);
    }
    .p-snsSection__inner {
        min-width: auto;
    }
    .p-snsSection__grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 10px;
    }
    .p-snsSection__video {
        max-width: 100%;
        margin-bottom: clamp(25px, 2vw, 30px);
        border-radius: clamp(8px, 0.6vw, 12px);
    }
    .p-snsSection::before {
        top: clamp(30px, 2.5vw, 40px);
        right: clamp(30px, 2.5vw, 40px);
        width: clamp(60px, 5vw, 80px);
        height: clamp(60px, 5vw, 80px);
    }
    .p-snsSection::after {
        top: 80px;
        right: 0;
        width: 30px;
        height: 30px;
    }
}

@media (max-width: 450px) {
    .p-snsSection__inner {
        width: 100%;
        padding: 0 clamp(20px, 4.4vw, 30px);
    }
    .p-snsSection__subtitle {
        position: relative;
        line-height: 1.4;
        padding: 0.25em 1em;
        display: inline-block;
    }
    .p-snsSection__subtitle::before,
    .p-snsSection__subtitle::after {
        content: '';
        width: 20px;
        height: 30px;
        position: absolute;
        display: inline-block;
    }
    .p-snsSection__subtitle::before {
        border-left: solid 1px #5A5A5A;
        border-top: solid 1px #5A5A5A;
        top: -5px;
        left: 0;
    }
    .p-snsSection__subtitle::after {
        border-right: solid 1px #5A5A5A;
        border-bottom: solid 1px #5A5A5A;
        bottom: -5px;
        right: 0;
    }
    .p-snsSection__title {
        white-space: normal;
        padding: 0.7rem 1.2rem calc(0.7rem + 6px);
        font-size: clamp(18px, 4vw, 24px);
        width: 90%;
        letter-spacing: 1.8px;
    }
    .p-snsSection__titleGroup {
        margin-bottom: 10px;
        text-align: center;
        display: flex;
        flex-direction: column;
        align-items: center;
    }
    /* スマホで「やわら接骨院」の前で改行 */
    .p-snsSection__titleBreak {
        display: block;
    }
    /* スマホで「、」を非表示 */
    .p-snsSection__comma {
        display: none;
    }
    .p-snsSection__video {
        width: 100vw;
        max-width: 100vw;
        margin-left: calc(-50vw + 50%);
        margin-right: calc(-50vw + 50%);
        border-radius: 0;
    }
}


/* ===========================================
   Menu Section / 施術メニュー
   =========================================== */

.p-menuSection {
    background-color: #F2F8EF;
    padding: clamp(80px, 6vw, 120px) 0 0;
    position: relative;
}

.p-menuSection .l-container {
    background-color: #ffffff;
    border-top-left-radius: clamp(200px, 15.6vw, 350px);
    border-top-right-radius: clamp(200px, 15.6vw, 350px);
    padding: clamp(60px, 4.5vw, 90px) clamp(40px, 3vw, 60px);
}

.p-menuSection__inner {
    /* max-width: 1200px; */
    width: 70%;
    min-width: 800px;
    margin: 0 auto;
    text-align: center;
}

.p-menuSection__subtitle {
    font-size: clamp(14px, 1.2vw, 18px);
    font-weight: 600;
    color: #36BAC7;
    letter-spacing: 0.2em;
    margin-bottom: 20px;
    text-align: center;
}

.p-menuSection__title {
    font-size: clamp(28px, 2.1vw, 40px);
    font-weight: 700;
    color: #5A5A5A;
    line-height: 1.3;
    text-align: center;
    margin-bottom: clamp(20px, 1.5vw, 30px);
}

.p-menuSection__lead {
    font-size: clamp(16px, 1.25vw, 20px);
    color: #5A5A5A;
    line-height: 1.8;
    margin: 0 auto clamp(60px, 4.7vw, 90px);
    text-align: center;
    max-width: 760px;
}


/* Media Queries for Menu Section */

@media (max-width: 960px) {
    .p-menuSection {
        padding: clamp(60px, 5vw, 80px) 0 clamp(40px, 3vw, 60px);
    }
}

@media (max-width: 540px) {
    .p-menuSection {
        padding: clamp(40px, 4vw, 60px) 0 clamp(30px, 2.5vw, 40px);
    }
    .p-menuSection .l-container {
        border-top-left-radius: clamp(60px, 4.68vw, 100px);
        border-top-right-radius: clamp(60px, 4.68vw, 100px);
        padding: clamp(40px, 3vw, 60px) clamp(20px, 2vw, 30px);
    }
}


/* Menu Items / メニューアイテム */

.p-menuSection__list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(24px, 2vw, 36px);
    margin-bottom: clamp(60px, 4.7vw, 80px);
}

.c-menuCard {
    --menu-card-color: #566E48;
    position: relative;
    background-color: #FFFFFF;
    border: 2px solid var(--menu-card-color);
    border-radius: clamp(24px, 1.8vw, 44px);
    padding: clamp(48px, 3.7vw, 72px);
    padding-bottom: clamp(48px, 3.7vw, 72px);
    overflow: visible;
    text-align: left;
    color: #5A5A5A;
    min-height: clamp(260px, 18vw, 360px);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

.c-menuCard__link {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
    text-decoration: none;
}

.c-menuCard__content {
    display: flex;
    flex-direction: column;
    align-items: center;
    position: relative;
    z-index: 2;
}

.c-menuCard__label {
    position: absolute;
    top: -2px;
    left: -2px;
    padding: clamp(14px, 1.1vw, 20px) clamp(30px, 2.3vw, 38px);
    background-color: var(--menu-card-color);
    color: #FFFFFF;
    font-size: clamp(14px, 1.1vw, 18px);
    font-weight: 600;
    letter-spacing: 0.04em;
    border-radius: clamp(24px, 1.8vw, 44px) 0 clamp(24px, 1.8vw, 44px) 0;
    line-height: 1.2;
    z-index: 3;
}

.c-menuCard__eyebrow {
    font-size: clamp(15px, 1.17vw, 28px);
    letter-spacing: 0.18em;
    color: var(--menu-card-color);
    font-weight: 700;
    text-transform: uppercase;
    margin-bottom: 0;
}

.c-menuCard__title {
    font-size: clamp(28px, 2.1vw, 48px);
    font-weight: 700;
    color: #5A5A5A;
    line-height: 1.3;
    margin-bottom: clamp(24px, 1.8vw, 32px);
}

.c-menuCard--order .c-menuCard__title {
    margin-bottom: clamp(8px, 0.6vw, 12px);
}

.c-menuCard__acupuncture {
    font-size: clamp(16px, 1.25vw, 26px);
    color: #5A5A5A;
    line-height: 1.3;
    margin-bottom: clamp(16px, 1.2vw, 20px);
}

.c-menuCard__description {
    font-size: clamp(16px, 1.25vw, 20px);
    line-height: 1.7;
    margin-bottom: clamp(16px, 1.2vw, 24px);
}

.c-menuCard__cta {
    position: absolute;
    right: 0;
    bottom: 15px;
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: clamp(8px, 0.6vw, 12px);
    background-color: #FFFFFF;
    padding: clamp(14px, 1vw, 18px) clamp(18px, 1.3vw, 24px);
    color: var(--menu-card-color);
    font-size: clamp(10px, 0.78vw, 18px);
    font-weight: 600;
    text-decoration: none;
    transform: translate(clamp(18px, 1.4vw, 26px), clamp(18px, 1.4vw, 26px));
    z-index: 3;
    pointer-events: none;
}

.c-menuCard__ctaArrow {
    position: relative;
    display: block;
    width: clamp(48px, 3.6vw, 64px);
    height: clamp(16px, 1.2vw, 24px);
    color: transparent;
}

.c-menuCard__ctaArrow::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 0;
    width: 100%;
    height: 2px;
    background-color: var(--menu-card-color);
    transform: translateY(-50%);
}

.c-menuCard__ctaArrow::after {
    content: '';
    position: absolute;
    top: 50%;
    right: 0;
    width: clamp(12px, 0.9vw, 18px);
    height: 12px;
    border-top: 2px solid var(--menu-card-color);
    border-right: 2px solid var(--menu-card-color);
    transform: translateY(-50%) rotate(45deg);
    transform-origin: center;
}

.c-menuCard__ctaText {
    line-height: 1.2;
}

.c-menuCard--order {
    --menu-card-color: #566E48;
}

.c-menuCard--insurance {
    --menu-card-color: #75D0D9;
}

.c-menuCard--insurance .c-menuCard__title,
.c-menuCard--insurance .c-menuCard__description {
    color: #437379;
}

.c-menuCard--beauty {
    --menu-card-color: #65A373;
}

.c-menuCard--beauty .c-menuCard__title,
.c-menuCard--beauty .c-menuCard__description {
    color: #4A6B4A;
}

.c-menuCard--wide {
    grid-column: 1 / -1;
}

.p-menuSection__button {
    text-align: center;
    margin-bottom: clamp(40px, 3vw, 60px);
}

.p-menuSection__notice {
    color: #526456;
    font-size: clamp(20px, 1.56vw, 40px);
    text-align: center;
    line-height: 1.8;
    margin-top: clamp(40px, 3vw, 60px);
}

.p-firstMenuSection__notice {
    color: #526456;
    font-size: clamp(20px, 1.56vw, 40px);
    text-align: center;
    line-height: 1.8;
    margin-top: clamp(40px, 3vw, 60px);
}

@media (max-width: 960px) {
    .p-menuSection__inner {
        width: 85%;
    }
    .p-menuSection__list {
        grid-template-columns: 1fr;
    }
    .c-menuCard {
        padding: clamp(40px, 3vw, 60px);
        padding-bottom: clamp(90px, 6.5vw, 110px);
    }
    .c-menuCard__cta {
        right: clamp(24px, 2vw, 32px);
        bottom: clamp(24px, 2vw, 32px);
    }
}


/* タブレット表示（451px〜960px）の調整 */

@media (min-width: 451px) and (max-width: 960px) {
    .p-menuSection__inner {
        min-width: auto;
        width: 90%;
    }
}

@media (max-width: 540px) {
    .p-menuSection__inner {
        width: 100%;
        min-width: auto;
    }
    .c-menuCard__label {
        font-size: clamp(12px, 1vw, 16px);
        padding: clamp(10px, 0.9vw, 16px) clamp(20px, 1.6vw, 28px);
    }
    .c-menuCard__cta {
        position: relative;
        right: auto;
        bottom: auto;
        margin-top: clamp(24px, 1.8vw, 32px);
        transform: none;
    }
    .c-menuCard__ctaArrow::after {
        width: clamp(10px, 1.8vw, 14px);
        height: 10px;
    }
}

@media (max-width: 450px) {
    .p-menuSection__notice {
        text-align: left;
        font-size: 14px;
    }
    .p-menuSection__notice br {
        display: none;
    }
    .p-firstMenuSection__notice {
        text-align: left;
        font-size: 14px;
    }
    .p-firstMenuSection__notice br {
        display: none;
    }
}


/* Media Queries for Menu Items */

@media (max-width: 960px) {
    .p-menuSection__list {
        grid-template-columns: 1fr;
        gap: clamp(15px, 1.2vw, 20px);
    }
    .c-menuCard {
        padding: clamp(40px, 3vw, 60px);
        padding-bottom: clamp(90px, 6.5vw, 110px);
    }
    .c-menuCard__cta {
        right: clamp(24px, 2vw, 32px);
        bottom: clamp(24px, 2vw, 32px);
    }
}

.p-aboutSection__images {
    flex: 0 0 35%;
    position: relative;
    height: auto;
}

.p-aboutSection__image--large {
    position: absolute;
    bottom: 0;
    right: -50%;
    width: clamp(450px, 35vw, 700px);
    height: clamp(250px, 19.5vw, 350px);
    border-radius: 20px;
    overflow: hidden;
    /* box-shadow: 0 8px 30px rgba(0, 0, 0, 0.1); */
}

.p-aboutSection__image--large img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.p-aboutSection__image--small {
    position: absolute;
    top: 50px;
    right: -30%;
    width: clamp(200px, 15.6vw, 350px);
    height: clamp(320px, 25vw, 550px);
    border-radius: 20px;
    overflow: hidden;
    /* box-shadow: 0 8px 30px rgba(0, 0, 0, 0.1); */
    z-index: 2;
}

.p-aboutSection__image--small img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}


/* Media Queries for About Section */

@media (max-width: 960px) {
    .p-aboutSection {
        padding: 60px 0;
    }
    .p-aboutSection__content {
        flex-direction: column;
        gap: 40px;
    }
    .p-aboutSection__images {
        flex: none;
        height: 300px;
        width: 100%;
    }
    .p-aboutSection__image--large {
        width: 280px;
        height: 200px;
    }
    .p-aboutSection__image--small {
        width: 200px;
        height: 150px;
    }
    .p-aboutSection__buttons {
        flex-direction: column;
        gap: 15px;
    }
}


/* タブレット表示（451px〜959px）の調整 */

@media (min-width: 451px) and (max-width: 959px) {
    .p-aboutSection__images {
        position: relative;
        width: 100%;
        height: 300px;
        display: flex;
        justify-content: center;
        align-items: center;
    }
    .p-aboutSection__image--large {
        position: relative;
        right: auto;
        bottom: auto;
        width: 50%;
        max-width: 350px;
        height: 200px;
        margin-right: 20px;
    }
    .p-aboutSection__image--small {
        position: relative;
        right: auto;
        top: auto;
        width: 40%;
        max-width: 250px;
        height: 250px;
    }
}

@media (max-width: 540px) {
    .p-aboutSection::before {
        content: '';
        position: absolute;
        width: clamp(300px, 23.4vw, 500px);
        height: clamp(300px, 23.4vw, 500px);
        background-color: #EFFBFB;
        border-radius: 50%;
        left: -40%;
        top: -200px;
        z-index: 0;
        pointer-events: none;
    }
    .p-aboutSection {
        padding: 40px 0;
        overflow: visible;
    }
    .p-aboutSection__content {
        gap: 30px;
    }
    .p-aboutSection__images {
        height: 250px;
    }
    .p-aboutSection__image--large {
        width: 220px;
        height: 160px;
    }
    .p-aboutSection__image--small {
        width: 160px;
        height: 120px;
    }
    .p-aboutSection__buttons {
        gap: 12px;
    }
    .c-btn--green {
        padding: 14px 28px;
        font-size: 14px;
    }
}


/* ===========================================
   Flow Section / 施術の流れ
   =========================================== */

.p-flowSection {
    padding: clamp(80px, 6vw, 120px) 0;
    position: relative;
    background-color: #ffffff;
}

.p-flowSection__decoration--topLeft {
    position: absolute;
    top: 0;
    left: 0;
    width: clamp(200px, 15.6vw, 350px);
    height: clamp(200px, 15.6vw, 350px);
    background-color: #F2F8EF;
    border-bottom-right-radius: clamp(200px, 15.6vw, 350px);
    z-index: 1;
}

.p-flowSection__inner {
    /* max-width: 1200px; */
    width: 70%;
    min-width: 800px;
    margin: 0 auto;
    text-align: center;
    position: relative;
    z-index: 2;
}

.p-flowSection__subtitle {
    font-size: clamp(14px, 1.2vw, 18px);
    font-weight: 600;
    color: #36BAC7;
    letter-spacing: 0.2em;
    margin-bottom: 20px;
    text-align: center;
}

.p-flowSection__title {
    font-size: clamp(28px, 2.1vw, 40px);
    font-weight: 700;
    color: #5A5A5A;
    line-height: 1.3;
    text-align: center;
    margin-bottom: clamp(100px, 7.8vw, 200px);
}

.p-flowSection__list {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: clamp(20px, 1.6vw, 30px);
}

.c-flowItem {
    display: flex;
    flex-direction: column;
    text-align: left;
    position: relative;
}

.c-flowItem__header {
    display: flex;
    align-items: center;
    gap: clamp(12px, 0.9vw, 16px);
    margin-bottom: clamp(15px, 1.2vw, 20px);
    position: absolute;
    top: -60px;
    left: -10px;
    /* top: -80px;
    left: -30px; */
}

.c-flowItem__circle {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: clamp(78px, 6.0vw, 140px);
    height: clamp(78px, 6.0vw, 140px);
    background-color: #ffffff;
    border-radius: 50%;
    /* box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); */
    flex-shrink: 0;
    /* border: 1px solid rgba(74, 107, 74, 0.1); */
}

.c-flowItem__step {
    font-size: clamp(10px, 0.78vw, 14px);
    font-weight: 600;
    color: #999999;
    letter-spacing: 0.1em;
    line-height: 1;
    margin-bottom: clamp(2px, 0.16vw, 4px);
}

.c-flowItem__number {
    font-size: clamp(24px, 1.9vw, 32px);
    font-weight: 700;
    color: #36BAC7;
    line-height: 1;
}

.c-flowItem__title {
    font-size: clamp(16px, 1.25vw, 20px);
    font-weight: 700;
    color: #5A5A5A;
    margin: 0;
    line-height: 1.3;
}

.c-flowItem__image {
    width: 100%;
    aspect-ratio: 3 / 4;
    height: auto;
    /* height: clamp(180px, 14vw, 220px); */
    border-radius: clamp(12px, 1vw, 16px);
    overflow: hidden;
    background-color: #f0f0f0;
    margin-bottom: clamp(15px, 1.2vw, 20px);
}

.c-flowItem__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.c-flowItem__description {
    font-size: clamp(16px, 1.25vw, 26px);
    color: #5A5A5A;
    line-height: 1.5;
    text-align: center;
}


/* Media Queries for Flow Section */

@media (max-width: 960px) {
    .p-flowSection {
        padding: clamp(60px, 5vw, 80px) 0;
    }
    .p-flowSection__list {
        grid-template-columns: repeat(2, 1fr);
        gap: clamp(25px, 2vw, 35px) clamp(15px, 1.2vw, 25px);
    }
    .p-flowSection__decoration--topLeft {
        width: clamp(150px, 12vw, 200px);
        height: clamp(150px, 12vw, 200px);
    }
}

@media (max-width: 540px) {
    .p-flowSection {
        padding: clamp(40px, 4vw, 60px) 0;
    }
    .p-flowSection__list {
        grid-template-columns: 1fr;
        gap: 80px;
    }
    .p-flowSection__decoration--topLeft {
        width: clamp(100px, 8vw, 150px);
        height: clamp(100px, 8vw, 150px);
    }
    .c-flowItem__image {
        height: clamp(160px, 12vw, 200px);
    }
    .p-flowSection__inner {
        min-width: auto;
    }
}


/* ===========================================
   Director Section / 院長メッセージ
   =========================================== */

.p-directorSection {
    padding: clamp(80px, 6vw, 120px) 0;
    position: relative;
    background-color: #ffffff;
}

.p-directorSection__decoration--bottomLeft {
    position: absolute;
    bottom: 0;
    left: 0;
    width: clamp(200px, 15.6vw, 350px);
    height: clamp(200px, 15.6vw, 350px);
    background-color: #F2F8EF;
    border-top-right-radius: clamp(200px, 15.6vw, 350px);
    z-index: 1;
}

.p-directorSection__container {
    width: 70%;
    min-width: 800px;
    margin: 0 auto;
    padding: 0 20px;
}

.p-directorSection__inner {
    max-width: none;
    margin: 0 auto;
    position: relative;
    z-index: 2;
}

.p-directorSection__subtitle {
    font-size: clamp(14px, 1.2vw, 18px);
    font-weight: 600;
    color: #36BAC7;
    letter-spacing: 0.2em;
    margin-bottom: 20px;
    text-align: center;
}

.p-directorSection__title {
    font-size: clamp(28px, 2.1vw, 40px);
    font-weight: 700;
    color: #5A5A5A;
    line-height: 1.3;
    text-align: center;
    margin-bottom: clamp(40px, 3vw, 60px);
}

.p-directorSection__content {
    display: flex;
    gap: clamp(40px, 3vw, 60px);
    align-items: flex-start;
}

.p-directorSection__imageWrapper {
    flex: 0 0 auto;
    text-align: center;
}

.p-directorSection__image {
    width: clamp(280px, 22vw, 400px);
    height: clamp(350px, 27.5vw, 500px);
    border-radius: clamp(20px, 1.6vw, 30px);
    overflow: hidden;
    background-color: #f0f0f0;
    margin: 0 auto clamp(20px, 1.6vw, 30px) auto;
}

.p-directorSection__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

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

.p-directorSection__profileTitle {
    font-size: clamp(14px, 1.1vw, 16px);
    color: #5A5A5A;
    margin-bottom: clamp(5px, 0.4vw, 8px) !important;
    line-height: 1.4;
}

.p-directorSection__profileName {
    font-size: clamp(18px, 1.4vw, 24px);
    font-weight: 700;
    color: #5A5A5A;
    line-height: 1.3;
}

.p-directorSection__text {
    flex: 1;
    padding-top: clamp(20px, 1.6vw, 30px);
}

.p-directorSection__mainText {
    font-size: clamp(28px, 2.2vw, 48px);
    font-weight: 700;
    color: #5A5A5A;
    line-height: 1.5;
    margin-bottom: clamp(30px, 2.3vw, 50px);
}

.p-directorSection p {
    font-size: clamp(16px, 1.25vw, 20px);
    color: #5A5A5A;
    line-height: 2;
    margin-bottom: clamp(20px, 1.6vw, 30px);
}

.p-directorSection p:last-child {
    margin-bottom: 0;
}


/* Media Queries for Director Section */

@media (max-width: 960px) {
    .p-directorSection {
        padding: clamp(60px, 5vw, 80px) 0;
    }
    .p-directorSection__container {
        min-width: auto;
    }
    .p-directorSection__content {
        flex-direction: column;
        text-align: center;
        gap: clamp(30px, 2.5vw, 40px);
        align-items: center;
    }
    .p-directorSection__text {
        padding-top: 0;
    }
    .p-directorSection__decoration--bottomLeft {
        width: clamp(150px, 12vw, 200px);
        height: clamp(150px, 12vw, 200px);
    }
}

@media (max-width: 540px) {
    .p-directorSection {
        padding: clamp(40px, 4vw, 60px) 0;
    }
    .p-directorSection__container {
        width: 100%;
        min-width: auto;
        padding: 0 15px;
    }
    .p-directorSection__decoration--bottomLeft {
        width: clamp(100px, 8vw, 150px);
        height: clamp(100px, 8vw, 150px);
    }
    .p-directorSection__image {
        width: clamp(240px, 18vw, 300px);
        height: clamp(300px, 23vw, 380px);
    }
}


/* ===========================================
   Voice Section / お客様の声
   =========================================== */

.p-voiceSection {
    background-color: #65A373;
    border-top-left-radius: clamp(150px, 11.7vw, 300px);
    border-top-right-radius: clamp(150px, 11.7vw, 300px);
    padding: clamp(80px, 6vw, 120px) 0 clamp(60px, 4.7vw, 120px);
    position: relative;
    overflow: hidden;
}


/* 右上の装飾用正円 - 大きい円（はみ出すくらい） */

.p-voiceSection::before {
    content: '';
    position: absolute;
    top: clamp(-150px, -11.7vw, -300px);
    right: clamp(-150px, -11.7vw, -300px);
    width: clamp(400px, 31.25vw, 800px);
    height: clamp(400px, 31.25vw, 800px);
    background-color: #F2F8EF;
    border-radius: 50%;
    opacity: 0.8;
    z-index: 1;
}


/* 右上の装飾用正円 - 小さい円 */

.p-voiceSection::after {
    content: '';
    position: absolute;
    top: clamp(200px, 15.6vw, 350px);
    right: clamp(200px, 15.6vw, 350px);
    width: clamp(80px, 6.2vw, 160px);
    height: clamp(80px, 6.2vw, 160px);
    background-color: #F2F8EF;
    border-radius: 50%;
    opacity: 0.7;
    z-index: 1;
}

.p-voiceSection .l-container {
    position: relative;
    z-index: 2;
}

.p-voiceSection__inner {
    width: 70%;
    min-width: 800px;
    margin: 0 auto;
}

.p-voiceSection__content {
    display: flex;
    align-items: flex-end;
    gap: clamp(40px, 3vw, 60px);
}

.p-voiceSection__textWrapper {
    flex: 1;
}

.p-voiceSection__buttonWrapper {
    flex: 0 0 auto;
    display: flex;
    align-items: flex-end;
}

.p-voiceSection__subtitle {
    font-size: clamp(14px, 1.2vw, 18px);
    font-weight: 600;
    color: #ffffff;
    letter-spacing: 0.2em;
    margin-bottom: 20px;
    text-align: left;
}

.p-voiceSection__title {
    font-size: clamp(28px, 2.1vw, 40px);
    font-weight: 700;
    color: #ffffff;
    line-height: 1.3;
    text-align: left;
    margin-bottom: clamp(30px, 2.3vw, 50px);
}

.p-voiceSection__mainText {
    font-size: clamp(24px, 1.9vw, 36px);
    font-weight: 700;
    color: #ffffff;
    line-height: 1.5;
    margin-bottom: clamp(25px, 2vw, 40px);
    text-align: left;
}

.p-voiceSection__text {
    font-size: clamp(16px, 1.25vw, 20px);
    color: #ffffff;
    line-height: 2;
    margin-bottom: clamp(20px, 1.6vw, 30px);
    text-align: left;
}

.p-voiceSection__text:last-of-type {
    margin-bottom: 0;
}

.p-voiceSection__button {
    text-align: right;
}

.c-btn--white {
    background-color: #ffffff;
    color: #566E48;
    padding: clamp(16px, 1.5vw, 24px) clamp(32px, 3vw, 48px);
    border-radius: clamp(60px, 4.68vw, 100px);
    font-size: clamp(16px, 1.2vw, 20px);
    font-weight: 600;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s ease;
    white-space: nowrap;
}

.c-btn--white:hover {
    background-color: #f0f0f0;
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(255, 255, 255, 0.3);
}


/* Media Queries for Voice Section */

@media (max-width: 960px) {
    .p-voiceSection {
        padding: clamp(60px, 5vw, 80px) 0;
        border-top-left-radius: clamp(100px, 7.8vw, 200px);
        border-top-right-radius: clamp(100px, 7.8vw, 200px);
    }
    .p-voiceSection__inner {
        min-width: auto;
    }
    .p-voiceSection__content {
        flex-direction: column;
        align-items: flex-start;
        gap: clamp(30px, 2.5vw, 40px);
    }
    .p-voiceSection__button {
        text-align: left;
    }
    .p-voiceSection::before {
        top: clamp(-100px, -7.8vw, -200px);
        right: clamp(-100px, -7.8vw, -200px);
        width: clamp(300px, 23.4vw, 600px);
        height: clamp(300px, 23.4vw, 600px);
    }
    .p-voiceSection::after {
        top: clamp(80px, 6.25vw, 140px);
        right: clamp(80px, 6.25vw, 140px);
        width: clamp(120px, 9.4vw, 240px);
        height: clamp(120px, 9.4vw, 240px);
    }
}

@media (max-width: 540px) {
    .p-voiceSection {
        padding: clamp(40px, 4vw, 60px) 0;
        border-top-left-radius: clamp(50px, 3.9vw, 90px);
        border-top-right-radius: clamp(50px, 3.9vw, 90px);
    }
    .p-voiceSection__inner {
        min-width: auto;
    }
    .p-voiceSection__content {
        flex-direction: column;
        gap: clamp(25px, 2vw, 30px);
    }
    .p-voiceSection__button {
        text-align: center;
    }
    .p-voiceSection::before {
        top: clamp(-80px, -6.25vw, -150px);
        right: clamp(-80px, -6.25vw, -150px);
        width: clamp(250px, 19.5vw, 450px);
        height: clamp(250px, 19.5vw, 450px);
    }
    .p-voiceSection::after {
        top: clamp(60px, 4.7vw, 100px);
        right: clamp(60px, 4.7vw, 100px);
        width: clamp(100px, 7.8vw, 180px);
        height: clamp(100px, 7.8vw, 180px);
    }
}


/* ===========================================
   FAQ Section / よくある質問
   =========================================== */

.p-faqSection {
    position: relative;
    background-color: #65A373;
    padding: clamp(60px, 4.7vw, 120px) 0 0;
    overflow: hidden;
    margin-left: clamp(-100px, -7.8vw, -200px);
    margin-right: clamp(-100px, -7.8vw, -200px);
}

.p-faqSection__background {
    background-color: #F2F8EF;
    padding: clamp(60px, 4.7vw, 120px) 0 0;
    position: relative;
    overflow: hidden;
    z-index: 2;
    border-top-left-radius: 1000px clamp(200px, 15.6vw, 400px);
    border-top-right-radius: 1000px clamp(200px, 15.6vw, 400px);
}

.p-faqSection__inner {
    width: 60%;
    margin: 0 auto;
    text-align: center;
    position: relative;
    z-index: 2;
}

.p-faqSection__subtitle {
    font-size: clamp(14px, 1.2vw, 18px);
    font-weight: 600;
    color: #36BAC7;
    letter-spacing: 0.2em;
    margin-bottom: 20px;
    text-align: center;
}

.p-faqSection__title {
    font-size: clamp(28px, 2.1vw, 40px);
    font-weight: 700;
    color: #5A5A5A;
    line-height: 1.3;
    text-align: center;
    margin-bottom: clamp(20px, 1.6vw, 30px);
}

.p-faqSection__lead {
    font-size: clamp(14px, 1.1vw, 16px);
    color: #5A5A5A;
    line-height: 1.6;
    margin-bottom: clamp(40px, 3vw, 60px);
    text-align: center;
}

.p-faqSection__list {
    display: flex;
    flex-direction: column;
    gap: clamp(15px, 1.2vw, 20px);
    margin-bottom: clamp(40px, 3vw, 60px);
}

.c-faqItem {
    background-color: #ffffff;
    border: 2px solid #65A373;
    border-radius: clamp(60px, 4.68vw, 100px);
    box-shadow: 3px 3px 10px rgba(0, 0, 0, 0.1);
    overflow: hidden;
    transition: all 0.3s ease;
}

.c-faqItem__question {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: clamp(20px, 1.6vw, 30px) clamp(30px, 2.3vw, 40px);
    cursor: pointer;
    transition: all 0.3s ease;
}

.c-faqItem__questionText {
    font-size: clamp(16px, 1.25vw, 20px);
    font-weight: 600;
    color: #5A5A5A;
    line-height: 1.4;
    text-align: left;
}

.c-faqItem__questionText::before {
    content: 'Q. ';
    color: #65A373;
    font-weight: 700;
}

.c-faqItem__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: clamp(30px, 2.3vw, 40px);
    height: clamp(30px, 2.3vw, 40px);
    background-color: #65A373;
    color: #ffffff;
    border-radius: 50%;
    font-size: clamp(16px, 1.25vw, 20px);
    font-weight: 700;
    line-height: 1;
    transition: all 0.3s ease;
    flex-shrink: 0;
}

.c-faqItem__answer {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease;
    background-color: #ffffff;
}

.c-faqItem__answer p {
    padding: clamp(0px, 0vw, 0px) clamp(30px, 2.3vw, 40px) clamp(20px, 1.6vw, 30px);
    padding-left: clamp(55px, 4.3vw, 70px);
    font-size: clamp(16px, 1.25vw, 20px);
    color: #5A5A5A;
    line-height: 1.6;
    text-align: left;
    margin: 0;
    position: relative;
}

.c-faqItem__answer p::before {
    content: 'A. ';
    color: #65A373;
    font-weight: 700;
    position: absolute;
    left: clamp(30px, 2.3vw, 40px);
    top: clamp(0px, 0vw, 0px);
}


/* アクティブ状態 */

.c-faqItem.is-active {
    border-radius: clamp(30px, 2.34vw, 50px);
}

.c-faqItem.is-active .c-faqItem__icon {
    transform: rotate(45deg);
}

.c-faqItem.is-active .c-faqItem__answer {
    max-height: 200px;
}

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


/* Media Queries for FAQ Section */

@media (max-width: 960px) {
    .p-faqSection__background {
        padding: clamp(60px, 5vw, 80px) 0;
    }
    .p-faqSection__background::before {
        top: clamp(-60px, -4.7vw, -120px);
        width: clamp(110%, 100vw + 150px, 140%);
        height: clamp(160px, 12.5vw, 320px);
    }
    .p-faqSection__list {
        gap: clamp(12px, 1vw, 15px);
    }
}

@media (max-width: 540px) {
    .p-faqSection {
        padding: clamp(40px, 3vw, 60px) 0 0;
        border-top-left-radius: clamp(40px, 3.1vw, 80px);
        border-top-right-radius: clamp(40px, 3.1vw, 80px);
    }
    .c-faqItem__question {
        padding: clamp(15px, 1.2vw, 20px) clamp(20px, 1.6vw, 25px);
    }
    .c-faqItem__answer p {
        padding: clamp(0px, 0vw, 0px) clamp(20px, 1.6vw, 25px) clamp(15px, 1.2vw, 20px);
        padding-left: clamp(45px, 3.5vw, 55px);
    }
    .c-faqItem__answer p::before {
        left: clamp(20px, 1.6vw, 25px);
    }
}


/* ===========================================
   Access Section / アクセス
   =========================================== */

.p-accessSection {
    background-color: #F2F8EF;
    padding: 0;
    position: relative;
}

.p-accessSection__background {
    background-color: #ffffff;
    padding: clamp(48px, 3.7vw, 96px) 0 clamp(80px, 6vw, 120px);
    position: relative;
    overflow: hidden;
    z-index: 2;
    border-bottom-left-radius: clamp(60px, 4.7vw, 120px);
    border-bottom-right-radius: clamp(60px, 4.7vw, 120px);
}


/* 楕円形の上部境界線を作成（白色の楕円を上に配置） */

.p-accessSection::before {
    content: '';
    position: absolute;
    top: clamp(-32px, -2.5vw, -48px);
    left: 50%;
    transform: translateX(-50%);
    width: clamp(150%, 120vw, 250%);
    height: clamp(400px, 31.25vw, 800px);
    background-color: #ffffff;
    border-radius: 50%;
    z-index: 1;
}

.p-accessSection__inner {
    max-width: 1200px;
    margin: 0 auto;
    text-align: center;
    position: relative;
    z-index: 2;
}

.p-accessSection__subtitle {
    font-size: clamp(14px, 1.2vw, 18px);
    font-weight: 600;
    color: #36BAC7;
    letter-spacing: 0.2em;
    margin-bottom: 20px;
    text-align: center;
}

.p-accessSection__title {
    font-size: clamp(28px, 2.1vw, 40px);
    font-weight: 700;
    color: #5A5A5A;
    line-height: 1.3;
    text-align: center;
    margin-bottom: clamp(40px, 3vw, 60px);
}

.p-accessSection__map {
    width: 100%;
    margin: 0 auto;
}

.c-map {
    width: 100%;
    border-radius: clamp(20px, 1.6vw, 30px);
    overflow: hidden;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.1);
}

.c-map iframe {
    width: 100%;
    height: clamp(400px, 31.25vw, 600px);
    border: 0;
    display: block;
}


/* Media Queries for Access Section */

@media (max-width: 960px) {
    .p-accessSection__background {
        padding: clamp(60px, 5vw, 80px) 0;
    }
    .p-accessSection::before {
        top: clamp(-160px, -12.5vw, -320px);
        width: clamp(140%, 110vw, 200%);
        height: clamp(320px, 25vw, 640px);
    }
    .c-map iframe {
        height: clamp(350px, 27.5vw, 500px);
    }
}

@media (max-width: 540px) {
    .p-accessSection__background {
        padding: clamp(40px, 4vw, 60px) 0;
    }
    .p-accessSection::before {
        top: clamp(-120px, -9.4vw, -240px);
        width: clamp(130%, 110vw, 180%);
        height: clamp(240px, 18.75vw, 480px);
    }
    .c-map iframe {
        height: clamp(300px, 23.4vw, 450px);
    }
}


/* ===========================================
   Banner Section / バナー
   =========================================== */

.p-bannerSection {
    padding: clamp(80px, 6vw, 120px) 0;
    background-color: #F3F8F0;
}

.p-bannerSection__inner {
    /* max-width: 1200px; */
    width: 70%;
    min-width: 800px;
    margin: 0 auto;
}

.p-bannerSection__list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: clamp(20px, 1.6vw, 30px);
}

.c-bannerItem {
    display: block;
    width: 100%;
    border-radius: clamp(20px, 1.6vw, 30px);
    overflow: hidden;
    transition: all 0.3s ease;
}

.c-bannerItem:hover {
    transform: translateY(-4px);
}

.c-bannerItem img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    aspect-ratio: 1.91 / 1;
}


/* Media Queries for Banner Section */

@media (max-width: 960px) {
    .p-bannerSection {
        padding: clamp(60px, 5vw, 80px) 0;
    }
    .p-bannerSection__inner {
        min-width: auto;
    }
    .p-bannerSection__list {
        gap: clamp(15px, 1.2vw, 20px);
    }
}

@media (max-width: 540px) {
    .p-bannerSection {
        padding: clamp(40px, 4vw, 60px) 0;
    }
    .p-bannerSection__inner {
        min-width: auto;
    }
    .p-bannerSection__list {
        grid-template-columns: 1fr;
        gap: clamp(15px, 1.2vw, 20px);
    }
}


/* ===========================================
   Subpage Hero Section / 下層ページメインビジュアル
   =========================================== */

.p-heroSection--subpage {
    position: initial;
    height: clamp(400px, 31.25vw, 600px);
    min-height: 400px;
    background: url('../images/common/yawara-kitagawa_sejutsu.webp') center center/cover no-repeat;
    display: flex;
    align-items: flex-end;
    /* padding-left: clamp(40px, 3.1vw, 100px); */
    padding-bottom: clamp(60px, 4.7vw, 100px);
    overflow: visible;
}

.p-heroSection__p {
    font-size: clamp(32px, 2.5vw, 56px);
    font-weight: 400;
    color: #5F5F5F;
    /* 指定色 */
    line-height: 1.3;
    position: relative;
    /* 擬似要素の基準 */
    z-index: 0;
    /* スタッキングコンテキストを作成 */
    text-shadow: none;
    /* 影を削除 */
    width: 80%;
    margin: 0 auto;
}


/* h1版（固定ページなどで使用） */

.p-heroSection__h1 {
    font-size: clamp(32px, 2.5vw, 56px);
    font-weight: 700;
    color: #5F5F5F;
    line-height: 1.3;
    position: relative;
    z-index: 0;
    text-shadow: none;
    margin: 0 auto;
    width: 80%;
}

.p-heroSection__h1::before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    transform: translate(-40%, -50%);
    width: clamp(100px, 7.8vw, 180px);
    height: clamp(100px, 7.8vw, 180px);
    background-color: #ffffff;
    border-radius: 50%;
    z-index: -1;
    opacity: 0.95;
    pointer-events: none;
}

.p-heroSection__h1::after {
    content: '';
    position: absolute;
    left: 30px;
    top: -30px;
    transform: translate(60%, -60%);
    width: clamp(32px, 2.5vw, 48px);
    height: clamp(32px, 2.5vw, 48px);
    background-color: #ffffff;
    border-radius: 50%;
    z-index: -1;
    opacity: 0.85;
    pointer-events: none;
}


/* pタグの左側の白い正円（大きい） */

.p-heroSection__p::before {
    content: '';
    position: absolute;
    left: 0;
    /* 文字の先頭を基準 */
    top: 50%;
    transform: translate(-40%, -50%);
    /* 先頭文字の真後ろに中心が来るように調整 */
    width: clamp(100px, 7.8vw, 180px);
    height: clamp(100px, 7.8vw, 180px);
    background-color: #ffffff;
    border-radius: 50%;
    z-index: -1;
    /* テキストより背面 */
    opacity: 0.95;
    pointer-events: none;
}


/* 右上の小さめの白い円 */

.p-heroSection__p::after {
    content: '';
    position: absolute;
    left: 30px;
    /* pの先頭を基準 */
    top: -30px;
    transform: translate(60%, -60%);
    /* 右上に小さく、重ならない位置 */
    width: clamp(32px, 2.5vw, 48px);
    height: clamp(32px, 2.5vw, 48px);
    background-color: #ffffff;
    border-radius: 50%;
    z-index: -1;
    /* テキストより背面 */
    opacity: 0.85;
    pointer-events: none;
}

.l-breadcrumbSpace {
    height: clamp(20px, 1.6vw, 40px);
}

.l-breadcrumbWrapper {
    width: 80%;
    margin: 0 auto clamp(20px, 1.6vw, 40px);
}

.l-breadcrumbWrapper nav {
    font-size: clamp(14px, 1.09vw, 24px);
}


/* ===========================================
   Voice Detail Section / お客様の声詳細
   =========================================== */

.p-voiceDetailSection {
    background-color: #F3F8F0;
    padding: 0 clamp(100px, 7.8vw, 200px) 0 clamp(100px, 7.8vw, 200px);
    position: relative;
    margin: 0;
    margin-top: 120px;
    overflow: hidden;
    border-top-left-radius: 1000px clamp(200px, 15.6vw, 400px);
    border-top-right-radius: 1000px clamp(200px, 15.6vw, 400px);
    margin-left: clamp(-100px, -7.8vw, -200px);
    margin-right: clamp(-100px, -7.8vw, -200px);
}

.p-voiceDetailSection__background {
    background-color: #F3F8F0;
    padding: 0 0 clamp(80px, 6vw, 120px);
    position: relative;
    overflow: hidden;
    z-index: 2;
}

.p-voiceDetailSection__container {
    width: 70%;
    min-width: 800px;
    margin: 0 auto;
    margin-top: 80px;
    position: relative;
    z-index: 2;
}

.p-voiceDetailContent {
    background-color: #ffffff;
    border-radius: clamp(36px, 2.8vw, 72px);
    padding: 0 clamp(100px, 7.8vw, 200px) clamp(60px, 4.7vw, 100px);
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.05);
}

.p-voiceDetailContent__pin {
    text-align: center;
    margin-bottom: clamp(20px, 1.6vw, 40px);
}

.p-voiceDetailContent__pin img {
    width: clamp(80px, 6.2vw, 160px);
    height: auto;
}

.p-voiceDetailContent__title {
    font-size: clamp(28px, 2.1vw, 40px);
    font-weight: 700;
    color: #5A5A5A;
    line-height: 1.5;
    margin-bottom: clamp(20px, 1.6vw, 30px);
    text-align: left;
}

.p-voiceDetailContent__dateInfo {
    display: flex;
    align-items: center;
    gap: clamp(20px, 1.6vw, 30px);
    margin-bottom: clamp(20px, 1.6vw, 30px);
    flex-wrap: wrap;
}

.p-voiceDetailContent__dateItem {
    display: flex;
    align-items: center;
    gap: clamp(6px, 0.5vw, 8px);
    font-size: clamp(14px, 1.1vw, 16px);
    color: #5A5A5A;
}

.p-voiceDetailContent__dateItem i {
    color: #35BAC7;
    font-size: clamp(14px, 1.1vw, 16px);
}

.p-voiceDetailContent__dateLabel {
    font-weight: 500;
    margin-right: 4px;
}

.p-voiceDetailContent__dateItem time {
    color: #5A5A5A;
}

.p-voiceDetailContent__meta {
    text-align: center;
    margin-bottom: clamp(30px, 2.3vw, 50px);
}

.p-voiceDetailContent__age {
    font-size: clamp(14px, 1.1vw, 18px);
    color: #5A5A5A;
}

.p-voiceDetailContent__thumb {
    margin-bottom: clamp(30px, 2.3vw, 50px);
    border-radius: clamp(12px, 1vw, 20px);
    overflow: hidden;
}

.p-voiceDetailContent__thumb img {
    width: 100%;
    height: auto;
    display: block;
}

.p-voiceDetailContent__body {
    font-size: clamp(16px, 1.25vw, 20px);
    color: #5A5A5A;
    line-height: 2;
    margin-bottom: clamp(40px, 3vw, 60px);
}

.p-voiceDetailContent__body p {
    margin-bottom: 1.5em;
}

.p-voiceDetailContent__body p:last-child {
    margin-bottom: 0;
}

.p-voiceDetailContent__body ul,
.p-voiceDetailContent__body img,
.p-voiceDetailContent__body h2,
.p-voiceDetailContent__body h3,
.p-voiceDetailContent__body h4 {
    margin-bottom: 1.5em;
}

.p-voiceDetailContent__body h2 {
    position: relative;
    padding: 0.3em 0 0.2em 1em;
    border-bottom: 3px solid #35BAC7;
    color: #333333;
    font-size: clamp(20px, 1.6vw, 24px);
    font-weight: 700;
    margin-bottom: clamp(20px, 1.6vw, 30px);
    margin-top: clamp(30px, 2.3vw, 40px);
}

.p-voiceDetailContent__body h2::before {
    position: absolute;
    top: 0;
    left: 0.3em;
    transform: rotate(55deg);
    height: 11px;
    width: 12px;
    background: #35BAC7;
    content: '';
}

.p-voiceDetailContent__body h2::after {
    position: absolute;
    transform: rotate(15deg);
    top: 0.6em;
    left: 0;
    height: 8px;
    width: 8px;
    background: #35BAC7;
    content: '';
}

.p-voiceDetailContent__body h3 {
    font-size: 20px;
    text-decoration: underline;
    margin-bottom: 1.5em;
}

.p-voiceDetailContent__body h4 {
    font-size: 20px;
}


/* 担当者セクション */

.p-voiceDetailContent__staff {
    margin-bottom: clamp(40px, 3vw, 60px);
    padding: clamp(20px, 1.6vw, 30px);
    background: #F2F8EF;
    border-radius: clamp(12px, 0.9vw, 20px);
}

.p-voiceDetailContent__staffTitle {
    font-size: clamp(16px, 1.25vw, 20px);
    font-weight: 400;
    color: #5A5A5A;
    margin-bottom: clamp(15px, 1.2vw, 20px);
    display: flex;
    align-items: center;
    gap: 8px;
    justify-content: flex-start;
}

.p-voiceDetailContent__staffTitle::before {
    content: '';
    width: 8px;
    height: 8px;
    background: #36BAC7;
    border-radius: 50%;
    display: inline-block;
    flex-shrink: 0;
}

.p-voiceDetailContent__staffInfo {
    display: flex;
    align-items: flex-start;
    gap: clamp(20px, 1.6vw, 30px);
}

.p-voiceDetailContent__staffAvatar {
    flex: 1;
    display: flex;
    justify-content: center;
    align-items: flex-start;
}

.p-voiceDetailContent__staffAvatar img {
    width: clamp(100px, 7.8vw, 150px);
    height: clamp(100px, 7.8vw, 150px);
    border-radius: 50%;
    object-fit: cover;
}

.p-voiceDetailContent__staffText {
    flex: 3;
}

.p-voiceDetailContent__staffName {
    display: flex;
    align-items: center;
    gap: clamp(12px, 1vw, 20px);
    margin-bottom: clamp(15px, 1.2vw, 20px);
    justify-content: flex-start;
}

.p-voiceDetailContent__staffNameText {
    font-size: clamp(18px, 1.4vw, 24px);
    font-weight: 700;
    color: #5A5A5A;
}

.p-voiceDetailContent__staffBadge {
    display: inline-block;
    padding: clamp(4px, 0.3vw, 6px) clamp(8px, 0.6vw, 12px);
    background-color: #36BAC7;
    color: #ffffff;
    font-size: clamp(12px, 0.9vw, 14px);
    font-weight: 600;
    border-radius: clamp(4px, 0.3vw, 6px);
}

.p-voiceDetailContent__staffDescription {
    font-size: clamp(14px, 1.1vw, 16px);
    color: #5A5A5A;
    line-height: 1.8;
}


/* ボタンとナビゲーション（コンテンツエリアの外） */

.p-voiceDetailSection__button {
    text-align: center;
    margin-top: clamp(40px, 3vw, 60px);
    margin-bottom: clamp(30px, 2.3vw, 50px);
}

.c-btn--voiceList {
    background-color: #76B5C3;
    color: #ffffff;
    padding: clamp(16px, 1.5vw, 24px) clamp(32px, 3vw, 48px);
    border-radius: clamp(20px, 1.56vw, 40px);
    font-size: clamp(24px, 1.8vw, 44px);
    font-weight: 600;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s ease;
    white-space: nowrap;
    width: 100%;
}

.c-btn--voiceList:hover {
    background-color: #5a9aa8;
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(118, 181, 195, 0.3);
}

.p-voiceDetailSection__navigation {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: clamp(20px, 1.6vw, 30px);
}

.p-voiceDetailSection__navLink {
    display: flex;
    align-items: center;
    gap: clamp(10px, 0.8vw, 15px);
    text-decoration: none;
    color: #5A5A5A;
    transition: all 0.3s ease;
}

.p-voiceDetailSection__navLink:hover {
    color: #76B5C3;
}

.p-voiceDetailSection__navIcon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: clamp(40px, 3.1vw, 50px);
    height: clamp(40px, 3.1vw, 50px);
    background-color: #76B5C3;
    border-radius: 50%;
    flex-shrink: 0;
    transition: all 0.3s ease;
}

.p-voiceDetailSection__navIcon svg {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
}

.p-voiceDetailSection__navLink:hover .p-voiceDetailSection__navIcon {
    background-color: #5a9aa8;
    transform: scale(1.1);
}

.p-voiceDetailSection__navTitle {
    font-size: clamp(14px, 1.1vw, 16px);
    flex: 1;
    min-width: 0;
}

.p-voiceDetailSection__navLink--prev {
    flex: 1;
}

.p-voiceDetailSection__navLink--next {
    flex: 1;
    justify-content: flex-end;
    flex-direction: row-reverse;
}


/* Media Queries for Voice Detail Section */

@media (max-width: 960px) {
    .p-heroSection--subpage {
        height: clamp(300px, 25vw, 450px);
        padding-left: clamp(30px, 2.3vw, 50px);
        padding-bottom: clamp(40px, 3vw, 60px);
    }
    .p-voiceDetailSection__container {
        min-width: auto;
    }
    .p-firstComparison__container {
        min-width: auto;
    }
    .p-firstPolicy__container {
        min-width: auto;
    }
    .p-voiceDetailSection__background {
        padding: clamp(60px, 5vw, 80px) 0;
    }
    .p-voiceDetailSection::before {
        top: clamp(-160px, -12.5vw, -320px);
        width: clamp(140%, 110vw, 200%);
        height: clamp(320px, 25vw, 640px);
    }
    .p-voiceDetailContent {
        padding: clamp(40px, 3vw, 60px) clamp(30px, 2.3vw, 50px);
    }
    .p-voiceDetailContent__staffInfo {
        flex-direction: column;
        text-align: center;
    }
    .p-voiceDetailContent__staffAvatar {
        justify-content: center;
        align-items: center;
    }
}

@media (max-width: 540px) {
    .p-heroSection--subpage {
        height: clamp(250px, 20vw, 350px);
        padding-left: clamp(20px, 1.6vw, 30px);
        padding-bottom: clamp(40px, 3vw, 60px);
    }
    .p-voiceDetailSection__background {
        padding: clamp(40px, 4vw, 60px) 0;
    }
    .p-voiceDetailSection::before {
        top: clamp(-120px, -9.4vw, -240px);
        width: clamp(130%, 110vw, 180%);
        height: clamp(240px, 18.75vw, 480px);
    }
    .p-voiceDetailSection__container {
        width: 100%;
        min-width: auto;
        padding: 0 clamp(15px, 1.2vw, 20px);
    }
    .p-voiceDetailContent {
        padding: clamp(30px, 2.3vw, 40px) clamp(20px, 1.6vw, 30px);
    }
    .p-voiceDetailContent__navigation {
        flex-direction: column;
    }
}


/* ===========================================
   Footer Access Section / フッターアクセスセクション
   =========================================== */

.p-aboutAccess {
    position: relative;
    background: #ffffff;
    padding: clamp(60px, 4.7vw, 120px) clamp(100px, 7.8vw, 200px) clamp(60px, 4.7vw, 120px) clamp(100px, 7.8vw, 200px);
    overflow: hidden;
    border-top: 2px solid #F2F8EF;
    border-top-left-radius: 1000px clamp(200px, 15.6vw, 400px);
    border-top-right-radius: 1000px clamp(200px, 15.6vw, 400px);
    margin-left: clamp(-100px, -7.8vw, -200px);
    margin-right: clamp(-100px, -7.8vw, -200px);
    margin-bottom: clamp(80px, 6.2vw, 160px);
}

.p-aboutAccess__container {
    width: 70%;
    min-width: 800px;
    margin: 0 auto;
    position: relative;
    z-index: 1;
}

.p-aboutAccess__title {
    font-size: clamp(24px, 2vw, 40px);
    font-weight: 700;
    color: #526456;
    text-align: center;
    margin-bottom: clamp(40px, 3vw, 60px);
}

.p-aboutAccess__content {
    display: flex;
    gap: clamp(30px, 2.3vw, 50px);
    align-items: flex-start;
}

.p-aboutAccess__map {
    flex: 1;
    border-radius: clamp(16px, 1.3vw, 24px);
    overflow: hidden;
    height: clamp(400px, 31.25vw, 600px);
}

.p-aboutAccess__map iframe {
    width: 100%;
    height: 100%;
    display: block;
}

.p-aboutAccess__info {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 0;
}

.p-aboutAccess__infoItem {
    margin-bottom: clamp(15px, 1.2vw, 20px);
}

.p-aboutAccess__infoTitle {
    font-size: clamp(18px, 1.4vw, 24px);
    font-weight: 700;
    color: #526456;
    margin-bottom: clamp(10px, 0.8vw, 15px);
}

.p-aboutAccess__infoText {
    font-size: clamp(14px, 1.1vw, 16px);
    color: #5A5A5A;
    line-height: 1.8;
    margin-bottom: clamp(8px, 0.6vw, 12px);
}

.p-aboutAccess__mapBtn {
    margin-top: auto;
    padding: clamp(12px, 0.9vw, 16px) clamp(24px, 1.9vw, 32px);
    background: #65A373;
    color: #fff;
    border: none;
    border-radius: 50px;
    font-size: clamp(14px, 1.1vw, 16px);
    font-weight: 700;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    transition: background 0.3s ease;
}

.p-aboutAccess__mapBtn:hover {
    background: #4A6B4A;
}

.p-aboutAccess__mapBtn::after {
    content: '→';
    font-size: 1.2em;
}


/* モーダル */

.p-aboutAccess__modal {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 10000;
}

.p-aboutAccess__modal.is-active {
    display: flex;
    align-items: center;
    justify-content: center;
}

.p-aboutAccess__modalOverlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.7);
    cursor: pointer;
}

.p-aboutAccess__modalContent {
    position: relative;
    background: #fff;
    border-radius: clamp(16px, 1.3vw, 24px);
    padding: clamp(20px, 1.6vw, 30px);
    max-width: 90%;
    max-height: 90%;
    z-index: 10001;
    overflow: auto;
}

.p-aboutAccess__modalClose {
    position: absolute;
    top: clamp(15px, 1.2vw, 20px);
    right: clamp(15px, 1.2vw, 20px);
    display: flex;
    align-items: center;
    gap: 8px;
    background: transparent;
    border: none;
    cursor: pointer;
    z-index: 10002;
    padding: 8px;
    transition: opacity 0.3s ease;
}

.p-aboutAccess__modalClose:hover {
    opacity: 0.7;
}

.p-aboutAccess__modalCloseIcon {
    font-size: clamp(24px, 1.9vw, 32px);
    color: #5A5A5A;
    line-height: 1;
    font-weight: 700;
}

.p-aboutAccess__modalCloseText {
    font-size: clamp(12px, 0.9vw, 14px);
    color: #5A5A5A;
    font-weight: 500;
}

.p-aboutAccess__modalMap {
    margin-top: clamp(30px, 2.3vw, 40px);
}

.p-aboutAccess__modalMap img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: clamp(8px, 0.6vw, 12px);
}

@media (max-width: 960px) {
    .p-aboutAccess__container {
        width: 90%;
        min-width: auto;
    }
    .p-aboutAccess__content {
        flex-direction: column;
    }
    .p-aboutAccess__map {
        flex: 1;
        width: 100%;
    }
    .p-aboutAccess__info {
        flex: 1;
        width: 100%;
    }
}

@media (max-width: 540px) {
    .p-aboutAccess {
        padding: clamp(40px, 3vw, 60px) 0 clamp(60px, 4.7vw, 80px);
        border-bottom-left-radius: clamp(40px, 3.1vw, 80px);
        border-bottom-right-radius: clamp(40px, 3.1vw, 80px);
    }
    .p-aboutAccess__container {
        min-width: auto;
    }
    .p-aboutAccess__modalContent {
        padding: clamp(15px, 1.2vw, 20px);
    }
    .p-aboutAccess__modalClose {
        top: clamp(10px, 0.8vw, 15px);
        right: clamp(10px, 0.8vw, 15px);
    }
}


/* ===========================================
   Footer / フッター
   =========================================== */

.p-footer {
    background-color: #C8DECD;
    border-top-left-radius: clamp(60px, 4.7vw, 120px);
    border-top-right-radius: clamp(60px, 4.7vw, 120px);
    padding: clamp(60px, 4.7vw, 100px) 0 clamp(40px, 3.1vw, 60px);
    position: relative;
    overflow: hidden;
    margin-top: clamp(-60px, -4.7vw, -120px);
}

.p-footer .l-container {
    width: 85%;
    margin: 0 auto;
    padding: 0 20px;
}

.p-footer__inner {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: clamp(40px, 3.1vw, 80px);
    margin-bottom: clamp(40px, 3.1vw, 60px);
}


/* 左側セクション */

.p-footer__left {
    flex: 0 0 auto;
}

.p-footer__name {
    font-size: clamp(32px, 2.5vw, 48px);
    font-weight: 700;
    color: #526456;
    margin: 0 0 clamp(20px, 1.6vw, 30px);
    line-height: 1.3;
}

.p-footer__contact {
    margin-bottom: clamp(24px, 1.9vw, 32px);
}

.p-footer__address,
.p-footer__phone {
    font-size: clamp(14px, 1.1vw, 16px);
    color: #526456;
    margin: 0 0 clamp(8px, 0.6vw, 12px);
    line-height: 1.6;
}

.p-footer__address:last-child,
.p-footer__phone:last-child {
    margin-bottom: 0;
}

.p-footer__buttons {
    display: flex;
    flex-direction: column;
    gap: clamp(12px, 0.9vw, 16px);
}

.c-btn--webReserve {
    display: inline-flex;
    align-items: center;
    gap: clamp(8px, 0.6vw, 12px);
    background: #ffffff;
    color: #526456;
    padding: clamp(12px, 0.9vw, 16px) clamp(20px, 1.6vw, 28px);
    border-radius: clamp(30px, 2.3vw, 50px);
    text-decoration: none;
    font-size: clamp(14px, 1.1vw, 16px);
    font-weight: 600;
    transition: all 0.3s ease;
    border: none;
    cursor: pointer;
}

.c-btn--webReserve:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.c-btn--webReserve .c-btn__icon {
    width: clamp(18px, 1.4vw, 20px);
    height: clamp(18px, 1.4vw, 20px);
    flex-shrink: 0;
    color: #526456;
}

.c-btn--lineReserve {
    display: inline-flex;
    align-items: center;
    gap: clamp(8px, 0.6vw, 12px);
    background: #06C755;
    color: #ffffff;
    padding: clamp(12px, 0.9vw, 16px) clamp(20px, 1.6vw, 28px);
    border-radius: clamp(30px, 2.3vw, 50px);
    text-decoration: none;
    font-size: clamp(14px, 1.1vw, 16px);
    font-weight: 600;
    transition: all 0.3s ease;
    border: none;
    cursor: pointer;
}

.c-btn--lineReserve:hover {
    background: #05B048;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(6, 199, 85, 0.3);
}

.c-btn--lineReserve .c-btn__icon {
    width: clamp(18px, 1.4vw, 20px);
    height: clamp(18px, 1.4vw, 20px);
    flex-shrink: 0;
    color: #06C755;
}

.c-btn--lineReserve .c-btn__icon i {
    font-size: clamp(12px, 0.9vw, 14px);
    color: #06C755;
}


/* 右側ナビゲーション */

.p-footer__nav {
    display: flex;
    gap: clamp(40px, 3.1vw, 60px);
    flex: 1;
    justify-content: flex-end;
}

.p-footer__navColumn {
    display: flex;
    flex-direction: column;
    gap: clamp(12px, 0.9vw, 16px);
}

.p-footer__link {
    display: flex;
    align-items: center;
    gap: clamp(8px, 0.6vw, 12px);
    font-size: clamp(14px, 1.1vw, 16px);
    color: #526456;
    text-decoration: none;
    transition: color 0.3s ease;
    line-height: 1.6;
}

.p-footer__link::before {
    content: '';
    display: inline-block;
    width: clamp(6px, 0.5vw, 8px);
    height: clamp(6px, 0.5vw, 8px);
    background-color: #ffffff;
    border-radius: 50%;
    flex-shrink: 0;
}

.p-footer__link:hover {
    color: #06C755;
}

.p-footer__link:hover::before {
    background-color: #06C755;
}


/* コピーライト */

.p-footer__copyright {
    text-align: center;
    font-size: clamp(12px, 0.9vw, 14px);
    color: #526456;
    margin-top: clamp(30px, 2.3vw, 40px);
    padding-top: clamp(20px, 1.6vw, 30px);
    border-top: 1px solid rgba(82, 100, 86, 0.2);
}


/* Media Queries for Footer */

@media (max-width: 960px) {
    .p-footer {
        border-top-left-radius: clamp(40px, 3.1vw, 80px);
        border-top-right-radius: clamp(40px, 3.1vw, 80px);
        padding: clamp(40px, 3.1vw, 60px) 0 clamp(30px, 2.3vw, 40px);
    }
    .p-footer__inner {
        flex-direction: column;
        gap: clamp(30px, 2.3vw, 40px);
    }
    .p-footer__nav {
        width: 100%;
        justify-content: flex-start;
        flex-wrap: wrap;
    }
    .p-footer__navColumn {
        min-width: calc(50% - 20px);
    }
}


/* ===========================================
   Symptom Page Styles / 症状別ページスタイル
   =========================================== */


/* ヒーローセクション */

.p-symptomHero {
    background: linear-gradient(135deg, #E8F5E9 0%, #C8DECD 100%);
    padding: clamp(60px, 4.7vw, 120px) 0;
    text-align: center;
    position: relative;
    overflow: hidden;
}

.p-symptomHero::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-image: repeating-linear-gradient(45deg, transparent, transparent 10px, rgba(255, 255, 255, 0.1) 10px, rgba(255, 255, 255, 0.1) 20px), repeating-linear-gradient(-45deg, transparent, transparent 10px, rgba(255, 255, 255, 0.1) 10px, rgba(255, 255, 255, 0.1) 20px);
    opacity: 0.3;
    pointer-events: none;
}

.p-symptomHero__inner {
    position: relative;
    z-index: 1;
}

.p-symptomHero__title {
    font-size: clamp(32px, 3vw, 56px);
    font-weight: 700;
    color: #4A6B4A;
    margin: 0 0 clamp(10px, 1vw, 20px);
    letter-spacing: 0.05em;
}

.p-symptomHero__subtitle {
    font-size: clamp(16px, 1.4vw, 24px);
    color: #526456;
    margin: 0;
    font-weight: 400;
}


/* こんなお悩みありませんか？セクション */

.p-symptomConcern {
    background: #fff;
    padding: clamp(60px, 4.7vw, 120px) 0;
}

.p-symptomConcern__title {
    font-size: clamp(36px, 2.8vw, 72px);
    font-weight: 700;
    color: #4A6B4A;
    text-align: center;
    margin-bottom: clamp(40px, 3.5vw, 60px);
}

.p-symptomConcern__accent {
    color: #36BAC7;
}

.p-symptomConcern__content {
    display: flex;
    align-items: center;
    gap: clamp(40px, 3.5vw, 60px);
    max-width: 1000px;
    margin: 0 auto;
}

.p-symptomConcern__illustration {
    flex-shrink: 0;
}

.p-symptomConcern__circle {
    width: clamp(150px, 12vw, 200px);
    height: clamp(150px, 12vw, 200px);
    border: 3px solid #4A6B4A;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #FFFFFF;
}

.symptom-step {
    margin-top: clamp(36px, 2.8vw, 72px)!important;
}

.p-symptomConcern__list {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: clamp(16px, 1.4vw, 24px);
}

.p-symptomConcern__item {
    display: flex;
    align-items: flex-start;
    gap: clamp(12px, 1vw, 16px);
}

.p-symptomConcern__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: clamp(32px, 2.5vw, 40px);
    height: clamp(32px, 2.5vw, 40px);
    border-radius: 50%;
    background: #4A6B4A;
    color: #FFFFFF;
    font-size: clamp(16px, 1.25vw, 20px);
    font-weight: 700;
    flex-shrink: 0;
}

.p-symptomConcern__text {
    font-size: clamp(16px, 1.4vw, 20px);
    color: #4A6B4A;
    line-height: 1.8;
}


/* お悩みの方へセクション */

.p-symptomForYou {
    background: #FFFFFF;
    padding: clamp(60px, 4.7vw, 120px) 0;
    position: relative;
}

.p-symptomForYou::before,
.p-symptomForYou::after {
    content: '';
    position: absolute;
    top: 0;
    width: 200px;
    height: 100%;
    background-image: repeating-linear-gradient(45deg, transparent, transparent 10px, rgba(74, 107, 74, 0.05) 10px, rgba(74, 107, 74, 0.05) 20px), repeating-linear-gradient(-45deg, transparent, transparent 10px, rgba(74, 107, 74, 0.05) 10px, rgba(74, 107, 74, 0.05) 20px);
    pointer-events: none;
}

.p-symptomForYou::before {
    left: 0;
}

.p-symptomForYou::after {
    right: 0;
}

.p-symptomForYou__title {
    font-size: clamp(24px, 2vw, 36px);
    font-weight: 700;
    color: #4A6B4A;
    text-align: center;
    margin-bottom: clamp(40px, 3.5vw, 60px);
}

.p-symptomForYou__content {
    max-width: 900px;
    margin: 0 auto;
    position: relative;
}

.p-symptomForYou__clipboard {
    width: clamp(200px, 16vw, 300px);
    margin: 0 auto clamp(40px, 3.5vw, 60px);
    display: flex;
    align-items: center;
    justify-content: center;
}

.p-symptomForYou__list {
    display: flex;
    flex-direction: column;
    gap: clamp(20px, 1.8vw, 32px);
    margin-bottom: clamp(30px, 2.5vw, 40px);
}

.p-symptomForYou__item {
    display: flex;
    align-items: center;
    gap: clamp(16px, 1.4vw, 24px);
}

.p-symptomForYou__check {
    width: clamp(32px, 2.5vw, 40px);
    height: clamp(32px, 2.5vw, 40px);
    border-radius: 50%;
    background: #4A6B4A;
    color: #FFFFFF;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: clamp(18px, 1.5vw, 24px);
    font-weight: 700;
    flex-shrink: 0;
}

.p-symptomForYou__text {
    font-size: clamp(16px, 1.4vw, 20px);
    color: #4A6B4A;
    line-height: 1.8;
}

.p-symptomForYou__description {
    font-size: clamp(16px, 1.4vw, 20px);
    color: #4A6B4A;
    line-height: 2;
    margin-top: clamp(30px, 2.5vw, 40px);
}


/* 原因セクション（コンテンツエディタ） */

.p-symptomCauses {
    background: #65A373;
    padding: clamp(60px, 4.7vw, 120px) clamp(100px, 7.8vw, 200px);
    overflow: hidden;
    border-top-left-radius: 1000px clamp(200px, 15.6vw, 400px);
    border-top-right-radius: 1000px clamp(200px, 15.6vw, 400px);
    margin-left: clamp(-100px, -7.8vw, -200px);
    margin-right: clamp(-100px, -7.8vw, -200px);
}

.p-symptomCauses__container {
    width: 60%;
    margin: 0 auto;
    position: relative;
    z-index: 1;
}

.p-symptomCauses__title {
    font-size: clamp(24px, 2vw, 36px);
    font-weight: 700;
    color: #FFFFFF;
    margin-bottom: clamp(30px, 2.5vw, 40px);
    text-align: center;
}

.p-symptomCauses__content {
    max-width: 900px;
    margin: 0 auto;
    color: #FFFFFF;
}

.p-symptomCauses__content h2 {
    font-size: clamp(24px, 2vw, 36px);
    font-weight: 700;
    color: #FFFFFF;
    margin-bottom: clamp(30px, 2.5vw, 40px);
}


/* Q&A吹き出しスタイル */

.p-symptomCauses__content .faq-bubble {
    margin-bottom: clamp(30px, 2.5vw, 40px);
}

.p-symptomCauses__content .faq-question {
    display: flex;
    align-items: flex-start;
    gap: clamp(12px, 1vw, 16px);
    margin-bottom: clamp(16px, 1.4vw, 24px);
}

.p-symptomCauses__content .faq-q-icon {
    width: clamp(32px, 2.5vw, 40px);
    height: clamp(32px, 2.5vw, 40px);
    flex-shrink: 0;
    background: #4A6B4A;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #FFFFFF;
    font-size: clamp(14px, 1.2vw, 18px);
}

.p-symptomCauses__content .faq-q-bubble {
    background: #4A6B4A;
    color: #FFFFFF;
    padding: clamp(16px, 1.4vw, 24px) clamp(20px, 1.8vw, 32px);
    border-radius: clamp(20px, 1.6vw, 30px);
    position: relative;
    max-width: 80%;
}

.p-symptomCauses__content .faq-q-bubble::before {
    content: '';
    position: absolute;
    left: -10px;
    top: 20px;
    width: 0;
    height: 0;
    border-top: 10px solid transparent;
    border-bottom: 10px solid transparent;
    border-right: 10px solid #4A6B4A;
}

.p-symptomCauses__content .faq-answer {
    display: flex;
    align-items: flex-start;
    gap: clamp(12px, 1vw, 16px);
    justify-content: flex-end;
    margin-bottom: clamp(30px, 2.5vw, 40px);
}

.p-symptomCauses__content .faq-a-bubble {
    background: #FFEB3B;
    color: #4A6B4A;
    padding: clamp(16px, 1.4vw, 24px) clamp(20px, 1.8vw, 32px);
    border-radius: clamp(20px, 1.6vw, 30px);
    position: relative;
    max-width: 80%;
}

.p-symptomCauses__content .faq-a-bubble::after {
    content: '';
    position: absolute;
    right: -10px;
    top: 20px;
    width: 0;
    height: 0;
    border-top: 10px solid transparent;
    border-bottom: 10px solid transparent;
    border-left: 10px solid #FFEB3B;
}

.p-symptomCauses__content .faq-a-icon {
    width: clamp(32px, 2.5vw, 40px);
    height: clamp(32px, 2.5vw, 40px);
    flex-shrink: 0;
    background: #4A6B4A;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #FFFFFF;
    font-size: clamp(14px, 1.2vw, 18px);
}


/* 施術メニューセクション */

.p-symptomTreatment {
    background: #E8F5E9;
    padding: clamp(60px, 4.7vw, 120px) 0;
}

.p-symptomTreatment__title {
    font-size: clamp(24px, 2vw, 36px);
    font-weight: 700;
    color: #4A6B4A;
    text-align: center;
    margin-bottom: clamp(40px, 3.5vw, 60px);
}


/* 関連ブログセクション */

.p-symptomBlog {
    background: #E8F5E9;
    padding: clamp(60px, 4.7vw, 120px) 0;
}

.p-symptomBlog__title {
    font-size: clamp(24px, 2vw, 36px);
    font-weight: 700;
    color: #4A6B4A;
    text-align: center;
    margin-bottom: clamp(40px, 3.5vw, 60px);
}

.p-symptomBlog__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: clamp(24px, 2vw, 32px);
    max-width: 1200px;
    margin: 0 auto;
}

.p-symptomBlog__item {
    background: #FFFFFF;
    border-radius: clamp(16px, 1.3vw, 24px);
    overflow: hidden;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.p-symptomBlog__item:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.1);
}

.p-symptomBlog__thumb {
    width: 100%;
    aspect-ratio: 1;
    overflow: hidden;
}

.p-symptomBlog__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.p-symptomBlog__body {
    padding: clamp(16px, 1.4vw, 24px);
}

.p-symptomBlog__category {
    display: inline-block;
    background: #60B7C5;
    color: #FFFFFF;
    padding: 4px 12px;
    border-radius: 12px;
    font-size: clamp(12px, 1vw, 14px);
    margin-bottom: clamp(8px, 0.7vw, 12px);
}

.p-symptomBlog__title {
    font-size: clamp(16px, 1.4vw, 20px);
    font-weight: 700;
    color: #4A6B4A;
    margin: 0;
    line-height: 1.6;
}

.p-symptomBlog__title a {
    color: inherit;
    text-decoration: none;
}

.p-symptomBlog__title a:hover {
    text-decoration: underline;
}


/* FAQセクション */

.p-symptomFAQ {
    background: #FFFFFF;
    padding: clamp(60px, 4.7vw, 120px) 0;
}

.p-symptomFAQ__title {
    font-size: clamp(24px, 2vw, 36px);
    font-weight: 700;
    color: #4A6B4A;
    text-align: center;
    margin-bottom: clamp(40px, 3.5vw, 60px);
}

.p-symptomFAQ__list {
    max-width: 900px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: clamp(30px, 2.5vw, 40px);
}

.p-symptomFAQ__item {
    display: flex;
    flex-direction: column;
    gap: clamp(16px, 1.4vw, 24px);
}

.p-symptomFAQ__question {
    display: flex;
    align-items: flex-start;
    gap: clamp(12px, 1vw, 16px);
}

.p-symptomFAQ__qIcon {
    width: clamp(32px, 2.5vw, 40px);
    height: clamp(32px, 2.5vw, 40px);
    flex-shrink: 0;
    background: #4A6B4A;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: clamp(14px, 1.2vw, 18px);
}

.p-symptomFAQ__qBubble {
    background: #4A6B4A;
    color: #FFFFFF;
    padding: clamp(16px, 1.4vw, 24px) clamp(20px, 1.8vw, 32px);
    border-radius: clamp(20px, 1.6vw, 30px);
    position: relative;
    max-width: 80%;
    font-size: clamp(16px, 1.4vw, 20px);
    line-height: 1.8;
}

.p-symptomFAQ__qBubble::before {
    content: '';
    position: absolute;
    left: -10px;
    top: 20px;
    width: 0;
    height: 0;
    border-top: 10px solid transparent;
    border-bottom: 10px solid transparent;
    border-right: 10px solid #4A6B4A;
}

.p-symptomFAQ__answer {
    display: flex;
    align-items: flex-start;
    gap: clamp(12px, 1vw, 16px);
    justify-content: flex-end;
}

.p-symptomFAQ__aBubble {
    background: #FFEB3B;
    color: #4A6B4A;
    padding: clamp(16px, 1.4vw, 24px) clamp(20px, 1.8vw, 32px);
    border-radius: clamp(20px, 1.6vw, 30px);
    position: relative;
    max-width: 80%;
    font-size: clamp(16px, 1.4vw, 20px);
    line-height: 1.8;
}

.p-symptomFAQ__aBubble::after {
    content: '';
    position: absolute;
    right: -10px;
    top: 20px;
    width: 0;
    height: 0;
    border-top: 10px solid transparent;
    border-bottom: 10px solid transparent;
    border-left: 10px solid #FFEB3B;
}

.p-symptomFAQ__aIcon {
    width: clamp(32px, 2.5vw, 40px);
    height: clamp(32px, 2.5vw, 40px);
    flex-shrink: 0;
    background: #4A6B4A;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: clamp(14px, 1.2vw, 18px);
}


/* レスポンシブ */

@media (max-width: 960px) {
    .p-symptomConcern__content {
        flex-direction: column;
        text-align: center;
    }
    .p-symptomBlog__grid {
        grid-template-columns: repeat(2, 1fr);
    }
    .p-symptomFAQ__qBubble,
    .p-symptomFAQ__aBubble {
        max-width: 85%;
    }
}

@media (max-width: 640px) {
    .p-symptomBlog__grid {
        grid-template-columns: 1fr;
    }
    .p-symptomFAQ__qBubble,
    .p-symptomFAQ__aBubble {
        max-width: 90%;
    }
}

@media (max-width: 540px) {
    .p-footer {
        border-top-left-radius: clamp(30px, 2.3vw, 50px);
        border-top-right-radius: clamp(30px, 2.3vw, 50px);
        padding: clamp(30px, 2.3vw, 40px) 0 clamp(20px, 1.6vw, 30px);
    }
    .p-footer .l-container {
        width: 95%;
        padding: 0 15px;
    }
    .p-footer__inner {
        gap: clamp(24px, 1.9vw, 32px);
    }
    .p-footer__nav {
        flex-direction: column;
        gap: clamp(20px, 1.6vw, 24px);
    }
    .p-footer__navColumn {
        min-width: 100%;
    }
}

@media (max-width: 460px) {
    .p-footer__nav {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: clamp(20px, 4vw, 24px);
    }
    .p-footer__navColumn:nth-child(1) {
        grid-column: 1;
    }
    .p-footer__navColumn:nth-child(2) {
        grid-column: 2;
    }
    .p-footer__navColumn:nth-child(3) {
        grid-column: 1 / -1;
    }
    .p-footer__buttons {
        width: 100%;
    }
    .c-btn--webReserve,
    .c-btn--lineReserve {
        width: 100%;
        justify-content: center;
    }
}


/* ===========================================
   Menu Single Page / メニュー詳細ページ
   =========================================== */

.wrap {
    max-width: 1080px;
    margin: 0 auto;
    padding: 0 20px;
}

.service-content {
    margin-block: 36px 20px;
}


/* ===========================================
   First Visit Page Flow Section / ご利用の流れ
   =========================================== */

.p-firstFlow {
    position: relative;
    background: #ffffff;
    padding: clamp(60px, 4.7vw, 120px) 0;
    overflow: visible;
}

.p-firstFlow__container {
    width: 60%;
    min-width: 800px;
    margin: 0 auto;
    position: relative;
    z-index: 1;
}

.p-firstFlow__title {
    font-size: clamp(24px, 2vw, 40px);
    font-weight: 700;
    color: #5A5A5A;
    text-align: center;
    margin-bottom: clamp(60px, 4.7vw, 100px);
}

.p-firstFlow__steps {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.p-firstFlow__step {
    position: relative;
    margin-bottom: clamp(20px, 1.56vw, 40px);
}

.p-firstFlow__step:last-child {
    margin-bottom: 0;
}


/* ピン画像（カード上部中央） */

.p-firstFlow__stepPin {
    position: absolute;
    top: -20px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 3;
}

.p-firstFlow__stepPin img {
    width: clamp(80px, 6.2vw, 160px);
    height: auto;
    display: block;
}


/* ステップカード */

.p-firstFlow__stepCard {
    display: grid;
    grid-template-columns: 1fr;
    gap: clamp(24px, 2vw, 32px);
    align-items: center;
    background: #F2F8EF;
    border-radius: clamp(24px, 1.9vw, 36px);
    padding: clamp(28px, 2.1vw, 40px);
    position: relative;
}


/* ステップ番号円（画像の左上に重ねる） */

.p-firstFlow__stepNumber {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: clamp(80px, 6.2vw, 120px);
    height: clamp(80px, 6.2vw, 120px);
    border-radius: 50%;
    background: #36BAC7;
    padding: clamp(8px, 0.6vw, 12px);
    box-sizing: border-box;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 2;
    transform: translate(-30%, -30%);
    pointer-events: none;
}

.p-firstFlow__stepLabel {
    font-size: clamp(12px, 0.94vw, 20px);
    font-weight: 700;
    color: #ffffff;
    line-height: 1.2;
    margin-bottom: clamp(4px, 0.3vw, 8px);
}

.p-firstFlow__stepNum {
    font-size: clamp(20px, 1.56vw, 32px);
    font-weight: 700;
    color: #ffffff;
    line-height: 1;
}


/* ステップコンテンツ（右側） */

.p-firstFlow__stepContent {
    display: flex;
    gap: clamp(20px, 1.5vw, 28px);
    align-items: center;
    position: relative;
}

.p-firstFlow__stepImage {
    flex: 1;
    aspect-ratio: 5 / 3;
    width: 100%;
    height: auto;
    border-radius: clamp(12px, 0.94vw, 20px);
    overflow: initial;
    position: relative;
    z-index: 1;
}

.p-firstFlow__stepImage img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    border-radius: clamp(12px, 0.94vw, 20px);
}

.p-firstFlow__stepText {
    flex: 2;
    display: flex;
    flex-direction: column;
    gap: clamp(12px, 0.94vw, 16px);
}

.p-firstFlow__stepTitle {
    font-size: clamp(20px, 1.56vw, 32px);
    font-weight: 700;
    color: #5A5A5A;
    margin: 0;
}

.p-firstFlow__stepDesc {
    font-size: clamp(14px, 1.1vw, 16px);
    color: #5A5A5A;
    line-height: 1.8;
    margin: 0;
}


/* 接続要素（カード下部） */

.p-firstFlow__stepConnector {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-top: clamp(8px, 0.6vw, 16px);
}


/* 縦棒 */

.p-firstFlow__stepLine {
    width: 5px;
    height: clamp(15px, 1.17vw, 28px);
    background: #36BAC7;
    border-radius: 3px;
}


/* 円（縦棒の下、3px間隔） */

.p-firstFlow__stepDot {
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: #566E48;
    margin-top: 3px;
}


/* 最後のステップには接続要素を表示しない */

.p-firstFlow__step:last-child .p-firstFlow__stepConnector {
    display: none;
}


/* レスポンシブ */

@media (max-width: 960px) {
    .p-firstFlow__container {
        width: 90%;
        min-width: auto;
    }
    .p-firstFlow__stepCard {
        grid-template-columns: 1fr;
        gap: clamp(20px, 1.5vw, 28px);
    }
    .p-firstFlow__stepContent {
        flex-direction: column;
        gap: clamp(16px, 1.2vw, 24px);
    }
    .p-firstFlow__stepImage {
        width: 100%;
        max-width: 300px;
        margin: 0 auto;
        flex: none;
        aspect-ratio: 5 / 3;
    }
    .p-firstFlow__stepText {
        flex: none;
    }
}

@media (max-width: 540px) {
    .p-firstFlow__container {
        min-width: auto;
    }
    .p-firstFlow__stepCard {
        padding: clamp(20px, 1.5vw, 28px);
    }
    .p-firstFlow__stepNumber {
        width: clamp(60px, 4.7vw, 80px);
        height: clamp(60px, 4.7vw, 80px);
    }
}


/* ===========================================
   こんな悩みはありませんか？セクション
   =========================================== */

.p-firstConcern {
    background: #F2F8EF;
    position: relative;
    padding: clamp(60px, 4.7vw, 100px) 0;
    margin-top: clamp(60px, 4.7vw, 100px);
    overflow: visible;
}

.p-firstConcern::before {
    content: '';
    position: absolute;
    top: -50px;
    left: 50%;
    transform: translateX(-50%);
    width: clamp(190%, 150vw, 300%);
    height: clamp(560px, 43vw, 1100px);
    background-color: #F2F8EF;
    border-radius: 50%;
    z-index: 0;
    pointer-events: none;
}

.p-firstConcern__container {
    width: 90%;
    max-width: 1200px;
    margin: 0 auto;
    position: relative;
    z-index: 1;
    padding: 0 clamp(20px, 2vw, 40px);
}

.p-firstConcern__title {
    text-align: center;
    font-size: clamp(28px, 2.2vw, 48px);
    font-weight: 700;
    color: #5A5A5A;
    margin: 0 0 clamp(24px, 1.9vw, 40px) 0;
}

.p-firstConcern__intro {
    text-align: center;
    font-size: clamp(14px, 1.1vw, 18px);
    color: #5A5A5A;
    line-height: 1.8;
    margin: 0 0 clamp(40px, 3.1vw, 60px) 0;
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
}

.p-firstConcern__cards {
    display: flex;
    justify-content: center;
    gap: clamp(20px, 1.6vw, 40px);
    flex-wrap: wrap;
    align-items: flex-start;
}

.p-firstConcern__card {
    flex: 0 1 clamp(280px, 22vw, 380px);
    max-width: 380px;
    background: transparent;
    display: flex;
    flex-direction: column;
    align-items: center;
    box-sizing: border-box;
}

.p-firstConcern__pointHeader {
    font-size: clamp(14px, 1.1vw, 18px);
    color: #999999;
    font-weight: 400;
    margin-bottom: clamp(16px, 1.2vw, 24px);
    text-align: center;
}

.p-firstConcern__textBox {
    width: 100%;
    background: #ffffff;
    padding: clamp(20px, 1.6vw, 30px);
    border-radius: 8px;
    box-sizing: border-box;
    position: relative;
}

.p-firstConcern__illustration {
    position: relative;
    top: 0;
    left: 0;
    transform: none;
    width: 40%;
    max-width: 140px;
    margin: 0 auto clamp(16px, 1.2vw, 24px) auto;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1;
}

.p-firstConcern__illustration img {
    width: 100%;
    max-width: 100%;
    height: auto;
    object-fit: contain;
    display: block;
}

.p-firstConcern__mainText {
    font-size: clamp(16px, 1.25vw, 22px);
    font-weight: 700;
    color: #5A5A5A;
    margin: 0 0 clamp(8px, 0.6vw, 12px) 0;
    text-align: center;
}

.p-firstConcern__subText {
    font-size: clamp(12px, 0.94vw, 16px);
    color: #5A5A5A;
    margin: 0;
    text-align: center;
    line-height: 1.6;
}


/* レスポンシブ */

@media (max-width: 960px) {
    .p-firstConcern__cards {
        gap: clamp(24px, 1.8vw, 32px);
    }
    .p-firstConcern__card {
        flex: 0 1 100%;
        max-width: 100%;
    }
}

@media (max-width: 960px) {
    .p-firstConcern__container {
        width: 90%;
        min-width: auto;
    }
}

@media (max-width: 540px) {
    .p-firstConcern {
        padding: clamp(40px, 3.1vw, 60px) 0;
    }
    .p-firstConcern__container {
        padding: 0 clamp(16px, 1.2vw, 24px);
    }
    .p-firstConcern__intro {
        padding: 0;
        margin-bottom: clamp(40px, 3.1vw, 60px);
    }
    .p-firstConcern__cards {
        flex-direction: column;
        align-items: center;
    }
    .p-firstConcern__card {
        width: 100%;
        max-width: 100%;
    }
}

@media (max-width: 450px) {
    .p-firstConcern__title {
        text-align: center;
        font-size: clamp(22px, 1.71vw, 42px);
        font-weight: 700;
        color: #5A5A5A;
        margin: 0 0 clamp(24px, 1.9vw, 40px) 0;
    }
    .p-firstComparison__subtitle {
        font-size: clamp(16px, 1.25vw, 32px) !important;
        font-weight: 700;
        color: #73A177;
        background: #ffffff;
        border-radius: clamp(50px, 3.9vw, 90px);
        padding: clamp(12px, 0.94vw, 20px) clamp(24px, 1.9vw, 40px);
        display: inline-block;
        margin: 0 0 clamp(24px, 1.9vw, 40px) 0;
    }
}


/* ===========================================
   比較表セクション
   =========================================== */

.p-firstComparison {
    background: #65A373;
    position: relative;
    padding: clamp(60px, 4.7vw, 100px) 0 clamp(80px, 6.2vw, 120px) 0;
    overflow: visible;
}

.p-firstComparison::before {
    content: '';
    position: absolute;
    top: -0px;
    left: 50%;
    transform: translateX(-50%);
    width: clamp(190%, 150vw, 300%);
    height: clamp(560px, 43vw, 1100px);
    background-color: #65A373;
    border-radius: 50%;
    z-index: 0;
    pointer-events: none;
}

.p-firstComparison__header {
    width: 90%;
    max-width: 1200px;
    margin: 0 auto clamp(40px, 3.1vw, 60px) auto;
    text-align: center;
    position: relative;
    z-index: 1;
    padding: 0 clamp(20px, 2vw, 40px);
}

.p-firstComparison__deco {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-bottom: clamp(16px, 1.2vw, 24px);
}

.p-firstComparison__decoLine {
    width: 5px;
    height: clamp(15px, 1.17vw, 28px);
    background: #ffffff;
    border-radius: 3px;
}

.p-firstComparison__decoDot {
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: #ffffff;
    margin-top: 3px;
}

.p-firstComparison__title {
    font-size: clamp(28px, 2.2vw, 48px);
    font-weight: 700;
    color: #fff;
    margin: 0 0 clamp(16px, 1.2vw, 24px) 0;
}

.p-firstComparison__subtitle {
    font-size: clamp(24px, 1.9vw, 40px);
    font-weight: 700;
    color: #73A177;
    background: #ffffff;
    border-radius: clamp(50px, 3.9vw, 90px);
    padding: clamp(12px, 0.94vw, 20px) clamp(24px, 1.9vw, 40px);
    display: inline-block;
    margin: 0 0 clamp(24px, 1.9vw, 40px) 0;
}

.p-firstComparison__intro {
    font-size: clamp(14px, 1.1vw, 18px);
    color: #fff;
    line-height: 1.8;
    margin: 0;
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
}

.p-firstComparison__container {
    width: 70%;
    min-width: 800px;
    max-width: 1200px;
    margin: 0 auto;
    position: relative;
    z-index: 1;
    padding: 0 clamp(20px, 2vw, 40px);
}

.p-firstComparison__tableWrapper {
    background: #ffffff;
    border-radius: clamp(24px, 1.9vw, 36px);
    padding: clamp(24px, 1.9vw, 36px);
    overflow-x: auto;
}

.p-firstComparison__table {
    width: 100%;
    border-collapse: collapse;
    font-size: clamp(14px, 1.1vw, 18px);
    border-top: none !important;
    border-right: none !important;
}

.p-firstComparison__table th,
.p-firstComparison__table td {
    padding: clamp(20px, 1.6vw, 28px) clamp(16px, 1.2vw, 24px);
    text-align: center;
    border: none;
    border-top: 1px dashed #73A177;
    border-left: 1px dashed #73A177;
    border-right: 1px dashed #73A177;
    border-bottom: 1px dashed #73A177;
    vertical-align: middle;
    background: #ffffff;
}

.p-firstComparison__table th:first-child,
.p-firstComparison__table td:first-child {
    border-left: none;
}

.p-firstComparison__table th:last-child,
.p-firstComparison__table td:last-child {
    border-right: none;
}

.p-firstComparison__table thead tr:first-child th {
    border-top: none;
}

.p-firstComparison__table tbody tr:last-child td {
    border-bottom: none;
}

.p-firstComparison__rowHeader {
    background: #ffffff;
    font-weight: 700;
    color: #5A5A5A;
    text-align: left !important;
    width: 15%;
    font-size: clamp(16px, 1.25vw, 20px);
}

.p-firstComparison__colHeader {
    background: #ffffff;
    font-weight: 700;
    color: #5A5A5A;
    font-size: clamp(16px, 1.25vw, 22px);
}

.p-firstComparison__table tbody td {
    color: #5A5A5A;
    font-size: clamp(14px, 1.1vw, 18px);
}

.p-firstComparison__cellContent {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: clamp(8px, 0.6vw, 12px);
}

.p-firstComparison__mark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: clamp(36px, 2.8vw, 44px);
    height: clamp(36px, 2.8vw, 44px);
    border-radius: 50%;
    line-height: 1;
    font-weight: 700;
    font-size: clamp(20px, 1.56vw, 26px);
    flex-shrink: 0;
}

.p-firstComparison__mark--circle {
    background: transparent;
    color: #60B7C5;
}

.p-firstComparison__mark--triangle {
    background: transparent;
    color: #73A177;
    border-radius: 50%;
}

.p-firstComparison__mark--x {
    background: transparent;
    color: #9D9D9D;
}

.p-firstComparison__note {
    font-size: clamp(12px, 0.94vw, 14px);
    color: #5A5A5A;
    line-height: 1.5;
    text-align: center;
}

.p-firstComparison__table tbody tr:last-child td {
    display: table-cell;
    text-align: left;
    padding-left: clamp(20px, 1.6vw, 28px);
    font-size: clamp(14px, 1.1vw, 18px);
}


/* レスポンシブ */

@media (max-width: 960px) {
    .p-firstComparison__header,
    .p-firstComparison__container {
        width: 90%;
        min-width: auto;
    }
    .p-firstComparison__tableWrapper {
        padding: clamp(16px, 1.2vw, 24px);
    }
    .p-firstComparison__table th,
    .p-firstComparison__table td {
        padding: clamp(12px, 0.94vw, 16px);
        font-size: clamp(12px, 0.94vw, 16px);
    }
}

@media (max-width: 540px) {
    .p-firstComparison {
        padding: clamp(40px, 3.1vw, 60px) 0 clamp(60px, 4.7vw, 80px) 0;
    }
    .p-firstComparison__header,
    .p-firstComparison__container {
        padding: 0;
    }
    .p-firstComparison__tableWrapper {
        padding: clamp(12px, 0.94vw, 16px);
    }
    .p-firstComparison__table th,
    .p-firstComparison__table td {
        padding: clamp(8px, 0.6vw, 12px);
        font-size: clamp(11px, 0.86vw, 14px);
    }
    .p-firstComparison__mark {
        width: clamp(24px, 1.9vw, 32px);
        height: clamp(24px, 1.9vw, 32px);
        line-height: clamp(24px, 1.9vw, 32px);
        font-size: clamp(14px, 1.1vw, 18px);
        margin-right: clamp(4px, 0.3vw, 8px);
    }
}

@media (max-width: 450px) {
    .p-firstComparison__header,
    .p-firstComparison__container {
        min-width: auto;
    }
}


/* ===========================================
   ポリシーセクション
   =========================================== */

.p-firstPolicy {
    position: relative;
    background-color: #F2F8EF;
    padding: 0 clamp(100px, 7.8vw, 200px) clamp(80px, 6vw, 120px) clamp(100px, 7.8vw, 200px);
    overflow: hidden;
    /* border-top-left-radius: 1000px clamp(200px, 15.6vw, 400px); */
    /* border-top-right-radius: 1000px clamp(200px, 15.6vw, 400px); */
    margin-left: clamp(-100px, -7.8vw, -200px);
    margin-right: clamp(-100px, -7.8vw, -200px);
}


/* 背景の #65A373 色の要素（画面幅いっぱい） */

.p-firstPolicy::before {
    content: '';
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 100vw;
    height: 100%;
    background: #65A373;
    z-index: 0;
}

.p-firstPolicy__container {
    width: 70%;
    min-width: 800px;
    max-width: 1200px;
    margin: 0 auto;
    margin-top: clamp(60px, 4.7vw, 100px);
    background: #ffffff;
    border-radius: clamp(50px, 3.9vw, 90px);
    padding: clamp(16px, 1.25vw, 26px) clamp(40px, 3.1vw, 60px) clamp(20px, 1.56vw, 40px) clamp(40px, 3.1vw, 60px);
    position: relative;
    z-index: 1;
    overflow: visible;
}

.p-firstPolicy__icon {
    position: absolute;
    top: -20px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 3;
}

.p-firstPolicy__icon img {
    width: clamp(80px, 6.2vw, 160px);
    height: auto;
}

.p-firstPolicy__title {
    text-align: center;
    font-size: clamp(32px, 2.5vw, 52px);
    font-weight: 700;
    color: #5A5A5A;
    margin: clamp(40px, 3.1vw, 60px) 0 clamp(24px, 1.9vw, 40px) 0;
}

.p-firstPolicy__intro {
    text-align: center;
    font-size: clamp(16px, 1.25vw, 26px);
    color: #5A5A5A;
    line-height: 1.8;
    margin: 0 0 clamp(40px, 3.1vw, 60px) 0;
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
}

.p-firstPolicy__cards {
    display: flex;
    justify-content: center;
    gap: clamp(24px, 1.9vw, 40px);
    flex-wrap: nowrap;
}

.p-firstPolicy__card {
    background: #ffffff;
    border-radius: 0;
    overflow: visible;
    width: clamp(280px, 21.9vw, 320px);
    min-width: 0;
    flex-shrink: 1;
    display: flex;
    flex-direction: column;
}

.p-firstPolicy__cardImage {
    position: relative;
    width: 100%;
    aspect-ratio: 4 / 3;
    overflow: visible;
}

.p-firstPolicy__cardImage img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 0;
}

.p-firstPolicy__badge {
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%) translateY(50%);
    background: #ffffff;
    border-radius: 50%;
    width: clamp(60px, 4.7vw, 80px);
    height: clamp(60px, 4.7vw, 80px);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    z-index: 3;
}

.p-firstPolicy__badgeLabel {
    font-size: clamp(10px, 0.78vw, 14px);
    color: #5A5A5A;
    font-weight: 700;
    line-height: 1;
    margin-bottom: clamp(2px, 0.16vw, 4px);
}

.p-firstPolicy__badgeNumber {
    font-size: clamp(24px, 1.9vw, 32px);
    color: #5A5A5A;
    font-weight: 700;
    line-height: 1;
}

.p-firstPolicy__cardTitle {
    text-align: center;
    font-size: clamp(24px, 1.9vw, 32px);
    font-weight: 700;
    color: #5A5A5A;
    margin: clamp(40px, 3.1vw, 50px) 0 clamp(16px, 1.2vw, 24px) 0;
}

.p-firstPolicy__cardDesc {
    padding: 0 clamp(20px, 1.6vw, 28px) clamp(40px, 3.1vw, 60px) clamp(20px, 1.6vw, 28px);
    text-align: center;
}

.p-firstPolicy__cardDesc p {
    font-size: clamp(14px, 1.1vw, 16px);
    color: #5A5A5A;
    line-height: 1.8;
    margin: 0 0 0;
}

.p-firstPolicy__cardDesc p:last-child {
    margin-bottom: 0;
}


/* レスポンシブ */

@media (max-width: 960px) {
    .p-firstPolicy__cards {
        gap: clamp(20px, 1.6vw, 28px);
    }
    .p-firstPolicy__card {
        width: clamp(260px, 30vw, 300px);
    }
}

@media (max-width: 960px) {
    .p-firstPolicy__container {
        width: 90%;
        min-width: auto;
        margin-top: clamp(50px, 3.9vw, 80px);
    }
}

@media (max-width: 540px) {
    .p-firstPolicy {
        padding: 0 clamp(24px, 1.9vw, 32px) clamp(60px, 4.7vw, 80px) clamp(24px, 1.9vw, 32px);
        margin-left: clamp(-24px, -1.9vw, -32px);
        margin-right: clamp(-24px, -1.9vw, -32px);
    }
    .p-firstPolicy__container {
        width: 90%;
        min-width: auto;
        margin-top: clamp(45px, 3.5vw, 70px);
        padding: clamp(40px, 3.1vw, 60px) clamp(24px, 1.9vw, 32px);
    }
    .p-firstPolicy__cards {
        flex-direction: column;
        align-items: center;
    }
    .p-firstPolicy__card {
        width: 100%;
        max-width: 320px;
    }
}


/* お問い合わせセクション */


/* ========================================
   Contact Section / お問い合わせセクション
   ======================================== */

.p-contactSection {
    position: relative;
    background-color: #F2F8EF;
    padding: 0 clamp(100px, 7.8vw, 200px) clamp(80px, 6vw, 120px) clamp(100px, 7.8vw, 200px);
    overflow: hidden;
    border-top-left-radius: 1000px clamp(200px, 15.6vw, 400px);
    border-top-right-radius: 1000px clamp(200px, 15.6vw, 400px);
    margin-left: clamp(-100px, -7.8vw, -200px);
    margin-right: clamp(-100px, -7.8vw, -200px);
}

.p-contactSection__container {
    width: 60%;
    min-width: 800px;
    margin: 0 auto;
    margin-top: 100px;
    position: relative;
    z-index: 1;
    background: #ffffff;
    border-radius: clamp(24px, 1.9vw, 36px);
    padding: clamp(32px, 2.5vw, 48px);
    padding-top: clamp(60px, 4.7vw, 100px);
}

.p-contactSection__icon {
    position: absolute;
    top: clamp(-20px, -1.5vw, -30px);
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    justify-content: center;
    margin-bottom: clamp(24px, 2vw, 40px);
}

.p-contactSection__icon img {
    width: clamp(80px, 6.2vw, 160px);
    height: auto;
}

.p-contactSection__header {
    position: relative;
    top: clamp(60px, 4.7vw, 100px);
    left: 50%;
    transform: translateX(-50%);
    z-index: 3;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5px;
    width: 60%;
    min-width: 800px;
}

.p-contactSection__pill {
    display: inline-block;
    width: 50%;
    background: #5B6D4C;
    color: #fff;
    padding: clamp(16px, 1.25vw, 32px) clamp(32px, 2.5vw, 64px);
    border-radius: clamp(20px, 1.56vw, 40px);
    font-weight: 700;
    font-size: clamp(20px, 1.56vw, 40px);
    text-align: center;
    white-space: nowrap;
    position: relative;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}

.p-contactSection__bubbles {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 3px;
    margin-top: 5px;
}

.p-contactSection__bubble {
    background: #5B6D4C;
    border-radius: 50%;
    display: inline-block;
}

.p-contactSection__bubble--lg {
    width: 18px;
    height: 18px;
    transform: translateX(0);
}

.p-contactSection__bubble--md {
    width: 12px;
    height: 12px;
    transform: translateX(-10px);
}

.p-contactSection__bubble--sm {
    width: 6px;
    height: 6px;
    transform: translateX(-22px);
}

.p-contactSection__lead {
    font-size: clamp(16px, 1.25vw, 20px);
    color: #5A5A5A;
    line-height: 1.8;
    text-align: center;
    margin-bottom: clamp(40px, 3vw, 60px);
}

.p-contactSection__cards {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: clamp(24px, 2vw, 40px);
}

.p-contactSection__card {
    background: #ffffff;
    border: 3px solid #65A373;
    border-radius: clamp(28px, 2.1vw, 40px);
    padding: clamp(24px, 2vw, 40px);
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: clamp(16px, 1.25vw, 24px);
    text-decoration: none;
    color: inherit;
    transition: all 0.3s ease;
    position: relative;
}

.p-contactSection__card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 16px rgba(101, 163, 115, 0.2);
    border-color: #4A6B4A;
}

.p-contactSection__cardTitle {
    font-size: clamp(18px, 1.4vw, 24px);
    font-weight: 700;
    color: #5A5A5A;
    margin: 0;
}

.p-contactSection__cardIcon {
    width: clamp(60px, 4.7vw, 80px);
    height: clamp(60px, 4.7vw, 80px);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.p-contactSection__cardIcon img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.p-contactSection__phoneWrapper {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: clamp(12px, 1vw, 20px);
}

.p-contactSection__phoneWrapper .p-contactSection__cardIcon {
    width: clamp(40px, 3.1vw, 60px);
    height: clamp(40px, 3.1vw, 60px);
}

.p-contactSection__phone,
.p-contactSection__web {
    font-size: clamp(18px, 1.4vw, 24px);
    font-weight: 600;
    color: #65A373;
    margin: 0;
}

.p-contactSection__card:hover .p-contactSection__phone,
.p-contactSection__card:hover .p-contactSection__web {
    color: #4A6B4A;
}


/* レスポンシブ対応 */

@media (max-width: 960px) {
    .p-contactSection__container {
        width: 90%;
        min-width: auto;
        padding: clamp(30px, 2.3vw, 45px);
        padding-top: clamp(50px, 3.9vw, 80px);
    }
    .p-contactSection__header {
        width: 90%;
        min-width: auto;
        top: clamp(50px, 3.9vw, 80px);
    }
    .p-contactSection__cards {
        gap: clamp(20px, 1.6vw, 32px);
    }
}

@media (max-width: 450px) {
    .p-contactSection__container {
        width: 90%;
        min-width: auto;
        padding: clamp(24px, 1.9vw, 36px);
        padding-top: clamp(45px, 3.5vw, 70px);
    }
    .p-contactSection__header {
        width: 90%;
        min-width: auto;
        top: clamp(45px, 3.5vw, 70px);
    }
    .p-contactSection__lead {
        font-size: 14px;
        color: #5A5A5A;
        line-height: 1.8;
        text-align: center;
        margin-bottom: 20px;
    }
    .p-contactSection__cards {
        grid-template-columns: 1fr;
        gap: clamp(20px, 1.6vw, 30px);
    }
    .p-contactSection__pill {
        padding: clamp(14px, 1.1vw, 28px) clamp(24px, 1.9vw, 48px);
        font-size: clamp(18px, 1.4vw, 32px);
        width: auto;
    }
}


/* 自分でできる対処法セクション */

.p-symptomSelfcare {
    position: relative;
    background-color: #65A373;
    /* padding: clamp(60px, 4.7vw, 120px) clamp(100px, 7.8vw, 200px) clamp(80px, 6vw, 120px) clamp(100px, 7.8vw, 200px); */
    overflow: visible;
}

.p-symptomSelfcare__container {
    width: 100%;
    margin: 0 auto;
    position: relative;
    z-index: 1;
    background-color: #F3F8F0;
    border-top-left-radius: 1000px clamp(200px, 15.6vw, 400px);
    border-top-right-radius: 1000px clamp(200px, 15.6vw, 400px);
    margin-left: clamp(-100px, -7.8vw, -200px);
    margin-right: clamp(-100px, -7.8vw, -200px);
    overflow: hidden;
}

.p-symptomSelfcare__references {
    margin-top: clamp(20px, 1.6vw, 30px);
    padding-top: clamp(20px, 1.6vw, 30px);
    border-top: 1px solid #e0e0e0;
}

.p-symptomSelfcare__referencesTitle {
    font-size: clamp(14px, 1.1vw, 16px);
    font-weight: 700;
    color: #707070;
    margin-bottom: clamp(12px, 1vw, 16px);
}

.p-symptomSelfcare__reference {
    font-size: clamp(14px, 1.1vw, 16px);
    color: #707070;
    line-height: 1.8;
    margin-bottom: clamp(8px, 0.6vw, 12px);
}

.p-symptomSelfcare__reference a {
    color: #4A6B4A;
    text-decoration: underline;
}

.p-symptomSelfcare__reference a:hover {
    color: #3a5a3a;
}

.p-symptomSelfcare__note {
    font-size: clamp(14px, 1.1vw, 16px);
    color: #707070;
    line-height: 1.8;
    margin-top: clamp(16px, 1.25vw, 24px);
    padding: clamp(12px, 1vw, 16px);
    background: #f9f9f9;
    border-radius: clamp(8px, 0.6vw, 12px);
    border-left: 3px solid #4A6B4A;
}

.p-symptomSelfcare__inner {
    width: 60%;
    margin: 0 auto;
    position: relative;
    z-index: 1;
}

.p-symptomSelfcare__intro {
    font-size: clamp(16px, 1.25vw, 20px);
    color: #5A5A5A;
    line-height: 1.8;
    text-align: center;
}


/* 施術メニューセクション */

.p-symptomSelfcare__container {
    width: 100%;
    margin: 0 auto;
    position: relative;
    z-index: 1;
}

.p-symptomSelfcare__inner {
    width: 60%;
    margin: 0 auto;
    margin-top: clamp(60px, 4.68vw, 100px);
    margin-bottom: clamp(60px, 4.68vw, 100px);
    position: relative;
    z-index: 1;
}

.p-symptomSelfcare__wrapper {
    background: #ffffff;
    border-radius: clamp(24px, 1.9vw, 36px);
    padding: clamp(32px, 2.5vw, 48px);
}

.p-symptomSelfcare__icon {
    display: flex;
    justify-content: center;
    margin-bottom: clamp(24px, 2vw, 40px);
}

.p-symptomSelfcare__icon img {
    width: clamp(60px, 4.7vw, 120px);
    height: auto;
}

.p-symptomSelfcare__title {
    font-size: clamp(24px, 2vw, 40px);
    font-weight: 700;
    color: #5A5A5A;
    text-align: center;
    margin-bottom: clamp(60px, 4.7vw, 100px);
}

.p-symptomSelfcare__intro {
    font-size: clamp(16px, 1.25vw, 20px);
    color: #5A5A5A;
    line-height: 1.8;
    text-align: center;
    margin: 0 auto clamp(48px, 3.7vw, 72px);
    max-width: 760px;
}

.p-symptomSelfcare__item {
    padding: 0;
    margin-bottom: clamp(80px, 6.2vw, 160px);
}

.p-symptomSelfcare__item:first-child {
    padding-top: 0;
}

.p-symptomSelfcare__item:last-child {
    padding-bottom: 0;
    margin-bottom: 0;
}

.p-symptomSelfcare__itemHeader {
    display: flex;
    align-items: center;
    gap: clamp(16px, 1.2vw, 24px);
    margin-bottom: clamp(24px, 2vw, 32px);
}

.p-symptomSelfcare__badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    position: relative;
    white-space: nowrap;
    width: clamp(60px, 4.7vw, 100px);
    height: clamp(60px, 4.7vw, 100px);
    border-radius: 50%;
    background: #4A6B4A;
    padding: 0;
    gap: clamp(4px, 0.3vw, 8px);
    box-sizing: border-box;
}

.p-symptomSelfcare__badge::before {
    content: '';
    position: absolute;
    top: -1px;
    left: -1px;
    width: calc(clamp(60px, 4.7vw, 100px) * 0.2);
    height: calc(clamp(60px, 4.7vw, 100px) * 0.2);
    border-radius: 50%;
    background: #F2F8EF;
    z-index: -1;
}

.p-symptomSelfcare__badgeText {
    font-size: clamp(12px, 0.93vw, 20px);
    font-weight: 700;
    color: #fff;
    line-height: 1;
    flex-shrink: 0;
}

.p-symptomSelfcare__badgeNumber {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: clamp(20px, 1.56vw, 40px);
    font-weight: 700;
    color: #fff;
    line-height: 1;
    flex-shrink: 0;
}

.p-symptomSelfcare__itemTitle {
    font-size: clamp(24px, 1.8vw, 44px);
    font-weight: 700;
    color: #45703F;
    white-space: nowrap;
}

.p-symptomSelfcare__line {
    flex: 1;
    height: 2px;
    background: #45703F;
}

.p-symptomSelfcare__itemContent {
    display: flex;
    gap: clamp(24px, 2vw, 32px);
    margin-bottom: clamp(24px, 2vw, 32px);
}

.p-symptomSelfcare__left {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: clamp(16px, 1.25vw, 26px);
}

.p-symptomSelfcare__right {
    flex: 2;
    display: flex;
    flex-direction: column;
    gap: clamp(16px, 1.25vw, 24px);
}

.p-symptomSelfcare__itemText {
    display: flex;
    flex-direction: column;
    gap: clamp(12px, 1vw, 16px);
    margin: clamp(16px, 1.25vw, 26px) 0;
}

.p-symptomSelfcare__itemText p {
    font-size: clamp(14px, 1.1vw, 16px);
    color: #707070;
    line-height: 2;
}

.p-symptomSelfcare__itemImage {
    border-radius: clamp(20px, 1.56vw, 40px);
    overflow: hidden;
}

.p-symptomSelfcare__itemImage img {
    width: 100%;
    height: auto;
    display: block;
}

@media (max-width: 960px) {
    .p-symptomSelfcare__inner {
        width: 90%;
    }
    .p-symptomSelfcare__itemContent {
        flex-direction: column;
    }
}

@media (max-width: 540px) {
    .p-symptomSelfcare__itemHeader {
        flex-direction: column;
        align-items: flex-start;
    }
    .p-symptomSelfcare__itemTitle {
        white-space: normal;
    }
    .p-symptomSelfcare__line {
        width: 100%;
    }
    .p-symptomSelfcare__referencesBlock {
        padding: clamp(24px, 2vw, 32px);
    }
}

.p-symptomSelfcare__referencesBlock {
    background: #F4F8F1;
    border-radius: clamp(24px, 1.9vw, 36px);
    padding: clamp(32px, 2.5vw, 48px);
    margin-top: clamp(40px, 3.1vw, 60px);
}


/* Single Symptom Price Section Overrides */

.single-symptom .p-priceMenuSection {
    background-color: #F4F8F1;
    border-top-left-radius: 0;
    border-top-right-radius: 0;
    overflow: visible;
    padding-bottom: 0;
}

.single-symptom .p-priceMenuSection__inner {
    border-top-left-radius: 1000px clamp(200px, 15.6vw, 400px);
    border-top-right-radius: 1000px clamp(200px, 15.6vw, 400px);
    overflow: hidden;
}

.single-symptom .p-priceMenuSection__inner--menus {
    background-color: #F4F8F1;
    border-top: 4px solid #fff;
}

.single-symptom .p-priceMenuSection__inner--faq {
    background-color: #FFFFFF;
}

.p-symptomCta {
    background: #65A373;
    padding: clamp(60px, 4.7vw, 120px) clamp(100px, 7.8vw, 200px);
    overflow: hidden;
}

.p-symptomCta__inner {
    display: flex;
    align-items: center;
    gap: clamp(32px, 2.5vw, 60px);
    background: #FFFFFF;
    border-radius: clamp(36px, 2.8vw, 72px);
    padding: clamp(32px, 2.5vw, 48px);
}

.p-symptomCta__image img {
    display: block;
    width: clamp(260px, 20vw, 360px);
    height: auto;
    border-radius: clamp(24px, 1.9vw, 36px);
}

.p-symptomCta__content {
    display: flex;
    flex-direction: column;
    gap: clamp(16px, 1.25vw, 24px);
}

.p-symptomCta__title {
    font-size: clamp(28px, 2.1vw, 48px);
    font-weight: 700;
    color: #5A5A5A;
}

.p-symptomCta__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: clamp(16px, 1.5vw, 24px) clamp(32px, 3vw, 48px);
    background: #4A6B4A;
    color: #FFFFFF;
    text-decoration: none;
    border-radius: clamp(60px, 4.68vw, 100px);
    font-size: clamp(16px, 1.2vw, 20px);
    font-weight: 600;
    transition: all 0.3s ease;
    width: fit-content;
}

.p-symptomCta__button:hover {
    background: #3a5a3a;
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(74, 107, 74, 0.3);
}

@media (max-width: 960px) {
    .p-symptomCta__inner {
        flex-direction: column;
        text-align: center;
    }
    .p-symptomCta__button {
        margin: 0 auto;
    }
}

@media (max-width: 540px) {
    .p-symptomCta {
        padding: clamp(40px, 3.1vw, 60px) clamp(20px, 1.6vw, 32px);
    }
    .p-symptomCta__image img {
        width: 100%;
    }
}

.p-symptomConcern__itemText p {
    font-size: clamp(14px, 1.1vw, 16px);
    color: #707070;
    line-height: 2;
}

.p-symptomSelfcare__itemImage {
    border-radius: clamp(20px, 1.56vw, 40px);
    overflow: hidden;
}

.p-symptomSelfcare__itemImage img {
    width: 100%;
    height: auto;
    display: block;
}

.p-symptomSelfcare__referencesBlock {
    background: #F4F8F1;
    border-radius: clamp(24px, 1.9vw, 36px);
    padding: clamp(32px, 2.5vw, 48px);
    margin-top: clamp(40px, 3.1vw, 60px);
}

.p-symptomCauses {
    background: #65A373;
    padding: clamp(60px, 4.7vw, 120px) clamp(100px, 7.8vw, 200px);
    overflow: hidden;
}

.p-symptomCauses__container {
    width: clamp(80%, 60vw, 900px);
    margin: 0 auto;
    background: transparent;
    border-radius: clamp(36px, 2.8vw, 72px);
    padding: clamp(48px, 3.7vw, 72px);
}

.p-symptomCauses__title {
    font-size: clamp(28px, 2.1vw, 48px);
    font-weight: 700;
    color: #fff;
    text-align: center;
    margin-bottom: clamp(40px, 3.1vw, 60px);
}

.p-symptomCauses__chat {
    display: flex;
    flex-direction: column;
    gap: clamp(40px, 3.1vw, 60px);
}

.p-symptomCauses__chatItem {
    display: flex;
    flex-direction: column;
    gap: clamp(20px, 1.6vw, 32px);
}

.p-symptomCauses__bubble--question p {
    font-size: clamp(20px, 1.56vw, 40px);
    color: #65A373;
}

.p-symptomCauses__bubble--answer p {
    color: #65A373;
}

.p-symptomCauses__question,
.p-symptomCauses__answer {
    display: flex;
    align-items: flex-start;
    gap: clamp(28px, 2.1vw, 40px);
}

.p-symptomCauses__answer {
    justify-content: flex-end;
}

.p-symptomCauses__avatar {
    width: clamp(70px, 5.4vw, 96px);
    height: clamp(70px, 5.4vw, 96px);
    border: 2px solid;
    border-radius: 50%;
    overflow: hidden;
    flex-shrink: 0;
}

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

.p-symptomCauses__bubble {
    position: relative;
    padding: clamp(20px, 1.6vw, 28px) clamp(24px, 1.9vw, 36px);
    border-radius: clamp(24px, 1.9vw, 36px);
    max-width: clamp(70%, 45vw, 560px);
    line-height: 1.8;
    font-size: clamp(16px, 1.25vw, 20px);
}

.p-symptomCauses__bubble--question {
    background: #FDFF00;
    color: #565656;
}

.p-symptomCauses__bubble--question::before {
    content: '';
    position: absolute;
    top: clamp(24px, 1.9vw, 32px);
    left: clamp(-18px, -1.4vw, -24px);
    width: 0;
    height: 0;
    border-top: clamp(12px, 0.9vw, 18px) solid transparent;
    border-bottom: clamp(12px, 0.9vw, 18px) solid transparent;
    border-right: clamp(18px, 1.4vw, 24px) solid #FDFF00;
}

.p-symptomCauses__bubble--answer {
    background: #FFFFFF;
    color: #5A5A5A;
}

.p-symptomCauses__bubble--answer::after {
    content: '';
    position: absolute;
    top: clamp(24px, 1.9vw, 32px);
    right: clamp(-18px, -1.4vw, -24px);
    width: 0;
    height: 0;
    border-top: clamp(12px, 0.9vw, 18px) solid transparent;
    border-bottom: clamp(12px, 0.9vw, 18px) solid transparent;
    border-left: clamp(18px, 1.4vw, 24px) solid #FFFFFF;
}

@media (max-width: 960px) {
    .p-symptomCauses__container {
        width: 90%;
    }
    .p-symptomCauses__bubble {
        max-width: 100%;
    }
}

@media (max-width: 640px) {
    .p-symptomCauses__question,
    .p-symptomCauses__answer {
        flex-direction: column;
        align-items: flex-start;
    }
    .p-symptomCauses__answer {
        align-items: flex-end;
    }
    .p-symptomCauses__avatar {
        width: clamp(60px, 4.7vw, 80px);
        height: clamp(60px, 4.7vw, 80px);
    }
    .p-symptomCauses__bubble--answer::after {
        right: clamp(-14px, -1.1vw, -20px);
    }
    .p-symptomCauses__bubble--question::before {
        left: clamp(-14px, -1.1vw, -20px);
    }
}

@media (max-width: 450px) {
    /* 黄色の吹き出し（質問）: 上部、左から10%の位置に下向き */
    .p-symptomCauses__bubble--question::before {
        top: clamp(-12px, -0.9vw, -18px);
        left: 8%;
        right: auto;
        border-bottom: clamp(12px, 0.9vw, 18px) solid #FDFF00;
        border-left: clamp(12px, 0.9vw, 18px) solid transparent;
        border-right: clamp(12px, 0.9vw, 18px) solid transparent;
        border-top: none;
    }
    /* 白い吹き出し（回答）: 下部、右から10%の位置に上向き */
    .p-symptomCauses__bubble--answer::after {
        top: auto;
        bottom: clamp(-12px, -0.9vw, -18px);
        right: 8%;
        left: auto;
        border-top: clamp(12px, 0.9vw, 18px) solid #FFFFFF;
        border-left: clamp(12px, 0.9vw, 18px) solid transparent;
        border-right: clamp(12px, 0.9vw, 18px) solid transparent;
        border-bottom: none;
    }
}


/* ========================================
   Symptom Archive Page Styles
   ======================================== */

.p-symptomArchive {
    padding: clamp(60px, 4.7vw, 100px) 0;
    background-color: #ffffff;
}

.p-symptomArchive__header {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: clamp(12px, 1vw, 20px);
    margin-bottom: clamp(50px, 3.9vw, 80px);
}

.p-symptomArchive__decoration {
    width: 0;
    height: 0;
    border-style: solid;
    flex-shrink: 0;
}

.p-symptomArchive__decoration--left {
    border-width: clamp(8px, 0.6vw, 12px) 0 clamp(8px, 0.6vw, 12px) clamp(12px, 0.9vw, 18px);
    border-color: transparent transparent transparent #36BAC7;
}

.p-symptomArchive__decoration--right {
    border-width: clamp(8px, 0.6vw, 12px) clamp(12px, 0.9vw, 18px) clamp(8px, 0.6vw, 12px) 0;
    border-color: transparent #FDFF00 transparent transparent;
}

.p-symptomArchive__title {
    font-size: clamp(28px, 2.2vw, 42px);
    font-weight: 700;
    color: #5A5A5A;
    text-align: center;
    margin: 0;
}


/* 症状ボタングリッド */

.p-symptomArchive__buttonGrid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: clamp(16px, 1.25vw, 24px);
    margin-bottom: clamp(60px, 4.7vw, 100px);
    max-width: 900px;
    margin-left: auto;
    margin-right: auto;
}

.p-symptomArchive__button {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: clamp(16px, 1.25vw, 24px) clamp(20px, 1.6vw, 32px);
    background-color: #36BAC7;
    color: #ffffff;
    font-size: clamp(16px, 1.25vw, 20px);
    font-weight: 600;
    text-decoration: none;
    border-radius: clamp(30px, 2.34vw, 50px);
    transition: all 0.3s ease;
    text-align: center;
    min-height: clamp(50px, 3.9vw, 70px);
}

.p-symptomArchive__button:hover {
    background-color: #2a9ba8;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(54, 186, 199, 0.3);
}


/* カテゴリ別症状一覧 */

.p-symptomArchive__category {
    margin-bottom: clamp(40px, 3.1vw, 60px);
}

.p-symptomArchive__categoryTitle {
    background-color: #4A6B4A;
    color: #ffffff;
    font-size: clamp(18px, 1.4vw, 24px);
    font-weight: 700;
    padding: clamp(16px, 1.25vw, 24px) clamp(24px, 1.9vw, 36px);
    border-radius: clamp(12px, 0.9vw, 20px) clamp(12px, 0.9vw, 20px) 0 0;
    margin-bottom: 0;
}

.p-symptomArchive__categoryList {
    display: flex;
    flex-direction: column;
    gap: clamp(8px, 0.6vw, 12px);
    background-color: #ffffff;
    border: 2px solid #65A373;
    border-top: none;
    border-radius: 0 0 clamp(12px, 0.9vw, 20px) clamp(12px, 0.9vw, 20px);
    padding: clamp(20px, 1.6vw, 30px) clamp(24px, 1.9vw, 36px);
    box-shadow: 3px 3px 10px rgba(0, 0, 0, 0.1);
}

.p-symptomArchive__categoryItem {
    display: block;
    padding: clamp(14px, 1.1vw, 20px) clamp(20px, 1.6vw, 28px);
    background-color: #ffffff;
    color: #5A5A5A;
    font-size: clamp(16px, 1.25vw, 20px);
    font-weight: 500;
    text-decoration: none;
    border-radius: clamp(8px, 0.6vw, 12px);
    transition: all 0.3s ease;
    border: 1px solid transparent;
}

.p-symptomArchive__categoryItem:hover {
    background-color: #F3F8F0;
    border-color: #65A373;
    color: #65A373;
    transform: translateX(4px);
}


/* レスポンシブ対応 */

@media (max-width: 960px) {
    .p-symptomArchive__buttonGrid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 540px) {
    .p-symptomArchive__buttonGrid {
        grid-template-columns: 1fr;
    }
    .p-symptomArchive__header {
        flex-wrap: wrap;
    }
    .p-symptomArchive__decoration {
        display: none;
    }
    .p-symptomCauses__container {
        width: clamp(80%, 60vw, 900px);
        margin: 0 auto;
        background: transparent;
        border-radius: clamp(36px, 2.8vw, 72px);
        padding: 20px 0;
    }
}


/* ===========================================
   Single Menu Page / メニュー個別ページ
   =========================================== */

.p-singleMenu {
    position: relative;
}

.p-singleMenuSection {
    padding: clamp(60px, 4.7vw, 120px) 0;
    background-color: #F2F8EF;
}

.p-singleMenuSection__container {
    width: 60%;
    min-width: 800px;
    margin: 0 auto;
    padding: 0;
}

.p-singleMenuSection__inner {
    background: #ffffff;
    border-radius: clamp(24px, 1.9vw, 36px);
    padding: clamp(40px, 3vw, 60px);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
}

.p-singleMenuSection__image {
    margin-bottom: clamp(32px, 2.5vw, 48px);
    border-radius: clamp(16px, 1.2vw, 20px);
    overflow: hidden;
}

.p-singleMenuSection__image img {
    width: 100%;
    height: auto;
    display: block;
}

.p-singleMenuSection__content {
    display: flex;
    flex-direction: column;
    gap: clamp(24px, 1.8vw, 36px);
}

.p-singleMenuSection__header {
    display: flex;
    flex-direction: column;
    gap: clamp(16px, 1.2vw, 24px);
    padding-bottom: clamp(20px, 1.5vw, 32px);
    border-bottom: 2px solid #F2F8EF;
}

.p-singleMenuSection__title {
    position: relative;
    background: #F2F8EF;
    padding: 0.25em 0.5em;
    border-left: solid 2em #65A373;
    font-size: clamp(28px, 2.2vw, 48px);
    font-weight: 700;
    color: #5A5A5A;
    line-height: 1.4;
    margin-bottom: clamp(20px, 1.5vw, 20px);
}

.p-singleMenuSection__title .fa-clipboard {
    position: absolute;
    color: #fff;
    left: -1em;
    top: 50%;
    transform: translate(-50%, -50%);
    font-size: 0.8em;
    display: flex;
    align-items: center;
    justify-content: center;
}

.p-singleMenuSection__price {
    display: flex;
    align-items: baseline;
    gap: clamp(12px, 1vw, 20px);
}

.p-singleMenuSection__priceLabel {
    font-size: clamp(16px, 1.25vw, 24px);
    color: #5A5A5A;
    font-weight: 700;
}

.p-singleMenuSection__priceValue {
    font-size: clamp(20px, 1.56vw, 32px);
    color: #4A6B4A;
    font-weight: 700;
}

.p-singleMenuSection__excerpt {
    font-size: clamp(16px, 1.25vw, 20px);
    color: #5A5A5A;
    line-height: 1.8;
}

.p-singleMenuSection__lead {
    font-size: clamp(16px, 1.25vw, 20px);
    color: #5A5A5A;
    line-height: 1.8;
    font-weight: 500;
}

.p-singleMenuSection__body {
    font-size: clamp(16px, 1.25vw, 18px);
    color: #5A5A5A;
    line-height: 1.8;
}

.p-singleMenuSection__body h2 {
    position: relative;
    padding: 0.3em 0 0.2em 1em;
    border-bottom: 3px solid #35BAC7;
    color: #333333;
    font-size: clamp(20px, 1.6vw, 24px);
    font-weight: 700;
    margin-bottom: clamp(20px, 1.6vw, 30px);
    margin-top: clamp(30px, 2.3vw, 40px);
}

.p-singleMenuSection__body h2::before {
    position: absolute;
    top: 0;
    left: 0.3em;
    transform: rotate(55deg);
    height: 11px;
    width: 12px;
    background: #35BAC7;
    content: '';
}

.p-singleMenuSection__body h2::after {
    position: absolute;
    transform: rotate(15deg);
    top: 0.6em;
    left: 0;
    height: 8px;
    width: 8px;
    background: #35BAC7;
    content: '';
}

.p-singleMenuSection__body h3 {
    margin-top: clamp(12px, 0.93vw, 20px);
    margin-bottom: clamp(10px, 0.78vw, 18px);
    font-size: clamp(20px, 1.6vw, 28px);
    font-weight: 700;
    color: #5A5A5A;
    line-height: 1.4;
}

.p-singleMenuSection__body h2:first-child,
.p-singleMenuSection__body h3:first-child {
    margin-top: 0;
}

.p-singleMenuSection__body p {
    margin-bottom: clamp(16px, 1.2vw, 24px);
}

.p-singleMenuSection__body p:last-child {
    margin-bottom: 0;
}

.p-singleMenuSection__body ul,
.p-singleMenuSection__body ol {
    margin-top: clamp(12px, 0.93vw, 20px);
    margin-bottom: clamp(16px, 1.2vw, 24px);
    padding-left: clamp(20px, 1.6vw, 30px);
}

.p-singleMenuSection__body li {
    margin-bottom: clamp(8px, 0.6vw, 12px);
    line-height: 1.8;
}

.p-singleMenuSection__body li:last-child {
    margin-bottom: 0;
}

.p-singleMenuSection__subtitle {
    font-size: clamp(20px, 1.56vw, 28px);
    font-weight: 700;
    color: #5A5A5A;
    margin-bottom: clamp(16px, 1.2vw, 24px);
    padding-bottom: clamp(12px, 1vw, 16px);
    border-bottom: 2px solid #F2F8EF;
}

.p-singleMenuSection__treatment {
    padding: clamp(24px, 1.8vw, 36px);
    background-color: #F3F8F0;
    border-radius: clamp(16px, 1.2vw, 24px);
}

.p-singleMenuSection__treatmentContent {
    font-size: clamp(16px, 1.25vw, 18px);
    color: #5A5A5A;
    line-height: 1.8;
}

.p-singleMenuSection__recommended {
    padding: clamp(24px, 1.8vw, 36px);
    background-color: #F3F8F0;
    border-radius: clamp(16px, 1.2vw, 24px);
}

.p-singleMenuSection__recommendedList {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: clamp(12px, 1vw, 16px);
}

.p-singleMenuSection__recommendedItem {
    display: flex;
    align-items: flex-start;
    gap: clamp(12px, 1vw, 16px);
}

.p-singleMenuSection__recommendedIcon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: clamp(24px, 1.9vw, 32px);
    height: clamp(24px, 1.9vw, 32px);
    background-color: #60B7C5;
    color: #fff;
    border-radius: 50%;
    font-weight: 700;
    flex-shrink: 0;
    font-size: clamp(14px, 1.1vw, 18px);
}

.p-singleMenuSection__recommendedText {
    font-size: clamp(16px, 1.25vw, 18px);
    color: #5A5A5A;
    line-height: 1.8;
    flex: 1;
}

.p-singleMenuSection__info {
    display: flex;
    flex-direction: column;
    gap: clamp(12px, 1vw, 16px);
    padding: clamp(20px, 1.5vw, 28px);
    background-color: #F3F8F0;
    border-radius: clamp(16px, 1.2vw, 24px);
}

.p-singleMenuSection__infoItem {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: clamp(16px, 1.2vw, 24px);
}

.p-singleMenuSection__infoLabel {
    font-size: clamp(16px, 1.25vw, 18px);
    color: #5A5A5A;
    font-weight: 700;
}

.p-singleMenuSection__infoValue {
    font-size: clamp(16px, 1.25vw, 18px);
    color: #4A6B4A;
    font-weight: 700;
}

.p-singleMenuSection__cta {
    margin-top: clamp(16px, 1.2vw, 24px);
    text-align: center;
}


/* FAQ Section */

.p-singleMenuFaq {
    padding: clamp(60px, 4.7vw, 120px) 0;
    background-color: #ffffff;
}

.p-singleMenuFaq__container {
    width: 60%;
    min-width: 800px;
    margin: 0 auto;
    padding: 0 clamp(100px, 7.8vw, 200px);
}

.p-singleMenuFaq__title {
    font-size: clamp(24px, 2vw, 40px);
    font-weight: 700;
    color: #5A5A5A;
    text-align: center;
    margin-bottom: clamp(32px, 2.5vw, 48px);
}


/* Related Menu Section */

.p-singleMenuRelated {
    padding: clamp(60px, 4.7vw, 120px) 0;
    background-color: #F2F8EF;
    border-top-left-radius: 1000px clamp(200px, 15.6vw, 400px);
    border-top-right-radius: 1000px clamp(200px, 15.6vw, 400px);
    margin-left: clamp(-100px, -7.8vw, -200px);
    margin-right: clamp(-100px, -7.8vw, -200px);
}

.p-singleMenuRelated__container {
    width: 60%;
    min-width: 800px;
    margin: 0 auto;
    padding: 0 clamp(100px, 7.8vw, 200px);
}

.p-singleMenuRelated__title {
    font-size: clamp(24px, 2vw, 40px);
    font-weight: 700;
    color: #5A5A5A;
    text-align: center;
    margin-bottom: clamp(32px, 2.5vw, 48px);
}

.p-singleMenuRelated__list {
    display: grid;
    grid-template-columns: 1fr;
    gap: clamp(16px, 1.2vw, 24px);
}


/* レスポンシブ対応 */

@media (max-width: 960px) {
    .p-singleMenuSection__container,
    .p-singleMenuFaq__container,
    .p-singleMenuRelated__container {
        width: 90%;
        min-width: auto;
        padding: 0 clamp(20px, 5vw, 40px);
    }
    .p-singleMenuSection__inner {
        padding: clamp(24px, 4vw, 40px);
    }
    .p-singleMenuSection__header {
        flex-direction: column;
    }
    .p-singleMenuSection__price {
        flex-direction: column;
        align-items: flex-start;
    }
    .p-singleMenuRelated {
        margin-left: 0;
        margin-right: 0;
        border-top-left-radius: clamp(100px, 8vw, 150px);
        border-top-right-radius: clamp(100px, 8vw, 150px);
    }
}


/* ===========================================
   Staff Section / スタッフ紹介
   =========================================== */


/* トップページのスタッフ紹介セクション */

.p-staffSection {
    background-color: #ffffff;
    padding: clamp(80px, 6vw, 120px) 0;
    position: relative;
}

.p-staffSection__inner {
    width: 70%;
    min-width: 800px;
    margin: 0 auto;
    text-align: center;
}

.p-staffSection__subtitle {
    font-size: clamp(14px, 1.2vw, 18px);
    font-weight: 600;
    color: #36BAC7;
    letter-spacing: 0.2em;
    margin-bottom: 20px;
    text-align: center;
}

.p-staffSection__title {
    font-size: clamp(28px, 2.1vw, 40px);
    font-weight: 700;
    color: #5A5A5A;
    line-height: 1.3;
    text-align: center;
    margin-bottom: clamp(60px, 4.7vw, 80px);
}

.p-staffSection__list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: clamp(30px, 2.3vw, 40px);
    margin-bottom: clamp(60px, 4.7vw, 80px);
}

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


/* スタッフカード（共通） */

.c-staffCard {
    background: #ffffff;
    border-radius: clamp(24px, 1.9vw, 36px);
    overflow: hidden;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    box-shadow: none;
}

.c-staffCard:hover {
    transform: translateY(-4px);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);
}

.c-staffCard__link {
    display: block;
    text-decoration: none;
    color: inherit;
}

.c-staffCard__photo {
    width: 100%;
    aspect-ratio: 3 / 4;
    overflow: hidden;
    background: #f0f0f0;
    position: relative;
}

.c-staffCard__photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.c-staffCard__photoPlaceholder {
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, #F2F8EF 0%, #E8F0E5 100%);
}

.c-staffCard__body {
    padding: clamp(20px, 1.6vw, 28px);
    text-align: center;
}

.c-staffCard__joined {
    font-size: clamp(12px, 0.94vw, 14px);
    color: #5A5A5A;
    margin-bottom: clamp(8px, 0.6vw, 12px);
}

.c-staffCard__licenses {
    font-size: clamp(12px, 0.94vw, 14px);
    color: #65A373;
    font-weight: 600;
    margin-bottom: clamp(12px, 0.94vw, 16px);
}

.c-staffCard__name {
    font-size: clamp(18px, 1.4vw, 24px);
    font-weight: 700;
    color: #5A5A5A;
    margin-bottom: clamp(8px, 0.6vw, 12px);
    line-height: 1.4;
}

.c-staffCard__nameKana {
    font-size: clamp(12px, 0.93vw, 20px);
    color: #5A5A5A;
    margin-bottom: clamp(8px, 0.6vw, 12px);
    line-height: 1.4;
}

.c-staffCard__title {
    font-size: clamp(14px, 1.1vw, 16px);
    color: #5A5A5A;
    margin-bottom: clamp(8px, 0.6vw, 12px);
}

.c-staffCard__catchcopy {
    font-size: clamp(14px, 1.1vw, 16px);
    color: #5A5A5A;
    line-height: 1.6;
    margin-top: clamp(8px, 0.6vw, 12px);
}


/* スタッフアーカイブページ */

.p-staffArchive {
    background-color: #ffffff;
    padding: clamp(60px, 4.7vw, 100px) 0;
}

.p-staffArchive__inner {
    width: 70%;
    min-width: 800px;
    margin: 0 auto;
}

.p-staffArchive__subtitle {
    font-size: clamp(14px, 1.2vw, 18px);
    font-weight: 600;
    color: #36BAC7;
    letter-spacing: 0.2em;
    margin-bottom: 20px;
    text-align: center;
}

.p-staffArchive__title {
    font-size: clamp(28px, 2.1vw, 40px);
    font-weight: 700;
    color: #5A5A5A;
    line-height: 1.3;
    text-align: center;
    margin-bottom: clamp(60px, 4.7vw, 80px);
}

.p-staffArchive__list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: clamp(30px, 2.3vw, 40px);
    margin-bottom: clamp(60px, 4.7vw, 80px);
}

.p-staffArchive__pagination {
    text-align: center;
    margin-top: clamp(40px, 3vw, 60px);
}

.p-staffArchive__noData {
    text-align: center;
    font-size: clamp(16px, 1.25vw, 20px);
    color: #5A5A5A;
    padding: clamp(40px, 3vw, 60px);
}


/* スタッフ詳細ページ */

.p-staffDetailSection {
    background-color: #F2F8EF;
    padding: clamp(60px, 4.7vw, 100px) 0;
    position: relative;
}

.p-staffDetailSection__background {
    width: 70%;
    margin: 0 auto;
    min-width: 800px;
    background-color: #ffffff;
    border-radius: clamp(60px, 4.68vw, 100px);
    /* border-top-left-radius: clamp(150px, 11.7vw, 300px); */
    /* border-top-right-radius: clamp(150px, 11.7vw, 300px); */
    padding: clamp(60px, 4.7vw, 100px) 0;
}

.p-staffDetailSection__container {
    width: 100%;
    min-width: 800px;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 clamp(100px, 7.8vw, 200px);
    position: relative;
}

.p-staffDetailContent {
    background: #ffffff;
    border-radius: clamp(24px, 1.9vw, 36px);
    /* padding: clamp(40px, 3.1vw, 60px); */
    /* padding-top: clamp(60px, 4.7vw, 80px); */
    position: relative;
}

.p-staffDetailContent__pin {
    position: absolute;
    top: -80px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 2;
}

.p-staffDetailContent__pin img {
    width: clamp(80px, 6.2vw, 160px);
    height: auto;
    display: block;
}

.p-staffDetailContent__header {
    display: flex;
    gap: clamp(40px, 3vw, 60px);
    margin-bottom: clamp(40px, 3.1vw, 60px);
    align-items: flex-start;
}

.p-staffDetailContent__photoWrapper {
    flex: 0 0 auto;
}

.p-staffDetailContent__photoMain {
    width: clamp(280px, 22vw, 400px);
    border-radius: clamp(20px, 1.6vw, 30px);
    overflow: hidden;
    margin-bottom: clamp(20px, 1.6vw, 30px);
    background: #f0f0f0;
}

.p-staffDetailContent__photoMain img {
    width: 100%;
    height: auto;
    display: block;
}

.p-staffDetailContent__photoSub {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: clamp(10px, 0.8vw, 16px);
}

.p-staffDetailContent__photoSubItem {
    border-radius: clamp(12px, 0.9vw, 18px);
    overflow: hidden;
    aspect-ratio: 1;
    background: #f0f0f0;
}

.p-staffDetailContent__photoSubItem img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.p-staffDetailContent__photoPlaceholder {
    width: 100%;
    aspect-ratio: 3 / 4;
    background: linear-gradient(135deg, #F2F8EF 0%, #E8F0E5 100%);
}

.p-staffDetailContent__info {
    flex: 1;
}

.p-staffDetailContent__joined {
    font-size: clamp(14px, 1.1vw, 16px);
    color: #5A5A5A;
    margin-bottom: clamp(8px, 0.6vw, 12px);
}

.p-staffDetailContent__licenses {
    font-size: clamp(14px, 1.1vw, 16px);
    color: #65A373;
    font-weight: 600;
    margin-bottom: clamp(12px, 0.94vw, 16px);
}

.p-staffDetailContent__name {
    font-size: clamp(28px, 2.2vw, 40px);
    font-weight: 700;
    color: #5A5A5A;
    margin-bottom: clamp(8px, 0.6vw, 12px);
    line-height: 1.4;
}

.p-staffDetailContent__nameKana {
    font-size: clamp(14px, 1.1vw, 16px);
    color: #5A5A5A;
    margin-bottom: clamp(12px, 0.94vw, 16px);
}

.p-staffDetailContent__title {
    font-size: clamp(18px, 1.4vw, 24px);
    color: #5A5A5A;
    margin-bottom: clamp(12px, 0.94vw, 16px);
}

.p-staffDetailContent__catchcopyWrapper {
    margin-bottom: clamp(40px, 3.1vw, 60px);
}

.p-staffDetailContent__catchcopy {
    font-size: clamp(28px, 2.1vw, 40px);
    color: #5A5A5A;
    line-height: 1.8;
    text-align: center;
}

.p-staffDetailContent__intro {
    font-size: clamp(16px, 1.25vw, 20px);
    color: #5A5A5A;
    line-height: 2;
    margin-bottom: clamp(40px, 3.1vw, 60px);
    padding-top: clamp(30px, 2.3vw, 50px);
    border-top: 1px solid #E0E0E0;
}

.p-staffDetailContent__qa {
    margin-top: clamp(40px, 3.1vw, 60px);
    padding-top: clamp(30px, 2.3vw, 50px);
    border-top: 1px solid #E0E0E0;
}

.p-staffDetailContent__qaItem {
    margin-bottom: clamp(40px, 3.1vw, 60px);
}

.p-staffDetailContent__qaItem:last-child {
    margin-bottom: 0;
}

.p-staffDetailContent__qaTitle {
    font-size: clamp(20px, 1.6vw, 28px);
    font-weight: 700;
    color: #5A5A5A;
    margin-bottom: clamp(16px, 1.25vw, 24px);
    padding-bottom: clamp(12px, 0.94vw, 16px);
    border-bottom: 2px solid #65A373;
}

.p-staffDetailContent__qaText {
    font-size: clamp(16px, 1.25vw, 20px);
    color: #5A5A5A;
    line-height: 1.8;
}

.p-staffDetailSection__button {
    text-align: center;
    margin-top: clamp(40px, 3vw, 60px);
}

.p-staffDetailSection__navigation {
    display: flex;
    justify-content: space-between;
    gap: clamp(20px, 1.6vw, 30px);
    margin-top: clamp(40px, 3vw, 60px);
    padding-top: clamp(30px, 2.3vw, 50px);
    border-top: 1px solid #E0E0E0;
}

.p-staffDetailSection__navLink {
    display: flex;
    align-items: center;
    gap: clamp(12px, 0.94vw, 16px);
    text-decoration: none;
    color: #5A5A5A;
    font-size: clamp(14px, 1.1vw, 16px);
    transition: color 0.3s ease;
}

.p-staffDetailSection__navLink:hover {
    color: #65A373;
}

.p-staffDetailSection__navLink--prev {
    flex-direction: row;
}

.p-staffDetailSection__navLink--next {
    flex-direction: row-reverse;
    margin-left: auto;
}

.p-staffDetailSection__navIcon {
    font-size: clamp(16px, 1.25vw, 20px);
}

.p-staffDetailSection__navTitle {
    max-width: 200px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}


/* レスポンシブ */

@media (max-width: 960px) {
    .p-staffSection__inner,
    .p-staffArchive__inner,
    .p-staffDetailSection__background,
    .p-staffDetailSection__container {
        width: 90%;
        min-width: auto;
    }
    .p-staffSection__list,
    .p-staffArchive__list {
        grid-template-columns: repeat(2, 1fr);
        gap: clamp(24px, 2vw, 32px);
    }
    .p-staffDetailContent__header {
        flex-direction: column;
    }
    .p-staffDetailContent__photoMain {
        width: 100%;
        max-width: 400px;
        margin: 0;
    }
}

@media (max-width: 540px) {
    .p-staffSection,
    .p-staffArchive {
        padding: clamp(40px, 4vw, 60px) 0;
    }
    .p-staffSection__inner,
    .p-staffArchive__inner {
        width: 95%;
        padding: 0 clamp(20px, 2vw, 30px);
    }
    .p-staffSection__list,
    .p-staffArchive__list {
        grid-template-columns: repeat(2, 1fr);
        gap: clamp(16px, 2vw, 24px);
    }
    .p-staffDetailSection {
        padding: clamp(20px, 4vw, 40px) 0;
    }
    .p-staffDetailSection__background {
        width: 95%;
        min-width: auto;
        border-radius: clamp(28px, 2.1vw, 40px);
        /* border-top-left-radius: clamp(50px, 3.9vw, 90px); */
        /* border-top-right-radius: clamp(50px, 3.9vw, 90px); */
        padding: clamp(20px, 3vw, 40px) 0;
    }
    .p-staffDetailSection__container {
        width: 95%;
        min-width: auto;
        padding: 0 clamp(15px, 2vw, 20px);
    }
    .p-staffDetailContent {
        padding: clamp(20px, 2.3vw, 30px) clamp(15px, 1.6vw, 20px);
        padding-top: clamp(40px, 3.9vw, 50px);
    }
    .p-staffDetailContent__header {
        margin-bottom: clamp(20px, 3.1vw, 40px);
    }
    .p-staffDetailContent__catchcopyWrapper {
        margin-bottom: clamp(20px, 3.1vw, 40px);
    }
    .p-staffDetailContent__photoSub {
        grid-template-columns: repeat(3, 1fr);
        gap: clamp(8px, 0.6vw, 12px);
    }
    .p-staffDetailSection__navigation {
        flex-direction: column;
    }
    .p-staffDetailSection__navLink--next {
        margin-left: 0;
    }
    .c-staffCard__photo {
        width: 100%;
        aspect-ratio: 5 / 4;
        overflow: hidden;
        background: #f0f0f0;
        position: relative;
    }
    .c-staffCard__body {
        padding: 10px;
        text-align: center;
    }
    .c-staffCard__licenses {
        font-size: clamp(12px, 0.94vw, 14px);
        color: #65A373;
        font-weight: 600;
        margin-bottom: 5px;
    }
    .c-staffCard__name {
        font-size: clamp(18px, 1.4vw, 24px);
        font-weight: 700;
        color: #5A5A5A;
        margin-bottom: 3px;
        line-height: 1.4;
    }
    .c-staffCard__nameKana {
        font-size: 10px;
        color: #5A5A5A;
        margin-bottom: clamp(8px, 0.6vw, 12px);
        line-height: 1.4;
    }
    .p-staffDetailContent__pin {
        position: absolute;
        top: -30px;
        left: 50%;
        transform: translateX(-50%);
        z-index: 2;
    }
}

@media (max-width: 450px) {
    /* スマホ時の横スクロール防止: ネガティブマージンを0に */
    .p-voiceArchiveList,
    .p-voiceDetailSection,
    .p-priceMenuSection,
    .p-faqSection__background,
    .p-aboutAccess,
    .p-symptomCauses {
        margin-left: 0 !important;
        margin-right: 0 !important;
        border-top-left-radius: clamp(40px, 3.1vw, 80px) !important;
        border-top-right-radius: clamp(40px, 3.1vw, 80px) !important;
    }
    .p-voiceArchiveList {
        padding-left: 15px !important;
        padding-right: 15px !important;
    }
    .p-voiceDetailSection {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
    .p-priceMenuSection {
        padding-left: 15px !important;
        padding-right: 15px !important;
    }
    .p-aboutAccess {
        padding-left: 15px !important;
        padding-right: 15px !important;
    }
    .p-symptomCauses {
        padding-left: 15px !important;
        padding-right: 15px !important;
    }
    .p-staffDetailSection {
        padding: 15px 0;
    }
    .p-staffDetailSection__background {
        width: 90%;
        min-width: auto;
        padding: 15px 0;
    }
    .p-staffDetailSection__container {
        width: 95%;
        min-width: auto;
        padding: 0 12px;
    }
    .p-staffDetailContent {
        padding: 15px 12px;
        padding-top: 35px;
    }
    .p-staffDetailContent__header {
        margin-bottom: 20px;
        gap: 15px;
    }
    .p-staffDetailContent__catchcopyWrapper {
        margin-bottom: 20px;
    }
    .p-voiceDetailContent__staffDescription {
        text-align: left;
    }
    .p-voiceDetailContent__staffInfo {
        display: flex;
        align-items: center;
        gap: clamp(20px, 1.6vw, 30px);
    }
    .p-voiceDetailContent__staffTitle {
        font-size: clamp(16px, 1.25vw, 20px);
        font-weight: 400;
        color: #5A5A5A;
        margin-bottom: clamp(15px, 1.2vw, 20px);
        display: flex;
        align-items: center;
        gap: 8px;
        justify-content: center;
    }
    .p-voiceDetailContent__staffName {
        display: flex;
        align-items: center;
        gap: clamp(12px, 1vw, 20px);
        margin-bottom: clamp(15px, 1.2vw, 20px);
        justify-content: center;
    }
    .p-voiceDetailContent__title {
        margin-bottom: 10px;
    }
    .p-voiceDetailContent__dateInfo {
        gap: 5px;
    }
}


/* ===========================================
   タブレット表示（451px〜960px）の調整
   min-widthをautoにしてはみ出しを防ぐ
   =========================================== */

@media (min-width: 451px) and (max-width: 960px) {
    /* 施術・料金ページ */
    .p-priceIntro__container {
        width: 90%;
    }
    /* フローセクション */
    .p-flowSection__inner {
        min-width: auto;
        width: 90%;
    }
    /* 院長セクション */
    .p-directorSection__container {
        min-width: auto;
        width: 90%;
    }
    /* お客様の声セクション */
    .p-voiceSection__inner {
        min-width: auto;
        width: 90%;
    }
    /* バナーセクション */
    .p-bannerSection__inner {
        min-width: auto;
        width: 90%;
    }
    /* SNSセクション */
    .p-snsSection__inner {
        min-width: auto;
        width: 90%;
    }
    /* アーカイブリスト */
    .p-voiceArchiveList__grid {
        min-width: auto;
        width: 90%;
    }
    /* お客様の声詳細セクション */
    .p-voiceDetailSection__container {
        min-width: auto;
        width: 90%;
    }
    /* アクセスセクション */
    .p-aboutAccess__container {
        min-width: auto;
        width: 90%;
    }
    /* 初めての方ページ */
    .p-firstFlow__container {
        min-width: auto;
        width: 90%;
    }
    .p-firstComparison__container {
        min-width: auto;
        width: 90%;
    }
    .p-firstPolicy__container {
        min-width: auto;
        width: 90%;
    }
    /* お問い合わせセクション */
    .p-contactSection__container {
        min-width: auto;
        width: 90%;
    }
    .p-contactSection__header {
        min-width: auto;
        width: 90%;
    }
    /* メニュー詳細ページ */
    .p-singleMenuSection__container {
        min-width: auto;
        width: 90%;
    }
    .p-singleMenuFaq__container {
        min-width: auto;
        width: 90%;
    }
    .p-singleMenuRelated__container {
        min-width: auto;
        width: 90%;
    }
    /* スタッフセクション */
    .p-staffSection__inner {
        min-width: auto;
        width: 90%;
    }
    .p-staffArchive__inner {
        min-width: auto;
        width: 90%;
    }
    .p-staffDetailSection__background {
        min-width: auto;
        width: 90%;
    }
    .p-staffDetailSection__container {
        min-width: auto;
        width: 90%;
    }
}

@media (max-width: 540px) {
    .p-singleMenuSection__container,
    .p-singleMenuFaq__container,
    .p-singleMenuRelated__container {
        width: 95%;
        padding: 0 20px;
    }
    .p-singleMenuSection__inner {
        padding: 20px;
    }
    .p-singleMenuSection__title {
        font-size: clamp(24px, 5vw, 32px);
        margin-bottom: clamp(20px, 4vw, 20px);
        padding: 0.2em 0.4em;
        border-left: solid 1.5em #65A373;
    }
    .p-singleMenuSection__title .fa-clipboard {
        left: -0.75em;
        font-size: 0.7em;
        transform: translate(-50%, -50%);
    }
    .p-singleMenuSection__price {
        gap: 8px;
    }
    .p-singleMenuSection__recommendedItem {
        flex-direction: row;
        align-items: center;
    }
}