:root {
    --cream: #f0e4d3;
    --maroon: #5c1a2b;
    --maroon-dark: #4a1421;
    --ink: #2b1a1e;
    --muted: #6b5a5e;
    --card: #ffffff;
    --serif: "Gelasio", Georgia, serif;
    --sans: "Inter", system-ui, sans-serif;
  }
  * { box-sizing: border-box; margin: 0; padding: 0; }
  body { background: var(--cream); color: var(--ink); font-family: var(--sans); line-height: 1.5; }
  a { color: inherit; text-decoration: none; }
  img { display: block; width: 100%; height: 100%; object-fit: cover; }
  :focus-visible { outline: 2px solid var(--maroon); outline-offset: 3px; }
  .wrap { max-width: 1040px; margin: 0 auto; padding: 0 24px; }

  /* Header */
  header .wrap { display: flex; align-items: center; justify-content: space-between; padding-top: 22px; padding-bottom: 22px; gap: 16px; flex-wrap: wrap; }
  .logo { display: flex; align-items: center; gap: 10px; }
  .logo-img { width: 44px; height: 44px; }
  .logo-text { font-family: var(--serif); font-size: 22px; color: var(--maroon); line-height: 1; }
  .logo-text small { display: block; font-size: 9px; margin-top: 4px; }
  nav ul { display: flex; gap: 22px; list-style: none; font-size: 12px; color: var(--maroon); flex-wrap: wrap; }
  nav a[aria-current="page"] { font-weight: 600; }

  /* Hero */
  .hero .wrap { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; padding-top: 40px; padding-bottom: 48px; }
  .hero h1 { font-family: var(--serif); font-weight: 500; font-size: clamp(32px, 5vw, 46px); line-height: 1.15; color: var(--maroon); margin-bottom: 18px; }
  .hero p { font-size: 14px; color: var(--muted); max-width: 40ch; margin-bottom: 24px; }
  .btn { display: inline-block; background: var(--maroon); color: #fff; font-size: 12px; font-weight: 500; padding: 11px 18px; border-radius: 3px; }
  .btn:hover { background: var(--maroon-dark); }
  .hero-img{position:relative;aspect-ratio:4/3;border-radius:14px;overflow:hidden;background:#d9c3aa}
  .hero-img img,.card-img img{position:absolute;inset:0}

  /* Filters */
  .filters { display: flex; gap: 8px; padding: 8px 0 28px; flex-wrap: wrap; }
  .filters button { font: 600 11px var(--sans); color: var(--maroon); background: #f6ece0; border: 0; border-radius: 999px; padding: 8px 16px; cursor: pointer; }
  .filters button[aria-pressed="true"] { background: var(--maroon); color: #fff; }

  /* Event sections */
  .events-group { margin-bottom: 56px; }
  .events-group h2 { font-family: var(--serif); font-weight: 500; font-size: 24px; margin-bottom: 20px; }
  .grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
  .card { background: var(--card); border-radius: 8px; overflow: hidden; display: flex; flex-direction: column; }
  .card-img { position: relative; aspect-ratio: 16 / 9; background: #d9c3aa; }
  .date { position: absolute; top: 10px; left: 10px; background: #fff; border-radius: 4px; padding: 3px 8px; font-size: 10px; font-weight: 600; line-height: 1.2; text-align: center; }
  .card-body { padding: 14px 16px 18px; }
  .type { font-size: 10px; color: var(--muted); margin-bottom: 6px; }
  .card h3 { font-family: var(--serif); font-weight: 600; font-size: 15px; line-height: 1.25; margin-bottom: 6px; }
  .place { font-size: 11px; color: var(--muted); margin-bottom: 8px; }
  .desc { font-size: 12px; line-height: 1.5; }
  [hidden] { display: none !important; }

  /* CTA banner */
  .cta { background: var(--maroon); color: #fff; border-radius: 8px; padding: 32px 36px; display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; margin-bottom: 56px; }
  .cta h2 { font-family: var(--serif); font-weight: 500; font-size: 26px; margin-bottom: 6px; }
  .cta p { font-size: 12px; max-width: 46ch; opacity: .9; }
  .cta .btn { background: var(--cream); color: var(--maroon); }
  .cta .btn:hover { background: #fff; }

  /* Footer */
  footer {
    background-color: #67202D;
    color: #FFFFFF;
    padding: 40px 60px 20px;
    font-size: 12px;
  }

  footer .wrap {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr 1fr;
    gap: 40px;
  }

  .brand {
    font-family: var(--serif);
    font-weight: 500;
    font-size: 20px;
    letter-spacing: 1px;
    margin-bottom: 12px;
  }

  footer p {
    max-width: 44ch;
    font-size: 11px;
    line-height: 1.5;
    opacity: 0.8;
  }

  footer h4 {
    color: #FFFFFF;
    font-size: 12px;
    margin-bottom: 6px;
  }

  footer ul {
    list-style: none;
    display: grid;
    gap: 8px;
  }

  footer ul li a {
    color: #FFFFFF;
    text-decoration: none;
    font-size: 11px;
    opacity: 0.8;
    transition: opacity 0.3s ease;
  }

  footer ul li a:hover {
    opacity: 1;
  }

  .social {
    display: grid;
    gap: 8px;
  }

  .social a {
    display: flex;
    align-items: center;
    gap: 8px;
    color: #FFFFFF;
    text-decoration: none;
    font-size: 13px;
    font-weight: bold;
    line-height: 1;
    transition: color 0.3s ease, text-shadow 0.3s ease;
  }

  .social svg {
    width: 30px;
    height: 30px;
    flex-shrink: 0;
  }

  .social a:hover {
  text-decoration: underline;
  }
  

  .copy {
    grid-column: 1 / -1;
    font-size: 10px;
    opacity: 0.6;
    margin-top: 8px;
  }

  @media (max-width: 768px) {
    footer {
      padding: 35px 25px 20px;
    }
    footer .wrap {
      grid-template-columns: 1fr;
      gap: 30px;
    }
  }

  @media (max-width: 480px) {
    footer .wrap {
      gap: 25px;
    }
  }
.copy {
  grid-column: 1 / -1;
  font-size: 10px;
  opacity: 0.6;
  margin-top: 15px; 
}

  @media (max-width: 800px) {
    .hero .wrap { grid-template-columns: 1fr; gap: 28px; }
    .grid { grid-template-columns: 1fr; }
    footer .wrap { grid-template-columns: 1fr 1fr; }
    footer .wrap > div:first-child { grid-column: 1 / -1; }
  }