* { margin: 0; padding: 0; box-sizing: border-box; }
body { font-family: 'Noto Serif SC', 'Songti SC', serif; background: var(--paper); color: var(--ink); line-height: 1.85; font-size: 16px; }

nav { background: var(--ink); padding: 18px 48px; display: flex; align-items: center; justify-content: space-between; position: sticky; top: 0; z-index: 100; }
.nav-logo { font-family: 'Cormorant Garamond', serif; color: var(--paper); font-size: 1.1rem; letter-spacing: .12em; text-decoration: none; }
.nav-logo span { color: var(--amber-light); }
.nav-links a { color: var(--rule); text-decoration: none; font-size: .82rem; letter-spacing: .08em; margin-left: 32px; transition: color .2s; }
.nav-links a:hover, .nav-links a.active { color: var(--paper); }
.nav-links a.cta-nav { color: var(--amber-light); border: 1px solid rgba(212,145,90,.4); padding: 6px 16px; white-space: nowrap; }
.nav-links a.cta-nav:hover { background: var(--amber); border-color: var(--amber); color: var(--white); }
@media (max-width: 860px) { nav { padding: 16px 24px; flex-direction: column; align-items: flex-start; gap: 12px; } .nav-links { display: flex; flex-wrap: wrap; gap: 8px 14px; } .nav-links a { margin-left: 0; } }

.a11y-wrap { max-width: 860px; margin: 0 auto; padding: 60px 24px 90px; }
.a11y-wrap h1 { font-size: clamp(1.8rem, 4vw, 2.6rem); font-weight: 500; line-height: 1.3; margin-bottom: 10px; }
.a11y-wrap .lead { color: var(--ink-soft); margin-bottom: 30px; }
.a11y-wrap h2 { font-size: 1.2rem; color: var(--sage); font-weight: 600; margin: 36px 0 12px; }
.a11y-wrap p { margin-bottom: 14px; }
.a11y-wrap ul { margin: 0 0 14px 1.4em; }
.a11y-wrap li { margin-bottom: 8px; }
.a11y-wrap a { color: var(--amber); text-decoration: underline; }
.a11y-wrap code { background: var(--paper-warm); padding: 1px 6px; font-size: 0.88em; }
.a11y-contact { background: var(--paper-warm); border-left: 3px solid var(--amber); padding: 18px 20px; margin-top: 24px; }
.a11y-contact p { margin-bottom: 10px; }
.a11y-contact p:last-child { margin-bottom: 0; }

.a11y-foot { background: var(--ink); color: var(--rule); text-align: center; padding: 28px 24px; font-size: .8rem; }
.a11y-foot a { text-decoration: none; }

.back-to-top { position: fixed; right: 22px; bottom: 22px; z-index: 200; padding: 9px 14px; background: rgba(26,22,20,.88); color: var(--paper); text-decoration: none; border: 1px solid rgba(200,187,168,.45); font-size: .76rem; letter-spacing: .08em; }
.back-to-top:hover { background: var(--amber); color: var(--white); }
@media (max-width: 640px) { .back-to-top { right: 14px; bottom: 14px; padding: 8px 11px; font-size: .7rem; } }
