
/* ==========================
   CONTACTO — CNA PREMIUM
========================== */

.contact {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding: 8rem 0;
    background-color: #050a1b;

    background-image:
        linear-gradient(
            90deg,
            rgba(5, 10, 27, .50) 0%,
            rgba(5, 10, 27, .32) 48%,
            rgba(5, 10, 27, .35) 100%
        ),
        url("../../assets/images/contact-bg.png");

    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

/* Desvanecimiento superior e inferior */

.contact::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;

    background: linear-gradient(
        to bottom,
        #050a1b 0%,
        rgba(5, 10, 27, 0) 18%,
        rgba(5, 10, 27, 0) 78%,
        #050a1b 100%
    );
}

.contact > .container {
    position: relative;
    z-index: 1;
}

/* DISTRIBUCIÓN */

.contact-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.08fr);
    gap: 4rem;
    align-items: center;
}

/* COLUMNA IZQUIERDA */

.contact-info {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    min-width: 0;
}

.contact-info .section-title {
    font-size: clamp(2.8rem, 4.5vw, 4.8rem);
    line-height: 1.08;
    letter-spacing: -.045em;
    margin-top: 1.4rem;
    margin-bottom: 1.6rem;
}

.contact-title-gradient {
    display: inline-block;
    background: linear-gradient(
        90deg,
        #388dff 0%,
        #21b8ff 55%,
        #00d9e9 100%
    );
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}

.contact-info .section-description {
    max-width: 530px;
    line-height: 1.8;
    color: #cbd6e9;
}

/* TARJETAS DE CONTACTO */

.contact-details {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    width: 100%;
    max-width: 540px;
    margin-top: 2.5rem;
}

.contact-item {
    position: relative;
    display: flex;
    align-items: center;
    gap: 1.2rem;
    min-height: 92px;
    padding: 1rem 1.25rem;

    border: 1px solid rgba(31, 181, 255, .48);
    border-radius: 18px;

    background: linear-gradient(
        135deg,
        rgba(8, 28, 65, .92),
        rgba(3, 12, 33, .90)
    );

    box-shadow:
        0 8px 25px rgba(0, 0, 0, .20),
        inset 0 1px 0 rgba(255, 255, 255, .04);

    backdrop-filter: blur(15px);
    -webkit-backdrop-filter: blur(15px);

    color: inherit;
    text-decoration: none;

    transition:
        transform .3s ease,
        border-color .3s ease,
        box-shadow .3s ease;
}

.contact-item:hover {
    transform: translateY(-4px);
    border-color: #24d5ff;

    box-shadow:
        0 12px 35px rgba(0, 0, 0, .30),
        0 0 22px rgba(0, 183, 255, .17);
}

.contact-item-icon {
    flex: 0 0 58px;
    width: 58px;
    height: 58px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 14px;
    border: 1px solid rgba(32, 178, 255, .45);
    background: rgba(0, 85, 180, .16);
    color: #16c9ff;
}

.contact-item-icon svg {
    width: 27px;
    height: 27px;
    stroke-width: 1.8;
}

.contact-item-content {
    flex: 1;
    min-width: 0;
}

.contact-item-content h4 {
    margin: 0 0 .35rem;
    font-size: 1rem;
    font-weight: 700;
    color: #fff;
}

.contact-item-content p {
    margin: 0;
    font-size: .92rem;
    line-height: 1.5;
    color: #c0cde1;
    overflow-wrap: anywhere;
}

.contact-item-arrow {
    flex-shrink: 0;
    width: 20px;
    height: 20px;
    color: #15caff;
    transition: transform .3s ease;
}

.contact-item-link:hover .contact-item-arrow {
    transform: translateX(4px);
}

/* FORMULARIO PREMIUM */

.contact-form {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 1.15rem;
    min-width: 0;

    padding: 2.7rem;
    border-radius: 28px;

    background: linear-gradient(
        145deg,
        rgba(5, 22, 58, .96),
        rgba(2, 11, 34, .97)
    );

    border: 1px solid rgba(25, 195, 255, .75);

    box-shadow:
        0 0 0 1px rgba(0, 165, 255, .10),
        0 0 38px rgba(0, 145, 255, .15),
        0 25px 65px rgba(0, 0, 0, .35);

    backdrop-filter: blur(24px);
    -webkit-backdrop-filter: blur(24px);
}

/* Resplandor discreto alrededor del panel */

.contact-form::before {
    content: "";
    position: absolute;
    inset: -1px;
    border-radius: inherit;
    pointer-events: none;

    box-shadow:
        0 0 24px rgba(0, 183, 255, .12),
        inset 0 0 18px rgba(0, 160, 255, .04);
}

/* ENCABEZADO */

.contact-form-header {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: .65rem;
}

.contact-form-header-icon {
    flex: 0 0 58px;
    height: 58px;
    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 15px;
    border: 1px solid rgba(35, 183, 255, .5);
    background: rgba(0, 112, 230, .15);
    color: #12caff;
}

.contact-form-header-icon svg {
    width: 29px;
    height: 29px;
}

.contact-form-header h3 {
    margin: 0 0 .35rem;
    color: #fff;
    font-size: 1.35rem;
    font-weight: 700;
}

.contact-form-header p {
    margin: 0;
    color: #b7c6dc;
    font-size: .88rem;
    line-height: 1.5;
}

/* CAMPOS */

.contact-field {
    position: relative;
    display: flex;
    align-items: center;
    min-width: 0;
}

.contact-field > svg {
    position: absolute;
    left: 1.15rem;
    width: 20px;
    height: 20px;
    color: #438fff;
    pointer-events: none;
    z-index: 1;
}

.contact-field input,
.contact-field textarea {
    width: 100%;
    min-width: 0;
    padding: 1rem 1rem 1rem 3.2rem;

    border: 1px solid rgba(90, 139, 202, .30);
    border-radius: 13px;

    background: rgba(12, 26, 57, .76);
    color: #fff;

    font: inherit;
    font-size: .95rem;

    transition:
        border-color .25s ease,
        background .25s ease,
        box-shadow .25s ease;
}

.contact-field input {
    min-height: 56px;
}

.contact-field textarea {
    min-height: 145px;
    resize: vertical;
    line-height: 1.6;
}

.contact-field input::placeholder,
.contact-field textarea::placeholder {
    color: #8292af;
}

.contact-field input:focus,
.contact-field textarea:focus {
    outline: none;
    border-color: #16c9ff;
    background: rgba(12, 31, 68, .95);

    box-shadow:
        0 0 0 3px rgba(0, 183, 255, .10),
        0 0 18px rgba(0, 183, 255, .08);
}

.contact-field-textarea {
    align-items: flex-start;
}

.contact-field-textarea > svg {
    top: 1.15rem;
}

/* BOTÓN */

.contact-form .contact-submit {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .8rem;

    width: 100%;
    min-height: 58px;
    margin-top: .2rem;
    padding: 1rem 1.4rem;

    border: none;
    border-radius: 999px;

    background: linear-gradient(
        90deg,
        #338bff,
        #08cbe5
    );

    color: #fff;
    font-weight: 700;
    font-size: 1rem;
    cursor: pointer;

    box-shadow: 0 7px 25px rgba(0, 155, 255, .24);

    transition:
        transform .3s ease,
        box-shadow .3s ease,
        filter .3s ease;
}

.contact-submit svg {
    width: 19px;
    height: 19px;
}

.contact-submit svg:last-child {
    margin-left: auto;
}

.contact-submit svg:first-child {
    margin-right: auto;
}

.contact-form .contact-submit:hover {
    transform: translateY(-3px);
    filter: brightness(1.1);
    box-shadow: 0 10px 32px rgba(0, 183, 255, .35);
}

/* PRIVACIDAD */

.contact-privacy {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;

    margin: .2rem 0 0;
    text-align: center;
    color: #92a4c0;
    font-size: .78rem;
    line-height: 1.5;
}

.contact-privacy svg {
    width: 14px;
    height: 14px;
    flex-shrink: 0;
}



/* Ajustes visuales finales de Contacto */

.contact {
    padding-bottom: 9rem;

    background-image:
        linear-gradient(
            90deg,
            rgba(5, 10, 27, .68) 0%,
            rgba(5, 10, 27, .48) 35%,
            rgba(5, 10, 27, .25) 70%,
            rgba(5, 10, 27, .32) 100%
        ),
        url("../../assets/images/contact-bg.png");
}

.contact-form {
    box-shadow:
        0 0 0 1px rgba(0, 165, 255, .08),
        0 0 30px rgba(0, 145, 255, .12),
        0 25px 65px rgba(0, 0, 0, .35);
}


/* RESPONSIVE */

@media (max-width: 992px) {
    .contact {
        padding: 6rem 0;
    }

    .contact-grid {
        grid-template-columns: 1fr;
        gap: 3.5rem;
    }

    .contact-info {
        align-items: flex-start;
    }

    .contact-details {
        max-width: 100%;
    }

    .contact-form {
        max-width: 700px;
        width: 100%;
        margin-inline: auto;
    }
}

@media (max-width: 600px) {
    .contact {
        padding: 5rem 0;
        background-position: 55% center;
    }

    .contact-grid {
        gap: 2.5rem;
    }

    .contact-info .section-title {
        font-size: clamp(2.5rem, 10vw, 3.5rem);
    }

    .contact-item {
        padding: .9rem;
        gap: .85rem;
    }

    .contact-item-icon {
        flex-basis: 48px;
        width: 48px;
        height: 48px;
    }

    .contact-form {
        padding: 1.5rem;
        border-radius: 22px;
    }

    .contact-form-header h3 {
        font-size: 1.1rem;
    }

    .contact-form-header-icon {
        flex-basis: 48px;
        height: 48px;
    }

    .contact-privacy {
        font-size: .72rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .contact-item,
    .contact-item-arrow,
    .contact-field input,
    .contact-field textarea,
    .contact-submit {
        transition: none;
    }
}


/* ==========================================
   CNA — CONTACT MICROINTERACTIONS
========================================== */

/* Transición suave de los íconos */
.contact-field > svg {
    transition:
        color 0.25s ease,
        filter 0.25s ease,
        transform 0.25s ease;
}

/* Ícono iluminado al seleccionar el campo */
.contact-field:focus-within > svg {
    color: #40e0ff;
    filter: drop-shadow(0 0 7px rgba(0, 210, 255, 0.65));
    transform: scale(1.1);
}


/* Panel activo mientras se completa el formulario */

.contact-form {
    transition:
        border-color 0.35s ease,
        box-shadow 0.35s ease;
}

.contact-form:focus-within {
    border-color: rgba(65, 220, 255, 0.95);

    box-shadow:
        0 0 0 1px rgba(0, 195, 255, 0.15),
        0 0 42px rgba(0, 165, 255, 0.24),
        0 25px 65px rgba(0, 0, 0, 0.35);
}

/* Botón de contacto — Respuesta táctil */

.contact-form .contact-submit {
    transition:
        transform 0.2s ease,
        box-shadow 0.25s ease,
        filter 0.25s ease;
}

@media (hover: hover) {
    .contact-form .contact-submit:active {
        transform: translateY(0) scale(0.98);
        filter: brightness(0.95);
    }
}

/* Accesibilidad */
@media (prefers-reduced-motion: reduce) {
    .contact-field > svg,
    .contact-form,
    .contact-form .contact-submit {
        transition: none;
    }
}


/* ==========================================
   CNA — CONTACT FORM STATUS
========================================== */

.contact-status {
    display: none;
    margin: 0;
    padding: 0.9rem 1rem;
    border-radius: 12px;
    text-align: center;
    font-size: 0.9rem;
    line-height: 1.5;
}

.contact-status.is-success {
    display: block;
    color: #a7f3d0;
    background: rgba(16, 185, 129, 0.10);
    border: 1px solid rgba(52, 211, 153, 0.30);
}

.contact-status.is-error {
    display: block;
    color: #fecaca;
    background: rgba(239, 68, 68, 0.10);
    border: 1px solid rgba(248, 113, 113, 0.30);
}

.contact-form .contact-submit:disabled {
    opacity: 0.7;
    cursor: wait;
    transform: none;
}


/* CNA Cloudflare: encabezado móvil e indicaciones de swipe ocultos por defecto.
   Los estilos móviles originales permanecen intactos. */
#contact .contact-mobile-heading,
#contact .contact-carousel-hint,
#contact .contact-carousel-dots { display: none !important; }

@media (max-width: 600px) {
  #contact .contact-mobile-heading { display: block !important; }
  #contact .contact-carousel-hint { display: block !important; }
  #contact .contact-carousel-dots { display: flex !important; }
}
