/* ============================================================
   伏見パーソナル整体院 LP — コード版
   画像つぎはぎLP（案1）をコードで再現。各セクションは独立モジュール。
   （後日 WordPress / ACF Flexible Content へ移植する前提の構造）
   ============================================================ */

/* ---------- tokens ---------- */
:root{
  --col: 448px;
  --navy: #0b1522;          /* カード/セクション基準ネイビー */
  --navy-2: #011129;        /* CTA/フッター系ネイビー */
  --navy-3: #08172e;
  --navy-panel: #101f33;    /* ガラスパネル */
  --orange: #e8681c;
  --orange-2: #f08a3c;
  --beige: #e6e1d7;         /* body背景 */
  --cream: #f5f2ec;
  --cream-2: #efebe3;
  --ink: #222;
  --ink-2: #444;
  --gray: #8a8a8a;
  --gold: #b8945a;
  --gold-2: #d8b878;
  --serif: "Shippori Mincho","Noto Serif JP","Hiragino Mincho ProN","Yu Mincho",serif;
  --sans: "Noto Sans JP","Hiragino Sans","Yu Gothic",sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{background:var(--beige);font-family:var(--sans);color:var(--ink);-webkit-font-smoothing:antialiased;line-height:1.6}
img{display:block;max-width:100%}
a{color:inherit}

.lp{max-width:var(--col);margin:0 auto;background:var(--cream);overflow:hidden;padding-bottom:84px;box-shadow:0 0 24px rgba(0,0,0,.12)}

/* ---------- 共通部品 ---------- */
.sec{padding:56px 22px}
.serif{font-family:var(--serif)}

/* シルバーメタリック文字（ネイビー地用） */
.metal{
  background:linear-gradient(180deg,#ffffff 0%,#e9eef5 35%,#9fb0c4 55%,#dfe7f0 75%,#ffffff 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 2px 3px rgba(0,0,0,.55));
}
/* オレンジゴールド文字 */
.fire{
  background:linear-gradient(180deg,#f9b872 0%,#ef8a35 45%,#d95f10 70%,#f5a45c 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 2px 3px rgba(0,0,0,.45));
}

/* 罫線＋菱形の区切り */
.divider{display:flex;align-items:center;gap:0;margin:18px auto;max-width:320px}
.divider::before,.divider::after{content:"";flex:1;height:1px;background:currentColor;opacity:.55}
.divider .dia{width:9px;height:9px;transform:rotate(45deg);background:currentColor;margin:0 10px;flex:none}
.divider.-orange{color:var(--orange)}
.divider.-gold{color:var(--gold)}
.divider.-silver{color:#b9c4d2}

/* オレンジCTAボタン */
.btn-cta{
  display:block;text-decoration:none;text-align:center;border-radius:14px;
  background:linear-gradient(180deg,#f2913f 0%,var(--orange) 55%,#d8590f 100%);
  color:#fff;font-family:var(--serif);font-weight:700;
  padding:20px 16px;font-size:20px;letter-spacing:.04em;
  box-shadow:0 6px 20px rgba(232,104,28,.42),inset 0 1px 0 rgba(255,255,255,.45);
  border:1px solid rgba(255,255,255,.25);
}
.btn-cta::after{content:" ›";font-weight:700}
.btn-cta:active{transform:translateY(1px)}

/* セクション見出し（クリーム地） */
.h-cream{font-family:var(--serif);font-weight:700;font-size:26px;line-height:1.5;text-align:center;color:var(--ink)}
.h-line{width:44px;height:2px;background:var(--orange);margin:16px auto 0}

/* ============================================================
   1. ヒーロー（sec--hero）
   ============================================================ */
.sec--hero{background:linear-gradient(180deg,#0d1826 0%,var(--navy-2) 100%);padding:0 0 34px;color:#fff}
.hero-topbar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;background:linear-gradient(180deg,#0a1420,#0d1e33)}
.hero-topbar .t-name{min-width:0}
.hero-topbar .t-sub{font-size:10.5px;color:#d8c49a;letter-spacing:.05em;line-height:1.3}
.hero-topbar .t-main{font-family:var(--serif);font-size:16.5px;font-weight:700;color:#fff;letter-spacing:.04em;white-space:nowrap}
.hero-topbar .t-cta{
  flex:none;display:flex;align-items:center;gap:6px;text-decoration:none;
  background:linear-gradient(180deg,#f2913f,var(--orange) 60%,#d8590f);color:#fff;
  font-size:12.5px;font-weight:700;padding:9px 12px;border-radius:8px;
  box-shadow:0 3px 10px rgba(232,104,28,.4);
}
.hero-photo{position:relative;line-height:0}
.hero-photo img{width:100%}
.hero-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,21,34,.18) 0%,rgba(11,21,34,0) 22%,rgba(1,17,41,0) 55%,rgba(1,17,41,.92) 96%)}
.hero-badges{display:flex;gap:10px;padding:0 20px;margin-top:-6px;position:relative;z-index:2}
.hero-badges .pill{display:flex;align-items:center;gap:6px;font-size:12px;color:#e8e3d8;border:1px solid rgba(216,196,154,.6);border-radius:999px;padding:6px 13px;background:rgba(4,12,24,.55)}
.hero-badges .pill .ico{color:#e2a54c;font-style:normal}
.hero-h1{padding:14px 20px 0;font-family:var(--serif);font-weight:700;font-size:44px;line-height:1.32;letter-spacing:.02em}
.hero-h1 .l2{
  background:linear-gradient(180deg,#f6d8a8 0%,#e9b96e 40%,#c98a3a 65%,#f0cf96 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 2px 3px rgba(0,0,0,.5));
}
.hero-sub{margin:14px 20px 0;padding-bottom:10px;font-family:var(--serif);font-size:19px;font-weight:600;color:#f3efe7;letter-spacing:.03em;border-bottom:2px solid;border-image:linear-gradient(90deg,#e8a04c,rgba(232,160,76,.05)) 1}
.hero-lead{margin:12px 20px 0;font-size:13.5px;color:#cfd6df;line-height:2}
.hero-price{
  margin:20px 16px 0;border-radius:16px;padding:1.4px;
  background:linear-gradient(140deg,#f2f5f9,#8fa0b5 30%,#2c3c52 55%,#c9d4e2 80%,#f2f5f9);
  box-shadow:0 8px 24px rgba(0,0,0,.4);
}
.hero-price .in{
  border-radius:15px;background:linear-gradient(155deg,rgba(22,37,58,.96),rgba(8,18,33,.98));
  padding:18px 14px 14px;position:relative;overflow:hidden;
}
.hero-price .in::before{
  content:"";position:absolute;top:-60%;left:-20%;width:70%;height:220%;
  background:linear-gradient(75deg,transparent,rgba(255,255,255,.09),transparent);
  transform:rotate(8deg);pointer-events:none;
}
.hero-price .row1{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.hero-price .t60{font-family:var(--serif);font-size:20px;font-weight:700}
.hero-price .t60 b{font-size:26px}
.hero-price .row1 .tag{font-size:11.5px;color:#f0ead9;background:#1d2c42;border:1px solid #33445e;padding:5px 9px;border-radius:6px;letter-spacing:.02em}
.hero-price .row2{display:flex;align-items:baseline;gap:10px;margin-top:10px;flex-wrap:wrap}
.hero-price .was{font-size:13.5px;color:#aab4c2}
.hero-price .was s{text-decoration:line-through;text-decoration-color:#e05b5b;text-decoration-thickness:2px}
.hero-price .now{font-family:var(--serif);font-weight:700;font-size:52px;line-height:1}
.hero-price .now small{font-size:20px}
.hero-price .tax{font-size:12px;color:#c8cfda}
.hero-price .row3{display:flex;margin-top:12px;border-top:1px solid rgba(216,196,154,.3);padding-top:11px}
.hero-price .row3 span{flex:1;text-align:center;font-size:12.5px;color:#e7ecf3;display:flex;align-items:center;justify-content:center;gap:6px}
.hero-price .row3 span+span{border-left:1px solid rgba(216,196,154,.3)}
.hero-price .row3 .ic{color:#e2a54c;font-style:normal}
.sec--hero .btn-cta{margin:16px 16px 0}
.hero-stats{display:flex;gap:8px;margin:14px 16px 0}
.hero-stats .st{flex:1;border:1px solid rgba(216,196,154,.45);border-radius:10px;padding:10px 6px;text-align:center;background:rgba(9,20,36,.6)}
.hero-stats .st .a{font-size:11px;color:#d8c49a;display:flex;align-items:center;justify-content:center;gap:4px}
.hero-stats .st .b{font-family:var(--serif);font-weight:700;font-size:19px;color:#fff;margin-top:3px}
.hero-stats .st .b small{font-size:12px}

/* ============================================================
   2. お悩み（sec--worry）
   ============================================================ */
.sec--worry{position:relative;background:linear-gradient(180deg,#f7f4ee,#f1ece2);padding:54px 0 0;overflow:hidden}
.worry-photo{position:absolute;top:0;right:0;width:56%;z-index:0}
.worry-photo img{width:100%;opacity:.96}
.worry-in{position:relative;z-index:1;padding:0 22px 0}
.worry-h{font-family:var(--serif);font-weight:700;font-size:33px;line-height:1.5;color:#2b2b2b}
.worry-h .gold{background:linear-gradient(180deg,#caa25c,#8f6a2e);-webkit-background-clip:text;background-clip:text;color:transparent}
.worry-swash{width:62%;height:2px;margin-top:14px;background:linear-gradient(90deg,rgba(184,148,90,.05),#b8945a 40%,rgba(184,148,90,.1))}
.worry-label{display:flex;align-items:center;gap:12px;margin:30px 0 16px;color:#7c5f33;font-family:var(--serif);font-size:15.5px;letter-spacing:.06em;font-weight:600}
.worry-label::before,.worry-label::after{content:"";width:26px;height:1px;background:#b39055}
.worry-list{list-style:none;display:grid;gap:12px;max-width:66%}
.worry-list li{
  display:flex;align-items:center;gap:12px;background:rgba(255,255,255,.92);
  border-radius:10px;padding:15px 14px;box-shadow:0 3px 12px rgba(150,130,90,.14);
  font-family:var(--serif);font-size:14.5px;font-weight:600;color:#333;line-height:1.55;
}
.worry-list .chk{flex:none;width:26px;height:26px;border-radius:50%;border:1.6px solid #bd9a5d;color:#a8823f;display:flex;align-items:center;justify-content:center;font-size:14px;background:#fff}
.worry-foot{margin-top:34px;background:linear-gradient(180deg,#efe6d4,#e9ddc6);border-top:2px solid #d9c39a;padding:30px 22px 40px;text-align:center}
.worry-foot .orn{color:#a8823f;font-size:18px;letter-spacing:.3em}
.worry-foot .t{margin-top:10px;font-family:var(--serif);font-weight:700;font-size:25px;line-height:1.65;color:#2b2b2b}
.worry-foot .t .gold{background:linear-gradient(180deg,#c9a05a,#8f6a2e);-webkit-background-clip:text;background-clip:text;color:transparent;font-size:31px}

/* ============================================================
   3. 戻る理由（sec--reason）
   ============================================================ */
.sec--reason{background:linear-gradient(180deg,#f8f4ec,#f4efe6)}
.reason-h{font-family:var(--serif);font-weight:700;font-size:29px;line-height:1.55;text-align:center;color:#2e2e2e}
.reason-h .or{color:var(--orange)}
.reason-lead{margin-top:16px;font-size:13.5px;line-height:2;text-align:center;color:#4c463c;font-family:var(--serif)}
.reason-quote{margin-top:22px;background:#f6e8d8;border-left:4px solid var(--orange);border-radius:0 12px 12px 0;padding:20px 18px;position:relative}
.reason-quote .qm{position:absolute;top:10px;left:12px;font-family:Georgia,serif;font-size:40px;color:rgba(232,104,28,.45);line-height:1}
.reason-quote p{font-family:var(--serif);font-size:15.5px;font-weight:600;line-height:1.95;color:#3c352b;padding-left:34px}
.reason-quote .or{color:var(--orange)}
.rflow{margin-top:26px;display:grid;gap:0;justify-items:center}
.rflow .nd{width:78%;background:#fffdf8;border:1.4px solid #e9c9a4;border-radius:12px;padding:13px 10px;text-align:center;font-family:var(--serif);font-weight:700;font-size:19px;color:#3a332a;display:flex;align-items:center;justify-content:center;gap:9px}
.rflow .nd .ic{color:#dd9a55;font-style:normal;font-size:16px}
.rflow .ar{color:var(--orange);font-size:20px;line-height:1;padding:7px 0}
.rflow .tri{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;width:100%}
.rflow .tri .nd{width:100%;flex-direction:column;gap:6px;font-size:18px;padding:16px 6px}
.rflow .tri .ic{font-size:22px}
.rflow .nd.-em{color:var(--orange)}

/* ============================================================
   4. ベネフィット（sec--benefit）＋ CTA
   ============================================================ */
.sec--benefit{background:radial-gradient(120% 90% at 50% 0%,#12233a 0%,var(--navy) 58%,#08101c 100%);color:#fff;padding-bottom:30px}
.ben-h .s{display:block;text-align:center;font-family:var(--serif);font-size:16px;letter-spacing:.1em;color:#c9d2de;font-weight:600}
.ben-h .m{display:block;text-align:center;font-family:var(--serif);font-weight:700;font-size:27.5px;line-height:1.6;margin-top:10px}
.ben-cards{display:grid;gap:18px;margin-top:26px}
.ben-card{
  display:flex;align-items:center;gap:16px;border-radius:16px;padding:20px 16px;
  background:linear-gradient(150deg,rgba(255,255,255,.10),rgba(255,255,255,.03) 45%,rgba(255,255,255,.07));
  border:1px solid rgba(197,210,226,.34);box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 8px 22px rgba(0,0,0,.35);
}
.ben-card .ph{flex:none;width:118px;height:118px;border-radius:50%;padding:4px;background:linear-gradient(160deg,#f2f5f9,#8fa0b5 55%,#dfe7f0)}
.ben-card .ph img{width:100%;height:100%;border-radius:50%;object-fit:cover}
.ben-card p{font-family:var(--serif);font-weight:600;font-size:18.5px;line-height:1.75;letter-spacing:.02em}
.sec--benefit-cta{background:#08101c;padding:6px 22px 44px}

/* ============================================================
   5. 3×3 METHOD（sec--method）
   ============================================================ */
.sec--method{background:radial-gradient(130% 80% at 50% 0%,#13233b 0%,var(--navy) 55%,#070f1a 100%);color:#fff}
.mt-ribbon{text-align:center;font-family:var(--serif);font-size:15.5px;letter-spacing:.06em;color:#dbe3ee;font-weight:600}
.mt-title{text-align:center;font-family:var(--serif);font-weight:700;font-size:52px;line-height:1.15;margin-top:8px;letter-spacing:.01em}
.mt-title .x{font-size:40px}
.mt-kana{text-align:center;color:var(--orange-2);font-family:var(--serif);letter-spacing:.34em;font-size:14px;margin-top:10px;font-weight:600}
.mt-lead{margin-top:18px;text-align:center;font-family:var(--serif);font-size:14.5px;line-height:2;color:#e7ecf3;font-weight:500}
.mt-lead .jp1{color:#f4c78a;font-weight:700}
.mt-grid{margin-top:26px;display:grid;grid-template-columns:76px 1fr 1fr 1fr;gap:7px}
.mt-grid .cell{border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;min-height:74px;padding:9px 4px}
.mt-grid .blank{background:transparent}
.mt-grid .colh{background:linear-gradient(180deg,#101f33,#0a1626);border:1px solid #2a3a52;font-family:var(--serif);font-weight:700;font-size:17px;gap:5px}
.mt-grid .colh .ic{color:#e2a54c;font-size:19px;line-height:1;font-style:normal}
.mt-grid .rowh{background:linear-gradient(160deg,#3a2413,#241608);border:1px solid #7a4c22;font-family:var(--serif);font-weight:700;font-size:13px;gap:5px;color:#f6e3cd}
.mt-grid .rowh .ic{color:#eda45c;font-size:18px;line-height:1;font-style:normal}
.mt-grid .bd{background:linear-gradient(170deg,#0e1c2f,#0a1524);border:1px solid #23334a;font-family:var(--serif);font-weight:600;font-size:13.5px;line-height:1.6;color:#e9eef5}

/* ============================================================
   6. 対応症状（sec--symptoms）
   ============================================================ */
.sec--symptoms{background:linear-gradient(180deg,#f6f1e8,#f1ebdf)}
.sym-en{text-align:center;letter-spacing:.3em;color:#9a917f;font-size:12.5px;margin-top:8px}
.sym-lead{text-align:center;font-family:var(--serif);font-size:14px;color:#4c463c;margin-top:14px}
.sym-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:22px}
.sym-grid img{width:100%;border-radius:12px;box-shadow:0 4px 14px rgba(120,100,60,.18)}

/* ============================================================
   7. 流れ5ステップ（sec--flow5）
   ============================================================ */
.sec--flow5{background:linear-gradient(180deg,#f7f4ee,#f2eee6)}
.f5-box{margin-top:24px;border:1.4px solid #d9d2c4;border-radius:12px;background:#fbf9f4;padding:16px}
.f5-box .lab{font-size:12.5px;color:#7d766a}
.f5-box .seq{margin-top:6px;font-family:var(--serif);font-weight:700;font-size:17.5px;color:#333;line-height:1.8}
.f5-box .seq .ar{color:#b3ab9b;padding:0 4px;font-weight:400}
.f5-box .seq .gray{color:#a9a294}
.f5-down{color:var(--orange);text-align:center;font-size:18px;padding:8px 0}
.f5-box.-ours{border:1.6px solid #eba368;background:#fdf3e7}
.f5-box.-ours .lab{color:var(--orange);font-weight:700}
.f5-box.-ours .seq{font-size:16.5px}
.f5-box.-ours .em{color:var(--orange)}
.f5-rows{display:grid;gap:14px;margin-top:26px}
.f5-row{display:grid;grid-template-columns:112px 1fr;background:#fbf9f5;border-radius:10px;overflow:hidden;box-shadow:0 3px 12px rgba(140,120,80,.12)}
.f5-row img{width:100%;height:100%;object-fit:cover}
.f5-row .tx{padding:14px 14px 14px 16px;display:flex;align-items:center;gap:13px}
.f5-row .no{font-family:var(--serif);font-weight:700;font-size:30px;color:var(--orange);line-height:1}
.f5-row .tt{font-family:var(--serif);font-weight:700;font-size:17px;color:#2e2b25;line-height:1.4}
.f5-row .dd{font-size:12px;color:#6c6559;margin-top:4px;line-height:1.6}

/* ============================================================
   8. アプローチの違い（sec--compare）
   ============================================================ */
.sec--compare{background:linear-gradient(180deg,#f8f4ec,#f3eee4)}
.cmp-table{width:100%;border-collapse:separate;border-spacing:0;margin-top:22px;background:#fdfbf6;border-radius:12px;overflow:hidden;box-shadow:0 4px 16px rgba(140,115,70,.14);font-family:var(--serif)}
.cmp-table th,.cmp-table td{border-bottom:1px solid #e7e0d2;padding:13px 4px;text-align:center;font-size:12.5px}
.cmp-table tr:last-child th,.cmp-table tr:last-child td{border-bottom:none}
.cmp-table thead th{font-weight:600;color:#5d564a;font-size:12px;padding:14px 4px}
.cmp-table thead .us{background:linear-gradient(180deg,#c9a25c,#a67c33);color:#fff;font-weight:700;font-size:12.5px;line-height:1.5}
.cmp-table tbody th{text-align:left;padding-left:13px;font-weight:600;color:#3d382f;font-size:12.5px;width:34%}
.cmp-table td.us{background:#f8ecd9}
.cmp-table .mk{font-size:17px;color:#4c463c}
.cmp-table .dbl{color:var(--orange);font-size:18px;font-weight:700}
.cmp-note{margin-top:16px;text-align:center;font-size:11px;color:#8a8172}
.orn-line{display:flex;align-items:center;justify-content:center;gap:10px;color:#b8945a;margin-top:22px}
.orn-line::before,.orn-line::after{content:"";width:90px;height:1px;background:#cdb98e}
.orn-line .dia{width:8px;height:8px;transform:rotate(45deg);background:var(--orange)}

/* ============================================================
   9. 選ばれる7つの基準（sec--criteria）
   ============================================================ */
.sec--criteria{background:radial-gradient(130% 70% at 50% 0%,#13233b,var(--navy) 55%,#070f1a);color:#fff}
.crt-h{text-align:center;font-family:var(--serif);font-weight:700;font-size:26px;line-height:1.7}
.crt-h .g7{background:linear-gradient(180deg,#f6d8a8,#c98a3a);-webkit-background-clip:text;background-clip:text;color:transparent;font-size:34px;padding:0 2px}
.crt-en{text-align:center;color:var(--orange-2);letter-spacing:.42em;font-size:12px;margin-top:12px}
.crt-cards{display:grid;gap:14px;margin-top:24px}
.crt-cards img{width:100%;border-radius:12px;border:1px solid rgba(197,210,226,.22);box-shadow:0 8px 22px rgba(0,0,0,.4)}

/* ============================================================
   10. 国家資格（sec--license）
   ============================================================ */
.sec--license{background:linear-gradient(180deg,#0d1a2c,var(--navy) 60%,#08111d);color:#fff}
.lic-s{text-align:center;font-family:var(--serif);font-size:15px;letter-spacing:.08em;color:#c9d2de;font-weight:600}
.lic-h{text-align:center;font-family:var(--serif);font-weight:700;font-size:27px;line-height:1.6;margin-top:10px}
.lic-frame{margin-top:26px;background:#f5f4f0;border-radius:6px;border:2px solid #cfd6df;box-shadow:inset 0 0 0 1px #fff,0 10px 26px rgba(0,0,0,.4);aspect-ratio:16/10.6;display:flex;align-items:center;justify-content:center;color:#b9b4a8;font-size:12px}
.lic-cap{display:flex;align-items:center;justify-content:center;gap:12px;margin:16px 0 8px}
.lic-cap .tag{font-family:var(--serif);font-size:12px;color:#f4c78a;border:1px solid #a06a33;border-radius:6px;padding:4px 10px;letter-spacing:.08em}
.lic-cap .nm{font-family:var(--serif);font-weight:700;font-size:26px;letter-spacing:.06em}
.lic-note{text-align:center;color:#9fabbb;font-size:11.5px;margin-top:26px}

/* ============================================================
   11. 研究（sec--research）
   ============================================================ */
.sec--research{background:linear-gradient(180deg,#f8f5ee,#f3efe6)}
.rs-lead{margin-top:18px;text-align:center;font-family:var(--serif);font-size:14px;line-height:2.05;color:#484135}
.rs-steps{display:grid;gap:0;margin-top:24px;justify-items:center}
.rs-step{width:100%;display:flex;align-items:center;gap:18px;background:#fdfbf6;border:1.5px solid #d9bf92;border-radius:14px;padding:18px 22px;box-shadow:0 4px 14px rgba(150,120,70,.12)}
.rs-step .no{font-family:Georgia,var(--serif);font-style:italic;font-weight:700;font-size:34px;background:linear-gradient(180deg,#caa25c,#906c30);-webkit-background-clip:text;background-clip:text;color:transparent;line-height:1}
.rs-step .vr{width:1px;align-self:stretch;background:linear-gradient(180deg,transparent,#caa25c,transparent)}
.rs-step .tt{font-family:var(--serif);font-weight:700;font-size:23px;color:#2e2a23;letter-spacing:.04em}
.rs-ar{color:var(--orange);font-size:19px;padding:8px 0;text-align:center}
.rs-note{margin-top:22px;text-align:center;font-size:10.5px;color:#8a8172}

/* ============================================================
   12. 中間CTA（sec--midcta）
   ============================================================ */
.sec--midcta{background:linear-gradient(180deg,#f7f3ea,#f4efe5);text-align:center}
.mid-h{font-family:var(--serif);font-weight:700;font-size:24px;color:#2e2b25;letter-spacing:.03em}
.sec--midcta .btn-cta{margin-top:26px}

/* ============================================================
   13. クチコミ（sec--reviews）
   ============================================================ */
.sec--reviews{background:linear-gradient(180deg,#f8f4ec,#f4efe6)}
.rev-h{font-family:var(--serif);font-weight:700;font-size:25px;line-height:1.65;text-align:center;color:#2e2b25}
.rev-h .or{color:var(--orange)}
.rev-cards{display:grid;gap:16px;margin-top:24px}
.rev-card{background:#fefcf8;border-radius:14px;padding:20px 18px;box-shadow:0 4px 16px rgba(150,125,80,.14);display:grid;grid-template-columns:1fr 108px;gap:14px}
.rev-card .stars{color:var(--orange);font-size:17px;letter-spacing:.14em}
.rev-card .qm{font-family:Georgia,serif;font-size:34px;color:#ded5c2;line-height:.6;margin-top:10px}
.rev-card p{font-family:var(--serif);font-size:13.5px;line-height:1.95;color:#3c362c;margin-top:8px}
.rev-card .who{margin-top:12px;font-size:12px;color:#8b8272;font-family:var(--serif)}
.rev-card .av{grid-row:1/5;align-self:start;width:108px;height:132px;border-radius:10px;background:#efe9dc;display:flex;align-items:flex-end;justify-content:center;overflow:hidden}
.rev-card .av svg{width:86%;display:block;color:#d4c9b4}
.rev-note{margin-top:16px;text-align:center;font-size:10.5px;color:#8a8172}

/* ============================================================
   14. 医師の太鼓判（sec--doctors）
   ============================================================ */
.sec--doctors{background:linear-gradient(180deg,#f6f2ea,#f2ede3)}
.doc-head{text-align:center}
.doc-head .fu{display:inline-block;font-family:var(--serif);font-weight:700;font-size:15px;color:#333;letter-spacing:.1em}
.doc-head .fu::before{content:"＼";color:var(--orange);padding-right:4px}
.doc-head .fu::after{content:"／";color:var(--orange);padding-left:4px}
.doc-head .row{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:6px}
.doc-head .big{font-family:var(--serif);font-weight:700;font-size:30px;color:#222}
.doc-head .stamp{font-family:var(--serif);font-weight:700;font-size:28px;color:#c0392b;border:3px solid #c0392b;border-radius:6px;padding:2px 10px;transform:rotate(-3deg);letter-spacing:.06em}
.doc-item{margin-top:34px}
.doc-item .q{font-family:var(--serif);font-weight:700;font-size:20px;line-height:1.7;color:var(--orange);letter-spacing:.02em}
.doc-item .cols{display:grid;grid-template-columns:1fr 150px;gap:14px;margin-top:14px}
.doc-item .cols p{font-family:var(--serif);font-size:13.5px;line-height:2;color:#37322a}
.doc-item .phw img{width:100%;border-radius:8px;box-shadow:0 4px 12px rgba(120,100,60,.25)}
.doc-item .phw figcaption{margin-top:8px;font-size:11px;color:#5d564a;text-align:center;line-height:1.6;font-family:var(--serif)}
.doc-item .phw figcaption b{font-size:13px}

/* ============================================================
   15. ビフォーアフター（sec--ba）
   ============================================================ */
.sec--ba{background:linear-gradient(180deg,#f8f4ec,#f3eee4)}
.ba-lead{text-align:center;font-family:var(--serif);font-size:13.5px;color:#4c463c;margin-top:12px}
.ba-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:22px}
.ba-card{background:#fefcf8;border-radius:12px;padding:9px 9px 11px;box-shadow:0 4px 14px rgba(150,125,80,.15)}
.ba-card img{width:100%;border-radius:7px}
.ba-card figcaption{margin-top:9px;text-align:center;font-family:var(--serif);font-size:11px;color:#3c362c;letter-spacing:.01em}
.ba-note{margin-top:18px;text-align:center;font-size:10px;color:#8a8172;line-height:1.8}

/* ============================================================
   16. 数字で見る（sec--numbers）
   ============================================================ */
.sec--numbers{background:radial-gradient(130% 75% at 50% 0%,#13233b,var(--navy) 58%,#070f1a);color:#fff}
.num-s{text-align:center;font-family:var(--serif);font-size:20px;color:#dfe6ef;font-weight:600;letter-spacing:.1em}
.num-h{text-align:center;font-family:var(--serif);font-weight:700;font-size:37px;letter-spacing:.05em;margin-top:8px}
.num-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:26px}
.num-card{
  position:relative;border-radius:14px;padding:22px 10px 18px;text-align:center;
  background:linear-gradient(155deg,rgba(255,255,255,.12),rgba(255,255,255,.03) 45%,rgba(255,255,255,.08));
  border:1px solid rgba(197,210,226,.36);box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 8px 20px rgba(0,0,0,.35);
}
.num-card.-wide{grid-column:1/3;display:grid;grid-template-columns:1fr 1fr;padding:26px 6px 20px}
.num-card.-wide .half+.half{border-left:1px solid rgba(197,210,226,.3)}
.num-badge{position:absolute;top:-13px;left:50%;transform:translateX(-50%);font-family:var(--serif);font-size:12.5px;font-weight:700;color:#fff;background:var(--navy-2);border:1px solid #8fa0b5;border-radius:6px;padding:3px 14px;white-space:nowrap;letter-spacing:.06em}
.num-v{font-family:var(--serif);font-weight:700;font-size:40px;line-height:1.05}
.num-v small{font-size:17px}
.num-l{margin-top:10px;padding-top:9px;border-top:1px solid rgba(197,210,226,.4);font-size:12px;color:#dfe6ef;line-height:1.6;font-family:var(--sans);display:inline-block;min-width:78%}
.num-note{font-size:9.5px;color:#9fabbb;margin-top:6px}

/* ============================================================
   17. 初回体験の流れ（sec--trial）
   ============================================================ */
.sec--trial{background:linear-gradient(180deg,#f8f5ee,#f3efe6)}
.tr-steps{display:grid;gap:0;margin-top:26px;justify-items:center}
.tr-step{width:100%;background:#fdfbf7;border-radius:14px;box-shadow:0 4px 14px rgba(150,125,80,.13);padding:20px 18px;display:flex;gap:16px;align-items:center}
.tr-step .cir{flex:none;width:64px;height:64px;border-radius:50%;border:1.6px solid #e0a06a;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--orange);font-family:var(--serif)}
.tr-step .cir .s{font-size:10px;letter-spacing:.12em}
.tr-step .cir .n{font-size:24px;font-weight:700;line-height:1}
.tr-step .tt{font-family:var(--serif);font-weight:700;font-size:19px;color:#2e2a23}
.tr-step .dd{font-size:12.5px;color:#6c6559;margin-top:5px;line-height:1.7}
.tr-con{height:26px;width:0;border-left:1.5px dashed #d9b98c;position:relative}
.tr-con::after{content:"";position:absolute;bottom:-1px;left:-4.5px;border:4.5px solid transparent;border-top-color:#d9a86c}

/* ============================================================
   18. 料金オファー（sec--price）
   ============================================================ */
.sec--price{background:linear-gradient(165deg,#0e1c30 0%,var(--navy-2) 55%,#04101f 100%);color:#fff;text-align:center}
.pr-badge{display:inline-block;font-family:var(--serif);font-size:14px;color:#f4c78a;border:1.4px solid #b97f3f;border-radius:999px;padding:7px 22px;letter-spacing:.14em}
.pr-h{font-family:var(--serif);font-weight:700;font-size:44px;letter-spacing:.08em;margin-top:18px}
.pr-price{margin-top:6px;font-family:var(--serif);font-weight:700;font-size:76px;line-height:1.1}
.pr-price small{font-size:26px}
.pr-price .tax{font-size:13px;color:#c8cfda;font-weight:400;margin-left:4px}
.pr-was{font-family:var(--serif);font-size:16px;color:#aab4c2;margin-top:6px;letter-spacing:.06em}
.pr-icons{display:flex;margin:26px 0 0;border:1px solid rgba(216,196,154,.4);border-radius:12px;background:rgba(10,22,40,.6);padding:18px 4px}
.pr-icons .it{flex:1;display:flex;flex-direction:column;align-items:center;gap:9px;font-family:var(--serif);font-size:12px;color:#f0ead9}
.pr-icons .it+.it{border-left:1px solid rgba(216,196,154,.28)}
.pr-icons .ic{font-size:24px;color:#eda45c;font-style:normal;line-height:1}
.pr-checks{margin-top:8px;text-align:left}
.pr-checks .c{display:flex;align-items:center;gap:11px;padding:13px 6px;border-bottom:1px solid rgba(197,210,226,.2);font-family:var(--serif);font-size:15px;color:#eef2f7}
.pr-checks .c:last-child{border-bottom:none}
.pr-checks .ic{color:var(--orange-2);font-style:normal;font-size:18px}
.sec--price .btn-cta{margin-top:18px}
.pr-3btn{display:grid;grid-template-columns:1fr 1fr 1fr;gap:9px;margin-top:14px}
.pr-3btn a{border:1px solid rgba(197,210,226,.4);border-radius:10px;background:rgba(10,22,40,.6);text-decoration:none;color:#eef2f7;font-size:11.5px;padding:13px 4px;display:flex;flex-direction:column;align-items:center;gap:7px;line-height:1.4}
.pr-3btn .ic{font-size:19px;color:#eda45c;font-style:normal;line-height:1}
.pr-3btn .line-ic{width:26px;height:26px;border-radius:6px;background:#06c755;color:#fff;font-size:8.5px;font-weight:700;display:flex;align-items:center;justify-content:center}
.pr-3btn .tel-no{color:#f0b06a;font-size:11px}
.pr-foot{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:22px;color:#c8cfda;font-family:var(--serif);font-size:13px}
.pr-foot::before,.pr-foot::after{content:"";width:56px;height:1px;background:rgba(197,210,226,.4)}

/* ============================================================
   19. FAQ（sec--faq）
   ============================================================ */
.sec--faq{background:linear-gradient(180deg,#f8f5ee,#f4f0e7)}
.faq-list{display:grid;gap:11px;margin-top:24px}
.faq-item{background:#fbf8f2;border:1px solid #e7e0d1;border-radius:12px}
.faq-item summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:flex-start;gap:12px;padding:18px 16px;font-size:14.5px;color:#37332b;font-weight:500;text-align:left}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"＋";color:var(--orange);font-size:19px;font-weight:400;flex:none;margin-left:auto}
.faq-item[open] summary::after{content:"−"}
.faq-item .ans{padding:0 16px 16px;font-size:13px;color:#6c6559;line-height:1.9}

/* ============================================================
   20. アクセス（sec--access）／ 21. 店舗情報（sec--info）
   ============================================================ */
.sec--access{background:linear-gradient(180deg,#f7f4ed,#f3efe6)}
.map-ph{margin-top:24px;background:#262626;border-radius:14px;aspect-ratio:16/10;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:#9a9a9a}
.map-ph .pin{font-size:34px;line-height:1;color:#8a8a8a}
.map-ph .t{font-size:15px}
.shop-photo{margin-top:16px}
.shop-photo img{width:100%;border-radius:14px;box-shadow:0 6px 18px rgba(60,50,30,.25)}
.info-rows{margin-top:18px;background:#fbf8f2;border:1px solid #eee7d8;border-radius:14px;overflow:hidden}
.info-rows .r{display:grid;grid-template-columns:24px 84px 1fr;align-items:center;gap:10px;padding:17px 16px;border-bottom:1px solid #eee7d8;font-size:13.5px}
.info-rows .r:last-child{border-bottom:none}
.info-rows .ic{color:var(--orange);font-style:normal;font-size:17px;text-align:center}
.info-rows .k{color:#5d564a;font-size:13px}
.info-rows .v{color:#2f2b24;font-weight:500;line-height:1.7}
.info-rows .v.tel{color:var(--orange);font-weight:700;font-size:19px;letter-spacing:.02em}
.info-rows .v a{text-decoration:none}
.sec--info{background:linear-gradient(180deg,#f3efe6,#efeadf);padding-top:0}

/* ============================================================
   22. 最終CTA・フッター（sec--final）
   ============================================================ */
.sec--final{background:linear-gradient(170deg,#0e1e35 0%,var(--navy-2) 50%,#020d1c 100%);color:#fff;padding:56px 22px 40px}
.fin-h{text-align:center;font-family:var(--serif);font-weight:700;font-size:23.5px;line-height:1.8}
.fin-lead{margin-top:18px;text-align:center;font-family:var(--serif);font-size:13px;line-height:2.1;color:#dfe6ef}
.fin-hr{border:none;height:1px;background:rgba(197,210,226,.25);margin:34px 0 0}
.fin-shop{margin-top:30px;text-align:center}
.fin-shop .nm{font-family:var(--serif);font-weight:700;font-size:27px;letter-spacing:.06em}
.fin-shop .orn{color:#c9a25c;margin-top:10px;letter-spacing:.2em;font-size:13px}
.fin-shop .ad{margin-top:16px;font-size:12.5px;color:#dfe6ef}
.fin-shop .ad .ic{color:#e2a54c;font-style:normal;padding-right:5px}
.fin-shop .tel{margin-top:12px;font-family:var(--serif);font-weight:700;font-size:27px;color:var(--orange-2);text-decoration:none;display:inline-flex;align-items:center;gap:9px}
.fin-shop .tel small{font-family:var(--sans);font-weight:500;font-size:14px;color:#eef2f7}
.fin-note{margin-top:26px;padding-top:22px;border-top:1px solid rgba(197,210,226,.2);text-align:center;font-size:11.5px;color:#b9c2cf;line-height:2}
.fin-copy{margin-top:14px;text-align:center;font-size:11px;color:#8f9aa9}

/* ============================================================
   固定UI
   ============================================================ */
.sticky-bar{
  position:fixed;bottom:0;left:50%;transform:translateX(-50%);z-index:60;
  width:100%;max-width:var(--col);display:grid;grid-template-columns:74px 1fr;gap:8px;
  padding:9px 10px calc(9px + env(safe-area-inset-bottom));
  background:rgba(17,17,17,.97);border-top:1px solid #000;
  backdrop-filter:blur(6px);box-shadow:0 -4px 18px rgba(0,0,0,.28);
}
.sb-tel,.sb-reserve{text-decoration:none;text-align:center;border-radius:10px;display:flex;align-items:center;justify-content:center}
.sb-tel{flex-direction:column;gap:2px;border:1px solid #3a3a3a;color:#ecebe8;font-size:11px;font-weight:700;line-height:1.15;padding:8px 4px}
.sb-tel .sb-ico{color:var(--orange);font-size:17px;line-height:1;font-style:normal}
.sb-reserve{flex-direction:column;gap:3px;background:var(--orange);color:#fff;padding:9px 8px;box-shadow:0 2px 10px rgba(232,104,28,.35)}
.sb-reserve .sb-badge{font-size:10.5px;font-weight:500;letter-spacing:.01em;line-height:1;color:#fff;opacity:.95;display:flex;align-items:baseline;gap:2px}
.sb-reserve .sb-badge i{font-style:normal;opacity:.6;margin:0 1px}
.sb-reserve .sb-badge b{font-family:Georgia,"Times New Roman",serif;font-size:15px;font-weight:700}
.sb-reserve .sb-badge small{font-size:9px;font-weight:400;opacity:.85;margin-left:1px}
.sb-reserve .sb-main{font-size:15.5px;font-weight:700;line-height:1.1;letter-spacing:.01em}
.sb-reserve .sb-main::after{content:" ›";font-weight:700}

.to-top{
  position:fixed;z-index:65;
  left:max(14px, calc(50% - 224px + 14px));
  bottom:calc(92px + env(safe-area-inset-bottom));
  width:44px;height:44px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  color:#fff;background:rgba(17,17,17,.72);
  border:1px solid rgba(255,255,255,.28);
  box-shadow:0 2px 10px rgba(0,0,0,.3);
  -webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);
  text-decoration:none;transition:transform .12s ease,opacity .2s ease;
}
.to-top:hover{opacity:.92}
.to-top:active{transform:scale(.93)}
.to-top svg{width:20px;height:20px;display:block}

/* ---------- polish ---------- */
/* 絵文字アイコンをオレンジ単色トーンに（フィルタで擬似モノクロ化） */
.rflow .ic,.mt-grid .ic,.pr-icons .ic,.pr-3btn .ic,.info-rows .ic,
.hero-price .row3 .ic,.hero-stats .st .a,.hero-badges .pill .ico,
.map-ph .pin,.fin-shop .ad .ic,.fin-combo .telbox .ic,.sb-tel .sb-ico{
  filter:grayscale(1) brightness(1.35) sepia(1) saturate(5.5) hue-rotate(-16deg);
}
/* 375px幅での折返し調整 */
.mt-title{font-size:clamp(36px,12.5vw,52px);white-space:nowrap}
.mt-title .x{font-size:.76em}
.num-h{font-size:clamp(27px,9.4vw,37px);white-space:nowrap}
.num-v{white-space:nowrap;font-size:clamp(30px,9.6vw,40px)}
.hero-lead{font-size:12.5px}
.fin-h{font-size:clamp(19px,5.9vw,23.5px);white-space:nowrap}
.mt-lead{font-size:clamp(12.5px,3.7vw,14.5px)}
.reason-lead{font-size:clamp(12px,3.55vw,13.5px)}
/* お悩み写真の縁を背景に馴染ませる */
.worry-photo::after{content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,#f5f1e8 0%,rgba(245,241,232,0) 24%),
             linear-gradient(180deg,rgba(245,241,232,0) 62%,#f2ede3 96%)}
.worry-photo img{mask-image:none;-webkit-mask-image:none}

/* FAQ カテゴリ帯（黒枠白文字） */
.faq-cat{background:#1c1c1c;color:#fff;text-align:center;font-weight:700;font-size:14.5px;letter-spacing:.06em;padding:11px 10px;border-radius:4px;margin:26px 0 4px}
.faq-list .faq-cat:first-child{margin-top:0}
.faq-item summary .q{color:var(--orange);font-family:Georgia,var(--serif);font-weight:700;margin-right:9px;flex:none}
.faq-item summary{font-weight:600}
.faq-item .ans{border-top:1px solid #e7e0d1;padding-top:12px;margin-top:2px}

/* 最終CTAコンボを下部固定バーと同一の見た目に（横フル幅・隙間なし） */
.fin-combo{
  margin:26px -22px 0;border:none;border-radius:0;
  background:rgba(17,17,17,.97);border-top:1px solid #000;border-bottom:1px solid #000;
  padding:9px 10px;display:grid;grid-template-columns:74px 1fr;gap:8px;
}
.fin-combo .telbox{
  border:1px solid #3a3a3a;border-radius:10px;color:#ecebe8;
  font-family:var(--sans);font-size:11px;font-weight:700;line-height:1.15;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:2px;padding:8px 4px;text-decoration:none;
}
.fin-combo .telbox .ic{font-size:17px;color:var(--orange);font-style:normal}
.fin-combo .btn-cta{
  border:none;border-radius:10px;background:var(--orange);
  box-shadow:0 2px 10px rgba(232,104,28,.35);
  padding:9px 8px;font-family:var(--sans);font-weight:700;font-size:15.5px;letter-spacing:.01em;margin:0;
}
.fin-combo .btn-cta .bd{display:block;margin-bottom:3px;font-size:10.5px;font-weight:500;letter-spacing:.02em;opacity:.95}
.fin-combo .btn-cta .bd b{font-family:Georgia,var(--serif);font-size:15px}
