/* ============================================================
   伏見パーソナル整体院 LP — コード実装版
   ネイビー×アンティークゴールド×CTAオレンジ / 明朝主体
   ============================================================ */

*{margin:0;padding:0;box-sizing:border-box}

:root{
  --col:448px;

  --navy-950:#0a1422;
  --navy-900:#0e1a2b;
  --navy-800:#122034;
  --navy-750:#15263d;
  --navy-line:rgba(214,222,235,.22);
  --navy-line-soft:rgba(214,222,235,.13);

  --gold:#c9a35f;
  --gold-soft:#dcc08a;
  --gold-deep:#a9854a;

  --orange:#e8681c;
  --orange-deep:#cf5610;

  --cream:#f6efe3;
  --cream-soft:#fbf7ee;
  --cream-line:#e4d9c4;
  --ink:#2b251d;
  --ink-soft:#6b6353;

  --mincho:"Shippori Mincho","Hiragino Mincho ProN","Yu Mincho","YuMincho",serif;
  --gothic:"Noto Sans JP","Hiragino Sans","Yu Gothic",sans-serif;
}

html{scroll-behavior:smooth}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

body{
  background:#e6e1d7;
  font-family:var(--gothic);
  color:var(--ink);
  -webkit-font-smoothing:antialiased;
  line-height:1.75;
}

img{display:block;max-width:100%}
.nobr{display:inline-block}
a{color:inherit}
ul,ol{list-style:none}

.page{
  max-width:var(--col);
  margin:0 auto;
  background:var(--navy-900);
  box-shadow:0 0 28px rgba(0,0,0,.18);
  overflow:hidden;
  padding-bottom:84px; /* 固定CTAバー分 */
}

/* ---------- 汎用 ---------- */
.section{padding:56px 22px}
.sec-cream{background:var(--cream)}
.sec-cream-soft{background:var(--cream-soft)}
.sec-navy{background:var(--navy-900);color:#eef1f6}

.head{
  font-family:var(--mincho);
  font-weight:600;
  font-size:25px;
  line-height:1.55;
  letter-spacing:.06em;
  text-align:center;
  color:var(--ink);
}
.sec-navy .head{color:#eef1f6}
.head em{font-style:normal;color:var(--orange)}
.head .gold{color:var(--gold-deep)}

/* 見出し下の飾り罫（細線＋菱形） */
.orn{
  display:flex;align-items:center;justify-content:center;gap:10px;
  margin:18px auto 0;
}
.orn::before,.orn::after{
  content:"";height:1px;width:64px;
  background:linear-gradient(90deg,transparent,var(--gold-deep));
}
.orn::after{background:linear-gradient(90deg,var(--gold-deep),transparent)}
.orn i{
  width:7px;height:7px;background:var(--orange);
  transform:rotate(45deg);flex:none;
}
.orn.orn-line::before,.orn.orn-line::after{width:26px}
.orn.orn-plain i{background:var(--gold-deep)}

.note{
  font-size:10.5px;color:var(--ink-soft);line-height:1.7;
  text-align:center;margin-top:22px;letter-spacing:.02em;
}
.sec-navy .note{color:rgba(238,241,246,.55)}

/* CTAボタン */
.btn{
  display:flex;align-items:center;justify-content:center;gap:8px;
  width:100%;min-height:64px;padding:16px 18px;
  background:linear-gradient(180deg,#f1832f 0%,var(--orange) 45%,var(--orange-deep) 100%);
  border:1px solid rgba(255,255,255,.35);
  border-radius:12px;
  color:#fff;text-decoration:none;
  font-family:var(--mincho);font-weight:700;
  font-size:19px;letter-spacing:.08em;
  box-shadow:0 4px 16px rgba(207,86,16,.4),inset 0 1px 0 rgba(255,255,255,.35);
  transition:transform .12s ease,box-shadow .12s ease;
}
.btn:active{transform:scale(.985)}
.btn::after{content:"›";font-family:var(--gothic);font-size:22px;font-weight:700;line-height:1;margin-left:2px}

/* ============================================================
   1. ヘッダー＋ヒーロー
   ============================================================ */
.hero{background:var(--navy-900);color:#eef1f6}

.topbar{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:12px 16px 12px 20px;
  background:var(--navy-900);
}
.topbar__brand{text-decoration:none;min-width:0}
.topbar__catch{
  display:block;font-size:10px;letter-spacing:.14em;
  color:var(--gold-soft);font-weight:500;
}
.topbar__name{
  display:block;font-family:var(--mincho);font-weight:700;
  font-size:17.5px;letter-spacing:.05em;color:#fff;line-height:1.4;
  white-space:nowrap;
}
.topbar__cta{
  flex:none;display:flex;align-items:center;gap:7px;
  background:linear-gradient(180deg,#f1832f,var(--orange-deep));
  color:#fff;text-decoration:none;
  font-size:13px;font-weight:700;letter-spacing:.04em;
  padding:11px 14px;border-radius:9px;
  box-shadow:0 2px 8px rgba(207,86,16,.45);
}
.topbar__cta svg{width:15px;height:15px}

.hero__media{position:relative;line-height:0}
.hero__media img{width:100%;height:auto}
.hero__media::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(14,26,43,.18) 0%,rgba(14,26,43,0) 30%,rgba(14,26,43,.1) 62%,rgba(14,26,43,.92) 96%,var(--navy-900) 100%);
}

.hero__body{padding:0 22px 40px;margin-top:-16px;position:relative;z-index:1}

.hero__tags{display:flex;gap:8px;margin-bottom:20px}
.tag{
  display:inline-flex;align-items:center;gap:5px;
  font-size:12px;letter-spacing:.05em;font-weight:500;
  padding:6px 14px;border-radius:99px;
  border:1px solid rgba(238,241,246,.5);
  background:rgba(10,20,34,.55);color:#f2f4f8;
}
.tag svg{width:12px;height:12px;color:var(--gold-soft)}
.tag--fill{background:rgba(20,34,54,.85);border-color:rgba(238,241,246,.35)}

.hero__title{
  font-family:var(--mincho);font-weight:600;
  font-size:44px;line-height:1.42;letter-spacing:.04em;
  color:#f5f6f8;
}
.hero__title em{
  font-style:normal;
  background:linear-gradient(115deg,#b58c48 0%,#e3c98c 38%,#c9a35f 62%,#a9854a 100%);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
}
.hero__sub{
  font-family:var(--mincho);font-weight:600;
  font-size:clamp(15.5px,4.55vw,19px);letter-spacing:.09em;color:#f0f2f6;
  margin-top:18px;padding-bottom:14px;position:relative;
  white-space:nowrap;
}
.hero__sub::after{
  content:"";position:absolute;left:0;bottom:0;height:1px;width:100%;
  background:linear-gradient(90deg,var(--gold) 0%,rgba(201,163,95,.05) 100%);
}
.hero__desc{
  font-size:clamp(11.5px,3.35vw,13.5px);line-height:2.05;letter-spacing:.04em;
  color:rgba(238,241,246,.88);margin-top:16px;
  font-family:var(--mincho);font-weight:500;
}

/* 価格オファーカード */
.pricebox{
  margin-top:26px;
  border:1px solid var(--gold);
  border-radius:10px;
  background:linear-gradient(180deg,rgba(21,38,61,.6),rgba(14,26,43,.9));
  box-shadow:inset 0 0 0 1px rgba(201,163,95,.15),0 6px 20px rgba(0,0,0,.35);
  padding:18px 16px 14px;
}
.pricebox__head{
  display:flex;align-items:center;justify-content:center;gap:10px;
  flex-wrap:wrap;
}
.pricebox__head b{
  font-family:var(--mincho);font-weight:700;font-size:20px;
  letter-spacing:.06em;color:var(--gold-soft);
}
.pricebox__head span{
  font-size:11.5px;font-weight:500;letter-spacing:.05em;
  background:#0a1422;color:#e9ecf2;
  padding:5px 12px;border-radius:3px;
}
.pricebox__price{
  display:flex;align-items:baseline;justify-content:center;gap:12px;
  margin-top:10px;flex-wrap:wrap;
}
.pricebox__was{
  font-family:var(--mincho);font-size:14px;color:rgba(238,241,246,.75);
  letter-spacing:.04em;
  text-decoration:line-through;
  text-decoration-color:rgba(232,104,28,.9);
  text-decoration-thickness:2px;
}
.pricebox__now{
  font-family:var(--mincho);font-weight:700;
  font-size:56px;line-height:1.05;letter-spacing:.01em;
  background:linear-gradient(180deg,#f6953f 8%,var(--orange) 55%,#e05c10 100%);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
}
.pricebox__now small{font-size:22px;letter-spacing:.02em}
.pricebox__now .yen-note{
  font-size:14px;-webkit-text-fill-color:#eef1f6;color:#eef1f6;
  font-weight:600;letter-spacing:.08em;
}
.pricebox__notes{
  display:flex;margin-top:14px;
  border-top:1px solid var(--navy-line-soft);
  border:1px solid var(--navy-line-soft);border-radius:8px;
}
.pricebox__notes li{
  flex:1;display:flex;align-items:center;justify-content:center;gap:7px;
  padding:11px 4px;font-size:13px;font-weight:600;letter-spacing:.04em;
  color:#eef1f6;font-family:var(--mincho);
}
.pricebox__notes li+li{border-left:1px solid var(--navy-line-soft)}
.pricebox__notes svg{width:16px;height:16px;color:var(--gold);flex:none}

.hero .btn{margin-top:20px}

/* 信頼バッジ3つ */
.trustrow{display:flex;gap:9px;margin-top:18px}
.trustrow li{
  flex:1;
  border:1px solid var(--navy-line);
  border-radius:9px;
  background:rgba(18,32,52,.55);
  padding:12px 4px 11px;
  display:flex;flex-direction:column;align-items:center;gap:3px;
  text-align:center;
}
.trustrow svg{width:22px;height:22px;color:var(--gold);margin-bottom:2px}
.trustrow .t-label{font-size:10.5px;letter-spacing:.04em;color:rgba(238,241,246,.85)}
.trustrow .t-value{
  font-family:var(--mincho);font-weight:700;font-size:19px;line-height:1.2;
  color:#f2f4f8;letter-spacing:.03em;
}
.trustrow .t-value small{font-size:11px;font-weight:600}

/* ============================================================
   2. お悩み（こんな肩こり、いつまで続けますか？）
   ============================================================ */
.worries{position:relative;padding:52px 0 0;overflow:hidden}
.worries__bg{
  position:absolute;top:0;right:0;width:46%;height:76%;
  overflow:hidden;
}
.worries__bg img{
  width:100%;height:100%;object-fit:cover;object-position:top center;
}
.worries__bg::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,var(--cream) 0%,rgba(246,239,227,.35) 30%,rgba(246,239,227,0) 70%),
             linear-gradient(180deg,rgba(246,239,227,.4) 0%,rgba(246,239,227,0) 22%,rgba(246,239,227,0) 70%,var(--cream) 98%);
}
.worries__inner{position:relative;padding:0 22px}
.worries__head{
  font-family:var(--mincho);font-weight:600;
  font-size:27px;line-height:1.6;letter-spacing:.05em;color:var(--ink);
  position:relative;padding-top:14px;
}
.worries__head::before{
  content:"";position:absolute;top:0;left:0;width:30px;height:30px;
  border-top:2px solid var(--gold-deep);border-left:2px solid var(--gold-deep);
}
.worries__head .gold{color:var(--gold-deep)}
.worries__eyebrow{
  font-family:var(--mincho);font-size:13.5px;font-weight:600;
  letter-spacing:.1em;color:var(--ink);
  margin:26px 0 14px;display:flex;align-items:center;gap:12px;
}
.worries__eyebrow::before,.worries__eyebrow::after{
  content:"";height:1px;flex:none;width:28px;background:var(--gold-deep);
}
.checklist{display:flex;flex-direction:column;gap:10px;max-width:78%}
.checklist li{
  display:flex;align-items:center;gap:10px;
  background:#fff;border-radius:8px;
  box-shadow:0 2px 10px rgba(90,75,45,.1);
  padding:12px 12px;
  font-family:var(--mincho);font-weight:600;
  font-size:clamp(11px,3.2vw,13.5px);letter-spacing:0;line-height:1.55;color:var(--ink);
}
.checklist .ck{
  flex:none;width:24px;height:24px;border-radius:50%;
  border:1.5px solid var(--gold-deep);
  display:flex;align-items:center;justify-content:center;
  position:relative;
}
.checklist .ck::after{
  content:"";position:absolute;left:-1.5px;top:-1.5px;right:-9px;bottom:-1.5px;
  border-right:1px dotted var(--cream-line);pointer-events:none;
  display:none;
}
.checklist .ck svg{width:12px;height:12px;color:var(--gold-deep)}

.worries__bridge{
  margin-top:34px;position:relative;
  background:linear-gradient(180deg,#efe3cb 0%,#e8d8b8 100%);
  border-top:3px solid #fff;
  box-shadow:0 -6px 16px rgba(90,75,45,.12);
  padding:26px 22px 34px;text-align:center;
  clip-path:polygon(0 0,100% 0,100% calc(100% - 14px),50% 100%,0 calc(100% - 14px));
}
.worries__bridge .flourish{color:var(--gold-deep);width:52px;height:14px;margin:0 auto 10px;display:block}
.worries__bridge p{
  font-family:var(--mincho);font-weight:600;
  font-size:20px;line-height:1.7;letter-spacing:.04em;color:var(--ink);
}
.worries__bridge .gold{color:var(--gold-deep);font-size:24px}

/* ============================================================
   3. 揉むだけでは戻る理由
   ============================================================ */
.why__lead{
  margin-top:24px;text-align:center;
  font-family:var(--mincho);font-weight:500;
  font-size:13.5px;line-height:2.1;letter-spacing:.03em;color:var(--ink);
}
.quote{
  margin-top:26px;position:relative;
  background:#fdf6ea;border-left:4px solid var(--orange);
  border-radius:0 8px 8px 0;
  box-shadow:0 3px 14px rgba(90,75,45,.1);
  padding:24px 20px 22px 56px;
}
.quote .qmark{
  position:absolute;left:16px;top:16px;
  font-family:Georgia,serif;font-size:44px;line-height:.6;
  color:var(--gold);font-weight:700;
}
.quote p{
  font-family:var(--mincho);font-weight:600;
  font-size:15.5px;line-height:2;letter-spacing:.03em;color:var(--ink);
}
.quote .em{color:var(--orange)}
.quote p+p{margin-top:10px;font-size:14px;font-weight:500}

.whyflow{margin-top:30px;display:flex;flex-direction:column;align-items:center}
.whyflow__box{
  width:72%;background:#fff;
  border:1px solid var(--cream-line);border-radius:10px;
  box-shadow:0 2px 10px rgba(90,75,45,.08);
  padding:15px 10px;text-align:center;
  font-family:var(--mincho);font-weight:600;
  font-size:19px;letter-spacing:.08em;color:var(--ink);
  display:flex;align-items:center;justify-content:center;gap:9px;
}
.whyflow__box svg{width:19px;height:19px;color:var(--gold-deep);flex:none}
.whyflow__box--result{color:var(--orange);font-size:18px}
.whyflow__box--result svg{color:var(--orange)}
.whyflow__arrow{
  color:var(--orange);font-size:20px;line-height:1;margin:9px 0;font-weight:700;
}
.whyflow__three{display:flex;gap:9px;width:100%;margin:2px 0}
.whyflow__three li{
  flex:1;background:#fff;
  border:1px solid var(--cream-line);border-radius:10px;
  box-shadow:0 2px 10px rgba(90,75,45,.08);
  padding:15px 4px 13px;text-align:center;
  display:flex;flex-direction:column;align-items:center;gap:7px;
  font-family:var(--mincho);font-weight:600;
  font-size:17px;letter-spacing:.1em;color:var(--ink);
}
.whyflow__three svg{width:26px;height:26px;color:var(--orange)}

/* ============================================================
   4. やりたいことが、また出来る（ネイビー）
   ============================================================ */
.wish{background:linear-gradient(180deg,var(--navy-950) 0%,var(--navy-900) 60%,var(--navy-950) 100%)}
.wish__eyebrow{
  text-align:center;font-family:var(--mincho);font-weight:600;
  font-size:15px;letter-spacing:.14em;color:#dfe4ec;
}
.wish__head{
  margin-top:6px;text-align:center;
  font-family:var(--mincho);font-weight:700;
  font-size:27px;line-height:1.6;letter-spacing:.04em;
  background:linear-gradient(180deg,#ffffff 20%,#c3ccd9 55%,#eef1f6 90%);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
}
.wish .orn{margin-top:14px}
.wishlist{margin-top:26px;display:flex;flex-direction:column;gap:16px}
.wishlist li{
  display:flex;align-items:center;gap:16px;
  background:linear-gradient(160deg,#1a2c46 0%,#101f35 55%,#0d1a2c 100%);
  border:1px solid rgba(214,222,235,.28);
  border-radius:14px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 8px 20px rgba(0,0,0,.4);
  padding:18px 16px;
}
.wishlist .ph{
  flex:none;width:104px;height:104px;border-radius:50%;overflow:hidden;
  box-shadow:0 0 0 3px #0c1727,0 0 0 4.5px rgba(214,222,235,.55),0 4px 12px rgba(0,0,0,.45);
}
.wishlist .ph img{width:100%;height:100%;object-fit:cover}
.wishlist p{
  font-family:var(--mincho);font-weight:600;
  font-size:clamp(14px,4.3vw,16.5px);line-height:1.9;letter-spacing:.03em;
  background:linear-gradient(180deg,#ffffff 25%,#cdd5e0 60%,#f2f4f8 95%);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
}

.wish__cta{padding-top:8px}

/* ============================================================
   5. 3×3 METHOD
   ============================================================ */
.method{
  background:
    radial-gradient(120% 60% at 50% 0%,rgba(201,163,95,.1) 0%,rgba(201,163,95,0) 55%),
    linear-gradient(180deg,#0c1828 0%,var(--navy-900) 100%);
}
.method__eyebrow{
  text-align:center;font-family:var(--mincho);font-weight:600;
  font-size:14px;letter-spacing:.16em;color:#e6eaf1;
}
.method__title{
  margin-top:2px;text-align:center;
  font-family:var(--mincho);font-weight:700;
  font-size:clamp(42px,13.5vw,56px);line-height:1.15;letter-spacing:.02em;
  display:flex;align-items:baseline;justify-content:center;gap:12px;
  white-space:nowrap;
}
.method__title .nums{
  background:linear-gradient(180deg,#fff 15%,#bfc9d8 55%,#f0f3f8 90%);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
}
.method__title .word{
  font-size:clamp(37px,12vw,50px);letter-spacing:.04em;
  background:linear-gradient(180deg,#f2a54e 10%,var(--orange) 60%,#c9791f 100%);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
}
.method__read{
  margin-top:8px;text-align:center;
  font-size:13px;font-weight:500;letter-spacing:.34em;color:#ef8434;
}
.method .orn{margin-top:14px}
.method__desc{
  margin-top:20px;text-align:center;
  font-family:var(--mincho);font-weight:500;
  font-size:clamp(11.5px,3.35vw,13.5px);line-height:2.05;letter-spacing:.02em;color:rgba(238,241,246,.92);
}
.method__desc b{font-weight:700;color:#fff}
.method__desc .first{color:var(--gold-soft);font-weight:700}

.matrix{
  margin-top:26px;
  display:grid;
  grid-template-columns:clamp(66px,19vw,76px) repeat(3,1fr);
  gap:clamp(5px,1.6vw,7px);
}
.matrix__cell{
  border-radius:9px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;
}
.matrix__corner{background:transparent}
.matrix__col{
  background:linear-gradient(180deg,#1a2c46,#111f34);
  border:1px solid rgba(214,222,235,.3);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12);
  padding:13px 2px 11px;gap:6px;
  font-family:var(--mincho);font-weight:700;font-size:19px;
  letter-spacing:.1em;color:#f2f4f8;
}
.matrix__col svg{width:26px;height:26px;color:var(--gold)}
.matrix__row{
  background:linear-gradient(160deg,#1c2f4a,#12203457);
  border:1px solid rgba(201,163,95,.55);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 0 12px rgba(201,163,95,.12);
  padding:12px 2px;gap:6px;
  font-family:var(--mincho);font-weight:700;font-size:clamp(10.5px,3vw,13px);
  letter-spacing:0;color:#f2f4f8;line-height:1.3;
}
.matrix__row svg{width:22px;height:22px;color:var(--gold)}
.matrix__row .nw{white-space:nowrap;font-size:.88em;letter-spacing:-.02em}
.matrix__item{
  background:rgba(13,25,42,.72);
  border:1px solid rgba(214,222,235,.17);
  padding:16px 3px;
  font-size:clamp(11px,3.1vw,12.5px);font-weight:500;line-height:1.75;
  letter-spacing:0;color:#e8ecf3;
}

/* ============================================================
   6. 対応症状
   ============================================================ */
.symptoms__en{
  text-align:center;font-size:11.5px;letter-spacing:.42em;
  color:#a99a7d;margin-top:8px;font-weight:500;
}
.symptoms__lead{
  margin-top:18px;text-align:center;
  font-family:var(--mincho);font-weight:500;
  font-size:13.5px;letter-spacing:.06em;color:var(--ink);
}
.symgrid{
  margin-top:24px;
  display:grid;grid-template-columns:1fr 1fr;gap:12px;
}
.symgrid li{
  position:relative;border-radius:12px;overflow:hidden;
  box-shadow:0 4px 14px rgba(90,75,45,.16);
  aspect-ratio:1/1.06;
  background:#26221c;
}
.symgrid img{
  position:absolute;inset:0;width:100%;height:78%;object-fit:cover;
}
.symgrid .cap{
  position:absolute;left:0;right:0;bottom:0;height:56%;
  background:linear-gradient(180deg,rgba(38,34,28,0) 0%,rgba(38,34,28,.55) 42%,rgba(30,27,22,.92) 100%);
  display:flex;flex-direction:column;align-items:center;justify-content:flex-end;
  padding:0 6px 12px;text-align:center;
}
.symgrid .cap b{
  font-family:var(--mincho);font-weight:600;
  font-size:17.5px;letter-spacing:.06em;color:#fff;line-height:1.4;
}
.symgrid .cap span{
  font-size:10.5px;letter-spacing:.05em;color:rgba(255,255,255,.85);
  margin-top:2px;
}

/* ============================================================
   7. その場で楽にするだけで終わらせない（流れ比較＋ステップ）
   ============================================================ */
.stepcompare{margin-top:26px}
.flowcard{
  background:#fff;border:1px solid var(--cream-line);
  border-radius:10px;padding:16px 16px 15px;
  box-shadow:0 2px 10px rgba(90,75,45,.07);
}
.flowcard--ours{
  border:1.5px solid var(--orange);
  background:#fdf4ea;
}
.flowcard .fc-label{font-size:11.5px;letter-spacing:.06em;color:var(--ink-soft);display:block;margin-bottom:4px}
.flowcard--ours .fc-label{color:var(--orange);font-weight:700}
.flowcard .fc-flow{
  font-family:var(--mincho);font-weight:600;font-size:clamp(12.5px,3.8vw,15.5px);
  letter-spacing:.01em;color:var(--ink);line-height:1.9;
}
.flowcard .fc-flow i{font-style:normal;color:var(--orange);font-size:13px;margin:0 4px}
.flowcard .fc-fade{color:#b0a794}
.flowcard .fc-goal{color:var(--orange);font-weight:700}
.stepcompare__arrow{text-align:center;color:var(--orange);font-size:18px;font-weight:700;line-height:1;margin:10px 0}

.steplist{margin-top:26px;display:flex;flex-direction:column;gap:13px}
.steplist li{
  display:flex;align-items:stretch;gap:0;
  background:#fff;border-radius:10px;overflow:hidden;
  box-shadow:0 3px 12px rgba(90,75,45,.1);
}
.steplist .ph{flex:none;width:31%;min-height:96px;position:relative}
.steplist .ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.steplist .tx{
  flex:1;display:flex;align-items:center;gap:13px;padding:14px 14px 14px 16px;
}
.steplist .no{
  font-family:var(--mincho);font-weight:700;font-size:30px;line-height:1;
  color:var(--orange);letter-spacing:.02em;flex:none;
}
.steplist h3{
  font-family:var(--mincho);font-weight:700;font-size:16.5px;
  letter-spacing:.05em;color:var(--ink);line-height:1.4;
}
.steplist p{font-size:11.5px;line-height:1.7;color:var(--ink-soft);margin-top:3px}

/* ============================================================
   8. アプローチの違い（比較表）
   ============================================================ */
.ctable{
  width:100%;margin-top:26px;
  border-collapse:separate;border-spacing:0;
  background:#fffdf8;border:1px solid var(--cream-line);
  border-radius:10px;overflow:hidden;
  box-shadow:0 3px 14px rgba(90,75,45,.08);
  font-family:var(--mincho);
}
.ctable th,.ctable td{
  border-top:1px solid var(--cream-line);
  padding:15px 4px;text-align:center;vertical-align:middle;
}
.ctable thead th{border-top:none}
.ctable thead th{
  font-weight:600;font-size:12px;letter-spacing:.03em;color:var(--ink);
  line-height:1.5;padding:14px 2px;
}
.ctable thead th.is-ours{
  background:linear-gradient(160deg,#cfae6c 0%,var(--gold-deep) 100%);
  color:#fff;font-weight:700;font-size:12.5px;
}
.ctable tbody th{
  font-weight:600;font-size:clamp(11px,3.15vw,12.5px);letter-spacing:0;color:var(--ink);
  text-align:left;padding-left:12px;line-height:1.5;width:34%;
}
.ctable td{font-size:19px;color:#4c463b;font-weight:500}
.ctable td.is-ours{
  background:#f9f1de;color:var(--orange);font-weight:700;font-size:21px;
}
.ctable td .dbl{
  display:inline-flex;width:26px;height:26px;border:2px solid var(--orange);
  border-radius:50%;align-items:center;justify-content:center;
}
.ctable td .dbl::before{
  content:"";width:12px;height:12px;border:2px solid var(--orange);border-radius:50%;
}

/* ============================================================
   9. 選ばれる7つの基準（ネイビー）
   ============================================================ */
.standard{
  background:
    radial-gradient(100% 40% at 50% 0%,rgba(201,163,95,.12) 0%,rgba(201,163,95,0) 60%),
    linear-gradient(180deg,#0b1624 0%,var(--navy-900) 100%);
}
.standard__head{
  text-align:center;font-family:var(--mincho);font-weight:600;
  font-size:25px;line-height:1.6;letter-spacing:.08em;color:#f0f2f6;
}
.standard__head .seven{
  font-size:42px;font-weight:700;line-height:1;vertical-align:-.04em;
  background:linear-gradient(180deg,#e8cd93 10%,var(--gold) 55%,#9a7a40 100%);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
  padding:0 2px;
}
.standard__en{
  margin-top:14px;text-align:center;
  font-size:11.5px;letter-spacing:.5em;color:var(--gold);font-weight:500;
}
.critlist{margin-top:26px;display:flex;flex-direction:column;gap:16px}
.critcard{
  position:relative;border-radius:12px;overflow:hidden;
  background:linear-gradient(120deg,#101e33 0%,#0d1a2c 100%);
  border:1px solid rgba(214,222,235,.2);
  min-height:250px;
  display:flex;flex-direction:column;justify-content:flex-end;
}
.critcard .ph{
  position:absolute;top:0;right:0;bottom:0;width:100%;
}
.critcard .ph img{width:100%;height:100%;object-fit:cover;object-position:right center}
.critcard .ph::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(13,24,40,.97) 0%,rgba(13,24,40,.82) 34%,rgba(13,24,40,.25) 62%,rgba(13,24,40,.06) 100%),
             linear-gradient(180deg,rgba(13,24,40,.1) 40%,rgba(13,24,40,.78) 100%);
}
.critcard .body{
  position:relative;padding:22px 20px 20px;max-width:100%;
}
.critcard .no{
  font-family:var(--mincho);font-weight:700;font-size:34px;line-height:1;
  color:#ef8434;display:inline-block;
  padding-bottom:7px;margin-bottom:12px;position:relative;
}
.critcard .no::after{
  content:"";position:absolute;left:1px;bottom:0;width:30px;height:2px;background:var(--orange);
}
.critcard h3{
  font-family:var(--mincho);font-weight:600;font-size:clamp(16px,4.9vw,19px);line-height:1.6;
  letter-spacing:.03em;color:#f5f6f9;max-width:92%;
}
.critcard p{
  margin-top:9px;font-size:12px;line-height:1.9;letter-spacing:.02em;
  color:rgba(238,241,246,.82);max-width:78%;
}

/* ============================================================
   10. 国家資格（ネイビー）
   ============================================================ */
.license__eyebrow{
  text-align:center;font-family:var(--mincho);font-weight:600;
  font-size:13.5px;letter-spacing:.22em;color:rgba(238,241,246,.85);
}
.license__head{
  margin-top:10px;text-align:center;
  font-family:var(--mincho);font-weight:700;
  font-size:29px;line-height:1.62;letter-spacing:.05em;
  background:linear-gradient(180deg,#ffffff 18%,#c3ccd9 55%,#eef1f6 92%);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
}
.license .orn{margin-top:16px}
.licgrid{margin-top:30px;display:flex;flex-direction:column;gap:30px}
.licgrid .frame{
  background:#fdfdfc;
  border:1px solid rgba(214,222,235,.85);
  box-shadow:0 0 0 4px rgba(240,243,247,.16),0 0 0 5px rgba(214,222,235,.45),0 10px 24px rgba(0,0,0,.4);
  aspect-ratio:16/6.4;
  display:flex;align-items:center;justify-content:center;
}
.licgrid .frame span{font-size:11px;letter-spacing:.14em;color:#b9b2a4}
.licgrid .lic-name{
  margin-top:16px;display:flex;align-items:center;justify-content:center;gap:13px;
}
.licgrid .lic-badge{
  flex:none;font-family:var(--mincho);font-size:12px;font-weight:600;
  letter-spacing:.14em;color:#f0f2f6;
  border:1px solid var(--orange);padding:6px 12px;
}
.licgrid .lic-title{
  font-family:var(--mincho);font-weight:700;font-size:29px;letter-spacing:.14em;
  background:linear-gradient(180deg,#ffffff 18%,#c3ccd9 55%,#eef1f6 92%);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
}
.license__note{
  margin-top:30px;text-align:center;
  font-family:var(--mincho);font-size:12px;letter-spacing:.12em;
  color:rgba(238,241,246,.75);
}
.license .orn.bottom{margin-top:24px}

/* ============================================================
   11. 昔習った技術を、そのまま使い続けない
   ============================================================ */
.learn__lead{
  margin-top:22px;text-align:center;
  font-family:var(--mincho);font-weight:500;
  font-size:13.5px;line-height:2.1;letter-spacing:.04em;color:var(--ink);
}
.learnflow{margin-top:26px;display:flex;flex-direction:column;align-items:center}
.learnflow li{
  width:100%;
  background:#fffdf8;
  border:1px solid #e0cf9e;
  border-radius:12px;
  box-shadow:0 3px 12px rgba(120,95,45,.12),inset 0 1px 0 #fff;
  padding:17px 18px;
  display:flex;align-items:center;gap:16px;
}
.learnflow .no{
  flex:none;font-family:Georgia,"Times New Roman",serif;font-style:italic;
  font-weight:700;font-size:34px;line-height:1;
  background:linear-gradient(180deg,#dcc08a 10%,var(--gold-deep) 70%);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
  padding-right:16px;position:relative;
}
.learnflow .no::after{
  content:"";position:absolute;right:0;top:-4px;bottom:-4px;width:1px;
  background:linear-gradient(180deg,transparent,#d6bd85,transparent);
}
.learnflow b{
  font-family:var(--mincho);font-weight:700;font-size:21px;
  letter-spacing:.08em;color:var(--ink);
}
.learnflow li.arrow{
  background:none;border:none;box-shadow:none;border-radius:0;
  display:block;width:auto;padding:8px 0;text-align:center;
  color:var(--gold-deep);font-size:19px;font-weight:700;line-height:1;
}

/* ============================================================
   12. 中間CTA
   ============================================================ */
.midcta{padding:52px 22px 56px}
.midcta__copy{
  text-align:center;font-family:var(--mincho);font-weight:600;
  font-size:20.5px;letter-spacing:.05em;line-height:1.8;color:var(--ink);
}
.midcta__bar{
  width:56px;height:2px;background:var(--orange);margin:20px auto 24px;
}

/* ============================================================
   13. 口コミ
   ============================================================ */
.reviews .head em{font-style:normal;color:var(--orange)}
.reviewlist{margin-top:26px;display:flex;flex-direction:column;gap:16px}
.review{
  background:#fff;border-radius:12px;
  box-shadow:0 3px 14px rgba(90,75,45,.1);
  padding:20px 18px;
  display:grid;grid-template-columns:1fr 88px;gap:6px 16px;
}
.review .stars{
  grid-column:1/-1;color:#e8681c;font-size:17px;letter-spacing:.22em;line-height:1;
}
.review .ph{
  grid-row:2/4;grid-column:2;
  width:88px;height:112px;border-radius:8px;overflow:hidden;align-self:start;
}
.review .ph img{width:100%;height:100%;object-fit:cover}
.review .qmark{
  font-family:Georgia,serif;font-size:36px;line-height:.7;color:#dcd2bd;font-weight:700;
  margin-top:8px;
}
.review .body{
  grid-column:1;
  font-family:var(--mincho);font-weight:500;
  font-size:13px;line-height:2;letter-spacing:.01em;color:var(--ink);
}
.review .who{
  grid-column:1;margin-top:10px;
  font-size:12px;letter-spacing:.06em;color:var(--ink-soft);
  font-family:var(--mincho);
}

/* ============================================================
   14. 医師も太鼓判
   ============================================================ */
.doctors{background:#f4f2ed;padding:56px 22px}
.doctors__head{
  display:flex;align-items:center;justify-content:center;gap:12px;
}
.doctors__head .sarani{
  font-family:var(--mincho);font-weight:700;font-size:15px;color:var(--ink);
  letter-spacing:.04em;position:relative;padding:0 10px;flex:none;
  transform:rotate(-6deg);
}
.doctors__head .sarani::before,.doctors__head .sarani::after{
  content:"";position:absolute;top:50%;width:2px;height:16px;background:#8a2f23;
}
.doctors__head .sarani::before{left:-2px;transform:translateY(-50%) rotate(-24deg)}
.doctors__head .sarani::after{right:-2px;transform:translateY(-50%) rotate(24deg)}
.doctors__head .main{
  font-weight:900;font-size:27px;letter-spacing:.02em;color:#1e1c19;
  font-family:var(--gothic);flex:none;
}
.doctors__head .stamp{
  flex:none;font-weight:900;font-size:24px;letter-spacing:.06em;
  color:#a1352a;border:3px solid #a1352a;border-radius:6px;
  padding:4px 10px;transform:rotate(-3deg);
  font-family:var(--gothic);
  box-shadow:inset 0 0 0 1px rgba(161,53,42,.25);
}
.docvoice{margin-top:38px}
.docvoice+.docvoice{margin-top:44px}
.docvoice__quote{
  font-family:var(--mincho);font-weight:700;
  font-size:20px;line-height:1.75;letter-spacing:.02em;color:#c65516;
}
.docvoice__quote .indent{display:block;padding-left:2.2em}
.docvoice__grid{
  margin-top:18px;display:grid;grid-template-columns:1fr 152px;gap:16px;
}
.docvoice__text{
  font-size:13px;line-height:2;letter-spacing:.01em;color:#33302a;
}
.docvoice__side{display:flex;flex-direction:column;gap:8px}
.docvoice__side img{width:100%;border-radius:4px}
.docvoice__credit{
  font-size:11px;line-height:1.7;color:#33302a;text-align:right;
}
.docvoice__credit b{font-size:13px}
.docvoice__credit small{display:block;font-size:9.5px;color:#6d675c}

/* ============================================================
   15. Before / After
   ============================================================ */
.ba__sub{
  margin-top:14px;text-align:center;
  font-family:var(--mincho);font-weight:500;
  font-size:13.5px;letter-spacing:.05em;color:var(--ink);
}
.bagrid{margin-top:26px;display:flex;flex-direction:column;gap:18px}
.bacard{
  background:#fff;border-radius:14px;
  box-shadow:0 4px 16px rgba(90,75,45,.12);
  padding:12px 12px 14px;
}
.bacard .pair{display:flex;gap:5px}
.bacard .shot{position:relative;flex:1;border-radius:6px;overflow:hidden}
.bacard .shot img{width:100%;height:auto}
.bacard .chip{
  position:absolute;left:8px;top:8px;
  background:#1e1c19;color:#fff;
  font-size:10px;letter-spacing:.18em;font-weight:500;
  font-family:Georgia,"Times New Roman",serif;
  padding:4px 9px;
}
.bacard .cap{
  margin-top:11px;text-align:center;
  font-family:var(--mincho);font-weight:600;
  font-size:14.5px;letter-spacing:.05em;color:var(--ink);
}

/* ============================================================
   16. 数字で見る（ネイビー）
   ============================================================ */
.numbers{
  background:
    radial-gradient(110% 50% at 50% 0%,rgba(120,150,200,.14) 0%,rgba(120,150,200,0) 60%),
    linear-gradient(180deg,#0c1726 0%,var(--navy-900) 100%);
}
.numbers__eyebrow{
  text-align:center;font-family:var(--mincho);font-weight:600;
  font-size:17px;letter-spacing:.2em;color:#e8ebf1;
}
.numbers__head{
  margin-top:8px;text-align:center;
  font-family:var(--mincho);font-weight:700;
  font-size:33px;letter-spacing:.06em;line-height:1.5;
  background:linear-gradient(180deg,#ffffff 15%,#bfc9d8 55%,#f0f3f8 92%);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
}
.numbers .orn{margin-top:14px}
.numbers__badge{
  margin:22px auto 0;width:max-content;
  font-family:var(--mincho);font-weight:600;font-size:14.5px;letter-spacing:.16em;
  color:#f0f2f6;border:1px solid rgba(214,222,235,.7);
  padding:7px 20px;position:relative;background:rgba(13,24,40,.4);
}
.numgrid{margin-top:14px;display:grid;grid-template-columns:1fr 1fr;gap:12px}
.numcard{
  background:linear-gradient(160deg,rgba(48,66,94,.5) 0%,rgba(19,34,55,.72) 100%);
  border:1px solid rgba(214,222,235,.32);
  border-radius:12px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 8px 20px rgba(0,0,0,.35);
  padding:20px 8px 16px;text-align:center;
}
.numcard--wide{grid-column:1/-1;display:flex;padding:22px 8px 18px}
.numcard--wide .half{flex:1}
.numcard--wide .half+.half{border-left:1px solid rgba(214,222,235,.25)}
.numcard .val{
  font-family:var(--mincho);font-weight:700;
  font-size:clamp(33px,10.7vw,44px);line-height:1.1;letter-spacing:0;
  background:linear-gradient(180deg,#ffffff 12%,#b9c4d4 58%,#f2f5f9 95%);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
  display:block;white-space:nowrap;
}
.numcard .val small{font-size:.42em;letter-spacing:.02em}
.numcard--wide .val{font-size:clamp(38px,12.3vw,50px)}
.numcard .rule{display:block}
.numcard .label{display:block}
.numcard .sub{display:block}
.numcard .rule{
  width:64%;height:1px;margin:9px auto 8px;
  background:linear-gradient(90deg,transparent,rgba(214,222,235,.6),transparent);
}
.numcard .label{
  font-family:var(--mincho);font-weight:600;
  font-size:13px;line-height:1.7;letter-spacing:.05em;color:#eef1f6;
}
.numcard .sub{
  margin-top:4px;font-size:9.5px;letter-spacing:.01em;color:rgba(238,241,246,.6);
}

/* ============================================================
   17. 初回体験60分の流れ
   ============================================================ */
.flowlist{margin-top:26px;display:flex;flex-direction:column}
.flowlist li{
  background:#fffdf8;border-radius:12px;
  box-shadow:0 3px 12px rgba(90,75,45,.09);
  padding:20px 18px;
  display:flex;align-items:center;gap:18px;
  position:relative;
}
.flowlist li+li{margin-top:22px}
.flowlist li+li::before{
  content:"";position:absolute;left:49px;top:-19px;height:16px;width:1px;
  background:var(--orange);
}
.flowlist .stepno{
  flex:none;width:64px;height:64px;border-radius:50%;
  border:1.5px solid var(--orange);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  color:var(--orange);position:relative;
  background:#fff;
}
.flowlist .stepno::after{
  content:"";position:absolute;inset:3px;border-radius:50%;
  border:1px solid rgba(232,104,28,.35);
}
.flowlist .stepno span{font-size:9.5px;letter-spacing:.18em;font-weight:600;font-family:Georgia,serif}
.flowlist .stepno b{font-family:var(--mincho);font-size:24px;line-height:1;font-weight:700}
.flowlist h3{
  font-family:var(--mincho);font-weight:700;font-size:19px;
  letter-spacing:.06em;color:var(--ink);line-height:1.5;
}
.flowlist p{margin-top:5px;font-size:12px;line-height:1.85;color:var(--ink-soft)}

/* ============================================================
   18. 料金オファー（ネイビー）
   ============================================================ */
.offer{
  position:relative;overflow:hidden;
  background:linear-gradient(180deg,#0b1522 0%,var(--navy-900) 100%);
  padding:56px 22px;
}
.offer__bg{
  position:absolute;top:0;right:0;width:52%;height:46%;
  opacity:.6;pointer-events:none;
}
.offer__bg img{width:100%;height:100%;object-fit:cover}
.offer__bg::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,#0c1725 0%,rgba(12,23,37,.55) 40%,rgba(12,23,37,.18) 100%),
             linear-gradient(180deg,rgba(12,23,37,.25) 0%,rgba(12,23,37,.1) 45%,#0d1a2b 96%);
}
.offer__inner{position:relative}
.offer__limited{
  margin:0 auto;width:max-content;
  font-family:var(--mincho);font-weight:600;font-size:14px;letter-spacing:.2em;
  color:var(--gold-soft);
  border:1px solid var(--gold);
  border-radius:99px;padding:7px 24px;
  background:rgba(10,20,34,.5);
}
.offer__title{
  margin-top:22px;text-align:center;
  font-family:var(--mincho);font-weight:600;
  font-size:42px;letter-spacing:.14em;color:#f5f6f8;line-height:1.3;
}
.offer__price{
  margin-top:4px;text-align:center;
  font-family:var(--mincho);font-weight:700;line-height:1;
}
.offer__price .num{
  font-size:84px;letter-spacing:0;
  background:linear-gradient(180deg,#f8a04a 5%,var(--orange) 58%,#d85a0e 100%);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
}
.offer__price .yen{
  font-size:34px;
  background:linear-gradient(180deg,#f8a04a 5%,var(--orange) 58%,#d85a0e 100%);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
}
.offer__price .tax{
  font-size:13px;color:#dfe4ec;letter-spacing:.1em;font-weight:500;
  display:inline-block;margin-left:4px;
}
.offer__was{
  margin-top:14px;text-align:center;
  font-family:var(--mincho);font-size:16px;letter-spacing:.1em;
  color:rgba(238,241,246,.85);
}
.offer__includes{
  margin-top:26px;display:flex;
  border:1px solid rgba(201,163,95,.55);border-radius:10px;
  background:rgba(10,20,34,.45);
}
.offer__includes li{
  flex:1;padding:16px 2px 13px;text-align:center;
  display:flex;flex-direction:column;align-items:center;gap:8px;
}
.offer__includes li+li{border-left:1px solid rgba(201,163,95,.3)}
.offer__includes svg{width:26px;height:26px;color:var(--gold)}
.offer__includes span{
  font-size:11px;font-weight:500;letter-spacing:.02em;color:#eef1f6;line-height:1.45;
}
.offer__checks{margin-top:22px;display:flex;flex-direction:column}
.offer__checks li{
  display:flex;align-items:center;gap:12px;
  padding:13px 4px;
  font-family:var(--mincho);font-weight:600;
  font-size:15.5px;letter-spacing:.06em;color:#f0f2f6;
}
.offer__checks li+li{border-top:1px solid rgba(214,222,235,.14)}
.offer__checks .ck{
  flex:none;width:24px;height:24px;border-radius:50%;
  border:1.5px solid var(--orange);
  display:flex;align-items:center;justify-content:center;
}
.offer__checks .ck svg{width:12px;height:12px;color:var(--orange)}
.offer .btn{margin-top:24px}
.contacts{margin-top:14px;display:grid;grid-template-columns:1fr 1fr 1fr;gap:9px}
.contacts a{
  border:1px solid var(--navy-line);border-radius:10px;
  background:rgba(16,28,46,.72);
  padding:14px 4px 12px;text-decoration:none;text-align:center;
  display:flex;flex-direction:column;align-items:center;gap:6px;
  color:#eef1f6;
}
.contacts svg{width:24px;height:24px;color:var(--orange)}
.contacts .line-ico{color:#20c25e}
.contacts b{font-size:12px;font-weight:600;letter-spacing:.03em;line-height:1.4}
.contacts small{font-size:10.5px;color:var(--gold-soft);letter-spacing:.02em;font-weight:600}
.offer__note{
  margin-top:22px;text-align:center;
  font-family:var(--mincho);font-size:12.5px;letter-spacing:.22em;
  color:rgba(238,241,246,.8);
}

/* ============================================================
   19. 代表メッセージ
   ============================================================ */
.message .m-head{display:grid;grid-template-columns:1fr 168px;gap:18px;align-items:start}
.message .m-eyebrow{
  font-size:11px;letter-spacing:.34em;color:var(--gold-deep);font-weight:500;
}
.message .m-title{
  margin-top:12px;
  font-family:var(--mincho);font-weight:600;
  font-size:clamp(21px,6.4vw,27px);letter-spacing:.08em;color:var(--ink);line-height:1.5;
}
.message .m-script{
  margin-top:8px;
  font-family:Georgia,"Times New Roman",serif;font-style:italic;
  font-size:16px;color:var(--gold-deep);letter-spacing:.04em;
}
.message .m-rule{
  margin-top:16px;height:1px;position:relative;
  background:linear-gradient(90deg,var(--ink) 0%,rgba(43,37,29,.2) 100%);
}
.message .m-rule::after{
  content:"";position:absolute;right:0;top:-3.5px;width:8px;height:8px;
  background:var(--gold-deep);transform:rotate(45deg);
}
.message .m-photo{border-radius:6px;overflow:hidden;box-shadow:0 4px 14px rgba(90,75,45,.18)}
.message .m-photo img{width:100%;height:auto}
.message .m-copy{
  margin-top:30px;
  font-family:var(--mincho);font-weight:600;
  font-size:24.5px;line-height:1.75;letter-spacing:.04em;color:var(--ink);
}
.message .m-body{margin-top:18px;display:flex;flex-direction:column;gap:14px}
.message .m-body p{
  font-family:var(--mincho);font-weight:500;
  font-size:13.5px;line-height:2.15;letter-spacing:.02em;color:var(--ink);
}
.message .m-cert{
  margin-top:22px;width:max-content;max-width:100%;
  font-family:var(--mincho);font-weight:600;font-size:13.5px;letter-spacing:.08em;
  color:var(--ink);border:1px solid var(--gold-deep);
  padding:9px 18px;background:#fbf6ea;
}
.message .m-close{
  margin-top:26px;
  border:1px solid var(--ink);outline:1px solid rgba(43,37,29,.35);outline-offset:3px;
  padding:20px 16px;text-align:center;
  font-family:var(--mincho);font-weight:600;
  font-size:16.5px;line-height:2;letter-spacing:.05em;color:var(--ink);
}
.message .m-close em{font-style:normal;color:var(--orange);font-size:19px}
.message .m-sign{margin-top:24px;text-align:right}
.message .m-sign span{
  display:block;font-family:var(--mincho);font-size:12.5px;
  letter-spacing:.1em;color:var(--ink);
}
.message .m-sign b{
  display:block;margin-top:6px;
  font-family:var(--mincho);font-weight:700;
  font-size:34px;letter-spacing:.22em;color:var(--ink);
}
.message .m-note{
  margin-top:26px;font-size:10.5px;line-height:1.9;color:var(--ink-soft);
  letter-spacing:.01em;
}

/* ============================================================
   20. FAQ
   ============================================================ */
.faqlist{margin-top:26px;display:flex;flex-direction:column;gap:12px}
.faq-item{
  background:#fbf8f1;border:1px solid #eee4d0;border-radius:10px;
  box-shadow:0 2px 8px rgba(90,75,45,.06);
  overflow:hidden;
}
.faq-q{
  width:100%;display:flex;align-items:center;justify-content:space-between;gap:14px;
  background:none;border:none;cursor:pointer;
  padding:19px 18px;text-align:left;
  font-family:var(--gothic);font-weight:500;
  font-size:14.5px;letter-spacing:.02em;color:var(--ink);line-height:1.6;
}
.faq-q .pm{
  flex:none;width:18px;height:18px;position:relative;
}
.faq-q .pm::before,.faq-q .pm::after{
  content:"";position:absolute;background:var(--orange);
  transition:transform .2s ease;
}
.faq-q .pm::before{left:0;right:0;top:8px;height:2px}
.faq-q .pm::after{top:0;bottom:0;left:8px;width:2px}
.faq-item.is-open .faq-q .pm::after{transform:scaleY(0)}
.faq-a{
  display:grid;grid-template-rows:0fr;transition:grid-template-rows .25s ease;
}
.faq-item.is-open .faq-a{grid-template-rows:1fr}
.faq-a>div{overflow:hidden}
.faq-a p{
  padding:0 18px 19px;
  font-size:13px;line-height:1.95;color:#514a3e;
  border-top:1px dashed #e4d8bf;
  padding-top:15px;margin:0 0;
}

/* ============================================================
   21. アクセス
   ============================================================ */
.access__map{
  margin-top:26px;height:220px;border-radius:12px;
  background:#33322f;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;
  color:#b9b5ad;
}
.access__map svg{width:34px;height:34px;color:#8f8b83}
.access__map span{font-size:14px;letter-spacing:.08em}
.access__photo{margin-top:16px;border-radius:12px;overflow:hidden;box-shadow:0 4px 14px rgba(90,75,45,.14)}
.access__photo img{width:100%;height:auto}
.infotable{
  margin-top:18px;background:#fffdf8;border-radius:12px;
  box-shadow:0 3px 12px rgba(90,75,45,.08);
  overflow:hidden;
}
.infotable>div{
  display:flex;align-items:flex-start;gap:0;
  padding:17px 16px;
}
.infotable>div+div{border-top:1px solid #efe7d5}
.infotable .ic{flex:none;width:26px;margin-top:1px}
.infotable .ic svg{width:20px;height:20px;color:var(--orange)}
.infotable dt{
  flex:none;width:74px;font-size:13px;font-weight:700;
  color:var(--ink);letter-spacing:.06em;line-height:1.8;
}
.infotable dd{
  flex:1;font-size:13.5px;line-height:1.85;color:var(--ink);letter-spacing:.01em;
}
.infotable dd a{color:var(--orange);font-weight:700;text-decoration:none;font-size:17px;letter-spacing:.03em}

/* ============================================================
   22. 最終CTA＋フッター（ネイビー）
   ============================================================ */
.final{
  background:
    radial-gradient(110% 40% at 50% 0%,rgba(120,150,200,.1) 0%,rgba(120,150,200,0) 60%),
    linear-gradient(180deg,#101d31 0%,#0d1929 100%);
  padding:56px 0 0;
}
.final__inner{padding:0 22px}
.final__copy{
  text-align:center;font-family:var(--mincho);font-weight:600;
  font-size:clamp(15px,4.5vw,21px);line-height:1.95;letter-spacing:.02em;color:#f2f4f8;
}
.final__desc{
  margin-top:18px;text-align:center;
  font-size:12.5px;line-height:2.05;letter-spacing:.04em;color:rgba(238,241,246,.85);
}
.final__ctabox{
  margin-top:26px;
  background:rgba(8,15,26,.7);
  border:1px solid rgba(214,222,235,.14);
  border-radius:14px;padding:10px;
  display:grid;grid-template-columns:70px minmax(0,1fr);gap:9px;
}
.final__tel{
  border:1px solid rgba(214,222,235,.3);border-radius:10px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;
  color:#f0f2f6;text-decoration:none;
  font-family:var(--mincho);font-weight:600;font-size:13px;line-height:1.4;
  letter-spacing:.08em;text-align:center;
}
.final__tel svg{width:20px;height:20px;color:var(--orange)}
.final__reserve{
  border-radius:10px;text-decoration:none;
  background:linear-gradient(180deg,#f1832f 0%,var(--orange) 45%,var(--orange-deep) 100%);
  border:1px solid rgba(255,255,255,.3);
  box-shadow:0 4px 14px rgba(207,86,16,.4),inset 0 1px 0 rgba(255,255,255,.3);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;
  padding:14px 8px;color:#fff;
}
.final__reserve .badge{
  font-size:clamp(9px,2.65vw,11px);font-weight:500;letter-spacing:0;
  display:flex;align-items:baseline;gap:3px;white-space:nowrap;
}
.final__reserve .badge b{font-family:Georgia,serif;font-size:1.45em;letter-spacing:.01em}
.final__reserve .badge small{font-size:.86em;opacity:.9}
.final__reserve .main{
  font-family:var(--mincho);font-weight:700;font-size:clamp(14px,4.15vw,18.5px);letter-spacing:.04em;
  white-space:nowrap;
}
.final__reserve .main::after{content:" ›"}

.foot{
  margin-top:48px;border-top:1px solid rgba(214,222,235,.14);
  padding:36px 22px 30px;text-align:center;
}
.foot__brand{
  font-family:var(--mincho);font-weight:700;font-size:24px;
  letter-spacing:.1em;color:#f2f4f8;
}
.foot .flourish{color:var(--gold);width:88px;height:14px;margin:14px auto 20px;display:block}
.foot__addr{
  display:flex;align-items:center;justify-content:center;gap:7px;
  font-size:12px;letter-spacing:.03em;color:rgba(238,241,246,.9);
}
.foot__addr svg{width:14px;height:14px;color:var(--gold);flex:none}
.foot__tel{
  margin-top:12px;display:flex;align-items:center;justify-content:center;gap:8px;
  text-decoration:none;
}
.foot__tel svg{width:18px;height:18px;color:var(--orange)}
.foot__tel span{font-size:12px;letter-spacing:.14em;color:#dfe4ec}
.foot__tel b{
  font-family:Georgia,"Times New Roman",serif;
  font-size:26px;font-weight:700;color:var(--orange);letter-spacing:.02em;
}
.foot__rule{height:1px;background:rgba(214,222,235,.14);margin:26px 0 22px}
.foot__disc{font-size:10.5px;line-height:2;color:rgba(238,241,246,.55)}
.foot__copy{margin-top:14px;font-size:10.5px;color:rgba(238,241,246,.5);letter-spacing:.06em}

/* ============================================================
   固定CTAバー・トップへ戻る
   ============================================================ */
.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(10,17,28,.97);border-top:1px solid #000;
  backdrop-filter:blur(6px);box-shadow:0 -4px 18px rgba(0,0,0,.3);
}
.sb-tel,.sb-reserve{
  text-decoration:none;text-align:center;border-radius:10px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
}
.sb-tel{
  gap:3px;border:1px solid #35435c;color:#ecebe8;
  font-size:11px;font-weight:700;line-height:1.15;padding:8px 4px;
}
.sb-tel svg{width:17px;height:17px;color:var(--orange)}
.sb-reserve{
  gap:3px;background:linear-gradient(180deg,#f1832f,var(--orange-deep));
  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;
  display:flex;align-items:baseline;gap:2px;opacity:.97;
}
.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(13,22,36,.74);
  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}

/* ============================================================
   狭幅端末（375px以下）の微調整
   ============================================================ */
@media(max-width:389px){
  .hero__title{font-size:39px}
  .pricebox__now{font-size:48px}
  .method__title{font-size:46px}
  .method__title .word{font-size:42px}
  .offer__price .num{font-size:72px}
  .numbers__head{font-size:29px}
  .topbar__name{font-size:16px}
  .worries__head{font-size:24px}
}
