/* Calendar */
.le-calendar { border:1px solid #e5e7eb; border-radius:12px; padding:12px; background:#fff; position:relative; }
.le-calendar.le-loading { opacity:.6; pointer-events:none; }
.le-cal-header { display:flex; align-items:center; justify-content:space-between; font-weight:600; margin-bottom:8px; gap:8px; }
.le-cal-title { flex:1; text-align:center; }
.le-cal-nav { border:1px solid #e5e7eb; background:#f9fafb; border-radius:8px; padding:4px 10px; line-height:1; cursor:pointer; }
.le-cal-grid { display:grid; grid-template-columns: repeat(7, 1fr); gap:6px; }
.le-cal-wd { font-size:12px; color:#6b7280; text-align:center; }
.le-cal-cell { text-align:center; }
.le-day { width:100%; padding:8px 0; border:1px solid #e5e7eb; background:#f9fafb; border-radius:8px; cursor:not-allowed; }
.le-day.has-event { cursor:pointer; background:#ffffff; font-weight:600; }
.le-day:disabled { opacity:.5; }
.le-day.le-loading { opacity:.6; pointer-events:none; }

/* Buttons */
.le-btn {
  display:inline-block; padding:8px 14px; border-radius:10px;
  border:1px solid #111827; text-decoration:none; font-weight:600;
}
.le-btn:hover { opacity:.9; }
.le-btn-outline {
  display:inline-block; padding:8px 14px; border-radius:10px;
  border:1px solid #e5e7eb; background:#fff; text-decoration:none; font-weight:600;
}
.le-btn-outline:hover { background:#f9fafb; }

/* Toolbar */
.le-list-toolbar { display:flex; justify-content:flex-end; }

/* Event list + items */
.le-events { list-style:none; margin:16px 0; padding:0; display:grid; gap:16px; }
.le-event { border:1px solid #e5e7eb; border-radius:12px; padding:12px; background:#fff; }
.le-event.le-horizontal { display:flex; gap:16px; align-items:stretch; }
.le-event.le-horizontal .le-event-body { flex:1; order:1; }
.le-event.le-horizontal .le-event-image { width:220px; max-width:40%; order:2; display:flex; align-items:center; }
.le-event.le-horizontal .le-event-image img { width:100%; height:auto; border-radius:10px; display:block; }

/* Title, date, location line, CTA */
.le-event-title { margin:0 0 8px; font-size:1.125rem; }
.le-event-date { margin:0 0 6px; color:#111827; font-weight:600; }
.le-event-loc { display:flex; align-items:center; gap:6px; color:#374151; margin:0 0 10px; }
.le-loc-ic { fill:#6b7280; }
.le-event-cta { margin-top:8px; }

.le-empty { margin:12px 0; color:#6b7280; }

/* Pagination */
.le-pagination { display:flex; gap:8px; align-items:center; justify-content:center; margin-top:16px; flex-wrap:wrap; }
.le-pagination .le-page { padding:6px 10px; border:1px solid #e5e7eb; border-radius:8px; text-decoration:none; }
.le-pagination .le-page.current { font-weight:700; background:#f3f4f6; }
.le-pagination .le-page.disabled { opacity:.5; cursor:not-allowed; }

/* Hub layout */
.le-hub { display:grid; gap:24px; }
.le-hub.le-cols-2 { grid-template-columns: 320px 1fr; }
.le-hub.le-cols-1 { grid-template-columns: 1fr; }

/* Mobile stacking 
@media (max-width: 640px) {
  .le-event.le-horizontal { flex-direction:column-reverse; }
  .le-event.le-horizontal .le-event-image { width:100%; max-width:none; }
}
*/

/* Put featured image on the LEFT, content on the RIGHT */
.le-event.le-horizontal .le-event-image { order: 1; }
.le-event.le-horizontal .le-event-body  { order: 2; }

/* (Optional) mobile: keep image on TOP instead of below */
@media (max-width: 640px) {
  .le-event.le-horizontal { flex-direction: column; } /* was column-reverse */
  .le-event.le-horizontal .le-event-image { order: 1; }
  .le-event.le-horizontal .le-event-body  { order: 2; }
}
