:root {
  --forest:#0b3734; --green:#116b57; --mint-soft:#dff4ec;
  --paper:#fff9ef; --white:#fffefb; --ink:#10201d; --muted:#5c706c; --line:#cadbd4;
}
* { box-sizing:border-box; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:Arial,"Malgun Gothic","Apple SD Gothic Neo",sans-serif; line-height:1.75; }
a { color:var(--green); }
img { display:block; max-width:100%; }

.site-head { position:sticky; top:0; z-index:20; display:flex; align-items:center; justify-content:space-between; gap:24px; min-height:72px; padding:0 clamp(18px,5vw,64px); border-bottom:1px solid var(--line); background:rgba(255,249,239,.92); backdrop-filter:blur(14px); }
.site-head img { width:142px; }
.site-head nav { display:flex; gap:8px; }
.site-head nav a { min-height:40px; display:inline-flex; align-items:center; padding:0 14px; border:1px solid var(--line); border-radius:11px; color:var(--ink); text-decoration:none; font-size:13px; font-weight:800; }

main { width:min(760px,calc(100% - 36px)); margin:0 auto; padding:40px 0 90px; }
h1 { margin:0 0 8px; font-size:clamp(26px,4vw,36px); letter-spacing:-.04em; }
.meta { margin:0 0 12px; color:var(--muted); font-size:13px; }
.notice { margin:0 0 32px; padding:15px 18px; border:1px solid #eccf9f; border-radius:13px; background:#fdf4e3; color:#7a5312; font-size:13px; line-height:1.65; }
.toc { margin:0 0 36px; padding:18px 22px; border:1px solid var(--line); border-radius:14px; background:var(--white); }
.toc b { display:block; margin-bottom:8px; font-size:13px; }
.toc ol { margin:0; padding-left:20px; font-size:13px; }
.toc li { margin-bottom:3px; }

section { margin-bottom:38px; scroll-margin-top:90px; }
h2 { margin:0 0 12px; font-size:19px; letter-spacing:-.02em; }
h3 { margin:22px 0 8px; font-size:15px; }
p, li { font-size:14px; }
p { margin:0 0 12px; }
ul, ol { margin:0 0 12px; padding-left:20px; }
li { margin-bottom:5px; }
strong { font-weight:800; }

table { width:100%; border-collapse:collapse; margin:0 0 14px; font-size:13px; }
th, td { padding:11px 12px; text-align:left; border:1px solid var(--line); vertical-align:top; }
th { background:var(--mint-soft); font-weight:800; }

.callout { padding:15px 18px; border-left:3px solid var(--green); border-radius:0 10px 10px 0; background:var(--white); font-size:13px; }
footer { padding:26px clamp(18px,5vw,64px); color:#9db8b2; background:var(--forest); font-size:12px; display:flex; flex-wrap:wrap; gap:14px; justify-content:space-between; }
footer a { color:#cfe8e1; }
:where(a,button):focus-visible { outline:3px solid #72dfc2; outline-offset:3px; }
@media (max-width:620px) { table, thead, tbody, tr, th, td { display:block; } th { border-bottom:0; } td { border-top:0; } tr { margin-bottom:12px; } }

.consent-reopen {
  min-height: 42px; padding: 0 16px; border: 1px solid var(--line); border-radius: 11px;
  color: var(--ink); background: var(--white); font: inherit; font-size: 13px; font-weight: 800; cursor: pointer;
}
.consent-reopen:hover { background: var(--mint-soft); }
