/* ============ EVENTS HERO ============ */
.events-hero{ padding:10.5rem 1.5rem 1rem; }
.events-hero .section-head{ padding-top:0; }
.events-hero h1{ font-size:clamp(2.1rem, 4.2vw, 3.2rem); }
.events-hero h1 em{ color:var(--brick); font-style:normal; }

/* ============ SHARED SECTION ============ */
.events-section{ padding:3rem 1.5rem 5rem; max-width:var(--container); margin:0 auto; }
.events-section-past{ border-top:1px solid var(--line); }
.events-loading{ text-align:center; color:var(--text-light); padding:2rem 0; }

.events-empty{
  text-align:center; padding:3.5rem 1.5rem; color:var(--text-light);
  background:var(--white); border:1px dashed var(--line); border-radius:var(--radius);
  max-width:640px; margin:0 auto;
}

/* ============ UPCOMING GRID ============ */
.events-grid{
  display:grid; grid-template-columns:repeat(3, 1fr); gap:1.6rem;
}
.event-card{
  background:var(--white); border:1px solid var(--line); border-radius:var(--radius);
  overflow:hidden; display:flex; flex-direction:column;
  transition:transform .4s var(--ease), box-shadow .4s var(--ease);
}
.event-card:hover{ transform:translateY(-6px); box-shadow:0 26px 44px -24px rgba(43,39,36,.3); }
.event-card-media{ aspect-ratio:4/3; overflow:hidden; background:var(--cream); position:relative; }
.event-card-media img{ width:100%; height:100%; object-fit:cover; transition:transform .5s var(--ease); }
.event-card:hover .event-card-media img{ transform:scale(1.05); }
.event-card-date{
  position:absolute; top:.9rem; left:.9rem; background:linear-gradient(120deg, var(--ochre), var(--ochre-deep));
  color:#fff; font-weight:700; font-size:.72rem; letter-spacing:.04em; text-transform:uppercase;
  padding:.4rem .8rem; border-radius:999px; box-shadow:0 10px 20px -10px rgba(226,144,31,.6);
}
.event-card-body{ padding:1.3rem 1.4rem 1.5rem; display:flex; flex-direction:column; gap:.5rem; flex-grow:1; }
.event-card-tag{
  font-size:.68rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--brick);
}
.event-card-body h3{ font-size:1.1rem; }
.event-card-info{ font-size:.82rem; color:var(--brown); font-weight:500; }
.event-card-body p{ font-size:.9rem; color:var(--text-light); line-height:1.6; flex-grow:1; }
.event-card-link{ font-size:.85rem; font-weight:600; color:var(--brick); margin-top:.3rem; }

/* ============ PAST EVENTS GRID (gallery-style) ============ */
.events-grid-past{ grid-template-columns:repeat(4, 1fr); gap:1.2rem; }
.events-grid-past .event-card-media{ aspect-ratio:1; }
.events-grid-past .event-card-body{ padding:1rem 1.1rem 1.2rem; gap:.3rem; }
.events-grid-past .event-card-body h3{ font-size:.98rem; }
.events-grid-past .event-card-date{
  position:static; display:inline-block; background:none; color:var(--text-light);
  padding:0; box-shadow:none; font-weight:600; letter-spacing:normal; text-transform:none; font-size:.8rem;
}

@media (max-width: 980px){
  .events-grid{ grid-template-columns:1fr 1fr; }
  .events-grid-past{ grid-template-columns:1fr 1fr 1fr; }
}
@media (max-width: 620px){
  .events-grid, .events-grid-past{ grid-template-columns:1fr 1fr; }
}

/* ============ EVENT DETAIL PAGE ============ */
.event-detail-hero{ padding:9.5rem 1.5rem 0; max-width:var(--container); margin:0 auto; }
.event-detail-back{ font-size:.85rem; font-weight:600; color:var(--brick); display:inline-block; margin-bottom:1.4rem; }
.event-detail-eyebrow{ display:flex; align-items:center; gap:.8rem; flex-wrap:wrap; margin-bottom:.6rem; }
.event-badge{
  font-size:.68rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em;
  padding:.25rem .7rem; border-radius:999px;
}
.event-badge-upcoming{ background:rgba(250,167,63,.18); color:var(--ochre-deep); }
.event-badge-past{ background:rgba(87,84,82,.12); color:var(--text); }
.event-badge-category{ background:rgba(114,15,17,.08); color:var(--brick); }
.event-detail-hero h1{ font-size:clamp(1.9rem, 4vw, 2.8rem); max-width:820px; margin-bottom:1.4rem; }
.event-detail-cover{
  width:100%; max-height:520px; object-fit:cover; border-radius:var(--radius); margin-bottom:2.2rem;
}

.event-info-grid{
  max-width:760px; margin:0 auto 2.2rem; background:var(--white); border:1px solid var(--line);
  border-radius:var(--radius); padding:1.6rem 1.8rem;
  display:grid; grid-template-columns:repeat(auto-fit, minmax(150px, 1fr)); gap:1.4rem 1.2rem;
}
.event-info-row{ display:flex; flex-direction:column; gap:.35rem; }
.event-info-label{
  font-size:.68rem; text-transform:uppercase; letter-spacing:.08em; font-weight:700; color:var(--brick);
}
.event-info-value{ font-size:.95rem; color:var(--ink); line-height:1.4; }

.event-register-wrap{ max-width:760px; margin:0 auto 2.4rem; text-align:center; }

.event-detail-body{
  max-width:760px; margin:0 auto; padding:0 1.5rem; color:var(--text); line-height:1.8; font-size:1.02rem;
}
.event-detail-body p{ margin-bottom:1.2rem; }

.event-detail-gallery{
  max-width:var(--container); margin:3rem auto 0; padding:0 1.5rem 6rem;
}
.event-detail-gallery h2{ font-size:1.4rem; margin-bottom:1.4rem; }
.event-gallery-grid{
  display:grid; grid-template-columns:repeat(4, 1fr); gap:1rem;
}
.event-gallery-grid img{
  width:100%; aspect-ratio:1; object-fit:cover; border-radius:14px; cursor:pointer;
  transition:transform .4s var(--ease);
}
.event-gallery-grid img:hover{ transform:scale(1.03); }
@media (max-width: 980px){ .event-gallery-grid{ grid-template-columns:repeat(3, 1fr); } }
@media (max-width: 620px){ .event-gallery-grid{ grid-template-columns:1fr 1fr; } }

/* Lightbox */
.event-lightbox{
  position:fixed; inset:0; background:rgba(20,16,14,.92); z-index:2000;
  display:flex; align-items:center; justify-content:center; padding:2rem;
  opacity:0; pointer-events:none; transition:opacity .3s var(--ease);
}
.event-lightbox.open{ opacity:1; pointer-events:auto; }
.event-lightbox img{ max-width:100%; max-height:88vh; border-radius:10px; }
.event-lightbox-close{
  position:absolute; top:1.5rem; right:1.8rem; width:44px; height:44px; border-radius:50%;
  background:rgba(255,255,255,.12); color:#fff; border:1.5px solid rgba(255,255,255,.4);
  font-size:1.4rem; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center;
}
.event-lightbox-nav{
  position:absolute; top:50%; transform:translateY(-50%); width:48px; height:48px; border-radius:50%;
  background:rgba(255,255,255,.12); color:#fff; border:1.5px solid rgba(255,255,255,.4);
  font-size:1.3rem; cursor:pointer; display:flex; align-items:center; justify-content:center;
}
.event-lightbox-prev{ left:1.5rem; }
.event-lightbox-next{ right:1.5rem; }
