:root{
  --paper:#F4F0E9;--paper-2:#EBE4D8;--ink:#1B1712;--ink-soft:#4B4339;--muted:#8A8071;
  --line:#DED6C7;--line-strong:#C7BCA7;--accent:#8A6C38;--accent-soft:#B8965C;--accent-wash:#EFE7D6;
  --card:#FBF8F2;--maxw:1140px;
  --f-disp:"Didot","Bodoni MT","Bodoni 72","Playfair Display","Hoefler Text",Georgia,serif;
  --f-body:Georgia,"Times New Roman",serif;
  --f-sans:"Helvetica Neue",Helvetica,Arial,"Segoe UI",system-ui,sans-serif;
  --f-mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;
}
@media (prefers-color-scheme:dark){
  :root{--paper:#141210;--paper-2:#1D1915;--ink:#EFE9DC;--ink-soft:#C8C0AF;--muted:#A19A8C;
    --line:#2A2620;--line-strong:#3B352C;--accent:#C9A968;--accent-soft:#D8C08A;--accent-wash:#221D15;--card:#1C1915;}
}
:root[lang="ja"]{
  --f-disp:"Yu Mincho","YuMincho","Hiragino Mincho ProN","Hiragino Mincho Pro","Noto Serif JP",serif;
  --f-body:"Yu Gothic","YuGothic","Hiragino Sans","Hiragino Kaku Gothic ProN","Noto Sans JP","Meiryo",sans-serif;
  --f-sans:"Yu Gothic","YuGothic","Hiragino Sans","Hiragino Kaku Gothic ProN","Noto Sans JP","Meiryo",sans-serif;
}
*{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(--ink);font-family:var(--f-body);font-size:17px;line-height:1.7;-webkit-font-smoothing:antialiased;}
:root[lang="ja"] body{font-size:16.5px;line-height:1.95;}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 32px;}
a{color:inherit;}
.eyebrow{font-family:var(--f-sans);font-size:11.5px;letter-spacing:.3em;text-transform:uppercase;color:var(--accent);margin:0 0 26px;font-weight:600;}
.rule-eyebrow{display:inline-flex;align-items:center;gap:14px;}
.rule-eyebrow::before,.rule-eyebrow::after{content:"";width:34px;height:1px;background:var(--accent-soft);}
h1,h2,h3,.disp{font-family:var(--f-disp);font-weight:400;letter-spacing:.005em;}
h2{font-size:clamp(30px,4.4vw,50px);line-height:1.12;margin:0;text-wrap:balance;}

header.bar{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--paper) 90%,transparent);backdrop-filter:saturate(140%) blur(9px);border-bottom:1px solid var(--line);}
.bar .wrap{display:flex;align-items:center;justify-content:space-between;height:70px;gap:16px;}
.brand{display:flex;align-items:center;gap:13px;text-decoration:none;}
.brand .mono{width:34px;height:34px;border:1px solid var(--accent);border-radius:50%;display:grid;place-items:center;font-family:var(--f-disp);font-size:15px;color:var(--accent);}
.brand .nm{font-family:var(--f-disp);font-size:19px;letter-spacing:.02em;}
.brand .nm small{font-family:var(--f-sans);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);display:block;margin-top:1px;}
nav.links{display:flex;gap:26px;font-family:var(--f-sans);font-size:13px;font-weight:500;letter-spacing:.04em;}
nav.links a{text-decoration:none;color:var(--ink-soft);}
nav.links a:hover{color:var(--accent);}
.nav-cta{font-family:var(--f-sans);font-weight:600;font-size:12.5px;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;border:1px solid var(--ink);border-radius:999px;padding:10px 20px;color:var(--ink);transition:.25s;white-space:nowrap;}
.nav-cta:hover{background:var(--accent);border-color:var(--accent);color:#fff;}
@media(max-width:960px){nav.links{display:none;}}

.hero{padding:110px 0 90px;text-align:center;border-bottom:1px solid var(--line);}
.hero .kicker{font-family:var(--f-sans);font-size:12px;letter-spacing:.3em;text-transform:uppercase;color:var(--accent);font-weight:600;margin:0 0 30px;}
.hero h1{font-size:clamp(44px,8vw,96px);line-height:1.04;margin:0 auto;max-width:16ch;font-weight:400;}
:root[lang="ja"] .hero h1{font-size:clamp(34px,6vw,68px);max-width:none;line-height:1.3;}
.hero h1 em{font-style:italic;color:var(--accent);}
.hero .lede{font-size:20px;color:var(--ink-soft);max-width:56ch;margin:34px auto 0;}
.cta-row{display:flex;gap:16px;justify-content:center;margin-top:44px;flex-wrap:wrap;}
.btn{font-family:var(--f-sans);font-weight:600;font-size:13px;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;border-radius:999px;padding:15px 30px;display:inline-block;border:1px solid var(--ink);transition:.25s;}
.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff;}
.btn.primary:hover{background:var(--ink);border-color:var(--ink);}
.btn.ghost{background:transparent;color:var(--ink);}
.btn.ghost:hover{background:var(--ink);color:var(--paper);}

section.blk{padding:90px 0;border-bottom:1px solid var(--line);}
.sec-head{max-width:760px;margin:0 0 56px;}
.sec-head .lead{margin:22px 0 0;color:var(--ink-soft);font-size:19px;}

.about-grid p{margin:0 0 20px;font-size:18px;max-width:72ch;}
.about-grid p:last-child{margin-bottom:0;}

.svc{display:grid;grid-template-columns:repeat(3,1fr);gap:34px;}
.scard{border-top:2px solid var(--accent);padding-top:26px;}
.scard .num{font-family:var(--f-disp);font-style:italic;font-size:22px;color:var(--accent);}
.scard h3{font-size:25px;margin:12px 0 14px;line-height:1.2;}
.scard p{margin:0 0 20px;font-size:16px;color:var(--ink-soft);}
.scard ul{margin:0;padding:0;list-style:none;font-family:var(--f-sans);font-size:13.5px;}
.scard li{padding:9px 0;border-top:1px solid var(--line);color:var(--ink-soft);display:flex;gap:10px;}
.scard li::before{content:"—";color:var(--accent);}
@media(max-width:820px){.svc{grid-template-columns:1fr;gap:40px;}}

.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:30px;}
.step .no{font-family:var(--f-disp);font-size:30px;color:var(--accent);line-height:1;padding-bottom:16px;border-bottom:1px solid var(--line-strong);margin-bottom:18px;}
.step h3{font-family:var(--f-sans);font-size:16px;font-weight:700;letter-spacing:.02em;margin:0 0 10px;}
.step p{margin:0;font-size:15px;color:var(--ink-soft);}
@media(max-width:820px){.steps{grid-template-columns:1fr 1fr;gap:36px;}}
@media(max-width:520px){.steps{grid-template-columns:1fr;}}

.rate{font-family:var(--f-mono);font-size:12px;color:var(--muted);margin:0 0 30px;letter-spacing:.02em;}
.ptbl-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:3px;background:var(--card);}
.ptable{width:100%;border-collapse:collapse;font-size:15.5px;min-width:560px;}
.ptable th,.ptable td{text-align:left;padding:22px 20px;border-bottom:1px solid var(--line);vertical-align:top;}
.ptable thead th{font-family:var(--f-sans);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-weight:600;}
.ptable tbody tr:last-child td{border-bottom:none;}
.ptable .svcname{font-family:var(--f-disp);font-size:20px;}
.ptable .svcname small{display:block;font-family:var(--f-sans);font-size:12.5px;color:var(--muted);margin-top:6px;}
.ptable .price{font-family:var(--f-disp);font-size:21px;white-space:nowrap;}
.ptable .price small{display:block;font-family:var(--f-mono);font-size:12px;color:var(--muted);margin-top:4px;}
.ptable td:first-child,.ptable th:first-child{padding-left:26px;}

dl.profile{display:grid;grid-template-columns:repeat(2,1fr);border:1px solid var(--line);border-radius:3px;overflow:hidden;background:var(--card);margin:0;}
.prow{display:grid;grid-template-columns:170px 1fr;border-bottom:1px solid var(--line);border-right:1px solid var(--line);}
.profile .prow:nth-child(2n){border-right:none;}
.prow dt{font-family:var(--f-sans);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding:20px;border-right:1px solid var(--line);}
.prow dd{margin:0;padding:20px;font-size:15.5px;overflow-wrap:anywhere;}
@media(max-width:760px){dl.profile{grid-template-columns:1fr;}.prow{border-right:none;}}

.contact-inner{text-align:center;max-width:720px;margin:0 auto;}
.contact-inner h2{font-size:clamp(34px,5.4vw,60px);}
.contact-inner .lede{font-size:20px;color:var(--ink-soft);margin:26px auto 0;max-width:46ch;}
.cline{display:flex;justify-content:center;gap:40px;flex-wrap:wrap;margin-top:40px;font-family:var(--f-sans);font-size:13px;letter-spacing:.04em;color:var(--ink-soft);}
.cline .k{color:var(--muted);text-transform:uppercase;letter-spacing:.14em;font-size:11px;display:block;margin-bottom:6px;}
.cline b{font-weight:600;}

footer.foot{padding:48px 0 64px;}
.foot .wrap{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;align-items:flex-start;font-family:var(--f-sans);font-size:12.5px;letter-spacing:.03em;color:var(--muted);line-height:1.8;}
.foot .fbrand{font-family:var(--f-disp);font-size:17px;color:var(--ink);letter-spacing:.02em;}
.foot a{color:var(--muted);text-decoration:none;}
.foot a:hover{color:var(--accent);text-decoration:underline;}

/* legal pages */
.legal{padding:70px 0 90px;}
.legal .wrap{max-width:820px;}
.legal h1{font-size:clamp(36px,6vw,56px);line-height:1.1;margin:0 0 10px;}
.legal .upd{font-family:var(--f-sans);font-size:12.5px;color:var(--muted);margin:0 0 40px;letter-spacing:.04em;}
.legal h2{font-size:26px;margin:38px 0 12px;}
.legal p,.legal li{font-size:17px;color:var(--ink-soft);}
.legal ul{padding-left:22px;}
.legal li{margin:6px 0;}
.legal .box{background:var(--card);border:1px solid var(--line);border-radius:3px;padding:20px 24px;margin:0 0 10px;}
.legal .box p{margin:4px 0;color:var(--ink);}

a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:3px;}
