
:root{--cream:#f3efe4;--paper:#fbf9f2;--ink:#1c1a15;--ink2:#3c382f;--mut:#8a8473;--line:#e3dcc9;--blue:#2746cf;--blue-d:#1c34a3;--sand:#d9c9a8;--maxw:1120px}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;color:var(--ink);background:var(--cream);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 24px}.narrow{max-width:780px}.tc{text-align:center}
.lg-n,.hero-h,.ph h1,.sk-en,.sk-ja,.eb,.ph-en,.itile-en,.brow-en,.bdir-en{font-family:"Space Grotesk",sans-serif}

/* header */
.hd{position:sticky;top:0;z-index:60;background:rgba(243,239,228,.94);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.hd-in{max-width:var(--maxw);margin:0 auto;padding:0 24px;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:700;color:var(--ink);letter-spacing:-.01em}
.lg-s{font-size:9px;letter-spacing:.14em;color:var(--blue);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(--blue);border-color:var(--blue)}
.hd-cta{background:var(--blue);color:#fff;font-size:13px;font-weight:700;padding:10px 18px;white-space:nowrap}
.hd-cta:hover{background:var(--blue-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)}
.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 24px}.cr a:hover{color:var(--blue)}

/* section kicker */
.sk{margin-bottom:24px}
.sk-en{font-family:"Space Grotesk";font-weight:700;letter-spacing:.1em;font-size:12px;color:var(--blue);display:block;margin-bottom:4px}
.sk-ja{font-size:clamp(24px,3.4vw,34px);font-weight:700;margin:0;letter-spacing:-.01em}
.eb{font-family:"Space Grotesk";font-weight:700;letter-spacing:.12em;font-size:12px;color:var(--blue);margin:0 0 6px}.eb.blue{color:#9db0ff}
.dh{font-size:clamp(24px,3.4vw,34px);font-weight:700;margin:0 0 22px}.dh.light{color:#fff}

/* hero */
.hero{padding:74px 0 64px;border-bottom:1px solid var(--line)}
.hero-grid{display:grid;grid-template-columns:1.4fr .8fr;gap:40px;align-items:center}
.hero-k{font-family:"Space Grotesk";font-weight:600;letter-spacing:.06em;font-size:12px;color:var(--blue);margin:0 0 20px}
.hero-h{font-size:clamp(40px,6.4vw,76px);font-weight:700;line-height:1.02;letter-spacing:-.02em;margin:0 0 22px}
.hero-h .bl{color:var(--blue)}
.hero-l{color:var(--ink2);margin:0 0 26px;max-width:560px}
.hero-b{display:flex;gap:12px;flex-wrap:wrap}
.hero-p{list-style:none;padding:22px;margin:0;background:var(--ink);color:#d6d2c7;border-radius:2px}
.hero-p li{position:relative;padding:9px 0 9px 18px;border-bottom:1px solid #34312a;font-size:13.5px}
.hero-p li:last-child{border-bottom:none}
.hero-p li::before{content:"";position:absolute;left:0;top:1.1em;width:8px;height:8px;background:var(--blue)}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 28px;font-weight:700;font-size:14px;border:2px solid var(--ink);transition:.16s}
.btn-b{background:var(--blue);border-color:var(--blue);color:#fff}.btn-b:hover{background:var(--blue-d);border-color:var(--blue-d)}
.btn-o{background:transparent;color:var(--ink)}.btn-o:hover{background:var(--ink);color:#fff}
.btn-bo{background:transparent;color:#fff;border-color:#fff}.btn-bo:hover{background:#fff;color:var(--ink)}

/* bands */
.band{padding:62px 0}.band.paper{background:var(--paper)}.band.ink{background:var(--ink);color:#d6d2c7}
.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:#aaa595}
.more{margin-top:22px}.more a{color:var(--blue);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}

/* enhancement: fee / anshin / jisseki / voices */
.fee5{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-top:8px}
.fee{background:var(--paper);border:1px solid var(--line);padding:18px 12px;display:flex;flex-direction:column;gap:7px}
.fee b{font-family:"Space Grotesk";font-size:12.5px;color:var(--ink2);font-weight:700}
.fee span{font-family:"Space Grotesk";font-size:22px;font-weight:700;color:var(--blue)}
.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(--paper)}
.anshin td{color:var(--ink2)}
.jgrp{margin-top:20px}
.jgh{font-family:"Space Grotesk";font-size:13px;letter-spacing:.08em;color:var(--blue);text-transform:uppercase;margin:0 0 11px;border-bottom:1px solid var(--line);padding-bottom:8px}
.jbs{display:flex;flex-wrap:wrap;gap:9px}
.jb{padding:9px 16px;background:var(--paper);border:1px solid var(--line);font-size:13.5px;color:var(--ink);font-weight:700;transition:.16s}
.jb:hover{border-color:var(--blue);color:var(--blue);transform:translateY(-2px)}
.voices{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:8px}
.vcard{background:var(--paper);border:1px dashed var(--line);padding:26px 20px;text-align:center}
.vq{font-family:"Space Grotesk";font-size:18px;color:var(--mut);margin:0 0 10px}
.vn{font-size:12px;color:var(--mut);margin:0}

/* item tiles */
.igrid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}
.itile{display:flex;flex-direction:column;gap:6px;padding:24px 20px;background:var(--paper);border:1px solid var(--line);transition:.16s;min-height:120px}
.itile:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.itile-n{font-family:"Space Grotesk";font-weight:700;font-size:13px;color:var(--blue)}.itile:hover .itile-n{color:#9db0ff}
.itile-en{font-family:"Space Grotesk";font-size:11px;letter-spacing:.08em;color:var(--mut)}.itile:hover .itile-en{color:#aaa595}
.itile-ja{margin-top:auto;font-size:16px;font-weight:700}

/* brand directory */
.bdirs{display:flex;flex-wrap:wrap;gap:10px}
.bdir{display:flex;flex-direction:column;gap:2px;padding:13px 18px;background:var(--paper);border:1px solid var(--line);transition:.16s;min-width:140px}
.bdir:hover{border-color:var(--blue);transform:translateY(-2px)}
.bdir-en{font-family:"Space Grotesk";font-size:11px;letter-spacing:.05em;color:var(--blue)}
.bdir-ja{font-size:14px;font-weight:700}

/* brand rows (brand index) */
.brows{display:flex;flex-direction:column;border-top:1px solid var(--line)}
.brow{display:flex;align-items:center;gap:16px;padding:16px 6px;border-bottom:1px solid var(--line);transition:.12s}
.brow:hover{background:var(--paper)}
.brow-en{font-family:"Space Grotesk";font-size:16px;color:var(--blue);min-width:200px}
.brow-ja{font-weight:700;font-size:15px}
.brow-tag{margin-left:auto;font-size:11px;color:var(--mut);border:1px solid var(--line);padding:3px 10px}
.brow-g{color:var(--blue);font-weight:700}

/* combo cards */
.cgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.ccard{display:flex;justify-content:space-between;align-items:center;padding:17px 20px;background:var(--paper);border:1px solid var(--line);transition:.16s}
.ccard:hover{border-color:var(--blue);background:#fff}
.ccard-n{font-weight:700;font-size:14px}.ccard-g{color:var(--blue);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);transition:.16s}
.mcard:hover{border-color:var(--blue);background:#fff;transform:translateY(-2px)}
.mcard-n{font-family:"Space Grotesk";font-weight:700;font-size:15.5px;color:var(--ink)}
.mcard-d{font-size:12.5px;line-height:1.6;color:var(--mut)}

/* why/steps/methods */
.why{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.why div{border:1px solid #36332b;padding:26px}
.why b{display:block;color:#fff;font-size:17px;margin-bottom:9px}.why p{margin:0;color:#aaa595;font-size:13.5px}
.steps{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.steps li{border:1px solid var(--line);padding:24px;font-size:13.5px;color:var(--ink2)}
.steps span{font-family:"Space Grotesk";font-weight:700;font-size:28px;color:var(--blue);display:block;line-height:1}
.steps b{display:block;margin:8px 0 6px;font-size:16px;color:var(--ink)}
.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;background:var(--blue);color:#fff;display:flex;align-items:center;justify-content:center;font-family:"Space Grotesk";font-weight:700;font-size:13px}
.steps2 b{display:block;font-size:16px;margin-bottom:4px}.steps2 p{margin:0;color:var(--ink2);font-size:14px}
.m3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.mb{border:1px solid var(--line);background:var(--paper);padding:26px;text-align:center}
.mb span{font-family:"Space Grotesk";font-weight:700;font-size:11px;letter-spacing:.1em;color:var(--blue)}
.mb h3{margin:6px 0 9px;font-size:18px}.mb 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.iph{border-top:4px solid var(--blue)}.ph.bph{border-top:4px solid var(--ink)}
.ph-en{font-family:"Space Grotesk";font-weight:700;letter-spacing:.1em;font-size:12px;color:var(--blue);margin:0 0 10px}
.ph h1{font-size:clamp(26px,4.2vw,44px);font-weight:700;margin:0 0 14px;letter-spacing:-.01em}
.ph-l{color:var(--ink2);margin:0;max-width:720px}
.ph-tags{margin-top:14px}.ph-tags span{border:1px solid var(--line);padding:4px 12px;font-size:12px;color:var(--mut)}

/* 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;top:16px;width:9px;height:9px;background:var(--blue)}
.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);padding:8px 15px;font-size:13px;transition:.16s;background:var(--paper)}.tags a:hover{border-color:var(--blue);color:var(--blue)}
.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(--blue);font-family:"Space Grotesk";font-weight:700}
.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-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:"Space Grotesk",sans-serif;font-weight:700;font-size:14.5px;color:var(--blue-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(--blue);font-size:10px;top:11px}
.art-toc{border:1px solid var(--line);background:var(--paper);padding:20px 24px;margin:0 0 8px}
.art-toc-t{font-family:"Space Grotesk",sans-serif;font-weight:700;letter-spacing:.1em;font-size:12px;color:var(--blue);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(--blue);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}

/* brand finder */
.bf{display:flex;flex-direction:column;gap:13px;margin-bottom:16px}
.bsi{width:100%;font:inherit;padding:14px 16px;border:2px solid var(--ink)}.bsi:focus{outline:none;border-color:var(--blue)}
.bf-row{display:flex;flex-wrap:wrap;gap:7px}
.fc{font:inherit;font-size:13px;font-weight:600;padding:7px 14px;border:1px solid var(--line);background:var(--paper);cursor:pointer;transition:.15s}
.fc:hover{border-color:var(--blue)}.fc.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.bcount{font-size:12.5px;color:var(--mut);margin:0 0 12px;font-weight:700}.bnone{color:var(--mut);padding:24px 0}

/* form/table */
.frm{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px;background:var(--paper);border:1px solid var(--line);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)}
.frm input:focus,.frm textarea:focus{outline:none;border-color:var(--blue)}
.frm .btn{grid-column:1/-1;justify-self:start}.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-size:16px;margin:22px 0 6px}.pv p{margin:0;color:var(--ink2)}

/* footer */
.ft{background:var(--ink);color:#aaa595;border-top:3px solid var(--blue)}
.ft-in{display:grid;grid-template-columns:1.8fr 1fr 1fr 1.2fr;gap:30px;padding:52px 24px 34px}
.ft-b .lg-n{font-size:22px;color:#fff;display:block}.ft-b .lg-s{font-size:9px;letter-spacing:.12em;color:var(--blue);display:block;margin-bottom:14px}
.ft-b p{font-size:13px;margin:0 0 12px}.ft-b .mini{font-size:11.5px;color:#807a6b}
.ft-c h3{font-family:"Space Grotesk";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:#9f9a8b}.ft-c a:hover{color:var(--blue)}
.ft-tags{display:flex;flex-wrap:wrap;gap:6px 12px}.ft-tags a{padding:2px 0;font-size:12px}
.cc{border-top:1px solid #34312a;font-size:12px;color:#7a7567}.cc .ww{padding:16px 24px}

@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(--cream);flex-direction:column;gap:0;padding:14px 24px;z-index:55;overflow:auto}
  #nv:checked ~ header .nav a{padding:16px 0;border-bottom:1px solid var(--line);font-size:16px}
  .hero-grid{grid-template-columns:1fr;gap:26px}
  .igrid{grid-template-columns:1fr 1fr}.cgrid,.mgrid,.why,.steps,.m3{grid-template-columns:1fr 1fr}
  .fee5{grid-template-columns:1fr 1fr 1fr}.voices{grid-template-columns:1fr}
  .brow-en{min-width:auto}.ft-in{grid-template-columns:1fr 1fr}.frm{grid-template-columns:1fr}
}
@media(max-width:600px){
  .hd-cta{display:none}.hd-in{height:60px}
  .igrid,.cgrid,.mgrid,.why,.steps,.m3{grid-template-columns:1fr}
  .fee5{grid-template-columns:1fr 1fr}.anshin th{width:48%}
  .band{padding:44px 0}.hero{padding:48px 0 44px}.ft-in{grid-template-columns:1fr}
  .brow{flex-wrap:wrap;gap:6px 12px}.brow-tag{margin-left:0}
}
