:root{--navy:#011A40;--navy2:#0b2a5c;--ink:#1b1f2a;--muted:#5d6472;--line:#e4e7ee;--bg:#f7f8fb;--white:#fff;--accent:#c9a24d}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;font-family:"Noto Sans JP","Noto Sans KR",-apple-system,"Helvetica Neue",Arial,sans-serif;color:var(--ink);background:var(--bg);line-height:1.7}
a{color:var(--navy2)}img{max-width:100%}
html[lang=en] .ja{display:none}html[lang=ja] .en{display:none}
.wrap{max-width:980px;margin:0 auto;padding:0 20px}
header.top{background:var(--navy);color:#fff}
header.top .wrap{display:flex;align-items:center;justify-content:space-between;height:64px}
.brand{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;font-weight:700;letter-spacing:.12em}
.brand img{width:36px;height:36px;border-radius:8px}
nav a{color:#fff;opacity:.85;text-decoration:none;margin-left:18px;font-size:14px}
.lang{border:1px solid rgba(255,255,255,.5);border-radius:999px;padding:4px 10px;font-size:12px;color:#fff;background:transparent;cursor:pointer;margin-left:18px}
.hero{background:var(--navy);color:#fff;padding:56px 0 64px;text-align:center}
.hero img{width:220px;margin-bottom:8px}
.hero h1{font-size:28px;margin:8px 0 10px;font-weight:700}
.hero p{opacity:.9;max-width:640px;margin:0 auto 24px;font-size:16px}
.btn{display:inline-block;background:var(--accent);color:var(--navy);font-weight:700;padding:12px 26px;border-radius:999px;text-decoration:none;border:0;cursor:pointer;font-size:15px}
.btn.ghost{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.6);margin-left:10px}
section{padding:48px 0}section h2{font-size:22px;margin:0 0 18px;color:var(--navy)}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px}
.card{background:var(--white);border:1px solid var(--line);border-radius:14px;padding:22px}
.card h3{margin:0 0 8px;font-size:17px;color:var(--navy)}.card p{margin:0;color:var(--muted);font-size:14.5px}
.price{display:flex;flex-direction:column;align-items:flex-start}
.price .amt{font-size:30px;font-weight:700;color:var(--navy);margin:6px 0}
.price small{color:var(--muted)}.price .btn{margin-top:14px}
.steps{counter-reset:s}.steps .card{position:relative;padding-left:60px}
.steps .card::before{counter-increment:s;content:counter(s);position:absolute;left:20px;top:20px;width:28px;height:28px;border-radius:50%;background:var(--navy);color:#fff;font-weight:700;display:flex;align-items:center;justify-content:center;font-size:14px}
.note{background:#fff8e6;border:1px solid #f1dfa7;border-radius:12px;padding:14px 18px;font-size:14px;color:#5a4a1a}
footer{background:#0d1526;color:#aab3c5;padding:32px 0;font-size:13px}
footer a{color:#dbe2f0;margin-right:14px}footer .wrap{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;align-items:center}
.legal{background:#fff}.legal .wrap{max-width:780px;padding:40px 20px}
.legal h1{color:var(--navy);font-size:24px}.legal h2{font-size:17px;margin-top:28px;color:var(--navy)}
.legal p,.legal li{font-size:15px}.legal table{border-collapse:collapse;width:100%;font-size:14.5px}
.legal td,.legal th{border:1px solid var(--line);padding:8px 10px;text-align:left;vertical-align:top}
.legal th{background:var(--bg);width:34%}
form.book{display:grid;gap:12px;max-width:520px}
form.book input,form.book select,form.book textarea{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:10px;font:inherit;font-size:15px}
.faq details{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 16px;margin-bottom:10px}
.faq summary{cursor:pointer;font-weight:600;color:var(--navy)}
@media(max-width:600px){nav a{margin-left:12px;font-size:13px}.hero h1{font-size:23px}.btn.ghost{margin:10px 0 0}}
