/* =========================================
   SYS ONLINE - HERO CUSTOM
========================================= */


/* =========================================
   PANEL PRINCIPAL
========================================= */

.header-hero .hero-panel {
    position: relative;
    overflow: hidden;

    padding: 12px 18px;

    border-radius: 28px;

    background:
        linear-gradient(
            135deg,
            rgba(248, 251, 255, 0.97),
            rgba(224, 236, 247, 0.94)
        );

    border: 1px solid rgba(255, 255, 255, 0.8);

    box-shadow:
        0 24px 60px rgba(0, 20, 50, 0.28),
        inset 0 1px 0 rgba(255, 255, 255, 0.9);
}


/* Glow superior */
.header-hero .hero-panel::before {
    content: "";

    position: absolute;

    width: 430px;
    height: 430px;

    right: -170px;
    top: -210px;

    border-radius: 50%;

    background:
        radial-gradient(
            circle,
            rgba(0, 123, 255, 0.13) 0%,
            rgba(0, 123, 255, 0.04) 42%,
            transparent 72%
        );

    pointer-events: none;
}


/* Línea tech inferior */
.header-hero .hero-panel::after {
    content: "";

    position: absolute;

    right: 38px;
    bottom: 26px;

    width: 180px;
    height: 1px;

    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(0, 123, 255, 0.5)
        );

    pointer-events: none;
}


/* =========================================
   CONTENIDO GENERAL
========================================= */

.header-hero .hero-copy {
    position: relative;
    z-index: 2;
}

.header-hero .hero-copy-full {
    width: 100%;
}


/* =========================================
   TÍTULO
========================================= */

.header-hero h1 {
    margin-bottom: 28px;
}


/* =========================================
   BLOQUE TEXTO + CONTACTOS
========================================= */

.header-hero .hero-intro {
    display: grid;

    grid-template-columns:
        minmax(0, 1.55fr)
        minmax(330px, 0.65fr);

    align-items: center;

    gap: 58px;
}


/* =========================================
   TEXTO
========================================= */

.header-hero .hero-text {
    min-width: 0;
    max-width: 720px;
}

.header-hero .hero-text p {
    margin: 0 0 14px;

    line-height: 1.75;
}

.header-hero .hero-text p:last-child {
    margin-bottom: 0;
}


/* =========================================
   CONTENEDOR WHATSAPP
========================================= */

.header-hero .hero-actions {
    display: grid;

    grid-template-columns: 1fr;

    gap: 10px;

    width: 100%;
    max-width: 330px;

    margin-left: auto;
}


/* =========================================
   CARD WHATSAPP
========================================= */

.header-hero .hero-contact-card {
    position: relative;

    width: 100%;
    min-width: 0;

    padding: 13px 16px;

    display: flex;
    align-items: center;
    justify-content: flex-start;

    gap: 13px;

    border-radius: 14px;

    background:
        linear-gradient(
            145deg,
            #183a5a,
            #102c46
        );

    border: 1px solid rgba(60, 170, 255, 0.24);

    box-shadow:
        0 10px 22px rgba(0, 25, 50, 0.18),
        inset 0 1px 0 rgba(255, 255, 255, 0.07);

    overflow: hidden;

    color: #fff;
    text-decoration: none;

    transition:
        transform .25s ease,
        border-color .25s ease,
        box-shadow .25s ease;
}


/* Línea verde superior */
.header-hero .hero-contact-card::before {
    content: "";

    position: absolute;

    top: 0;
    left: 16px;

    width: 46px;
    height: 2px;

    background: #25d366;

    box-shadow:
        0 0 10px rgba(37, 211, 102, 0.7);
}


/* =========================================
   ICONO
========================================= */

.header-hero .hero-contact-icon {
    width: 42px;
    height: 42px;

    display: flex;
    align-items: center;
    justify-content: center;

    flex: 0 0 42px;

    border-radius: 11px;

    background: rgba(37, 211, 102, 0.12);

    border: 1px solid rgba(37, 211, 102, 0.3);
}

.header-hero .hero-contact-icon i {
    font-size: 22px;

    color: #25d366;
}


/* =========================================
   TEXTO DE CONTACTO
========================================= */

.header-hero .hero-contact-info {
    display: flex;
    flex-direction: column;

    align-items: flex-start;

    min-width: 0;

    line-height: 1.12;
}

.header-hero .hero-contact-info small {
    margin-bottom: 4px;

    font-size: 9px;
    font-weight: 600;

    letter-spacing: 0.9px;

    text-transform: uppercase;

    color: rgba(255, 255, 255, 0.52);
}

.header-hero .hero-contact-info strong {
    font-size: 14px;
    font-weight: 700;

    color: #fff;

    white-space: normal;
}


/* =========================================
   HOVER
========================================= */

.header-hero .hero-contact-card:hover {
    transform: translateX(-4px);

    border-color: rgba(37, 211, 102, 0.48);

    box-shadow:
        0 14px 27px rgba(0, 25, 50, 0.26),
        0 0 20px rgba(37, 211, 102, 0.08);
}



/* =========================================
   SERVICIOS - IMAGEN LATERAL
========================================= */

.section-solutions .solution-card {
    position: relative;
    overflow: hidden;

    display: grid;
    grid-template-columns: minmax(0, 1fr) 42%;

    min-height: 280px;

    padding: 0;
}


/* Contenido */

.section-solutions .solution-content {
    position: relative;
    z-index: 2;

    background-color: rgba(7, 25, 45, 0.95);

    padding: 32px 20px 32px 32px;

    display: flex;
    flex-direction: column;
    align-items: flex-start;
}


/* Imagen */

.section-solutions .solution-image {
    position: relative;

    width: 100%;
    height: 100%;

    min-height: 180px;

    overflow: hidden;

    padding: 20px;
}


.section-solutions .solution-image img {
    width: 100%;
    height: 100%;

    display: block;

    object-fit: cover;

    padding: 20px;

    transition:
        transform .6s ease,
        filter .4s ease;
}


/* Degradado para integrar imagen + contenido */

.section-solutions .solution-image::before {
    content: "";

    position: absolute;
    inset: 0;

    z-index: 1;

    background:
        linear-gradient(
            90deg,
            rgba(7, 25, 45, 1) 0%,
            rgba(7, 25, 45, 0.65) 18%,
            rgba(7, 25, 45, 0.05) 55%,
            transparent 100%
        );

    pointer-events: none;
}


/* Glow tecnológico */

.section-solutions .solution-image::after {
    content: "";

    position: absolute;

    left: 0;
    top: 20%;

    width: 1px;
    height: 60%;

    background:
        linear-gradient(
            transparent,
            rgba(40, 160, 255, 0.8),
            transparent
        );

    box-shadow:
        0 0 14px rgba(40, 160, 255, 0.5);

    z-index: 2;
}


/* Hover */

.section-solutions .solution-card:hover .solution-image img {
    transform: scale(1.06);
}

.section-solutions p{

}


/* =========================================
   CONTACTO - LAYOUT GENERAL
========================================= */

#contacto .contact-shell {
    display: grid;

    grid-template-columns:
        minmax(360px, 0.9fr)
        minmax(420px, 1.1fr);

    gap: 34px;

    align-items: stretch;
}


/* =========================================
   COLUMNA IZQUIERDA
========================================= */

#contacto .contact-map {
    display: flex;
    flex-direction: column;

    min-width: 0;
}

#contacto .contact-map-header {
    margin-bottom: 24px;
}

#contacto .contact-map-frame {
    position: relative;

    flex: 1;

    min-height: 420px;

    overflow: hidden;

    border-radius: 22px;

    border: 1px solid rgba(20, 100, 170, 0.15);

    box-shadow:
        0 18px 40px rgba(0, 30, 60, 0.12);
}

#contacto .contact-map-frame iframe {
    position: absolute;

    inset: 0;

    width: 100%;
    height: 100%;

    display: block;
}


/* =========================================
   LISTA DE CONTACTOS
========================================= */

#contacto .contact-card-list {
    display: grid;

    grid-template-columns: 1fr;

    gap: 14px;

    align-content: start;
}


/* =========================================
   CARDS
========================================= */

#contacto .contact-row {
    position: relative;

    display: flex;
    align-items: center;

    gap: 18px;

    min-width: 0;

    padding: 20px 22px;

    border-radius: 18px;

    background:
        linear-gradient(
            145deg,
            rgba(255, 255, 255, 0.97),
            rgba(238, 245, 251, 0.96)
        );

    border: 1px solid rgba(20, 100, 170, 0.14);

    box-shadow:
        0 10px 24px rgba(0, 35, 70, 0.08);

    text-decoration: none;

    transition:
        transform .25s ease,
        box-shadow .25s ease,
        border-color .25s ease;
}


#contacto .contact-row:hover {
    transform: translateX(4px);

    border-color: rgba(0, 120, 220, 0.32);

    box-shadow:
        0 15px 30px rgba(0, 35, 70, 0.13);
}


/* =========================================
   ICONOS MÁS GRANDES
========================================= */

#contacto .contact-row > i {
    width: 54px;
    height: 54px;

    flex: 0 0 54px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 14px;

    font-size: 23px;

    color: #087be8;

    background: rgba(8, 123, 232, 0.09);

    border: 1px solid rgba(8, 123, 232, 0.14);
}


/* WhatsApp */

#contacto .contact-row-whatsapp > i {
    color: #20bd5a;

    background: rgba(37, 211, 102, 0.11);

    border-color: rgba(37, 211, 102, 0.2);
}


/* =========================================
   TEXTOS MÁS GRANDES
========================================= */

#contacto .contact-row div {
    min-width: 0;
}

#contacto .contact-row strong {
    display: block;

    margin-bottom: 5px;

    font-size: 17px;
    font-weight: 700;

    line-height: 1.2;
}

#contacto .contact-row p {
    margin: 0;

    font-size: 15px;

    line-height: 1.4;

    opacity: 0.72;

    overflow-wrap: anywhere;
}

#contacto .contact-shell {
    align-items: stretch;
}

#contacto .contact-map {
    height: 100%;
}

#contacto .contact-copy {
    height: 100%;
}

#contacto .contact-map-frame {
    flex: 1;
    min-height: 0;
}

#contacto .contact-map {
    display: flex;
    flex-direction: column;
}

#contacto .contact-map-header {
    flex: 0 0 auto;
}

#contacto .contact-map-frame {
    flex: 1 1 auto;
}

#contacto .contact-shell {
    grid-template-columns: 0.95fr 1.05fr;
}


/* =========================================
   RESPONSIVE
========================================= */

@media (max-width: 1050px) {

    #contacto .contact-shell {
        grid-template-columns: 1fr;
    }

    #contacto .contact-map-frame {
        min-height: 360px;
    }

}


@media (max-width: 650px) {

    #contacto .contact-row {
        padding: 17px;
        gap: 14px;
    }

    #contacto .contact-row > i {
        width: 48px;
        height: 48px;

        flex-basis: 48px;

        font-size: 20px;
    }

    #contacto .contact-row strong {
        font-size: 16px;
    }

    #contacto .contact-row p {
        font-size: 14px;
    }

}

/* =========================================
   RESPONSIVE
========================================= */

@media (max-width: 850px) {

    .section-solutions .solution-card {
        grid-template-columns: 1fr;
    }

    .section-solutions .solution-content {
        padding: 28px;
    }

    .section-solutions .solution-image {
        min-height: 200px;
        height: 200px;
    }

    .section-solutions .solution-image::before {
        background:
            linear-gradient(
                180deg,
                rgba(7, 25, 45, 0.85) 0%,
                transparent 45%
            );
    }

}





/* =========================================
   RESPONSIVE - TABLET
========================================= */

@media (max-width: 1050px) {

    .header-hero .hero-panel {
        padding: 44px 38px;
    }

    .header-hero .hero-intro {
        grid-template-columns: 1fr;
        gap: 28px;
    }

    .header-hero .hero-actions {
        max-width: 100%;

        grid-template-columns:
            repeat(3, minmax(0, 1fr));

        margin-left: 0;
    }

}


/* =========================================
   RESPONSIVE - MOBILE
========================================= */

@media (max-width: 750px) {

    .header-hero .hero-panel {
        padding: 34px 26px;

        border-radius: 22px;
    }

    .header-hero h1 {
        margin-bottom: 22px;
    }

    .header-hero .hero-actions {
        grid-template-columns: 1fr;
    }

}


/* =========================================
   MOBILE CHICO
========================================= */

@media (max-width: 480px) {

    .header-hero .hero-panel {
        padding: 30px 20px;
    }

    .header-hero .hero-contact-card {
        padding: 12px 14px;
    }

}