.dates-page  {
    color:#18223a;
    background:#f8fafc;
    font-family:inherit
}
.dates-container  {
    max-width:1180px;
    margin:0 auto;
    padding:0 24px
}
.dates-hero  {
    padding:40px 0 32px;
    background:#fff;
    border-bottom:1px solid #e4e8f0
}
.dates-eyebrow  {
    color:#100190;
    font-size:12px;
    font-weight:700;
    letter-spacing:.1em;
    text-transform:uppercase;
    margin:0 0 12px
}
.dates-hero h1  {
    font-size:36px;
    line-height:1.15;
    font-weight:700;
    letter-spacing:-.02em;
    margin:0 0 20px
}
.dates-hero h1 span  {
    color:#100190
}
.dates-intro  {
    font-size:16px;
    line-height:1.6;
    max-width:670px;
    color:#526079;
    margin:0 0 24px
}
.dates-jump-links  {
    display:flex;
    flex-wrap:wrap;
    gap:12px 24px;
    font-weight:600;
    font-size:14px;
    color:#100190
}
.dates-jump-links a:hover  {
    text-decoration:underline
}
.dates-content  {
    padding-top:36px;
    padding-bottom:64px
}
.dates-calendar  {
    background:white;
    border:1px solid #dde3ed;
    border-radius:20px;
    overflow:hidden
}
.dates-toolbar  {
    display:flex;
    flex-wrap:wrap;
    gap:20px;
    align-items:center;
    justify-content:space-between;
    padding:26px 28px 18px
}
.dates-toolbar h2,.dates-section-heading h2,.dates-upcoming h2  {
    font-size:24px;
    font-weight:700;
    line-height:1.25;
    margin:0
}
.dates-toolbar .dates-eyebrow  {
    margin-bottom:6px
}
.dates-month-nav  {
    display:flex;
    gap:8px;
    flex-wrap:wrap
}
.dates-month-nav a,.dates-month-picker button  {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:42px;
    padding:10px 14px;
    font-size:14px;
    line-height:1.3;
    border:1px solid #d7dfeb;
    border-radius:10px;
    background:#fff;
    font-weight:600;
    color:#100190
}
.dates-month-nav a:hover  {
    background:#f0efff;
    border-color:#100190
}
.dates-month-picker  {
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:10px;
    padding:0 28px 22px;
    font-size:14px
}
.dates-month-picker label  {
    font-weight:600
}
.dates-month-picker input  {
    border:1px solid #d7dfeb;
    border-radius:8px;
    padding:9px 12px;
    min-height:42px;
    color:#18223a;
    background:#fff
}
.dates-month-picker button  {
    background:#100190;
    color:white;
    border-color:#100190;
    cursor:pointer
}
.dates-grid  {
    border-collapse:collapse;
    table-layout:fixed;
    width:100%;
    margin:0
}
.dates-grid th  {
    padding:13px 6px;
    background:#f5f6fc;
    color:#526079;
    font-size:13px;
    font-weight:600;
    text-align:center;
    border-top:1px solid #e4e8f0;
    border-bottom:1px solid #e4e8f0;
    width:14.285%
}
.dates-grid th abbr  {
    text-decoration:none
}
.dates-grid td  {
    vertical-align:top;
    height:130px;
    padding:8px;
    border-right:1px solid #e4e8f0;
    border-bottom:1px solid #e4e8f0
}
.dates-grid td:last-child  {
    border-right:0
}
.dates-grid .dates-outside  {
    background:#fafbfe;
    color:#a4adbd
}
.dates-day-number  {
    display:flex;
    align-items:center;
    justify-content:center;
    width:28px;
    height:28px;
    font-size:13px;
    font-weight:600;
    margin-bottom:5px;
    border-radius:50%
}
.dates-today .dates-day-number  {
    background:#100190;
    color:#fff
}
.dates-event-link  {
    display:flex;
    align-items:flex-start;
    gap:5px;
    padding:5px 6px;
    margin-top:4px;
    background:#f3f5f9;
    border-radius:5px;
    border-left:3px solid var(--event-color);
    font-size:11px;
    line-height:1.35;
    font-weight:600;
    color:#18223a;
    overflow:hidden
}
.dates-event-link:hover  {
    background:#e9ecf4;
    text-decoration:underline
}
.dates-event-dot  {
    background:var(--event-color);
    border:1px solid #7b8496;
    width:8px;
    height:8px;
    border-radius:50%;
    flex-shrink:0;
    margin-top:3px
}
.dates-event-title  {
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
    overflow-wrap:anywhere
}
.dates-more  {
    display:block;
    padding:5px 2px;
    font-weight:700;
    font-size:11px;
    color:#100190
}
.dates-calendar-hint  {
    padding:16px 28px;
    margin:0;
    color:#526079;
    font-size:13px;
    line-height:1.5
}
.dates-lists  {
    display:grid;
    grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);
    gap:32px;
    margin-top:40px
}
.dates-section-heading  {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    margin-bottom:20px
}
.dates-section-heading span  {
    color:#66738a;
    font-size:13px;
    white-space:nowrap
}
.dates-event-list  {
    display:grid;
    gap:16px
}
.dates-event-card  {
    background:#fff;
    border:1px solid #dde3ed;
    border-left:5px solid var(--event-color);
    border-radius:12px;
    padding:22px;
    scroll-margin-top:130px;
    overflow-wrap:anywhere
}
.dates-event-card:target  {
    outline:2px solid #100190;
    outline-offset:4px
}
.dates-event-date  {
    font-size:13px;
    font-weight:600;
    color:#526079;
    margin-bottom:10px
}
.dates-event-card h3  {
    font-size:18px;
    font-weight:700;
    line-height:1.4;
    margin:0 0 12px
}
.dates-notes  {
    font-size:14px;
    line-height:1.75;
    white-space:pre-wrap;
    overflow-wrap:anywhere;
    margin:0;
    color:#42516b
}
.dates-muted  {
    font-size:13px;
    line-height:1.6;
    color:#66738a;
    margin:12px 0 0
}
.dates-upcoming  {
    background:#fff;
    border:1px solid #dde3ed;
    border-radius:16px;
    padding:26px;
    align-self:start;
    scroll-margin-top:130px
}
.dates-upcoming h2  {
    font-size:24px
}
.dates-upcoming-list  {
    list-style:none;
    padding:0;
    margin:18px 0 0
}
.dates-upcoming-list li  {
    border-top:1px solid #e4e8f0;
    padding:18px 0 18px 14px;
    position:relative
}
.dates-upcoming-list li:before  {
    content:"";
    position:absolute;
    left:0;
    top:23px;
    width:5px;
    height:24px;
    background:var(--event-color);
    border-radius:4px;
    border:1px solid #7b8496
}
.dates-upcoming-list time  {
    display:block;
    font-size:12px;
    color:#526079;
    margin-bottom:6px
}
.dates-upcoming-list a  {
    color:#100190;
    display:block;
    line-height:1.5;
    font-weight:600;
    font-size:15px;
    overflow-wrap:anywhere
}
.dates-upcoming-list a:hover  {
    text-decoration:underline
}
.dates-upcoming-list details  {
    margin-top:8px
}
.dates-upcoming-list summary  {
    font-size:13px;
    color:#526079;
    cursor:pointer
}
.dates-upcoming-list details p  {
    margin-top:8px
}
.dates-empty  {
    border:1px dashed #cdd5e3;
    border-radius:12px;
    padding:26px;
    background:#fff
}
.dates-empty h2,.dates-empty h3  {
    font-weight:700;
    font-size:18px;
    margin:0 0 10px
}
.dates-empty p  {
    font-size:14px;
    line-height:1.7;
    color:#526079;
    margin:0
}
.dates-empty a  {
    color:#100190;
    text-decoration:underline
}
.dates-upcoming .dates-empty  {
    margin-top:22px;
    background:#f8fafc;
    padding:20px
}
#month-events,#upcoming-dates,#important-dates  {
    scroll-margin-top:130px
}
.dates-contact  {
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    justify-content:space-between;
    gap:24px;
    margin-top:48px;
    border-radius:18px;
    padding:32px;
    background:#100190;
    color:#fff
}
.dates-contact h2  {
    font-size:22px;
    font-weight:700;
    margin:0 0 8px
}
.dates-contact p  {
    font-size:14px;
    color:#e0def7;
    line-height:1.6;
    margin:0
}
.dates-contact a  {
    display:inline-flex;
    align-items:center;
    padding:12px 18px;
    border-radius:10px;
    background:#6fe4fc;
    color:#100190;
    font-size:14px;
    font-weight:700;
    min-height:44px
}
.dates-sr-only  {
    position:absolute;
    width:1px;
    height:1px;
    padding:0;
    margin:-1px;
    overflow:hidden;
    clip:rect(0,0,0,0);
    white-space:nowrap;
    border:0
}
.dates-page a:focus-visible,.dates-page button:focus-visible,.dates-page input:focus-visible,.dates-page summary:focus-visible  {
    outline:3px solid #100190;
    outline-offset:4px
}
.dates-contact a:focus-visible  {
    outline-color:#fff
}
@media(max-width:760px)  {
    .dates-container  {
        padding-left:16px;
        padding-right:16px
    }
    .dates-hero  {
        padding:40px 0 32px
    }
    .dates-intro  {
        font-size:16px
    }
    .dates-content  {
        padding-top:24px
    }
    .dates-toolbar  {
        padding:20px 16px 16px;
        gap:16px
    }
    .dates-toolbar h2  {
        font-size:24px
    }
    .dates-month-nav  {
        width:100%;
        justify-content:space-between;
        gap:5px
    }
    .dates-month-nav a  {
        padding:9px 10px;
        font-size:13px
    }
    .dates-month-picker  {
        padding:0 16px 18px;
        gap:8px
    }
    .dates-month-picker label  {
        width:100%
    }
    .dates-grid td  {
        height:96px;
        padding:5px 3px
    }
    .dates-grid th  {
        font-size:11px;
        padding:10px 2px
    }
    .dates-day-number  {
        font-size:12px;
        width:25px;
        height:25px;
        margin-bottom:4px
    }
    .dates-event-link  {
        padding:3px;
        justify-content:center;
        border-left:0;
        min-height:20px;
        border-bottom:3px solid var(--event-color);
        margin-top:3px
    }
    .dates-event-dot  {
        margin:0;
        width:7px;
        height:7px
    }
    .dates-event-title  {
        display:none
    }
    .dates-more  {
        text-align:center;
        font-size:10px
    }
    .dates-calendar-hint  {
        padding:14px 16px;
        font-size:12px
    }
    .dates-lists  {
        grid-template-columns:minmax(0,1fr);
        gap:28px;
        margin-top:28px
    }
    .dates-section-heading h2  {
        font-size:23px
    }
    .dates-event-card  {
        padding:20px
    }
    .dates-event-card h3  {
        font-size:18px
    }
    .dates-upcoming  {
        padding:22px
    }
    .dates-contact  {
        padding:24px;
        margin-top:32px
    }
    .dates-contact h2  {
        font-size:20px
    }
}
.dates-page #month-events,.dates-page #upcoming-dates,.dates-page .dates-event-card  {
    scroll-margin-top:160px
}
@media(max-width:760px)  {
    .dates-page #month-events,.dates-page #upcoming-dates,.dates-page .dates-event-card  {
        scroll-margin-top:180px
    }
}

.dates-has-events { cursor:pointer }
.dates-has-events:hover { background:#f5f6fc }
.dates-day-link { display:inline-flex; color:#100190; border-radius:50% }
.dates-day-link .dates-day-number { background:#eeecff; box-shadow:inset 0 0 0 1px #d7d2ff }
.dates-today .dates-day-link .dates-day-number { background:#100190; color:#fff }
html.dates-modal-open { overflow:hidden; scrollbar-gutter:stable }
.dates-reminder-modal { box-sizing:border-box; width:560px; max-width:calc(100% - 32px); max-height:calc(100dvh - 32px); margin:auto; padding:0; border:1px solid #dde3ed; border-radius:12px; background:#fff; color:#18223a; font-family:inherit; box-shadow:0 20px 60px #18223a33; overflow:auto; overscroll-behavior:contain }
.dates-reminder-modal:not([open]) { display:none }
.dates-reminder-modal:focus { outline:none }
.dates-reminder-modal::backdrop { background:rgb(15 23 42 / 55%) }
.dates-modal-content { padding:28px }
.dates-modal-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:20px }
.dates-modal-heading h2 { font-size:24px; font-weight:700; line-height:1.3; margin:0 }
.dates-modal-heading h2:focus { outline:none }
.dates-modal-close { display:inline-flex; align-items:center; justify-content:center; width:40px; height:40px; flex-shrink:0; border:1px solid #dde3ed; border-radius:6px; background:#fff; color:#526079; font-size:26px; line-height:1; cursor:pointer }
.dates-modal-close:hover { background:#f3f5f9; color:#18223a }
.dates-selected-deadline { border-bottom:1px solid #e4e8f0; padding-bottom:20px; margin-bottom:20px }
.dates-selected-deadline > time { display:block; font-size:14px; font-weight:600; color:#100190; margin-bottom:10px }
.dates-selected-deadline h3 { font-size:18px; font-weight:600; line-height:1.45; margin:0 0 10px }
.dates-event-choice { margin-bottom:12px }
.dates-form-fields { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:start; gap:16px }
.dates-field { min-width:0 }
.dates-field > label { display:block; font-size:14px; font-weight:600; margin-bottom:8px }
.dates-field > label span { color:#66738a; font-weight:400 }
.dates-field > input,.dates-field > select { box-sizing:border-box; width:100%; min-height:44px; border:1px solid #cdd5e3; border-radius:6px; background:#fff; padding:11px 12px; font-size:16px; line-height:1.3; color:#18223a; font-family:inherit }
.dates-reminder-timing { grid-column:1 / -1 }
.dates-consent input { width:17px; height:17px; flex-shrink:0; margin-top:3px; accent-color:#100190 }
.dates-form-note { font-size:13px; line-height:1.6; color:#526079; margin:12px 0 }
.dates-form-submit { display:flex; flex-direction:column; align-items:stretch; gap:20px; margin-top:18px }
.dates-consent { display:flex; align-items:flex-start; gap:10px; font-size:13px; color:#42516b; line-height:1.6 }
.dates-consent a { color:#100190; text-decoration:underline }
.dates-button { display:inline-flex; align-items:center; justify-content:center; min-height:44px; border:0; border-radius:6px; padding:12px 20px; background:#100190; color:#fff; font-family:inherit; font-size:14px; font-weight:600; line-height:1.4; white-space:nowrap; cursor:pointer }
.dates-button:hover { background:#2111a1 }
.dates-button:disabled { opacity:.65; cursor:wait }
.dates-remind-link { display:inline-block; color:#100190; font-size:14px; font-weight:600; line-height:1.5; margin-top:16px; text-decoration:underline; text-underline-offset:3px }
.dates-notice { padding:12px 16px; border-radius:6px; font-size:14px; line-height:1.6; margin:0 0 20px }
.dates-notice-success { color:#166534; background:#f0fdf4; border:1px solid #bbf7d0 }
.dates-notice-error { color:#991b1b; background:#fef2f2; border:1px solid #fecaca }
.dates-honeypot { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden }
.dates-reminder-modal [hidden] { display:none !important }
.dates-reminder-modal :is(a,button,input,select):focus-visible { outline:3px solid #100190; outline-offset:3px }
.dates-action-page { margin:0; background:#f8fafc; color:#18223a; font-family:Arial,sans-serif; padding:40px 20px }
.dates-action-card { box-sizing:border-box; max-width:620px; margin:0 auto; background:#fff; border:1px solid #dde3ed; border-radius:12px; padding:32px }
.dates-action-brand { color:#100190; font-size:16px; font-weight:700; text-decoration:none }
.dates-action-card h1 { font-size:28px; font-weight:700; line-height:1.3; margin:28px 0 16px }
.dates-action-card p { font-size:16px; line-height:1.6; color:#526079 }
.dates-action-back { display:block; font-size:14px; color:#100190; margin-top:24px }
.dates-confirm-events { list-style:none; padding:0; margin:24px 0 }
.dates-confirm-events li { border-top:1px solid #dde3ed; padding:12px 0; font-size:16px; line-height:1.5 }
.dates-confirm-events time { display:block; font-size:13px; color:#526079 }
@media(max-width:760px) {
    .dates-hero h1 { font-size:30px }
    .dates-modal-content { padding:20px }
    .dates-form-fields { grid-template-columns:minmax(0,1fr); gap:16px }
    .dates-form-submit { flex-direction:column; align-items:stretch; gap:16px }
    .dates-modal-heading h2 { font-size:22px }
    .dates-action-card { padding:24px }
}
