/* Base styles */
html {
  font-size: var(--font-size-base);
  font-family: var(--font-family-base);
  line-height: var(--line-height-normal);
  color: var(--color-text);
  background-color: var(--color-background);
  -webkit-font-smoothing: antialiased;
  box-sizing: border-box;
}

body {
  margin: 0;
  padding: 0;
}

*,
*::before,
*::after {
  box-sizing: inherit;
}

/* Typography */
h1,
h2,
h3,
h4,
h5,
h6 {
  margin: 0;
  font-weight: var(--font-weight-semibold);
  line-height: var(--line-height-tight);
  color: var(--color-text);
  letter-spacing: var(--letter-spacing-tight);
}

h1 {
  font-size: var(--font-size-4xl);
}

/* Navigation */
.nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: var(--space-16);
  background-color: var(--color-surface);
  border-bottom: 1px solid var(--color-border);
}

.nav__logo {
  font-size: var(--font-size-xl);
  font-weight: var(--font-weight-bold);
  color: var(--color-text);
  text-decoration: none;
}

.nav__menu {
  display: flex;
  gap: var(--space-16);
  list-style: none;
  margin: 0;
  padding: 0;
}

.nav__link {
  color: var(--color-text);
  text-decoration: none;
  transition: color var(--duration-fast) var(--ease-standard);
}

.nav__link:hover {
  color: var(--color-primary);
}

/* Events Grid */
.events-grid {
  display: flex;
  flex-direction: column;
  gap: var(--space-24);
  padding: var(--space-24);
  margin-top: var(--space-24);
}

.event-card {
  background-color: var(--color-surface);
  border-radius: var(--radius-lg);
  border: 1px solid var(--color-card-border);
  box-shadow: var(--shadow-sm);
  overflow: hidden;
  transition: box-shadow var(--duration-normal) var(--ease-standard);
}

.event-card:hover {
  box-shadow: var(--shadow-md);
}

.event-img {
  width: 100%;
  height: 200px;
  object-fit: cover;
}

.event-info {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  min-height: 100px;
  padding: var(--space-4);
  text-align: center;
}

.event-meta {
  margin-top: var(--space-2);
  font-size: 0.9rem;
  color: var(--color-text-secondary);
}

.event-title {
  font-size: var(--font-size-xl);
  margin: var(--space-8) 0;
  color: var(--color-text);
  text-align: center;
}

.event-meta {
  color: var(--color-text-secondary);
  font-size: var(--font-size-sm);
  margin: 0;
}

.event-date,
.event-location {
  display: inline-block;
}

.event-location {
  margin-left: var(--space-4);
}

/* Container */
.container {
  width: 100%;
  max-width: var(--container-lg);
  margin: 0 auto;
  padding: 0 var(--space-16);
}

/* Footer */
.footer {
  background-color: var(--color-surface);
  border-top: 1px solid var(--color-border);
  padding: var(--space-24) 0;
  margin-top: var(--space-32);
}

.footer__content {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.footer__text {
  color: var(--color-text-secondary);
  font-size: var(--font-size-sm);
}

/* Dark mode */
@media (prefers-color-scheme: dark) {
  :root {
    --color-background: var(--color-charcoal-700);
    --color-surface: var(--color-charcoal-800);
    --color-text: var(--color-gray-200);
    --color-text-secondary: rgba(var(--color-gray-300-rgb), 0.7);
    --color-border: rgba(var(--color-gray-400-rgb), 0.3);
    --color-card-border: rgba(var(--color-gray-400-rgb), 0.2);
    --color-card-border-inner: rgba(var(--color-gray-400-rgb), 0.15);
  }
}