:root{
  --ai:#16233C;
  --kachi:#0B1322;
  --paper:#E7E9E4;
  --paper-2:#F4F5F2;
  --brass:#C9A64A;
  --seal:#A6392C;
  --slate:#6E7C90;
  --rule:rgba(22,35,60,.16);
  --rule-dark:rgba(231,233,228,.18);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
body{
  margin:0;background:var(--paper);color:var(--ai);
  font-family:"Zen Kaku Gothic New",system-ui,sans-serif;
  font-size:17px;line-height:1.75;-webkit-font-smoothing:antialiased;
}
html[lang="en"] body{line-height:1.68}
h1,h2,h3,.mincho,.logo{font-family:"Zen Old Mincho",serif;font-weight:600;letter-spacing:.01em}
a{color:inherit}
.wrap{max-width:1080px;margin:0 auto;padding:0 28px}
.narrow{max-width:64ch}
html[lang="en"] .narrow{max-width:70ch}
.fine{color:var(--slate);font-size:14px}

/* ---- masthead ---- */
.mast{background:var(--kachi);color:var(--paper)}
.mast .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-top:20px;padding-bottom:20px;flex-wrap:wrap}
.logo{font-weight:900;font-size:26px;letter-spacing:.14em;line-height:1.1}
.logo small{display:block;font-family:"Zen Kaku Gothic New",sans-serif;font-weight:500;font-size:11px;letter-spacing:.34em;color:var(--brass);margin-top:3px}
.logo a{text-decoration:none}
.mast-right{display:flex;align-items:center;gap:28px}
.mast nav{display:flex;gap:24px;font-size:14px}
.mast nav a{color:rgba(231,233,228,.72);text-decoration:none;padding-bottom:2px;border-bottom:1px solid transparent}
.mast nav a:hover,.mast nav a:focus-visible{color:var(--paper);border-bottom-color:var(--brass)}
@media(max-width:940px){.mast nav{display:none}}

/* ---- language tabs (rendered by {% locale_switcher %}) ---- */
.lang{display:flex;border:1px solid rgba(231,233,228,.34)}
ul.locale-switcher{display:flex;margin:0;padding:0;list-style:none;border:1px solid rgba(231,233,228,.34)}
ul.locale-switcher li + li{border-left:1px solid rgba(231,233,228,.34)}
ul.locale-switcher a{
  display:block;text-decoration:none;
  font:inherit;font-size:0;line-height:0;font-weight:500;
  color:rgba(231,233,228,.66);padding:7px 15px;letter-spacing:.02em;
}
/* the switcher emits the bare locale code; show the language's own name */
ul.locale-switcher a::after{display:inline-block;font-size:13px;line-height:1.7}
ul.locale-switcher a[hreflang="ja"]::after{content:"日本語"}
ul.locale-switcher a[hreflang="en"]::after{content:"English"}
ul.locale-switcher a:hover{color:var(--paper)}
ul.locale-switcher a.active,ul.locale-switcher .active a{background:var(--brass);color:var(--kachi);font-weight:700}
ul.locale-switcher a:focus-visible{outline:2px solid var(--brass);outline-offset:2px}

/* ---- hero ---- */
.hero{background:var(--kachi);color:var(--paper);padding:12px 0 76px;border-bottom:3px solid var(--brass)}
.hero-grid{display:grid;grid-template-columns:1.02fr .98fr;gap:56px;align-items:start}
@media(max-width:900px){.hero-grid{grid-template-columns:1fr;gap:40px}}
.hero h1{font-size:clamp(29px,4.3vw,49px);line-height:1.28;margin:14px 0 0;font-weight:600}
html[lang="en"] .hero h1{line-height:1.18}
.alt-lang{display:block;font-family:"Zen Kaku Gothic New",sans-serif;font-size:16px;font-weight:400;letter-spacing:.02em;color:var(--brass);margin-top:20px;line-height:1.6}
.hero p.lede{color:rgba(231,233,228,.8);max-width:46ch;margin:26px 0 0}
.deadline{margin-top:34px;padding-top:18px;border-top:1px solid var(--rule-dark);font-size:14px;color:rgba(231,233,228,.62);max-width:46ch}
.deadline b{color:var(--brass);font-weight:500}

/* ---- ledger ---- */
.ledger{background:var(--paper-2);color:var(--ai);padding:26px 26px 22px;box-shadow:0 18px 44px rgba(0,0,0,.34)}
.ledger-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;border-bottom:2px solid var(--ai);padding-bottom:10px}
.ledger-head .t{font-family:"Zen Old Mincho",serif;font-size:19px;font-weight:600}
.ledger-head .n{font-size:12px;color:var(--slate);text-align:right}
.ledger-hint{font-size:12.5px;color:var(--slate);margin:12px 0 4px}
.row{display:grid;grid-template-columns:26px 1fr auto;align-items:center;gap:12px;width:100%;
  background:none;border:0;border-bottom:1px solid var(--rule);padding:11px 2px;text-align:left;cursor:pointer;
  font:inherit;font-size:15px;color:var(--ai)}
.row:hover{background:rgba(22,35,60,.045)}
.row:focus-visible{outline:2px solid var(--brass);outline-offset:-2px}
.row .nm{font-weight:500}
.row .ds{display:block;font-size:12.5px;color:var(--slate);line-height:1.5}
.mark{font-size:17px;line-height:1;text-align:center;transition:color .18s ease}
.row[aria-pressed="true"] .mark{color:var(--brass)}
.row[aria-pressed="false"] .mark{color:var(--seal)}
.row .verdict{font-size:12px;letter-spacing:.02em;white-space:nowrap}
.row[aria-pressed="true"] .verdict{color:var(--slate)}
.row[aria-pressed="false"] .verdict{color:var(--seal)}
.tally{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:18px;padding-top:16px;border-top:2px solid var(--ai);flex-wrap:wrap}
.stars{font-size:26px;letter-spacing:.1em;line-height:1}
.stars .on{color:var(--brass)}
.stars .off{color:rgba(22,35,60,.2)}
.tally .count{font-size:12px;color:var(--slate);margin-top:6px}
.tally .say{font-size:14px;max-width:32ch}
.tally .say b{font-family:"Zen Old Mincho",serif;font-size:16px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* ---- buttons ---- */
.btn{display:inline-block;background:var(--brass);color:var(--kachi);text-decoration:none;
  font-weight:700;font-size:15px;padding:14px 26px;border:0;cursor:pointer;font-family:inherit}
.btn:hover{background:#DBB85C}
.btn:focus-visible{outline:3px solid var(--paper);outline-offset:2px}
.btn-ghost{background:none;color:var(--paper);border:1px solid var(--rule-dark);margin-left:12px}
.btn-ghost:hover{background:rgba(231,233,228,.08)}
.hero-cta{margin-top:34px}
@media(max-width:560px){.btn-ghost{margin:12px 0 0;display:block;text-align:center}}

/* ---- sections ---- */
section{padding:82px 0}
.sec-title{font-size:clamp(24px,3vw,34px);margin:0 0 8px}
.sec-sub{color:var(--slate);margin:0 0 40px;max-width:62ch}
.alt{background:var(--paper-2)}
.dark{background:var(--ai);color:var(--paper)}
.dark .sec-title{color:var(--paper)}
.dark .sec-sub{color:rgba(231,233,228,.66)}

/* ---- steps ---- */
.steps{display:grid;grid-template-columns:repeat(3,1fr);border-top:2px solid var(--ai)}
@media(max-width:820px){.steps{grid-template-columns:1fr}}
.step{padding:26px 26px 30px;border-right:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.step:last-child{border-right:0}
.step .idx{font-family:"Zen Old Mincho",serif;font-size:34px;color:var(--brass);line-height:1}
.step h3{font-size:19px;margin:10px 0 8px}
.step p{margin:0;font-size:15px;color:#3D4A61}
.step .price{margin-top:16px;font-size:13px;color:var(--slate);border-top:1px solid var(--rule);padding-top:10px}

/* ---- stack ---- */
.stack{display:grid;grid-template-columns:1fr 1fr;gap:0 48px}
@media(max-width:820px){.stack{grid-template-columns:1fr}}
.layer{border-top:1px solid var(--rule-dark);padding:22px 0}
.layer h3{margin:0 0 6px;font-size:18px;color:var(--brass)}
.layer p{margin:0;font-size:15px;color:rgba(231,233,228,.78)}
.layer .src{font-size:12.5px;color:rgba(231,233,228,.5);margin-top:8px}

/* ---- table ---- */
table{width:100%;border-collapse:collapse;font-size:15px}
caption{text-align:left;font-size:13px;color:var(--slate);padding-bottom:12px}
th,td{text-align:left;padding:13px 10px;border-bottom:1px solid var(--rule);vertical-align:top}
thead th{border-bottom:2px solid var(--ai);font-weight:700;font-size:13px;color:var(--ai)}
td.auto{color:var(--ai);font-weight:500}
td.human{color:var(--slate)}
.dot{font-size:15px}
.dot.full{color:var(--brass)}
.dot.part{color:var(--slate)}
.col-a{width:30%}
.col-b{width:13%}

/* ---- partner ---- */
.pgrid{display:grid;grid-template-columns:1.1fr 1fr;gap:52px}
@media(max-width:860px){.pgrid{grid-template-columns:1fr;gap:36px}}
.pnum{font-family:"Zen Old Mincho",serif;font-size:clamp(52px,8vw,84px);line-height:1;color:var(--brass)}
.pnum span{display:block;font-family:"Zen Kaku Gothic New",sans-serif;font-size:14px;letter-spacing:.02em;color:rgba(231,233,228,.7);margin-top:10px;line-height:1.6;max-width:30ch}
ul.plain{list-style:none;padding:0;margin:24px 0 0}
ul.plain li{padding:12px 0 12px 26px;border-bottom:1px solid var(--rule-dark);position:relative;font-size:15px}
ul.plain li::before{content:"●";position:absolute;left:0;top:13px;color:var(--brass);font-size:11px;line-height:1}
.layer-first{border-top-color:var(--brass)}

/* ---- pricing ---- */
.price-row{display:grid;grid-template-columns:1fr auto;gap:20px;align-items:baseline;padding:20px 0;border-bottom:1px solid var(--rule)}
.price-row:first-of-type{border-top:2px solid var(--ai)}
.price-row .who{font-family:"Zen Old Mincho",serif;font-size:19px}
.price-row .what{font-size:14px;color:var(--slate);margin-top:4px;max-width:56ch}
.price-row .amt{font-family:"Zen Old Mincho",serif;font-size:22px;white-space:nowrap}
.price-row .amt small{font-size:12px;color:var(--slate);font-family:"Zen Kaku Gothic New",sans-serif}
.pricing-cta{margin-top:34px}

/* ---- footer ---- */
footer{background:var(--kachi);color:rgba(231,233,228,.62);padding:52px 0 60px;font-size:13.5px}
footer .wrap{display:grid;grid-template-columns:1.4fr 1fr;gap:40px}
@media(max-width:760px){footer .wrap{grid-template-columns:1fr}}
footer a{color:var(--brass)}
footer .logo{margin-bottom:14px;font-size:22px}
.note{border-left:2px solid var(--brass);padding-left:16px;line-height:1.7}
.image-credits{margin-top:28px;font-size:12px;color:rgba(231,233,228,.4)}
.image-credits:empty{display:none}

/* ---- 404 ---- */
.plain-page{padding:96px 0}
.plain-page h1{font-size:clamp(26px,4vw,40px);margin:0 0 16px}
