:root { color-scheme: light; --ink:#24362f; --muted:#67746e; --accent:#28755a; --line:#dce4de; --paper:#fcfdfb; }
* { box-sizing:border-box; }
[hidden] { display:none !important; }
body { margin:0; min-height:100vh; display:flex; flex-direction:column; background:var(--paper); color:var(--ink); font:16px/1.65 system-ui,-apple-system,"Segoe UI",sans-serif; }
main { flex:1; }
a { color:var(--accent); text-underline-offset:3px; }
button,input,select,textarea { font:inherit; }
button,.button-link { border:0; border-radius:8px; background:var(--accent); color:white; padding:.65rem 1.25rem; cursor:pointer; font-weight:600; text-decoration:none; }
button:hover,.button-link:hover { background:#205d48; }
button:disabled { opacity:.5; cursor:default; }
:focus-visible { outline:3px solid #c59c47; outline-offset:3px; }
.secondary { background:#eaf0eb; color:var(--ink); }
.secondary:hover { background:#dce8df; }
.hero { min-height:56vh; padding:12vh 1.25rem 2rem; display:flex; align-items:center; flex-direction:column; justify-content:center; }
.homepage-intro { max-width:680px; margin:24px auto 0; text-align:center; line-height:1.7; }
.has-results .homepage-intro { display:none; }
.brand { display:inline-flex; align-items:center; gap:0; margin:0; font-size:clamp(2.5rem,7vw,4.5rem); font-weight:650; letter-spacing:-.055em; line-height:1.2; text-decoration:none; }
.brand a { text-decoration:none; color:var(--ink); }
.brand span:not(.beta) { color:var(--accent); }
.beta { margin-left:12px; align-self:flex-start; margin-top:7px; border:1px solid #e6cd93; border-radius:5px; background:#fff1cf; color:#805e1c; padding:4px 8px; font-size:12px; font-weight:650; letter-spacing:.02em; transform:rotate(7deg); }
.tagline { color:var(--muted); margin:1rem 0 1.8rem; }
.site-notice { width:100%; margin:0; padding:.75rem 1.25rem; border-block:1px solid #e6cd93; background:#fff5d9; color:#684e18; font-size:.9rem; line-height:1.5; text-align:center; }
.search-shell { display:flex; gap:.7rem; align-items:center; width:min(720px,100%); background:white; padding:.45rem .45rem .45rem 1.2rem; border:1px solid var(--line); border-radius:32px; box-shadow:0 4px 20px #24362f0a; }
.search-shell:focus-within { border-color:var(--accent); }
.search-shell svg { width:21px; flex-shrink:0; fill:none; stroke:var(--muted); stroke-width:1.8; }
.search-shell input { width:100%; min-width:0; border:0; background:transparent; padding:.4rem 0; outline:none; }
.search-shell button { border-radius:24px; }
.search-help { color:var(--muted); font-size:.85rem; margin-top:1.2rem; }
.search-page { max-width:1080px; padding:0 28px 60px; margin:auto; }
.has-results .hero { min-height:0; padding:28px; align-items:flex-start; max-width:1080px; margin:auto; gap:20px; }
.has-results .brand,.page-header .brand { font-size:30px; }
.has-results .tagline,.has-results .search-help { display:none; }
.filters { border-block:1px solid var(--line); padding:12px 0; }
summary { cursor:pointer; font-size:.9rem; color:var(--accent); font-weight:600; }
.filter-grid { display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:14px; margin:16px 0; }
label { display:flex; flex-direction:column; font-size:.85rem; gap:5px; font-weight:550; }
input,select,textarea { border:1px solid var(--line); border-radius:6px; padding:9px; background:white; color:var(--ink); min-width:0; width:100%; }
.speaker-field { position:relative; }
.speaker-field small { display:block; font-size:.72rem; color:var(--muted); margin-top:5px; }
.suggestions:not(:empty) { background:white; border:1px solid var(--line); border-radius:6px; max-height:260px; overflow:auto; margin-top:5px; }
.suggestions button { display:block; text-align:left; border-radius:0; background:white; color:var(--ink); font-size:.85rem; width:100%; }
.suggestions button:hover { background:#eaf0eb; }
.filter-actions { display:flex; gap:10px; margin-top:15px; }
.filter-actions button { font-size:.85rem; }
.result-meta { color:var(--muted); font-size:.85rem; margin:20px 0; }
.results { display:grid; gap:27px; max-width:760px; }
.result-provider { font-size:.78rem; color:var(--muted); margin:0 0 3px; }
.result h2 { font-size:1.2rem; line-height:1.4; font-weight:550; margin:0; }
.result h2 a { color:#245e91; text-decoration:none; }
.result h2 a:hover { text-decoration:underline; }
.result-meta-line { font-size:.83rem; color:var(--accent); margin:5px 0; }
.result-description { color:#53625b; font-size:.93rem; margin:4px 0; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:3; overflow:hidden; overflow-wrap:anywhere; }
.pagination { display:flex; gap:12px; margin-top:32px; }
footer { display:flex; justify-content:space-between; gap:20px; padding:22px 5%; border-top:1px solid var(--line); color:var(--muted); font-size:.85rem; }
footer nav { display:flex; gap:25px; flex-wrap:wrap; }
footer a { color:var(--muted); text-decoration:none; }
footer a:hover { text-decoration:underline; }
.page-header { padding:28px 5%; }
.content-page { width:min(720px,calc(100% - 40px)); margin:40px auto 70px; }
.content-page h1 { font-size:clamp(2rem,6vw,3.4rem); line-height:1.2; letter-spacing:-.04em; margin:12px 0 25px; }
.content-page h2 { font-size:1.3rem; margin-top:35px; }
.content-page p { color:#53625b; }
.content-page .lead { font-size:1.2rem; }
.eyebrow { font-size:.75rem; letter-spacing:.13em; font-weight:650; }
.button-link { display:inline-block; margin-top:20px; }
.contact-form { display:grid; gap:20px; }
.contact-form button { justify-self:start; }
.privacy { font-size:.82rem; }
.honeypot { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
.skip-link { position:absolute; top:-100px; left:10px; background:white; padding:10px; }
.skip-link:focus { top:10px; }
@media(max-width:760px) { .filter-grid { grid-template-columns:1fr 1fr; } .speaker-field { grid-column:1/-1; } }
@media(max-width:500px) {
 .hero { padding-top:9vh; min-height:55vh; } .tagline { font-size:.9rem; text-align:center; }
 .search-shell { gap:8px; padding-left:12px; } .search-shell button { padding:.65rem .9rem; }
 .search-shell svg { display:none; } .has-results .hero { padding:22px 18px; }
 .search-page { padding-inline:18px; } footer { flex-direction:column; gap:8px; padding:20px; }
 .filter-grid { gap:10px; } input,select,textarea { font-size:16px; } .brand .beta { margin-left:8px; }
}
:root { --category-border: #d5d8dc; }
.category-browser { max-width: 1100px; margin: 1.5rem auto; padding: 0 1rem; }
.category-browser > details { border: 1px solid var(--category-border); border-radius: 12px; padding: 1rem; }
.category-browser summary { cursor: pointer; font-weight: 600; padding: .4rem; }
.category-tree { max-height: 32rem; overflow: auto; }
.category-tree ul { list-style: none; margin: .4rem 0; padding-left: 1.2rem; }
.category-tree > ul { padding-left: 0; display: grid; grid-template-columns: repeat(auto-fit,minmax(240px,1fr)); gap: .75rem; }
.category-tree a { display: inline-block; padding: .35rem .4rem; }
.category-selection { display: flex; flex-wrap: wrap; align-items: center; gap: .45rem; margin-top: .8rem; }
.category-selection[hidden] { display: none; }
.category-selection button { margin-left: .5rem; }
.result-categories { list-style: none; padding: 0; margin-top: .8rem; font-size: .85rem; }
.result-categories li { margin-top: .35rem; }

.results-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; }
.results-toolbar label { display: flex; align-items: center; gap: .6rem; }
.results-toolbar select { width: auto; }
.pagination { flex-wrap: wrap; align-items: center; }
#pageStatus { white-space: nowrap; }

.speaker-input { display:flex; align-items:center; gap:.4rem; }
.speaker-input input { min-width:0; flex:1; }
#removeSpeaker { flex:none; min-width:44px; min-height:44px; padding:.4rem; font-size:1.3rem; }
