/* ================= Events listing page ================= */
.events-page{ padding-top:10px; }
.events-page-head{
  display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin:20px 0 34px; flex-wrap:wrap;
}
.events-page-head h1{ font-family:'Fraunces',serif; font-size:2rem; margin:0 0 6px; }
.events-page-head p{ font-size:.92rem; color:var(--ink-soft); margin:0; max-width:520px; }
.events-empty{ text-align:center; color:var(--ink-soft); padding:60px 0; font-size:.95rem; }

.events-grid{
  display:grid; grid-template-columns:repeat(auto-fill, minmax(280px, 1fr)); gap:22px; margin-bottom:60px;
}
.event-card{
  display:block; background:var(--white); border:1px solid var(--line); border-radius:var(--radius);
  overflow:hidden; text-decoration:none; color:var(--ink); transition:transform .15s var(--bounce), box-shadow .15s;
}
.event-card:hover{ transform:translateY(-3px); box-shadow:var(--shadow-pop); }
.event-card-cover{
  height:150px; background:linear-gradient(135deg, var(--gold), var(--clay)); background-size:cover; background-position:center;
}
.event-card-body{ padding:18px; }
.event-card-date{ font-size:.74rem; font-weight:700; color:var(--gold-deep); text-transform:uppercase; letter-spacing:.03em; margin-bottom:7px; }
.event-card-title{ font-family:'Fraunces',serif; font-size:1.08rem; font-weight:600; margin-bottom:5px; line-height:1.3; }
.event-card-meta{ font-size:.82rem; color:var(--ink-soft); }

/* ================= Create event form ================= */
.create-event-page{ max-width:620px; margin:0 auto; padding:50px 20px 80px; }
.create-event-page h1{ font-family:'Fraunces',serif; font-size:1.9rem; margin:0 0 8px; }
.create-event-page > p{ font-size:.92rem; color:var(--ink-soft); margin:0 0 28px; line-height:1.5; }

.event-form-card{
  background:var(--white); border:1px solid var(--line); border-radius:var(--radius-lg); padding:34px; box-shadow:var(--shadow);
}
.event-form-card .ed-field{ margin-bottom:18px; }
.event-form-card .ed-field label{ display:block; font-size:.8rem; font-weight:700; margin-bottom:7px; }
.event-form-card .ed-field-row{ display:flex; gap:16px; margin-bottom:0; }
.event-form-card .ed-field-row .ed-field{ flex:1; }
.event-form-card input[type="text"],
.event-form-card input[type="datetime-local"],
.event-form-card textarea,
.event-form-card input[type="file"]{
  width:100%; box-sizing:border-box; border:1.5px solid var(--line); border-radius:9px; padding:10px 12px;
  font-family:inherit; font-size:.88rem; background:var(--paper);
}
.event-form-card textarea{ resize:vertical; }
.event-review-notice{
  display:flex; gap:10px; background:var(--paper-deep); border-radius:12px; padding:14px 16px; margin:6px 0 22px;
  font-size:.8rem; color:var(--ink-soft); line-height:1.5;
}
.event-form-card button[type="submit"]{ width:100%; padding:13px; font-size:.92rem; }

/* ================= Single event page ================= */
.event-single-page{ max-width:700px; margin:0 auto; padding:40px 20px 80px; }
.event-pending-banner{
  background:var(--paper-deep); border:1px solid var(--line); border-radius:12px; padding:12px 16px;
  font-size:.84rem; color:var(--ink-soft); margin-bottom:22px;
}
.event-cover{
  height:280px; border-radius:var(--radius-lg); background:linear-gradient(135deg, var(--gold), var(--clay));
  background-size:cover; background-position:center; margin-bottom:28px;
}
.event-single-page h1{ font-family:'Fraunces',serif; font-size:2.1rem; margin:0 0 18px; line-height:1.2; }
.event-meta-row{ display:flex; gap:26px; flex-wrap:wrap; margin-bottom:26px; font-size:.92rem; color:var(--ink-soft); }
.event-description{ font-size:1rem; line-height:1.65; color:var(--ink-soft); margin:0 0 32px; white-space:pre-wrap; }

.event-rsvp-box{
  background:var(--white); border:1px solid var(--line); border-radius:var(--radius); padding:22px 26px;
  display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap;
}
.event-rsvp-question{ font-weight:700; font-size:.92rem; margin-bottom:4px; }
.event-rsvp-counts{ font-size:.8rem; color:var(--ink-soft); }
.event-rsvp-buttons{ display:flex; gap:10px; }
.event-rsvp-btn{
  border-radius:999px; padding:11px 22px; font-family:inherit; font-weight:700; font-size:.86rem; cursor:pointer;
  border:1.5px solid var(--line); background:var(--white); color:var(--ink); transition:background .15s, border-color .15s, color .15s;
}
.event-rsvp-btn:disabled{ opacity:.6; cursor:default; }
.event-rsvp-btn.going.active{ background:var(--gold); border-color:var(--gold); color:var(--ink); }
.event-rsvp-btn.not-going.active{ background:var(--ink); border-color:var(--ink); color:var(--gold); }

/* ================= Homepage "Upcoming near you" strip ================= */
.event-strip{
  display:flex; gap:14px; overflow-x:auto; padding:6px 4px 20px; -webkit-overflow-scrolling:touch;
}
.event-strip::-webkit-scrollbar{ display:none; }
.event-strip[hidden]{ display:none; } /* .event-strip{display:flex} beats the browser's [hidden] rule — without this the empty strip still took ~26px */
.event-strip-card{
  flex-shrink:0; width:150px; background:var(--white); border:1px solid var(--line); border-radius:16px;
  overflow:hidden; text-decoration:none; color:var(--ink); transition:transform .15s var(--bounce);
}
.event-strip-card:hover{ transform:translateY(-2px); }
.event-strip-cover{
  height:80px; background:linear-gradient(135deg, var(--gold), var(--clay)); background-size:cover; background-position:center;
}
.event-strip-cover-placeholder{ display:flex; align-items:center; justify-content:center; font-size:1.4rem; background:var(--paper-deep); }
.event-strip-date{ font-size:.68rem; font-weight:700; color:var(--gold-deep); text-transform:uppercase; letter-spacing:.03em; padding:10px 12px 0; }
.event-strip-title{ font-size:.82rem; font-weight:600; padding:3px 12px 12px; line-height:1.3; }

@media (max-width:640px){
  .event-form-card .ed-field-row{ flex-direction:column; gap:0; }
  .events-grid{ grid-template-columns:1fr 1fr; gap:14px; }
  .event-card-cover{ height:110px; }
}