.event-grid-wrapper { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; }
.event-grid-card { display: flex; flex-direction: column; }
.event-grid-image-wrapper { position: relative; width: 100%; aspect-ratio: 4/3; overflow: hidden; background-color: #ddd; margin-bottom: 20px; }
.event-grid-image { width: 100%; height: 100%; object-fit: cover; }
.event-grid-image-placeholder { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; }
.event-grid-image-placeholder::after { content: '\f03e'; font-family: 'FontAwesome'; font-size: 40px; color: #fff; opacity: 0.5; }

.event-grid-date-badge { position: absolute; top: 0; right: 0; background: #fff; padding: 15px; display: flex; flex-direction: column; align-items: center; text-align: center; color: #000; min-width: 80px; }
.event-grid-date-badge .day-name { font-size: 14px; margin-bottom: 5px; }
.event-grid-date-badge .day-num { font-size: 28px; font-weight: bold; line-height: 1; margin-bottom: 5px; }
.event-grid-date-badge .month-year { font-size: 12px; }

.event-grid-content { display: flex; flex-direction: column; flex-grow: 1; }
.event-grid-label { align-self: flex-start; background: #f5f5f5; padding: 5px 10px; font-size: 12px; font-weight: 600; margin-bottom: 15px; }
.event-grid-title { margin: 0 0 5px; font-size: 22px; font-weight: bold; }
.event-grid-location { margin: 0 0 15px; font-size: 14px; opacity: 0.8; }
.event-grid-excerpt { margin: 0 0 20px; font-size: 15px; line-height: 1.5; flex-grow: 1; }
.event-grid-link { display: inline-flex; align-items: center; text-decoration: none; color: inherit; font-weight: 500; margin-top: auto; }
.arrow-icon { margin-left: 5px; transition: transform 0.3s ease; }
.event-grid-link:hover .arrow-icon { transform: translateX(5px); }

@media (max-width: 1024px) {
    .event-grid-wrapper { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 768px) {
    .event-grid-wrapper { grid-template-columns: 1fr; }
}