
:root{--stone:#e8e6df;--paper:#f3f1ea;--ink:#1f1d19;--ink2:#46423a;--mut:#857f72;--line:#d6d2c6;--wood:#9a6f44;--wood-d:#7c5733;--maxw:1140px}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;color:var(--ink);background:var(--stone);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}
.lg-n,.hero-h,.ph h1,.sk-ja,.sk-en,.sk-n,.eb,.ph-en,.ttile-en,.brow-en,.bdir-en{font-family:"Sora",sans-serif}

/* header */
.hd{position:sticky;top:0;z-index:60;background:rgba(232,230,223,.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:700;color:var(--ink);letter-spacing:-.01em}
.lg-s{font-size:8.5px;letter-spacing:.1em;color:var(--wood-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(--wood-d);border-color:var(--wood)}
.hd-cta{background:var(--wood);color:#fff;font-size:13px;font-weight:700;padding:10px 18px;white-space:nowrap}
.hd-cta:hover{background:var(--wood-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 26px}.cr a:hover{color:var(--wood-d)}

/* section kicker (numbered) */
.sk{display:flex;align-items:baseline;gap:18px;margin-bottom:26px;border-top:2px solid var(--ink);padding-top:14px}
.sk-n{font-family:"Sora";font-weight:700;font-size:14px;color:var(--wood-d);min-width:32px}
.sk-en{font-family:"Sora";font-weight:600;letter-spacing:.1em;font-size:11px;color:var(--mut);display:block}
.sk-ja{font-size:clamp(22px,3.2vw,32px);font-weight:700;margin:0;letter-spacing:-.01em}
.eb{font-family:"Sora";font-weight:700;letter-spacing:.12em;font-size:12px;color:var(--wood-d);margin:0 0 6px}.eb.wood{color:#d8b27e}
.dh{font-family:"Sora";font-size:clamp(24px,3.2vw,34px);font-weight:700;margin:0 0 22px}.dh.light{color:#fff}

/* hero */
.hero{padding:74px 0 64px;border-bottom:2px solid var(--ink)}
.hero-grid{display:grid;grid-template-columns:1.5fr .8fr;gap:40px;align-items:end}
.hero-k{font-family:"Sora";font-weight:600;letter-spacing:.06em;font-size:12px;color:var(--wood-d);margin:0 0 20px}
.hero-h{font-size:clamp(38px,6vw,72px);font-weight:700;line-height:1.04;letter-spacing:-.02em;margin:0 0 22px}
.hero-h .wd{color:var(--wood)}
.hero-l{color:var(--ink2);margin:0 0 26px;max-width:580px}
.hero-b{display:flex;gap:12px;flex-wrap:wrap}
.hero-p{list-style:none;padding:22px;margin:0;background:var(--ink);color:#cfc9bd;border:1px solid var(--ink)}
.hero-p li{position:relative;padding:9px 0 9px 18px;border-bottom:1px solid #38342c;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(--wood)}

/* 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-w{background:var(--wood);border-color:var(--wood);color:#fff}.btn-w:hover{background:var(--wood-d);border-color:var(--wood-d)}
.btn-o{background:transparent;color:var(--ink)}.btn-o:hover{background:var(--ink);color:#fff}
.btn-wo{background:transparent;color:#fff;border-color:#fff}.btn-wo:hover{background:#fff;color:var(--ink)}

/* bands */
.band{padding:62px 0}.band.paper{background:var(--paper)}.band.ink{background:var(--ink);color:#cfc9bd}
.band-l{max-width:680px;margin:0 0 24px;color:var(--ink2)}.band.ink .band-l,.band-l.light{color:#a39d8f}
.band.ink .sk{border-color:#38342c}.band.ink .sk-ja{color:#fff}
.more{margin-top:22px}.more a{color:var(--wood-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(--wood-d)}

/* enhancement: fee / anshin / jisseki / voices */
.fee5{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-top:8px}
.fee{background:var(--stone);border:1px solid var(--line);padding:18px 12px;display:flex;flex-direction:column;gap:7px}
.fee b{font-family:"Sora",sans-serif;font-size:12.5px;color:var(--ink2);font-weight:600}
.fee span{font-family:"Sora",sans-serif;font-size:22px;font-weight:700;color:var(--wood-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:38%;color:var(--ink);font-weight:700;background:var(--paper)}
.anshin td{color:var(--ink2)}
.jgrp{margin-top:20px}
.jgh{font-family:"Sora",sans-serif;font-size:13px;letter-spacing:.04em;color:var(--wood-d);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(--wood);color:var(--wood-d);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:"Sora",sans-serif;font-size:18px;color:var(--mut);margin:0 0 10px}
.vn{font-size:12px;color:var(--mut);margin:0}

/* type tiles */
.tgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.ttile{display:flex;flex-direction:column;gap:6px;padding:24px 20px;background:var(--paper);border:1px solid var(--line);transition:.16s;min-height:140px}
.ttile:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.ttile-n{font-family:"Sora";font-weight:700;font-size:13px;color:var(--wood-d)}.ttile:hover .ttile-n{color:#d8b27e}
.ttile-en{font-family:"Sora";font-size:11px;letter-spacing:.08em;color:var(--mut)}.ttile:hover .ttile-en{color:#a39d8f}
.ttile-ja{font-size:16px;font-weight:700;margin-top:4px}.ttile-d{margin-top:auto;font-size:12px;color:var(--mut)}.ttile:hover .ttile-d{color:#a39d8f}

/* 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:150px}
.bdir:hover{border-color:var(--wood);transform:translateY(-2px)}
.bdir-en{font-family:"Sora";font-size:11px;letter-spacing:.04em;color:var(--wood-d)}
.bdir-ja{font-size:14px;font-weight:700}

/* brand rows */
.brows{display:flex;flex-direction:column;border-top:1px solid var(--line)}
.brow{display:grid;grid-template-columns:200px 1fr auto;gap:6px 16px;align-items:center;padding:16px 6px;border-bottom:1px solid var(--line);transition:.12s}
.brow:hover{background:var(--paper)}
.brow-en{font-family:"Sora";font-size:16px;color:var(--wood-d)}.brow-ja{font-weight:700;font-size:15px}
.brow-c{font-size:12px;color:var(--mut);grid-column:3}
.brow-t{font-size:12px;color:var(--mut);grid-column:1/3;grid-row:2}

/* 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(--wood);background:#fff}
.ccard-n{font-weight:700;font-size:14px}.ccard-g{color:var(--wood-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);transition:.16s}
.mcard:hover{border-color:var(--wood);background:#fff;transform:translateY(-2px)}
.mcard-n{font-family:"Sora",sans-serif;font-weight:700;font-size:15.5px;color:var(--ink)}
.mcard-d{font-size:12.5px;line-height:1.6;color:var(--mut)}

/* pickup boxes / why / steps / methods */
.pk3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.pkbox{border:1px solid var(--line);background:var(--paper);padding:26px}
.pkbox b{display:block;font-family:"Sora";font-size:17px;margin-bottom:9px}.pkbox 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 #38342c;padding:26px}
.why b{display:block;color:#fff;font-size:17px;margin-bottom:9px;font-family:"Sora"}.why p{margin:0;color:#a39d8f;font-size:13.5px}
.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(--wood);color:#fff;display:flex;align-items:center;justify-content:center;font-family:"Sora";font-weight:700;font-size:13px}
.steps2 b{display:block;font-size:16px;margin-bottom:4px;font-family:"Sora"}.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}
.mb span{font-family:"Sora";font-weight:700;font-size:11px;letter-spacing:.1em;color:var(--wood-d)}
.mb h3{font-family:"Sora";margin:6px 0 9px;font-size:18px}.mb p{margin:0;font-size:13.5px;color:var(--ink2)}

/* note box */
.notebox{display:flex;gap:14px;align-items:flex-start;background:#efe9df;border:1px solid #ddd0bb;padding:18px 22px}
.notebox-m{flex:none;width:26px;height:26px;background:var(--wood);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;border-radius:50%}
.notebox p{margin:0;font-size:13.5px;color:var(--ink2)}.notebox b{color:var(--ink)}

/* page header */
.ph{background:var(--paper);border-bottom:2px solid var(--ink);padding:54px 0}
.ph.tph{border-top:4px solid var(--wood)}.ph.bph{border-top:4px solid var(--ink)}
.ph-en{font-family:"Sora";font-weight:700;letter-spacing:.1em;font-size:12px;color:var(--wood-d);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}

/* 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(--wood)}
.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(--wood);color:var(--wood-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(--wood-d);font-family:"Sora";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-family:"Sora";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:180px 1fr;gap:14px;padding:11px 0;border-top:1px solid var(--line)}
.artdl-row dt{font-family:"Sora";font-weight:600;font-size:14.5px;color:var(--wood-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(--wood);font-size:8px;top:13px}
.art-toc{border:1px solid var(--line);background:var(--paper);padding:20px 24px;margin:0 0 8px}
.art-toc-t{font-family:"Sora";font-weight:700;letter-spacing:.1em;font-size:12px;color:var(--wood-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(--wood-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;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(--wood)}
.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(--wood)}.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(--wood)}
.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-family:"Sora";font-size:16px;margin:22px 0 6px}.pv p{margin:0;color:var(--ink2)}

/* footer */
.ft{background:var(--ink);color:#a39d8f;border-top:3px solid var(--wood)}
.ft-in{display:grid;grid-template-columns:1.8fr 1fr 1fr 1.2fr;gap:30px;padding:52px 26px 34px}
.ft-b .lg-n{font-family:"Sora";font-size:22px;color:#fff;display:block}.ft-b .lg-s{font-size:8.5px;letter-spacing:.1em;color:var(--wood);display:block;margin-bottom:14px}
.ft-b p{font-size:13px;margin:0 0 12px}.ft-b .mini{font-size:11.5px;color:#7e786b}
.ft-c h3{font-family:"Sora";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:#979182}.ft-c a:hover{color:var(--wood)}
.ft-tags{display:flex;flex-wrap:wrap;gap:6px 12px}.ft-tags a{padding:2px 0;font-size:12px}
.cc{border-top:1px solid #38342c;font-size:12px;color:#736d61}.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(--stone);flex-direction:column;gap:0;padding:14px 26px;z:55;overflow:auto;z-index:55}
  #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}
  .tgrid{grid-template-columns:1fr 1fr}.cgrid,.mgrid,.pk3,.why,.m3{grid-template-columns:1fr 1fr}
  .fee5{grid-template-columns:1fr 1fr 1fr}.voices{grid-template-columns:1fr}
  .brow{grid-template-columns:1fr auto}.brow-en{grid-column:1}.brow-ja{grid-column:1}.brow-t{grid-column:1/3}
  .ft-in{grid-template-columns:1fr 1fr}.frm{grid-template-columns:1fr}
}
@media(max-width:600px){
  .hd-cta{display:none}.hd-in{height:60px}
  .tgrid,.cgrid,.mgrid,.pk3,.why,.m3{grid-template-columns:1fr}
  .fee5{grid-template-columns:1fr 1fr}.anshin th{width:46%}
  .band{padding:44px 0}.hero{padding:48px 0 44px}.ft-in{grid-template-columns:1fr}
}
