/* ===================================
   REFUERZO - INDUMENTARIA CON FUERZA
   Landing Page Styles
   =================================== */

/* --- Reset & Variables --- */
:root {
    --navy-dark: #020b2b;
    --navy: #0e1f42;
    --navy-light: #162338;
    --blue: #2055a5;
    --blue-muted: #cdced0;
    --red: #e63946;
    --red-dark: #c62828;
    --white: #ffffff;
    --gray: #b0bec5;
    --gray-light: #eceff1;
    --asesor-anabel: #3461b6;
    --asesor-lucas: #4f92c4;
    --asesor-edgar: #244688;
    --asesor-lucia: #6fa5ce;
    --font: 'Montserrat', sans-serif;
}

*, *::before, *::after {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    font-family: var(--font);
    background: var(--navy);
    color: var(--white);
    overflow-x: hidden;
}

img {
    display: block;
    max-width: 100%;
}

a {
    text-decoration: none;
    color: inherit;
}

/* Visible solo para lectores de pantalla y buscadores */
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
}

/* --- HEADER --- */
.header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 100;
    background: var(--navy);
    border-bottom: 3px solid var(--red);

    .header__container {
        max-width: 1400px;
        margin: 0 auto;
        padding: 8px 40px;
        display: flex;
        align-items: center;
        justify-content: space-between;

        @media (max-width: 1024px) {
            padding: 10px 20px;
        }

        .header__logo {
            display: flex;
            align-items: center;

            .header__logo-img {
                height: 50px;
                width: auto;

                @media (max-width: 1024px) {
                    height: 46px;
                }

                @media (max-width: 640px) {
                    height: 40px;
                }
            }
        }

        .header__nav {
            display: flex;
            gap: 40px;

            .header__nav-link {
                font-size: 0.95rem;
                font-weight: 700;
                letter-spacing: 2px;
                color: var(--white);
                transition: color 0.3s;

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

            @media (max-width: 640px) {
                display: none;

                &.active {
                    display: flex;
                    flex-direction: column;
                    position: absolute;
                    top: 100%;
                    left: 0;
                    width: 100%;
                    background: var(--navy);
                    border-bottom: 3px solid var(--red);
                    padding: 8px 20px 16px;
                    gap: 0;

                    .header__nav-link {
                        display: flex;
                        align-items: center;
                        min-height: 48px;

                        & + .header__nav-link {
                            border-top: 1px solid rgba(255, 255, 255, 0.10);
                        }
                    }
                }
            }
        }

        .header__menu-toggle {
            display: none;
            background: none;
            border: none;
            color: var(--white);
            font-size: 1.5rem;
            cursor: pointer;

            @media (max-width: 640px) {
                display: flex;
                align-items: center;
                justify-content: center;
                width: 44px;
                height: 44px;
                padding: 0;
                margin-right: -10px;
            }

            .header__menu-icon--close {
                display: none;
            }

            &.is-open {
                color: var(--red);

                .header__menu-icon--bars {
                    display: none;
                }

                .header__menu-icon--close {
                    display: block;
                }
            }
        }
    }
}

/* --- HERO --- */
.hero {
    position: relative;
    width: 100%;
    height: 100svh;
    min-height: 600px;
    display: flex;
    align-items: center;
    overflow: hidden;

    @media (max-width: 1024px) {
        height: 700px;
        min-height: 0;
    }

    @media (max-width: 640px) {
        height: 600px;
    }

    .hero__bg {
        position: absolute;
        inset: 0;

        .hero__bg-img {
            width: 100%;
            height: 100%;
            object-fit: cover;
        }

        .hero__overlay {
            position: absolute;
            inset: 0;
            background: linear-gradient(
                to top,
                var(--navy) 0%,
                color-mix(in srgb, var(--navy) 30%, transparent) 5%,
                color-mix(in srgb, var(--navy) 10%, transparent) 100%
            );
        }
    }

    .hero__content {
        position: relative;
        z-index: 2;
        padding: 0 80px;
        max-width: 900px;

        @media (max-width: 1024px) {
            padding: 0 40px;
        }

        @media (max-width: 640px) {
            padding: 0 20px;
        }

        .hero__slogan {
            font-size: clamp(2.5rem, 8vw, 7rem);
            font-weight: 900;
            line-height: 1;
            letter-spacing: 4px;
            text-transform: uppercase;
            text-shadow: 2px 4px 20px rgba(0, 0, 0, 0.5);

            @media (max-width: 640px) {
                letter-spacing: 2px;
            }
        }
    }
}

/* --- EXPERIENCIA --- */
.experiencia {
    background: var(--navy);
    padding: 100px 0;
    height: 100vh;

    @media (max-width: 1024px) {
        height: auto;
        padding: 64px 40px 72px;
    }

    @media (max-width: 640px) {
        padding: 56px 20px 60px;
    }

    .experiencia__container {
        margin: 0 auto;
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 80px;
        align-items: center;
        height: 100%;

        @media (max-width: 1024px) {
            grid-template-columns: 1fr;
            gap: 40px;
            height: auto;
        }

        .experiencia__image-wrapper {
            position: relative;
            height: 100%;

            @media (max-width: 1024px) {
                height: auto;
            }

            .experiencia__image {
                border-radius: 0 140px 140px 0;
                position: absolute;
                top: 0;
                right: 0;
                height: 100%;
                width: auto;
                min-width: 913px;
                object-fit: cover;

                @media (max-width: 1024px) {
                    position: static;
                    min-width: 0;
                    width: calc(100% + 40px);
                    height: 320px;
                    margin-left: -40px;
                    border-radius: 0 120px 120px 0;
                }

                @media (max-width: 640px) {
                    width: calc(100% + 20px);
                    height: 240px;
                    margin-left: -20px;
                    border-radius: 0 80px 80px 0;
                }
            }
        }

        .experiencia__text {
            padding: 20px 0;
            max-width: 660px;
            position: relative;

            @media (max-width: 1024px) {
                padding: 0;
            }

            .experiencia__title {
                font-size: clamp(2rem, 4vw, 3.5rem);
                font-weight: 900;
                line-height: 1.1;
                margin-bottom: 30px;
                text-transform: uppercase;
                z-index: 1;
                position: relative;

                @media (max-width: 1024px) {
                    font-size: 2.5rem;
                }

                @media (max-width: 640px) {
                    font-size: 2rem;
                }
            }

            p {
                font-size: 1.1rem;
                font-weight: 600;
                line-height: 1.7;
                color: var(--gray-light);
                margin-bottom: 20px;
                z-index: 1;
                position: relative;

                @media (max-width: 640px) {
                    font-size: 1rem;
                    line-height: 1.65;
                }
            }

            &::before {
                content: '';
                position: absolute;
                width: 500px;
                height: 500px;
                right: -100px;
                bottom: -100px;
                pointer-events: none;
                background: radial-gradient(
                    circle,
                    color-mix(in srgb, var(--red) 95%, transparent) 0%,
                    color-mix(in srgb, var(--red) 32%, transparent) 45%,
                    transparent 70%
                );

                @media (max-width: 1024px) {
                    width: 420px;
                    height: 420px;
                    right: -160px;
                    bottom: -140px;
                }

                @media (max-width: 640px) {
                    width: 300px;
                    height: 300px;
                    right: -110px;
                    bottom: -90px;
                }
            }
        }
    }
}

/* --- MARCAS --- */
.marcas {
    width: 100%;

    .marcas__grid {
        display: grid;
        grid-template-columns: repeat(4, 1fr);
        min-height: 100vh;

        @media (max-width: 1024px) {
            grid-template-columns: repeat(2, 1fr);
            min-height: 0;
        }

        .marcas__item {
            display: block;
            position: relative;
            overflow: hidden;
            min-height: 100vh;

            @media (max-width: 1024px) {
                min-height: 340px;
            }

            @media (max-width: 640px) {
                min-height: 260px;
            }

            .marcas__bg {
                position: absolute;
                inset: 0;
                width: 100%;
                height: 100%;
                object-fit: cover;
                filter: grayscale(100%) contrast(0.8);
                transition: all 0.5s;
            }

            .marcas__overlay {
                position: absolute;
                inset: 0;
                background: var(--blue);
                opacity: 0.8;
                mix-blend-mode: color;
                pointer-events: none;
                transition: all 0.4s;
            }

            .marcas__content {
                position: relative;
                z-index: 2;
                display: flex;
                flex-direction: column;
                align-items: center;
                justify-content: center;
                height: 100%;
                padding: 30px;
                text-align: center;

                @media (max-width: 640px) {
                    padding: 20px;
                }

                .marcas__brand {
                    width: 100%;
                    max-width: 300px;
                    height: auto;
                    margin-bottom: 10px;
                    object-fit: contain;

                    @media (max-width: 1024px) {
                        max-width: 220px;
                    }

                    @media (max-width: 640px) {
                        max-width: 140px;
                    }
                }

                .marcas__tag {
                    display: none;
                    margin-top: 10px;
                    padding: 15px 25px;
                    color: var(--navy-light);
                    background-color: var(--white);
                    border-radius: 999px;
                    font-size: 1rem;
                    font-weight: 900;
                    letter-spacing: 2px;
                    transition: all 0.5s;
                    cursor: pointer;

                    @media (max-width: 1024px) {
                        display: inline-block;
                        font-size: 0.85rem;
                        padding: 8px 18px;
                    }

                    @media (max-width: 640px) {
                        font-size: 0.75rem;
                        padding: 7px 16px;
                    }
                }
            }

            &:hover,
            &:focus-visible {
                .marcas__bg {
                    filter: grayscale(0%) contrast(1);
                }

                .marcas__overlay {
                    background: rgba(15, 27, 45, 0.35);
                }

                .marcas__content .marcas__tag {
                    display: inline-block;
                }
            }

            &:focus-visible {
                outline: 3px solid var(--red);
                outline-offset: -3px;
            }
        }
    }
}


/* --- VALORES / CARACTERISTICAS --- */
.valores {
    padding: 100px 40px;
    height: 100vh;

    @media (max-width: 1024px) {
        height: auto;
        padding: 64px 40px;
    }

    @media (max-width: 640px) {
        padding: 56px 20px;
    }

    .valores__container {
        max-width: 1400px;
        margin: 0 auto;
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 30px;
        height: 100%;

        @media (max-width: 1024px) {
            grid-template-columns: repeat(2, 1fr);
            gap: 24px;
            height: auto;

            .valores__card:last-child {
                grid-column: span 2;
            }
        }

        @media (max-width: 640px) {
            grid-template-columns: 1fr;
            gap: 20px;

            .valores__card:last-child {
                grid-column: auto;
            }
        }

        .valores__card {
            position: relative;
            border-radius: 100px;
            overflow: hidden;
            min-height: 400px;
            display: flex;
            align-items: start;
            justify-content: center;
            text-align: center;
            padding: 50px;

            @media (max-width: 1024px) {
                min-height: 0;
                height: 270px;
                border-radius: 80px;
                padding: 40px 28px;
            }

            @media (max-width: 640px) {
                height: 230px;
                border-radius: 60px;
                padding: 34px 24px;
            }

            .valores__card-bg {
                position: absolute;
                inset: 0;
                width: 100%;
                height: 100%;
                object-fit: cover;
                transition: all 0.5s;
            }

            .valores__card-overlay {
                position: absolute;
                inset: 0;
                background: rgba(15, 27, 45, 0.6);
                border: 1px solid rgba(255, 255, 255, 0.15);
                border-radius: 100px;
                transition: all 0.4s;

                @media (max-width: 1024px) {
                    border-radius: 80px;
                }

                @media (max-width: 640px) {
                    border-radius: 60px;
                }
            }

            .valores__card-title {
                position: relative;
                z-index: 2;
                font-size: 2rem;
                font-weight: 900;
                line-height: 1.2;
                text-transform: uppercase;
                padding: 50px 0;

                @media (max-width: 1024px) {
                    font-size: 1.7rem;
                    padding: 0;
                }

                @media (max-width: 640px) {
                    font-size: 1.5rem;
                }
            }

            &:hover {
                .valores__card-bg {
                    transform: scale(1.05);
                }

                .valores__card-overlay {
                    background: rgba(15, 27, 45, 0.45);
                }
            }
        }
    }
}

/* --- FEATURES BAR --- */
.features {
    background: var(--navy-dark);
    padding: 30px 40px;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);

    @media (max-width: 640px) {
        padding: 26px 20px;
    }

    .features__container {
        max-width: 1400px;
        margin: 0 auto;
        display: grid;
        grid-template-columns: repeat(4, 1fr);
        gap: 20px;

        @media (max-width: 1024px) {
            grid-template-columns: repeat(2, 1fr);
            gap: 26px 24px;
        }

        @media (max-width: 640px) {
            gap: 22px 14px;
        }

        .features__item {
            display: flex;
            justify-content: center;
            align-items: center;
            gap: 14px;
            padding: 10px 0;

            .features__icon {
                flex-shrink: 0;
                width: 50px;
                height: 40px;
                object-fit: contain;

                @media (max-width: 1024px) {
                    width: 40px;
                    height: 34px;
                }

                @media (max-width: 640px) {
                    width: 32px;
                    height: 28px;
                }
            }

            .features__text {
                display: flex;
                flex-direction: column;
                font-size: 0.8rem;
                font-weight: 700;
                letter-spacing: 1px;
                line-height: 1.4;
                text-transform: uppercase;

                @media (max-width: 640px) {
                    font-size: 0.69rem;
                    letter-spacing: 0.5px;
                }
            }
        }
    }
}

/* --- TESTIMONIOS --- */
.testimonios {
    position: relative;
    padding: 100px 40px;
    overflow: hidden;
    min-height: 500px;

    @media (max-width: 1024px) {
        padding: 64px 40px;
    }

    @media (max-width: 640px) {
        padding: 56px 20px;
    }

    .testimonios__bg {
        --bg-fade: color-mix(in oklab, var(--navy-dark), transparent 100%);

        position: absolute;
        inset: 0;
        background-color: var(--navy-dark);
        background-image:
            radial-gradient(ellipse 75% 160% at 105% 105%,
                var(--red) 20%,
                color-mix(in oklab, var(--red) 60%, var(--navy-dark)) 40%,
                color-mix(in oklab, var(--red) 28%, var(--navy-dark)) 60%,
                color-mix(in oklab, var(--red) 8%,  var(--navy-dark)) 70%,
                var(--bg-fade) 80%
            ),
            radial-gradient(ellipse 75% 160% at -5% 105%,
                var(--blue-muted) 20%,
                color-mix(in oklab, var(--blue-muted) 60%, var(--navy-dark)) 40%,
                color-mix(in oklab, var(--blue-muted) 28%, var(--navy-dark)) 60%,
                color-mix(in oklab, var(--blue-muted) 8%,  var(--navy-dark)) 70%,
                var(--bg-fade) 80%
            );
    }

    .testimonios__container {
        position: relative;
        z-index: 2;
        max-width: 1400px;
        margin: 0 auto;

        .testimonios__grid {
            display: flex;
            flex-wrap: wrap;
            justify-content: space-evenly;
            padding: 20px 0;

            @media (max-width: 1024px) {
                display: grid;
                grid-template-columns: repeat(2, 1fr);
                gap: 40px 32px;
                justify-items: center;

                .testimonios__item:last-child:nth-child(odd) {
                    grid-column: span 2;
                }
            }

            @media (max-width: 640px) {
                grid-template-columns: 1fr;
                gap: 34px;

                .testimonios__item:last-child:nth-child(odd) {
                    grid-column: auto;
                }
            }

            .testimonios__item {
                display: flex;
                flex-direction: column;
                align-items: center;
                text-align: center;

                .testimonios__avatar {
                    width: 70px;
                    height: 70px;
                    border-radius: 50%;
                    background: var(--red);
                    display: flex;
                    align-items: center;
                    justify-content: center;
                    margin-bottom: -10px;
                    z-index: 2;
                    border: 3px solid var(--white);

                    @media (max-width: 640px) {
                        width: 64px;
                        height: 64px;
                    }

                    .testimonios__avatar-icon {
                        width: 26px;
                        height: 26px;
                        object-fit: contain;

                        @media (max-width: 640px) {
                            width: 23px;
                            height: 23px;
                        }
                    }
                }

                .testimonios__bubble {
                    background: var(--red);
                    border-radius: 30px;
                    padding: 30px 25px 25px;
                    width: 100%;
                    max-width: 320px;
                    min-height: 160px;

                    @media (max-width: 640px) {
                        max-width: none;
                        min-height: 0;
                        padding: 28px 22px 22px;
                    }

                    .testimonios__label {
                        font-size: 1.1rem;
                        font-weight: 800;
                        letter-spacing: 1px;
                        margin-bottom: 12px;
                        text-transform: uppercase;
                    }

                    .testimonios__quote {
                        font-size: 0.85rem;
                        line-height: 1.6;
                        color: rgba(255, 255, 255, 0.9);
                        font-weight: 400;
                    }
                }
            }
        }
    }
}

/* --- CONTACTO / VISITANOS --- */
.contacto {
    background: var(--navy);
    padding: 100px 40px;

    @media (max-width: 1024px) {
        padding: 64px 40px 80px;
    }

    @media (max-width: 640px) {
        padding: 56px 20px 70px;
    }

    .contacto__container {
        max-width: 1400px;
        margin: 0 auto;
        display: grid;
        grid-template-columns: 440px 1fr;
        gap: 40px;
        align-items: start;

        @media (max-width: 1024px) {
            grid-template-columns: 1fr;
            gap: 40px;
        }

        .contacto__left {
            @media (max-width: 1024px) {
                display: grid;
                grid-template-columns: repeat(2, 1fr);
                gap: 20px;
                align-items: start;

                .contacto__title { grid-column: 1 / -1; margin-bottom: 0; }
                .contacto__sede { margin-bottom: 0; }
                .contacto__emails { grid-column: 1 / -1; margin-top: 0; }
                .contacto__instagram { grid-column: 1 / -1; justify-self: start; margin-top: 0; }
            }

            @media (max-width: 640px) {
                grid-template-columns: 1fr;
            }

            .contacto__title {
                font-size: clamp(2rem, 4vw, 3rem);
                font-weight: 900;
                text-transform: uppercase;
                margin-bottom: 30px;

                @media (max-width: 1024px) {
                    font-size: 2.5rem;
                }

                @media (max-width: 640px) {
                    font-size: 2rem;
                }
            }

            .contacto__sede {
                margin-bottom: 20px;

                .contacto__sede-img-wrapper {
                    position: relative;
                    height: 225px;

                    @media (max-width: 1024px) {
                        height: 200px;
                    }

                    @media (max-width: 640px) {
                        height: 165px;
                    }

                    .contacto__sede-img {
                        width: 100%;
                        height: 100%;
                        object-fit: contain;

                        @media (max-width: 1024px) {
                            object-fit: cover;
                        }
                    }

                    .contacto__sede-overlay {
                        position: absolute;
                        inset: 0;
                        background: linear-gradient(to right, rgba(15, 27, 45, 0.7), rgba(15, 27, 45, 0.3));
                        display: flex;
                        flex-direction: column;
                        justify-content: center;
                        padding: 20px 30px;

                        .contacto__sede-name {
                            font-size: 1.2rem;
                            font-weight: 800;
                            text-transform: uppercase;
                            letter-spacing: 1px;
                        }

                        .contacto__sede-address {
                            font-size: 0.9rem;
                            font-weight: 600;
                            color: var(--gray-light);
                            margin-top: 4px;
                        }
                    }
                }
            }

            .contacto__emails {
                margin-top: 20px;
                display: flex;
                flex-direction: column;
                gap: 8px;

                .contacto__email {
                    font-size: 0.85rem;
                    font-weight: 700;
                    letter-spacing: 1px;
                    color: var(--white);
                    display: flex;
                    align-items: center;
                    gap: 10px;
                    transition: color 0.3s;

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

                    i {
                        color: var(--red);
                    }
                }
            }

            .contacto__instagram {
                display: inline-flex;
                align-items: center;
                justify-content: center;
                width: 45px;
                height: 45px;
                border-radius: 50%;
                background: linear-gradient(45deg, #f09433, #e6683c, #dc2743, #cc2366, #bc1888);
                margin-top: 15px;
                color: var(--white);
                transition: transform 0.3s;

                &:hover {
                    transform: scale(1.1);
                }

                .contacto__instagram-icon {
                    width: 24px;
                    height: 24px;
                    object-fit: contain;
                }
            }
        }

        .contacto__right {
            display: flex;
            justify-content: end;
            align-items: center;
            gap: 40px;

            @media (max-width: 1024px) {
                justify-content: center;
            }

            @media (max-width: 640px) {
                flex-direction: column;
                align-items: stretch;
                gap: 34px;
            }

            /* Mapa */
            .contacto__center {
                .contacto__mapa {
                    width: auto;
                    object-fit: contain;

                    @media (max-width: 1024px) {
                        width: 210px;
                    }

                    @media (max-width: 640px) {
                        width: 170px;
                        margin: 0 auto;
                    }
                }
            }

            /* Asesores */
            .contacto__asesores {
                flex-shrink: 0;

                .contacto__asesores-title {
                    font-size: 1.3rem;
                    font-weight: 800;
                    text-transform: uppercase;
                    text-align: right;
                    margin-bottom: 30px;
                    line-height: 1.4;

                    @media (max-width: 1024px) {
                        text-align: left;
                    }

                    @media (max-width: 640px) {
                        font-size: 1.2rem;
                        margin-bottom: 26px;
                    }
                }

                .contacto__asesor {
                    display: flex;
                    align-items: center;
                    justify-content: flex-end;
                    margin-bottom: 40px;

                    @media (max-width: 1024px) {
                        justify-content: flex-start;
                        margin-bottom: 26px;
                    }

                    @media (max-width: 640px) {
                        margin-bottom: 22px;
                    }

                    &.contacto__asesor--anabel { --asesor-color: var(--asesor-anabel); }
                    &.contacto__asesor--lucas  { --asesor-color: var(--asesor-lucas); }
                    &.contacto__asesor--edgar  { --asesor-color: var(--asesor-edgar); }
                    &.contacto__asesor--lucia  { --asesor-color: var(--asesor-lucia); }

                    .contacto__asesor-avatar {
                        width: 104px;
                        height: 104px;
                        border-radius: 50%;
                        overflow: hidden;
                        border: 10px solid var(--asesor-color, #2067b0);
                        flex-shrink: 0;
                        background: color-mix(in srgb, var(--asesor-color, #2067b0) 60%, var(--white));
                        display: flex;
                        align-items: center;
                        justify-content: center;
                        position: relative;
                        z-index: 2;
                        margin-right: -74px;

                        @media (max-width: 640px) {
                            width: 80px;
                            height: 80px;
                            border-width: 7px;
                            margin-right: -56px;
                        }

                        img {
                            width: 100%;
                            height: 100%;
                            object-fit: cover;
                        }

                        img.contacto__asesor-fallback {
                            width: 42%;
                            height: auto;
                            object-fit: contain;
                            opacity: 0.85;
                        }
                    }

                    .contacto__asesor-info {
                        display: flex;
                        flex-direction: column;
                        align-items: center;
                        justify-content: center;
                        background: var(--asesor-color, #2067b0);
                        border-radius: 999px;
                        min-height: 46px;
                        width: 264px;
                        padding: 8px 20px 8px 94px;

                        @media (max-width: 640px) {
                            width: auto;
                            flex: 1;
                            min-width: 0;
                            padding: 9px 18px 9px 72px;
                        }

                        .contacto__asesor-nombre {
                            font-size: 0.95rem;
                            font-weight: 700;
                            color: var(--white);
                            line-height: 1.3;
                        }

                        .contacto__asesor-rol {
                            font-size: 0.78rem;
                            font-weight: 400;
                            color: rgba(255, 255, 255, 0.9);
                            font-style: italic;
                            line-height: 1.3;
                        }
                    }
                }
            }
        }
    }
}

