@import url('https://fonts.googleapis.com/css2?family=Dancing+Script:wght@400;500;700&display=swap');

/* ============================================================
   メルティア サイト集約CSS（SWELL→TTF子テーマ移行版）
   構成: 0.リセット / [custom_css 183 共通] / [TOP swell_meta] /
         [商品 swell_meta] / 90.SWELL静的ブロック互換 / 95.ブログ
   ※ 本ファイルはビルド連結で生成（migration/build-css/* + source/*）
   ============================================================ */

/* ============================================================
   0. TwentyTwentyFive ブロックテーマ用リセット
   ============================================================ */
html, body {
  margin: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  max-width: none !important;
}
body {
  --wp--style--root--padding-top: 0 !important;
  --wp--style--root--padding-right: 0 !important;
  --wp--style--root--padding-bottom: 0 !important;
  --wp--style--root--padding-left: 0 !important;
  font-family: var(--m-font);
  background-color: #ffffff;
  color: var(--m-ink);
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
* { box-sizing: border-box; }
img { max-width: 100%; height: auto; }
.wp-site-blocks { margin: 0 !important; padding: 0 !important; max-width: none !important; }
.wp-site-blocks > * { margin-block-start: 0 !important; margin-block-end: 0 !important; max-width: none !important; }
.is-layout-flow, .is-layout-constrained,
.is-layout-flow > *, .is-layout-constrained > * { max-width: none !important; }
.entry-content, .wp-block-post-content { max-width: none !important; margin: 0 !important; padding: 0 !important; }
.m-main { display: block; }

/* custom_css */
/* =========================================
   結婚相談所LP - 全ページ共通CSS
   =========================================
   配置場所：カスタマイズ > 追加CSS
   適用範囲：全ページに作用
   最終更新：2026年2月
   ========================================= */

/* =========================================
   1. 基本設定・リセット
   ========================================= */

/* テーブルの枠線を非表示 */
:root {
    --color_border--table: #FFFFFF;
}

/* パンくずリストを非表示 */
#breadcrumb {
    display: none;
}

/* アイキャッチ画像エリアを非表示 */
#top_title_area {
    display: none;
}

/* =========================================
   2. Swellデフォルトヘッダー非表示
   ========================================= */

/* Swellのヘッダーを完全非表示 */
.l-header,
#header,
.p-header {
    display: none !important;
}

/* ヘッダー非表示に伴うコンテンツ位置調整 */
body {
    padding-top: 0 !important;
}

.l-content {
    margin-top: 0 !important;
}

/* =========================================
   3. カスタムヘッダー（一段構造・Noto Sans JP）
   ========================================= */

.meltia-custom-header-wrapper {
    position: sticky;
    top: 0;
    z-index: 9998;
    background: #ffffff;
    border-bottom: 1px solid #eaeaea;
    width: 100%;
    font-family: 'Zen Kaku Gothic New', 'Noto Sans JP', 'Hiragino Sans', 'Yu Gothic', sans-serif;
}

.meltia-slim-rounded-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    max-width: 1440px;
    margin: 0 auto;
    padding: 12px 32px;
    gap: 32px;
    min-height: 76px;
    background: transparent;
    border: none;
    border-radius: 0;
    box-shadow: none;
}

.m-header-left-group {
    display: flex;
    align-items: center;
    gap: 40px;
    flex: 1;
    min-width: 0;
}

.m-header-logo a { display: block; }
.m-header-logo img,
.m-logo-img {
    height: 48px;
    width: auto;
    display: block;
}

.m-header-cta-area { flex-shrink: 0; }
/* CTAボタン本体（custom-header-cta / cta-base-btn / badge-circle / arrow-icon 等）は
   ファイル下部（676行以降）の元CSS定義に任せる。ここでは重複させない */

/* ナビ */
.m-header-nav { display: flex; }

.m-nav-list {
    display: flex;
    align-items: stretch;
    justify-content: flex-start;
    gap: 0;
    list-style: none;
    margin: 0;
    padding: 0;
}

.m-nav-list li {
    position: relative;
    display: flex;
    align-items: stretch;
}

/* ナビ項目間の薄いグレー縦線 */
.m-nav-list li + li {
    border-left: 1px solid #eaeaea;
}

.m-nav-list li > a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 16px 24px;
    font-size: 14px;
    color: #333;
    text-decoration: none;
    font-weight: 500;
    position: relative;
    transition: color 0.15s;
    white-space: nowrap;
}

.m-nav-list li > a:hover { color: #EB2A2A; }

/* ＋マーク（TOP以外の各項目の左に） */
.m-nav-list li:not(.no-plus) > a::before {
    content: '+';
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    border: 1px solid #EB2A2A;
    border-radius: 50%;
    color: #EB2A2A;
    font-size: 13px;
    line-height: 1;
    font-weight: 500;
    transition: background 0.15s, color 0.15s, transform 0.15s;
}

.m-nav-list li:not(.no-plus):hover > a::before {
    content: '−';
    background: #EB2A2A;
    color: #fff;
}

/* ホバー時の下線 */
.m-nav-list li > a::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 24px;
    right: 24px;
    height: 2px;
    background: #EB2A2A;
    transform: scaleX(0);
    transform-origin: center;
    transition: transform 0.2s;
}

.m-nav-list li:hover > a::after {
    transform: scaleX(1);
}

/* メガメニュー展開（全メニュー同じ幅・下方向展開に統一） */
.m-mega-menu {
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 380px;
    background: #ffffff;
    border: 1px solid #eaeaea;
    border-top: none;
    border-radius: 0 0 12px 12px;
    padding: 8px 0;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.2s, visibility 0.2s;
    z-index: 9999;
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.08);
}

.m-nav-list li:hover .m-mega-menu {
    opacity: 1;
    visibility: visible;
}

.m-mega-grid {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.m-mega-item {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 14px;
    background: transparent;
    padding: 14px 44px 14px 20px;
    border-radius: 0;
    border: none;
    text-decoration: none;
    color: #333;
    transition: background 0.15s;
    position: relative;
    min-height: 64px;
}

/* 項目間の薄いグレー横罫線 */
.m-mega-item + .m-mega-item {
    border-top: 1px solid #eaeaea;
}

.m-mega-item:hover {
    background: #FFF3F3;
}

/* 右端の「›」矢印でクリック可能感を出す */
.m-mega-item::after {
    content: '›';
    position: absolute;
    right: 16px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 22px;
    color: #EB2A2A;
    opacity: 0.5;
    transition: opacity 0.15s, transform 0.15s;
    line-height: 1;
}

.m-mega-item:hover::after {
    opacity: 1;
    transform: translateY(-50%) translateX(4px);
}

.m-mega-item-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 10px;
    background: #ffffff;
    border: 1px solid #F5C4C4;
    color: #EB2A2A;
    font-size: 22px;
    flex-shrink: 0;
    transition: background 0.15s, border-color 0.15s, color 0.15s;
}

.m-mega-item:hover .m-mega-item-icon {
    background: #EB2A2A;
    border-color: #EB2A2A;
    color: #ffffff;
}

.m-mega-item-body {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
    flex: 1;
}

.m-mega-item-title {
    font-size: 14px;
    font-weight: 500;
    color: #333;
    margin-bottom: 4px;
    display: block;
    transition: color 0.15s;
}

.m-mega-item:hover .m-mega-item-title {
    color: #EB2A2A;
}

.m-mega-item-desc {
    font-size: 11px;
    color: #888;
    line-height: 1.5;
    display: block;
}

/* =========================================
   4. コンテンツエリア調整
   ========================================= */

/* ヘッダーとコンテンツの間の余白を非表示 */
@media screen and (min-width: 768px) {
    .l-content,
    .l-mainContent,
    .l-mainContent__inner {
        margin-top: 0;
        padding-top: 0;
    }
}

/* メインビジュアル直後の余白を詰める */
@media only screen and (max-width: 767px) {
    .p-mainVisual__slideLink {
        display: block;
        margin-bottom: 0;
        padding-bottom: 0;
    }

    #content,
    .l-content.l-container {
        margin-top: 0;
        padding-top: 0;
    }

    .l-mainContent__inner,
    .post_content {
        margin-top: 0;
        padding-top: 0;
    }
}

/* =========================================
   5. 固定メニュー（スマホ下部）
   ========================================= */

@media screen and (max-width: 959px) {
    body {
        padding-bottom: 0px;
    }

    .p-fixBtnWrap {
        bottom: 5.5em;
    }

    #fixed-bottom-menu {
        display: block;
        position: fixed;
        left: 0;
        bottom: 0;
        width: 100%;
        z-index: 99;
        background-color: transparent;
        padding: .3em .3em;
        backdrop-filter: none;
    }

    #fixed-bottom-menu .swell-block-column {
        padding: .5em;
    }

    #fixed-bottom-menu .swell-block-button__link[data-has-icon] {
        padding: 1em 1em;
    }
}

@media screen and (min-width: 960px) {
    #fixed-bottom-menu, 
    #fixed-sidebar-menu {
        display: none;
    }
}

/* =========================================
   6. Contact Form 7 スタイル
   ========================================= */

/* フォーム全体 */
#cf7-area {
    width: 100%;
    margin: 0 auto;
    font-family: "游ゴシック", "ヒラギノ角ゴ", "メイリオ", "MS Pゴシック", sans-serif;
}

/* 質問＆回答ブロック */
.cf7-item {
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
    margin: 0 0 1.75em;
}

/* 質問側 */
.cf7-q {
    width: 30%;
    margin: 0 0 0 10px;
}

/* 回答側 */
.cf7-a {
    width: 60%;
}

/* セクション見出し */
.form-heading {
    width: 100%;
    background-color: #D32F2F;
    border-left: 1em solid #E57373;
    border-radius: 2px;
    color: #ffffff;
    font-weight: bold;
    padding: 1em .8em;
    margin: 0 0 2em;
}

.form-heading p {
    margin: 0;
}

/* 共通フォーム要素 */
#cf7-area label {
    font-weight: bold;
}

#cf7-area input[type="text"],
#cf7-area input[type="email"],
#cf7-area input[type="datetime-local"],
#cf7-area textarea {
    background: #FFEBEE;
    width: 500px;
    margin-left: 10px;
}

#cf7-area input[type="text"]:focus,
#cf7-area input[type="email"]:focus,
#cf7-area input[type="datetime-local"]:focus,
#cf7-area textarea:focus {
    background: #FFE4E1;
    border: 2px solid #FF1493;
    outline: 0;
}

#cf7-area textarea {
    height: 200px;
    padding: 0.625em 0.4375em;
}

.cf7-accept-check {
    text-align: center;
    margin: 50px auto;
}

.cf7-submit {
    width: 40%;
    margin: 0 auto;
    text-align: center;
}

#cf7-area input[type="submit"] {
    width: 100%;
    background-color: #D32F2F;
    color: #ffffff;
    border-radius: 5px;
    font-size: 1.2em;
    font-weight: bold;
    padding: 1em 10px;
}

#cf7-area input[type="submit"]:hover {
    background-color: #ffffff;
    border: 2px solid #D32F2F;
    color: #D32F2F;
}

.cf7-btn {
    width: 40%;
    margin: 0 auto;
    text-align: center;
}

/* 必須と任意マーク */
.cf7-req {
    font-size: .8em;
    padding: 4px 6px;
    background: #eb2a2a;
    color: #ffffff;
    margin-left: 10px;
    display: inline-block;
}

.cf7-opt {
    font-size: .8em;
    padding: 4px 6px;
    background: #a9a9a9;
    color: #ffffff;
    margin-left: 10px;
    display: inline-block;
}

/* モバイル表示対応 */
@media screen and (max-width: 768px) {
    .cf7-item {
        display: block;
    }

    #cf7-area label {
        display: block;
        margin-bottom: 10px;
    }

    .cf7-q {
        width: 100%;
        margin: 0;
    }

    .cf7-a {
        width: 100%;
    }

    #cf7-area input[type="text"],
    #cf7-area input[type="email"],
    #cf7-area input[type="datetime-local"],
    #cf7-area textarea {
        width: 100%;
        margin-left: 0;
    }

    .cf7-submit {
        width: 90%;
    }
}

/* =========================================
   7. フッター余白調整
   ========================================= */

/* メインコンテンツの底の余白を削除 */
.l-mainContent__inner {
    padding-bottom: 0;
}

/* コンテンツエリア全体の底のマージンを削除 */
#content {
    margin-bottom: 0;
}

/* ウィジェットエリアが空の場合、高さをゼロに */
#before_footer_widget {
    margin: 0;
    padding: 0;
    height: 0;
    min-height: 0;
    overflow: hidden;
}

/* フッターの上側の余白をゼロに */
.l-footer {
    margin-top: 0;
    padding-top: 0;
    border-top: none;
}

/* スマホ版：bodyの下部余白をゼロに */
@media screen and (max-width: 959px) {
    body {
        padding-bottom: 0;
    }
}

/* =========================================
   8. TOPページ専用バナー非表示（スマホ）
   ========================================= */

@media only screen and (max-width: 767px) {
    .hide-sp1,
    .hide-sp2,
    .hide-sp3,
    .hide-sp4 {
        display: none;
    }
}









/* 全体のコンテナ */
.custom-header-cta {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    padding: 5px;
    font-family: 'Zen Kaku Gothic New', 'Noto Sans JP', 'Hiragino Sans', 'Yu Gothic', sans-serif;
}

/* 上部の案内テキスト */
.cta-info-text {
    font-size: 11px;
    color: #333;
    font-weight: 700;
    margin-bottom: 2px;
}

/* ボタンの横並びエリア */
.cta-flex-box {
    display: flex;
    align-items: center;
    gap: 15px;
}

/* 共通ボタン設定（角丸四角） */
.cta-base-btn {
    text-decoration: none !important;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 52px;
    border-radius: 10px;
    font-weight: 700;
    color: #fff !important;
    transition: all 0.2s ease;
    box-shadow: 0 4px 0 rgba(0,0,0,0.15);
    position: relative;
}

.cta-base-btn:hover {
    transform: translateY(2px);
    box-shadow: 0 2px 0 rgba(0,0,0,0.15);
}

/* 左側ボタン（優しい薄ピンク） */
.btn-pink {
    background: #ff8da1; /* 柔らかい薄ピンク */
    padding: 0 20px;
    font-size: 18px;
}

.icon-mail {
    width: 20px;
    height: 20px;
    margin-right: 8px;
    background-color: #fff;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z'/%3E%3C/svg%3E") no-repeat center;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z'/%3E%3C/svg%3E") no-repeat center;
}

/* 右側ボタン（赤色） */
.btn-red {
    background: #dd3333;
    padding: 0 45px 0 55px; 
    font-size: 19px;
}

/* 丸い「かんたん1分」バッジ */
.badge-circle {
    position: absolute;
    left: -10px;
    top: 50%;
    transform: translateY(-50%);
    width: 58px;
    height: 58px;
    background: #fff;
    border: 3px solid #dd3333;
    border-radius: 50%;
    color: #dd3333;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    line-height: 1.1;
    z-index: 2;
}
.badge-circle .b-top { font-size: 8px; font-weight: 700; }
.badge-circle .b-main { font-size: 20px; font-weight: 900; }
.badge-circle .b-main span { font-size: 10px; }

/* 右側の矢印アイコン */
.arrow-icon {
    position: absolute;
    right: 15px;
    width: 20px;
    height: 20px;
    background: #fff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}
.arrow-icon::after {
    content: '';
    width: 6px;
    height: 6px;
    border-top: 2px solid #dd3333;
    border-right: 2px solid #dd3333;
    transform: rotate(45deg);
    margin-left: -2px;
}

/* スマホ表示での調整 */
@media (max-width: 768px) {
    .cta-flex-box {
        gap: 10px;
    }
    .btn-pink { font-size: 15px; padding: 0 12px; height: 46px; }
    .btn-red { font-size: 16px; padding: 0 35px 0 45px; height: 46px; }
    .badge-circle { width: 50px; height: 50px; left: -8px; }
}
@media (max-width: 768px) {
    .meltea-cta-section .cta-white-box {
        position: fixed;
        bottom: 0;
        left: 0;
        width: 100%;
        z-index: 99999;
        border-radius: 0;
        margin: 0;
        padding: 10px;
        box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.2);
    }

    .meltea-cta-section .cta-blogparts-area {
        transform: none;
        padding: 0;
    }

    .meltea-cta-section .cta-info-text {
        display: none;
    }
}
@media (max-width: 768px) {
    .l-footer,
    .l-footer__inner,
    .l-footer__foot,
    #before_footer_widget,
    .l-footer__foot * {
        position: static !important;
        z-index: auto !important;
    }
}

/* TOP */
/* =========================================
   �������k��LP - TOP�y�[�W CSS

   ========================================= */

/* =========================================
   �O���t�H���g�ǂݍ���
   ========================================= */
@import url('https://fonts.googleapis.com/css2?family=Zen+Maru+Gothic:wght@400;body.page-top 500;700;900&family=Great+Vibes&family=Oswald:wght@700&display=swap');

/* =========================================
   CSS�ϐ���`
   ========================================= */
:root {
    /* �J���[ */
    --lp-red: #D32F2F;
    --lp-pink: #FFF5F7;
    --lp-blue: #1976D2;
    --lp-gold: #C5A059;
    --lp-text: #333;
    --lp-text-light: #555;
    --lp-text-muted: #888;
    --lp-bg-white: #fff;
    --lp-bg-gray: #f5f5f5;
    --lp-bg-dark-gray: #eee;
    --lp-bg-pink: #FFF0F5;
    
    /* �t�H���g */
    --lp-font-main: "Zen Maru Gothic", sans-serif;
    --lp-font-script: 'Great Vibes', cursive;
    --lp-font-oswald: 'Oswald', sans-serif;
    
    /* �X�y�[�V���O */
    --lp-section-padding: 100px 20px;
    --lp-container-max: 1100px;
}

/* =========================================
   ���ʊ�{�ݒ�
   ========================================= */
body.page-top .lp-solve-section, body.page-top .lp-reason-section, body.page-top .lp-price-section, body.page-top .lp-cheap-reason-section, body.page-top .lp-promise-section, body.page-top .lp-compare-section, body.page-top .lp-num-section, body.page-top .lp-voice-section, body.page-top .lp-flow-section {
    font-family: var(--lp-font-main);
    color: var(--lp-text);
    line-height: 1.6;
    box-sizing: border-box;
}

/* ���o�����Z�b�g */
body.page-top .lp-solve-section h1, body.page-top .lp-solve-section h2, body.page-top .lp-solve-section h3, body.page-top .lp-reason-section h1, body.page-top .lp-reason-section h2, body.page-top .lp-reason-section h3, body.page-top .lp-price-section h1, body.page-top .lp-price-section h2, body.page-top .lp-price-section h3, body.page-top .lp-cheap-reason-section h1, body.page-top .lp-cheap-reason-section h2, body.page-top .lp-cheap-reason-section h3, body.page-top .lp-promise-section h1, body.page-top .lp-promise-section h2, body.page-top .lp-promise-section h3, body.page-top .lp-compare-section h1, body.page-top .lp-compare-section h2, body.page-top .lp-compare-section h3, body.page-top .lp-num-section h1, body.page-top .lp-num-section h2, body.page-top .lp-num-section h3, body.page-top .lp-voice-section h1, body.page-top .lp-voice-section h2, body.page-top .lp-voice-section h3, body.page-top .lp-flow-section h1, body.page-top .lp-flow-section h2, body.page-top .lp-flow-section h3 {
    all: unset;
    display: block;
    font-family: var(--lp-font-main);
    box-sizing: border-box;
}
/* ���ʃR���e�i */
body.page-top .lp-container {
    max-width: var(--lp-container-max);
    margin: 0 auto;
    padding: 0 20px;
    position: relative;
}

/* �摜���X�|���V�u */
body.page-top .lp-img-responsive {
    max-width: 100%;
    height: auto;
    display: block;
    margin: 0 auto;
}

/* �����N���X */
body.page-top .lp-bold { 
    font-weight: 800; 
    color: var(--lp-text); 
}

body.page-top .lp-red-text { 
    color: var(--lp-red); 
    font-weight: 700; 
}

body.page-top .lp-black-bold { 
    color: var(--lp-text); 
    font-weight: 900; 
}

/* PC/SP�摜�؂�ւ� */
body.page-top .lp-pc-img { display: block; }
body.page-top .lp-sp-img { display: none; }

/* =========================================
   ���ʃA�j���[�V����
   ========================================= */
@keyframes lpFadeInUp {
    0% { opacity: 0; transform: translateY(30px); }
    100% { opacity: 1; transform: translateY(0); }
}

@keyframes drawString {
    to { stroke-dashoffset: 0; }
}

@keyframes rotateCircle {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

@keyframes rotateCircleReverse {
    from { transform: rotate(0deg); }
    to { transform: rotate(-360deg); }
}

@keyframes lpFloat {
    0%, 100% { transform: translateY(0) translateX(-50%); }
    50% { transform: translateY(-5px) translateX(-50%); }
}

@keyframes lpFloatY {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-10px); }
}

@keyframes lpImgStepSwitch {
    0% { opacity: 0; }
    0.1% { opacity: 1; }
    49.9% { opacity: 1; }
    50% { opacity: 0; }
    100% { opacity: 0; }
}

@keyframes drawSolveThread {
    0% { stroke-dasharray: 0 1000; stroke-dashoffset: 0; }
    50% { stroke-dasharray: 1000 0; stroke-dashoffset: 0; }
    100% { stroke-dasharray: 0 1000; stroke-dashoffset: -1000; }
}

@keyframes drawReasonThread {
    to { stroke-dashoffset: 0; }
}

@keyframes quoteAppearLeft {
    0% { top: 50%; left: 50%; transform: translate(-50%, -50%) scale(0); opacity: 0; }
    100% { top: 0; left: 10px; transform: translate(0, 0) scale(1); opacity: 1; }
}

@keyframes quoteAppearRight {
    0% { bottom: 50%; right: 50%; transform: translate(50%, 50%) rotate(180deg) scale(0); opacity: 0; }
    100% { bottom: 0; right: 10px; transform: rotate(180deg) scale(1); opacity: 1; }
}
body.page-top {
    overflow-x: hidden;
}
/* �t�F�[�h�C���A�j���[�V�����p�N���X */
body.page-top .js-fade-in {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}

body.page-top .js-fade-in.is-visible {
    opacity: 1;
    transform: translateY(0);
}
  body.page-top .uni-wrapper {
    position: relative;
    width: 100%;
    overflow: visible;
    background-color: transparent;
    font-family: 'Noto Sans JP', sans-serif;
  }
  
  body.page-top .uni-font-maru {
    font-family: 'Zen Maru Gothic', sans-serif;
  }

  /* --- 1. �Œ�w�i�G���A�iFV�`ABOUT�p�j --- */
  body.page-top .uni-fixed-layer {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    z-index: 1; /* ��Ԕw�� */
    pointer-events: none;
  }

  /* �Ȑ��A�j���[�V���� */
  body.page-top .uni-curve-svg {
    position: absolute;
    fill: none !important;
    stroke-linecap: round;
    stroke-linejoin: round;
    mix-blend-mode: multiply;
  }
  @keyframes uniDrawLine {
    0% { stroke-dashoffset: 2000; }
    100% { stroke-dashoffset: 0; }
  }
  body.page-top .uni-curve-svg path {
    stroke-dasharray: 2000; 
    stroke-dashoffset: 2000; 
    animation: uniDrawLine 3.0s ease-out forwards;
  }
  body.page-top .uni-curve-pink { top: -10%; right: -10%; width: 75vw; max-width: 900px; transform: rotate(5deg); opacity: 0.3; z-index: 1; }
  body.page-top .uni-curve-pink path { stroke: #FF80AB; stroke-width: 60px; animation-delay: 0.2s; }
  body.page-top .uni-curve-red { top: 15%; right: -20%; width: 90vw; max-width: 1200px; z-index: 2; }
  body.page-top .uni-curve-red path { stroke: #D32F2F; stroke-width: 70px; animation-delay: 0.5s; }
  body.page-top .uni-curve-gray { bottom: -15%; right: -10%; width: 80vw; opacity: 0.5; z-index: 1; }
  body.page-top .uni-curve-gray path { stroke: #BDBDBD; stroke-width: 86px; animation-delay: 0s; }

  /* �w�i�摜�Q�iPC�T�C�Y�j */
  body.page-top .uni-static-img { position: absolute; border-radius: 6px; box-shadow: 0 15px 40px rgba(0,0,0,0.1); opacity: 0; animation: uniFadeIn 1.5s ease-out both; }
  @keyframes uniFadeIn {
    from { opacity: 0; transform: translateY(20px); }
    to { opacity: 1; transform: translateY(0); }
  }
  body.page-top .u-img-1 { top: 12%; right: 20%; width: 420px; max-width: 40vw; z-index: 2; animation-delay: 0.8s; }
  body.page-top .u-img-2 { top: 45%; right: 5%; width: 280px; max-width: 25vw; z-index: 3; animation-delay: 1.0s; }
  body.page-top .u-img-3 { bottom: 12%; right: 35%; width: 380px; max-width: 35vw; z-index: 4; animation-delay: 1.2s; }

  /* --- 2. FV�G���A --- */
  body.page-top .uni-fv-area {
    position: relative;
    z-index: 10; /* �Œ�w�i���O */
    width: 100%;
    height: 100vh;
    display: flex;
    align-items: center; 
    padding-left: 15%; 
  }
  body.page-top .uni-fv-content-wrapper {
    width: 100%; max-width: 620px; display: flex; flex-direction: column; gap: 15px; 
    transform: translateY(-5vh); align-items: center; text-align: center;
  }
  body.page-top .uni-copy-img { width: 100%; animation: uniFadeIn 1s ease-out both 0.5s; }
  body.page-top .uni-fv-sub-copy { font-size: 18px; line-height: 1.6; color: #333; font-weight: 500; animation: uniFadeIn 1s ease-out both 0.8s; }
  body.page-top .uni-badge-img { width: 100%; animation: uniFadeIn 1s ease-out both 1.0s; }
  body.page-top .uni-annotation { font-size: 12px; line-height: 1.5; color: #C4A86F; text-align: left; animation: uniFadeIn 1s ease-out both 1.2s; }

  /* --- 3. ABOUT�G���A --- */
  body.page-top .uni-about-wrapper {
    position: relative;
    z-index: 10; /* �Œ�w�i���O */
    padding-bottom: 150px;
  }
  body.page-top .uni-about-card {
    background-color: #fff; width: 90%; max-width: 1200px; margin: 0 auto; padding: 100px 80px;
    border-radius: 8px; box-shadow: 0 10px 60px rgba(0,0,0,0.05);
  }
  body.page-top .uni-row-2col { display: flex; gap: 60px; }
  body.page-top .uni-col-left { width: 45%; display: flex; flex-direction: column; gap: 30px; }
  /* �y�C���z���x����Ԃ� */
  body.page-top .uni-label-text { color: var(--lp-red); font-weight: bold; letter-spacing: 0.1em; font-size: 14px; }
  body.page-top .uni-catch-text { font-size: 26px; font-weight: 700; line-height: 1.8; color: #333; }
  body.page-top .uni-col-right { width: 55%; font-size: 16px; color: #555; }
  body.page-top .uni-col-right p { margin-bottom: 1.5em; line-height: 1.8; }

  /* --- 4. ���Y�݃Z�N�V�����i��������Œ�w�i���B���j --- */
  body.page-top .lp-worry-section {
    position: relative;
    z-index: 20; /* ABOUT(10)��荂�����邱�ƂŁA�X�N���[�����ɌŒ�w�i(1)��h��Ԃ� */
    width: 100%;
    background-color: var(--lp-pink) !important;
    padding: 120px 0;
    text-align: center;
    border-top-left-radius: 60px;
    border-top-right-radius: 60px;
  }
  body.page-top .lp-worry-content { max-width: 1100px; margin: 0 auto; padding: 0 20px; }
  body.page-top .lp-worry-title { 
    all: unset; display: block; font-family: 'Zen Maru Gothic', sans-serif;
    font-size: 32px; font-weight: 700; margin-bottom: 25px; color: #333; line-height: 1.5; 
  }
  /* �y�C���z�_���ƎO�p��ԂɕύX */
  body.page-top .lp-worry-bubble-line-container { display: flex; align-items: center; justify-content: center; width: 100%; height: 20px; margin: 0 auto 40px; max-width: 500px; }
  body.page-top .lp-worry-dot-line { flex: 1; height: 0; border-bottom: 4px dotted var(--lp-red); opacity: 0.8; }
  body.page-top .lp-worry-triangle-svg { width: 24px; height: 18px; margin: 0 10px; fill: var(--lp-red); }
  
  body.page-top .lp-img-responsive { max-width: 100%; display: block; margin: 0 auto; }
  body.page-top .lp-worry-img { width: 100%; }
  body.page-top .lp-pc-img { display: block; }
  body.page-top .lp-sp-img { display: none; }

  body.page-top .js-fade-in { opacity: 0; transform: translateY(30px); transition: opacity 0.8s ease-out, transform 0.8s ease-out; }
  body.page-top .js-fade-in.is-visible { opacity: 1; transform: translateY(0); }

  /* --- ���X�}�z�\������ (������������Ԃɕ���) �� --- */
  @media (max-width: 768px) {
    /* �Ȑ� */
    body.page-top .uni-curve-pink { width: 120%; right: -30%; top: 5%; }
    body.page-top .uni-curve-red { width: 160%; top: 35%; right: -60%; }
    body.page-top .uni-curve-gray { width: 150%; right: -30%; bottom: 0; }
    
    /* �w�i�摜�Ĕz�u */
    body.page-top .u-img-1 { width: 100px; top: 8%; left: 5%; right: auto; }
    body.page-top .u-img-2 { width: 90px; top: 38%; right: 2%; } 
    body.page-top .u-img-3 { width: 140px; bottom: 15%; left: 8%; right: auto; }

    /* FV�G���A���� */
    body.page-top .uni-fv-area { padding-left: 20px; padding-right: 20px; justify-content: center; }
    body.page-top .uni-fv-content-wrapper { max-width: 100%; transform: translateY(-30px); gap: 12px; }
    body.page-top .uni-copy-img { width: 88%; margin: 0 auto; }
    body.page-top .uni-fv-sub-copy { font-size: 15px; }
    body.page-top .uni-badge-img { width: 85%; max-width: 300px; margin: 0 auto; }
    body.page-top .uni-annotation { font-size: 10px; line-height: 1.4; margin-top: 8px; }
    
    /* ABOUT���� */
    body.page-top .uni-about-card { width: 92%; padding: 60px 20px; border-radius: 8px; }
    body.page-top .uni-row-2col { flex-direction: column; gap: 30px; }
    body.page-top .uni-col-left, body.page-top .uni-col-right { width: 100%; }
    body.page-top .uni-catch-text { font-size: 22px; }
    body.page-top .uni-col-right { font-size: 15px; }
    
    /* ���Y�݃Z�N�V�������� */
    body.page-top .lp-worry-section { padding: 80px 0; border-top-left-radius: 40px; border-top-right-radius: 40px; }
    body.page-top .lp-worry-title { font-size: 24px; padding: 0 10px; }
    body.page-top .lp-pc-img { display: none; }
    body.page-top .lp-sp-img { display: block; }
  }



/* =========================================
   �����Z�N�V����
   ========================================= */
body.page-top .lp-solve-section {
    position: relative;
    background-color: var(--lp-red) !important;
    padding: 100px 20px 0;
    margin-bottom: 0;
    text-align: center;
    z-index: 2;
    overflow: hidden;
    color: var(--lp-bg-white);
}

body.page-top .lp-solve-arrow-top {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 30px 40px 0 40px;
    border-color: var(--lp-bg-white) transparent transparent transparent;
    z-index: 5;
}

/* �w�i���� */
body.page-top .lp-circle-svg {
    position: absolute;
    pointer-events: none;
    z-index: 0;
    overflow: visible;
}

body.page-top .lp-circle-path {
    fill: none;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-dasharray: 10 15;
}

body.page-top .lp-solve-bg-svg path, body.page-top .lp-solve-bg-svg .lp-circle-path {
    stroke: rgba(255, 255, 255, 0.2);
}

body.page-top .lp-sbg-1 {
    width: 200px;
    height: 200px;
    top: 15%;
    left: 5%;
    animation: rotateCircle 50s linear infinite;
}

body.page-top .lp-sbg-2 {
    width: 250px;
    height: 250px;
    bottom: 10%;
    right: 5%;
    animation: rotateCircleReverse 60s linear infinite;
}

body.page-top .lp-sbg-3 {
    width: 150px;
    height: 150px;
    top: 30%;
    right: 15%;
    animation: rotateCircle 45s linear infinite;
}

body.page-top .lp-sbg-4 {
    width: 100px;
    height: 100px;
    bottom: 40%;
    left: 10%;
    animation: rotateCircleReverse 40s linear infinite;
}

body.page-top .lp-solve-thread-svg {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 120%;
    height: 100%;
    z-index: 1;
    pointer-events: none;
}

body.page-top .lp-solve-thread-path {
    fill: none;
    stroke: #ffcdd2;
    stroke-width: 1.5;
    opacity: 0.6;
    animation: drawSolveThread 6s ease-in-out infinite;
}

body.page-top .lp-solve-content {
    position: relative;
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 20px;
    z-index: 2;
    padding-bottom: 40px;
    width: 100%;
    max-width: 500px;
    margin: 0 auto;
}

body.page-top .lp-solve-quote {
    position: absolute;
    font-family: serif;
    font-size: 8rem;
    color: var(--lp-bg-white);
    opacity: 1;
    line-height: 1;
    z-index: 10;
}

body.page-top .lp-quote-left {
    animation: quoteAppearLeft 1.5s cubic-bezier(0.25, 1, 0.5, 1) forwards;
}

body.page-top .lp-quote-right {
    animation: quoteAppearRight 1.5s cubic-bezier(0.25, 1, 0.5, 1) forwards;
}

body.page-top .lp-solve-text {
    font-size: 2rem !important;
    font-weight: 700 !important;
    color: var(--lp-bg-white) !important;
    margin: 0 !important;
    text-shadow: 0 2px 4px rgba(0,0,0,0.1);
}

body.page-top .lp-solve-img-wrapper {
    background: var(--lp-bg-white);
    padding: 20px 40px;
    border-radius: 50px;
}

body.page-top .lp-solve-img {
    width: 300px;
    max-width: 100%;
    display: block;
}

/* =========================================
   �I�΂�闝�R�Z�N�V����
   ========================================= */
body.page-top .lp-reason-section {
    background-color: var(--lp-red) !important;
    padding: 120px 20px;
    margin-top: -1px;
    position: relative;
    z-index: 1;
}

body.page-top .lp-reason-bg-thread-sp {
    display: none;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 0;
    pointer-events: none;
    overflow: visible;
}

body.page-top .lp-reason-bg-thread-path {
    fill: none;
    stroke: rgba(255, 255, 255, 0.2);
    stroke-width: 2;
    stroke-linecap: round;
    stroke-dasharray: 4000;
    stroke-dashoffset: 4000;
    animation: drawReasonThread 4s ease-out forwards;
}

body.page-top .lp-reason-container {
    max-width: var(--lp-container-max);
    margin: 0 auto;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    position: relative;
    z-index: 1;
}

body.page-top .lp-reason-left {
    width: 30%;
    position: -webkit-sticky;
    position: sticky;
    top: 50%;
    transform: translateY(-50%);
    height: fit-content;
    text-align: left;
    padding-right: 20px;
}

body.page-top .lp-reason-head-text {
    font-size: 1.1rem !important;
    font-weight: 700 !important;
    color: var(--lp-bg-white) !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1.4 !important;
    display: block !important;
    opacity: 0.9;
}

body.page-top .lp-reason-title {
    font-size: 2.4rem !important;
    font-weight: 900 !important;
    line-height: 1.2 !important;
    color: var(--lp-bg-white) !important;
    position: relative !important;
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
}

body.page-top .lp-reason-right {
    width: 65%;
}

body.page-top .lp-reason-card {
    background: var(--lp-bg-white);
    border-radius: 20px;
    padding: 50px;
    margin-bottom: 40px;
    border: 1px solid #f0f0f0;
    position: relative;
    overflow: visible;
    z-index: 1;
    color: var(--lp-text);
}

body.page-top .lp-card-num-wrapper {
    position: absolute;
    top: 20px;
    right: 30px;
    width: 80px;
    height: 80px;
    display: flex;
    align-items: center;
    justify-content: center;
}

body.page-top .lp-num-circle-svg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    animation: rotateCircle 15s linear infinite;
}

body.page-top .lp-num-circle-path {
    fill: none;
    stroke: var(--lp-red);
    stroke-width: 2;
    stroke-dasharray: 6 8;
}

body.page-top .lp-card-num {
    font-size: 2.5rem;
    font-weight: 900;
    color: var(--lp-red);
    line-height: 1;
    font-family: sans-serif;
    position: relative;
    z-index: 1;
}

body.page-top .lp-card-title {
    font-size: 1.8rem !important;
    font-weight: 700 !important;
    color: var(--lp-red) !important;
    margin-bottom: 20px !important;
    display: flex !important;
    align-items: center !important;
    border-left: 6px solid var(--lp-red) !important;
    padding-left: 15px !important;
    background: none !important;
}

body.page-top .lp-card-title::before {
    display: none !important;
}

body.page-top .lp-card-desc {
    font-size: 1.05rem;
    color: #444;
    margin-bottom: 30px;
    line-height: 1.8;
}

body.page-top .lp-card-img {
    width: 100%;
    height: auto;
    border-radius: 10px;
}
/* =========================================
   �����Z�N�V����
   ========================================= */
body.page-top .lp-price-section {
    padding: 100px 0;
    background-color: var(--lp-bg-white) !important;
    text-align: center;
    position: relative;
}

body.page-top .lp-price-thread-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: 0;
}

body.page-top .lp-price-thread-path {
    fill: none;
    stroke: rgba(211, 47, 47, 0.1);
    stroke-width: 2;
    stroke-dasharray: 20 10;
}

body.page-top .lp-price-content {
    position: relative;
    z-index: 1;
}

body.page-top .lp-price-catch {
    font-size: 1rem;
    font-weight: 700;
    color: var(--lp-red);
    margin-bottom: 0;
    display: inline-flex;
    align-items: center;
    gap: 15px;
    line-height: 1;
}

body.page-top .lp-price-catch::before, body.page-top .lp-price-catch::after {
    content: '';
    display: block;
    width: 15px;
    height: 2px;
    background: var(--lp-red);
}

body.page-top .lp-price-catch::before {
    transform: rotate(60deg);
}

body.page-top .lp-price-catch::after {
    transform: rotate(-60deg);
}

body.page-top .lp-price-title {
    font-size: 2.5rem !important;
    font-weight: 900 !important;
    margin-top: 5px !important;
    margin-bottom: 60px !important;
    line-height: 1.2 !important;
    color: var(--lp-text) !important;
}

body.page-top .lp-price-card {
    background: var(--lp-bg-white);
    border: 3px solid var(--lp-red);
    border-radius: 30px;
    padding: 80px 30px 50px;
    max-width: 700px;
    margin: 0 auto;
    position: relative;
}

body.page-top .lp-price-badge-combined {
    position: absolute;
    top: -35px;
    left: 50%;
    transform: translateX(-50%);
    background: var(--lp-red);
    color: var(--lp-bg-white);
    padding: 12px 40px;
    border-radius: 60px;
    text-align: center;
    z-index: 5;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

body.page-top .lp-badge-main {
    font-size: 0.9rem;
    font-weight: 700;
    opacity: 0.9;
    margin-bottom: 2px;
    white-space: nowrap;
}

body.page-top .lp-badge-sub {
    font-size: 1.2rem;
    font-weight: 900;
    white-space: nowrap;
    line-height: 1.1;
}

body.page-top .lp-main-price-box {
    margin: 10px 0 40px;
    display: inline-block;
    width: 100%;
}

body.page-top .lp-price-label {
    font-size: 1.2rem;
    font-weight: 700;
    display: block;
    color: #666;
    margin-bottom: 5px;
}

body.page-top .lp-price-amount {
    font-size: 5rem;
    font-weight: 900;
    color: var(--lp-red);
    line-height: 1;
    font-family: sans-serif;
    letter-spacing: -2px;
}

body.page-top .lp-price-unit {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--lp-text);
}

body.page-top .lp-price-tax {
    font-size: 1rem;
    color: var(--lp-text-muted);
}

body.page-top .lp-sub-price-grid {
    display: flex;
    justify-content: center;
    gap: 20px;
    margin: 30px 0;
    flex-wrap: wrap;
}

body.page-top .lp-sub-price-item {
    background: var(--lp-bg-gray);
    width: 140px;
    height: 140px;
    border-radius: 50%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    position: relative;
}

body.page-top .lp-sub-circle-svg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    animation: rotateCircle 20s linear infinite;
    pointer-events: none;
}

body.page-top .lp-sub-circle-path {
    fill: none;
    stroke: var(--lp-red);
    stroke-width: 2;
    stroke-dasharray: 6 6;
}

body.page-top .lp-sub-label {
    font-size: 0.9rem;
    font-weight: 700;
    margin-bottom: 5px;
    color: var(--lp-text-light);
    position: relative;
    z-index: 1;
}

body.page-top .lp-sub-amount {
    font-size: 1.3rem;
    font-weight: 900;
    color: var(--lp-text);
    line-height: 1.2;
    position: relative;
    z-index: 1;
}

body.page-top .lp-sub-tax {
    font-size: 0.8rem;
    font-weight: normal;
    display: block;
    position: relative;
    z-index: 1;
}

body.page-top .lp-price-check-list {
    list-style: none;
    padding: 0;
    margin: 40px 0 0;
    text-align: left;
    display: inline-block;
}

body.page-top .lp-price-check-item {
    font-size: 1.2rem;
    font-weight: 700;
    margin-bottom: 10px;
    position: relative;
    padding-left: 35px;
    line-height: 1.5;
}

body.page-top .lp-price-check-item::before {
    content: '';
    position: absolute;
    left: 0;
    top: 2px;
    background-color: var(--lp-red);
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
    background-size: 14px;
    background-repeat: no-repeat;
    background-position: center;
}

/* =========================================
   �������R�Z�N�V����
   ========================================= */
body.page-top .lp-cheap-reason-section {
    padding: 100px 0 120px;
    background-color: var(--lp-bg-gray) !important;
    position: relative;
    overflow: hidden;
    margin-bottom: 0 !important;
}

body.page-top .lp-cheap-reason-title-area {
    text-align: center;
    margin-bottom: 60px;
    position: relative;
}

body.page-top .lp-cheap-reason-title-main {
    font-size: 2.2rem !important;
    font-weight: 700 !important;
    display: inline-block !important;
    margin-bottom: 20px !important;
    position: relative !important;
    padding-bottom: 15px !important;
    border: none !important;
    color: var(--lp-text) !important;
}

body.page-top .lp-cheap-reason-title-main::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 80px;
    height: 6px;
    background-color: var(--lp-red);
    border-radius: 5px;
}

body.page-top .lp-cheap-reason-sub {
    font-size: 1.1rem;
    font-weight: 500;
    color: var(--lp-text-light);
}

body.page-top .lp-cheap-reason-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    column-gap: 30px;
    row-gap: 0;
    position: relative;
    z-index: 2;
    align-items: stretch;
    max-width: 1000px;
    margin: 40px auto 0;
}

body.page-top .lp-cheap-reason-box {
    background: var(--lp-bg-white) !important;
    padding: 50px 25px 30px;
    border-radius: 15px;
    text-align: center;
    position: relative;
    margin: 0 !important;
    display: flex;
    flex-direction: column;
    align-items: center;
    height: 100%;
    box-sizing: border-box;
    vertical-align: top;
}

body.page-top .lp-cheap-reason-box:first-child {
    margin-top: 0 !important;
}

body.page-top .lp-cheap-reason-icon-bg {
    width: 80px;
    height: 80px;
    background: var(--lp-red);
    border-radius: 15px;
    position: absolute;
    top: -40px;
    left: 50%;
    transform: translateX(-50%) rotate(45deg);
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
}

body.page-top .lp-cheap-reason-icon-inner {
    transform: rotate(-45deg);
    width: 40px;
    height: 40px;
}

body.page-top .lp-cheap-reason-icon-inner .lp-icon-svg {
    width: 100%;
    height: 100%;
    fill: var(--lp-bg-white);
}

body.page-top .lp-cheap-reason-head {
    font-size: 1.4rem !important;
    font-weight: 700 !important;
    color: var(--lp-text) !important;
    margin-top: 20px !important;
    margin-bottom: 15px !important;
    padding: 0 0 10px 0 !important;
    border: none !important;
    background: none !important;
    box-shadow: none !important;
    display: block !important;
    width: 100% !important;
    line-height: 1.4 !important;
    min-height: 3.2em;
}

body.page-top .lp-cheap-reason-head::before, body.page-top .lp-cheap-reason-head::after {
    content: none !important;
    display: none !important;
}

body.page-top .lp-cheap-reason-desc {
    font-size: 0.95rem;
    text-align: left;
    color: #666;
    flex: 1;
}

/* =========================================
   ���񑩃Z�N�V����
   ========================================= */
body.page-top .lp-promise-section {
    padding: 100px 0;
    background-color: var(--lp-bg-white) !important;
    position: relative;
    text-align: center;
    margin-top: 0 !important;
}

body.page-top .lp-promise-img {
    width: 130px;
    height: auto;
    margin: 0 auto 30px;
    opacity: 0.6;
}

body.page-top .lp-promise-main {
    font-size: 1.8rem;
    font-weight: 700;
    margin-bottom: 60px;
    line-height: 1.8;
}

body.page-top .lp-promise-highlight {
    font-size: 2.5rem;
    font-weight: 900;
    color: var(--lp-red);
    display: inline-block;
    position: relative;
    padding-bottom: 10px;
}

body.page-top .lp-promise-thread {
    position: absolute;
    bottom: 0;
    left: -50%;
    width: 200%;
    height: 15px;
}

body.page-top .lp-promise-thread path {
    fill: none;
    stroke: var(--lp-red);
    stroke-width: 3;
    stroke-linecap: round;
    stroke-dasharray: 1000;
    stroke-dashoffset: 1000;
    animation: drawString 2s ease-out forwards;
    animation-delay: 1.0s;
}

/* =========================================
   ��r�Z�N�V����
   ========================================= */
body.page-top .lp-compare-section {
    padding: 80px 0 0 !important;
    background-color: var(--lp-bg-pink) !important;
    position: relative;
    margin-bottom: 0 !important;
}

body.page-top .lp-compare-header-flex {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 30px;
    max-width: 800px;
    margin: 0 auto 50px;
    text-align: left;
}

body.page-top .lp-compare-header-text {
    flex: 1;
}

body.page-top .lp-compare-title {
    font-size: 2rem !important;
    font-weight: 700 !important;
    margin-bottom: 10px !important;
    display: inline-block !important;
    color: var(--lp-text) !important;
}

body.page-top .lp-compare-header-img {
    width: 120px;
    height: auto;
    border-radius: 10px;
}

body.page-top .lp-compare-table {
    display: flex;
    justify-content: center;
    align-items: stretch;
    gap: 15px;
    max-width: 900px;
    margin: 0 auto;
}

body.page-top .lp-compare-col {
    flex: 1;
    background: var(--lp-bg-white);
    border-radius: 15px;
    padding: 0 0 20px;
    text-align: center;
    border: 1px solid #eee;
}

body.page-top .lp-col-main {
    flex: 1.2;
    background: var(--lp-bg-white);
    border: 3px solid var(--lp-red);
    border-radius: 15px;
    transform: scale(1.05);
    z-index: 2;
    position: relative;
    overflow: visible;
}

body.page-top .lp-col-head {
    padding: 20px 5px;
    font-weight: 700;
    border-radius: 12px 12px 0 0;
    font-size: 1.1rem;
    min-height: 70px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #eee;
}

body.page-top .lp-col-main .lp-col-head {
    background: var(--lp-red);
    color: var(--lp-bg-white);
    font-size: 1.4rem;
    width: 100%;
    border-radius: 10px 10px 0 0;
}

body.page-top .lp-badge {
    position: absolute;
    top: -20px;
    left: 50%;
    transform: translateX(-50%);
    background: #FFD700;
    color: var(--lp-text);
    padding: 8px 30px;
    border-radius: 30px;
    font-weight: 900;
    border: 2px solid var(--lp-bg-white);
    animation: lpFloat 2s ease-in-out infinite;
    z-index: 10;
    white-space: nowrap;
    display: flex;
    align-items: center;
    gap: 10px;
}

body.page-top .lp-badge::before {
    content: '';
    display: block;
    width: 3px;
    height: 14px;
    background: var(--lp-text);
    transform: skewX(20deg);
}

body.page-top .lp-badge::after {
    content: '';
    display: block;
    width: 3px;
    height: 14px;
    background: var(--lp-text);
    transform: skewX(-20deg);
}

body.page-top .lp-row {
    padding: 20px 10px;
    border-bottom: 1px dashed #ddd;
}

body.page-top .lp-row:last-child {
    border-bottom: none;
}

body.page-top .lp-row-label {
    display: block;
    font-size: 0.8rem;
    color: var(--lp-text-muted);
    margin-bottom: 5px;
}

body.page-top .lp-row-val {
    font-weight: 700;
    font-size: 1.1rem;
    display: block;
}

body.page-top .lp-highlight-val {
    color: var(--lp-text);
    font-size: 1.4rem;
    font-weight: 900;
}

body.page-top .lp-compare-summary-box {
    margin-top: 60px;
    margin-bottom: 0 !important;
    text-align: center;
    position: relative;
    padding: 0 10px 40px;
}

body.page-top .lp-summary-bg {
    background: var(--lp-bg-white);
    display: inline-block;
    padding: 40px 50px;
    border-radius: 60px 0 60px 0;
    position: relative;
}

body.page-top .lp-summary-content {
    position: relative;
    z-index: 1;
}

body.page-top .lp-summary-top {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: 15px;
    margin-bottom: 15px;
    font-weight: 900;
    line-height: 1.2;
}

body.page-top .lp-summary-red-big {
    font-size: 1.8rem;
    color: var(--lp-red);
    letter-spacing: -1px;
}

body.page-top .lp-summary-x {
    font-size: 1.6rem;
    color: #ccc;
    font-weight: 300;
    margin: 0 5px;
}

body.page-top .lp-summary-bottom {
    font-size: 1.3rem;
    font-weight: 700;
    color: var(--lp-text);
    line-height: 1.6;
}

body.page-top .lp-text-highlight-black {
    display: inline-block;
    position: relative;
    font-size: 2.6rem;
    font-weight: 900;
    color: var(--lp-text);
    line-height: 1.2;
    margin-top: 10px;
    padding-bottom: 25px;
    z-index: 1;
}

body.page-top .lp-thread-underline {
    position: absolute;
    bottom: -5px;
    left: 0;
    width: 100%;
    height: 30px;
    pointer-events: none;
    z-index: -1;
}

body.page-top .lp-thread-underline path {
    fill: none;
    stroke: var(--lp-red);
    stroke-width: 4;
    stroke-linecap: round;
    stroke-dasharray: 1000;
    stroke-dashoffset: 1000;
    animation: drawString 1.5s ease-out forwards;
    animation-delay: 1.4s;
}

/* =========================================
   �����Ō���Z�N�V����
   ========================================= */
body.page-top .lp-num-section {
    padding: 40px 0 80px !important;
    background-color: var(--lp-bg-dark-gray) !important;
    position: relative;
    overflow: hidden;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

body.page-top .lp-num-header {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 30px;
    margin-bottom: 60px;
    position: relative;
}

body.page-top .lp-header-img-box {
    width: 120px;
    height: 120px;
    position: relative;
}

body.page-top .lp-header-img-box img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

body.page-top .lp-header-img-box .lp-header-img-1 {
    animation: lpImgStepSwitch 4s infinite;
}

body.page-top .lp-header-img-box .lp-header-img-2 {
    animation: lpImgStepSwitch 4s infinite;
    animation-delay: 2s;
    opacity: 0;
}

body.page-top .lp-num-title-box {
    text-align: center;
    z-index: 2;
}

body.page-top .lp-num-title-badge {
    background-color: var(--lp-red);
    color: var(--lp-bg-white);
    font-size: 2rem;
    font-weight: 900;
    padding: 15px 50px;
    border-radius: 100px;
    display: inline-block;
    line-height: 1.2;
    margin-bottom: 20px;
}

body.page-top .lp-num-desc {
    font-weight: 700;
    color: var(--lp-text-light);
    font-size: 1.1rem;
}

body.page-top .lp-num-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-template-rows: auto auto auto auto;
    gap: 30px;
    position: relative;
}

body.page-top .lp-deco-changer {
    position: absolute;
    z-index: 20;
    pointer-events: none;
    width: 130px;
    height: 130px;
}

body.page-top .lp-deco-changer img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: auto;
}

body.page-top .lp-deco-changer .lp-deco-img-1 {
    animation: lpImgStepSwitch 4s infinite;
}

body.page-top .lp-deco-changer .lp-deco-img-2 {
    animation: lpImgStepSwitch 4s infinite;
    animation-delay: 2s;
    opacity: 0;
}

body.page-top .lp-deco-pos-1 {
    top: 22%;
    right: -40px;
    transform: rotate(15deg);
}

body.page-top .lp-deco-pos-2 {
    top: 38%;
    left: 28%;
    transform: rotate(-10deg);
}

body.page-top .lp-deco-pos-3 {
    bottom: -50px;
    right: 5%;
    transform: rotate(5deg);
}

body.page-top .lp-num-card {
    background: var(--lp-bg-white) !important;
    border-radius: 24px;
    padding: 30px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    position: relative;
    overflow: visible;
    border: none !important;
    box-shadow: 0 10px 30px rgba(0,0,0,0.05);
}

body.page-top .lp-num-card h3, body.page-top .lp-num-card .lp-num-label-text {
    border: none !important;
    background: none !important;
    padding-bottom: 0 !important;
}

body.page-top .lp-num-card h3::before, body.page-top .lp-num-card h3::after, body.page-top .lp-num-card p::before, body.page-top .lp-num-card p::after {
    content: none !important;
    display: none !important;
}

body.page-top .lp-num-card div, body.page-top .lp-num-card p, body.page-top .lp-num-card span {
    border-bottom: none !important;
    background-image: none !important;
    box-shadow: none !important;
}

body.page-top .lp-card-members {
    grid-column: span 2;
    grid-row: span 1;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
}

body.page-top .lp-card-members-left {
    flex: 1;
}

body.page-top .lp-card-members-right {
    flex: 1;
    padding-left: 20px;
    font-size: 0.9rem;
    line-height: 1.6;
    border-left: 1px solid #eee;
    border-bottom: none !important;
    background: none !important;
}

body.page-top .lp-card-new {
    grid-column: span 1;
    grid-row: span 1;
}

body.page-top .lp-card-period {
    grid-column: span 1;
    grid-row: span 1;
}

body.page-top .lp-card-income {
    grid-column: span 2;
    grid-row: span 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

body.page-top .lp-card-gender {
    grid-column: span 3;
    grid-row: span 1;
}

body.page-top .lp-card-age {
    grid-column: span 3;
    grid-row: span 1;
}

body.page-top .lp-icon-diamond-wrap {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 15px;
}

body.page-top .lp-icon-diamond-wrap.lp-center {
    justify-content: center;
}

body.page-top .lp-icon-diamond-bg {
    width: 56px;
    height: 56px;
    background: var(--lp-red);
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 10px;
    flex-shrink: 0;
}

body.page-top .lp-icon-diamond-bg.is-blue {
    background: var(--lp-blue);
}

body.page-top .lp-icon-inner {
    width: 32px;
    height: 32px;
    fill: #ffffff !important;
    stroke: none !important;
}

body.page-top .lp-icon-diamond-bg svg, body.page-top .lp-icon-diamond-bg svg path {
    fill: #ffffff !important;
}

body.page-top .lp-num-big {
    font-size: 3.5rem;
    font-weight: 900;
    color: var(--lp-red);
    line-height: 1;
    letter-spacing: -2px;
    opacity: 0;
    transition: opacity 0.5s;
}

body.page-top .lp-num-big.is-blue {
    color: var(--lp-blue);
}

body.page-top .lp-num-big.is-visible {
    opacity: 1;
}

body.page-top .lp-num-label-text {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--lp-text-light);
}

body.page-top .lp-num-label-wrap {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

body.page-top .lp-num-note-inline {
    font-size: 0.8rem;
    font-weight: normal;
    color: var(--lp-text-muted);
}

body.page-top .lp-num-unit {
    font-size: 1.2rem;
    font-weight: 700;
    color: var(--lp-text);
    margin-left: 5px;
}

body.page-top .lp-num-value-row {
    margin: 5px 0;
}

body.page-top .lp-num-note {
    font-size: 0.8rem;
    color: var(--lp-text-muted);
    margin-top: 5px;
}

body.page-top .lp-num-card-center {
    text-align: center;
}

body.page-top .lp-no1-badge {
    background: #FFD700;
    color: var(--lp-text);
    font-weight: 900;
    padding: 5px 15px;
    border-radius: 20px;
    display: inline-block;
    margin-bottom: 5px;
    font-size: 1rem;
    transform: rotate(-2deg);
}

body.page-top .lp-circle-chart-box {
    position: relative;
    width: 110px;
    height: 110px;
    margin: 0 auto;
    flex-shrink: 0;
}

body.page-top .lp-circle-chart-svg {
    transform: rotate(-90deg);
    width: 100%;
    height: 100%;
}

body.page-top .lp-circle-bg {
    fill: none;
    stroke: #eee;
    stroke-width: 8;
}

body.page-top .lp-circle-val {
    fill: none;
    stroke-width: 8;
    stroke-linecap: round;
    stroke-dasharray: 251;
    stroke-dashoffset: 251;
    transition: stroke-dashoffset 2s ease-out;
}

body.page-top .lp-circle-center {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    text-align: center;
    font-weight: 900;
    line-height: 1;
}

body.page-top .lp-circle-num {
    font-size: 1.6rem;
    color: var(--lp-red);
    display: block;
}

body.page-top .lp-circle-num.is-blue {
    color: var(--lp-blue);
}

body.page-top .lp-circle-decimal {
    font-size: 0.9rem;
}

body.page-top .lp-circle-unit {
    font-size: 0.8rem;
    color: var(--lp-text);
}

body.page-top .lp-period-highlight {
    font-size: 0.9rem;
    color: var(--lp-red);
    font-weight: 700;
    margin-top: 10px;
    background: #fff0f5;
    display: inline-block;
    padding: 2px 10px;
    border-radius: 10px;
}

body.page-top .lp-income-body {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 40px;
    width: 100%;
    margin-top: 15px;
}

body.page-top .lp-income-text {
    text-align: left;
}

body.page-top .lp-income-text p {
    font-size: 1.2rem;
    line-height: 1.6;
    margin: 0;
}

body.page-top .lp-blue-big {
    color: var(--lp-blue);
    font-weight: 900;
    font-size: 1.6rem;
}

body.page-top .lp-gender-visual {
    display: flex;
    align-items: flex-end;
    justify-content: center;
    gap: 40px;
    margin: 30px 0 10px;
}

body.page-top .lp-gender-item {
    display: flex;
    flex-direction: column;
    align-items: center;
}

body.page-top .lp-gender-icon {
    width: 80px;
    height: 80px;
    margin-bottom: 10px;
    opacity: 1 !important;
}

body.page-top .lp-icon-woman {
    fill: var(--lp-red) !important;
}

body.page-top .lp-icon-man {
    fill: var(--lp-blue) !important;
}

body.page-top .lp-gender-percent {
    font-weight: 700;
    font-size: 1.2rem;
}

body.page-top .lp-gender-percent.is-red {
    color: var(--lp-red);
}

body.page-top .lp-gender-percent.is-blue {
    color: var(--lp-blue);
}

body.page-top .lp-gender-bar-area {
    flex: 1;
    margin: 0 20px;
}

body.page-top .lp-gender-bar-wrap {
    width: 100%;
    height: 36px;
    background: #ddd;
    border-radius: 18px;
    overflow: hidden;
    display: flex;
}

body.page-top .lp-gender-bar-women {
    height: 100%;
    background: var(--lp-red);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--lp-bg-white);
    font-weight: 700;
    font-size: 1rem;
    width: 0;
    transition: width 1.5s ease-out;
}

body.page-top .lp-gender-bar-men {
    height: 100%;
    background: var(--lp-blue);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--lp-bg-white);
    font-weight: 700;
    font-size: 1rem;
    width: 0;
    transition: width 1.5s ease-out;
}

body.page-top .lp-gender-note {
    text-align: center;
    font-size: 0.9rem;
    margin-top: 10px;
}

body.page-top .lp-age-container {
    display: flex;
    gap: 50px;
    justify-content: space-around;
    flex-wrap: wrap;
    margin-top: 20px;
}

body.page-top .lp-age-group {
    flex: 1;
    min-width: 280px;
}

body.page-top .lp-age-head {
    text-align: center;
    font-weight: 700;
    margin-bottom: 20px;
    border-bottom: 3px solid #ccc;
    padding-bottom: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    font-size: 1.2rem;
}

body.page-top .lp-age-head.is-blue {
    color: var(--lp-blue);
    border-color: #90CAF9;
}

body.page-top .lp-age-head.is-red {
    color: var(--lp-red);
    border-color: #EF9A9A;
}

body.page-top .lp-age-head-icon {
    width: 30px;
    height: 30px;
}

body.page-top .lp-age-head.is-blue .lp-age-head-icon {
    fill: var(--lp-blue);
}

body.page-top .lp-age-head.is-red .lp-age-head-icon {
    fill: var(--lp-red);
}

body.page-top .lp-age-row {
    display: flex;
    align-items: center;
    margin-bottom: 12px;
    font-size: 0.9rem;
}

body.page-top .lp-age-label {
    width: 75px;
    font-weight: 700;
}

body.page-top .lp-age-bar-area {
    flex: 1;
    background: #ddd;
    height: 14px;
    border-radius: 7px;
    overflow: hidden;
    margin: 0 15px;
    position: relative;
}

body.page-top .lp-age-bar-fill {
    height: 100%;
    border-radius: 7px;
    width: 0;
    transition: width 1.2s ease-out;
}

body.page-top .lp-fill-women {
    background: var(--lp-red);
    opacity: 0.9;
}

body.page-top .lp-fill-men {
    background: var(--lp-blue);
    opacity: 0.9;
}

body.page-top .lp-age-val {
    width: 45px;
    text-align: right;
    font-weight: 900;
}

body.page-top .lp-age-summary {
    text-align: center;
    margin-top: 20px;
    font-weight: 700;
}

body.page-top .lp-num-disclaimer {
    margin-top: 40px;
    color: #999;
}

/* =========================================
   ���q�l�̐��Z�N�V����
   ========================================= */
body.page-top .lp-voice-section {
    padding: 100px 0;
    background-color: var(--lp-red) !important;
    color: var(--lp-bg-white);
    position: relative;
    overflow: hidden;
    margin-top: 0 !important;
}

body.page-top .lp-voice-thread-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: 0;
}

body.page-top .lp-thread-path-bg {
    fill: none;
    stroke: rgba(255, 255, 255, 0.15);
    stroke-width: 2;
    stroke-dasharray: 10 5;
}

body.page-top .lp-voice-header {
    text-align: center;
    margin-bottom: 50px;
    position: relative;
    z-index: 2;
}

body.page-top .lp-voice-bubble {
    display: inline-block;
    background: var(--lp-bg-white);
    color: var(--lp-red);
    font-size: 0.9rem;
    font-weight: 900;
    padding: 6px 18px;
    border-radius: 30px;
    position: relative;
    margin-bottom: 15px;
    font-family: sans-serif;
    letter-spacing: 0.05em;
    box-shadow: 0 4px 10px rgba(0,0,0,0.1);
}

body.page-top .lp-voice-bubble::after {
    content: '';
    position: absolute;
    bottom: -6px;
    left: 50%;
    transform: translateX(-50%);
    border-width: 6px 6px 0;
    border-style: solid;
    border-color: var(--lp-bg-white) transparent transparent transparent;
}

body.page-top .lp-voice-ja {
    font-size: 2.2rem !important;
    font-weight: 900 !important;
    color: var(--lp-bg-white) !important;
    margin: 0 0 15px 0 !important;
    line-height: 1.2 !important;
}

body.page-top .lp-voice-thanks {
    font-size: 1rem;
    font-weight: 500;
    color: rgba(255, 255, 255, 0.9);
    line-height: 1.6;
}

body.page-top .lp-slider-container {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
    position: relative;
    max-width: 1200px;
    margin: 0 auto;
}

body.page-top .lp-voice-btn {
    width: 50px;
    height: 50px;
    border-radius: 50%;
    background: var(--lp-bg-white);
    border: none;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    box-shadow: 0 4px 10px rgba(0,0,0,0.2);
    transition: transform 0.2s, background 0.2s;
    z-index: 10;
    flex-shrink: 0;
}

body.page-top .lp-voice-btn:hover {
    transform: scale(1.1);
    background: #FFF9C4;
}

body.page-top .lp-voice-btn svg {
    width: 24px;
    height: 24px;
    fill: var(--lp-red);
}

body.page-top .lp-voice-track-window {
    width: 100%;
    max-width: 1000px;
    overflow: hidden;
    padding: 20px 10px;
}

body.page-top .lp-voice-track {
    display: flex;
    gap: 30px;
    overflow-x: auto;
    scroll-behavior: smooth;
    -ms-overflow-style: none;
    scrollbar-width: none;
    scroll-snap-type: x mandatory;
    padding-left: 10px;
    padding-right: 10px;
}

body.page-top .lp-voice-track::-webkit-scrollbar {
    display: none;
}

body.page-top .lp-voice-card {
    flex: 0 0 calc((100% - 60px) / 3);
    background: var(--lp-bg-white);
    color: var(--lp-text);
    border-radius: 20px;
    padding: 25px;
    position: relative;
    scroll-snap-align: start;
    box-shadow: 0 10px 20px rgba(0,0,0,0.15);
    transition: transform 0.3s;
    display: flex;
    flex-direction: column;
    box-sizing: border-box;
}

body.page-top .lp-voice-card:hover {
    transform: translateY(-5px);
}

body.page-top .lp-card-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 15px;
    border-bottom: 2px solid #f5f5f5;
    padding-bottom: 10px;
}

body.page-top .lp-user-attr {
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--lp-red);
    background: var(--lp-bg-pink);
    padding: 4px 12px;
    border-radius: 20px;
}

body.page-top .lp-user-icon {
    width: 50px;
    height: 50px;
    background: #eee;
    border-radius: 50%;
    overflow: hidden;
}

body.page-top .lp-user-icon img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

body.page-top .lp-card-body {
    font-size: 0.9rem;
    line-height: 1.8;
    color: #444;
    flex: 1;
    margin-bottom: 15px;
    text-align: left;
}

body.page-top .lp-period-box {
    background: var(--lp-text);
    color: var(--lp-bg-white);
    text-align: center;
    padding: 8px;
    border-radius: 10px;
    font-size: 0.85rem;
    font-weight: 700;
}

/* =========================================
   �����܂ł̗���Z�N�V����
   ========================================= */
body.page-top .lp-flow-section {
    padding: 120px 0;
    background-color: var(--lp-bg-white) !important;
    position: relative;
    overflow: hidden;
}

body.page-top .lp-stylish-header {
    text-align: center;
    margin-bottom: 80px;
    position: relative;
}

body.page-top .lp-header-sub {
    font-family: var(--lp-font-script);
    font-size: 3rem;
    color: var(--lp-red);
    opacity: 0.2;
    position: absolute;
    top: -40px;
    left: 50%;
    transform: translateX(-50%) rotate(-5deg);
    white-space: nowrap;
    z-index: 0;
}

body.page-top .lp-header-main-box {
    position: relative;
    display: inline-block;
    z-index: 1;
}

body.page-top .lp-header-title {
    font-size: 2.2rem !important;
    font-weight: 900 !important;
    color: var(--lp-red) !important;
    margin: 0 !important;
    line-height: 1.4 !important;
    letter-spacing: 0.05em !important;
}

body.page-top .lp-header-knot-deco {
    display: block;
    width: 60px;
    height: 4px;
    background: var(--lp-red);
    margin: 15px auto 0;
    position: relative;
    border-radius: 2px;
}

body.page-top .lp-timeline-area {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0;
}

body.page-top .lp-step-card-wide {
    width: 100%;
    background-color: var(--lp-bg-white);
    border: 3px dashed var(--lp-red);
    border-radius: 24px;
    padding: 40px;
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 40px;
    box-sizing: border-box;
    position: relative;
    opacity: 0;
    transform: translateY(30px);
    transition: all 0.8s cubic-bezier(0.165, 0.84, 0.44, 1);
}

body.page-top .lp-step-card-wide.is-visible {
    opacity: 1;
    transform: translateY(0);
}

body.page-top .lp-step-content {
    flex: 1;
    position: relative;
    padding-top: 10px;
}

body.page-top .lp-flow-number-box {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 15px;
}

body.page-top .lp-flow-circle {
    width: 50px;
    height: 50px;
    background: var(--lp-red);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--lp-bg-white);
    font-family: var(--lp-font-oswald);
    font-size: 1.5rem;
    font-weight: 700;
    transform: rotate(-10deg);
}

body.page-top .lp-flow-text-sub {
    font-family: var(--lp-font-oswald);
    font-size: 1.2rem;
    color: var(--lp-red);
    font-weight: 700;
    letter-spacing: 0.1em;
}

body.page-top .lp-step-title {
    font-size: 1.6rem !important;
    font-weight: 900 !important;
    color: var(--lp-text) !important;
    margin-bottom: 15px !important;
    line-height: 1.4 !important;
    border: none !important;
    background: none !important;
    box-shadow: none !important;
    padding-bottom: 10px !important;
    display: inline-block !important;
    width: 100% !important;
}

body.page-top .lp-step-title::before, body.page-top .lp-step-title::after {
    content: none !important;
    display: none !important;
}

body.page-top .lp-step-desc {
    font-size: 0.95rem;
    color: var(--lp-text-light);
    line-height: 1.8;
}

body.page-top .lp-step-image {
    flex: 0 0 380px;
    width: 380px;
    height: 240px;
    border-radius: 10px;
    overflow: hidden;
    position: relative;
    background: #eee;
}

body.page-top .lp-step-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
}

body.page-top .lp-step-card-wide:hover .lp-step-image img {
    transform: scale(1.05);
}

body.page-top .lp-step-connector {
    width: 4px;
    height: 50px;
    position: relative;
    margin: 0 auto;
}

body.page-top .lp-connector-line {
    width: 2px;
    height: 100%;
    margin: 0 auto;
    background: repeating-linear-gradient(
        to bottom,
        var(--lp-red) 0,
        var(--lp-red) 5px,
        transparent 5px,
        transparent 10px
    );
}

body.page-top .lp-connector-knot {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: var(--lp-bg-white);
    padding: 5px;
    display: flex;
    align-items: center;
    justify-content: center;
}

body.page-top .lp-heart-icon {
    width: 20px;
    height: 20px;
    fill: var(--lp-red) !important;
}

body.page-top .lp-connector-knot svg path {
    fill: var(--lp-red) !important;
}

body.page-top .lp-flow-goal {
    width: 100%;
    background: #fff9e6;
    border: 6px solid var(--lp-bg-white);
    border-radius: 30px;
    padding: 50px;
    text-align: center;
    margin-top: 10px;
    opacity: 0;
    transform: scale(0.95);
    transition: all 0.8s;
}

body.page-top .lp-flow-goal.is-visible {
    opacity: 1;
    transform: scale(1);
}

body.page-top .lp-goal-img {
    width: 100px;
    height: auto;
    margin-bottom: 20px;
    animation: lpFloatY 3s ease-in-out infinite;
}

body.page-top .lp-goal-title {
    font-size: 2rem !important;
    font-weight: 900 !important;
    color: var(--lp-text) !important;
    margin-bottom: 10px !important;
    border: none !important;
    background: none !important;
    box-shadow: none !important;
}

body.page-top .lp-goal-title::before, body.page-top .lp-goal-title::after {
    content: none !important;
    display: none !important;
}

body.page-top .lp-goal-text {
    font-weight: 700;
    color: var(--lp-red);
}

/* =========================================
   ���X�|���V�u�Ή�
   ========================================= */
@media screen and (max-width: 960px) {
    body.page-top .lp-pc-img { display: none; }
    body.page-top .lp-sp-img { display: block; }
    
    body.page-top .lp-solve-arrow-top {
        border-width: 30px 40px 0 40px;
    }
    
    @keyframes quoteAppearLeft {
        0% { transform: translate(-50%, -50%) scale(0); opacity: 0; }
        100% { top: -20px; left: -10px; transform: scale(0.6); opacity: 1; }
    }
    
    @keyframes quoteAppearRight {
        0% { transform: translate(50%, 50%) rotate(180deg) scale(0); opacity: 0; }
        100% { bottom: -20px; right: -10px; transform: rotate(180deg) scale(0.6); opacity: 1; }
    }
    
    body.page-top .lp-reason-container {
        flex-direction: column;
    }
    
    body.page-top .lp-reason-left {
        width: 100%;
        position: static;
        transform: none;
        margin-bottom: 40px;
        text-align: center;
        padding-right: 0;
    }
    
    body.page-top .lp-reason-title {
        font-size: 1.8rem !important;
    }
    
    body.page-top .lp-reason-right {
        width: 100%;
    }
    
    body.page-top .lp-reason-card {
        padding: 30px 20px;
        margin-bottom: 30px;
    }
    
    body.page-top .lp-card-title {
        font-size: 1.5rem !important;
    }
    
    body.page-top .lp-card-num-wrapper {
        width: 60px;
        height: 60px;
        top: 15px;
        right: 15px;
    }
    
    body.page-top .lp-card-num {
        font-size: 2rem;
    }
    
    body.page-top .lp-reason-bg-thread-sp {
        display: block;
    }
    
    body.page-top .lp-price-title {
        font-size: 1.8rem !important;
    }
    
    body.page-top .lp-price-amount {
        font-size: 4rem;
    }
    
    body.page-top .lp-sub-price-grid {
        gap: 15px;
    }
    
    body.page-top .lp-sub-price-item {
        width: 120px;
        height: 120px;
    }
    
    body.page-top .lp-cheap-reason-grid {
        grid-template-columns: 1fr;
        gap: 60px;
    }
    
    body.page-top .lp-cheap-reason-box {
        min-height: auto;
    }
    
    body.page-top .lp-compare-header-flex {
        flex-direction: column;
        align-items: center;
        text-align: center;
    }
    
    body.page-top .lp-compare-header-text {
        text-align: center;
    }
    
    body.page-top .lp-compare-table {
        display: block;
        white-space: nowrap;
        overflow-x: auto;
        padding-bottom: 20px;
    }
    
    body.page-top .lp-compare-col {
        display: inline-block;
        width: 200px;
        white-space: normal;
        vertical-align: top;
        margin-right: 10px;
    }
    
    body.page-top .lp-col-main {
        transform: scale(1);
    }
    
    body.page-top .lp-badge {
        top: -15px;
        padding: 5px 20px;
        font-size: 0.9rem;
    }
    
    body.page-top .lp-summary-bg {
        padding: 30px 20px;
        border-radius: 40px 0 40px 0;
        width: 100%;
        box-sizing: border-box;
    }
    
    body.page-top .lp-summary-top {
        gap: 5px;
        margin-bottom: 10px;
    }
    
    body.page-top .lp-summary-x {
        transform: rotate(90deg);
        margin: 5px 0;
        font-size: 1.1rem;
    }
    
    body.page-top .lp-summary-red-big {
        font-size: 1.4rem;
    }
    
    body.page-top .lp-summary-bottom {
        font-size: 1rem;
    }
    
    body.page-top .lp-text-highlight-black {
        font-size: 1.8rem;
        margin-top: 5px;
        padding-bottom: 15px;
    }
    
    body.page-top .lp-thread-underline {
        bottom: -5px;
        height: 20px;
    }
    
    body.page-top .lp-num-title-badge {
        font-size: 1.4rem;
        padding: 12px 30px;
    }
    
    body.page-top .lp-num-grid {
        grid-template-columns: 1fr;
        gap: 20px;
    }
    
    body.page-top .lp-deco-changer {
        width: 80px;
        height: 80px;
    }
    
    body.page-top .lp-deco-pos-1 {
        top: 5%;
        right: 5%;
    }
    
    body.page-top .lp-deco-pos-2 {
        top: 25%;
        left: 5%;
    }
    
    body.page-top .lp-deco-pos-3 {
        bottom: 5%;
        right: 10%;
    }
    
    body.page-top .lp-header-img-box {
        width: 80px;
        height: 80px;
    }
    
    body.page-top .lp-card-members, body.page-top .lp-card-new, body.page-top .lp-card-period, body.page-top .lp-card-income, body.page-top .lp-card-gender, body.page-top .lp-card-age {
        grid-column: span 1;
        grid-row: auto;
    }
    
    body.page-top .lp-card-members {
        flex-direction: column;
        text-align: left;
        align-items: flex-start;
    }
    
    body.page-top .lp-card-members-right {
        padding-left: 0;
        border-left: none;
        margin-top: 15px;
        padding-top: 15px;
        border-top: 1px solid #eee;
    }
    
    body.page-top .lp-card-income {
        flex-direction: column;
        text-align: center;
        gap: 20px;
    }
    
    body.page-top .lp-income-body {
        flex-direction: column;
        gap: 20px;
    }
    
    body.page-top .lp-income-text {
        text-align: center;
    }
    
    body.page-top .lp-num-big {
        font-size: 3rem;
    }
    
    body.page-top .lp-age-container {
        flex-direction: column;
        gap: 30px;
    }
    
    body.page-top .lp-gender-visual {
        gap: 15px;
        flex-wrap: wrap;
    }
    
    body.page-top .lp-gender-icon {
        width: 60px;
        height: 60px;
    }
    
    body.page-top .lp-gender-bar-area {
        width: 100%;
        margin: 15px 0;
        order: 3;
    }
    
    body.page-top .lp-voice-header {
        margin-bottom: 30px;
    }
    
    body.page-top .lp-voice-ja {
        font-size: 1.8rem !important;
    }
    
    body.page-top .lp-slider-container {
        display: block;
        position: relative;
    }
    
    body.page-top .lp-voice-btn {
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        width: 40px;
        height: 40px;
    }
    
    body.page-top .lp-voice-prev {
        left: -10px;
    }
    
    body.page-top .lp-voice-next {
        right: -10px;
    }
    
    body.page-top .lp-voice-card {
        flex: 0 0 260px;
    }
    
    body.page-top .lp-header-sub {
        font-size: 2.5rem;
    }
    
    body.page-top .lp-header-title {
        font-size: 1.8rem !important;
    }
    
    body.page-top .lp-step-card-wide {
        flex-direction: column-reverse;
        padding: 30px 20px;
        gap: 20px;
        align-items: center;
        border-width: 2px;
    }
    
    body.page-top .lp-step-content {
        width: 100%;
        text-align: left;
    }
    
    body.page-top .lp-step-image {
        width: 100%;
        flex: auto;
        height: 200px;
    }
    
    body.page-top .lp-flow-number-box {
        margin-bottom: 10px;
    }
    
    body.page-top .lp-flow-circle {
        width: 40px;
        height: 40px;
        font-size: 1.2rem;
    }
}

@media screen and (max-width: 768px) {
    body.page-top .lp-num-header {
        flex-direction: column;
        gap: 15px;
    }
    
    body.page-top .lp-header-img-box {
        display: block;
    }
}
/* =========================================
   �C���Fz-index�K�w�̒���
   ========================================= */
body.page-top .uni-fixed-layer {
    z-index: -1 !important;
}

body.page-top .lp-solve-section, body.page-top .lp-reason-section, body.page-top .lp-price-section, body.page-top .lp-cheap-reason-section, body.page-top .lp-promise-section, body.page-top .lp-compare-section, body.page-top .lp-num-section, body.page-top .lp-voice-section, body.page-top .lp-flow-section, body.page-top .lp-cta-section {
    position: relative;
    z-index: 1;
}

/* =========================================
   �C���FSwell���o���f�U�C�����S�폜
   ========================================= */
body.page-top .lp-worry-title {
    all: unset !important;
    display: block !important;
    font-family: 'Zen Maru Gothic', sans-serif !important;
    font-size: 32px !important;
    font-weight: 700 !important;
    margin-bottom: 25px !important;
    color: #333 !important;
    line-height: 1.5 !important;
    border: none !important;
    background: none !important;
    box-shadow: none !important;
    padding: 0 !important;
}

body.page-top .lp-worry-title::before, body.page-top .lp-worry-title::after {
    content: none !important;
    display: none !important;
}

/* =========================================
   �ŏI�C���F�V���v����
   ========================================= */

/* �X�N���[���o�[����i�ŏ����j */
body.page-top .uni-wrapper {
    overflow: visible;
}

/* �Œ�w�i */
body.page-top .uni-fixed-layer {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    z-index: -1 !important;
    pointer-events: none;
}

body.page-top .uni-about-wrapper {
    position: relative;
    z-index: 10;
    padding-bottom: 150px;
}

body.page-top .uni-about-wrapper::after {
    content: '';
    position: absolute;
    bottom: -100vh;
    left: 0;
    width: 100%;
    height: 100vh;
    background: white;
    z-index: -1;
}

/* �s���N�ƐԂ̊Ԃ̌��Ԃ����S�ɏ��� */
body.page-top .lp-worry-section {
    position: relative;
    z-index: 20 !important;
    background-color: var(--lp-pink) !important;
    padding: 120px 0 120px 0 !important;
    margin: 0 !important;
    border-top-left-radius: 60px;
    border-top-right-radius: 60px;
}

body.page-top .lp-worry-content {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 20px;
}

body.page-top .lp-solve-section {
    position: relative;
    background-color: var(--lp-red) !important;
    padding: 100px 20px 0 !important;
    margin-top: 0 !important;
    margin-bottom: 0;
    text-align: center;
    z-index: 19;
    overflow: hidden;
    color: var(--lp-bg-white);
}

body.page-top .lp-solve-arrow-top {
    display: none !important;
}

/* �S�Z�N�V�����Ԍ��ԍ폜 */
body.page-top .lp-solve-section, body.page-top .lp-reason-section, body.page-top .lp-price-section, body.page-top .lp-cheap-reason-section, body.page-top .lp-promise-section, body.page-top .lp-compare-section, body.page-top .lp-num-section, body.page-top .lp-voice-section, body.page-top .lp-flow-section, body.page-top .lp-cta-section {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

body.page-top .lp-reason-section {
    margin-top: -1px !important;
}

/* ���q�l�̐��X���C�_�[��ی� */
body.page-top .lp-voice-track {
    overflow-x: auto !important;
    scroll-behavior: smooth;
    -ms-overflow-style: none;
    scrollbar-width: none;
    scroll-snap-type: x mandatory;
}

body.page-top .lp-voice-track::-webkit-scrollbar {
    display: none;
}

/* �X�}�z�Ή� */
@media (max-width: 768px) {
    body.page-top .lp-worry-section {
        padding: 80px 0 80px 0 !important;
        margin: 0 !important;
        border-top-left-radius: 40px;
        border-top-right-radius: 40px;
    }
    
    body.page-top .lp-solve-section {
      padding: 80px 20px 0 !important;
    }
}

body.page-top .l-footer__foot {
    margin-top: 0 !important;
    padding-top: 0 !important;
}
body.page-top .l-footer__foot {
    position: relative;
    z-index: 2;
    background-color: #D32F2F;
}

body.page-top #before_footer_widget {
    position: relative;
    z-index: 2;
    background-color: #D32F2F;
}

body.page-top .l-footer {
    position: relative;
    z-index: 2;
    margin-top: 0 !important;
    padding-top: 0 !important;
}
body.page-top .l-footer__inner {
    padding-top: 0 !important;
    margin-top: 0 !important;
}

body.page-top .l-mainContent, body.page-top #content {
    position: relative;
    z-index: 1;
}

body.page-top .swell-block-fullWide.u-mb-0 {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}

body.page-top .swell-block-fullWide + .lp-solve-section, body.page-top .swell-block-fullWide__inner + .lp-solve-section, body.page-top .uni-wrapper + .lp-solve-section {
    margin-top: -1px !important;
}

body.page-top .p-blogParts[data-partsid="4854"] {
    margin-bottom: 0 !important;
}

/* �t�����C�h�u���b�N�̔��w�i�������āA�����v�f�ɔC���� */
body.page-top .swell-block-fullWide[style*="background-color:#ffffff"] {
    background-color: transparent !important;
}

/* uni-wrapper�̕���̌��Ԃ𖄂߂� */
body.page-top .swell-block-fullWide__inner {
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
}

body.page-top .swell-block-fullWide.u-mb-0 {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}
/* FAQ/CTA���ރt�����C�h�u���b�N�̃O���[�w�i��Ԃ� */
body.page-top .p-blogParts[data-partsid="4854"] > .swell-block-fullWide {
    background-color: #D32F2F !important;
}

/* �u���O�p�[�c���̂̉��]�������� */
body.page-top .p-blogParts[data-partsid="4854"] {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}

/* post_content�ȍ~�t�b�^�[�܂ł̌��Ԃ����� */
body.page-top .post_content {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}

body.page-top .l-mainContent__inner {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}

body.page-top .l-mainContent {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}

body.page-top #content {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}

/* �t�b�^�[�㕔��before_footer_widget��Ԕw�i�� */
body.page-top #before_footer_widget {
    background-color: #D32F2F;
    position: relative;
    z-index: 2;
}

/* �t�b�^�[���� */
body.page-top .l-footer {
    position: relative;
    z-index: 2;
    margin-top: 0 !important;
}

body.page-top .l-footer__inner {
    padding-top: 0 !important;
}

body.page-top .l-footer__foot {
    position: relative;
    z-index: 2;
    background-color: #D32F2F;
}
/* �u���O�p�[�c�̃t�����C�h�u���b�N�̃O���[�w�i��Ԃ� */
body.page-top .p-blogParts[data-partsid="4854"] > .swell-block-fullWide {
    background-color: #D32F2F !important;
}

/* �u���O�p�[�c���̗̂]�������� */
body.page-top .p-blogParts[data-partsid="4854"] {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}

/* #content�ȍ~�����ׂĐԔw�i�œh��Ԃ��A�Œ�w�i���B�� */
body.page-top #content {
    position: relative;
    z-index: 1;
}

body.page-top .l-mainContent {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}

body.page-top .l-mainContent__inner {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}

body.page-top .post_content {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}

/* CTA�̐Ԃ��t�����C�h�u���b�N�̊O�܂ŉ��� */
body.page-top .meltia-footer-full-wrapper {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}

body.page-top .meltea-cta-section {
    margin-bottom: 0 !important;
}

/* FAQ/CTA���ރt�����C�h�u���b�N�̔��w�i������ */
body.page-top .post_content > .swell-block-fullWide:last-child {
    background-color: #D32F2F !important;
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}

/* before_footer_widget */
body.page-top #before_footer_widget {
    background-color: #D32F2F;
    position: relative;
    z-index: 2;
}

/* �t�b�^�[ */
body.page-top .l-footer {
    position: relative;
    z-index: 2;
    margin-top: 0 !important;
}

body.page-top .l-footer__inner {
    padding-top: 0 !important;
}

body.page-top .l-footer__foot {
    background-color: #D32F2F;
}
body.page-top .uni-fv-area {
    padding-top: 250px !important;
}
body.page-top .uni-fixed-layer {
    top: 80px !important;
}

@media (max-width: 768px) {
    body.page-top .uni-fixed-layer {
        top: 0 !important;
    }
}
@media (max-width: 768px) {
    body.page-top .uni-fv-area {
        padding-top: 0 !important;
        margin-top: -30px !important;
    }
}
@media (max-width: 768px) {
    body.page-top .lp-compare-table {
        display: flex !important;
        flex-direction: column !important;
        flex-wrap: nowrap !important;
        overflow: visible !important;
        gap: 15px;
    }

    body.page-top .lp-compare-col {
        width: 100% !important;
        min-width: 100% !important;
        flex-shrink: 0 !important;
        display: block !important;
    }

    body.page-top .lp-col-main {
        order: -1;
    }
}

/* shop */
/* SWELL�����p�[�c��\�� */
body.page-shop #header, body.page-shop #header-sp, body.page-shop .l-fixHeader, body.page-shop .l-sidebar, body.page-shop .l-footer, body.page-shop .l-footer__foot, body.page-shop .p-fixBtnContents, body.page-shop #before_footer_widget, body.page-shop .w-beforeFooter { 
    display: none !important; 
}

/* �y�[�W�S�̂̔w�i�ݒ� */
body.page-shop, body.page-shop, body.page-shop #wrapper, body.page-shop #content, body.page-shop .l-main, body.page-shop .l-main__inner, body.page-shop .l-container, body.page-shop .l-mainContainer {
    background-color: #050505 !important;
    background-image: none !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

body.page-shop #bg-canvas {
    position: fixed; top: 0; left: 0; width: 100vw; height: 100vh; z-index: 0; pointer-events: none;
}

:root {
    --bg-color: #050505;
    --primary: #0ff;
    --secondary: #f0f;
    --text-color: #e0e0e0;
}

body.page-shop .neon-portfolio-wrapper {
    position: relative; z-index: 5; color: var(--text-color); font-family: 'Orbitron', 'Noto Sans JP', sans-serif;
}

body.page-shop .neon-portfolio-container { max-width: 1100px; margin: 0 auto; padding: 2rem; }

/* Role & Bio */
body.page-shop .site-role {
    font-size: 0.9rem; color: var(--primary); border: 1px solid var(--primary); padding: 0.4rem 1rem;
    margin-bottom: 1.5rem; display: inline-block; background: rgba(0, 255, 255, 0.1);
}

body.page-shop .site-title {
    font-weight: 900 !important; color: #fff !important;
    text-shadow: 0 0 10px var(--primary), 2px 2px 0 var(--secondary); margin: 0 !important; line-height: 1.2;
}

body.page-shop .site-bio {
    max-width: 600px; border-left: 3px solid var(--secondary); padding-left: 1.5rem;
    margin-top: 1.5rem; line-height: 1.8; color: #ccc;
}

/* �M�������[�O���b�h */
body.page-shop .gallery-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 2rem; }

body.page-shop .card { 
    background: rgba(15, 15, 15, 0.9); 
    border: 1px solid #333; 
    opacity: 0; transform: translateY(30px); 
    transition: all 0.4s cubic-bezier(0.25, 1, 0.5, 1); 
    cursor: pointer; 
    position: relative;
    overflow: hidden;
}

body.page-shop .card.is-visible { opacity: 1; transform: translateY(0); }

/* �z�o�[���̎��l�I������� */
body.page-shop .card:hover {
    border-color: var(--secondary);
    box-shadow: 0 0 20px rgba(255, 0, 255, 0.6);
    transform: translateY(-5px);
}

body.page-shop .card-img-container { aspect-ratio: 16 / 9; overflow: hidden; }
body.page-shop .card-img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1); transition: 0.6s; }
body.page-shop .card:hover .card-img { filter: grayscale(0); transform: scale(1.1); }
body.page-shop .card-info { padding: 1.2rem; }

/* ���i�F�����уZ�[������ */
body.page-shop .price-container {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 0.5rem;
    flex-wrap: wrap;
}

body.page-shop .old-price {
    text-decoration: line-through double #ff0000;
    opacity: 0.6;
    font-size: 0.75rem;
    color: #fff;
    white-space: nowrap;
}

body.page-shop .sale-price {
    color: #fff;
    font-weight: 900;
    font-size: 1.1rem;
    white-space: nowrap;
    text-shadow: 
        0 0 5px #fff,
        0 0 10px var(--secondary),
        0 0 20px var(--secondary),
        0 0 40px #ff00ff;
    padding: 2px 8px;
    background: rgba(255, 0, 255, 0.15);
    border: 1px solid var(--secondary);
    border-radius: 4px;
    box-shadow: 0 0 10px rgba(255, 0, 255, 0.4);
}

/* �Z�N�V�����^�C�g�� */
body.page-shop .neon-section-header { margin: 10rem 0 3rem; border-bottom: 1px solid #333; padding-bottom: 1rem; }
body.page-shop .neon-section-title { font-size: 2rem !important; color: var(--primary) !important; opacity: 0; }
body.page-shop .neon-section-title .letter { display: inline-block; }

/* �e�L�X�g�R���e���c */
body.page-shop .text-content-wrapper { background: rgba(20, 20, 20, 0.8); border-left: 4px solid var(--primary); padding: 2.5rem; opacity: 0; transform: translateY(20px); transition: 0.8s; }
body.page-shop .text-content-wrapper.is-visible { opacity: 1; transform: translateY(0); }

/* �����N */
body.page-shop .link-list { list-style: none !important; padding: 0 !important; display: flex; justify-content: center; gap: 1.5rem; margin: 5rem 0 0; flex-wrap: wrap; }
body.page-shop .link-item a { color: #fff !important; text-decoration: none !important; border: 1px solid transparent; padding: 0.5rem 1rem; transition: 0.3s; font-size: 0.9rem; }
body.page-shop .link-item a:hover { color: var(--primary) !important; border-color: var(--primary); box-shadow: 0 0 10px var(--primary); }

/* ���[�_�� */
body.page-shop .neon-modal {
    position: fixed; top: 0; left: 0; width: 100%; height: 100%;
    background: rgba(0, 0, 0, 0.95); z-index: 100000;
    display: flex; align-items: center; justify-content: center;
    opacity: 0; visibility: hidden; transition: 0.3s;
}
body.page-shop .neon-modal.active { opacity: 1; visibility: visible; }
body.page-shop .modal-inner { width: 95%; max-width: 900px; background: #000; position: relative; border: 1px solid var(--secondary); }
body.page-shop .close-btn { position: absolute; top: -50px; right: 0; background:none; border:none; color:#fff; font-size:3rem; cursor:pointer; }

/* �X�}�z�X�N���[�����̔��`�����΍� */
body.page-shop {
    overscroll-behavior: none;
    -webkit-overflow-scrolling: touch;
    background-color: #050505 !important;
}

body.page-shop {
    overscroll-behavior: none;
    min-height: 100vh;
    min-height: -webkit-fill-available;
    background-color: #050505 !important;
}

body.page-shop #bg-canvas {
    background-color: #050505;
}

/* ============================================================
   90. SWELL静的ブロック互換（移行記事・full-wide ラッパー用 最小CSS）
   - blog-parts(動的)はfunctions.phpのフィルタで救済済
   - 以下は本文に静的HTMLが保存される SWELLブロック（full-wide/button/column）の最小再現
   ============================================================ */
.alignfull {
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}
.swell-block-fullWide { width: 100%; }
/* ⚠️ alignfull の全幅(100vw)を .swell-block-fullWide{width:100%} に負けさせない。
   負けると width=コンテンツ幅(スクロールバー除く)のまま margin-left:calc(50%-50vw)で
   左にずれ、右端にスクロールバー幅/2の隙間ができて固定背景が漏れる（Windowsのみ） */
.swell-block-fullWide.alignfull {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}
/* contentSize:full（プレーンな __inner）は全幅。l-article 付きのみ中央寄せ制限。 */
.swell-block-fullWide__inner { width: 100%; }
.swell-block-fullWide__inner.l-article {
  max-width: 1160px;
  margin-inline: auto;
  padding-inline: 20px;
}

/* SWELL py/pt ユーティリティ（記事内 full-wide の余白用・代表値のみ） */
.pc-py-0 { padding-block: 0; }
.pc-py-40 { padding-block: 40px; }
.pc-py-60 { padding-block: 60px; }
.pc-py-80 { padding-block: 80px; }
@media (max-width: 768px) {
  .sp-py-0 { padding-block: 0; }
  .sp-py-40 { padding-block: 40px; }
  .sp-py-60 { padding-block: 60px; }
}

/* ボタン */
.swell-block-button { text-align: center; margin: 1.6em 0; }
.swell-block-button__link {
  display: inline-flex; align-items: center; justify-content: center; gap: .4em;
  padding: .9em 2.2em; border-radius: 8px;
  background: var(--m-red-deep); color: #fff; text-decoration: none; font-weight: 700;
  box-shadow: 0 3px 0 rgba(0,0,0,.15); transition: opacity .2s ease, transform .2s ease;
}
.swell-block-button__link:hover { opacity: .9; transform: translateY(-1px); }
.swell-block-button.is-style-btn_line .swell-block-button__link { background: #06c755; }

/* カラム */
.swell-block-columns { display: flex; gap: 24px; flex-wrap: wrap; align-items: stretch; }
.swell-block-column { flex: 1 1 0; min-width: 240px; }
@media (max-width: 768px) {
  .swell-block-columns { flex-direction: column; gap: 16px; }
  .swell-block-column { min-width: 0; }
}

/* full（旧 full-wide 別名） */
.swell-block-full { width: 100%; }

/* 背景画像系（full-wideの -fixbg / has-bg-img）。背景画像は main.js が data-bg から付与 */
.has-bg-img { background-size: cover; background-position: center; background-repeat: no-repeat; }
.-fixbg { background-attachment: fixed; }
.pc_only { } .sp_only { }
@media (max-width: 768px) { .pc_only { display: none !important; } }
@media (min-width: 769px) { .sp_only { display: none !important; } }

/* SWELL ブロックスタイル / フォントユーティリティ（contact/confirm/thanks/privacy/特商法 の見出し用）
   ※ SWELL撤去で失われるため最小再現。本番計測値に一致させる */
.is-style-section_ttl {
  text-align: center;
  font-weight: 700;
  line-height: 1.4;
  font-size: 1.4rem;
  margin-bottom: 2.2rem;
}
.swl-fz { line-height: 1.4; }
.u-fz-xl { font-size: 1.6em; }   /* CONTACT等の大見出し（1.4rem×1.6≈35.8px・本番一致） */
.u-fz-l  { font-size: 1.25em; }
.u-fz-s  { font-size: 0.9em; }   /* 無料相談等のサブ（≈20px・本番一致） */
.u-fz-xs { font-size: 0.78em; }
.has-small-font-size { font-size: 0.9rem; }
.has-xs-font-size { font-size: 0.78rem; }
.has-text-align-center { text-align: center; }
/* SWELL の左ボーダー見出し（privacy/特商法の条項見出し） */
.is-style-border_left { border-left: 4px solid var(--m-red-deep, #D32F2F); padding-left: .6em; font-weight: 700; }

/* CF7 お問い合わせ入力欄：custom_cssはbg/幅のみ指定でpadding/border/radius/fontはSWELL既定頼み。
   TTFではブラウザ既定(薄い)になるため、本番(SWELL)の見た目を補う（padding4px8px/border1px/radius4px/16px） */
#cf7-area input[type="text"],
#cf7-area input[type="email"],
#cf7-area input[type="datetime-local"],
#cf7-area input[type="date"],
#cf7-area input[type="tel"],
#cf7-area input[type="number"],
#cf7-area textarea,
#cf7-area select {
  padding: 6px 10px;
  border: 1px solid #e3c9cd;
  border-radius: 4px;
  font-size: 16px;
  line-height: 1.6;
  box-sizing: border-box;
}
/* 必須/任意バッジを角丸に（本番一致） */
.cf7-req, .cf7-opt { border-radius: 4px; }

/* ============================================================
   95. ブログ（single / 一覧 / アーカイブ）— メルティア赤・1カラム
   - 本文は標準Gutenbergコアブロック（heading/paragraph/list/image等）
   - 共通ヘッダーが position:fixed のため上部に余白を確保
   ============================================================ */
:root { --m-blog-max: 760px; --m-list-max: 1100px; --m-header-h: 86px; }

.m-blog-wrap {
  font-family: var(--m-font);
  color: var(--m-ink);
  padding: calc(var(--m-header-h) + 32px) 20px 80px;
  max-width: var(--m-blog-max);
  margin: 0 auto;
}
.m-blog-wrap.m-blog-list { max-width: var(--m-list-max); }

/* パンくず */
.m-breadcrumb { font-size: 13px; color: var(--m-sub); margin-bottom: 22px; }
.m-breadcrumb a { color: var(--m-red-deep); text-decoration: none; }
.m-breadcrumb a:hover { text-decoration: underline; }
.m-breadcrumb span.sep { margin: 0 8px; color: #bbb; }

/* ===== 記事ヘッダー ===== */
.m-article-head { margin-bottom: 28px; }
.m-article-cat {
  display: inline-block; background: var(--m-red-deep); color: #fff;
  font-size: 12px; font-weight: 700; padding: 5px 16px; border-radius: 100px; margin-bottom: 14px;
}
.m-article-title {
  font-size: 28px; font-weight: 900; line-height: 1.5; color: var(--m-ink); margin: 0 0 12px;
}
.m-article-meta { font-size: 13px; color: var(--m-sub); }
.m-article-eyecatch { margin: 22px 0 0; }
.m-article-eyecatch img { width: 100%; border-radius: 16px; display: block; }

/* ===== 目次（JS生成） ===== */
.m-toc {
  background: var(--m-pink-soft); border: 2px solid #FEECEF; border-radius: 16px;
  padding: 20px 24px; margin: 28px 0; display: none;
}
.m-toc.is-on { display: block; }
.m-toc-ttl { font-weight: 900; color: var(--m-red-deep); margin: 0 0 10px; font-size: 16px; }
.m-toc ul { margin: 0; padding-left: 1.1em; }
.m-toc li { margin: 6px 0; line-height: 1.5; }
.m-toc li.lv3 { margin-left: 1em; font-size: .94em; list-style: circle; }
.m-toc a { color: var(--m-ink); text-decoration: none; }
.m-toc a:hover { color: var(--m-red-deep); text-decoration: underline; }

/* ===== 本文タイポグラフィ ===== */
.m-article-body { font-size: 16.5px; line-height: 1.95; color: #2c2c2c; }
.m-article-body > * { margin-top: 0; margin-bottom: 1.4em; }
.m-article-body h2 {
  font-size: 23px; font-weight: 900; line-height: 1.45; color: var(--m-ink);
  margin: 2.2em 0 1em; padding: 14px 18px; background: var(--m-pink-soft);
  border-left: 7px solid var(--m-red-deep); border-radius: 6px;
}
.m-article-body h3 {
  font-size: 19.5px; font-weight: 800; color: var(--m-ink);
  margin: 1.9em 0 .8em; padding-bottom: 8px; border-bottom: 2px dotted #f3b8be;
}
.m-article-body h4 { font-size: 17px; font-weight: 800; margin: 1.6em 0 .6em; color: var(--m-red-deep); }
.m-article-body p { margin: 0 0 1.4em; }
.m-article-body a { color: var(--m-red-deep); text-decoration: underline; word-break: break-word; }
.m-article-body img { border-radius: 12px; }
.m-article-body figure { margin: 1.6em 0; }
.m-article-body ul, .m-article-body ol { padding-left: 1.6em; margin: 0 0 1.4em; }
.m-article-body li { margin: .5em 0; }
.m-article-body ul li::marker { color: var(--m-red-deep); }
.m-article-body blockquote {
  margin: 1.6em 0; padding: 16px 22px; background: #faf7f7;
  border-left: 5px solid #ddd; color: #555; border-radius: 6px;
}
.m-article-body hr.wp-block-separator,
.m-article-body hr { border: none; border-top: 2px dashed #f0c9cd; margin: 2.2em 0; }
.m-article-body .wp-block-table table { width: 100%; border-collapse: collapse; }
.m-article-body .wp-block-table td, .m-article-body .wp-block-table th {
  border: 1px solid #e7d7d9; padding: 10px 12px;
}
.m-article-body strong { color: var(--m-red-deep); }

/* ===== 関連記事 ===== */
.m-related { margin-top: 56px; }
.m-related-ttl {
  display: flex; align-items: center; gap: 12px; font-size: 20px; font-weight: 900;
  color: var(--m-ink); margin: 0 0 22px;
}
.m-related-ttl::before { content: ""; width: 10px; height: 28px; background: var(--m-red-deep); border-radius: 4px; }

/* ===== コラム一覧上部「おすすめ」欄（home/archive 共通・§10-2） ===== */
.m-recommend { margin: 0 0 40px; }
.m-recommend-ttl {
  display: flex; align-items: center; gap: 12px; font-size: 20px; font-weight: 900;
  color: var(--m-ink); margin: 0 0 22px;
}
.m-recommend-ttl::before { content: ""; width: 10px; height: 28px; background: var(--m-red-deep); border-radius: 4px; }
/* おすすめは横並び3列＋一覧より一回り小さくコンパクトに */
.m-recommend .m-card-grid { grid-template-columns: repeat(3, 1fr); gap: 16px 16px; }
.m-recommend .m-card-body { padding: 12px 14px 14px; gap: 6px; }
.m-recommend .m-card-cat { font-size: 10px; padding: 2px 10px; }
.m-recommend .m-card-title { font-size: 14px; line-height: 1.5; }
.m-recommend .m-card-date { font-size: 11px; }
@media (max-width: 480px) {
  /* SPでも3列横並びを維持（さらに小さく・日付は省いてすっきり） */
  .m-recommend .m-card-grid { grid-template-columns: repeat(3, 1fr); gap: 8px; }
  .m-recommend .m-card-body { padding: 8px 8px 10px; }
  .m-recommend .m-card-title { font-size: 11px; line-height: 1.45; }
  .m-recommend .m-card-cat, .m-recommend .m-card-date { display: none; }
}

/* ===== カードグリッド（一覧・アーカイブ・関連） ===== */
.m-card-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 26px 24px; }
.m-card {
  display: flex; flex-direction: column; background: #fff; border: 2px solid #f1f1f1;
  border-radius: 18px; overflow: hidden; text-decoration: none; color: inherit;
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.m-card:hover { transform: translateY(-4px); box-shadow: 0 12px 28px rgba(211,47,47,.10); border-color: #f6c9ce; }
.m-card-thumb { aspect-ratio: 16 / 9; background: #f6f0f0; overflow: hidden; }
.m-card-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.m-card-noimg { display: flex; align-items: center; justify-content: center; color: #d8b6b9; font-weight: 900; font-size: 22px; }
.m-card-body { padding: 16px 18px 20px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.m-card-cat { align-self: flex-start; background: var(--m-pink-bg); color: var(--m-red-deep); font-size: 11px; font-weight: 700; padding: 3px 12px; border-radius: 100px; }
.m-card-title { font-size: 16px; font-weight: 800; line-height: 1.55; margin: 0; color: var(--m-ink); }
.m-card-excerpt { font-size: 13px; color: var(--m-sub); line-height: 1.7; margin: 0; }
.m-card-date { font-size: 12px; color: #999; margin-top: auto; }

.m-blog-listtitle {
  display: flex; align-items: center; gap: 14px; font-size: 26px; font-weight: 900;
  color: var(--m-ink); margin: 0 0 30px;
}
.m-blog-listtitle::before { content: ""; width: 12px; height: 34px; background: var(--m-red-deep); border-radius: 4px; }

/* ページネーション */
.m-pager { display: flex; justify-content: center; gap: 8px; margin-top: 48px; flex-wrap: wrap; }
.m-pager .page-numbers {
  display: inline-flex; align-items: center; justify-content: center; min-width: 42px; height: 42px;
  padding: 0 12px; border-radius: 10px; border: 2px solid #eee; color: var(--m-ink);
  text-decoration: none; font-weight: 700; transition: .2s;
}
.m-pager .page-numbers.current { background: var(--m-red-deep); color: #fff; border-color: var(--m-red-deep); }
.m-pager .page-numbers:hover:not(.current) { border-color: var(--m-red-deep); color: var(--m-red-deep); }

/* ===== レスポンシブ ===== */
@media (max-width: 768px) {
  .m-blog-wrap { padding: calc(var(--m-header-h) + 12px) 16px 60px; }
  .m-article-title { font-size: 23px; }
  .m-article-body { font-size: 16px; }
  .m-article-body h2 { font-size: 20px; }
  .m-article-body h3 { font-size: 17.5px; }
  .m-card-grid { grid-template-columns: repeat(2, 1fr); gap: 18px 14px; }
  .m-card-title { font-size: 14px; }
  .m-card-excerpt { display: none; }
}
@media (max-width: 480px) {
  .m-card-grid { grid-template-columns: 1fr; }
  .m-card-excerpt { display: block; }
}

/* ============================================================
   96. 共通フッター（全ページ最小・著作権＋ナビ）
   ※ TOPの大型フッター（質問＋赤CTA）はTOP本文に内包。これはその下の最小フッター
   ============================================================ */
.m-site-footer {
  background: #2b2b2b; color: #fff; padding: 44px 20px;
  font-family: var(--m-font);
}
.m-site-footer__inner { max-width: 1100px; margin: 0 auto; text-align: center; }
.m-site-footer__logo { display: inline-block; margin-bottom: 18px; }
.m-site-footer__logo img { height: 46px; width: auto; filter: brightness(0) invert(1); }
.m-site-footer__nav { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 28px; margin-bottom: 18px; }
.m-site-footer__nav a { color: rgba(255,255,255,.85); text-decoration: none; font-size: 14px; font-weight: 700; }
.m-site-footer__nav a:hover { color: #fff; text-decoration: underline; }
.m-site-footer__copy { font-size: 12px; color: rgba(255,255,255,.55); margin: 0; }

/* ============================================================
   99. レビュー反映ラウンド2（2026-06-28・TOP PC 微調整）
   ※ site.css の最後に連結（後勝ち）。ページ別はbody.page-topで限定
   ============================================================ */

/* ① FV注釈の回り込み：白いABOUTカードを少し下げて ※2行 との被りを解消 */
body.page-top .uni-about-wrapper { margin-top: 64px; }

/* ③ 横スクロール余白：width:100vw の全幅要素がスクロールバー幅(約15px)分はみ出すのを抑制。
   overflow-x:clip は scroll container を作らないので position:sticky を壊さない（hiddenはNG） */
/* PC：bodyのclipでスクロールバー幅の横はみ出しを抑制（clipはsticky非破壊）。 */
body { overflow-x: clip; }
/* SP：fixed/absolute要素がモバイルでレイアウトビューポートを広げて横スクロールを誘発するため、
   モバイル限定で html を clip（PCは>768pxで除外＝選ばれる理由のstickyを壊さない。
   モバイルはreasonが縦積みでsticky不要なので html clip でOK）。本番SWELLのラッパー封じの補填 */
@media (max-width: 768px) {
  html { overflow-x: clip; }
}
body.page-top .uni-fixed-layer { overflow: hidden; }

/* ④ 比較表「オススメ」バッジが「メルティア」文字と被るので上へ移動 */
body.page-top .lp-badge { top: -36px; }

/* ⑤ 数字セクションのフットノート（※No.1 / ※データは）を小さく */
body.page-top .lp-disclaimer { font-size: 11px; line-height: 1.6; color: #999; }

/* ⑥ フッターをCTAと同じ赤に＋CTAとフッターの間隔を詰める */
.m-site-footer { background: #D32F2F; padding-top: 20px; padding-bottom: 32px; }
.m-site-footer__nav a { color: rgba(255,255,255,.92); }
.m-site-footer__nav a:hover { color: #fff; }
.m-site-footer__copy { color: rgba(255,255,255,.7); }
body.page-top .meltea-cta-section { padding-bottom: 24px !important; }

/* Q&A：開いたときに Q と A の間に出る線（黒く見える）を消す＋フォーカス枠も消す */
body.page-top .m-faq-item.active .m-faq-a-area { border-top: none !important; }
body.page-top .m-faq-q-btn:focus,
body.page-top .m-faq-q-btn:focus-visible { outline: none !important; box-shadow: none !important; }

/* ===== SP 細部（2026-06-28 レビュー） ===== */
/* 追従CTA（cta-white-box・position:fixed z-index:99999）が ABOUT(z10)/お悩み(z20)/解決(z19) に
   覆われる根本原因＝親 .meltia-footer-full-wrapper の z-index:2 がスタッキングコンテキストを作り
   CTAを閉じ込めていたこと。footerラッパーの z-index を auto にしてコンテキストを解除し、
   CTAを最上位(root)へ解放する（高specificityで4854インラインstyleに勝つ） */
body.page-top .meltia-footer-full-wrapper,
body.page-top .meltea-cta-section .cta-inner-container { z-index: auto !important; }

@media (max-width: 768px) {
  /* フッターナビを小さく1行表示（改行させない） */
  .m-site-footer__nav { flex-wrap: nowrap; gap: 0 13px; }
  .m-site-footer__nav a { font-size: 11px; white-space: nowrap; }
  /* 追従CTA(下部固定 約80px)とフッター文字が被るので、フッター下に余白を足して上へ逃がす */
  .m-site-footer { padding-bottom: 100px; }
}

/* ===== お問い合わせ関連（contact/confirm/thanks）細部（2026-06-29） ===== */
/* プライバシーポリシー リンク：下線を消して水色(#39A0FF)に（本番一致・PC/SP両方） */
.cf7-accept-check a { color: #39A0FF !important; text-decoration: none !important; }
/* PC：見出し(CONTACT等)がヘッダーに近すぎて被るので、本文ブロック上に余白を足して下げる
   （本番は padding-top 96px＋余白でヘッダー下228px。STGも本番のゆとりに合わせる） */
@media (min-width: 769px) {
  body.page-contact .swell-block-fullWide.has-bg-img,
  body.page-confirm .swell-block-fullWide.has-bg-img,
  body.page-thanks  .swell-block-fullWide.has-bg-img { padding-top: 200px; }
}

/* ===== 97. 規約ページ（特商法 page-tokushoho / プライバシー page-policy）=====
   SWELLブロックスタイル(is-style-big_icon_point / has-border -border04)が
   TTFで無効化され全幅・無装飾化していたのを簡易整理。
   方針：読み物カラム＋素直な白カード＋赤アクセント見出し（TOP/ブログ踏襲・派手装飾なし）。
   ※ site.css 末尾に連結（後勝ち）。再ビルド時もこのファイルを最後に append する。 */

body.page-tokushoho .m-main,
body.page-policy .m-main {
  max-width: 860px;
  margin: 0 auto;
  padding: 64px 20px 96px;
  color: #2c2c2c;
  font-size: 16px;
  line-height: 1.95;
}

/* 先頭の巨大spacer(100px/114px)を詰める */
body.page-tokushoho .m-main .wp-block-spacer,
body.page-policy .m-main .wp-block-spacer { height: 4px !important; }

/* SWELLの囲みグループを素直な白カードに（直下のみ＝ネスト二重枠を回避） */
body.page-tokushoho .m-main > .wp-block-group,
body.page-policy .m-main > .wp-block-group {
  max-width: 100%;
  margin: 0 auto;
  padding: 30px 32px;
  background: #fff;
  border: 1px solid #f0d9dc;
  border-radius: 14px;
  box-shadow: 0 2px 10px rgba(211,47,47,.05);
}

/* 段落間隔 */
body.page-tokushoho .m-main p,
body.page-policy .m-main p { margin: 0 0 1.4em; }
body.page-tokushoho .m-main p:last-child,
body.page-policy .m-main p:last-child { margin-bottom: 0; }

/* 条文見出し（swl-fz u-fz-xl / u-fz-l のスパン）を赤アクセントで強調＝TOP/ブログ踏襲 */
body.page-tokushoho .m-main .swl-fz,
body.page-policy .m-main .swl-fz {
  display: inline-block;
  font-weight: 800;
  color: #b71c1c;
  line-height: 1.5;
  margin-top: .2em;
}

/* リンク */
body.page-tokushoho .m-main a,
body.page-policy .m-main a {
  color: #b71c1c;
  text-decoration: underline;
  word-break: break-word;
}

@media (max-width: 768px) {
  body.page-tokushoho .m-main,
  body.page-policy .m-main { padding: 64px 16px 72px; }
  body.page-tokushoho .m-main > .wp-block-group,
  body.page-policy .m-main > .wp-block-group { padding: 22px 18px; }
}

/* =========================================
   新FV（背景と前面を完全同座標で重ねる／前面フェードイン）
   ========================================= */
.mel-fv-hero {
  position: relative;
  width: 100%;
  overflow: hidden;
}

.mel-fv-hero-stack {
  position: relative;
  width: 100%;
  margin: 0 auto;
  line-height: 0;
}

.mel-fv-hero-bg-img {
  display: block;
  width: 100%;
  height: auto;
}

.mel-fv-hero-overlay-img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: auto;
  display: block;
  opacity: 0;
  transform: translateY(16px);
  animation: melFvFadeIn 1.4s cubic-bezier(0.16, 1, 0.3, 1) 0.4s forwards;
}

/* 左下：ゴールドの注釈（バッジ群下） */
.mel-fv-hero-note-left {
  position: absolute;
  left: 3.5%;
  bottom: 2%;
  max-width: 22%;
  font-size: 10px;
  color: #B8956A;
  line-height: 1.6;
  z-index: 3;
  opacity: 0;
  animation: melFvFadeIn 1.2s cubic-bezier(0.16, 1, 0.3, 1) 1.2s forwards;
}

/* 右下：No.1下の注釈（ゴールド、下ギリギリ、右端寄せ・左寄せテキスト） */
.mel-fv-hero-note-right {
  position: absolute;
  right: 3%;
  bottom: 0.8%;
  max-width: 60%;
  font-size: 10px;
  color: #B8956A;
  line-height: 1.6;
  text-align: left;
  z-index: 3;
  opacity: 0;
  animation: melFvFadeIn 1.2s cubic-bezier(0.16, 1, 0.3, 1) 1.4s forwards;
}

@keyframes melFvFadeIn {
  from { opacity: 0; transform: translateY(16px); }
  to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 768px) {
  /* スマホ版overlayに注釈が既に含まれているのでテキスト注釈は非表示 */
  .mel-fv-hero-note-left,
  .mel-fv-hero-note-right { display: none; }
}

/* =========================================
   スマホ用ハンバーガーメニュー
   ========================================= */
.m-hamb-toggle { display: none; }

.m-hamb-btn {
    display: none;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 3px;
    width: 52px;
    height: 52px;
    cursor: pointer;
    border-radius: 8px;
    position: relative;
    z-index: 10001;
    background: transparent;
}

.m-hamb-bar {
    display: block;
    width: 24px;
    height: 2px;
    background: #333;
    border-radius: 2px;
    transition: transform 0.25s, opacity 0.15s;
}

.m-hamb-label {
    font-size: 9px;
    font-style: normal;
    color: #333;
    margin-top: 4px;
    letter-spacing: 0.5px;
    font-weight: 500;
}

/* スマホメニュー本体（フルスクリーン） */
.m-sp-menu {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background: #ffffff;
    z-index: 10000;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-8px);
    transition: opacity 0.25s, visibility 0.25s, transform 0.25s;
    overflow-y: auto;
    display: none;
    font-family: 'Zen Kaku Gothic New', 'Noto Sans JP', 'Hiragino Sans', 'Yu Gothic', sans-serif;
}

.m-hamb-toggle:checked ~ .m-sp-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

/* メニュー開いてる時：外側のハンバーガーボタンを隠す（SPメニュー内のCloseだけ見せる） */
.m-hamb-toggle:checked ~ .meltia-slim-rounded-header .m-hamb-btn {
    display: none;
}

.m-sp-menu-inner {
    padding: 16px 20px 32px;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.m-sp-menu-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-bottom: 12px;
    border-bottom: 1px solid #eaeaea;
}

.m-sp-menu-logo { display: block; }
.m-sp-menu-logo img { height: 40px; width: auto; display: block; }

.m-sp-menu-close {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    cursor: pointer;
    position: relative;
}

.m-sp-close-line {
    display: block;
    position: absolute;
    top: 22px;
    left: 50%;
    width: 22px;
    height: 2px;
    background: #333;
    border-radius: 2px;
}
.m-sp-close-line:nth-child(1) { transform: translateX(-50%) rotate(45deg); }
.m-sp-close-line:nth-child(2) { transform: translateX(-50%) rotate(-45deg); }

.m-sp-menu-close em {
    display: block;
    font-size: 9px;
    font-style: normal;
    color: #333;
    letter-spacing: 0.5px;
    font-weight: 500;
    margin-top: 32px;
}

.m-sp-menu-cta {
    display: flex;
    align-items: center;
    justify-content: center;
    background: #EB2A2A;
    color: #ffffff;
    padding: 18px 20px;
    border-radius: 12px;
    font-size: 16px;
    font-weight: 700;
    text-decoration: none;
    letter-spacing: 1px;
    transition: background 0.15s;
}

.m-sp-menu-cta:hover,
.m-sp-menu-cta:active { background: #C41E1E; color: #fff; }

.m-sp-menu-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.m-sp-menu-list li {
    border-bottom: 1px solid #eaeaea;
}

/* 単純項目（TOP・ブログ）のリンク */
.m-sp-menu-list li.m-sp-plain > a {
    display: block;
    padding: 20px 4px;
    text-decoration: none;
    color: #333;
    font-size: 16px;
    font-weight: 500;
    transition: color 0.15s;
}

.m-sp-menu-list li.m-sp-plain > a:hover,
.m-sp-menu-list li.m-sp-plain > a:active { color: #EB2A2A; }

/* 下層あり項目（details アコーディオン） */
.m-sp-acc summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 20px 4px;
    cursor: pointer;
    font-size: 16px;
    font-weight: 500;
    color: #333;
    list-style: none;
    transition: color 0.15s;
}

.m-sp-acc summary::-webkit-details-marker { display: none; }
.m-sp-acc summary::marker { content: ''; }

.m-sp-acc summary::after {
    content: '+';
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border: 1px solid #EB2A2A;
    border-radius: 50%;
    color: #EB2A2A;
    font-size: 15px;
    line-height: 1;
    font-weight: 500;
    transition: background 0.15s, color 0.15s;
    flex-shrink: 0;
}

.m-sp-acc[open] > summary { color: #EB2A2A; }

.m-sp-acc[open] > summary::after {
    content: '−';
    background: #EB2A2A;
    color: #ffffff;
}

/* 下層サブリスト */
.m-sp-sub-list {
    list-style: none;
    padding: 4px 0 12px 0;
    margin: 0 0 8px 0;
    background: #FAFAFA;
    border-radius: 10px;
}

.m-sp-sub-list li { border-bottom: 1px solid #EEEEEE; }
.m-sp-sub-list li:last-child { border-bottom: none; }

.m-sp-sub-list li a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 16px;
    font-size: 14px;
    color: #555;
    text-decoration: none;
    transition: color 0.15s;
}

.m-sp-sub-list li a::after {
    content: '›';
    font-size: 20px;
    line-height: 1;
    color: #EB2A2A;
    opacity: 0.6;
    transition: opacity 0.15s, transform 0.15s;
    margin-left: 8px;
}

.m-sp-sub-list li a:hover,
.m-sp-sub-list li a:active { color: #EB2A2A; }

.m-sp-sub-list li a:hover::after,
.m-sp-sub-list li a:active::after {
    opacity: 1;
    transform: translateX(3px);
}

@media (max-width: 768px) {
    /* PCナビ・案内文・大きいCTAをヘッダーから隠す */
    .m-header-nav { display: none; }
    .meltia-slim-rounded-header > .m-header-cta-area > .custom-header-cta { display: none; }

    /* ハンバーガー表示（スクロール追従・右上に固定・丸ボタン） */
    .m-hamb-btn {
        display: flex;
        position: fixed;
        top: 12px;
        right: 12px;
        width: 56px;
        height: 56px;
        background: #fff;
        border-radius: 50%;
        box-shadow: 0 3px 12px rgba(0, 0, 0, 0.15);
    }

    /* スマホメニュー有効化 */
    .m-sp-menu { display: block; }

    /* スマホメニュー内のCTA（PC版と同じ構造）は表示 */
    .m-sp-menu .custom-header-cta {
        display: flex;
        align-items: center;
        gap: 8px;
        padding: 8px 5px;
    }
    .m-sp-menu .cta-info-text {
        display: block;
        color: #333;
        font-size: 12px;
        font-weight: 700;
    }
    .m-sp-menu .cta-flex-box { display: flex; }

    /* ロゴを小さめに */
    .m-header-logo img,
    .m-logo-img { height: 36px; }

    /* ヘッダー高さ調整 */
    .meltia-slim-rounded-header {
        padding: 8px 16px;
        min-height: 56px;
        gap: 8px;
    }

    .m-header-left-group { gap: 8px; }
}

/* ================================================
   ABOUT V3 = mel-concept
   ウェルスマ Concept セクションの構造・タイポ・余白を実測して踏襲、
   カラーだけメルティアの赤に置換した実装
   ================================================ */
body.page-top .uni-about-wrapper.mel-concept {
    padding-bottom: 0;
}
body.page-top .mel-concept {
    background: #fff;
    padding: 90px 0 30px;
    position: relative;
    z-index: 10;
}
body.page-top .mel-concept__inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 40px;
    box-sizing: border-box;
}

/* Head */
body.page-top .mel-concept__head {
    max-width: 900px;
}

/* Concept ラベル + 短線 */
body.page-top .mel-concept__label-group {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 26px;
}
body.page-top .mel-concept__label-en {
    font-family: 'Zen Maru Gothic', 'Zen Kaku Gothic New', sans-serif;
    font-size: 22px;
    font-weight: 900;
    letter-spacing: 0.18em;
    color: #EB2A2A;
    font-style: normal;
    line-height: 1;
}
body.page-top .mel-concept__label-line {
    display: inline-block;
    width: 44px;
    height: 1px;
    background: #EB2A2A;
    flex-shrink: 0;
}

/* 見出し 2行構造 */
body.page-top .mel-concept__ttl {
    all: unset;
    display: flex;
    flex-direction: column;
    font-family: 'Zen Kaku Gothic New', 'Zen Maru Gothic', sans-serif;
    color: #222;
    margin: 0;
}
body.page-top .mel-concept__ttl-sub {
    font-size: 22px;
    font-weight: 500;
    letter-spacing: 0.06em;
    line-height: 1.4;
    color: #444;
}
body.page-top .mel-concept__ttl-main {
    margin-top: 10px;
    font-size: 44px;
    font-weight: 700;
    letter-spacing: 0.09em;
    line-height: 1.35;
    color: #1a1a1a;
}

/* リード */
body.page-top .mel-concept__lead {
    margin: 22px 0 0 !important;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 16px;
    font-weight: 500;
    letter-spacing: 0.06em;
    line-height: 1.9 !important;
    color: #555;
}
body.page-top .mel-concept__sp-br { display: none; }

/* Content : 写真ペア + 3ポイント */
body.page-top .mel-concept__content {
    display: flex;
    align-items: flex-start;
    gap: 60px;
    margin-top: 70px;
}

/* Visual ペア */
body.page-top .mel-concept__visual {
    position: relative;
    width: 380px;
    flex-shrink: 0;
    padding-bottom: 40px;
}
body.page-top .mel-concept__visual-main {
    width: 300px;
    aspect-ratio: 645 / 785;
    overflow: hidden;
    border-radius: 4px;
}
body.page-top .mel-concept__visual-main img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
body.page-top .mel-concept__visual-sub {
    position: absolute;
    right: 0;
    bottom: 0;
    width: 220px;
    aspect-ratio: 401 / 268;
    overflow: hidden;
    border-radius: 4px;
}
body.page-top .mel-concept__visual-sub img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Point リスト */
body.page-top .mel-concept__points {
    flex: 1;
    margin: 32px 0 0;
    padding: 0;
    list-style: none;
}
body.page-top .mel-concept__point {
    position: relative;
    padding-left: 44px;
}
body.page-top .mel-concept__point + .mel-concept__point {
    margin-top: 38px;
}
body.page-top .mel-concept__point::before {
    content: "";
    position: absolute;
    top: 3px;
    left: 0;
    width: 27px;
    height: 27px;
    background-image: url("../img/mel-check.png");
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
}
body.page-top .mel-concept__point-ttl {
    all: unset;
    display: block;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 19px;
    font-weight: 700;
    letter-spacing: 0.06em;
    color: #1a1a1a;
    line-height: 1.55;
}
body.page-top .mel-concept__point-txt {
    margin: 8px 0 0 !important;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 15px;
    font-weight: 400;
    letter-spacing: 0.05em;
    line-height: 1.9 !important;
    color: #555;
}
/* SP対応 */
@media (max-width: 768px) {
    body.page-top .mel-concept {
        padding: 60px 0 20px;
    }
    body.page-top .mel-concept__inner {
        padding: 0 24px;
    }
    body.page-top .mel-concept__label-en { font-size: 18px; }
    body.page-top .mel-concept__label-line { width: 32px; }
    body.page-top .mel-concept__ttl-sub { font-size: 17px; }
    body.page-top .mel-concept__ttl-main {
        font-size: 28px;
        line-height: 1.45;
    }
    body.page-top .mel-concept__lead {
        font-size: 14.5px !important;
        line-height: 1.85 !important;
    }
    body.page-top .mel-concept__content {
        flex-direction: column;
        gap: 40px;
        margin-top: 40px;
    }
    body.page-top .mel-concept__visual {
        width: 100%;
        max-width: 280px;
        margin: 0 auto 0 0;
        padding-bottom: 30px;
    }
    body.page-top .mel-concept__visual-main { width: 100%; }
    body.page-top .mel-concept__visual-sub {
        width: 58%;
        right: -72px;
        bottom: 0;
    }
    body.page-top .mel-concept__points { margin-top: 20px; }
    body.page-top .mel-concept__point { padding-left: 36px; }
    body.page-top .mel-concept__point + .mel-concept__point { margin-top: 28px; }
    body.page-top .mel-concept__point::before {
        width: 22px;
        height: 22px;
        background-size: contain;
    }
    body.page-top .mel-concept__point-ttl { font-size: 16.5px; }
    body.page-top .mel-concept__point-txt { font-size: 14px !important; }
    body.page-top .mel-concept__sp-br { display: inline; }
}

/* ================================================
   Match : 3タイプ婚活提案（ウェルスマ「サクサク派/しっかり相談派/引っ張ってほしい派」構造準拠）
   ================================================ */
body.page-top .mel-match {
    background: #fff;
    padding: 100px 0 0;
    position: relative;
    z-index: 20;
}
body.page-top .mel-match__inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 40px;
    box-sizing: border-box;
}
body.page-top .mel-match__sp-br { display: none; }

/* 見出し */
body.page-top .mel-match__head {
    text-align: center;
    margin-bottom: 60px;
    position: relative;
    z-index: 10;
}
body.page-top .mel-match__deco {
    position: absolute;
    left: 20px;
    top: 70px;
    margin: 0;
    font-family: 'Futura', 'Futura PT', 'Century Gothic', 'Helvetica Neue', sans-serif;
    font-size: 150px;
    font-weight: 900;
    letter-spacing: 0.02em;
    line-height: 0.85;
    color: rgba(0, 0, 0, 0.05);
    text-transform: uppercase;
    white-space: nowrap;
    pointer-events: none;
    z-index: 1;
}
@media (max-width: 768px) {
    body.page-top .mel-match__deco {
        left: 8px;
        top: 50px;
        font-size: 60px;
    }
}
body.page-top .mel-match__lead {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 17px;
    font-weight: 700;
    letter-spacing: 0.14em;
    color: #EB2A2A;
    margin: 0 0 14px !important;
    line-height: 1.4 !important;
}
body.page-top .mel-match__ttl {
    all: unset;
    display: block;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 40px;
    font-weight: 700;
    letter-spacing: 0.18em;
    line-height: 1.5;
    color: #1a1a1a;
}
body.page-top .mel-match__ttl-em {
    color: #1a1a1a;
    font-weight: 900;
    letter-spacing: 0.08em;
    margin: 0 6px;
}

/* 対話ボックスラップ */
body.page-top .mel-match__talk-wrap {
    position: relative;
    max-width: 820px;
    margin: 0 auto;
    padding: 40px 0 100px;
}
body.page-top .mel-match__talk-box {
    position: relative;
    background: #fff;
    padding: 40px 48px;
    border-radius: 12px;
    box-shadow: 0 8px 32px rgba(0,0,0,0.08);
    z-index: 2;
}
body.page-top .mel-match__talk-q {
    display: flex;
    align-items: center;
    gap: 20px;
}
body.page-top .mel-match__talk-q-img {
    width: 76px;
    height: 76px;
    border-radius: 50%;
    overflow: hidden;
    flex-shrink: 0;
    border: 3px solid #FFEBEE;
}
body.page-top .mel-match__talk-q-img img {
    width: 100%; height: 100%; object-fit: cover; display: block;
}
body.page-top .mel-match__talk-q-txt {
    flex: 1;
    background: #fff;
    padding: 18px 26px;
    border-radius: 60px;
    border: 1.5px solid #FFEBEE;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 15px;
    font-weight: 500;
    color: #444;
    line-height: 1.6 !important;
    margin: 0 !important;
}
body.page-top .mel-match__talk-a {
    display: flex;
    align-items: center;
    gap: 26px;
    margin-top: 28px;
    padding-top: 28px;
    border-top: 1px dashed rgba(235, 42, 42, 0.2);
    justify-content: flex-end;
}
body.page-top .mel-match__talk-a-txt {
    flex: 1;
    text-align: right;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 15px;
    font-weight: 500;
    color: #444;
    line-height: 1.85 !important;
    margin: 0 !important;
}
body.page-top .mel-match__talk-a-person {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    flex-shrink: 0;
}
body.page-top .mel-match__talk-a-img {
    width: 84px;
    height: 84px;
    border-radius: 50%;
    overflow: hidden;
    border: 3px solid #EB2A2A;
}
body.page-top .mel-match__talk-a-img img {
    width: 100%; height: 100%; object-fit: cover; display: block;
}
body.page-top .mel-match__talk-a-role {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 11px;
    color: #666;
    font-weight: 500;
    margin: 0 !important;
    letter-spacing: 0.06em;
    line-height: 1 !important;
}

/* Beside You ウォーターマーク（右写真の上右にかぶるように） */
body.page-top .mel-match__watermark {
    position: absolute;
    right: 20px;
    top: 40px;
    font-family: 'Futura', 'Futura PT', 'Century Gothic', 'Helvetica Neue', sans-serif;
    font-size: 130px;
    font-weight: 900;
    letter-spacing: 0.02em;
    color: #EB2A2A;
    white-space: nowrap;
    line-height: 1;
    z-index: 5;
    pointer-events: none;
    user-select: none;
}

/* Match 3特徴カード */
body.page-top .mel-match__features {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 26px;
    max-width: 1080px;
    margin: 40px auto 90px;
    padding: 0 40px;
    box-sizing: border-box;
}
body.page-top .mel-match__feature {
    background: #fff;
    border: 1px solid #F1E4E4;
    border-radius: 14px;
    padding: 40px 26px 34px;
    text-align: center;
    box-shadow: 0 12px 34px rgba(235, 42, 42, 0.06);
    display: flex;
    flex-direction: column;
    align-items: center;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
body.page-top .mel-match__feature:hover {
    transform: translateY(-4px);
    box-shadow: 0 18px 44px rgba(235, 42, 42, 0.12);
}
body.page-top .mel-match__feature-visual {
    min-height: 96px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    margin-bottom: 20px;
    color: #EB2A2A;
}
body.page-top .mel-match__feature-visual > * {
    display: inline-flex;
}
body.page-top .mel-match__feature-visual :is(.mel-match__feature-yen, .mel-match__feature-num, .mel-match__feature-unit) {
    display: inline;
    vertical-align: baseline;
}
body.page-top .mel-match__feature-yen {
    font-family: 'Futura', 'Futura PT', 'Century Gothic', sans-serif;
    font-size: 32px;
    font-weight: 900;
    color: #EB2A2A;
    line-height: 1;
    margin-right: 2px;
}
body.page-top .mel-match__feature-num {
    font-family: 'Futura', 'Futura PT', 'Century Gothic', sans-serif;
    font-size: 68px;
    font-weight: 900;
    letter-spacing: 0.01em;
    line-height: 1;
    color: #EB2A2A;
}
body.page-top .mel-match__feature-unit {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 16px;
    font-weight: 700;
    color: #EB2A2A;
    margin-left: 4px;
    line-height: 1;
}
body.page-top .mel-match__feature-badge {
    font-family: 'Futura', 'Futura PT', sans-serif;
    font-size: 40px;
    font-weight: 900;
    letter-spacing: 0.06em;
    color: #EB2A2A;
    line-height: 1;
    padding: 12px 22px 10px;
    border: 3px solid #EB2A2A;
    border-radius: 6px;
}
body.page-top .mel-match__feature-badge-tag {
    margin-top: 8px;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 12px;
    font-weight: 700;
    color: #EB2A2A;
    letter-spacing: 0.14em;
}
body.page-top .mel-match__feature-ttl {
    all: unset;
    display: block;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 18px;
    font-weight: 700;
    color: #1a1a1a;
    line-height: 1.5;
    margin: 0 0 12px;
}
body.page-top .mel-match__feature-txt {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 14px;
    font-weight: 400;
    color: #555;
    line-height: 1.85 !important;
    margin: 0 !important;
    letter-spacing: 0.03em;
}

/* 写真ペア + Beside You. ラップ（ずらし配置） */
body.page-top .mel-match__visual-pair-wrap {
    position: relative;
    max-width: 1100px;
    margin: 0 auto;
    padding: 40px 40px 80px;
    height: 520px;
    box-sizing: border-box;
}

/* 3タイプリスト */
body.page-top .mel-match__type-list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
    margin: 40px 0 0;
    padding: 0;
    list-style: none;
}
body.page-top .mel-match__type {
    background: #fff;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 4px 24px rgba(0,0,0,0.06);
    display: flex;
    flex-direction: column;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
body.page-top .mel-match__type:hover {
    transform: translateY(-4px);
    box-shadow: 0 14px 36px rgba(0,0,0,0.10);
}
body.page-top .mel-match__type-img {
    width: 100%;
    aspect-ratio: 4 / 3;
    overflow: hidden;
}
body.page-top .mel-match__type-img img {
    width: 100%; height: 100%; object-fit: cover; display: block;
    transition: transform 0.6s ease;
}
body.page-top .mel-match__type:hover .mel-match__type-img img {
    transform: scale(1.05);
}
body.page-top .mel-match__type-body {
    padding: 28px 26px 30px;
    display: flex;
    flex-direction: column;
    flex: 1;
}
body.page-top .mel-match__type-num {
    font-family: 'Cormorant Garamond', 'Zen Kaku Gothic New', serif;
    font-size: 15px;
    font-weight: 500;
    letter-spacing: 0.15em;
    color: #EB2A2A;
    font-style: italic;
    line-height: 1;
    margin-bottom: 12px;
}
body.page-top .mel-match__type-catch {
    all: unset;
    display: block;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 20px;
    font-weight: 700;
    color: #1a1a1a;
    line-height: 1.5 !important;
    margin: 0 0 10px !important;
    letter-spacing: 0.03em;
}
body.page-top .mel-match__type-catch-strong {
    color: #EB2A2A;
}
body.page-top .mel-match__type-lead {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 13.5px;
    color: #666;
    font-weight: 500;
    margin: 0 0 18px !important;
    line-height: 1.7 !important;
    padding-bottom: 16px;
    border-bottom: 1px dashed rgba(235, 42, 42, 0.2);
}
body.page-top .mel-match__type-features {
    list-style: none;
    padding: 0;
    margin: 0;
}
body.page-top .mel-match__type-features li {
    position: relative;
    padding-left: 22px;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 13.5px;
    line-height: 1.75;
    color: #555;
    margin-bottom: 10px;
}
body.page-top .mel-match__type-features li:last-child { margin-bottom: 0; }
body.page-top .mel-match__type-features li::before {
    content: "";
    position: absolute;
    top: 8px;
    left: 0;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #EB2A2A;
}

/* SP */
@media (max-width: 768px) {
    body.page-top .mel-match {
        padding: 60px 0 70px;
    }
    body.page-top .mel-match__inner {
        padding: 0 20px;
        display: flex;
        flex-direction: column;
    }
    body.page-top .mel-match__head { order: 1; }
    body.page-top .mel-match__body { order: 2; }
    body.page-top .mel-match .mel-view-more-wrap { order: 3; margin-top: 40px; }
    body.page-top .mel-match__sp-br { display: inline; }
    body.page-top .mel-match__head {
        margin-bottom: 36px;
    }
    body.page-top .mel-match__lead {
        font-size: 15px;
    }
    body.page-top .mel-match__ttl {
        font-size: 22px;
        line-height: 1.55;
    }
    body.page-top .mel-match__talk-wrap {
        padding: 24px 0 70px;
    }
    body.page-top .mel-match__talk-box {
        padding: 24px 20px;
        border-radius: 10px;
    }
    body.page-top .mel-match__talk-q {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
    }
    body.page-top .mel-match__talk-q-img {
        width: 56px; height: 56px;
    }
    body.page-top .mel-match__talk-q-txt {
        font-size: 13.5px;
        padding: 14px 18px;
        border-radius: 20px;
    }
    body.page-top .mel-match__talk-a {
        flex-direction: column-reverse;
        align-items: flex-end;
        gap: 12px;
        margin-top: 20px;
        padding-top: 20px;
    }
    body.page-top .mel-match__talk-a-txt {
        font-size: 13.5px;
    }
    body.page-top .mel-match__talk-a-img {
        width: 60px; height: 60px;
    }
    body.page-top .mel-match__talk-a-role {
        font-size: 10px;
    }
    body.page-top .mel-match__watermark {
        font-size: 52px;
    }
    body.page-top .mel-match__type-list {
        grid-template-columns: 1fr;
        gap: 20px;
        margin-top: 24px;
    }
    body.page-top .mel-match__type-body {
        padding: 22px 22px 24px;
    }
    body.page-top .mel-match__type-num {
        font-size: 13px;
    }
    body.page-top .mel-match__type-catch {
        font-size: 17px;
    }
    body.page-top .mel-match__type-lead {
        font-size: 13px;
    }
    body.page-top .mel-match__type-features li {
        font-size: 13px;
    }
}

/* ================================================
   Worry : お悩み共感（元のlp-worry-sectionの内容を、mel-concept/mel-match準拠のデザインで作り直し）
   ================================================ */
body.page-top .mel-worry {
    background: #F7F7F7;
    padding: 90px 0 100px;
    position: relative;
    z-index: 15;
    overflow: hidden;
}
body.page-top .mel-worry__inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 40px;
    box-sizing: border-box;
}
body.page-top .mel-worry__sp-br { display: none; }

body.page-top .mel-worry__head {
    text-align: center;
    margin-bottom: 50px;
    position: relative;
    z-index: 10;
}
body.page-top .mel-worry__ttl-em {
    text-emphasis: filled dot #EB2A2A;
    text-emphasis-position: under;
    -webkit-text-emphasis: filled dot #EB2A2A;
    -webkit-text-emphasis-position: under;
}
body.page-top .mel-worry__deco {
    position: absolute;
    left: 20px;
    top: 55px;
    margin: 0;
    font-family: 'Zen Kaku Gothic New', 'Zen Maru Gothic', sans-serif;
    font-size: 200px;
    font-weight: 900;
    letter-spacing: 0.02em;
    line-height: 0.85;
    color: rgba(255, 255, 255, 0.85);
    text-transform: uppercase;
    white-space: nowrap;
    pointer-events: none;
    z-index: 1;
}
@media (max-width: 768px) {
    body.page-top .mel-worry__deco {
        left: 8px;
        top: 40px;
        font-size: 92px;
    }
}
body.page-top .mel-worry__lead {
    font-family: 'Zen Maru Gothic', 'Zen Kaku Gothic New', sans-serif;
    font-size: 18px;
    font-weight: 900;
    letter-spacing: 0.22em;
    color: #EB2A2A;
    margin: 0 0 16px !important;
    line-height: 1 !important;
}
body.page-top .mel-worry__ttl {
    all: unset;
    display: block;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 32px;
    font-weight: 700;
    letter-spacing: 0.05em;
    line-height: 1.55;
    color: #1a1a1a;
}

body.page-top .mel-worry__list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    list-style: none;
    padding: 0;
    margin: 0;
}
body.page-top .mel-worry__item {
    display: flex;
    align-items: center;
    gap: 18px;
    background: #fff;
    padding: 26px 28px;
    border-radius: 10px;
    box-shadow: 0 4px 16px rgba(235, 42, 42, 0.06);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
body.page-top .mel-worry__item:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 24px rgba(235, 42, 42, 0.10);
}
body.page-top .mel-worry__q {
    flex-shrink: 0;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: #EB2A2A;
    color: #fff;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 20px;
    font-weight: 700;
    font-style: normal;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    text-align: center;
    letter-spacing: 0;
}
body.page-top .mel-worry__txt {
    flex: 1;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 15px;
    font-weight: 600;
    color: #333;
    line-height: 1.65 !important;
    margin: 0 !important;
}

@media (max-width: 768px) {
    body.page-top .mel-worry {
        padding: 60px 0 70px;
    }
    body.page-top .mel-worry__inner {
        padding: 0 20px;
    }
    body.page-top .mel-worry__sp-br { display: inline; }
    body.page-top .mel-worry__head { margin-bottom: 30px; }
    body.page-top .mel-worry__lead { font-size: 15px; margin-bottom: 12px !important; }
    body.page-top .mel-worry__ttl { font-size: 22px; line-height: 1.55; }
    body.page-top .mel-worry__list {
        grid-template-columns: 1fr;
        gap: 12px;
    }
    body.page-top .mel-worry__item {
        padding: 20px 22px;
    }
    body.page-top .mel-worry__q { width: 34px; height: 34px; font-size: 18px; }
    body.page-top .mel-worry__txt { font-size: 14px; }
    body.page-top .mel-worry__item:nth-child(2),
    body.page-top .mel-worry__item:nth-child(4),
    body.page-top .mel-worry__item:nth-child(5) { display: none; }
}

/* ================================================
   なおた様指示反映：追加調整
   ================================================ */

/* ABOUT 3ポイント見出しを赤に */
body.page-top .mel-concept__point-ttl {
    color: #EB2A2A;
}

/* Worry：元のお悩みイラストを見出しの下に */
body.page-top .mel-worry__img-wrap {
    max-width: 900px;
    margin: 0 auto 40px;
    text-align: center;
}
body.page-top .mel-worry__img {
    width: 100%;
    height: auto;
    display: block;
    margin: 0 auto;
}
body.page-top .mel-worry__img--sp { display: none; }
@media (max-width: 768px) {
    body.page-top .mel-worry__img-wrap {
        max-width: 320px;
        margin: 0 auto 24px;
    }
    body.page-top .mel-worry__img--pc { display: none; }
    body.page-top .mel-worry__img--sp { display: block; }
}

/* Match：対話ボックスをウェルスマ実測値により忠実に */
body.page-top .mel-match__talk-box {
    padding: 44px 56px 52px;
    border-radius: 8px;
    box-shadow: 0 4px 40px rgba(205, 212, 223, 0.35);
}
body.page-top .mel-match__talk-q-img,
body.page-top .mel-match__talk-a-img {
    width: 90px;
    height: 90px;
}
body.page-top .mel-match__talk-q-txt {
    border-radius: 100px;
    padding: 20px 30px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.03);
}

/* Match：写真ペア（ずらし配置） */
body.page-top .mel-match__visual-pair {
    display: block;
    max-width: none;
    margin: 0;
    position: relative;
    height: 100%;
    z-index: 2;
}
body.page-top .mel-match__visual-pair-item {
    position: absolute;
    overflow: hidden;
    border-radius: 10px;
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.14);
}
body.page-top .mel-match__visual-pair-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
body.page-top .mel-match__visual-pair-item--left {
    top: 0;
    left: 0;
    width: 46%;
    height: 420px;
    z-index: 2;
}
body.page-top .mel-match__visual-pair-item--right {
    top: 120px;
    left: 44%;
    right: auto;
    width: 30%;
    height: 340px;
    z-index: 3;
    transform: none;
}

@media (max-width: 768px) {
    body.page-top .mel-match__talk-box {
        padding: 26px 22px 30px;
    }
    body.page-top .mel-match__talk-q-img,
    body.page-top .mel-match__talk-a-img {
        width: 60px;
        height: 60px;
    }
    body.page-top .mel-match__talk-q-txt {
        padding: 14px 20px;
    }
    body.page-top .mel-match__visual-pair-wrap {
        height: 360px;
        padding: 20px 12px 40px;
    }
    body.page-top .mel-match__visual-pair-item--left {
        top: 30px;
        left: 0;
        width: 54%;
        height: 240px;
    }
    body.page-top .mel-match__visual-pair-item--right {
        top: 120px;
        left: 50%;
        right: auto;
        width: 42%;
        height: 200px;
        transform: none;
    }
    body.page-top .mel-match__watermark {
        top: 20px;
        right: 10px;
        font-size: 56px;
    }
    body.page-top .mel-match__features {
        grid-template-columns: 1fr;
        gap: 16px;
        margin: 30px auto 60px;
        padding: 0 20px;
    }
    body.page-top .mel-match__feature {
        padding: 30px 22px 26px;
    }
    body.page-top .mel-match__feature-visual {
        min-height: 78px;
        margin-bottom: 14px;
    }
    body.page-top .mel-match__feature-num { font-size: 56px; }
    body.page-top .mel-match__feature-yen { font-size: 26px; }
    body.page-top .mel-match__feature-badge {
        font-size: 34px;
        padding: 10px 18px 8px;
    }
    body.page-top .mel-match__feature-ttl { font-size: 17px; }
    body.page-top .mel-match__feature-txt { font-size: 13.5px; }
}

/* ================================================
   Price : 料金セクション（金額大アピール + IBJ強調）
   ================================================ */
body.page-top .mel-price {
    background: #F04B4B;
    padding: 90px 0 100px;
    position: relative;
    z-index: 20;
}
body.page-top .mel-price::before { display: none !important; content: none !important; }
body.page-why-low-price .mel-value {
    background: #F04B4B !important;
    padding: 0 0 100px !important;
    position: relative;
    z-index: 20;
}
body.page-why-low-price .mel-value::before,
body.page-why-low-price .mel-value::after {
    display: none !important;
    content: none !important;
}

/* Price 統合コストカード */
body.page-top .mel-price__cost-card {
    background: #fff;
    border-radius: 20px;
    padding: 44px 48px;
    max-width: 640px;
    margin: 0 auto 40px;
    box-shadow: 0 22px 60px rgba(0, 0, 0, 0.18);
    color: #1a1a1a;
}
body.page-top .mel-price__cost-main {
    text-align: center;
}
body.page-top .mel-price__cost-divider {
    height: 1px;
    background: rgba(235, 42, 42, 0.18);
    margin: 30px 0;
    border: none;
}
body.page-top .mel-price__cost-other,
body.page-top .mel-price__cost-included {
    background: transparent !important;
    box-shadow: none !important;
    padding: 0 !important;
    border-radius: 0 !important;
}

/* Value 白カード化 */
body.page-why-low-price .mel-value__inner {
    max-width: 1000px !important;
    margin: 0 auto;
    padding: 0 40px;
}
body.page-why-low-price .mel-value__card {
    background: #fff !important;
    color: #1a1a1a !important;
    border-radius: 20px;
    padding: 40px 44px;
    max-width: 760px;
    margin: 0 auto 32px;
    box-shadow: 0 22px 60px rgba(0, 0, 0, 0.18);
    text-align: center;
}
body.page-why-low-price .mel-value__en { color: #F04B4B !important; }
body.page-why-low-price .mel-value__sub-ttl { color: #666 !important; }
body.page-why-low-price .mel-value__ttl { color: #1a1a1a !important; }
body.page-why-low-price .mel-value__sub { color: #555 !important; }
body.page-why-low-price .mel-value__sub-strong { color: #F04B4B !important; }
body.page-why-low-price .mel-value__reasons {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    max-width: 1000px;
    margin: 0 auto;
    padding: 0;
    list-style: none;
}
body.page-why-low-price .mel-value__reason {
    background: #fff !important;
    color: #1a1a1a !important;
    border-radius: 16px;
    padding: 26px 24px;
    box-shadow: 0 14px 40px rgba(0, 0, 0, 0.14);
    text-align: center;
}
body.page-top img.mel-value__reason-num {
    display: block;
    width: 34px;
    height: 34px;
    object-fit: contain;
    margin: 0 auto 12px;
    background: transparent;
    padding: 0;
    border-radius: 0;
}
body.page-why-low-price .mel-value__reason-ttl {
    color: #F04B4B !important;
    font-size: 16px;
    font-weight: 700;
    margin: 0 0 10px;
}
body.page-why-low-price .mel-value__reason-txt {
    color: #555 !important;
    font-size: 13.5px;
    line-height: 1.85;
    margin: 0;
}
/* ヘッダー：赤背景に白の英字＋白の見出し */
body.page-top .mel-price .mel-price__lead { color: #fff; }
body.page-top .mel-price .mel-price__sub { color: rgba(255,255,255,0.9); }
body.page-top .mel-price .mel-price__ttl { color: #fff; }

/* main-card：白カード、内側テキストは赤/黒 */
body.page-top .mel-price .mel-price__main-card {
    background: #fff;
    border: none;
    box-shadow: 0 22px 60px rgba(0, 0, 0, 0.18);
    color: #1a1a1a;
}
body.page-top .mel-price .mel-price__badge {
    background: #EB2A2A;
    color: #fff;
}
body.page-top .mel-price .mel-price__main-label { color: #666; }
body.page-top .mel-price .mel-price__main-num { color: #EB2A2A; }
body.page-top .mel-price .mel-price__main-yen { color: #EB2A2A; }
body.page-top .mel-price .mel-price__main-tax { color: #666; }
body.page-top .mel-price .mel-price__main-note { color: #666; }

/* IBJカード：白カード＋赤ヘッダー＋mel-checkアイコン */
body.page-top .mel-price__ibj {
    background: #fff;
    border: none;
    box-shadow: 0 22px 60px rgba(0, 0, 0, 0.16);
    color: #1a1a1a;
}
body.page-top .mel-price__ibj-badge {
    background: #EB2A2A;
    color: #fff;
}
body.page-top .mel-price__ibj-ttl { color: #1a1a1a; }
body.page-top img.mel-price__ibj-num {
    width: 32px;
    height: 32px;
    object-fit: contain;
    display: inline-block;
    background: transparent;
    border-radius: 0;
    padding: 0;
    flex-shrink: 0;
    margin-top: 2px;
}
body.page-top .mel-price__ibj-point-ttl { color: #EB2A2A; font-weight: 700; }
body.page-top .mel-price__ibj-point-txt { color: #555; }

/* その他料金グリッド：白カード＋赤アクセント */
body.page-top .mel-price .mel-price__other-ttl { color: #fff; }
body.page-top .mel-price .mel-price__other-item {
    background: #fff;
    border: none;
    box-shadow: 0 8px 22px rgba(0, 0, 0, 0.10);
}
body.page-top .mel-price .mel-price__other-label { color: #333; }
body.page-top .mel-price .mel-price__other-amount { color: #EB2A2A; }
body.page-top .mel-price .mel-price__other-unit { color: #EB2A2A; }
body.page-top .mel-price .mel-price__other-item--free .mel-price__other-amount {
    color: #EB2A2A;
}

/* 含まれるものリスト：白カード風 */
body.page-top .mel-price .mel-price__included {
    background: #fff;
    border-radius: 12px;
    padding: 24px 28px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.10);
}
body.page-top .mel-price .mel-price__included-ttl { color: #EB2A2A; }
body.page-top .mel-price .mel-price__included-list li { color: #333; }

/* CTA */
body.page-top .mel-price .mel-price__cta-btn--primary {
    background: #fff;
    color: #EB2A2A;
    box-shadow: 0 10px 26px rgba(0, 0, 0, 0.18);
}
body.page-top .mel-price .mel-price__cta-btn--line {
    background: transparent;
    color: #fff;
    border: 1.5px solid rgba(255, 255, 255, 0.7);
}
body.page-top .mel-price__inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 40px;
    box-sizing: border-box;
}

/* Head */
body.page-top .mel-price__head {
    text-align: center;
    margin-bottom: 50px;
}
body.page-top .mel-price__lead {
    font-family: 'Zen Maru Gothic', 'Zen Kaku Gothic New', sans-serif;
    font-size: 22px;
    font-weight: 900;
    letter-spacing: 0.22em;
    color: #EB2A2A;
    margin: 0 0 20px !important;
    line-height: 1 !important;
}
body.page-top .mel-price__sub {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 18px;
    font-weight: 500;
    letter-spacing: 0.08em;
    color: #666;
    margin: 0 0 8px !important;
    line-height: 1.5 !important;
}
body.page-top .mel-price__ttl {
    all: unset;
    display: block;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 36px;
    font-weight: 700;
    letter-spacing: 0.05em;
    line-height: 1.4;
    color: #1a1a1a;
}

/* メインプライスカード */
body.page-top .mel-price__main-card {
    background: #fff;
    border-radius: 16px;
    padding: 40px 40px 36px;
    box-shadow: 0 12px 48px rgba(235, 42, 42, 0.08);
    text-align: center;
    margin-bottom: 40px;
}
body.page-top .mel-price__badge {
    display: inline-block;
    background: #EB2A2A;
    color: #fff;
    padding: 7px 24px;
    border-radius: 60px;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.1em;
    margin-bottom: 22px;
}
body.page-top .mel-price__main-price {
    display: flex;
    align-items: flex-end;
    justify-content: center;
    gap: 4px;
    flex-wrap: wrap;
}
body.page-top .mel-price__main-label {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 18px;
    font-weight: 700;
    color: #333;
    margin-right: 16px;
    align-self: center;
    line-height: 1;
    padding-bottom: 20px;
}
body.page-top .mel-price__main-num {
    font-family: 'Zen Kaku Gothic New', 'Zen Maru Gothic', sans-serif;
    font-size: 110px;
    font-weight: 900;
    color: #EB2A2A;
    letter-spacing: -0.02em;
    line-height: 1;
}
body.page-top .mel-price__main-yen {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 40px;
    font-weight: 700;
    color: #EB2A2A;
    line-height: 1;
    padding-bottom: 8px;
}
body.page-top .mel-price__main-tax {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 14px;
    font-weight: 500;
    color: #666;
    margin-left: 8px;
    padding-bottom: 14px;
    align-self: flex-end;
}
body.page-top .mel-price__main-note {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 14px;
    font-weight: 500;
    color: #666;
    margin: 20px 0 0 !important;
    letter-spacing: 0.05em;
    line-height: 1.6 !important;
}

/* IBJ アピール */
body.page-top .mel-price__ibj {
    background: #fff;
    border: 2px solid #EB2A2A;
    border-radius: 16px;
    padding: 46px 40px 40px;
    margin-bottom: 40px;
    position: relative;
}
body.page-top .mel-price__ibj-badge {
    position: absolute;
    top: -14px;
    left: 50%;
    transform: translateX(-50%);
    background: #EB2A2A;
    color: #fff;
    padding: 6px 22px;
    border-radius: 60px;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.12em;
    white-space: nowrap;
}
body.page-top .mel-price__ibj-ttl {
    all: unset;
    display: block;
    text-align: center;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 24px;
    font-weight: 700;
    color: #1a1a1a;
    line-height: 1.5;
    letter-spacing: 0.03em;
    margin-bottom: 32px;
}
body.page-top .mel-price__ibj-br { display: none; }
body.page-top .mel-price__ibj-points {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: 1fr;
    gap: 22px;
}
body.page-top .mel-price__ibj-points li {
    display: flex;
    align-items: flex-start;
    gap: 20px;
}
body.page-top .mel-price__ibj-num {
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: #EB2A2A;
    color: #fff;
    font-family: 'Cormorant Garamond', 'Zen Kaku Gothic New', serif;
    font-size: 18px;
    font-weight: 700;
    font-style: italic;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
}
body.page-top .mel-price__ibj-body { flex: 1; }
body.page-top .mel-price__ibj-point-ttl {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 17px;
    font-weight: 700;
    color: #1a1a1a;
    margin: 0 0 4px !important;
    line-height: 1.5 !important;
    letter-spacing: 0.03em;
}
body.page-top .mel-price__ibj-point-txt {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 14px;
    color: #555;
    margin: 0 !important;
    line-height: 1.8 !important;
}

/* その他料金グリッド */
body.page-top .mel-price__other {
    background: #fff;
    border-radius: 16px;
    padding: 32px 40px 36px;
    margin-bottom: 40px;
    box-shadow: 0 6px 24px rgba(0, 0, 0, 0.04);
}
body.page-top .mel-price__other-ttl {
    all: unset;
    display: block;
    text-align: center;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 0.12em;
    color: #EB2A2A;
    margin-bottom: 22px;
    padding-bottom: 12px;
    border-bottom: 1px dashed rgba(235, 42, 42, 0.25);
}
body.page-top .mel-price__other-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
}
body.page-top .mel-price__other-item {
    text-align: center;
    padding: 18px 8px;
    background: #FFF8F8;
    border-radius: 10px;
}
body.page-top .mel-price__other-label {
    display: block;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 13px;
    font-weight: 600;
    color: #555;
    margin-bottom: 10px;
    letter-spacing: 0.05em;
}
body.page-top .mel-price__other-amount {
    display: block;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 26px;
    font-weight: 800;
    color: #333;
    line-height: 1;
}
body.page-top .mel-price__other-unit {
    font-size: 14px;
    font-weight: 700;
    margin-left: 2px;
}
body.page-top .mel-price__other-item--free .mel-price__other-amount {
    color: #EB2A2A;
    font-size: 34px;
}

/* 含まれるもの */
body.page-top .mel-price__included {
    background: #fff;
    border-radius: 16px;
    padding: 32px 40px 36px;
    margin-bottom: 40px;
    box-shadow: 0 6px 24px rgba(0, 0, 0, 0.04);
}
body.page-top .mel-price__included-ttl {
    all: unset;
    display: block;
    text-align: center;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 0.12em;
    color: #EB2A2A;
    margin-bottom: 20px;
    padding-bottom: 12px;
    border-bottom: 1px dashed rgba(235, 42, 42, 0.25);
}
body.page-top .mel-price__included-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
}
body.page-top .mel-price__included-list li {
    position: relative;
    padding-left: 32px;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 14.5px;
    font-weight: 600;
    color: #333;
    line-height: 1.55;
}
body.page-top .mel-price__included-list li::before {
    content: "";
    position: absolute;
    top: 3px;
    left: 0;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background-color: #EB2A2A;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23ffffff'><path d='M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z'/></svg>");
    background-repeat: no-repeat;
    background-position: center;
    background-size: 13px 13px;
}

/* CTA */
body.page-top .mel-price__cta {
    display: flex;
    justify-content: center;
    gap: 20px;
    flex-wrap: wrap;
}
body.page-top .mel-price__cta-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 20px 44px;
    border-radius: 60px;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 16.5px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-decoration: none !important;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    min-width: 260px;
}
body.page-top .mel-price__cta-btn--primary {
    background: #EB2A2A;
    color: #fff !important;
    box-shadow: 0 6px 20px rgba(235, 42, 42, 0.28);
}
body.page-top .mel-price__cta-btn--primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 26px rgba(235, 42, 42, 0.38);
}
body.page-top .mel-price__cta-btn--line {
    background: #06C755;
    color: #fff !important;
    box-shadow: 0 6px 20px rgba(6, 199, 85, 0.28);
}
body.page-top .mel-price__cta-btn--line:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 26px rgba(6, 199, 85, 0.38);
}

/* SP */
@media (max-width: 768px) {
    body.page-top .mel-price {
        padding: 60px 0 70px;
    }
    body.page-top .mel-price__inner {
        padding: 0 20px;
    }
    body.page-top .mel-price__head {
        margin-bottom: 32px;
    }
    body.page-top .mel-price__lead { font-size: 18px; margin-bottom: 14px !important; }
    body.page-top .mel-price__sub { font-size: 15px; }
    body.page-top .mel-price__ttl { font-size: 26px; }

    body.page-top .mel-price__main-card {
        padding: 30px 20px 26px;
        margin-bottom: 24px;
        border-radius: 12px;
    }
    body.page-top .mel-price__main-label {
        font-size: 15px;
        margin-right: 8px;
        padding-bottom: 10px;
    }
    body.page-top .mel-price__main-num { font-size: 72px; }
    body.page-top .mel-price__main-yen { font-size: 28px; padding-bottom: 4px; }
    body.page-top .mel-price__main-tax { font-size: 12px; padding-bottom: 8px; }
    body.page-top .mel-price__main-note { font-size: 13px; }

    body.page-top .mel-price__ibj {
        padding: 32px 20px 28px;
        margin-bottom: 24px;
        border-radius: 12px;
    }
    body.page-top .mel-price__ibj-badge { font-size: 12px; padding: 5px 18px; }
    body.page-top .mel-price__ibj-br { display: inline; }
    body.page-top .mel-price__ibj-ttl { font-size: 18px; margin-bottom: 24px; }
    body.page-top .mel-price__ibj-num { width: 36px; height: 36px; font-size: 15px; }
    body.page-top .mel-price__ibj-point-ttl { font-size: 15.5px; }
    body.page-top .mel-price__ibj-point-txt { font-size: 13px; }
    body.page-top .mel-price__ibj-points li { gap: 14px; }
    body.page-top .mel-price__ibj-points { gap: 18px; }

    body.page-top .mel-price__other {
        padding: 26px 20px 28px;
        margin-bottom: 24px;
        border-radius: 12px;
    }
    body.page-top .mel-price__other-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 10px;
    }
    body.page-top .mel-price__other-amount { font-size: 22px; }
    body.page-top .mel-price__other-item--free .mel-price__other-amount { font-size: 28px; }

    body.page-top .mel-price__included {
        padding: 26px 20px 28px;
        margin-bottom: 32px;
        border-radius: 12px;
    }
    body.page-top .mel-price__included-list {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    body.page-top .mel-price__cta {
        flex-direction: column;
        gap: 12px;
    }
    body.page-top .mel-price__cta-btn {
        min-width: 0;
        width: 100%;
        padding: 16px 20px;
        font-size: 15.5px;
    }
}

/* ================================================
   Reason : メルティアが選ばれる3つの理由
   （ウェルスマ bz-r-promise 実測踏襲：写真2枚+3アイテム異レイアウト+タグ）
   ================================================ */
body.page-top .mel-reason {
    background: #fff;
    padding: 60px 0 110px;
    position: relative;
    z-index: 20;
}

/* 上部写真ゾーン */
body.page-top .mel-reason__top-imgs {
    display: flex;
    align-items: stretch;
    gap: 30px;
    max-width: 1416px;
    margin: 0 auto 70px;
    padding: 0 40px;
    box-sizing: border-box;
}
body.page-top .mel-reason__top-img {
    overflow: hidden;
    border-radius: 8px;
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.08);
}
body.page-top .mel-reason__top-img--left {
    flex-shrink: 0;
    width: 371px;
    aspect-ratio: 371 / 452;
}
body.page-top .mel-reason__top-img--right {
    flex: 1;
    aspect-ratio: 678 / 452;
    min-width: 0;
}
body.page-top .mel-reason__top-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

body.page-top .mel-reason__inner {
    max-width: 1120px;
    margin: 0 auto;
    padding: 0 40px;
    box-sizing: border-box;
}
body.page-top .mel-reason__sp-br { display: none; }

/* Head */
body.page-top .mel-reason__head {
    margin-bottom: 30px;
    padding-left: 10px;
}
body.page-top .mel-reason__label-group {
    display: flex;
    align-items: center;
    gap: 12px;
}
body.page-top .mel-reason__label-en {
    font-family: 'Zen Maru Gothic', 'Zen Kaku Gothic New', sans-serif;
    font-size: 22px;
    font-weight: 900;
    letter-spacing: 0.22em;
    color: #EB2A2A;
    line-height: 1;
}
body.page-top .mel-reason__label-line {
    display: inline-block;
    width: 40px;
    height: 1px;
    background: #EB2A2A;
    flex-shrink: 0;
}
body.page-top .mel-reason__sub-ttl {
    margin: 30px 0 12px !important;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 24.7px;
    font-weight: 700;
    color: #EB2A2A;
    letter-spacing: 0.1em;
    line-height: 1.4 !important;
}
body.page-top .mel-reason__ttl {
    all: unset;
    display: block;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 43.2px;
    font-weight: 700;
    color: #1a1a1a;
    letter-spacing: 0.1em;
    line-height: 1.3;
    margin: 0;
}
body.page-top .mel-reason__ttl-main--2 {
    color: #EB2A2A;
}
body.page-top .mel-reason__ttl-comma {
    letter-spacing: -0.25em;
}

/* Item 共通 */
body.page-top .mel-reason__item {
    position: relative;
    padding-left: 10px;
}
body.page-top .mel-reason__item--01 {
    display: flex;
    flex-direction: column;
    margin-top: 46px;
}
body.page-top .mel-reason__item--02 {
    display: flex;
    align-items: flex-start;
    gap: 44px;
    padding-left: 70px;
    margin-top: 62px;
}
body.page-top .mel-reason__item--03 {
    display: flex;
    flex-direction: column;
    margin-top: 50px;
}

/* Number */
body.page-top .mel-reason__number-group {
    display: flex;
    align-items: baseline;
    gap: 10px;
    margin-bottom: 6px;
}
body.page-top .mel-reason__number-label {
    font-family: 'Cormorant Garamond', 'Zen Kaku Gothic New', serif;
    font-size: 18px;
    font-weight: 500;
    letter-spacing: 0.2em;
    color: #EB2A2A;
    font-style: italic;
    line-height: 1;
}
body.page-top .mel-reason__number {
    font-family: 'Cormorant Garamond', 'Zen Kaku Gothic New', serif;
    font-size: 74px;
    font-weight: 700;
    color: #EB2A2A;
    letter-spacing: 0.02em;
    line-height: 1;
    font-style: italic;
}

/* Item body */
body.page-top .mel-reason__item-col {
    position: relative;
    margin-top: 8px;
    display: flex;
    align-items: flex-start;
    width: 100%;
    padding-right: 120px;
}
body.page-top .mel-reason__item-body {
    position: relative;
    z-index: 1;
    flex: 1;
}
body.page-top .mel-reason__item--01 .mel-reason__item-body,
body.page-top .mel-reason__item--03 .mel-reason__item-body {
    max-width: 523px;
}

/* Item タイトル */
body.page-top .mel-reason__item-ttl {
    all: unset;
    display: block;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 23.7px;
    font-weight: 700;
    color: #1a1a1a;
    letter-spacing: 0.08em;
    line-height: 1.65;
}
body.page-top .mel-reason__item-ttl-small {
    display: block;
    font-size: 18px;
    color: #EB2A2A;
    letter-spacing: 0.06em;
    margin-bottom: 4px;
    font-weight: 700;
}

/* タグリスト */
body.page-top .mel-reason__tag-list {
    list-style: none;
    padding: 0;
    margin: 12px 0 0;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
body.page-top .mel-reason__tag-item {
    display: flex;
    align-items: center;
    gap: 5px;
    background: #EB2A2A;
    border-radius: 2px;
    padding: 7px 13px 8px 10px;
}
body.page-top .mel-reason__tag-check {
    color: #fff;
    font-size: 14px;
    font-weight: 700;
    line-height: 1;
}
body.page-top .mel-reason__tag-txt {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 15px;
    font-weight: 700;
    color: #fff;
    letter-spacing: 0.07em;
    line-height: 1;
    white-space: nowrap;
}

/* 説明 */
body.page-top .mel-reason__item-txt {
    margin: 20px 0 0 !important;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 15px;
    color: #555;
    letter-spacing: 0.05em;
    line-height: 1.85 !important;
    max-width: 518px;
}

/* Item 02 の写真 */
body.page-top .mel-reason__item-img-wrap {
    flex-shrink: 0;
    width: 429px;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    border-radius: 8px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.10);
}
body.page-top .mel-reason__item-img-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
body.page-top .mel-reason__item--02 .mel-reason__item-body {
    flex: 1;
    max-width: none;
}

/* SP */
@media (max-width: 768px) {
    body.page-top .mel-reason {
        padding: 40px 0 70px;
    }
    body.page-top .mel-reason__sp-br { display: inline; }
    body.page-top .mel-reason__top-imgs {
        padding: 0 20px;
        gap: 12px;
        margin-bottom: 40px;
    }
    body.page-top .mel-reason__top-img--left {
        width: 38%;
    }
    body.page-top .mel-reason__inner { padding: 0 20px; }
    body.page-top .mel-reason__head {
        margin-bottom: 20px;
        padding-left: 0;
    }
    body.page-top .mel-reason__label-en { font-size: 18px; }
    body.page-top .mel-reason__label-line { width: 32px; }
    body.page-top .mel-reason__sub-ttl { font-size: 18px; }
    body.page-top .mel-reason__ttl { font-size: 28px; line-height: 1.4; }

    body.page-top .mel-reason__item {
        padding-left: 0;
    }
    body.page-top .mel-reason__item--01,
    body.page-top .mel-reason__item--03 {
        margin-top: 40px;
    }
    body.page-top .mel-reason__item--02 {
        flex-direction: column;
        gap: 20px;
        padding-left: 0;
        margin-top: 40px;
    }
    body.page-top .mel-reason__item-img-wrap {
        width: 100%;
    }
    body.page-top .mel-reason__number { font-size: 56px; }
    body.page-top .mel-reason__number-label { font-size: 15px; }
    body.page-top .mel-reason__item-col {
        padding-right: 0;
    }
    body.page-top .mel-reason__item-ttl { font-size: 19px; line-height: 1.55; }
    body.page-top .mel-reason__item-ttl-small { font-size: 15px; }
    body.page-top .mel-reason__tag-txt { font-size: 13px; }
    body.page-top .mel-reason__tag-item { padding: 6px 10px 6px 8px; }
    body.page-top .mel-reason__item-txt { font-size: 14px; line-height: 1.8 !important; }
}

/* ================================================
   Cases : こんな方にぴったり（ウェルスマ bz-r-you 実測踏襲）
   円形写真+pill吹き出し+右カラム縦積み、区切り線1本のみ
   ================================================ */
body.page-how-to-choose .mel-cases {
    background: #fff;
    padding: 100px 0 100px;
    position: relative;
}
body.page-how-to-choose .mel-cases__inner {
    max-width: 1120px;
    margin: 0 auto;
    padding: 0 40px;
    box-sizing: border-box;
}

/* Head：ラベル + 短線 + 見出し2行 */
body.page-how-to-choose .mel-cases__head {
    margin-bottom: 60px;
}
body.page-how-to-choose .mel-cases__label-group {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 22px;
}
body.page-how-to-choose .mel-cases__label-en {
    font-family: 'Zen Maru Gothic', 'Zen Kaku Gothic New', sans-serif;
    font-size: 22px;
    font-weight: 900;
    letter-spacing: 0.22em;
    color: #EB2A2A;
    line-height: 1;
}
body.page-how-to-choose .mel-cases__label-line {
    display: inline-block;
    width: 40px;
    height: 1px;
    background: #EB2A2A;
    flex-shrink: 0;
}
body.page-how-to-choose .mel-cases__ttl {
    all: unset;
    display: block;
    font-family: 'Zen Kaku Gothic New', sans-serif;
}
body.page-how-to-choose .mel-cases__sub-ttl {
    display: block;
    font-size: 20px;
    font-weight: 700;
    color: #EB2A2A;
    letter-spacing: 0.07em;
    line-height: 1.55;
    margin-bottom: 8px;
}
body.page-how-to-choose .mel-cases__main-ttl {
    display: block;
    font-size: 32px;
    font-weight: 700;
    color: #1a1a1a;
    letter-spacing: 0.06em;
    line-height: 1.55;
}

/* List：区切り線あり、ボックスなし */
body.page-how-to-choose .mel-cases__list {
    list-style: none;
    padding: 0;
    margin: 0;
}
body.page-how-to-choose .mel-cases__item {
    padding: 40px 0 34px;
    border-bottom: 1px solid rgba(235, 42, 42, 0.18);
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 44px;
}
body.page-how-to-choose .mel-cases__item--01 { padding-top: 0; }
body.page-how-to-choose .mel-cases__item--03 { border: none; padding-bottom: 0; }

/* Left：円形写真 + pill吹き出し */
body.page-how-to-choose .mel-cases__left {
    width: 490px;
    display: flex;
    align-items: center;
    flex-shrink: 0;
}
body.page-how-to-choose .mel-cases__photo {
    width: 95px;
    height: 95px;
    border-radius: 50%;
    overflow: hidden;
    flex-shrink: 0;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.10);
}
body.page-how-to-choose .mel-cases__photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
body.page-how-to-choose .mel-cases__bubble {
    margin-left: 18px;
    flex: 1;
    background: #FFEBEE;
    border-radius: 86px;
    padding: 22px 40px;
    min-height: 95px;
    display: flex;
    align-items: center;
    box-sizing: border-box;
}
body.page-how-to-choose .mel-cases__bubble-txt {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 15.5px;
    font-weight: 700;
    color: #EB2A2A;
    letter-spacing: 0.06em;
    line-height: 1.6 !important;
    margin: 0 !important;
}

/* Right：アプリの現実 → メルティアなら 縦積み */
body.page-how-to-choose .mel-cases__right {
    flex: 1;
    padding-top: 4px;
}
body.page-how-to-choose .mel-cases__reality-head {
    display: flex;
    align-items: center;
    gap: 6px;
}
body.page-how-to-choose .mel-cases__reality-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: #999;
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    line-height: 1;
    flex-shrink: 0;
}
body.page-how-to-choose .mel-cases__reality-ttl {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 14.7px;
    font-weight: 700;
    color: #6a5c4d;
    letter-spacing: 0.04em;
    line-height: 1.6;
}
body.page-how-to-choose .mel-cases__reality-txt {
    margin: 6px 0 0 !important;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 14.7px;
    font-weight: 500;
    color: #6a5c4d;
    letter-spacing: 0.04em;
    line-height: 1.65 !important;
}
body.page-how-to-choose .mel-cases__wellma { margin-top: 26px; }
body.page-how-to-choose .mel-cases__wellma-head {
    display: flex;
    align-items: center;
    gap: 8px;
}
body.page-how-to-choose .mel-cases__wellma-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: #EB2A2A;
    color: #fff;
    font-size: 15px;
    font-weight: 700;
    line-height: 1;
    flex-shrink: 0;
}
body.page-how-to-choose .mel-cases__wellma-ttl {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 17.1px;
    font-weight: 700;
    color: #EB2A2A;
    letter-spacing: 0.13em;
    line-height: 1.55;
}
body.page-how-to-choose .mel-cases__wellma-txt {
    margin: 7px 0 0 !important;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 17.2px;
    font-weight: 700;
    color: #333;
    letter-spacing: 0.08em;
    line-height: 1.65 !important;
}

/* SP */
@media (max-width: 768px) {
    body.page-how-to-choose .mel-cases { padding: 60px 0 60px; }
    body.page-how-to-choose .mel-cases__inner { padding: 0 20px; }
    body.page-how-to-choose .mel-cases__head { margin-bottom: 32px; }
    body.page-how-to-choose .mel-cases__label-en { font-size: 18px; }
    body.page-how-to-choose .mel-cases__label-line { width: 32px; }
    body.page-how-to-choose .mel-cases__sub-ttl { font-size: 16px; margin-bottom: 6px; }
    body.page-how-to-choose .mel-cases__main-ttl { font-size: 22px; line-height: 1.5; }

    body.page-how-to-choose .mel-cases__item {
        flex-direction: column;
        gap: 22px;
        padding: 28px 0 24px;
    }
    body.page-how-to-choose .mel-cases__left {
        width: 100%;
    }
    body.page-how-to-choose .mel-cases__photo {
        width: 72px;
        height: 72px;
    }
    body.page-how-to-choose .mel-cases__bubble {
        margin-left: 14px;
        padding: 16px 22px;
        border-radius: 22px;
        min-height: 0;
    }
    body.page-how-to-choose .mel-cases__bubble-txt { font-size: 13.5px; }
    body.page-how-to-choose .mel-cases__right { padding-top: 0; }
    body.page-how-to-choose .mel-cases__reality-ttl,
    body.page-how-to-choose .mel-cases__reality-txt { font-size: 13px; }
    body.page-how-to-choose .mel-cases__wellma { margin-top: 20px; }
    body.page-how-to-choose .mel-cases__wellma-icon { width: 22px; height: 22px; font-size: 13px; }
    body.page-how-to-choose .mel-cases__wellma-ttl { font-size: 15px; }
    body.page-how-to-choose .mel-cases__wellma-txt { font-size: 14.5px; }
}

/* ================================================
   Value : なぜこの価格?（ウェルスマ bz-r-plan__why 実測踏襲）
   中央カード+短線+3理由横並び
   ================================================ */
body.page-why-low-price .mel-value {
    background: #FFF8F8;
    padding: 60px 0 90px;
    position: relative;
    z-index: 20;
}
body.page-why-low-price .mel-value__inner {
    max-width: 1094px;
    margin: 0 auto;
    padding: 0 40px;
    box-sizing: border-box;
}
body.page-why-low-price .mel-value__card {
    background: rgba(255, 255, 255, 0.65);
    border-radius: 6px;
    box-shadow: 0 0 20px rgba(205, 212, 223, 0.5);
    padding: 40px 50px 44px;
    position: relative;
    max-width: 720px;
    margin: 0 auto;
    text-align: center;
}
body.page-why-low-price .mel-value__en {
    position: absolute;
    top: 0;
    left: 32px;
    transform: translateY(-50%);
    background: #FFF8F8;
    padding: 0 12px;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 22px;
    font-weight: 700;
    letter-spacing: 0.14em;
    color: #EB2A2A;
    font-style: italic;
    line-height: 1;
}
body.page-why-low-price .mel-value__sub-ttl {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 15.7px;
    font-weight: 500;
    color: #d47b7b;
    letter-spacing: 0.08em;
    line-height: 1.65 !important;
    margin: 0 0 10px !important;
}
body.page-why-low-price .mel-value__ttl {
    all: unset;
    display: inline-block;
    position: relative;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 32px;
    font-weight: 700;
    color: #EB2A2A;
    letter-spacing: 0.06em;
    line-height: 1.55;
    padding-bottom: 16px;
    margin-bottom: 22px;
}
body.page-why-low-price .mel-value__ttl::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 36px;
    height: 1px;
    background: #EB2A2A;
}
body.page-why-low-price .mel-value__sub {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 15.7px;
    font-weight: 500;
    color: #666;
    letter-spacing: 0.08em;
    line-height: 1.75 !important;
    margin: 0 !important;
    text-align: center;
}
body.page-why-low-price .mel-value__sub-strong {
    color: #EB2A2A;
    font-weight: 700;
}
body.page-why-low-price .mel-value__reasons {
    list-style: none;
    padding: 0;
    margin: 32px 0 0;
    display: flex;
    gap: 14px;
}
body.page-why-low-price .mel-value__reason {
    flex: 1;
    background: #FFEBEE;
    border-radius: 6px;
    padding: 34px 28px 28px;
    text-align: center;
    position: relative;
}
body.page-why-low-price .mel-value__reason-num {
    position: absolute;
    top: -14px;
    left: 50%;
    transform: translateX(-50%);
    background: #EB2A2A;
    color: #fff;
    font-family: 'Cormorant Garamond', 'Zen Kaku Gothic New', serif;
    font-size: 15px;
    font-weight: 700;
    font-style: italic;
    padding: 5px 16px;
    border-radius: 60px;
    letter-spacing: 0.08em;
}
body.page-why-low-price .mel-value__reason-ttl {
    all: unset;
    display: block;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 18.2px;
    font-weight: 700;
    color: #EB2A2A;
    letter-spacing: 0.06em;
    line-height: 1.55;
    margin-bottom: 14px;
}
body.page-why-low-price .mel-value__reason-txt {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 15px;
    font-weight: 400;
    color: #6a5c4d;
    letter-spacing: 0.053em;
    line-height: 1.75 !important;
    margin: 0 !important;
    text-align: left;
}
@media (max-width: 768px) {
    body.page-why-low-price .mel-value {
        padding: 40px 0 60px;
    }
    body.page-why-low-price .mel-value__inner { padding: 0 20px; }
    body.page-why-low-price .mel-value__card {
        padding: 32px 24px 30px;
    }
    body.page-why-low-price .mel-value__en {
        font-size: 18px;
        left: 20px;
    }
    body.page-why-low-price .mel-value__sub-ttl { font-size: 14px; }
    body.page-why-low-price .mel-value__ttl { font-size: 24px; padding-bottom: 12px; margin-bottom: 18px; }
    body.page-why-low-price .mel-value__sub { font-size: 14px; line-height: 1.85 !important; }
    body.page-why-low-price .mel-value__reasons {
        flex-direction: column;
        gap: 22px;
    }
    body.page-why-low-price .mel-value__reason { padding: 28px 22px 22px; }
    body.page-why-low-price .mel-value__reason-num { top: -12px; padding: 4px 14px; font-size: 13px; }
    body.page-why-low-price .mel-value__reason-ttl { font-size: 16px; }
    body.page-why-low-price .mel-value__reason-txt { font-size: 13.5px; }
}


/* ================================================
   Compare : いいとこ取り訴求
   ================================================ */
body.page-top .mel-compare {
    background: #FFF8F8;
    padding: 100px 0 110px;
}
body.page-top .mel-compare__inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 40px;
    box-sizing: border-box;
}
body.page-top .mel-compare__sp-br { display: none; }
body.page-top .mel-compare__head {
    text-align: center;
    margin-bottom: 50px;
}
body.page-top .mel-compare__lead {
    font-family: 'Cormorant Garamond', 'Zen Kaku Gothic New', serif;
    font-size: 16px;
    font-weight: 500;
    letter-spacing: 0.22em;
    color: #EB2A2A;
    font-style: italic;
    margin: 0 0 14px !important;
    line-height: 1 !important;
}
body.page-top .mel-compare__ttl {
    all: unset;
    display: block;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 34px;
    font-weight: 700;
    letter-spacing: 0.05em;
    line-height: 1.4;
    color: #1a1a1a;
    margin-bottom: 14px;
}
body.page-top .mel-compare__sub {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 15px;
    color: #666;
    margin: 0 !important;
    line-height: 1.75 !important;
}
body.page-top .mel-compare__table {
    display: grid;
    grid-template-columns: 1fr 1.15fr 1fr;
    gap: 16px;
    align-items: stretch;
    margin-bottom: 40px;
}
body.page-top .mel-compare__col {
    background: #fff;
    border-radius: 12px;
    padding: 24px 20px 28px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
    position: relative;
}
body.page-top .mel-compare__col--main {
    background: linear-gradient(180deg, #FFEBEE 0%, #fff 45%);
    border: 2px solid #EB2A2A;
    padding-top: 34px;
    box-shadow: 0 12px 40px rgba(235, 42, 42, 0.15);
}
body.page-top .mel-compare__badge {
    position: absolute;
    top: -14px;
    left: 50%;
    transform: translateX(-50%);
    background: #EB2A2A;
    color: #fff;
    padding: 6px 20px;
    border-radius: 60px;
    font-family: 'Cormorant Garamond', 'Zen Kaku Gothic New', serif;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.1em;
    font-style: italic;
}
body.page-top .mel-compare__col-head {
    text-align: center;
    padding-bottom: 16px;
    margin-bottom: 12px;
    border-bottom: 1px dashed rgba(0, 0, 0, 0.12);
}
body.page-top .mel-compare__col--main .mel-compare__col-head {
    border-bottom-color: rgba(235, 42, 42, 0.25);
}
body.page-top .mel-compare__col-icon {
    display: block;
    font-size: 30px;
    line-height: 1;
    margin-bottom: 8px;
}
body.page-top .mel-compare__col-name {
    display: block;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 15px;
    font-weight: 700;
    color: #444;
    letter-spacing: 0.05em;
}
body.page-top .mel-compare__col--main .mel-compare__col-name {
    color: #EB2A2A;
    font-size: 17px;
}
body.page-top .mel-compare__row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 4px;
    border-bottom: 1px dashed rgba(0, 0, 0, 0.08);
}
body.page-top .mel-compare__col--main .mel-compare__row {
    border-bottom-color: rgba(235, 42, 42, 0.15);
}
body.page-top .mel-compare__row:last-child { border-bottom: none; }
body.page-top .mel-compare__row-label {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 13px;
    font-weight: 600;
    color: #666;
    letter-spacing: 0.05em;
}
body.page-top .mel-compare__row-val {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 14px;
    font-weight: 700;
    color: #333;
}
body.page-top .mel-compare__row-val--strong {
    color: #EB2A2A;
    font-weight: 800;
    font-size: 15px;
}
body.page-top .mel-compare__summary {
    text-align: center;
    padding: 40px 32px;
    background: #fff;
    border-radius: 16px;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.06);
    max-width: 900px;
    margin: 0 auto;
}
body.page-top .mel-compare__summary-formula {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 16px;
    margin-bottom: 20px;
    flex-wrap: wrap;
}
body.page-top .mel-compare__summary-part {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 22px;
    font-weight: 800;
    color: #EB2A2A;
    letter-spacing: 0.05em;
}
body.page-top .mel-compare__summary-x {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 28px;
    font-weight: 400;
    color: #999;
    line-height: 1;
}
body.page-top .mel-compare__summary-txt {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 17px;
    font-weight: 600;
    color: #333;
    line-height: 1.7 !important;
    margin: 0 !important;
}
body.page-top .mel-compare__summary-highlight {
    background: transparent;
    padding: 0;
    font-weight: 800;
    color: #EB2A2A;
}
@media (max-width: 768px) {
    body.page-top .mel-compare { padding: 60px 0 70px; }
    body.page-top .mel-compare__inner { padding: 0 20px; }
    body.page-top .mel-compare__sp-br { display: inline; }
    body.page-top .mel-compare__head { margin-bottom: 36px; }
    body.page-top .mel-compare__lead { font-size: 14px; }
    body.page-top .mel-compare__ttl { font-size: 22px; }
    body.page-top .mel-compare__sub { font-size: 13.5px; }
    body.page-top .mel-compare__table { grid-template-columns: 1fr; gap: 20px; }
    body.page-top .mel-compare__col { padding: 20px 18px 22px; }
    body.page-top .mel-compare__col--main { padding-top: 28px; }
    body.page-top .mel-compare__col-icon { font-size: 26px; }
    body.page-top .mel-compare__col-name { font-size: 14px; }
    body.page-top .mel-compare__col--main .mel-compare__col-name { font-size: 16px; }
    body.page-top .mel-compare__summary { padding: 28px 22px; }
    body.page-top .mel-compare__summary-formula { gap: 10px; }
    body.page-top .mel-compare__summary-part { font-size: 17px; }
    body.page-top .mel-compare__summary-x { font-size: 22px; }
    body.page-top .mel-compare__summary-txt { font-size: 15px; }
}

/* ================================================
   Voice : お客様の声（ウェルスマ bz-r-voice 実測踏襲）
   右寄せ見出し + スライダー + 大きな横長写真カード
   ================================================ */
body.page-top .mel-voice {
    position: relative;
    background: #fff;
    padding: 260px 0 98px;
    overflow: visible;
    z-index: 30;
}
@media (max-width: 768px) {
    body.page-top .mel-voice { padding-top: 130px; }
}
body.page-top .mel-voice::before {
    display: none !important;
    content: none !important;
}

/* ================================================
   VIEW MORE リンク（下層ページ誘導用のミニマル装飾）
   ================================================ */
.mel-view-more {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    color: #EB2A2A;
    font-family: 'Futura', 'Futura PT', 'Century Gothic', sans-serif;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.22em;
    text-decoration: none;
    padding: 6px 0;
    transition: opacity 0.2s ease;
}
.mel-view-more:hover { opacity: 0.85; }
.mel-view-more__line {
    display: inline-block;
    width: 40px;
    height: 1px;
    background: #EB2A2A;
    transition: width 0.4s cubic-bezier(0.22, 1, 0.36, 1);
}
.mel-view-more:hover .mel-view-more__line { width: 76px; }
.mel-view-more__circle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border: 1px solid #EB2A2A;
    border-radius: 50%;
    font-size: 13px;
    color: #EB2A2A;
    transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
}
.mel-view-more:hover .mel-view-more__circle { transform: translateX(4px); }

/* バナーリンク（画像1枚のシンプル配置） */
.mel-banner-link {
    display: block;
    max-width: 360px;
    margin: 40px auto;
    text-align: center;
    line-height: 0;
    transition: transform 0.3s ease, opacity 0.3s ease;
}
.mel-banner-link:hover { transform: translateY(-2px); opacity: 0.92; }
.mel-banner-link img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 0;
    box-shadow: none;
}
@media (max-width: 768px) {
    .mel-banner-link { max-width: 280px; margin: 24px auto; }
}

/* CTAバナー縦2枚並び（FV下/Voice下） */
.mel-banner-stack {
    display: flex;
    flex-direction: column;
    gap: 18px;
    max-width: 640px;
    margin: 48px auto;
    padding: 0 20px;
    box-sizing: border-box;
}
.mel-banner-stack .mel-banner-link {
    max-width: none;
    margin: 0;
    transition: transform 0.3s ease, opacity 0.3s ease;
}
.mel-banner-stack .mel-banner-link:hover {
    transform: translateY(-3px);
    opacity: 0.92;
}
.mel-banner-stack .mel-banner-link img {
    width: 100%;
    height: auto;
}
/* FV下バナーはPCで横並び（全幅、各バナーは既存サイズ相当を維持） */
.mel-banner-stack--fv {
    flex-direction: row;
    gap: 24px;
    max-width: 1320px;
    align-items: stretch;
}
.mel-banner-stack--fv .mel-banner-link {
    flex: 1 1 0;
    min-width: 0;
}
@media (max-width: 768px) {
    .mel-banner-stack { max-width: 100%; gap: 12px; margin: 32px auto; padding: 0 16px; }
    .mel-banner-stack--fv { flex-direction: column; }
}

/* ABOUT下 CTAバナー1枚（婚活診断） */
.mel-concept__cta {
    display: block;
    max-width: 640px;
    margin: 40px auto 0;
}
.mel-concept__cta img {
    width: 100%;
    height: auto;
}
@media (max-width: 768px) {
    .mel-concept__cta { max-width: 100%; margin-top: 28px; padding: 0 16px; box-sizing: border-box; }
}

/* バナー横並び 2枚 */
.mel-banner-pair {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    max-width: 720px;
    margin: 40px auto;
    padding: 0 20px;
    box-sizing: border-box;
}
.mel-banner-pair .mel-banner-link {
    max-width: none;
    margin: 0;
}
.mel-banner-pair .mel-banner-link img {
    box-shadow: none;
    border-radius: 0;
}
@media (max-width: 768px) {
    .mel-banner-pair {
        grid-template-columns: 1fr 1fr;
        gap: 8px;
        padding: 0 12px;
        margin: 24px auto;
    }
}

/* ヘッダー/ハンバーガー内のミニバナー */
.mel-header-banner-pair {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    padding: 12px 16px 0;
}

/* SPハンバーガーメニュー下部の縦並びバナー2枚 */
.m-sp-menu-banners {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin: 28px 0 16px;
    padding: 0 4px;
}
.m-sp-menu-banners .mel-banner-link {
    max-width: none;
    margin: 0;
    transition: opacity 0.2s ease;
}
.m-sp-menu-banners .mel-banner-link:hover { opacity: 0.9; }
.m-sp-menu-banners .mel-banner-link img { width: 100%; height: auto; display: block; }
.mel-header-banner-pair a { display: block; line-height: 0; }
.mel-header-banner-pair img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 0;
    box-shadow: none;
}

/* VIEW MORE を中央配置するラッパー */
.mel-view-more-wrap {
    text-align: center;
    margin: 40px 0 20px;
}
@media (max-width: 768px) {
    .mel-view-more-wrap { margin: 24px 0 12px; }
    .mel-view-more { font-size: 12.5px; letter-spacing: 0.18em; }
    .mel-view-more__line { width: 26px; }
    .mel-view-more:hover .mel-view-more__line { width: 50px; }
    .mel-view-more__circle { width: 26px; height: 26px; font-size: 12px; }
}
/* Price境目に重ねる装飾画像（Where Love Begins）：半円を跨ぐ */
body.page-top .mel-voice__bridge {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 90%;
    max-width: 1200px;
    height: auto;
    z-index: 10;
    pointer-events: none;
    user-select: none;
    display: block;
}
@media (max-width: 768px) {
    body.page-top .mel-voice__bridge {
        width: 96%;
        top: -70px;
    }
}
/* Voice背景の赤ピンクグラデを削除して真っ白に */
body.page-top .mel-voice__bg {
    display: none !important;
    background: transparent !important;
}
body.page-top .mel-voice__bg {
    position: absolute;
    left: -60px;
    top: -20px;
    width: 666px;
    height: 609px;
    background: radial-gradient(ellipse at 30% 30%, rgba(255, 214, 218, 0.55) 0%, transparent 60%);
    pointer-events: none;
    z-index: 0;
}
body.page-top .mel-voice__sp-br { display: none; }

/* Head：右寄せ */
body.page-top .mel-voice__head {
    max-width: 1120px;
    margin: 0 auto 32px;
    padding: 0 40px;
    box-sizing: border-box;
    position: relative;
    z-index: 1;
    text-align: right;
}
body.page-top .mel-voice__label-group {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 10px;
    margin-right: 34px;
}
body.page-top .mel-voice__label-en {
    font-family: 'Zen Maru Gothic', 'Zen Kaku Gothic New', sans-serif;
    font-size: 20px;
    font-weight: 900;
    letter-spacing: 0.22em;
    color: #EB2A2A;
    line-height: 1;
}
body.page-top .mel-voice__label-line {
    display: inline-block;
    width: 36px;
    height: 1px;
    background: #EB2A2A;
}
body.page-top .mel-voice__ttl {
    all: unset;
    display: block;
    margin: 17px 27px 0 0;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 40.2px;
    font-weight: 700;
    color: #1a1a1a;
    letter-spacing: 0.06em;
    line-height: 1.55;
    text-align: right;
}
body.page-top .mel-voice__lead {
    margin: 22px 17px 0 0 !important;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 15.7px;
    font-weight: 500;
    color: #555;
    letter-spacing: 0.1em;
    line-height: 1.65 !important;
    text-align: right;
}

/* スライダー */
body.page-top .mel-voice__slider-wrap {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
    position: relative;
    z-index: 1;
}
body.page-top .mel-voice__btn {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: #fff;
    border: 1.5px solid #EB2A2A;
    cursor: pointer;
    z-index: 3;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.10);
    padding: 0;
    transition: background 0.2s ease;
}
body.page-top .mel-voice__btn svg {
    width: 22px;
    height: 22px;
    fill: #EB2A2A;
    transition: fill 0.2s ease;
}
body.page-top .mel-voice__btn:hover {
    background: #EB2A2A;
}
body.page-top .mel-voice__btn:hover svg { fill: #fff; }
body.page-top .mel-voice__btn--prev { left: 6px; }
body.page-top .mel-voice__btn--next { right: 6px; }

body.page-top .mel-voice__track-window {
    overflow: hidden;
    padding: 20px 20px;
}
body.page-top .mel-voice__track {
    display: flex;
    gap: 30px;
    transition: transform 0.5s ease;
}
body.page-top .mel-voice__item {
    flex: 0 0 calc((100% - 60px) / 3);
    min-width: 0;
}
body.page-top .mel-voice__item-inner {
    background: #fff;
    border-radius: 35px;
    overflow: hidden;
    box-shadow: 0 0 27px rgba(167, 167, 167, 0.22);
    display: block;
    height: 100%;
}
body.page-top .mel-voice__photo {
    width: 100%;
    aspect-ratio: 598 / 317;
    overflow: hidden;
}
body.page-top .mel-voice__photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
body.page-top .mel-voice__body {
    padding: 17px 29px 21px;
}
body.page-top .mel-voice__name {
    position: relative;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 19.2px;
    font-weight: 700;
    color: #EB2A2A;
    letter-spacing: 0.05em;
    line-height: 1.55;
    width: fit-content;
    padding-bottom: 4px;
    margin: 0 !important;
}
body.page-top .mel-voice__name::after {
    content: "";
    position: absolute;
    bottom: 3px;
    left: 0;
    width: 100%;
    height: 1px;
    background: #EB2A2A;
}
body.page-top .mel-voice__partner {
    margin: 3px 0 0 !important;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 14.9px;
    font-weight: 500;
    color: #EB2A2A;
    letter-spacing: 0.05em;
    line-height: 1.55 !important;
}
body.page-top .mel-voice__txt {
    margin: 10px 0 0 !important;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 15px;
    color: #555;
    letter-spacing: 0.04em;
    line-height: 1.65 !important;
}
/* Voice 1（クリック可・ブログへ）：aタグ化 */
body.page-top a.mel-voice__item--link {
    text-decoration: none;
    color: inherit;
    display: block;
    flex: 0 0 calc((100% - 60px) / 3);
    min-width: 0;
}
body.page-top a.mel-voice__item--link .mel-voice__item-inner {
    border: 2px solid #EB2A2A;
    box-sizing: border-box;
    transition: transform 0.35s cubic-bezier(.22,1,.36,1), box-shadow 0.35s ease;
}
body.page-top a.mel-voice__item--link:hover .mel-voice__item-inner {
    transform: translateY(-6px);
    box-shadow: 0 12px 32px rgba(167, 167, 167, 0.28);
}
body.page-top a.mel-voice__item--link:hover .mel-view-more__line { width: 76px; }
body.page-top a.mel-voice__item--link:hover .mel-view-more__circle { transform: translateX(4px); }
body.page-top .mel-voice__view-more {
    display: inline-flex;
    margin-top: 16px;
}

@media (max-width: 768px) {
    body.page-top .mel-voice {
        padding: 50px 0 60px;
    }
    body.page-top .mel-voice__bg {
        width: 340px;
        height: 340px;
        left: -80px;
    }
    body.page-top .mel-voice__sp-br { display: inline; }
    body.page-top .mel-voice__head {
        padding: 0 20px;
        margin-bottom: 24px;
    }
    body.page-top .mel-voice__label-group { margin-right: 6px; }
    body.page-top .mel-voice__label-en { font-size: 16px; }
    body.page-top .mel-voice__ttl { font-size: 26px; margin: 12px 6px 0 0; }
    body.page-top .mel-voice__lead { font-size: 13px; margin: 14px 6px 0 0 !important; }
    body.page-top .mel-voice__slider-wrap { padding: 0 12px; }
    body.page-top .mel-voice__btn { width: 34px; height: 34px; }
    body.page-top .mel-voice__btn svg { width: 18px; height: 18px; }
    body.page-top .mel-voice__btn--prev { left: 0; }
    body.page-top .mel-voice__btn--next { right: 0; }
    body.page-top .mel-voice__track-window { padding: 14px 6px; }
    body.page-top .mel-voice__track { gap: 16px; }
    body.page-top .mel-voice__item { flex: 0 0 calc(100% - 30px); }
    body.page-top a.mel-voice__item--link { flex: 0 0 calc(100% - 30px); }
    body.page-top .mel-voice__item-inner { border-radius: 22px; }
    body.page-top .mel-voice__body { padding: 14px 22px 18px; }
    body.page-top .mel-voice__name { font-size: 16px; }
    body.page-top .mel-voice__partner { font-size: 13px; }
    body.page-top .mel-voice__txt { font-size: 13.5px; }
}

/* ================================================
   FAQ : よくあるご質問（ウェルスマ bz-r-faq 実測踏襲）
   左右2カラム / 1つ目は開いた状態でスタート / +/× 90度トグル
   ================================================ */
body.page-top .mel-faq {
    background: #fff;
    padding: 69px 0 100px;
    position: relative;
    z-index: 3;
}
body.page-top .mel-faq__inner {
    max-width: 1197px;
    margin: 0 auto;
    padding: 0 40px;
    box-sizing: border-box;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 60px;
}

/* Left */
body.page-top .mel-faq__left {
    width: 260px;
    flex-shrink: 0;
}
body.page-top .mel-faq__head {
    margin-left: 2px;
}
body.page-top .mel-faq__label-group {
    display: flex;
    align-items: center;
    gap: 8px;
}
body.page-top .mel-faq__label-en {
    font-family: 'Zen Maru Gothic', 'Zen Kaku Gothic New', sans-serif;
    font-size: 22px;
    font-weight: 900;
    letter-spacing: 0.22em;
    color: #EB2A2A;
    line-height: 1;
}
body.page-top .mel-faq__label-line {
    display: inline-block;
    width: 36px;
    height: 1px;
    background: #EB2A2A;
}
body.page-top .mel-faq__ttl {
    all: unset;
    display: block;
    margin: 17px 0 0 -5px;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 34.8px;
    font-weight: 700;
    color: #EB2A2A;
    letter-spacing: 0.06em;
    line-height: 1.55;
}

/* Right */
body.page-top .mel-faq__right {
    margin-top: 13px;
    flex: 1;
    max-width: 810px;
    min-width: 0;
}
body.page-top .mel-faq__list {
    display: flex;
    flex-direction: column;
}

/* Item */
body.page-top .mel-faq__item {
    border-bottom: 1px solid rgba(235, 42, 42, 0.18);
    padding: 30px 0;
}
body.page-top .mel-faq__item:first-child {
    padding-top: 4px;
}

body.page-top .mel-faq__question-btn {
    width: 100%;
    display: flex;
    align-items: center;
    text-align: left;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
    font-family: inherit;
}
body.page-top .mel-faq__q-icon {
    flex-shrink: 0;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: #EB2A2A;
    color: #fff;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 14px;
    font-weight: 700;
    font-style: normal;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    text-align: center;
}
body.page-top .mel-faq__question-txt {
    margin-left: 15px;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 16px;
    font-weight: 700;
    color: #1a1a1a;
    letter-spacing: 0.06em;
    line-height: 1.55;
    flex: 1;
    transition: color 0.2s ease;
}
body.page-top .mel-faq__item.is-open .mel-faq__question-txt {
    color: #EB2A2A;
}
body.page-top .mel-faq__toggle {
    margin-left: auto;
    margin-right: 10px;
    width: 15.4px;
    height: 15.4px;
    display: block;
    position: relative;
    flex-shrink: 0;
}
body.page-top .mel-faq__toggle::before,
body.page-top .mel-faq__toggle::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 100%;
    height: 1.4px;
    background: #EB2A2A;
    transform: translate(-50%, -50%);
    transition: transform 0.25s ease;
}
body.page-top .mel-faq__toggle::after {
    transform: translate(-50%, -50%) rotate(90deg);
}
body.page-top .mel-faq__item.is-open .mel-faq__toggle::after {
    transform: translate(-50%, -50%) rotate(90deg) scaleX(0);
}

body.page-top .mel-faq__answer-wrap {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.35s ease;
}
body.page-top .mel-faq__answer-txt {
    margin-top: 18px;
    margin-left: 39px;
    max-width: 697px;
}
body.page-top .mel-faq__answer-txt p {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 15px;
    font-weight: 400;
    color: #6a5c4d;
    letter-spacing: 0.04em;
    line-height: 1.75;
    margin: 0;
}
body.page-top .mel-faq__answer-txt p + p,
body.page-top .mel-faq__answer-txt p + ul {
    margin-top: 12px;
}
body.page-top .mel-faq__answer-txt strong {
    color: #EB2A2A;
    font-weight: 700;
}
body.page-top .mel-faq__answer-list {
    margin: 4px 0 0;
    padding-left: 20px;
    list-style: disc;
}
body.page-top .mel-faq__answer-list li {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 14.5px;
    color: #6a5c4d;
    line-height: 1.8;
    letter-spacing: 0.04em;
}

@media (max-width: 768px) {
    body.page-top .mel-faq {
        padding: 40px 0 70px;
    }
    body.page-top .mel-faq__inner {
        flex-direction: column;
        padding: 0 20px;
        gap: 24px;
    }
    body.page-top .mel-faq__left {
        width: 100%;
    }
    body.page-top .mel-faq__label-en { font-size: 18px; }
    body.page-top .mel-faq__label-line { width: 30px; }
    body.page-top .mel-faq__ttl { font-size: 24px; margin: 12px 0 0 -3px; }
    body.page-top .mel-faq__right { margin-top: 0; }
    body.page-top .mel-faq__item { padding: 22px 0; }
    body.page-top .mel-faq__q-icon { width: 22px; height: 22px; font-size: 13px; }
    body.page-top .mel-faq__question-txt { font-size: 14.5px; margin-left: 12px; }
    body.page-top .mel-faq__toggle { margin-right: 4px; width: 13px; height: 13px; }
    body.page-top .mel-faq__answer-txt { margin-left: 34px; }
    body.page-top .mel-faq__answer-txt p { font-size: 13.5px; }
    body.page-top .mel-faq__answer-list li { font-size: 13px; }
}

/* Price 内 IBJアピール用の写真 */
body.page-top .mel-price__ibj-visual {
    width: 100%;
    aspect-ratio: 20 / 9;
    overflow: hidden;
    border-radius: 10px;
    margin: 20px 0 26px;
    box-shadow: 0 8px 24px rgba(235, 42, 42, 0.12);
}
body.page-top .mel-price__ibj-visual img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
@media (max-width: 768px) {
    body.page-top .mel-price__ibj-visual {
        margin: 16px 0 20px;
        aspect-ratio: 16 / 9;
    }
}

/* ================================================
   セクション区切り波形装飾（背景色切替時に自然な曲線カット）
   TOP流れ：ABOUT(白) → Worry(薄ピンク) → Match(白) → Cases(白) → Reason(白)
             → Price(薄ピンク) → Value(薄ピンク) → Compare(薄ピンク) → Voice(白) → FAQ(白)
   色切替の4境界に波形を配置
   ================================================ */

/* Worry の上（ABOUT白→Worry薄ピンク）：白の波形が Worry セクションの上端に */
body.page-top .mel-worry {
    position: relative;
}
body.page-top .mel-worry::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 110px;
    background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 110' preserveAspectRatio='none'><ellipse cx='600' cy='0' rx='620' ry='110' fill='%23ffffff'/></svg>") no-repeat top center / 100% 110px;
    z-index: 5;
    pointer-events: none;
}

/* Match の上（Worry薄ピンク→Match白）：Worryから吹き出しの尻尾が降りてくる */
body.page-top .mel-match {
    position: relative;
}
body.page-top .mel-match::before {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 0;
    height: 0;
    border-left: 34px solid transparent;
    border-right: 34px solid transparent;
    border-top: 42px solid #F7F7F7;
    z-index: 5;
    pointer-events: none;
}

/* Price の上（Reason白→Price薄ピンク）：白の波形が Price セクションの上端に */
body.page-top .mel-price {
    position: relative;
}
body.page-top .mel-price::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 50px;
    background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 50' preserveAspectRatio='none'><path d='M0,0 C300,55 900,-5 1200,25 L1200,0 Z' fill='%23ffffff'/></svg>") no-repeat top center / 100% 50px;
    z-index: 5;
    pointer-events: none;
}

/* Voice の上（Compare薄ピンク→Voice白）：薄ピンクの波形が Voice セクションの上端に */
body.page-top .mel-voice::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 50px;
    background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 50' preserveAspectRatio='none'><path d='M0,0 C300,55 900,-5 1200,25 L1200,0 Z' fill='%23FFF8F8'/></svg>") no-repeat top center / 100% 50px;
    z-index: 5;
    pointer-events: none;
}

/* 同色境界（Match→Cases→Reason、Price→Value→Compare、Voice→FAQ）は
   赤い装飾ラインでリズムを作る（半円型） */
body.page-top .mel-reason,
body.page-why-low-price .mel-value,
body.page-top .mel-compare,
body.page-top .mel-faq {
    position: relative;
}
body.page-why-low-price .mel-value::after,
body.page-top .mel-compare::after {
    content: "";
    position: absolute;
    bottom: -14px;
    left: 50%;
    transform: translateX(-50%);
    width: 28px;
    height: 28px;
    background: #EB2A2A;
    border-radius: 50%;
    box-shadow: 0 0 0 6px #fff, 0 6px 16px rgba(235, 42, 42, 0.15);
    z-index: 6;
}

@media (max-width: 768px) {
    body.page-top .mel-price::before,
    body.page-top .mel-voice::before {
        height: 30px;
        background-size: 100% 30px;
    }
    body.page-top .mel-match::before {
        border-left-width: 26px;
        border-right-width: 26px;
        border-top-width: 32px;
    }
    body.page-top .mel-worry::before {
        height: 60px;
        background-size: 100% 60px;
    }
    body.page-why-low-price .mel-value::after,
    body.page-top .mel-compare::after {
        width: 22px;
        height: 22px;
        box-shadow: 0 0 0 5px #fff, 0 4px 12px rgba(235, 42, 42, 0.15);
        bottom: -11px;
    }
}

/* ================================================
   Header : ウェルスマ bz-header 実測踏襲
   ロゴ左 + インラインナビ中央 + CTA右
   PCは水平ドロップダウン、SPはフルスクリーンメニュー
   ================================================ */
.mel-hamb-toggle {
    position: absolute;
    opacity: 0;
    pointer-events: none;
    width: 0;
    height: 0;
}

.mel-header {
    position: sticky;
    top: 0;
    z-index: 100;
    background: #fff;
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}
.mel-header__inner {
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 32px;
    height: 78px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}
.mel-header__logo {
    flex-shrink: 0;
}
.mel-header__logo a {
    display: block;
}
.mel-header__logo-img {
    display: block;
    height: 44px;
    width: auto;
}

.mel-header__gnav {
    flex: 1;
    display: flex;
    justify-content: center;
}
.mel-header__gnav-list {
    display: flex;
    align-items: center;
    gap: 26px;
    list-style: none;
    margin: 0;
    padding: 0;
}
.mel-header__gnav-item {
    position: relative;
}
.mel-header__gnav-link {
    display: block;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 14.5px;
    font-weight: 700;
    letter-spacing: 0.05em;
    color: #333;
    text-decoration: none !important;
    padding: 28px 0;
    position: relative;
    transition: color 0.2s ease;
    white-space: nowrap;
}
.mel-header__gnav-link:hover {
    color: #EB2A2A;
}
.mel-header__gnav-link::after {
    content: "";
    position: absolute;
    bottom: 22px;
    left: 50%;
    transform: translateX(-50%);
    width: 0;
    height: 2px;
    background: #EB2A2A;
    transition: width 0.25s ease;
}
.mel-header__gnav-item:hover .mel-header__gnav-link::after {
    width: 100%;
}

/* サブメニュー：hover ドロップダウン */
.mel-header__sub-list {
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%) translateY(-6px);
    min-width: 220px;
    background: #fff;
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.12);
    border-radius: 8px;
    padding: 10px 0;
    list-style: none;
    margin: 0;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.25s ease, transform 0.25s ease, visibility 0.25s ease;
    z-index: 10;
}
.mel-header__gnav-item:hover .mel-header__sub-list,
.mel-header__gnav-item:focus-within .mel-header__sub-list {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateX(-50%) translateY(0);
}
.mel-header__sub-list li a {
    display: block;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 13.5px;
    font-weight: 500;
    color: #333;
    padding: 11px 22px;
    text-decoration: none !important;
    transition: background 0.15s ease, color 0.15s ease;
    white-space: nowrap;
}
.mel-header__sub-list li a:hover {
    background: #FFF8F8;
    color: #EB2A2A;
}

.mel-header__right {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-shrink: 0;
}
.mel-header__cta {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: #EB2A2A;
    color: #fff !important;
    padding: 10px 22px;
    border-radius: 60px;
    text-decoration: none !important;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    line-height: 1.2;
    box-shadow: 0 6px 18px rgba(235, 42, 42, 0.28);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.mel-header__cta:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 24px rgba(235, 42, 42, 0.36);
}
.mel-header__cta-sub {
    font-size: 10px;
    font-weight: 500;
    letter-spacing: 0.06em;
    opacity: 0.9;
}
.mel-header__cta-main {
    font-size: 14px;
    font-weight: 800;
    letter-spacing: 0.06em;
}
.mel-header__hamb {
    display: none;
    width: 44px;
    height: 44px;
    padding: 10px 8px;
    cursor: pointer;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 5px;
    background: none;
    border: none;
}
.mel-header__hamb-bar {
    display: block;
    width: 26px;
    height: 2px;
    background: #333;
    border-radius: 1px;
    transition: transform 0.25s ease, opacity 0.15s ease;
}

/* SP メニュー */
.mel-sp-menu {
    display: none;
}
.mel-sp-menu__overlay {
    display: none;
}

@media (max-width: 1023px) {
    .mel-header__inner {
        height: 64px;
        padding: 0 20px;
        gap: 12px;
    }
    .mel-header__logo-img {
        height: 34px;
    }
    .mel-header__gnav {
        display: none;
    }
    .mel-header__cta {
        padding: 8px 16px;
    }
    .mel-header__cta-sub {
        font-size: 9px;
    }
    .mel-header__cta-main {
        font-size: 12.5px;
    }
    .mel-header__hamb {
        display: flex;
    }

    .mel-sp-menu {
        display: block;
        position: fixed;
        top: 0;
        right: 0;
        width: 100%;
        max-width: 400px;
        height: 100dvh;
        background: #fff;
        box-shadow: -10px 0 30px rgba(0, 0, 0, 0.15);
        z-index: 200;
        transform: translateX(100%);
        transition: transform 0.35s ease;
        overflow-y: auto;
    }
    .mel-sp-menu__overlay {
        display: block;
        position: fixed;
        inset: 0;
        background: rgba(0, 0, 0, 0.5);
        z-index: 150;
        opacity: 0;
        pointer-events: none;
        transition: opacity 0.3s ease;
    }
    .mel-hamb-toggle:checked ~ .mel-sp-menu {
        transform: translateX(0);
    }
    .mel-hamb-toggle:checked ~ .mel-sp-menu__overlay {
        opacity: 1;
        pointer-events: auto;
    }

    .mel-sp-menu__inner {
        padding: 20px 24px 40px;
    }
    .mel-sp-menu__top {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding-bottom: 20px;
        border-bottom: 1px solid rgba(0, 0, 0, 0.08);
        margin-bottom: 20px;
    }
    .mel-sp-menu__logo img {
        height: 32px;
        width: auto;
        display: block;
    }
    .mel-sp-menu__close {
        display: flex;
        flex-direction: column;
        align-items: center;
        cursor: pointer;
        gap: 2px;
    }
    .mel-sp-menu__close-x {
        font-size: 26px;
        font-weight: 300;
        color: #EB2A2A;
        line-height: 1;
    }
    .mel-sp-menu__close-txt {
        font-family: 'Zen Kaku Gothic New', sans-serif;
        font-size: 10px;
        font-weight: 500;
        color: #EB2A2A;
        letter-spacing: 0.1em;
    }

    .mel-sp-menu__cta-wrap {
        margin-bottom: 24px;
    }
    .mel-sp-menu__cta {
        display: flex;
        align-items: center;
        justify-content: center;
        background: #EB2A2A;
        color: #fff !important;
        padding: 16px;
        border-radius: 60px;
        text-decoration: none !important;
        font-family: 'Zen Kaku Gothic New', sans-serif;
        font-size: 14.5px;
        font-weight: 700;
        letter-spacing: 0.05em;
        box-shadow: 0 6px 18px rgba(235, 42, 42, 0.28);
    }

    .mel-sp-menu__list {
        list-style: none;
        padding: 0;
        margin: 0;
    }
    .mel-sp-menu__list > li {
        border-bottom: 1px solid rgba(0, 0, 0, 0.06);
    }
    .mel-sp-menu__list > li > a {
        display: block;
        font-family: 'Zen Kaku Gothic New', sans-serif;
        font-size: 15px;
        font-weight: 700;
        color: #333;
        padding: 16px 0;
        text-decoration: none !important;
    }
    .mel-sp-menu__details {
        cursor: pointer;
    }
    .mel-sp-menu__details summary {
        display: block;
        font-family: 'Zen Kaku Gothic New', sans-serif;
        font-size: 15px;
        font-weight: 700;
        color: #333;
        padding: 16px 30px 16px 0;
        cursor: pointer;
        list-style: none;
        position: relative;
    }
    .mel-sp-menu__details summary::-webkit-details-marker {
        display: none;
    }
    .mel-sp-menu__details summary::after {
        content: "+";
        position: absolute;
        right: 6px;
        top: 50%;
        transform: translateY(-50%);
        font-weight: 300;
        color: #EB2A2A;
        font-size: 22px;
        transition: transform 0.2s ease;
    }
    .mel-sp-menu__details[open] summary::after {
        content: "−";
    }
    .mel-sp-menu__details ul {
        list-style: none;
        padding: 0 0 10px 12px;
        margin: 0;
    }
    .mel-sp-menu__details ul li a {
        display: block;
        font-family: 'Zen Kaku Gothic New', sans-serif;
        font-size: 13.5px;
        font-weight: 500;
        color: #555;
        padding: 10px 0;
        text-decoration: none !important;
    }
}

/* 中間サイズ（1024〜1280）：ナビ項目のギャップとフォント調整 */
@media (min-width: 1024px) and (max-width: 1280px) {
    .mel-header__gnav-list { gap: 18px; }
    .mel-header__gnav-link { font-size: 13.5px; }
}

/* ================================================
   Footer : ウェルスマ bz-r-footer 実測踏襲
   ロゴ + 区切り線 + ナビ3列 + CTA2ボタン + IBJ加盟の証 + 会社情報 + コピーライト
   ================================================ */
.mel-footer {
    position: relative;
    background: #FFF8F8;
    padding: 70px 0 28px;
    overflow: hidden;
}
.mel-footer::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse at 10% 0%, rgba(235, 42, 42, 0.05) 0%, transparent 45%),
        radial-gradient(ellipse at 90% 100%, rgba(235, 42, 42, 0.06) 0%, transparent 50%);
    pointer-events: none;
    z-index: 0;
}
.mel-footer__inner {
    position: relative;
    z-index: 1;
    max-width: 1393px;
    margin: 0 auto;
    padding: 0 40px;
    box-sizing: border-box;
}

.mel-footer__logo {
    width: 260px;
}
.mel-footer__logo a { display: block; }
.mel-footer__logo img {
    width: 100%;
    height: auto;
    display: block;
}

.mel-footer__line {
    margin-top: 26px;
    width: 100%;
    height: 1px;
    background: rgba(235, 42, 42, 0.22);
}

.mel-footer__head-wrap {
    position: relative;
    margin-top: 44px;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 40px;
    flex-wrap: wrap;
}

/* ナビ：3列 grid（CTAグループと高さ揃え・行間は詰めて中央寄せ） */
.mel-footer__nav {
    flex: 1;
    min-width: 0;
    align-self: stretch;
}
.mel-footer__nav-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(3, max-content);
    column-gap: 46px;
    row-gap: 8px;
    justify-content: flex-start;
    align-content: center;
    width: 100%;
    height: 100%;
}
.mel-footer__nav-list li {
    margin: 0;
}
.mel-footer__nav-list li a {
    display: inline-block;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 14.5px;
    font-weight: 500;
    color: #6a5c4d;
    letter-spacing: 0.06em;
    line-height: 1.85;
    text-decoration: none;
    transition: color 0.2s ease, transform 0.2s ease;
}
.mel-footer__nav-list li a:hover {
    color: #EB2A2A;
    transform: translateX(3px);
}

/* CTAグループ */
.mel-footer__cta-group {
    display: flex;
    flex-direction: column;
    gap: 14px;
    width: 340px;
    flex-shrink: 0;
}
.mel-footer__cta-link {
    position: relative;
    display: flex;
    align-items: center;
    padding: 20px 22px 20px 22px;
    border-radius: 6px;
    text-decoration: none !important;
    overflow: hidden;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.mel-footer__cta-link:hover {
    transform: translateY(-2px);
}
.mel-footer__cta-link--reserve {
    background: #EB2A2A;
    box-shadow: 0 8px 20px rgba(235, 42, 42, 0.25);
}
.mel-footer__cta-link--reserve:hover {
    box-shadow: 0 12px 26px rgba(235, 42, 42, 0.35);
}
.mel-footer__cta-link--line {
    background: #fff;
    border: 2px solid #06C755;
    box-shadow: 0 4px 12px rgba(6, 199, 85, 0.15);
}
.mel-footer__cta-link--line:hover {
    box-shadow: 0 10px 22px rgba(6, 199, 85, 0.25);
}
.mel-footer__cta-badge {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: #fff;
    color: #EB2A2A;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 13px;
    font-weight: 900;
    letter-spacing: 0.06em;
    flex-shrink: 0;
    margin-right: 14px;
}
.mel-footer__cta-icon {
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    margin-right: 12px;
}
.mel-footer__cta-icon svg {
    width: 100%;
    height: 100%;
}
.mel-footer__cta-txt {
    flex: 1;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 15.5px;
    font-weight: 700;
    letter-spacing: 0.08em;
    line-height: 1;
}
.mel-footer__cta-link--reserve .mel-footer__cta-txt { color: #fff; }
.mel-footer__cta-link--line .mel-footer__cta-txt { color: #06C755; }
.mel-footer__cta-arrow {
    font-family: sans-serif;
    font-size: 20px;
    font-weight: 300;
    line-height: 1;
    transition: transform 0.3s ease;
    flex-shrink: 0;
}
.mel-footer__cta-link--reserve .mel-footer__cta-arrow { color: #fff; }
.mel-footer__cta-link--line .mel-footer__cta-arrow { color: #06C755; }
.mel-footer__cta-link:hover .mel-footer__cta-arrow {
    transform: translateX(6px);
}

/* IBJ加盟の証 */
.mel-footer__cms {
    display: flex;
    align-items: center;
    gap: 24px;
    margin-top: 0;
    padding: 26px 30px;
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.04);
    max-width: 900px;
}
.mel-footer__cms-badge {
    flex-shrink: 0;
    width: 170px;
    height: 60px;
}
.mel-footer__cms-badge svg,
.mel-footer__cms-badge img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: contain;
}
.mel-footer__cms-body {
    flex: 1;
}
.mel-footer__cms-ttl {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 16px;
    font-weight: 700;
    color: #1a1a1a;
    letter-spacing: 0.04em;
    line-height: 1.55;
    margin: 0 0 8px !important;
}
.mel-footer__cms-txt {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 13.5px;
    font-weight: 500;
    color: #6a5c4d;
    letter-spacing: 0.04em;
    line-height: 1.75 !important;
    margin: 0 !important;
}

/* 会社情報 */
.mel-footer__info {
    margin-top: 40px;
    padding: 24px 0 22px;
    border-top: 1px solid rgba(235, 42, 42, 0.15);
    border-bottom: 1px solid rgba(235, 42, 42, 0.15);
    max-width: 900px;
}
.mel-footer__info-list {
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    column-gap: 32px;
    row-gap: 8px;
}
.mel-footer__info-row {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin: 0;
}
.mel-footer__info-row dt {
    flex-shrink: 0;
    width: auto;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 12px;
    font-weight: 700;
    color: #EB2A2A;
    letter-spacing: 0.08em;
    line-height: 1.7;
    margin: 0;
    padding: 2px 10px;
    background: #FDECEC;
    border-radius: 4px;
}
.mel-footer__info-row dd {
    flex: 1;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 13.5px;
    font-weight: 500;
    color: #333;
    line-height: 1.7;
    margin: 0;
}
.mel-footer__info-row dd a {
    color: #333;
    text-decoration: none;
    border-bottom: 1px dotted rgba(0, 0, 0, 0.3);
    transition: color 0.2s ease, border-color 0.2s ease;
}
.mel-footer__info-row dd a:hover {
    color: #EB2A2A;
    border-color: #EB2A2A;
}

.mel-footer__copyright {
    margin: 28px 0 0 !important;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 12px;
    font-weight: 500;
    color: #999;
    letter-spacing: 0.06em;
    text-align: center;
}

@media (max-width: 1023px) {
    .mel-footer {
        padding: 48px 0 24px;
    }
    .mel-footer__inner { padding: 0 20px; }
    .mel-footer__logo { width: 200px; }
    .mel-footer__line { margin-top: 20px; }
    .mel-footer__head-wrap {
        flex-direction: column;
        margin-top: 32px;
        gap: 32px;
    }
    .mel-footer__nav-list {
        grid-template-columns: repeat(2, 1fr);
        column-gap: 20px;
        row-gap: 6px;
    }
    .mel-footer__nav-list li a { font-size: 13.5px; }
    .mel-footer__cta-group {
        width: 100%;
        gap: 12px;
    }
    .mel-footer__cta-link { padding: 16px 18px; }
    .mel-footer__cta-txt { font-size: 14.5px; }
    .mel-footer__cms {
        flex-direction: column;
        text-align: center;
        gap: 16px;
        margin-top: 40px;
        padding: 24px 22px;
    }
    .mel-footer__cms-badge { width: 140px; height: 50px; margin: 0 auto; }
    .mel-footer__cms-ttl { font-size: 14.5px; }
    .mel-footer__cms-txt { font-size: 12.5px; text-align: left; }
    .mel-footer__info { margin-top: 30px; padding: 20px 0 18px; }
    .mel-footer__info-list {
        display: flex;
        flex-direction: column;
        gap: 10px;
    }
    .mel-footer__info-row {
        flex-wrap: nowrap;
    }
    .mel-footer__info-row dt { width: auto; font-size: 11px; flex-shrink: 0; }
    .mel-footer__info-row dd { font-size: 12.5px; flex: 1; }
    .mel-footer__cta-group .cta-flex-box { width: 100%; max-width: 320px; margin: 0 auto; }
    .mel-footer__cta-group .cta-base-btn { width: 100%; max-width: 320px; height: 58px; font-size: 17px; }
    .mel-footer__cta-group .cta-base-btn .badge-circle { width: 62px; height: 62px; left: -10px; }
    .mel-footer__cta-group .cta-base-btn .badge-circle .b-top { font-size: 9.5px; }
    .mel-footer__cta-group .cta-base-btn .badge-circle .b-main { font-size: 22px; }
    .mel-footer__cta-group .cta-base-btn .badge-circle .b-main span { font-size: 11px; }
    .mel-footer__copyright { font-size: 11px; margin-top: 22px !important; }
}

/* ================================================
   英語ラベル群のフォントを Futura で統一
   ================================================ */
body.page-top .mel-concept__label-en,
body.page-top .mel-worry__lead,
body.page-top .mel-worry__deco,
body.page-top .mel-reason__label-en,
body.page-how-to-choose .mel-cases__label-en,
body.page-top .mel-voice__label-en,
body.page-top .mel-faq__label-en,
body.page-top .mel-price__lead,
body.page-top .mel-compare__lead {
    font-family: 'Futura', 'Futura PT', 'Century Gothic', 'Helvetica Neue', sans-serif;
}

/* ================================================
   Match セクション：新デザイン（写真ペア+3円+リボン｜No.1バッジ+リスト）
   ================================================ */
body.page-top .mel-match__body {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 60px;
    align-items: center;
    max-width: 1160px;
    margin: 30px auto 60px;
    padding: 0 40px;
    box-sizing: border-box;
}

/* 左側：画像1枚（スパイラル・円形写真・バブル・リボン全部入り） */
body.page-top .mel-match__left {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
}
body.page-top .mel-match__visual {
    width: 100%;
    max-width: 720px;
    height: auto;
    display: block;
}

/* 右側：No.1バッジ + リスト */
body.page-top .mel-match__right {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 24px;
}
body.page-top .mel-match__badge {
    width: 100%;
    max-width: 460px;
    height: auto;
    display: block;
    margin: 0 auto;
}
body.page-top .mel-match__badge-note {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 11px;
    font-weight: 500;
    color: #B08A3E;
    line-height: 1.65;
    margin: -8px 0 8px !important;
    letter-spacing: 0.02em;
}
body.page-top .mel-match__list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 22px;
}
body.page-top .mel-match__list-item {
    display: flex;
    align-items: flex-start;
    gap: 18px;
}
body.page-top .mel-match__list-mark {
    flex-shrink: 0;
    width: 42px;
    height: 42px;
    display: block;
    object-fit: contain;
    margin-top: 2px;
}
body.page-top .mel-match__list-body {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 4px;
}
body.page-top .mel-match__list-txt {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 17px;
    font-weight: 700;
    color: #1a1a1a;
    letter-spacing: 0.03em;
    line-height: 1.45;
}
body.page-top .mel-match__list-sub {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 13px;
    font-weight: 400;
    color: #666;
    letter-spacing: 0.02em;
    line-height: 1.65;
}

/* SP対応 */
@media (max-width: 768px) {
    body.page-top .mel-match__lead {
        font-size: 13.5px !important;
        letter-spacing: 0.1em;
        margin-bottom: 10px !important;
    }
    body.page-top .mel-match__ttl { font-size: 22px; letter-spacing: 0.06em; }
    body.page-top .mel-match__ttl-em { letter-spacing: 0.04em; }
    body.page-top .mel-match__body {
        grid-template-columns: 1fr;
        gap: 40px;
        padding: 0 20px;
        margin: 24px auto 40px;
    }
    body.page-top .mel-match__left {
        max-width: none;
        justify-content: flex-start;
        margin-left: -20px;
        margin-right: -20px;
    }
    body.page-top .mel-match__visual { max-width: 500px; }
    body.page-top .mel-match__ribbon {
        font-size: 13px;
        padding: 10px 20px;
    }
    body.page-top .mel-match__bubble > span { font-size: 12px; }
    body.page-top .mel-match__badge { max-width: 320px; }
    body.page-top .mel-match__badge-note { font-size: 10px; }
    body.page-top .mel-match__list-mark { width: 32px; height: 32px; }
    body.page-top .mel-match__list-txt { font-size: 14.5px; }
    body.page-top .mel-match__list-sub { font-size: 12px; }
}

/* ================================================
   Match：Be side you. 横長ビジュアル（画像そのまま全面表示）
   ================================================ */
body.page-top .mel-match__beside-wrap {
    width: 100%;
    margin: 40px 0 0;
    padding: 0;
    font-size: 0;
    line-height: 0;
}
body.page-top .mel-match__beside-img {
    display: block;
    width: 100%;
    height: auto;
}
@media (max-width: 768px) {
    body.page-top .mel-match__beside-wrap {
        margin: 24px 0 0;
    }
}

/* ================================================
   Reason：新デザイン（ピンク背景・斜め波形・ブロークングリッドカード）
   ================================================ */
body.page-top .mel-reason {
    background: linear-gradient(to bottom, #fff 0, #fff 280px, #FDECEC 280px, #FDECEC 100%) !important;
    padding: 0 0 120px !important;
    position: relative;
    z-index: 5;
    margin-top: 0;
    overflow: visible;
}
@media (min-width: 769px) {
    body.page-top .mel-reason {
        background: linear-gradient(to bottom, #fff 0, #fff 340px, #FDECEC 340px, #FDECEC 100%) !important;
    }
}
body.page-top .mel-reason__beside-wrap {
    width: 100%;
    line-height: 0;
    font-size: 0;
    position: relative;
    z-index: 2;
    margin-top: 0;
}
body.page-top .mel-reason__beside-img {
    display: block;
    width: 100%;
    height: auto;
}
body.page-top .mel-match {
    z-index: 20;
}
body.page-top .mel-match__beside-wrap {
    position: relative;
    z-index: 25;
}
body.page-top .mel-reason__wave {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 140px;
    display: block;
    pointer-events: none;
    z-index: 1;
}
body.page-top .mel-reason__inner {
    max-width: none !important;
    margin: 0 !important;
    padding: 100px 0 0 !important;
    box-sizing: border-box;
    position: relative;
    z-index: 2;
    width: 100%;
}
body.page-top .mel-reason__head {
    text-align: left;
    margin-bottom: 80px;
    padding-left: 20px;
}
body.page-top .mel-reason__head .mel-reason__eyebrow-en {
    all: unset;
    display: block;
    font-family: 'Futura', 'Futura PT', 'Century Gothic', 'Helvetica Neue', sans-serif;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 0.24em;
    color: #EB2A2A;
    text-transform: uppercase;
    margin-bottom: 12px;
}
body.page-top .mel-reason__head .mel-reason__eyebrow-jp {
    all: unset;
    display: block;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 0.1em;
    color: #EB2A2A;
    margin-bottom: 20px;
}
body.page-top .mel-reason__head .mel-reason__ttl,
body.page-top .mel-reason__sticky-head .mel-reason__ttl {
    all: unset;
    display: block;
    font-family: 'Zen Kaku Gothic New', 'Zen Maru Gothic', sans-serif;
    font-size: 44px;
    font-weight: 700;
    letter-spacing: 0.09em;
    line-height: 1.35;
    color: #1a1a1a;
    margin: 0;
}
body.page-top .mel-reason__sticky-head .mel-reason__eyebrow-en {
    display: block !important;
    font-family: 'Futura', 'Futura PT', 'Century Gothic', 'Helvetica Neue', sans-serif !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    letter-spacing: 0.24em !important;
    color: #EB2A2A !important;
    text-transform: uppercase;
    margin: 0 0 12px !important;
    padding: 0 !important;
    line-height: 1.5 !important;
}
body.page-top .mel-reason__sticky-head .mel-reason__eyebrow-jp {
    display: block !important;
    font-family: 'Zen Kaku Gothic New', sans-serif !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    letter-spacing: 0.1em !important;
    color: #EB2A2A !important;
    margin: 0 0 24px !important;
    padding: 0 !important;
    line-height: 1.6 !important;
}

/* 手書き風スパイラル（描画アニメ） */
body.page-top .mel-reason__spiral {
    position: absolute;
    top: 60px;
    right: 40px;
    width: 130px;
    height: 130px;
    z-index: 3;
    pointer-events: none;
}
body.page-top .mel-reason__spiral-path {
    stroke-dasharray: 900;
    stroke-dashoffset: 900;
    animation: mel-reason-spiral-draw 6s ease-in-out infinite;
}
@keyframes mel-reason-spiral-draw {
    0%   { stroke-dashoffset: 900; }
    45%  { stroke-dashoffset: 0; }
    55%  { stroke-dashoffset: 0; }
    100% { stroke-dashoffset: -900; }
}

/* 3カード（ブロークングリッド：微妙にずらす） */
/* Split：左sticky（画面中央固定）＋右カードスクロール */
body.page-top .mel-reason__split {
    display: grid;
    grid-template-columns: minmax(0, 4fr) minmax(0, 10fr);
    gap: 50px;
    max-width: none;
    margin: 0;
    padding: 0 110px 0 90px;
    align-items: start;
    box-sizing: border-box;
    width: 100%;
}
body.page-top .mel-reason__sticky-head {
    position: sticky;
    top: calc(50vh - 110px);
    padding: 20px 0 40px;
    align-self: start;
    z-index: 3;
}
body.page-top .mel-reason__cards {
    display: flex;
    flex-direction: column;
    gap: 40px;
    max-width: none;
    margin: 0;
}
body.page-top .mel-reason__card {
    position: relative;
    display: block;
    background: #fff;
    padding: 40px 52px;
    box-shadow: 0 22px 50px rgba(235, 42, 42, 0.08);
    border-radius: 0;
    max-width: 100%;
    margin: 0;
    overflow: visible;
}
body.page-top .mel-reason__card-num {
    position: absolute;
    top: -36px;
    right: -22px;
    width: 108px;
    height: auto;
    pointer-events: none;
    user-select: none;
    z-index: 3;
}
@media (max-width: 768px) {
    body.page-top .mel-reason__card-num { width: 78px; top: -24px; right: -10px; }
}
body.page-top .mel-reason__card-img {
    position: relative;
    width: 100%;
    max-width: 70%;
    aspect-ratio: 2 / 1;
    border-radius: 0;
    overflow: hidden;
    box-shadow: none;
    margin: 16px auto 24px;
}
body.page-top .mel-reason__card-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
body.page-top .mel-reason__card-ttl {
    all: unset;
    display: flex;
    align-items: center;
    gap: 12px;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 26px;
    font-weight: 900;
    letter-spacing: 0.04em;
    line-height: 1.4;
    color: #EB2A2A;
    margin-bottom: 18px;
    padding-bottom: 16px;
    border-bottom: 1px dashed rgba(235, 42, 42, 0.35);
}
body.page-top .mel-reason__card-mark {
    width: 30px;
    height: 30px;
    flex-shrink: 0;
    object-fit: contain;
}
body.page-top .mel-reason__card-mark {
    width: 24px;
    height: 24px;
    flex-shrink: 0;
    object-fit: contain;
}
body.page-top .mel-reason__card-lead {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.6;
    color: #1a1a1a;
    letter-spacing: 0.03em;
    margin: 0 0 16px !important;
}
body.page-top .mel-reason__card-txt {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 14.5px;
    font-weight: 400;
    line-height: 1.9;
    color: #555;
    margin: 0 !important;
    letter-spacing: 0.02em;
}
body.page-top .mel-reason__card-body .mel-reason__tag-list {
    list-style: none;
    padding: 0;
    margin: 0 0 18px !important;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
body.page-top .mel-reason__card-body .mel-reason__tag-item {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 14px;
    background: #EB2A2A;
    border: none;
    border-radius: 0;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 13px;
    font-weight: 700;
    color: #fff;
    letter-spacing: 0.03em;
    line-height: 1.2;
}
body.page-top .mel-reason__card-body .mel-reason__tag-check {
    font-weight: 900;
    font-size: 14px;
    color: #fff;
}
@media (max-width: 768px) {
    body.page-top .mel-reason__card-body .mel-reason__tag-item {
        font-size: 12px;
        padding: 6px 12px;
    }
}

/* Reason下端の写真2枚 */
body.page-top .mel-reason__bottom-imgs {
    display: grid;
    grid-template-columns: 1fr 1.6fr;
    gap: 24px;
    max-width: 1200px;
    margin: 100px auto 0;
    padding: 0 40px;
    box-sizing: border-box;
    position: relative;
    z-index: 2;
}
body.page-top .mel-reason__bottom-imgs .mel-reason__top-img {
    overflow: hidden;
    border-radius: 12px;
    aspect-ratio: 4 / 3;
    box-shadow: 0 14px 34px rgba(0, 0, 0, 0.12);
}
body.page-top .mel-reason__bottom-imgs .mel-reason__top-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

@media (max-width: 768px) {
    body.page-top .mel-reason {
        margin-top: -40px;
        padding: 20px 0 70px !important;
    }
    body.page-top .mel-reason__wave { height: 60px; }
    body.page-top .mel-reason__inner { padding: 50px 20px 0 !important; }
    body.page-top .mel-reason__head { padding-left: 0; margin-bottom: 40px; }
    body.page-top .mel-reason__head .mel-reason__ttl { font-size: 28px; }
    body.page-top .mel-reason__spiral { width: 70px; height: 70px; top: 20px; right: 12px; }
    body.page-top .mel-reason__split {
        grid-template-columns: 1fr;
        gap: 24px;
        padding: 0 20px;
    }
    body.page-top .mel-reason__sticky-head {
        position: relative;
        top: auto;
        padding: 0 0 12px;
        z-index: auto;
    }
    body.page-top .mel-reason__sticky-head .mel-reason__ttl { font-size: 28px; }
    body.page-top .mel-reason__cards { gap: 24px; max-width: 100%; }
    body.page-top .mel-reason__card {
        padding: 22px 20px 26px;
        max-width: 100%;
    }
    body.page-top .mel-reason__card-img {
        margin: 24px auto 28px;
        max-width: 100%;
    }
    body.page-top .mel-reason__card-lead { font-size: 17px; letter-spacing: 0.02em; }
    body.page-top .mel-reason__card-txt { font-size: 13.5px; }
    body.page-top .mel-reason__card-ttl { font-size: 13px; }
    body.page-top .mel-reason__bottom-imgs {
        grid-template-columns: 1fr;
        gap: 12px;
        padding: 0 20px;
        margin: 50px auto 0;
    }
}

/* ================================================
   Reason：sticky（旧・使用中止／ここは残しても無害）
   ================================================ */
body.page-top .mel-reason {
    background: #fff;
    padding: 100px 0 60px;
    position: relative;
}
body.page-top .mel-reason__inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 40px;
    box-sizing: border-box;
    position: relative;
}
/* 旧sticky実装のCSSは削除済み（新実装が上流にある） */

/* Row（各Reason）：左テキスト＋右写真sticky */
body.page-top .mel-reason__row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 60px;
    align-items: start;
    min-height: 88vh;
    margin-bottom: 60px;
}
body.page-top .mel-reason__row-body {
    padding: 30px 0 60px;
}
body.page-top .mel-reason__row-body .mel-reason__number-group {
    display: flex;
    align-items: baseline;
    gap: 8px;
    margin-bottom: 20px;
}
body.page-top .mel-reason__row-body .mel-reason__number-label {
    font-family: 'Futura', 'Futura PT', sans-serif;
    font-size: 16px;
    font-weight: 700;
    letter-spacing: 0.18em;
    color: #EB2A2A;
}
body.page-top .mel-reason__row-body .mel-reason__number {
    font-family: 'Futura', 'Futura PT', sans-serif;
    font-size: 44px;
    font-weight: 900;
    line-height: 1;
    color: #EB2A2A;
    letter-spacing: 0.02em;
}
body.page-top .mel-reason__row-body .mel-reason__item-ttl {
    all: unset;
    display: block;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 24px;
    font-weight: 700;
    color: #1a1a1a;
    line-height: 1.55;
    margin-bottom: 24px;
}
body.page-top .mel-reason__row-body .mel-reason__item-ttl-small {
    display: block;
    font-size: 14px;
    font-weight: 700;
    color: #EB2A2A;
    letter-spacing: 0.08em;
    margin-bottom: 10px;
    padding-bottom: 8px;
    border-bottom: 1px dotted #EB2A2A;
}
body.page-top .mel-reason__row-body .mel-reason__tag-list {
    list-style: none;
    padding: 0;
    margin: 0 0 24px;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}
body.page-top .mel-reason__row-body .mel-reason__tag-item {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 16px;
    background: #FDECEC;
    border-radius: 999px;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 13px;
    font-weight: 700;
    color: #EB2A2A;
    letter-spacing: 0.03em;
}
body.page-top .mel-reason__row-body .mel-reason__tag-check {
    font-weight: 900;
}
body.page-top .mel-reason__row-body .mel-reason__item-txt {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 15px;
    font-weight: 400;
    line-height: 1.9;
    color: #555;
    margin: 0;
}

/* 右：写真sticky */
body.page-top .mel-reason__row-photo {
    position: sticky;
    top: 220px;
    align-self: start;
    height: min(560px, 60vh);
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.12);
}
body.page-top .mel-reason__row-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Reason下端の写真2枚（元top-imgs移設） */
body.page-top .mel-reason__bottom-imgs {
    display: grid;
    grid-template-columns: 1fr 1.6fr;
    gap: 20px;
    max-width: 1200px;
    margin: 80px auto 0;
    padding: 0 40px;
    box-sizing: border-box;
}
body.page-top .mel-reason__bottom-imgs .mel-reason__top-img {
    overflow: hidden;
    border-radius: 10px;
    aspect-ratio: 4 / 3;
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.1);
}
body.page-top .mel-reason__bottom-imgs .mel-reason__top-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

@media (max-width: 768px) {
    body.page-top .mel-reason { padding: 60px 0 40px; }
    body.page-top .mel-reason__inner { padding: 0 20px; }
    body.page-top .mel-reason__sticky-head {
        position: relative;
        top: auto;
        max-width: none;
        padding: 0 0 24px;
        margin-bottom: 24px;
    }
    body.page-top .mel-reason__sticky-head .mel-reason__ttl { font-size: 22px; }
    body.page-top .mel-reason__row {
        grid-template-columns: 1fr;
        gap: 20px;
        min-height: 0;
        margin-bottom: 40px;
    }
    body.page-top .mel-reason__row-body { padding: 10px 0 0; }
    body.page-top .mel-reason__row-body .mel-reason__number { font-size: 34px; }
    body.page-top .mel-reason__row-body .mel-reason__item-ttl { font-size: 18px; }
    body.page-top .mel-reason__row-body .mel-reason__item-ttl-small { font-size: 12.5px; }
    body.page-top .mel-reason__row-body .mel-reason__item-txt { font-size: 14px; }
    body.page-top .mel-reason__row-photo {
        position: relative;
        top: auto;
        height: 240px;
    }
    body.page-top .mel-reason__bottom-imgs {
        grid-template-columns: 1fr;
        gap: 12px;
        padding: 0 20px;
        margin: 40px auto 0;
    }
}

/* ================================================
   Price / Value 白背景リニューアル：料金表＋IBJ横並び／Why?箇条書き
   ================================================ */
body.page-top .mel-price {
    background: #fff url("../img/mel-price-bg.png") center / cover no-repeat !important;
    padding: 90px 0 200px !important;
    color: #1a1a1a;
    position: relative;
    overflow: hidden;
}
body.page-top .mel-price::after {
    content: "" !important;
    display: block !important;
    position: absolute;
    bottom: -1px;
    left: 0;
    width: 100%;
    height: 130px;
    background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 130' preserveAspectRatio='none'><path d='M0,0 C300,130 900,130 1200,0 L1200,130 L0,130 Z' fill='%23ffffff'/></svg>") no-repeat bottom center / 100% 130px;
    pointer-events: none;
    z-index: 3;
    background-color: transparent !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    transform: none !important;
    top: auto !important;
}
body.page-top .mel-price::before { display: none !important; content: none !important; }
body.page-top .mel-price .mel-price__lead { color: #EB2A2A !important; }
body.page-top .mel-price .mel-price__sub { color: #666 !important; }
body.page-top .mel-price .mel-price__ttl { color: #1a1a1a !important; }

/* 2カラム split（左：料金表、右：IBJ） */
body.page-top .mel-price__split {
    display: grid;
    grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
    gap: 60px;
    max-width: 1200px;
    margin: 40px auto 60px;
    padding: 0 40px;
    box-sizing: border-box;
    align-items: start;
}

/* 料金表カード（青の代わりに赤テーマ） */
body.page-top .mel-price__plan-card {
    background: #fff;
    border: 3px solid #EB2A2A;
    border-radius: 22px;
    overflow: hidden;
    box-shadow: 0 22px 60px rgba(235, 42, 42, 0.10);
}
body.page-top .mel-price__plan-head {
    padding: 36px 30px 28px;
    text-align: center;
    background: #fff;
}
body.page-top .mel-price__plan-name {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 22px;
    font-weight: 900;
    color: #EB2A2A;
    letter-spacing: 0.06em;
    margin: 0 0 18px !important;
    line-height: 1;
}
body.page-top .mel-price__plan-price {
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: 2px;
    margin-bottom: 8px;
}
body.page-top .mel-price__plan-num {
    font-family: 'Futura', 'Futura PT', 'Century Gothic', sans-serif;
    font-size: 64px;
    font-weight: 900;
    color: #EB2A2A;
    line-height: 1;
    letter-spacing: 0.01em;
}
body.page-top .mel-price__plan-unit {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 22px;
    font-weight: 900;
    color: #EB2A2A;
    line-height: 1;
    margin-left: 4px;
}
body.page-top .mel-price__plan-tax {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 13px;
    color: #999;
    margin: 0 !important;
    letter-spacing: 0.04em;
}
body.page-top .mel-price__plan-table { display: block; }
body.page-top .mel-price__plan-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 18px 32px;
    gap: 20px;
}
body.page-top .mel-price__plan-row:nth-child(odd) { background: #FDECEC; }
body.page-top .mel-price__plan-label {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 15px;
    font-weight: 500;
    color: #333;
    letter-spacing: 0.02em;
}
body.page-top .mel-price__plan-value {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 22px;
    font-weight: 900;
    color: #EB2A2A;
    line-height: 1;
    letter-spacing: 0.02em;
}
body.page-top .mel-price__plan-unit-s {
    font-size: 14px;
    font-weight: 700;
    margin-left: 2px;
}

/* IBJ右カラム（薄ピンクの落ち着いた背景） */
body.page-top .mel-price__ibj {
    background: #FFF6F6 !important;
    color: #1a1a1a;
    box-shadow: none;
    border: 1px solid rgba(235, 42, 42, 0.15);
    border-radius: 22px;
    padding: 40px 40px 36px;
    max-width: none;
    margin: 0;
}
body.page-top .mel-price__ibj-badge {
    background: #EB2A2A !important;
    color: #fff !important;
}
body.page-top .mel-price__ibj-ttl { color: #1a1a1a; }
body.page-top img.mel-price__ibj-num {
    width: 32px;
    height: 32px;
    object-fit: contain;
}
body.page-top .mel-price__ibj-point-ttl { color: #EB2A2A; font-weight: 700; }
body.page-top .mel-price__ibj-point-txt { color: #555; }

/* CTA on white */
body.page-top .mel-price .mel-price__cta-btn--primary {
    background: #EB2A2A !important;
    color: #fff !important;
    box-shadow: 0 10px 26px rgba(235, 42, 42, 0.24);
}
body.page-top .mel-price .mel-price__cta-btn--line {
    background: transparent !important;
    color: #EB2A2A !important;
    border: 1.5px solid rgba(235, 42, 42, 0.5) !important;
}

/* Value 白背景・カード枠解体・箇条書き */
body.page-why-low-price .mel-value {
    background: #fff !important;
    color: #1a1a1a !important;
    padding: 40px 0 90px !important;
}
body.page-why-low-price .mel-value::before,
body.page-why-low-price .mel-value::after { display: none !important; content: none !important; }
body.page-why-low-price .mel-value__inner {
    max-width: 900px !important;
    margin: 0 auto !important;
    padding: 0 40px !important;
}
body.page-why-low-price .mel-value__head {
    background: transparent !important;
    box-shadow: none !important;
    padding: 0 !important;
    text-align: center;
    max-width: none !important;
    margin: 0 auto 50px !important;
    color: #1a1a1a;
    border-radius: 0 !important;
}
body.page-why-low-price .mel-value__en {
    font-family: 'Futura', 'Futura PT', 'Century Gothic', sans-serif !important;
    color: #EB2A2A !important;
    font-size: 22px !important;
    font-weight: 900 !important;
    letter-spacing: 0.2em;
    display: block;
    margin-bottom: 20px !important;
    text-transform: uppercase;
}
body.page-why-low-price .mel-value__sub-ttl {
    color: #666 !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    margin: 0 0 14px !important;
    letter-spacing: 0.08em;
}
body.page-why-low-price .mel-value__ttl {
    color: #1a1a1a !important;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 36px !important;
    font-weight: 700 !important;
    letter-spacing: 0.06em;
    line-height: 1.4;
    display: block;
    margin: 0 !important;
}
body.page-why-low-price .mel-value__sub {
    color: #555 !important;
    font-size: 15px !important;
    line-height: 1.85 !important;
    margin: 24px 0 0 !important;
}
body.page-why-low-price .mel-value__sub-strong {
    color: #EB2A2A !important;
    font-weight: 900;
    font-size: 16px;
}
body.page-why-low-price .mel-value__list {
    list-style: none;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 28px;
    max-width: 720px;
    margin: 0 auto !important;
}
body.page-why-low-price .mel-value__list-item {
    display: flex;
    align-items: flex-start;
    gap: 20px;
    background: transparent !important;
    box-shadow: none !important;
    padding: 0 !important;
    border-radius: 0 !important;
}
body.page-why-low-price .mel-value__list-mark {
    flex-shrink: 0;
    width: 36px;
    height: 36px;
    object-fit: contain;
    margin-top: 2px;
}
body.page-why-low-price .mel-value__list-body {
    flex: 1;
}
body.page-why-low-price .mel-value__list-ttl {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 20px !important;
    font-weight: 700 !important;
    color: #EB2A2A !important;
    margin: 0 0 10px !important;
    letter-spacing: 0.04em;
    line-height: 1.4;
}
body.page-why-low-price .mel-value__list-txt {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 14.5px !important;
    color: #555 !important;
    line-height: 1.9 !important;
    margin: 0 !important;
    letter-spacing: 0.02em;
}

@media (max-width: 768px) {
    body.page-top .mel-price__split {
        grid-template-columns: 1fr;
        gap: 30px;
        padding: 0 20px;
    }
    body.page-top .mel-price__plan-num { font-size: 52px; }
    body.page-top .mel-price__plan-unit { font-size: 18px; }
    body.page-top .mel-price__plan-row { padding: 14px 22px; }
    body.page-top .mel-price__plan-value { font-size: 18px; }
    body.page-top .mel-price__plan-unit-s { font-size: 12px; }
    body.page-top .mel-price__ibj { padding: 30px 22px; }
    body.page-why-low-price .mel-value__inner { padding: 0 20px !important; }
    body.page-why-low-price .mel-value__ttl { font-size: 24px !important; }
    body.page-why-low-price .mel-value__en { font-size: 18px !important; }
    body.page-why-low-price .mel-value__list { gap: 20px; }
    body.page-why-low-price .mel-value__list-mark { width: 30px; height: 30px; }
    body.page-why-low-price .mel-value__list-ttl { font-size: 17px !important; }
    body.page-why-low-price .mel-value__list-txt { font-size: 13.5px !important; }
}

/* ================================================
   Price ゴールド化＋添付画像風料金表＋IBJ枠なし
   ================================================ */
:root {
    --mel-gold: #C99A47;
    --mel-gold-dark: #8F6E24;
    --mel-gold-bg: #FBF4E1;
    --mel-gold-line: #E9D6A6;
}

/* コンテンツ幅拡張 */
body.page-top .mel-price__split {
    grid-template-columns: minmax(0, 9fr) minmax(0, 4fr) !important;
    max-width: 1600px !important;
    padding: 0 30px !important;
    gap: 60px !important;
    align-items: start;
}

/* 料金表：1カラム全幅ラッパー */
body.page-top .mel-price__plan-wrap {
    max-width: 780px;
    margin: 0 auto 60px;
    padding: 0 30px;
    box-sizing: border-box;
}

/* Value：2カラム化（左IBJ ｜ 右Why?） */
body.page-why-low-price .mel-value__inner {
    max-width: 1400px !important;
    padding: 0 30px !important;
}
body.page-why-low-price .mel-value__split {
    display: grid;
    grid-template-columns: minmax(0, 6fr) minmax(0, 5fr);
    gap: 80px;
    align-items: start;
    max-width: 1300px;
    margin: 0 auto 60px;
}
body.page-why-low-price .mel-value__col-left,
body.page-why-low-price .mel-value__col-right {
    min-width: 0;
}
/* 右カラム：Why? 左揃え */
body.page-why-low-price .mel-value__col-right .mel-value__head {
    text-align: left !important;
    margin: 0 !important;
    max-width: none !important;
}
body.page-why-low-price .mel-value__col-right .mel-value__ttl { font-size: 40px !important; }

@media (max-width: 768px) {
    body.page-top .mel-price__plan-wrap {
        padding: 0 20px;
        margin: 0 auto 40px;
    }
    body.page-why-low-price .mel-value__inner { padding: 0 20px !important; }
    body.page-why-low-price .mel-value__split {
        grid-template-columns: 1fr;
        gap: 40px;
        margin-bottom: 40px;
    }
    body.page-why-low-price .mel-value__col-right .mel-value__ttl { font-size: 26px !important; }
}

/* 料金表カード：ゴールドボーダー */
body.page-top .mel-price__plan-card {
    background: #fff !important;
    border: 3px solid var(--mel-gold) !important;
    border-radius: 26px !important;
    box-shadow: 0 24px 60px rgba(201, 154, 71, 0.16) !important;
    overflow: hidden;
}
body.page-top .mel-price__plan-head {
    padding: 44px 30px 32px !important;
    text-align: center;
    border-bottom: 1px solid var(--mel-gold-line);
    background: #fff;
}
body.page-top .mel-price__plan-name {
    color: var(--mel-gold) !important;
    font-family: 'Zen Kaku Gothic New', sans-serif !important;
    font-size: 22px !important;
    font-weight: 900 !important;
    letter-spacing: 0.14em !important;
    margin: 0 0 24px !important;
    line-height: 1;
}
body.page-top .mel-price__plan-price {
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: 0;
    margin-bottom: 12px;
}
body.page-top .mel-price__plan-num {
    color: var(--mel-gold) !important;
    font-family: 'Futura', 'Futura PT', 'Century Gothic', sans-serif !important;
    font-size: 72px !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    letter-spacing: 0.01em !important;
}
body.page-top .mel-price__plan-unit {
    color: var(--mel-gold) !important;
    font-family: 'Zen Kaku Gothic New', sans-serif !important;
    font-size: 22px !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    margin-left: 6px !important;
}
body.page-top .mel-price__plan-tax {
    color: #999 !important;
    font-family: 'Zen Kaku Gothic New', sans-serif !important;
    font-size: 13px !important;
    letter-spacing: 0.05em !important;
    margin: 0 !important;
}

body.page-top .mel-price__plan-row {
    padding: 20px 36px !important;
}
body.page-top .mel-price__plan-row:nth-child(odd) {
    background: var(--mel-gold-bg) !important;
}
body.page-top .mel-price__plan-label {
    color: #555 !important;
    font-family: 'Zen Kaku Gothic New', sans-serif !important;
    font-size: 15px !important;
    font-weight: 500 !important;
    letter-spacing: 0.03em !important;
}
body.page-top .mel-price__plan-value {
    color: var(--mel-gold) !important;
    font-family: 'Zen Kaku Gothic New', sans-serif !important;
    font-size: 22px !important;
    font-weight: 900 !important;
    letter-spacing: 0.02em !important;
    line-height: 1 !important;
}
body.page-top .mel-price__plan-value--free {
    color: #EB2A2A !important;
}
body.page-top .mel-price__plan-unit-s {
    font-size: 14px !important;
    font-weight: 700 !important;
    margin-left: 3px !important;
}

/* IBJ右カラム：囲まず、赤アクセント */
body.page-top .mel-price__ibj {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 30px 0 0 !important;
    border-radius: 0 !important;
    max-width: none !important;
    margin: 0 !important;
}
body.page-top .mel-price__ibj-badge {
    display: inline-block;
    background: transparent !important;
    color: #EB2A2A !important;
    padding: 0 0 0 42px !important;
    font-family: 'Futura', 'Futura PT', 'Century Gothic', sans-serif !important;
    font-size: 14px !important;
    font-weight: 900 !important;
    letter-spacing: 0.28em !important;
    margin: 0 0 22px !important;
    text-transform: uppercase;
    position: relative;
    line-height: 1;
}
body.page-top .mel-price__ibj-badge::before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 32px;
    height: 1px;
    background: #EB2A2A;
}
body.page-top .mel-price__ibj-visual {
    display: none !important;
}
body.page-top .mel-price__ibj-ttl {
    color: #1a1a1a !important;
    font-family: 'Zen Kaku Gothic New', sans-serif !important;
    font-size: 28px !important;
    font-weight: 700 !important;
    line-height: 1.55 !important;
    letter-spacing: 0.05em !important;
    margin: 0 0 24px !important;
}

/* No.1バッジ＋注釈 */
body.page-top .mel-price__ibj-no1 {
    margin: 0 0 30px;
}
body.page-top .mel-price__ibj-no1-img {
    display: block;
    width: 100%;
    max-width: 340px;
    height: auto;
    margin: 0 0 12px;
}
body.page-top .mel-price__ibj-no1-note {
    color: #999 !important;
    font-family: 'Zen Kaku Gothic New', sans-serif !important;
    font-size: 10.5px !important;
    line-height: 1.65 !important;
    letter-spacing: 0.02em !important;
    margin: 0 !important;
}

body.page-top .mel-price__ibj-points {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
    display: flex;
    flex-direction: column;
    gap: 26px;
}
body.page-top .mel-price__ibj-points li {
    display: flex !important;
    align-items: flex-start !important;
    gap: 18px !important;
    background: transparent !important;
    padding: 0 !important;
    border: none !important;
}
body.page-top img.mel-price__ibj-num {
    width: 30px !important;
    height: 30px !important;
    margin-top: 4px !important;
    flex-shrink: 0 !important;
}
body.page-top .mel-price__ibj-body { flex: 1; }
body.page-top .mel-price__ibj-point-ttl {
    color: #EB2A2A !important;
    font-size: 17px !important;
    font-weight: 700 !important;
    margin: 0 0 6px !important;
    letter-spacing: 0.03em !important;
}
body.page-top .mel-price__ibj-point-txt {
    color: #666 !important;
    font-size: 14px !important;
    line-height: 1.9 !important;
    margin: 0 !important;
}

/* Price ヘッダーを赤ラベルに */
body.page-top .mel-price .mel-price__lead {
    color: #EB2A2A !important;
    font-family: 'Futura', 'Futura PT', 'Century Gothic', sans-serif !important;
    letter-spacing: 0.28em !important;
}

@media (max-width: 768px) {
    body.page-top .mel-price__split {
        padding: 0 20px !important;
        gap: 40px !important;
    }
    body.page-top .mel-price__plan-num { font-size: 54px !important; }
    body.page-top .mel-price__plan-unit { font-size: 18px !important; }
    body.page-top .mel-price__plan-row { padding: 16px 24px !important; }
    body.page-top .mel-price__plan-value { font-size: 20px !important; }
    body.page-top .mel-price__ibj { padding: 20px 0 0 !important; }
    body.page-top .mel-price__ibj-ttl { font-size: 22px !important; }
    body.page-top .mel-price__ibj-point-ttl { font-size: 15px !important; }
}

/* ================================================
   ウェルスマ風料金表：白＋ゴールド細枠＋装飾線＋タグ＋グレー統計
   ================================================ */
body.page-top .mel-price__plan-card {
    position: relative;
    background: #fff !important;
    border: 1.5px solid var(--mel-gold-line) !important;
    border-radius: 24px !important;
    box-shadow: 0 34px 90px rgba(0, 0, 0, 0.18) !important;
    padding: 44px 56px 40px !important;
    overflow: visible;
}
/* 月会費行を目立たせる */
body.page-top .mel-price__plan-fee-row--main {
    padding-top: 30px !important;
    padding-bottom: 30px !important;
    background: transparent !important;
    border-radius: 0;
    margin: 4px 0 8px;
}
body.page-top .mel-price__plan-fee-label--main {
    background: #EB2A2A !important;
    color: #fff !important;
    font-size: 15px !important;
    padding: 10px 24px !important;
    min-width: 100px;
}
body.page-top .mel-price__plan-fee-num--main {
    font-size: 60px !important;
    color: #EB2A2A !important;
}
body.page-top .mel-price__plan-fee-yen--main {
    color: #EB2A2A !important;
    font-size: 22px !important;
}
/* 「一番人気」ピル */
body.page-top .mel-price__plan-flag {
    position: absolute;
    top: 22px;
    left: 26px;
    display: inline-block;
    background: var(--mel-gold);
    color: #fff;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.12em;
    padding: 6px 18px;
    border-radius: 999px;
    z-index: 2;
    line-height: 1.4;
}
/* 上中央の縦装飾線 */
body.page-top .mel-price__plan-decor {
    position: absolute;
    top: -1px;
    left: 50%;
    transform: translateX(-50%);
    width: 1.5px;
    height: 26px;
    background: var(--mel-gold);
    z-index: 1;
}

/* head：プラン名＋説明 */
body.page-top .mel-price__plan-head {
    text-align: center;
    padding: 0 !important;
    background: transparent;
    border-bottom: none;
    margin-bottom: 20px;
}
body.page-top .mel-price__plan-name {
    color: #1a1a1a !important;
    font-family: 'Zen Kaku Gothic New', sans-serif !important;
    font-size: 34px !important;
    font-weight: 900 !important;
    letter-spacing: 0.14em !important;
    margin: 0 0 14px !important;
    line-height: 1.2;
}
body.page-top .mel-price__plan-desc {
    color: #666;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 14px;
    line-height: 1.7;
    letter-spacing: 0.04em;
    margin: 0 !important;
}

/* 料金3行 */
body.page-top .mel-price__plan-fees {
    display: flex;
    flex-direction: column;
    padding: 20px 0;
    margin: 12px 0 26px;
}
body.page-top .mel-price__plan-fee-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 22px 8px;
    border-bottom: 1px solid var(--mel-gold-line);
}
body.page-top .mel-price__plan-fee-row:last-child {
    border-bottom: none;
}
body.page-top .mel-price__plan-fee-label {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #FBF4E1;
    color: #6E5723;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.06em;
    padding: 7px 18px;
    border-radius: 999px;
    line-height: 1.2;
    min-width: 90px;
}
body.page-top .mel-price__plan-fee-value {
    display: inline-flex;
    align-items: baseline;
    gap: 2px;
}
body.page-top .mel-price__plan-fee-num {
    color: #1a1a1a;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 40px;
    font-weight: 900;
    letter-spacing: 0.01em;
    line-height: 1;
}
body.page-top .mel-price__plan-fee-yen {
    color: #1a1a1a;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 18px;
    font-weight: 900;
    margin-left: 2px;
    line-height: 1;
}
body.page-top .mel-price__plan-fee-tax {
    color: #999;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0.04em;
    margin-left: 6px;
    align-self: flex-end;
    line-height: 1;
    padding-bottom: 4px;
}

/* タグ群 */
body.page-top .mel-price__plan-tags {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
    margin: 6px auto 30px;
}
body.page-top .mel-price__plan-tag {
    display: inline-block;
    padding: 8px 20px;
    border: 1.5px solid var(--mel-gold);
    border-radius: 999px;
    color: var(--mel-gold-dark);
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.05em;
    line-height: 1.3;
    background: #fff;
}

/* 下部グレー統計 */
body.page-top .mel-price__plan-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    background: #F5F3EE;
    padding: 26px 24px;
    border-radius: 14px;
    margin-top: 4px;
}
body.page-top .mel-price__plan-stat {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    text-align: center;
}
body.page-top .mel-price__plan-stat-label {
    display: inline-block;
    background: #E6E1D5;
    color: #6E5723;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 12px;
    font-weight: 700;
    padding: 4px 14px;
    border-radius: 999px;
    letter-spacing: 0.06em;
    line-height: 1.3;
}
body.page-top .mel-price__plan-stat-value {
    color: #1a1a1a;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 24px;
    font-weight: 900;
    letter-spacing: 0.02em;
    line-height: 1;
}
body.page-top .mel-price__plan-stat-value small {
    color: #666;
    font-size: 12px;
    font-weight: 700;
    margin-left: 2px;
}

@media (max-width: 768px) {
    body.page-top .mel-price__plan-card {
        padding: 50px 24px 30px !important;
    }
    body.page-top .mel-price__plan-flag { top: 16px; left: 16px; font-size: 11px; padding: 5px 14px; }
    body.page-top .mel-price__plan-name { font-size: 24px !important; }
    body.page-top .mel-price__plan-desc { font-size: 12.5px; }
    body.page-top .mel-price__plan-fee-row { padding: 16px 0; gap: 10px; }
    body.page-top .mel-price__plan-fee-label { font-size: 12px; padding: 5px 12px; min-width: 76px; }
    body.page-top .mel-price__plan-fee-num { font-size: 30px; }
    body.page-top .mel-price__plan-fee-yen { font-size: 15px; }
    body.page-top .mel-price__plan-fee-tax { font-size: 10px; }
    body.page-top .mel-price__plan-tag { font-size: 11.5px; padding: 6px 14px; }
    body.page-top .mel-price__plan-stats { padding: 18px 12px; gap: 6px; }
    body.page-top .mel-price__plan-stat-label { font-size: 10.5px; padding: 3px 10px; }
    body.page-top .mel-price__plan-stat-value { font-size: 18px; }
    body.page-top .mel-price__plan-stat-value small { font-size: 10px; }
}

/* ================================================
   Price内Comparison：見出しmel-conceptスタイル・summary脱カード
   ================================================ */
/* Price内に置かれた元compare要素は背景透明でPriceのシルクが透ける */
body.page-top .mel-compare {
    background: transparent !important;
    padding: 0 !important;
}
body.page-top .mel-compare::before,
body.page-top .mel-compare::after {
    display: none !important;
    content: none !important;
}

/* Comparison見出し（mel-concept準拠） */
body.page-top .mel-price__compare-head {
    max-width: 900px;
    margin: 100px 0 20px;
    padding: 0;
    box-sizing: border-box;
}

/* ================================================
   比較表 画像1枚版
   ================================================ */
body.page-top .mel-compare__table {
    display: block !important;
    max-width: 960px !important;
    margin: 0 auto !important;
    padding: 0 0 20px !important;
    background: transparent !important;
    box-shadow: none !important;
    border-radius: 0 !important;
}
body.page-top .mel-compare__img {
    display: block;
    width: 100%;
    height: auto;
    max-width: 960px;
    margin: 0 auto;
}

/* 左端ラベル列 */
body.page-top .mel-compare__labels {
    background: #FEECEF;
    padding: 96px 0 20px;
    display: flex;
    flex-direction: column;
    border-radius: 12px 0 0 12px;
}
body.page-top .mel-compare__label-cell {
    padding: 24px 16px;
    text-align: center;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 13.5px;
    font-weight: 700;
    color: #444;
    line-height: 1.5;
    letter-spacing: 0.04em;
    border-bottom: 1px solid rgba(235, 42, 42, 0.16);
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 68px;
    box-sizing: border-box;
}
body.page-top .mel-compare__label-cell:last-child { border-bottom: none; }
body.page-top .mel-compare__label-cell--fee {
    flex-direction: row;
    align-items: stretch;
    padding: 0;
    min-height: auto;
}
body.page-top .mel-compare__fee-group {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 8px;
    font-size: 13.5px;
    font-weight: 700;
    color: #444;
    border-right: 1px solid rgba(235, 42, 42, 0.16);
    flex-shrink: 0;
}
body.page-top .mel-compare__fee-subs {
    flex: 1;
    display: flex;
    flex-direction: column;
}
body.page-top .mel-compare__fee-sub {
    padding: 20px 8px;
    font-size: 13.5px;
    font-weight: 700;
    color: #444;
    text-align: center;
    border-bottom: 1px solid rgba(235, 42, 42, 0.16);
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 68px;
    box-sizing: border-box;
}
body.page-top .mel-compare__fee-sub:last-child { border-bottom: none; }

/* 比較列共通 */
body.page-top .mel-compare__col {
    background: transparent !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    padding: 0 !important;
    display: flex;
    flex-direction: column;
    position: relative;
}
body.page-top .mel-compare__col .mel-compare__cell {
    padding: 20px 12px;
    text-align: center;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 15px;
    font-weight: 700;
    color: #666;
    border-bottom: 1px solid rgba(235, 42, 42, 0.16);
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 68px;
    box-sizing: border-box;
    line-height: 1.5;
}
body.page-top .mel-compare__col .mel-compare__cell:last-child { border-bottom: none; }

/* 列ヘッダー：吹き出し */
body.page-top .mel-compare__col-head {
    position: relative;
    margin: 0 12px 24px;
    padding: 18px 12px;
    border-radius: 999px;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 17px;
    font-weight: 900;
    text-align: center;
    letter-spacing: 0.06em;
    height: 60px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
}
body.page-top .mel-compare__col-head::after {
    content: "";
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    width: 0;
    height: 0;
    border-left: 10px solid transparent;
    border-right: 10px solid transparent;
}
body.page-top .mel-compare__col-head--side {
    background: #EEECE9;
    color: #333;
}
body.page-top .mel-compare__col-head--side::after {
    border-top: 12px solid #EEECE9;
}
body.page-top .mel-compare__col-head--main {
    background: #EB2A2A;
    color: #fff;
    font-size: 19px;
    letter-spacing: 0.08em;
    box-shadow: 0 12px 30px rgba(235, 42, 42, 0.25);
}
body.page-top .mel-compare__col-head--main::after {
    border-top: 12px solid #EB2A2A;
}
body.page-top .mel-compare__sparkle {
    font-size: 15px;
    margin: 0 6px;
}

/* メルティア列：赤ボーダーで囲む */
body.page-top .mel-compare__col--main {
    background: #fff !important;
    border: 3px solid #EB2A2A !important;
    border-radius: 14px !important;
    box-shadow: 0 22px 50px rgba(235, 42, 42, 0.14) !important;
    padding: 24px 0 32px !important;
    margin: 0 -6px;
    position: relative;
    z-index: 2;
}
body.page-top .mel-compare__col--main .mel-compare__col-head {
    margin-top: -50px;
    margin-bottom: 30px;
}
body.page-top .mel-compare__col--main .mel-compare__cell {
    color: #EB2A2A;
    font-weight: 900;
    font-size: 17px;
    border-bottom-color: rgba(235, 42, 42, 0.22);
}
body.page-top .mel-compare__amount {
    font-family: 'Futura', 'Futura PT', sans-serif;
    font-size: 22px;
    font-weight: 900;
    color: #EB2A2A;
    letter-spacing: 0.02em;
}
body.page-top .mel-compare__amount-tax {
    font-size: 12px;
    color: #EB2A2A;
    font-weight: 700;
    margin-left: 2px;
}

/* Sparkle top decoration on main column */
body.page-top .mel-compare__col--main::before {
    content: "";
    position: absolute;
    top: -18px;
    left: 50%;
    transform: translateX(-50%) rotate(-14deg);
    width: 22px;
    height: 30px;
    background: linear-gradient(180deg, #EB2A2A 0%, #EB2A2A 100%);
    clip-path: polygon(50% 0, 55% 40%, 100% 50%, 55% 60%, 50% 100%, 45% 60%, 0 50%, 45% 40%);
    opacity: 0;
}
body.page-top .mel-compare__col--main::after {
    content: "";
    position: absolute;
    top: -6px;
    left: 52%;
    width: 3px;
    height: 22px;
    background: #EB2A2A;
    border-radius: 999px;
    transform: rotate(18deg);
}

@media (max-width: 768px) {
    body.page-top .mel-compare__table {
        grid-template-columns: 96px 1fr 1.15fr 1fr !important;
        padding: 40px 0 20px !important;
    }
    body.page-top .mel-compare__label-cell,
    body.page-top .mel-compare__fee-sub { font-size: 11.5px; padding: 14px 6px; min-height: 60px; }
    body.page-top .mel-compare__labels { padding: 76px 0 12px; }
    body.page-top .mel-compare__col .mel-compare__cell { font-size: 12px; padding: 14px 6px; min-height: 60px; }
    body.page-top .mel-compare__col-head { font-size: 13px; padding: 12px 6px; height: 46px; margin: 0 4px 20px; }
    body.page-top .mel-compare__col-head--main { font-size: 14px; }
    body.page-top .mel-compare__col--main .mel-compare__cell { font-size: 13px; }
    body.page-top .mel-compare__amount { font-size: 16px; }
    body.page-top .mel-compare__amount-tax { font-size: 10px; }
    body.page-top .mel-compare__col--main .mel-compare__col-head { margin-top: -38px; margin-bottom: 22px; }
}
body.page-top .mel-price__compare-label-group {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 26px;
}
body.page-top .mel-price__compare-label-en {
    font-family: 'Futura', 'Futura PT', 'Century Gothic', 'Helvetica Neue', sans-serif;
    font-size: 22px;
    font-weight: 900;
    letter-spacing: 0.18em;
    color: #EB2A2A;
    line-height: 1;
}
body.page-top .mel-price__compare-label-line {
    display: inline-block;
    width: 44px;
    height: 1px;
    background: #EB2A2A;
    flex-shrink: 0;
}
body.page-top .mel-price__compare-ttl {
    all: unset;
    display: block;
    font-family: 'Zen Kaku Gothic New', 'Zen Maru Gothic', sans-serif;
    color: #1a1a1a;
    margin: 0;
}
body.page-top .mel-price__compare-ttl-main {
    display: block;
    font-size: 44px;
    font-weight: 700;
    letter-spacing: 0.09em;
    line-height: 1.35;
    color: #1a1a1a;
}
body.page-top .mel-price__compare-lead {
    margin: 22px 0 0 !important;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 16px;
    font-weight: 500;
    letter-spacing: 0.06em;
    line-height: 1.9 !important;
    color: #555;
}

/* Summary：カード・黄色ライン削除、シンプルに */
body.page-top .mel-compare__summary {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 10px 20px 0 !important;
    margin: 8px auto 0 !important;
    max-width: 900px;
    text-align: center;
}
body.page-top .mel-compare__summary-formula { margin-bottom: 8px !important; }
body.page-top .mel-compare__summary-part { font-size: 18px !important; }
body.page-top .mel-compare__summary-x { font-size: 22px !important; }
body.page-top .mel-compare__summary-txt { font-size: 14px !important; }
body.page-top .mel-compare__summary::before,
body.page-top .mel-compare__summary::after {
    display: none !important;
    content: none !important;
}
body.page-top .mel-compare__summary-formula {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
}

@media (max-width: 768px) {
    body.page-top .mel-price__compare-head {
        margin: 60px auto 14px;
        padding: 0 20px;
    }
    body.page-top .mel-price__compare-label-en { font-size: 18px; }
    body.page-top .mel-price__compare-label-line { width: 32px; }
    body.page-top .mel-price__compare-ttl-main {
        font-size: 28px;
        line-height: 1.45;
    }
    body.page-top .mel-price__compare-lead {
        font-size: 14.5px !important;
        line-height: 1.85 !important;
    }
    body.page-top .mel-compare__table {
        padding: 0 !important;
    }
    body.page-top .mel-compare__summary {
        padding: 20px 20px 0 !important;
        margin: 8px auto 0 !important;
    }
}

/* ================================================
   IBJバッジ画像 明示サイズ（footer反映確実に）
   ================================================ */
.mel-footer__cms-badge img {
    width: 170px !important;
    height: 60px !important;
    max-width: 170px;
    display: block;
    object-fit: contain;
}

/* footer内バナー画像レイアウト（縦並び） */
.mel-footer__cta-group .mel-banner-pair {
    margin: 20px 0 0;
    max-width: 320px;
    padding: 0;
    gap: 12px;
    grid-template-columns: 1fr;
}
.mel-footer__cta-group .mel-banner-link {
    max-width: none;
    margin: 0;
    line-height: 0;
}
.mel-footer__cta-group .mel-banner-link img {
    width: 100%;
    height: auto;
    aspect-ratio: auto;
    object-fit: contain;
    box-shadow: none;
    border-radius: 4px;
    display: block;
}

/* ================================================
   Contact セクション（添付デザイン踏襲）
   ================================================ */
body.page-top .mel-contact {
    position: relative;
    background: #fff;
    padding: 100px 40px 90px;
    overflow: hidden;
}
body.page-top .mel-contact::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 220px;
    width: 38%;
    background: #F2E7CE;
    z-index: 0;
}
body.page-top .mel-contact__decor { display: none !important; }
body.page-top .mel-contact__inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    max-width: 1200px;
    margin: 0 auto;
    position: relative;
    z-index: 1;
    align-items: center;
}
body.page-top .mel-contact__left {
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}
body.page-top .mel-contact__pic--main {
    width: 90%;
    max-width: 480px;
    aspect-ratio: 5/4;
    overflow: hidden;
    border-radius: 4px;
}
body.page-top .mel-contact__pic--main img {
    width: 100%; height: 100%; object-fit: cover; display: block;
}
body.page-top .mel-contact__right {
    position: relative;
    padding: 30px 30px 20px 20px;
}
body.page-top .mel-contact__pic--sub {
    position: absolute;
    right: -20px;
    top: -100px;
    width: 220px;
    height: 150px;
    overflow: hidden;
    border-radius: 6px;
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.08);
}
body.page-top .mel-contact__pic--sub img {
    width: 100%; height: 100%; object-fit: cover; display: block;
}
body.page-top .mel-contact__label-group {
    display: flex; align-items: center; gap: 14px;
    margin-bottom: 24px;
}
body.page-top .mel-contact__label {
    font-family: 'Futura', 'Futura PT', sans-serif;
    color: #EB2A2A;
    font-size: 15px; font-weight: 700;
    letter-spacing: 0.22em;
    text-transform: uppercase;
}
body.page-top .mel-contact__line {
    display: inline-block; width: 40px; height: 1px; background: #EB2A2A;
}
body.page-top .mel-contact__ttl {
    all: unset; display: block;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    color: #1a1a1a;
    font-size: 30px;
    font-weight: 700;
    line-height: 1.55;
    letter-spacing: 0.06em;
    margin-bottom: 20px;
}
body.page-top .mel-contact__sub {
    font-family: 'Zen Maru Gothic', 'Zen Kaku Gothic New', sans-serif;
    color: rgba(0, 0, 0, 0.38);
    font-size: 14px;
    line-height: 1.7;
    letter-spacing: 0.14em;
    margin: 0 0 32px !important;
    font-style: normal;
    font-weight: 500;
}
body.page-top .mel-contact__btns {
    display: flex; flex-direction: column; gap: 20px;
    max-width: 400px;
    align-items: stretch;
}
body.page-top .mel-contact__btns .cta-base-btn {
    align-self: stretch;
    width: 100%;
    height: 68px;
    font-size: 20px;
}
body.page-top .mel-contact__btns .cta-base-btn .badge-circle { display: none !important; }
body.page-top .mel-contact__docs {
    max-width: 400px;
    width: 100%;
    margin: 0;
}
body.page-top .mel-contact__docs img {
    box-shadow: none;
    border-radius: 0;
}
body.page-top .mel-contact__btn {
    display: flex; align-items: center;
    gap: 18px;
    padding: 16px 24px;
    border-radius: 8px;
    text-decoration: none;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-weight: 700;
    transition: opacity 0.2s ease, transform 0.2s ease;
}
body.page-top .mel-contact__btn:hover { opacity: 0.92; transform: translateY(-1px); }
body.page-top .mel-contact__btn--primary {
    background: #E93E7D;
    color: #fff;
}
body.page-top .mel-contact__btn-badge {
    display: inline-flex; align-items: center; justify-content: center;
    width: 42px; height: 42px;
    background: #fff; color: #E93E7D;
    border-radius: 50%;
    font-size: 13px; font-weight: 700;
    flex-shrink: 0;
}
body.page-top .mel-contact__btn-txt {
    flex: 1;
    font-size: 17px;
    letter-spacing: 0.06em;
}
body.page-top .mel-contact__btn-arrow {
    font-size: 18px;
    letter-spacing: 0;
}
body.page-top .mel-contact__btn--line {
    background: #fff;
    color: #06C755;
    border: 2px solid #06C755;
}
body.page-top .mel-contact__btn-icon {
    display: inline-flex;
    width: 42px; height: 42px;
    background: #06C755;
    border-radius: 8px;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
body.page-top .mel-contact__btn-icon svg {
    width: 26px; height: 26px;
}

@media (max-width: 768px) {
    body.page-top .mel-contact {
        padding: 60px 20px;
    }
    body.page-top .mel-contact::before {
        width: 78%;
        bottom: 580px;
        opacity: 1;
        background: #F8F1DE;
    }
    body.page-top .mel-contact__decor {
        font-size: 100px;
        right: -30px;
    }
    body.page-top .mel-contact__inner {
        grid-template-columns: 1fr;
        gap: 24px;
    }
    body.page-top .mel-contact__pic--main {
        width: 66%;
        max-width: 280px;
        margin: 0 auto;
        border-radius: 0;
    }
    body.page-top .mel-contact__pic--sub {
        position: relative;
        right: auto; top: auto;
        width: 32%;
        height: auto;
        aspect-ratio: 1 / 1;
        margin-left: auto;
        margin-bottom: 20px;
        border-radius: 0;
    }
    body.page-top .mel-contact__right { padding: 20px 0 0; }
    body.page-top .mel-contact__label-group { margin-top: 10px; }
    body.page-top .mel-contact__ttl { font-size: 22px; }
    body.page-top .mel-contact__sub { font-size: 12px; margin-bottom: 24px !important; }
    body.page-top .mel-contact__btn-txt { font-size: 15px; }
}


/* ================================================
   赤い糸モチーフ（各セクション装飾）
   ================================================ */
.mel-thread {
    position: absolute;
    pointer-events: none;
    user-select: none;
    z-index: 1;
    opacity: 0.7;
    display: block;
}

/* ABOUT 右側：右端ピッタリ、内側に入って全体が見える大きさ */
body.page-top .mel-concept { position: relative; }
body.page-top .mel-thread--concept {
    right: 0;
    top: 60px;
    width: 280px;
    height: auto;
    transform: rotate(10deg);
    opacity: 0.6;
    z-index: 0;
}

/* Contact 左：ゴールド四角に沿って糸が結ぶ */
body.page-top .mel-thread--contact {
    left: -10px;
    top: 40px;
    width: 260px;
    height: auto;
    transform: rotate(4deg);
    opacity: 0.6;
    z-index: 1;
}

@media (max-width: 768px) {
    body.page-top .mel-thread--concept { width: 150px; right: 0; top: 30px; }
    body.page-top .mel-thread--contact { width: 150px; left: -5px; top: 20px; z-index: 5; opacity: 0.9; }
}


/* =========================================================

/* =========================================================
   選ばれる理由ページ（reason.html）追加分
   - TOP CSS流用（scriptで body.page-top を追加）
   - ここでは新規要素のみ body.page-reason スコープで定義
   ========================================================= */

/* ---------- ①全幅ヒーロー写真 ---------- */
body.page-reason .mel-rsn-fv {
    position: relative;
    padding-bottom: 120px;
    background: #fff;
}
body.page-reason .mel-rsn-fv__img-wrap {
    width: 100%;
    height: 62vh;
    min-height: 460px;
    max-height: 620px;
    overflow: hidden;
    position: relative;
}
body.page-reason .mel-rsn-fv__img-wrap::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(255,255,255,0) 60%, rgba(255,255,255,0.35) 100%);
    pointer-events: none;
}
body.page-reason .mel-rsn-fv__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 40%;
    display: block;
}

/* ---------- ②カード（写真から下にオーバーラップ） ---------- */
body.page-reason .mel-rsn-card {
    max-width: 1200px;
    margin: -120px auto 0;
    position: relative;
    z-index: 2;
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 30px 80px rgba(0, 0, 0, 0.08);
    padding: 72px 60px 60px;
    font-family: 'Zen Maru Gothic', 'Noto Sans JP', sans-serif;
}

/* カード内：下層専用ヘッダ（REASON to choose / 気軽に... / メルティアの選ばれる理由） — TOP mel-reason準拠 */
body.page-reason .mel-rsn-card__head {
    text-align: center;
    margin-bottom: 56px;
    padding-bottom: 44px;
    border-bottom: 1px solid #F5E8E8;
}
body.page-reason .mel-rsn-card__eyebrow-en {
    font-family: 'Futura', 'Futura PT', 'Century Gothic', 'Helvetica Neue', sans-serif;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 0.24em;
    color: #EB2A2A;
    text-transform: uppercase;
    margin: 0 0 12px;
}
body.page-reason .mel-rsn-card__eyebrow-jp {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 0.1em;
    color: #EB2A2A;
    margin: 0 0 24px;
}
body.page-reason .mel-rsn-card__page-ttl {
    font-family: 'Zen Kaku Gothic New', 'Zen Maru Gothic', sans-serif;
    font-size: 44px;
    font-weight: 700;
    color: #1a1a1a;
    line-height: 1.35;
    letter-spacing: 0.09em;
    margin: 0;
}

/* カード内の mel-match は上書きで整える（既存のmel-match__inner の margin/paddingを吸収） */
body.page-reason .mel-rsn-card__match .mel-match__inner {
    padding: 0 !important;
    max-width: none !important;
}

/* ---------- ③3特徴 左右交互（mel-rsn-alt）— TOP mel-reason準拠 ---------- */
body.page-reason .mel-rsn-alt {
    padding: 130px 20px 130px;
    background: #fff;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    color: #1a1a1a;
}
body.page-reason .mel-rsn-alt__inner {
    max-width: 1140px;
    margin: 0 auto;
}
body.page-reason .mel-rsn-alt__head {
    text-align: left;
    margin-bottom: 90px;
}
body.page-reason .mel-rsn-alt__eyebrow-en {
    font-family: 'Futura', 'Futura PT', 'Century Gothic', 'Helvetica Neue', sans-serif;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 0.24em;
    color: #EB2A2A;
    text-transform: uppercase;
    margin: 0 0 12px;
}
body.page-reason .mel-rsn-alt__ttl {
    font-family: 'Zen Kaku Gothic New', 'Zen Maru Gothic', sans-serif;
    font-size: 44px;
    font-weight: 700;
    color: #1a1a1a;
    line-height: 1.35;
    letter-spacing: 0.09em;
    margin: 0 0 24px;
}
body.page-reason .mel-rsn-alt__lead {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 15px;
    font-weight: 700;
    color: #EB2A2A;
    line-height: 1.8;
    letter-spacing: 0.1em;
    margin: 0;
}

body.page-reason .mel-rsn-alt__item {
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: center;
    gap: 60px;
    margin-bottom: 110px;
    position: relative;
}
body.page-reason .mel-rsn-alt__item:last-child { margin-bottom: 0; }

/* 右に写真・左に文章 */
body.page-reason .mel-rsn-alt__item--right .mel-rsn-alt__text { grid-column: 1; grid-row: 1; }
body.page-reason .mel-rsn-alt__item--right .mel-rsn-alt__pic { grid-column: 2; grid-row: 1; }
/* 左に写真・右に文章 */
body.page-reason .mel-rsn-alt__item--left .mel-rsn-alt__text { grid-column: 2; grid-row: 1; }
body.page-reason .mel-rsn-alt__item--left .mel-rsn-alt__pic { grid-column: 1; grid-row: 1; }

body.page-reason .mel-rsn-alt__num-wrap {
    margin-bottom: 18px;
}
body.page-reason .mel-rsn-alt__num {
    width: 88px;
    height: auto;
    display: block;
}
body.page-reason .mel-rsn-alt__item-ttl {
    display: flex;
    align-items: center;
    gap: 12px;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 26px;
    font-weight: 900;
    color: #EB2A2A;
    line-height: 1.4;
    letter-spacing: 0.04em;
    margin: 0 0 18px;
    padding-bottom: 16px;
    border-bottom: 1px dashed rgba(235, 42, 42, 0.35);
}
body.page-reason .mel-rsn-alt__item-mark {
    width: 24px;
    height: 24px;
    flex-shrink: 0;
    object-fit: contain;
}
body.page-reason .mel-rsn-alt__item-lead {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 16px;
    font-weight: 700;
    color: #1a1a1a;
    line-height: 1.6;
    letter-spacing: 0.03em;
    margin: 0 0 18px;
}
body.page-reason .mel-rsn-alt__tags {
    list-style: none;
    padding: 0;
    margin: 0 0 22px;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
body.page-reason .mel-rsn-alt__tags li {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 14px;
    background: #EB2A2A;
    border: none;
    border-radius: 0;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 13px;
    font-weight: 700;
    color: #fff;
    letter-spacing: 0.03em;
    line-height: 1.2;
}
body.page-reason .mel-rsn-alt__tag-check {
    font-weight: 900;
    font-size: 14px;
    color: #fff;
}
body.page-reason .mel-rsn-alt__item-txt {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 14.5px;
    font-weight: 400;
    color: #555;
    line-height: 1.9;
    letter-spacing: 0.02em;
    margin: 0;
}

/* 写真：奥に薄ピンクの四角をズラして配置（3枚とも） */
body.page-reason .mel-rsn-alt__pic {
    position: relative;
}
body.page-reason .mel-rsn-alt__pic::before {
    content: "";
    position: absolute;
    inset: 30px;
    background: #FFEBEE;
    z-index: 0;
    transition: transform 0.4s ease;
}
/* 右に写真：ピンク四角は右下方向にズラす */
body.page-reason .mel-rsn-alt__item--right .mel-rsn-alt__pic::before {
    transform: translate(44px, 44px);
}
/* 左に写真：ピンク四角は左下方向にズラす */
body.page-reason .mel-rsn-alt__item--left .mel-rsn-alt__pic::before {
    transform: translate(-44px, 44px);
}
body.page-reason .mel-rsn-alt__pic img {
    position: relative;
    z-index: 1;
    width: 100%;
    height: auto;
    display: block;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    border-radius: 0;
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.08);
}

/* ============================================================
   SP (max-width: 768px)
   ============================================================ */
@media (max-width: 768px) {
    body.page-reason .mel-rsn-fv {
        padding-bottom: 60px;
    }
    body.page-reason .mel-rsn-fv__img-wrap {
        height: 42vh;
        min-height: 300px;
    }
    body.page-reason .mel-rsn-card {
        margin: -200px 16px 0;
        padding: 40px 24px 34px;
        border-radius: 6px;
    }
    body.page-reason .mel-rsn-card__head {
        margin-bottom: 34px;
        padding-bottom: 28px;
    }
    body.page-reason .mel-rsn-card__eyebrow-en { font-size: 11px; }
    body.page-reason .mel-rsn-card__eyebrow-jp { font-size: 13px; }
    body.page-reason .mel-rsn-card__page-ttl { font-size: 22px; }

    body.page-reason .mel-rsn-alt {
        padding: 80px 20px;
    }
    body.page-reason .mel-rsn-alt__head { margin-bottom: 60px; }
    body.page-reason .mel-rsn-alt__ttl { font-size: 22px; }
    body.page-reason .mel-rsn-alt__lead { font-size: 13.5px; }
    body.page-reason .mel-rsn-alt__item {
        grid-template-columns: 1fr;
        gap: 24px;
        margin-bottom: 70px;
    }
    body.page-reason .mel-rsn-alt__item--right .mel-rsn-alt__text,
    body.page-reason .mel-rsn-alt__item--left .mel-rsn-alt__text {
        grid-column: 1;
        grid-row: 2;
    }
    body.page-reason .mel-rsn-alt__item--right .mel-rsn-alt__pic,
    body.page-reason .mel-rsn-alt__item--left .mel-rsn-alt__pic {
        grid-column: 1;
        grid-row: 1;
        max-width: 78%;
        margin: 0 auto;
        width: 100%;
    }
    body.page-reason .mel-rsn-alt__item--right .mel-rsn-alt__pic::before {
        transform: translate(64px, 64px);
    }
    body.page-reason .mel-rsn-alt__item--left .mel-rsn-alt__pic::before {
        transform: translate(-64px, 64px);
    }
    /* POINT02（--left）だけ SPは番号イラスト（mel-point-02.png）を右寄せ（少し内側） */
    body.page-reason .mel-rsn-alt__item--left .mel-rsn-alt__num {
        margin-left: auto;
        margin-right: 40px;
    }
    body.page-reason .mel-rsn-alt__num { width: 56px; }
    body.page-reason .mel-rsn-alt__item-ttl { font-size: 19px; }
    body.page-reason .mel-rsn-alt__item-mark { width: 22px; height: 22px; }
    body.page-reason .mel-rsn-alt__item-lead { font-size: 13.5px; margin-bottom: 18px; }
    body.page-reason .mel-rsn-alt__tags li { font-size: 12px; padding: 5px 12px; }
    body.page-reason .mel-rsn-alt__item-txt { font-size: 13.5px; }
}

/* ---------- ④Comparison白カード（mel-rsn-cmp） ---------- */
body.page-reason .mel-rsn-cmp {
    padding: 30px 20px 130px;
    background: #fff;
}
body.page-reason .mel-rsn-cmp__inner {
    max-width: 1200px;
    margin: 0 auto;
}
body.page-reason .mel-rsn-cmp__card {
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 30px 80px rgba(0, 0, 0, 0.08);
    padding: 80px 80px 70px;
    font-family: 'Zen Kaku Gothic New', sans-serif;
}
/* カード内ヘッダ余白調整 */
body.page-reason .mel-rsn-cmp__card .mel-price__compare-head {
    text-align: center;
    margin: 0 auto 44px !important;
    max-width: 900px;
}
body.page-reason .mel-rsn-cmp__card .mel-price__compare-label-group {
    justify-content: center;
}
body.page-reason .mel-rsn-cmp__card .mel-price__compare-lead {
    text-align: center;
}
/* 比較画像 */
body.page-reason .mel-rsn-cmp__card .mel-compare__table {
    margin: 0 auto 40px;
    max-width: 960px;
    text-align: center;
}
body.page-reason .mel-rsn-cmp__card .mel-compare__img {
    width: 100%;
    height: auto;
    display: block;
}
/* summary 表示調整（TOPの背景/影を除去してカードの中に馴染ませる） */
body.page-reason .mel-rsn-cmp__card .mel-compare__summary {
    background: transparent !important;
    box-shadow: none !important;
    padding: 20px 0 0 !important;
    max-width: none;
}

@media (max-width: 768px) {
    body.page-reason .mel-rsn-cmp {
        padding: 10px 16px 80px;
    }
    body.page-reason .mel-rsn-cmp__card {
        padding: 44px 24px 36px;
        border-radius: 6px;
    }
    body.page-reason .mel-rsn-cmp__card .mel-price__compare-head {
        margin-bottom: 30px;
    }
    body.page-reason .mel-rsn-cmp__card .mel-compare__table {
        margin-bottom: 26px;
    }
}

/* =========================================================
   安心・安全ページ（safety.html）
   scope: body.page-safety
   ========================================================= */

body.page-safety { background: #fff; }
body.page-safety .mel-sfy-fv,
body.page-safety .mel-sfy-serious,
body.page-safety .mel-sfy-docs {
    font-family: 'Zen Kaku Gothic New', 'Zen Maru Gothic', sans-serif;
    color: #1a1a1a;
    line-height: 1.9;
    letter-spacing: 0.03em;
}
body.page-safety .mel-sfy-fv *,
body.page-safety .mel-sfy-serious *,
body.page-safety .mel-sfy-docs * { box-sizing: border-box; }

/* ---------- ①全幅ヒーロー写真＋大きな統合カード ---------- */
body.page-safety .mel-sfy-fv {
    position: relative;
    padding-bottom: 130px;
    background: #fff;
}
body.page-safety .mel-sfy-fv__img-wrap {
    width: 100%;
    height: 62vh;
    min-height: 460px;
    max-height: 620px;
    overflow: hidden;
    position: relative;
}
body.page-safety .mel-sfy-fv__img-wrap::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(255,255,255,0) 55%, rgba(255,255,255,0.4) 100%);
    pointer-events: none;
}
body.page-safety .mel-sfy-fv__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 35%;
    display: block;
}
body.page-safety .mel-sfy-card {
    max-width: 1100px;
    margin: -140px auto 0;
    position: relative;
    z-index: 2;
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 30px 80px rgba(0, 0, 0, 0.08);
    padding: 76px 70px 70px;
    text-align: center;
}
body.page-safety .mel-sfy-card__head {
    margin-bottom: 32px;
    padding-bottom: 30px;
    border-bottom: 1px solid #F5E8E8;
}
body.page-safety .mel-sfy-card__eyebrow-en {
    font-family: 'Futura', 'Futura PT', 'Century Gothic', 'Helvetica Neue', sans-serif;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 0.24em;
    color: #EB2A2A;
    text-transform: uppercase;
    margin: 0 0 12px;
}
body.page-safety .mel-sfy-card__eyebrow-jp {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 0.1em;
    color: #EB2A2A;
    margin: 0 0 24px;
}
body.page-safety .mel-sfy-card__page-ttl {
    font-family: 'Zen Kaku Gothic New', 'Zen Maru Gothic', sans-serif;
    font-size: 40px;
    font-weight: 700;
    color: #1a1a1a;
    line-height: 1.4;
    letter-spacing: 0.09em;
    margin: 0;
}
body.page-safety .mel-sfy-card__sp-br { display: none; }
body.page-safety .mel-sfy-card__lead {
    font-size: 15px;
    color: #555;
    line-height: 2.1;
    margin: 0 0 60px;
    letter-spacing: 0.05em;
    font-weight: 500;
}

/* カード内 メインメッセージ */
body.page-safety .mel-sfy-card__msg {
    margin: 0 0 44px;
}
body.page-safety .mel-sfy-card__msg-ttl {
    font-family: 'Zen Kaku Gothic New', 'Zen Maru Gothic', sans-serif;
    font-size: 30px;
    font-weight: 700;
    color: #1a1a1a;
    line-height: 1.7;
    letter-spacing: 0.08em;
    margin: 0 0 26px;
}
body.page-safety .mel-sfy-card__msg-em {
    color: #EB2A2A;
    padding: 0 0.15em;
}
body.page-safety .mel-sfy-card__msg-deco {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    justify-content: center;
    color: #EB2A2A;
    opacity: 0.75;
}
body.page-safety .mel-sfy-card__msg-deco-line {
    display: inline-block;
    width: 70px;
    height: 1px;
    background: #EB2A2A;
}
body.page-safety .mel-sfy-card__msg-deco-dot {
    font-size: 11px;
    color: #EB2A2A;
}

/* カード内 メリット3つ */
body.page-safety .mel-sfy-card__merits {
    margin-top: 30px;
}
body.page-safety .mel-sfy-card__merits-label {
    display: inline-block;
    background: #EB2A2A;
    color: #fff;
    padding: 10px 30px;
    border-radius: 4px;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 0.1em;
    margin-bottom: 20px;
    position: relative;
}
body.page-safety .mel-sfy-card__merits-label::after {
    content: "";
    position: absolute;
    bottom: -8px;
    left: 50%;
    transform: translateX(-50%);
    width: 0;
    height: 0;
    border-left: 8px solid transparent;
    border-right: 8px solid transparent;
    border-top: 8px solid #EB2A2A;
}
body.page-safety .mel-sfy-card__merits-list {
    list-style: none;
    padding: 0;
    margin: 40px 0 0;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
    justify-items: center;
}
body.page-safety .mel-sfy-card__merits-item {
    width: 100%;
    max-width: 240px;
    aspect-ratio: 1 / 1;
    background: #fff;
    border: 2px solid #EB2A2A;
    border-radius: 20px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 26px 22px;
}
body.page-safety .mel-sfy-card__merits-icon {
    display: block;
    width: 92px;
    height: 92px;
    margin: 0 auto 14px;
}
body.page-safety .mel-sfy-card__merits-icon svg,
body.page-safety .mel-sfy-card__merits-icon img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: contain;
}
body.page-safety .mel-sfy-card__merits-txt {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 14.5px;
    font-weight: 700;
    color: #333;
    line-height: 1.7;
    letter-spacing: 0.04em;
    margin: 0;
    text-align: center;
}

/* ---------- ②真剣に婚活〜（カードなし・素配置） ---------- */
body.page-safety .mel-sfy-serious {
    padding: 130px 20px 130px;
    background: #fff;
}
body.page-safety .mel-sfy-serious__inner {
    max-width: 1100px;
    margin: 0 auto;
}
body.page-safety .mel-sfy-serious__head {
    text-align: center;
    margin-bottom: 60px;
}
body.page-safety .mel-sfy-serious__eyebrow {
    font-family: 'Futura', 'Futura PT', 'Century Gothic', 'Helvetica Neue', sans-serif;
    font-size: 13px;
    letter-spacing: 0.36em;
    color: #EB2A2A;
    font-weight: 700;
    margin: 0 0 16px;
}
body.page-safety .mel-sfy-serious__ttl {
    font-family: 'Zen Kaku Gothic New', 'Zen Maru Gothic', sans-serif;
    font-size: 34px;
    font-weight: 700;
    color: #1a1a1a;
    line-height: 1.5;
    letter-spacing: 0.08em;
    margin: 0;
}
body.page-safety .mel-sfy-serious__body {
    display: grid;
    grid-template-columns: 5fr 7fr;
    gap: 60px;
    align-items: center;
    margin-bottom: 70px;
}
body.page-safety .mel-sfy-serious__photo {
    position: relative;
    aspect-ratio: 4 / 3;
    z-index: 1;
}
body.page-safety .mel-sfy-serious__photo::before {
    content: "";
    position: absolute;
    inset: 30px;
    background: #FFEBEE;
    transform: translate(-40px, 40px);
    z-index: 0;
}
body.page-safety .mel-sfy-serious__photo img {
    position: relative;
    z-index: 1;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    border-radius: 6px;
    box-shadow: 0 18px 46px rgba(0, 0, 0, 0.08);
}
body.page-safety .mel-sfy-serious__txt-wrap {
    display: flex;
    flex-direction: column;
    gap: 22px;
}
body.page-safety .mel-sfy-serious__txt {
    font-size: 15px;
    color: #555;
    line-height: 2.1;
    margin: 0;
    letter-spacing: 0.03em;
    font-weight: 400;
}
body.page-safety .mel-sfy-serious__txt strong {
    color: #EB2A2A;
    font-weight: 700;
}
body.page-safety .mel-sfy-serious__stats {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 26px;
}
body.page-safety .mel-sfy-serious__stat {
    background: #fff;
    border-radius: 8px;
    padding: 34px 26px 30px;
    text-align: center;
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    box-shadow: 0 14px 40px rgba(0, 0, 0, 0.07);
}
body.page-safety .mel-sfy-serious__stat-num-img {
    position: absolute;
    top: -22px;
    left: -14px;
    width: 68px;
    height: auto;
    z-index: 2;
    pointer-events: none;
}
body.page-safety .mel-sfy-serious__stat-cap {
    font-size: 14px;
    color: #333;
    font-weight: 700;
    line-height: 1.6;
    margin-top: 12px;
    letter-spacing: 0.04em;
}
body.page-safety .mel-sfy-serious__stat-tags {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 6px;
    margin: 4px 0 6px;
}
body.page-safety .mel-sfy-serious__stat-tag {
    display: inline-block;
    padding: 4px 14px;
    background: #EB2A2A;
    border: none;
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    border-radius: 100px;
    letter-spacing: 0.06em;
}
body.page-safety .mel-sfy-serious__stat-note {
    font-size: 12px;
    color: #888;
    letter-spacing: 0.14em;
    font-weight: 500;
    margin-top: 8px;
    font-family: 'Noto Serif JP', 'Yu Mincho', 'YuMincho', serif;
}
/* 100% 等の数字：明朝体＋金色グラデ */
body.page-safety .mel-sfy-serious__stat-num {
    font-family: 'Noto Serif JP', 'Yu Mincho', 'YuMincho', 'Hiragino Mincho ProN', serif;
    font-size: 56px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: -0.01em;
    background: linear-gradient(135deg, #C99A4A 0%, #F4CE8B 45%, #B7862F 75%, #E5BE72 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
    display: inline-block;
}
body.page-safety .mel-sfy-serious__stat-unit {
    font-family: 'Noto Serif JP', 'Yu Mincho', 'YuMincho', serif;
    font-size: 20px;
    font-weight: 700;
    margin-left: 3px;
    background: linear-gradient(135deg, #C99A4A 0%, #F4CE8B 45%, #B7862F 75%, #E5BE72 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
}

/* ---------- ③入会時に必要な書類・表 ---------- */
body.page-safety .mel-sfy-docs {
    padding: 40px 20px 130px;
    background: #FFF9F7;
}
body.page-safety .mel-sfy-docs__inner {
    max-width: 1080px;
    margin: 0 auto;
}
body.page-safety .mel-sfy-docs__head {
    text-align: center;
    margin-bottom: 50px;
}
body.page-safety .mel-sfy-docs__label-group {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 22px;
}
body.page-safety .mel-sfy-docs__label-en {
    font-family: 'Futura', 'Futura PT', 'Century Gothic', 'Helvetica Neue', sans-serif;
    font-size: 22px;
    font-weight: 900;
    letter-spacing: 0.18em;
    color: #EB2A2A;
}
body.page-safety .mel-sfy-docs__label-line {
    display: inline-block;
    width: 44px;
    height: 1px;
    background: #EB2A2A;
}
body.page-safety .mel-sfy-docs__ttl {
    font-family: 'Zen Kaku Gothic New', 'Zen Maru Gothic', sans-serif;
    font-size: 32px;
    font-weight: 700;
    color: #1a1a1a;
    line-height: 1.5;
    letter-spacing: 0.08em;
    margin: 0 0 22px;
}
body.page-safety .mel-sfy-docs__lead {
    font-size: 14.5px;
    color: #666;
    line-height: 2.05;
    margin: 0;
    font-weight: 500;
}
body.page-safety .mel-sfy-docs__table-wrap {
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 22px 60px rgba(0, 0, 0, 0.06);
    overflow: hidden;
    padding: 20px 40px;
}
body.page-safety .mel-sfy-docs__table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
}
body.page-safety .mel-sfy-docs__th,
body.page-safety .mel-sfy-docs__td {
    vertical-align: top;
    padding: 26px 22px;
    background: transparent !important;
    text-align: left !important;
    border-bottom: 1px solid #F0E5E5;
}
body.page-safety .mel-sfy-docs__table tr:last-child .mel-sfy-docs__th,
body.page-safety .mel-sfy-docs__table tr:last-child .mel-sfy-docs__td {
    border-bottom: none;
}
body.page-safety .mel-sfy-docs__th {
    width: 220px;
    padding-left: 30px;
}
body.page-safety .mel-sfy-docs__th-name {
    display: block;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 18px;
    font-weight: 700;
    color: #1a1a1a;
    letter-spacing: 0.06em;
    margin-bottom: 8px;
}
body.page-safety .mel-sfy-docs__th-badge {
    display: inline-block;
    padding: 3px 12px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.1em;
    border-radius: 3px;
}
body.page-safety .mel-sfy-docs__th-badge--required {
    background: #EB2A2A;
    color: #fff;
}
body.page-safety .mel-sfy-docs__td {
    padding-left: 30px;
}
body.page-safety .mel-sfy-docs__td-main {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 15px;
    color: #333;
    font-weight: 500;
    line-height: 1.75;
    margin: 0 0 6px;
    letter-spacing: 0.04em;
}
body.page-safety .mel-sfy-docs__td-note {
    font-size: 12.5px;
    color: #888;
    line-height: 1.85;
    margin: 0;
    font-weight: 400;
}

/* ---------- js-fade-in ---------- */
body.page-safety .js-fade-in {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 1s ease, transform 1s ease;
}
body.page-safety .js-fade-in.is-visible {
    opacity: 1;
    transform: translateY(0);
}

/* ============================================================
   SP (max-width: 768px)
   ============================================================ */
@media (max-width: 768px) {
    body.page-safety .mel-sfy-fv { padding-bottom: 70px; }
    body.page-safety .mel-sfy-fv__img-wrap { height: 42vh; min-height: 300px; }
    body.page-safety .mel-sfy-card {
        margin: -200px 16px 0;
        padding: 40px 24px 34px;
        border-radius: 6px;
    }
    body.page-safety .mel-sfy-card__head { margin-bottom: 24px; padding-bottom: 20px; }
    body.page-safety .mel-sfy-card__eyebrow-en { font-size: 11px; }
    body.page-safety .mel-sfy-card__eyebrow-jp { font-size: 13px; }
    body.page-safety .mel-sfy-card__page-ttl { font-size: 22px; }
    body.page-safety .mel-sfy-card__sp-br { display: inline; }
    body.page-safety .mel-sfy-card__lead { font-size: 13.5px; margin-bottom: 40px; }
    body.page-safety .mel-sfy-card__msg { margin: 0 0 30px; }
    body.page-safety .mel-sfy-card__msg-ttl { font-size: 19px; margin-bottom: 22px; }
    body.page-safety .mel-sfy-card__msg-deco-line { width: 36px; }
    body.page-safety .mel-sfy-card__merits { margin-top: 24px; }
    body.page-safety .mel-sfy-card__merits-list {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 8px;
        margin: 28px auto 0;
        max-width: 340px;
        justify-content: center;
        justify-items: center;
    }
    body.page-safety .mel-sfy-card__merits-item {
        max-width: 100px;
        padding: 10px 4px;
        justify-self: center;
        border-radius: 12px;
        aspect-ratio: auto;
        min-height: 135px;
        align-self: stretch;
    }
    body.page-safety .mel-sfy-card__merits-icon {
        width: 58px;
        height: 58px;
        margin-bottom: 6px;
    }
    body.page-safety .mel-sfy-card__merits-txt {
        font-size: 10.5px;
        line-height: 1.5;
        letter-spacing: 0.01em;
    }

    body.page-safety .mel-sfy-serious { padding: 80px 20px 90px; }
    body.page-safety .mel-sfy-serious__head { margin-bottom: 40px; }
    body.page-safety .mel-sfy-serious__ttl { font-size: 21px; line-height: 1.55; }
    body.page-safety .mel-sfy-serious__body {
        grid-template-columns: 1fr;
        gap: 30px;
        margin-bottom: 44px;
    }
    body.page-safety .mel-sfy-serious__photo::before {
        transform: translate(-24px, 24px);
        inset: 20px;
    }
    body.page-safety .mel-sfy-serious__txt { font-size: 13.5px; line-height: 1.95; }
    body.page-safety .mel-sfy-serious__stats {
        grid-template-columns: 1fr;
        gap: 16px;
        max-width: 280px;
        margin: 0 auto;
    }
    /* SP時は PC用 <br> を無効化して自動折り返し＋段落分けで自然に */
    body.page-safety .mel-sfy-serious__pc-br { display: none; }
    body.page-safety .mel-sfy-serious__txt-wrap { gap: 16px; }
    body.page-safety .mel-sfy-serious__stat { padding: 30px 22px 26px; }
    body.page-safety .mel-sfy-serious__stat-num { font-size: 44px; }
    body.page-safety .mel-sfy-serious__stat-unit { font-size: 16px; }

    body.page-safety .mel-sfy-docs { padding: 20px 16px 80px; }
    body.page-safety .mel-sfy-docs__head { margin-bottom: 34px; }
    body.page-safety .mel-sfy-docs__label-en { font-size: 18px; }
    body.page-safety .mel-sfy-docs__ttl { font-size: 22px; }
    body.page-safety .mel-sfy-docs__lead { font-size: 13px; }
    body.page-safety .mel-sfy-docs__table-wrap { padding: 8px 18px; }
    body.page-safety .mel-sfy-docs__th,
    body.page-safety .mel-sfy-docs__td {
        display: block;
        width: 100%;
        padding: 8px 0;
    }
    body.page-safety .mel-sfy-docs__th { padding-top: 20px; }
    body.page-safety .mel-sfy-docs__td { padding-bottom: 20px; padding-left: 0; }
    body.page-safety .mel-sfy-docs__th-name { font-size: 16px; display: inline-block; margin-right: 8px; margin-bottom: 0; }
    body.page-safety .mel-sfy-docs__td-main { font-size: 14px; }
    body.page-safety .mel-sfy-docs__td-note { font-size: 11.5px; }
}

/* =========================================================
   下層ページ「会員データ」member.html 専用スタイル
   scope: body.page-member
   ========================================================= */

body.page-member { background: #fff; }
body.page-member .mel-mbr-fv,
body.page-member .mel-mbr-demo,
body.page-member .mel-mbr-income,
body.page-member .mel-mbr-career,
body.page-member .mel-mbr-sim {
    font-family: 'Zen Kaku Gothic New', 'Zen Maru Gothic', sans-serif;
    color: #1a1a1a;
    line-height: 1.9;
    letter-spacing: 0.03em;
}
body.page-member .mel-mbr-fv *,
body.page-member .mel-mbr-demo *,
body.page-member .mel-mbr-income *,
body.page-member .mel-mbr-career *,
body.page-member .mel-mbr-sim * { box-sizing: border-box; }

/* fade-in（TOPのobserverが body.page-top で効く。既定は透明→表示） */
body.page-member .js-fade-in { opacity: 0; transform: translateY(24px); transition: opacity .9s ease, transform .9s ease; }
body.page-member .js-fade-in.is-visible { opacity: 1; transform: none; }

/* ---------- ①全幅ヒーロー写真＋大きな統合カード ---------- */
body.page-member .mel-mbr-fv {
    position: relative;
    padding-bottom: 130px;
    background: #fff;
}
body.page-member .mel-mbr-fv__img-wrap {
    width: 100%;
    height: 62vh;
    min-height: 460px;
    max-height: 620px;
    overflow: hidden;
    position: relative;
}
body.page-member .mel-mbr-fv__img-wrap::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(255,255,255,0) 55%, rgba(255,255,255,0.5) 100%);
    pointer-events: none;
}
body.page-member .mel-mbr-fv__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 40%;
    display: block;
}
body.page-member .mel-mbr-card {
    max-width: 1160px;
    margin: -140px auto 0;
    position: relative;
    z-index: 2;
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 30px 80px rgba(0, 0, 0, 0.08);
    padding: 76px 70px 70px;
    text-align: center;
}
body.page-member .mel-mbr-card__head {
    margin-bottom: 32px;
    padding-bottom: 30px;
    border-bottom: 1px solid #F5E8E8;
}
body.page-member .mel-mbr-card__eyebrow-en {
    font-family: 'Futura', 'Futura PT', 'Century Gothic', 'Helvetica Neue', sans-serif;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 0.24em;
    color: #EB2A2A;
    text-transform: uppercase;
    margin: 0 0 12px;
}
body.page-member .mel-mbr-card__eyebrow-jp {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 0.1em;
    color: #EB2A2A;
    margin: 0 0 24px;
}
body.page-member .mel-mbr-card__page-ttl {
    font-family: 'Zen Kaku Gothic New', 'Zen Maru Gothic', sans-serif;
    font-size: 40px;
    font-weight: 700;
    color: #1a1a1a;
    line-height: 1.4;
    letter-spacing: 0.09em;
    margin: 0;
}
body.page-member .mel-mbr-card__sp-br { display: none; }
body.page-member .mel-mbr-card__lead-block {
    max-width: 820px;
    margin: 0 auto 56px;
}
body.page-member .mel-mbr-card__lead-row {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 36px;
    text-align: left;
}
body.page-member .mel-mbr-card__lead-badge {
    width: 220px;
    height: auto;
    flex-shrink: 0;
    display: block;
}
body.page-member .mel-mbr-card__lead-badge-note {
    font-size: 9.5px;
    color: #888;
    line-height: 1.6;
    letter-spacing: 0.02em;
    margin: 14px 0 0;
    text-align: left;
    font-weight: 500;
}
body.page-member .mel-mbr-card__lead {
    font-size: 15px;
    color: #555;
    line-height: 2.1;
    margin: 0;
    letter-spacing: 0.05em;
    font-weight: 500;
}

/* カード内 主要4数字 */
body.page-member .mel-mbr-card__stats {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 22px;
}
body.page-member .mel-mbr-card__stat {
    background: #fff;
    border: 1px solid #F5E8E8;
    border-radius: 8px;
    padding: 36px 20px 28px;
    text-align: center;
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.04);
}
body.page-member .mel-mbr-card__stat-num-img {
    position: absolute;
    top: -20px;
    left: -12px;
    width: 60px;
    height: auto;
    z-index: 2;
    pointer-events: none;
}
body.page-member .mel-mbr-card__stat-cap {
    font-size: 13.5px;
    color: #333;
    font-weight: 700;
    line-height: 1.6;
    margin-top: 10px;
    letter-spacing: 0.04em;
    min-height: 44px;
}
body.page-member .mel-mbr-card__stat-tags {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 6px;
    margin: 2px 0 6px;
}
body.page-member .mel-mbr-card__stat-tag {
    display: inline-block;
    padding: 4px 12px;
    background: #EB2A2A;
    color: #fff;
    font-size: 10.5px;
    font-weight: 700;
    border-radius: 100px;
    letter-spacing: 0.06em;
}
body.page-member .mel-mbr-card__stat-num {
    font-family: 'Noto Serif JP', 'Yu Mincho', 'YuMincho', serif;
    font-size: 44px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: -0.01em;
    background: linear-gradient(135deg, #C99A4A 0%, #F4CE8B 45%, #B7862F 75%, #E5BE72 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
    display: inline-block;
    margin-top: 2px;
}
body.page-member .mel-mbr-card__stat-unit {
    font-family: 'Noto Serif JP', 'Yu Mincho', serif;
    font-size: 16px;
    font-weight: 700;
    margin-left: 2px;
    background: linear-gradient(135deg, #C99A4A 0%, #F4CE8B 45%, #B7862F 75%, #E5BE72 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
}
body.page-member .mel-mbr-card__stat-unit-mid {
    font-family: 'Noto Serif JP', 'Yu Mincho', serif;
    font-size: 26px;
    font-weight: 400;
    margin: 0 4px;
    background: linear-gradient(135deg, #C99A4A 0%, #F4CE8B 45%, #B7862F 75%, #E5BE72 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
}
body.page-member .mel-mbr-card__stat-note {
    font-size: 11.5px;
    color: #888;
    letter-spacing: 0.06em;
    font-weight: 500;
    margin-top: 4px;
    font-family: 'Noto Serif JP', 'Yu Mincho', serif;
}

/* ---------- ②男女比 × 年代分布 ---------- */
body.page-member .mel-mbr-demo {
    padding: 110px 20px 100px;
    background: #FFF9F7;
}
body.page-member .mel-mbr-demo__inner {
    max-width: 1080px;
    margin: 0 auto;
}
body.page-member .mel-mbr-demo__head {
    text-align: center;
    margin-bottom: 60px;
}
body.page-member .mel-mbr-demo__label-group {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 22px;
}
body.page-member .mel-mbr-demo__label-en {
    font-family: 'Futura', 'Futura PT', 'Century Gothic', 'Helvetica Neue', sans-serif;
    font-size: 22px;
    font-weight: 900;
    letter-spacing: 0.18em;
    color: #EB2A2A;
    text-transform: uppercase;
}
body.page-member .mel-mbr-demo__label-line {
    display: inline-block;
    width: 44px;
    height: 1px;
    background: #EB2A2A;
}
body.page-member .mel-mbr-demo__ttl {
    font-size: 34px;
    font-weight: 700;
    color: #1a1a1a;
    letter-spacing: 0.08em;
    line-height: 1.5;
    margin: 0 0 16px;
}
body.page-member .mel-mbr-demo__sub {
    font-size: 12.5px;
    color: #888;
    letter-spacing: 0.08em;
    margin: 0;
    font-family: 'Noto Serif JP', 'Yu Mincho', serif;
}

/* 男女比：ドーナツ */
body.page-member .mel-mbr-demo__gender {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 56px;
    margin-bottom: 60px;
    padding: 60px 40px;
    background: #fff;
    border: 1px solid #F5E8E8;
    border-radius: 10px;
    box-shadow: 0 22px 60px rgba(0, 0, 0, 0.05);
}
body.page-member .mel-mbr-demo__pie-wrap {
    display: flex;
    align-items: center;
    gap: 44px;
}
body.page-member .mel-mbr-demo__pie {
    --male: 55.5%;
    width: 240px;
    height: 240px;
    border-radius: 50%;
    background: conic-gradient(#4A78C4 0 var(--male), #EB2A2A var(--male) 100%);
    position: relative;
    display: grid;
    place-items: center;
    box-shadow: inset 0 6px 18px rgba(0, 0, 0, 0.06);
}
body.page-member .mel-mbr-demo__pie-hole {
    width: 152px;
    height: 152px;
    border-radius: 50%;
    background: #fff;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.04);
}
body.page-member .mel-mbr-demo__pie-hole-lbl {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 16px;
    font-weight: 700;
    color: #1a1a1a;
    letter-spacing: 0.1em;
}
body.page-member .mel-mbr-demo__pie-hole-sub {
    font-family: 'Futura', 'Futura PT', 'Century Gothic', sans-serif;
    font-size: 10px;
    font-weight: 700;
    color: #888;
    letter-spacing: 0.24em;
    margin-top: 6px;
    text-transform: uppercase;
}
body.page-member .mel-mbr-demo__pie-legend {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 18px;
}
body.page-member .mel-mbr-demo__pie-legend li {
    display: grid;
    grid-template-columns: 20px 60px 1fr;
    align-items: baseline;
    gap: 14px;
    min-width: 190px;
}
body.page-member .mel-mbr-demo__pie-swatch {
    width: 20px;
    height: 20px;
    border-radius: 4px;
    align-self: center;
}
body.page-member .mel-mbr-demo__pie-swatch--male { background: #4A78C4; }
body.page-member .mel-mbr-demo__pie-swatch--female { background: #EB2A2A; }
body.page-member .mel-mbr-demo__pie-legend-lbl {
    font-size: 14px;
    font-weight: 700;
    color: #333;
    letter-spacing: 0.06em;
}
body.page-member .mel-mbr-demo__pie-legend-num {
    font-family: 'Noto Serif JP', 'Yu Mincho', serif;
    font-size: 32px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: -0.01em;
    background: linear-gradient(135deg, #C99A4A 0%, #F4CE8B 45%, #B7862F 75%, #E5BE72 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
    text-align: right;
}
body.page-member .mel-mbr-demo__pie-legend-num i {
    font-style: normal;
    font-size: 16px;
    margin-left: 2px;
}
body.page-member .mel-mbr-demo__gender-note {
    font-size: 14px;
    color: #555;
    line-height: 2;
    letter-spacing: 0.06em;
    max-width: 260px;
    margin: 0;
    font-weight: 500;
}

/* 男女別年齢：横棒2枚 */
body.page-member .mel-mbr-demo__age {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    margin-bottom: 30px;
}
body.page-member .mel-mbr-demo__age-col {
    background: #fff;
    border: 1px solid #F5E8E8;
    border-radius: 10px;
    padding: 40px 38px;
    box-shadow: 0 22px 60px rgba(0, 0, 0, 0.05);
}
body.page-member .mel-mbr-demo__age-col-ttl {
    font-size: 19px;
    font-weight: 800;
    letter-spacing: 0.1em;
    color: #1a1a1a;
    margin: 0 0 22px;
    display: flex;
    align-items: center;
    gap: 12px;
    padding-bottom: 14px;
    border-bottom: 1px dashed #F5C8C8;
}
body.page-member .mel-mbr-demo__age-col-dot {
    display: inline-block;
    width: 14px;
    height: 14px;
    border-radius: 50%;
}
body.page-member .mel-mbr-demo__age-col-dot--male { background: #4A78C4; }
body.page-member .mel-mbr-demo__age-col-dot--female { background: #EB2A2A; }
body.page-member .mel-mbr-demo__bars {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 14px;
}
body.page-member .mel-mbr-demo__bars li {
    display: grid;
    grid-template-columns: 76px 1fr 56px;
    align-items: center;
    gap: 12px;
}
body.page-member .mel-mbr-demo__bar-lbl {
    font-size: 13px;
    color: #333;
    font-weight: 700;
    letter-spacing: 0.04em;
}
body.page-member .mel-mbr-demo__bar-track {
    position: relative;
    height: 16px;
    background: #FFEBEE;
    border-radius: 100px;
    overflow: hidden;
}
body.page-member .mel-mbr-demo__bar-fill {
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: var(--v);
    border-radius: 100px;
    transition: width 1.2s cubic-bezier(.2,.7,.2,1);
}
body.page-member .mel-mbr-demo__bar-fill--male {
    background: linear-gradient(90deg, #3A66B8 0%, #6892D0 100%);
}
body.page-member .mel-mbr-demo__bar-fill--female {
    background: linear-gradient(90deg, #EB2A2A 0%, #FF6B6B 100%);
}
body.page-member .mel-mbr-demo__bar-fill--male.mel-mbr-demo__bar-fill--top {
    box-shadow: 0 2px 8px rgba(58, 102, 184, 0.32);
}
body.page-member .mel-mbr-demo__bar-fill--female.mel-mbr-demo__bar-fill--top {
    box-shadow: 0 2px 8px rgba(235, 42, 42, 0.28);
}
body.page-member .mel-mbr-demo__bar-val {
    font-family: 'Noto Serif JP', 'Yu Mincho', serif;
    font-size: 15px;
    font-weight: 700;
    color: #1a1a1a;
    text-align: right;
    letter-spacing: -0.01em;
}
body.page-member .mel-mbr-demo__foot {
    text-align: center;
    font-size: 15px;
    color: #555;
    letter-spacing: 0.06em;
    margin: 30px auto 0;
    font-weight: 500;
}
body.page-member .mel-mbr-demo__foot b {
    color: #EB2A2A;
    font-weight: 900;
}
body.page-member .mel-mbr-demo__pc-br { display: inline; }

/* ---------- ③男性年収分布 ---------- */
body.page-member .mel-mbr-income {
    padding: 110px 20px 100px;
    background: #fff;
}
body.page-member .mel-mbr-income__inner {
    max-width: 1080px;
    margin: 0 auto;
}
body.page-member .mel-mbr-income__head {
    text-align: center;
    margin-bottom: 60px;
}
body.page-member .mel-mbr-income__label-group {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 22px;
}
body.page-member .mel-mbr-income__label-en {
    font-family: 'Futura', 'Futura PT', 'Century Gothic', 'Helvetica Neue', sans-serif;
    font-size: 22px;
    font-weight: 900;
    letter-spacing: 0.18em;
    color: #EB2A2A;
    text-transform: uppercase;
}
body.page-member .mel-mbr-income__label-line {
    display: inline-block;
    width: 44px;
    height: 1px;
    background: #EB2A2A;
}
body.page-member .mel-mbr-income__ttl {
    font-size: 34px;
    font-weight: 700;
    color: #1a1a1a;
    letter-spacing: 0.08em;
    line-height: 1.5;
    margin: 0 0 16px;
}
body.page-member .mel-mbr-income__sub {
    font-size: 12.5px;
    color: #888;
    letter-spacing: 0.08em;
    margin: 0;
    font-family: 'Noto Serif JP', 'Yu Mincho', serif;
}
body.page-member .mel-mbr-income__body {
    display: grid;
    grid-template-columns: 320px 1fr;
    gap: 60px;
    align-items: center;
    background: #FFF9F7;
    border: 1px solid #F5E8E8;
    border-radius: 10px;
    padding: 60px 60px;
    box-shadow: 0 22px 60px rgba(0, 0, 0, 0.05);
}
body.page-member .mel-mbr-income__hero {
    text-align: center;
    border-right: 1px dashed #F5C8C8;
    padding-right: 40px;
}
body.page-member .mel-mbr-income__hero-lbl {
    display: block;
    font-size: 14px;
    color: #555;
    letter-spacing: 0.06em;
    margin-bottom: 8px;
    font-weight: 700;
}
body.page-member .mel-mbr-income__hero-lbl-em {
    display: block;
    font-family: 'Noto Serif JP', 'Yu Mincho', serif;
    font-size: 76px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: -0.01em;
    background: linear-gradient(135deg, #C99A4A 0%, #F4CE8B 45%, #B7862F 75%, #E5BE72 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
    margin-bottom: 20px;
}
body.page-member .mel-mbr-income__hero-lbl-plain {
    font-family: 'Noto Serif JP', 'Yu Mincho', serif;
    font-size: 38px;
    font-weight: 700;
    margin-left: 4px;
    background: linear-gradient(135deg, #C99A4A 0%, #F4CE8B 45%, #B7862F 75%, #E5BE72 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
}
body.page-member .mel-mbr-income__hero-note {
    font-size: 13.5px;
    color: #333;
    line-height: 2;
    letter-spacing: 0.06em;
    display: block;
    font-weight: 500;
}
body.page-member .mel-mbr-income__hero-note b {
    color: #EB2A2A;
    font-weight: 900;
}
body.page-member .mel-mbr-income__bars {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 16px;
}
body.page-member .mel-mbr-income__bars li {
    display: grid;
    grid-template-columns: 130px 1fr 68px;
    align-items: center;
    gap: 16px;
}
body.page-member .mel-mbr-income__bar-lbl {
    font-size: 13.5px;
    color: #333;
    font-weight: 700;
    letter-spacing: 0.04em;
}
body.page-member .mel-mbr-income__bar-track {
    position: relative;
    height: 20px;
    background: #fff;
    border: 1px solid #F5E8E8;
    border-radius: 100px;
    overflow: hidden;
}
body.page-member .mel-mbr-income__bar-fill {
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: var(--v);
    border-radius: 100px;
    background: linear-gradient(90deg, #FFC1C1 0%, #FFA0A0 100%);
    transition: width 1.4s cubic-bezier(.2,.7,.2,1);
}
body.page-member .mel-mbr-income__bar-fill--top {
    background: linear-gradient(90deg, #EB2A2A 0%, #FF7676 100%);
    box-shadow: 0 2px 8px rgba(235, 42, 42, 0.28);
}
body.page-member .mel-mbr-income__bar-val {
    font-family: 'Noto Serif JP', 'Yu Mincho', serif;
    font-size: 16px;
    font-weight: 700;
    color: #1a1a1a;
    text-align: right;
    letter-spacing: -0.01em;
}

/* ---------- ④学歴 × 職業 ---------- */
body.page-member .mel-mbr-career {
    padding: 110px 20px 100px;
    background: #FFF9F7;
}
body.page-member .mel-mbr-career__inner {
    max-width: 1200px;
    margin: 0 auto;
}
body.page-member .mel-mbr-career__head {
    text-align: center;
    margin-bottom: 60px;
}
body.page-member .mel-mbr-career__label-group {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 22px;
}
body.page-member .mel-mbr-career__label-en {
    font-family: 'Futura', 'Futura PT', 'Century Gothic', 'Helvetica Neue', sans-serif;
    font-size: 22px;
    font-weight: 900;
    letter-spacing: 0.18em;
    color: #EB2A2A;
    text-transform: uppercase;
}
body.page-member .mel-mbr-career__label-line {
    display: inline-block;
    width: 44px;
    height: 1px;
    background: #EB2A2A;
}
body.page-member .mel-mbr-career__ttl {
    font-size: 34px;
    font-weight: 700;
    color: #1a1a1a;
    letter-spacing: 0.08em;
    line-height: 1.5;
    margin: 0 0 16px;
}
body.page-member .mel-mbr-career__sub {
    font-size: 12.5px;
    color: #888;
    letter-spacing: 0.08em;
    margin: 0;
    font-family: 'Noto Serif JP', 'Yu Mincho', serif;
}
body.page-member .mel-mbr-career__body {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
}
body.page-member .mel-mbr-career__col {
    background: #fff;
    border: 1px solid #F5E8E8;
    border-radius: 10px;
    padding: 44px 40px;
    box-shadow: 0 22px 60px rgba(0, 0, 0, 0.05);
}
body.page-member .mel-mbr-career__col-ttl {
    font-size: 22px;
    font-weight: 800;
    color: #EB2A2A;
    letter-spacing: 0.16em;
    margin: 0 0 28px;
    text-align: center;
    position: relative;
    padding-bottom: 16px;
}
body.page-member .mel-mbr-career__col-ttl::after {
    content: "";
    display: block;
    width: 44px;
    height: 2px;
    background: #EB2A2A;
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    bottom: 0;
}

/* 学歴 */
body.page-member .mel-mbr-career__edu,
body.page-member .mel-mbr-career__job {
    display: flex;
    flex-direction: column;
    gap: 24px;
}
body.page-member .mel-mbr-career__edu-block,
body.page-member .mel-mbr-career__job-block {
    background: #FFF9F7;
    border-radius: 8px;
    padding: 24px 26px;
}
body.page-member .mel-mbr-career__edu-block-head {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin-bottom: 12px;
    padding-bottom: 10px;
    border-bottom: 1px dashed #F5C8C8;
}
body.page-member .mel-mbr-career__edu-sex,
body.page-member .mel-mbr-career__job-sex {
    font-size: 15.5px;
    font-weight: 800;
    color: #1a1a1a;
    letter-spacing: 0.1em;
    margin: 0;
}
body.page-member .mel-mbr-career__job-sex {
    margin-bottom: 12px;
    padding-bottom: 10px;
    border-bottom: 1px dashed #F5C8C8;
}
body.page-member .mel-mbr-career__edu-hi {
    font-size: 13px;
    color: #555;
    margin: 0;
    font-weight: 700;
    letter-spacing: 0.04em;
}
body.page-member .mel-mbr-career__edu-hi b {
    font-family: 'Noto Serif JP', 'Yu Mincho', serif;
    font-size: 24px;
    color: #EB2A2A;
    letter-spacing: -0.01em;
    font-weight: 700;
    margin-left: 6px;
}
body.page-member .mel-mbr-career__edu-hi i {
    font-style: normal;
    font-size: 14px;
    margin-left: 1px;
}
body.page-member .mel-mbr-career__edu-list {
    list-style: none;
    padding: 0;
    margin: 0;
}
body.page-member .mel-mbr-career__edu-list li {
    display: flex;
    justify-content: space-between;
    padding: 8px 0;
    border-bottom: 1px dotted #EBD9D9;
    font-size: 13.5px;
    letter-spacing: 0.04em;
}
body.page-member .mel-mbr-career__edu-list li:last-child { border-bottom: none; }
body.page-member .mel-mbr-career__edu-nm {
    color: #555;
    font-weight: 500;
}
body.page-member .mel-mbr-career__edu-vl {
    font-weight: 700;
    color: #1a1a1a;
    font-family: 'Noto Serif JP', 'Yu Mincho', serif;
    letter-spacing: -0.01em;
}

/* 職業 */
body.page-member .mel-mbr-career__job-list {
    list-style: none;
    padding: 0;
    margin: 0;
}
body.page-member .mel-mbr-career__job-list li {
    display: grid;
    grid-template-columns: 42px 1fr auto;
    align-items: center;
    padding: 10px 0;
    gap: 12px;
    border-bottom: 1px dotted #EBD9D9;
}
body.page-member .mel-mbr-career__job-list li:last-child { border-bottom: none; }
body.page-member .mel-mbr-career__job-rk {
    font-family: 'Futura', 'Futura PT', 'Century Gothic', sans-serif;
    font-size: 18px;
    font-weight: 900;
    color: #EB2A2A;
    letter-spacing: 0.04em;
}
body.page-member .mel-mbr-career__job-nm {
    font-size: 13.5px;
    color: #333;
    font-weight: 700;
    letter-spacing: 0.04em;
}
body.page-member .mel-mbr-career__job-vl {
    font-family: 'Noto Serif JP', 'Yu Mincho', serif;
    font-size: 16px;
    font-weight: 700;
    color: #1a1a1a;
    letter-spacing: -0.01em;
}

/* ---------- ⑤婚活シミュレーションバナー ---------- */
body.page-member .mel-mbr-sim {
    padding: 110px 20px 100px;
    background: #fff;
}
body.page-member .mel-mbr-sim__inner {
    max-width: 1080px;
    margin: 0 auto;
    text-align: center;
}
body.page-member .mel-mbr-sim__head {
    margin-bottom: 40px;
}
body.page-member .mel-mbr-sim__label-group {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 22px;
}
body.page-member .mel-mbr-sim__label-en {
    font-family: 'Futura', 'Futura PT', 'Century Gothic', 'Helvetica Neue', sans-serif;
    font-size: 22px;
    font-weight: 900;
    letter-spacing: 0.18em;
    color: #EB2A2A;
    text-transform: uppercase;
}
body.page-member .mel-mbr-sim__label-line {
    display: inline-block;
    width: 44px;
    height: 1px;
    background: #EB2A2A;
}
body.page-member .mel-mbr-sim__ttl {
    font-size: 30px;
    font-weight: 700;
    color: #1a1a1a;
    letter-spacing: 0.08em;
    line-height: 1.6;
    margin: 0 0 20px;
}
body.page-member .mel-mbr-sim__sp-br { display: none; }
body.page-member .mel-mbr-sim__sub {
    font-size: 15px;
    color: #555;
    letter-spacing: 0.06em;
    margin: 0;
    line-height: 2;
    font-weight: 500;
}
body.page-member .mel-mbr-sim__banner {
    display: block;
    max-width: 900px;
    margin: 0 auto 40px;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 22px 60px rgba(0, 0, 0, 0.08);
    transition: transform 0.4s ease, box-shadow 0.4s ease;
}
body.page-member .mel-mbr-sim__banner:hover {
    transform: translateY(-4px);
    box-shadow: 0 30px 70px rgba(0, 0, 0, 0.14);
}
body.page-member .mel-mbr-sim__banner img {
    width: 100%;
    height: auto;
    display: block;
}
body.page-member .mel-mbr-sim__banner:last-child {
    margin-bottom: 0;
}

/* ---------- SP版（max-width: 768px） ---------- */
@media (max-width: 768px) {
    /* FV */
    body.page-member .mel-mbr-fv { padding-bottom: 70px; }
    body.page-member .mel-mbr-fv__img-wrap { height: 42vh; min-height: 300px; }
    body.page-member .mel-mbr-card {
        max-width: calc(100% - 24px);
        margin: -200px auto 0;
        padding: 44px 22px 40px;
        border-radius: 10px;
    }
    body.page-member .mel-mbr-card__head { margin-bottom: 24px; padding-bottom: 22px; }
    body.page-member .mel-mbr-card__eyebrow-en { font-size: 11px; }
    body.page-member .mel-mbr-card__eyebrow-jp { font-size: 13px; margin-bottom: 18px; }
    body.page-member .mel-mbr-card__page-ttl { font-size: 22px; line-height: 1.5; letter-spacing: 0.06em; }
    body.page-member .mel-mbr-card__sp-br { display: inline; }
    body.page-member .mel-mbr-card__lead { font-size: 13px; line-height: 1.9; margin-bottom: 34px; }

    body.page-member .mel-mbr-card__stats {
        grid-template-columns: repeat(2, 1fr);
        gap: 30px 14px;
    }
    body.page-member .mel-mbr-card__stat { padding: 30px 12px 22px; }
    body.page-member .mel-mbr-card__stat-num-img { width: 48px; top: -16px; left: -8px; }
    body.page-member .mel-mbr-card__stat-cap { font-size: 12px; min-height: 40px; margin-top: 8px; }
    body.page-member .mel-mbr-card__stat-tag { font-size: 9.5px; padding: 3px 10px; }
    body.page-member .mel-mbr-card__stat-num { font-size: 32px; }
    body.page-member .mel-mbr-card__stat-unit { font-size: 13px; }
    body.page-member .mel-mbr-card__stat-unit-mid { font-size: 20px; }
    body.page-member .mel-mbr-card__stat-note { font-size: 10.5px; }

    /* 男女比 × 年代 */
    body.page-member .mel-mbr-demo { padding: 70px 16px 70px; }
    body.page-member .mel-mbr-demo__head { margin-bottom: 40px; }
    body.page-member .mel-mbr-demo__label-en { font-size: 17px; }
    body.page-member .mel-mbr-demo__ttl { font-size: 22px; line-height: 1.55; letter-spacing: 0.06em; }
    body.page-member .mel-mbr-demo__sub { font-size: 11px; }

    body.page-member .mel-mbr-demo__gender {
        flex-direction: column;
        gap: 30px;
        padding: 40px 22px;
        margin-bottom: 40px;
    }
    body.page-member .mel-mbr-demo__pie-wrap { flex-direction: column; gap: 26px; }
    body.page-member .mel-mbr-demo__pie { width: 200px; height: 200px; }
    body.page-member .mel-mbr-demo__pie-hole { width: 128px; height: 128px; }
    body.page-member .mel-mbr-demo__pie-hole-lbl { font-size: 14px; }
    body.page-member .mel-mbr-demo__pie-hole-sub { font-size: 9px; }
    body.page-member .mel-mbr-demo__pie-legend { flex-direction: row; gap: 26px; }
    body.page-member .mel-mbr-demo__pie-legend li { min-width: 0; grid-template-columns: 16px auto auto; gap: 10px; }
    body.page-member .mel-mbr-demo__pie-swatch { width: 16px; height: 16px; }
    body.page-member .mel-mbr-demo__pie-legend-lbl { font-size: 12px; }
    body.page-member .mel-mbr-demo__pie-legend-num { font-size: 24px; }
    body.page-member .mel-mbr-demo__pie-legend-num i { font-size: 13px; }
    body.page-member .mel-mbr-demo__gender-note { font-size: 12.5px; text-align: center; max-width: 100%; line-height: 1.9; }
    body.page-member .mel-mbr-demo__pc-br { display: none; }

    body.page-member .mel-mbr-demo__age { grid-template-columns: 1fr; gap: 20px; }
    body.page-member .mel-mbr-demo__age-col { padding: 28px 22px; }
    body.page-member .mel-mbr-demo__age-col-ttl { font-size: 16px; margin-bottom: 18px; padding-bottom: 12px; }
    body.page-member .mel-mbr-demo__bars li { grid-template-columns: 62px 1fr 46px; gap: 10px; }
    body.page-member .mel-mbr-demo__bar-lbl { font-size: 12px; }
    body.page-member .mel-mbr-demo__bar-track { height: 14px; }
    body.page-member .mel-mbr-demo__bar-val { font-size: 13px; }
    body.page-member .mel-mbr-demo__foot { font-size: 13px; margin-top: 24px; line-height: 1.8; }

    /* 年収 */
    body.page-member .mel-mbr-income { padding: 70px 16px 70px; }
    body.page-member .mel-mbr-income__head { margin-bottom: 40px; }
    body.page-member .mel-mbr-income__label-en { font-size: 17px; }
    body.page-member .mel-mbr-income__ttl { font-size: 22px; line-height: 1.55; letter-spacing: 0.06em; }
    body.page-member .mel-mbr-income__sub { font-size: 11px; }
    body.page-member .mel-mbr-income__body {
        grid-template-columns: 1fr;
        gap: 30px;
        padding: 36px 22px 36px;
    }
    body.page-member .mel-mbr-income__hero {
        border-right: none;
        border-bottom: 1px dashed #F5C8C8;
        padding-right: 0;
        padding-bottom: 26px;
    }
    body.page-member .mel-mbr-income__hero-lbl { font-size: 13px; margin-bottom: 4px; }
    body.page-member .mel-mbr-income__hero-lbl-em { font-size: 58px; margin-bottom: 14px; }
    body.page-member .mel-mbr-income__hero-lbl-plain { font-size: 18px; }
    body.page-member .mel-mbr-income__hero-note { font-size: 12.5px; line-height: 1.9; }
    body.page-member .mel-mbr-income__bars { gap: 12px; }
    body.page-member .mel-mbr-income__bars li { grid-template-columns: 96px 1fr 54px; gap: 10px; }
    body.page-member .mel-mbr-income__bar-lbl { font-size: 12px; }
    body.page-member .mel-mbr-income__bar-track { height: 16px; }
    body.page-member .mel-mbr-income__bar-val { font-size: 13.5px; }

    /* 学歴×職業 */
    body.page-member .mel-mbr-career { padding: 70px 16px 70px; }
    body.page-member .mel-mbr-career__head { margin-bottom: 40px; }
    body.page-member .mel-mbr-career__label-en { font-size: 17px; }
    body.page-member .mel-mbr-career__ttl { font-size: 22px; line-height: 1.55; letter-spacing: 0.06em; }
    body.page-member .mel-mbr-career__sub { font-size: 11px; }
    body.page-member .mel-mbr-career__body { grid-template-columns: 1fr; gap: 20px; }
    body.page-member .mel-mbr-career__col { padding: 30px 22px; }
    body.page-member .mel-mbr-career__col-ttl { font-size: 18px; margin-bottom: 22px; padding-bottom: 12px; }
    body.page-member .mel-mbr-career__col-ttl::after { width: 36px; }
    body.page-member .mel-mbr-career__edu-block,
    body.page-member .mel-mbr-career__job-block { padding: 20px 18px; }
    body.page-member .mel-mbr-career__edu-block-head { flex-direction: column; align-items: flex-start; gap: 4px; }
    body.page-member .mel-mbr-career__edu-sex,
    body.page-member .mel-mbr-career__job-sex { font-size: 14px; }
    body.page-member .mel-mbr-career__edu-hi b { font-size: 20px; }
    body.page-member .mel-mbr-career__edu-list li { font-size: 12.5px; padding: 7px 0; }
    body.page-member .mel-mbr-career__job-list li { grid-template-columns: 34px 1fr auto; padding: 9px 0; gap: 10px; }
    body.page-member .mel-mbr-career__job-rk { font-size: 15px; }
    body.page-member .mel-mbr-career__job-nm { font-size: 12.5px; }
    body.page-member .mel-mbr-career__job-vl { font-size: 14px; }

    /* シミュレーションバナー */
    body.page-member .mel-mbr-sim { padding: 70px 16px 70px; }
    body.page-member .mel-mbr-sim__head { margin-bottom: 30px; }
    body.page-member .mel-mbr-sim__label-en { font-size: 17px; }
    body.page-member .mel-mbr-sim__ttl { font-size: 20px; line-height: 1.65; letter-spacing: 0.05em; }
    body.page-member .mel-mbr-sim__sp-br { display: inline; }
    body.page-member .mel-mbr-sim__sub { font-size: 13px; line-height: 1.9; }
    body.page-member .mel-mbr-sim__banner { margin: 0 auto; border-radius: 10px; }

    /* SP：FVカードの No.1バッジ + リード文 縦積み */
    body.page-member .mel-mbr-card__lead-block { margin-bottom: 30px; }
    body.page-member .mel-mbr-card__lead-row {
        flex-direction: column;
        align-items: center;
        gap: 22px;
        text-align: center;
    }
    body.page-member .mel-mbr-card__lead-badge { width: 240px; }
    body.page-member .mel-mbr-card__lead-badge-note { font-size: 9px; line-height: 1.55; margin-top: 16px; }
    body.page-member .mel-mbr-card__lead { text-align: center; }

    /* SP：hero-lbl-plain（%） */
    body.page-member .mel-mbr-income__hero-lbl-plain { font-size: 30px; }
}

/* =========================================================
   下層ページ「料金・プラン」price.html 専用スタイル
   scope: body.page-price
   ※ mel-price__*・mel-compare__* は既存 body.page-top スタイルを流用
   ※ mel-value__*・mel-price__ibj-* は既存 body.page-why-low-price を流用（scriptで両方add）
   ========================================================= */

body.page-price { background: #fff; }
body.page-price .mel-prc-fv,
body.page-price .mel-prc-inc,
body.page-price .mel-prc-cmp,
body.page-price .mel-prc-why {
    font-family: 'Zen Kaku Gothic New', 'Zen Maru Gothic', sans-serif;
    color: #1a1a1a;
    line-height: 1.9;
    letter-spacing: 0.03em;
}
body.page-price .mel-prc-fv *,
body.page-price .mel-prc-inc *,
body.page-price .mel-prc-cmp *,
body.page-price .mel-prc-why * { box-sizing: border-box; }

/* fade-in */
body.page-price .js-fade-in { opacity: 0; transform: translateY(24px); transition: opacity .9s ease, transform .9s ease; }
body.page-price .js-fade-in.is-visible { opacity: 1; transform: none; }

/* ---------- ①全幅ヒーロー写真＋大きな統合カード ---------- */
body.page-price .mel-prc-fv {
    position: relative;
    padding-bottom: 90px;
    background: #fff;
}
body.page-price .mel-prc-fv__img-wrap {
    width: 100%;
    height: 62vh;
    min-height: 460px;
    max-height: 620px;
    overflow: hidden;
    position: relative;
}
body.page-price .mel-prc-fv__img-wrap::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(255,255,255,0) 55%, rgba(255,255,255,0.5) 100%);
    pointer-events: none;
}
body.page-price .mel-prc-fv__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 40%;
    display: block;
}
body.page-price .mel-prc-card {
    max-width: 1100px;
    margin: -140px auto 0;
    position: relative;
    z-index: 2;
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 30px 80px rgba(0, 0, 0, 0.08);
    padding: 76px 70px 60px;
    text-align: center;
}
body.page-price .mel-prc-card__head {
    margin-bottom: 32px;
    padding-bottom: 30px;
    border-bottom: 1px solid #F5E8E8;
}
body.page-price .mel-prc-card__eyebrow-en {
    font-family: 'Futura', 'Futura PT', 'Century Gothic', 'Helvetica Neue', sans-serif;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 0.24em;
    color: #EB2A2A;
    text-transform: uppercase;
    margin: 0 0 12px;
}
body.page-price .mel-prc-card__eyebrow-jp {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 0.1em;
    color: #EB2A2A;
    margin: 0 0 24px;
}
body.page-price .mel-prc-card__page-ttl {
    font-family: 'Zen Kaku Gothic New', 'Zen Maru Gothic', sans-serif;
    font-size: 40px;
    font-weight: 700;
    color: #1a1a1a;
    line-height: 1.4;
    letter-spacing: 0.09em;
    margin: 0;
}
body.page-price .mel-prc-card__sp-br,
body.page-price .mel-prc-card__pc-br { display: inline; }
body.page-price .mel-prc-card__lead {
    font-size: 15px;
    color: #555;
    line-height: 2.1;
    margin: 0;
    letter-spacing: 0.05em;
    font-weight: 500;
}

/* ---------- ②メイン料金カードのラッパー調整 ---------- */
/* .mel-price のシルク背景・padding は既存 body.page-top で効くのでそのまま。
   ただしTOPでは Head→plan-wrap→比較 の順で組まれているが、下層は plan-wrap だけなので paddingを詰める */
body.page-price .mel-prc-plan {
    padding-top: 100px !important;
    padding-bottom: 100px !important;
}

/* ---------- ③料金に含まれるサービス ---------- */
body.page-price .mel-prc-inc {
    padding: 110px 20px 100px;
    background: #FFF9F7;
}
body.page-price .mel-prc-inc__inner {
    max-width: 1080px;
    margin: 0 auto;
}
body.page-price .mel-prc-inc__head {
    text-align: center;
    margin-bottom: 50px;
}
body.page-price .mel-prc-inc__label-group {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 22px;
}
body.page-price .mel-prc-inc__label-en {
    font-family: 'Futura', 'Futura PT', 'Century Gothic', 'Helvetica Neue', sans-serif;
    font-size: 22px;
    font-weight: 900;
    letter-spacing: 0.18em;
    color: #EB2A2A;
    text-transform: uppercase;
}
body.page-price .mel-prc-inc__label-line {
    display: inline-block;
    width: 44px;
    height: 1px;
    background: #EB2A2A;
}
body.page-price .mel-prc-inc__ttl {
    font-size: 32px;
    font-weight: 700;
    color: #1a1a1a;
    letter-spacing: 0.08em;
    line-height: 1.5;
    margin: 0 0 14px;
}
body.page-price .mel-prc-inc__sub {
    font-size: 15px;
    color: #555;
    letter-spacing: 0.06em;
    margin: 0;
    line-height: 2;
    font-weight: 500;
}
body.page-price .mel-prc-inc__list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 22px;
}
body.page-price .mel-prc-inc__item {
    background: #fff;
    border: 1px solid #F5E8E8;
    border-radius: 8px;
    padding: 26px 28px;
    display: flex;
    align-items: flex-start;
    gap: 18px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.04);
}
body.page-price .mel-prc-inc__icon {
    flex-shrink: 0;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: #EB2A2A;
    color: #fff;
    font-weight: 900;
    font-size: 15px;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    margin-top: 2px;
}
body.page-price .mel-prc-inc__body {
    flex: 1;
}
body.page-price .mel-prc-inc__item-ttl {
    font-size: 16px;
    color: #1a1a1a;
    font-weight: 800;
    letter-spacing: 0.05em;
    margin: 0 0 6px;
    line-height: 1.6;
}
body.page-price .mel-prc-inc__item-txt {
    font-size: 13.5px;
    color: #555;
    letter-spacing: 0.04em;
    margin: 0;
    line-height: 1.85;
    font-weight: 500;
}

/* ---------- ④Comparison ラッパー（reason踏襲：白カード内包） ---------- */
body.page-price .mel-prc-cmp {
    padding: 100px 20px 90px;
    background: #fff;
}
body.page-price .mel-prc-cmp__inner {
    max-width: 1080px;
    margin: 0 auto;
}
body.page-price .mel-prc-cmp__inner .mel-price__compare-head {
    text-align: center;
    max-width: 900px;
    margin: 0 auto 40px;
}

/* ---------- ⑤Why? + IBJアピール + 3理由 の背景・padding調整 ---------- */
body.page-price .mel-value {
    background: #FFF9F7;
    padding: 100px 20px;
}

/* ---------- SP版（max-width: 768px） ---------- */
@media (max-width: 768px) {
    /* FV */
    body.page-price .mel-prc-fv { padding-bottom: 60px; }
    body.page-price .mel-prc-fv__img-wrap { height: 42vh; min-height: 300px; }
    body.page-price .mel-prc-card {
        max-width: calc(100% - 24px);
        margin: -200px auto 0;
        padding: 44px 22px 36px;
    }
    body.page-price .mel-prc-card__head { margin-bottom: 24px; padding-bottom: 22px; }
    body.page-price .mel-prc-card__eyebrow-en { font-size: 11px; }
    body.page-price .mel-prc-card__eyebrow-jp { font-size: 13px; margin-bottom: 18px; }
    body.page-price .mel-prc-card__page-ttl { font-size: 24px; line-height: 1.5; letter-spacing: 0.06em; }
    body.page-price .mel-prc-card__pc-br { display: none; }
    body.page-price .mel-prc-card__lead { font-size: 13px; line-height: 1.9; }

    /* メイン料金カード */
    body.page-price .mel-prc-plan {
        padding-top: 60px !important;
        padding-bottom: 60px !important;
    }

    /* 含まれるサービス */
    body.page-price .mel-prc-inc { padding: 60px 16px 60px; }
    body.page-price .mel-prc-inc__head { margin-bottom: 34px; }
    body.page-price .mel-prc-inc__label-en { font-size: 17px; }
    body.page-price .mel-prc-inc__ttl { font-size: 20px; letter-spacing: 0.05em; line-height: 1.55; }
    body.page-price .mel-prc-inc__sub { font-size: 13px; line-height: 1.9; }
    body.page-price .mel-prc-inc__list { grid-template-columns: 1fr; gap: 14px; }
    body.page-price .mel-prc-inc__item { padding: 20px 20px; gap: 14px; }
    body.page-price .mel-prc-inc__icon { width: 28px; height: 28px; font-size: 13px; }
    body.page-price .mel-prc-inc__item-ttl { font-size: 14.5px; }
    body.page-price .mel-prc-inc__item-txt { font-size: 12.5px; line-height: 1.8; }

    /* Comparison */
    body.page-price .mel-prc-cmp { padding: 60px 12px 60px; }

    /* Why?/Value */
    body.page-price .mel-value { padding: 60px 16px; }
}

/* =========================================================
   price.html 追加スタイル：FVカード内 料金表 + Why?セクション新規デザイン
   ========================================================= */

/* ---------- FVカード内 料金表 ---------- */
body.page-price .mel-prc-card__plan {
    margin: 40px auto 0;
    max-width: 780px;
    background: #FFF9F7;
    border: 1px solid #F5E8E8;
    border-radius: 12px;
    padding: 40px 44px 32px;
}
body.page-price .mel-prc-card__plan-head {
    text-align: center;
    margin-bottom: 24px;
    padding-bottom: 20px;
    border-bottom: 1px dashed #F5C8C8;
}
body.page-price .mel-prc-card__plan-badge {
    display: inline-block;
    background: #EB2A2A;
    color: #fff;
    padding: 6px 22px;
    border-radius: 100px;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.08em;
    margin-bottom: 12px;
}
body.page-price .mel-prc-card__plan-desc {
    font-size: 13.5px;
    color: #555;
    line-height: 1.85;
    margin: 0;
    letter-spacing: 0.04em;
    font-weight: 500;
}

/* 月会費（メイン） */
body.page-price .mel-prc-card__plan-main {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 22px;
    margin-bottom: 28px;
    padding: 12px 0 6px;
}
body.page-price .mel-prc-card__plan-main-lbl {
    font-size: 16px;
    font-weight: 800;
    color: #1a1a1a;
    letter-spacing: 0.08em;
}
body.page-price .mel-prc-card__plan-main-value {
    display: flex;
    align-items: baseline;
    gap: 4px;
}
body.page-price .mel-prc-card__plan-main-num {
    font-family: 'Noto Serif JP', 'Yu Mincho', serif;
    font-size: 68px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: -0.01em;
    color: #EB2A2A;
}
body.page-price .mel-prc-card__plan-main-yen {
    font-family: 'Noto Serif JP', 'Yu Mincho', serif;
    font-size: 26px;
    font-weight: 700;
    color: #EB2A2A;
    letter-spacing: -0.01em;
}
body.page-price .mel-prc-card__plan-main-tax {
    font-size: 11.5px;
    color: #888;
    letter-spacing: 0.06em;
    margin-left: 6px;
    font-weight: 500;
}

/* その他料金 4項目 */
body.page-price .mel-prc-card__plan-fees {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px 22px;
}
body.page-price .mel-prc-card__plan-fee {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    padding: 12px 4px;
    border-bottom: 1px dotted #EBD9D9;
}
body.page-price .mel-prc-card__plan-fee-lbl {
    font-size: 13.5px;
    color: #555;
    font-weight: 700;
    letter-spacing: 0.06em;
}
body.page-price .mel-prc-card__plan-fee-val {
    display: inline-flex;
    align-items: baseline;
    gap: 2px;
}
body.page-price .mel-prc-card__plan-fee-num {
    font-family: 'Noto Serif JP', 'Yu Mincho', serif;
    font-size: 20px;
    font-weight: 700;
    color: #1a1a1a;
    letter-spacing: -0.01em;
}
body.page-price .mel-prc-card__plan-fee-yen {
    font-family: 'Noto Serif JP', 'Yu Mincho', serif;
    font-size: 13px;
    font-weight: 700;
    color: #1a1a1a;
    letter-spacing: -0.01em;
}
body.page-price .mel-prc-card__plan-fee-val--free .mel-prc-card__plan-fee-num,
body.page-price .mel-prc-card__plan-fee-val--free .mel-prc-card__plan-fee-yen {
    color: #EB2A2A;
}
body.page-price .mel-prc-card__plan-note {
    text-align: center;
    font-size: 11px;
    color: #888;
    letter-spacing: 0.06em;
    margin: 20px 0 0;
    font-weight: 500;
}

/* ---------- ④Why? + IBJアピール + 3理由（新規デザイン） ---------- */
body.page-price .mel-prc-why {
    padding: 110px 20px 100px;
    background: #FFF9F7;
}
body.page-price .mel-prc-why__inner {
    max-width: 1080px;
    margin: 0 auto;
}

/* ヘッダー */
body.page-price .mel-prc-why__head {
    text-align: center;
    margin-bottom: 60px;
}
body.page-price .mel-prc-why__label-group {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 22px;
}
body.page-price .mel-prc-why__label-en {
    font-family: 'Futura', 'Futura PT', 'Century Gothic', 'Helvetica Neue', sans-serif;
    font-size: 22px;
    font-weight: 900;
    letter-spacing: 0.24em;
    color: #EB2A2A;
    text-transform: uppercase;
}
body.page-price .mel-prc-why__label-line {
    display: inline-block;
    width: 44px;
    height: 1px;
    background: #EB2A2A;
}
body.page-price .mel-prc-why__lead {
    font-size: 15px;
    color: #EB2A2A;
    font-weight: 700;
    letter-spacing: 0.08em;
    margin: 0 0 14px;
}
body.page-price .mel-prc-why__ttl {
    font-size: 36px;
    font-weight: 700;
    color: #1a1a1a;
    letter-spacing: 0.08em;
    line-height: 1.5;
    margin: 0 0 22px;
}
body.page-price .mel-prc-why__sub {
    font-size: 15px;
    color: #555;
    letter-spacing: 0.06em;
    line-height: 2;
    margin: 0;
    font-weight: 500;
}
body.page-price .mel-prc-why__sub-em {
    color: #1a1a1a;
    font-weight: 800;
}

/* IBJアピール白カード */
body.page-price .mel-prc-why__ibj {
    max-width: 1080px;
    margin: 0 auto 80px;
    background: #fff;
    border: 1px solid #F5E8E8;
    border-radius: 12px;
    padding: 60px 60px 56px;
    box-shadow: 0 22px 60px rgba(0, 0, 0, 0.06);
}
body.page-price .mel-prc-why__ibj-badge-row {
    text-align: center;
    margin-bottom: 20px;
}
body.page-price .mel-prc-why__ibj-badge {
    display: inline-block;
    background: #fff;
    color: #EB2A2A;
    border: 2px solid #EB2A2A;
    padding: 7px 22px;
    border-radius: 100px;
    font-size: 12.5px;
    font-weight: 900;
    letter-spacing: 0.14em;
}
body.page-price .mel-prc-why__ibj-ttl {
    text-align: center;
    font-size: 24px;
    font-weight: 800;
    color: #1a1a1a;
    letter-spacing: 0.06em;
    line-height: 1.6;
    margin: 0 0 32px;
}
body.page-price .mel-prc-why__pc-br { display: inline; }

/* No.1バッジ + 注釈：横並び（白背景・薄いピンク背景ナシ） */
body.page-price .mel-prc-why__ibj-no1 {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 30px;
    padding: 8px 0 28px;
    background: transparent;
    margin-bottom: 32px;
    border-bottom: 1px dashed #F5C8C8;
}
body.page-price .mel-prc-why__ibj-no1-img {
    width: 170px;
    height: auto;
    flex-shrink: 0;
}
body.page-price .mel-prc-why__ibj-no1-note {
    font-size: 9.5px;
    color: #888;
    line-height: 1.65;
    margin: 0;
    letter-spacing: 0.02em;
    font-weight: 500;
    max-width: 420px;
}

/* 3ポイント縦積み */
body.page-price .mel-prc-why__ibj-points {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 20px;
}
body.page-price .mel-prc-why__ibj-point {
    display: flex;
    align-items: flex-start;
    gap: 18px;
    padding: 20px 22px;
    background: #FFF9F7;
    border-radius: 8px;
}
body.page-price .mel-prc-why__ibj-check {
    flex-shrink: 0;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: #EB2A2A;
    color: #fff;
    font-weight: 900;
    font-size: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    margin-top: 2px;
}
body.page-price .mel-prc-why__ibj-body {
    flex: 1;
}
body.page-price .mel-prc-why__ibj-point-ttl {
    font-size: 16px;
    color: #EB2A2A;
    font-weight: 800;
    letter-spacing: 0.05em;
    margin: 0 0 6px;
    line-height: 1.6;
}
body.page-price .mel-prc-why__ibj-point-txt {
    font-size: 13.5px;
    color: #555;
    letter-spacing: 0.04em;
    margin: 0;
    line-height: 1.85;
    font-weight: 500;
}

/* 3理由の3列カード */
body.page-price .mel-prc-why__reasons-head {
    text-align: center;
    margin-bottom: 40px;
}
body.page-price .mel-prc-why__reasons-label-en {
    display: block;
    font-family: 'Futura', 'Futura PT', 'Century Gothic', sans-serif;
    font-size: 15px;
    font-weight: 900;
    letter-spacing: 0.24em;
    color: #EB2A2A;
    margin-bottom: 12px;
    text-transform: uppercase;
}
body.page-price .mel-prc-why__reasons-ttl {
    font-size: 26px;
    font-weight: 700;
    color: #1a1a1a;
    letter-spacing: 0.06em;
    line-height: 1.55;
    margin: 0;
}
body.page-price .mel-prc-why__sp-br { display: none; }
body.page-price .mel-prc-why__reasons {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 26px;
}
body.page-price .mel-prc-why__reason {
    background: #fff;
    border: 1px solid #F5E8E8;
    border-radius: 12px;
    padding: 44px 32px 36px;
    position: relative;
    box-shadow: 0 22px 60px rgba(0, 0, 0, 0.05);
    text-align: center;
}
body.page-price .mel-prc-why__reason-num {
    display: inline-block;
    font-family: 'Futura', 'Futura PT', 'Century Gothic', sans-serif;
    font-size: 46px;
    font-weight: 900;
    line-height: 1;
    letter-spacing: 0.02em;
    background: linear-gradient(135deg, #C99A4A 0%, #F4CE8B 45%, #B7862F 75%, #E5BE72 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
    margin-bottom: 18px;
}
body.page-price .mel-prc-why__reason-ttl {
    font-size: 18px;
    font-weight: 800;
    color: #1a1a1a;
    letter-spacing: 0.05em;
    line-height: 1.6;
    margin: 0 0 16px;
    padding-bottom: 14px;
    border-bottom: 1px dashed #F5C8C8;
}
body.page-price .mel-prc-why__reason-txt {
    font-size: 13.5px;
    color: #555;
    letter-spacing: 0.04em;
    line-height: 1.9;
    margin: 0;
    font-weight: 500;
    text-align: left;
}

/* ---------- SP版 追加分 ---------- */
@media (max-width: 768px) {
    /* FVカード内 料金表 */
    body.page-price .mel-prc-card__plan { padding: 28px 20px 22px; margin-top: 28px; }
    body.page-price .mel-prc-card__plan-head { margin-bottom: 18px; padding-bottom: 16px; }
    body.page-price .mel-prc-card__plan-badge { font-size: 11.5px; padding: 5px 18px; }
    body.page-price .mel-prc-card__plan-desc { font-size: 12px; line-height: 1.75; }
    body.page-price .mel-prc-card__plan-main { gap: 14px; margin-bottom: 20px; }
    body.page-price .mel-prc-card__plan-main-lbl { font-size: 14px; }
    body.page-price .mel-prc-card__plan-main-num { font-size: 50px; }
    body.page-price .mel-prc-card__plan-main-yen { font-size: 20px; }
    body.page-price .mel-prc-card__plan-main-tax { font-size: 10px; }
    body.page-price .mel-prc-card__plan-fees {
        grid-template-columns: 1fr;
        gap: 0;
    }
    body.page-price .mel-prc-card__plan-fee { padding: 10px 4px; }
    body.page-price .mel-prc-card__plan-fee-lbl { font-size: 12.5px; }
    body.page-price .mel-prc-card__plan-fee-num { font-size: 18px; }
    body.page-price .mel-prc-card__plan-fee-yen { font-size: 12px; }
    body.page-price .mel-prc-card__plan-note { font-size: 10px; margin-top: 14px; }

    /* Why? */
    body.page-price .mel-prc-why { padding: 60px 16px 60px; }
    body.page-price .mel-prc-why__head { margin-bottom: 40px; }
    body.page-price .mel-prc-why__label-en { font-size: 17px; }
    body.page-price .mel-prc-why__lead { font-size: 13px; }
    body.page-price .mel-prc-why__ttl { font-size: 22px; letter-spacing: 0.05em; line-height: 1.55; }
    body.page-price .mel-prc-why__sub { font-size: 13px; line-height: 1.9; }

    /* IBJアピール */
    body.page-price .mel-prc-why__ibj { padding: 40px 22px 34px; margin-bottom: 50px; }
    body.page-price .mel-prc-why__ibj-badge { font-size: 11px; padding: 6px 18px; }
    body.page-price .mel-prc-why__ibj-ttl { font-size: 17px; line-height: 1.65; letter-spacing: 0.03em; margin-bottom: 24px; }
    body.page-price .mel-prc-why__pc-br { display: none; }
    body.page-price .mel-prc-why__ibj-no1 {
        flex-direction: column;
        gap: 14px;
        padding: 22px 18px;
        margin-bottom: 24px;
    }
    body.page-price .mel-prc-why__ibj-no1-img { width: 190px; }
    body.page-price .mel-prc-why__ibj-no1-note { font-size: 9px; max-width: 100%; text-align: left; }
    body.page-price .mel-prc-why__ibj-points { gap: 14px; }
    body.page-price .mel-prc-why__ibj-point { padding: 16px 16px; gap: 12px; }
    body.page-price .mel-prc-why__ibj-check { width: 24px; height: 24px; font-size: 12px; }
    body.page-price .mel-prc-why__ibj-point-ttl { font-size: 14px; }
    body.page-price .mel-prc-why__ibj-point-txt { font-size: 12.5px; line-height: 1.8; }

    /* 3理由 */
    body.page-price .mel-prc-why__reasons-head { margin-bottom: 28px; }
    body.page-price .mel-prc-why__reasons-label-en { font-size: 12.5px; }
    body.page-price .mel-prc-why__reasons-ttl { font-size: 19px; letter-spacing: 0.04em; line-height: 1.6; }
    body.page-price .mel-prc-why__sp-br { display: inline; }
    body.page-price .mel-prc-why__reasons {
        grid-template-columns: 1fr;
        gap: 16px;
        max-width: 400px;
        margin: 0 auto;
    }
    body.page-price .mel-prc-why__reason { padding: 32px 24px 28px; }
    body.page-price .mel-prc-why__reason-num { font-size: 38px; margin-bottom: 14px; }
    body.page-price .mel-prc-why__reason-ttl { font-size: 16px; padding-bottom: 12px; margin-bottom: 14px; }
    body.page-price .mel-prc-why__reason-txt { font-size: 12.5px; line-height: 1.8; }
}

/* =========================================================
   price.html 追加：料金表TOPスタイル流用 + 順序入れ替え + 30万円お得比較セクション
   ========================================================= */

/* FVカード内 料金表 wrap（TOP mel-price__plan-card を内包） */
body.page-price .mel-prc-card__plan-wrap {
    margin: 40px auto 0;
    max-width: 720px;
}

/* Why?セクション 順序入れ替え後の余白調整（3理由が先、IBJが後） */
body.page-price .mel-prc-why__reasons--top {
    margin-bottom: 70px;
}
body.page-price .mel-prc-why__ibj--after {
    margin: 0 auto;
}

/* ---------- 【NEW】料金比較「30万円以上お得！」画像バナー（リード+画像+30万お得） ---------- */
body.page-price .mel-prc-diff {
    padding: 20px 20px 100px;
    background: #fff;
}
body.page-price .mel-prc-diff__inner {
    max-width: 1080px;
    margin: 0 auto;
    text-align: center;
}
body.page-price .mel-prc-diff__head {
    margin-bottom: 40px;
}
body.page-price .mel-prc-diff__eyebrow {
    font-family: 'Futura', 'Futura PT', 'Century Gothic', 'Helvetica Neue', sans-serif;
    font-size: 15px;
    font-weight: 900;
    letter-spacing: 0.24em;
    color: #EB2A2A;
    margin: 0 0 14px;
    text-transform: uppercase;
}
body.page-price .mel-prc-diff__ttl {
    font-family: 'Zen Kaku Gothic New', 'Zen Maru Gothic', sans-serif;
    font-size: 36px;
    font-weight: 900;
    color: #1a1a1a;
    letter-spacing: 0.08em;
    line-height: 1.4;
    margin: 0 0 18px;
}
body.page-price .mel-prc-diff__lead {
    font-size: 15px;
    color: #555;
    letter-spacing: 0.05em;
    line-height: 2;
    margin: 0;
    font-weight: 500;
}
body.page-price .mel-prc-diff__sp-br,
body.page-price .mel-prc-diff__pc-br { display: inline; }
body.page-price .mel-prc-diff__img-wrap {
    max-width: 1080px;
    margin: 0 auto;
}
body.page-price .mel-prc-diff__img {
    display: block;
    width: 100%;
    height: auto;
    max-width: 1080px;
    margin: 0 auto;
}
body.page-price .mel-prc-diff__foot-em {
    display: inline-flex;
    align-items: baseline;
    justify-content: center;
    gap: 8px;
    margin: 32px auto 0;
    padding: 0;
    background: transparent;
    color: #EB2A2A;
    font-family: 'Zen Kaku Gothic New', sans-serif;
}
body.page-price .mel-prc-diff__foot-em-lbl {
    font-size: 18px;
    font-weight: 800;
    letter-spacing: 0.08em;
}
body.page-price .mel-prc-diff__foot-em-approx {
    font-size: 18px;
    font-weight: 800;
    letter-spacing: 0.04em;
    margin-left: -2px;
}
body.page-price .mel-prc-diff__foot-note {
    font-size: 11.5px;
    color: #888;
    letter-spacing: 0.04em;
    line-height: 1.7;
    margin: 14px auto 0;
    max-width: none;
    font-weight: 500;
    white-space: nowrap;
}
body.page-price .mel-prc-diff__foot-em-num {
    font-size: 44px;
    font-weight: 900;
    line-height: 1;
    letter-spacing: -0.01em;
    display: inline-flex;
    align-items: baseline;
    gap: 2px;
}
body.page-price .mel-prc-diff__foot-em-num small {
    font-size: 20px;
    font-weight: 800;
}
body.page-price .mel-prc-diff__foot-em-tail {
    font-size: 22px;
    font-weight: 900;
    letter-spacing: 0.04em;
}

/* reasons-head の label 削除に伴う head 余白調整 */
body.page-price .mel-prc-why__reasons-head {
    margin-bottom: 40px;
}

@media (max-width: 768px) {
    body.page-price .mel-prc-diff { padding: 10px 12px 60px; }
    body.page-price .mel-prc-diff__head { margin-bottom: 26px; }
    body.page-price .mel-prc-diff__eyebrow { font-size: 12.5px; }
    body.page-price .mel-prc-diff__ttl { font-size: 22px; letter-spacing: 0.05em; line-height: 1.55; margin-bottom: 14px; }
    body.page-price .mel-prc-diff__sp-br { display: inline; }
    body.page-price .mel-prc-diff__pc-br { display: none; }
    body.page-price .mel-prc-diff__lead { font-size: 12.5px; line-height: 1.9; }
    body.page-price .mel-prc-diff__foot-em {
        margin-top: 22px;
        padding: 0;
        gap: 5px;
        flex-wrap: wrap;
    }
    body.page-price .mel-prc-diff__foot-em-lbl { font-size: 13.5px; }
    body.page-price .mel-prc-diff__foot-em-approx { font-size: 13.5px; }
    body.page-price .mel-prc-diff__foot-note { font-size: 10px; margin-top: 10px; padding: 0 8px; line-height: 1.6; white-space: normal; }
    body.page-price .mel-prc-diff__foot-em-num { font-size: 30px; }
    body.page-price .mel-prc-diff__foot-em-num small { font-size: 14px; }
    body.page-price .mel-prc-diff__foot-em-tail { font-size: 16px; }

    body.page-price .mel-prc-why__reasons--top { margin-bottom: 50px; }
}

/* =========================================================
   結婚相談所料金比較ページ（price-comparison.html）追加分
   - TOP CSS流用（scriptで body.page-top を追加）
   - 新規要素のみ body.page-price-comparison スコープで定義
   ========================================================= */

body.page-price-comparison { background: #fff; }
body.page-price-comparison .mel-pcm-fv,
body.page-price-comparison .mel-pcm-toc,
body.page-price-comparison .mel-pcm-avg,
body.page-price-comparison .mel-pcm-parts,
body.page-price-comparison .mel-pcm-type,
body.page-price-comparison .mel-pcm-sim,
body.page-price-comparison .mel-pcm-check,
body.page-price-comparison .mel-pcm-conc {
    font-family: 'Zen Kaku Gothic New', 'Zen Maru Gothic', 'Noto Sans JP', sans-serif;
    color: #1a1a1a;
}
body.page-price-comparison .mel-pcm-fv *,
body.page-price-comparison .mel-pcm-toc *,
body.page-price-comparison .mel-pcm-avg *,
body.page-price-comparison .mel-pcm-parts *,
body.page-price-comparison .mel-pcm-type *,
body.page-price-comparison .mel-pcm-sim *,
body.page-price-comparison .mel-pcm-check *,
body.page-price-comparison .mel-pcm-conc * { box-sizing: border-box; }

/* fade-in（TOP踏襲） */
body.page-price-comparison .js-fade-in {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity 0.8s ease, transform 0.8s ease;
}
body.page-price-comparison .js-fade-in.is-visible {
    opacity: 1;
    transform: translateY(0);
}

/* 共通 章ラベル（Chapter 01 等） */
body.page-price-comparison .mel-pcm-avg__label-group,
body.page-price-comparison .mel-pcm-parts__label-group,
body.page-price-comparison .mel-pcm-type__label-group,
body.page-price-comparison .mel-pcm-sim__label-group,
body.page-price-comparison .mel-pcm-check__label-group,
body.page-price-comparison .mel-pcm-conc__label-group {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 22px;
}
body.page-price-comparison .mel-pcm-avg__label-en,
body.page-price-comparison .mel-pcm-parts__label-en,
body.page-price-comparison .mel-pcm-type__label-en,
body.page-price-comparison .mel-pcm-sim__label-en,
body.page-price-comparison .mel-pcm-check__label-en,
body.page-price-comparison .mel-pcm-conc__label-en {
    font-family: 'Futura', 'Futura PT', 'Century Gothic', 'Helvetica Neue', sans-serif;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.24em;
    color: #EB2A2A;
    text-transform: uppercase;
}
body.page-price-comparison .mel-pcm-avg__label-line,
body.page-price-comparison .mel-pcm-parts__label-line,
body.page-price-comparison .mel-pcm-type__label-line,
body.page-price-comparison .mel-pcm-sim__label-line,
body.page-price-comparison .mel-pcm-check__label-line,
body.page-price-comparison .mel-pcm-conc__label-line {
    display: inline-block;
    width: 42px;
    height: 1px;
    background: #EB2A2A;
}

/* 共通 章見出し */
body.page-price-comparison .mel-pcm-avg__ttl,
body.page-price-comparison .mel-pcm-parts__ttl,
body.page-price-comparison .mel-pcm-type__ttl,
body.page-price-comparison .mel-pcm-sim__ttl,
body.page-price-comparison .mel-pcm-check__ttl,
body.page-price-comparison .mel-pcm-conc__ttl {
    font-family: 'Zen Kaku Gothic New', 'Zen Maru Gothic', sans-serif;
    font-size: 38px;
    font-weight: 700;
    color: #1a1a1a;
    letter-spacing: 0.04em;
    line-height: 1.5;
    margin: 0 0 20px;
}
body.page-price-comparison .mel-pcm-avg__lead,
body.page-price-comparison .mel-pcm-parts__lead,
body.page-price-comparison .mel-pcm-type__lead,
body.page-price-comparison .mel-pcm-sim__lead,
body.page-price-comparison .mel-pcm-check__lead,
body.page-price-comparison .mel-pcm-conc__lead {
    font-size: 16px;
    font-weight: 500;
    color: #555;
    line-height: 2.0;
    margin: 0;
}
body.page-price-comparison .mel-pcm-avg__lead b,
body.page-price-comparison .mel-pcm-parts__lead b,
body.page-price-comparison .mel-pcm-type__lead b,
body.page-price-comparison .mel-pcm-sim__lead b {
    font-weight: 800;
    color: #1a1a1a;
}

/* ---------- ①FV ---------- */
body.page-price-comparison .mel-pcm-fv {
    position: relative;
    padding-bottom: 120px;
    background: #fff;
}
body.page-price-comparison .mel-pcm-fv__img-wrap {
    width: 100%;
    height: 62vh;
    min-height: 460px;
    max-height: 620px;
    overflow: hidden;
    position: relative;
}
body.page-price-comparison .mel-pcm-fv__img-wrap::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(255,255,255,0) 60%, rgba(255,255,255,0.35) 100%);
    pointer-events: none;
}
body.page-price-comparison .mel-pcm-fv__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 40%;
    display: block;
}

/* オーバーラップカード */
body.page-price-comparison .mel-pcm-card {
    max-width: 1080px;
    margin: -140px auto 0;
    position: relative;
    z-index: 2;
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 30px 80px rgba(0, 0, 0, 0.08);
    padding: 72px 60px 60px;
}
body.page-price-comparison .mel-pcm-card__head {
    text-align: center;
    margin-bottom: 36px;
    padding-bottom: 32px;
    border-bottom: 1px solid #F5E8E8;
}
body.page-price-comparison .mel-pcm-card__eyebrow-en {
    font-family: 'Futura', 'Futura PT', 'Century Gothic', 'Helvetica Neue', sans-serif;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 0.28em;
    color: #EB2A2A;
    text-transform: uppercase;
    margin: 0 0 12px;
}
body.page-price-comparison .mel-pcm-card__eyebrow-jp {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 0.1em;
    color: #EB2A2A;
    margin: 0 0 22px;
}
body.page-price-comparison .mel-pcm-card__page-ttl {
    font-family: 'Zen Kaku Gothic New', 'Zen Maru Gothic', sans-serif;
    font-size: 44px;
    font-weight: 700;
    color: #1a1a1a;
    letter-spacing: 0.06em;
    line-height: 1.4;
    margin: 0 0 20px;
}
body.page-price-comparison .mel-pcm-card__update {
    display: inline-block;
    font-family: 'Futura', 'Futura PT', 'Century Gothic', sans-serif;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.16em;
    color: #888;
    padding: 4px 14px;
    border: 1px solid #E5E5E5;
    border-radius: 999px;
    margin: 0;
}
body.page-price-comparison .mel-pcm-card__lead {
    font-size: 16px;
    font-weight: 500;
    color: #555;
    line-height: 2.1;
    text-align: center;
    margin: 0;
}

/* ---------- ②目次（TOC） ---------- */
body.page-price-comparison .mel-pcm-toc {
    padding: 90px 20px 40px;
    background: #fff;
}
body.page-price-comparison .mel-pcm-toc__inner {
    max-width: 900px;
    margin: 0 auto;
    background: #fff;
    border: 1px solid #F5E8E8;
    border-radius: 10px;
    padding: 44px 50px 40px;
    box-shadow: 0 22px 60px rgba(0, 0, 0, 0.05);
}
body.page-price-comparison .mel-pcm-toc__head {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 14px;
}
body.page-price-comparison .mel-pcm-toc__label-en {
    font-family: 'Futura', 'Futura PT', 'Century Gothic', sans-serif;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.24em;
    color: #EB2A2A;
    text-transform: uppercase;
}
body.page-price-comparison .mel-pcm-toc__label-line {
    display: inline-block;
    width: 38px;
    height: 1px;
    background: #EB2A2A;
}
body.page-price-comparison .mel-pcm-toc__ttl {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 26px;
    font-weight: 700;
    color: #1a1a1a;
    letter-spacing: 0.04em;
    margin: 0 0 24px;
}
body.page-price-comparison .mel-pcm-toc__list {
    list-style: none;
    padding: 0;
    margin: 0;
}
body.page-price-comparison .mel-pcm-toc__list li {
    border-bottom: 1px dashed #F5C8C8;
}
body.page-price-comparison .mel-pcm-toc__list li:last-child {
    border-bottom: none;
}
body.page-price-comparison .mel-pcm-toc__list a {
    display: flex;
    align-items: center;
    gap: 20px;
    padding: 16px 6px;
    text-decoration: none;
    color: #1a1a1a;
    transition: color 0.2s ease, transform 0.2s ease;
}
body.page-price-comparison .mel-pcm-toc__list a:hover {
    color: #EB2A2A;
    transform: translateX(4px);
}
body.page-price-comparison .mel-pcm-toc__num {
    font-family: 'Futura', 'Futura PT', 'Century Gothic', sans-serif;
    font-size: 18px;
    font-weight: 700;
    color: #EB2A2A;
    letter-spacing: 0.06em;
    min-width: 30px;
}
body.page-price-comparison .mel-pcm-toc__txt {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 15.5px;
    font-weight: 700;
    letter-spacing: 0.04em;
}

/* ---------- ③#01 相場（Chapter 01） ---------- */
body.page-price-comparison .mel-pcm-avg {
    padding: 100px 20px;
    background: #FFF9F7;
}
body.page-price-comparison .mel-pcm-avg__inner {
    max-width: 980px;
    margin: 0 auto;
}
body.page-price-comparison .mel-pcm-avg__head {
    text-align: left;
    margin-bottom: 50px;
    max-width: 820px;
}
body.page-price-comparison .mel-pcm-avg__head .mel-pcm-avg__label-group {
    justify-content: flex-start;
}
body.page-price-comparison .mel-pcm-avg__table {
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 22px 60px rgba(0, 0, 0, 0.06);
    overflow: hidden;
}
body.page-price-comparison .mel-pcm-avg__row {
    display: grid;
    grid-template-columns: 240px 1fr;
    align-items: center;
    padding: 22px 40px;
    border-bottom: 1px dashed #F5C8C8;
}
body.page-price-comparison .mel-pcm-avg__row:last-child {
    border-bottom: none;
}
body.page-price-comparison .mel-pcm-avg__row--head {
    background: #FFEBEE;
    padding: 16px 40px;
    border-bottom: 1px solid #F5C8C8;
}
body.page-price-comparison .mel-pcm-avg__row--sum {
    background: #FFF9F7;
    border-top: 1px solid #F5C8C8;
}
body.page-price-comparison .mel-pcm-avg__cell {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    color: #1a1a1a;
}
body.page-price-comparison .mel-pcm-avg__cell--label {
    font-size: 15px;
    font-weight: 700;
    color: #555;
    letter-spacing: 0.04em;
}
body.page-price-comparison .mel-pcm-avg__row--head .mel-pcm-avg__cell {
    font-size: 13px;
    font-weight: 700;
    color: #888;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}
body.page-price-comparison .mel-pcm-avg__cell--range {
    font-family: 'Noto Serif JP', 'Zen Kaku Gothic New', serif;
    font-size: 22px;
    font-weight: 700;
    color: #1a1a1a;
    letter-spacing: 0.02em;
}
body.page-price-comparison .mel-pcm-avg__cell--range small {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 13px;
    font-weight: 700;
    color: #666;
    margin-left: 4px;
}
body.page-price-comparison .mel-pcm-avg__cell--em {
    color: #EB2A2A;
    font-size: 26px;
}
body.page-price-comparison .mel-pcm-avg__cell--em small {
    color: #EB2A2A;
}
body.page-price-comparison .mel-pcm-avg__note {
    font-size: 11.5px;
    color: #888;
    line-height: 1.7;
    margin: 20px 0 0;
    text-align: right;
}

/* ---------- ④#02 4つの内訳（Chapter 02） ---------- */
body.page-price-comparison .mel-pcm-parts {
    padding: 110px 20px;
    background: #fff;
}
body.page-price-comparison .mel-pcm-parts__inner {
    max-width: 1080px;
    margin: 0 auto;
}
body.page-price-comparison .mel-pcm-parts__head {
    text-align: center;
    margin-bottom: 60px;
}
body.page-price-comparison .mel-pcm-parts__head .mel-pcm-parts__label-group {
    justify-content: center;
}
body.page-price-comparison .mel-pcm-parts__list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 30px;
}
body.page-price-comparison .mel-pcm-parts__item {
    background: #fff;
    border: 1px solid #F5E8E8;
    border-radius: 10px;
    padding: 40px 36px 36px;
    position: relative;
    box-shadow: 0 22px 60px rgba(0, 0, 0, 0.05);
}
body.page-price-comparison .mel-pcm-parts__num {
    font-family: 'Futura', 'Futura PT', 'Century Gothic', sans-serif;
    font-size: 48px;
    font-weight: 700;
    letter-spacing: 0.02em;
    line-height: 1;
    background: linear-gradient(135deg, #C99A4A 0%, #F4CE8B 45%, #B7862F 75%, #E5BE72 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    display: inline-block;
    margin-bottom: 10px;
}
body.page-price-comparison .mel-pcm-parts__item-ttl {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 22px;
    font-weight: 700;
    color: #1a1a1a;
    letter-spacing: 0.04em;
    margin: 0 0 12px;
}
body.page-price-comparison .mel-pcm-parts__range {
    font-family: 'Noto Serif JP', serif;
    font-size: 24px;
    font-weight: 700;
    color: #EB2A2A;
    letter-spacing: 0.02em;
    margin: 0 0 18px;
    padding-bottom: 16px;
    border-bottom: 1px dashed #F5C8C8;
}
body.page-price-comparison .mel-pcm-parts__range small {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 13px;
    font-weight: 700;
    color: #EB2A2A;
    margin-left: 4px;
}
body.page-price-comparison .mel-pcm-parts__item-txt {
    font-size: 14.5px;
    font-weight: 400;
    color: #555;
    line-height: 1.95;
    margin: 0;
}
body.page-price-comparison .mel-pcm-parts__item-txt b {
    font-weight: 800;
    color: #1a1a1a;
}

/* ---------- ⑤#03 タイプ別（Chapter 03） ---------- */
body.page-price-comparison .mel-pcm-type {
    padding: 110px 20px;
    background: #FFF9F7;
}
body.page-price-comparison .mel-pcm-type__inner {
    max-width: 1200px;
    margin: 0 auto;
}
body.page-price-comparison .mel-pcm-type__head {
    text-align: center;
    margin-bottom: 60px;
}
body.page-price-comparison .mel-pcm-type__head .mel-pcm-type__label-group {
    justify-content: center;
}
body.page-price-comparison .mel-pcm-type__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
}
body.page-price-comparison .mel-pcm-type__card {
    background: #fff;
    border: 1px solid #F5E8E8;
    border-radius: 10px;
    padding: 40px 32px 36px;
    box-shadow: 0 22px 60px rgba(0, 0, 0, 0.06);
    display: flex;
    flex-direction: column;
}
body.page-price-comparison .mel-pcm-type__card--em {
    border: 2px solid #EB2A2A;
    box-shadow: 0 28px 70px rgba(235, 42, 42, 0.14);
    position: relative;
}
body.page-price-comparison .mel-pcm-type__card--em::before {
    content: "RECOMMEND";
    position: absolute;
    top: -12px;
    left: 50%;
    transform: translateX(-50%);
    background: #EB2A2A;
    color: #fff;
    font-family: 'Futura', 'Futura PT', 'Century Gothic', sans-serif;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.2em;
    padding: 5px 16px;
    border-radius: 999px;
    white-space: nowrap;
}
body.page-price-comparison .mel-pcm-type__card-cat {
    font-family: 'Futura', 'Futura PT', 'Century Gothic', sans-serif;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.24em;
    color: #EB2A2A;
    text-transform: uppercase;
    margin: 0 0 10px;
}
body.page-price-comparison .mel-pcm-type__card-ttl {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 20px;
    font-weight: 700;
    color: #1a1a1a;
    letter-spacing: 0.04em;
    line-height: 1.5;
    margin: 0 0 20px;
    min-height: 60px;
}
body.page-price-comparison .mel-pcm-type__card-total {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 20px 0;
    margin: 0 0 20px;
    border-top: 1px dashed #F5C8C8;
    border-bottom: 1px dashed #F5C8C8;
}
body.page-price-comparison .mel-pcm-type__card-total-lbl {
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: 0.14em;
    color: #888;
}
body.page-price-comparison .mel-pcm-type__card-total-num {
    font-family: 'Noto Serif JP', serif;
    font-size: 30px;
    font-weight: 700;
    color: #1a1a1a;
    letter-spacing: 0.02em;
    line-height: 1.2;
}
body.page-price-comparison .mel-pcm-type__card-total-num small {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 14px;
    font-weight: 700;
    color: #555;
    margin: 0 3px;
}
body.page-price-comparison .mel-pcm-type__card--em .mel-pcm-type__card-total-num {
    color: #EB2A2A;
}
body.page-price-comparison .mel-pcm-type__card--em .mel-pcm-type__card-total-num small {
    color: #EB2A2A;
}
body.page-price-comparison .mel-pcm-type__card-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
body.page-price-comparison .mel-pcm-type__card-list li {
    font-size: 14px;
    font-weight: 500;
    color: #555;
    line-height: 1.7;
    padding-left: 18px;
    position: relative;
}
body.page-price-comparison .mel-pcm-type__card-list li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 10px;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #EB2A2A;
}

/* ---------- ⑥#04 総額シミュレーション（Chapter 04） ---------- */
body.page-price-comparison .mel-pcm-sim {
    padding: 110px 20px;
    background: #fff;
}
body.page-price-comparison .mel-pcm-sim__inner {
    max-width: 1200px;
    margin: 0 auto;
}
body.page-price-comparison .mel-pcm-sim__head {
    text-align: center;
    margin-bottom: 60px;
}
body.page-price-comparison .mel-pcm-sim__head .mel-pcm-sim__label-group {
    justify-content: center;
}
body.page-price-comparison .mel-pcm-sim__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
    align-items: stretch;
}
body.page-price-comparison .mel-pcm-sim__card {
    background: #fff;
    border: 1px solid #F5E8E8;
    border-radius: 10px;
    padding: 38px 32px 34px;
    box-shadow: 0 22px 60px rgba(0, 0, 0, 0.05);
    display: flex;
    flex-direction: column;
}
body.page-price-comparison .mel-pcm-sim__card--em {
    border: 2px solid #EB2A2A;
    box-shadow: 0 28px 70px rgba(235, 42, 42, 0.14);
    background: #fff;
    position: relative;
}
body.page-price-comparison .mel-pcm-sim__card-cat {
    font-family: 'Futura', 'Futura PT', 'Century Gothic', sans-serif;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.24em;
    color: #EB2A2A;
    text-transform: uppercase;
    margin: 0 0 10px;
}
body.page-price-comparison .mel-pcm-sim__card-ttl {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 20px;
    font-weight: 700;
    color: #1a1a1a;
    letter-spacing: 0.04em;
    line-height: 1.5;
    margin: 0 0 24px;
    min-height: 60px;
}
body.page-price-comparison .mel-pcm-sim__card-breakdown {
    list-style: none;
    padding: 0;
    margin: 0 0 22px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    flex: 1;
}
body.page-price-comparison .mel-pcm-sim__card-breakdown li {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    font-size: 14px;
    color: #555;
    line-height: 1.5;
    padding-bottom: 10px;
    border-bottom: 1px dashed #F5C8C8;
}
body.page-price-comparison .mel-pcm-sim__card-breakdown li:last-child {
    border-bottom: none;
}
body.page-price-comparison .mel-pcm-sim__card-breakdown li > span:first-child {
    font-weight: 500;
    letter-spacing: 0.02em;
}
body.page-price-comparison .mel-pcm-sim__card-breakdown li > span:last-child {
    font-family: 'Noto Serif JP', serif;
    font-size: 16px;
    font-weight: 700;
    color: #1a1a1a;
    letter-spacing: 0.02em;
    white-space: nowrap;
}
body.page-price-comparison .mel-pcm-sim__card-breakdown li > span:last-child small {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 11px;
    font-weight: 700;
    color: #555;
    margin-left: 2px;
}
body.page-price-comparison .mel-pcm-sim__card-sum {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 18px 0 0;
    margin: 0;
    border-top: 2px solid #F5C8C8;
}
body.page-price-comparison .mel-pcm-sim__card-sum-lbl {
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: 0.16em;
    color: #888;
}
body.page-price-comparison .mel-pcm-sim__card-sum-num {
    font-family: 'Noto Serif JP', serif;
    font-size: 32px;
    font-weight: 700;
    color: #1a1a1a;
    letter-spacing: 0.02em;
    line-height: 1.1;
}
body.page-price-comparison .mel-pcm-sim__card-sum-num small {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 14px;
    font-weight: 700;
    color: #555;
    margin-left: 3px;
}
body.page-price-comparison .mel-pcm-sim__card--em .mel-pcm-sim__card-sum {
    border-top-color: #EB2A2A;
}
body.page-price-comparison .mel-pcm-sim__card--em .mel-pcm-sim__card-sum-num {
    color: #EB2A2A;
    font-size: 38px;
}
body.page-price-comparison .mel-pcm-sim__card--em .mel-pcm-sim__card-sum-num small {
    color: #EB2A2A;
}
body.page-price-comparison .mel-pcm-sim__foot-em {
    text-align: center;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 22px;
    font-weight: 700;
    color: #1a1a1a;
    letter-spacing: 0.04em;
    margin: 60px 0 0;
    line-height: 1.6;
}
body.page-price-comparison .mel-pcm-sim__foot-em-num {
    font-family: 'Noto Serif JP', serif;
    font-size: 40px;
    font-weight: 700;
    color: #EB2A2A;
    letter-spacing: 0.02em;
    margin: 0 6px;
}
body.page-price-comparison .mel-pcm-sim__foot-em-num small {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 18px;
    font-weight: 700;
    color: #EB2A2A;
    margin-left: 2px;
}
body.page-price-comparison .mel-pcm-sim__note {
    font-size: 11.5px;
    color: #888;
    line-height: 1.7;
    margin: 24px 0 0;
    text-align: center;
}

/* ---------- ⑦#05 チェックポイント（Chapter 05） ---------- */
body.page-price-comparison .mel-pcm-check {
    padding: 110px 20px;
    background: #FFF9F7;
}
body.page-price-comparison .mel-pcm-check__inner {
    max-width: 1200px;
    margin: 0 auto;
}
body.page-price-comparison .mel-pcm-check__head {
    text-align: center;
    margin-bottom: 60px;
}
body.page-price-comparison .mel-pcm-check__head .mel-pcm-check__label-group {
    justify-content: center;
}
body.page-price-comparison .mel-pcm-check__grid {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
}
body.page-price-comparison .mel-pcm-check__item {
    background: #fff;
    border: 1px solid #F5E8E8;
    border-radius: 10px;
    padding: 36px 30px 32px;
    box-shadow: 0 22px 60px rgba(0, 0, 0, 0.05);
    position: relative;
}
body.page-price-comparison .mel-pcm-check__num {
    font-family: 'Futura', 'Futura PT', 'Century Gothic', sans-serif;
    font-size: 42px;
    font-weight: 700;
    letter-spacing: 0.02em;
    line-height: 1;
    background: linear-gradient(135deg, #C99A4A 0%, #F4CE8B 45%, #B7862F 75%, #E5BE72 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    display: inline-block;
    margin-bottom: 10px;
}
body.page-price-comparison .mel-pcm-check__item-ttl {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 18px;
    font-weight: 700;
    color: #EB2A2A;
    letter-spacing: 0.04em;
    margin: 0 0 12px;
    line-height: 1.6;
    padding-bottom: 12px;
    border-bottom: 1px dashed #F5C8C8;
}
body.page-price-comparison .mel-pcm-check__item-txt {
    font-size: 14px;
    font-weight: 400;
    color: #555;
    line-height: 1.95;
    margin: 0;
}

/* ---------- ⑧#06 結論（Chapter 06 / Conclusion） ---------- */
body.page-price-comparison .mel-pcm-conc {
    padding: 110px 20px;
    background: #fff;
}
body.page-price-comparison .mel-pcm-conc__inner {
    max-width: 1000px;
    margin: 0 auto;
}
body.page-price-comparison .mel-pcm-conc__head {
    text-align: center;
    margin-bottom: 50px;
}
body.page-price-comparison .mel-pcm-conc__head .mel-pcm-conc__label-group {
    justify-content: center;
}
body.page-price-comparison .mel-pcm-conc__box {
    background: #FFF9F7;
    border: 1px solid #F5E8E8;
    border-radius: 12px;
    padding: 54px 50px 46px;
    box-shadow: 0 30px 80px rgba(0, 0, 0, 0.06);
}
body.page-price-comparison .mel-pcm-conc__box-head {
    text-align: center;
    margin-bottom: 36px;
}
body.page-price-comparison .mel-pcm-conc__box-badge {
    display: inline-block;
    background: #EB2A2A;
    color: #fff;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.18em;
    padding: 6px 18px;
    border-radius: 999px;
    margin-bottom: 20px;
}
body.page-price-comparison .mel-pcm-conc__box-ttl {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 26px;
    font-weight: 700;
    color: #1a1a1a;
    letter-spacing: 0.04em;
    line-height: 1.7;
    margin: 0;
}
body.page-price-comparison .mel-pcm-conc__box-stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
    padding: 30px 0;
    margin: 0 0 24px;
    border-top: 1px dashed #F5C8C8;
    border-bottom: 1px dashed #F5C8C8;
}
body.page-price-comparison .mel-pcm-conc__stat {
    text-align: center;
    display: flex;
    flex-direction: column;
    gap: 6px;
}
body.page-price-comparison .mel-pcm-conc__stat-lbl {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.1em;
    color: #888;
}
body.page-price-comparison .mel-pcm-conc__stat-num {
    font-family: 'Noto Serif JP', serif;
    font-size: 24px;
    font-weight: 700;
    color: #EB2A2A;
    letter-spacing: 0.02em;
    line-height: 1.2;
}
body.page-price-comparison .mel-pcm-conc__stat-num small {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 12px;
    font-weight: 700;
    color: #EB2A2A;
    margin-left: 2px;
}
body.page-price-comparison .mel-pcm-conc__box-total {
    text-align: center;
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin: 0 0 30px;
}
body.page-price-comparison .mel-pcm-conc__box-total-lbl {
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.14em;
    color: #555;
}
body.page-price-comparison .mel-pcm-conc__box-total-num {
    font-family: 'Noto Serif JP', serif;
    font-size: 46px;
    font-weight: 700;
    letter-spacing: 0.02em;
    line-height: 1.1;
    background: linear-gradient(135deg, #C99A4A 0%, #F4CE8B 45%, #B7862F 75%, #E5BE72 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}
body.page-price-comparison .mel-pcm-conc__box-total-num small {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 18px;
    font-weight: 700;
    background: none;
    -webkit-background-clip: initial;
    background-clip: initial;
    color: #B7862F;
    margin-left: 4px;
}
body.page-price-comparison .mel-pcm-conc__box-cta {
    text-align: center;
}
body.page-price-comparison .mel-pcm-conc__link {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    padding: 16px 40px;
    background: #fff;
    border: 1.5px solid #EB2A2A;
    border-radius: 999px;
    color: #EB2A2A;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-decoration: none;
    transition: background 0.25s ease, color 0.25s ease, transform 0.25s ease;
}
body.page-price-comparison .mel-pcm-conc__link:hover {
    background: #EB2A2A;
    color: #fff;
    transform: translateY(-2px);
}
body.page-price-comparison .mel-pcm-conc__link-arrow {
    font-family: 'Futura', 'Futura PT', sans-serif;
    font-weight: 700;
    transition: transform 0.25s ease;
}
body.page-price-comparison .mel-pcm-conc__link:hover .mel-pcm-conc__link-arrow {
    transform: translateX(4px);
}

/* ---------- SP版調整（max-width: 768px） ---------- */
@media (max-width: 768px) {
    /* FV */
    body.page-price-comparison .mel-pcm-fv {
        padding-bottom: 60px;
    }
    body.page-price-comparison .mel-pcm-fv__img-wrap {
        height: 44vh;
        min-height: 320px;
    }
    body.page-price-comparison .mel-pcm-card {
        margin: -200px 16px 0;
        padding: 44px 22px 36px;
        border-radius: 8px;
    }
    body.page-price-comparison .mel-pcm-card__head {
        margin-bottom: 24px;
        padding-bottom: 22px;
    }
    body.page-price-comparison .mel-pcm-card__eyebrow-en { font-size: 12px; }
    body.page-price-comparison .mel-pcm-card__eyebrow-jp { font-size: 13px; margin-bottom: 16px; }
    body.page-price-comparison .mel-pcm-card__page-ttl { font-size: 26px; line-height: 1.5; margin-bottom: 16px; }
    body.page-price-comparison .mel-pcm-card__update { font-size: 10.5px; padding: 3px 12px; }
    body.page-price-comparison .mel-pcm-card__lead { font-size: 14px; line-height: 2.0; }
    body.page-price-comparison .mel-pcm-card__pc-br { display: none; }

    /* 共通見出し縮小 */
    body.page-price-comparison .mel-pcm-avg__ttl,
    body.page-price-comparison .mel-pcm-parts__ttl,
    body.page-price-comparison .mel-pcm-type__ttl,
    body.page-price-comparison .mel-pcm-sim__ttl,
    body.page-price-comparison .mel-pcm-check__ttl,
    body.page-price-comparison .mel-pcm-conc__ttl {
        font-size: 24px;
        line-height: 1.55;
    }
    body.page-price-comparison .mel-pcm-avg__lead,
    body.page-price-comparison .mel-pcm-parts__lead,
    body.page-price-comparison .mel-pcm-type__lead,
    body.page-price-comparison .mel-pcm-sim__lead,
    body.page-price-comparison .mel-pcm-check__lead,
    body.page-price-comparison .mel-pcm-conc__lead {
        font-size: 14px;
        line-height: 1.9;
    }
    body.page-price-comparison .mel-pcm-avg__pc-br,
    body.page-price-comparison .mel-pcm-type__pc-br,
    body.page-price-comparison .mel-pcm-sim__pc-br,
    body.page-price-comparison .mel-pcm-check__pc-br,
    body.page-price-comparison .mel-pcm-conc__pc-br {
        display: none;
    }

    /* TOC */
    body.page-price-comparison .mel-pcm-toc {
        padding: 60px 16px 30px;
    }
    body.page-price-comparison .mel-pcm-toc__inner {
        padding: 30px 22px 26px;
    }
    body.page-price-comparison .mel-pcm-toc__ttl { font-size: 20px; margin-bottom: 16px; }
    body.page-price-comparison .mel-pcm-toc__list a { gap: 14px; padding: 12px 4px; }
    body.page-price-comparison .mel-pcm-toc__num { font-size: 15px; min-width: 24px; }
    body.page-price-comparison .mel-pcm-toc__txt { font-size: 13.5px; line-height: 1.6; }

    /* Chapter 01 相場 */
    body.page-price-comparison .mel-pcm-avg { padding: 70px 16px; }
    body.page-price-comparison .mel-pcm-avg__head { margin-bottom: 32px; }
    body.page-price-comparison .mel-pcm-avg__row {
        grid-template-columns: 110px 1fr;
        padding: 16px 20px;
    }
    body.page-price-comparison .mel-pcm-avg__row--head { padding: 12px 20px; }
    body.page-price-comparison .mel-pcm-avg__cell--label { font-size: 13px; }
    body.page-price-comparison .mel-pcm-avg__row--head .mel-pcm-avg__cell { font-size: 11px; letter-spacing: 0.14em; }
    body.page-price-comparison .mel-pcm-avg__cell--range { font-size: 16px; }
    body.page-price-comparison .mel-pcm-avg__cell--range small { font-size: 11px; margin-left: 2px; }
    body.page-price-comparison .mel-pcm-avg__cell--em { font-size: 18px; }
    body.page-price-comparison .mel-pcm-avg__note { font-size: 10.5px; text-align: left; }

    /* Chapter 02 内訳 */
    body.page-price-comparison .mel-pcm-parts { padding: 70px 16px; }
    body.page-price-comparison .mel-pcm-parts__head { margin-bottom: 36px; }
    body.page-price-comparison .mel-pcm-parts__list { grid-template-columns: 1fr; gap: 20px; }
    body.page-price-comparison .mel-pcm-parts__item { padding: 30px 24px 26px; }
    body.page-price-comparison .mel-pcm-parts__num { font-size: 36px; }
    body.page-price-comparison .mel-pcm-parts__item-ttl { font-size: 18px; }
    body.page-price-comparison .mel-pcm-parts__range { font-size: 20px; padding-bottom: 12px; margin-bottom: 14px; }
    body.page-price-comparison .mel-pcm-parts__range small { font-size: 12px; }
    body.page-price-comparison .mel-pcm-parts__item-txt { font-size: 13.5px; line-height: 1.9; }

    /* Chapter 03 タイプ */
    body.page-price-comparison .mel-pcm-type { padding: 70px 16px; }
    body.page-price-comparison .mel-pcm-type__head { margin-bottom: 36px; }
    body.page-price-comparison .mel-pcm-type__grid { grid-template-columns: 1fr; gap: 22px; }
    body.page-price-comparison .mel-pcm-type__card { padding: 32px 24px 28px; max-width: 400px; margin: 0 auto; width: 100%; }
    body.page-price-comparison .mel-pcm-type__card--em { margin-top: 12px; }
    body.page-price-comparison .mel-pcm-type__card-ttl { font-size: 17px; min-height: auto; margin-bottom: 14px; }
    body.page-price-comparison .mel-pcm-type__card-total { padding: 14px 0; margin-bottom: 14px; }
    body.page-price-comparison .mel-pcm-type__card-total-num { font-size: 26px; }
    body.page-price-comparison .mel-pcm-type__card-total-num small { font-size: 12px; }
    body.page-price-comparison .mel-pcm-type__card-list li { font-size: 13px; }

    /* Chapter 04 シミュレーション */
    body.page-price-comparison .mel-pcm-sim { padding: 70px 16px; }
    body.page-price-comparison .mel-pcm-sim__head { margin-bottom: 36px; }
    body.page-price-comparison .mel-pcm-sim__grid { grid-template-columns: 1fr; gap: 22px; }
    body.page-price-comparison .mel-pcm-sim__card { padding: 30px 22px 26px; max-width: 400px; margin: 0 auto; width: 100%; }
    body.page-price-comparison .mel-pcm-sim__card--em { margin-top: 12px; }
    body.page-price-comparison .mel-pcm-sim__card-ttl { font-size: 17px; min-height: auto; margin-bottom: 18px; }
    body.page-price-comparison .mel-pcm-sim__card-breakdown li { font-size: 13px; padding-bottom: 8px; }
    body.page-price-comparison .mel-pcm-sim__card-breakdown li > span:last-child { font-size: 14px; }
    body.page-price-comparison .mel-pcm-sim__card-breakdown li > span:last-child small { font-size: 10px; }
    body.page-price-comparison .mel-pcm-sim__card-sum-num { font-size: 26px; }
    body.page-price-comparison .mel-pcm-sim__card--em .mel-pcm-sim__card-sum-num { font-size: 32px; }
    body.page-price-comparison .mel-pcm-sim__foot-em { font-size: 16px; margin-top: 36px; }
    body.page-price-comparison .mel-pcm-sim__foot-em-num { font-size: 28px; }
    body.page-price-comparison .mel-pcm-sim__foot-em-num small { font-size: 14px; }
    body.page-price-comparison .mel-pcm-sim__note { font-size: 10.5px; text-align: left; }

    /* Chapter 05 チェックポイント */
    body.page-price-comparison .mel-pcm-check { padding: 70px 16px; }
    body.page-price-comparison .mel-pcm-check__head { margin-bottom: 36px; }
    body.page-price-comparison .mel-pcm-check__grid { grid-template-columns: 1fr; gap: 18px; }
    body.page-price-comparison .mel-pcm-check__item { padding: 28px 22px 24px; }
    body.page-price-comparison .mel-pcm-check__num { font-size: 30px; }
    body.page-price-comparison .mel-pcm-check__item-ttl { font-size: 15.5px; padding-bottom: 10px; margin-bottom: 10px; }
    body.page-price-comparison .mel-pcm-check__item-txt { font-size: 13px; line-height: 1.9; }
    body.page-price-comparison .mel-pcm-check__sp-br { display: inline; }

    /* Chapter 06 結論 */
    body.page-price-comparison .mel-pcm-conc { padding: 70px 16px; }
    body.page-price-comparison .mel-pcm-conc__head { margin-bottom: 30px; }
    body.page-price-comparison .mel-pcm-conc__box { padding: 34px 22px 30px; border-radius: 10px; }
    body.page-price-comparison .mel-pcm-conc__box-head { margin-bottom: 24px; }
    body.page-price-comparison .mel-pcm-conc__box-badge { font-size: 11px; padding: 5px 14px; margin-bottom: 14px; }
    body.page-price-comparison .mel-pcm-conc__box-ttl { font-size: 18px; line-height: 1.7; }
    body.page-price-comparison .mel-pcm-conc__box-br { display: none; }
    body.page-price-comparison .mel-pcm-conc__box-stats {
        grid-template-columns: repeat(2, 1fr);
        gap: 16px 12px;
        padding: 22px 0;
        margin-bottom: 20px;
    }
    body.page-price-comparison .mel-pcm-conc__stat-lbl { font-size: 11px; }
    body.page-price-comparison .mel-pcm-conc__stat-num { font-size: 18px; }
    body.page-price-comparison .mel-pcm-conc__stat-num small { font-size: 10px; }
    body.page-price-comparison .mel-pcm-conc__box-total-num { font-size: 34px; }
    body.page-price-comparison .mel-pcm-conc__box-total-num small { font-size: 14px; }
    body.page-price-comparison .mel-pcm-conc__link { padding: 14px 28px; font-size: 13px; }
    body.page-price-comparison .mel-pcm-conc__sp-br { display: inline; }
}

/* =========================================================
   結婚相談所料金比較ページ 追加：Chapter 02 30社料金一覧
   ========================================================= */

body.page-price-comparison .mel-pcm-list {
    padding: 110px 20px;
    background: #fff;
    font-family: 'Zen Kaku Gothic New', 'Zen Maru Gothic', 'Noto Sans JP', sans-serif;
    color: #1a1a1a;
}
body.page-price-comparison .mel-pcm-list * { box-sizing: border-box; }
body.page-price-comparison .mel-pcm-list__inner {
    max-width: 1200px;
    margin: 0 auto;
}

/* head */
body.page-price-comparison .mel-pcm-list__head {
    text-align: center;
    margin-bottom: 50px;
}
body.page-price-comparison .mel-pcm-list__label-group {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 22px;
    justify-content: center;
}
body.page-price-comparison .mel-pcm-list__label-en {
    font-family: 'Futura', 'Futura PT', 'Century Gothic', 'Helvetica Neue', sans-serif;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.24em;
    color: #EB2A2A;
    text-transform: uppercase;
}
body.page-price-comparison .mel-pcm-list__label-line {
    display: inline-block;
    width: 42px;
    height: 1px;
    background: #EB2A2A;
}
body.page-price-comparison .mel-pcm-list__ttl {
    font-family: 'Zen Kaku Gothic New', 'Zen Maru Gothic', sans-serif;
    font-size: 34px;
    font-weight: 700;
    color: #1a1a1a;
    letter-spacing: 0.04em;
    line-height: 1.5;
    margin: 0 0 20px;
}
body.page-price-comparison .mel-pcm-list__lead {
    font-size: 15.5px;
    font-weight: 500;
    color: #555;
    line-height: 2.0;
    margin: 0;
}

/* table wrap（横スクロール対応） */
body.page-price-comparison .mel-pcm-list__table-wrap {
    background: #fff;
    border: 1px solid #F5E8E8;
    border-radius: 10px;
    box-shadow: 0 22px 60px rgba(0, 0, 0, 0.06);
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}
body.page-price-comparison .mel-pcm-list__table {
    min-width: 960px;
}
body.page-price-comparison .mel-pcm-list__row {
    display: grid;
    grid-template-columns: 200px 120px 120px 120px 1fr;
    gap: 16px;
    align-items: center;
    padding: 14px 24px;
    border-bottom: 1px dashed #F5C8C8;
    transition: background 0.2s ease;
}
body.page-price-comparison .mel-pcm-list__row:last-child {
    border-bottom: none;
}
body.page-price-comparison .mel-pcm-list__row:not(.mel-pcm-list__row--head):not(.mel-pcm-list__row--em):hover {
    background: #FFF9F7;
}
body.page-price-comparison .mel-pcm-list__row--head {
    background: #FFEBEE;
    border-bottom: 1px solid #F5C8C8;
    padding: 14px 24px;
}
body.page-price-comparison .mel-pcm-list__row--head .mel-pcm-list__cell {
    font-family: 'Futura', 'Futura PT', 'Century Gothic', sans-serif;
    font-size: 12px;
    font-weight: 700;
    color: #888;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}
body.page-price-comparison .mel-pcm-list__row--head .mel-pcm-list__cell--name {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    text-transform: none;
    letter-spacing: 0.1em;
    font-size: 13px;
}
body.page-price-comparison .mel-pcm-list__cell {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    color: #1a1a1a;
}
body.page-price-comparison .mel-pcm-list__cell--name {
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.02em;
    line-height: 1.5;
}
body.page-price-comparison .mel-pcm-list__cell--fee {
    font-family: 'Noto Serif JP', 'Zen Kaku Gothic New', serif;
    font-size: 15px;
    font-weight: 700;
    color: #1a1a1a;
    letter-spacing: 0.02em;
    white-space: nowrap;
}
body.page-price-comparison .mel-pcm-list__cell--fee small {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 11px;
    font-weight: 700;
    color: #666;
    margin-left: 2px;
}
body.page-price-comparison .mel-pcm-list__cell--none {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 15px;
    font-weight: 500;
    color: #999;
}
body.page-price-comparison .mel-pcm-list__cell--note {
    font-size: 12px;
    font-weight: 400;
    color: #666;
    line-height: 1.7;
}

/* メルティア行（赤ハイライト） */
body.page-price-comparison .mel-pcm-list__row--em {
    background: #FFF0F0;
    border-top: 2px solid #EB2A2A;
    border-bottom: 2px solid #EB2A2A;
    padding: 18px 24px;
    position: relative;
}
body.page-price-comparison .mel-pcm-list__row--em .mel-pcm-list__cell--name {
    color: #EB2A2A;
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    font-size: 15px;
}
body.page-price-comparison .mel-pcm-list__row--em .mel-pcm-list__cell--fee {
    color: #EB2A2A;
    font-size: 17px;
}
body.page-price-comparison .mel-pcm-list__row--em .mel-pcm-list__cell--fee small {
    color: #EB2A2A;
}
body.page-price-comparison .mel-pcm-list__row--em .mel-pcm-list__cell--note {
    color: #444;
    font-weight: 500;
}
body.page-price-comparison .mel-pcm-list__self-badge {
    display: inline-block;
    background: #EB2A2A;
    color: #fff;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 0.14em;
    padding: 3px 10px;
    border-radius: 999px;
    line-height: 1;
}

/* footer */
body.page-price-comparison .mel-pcm-list__scroll-hint {
    display: none;
    text-align: center;
    font-size: 11px;
    color: #999;
    letter-spacing: 0.06em;
    margin: 14px 0 0;
}
body.page-price-comparison .mel-pcm-list__note {
    font-size: 11.5px;
    color: #888;
    line-height: 1.7;
    margin: 22px 0 0;
    text-align: right;
}

/* SP調整 */
@media (max-width: 768px) {
    body.page-price-comparison .mel-pcm-list { padding: 70px 16px; }
    body.page-price-comparison .mel-pcm-list__head { margin-bottom: 30px; }
    body.page-price-comparison .mel-pcm-list__ttl { font-size: 22px; line-height: 1.55; }
    body.page-price-comparison .mel-pcm-list__lead { font-size: 13.5px; line-height: 1.9; }
    body.page-price-comparison .mel-pcm-list__pc-br { display: none; }

    /* テーブルは横スクロール、幅は保持 */
    body.page-price-comparison .mel-pcm-list__table {
        min-width: 780px;
    }
    body.page-price-comparison .mel-pcm-list__row {
        grid-template-columns: 150px 100px 100px 100px 1fr;
        gap: 10px;
        padding: 12px 16px;
    }
    body.page-price-comparison .mel-pcm-list__row--head { padding: 12px 16px; }
    body.page-price-comparison .mel-pcm-list__cell--name { font-size: 12.5px; }
    body.page-price-comparison .mel-pcm-list__row--head .mel-pcm-list__cell { font-size: 10.5px; letter-spacing: 0.12em; }
    body.page-price-comparison .mel-pcm-list__row--head .mel-pcm-list__cell--name { font-size: 12px; }
    body.page-price-comparison .mel-pcm-list__cell--fee { font-size: 13px; }
    body.page-price-comparison .mel-pcm-list__cell--fee small { font-size: 10px; }
    body.page-price-comparison .mel-pcm-list__cell--none { font-size: 13px; }
    body.page-price-comparison .mel-pcm-list__cell--note { font-size: 10.5px; line-height: 1.65; }
    body.page-price-comparison .mel-pcm-list__row--em { padding: 14px 16px; }
    body.page-price-comparison .mel-pcm-list__row--em .mel-pcm-list__cell--name { font-size: 13px; }
    body.page-price-comparison .mel-pcm-list__row--em .mel-pcm-list__cell--fee { font-size: 14.5px; }
    body.page-price-comparison .mel-pcm-list__self-badge { font-size: 9px; padding: 2px 7px; }

    body.page-price-comparison .mel-pcm-list__scroll-hint { display: block; }
    body.page-price-comparison .mel-pcm-list__note { font-size: 10.5px; text-align: left; }
}

/* =========================================================
   結婚相談所料金比較ページ 大改訂（2026-07-16 なおた様指示）
   - TOCをFVカード内に統合
   - Chapter 01 相場テーブル：直角・赤枠・項目名列にピンク背景・縦線
   - Chapter 02 27社リスト：メルティア先頭・直角・赤枠・縦線あり
   - Chapter 03 内訳表：4列（項目/相場/メルティア/特徴）・メルティア列強調
   - Chapter 04 は mel-prc-diff（price.html流用、body.page-price add）
   - タイプ別/シミュ/チェック/結論 セクション削除
   ========================================================= */

/* ---- FVカード内目次（新規） ---- */
body.page-price-comparison .mel-pcm-card {
    padding-bottom: 56px;
}
body.page-price-comparison .mel-pcm-card__toc {
    max-width: 720px;
    margin: 44px auto 0;
    padding: 30px 34px 26px;
    background: #FFF9F7;
    border: 1px solid #F5E8E8;
    border-radius: 0;
}
body.page-price-comparison .mel-pcm-card__toc-head {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 14px;
    padding-bottom: 12px;
    border-bottom: 1px dashed #F5C8C8;
}
body.page-price-comparison .mel-pcm-card__toc-label-en {
    font-family: 'Futura', 'Futura PT', 'Century Gothic', sans-serif;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.24em;
    color: #EB2A2A;
    text-transform: uppercase;
}
body.page-price-comparison .mel-pcm-card__toc-label-line {
    display: inline-block;
    width: 32px;
    height: 1px;
    background: #EB2A2A;
}
body.page-price-comparison .mel-pcm-card__toc-ttl {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 15px;
    font-weight: 700;
    color: #1a1a1a;
    letter-spacing: 0.06em;
}
body.page-price-comparison .mel-pcm-card__toc-list {
    list-style: none;
    padding: 0;
    margin: 0;
}
body.page-price-comparison .mel-pcm-card__toc-list li {
    border-bottom: 1px dashed #F5C8C8;
}
body.page-price-comparison .mel-pcm-card__toc-list li:last-child {
    border-bottom: none;
}
body.page-price-comparison .mel-pcm-card__toc-list a {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 11px 4px;
    text-decoration: none;
    color: #1a1a1a;
    transition: color 0.2s ease, transform 0.2s ease;
}
body.page-price-comparison .mel-pcm-card__toc-list a:hover {
    color: #EB2A2A;
    transform: translateX(4px);
}
body.page-price-comparison .mel-pcm-card__toc-num {
    font-family: 'Futura', 'Futura PT', 'Century Gothic', sans-serif;
    font-size: 15px;
    font-weight: 700;
    color: #EB2A2A;
    letter-spacing: 0.06em;
    min-width: 24px;
}
body.page-price-comparison .mel-pcm-card__toc-txt {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.04em;
}

/* ---- Chapter 01 相場テーブル 大改訂（直角・赤枠・項目背景・縦線） ---- */
body.page-price-comparison .mel-pcm-avg__table {
    background: #fff;
    border-radius: 0;
    border: 2px solid #EB2A2A;
    box-shadow: none;
    overflow: visible;
}
body.page-price-comparison .mel-pcm-avg__row {
    display: grid;
    grid-template-columns: 260px 1fr;
    padding: 0;
    border-bottom: 1px solid #F5C8C8;
    background: transparent;
    align-items: stretch;
}
body.page-price-comparison .mel-pcm-avg__row:last-child {
    border-bottom: none;
}
body.page-price-comparison .mel-pcm-avg__cell {
    padding: 20px 32px;
    border-right: 1px solid #F5C8C8;
    display: flex;
    align-items: center;
}
body.page-price-comparison .mel-pcm-avg__cell:last-child {
    border-right: none;
}
body.page-price-comparison .mel-pcm-avg__row--head {
    background: #EB2A2A;
    padding: 0;
    border-bottom: none;
}
body.page-price-comparison .mel-pcm-avg__row--head .mel-pcm-avg__cell {
    color: #fff;
    padding: 14px 32px;
    justify-content: center;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: none;
    border-right: 1px solid rgba(255,255,255,0.3);
}
body.page-price-comparison .mel-pcm-avg__row--head .mel-pcm-avg__cell:last-child {
    border-right: none;
}
body.page-price-comparison .mel-pcm-avg__row:not(.mel-pcm-avg__row--head) .mel-pcm-avg__cell--label {
    background: #FFEBEE;
    color: #1a1a1a;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 0.04em;
    justify-content: center;
}
body.page-price-comparison .mel-pcm-avg__row:not(.mel-pcm-avg__row--head) .mel-pcm-avg__cell--range {
    background: #fff;
    font-family: 'Noto Serif JP', 'Zen Kaku Gothic New', serif;
    font-size: 22px;
    font-weight: 700;
    color: #1a1a1a;
}
body.page-price-comparison .mel-pcm-avg__row:not(.mel-pcm-avg__row--head) .mel-pcm-avg__cell--range small {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 13px;
    font-weight: 700;
    color: #666;
    margin-left: 4px;
}
body.page-price-comparison .mel-pcm-avg__row--sum {
    background: transparent;
    border-top: 2px solid #EB2A2A;
}
body.page-price-comparison .mel-pcm-avg__row--sum .mel-pcm-avg__cell--label {
    background: #FFEBEE;
    color: #EB2A2A !important;
    font-weight: 800;
    font-size: 16px;
}
body.page-price-comparison .mel-pcm-avg__row--sum .mel-pcm-avg__cell--range {
    background: #FFF9F7;
}
body.page-price-comparison .mel-pcm-avg__cell--em {
    color: #EB2A2A !important;
    font-size: 26px !important;
}
body.page-price-comparison .mel-pcm-avg__cell--em small {
    color: #EB2A2A !important;
}

/* ---- Chapter 02 27社リスト 大改訂（直角・赤枠・縦線あり・シャープ） ---- */
body.page-price-comparison .mel-pcm-list__table-wrap {
    background: #fff;
    border: 2px solid #EB2A2A;
    border-radius: 0;
    box-shadow: none;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}
body.page-price-comparison .mel-pcm-list__table {
    min-width: 980px;
}
body.page-price-comparison .mel-pcm-list__row {
    display: grid;
    grid-template-columns: 200px 130px 130px 130px 1fr;
    gap: 0;
    padding: 0;
    border-bottom: 1px solid #F5C8C8;
    background: transparent;
    align-items: stretch;
    transition: none;
}
body.page-price-comparison .mel-pcm-list__row:last-child {
    border-bottom: none;
}
body.page-price-comparison .mel-pcm-list__cell {
    padding: 12px 16px;
    border-right: 1px solid #F5C8C8;
    display: flex;
    align-items: center;
    line-height: 1.5;
}
body.page-price-comparison .mel-pcm-list__cell:last-child {
    border-right: none;
}
body.page-price-comparison .mel-pcm-list__row--head {
    background: #EB2A2A;
    padding: 0;
    border-bottom: none;
}
body.page-price-comparison .mel-pcm-list__row--head .mel-pcm-list__cell {
    color: #fff;
    padding: 14px 16px;
    justify-content: center;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: none;
    border-right: 1px solid rgba(255,255,255,0.3);
}
body.page-price-comparison .mel-pcm-list__row--head .mel-pcm-list__cell:last-child {
    border-right: none;
}
body.page-price-comparison .mel-pcm-list__row--head .mel-pcm-list__cell--name {
    justify-content: flex-start;
    font-family: 'Zen Kaku Gothic New', sans-serif;
}
body.page-price-comparison .mel-pcm-list__row:not(.mel-pcm-list__row--head):not(.mel-pcm-list__row--em):hover {
    background: transparent;
}
body.page-price-comparison .mel-pcm-list__row:not(.mel-pcm-list__row--head):not(.mel-pcm-list__row--em) .mel-pcm-list__cell--name {
    background: #FFF9F7;
    font-weight: 700;
}
body.page-price-comparison .mel-pcm-list__cell--fee {
    justify-content: flex-end;
}
body.page-price-comparison .mel-pcm-list__row--em {
    background: #FFEBEE;
    border-top: 2px solid #EB2A2A;
    border-bottom: 2px solid #EB2A2A;
    padding: 0;
}
body.page-price-comparison .mel-pcm-list__row--em .mel-pcm-list__cell {
    padding: 16px 16px;
    border-right: 1px solid #F5C8C8;
}
body.page-price-comparison .mel-pcm-list__row--em .mel-pcm-list__cell:last-child {
    border-right: none;
}
body.page-price-comparison .mel-pcm-list__row--em .mel-pcm-list__cell--name {
    background: #FFEBEE;
    color: #EB2A2A;
    font-size: 15px;
    font-weight: 800;
}

/* ---- Chapter 03 内訳表 大改訂（4列テーブル・メルティア列強調） ---- */
body.page-price-comparison .mel-pcm-parts {
    padding: 110px 20px;
    background: #fff;
}
body.page-price-comparison .mel-pcm-parts__inner {
    max-width: 1200px;
    margin: 0 auto;
}
body.page-price-comparison .mel-pcm-parts__head {
    text-align: left;
    margin-bottom: 60px;
    max-width: 900px;
}
body.page-price-comparison .mel-pcm-parts__head .mel-pcm-parts__label-group {
    justify-content: flex-start;
}
body.page-price-comparison .mel-pcm-parts__table-wrap {
    background: #fff;
    border: 2px solid #EB2A2A;
    border-radius: 0;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}
body.page-price-comparison .mel-pcm-parts__table {
    min-width: 900px;
}
body.page-price-comparison .mel-pcm-parts__row {
    display: grid;
    grid-template-columns: 130px 240px 200px 1fr;
    padding: 0;
    border-bottom: 1px solid #F5C8C8;
    align-items: stretch;
}
body.page-price-comparison .mel-pcm-parts__row:last-child {
    border-bottom: none;
}
body.page-price-comparison .mel-pcm-parts__cell {
    padding: 22px 22px;
    border-right: 1px solid #F5C8C8;
    display: flex;
    align-items: center;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    color: #1a1a1a;
    box-sizing: border-box;
}
body.page-price-comparison .mel-pcm-parts__cell:last-child {
    border-right: none;
}
body.page-price-comparison .mel-pcm-parts__row--head {
    background: #EB2A2A;
    padding: 0;
    border-bottom: none;
}
body.page-price-comparison .mel-pcm-parts__row--head .mel-pcm-parts__cell {
    color: #fff;
    padding: 14px 22px;
    justify-content: center;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.14em;
    border-right: 1px solid rgba(255,255,255,0.3);
}
body.page-price-comparison .mel-pcm-parts__row--head .mel-pcm-parts__cell:last-child {
    border-right: none;
}
body.page-price-comparison .mel-pcm-parts__row:not(.mel-pcm-parts__row--head) .mel-pcm-parts__cell--label {
    background: #FFEBEE;
    justify-content: center;
    font-size: 16px;
    font-weight: 700;
    letter-spacing: 0.04em;
    color: #1a1a1a;
}
body.page-price-comparison .mel-pcm-parts__cell--range {
    font-family: 'Noto Serif JP', 'Zen Kaku Gothic New', serif;
    font-size: 19px;
    font-weight: 700;
    color: #1a1a1a;
    letter-spacing: 0.02em;
    justify-content: center;
}
body.page-price-comparison .mel-pcm-parts__cell--range small {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 12px;
    font-weight: 700;
    color: #666;
    margin-left: 3px;
}
body.page-price-comparison .mel-pcm-parts__row:not(.mel-pcm-parts__row--head) .mel-pcm-parts__cell--mel {
    background: #FFF9F7;
    font-family: 'Noto Serif JP', 'Zen Kaku Gothic New', serif;
    font-size: 26px;
    font-weight: 800;
    color: #EB2A2A;
    justify-content: center;
    letter-spacing: 0.02em;
}
body.page-price-comparison .mel-pcm-parts__row:not(.mel-pcm-parts__row--head) .mel-pcm-parts__cell--mel small {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 13px;
    font-weight: 700;
    color: #EB2A2A;
    margin-left: 3px;
}
body.page-price-comparison .mel-pcm-parts__cell--desc {
    font-size: 13.5px;
    font-weight: 400;
    color: #555;
    line-height: 1.8;
}

/* ---- SP調整 ---- */
@media (max-width: 768px) {
    /* FVカード内目次 */
    body.page-price-comparison .mel-pcm-card {
        padding-bottom: 40px;
    }
    body.page-price-comparison .mel-pcm-card__toc {
        margin-top: 26px;
        padding: 20px 18px 16px;
    }
    body.page-price-comparison .mel-pcm-card__toc-ttl { font-size: 14px; }
    body.page-price-comparison .mel-pcm-card__toc-list a { gap: 12px; padding: 10px 4px; }
    body.page-price-comparison .mel-pcm-card__toc-num { font-size: 13px; min-width: 22px; }
    body.page-price-comparison .mel-pcm-card__toc-txt { font-size: 12.5px; line-height: 1.55; }

    /* Chapter 01 相場テーブル */
    body.page-price-comparison .mel-pcm-avg__row { grid-template-columns: 120px 1fr; }
    body.page-price-comparison .mel-pcm-avg__cell { padding: 14px 14px; }
    body.page-price-comparison .mel-pcm-avg__row--head .mel-pcm-avg__cell { padding: 10px 14px; font-size: 11px; letter-spacing: 0.1em; }
    body.page-price-comparison .mel-pcm-avg__row:not(.mel-pcm-avg__row--head) .mel-pcm-avg__cell--label { font-size: 13px; }
    body.page-price-comparison .mel-pcm-avg__row:not(.mel-pcm-avg__row--head) .mel-pcm-avg__cell--range { font-size: 16px; }
    body.page-price-comparison .mel-pcm-avg__row:not(.mel-pcm-avg__row--head) .mel-pcm-avg__cell--range small { font-size: 11px; margin-left: 2px; }
    body.page-price-comparison .mel-pcm-avg__row--sum .mel-pcm-avg__cell--label { font-size: 13px; }
    body.page-price-comparison .mel-pcm-avg__cell--em { font-size: 18px !important; }

    /* Chapter 02 27社リスト */
    body.page-price-comparison .mel-pcm-list__table { min-width: 780px; }
    body.page-price-comparison .mel-pcm-list__row { grid-template-columns: 150px 100px 100px 100px 1fr; }
    body.page-price-comparison .mel-pcm-list__cell { padding: 10px 10px; font-size: 11.5px; }
    body.page-price-comparison .mel-pcm-list__row--head .mel-pcm-list__cell { padding: 10px 10px; font-size: 10.5px; letter-spacing: 0.08em; }
    body.page-price-comparison .mel-pcm-list__row--head .mel-pcm-list__cell--name { font-size: 11.5px; }
    body.page-price-comparison .mel-pcm-list__row--em .mel-pcm-list__cell { padding: 12px 10px; }
    body.page-price-comparison .mel-pcm-list__row--em .mel-pcm-list__cell--name { font-size: 13px; }

    /* Chapter 03 内訳表 */
    body.page-price-comparison .mel-pcm-parts { padding: 70px 16px; }
    body.page-price-comparison .mel-pcm-parts__head { margin-bottom: 30px; }
    body.page-price-comparison .mel-pcm-parts__table { min-width: 720px; }
    body.page-price-comparison .mel-pcm-parts__row { grid-template-columns: 100px 170px 140px 1fr; }
    body.page-price-comparison .mel-pcm-parts__cell { padding: 14px 12px; }
    body.page-price-comparison .mel-pcm-parts__row--head .mel-pcm-parts__cell { padding: 10px 12px; font-size: 11px; letter-spacing: 0.1em; }
    body.page-price-comparison .mel-pcm-parts__row:not(.mel-pcm-parts__row--head) .mel-pcm-parts__cell--label { font-size: 13.5px; }
    body.page-price-comparison .mel-pcm-parts__cell--range { font-size: 15px; }
    body.page-price-comparison .mel-pcm-parts__cell--range small { font-size: 10.5px; }
    body.page-price-comparison .mel-pcm-parts__cell--mel { font-size: 20px; }
    body.page-price-comparison .mel-pcm-parts__cell--mel small { font-size: 11px; }
    body.page-price-comparison .mel-pcm-parts__cell--desc { font-size: 12px; line-height: 1.75; }
}

/* =========================================================
   SP版 表の見せ方 追加調整（2026-07-16 なおた様指示）
   - H1: SPで「結婚相談所の料金を(改行)徹底比較」
   - Chapter 02 27社リスト → PC版の表 + 横スクロール + 相談所名sticky固定
   - Chapter 03 内訳表 → 縦カード維持、row--head を確実に非表示
   ========================================================= */

/* H1のSP改行制御（PC非表示・SP表示） */
body.page-price-comparison .mel-pcm-card__sp-br {
    display: none;
}

@media (max-width: 768px) {
    /* head 左寄せは PC共通で効くのでSPも継承。max-widthを解除 */
    body.page-price-comparison .mel-pcm-avg__head,
    body.page-price-comparison .mel-pcm-parts__head {
        max-width: none;
    }

    /* H1 SP改行「〜の料金を(改行)徹底比較」 */
    body.page-price-comparison .mel-pcm-card__sp-br {
        display: inline;
    }

    /* -------- Chapter 02 27社リスト SP：PC版の表 + 横スクロール + 相談所名sticky -------- */
    body.page-price-comparison .mel-pcm-list__table-wrap {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        border: 2px solid #EB2A2A;
        border-radius: 0;
        background: #fff;
        box-shadow: none;
    }
    body.page-price-comparison .mel-pcm-list__table {
        min-width: 700px;
        display: block;
    }
    body.page-price-comparison .mel-pcm-list__row {
        display: grid !important;
        grid-template-columns: 130px 90px 90px 90px 260px;
        gap: 0;
        padding: 0;
        margin: 0;
        background: #fff;
        border: none;
        border-bottom: 1px solid #F5C8C8;
        border-radius: 0;
    }
    body.page-price-comparison .mel-pcm-list__row:last-child {
        border-bottom: none;
    }
    body.page-price-comparison .mel-pcm-list__cell {
        display: flex !important;
        align-items: center;
        justify-content: flex-end;
        padding: 10px 10px !important;
        border-right: 1px solid #F5C8C8 !important;
        border-top: none;
        margin: 0;
        line-height: 1.5;
        font-size: 11.5px !important;
        color: #1a1a1a;
    }
    body.page-price-comparison .mel-pcm-list__cell:last-child {
        border-right: none !important;
    }

    /* 相談所名列を sticky で左固定 */
    body.page-price-comparison .mel-pcm-list__cell--name {
        position: sticky !important;
        left: 0;
        z-index: 2;
        justify-content: flex-start;
        font-family: 'Zen Kaku Gothic New', sans-serif;
        font-size: 12px !important;
        font-weight: 700 !important;
        color: #1a1a1a !important;
        padding: 10px 10px !important;
        margin: 0;
        border-bottom: none !important;
    }
    body.page-price-comparison .mel-pcm-list__row:not(.mel-pcm-list__row--head):not(.mel-pcm-list__row--em) .mel-pcm-list__cell--name {
        background: #FFF9F7 !important;
    }

    /* ヘッダ行 */
    body.page-price-comparison .mel-pcm-list__row--head {
        display: grid !important;
        background: #EB2A2A;
    }
    body.page-price-comparison .mel-pcm-list__row--head .mel-pcm-list__cell {
        background: #EB2A2A !important;
        color: #fff !important;
        justify-content: center;
        padding: 10px 8px !important;
        font-size: 10.5px !important;
        font-weight: 700;
        letter-spacing: 0.08em;
        border-right: 1px solid rgba(255,255,255,0.3) !important;
    }
    body.page-price-comparison .mel-pcm-list__row--head .mel-pcm-list__cell:last-child {
        border-right: none !important;
    }
    body.page-price-comparison .mel-pcm-list__row--head .mel-pcm-list__cell--name {
        justify-content: flex-start;
        color: #fff !important;
    }

    /* 料金列（fee） */
    body.page-price-comparison .mel-pcm-list__cell--fee {
        font-family: 'Noto Serif JP', 'Zen Kaku Gothic New', serif;
        font-size: 12.5px !important;
        font-weight: 700;
        color: #1a1a1a;
        justify-content: flex-end !important;
    }
    body.page-price-comparison .mel-pcm-list__cell--fee::before {
        content: none !important;
    }
    body.page-price-comparison .mel-pcm-list__cell--fee small {
        font-family: 'Zen Kaku Gothic New', sans-serif;
        font-size: 9.5px !important;
        color: #666;
        margin-left: 2px;
        font-weight: 700;
    }

    /* 備考列 */
    body.page-price-comparison .mel-pcm-list__cell--note {
        justify-content: flex-start !important;
        font-size: 10.5px !important;
        color: #666 !important;
        line-height: 1.55 !important;
        border-top: none !important;
        margin: 0 !important;
        padding: 10px 10px !important;
    }

    /* メルティア行 */
    body.page-price-comparison .mel-pcm-list__row--em {
        display: grid !important;
        background: #FFEBEE;
        border: none;
        border-top: 2px solid #EB2A2A;
        border-bottom: 2px solid #EB2A2A;
        padding: 0;
        margin: 0;
    }
    body.page-price-comparison .mel-pcm-list__row--em .mel-pcm-list__cell {
        background: #FFEBEE !important;
        padding: 12px 10px !important;
        border-right: 1px solid rgba(235,42,42,0.3) !important;
        border-bottom: none !important;
    }
    body.page-price-comparison .mel-pcm-list__row--em .mel-pcm-list__cell:last-child {
        border-right: none !important;
    }
    body.page-price-comparison .mel-pcm-list__row--em .mel-pcm-list__cell--name {
        color: #EB2A2A !important;
        font-size: 13px !important;
        font-weight: 800 !important;
    }
    body.page-price-comparison .mel-pcm-list__row--em .mel-pcm-list__cell--fee {
        color: #EB2A2A;
        font-size: 13px !important;
    }
    body.page-price-comparison .mel-pcm-list__row--em .mel-pcm-list__cell--fee small {
        color: #EB2A2A;
    }
    body.page-price-comparison .mel-pcm-list__row--em .mel-pcm-list__cell--note {
        color: #444 !important;
    }

    /* 横スクロールヒント */
    body.page-price-comparison .mel-pcm-list__scroll-hint {
        display: block !important;
        text-align: center;
        font-size: 11px;
        color: #999;
        margin: 12px 0 0;
    }

    /* -------- Chapter 03 内訳表 SP縦カード化：row--head を確実に非表示 -------- */
    body.page-price-comparison .mel-pcm-parts__table-wrap {
        overflow-x: visible;
        border: none;
    }
    body.page-price-comparison .mel-pcm-parts__table {
        min-width: 0;
        display: flex;
        flex-direction: column;
        gap: 16px;
    }
    /* row--head を確実に非表示（詳細度＆!important 併用） */
    body.page-price-comparison .mel-pcm-parts__row.mel-pcm-parts__row--head {
        display: none !important;
    }
    body.page-price-comparison .mel-pcm-parts__row {
        display: block;
        padding: 0;
        border: 2px solid #EB2A2A;
        border-radius: 0;
        background: #fff;
    }
    body.page-price-comparison .mel-pcm-parts__row:last-child {
        margin-bottom: 0;
    }
    body.page-price-comparison .mel-pcm-parts__cell {
        display: block;
        border-right: none !important;
        padding: 14px 18px;
    }
    body.page-price-comparison .mel-pcm-parts__row:not(.mel-pcm-parts__row--head) .mel-pcm-parts__cell--label {
        background: #EB2A2A !important;
        color: #fff !important;
        font-size: 15px !important;
        font-weight: 700 !important;
        letter-spacing: 0.06em !important;
        text-align: left !important;
        justify-content: flex-start !important;
        padding: 12px 18px !important;
    }
    body.page-price-comparison .mel-pcm-parts__cell--range {
        display: flex !important;
        justify-content: space-between !important;
        align-items: baseline !important;
        font-family: 'Noto Serif JP', 'Zen Kaku Gothic New', serif;
        font-size: 16px !important;
        font-weight: 700;
        color: #1a1a1a;
        border-bottom: 1px dashed #F5C8C8;
    }
    body.page-price-comparison .mel-pcm-parts__cell--range::before {
        content: "相場";
        font-family: 'Zen Kaku Gothic New', sans-serif;
        font-size: 12px;
        font-weight: 700;
        color: #888;
        letter-spacing: 0.06em;
    }
    body.page-price-comparison .mel-pcm-parts__cell--range small {
        font-family: 'Zen Kaku Gothic New', sans-serif;
        font-size: 11px !important;
        color: #666;
        margin-left: 3px;
    }
    body.page-price-comparison .mel-pcm-parts__row:not(.mel-pcm-parts__row--head) .mel-pcm-parts__cell--mel {
        background: #FFF9F7 !important;
        display: flex !important;
        justify-content: space-between !important;
        align-items: baseline !important;
        font-family: 'Noto Serif JP', 'Zen Kaku Gothic New', serif;
        font-size: 22px !important;
        font-weight: 800 !important;
        color: #EB2A2A !important;
        border-bottom: 1px dashed #F5C8C8;
        padding: 12px 18px !important;
    }
    body.page-price-comparison .mel-pcm-parts__row:not(.mel-pcm-parts__row--head) .mel-pcm-parts__cell--mel::before {
        content: "メルティア";
        font-family: 'Zen Kaku Gothic New', sans-serif;
        font-size: 12px;
        font-weight: 700;
        color: #EB2A2A;
        letter-spacing: 0.06em;
    }
    body.page-price-comparison .mel-pcm-parts__row:not(.mel-pcm-parts__row--head) .mel-pcm-parts__cell--mel small {
        font-family: 'Zen Kaku Gothic New', sans-serif;
        font-size: 12px !important;
        color: #EB2A2A;
    }
    body.page-price-comparison .mel-pcm-parts__cell--desc {
        font-size: 12.5px !important;
        line-height: 1.75 !important;
        padding: 14px 18px;
        color: #555;
    }
}

/* ==============================================================
   Flow page ( body.page-flow ) – 婚活の流れ
   FV + オーバーラップカード(目次内包) / Overview / Phase01-03 / Contact
   既存TOP CSS は body.page-top を script で add することで継承
   ============================================================== */

body.page-flow .mel-flow-fv,
body.page-flow .mel-flow-fv *,
body.page-flow .mel-flow-card,
body.page-flow .mel-flow-card *,
body.page-flow .mel-flow-ovw,
body.page-flow .mel-flow-ovw *,
body.page-flow .mel-flow-phase,
body.page-flow .mel-flow-phase *,
body.page-flow .mel-flow-step,
body.page-flow .mel-flow-step * {
    box-sizing: border-box;
}

/* --------- fade-in ---------- */
body.page-flow .js-fade-in {
    opacity: 0;
    transform: translateY(22px);
    transition: opacity 0.9s ease, transform 0.9s ease;
}
body.page-flow .js-fade-in.is-visible {
    opacity: 1;
    transform: none;
}

/* --------- FV hero ---------- */
body.page-flow .mel-flow-fv {
    position: relative;
    width: 100%;
    background: #fff;
    padding-bottom: 160px;
}
body.page-flow .mel-flow-fv__img-wrap {
    position: relative;
    width: 100%;
    height: 62vh;
    min-height: 460px;
    overflow: hidden;
}
body.page-flow .mel-flow-fv__img-wrap::after {
    content: '';
    position: absolute;
    left: 0; right: 0; bottom: 0;
    height: 40%;
    background: linear-gradient(to bottom, rgba(255,255,255,0) 0%, #fff 100%);
    pointer-events: none;
}
body.page-flow .mel-flow-fv__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 30%;
}

/* --------- FV overlap card ---------- */
body.page-flow .mel-flow-card {
    position: relative;
    max-width: 1080px;
    margin: -140px auto 0;
    background: #fff;
    border: 1px solid #F5E8E8;
    border-radius: 4px;
    box-shadow: 0 30px 80px rgba(0,0,0,0.08);
    padding: 64px 72px 56px;
    z-index: 2;
}
body.page-flow .mel-flow-card__head {
    text-align: center;
    margin-bottom: 44px;
}
body.page-flow .mel-flow-card__eyebrow-en {
    font-family: 'Futura', 'Futura PT', 'Century Gothic', sans-serif;
    font-size: 15px;
    font-weight: 700;
    color: #EB2A2A;
    letter-spacing: 0.22em;
    margin: 0 0 8px;
}
body.page-flow .mel-flow-card__eyebrow-jp {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 15px;
    font-weight: 700;
    color: #EB2A2A;
    letter-spacing: 0.06em;
    margin: 0 0 12px;
}
body.page-flow .mel-flow-card__page-ttl {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 44px;
    font-weight: 700;
    color: #1a1a1a;
    letter-spacing: 0.04em;
    line-height: 1.35;
    margin: 0 0 24px;
}
body.page-flow .mel-flow-card__lead {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 16px;
    font-weight: 500;
    color: #555;
    line-height: 2;
    margin: 0;
}
body.page-flow .mel-flow-card__sp-br { display: none; }

/* card TOC */
body.page-flow .mel-flow-card__toc {
    margin-top: 4px;
    padding: 32px 40px 30px;
    background: #FFF9F7;
    border-radius: 4px;
}
body.page-flow .mel-flow-card__toc-ttl {
    display: flex;
    align-items: center;
    gap: 14px;
    margin: 0 0 20px;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 13px;
    font-weight: 700;
    color: #1a1a1a;
    letter-spacing: 0.08em;
}
body.page-flow .mel-flow-card__toc-en {
    font-family: 'Futura', 'Futura PT', 'Century Gothic', sans-serif;
    font-size: 14px;
    font-weight: 700;
    color: #EB2A2A;
    letter-spacing: 0.22em;
}
body.page-flow .mel-flow-card__toc-line {
    display: inline-block;
    width: 40px;
    height: 1px;
    background: #EB2A2A;
}
body.page-flow .mel-flow-card__toc-jp {
    color: #555;
    font-size: 12.5px;
    letter-spacing: 0.12em;
}
body.page-flow .mel-flow-card__toc-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 14px;
}
body.page-flow .mel-flow-card__toc-list li {
    margin: 0;
}
body.page-flow .mel-flow-card__toc-list a {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 16px 18px;
    background: #fff;
    border: 1px solid #F5E8E8;
    border-radius: 3px;
    text-decoration: none;
    color: #1a1a1a;
    transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}
body.page-flow .mel-flow-card__toc-list a:hover {
    transform: translateY(-3px);
    box-shadow: 0 12px 28px rgba(235,42,42,0.08);
    border-color: #EB2A2A;
}
body.page-flow .mel-flow-card__toc-num {
    font-family: 'Futura', 'Futura PT', 'Century Gothic', sans-serif;
    font-size: 22px;
    font-weight: 700;
    color: #EB2A2A;
    line-height: 1;
    letter-spacing: 0.04em;
    min-width: 30px;
}
body.page-flow .mel-flow-card__toc-txt {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 13px;
    font-weight: 700;
    color: #1a1a1a;
    letter-spacing: 0.04em;
    line-height: 1.5;
}

/* --------- Overview ---------- */
body.page-flow .mel-flow-ovw {
    padding: 120px 24px 100px;
    background: #fff;
}
body.page-flow .mel-flow-ovw__inner {
    max-width: 1180px;
    margin: 0 auto;
}
body.page-flow .mel-flow-ovw__head {
    text-align: center;
    margin-bottom: 60px;
}
body.page-flow .mel-flow-ovw__label-group {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 18px;
}
body.page-flow .mel-flow-ovw__eyebrow-en {
    font-family: 'Futura', 'Futura PT', 'Century Gothic', sans-serif;
    font-size: 14px;
    font-weight: 700;
    color: #EB2A2A;
    letter-spacing: 0.24em;
}
body.page-flow .mel-flow-ovw__eyebrow-line {
    display: inline-block;
    width: 42px;
    height: 1px;
    background: #EB2A2A;
}
body.page-flow .mel-flow-ovw__ttl {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 36px;
    font-weight: 700;
    color: #1a1a1a;
    letter-spacing: 0.06em;
    line-height: 1.4;
    margin: 0 0 22px;
}
body.page-flow .mel-flow-ovw__lead {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 15.5px;
    font-weight: 500;
    color: #555;
    line-height: 2;
    margin: 0;
}
body.page-flow .mel-flow-ovw__sp-br { display: none; }
body.page-flow .mel-flow-ovw__grid {
    display: grid;
    grid-template-columns: 1fr auto 1fr auto 1fr;
    align-items: stretch;
    gap: 0;
}
body.page-flow .mel-flow-ovw__card {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 36px 24px 32px;
    background: #FFF9F7;
    border: 1px solid #F5E8E8;
    border-radius: 4px;
    text-decoration: none;
    color: #1a1a1a;
    transition: transform 0.35s ease, box-shadow 0.35s ease, border-color 0.35s ease, background 0.35s ease;
}
body.page-flow .mel-flow-ovw__card:hover {
    transform: translateY(-6px);
    box-shadow: 0 22px 44px rgba(235,42,42,0.1);
    border-color: #EB2A2A;
    background: #fff;
}
body.page-flow .mel-flow-ovw__card-num {
    font-family: 'Futura', 'Futura PT', 'Century Gothic', sans-serif;
    font-size: 14px;
    font-weight: 700;
    color: #EB2A2A;
    letter-spacing: 0.24em;
    margin-bottom: 12px;
}
body.page-flow .mel-flow-ovw__card-ttl {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 22px;
    font-weight: 700;
    color: #1a1a1a;
    letter-spacing: 0.04em;
    line-height: 1.4;
    margin: 0 0 8px;
}
body.page-flow .mel-flow-ovw__card-term {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 12.5px;
    font-weight: 700;
    color: #888;
    letter-spacing: 0.06em;
    margin: 0 0 16px;
    padding-bottom: 14px;
    border-bottom: 1px dashed #F5C8C8;
    width: 100%;
}
body.page-flow .mel-flow-ovw__card-desc {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 13.5px;
    font-weight: 500;
    color: #555;
    line-height: 1.9;
    margin: 0;
}
body.page-flow .mel-flow-ovw__arrow {
    align-self: center;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 66px;
    height: 66px;
    color: #EB2A2A;
    font-size: 44px;
    line-height: 1;
    font-weight: 700;
    background: #fff;
    border: 2px solid #EB2A2A;
    border-radius: 50%;
    box-shadow: 0 6px 18px rgba(235,42,42,0.15);
}

/* --------- Phase section ---------- */
body.page-flow .mel-flow-phase {
    position: relative;
    padding: 110px 24px 100px;
    overflow: hidden;
    background: url("../img/mel-price-bg.png") center / cover no-repeat;
}
body.page-flow .mel-flow-p1,
body.page-flow .mel-flow-p2,
body.page-flow .mel-flow-p3 {
    background: url("../img/mel-price-bg.png") center / cover no-repeat;
}
body.page-flow .mel-flow-phase__bg {
    position: absolute;
    top: 150px;
    left: 50%;
    transform: translateX(-50%);
    font-family: 'Noto Sans JP', 'Noto Sans', sans-serif;
    font-style: normal;
    font-size: 140px;
    font-weight: 900;
    color: #DCC79D;
    opacity: 0.18;
    letter-spacing: 0.02em;
    line-height: 1;
    pointer-events: none;
    white-space: nowrap;
    z-index: 0;
}
body.page-flow .mel-flow-phase__inner {
    position: relative;
    max-width: 1160px;
    margin: 0 auto;
    z-index: 1;
}
body.page-flow .mel-flow-phase__head {
    text-align: center;
    margin-bottom: 64px;
    padding-top: 40px;
}
body.page-flow .mel-flow-phase__label-group {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 18px;
}
body.page-flow .mel-flow-phase__eyebrow-en {
    font-family: 'Futura', 'Futura PT', 'Century Gothic', sans-serif;
    font-size: 14px;
    font-weight: 700;
    color: #EB2A2A;
    letter-spacing: 0.24em;
}
body.page-flow .mel-flow-phase__eyebrow-line {
    display: inline-block;
    width: 42px;
    height: 1px;
    background: #EB2A2A;
}
body.page-flow .mel-flow-phase__ttl {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 40px;
    font-weight: 700;
    color: #1a1a1a;
    letter-spacing: 0.06em;
    line-height: 1.4;
    margin: 0 0 12px;
}
body.page-flow .mel-flow-phase__term {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 13px;
    font-weight: 700;
    color: #EB2A2A;
    letter-spacing: 0.14em;
    margin: 0 0 20px;
    padding: 6px 18px;
    display: inline-block;
    background: #fff;
    border: 1px solid #F5C8C8;
    border-radius: 999px;
}
body.page-flow .mel-flow-phase__lead {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 15.5px;
    font-weight: 500;
    color: #555;
    line-height: 2;
    margin: 0;
    max-width: 780px;
    margin-left: auto;
    margin-right: auto;
}
body.page-flow .mel-flow-phase__sp-br { display: none; }
body.page-flow .mel-flow-phase__steps {
    display: flex;
    flex-direction: column;
    gap: 90px;
    margin-bottom: 60px;
}

/* --------- Step card (左右交互) ---------- */
body.page-flow .mel-flow-step {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 68px;
    align-items: center;
}
body.page-flow .mel-flow-step--right .mel-flow-step__text { grid-column: 1; grid-row: 1; }
body.page-flow .mel-flow-step--right .mel-flow-step__pic { grid-column: 2; grid-row: 1; }
body.page-flow .mel-flow-step--left .mel-flow-step__text { grid-column: 2; grid-row: 1; }
body.page-flow .mel-flow-step--left .mel-flow-step__pic { grid-column: 1; grid-row: 1; }

body.page-flow .mel-flow-step__num-wrap {
    display: inline-flex;
    align-items: baseline;
    gap: 10px;
    margin-bottom: 18px;
    padding: 0 0 8px 0;
    background: none;
    border: 0;
    border-bottom: 2px solid #EB2A2A;
    border-radius: 0;
}
body.page-flow .mel-flow-step__num-lbl {
    font-family: 'Futura', 'Futura PT', 'Century Gothic', sans-serif;
    font-size: 15px;
    font-weight: 700;
    color: #EB2A2A;
    letter-spacing: 0.24em;
    text-transform: uppercase;
    line-height: 1;
}
body.page-flow .mel-flow-step__num {
    font-family: 'Futura', 'Futura PT', 'Century Gothic', sans-serif;
    font-size: 17px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.14em;
    color: #EB2A2A;
    background: none;
    -webkit-text-fill-color: currentColor;
}
body.page-flow .mel-flow-step__ttl {
    display: flex;
    align-items: center;
    gap: 14px;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 26px;
    font-weight: 900;
    color: #EB2A2A;
    letter-spacing: 0.04em;
    line-height: 1.4;
    margin: 0 0 12px;
    padding-bottom: 14px;
    border-bottom: 1px dashed #F5C8C8;
}
body.page-flow .mel-flow-step__ttl-mark {
    width: 26px;
    height: 26px;
    flex-shrink: 0;
}
body.page-flow .mel-flow-step__catch {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 16px;
    font-weight: 700;
    color: #1a1a1a;
    letter-spacing: 0.04em;
    line-height: 1.75;
    margin: 0 0 18px;
}
body.page-flow .mel-flow-step__tags {
    list-style: none;
    padding: 0;
    margin: 0 0 22px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    flex-wrap: wrap;
    gap: 10px 0;
}
body.page-flow .mel-flow-step__tags li {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 0;
    background: none;
    color: #EB2A2A;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.04em;
    border-radius: 0;
}
body.page-flow .mel-flow-step__tag-check {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    font-size: 11px;
    font-weight: 900;
    color: #fff;
    background: #EB2A2A;
    border-radius: 50%;
    opacity: 1;
}
body.page-flow .mel-flow-step__txt {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 14.5px;
    font-weight: 400;
    color: #555;
    line-height: 2;
    margin: 0;
}
body.page-flow .mel-flow-step__pic {
    position: relative;
}
body.page-flow .mel-flow-step__pic img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 4px;
    box-shadow: 0 22px 60px rgba(0,0,0,0.08);
    position: relative;
    z-index: 2;
}
body.page-flow .mel-flow-step__pic::before {
    content: '';
    position: absolute;
    inset: 30px;
    background: #FFEBEE;
    border-radius: 4px;
    z-index: 1;
    transition: transform 0.4s ease;
}
body.page-flow .mel-flow-step--right .mel-flow-step__pic::before {
    transform: translate(44px, 44px);
}
body.page-flow .mel-flow-step--left .mel-flow-step__pic::before {
    transform: translate(-44px, 44px);
}

/* --------- IBJアプリスクショ2枚並び（Step 01 / Step 04） --------- */
body.page-flow .mel-flow-step__pic--apps {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 560px;
    padding: 30px 10px;
}
body.page-flow .mel-flow-step__pic--apps::before { display: none; }
body.page-flow .mel-flow-step__app {
    width: 62%;
    max-width: 300px;
    line-height: 0;
    filter: drop-shadow(0 24px 52px rgba(0,0,0,0.18));
    transition: transform 0.5s ease;
}
body.page-flow .mel-flow-step__app img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 0;
    box-shadow: none;
    position: static;
}
body.page-flow .mel-flow-step__app--front {
    position: relative;
    z-index: 2;
    transform: translateX(-22%) rotate(-4deg);
}
body.page-flow .mel-flow-step__app--back {
    position: absolute;
    top: 30px;
    z-index: 1;
    transform: translateX(22%) rotate(4deg);
}
body.page-flow .mel-flow-step--right .mel-flow-step__app--front,
body.page-flow .mel-flow-step--left .mel-flow-step__app--front {
    transform: translateX(-22%) rotate(-4deg);
}
body.page-flow .mel-flow-step--right .mel-flow-step__app--back,
body.page-flow .mel-flow-step--left .mel-flow-step__app--back {
    transform: translateX(22%) rotate(4deg);
}

/* Phase 下部の CTAテキスト＋矢印 */
body.page-flow .mel-flow-phase__cta {
    text-align: center;
    padding-top: 20px;
}
body.page-flow .mel-flow-phase__cta-txt {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 18px;
    font-weight: 700;
    color: #1a1a1a;
    letter-spacing: 0.06em;
    margin: 0 0 12px;
}
body.page-flow .mel-flow-phase__cta-arrow {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 66px;
    height: 66px;
    color: #EB2A2A;
    font-size: 44px;
    font-weight: 700;
    line-height: 1;
    background: #fff;
    border: 2px solid #EB2A2A;
    border-radius: 50%;
    box-shadow: 0 6px 18px rgba(235,42,42,0.15);
}

/* --------- Phase 03 下端の装飾（半円カット + 赤い糸） --------- */
body.page-flow .mel-flow-p3 {
    padding-bottom: 200px;
    overflow: visible;
}
body.page-flow .mel-flow-p3::after {
    content: "";
    display: block;
    position: absolute;
    bottom: -1px;
    left: 0;
    width: 100%;
    height: 130px;
    background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 130' preserveAspectRatio='none'><path d='M0,0 C300,130 900,130 1200,0 L1200,130 L0,130 Z' fill='%23ffffff'/></svg>") no-repeat bottom center / 100% 130px;
    pointer-events: none;
    z-index: 3;
}
body.page-flow .mel-flow-p3__thread {
    position: absolute;
    bottom: -20px;
    right: 40px;
    width: 220px;
    height: auto;
    z-index: 6;
    pointer-events: none;
    opacity: 0.95;
}
body.page-flow .mel-flow-p3__where {
    position: absolute;
    bottom: -320px;
    left: 50%;
    transform: translateX(-50%);
    width: 92%;
    max-width: 1200px;
    height: auto;
    z-index: 4;
    pointer-events: none;
    user-select: none;
    display: block;
}
@media (max-width: 768px) {
    body.page-flow .mel-flow-p3__where {
        width: 96%;
        bottom: -80px;
    }
}

/* --------- FAQ セクション（flow用） --------- */
body.page-flow .mel-flow-faq {
    background: #fff;
    position: relative;
    z-index: 1;
    padding: 260px 24px 90px !important;
}
body.page-flow .mel-flow-faq .mel-faq__ttl {
    font-size: 32px;
    line-height: 1.5;
}

/* --------- SP ---------- */
@media (max-width: 768px) {
    body.page-flow .mel-flow-fv {
        padding-bottom: 100px;
    }
    body.page-flow .mel-flow-fv__img-wrap {
        height: 52vh;
        min-height: 360px;
    }
    body.page-flow .mel-flow-card {
        margin: -200px 16px 0;
        padding: 44px 22px 36px;
        border-radius: 6px;
    }
    body.page-flow .mel-flow-card__head {
        margin-bottom: 32px;
    }
    body.page-flow .mel-flow-card__eyebrow-en { font-size: 13px; }
    body.page-flow .mel-flow-card__eyebrow-jp { font-size: 13px; }
    body.page-flow .mel-flow-card__page-ttl {
        font-size: 28px;
        line-height: 1.5;
        margin-bottom: 18px;
    }
    body.page-flow .mel-flow-card__lead {
        font-size: 14px;
        line-height: 1.9;
    }
    body.page-flow .mel-flow-card__sp-br { display: inline; }
    body.page-flow .mel-flow-card__toc {
        padding: 22px 18px 20px;
    }
    body.page-flow .mel-flow-card__toc-ttl {
        margin-bottom: 14px;
        font-size: 12px;
    }
    body.page-flow .mel-flow-card__toc-en { font-size: 12.5px; }
    body.page-flow .mel-flow-card__toc-line { width: 32px; }
    body.page-flow .mel-flow-card__toc-list {
        grid-template-columns: 1fr;
        gap: 10px;
    }
    body.page-flow .mel-flow-card__toc-list a {
        padding: 14px 16px;
    }
    body.page-flow .mel-flow-card__toc-num { font-size: 18px; min-width: 26px; }
    body.page-flow .mel-flow-card__toc-txt { font-size: 12.5px; }

    body.page-flow .mel-flow-ovw {
        padding: 80px 16px 70px;
    }
    body.page-flow .mel-flow-ovw__head {
        margin-bottom: 40px;
    }
    body.page-flow .mel-flow-ovw__ttl {
        font-size: 26px;
        margin-bottom: 16px;
    }
    body.page-flow .mel-flow-ovw__lead {
        font-size: 14px;
        line-height: 1.9;
    }
    body.page-flow .mel-flow-ovw__sp-br { display: inline; }
    body.page-flow .mel-flow-ovw__grid {
        grid-template-columns: 1fr;
        gap: 8px;
    }
    body.page-flow .mel-flow-ovw__card {
        padding: 28px 20px 26px;
    }
    body.page-flow .mel-flow-ovw__card-num { font-size: 13px; margin-bottom: 8px; }
    body.page-flow .mel-flow-ovw__card-ttl { font-size: 20px; }
    body.page-flow .mel-flow-ovw__card-term { font-size: 12px; margin-bottom: 14px; padding-bottom: 12px; }
    body.page-flow .mel-flow-ovw__card-desc { font-size: 13px; }
    body.page-flow .mel-flow-ovw__arrow {
        width: 52px;
        height: 52px;
        font-size: 32px;
    }

    body.page-flow .mel-flow-phase {
        padding: 70px 16px 70px;
    }
    body.page-flow .mel-flow-p3 {
        padding-bottom: 160px;
    }
    body.page-flow .mel-flow-p3::after {
        height: 80px;
        background-size: 100% 80px;
    }
    body.page-flow .mel-flow-p3__thread {
        width: 140px;
        bottom: -150px;
        right: 12px;
    }
    body.page-flow .mel-flow-phase__bg {
        font-size: 64px;
        top: 24px;
    }
    body.page-flow .mel-flow-phase__head {
        margin-bottom: 44px;
        padding-top: 30px;
    }
    body.page-flow .mel-flow-phase__ttl {
        font-size: 28px;
        margin-bottom: 10px;
    }
    body.page-flow .mel-flow-phase__term {
        font-size: 12px;
        padding: 5px 14px;
        margin-bottom: 16px;
    }
    body.page-flow .mel-flow-phase__lead {
        font-size: 14px;
        line-height: 1.9;
    }
    body.page-flow .mel-flow-phase__sp-br { display: inline; }
    body.page-flow .mel-flow-phase__steps {
        gap: 64px;
        margin-bottom: 40px;
    }

    body.page-flow .mel-flow-step {
        grid-template-columns: 1fr;
        gap: 30px;
    }
    body.page-flow .mel-flow-step--right .mel-flow-step__text,
    body.page-flow .mel-flow-step--left .mel-flow-step__text {
        grid-column: 1;
        grid-row: 2;
    }
    body.page-flow .mel-flow-step--right .mel-flow-step__pic,
    body.page-flow .mel-flow-step--left .mel-flow-step__pic {
        grid-column: 1;
        grid-row: 1;
        max-width: 82%;
        margin: 0 auto;
    }
    body.page-flow .mel-flow-step__num-wrap { gap: 10px; margin-bottom: 14px; }
    body.page-flow .mel-flow-step__num-lbl { font-size: 13px; }
    body.page-flow .mel-flow-step__num { font-size: 58px; }
    body.page-flow .mel-flow-step__ttl {
        font-size: 20px;
        gap: 10px;
        padding-bottom: 12px;
    }
    body.page-flow .mel-flow-step__ttl-mark { width: 22px; height: 22px; }
    body.page-flow .mel-flow-step__catch { font-size: 14.5px; margin-bottom: 14px; }
    body.page-flow .mel-flow-step__tags {
        gap: 6px 10px;
        margin-bottom: 18px;
    }
    body.page-flow .mel-flow-step__tags li {
        font-size: 11.5px;
        padding: 5px 10px;
    }
    body.page-flow .mel-flow-step__txt {
        font-size: 13.5px;
        line-height: 1.9;
    }
    body.page-flow .mel-flow-step--right .mel-flow-step__pic::before,
    body.page-flow .mel-flow-step--left .mel-flow-step__pic::before {
        inset: 20px;
        transform: translate(-44px, 44px);
    }
    body.page-flow .mel-flow-phase__cta-txt { font-size: 15px; }
    body.page-flow .mel-flow-phase__cta-arrow { width: 52px; height: 52px; font-size: 32px; }
    body.page-flow .mel-flow-step__num-wrap { padding: 0 0 6px 0; gap: 8px; margin-bottom: 14px; border-bottom-width: 2px; }
    body.page-flow .mel-flow-step__num-lbl { font-size: 12.5px; }
    body.page-flow .mel-flow-step__num { font-size: 14px; }
    body.page-flow .mel-flow-step__tags li { font-size: 13px; }
    body.page-flow .mel-flow-step__tag-check { width: 16px; height: 16px; font-size: 10px; }
    body.page-flow .mel-flow-faq { padding: 160px 16px 60px !important; }
    body.page-flow .mel-flow-faq .mel-faq__ttl { font-size: 22px; }

    /* IBJアプリ2枚並び SP */
    body.page-flow .mel-flow-step__pic--apps {
        min-height: 260px;
        padding: 0;
        margin-bottom: -40px;
        max-width: 100%;
    }
    body.page-flow .mel-flow-step__app {
        width: 56%;
        max-width: 220px;
    }
    body.page-flow .mel-flow-step__app--front,
    body.page-flow .mel-flow-step--right .mel-flow-step__app--front,
    body.page-flow .mel-flow-step--left .mel-flow-step__app--front {
        transform: translateX(-24%) rotate(-4deg);
    }
    body.page-flow .mel-flow-step__app--back,
    body.page-flow .mel-flow-step--right .mel-flow-step__app--back,
    body.page-flow .mel-flow-step--left .mel-flow-step__app--back {
        top: 24px;
        transform: translateX(24%) rotate(4deg);
    }
}

/* ============================================================
   Flow page 追加分：FVカード内 Overview / 矢印画像 / cta矢印画像
   ============================================================ */

/* FV card - Overview 内包（縦積み3カード＋矢印画像） */
body.page-flow .mel-flow-card__ovw {
    margin-top: 12px;
    padding: 40px 40px 32px;
    background: #FFF9F7;
    border-radius: 4px;
}
body.page-flow .mel-flow-card__ovw-head {
    text-align: center;
    margin-bottom: 26px;
}
body.page-flow .mel-flow-card__ovw-label-group {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 10px;
}
body.page-flow .mel-flow-card__ovw-en {
    font-family: 'Futura', 'Futura PT', 'Century Gothic', sans-serif;
    font-size: 13px;
    font-weight: 700;
    color: #EB2A2A;
    letter-spacing: 0.24em;
}
body.page-flow .mel-flow-card__ovw-line {
    display: inline-block;
    width: 32px;
    height: 1px;
    background: #EB2A2A;
}
body.page-flow .mel-flow-card__ovw-ttl {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 24px;
    font-weight: 700;
    color: #1a1a1a;
    letter-spacing: 0.06em;
    line-height: 1.4;
    margin: 0;
}
body.page-flow .mel-flow-card__ovw-list {
    display: grid;
    grid-template-columns: 1fr auto 1fr auto 1fr;
    align-items: stretch;
    gap: 0;
}
body.page-flow .mel-flow-card__ovw-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 24px 20px 22px;
    background: #fff;
    border: 1px solid #F5C8C8;
    border-radius: 4px;
    text-decoration: none;
    color: #1a1a1a;
    width: 100%;
    max-width: none;
    transition: transform 0.35s ease, box-shadow 0.35s ease, border-color 0.35s ease;
}
body.page-flow .mel-flow-card__ovw-item:hover {
    transform: translateY(-3px);
    box-shadow: 0 12px 28px rgba(235,42,42,0.1);
    border-color: #EB2A2A;
}
body.page-flow .mel-flow-card__ovw-item-num {
    font-family: 'Futura', 'Futura PT', 'Century Gothic', sans-serif;
    font-size: 13px;
    font-weight: 700;
    color: #EB2A2A;
    letter-spacing: 0.24em;
    margin-bottom: 6px;
}
body.page-flow .mel-flow-card__ovw-item-ttl {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 20px;
    font-weight: 700;
    color: #1a1a1a;
    letter-spacing: 0.04em;
    line-height: 1.4;
    margin: 0 0 8px;
}
body.page-flow .mel-flow-card__ovw-item-term {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 12px;
    font-weight: 700;
    color: #EB2A2A;
    letter-spacing: 0.08em;
    margin: 0 0 12px;
    padding: 3px 12px;
    background: #FFF9F7;
    border: 1px solid #F5C8C8;
    border-radius: 999px;
}
body.page-flow .mel-flow-card__ovw-item-desc {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 13.5px;
    font-weight: 500;
    color: #555;
    line-height: 1.8;
    margin: 0;
}
body.page-flow .mel-flow-card__ovw-arrow {
    display: block;
    width: 38px;
    height: auto;
    align-self: center;
    margin: 0 6px;
    opacity: 0.9;
    transform: rotate(-90deg);
}

/* Phase 下部 CTA 矢印画像（既存 __cta-arrow の丸背景版は使わない） */
body.page-flow .mel-flow-phase__cta-arrow-img {
    display: block;
    width: 64px;
    height: auto;
    margin: 14px auto 0;
    opacity: 0.9;
}

/* SP版 */
@media (max-width: 768px) {
    body.page-flow .mel-flow-card__ovw {
        padding: 26px 16px 22px;
    }
    body.page-flow .mel-flow-card__ovw-head {
        margin-bottom: 18px;
    }
    body.page-flow .mel-flow-card__ovw-ttl { font-size: 18px; }
    body.page-flow .mel-flow-card__ovw-item {
        padding: 20px 16px 18px;
    }
    body.page-flow .mel-flow-card__ovw-item-num { font-size: 12px; margin-bottom: 4px; }
    body.page-flow .mel-flow-card__ovw-item-ttl { font-size: 17px; }
    body.page-flow .mel-flow-card__ovw-item-term { font-size: 11px; padding: 3px 10px; margin-bottom: 10px; }
    body.page-flow .mel-flow-card__ovw-item-desc { font-size: 12.5px; line-height: 1.75; }
    body.page-flow .mel-flow-card__ovw-arrow { width: 34px; margin: 10px 0; }
    body.page-flow .mel-flow-phase__cta-arrow-img { width: 48px; }
}

/* ============================================================
   Flow page 追加分：詳しく見るボタン / 脚注 / Overview 横並び用 SP調整
   ============================================================ */

/* Step 内「詳しく見る」ボタン */
body.page-flow .mel-flow-step__more {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    margin-top: 22px;
    padding: 12px 26px;
    background: #fff;
    border: 1.5px solid #EB2A2A;
    color: #EB2A2A;
    font-family: 'Futura', 'Futura PT', 'Century Gothic', sans-serif;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.22em;
    text-decoration: none;
    border-radius: 999px;
    transition: background 0.3s ease, color 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease;
}
body.page-flow .mel-flow-step__more:hover {
    background: #EB2A2A;
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 10px 22px rgba(235,42,42,0.18);
}
body.page-flow .mel-flow-step__more-arrow {
    font-size: 16px;
    line-height: 1;
    transition: transform 0.3s ease;
}
body.page-flow .mel-flow-step__more:hover .mel-flow-step__more-arrow {
    transform: translateX(4px);
}

/* Step 本文の脚注（※ で始まる小さめ文字） */
body.page-flow .mel-flow-step__note {
    display: inline-block;
    margin-top: 10px;
    font-size: 12.5px;
    color: #888;
    line-height: 1.75;
}

/* SP：Overview を縦積みに戻す（幅狭いので横並びでは潰れる） */
@media (max-width: 768px) {
    body.page-flow .mel-flow-card__ovw-list {
        grid-template-columns: 1fr;
        gap: 6px;
    }
    body.page-flow .mel-flow-card__ovw-arrow {
        transform: rotate(0deg);
        width: 30px;
        margin: 4px auto;
    }
    body.page-flow .mel-flow-phase__bg {
        top: 70px;
        font-size: 60px;
    }
    body.page-flow .mel-flow-step__more {
        padding: 11px 22px;
        font-size: 13px;
        margin-top: 18px;
    }
    body.page-flow .mel-flow-step__note {
        font-size: 11.5px;
    }
}

/* ==============================================================
   Join-flow page ( body.page-join-flow ) – 入会の流れ
   flow の CSS を body.page-flow スコープで継承（script で page-flow を add）
   ここは join-flow 固有の追加：Phase 02 装飾継承 / 活動スタート / 料金 / SP
   ============================================================== */

/* Phase 02 が最終Phaseなので、mel-flow-p3 相当の装飾を効かせる */
body.page-join-flow .mel-flow-p2 {
    overflow: visible;
    padding-bottom: 200px;
    position: relative;
}
body.page-join-flow .mel-flow-p2::after {
    content: "";
    display: block;
    position: absolute;
    bottom: -1px;
    left: 0;
    width: 100%;
    height: 130px;
    background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 130' preserveAspectRatio='none'><path d='M0,0 C300,130 900,130 1200,0 L1200,130 L0,130 Z' fill='%23ffffff'/></svg>") no-repeat bottom center / 100% 130px;
    pointer-events: none;
    z-index: 3;
}

/* ---------- 活動スタート → flow誘導 ---------- */
body.page-join-flow .mel-jf-start {
    background: #fff;
    padding: 260px 24px 100px;
    text-align: center;
    position: relative;
    z-index: 1;
}
body.page-join-flow .mel-jf-start__inner {
    max-width: 780px;
    margin: 0 auto;
}
body.page-join-flow .mel-jf-start__eyebrow-en {
    font-family: 'Futura', 'Futura PT', 'Century Gothic', sans-serif;
    font-size: 14px;
    font-weight: 700;
    color: #EB2A2A;
    letter-spacing: 0.28em;
    margin: 0 0 18px;
}
body.page-join-flow .mel-jf-start__ttl {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 38px;
    font-weight: 700;
    color: #1a1a1a;
    letter-spacing: 0.06em;
    line-height: 1.5;
    margin: 0 0 26px;
}
body.page-join-flow .mel-jf-start__lead {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 15.5px;
    font-weight: 500;
    color: #555;
    line-height: 2;
    margin: 0 0 40px;
}
body.page-join-flow .mel-jf-start__sp-br { display: none; }
body.page-join-flow .mel-jf-start__btn {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    padding: 18px 42px;
    background: #fff;
    border: 1.5px solid #EB2A2A;
    color: #EB2A2A;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-decoration: none;
    border-radius: 999px;
    box-shadow: none;
    transition: background 0.3s ease, color 0.3s ease, transform 0.3s ease;
}
body.page-join-flow .mel-jf-start__btn:hover {
    background: #EB2A2A;
    color: #fff;
    transform: translateY(-2px);
}
body.page-join-flow .mel-jf-start__btn-arrow {
    font-size: 18px;
    line-height: 1;
    transition: transform 0.3s ease;
}
body.page-join-flow .mel-jf-start__btn:hover .mel-jf-start__btn-arrow {
    transform: translateX(4px);
}

/* ---------- 料金セクション ---------- */
body.page-join-flow .mel-jf-price {
    background: #FFF9F7;
    padding: 100px 24px 90px;
    position: relative;
    z-index: 1;
}
body.page-join-flow .mel-jf-price__inner {
    max-width: 960px;
    margin: 0 auto;
}
body.page-join-flow .mel-jf-price__head {
    text-align: center;
    margin-bottom: 50px;
}
body.page-join-flow .mel-jf-price__label-group {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 16px;
}
body.page-join-flow .mel-jf-price__eyebrow-en {
    font-family: 'Futura', 'Futura PT', 'Century Gothic', sans-serif;
    font-size: 14px;
    font-weight: 700;
    color: #EB2A2A;
    letter-spacing: 0.24em;
}
body.page-join-flow .mel-jf-price__eyebrow-line {
    display: inline-block;
    width: 42px;
    height: 1px;
    background: #EB2A2A;
}
body.page-join-flow .mel-jf-price__ttl {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 34px;
    font-weight: 700;
    color: #1a1a1a;
    letter-spacing: 0.06em;
    line-height: 1.4;
    margin: 0 0 18px;
}
body.page-join-flow .mel-jf-price__lead {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 15px;
    font-weight: 500;
    color: #555;
    line-height: 1.9;
    margin: 0;
}
body.page-join-flow .mel-jf-price__table {
    background: #fff;
    border: 2px solid #EB2A2A;
    border-radius: 4px;
    overflow: hidden;
    margin-bottom: 40px;
}
body.page-join-flow .mel-jf-price__row {
    display: grid;
    grid-template-columns: 200px 220px 1fr;
    align-items: center;
    border-bottom: 1px solid #F5C8C8;
}
body.page-join-flow .mel-jf-price__row:last-child { border-bottom: 0; }
body.page-join-flow .mel-jf-price__cell {
    padding: 22px 24px;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 15px;
    color: #1a1a1a;
    border-right: 1px solid #F5C8C8;
}
body.page-join-flow .mel-jf-price__cell:last-child { border-right: 0; }
body.page-join-flow .mel-jf-price__cell--label {
    background: #FFEBEE;
    font-weight: 700;
    color: #EB2A2A;
    font-size: 16px;
    letter-spacing: 0.04em;
}
body.page-join-flow .mel-jf-price__cell--value {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-weight: 700;
    font-size: 22px;
    color: #1a1a1a;
    letter-spacing: 0.02em;
}
body.page-join-flow .mel-jf-price__row--em .mel-jf-price__cell--value {
    color: #EB2A2A;
    font-size: 26px;
}
body.page-join-flow .mel-jf-price__cell--note {
    font-size: 13.5px;
    color: #555;
    line-height: 1.75;
}

/* クーリングオフ */
body.page-join-flow .mel-jf-price__cool {
    display: flex;
    align-items: center;
    gap: 24px;
    padding: 26px 32px;
    background: #fff;
    border: 1px dashed #EB2A2A;
    border-radius: 4px;
}
body.page-join-flow .mel-jf-price__cool-badge {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    width: 116px;
    height: 116px;
    background: #EB2A2A;
    color: #fff;
    border-radius: 50%;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 14px;
    font-weight: 900;
    line-height: 1.4;
    letter-spacing: 0.04em;
    box-shadow: 0 12px 24px rgba(235,42,42,0.24);
}
body.page-join-flow .mel-jf-price__cool-txt {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 15px;
    font-weight: 500;
    color: #1a1a1a;
    line-height: 2;
    margin: 0;
}
body.page-join-flow .mel-jf-price__cool-txt strong {
    color: #EB2A2A;
    font-weight: 900;
}

/* ---------- SP ---------- */
@media (max-width: 768px) {
    body.page-join-flow .mel-flow-p2 {
        padding-bottom: 160px;
    }
    body.page-join-flow .mel-flow-p2::after {
        height: 80px;
        background-size: 100% 80px;
    }

    body.page-join-flow .mel-jf-start {
        padding: 160px 16px 70px;
    }
    body.page-join-flow .mel-flow-faq {
        padding: 10px 16px 60px !important;
    }
    body.page-join-flow .mel-jf-start__ttl {
        font-size: 24px;
        margin-bottom: 20px;
    }
    body.page-join-flow .mel-jf-start__lead {
        font-size: 13.5px;
        line-height: 1.9;
        margin-bottom: 30px;
    }
    body.page-join-flow .mel-jf-start__sp-br { display: inline; }
    body.page-join-flow .mel-jf-start__btn {
        padding: 16px 32px;
        font-size: 14px;
        gap: 12px;
    }

    body.page-join-flow .mel-jf-price {
        padding: 70px 16px 60px;
    }
    body.page-join-flow .mel-jf-price__head {
        margin-bottom: 32px;
    }
    body.page-join-flow .mel-jf-price__ttl {
        font-size: 24px;
        margin-bottom: 14px;
    }
    body.page-join-flow .mel-jf-price__lead {
        font-size: 13.5px;
    }
    body.page-join-flow .mel-jf-price__row {
        grid-template-columns: 120px 1fr;
        grid-template-areas:
            "label value"
            "label note";
    }
    body.page-join-flow .mel-jf-price__cell {
        padding: 14px 16px;
        font-size: 13.5px;
    }
    body.page-join-flow .mel-jf-price__cell--label {
        grid-area: label;
        display: flex;
        align-items: center;
        font-size: 13px;
    }
    body.page-join-flow .mel-jf-price__cell--value {
        grid-area: value;
        font-size: 18px;
        border-bottom: 1px dashed #F5C8C8;
    }
    body.page-join-flow .mel-jf-price__row--em .mel-jf-price__cell--value {
        font-size: 20px;
    }
    body.page-join-flow .mel-jf-price__cell--note {
        grid-area: note;
        font-size: 12px;
        color: #666;
        border-right: 0;
    }
    body.page-join-flow .mel-jf-price__cool {
        flex-direction: column;
        gap: 16px;
        padding: 22px 20px;
        text-align: center;
    }
    body.page-join-flow .mel-jf-price__cool-badge {
        width: 96px;
        height: 96px;
        font-size: 12.5px;
    }
    body.page-join-flow .mel-jf-price__cool-txt {
        font-size: 13.5px;
        line-height: 1.9;
    }
}

/* ==============================================================
   Eligibility page ( body.page-eligibility ) – 入会資格
   flow の CSS を継承（script で page-flow を add）
   ============================================================== */

/* --------- 入会資格リスト ---------- */
body.page-eligibility .mel-elg-list {
    background: #FFF9F7;
    padding: 110px 24px 100px;
    position: relative;
    z-index: 1;
}
body.page-eligibility .mel-elg-list__inner {
    max-width: 960px;
    margin: 0 auto;
}
body.page-eligibility .mel-elg-list__head {
    text-align: center;
    margin-bottom: 60px;
}
body.page-eligibility .mel-elg-list__label-group {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 16px;
}
body.page-eligibility .mel-elg-list__eyebrow-en {
    font-family: 'Futura', 'Futura PT', 'Century Gothic', sans-serif;
    font-size: 14px;
    font-weight: 700;
    color: #EB2A2A;
    letter-spacing: 0.24em;
}
body.page-eligibility .mel-elg-list__eyebrow-line {
    display: inline-block;
    width: 42px;
    height: 1px;
    background: #EB2A2A;
}
body.page-eligibility .mel-elg-list__ttl {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 34px;
    font-weight: 700;
    color: #1a1a1a;
    letter-spacing: 0.06em;
    line-height: 1.4;
    margin: 0 0 18px;
}
body.page-eligibility .mel-elg-list__lead {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 15.5px;
    font-weight: 500;
    color: #555;
    line-height: 1.9;
    margin: 0;
}
body.page-eligibility .mel-elg-list__items {
    list-style: none;
    padding: 0;
    margin: 0 0 40px;
    display: flex;
    flex-direction: column;
    gap: 14px;
}
body.page-eligibility .mel-elg-list__item {
    display: grid;
    grid-template-columns: 90px 1fr;
    align-items: start;
    gap: 22px;
    padding: 28px 32px;
    background: #fff;
    border: 1px solid #F5E8E8;
    border-radius: 4px;
    transition: box-shadow 0.35s ease, border-color 0.35s ease;
}
body.page-eligibility .mel-elg-list__item:hover {
    /* hover装飾なし */
}
body.page-eligibility .mel-elg-list__num {
    font-size: 0;
    line-height: 1;
    padding-top: 0;
    background: none;
    -webkit-background-clip: initial;
    background-clip: initial;
    color: transparent;
    text-align: center;
}
body.page-eligibility .mel-elg-list__num::before {
    content: '✓';
    display: inline-block;
    font-family: 'Zen Kaku Gothic New', 'Hiragino Sans', sans-serif;
    font-size: 48px;
    font-weight: 900;
    color: #EB2A2A;
    -webkit-text-fill-color: #EB2A2A;
    line-height: 1;
}
body.page-eligibility .mel-elg-list__body {
    min-width: 0;
}
body.page-eligibility .mel-elg-list__item-ttl {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 18px;
    font-weight: 700;
    color: #1a1a1a;
    letter-spacing: 0.04em;
    line-height: 1.6;
    margin: 0 0 8px;
    padding-bottom: 10px;
    border-bottom: 1px dashed #F5C8C8;
}
body.page-eligibility .mel-elg-list__item-desc {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 14.5px;
    font-weight: 400;
    color: #555;
    line-height: 1.9;
    margin: 0;
}
body.page-eligibility .mel-elg-list__docs {
    list-style: none;
    padding: 18px 22px;
    margin: 16px 0 0;
    background: #FFF9F7;
    border-radius: 4px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
body.page-eligibility .mel-elg-list__docs li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 13.5px;
    color: #1a1a1a;
    line-height: 1.7;
}
body.page-eligibility .mel-elg-list__docs-check {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    font-size: 11px;
    font-weight: 900;
    color: #fff;
    background: #EB2A2A;
    border-radius: 50%;
    margin-top: 2px;
}
body.page-eligibility .mel-elg-list__note {
    text-align: center;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 12.5px;
    color: #888;
    line-height: 1.8;
    margin: 0;
}

/* --------- 無料相談誘導 ---------- */
body.page-eligibility .mel-elg-consult {
    background: #fff;
    padding: 100px 24px 90px;
    text-align: center;
}
body.page-eligibility .mel-elg-consult__inner {
    max-width: 760px;
    margin: 0 auto;
}
body.page-eligibility .mel-elg-consult__eyebrow-en {
    font-family: 'Futura', 'Futura PT', 'Century Gothic', sans-serif;
    font-size: 14px;
    font-weight: 700;
    color: #EB2A2A;
    letter-spacing: 0.28em;
    margin: 0 0 18px;
}
body.page-eligibility .mel-elg-consult__ttl {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 32px;
    font-weight: 700;
    color: #1a1a1a;
    letter-spacing: 0.06em;
    line-height: 1.5;
    margin: 0 0 22px;
}
body.page-eligibility .mel-elg-consult__lead {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 15px;
    font-weight: 500;
    color: #555;
    line-height: 2;
    margin: 0 0 36px;
}
body.page-eligibility .mel-elg-consult__sp-br { display: none; }
body.page-eligibility .mel-elg-consult__btn {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    padding: 18px 42px;
    background: #fff;
    border: 1.5px solid #EB2A2A;
    color: #EB2A2A;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-decoration: none;
    border-radius: 999px;
    transition: background 0.3s ease, color 0.3s ease, transform 0.3s ease;
}
body.page-eligibility .mel-elg-consult__btn:hover {
    background: #EB2A2A;
    color: #fff;
    transform: translateY(-2px);
}
body.page-eligibility .mel-elg-consult__btn-arrow {
    font-size: 16px;
    line-height: 1;
    transition: transform 0.3s ease;
}
body.page-eligibility .mel-elg-consult__btn:hover .mel-elg-consult__btn-arrow {
    transform: translateX(4px);
}

/* --------- FAQ 上余白調整（相談誘導セクション直後なので詰める） ---------- */
body.page-eligibility .mel-elg-faq {
    padding-top: 40px !important;
}

/* ---------- SP ---------- */
@media (max-width: 768px) {
    body.page-eligibility .mel-elg-list {
        padding: 70px 16px 70px;
    }
    body.page-eligibility .mel-elg-list__head {
        margin-bottom: 40px;
    }
    body.page-eligibility .mel-elg-list__ttl {
        font-size: 24px;
        margin-bottom: 14px;
    }
    body.page-eligibility .mel-elg-list__lead {
        font-size: 13.5px;
    }
    body.page-eligibility .mel-elg-list__items {
        gap: 10px;
        margin-bottom: 28px;
    }
    body.page-eligibility .mel-elg-list__item {
        grid-template-columns: 60px 1fr;
        gap: 14px;
        padding: 22px 20px;
    }
    body.page-eligibility .mel-elg-list__num::before {
        font-size: 36px;
    }
    body.page-eligibility .mel-elg-list__item-ttl {
        font-size: 15px;
        line-height: 1.55;
        margin-bottom: 6px;
        padding-bottom: 8px;
    }
    body.page-eligibility .mel-elg-list__item-desc {
        font-size: 13px;
        line-height: 1.85;
    }
    body.page-eligibility .mel-elg-list__docs {
        padding: 14px 16px;
        margin-top: 14px;
    }
    body.page-eligibility .mel-elg-list__docs li {
        font-size: 12.5px;
        line-height: 1.7;
    }
    body.page-eligibility .mel-elg-list__docs-check {
        width: 16px;
        height: 16px;
        font-size: 10px;
    }
    body.page-eligibility .mel-elg-list__note {
        font-size: 11.5px;
    }
    body.page-eligibility .mel-elg-consult {
        padding: 70px 16px 60px;
    }
    body.page-eligibility .mel-elg-consult__ttl {
        font-size: 22px;
        margin-bottom: 18px;
    }
    body.page-eligibility .mel-elg-consult__lead {
        font-size: 13.5px;
        line-height: 1.9;
        margin-bottom: 28px;
    }
    body.page-eligibility .mel-elg-consult__sp-br { display: inline; }
    body.page-eligibility .mel-elg-consult__btn {
        padding: 16px 32px;
        font-size: 14px;
        gap: 12px;
    }
    body.page-eligibility .mel-elg-faq {
        padding-top: 20px !important;
    }
}

/* ==============================================================
   FAQ page ( body.page-faq ) – よくある質問
   flow デザイン言語継承（TOP CSS + 独自スタイル）
   ============================================================== */

/* --------- カテゴリ目次（FVカード内 6カード） ---------- */
body.page-faq .mel-faq-cat-nav {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    margin-top: 8px;
}
body.page-faq .mel-faq-cat-nav__item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 16px 18px;
    background: #fff;
    border: 1px solid #F5C8C8;
    border-radius: 3px;
    text-decoration: none;
    color: #1a1a1a;
    transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}
body.page-faq .mel-faq-cat-nav__item:hover {
    transform: translateY(-3px);
    box-shadow: 0 12px 28px rgba(235,42,42,0.08);
    border-color: #EB2A2A;
}
body.page-faq .mel-faq-cat-nav__num {
    font-family: 'Futura', 'Futura PT', 'Century Gothic', sans-serif;
    font-size: 20px;
    font-weight: 700;
    color: #EB2A2A;
    letter-spacing: 0.06em;
    line-height: 1;
    min-width: 28px;
}
body.page-faq .mel-faq-cat-nav__mark {
    display: block;
    width: 30px;
    height: auto;
    flex-shrink: 0;
}
body.page-faq .mel-faq-cat-nav__ttl {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 13px;
    font-weight: 700;
    color: #1a1a1a;
    letter-spacing: 0.04em;
    line-height: 1.5;
    flex-grow: 1;
}
body.page-faq .mel-faq-cat-nav__arrow {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 16px;
    font-weight: 700;
    color: #EB2A2A;
    line-height: 1;
    margin-left: auto;
    transition: transform 0.3s ease;
}
body.page-faq .mel-faq-cat-nav__item:hover .mel-faq-cat-nav__arrow {
    transform: translateX(4px);
}

/* --------- カテゴリセクション ---------- */
body.page-faq .mel-faq-cat {
    padding: 100px 24px 90px;
    scroll-margin-top: 40px;
}
body.page-faq .mel-faq-cat--white { background: #fff; }
body.page-faq .mel-faq-cat--pink { background: #FFF9F7; }
body.page-faq .mel-faq-cat__inner {
    max-width: 1080px;
    margin: 0 auto;
}
body.page-faq .mel-faq-cat__head {
    text-align: center;
    margin-bottom: 50px;
}
body.page-faq .mel-faq-cat__num {
    font-family: 'Futura', 'Futura PT', 'Century Gothic', sans-serif;
    font-size: 14px;
    font-weight: 700;
    color: #EB2A2A;
    letter-spacing: 0.24em;
    margin: 0 0 12px;
    display: inline-block;
}
body.page-faq .mel-faq-cat__ttl {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 30px;
    font-weight: 700;
    color: #1a1a1a;
    letter-spacing: 0.06em;
    line-height: 1.4;
    margin: 0;
}
body.page-faq .mel-faq-cat__list {
    display: flex;
    flex-direction: column;
    gap: 12px;
    max-width: 900px;
    margin: 0 auto;
}

/* カテゴリ内 mel-faq__item は TOP mel-faq のスタイルをそのまま使用（他ページと統一） */

/* --------- SP ---------- */
@media (max-width: 768px) {
    body.page-faq .mel-faq-cat-nav {
        grid-template-columns: repeat(2, 1fr);
        gap: 8px;
    }
    body.page-faq .mel-faq-cat-nav__item {
        padding: 14px 14px;
        gap: 10px;
    }
    body.page-faq .mel-faq-cat-nav__num { font-size: 17px; min-width: 24px; }
    body.page-faq .mel-faq-cat-nav__mark { width: 24px; }
    body.page-faq .mel-faq-cat-nav__ttl { font-size: 12px; line-height: 1.5; }

    body.page-faq .mel-faq-cat {
        padding: 70px 16px 60px;
    }
    body.page-faq .mel-faq-cat__head {
        margin-bottom: 32px;
    }
    body.page-faq .mel-faq-cat__num { font-size: 12px; margin-bottom: 8px; }
    body.page-faq .mel-faq-cat__ttl { font-size: 22px; }
    body.page-faq .mel-faq-cat__list {
        gap: 8px;
    }
}

/* ==============================================================
   How to choose page ( body.page-how-to-choose ) – 結婚相談所の選び方
   flow + price-comparison CSS 継承（script で page-flow / page-price-comparison を add）
   独自スタイル：Chapter見出し / 5列テーブル / 2列比較 / 3本柱 / diff-link / FAQ
   ============================================================== */

/* --------- Chapter セクション基本 --------- */
body.page-how-to-choose .mel-htc-chap {
    padding: 100px 24px 90px;
    scroll-margin-top: 40px;
}
body.page-how-to-choose .mel-htc-chap--white { background: #fff; }
body.page-how-to-choose .mel-htc-chap--pink { background: #FFF9F7; }
body.page-how-to-choose .mel-htc-chap__inner {
    max-width: 1080px;
    margin: 0 auto;
}
body.page-how-to-choose .mel-htc-chap__head {
    text-align: center;
    margin-bottom: 48px;
    max-width: 820px;
    margin-left: auto;
    margin-right: auto;
}
body.page-how-to-choose .mel-htc-chap__chapter {
    display: inline-block;
    font-family: 'Futura', 'Futura PT', 'Century Gothic', sans-serif;
    font-size: 13px;
    font-weight: 700;
    color: #EB2A2A;
    letter-spacing: 0.28em;
    margin-bottom: 14px;
    padding: 6px 18px;
    background: #fff;
    border: 1px solid #F5C8C8;
    border-radius: 999px;
}
body.page-how-to-choose .mel-htc-chap__ttl {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 32px;
    font-weight: 700;
    color: #1a1a1a;
    letter-spacing: 0.06em;
    line-height: 1.5;
    margin: 0 0 20px;
}
body.page-how-to-choose .mel-htc-chap__lead {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 15px;
    font-weight: 500;
    color: #555;
    line-height: 2;
    margin: 0;
}
body.page-how-to-choose .mel-htc-chap__lead strong {
    color: #1a1a1a;
    font-weight: 700;
}
body.page-how-to-choose .mel-htc-chap__pc-br { display: inline; }

/* 結論ボックス */
body.page-how-to-choose .mel-htc-chap__conclusion {
    margin-top: 44px;
    padding: 28px 32px;
    background: #fff;
    border: 2px solid #EB2A2A;
    border-radius: 4px;
    display: flex;
    align-items: flex-start;
    gap: 20px;
}
body.page-how-to-choose .mel-htc-chap--white .mel-htc-chap__conclusion {
    background: #FFF9F7;
}
body.page-how-to-choose .mel-htc-chap__conclusion-label {
    flex-shrink: 0;
    padding: 6px 14px;
    background: #EB2A2A;
    color: #fff;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.14em;
    border-radius: 3px;
    margin: 0;
    line-height: 1.4;
}
body.page-how-to-choose .mel-htc-chap__conclusion-txt {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 15px;
    font-weight: 500;
    color: #1a1a1a;
    line-height: 1.9;
    margin: 0;
}
body.page-how-to-choose .mel-htc-chap__conclusion-txt strong {
    color: #EB2A2A;
    font-weight: 900;
}

/* --------- テーブル（5連盟 / 5社料金） --------- */
body.page-how-to-choose .mel-htc-table {
    display: block;
    max-width: 100%;
    overflow: hidden;
    border: 2px solid #EB2A2A;
    border-radius: 0;
    background: #fff;
}
body.page-how-to-choose .mel-htc-table__row {
    display: grid;
    grid-template-columns: 1.5fr 1fr 1fr 1fr 1fr;
    border-bottom: 1px solid #F5C8C8;
}
body.page-how-to-choose .mel-htc-table__row:last-child { border-bottom: 0; }
body.page-how-to-choose .mel-htc-table__row--head {
    background: #EB2A2A;
    color: #fff;
}
body.page-how-to-choose .mel-htc-table__row--head .mel-htc-table__cell {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 13.5px;
    font-weight: 700;
    color: #fff;
    letter-spacing: 0.06em;
    text-align: center;
    padding: 14px 12px;
    border-right: 1px solid rgba(255,255,255,0.2);
}
body.page-how-to-choose .mel-htc-table__row--head .mel-htc-table__cell:last-child { border-right: 0; }

body.page-how-to-choose .mel-htc-table__row--em {
    background: #FFEBEE;
}
body.page-how-to-choose .mel-htc-table__cell {
    padding: 18px 14px;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 14px;
    color: #1a1a1a;
    text-align: center;
    border-right: 1px solid #F5C8C8;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1.5;
}
body.page-how-to-choose .mel-htc-table__cell:last-child { border-right: 0; }
body.page-how-to-choose .mel-htc-table__cell--name {
    background: #FFF9F7;
    font-weight: 700;
    text-align: left;
    justify-content: flex-start;
    flex-wrap: wrap;
    gap: 6px 10px;
}
body.page-how-to-choose .mel-htc-table__row--em .mel-htc-table__cell--name {
    background: #FFEBEE;
    color: #EB2A2A;
}
body.page-how-to-choose .mel-htc-table__cell--name small {
    display: block;
    width: 100%;
    font-size: 11px;
    color: #888;
    font-weight: 500;
    margin-top: 2px;
}
body.page-how-to-choose .mel-htc-table__row--em .mel-htc-table__cell--name small { color: #EB2A2A; opacity: 0.7; }
body.page-how-to-choose .mel-htc-table__cell-badge {
    display: inline-block;
    padding: 3px 8px;
    background: #EB2A2A;
    color: #fff;
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 0.08em;
    border-radius: 2px;
    line-height: 1;
}
body.page-how-to-choose .mel-htc-table__cell--value {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    color: #1a1a1a;
}
body.page-how-to-choose .mel-htc-table__row--em .mel-htc-table__cell--value {
    color: #EB2A2A;
    font-weight: 900;
}
body.page-how-to-choose .mel-htc-table__note {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 12px;
    color: #888;
    line-height: 1.8;
    margin: 14px 0 0;
    text-align: right;
}
body.page-how-to-choose .mel-htc-table__link {
    color: #EB2A2A;
    text-decoration: underline;
    font-weight: 700;
}

/* --------- Chapter 02：オンライン型 vs 店舗型 2列比較カード --------- */
body.page-how-to-choose .mel-htc-tab {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
}
body.page-how-to-choose .mel-htc-tab__col {
    padding: 32px 28px;
    background: #fff;
    border: 1px solid #F5C8C8;
    border-radius: 4px;
}
body.page-how-to-choose .mel-htc-tab__col:first-child {
    border-color: #EB2A2A;
    border-width: 2px;
    background: #FFF9F7;
}
body.page-how-to-choose .mel-htc-tab__head {
    text-align: center;
    padding-bottom: 22px;
    margin-bottom: 22px;
    border-bottom: 1px dashed #F5C8C8;
}
body.page-how-to-choose .mel-htc-tab__eyebrow {
    display: inline-block;
    font-family: 'Futura', 'Futura PT', 'Century Gothic', sans-serif;
    font-size: 12px;
    font-weight: 700;
    color: #EB2A2A;
    letter-spacing: 0.28em;
    margin-bottom: 8px;
}
body.page-how-to-choose .mel-htc-tab__ttl {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 24px;
    font-weight: 700;
    color: #1a1a1a;
    letter-spacing: 0.06em;
    line-height: 1.4;
    margin: 0 0 6px;
}
body.page-how-to-choose .mel-htc-tab__sub {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 12.5px;
    color: #888;
    letter-spacing: 0.06em;
    margin: 0;
}
body.page-how-to-choose .mel-htc-tab__list {
    list-style: none;
    padding: 0;
    margin: 0 0 22px;
    display: flex;
    flex-direction: column;
    gap: 14px;
}
body.page-how-to-choose .mel-htc-tab__list li {
    display: grid;
    grid-template-columns: 90px 1fr;
    align-items: baseline;
    gap: 14px;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 13.5px;
    line-height: 1.7;
    padding-bottom: 10px;
    border-bottom: 1px dashed #F5E8E8;
}
body.page-how-to-choose .mel-htc-tab__list li:last-child { border-bottom: 0; }
body.page-how-to-choose .mel-htc-tab__k {
    color: #EB2A2A;
    font-weight: 700;
    font-size: 12.5px;
    letter-spacing: 0.06em;
}
body.page-how-to-choose .mel-htc-tab__v {
    color: #1a1a1a;
    font-weight: 500;
}
body.page-how-to-choose .mel-htc-tab__v small {
    font-size: 11.5px;
    color: #888;
    margin-left: 6px;
}
body.page-how-to-choose .mel-htc-tab__reco {
    padding: 16px 18px;
    background: #FFEBEE;
    border-radius: 4px;
}
body.page-how-to-choose .mel-htc-tab__col:first-child .mel-htc-tab__reco {
    background: #fff;
}
body.page-how-to-choose .mel-htc-tab__reco-lbl {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 12px;
    font-weight: 700;
    color: #EB2A2A;
    letter-spacing: 0.12em;
    margin: 0 0 4px;
}
body.page-how-to-choose .mel-htc-tab__reco-txt {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 13px;
    color: #1a1a1a;
    line-height: 1.75;
    margin: 0;
}

/* --------- Chapter 04：3本柱カード --------- */
body.page-how-to-choose .mel-htc-pillar {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 22px;
    margin-bottom: 40px;
}
body.page-how-to-choose .mel-htc-pillar__card {
    padding: 36px 28px 30px;
    background: #fff;
    border: 2px solid #EB2A2A;
    border-radius: 4px;
    text-align: center;
}
body.page-how-to-choose .mel-htc-pillar__mark {
    display: block;
    width: 40px;
    height: auto;
    margin: 0 auto 14px;
}
body.page-how-to-choose .mel-htc-pillar__ttl {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 18px;
    font-weight: 700;
    color: #EB2A2A;
    letter-spacing: 0.06em;
    line-height: 1.4;
    margin: 0 0 12px;
    padding-bottom: 12px;
    border-bottom: 1px dashed #F5C8C8;
}
body.page-how-to-choose .mel-htc-pillar__txt {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 13.5px;
    color: #555;
    line-height: 1.85;
    margin: 0;
}

/* --------- Canva画像バナー（30万円お得） --------- */
body.page-how-to-choose .mel-htc-diff-link {
    display: block;
    text-decoration: none;
    color: #1a1a1a;
    text-align: center;
    transition: transform 0.35s ease, box-shadow 0.35s ease;
}
body.page-how-to-choose .mel-htc-diff-link:hover {
    transform: translateY(-3px);
}
body.page-how-to-choose .mel-htc-diff-link img {
    display: block;
    width: 100%;
    max-width: 1000px;
    height: auto;
    margin: 0 auto 16px;
    border-radius: 4px;
}
body.page-how-to-choose .mel-htc-diff-link__txt {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 14px;
    font-weight: 700;
    color: #EB2A2A;
    letter-spacing: 0.08em;
    margin: 0;
}
body.page-how-to-choose .mel-htc-diff-link__arrow {
    transition: transform 0.3s ease;
    display: inline-block;
    margin-left: 4px;
}
body.page-how-to-choose .mel-htc-diff-link:hover .mel-htc-diff-link__arrow {
    transform: translateX(4px);
}

/* --------- FAQ 上余白調整 --------- */
body.page-how-to-choose .mel-htc-faq {
    padding-top: 40px !important;
}

/* --------- SP ---------- */
@media (max-width: 768px) {
    body.page-how-to-choose .mel-htc-chap {
        padding: 60px 16px 60px;
    }
    body.page-how-to-choose .mel-htc-chap__head {
        margin-bottom: 32px;
    }
    body.page-how-to-choose .mel-htc-chap__chapter { font-size: 11.5px; padding: 5px 14px; margin-bottom: 12px; }
    body.page-how-to-choose .mel-htc-chap__ttl { font-size: 22px; margin-bottom: 16px; }
    body.page-how-to-choose .mel-htc-chap__lead { font-size: 13.5px; line-height: 1.9; }
    body.page-how-to-choose .mel-htc-chap__pc-br { display: none; }

    body.page-how-to-choose .mel-htc-chap__conclusion {
        flex-direction: column;
        gap: 12px;
        padding: 22px 20px;
        margin-top: 30px;
    }
    body.page-how-to-choose .mel-htc-chap__conclusion-txt { font-size: 13.5px; line-height: 1.85; }

    /* テーブル：SP は横スクロール＋相談所名列を左固定 */
    body.page-how-to-choose .mel-htc-table {
        overflow-x: auto;
        overflow-y: hidden;
    }
    body.page-how-to-choose .mel-htc-table__row {
        min-width: 660px;
        grid-template-columns: 130px 110px 110px 130px 110px;
    }
    body.page-how-to-choose .mel-htc-table__row--price {
        grid-template-columns: 130px 100px 90px 100px 100px;
        min-width: 620px;
    }
    body.page-how-to-choose .mel-htc-table__cell {
        padding: 12px 8px;
        font-size: 12px;
    }
    body.page-how-to-choose .mel-htc-table__cell--name {
        position: sticky;
        left: 0;
        z-index: 2;
    }
    body.page-how-to-choose .mel-htc-table__row--head .mel-htc-table__cell {
        font-size: 11.5px;
        padding: 10px 6px;
    }
    body.page-how-to-choose .mel-htc-table__row--head .mel-htc-table__cell:first-child {
        position: sticky;
        left: 0;
        z-index: 3;
        background: #EB2A2A;
    }
    body.page-how-to-choose .mel-htc-table__note { text-align: left; font-size: 11px; }

    /* Chapter 02 2列比較 → SP縦積み */
    body.page-how-to-choose .mel-htc-tab {
        grid-template-columns: 1fr;
        gap: 16px;
    }
    body.page-how-to-choose .mel-htc-tab__col { padding: 24px 20px; }
    body.page-how-to-choose .mel-htc-tab__ttl { font-size: 20px; }
    body.page-how-to-choose .mel-htc-tab__list li {
        grid-template-columns: 80px 1fr;
        gap: 10px;
        font-size: 12.5px;
    }
    body.page-how-to-choose .mel-htc-tab__k { font-size: 11.5px; }

    /* Chapter 04 3本柱 → SP縦積み */
    body.page-how-to-choose .mel-htc-pillar {
        grid-template-columns: 1fr;
        gap: 14px;
        margin-bottom: 28px;
    }
    body.page-how-to-choose .mel-htc-pillar__card { padding: 26px 22px 22px; }
    body.page-how-to-choose .mel-htc-pillar__mark { width: 32px; margin-bottom: 10px; }
    body.page-how-to-choose .mel-htc-pillar__ttl { font-size: 16px; margin-bottom: 10px; padding-bottom: 10px; }
    body.page-how-to-choose .mel-htc-pillar__txt { font-size: 13px; }

    body.page-how-to-choose .mel-htc-faq {
        padding-top: 20px !important;
    }
}

/* ==============================================================
   Best marriage method page ( body.page-best-marriage-method ) – 最適な婚活方法
   how-to-choose (page-how-to-choose) の CSS を継承（script で 4クラス add）
   独自追加：3方法比較・悩みケース・4段階メリット・下部誘導リンク
   ============================================================== */

/* --------- Chapter 01：3つの婚活方法 比較 --------- */
body.page-best-marriage-method .mel-bmm-methods {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    align-items: stretch;
}
body.page-best-marriage-method .mel-bmm-method {
    position: relative;
    padding: 32px 24px 28px;
    background: #fff;
    border: 1px solid #F5C8C8;
    border-radius: 4px;
    display: flex;
    flex-direction: column;
}
body.page-best-marriage-method .mel-bmm-method--em {
    background: #FFF9F7;
    border: 2px solid #EB2A2A;
    box-shadow: 0 18px 40px rgba(235,42,42,0.1);
}
body.page-best-marriage-method .mel-bmm-method__badge {
    position: absolute;
    top: -12px;
    left: 50%;
    transform: translateX(-50%);
    padding: 6px 18px;
    background: #EB2A2A;
    color: #fff;
    font-family: 'Futura', 'Futura PT', 'Century Gothic', sans-serif;
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: 0.24em;
    border-radius: 999px;
    box-shadow: 0 8px 18px rgba(235,42,42,0.24);
    text-transform: uppercase;
}
body.page-best-marriage-method .mel-bmm-method__head {
    text-align: center;
    padding-bottom: 20px;
    margin-bottom: 20px;
    border-bottom: 1px dashed #F5C8C8;
}
body.page-best-marriage-method .mel-bmm-method__eyebrow {
    display: inline-block;
    font-family: 'Futura', 'Futura PT', 'Century Gothic', sans-serif;
    font-size: 12px;
    font-weight: 700;
    color: #EB2A2A;
    letter-spacing: 0.28em;
    margin-bottom: 8px;
}
body.page-best-marriage-method .mel-bmm-method__ttl {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 22px;
    font-weight: 700;
    color: #1a1a1a;
    letter-spacing: 0.06em;
    line-height: 1.4;
    margin: 0 0 6px;
}
body.page-best-marriage-method .mel-bmm-method__sub {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 12.5px;
    color: #888;
    letter-spacing: 0.06em;
    margin: 0;
}
/* method 内の小さい写真 */
body.page-best-marriage-method .mel-bmm-method__pic {
    margin: 0 0 20px;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    border-radius: 4px;
    background: #FFF9F7;
}
body.page-best-marriage-method .mel-bmm-method__pic img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
body.page-best-marriage-method .mel-bmm-method__list {
    list-style: none;
    padding: 0;
    margin: 0 0 22px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    flex-grow: 1;
}
body.page-best-marriage-method .mel-bmm-method__list li {
    display: grid;
    grid-template-columns: 90px 1fr;
    align-items: baseline;
    gap: 12px;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 13.5px;
    line-height: 1.6;
    padding-bottom: 10px;
    border-bottom: 1px dashed #F5E8E8;
}
body.page-best-marriage-method .mel-bmm-method__list li:last-child { border-bottom: 0; }
body.page-best-marriage-method .mel-bmm-method__k {
    color: #EB2A2A;
    font-weight: 700;
    font-size: 12.5px;
    letter-spacing: 0.06em;
}
body.page-best-marriage-method .mel-bmm-method__v {
    color: #1a1a1a;
    font-weight: 500;
}
body.page-best-marriage-method .mel-bmm-method__v strong {
    color: #EB2A2A;
    font-weight: 900;
}
body.page-best-marriage-method .mel-bmm-method__v small {
    display: block;
    font-size: 11px;
    color: #888;
    margin-top: 2px;
}
body.page-best-marriage-method .mel-bmm-method__reco {
    padding: 14px 16px;
    background: #FFEBEE;
    border-radius: 4px;
}
body.page-best-marriage-method .mel-bmm-method--em .mel-bmm-method__reco {
    background: #fff;
    border: 1px solid #F5C8C8;
}
body.page-best-marriage-method .mel-bmm-method__reco-lbl {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 12px;
    font-weight: 700;
    color: #EB2A2A;
    letter-spacing: 0.12em;
    margin: 0 0 4px;
}
body.page-best-marriage-method .mel-bmm-method__reco-txt {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 12.5px;
    color: #1a1a1a;
    line-height: 1.75;
    margin: 0;
}

/* --------- Chapter 02：お悩みケース（横長カード縦積み） --------- */
body.page-best-marriage-method .mel-bmm-voice {
    display: flex;
    flex-direction: column;
    gap: 14px;
}
body.page-best-marriage-method .mel-bmm-voice__card {
    display: grid;
    grid-template-columns: 96px 1fr 1.1fr;
    align-items: center;
    gap: 28px;
    padding: 24px 32px;
    background: #FFF9F7;
    border-radius: 6px;
    border-left: 4px solid #EB2A2A;
}
body.page-best-marriage-method .mel-bmm-voice__num {
    font-family: 'Futura', 'Futura PT', 'Century Gothic', sans-serif;
    font-size: 14px;
    font-weight: 700;
    color: #EB2A2A;
    letter-spacing: 0.22em;
    margin: 0;
    line-height: 1.3;
}
body.page-best-marriage-method .mel-bmm-voice__quote {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 15.5px;
    font-weight: 700;
    color: #1a1a1a;
    letter-spacing: 0.04em;
    line-height: 1.7;
    margin: 0;
    padding-right: 24px;
    border-right: 1px dashed #F5C8C8;
}
body.page-best-marriage-method .mel-bmm-voice__solution {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 13.5px;
    font-weight: 500;
    color: #555;
    line-height: 1.85;
    margin: 0;
}
body.page-best-marriage-method .mel-bmm-voice__solution strong {
    color: #EB2A2A;
    font-weight: 900;
}
body.page-best-marriage-method .mel-bmm-voice__k {
    display: inline-block;
    color: #EB2A2A;
    font-weight: 900;
    font-size: 18px;
    margin-right: 6px;
    line-height: 1;
    vertical-align: -1px;
}

/* --------- Chapter 03：4段階メリット --------- */
body.page-best-marriage-method .mel-bmm-merit {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 18px;
}
body.page-best-marriage-method .mel-bmm-merit__card {
    padding: 32px 22px 26px;
    background: #fff;
    border: 2px solid #EB2A2A;
    border-radius: 4px;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
}
body.page-best-marriage-method .mel-bmm-merit__mark {
    display: block;
    width: 36px;
    height: auto;
    margin: 0 auto 12px;
}
body.page-best-marriage-method .mel-bmm-merit__step {
    font-family: 'Futura', 'Futura PT', 'Century Gothic', sans-serif;
    font-size: 12px;
    font-weight: 700;
    color: #EB2A2A;
    letter-spacing: 0.24em;
    margin: 0 0 6px;
}
body.page-best-marriage-method .mel-bmm-merit__ttl {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 20px;
    font-weight: 700;
    color: #1a1a1a;
    letter-spacing: 0.04em;
    line-height: 1.3;
    margin: 0 0 12px;
    padding-bottom: 12px;
    border-bottom: 1px dashed #F5C8C8;
    width: 100%;
}
body.page-best-marriage-method .mel-bmm-merit__txt {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 13px;
    color: #555;
    line-height: 1.85;
    margin: 0;
}

/* --------- Chapter 04：下部の2誘導リンクカード --------- */
body.page-best-marriage-method .mel-bmm-links {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    margin-top: 40px;
}
body.page-best-marriage-method .mel-bmm-links__item {
    display: flex;
    flex-direction: column;
    padding: 22px 26px;
    background: #FFF9F7;
    border: 1px solid #F5C8C8;
    border-radius: 4px;
    text-decoration: none;
    color: #1a1a1a;
    position: relative;
    transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}
body.page-best-marriage-method .mel-bmm-links__item:hover {
    transform: translateY(-3px);
    box-shadow: 0 14px 28px rgba(235,42,42,0.08);
    border-color: #EB2A2A;
}
body.page-best-marriage-method .mel-bmm-links__label {
    font-family: 'Futura', 'Futura PT', 'Century Gothic', sans-serif;
    font-size: 11.5px;
    font-weight: 700;
    color: #EB2A2A;
    letter-spacing: 0.24em;
    margin-bottom: 6px;
    text-transform: uppercase;
}
body.page-best-marriage-method .mel-bmm-links__ttl {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 17px;
    font-weight: 700;
    color: #1a1a1a;
    letter-spacing: 0.04em;
    line-height: 1.5;
}
body.page-best-marriage-method .mel-bmm-links__arrow {
    position: absolute;
    right: 22px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 18px;
    color: #EB2A2A;
    font-weight: 700;
    transition: transform 0.3s ease;
}
body.page-best-marriage-method .mel-bmm-links__item:hover .mel-bmm-links__arrow {
    transform: translate(4px, -50%);
}

/* --------- SP ---------- */
@media (max-width: 768px) {
    body.page-best-marriage-method .mel-bmm-methods {
        grid-template-columns: 1fr;
        gap: 20px;
    }
    body.page-best-marriage-method .mel-bmm-method {
        padding: 26px 20px 22px;
    }
    body.page-best-marriage-method .mel-bmm-method__ttl { font-size: 20px; }
    body.page-best-marriage-method .mel-bmm-method__list li {
        grid-template-columns: 80px 1fr;
        gap: 10px;
        font-size: 12.5px;
    }
    body.page-best-marriage-method .mel-bmm-method__k { font-size: 11.5px; }
    body.page-best-marriage-method .mel-bmm-method__reco { padding: 12px 14px; }
    body.page-best-marriage-method .mel-bmm-method__reco-txt { font-size: 12px; }
    body.page-best-marriage-method .mel-bmm-method__badge { font-size: 10.5px; padding: 5px 14px; top: -11px; }

    body.page-best-marriage-method .mel-bmm-voice { gap: 12px; }
    body.page-best-marriage-method .mel-bmm-voice__card {
        grid-template-columns: 1fr;
        gap: 12px;
        padding: 20px 20px;
    }
    body.page-best-marriage-method .mel-bmm-voice__num { font-size: 12.5px; }
    body.page-best-marriage-method .mel-bmm-voice__quote {
        font-size: 14px;
        padding-right: 0;
        padding-bottom: 12px;
        border-right: 0;
        border-bottom: 1px dashed #F5C8C8;
    }
    body.page-best-marriage-method .mel-bmm-voice__solution { font-size: 13px; }
    body.page-best-marriage-method .mel-bmm-voice__k { font-size: 15px; margin-right: 4px; }
    body.page-best-marriage-method .mel-bmm-method__pic { margin: 0 0 16px; }

    body.page-best-marriage-method .mel-bmm-merit {
        grid-template-columns: 1fr 1fr;
        gap: 12px;
    }
    body.page-best-marriage-method .mel-bmm-merit__card { padding: 24px 16px 20px; }
    body.page-best-marriage-method .mel-bmm-merit__mark { width: 30px; margin-bottom: 10px; }
    body.page-best-marriage-method .mel-bmm-merit__step { font-size: 11px; }
    body.page-best-marriage-method .mel-bmm-merit__ttl { font-size: 17px; margin-bottom: 10px; padding-bottom: 10px; }
    body.page-best-marriage-method .mel-bmm-merit__txt { font-size: 12px; line-height: 1.75; }

    body.page-best-marriage-method .mel-bmm-links {
        grid-template-columns: 1fr;
        gap: 10px;
        margin-top: 28px;
    }
    body.page-best-marriage-method .mel-bmm-links__item { padding: 18px 22px 18px 20px; }
    body.page-best-marriage-method .mel-bmm-links__ttl { font-size: 15px; }
    body.page-best-marriage-method .mel-bmm-links__arrow { font-size: 16px; right: 16px; }
}
