/* Styles pour le formulaire de réservation de matelas */
h3 {
    font-size: 24px;
    font-weight: bold;
    text-align: center;
    margin-bottom: 20px;
    color: #333;
}

/* Zone d'en-tête */
#signup-header {
    text-align: right;
    margin-bottom: 10px;
}

#signup-header .close {
    font-size: 24px;
    color: #000;
    text-decoration: none;
}

/* Contenu du formulaire */

.form-steps {
  width: 100%;

  color: #000;
  padding:10px;
}

.right-box-ouverture {
    background: #fff;
    border-radius: 5px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.input-group {
    position: relative;
 
    display: flex;
    align-items: center;
}

.input-group-addon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    background: #f7259f;
    color: #fff;
    border-radius: 3px;
    font-size: 20px;
    margin-right: 5px;
}

.form-control {
    flex: 1;
    padding-left: 10px;
    border: 1px solid #ddd;
    border-radius: 3px;
    height: 40px;
    outline: none;
    transition: border-color 0.3s ease;
}

.form-control:focus {
    border-color: #f7259f;
    box-shadow: 0 0 0 2px rgba(247, 37, 159, 0.2);
}

/* Message d'erreur */
.message {
    color: red;
    margin-top: 5px;
    font-size: 12px;
}

/* Bouton de validation */
#submit_reservation {
    background: #f7259f;
    color: #fff;
    border: none;
    border-radius: 3px;
    font-weight: bold;
    padding: 10px 20px;
    cursor: pointer;
    transition: background-color 0.3s ease;
}

#submit_reservation:hover {
    background: #d61b87;
}

#submit_reservation:disabled {
    background: #ccc;
    cursor: not-allowed;
}

/* Styles pour les messages de succès ou d'erreur */
.swal2-popup {
    font-size: 14px;
 z-index: 1999999 !important; /* Ajout de !important pour forcer si conflit */
}

.swal2-title {
    font-size: 18px;
}

.swal2-icon-success {
    color: #34d399;
}

.swal2-icon-error {
    color: #f43f5e;
}

/* Icônes dans les champs */
.input-group-addon i.fa {
    color: #fff;
}

/* Styles pour le select alcool - NOUVEAU SYSTÈME */
/* Remplace les anciennes règles qui avaient des conflits */
#alcool {
    margin-bottom: 20px; 
    margin-top: 15px;
}

/* Classes spécifiques pour contrôler la visibilité */
.alcool-hidden {
    display: none !important;
}

.alcool-visible {
    display: flex !important;
}

#alcool:not([required]) {
  display: block !important; /* Force l'affichage même sans l'attribut required */
}

/* Nouvelles règles spécifiques qui auront priorité sur la règle ci-dessus */
#alcool.force-hide {
  display: none !important;
}

#alcool.force-show {
  display: flex !important;
}

/* Styles pour les textes d'avertissement */
[size="-3"] {
    font-size: 12px;
    color: #666;
}

[size="-3"] i.fa-exclamation-triangle {
    color: #f7259f;
    margin-right: 3px;
}

/* Carousel */
.carousel {
    position: relative;
}

.carousel-indicators-images {
    display: flex;
    justify-content: center;
    margin-top: 10px;
}

.carousel-indicators-images div {
    cursor: pointer;
    margin: 0 5px;
}

.carousel-indicators-images img {
    border-radius: 6px;
    width: 80px;
    height: 80px;
    border: 2px solid #e39a3b;
    transition: border-color 0.3s ease;
}

.carousel-indicators-images div.active img,
.carousel-indicators-images div.thumbnail-item.active img {
    border-color: #428bca;
}

/* Images */
img {
    vertical-align: middle;
    border-style: none;
}

.w-100 {
    width: 100% !important;
}

.d-block {
    display: block !important;
}

.rounded-circle {
    border-radius: 50% !important;
}

.store-image {
    width: 42px;
}

/* Style pour le texte "inclus" dans le récapitulatif des prix */
.inclus-text {
    color: #4CAF50;
    font-style: italic;
}

/* Style pour le prix VIP */
.prix-vip {
    color: #f7259f;
    font-weight: bold;
}

/* Ajustements pour la section récapitulatif des prix */
.prix-recap {
    margin-top: 20px;
    padding: 15px;
    border: 1px solid #eaeaea;
    border-radius: 5px;
    background-color: #f9f9f9;
}

.prix-recap h4 {
    color: #f7259f;
    margin-bottom: 15px;
    font-weight: bold;
}

.prix-recap table {
    width: 100%;
    border-collapse: collapse;
}

.prix-recap td {
    padding: 8px 0;
    border-bottom: 1px solid #eaeaea;
}

.prix-recap td:last-child {
    text-align: right;
    font-weight: bold;
}

.prix-recap tr:last-child td {
    padding: 12px 0;
    font-size: 1.1em;
    font-weight: bold;
}

.prix-recap tr:last-child td:last-child {
    color: #f7259f;
}
/* Styles pour le select alcool */
#alcool {
    margin-bottom: 20px; 
    margin-top: 15px;
}

/* Classes spécifiques pour contrôler la visibilité */
.alcool-hidden {
    display: none !important;
}

.alcool-visible {
    display: flex !important;
}

#alcool:not([required]) {
  display: block !important;
}

/* Nouvelles règles spécifiques */
#alcool.force-hide {
  display: none !important;
}

#alcool.force-show {
  display: flex !important;
}
/* Styles pour les champs valides */
.input-valid {
    border: 2px solid #10b981 !important;
    background-color: rgba(16, 185, 129, 0.05) !important;
}

/* Animation pour les champs valides */
@keyframes pulse {
    0% { box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.4); }
    70% { box-shadow: 0 0 0 5px rgba(16, 185, 129, 0); }
    100% { box-shadow: 0 0 0 0 rgba(16, 185, 129, 0); }
}

.input-valid {
    animation: pulse 1s;
}
