:root{
  --bg:#24090f;
  --fg:#ffffff;
  --muted:rgba(255,255,255,.85);
  --card:rgba(255,255,255,.06);
  --border:rgba(255,255,255,.14);
  --accent:#d72638;
  --accent2:#ff7a1a;
}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,Arial,sans-serif;background:var(--bg);color:var(--fg)}
a{color:inherit}
.container{max-width:960px;margin:0 auto;padding:0 1rem}
.topbar{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.9rem 0}
.brand{display:flex;align-items:center;gap:.75rem;text-decoration:none}
.brand img{width:38px;height:38px;object-fit:contain}
.brand strong{letter-spacing:.02em}
.lang{display:flex;gap:.4rem;flex-wrap:wrap}
.lang a{border:1px solid rgba(255,255,255,.25);border-radius:999px;padding:.25rem .65rem;text-decoration:none;font-weight:700;font-size:.9rem;opacity:.9}
.lang a[aria-current="page"]{background:var(--accent);border-color:var(--accent);opacity:1}

.hero{padding:2.25rem 0 1.25rem}
.hero-grid{display:grid;grid-template-columns:1fr;gap:1.5rem;align-items:center}
.hero-logo{max-width:240px;width:100%;filter:drop-shadow(0 6px 24px rgba(0,0,0,.35))}
.h1{font-size:clamp(2.1rem,4.7vw,3.2rem);font-weight:900;margin:.2rem 0 .6rem;letter-spacing:.02em}
.h1 span{font-weight:400;font-size:.64em}
.lead{font-size:clamp(1rem,2.3vw,1.15rem);color:var(--muted);margin:0 0 1.1rem}

.event-pill{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.9rem 1rem;margin:0 0 1.1rem;border-radius:14px;background:var(--card);border:1px solid var(--border);backdrop-filter:blur(6px)}
.event-pill__left{display:flex;flex-direction:column;gap:.15rem;min-width:0}
.event-pill__label{font-size:.85rem;opacity:.85}
.event-pill__title{font-size:1.05rem;letter-spacing:.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:42ch}
.event-pill__right{display:flex;flex-direction:column;gap:.25rem;align-items:flex-end}
.event-pill__dt{font-weight:900}
.event-pill__links{display:flex;gap:.75rem;flex-wrap:wrap;justify-content:flex-end}
.event-pill__link{font-size:.9rem;color:var(--accent2);text-decoration:none;font-weight:800}
.event-pill__link:hover{text-decoration:underline}

.actions{display:flex;flex-direction:column;gap:.8rem;margin:.25rem 0 0}
.btn{display:inline-block;padding:.9rem 1.2rem;border-radius:10px;text-decoration:none;font-weight:800;border:2px solid transparent;text-align:center}
.btn.primary{background:var(--accent)}
.btn.secondary{border-color:var(--accent)}

.section{padding:1.25rem 0}
.section h2{margin:0 0 .65rem;font-size:1.25rem}
.card{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:1rem}
.grid{display:grid;grid-template-columns:1fr;gap:.75rem}
.item{display:flex;flex-direction:column;gap:.35rem}
.badge{display:inline-block;font-size:.8rem;font-weight:800;letter-spacing:.02em;color:rgba(255,255,255,.92);background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.18);padding:.2rem .55rem;border-radius:999px;width:max-content}
.meta{opacity:.85;font-size:.95rem}
.small{opacity:.85;font-size:.92rem}

.search{display:flex;gap:.6rem;flex-wrap:wrap}
.search input{flex:1;min-width:220px;border:1px solid rgba(255,255,255,.22);border-radius:10px;padding:.75rem .9rem;background:rgba(0,0,0,.18);color:#fff;outline:none}
.search input:focus{border-color:rgba(255,255,255,.45)}

.map-card{margin-top:1rem;padding:1rem;border-radius:14px;background:var(--card);border:1px solid var(--border)}
.map-card__desc{margin:.25rem 0 1rem;color:var(--muted)}
.map-card__map{margin-top:1rem;width:100%;height:320px;border-radius:12px;overflow:hidden;border:1px solid rgba(255,255,255,.16)}

.footer{padding:1.5rem 0 2.25rem;color:var(--muted);font-size:.95rem}
.footer a{color:var(--accent2);text-decoration:none;font-weight:800}
.footer a:hover{text-decoration:underline}

@media (min-width: 860px){
  .hero-grid{grid-template-columns:260px 1fr;gap:2.3rem}
  .actions{flex-direction:row}
}
@media (max-width: 420px){
  .event-pill{flex-direction:column;align-items:flex-start}
  .event-pill__right{align-items:flex-start}
  .event-pill__links{justify-content:flex-start}
}