:root { --brand:#FF7800; --accent:#03646A; --text:#292829; --muted:#64748b; }
* { box-sizing: border-box; }
html, body { margin:0; padding:0; }
body { font-family:"DM Sans", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif; color:var(--text); background:#fff; }
a { color:inherit; text-decoration:none; }
img { max-width:100%; height:auto; display:block; }

.container { max-width:1120px; margin:0 auto; padding:0 24px; }
.page-hero { padding:7rem 0 3rem; text-align:center; }
.hero-title { font-size:2.25rem; font-weight:700; margin:0 0 1rem; }
.lead { color:#444; margin:0 0 1rem; }
.partner-logos { display:flex; flex-wrap:wrap; gap:24px; justify-content:center; align-items:center; margin:2rem 0 0; }
.logo { height:72px; max-width:180px; object-fit:contain; }

.section { padding:3rem 0; }
.section-alt { background:#F1F5F9; }
.section-title { font-size:1.5rem; font-weight:800; text-align:center; margin:0 0 1rem; }
.center { text-align:center; max-width:720px; margin:0 auto; }
.link { color:var(--accent); font-weight:600; text-decoration:underline; }
.btn { display:inline-block; padding:.65rem 1rem; border-radius:8px; font-weight:600; margin:.25rem; }
.btn-primary { background:var(--brand); color:#fff; }
.btn-secondary { background:#fff; color:var(--accent); border:2px solid var(--accent); }
.muted { color:var(--muted); text-align:center; margin:0 0 1rem; }
.calendar-fallback { text-align:center; margin-top:1rem; color:var(--muted); }
.visually-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); border:0; }

.filters { display:flex; flex-wrap:wrap; gap:.75rem; justify-content:center; align-items:center; margin:1rem 0 1.5rem; }
.filters input[type="search"],
.filters select,
.filters input[type="date"] { padding:.55rem .7rem; border:1px solid #ccd2d9; border-radius:8px; min-width:160px; font:inherit; }
#reset { padding:.55rem .9rem; border:1px solid #ccd2d9; background:#fff; border-radius:8px; cursor:pointer; }
#load-more { display:block; margin:1rem auto 0; }

.event-list { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:1rem; }
.event-card { border:1px solid #e5e8ec; border-radius:14px; padding:1rem; background:#fff; }
.event-title { font-weight:700; margin:0 0 .25rem; font-size:1.05rem; line-height:1.35; }
.event-title a { text-decoration:underline; color:var(--text); }
.event-meta { font-size:.9rem; color:var(--muted); margin:0 0 .5rem; }
.event-tags { display:flex; gap:.35rem; flex-wrap:wrap; margin:.5rem 0 0; }
.tag { font-size:.75rem; border:1px solid #e5e8ec; border-radius:999px; padding:.15rem .5rem; color:var(--accent); background:#fff; }
