:root {
  --blue-50:#EBF1FF; --blue-100:#D9E5FF; --blue-200:#B3CAFF; --blue-300:#80A6FF;
  --blue-400:#4D7DFF; --blue-500:#1A5BFF; --blue-600:#004BFF; --blue-700:#003ACC;
  --blue-800:#002C9E; --blue-900:#001F70; --brand:var(--blue-600);

  --ink-900:#0B1221; --ink-800:#16203A; --ink-700:#2E3950; --ink-600:#4A5571;
  --ink-500:#6B7591; --ink-400:#949DB5; --ink-300:#BAC2D4;

  --white:#FFFFFF; --surface:#FFFFFF; --surface-2:#F4F7FC; --bg:#F7F9FD;
  --bg-deep:#EEF2F9; --line:#E5EAF2; --line-strong:#D2DAE8;

  --navy-900:#060B1A; --navy-800:#0B1430; --navy-700:#122050;

  --success:#11875A; --success-surface:#E7F6EF; --success-border:#B8E3CE;
  --warning:#B7791F; --warning-surface:#FCF3E2; --warning-border:#F0D9A8;
  --danger:#D22D2D; --danger-surface:#FCECEC; --danger-border:#F3C6C6;
  --info:var(--blue-600); --info-surface:var(--blue-50); --info-border:var(--blue-200);

  --deck-bg:#F0F4F9; --lilac:#E7E5F8; --lilac-soft:#F0EFFB;
  --periwinkle:#D9E1F8; --periwinkle-soft:#E9EEFB; --tile:#FFFFFF;

  --tracking-tight:-0.02em; --tracking-snug:-0.01em; --tracking-wide:0.06em;

  --radius-xs:4px; --radius-sm:6px; --radius-md:10px; --radius-lg:14px;
  --radius-xl:20px; --radius-2xl:28px; --radius-pill:999px;

  --shadow-xs:0 1px 2px rgba(11,18,33,0.06);
  --shadow-sm:0 1px 3px rgba(11,18,33,0.08),0 1px 2px rgba(11,18,33,0.04);
  --shadow-md:0 6px 16px rgba(11,18,33,0.08),0 2px 6px rgba(11,18,33,0.05);
  --shadow-lg:0 16px 40px rgba(11,18,33,0.12),0 4px 12px rgba(11,18,33,0.06);
  --shadow-blue:0 8px 24px rgba(0,75,255,0.24);
  --ring:0 0 0 3px rgba(0,75,255,0.18);
}
.section-welcome {background: none;}
.posts {gap: 20px 0; margin-top: 72px;}
/* Events cards */
.ev-card{display:flex; flex-direction:column; background:var(--white, #fff); border:1px solid var(--line, #dfe1e5);
  border-radius:var(--radius-lg, 16px); overflow:hidden; box-shadow:var(--shadow-sm, 0 2px 10px rgba(18,19,24,.06));
  transition:box-shadow .18s,transform .18s; height:100%;}
.ev-card:hover{box-shadow:var(--shadow-md, 0 8px 24px rgba(18,19,24,.12)); transform:translateY(-3px);}
.ev-banner{position:relative; overflow:hidden; padding:18px 20px 20px; min-height:118px;
  display:flex; flex-direction:column; justify-content:space-between;}
.ev-banner .dots{position:absolute; inset:0; opacity:.45; z-index:1;
  background-image:radial-gradient(rgba(11,18,33,0.10) 1px, transparent 1px); background-size:16px 16px;}
.ev-banner.has-image{background-size:cover; background-position:center; background-repeat:no-repeat;}
.ev-banner.has-image::after{content:""; position:absolute; inset:0; z-index:1;
  background:linear-gradient(180deg, rgba(11,18,33,.08), rgba(11,18,33,.28));}
.banner-purple{background:linear-gradient(140deg, var(--lilac, #f0e6ff), var(--lilac-soft, #f7f0ff));}
.banner-blue{background:linear-gradient(140deg, var(--blue-100, #dbe4ff), var(--blue-50, #f1f4fe));}
.banner-green{background:linear-gradient(140deg, #c3edd8, #e7f8ef);}
.banner-teal{background:linear-gradient(140deg, #b8e8e8, #e0f5f5);}
.ev-banner .top{position:relative; z-index:2; display:flex; align-items:center; justify-content:space-between; gap:8px;}
.ev-pill{display:inline-flex; align-items:center; gap:6px; font-size:11.5px; font-weight:700;
  text-transform:uppercase; letter-spacing:.04em; color:var(--blue-700, #1450ff);
  background:rgba(255,255,255,0.82); padding:5px 11px; border-radius:var(--radius-pill, 999px);}
.ev-format{display:inline-flex; align-items:center; gap:6px; font-size:12px; font-weight:600; color:var(--ink-600, #5b6070); background:rgba(255,255,255,0.72); backdrop-filter:blur(4px); padding:4px 10px; border-radius:var(--radius-pill, 999px); border:1px solid rgba(255,255,255,0.5);}
.ev-format .zico svg{width:13px; height:13px;}
.ev-format--virtual{color:#2563EB; background:rgba(235,241,255,0.88); border-color:rgba(147,181,255,0.6);}
.ev-format--virtual .zico svg{color:#2563EB;}
.ev-format--in-person{color:#0f7a50; background:rgba(231,246,239,0.88); border-color:rgba(131,205,171,0.6);}
.ev-format--in-person .zico svg{color:#0f7a50;}
.ev-format--hybrid{color:#B45309; background:rgba(252,243,226,0.88); border-color:rgba(240,217,168,0.7);}
.ev-format--hybrid .zico svg{color:#B45309;}
.ev-date{position:relative; font-weight:600; font-size:15px;
  letter-spacing:.01em; color:var(--ink-900, #121318); text-transform:uppercase;
  display:flex; flex-direction:column; gap:2px;}
.ev-banner.has-image .ev-date{z-index:2; color:#fff; text-shadow:0 1px 2px rgba(11,18,33,.45);}
.ev-body{padding:20px 20px 16px; flex:1;display:flex; flex-direction:column;justify-content:space-between;}
.ev-title{font-weight:700; font-size:20px; color:var(--ink-900, #121318);
  letter-spacing:var(--tracking-snug, -.02em); line-height:1.22; margin:0 0 12px;}
.ev-meta{display:flex; flex-direction:column; gap:7px; margin-bottom:13px;}
.ev-meta .ev-row{display:flex; align-items:center; gap:8px; font-size:13px; color:var(--ink-600, #5b6070);}
.ev-meta .zico svg{width:15px; height:15px; color:var(--blue-600, #1450ff); flex:none;}
.ev-desc{
  font-size:13.5px;
  line-height:1.55;
  color:var(--ink-600, #5b6070);
  margin:0;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.ev-foot{display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:14px 20px; border-top:1px solid var(--line, #dfe1e5); background:var(--white, #fff);}
.ev-cta{display:inline-flex; align-items:center; gap:7px; font-size:14px; font-weight:600;
  color:#fff; background:var(--blue-600, #1450ff); 
  border-radius:var(--radius-md, 12px); padding:10px 18px; transition:background .15s,box-shadow .15s,transform .12s;
  text-decoration:none;}
.ev-cta:hover{background:var(--blue-700, #043DE1); color:#fff;}
.ev-cta:active{background:var(--blue-800, #0031C0);}
.ev-cta .zico svg{width:15px; height:15px; transition:transform .15s;}
.ev-cta:hover .zico svg{transform:translateX(3px);}
/* Make button-variant .ev-cta look identical to the anchor variant */
button.ev-cta{border:none; cursor:pointer;}
.ev-hs-modal{--bs-modal-zindex:1080;}

/* Past treatment: calmer cards */
.section-past .ev-card{box-shadow:var(--shadow-xs, 0 1px 6px rgba(18,19,24,.08));}
.section-past .ev-pill{color:var(--ink-600, #5b6070);}

/* =====================================================================
   CONTROLS BAR
   ===================================================================== */
.controls{position:relative; z-index:14; background:rgba(247,249,253,0.9);
  backdrop-filter:blur(8px); border-bottom:1px solid var(--line, #dfe1e5); border-top: 1px solid var(--line); padding:16px 0;}
.controls.is-fixed{position:fixed; top:64px; left:0; right:0; width:100%;}
.controls-placeholder{display:none;}
.controls.is-fixed ~ .controls-placeholder,
.controls-placeholder.is-active{display:block;}
.controls-inner{display:flex;align-items:center; gap:12px 16px; flex-wrap:wrap;}
.seg{display:inline-flex; background:var(--surface-2, #f4f5f8); border:1px solid var(--line, #dfe1e5);
  border-radius:var(--radius-pill, 999px);}
.seg button{border:none; background:transparent; cursor:pointer;
  font-weight:600; font-size:14px; color:var(--ink-600, #5b6070); padding:8px 10px; border-radius:var(--radius-pill, 999px);
  transition:background .15s,color .15s;}
.seg button.on{background:var(--blue-600, #1450ff); color:#fff; box-shadow:var(--shadow-sm, 0 2px 10px rgba(18,19,24,.06));}
.chips{display:flex; gap:8px; flex:1; flex-wrap:wrap;}
.chip{border:1px solid var(--line-strong, #cdd1d9); background:var(--white, #fff); cursor:pointer;
  font-weight:500; font-size:13.5px; color:var(--ink-700, #444a5a);
  padding:8px 15px; border-radius:var(--radius-pill, 999px); transition:all .15s;}
.chip:hover{border-color:var(--blue-300, #88a7ff); color:var(--blue-700, #1450ff);}
.chip.on{background:var(--blue-50, #f1f4fe); border-color:var(--blue-300, #88a7ff); color:var(--blue-700, #1450ff); font-weight:600;}
.subscribe-mini{display:inline-flex; align-items:center; gap:7px; font-size:13.5px; font-weight:600; color:var(--blue-600, #1450ff); text-decoration:none;}
.subscribe-mini .zico svg{width:16px; height:16px;}
/* AJAX loading state */
.row.posts.events-loading{opacity:.45; pointer-events:none; transition:opacity .2s;}

/* Filter dropdowns */
.filter-dropdown{position:relative;}
.dropdown-trigger{display:inline-flex; align-items:center; gap:8px; padding:8px 14px; background:var(--white, #fff); border:1px solid var(--line-strong, #cdd1d9); border-radius:var(--radius-pill, 999px); font-size:14px; font-weight:600; color:var(--ink-700, #444a5a); cursor:pointer; transition:border-color .15s,background .15s; white-space:nowrap;}
.dropdown-trigger:hover{border-color:var(--blue-300, #88a7ff); color:var(--blue-700, #1450ff);}
.dropdown-trigger.open,
.dropdown-trigger[aria-expanded="true"]{border-color:var(--blue-400, #6a90ff); background:var(--blue-50, #f1f4fe); color:var(--blue-700, #1450ff);}
.dropdown-trigger .zico svg{width:14px; height:14px; transition:transform .2s;}
.dropdown-trigger.open .zico svg,
.dropdown-trigger[aria-expanded="true"] .zico svg{transform:rotate(180deg);}
.dropdown-panel{position:absolute; top:calc(100% + 8px); left:0; background:var(--white, #fff); border:1px solid var(--line, #dfe1e5); border-radius:var(--radius-lg, 16px); box-shadow:var(--shadow-md, 0 8px 24px rgba(18,19,24,.12)); padding:6px; z-index:100; min-width:170px; display:flex; flex-direction:column; gap:2px;}
.dropdown-panel .chip{width:100%; text-align:left; justify-content:flex-start; border-radius:var(--radius-md, 12px); padding:8px 12px;}