:root {
  --fg:#111;
  --bg:#fff;
  --brand:#2563eb;
  --brand-light:#60a5fa;
  --accent1:#f97316;
  --accent2:#8b5cf6;
  --accent3:#06b6d4;
  --card1:#fff1e6;
  --card1-border:#fb923c;
  --card2:#ede9fe;
  --card2-border:#a78bfa;
  --card3:#cffafe;
  --card3-border:#22d3ee;
  --upcoming:#ecfdf5;
  --upcoming-border:#10b981;
  --past:#fef2f2;
  --past-border:#f87171;
}
*{box-sizing:border-box} html{font:16px/1.6 system-ui,-apple-system,Segoe UI,Roboto} body{margin:0;color:var(--fg);background:var(--bg)}
.container{max-width:960px;margin:0 auto;padding:1rem}
.site-header{border-bottom:1px solid #eee;background:#fff;position:sticky;top:0;box-shadow:0 4px 20px rgba(0,0,0,0.08);z-index:1000}
.banner{background:#fff;text-align:center;padding:1rem 0}
.banner-image{max-width:100%;height:auto;max-height:120px}
.nav{display:flex;gap:1rem;align-items:center}
.nav a{padding:.75rem .5rem;text-decoration:none;color:#333}
.nav a[aria-current]{color:var(--brand);font-weight:600;text-shadow:0 0 10px rgba(37,99,235,0.2)}
.brand{font-weight:700}
.hero{padding:3rem 0;background:linear-gradient(180deg,#f7f9ff,#fff)}
h1,h2,h3{line-height:1.2}
h1{font-size:2rem;text-shadow:0 2px 4px rgba(0,0,0,0.1)}
h2{font-size:1.5rem;text-shadow:0 1px 2px rgba(0,0,0,0.1)}
h3{font-size:1.125rem}
.muted{color:var(--muted)}
.grid{display:grid;grid-template-columns:2fr 1fr;gap:1.5rem}
.grid aside.card {
  background:var(--card2);
  border:2px solid var(--card2-border);
  position:relative;
  overflow:hidden;
  box-shadow:0 4px 6px rgba(0,0,0,0.1), 0 1px 3px rgba(0,0,0,0.08),
    inset 0 2px 4px rgba(255,255,255,0.5);
  transition:all 0.3s;
}
.grid aside.card:hover {
  transform:translateY(-3px);
  box-shadow:0 8px 20px rgba(0,0,0,0.12), 0 3px 6px rgba(0,0,0,0.08),
    inset 0 2px 4px rgba(255,255,255,0.5);
}
.grid aside.card::before {
  content:'';
  position:absolute;
  top:0;
  right:0;
  width:100px;
  height:100px;
  background:var(--card2-border);
  opacity:0.1;
  border-radius:50%;
  transform:translate(30%, -30%);
}
.grid aside.card h3 {
  color:var(--accent2);
  font-size:1.3rem;
}
.grid aside.card a {
  color:var(--accent2);
  text-decoration:none;
  font-weight:500;
  transition:color 0.2s;
}
.grid aside.card a:hover {
  color:var(--brand);
}
.grid aside.card p {
  font-size:1.1rem;
  line-height:1.8;
}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem}
#events-content{display:grid;grid-template-columns:repeat(auto-fit, minmax(300px, 1fr));gap:1.5rem}
#events-content > h2 {
  grid-column:1/-1;
  margin:2rem 0 1rem;
  padding:0.5rem 1rem;
  background:var(--brand);
  color:white;
  font-size:1.2rem;
  text-transform:uppercase;
  letter-spacing:0.05em;
  border-radius:8px;
  text-align:center;
  box-shadow:0 4px 15px rgba(37,99,235,0.2);
}
/* Style commun des cartes */
.card {
  border-radius:14px;
  padding:1.5rem;
  height:100%;
  transition:all 0.3s;
  box-shadow:0 4px 6px rgba(0,0,0,0.1), 0 1px 3px rgba(0,0,0,0.08);
  position:static;
}
.card:hover {
  transform:translateY(-3px);
  box-shadow:0 8px 20px rgba(0,0,0,0.12), 0 3px 6px rgba(0,0,0,0.08);
}

/* Événements à venir */
#events-content h2:first-of-type ~ .card {
  background:var(--upcoming);
  border:2px solid var(--upcoming-border);
}

/* Événements passés */
#events-content h2:last-of-type ~ .card {
  background:var(--past);
  border:2px solid var(--past-border);
}

/* Cartes de la page d'accueil */
.cards .card:nth-child(3n+1) {
  background:var(--card1);
  border:2px solid var(--card1-border);
}
.cards .card:nth-child(3n+2) {
  background:var(--card2);
  border:2px solid var(--card2-border);
}
.cards .card:nth-child(3n+3) {
  background:var(--card3);
  border:2px solid var(--card3-border);
}

/* Style commun des titres et contenus */
.card h3 {
  margin-top:0;
  margin-bottom:1rem;
  font-size:1.2rem;
  color:var(--brand);
}
.card p {
  margin:0.5rem 0;
  line-height:1.6;
}
.card em {
  font-weight:500;
  color:var(--accent1);
  font-style:normal;
  display:inline-block;
  margin-right:0.3rem;
  font-size:0.9rem;
}
.check{padding-left:1.2rem} .check li{margin:.25rem 0}
.prose p{margin:.5rem 0} .prose h2{margin-top:2rem} .prose h3{margin-top:1.2rem}
.site-footer{border-top:1px solid #eee;margin-top:2rem;padding:1rem 0;color:var(--muted)}
@media (max-width:800px){.grid{grid-template-columns:1fr}}
