
.hub-input {
    background-color: var(--fourth-color) !important;
    border: 1px solid var(--tertiary-color) !important;
    color: var(--sixth-color) !important;
    border-radius: 8px;
    padding: 0.6rem 0.8rem;
}
.hub-input::placeholder { color: var(--sixth-color); opacity: 0.4; }
.hub-input:focus { border-color: var(--primary-color) !important; box-shadow: 0 0 0 0.25rem rgba(45, 149, 213, 0.15) !important; }

/* Classe harmonisée pour tous les boutons interactifs du Hub */
.hub-btn {
    transition: all 0.2s ease-in-out;
    border-radius: 8px;
}
.hub-btn:hover {
    transform: translateY(-2px);
    filter: brightness(1.15);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3) !important;
}
.hub-btn:active {
    transform: translateY(0);
}

.hub-link-btn:hover {
    color: var(--secondary-color) !important;
}

.img-hover-container { transition: 0.3s; overflow: hidden; }
.img-hover-container:hover { transform: scale(1.03); }

/* Star Rating Formulaire */
.star-rating { display: flex; flex-direction: row-reverse; justify-content: flex-end; position: relative; }
.star-rating input { position: absolute; opacity: 0; width: 1px; height: 1px; pointer-events: none; }
.star-rating label { font-size: 1.8rem; color: #374051; cursor: pointer; transition: 0.2s; padding: 0 4px; }
.star-rating input:checked ~ label, .star-rating label:hover, .star-rating label:hover ~ label { color: #ffc107; }

/* Hub Custom Modals */
.hub-custom-modal {
    display: none; position: fixed; z-index: 9999; left: 0; top: 0; width: 100%; height: 100%;
    background-color: rgba(0,0,0,0.8); backdrop-filter: blur(4px);
}
.hub-modal-content { margin: 10% auto; padding: 20px; width: 90%; max-width: 500px; }

.hub-input { background-color: var(--fourth-color) !important; border: 1px solid var(--tertiary-color) !important; color: var(--sixth-color) !important; border-radius: 8px; padding: 0.6rem 0.8rem; }
.hub-btn { transition: 0.2s; }
.hub-btn:hover { transform: translateY(-2px); filter: brightness(1.2); }
.hub-custom-modal { display: none; position: fixed; z-index: 9999; left: 0; top: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.9); }
.star-rating { display: flex; flex-direction: row-reverse; justify-content: flex-end; }
.star-rating input { display: none; }
.star-rating label { font-size: 1.5rem; color: #374051; cursor: pointer; }
.star-rating input:checked ~ label { color: #ffc107; }


/* Amélioration visuelle des flèches du slider */
.carousel-control-prev-icon,
.carousel-control-next-icon {
    background-color: var(--primary-color);
    border-radius: 50%;
    padding: 15px;
}

/* Style des indicateurs */
.carousel-indicators button {
    background-color: var(--tertiary-color) !important;
}
.carousel-indicators .active {
    background-color: var(--primary-color) !important;
}

/* Effet survol sur les miniatures */
.thumbnail-item {
    transition: all 0.3s ease;
    opacity: 0.7;
}
.thumbnail-item:hover {
    opacity: 1;
    transform: scale(1.05);
    border-color: var(--primary-color) !important;
}

/* Optionnel : rendre les images du slider agrandissables au clic */
.carousel-item img {
    cursor: pointer;
}
