:root {
  --events-ink: #252b2d;
  --events-muted: #6f7470;
  --events-paper: #f7f3ec;
  --events-surface: #fffdf9;
  --events-line: #ded7cc;
  --events-orange: #c95e3f;
  --events-orange-dark: #a94831;
  --events-sage: #7d8c79;
  --events-charcoal: #303638;
  --events-shadow: 0 14px 35px rgba(54, 47, 38, .11);
}

.events-page { min-height: 60vh; overflow: hidden; background: var(--events-paper); color: var(--events-ink); }
.events-container { width: min(1180px, calc(100% - 2rem)); margin: 0 auto; }
.events-hero { position: relative; overflow: hidden; border-bottom: 1px solid var(--events-line); background: #f4eee4; }
.events-hero::before, .events-hero::after { position: absolute; content: ""; pointer-events: none; }
.events-hero::before { top: -7rem; right: 21%; width: 25rem; height: 25rem; border: 1px solid rgba(125, 140, 121, .25); border-radius: 50%; }
.events-hero::after { right: 0; bottom: -8rem; width: 37rem; height: 20rem; background: rgba(201, 94, 63, .08); border-radius: 50% 0 0; transform: rotate(-8deg); }
.events-hero-inner { position: relative; z-index: 1; display: grid; min-height: 270px; grid-template-columns: minmax(0, .95fr) minmax(320px, 1.05fr); align-items: center; gap: 2rem; }
.events-hero-copy { position: relative; z-index: 2; padding: 2.75rem 0; }
.events-kicker { margin: 0 0 .85rem; color: var(--events-orange); font-size: .72rem; font-weight: 700; letter-spacing: .24em; text-transform: uppercase; }
.events-hero h1 { max-width: 680px; margin: 0; color: var(--events-ink); font-family: Georgia, "Times New Roman", serif; font-size: clamp(2.6rem, 4.7vw, 4.4rem); font-weight: 400; letter-spacing: 0; line-height: .98; }
.events-intro { max-width: 560px; margin: 1rem 0 0; color: var(--events-muted); font-size: 1.1rem; line-height: 1.6; }
.events-status { min-height: 1.5rem; margin: 1.5rem 0 0; color: var(--events-muted); font-size: .9rem; }
.events-status[data-state="error"] { color: #a33b2d; }
.events-hero-art { position: relative; min-height: 245px; overflow: hidden; }
.events-hero-disc { position: absolute; display: block; border-radius: 50%; }
.events-hero-disc-one { top: 2%; right: 14%; width: 15rem; height: 15rem; background: rgba(201, 94, 63, .16); }
.events-hero-disc-two { top: 16%; right: 23%; width: 11rem; height: 11rem; border: 1px solid rgba(125, 140, 121, .55); }
.events-hero-line { position: absolute; display: block; height: 1px; background: var(--events-orange); transform-origin: left center; }
.events-hero-line-one { top: 71%; right: 11%; width: 14rem; transform: rotate(-18deg); }
.events-hero-line-two { top: 77%; right: 24%; width: 8rem; background: var(--events-sage); transform: rotate(24deg); }
.events-hero-leaf { position: absolute; display: block; width: 3.2rem; height: 7.5rem; border: 1px solid rgba(125, 140, 121, .65); border-radius: 100% 0 100% 0; transform: rotate(38deg); }
.events-hero-leaf-one { top: 4%; right: 4%; }
.events-hero-leaf-two { right: 0; bottom: 2%; transform: rotate(122deg) scale(.72); }
.events-hero-caption { position: absolute; top: 25%; right: 31%; color: var(--events-sage); font-family: Georgia, "Times New Roman", serif; font-size: clamp(1.45rem, 2.5vw, 2.25rem); font-style: italic; line-height: .95; transform: rotate(-8deg); }
.events-catalogue-section { padding: 4.25rem 0 5.5rem; }
.events-catalogue { display: grid; grid-template-columns: repeat(3, minmax(260px, 360px)); justify-content: center; gap: 1.5rem; align-items: stretch; }
.events-catalogue[data-count="1"] { grid-template-columns: minmax(260px, 360px); }
.events-catalogue[data-count="2"] { grid-template-columns: repeat(2, minmax(260px, 360px)); }
.events-card { display: flex; min-width: 0; flex-direction: column; overflow: hidden; border: 1px solid var(--events-line); border-radius: 7px; background: var(--events-surface); box-shadow: var(--events-shadow); animation: events-reveal .55s ease both; }
.events-card-media { position: relative; }
.events-card-cover { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; background: #e7ded1; }
.events-card-cover.is-fallback { background: linear-gradient(135deg, #d6c7b2, #aebcaf 52%, #c95e3f); }
.events-card-date { position: absolute; top: .8rem; left: .8rem; display: grid; width: 58px; min-height: 70px; align-content: center; justify-items: center; padding: .35rem .25rem; border: 1px solid rgba(222, 215, 204, .9); border-radius: 4px; background: rgba(255, 253, 249, .96); color: var(--events-orange); font-size: .58rem; font-weight: 700; letter-spacing: .12em; line-height: 1.25; box-shadow: 0 5px 14px rgba(30, 28, 24, .16); }
.events-card-date strong { color: var(--events-ink); font-family: Georgia, "Times New Roman", serif; font-size: 1.55rem; font-weight: 400; letter-spacing: 0; line-height: 1; }
.events-card-body { display: flex; min-height: 285px; flex: 1; flex-direction: column; padding: 1.25rem; }
.events-card-badges { display: flex; flex-wrap: wrap; gap: .45rem; margin-bottom: .85rem; }
.events-badge { display: inline-flex; min-height: 27px; align-items: center; padding: .25rem .55rem; border: 1px solid rgba(201, 94, 63, .35); border-radius: 4px; color: var(--events-orange-dark); font-size: .7rem; font-weight: 700; }
.events-badge.quiet { border-color: var(--events-line); color: var(--events-muted); }
.events-badge.not_started { border-color: rgba(201, 94, 63, .35); color: var(--events-orange-dark); }
.events-badge.ended, .events-badge.unavailable { border-color: var(--events-line); color: var(--events-muted); }
.events-card h3 { margin: 0; color: var(--events-ink); font-family: Georgia, "Times New Roman", serif; font-size: 1.65rem; font-weight: 400; line-height: 1.12; }
.events-card-subtitle, .events-card-meta, .events-card-venue { margin: .55rem 0 0; color: var(--events-muted); line-height: 1.5; }
.events-card-meta, .events-card-venue, .events-badge { display: inline-flex; align-items: flex-start; gap: 10px; }
.event-meta-icon { display: inline-flex; width: 18px; height: 18px; flex: 0 0 18px; align-items: center; justify-content: center; color: currentColor; }
.event-meta-icon svg { display: block; width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.events-card-meta { color: var(--events-ink); font-weight: 400; }
.events-card-description { display: -webkit-box; overflow: hidden; margin: 1rem 0; color: var(--events-muted); line-height: 1.6; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.events-card-actions { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: auto; padding-top: .75rem; }
.events-button { display: inline-flex; min-height: 44px; flex: 1 1 130px; align-items: center; justify-content: center; padding: .65rem .9rem; border: 1px solid transparent; border-radius: 6px; font-weight: 700; text-align: center; text-decoration: none; cursor: pointer; }
.events-button:focus-visible { outline: 3px solid #d49a58; outline-offset: 3px; }
.events-button-dark { border-color: var(--events-orange); background: var(--events-surface); color: var(--events-ink); }
.events-button-dark:hover { background: #f7ebe1; color: var(--events-orange-dark); }
.events-button-light { border-color: var(--events-orange); background: var(--events-orange); color: #fff; }
.events-button-light:hover { border-color: var(--events-orange-dark); background: var(--events-orange-dark); color: #fff; }
.events-state { max-width: 620px; margin: 0 auto; padding: 2.5rem 1.5rem; border: 1px solid var(--events-line); border-radius: 7px; background: var(--events-surface); text-align: center; box-shadow: var(--events-shadow); }
.events-state h2 { margin: 0; color: var(--events-ink); font-family: Georgia, "Times New Roman", serif; font-size: 2rem; font-weight: 400; }
.events-state p { margin: .75rem 0 0; color: var(--events-muted); line-height: 1.6; }
.events-state-error { border-color: rgba(163, 59, 45, .24); }
.events-state .events-button { margin-top: 1.25rem; }
.events-footer-links { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; }
.social-media-strip-links { display: flex; min-width: 0; flex-wrap: wrap; justify-content: flex-end; gap: .55rem; }
.social-pill { display: inline-flex; min-height: 44px; align-items: center; justify-content: center; gap: .4rem; padding: .55rem .85rem; border: 1px solid #4b5563; border-radius: 5px; background: #4b5563; box-shadow: none; color: #fff; font-size: .8rem; font-weight: 700; text-decoration: none; transition: background-color .2s ease, border-color .2s ease, color .2s ease; }
.social-pill:hover, .social-pill:focus-visible { border-color: var(--events-orange); background: var(--events-orange); color: #fff; }
.social-pill:focus-visible { outline: 3px solid var(--events-orange); outline-offset: 3px; }
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

@keyframes events-reveal { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } }
@media (max-width: 980px) { .events-catalogue { grid-template-columns: repeat(2, minmax(260px, 360px)); } }
@media (max-width: 760px) { .events-hero-inner { grid-template-columns: 1fr; min-height: 0; gap: 0; } .events-hero-copy { padding: 2.5rem 0 1rem; } .events-hero h1 { font-size: clamp(2.45rem, 13vw, 3.6rem); } .events-hero-art { min-height: 120px; } .events-hero-disc-one { top: -3rem; right: 12%; width: 12rem; height: 12rem; } .events-hero-disc-two { top: -.5rem; right: 27%; width: 8rem; height: 8rem; } .events-hero-caption { top: 18%; right: 33%; font-size: 1.45rem; } .events-hero-line-one { top: 77%; right: 11%; } .events-hero-line-two { top: 83%; right: 31%; } .events-hero-leaf { transform: scale(.68) rotate(38deg); } }
@media (max-width: 620px) { .events-container { width: min(100% - 1.25rem, 560px); } .events-catalogue-section { padding-top: 3rem; } .events-catalogue { grid-template-columns: minmax(0, 360px); } .events-card-body { min-height: 0; padding: 1rem; } .events-card-actions > * { flex: 1 1 130px; } .social-media-strip-inner { align-items: stretch; flex-direction: column; } .social-media-strip-links { justify-content: stretch; } .social-pill { flex: 1 1 calc(50% - .55rem); } }
@media (max-width: 760px) { .events-catalogue, .events-catalogue[data-count="1"], .events-catalogue[data-count="2"] { width: 100%; grid-template-columns: minmax(0, 1fr); justify-content: stretch; overflow: visible; grid-auto-flow: row; grid-auto-columns: auto; } .events-card { width: 100%; max-width: 100%; min-width: 0; } .events-card-body, .events-card h3, .events-card-subtitle, .events-card-meta, .events-card-venue, .events-card-description, .events-card-actions { min-width: 0; overflow-wrap: anywhere; } }
@media (max-width: 360px) { .events-card-actions > * { flex-basis: 100%; } .social-pill { flex-basis: 100%; } }
@media (prefers-reduced-motion: reduce) { .events-card { animation: none; } }
