:root{
  --paper:#F5F3EE;
  --paper-2:#ECE8DF;
  --card:#FFFFFF;
  --ink:#15171B;
  --ink-2:#4A4F58;
  --rule:#D5D0C4;
  --rule-strong:#15171B;
  --accent:#0F6B58;
  --accent-ink:#FFFFFF;
  --stamp:#B23A2A;
  --yes:#1F6B45;
  --serif:"Hiragino Mincho ProN","Yu Mincho","YuMincho","Noto Serif JP",serif;
  --sans:"Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic","YuGothic","Noto Sans JP",system-ui,sans-serif;
  --mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;
}
@media (prefers-color-scheme: dark){
  :root{
    --paper:#121417;
    --paper-2:#191C20;
    --card:#1D2025;
    --ink:#ECE9E2;
    --ink-2:#A8ADB6;
    --rule:#30343B;
    --rule-strong:#ECE9E2;
    --accent:#5FD3B5;
    --accent-ink:#06201A;
    --stamp:#F08A78;--on-stamp:#2A0C06;
    --yes:#6FCF9C;
  }
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.85;font-feature-settings:"palt" 1;overflow-x:hidden}
a{color:var(--accent)}
.wrap{max-width:1120px;margin:0 auto;padding:0 16px}
@media (min-width:768px){.wrap{padding:0 32px}}

/* header */
.top{position:sticky;top:0;z-index:10;background:color-mix(in srgb,var(--paper) 92%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--rule)}
.top-in{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:60px}
.brand{display:flex;flex-direction:column;text-decoration:none;color:var(--ink);line-height:1.15}
.brand-co{font-family:var(--mono);font-weight:700;letter-spacing:.18em;font-size:13px}
.brand-sv{font-size:12px;letter-spacing:.12em;color:var(--ink-2)}
.nav{display:flex;gap:4px;align-items:center}
.nav a{color:var(--ink);text-decoration:none;font-size:14px;padding:6px 10px;border-radius:4px}
.nav a:hover{background:var(--paper-2)}
.nav a:not(.nav-cta){display:none}
@media (min-width:960px){.nav a:not(.nav-cta){display:inline-block}}
.nav-cta{background:var(--ink);color:var(--paper)!important;font-weight:600}
.nav-cta:hover{background:var(--accent)!important;color:var(--accent-ink)!important}

/* hero */
.hero{padding:48px 0 56px;border-bottom:1px solid var(--rule-strong)}
@media (min-width:960px){.hero{padding:88px 0 96px}}
.hero-grid{display:grid;gap:40px}
@media (min-width:960px){.hero-grid{grid-template-columns:1.15fr .85fr;align-items:center;gap:64px}}
.eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:.14em;color:var(--ink-2);margin:0 0 16px}
h1{font-family:var(--serif);font-weight:600;font-size:clamp(32px,8.4vw,60px);line-height:1.3;letter-spacing:.01em;margin:0 0 24px}
.lead{font-size:16px;color:var(--ink-2);max-width:36em;margin:0 0 28px}
@media (min-width:768px){.lead{font-size:17px}}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px}
.btn,.btn-ghost{display:inline-block;text-decoration:none;font-weight:600;padding:13px 22px;border-radius:4px;font-size:15px;line-height:1.4}
.btn{background:var(--accent);color:var(--accent-ink)}
.btn:hover{filter:brightness(1.08)}
.btn-ghost{color:var(--ink);border:1px solid var(--rule-strong)}
.btn-ghost:hover{background:var(--paper-2)}
.btn-lg{padding:16px 26px;font-size:16px;word-break:break-all}

/* ledger card */
.ledger{margin:0;background:var(--card);border:1px solid var(--rule-strong);padding:22px 20px 18px;position:relative}
.ledger-h{font-family:var(--mono);font-size:12px;letter-spacing:.2em;color:var(--ink-2);margin-bottom:8px;text-transform:uppercase}
.ledger-rows{margin:0}
.ledger-rows>div{display:grid;grid-template-columns:7.5em 1fr;gap:12px;padding:12px 0;border-bottom:1px solid var(--rule);align-items:baseline;background:var(--card)}
.ledger-rows dt{font-size:13px;color:var(--ink-2)}
.ledger-rows dd{margin:0;font-weight:600}
.ledger-rows small{display:block;font-weight:400;font-size:12px;color:var(--ink-2)}
.num{font-family:var(--mono);font-size:1.35em;font-weight:700;letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.ledger-rows .zero dd{color:var(--stamp)}
.ledger-rows .zero .num{border:2px solid var(--stamp);border-radius:50%;padding:0 .35em;display:inline-block;line-height:1.3}
.ledger-foot{margin:14px 0 0;font-size:12.5px;color:var(--ink-2);background:var(--card)}

/* sections */
.sec{padding:64px 0;border-bottom:1px solid var(--rule)}
@media (min-width:960px){.sec{padding:96px 0}}
.sec-band{background:var(--paper-2)}
.sec-h{display:flex;align-items:baseline;gap:16px;border-top:2px solid var(--rule-strong);padding-top:14px;margin-bottom:22px}
.sec-no{font-family:var(--mono);font-size:13px;letter-spacing:.1em;color:var(--accent);font-weight:700}
h2{font-family:var(--serif);font-weight:600;font-size:clamp(24px,5.6vw,36px);line-height:1.4;margin:0}
.sec-lead{max-width:40em;margin:0 0 28px;font-size:16px}
.sub-h{font-family:var(--serif);font-weight:600;font-size:20px;margin:48px 0 16px}
h3{font-size:17px;margin:0 0 10px}
h4{font-size:15px;margin:0 0 6px}
.note{font-size:14px;color:var(--ink-2);max-width:46em;margin:20px 0 0}

.two{display:grid;gap:16px}
@media (min-width:768px){.two{grid-template-columns:1fr 1fr}}
.card{background:var(--card);border:1px solid var(--rule);padding:22px 20px}
.card-muted{background:transparent}
.ticks,.crosses{list-style:none;margin:0;padding:0}
.ticks li,.crosses li{position:relative;padding:6px 0 6px 28px;border-top:1px dashed var(--rule)}
.ticks li:first-child,.crosses li:first-child{border-top:0}
.ticks li::before{content:"";position:absolute;left:4px;top:15px;width:10px;height:6px;border-left:2px solid var(--yes);border-bottom:2px solid var(--yes);transform:rotate(-45deg)}
.crosses li::before{content:"−";position:absolute;left:4px;top:5px;color:var(--ink-2);font-weight:700}

/* roles */
.roles{list-style:none;margin:0;padding:0;display:grid;gap:0;counter-reset:r;border-top:1px solid var(--rule-strong)}
@media (min-width:768px){.roles{grid-template-columns:repeat(3,1fr)}}
.roles li{counter-increment:r;padding:18px 16px 18px 0;border-bottom:1px solid var(--rule);display:flex;flex-direction:column;gap:4px}
@media (min-width:768px){.roles li{padding:20px 20px 20px 0}}
.roles b{font-family:var(--serif);font-size:20px}
.roles b::before{content:counter(r,decimal-leading-zero) "  ";font-family:var(--mono);font-size:12px;color:var(--accent);vertical-align:middle}
.roles span{font-size:14px;color:var(--ink-2)}

.drawers{display:grid;gap:8px}
@media (min-width:768px){.drawers{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1024px){.drawers{grid-template-columns:repeat(3,1fr)}}
.drawers>div{background:var(--card);border:1px solid var(--rule);padding:14px 16px;display:grid;grid-template-columns:32px 1fr;column-gap:10px}
.drawers i{grid-row:span 2;font-style:normal;font-family:var(--mono);font-weight:700;font-size:18px;color:var(--accent);border-right:1px solid var(--rule)}
.drawers b{font-size:15px}
.drawers span{font-size:13.5px;color:var(--ink-2);line-height:1.7}
.drawers .dim{opacity:.75;border-style:dashed}

.steps{list-style:none;margin:0;padding:0;display:grid;gap:0}
@media (min-width:960px){.steps{grid-template-columns:repeat(3,1fr);column-gap:24px}}
.steps li{display:flex;gap:14px;padding:16px 0;border-top:1px solid var(--rule)}
.st-no{font-family:var(--mono);font-weight:700;color:var(--paper);background:var(--ink);min-width:36px;height:28px;display:inline-flex;align-items:center;justify-content:center;font-size:13px}
.steps b{display:block;font-size:15.5px}
.steps p{margin:2px 0 0;font-size:14px;color:var(--ink-2)}

/* fee */
.fee-table{border-top:2px solid var(--rule-strong);border-bottom:2px solid var(--rule-strong)}
.fr{display:grid;grid-template-columns:1fr;padding:14px 0;border-top:1px solid var(--rule);gap:2px}
.fr:first-child{border-top:0}
.fr-h{display:none}
.fr span[data-l]::before{content:attr(data-l);display:inline-block;width:3.6em;font-size:12px;color:var(--ink-2)}
.fr span:first-child{font-weight:700}
@media (min-width:768px){
  .fr{grid-template-columns:10em 18em 1fr;gap:20px;align-items:baseline}
  .fr-h{display:grid;font-size:12px;color:var(--ink-2);font-family:var(--mono);letter-spacing:.1em}
  .fr span[data-l]::before{display:none}
}

.three{display:grid;gap:12px}
@media (min-width:768px){.three{grid-template-columns:repeat(3,1fr)}}
.col{padding:18px;border:1px solid var(--rule);background:var(--card)}
.col p{margin:0;font-size:14px;color:var(--ink-2)}
.col-yes{border-top:4px solid var(--yes)}
.col-mid{border-top:4px solid var(--accent)}
.col-no{border-top:4px solid var(--rule)}

.example{margin:48px 0 0;border:2px dashed var(--ink);padding:24px 18px 18px;position:relative;background:var(--card)}
@media (min-width:768px){.example{padding:30px 28px 22px}}
.ex-tag{position:absolute;top:-16px;left:16px;margin:0;background:var(--stamp);color:var(--on-stamp,#fff);font-family:var(--serif);font-weight:700;font-size:16px;padding:2px 14px;letter-spacing:.2em}
.ex-warn{font-size:13.5px;color:var(--stamp);margin:0 0 18px;font-weight:600}
.ex-grid{display:grid;gap:20px}
@media (min-width:768px){.ex-grid{grid-template-columns:1fr 1fr;gap:28px}}
.calc{width:100%;border-collapse:collapse;font-size:14px}
.calc th{text-align:left;font-weight:500;color:var(--ink-2);padding:8px 8px 8px 0;white-space:nowrap}
.calc td{padding:8px 4px;border-bottom:1px solid var(--rule)}
.calc th{border-bottom:1px solid var(--rule)}
.calc .r{text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600}
.calc .sum th,.calc .sum td{border-bottom:0;border-top:2px solid var(--ink);color:var(--ink);font-weight:700}
.ex-foot{margin:14px 0 0;font-size:13px;color:var(--ink-2)}

.design{margin-top:40px;padding:22px 20px;border-left:4px solid var(--accent);background:var(--paper-2)}
.design h3{font-family:var(--serif);font-size:18px}
.design p,.design li{font-size:14.5px}
.design ul{margin:8px 0 0;padding-left:1.2em}

/* provide */
.provide{display:grid;gap:12px}
@media (min-width:960px){.provide{grid-template-columns:repeat(3,1fr)}}
.pv{display:flex;gap:14px;background:var(--card);border:1px solid var(--rule);padding:18px}
.pv-no{font-family:var(--mono);font-weight:700;font-size:28px;line-height:1;color:var(--accent)}
.pv b{font-size:16px}
.pv p{margin:4px 0 0;font-size:14px;color:var(--ink-2)}
.ladder{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px;counter-reset:l}
.ladder li{counter-increment:l;background:var(--card);border:1px solid var(--rule);padding:8px 12px;font-size:14px}
.ladder li::before{content:counter(l) ". ";font-family:var(--mono);color:var(--accent);font-weight:700}
.data-rules{margin-top:36px;border-top:1px solid var(--rule-strong);padding-top:18px}
.data-rules ul{margin:0;padding-left:1.2em}
.data-rules li{font-size:14.5px;margin:4px 0}

/* not */
.nots{display:grid;gap:0;border-top:2px solid var(--rule-strong)}
@media (min-width:768px){.nots{grid-template-columns:1fr 1fr;column-gap:40px}}
.nt{padding:18px 0;border-bottom:1px solid var(--rule)}
.nt b{display:block;font-family:var(--serif);font-size:18px;padding-left:22px;position:relative}
.nt b::before{content:"";position:absolute;left:0;top:.62em;width:12px;height:2px;background:var(--stamp)}
.nt p{margin:6px 0 0;font-size:14.5px;color:var(--ink-2)}

/* faq */
.faq{border-top:2px solid var(--rule-strong)}
.faq details{border-bottom:1px solid var(--rule)}
.faq summary{cursor:pointer;list-style:none;padding:16px 36px 16px 0;font-weight:600;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:4px;top:12px;font-family:var(--mono);font-size:20px;color:var(--accent)}
.faq details[open] summary::after{content:"−"}
.faq details p{margin:0 0 18px;color:var(--ink-2);font-size:15px;max-width:46em}

/* contact */
.contact{background:var(--ink);color:var(--paper);border-bottom:0}
.contact .sec-h{border-top-color:var(--paper)}
.contact h2{color:var(--paper)}
.contact .sec-no{color:#8FE3CC}
.contact .sec-lead{color:var(--paper)}
.contact .btn{background:var(--paper);color:var(--ink)}
.contact-grid{display:grid;gap:32px}
@media (min-width:960px){.contact-grid{grid-template-columns:1.3fr 1fr;gap:64px;align-items:start}}
.co{margin:0;border-top:1px solid color-mix(in srgb,var(--paper) 40%,transparent)}
.co>div{display:grid;grid-template-columns:6em 1fr;gap:12px;padding:10px 0;border-bottom:1px solid color-mix(in srgb,var(--paper) 25%,transparent);font-size:14.5px}
.co dt{opacity:.7}
.co dd{margin:0;word-break:break-all}
@media (prefers-color-scheme: dark){
  .contact{background:#0A0B0D;color:var(--ink)}
  .contact h2,.contact .sec-lead{color:var(--ink)}
  .contact .sec-h{border-top-color:var(--ink)}
  .contact .btn{background:var(--accent);color:var(--accent-ink)}
  .co{border-top-color:var(--rule)}
  .co>div{border-bottom-color:var(--rule)}
}

/* footer */
.foot{border-top:1px solid var(--rule);padding:36px 0 28px;background:var(--paper)}
.foot-in{display:grid;gap:20px}
@media (min-width:768px){.foot-in{grid-template-columns:1fr auto;align-items:start}}
.foot-brand p{margin:6px 0 0;font-size:13px;color:var(--ink-2)}
.foot-links{display:flex;flex-wrap:wrap;gap:8px 20px}
.foot-links a{color:var(--ink);font-size:14px;text-decoration:none;border-bottom:1px solid var(--rule)}
.foot-links a:hover{border-bottom-color:var(--accent)}
.foot-small{margin-top:24px;font-size:12px;color:var(--ink-2);font-family:var(--mono)}

/* ===== phone ===== */
.tag{display:inline-block;font-family:var(--mono);font-size:12px;font-weight:700;letter-spacing:.08em;padding:2px 8px;border-radius:3px;white-space:nowrap;vertical-align:middle}
.tag-ok{background:color-mix(in srgb,var(--yes) 16%,transparent);color:var(--yes);border:1px solid var(--yes)}
.tag-plan{background:transparent;color:var(--ink-2);border:1px dashed var(--ink-2)}
.tag-wait{background:color-mix(in srgb,var(--stamp) 12%,transparent);color:var(--stamp);border:1px solid var(--stamp)}
.status-rows>div{grid-template-columns:8.5em 1fr}
.status-rows dd{font-weight:500;font-size:14.5px}
.status-rows dd .tag{margin-bottom:4px}
.flow{list-style:none;margin:0;padding:0;border-top:2px solid var(--rule-strong)}
.flow li{display:grid;grid-template-columns:2.6em 1fr;gap:4px 14px;padding:16px 0;border-bottom:1px solid var(--rule);align-items:start}
@media (min-width:768px){.flow li{grid-template-columns:3em 11em 1fr auto;align-items:baseline}}
.flow .fn{font-family:var(--mono);font-weight:700;color:var(--accent);font-size:15px}
.flow b{font-family:var(--serif);font-size:18px}
.flow p{margin:0;font-size:14.5px;color:var(--ink-2);grid-column:2}
.flow .tag{grid-column:2;justify-self:start}
@media (min-width:768px){.flow p{grid-column:auto}.flow .tag{grid-column:auto;justify-self:end}}
.flow .plan{opacity:.85}
.quote{margin:18px 0 0;padding:16px 18px;background:var(--card);border:1px solid var(--rule);border-left:4px solid var(--accent);font-family:var(--serif);font-size:17px}
.quote small{display:block;font-family:var(--sans);font-size:12.5px;color:var(--ink-2);margin-top:6px}
.estimate{margin-top:28px;border:2px dashed var(--ink);background:var(--card);padding:24px 18px 18px;position:relative}
@media (min-width:768px){.estimate{padding:28px 26px 20px}}
.estimate .ex-tag{background:var(--stamp)}
.cmp-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border-top:2px solid var(--rule-strong);border-bottom:2px solid var(--rule-strong)}
.cmp{width:100%;border-collapse:collapse;font-size:14px;min-width:0}
.cmp th,.cmp td{text-align:left;padding:12px 10px 12px 0;border-bottom:1px solid var(--rule);vertical-align:top}
.cmp thead th{font-size:12px;font-family:var(--mono);letter-spacing:.06em;color:var(--ink-2);font-weight:500}
.cmp tbody th{font-weight:700;white-space:nowrap}
.cmp td small,.cmp th small{display:block;color:var(--ink-2);font-size:12px;font-weight:400}
.cmp tr.us th,.cmp tr.us td{background:color-mix(in srgb,var(--accent) 8%,transparent)}
/* mobile: stack table rows as cards */
@media (max-width:767px){
  .cmp-wrap{overflow:visible}
  .cmp thead{display:none}
  .cmp,.cmp tbody,.cmp tr,.cmp th,.cmp td{display:block;width:100%}
  .cmp tr{padding:14px 0;border-bottom:1px solid var(--rule)}
  .cmp tr:last-child{border-bottom:0}
  .cmp th,.cmp td{border:0;padding:3px 0}
  .cmp td[data-l]::before{content:attr(data-l);display:block;font-size:12px;color:var(--ink-2);font-family:var(--mono);letter-spacing:.06em}
  .cmp tbody th{white-space:normal;font-size:16px}
}
.src{font-size:12.5px;color:var(--ink-2);margin:14px 0 0}
.src a{word-break:break-all}
.law{display:grid;gap:12px}
@media (min-width:768px){.law{grid-template-columns:1fr 1fr}}
.law .card h3{font-family:var(--serif);font-size:18px}
.law .card p{margin:0;font-size:14.5px;color:var(--ink-2)}
.law .card p+p{margin-top:8px}
.law .card .basis{font-size:12.5px;margin-top:10px;padding-top:8px;border-top:1px dashed var(--rule)}
.nw{display:inline-block}
@media (max-width:479px){.status-rows>div{grid-template-columns:1fr;gap:2px}}

/* token pricing 2026-10-03 */
.example .calc th{white-space:normal}
.calc caption{text-align:left;font-weight:700;font-size:14px;padding:0 0 6px;color:var(--ink)}

/* UX 見直し 10-03 #2：暗い節の中の枠だけのボタンを見えるように（AA 以上） */
.contact .btn-ghost{color:var(--paper);border:1.5px solid var(--paper)}
.contact .btn-ghost:hover{background:rgba(255,255,255,.12)}
@media (prefers-color-scheme: dark){
  .contact .btn-ghost{color:var(--ink);border-color:var(--ink)}
}
