/* Extracted from events.php in v1.3.1 for CSP/cache maintainability. */
:root{
  --sky:#eef6ff; --white:#fff; --ink:#0f1b2d; --slate:#3d5478; --muted:#7b93b3; --border:#dde8f5;
  --blue:#2563eb; --blue-xl:#eff6ff;
  --violet:#7c3aed; --violet-l:#ede9fe;
  --amber:#f59e0b; --amber-l:#fef3c7; --amber-d:#d97706;
  --teal:#0d9488; --teal-l:#f0fdfa;
  --emerald:#059669; --emerald-l:#ecfdf5;
  --rose:#e11d48; --rose-l:#fff1f2;
  --shadow-sm:0 2px 12px rgba(37,99,235,.08);
  --shadow-md:0 8px 32px rgba(37,99,235,.12);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
body{background:var(--sky);color:var(--ink);font-family:'Plus Jakarta Sans',sans-serif;}

/* ── REVEAL ── */
[data-reveal]{opacity:0;transform:translateY(20px);transition:opacity .6s ease,transform .6s ease;}
[data-reveal].revealed{opacity:1;transform:none;}

/* ══ HERO ══ */
.ev-hero{
  background:var(--white); position:relative; overflow:hidden;
  padding:72px 0 0; border-bottom:1.5px solid var(--border);
}
.ev-hero::before{
  content:''; position:absolute; inset:0;
  background:
    radial-gradient(ellipse 55% 120% at 100% 60%, var(--violet-l) 0%, transparent 55%),
    radial-gradient(ellipse 40% 100% at 0% 0%,   var(--blue-xl)   0%, transparent 55%),
    radial-gradient(ellipse 30% 80%  at 50% 100%, #fef3c7 0%, transparent 60%);
}
.ev-hero::after{
  content:''; position:absolute; inset:0;
  background-image:radial-gradient(circle, #cbd5e1 1px, transparent 1px);
  background-size:26px 26px; opacity:.2;
}
.ev-hero .container{position:relative;z-index:2;}

.hero-eyebrow{
  display:inline-flex; align-items:center; gap:7px;
  font-size:.7rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  color:var(--violet); background:var(--violet-l); border:1px solid #ddd6fe;
  padding:5px 14px; border-radius:100px; margin-bottom:1.2rem;
}
.hero-h1{
  font-family:'Fraunces',serif; font-size:clamp(2rem,5vw,3.5rem);
  font-weight:700; letter-spacing:-.03em; line-height:1.1; margin-bottom:1rem;
}
.hero-h1 .grad{
  background:linear-gradient(135deg,var(--blue),var(--violet));
  -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text;
}
.hero-sub{font-size:1.05rem; color:var(--slate); max-width:540px; line-height:1.7; margin-bottom:2rem;}

/* stats strip */
.hero-stats{
  display:flex; align-items:center; gap:32px; flex-wrap:wrap;
  padding:20px 0 32px;
}
.hs-item{display:flex; align-items:center; gap:10px;}
.hs-num{font-family:'Fraunces',serif; font-size:1.6rem; font-weight:700; color:var(--ink); line-height:1;}
.hs-label{font-size:.72rem; font-weight:700; color:var(--muted); text-transform:uppercase; letter-spacing:.08em;}
.hs-div{width:1px; height:32px; background:var(--border);}

/* hero floating cards (dekstop) */
.hero-visual{position:relative; height:320px;}
.hero-float-card{
  position:absolute; background:var(--white); border:1.5px solid var(--border);
  border-radius:16px; padding:14px 18px; box-shadow:var(--shadow-md);
  font-size:.78rem; font-weight:700;
}
.hfc-1{top:20px; right:0; width:200px; animation:hfc-bob 4s ease-in-out infinite;}
.hfc-2{top:130px; right:60px; width:210px; animation:hfc-bob 4s ease-in-out infinite .8s;}
.hfc-3{top:220px; right:10px; width:190px; animation:hfc-bob 4s ease-in-out infinite 1.6s;}
@keyframes hfc-bob{0%,100%{transform:translateY(0);}50%{transform:translateY(-6px);}}
.hfc-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;}

/* ══ FILTER BAR ══ */
.filter-wrap{
  background:var(--white); border:1.5px solid var(--border); border-radius:20px;
  padding:22px 26px; box-shadow:var(--shadow-sm); margin:28px 0;
}
.filter-label{font-size:.72rem; font-weight:800; color:var(--slate); margin-bottom:6px; text-transform:uppercase; letter-spacing:.08em;}
.filter-input{
  width:100%; border:1.5px solid var(--border); border-radius:11px;
  background:var(--sky); color:var(--ink);
  font-family:'Plus Jakarta Sans',sans-serif; font-size:.85rem; font-weight:500;
  height:42px; padding:0 13px; outline:none; transition:all .22s;
  appearance:none; -webkit-appearance:none;
}
.filter-input:focus{border-color:var(--violet); background:var(--white); box-shadow:0 0 0 3px rgba(124,58,237,.09);}
.filter-select-wrap{position:relative;}
.filter-select-wrap::after{
  content:'\f078'; font-family:'Font Awesome 6 Free'; font-weight:900;
  position:absolute; right:13px; top:50%; transform:translateY(-50%);
  font-size:.65rem; color:var(--muted); pointer-events:none;
}
.search-wrap{position:relative;}
.search-wrap .filter-input{padding-left:38px;}
.search-ico{position:absolute; left:13px; top:50%; transform:translateY(-50%); color:var(--muted); font-size:.78rem;}
.btn-filter-search{
  height:42px; width:100%; border:none; border-radius:11px; cursor:pointer;
  background:linear-gradient(135deg,var(--blue),var(--violet));
  color:#fff; font-size:.85rem; font-weight:700;
  font-family:'Plus Jakarta Sans',sans-serif; transition:all .25s;
  box-shadow:0 4px 14px rgba(37,99,235,.25);
}
.btn-filter-search:hover{transform:translateY(-2px); box-shadow:0 6px 20px rgba(37,99,235,.35);}
.btn-filter-reset{
  display:inline-flex; align-items:center; gap:5px;
  font-size:.72rem; font-weight:700; color:var(--muted); text-decoration:none;
  padding:5px 10px; border-radius:7px; transition:all .2s; margin-top:6px;
}
.btn-filter-reset:hover{color:var(--rose); background:var(--rose-l);}

/* active filter chips */
.active-filters{display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-top:12px;}
.af-label{font-size:.68rem; font-weight:700; color:var(--muted);}
.af-chip{
  display:inline-flex; align-items:center; gap:5px;
  font-size:.7rem; font-weight:700; padding:3px 10px 3px 9px; border-radius:100px;
  background:var(--violet-l); border:1px solid #ddd6fe; color:var(--violet); text-decoration:none;
}
.af-chip:hover{background:var(--violet); color:#fff;}

/* ══ SECTION TITLE ══ */
.sec-eyebrow{
  display:inline-flex; align-items:center; gap:6px;
  font-size:.67rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  padding:4px 12px; border-radius:100px; margin-bottom:.6rem;
}
.sec-eyebrow.violet{color:var(--violet); background:var(--violet-l); border:1px solid #ddd6fe;}
.sec-eyebrow.amber{color:var(--amber-d); background:var(--amber-l); border:1px solid #fde68a;}
.sec-h2{font-family:'Fraunces',serif; font-size:clamp(1.4rem,3vw,2rem); font-weight:700; letter-spacing:-.02em; margin-bottom:.4rem;}
.sec-sub{font-size:.9rem; color:var(--muted); max-width:520px; line-height:1.6;}

/* ══ FEATURED STRIP ══ */
.featured-section{
  background:linear-gradient(180deg, var(--white) 0%, var(--sky) 100%);
  padding:60px 0; border-bottom:1.5px solid var(--border);
}

/* ══ EVENT CARD ══ */
.event-card{
  background:var(--white); border:1.5px solid var(--border); border-radius:20px;
  overflow:hidden; box-shadow:var(--shadow-sm); display:flex; flex-direction:column;
  transition:transform .3s ease, box-shadow .3s ease; height:100%;
}
.event-card:hover{transform:translateY(-5px); box-shadow:var(--shadow-md);}

.ec-img-wrap{position:relative; flex-shrink:0; height:195px; overflow:hidden;}
.ec-img-wrap img{width:100%; height:100%; object-fit:cover; transition:transform .5s ease;}
.event-card:hover .ec-img-wrap img{transform:scale(1.04);}

/* gradient placeholder for no image */
.ec-img-placeholder{
  width:100%; height:100%;
  display:flex; align-items:center; justify-content:center;
  font-size:2.5rem; color:rgba(255,255,255,.5);
}
.ec-img-placeholder.blue    {background:linear-gradient(135deg,var(--blue),#1d4ed8);}
.ec-img-placeholder.violet  {background:linear-gradient(135deg,var(--violet),#6d28d9);}
.ec-img-placeholder.amber   {background:linear-gradient(135deg,var(--amber),var(--amber-d));}
.ec-img-placeholder.teal    {background:linear-gradient(135deg,var(--teal),#0f766e);}
.ec-img-placeholder.emerald {background:linear-gradient(135deg,var(--emerald),#047857);}

/* overlay badges */
.ec-badges{position:absolute; top:12px; left:12px; display:flex; gap:6px; flex-wrap:wrap;}
.ec-badge{
  display:inline-flex; align-items:center; gap:4px;
  font-size:.62rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase;
  padding:3px 9px; border-radius:100px; backdrop-filter:blur(8px);
}
.ecb-upcoming  {background:rgba(5,150,105,.9);  color:#fff;}
.ecb-completed {background:rgba(100,116,139,.85);color:#fff;}
.ecb-featured  {background:rgba(245,158,11,.92); color:#fff;}
.ecb-free      {background:rgba(255,255,255,.92);color:var(--emerald); border:1px solid rgba(5,150,105,.3);}
.ecb-type      {background:rgba(255,255,255,.92);color:var(--violet);}

/* card body */
.ec-body{padding:20px; flex:1; display:flex; flex-direction:column;}
.ec-date{
  display:flex; align-items:center; gap:7px; margin-bottom:10px;
  font-size:.75rem; font-weight:700; color:var(--blue);
}
.ec-date-box{
  background:var(--blue-xl); border:1px solid #bfdbfe; border-radius:8px;
  padding:5px 10px; text-align:center; line-height:1.1; flex-shrink:0;
}
.ec-date-day{font-family:'Fraunces',serif; font-size:1.1rem; font-weight:700; color:var(--blue);}
.ec-date-mon{font-size:.6rem; font-weight:800; text-transform:uppercase; letter-spacing:.08em; color:var(--muted);}
.ec-date-info{flex:1;}
.ec-date-time{font-size:.75rem; font-weight:700; color:var(--blue);}
.ec-date-dow {font-size:.65rem; color:var(--muted); font-weight:600;}

.ec-title{
  font-family:'Fraunces',serif; font-size:1.08rem; font-weight:700;
  color:var(--ink); line-height:1.3; margin-bottom:9px; flex:1;
}
.ec-title a{color:inherit; text-decoration:none; transition:color .2s;}
.ec-title a:hover{color:var(--blue);}
.ec-desc{font-size:.78rem; color:var(--muted); line-height:1.65; margin-bottom:14px;}

.ec-meta{display:flex; flex-wrap:wrap; gap:10px; padding:12px 0; border-top:1px solid var(--border); border-bottom:1px solid var(--border); margin-bottom:14px;}
.ec-meta-item{display:flex; align-items:center; gap:5px; font-size:.73rem; font-weight:600; color:var(--slate);}
.ec-meta-item i{font-size:.68rem; color:var(--violet);}

.ec-footer{display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:auto;}
.ec-price{
  font-family:'Fraunces',serif; font-size:1.15rem; font-weight:700; color:var(--ink);
}
.ec-price.free{
  background:linear-gradient(135deg,var(--emerald),var(--teal));
  -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text;
}
.btn-detail{
  display:inline-flex; align-items:center; gap:6px;
  padding:9px 18px; border-radius:10px; border:none; cursor:pointer;
  font-family:'Plus Jakarta Sans',sans-serif; font-size:.78rem; font-weight:700;
  background:linear-gradient(135deg,var(--blue),var(--violet));
  color:#fff; text-decoration:none; transition:all .25s;
  box-shadow:0 3px 12px rgba(37,99,235,.22);
  white-space:nowrap;
}
.btn-detail:hover{transform:translateY(-2px); box-shadow:0 5px 16px rgba(37,99,235,.32); color:#fff;}

/* featured card — bigger */
.event-card.featured{border-color:rgba(245,158,11,.3);}
.event-card.featured .ec-img-wrap{height:220px;}

/* ══ EMPTY STATE ══ */
.empty-state{
  background:var(--white); border:1.5px solid var(--border); border-radius:20px;
  padding:80px 32px; text-align:center; box-shadow:var(--shadow-sm);
}
.empty-state i{font-size:3rem; color:var(--border); margin-bottom:16px; display:block;}
.empty-state h4{font-family:'Fraunces',serif; font-size:1.3rem; font-weight:700; margin-bottom:6px;}
.empty-state p{font-size:.85rem; color:var(--muted);}

/* ══ RESPONSIVE ══ */
@media(max-width:991px){
  .hero-visual{display:none;}
}
@media(max-width:767px){
  .ev-hero{padding:52px 0 0;}
  .hero-stats{gap:20px;}
  .filter-wrap{padding:18px;}
}
/* v1.4.9.1 content-truth empty hero: never show fabricated event metrics. */
.hfc-empty{top:86px;right:18px;width:270px;animation:hfc-bob 4s ease-in-out infinite;}
