/* Elementor Widget Styles
 * This file contains custom styles for various Elementor widgets used in the theme.
 */


/* OpenStreetMap Widget Styles */
    .osm-map-widget {
        position: relative;
        width: 100%;
    }

    .osm-map-container {
        width: 100%;
        height: 400px;
        border-radius: 8px;
        overflow: hidden;
        box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
    }

    /* Custom popup styles */
    .leaflet-popup-content-wrapper {
        border-radius: 8px;
        box-shadow: 0 8px 30px rgba(0, 0, 0, 0.15);
    }

    .leaflet-popup-content {
        margin: 15px !important;
        line-height: 1.5;
    }

    .osm-popup h3 {
        font-family: "Work Sans", sans-serif;
        font-weight: 600;
        margin-bottom: 10px !important;
        color: var(--theme-primary, #CD091D) !important;
    }

    .osm-popup p {
        margin: 8px 0 !important;
        font-size: 14px;
        line-height: 1.4;
    }

    .osm-popup strong {
        color: var(--theme-black, #001514);
        font-weight: 600;
    }

    .osm-popup a {
        color: var(--theme-primary, #CD091D) !important;
        text-decoration: none;
        transition: color 0.3s ease;
    }

    .osm-popup a:hover {
        color: var(--theme-secondary, #046D2C) !important;
        text-decoration: underline;
    }

    /* Responsive adjustments */
    @media (max-width: 768px) {
        .osm-map-container {
            height: 300px;
            border-radius: 4px;
        }
        
        .leaflet-popup-content {
            margin: 10px !important;
        }
        
        .osm-popup {
            max-width: 250px !important;
        }
    }


    /* 
    ***********************************  Elementor Files Widget Styles ***********************************
    This section styles the Elementor Files widget, ensuring a clean and modern look for file downloads
    */

     .files-cards-wrapper {
            width: 100%;
        }

        .files-cards-grid {
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            gap: 20px;
        }

        .files-card {
            background: #f8f9fa;
            border-radius: 16px;
            overflow: hidden;
            transition: all 0.3s ease;
            position: relative;
        }

        .files-card:hover {
            transform: translateY(-5px);
            box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
            background-color: #95c623;
        }

        .files-card:hover .files-card-title {
            color: white;
        }

        .files-card:hover .files-card-arrow {
            background: white;
            color: #046d2c;
        }

        .files-card:hover .files-card-description {
            color: white;
        }

        .files-card-link {
            text-decoration: none;
            color: inherit;
            display: block;
            height: 100%;
        }

        .files-card-inner {
            padding: 24px;
            height: 100%;
            display: flex;
            flex-direction: column;
        }

        .files-card-header {
            display: flex;
            justify-content: space-between;
            align-items: flex-start;
            margin-bottom: 12px;
        }

        .files-card-title {
            font-size: 18px;
            font-weight: 600;
            color: #046d2c;
            margin: 0;
            line-height: 1.3;
            flex: 1;
            padding-right: 16px;
        }

        .files-card-arrow {
            width: 44px;
            height: 44px;
            background: #046d2c;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            color: white;
            font-size: 12px;
            flex-shrink: 0;
        }

        .files-card-description {
            color: #7f8c8d;
            font-size: 14px;
            line-height: 1.5;
            margin: 0 0 20px 0;
        }

        .files-card-image {
            margin-top: auto;
            border-radius: 12px;
            overflow: hidden;
        }

        .files-card-image img {
            width: 100%;
            height: auto;
            display: block;
        }

    

        @media (max-width: 1024px) {
            .files-cards-grid {
                grid-template-columns: repeat(2, 1fr);
            }
        }

        @media (max-width: 768px) {
            .files-cards-grid {
                grid-template-columns: 1fr;
            }
            
            .files-card-inner {
                padding: 20px;
            }
            
        }

        /* ***********************************  Elementor Video Background Widget Styles ***********************************
        This section styles the Elementor Video Background widget, ensuring a seamless and visually appealing video background experience
        */


        .videobg-hero {
            position: relative;
            overflow: hidden;
            display: flex;
            align-items: center;
            justify-content: center;
        }

        .videobg-thumbnail {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background-size: cover;
            background-position: center;
            z-index: 1;
            transition: opacity 0.5s ease;
        }

        .videobg-video-container {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            z-index: 2;
        }

        .videobg-video,
        .videobg-iframe {
            position: absolute;
            top: 50%;
            left: 50%;
            min-width: 100%;
            min-height: 100%;
            width: auto;
            height: auto;
            transform: translate(-50%, -50%);
            object-fit: cover;
        }

        .videobg-iframe {
            width: 100vw;
            height: 56.25vw; /* 16:9 aspect ratio */
            min-height: 100%;
            min-width: 177.77vh; /* 16:9 aspect ratio */
        }

        .videobg-overlay {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            z-index: 3;
        }

        .videobg-content {
            position: relative;
            z-index: 4;
            color: white;
            padding: 20px;
            max-width: 800px;
        }

        .videobg-content h1 {
            margin-bottom: 20px;
            font-size: 3rem;
        }

        .videobg-content p {
            font-size: 1.2rem;
            line-height: 1.6;
        }

        /* Hide thumbnail when video loads */
        .videobg-video:not([data-loading]),
        .videobg-iframe:not([data-loading]) {
            opacity: 1;
        }

        .videobg-video[data-loading] ~ .videobg-thumbnail,
        .videobg-iframe[data-loading] ~ .videobg-thumbnail {
            opacity: 1;
        }

        @media (max-width: 768px) {
            .videobg-content h1 {
                font-size: 2rem;
            }
            
            .videobg-content p {
                font-size: 1rem;
            }
        }


        /* Tabela */



        #tablepress-2 td,
        #tablepress-1 td{
            text-align: center;
            vertical-align: middle;
            padding: 15px;
        }

        #tablepress-2 .row-1 td,
        #tablepress-1 .row-1 td{
            background-color: var(--theme-secondary);
            color: #FFF;
            border: none;
        }

        #tablepress-1 .row-13 td,
        #tablepress-1 .row-9 td,
        #tablepress-2 .row-13 td,
        #tablepress-2 .row-9 td{
            background: var(--theme-accent);
            border: none;
        }

        #tablepress-1 .row-9 .column-5,
        #tablepress-1 .row-13 .column-5,
        #tablepress-2 .row-9 .column-5,
        #tablepress-2 .row-13 .column-5{
            background: var(--theme-secondary);
            color: #FFF;
            font-weight: 600;
        }

        /* Video thumb aspect ratio 1:1 */

        .aspect-11 .elementor-wrapper {
        --video-aspect-ratio: 1!important;
        }

        .before-image{
            position: relative;
        }

        .before-image:before{
            content: "";
            position: absolute;
            bottom: 0;
            left: -20px;
            width: 100%;
            height: 100%;
            border-radius: 50%;
            background-color: var(--theme-accent);
            z-index: -1;
        }

        .before-image:after{
            content: "";
            position: absolute;
            top: -8px;
            left: 12px;
            width: 100%;
            height: 100%;
            border-radius: 50%;
            background-color: var(--theme-secondary);
            z-index: -1;
        }



        /* ***********************************  Enhanced Elementor Animations - AOS Style ***********************************
        This section overrides Elementor's default animations with smoother AOS-inspired effects
        */

        /* Base animation settings */
        .elementor-element.elementor-invisible {
            opacity: 0;
            transition-property: transform, opacity;
            transition-duration: 0.8s;
            transition-timing-function: cubic-bezier(0.4, 0.0, 0.2, 1);
        }

        /* Fade animations */
        .animated.fadeIn {
            animation-name: aos-fade-in !important;
            animation-duration: 0.8s !important;
            animation-timing-function: cubic-bezier(0.4, 0.0, 0.2, 1) !important;
        }

        .animated.fadeInUp {
            animation-name: aos-fade-up !important;
            animation-duration: 0.8s !important;
            animation-timing-function: cubic-bezier(0.4, 0.0, 0.2, 1) !important;
        }

        .animated.fadeInDown {
            animation-name: aos-fade-down !important;
            animation-duration: 0.8s !important;
            animation-timing-function: cubic-bezier(0.4, 0.0, 0.2, 1) !important;
        }

        .animated.fadeInLeft {
            animation-name: aos-fade-left !important;
            animation-duration: 0.8s !important;
            animation-timing-function: cubic-bezier(0.4, 0.0, 0.2, 1) !important;
        }

        .animated.fadeInRight {
            animation-name: aos-fade-right !important;
            animation-duration: 0.8s !important;
            animation-timing-function: cubic-bezier(0.4, 0.0, 0.2, 1) !important;
        }

        .animated.fadeInUpBig {
            animation-name: aos-fade-up-big !important;
            animation-duration: 0.8s !important;
            animation-timing-function: cubic-bezier(0.4, 0.0, 0.2, 1) !important;
        }

        .animated.fadeInDownBig {
            animation-name: aos-fade-down-big !important;
            animation-duration: 0.8s !important;
            animation-timing-function: cubic-bezier(0.4, 0.0, 0.2, 1) !important;
        }

        .animated.fadeInLeftBig {
            animation-name: aos-fade-left-big !important;
            animation-duration: 0.8s !important;
            animation-timing-function: cubic-bezier(0.4, 0.0, 0.2, 1) !important;
        }

        .animated.fadeInRightBig {
            animation-name: aos-fade-right-big !important;
            animation-duration: 0.8s !important;
            animation-timing-function: cubic-bezier(0.4, 0.0, 0.2, 1) !important;
        }

        /* Zoom animations */
        .animated.zoomIn {
            animation-name: aos-zoom-in !important;
            animation-duration: 0.8s !important;
            animation-timing-function: cubic-bezier(0.4, 0.0, 0.2, 1) !important;
        }

        .animated.zoomInUp {
            animation-name: aos-zoom-in-up !important;
            animation-duration: 0.8s !important;
            animation-timing-function: cubic-bezier(0.4, 0.0, 0.2, 1) !important;
        }

        .animated.zoomInDown {
            animation-name: aos-zoom-in-down !important;
            animation-duration: 0.8s !important;
            animation-timing-function: cubic-bezier(0.4, 0.0, 0.2, 1) !important;
        }

        /* Slide animations */
        .animated.slideInUp {
            animation-name: aos-slide-up !important;
            animation-duration: 0.8s !important;
            animation-timing-function: cubic-bezier(0.4, 0.0, 0.2, 1) !important;
        }

        .animated.slideInDown {
            animation-name: aos-slide-down !important;
            animation-duration: 0.8s !important;
            animation-timing-function: cubic-bezier(0.4, 0.0, 0.2, 1) !important;
        }

        .animated.slideInLeft {
            animation-name: aos-slide-left !important;
            animation-duration: 0.8s !important;
            animation-timing-function: cubic-bezier(0.4, 0.0, 0.2, 1) !important;
        }

        .animated.slideInRight {
            animation-name: aos-slide-right !important;
            animation-duration: 0.8s !important;
            animation-timing-function: cubic-bezier(0.4, 0.0, 0.2, 1) !important;
        }

        /* AOS-inspired keyframes */
        @keyframes aos-fade-in {
            from {
                opacity: 0;
            }
            to {
                opacity: 1;
            }
        }

        @keyframes aos-fade-up {
            from {
                opacity: 0;
                transform: translateY(30px);
            }
            to {
                opacity: 1;
                transform: translateY(0);
            }
        }

        @keyframes aos-fade-down {
            from {
                opacity: 0;
                transform: translateY(-30px);
            }
            to {
                opacity: 1;
                transform: translateY(0);
            }
        }

        @keyframes aos-fade-left {
            from {
                opacity: 0;
                transform: translateX(-30px);
            }
            to {
                opacity: 1;
                transform: translateX(0);
            }
        }

        @keyframes aos-fade-right {
            from {
                opacity: 0;
                transform: translateX(30px);
            }
            to {
                opacity: 1;
                transform: translateX(0);
            }
        }

        @keyframes aos-fade-up-big {
            from {
                opacity: 0;
                transform: translateY(100px);
            }
            to {
                opacity: 1;
                transform: translateY(0);
            }
        }

        @keyframes aos-fade-down-big {
            from {
                opacity: 0;
                transform: translateY(-100px);
            }
            to {
                opacity: 1;
                transform: translateY(0);
            }
        }

        @keyframes aos-fade-left-big {
            from {
                opacity: 0;
                transform: translateX(-100px);
            }
            to {
                opacity: 1;
                transform: translateX(0);
            }
        }

        @keyframes aos-fade-right-big {
            from {
                opacity: 0;
                transform: translateX(100px);
            }
            to {
                opacity: 1;
                transform: translateX(0);
            }
        }

        @keyframes aos-zoom-in {
            from {
                opacity: 0;
                transform: scale(0.6);
            }
            to {
                opacity: 1;
                transform: scale(1);
            }
        }

        @keyframes aos-zoom-in-up {
            from {
                opacity: 0;
                transform: scale(0.6) translateY(100px);
            }
            to {
                opacity: 1;
                transform: scale(1) translateY(0);
            }
        }

        @keyframes aos-zoom-in-down {
            from {
                opacity: 0;
                transform: scale(0.6) translateY(-100px);
            }
            to {
                opacity: 1;
                transform: scale(1) translateY(0);
            }
        }

        @keyframes aos-slide-up {
            from {
                transform: translateY(100%);
            }
            to {
                transform: translateY(0);
            }
        }

        @keyframes aos-slide-down {
            from {
                transform: translateY(-100%);
            }
            to {
                transform: translateY(0);
            }
        }

        @keyframes aos-slide-left {
            from {
                transform: translateX(-100%);
            }
            to {
                transform: translateX(0);
            }
        }

        @keyframes aos-slide-right {
            from {
                transform: translateX(100%);
            }
            to {
                transform: translateX(0);
            }
        }

        /* Responsive adjustments for animations */
        @media (max-width: 768px) {
            .animated {
                animation-duration: 0.6s !important;
            }
            
            @keyframes aos-fade-up {
                from {
                    opacity: 0;
                    transform: translateY(20px);
                }
                to {
                    opacity: 1;
                    transform: translateY(0);
                }
            }
            
            @keyframes aos-fade-down {
                from {
                    opacity: 0;
                    transform: translateY(-20px);
                }
                to {
                    opacity: 1;
                    transform: translateY(0);
                }
            }
            
            @keyframes aos-fade-left {
                from {
                    opacity: 0;
                    transform: translateX(-20px);
                }
                to {
                    opacity: 1;
                    transform: translateX(0);
                }
            }
            
            @keyframes aos-fade-right {
                from {
                    opacity: 0;
                    transform: translateX(20px);
                }
                to {
                    opacity: 1;
                    transform: translateX(0);
                }
            }
        }

        /* Prefers reduced motion */
        @media (prefers-reduced-motion: reduce) {
            .animated {
                animation-duration: 0.01ms !important;
                animation-iteration-count: 1 !important;
                transition-duration: 0.01ms !important;
            }
        }

