/* Glossary hub and term pages. Loads after site-pages.css and uses its tokens. */

.crumbs { display:flex; justify-content:center; flex-wrap:wrap; gap:8px; font-size:13.5px; color:var(--muted); margin:0 0 22px; }
.crumbs a { color:var(--brand); }
.crumbs a:hover { text-decoration:underline; text-underline-offset:3px; }
.crumbs span[aria-hidden] { color:var(--ink-soft); }

/* Hub */
.g-tools { display:flex; flex-direction:column; align-items:center; gap:18px; margin-top:34px; }
.g-search { width:min(520px,100%); border:1px solid var(--line); border-radius:999px; padding:13px 20px; background:var(--card); color:var(--ink); font:15px "Inter",sans-serif; outline:none; transition:border-color .2s,box-shadow .2s; }
.g-search:focus { border-color:var(--brand); box-shadow:0 0 0 4px rgba(58,45,107,.11); }
.g-chips { display:flex; flex-wrap:wrap; justify-content:center; gap:8px; }
.g-chips a { font-size:13.5px; padding:7px 14px; border-radius:999px; background:var(--paper-warm); color:var(--muted); transition:.2s; }
.g-chips a:hover { background:var(--soft-2); color:var(--brand); }
.g-az { display:flex; flex-wrap:wrap; justify-content:center; gap:4px; margin-top:4px; }
.g-az a,.g-az span { font:500 12px "JetBrains Mono",monospace; width:28px; height:28px; display:grid; place-items:center; border-radius:8px; }
.g-az a { color:var(--brand); }
.g-az a:hover { background:var(--soft-2); }
.g-az span { color:var(--line); }
.g-cat { padding:56px 0 8px; scroll-margin-top:90px; }
.g-cat + .g-cat { border-top:1px solid var(--line-soft); }
.g-cat-head { display:grid; grid-template-columns:minmax(220px,.5fr) 1.5fr; gap:40px; align-items:start; }
.g-cat-head h2 { font:400 clamp(30px,3.4vw,42px)/1.08 "EB Garamond",Georgia,serif; letter-spacing:-.02em; margin:0; }
.g-cat-head p { color:var(--muted); font-size:15px; margin:12px 0 0; }
.g-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:14px; }
.g-card { display:block; background:var(--card); border:1px solid var(--line-soft); border-radius:18px; padding:20px 22px; transition:transform .35s var(--ease),box-shadow .35s var(--ease); scroll-margin-top:90px; }
.g-card:hover { transform:translateY(-4px); box-shadow:0 24px 50px -30px rgba(30,26,46,.4); }
.g-card h3 { font:400 23px/1.2 "EB Garamond",Georgia,serif; margin:0 0 6px; }
.g-card p { color:var(--muted); font-size:14px; margin:0; }
.g-empty { display:none; text-align:center; color:var(--muted); padding:40px 0; }

/* Term page */
.t-hero { padding:150px 0 0; text-align:center; }
.t-hero h1 { font:400 clamp(40px,5vw,68px)/1.04 "EB Garamond",Georgia,serif; letter-spacing:-.02em; max-width:22ch; margin:18px auto 0; }
.t-meta { display:flex; justify-content:center; flex-wrap:wrap; gap:6px 16px; color:var(--muted); font-size:13.5px; margin-top:20px; }
.t-meta a { color:var(--brand); }
.t-layout { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:64px; align-items:start; padding:72px 32px 40px; }
.t-def { background:var(--soft-3); border:1px solid var(--soft-2); border-radius:22px; padding:28px 30px; margin:0 0 44px; }
.t-def .eyebrow { color:var(--cited); }
.t-body .t-def p { font:400 24px/1.38 "EB Garamond",Georgia,serif; color:var(--ink); margin:12px 0 0; }
.t-body { max-width:720px; }
.t-body h2 { font:400 clamp(28px,3vw,36px)/1.14 "EB Garamond",Georgia,serif; letter-spacing:-.01em; margin:48px 0 14px; scroll-margin-top:90px; }
.t-body h3 { font:400 24px/1.2 "EB Garamond",Georgia,serif; margin:28px 0 8px; }
.t-body p,.t-body li { color:var(--muted); font-size:16.5px; line-height:1.7; }
.t-body p { margin:0 0 16px; }
.t-body ul,.t-body ol { padding-left:22px; margin:0 0 18px; }
.t-body li { margin:0 0 6px; }
.t-body code { font:13.5px "JetBrains Mono",monospace; color:var(--ink); background:var(--paper-warm); padding:1px 5px; border-radius:5px; overflow-wrap:anywhere; }
.t-body strong { color:var(--ink); font-weight:600; }
.t-body a { color:var(--brand); text-decoration:underline; text-decoration-color:var(--soft); text-underline-offset:3px; transition:text-decoration-color .2s; }
.t-body a:hover { text-decoration-color:var(--brand); }
.t-body table { width:100%; border-collapse:collapse; margin:8px 0 24px; font-size:14.5px; background:var(--card); border:1px solid var(--line-soft); border-radius:14px; overflow:hidden; }
.t-body th,.t-body td { padding:12px 14px; text-align:left; vertical-align:top; border-bottom:1px solid var(--line-soft); }
.t-body th { color:var(--ink); font-weight:600; background:var(--paper-warm); }
.t-body td { color:var(--muted); }
.t-body tr:last-child td { border-bottom:0; }
.t-faq { margin-top:8px; }
.t-faq h3 { font:400 23px/1.25 "EB Garamond",Georgia,serif; color:var(--ink); margin:26px 0 8px; }
.t-sources ol { padding-left:20px; }
.t-sources li { font-size:14.5px; }
.t-aside { position:sticky; top:96px; display:grid; gap:16px; }
.t-box { background:var(--card); border:1px solid var(--line-soft); border-radius:18px; padding:20px 22px; }
.t-box h2 { font:500 10.5px "JetBrains Mono",monospace; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); margin:0 0 12px; }
.t-box nav { display:flex; flex-direction:column; gap:2px; }
.t-box nav a { font-size:14px; color:var(--ink); padding:5px 0; opacity:.78; }
.t-box nav a:hover { opacity:1; color:var(--brand); }
.t-cta { background:var(--brand-deep); color:#fff; border-radius:18px; padding:24px 22px; }
.t-cta h2 { font:400 25px/1.15 "EB Garamond",Georgia,serif; margin:0 0 10px; }
.t-cta p { color:rgba(255,255,255,.68); font-size:14px; margin:0 0 18px; }
.t-related { padding:40px 0 104px; }
.t-related h2 { font:400 clamp(28px,3vw,36px)/1.14 "EB Garamond",Georgia,serif; letter-spacing:-.01em; margin:0 0 22px; }
.t-related .g-grid { grid-template-columns:repeat(3,1fr); }

@media (max-width:900px) {
  .g-cat-head { grid-template-columns:1fr; gap:22px; }
  .t-hero { padding-top:128px; }
  .t-layout { grid-template-columns:minmax(0,1fr); gap:36px; padding:48px 20px 24px; }
  .t-aside { position:static; }
  .t-related .g-grid { grid-template-columns:1fr 1fr; }
}
@media (max-width:560px) {
  .g-grid,.t-related .g-grid { grid-template-columns:1fr; }
  .t-def { padding:22px 20px; }
  .t-body .t-def p { font-size:21px; }
  .t-body table { display:block; overflow-x:auto; }
}
