/* =====================================================
   NOSOTROS — /nosotros
   Estilos específicos de la página "Acerca de GCAB"
   ===================================================== */

/* ── 1. HERO NOSOTROS — texto centrado + video + stats flotantes ── */
.nos-hero {
    background: #fff;
    padding: clamp(5rem, 10vw, 8rem) 0 clamp(4rem, 7vw, 6rem);
    overflow: hidden;
    position: relative;
    isolation: isolate;
}

/* Bloque de texto — eyebrow y h1 centrados, descripción ancho completo */
.nos-hero-copy {
    max-width: 100%;
    margin: 0 auto clamp(2.5rem, 5vw, 4rem);
}

.nos-hero-copy .eyebrow,
.nos-hero-copy .eyebrow.center {
    justify-content: center;
    text-align: center;
    margin-bottom: 1.25rem;
    display: inline-flex;
    width: 100%;
}

.nos-hero-copy h1 {
    color: var(--c-primary);
    font-size: clamp(1.6rem, 4.2vw, 3.4rem);
    font-weight: 600;
    letter-spacing: -0.025em;
    line-height: 1.1;
    margin: 0 0 clamp(2rem, 4vw, 3rem);
    text-align: center;
    white-space: nowrap;
}

.nos-hero-copy h1 > span,
.nos-hero-copy h1 > span > span {
    white-space: nowrap;
}

/* Descripción: alineada a la izquierda y centrada al ancho del título */
.nos-hero-desc {
    font-size: clamp(1.05rem, 1.25vw, 1.2rem);
    color: var(--c-muted);
    line-height: 1.7;
    max-width: 880px;
    width: 100%;
    margin: 0 auto;
    text-align: left;
    display: flex;
    flex-direction: column;
    gap: clamp(1rem, 1.5vw, 1.4rem);
}

.nos-hero-desc p {
    margin: 0;
    text-align: left;
}

/* En pantallas pequeñas: ignoramos los <br> forzados para wrap natural */
@media (max-width: 900px) {
    .nos-hero-desc br { display: none; }
    .nos-hero-desc { font-size: 1.05rem; }
}

/* Stage del video — contiene .video-inner + stats flotantes */
.nos-hero-stage {
    position: relative;
    margin-top: clamp(1.5rem, 3vw, 2.5rem);
    padding-bottom: clamp(3.5rem, 6vw, 5rem); /* reserva espacio para stats sobresalientes */
}

/* Video inner — hereda los estilos globales .video-inner del home */
.nos-hero-stage .video-inner {
    aspect-ratio: 21 / 9;
    min-height: clamp(280px, 38vw, 520px);
    border-radius: var(--radius-lg);
    overflow: hidden;
}

/* Stats flotantes — sobresalen en la parte inferior del video */
.nos-hero-stage .nos-stats {
    position: absolute;
    left: 50%;
    bottom: 0;
    transform: translateX(-50%);
    width: min(92%, 880px);
    z-index: 5;
}

/* Controles del video — reposicionados a la IZQUIERDA y en VERTICAL
   Override del .video-controls global (en styles.css). */
.nos-hero-stage .video-controls {
    /* posición: bottom-center → left-middle */
    top: 50%;
    bottom: auto;
    left: clamp(1rem, 2vw, 1.5rem);
    transform: translate(-8px, -50%); /* estado oculto: offset hacia la izquierda */

    /* layout: horizontal → vertical */
    flex-direction: column;
    gap: .65rem;
    padding: .75rem .55rem;
}

/* Estado activo: se desplaza a su posición final (sin offset X) */
.nos-hero-stage .video-inner.is-active .video-controls {
    transform: translate(0, -50%);
}

/* Slider de volumen vertical */
.nos-hero-stage .vc-volume {
    -webkit-appearance: slider-vertical;
    appearance: slider-vertical;
    writing-mode: vertical-lr;
    direction: rtl;
    width: 4px;
    height: clamp(70px, 9vw, 110px);
    margin: .15rem 0;
}

/* Mobile: si la pantalla es muy chica, ocultamos los controles para no
   estorbar (el video sigue silenciado en loop, suficiente como showcase) */
@media (max-width: 540px) {
    .nos-hero-stage .video-controls {
        left: .5rem;
        gap: .45rem;
        padding: .5rem .4rem;
    }
    .nos-hero-stage .vc-volume {
        height: 60px;
    }
}

/* Stats — cards blancas que flotan sobre el video (contador 0→target en 7s) */
.nos-stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: clamp(.6rem, 1.2vw, 1rem);
    list-style: none;
    padding: 0;
    margin: 0;
}

.nos-stat {
    background: #fff;
    border: 1px solid var(--c-border);
    border-radius: var(--radius-md);
    padding: clamp(1rem, 1.6vw, 1.4rem) clamp(.85rem, 1.4vw, 1.25rem);
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .35rem;
    box-shadow: 0 10px 30px -10px rgba(19, 35, 229, .18), 0 4px 12px -4px rgba(0, 0, 0, .06);
    transition: transform var(--t), box-shadow var(--t), border-color var(--t);
}

.nos-stat:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-float);
    border-color: var(--c-primary);
}

.nos-stat-val {
    font-size: clamp(1.8rem, 3.2vw, 2.6rem);
    font-weight: 700;
    color: var(--c-primary);
    line-height: 1;
    letter-spacing: -0.03em;
    font-feature-settings: 'tnum' 1, 'lnum' 1;
    font-variant-numeric: tabular-nums lining-nums;
    display: block;
}

.nos-stat-label {
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--c-muted);
    line-height: 1.3;
    display: block;
    max-width: 16ch;
}

/* Compatibilidad legacy — el video stage del hero ya usa .video-inner global */


/* ── 2. TRAYECTORIA — fondo blanco, línea con progreso, énfasis activo ── */
.nos-trayectoria {
    background: #fff;
    overflow: hidden;
    padding-top: clamp(3rem, 6vw, 5rem);
    padding-bottom: clamp(3rem, 6vw, 5rem);
}

.nos-timeline {
    position: relative;
    max-width: 1040px;
    margin: 0 auto;
    padding: clamp(2rem, 4vw, 3rem) clamp(1rem, 3vw, 2rem) clamp(2rem, 4vw, 3rem);
}

/* Línea base — gris suave de fondo */
.nos-timeline-line {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 2px;
    background: var(--c-border);
    pointer-events: none;
    z-index: 0;
}

/* Línea de progreso — azul que crece con el scroll (controlada por JS) */
.nos-timeline-fill {
    position: absolute;
    top: 0;
    left: 50%;
    width: 2px;
    margin-left: -1px;
    height: 0;
    background: linear-gradient(
        to bottom,
        var(--c-primary) 0%,
        var(--c-primary) 92%,
        rgba(19, 35, 229, .35) 100%
    );
    transition: height .15s linear;
    pointer-events: none;
    z-index: 1;
    box-shadow: 0 0 12px rgba(19, 35, 229, .35);
}

/* Ítem de la línea del tiempo */
.nos-tl-item {
    position: relative;
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: clamp(2rem, 6vw, 5rem);
    align-items: start;
    margin-bottom: clamp(3rem, 5.5vw, 4.5rem);
    opacity: 0;
    transform: translateY(40px);
    transition:
        opacity .7s var(--ease-out),
        transform .7s var(--ease-out);
}

/* Estado visible (aparece) — sin énfasis */
.nos-tl-item.is-visible {
    opacity: .28;
    transform: translateY(0);
}

/* Estado ACTIVO (cerca del centro del viewport) — pleno énfasis */
.nos-tl-item.is-visible.is-active {
    opacity: 1;
}

/* Dot central — base gris (no activo), azul cuando entra al viewport */
.nos-tl-dot {
    position: absolute;
    left: 50%;
    top: .95rem;
    transform: translate(-50%, -50%) scale(0.55);
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: #fff;
    border: 2px solid var(--c-border);
    box-shadow: none;
    z-index: 3;
    transition:
        transform .55s var(--ease-out),
        background .4s var(--ease-soft),
        border-color .4s var(--ease-soft),
        box-shadow .5s var(--ease-soft);
    pointer-events: none;
}

.nos-tl-item.is-visible .nos-tl-dot {
    background: var(--c-primary);
    border-color: #fff;
    transform: translate(-50%, -50%) scale(1);
}

/* Dot ACTIVO — halo luminoso amplio + escala mayor */
.nos-tl-item.is-active .nos-tl-dot {
    transform: translate(-50%, -50%) scale(1.4);
    background: var(--c-primary);
    box-shadow:
        0 0 0 3px var(--c-primary),
        0 0 0 12px rgba(19, 35, 229, .14),
        0 0 30px rgba(19, 35, 229, .55);
}

/* Tarjeta del evento — minimalista (sin fondo, sin sombra) */
.nos-tl-card {
    display: flex;
    flex-direction: column;
    gap: .45rem;
    padding: 0;
    background: transparent;
    border-radius: 0;
    box-shadow: none;
    position: relative;
    z-index: 2;
    transition: transform .55s var(--ease-out);
}

/* Año — base gris, azul cuando está activo, con escala */
.nos-tl-year {
    font-size: clamp(2.4rem, 3.6vw, 3.4rem);
    font-weight: 700;
    color: var(--c-border);
    line-height: 1;
    letter-spacing: -0.04em;
    display: block;
    margin-bottom: .25rem;
    font-feature-settings: 'tnum' 1, 'lnum' 1;
    transition:
        color .5s var(--ease-soft),
        transform .55s var(--ease-out);
    transform-origin: center;
}

.nos-tl-item.is-visible .nos-tl-year { color: rgba(19, 35, 229, .35); }
.nos-tl-item.is-active  .nos-tl-year {
    color: var(--c-primary);
    transform: scale(1.06);
}
.nos-tl-left.is-active  .nos-tl-year { transform-origin: right center; }
.nos-tl-right.is-active .nos-tl-year { transform-origin: left center; }

/* Tag del hito — hereda alineación del .nos-tl-card (auto, no flex-start) */
.nos-tl-tag {
    display: inline-block;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--c-muted);
    background: transparent;
    padding: 0;
    border-radius: 0;
    align-self: auto;
    transition: color .5s var(--ease-soft);
}

.nos-tl-item.is-active .nos-tl-tag { color: var(--c-primary); }

/* Descripción */
.nos-tl-desc {
    font-size: .94rem;
    color: var(--c-muted);
    line-height: 1.65;
    margin: 0;
    max-width: 38ch;
    transition: color .5s var(--ease-soft);
}

.nos-tl-item.is-active .nos-tl-desc { color: #3a3a4a; }

/* Alineación de columnas — alternada */
.nos-tl-left  .nos-tl-card { grid-column: 1; text-align: right; align-items: flex-end; }
.nos-tl-left  .nos-tl-desc { margin-left: auto; }
.nos-tl-right .nos-tl-card { grid-column: 2; text-align: left;  align-items: flex-start; }

@media (prefers-reduced-motion: reduce) {
    .nos-timeline-fill { transition: none; }
    .nos-tl-item,
    .nos-tl-dot,
    .nos-tl-year,
    .nos-tl-tag,
    .nos-tl-desc { transition: none; }
}


/* ── 3. INFRAESTRUCTURA — Slider 3 cards visibles · avanza 1 ── */
.nos-infra { background: var(--c-soft); }

.nos-infra-head {
    max-width: 720px;
    margin: 0 auto clamp(2.5rem, 5vw, 4rem);
}

.nos-infra-wrap {
    position: relative;
}

/* Viewport: oculta tarjetas fuera de rango */
.nos-infra-viewport {
    overflow: hidden;
    border-radius: var(--radius-lg);
}

.nos-infra-track {
    display: flex;
    gap: clamp(1rem, 1.75vw, 1.5rem);
    will-change: transform;
}

/* 3 cards visibles en desktop con gap proporcional */
.nos-infra-card {
    flex: 0 0 calc((100% - 2 * clamp(1rem, 1.75vw, 1.5rem)) / 3);
    min-width: 0;
    display: flex;
    flex-direction: column;
    background: #fff;
    border: 1px solid var(--c-border);
    border-radius: var(--radius-md);
    overflow: hidden;
    transition:
        box-shadow .5s var(--ease-soft),
        transform .5s var(--ease-soft),
        border-color .5s var(--ease-soft);
}

.nos-infra-card:hover {
    border-color: var(--c-primary);
    box-shadow: var(--shadow-float);
    transform: translateY(-4px);
}

.nos-infra-card-img {
    position: relative;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    flex-shrink: 0;
}

.nos-infra-card-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 1.2s var(--ease-soft);
}

.nos-infra-card:hover .nos-infra-card-img img { transform: scale(1.07); }

/* Icono flotante sobre la imagen (estilo PDF) */
.nos-infra-icon {
    position: absolute;
    top: 14px;
    left: 14px;
    width: 42px;
    height: 42px;
    border-radius: 12px;
    background: rgba(255, 255, 255, .96);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    display: grid;
    place-items: center;
    box-shadow: 0 4px 14px rgba(19, 35, 229, .15);
    z-index: 2;
}

.nos-infra-icon i {
    color: var(--c-primary);
    font-size: 16px;
}

.nos-infra-card-body {
    padding: clamp(1.25rem, 2.2vw, 1.75rem);
    display: flex;
    flex-direction: column;
    gap: .55rem;
    flex: 1;
}

.nos-infra-card h3 {
    font-size: 1.05rem;
    font-weight: 600;
    color: var(--c-primary);
    letter-spacing: -0.005em;
    line-height: 1.3;
    margin: 0;
}

.nos-infra-card p {
    font-size: .9rem;
    color: var(--c-muted);
    line-height: 1.6;
    margin: 0;
    flex: 1;
}

/* Controles — flechas estilo home slider */
.nos-infra-controls {
    display: flex;
    justify-content: center;
    gap: 1rem;
    margin-top: clamp(1.5rem, 3vw, 2.25rem);
}

.nos-infra-controls .slider-btn {
    width: 50px;
    height: 50px;
    border-radius: 50%;
    background: #fff;
    border: 1.5px solid var(--c-border);
    color: var(--c-primary);
    display: grid;
    place-items: center;
    cursor: pointer;
    transition:
        background var(--t),
        border-color var(--t),
        color var(--t),
        transform var(--t),
        opacity var(--t);
    box-shadow: var(--shadow-card);
}

.nos-infra-controls .slider-btn:hover {
    background: var(--c-primary);
    color: #fff;
    border-color: var(--c-primary);
    transform: scale(1.06);
}

/* Título en una sola línea */
.nos-infra-title {
    white-space: nowrap;
}
.nos-infra-title > span,
.nos-infra-title > span > span {
    white-space: nowrap;
}

@media (max-width: 540px) {
    .nos-infra-title { white-space: normal; }
    .nos-infra-title > span,
    .nos-infra-title > span > span { white-space: normal; }
}


/* ── 4. GCAB COMPANY — card lavanda + imagen flotando (estilo PDF) ── */
.nos-solutions-wrap {
    overflow: hidden;
    background: #fff;
    padding-top: clamp(3rem, 6vw, 5rem);
    padding-bottom: clamp(4rem, 8vw, 7rem);
}

/* Header alineado a la derecha (como el PDF) */
.nos-sol-head {
    text-align: right;
    margin: 0 0 clamp(2rem, 4vw, 3.5rem) auto;
    max-width: 600px;
    padding-right: clamp(1rem, 4vw, 3rem);
}

.nos-sol-head .eyebrow {
    justify-content: flex-end;
    margin-bottom: 1rem;
    color: var(--c-muted);
    font-weight: 600;
}

.nos-sol-head h2 {
    color: var(--c-primary);
    font-size: clamp(1.8rem, 3.2vw, 2.6rem);
    font-weight: 600;
    letter-spacing: -0.025em;
    line-height: 1.1;
    margin: 0;
}

/* Lista de items con separación generosa */
.nos-sol-list {
    display: flex;
    flex-direction: column;
    gap: clamp(2rem, 5vw, 4rem);
}

/* Cada bloque: imagen flotante a un lado + card lavanda al otro
   Columnas más equilibradas y MUCHO más altas para producto destacado.
   El overlap se logra con margin negativo en .nos-sol-copy (más abajo). */
.nos-sol {
    display: grid;
    grid-template-columns: 1.1fr 1fr;
    align-items: center;
    min-height: clamp(380px, 44vw, 560px);
    position: relative;
}

.nos-sol--reversed { grid-template-columns: 1fr 1.1fr; }
.nos-sol--reversed .nos-sol-media { order: 2; }
.nos-sol--reversed .nos-sol-copy  { order: 1; }

/* Imagen del producto — flotando, transparente, MÁS GRANDE */
.nos-sol-media {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: visible;
}

.nos-sol-media img {
    width: 125%;
    max-width: 720px;
    height: auto;
    max-height: clamp(380px, 50vw, 600px);
    object-fit: contain;
    display: block;
    transform: translateX(6%);
    transition: transform 1.4s var(--ease-soft);
    filter: drop-shadow(0 30px 60px rgba(19, 35, 229, .18));
}

.nos-sol--reversed .nos-sol-media img {
    transform: translateX(-6%);
}

.nos-sol:hover .nos-sol-media img { transform: translateX(6%) translateY(-8px) scale(1.02); }
.nos-sol--reversed:hover .nos-sol-media img { transform: translateX(-6%) translateY(-8px) scale(1.02); }

/* Card de texto — fondo lavanda, MÁS GRANDE, ligero overlap sobre la imagen */
.nos-sol-copy {
    background: var(--c-pill);
    border-radius: var(--radius-lg);
    padding: clamp(2.25rem, 4vw, 3.5rem);
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 1.25rem;
    z-index: 1;
    /* margen negativo para que la card "muerda" la imagen */
    margin-left: clamp(-5rem, -4vw, -2rem);
}

.nos-sol--reversed .nos-sol-copy {
    margin-left: 0;
    margin-right: clamp(-5rem, -4vw, -2rem);
}

.nos-sol-copy h3 {
    font-size: clamp(1.4rem, 2vw, 1.9rem);
    font-weight: 600;
    color: var(--c-primary);
    letter-spacing: -0.02em;
    line-height: 1.2;
    margin: 0;
}

.nos-sol-copy p {
    color: var(--c-muted);
    font-size: clamp(1rem, 1.1vw, 1.1rem);
    line-height: 1.65;
    max-width: 520px;
    margin: 0;
}

/* Reveal con scroll — recorrido MÁS amplio + transición más dramática */
.nos-sol-media,
.nos-sol-copy {
    transition:
        opacity 1s var(--ease-out),
        transform 1.1s var(--ease-out),
        filter 1.2s var(--ease-out);
}

/* Estado inicial (oculto): imagen entra desde MÁS LEJOS con scale, card desde el otro lado */
.nos-sol:not(.nos-sol--visible) .nos-sol-media {
    opacity: 0;
    transform: translateX(-140px) scale(0.85);
}
.nos-sol--reversed:not(.nos-sol--visible) .nos-sol-media {
    transform: translateX(140px) scale(0.85);
}
.nos-sol:not(.nos-sol--visible) .nos-sol-copy {
    opacity: 0;
    transform: translateX(140px) scale(0.92);
}
.nos-sol--reversed:not(.nos-sol--visible) .nos-sol-copy {
    transform: translateX(-140px) scale(0.92);
}
.nos-sol.nos-sol--visible .nos-sol-media,
.nos-sol.nos-sol--visible .nos-sol-copy {
    opacity: 1;
    transform: translateX(0) scale(1);
}


/* ── 5. RESPONSIVE — Nosotros ───────────────────────── */
@media (max-width: 1024px) {
    /* Hero stage en tablet: video más cuadrado + stats 2x2 */
    .nos-hero-stage .video-inner { aspect-ratio: 16 / 9; }
    .nos-hero-stage { padding-bottom: clamp(7rem, 15vw, 11rem); }
    .nos-hero-stage .nos-stats {
        grid-template-columns: repeat(2, 1fr);
        width: min(94%, 540px);
    }

    /* Infra: 3 → 2 cards visibles */
    .nos-infra-card {
        flex: 0 0 calc((100% - clamp(1rem, 1.75vw, 1.5rem)) / 2);
    }
}

@media (max-width: 768px) {
    /* Stats: 4 → 2 columnas */
    .nos-stats { grid-template-columns: repeat(2, 1fr); }
    .nos-stat { padding: .85rem .75rem; gap: .25rem; }
    .nos-stat-val { font-size: 1.65rem; }
    .nos-stat-label { font-size: .62rem; }

    /* Hero stage en mobile */
    .nos-hero-stage .video-inner {
        aspect-ratio: 4 / 3;
        min-height: 240px;
        border-radius: var(--radius-md);
    }

    /* Timeline: una columna, línea a la izquierda */
    .nos-timeline { padding-inline: 1rem; }
    .nos-timeline-line,
    .nos-timeline-fill {
        left: 1.5rem;
        margin-left: 0;
        transform: none;
    }
    .nos-tl-item.is-active .nos-tl-year { transform: scale(1.04); }
    .nos-tl-item {
        grid-template-columns: 1fr;
        padding-left: 3.5rem;
        column-gap: 0;
    }
    .nos-tl-dot {
        left: 1.5rem;
        top: 1.5rem;
    }
    .nos-tl-left .nos-tl-card,
    .nos-tl-right .nos-tl-card {
        grid-column: 1;
        text-align: left;
        align-items: flex-start;
    }
    .nos-tl-left .nos-tl-desc { margin-left: 0; }
    .nos-tl-desc { max-width: none; }

    /* Infra: 1 card visible */
    .nos-infra-card { flex: 0 0 100%; }

    /* Solutions: stacked en mobile (imagen arriba, card abajo) */
    .nos-sol,
    .nos-sol--reversed {
        grid-template-columns: 1fr;
        min-height: auto;
        gap: 0;
    }
    .nos-sol--reversed .nos-sol-media,
    .nos-sol--reversed .nos-sol-copy { order: 0; }

    .nos-sol-media,
    .nos-sol--reversed .nos-sol-media {
        order: 0;
        margin-bottom: -2.5rem;
        z-index: 3;
    }
    .nos-sol-media img,
    .nos-sol--reversed .nos-sol-media img {
        width: 70%;
        max-width: 320px;
        max-height: 260px;
        transform: none;
        margin: 0 auto;
    }
    .nos-sol-copy,
    .nos-sol--reversed .nos-sol-copy {
        order: 1;
        padding: 3.5rem 1.5rem 1.75rem;
        margin-left: 0;
        margin-right: 0;
    }
    .nos-sol-head {
        text-align: center;
        margin-right: auto;
        padding-right: 0;
    }
    .nos-sol-head .eyebrow { justify-content: center; }
}

@media (max-width: 480px) {
    .nos-stats { grid-template-columns: repeat(2, 1fr); }
    .nos-stat-val { font-size: 2.1rem; }
    .nos-tl-year { font-size: 1.6rem; }
}



/* ── 6. CONTACTO — sección con fondo lavanda (solo Nosotros) ──────── */
.nos-contact {
    background: #eef3fd;
    color: var(--c-text);
}

/* Texto del lado izquierdo: invertir colores (eran blancos para fondo navy) */
.nos-contact .contact-copy h2 {
    color: var(--c-primary);
}
.nos-contact .contact-copy h2 .text-soft {
    color: var(--c-primary);
    opacity: .55;
}

.nos-contact .eyebrow.on-dark,
.nos-contact .eyebrow {
    color: var(--c-muted);
}
.nos-contact .eyebrow.on-dark .dash,
.nos-contact .eyebrow .dash {
    background: var(--c-muted);
}

.nos-contact .lead.on-dark-soft,
.nos-contact .lead {
    color: var(--c-muted);
}

/* Contact info — labels en azul, links gris→azul al hover */
.nos-contact .contact-info strong {
    color: var(--c-primary);
}
.nos-contact .contact-info a {
    color: var(--c-muted);
    transition: color var(--t);
}
.nos-contact .contact-info a:hover {
    color: var(--c-primary);
}

/* Form blanco con sombra para destacar sobre el fondo lavanda */
.nos-contact .contact-form {
    background: #fff;
    box-shadow:
        0 25px 60px -25px rgba(19, 35, 229, .25),
        0 8px 20px -8px rgba(0, 0, 0, .08);
}
