/* Event Calendar Styling - Blueprint Part 5.2.2 */

.event-banner {
    color: white;
    padding: var(--space-md) 0;
    position: relative;
    overflow: hidden;
    animation: slideDown 0.5s var(--easing-out);
    z-index: 900;
}

.event-banner::before {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,0.1);
}

.event-banner-container {
    display: grid;
    grid-template-columns: 60px 1fr auto;
    gap: var(--space-md);
    align-items: center;
    position: relative;
    z-index: 1;
}

.event-ornament {
    font-size: 32px;
    display: flex;
    justify-content: center;
    animation: pulseOrnaments 2s infinite ease-in-out;
}

.event-title {
    font-size: var(--font-h5);
    font-weight: var(--font-weight-bold);
    margin: 0;
}

.event-subtitle {
    font-size: var(--font-body-sm);
    margin: 2px 0 0;
    opacity: 0.9;
}

.event-promo {
    font-size: var(--font-body-xs);
    margin-top: 4px;
    font-weight: var(--font-weight-medium);
    display: inline-block;
    background: rgba(255,255,255,0.2);
    padding: 2px 8px;
    border-radius: var(--border-radius-pill);
}

.event-banner-close {
    background: none;
    border: none;
    color: white;
    font-size: 24px;
    cursor: pointer;
    opacity: 0.7;
    transition: opacity var(--transition-fast);
}

.event-banner-close:hover {
    opacity: 1;
}

@keyframes slideDown {
    from { transform: translateY(-100%); }
    to { transform: translateY(0); }
}

@keyframes pulseOrnaments {
    0%, 100% { transform: scale(1); filter: drop-shadow(0 0 5px rgba(255,255,255,0.5)); }
    50% { transform: scale(1.2); filter: drop-shadow(0 0 15px rgba(255,255,255,0.8)); }
}

@media (max-width: 768px) {
    .event-ornament { display: none; }
    .event-banner-container { grid-template-columns: 1fr auto; }
}
