/* ========================================
   TABLE OF CONTENTS
   ========================================
   1. Base Styles (HTML, Body, Typography)
   2. Utility Classes
   3. Bootstrap Overrides
   4. Global Page Styles
   5. Homepage
   6. Privacy Policy

   ======================================== */

/* ========================================
   1. BASE STYLES
   ======================================== */

    :root {
        --brand-primary-color: #0c4454; /* Midnight Teal */
        --brand-secondary-color: #67948e; /* Teal */
        --brand-tertiary-color: #b6d4d2; /* Misty Aqua */
        --brand-gray-color: #878787; /* Steel */
        --brand-light-gray-color: #f2f3f5; /* Medium grey */

        --bg-header: var(--brand-primary-color);
        --bg-footer: var(--brand-primary-color);
    }

    html {
        overflow-x: hidden !important;
    }
    h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
        color: var(--brand-primary-color);
    }

/* ========================================
   2. Utility Classes
   ======================================== */

    .top-bg-linear-gradient::before {
        top: 0;
        background: -moz-linear-gradient(top, rgba(21, 21, 21, .95) 0, rgba(21, 21, 21, .83) 14%, rgba(21, 21, 21, .35) 51%, rgba(21, 21, 21, .2) 66%, rgba(21, 21, 21, .06) 85%, rgba(21, 21, 21, .01) 100%);
        background: -webkit-linear-gradient(top, rgba(21, 21, 21, .95) 0, rgba(21, 21, 21, .83) 14%, rgba(21, 21, 21, .35) 51%, rgba(21, 21, 21, .2) 66%, rgba(21, 21, 21, .06) 85%, rgba(21, 21, 21, .01) 100%);
        background: linear-gradient(to bottom, rgba(21, 21, 21, .95) 0, rgba(21, 21, 21, .83) 14%, rgba(21, 21, 21, .35) 51%, rgba(21, 21, 21, .2) 66%, rgba(21, 21, 21, .06) 85%, rgba(21, 21, 21, .01) 100%);
        content: "";
        position: absolute;
        left: 0;
        right: 0;
        width: 100%;
        height: 50%;
        z-index: 1;
    }

    .separator {
        content: " ";
        display: block;
        height: 1px;
    }

    /* ========================================
    3. Bootstrap Overrides
    ======================================== */

    .nav-tabs {
        gap: .5rem;
        margin: 0;
    }

    .nav-tabs .nav-item .nav-link, .nav-tabs .nav-link {
        border-radius: .25rem;
        background-color: var(--brand-light-gray-color);
        color: var(--brand-primary-color);
    }

    .nav-tabs .nav-item .nav-link:hover, .nav-tabs .nav-item .nav-link:focus, .nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {
        background-color: var(--brand-light-gray-color);
        opacity: .90;
        color: var(--brand-primary-color);
    }

    .nav-tabs .nav-link.active {
        background-color: var(--brand-primary-color) !important;
        color: var(--white-color);
    }

    .nav-tabs .nav-item .nav-link.active:hover, .nav-tabs .nav-item .nav-link.active:focus, .nav-tabs .nav-link.active:hover, .nav-tabs .nav-link.active:focus {
        color: var(--white-color) !important;
    }

    .tab-content {
        padding: 2rem 1rem;
    }

    .tab-content h2 {
        font-size: 1.4rem;
        margin: 1.5rem 0 1rem 0;
    }

    .btn-light {
        color: var(--brand-primary-color);
        border-radius: .25rem;
        border: 1px solid var(--white-color);
    }

    .btn-light:hover {
        background-color: transparent !important;
        border: 1px solid var(--white-color) !important;
        color: var(--white-color);
    }

/* ========================================
    4. Global Page Styles
    ======================================== */

    .page-image-banner {
        height: 75vh;
    }

    .page-image-banner img {
        height: 100%;
        width: 100%;
        object-fit: cover;
        object-position: 53% 34%;
    }

    .page-title {
        text-align: center;
        margin: 4rem 0;
    }

    .page-title hr {
        width: 50%;
        margin: auto;
        margin-bottom: 1rem;
        opacity: 1;
        border-top: 2px solid var(--brand-tertiary-color);
    }

    .page-title .subtitle {
        display: block;
        text-transform: uppercase;
        font-size: 1.25rem;
        font-weight: 200;
        margin-bottom: 1rem;
    }

    .page-title.with-subtitle h1 {
        margin: 0 auto .5rem;
    }

    .highlights {
        display: flex;
        justify-content: space-around;
        gap: 2rem;
    }

    .highlights .item {
        display: flex;
        flex-flow: column;
        align-items: center;
        width: 100%;
        padding: 1rem 2.5rem;
        border: 1px solid var(--brand-secondary-color);
        border-radius: 0.25rem;
    }

    .highlights .item .counter {
        font-size: 2rem;
        font-weight: 600;
        color: var(--brand-primary-color);
    }

    .highlights .item label {
        font-size: 1rem;
        font-weight: 300;
        color: black;
    }

    .banner-info.primary-bg {
        display: flex;
        justify-content: center;
        padding : 6rem 0;
    }

    .banner-info.primary-bg {
        background-color: var(--brand-primary-color);
        color: var(--white-color) !important;
    }

    .banner-info.primary-bg h2, .banner-info.primary-bg p {
        color: var(--white-color) !important;
    }

    .banner-info h2 {
        font-size: 1.5rem;
        white-space: nowrap;
    }

    .banner-info p {
        text-align: left;
    }

    .meet-team .title {
        font-size: 1.5rem;
        color: var(--brand-primary-color);
    }

    .meet-team .card .colab-name {
        font-size: 1.25rem;
        color: black;
        text-align: left;
        width: 100%;
    }

    .meet-team .colab-details .item {
        width: 50%;
    }

    .meet-team .colab-details .item:first-child {
        padding-right: 1rem;
        border-right: 2px solid var(--brand-secondary-color);
    }

    .meet-team .colab-details .item:last-child {
        padding-left: 1rem;
    }

    .meet-team .colab-details p {
        margin-bottom: 0;
    }

    .meet-team .colab-description {
        margin-top: 1rem;
    }

    .meet-team .media img{
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center;
    }

    .media-content .title {
        font-size: 1.5rem;
        color: var(--brand-primary-color);
    }

    .media-content .item .subtitle {
        font-size: 1.125rem;
        font-weight: 500;
        color: var(--brand-secondary-color);
        letter-spacing: 2px;
    }

    .media-content .item hr {
        opacity: .25;
        border-top: 1px solid #878787;
    }

    .media-content .media img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center;
    }

    .cta-section {
        background: radial-gradient(85.91% 93.18% at 8.93% 78.82%, #0C4454 0%, #B6D4D2 100%);;
        border-radius: 8px;
        padding: 4rem;
    }

    .cta-section .title {
        font-size: 1.5rem;
        color: var(--white-color);
    }

    .cta-section .description {
        font-size: .875rem;
        color: var(--white-color);
    }


@media (max-width: 767.98px) {

        .page-image-banner {
            height: 50vh;
        }

        .page-image-banner img {
            object-position: 42% 50%;
        }

        .highlights {
            flex-wrap: wrap;
            gap: 1rem;
        }

        .highlights .item {
            width: calc(50% - .5rem); /* respeta el gap */
            padding: 1rem 1.5rem;
        }

        .highlights .item:last-child:nth-child(odd) {
            width: 100%;
        }

       .banner-info.primary-bg {
            padding: 4rem 2rem !important;
        }

       .cta-section {
            padding: 2rem;
       }

       .cta-section .ctas .cta a {
           width: 100%;
       }

        footer #address, footer .textWidget, footer ul.nav li a {
            text-align: center;
        }

    }

/* ========================================
    5. Homepage
    ======================================== */

    #mainNavigation, #hero {
        border: none !important;
    }

    #mainNavigation #mainNavLinks {
        border: none !important;
    }

    .scrolled #mainNavigation {
        background-color: var(--bg-header) !important;
    }

    .btn-primary {
        background-color: var(--brand-secondary-color) !important;
        border: 1px solid var(--brand-secondary-color) !important;
        color: var(--brand-light-gray-color) !important;
        border-radius: .25rem;
    }

    .btn-secondary, .btn-modal {
        background-color: transparent !important;
        border: 1px solid var(--brand-secondary-color) !important;
        color: var(--white-color) !important;
        border-radius: .25rem;
    }

    .btn-secondary:focus, .btn-secondary.focus, .btn-secondary:hover, .btn-secondary:active, .btn-secondary:active:focus, .btn-secondary.active, .btn-secondary.active:focus, .btn-modal:focus, .btn-modal.focus, .btn-modal:hover, .btn-modal:active, .btn-modal:active:focus, .btn-modal.active, .active:focus {
        background-color: var(--brand-tertiary-color) !important;
        border: 1px solid var(--brand-tertiary-color) !important;
        color: var(--brand-primary-color) !important;
    }

    .tallImage, .squareImage, .vizADACTACarousel1Widget1419712 .slickCarousel img, .vizADACTACarousel1Widget1419712  .slickCarousel .feature-img, .photoGalleryCarousel .slickSlide img  {
        border-radius: .25rem;
    }

    .vizColumns4Widget .intro .heading-line {
        border-right: none;
    }

    .vizADACTACarousel1Widget .bgColor {
        background-color: var(--brand-primary-color) !important;
    }

    .vizTwoColumnsWidget .gridContainer .squareContentContainer .contentContainer .contentHeader {
        border-bottom: 2px solid var(--brand-secondary-color);
    }

    .vizADACTACarousel1Widget .feature-content .ctaCarouselHeading {
        border-bottom: 2px solid var(--brand-tertiary-color);
    }

    #vizADACTACarousel1Widget1419711 {
        padding-left: 0;
        padding-right: 0;
    }

/* ========================================
    6. Privacy Policy
    ======================================== */



/* ========================================
    7.
    ======================================== */

footer {
    background: none;
    background-color: var(--bg-footer) !important;
}

.scroll-to-top {
    background-color: var(--brand-tertiary-color);
    color: var(--brand-primary-color);
    display: flex;
    height: 42px;
    width: 42px;
    align-items: center;
    justify-content: center;
}

.scroll-to-top i {
    font-size: 1rem;
    font-weight: 600;
}

footer .viz-imageWidget img {
    width: 130px;
    height: auto;
    margin-top: 32px;
    margin-bottom: 24px;
}

.photoGalleryCarousel .slickSlide {
    padding: 0 5px;
    height: 400px;
}

.photoGalleryCarousel .slickSlide img {
    height: 100%;
    width: 100%;
    object-fit: cover;
    object-position: 50% 50%;
    transition: all .5s ease;
}

.rcdLogoCarouselWidget1560325 .mainLogo {
    width: 120px;
}

.rcdLogoCarouselWidget1560325 picture {
    position: relative;
}

.brandsCarousel {
    padding-top: 32px;
    border-top: 1px solid;
    margin-bottom: 4rem;
}

.brandsCarousel .slickSlide {
    position: relative;
    height: 45px;
}

.rcdLogoCarouselWidget1560325 picture img {

}

.slick-next .slick-next-icon:before, .slick-next .slick-next-icon:before   {
    font-family: 'Font Awesome 5 Pro', 'FontAwesome';
    font-size: 40px !important;
    line-height: 1;
    color: #fff;
    opacity: .75;
}

.slick-next .slick-next-icon:before, .slick-next .slick-prev-icon:before, .slick-prev .slick-next-icon:before, .slick-prev .slick-prev-icon:before {
    font-family: 'Font Awesome 5 Pro', 'FontAwesome';
    font-size: 40px !important;
    line-height: 1;
    color: #fff;
    opacity: .75;
}

.brandsCarousel .slick-next {
    right: 0;
}

.brandsCarousel .slick-prev {
    left: 0;
}

@media (min-width: 768px) {

    .brandsCarousel, footer > .container {
        width: 90%;
        margin: 0 auto;
    }

    @media (min-width: 992px) {
        #logo .logo img {
            max-width: 150px !important;
            height: auto;
        }

        .vizColumns4Widget .intro .heading-line {
            border-right: 2px solid var(--brand-primary-color);
        }
    }
}