/* =========================
   Featured Events
========================= */
.featured-events{padding:96px 0}
.featured-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:28px;
}
.featured-card{
  background:#fff;
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  overflow:hidden;
  transition:var(--transition);
  display:flex;
  flex-direction:column;
}
.featured-card:hover{
  transform:translateY(-6px);
  box-shadow:var(--shadow-lg);
  border-color:transparent;
}
.featured-image{
  position:relative;
  height:240px;
  overflow:hidden;
}
.featured-image img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .5s ease;
}
.featured-card:hover .featured-image img{transform:scale(1.05)}
.featured-image-placeholder{
  width:100%;
  height:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#fff;
  font-size:4rem;
  opacity:.9;
}
.featured-date-badge{
  position:absolute;
  top:20px;
  right:20px;
  background:#fff;
  border-radius:var(--radius-md);
  padding:10px 16px;
  text-align:center;
  box-shadow:var(--shadow-md);
  display:flex;
  flex-direction:column;
  line-height:1;
}
.featured-date-badge .day{
  font-size:1.8rem;
  font-weight:800;
  color:var(--primary);
}
.featured-date-badge .month{
  font-size:.75rem;
  font-weight:700;
  text-transform:uppercase;
  color:var(--secondary);
  letter-spacing:1px;
  margin-top:4px;
}

.featured-body{
  padding:28px;
  flex:1;
  display:flex;
  flex-direction:column;
}
.featured-tags{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-bottom:14px;
}
.event-tag{
  font-size:.7rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.5px;
  padding:4px 10px;
  border-radius:999px;
  background:var(--primary-light);
  color:var(--primary);
}
.featured-body h3{
  font-size:1.4rem;
  margin-bottom:10px;
  line-height:1.3;
}
.featured-summary{
  color:var(--text-muted);
  font-size:.95rem;
  line-height:1.65;
  margin-bottom:18px;
}
.featured-meta{
  display:flex;
  flex-direction:column;
  gap:8px;
  padding:14px 0;
  border-top:1px dashed var(--border);
  border-bottom:1px dashed var(--border);
  margin-bottom:14px;
}
.featured-meta div{
  display:flex;
  align-items:center;
  gap:10px;
  font-size:.88rem;
  color:var(--text-muted);
}
.featured-meta i{color:var(--secondary);width:16px}

.featured-countdown{
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px 14px;
  background:linear-gradient(135deg,var(--primary-light),var(--secondary-light));
  border-radius:var(--radius-sm);
  font-size:.88rem;
  font-weight:600;
  color:var(--primary);
  margin-top:auto;
}
.featured-countdown i{color:var(--secondary)}

/* =========================
   Filters
========================= */
.events-filters{
  display:flex;
  gap:10px;
  justify-content:center;
  flex-wrap:wrap;
  margin-bottom:40px;
}
.filter-btn{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:10px 20px;
  background:#fff;
  border:1px solid var(--border);
  border-radius:999px;
  font-size:.9rem;
  font-weight:600;
  color:var(--text);
  cursor:pointer;
  transition:var(--transition);
  font-family:inherit;
}
.filter-btn:hover{
  border-color:var(--primary);
  color:var(--primary);
}
.filter-btn.active{
  background:var(--primary);
  color:#fff;
  border-color:var(--primary);
}
.filter-count{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:22px;
  height:22px;
  padding:0 6px;
  border-radius:999px;
  background:rgba(0,0,0,.08);
  font-size:.75rem;
  font-weight:700;
}
.filter-btn.active .filter-count{
  background:rgba(255,255,255,.25);
  color:#fff;
}

/* =========================
   Events List
========================= */
.events-list{
  display:flex;
  flex-direction:column;
  gap:18px;
}
.event-row{
  background:#fff;
  border:1px solid var(--border);
  border-radius:var(--radius-md);
  overflow:hidden;
  transition:var(--transition);
}
.event-row.hidden{display:none}
.event-row:hover{
  box-shadow:var(--shadow-md);
  border-color:var(--primary);
}

.event-row-inner{
  display:grid;
  grid-template-columns:120px 1fr auto;
  align-items:stretch;
}

.event-date-block{
  padding:24px 16px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  color:#fff;
  gap:2px;
}
.event-date-block.primary{
  background:linear-gradient(135deg,var(--primary),var(--primary-dark));
}
.event-date-block.secondary{
  background:linear-gradient(135deg,var(--secondary),var(--secondary-dark));
}
.event-date-block .weekday{
  font-size:.7rem;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:1px;
  opacity:.85;
}
.event-date-block .day{
  font-size:2rem;
  font-weight:800;
  line-height:1;
  margin:4px 0;
}
.event-date-block .month{
  font-size:.8rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:1px;
}
.event-date-block .year{
  font-size:.7rem;
  opacity:.7;
  margin-top:4px;
}

.event-row-content{padding:24px 28px}
.event-row-header{
  display:flex;
  align-items:flex-start;
  gap:16px;
  margin-bottom:12px;
}
.event-row-icon{
  width:44px;height:44px;
  border-radius:12px;
  background:var(--primary-light);
  color:var(--primary);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:1.1rem;
  flex-shrink:0;
}
.event-row-title{flex:1}
.event-row-header h3{
  font-size:1.2rem;
  margin-bottom:6px;
  line-height:1.3;
}
.event-row-meta{
  display:flex;
  gap:18px;
  flex-wrap:wrap;
}
.event-row-meta span{
  font-size:.85rem;
  color:var(--text-muted);
  display:inline-flex;
  align-items:center;
  gap:6px;
}
.event-row-meta i{color:var(--secondary);font-size:.8rem}

.event-status-badge{
  padding:5px 12px;
  border-radius:999px;
  font-size:.7rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.5px;
  white-space:nowrap;
  flex-shrink:0;
}
.event-status-badge.upcoming{
  background:var(--secondary-light);
  color:var(--secondary);
}
.event-status-badge.past{
  background:var(--bg-alt);
  color:var(--text-muted);
}

.event-row-summary{
  color:var(--text-muted);
  font-size:.93rem;
  line-height:1.6;
  margin-bottom:12px;
}
.event-row-tags{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}
.mini-tag{
  font-size:.7rem;
  font-weight:600;
  padding:3px 10px;
  border-radius:999px;
  background:var(--bg-alt);
  color:var(--text-muted);
  border:1px solid var(--border);
}

/* Expand button */
.event-expand-btn{
  background:none;
  border:none;
  border-left:1px solid var(--border);
  padding:0 20px;
  cursor:pointer;
  color:var(--text-muted);
  font-size:1rem;
  transition:var(--transition);
  display:flex;
  align-items:center;
  justify-content:center;
}
.event-expand-btn:hover{
  background:var(--bg-alt);
  color:var(--primary);
}
.event-row.expanded .event-expand-btn i{transform:rotate(180deg)}
.event-expand-btn i{transition:transform .3s ease}

/* Expanded details */
.event-row-details{
  max-height:0;
  overflow:hidden;
  transition:max-height .4s ease, padding .4s ease;
  background:var(--bg-alt);
  padding:0 32px;
}
.event-row.expanded .event-row-details{
  max-height:1000px;
  padding:28px 32px;
  border-top:1px solid var(--border);
}
.details-grid{
  display:grid;
  grid-template-columns:1.3fr 1fr;
  gap:30px;
}
.details-grid h4{
  font-size:1rem;
  margin-bottom:12px;
  display:flex;
  align-items:center;
  gap:8px;
}
.details-grid h4 i{color:var(--secondary)}
.details-grid p{
  color:var(--text-muted);
  font-size:.92rem;
  line-height:1.7;
}
.details-grid ul{list-style:none}
.details-grid li{
  position:relative;
  padding:6px 0 6px 22px;
  font-size:.88rem;
  color:var(--text-muted);
  line-height:1.5;
}
.details-grid li::before{
  content:"✓";
  position:absolute;
  left:0;
  color:var(--secondary);
  font-weight:700;
}
.details-footer{
  display:flex;
  gap:24px;
  align-items:center;
  padding-top:18px;
  margin-top:18px;
  border-top:1px dashed var(--border);
  flex-wrap:wrap;
  font-size:.88rem;
  color:var(--text-muted);
}
.details-footer strong{color:var(--text)}
.reg-free{
  display:inline-block;
  padding:3px 10px;
  background:var(--secondary-light);
  color:var(--secondary);
  border-radius:999px;
  font-weight:600;
  font-size:.8rem;
}
.reg-invite{
  display:inline-block;
  padding:3px 10px;
  background:var(--primary-light);
  color:var(--primary);
  border-radius:999px;
  font-weight:600;
  font-size:.8rem;
}

.no-events{
  text-align:center;
  padding:60px 20px;
  color:var(--text-muted);
}
.no-events i{
  font-size:3rem;
  opacity:.3;
  margin-bottom:14px;
  display:block;
}

/* =========================
   Past Events
========================= */
.past-events{padding:96px 0}
.past-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:22px;
}
.past-card{
  background:#fff;
  border:1px solid var(--border);
  border-radius:var(--radius-md);
  padding:24px;
  display:flex;
  gap:18px;
  transition:var(--transition);
  opacity:.85;
}
.past-card:hover{
  transform:translateY(-4px);
  box-shadow:var(--shadow-md);
  opacity:1;
}
.past-date{
  flex-shrink:0;
  width:60px;
  text-align:center;
  padding:10px 0;
  background:var(--bg-alt);
  border-radius:var(--radius-sm);
  display:flex;
  flex-direction:column;
  line-height:1;
}
.past-date .day{
  font-size:1.5rem;
  font-weight:800;
  color:var(--text-muted);
}
.past-date .month{
  font-size:.7rem;
  font-weight:700;
  text-transform:uppercase;
  color:var(--text-muted);
  letter-spacing:1px;
  margin-top:4px;
}
.past-content h3{font-size:1.05rem;margin-bottom:6px}
.past-content p{
  font-size:.85rem;
  color:var(--text-muted);
  line-height:1.5;
  margin-bottom:8px;
}
.past-meta{font-size:.78rem;color:var(--text-muted)}
.past-meta i{color:var(--secondary);margin-right:4px}

/* =========================
   Newsletter CTA
========================= */
.events-cta{padding:60px 0 100px}
.cta-box{
  background:linear-gradient(135deg,var(--primary),var(--secondary));
  border-radius:var(--radius-lg);
  padding:60px 40px;
  text-align:center;
  color:#fff;
  position:relative;
  overflow:hidden;
}
.cta-box::before{
  content:"";
  position:absolute;inset:0;
  background:
    radial-gradient(circle at 20% 30%, rgba(255,255,255,.15), transparent 50%),
    radial-gradient(circle at 80% 70%, rgba(255,255,255,.1), transparent 50%);
}
.cta-box > *{position:relative;z-index:2}
.cta-icon{
  width:70px;height:70px;
  border-radius:50%;
  background:rgba(255,255,255,.2);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:1.8rem;
  margin-bottom:20px;
  border:1px solid rgba(255,255,255,.3);
}
.cta-box h2{color:#fff;font-size:clamp(1.6rem,3vw,2.2rem);margin-bottom:12px}
.cta-box p{opacity:.9;margin-bottom:28px;font-size:1.05rem}
.cta-note{
  font-size:.82rem !important;
  opacity:.7 !important;
  margin-top:16px !important;
  margin-bottom:0 !important;
}

.newsletter-form{
  display:flex;
  gap:10px;
  max-width:500px;
  margin:0 auto;
  flex-wrap:wrap;
  justify-content:center;
}
.newsletter-form input{
  flex:1;
  min-width:240px;
  padding:14px 20px;
  border:2px solid rgba(255,255,255,.3);
  border-radius:999px;
  background:rgba(255,255,255,.15);
  color:#fff;
  font-size:.95rem;
  font-family:inherit;
  transition:var(--transition);
}
.newsletter-form input::placeholder{color:rgba(255,255,255,.7)}
.newsletter-form input:focus{
  outline:none;
  border-color:#fff;
  background:rgba(255,255,255,.25);
}

/* =========================
   Responsive
========================= */
@media (max-width: 992px){
  .featured-grid{grid-template-columns:1fr}
  .event-row-inner{grid-template-columns:100px 1fr auto}
  .details-grid{grid-template-columns:1fr;gap:20px}
  .past-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width: 768px){
  .event-row-inner{grid-template-columns:1fr}
  .event-date-block{
    flex-direction:row;
    gap:14px;
    padding:14px 20px;
    justify-content:flex-start;
  }
  .event-date-block .day{font-size:1.5rem;margin:0}
  .event-date-block .weekday,
  .event-date-block .year{display:none}
  .event-expand-btn{
    border-left:none;
    border-top:1px solid var(--border);
    padding:12px;
    width:100%;
  }
  .event-row-header{flex-direction:column;gap:10px}
  .event-status-badge{align-self:flex-start}
  .event-row.expanded .event-row-details{padding:20px}
  .details-grid{padding:0}
  .details-footer{padding-top:16px}
  .past-grid{grid-template-columns:1fr}
  .cta-box{padding:40px 24px}
  .newsletter-form{flex-direction:column}
  .newsletter-form input{min-width:100%}
  .newsletter-form .btn{width:100%;justify-content:center}
}
@media (max-width: 480px){
  .featured-image{height:180px}
  .featured-body{padding:20px}
  .event-row-content{padding:18px 20px}
  .event-row-meta{flex-direction:column;gap:6px}
}