/* ===== Merchant Reserve — 紹介ページ（/）=====
   白ベース＋暖色のアクセント1色。見出しは細め(500-600)・字間広めで、太ポップは使わない。
   節の区切りは罫線ではなく面の色（白 → 薄クリーム → 白 → 黒帯）で作る。 */
/* 色は他ツールと重ならないローズ〜プラム帯を使う。
   橙(DEADLINE) 金(PAPER) 緑(CTA) 青緑(THANKS) 水色(SQUEEZE) 紺(SCHEDULE)
   紫(LAW) 臙脂(PRIVACY) が埋まっており、空いていたのがこの色域だった。 */
/* 主役はローズ、差し色は紺。1色だけだと面が単調になるので、
   「押すもの＝ローズ」「情報の重み＝紺」と役割で塗り分ける（マーチャントクラブの色の考え方と同じ）。 */
:root{
  --paper:#ffffff; --cream:#f7fbfd; --cream-2:#e6f1f7;
  --ink:#20303a; --ink-soft:#5a6b76; --ink-3:#8a99a3; --line:#d9e8f0;
  --accent:#2b8ab0; --accent-d:#1c6b8d; --accent-soft:#e0f0f8;
  --navy:#1f3244; --navy-d:#152634; --navy-soft:#e6edf3;
  --radius:16px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
html,body{margin:0}
/* 保険。装飾がわずかに外へ出ても横スクロールを生ませない。
   clip を使うのは、hidden だと position:sticky のナビが効かなくなるため。 */
html{overflow-x:clip}
body{
  font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Noto Sans JP",sans-serif;
  color:var(--ink); background:var(--paper); line-height:1.9; -webkit-font-smoothing:antialiased;
}
a{color:var(--navy)}
h1,h2,h3{font-weight:600; letter-spacing:.05em; line-height:1.5; margin:0}
em{font-style:normal}
.lpsec{padding:76px 22px}
.secIn{max-width:1180px; margin:0 auto}

/* ---------- ナビ ---------- */
.nav{position:sticky; top:0; z-index:30; background:rgba(255,255,255,.92); backdrop-filter:blur(8px);
  border-bottom:1px solid transparent; transition:.2s}
.nav.stuck{border-bottom-color:var(--line); box-shadow:0 2px 18px rgba(20,60,80,.07)}
.navIn{max-width:1100px; margin:0 auto; padding:12px 22px; display:flex; align-items:center; gap:18px}
.navBrand{display:flex; align-items:center; gap:9px; text-decoration:none; color:var(--ink);
  font-weight:600; letter-spacing:.14em; font-size:.92rem}
.navBrand i{width:22px; height:22px; border-radius:7px; flex:none;
  background:radial-gradient(circle at 34% 30%,#7bc4e0,var(--accent) 55%,var(--accent-d));
  box-shadow:0 2px 9px rgba(43,138,176,.32)}
.navIn .sp{flex:1}
.navIn .lnk{color:var(--ink-soft); text-decoration:none; font-size:.87rem; letter-spacing:.04em}
.navIn .lnk:hover{color:var(--accent-d)}
.cta{display:inline-flex; align-items:center; justify-content:center; text-decoration:none;
  background:var(--accent); color:#fff; border-radius:12px; padding:15px 34px;
  font-weight:600; letter-spacing:.08em; transition:.15s}
.cta:hover{background:var(--accent-d); color:#fff}
.cta.sm{padding:9px 18px; font-size:.85rem; border-radius:10px}
.cta.gh{background:var(--paper); color:var(--navy); border:1px solid var(--line)}
.cta.gh:hover{background:var(--cream)}

/* ---------- ヒーロー ---------- */
.hero{
  padding-top:56px; position:relative; overflow:visible;
  background:linear-gradient(170deg,#fbfeff 0%,var(--cream) 52%,#eef7fb 100%);
}
/* 差し込む光。ファーストビューだけにわずかな奥行きを置く。
   【左右に広げないこと】マスコットを見せるため .hero は overflow:visible にしてあるので、
   ここで -10% などと外へ出すと、そのぶん横スクロールが生まれる（実際に90px出た）。 */
/* 【ヒーローの外へ出さないこと】.hero は overflow:visible（マスコットのため）なので、
   高さを外まで伸ばすと、次の節の上に灰色の四角として乗り、帯のように見える（実際に出た）。 */
.hero::before{content:""; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(ellipse 46% 52% at 78% 16%,rgba(123,196,224,.24),transparent 62%),
             radial-gradient(ellipse 40% 44% at 6% 88%,rgba(31,50,68,.10),transparent 66%);
  z-index:0}
.heroIn{max-width:1180px; margin:0 auto; position:relative; z-index:2;
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.92fr); gap:46px; align-items:center}
.eyebrow{display:flex; gap:8px; flex-wrap:wrap; margin-bottom:18px}
.eyebrow span{font-size:.74rem; letter-spacing:.1em; color:var(--accent-d);
  background:rgba(255,255,255,.75); border:1px solid var(--accent-soft); border-radius:999px; padding:5px 14px}
/* ---- マスコット ----
   【上下に動かさないこと・見出し2行目の文字下端に足元をそろえること】
   h1 の margin は .h1wrap 側に持たせる。h1 に付けると inline-block の高さに含まれ、
   下端を基準に立たせているキャラがそのぶん下へずれる。
   画像はキャラの下に約9%（23/253px）の余白があるので bottom:-2px で相殺する。 */
.h1wrap{position:relative; display:inline-block; max-width:100%; margin:0}
.h1wrap h1{margin:0}
.mascot{position:absolute; z-index:3; width:84px; height:118px; pointer-events:none;
  background-image:url(/mascot.png);
  background-repeat:no-repeat; background-size:200% 100%; background-position-x:0%;
  animation:rv-step 1.1s steps(1) infinite;
  filter:drop-shadow(0 10px 18px rgba(90,30,55,.18))}
@keyframes rv-step{0%{background-position-x:0%} 50%{background-position-x:100%}}
@media(prefers-reduced-motion:reduce){ .mascot{animation:none} }
.heroMascot{left:calc(100% + 14px); bottom:-2px}
@media(max-width:1100px){ .heroMascot{left:calc(100% + 8px); width:70px; height:98px} }
@media(max-width:620px){ .heroMascot{width:54px; height:76px; left:calc(100% + 4px)} }

.hero h1{font-size:clamp(1.9rem,4.6vw,2.9rem); letter-spacing:.04em; line-height:1.44}
.hero h1 em{position:relative}
.hero h1 em::after{content:""; position:absolute; left:-.03em; right:-.03em; bottom:.09em; height:.3em; z-index:-1;
  background:linear-gradient(90deg,rgba(123,196,224,.48),rgba(43,138,176,.22)); border-radius:3px}
.lead{color:var(--ink-soft); margin:22px 0 24px; max-width:34em}
.lead b{color:var(--ink); font-weight:600}
.btns{display:flex; gap:12px; flex-wrap:wrap}
.lpnote{color:var(--ink-3); font-size:.83rem; margin-top:16px}

/* ヒーローの見本。実物をそのまま縮めて出す */
/* ---------- ヒーローの実演 ---------- */
.demo{position:relative; min-width:0}
.demoTag{display:inline-block; font-size:.7rem; letter-spacing:.12em; color:var(--navy);
  background:var(--navy-soft); border-radius:20px; padding:4px 13px; margin-bottom:12px}
/* 中身はスマホ幅(430px)で描かせ、枠に合わせて拡大縮小する。
   広い仮想幅で描いて縮めると、字が小さくなって何が起きているのか読めない。 */
.artFrame{
  border:1px solid var(--line); border-radius:18px; overflow:hidden; background:#fff;
  box-shadow:0 26px 70px rgba(20,60,80,.20); height:min(620px, 64vh); position:relative;
  display:flex; justify-content:center;
}
.artFrame iframe{border:0; transform-origin:0 0; position:absolute; top:0; pointer-events:none}
.demoCtl{display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin:14px 2px 0; justify-content:space-between}
.demoCtl .sw{display:flex; gap:4px; background:var(--cream-2); border:1px solid var(--line);
  border-radius:999px; padding:4px}
.demoCtl .sw button{border:0; background:none; font-family:inherit; font-size:.74rem; color:var(--ink-soft);
  padding:6px 13px; border-radius:999px; cursor:pointer; letter-spacing:.04em}
.demoCtl .sw button.on{background:var(--paper); color:var(--ink); font-weight:600;
  box-shadow:0 1px 4px rgba(20,60,80,.12)}
.demoCtl .rep{border:1px solid var(--line); background:rgba(255,255,255,.7); border-radius:999px;
  font-family:inherit; font-size:.74rem; color:var(--ink-soft); padding:7px 15px; cursor:pointer}
.demoCtl .rep:hover{border-color:var(--accent); color:var(--accent-d)}

/* ---------- 3ステップ ---------- */
.howto2{background:var(--cream)}
.howto2 h2, .tool h2, .feats h2{font-size:clamp(1.35rem,3.2vw,2rem); text-align:left; margin:0 0 18px;
  letter-spacing:.03em; line-height:1.5}
.kicker{display:flex; align-items:center; gap:12px; font-size:.7rem; letter-spacing:.2em;
  color:var(--ink-3); margin:0 0 16px}
.kicker::before{content:""; width:26px; height:1px; background:var(--accent); flex:none}
/* カードを3枚並べるのは古く見える。番号を大きく抜いて、線でリズムをつける。 */
.steps{display:grid; gap:clamp(26px,4vw,44px); list-style:none; margin:34px 0 0; padding:0}
@media(min-width:820px){ .steps{grid-template-columns:repeat(3,1fr)} }
.steps li{position:relative; padding-right:clamp(0px,1vw,10px)}
.steps .n{display:block; font-size:clamp(38px,5vw,54px); font-weight:600; line-height:1; margin:0 0 6px;
  color:transparent; -webkit-text-stroke:1.4px color-mix(in srgb, var(--accent) 55%, transparent);
  font-variant-numeric:tabular-nums; letter-spacing:.02em}
.steps li:nth-child(2) .n{-webkit-text-stroke-color:color-mix(in srgb, var(--navy) 45%, transparent)}
.steps li:nth-child(3) .n{-webkit-text-stroke-color:color-mix(in srgb, var(--navy) 45%, transparent)}
.steps .ln{width:34px; height:2px; background:var(--accent); opacity:.5; margin:0 0 18px}
.steps li:nth-child(2) .ln, .steps li:nth-child(3) .ln{background:var(--navy); opacity:.35}
.steps b{display:block; font-size:1.02rem; font-weight:600; margin:0 0 10px; letter-spacing:.03em}
.steps p{margin:0; font-size:.88rem; color:var(--ink-soft); line-height:2.0; max-width:24em; word-break:auto-phrase}
@media(min-width:820px){
  .steps li:not(:last-child)::after{content:""; position:absolute; top:26px; right:-6px; width:10px; height:10px;
    border-right:1.5px solid var(--line); border-top:1.5px solid var(--line); transform:rotate(45deg)}
}
@media(max-width:819px){
  .steps li:not(:last-child){padding-bottom:26px; border-bottom:1px solid var(--line)}
}
.stepNote{margin:30px 0 0; font-size:.78rem; color:var(--ink-3); line-height:1.9}

.secLead{color:var(--ink-soft); margin:-6px 0 28px; font-size:.92rem; word-break:auto-phrase; text-wrap:pretty}
.secNote{text-align:center; margin-top:16px; font-size:.87rem}

/* ---------- できること ----------
   ページ全部がローズ一色だと簡素に見える。ここだけ紺の面にして、
   白 → クリーム → 白 → 紺 → 白 → 黒 の順で面の色を変える。 */
.feats{background:linear-gradient(168deg,var(--navy) 0%,var(--navy-d) 100%); color:#fff}
.feats h2{color:#fff}
.feats .kicker{color:#a9dcf0}
.feats .secLead{color:rgba(255,255,255,.7)}
.fgrid{display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:14px; margin-top:32px}
/* 高さを揃える。1枚だけ背が高いと、並びが崩れて読む気が失せる。 */
.fgrid .f{display:flex; flex-direction:column; gap:12px;
  background:rgba(255,255,255,.055); border:1px solid rgba(255,255,255,.12);
  border-radius:16px; padding:22px 20px; transition:.18s}
.fgrid .f:hover{background:rgba(255,255,255,.09); border-color:rgba(255,255,255,.22); transform:translateY(-2px)}
/* 絵の色を1枚ずつ変える。同じ色で8枚並ぶと面が均一になり、どれも目に留まらない。 */
.fgrid .f{--fc:#5fb6d9}
.fgrid .f:nth-child(2){--fc:#6fc08a}
.fgrid .f:nth-child(3){--fc:#e2b24e}
.fgrid .f:nth-child(4){--fc:#e58aa0}
.fgrid .f:nth-child(5){--fc:#a892e0}
.fgrid .f:nth-child(6){--fc:#e79a5f}
.fgrid .f:nth-child(7){--fc:#4fc4b2}
.fgrid .f:nth-child(8){--fc:#7fa9ec}
.fgrid .f .fi{width:40px; height:40px; border-radius:12px; flex:none; display:flex;
  align-items:center; justify-content:center;
  background:color-mix(in srgb, var(--fc) 20%, transparent);
  border:1px solid color-mix(in srgb, var(--fc) 40%, transparent)}
.fgrid .f .fi svg{width:20px; height:20px; fill:none;
  stroke:color-mix(in srgb, var(--fc) 88%, #fff); stroke-width:1.6;
  stroke-linecap:round; stroke-linejoin:round}
.fgrid .f:hover{border-color:color-mix(in srgb, var(--fc) 34%, transparent)}
/* 見出しは1行に収める。折り返すと札の高さが揃わず、目が滑る。 */
.fgrid .f b{display:block; color:#fff; letter-spacing:.02em; font-weight:600; font-size:.98rem;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.fgrid .f p{margin:0; color:rgba(255,255,255,.72); font-size:.85rem; line-height:1.95}

/* ---------- 読み物 ---------- */
.guide{padding-top:80px}
.guideWrap{max-width:1000px; margin:0 auto; display:grid; grid-template-columns:1fr; gap:34px}
.toc{display:none}
@media(min-width:1000px){
  .guideWrap{grid-template-columns:210px 1fr; gap:48px; align-items:start}
  .toc{display:block; position:sticky; top:76px}
}
.toc b{display:block; font-size:.78rem; letter-spacing:.12em; color:var(--ink-3); margin-bottom:12px}
.toc a{display:block; color:var(--ink-soft); text-decoration:none; font-size:.85rem; padding:6px 0;
  border-left:2px solid var(--line); padding-left:12px}
.toc a:hover{color:var(--accent-d); border-left-color:var(--accent)}
.guide-sec{margin-bottom:56px; scroll-margin-top:80px}
.guide-sec h2{font-size:1.32rem; margin-bottom:16px; padding-left:14px; border-left:3px solid var(--accent)}
.guide-sec h3{font-size:1rem; margin:26px 0 8px; color:var(--navy)}
.guide-sec p{margin:0 0 14px; color:#3c4750}
.guide-sec em{background:linear-gradient(transparent 62%,var(--accent-soft) 62%); font-weight:600}
.guide-tbl{width:100%; border-collapse:collapse; margin:16px 0 20px; font-size:.9rem}
.guide-tbl th{text-align:left; width:34%; vertical-align:top; padding:13px 16px; background:var(--navy-soft);
  border:1px solid var(--line); font-weight:600; color:var(--navy)}
.guide-tbl td{padding:13px 16px; border:1px solid var(--line); color:var(--ink-soft)}
.faq{margin:0}
.faq dt{font-weight:600; margin-top:20px; letter-spacing:.03em}
.faq dt::before{content:"Q. "; color:var(--accent)}
.faq dd{margin:6px 0 0; color:var(--ink-soft); font-size:.92rem}

/* ---------- 締め ----------
   アクセント色を黒に溶かした面。他ツールと同じ「最後は沈める」作り。 */
.closing{
  position:relative; overflow:hidden; color:#fff; text-align:center;
  background:linear-gradient(155deg,#122430 0%,#111c25 55%,#101a22 100%);
}
.closing::before{content:""; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(ellipse 50% 60% at 18% 8%,rgba(43,138,176,.42),transparent 62%),
             radial-gradient(ellipse 46% 56% at 86% 96%,rgba(31,50,68,.55),transparent 64%)}
.closing .secIn{position:relative; z-index:2}
.closing h2{font-size:clamp(1.3rem,3.4vw,1.8rem); margin-bottom:16px; color:#fff}
.closing p{color:rgba(255,255,255,.72); margin:0 0 28px}
.closing .cta{background:var(--accent)}
.closing .cta:hover{background:#3a9cc4}

footer{background:#f0f7fb; padding:42px 22px}
.disclaimer{max-width:1000px; margin:0 auto; font-size:.8rem; color:var(--ink-3)}
.disclaimer b{display:block; margin-bottom:8px; color:var(--ink-soft); letter-spacing:.06em}
.disclaimer ul{margin:0; padding-left:1.2em}
.disclaimer li{margin-bottom:5px}

@media(max-width:900px){
  .heroIn{grid-template-columns:1fr; gap:34px}
  .demo{max-width:372px; margin:0 auto; width:100%}
  .lpsec{padding:58px 18px}
  .hide-sp{display:none}
  }
/* 狭い画面ではナビが2行に折れるので、ブランド名と申込ボタンだけ残す */
@media(max-width:620px){
  .navIn{padding:10px 16px; gap:10px}
  .navBrand{font-size:.78rem; letter-spacing:.1em; white-space:nowrap}
  .navBrand i{width:19px; height:19px}
  .navIn .lnk{display:none}
  .cta.sm{padding:8px 14px; font-size:.8rem; white-space:nowrap}
}
