/* Events & gatherings — Ana Guidance */
.events-page .navbar { margin-bottom: 0; }
.events-page .nav-menu { gap: 1.2rem; }
.events-page .nav-link { white-space: nowrap; }
.events-page .nav-link.active { color: #fbbf24; border-color: #fbbf24; }
.events-page .events-wrap { max-width: 1160px; margin: 0 auto; padding-left: 24px; padding-right: 24px; }
.events-page .events-hero {
    position: relative;
    overflow: hidden;
    padding: 5rem 0 5.3rem;
    text-align: center;
    background:
        radial-gradient(circle at 18% 30%, rgba(217,70,166,.23), transparent 37%),
        radial-gradient(circle at 87% 80%, rgba(251,191,36,.10), transparent 30%),
        linear-gradient(135deg, #211731, #442156 55%, #301738);
}
.events-hero::after {
    content: "✧";
    position: absolute;
    top: -100px;
    right: 8%;
    color: rgba(255,255,255,.07);
    font-size: 27rem;
    line-height: 1;
    pointer-events: none;
}
.events-hero .events-wrap { position: relative; z-index: 1; }
.events-page .events-eyebrow {
    margin: 0 0 .7rem;
    color: #9b376f;
    font-family: 'Segoe UI', Tahoma, sans-serif;
    font-size: .78rem;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: .18em;
    text-transform: uppercase;
}
.events-hero .events-eyebrow { color: #fbbf24; }
.events-hero h1 {
    max-width: 800px;
    margin: 0 auto 1.05rem;
    font-family: Georgia, serif;
    font-size: clamp(2.6rem, 5vw, 4.5rem);
    font-weight: 500;
    line-height: 1.13;
    letter-spacing: -.035em;
}
.events-hero p:last-child { max-width: 660px; margin: 0 auto; color: #f0e5f0; font-size: 1.07rem; line-height: 1.65; }
.events-page .events-section-intro { text-align: center; }
.events-page .events-flower { display: block; margin-bottom: .25rem; color: #d39437; font-size: 1.9rem; line-height: 1; }
.events-section-intro h2 {
    color: #301b45;
    font-family: Georgia, serif;
    font-size: clamp(2rem, 3.5vw, 3rem);
    font-weight: 500;
    line-height: 1.2;
}
.events-page .upcoming-events { padding: 4.6rem 0 5.4rem; background: #fff; }
.upcoming-card {
    display: grid;
    grid-template-columns: minmax(0, 44%) minmax(0, 56%);
    overflow: hidden;
    margin-top: 2rem;
    border: 1px solid #ead9e6;
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 18px 55px rgba(54, 22, 60, .1);
}
.upcoming-art { position: relative; min-height: 350px; background: #31182d; }
.upcoming-art img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 54% center; }
.upcoming-art-label {
    position: absolute;
    left: 24px;
    bottom: 24px;
    padding: .48rem .9rem;
    border-radius: 999px;
    background: #fff;
    color: #54224e;
    font-size: .74rem;
    font-weight: 700;
    letter-spacing: .04em;
}
.upcoming-content { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: clamp(1.6rem, 3.8vw, 3.35rem); }
.upcoming-content .upcoming-overline {
    margin: 0 0 .65rem;
    color: #923774;
    font-family: 'Segoe UI', Tahoma, sans-serif;
    font-size: .76rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
}
.upcoming-content h3 { margin: 0 0 1rem; color: #321b43; font-family: Georgia, serif; font-size: clamp(1.9rem, 3vw, 2.9rem); font-weight: 500; line-height: 1.15; }
.upcoming-content .upcoming-summary { max-width: 580px; margin: 0 0 1.25rem; color: #51495c; font-size: 1rem; line-height: 1.6; }
.upcoming-facts { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0 0 1.6rem; }
.upcoming-facts span { padding: .42rem .76rem; border-radius: 999px; background: #f8eff6; color: #512a52; font-size: .78rem; font-weight: 600; line-height: 1.4; }
.upcoming-button {
    display: inline-flex;
    align-items: center;
    gap: .65rem;
    min-height: 46px;
    padding: .73rem 1.35rem;
    border: 1px solid #9c316f;
    border-radius: 999px;
    background: #9c316f;
    color: #fff;
    font-size: .84rem;
    font-weight: 700;
    line-height: 1.3;
    text-decoration: none;
    transition: background .2s ease, transform .2s ease;
}
.upcoming-button:hover { background: #72224f; color: #fff; transform: translateY(-2px); }
.upcoming-button:active { transform: scale(.97); }
.upcoming-button:focus-visible, .archive-note a:focus-visible { outline: 3px solid #e6a12b; outline-offset: 4px; }
.upcoming-content .upcoming-note { margin: .55rem 0 0; color: #686274; font-family: 'Segoe UI', Tahoma, sans-serif; font-size: .76rem; }
.events-page .past-events { padding: 5.4rem 0 6.5rem; background: #faf7fc; }
.past-events .events-section-intro > p:last-child { max-width: 630px; margin: .7rem auto 0; color: #62576b; font-size: 1rem; }
.events-gallery { max-width: 1040px; margin: 2.2rem auto 3rem; }
.events-gallery-grid {
    display: grid;
    grid-template-columns: 1.16fr 1fr;
    grid-template-rows: repeat(2, 180px);
    gap: 12px;
    overflow: hidden;
    border-radius: 18px;
}
.events-gallery-grid img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 35%; }
.events-gallery-grid .events-gallery-featured { grid-row: 1 / 3; object-position: center 33%; }
.events-gallery figcaption { margin-top: .7rem; color: #736579; font-size: .78rem; text-align: center; }
.community-gallery { max-width: 1040px; margin: 0 auto 3.2rem; }
.community-gallery-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); grid-auto-rows: 178px; gap: 12px; }
.community-gallery-grid img { grid-column: span 2; display: block; width: 100%; height: 100%; border-radius: 14px; object-fit: cover; object-position: center 42%; }
.community-gallery-grid img:nth-child(n+4) { grid-column: span 3; }
.community-gallery figcaption { margin-top: .7rem; color: #736579; font-size: .78rem; text-align: center; }
.events-year-group { margin-top: 2.6rem; }
.events-year-group h3 { margin-bottom: 1rem; color: #74345f; font-family: Georgia, serif; font-size: 1.75rem; font-weight: 500; }
.past-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; }
.past-card {
    display: flex;
    align-items: center;
    gap: 1rem;
    min-height: 112px;
    padding: 1.1rem 1.2rem;
    border: 1px solid #eee2ed;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 4px 17px rgba(54, 22, 60, .045);
}
.past-date {
    display: flex;
    flex: 0 0 61px;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    width: 61px;
    height: 65px;
    border-radius: 12px;
    background: #f7ebf4;
    color: #713062;
    line-height: 1.1;
}
.past-date strong { font-family: Georgia, serif; font-size: 1.55rem; font-weight: 500; }
.past-date span { margin-top: .17rem; font-size: .68rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.past-card h4 { margin: 0; color: #30233b; font-family: 'Segoe UI', Tahoma, sans-serif; font-size: .99rem; font-weight: 650; line-height: 1.4; }
.past-card p { margin: .32rem 0 0; color: #625a69; font-family: 'Segoe UI', Tahoma, sans-serif; font-size: .82rem; line-height: 1.4; }
.archive-note { margin: 3.25rem 0 0; color: #645d6a; font-family: 'Segoe UI', Tahoma, sans-serif; font-size: .88rem; text-align: center; }
.archive-note a { color: #742863; font-weight: 700; text-underline-offset: 3px; }
.archive-note a:hover { color: #a5387e; }
@media (max-width: 980px) and (min-width: 769px) {
    .events-page .nav-menu { gap: .5rem; }
    .events-page .nav-link { font-size: .82rem; }
    .events-page .nav-container { padding-left: 0; padding-right: 0; }
}
@media (max-width: 768px) {
    .events-page .events-hero { padding: 3.7rem 0 4rem; }
    .events-page .upcoming-events { padding: 3.4rem 0 4rem; }
    .upcoming-card { grid-template-columns: 1fr; }
    .upcoming-art { height: 240px; min-height: 0; }
    .events-page .past-events { padding: 4rem 0 5rem; }
    .events-page .nav-menu { gap: .5rem; }
}
@media (max-width: 630px) {
    .events-page .events-wrap { padding-left: 18px; padding-right: 18px; }
    .events-gallery { margin: 1.8rem auto 2.5rem; }
    .events-gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: 200px 125px; gap: 8px; border-radius: 14px; }
    .events-gallery-grid .events-gallery-featured { grid-column: 1 / -1; grid-row: 1; }
    .community-gallery { margin-bottom: 2.6rem; }
    .community-gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: 145px 145px 185px; gap: 8px; }
    .community-gallery-grid img, .community-gallery-grid img:nth-child(n+4) { grid-column: span 1; border-radius: 10px; }
    .community-gallery-grid img:last-child { grid-column: 1 / -1; }
    .past-grid { grid-template-columns: 1fr; gap: 11px; }
    .past-card { min-height: 96px; padding: .85rem; }
    .past-date { flex-basis: 54px; width: 54px; height: 58px; }
    .past-date strong { font-size: 1.35rem; }
    .upcoming-art { height: 205px; }
    .upcoming-content { padding: 1.5rem; }
    .upcoming-content h3 { font-size: 1.95rem; }
    .events-hero p:last-child { font-size: .98rem; }
}
@media (prefers-reduced-motion: reduce) {
    .upcoming-button { transition: none; }
}
