/* 決済後の案内と特商法表記にも、承認済みの外観を適用する。 */
:root { color-scheme: light; --cream:#fbfaf7; --warm:#f2eee9; --ink:#27252b; --muted:#625b65; --mauve:#67536b; --line:#d8cfd7; }
*, *::before, *::after { box-sizing:border-box; }
body { margin:0; background:var(--cream); color:var(--ink); font-family:'Noto Sans JP',sans-serif; font-size:15px; line-height:1.9; }
header { max-width:1240px; margin:0 auto; padding:28px 32px; border-bottom:1px solid var(--line); }
.brand { display:inline-flex; flex-direction:column; align-items:flex-start; color:var(--mauve); text-decoration:none; gap:9px; }
.logo-image { display:block; position:relative; overflow:hidden; width:280px; aspect-ratio:1166/130; }
.logo-image img { position:absolute; width:164.665523%; max-width:none; height:auto; left:-33.361921%; top:-366.153846%; filter:brightness(0); }
.brand-caption { font-size:10px; font-weight:500; letter-spacing:.14em; }
a { color:var(--mauve); text-underline-offset:4px; }
a:focus-visible { outline:3px solid var(--mauve); outline-offset:5px; }
.result-page .box { width:calc(100% - 40px); max-width:600px; margin:80px auto; padding:48px; background:#fff; border:1px solid var(--line); text-align:center; }
.icon { margin:0 auto 24px; width:52px; height:52px; display:grid; place-items:center; background:var(--warm); color:var(--mauve); border-radius:50%; font-size:24px; }
h1 { font-size:clamp(22px,3vw,30px); font-weight:700; line-height:1.6; margin:0 0 20px; }
p { color:var(--muted); margin:0 0 12px; }
.box > a { display:inline-block; margin-top:24px; padding:12px 24px; background:var(--mauve); color:#fff; font-weight:600; text-decoration:none; font-size:14px; }
.box > a:hover { background:#514055; }
.legal-page main { max-width:880px; margin:56px auto 80px; padding:0 32px; }
.legal-page h1 { font-size:clamp(22px,3vw,28px); }
.rule { width:48px; height:3px; background:var(--mauve); margin:22px 0 32px; }
dl { margin:0; border-top:1px solid var(--line); }
.row { display:grid; grid-template-columns:180px minmax(0,1fr); gap:24px; padding:20px 0; border-bottom:1px solid var(--line); font-size:14px; }
dt { font-weight:600; }
dd { margin:0; color:var(--muted); overflow-wrap:anywhere; }
.back { display:inline-block; margin-top:36px; font-size:14px; }
@media(max-width:600px) {
  header { padding:22px 20px; }
  .logo-image { width:220px; }
  .result-page .box { margin:40px auto; padding:32px 22px; }
  .result-page h1 { font-size:22px; }
  .legal-page main { margin:36px auto 56px; padding:0 20px; }
  .row { grid-template-columns:1fr; gap:5px; padding:18px 0; }
}
