/**
 * JCDSRI Events -- styles v1.0.0
 *
 * Brand tokens live in :root below. To match JCDSRI's exact
 * colors/font, change the variables here -- the rest of the
 * stylesheet references them, so nothing else needs editing.
 */

:root {
    /* Brand */
    --jcds-navy:   #2f3e5b;
    --jcds-ink:    #1f2733;
    --jcds-gray:   #6b7280;
    --jcds-border: #e6e8ec;
    --jcds-soft:   #f5f7fa;
    --jcds-white:  #ffffff;

    /* Auto-cycling card palette (from the approved homepage design) */
    --jcds-c1: #f2a13c; /* orange */
    --jcds-c2: #2f80c8; /* blue   */
    --jcds-c3: #78b12e; /* green  */
    --jcds-c4: #7c66f0; /* purple */
    --jcds-c5: #ef6a4c; /* coral  */
    --jcds-c6: #33475b; /* navy   */

    --jcds-font: 'Nunito', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
    --jcds-radius: 12px;
    --jcds-ease: 0.18s ease;

    /* Color of the page-level text that sits directly on the section
       background — the month labels ("September 2026"), and the built-in
       heading if you enable it. White by default because the calendar sits
       on the teal section on jcdsri.com. If you move it onto a white/light
       background, set this to a dark color like #1f2733. */
    --jcds-on-bg: #ffffff;
}

.jcds-cards *, .jcds-all *,
.jcds-cards *::before, .jcds-all *::before,
.jcds-cards *::after, .jcds-all *::after { box-sizing: border-box; }

.jcds-cards, .jcds-all { font-family: var(--jcds-font); color: var(--jcds-ink); }

/* =====================================================
   HOMEPAGE -- "Important Dates" card grid
===================================================== */
.jcds-cards {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 22px;
}

.jcds-card {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-height: 232px;
    padding: 22px;
    border-radius: var(--jcds-radius);
    color: var(--jcds-white);
    overflow: hidden;
    transition: transform var(--jcds-ease), box-shadow var(--jcds-ease);
}
.jcds-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 14px 30px rgba(31, 39, 51, 0.18);
}

/* Card colors — literal fallback first, then the themeable variable.
   Both !important and the extra .jcds-cards specificity keep the colors
   intact even when a page builder (Divi) injects competing rules. */
.jcds-cards .jcds-card { color: #ffffff !important; }
.jcds-cards .jcds-card-title { color: #ffffff !important; }
.jcds-cards .jcds-card-sub { color: rgba(255, 255, 255, 0.92) !important; }
.jcds-cards .jcds-card-desc { color: rgba(255, 255, 255, 0.9) !important; }

.jcds-cards .jcds-card--c1 { background: #f2a13c !important; background: var(--jcds-c1) !important; }
.jcds-cards .jcds-card--c2 { background: #2f80c8 !important; background: var(--jcds-c2) !important; }
.jcds-cards .jcds-card--c3 { background: #78b12e !important; background: var(--jcds-c3) !important; }
.jcds-cards .jcds-card--c4 { background: #7c66f0 !important; background: var(--jcds-c4) !important; }
.jcds-cards .jcds-card--c5 { background: #ef6a4c !important; background: var(--jcds-c5) !important; }
.jcds-cards .jcds-card--c6 { background: #33475b !important; background: var(--jcds-c6) !important; }

/* Divi's Text module strips border-radius and child backgrounds; force them.
   No max-height so cards grow to fit the description; the grid keeps each
   row's cards equal-height. */
.jcds-cards .jcds-card {
    border-radius: 12px !important;
    border-radius: var(--jcds-radius) !important;
    overflow: hidden !important;
    min-height: 232px !important;
    padding: 22px !important;
}

.jcds-card-chip {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 92px;
    height: 92px;
    border-radius: 16px !important;
    background: rgba(255, 255, 255, 0.17) !important;
    backdrop-filter: blur(1px);
    line-height: 1;
    text-align: center;
    flex: none;
}
.jcds-card-day {
    font-size: 40px;
    font-weight: 800;
    letter-spacing: -0.01em;
}
.jcds-card-mon {
    margin-top: 6px;
    font-size: 14px;
    font-weight: 700;
}

.jcds-card-body { margin-top: 18px; }
.jcds-card-title {
    font-size: 19px;
    font-weight: 700;
    line-height: 1.28;
}
.jcds-card-sub {
    margin-top: 8px;
    font-size: 15px;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.92);
    line-height: 1.3;
}
.jcds-card-desc {
    margin-top: 10px;
    font-size: 13.5px;
    font-weight: 500;
    color: rgba(255, 255, 255, 0.9);
    line-height: 1.45;
    display: -webkit-box;
    -webkit-line-clamp: 5;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.jcds-cards-empty {
    grid-column: 1 / -1;
    padding: 18px 20px;
    background: var(--jcds-soft);
    border: 1px dashed var(--jcds-border);
    border-radius: var(--jcds-radius);
    color: var(--jcds-gray);
    font-size: 14px;
}
.jcds-cards-empty span { opacity: 0.7; font-size: 12px; }

@media (max-width: 900px) {
    .jcds-cards { grid-template-columns: repeat(2, 1fr); gap: 18px; }
}
@media (max-width: 560px) {
    .jcds-cards { grid-template-columns: 1fr; }
    .jcds-card { min-height: 0; }
}

/* =====================================================
   CALENDAR PAGE
===================================================== */
.jcds-all-header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 16px;
    margin-bottom: 24px;
}
.jcds-eyebrow {
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--jcds-on-bg);
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 8px;
}
.jcds-eyebrow::before {
    content: '';
    width: 24px;
    height: 2px;
    background: var(--jcds-on-bg);
    opacity: 0.6;
    border-radius: 2px;
}
.jcds-h1 {
    font-size: clamp(26px, 3.4vw, 38px);
    font-weight: 800;
    color: var(--jcds-on-bg);
    line-height: 1.05;
    margin: 0;
}

.jcds-year-switcher {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: var(--jcds-soft);
    border: 1px solid var(--jcds-border);
    border-radius: 999px;
    padding: 6px 8px;
}
.jcds-year-current { font-weight: 800; font-size: 14px; color: var(--jcds-ink); padding: 0 6px; }
.jcds-year-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    text-decoration: none;
    font-size: 13px;
    font-weight: 700;
    color: var(--jcds-navy);
    background: var(--jcds-white);
    border: 1px solid var(--jcds-border);
    border-radius: 999px;
    padding: 6px 12px;
    transition: all var(--jcds-ease);
}
.jcds-year-btn:hover { background: var(--jcds-navy); color: var(--jcds-white); border-color: var(--jcds-navy); }

/* ----- Add all to calendar ----- */
.jcds-subscribe {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px 16px;
    padding: 16px 18px;
    background: var(--jcds-soft);
    border: 1px solid var(--jcds-border);
    border-radius: var(--jcds-radius);
    margin-bottom: 22px;
}
.jcds-subscribe-label { font-weight: 800; font-size: 15px; color: var(--jcds-ink); display: inline-flex; align-items: center; gap: 8px; }
.jcds-subscribe-label i { color: var(--jcds-navy); }
.jcds-subscribe-btns { display: inline-flex; gap: 8px; }
.jcds-sub-btn {
    display: inline-flex;
    align-items: center;
    text-decoration: none;
    font-size: 13px;
    font-weight: 700;
    color: var(--jcds-navy);
    background: var(--jcds-white);
    border: 1px solid var(--jcds-border);
    border-radius: 999px;
    padding: 9px 18px;
    transition: all var(--jcds-ease);
}
.jcds-sub-btn:hover { border-color: var(--jcds-navy); }
.jcds-sub-btn--primary { background: var(--jcds-navy); color: var(--jcds-white); border-color: var(--jcds-navy); }
.jcds-sub-btn--primary:hover { filter: brightness(1.08); }
.jcds-subscribe-hint { font-size: 12px; color: var(--jcds-gray); flex-basis: 100%; }

/* ----- Month nav ----- */
.jcds-month-nav {
    position: sticky;
    top: 0;
    z-index: 5;
    background: var(--jcds-white);
    padding: 12px 0;
    margin-bottom: 8px;
    border-bottom: 1px solid var(--jcds-border);
}
.jcds-month-nav-inner {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    scrollbar-width: thin;
    padding-bottom: 2px;
}
.jcds-month-jump {
    flex: none;
    cursor: pointer;
    font-family: inherit;
    font-size: 13px;
    font-weight: 700;
    color: var(--jcds-gray);
    background: var(--jcds-soft);
    border: 1px solid var(--jcds-border);
    border-radius: 999px;
    padding: 8px 16px;
    transition: all var(--jcds-ease);
}
.jcds-month-jump:hover { color: var(--jcds-ink); }
.jcds-month-jump--active {
    color: var(--jcds-white);
    background: var(--jcds-navy);
    border-color: var(--jcds-navy);
}

/* ----- Month sections ----- */
.jcds-month-section { padding-top: 20px; }
.jcds-month-label {
    display: flex;
    align-items: baseline;
    gap: 12px;
    font-size: 20px;
    font-weight: 800;
    color: var(--jcds-on-bg);
    margin-bottom: 14px;
}
.jcds-month-count {
    font-size: 12px;
    font-weight: 700;
    color: var(--jcds-gray);
    background: var(--jcds-soft);
    border-radius: 999px;
    padding: 3px 10px;
}

/* ----- Event row ----- */
.jcds-ev-row {
    border: 1px solid var(--jcds-border);
    border-radius: var(--jcds-radius);
    overflow: hidden;
    margin-bottom: 12px;
    background: var(--jcds-white);
    transition: box-shadow var(--jcds-ease), border-color var(--jcds-ease);
}
.jcds-ev-row:hover { box-shadow: 0 6px 18px rgba(31, 39, 51, 0.08); border-color: #d7dbe2; }

.jcds-ev-image {
    height: 150px;
    background-size: cover;
    background-position: center;
}

.jcds-ev-body {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 16px 18px;
    cursor: pointer;
}
.jcds-ev-date {
    flex: none;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 60px;
    height: 60px;
    border-radius: 10px;
    background: #2f3e5b;
    background: var(--jcds-navy);
    color: #ffffff;
    line-height: 1;
}
.jcds-ev-date-day { font-size: 24px; font-weight: 800; }
.jcds-ev-date-mo { font-size: 12px; font-weight: 700; text-transform: uppercase; margin-top: 3px; opacity: 0.9; }

.jcds-ev-info { flex: 1 1 auto; min-width: 0; }
.jcds-ev-title { font-size: 17px; font-weight: 700; color: var(--jcds-ink); line-height: 1.25; }
.jcds-ev-subtitle { font-size: 14px; font-weight: 600; color: var(--jcds-navy); margin-top: 2px; }
.jcds-ev-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    margin-top: 6px;
    font-size: 13px;
    color: var(--jcds-gray);
}
.jcds-ev-meta i { margin-right: 4px; opacity: 0.75; }
.jcds-meta-sep { opacity: 0.5; }
.jcds-range-tag { color: var(--jcds-navy); font-weight: 700; }

.jcds-ev-right { flex: none; display: flex; align-items: center; gap: 10px; }
.jcds-ev-cta {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    text-decoration: none;
    font-size: 12px;
    font-weight: 700;
    color: var(--jcds-white);
    background: var(--jcds-navy);
    border-radius: 999px;
    padding: 8px 14px;
    white-space: nowrap;
    transition: filter var(--jcds-ease);
}
.jcds-ev-cta:hover { filter: brightness(1.1); }
.jcds-ev-toggle {
    flex: none;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    padding: 0;
    margin: 0;
    border-radius: 50%;
    border: 1px solid var(--jcds-border);
    background: #ffffff;
    background: var(--jcds-white);
    color: var(--jcds-gray);
    line-height: 1;
    -webkit-appearance: none;
    appearance: none;
    box-shadow: none;
    transition: all var(--jcds-ease);
}
.jcds-ev-toggle:hover { border-color: var(--jcds-navy); color: var(--jcds-navy); }
.jcds-ev-toggle.jcds-open { background: var(--jcds-navy); color: #ffffff; border-color: var(--jcds-navy); }
.jcds-ev-toggle.jcds-open i { transform: rotate(180deg); }
.jcds-ev-toggle i { font-size: 13px; line-height: 1; transition: transform var(--jcds-ease); }

/* ----- Drawer ----- */
.jcds-ev-drawer {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.28s ease;
    border-top: 0 solid var(--jcds-border);
}
.jcds-ev-drawer.jcds-open { max-height: 680px; border-top: 1px solid var(--jcds-border); }
.jcds-ev-drawer-inner { padding: 16px 18px; }
.jcds-ev-desc { margin: 0 0 12px; font-size: 14px; color: var(--jcds-ink); line-height: 1.55; }

.jcds-cal-btns { display: flex; flex-wrap: wrap; gap: 8px; }
.jcds-cal-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    text-decoration: none;
    font-size: 13px;
    font-weight: 700;
    color: var(--jcds-ink);
    background: var(--jcds-soft);
    border: 1px solid var(--jcds-border);
    border-radius: 8px;
    padding: 9px 14px;
    transition: all var(--jcds-ease);
}
.jcds-cal-btn:hover { border-color: var(--jcds-navy); color: var(--jcds-navy); }
.jcds-cal-btn i { opacity: 0.8; }

/* ----- Multi-event day group ----- */
.jcds-day-group {
    border: 1px solid var(--jcds-border);
    border-radius: var(--jcds-radius);
    overflow: hidden;
    margin-bottom: 12px;
    background: var(--jcds-white);
}
.jcds-day-group-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 14px 18px;
    background: var(--jcds-soft);
    border-bottom: 1px solid var(--jcds-border);
}
.jcds-day-group-date { display: flex; align-items: center; gap: 12px; }
.jcds-day-group-day { font-size: 28px; font-weight: 800; color: var(--jcds-navy); line-height: 1; }
.jcds-day-group-meta { display: flex; flex-direction: column; line-height: 1.1; }
.jcds-day-group-month { font-size: 13px; font-weight: 700; text-transform: uppercase; color: var(--jcds-ink); }
.jcds-day-group-dow { font-size: 12px; color: var(--jcds-gray); }
.jcds-day-group-count { font-size: 12px; font-weight: 700; color: var(--jcds-gray); }
.jcds-day-group-list { padding: 6px 10px; }
.jcds-ev-row--grouped { border: none; border-radius: 0; margin: 0; border-bottom: 1px solid var(--jcds-border); }
.jcds-ev-row--grouped:last-child { border-bottom: none; }
.jcds-ev-row--grouped:hover { box-shadow: none; }

.jcds-empty {
    padding: 40px 20px;
    text-align: center;
    color: var(--jcds-gray);
    background: var(--jcds-soft);
    border: 1px dashed var(--jcds-border);
    border-radius: var(--jcds-radius);
}

@media (max-width: 560px) {
    .jcds-ev-body { flex-wrap: wrap; }
    .jcds-ev-right { width: 100%; justify-content: flex-end; }
}

/* =====================================================
   DIVI HARDENING — full calendar
   Divi's Text module strips child background-color / border-radius
   and forces the section's text color (white on the teal section)
   into everything. Re-assert both so the calendar renders correctly
   inside a Divi module, matching the default-editor output.
   var() keeps these themeable; the literal is a fallback if the
   variable can't resolve. Scoped to .jcds-all so nothing leaks out.
===================================================== */

/* Backgrounds + radii */
.jcds-all .jcds-subscribe { background: #f5f7fa !important; background: var(--jcds-soft) !important; border-radius: 12px !important; border-radius: var(--jcds-radius) !important; }
.jcds-all .jcds-sub-btn { background: #ffffff !important; border-radius: 999px !important; }
.jcds-all .jcds-sub-btn--primary { background: #2f3e5b !important; background: var(--jcds-navy) !important; }
.jcds-all .jcds-month-nav { background: #ffffff !important; }
.jcds-all .jcds-month-jump { background: #f5f7fa !important; background: var(--jcds-soft) !important; border-radius: 999px !important; }
.jcds-all .jcds-month-jump--active { background: #2f3e5b !important; background: var(--jcds-navy) !important; }
.jcds-all .jcds-month-count { background: #f5f7fa !important; background: var(--jcds-soft) !important; border-radius: 999px !important; }
.jcds-all .jcds-ev-row:not(.jcds-ev-row--grouped) { background: #ffffff !important; border-radius: 12px !important; border-radius: var(--jcds-radius) !important; }
.jcds-all .jcds-ev-row--grouped { background: transparent !important; border-radius: 0 !important; }
.jcds-all .jcds-ev-date { background: #2f3e5b !important; background: var(--jcds-navy) !important; border-radius: 10px !important; }
.jcds-all .jcds-ev-cta { background: #2f3e5b !important; background: var(--jcds-navy) !important; border-radius: 999px !important; }
.jcds-all .jcds-ev-toggle { background: #ffffff !important; border-radius: 50% !important; }
.jcds-all .jcds-ev-toggle.jcds-open { background: #2f3e5b !important; background: var(--jcds-navy) !important; }
.jcds-all .jcds-cal-btn { background: #f5f7fa !important; background: var(--jcds-soft) !important; border-radius: 8px !important; }
.jcds-all .jcds-day-group { background: #ffffff !important; border-radius: 12px !important; border-radius: var(--jcds-radius) !important; }
.jcds-all .jcds-day-group-header { background: #f5f7fa !important; background: var(--jcds-soft) !important; }
.jcds-all .jcds-year-switcher { background: #f5f7fa !important; background: var(--jcds-soft) !important; border-radius: 999px !important; }
.jcds-all .jcds-year-btn { background: #ffffff !important; border-radius: 999px !important; }
.jcds-all .jcds-empty { background: #f5f7fa !important; background: var(--jcds-soft) !important; }

/* Text colors (Divi forces the section color into these) */
.jcds-all .jcds-subscribe-label { color: #1f2733 !important; color: var(--jcds-ink) !important; }
.jcds-all .jcds-subscribe-hint { color: #6b7280 !important; color: var(--jcds-gray) !important; }
.jcds-all .jcds-sub-btn { color: #2f3e5b !important; color: var(--jcds-navy) !important; }
.jcds-all .jcds-sub-btn--primary { color: #ffffff !important; }
.jcds-all .jcds-month-jump { color: #6b7280 !important; color: var(--jcds-gray) !important; }
.jcds-all .jcds-month-jump--active { color: #ffffff !important; }
.jcds-all .jcds-month-count { color: #6b7280 !important; color: var(--jcds-gray) !important; }
.jcds-all .jcds-ev-title { color: #1f2733 !important; color: var(--jcds-ink) !important; }
.jcds-all .jcds-ev-subtitle { color: #2f3e5b !important; color: var(--jcds-navy) !important; }
.jcds-all .jcds-ev-meta,
.jcds-all .jcds-ev-meta span { color: #6b7280 !important; color: var(--jcds-gray) !important; }
.jcds-all .jcds-range-tag { color: #2f3e5b !important; color: var(--jcds-navy) !important; }
.jcds-all .jcds-ev-date-day,
.jcds-all .jcds-ev-date-mo { color: #ffffff !important; }
.jcds-all .jcds-ev-cta { color: #ffffff !important; }
.jcds-all .jcds-ev-desc { color: #1f2733 !important; color: var(--jcds-ink) !important; }
.jcds-all .jcds-cal-btn { color: #1f2733 !important; color: var(--jcds-ink) !important; }
.jcds-all .jcds-day-group-day { color: #2f3e5b !important; color: var(--jcds-navy) !important; }
.jcds-all .jcds-day-group-month { color: #1f2733 !important; color: var(--jcds-ink) !important; }
.jcds-all .jcds-day-group-dow,
.jcds-all .jcds-day-group-count { color: #6b7280 !important; color: var(--jcds-gray) !important; }
.jcds-all .jcds-year-current { color: #1f2733 !important; color: var(--jcds-ink) !important; }
.jcds-all .jcds-year-btn { color: #2f3e5b !important; color: var(--jcds-navy) !important; }

/* Key hovers Divi would otherwise flatten */
.jcds-all .jcds-year-btn:hover,
.jcds-all .jcds-ev-toggle.jcds-open { color: #ffffff !important; }
.jcds-all .jcds-year-btn:hover { background: #2f3e5b !important; background: var(--jcds-navy) !important; }

/* Divi also strips borders and box-shadows — re-assert the ones the
   calendar layout needs (outlined buttons, card outlines, the toggle
   circle, and the multi-event day-group card). */
.jcds-all .jcds-sub-btn { border: 1px solid #e6e8ec !important; border: 1px solid var(--jcds-border) !important; }
.jcds-all .jcds-sub-btn--primary { border: 1px solid #2f3e5b !important; border: 1px solid var(--jcds-navy) !important; }
.jcds-all .jcds-month-jump { border: 1px solid #e6e8ec !important; border: 1px solid var(--jcds-border) !important; }
.jcds-all .jcds-month-jump--active { border-color: #2f3e5b !important; border-color: var(--jcds-navy) !important; }
.jcds-all .jcds-ev-row:not(.jcds-ev-row--grouped) { border: 1px solid #e6e8ec !important; border: 1px solid var(--jcds-border) !important; }
.jcds-all .jcds-ev-toggle { border: 1px solid #e6e8ec !important; border: 1px solid var(--jcds-border) !important; }
.jcds-all .jcds-ev-toggle.jcds-open { border-color: #2f3e5b !important; border-color: var(--jcds-navy) !important; }
.jcds-all .jcds-cal-btn { border: 1px solid #e6e8ec !important; border: 1px solid var(--jcds-border) !important; }
.jcds-all .jcds-year-btn { border: 1px solid #e6e8ec !important; border: 1px solid var(--jcds-border) !important; }

/* Multi-event day group — force the white card, its light header strip,
   and the header layout so a grouped day matches the single-event rows. */
.jcds-all .jcds-day-group { border: 1px solid #e6e8ec !important; border: 1px solid var(--jcds-border) !important; overflow: hidden !important; }
.jcds-all .jcds-day-group-header { border-bottom: 1px solid #e6e8ec !important; border-bottom: 1px solid var(--jcds-border) !important; display: flex !important; align-items: center !important; justify-content: space-between !important; }
.jcds-all .jcds-day-group-day { font-size: 28px !important; font-weight: 800 !important; }
.jcds-all .jcds-ev-row--grouped { border-bottom: 1px solid #e6e8ec !important; border-bottom: 1px solid var(--jcds-border) !important; }
.jcds-all .jcds-ev-row--grouped:last-child { border-bottom: 0 !important; }

/* Divi's global reset (#et-boc .et-l div{padding:0;margin:0}) has an ID in
   the selector, so it strips padding/margin from every div in the layout.
   background/border/shadow/color were already forced above; these add the
   remaining category so the calendar keeps its spacing. */
.jcds-all .jcds-all-header { margin: 0 0 24px !important; }
.jcds-all .jcds-eyebrow { margin: 0 0 8px !important; padding: 0 !important; }
.jcds-all .jcds-year-switcher { padding: 6px 8px !important; }
.jcds-all .jcds-year-current { padding: 0 6px !important; }
.jcds-all .jcds-year-btn { padding: 6px 12px !important; }
.jcds-all .jcds-subscribe { padding: 16px 18px !important; margin: 0 0 22px !important; }
.jcds-all .jcds-sub-btn { padding: 9px 18px !important; }
.jcds-all .jcds-month-nav { padding: 12px 0 !important; margin: 0 0 8px !important; }
.jcds-all .jcds-month-jump { padding: 8px 16px !important; }
.jcds-all .jcds-month-count { padding: 3px 10px !important; }
.jcds-all .jcds-month-section { padding-top: 20px !important; }
.jcds-all .jcds-month-label { margin: 0 0 14px !important; }
.jcds-all .jcds-ev-row { margin: 0 0 12px !important; }
.jcds-all .jcds-ev-row--grouped { margin: 0 !important; }
.jcds-all .jcds-ev-body { padding: 16px 18px !important; }
.jcds-all .jcds-ev-cta { padding: 8px 14px !important; }
.jcds-all .jcds-ev-drawer-inner { padding: 16px 18px !important; }
.jcds-all .jcds-ev-desc { margin: 0 0 12px !important; }
.jcds-all .jcds-cal-btn { padding: 9px 14px !important; }
.jcds-all .jcds-day-group { margin: 0 0 12px !important; }
.jcds-all .jcds-day-group-header { padding: 14px 18px !important; }
.jcds-all .jcds-day-group-list { padding: 6px 10px !important; }
.jcds-all .jcds-empty { padding: 40px 20px !important; }

/* Same reset hits the homepage card internals — keep their spacing too. */
.jcds-cards .jcds-card-body { margin-top: 18px !important; }
.jcds-cards .jcds-card-chip { padding: 0 !important; }

/* Divi's reset sets color:inherit on headings; force the page-heading
   colors so they don't depend on the section's inherited text color. */
.jcds-all .jcds-eyebrow { color: #ffffff !important; color: var(--jcds-on-bg) !important; }
.jcds-all .jcds-eyebrow::before { background: #ffffff !important; background: var(--jcds-on-bg) !important; }
.jcds-all .jcds-h1 { color: #ffffff !important; color: var(--jcds-on-bg) !important; }
.jcds-all .jcds-month-label { color: #ffffff !important; color: var(--jcds-on-bg) !important; }

/* When the built-in heading is hidden (default), the header holds only the
   year switcher — keep it top-right. */
.jcds-all .jcds-all-header--bare { justify-content: flex-end !important; }

/* =====================================================
   "Add to calendar" dropdowns (top bar + per event)
===================================================== */
.jcds-cal-dd { position: relative; display: inline-block; }
.jcds-cal-dd--wide { display: inline-block; }

.jcds-cal-dd-btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    cursor: pointer;
    font-family: inherit;
    font-size: 14px;
    font-weight: 700;
    color: var(--jcds-navy);
    background: #ffffff;
    border: 1px solid var(--jcds-border);
    border-radius: 999px;
    padding: 11px 20px;
    line-height: 1;
    -webkit-appearance: none;
    appearance: none;
    transition: all var(--jcds-ease);
}
.jcds-cal-dd-btn:hover { border-color: var(--jcds-navy); }
.jcds-cal-dd-btn--primary { background: var(--jcds-navy); color: #ffffff; border-color: var(--jcds-navy); }
.jcds-cal-dd-caret { font-size: 11px; transition: transform var(--jcds-ease); }
.jcds-cal-dd-btn.jcds-open .jcds-cal-dd-caret { transform: rotate(180deg); }

.jcds-cal-menu {
    display: none;
    margin-top: 8px;
    min-width: 250px;
    background: #ffffff;
    border: 1px solid var(--jcds-border);
    border-radius: 12px;
    box-shadow: 0 12px 30px rgba(31, 39, 51, 0.14);
    padding: 6px;
}
.jcds-cal-menu.jcds-open { display: block; }
.jcds-cal-menu a {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 14px;
    text-decoration: none;
    font-size: 14px;
    font-weight: 600;
    color: var(--jcds-ink);
    background: transparent;
    border-radius: 8px;
    transition: background var(--jcds-ease);
}
.jcds-cal-menu a:hover { background: var(--jcds-soft); }
.jcds-cal-menu a i { width: 18px; text-align: center; color: var(--jcds-navy); opacity: 0.9; flex: none; }

/* Divi hardening for the dropdowns (bg / border / color / padding stripped otherwise) */
.jcds-all .jcds-cal-dd-btn { background: #ffffff !important; border: 1px solid var(--jcds-border) !important; border-radius: 999px !important; color: var(--jcds-navy) !important; padding: 11px 20px !important; }
.jcds-all .jcds-cal-dd-btn--primary { background: #2f3e5b !important; background: var(--jcds-navy) !important; color: #ffffff !important; border-color: var(--jcds-navy) !important; }
.jcds-all .jcds-cal-menu { background: #ffffff !important; border: 1px solid var(--jcds-border) !important; border-radius: 12px !important; padding: 6px !important; }
.jcds-all .jcds-cal-menu a { background: transparent !important; color: #1f2733 !important; color: var(--jcds-ink) !important; padding: 10px 14px !important; border-radius: 8px !important; }
.jcds-all .jcds-cal-menu a:hover { background: #f5f7fa !important; background: var(--jcds-soft) !important; }
.jcds-all .jcds-cal-menu a i { color: #2f3e5b !important; color: var(--jcds-navy) !important; }
