
:root{--bg:#ffffff;--surface:#fcfcff;--text:#0a0a0a;--muted:#667085;--line:#eceff6;--accent:#6c4bef;--radius:18px;--shadow:0 10px 40px rgba(16,24,40,.08);--wrap:1120px}
*{box-sizing:border-box}html,body{margin:0;padding:0}
body{font-family:"SF Pro Text","SF Pro Display",-apple-system,BlinkMacSystemFont,Inter,"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic UI","YuGothic",Segoe UI,Roboto,Helvetica,Arial,system-ui,sans-serif;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}
a{color:var(--accent);text-decoration:none}img{max-width:100%;height:auto;display:block}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 24px}
header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.86);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.header-inner{display:flex;align-items:center;gap:14px;padding:14px 0}
.brand{display:flex;align-items:center;gap:10px;font-weight:900}.brand img{width:28px;height:28px}
nav{margin-left:auto;display:flex;gap:20px;align-items:center;flex-wrap:wrap}nav a{color:#111827;opacity:.9}nav a:hover{opacity:1}
.btn{display:inline-flex;gap:8px;align-items:center;padding:12px 18px;border-radius:999px;font-weight:800;border:1px solid #e7ebf3;background:#fff;box-shadow:0 6px 18px rgba(17,24,39,.04)}
.btn-primary{background:var(--accent);color:#fff;border-color:transparent}
.badge{display:inline-block;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:800;background:rgba(108,75,239,.12);color:var(--accent)}
main{padding:24px 0}section{padding:86px 0;scroll-margin-top:96px}
h1{font-size:clamp(36px,5.6vw,64px);line-height:1.1;margin:0 0 18px;font-weight:900}
h2{font-size:clamp(22px,3.2vw,32px);margin:0 0 18px;font-weight:900}p{line-height:1.8}.muted{color:var(--muted)}
.grid{display:grid;gap:24px}.cols-2{grid-template-columns:minmax(0,560px) minmax(0,1fr)}.cols-3{grid-template-columns:repeat(3,1fr)}
.card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px;box-shadow:0 10px 40px rgba(16,24,40,.08)}
.hero-media{width:100%;border-radius:18px;box-shadow:0 10px 40px rgba(16,24,40,.08)}
ul.check{list-style:none;padding:0;margin:0;display:grid;gap:12px}ul.check li:before{content:"✓";color:var(--accent);margin-right:8px}
.note{font-size:13px;color:#98a2b3}footer{border-top:1px solid var(--line);padding:36px 0;color:#98a2b3}
.kv-underline{background:linear-gradient(transparent 68%, #efeaff 0);padding:0 .1em}
.table{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.price{font-size:28px;font-weight:900}
.flow{counter-reset:step}.flow .step{display:flex;gap:16px;align-items:flex-start}
.flow .step:before{counter-increment:step;content:counter(step);flex:0 0 28px;height:28px;display:grid;place-items:center;border-radius:999px;background:#f2f4ff;color:var(--accent);font-weight:900}
.calendar{display:grid;gap:16px}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}
.cal-grid .day{padding:10px;border:1px solid var(--line);border-radius:10px;text-align:center;background:#fff}
.day.weekend{background:#fbf8ff;border-color:#e9e3ff}.day.disabled{opacity:.4;pointer-events:none}.day.active{outline:2px solid var(--accent)}
@media (max-width:980px){.cols-2{grid-template-columns:1fr}.cols-3{grid-template-columns:1fr}.table{grid-template-columns:1fr}}
.reveal{opacity:0;transform:translateY(10px);transition:opacity .5s ease,transform .5s ease}.reveal.in{opacity:1;transform:none}
