:root { --forest:#142b26; --forest-2:#24473a; --moss:#647753; --sand:#f7f5ee; --paper:#fffefa; --gold:#c9a262; --ink:#20302a; --muted:#67736d; --line:#e6e8df; --shadow:0 18px 52px rgba(17,47,35,.075); }
\*, \*::before, \*::after { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:105px; }
body { margin:0; font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif; color:var(--ink); background:var(--sand); font-size:16px; line-height:1.75; }
a { color:inherit; }
a:focus-visible, button:focus-visible { outline:3px solid #d1a75b; outline-offset:4px; }
.skip-link { position:absolute; top:-90px; left:12px; z-index:1000; padding:10px 14px; background:#fff; border-radius:8px; }
.skip-link:focus { top:10px; }
.container { width:min(1210px,calc(100% - 40px)); margin-inline:auto; }
.hero { position:relative; isolation:isolate; overflow:hidden; padding:76px 0 81px; background:radial-gradient(circle at 92% 18%,rgba(227,200,135,.17),transparent 30%),radial-gradient(circle at 4% 110%,rgba(119,151,109,.35),transparent 37%),linear-gradient(122deg,#17362e 0%,#1f4a3c 52%,#43614d 100%); color:#fff; }
.hero::after { content:""; position:absolute; inset:auto -8% -52% auto; width:56%; height:113%; border:1px solid rgba(255,255,255,.13); border-radius:48% 42% 0 0; transform:rotate(-31deg); z-index:-1; }
.eyebrow { color:#f0d5a8; font-size:11px; font-weight:800; letter-spacing:.24em; text-transform:uppercase; }
.breadcrumbs { font-size:13px; color:#d1dfd5; display:flex; gap:11px; align-items:center; flex-wrap:wrap; margin:0 0 24px; }
.breadcrumbs a { text-decoration:none; }
.breadcrumbs a:hover { text-decoration:underline; }
.hero h1 { font-family:Georgia,"Times New Roman",serif; font-size:clamp(43px,5.8vw,74px); line-height:1.09; letter-spacing:-.045em; font-weight:500; margin:13px 0 20px; }
.hero .intro { max-width:620px; font-size:clamp(16px,2vw,19px); line-height:1.75; color:#e4ece6; margin:0 0 26px; }
.hero-note { display:inline-flex; gap:9px; align-items:center; font-size:12px; color:#f2e1c4; letter-spacing:.025em; }
.hero-note::before { content:""; width:21px; height:1px; background:var(--gold); }
.terms-layout { display:grid; grid-template-columns:285px minmax(0,1fr); gap:38px; align-items:start; padding:56px 0 105px; }
.toc { position:sticky; top:28px; border:1px solid var(--line); border-radius:18px; background:var(--paper); padding:24px 20px; box-shadow:var(--shadow); }
.toc-label { font-size:11px; font-weight:850; letter-spacing:.2em; color:var(--moss); text-transform:uppercase; margin:0 0 15px 10px; }
.toc nav { display:grid; gap:2px; }
.toc a { display:block; padding:8px 10px; border-radius:9px; color:#52655a; text-decoration:none; font-size:13px; line-height:1.45; transition:background .15s,color .15s; }
.toc a:hover, .toc a.is-active { background:#e8eee5; color:#234b36; }
.toc hr { border:0; border-top:1px solid var(--line); margin:18px 9px; }
.toc .help-link { color:var(--forest); font-weight:750; }
.content-panel { background:var(--paper); border:1px solid var(--line); border-radius:23px; box-shadow:var(--shadow); padding:clamp(26px,4.4vw,58px); min-width:0; }
.reading-note { margin:0 0 35px; display:flex; gap:14px; align-items:start; padding:19px 22px; background:#eef3eb; border:1px solid #dbe5d5; border-radius:14px; font-size:14px; line-height:1.65; color:#475c4e; }
.reading-note svg { flex:0 0 21px; color:var(--moss); margin-top:2px; }
.term-section { scroll-margin-top:24px; padding:33px 0 35px; border-bottom:1px solid var(--line); }
.term-section:first-of-type { padding-top:0; }
.term-section:last-of-type { border-bottom:0; padding-bottom:0; }
.term-section .number { display:block; color:#8a967e; font-size:12px; font-weight:800; letter-spacing:.14em; margin-bottom:9px; }
.term-section h2 { margin:0 0 17px; font-family:Georgia,"Times New Roman",serif; color:var(--forest); font-size:clamp(25px,3vw,32px); font-weight:500; line-height:1.25; letter-spacing:-.02em; }
.term-section h3 { color:var(--forest-2); font-size:16px; margin:23px 0 9px; }
.term-section p { margin:0 0 16px; }
.term-section p:last-child { margin-bottom:0; }
.term-section ul { padding-left:22px; margin:0 0 18px; }
.term-section li { padding-left:2px; margin:6px 0; }
.term-section a { color:#236e50; text-underline-offset:3px; }
.term-section a:hover { color:#11442f; }
.contact-box { background:#f1f4ee; border-left:4px solid var(--moss); padding:19px 22px; border-radius:0 12px 12px 0; }
.contact-box p { margin:0 0 5px; }
.bottom-actions { display:flex; justify-content:space-between; align-items:center; gap:14px; flex-wrap:wrap; margin-top:32px; }
.back-home, .back-top { text-decoration:none; font-size:13px; font-weight:800; }
.back-home { color:#fff; background:var(--forest); border-radius:999px; padding:12px 20px; }
.back-home:hover { background:var(--forest-2); }
.back-top { color:var(--forest-2); }
@media (max-width:1110px) {
.terms-layout { grid-template-columns:245px minmax(0,1fr); gap:25px; }
}
@media (max-width:820px) {
.hero { padding:56px 0 62px; }
.terms-layout { grid-template-columns:1fr; padding:29px 0 72px; }
.toc { position:static; padding:19px 20px; }
.toc nav { grid-template-columns:repeat(2,minmax(0,1fr)); }
.toc hr, .toc .help-link { display:none; }
}
@media (max-width:560px) {
.container { width:min(100% - 28px,1210px); }
.hero { padding:38px 0 49px; }
.hero h1 { font-size:41px; }
.hero .intro { font-size:15px; }
.toc nav { grid-template-columns:1fr 1fr; }
.toc a { font-size:12px; padding:8px; }
.content-panel { border-radius:16px; padding:25px 21px; }
.reading-note { padding:14px; }
.term-section { padding:26px 0; }
}
@media (prefers-reduced-motion:reduce) {
html { scroll-behavior:auto; }
}
@media print {
.toc, .bottom-actions, .skip-link { display:none !important; }
body { background:white; color:black; font-size:11pt; }
.hero { background:white; color:black; padding:0 0 20px; }
.hero h1 { color:black; font-size:29pt; }
.hero .intro, .breadcrumbs, .hero-note { color:black; }
.terms-layout { display:block; padding:0; }
.content-panel { border:0; padding:0; box-shadow:none; }
.term-section { break-inside:avoid; }
}
/* Unified header reserves its own height; do not add another page offset. */
.terms-page .terms-layout { scroll-margin-top: 105px; }
.terms-page .hero { margin:0; }
.terms-page .hero .container { position:relative; z-index:1; }
.terms-page .term-section { scroll-margin-top:105px; }
.terms-page .content-panel { overflow-wrap:anywhere; }
@media (max-width:1100px) { .terms-page .term-section { scroll-margin-top:85px; } }
