.cal-head { display: flex; align-items: flex-end; justify-content: space-between; gap: var(--space-4); flex-wrap: wrap; margin-bottom: var(--space-6); }
.cal-head h1 { margin: 0 0 var(--space-1); }
.cal-sub { margin: 0; }

#calendario-eventos {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: var(--space-4);
  box-shadow: var(--shadow-card);
}

.ev-bloque { margin-top: var(--space-8); }

.ev-grid {
  display: grid; gap: var(--space-4);
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
}
.ev-card {
  display: flex; flex-direction: column;
  background: var(--color-surface); border: 1px solid var(--color-border);
  border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-card);
  color: var(--color-text-primary);
  transition: transform var(--transition-base), box-shadow var(--transition-base);
}
.ev-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-elevated); }
.ev-card-foto { position: relative; aspect-ratio: 16 / 10; background: var(--color-bg-tint); }
.ev-card-foto img { width: 100%; height: 100%; object-fit: cover; }
.ev-card-noimg { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; color: var(--color-gold-deep); }
.ev-card-noimg .ic { width: 40px; height: 40px; }
.ev-card-fecha {
  position: absolute; left: var(--space-3); bottom: var(--space-3);
  background: rgba(42,32,24,.78); color: #fff; backdrop-filter: blur(2px);
  font-size: 12px; font-weight: var(--font-weight-semibold); text-transform: uppercase; letter-spacing: .03em;
  padding: 4px 10px; border-radius: var(--radius-full);
}
.ev-card-info { padding: var(--space-4); display: flex; flex-direction: column; gap: 4px; }
.ev-card-info strong { color: var(--color-ink); font-family: var(--font-display); font-size: var(--font-size-lg); line-height: 1.2; }
.ev-card-info small { display: inline-flex; align-items: center; gap: 4px; }
.ev-card-info .ic { width: 14px; height: 14px; color: var(--color-primary); }
