:root{
    --azulmo:rgb(2, 8, 115);
    --azulro:rgb(3, 49, 140);
    --amarillos:rgb(242, 183, 5);
    --ambar:rgb(242, 159, 5);
    --negror:rgb(13 13 13);
    --blanco:rgb(255, 255, 255);
    --oro:rgb(255, 215, 0);

    --azulmo_st:rgba(2, 8, 115, 0.83);
    --azulro_st:rgba(3, 49, 140, 0.83);
    --negror_st:rgba(13, 13, 13, 0.83);
}

.T4{
    margin-top: 0;
    margin-bottom: .5rem;
    font-weight: 500;
    line-height: 1.2;
}

body{ max-width: 1920px; margin: 0 auto; }

.azulmo{ color: rgb(2, 8, 115); }
.tblanco{ color: rgb(255, 255, 255); }
.tazulmo{ color: rgb(2, 8, 115); }

.azulmobg{ background-color: rgb(2, 8, 115); }
.azulrobg{ background-color: rgb(3, 49, 140); }
.blanco{ background-color: rgba(255, 255, 255); }

ul { list-style: none; }

.tblanco .firma:hover { color:var(--oro); }

.navbar{ z-index: 2; }

iframe{ border: 0; }

textarea.mi-textarea{ resize: none; }

.nav-pills .nav-link.active, .nav-pills .show>.nav-link {
    background-color: var(--azulro);
}

.navbar-nav .nav-link.active, .navbar-nav .show>.nav-link {
    color: var(--blanco);
    font-weight:bolder;
}

.nav-link {
    color: var(--azulmo);
    font-weight:bolder;
}

.nav-link:hover {
    color: var(--blanco);
    background-color: var(--azulro);
    font-weight:bolder;
}

.navbar-toggler:focus{ box-shadow:0 0 0 var(--azulmo); }

.card-productos {
  width: 18rem !important;
  max-width: 18rem !important;
}


.overlay{ background-color: var(--azulro_st); }

.oc { z-index: 1; text-align: center; color: #FFF; padding-top:4rem; padding-bottom: 4rem; padding-left: 2rem; padding-right: 2rem; }

.sombra{ box-shadow:0 0 0.85rem var(--azulmo); }

.sombrab:hover{ box-shadow:0 0 0.85rem var(--blanco); }

.fx{ transition: all 0.3s ease; }

.fx:hover{ transform: scale(1.02); }

.fortificacion-row{ height: 60%; }

/* CORREGIDO: Azul más oscuro para cumplir con el contraste de accesibilidad WCAG (AAA/AA) */
.btn-primary {
    background-color: var(--azulmo);
    border-color: var(--azulmo);
    color: var(--blanco); /* Forzar que el texto sea blanco */
}

.btn-primary:hover, .btn-primary:focus {
    background-color: var(--azulro); /* Intercambio dinámico al pasar el cursor */
    border-color: var(--azulro);
    color: var(--blanco);
}

/* DIVISORES */
.line {
    border-top: 1px solid var(--azulmo);
    width: 70vw;
    margin-top: 5rem;
    margin-bottom: 2rem;
}

.start {
    display: flex;
    justify-content: end;
    align-items: start;
    color: var(--azulmo);
}

.end {
    display: flex;
    justify-content: start;
    align-items: end;
    color: var(--azulmo);
}

/* GRADIENT */

.gradient-left{
    background-image: linear-gradient(to left,var(--azulro),var(--azulmo)); 
    border-radius: 0.75rem;
}
.gradient-right{
    background-image: linear-gradient(to right,var(--blanco),var(--azulro)); 
    border-radius: 0.75rem;
}

.gradient-bottom{
    background-image: linear-gradient(to bottom,var(--blanco),var(--azulro)); 
    border-radius: 0.75rem;
}

.gradient-top{
    background-image: linear-gradient(to top,var(--blanco),var(--azulro)); 
    border-radius: 0.75rem;
}

.borde-footer{ border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: var(--blanco); }

/* Iconos SVG inline: reemplazan Font Awesome y evitan cargar CSS y webfont completos. */
.icon {
    display: inline-block;
    width: 1rem;
    height: 1rem;
    vertical-align: -0.125em;
    fill: currentColor;
    flex-shrink: 0;
}

.icon-lg {
    width: 50px;
    height: 50px;
}

.icon-xl {
    width: 50px !important;
    height: 50px !important;
}
