
:root{--bg:#f4f6f5;--paper:#ffffff;--ink:#14181a;--ink2:#41494a;--mut:#7c8480;--line:#e1e6e4;--teal:#0e9c91;--teal-d:#0a786f;--amber:#ef9f00;--maxw:1120px}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;color:var(--ink);background:var(--bg);font-family:"Noto Sans JP",system-ui,sans-serif;font-size:16px;line-height:1.85}
a{color:inherit;text-decoration:none}
.ww{max-width:var(--maxw);margin:0 auto;padding:0 26px}.narrow{max-width:780px}.tc{text-align:center}
.lg-n,.hero-h,.ph h1,.sk-ja,.sk-en,.eb,.ph-en,.ccard-en,.scard-n{font-family:"Plus Jakarta Sans",sans-serif}

/* header */
.hd{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.95);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.hd-in{max-width:var(--maxw);margin:0 auto;padding:0 26px;height:66px;display:flex;align-items:center;gap:20px}
.lg{display:flex;flex-direction:column;line-height:1.08}
.lg-n{font-size:21px;font-weight:800;color:var(--ink);letter-spacing:-.01em}
.lg-s{font-size:8.5px;letter-spacing:.1em;color:var(--teal-d);font-weight:700}
.nav{display:flex;gap:18px;margin-left:auto;font-size:13.5px;font-weight:500}
.nav a{padding:6px 2px;border-bottom:2px solid transparent;color:var(--ink2)}
.nav a:hover{color:var(--teal-d);border-color:var(--teal)}
.hd-cta{background:var(--teal);color:#fff;font-size:13px;font-weight:700;padding:10px 18px;border-radius:6px;white-space:nowrap}
.hd-cta:hover{background:var(--teal-d)}
.bg{display:none;flex-direction:column;gap:5px;width:42px;height:42px;align-items:center;justify-content:center;cursor:pointer;border:1px solid var(--line);border-radius:6px}
.bg span{display:block;width:20px;height:2px;background:var(--ink);transition:.25s}

/* crumb */
.cr{border-bottom:1px solid var(--line);font-size:12px;color:var(--mut)}.cr .ww{padding:11px 26px}.cr a:hover{color:var(--teal-d)}

/* section kicker */
.sk{margin-bottom:26px}
.sk-en{font-family:"Plus Jakarta Sans";font-weight:700;letter-spacing:.12em;font-size:12px;color:var(--teal-d);display:block;margin-bottom:4px}
.sk-ja{font-size:clamp(24px,3.4vw,34px);font-weight:800;margin:0;letter-spacing:-.01em}
.eb{font-family:"Plus Jakarta Sans";font-weight:700;letter-spacing:.12em;font-size:12px;color:var(--teal-d);margin:0 0 6px}.eb.tl{color:#7fe6db}
.dh{font-family:"Plus Jakarta Sans";font-size:clamp(24px,3.4vw,34px);font-weight:800;margin:0 0 22px}.dh.light{color:#fff}

/* tag chip */
.tag{display:inline-block;background:var(--teal);color:#fff;font-family:"Plus Jakarta Sans";font-weight:700;font-size:11px;letter-spacing:.14em;padding:6px 14px;border-radius:999px;margin-bottom:22px}

/* hero */
.hero{padding:78px 0 66px;border-bottom:1px solid var(--line);background:radial-gradient(110% 80% at 50% 0,#eef6f5,var(--bg))}
.hero-h{font-size:clamp(36px,6vw,72px);font-weight:800;line-height:1.05;letter-spacing:-.02em;margin:0 0 22px}
.hero-h .tl{color:var(--teal)}
.hero-l{max-width:640px;margin:0 auto 28px;color:var(--ink2)}
.hero-b{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-bottom:26px}
.hero-p{display:flex;flex-wrap:wrap;gap:8px 22px;justify-content:center;list-style:none;padding:0;margin:0;font-size:13px;color:var(--ink2)}
.hero-p li{position:relative;padding-left:20px}
.hero-p li::before{content:"✓";position:absolute;left:0;color:var(--teal);font-weight:800}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 30px;font-weight:700;font-size:14px;border-radius:6px;border:2px solid transparent;transition:.16s}
.btn-t{background:var(--teal);border-color:var(--teal);color:#fff}.btn-t:hover{background:var(--teal-d);border-color:var(--teal-d)}
.btn-o{background:transparent;color:var(--ink);border-color:var(--ink)}.btn-o:hover{background:var(--ink);color:#fff}
.btn-to{background:transparent;color:#fff;border-color:rgba(255,255,255,.6)}.btn-to:hover{background:#fff;color:var(--ink)}

/* bands */
.band{padding:62px 0}.band.paper{background:var(--paper)}.band.ink{background:var(--ink);color:#c4cbc9}
.band-l{max-width:680px;margin:0 0 24px;color:var(--ink2)}.tc .band-l,.band.ink .band-l{margin-left:auto;margin-right:auto}
.band.ink .band-l,.band-l.light{color:#9aa3a1}
.more{margin-top:22px}.more a{color:var(--teal-d);font-weight:700}.more a:hover{text-decoration:underline}
.muted{color:var(--mut)}.small{font-size:12px}.rl{font-size:13px;color:var(--mut);font-weight:700;margin:0 0 9px}.muted a{color:var(--teal-d)}

/* enhancement: fee / anshin / jisseki / voices */
.fee5{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-top:8px}
.fee{background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:18px 12px;display:flex;flex-direction:column;gap:7px}
.fee b{font-size:12.5px;color:var(--ink2);font-weight:700}
.fee span{font-weight:800;font-size:22px;color:var(--teal-d)}
.band.paper .fee{background:#fff}
.anshin{width:100%;border-collapse:collapse;text-align:left;margin-top:6px}
.anshin th,.anshin td{padding:13px 16px;border-bottom:1px solid var(--line);font-size:14px;vertical-align:top}
.anshin th{width:40%;color:var(--ink);font-weight:700;background:var(--bg)}
.anshin td{color:var(--ink2)}
.jgrp{margin-top:20px}
.jgh{font-size:14px;letter-spacing:.02em;color:var(--teal-d);font-weight:800;margin:0 0 11px;border-bottom:2px solid var(--line);padding-bottom:8px}
.jgh a:hover{color:var(--teal)}
.jbs{display:flex;flex-wrap:wrap;gap:9px}
.jb{padding:9px 16px;background:var(--bg);border:1px solid var(--line);border-radius:999px;font-size:13.5px;color:var(--ink);font-weight:700;transition:.16s}
.jb:hover{border-color:var(--teal);color:var(--teal-d);transform:translateY(-2px)}
.voices{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:8px}
.vcard{background:var(--bg);border:1px dashed var(--line);border-radius:10px;padding:26px 20px;text-align:center}
.vq{font-weight:800;font-size:18px;color:var(--mut);margin:0 0 10px}
.vn{font-size:12px;color:var(--mut);margin:0}

/* category cards */
.cgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.ccard{display:flex;flex-direction:column;gap:6px;padding:28px 24px;background:var(--paper);border:1px solid var(--line);border-top:4px solid var(--tone,var(--teal));border-radius:8px;transition:.16s}
.ccard:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(20,24,26,.07)}
.ccard-en{font-size:11px;letter-spacing:.12em;color:var(--tone,var(--teal-d));font-weight:700}
.ccard-ja{font-size:19px;font-weight:800}.ccard-l{font-size:12.5px;color:var(--mut)}
.ccard-go{margin-top:6px;font-weight:700;color:var(--tone,var(--teal-d));font-size:13px}

/* sub cards */
.sgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.scard{display:flex;justify-content:space-between;align-items:center;padding:18px 20px;background:var(--paper);border:1px solid var(--line);border-radius:6px;transition:.16s}
.scard:hover{border-color:var(--teal);background:#fff}
.scard-n{font-weight:700;font-size:14px}.scard-g{color:var(--teal-d);font-weight:700}
.mgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:6px}
.mcard{display:flex;flex-direction:column;gap:7px;padding:18px 20px;background:var(--paper);border:1px solid var(--line);border-radius:10px;transition:.16s}
.mcard:hover{border-color:var(--teal);background:#fff;transform:translateY(-2px)}
.mcard-n{font-weight:800;font-size:15.5px;color:var(--ink)}
.mcard-d{font-size:12.5px;line-height:1.6;color:var(--mut)}

/* g3 boxes / why */
.g3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.gbox{border:1px solid var(--line);background:var(--paper);border-radius:8px;padding:26px}
.gn{font-family:"Plus Jakarta Sans";font-weight:800;font-size:24px;color:var(--teal);display:block;line-height:1}
.gbox b{display:block;font-size:17px;margin:10px 0 7px;font-family:"Plus Jakarta Sans"}.gbox p{margin:0;font-size:13.5px;color:var(--ink2)}
.why{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.why div{border:1px solid #2b3133;border-radius:8px;padding:26px}
.why b{display:block;color:#fff;font-size:17px;margin-bottom:9px;font-family:"Plus Jakarta Sans"}.why p{margin:0;color:#9aa3a1;font-size:13.5px}

/* steps */
.steps2{list-style:none;counter-reset:s;padding:0;margin:0}
.steps2 li{position:relative;padding:0 0 26px 56px;border-left:2px solid var(--line);margin-left:18px}
.steps2 li:last-child{border-color:transparent}
.steps2 li::before{counter-increment:s;content:"0" counter(s);position:absolute;left:-18px;top:-4px;width:36px;height:36px;border-radius:8px;background:var(--teal);color:#fff;display:flex;align-items:center;justify-content:center;font-family:"Plus Jakarta Sans";font-weight:800;font-size:13px}
.steps2 b{display:block;font-size:16px;margin-bottom:4px;font-family:"Plus Jakarta Sans"}.steps2 p{margin:0;color:var(--ink2);font-size:14px}

/* note box */
.notebox{display:flex;gap:14px;align-items:flex-start;background:#fff6e6;border:1px solid #f0d9a6;border-radius:8px;padding:18px 22px}
.notebox-m{flex:none;width:26px;height:26px;background:var(--amber);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;border-radius:50%}
.notebox p{margin:0;font-size:13.5px;color:var(--ink2)}

/* page header */
.ph{background:var(--paper);border-bottom:1px solid var(--line);padding:54px 0}
.ph.cph{border-top:4px solid var(--tone)}
.ph-en{font-family:"Plus Jakarta Sans";font-weight:700;letter-spacing:.1em;font-size:12px;color:var(--teal-d);margin:0 0 10px}
.ph h1{font-size:clamp(26px,4.2vw,44px);font-weight:800;margin:0 0 14px;letter-spacing:-.01em}
.ph-l{color:var(--ink2);margin:0;max-width:720px}
.ph-reason{margin:14px 0 0;font-size:13.5px;color:var(--teal-d);background:#eef6f5;border-left:3px solid var(--teal);padding:10px 16px;max-width:720px}

/* checks/tips/tags/faq */
.checks,.tips{list-style:none;padding:0;margin:0}
.checks li{position:relative;padding:10px 0 10px 24px;border-bottom:1px solid var(--line);font-size:14.5px}
.checks li::before{content:"✓";position:absolute;left:0;color:var(--teal);font-weight:800}
.tips li{padding:14px 0;border-bottom:1px solid var(--line);font-size:14.5px;color:var(--ink2)}.tips b{color:var(--ink)}
.tags{display:flex;flex-wrap:wrap;gap:8px}.tags a{border:1px solid var(--line);border-radius:6px;padding:8px 15px;font-size:13px;transition:.16s;background:var(--paper)}.tags a:hover{border-color:var(--teal);color:var(--teal-d)}
.faq{margin:0}.qa{border-bottom:1px solid var(--line);padding:16px 0}
.qa dt{font-weight:700;position:relative;padding-left:26px}.qa dt::before{content:"Q";position:absolute;left:0;color:var(--teal-d);font-family:"Plus Jakarta Sans";font-weight:800}
.qa dd{margin:8px 0 0 26px;color:var(--ink2);font-size:14.5px}
.gb{padding:22px 0;border-bottom:1px solid var(--line)}.gb h3{font-family:"Plus Jakarta Sans";font-size:18px;margin:0 0 8px}.gb p{margin:0 0 10px;color:var(--ink2)}.gb p:last-child{margin-bottom:0}
.gb .artdl{margin:14px 0 4px}.artdl-row{display:grid;grid-template-columns:170px 1fr;gap:14px;padding:11px 0;border-top:1px solid var(--line)}
.artdl-row dt{font-family:"Plus Jakarta Sans";font-weight:700;font-size:14.5px;color:var(--teal-d)}.artdl-row dd{margin:0;color:var(--ink2);font-size:14px;line-height:1.85}
.gb .art-list{margin:12px 0 4px;padding-left:0;list-style:none}.art-list li{position:relative;padding:9px 0 9px 22px;border-bottom:1px solid var(--line);font-size:14.5px;color:var(--ink2)}.art-list li::before{content:"▸";position:absolute;left:2px;color:var(--teal);font-weight:700;top:9px}
.art-toc{border:1px solid var(--line);background:var(--paper);padding:20px 24px;margin:0 0 8px}
.art-toc-t{font-family:"Plus Jakarta Sans";font-weight:700;letter-spacing:.1em;font-size:12px;color:var(--teal-d);margin:0 0 10px;text-transform:uppercase}
.art-toc ol{margin:0;padding-left:1.3em;font-size:14.5px;line-height:1.95;color:var(--ink2)}.art-toc a{color:var(--ink2)}.art-toc a:hover{color:var(--teal-d);text-decoration:underline}
.art-lead{font-size:15.5px;line-height:1.95;margin:0 0 22px;color:var(--ink2)}
@media(max-width:600px){.artdl-row{grid-template-columns:1fr;gap:3px}}
.ctab{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}

/* form/table */
.frm{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px;background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:30px}
.frm label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:700}.frm .full{grid-column:1/-1}
.frm input,.frm textarea{font:inherit;font-weight:400;padding:11px 13px;border:1px solid var(--line);border-radius:6px}
.frm input:focus,.frm textarea:focus{outline:none;border-color:var(--teal)}
.frm .btn{grid-column:1/-1;justify-self:center}.frm .fn{grid-column:1/-1;margin:0;font-size:11px;color:var(--mut)}
.ctbl{width:100%;border-collapse:collapse}.ctbl th,.ctbl td{text-align:left;padding:14px 16px;border-bottom:1px solid var(--line);font-size:14.5px}
.ctbl th{width:34%;background:var(--paper);font-weight:700;white-space:nowrap}
.pv h3{font-family:"Plus Jakarta Sans";font-size:16px;margin:22px 0 6px}.pv p{margin:0;color:var(--ink2)}

/* footer */
.ft{background:var(--ink);color:#9aa3a1;border-top:3px solid var(--teal)}
.ft-in{display:grid;grid-template-columns:1.8fr 1fr 1fr 1fr;gap:30px;padding:52px 26px 34px}
.ft-b .lg-n{font-family:"Plus Jakarta Sans";font-size:22px;color:#fff;display:block}.ft-b .lg-s{font-size:8.5px;letter-spacing:.1em;color:var(--teal);display:block;margin-bottom:14px}
.ft-b p{font-size:13px;margin:0 0 12px}.ft-b .mini{font-size:11.5px;color:#79817f}
.ft-c h3{font-family:"Plus Jakarta Sans";font-weight:700;font-size:12px;letter-spacing:.08em;color:#fff;margin:0 0 14px}
.ft-c a{display:block;font-size:13px;padding:5px 0;color:#919997}.ft-c a:hover{color:var(--teal)}
.cc{border-top:1px solid #2b3133;font-size:12px;color:#6f7775}.cc .ww{padding:16px 26px}

@media(max-width:960px){
  .nav{display:none}.bg{display:flex}
  #nv:checked ~ header .bg span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  #nv:checked ~ header .bg span:nth-child(2){opacity:0}
  #nv:checked ~ header .bg span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  #nv:checked ~ header .nav{display:flex;position:fixed;top:66px;left:0;right:0;bottom:0;background:var(--bg);flex-direction:column;gap:0;padding:14px 26px;z-index:55;overflow:auto}
  #nv:checked ~ header .nav a{padding:16px 0;border-bottom:1px solid var(--line);font-size:16px}
  .cgrid,.sgrid,.mgrid,.g3,.why{grid-template-columns:1fr 1fr}.sgrid{grid-template-columns:1fr 1fr}
  .fee5{grid-template-columns:1fr 1fr 1fr}.voices{grid-template-columns:1fr}
  .ft-in{grid-template-columns:1fr 1fr}.frm{grid-template-columns:1fr}
}
@media(max-width:600px){
  .hd-cta{display:none}.hd-in{height:60px}
  .cgrid,.sgrid,.mgrid,.g3,.why{grid-template-columns:1fr}
  .fee5{grid-template-columns:1fr 1fr}.anshin th{width:48%}
  .band{padding:46px 0}.hero{padding:50px 0 46px}.ft-in{grid-template-columns:1fr}
}
