:root{
  --ink:#0c0f14; --muted:#5b677a; --paper:#ffffff; --tint:#f7f8fb; --border:#e6e9ef;
  --gold:#d4b262; --gold2:#f1db9a; --line:#06C755; --accent:#1f2937;
  --radius:16px; --shadow:0 16px 50px rgba(0,0,0,.08);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--paper);color:var(--ink);font-family:'Noto Sans JP',system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}
img{max-width:100%;display:block;height:auto}
a{color:inherit}
.wrap{max-width:1120px;margin:0 auto;padding:0 1rem}
.narrow{max-width:820px;margin:0 auto}
.header{position:sticky;top:0;background:#fff;border-bottom:1px solid var(--border);z-index:60}
.header__inner{display:flex;align-items:center;justify-content:space-between;padding:.8rem 0}
.brand{font-weight:800;letter-spacing:.2px;text-decoration:none;color:var(--ink)}
.nav{display:none}
.nav.open{display:flex;flex-direction:column;position:absolute;top:56px;right:12px;background:#fff;border:1px solid var(--border);border-radius:14px;padding:.8rem;box-shadow:var(--shadow)}
.nav a{padding:.55rem .6rem;text-decoration:none;font-weight:700;border-radius:12px;color:#0b1420}
.nav a:hover{background:#f5f7fb}
.nav-toggle{background:transparent;border:0;font-size:1.2rem;color:#0b1420}
.btn{display:inline-block;padding:.9rem 1.05rem;border-radius:12px;font-weight:800;text-decoration:none;border:1px solid transparent;min-height:44px}
.btn--lg{padding:1rem 1.2rem}
.btn--ghost{background:transparent;color:#0b1420;border-color:#d8dfea}
.btn--ghost:hover{background:#f5f7fb}
.btn--gold{background:linear-gradient(180deg,var(--gold2),var(--gold));color:#191919;border:1px solid #e9dbaa;box-shadow:0 16px 40px rgba(212,178,98,.25)}
.btn--line{background:var(--line);color:#fff;box-shadow:0 10px 26px rgba(6,199,85,.28)}
.hero{padding:2.2rem 0;background:linear-gradient(180deg,#ffffff,#fbfcff)}
.hero__grid{display:grid;gap:1.1rem;grid-template-columns:1fr}
.display{font-family:'Noto Serif JP',serif;font-size:clamp(1.9rem,6vw,2.8rem);line-height:1.18;font-weight:700;letter-spacing:.2px}
.serif{font-family:'Noto Serif JP',serif}
.eyebrow{color:#7a889f;font-weight:800;letter-spacing:.06em}
.lead{color:var(--muted);margin:0 0 1rem 0}
.hero__cta{display:flex;gap:.6rem;flex-wrap:wrap}
.hero__badges{display:flex;gap:.5rem;flex-wrap:wrap;margin:1rem 0 0 0;padding:0;list-style:none}
.hero__badges li{background:#fff;border:1px solid var(--border);color:#3a475c;padding:.35rem .6rem;border-radius:999px;font-weight:700}
.hero__art{display:flex;justify-content:center}
.section{padding:2rem 0}
.section--divider{border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:#fff}
.section--tint{background:var(--tint);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.section__title{font-size:1.2rem;margin:0 0 .7rem}
.text{color:#404a5a}
.grid{display:grid;gap:1rem}
.grid--3{grid-template-columns:1fr}
.card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:1rem;box-shadow:var(--shadow)}
.card--clean .kicker{display:inline-block;font-weight:800;color:#8b97aa;margin-bottom:.25rem}
.steps{margin:.6rem 0 0 1rem}.steps li{margin:.4rem 0}
.note{color:#6b778b;font-size:.95rem}
.faq details{background:#fff;border:1px solid var(--border);border-radius:12px;padding:.8rem;margin:.5rem 0}
.footer{background:#0b1220;color:#cbd5e1;margin-top:1rem}
.footer__inner{display:flex;flex-direction:column;gap:.6rem;align-items:center;padding:1.1rem 0;border-bottom:1px solid #ffffff22}
.footer__links a{color:#e2e8f0;text-decoration:none;margin:0 .35rem}
.footer__copy{text-align:center;color:#9aa8bf;padding:1rem 0}
/* Sticky CTA mobile */
.sticky-cta{position:fixed;left:0;right:0;bottom:0;background:#fffffff2;border-top:1px solid var(--border);padding:.6rem 1rem;display:block}
.sticky-btn{display:block;text-align:center;background:var(--line);color:#fff;font-weight:800;padding:1rem;border-radius:14px;box-shadow:0 10px 26px rgba(6,199,85,.35);min-height:44px}
/* Pages */
.page{padding:2rem 0}
.confirm__box{margin:10vh auto;padding:1.2rem;border:1px solid var(--border);border-radius:14px;background:#fff;box-shadow:var(--shadow)}
.confirm__cta{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:.8rem}
.small.note{color:#64748b;font-size:.85rem;margin-top:.6rem}
/* Desktop */
@media(min-width:900px){
  .nav{display:flex}
  .nav-toggle{display:none}
  .hero__grid{grid-template-columns:1.05fr .95fr;align-items:center}
  .grid--3{grid-template-columns:repeat(3,1fr)}
  .sticky-cta{display:none}
}
