/*
 * Aplicación de Tipografía Global
 * (Según el Manual de Identidad)
 */
body {
    font-family: var(--font-secondary);
    /* Poppins para todo el texto */
    color: #333;
    /* REMOVIDO: margin-bottom: 60px; (causaba espacio extra antes del footer) */

    /* --- INICIO DE CORRECCIÓN STICKY FOOTER --- */
    /* 1. Hace que el body ocupe al menos el 100% de la altura de la ventana */
    min-height: 100vh;
    /* 2. Activa Flexbox en modo columna */
    display: flex;
    flex-direction: column;
    /* --- FIN DE CORRECCIÓN --- */
}

/* El contenedor principal debe crecer para empujar el footer hacia abajo */
body > .container {
    flex: 1 0 auto;
}

/* El header y footer deben tener altura fija (flex-shrink: 0) */
header,
footer {
    flex-shrink: 0;
}

h1,
h2,
h3,
h4,
h5,
h6,
.display-1,
.display-2,
.display-3,
.display-4,
.display-5,
.display-6 {
    font-family: var(--font-primary);
    /* Bebas Neue para todos los títulos */
    letter-spacing: 1.5px;
    color: var(--spgg-blue-dark);
    /* Títulos en el azul oscuro oficial */
}

/* --- Estilos por Defecto de la Plantilla --- */

@media (min-width: 768px) {
    html {
        font-size: 16px;
    }
}

.btn:focus,
.btn:active:focus,
.btn-link.nav-link:focus,
.form-control:focus,
.form-check-input:focus {
    box-shadow:
        0 0 0 0.1rem white,
        0 0 0 0.25rem var(--spgg-blue);
}

/* ====== Breadcrumb personalizado ====== */
/* Estilos para mejorar visualmente el breadcrumb en toda la aplicación */
.breadcrumb {
    --breadcrumb-bg: rgba(var(--spgg-blue-rgb), 0.06);
    display: inline-flex;
    align-items: center;
    padding: .35rem .75rem;
    margin-bottom: .75rem;
    background: var(--breadcrumb-bg);
    border-radius: .5rem;
    gap: .5rem;
    list-style: none;
    font-size: .95rem;
    border: 1px solid rgba(var(--spgg-blue-rgb), 0.12);
    box-shadow: 0 2px 6px rgba(14, 30, 70, 0.04);
}

.breadcrumb .breadcrumb-item + .breadcrumb-item::before {
    display: inline-block;
    padding: 0 .35rem;
    color: rgba(var(--spgg-blue-rgb), 0.9);
    content: "›"; /* U+203A single right-pointing angle quotation mark */
    font-weight: 700;
}

.breadcrumb a {
    color: var(--spgg-blue-dark) !important;
    text-decoration: none;
    transition: color .15s ease, text-decoration .15s ease;
}

.breadcrumb a:hover {
    color: var(--spgg-blue) !important;
    text-decoration: underline;
}

.breadcrumb .breadcrumb-item.active {
    color: var(--spgg-gray);
    font-weight: 600;
}

@media (max-width: 576px) {
    .breadcrumb {
        padding: .25rem .5rem;
        font-size: .9rem;
    }
}

