:root{
  --lav:#8E6FC4; --lav-d:#6E52A0; --lav-l:#F1ECFA; --lav-bg:#FAF8FD;
  --pink:#E58BA4; --pink-l:#FBEEF3; --text:#3a3346; --muted:#7a7186;
  --line:#E7DEF3; --bg:#FEFEFE;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:"Noto Sans JP",sans-serif;color:var(--text);background:var(--bg);line-height:1.9;-webkit-font-smoothing:antialiased}
h1,h2,h3,.logo{font-family:"Zen Maru Gothic",sans-serif}
.wrap{max-width:720px;margin:0 auto;padding:0 20px}
a{color:var(--lav-d)}
img{max-width:100%}

header{position:sticky;top:0;background:rgba(254,254,254,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);z-index:10}
.hbar{max-width:720px;margin:0 auto;padding:12px 20px;display:flex;align-items:center;justify-content:space-between}
.logo{font-family:"Quicksand",sans-serif;font-weight:700;font-size:26px;color:var(--lav);letter-spacing:.5px;text-decoration:none}
.logo small{font-family:"Zen Maru Gothic";font-size:11px;color:var(--muted);letter-spacing:3px;display:block;margin-top:-4px}
.hnav a{font-size:13px;color:var(--text);text-decoration:none;margin-left:16px;font-weight:500}
.hnav a:hover{color:var(--lav-d)}

.hero{padding:60px 20px 52px;text-align:center;background:linear-gradient(160deg,var(--lav-l),var(--pink-l))}
.hero.women{background:linear-gradient(160deg,var(--pink-l),#FBF3F6)}
.hero.men{background:linear-gradient(160deg,var(--lav-l),#EFEAF8)}
.hero h1{font-size:28px;font-weight:700;line-height:1.6;color:var(--lav-d)}
.hero.women h1{color:#B85C7E}
.hero p{margin-top:16px;font-size:15.5px;color:var(--text)}
.hero .note{margin-top:14px;font-size:12.5px;color:var(--muted)}

.cta-btn{display:inline-block;margin-top:26px;background:var(--lav);color:#fff;text-decoration:none;font-family:"Zen Maru Gothic";font-weight:700;font-size:16px;padding:15px 36px;border-radius:14px;box-shadow:0 8px 20px rgba(142,111,196,.25)}
.cta-btn.pink{background:var(--pink);box-shadow:0 8px 20px rgba(229,139,164,.28)}

.gates{display:flex;gap:16px;margin-top:30px;flex-wrap:wrap;justify-content:center}
.gate{flex:1;min-width:150px;text-decoration:none;border-radius:18px;padding:26px 20px;color:#fff;text-align:center}
.gate.w{background:linear-gradient(150deg,#EC9AB1,#E07fa0)}
.gate.m{background:linear-gradient(150deg,#9C7FCF,#7E62B0)}
.gate .t{font-family:"Zen Maru Gothic";font-weight:700;font-size:20px;display:block}
.gate .s{font-size:12.5px;opacity:.95;display:block;margin-top:4px}

section{padding:50px 0}
section:nth-of-type(even){background:var(--lav-bg)}
.lead{text-align:center;font-family:"Quicksand";font-weight:700;letter-spacing:.2em;color:var(--pink);font-size:13px;margin-bottom:6px}
h2{text-align:center;font-size:22px;color:var(--lav-d);margin-bottom:30px;font-weight:700}

.grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:560px){.grid{grid-template-columns:1fr}}
.badge{background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px}
.badge .bt{font-family:"Zen Maru Gothic";font-weight:700;font-size:15.5px;color:var(--lav-d);margin-bottom:6px;display:flex;align-items:center;gap:8px}
.badge .bt::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--pink);flex:none}
.badge p{font-size:13.5px;color:var(--muted)}

.cards{display:flex;flex-direction:column;gap:16px}
.card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px 24px}
.card h3{font-size:17px;color:var(--lav-d);margin-bottom:8px}
.card p{font-size:14.5px;color:var(--muted)}

.steps{counter-reset:s;display:flex;flex-direction:column}
.step{position:relative;padding:0 0 24px 56px}
.step:before{counter-increment:s;content:counter(s);position:absolute;left:0;top:0;width:36px;height:36px;border-radius:50%;background:var(--lav);color:#fff;font-family:"Zen Maru Gothic";font-weight:700;display:flex;align-items:center;justify-content:center}
.step:after{content:"";position:absolute;left:17px;top:36px;bottom:4px;width:2px;background:var(--line)}
.step:last-child:after{display:none}
.step h3{font-size:16px;color:var(--lav-d);margin-bottom:2px}
.step p{font-size:14px;color:var(--muted)}

.faq{border-bottom:1px solid var(--line);padding:18px 0}
.faq h3{font-size:15.5px;color:var(--text);margin-bottom:6px}
.faq h3:before{content:"Q ";color:var(--lav);font-family:"Quicksand";font-weight:700}
.faq p{font-size:14px;color:var(--muted)}

.info{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden;font-size:13.5px}
.info th,.info td{text-align:left;padding:13px 16px;border-bottom:1px solid var(--line);vertical-align:top}
.info th{background:var(--lav-l);color:var(--lav-d);width:38%;font-weight:700}
.info tr:last-child th,.info tr:last-child td{border-bottom:none}

.legal{font-size:12.5px;color:var(--muted)}
.legal h3{font-size:14px;color:var(--text);margin:16px 0 6px}

.band{background:linear-gradient(160deg,var(--lav),#A98BD6);color:#fff;text-align:center;padding:46px 20px}
.band.pink{background:linear-gradient(160deg,var(--pink),#E7A0B8)}
.band h2{color:#fff;margin-bottom:10px}
.band p{font-size:14px;opacity:.95;margin-bottom:22px}
.band a{display:inline-block;background:#fff;color:var(--lav-d);text-decoration:none;font-family:"Zen Maru Gothic";font-weight:700;font-size:16px;padding:15px 36px;border-radius:14px}
.band.pink a{color:#B85C7E}

footer{background:#2c2438;color:#c9bfda;text-align:center;padding:30px 20px;font-size:12px}
footer .logo{color:#fff;font-size:22px;display:inline-block}
footer .links{margin:14px 0}
footer .links a{margin:0 10px;text-decoration:none;color:#c9bfda}
