/* ===== Cross-browser Normalize & iOS/Safari compatibility ===== */
*,
*::before,
*::after { box-sizing: border-box; }

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

img, video { max-width: 100%; height: auto; display: block; }

button, input, select, textarea { font: inherit; }

/* Viewport unit fallback variable: dvh -> vh if unsupported */
:root { --app-vh: var(--app-vh); }
@supports not (height: var(--app-vh)) { :root { --app-vh: 100vh; } }

/* Make momentum scrolling smooth on iOS where needed */
.wrapper { -webkit-overflow-scrolling: touch; }

/* ================================================================ */
@supports (height: 100svh) {
  /* Prefer small viewport unit on mobile to avoid URL bar jumps */
  :root { --app-vh: 100svh; }
}

@import url(https://fonts.googleapis.com/css?family=Josefin+Sans:300,400,500,600,300i,400i,500i,600i&display=swap);

::-webkit-scrollbar {
    width: 0px;height: 0px;
    background-color: #333;
}
::-webkit-scrollbar-thumb{
    background-color: #22bc88;
    border: solid 2px #333;
    border-radius: 7px;
    cursor: pointer;
}


@keyframes simpleShow{
    0%{
        transform: translateY(200%);
        opacity: 0;
    }
    100%{
        transform: translateY(0%);
        opacity: 1;
    }
}
.simpleShow{
    animation: simpleShow 1 linear 0.5s;
}

:root{
    --c-primary: #22bc88;
    --c-secundary: #61ff2c;
    --c-tri: #6daae7;
    --c--footer: #1a1a1a;
}

header.top-header{
    width: 100%;
    height: 80px;max-height: 100%;
    position: fixed;left: 0px;top: 0px;z-index: 1000;
    background-color: transparent;
    transition: ease-in-out 0.4s;
    transition-property: height, background-color;
    overflow: hidden;
    overflow-y: hidden;
    overflow-x: hidden;

    .row-top, .row-bottom{
        padding: 8px 1.25%;
        padding-right: 12px;
    }
    .row-top{
        width: 100%;height: auto; height: max-content;
        padding: 8px 1.25%;
        padding-right: 12px;
        display: flex;flex-wrap: wrap;
        align-items: center;
        position: sticky; top: 0px;z-index: 10;
        background-color: inherit;

        /* border-bottom: solid 1px rgba(255, 255, 255, 0.5); */
        &::after{
            content: "";
            width: calc(130% + 10px);height: 0px;
            border-top: solid 1px rgba(255, 255, 255, 0.5);
            border-bottom: solid 1px rgba(0, 0, 0, 0.2);
            position: absolute;bottom: -1px;left: -10px;
        }

        .logo{
            width: -moz-fit-content; width: fit-content; width: max-content;
            height: 72px;
            margin-right: auto;
            cursor: pointer;
            transition: height ease-in-out 0.2s;
            display: block;

            img{
                width: -moz-fit-content; width: fit-content; width: max-content;height: 100%;
                display: block;
            }
        }

        nav.header-nav{
            all: unset; /* Reset completo */
            width: max-content;
            padding: 4px;
            display: flex;
            gap: 2px;
            justify-content: center;
            align-items: center;
            background-color: rgba(0, 0, 0, 0.1);
            border: solid 1px rgba(255, 255, 255, 0.3);
            border-radius: 30px;
            
            /* Asegúrate de que no haya restricciones */
            min-width: unset;
            max-width: none;
            flex-shrink: 0;
            
            a{
                width: auto;width: -moz-fit-content;width: fit-content;width: max-content !important;
                padding: 2px 4px;
                color: white;
                font-size: 16px;
                cursor: pointer;
                text-decoration: none;
                display: flex; gap: 4px;
                align-items: center;
                border-radius: 10px;
                
                .icon{
                    display: block;
                    &.icon2{
                        display: none;
                    }
                }
                &.active{
                    outline: solid 1px white;
                    .icon.icon1{
                        display: none;
                    }
                    .icon.icon2{
                        display: block;
                    }
                }
                
                span{
                    display: none;
                    opacity: 0.8;
                }
                &:hover{
                    background-color: white;
                    color: #333;
                    text-decoration: none;
                }
            }
        }
    }
    .row-bottom{
        width: 100%;height: auto; height: max-content;
        padding-top: 20px;
        padding-bottom: 40px;
        display: flex;
        justify-content: center;
        opacity: 0;
        position: relative; top: -300px; left: 0px; z-index: 0;
        transition: ease-in-out 0.4s;
        transition-property: top opacity;

        .bg{
            width: 100%;height: 100%;
            position: absolute;left: 0px;top: 0px;z-index: 0;
            opacity: 0.05;
            img{
                width: 100%;height: 100%;
                display: block;
                object-fit: cover;
            }
        }
        .content{
            width: -moz-fit-content; width: fit-content; width: max-content;max-width: 100%;
            display: flex;flex-wrap: wrap;gap: 20px;
            justify-content: center;
            position: relative;z-index: 1;

            nav{
                width: -moz-fit-content; width: fit-content; width: max-content;max-width: 100%;
                padding: 4px;
                display: flex;flex-wrap: wrap;gap: 20px;
                justify-content: center;
                background-color: rgba(0, 0, 0, 0.1);
                border: solid 1px rgba(255, 255, 255, 0.3);
                border-radius: 30px;
                
                a.link{
                    width: -moz-fit-content; width: fit-content; width: max-content;max-width: 100%;
                    height: auto; height: max-content;
                    padding: 8px 20px;
                    display: flex;
                    font-size: 18px;
                    background-color: white;
                    border-radius: 20px;
                    color: #333;
                    font-weight: 500;
                    text-decoration: transparent solid 1px underline;
                    text-decoration: none;
                    &:hover{
                        color: #333;
                        text-decoration: none;
                    }
                }
            }

            h2{
                width: 100%;
                text-align: center;
                font-size: 18px;
                color: white;
                opacity: 0.8;
            }

            .menu{
                width: -moz-fit-content; width: fit-content; width: max-content;max-width: 100%;

                button{
                    width: 100%;
                    padding: 4px;
                    margin-bottom: 10px;
                    background-color: transparent;
                    cursor: pointer;
                    color: white;
                    border: none;
                    outline: none;
                    display: flex;flex-wrap: wrap;gap: 10px;
                    justify-content: space-between;
                    align-items: center;
                    opacity: 0.8;

                    span{
                        font-size: 16px;
                        font-weight: 600;
                    }
                }

                ul{
                    width: -moz-fit-content; width: fit-content; width: max-content;max-width: 100%;
                    padding-left: 5px;
                    display: block;
                    display: none;

                    a{
                        width: 100%;
                        margin-bottom: 10px;
                        display: block;
                        color: white;
                        font-size: 16px;
                        animation: simpleShow 0.5s ease-in-out 1;
                    }
                }

                &.active > button{
                    opacity: 1;
                }
                &.active > ul{
                    display: block;
                }
            }
        }
    }

    
    &.min{
        height: 64px;
        background-color: var(--c-primary);
        .row-top{
            .logo{
                height: 48px;
            }
            button.btn-toggle-collapse{
                margin-top: 1px;
            }
        }
        .row-bottom{
            top: -300px;
            opacity: 0;
        }
    }

    &.active{
        height: auto; height: max-content;max-height: var(--app-vh);
        background-color: var(--c-primary);
        overflow: auto;
        overflow-x: hidden;

        .row-top{
            .logo{
                height: 48px;
            }
            nav.header-nav {
                a.products{
                    &{
                        outline: solid 1px white;
                        .icon.icon1{
                            display: none;
                        }
                        .icon.icon2{
                            display: block;
                        }
                    }
                }
            }
        }
        .row-bottom{
            top: 0px;
            opacity: 1; 
        }
    }
}

html, body{
    width: 100%;height: 100%;
    background-color: var(--c--footer);
    font-family: 'Josefin Sans', sans-serif;
}

.gallery-modal{
    width: 100%;height: var(--app-vh);
    position: fixed;left: 0px;top: -100dvh;z-index: 2000;
    overflow: hidden;
    display: flex;
    justify-content: center;
    align-items: center;
    opacity: 0;
    transform: scale(0.8);

    transition: opacity ease-in-out 0.1s, top ease-in-out 0.2s, transform ease-in-out 0.2s;


    .bg{
        width: 100%;height: 100%;
        background-color: #333;
        opacity: 0.8;
        position: absolute;left: 0px;top: 0px;z-index: 0;
    }

    .media{
        width: -moz-fit-content; width: fit-content; width: max-content;max-width: 100%;
        height: auto; height: max-content;
        position: relative;
        transition: transform ease-in-out 0.4s;
        transform: scale(0.5);

        img{
            width: -moz-fit-content; width: fit-content; width: max-content; max-width: 100%;
            height: auto; height: max-content; max-height: var(--app-vh);
            display: block;
            border-radius: 10px;
        }
    }

    button{
        cursor: pointer;
        border: none;
    }

    button.btn-media{
        width: 50px;height: 50px;
        position: absolute;z-index: 10;
        transition: all ease-in-out 0.7s, transform ease-in-out 0.2s;
        background-color: var(--c--footer);
        outline: solid 1px transparent;
        border-radius: 50px;
        opacity: 1;
        transition: all ease-in-out 0.7s, outline ease-in-out 0.1s;

        &:hover{
            outline: solid 1px var(--c-primary);
        }

        &.left{
            left: -140px;
        }
        &.right{
            right: -140px;
        }

        &.disabled {
            opacity: 0;
            cursor: not-allowed;
        }

        i{
            width: 26px;height: 26px;
            font-size: 26px;
            color: white;
        }
    }

    .close{
        width: 50px;height: 50px;
        position: absolute; top: 10px; right: 10px;
        display: block;
        background-color: var(--c--footer);
        border-radius: 50%;

        i{
            width: 30px;height: 30px;
            font-size: 30px;
            color: white;
        }
    }

    
    &.active{
        top: 0px;
        opacity: 1;
        transform: scale(1);

        .btn-media.left{
            left: 10px;
        }
        .btn-media.right{
            right: 10px;
        }
        .media{
            transform: scale(1);
        }
    }
}

.wrapper{
    width: 100%;height: 100%;
    overflow: auto;
    position: relative;

    
    section{
        width: 100%;
        height: auto; height: max-content;min-height: var(--app-vh);
        position: relative;z-index: 1;
        background-color: white;

        .filter-polarized{
            width: 100%;height: 100%;
            position: absolute;left: 0px;top: 0px;z-index: 1;
            background-color: rgba(28, 28, 28, 0.6);
        }
        .content{
            position: relative;z-index: 1;
        }
        &.alliances{
            background-color: white;
        }
    }

    main.main{
        width: 100%;height: auto; height: max-content;
        position: relative;

        
        section{
            width: 100%;
            height: auto; height: max-content;
            position: relative;z-index: 1;
            background-color: white;

            .filter-polarized{
                width: 100%;height: 100%;
                position: absolute;left: 0px;top: 0px;z-index: 1;
                background-color: rgba(28, 28, 28, 0.6);
            }
            .content{
                position: relative;z-index: 1;
            }

            &.footer{
                width: 100%;height: auto; height: max-content;min-height: var(--app-vh);
                background-color: var(--c--footer);
                padding: 20px;
                padding-top: 100px;
                position: sticky;left: 0px;top: 0px;z-index: 1;
                display: flex;
                justify-content: center;align-items: center;
                color: white;

                .content{
                    width: 100%;height: auto; height: max-content;
                    display: flex; flex-wrap: wrap;
                    justify-content: center;


                    .flexbox{
                        width: 100%;
                        padding-top: 100px;
                        padding-bottom: 100px;
                        margin-bottom: 10px;
                        display: flex;flex-wrap: wrap; gap: 14px;
                        justify-content: center;

                        .grup{
                            width: 100%;
                            padding: 10px;
                            text-align: center !important;
                            
                            .top{
                                width: 100%; height: auto; height: max-content;
                                padding: 0px 10px;
                                margin-bottom: 10px;
                                display: flex; justify-content: center;
                                .logo{
                                    a{
                                        width: 100%;max-width: 100%;
                                        height: auto; height: max-content;
                                        padding-right: 20px;
                                        display: block;
            
                                        img{
                                            width: max-content;height: 40px;
                                            display: block;
                                            object-fit: contain;
                                        }
                                    }
                                }
                            }
                            
                            iframe{
                                width: 300px !important; max-width: 100%;
                                display: block;
                                border: none;
                                border-radius: 8px;
                                aspect-ratio: 16/9;
                                aspect-ratio: 1/1;
                            }
                    
                            h3, p, a{
                                width: auto; width: max-content; max-width: 100%;
                                width: 100%;
                                display: flex;
                                justify-content: center;
                            }
                            h3{
                                margin-bottom: 22px;
                                font-size: 20px;
                                text-align: center !important;
                            }
                            p, a{
                                font-size: 18px;
                            }
                            p{
                                padding-right: 10px;
                                margin-bottom: 10px;
                                text-align: center !important;
                            }
                            a{
                                margin-bottom: 10px;
                                text-decoration: none;
                                color: var(--c-tri);
                                text-align: center !important;
                                &:hover{
                                    text-decoration: underline 1px aliceblue;
                                }
                            }
                        }
                    }
                    .bottom{
                        width: 100%;
                        padding-top: 20px;
                        display: flex;flex-wrap: wrap; gap: 10px;
                        align-items: center;
                        justify-content: space-between;
                        border-top: solid 1px #333;
                    }
                }
            }

            &.video{
                width: 100%;height: var(--app-vh);
                background-color: black;
                position: absolute;left: 0px;top: 0px;z-index: 10;

                video{
                    width: 100%;height: 100%;
                    display: block;
                    object-fit: cover;
                    position: absolute;left: 0px;top: 0px;z-index: 0;
                }
                .filter-polarized{
                    background-color: rgba(0, 0, 0, 0.5);
                    opacity: 0.6; background-color: rgb(35, 35, 35);
                }
                .content{
                    width: 100%;height: 100%;
                    padding-bottom: 40px;
                    display: flex;flex-wrap: wrap;
                    flex-direction: column;
                    justify-content: center;align-items: center;
                    color: white;

                    h1{
                        width: 100%;height: auto; height: max-content;
                        margin-top: 20px;
                        margin-bottom: 34px;
                        text-align: center;
                        font-family: 'Josefin Sans', sans-serif;
                        font-size: 42px;
                        font-weight: bold;
                        display: block;
                        animation: simpleShow 0.5s ease-in-out 1;
                        &.colored{
                            color: var(--c-secundary);
                        }
                    }
                    p{
                        width: 100%;height: auto; height: max-content;
                        text-align: center;
                        font-size: 16px;
                        font-weight: 600;
                        animation: simpleShow 1s ease-in-out 1;
                        font-family: sans-serif;
                        &.colored{
                            color: var(--c-tri);
                        }
                    }
                    .buttons{
                        width: -moz-fit-content; width: fit-content; width: max-content;max-width: 100%;
                        padding-top: 40px;
                        display: flex;flex-wrap: wrap; gap: 20px;
                        align-items: center;
                        animation: simpleShow 0.8s ease-in-out 1;

                        a{
                            width: -moz-fit-content; width: fit-content; width: max-content;height: auto; height: max-content;
                            padding: 16px 40px;
                            border: none;
                            border-radius: 40px;
                            background-color: var(--c-primary);
                            font-size: 18px;
                            text-decoration: none;
                            display: flex;flex-wrap: wrap;gap: 10px;
                            align-items: center;
                            cursor: pointer;

                            &.fb{
                                background-color: rgb(92, 165, 218);
                                color: white;
                            }
                            &.ig{
                                background-color: rgb(232, 232, 232);
                                color: #333;
                            }

                            &:hover{
                                transform: scale(1.05);
                                box-shadow: #000000 0px 0px 4px;
                            }
                        }
                    }
                }
            }

            &.tmt-home{
                width: 100%;height: auto; height: max-content;
                min-height: auto; height: max-content;
                position: absolute;left: 0px;top: var(--app-vh);z-index: 10;
                background-color: rgb(37, 37, 37);
                background-color: white;
                background-image: url("../../src/media/fondo-de-frios-berries.webp");
                background-size: cover;
                
                .filter-polarized{
                    background-color: rgba(37, 37, 37, 0.9);
                    opacity: 0.9; background-color: rgb(35, 35, 35);
                }
                .content{
                    width: 100%;height: auto; height: max-content;
                    padding-top: 70px;
                    padding-bottom: 70px;
                    color: rgba(255, 255, 255, 0.8);

                    h2{
                        width: 100%;
                        padding: 0px 10px;
                        display: block;
                        text-align: center;
                        font-size: 23px;
                        color: rgb(0, 227, 0);
                        &.margin-bottom{
                            margin-bottom: 30px;
                        }
                    }
                    p{
                        width: 100%;
                        padding: 0px 10px;
                        margin-bottom: 24px;
                        display: block;
                        font-size: 18px;
                        font-weight: 300;
                        text-align: center;
                        color: rgba(255, 255, 255, 1);
                    }
                    ul{
                        width: -moz-fit-content; width: fit-content; width: max-content;max-width: 100%;
                        padding: 0px 10px;
                        margin: 10px 0px;
                        margin-top: 40px;
                        margin-left: auto;margin-right: auto;
                        .row{
                            width: 100%;
                            padding-bottom: 30px;
                            margin-bottom: 4px;
                            display: flex;flex-wrap: wrap;
                            position: relative;

                            &::before{
                                content: "";
                                width: 2px;height: calc(100% - 36px - 4px);
                                position: absolute;
                                left: calc( 36px / 2 );top: calc( 36px + 4px );
                                background-color: white;
                            }
                            &.no-row-decoration{
                                &::before{
                                    display: none;
                                }
                            }

                            .row-marker{
                                width: 36px;height: 36px;
                                display: flex;
                                justify-content: center;align-items: center;
                                border: solid 2px white;
                                border-radius: 100%;

                                span{
                                    font-size: 20px;
                                    font-weight: 600;
                                    color: rgb(0, 227, 0);
                                }
                            }
                            .row-content{
                                width: calc(100% - 36px);
                                padding-left: 20px;

                                span{
                                    color: rgba(255, 255, 255, 1);
                                    font-weight: 300;
                                    font-size: 18px;
                                }
                            }
                        }
                    }
                }
            }

            &.tmt-about{
                position: absolute;left: 0px;top: var(--app-vh);
                background-color: rgb(37, 37, 37);
                background-color: white;
                background-image: url("../../src/media/triptico-por-fuera-2023-uruapan.webp");
                background-size: cover;
                
                .filter-polarized{
                    background-color: rgba(37, 37, 37, 0.9);
                    opacity: 0.9; background-color: rgb(35, 35, 35);
                }
                .content{
                    width: 100%;height: auto; height: max-content;
                    padding-top: 70px;
                    padding-bottom: 70px;
                    color: rgba(255, 255, 255, 0.8);

                    h2{
                        width: 100%;
                        padding: 0px 10px;
                        display: block;
                        text-align: center;
                        font-size: 40px;
                        color: var(--c-secundary);
                        &.margin-bottom{
                            margin-bottom: 30px;
                        }
                    }
                    ul{
                        width: 800px;max-width: 100%;
                        padding: 0px 10px;
                        margin: 10px 0px;
                        margin-top: 40px;
                        margin-left: auto;margin-right: auto;

                        .row{
                            width: 100%;
                            margin-bottom: 4px;
                            display: flex;flex-wrap: wrap; gap: 20px;
                            position: relative;

                            p{
                                width: calc(100% - 35% - 20px);max-width: 100%;
                                margin-bottom: 20px;
                                color: white;
                                font-size: 22px;
                                font-weight: 300;
                                opacity: 0.9;
                                
                                &.str{
                                    width: 35%;
                                    text-align: end;
                                    font-weight: 500;
                                    opacity: 1;
                                }
                            }
                        }
                    }
                    .cards{
                        width: 100%;
                        padding: 10px 10px;
                        padding-top: 40px;
                        padding-bottom: 120px;
                        display: flex;flex-wrap: wrap; gap: 40px;
                        justify-content: center;

                        .card{
                            width: 400px;max-width: 100%;

                            h3{
                                width: 100%;
                                margin-bottom: 20px;
                                font-size: 30px;
                                font-weight: 600;
                                color: var(--c-tri);
                                display: flex;flex-wrap: wrap; gap: 10px;
                                justify-content: center;
                                align-items: center;

                                i{
                                    width: 40px;height: 40px;
                                    font-size: 40px;
                                    color: var(--c-primary);
                                }
                                span{
                                    width: auto; width: max-content; max-width: calc( 100% - 10px - 40px );
                                    display: block;
                                    color: var(--c-primary);
                                }
                            }
                            p{
                                font-size: 20px;
                                text-align: justify;
                            }
                        }
                    }
                    .bottom{
                        width: 100%;
                        display: flex; flex-wrap: wrap;
                        justify-content: center;

                        img{
                            width: auto;max-width: 100%;
                            height: auto;max-height: var(--app-vh);
                            display: block;
                            object-fit: cover;
                        }
                    }
                }
            }

            &.tmt-gallery{
                width: 100%;height: auto; height: max-content;
                position: absolute;left: 0px;top: 0px;
                background-color: rgb(37, 37, 37);
                background-color: white;
                background-image: url("../../src/media/post-56.webp");
                background-size: cover;
                
                .filter-polarized{
                    background-color: rgba(37, 37, 37, 0.9);
                    opacity: 0.9; background-color: rgb(35, 35, 35);
                }
                .content{
                    width: 100%;height: auto; height: max-content;
                    padding-top: 70px;
                    padding-bottom: 70px;
                    color: rgba(255, 255, 255, 0.8);

                    .top{
                        width: 100%;
                        margin-top: 40px;
                        margin-bottom: 40px;
                        h2{
                            width: 100%;
                            padding: 0px 10px;
                            display: block;
                            text-align: center;
                            font-size: 40px;
                            color: var(--c-primary);
                            &.margin-bottom{
                                margin-bottom: 30px;
                            }
                        }
                        p{
                            display: block;
                            text-align: center;
                            font-size: 30px;
                        }
                    }
                    .cards{
                        width: 100%;
                        padding-top: 40px;
                        padding-bottom: 120px;
                        display: flex;flex-wrap: wrap; gap: 40px;
                        justify-content: center;

                        .card{
                            width: 300px;max-width: 100%;

                            .icon{
                                width: 100%;
                                margin-bottom: 20px;
                                display: flex;
                                justify-content: center;

                                i{
                                    width: 80px;height: 80px;
                                    font-size: 80px;
                                    color: var(--c-secundary);
                                    display: block;
                                }
                            }

                            span{
                                width: 100%;
                                margin-bottom: 20px;
                                display: block;
                                text-align: center;
                                font-size: 18px;
                                font-weight: 700;
                                color: rgba(255, 255, 255);
                            }
                            h3{
                                width: 100%;
                                margin-bottom: 20px;
                                font-size: 24px;
                                font-weight: 600;
                                color: var(--c-secundary);
                                text-align: center;
                            }
                            p{
                                width: 100%;
                                font-size: 22px;
                                text-align: center;
                                color: rgba(255, 255, 255, 0.9);
                            }
                        }
                    }
                    .bottom{
                        width: 100%;
                        display: flex; flex-wrap: wrap;
                        justify-content: center;

                        img{
                            width: auto;max-width: 100%;
                            height: auto;max-height: var(--app-vh);
                            display: block;
                            object-fit: cover;
                        }
                    }
                }
            }
            &.tmt-gallery-grid{
                width: 100%;height: auto; height: max-content;
                position: absolute;left: 0px;top: 0px;
                background-color: #4f4f4f;
                
                .content{
                    width: 100%;
                    padding-top: 20px;

                    .gallery-nav{
                        width: -moz-fit-content; width: fit-content; width: max-content;max-width: 100%;
                        padding: 10px;
                        margin: 0px auto;
                        margin-bottom: 40px;
                        display: flex;flex-wrap: wrap;gap: 2px;
                        justify-content: center;
                        background-color: var(--c--footer);
                        border: solid 1px #333;
                        border-radius: 40px;

                        button{
                            width: -moz-fit-content; width: fit-content; width: max-content;
                            padding: 8px 14px;
                            background-color: transparent;
                            border-radius: 20px;
                            cursor: pointer;
                            border: none;
                            color: white;
                            font-size: 18px;
                            transition: ease-in-out 0.1s;
                            transition-property: opacity background-color;

                            &.all{
                                margin-right: 20px;
                            }

                            &.active{
                                background-color: var(--c-primary);
                            }
                            &:hover{
                                opacity: 0.8;
                            }
                        }
                    }

                    .gallery{
                        width: 100%;
                        margin-bottom: 40px;

                        .gallery-grid{
                            width: 100%;
                            display: flex;flex-wrap: wrap; gap: 20px;
                            justify-content: center;

                            .media{
                                width: 240px;max-width: 100%;
                                height: max-content;
                                height: max-content;
                                outline: solid 1px transparent;
                                cursor: pointer;
                                transition: ease-in-out 0.1s;
                                transition-property: transform outline;
                                border-radius: 6px;
                                overflow: hidden;
                                display: flex;
                                justify-content: center;
                                align-items: center;
                                position: relative;
                                animation: simpleShow 0.5s linear 1;

                                img{
                                    width: 100%;height: auto;
                                    inline-size: max-content;
                                    block-size: auto;
                                    object-fit: cover;
                                    display: block;
                                }
                                span.icon{
                                    width: 40px;height: 40px;
                                    position: absolute;z-index: 1;
                                    display: flex;
                                    justify-content: center;
                                    align-items: center;
                                    opacity: 0;
                                    transform: translateY(140px);
                                    transition: ease-in-out 0.2s;
                                    transition-property: transform opacity;

                                    i{
                                        font-size: 40px;
                                        color: white;
                                    }
                                }
                                &:hover{
                                    transform: scale(1.05);
                                    outline: solid 2px var(--c-primary);

                                    img{
                                        filter: blur(5px);
                                        opacity: 0.3;
                                    }
                                    span.icon{
                                        opacity: 1;
                                        transform: translateY(0px);
                                    }
                                }
                            }
                        }
                    }

                    .video-yt{
                        width: 100%;height: var(--app-vh);
                        display: block;
                        border: none;
                        position: relative;
                        display: flex;flex-wrap: wrap;
                        justify-content: center;
                        align-items: center;

                        img{
                            width: 100%;height: 100%;
                            object-fit: cover;
                            display: block;
                            position: absolute;left: 0px;top: 0px;z-index: 0;
                            opacity: 1;
                            transition: ease-in-out 0.2s;
                            transition-property:opacity;
                        }
                        button{
                            width: -moz-fit-content; width: fit-content; width: max-content;
                            padding: 20px 60px;
                            position: absolute;z-index: 10;
                            background-color: var(--c-primary);
                            color: white;
                            font-size: 20px;
                            border-radius: 40px;
                            border: solid 1px rgba(255, 255, 255, 0.7);
                            outline: solid 1px #333;
                            cursor: pointer;
                            transform: scale(1);
                            transition: transform ease-in-out 0.1s;

                            &:hover{
                                transform: scale(1.05);
                            }
                        }
                        iframe.yt{
                            width: 100%;height: var(--app-vh);
                            display: block;
                            border: none;
                            position: relative;z-index: 20;
                            opacity: 0;
                            transition: ease-in-out 0.2s;
                            transition-property: opacity;
                        }
                        &.show{
                            img{
                                opacity: 0;
                            }
                            iframe.yt{
                                opacity: 1;
                            }
                        }
                    }
                }
            }

            &.tmt-contact{
                width: 100%;height: 400px !important;
                position: absolute;left: 0px;top: var(--app-vh);
                min-height: 0px !important;
                overflow: hidden;
                iframe{
                    width: 100%;height: 400px;
                    border: none;
                    display: block;
                }
            }
        }
    }
    
    section.alliances{
        min-height: 0px;
        height: max-content;
        padding: 40px 0px;
        background-color: white;
        display: flex; flex-wrap: wrap;
        align-items: center;

        .content{
            width: 100%;
            display: flex; flex-wrap: wrap;
            justify-content: center;
            align-items: center;

            h2{
                width: 340px;max-width: 100%;
                margin-bottom: 50px;
                color: #4f4f4f;
                font-size: 22px;
                display: block;
                text-align: center;
            }

            hr{
                width: 100%;height: 0px;
                display: block;
                border: none;outline: none;
            }

            .slider{
                width: calc(200px * 5);max-width: 100%;
                margin-bottom: 36px;
                overflow: hidden;
                display: flex;
                /* justify-content: center; */

                .slider-row{
                    width: -moz-fit-content; width: fit-content; width: max-content;
                    display: flex;
                    align-items: center;
                    transition: transform ease-in-out 0.3s;
                    position: relative;

                    .slider-grup{
                        display: flex;
                        align-items: center;

                        a{
                            width: 200px;
                            padding: 10px;
                            display: block;

                            img{
                                width: 100%;
                                display: block;
                            }
                        }
                    }
                }
            }
            .slider-controls{
                width: 100%;
                display: flex; gap: 20px;
                justify-content: center;

                button{
                    width: 40px;height: 40px;
                    border: none;
                    background-color: #5f5f5f;
                    color: white;
                    border-radius: 40px;
                    cursor: pointer;
                    &:hover{
                        background-color: #333;
                    }
                }
            }
        }
    }
}

@media screen and (min-width: 568px){
    ::-webkit-scrollbar {
        width: 15px;height: 15px;
        background-color: #333;
    }
    header.top-header{
        width: calc(100% - 15px) !important;
    }
}

@media screen and (min-width: 768px) {
    
    header.top-header{
        .row-top{
            nav.header-nav{
                a{
                    span{
                        display: block;
                    }
                }
            }
        }
    }

    .wrapper .main{
        section.footer{
            .content{
                display: flex !important; flex-wrap: wrap;
                .flexbox{
                    width: 100% !important;
                    justify-content: center !important;
                    .grup{
                        width: auto; width: max-content; max-width: 100%;
                        width: calc(100% / 4 - 20px) !important;
                        margin-bottom: 10px;
                    }
                }
            }
        }
    }

}


/* ===================== Header Responsive Fixes (iOS + all browsers) ===================== */
:root {
  --header-logo-max-h: clamp(28px, 6svh, 48px);
  --header-padding-y: clamp(8px, 2vh, 16px);
  --header-gap: clamp(8px, 2vw, 16px);
}

/* Generic header container targets to cover varied HTML structures */
.header,
.site-header,
header[role="banner"],
header.site-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--header-gap);
  padding-block: var(--header-padding-y);
  padding-inline: max(16px, env(safe-area-inset-left)) max(16px, env(safe-area-inset-right));
  flex-wrap: wrap; /* allow nav to drop below brand on narrow screens */
  min-height: min(14svh, 96px);
}

.header > *,
.site-header > *,
header[role="banner"] > *,
header.site-header > * {
  min-width: 0; /* critical for Safari: let flex items shrink */
}

/* Brand / Logo wrappers */
.logo,
.site-logo,
.brand,
.site-brand {
  flex: 0 1 auto;
  min-width: 0;
}

/* Logo image sizing: keep proportionate across devices */
.logo img,
.site-logo img,
.brand img,
.site-brand img {
  display: block;
  height: var(--header-logo-max-h);
  width: auto;
  max-width: clamp(120px, 25vw, 260px);
  object-fit: contain;
}

/* Navigation container */
nav,
.nav,
.site-nav {
  display: flex;
  align-items: center;
  gap: clamp(8px, 2vw, 20px);
  flex: 1 1 auto;
  min-width: 200px;      /* allow it to grow; can shrink for small screens */
  justify-content: flex-end;
  flex-wrap: wrap;       /* wrap items when space is tight */
  overflow-x: auto;      /* if items still overflow, allow horizontal scroll */
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
}

/* Keep nav items compact and on a single line each */
nav > *,
.nav > *,
.site-nav > * {
  flex: 0 0 auto;
  white-space: nowrap;
  line-height: 1.2;
}

/* Ensure links and buttons don't grow font-size on iOS */
nav a,
.nav a,
.site-nav a,
nav button,
.nav button,
.site-nav button {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

/* Small screens: nav takes full width on its own row */
@media (max-width: 640px) {
  nav,
  .nav,
  .site-nav {
    width: 100%;
    justify-content: flex-start;
    gap: 12px;
  }
}

/* Medium screens: balance spacing */
@media (min-width: 641px) and (max-width: 960px) {
  .header,
  .site-header,
  header[role="banner"],
  header.site-header {
    gap: clamp(10px, 2vw, 16px);
  }
}

/* Prevent header collapse when address bar shows/hides on iOS */
@supports (height: 100svh) {
  .header,
  .site-header,
  header[role="banner"],
  header.site-header {
    contain: layout paint; /* stabilize layout, reduces jank in Safari */
  }
}
/* ===================================================================== */
