:root {
    /*
    Estas variables son utilizadas por las clases de utilidad de Bootstrap (ej. bg-primary, text-primary)
    y por ciertos componentes de JavaScript. Los estilos de los componentes principales
    (como .btn, .alert, .table) se anulan directamente a continuación para asegurar la consistencia,
    ya que el CSS precompilado de Bootstrap usa colores codificados directamente.
  */
    --bs-primary: #213257;
    --bs-secondary: #69b0c2;
    --bs-success: #a3c097;
    --bs-info: #789ba4;
    --bs-warning: #ffc107;
    --bs-danger: #dc3545;
    --bs-light: #f8f9fa;
    --bs-dark: #212529;

    --bs-primary-rgb: 33, 50, 87;
    --bs-secondary-rgb: 105, 176, 194;
    --bs-success-rgb: 163, 192, 151;
    --bs-info-rgb: 120, 155, 164;
    --bs-warning-rgb: 255, 193, 7;
    --bs-danger-rgb: 220, 53, 69;
    --bs-light-rgb: 248, 249, 250;
    --bs-dark-rgb: 33, 37, 41;
}

/*
============================================
ANULACIÓN GENERAL DE COLORES DE BOOTSTRAP 5
============================================
*/

/* --- 1. Colores de Texto y Enlaces --- */
.text-primary,
.link-primary {
    color: #213257 !important;
}

.link-primary:hover,
.link-primary:focus {
    color: #192745 !important;
}

.text-secondary,
.link-secondary {
    color: #69b0c2 !important;
}

.link-secondary:hover,
.link-secondary:focus {
    color: #56909f !important;
}

.text-success,
.link-success {
    color: #a3c097 !important;
}

.link-success:hover,
.link-success:focus {
    color: #89a380 !important;
}

.text-info,
.link-info {
    color: #789ba4 !important;
}

.link-info:hover,
.link-info:focus {
    color: #637f88 !important;
}

.text-warning {
    color: #ffc107 !important;
}

.link-warning {
    color: #ffc107 !important;
}

/* No darker shade provided for links */
.link-warning:hover,
.link-warning:focus {
    color: #d9a406 !important;
}

.text-danger,
.link-danger {
    color: #dc3545 !important;
}

.link-danger:hover,
.link-danger:focus {
    color: #b82c39 !important;
}

.text-light {
    color: #f8f9fa !important;
}

.text-dark {
    color: #212529 !important;
}


/* --- 2. Botones --- */

/* Botones Sólidos */
.btn-primary {
    background-color: #213257;
    border-color: #213257;
    color: #fff;
}

.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active {
    background-color: #192745;
    border-color: #192745;
    color: #fff;
}

.btn-secondary {
    background-color: #69b0c2;
    border-color: #69b0c2;
    color: #fff;
}

.btn-secondary:hover,
.btn-secondary:focus,
.btn-secondary:active {
    background-color: #56909f;
    border-color: #56909f;
    color: #fff;
}

.btn-success {
    background-color: #a3c097;
    border-color: #a3c097;
    color: #fff;
}

.btn-success:hover,
.btn-success:focus,
.btn-success:active {
    background-color: #89a380;
    border-color: #89a380;
    color: #fff;
}

.btn-info {
    background-color: #789ba4;
    border-color: #789ba4;
    color: #fff;
}

.btn-info:hover,
.btn-info:focus,
.btn-info:active {
    background-color: #637f88;
    border-color: #637f88;
    color: #fff;
}

.btn-warning {
    background-color: #ffc107;
    border-color: #ffc107;
    color: #000;
}

.btn-warning:hover,
.btn-warning:focus,
.btn-warning:active {
    background-color: #d9a406;
    border-color: #d9a406;
    color: #000;
}

.btn-danger {
    background-color: #dc3545;
    border-color: #dc3545;
    color: #fff;
}

.btn-danger:hover,
.btn-danger:focus,
.btn-danger:active {
    background-color: #b82c39;
    border-color: #b82c39;
    color: #fff;
}

.btn-light {
    background-color: #f8f9fa;
    border-color: #f8f9fa;
    color: #000;
}

.btn-light:hover,
.btn-light:focus,
.btn-light:active {
    background-color: #d3d4d5;
    border-color: #d3d4d5;
    color: #000;
}

.btn-dark {
    background-color: #212529;
    border-color: #212529;
    color: #fff;
}

.btn-dark:hover,
.btn-dark:focus,
.btn-dark:active {
    background-color: #1a1e21;
    border-color: #1a1e21;
    color: #fff;
}

/* Botones Delineados (Outline) */
.btn-outline-primary {
    color: #213257;
    border-color: #213257;
}

.btn-outline-primary:hover,
.btn-outline-primary:focus,
.btn-outline-primary:active {
    background-color: #213257;
    border-color: #213257;
    color: #fff;
}

.btn-outline-secondary {
    color: #69b0c2;
    border-color: #69b0c2;
}

.btn-outline-secondary:hover,
.btn-outline-secondary:focus,
.btn-outline-secondary:active {
    background-color: #69b0c2;
    border-color: #69b0c2;
    color: #fff;
}

.btn-outline-success {
    color: #a3c097;
    border-color: #a3c097;
}

.btn-outline-success:hover,
.btn-outline-success:focus,
.btn-outline-success:active {
    background-color: #a3c097;
    border-color: #a3c097;
    color: #fff;
}

.btn-outline-info {
    color: #789ba4;
    border-color: #789ba4;
}

.btn-outline-info:hover,
.btn-outline-info:focus,
.btn-outline-info:active {
    background-color: #789ba4;
    border-color: #789ba4;
    color: #fff;
}

.btn-outline-warning {
    color: #ffc107;
    border-color: #ffc107;
}

.btn-outline-warning:hover,
.btn-outline-warning:focus,
.btn-outline-warning:active {
    background-color: #ffc107;
    border-color: #ffc107;
    color: #000;
}

.btn-outline-danger {
    color: #dc3545;
    border-color: #dc3545;
}

.btn-outline-danger:hover,
.btn-outline-danger:focus,
.btn-outline-danger:active {
    background-color: #dc3545;
    border-color: #dc3545;
    color: #fff;
}

.btn-outline-light {
    color: #f8f9fa;
    border-color: #f8f9fa;
}

.btn-outline-light:hover,
.btn-outline-light:focus,
.btn-outline-light:active {
    background-color: #f8f9fa;
    border-color: #f8f9fa;
    color: #000;
}

.btn-outline-dark {
    color: #212529;
    border-color: #212529;
}

.btn-outline-dark:hover,
.btn-outline-dark:focus,
.btn-outline-dark:active {
    background-color: #212529;
    border-color: #212529;
    color: #fff;
}


/* --- 3. Alertas --- */
.alert-primary {
    color: #14213d;
    background-color: #d3d6dc;
    border-color: #b8bec7;
}

.alert-primary .alert-link {
    color: #101a31;
}

.alert-secondary {
    color: #416a75;
    background-color: #e1eef1;
    border-color: #cce0e5;
}

.alert-secondary .alert-link {
    color: #34555e;
}

.alert-success {
    color: #61735a;
    background-color: #ecf2ea;
    border-color: #dbe7d8;
}

.alert-success .alert-link {
    color: #4e5c48;
}

.alert-info {
    color: #485d62;
    background-color: #e4ebee;
    border-color: #d1dde2;
}

.alert-info .alert-link {
    color: #3a4a4e;
}

.alert-warning {
    color: #664d03;
    background-color: #fff3cd;
    border-color: #ffecb5;
}

.alert-warning .alert-link {
    color: #523e02;
}

.alert-danger {
    color: #842029;
    background-color: #f8d7da;
    border-color: #f5c2c7;
}

.alert-danger .alert-link {
    color: #6a1a21;
}

.alert-light {
    color: #636464;
    background-color: #fefefe;
    border-color: #fdfdfe;
}

.alert-light .alert-link {
    color: #4f5050;
}

.alert-dark {
    color: #141619;
    background-color: #d3d4d5;
    border-color: #b8bac0;
}

.alert-dark .alert-link {
    color: #101214;
}


/* --- 4. Fondos y Bordes (Utilidades) --- */
/* Estas clases ya deberían funcionar gracias a las variables en :root, pero se anulan para garantizar */
.bg-primary {
    background-color: #213257 !important;
}

.bg-secondary {
    background-color: #69b0c2 !important;
}

.bg-success {
    background-color: #a3c097 !important;
}

.bg-info {
    background-color: #789ba4 !important;
}

.bg-warning {
    background-color: #ffc107 !important;
}

.bg-danger {
    background-color: #dc3545 !important;
}

.bg-light {
    background-color: #f8f9fa !important;
}

.bg-dark {
    background-color: #212529 !important;
}

.border-primary {
    border-color: #213257 !important;
}

.border-secondary {
    border-color: #69b0c2 !important;
}

.border-success {
    border-color: #a3c097 !important;
}

.border-info {
    border-color: #789ba4 !important;
}

.border-warning {
    border-color: #ffc107 !important;
}

.border-danger {
    border-color: #dc3545 !important;
}

.border-light {
    border-color: #f8f9fa !important;
}

.border-dark {
    border-color: #212529 !important;
}


/* --- 5. Grupos de Listas --- */
.list-group-item-primary {
    color: #14213d;
    background-color: #d3d6dc;
}

.list-group-item-secondary {
    color: #416a75;
    background-color: #e1eef1;
}

.list-group-item-success {
    color: #61735a;
    background-color: #ecf2ea;
}

.list-group-item-info {
    color: #485d62;
    background-color: #e4ebee;
}

.list-group-item-warning {
    color: #664d03;
    background-color: #fff3cd;
}

.list-group-item-danger {
    color: #842029;
    background-color: #f8d7da;
}

.list-group-item-light {
    color: #636464;
    background-color: #fefefe;
}

.list-group-item-dark {
    color: #141619;
    background-color: #d3d4d5;
}

/* --- 6. Tablas --- */
.table-primary {
    --bs-table-bg: #d3d6dc;
    --bs-table-striped-bg: #c7cbd1;
    --bs-table-striped-color: #000;
    --bs-table-active-bg: #bec2c7;
    --bs-table-active-color: #000;
    --bs-table-hover-bg: #c1c5ca;
    --bs-table-hover-color: #000;
    color: #000;
    border-color: #bec2c7;
}

.table-secondary {
    --bs-table-bg: #e1eef1;
    --bs-table-striped-bg: #d5e2e5;
    --bs-table-striped-color: #000;
    --bs-table-active-bg: #c9d6d9;
    --bs-table-active-color: #000;
    --bs-table-hover-bg: #cedade;
    --bs-table-hover-color: #000;
    color: #000;
    border-color: #c9d6d9;
}

.table-success {
    --bs-table-bg: #ecf2ea;
    --bs-table-striped-bg: #e0e6de;
    --bs-table-striped-color: #000;
    --bs-table-active-bg: #d4d9d2;
    --bs-table-active-color: #000;
    --bs-table-hover-bg: #d9ded7;
    --bs-table-hover-color: #000;
    color: #000;
    border-color: #d4d9d2;
}

.table-info {
    --bs-table-bg: #e4ebee;
    --bs-table-striped-bg: #d8dee2;
    --bs-table-striped-color: #000;
    --bs-table-active-bg: #ccd2d6;
    --bs-table-active-color: #000;
    --bs-table-hover-bg: #d1d7db;
    --bs-table-hover-color: #000;
    color: #000;
    border-color: #ccd2d6;
}

.table-warning {
    --bs-table-bg: #fff3cd;
    --bs-table-striped-bg: #f2e7c2;
    --bs-table-striped-color: #000;
    --bs-table-active-bg: #e6dca7;
    --bs-table-active-color: #000;
    --bs-table-hover-bg: #ebe1b1;
    --bs-table-hover-color: #000;
    color: #000;
    border-color: #e6dca7;
}

.table-danger {
    --bs-table-bg: #f8d7da;
    --bs-table-striped-bg: #eacbd0;
    --bs-table-striped-color: #000;
    --bs-table-active-bg: #ddbec2;
    --bs-table-active-color: #000;
    --bs-table-hover-bg: #e3c5c8;
    --bs-table-hover-color: #000;
    color: #000;
    border-color: #ddbec2;
}

.table-light {
    --bs-table-bg: #f8f9fa;
    --bs-table-striped-bg: #ecedee;
    --bs-table-striped-color: #000;
    --bs-table-active-bg: #dfe0e1;
    --bs-table-active-color: #000;
    --bs-table-hover-bg: #e5e6e7;
    --bs-table-hover-color: #000;
    color: #000;
    border-color: #dfe0e1;
}

.table-dark {
    --bs-table-bg: #212529;
    --bs-table-striped-bg: #2c3034;
    --bs-table-striped-color: #fff;
    --bs-table-active-bg: #373b3e;
    --bs-table-active-color: #fff;
    --bs-table-hover-bg: #323539;
    --bs-table-hover-color: #fff;
    color: #fff;
    border-color: #373b3e;
}


/* Estilos base corporativos */
:root {
    --primary-color: #1a4f76;
    /* Ajusta al azul del logo */
    --secondary-color: #6fb9aa;
    /* Ajusta al verde/teal del logo */
}


.text-primary-custom {
    color: var(--primary-color) !important;
}

.bg-primary-custom {
    background-color: var(--primary-color) !important;
}

.hero-section {
    background: linear-gradient(135deg, rgba(248, 249, 250, 0.95) 0%, rgba(233, 236, 239, 0.99) 100%), url('../imagenes/hero-bg.jpg') center/cover;
    padding: 100px 0;
}

.feature-icon {
    font-size: 2.5rem;
    color: var(--secondary-color);
    margin-bottom: 15px;
}

.card-custom {
    border: none;
    border-radius: 15px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05);
    transition: transform 0.3s ease;
}

.card-custom:hover {
    transform: translateY(-5px);
}

.team-img {
    width: 150px;
    height: 150px;
    object-fit: cover;
    border-radius: 50%;
    border: 4px solid var(--secondary-color);
}

/* ESTILOS PARA EL SCROLL */
.animate-on-scroll {
    opacity: 0;
}

.animate__animated {
    opacity: 1 !important;
}