
:root{--greige:#f3f1ea;--paper:#faf8f2;--ink:#272430;--ink2:#4d4756;--mut:#8e8896;--line:#e6e1d6;--lav:#7c6aa6;--lav-d:#5f4f8a;--maxw:1080px}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;color:var(--ink);background:var(--greige);font-family:"Noto Sans JP",system-ui,sans-serif;font-size:16px;line-height:1.9}
a{color:inherit;text-decoration:none}
.ww{max-width:var(--maxw);margin:0 auto;padding:0 26px}.narrow{max-width:760px}
.lg-n,.hero-h,.ph h1,.sk-ja,.sk-en,.eb,.ph-en,.crow-en,.crow-ja{font-family:"Fraunces",serif}

/* header */
.hd{position:sticky;top:0;z-index:60;background:rgba(243,241,234,.95);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.hd-in{max-width:var(--maxw);margin:0 auto;padding:0 26px;height:68px;display:flex;align-items:center;gap:20px}
.lg{display:flex;flex-direction:column;line-height:1.1}
.lg-n{font-size:23px;font-weight:700;color:var(--ink);letter-spacing:.01em}
.lg-s{font-size:8.5px;letter-spacing:.1em;color:var(--lav-d);font-weight:700}
.nav{display:flex;gap:18px;margin-left:auto;font-size:13.5px}
.nav a{padding:6px 2px;border-bottom:1px solid transparent;color:var(--ink2)}
.nav a:hover{color:var(--lav-d);border-color:var(--lav)}
.hd-cta{background:var(--lav);color:#fff;font-size:13px;font-weight:700;padding:10px 18px;border-radius:999px;white-space:nowrap}
.hd-cta:hover{background:var(--lav-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:999px}
.bg span{display:block;width:20px;height:1.5px;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(--lav-d)}

/* section kicker */
.sk{margin-bottom:26px}
.sk-en{font-style:italic;letter-spacing:.02em;font-size:14px;color:var(--lav-d);display:block;margin-bottom:2px}
.sk-ja{font-size:clamp(24px,3.4vw,34px);font-weight:600;margin:0;letter-spacing:.01em}
.eb{font-style:italic;font-size:15px;color:var(--lav-d);margin:0 0 6px}.eb.lav{color:#c6b6e8}
.dh{font-family:"Fraunces",serif;font-size:clamp(24px,3.4vw,34px);font-weight:600;margin:0 0 22px}.dh.light{color:#fff}

/* hero */
.hero{padding:84px 0 72px;border-bottom:1px solid var(--line)}
.hero-k{font-size:11.5px;letter-spacing:.12em;color:var(--lav-d);margin:0 0 22px;font-weight:700}
.hero-h{font-size:clamp(38px,6vw,72px);font-weight:600;line-height:1.1;margin:0 0 24px;letter-spacing:.01em}
.hero-h .lav{color:var(--lav)}
.hero-l{max-width:620px;color:var(--ink2);margin:0 0 28px}
.hero-b{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:26px}
.hero-p{display:flex;flex-wrap:wrap;gap:8px 24px;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;top:.55em;width:10px;height:10px;border:2px solid var(--lav);border-radius:50%}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 30px;font-weight:700;font-size:14px;border-radius:999px;border:1.5px solid transparent;transition:.18s}
.btn-l{background:var(--lav);color:#fff}.btn-l:hover{background:var(--lav-d)}
.btn-o{background:transparent;color:var(--ink);border-color:var(--ink)}.btn-o:hover{background:var(--ink);color:#fff}
.btn-lo{background:transparent;color:#fff;border-color:rgba(255,255,255,.5)}.btn-lo:hover{background:#fff;color:var(--ink)}

/* bands */
.band{padding:64px 0}.band.paper{background:var(--paper)}.band.ink{background:var(--ink);color:#cfc9d6}
.band-l{max-width:680px;margin:0 0 24px;color:var(--ink2)}.band.ink .band-l,.band-l.light{color:#9c95a8}
.more{margin-top:22px}.more a{color:var(--lav-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(--lav-d)}

/* 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);border-radius:12px;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-family:"Fraunces",serif;font-size:22px;font-weight:600;color:var(--lav-d)}
.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:"Fraunces",serif;font-size:18px;color:var(--ink);margin:0 0 11px;border-bottom:1px solid var(--line);padding-bottom:8px}
.jgh a:hover{color:var(--lav-d)}
.jbs{display:flex;flex-wrap:wrap;gap:9px}
.jb{padding:9px 16px;background:var(--paper);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(--lav);color:var(--lav-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);border-radius:12px;padding:26px 20px;text-align:center}
.vq{font-family:"Fraunces",serif;font-size:18px;color:var(--mut);margin:0 0 10px}
.vn{font-size:12px;color:var(--mut);margin:0}

/* category rows */
.crows{display:flex;flex-direction:column;border-top:1px solid var(--line)}
.crow{display:grid;grid-template-columns:160px 1fr;gap:6px 24px;padding:24px 6px;border-bottom:1px solid var(--line);border-left:3px solid var(--tone,var(--lav));padding-left:18px;transition:.16s;align-items:baseline}
.crow:hover{background:var(--paper)}
.crow-en{font-style:italic;font-size:14px;color:var(--lav-d)}
.crow-ja{font-size:22px;font-weight:600;grid-column:2;grid-row:1}
.crow-en{grid-column:1;grid-row:1}
.crow-l{grid-column:2;grid-row:2;font-size:13.5px;color:var(--mut)}

/* brand cards */
.bgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.bcard{display:flex;justify-content:space-between;align-items:center;padding:18px 20px;background:var(--paper);border:1px solid var(--line);border-radius:12px;transition:.16s}
.bcard:hover{border-color:var(--lav);background:#fff}
.bcard-n{font-weight:700;font-size:14px}.bcard-g{color:var(--lav-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:12px;transition:.16s}
.mcard:hover{border-color:var(--lav);background:#fff;transform:translateY(-2px)}
.mcard-n{font-family:"Fraunces",serif;font-weight:600;font-size:16px;color:var(--ink)}
.mcard-d{font-size:12.5px;line-height:1.6;color:var(--mut)}

/* note boxes */
.notebox{display:flex;gap:14px;align-items:flex-start;background:#efeaf6;border:1px solid #ddd2ee;border-radius:12px;padding:18px 22px}
.notebox-m{flex:none;width:24px;height:24px;background:var(--lav);color:#fff;display:flex;align-items:center;justify-content:center;border-radius:50%;font-style:italic;font-family:"Fraunces",serif;font-weight:700}
.notebox p{margin:0;font-size:13.5px;color:var(--ink2)}
.ncard{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:24px 26px;margin-bottom:14px}
.ncard h3{font-family:"Fraunces",serif;margin:0 0 8px;font-size:19px;color:var(--ink)}.ncard p{margin:0;color:var(--ink2);font-size:14px}

/* why/steps/methods */
.why{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.why div{border:1px solid #3a3543;border-radius:14px;padding:26px}
.why b{display:block;color:#fff;font-size:17px;margin-bottom:9px;font-family:"Fraunces",serif}.why p{margin:0;color:#9c95a8;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);border-radius:14px;padding:24px;font-size:13.5px;color:var(--ink2)}
.steps span{font-family:"Fraunces",serif;font-weight:700;font-size:26px;color:var(--lav-d);display:block}
.steps b{display:block;margin:8px 0 6px;font-size:16px;color:var(--ink);font-family:"Fraunces",serif}
.steps2{list-style:none;counter-reset:s;padding:0;margin:0}
.steps2 li{position:relative;padding:0 0 26px 56px;border-left:1px 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:50%;background:var(--lav);color:#fff;display:flex;align-items:center;justify-content:center;font-family:"Fraunces",serif;font-weight:700;font-size:13px}
.steps2 b{display:block;font-size:16px;margin-bottom:4px;font-family:"Fraunces",serif}.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);border-radius:14px;padding:26px}
.mb span{font-style:italic;font-family:"Fraunces",serif;font-size:13px;color:var(--lav-d)}
.mb h3{font-family:"Fraunces",serif;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:56px 0}
.ph.cph{border-top:4px solid var(--tone)}
.ph-en{font-style:italic;font-size:15px;color:var(--lav-d);margin:0 0 10px}
.ph h1{font-size:clamp(28px,4.4vw,46px);font-weight:600;margin:0 0 14px}
.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:11px 0 11px 22px;border-bottom:1px solid var(--line);font-size:14.5px}
.checks li::before{content:"";position:absolute;left:0;top:16px;width:9px;height:9px;border:2px solid var(--lav);border-radius:50%}
.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:999px;padding:8px 16px;font-size:13px;transition:.16s;background:var(--paper)}.tags a:hover{border-color:var(--lav);color:var(--lav-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(--lav-d);font-family:"Fraunces",serif;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:"Fraunces",serif;font-size:19px;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:"Fraunces",serif;font-weight:600;font-size:14.5px;color:var(--lav-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:4px;color:var(--lav);font-weight:700;top:8px}
.art-toc{border:1px solid var(--line);background:var(--paper);padding:20px 24px;margin:0 0 8px}
.art-toc-t{font-family:"Fraunces",serif;font-weight:600;letter-spacing:.06em;font-size:13px;color:var(--lav-d);margin:0 0 10px}
.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(--lav-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}

/* 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:16px;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 14px;border:1px solid var(--line);border-radius:10px}
.frm input:focus,.frm textarea:focus{outline:none;border-color:var(--lav)}
.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:"Fraunces",serif;font-size:17px;margin:22px 0 6px}.pv p{margin:0;color:var(--ink2)}

/* footer */
.ft{background:var(--ink);color:#9c95a8;border-top:3px solid var(--lav)}
.ft-in{display:grid;grid-template-columns:1.8fr 1fr 1fr 1fr;gap:30px;padding:52px 26px 34px}
.ft-b .lg-n{font-family:"Fraunces",serif;font-size:22px;color:#fff;display:block}.ft-b .lg-s{font-size:8.5px;letter-spacing:.1em;color:var(--lav);display:block;margin-bottom:14px}
.ft-b p{font-size:13px;margin:0 0 12px}.ft-b .mini{font-size:11.5px;color:#7d7689}
.ft-c h3{font-family:"Fraunces",serif;font-size:14px;color:#fff;margin:0 0 14px}
.ft-c a{display:block;font-size:13px;padding:5px 0;color:#938ca1}.ft-c a:hover{color:var(--lav)}
.cc{border-top:1px solid #3a3543;font-size:12px;color:#736d80}.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:68px;left:0;right:0;bottom:0;background:var(--greige);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}
  .bgrid,.mgrid,.why,.steps,.m3{grid-template-columns:1fr 1fr}
  .fee5{grid-template-columns:1fr 1fr 1fr}.voices{grid-template-columns:1fr}
  .crow{grid-template-columns:1fr}.crow-ja{grid-column:1;grid-row:2}.crow-l{grid-column:1;grid-row:3}
  .ft-in{grid-template-columns:1fr 1fr}.frm{grid-template-columns:1fr}
}
@media(max-width:600px){
  .hd-cta{display:none}.hd-in{height:62px}
  .bgrid,.mgrid,.why,.steps,.m3{grid-template-columns:1fr}
  .fee5{grid-template-columns:1fr 1fr}.anshin th{width:48%}
  .band{padding:46px 0}.hero{padding:54px 0 46px}.ft-in{grid-template-columns:1fr}
}
