.events-shell {
    max-width:1320px;
    margin:auto;
    padding:0 clamp(18px,4vw,56px) 50px;
    color:#252023;
    background:#fffaf7
}
.events-shell h1,.events-shell h2,.events-shell h3 {
    font-family:'Barlow Condensed',sans-serif;
    line-height:1.06;
    letter-spacing:-.02em
}
.events-shell h1 {
    font-size:clamp(44px,7vw,88px);
    margin:16px 0 24px
}
.events-shell h2 {
    font-size:clamp(30px,4vw,46px);
    margin:0 0 22px
}
.events-shell h3 {
    font-size:27px;
    margin:10px 0
}
.events-shell p {
    line-height:1.7
}
.events-nav {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:20px;
    padding:25px 0;
    border-bottom:1px solid #ddcec9
}
.events-nav div {
    display:flex;
    gap:20px;
    flex-wrap:wrap;
    font-size:12px;
    font-weight:700
}
.ev-wordmark {
    font-weight:800
}
.ev-wordmark span {
    color:#a4104c
}
.events-hero {
    display:grid;
    grid-template-columns:1.2fr 1fr;
    gap:45px;
    padding:65px 0
}
.events-hero h1 span {
    color:#b01554
}
.events-hero p {
    max-width:520px
}
.events-eyebrow {
    font-size:11px!important;
    font-weight:800;
    letter-spacing:.14em;
    text-transform:uppercase;
    color:#8c174c
}
.events-actions {
    display:flex;
    gap:12px;
    align-items:center;
    flex-wrap:wrap
}
.ev-button {
    display:inline-flex;
    justify-content:center;
    align-items:center;
    min-height:48px;
    padding:13px 22px;
    border:1px solid #a4104c;
    background:#a4104c;
    color:#fff;
    border-radius:7px;
    font:700 13px Montserrat,sans-serif;
    cursor:pointer;
    text-align:center
}
.ev-button:hover {
    background:#76103a;
    color:#fff
}
.ev-secondary {
    background:transparent;
    color:#75103c;
    border-color:#b69da6
}
.ev-secondary:hover {
    background:#f8e4eb;
    color:#75103c
}
.ev-danger {
    background:#6d2433;
    border-color:#6d2433
}
.events-fine {
    font-size:12px!important;
    color:#64545c
}
.events-art {
    position:relative;
    min-height:380px;
    background:#f8bed1;
    border-radius:46% 46% 15px 15px;
    display:flex;
    align-items:center;
    justify-content:center;
    overflow:hidden;
    transform:rotate(2deg)
}
.ev-art-label {
    position:relative;
    z-index:1;
    font:800 clamp(32px,4vw,58px)/1.05 'Barlow Condensed',sans-serif;
    transform:rotate(-8deg);
    color:#561831
}
.ev-art-heart {
    position:absolute;
    font-size:300px;
    line-height:1;
    color:#ee80a6;
    right:-20px;
    bottom:-20px;
    transform:rotate(-16deg)
}
.ev-art-tag {
    position:absolute;
    bottom:30px;
    left:25px;
    background:#fffaf7;
    padding:12px 20px;
    border-radius:30px;
    font-size:12px;
    font-weight:700
}
.ev-orbit {
    position:absolute;
    top:20px;
    right:30px;
    color:#76103a;
    font-size:70px
}
.events-section {
    padding:38px 0;
    scroll-margin-top:20px
}
.events-filters {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:18px;
    padding:26px;
    background:#fff;
    border:1px solid #e0d3cd;
    border-radius:12px
}
.events-shell label {
    display:block;
    font-size:12px;
    font-weight:700;
    line-height:1.5;
    margin-bottom:7px
}
.events-shell input:not([type=checkbox]),.events-shell select,.events-shell textarea {
    width:100%;
    min-height:46px;
    background:#fff;
    border:1px solid #ae999f;
    border-radius:5px;
    padding:11px;
    font:inherit;
    font-size:14px;
    color:#252023
}
.events-shell textarea {
    resize:vertical
}
.events-shell input[type=checkbox] {
    width:20px;
    height:20px;
    flex:none;
    accent-color:#a4104c
}
.events-shell .ev-check {
    display:flex;
    align-items:flex-start;
    gap:10px;
    font-weight:400;
    margin:10px 0;
    line-height:1.7
}
.ev-section-heading {
    display:flex;
    justify-content:space-between;
    align-items:baseline;
    gap:20px
}
.ev-section-heading>span {
    font-size:12px;
    color:#66545d
}
.events-grid {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:24px
}
.event-card {
    border:1px solid #dfd3cf;
    border-radius:12px;
    background:#fff;
    overflow:hidden;
    transition:transform .18s
}
.event-card:hover {
    transform:translateY(-4px)
}
.event-card-image {
    position:relative;
    aspect-ratio:1.6;
    background:#f8bed1
}
.event-card-image img {
    width:100%;
    height:100%;
    object-fit:cover
}
.ev-badge {
    position:absolute;
    left:15px;
    top:15px;
    background:#fffaf7;
    border-radius:30px;
    padding:7px 12px;
    font-size:11px;
    font-weight:800
}
.event-card-copy {
    padding:22px
}
.ev-date {
    color:#8c174c;
    font-size:12px;
    font-weight:700;
    margin:0
}
.event-card-copy>p {
    font-size:12px
}
.ev-card-bottom {
    border-top:1px solid #eee1df;
    padding-top:14px;
    display:flex;
    justify-content:space-between;
    gap:12px;
    font-size:10px
}
.ev-card-bottom strong {
    color:#7b1945
}
.events-empty {
    padding:45px 25px;
    text-align:center;
    border:1px dashed #bd98a6;
    border-radius:12px;
    background:#fff3f6
}
.events-empty>span {
    font-size:42px;
    color:#a4104c
}
.events-empty p {
    max-width:570px;
    margin:18px auto 25px
}
.ev-tiles {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:15px
}
.ev-tiles a {
    display:flex;
    align-items:center;
    gap:16px;
    padding:24px 18px;
    background:#f6e6df;
    border-radius:8px;
    font-size:13px;
    font-weight:700
}
.ev-tiles a>span:first-child {
    font-size:28px;
    color:#8c174c
}
.ev-tiles a>span:last-child {
    margin-left:auto
}
.ev-city-list {
    display:flex;
    flex-wrap:wrap;
    gap:12px
}
.ev-city-list a {
    padding:13px 20px;
    border:1px solid #baa6aa;
    border-radius:30px;
    font-size:13px
}
.events-safety {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:40px;
    background:#f3e9de;
    border-radius:12px;
    padding:40px;
    margin:40px 0 0
}
.events-safety a {
    text-decoration:underline;
    font-size:13px;
    font-weight:700
}
.events-safety p {
    font-size:13px
}
.ev-back {
    display:inline-block;
    margin:28px 0;
    font-size:13px;
    font-weight:700
}
.ev-detail-cover {
    height:clamp(200px,30vw,420px);
    overflow:hidden;
    border-radius:12px
}
.ev-detail-cover img {
    width:100%;
    height:100%;
    object-fit:cover
}
.ev-detail-grid {
    display:grid;
    grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);
    gap:55px;
    margin:35px 0
}
.ev-detail-grid h1 {
    font-size:clamp(40px,5vw,64px)
}
.ev-detail-grid article h2 {
    font-size:32px;
    margin-top:38px
}
.ev-prose {
    white-space:pre-wrap;
    overflow-wrap:anywhere
}
.ev-rsvp-box {
    align-self:start;
    position:sticky;
    top:20px;
    border:1px solid #d7b8c5;
    border-radius:12px;
    padding:28px;
    background:#fff
}
.ev-rsvp-box h2 {
    font-size:36px
}
.ev-rsvp-box>p {
    font-size:13px
}
.ev-rsvp-box hr {
    border:0;
    border-top:1px solid #eadde0;
    margin:25px 0
}
.ev-rsvp-box [data-share-event] {
    margin-top:12px
}
.ev-private {
    background:#fbe8f0;
    border-radius:10px;
    padding:20px
}
.ev-form {
    display:flex;
    flex-direction:column;
    gap:10px
}
.ev-form label {
    margin:10px 0 0
}
.ev-form-grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:16px
}
.ev-form fieldset {
    min-width:0;
    border:1px solid #dcc9d0;
    border-radius:10px;
    padding:25px;
    margin:12px 0
}
.ev-form legend {
    font-size:22px;
    font-family:'Barlow Condensed',sans-serif;
    font-weight:700;
    padding:0 10px
}
.ev-editor {
    max-width:850px;
    margin:45px auto
}
.ev-editor h1 {
    font-size:62px
}
.ev-narrow {
    max-width:650px;
    margin:70px auto
}
.ev-dashboard-list {
    display:grid;
    gap:16px;
    margin-bottom:35px
}
.ev-dashboard-card {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:20px;
    border:1px solid #e1cdd4;
    border-radius:10px;
    padding:25px;
    background:#fff
}
.ev-dashboard-card p {
    font-size:12px
}
.events-loading:not([hidden]) {
    display:flex;
    align-items:center;
    gap:15px;
    margin-top:15px;
    font-size:13px
}
.ev-skeleton {
    width:90px;
    height:25px;
    border-radius:5px;
    background:#edb5c9;
    animation:ev-pulse 1s alternate infinite
}
@keyframes ev-pulse {
    to {
        opacity:.35
    }
}
@media(max-width:900px) {
    .events-grid,.ev-tiles {
        grid-template-columns:repeat(2,minmax(0,1fr))
    }
    .events-hero {
        gap:25px
    }
    .events-art {
        min-height:300px
    }
    .events-filters {
        grid-template-columns:1fr 1fr
    }
    .ev-detail-grid {
        gap:25px;
        grid-template-columns:1.2fr 1fr
    }
    .ev-rsvp-box {
        padding:20px
    }
}
@media(max-width:640px) {
    .events-nav {
        align-items:flex-start;
        flex-direction:column;
        gap:15px
    }
    .events-nav div {
        gap:18px
    }
    .events-hero {
        grid-template-columns:1fr;
        padding:35px 0
    }
    .events-art {
        min-height:240px;
        max-height:250px;
        border-radius:120px 120px 12px 12px
    }
    .ev-art-label {
        font-size:40px
    }
    .events-filters,.events-grid,.ev-tiles,.events-safety,.ev-detail-grid,.ev-form-grid {
        grid-template-columns:1fr
    }
    .ev-section-heading {
        align-items:flex-start;
        flex-direction:column;
        gap:0;
        margin-bottom:18px
    }
    .events-safety {
        padding:25px;
        gap:10px
    }
    .ev-rsvp-box {
        position:static
    }
    .events-section {
        padding:28px 0
    }
    .ev-form fieldset {
        padding:18px
    }
    .ev-dashboard-card {
        flex-direction:column;
        align-items:flex-start
    }
    .ev-narrow {
        margin:40px auto
    }
    .events-actions .ev-button {
        flex:1
    }
    .events-nav a,.ev-city-list a {
        min-height:36px;
        display:inline-flex;
        align-items:center
    }
}
/* Keep content usable at narrow widths and increased browser zoom. */
.events-shell {
    width: 100%;
    min-width: 0;
    overflow-wrap: anywhere;
}
.events-shell :where(section, article, aside, div, fieldset) {
    min-width: 0;
}
.ev-wordmark {
    display: inline-flex;
    gap: .35em;
}
.ev-signout {
    border: 0;
    background: transparent;
    color: #75103c;
    font: inherit;
    cursor: pointer;
    padding: 8px 0;
}
@media (max-width: 640px) {
    .events-filters, .events-grid, .ev-tiles, .events-safety, .ev-detail-grid, .ev-form-grid, .events-hero {
        grid-template-columns: minmax(0, 1fr);
    }
    .events-art {
        transform: none;
    }
    .events-actions .ev-button {
        flex: 1 1 145px;
        white-space: normal;
    }
    .events-shell input:not([type=checkbox]), .events-shell select, .events-shell textarea {
        font-size: 16px;
    }
}
