/* Glossary interactive enhancement — post 781 */
.gl-wrap{--gl-charcoal:#141414;--gl-crimson:#B71C1C;--gl-crimson-light:#EF5350;--gl-cream:#F7F6F3;--gl-light:#E8E6E1;--gl-mid:#888;--gl-font:'Outfit',sans-serif;--gl-serif:'Source Serif 4',serif;font-family:var(--gl-font)}
.gl-wrap *{box-sizing:border-box}

/* Toolbar */
.gl-toolbar{position:sticky;top:0;z-index:10;background:#fff;padding:16px 0 12px;border-bottom:1px solid var(--gl-light);margin:0 0 24px}
.gl-search-row{display:flex;gap:10px;align-items:center;margin:0 0 12px}
.gl-search{flex:1;padding:12px 16px 12px 40px;border:2px solid var(--gl-light);border-radius:10px;font-size:15px;font-family:var(--gl-font);outline:none;transition:border .2s;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' fill='none' stroke='%23999' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='8' cy='8' r='5.5'/%3E%3Cline x1='12' y1='12' x2='16' y2='16'/%3E%3C/svg%3E") 14px center no-repeat}
.gl-search:focus{border-color:var(--gl-crimson-light)}
.gl-search::placeholder{color:#bbb}
.gl-count{font-size:13px;color:var(--gl-mid);white-space:nowrap;font-weight:600;min-width:90px;text-align:right}

/* Alpha nav */
.gl-alpha{display:flex;flex-wrap:wrap;gap:4px}
.gl-alpha-btn{width:34px;height:34px;border:none;border-radius:8px;background:var(--gl-cream);color:var(--gl-charcoal);font-family:var(--gl-font);font-size:14px;font-weight:700;cursor:pointer;transition:all .15s;display:flex;align-items:center;justify-content:center}
.gl-alpha-btn:hover{background:var(--gl-crimson);color:#fff}
.gl-alpha-btn.gl-active{background:var(--gl-charcoal);color:#fff}
.gl-alpha-btn.gl-disabled{opacity:.3;cursor:default;pointer-events:none}

/* Letter sections */
.gl-letter-section{scroll-margin-top:140px}
.gl-letter-heading{font-family:var(--gl-font);font-size:28px;font-weight:800;color:var(--gl-charcoal);margin:32px 0 16px;padding:0 0 8px;border-bottom:3px solid var(--gl-crimson);display:inline-block}

/* Term cards */
.gl-term{border:1px solid var(--gl-light);border-radius:10px;margin:0 0 8px;overflow:hidden;transition:border-color .15s,box-shadow .15s}
.gl-term:hover{border-color:var(--gl-crimson-light);box-shadow:0 2px 8px rgba(183,28,28,.06)}
.gl-term-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;cursor:pointer;gap:12px;background:#fff;transition:background .15s}
.gl-term-header:hover{background:var(--gl-cream)}
.gl-term-name{font-family:var(--gl-font);font-size:16px;font-weight:700;color:var(--gl-charcoal);margin:0;flex:1}
.gl-term-chevron{width:20px;height:20px;transition:transform .2s;flex-shrink:0;color:var(--gl-mid)}
.gl-term.gl-open .gl-term-chevron{transform:rotate(180deg)}
.gl-term-body{padding:0 16px 16px;font-family:var(--gl-serif);font-size:16px;line-height:1.7;color:#333;display:none}
.gl-term.gl-open .gl-term-body{display:block}
.gl-term-body a{color:var(--gl-crimson);text-decoration:underline;text-underline-offset:2px}
.gl-term-body a:hover{color:var(--gl-crimson-light)}

/* Search highlight */
.gl-highlight{background:rgba(183,28,28,.12);border-radius:2px;padding:0 2px}

/* Hidden by filter */
.gl-hidden{display:none!important}

/* Expand/collapse all */
.gl-toggle-all{border:none;background:none;font-family:var(--gl-font);font-size:13px;font-weight:600;color:var(--gl-crimson);cursor:pointer;padding:4px 8px;border-radius:6px;transition:background .15s;white-space:nowrap}
.gl-toggle-all:hover{background:var(--gl-cream)}

/* No results */
.gl-no-results{text-align:center;padding:48px 24px;color:var(--gl-mid);font-size:17px;font-family:var(--gl-font)}
.gl-no-results strong{color:var(--gl-charcoal);display:block;font-size:20px;margin-bottom:8px}

/* Mobile */
@media(max-width:600px){
	.gl-toolbar{padding:12px 0 8px}
	.gl-search-row{flex-wrap:wrap}
	.gl-search{padding:10px 14px 10px 36px;font-size:14px}
	.gl-count{width:100%;text-align:left;font-size:12px}
	.gl-alpha-btn{width:28px;height:28px;font-size:12px}
	.gl-letter-heading{font-size:22px;margin:24px 0 12px}
	.gl-term-name{font-size:15px}
	.gl-term-body{font-size:15px}
}
