/* Estilos del sitio público (formulario de reservas y consulta por localizador).
   El color principal lo fija cada sección desde el panel (variable --marca). */
:root { --marca: #0d6efd; --marca-oscuro: #0a4fb8; }
.btn-primary { --bs-btn-bg: var(--marca); --bs-btn-border-color: var(--marca); --bs-btn-hover-bg: var(--marca-oscuro); --bs-btn-hover-border-color: var(--marca-oscuro); --bs-btn-active-bg: var(--marca-oscuro); --bs-btn-active-border-color: var(--marca-oscuro); }
.btn-outline-primary { --bs-btn-color: var(--marca); --bs-btn-border-color: var(--marca); --bs-btn-hover-bg: var(--marca); --bs-btn-hover-border-color: var(--marca); --bs-btn-active-bg: var(--marca); --bs-btn-active-border-color: var(--marca); }
.text-primary { color: var(--marca) !important; }
.bg-primary { background-color: var(--marca) !important; }
.nombre-marca { font-family: 'Oswald', sans-serif; font-size: 1.15rem; color: #222; text-transform: uppercase; }
.selector-idioma .btn { font-family: 'Oswald', sans-serif; letter-spacing: .5px; }
.selector-idioma .dropdown-item.active { background: var(--marca); }
body {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    background-color: #f8f9fa;
}
.main-container { flex: 1; }
.oswald { font-family: 'Oswald', sans-serif; }

/* Barra superior */
.barra-superior {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 20px;
    background: #fff;
    font-family: 'Oswald', sans-serif;
    border-bottom: 1px solid #e0e0e0;
}
.barra-superior .logo { height: 50px; flex-shrink: 0; }
.barra-superior .menu-central { flex-grow: 1; text-align: center; }
.barra-superior .menu-central a {
    color: #000;
    text-decoration: none;
    font-size: 1.1rem;
    text-transform: uppercase;
    margin: 0 15px;
}
.barra-superior .menu-central a:hover,
.barra-superior .menu-central a.active { color: var(--marca); text-decoration: underline; }
.barra-superior .redes { display: flex; gap: 10px; flex-shrink: 0; }
.redes a {
    color: #fff;
    background-color: #333;
    width: 35px;
    height: 35px;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    text-decoration: none;
    border-radius: 4px;
}

/* Pie */
.footer-elx { background-color: #fff; padding: 2rem 0; border-top: 1px solid #e0e0e0; }
.footer-elx .logo-group { display: flex; justify-content: center; align-items: center; gap: 20px; }

/* Reservar */
.flatpickr-calendar { margin: 0 auto; box-shadow: none; border: 1px solid #eee; }
.people-grid {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 2px;
    max-width: 100%;
    margin-bottom: 10px;
}
.btn-person-icon { font-size: 0.75rem; width: 14px; text-align: center; }
.pdf-viewer-container {
    width: 100%;
    height: 500px;
    border: 1px solid #ddd;
    border-radius: 8px;
    overflow: hidden;
    background: #eee;
}

/* Mis reservas */
.search-box {
    background: linear-gradient(135deg, var(--marca) 0%, var(--marca-oscuro) 100%);
    padding: 3rem 0;
    margin-bottom: 2rem;
    color: #fff;
}
.reserva-card { transition: all 0.3s ease; border-left: 4px solid transparent; }
.reserva-card.confirmada { border-left-color: #198754; }
.reserva-card.completada { border-left-color: #6c757d; opacity: 0.8; }
.reserva-card.cancelada { border-left-color: #dc3545; opacity: 0.6; }
.reserva-card:hover { transform: translateY(-2px); box-shadow: 0 8px 16px rgba(0,0,0,0.1) !important; }
.badge-estado {
    font-size: 0.8rem;
    padding: 0.5rem 1rem;
    border-radius: 20px;
    text-transform: uppercase;
    letter-spacing: 1px;
}
.estado-confirmada { background-color: #d1e7dd; color: #0f5132; }
.estado-completada { background-color: #e2e3e5; color: #41464b; }
.estado-cancelada { background-color: #f8d7da; color: #842029; }
.btn-cancelar { transition: all 0.3s ease; }
.btn-cancelar:hover { transform: scale(1.05); }
