/* 画像型LPの共通スタイル（3本で同じファイル。LPごとの色は index.html の :root で上書きする）
   スマホでも PC でも同じ縦長の読み順。PC では最大600pxの列を中央に置く（家計見直しセミナーと同じ見せ方） */
:root{--theme:#1f6b4f;--theme-deep:#15503b;--accent:#f2b705;--bg:#eef6f1;--ink:#17332a;--card:#fff;--line:#d9e6de;--radius:18px}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:72px}
body{margin:0;color:var(--ink);font-family:"Hiragino Sans","Yu Gothic","Noto Sans JP",sans-serif;line-height:1.75;
  background:radial-gradient(circle at 12% 8%,color-mix(in srgb,var(--theme) 16%,transparent),transparent 42%),
  radial-gradient(circle at 88% 30%,color-mix(in srgb,var(--accent) 18%,transparent),transparent 40%),var(--bg)}
body{width:100%;max-width:600px;margin-inline:auto;box-shadow:0 0 60px rgba(0,0,0,.08);background-color:var(--bg)}
html{background:radial-gradient(circle at 12% 8%,color-mix(in srgb,var(--theme) 14%,transparent),transparent 45%),
  radial-gradient(circle at 88% 70%,color-mix(in srgb,var(--accent) 16%,transparent),transparent 45%),
  color-mix(in srgb,var(--bg) 80%,#e9ebe8)}
img{max-width:100%}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* 見本の帯（rolsa.jp に載せるときは build-lp-demos.sh が差し替える） */
.preview-note{background:var(--theme-deep);color:#fff;text-align:center;padding:6px 12px;font-size:11px;letter-spacing:.05em}
.preview-note a{color:inherit}

/* 上部の固定バー */
.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:10px clamp(14px,3vw,32px);background:color-mix(in srgb,var(--card) 88%,transparent);backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line)}
.topbar-title{margin:0;font-size:14px;font-weight:700;line-height:1.3}
.topbar-title small{display:block;font-size:10px;font-weight:600;color:var(--theme);letter-spacing:.08em}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4em;border:0;border-radius:999px;background:var(--theme);
  color:#fff;font:inherit;font-weight:700;text-decoration:none;white-space:nowrap;cursor:pointer;transition:background .2s,transform .2s}
.btn:hover{background:var(--theme-deep);transform:translateY(-1px)}
.btn-sm{padding:8px 16px;font-size:13px;flex-shrink:0}
.btn-lg{padding:15px 28px;font-size:16px;width:100%}

/* 本体 */
.lp{margin:0;padding:0 0 40px}
.visual{background:var(--card)}
.visual>img{display:block;width:100%;height:auto}
.summary{margin:0;padding:22px 18px;background:var(--card);border-top:4px solid var(--theme)}

/* 要点カード */
.eyebrow{margin:0;color:var(--theme);font-size:12px;font-weight:700;letter-spacing:.14em}
.badges{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px;padding:0;list-style:none}
.badges li{padding:4px 12px;border-radius:999px;background:color-mix(in srgb,var(--theme) 12%,#fff);color:var(--theme-deep);font-size:12px;font-weight:700}
.facts{margin:0 0 20px;display:grid;gap:0;border-top:1px solid var(--line)}
.facts div{display:grid;grid-template-columns:5.2em 1fr;gap:10px;padding:9px 0;border-bottom:1px solid var(--line);font-size:14px}
.facts dt{color:var(--theme);font-weight:700}
.facts dd{margin:0}

/* 下の各セクション */
.section{width:calc(100% - 32px);margin:0 auto;padding:56px 0 8px}
.section h2{margin:0 0 20px;font-size:clamp(22px,2.4vw,28px);display:flex;align-items:center;gap:12px}
.section h2::before{content:"";width:6px;height:1.1em;border-radius:3px;background:var(--theme)}
.table{margin:0;border-radius:var(--radius);overflow:hidden;background:var(--card);box-shadow:0 10px 30px rgba(0,0,0,.05)}
.table div{display:grid;grid-template-columns:7.5em 1fr;gap:14px;padding:14px 20px;border-bottom:1px solid var(--line)}
.table div:last-child{border-bottom:0}
.table dt{font-weight:700;color:var(--theme)}
.table dd{margin:0}
.faq details{margin-bottom:10px;border-radius:14px;background:var(--card);box-shadow:0 6px 20px rgba(0,0,0,.05)}
.faq summary{padding:16px 20px;font-weight:700;cursor:pointer;list-style:none}
.faq summary::before{content:"Q. ";color:var(--theme)}
.faq details p{margin:0;padding:0 20px 18px}
.form-card{padding:28px clamp(18px,4vw,40px);border-radius:var(--radius);background:var(--card);box-shadow:0 18px 50px rgba(0,0,0,.08)}
.form-note{margin:0 0 20px;padding:12px 16px;border-radius:12px;background:color-mix(in srgb,var(--theme) 10%,#fff);font-size:13px;font-weight:700}
form{display:grid;gap:18px}
label{font-weight:700;font-size:14px}
label span{margin-left:6px;padding:1px 7px;border-radius:4px;background:var(--theme);color:#fff;font-size:10px}
input,select{display:block;width:100%;min-height:50px;margin-top:8px;padding:10px 14px;border:1px solid var(--line);border-radius:10px;
  background:#fff;font:inherit;font-size:16px}
select{min-width:10rem;padding-right:2.5rem}
input:focus,select:focus{outline:3px solid color-mix(in srgb,var(--theme) 35%,transparent);border-color:var(--theme)}
.footer{margin-top:56px;padding:28px 16px 110px;text-align:center;font-size:12px;color:#6b7470;border-top:1px solid var(--line)}
.footer strong{display:block;margin-bottom:4px;color:var(--ink);font-size:14px}

/* 画面下に追いかける申込ボタン（列の幅に収める） */
.float-cta{position:fixed;left:0;right:0;width:min(568px,calc(100% - 32px));margin-inline:auto;bottom:calc(14px + env(safe-area-inset-bottom,0px));z-index:15;padding:15px;font-size:15px;box-shadow:0 12px 30px rgba(0,0,0,.25)}

dialog{width:min(520px,calc(100% - 32px));border:0;border-radius:22px;padding:30px;background:#fff;color:var(--ink);box-shadow:0 30px 100px #0005}
dialog::backdrop{background:#1118}
.dialog-close{position:absolute;right:10px;top:8px;width:44px;height:44px;border:0;background:transparent;font-size:25px;cursor:pointer}
dialog dl div{padding:9px 0;border-bottom:1px solid var(--line)}
dialog dt{font-size:12px;color:#777}
dialog dd{margin:0;font-weight:700;overflow-wrap:anywhere}
.back{margin-top:20px}
:focus-visible{outline:3px solid color-mix(in srgb,var(--theme) 45%,transparent);outline-offset:3px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.btn{transition:none}}
