@charset "UTF-8";
/*
 * とも鍼灸整骨院　追加ページ共通スタイル  |  contents.css
 * 整理版 2026-10-24  （従来CSSを保持／CTA・LINEの優先順位を修正）
 *
 * 【目次・修正する場所】
 * 01. 既存ページ共通の基本部品       見出し・本文・料金・予約ボタン
 * 02. 共通の微調整・補助部品       フォント・リンク・LINE予約
 * 03. 自律神経ページの追加部品     動画2本・料金3区分・クーポン・口コミ・FAQ
 * 04. サイトの外枠補助             ヘッダー／サイドバー／フッター／画面幅
 * 05. 美容・リラクゼーション用     .tomo-page--beauty  （ドライヘッドスパ）
 * 06. 動画の共通部品               YouTube 16:9 / Shorts 9:16
 * 07. クーポン・口コミ・FAQ共通部品
 * 08. クーポン画像の拡大表示       dialog関連
 * 09. 料金カードの斜めリボン       SVG表示と折り返し
 *
 * ● ボタン色や文字は 01「.jiritsu-cta-links a」で調整すること。
 * ● ドライヘッドスパの見た目は .tomo-page--beauty 内に限定。
 * ● css/jiritsu.css と二重に読み込まない。
 * ● 既存の reset/style/smartphone/slidebars/lightbox より後に読み込む。
 * ● 定義済みのセレクタをさらに末尾に追加するのではなく、該当箇所を編集する。
 */

/* ==================================================================
 * 01｜ページ共通の基本部品：見出し・料金・お問い合わせ
 * ================================================================== */

#jiritsu-page,
#content .tomo-page {
    color: #333;
    padding-bottom: 30px;
}

#jiritsu-page .jiritsu-page-title,
#content .tomo-page .tomo-page-title {
    margin-bottom: 0;
}

#jiritsu-page .jiritsu-heading-line,
#content .tomo-page .tomo-heading-line {
    width: 100%;
    height: 8px;
    background: #8fc34b;
}

#jiritsu-page .jiritsu-page-title h2,
#content .tomo-page .tomo-page-title h2 {
    margin: 0;
    padding: 15px 20px 16px;
    border: 1px solid #dce8cb;
    border-top: 0;
    background: #f7faef;
    color: #3d6128;
    font-size: 24px;
    line-height: 1.45;
}

#jiritsu-page .jiritsu-intro,
#content .tomo-page .tomo-intro {
    padding: 28px 24px;
    background: #fff;
}

#jiritsu-page .jiritsu-lead,
#content .tomo-page .tomo-lead {
    color: #3d6128;
    font-size: 18px;
    font-weight: bold;
}

#jiritsu-page p,
#content .tomo-page p {
    margin: 0 0 15px;
    font-size: 15px;
    line-height: 1.9;
}

#jiritsu-page .jiritsu-section,
#content .tomo-page .tomo-section {
    margin-top: 26px;
    padding: 0 20px 30px;
    border-bottom: 1px solid #e7e7e7;
}

#jiritsu-page .jiritsu-section-first,
#content .tomo-page .tomo-section-first {
    margin-top: 0;
}

#jiritsu-page .jiritsu-section-title,
#content .tomo-page .tomo-section-title {
    margin: 0 -20px 22px;
    padding: 12px 16px 12px 18px;
    border-left: 7px solid #8fc34b;
    background: #f4f8ed;
    color: #3d6128;
    font-size: 21px;
    line-height: 1.5;
}

#jiritsu-page .jiritsu-check-list,
#jiritsu-page .jiritsu-support-list,
#content .tomo-page .tomo-list {
    margin: 0 0 22px;
    padding: 8px 20px;
    border: 1px solid #dce8cb;
    background: #fbfcf8;
    list-style: none;
}

#jiritsu-page .jiritsu-check-list li,
#jiritsu-page .jiritsu-support-list li,
#content .tomo-page .tomo-list li {
    position: relative;
    margin: 0;
    padding: 10px 8px 10px 30px;
    border-bottom: 1px dotted #c8d6b7;
    font-size: 15px;
    line-height: 1.65;
}

#jiritsu-page .jiritsu-check-list li:last-child,
#jiritsu-page .jiritsu-support-list li:last-child,
#content .tomo-page .tomo-list li:last-child {
    border-bottom: 0;
}

#jiritsu-page .jiritsu-check-list li:before,
#jiritsu-page .jiritsu-support-list li:before,
#content .tomo-page .tomo-list li:before {
    position: absolute;
    top: 10px;
    left: 5px;
    color: #78ae39;
    content: "●";
    font-size: 13px;
}

#jiritsu-page .jiritsu-image,
#content .tomo-page .tomo-image {
    margin: 23px 0 0;
    text-align: center;
}

#jiritsu-page .jiritsu-image img,
#content .tomo-page .tomo-image img {
    display: block;
    width: 100%;
    max-width: 620px;
    height: auto;
    margin: 0 auto;
    border-radius: 3px;
}

#jiritsu-page .jiritsu-medical-note,
#jiritsu-page .jiritsu-caution,
#content .tomo-page .tomo-note {
    margin-top: 22px;
    padding: 16px 18px;
    border: 1px solid #e6d8b5;
    background: #fffaf0;
}

#jiritsu-page .jiritsu-medical-note p,
#jiritsu-page .jiritsu-caution p,
#content .tomo-page .tomo-note p {
    margin-bottom: 7px;
    font-size: 14px;
}

#jiritsu-page .jiritsu-medical-note p:last-child,
#jiritsu-page .jiritsu-caution p:last-child,
#content .tomo-page .tomo-note p:last-child {
    margin-bottom: 0;
}

#jiritsu-page .jiritsu-cause-list,
#content .tomo-page .tomo-card-list {
    margin-top: 4px;
}

#jiritsu-page .jiritsu-cause-item,
#content .tomo-page .tomo-card {
    margin-bottom: 18px;
    padding: 18px 18px 2px;
    border: 1px solid #e2e8d9;
    background: #fff;
}

#jiritsu-page .jiritsu-cause-item h4,
#content .tomo-page .tomo-card h4 {
    margin: 0 0 10px;
    color: #3d6128;
    font-size: 17px;
    line-height: 1.5;
}

#jiritsu-page .jiritsu-cause-item h4 span,
#content .tomo-page .tomo-card h4 span {
    display: inline-block;
    width: 26px;
    height: 26px;
    margin-right: 9px;
    border-radius: 50%;
    background: #8fc34b;
    color: #fff;
    font-size: 15px;
    line-height: 26px;
    text-align: center;
    vertical-align: 1px;
}

#jiritsu-page .jiritsu-price-block,
#content .tomo-page .tomo-price-block {
    margin-bottom: 16px;
    padding: 18px 20px;
    border: 1px solid #dce8cb;
    background: #fff;
}

#jiritsu-page .jiritsu-price-block h4,
#content .tomo-page .tomo-price-block h4 {
    margin: 0 0 13px;
    padding-bottom: 9px;
    border-bottom: 2px solid #a8cf72;
    color: #3d6128;
    font-size: 18px;
}

#jiritsu-page .jiritsu-price-list,
#content .tomo-page .tomo-price-list {
    overflow: hidden;
    margin: 0;
    font-size: 16px;
}

#jiritsu-page .jiritsu-price-list dt,
#jiritsu-page .jiritsu-price-list dd,
#content .tomo-page .tomo-price-list dt,
#content .tomo-page .tomo-price-list dd {
    box-sizing: border-box;
    float: left;
    width: 50%;
    margin: 0;
    padding: 8px 5px;
    border-bottom: 1px dotted #d8d8d8;
}

#jiritsu-page .jiritsu-price-list dd,
#content .tomo-page .tomo-price-list dd {
    color: #c76736;
    font-weight: bold;
    text-align: right;
}

#jiritsu-page .jiritsu-price-main,
#content .tomo-page .tomo-price-main {
    margin-bottom: 7px;
    color: #c76736;
    font-size: 22px !important;
    font-weight: bold;
    text-align: center;
}

#jiritsu-page .jiritsu-set-name,
#content .tomo-page .tomo-set-name {
    margin-bottom: 5px;
    font-weight: bold;
    text-align: center;
}

#jiritsu-page .jiritsu-price-note,
#jiritsu-page .jiritsu-price-footnote,
#content .tomo-page .tomo-price-note,
#content .tomo-page .tomo-price-footnote {
    font-size: 13px;
    text-align: center;
}

#jiritsu-page .jiritsu-price-footnote,
#content .tomo-page .tomo-price-footnote {
    margin-top: 8px;
}

#jiritsu-page .jiritsu-cta,
#content .tomo-page .tomo-reservation {
    margin: 30px 20px 0;
    padding: 24px 20px;
    border: 2px solid #8fc34b;
    background: #f7faef;
    text-align: center;
}

#jiritsu-page .jiritsu-cta .jiritsu-cta-title,
#content .tomo-page .tomo-reservation .tomo-reservation-title {
    margin-bottom: 8px;
    color: #3d6128;
    font-size: 18px;
    font-weight: bold;
}

#jiritsu-page .jiritsu-cta-links,
#content .tomo-page .tomo-reservation-links {
    margin-top: 16px;
    text-align: center;
}

/* 自律神経ページの電話・アクセスボタン：共通リンク指定より優先させる。
 * ここが本来の設定箇所。末尾への上書き追記は不要。
 */
#content #jiritsu-page .jiritsu-cta-links a,
#content .tomo-page .tomo-reservation-links a {
    display: inline-block;
    box-sizing: border-box;
    min-width: 245px;
    margin: 5px 4px;
    padding: 13px 16px;
    color: #fff;
    font-size: 16px;
    font-weight: bold;
    line-height: 1.4;
    text-decoration: none;
}

#jiritsu-page .jiritsu-cta-links .jiritsu-tel,
#content .tomo-page .tomo-reservation-links .tomo-tel {
    background: #d67b45;
}

#jiritsu-page .jiritsu-cta-links .jiritsu-access,
#content .tomo-page .tomo-reservation-links .tomo-access {
    background: #6e9f37;
}

#jiritsu-page .jiritsu-cta-links a:hover,
#jiritsu-page .jiritsu-cta-links a:focus,
#content .tomo-page .tomo-reservation-links a:hover,
#content .tomo-page .tomo-reservation-links a:focus {
    opacity: 0.82;
}

#jiritsu-page .view-pc,
#content .tomo-page .tomo-view-pc {
    display: block;
}

#jiritsu-page .view-sp,
#content .tomo-page .tomo-view-sp {
    display: none;
}

#jiritsu-page .jiritsu-line-reservation,
#content .tomo-page .tomo-line-reservation {
    margin-top: 22px;
    padding-top: 20px;
    border-top: 1px solid #cdddb7;
}

#jiritsu-page .jiritsu-line-reservation .jiritsu-line-title,
#content .tomo-page .tomo-line-reservation .tomo-line-title {
    margin-bottom: 8px;
    color: #227a3b;
    font-size: 18px;
    font-weight: bold;
}

#jiritsu-page .jiritsu-line-pc,
#content .tomo-page .tomo-line-row {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 24px;
    text-align: left;
}

#jiritsu-page .jiritsu-line-pc-copy,
#content .tomo-page .tomo-line-copy {
    max-width: 280px;
}

#jiritsu-page .jiritsu-line-pc-copy p:last-child,
#content .tomo-page .tomo-line-copy p:last-child {
    margin-bottom: 0;
    font-size: 14px;
    line-height: 1.7;
}

#jiritsu-page .jiritsu-line-pc img,
#content .tomo-page .tomo-line-row img {
    display: block;
    width: 165px;
    max-width: 100%;
    height: auto;
    margin: 0;
    border: 1px solid #d7d7d7;
    background: #fff;
}

#jiritsu-page .jiritsu-line-sp .jiritsu-line-title,
#content .tomo-page .tomo-line-mobile .tomo-line-title {
    margin-bottom: 12px;
}

/* モバイルLINE予約：共通リンク指定よりボタン専用の白文字を優先する。 */
#content #jiritsu-page .jiritsu-line-sp a,
#content .tomo-page .tomo-line-mobile a {
    display: block;
    box-sizing: border-box;
    width: 100%;
    padding: 15px 16px;
    border-radius: 4px;
    background: #06c755;
    color: #fff;
    font-size: 17px;
    font-weight: bold;
    line-height: 1.4;
    text-decoration: none;
}

#jiritsu-page .jiritsu-line-sp a:hover,
#jiritsu-page .jiritsu-line-sp a:focus,
#content .tomo-page .tomo-line-mobile a:hover,
#content .tomo-page .tomo-line-mobile a:focus {
    opacity: 0.82;
}

@media screen and (max-width: 768px) {
#jiritsu-page .view-pc,
#content .tomo-page .tomo-view-pc {
        display: none !important;
    }

#jiritsu-page .view-sp,
#content .tomo-page .tomo-view-sp {
        display: block !important;
    }
}

@media screen and (max-width: 640px) {
#jiritsu-page,
#content .tomo-page {
        padding-bottom: 20px;
    }

#jiritsu-page .jiritsu-heading-line,
#content .tomo-page .tomo-heading-line {
        height: 6px;
    }

#jiritsu-page .jiritsu-page-title h2,
#content .tomo-page .tomo-page-title h2 {
        padding: 13px 14px 14px;
        font-size: 21px;
    }

#jiritsu-page .jiritsu-intro,
#content .tomo-page .tomo-intro {
        padding: 22px 15px;
    }

#jiritsu-page .jiritsu-lead,
#content .tomo-page .tomo-lead {
        font-size: 17px;
    }

#jiritsu-page p,
#content .tomo-page p {
        font-size: 15px;
        line-height: 1.8;
    }

#jiritsu-page .jiritsu-section,
#content .tomo-page .tomo-section {
        margin-top: 22px;
        padding: 0 15px 25px;
    }

#jiritsu-page .jiritsu-section-title,
#content .tomo-page .tomo-section-title {
        margin: 0 -15px 18px;
        padding: 10px 12px;
        border-left-width: 6px;
        font-size: 19px;
    }

#jiritsu-page .jiritsu-check-list,
#jiritsu-page .jiritsu-support-list,
#content .tomo-page .tomo-list {
        padding: 5px 10px;
    }

#jiritsu-page .jiritsu-check-list li,
#jiritsu-page .jiritsu-support-list li,
#content .tomo-page .tomo-list li {
        padding-left: 27px;
    }

#jiritsu-page .jiritsu-cause-item,
#content .tomo-page .tomo-card {
        padding: 15px 14px 1px;
    }

#jiritsu-page .jiritsu-cause-item h4,
#content .tomo-page .tomo-card h4 {
        font-size: 16px;
    }

#jiritsu-page .jiritsu-price-block,
#content .tomo-page .tomo-price-block {
        padding: 16px 14px;
    }

#jiritsu-page .jiritsu-cta,
#content .tomo-page .tomo-reservation {
        margin: 25px 15px 0;
        padding: 20px 14px;
    }

#jiritsu-page .jiritsu-cta .jiritsu-cta-title,
#content .tomo-page .tomo-reservation .tomo-reservation-title {
        font-size: 17px;
    }

#content #jiritsu-page .jiritsu-cta-links a,
#content .tomo-page .tomo-reservation-links a {
        display: block;
        width: 100%;
        min-width: 0;
        margin: 8px 0 0;
    }

#jiritsu-page .jiritsu-line-reservation,
#content .tomo-page .tomo-line-reservation {
        margin-top: 20px;
        padding-top: 18px;
    }
}

/* ===== 02｜共通微調整・補助部品 =====
 * 見出し・料金・お問い合わせは jiritsu.css の値を基準に統一。
 * .tomo-* の部品だけに適用し、サイトの外枠は変更しない。
 */
#content .tomo-page,
#content .tomo-page *,
#content .tomo-page *::before,
#content .tomo-page *::after {
    box-sizing: border-box;
}
#content .tomo-page {
    width: 100%;
    min-width: 0;
    overflow-wrap: anywhere;
}
/* 元ページの h3 / h4 は reset.css による通常の太さ。 */
#content .tomo-page .tomo-page-title h2 {
    font-weight: bold;
    width: auto;
    height: auto;
}
#content .tomo-page .tomo-section-title {
    font-weight: normal;
    border-top: 0;
    border-right: 0;
    border-bottom: 0;
    width: auto;
    height: auto;
}
#content .tomo-page .tomo-price-block h4,
#content .tomo-page .tomo-card h4 {
    font-weight: normal;
    background: none;
    width: auto;
    height: auto;
}
#content .tomo-page a {
    color: #3d6128;
    font-size: inherit;
    text-decoration: underline;
    text-underline-offset: 3px;
}
#content .tomo-page a:focus-visible {
    outline: 3px solid #3d6128;
    outline-offset: 4px;
}
#content .tomo-page .tomo-image--first {
    margin: 0 0 24px;
}
#content .tomo-page .tomo-image img {
    border-radius: 0;
}
#content .tomo-page .tomo-list--literal li {
    padding-left: 6px;
    text-indent: 0;
}
#content .tomo-page .tomo-list--literal li::before {
    content: none;
}
#content .tomo-page .tomo-price-footnote p {
    font-size: 13px;
    text-align: center;
}
#content .tomo-page .tomo-reservation .tomo-reservation-title {
    /* h3 で使用しても元ページの CTA 見出しと同じ見た目 */
    margin-top: 0;
    padding: 0;
    border: 0;
    background: none;
    line-height: 1.9;
}
#content .tomo-page .tomo-contact-details p {
    margin-bottom: 0;
    font-size: 13px;
    line-height: 1.7;
}
#content .tomo-page .tomo-reservation-links a,
#content .tomo-page .tomo-reservation-links a:visited {
    color: #fff;
    text-decoration: none;
}
#content .tomo-page .tomo-line-copy {
    min-width: 0;
}
#content .tomo-page .tomo-line-copy .tomo-line-instruction {
    margin-bottom: 0;
    font-size: 14px;
    line-height: 1.7;
}
#content .tomo-page .tomo-line-row .tomo-line-qr {
    flex: 0 0 165px;
    text-decoration: none;
}
/* PCは元原稿のURLを小さく残し、スマホは同じリンクを予約ボタンとして表示。 */
#content .tomo-page .tomo-line-link,
#content .tomo-page .tomo-line-link:visited {
    display: inline-block;
    margin-top: 8px;
    color: #227a3b;
    font-size: 13px;
    line-height: 1.7;
}
#content .tomo-page .tomo-line-link .tomo-view-sp {
    font-weight: inherit;
}
@media screen and (max-width: 768px) {
    #content .tomo-page .tomo-line-row {
        display: block;
        text-align: center;
    }
    #content .tomo-page .tomo-line-copy {
        width: 100%;
        max-width: none;
    }
    #content .tomo-page .tomo-line-reservation .tomo-line-title {
        margin-bottom: 12px;
    }
    #content .tomo-page .tomo-line-link,
    #content .tomo-page .tomo-line-link:visited {
        display: block;
        box-sizing: border-box;
        width: 100%;
        margin: 0;
        padding: 15px 16px;
        border-radius: 4px;
        background: #06c755;
        color: #fff;
        font-size: 17px;
        font-weight: bold;
        line-height: 1.4;
        text-decoration: none;
        text-align: center;
    }
    #content .tomo-page .tomo-line-link:hover,
    #content .tomo-page .tomo-line-link:focus {
        opacity: 0.82;
    }
}
@media screen and (max-width: 640px) {
    #content .tomo-page .tomo-reservation .tomo-reservation-title {
        line-height: 1.8;
    }
}


/* ===============================================================
 * 03｜自律神経ページ：動画・料金・クーポン・患者様の声・FAQ （2026-10-24）
 * 共通の動画・口コミ・FAQ・クーポン構造を再利用。
 * #jiritsu-page.tomo-page--jiritsu にスコープを限定。
 * ドライヘッドスパの色や部品は変更しない。
 * =============================================================== */
#content #jiritsu-page.tomo-page--jiritsu {
    --tomo-jiritsu-dark: #3d6128;
    --tomo-jiritsu-green: #79ad43;
    --tomo-jiritsu-border: #d3e5c0;
    --tomo-jiritsu-pale: #f5f9ef;
    --tomo-beauty-serif: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", "MS PMincho", serif;
}
#content #jiritsu-page.tomo-page--jiritsu .jiritsu-videos {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 18px;
    row-gap: 25px;
    margin-top: 10px;
}
#content #jiritsu-page.tomo-page--jiritsu .jiritsu-videos > .tomo-video { max-width: 265px; }
#content #jiritsu-page.tomo-page--jiritsu .jiritsu-video-title {
    margin: 0 0 10px;
    color: #3d6128;
    font-size: 17px;
    font-weight: bold;
    line-height: 1.5;
    text-align: center;
}
#content #jiritsu-page.tomo-page--jiritsu .tomo-video-frame {
    border: 1px solid #a9ce84;
    padding: 5px;
    background: #f1f7e9;
    box-shadow: 0 5px 15px rgba(52, 95, 36, .09);
}
#content #jiritsu-page.tomo-page--jiritsu .tomo-video-link,
#content #jiritsu-page.tomo-page--jiritsu .tomo-video-link:visited { color: #3d6128; }
#content #jiritsu-page.tomo-page--jiritsu .jiritsu-price-list--areas {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    margin: 0 0 12px;
    column-gap: 8px;
}
#content #jiritsu-page.tomo-page--jiritsu .jiritsu-price-list--areas dt,
#content #jiritsu-page.tomo-page--jiritsu .jiritsu-price-list--areas dd {
    display: block;
    float: none;
    clear: none;
    width: auto;
    min-width: 0;
    margin: 0;
    padding: 11px 4px;
    border-bottom: 1px dotted #d5dfcb;
    line-height: 1.65;
    font-size: 14px;
}
#content #jiritsu-page.tomo-page--jiritsu .jiritsu-price-list--areas dd {
    color: #c76736;
    font-weight: bold;
    font-size: 16px;
    white-space: nowrap;
    text-align: right;
}
#content #jiritsu-page.tomo-page--jiritsu .jiritsu-coupon-section {
    padding-top: 2px;
    padding-bottom: 28px;
}
#content #jiritsu-page.tomo-page--jiritsu .tomo-coupon-artwork { margin-top: 15px; }
#content #jiritsu-page.tomo-page--jiritsu .tomo-coupon-artwork-caption { color: #548037; }
#content #jiritsu-page.tomo-page--jiritsu .tomo-coupon-artwork-open:focus-visible {
    outline-color: #538335;
}
#content #jiritsu-page.tomo-page--jiritsu .tomo-coupon-dialog {
    border-color: #9cc878;
    background: #f9fcf6;
    color: #3d6128;
}
#content #jiritsu-page.tomo-page--jiritsu .tomo-coupon-dialog-bar p { color: #3d6128; }
#content #jiritsu-page.tomo-page--jiritsu .tomo-coupon-dialog-close {
    border-color: #9cc878;
    background: #edf5e6;
    color: #3d6128;
}
#content #jiritsu-page.tomo-page--jiritsu .tomo-coupon-dialog-close:focus-visible,
#content #jiritsu-page.tomo-page--jiritsu .tomo-coupon-dialog-scroll:focus-visible {
    outline-color: #538335;
}
#content #jiritsu-page.tomo-page--jiritsu .tomo-reviews--elegant .tomo-review {
    border-color: #b9d59f;
    background: linear-gradient(120deg, #fff, #f4f9ee);
    box-shadow: inset 0 0 0 3px #fff, inset 0 0 0 4px #dcebcf;
}
#content #jiritsu-page.tomo-page--jiritsu .tomo-reviews--elegant .tomo-review-media {
    border-color: #9fc680;
    background: radial-gradient(circle at 35% 20%, #edf7e5, #d8eac9);
    color: #3d6128;
}
#content #jiritsu-page.tomo-page--jiritsu .tomo-reviews--elegant .tomo-review-name {
    color: #3d6128;
}
#content #jiritsu-page.tomo-page--jiritsu .tomo-reviews--elegant .tomo-review-reply {
    border-top-color: #bdd8a5;
}
#content #jiritsu-page.tomo-page--jiritsu .tomo-reviews--elegant .tomo-review-reply .tomo-reply-heading {
    color: #4b7833;
}
#content #jiritsu-page.tomo-page--jiritsu .tomo-reviews--elegant .tomo-reply-message {
    background: linear-gradient(110deg, #eaf5e3, #f5faef);
}
#content #jiritsu-page.tomo-page--jiritsu .tomo-reviews--elegant .tomo-reply-message::before {
    border-right-color: #eaf5e3;
}
#content #jiritsu-page.tomo-page--jiritsu .tomo-reviews--elegant .tomo-review-text p,
#content #jiritsu-page.tomo-page--jiritsu .tomo-reviews--elegant .tomo-reply-message p {
    color: #3e5135;
}
#content #jiritsu-page.tomo-page--jiritsu .tomo-faq--elegant .tomo-faq-item {
    border-color: #bed6a8;
    background: linear-gradient(110deg, #fff, #f7fbf2);
}
#content #jiritsu-page.tomo-page--jiritsu .tomo-faq--elegant .tomo-faq-item > summary {
    color: #3d6128;
}
#content #jiritsu-page.tomo-page--jiritsu .tomo-faq--elegant .tomo-faq-item > summary:hover {
    background: #edf6e5;
}
#content #jiritsu-page.tomo-page--jiritsu .tomo-faq--elegant .tomo-faq-number {
    color: #3d6128;
    background: linear-gradient(120deg, #deebd0, #f1f8e9);
}
#content #jiritsu-page.tomo-page--jiritsu .tomo-faq--elegant .tomo-faq-item[open] .tomo-faq-question {
    border-bottom-color: #c9dfb6;
}
#content #jiritsu-page.tomo-page--jiritsu .tomo-faq--elegant .tomo-faq-toggle {
    border-color: #4c7732;
}
#content #jiritsu-page.tomo-page--jiritsu .tomo-faq--elegant .tomo-faq-answer-label {
    background: linear-gradient(115deg, #78a94c, #3e692e);
    color: white;
}
#content #jiritsu-page.tomo-page--jiritsu .tomo-faq--elegant .tomo-faq-answer p { color: #34472d; }
#content #jiritsu-page.tomo-page--jiritsu .tomo-faq--elegant .tomo-faq-question { overflow-wrap: anywhere; }
@media screen and (max-width: 640px) {
    #content #jiritsu-page.tomo-page--jiritsu .jiritsu-videos {
        grid-template-columns: minmax(0, 1fr);
        gap: 26px;
    }
    #content #jiritsu-page.tomo-page--jiritsu .jiritsu-videos > .tomo-video {
        max-width: 295px;
        margin: 0 auto;
    }
    #content #jiritsu-page.tomo-page--jiritsu .jiritsu-price-list--areas dt,
    #content #jiritsu-page.tomo-page--jiritsu .jiritsu-price-list--areas dd {
        font-size: 13px;
        padding: 10px 3px;
    }
    #content #jiritsu-page.tomo-page--jiritsu .jiritsu-price-list--areas dd { font-size: 15px; }
    #content #jiritsu-page.tomo-page--jiritsu .tomo-reviews--elegant .tomo-reply-message::before {
        border-right-color: transparent;
        border-bottom-color: #eaf5e3;
    }
}

/* 自律神経失調症：クーポン画像の上に配置する初診料・クーポン案内。共通部品を再利用。 */
#content #jiritsu-page.tomo-page--jiritsu .jiritsu-coupon-section .tomo-price-footnote {
    box-sizing: border-box;
    margin: 0 0 19px;
    padding: 21px 24px 23px;
    border-top: 1px solid #d9c9aa;
    background: #f5f0e7;
    color: #4d4036;
    text-align: left;
    font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", "Noto Serif CJK JP", serif;
}
#content #jiritsu-page.tomo-page--jiritsu .jiritsu-coupon-section .tomo-price-footnote p {
    margin: 0 0 14px;
    color: inherit;
    font-size: 14px;
    line-height: 1.95;
    text-align: left;
    letter-spacing: .02em;
}
#content #jiritsu-page.tomo-page--jiritsu .jiritsu-coupon-section .tomo-price-footnote p:last-child {
    margin-bottom: 0;
}
#content #jiritsu-page.tomo-page--jiritsu .jiritsu-coupon-section .tomo-price-footnote .tomo-coupon-notice {
    margin-top: 18px;
    padding: 0;
    border: 0;
}
#content #jiritsu-page.tomo-page--jiritsu .jiritsu-coupon-section .tomo-price-footnote .tomo-coupon-notice strong {
    color: #902a24;
    font-weight: bold;
    font-size: 19px;
    vertical-align: baseline;
}
@media screen and (max-width: 640px) {
    #content #jiritsu-page.tomo-page--jiritsu .jiritsu-coupon-section .tomo-price-footnote {
        padding: 18px 18px 20px;
    }
    #content #jiritsu-page.tomo-page--jiritsu .jiritsu-coupon-section .tomo-price-footnote p {
        font-size: 13px;
    }
    #content #jiritsu-page.tomo-page--jiritsu .jiritsu-coupon-section .tomo-price-footnote .tomo-coupon-notice strong {
        font-size: 18px;
    }
}


/* ===== 04｜サイト外枠の補助：ヘッダー・サイドバー・フッター =====
 * body.tomo-site-shell を付けたページだけに適用。
 * 既存の style.css / smartphone.css を書き換えず、重複ID・狭い画面を補正。
 * 本文の .tomo-page 部品と、既存 #jiritsu-page の表示は変更しない。
 */
body.tomo-site-shell #header2 .sb-toggle-right {
    border: 0;
    background: transparent;
    cursor: pointer;
    font: inherit;
}
body.tomo-site-shell #header2 .sb-toggle-right:focus-visible {
    outline: 3px solid #3d6128;
    outline-offset: -3px;
}
body.tomo-site-shell #side-nav .side-menu li.tomo-menu-wide {
    box-sizing: border-box;
    width: 100%;
}
body.tomo-site-shell .tomo-site-contact-image {
    float: right;
    width: 349px;
    height: 67px;
}
/* 641～1020pxでは、既存の固定1000px幅ではなく1カラムに切り替える。 */
@media screen and (min-width: 641px) and (max-width: 1020px) {
    body.tomo-site-shell {
        min-width: 0;
    }
    body.tomo-site-shell #wrap {
        box-sizing: border-box;
        width: 100%;
        max-width: 680px;
        padding: 100px 10px 0;
    }
    body.tomo-site-shell #sb-site.main_content {
        padding-top: 0;
    }
    body.tomo-site-shell #sb-site > h1 {
        box-sizing: border-box;
        width: 100%;
        height: auto;
        color: #00a460;
        background: #fff;
    }
    body.tomo-site-shell #header,
    body.tomo-site-shell #sub-nav,
    body.tomo-site-shell .view_pc {
        display: none;
    }
    body.tomo-site-shell .view_sp {
        display: block;
    }
    body.tomo-site-shell #header2 {
        display: block;
        box-sizing: border-box;
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        overflow: hidden;
        background-color: rgba(255, 255, 255, 0.5);
        border-bottom: 2px solid rgba(0, 164, 96, 0.5);
        z-index: 9999;
    }
    body.tomo-site-shell #header2 * {
        box-sizing: border-box;
    }
    body.tomo-site-shell .head-logo-sp {
        float: left;
        width: 182px;
        height: auto;
        padding-top: 2px;
    }
    body.tomo-site-shell #header2 .sb-toggle-right {
        float: right;
        width: 55px;
        height: 35px;
        padding: 7px 15px 0 5px;
    }
    body.tomo-site-shell .head-tel-sp {
        float: right;
        width: 35px;
        height: 35px;
        padding-top: 7px;
    }
    body.tomo-site-shell .head-text-sp {
        clear: both;
        width: 100%;
        padding: 4px 5px 0;
        text-align: center;
    }
    body.tomo-site-shell #header2 img {
        display: block;
        width: 100%;
        height: auto;
    }
    body.tomo-site-shell .sb-slidebar ul li {
        box-sizing: border-box;
        width: 100%;
        padding: 10px;
        margin-top: 1px;
        border-bottom: 1px solid #00a460;
        background: #fafafa;
    }
    body.tomo-site-shell #content {
        float: none;
        width: 100%;
    }
    body.tomo-site-shell #side-nav {
        width: 320px;
        max-width: 100%;
        margin: 24px auto 0;
    }
    body.tomo-site-shell #footer-contact,
    body.tomo-site-shell #footer,
    body.tomo-site-shell #footer-map,
    body.tomo-site-shell #footer-content,
    body.tomo-site-shell .contact-warp,
    body.tomo-site-shell .consultation,
    body.tomo-site-shell .contact-text,
    body.tomo-site-shell .cons-inbox,
    body.tomo-site-shell .in_box2,
    body.tomo-site-shell .bar-f-contact,
    body.tomo-site-shell .bar-f-content,
    body.tomo-site-shell .bar-consultation {
        box-sizing: border-box;
        float: none;
        width: 100%;
        height: auto;
    }
    body.tomo-site-shell #footer-map {
        margin: 0 0 20px;
    }
    body.tomo-site-shell .contact-text {
        margin-top: 20px;
    }
    body.tomo-site-shell #footer-map > img {
        display: block;
        margin: 0 auto;
    }
    body.tomo-site-shell #footer-contact img {
        max-width: 100%;
        height: auto;
    }
    body.tomo-site-shell .bar-f-contact img,
    body.tomo-site-shell .bar-f-content img,
    body.tomo-site-shell .bar-consultation img,
    body.tomo-site-shell .in_box2 img {
        width: 100%;
    }
    body.tomo-site-shell .h_green.view_sp {
        display: block;
    }
    body.tomo-site-shell .tomo-site-contact-image {
        float: none;
        width: 349px;
        max-width: 100%;
        height: auto;
        margin: 20px auto;
    }
    body.tomo-site-shell #footer .menu_ul,
    body.tomo-site-shell #footer h2,
    body.tomo-site-shell #footer #footer_menu-wrap,
    body.tomo-site-shell #footer #footer_warper,
    body.tomo-site-shell #footer img {
        display: none;
    }
    body.tomo-site-shell .foot-pagetop {
        width: 100%;
        height: auto;
    }
    body.tomo-site-shell .foot-pagetop img {
        display: block;
        width: 50%;
        max-width: 250px;
        height: auto;
        margin: 0 auto 16px;
    }
    body.tomo-site-shell .copyright {
        box-sizing: border-box;
        width: 100%;
        height: auto;
    }
}
@media screen and (max-width: 640px) {
    /* #wrap の100px余白は維持し、二重だった .main_content の余白だけを解除。 */
    body.tomo-site-shell #sb-site.main_content {
        padding-top: 0;
    }
    body.tomo-site-shell #sub-nav {
        display: none;
    }
    body.tomo-site-shell .tomo-site-contact-image {
        float: none;
        width: 100%;
        height: auto;
        margin: 20px 0;
    }
}

/* ===== 05｜美容・リラクゼーション：ドライヘッドスパの配色 =====
 * 使い方：<article class="tomo-page tomo-page--beauty"> と指定。
 * 通常の .tomo-page と既存 #jiritsu-page は緑のデザインを維持します。
 * 追加ファイル・外部フォント・JavaScriptは不要。
 * 全ルールを本文内のテーマクラスに限定し、ヘッダー／サイドバー／フッターには適用しません。
 */
#content .tomo-page.tomo-page--beauty {
    --tomo-beauty-ink: #34281f;
    --tomo-beauty-brown: #513d2b;
    --tomo-beauty-gold: #b3985c;
    --tomo-beauty-gold-dark: #7b5c29;
    --tomo-beauty-gold-light: #ead5a0;
    --tomo-beauty-border: #dfd0b1;
    --tomo-beauty-paper: #fdfbf7;
    --tomo-beauty-cream: #f4edde;
    --tomo-beauty-serif: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", "Hiragino Mincho Pro", "MS PMincho", "Noto Serif CJK JP", serif;
    color: var(--tomo-beauty-ink);
    background: var(--tomo-beauty-paper);
    border: 1px solid var(--tomo-beauty-border);
    padding-bottom: 32px;
    letter-spacing: 0.035em;
}
#content .tomo-page.tomo-page--beauty p {
    color: inherit;
    line-height: 2;
    margin-bottom: 18px;
}
#content .tomo-page.tomo-page--beauty a {
    color: var(--tomo-beauty-gold-dark);
}
#content .tomo-page.tomo-page--beauty a:focus-visible {
    outline: 3px solid var(--tomo-beauty-gold-dark);
    outline-offset: 4px;
}

/* 大見出し：写真の黒・ブラウンとゴールドを引き継ぐタイトル枠 */
#content .tomo-page.tomo-page--beauty .tomo-page-title {
    position: relative;
    padding: 30px 32px 32px;
    background: radial-gradient(ellipse at 100% 0, #655037 0, transparent 58%),
                linear-gradient(125deg, #191510, #30251a 72%, #40311e);
    border-bottom: 1px solid var(--tomo-beauty-gold);
}
#content .tomo-page.tomo-page--beauty .tomo-page-title::before {
    content: "";
    position: absolute;
    inset: 9px;
    border: 1px solid rgba(234, 213, 160, 0.38);
    pointer-events: none;
}
#content .tomo-page.tomo-page--beauty .tomo-heading-line {
    width: 80px;
    height: 1px;
    margin: 0 auto 18px;
    background: linear-gradient(90deg, transparent, #ead5a0 35%, #ead5a0 65%, transparent);
}
#content .tomo-page.tomo-page--beauty .tomo-page-title h2 {
    position: relative;
    margin: 0;
    padding: 0;
    border: 0;
    background: none;
    color: #f4e5c2;
    font-family: var(--tomo-beauty-serif);
    font-size: 25px;
    font-weight: 600;
    line-height: 1.9;
    letter-spacing: 0.055em;
    text-align: center;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.24);
}

/* 導入：画像はトリミングせず、全文とともに掲載 */
#content .tomo-page.tomo-page--beauty .tomo-intro {
    padding: 32px;
    background: var(--tomo-beauty-paper);
}
#content .tomo-page.tomo-page--beauty .tomo-image--first {
    margin: -32px -32px 30px;
    border-bottom: 1px solid var(--tomo-beauty-gold);
}
#content .tomo-page.tomo-page--beauty .tomo-image img {
    max-width: none;
    height: auto;
    border-radius: 0;
}
#content .tomo-page.tomo-page--beauty .tomo-intro > p:first-of-type {
    color: var(--tomo-beauty-brown);
    font-family: var(--tomo-beauty-serif);
    font-size: 18px;
    font-weight: 600;
    line-height: 2;
}
#content .tomo-page.tomo-page--beauty .tomo-intro > p:last-child {
    margin-bottom: 0;
}
#content .tomo-page.tomo-page--beauty .tomo-lead {
    color: var(--tomo-beauty-brown);
    font-family: var(--tomo-beauty-serif);
}

/* 中見出し：シャンパン色の帯・細い金線・小さなダイヤ形の装飾 */
#content .tomo-page.tomo-page--beauty .tomo-section {
    margin: 0;
    padding: 0 32px 30px;
    border-bottom: 0;
}
#content .tomo-page.tomo-page--beauty .tomo-section-title {
    position: relative;
    margin: 0 -32px 26px;
    padding: 19px 30px 19px 52px;
    border: 0;
    border-top: 1px solid var(--tomo-beauty-border);
    border-bottom: 1px solid var(--tomo-beauty-border);
    background: linear-gradient(105deg, #ede1c6 0%, #f7f0e2 55%, #faf6ee 100%);
    color: var(--tomo-beauty-brown);
    font-family: var(--tomo-beauty-serif);
    font-size: 22px;
    font-weight: 600;
    line-height: 1.8;
    letter-spacing: 0.05em;
}
#content .tomo-page.tomo-page--beauty .tomo-section-title::before {
    content: "";
    position: absolute;
    top: 32px;
    left: 28px;
    width: 8px;
    height: 8px;
    border: 1px solid var(--tomo-beauty-gold);
    background: rgba(179, 152, 92, 0.12);
    transform: rotate(45deg);
}

/* 箇条書き：DOM順のまま左→右→次の行。スマートフォンでは1列。 */
#content .tomo-page.tomo-page--beauty .tomo-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin: 18px 0 24px;
    padding: 0;
    border: 0;
    background: transparent;
    list-style: none;
}
#content .tomo-page.tomo-page--beauty .tomo-list li {
    min-width: 0;
    margin: 0;
    padding: 15px 15px 15px 34px;
    border: 1px solid var(--tomo-beauty-border);
    background: linear-gradient(120deg, #f7f0e2, #fdfbf7);
    color: var(--tomo-beauty-brown);
    font-size: 15px;
    line-height: 1.8;
}
#content .tomo-page.tomo-page--beauty .tomo-list li:last-child {
    border-bottom: 1px solid var(--tomo-beauty-border);
}
#content .tomo-page.tomo-page--beauty .tomo-list li::before {
    content: "";
    top: 25px;
    left: 17px;
    width: 5px;
    height: 5px;
    border: 1px solid var(--tomo-beauty-gold);
    background: var(--tomo-beauty-gold);
    transform: rotate(45deg);
}
#content .tomo-page.tomo-page--beauty .tomo-list--literal {
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
    padding: 4px 20px;
    border: 1px solid var(--tomo-beauty-border);
    background: linear-gradient(115deg, #faf5eb, #fdfbf7);
}
#content .tomo-page.tomo-page--beauty .tomo-list--literal li {
    padding: 15px 2px;
    border: 0;
    border-bottom: 1px solid #e5dac4;
    background: none;
    line-height: 1.85;
}
#content .tomo-page.tomo-page--beauty .tomo-list--literal li:last-child {
    border-bottom: 0;
}
#content .tomo-page.tomo-page--beauty .tomo-list--literal li::before {
    content: none;
}

/* 小見出し・説明枠 */
#content .tomo-page.tomo-page--beauty .tomo-card-list {
    margin-top: 4px;
}
#content .tomo-page.tomo-page--beauty .tomo-card {
    margin-bottom: 16px;
    padding: 22px 24px 5px;
    border: 1px solid var(--tomo-beauty-border);
    border-left: 3px solid var(--tomo-beauty-gold);
    background: #fffdfa;
}
#content .tomo-page.tomo-page--beauty .tomo-card h4 {
    margin: 0 0 13px;
    padding: 0;
    color: var(--tomo-beauty-brown);
    font-family: var(--tomo-beauty-serif);
    font-size: 19px;
    font-weight: 600;
    line-height: 1.8;
}
#content .tomo-page.tomo-page--beauty .tomo-note {
    background: var(--tomo-beauty-cream);
    border-color: var(--tomo-beauty-border);
}

/* 料金：メニューの順番・原文・金額は変更しない */
#content .tomo-page.tomo-page--beauty .tomo-price-block {
    position: relative;
    margin-bottom: 18px;
    padding: 24px;
    border: 1px solid #cdb886;
    background: linear-gradient(135deg, #fffefa, #faf5e9);
    box-shadow: inset 0 0 0 5px #f6f0e3;
}
#content .tomo-page.tomo-page--beauty .tomo-price-block h4 {
    margin: 0 0 18px;
    padding: 0 0 14px;
    border-bottom: 1px solid #cdb886;
    color: var(--tomo-beauty-brown);
    font-family: var(--tomo-beauty-serif);
    font-size: 18px;
    font-weight: 600;
    line-height: 1.85;
}
#content .tomo-page.tomo-page--beauty .tomo-price-list dt,
#content .tomo-page.tomo-page--beauty .tomo-price-list dd {
    padding: 4px 0;
    border: 0;
    line-height: 1.8;
}
#content .tomo-page.tomo-page--beauty .tomo-price-list dd {
    color: var(--tomo-beauty-gold-dark);
    font-size: 19px;
    font-weight: bold;
}
#content .tomo-page.tomo-page--beauty .tomo-price-main {
    margin: 6px 0 0;
    color: var(--tomo-beauty-gold-dark);
    font-family: var(--tomo-beauty-serif);
    font-size: 27px;
    font-weight: 600;
    line-height: 1.65;
    letter-spacing: 0.045em;
}
#content .tomo-page.tomo-page--beauty .tomo-price-footnote {
    margin-top: 24px;
    padding: 20px;
    border-top: 1px solid var(--tomo-beauty-border);
    background: #f4ede0;
}
#content .tomo-page.tomo-page--beauty .tomo-price-footnote p {
    margin-bottom: 12px;
    color: var(--tomo-beauty-brown);
    font-size: 14px;
    line-height: 1.9;
    text-align: left;
}
#content .tomo-page.tomo-page--beauty .tomo-price-footnote p:last-child {
    margin-bottom: 0;
}

/* 予約：ダークブラウンの囲み。LINEのボタンは識別しやすい緑を維持。 */
#content .tomo-page.tomo-page--beauty .tomo-reservation {
    position: relative;
    margin: 4px 24px 0;
    padding: 32px 26px;
    border: 1px solid #ad9050;
    background: radial-gradient(ellipse at 100% 0, #59442d 0, transparent 58%),
                linear-gradient(135deg, #241e16, #34271c);
    box-shadow: inset 0 0 0 6px #2c241a, inset 0 0 0 7px rgba(226, 204, 157, 0.27);
    color: #f5eddf;
    text-align: center;
}
#content .tomo-page.tomo-page--beauty .tomo-reservation .tomo-reservation-title {
    margin: 0 0 22px;
    padding: 0 0 20px;
    border: 0;
    border-bottom: 1px solid rgba(226, 204, 157, 0.45);
    background: none;
    color: #f0ddb3;
    font-family: var(--tomo-beauty-serif);
    font-size: 24px;
    font-weight: 600;
    line-height: 1.8;
    letter-spacing: 0.07em;
}
#content .tomo-page.tomo-page--beauty .tomo-reservation > p {
    color: #f5eddf;
    font-size: 15px;
    line-height: 2;
    text-align: left;
}
#content .tomo-page.tomo-page--beauty .tomo-contact-details {
    margin-top: 20px;
    padding: 16px 0 2px;
    border-top: 1px solid rgba(226, 204, 157, 0.25);
}
#content .tomo-page.tomo-page--beauty .tomo-contact-details p {
    color: #e4d6bd;
    font-size: 13px;
    line-height: 1.95;
    margin-bottom: 0;
}
#content .tomo-page.tomo-page--beauty .tomo-reservation-links {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin: 22px 0 0;
}
#content .tomo-page.tomo-page--beauty .tomo-reservation-links a {
    display: flex;
    flex: 1 1 210px;
    align-items: center;
    justify-content: center;
    min-width: 0;
    min-height: 54px;
    margin: 0;
    padding: 14px 12px;
    border: 1px solid #d1b779;
    border-radius: 2px;
    font-size: 15px;
    font-weight: bold;
    line-height: 1.6;
    text-decoration: none;
}
#content .tomo-page.tomo-page--beauty .tomo-reservation-links .tomo-tel,
#content .tomo-page.tomo-page--beauty .tomo-reservation-links .tomo-tel:visited {
    background: linear-gradient(115deg, #d2b77a, #f0dfb3 55%, #d3b678);
    color: #342519;
    font-size: 19px;
    letter-spacing: 0.025em;
}
#content .tomo-page.tomo-page--beauty .tomo-reservation-links .tomo-access,
#content .tomo-page.tomo-page--beauty .tomo-reservation-links .tomo-access:visited {
    background: rgba(255, 244, 220, 0.045);
    color: #f4e7ca;
}
#content .tomo-page.tomo-page--beauty .tomo-reservation-links a:hover {
    opacity: 1;
    filter: brightness(1.08);
}
#content .tomo-page.tomo-page--beauty .tomo-reservation a:focus-visible {
    outline-color: #f0ddb3;
}
#content .tomo-page.tomo-page--beauty .tomo-line-reservation {
    margin-top: 28px;
    padding-top: 26px;
    border-top: 1px solid rgba(226, 204, 157, 0.4);
}
#content .tomo-page.tomo-page--beauty .tomo-line-row {
    gap: 24px;
}
#content .tomo-page.tomo-page--beauty .tomo-line-reservation .tomo-line-title {
    margin-bottom: 12px;
    color: #f0ddb3;
    font-family: var(--tomo-beauty-serif);
    font-size: 19px;
    font-weight: 600;
    line-height: 1.8;
}
#content .tomo-page.tomo-page--beauty .tomo-line-copy .tomo-line-instruction {
    color: #f5eddf;
    font-size: 13px;
    line-height: 1.9;
}
#content .tomo-page.tomo-page--beauty .tomo-line-link,
#content .tomo-page.tomo-page--beauty .tomo-line-link:visited {
    color: #f0ddb3;
}
#content .tomo-page.tomo-page--beauty .tomo-line-row .tomo-line-qr {
    padding: 6px;
    background: #fff;
    border: 1px solid #d1b779;
}
#content .tomo-page.tomo-page--beauty .tomo-line-row .tomo-line-qr img {
    width: 100%;
    height: auto;
    border: 0;
    background: #fff;
}

/* スマートフォン／小さいタブレット */
@media screen and (max-width: 768px) {
    #content .tomo-page.tomo-page--beauty .tomo-line-link,
    #content .tomo-page.tomo-page--beauty .tomo-line-link:visited {
        background: #087c43;
        color: #fff;
        border: 1px solid #7bba89;
        border-radius: 2px;
        min-height: 54px;
    }
}
@media screen and (max-width: 640px) {
    #content .tomo-page.tomo-page--beauty {
        padding-bottom: 18px;
        letter-spacing: 0.025em;
    }
    #content .tomo-page.tomo-page--beauty .tomo-page-title {
        padding: 24px 21px 26px;
    }
    #content .tomo-page.tomo-page--beauty .tomo-page-title::before {
        inset: 7px;
    }
    #content .tomo-page.tomo-page--beauty .tomo-heading-line {
        width: 58px;
        margin-bottom: 14px;
    }
    #content .tomo-page.tomo-page--beauty .tomo-page-title h2 {
        font-size: 21px;
        line-height: 1.9;
        letter-spacing: 0.025em;
        text-align: left;
    }
    #content .tomo-page.tomo-page--beauty .tomo-intro {
        padding: 24px 20px 28px;
    }
    #content .tomo-page.tomo-page--beauty .tomo-image--first {
        margin: -24px -20px 24px;
    }
    #content .tomo-page.tomo-page--beauty .tomo-intro > p:first-of-type {
        font-size: 17px;
        line-height: 1.95;
    }
    #content .tomo-page.tomo-page--beauty .tomo-section {
        padding: 0 20px 26px;
    }
    #content .tomo-page.tomo-page--beauty .tomo-section-title {
        margin: 0 -20px 22px;
        padding: 16px 18px 16px 38px;
        font-size: 19px;
        line-height: 1.85;
        letter-spacing: 0.025em;
    }
    #content .tomo-page.tomo-page--beauty .tomo-section-title::before {
        top: 29px;
        left: 18px;
        width: 7px;
        height: 7px;
    }
    #content .tomo-page.tomo-page--beauty .tomo-list {
        grid-template-columns: minmax(0, 1fr);
        gap: 8px;
    }
    #content .tomo-page.tomo-page--beauty .tomo-list li {
        padding: 13px 12px 13px 32px;
    }
    #content .tomo-page.tomo-page--beauty .tomo-list li::before {
        top: 23px;
        left: 16px;
    }
    #content .tomo-page.tomo-page--beauty .tomo-list--literal {
        gap: 0;
        padding: 3px 14px;
    }
    #content .tomo-page.tomo-page--beauty .tomo-list--literal li {
        padding: 14px 0;
    }
    #content .tomo-page.tomo-page--beauty .tomo-card {
        padding: 18px 17px 2px;
    }
    #content .tomo-page.tomo-page--beauty .tomo-card h4 {
        font-size: 17px;
    }
    #content .tomo-page.tomo-page--beauty .tomo-price-block {
        padding: 20px 18px;
    }
    #content .tomo-page.tomo-page--beauty .tomo-price-block h4 {
        font-size: 17px;
    }
    #content .tomo-page.tomo-page--beauty .tomo-price-main {
        font-size: 24px;
    }
    #content .tomo-page.tomo-page--beauty .tomo-price-footnote {
        padding: 18px 15px;
    }
    #content .tomo-page.tomo-page--beauty .tomo-reservation {
        margin: 0 12px;
        padding: 27px 19px;
    }
    #content .tomo-page.tomo-page--beauty .tomo-reservation .tomo-reservation-title {
        padding-bottom: 18px;
        font-size: 21px;
        letter-spacing: 0.015em;
    }
    #content .tomo-page.tomo-page--beauty .tomo-reservation-links {
        display: flex;
        flex-direction: column;
        gap: 12px;
    }
    #content .tomo-page.tomo-page--beauty .tomo-reservation-links a {
        flex: 0 1 auto;
        width: 100%;
    }
}

/* =========================================================
 * 06｜動画共通部品 — 横長 / 縦長のYouTube埋め込み
 * .tomo-video: 横長 16:9、.tomo-video--portrait: 縦長 9:16
 * .tomo-page--beauty の有無で既存のテーマに合わせる。
 * 動画の上に装飾を重ねず、YouTubeの操作部分を隠さない。
 * ========================================================= */
#content .tomo-page .tomo-video {
    display: block;
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
}
#content .tomo-page .tomo-video--portrait {
    max-width: 360px;
}
#content .tomo-page .tomo-video-frame {
    box-sizing: border-box;
    padding: 5px;
    border: 1px solid #cdddb7;
    background: #f7faef;
}
#content .tomo-page .tomo-video-player {
    position: relative;
    width: 100%;
    height: 0;
    padding-top: 56.25%;
    background: #000;
}
#content .tomo-page .tomo-video--portrait .tomo-video-player {
    padding-top: 177.7777778%;
}
#content .tomo-page .tomo-video-player iframe {
    position: absolute;
    top: 0;
    left: 0;
    display: block;
    box-sizing: border-box;
    width: 100%;
    height: 100%;
    max-width: 100%;
    margin: 0;
    padding: 0;
    border: 0;
}
#content .tomo-page .tomo-video-caption {
    margin: 14px 0 0;
    padding: 0;
    text-align: center;
}
#content .tomo-page .tomo-video-link,
#content .tomo-page .tomo-video-link:visited {
    display: inline-block;
    max-width: 100%;
    box-sizing: border-box;
    padding: 8px 6px;
    color: #3d6128;
    font-size: 14px;
    line-height: 1.7;
    text-decoration: underline;
    text-underline-offset: 4px;
    overflow-wrap: anywhere;
}
#content .tomo-page .tomo-video-link:hover {
    text-decoration-thickness: 2px;
}
#content .tomo-page .tomo-video-link:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 3px;
}
#content .tomo-page .tomo-video-link-mark {
    color: inherit;
    font-size: inherit;
    vertical-align: baseline;
}
#content .tomo-page.tomo-page--beauty .tomo-video-frame {
    border-color: var(--tomo-beauty-gold, #b3985c);
    background: linear-gradient(135deg, #ead8ae, #f8eed8 48%, #b89a5e);
    box-shadow: 0 8px 22px rgba(52, 39, 28, 0.09);
}
#content .tomo-page.tomo-page--beauty .tomo-video-link,
#content .tomo-page.tomo-page--beauty .tomo-video-link:visited {
    color: var(--tomo-beauty-gold-dark, #795f2d);
}

/* =========================================================
 * 07｜クーポン・口コミ・FAQの共通部品
 * 既存ルールは変更せず、追加クラスを使用した部品だけに適用。
 * .tomo-page--beauty の既存カラー変数を継承。他テーマでは緑系へ。
 * ========================================================= */


/* 初診料の説明に続くクーポン案内。既存の説明は重複させない。 */
#content .tomo-page .tomo-price-footnote .tomo-coupon-notice {
    margin-top: 18px;
    padding-top: 17px;
    border-top: 1px solid var(--tomo-beauty-border, #dce8cb);
}
#content .tomo-page .tomo-coupon-notice strong {
    color: #812f28;
    font-weight: bold;
}
#content .tomo-page .tomo-coupon {
    position: relative;
    margin: 24px 0 0;
    padding: 28px 26px 24px;
    border: 1px solid var(--tomo-beauty-gold, #8fc34b);
    background: linear-gradient(135deg, #fffdfa, var(--tomo-beauty-cream, #f7faef));
    box-shadow: inset 0 0 0 5px #fdfbf7, inset 0 0 0 6px var(--tomo-beauty-border, #dce8cb);
    color: var(--tomo-beauty-brown, #3d6128);
    text-align: center;
}
#content .tomo-page .tomo-coupon .tomo-coupon-tag {
    display: inline-block;
    margin: 0 0 16px;
    padding: 4px 16px;
    border: 1px solid var(--tomo-beauty-gold, #8fc34b);
    color: var(--tomo-beauty-gold-dark, #3d6128);
    font-size: 13px;
    font-weight: bold;
    line-height: 1.6;
    letter-spacing: 0.14em;
}
#content .tomo-page .tomo-coupon .tomo-coupon-clinic {
    margin: 0 0 9px;
    color: var(--tomo-beauty-brown, #3d6128);
    font-family: var(--tomo-beauty-serif, inherit);
    font-size: 18px;
    line-height: 1.7;
}
#content .tomo-page .tomo-coupon-title {
    margin: 0 0 14px;
    padding: 0;
    border: 0;
    background: none;
    color: var(--tomo-beauty-brown, #3d6128);
    font-family: var(--tomo-beauty-serif, inherit);
    font-size: 23px;
    font-weight: 600;
    line-height: 1.6;
    text-align: center;
}
#content .tomo-page .tomo-coupon-title span,
#content .tomo-page .tomo-coupon-title strong {
    display: inline-block;
    vertical-align: baseline;
}
#content .tomo-page .tomo-coupon-title strong {
    margin-left: 0.18em;
    color: #812f28;
    font-size: 44px;
    font-weight: 600;
    letter-spacing: 0.02em;
}
#content .tomo-page .tomo-coupon .tomo-coupon-present {
    margin: 0;
    color: var(--tomo-beauty-gold-dark, #3d6128);
    font-family: var(--tomo-beauty-serif, inherit);
    font-size: 17px;
    font-weight: 600;
    line-height: 1.9;
}
#content .tomo-page .tomo-coupon-terms {
    display: block;
    margin: 20px 0 0;
    padding: 16px 0 0;
    border-top: 1px solid var(--tomo-beauty-border, #dce8cb);
    background: none;
    list-style: none;
    text-align: left;
}
#content .tomo-page .tomo-coupon-terms li {
    margin: 0 0 4px;
    padding: 0 0 0 1.2em;
    color: var(--tomo-beauty-brown, #3d6128);
    font-size: 13px;
    line-height: 1.8;
    text-indent: -1.2em;
}
#content .tomo-page .tomo-coupon-terms li:last-child { margin-bottom: 0; }

/* 患者様の声：提供原稿を省略せず、院からの返信を分けて表示。 */
#content .tomo-page .tomo-review {
    margin: 0 0 20px;
    padding: 24px;
    border: 1px solid var(--tomo-beauty-border, #dce8cb);
    background: #fffdfa;
}
#content .tomo-page .tomo-review:last-child { margin-bottom: 0; }
#content .tomo-page .tomo-review-header {
    display: flex;
    align-items: center;
    gap: 16px;
    margin: 0 0 19px;
    padding: 0 0 17px;
    border-bottom: 1px solid var(--tomo-beauty-border, #dce8cb);
}
#content .tomo-page .tomo-review-media {
    display: flex;
    flex: 0 0 62px;
    align-items: center;
    justify-content: center;
    width: 62px;
    min-height: 62px;
    overflow: hidden;
}
#content .tomo-page .tomo-review-media img {
    display: block;
    width: 62px;
    height: 62px;
    object-fit: contain;
}
/* 未提供の口コミ画像を捏造せず、確認用の仮枠として明示。 */
#content .tomo-page .tomo-review-media--placeholder {
    flex-direction: column;
    border: 1px dashed var(--tomo-beauty-gold, #8fc34b);
    background: var(--tomo-beauty-cream, #f7faef);
    color: var(--tomo-beauty-gold-dark, #3d6128);
    font-size: 12px;
    line-height: 1.6;
    text-align: center;
}
#content .tomo-page .tomo-review-media--placeholder small {
    display: block;
    font-size: 10px;
    line-height: 1.5;
}
#content .tomo-page .tomo-review-name {
    margin: 0;
    padding: 0;
    border: 0;
    background: none;
    color: var(--tomo-beauty-brown, #3d6128);
    font-family: var(--tomo-beauty-serif, inherit);
    font-size: 19px;
    font-weight: 600;
    line-height: 1.8;
}
#content .tomo-page .tomo-review-text {
    margin: 0;
    padding: 0;
    border: 0;
}
#content .tomo-page .tomo-review-text p,
#content .tomo-page .tomo-review-reply p {
    margin: 0;
    font-size: 15px;
    line-height: 1.95;
    text-align: left;
}
#content .tomo-page .tomo-review-reply {
    margin: 22px 0 0;
    padding: 19px 20px;
    border-left: 2px solid var(--tomo-beauty-gold, #8fc34b);
    background: var(--tomo-beauty-cream, #f7faef);
}
#content .tomo-page .tomo-review-reply .tomo-reply-heading {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 12px;
    margin: 0 0 13px;
    color: var(--tomo-beauty-brown, #3d6128);
    font-size: 13px;
    font-weight: bold;
    line-height: 1.7;
}
#content .tomo-page .tomo-reply-logo-wrap {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 152px;
    min-height: 30px;
    vertical-align: middle;
}
#content .tomo-page .tomo-reply-logo {
    position: absolute;
    inset: 0;
    display: block;
    width: 152px;
    height: 30px;
    object-fit: contain;
    background: #fff;
}
#content .tomo-page .tomo-reply-logo[hidden] { display: none; }
#content .tomo-page .tomo-reply-brand-text {
    color: var(--tomo-beauty-brown, #3d6128);
    font-family: var(--tomo-beauty-serif, inherit);
    font-size: 15px;
    font-weight: 600;
}

/* FAQ：details/summaryで開閉。追加JavaScriptなし、キーボード対応。 */
#content .tomo-page .tomo-faq-list { margin: 0; padding: 0; }
#content .tomo-page .tomo-faq-item {
    display: block;
    margin: 0 0 12px;
    padding: 0;
    border: 1px solid var(--tomo-beauty-border, #dce8cb);
    background: #fffdfa;
}
#content .tomo-page .tomo-faq-item:last-child { margin-bottom: 0; }
#content .tomo-page .tomo-faq-item > summary {
    display: grid;
    grid-template-columns: 37px minmax(0, 1fr) 18px;
    align-items: start;
    gap: 10px;
    margin: 0;
    padding: 19px 20px;
    color: var(--tomo-beauty-brown, #3d6128);
    font-size: 16px;
    font-weight: 600;
    line-height: 1.85;
    list-style: none;
    cursor: pointer;
}
#content .tomo-page .tomo-faq-item > summary::-webkit-details-marker { display: none; }
#content .tomo-page .tomo-faq-item > summary::marker { content: ""; }
#content .tomo-page .tomo-faq-item > summary:hover {
    background: var(--tomo-beauty-cream, #f7faef);
}
#content .tomo-page .tomo-faq-item > summary:focus-visible {
    outline: 2px solid var(--tomo-beauty-gold-dark, #3d6128);
    outline-offset: -3px;
}
#content .tomo-page .tomo-faq-number {
    color: var(--tomo-beauty-gold-dark, #3d6128);
    font-family: var(--tomo-beauty-serif, inherit);
    font-size: 17px;
    font-weight: 600;
    white-space: nowrap;
}
#content .tomo-page .tomo-faq-question { min-width: 0; font-weight: inherit; }
#content .tomo-page .tomo-faq-toggle {
    position: relative;
    display: block;
    width: 16px;
    height: 20px;
    margin-top: 5px;
}
#content .tomo-page .tomo-faq-toggle::before,
#content .tomo-page .tomo-faq-toggle::after {
    content: "";
    position: absolute;
    top: 9px;
    left: 1px;
    width: 14px;
    height: 1px;
    background: var(--tomo-beauty-gold-dark, #3d6128);
}
#content .tomo-page .tomo-faq-toggle::after { transform: rotate(90deg); }
#content .tomo-page .tomo-faq-item[open] > summary {
    background: var(--tomo-beauty-cream, #f7faef);
}
#content .tomo-page .tomo-faq-item[open] .tomo-faq-toggle::after { display: none; }
#content .tomo-page .tomo-faq-answer {
    padding: 18px 22px 21px;
    border-top: 1px solid var(--tomo-beauty-border, #dce8cb);
}
#content .tomo-page .tomo-faq-answer p {
    margin: 0 0 10px;
    font-size: 15px;
    line-height: 1.95;
}
#content .tomo-page .tomo-faq-answer p:last-child { margin-bottom: 0; }

@media screen and (max-width: 640px) {
    
    
    
    #content .tomo-page .tomo-coupon { padding: 24px 18px 22px; }
    #content .tomo-page .tomo-coupon-title { font-size: 20px; }
    #content .tomo-page .tomo-coupon-title strong { margin-left: 0; font-size: 35px; }
    #content .tomo-page .tomo-coupon-present { font-size: 16px; }
    #content .tomo-page .tomo-review { padding: 20px 16px; }
    #content .tomo-page .tomo-review-header { gap: 12px; margin-bottom: 16px; }
    #content .tomo-page .tomo-review-name { font-size: 18px; }
    #content .tomo-page .tomo-review-reply { margin-top: 18px; padding: 17px 14px; }
    #content .tomo-page .tomo-review-reply p { font-size: 14px; }
    #content .tomo-page .tomo-faq-item > summary {
        grid-template-columns: 34px minmax(0, 1fr) 16px;
        gap: 8px;
        padding: 16px 13px;
        font-size: 15px;
    }
    #content .tomo-page .tomo-faq-answer { padding: 16px; }
}
@media screen and (max-width: 360px) {
    #content .tomo-page .tomo-coupon-title strong { font-size: 30px; }
    #content .tomo-page .tomo-coupon-present { font-size: 15px; }
}

/* =========================================================
 * 07-2｜口コミ・Q&Aの表示詳細
 * 口コミ・Q&Aのカードはv9を維持。見出しは既存の .tomo-section-title を使用。
 * 必要な部品に --ticket / --elegant を付ける。ページ専用CSSは追加不要。
 * ========================================================= */

/* 初診の説明は原文のまま、参考画像の落ち着いた明朝体に。 */
#content .tomo-page.tomo-page--beauty .tomo-care--coupon-update .tomo-price-footnote {
    padding: 23px 25px;
    background: linear-gradient(115deg, #f3ede1, #f7f2e8);
    font-family: var(--tomo-beauty-serif);
}
#content .tomo-page.tomo-page--beauty .tomo-care--coupon-update .tomo-price-footnote p {
    font-size: 15px;
    line-height: 2;
}
#content .tomo-page.tomo-page--beauty .tomo-care--coupon-update .tomo-coupon-notice {
    margin-top: 20px;
    padding-top: 0;
    border-top: 0;
}
#content .tomo-page.tomo-page--beauty .tomo-care--coupon-update .tomo-coupon-notice strong {
    color: #812d27;
    font-size: 22px;
    font-weight: 600;
}

/* 患者様の声：丸枠、二重細線、本文の下にロゴ＋返信の横並び。 */
#content .tomo-page .tomo-reviews--elegant .tomo-review {
    position: relative;
    margin-bottom: 22px;
    padding: 24px 22px 22px;
    border: 1px solid #c8b48b;
    background: linear-gradient(125deg, #fffdfa, #fbf8f1);
    box-shadow: inset 0 0 0 3px #fdfbf7, inset 0 0 0 4px #e2d6bf;
}
#content .tomo-page .tomo-reviews--elegant .tomo-review-header {
    display: grid;
    grid-template-columns: 54px minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    margin: 0 0 18px;
    padding: 0;
    border: 0;
}
#content .tomo-page .tomo-reviews--elegant .tomo-review-media {
    flex: none;
    width: 54px;
    height: 54px;
    min-height: 54px;
    border: 1px solid #baa274;
    border-radius: 50%;
    background: radial-gradient(circle at 35% 20%, #f4ebd9, #e5d6b8);
    color: #6a5132;
    font-family: var(--tomo-beauty-serif, serif);
    font-size: 26px;
    line-height: 1.05;
}
#content .tomo-page .tomo-reviews--elegant .tomo-review-media small {
    margin-top: 2px;
    font: 9px/1.3 "Meiryo", sans-serif;
    letter-spacing: .02em;
}
#content .tomo-page .tomo-reviews--elegant .tomo-review-media img { width:54px; height:54px; object-fit:cover; }
#content .tomo-page .tomo-reviews--elegant .tomo-review-name {
    font-size: 19px;
    font-weight: 500;
    line-height: 1.6;
    letter-spacing: .025em;
}
#content .tomo-page .tomo-review-source {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    max-width: 100%;
    margin: 0;
    padding: 7px 11px;
    border: 1px solid #dccbab;
    border-radius: 12px;
    background: rgba(255,255,255,.56);
    color: #625b51;
    font: 12px/1.4 Arial, "Meiryo", sans-serif;
    white-space: nowrap;
}
#content .tomo-page .tomo-review-source span { font-size:14px; }
#content .tomo-page .tomo-reviews--elegant .tomo-review-text p {
    font-family: var(--tomo-beauty-serif, serif);
    font-size: 15px;
    line-height: 1.95;
    letter-spacing: .02em;
}
#content .tomo-page .tomo-reviews--elegant .tomo-review-reply {
    display: grid;
    grid-template-columns: 124px minmax(0, 1fr);
    align-items: center;
    gap: 16px;
    margin: 20px 0 0;
    padding: 16px 0 0;
    border: 0;
    border-top: 1px solid #d3c0a0;
    background: transparent;
}
#content .tomo-page .tomo-reviews--elegant .tomo-review-reply .tomo-reply-heading {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    margin: 0;
    padding: 0;
    color: #867457;
    font-size: 11px;
    line-height: 1.6;
    text-align: center;
}
#content .tomo-page .tomo-reviews--elegant .tomo-reply-logo-wrap {
    width: 124px;
    min-height: 32px;
}
#content .tomo-page .tomo-reviews--elegant .tomo-reply-brand-text {
    font-size: 14px;
    line-height: 1.7;
    white-space: nowrap;
}
#content .tomo-page .tomo-reviews--elegant .tomo-reply-logo {
    width: 100%;
    height: 100%;
    object-fit: contain;
}
#content .tomo-page .tomo-reviews--elegant .tomo-reply-message {
    position: relative;
    min-width: 0;
    padding: 16px 17px;
    border-radius: 8px;
    background: linear-gradient(110deg, #f4efe4, #f8f4eb);
}
#content .tomo-page .tomo-reviews--elegant .tomo-reply-message::before {
    content: "";
    position: absolute;
    left: -8px;
    top: 26px;
    border-top: 8px solid transparent;
    border-bottom: 8px solid transparent;
    border-right: 8px solid #f4efe4;
}
#content .tomo-page .tomo-reviews--elegant .tomo-reply-message p {
    font-family: var(--tomo-beauty-serif, serif);
    font-size: 14px;
    line-height: 1.95;
    letter-spacing: .015em;
}

/* FAQ：既存の見出し帯を使用。Q/Aカードは左側の色分けタイル。 */


#content .tomo-page .tomo-faq--elegant .tomo-faq-item {
    margin: 0 0 11px;
    padding: 8px;
    border: 1px solid #cdb78e;
    border-radius: 4px;
    background: linear-gradient(110deg, #fffdfa, #fbf8f2);
}
#content .tomo-page .tomo-faq--elegant .tomo-faq-item > summary {
    display: grid;
    grid-template-columns: 49px minmax(0, 1fr) 13px;
    align-items: stretch;
    column-gap: 13px;
    row-gap: 0;
    padding: 0 9px 0 0;
    border: 0;
    background: transparent;
    color: #604627;
    font-family: var(--tomo-beauty-serif, serif);
    font-size: 16px;
    font-weight: 500;
    line-height: 1.75;
}
#content .tomo-page .tomo-faq--elegant .tomo-faq-item > summary:hover {
    background: rgba(224,208,174,.17);
}
#content .tomo-page .tomo-faq--elegant .tomo-faq-number {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    margin: 0;
    padding: 7px 1px;
    border-radius: 2px 2px 0 0;
    background: linear-gradient(120deg, #efe1c5, #f7efdf);
    color: #694c2b;
    font-size: 22px;
    font-weight: 400;
    line-height: 1.3;
    letter-spacing: -.03em;
    white-space: nowrap;
}
#content .tomo-page .tomo-faq--elegant .tomo-faq-question {
    align-self: stretch;
    display: flex;
    align-items: center;
    min-width: 0;
    padding: 9px 0;
    border-bottom: 1px solid transparent;
}
#content .tomo-page .tomo-faq--elegant .tomo-faq-item[open] .tomo-faq-question {
    border-bottom-color: #ded0b8;
}
#content .tomo-page .tomo-faq--elegant .tomo-faq-toggle {
    position: relative;
    align-self: center;
    display: block;
    width: 9px;
    height: 9px;
    margin: -3px 0 0;
    border-right: 1px solid #735633;
    border-bottom: 1px solid #735633;
    transform: rotate(45deg);
}
#content .tomo-page .tomo-faq--elegant .tomo-faq-toggle::before,
#content .tomo-page .tomo-faq--elegant .tomo-faq-toggle::after { content:none; display:none; }
#content .tomo-page .tomo-faq--elegant .tomo-faq-item[open] .tomo-faq-toggle { margin-top:5px; transform:rotate(225deg); }
#content .tomo-page .tomo-faq--elegant .tomo-faq-answer {
    display: grid;
    grid-template-columns: 49px minmax(0, 1fr);
    align-items: start;
    gap: 13px;
    margin: 0;
    padding: 0 9px 0 0;
    border: 0;
}
#content .tomo-page .tomo-faq--elegant .tomo-faq-answer-label {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 7px 1px;
    border-radius: 0 0 2px 2px;
    background: linear-gradient(115deg, #725229, #513b22);
    color: #fffaf0;
    font-family: var(--tomo-beauty-serif, serif);
    font-size: 25px;
    font-weight: 400;
    line-height: 1.3;
}
#content .tomo-page .tomo-faq--elegant .tomo-faq-answer-body {
    min-width: 0;
    padding: 8px 0 4px;
}
#content .tomo-page .tomo-faq--elegant .tomo-faq-answer p {
    margin: 0;
    color: #493b2c;
    font-family: var(--tomo-beauty-serif, serif);
    font-size: 14px;
    line-height: 1.95;
    letter-spacing: .02em;
}

@media screen and (max-width:640px) {
    #content .tomo-page.tomo-page--beauty .tomo-care--coupon-update .tomo-price-footnote { padding:19px 17px; }
    #content .tomo-page.tomo-page--beauty .tomo-care--coupon-update .tomo-price-footnote p { font-size:14px; }
    #content .tomo-page.tomo-page--beauty .tomo-care--coupon-update .tomo-coupon-notice strong { font-size:19px; }
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    #content .tomo-page .tomo-reviews--elegant .tomo-review { padding:19px 16px 19px; }
    #content .tomo-page .tomo-reviews--elegant .tomo-review-header { grid-template-columns:45px minmax(0, 1fr) auto; gap:8px; margin-bottom:16px; }
    #content .tomo-page .tomo-reviews--elegant .tomo-review-media { width:45px; height:45px; min-height:45px; font-size:22px; }
    #content .tomo-page .tomo-reviews--elegant .tomo-review-media img { width:45px; height:45px; }
    #content .tomo-page .tomo-reviews--elegant .tomo-review-name { font-size:16px; }
    #content .tomo-page .tomo-review-source { padding:6px 8px; gap:3px; font-size:10px; border-radius:9px; }
    #content .tomo-page .tomo-review-source span { font-size:12px; }
    #content .tomo-page .tomo-reviews--elegant .tomo-review-text p { font-size:14px; }
    #content .tomo-page .tomo-reviews--elegant .tomo-review-reply { grid-template-columns:minmax(0, 1fr); gap:10px; margin-top:17px; padding-top:15px; }
    #content .tomo-page .tomo-reviews--elegant .tomo-review-reply .tomo-reply-heading { flex-direction:row; justify-content:flex-start; text-align:left; gap:7px; }
    #content .tomo-page .tomo-reviews--elegant .tomo-reply-message { padding:14px 15px; }
    #content .tomo-page .tomo-reviews--elegant .tomo-reply-message::before { left:22px; top:-7px; border:0; border-left:7px solid transparent; border-right:7px solid transparent; border-bottom:7px solid #f4efe4; }
    #content .tomo-page .tomo-reviews--elegant .tomo-reply-message p { font-size:13px; line-height:1.95; }
    
    
    
    
    #content .tomo-page .tomo-faq--elegant .tomo-faq-item { padding:6px; }
    #content .tomo-page .tomo-faq--elegant .tomo-faq-item > summary { grid-template-columns:37px minmax(0, 1fr) 11px; gap:9px; padding-right:5px; font-size:15px; line-height:1.8; }
    #content .tomo-page .tomo-faq--elegant .tomo-faq-number { min-height:46px; font-size:18px; }
    #content .tomo-page .tomo-faq--elegant .tomo-faq-question { padding:8px 0; }
    #content .tomo-page .tomo-faq--elegant .tomo-faq-answer { grid-template-columns:37px minmax(0, 1fr); gap:9px; padding-right:5px; }
    #content .tomo-page .tomo-faq--elegant .tomo-faq-answer-label { min-height:43px; font-size:22px; }
    #content .tomo-page .tomo-faq--elegant .tomo-faq-answer p { font-size:13px; line-height:1.95; }
}
@media screen and (max-width:360px) {
    
    
    
    
    
    #content .tomo-page .tomo-reviews--elegant .tomo-review-header { grid-template-columns:43px minmax(0, 1fr); }
    #content .tomo-page .tomo-reviews--elegant .tomo-review-source { grid-column:2; justify-self:start; margin-top:-3px; }
    
    
}
@media print {
    #content .tomo-page .tomo-review,
    #content .tomo-page .tomo-coupon,
    #content .tomo-page .tomo-faq-item { break-inside:avoid; }
}

/* =========================================================
 * 08｜クーポン画像の拡大表示
 * 見出しは既存 .tomo-section-title を再利用。専用見出し・写真は追加しない。
 * 画像は比率を維持し、色・文字・装飾をCSSで描き直さない。
 * ========================================================= */
#content .tomo-page .tomo-coupon-artwork {
    display: block;
    width: 100%;
    max-width: 100%;
    margin: 22px 0 0;
    padding: 0;
    border: 0;
    background: none;
}
#content .tomo-page .tomo-coupon-artwork-open {
    appearance: none;
    display: block;
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: inherit;
    cursor: zoom-in;
    line-height: 0;
}
#content .tomo-page .tomo-coupon-artwork img {
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
}
#content .tomo-page .tomo-coupon-artwork-open:focus-visible {
    outline: 2px solid var(--tomo-beauty-gold-dark, #795f2d);
    outline-offset: 4px;
}
#content .tomo-page .tomo-coupon-artwork-caption {
    margin: 8px 0 0;
    color: var(--tomo-beauty-gold-dark, #795f2d);
    font: 12px/1.8 "Meiryo", sans-serif;
    text-align: right;
}
#content .tomo-page .tomo-coupon-dialog {
    box-sizing: border-box;
    width: min(94vw, 1120px);
    max-width: 94vw;
    max-height: 92dvh;
    margin: auto;
    padding: 16px;
    border: 1px solid #b69a63;
    background: #fdfbf7;
    color: #513d2b;
    overflow: auto;
}
#content .tomo-page .tomo-coupon-dialog:not([open]) { display: none; }
#content .tomo-page .tomo-coupon-dialog::backdrop { background: rgba(30, 24, 16, .72); }
#content .tomo-page .tomo-coupon-dialog-bar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
    margin: 0 0 12px;
}
#content .tomo-page .tomo-coupon-dialog-bar p {
    margin: 0;
    color: #513d2b;
    font: 14px/1.6 "Meiryo", sans-serif;
}
#content .tomo-page .tomo-coupon-dialog-close {
    flex-shrink: 0;
    min-height: 40px;
    padding: 8px 16px;
    border: 1px solid #b69a63;
    border-radius: 2px;
    background: #f4ecda;
    color: #513d2b;
    font: 14px/1.4 "Meiryo", sans-serif;
    cursor: pointer;
}
#content .tomo-page .tomo-coupon-dialog-close:focus-visible,
#content .tomo-page .tomo-coupon-dialog-scroll:focus-visible {
    outline: 2px solid #795f2d;
    outline-offset: 2px;
}
#content .tomo-page .tomo-coupon-dialog-scroll {
    width: 100%;
    max-width: 100%;
    overflow: auto;
    overscroll-behavior: contain;
}
#content .tomo-page .tomo-coupon-dialog-scroll img {
    display: block;
    width: 100%;
    min-width: 880px;
    max-width: none;
    height: auto;
    margin: 0;
    padding: 0;
    border: 0;
}
#content .tomo-page .tomo-coupon-dialog p.tomo-coupon-dialog-help {
    margin: 10px 0 0;
    color: #715f43;
    font: 12px/1.7 "Meiryo", sans-serif;
}
@media screen and (max-width:640px) {
    #content .tomo-page .tomo-coupon-artwork { margin-top: 18px; }
    #content .tomo-page .tomo-coupon-dialog { padding: 12px; }
    #content .tomo-page .tomo-coupon-dialog-bar p { font-size: 12px; }
}
@media print {
    #content .tomo-page .tomo-coupon-artwork { break-inside: avoid; }
    #content .tomo-page .tomo-coupon-dialog,
    #content .tomo-page .tomo-coupon-artwork-caption { display: none !important; }
}


/* 09｜料金カードの斜めリボン。クーポンの文字・枠・画像は流用しない。
 * 本文・金額・他部品は変更しない。文言は「おすすめ」のまま。
 * 左辺と上辺の折り返しはSVG内の独立した図形で表現。
 */
#content .tomo-page .tomo-price-block.tomo-price-block--recommended {
    position: relative;
    overflow: visible;
    padding-top: 110px;
}
#content .tomo-page .tomo-corner-ribbon {
    position: absolute;
    z-index: 1;
    top: -6px;
    left: -6px;
    display: block;
    width: 205px;
    height: auto;
    aspect-ratio: 430 / 228;
    margin: 0;
    padding: 0;
    border: 0;
    background: none;
    line-height: 0;
    pointer-events: none;
}
#content .tomo-page .tomo-corner-ribbon::before,
#content .tomo-page .tomo-corner-ribbon::after {
    content: none;
}
#content .tomo-page .tomo-corner-ribbon-art {
    display: block;
    width: 100%;
    height: auto;
    max-width: none;
    overflow: visible;
}
#content .tomo-page .tomo-corner-ribbon-text {
    font-family: var(--tomo-beauty-serif, serif);
    font-size: 43px;
    font-weight: 600;
    letter-spacing: .13em;
    fill: #fffaf0;
}
@media screen and (max-width: 640px) {
    #content .tomo-page .tomo-price-block.tomo-price-block--recommended {
        padding-top: 97px;
    }
    #content .tomo-page .tomo-corner-ribbon {
        top: -5px;
        left: -5px;
        width: 180px;
    }
}
