:root { --ink:#15251f; --paper:#f8f5ec; --panel:#fffdf8; --accent:#e77a3b; --muted:#66736d; --line:#d9dfd8; }
* { box-sizing:border-box; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Noto Sans JP",sans-serif; line-height:1.75; }
button { font:inherit; cursor:pointer; }
.shell,.confirmation { max-width:960px; margin:auto; padding:32px 24px 72px; }
.hero { padding:74px 0 62px; text-align:center; }
.eyebrow,.section-label { color:#657a6b; font-size:.76rem; font-weight:700; letter-spacing:.12em; }
h1 { font-size:clamp(2.25rem,7vw,4.6rem); line-height:1.18; letter-spacing:-.04em; margin:14px 0 24px; }
h2 { font-size:clamp(1.45rem,4vw,2.35rem); line-height:1.35; margin:0 0 14px; }
.lead { font-size:1.1rem; color:#3e5048; }
.price { margin:28px 0 18px; }.price span { display:block; color:var(--muted); font-size:.9rem; }.price strong { font-size:2.65rem; }
.primary-button { border:0; border-radius:999px; padding:15px 28px; color:white; background:var(--accent); font-weight:800; box-shadow:0 8px 20px #e77a3b42; }.primary-button:disabled { opacity:.6; cursor:wait; }
.microcopy { color:var(--muted); font-size:.82rem; }
.panel { margin:18px 0; padding:30px; border:1px solid var(--line); border-radius:18px; background:var(--panel); }.target { text-align:center; }.accent { background:#e7efe9; }.split { display:grid; grid-template-columns:repeat(2,1fr); gap:18px; }.split .panel { margin:0; }
ul,ol { padding-left:1.3rem; }.included { padding:46px 0; }.grid { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; }.grid div { background:#e7efe9; border-radius:10px; padding:14px; text-align:center; font-weight:700; }.faq { padding-top:28px; } details { border-bottom:1px solid var(--line); padding:14px 0; } summary { font-weight:700; cursor:pointer; }.confirmation { min-height:100vh; display:grid; align-content:center; text-align:center; }.event-status { min-height:2.5em; color:#365c43; font-weight:700; }.text-button { border:0; background:transparent; color:var(--muted); text-decoration:underline; }
@media (max-width:640px) { .hero { padding-top:36px; }.split { grid-template-columns:1fr; }.grid { grid-template-columns:repeat(2,1fr); }.panel { padding:23px; } }
