/* === Variables de colores institucionales === */
:root {
    --color-vino: #691C32;
    --color-verde: #10312B;
    --color-dorado: #BC955C;
    --color-gris: #6F7271;
}

/* === Clases de color reutilizables === */

/* Fondos */
.bg-vino {
    background-color: var(--color-vino) !important;
}

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

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

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

/* Texto */
.text-vino {
    color: var(--color-vino) !important;
}

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

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

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

/* Bordes */
.border-vino {
    border-color: var(--color-vino) !important;
}

.border-verde {
    border-color: var(--color-verde) !important;
}

.border-dorado {
    border-color: var(--color-dorado) !important;
}

.border-gris {
    border-color: var(--color-gris) !important;
}

/* === Fondo personalizado institucional === */
.bg-custom {
    background-color: var(--color-vino); /* Verde oscuro institucional */
    height: 100vh; /* Cubre toda la pantalla */
}

/* === Botón personalizado institucional === */
.btn-custom {
    background-color: var(--color-dorado); /* Dorado institucional */
    color: white;
    border: none;
}

/* Hover y focus del botón */
.btn-custom:hover,
.btn-custom:focus {
    background-color: #a67d49; /* Dorado más oscuro */
}

input:focus,
textarea:focus,
select:focus {
    border-color: var(--color-verde);
    box-shadow: 0 0 0 0.25rem rgba(16, 49, 43, 0.25); /* Verde institucional con transparencia */
    outline: none;
}


/* === Espaciado vertical responsivo === */
.py-8 {
    padding-top: 4.5rem !important;
    padding-bottom: 4.5rem !important;
}

@media (min-width: 576px) {
    .py-sm-8 {
        padding-top: 4.5rem !important;
        padding-bottom: 4.5rem !important;
    }
}

@media (min-width: 768px) {
    .py-md-8 {
        padding-top: 4.5rem !important;
        padding-bottom: 4.5rem !important;
    }
}

@media (min-width: 992px) {
    .py-lg-8 {
        padding-top: 4.5rem !important;
        padding-bottom: 4.5rem !important;
    }
}

@media (min-width: 1200px) {
    .py-xl-8 {
        padding-top: 4.5rem !important;
        padding-bottom: 4.5rem !important;
    }
}

@media (min-width: 1400px) {
    .py-xxl-8 {
        padding-top: 4.5rem !important;
        padding-bottom: 4.5rem !important;
    }
}

/* === Botones de tamaño personalizado === */
.bsb-btn-xl {
    --bs-btn-padding-y: 0.625rem;
    --bs-btn-padding-x: 1.25rem;
    --bs-btn-font-size: calc(1.26rem + 0.12vw);
    --bs-btn-border-radius: var(--bs-border-radius-lg);
}

@media (min-width: 1200px) {
    .bsb-btn-xl {
        --bs-btn-font-size: 1.35rem;
    }
}

.bsb-btn-2xl {
    --bs-btn-padding-y: 0.75rem;
    --bs-btn-padding-x: 1.5rem;
    --bs-btn-font-size: calc(1.27rem + 0.24vw);
    --bs-btn-border-radius: var(--bs-border-radius-lg);
}

@media (min-width: 1200px) {
    .bsb-btn-2xl {
        --bs-btn-font-size: 1.45rem;
    }
}

.bsb-btn-3xl {
    --bs-btn-padding-y: 0.875rem;
    --bs-btn-padding-x: 1.75rem;
    --bs-btn-font-size: calc(1.28rem + 0.36vw);
    --bs-btn-border-radius: var(--bs-border-radius-lg);
}

@media (min-width: 1200px) {
    .bsb-btn-3xl {
        --bs-btn-font-size: 1.55rem;
    }
}

.bsb-btn-4xl {
    --bs-btn-padding-y: 1rem;
    --bs-btn-padding-x: 2rem;
    --bs-btn-font-size: calc(1.29rem + 0.48vw);
    --bs-btn-border-radius: var(--bs-border-radius-lg);
}

@media (min-width: 1200px) {
    .bsb-btn-4xl {
        --bs-btn-font-size: 1.65rem;
    }
}

.bsb-btn-5xl {
    --bs-btn-padding-y: 1.125rem;
    --bs-btn-padding-x: 2.25rem;
    --bs-btn-font-size: calc(1.3rem + 0.6vw);
    --bs-btn-border-radius: var(--bs-border-radius-lg);
}

@media (min-width: 1200px) {
    .bsb-btn-5xl {
        --bs-btn-font-size: 1.75rem;
    }
}

/* === Botones redondos === */
.bsb-btn-circle {
    align-items: center;
    backface-visibility: hidden;
    border-radius: 50% !important;
    display: inline-flex;
    height: 2.5rem;
    justify-content: center;
    line-height: 1;
    padding: 0;
    width: 2.5rem;
}

.bsb-btn-circle.bsb-btn-circle-sm { height: 2rem; width: 2rem; }
.bsb-btn-circle.bsb-btn-circle-lg { height: 3rem; width: 3rem; }
.bsb-btn-circle.bsb-btn-circle-xl { height: 3.5rem; width: 3.5rem; }
.bsb-btn-circle.bsb-btn-circle-2xl { height: 4rem; width: 4rem; }
.bsb-btn-circle.bsb-btn-circle-3xl { height: 4.5rem; width: 4.5rem; }
.bsb-btn-circle.bsb-btn-circle-4xl { height: 5rem; width: 5rem; }
.bsb-btn-circle.bsb-btn-circle-5xl { height: 5.5rem; width: 5.5rem; }
.bsb-btn-circle.bsb-btn-circle-6xl { height: 6rem; width: 6rem; }
.bsb-btn-circle.bsb-btn-circle-7xl { height: 6.5rem; width: 6.5rem; }
.bsb-btn-circle.bsb-btn-circle-8xl { height: 7rem; width: 7rem; }
.bsb-btn-circle.bsb-btn-circle-9xl { height: 7.5rem; width: 7.5rem; }
.bsb-btn-circle.bsb-btn-circle-10xl { height: 8rem; width: 8rem; }
