@charset "utf-8";

/* =====================================================
   BISKOON — User CSS
   Palette:
   Navy:  #0A1F44
   Red:   #dc3545
   Gray:  #6c757d
   Light: #f8f9fa
   ===================================================== */

/*******DEFAULT**********/
.biskoon-description-help { margin-bottom: 1rem; }

.biskoon-embed-info {
    margin: 0 0 1rem 0;
    padding: 0.9rem 1rem;
    border-radius: 6px;
    border: 1px solid #b6d4fe;
    background: #eaf4ff;
    color: #0a1f44;
}
.biskoon-embed-info-title { font-weight: 700; font-size: 1rem; margin-bottom: 0.35rem; color: #0a1f44; }
.biskoon-embed-info-title .icon-info-circle { margin-right: 0.35rem; color: #0d6efd; }
.biskoon-embed-info-text { font-size: 0.9rem; line-height: 1.5; margin-bottom: 0.35rem; }
.biskoon-embed-info-platforms { font-size: 0.82rem; line-height: 1.45; color: #495057; }
.biskoon-embed-info-platforms strong { color: #0a1f44; }

/*******GLOBAL**********/
html { scroll-behavior: smooth; }

body.site #rsepro-event-description,
body.site #rsepro-event-itinerary,
body.site #rsepro-event-speakers,
body.site #rsepro-event-sponsors,
body.site #rsepro-event-faq,
body.site #rsepro-event-map,
body.site #rsepro-event-comments,
body.site #rsepro-event-files {
    scroll-margin-top: 100px;
}

.mainWrapperDefault {
  max-width: 1320px;
  margin: 0 auto;
}

body.site.com_rseventspro.layout-edit .eventsCategory,
body.site.com_rseventspro.layout-edit .eventsTags,
body.site.com_rseventspro.layout-edit .myEventsOverview {
    display: none !important;
}

/* =====================================================
   RSEventsPro Admin — Hide Sharing widget (backend)
   ===================================================== */
.choices__inner:has(#jform_options_sharing) { display: none !important; }
#jform_options_sharing ~ .choices__list--multiple,
#jform_options_sharing ~ .choices__input--cloned { display: none !important; }
#jform_options_sharing-lbl { display: none !important; }

/* =====================================================
   EVENT PAGE LAYOUT
   ===================================================== */
#rsepro-counter div > span { background: transparent !important; }
#rs_event_show { padding: 1.5rem 0 3rem; }

.biskoon-event-layout { display: block; }

@media (min-width: 992px) {
    .biskoon-event-layout {
        display: grid;
        grid-template-columns: minmax(0, 1fr) 340px;
        gap: 2rem;
        align-items: start;
    }
    .biskoon-event-layout > #rsepro-event-title,
    .biskoon-event-layout > #rsepro-event-controls {
        grid-column: 1 / -1;
    }
    .biskoon-event-main-col { grid-column: 1 / 2; min-width: 0; }
    .biskoon-event-sidebar {
        grid-column: 2 / 3;
        position: sticky;
        top: 1rem;
        align-self: start;
    }
}

/* =====================================================
   TITLE & SHORT DESCRIPTION
   ===================================================== */
.biskoon-event-main-col #rsepro-event-title {
    margin-bottom: 1.25rem !important;
    padding: 0;
}
.biskoon-event-main-col #rsepro-event-title h1 {
    font-size: 2rem;
    font-weight: 800;
    color: #0a1f44;
    line-height: 1.2;
    margin: 1.5rem 0 0 0;
    letter-spacing: -0.5px;
}
.short_desc {
    font-size: 0.95rem;
    font-weight: 500;
    margin-top: 0.7rem;
    color: #495057;
}

/* =====================================================
   HERO IMAGE
   ===================================================== */
#rsepro-event-details { padding: 0; margin: 0 !important; }
#rsepro-event-details > .col-md-12 {
    padding: 0;
    max-width: 100%;
    flex: 0 0 100%;
}
#rsepro-event-details-right { width: 100%; }
#rsepro-event-image { width: 100%; }
#rsepro-event-image .thumbnail {
    display: block;
    width: 100%;
    padding: 0;
    border: none;
    border-radius: 0.75rem;
    overflow: hidden;
    box-shadow: 0 6px 18px rgba(10, 31, 68, 0.12);
    background: #0a1f44;
    aspect-ratio: 3 / 1;
}
#rsepro-event-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    border-radius: 0.75rem;
    transition: transform 0.35s ease;
    background: #0a1f44;
    image-rendering: -webkit-optimize-contrast;
}
#rsepro-event-image .thumbnail:hover img { transform: scale(1.02); }

/* =====================================================
   EVENT GALLERY
   ===================================================== */
.biskoon-event-gallery__header { display: none !important; }
.biskoon-event-gallery {
    margin: 1.25rem 0 2rem !important;
    padding: 0 !important;
}
.biskoon-event-gallery__grid {
    display: grid !important;
    grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
    gap: 0.5rem !important;
}
.biskoon-event-gallery__item {
    padding: 0 !important;
    border: 2px solid transparent !important;
    background: #fff !important;
    border-radius: 0.5rem !important;
    overflow: hidden !important;
    cursor: pointer;
    display: block;
    width: 100%;
    aspect-ratio: 1 / 1;
    transition: border-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
    box-shadow: 0 2px 6px rgba(10, 31, 68, 0.08);
}
.biskoon-event-gallery__item img {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    transition: transform 0.3s ease;
}
.biskoon-event-gallery__item:hover {
    border-color: #dc3545 !important;
    transform: translateY(-2px);
    box-shadow: 0 8px 16px rgba(220, 53, 69, 0.2);
}
.biskoon-event-gallery__item:hover img { transform: scale(1.06); }

.biskoon-event-gallery-modal .modal-content { background: rgba(10, 31, 68, 0.95) !important; }
.biskoon-event-gallery__prev,
.biskoon-event-gallery__next {
    background: #dc3545 !important;
    border: 2px solid #fff !important;
    color: #fff !important;
}
.biskoon-event-gallery__prev:hover,
.biskoon-event-gallery__next:hover {
    background: #fff !important;
    color: #dc3545 !important;
}

/* =====================================================
   EVENT DETAILS WIDGET (2-column inside main col)
   ===================================================== */
#rsepro-event-details-left.sidebar-widget {
    background: #fff;
    border: 1px solid #e9ecef;
    border-radius: 0.75rem;
    padding: 1.5rem;
    margin: 0 0 1rem 0;
    box-shadow: 0 2px 8px rgba(10, 31, 68, 0.04);
}
#rsepro-event-details-left h4 {
    grid-column: 1 / -1;
    margin: 0 0 1rem 0;
    padding-bottom: 0.75rem;
    border-bottom: 2px solid #0a1f44;
    font-size: 1rem;
    font-weight: 800;
    color: #0a1f44;
    text-transform: uppercase;
    letter-spacing: 0.75px;
}
@media (min-width: 576px) {
    #rsepro-event-details-left {
        display: grid;
        grid-template-columns: 1fr 1fr;
        column-gap: 1.5rem;
        row-gap: 0;
    }
}

.sidebar-item {
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
    padding: 0.55rem 0;
    font-size: 0.9rem;
    color: #495057;
    border-bottom: 1px solid #f0f2f5;
}
.sidebar-item:last-child { border-bottom: none; }
.sidebar-item i {
    color: #dc3545;
    width: 20px;
    flex: 0 0 20px;
    margin-top: 2px;
    font-size: 1rem;
    text-align: center;
}
.sidebar-item a {
    color: #0a1f44;
    font-weight: 500;
    text-decoration: none;
    word-break: break-word;
    transition: color 0.2s ease;
}
.sidebar-item a:hover {
    color: #dc3545;
    text-decoration: underline;
}

/* =====================================================
   ADMIN OPTIONS — full-width top bar, right-aligned
   ===================================================== */
.biskoon-admin-options-topbar {
    display: flex;
    justify-content: flex-end;
    margin: 0 0 1.5rem 0;
    padding: 0;
}
.biskoon-admin-options {
    width: 100%;
    max-width: 340px;
}
.biskoon-admin-options .btn-group { width: 100%; }
.biskoon-admin-options .dropdown-toggle {
    background-color: #dc3545;
    border: 1px solid #dc3545;
    border-radius: 0;
    font-weight: 700;
    padding: 0.65rem 1.15rem;
    color: #fff;
    text-align: left;
    width: 100%;
    transition: background-color 0.2s ease;
    display: flex;
    align-items: center;
    justify-content: space-between;
    letter-spacing: 0.3px;
}
.biskoon-admin-options .dropdown-toggle::after { color: #fff; }
.biskoon-admin-options .dropdown-toggle:hover,
.biskoon-admin-options .dropdown-toggle:focus {
    background-color: #0a1f44;
    border-color: #0a1f44;
    color: #fff;
    box-shadow: none;
}
.biskoon-admin-options .dropdown-menu {
    width: 100%;
    border-radius: 0;
    border: 1px solid #e9ecef;
    box-shadow: 0 8px 20px rgba(10, 31, 68, 0.15);
    padding: 0.4rem;
    margin-top: 0.25rem;
}
.biskoon-admin-options .dropdown-item {
    border-radius: 0;
    padding: 0.5rem 0.85rem;
    font-size: 0.88rem;
    font-weight: 500;
    color: #0a1f44;
}
.biskoon-admin-options .dropdown-item i {
    color: #dc3545;
    width: 18px;
    text-align: center;
    margin-right: 0.5rem;
}
.biskoon-admin-options .dropdown-item:hover {
    background: #f8f9fa;
    color: #0a1f44;
}
@media (max-width: 767.98px) {
    .biskoon-admin-options-topbar { justify-content: stretch; }
    .biskoon-admin-options { max-width: none; }
}

/* =====================================================
   ANCHOR MENU
   ===================================================== */
.biskoon-event-anchors {
    margin: 1.25rem 0 2rem 0;
    padding: 1.25rem;
    background: linear-gradient(135deg, #0a1f44 0%, #163060 100%);
    border-radius: 1rem;
    box-shadow: 0 8px 20px rgba(10, 31, 68, 0.2);
}
.biskoon-event-anchors ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
}
.biskoon-event-anchors a {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    padding: 0.7rem 1.35rem;
    border-radius: 50px;
    background: #fff;
    color: #0a1f44 !important;
    font-size: 1rem;
    font-weight: 700;
    text-decoration: none;
    border: 2px solid #fff;
    transition: all 0.25s ease;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
}
.biskoon-event-anchors a i {
    font-size: 1rem;
    color: #dc3545;
    transition: color 0.25s ease, transform 0.25s ease;
}
.biskoon-event-anchors a:hover {
    background: #dc3545;
    color: #fff !important;
    border-color: #dc3545;
    transform: translateY(-3px);
    box-shadow: 0 10px 20px rgba(220, 53, 69, 0.35);
}
.biskoon-event-anchors a:hover i {
    color: #fff;
    transform: scale(1.15);
}
.biskoon-anchor-share { display: inline-flex; }
.biskoon-anchor-share-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    padding: 0.7rem 1.35rem;
    border-radius: 50px;
    background: #fff;
    color: #0a1f44;
    font-size: 0.9rem;
    font-weight: 700;
    border: 2px solid #fff;
    cursor: pointer;
    transition: all 0.25s ease;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
    font-family: inherit;
}
.biskoon-anchor-share-btn i {
    font-size: 1rem;
    color: #dc3545;
    transition: color 0.25s ease, transform 0.25s ease;
}
.biskoon-anchor-share-btn:hover {
    background: #dc3545;
    color: #fff !important;
    border-color: #dc3545;
    transform: translateY(-3px);
    box-shadow: 0 10px 20px rgba(220, 53, 69, 0.35);
}
.biskoon-anchor-share-btn:hover i {
    color: #fff;
    transform: scale(1.15);
}
.biskoon-anchor-share-btn span { white-space: nowrap; }

/* =====================================================
   SECTIONS — unified card look
   ===================================================== */
#rsepro-event-description,
#rsepro-event-itinerary,
#rsepro-event-speakers,
#rsepro-event-sponsors,
#rsepro-event-faq,
#rsepro-event-map,
#rsepro-event-repeats,
#rsepro-event-files,
#rsepro-event-guests,
#rsepro-event-comments {
    background: #fff;
    border-radius: 0.75rem;
    padding: 1.75rem;
    border: 1px solid #e9ecef;
    margin-bottom: 1.25rem;
    box-shadow: 0 2px 8px rgba(10, 31, 68, 0.04);
}
.rscomments-accordion-title,
#rsepro-event-itinerary h3,
#rsepro-event-speakers h3,
#rsepro-event-sponsors h3,
#rsepro-event-faq h3,
#rsepro-event-files h3,
#rsepro-event-map h3 {
    color: #0a1f44;
    font-weight: 800;
    font-size: 1.35rem;
    padding-bottom: 0.75rem;
    border-bottom: 3px solid #dc3545;
    margin-bottom: 1.5rem;
    letter-spacing: -0.3px;
}

#rsepro-event-description .description {
    font-size: 0.95rem;
    line-height: 1.7;
    color: #343a40;
}
#rsepro-event-description .description h3,
#rsepro-event-description .description h2 {
    color: #0a1f44;
    font-weight: 700;
    margin-top: 1.5rem;
    margin-bottom: 0.75rem;
}
#rsepro-event-description .description ul { padding-left: 1.25rem; }
#rsepro-event-description .description li { margin-bottom: 0.35rem; }

/* =====================================================
   FILES — clean inline list
   ===================================================== */
#rsepro-event-files .rs_files {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}
#rsepro-event-files .rs_files li { margin: 0; }
#rsepro-event-files .rs_files li a {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.6rem 1.1rem;
    border-radius: 50px;
    background: #f8f9fa;
    border: 1px solid #e9ecef;
    color: #0a1f44;
    font-size: 0.88rem;
    font-weight: 600;
    text-decoration: none;
    transition: all 0.2s ease;
}
#rsepro-event-files .rs_files li a i {
    color: #dc3545;
    font-size: 0.95rem;
    transition: color 0.2s ease, transform 0.2s ease;
}
#rsepro-event-files .rs_files li a:hover {
    background: #0a1f44;
    border-color: #0a1f44;
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 6px 12px rgba(10, 31, 68, 0.15);
}
#rsepro-event-files .rs_files li a:hover i {
    color: #fff;
    transform: scale(1.1);
}

/* =====================================================
   FAQ
   ===================================================== */
#faqaccordion.accordion,
#faqaccordion { border: none; }
#faqaccordion .accordion-item {
    border: 1px solid #e9ecef !important;
    border-radius: 0.6rem !important;
    margin-bottom: 0.6rem;
    overflow: hidden;
    background: #fff;
    transition: box-shadow 0.2s ease;
}
#faqaccordion .accordion-item:hover { box-shadow: 0 4px 12px rgba(10, 31, 68, 0.08); }
#faqaccordion .accordion-button {
    font-weight: 600;
    color: #0a1f44;
    background-color: #fff;
    padding: 1rem 1.25rem;
    font-size: 0.95rem;
    border: none;
    box-shadow: none !important;
    transition: background 0.2s ease, color 0.2s ease;
}
#faqaccordion .accordion-button::after {
    background-image: none;
    content: "\f078";
    font-family: "Font Awesome 6 Free", "Font Awesome 5 Free", sans-serif;
    font-weight: 900;
    color: #dc3545;
    transition: transform 0.25s ease;
    width: auto;
    height: auto;
    font-size: 0.85rem;
}
#faqaccordion .accordion-button:not(.collapsed) {
    background-color: #0a1f44;
    color: #fff;
}
#faqaccordion .accordion-button:not(.collapsed)::after {
    color: #fff;
    transform: rotate(180deg);
}
#faqaccordion .accordion-button:focus { border: none; box-shadow: none; }
#faqaccordion .accordion-body {
    padding: 1rem 1.25rem 1.25rem;
    color: #495057;
    font-size: 0.9rem;
    line-height: 1.65;
    background: #f8f9fa;
    border-top: 1px solid #e9ecef;
}

/* =====================================================
   SPEAKERS & SPONSORS
   ===================================================== */
.rsepro-speakers .thumbnail,
.rsepro-sponsors .thumbnail {
    border: 1px solid #e9ecef;
    border-radius: 0.75rem;
    padding: 1rem;
    background: #fff;
    transition: all 0.25s ease;
    text-align: center;
}
.rsepro-speakers .thumbnail:hover,
.rsepro-sponsors .thumbnail:hover {
    border-color: #dc3545;
    transform: translateY(-3px);
    box-shadow: 0 8px 20px rgba(220, 53, 69, 0.12);
}
.rsepro-speaker-image,
.rsepro-sponsor-image {
    border-radius: 50%;
    object-fit: cover;
    width: 100px;
    height: 100px;
    margin: 0 auto 0.75rem;
    display: block;
    border: 3px solid #f0f2f5;
}
.rsepro-speaker-name {
    font-weight: 700;
    color: #0a1f44;
    font-size: 0.95rem;
    margin: 0.5rem 0 0.35rem;
}
.rsepro-speaker-info {
    list-style: none;
    padding: 0;
    margin: 0.5rem 0;
    display: flex;
    justify-content: center;
    gap: 0.4rem;
    flex-wrap: wrap;
}
.rsepro-speaker-info li a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: #f8f9fa;
    color: #0a1f44;
    transition: all 0.2s ease;
    font-size: 0.75rem;
}
.rsepro-speaker-info li a:hover {
    background: #dc3545;
    color: #fff;
}
.rsepro-speaker-description {
    font-size: 0.82rem;
    color: #6c757d;
    line-height: 1.5;
    margin-top: 0.5rem;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* =====================================================
   ITINERARY — polished tabs
   ===================================================== */
#rsepro-event-itinerary joomla-tab { display: block; }

#rsepro-event-itinerary joomla-tab > [role="tablist"] {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 0.4rem;
    border: none !important;
    margin-bottom: 1.5rem;
    padding: 0;
    background: transparent !important;
    box-shadow: none !important;
}

#rsepro-event-itinerary joomla-tab > [role="tablist"] > [role="tab"] {
    position: relative;
    border: 2px solid #e9ecef !important;
    background: #f8f9fa !important;
    color: #6c757d !important;
    font-weight: 700 !important;
    font-size: 0.9rem !important;
    padding: 0.75rem 1.35rem !important;
    border-radius: 50px !important;
    transition: all 0.2s ease !important;
    margin: 0 !important;
    line-height: 1.2 !important;
    cursor: pointer;
    box-shadow: none !important;
    outline: none !important;
    white-space: nowrap;
}

#rsepro-event-itinerary joomla-tab > [role="tablist"] > [role="tab"]:hover {
    background: #fff !important;
    color: #0a1f44 !important;
    border-color: #0a1f44 !important;
}

#rsepro-event-itinerary joomla-tab > [role="tablist"] > [role="tab"][aria-selected="true"] {
    background: #0a1f44 !important;
    color: #fff !important;
    border-color: #0a1f44 !important;
    box-shadow: 0 6px 14px rgba(10, 31, 68, 0.25) !important;
}

#rsepro-event-itinerary joomla-tab > [role="tablist"] > [role="tab"][aria-selected="true"]::after {
    content: "";
    position: absolute;
    bottom: -3px;
    left: 50%;
    transform: translateX(-50%);
    width: 24px;
    height: 3px;
    background: #dc3545;
    border-radius: 2px;
}

/* CRITICAL: correctly hide/show tab panels based on active attribute */
#rsepro-event-itinerary joomla-tab > joomla-tab-element {
    display: none;
    border: none;
    padding: 0;
    background: transparent;
}
#rsepro-event-itinerary joomla-tab > joomla-tab-element[active] {
    display: block;
}

#rsepro-event-itinerary .card {
    border: 1px solid #e9ecef;
    border-radius: 0.75rem;
    background: #f8f9fa;
    margin-top: 0;
    padding: 1.25rem 1.5rem;
    box-shadow: 0 2px 6px rgba(10, 31, 68, 0.04);
}
#rsepro-event-itinerary .card-title {
    color: #0a1f44;
    font-weight: 700;
    font-size: 1.05rem;
    margin-bottom: 0.35rem;
}
#rsepro-event-itinerary .card-subtitle {
    color: #dc3545 !important;
    font-weight: 700;
    font-size: 0.85rem;
    margin-bottom: 0.85rem;
    letter-spacing: 0.3px;
}
#rsepro-event-itinerary .card-text {
    color: #495057;
    font-size: 0.92rem;
    line-height: 1.7;
}

@media (max-width: 767.98px) {
    #rsepro-event-itinerary joomla-tab > [role="tablist"] > [role="tab"] {
        font-size: 0.82rem !important;
        padding: 0.6rem 1rem !important;
        width: 100%;
        text-align: left;
        border-radius: 0.5rem !important;
    }
    #rsepro-event-itinerary joomla-tab > [role="tablist"] > [role="tab"][aria-selected="true"]::after {
        display: none;
    }
}

/* =====================================================
   SIDEBAR WIDGETS — base
   ===================================================== */
.biskoon-event-sidebar .sidebar-widget {
    background: #fff;
    border: 1px solid #e9ecef;
    border-radius: 0.75rem;
    padding: 1.25rem;
    margin-bottom: 1.25rem;
    box-shadow: 0 2px 8px rgba(10, 31, 68, 0.05);
}
.biskoon-event-sidebar .sidebar-widget h4 {
    margin: 0 0 1rem 0;
    padding-bottom: 0.65rem;
    border-bottom: 2px solid #dc3545;
    font-size: 0.85rem;
    font-weight: 800;
    color: #0a1f44;
    text-transform: uppercase;
    letter-spacing: 1px;
}

/* Consistent headers for CTA + Event Options */
.biskoon-connect-cta.sidebar-widget h4,
.biskoon-event-options-inline.sidebar-widget h4 {
    margin: 0 0 1rem 0;
    padding: 0 0 0.75rem 0;
    border: none;
    border-bottom: 2px solid #dc3545;
    font-size: 0.85rem;
    font-weight: 800;
    color: #0a1f44;
    text-transform: uppercase;
    letter-spacing: 1px;
}

/* =====================================================
   COUNTER
   ===================================================== */
#rsepro-counter-container,
#rsepro-counter-container.sidebar-widget,
#rsepro-counter-container.rsepro-counter {
    margin: 0 0 1.25rem 0 !important;
    padding: 0 !important;
    border: none !important;
    background: transparent !important;
    box-shadow: none !important;
}
#rsepro-counter-container.rsepro-counter {
    background: linear-gradient(135deg, #0a1f44 0%, #163060 100%) !important;
    border-radius: 0.75rem !important;
    padding: 1.15rem 1rem 1.25rem !important;
    box-shadow: 0 8px 20px rgba(10, 31, 68, 0.2) !important;
    text-align: center;
}
#rsepro-counter-container.rsepro-counter h4 {
    color: #fff !important;
    margin: 0 0 1rem 0 !important;
    padding: 0 0 0.75rem 0 !important;
    border: none !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.15) !important;
    font-size: 0.85rem !important;
    font-weight: 800 !important;
    text-transform: uppercase;
    letter-spacing: 1.5px;
}
#rsepro-counter {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 0.5rem !important;
    text-align: center !important;
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
}
#rsepro-counter > div {
    background: rgba(220, 53, 69, 0.3) !important;
    border: none !important;
    border-radius: 0.5rem !important;
    padding: 0.7rem 0.15rem !important;
    margin: 0 !important;
    transition: background 0.2s ease, transform 0.15s ease !important;
    min-width: 0 !important;
    box-shadow: none !important;
}
#rsepro-counter > div:hover {
    background: rgba(193, 25, 42, 0.3) !important;
    transform: translateY(-2px);
}
#rsepro-counter .rsepro-counter-days,
#rsepro-counter .rsepro-counter-hours,
#rsepro-counter .rsepro-counter-minutes,
#rsepro-counter .rsepro-counter-seconds {
    display: block !important;
    font-size: 1.55rem !important;
    font-weight: 800 !important;
    color: #ffffff !important;
    line-height: 1 !important;
    font-variant-numeric: tabular-nums !important;
    letter-spacing: -0.5px !important;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.15) !important;
    margin: 0 !important;
    padding: 0 !important;
}
#rsepro-counter .rsepro-counter-text {
    font-size: 0.6rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 1px !important;
    color: rgba(255, 255, 255, 0.75) !important;
    margin: 0.4rem 0 0 0 !important;
    padding: 0 !important;
    white-space: nowrap;
}

/* =====================================================
   EVENT OPTIONS — vertical sidebar menu
   ===================================================== */
.biskoon-sidebar-menu {
    list-style: none;
    padding: 0;
    margin: 0;
}
.biskoon-sidebar-menu li { border-bottom: 1px solid #f0f2f5; }
.biskoon-sidebar-menu li:last-child { border-bottom: none; }
.biskoon-sidebar-link {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.7rem 0.25rem;
    color: #0a1f44;
    text-decoration: none;
    font-size: 0.9rem;
    font-weight: 600;
    transition: color 0.2s ease, padding-left 0.2s ease;
    border-radius: 0.35rem;
}
.biskoon-sidebar-link i {
    color: #dc3545;
    width: 20px;
    text-align: center;
    font-size: 1rem;
    flex: 0 0 20px;
    transition: color 0.2s ease;
}
.biskoon-sidebar-link:hover {
    color: #dc3545;
    padding-left: 0.6rem;
}
.biskoon-sidebar-link:hover i { color: #0a1f44; }

/* =====================================================
   MAP WIDGET (inside main column)
   ===================================================== */
#rsepro-event-map #map-canvas {
    border-radius: 0.75rem;
    height: 400px;
    min-height: 400px;
}
#rsepro-event-map .rsepro-map-directions {
    display: flex;
    justify-content: center;
    gap: 0.4rem;
    padding: 0.85rem;
    margin-top: 0.75rem;
    background: #f8f9fa;
    border: 1px solid #e9ecef;
    border-radius: 0.5rem;
}
#rsepro-event-map .rsepro-map-directions .hasTooltip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: #fff;
    color: #0a1f44;
    border: 1px solid #e9ecef;
    text-decoration: none;
    transition: all 0.2s ease;
}
#rsepro-event-map .rsepro-map-directions .hasTooltip:hover {
    background: #dc3545;
    color: #fff;
    border-color: #dc3545;
    transform: translateY(-2px);
}

/* =====================================================
   RATING + SHARE ROW
   ===================================================== */
.biskoon-event-meta-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin: 1rem 0;
    padding: 0.85rem 1rem;
    background: #fff;
    border: 1px solid #e9ecef;
    border-radius: 0.75rem;
    box-shadow: 0 2px 8px rgba(10, 31, 68, 0.05);
}
.biskoon-event-rating {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    flex: 1 1 auto;
    min-width: 0;
}
.biskoon-event-rating h5 {
    margin: 0;
    font-size: 0.7rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: #6c757d;
}
.biskoon-event-rating #rsepro-rating {
    margin: 0 !important;
    padding: 0 !important;
    list-style: none;
    display: flex;
    gap: 0.15rem;
}
.biskoon-event-rating #rsepro-rating .fa-star {
    color: #0a1f44 !important;
    font-size: 0.95rem;
    cursor: pointer;
    transition: color 0.2s ease, transform 0.15s ease;
}
.biskoon-event-rating #rsepro-rating .fa-star:hover {
    color: #dc3545 !important;
    transform: scale(1.15);
}
.biskoon-event-share { flex: 0 0 auto; }
.biskoon-event-share .bisShare {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.55rem 1rem;
    border-radius: 50px;
    background: #dc3545;
    color: #fff;
    border: 1px solid #dc3545;
    font-size: 0.83rem;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.2s ease;
    white-space: nowrap;
}
.biskoon-event-share .bisShare:hover {
    background: #0a1f44;
    border-color: #0a1f44;
    transform: translateY(-2px);
    box-shadow: 0 6px 12px rgba(10, 31, 68, 0.25);
}
.biskoon-event-share .bisShare i,
.biskoon-event-share .bisShare svg {
    width: 16px;
    height: 16px;
    color: #fff;
}

/* =====================================================
   CONTROL BUTTONS (top)
   ===================================================== */
#rsepro-event-controls .btn {
    border-radius: 0.5rem;
    font-weight: 600;
    padding: 0.5rem 1rem;
}
#rsepro-event-controls .btn-primary,
#rsepro-event-controls .dropdown-toggle {
    background-color: #0a1f44;
    border-color: #0a1f44;
    color: #fff;
}
#rsepro-event-controls .btn-primary:hover,
#rsepro-event-controls .dropdown-toggle:hover {
    background-color: #dc3545;
    border-color: #dc3545;
}

#rsepro_rating_loading:empty { display: none; }

/* =====================================================
   DIVIDERS between sections in main column
   ===================================================== */
.biskoon-event-main-col > hr {
    border-top: 1px solid #e9ecef;
    opacity: 0.5;
    margin: 1.5rem 0;
}

/* =====================================================
   CONNECT WITH THE LISTER — CTA block
   ===================================================== */
.biskoon-connect-cta { text-align: left; }

.biskoon-connect-buttons {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
}

/* Full-width buttons */
.biskoon-connect-btn-full {
    width: 100%;
}

/* Row with Chat + Call */
.biskoon-connect-row {
    display: grid;
    gap: 0.6rem;
}
.biskoon-connect-row.has-call { grid-template-columns: 1fr 1fr; }
.biskoon-connect-row.no-call  { grid-template-columns: 1fr; }

/* Base button */
.biskoon-connect-btn {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.55rem;
    padding: 0.75rem 1rem;
    border-radius: 0.6rem;
    border: 2px solid transparent;
    font-size: 0.9rem;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.2s ease;
    font-family: inherit;
    text-decoration: none;
    white-space: nowrap;
    min-width: 0;
    width: 100%;
    line-height: 1.2;
    letter-spacing: 0.2px;
}
.biskoon-connect-btn i { font-size: 0.95rem; }
.biskoon-connect-btn span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Left icon — fixed */
.biskoon-connect-icon-left {
    flex: 0 0 auto;
    margin-right: 0.1rem;
}

/* Right icon — pushed to the end */
.biskoon-connect-icon-right {
    position: absolute;
    right: 1rem;
    top: 50%;
    transform: translateY(-50%);
    font-size: 0.85rem;
    opacity: 0.9;
    transition: transform 0.2s ease, opacity 0.2s ease;
}

/* ---------------------------------------------
   1) Visit Official Website — navy filled
   --------------------------------------------- */
.biskoon-connect-btn.btn-website {
    background: #0d6efd;
    color: #fff;
    border-color: #0d6efd;
    padding-left: 3rem;
    padding-right: 3rem;
    justify-content: flex-start;
}
.biskoon-connect-btn.btn-website .biskoon-connect-icon-left {
    position: absolute;
    left: 1rem;
    top: 50%;
    transform: translateY(-50%);
    font-size: 1rem;
    color: #fff;
}
.biskoon-connect-btn.btn-website:hover {
    background: #0A1F44;
    border-color: #0A1F44;
    color: #fff;
    box-shadow: 0 6px 14px rgba(10, 31, 68, 0.28);
}
.biskoon-connect-btn.btn-website:hover .biskoon-connect-icon-right {
    transform: translateY(-50%) translateX(3px);
}

/* ---------------------------------------------
   2) Get Enquiry — white bg, red border + text
   --------------------------------------------- */
.biskoon-connect-btn.btn-enquiry {
    background: #dc3545;
    color: #fff;
    border-color: #dc3545;
    padding-left: 3rem;
    padding-right: 3rem;
    justify-content: flex-start;
}
.biskoon-connect-btn.btn-enquiry .biskoon-connect-icon-left {
    position: absolute;
    left: 1rem;
    top: 50%;
    transform: translateY(-50%);
    font-size: 1rem;
    color: #fff;
}
.biskoon-connect-btn.btn-enquiry .biskoon-connect-icon-right {
    color: #fff;
}
.biskoon-connect-btn.btn-enquiry:hover {
    box-shadow: 0 6px 14px rgba(220, 53, 69, 0.28);
}
.biskoon-connect-btn.btn-enquiry:hover .biskoon-connect-icon-left,
.biskoon-connect-btn.btn-enquiry:hover .biskoon-connect-icon-right {
    color: #fff;
}
.biskoon-connect-btn.btn-enquiry:hover .biskoon-connect-icon-right {
    transform: translateY(-50%) translateX(3px);
}

/* ---------------------------------------------
   3) Chat — green filled
   --------------------------------------------- */
.biskoon-connect-btn.btn-chat {
    background: #198754;
    color: #fff;
    border-color: #198754;
}
.biskoon-connect-btn.btn-chat:hover {
    background: #146c43;
    border-color: #146c43;
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 6px 14px rgba(25, 135, 84, 0.3);
}

/* ---------------------------------------------
   4) Call — navy filled
   --------------------------------------------- */
.biskoon-connect-btn.btn-call {
    background: #0a1f44;
    color: #fff;
    border-color: #0a1f44;
}
.biskoon-connect-btn.btn-call:hover {
    background: #163060;
    border-color: #163060;
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 6px 14px rgba(10, 31, 68, 0.28);
}

/* ---------------------------------------------
   5) Helper hint text
   --------------------------------------------- */
.biskoon-connect-hint {
    margin: 0.35rem 0 0 0;
    padding: 0;
    font-size: 0.78rem;
    line-height: 1.5;
    color: #6c757d;
    font-weight: 500;
    text-align: left;
}

/* ---------------------------------------------
   Mobile — compact
   --------------------------------------------- */
@media (max-width: 575.98px) {
    .biskoon-connect-btn {
        font-size: 0.82rem;
        padding: 0.65rem 0.75rem;
        border-radius: 0.5rem;
    }
    .biskoon-connect-btn.btn-website,
    .biskoon-connect-btn.btn-enquiry {
        padding-left: 2.6rem;
        padding-right: 2.6rem;
    }
    .biskoon-connect-btn .biskoon-connect-icon-left { left: 0.85rem; }
    .biskoon-connect-btn .biskoon-connect-icon-right { right: 0.85rem; }
    .biskoon-connect-hint { font-size: 0.72rem; }
}
@media (max-width: 400px) {
    .biskoon-connect-btn { font-size: 0.75rem; padding: 0.6rem 0.5rem; }
    .biskoon-connect-btn span { display: none; }
    .biskoon-connect-btn.btn-website span,
    .biskoon-connect-btn.btn-enquiry span { display: inline; }
}

/* =====================================================
   RSVP — Going / Interested / Not Going
   ===================================================== */
#rsepro_rsvp {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 0.4rem !important;
    margin-bottom: 1.25rem !important;
    padding: 1rem 1rem 1.15rem !important;
    background: #fff !important;
    border: 1px solid #e9ecef !important;
    border-radius: 0.75rem !important;
    box-shadow: 0 2px 8px rgba(10, 31, 68, 0.05) !important;
    position: relative;
}
#rsepro_rsvp::before {
    content: "Will you attend?";
    position: absolute;
    top: -0.7rem;
    left: 1rem;
    background: #0a1f44;
    color: #fff;
    font-size: 0.65rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    padding: 0.25rem 0.7rem;
    border-radius: 50px;
}

#rsepro_rsvp .btn {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    padding: 0.55rem 0.4rem !important;
    font-size: 0.78rem !important;
    font-weight: 700 !important;
    border-radius: 0.5rem !important;
    border: 2px solid transparent !important;
    text-decoration: none !important;
    transition: all 0.2s ease !important;
    white-space: nowrap;
    line-height: 1.2 !important;
    text-align: center;
    box-shadow: none !important;
}

/* Default state — outlined soft */
#rsepro_rsvp .btn-secondary {
    background: #f8f9fa !important;
    color: #0a1f44 !important;
    border-color: #e9ecef !important;
}
#rsepro_rsvp .btn-secondary:hover {
    background: #e9ecef !important;
    border-color: #0a1f44 !important;
    transform: translateY(-2px);
}

/* Going — green filled (active state) */
#rsepro_rsvp .btn-success,
#rsepro_rsvp #rsepro_going.btn-success {
    background: #198754 !important;
    color: #fff !important;
    border-color: #198754 !important;
}
#rsepro_rsvp .btn-success:hover {
    background: #146c43 !important;
    border-color: #146c43 !important;
    color: #fff !important;
}

/* Disabled state */
#rsepro_rsvp .btn.disabled,
#rsepro_rsvp .btn[disabled] {
    opacity: 0.85;
    cursor: default;
    transform: none !important;
}

/* Mobile — stack but keep 3-wide */
@media (max-width: 575.98px) {
    #rsepro_rsvp {
        grid-template-columns: 1fr !important;
        gap: 0.4rem !important;
    }
    #rsepro_rsvp .btn {
        font-size: 0.82rem !important;
        padding: 0.6rem 0.6rem !important;
    }
}

/* =====================================================
   ATTEND THIS EVENT — Subscribe / Waiting / Unsubscribe
   ===================================================== */
.biskoon-attend-actions.sidebar-widget {
    /* inherits .sidebar-widget look */
}
.biskoon-attend-buttons {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
}

.biskoon-attend-btn {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.55rem;
    padding: 0.8rem 1rem;
    border-radius: 0.6rem;
    border: 2px solid transparent;
    font-size: 0.9rem;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.2s ease;
    font-family: inherit;
    text-decoration: none;
    white-space: nowrap;
    min-width: 0;
    width: 100%;
    line-height: 1.2;
    letter-spacing: 0.2px;
}
.biskoon-attend-btn i {
    font-size: 1rem;
    flex: 0 0 auto;
}
.biskoon-attend-btn span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Subscribe / Register — navy filled */
.biskoon-attend-btn.btn-subscribe {
    background: #0a1f44;
    color: #fff;
    border-color: #0a1f44;
}
.biskoon-attend-btn.btn-subscribe:hover {
    background: #163060;
    border-color: #163060;
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 6px 14px rgba(10, 31, 68, 0.3);
}

/* Join Waiting List — amber filled */
.biskoon-attend-btn.btn-waiting {
    background: #ffc107;
    color: #0a1f44;
    border-color: #ffc107;
}
.biskoon-attend-btn.btn-waiting:hover {
    background: #e0a800;
    border-color: #e0a800;
    color: #0a1f44;
    transform: translateY(-2px);
    box-shadow: 0 6px 14px rgba(255, 193, 7, 0.4);
}

/* Unsubscribe — red outline */
.biskoon-attend-btn.btn-unsubscribe {
    background: #fff;
    color: #dc3545;
    border-color: #dc3545;
}
.biskoon-attend-btn.btn-unsubscribe:hover {
    background: #dc3545;
    color: #fff;
    border-color: #dc3545;
    transform: translateY(-2px);
    box-shadow: 0 6px 14px rgba(220, 53, 69, 0.3);
}

/* Mobile tweak */
@media (max-width: 575.98px) {
    .biskoon-attend-btn {
        padding: 0.7rem 0.85rem;
        font-size: 0.85rem;
    }
}

/* =====================================================
   CONNECT WITH THE LISTER — Owner profile card
   ===================================================== */
.biskoon-connect-owner {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.375rem;
    margin: -0.35rem -0.35rem 1rem -0.35rem;
    border-radius: 0.5rem;
    background: #f8f9fa;
    border: 1px solid #e9ecef;
    text-decoration: none;
    color: #0a1f44;
    font-weight: 700;
    transition: background-color 0.2s ease, border-color 0.2s ease, transform 0.15s ease;
}

.biskoon-connect-owner:hover {
    background: #fff;
    border-color: #dc3545;
    color: #0a1f44;
    transform: translateY(-1px);
    box-shadow: 0 4px 10px rgba(220, 53, 69, 0.12);
}

.biskoon-connect-avatar {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    object-fit: cover;
    border: 2px solid #fff;
    flex: 0 0 48px;
    box-shadow: 0 2px 4px rgba(10, 31, 68, 0.1);
}

.biskoon-connect-avatar-initials {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #0a1f44;
    color: #fff;
    font-weight: 800;
    font-size: 1.05rem;
    letter-spacing: 0.5px;
}

.biskoon-connect-owner-name {
    font-size: 0.95rem;
    line-height: 1.25;
    font-weight: 700;
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Verified badge inside the profile card */
.biskoon-connect-owner > img:not(.biskoon-connect-avatar),
.biskoon-connect-owner > span:not(.biskoon-connect-owner-name):not(.biskoon-connect-avatar-initials) {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    margin-left: 0.15rem;
}

.biskoon-connect-owner > img:not(.biskoon-connect-avatar) {
    object-fit: contain;
}

/* =====================================================
   CONNECT WITH THE LISTER — Guest Sign In / Sign Up
   ===================================================== */
.biskoon-connect-guest-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.5rem;
    margin-top: 0.75rem;
    padding-top: 0.85rem;
    border-top: 1px solid #e9ecef;
}

.biskoon-connect-guest-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.65rem 1rem;
    border-radius: 0.5rem;
    font-size: 0.85rem;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.2s ease;
    font-family: inherit;
    border: 2px solid transparent;
    text-decoration: none;
    line-height: 1.2;
    white-space: nowrap;
}

/* Sign In — navy filled */
.biskoon-connect-guest-btn.btn-signin {
    background: #0a1f44;
    color: #fff;
    border-color: #0a1f44;
}
.biskoon-connect-guest-btn.btn-signin:hover {
    background: #163060;
    border-color: #163060;
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 6px 12px rgba(10, 31, 68, 0.25);
}

/* Sign Up — red outline */
.biskoon-connect-guest-btn.btn-signup {
    background: #fff;
    color: #dc3545;
    border-color: #dc3545;
}
.biskoon-connect-guest-btn.btn-signup:hover {
    background: #dc3545;
    color: #fff;
    border-color: #dc3545;
    transform: translateY(-2px);
    box-shadow: 0 6px 12px rgba(220, 53, 69, 0.25);
}

/* Mobile tweak */
@media (max-width: 400px) {
    .biskoon-connect-guest-actions {
        grid-template-columns: 1fr;
    }
    .biskoon-connect-avatar {
        width: 42px;
        height: 42px;
        flex: 0 0 42px;
    }
    .biskoon-connect-owner-name {
        font-size: 0.88rem;
    }
}

.rscomments {
    background-color: transparent !important;
    padding: 0 !important;
}

  /* =========================================================
   BISKOON EVENTS — UNIFIED STYLESHEET
   Primary selectors:
     .eventHero   — full-bleed carousel
     .eventDiscover + .eventSearch — red search card
     .eventsUpcoming — 3-column event grid
     .eventsCategory + .eventsTags — 2-column directory
     .eventsMap   — Leaflet map card

   Design system:
     Navy  #0a1f44 · Red  #ff3b3b → #d92a2a · Ink #0f172a
     Muted #536174 · Border rgba(10,31,68,.08)
     Radius 16px · Section gap 56/44/36px
     Heading 28/24/22px · weight 800
   ========================================================= */

/* =========================================================
   SHARED TOKENS
   ========================================================= */
:root {
    --bk-navy:        #0a1f44;
    --bk-ink:         #0f172a;
    --bk-muted:       #536174;
    --bk-soft:        #8a94a6;
    --bk-red:         #ff3b3b;
    --bk-red-dark:    #d92a2a;
    --bk-red-soft:    rgba(255, 59, 59, 0.10);
    --bk-surface:     #ffffff;
    --bk-surface-2:   #f7f9fc;
    --bk-border:      rgba(10, 31, 68, 0.08);
    --bk-border-2:    rgba(10, 31, 68, 0.16);
    --bk-radius:      16px;
    --bk-radius-sm:   12px;
    --bk-shadow-sm:   0 1px 2px rgba(10, 31, 68, 0.04),
                      0 6px 20px -10px rgba(10, 31, 68, 0.10);
    --bk-shadow-hov:  0 2px 4px rgba(10, 31, 68, 0.06),
                      0 16px 40px -16px rgba(10, 31, 68, 0.20);
    --bk-ease:        240ms cubic-bezier(0.22, 0.61, 0.36, 1);

    /* Section rhythm */
    --bk-section-gap: 56px;
    --bk-h3-size:     28px;
    --bk-h3-bar-w:    48px;
    --bk-h3-bar-h:    4px;
    --bk-h3-spacing:  28px;
}

@media (max-width: 991.98px) {
    :root {
        --bk-section-gap: 44px;
        --bk-h3-size:     24px;
        --bk-h3-bar-w:    42px;
        --bk-h3-spacing:  24px;
    }
}

@media (max-width: 575.98px) {
    :root {
        --bk-section-gap: 36px;
        --bk-h3-size:     22px;
        --bk-h3-bar-w:    36px;
        --bk-h3-bar-h:    3px;
        --bk-h3-spacing:  20px;
    }
}

/* =========================================================
   SHARED SECTION HEADING (h3)
   Applies to: .eventsUpcoming, .eventsCategory,
               .eventsTags, .eventsMap
   (Not .eventHero — full-bleed carousel has no h3)
   ========================================================= */
.eventsUpcoming > h3,
.eventsCategory > h3,
.eventsTags > h3,
.eventsMap > h3 {
    position: relative;
    margin: 0 0 var(--bk-h3-spacing);
    padding: 0 0 14px;

    color: var(--bk-navy);
    font-size: var(--bk-h3-size);
    font-weight: 800;
    line-height: 1.15;
    letter-spacing: -0.5px;
}

.eventsUpcoming > h3::after,
.eventsCategory > h3::after,
.eventsTags > h3::after,
.eventsMap > h3::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: var(--bk-h3-bar-w);
    height: var(--bk-h3-bar-h);
    background: linear-gradient(90deg, var(--bk-red) 0%, var(--bk-red-dark) 100%);
    border-radius: var(--bk-h3-bar-h);
}

/* =========================================================
   SHARED SECTION SPACING
   ========================================================= */
.eventsUpcoming,
.eventsMap {
    width: 100%;
    max-width: 100%;
    padding: 0;
    box-sizing: border-box;
    font-family: inherit;
    color: var(--bk-ink);
}
.eventsUpcoming {
    margin-top: 1rem;
}
.eventsMap {
    margin-top: 2rem;
}

.eventsCategoryTagsRow {
    margin-top: var(--bk-section-gap);
}


/* =========================================================
   EVENT HERO — full-bleed carousel
   ========================================================= */
.eventHero {
    margin-top: 0 !important;
    padding: 0 !important;
    overflow: hidden;
     border-radius: 0 0 14px 14px;
}

.eventHero .mod_slider_container {
    position: relative;
    width: 100% !important;
    margin: 0 !important;
    overflow: hidden;
    background: var(--bk-navy);
    border-radius: 0 !important;
}

.eventHero .mod_slider_inner img {
    display: block;
    width: 100% !important;
    height: auto !important;
    margin: 0;
}

/* Caption container */
.eventHero .mod_slider_caption_container {
    position: relative !important;
    width: 100%;
    height: 82px !important;
    margin: 0;
    padding: 0;
    background: var(--bk-navy);
    overflow: hidden;
}

/* Caption base — all hidden by default */
.eventHero .mod_slider_caption_container .mod_slider_caption {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 82px !important;

    display: none !important;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;

    margin: 0;
    padding: 10px 72px 10px 58px;

    background: var(--bk-navy);
    text-align: left;
    box-sizing: border-box;
    z-index: 1;
}

/* Show only the caption matching the active slide */
.eventHero .mod_slider_inner:has(.item.active[data_captions="0"])  ~ .mod_slider_caption_container #mod_slider_caption0,
.eventHero .mod_slider_inner:has(.item.active[data_captions="1"])  ~ .mod_slider_caption_container #mod_slider_caption1,
.eventHero .mod_slider_inner:has(.item.active[data_captions="2"])  ~ .mod_slider_caption_container #mod_slider_caption2,
.eventHero .mod_slider_inner:has(.item.active[data_captions="3"])  ~ .mod_slider_caption_container #mod_slider_caption3,
.eventHero .mod_slider_inner:has(.item.active[data_captions="4"])  ~ .mod_slider_caption_container #mod_slider_caption4,
.eventHero .mod_slider_inner:has(.item.active[data_captions="5"])  ~ .mod_slider_caption_container #mod_slider_caption5,
.eventHero .mod_slider_inner:has(.item.active[data_captions="6"])  ~ .mod_slider_caption_container #mod_slider_caption6,
.eventHero .mod_slider_inner:has(.item.active[data_captions="7"])  ~ .mod_slider_caption_container #mod_slider_caption7,
.eventHero .mod_slider_inner:has(.item.active[data_captions="8"])  ~ .mod_slider_caption_container #mod_slider_caption8,
.eventHero .mod_slider_inner:has(.item.active[data_captions="9"])  ~ .mod_slider_caption_container #mod_slider_caption9 {
    display: flex !important;
}

/* Caption title + date */
.eventHero .mod_slider_caption h3 {
    margin: 0 0 3px;
    padding: 0;
    font-size: 18px;
    font-weight: 600;
    line-height: 1.3;
}

.eventHero .mod_slider_caption h3 a {
    color: #ffffff;
    text-decoration: none;
    transition: color var(--bk-ease);
}

.eventHero .mod_slider_caption h3 a:hover,
.eventHero .mod_slider_caption h3 a:focus {
    color: #dbeafe;
    text-decoration: none;
}

.eventHero .mod_slider_caption p.lead {
    margin: 0;
    padding: 0;
    color: rgba(255, 255, 255, 0.78);
    font-size: 13px;
    font-weight: 400;
    line-height: 1.4;
}

/* Prev / Next controls */
.eventHero .mod_slider_control {
    position: absolute;
    bottom: 0;
    z-index: 10;

    width: 46px !important;
    height: 82px !important;
    line-height: 82px !important;

    margin: 0;
    padding: 0;

    background: rgba(10, 31, 68, 0.90);
    color: #ffffff;

    border: 0;
    opacity: 0.90;

    text-align: center;
    text-decoration: none;

    font-size: 30px;
    font-weight: 300;

    transition: background-color 200ms ease, opacity 200ms ease;
}

.eventHero .mod_slider_control:hover,
.eventHero .mod_slider_control:focus {
    background: #0066cc;
    color: #ffffff;
    opacity: 1;
    text-decoration: none;
}

.eventHero .mod_slider_left  { left: 0; }
.eventHero .mod_slider_right { right: 0; }

@media (max-width: 991.98px) {
    .eventHero .mod_slider_caption {
        padding-left: 52px;
        padding-right: 52px;
    }
    .eventHero .mod_slider_caption h3 { font-size: 16px; }
    .eventHero .mod_slider_caption p.lead { font-size: 12px; }
    .eventHero .mod_slider_control { width: 42px !important; }
}

@media (max-width: 767.98px) {
    .eventHero .mod_slider_caption_container { height: 64px !important; }
    .eventHero .mod_slider_caption {
        height: 64px !important;
        padding: 8px 46px 8px 44px;
    }
    .eventHero .mod_slider_caption h3 { font-size: 14px; line-height: 1.25; }
    .eventHero .mod_slider_caption p.lead { font-size: 11px; line-height: 1.3; }
    .eventHero .mod_slider_control {
        width: 38px !important;
        height: 64px !important;
        line-height: 64px !important;
        font-size: 25px;
    }

    .eventHero {
        margin-top: 1rem !important;
        border-radius: 14px;
    }

}

@media (max-width: 575.98px) {
    .eventHero .mod_slider_caption_container { height: 60px !important; }
    .eventHero .mod_slider_caption {
        height: 60px !important;
        padding-left: 40px;
        padding-right: 40px;
    }
    .eventHero .mod_slider_caption h3 { font-size: 13px; }
    .eventHero .mod_slider_caption p.lead { font-size: 10px; }
    .eventHero .mod_slider_control {
        width: 34px !important;
        height: 60px !important;
        line-height: 60px !important;
        font-size: 22px;
    }
}


/* =========================================================
   EVENT DISCOVER + SEARCH — unified red card
   ========================================================= */

/* ---- Discover (top of card) ---- */
.eventDiscover {
    width: 100%;
    max-width: 1650px;
    margin: 28px auto 0;
    padding: 30px 38px 22px;
    box-sizing: border-box;
    background: linear-gradient(135deg, #ff3b3b 0%, #f8323f 55%, #ed293b 100%);
    color: #ffffff;
    position: relative;
    overflow: hidden;
    border-radius: 14px 14px 0 0;
}

.eventDiscover::before {
    content: "";
    position: absolute;
    width: 460px;
    height: 460px;
    top: -330px;
    right: -90px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.10);
    pointer-events: none;
}

.eventDiscover .mod-custom {
    position: relative;
    z-index: 1;
}

.eventDiscover h1 {
    margin: 0 0 6px;
    color: #ffffff;
    font-size: 34px;
    line-height: 1.15;
    font-weight: 800;
    letter-spacing: -0.5px;
}

.eventDiscover p {
    margin: 0;
    max-width: 1100px;
    color: rgba(255, 255, 255, 0.94);
    font-size: 16px;
    line-height: 1.5;
}

/* ---- Search (bottom of card) ---- */
.eventSearch {
    width: 100%;
    max-width: 1650px;
    margin: 0 auto 30px;
    padding: 8px 38px 28px;
    box-sizing: border-box;

    background: linear-gradient(135deg, #ff3b3b 0%, #f8323f 55%, #ed293b 100%);
    border-radius: 0 0 14px 14px;
    position: relative;
}

.eventSearch .rsepro_search_formeventSearch {
    width: 100%;
}

.eventSearch form {
    width: 100%;
    display: grid;
    grid-template-columns:
        minmax(0, 1.15fr)
        minmax(0, 1.15fr)
        minmax(0, 1.70fr);
    align-items: stretch;
    gap: 0;

    margin: 0;
    padding: 6px;
    box-sizing: border-box;
    border-radius: 11px;
}
.eventSearch .btn.btn-primary {
    border-radius: 0 5px 5px 0 !important;
}

.eventSearch form > div {
    min-width: 0;
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

.eventSearch form > div > label {
    display: none;
}

/* Choices.js — Categories + Locations */
.eventSearch joomla-field-fancy-select,
.eventSearch .choices {
    display: block;
    width: 100%;
    height: 50px;
    margin: 0;
}

.eventSearch .choices__inner {
    display: flex;
    align-items: center;
    width: 100%;
    height: 50px;
    min-height: 50px;
    padding: 0 42px 0 12px;
    box-sizing: border-box;

    background: #ffffff;
    border: 0;
    border-right: 1px solid #e3e7ed;
    border-radius: 0;
    box-shadow: none;
}

.eventSearch .choices__list--multiple {
    display: flex;
    align-items: center;
    width: 100%;
    min-height: 50px;
    margin: 0;
    padding: 0;
}

.eventSearch .choices__list--multiple .choices__item {
    display: inline-flex;
    align-items: center;
    margin: 0;
    padding: 7px 10px;

    background: var(--bk-navy);
    color: #ffffff;

    border: 0;
    border-radius: 6px;

    font-size: 13px;
    line-height: 1.2;
    font-weight: 600;
}

.eventSearch .choices__button_joomla {
    margin-left: 6px;
    padding: 0;
    border: 0;
    background: transparent;
    color: #ffffff;
    font-size: 12px;
    opacity: .8;
    transition: opacity var(--bk-ease);
}

.eventSearch .choices__button_joomla:hover { opacity: 1; }

.eventSearch .choices::after {
    right: 15px;
    border-color: var(--bk-navy) transparent transparent;
}

.eventSearch .choices.is-open::after {
    border-color: transparent transparent var(--bk-navy);
}

.eventSearch .choices.is-focused .choices__inner,
.eventSearch .choices.is-open .choices__inner {
    border-color: transparent;
    box-shadow: none;
}

/* Keywords + submit */
.eventSearch form > div:last-child {
    display: flex;
    align-items: center;
    min-width: 0;
    padding-left: 0;
}

.eventSearch form > div:last-child .input-group {
    display: flex;
    align-items: stretch;
    width: 100%;
    height: 50px;
    margin: 0;
}

.eventSearch #rse_keyword {
    flex: 1 1 auto;
    min-width: 0;
    width: auto;
    height: 50px;
    margin: 0;
    padding: 0 14px;
    box-sizing: border-box;

    background: #f8fafc;
    color: var(--bk-navy);

    border: 1px solid #dce2e9;
    border-right: 0;
    border-radius: 7px 0 0 7px;

    font-size: 14px;
    box-shadow: none;
    outline: none;
}

.eventSearch #rse_keyword::placeholder {
    color: #7a8595;
    opacity: 1;
    font-size: 14px;
    font-weight: 400;
}

.eventSearch #rse_keyword:focus {
    background: #ffffff;
    border-color: #cbd4df;
    border-right: 0;
    box-shadow: none;
    outline: none;
}

.eventSearch form > div:last-child .btn {
    flex: 0 0 52px;
    width: 52px;
    height: 50px;
    margin: 0;
    padding: 0;

    display: flex;
    align-items: center;
    justify-content: center;

    background: var(--bk-navy);
    color: #ffffff;
    border: 0;
    border-radius: 0 7px 7px 0;
    font-size: 17px;
    box-shadow: none;

    transition:
        background var(--bk-ease),
        box-shadow var(--bk-ease);
}

.eventSearch form > div:last-child .btn:hover {
    background: #06162f;
    box-shadow: 0 4px 10px rgba(10, 31, 68, 0.20);
}

.eventSearch form > div:last-child .btn:focus {
    background: #06162f;
    box-shadow: none;
    outline: none;
}

/* Choices dropdown */
.eventSearch .choices__list--dropdown {
    z-index: 9999;
    margin-top: 7px;

    background: #ffffff;
    border: 1px solid #dce2e9;
    border-radius: 9px;

    box-shadow: 0 12px 30px rgba(10, 31, 68, 0.16);
    overflow: hidden;
}

.eventSearch .choices__list--dropdown .choices__item {
    padding: 9px 12px;
    color: #243044;
    font-size: 13px;
}

.eventSearch .choices__list--dropdown .choices__item--selectable.is-highlighted {
    background: #f1f4f8;
    color: var(--bk-navy);
}

/* Tablet / Mobile */
@media (max-width: 1100px) {
    .eventDiscover,
    .eventSearch {
        padding-left: 24px;
        padding-right: 24px;
    }

    .eventSearch form {
        grid-template-columns:
            minmax(0, 1fr)
            minmax(0, 1fr)
            minmax(0, 1.35fr);
    }

    .eventDiscover h1 { font-size: 31px; }
}

@media (max-width: 767.98px) {
    .eventDiscover {
        margin-top: 20px;
        padding: 24px 18px 17px;
        border-radius: 12px 12px 0 0;
    }

    .eventDiscover h1 {
        font-size: 28px;
        letter-spacing: -0.3px;
    }

    .eventDiscover p {
        font-size: 15px;
        line-height: 1.5;
    }

    .eventSearch {
        margin-bottom: 24px;
        padding: 8px 18px 20px;
        border-radius: 0 0 12px 12px;
    }

    .eventSearch form {
        display: flex;
        flex-direction: column;
        gap: 0;
        padding: 6px;
        border-radius: 9px;
    }

    .eventSearch joomla-field-fancy-select,
    .eventSearch .choices { height: 46px; }

    .eventSearch .choices__inner {
        height: 46px;
        min-height: 46px;
        border-right: 0;
        border-bottom: 1px solid #e3e7ed;
    }

    .eventSearch .choices__list--multiple { min-height: 46px; }

    .eventSearch form > div:last-child { padding: 0; }

    .eventSearch form > div:last-child .input-group { height: 46px; }

    .eventSearch #rse_keyword {
        height: 46px;
        border-right: 0;
        border-radius: 7px 0 0 7px;
    }

    .eventSearch form > div:last-child .btn {
        flex: 0 0 46px;
        width: 46px;
        height: 46px;
    }
}

@media (max-width: 480px) {
    .eventDiscover,
    .eventSearch { padding-left: 14px; padding-right: 14px; }
    .eventDiscover h1 { font-size: 25px; }
    .eventDiscover p { font-size: 14px; }
}


/* =========================================================
   UPCOMING EVENTS — 3-column cards, uncropped images
   ========================================================= */
.eventsUpcoming .rsepro_events_moduleeventsUpcoming {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 26px;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none;
}

.eventsUpcoming .clearfix { display: none; }

.eventsUpcoming .rsepro_events_moduleeventsUpcoming > li {
    position: relative;
    display: flex;
    flex-direction: column;
    width: 100%;
    min-width: 0;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden;

    background: var(--bk-surface);
    border: 1px solid var(--bk-border);
    border-radius: var(--bk-radius);

    box-shadow:
        0 1px 2px rgba(10, 31, 68, 0.04),
        0 8px 24px -10px rgba(10, 31, 68, 0.10);

    transition:
        transform 320ms cubic-bezier(0.22, 0.61, 0.36, 1),
        box-shadow 320ms cubic-bezier(0.22, 0.61, 0.36, 1),
        border-color 320ms cubic-bezier(0.22, 0.61, 0.36, 1);
}

.eventsUpcoming .rsepro_events_moduleeventsUpcoming > li:hover {
    transform: translateY(-6px);
    border-color: var(--bk-border-2);
    box-shadow:
        0 2px 4px rgba(10, 31, 68, 0.05),
        0 20px 40px -14px rgba(10, 31, 68, 0.18);
}

.eventsUpcoming .rsepro-image {
    position: relative;
    width: 100%;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden;
    background: linear-gradient(135deg, var(--bk-navy) 0%, #1a3460 100%);
    line-height: 0;
}

.eventsUpcoming .rsepro-image img {
    display: block;
    width: 100% !important;
    height: auto !important;
    max-width: 100% !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;

    object-fit: contain;
    object-position: center;

    border: 0;
    border-radius: 0;

    image-rendering: -webkit-optimize-contrast;
    image-rendering: crisp-edges;

    transform-origin: center center;
    transition: transform 700ms cubic-bezier(0.22, 0.61, 0.36, 1);
    will-change: transform;
}

.eventsUpcoming .rsepro_events_moduleeventsUpcoming > li:hover .rsepro-image img {
    transform: scale(1.035);
}

.eventsUpcoming .rsepro_events_moduleeventsUpcoming > li > a {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;

    margin: 0;
    padding: 18px 20px 8px;

    color: var(--bk-navy);
    font-size: 17px;
    font-weight: 700;
    line-height: 1.35;
    letter-spacing: -0.2px;
    text-decoration: none;

    transition: color 200ms ease;
}

.eventsUpcoming .rsepro_events_moduleeventsUpcoming > li > a:hover {
    color: var(--bk-red);
}

.eventsUpcoming .rsepro_events_moduleeventsUpcoming > li > small {
    display: flex;
    align-items: center;
    gap: 6px;
    margin: 0;
    padding: 0 20px 20px;

    color: var(--bk-muted);
    font-size: 13.5px;
    font-weight: 500;
    line-height: 1.5;
    letter-spacing: 0.005em;
}

.eventsUpcoming .rsepro_events_moduleeventsUpcoming > li > small::before {
    content: "\f017";
    display: inline-block;
    flex: 0 0 auto;
    color: var(--bk-red);
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    font-size: 13px;
    line-height: 1;
}

.eventsUpcoming .rsepro_events_moduleeventsUpcoming > li > br {
    display: none;
}

@media (max-width: 991.98px) {
    .eventsUpcoming .rsepro_events_moduleeventsUpcoming {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 22px;
    }

    .eventsUpcoming .rsepro_events_moduleeventsUpcoming > li > a {
        font-size: 16px;
    }
}

@media (max-width: 575.98px) {
    .eventsUpcoming .rsepro_events_moduleeventsUpcoming {
        grid-template-columns: 1fr;
        gap: 18px;
    }

    .eventsUpcoming .rsepro_events_moduleeventsUpcoming > li {
        border-radius: 14px;
    }

    .eventsUpcoming .rsepro_events_moduleeventsUpcoming > li > a {
        padding: 16px 17px 6px;
        font-size: 16px;
    }

    .eventsUpcoming .rsepro_events_moduleeventsUpcoming > li > small {
        padding: 0 17px 17px;
        font-size: 13px;
    }
}


/* =========================================================
   CATEGORIES + TAGS — 2-column side-by-side
   ========================================================= */

.eventsCategoryTagsRow {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
    gap: 24px;
    align-items: start;
    width: 100%;
    max-width: 100%;
    padding: 0;
}

.eventsCategoryTagsRow > .eventsCategory,
.eventsCategoryTagsRow > .eventsTags {
    margin: 0 !important;
    width: 100%;
    max-width: 100%;
}

.eventsCategory,
.eventsTags {
    position: relative;
    display: flex;
    flex-direction: column;
    padding: 24px 24px 22px;

    background: var(--bk-surface);
    border: 1px solid var(--bk-border);
    border-radius: var(--bk-radius);
    box-shadow: var(--bk-shadow-sm);

    box-sizing: border-box;
    font-family: inherit;

    transition:
        box-shadow var(--bk-ease),
        border-color var(--bk-ease);
}

.eventsCategory:hover,
.eventsTags:hover {
    border-color: var(--bk-border-2);
    box-shadow: var(--bk-shadow-hov);
}

/* Categories — 3-column compact tile grid */
.eventsCategory #rsepro-categories-module {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none;
}

.eventsCategory #rsepro-categories-module > .rsepro-block,
.eventsCategory #rsepro-categories-module .row {
    display: contents;
    margin: 0 !important;
    padding: 0 !important;
}

.eventsCategory #rsepro-categories-module .col-md-4 {
    width: 100% !important;
    max-width: 100% !important;
    flex: none !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none;
}

.eventsCategory #rsepro-categories-module .col-md-4 > a {
    position: relative;
    display: flex;
    align-items: center;
    gap: 10px;

    min-height: 48px;
    padding: 12px 34px 12px 14px;

    color: var(--bk-navy);
    font-size: 14px;
    font-weight: 600;
    line-height: 1.25;
    text-decoration: none;

    background: var(--bk-surface-2);
    border: 1px solid var(--bk-border);
    border-radius: 10px;

    overflow: hidden;
    isolation: isolate;

    transition:
        background var(--bk-ease),
        border-color var(--bk-ease),
        color var(--bk-ease),
        transform var(--bk-ease),
        box-shadow var(--bk-ease);
}

.eventsCategory #rsepro-categories-module .col-md-4 > a::before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    width: 3px;
    height: 0;
    background: var(--bk-red);
    border-radius: 3px;
    transform: translateY(-50%);
    transition: height var(--bk-ease);
}

.eventsCategory #rsepro-categories-module .col-md-4 > a::after {
    content: "";
    position: absolute;
    right: 14px;
    top: 50%;
    width: 6px;
    height: 6px;
    border-right: 2px solid var(--bk-soft);
    border-bottom: 2px solid var(--bk-soft);
    transform: translateY(-50%) rotate(-45deg);
    transition:
        transform var(--bk-ease),
        border-color var(--bk-ease),
        right var(--bk-ease);
}

.eventsCategory .ev-name {
    flex: 1 1 auto;
    min-width: 0;
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.eventsCategory #rsepro-categories-module .col-md-4 > a:hover {
    background: #ffffff;
    border-color: rgba(255, 59, 59, 0.30);
    color: var(--bk-red-dark);
    transform: translateX(2px);
    box-shadow: 0 6px 16px -10px rgba(255, 59, 59, 0.35);
}

.eventsCategory #rsepro-categories-module .col-md-4 > a:hover::before { height: 55%; }
.eventsCategory #rsepro-categories-module .col-md-4 > a:hover::after {
    border-color: var(--bk-red);
    right: 11px;
}

.eventsCategory #rsepro-categories-module .col-md-4 > a:focus-visible {
    outline: 2px solid var(--bk-red);
    outline-offset: 2px;
}

.eventsCategory .ev-count {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 24px;
    height: 20px;
    padding: 0 7px;

    background: rgba(255, 59, 59, 0.12);
    color: var(--bk-red-dark);

    font-size: 11px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.02em;
    border-radius: 999px;

    transition: background var(--bk-ease), color var(--bk-ease);
}

.eventsCategory #rsepro-categories-module .col-md-4 > a:hover .ev-count {
    background: var(--bk-red);
    color: #ffffff;
}

.eventsCategory .ev-empty {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    min-width: 24px;
    height: 20px;
    padding: 0 7px;

    background: rgba(10, 31, 68, 0.06);
    color: var(--bk-soft);

    font-size: 10px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    border-radius: 999px;

    transition: background var(--bk-ease), color var(--bk-ease);
}

.eventsCategory #rsepro-categories-module .col-md-4 > a:hover .ev-empty {
    background: rgba(255, 59, 59, 0.12);
    color: var(--bk-red-dark);
}

/* Tags — pill cloud */
.eventsTags .rsepro-tag-moduleeventsTags {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none;
}

.eventsTags .rsepro-tag-moduleeventsTags > li {
    margin: 0 !important;
    padding: 0 !important;
    list-style: none;
}

.eventsTags .rsepro-tag-moduleeventsTags > li > a {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 4px;

    padding: 7px 13px 7px 11px;
    margin: 0;

    color: var(--bk-navy);
    font-size: 13px;
    font-weight: 600;
    line-height: 1;
    letter-spacing: 0.005em;
    text-decoration: none;
    white-space: nowrap;

    background: var(--bk-surface-2);
    border: 1px solid var(--bk-border);
    border-radius: 999px;

    transition:
        background var(--bk-ease),
        border-color var(--bk-ease),
        color var(--bk-ease),
        transform var(--bk-ease),
        box-shadow var(--bk-ease);
}

.eventsTags .rsepro-tag-moduleeventsTags > li > a::before {
    content: "#";
    color: var(--bk-soft);
    font-weight: 700;
    font-size: 12px;
    line-height: 1;
    transition: color var(--bk-ease);
}

.eventsTags .rsepro-tag-moduleeventsTags > li > a:hover {
    background: var(--bk-red);
    border-color: var(--bk-red);
    color: #ffffff;
    transform: translateY(-2px);
    box-shadow: 0 8px 20px -8px rgba(255, 59, 59, 0.55);
}

.eventsTags .rsepro-tag-moduleeventsTags > li > a:hover::before {
    color: rgba(255, 255, 255, 0.75);
}

.eventsTags .rsepro-tag-moduleeventsTags > li > a:focus-visible {
    outline: 2px solid var(--bk-red);
    outline-offset: 2px;
}

.eventsTags .rsepro-tag-moduleeventsTags > li > a:active {
    transform: translateY(0);
}

@media (max-width: 991.98px) {
    .eventsCategoryTagsRow {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .eventsCategory,
    .eventsTags { padding: 20px 20px 18px; }
}

@media (max-width: 575.98px) {
    .eventsCategoryTagsRow { gap: 16px; }

    .eventsCategory,
    .eventsTags {
        padding: 18px 16px 16px;
        border-radius: 14px;
    }

    .eventsCategory #rsepro-categories-module {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 6px;
    }

    .eventsCategory #rsepro-categories-module .col-md-4 > a {
        font-size: 12.5px;
        padding: 10px 28px 10px 12px;
        min-height: 42px;
        border-radius: 8px;
    }

    .eventsCategory #rsepro-categories-module .col-md-4 > a::after {
        right: 11px;
    }

    .eventsCategory .ev-count,
    .eventsCategory .ev-empty {
        height: 18px;
        min-width: 22px;
        padding: 0 6px;
        font-size: 10px;
    }

    /* Horizontal scroll for tags */
    .eventsTags .rsepro-tag-moduleeventsTags {
        flex-wrap: nowrap;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        padding-bottom: 6px !important;
        margin: 0 -4px !important;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: thin;
    }

    .eventsTags .rsepro-tag-moduleeventsTags > li {
        scroll-snap-align: start;
        flex: 0 0 auto;
    }

    .eventsTags .rsepro-tag-moduleeventsTags > li > a {
        font-size: 12px;
        padding: 7px 12px;
    }

    .eventsTags .rsepro-tag-moduleeventsTags::-webkit-scrollbar { height: 3px; }
    .eventsTags .rsepro-tag-moduleeventsTags::-webkit-scrollbar-track { background: transparent; }
    .eventsTags .rsepro-tag-moduleeventsTags::-webkit-scrollbar-thumb {
        background: rgba(10, 31, 68, 0.15);
        border-radius: 3px;
    }
}


/* =========================================================
   MAP — Leaflet premium wrapper
   ========================================================= */

/* RSEvents inline map-info (scoped) */
.eventsMap .rsepro-map-info-name { font-size: 1.1rem; }
.eventsMap .rsepro-map-info-block a {
    font-weight: 400;
    color: #0d6efd;
    font-size: 0.95rem;
}

.eventsMap .rs_module_mapeventsMap,
.eventsMap .leaflet-container {
    position: relative !important;
    width: 100% !important;
    max-width: 100% !important;
    height: 520px !important;
    margin: 0 !important;

    background: var(--bk-surface);
    border: 1px solid var(--bk-border);
    border-radius: var(--bk-radius);
    box-shadow: var(--bk-shadow-sm);

    overflow: hidden;
    isolation: isolate;
    outline: none;

    transition:
        box-shadow var(--bk-ease),
        border-color var(--bk-ease);
}

.eventsMap .leaflet-container:hover {
    border-color: var(--bk-border-2);
    box-shadow: var(--bk-shadow-hov);
}

.eventsMap .leaflet-container::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: var(--bk-radius);
    box-shadow: inset 0 0 0 1px rgba(10, 31, 68, 0.04);
    pointer-events: none;
    z-index: 500;
}

/* Zoom controls */
.eventsMap .leaflet-control-zoom {
    margin: 16px !important;
    border: 0 !important;
    border-radius: 12px !important;
    overflow: hidden;

    background: rgba(255, 255, 255, 0.96);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);

    box-shadow:
        0 8px 24px -10px rgba(10, 31, 68, 0.28),
        0 2px 6px -2px rgba(10, 31, 68, 0.12) !important;
}

.eventsMap .leaflet-control-zoom a {
    display: flex !important;
    align-items: center;
    justify-content: center;

    width: 38px !important;
    height: 38px !important;
    line-height: 1 !important;

    color: var(--bk-navy) !important;
    background: transparent !important;

    font-size: 20px !important;
    font-weight: 500;

    border: 0 !important;
    border-radius: 0 !important;

    transition: background var(--bk-ease), color var(--bk-ease);
}

.eventsMap .leaflet-control-zoom a:hover,
.eventsMap .leaflet-control-zoom a:focus-visible {
    background: var(--bk-red) !important;
    color: #ffffff !important;
    outline: none;
}

.eventsMap .leaflet-control-zoom a:active { background: var(--bk-red-dark) !important; }

.eventsMap .leaflet-control-zoom a:first-child {
    border-bottom: 1px solid var(--bk-border) !important;
}

.eventsMap .leaflet-control-zoom a.leaflet-disabled {
    color: rgba(10, 31, 68, 0.25) !important;
    background: transparent !important;
    cursor: not-allowed;
}

.eventsMap .leaflet-control-zoom a.leaflet-disabled:hover {
    background: transparent !important;
    color: rgba(10, 31, 68, 0.25) !important;
}

/* Attribution */
.eventsMap .leaflet-control-attribution {
    padding: 4px 10px !important;
    margin: 0 8px 8px 0 !important;

    background: rgba(255, 255, 255, 0.85) !important;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);

    color: var(--bk-soft) !important;
    font-size: 10.5px !important;
    line-height: 1.4 !important;
    letter-spacing: 0.005em;

    border: 1px solid var(--bk-border);
    border-radius: 8px !important;
    max-width: 60%;
    text-align: right;
}

.eventsMap .leaflet-control-attribution a {
    color: var(--bk-navy) !important;
    text-decoration: none;
    font-weight: 500;
    transition: color var(--bk-ease);
}

.eventsMap .leaflet-control-attribution a:hover {
    color: var(--bk-red) !important;
    text-decoration: underline;
}

/* Markers — never override `transform` (Leaflet uses it) */
.eventsMap .leaflet-marker-icon {
    filter: hue-rotate(150deg) saturate(1.4);
    transition: filter 220ms cubic-bezier(0.22, 0.61, 0.36, 1);
    will-change: filter;
}

.eventsMap .leaflet-marker-icon:hover {
    filter: hue-rotate(150deg) saturate(2) brightness(1.15)
            drop-shadow(0 4px 8px rgba(255, 59, 59, 0.45));
}

.eventsMap .leaflet-marker-shadow {
    filter: hue-rotate(150deg) saturate(1.4);
    opacity: 0.35;
}

/* Popups */
.eventsMap .leaflet-popup {
    min-width: 340px;
    max-width: 400px;
    margin-bottom: 22px;
}

.eventsMap .leaflet-popup-content-wrapper {
    background: #ffffff;
    border-radius: 16px;
    padding: 0;
    overflow: hidden;
    box-shadow:
        0 24px 48px -20px rgba(10, 31, 68, 0.38),
        0 10px 24px -14px rgba(10, 31, 68, 0.22),
        0 0 0 1px rgba(10, 31, 68, 0.05);
}

.eventsMap .leaflet-popup-content {
    width: auto !important;
    margin: 0 !important;
    padding: 0;
    font-family: inherit;
    color: var(--bk-navy);
    font-size: 14px;
    line-height: 1.45;
}

/* Popup image */
.eventsMap .leaflet-popup-content img {
    display: block;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0;
    border-radius: 0;
    object-fit: cover;
    object-position: center;
}

.eventsMap .leaflet-popup-content a:has(> img) {
    display: block;
    line-height: 0;
}

/* Popup text block spacing */
.eventsMap .leaflet-popup-content > * {
    padding-left: 18px;
    padding-right: 18px;
}

/* If first child is not an image, give it top padding */
.eventsMap .leaflet-popup-content > *:first-child:not(img):not(a) {
    padding-top: 16px;
}

.eventsMap .leaflet-popup-content > *:last-child {
    padding-bottom: 16px;
}

/* Popup title */
.eventsMap .leaflet-popup-content strong,
.eventsMap .leaflet-popup-content b,
.eventsMap .leaflet-popup-content h1,
.eventsMap .leaflet-popup-content h2,
.eventsMap .leaflet-popup-content h3 {
    display: block;
    margin: 14px 0 6px;
    color: var(--bk-navy);
    font-size: 17px;
    font-weight: 800;
    line-height: 1.25;
    letter-spacing: -0.3px;
}

.eventsMap .leaflet-popup-content strong a,
.eventsMap .leaflet-popup-content b a,
.eventsMap .leaflet-popup-content h3 a {
    color: var(--bk-navy);
    text-decoration: none;
    transition: color var(--bk-ease);
}

.eventsMap .leaflet-popup-content strong a:hover,
.eventsMap .leaflet-popup-content b a:hover,
.eventsMap .leaflet-popup-content h3 a:hover {
    color: var(--bk-red);
}

/* Popup body text */
.eventsMap .leaflet-popup-content p,
.eventsMap .leaflet-popup-content small,
.eventsMap .leaflet-popup-content span {
    color: var(--bk-muted);
    font-size: 12.5px;
    font-weight: 500;
    line-height: 1.5;
    margin: 2px 0;
}

.eventsMap .leaflet-popup-content p strong,
.eventsMap .leaflet-popup-content p b {
    display: inline;
    margin: 0;
    color: var(--bk-navy);
    font-size: inherit;
    font-weight: 600;
    letter-spacing: 0;
}

.eventsMap .leaflet-popup-content a {
    color: var(--bk-navy);
    font-weight: 600;
    text-decoration: none;
    transition: color var(--bk-ease);
}

.eventsMap .leaflet-popup-content a:hover { color: var(--bk-red); }

/* Popup tip */
.eventsMap .leaflet-popup-tip {
    background: #ffffff;
    box-shadow: 0 4px 12px rgba(10, 31, 68, 0.12);
    width: 14px;
    height: 14px;
    padding: 0;
    margin: -7px auto 0;
}

.eventsMap .leaflet-popup-tip-container { margin-top: -1px; }

/* Popup close */
.eventsMap .leaflet-popup-close-button {
    top: 10px !important;
    right: 10px !important;
    width: 26px !important;
    height: 26px !important;

    display: flex;
    align-items: center;
    justify-content: center;

    background: rgba(255, 255, 255, 0.92) !important;
    color: var(--bk-navy) !important;

    font-size: 15px !important;
    font-weight: 700;
    line-height: 1 !important;
    text-align: center;

    border-radius: 50%;
    box-shadow: 0 4px 12px -4px rgba(10, 31, 68, 0.25);

    transition:
        background var(--bk-ease),
        color var(--bk-ease),
        transform var(--bk-ease);
    z-index: 5;
}

.eventsMap .leaflet-popup-close-button:hover {
    background: var(--bk-red) !important;
    color: #ffffff !important;
    transform: scale(1.08);
}

/* Tile background */
.eventsMap .leaflet-tile-pane { background: #e8eef7; }

/* Fade-in */
.eventsMap .leaflet-container {
    animation: eventsMapFadeIn 500ms var(--bk-ease);
}

@keyframes eventsMapFadeIn {
    from { opacity: 0; transform: translateY(6px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* Map responsive */
@media (max-width: 991.98px) {
    .eventsMap .rs_module_mapeventsMap,
    .eventsMap .leaflet-container {
        height: 440px !important;
        border-radius: 14px;
    }

    .eventsMap .leaflet-control-zoom { margin: 12px !important; }

    .eventsMap .leaflet-control-zoom a {
        width: 34px !important;
        height: 34px !important;
        font-size: 18px !important;
    }

    .eventsMap .leaflet-popup {
        min-width: 300px;
        max-width: 360px;
    }
}

@media (max-width: 575.98px) {
    .eventsMap .rs_module_mapeventsMap,
    .eventsMap .leaflet-container {
        height: 340px !important;
        border-radius: 12px;
    }

    .eventsMap .leaflet-control-zoom {
        margin: 10px !important;
        border-radius: 10px !important;
    }

    .eventsMap .leaflet-control-zoom a {
        width: 32px !important;
        height: 32px !important;
        font-size: 17px !important;
    }

    .eventsMap .leaflet-control-attribution { display: none !important; }

    .eventsMap .leaflet-popup {
        min-width: 260px;
        max-width: calc(100vw - 40px);
    }

    .eventsMap .leaflet-popup-content strong,
    .eventsMap .leaflet-popup-content b,
    .eventsMap .leaflet-popup-content h3 { font-size: 15px; }

    .eventsMap .leaflet-popup-content p { font-size: 12px; }
}


/* =========================================================
   REDUCED MOTION
   ========================================================= */
@media (prefers-reduced-motion: reduce) {
    .eventHero *,
    .eventDiscover *,
    .eventSearch *,
    .eventsUpcoming *,
    .eventsCategory *,
    .eventsTags *,
    .eventsMap * {
        transition-duration: 0.001ms !important;
        animation-duration: 0.001ms !important;
    }

    .eventsUpcoming .rsepro_events_moduleeventsUpcoming > li:hover {
        transform: none;
    }

    .eventsUpcoming .rsepro_events_moduleeventsUpcoming > li:hover .rsepro-image img {
        transform: none;
    }

    .eventsCategory #rsepro-categories-module .col-md-4 > a:hover {
        transform: none;
    }

    .eventsTags .rsepro-tag-moduleeventsTags > li > a:hover {
        transform: none;
    }
}

/* =========================================================
   EVENT CALENDAR — premium monthly grid
   Primary selector: .eventsCalendar
   Design: navy "today" · red "has-events" · rounded squares
   ========================================================= */

/* ---------------------------------------------------------
   Card shell wrapper
   --------------------------------------------------------- */
.eventsCalendar .rs_calendar_moduleeventsCalendar {
    position: relative;
    width: 100%;
    margin: 0;

    padding: 20px 20px 16px;

    background: var(--bk-surface);
    border: 1px solid var(--bk-border);
    border-radius: var(--bk-radius);
    box-shadow: var(--bk-shadow-sm);

    box-sizing: border-box;
    font-family: inherit;
    color: var(--bk-navy);

    transition:
        box-shadow var(--bk-ease),
        border-color var(--bk-ease);
}

.eventsCalendar .rs_calendar_moduleeventsCalendar:hover {
    border-color: var(--bk-border-2);
    box-shadow: var(--bk-shadow-hov);
}

/* Reset RSEvents table defaults */
.eventsCalendar .rs_calendar_moduleeventsCalendar .rs_table {
    width: 100% !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
    margin: 0 !important;
}

/* ---------------------------------------------------------
   Month header row — label + circular arrows
   --------------------------------------------------------- */
.eventsCalendar .rs_calendar_moduleeventsCalendar > .rs_table:first-child {
    margin-bottom: 14px !important;
    border-bottom: 1px solid var(--bk-border);
}

.eventsCalendar .rs_calendar_moduleeventsCalendar > .rs_table:first-child td {
    padding: 0 0 14px !important;
    vertical-align: middle;
    border: 0 !important;
}

/* Month label */
.eventsCalendar .rs_calendar_moduleeventsCalendar span[id^="rscalendarmonth"] {
    display: inline-block;
    color: var(--bk-navy);
    font-size: 20px;
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: -0.3px;
}

/* Arrows — circular buttons */
.eventsCalendar .rs_calendar_arrows_module {
    display: inline-flex !important;
    justify-content: center;

    width: 40px;
    height: 40px;

    background: var(--bk-surface-2);
    color: var(--bk-navy) !important;

    border: 1px solid var(--bk-border);
    border-radius: 50%;

    font-size: 26px;
    font-weight: 700;
    line-height: 1;
    text-decoration: none;

    transition:
        background var(--bk-ease),
        border-color var(--bk-ease),
        color var(--bk-ease),
        transform var(--bk-ease),
        box-shadow var(--bk-ease);

    user-select: none;
}

.eventsCalendar .rs_calendar_arrows_module:hover,
.eventsCalendar .rs_calendar_arrows_module:focus-visible {
    background: var(--bk-red);
    border-color: var(--bk-red);
    color: #ffffff !important;
    transform: scale(1.06);
    box-shadow: 0 6px 16px -8px rgba(255, 59, 59, 0.55);
    outline: none;
}

.eventsCalendar .rs_calendar_arrows_module:active {
    transform: scale(0.96);
}

/* ---------------------------------------------------------
   Weekday header row
   --------------------------------------------------------- */
.eventsCalendar .rs_calendar_module.rs_table thead th,
.eventsCalendar .rs_calendar_moduleeventsCalendar .rs_calendar_module thead th {
    padding: 12px 6px !important;

    background: var(--bk-surface-2);
    color: var(--bk-soft) !important;

    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.10em;
    text-align: center;

    border: 0 !important;
    border-bottom: 1px solid var(--bk-border) !important;
}

/* Round the top corners of the header strip */
.eventsCalendar .rs_calendar_module.rs_table thead th:first-child {
    border-top-left-radius: 8px;
}
.eventsCalendar .rs_calendar_module.rs_table thead th:last-child {
    border-top-right-radius: 8px;
}

/* ---------------------------------------------------------
   Day cells — rounded squares
   --------------------------------------------------------- */
.eventsCalendar .rs_calendar_module.rs_table tbody td {
    position: relative;
    padding: 3px !important;
    margin: 0 !important;

    background: transparent;
    border: 0 !important;
    text-align: center;
    vertical-align: middle;

    width: 14.28%;   /* exact 7-column layout */
}

/* The clickable square */
.eventsCalendar .rs_calendar_module.rs_table tbody td > a {
    position: relative;

    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;

    width: 100%;
    min-height: 48px;
    padding: 6px 4px 10px;   /* bottom padding reserves space for dot */

    background: transparent;
    color: var(--bk-navy);

    border: 1px solid transparent;
    border-radius: 10px;

    font-size: 14px;
    font-weight: 600;
    line-height: 1;
    text-decoration: none;

    box-sizing: border-box;
    overflow: hidden;
    isolation: isolate;

    transition:
        background var(--bk-ease),
        border-color var(--bk-ease),
        color var(--bk-ease),
        transform var(--bk-ease),
        box-shadow var(--bk-ease);
}

/* Day number */
.eventsCalendar .rs_calendar_module.rs_table tbody td > a .rs_calendar_date {
    display: inline-block;
    font-variant-numeric: tabular-nums;
    transition: color var(--bk-ease);
}

/* ---------------------------------------------------------
   State: previous / next month days (dimmed)
   --------------------------------------------------------- */
.eventsCalendar .rs_calendar_module.rs_table tbody td.prev-month > a,
.eventsCalendar .rs_calendar_module.rs_table tbody td.next-month > a {
    color: var(--bk-soft);
    font-weight: 500;
    opacity: 0.55;
}

.eventsCalendar .rs_calendar_module.rs_table tbody td.prev-month > a:hover,
.eventsCalendar .rs_calendar_module.rs_table tbody td.next-month > a:hover {
    opacity: 0.85;
    background: var(--bk-surface-2);
    border-color: var(--bk-border);
}

/* ---------------------------------------------------------
   State: normal current-month day
   --------------------------------------------------------- */
.eventsCalendar .rs_calendar_module.rs_table tbody td.curr-month > a:hover {
    background: var(--bk-surface-2);
    border-color: var(--bk-border);
    transform: translateY(-1px);
    box-shadow: 0 6px 14px -10px rgba(10, 31, 68, 0.35);
}

.eventsCalendar .rs_calendar_module.rs_table tbody td > a:focus-visible {
    outline: 2px solid var(--bk-red);
    outline-offset: 1px;
}

/* ---------------------------------------------------------
   State: has-events (soft red tint + red dot)
   --------------------------------------------------------- */
.eventsCalendar .rs_calendar_module.rs_table tbody td.has-events > a {
    background: var(--bk-red);
    border-color: var(--bk-red);
    color: #ffffff;
    transform: translateY(-1px);
    box-shadow: 0 8px 20px -10px rgba(255, 59, 59, 0.55);
}

/* Red dot indicator — under the number */
.eventsCalendar .rs_calendar_module.rs_table tbody td.has-events > a::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: 4px;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--bk-red);
    transform: translateX(-50%);
    transition:
        background var(--bk-ease),
        transform var(--bk-ease);
}

/* has-events hover → full red fill */
.eventsCalendar .rs_calendar_module.rs_table tbody td.has-events > a:hover {
    background: var(--bk-red);
    border-color: var(--bk-red);
    color: #ffffff;
    transform: translateY(-1px);
    box-shadow: 0 8px 20px -10px rgba(255, 59, 59, 0.55);
}

.eventsCalendar .rs_calendar_module.rs_table tbody td.has-events > a:hover::after {
    background: #ffffff;
}

/* ---------------------------------------------------------
   State: today (navy fill + white text)
   --------------------------------------------------------- */
.eventsCalendar .rs_calendar_module.rs_table tbody td.curr-day > a {
    background: linear-gradient(135deg, var(--bk-navy) 0%, #163060 100%);
    color: #ffffff;
    border-color: var(--bk-navy);
    font-weight: 800;
    box-shadow: 0 6px 18px -10px rgba(10, 31, 68, 0.55);
}

/* Ring effect for today */
.eventsCalendar .rs_calendar_module.rs_table tbody td.curr-day > a::before {
    content: "";
    position: absolute;
    inset: -2px;
    border-radius: 12px;
    border: 2px solid rgba(10, 31, 68, 0.15);
    pointer-events: none;
    opacity: 0;
    transition: opacity var(--bk-ease);
}

.eventsCalendar .rs_calendar_module.rs_table tbody td.curr-day > a:hover {
    background: linear-gradient(135deg, var(--bk-red) 0%, var(--bk-red-dark) 100%);
    border-color: var(--bk-red);
    box-shadow: 0 10px 24px -10px rgba(255, 59, 59, 0.65);
}

.eventsCalendar .rs_calendar_module.rs_table tbody td.curr-day > a:hover::before {
    opacity: 1;
    border-color: rgba(255, 255, 255, 0.35);
}

/* Today + has-events: keep navy as the primary identity,
   but show the red dot indicator on top */
.eventsCalendar .rs_calendar_module.rs_table tbody td.curr-day.has-events > a::after {
    background: #ffffff;
}

.eventsCalendar .rs_calendar_module.rs_table tbody td.curr-day.has-events > a:hover::after {
    background: #ffffff;
}

/* ---------------------------------------------------------
   Loading spinner (RSEvents replaces the label with a gif)
   --------------------------------------------------------- */
.eventsCalendar #rscalendar178,
.eventsCalendar img[id^="rscalendar"] {
    width: 18px !important;
    height: 18px !important;
    margin: 0 6px;
    vertical-align: middle;
}

/* ---------------------------------------------------------
   Bootstrap tooltip — subtle navy
   --------------------------------------------------------- */
.eventsCalendar + .tooltip .tooltip-inner,
body.site .tooltip .tooltip-inner {
    background: var(--bk-navy);
    color: #ffffff;
    font-size: 12px;
    font-weight: 500;
    line-height: 1.45;
    padding: 6px 10px;
    border-radius: 8px;
    box-shadow: 0 8px 20px -8px rgba(10, 31, 68, 0.35);
}

body.site .tooltip.bs-tooltip-top .tooltip-arrow::before,
body.site .tooltip.bs-tooltip-auto[data-popper-placement^="top"] .tooltip-arrow::before {
    border-top-color: var(--bk-navy);
}
body.site .tooltip.bs-tooltip-bottom .tooltip-arrow::before,
body.site .tooltip.bs-tooltip-auto[data-popper-placement^="bottom"] .tooltip-arrow::before {
    border-bottom-color: var(--bk-navy);
}
body.site .tooltip.bs-tooltip-start .tooltip-arrow::before,
body.site .tooltip.bs-tooltip-auto[data-popper-placement^="left"] .tooltip-arrow::before {
    border-left-color: var(--bk-navy);
}
body.site .tooltip.bs-tooltip-end .tooltip-arrow::before,
body.site .tooltip.bs-tooltip-auto[data-popper-placement^="right"] .tooltip-arrow::before {
    border-right-color: var(--bk-navy);
}

/* ---------------------------------------------------------
   Responsive — Tablet
   --------------------------------------------------------- */
@media (max-width: 991.98px) {
    .eventsCalendar .rs_calendar_moduleeventsCalendar {
        padding: 16px 16px 12px;
    }

    .eventsCalendar .rs_calendar_moduleeventsCalendar span[id^="rscalendarmonth"] {
        font-size: 18px;
    }

    .eventsCalendar .rs_calendar_arrows_module {
        width: 32px;
        height: 32px;
        font-size: 16px;
    }

    .eventsCalendar .rs_calendar_module.rs_table tbody td > a {
        min-height: 42px;
        font-size: 13px;
        border-radius: 8px;
    }

    .eventsCalendar .rs_calendar_module.rs_table thead th {
        padding: 10px 4px !important;
        font-size: 10px;
    }
}

/* ---------------------------------------------------------
   Responsive — Mobile
   --------------------------------------------------------- */
@media (max-width: 575.98px) {
    .eventsCalendar .rs_calendar_moduleeventsCalendar {
        padding: 14px 12px 10px;
        border-radius: 14px;
    }

    .eventsCalendar .rs_calendar_moduleeventsCalendar span[id^="rscalendarmonth"] {
        font-size: 16px;
        letter-spacing: -0.2px;
    }

    .eventsCalendar .rs_calendar_arrows_module {
        width: 28px;
        height: 28px;
        font-size: 14px;
    }

    .eventsCalendar .rs_calendar_module.rs_table thead th {
        padding: 8px 2px !important;
        font-size: 9px;
        letter-spacing: 0.06em;
    }

    .eventsCalendar .rs_calendar_module.rs_table tbody td {
        padding: 2px !important;
    }

    .eventsCalendar .rs_calendar_module.rs_table tbody td > a {
        min-height: 34px;
        padding: 4px 2px 8px;
        font-size: 12px;
        border-radius: 7px;
    }

    .eventsCalendar .rs_calendar_module.rs_table tbody td.has-events > a::after,
    .eventsCalendar .rs_calendar_module.rs_table tbody td.curr-day > a::after {
        bottom: 3px;
        width: 4px;
        height: 4px;
    }
}

/* ---------------------------------------------------------
   Reduced motion
   --------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
    .eventsCalendar .rs_calendar_arrows_module,
    .eventsCalendar .rs_calendar_module.rs_table tbody td > a {
        transition-duration: 0.001ms !important;
        transform: none !important;
    }
}

/* =========================================================
   EVENT CALENDAR — heading consistency (standalone)
   ========================================================= */
.eventsCalendar > h3 {
    position: relative;
    margin: 0 0 var(--bk-h3-spacing);
    padding: 0 0 14px;

    color: var(--bk-navy);
    font-size: var(--bk-h3-size);
    font-weight: 800;
    line-height: 1.15;
    letter-spacing: -0.5px;
}

.eventsCalendar > h3::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: var(--bk-h3-bar-w);
    height: var(--bk-h3-bar-h);
    background: linear-gradient(90deg, var(--bk-red) 0%, var(--bk-red-dark) 100%);
    border-radius: var(--bk-h3-bar-h);
}

/* Section spacing (in case .eventsCalendar wasn't in the group) */
.eventsCalendar {
    width: 100%;
    max-width: 100%;
    margin-top: 2rem;
    padding: 0;
    box-sizing: border-box;
    font-family: inherit;
    color: var(--bk-ink);
}

.bottom-a.eventsCategory #rsepro-categories-module {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}
.bottom-a .eventsCategory, 
.bottom-a .eventsTags {
    border: none;
    box-shadow: none;
}
.bottom-a .eventsCategory:hover,
.bottom-a .eventsTags:hover {
    box-shadow: none;
}
.bottom-a ul.eventsCategory {
    border-radius: 0;
}