/* The Events Calendar - Custom Theme Styles */

.wp-theme-fortherecord.tribe-events-page-template {

    /* Remove list bullets/markers from events */
    .tribe-common--breakpoint-medium.tribe-events ul li::before,
    .tribe-events-single .tribe-events-sub-nav ul li::before,
    .tribe-events .tribe-events-calendar-list__month-separator::before,
    .tribe-events .tribe-events-calendar-list__month-separator+.tribe-events-calendar-list__event-row::before,
    .tribe-events .tribe-events-calendar-list__event-row::before,
    .tribe-events .tribe-events-c-nav__list-item::before,
    .tribe-events .tribe-events-c-view-selector--tabs .tribe-events-c-view-selector__list-item:before,
    .tribe-events-notices ul li::before {
        display: none;
    }
    
    .tribe-events .tribe-events-c-view-selector__list-item-link {
        /* padding: 0; */
        word-break: unset;
        background: none;
    }

    .tribe-events .tribe-events-c-top-bar__datepicker-container .dropdown-menu {
        min-width: unset;
        width: auto;
    }

    .tribe-events .tribe-events-calendar-list__event-row .tribe-events-calendar-list__event-date-tag-datetime {
        background: var(--color-gradient-primary);
        height: 54px;
        width: 54px;
        align-items: center;
        justify-content: center;

        .tribe-events-calendar-list__event-date-tag-weekday {
            color: var(--color-white);
        }

        .tribe-events-calendar-list__event-date-tag-daynum {
            color: var(--color-white);
        }

        @media (min-width: 768px) {
            height: 90px;
            width: 90px;
        }

        @media (min-width: 1200px) {
            height: 110px;
            width: 110px;
            padding: 10px;

            .tribe-events-calendar-list__event-date-tag-weekday {
                font-size: 20px;
            }

            .tribe-events-calendar-list__event-date-tag-daynum {
                font-size: 38px;
            }
        }
    }

    /* Month separator: prominent month between red lines */
    .tribe-events .tribe-events-calendar-list__month-separator {
        position: relative;
        padding: 0;
        margin: 0;
    }

    .tribe-events .tribe-events-calendar-list .tribe-events-calendar-list__month-separator::before {
        content: '';
        display: block;
        background: var(--color-secondary);
        height: 3px;
        width: 100%;
        max-width: 24px;
        flex: auto;
        margin-right: 12px;
        position: static;
        border-radius: 0;
    }

    .tribe-events .tribe-events-calendar-list .tribe-events-calendar-list__month-separator::after {
        content: '';
        display: block;
        background: var(--color-secondary);
        height: 3px;
        width: 100%;
        flex: auto;
        margin-left: 12px;
        position: static;
        border-radius: 0;
    }

    .tribe-events .tribe-events-calendar-list__month-separator-inner {
        display: flex;
        align-items: center;
        flex: 0 0 fit-content;
        padding: 12px 0;
    }

    .tribe-events .tribe-events-calendar-list__month-separator-heading {
        margin: 0;
        font-size: 0;
        line-height: 1;
    }

    .tribe-events .tribe-events-calendar-list__event-venue {
        margin-bottom: 0;
    }

    .tribe-events .tribe-events-calendar-list__month-separator-text {
        font-size: 17px;
        font-weight: 700;
        font-family: var(--font-primary-bold);
        color: var(--color-primary-dark);
        letter-spacing: -0.02em;
        line-height: 1.1;
    }

    .tribe-events .tribe-events-c-breadcrumbs ol li::before{
        display: none;
    }

    .tribe-events .tribe-events-calendar-list__event-row {
        padding-left: 0;
    }

    .tribe-events .tribe-events-calendar-list__event-row > .tribe-common-g-col {
        display: flex;
        align-items: center;
        padding-left: 0;
        padding-right: 0;
        margin-left: 12px;
        margin-right: 12px;
    }

    @media (min-width: 768px) {
        .tribe-events .tribe-events-calendar-list .tribe-events-calendar-list__month-separator::before {
            max-width: 45px;
        }

        .tribe-events .tribe-events-calendar-list__event-row {
            padding-left: 60px;
        }

        .tribe-events .tribe-events-calendar-list__month-separator-text {
            font-size: 35px;
        }

        .tribe-events .tribe-events-calendar-list__event-row > .tribe-common-g-col {
            margin-left: 0;
            margin-right: 0;
            padding-left: 24px;
            padding-right: 12px;
        }

        .tribe-events .tribe-events-calendar-list__event-row > .tribe-events-calendar-list__event-date-tag {
            padding-left: 0;
            padding-right: 0;
        }
    }

    @media (min-width: 1200px) {
        .tribe-events .tribe-events-calendar-list__event-row > .tribe-events-calendar-list__event-date-tag {
            padding-left: 0;
            padding-right: 0;
        }
    }

    /* Reduced overall spacing */
    .tribe-events .tribe-common-l-container.tribe-events-l-container {
        padding-top: 24px !important;
        padding-bottom: 24px !important;
    }

    .tribe-events .tribe-events-calendar-list {
        margin-top: 0;
    }

    .tribe-events .tribe-events-calendar-list > li {
        margin-top: 24px;
        margin-bottom: 24px;
    }

    .tribe-events .tribe-events-calendar-list > li:last-child {
        margin-bottom: 24px;
    }

    /* Events list with sidebar images (Theme Options) – sidebar only at 1200px+ */
    .tribe-events .tribe-events-list-with-sidebar {
        margin-top: 1rem;
    }

    .tribe-events .tribe-events-list-sidebar {
        display: none;
    }

    .tribe-events .tribe-events-list-sidebar__item {
        line-height: 0;
    }

    .tribe-events .tribe-events-list-sidebar__img {
        width: 100%;
        height: auto;
        display: block;
        object-fit: cover;
    }

    @media (min-width: 1200px) {
        .tribe-events .tribe-events-list-main {
            display: flex;
            flex-direction: row;
            align-items: flex-start;
            gap: 2rem;
        }

        .tribe-events .tribe-events-list-main > .tribe-events-calendar-list {
            flex: 1 1 auto;
            min-width: 0;
        }

        .tribe-events .tribe-events-list-sidebar {
            display: flex;
            flex: 0 0 320px;
            flex-direction: column;
            gap: 1rem;
            padding: 1rem 0 2rem;
            position: sticky;
            top: 1.5rem;
        }
    }

    /* Disable tooltips on month view and other views */
    .tribe-events-tooltip,
    .tribe-events-c-top-bar__datepicker-tooltip,
    .tribe-common-c-svgicon__svg-tooltip,
    .tribe-events .tribe-events-tooltip-theme,
    .tribe-events .tooltip
    .tribe-events-calendar-month__calendar-event-tooltip-description {
        display: none;
        visibility: hidden;
        pointer-events: none;
    }

    .tribe-events-calendar-month__calendar-event-tooltip-description {
        display: none !important;
        visibility: hidden !important;
        pointer-events: none !important;
    }

    .tribe-events-calendar-month__day--past [data-tooltip-content] {
        display: block;
        visibility: visible;
    }

    /* Container width */
    .tribe-common .tribe-common-l-container {
        max-width: var(--container-max-width);
    }

    .tribe-events-calendar-month__multiday-event-wrapper {
        height: auto;
    }

    .tribe-events-calendar-month__multiday-event--end .tribe-events-calendar-month__multiday-event-bar {
        border-radius: 0;
    }

    .tribe-events .tribe-events-calendar-month__multiday-event-bar {
        background: var(--color-primary);
        color: var(--color-white);
        font-family: var(--font-primary-bold);
        font-size: 14px;
        line-height: 1.2;
        padding: 4px 6px;
        border-radius: 0;
        border: none;
        box-shadow: none;
    }

    .tribe-events .tribe-events-calendar-month__multiday-event-bar-title {
        color: var(--color-white);
        font-family: var(--font-primary-regular);
        font-size: 16px;
    }

    .tribe-events-calendar-month__day .tribe-events-virtual-virtual-event__icon svg * {
        fill: var(--color-white);
        stroke: var(--color-white);
    }

    /* Hide subscribe dropdown */
    .tribe-events .tribe-events-c-subscribe-dropdown__container {
        display: none;
    }

    /* Meta group full width */
    .tribe-events-meta-group {
        width: 100%;
    }

    /* Navigation items padding */
    .tribe-events-single .tribe-events-sub-nav .tribe-events-nav-next, 
    .tribe-events-single .tribe-events-sub-nav .tribe-events-nav-previous {
        padding: 0;

        &::before {
            display: none;
        }
    }

   .tribe-events .tribe-events-c-nav__list-item button {
        font-size: 12px;
    }

    /* Link colors and styling */
    .tribe-events-content a,
    .tribe-events-content a:active, 
    .tribe-events-content a:focus, 
    .tribe-events-content a:hover {
        color: var(--color-secondary);
        border-bottom: 0;
    }

    .tribe-events-content a:hover::before,
    .tribe-events-content a:hover::after {
        display: none;
    }

    /* Venue map */
    .tribe-events-venue-map {
        width: 100%;
    }

    .tribe-events-single a.tribe-events-gmap.external {
        color: var(--color-secondary);
        display: inline-block;
    }

    /* Search button styling */
    .tribe-events .tribe-events-c-search__button, 
    .tribe-events button.tribe-events-c-search__button {
        background: var(--color-primary);
        border-radius: var(--btn-radius);
        transition: all 0.3s ease-in-out;

        &:hover {
            background: var(--color-secondary);
            border-radius: var(--btn-radius);
        }
    }

    /* Meta group links */
    .tribe-events-meta-group a,
    .tribe-events-meta-group a:hover {
        color: var(--color-secondary);
    }

    /* Single event form section (applies to single event pages) */
    .events-form-section {
        border: 1px solid var(--color-grey);
        border-radius: 12px;
        padding: 40px 45px;
        background: var(--color-white);
    }

    .tribe-events .tribe-events-calendar-list__event-featured-image-wrapper img,
    .tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-list__event-featured-image-wrapper img {
        width: 100%;
        height: auto;
        object-fit: cover;
        object-position: top;
    }

    .tribe-common--breakpoint-medium.tribe-common .tribe-common-b2 {
        font-size: 18px;
    }

    /* Event details full width; article stacks image above details */
    .tribe-events .tribe-events-calendar-list__event-details.tribe-common-g-col {
        flex: 1 1 100%;
        max-width: 100%;
    }

    .tribe-events .tribe-events-calendar-list__event .tribe-events-calendar-list__event-featured-image-wrapper {
        flex: 1 1 100%;
        max-width: 100%;
    }

    /* Header row: title + date/venue/category in one row */
    .tribe-events .tribe-events-calendar-list__event-header {
        display: flex;
        flex-direction: column;
        flex-wrap: wrap;
        align-items: baseline;
        gap: 0.5rem 1.5rem;
    }

    .tribe-events .tribe-events-calendar-list__event-header .tribe-events-calendar-list__event-title,
    .tribe-events .tribe-events-calendar-list__event-header h2,
    .tribe-events .tribe-events-calendar-list__event-header h3,
    .tribe-events .tribe-events-calendar-list__event-header h4 {
        margin: 0;
        flex-shrink: 0;
    }

    .tribe-events .tribe-events-calendar-list__event-header .tribe-events-calendar-list__event-date-wrapper {
        display: flex;
        flex-direction: column;
        flex-wrap: wrap;
        align-items: flex-start;
        gap: 0 1rem;
        row-gap: 0.25rem;
        margin: 0;
    }

    .tribe-events .tribe-events-calendar-list__event-header .tribe-events-calendar-list__event-date-wrapper > * {
        margin: 0;
    }

    .tribe-events-single .tribe-events-sub-nav .tribe-events-nav-next a:focus, .tribe-events-single .tribe-events-sub-nav .tribe-events-nav-next a:hover, .tribe-events-single .tribe-events-sub-nav .tribe-events-nav-previous a:focus, .tribe-events-single .tribe-events-sub-nav .tribe-events-nav-previous a:hover {
        background: none;
    }

    .tribe-events-single .tribe-events-sub-nav .tribe-events-nav-previous a:after {
        display: none;
    }

    .tribe-events-single .tribe-events-sub-nav .tribe-events-nav-next a:after {
        opacity: 1;
        position: relative;
        top: -1px;
    }

    @media (min-width: 768px) {
        .tribe-events .tribe-events-calendar-list__event-featured-image-wrapper img,
        .tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-list__event-featured-image-wrapper img {
            height: 300px;
            object-fit: contain;
        }

        .tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-list__event-details {
            width: 100%;
            max-width: 100%;
        }

        .tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-list__event-featured-image-wrapper {
            width: 100%;
            max-width: 100%;
        }

        .tribe-events-calendar-list__event-header .tribe-common-h4--min-medium {
            font-size: 29px;
        }
    }

    @media (min-width: 1200px) {
        .tribe-events .tribe-events-calendar-list {
            width: 70%;
        }

        .tribe-events .tribe-events-calendar-list__event-header {
            flex-direction: row;
            align-items: center;
            gap: 0 1.5rem;
            row-gap: 0.5rem;
        }

        .tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-list__event {
            width: 100%;
        }

        .tribe-events .tribe-events-calendar-list__event-header .tribe-events-calendar-list__event-title {
            width: calc(40% - 1.5rem);
        }

        .tribe-events .tribe-events-calendar-list__event-header .tribe-events-calendar-list__event-date-wrapper {
            width: calc(60% - 1.5rem);
            flex-direction: row;
            align-items: center;
            justify-content: space-between;
        }

        .tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-list__event-details {
            width: 100%;
            max-width: 100%;
            margin-left: 0;
        }

        .tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-list__event-featured-image-wrapper {
            width: 100%;
            max-width: 100%;
        }
    }
}