:root { color-scheme: light; --ink:#28201d; --muted:#655a55; --paper:#fffdf9; --soft:#f5efe7; --line:#ded4c9; --accent:#a94f3b; --accent-dark:#783224; --max:1080px; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP",sans-serif; line-height:1.8; }
a { color:var(--accent-dark); } a:hover { color:var(--accent); }
.wrap { width:min(calc(100% - 40px),var(--max)); margin-inline:auto; }
.narrow { max-width:820px; }
.site-header { position:sticky; top:0; z-index:10; background:rgba(255,253,249,.94); border-bottom:1px solid var(--line); backdrop-filter:blur(12px); }
.header-inner,.footer-inner { display:flex; align-items:center; justify-content:space-between; gap:24px; min-height:72px; }
.brand { color:var(--ink); font-weight:750; letter-spacing:.02em; text-decoration:none; }
nav { display:flex; gap:22px; } nav a { color:var(--muted); font-size:.92rem; text-decoration:none; }
.hero,.page-hero { padding:110px 0 92px; background:radial-gradient(circle at 84% 10%,#f2d9cd 0,transparent 34%),linear-gradient(150deg,#fffdf9 0%,#f6eee6 100%); border-bottom:1px solid var(--line); }
.page-hero { padding-block:84px 68px; }
h1,h2,h3 { line-height:1.35; } h1 { margin:10px 0 26px; font-size:clamp(2.25rem,6vw,4.35rem); letter-spacing:-.035em; } h2 { margin:8px 0 28px; font-size:clamp(1.7rem,4vw,2.65rem); letter-spacing:-.02em; } h3 { margin-top:0; font-size:1.15rem; } p { margin:0 0 1em; }
.lead { color:var(--muted); font-size:clamp(1.05rem,2vw,1.2rem); } .eyebrow { color:var(--accent); font-size:.78rem; font-weight:800; letter-spacing:.16em; } .updated { color:var(--muted); font-size:.9rem; }
.hero-links { display:flex; align-items:center; flex-wrap:wrap; gap:20px; margin-top:34px; }
.button { display:inline-block; padding:12px 20px; color:#fff; background:var(--accent-dark); border-radius:999px; font-weight:700; text-decoration:none; } .button:hover { color:#fff; background:var(--accent); } .text-link { font-weight:700; text-underline-offset:4px; }
.section { padding:84px 0; } .section-muted { background:var(--soft); border-block:1px solid var(--line); }
.card-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.card { padding:28px; background:#fff; border:1px solid var(--line); border-radius:18px; box-shadow:0 14px 36px rgba(53,35,28,.06); }
.card p,.policy-list p,.policy-articles p,.policy-articles li { color:var(--muted); }
.split { display:grid; grid-template-columns:.8fr 1.2fr; gap:72px; }
.policy-list section + section { padding-top:22px; border-top:1px solid var(--line); } .policy-list h3 { margin-bottom:8px; }
.callout { display:flex; align-items:center; justify-content:space-between; gap:44px; padding:42px; background:#fff; border:1px solid var(--line); border-radius:22px; } .callout > div { max-width:720px; }
.policy-articles { max-width:860px; } .policy-articles article { padding:32px 0; border-bottom:1px solid var(--line); } .policy-articles article:first-child { padding-top:0; } .policy-articles h2 { margin-bottom:16px; font-size:clamp(1.45rem,3vw,1.9rem); } .policy-articles h3 { margin:24px 0 6px; } .policy-articles li + li { margin-top:8px; }
footer { border-top:1px solid var(--line); background:#2e2521; color:#f8f1ea; } footer a { color:#f8f1ea; } .footer-inner { min-height:96px; flex-wrap:wrap; } .footer-inner p { margin:0; font-size:.88rem; }
@media (max-width:760px) { .header-inner { align-items:flex-start; flex-direction:column; justify-content:center; padding-block:14px; } nav { flex-wrap:wrap; gap:10px 18px; } .hero { padding-block:76px 64px; } .page-hero { padding-block:60px 48px; } .section { padding-block:60px; } .card-grid,.split { grid-template-columns:1fr; gap:24px; } .callout { align-items:flex-start; flex-direction:column; padding:28px; } .footer-inner { align-items:flex-start; flex-direction:column; justify-content:center; gap:4px; padding-block:24px; } }
