/*--------------------------------------------------------------
This is your custom stylesheet.

Add your own styles here to make theme updates easier.
To override any styles from other stylesheets, simply copy them into here and edit away.

Make sure to respect the media queries! Otherwise you may
accidentally add desktop styles to the mobile layout.
https://www.w3schools.com/css/css_rwd_mediaqueries.asp
--------------------------------------------------------------*/

:root {
    --red: #D20000;
    --navy: #081A36;
    --blue: #252261;
    --light-blue: #87C5DD;
    --text: #000000;
    --grey: #BCBEC0;
    --light-grey: #F2F4F5;
    --content-bg-color: #F2F4F5;
    --border-color: #D6D9DD;
    --header-font: "Bebas Neue", Sans-serif;
    --body-font: "Open Sans", Sans-serif;
}

/* General Styles */

.light-blue-bg-section {
    background: radial-gradient(113.49% 92.25% at 50% 50%, #FFF 33%, #BCBEC0 100%), rgba(135, 197, 221, 0.25) !important;
    background-blend-mode: multiply, normal !important;
}

.wp-caption {
    background: unset !important;
}

body.page-id-307,
body.bbpress,
body.buddypress,
body.page-id-92 {
    .footer-cta {
        display: none !important;
    }

    .footer > .e-con-inner {
        padding-top: 50px !important;
    }
}
/* Document Library Pro grid styles */

.dlp-grid-header {
    margin-bottom: 30px !important;

    label {
        font-size: 16px !important;
    }
}

.dlp-grid-footer {
    margin-top: 30px !important;

    label {
        font-size: 16px;
    }
}

.dlp-grid-documents {

    .dlp-grid-card-featured-img {
        border: 1px solid var(--border-color);
        border-bottom: 0;
    }

    .dlp-grid-card-content {
        border: 1px solid var(--border-color);
        border-top: 0;
        padding: 15px !important;
        background: white !important;

        .dlp-grid-card-title a {
            color: var(--text) !important;
            font-family: var(--header-font) !important;
            font-size: 22px !important;

            &:hover {
                color: var(--red) !important;
            }
        }

        .document-library-pro-button {
            padding: 8px 20px !important;
            letter-spacing: 1.6px;
            text-transform: uppercase;
            font-size: 14px !important;
            font-weight: 600 !important;
            font-family: var(--body-font) !important;
            width: 100%;
        }

        .dlp-grid-card-info {
            flex-direction: column !important;
            align-items: flex-start !important;

            .dlp-grid-card-categories {
                margin-left: 0 !important;

                span {
                    background: unset;
                    padding: 0 !important;
                }

                a {
                    color: var(--text);

                    &:hover {
                        color: var(--red);
                    }
                }
            }
        }
    }
}

.document-library-pro-button {
    color: white !important;
    font-size: 16px !important;
}

body .dlp-grid-card-featured-img img {
    aspect-ratio: 4 / 3 !important;
    object-fit: cover;
    object-position: top;
}

/* Ensure high-quality thumbnail rendering for both systems */
.bb-course-cover img,
.dlp-grid-card-featured-img img {
    image-rendering: -webkit-optimize-contrast;
    image-rendering: optimizeQuality;
}

.light-bg-form {
    background: radial-gradient(113.49% 92.25% at 50% 50%, #FFF 33%, #BCBEC0 100%), rgba(135, 197, 221, 0.25) !important;
    background-blend-mode: multiply, normal !important;
}

/* Events Calendar Styles */

.tribe-events-calendar-list__event-row {
    .tribe-events-calendar-list__event-date-tag-weekday {
        font-family: var(--header-font) !important;
        font-size: 18px !important;
    }

    .tribe-events-calendar-list__event-date-tag-daynum {
        font-size: 40px !important;
        font-weight: 400 !important;
        font-family: var(--header-font) !important;
        color: var(--blue) !important;
    }
}

.tribe-events-calendar-list h3 time {
    font-size: 22px !important;
}

.tooltipster-base {
    box-shadow: 0 10px 20px 0 rgba(0,0,0,0.1) !important;

    a:hover {
        color: var(--red) !important;
    }
}

.tribe-events .tribe-events-c-top-bar__datepicker-container .datepicker .table-condensed tbody tr td .active,
.tribe-events .tribe-events-c-top-bar__datepicker-container .datepicker .table-condensed tbody tr td .current,
.tribe-events .tribe-events-c-top-bar__datepicker-container .datepicker .table-condensed tbody tr td .focused {
    background: var(--blue) !important;
    color: white !important;
}

.tribe-events .tribe-events-calendar-month__day-cell--selected,
.tribe-events .tribe-events-calendar-month__day-cell--selected:focus,
.tribe-events .tribe-events-calendar-month__day-cell--selected:hover {
    background: var(--blue) !important;

    & * {
        color: white !important;
    }
}

.tribe-events .tribe-events-calendar-month__mobile-events-icon--event {
    background-color: var(--red) !important;
}

.bs-event-heading {
    margin-top: 0 !important;

    .bs-schedule-short-m {
        font-family: var(--header-font) !important;
        font-size: 18px !important;
    }

    .bs-schedule-short-d {
        font-size: 40px !important;
        font-weight: 400 !important;
        font-family: var(--header-font) !important;
        color: var(--blue) !important;
    }

    h1.tribe-events-single-event-title {
        font-size: 28px !important;
        line-height: 1.3em !important;
        margin-bottom: 10px !important;
    }

    h2 {
        font-size: 19px !important;
        color: var(--blue) !important;
    }

    .tribe-events-series-relationship-single-marker {
        display: none !important;
    }
}

.type-tribe_events {
    .tribe-events-c-subscribe-dropdown {
        margin: 0 !important;
    }

    .bs-single-content {
        padding: 30px !important;

        .tribe-events-single-event-description p {
            font-size: 16px !important;
        }
    }

    .tribe-events-event-meta {
        padding: 30px !important;
        
        h2 {
            font-size: 22px !important;
        }

        .tec-events-pro-series-meta-detail--label,
        .tec-events-pro-series-meta-detail--link,
        &:before {
            display: none !important;
        }

        .tribe-events-start-time * {
            display: inline-block !important;
        }

        .tribe-events-meta-group {
            padding: 0 !important;
        }

        .tribe-events-virtual-link-button {
            margin-bottom: 0 !important;
            border-radius: 0 !important;
            background: var(--red) !important;
        }
    }
}

#tribe-events-footer h3 {
    display: none !important;
}

@media(max-width: 768px) {
    .tribe-events-virtual-single-marker {
        display: none !important;
    }
}

@media(max-width: 690px) {
    .tribe-events-calendar-list__event-row .tribe-events-calendar-list__event-date-tag-daynum {
        font-size: 32px !important;
    }

    .bs-event-heading h1.tribe-events-single-event-title {
        font-size: 22px !important;
    }
}

@media(max-width: 4800px) {
    .bs-event-heading h1.tribe-events-single-event-title {
        font-size: 19px !important;
    }

    h2 {
        font-size: 17px !important;
    }
}

/* Gravity Form Styles */

.gfield_required span,
.grecaptcha-badge,
.gform_heading {
    display: none !important;
}

.gform-body input:not([type="checkbox"]):not([type=button]):not([type=submit]),
.gform-body textarea,
.gform-body select {
    background: white !important;
    color: var(--text) !important;
    border: none !important;
    padding: 10px 15px !important;
    font-size: 14px !important;
    line-height: 1.4em !important;
    min-height: 46px !important;
    border-radius: 0px;
}

.gform-theme--foundation .gform_fields {
    row-gap: 25px !important;
}

.gform-theme--framework .gform-loader {
    border-block-end-color: var(--red) !important;
    border-block-start-color: rgba(255,255,255,.3) !important;
    border-inline-end-color: rgba(255,255,255,.3) !important;
    border-inline-start-color: var(--red) !important;
}

.gfield--type-submit input,
.gform_page_footer input[type="submit"],
.gform_footer input {
    line-height: 1em !important;
    color: white !important;
    border: none !important;
    background: var(--red) !important;
    font-family: var(--accent-font) !important;
    letter-spacing: 1.6px !important;
    margin-bottom: 0 !important;
    font-weight: 500 !important;
    padding: 16px 32px !important;
    border-radius: 0 !important;
    font-size: 15px !important;
    text-transform: uppercase !important;
    transition: all 250ms ease !important;

    &:hover {
        background: var(--blue) !important;
    }
}

.gform_footer {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    margin-top: 30px !important;
}

.gform_confirmation_message {
    padding: 30px;
    background: var(--navy);
    border: none;
    border-radius: 0;
    text-align: center;
    font-size: 18px;
    line-height: 1.5em;
    font-weight: normal !important;
    color: white !important;
}

.gform-body input:-webkit-autofill,
.gform-body input:-webkit-autofill:hover,
.gform-body input:-webkit-autofill:focus,
.gform-body input:-webkit-autofill:active,
.gform-body select:-webkit-autofill,
.gform-body select:-webkit-autofill:hover,
.gform-body select:-webkit-autofill:focus,
.gform-body select:-webkit-autofill:active {
    -webkit-box-shadow: 0 0 0 30px white inset !important;
}

input:-webkit-autofill,
select:-webkit-autofill {
    -webkit-text-fill-color: var(--text) !important;
}

/*Error Message Styles*/

.gform_validation_errors {
    display: none !important;
}

.gform_wrapper.gravity-theme .gfield_error label,
.gform_wrapper.gravity-theme .gfield_error legend,
.gfield_required_asterisk {
    color: salmon !important;
}

.gform_body input[aria-invalid=true],
.gform_body select[aria-invalid=true],
.gform_body textarea[aria-invalid=true] {
    border: 1px solid salmon !important;
}