/* ========================================
 * PAGE-RECETTE-HEADER.CSS
 * Contient les styles pour l'en-tête de la recette, incluant le titre, 
 * les métadonnées, le carrousel d'images principales (Swiper) et le bouton de favori
 * ======================================== */

/* ======================================
 * TITRE ET MÉTADONNÉES
 * ====================================== */
.ingredient-header h1 {
    margin-bottom: 30px;
    font-size: 1.7rem;
    color: var(--text-color);
    position: relative;
    display: inline-block;
    padding-bottom: 10px;
}

.main-content h1::after,
.main-content h1.main-title::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: -2px;
    width: 100px;
    height: 3px;
    background-color: var(--primary-color);
}

.recette-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    margin-bottom: 20px;
}

.recette-temps, .recette-difficulte, .recette-nombre-personnes, .recette-note {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 0.95rem;
    color: var(--text-color-secondary);
}

.recette-note {
    margin-left: auto;
}

.recette-note .star {
    color: #FFD700;
    font-size: 1.2rem;
}

/* ======================================
 * CONTAINER D'IMAGES ET INFOS
 * ====================================== */
#ingredient-image-container {
    position: relative;
    border-radius: 10px;
    box-shadow: 0 0px 20px rgba(0, 0, 0, 0.1);
    overflow: hidden;
}

.recette-top-info-container {
    z-index: 15; /* Z-index supérieur pour être au-dessus de tous les éléments du swiper */
    background-color: white;
}

.dark-mode .recette-top-info-container {
    z-index: 15; /* Z-index supérieur pour être au-dessus de tous les éléments du swiper */
    background-color: var(--card-bg);
}

/* ======================================
 * BLOC INFOS SUR IMAGE
 * ====================================== */
.recette-top-info {
    width: 99.9%;
    display: flex;
    align-items: center;
    justify-content: space-around;
    gap: 30px;
    padding: 0px;
    background-color: #3a4142; /* Fond sombre par défaut */
    border-radius: 0 0 10px 10px; /* Coins arrondis en bas seulement */
    border: 1px solid rgba(0, 0, 0, 0.05);
}

.recette-top-info-item {
    display: flex;
    flex-direction: column; /* Icônes au-dessus du texte */
    align-items: center;
    text-align: center;
    gap: 10px;
    flex: 1;
    position: relative;
}

/* Lignes séparatrices entre les éléments - style plus fin et subtil */
.recette-top-info-item:not(:last-child)::after {
    content: '';
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    height: 40%;
    width: 1px;
    background-color: rgba(255, 255, 255, 0.1); /* Séparateur clair sur fond sombre */
}

.recette-top-info-item svg {
    flex-shrink: 0;
    width: 36px !important; /* Taille ajustée des icônes */
    height: 36px !important;
}

/* Couleurs des icônes par défaut - Utilisation des classes spécifiques */
.recette-temps svg,
.recette-temps svg path {
    fill: #ff6b6b !important;
}

.recette-cout svg {
    stroke: #ff6b6b !important;
    fill: none !important;
}
.recette-cout svg path {
    stroke: #ff6b6b !important;
    fill: none !important;
}

.recette-region svg,
.recette-region svg path {
    fill: #ff6b6b !important;
}


.recette-difficulte svg .cls-1 {
    fill: none !important;
}

.recette-top-info-item span {
    font-size: 0.95rem; /* Taille réduite comme demandé */
    font-weight: 600; /* Gras mais pas trop */
    white-space: nowrap;
    color: #ffffff; /* Texte blanc par défaut */
}

/* ======================================
 * TAGS ET COÛT
 * ====================================== */
.recette-tags {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.recipe-tag {
    padding: 4px 10px;
    border-radius: 15px;
    font-size: 0.75rem;
    color: white;
}

.recipe-tag.sans-gluten {
    background-color: #FF6B6B;
}

.recipe-tag.rapide {
    background-color: #4CAF50;
}

.recipe-tag.de-saison {
    background-color: #FFC107;
    color: #333;
}

.recette-cout {
    display: flex;
    justify-content: space-between;
    align-items: center;
    background-color: var(--bg-color-secondary);
    padding: 15px 20px;
    border-radius: var(--border-radius);
}

.recette-cout-label {
    font-weight: 600;
    color: var(--text-color);
}

.recette-cout-valeur {
    font-weight: 700;
    font-size: 1.1rem;
    color: #4CAF50;
}

/* ======================================
 * STYLES SWIPER (CAROUSEL D'IMAGES)
 * ====================================== */

/* Style pour le compteur de slides - masqué */
.swiper-counter {
    display: none; /* Masquer le compteur d'images */
}

/* ======================================
 * HAUTEUR STANDARDISÉE POUR TOUS LES CONTENEURS
 * Hauteur fixée à 510px pour un bon compromis visuel
 * Corrige le problème où les images ont des hauteurs différentes
 * selon qu'il y a une ou plusieurs images principales
 * ====================================== */
.ingredient-swiper-container,
.ingredient-swiper-container.has-multiple-slides,
.ingredient-swiper-container.multiple-slides-fix,
.ingredient-swiper-container.swiper-single-slide {
    position: relative;
    border-radius: 8px 8px 0 0;
    overflow: hidden !important;
    background-color: white;
    width: 100%;
    max-width: 100%;
    height: 510px !important; /* Hauteur unique standardisée */
    max-height: 510px !important;
    /* Optimisations pour la performance */
    transform: translateZ(0);
    backface-visibility: hidden;
    perspective: 1000px;
}

/* S'assurer que le wrapper et les slides suivent la hauteur */
.ingredient-swiper-container .swiper-wrapper,
.ingredient-swiper-container .swiper-slide {
    height: 100% !important;
    max-height: 510px !important;
}

/* Les images doivent remplir leur conteneur */
.ingredient-swiper-container .swiper-slide img {
    width: 100%;
    height: 100%;
    object-fit: contain; 
    object-position: center center; /* Centrer l'image */
    display: block;
    margin: 0 auto;
}

/* Style spécifique pour multi-slides */
.ingredient-swiper-container.has-multiple-slides {
    position: relative;
}

.ingredient-swiper-container.has-multiple-slides .swiper-pagination {
    bottom: 25px !important; /* Position cohérente */
}

/* S'assurer que le container n'affecte pas le positionnement de recette-top-info */
.ingredient-swiper-container + .recette-top-info-container {
    position: relative;
    z-index: 15; /* Au-dessus du swiper */
}

/* Transition douce lors du changement d'image */
.ingredient-swiper-container .swiper-wrapper {
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1) !important;
}

/* Styles spécifiques pour le cas d'une seule image */
.swiper-single-slide .swiper-wrapper {
    transform: none !important;
    transition: none !important;
}

.swiper-single-slide .swiper-slide {
    width: 100% !important;
    margin-right: 0 !important;
}

/* S'assurer que le cœur reste toujours visible, même avec une seule image */
.swiper-single-slide .swiper-info-container {
    display: none !important; /* Masquer complètement pour éviter le décalage */
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
}

.swiper-single-slide .recipe-heart-container {
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    position: absolute !important;
    top: 15px !important;
    right: 15px !important;
    z-index: 5 !important;
}

/* Masquer tous les éléments de navigation dans le cas d'une seule image */
.swiper-single-slide .swiper-pagination,
.swiper-single-slide .swiper-button-next,
.swiper-single-slide .swiper-button-prev,
.swiper-single-slide .swiper-pagination-progressbar,
.swiper-single-slide .swiper-counter {
    display: none !important;
}

.recette-swiper {
    width: 100%;
    max-width: 100%;
    height: 480px;
    border-radius: 8px 8px 0 0;
    overflow: hidden;
}

.swiper-wrapper {
    width: 100%;
    height: 100%;
    transition-timing-function: ease-out !important;
    align-items: stretch !important;
    display: flex !important;
}

.swiper-slide {
    position: relative;
    width: 100% !important;
    max-width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;
    background-color: white;
    cursor: grab;
    touch-action: pan-y !important;
    user-select: none;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    /* Empêcher que le slide lui-même détecte les événements de souris quand ils se produisent sur le cœur */
    isolation: isolate; /* Créer un contexte d'empilement isolé */
}

.swiper-slide:active {
    cursor: grabbing;
}

/* Style pour visualiser le swipe en cours */
.swiper-touch-active .swiper-wrapper {
    transition-timing-function: linear !important;
}

/* Indicateurs de swipe latéral */
.recette-swiper:hover .swipe-indicators {
    opacity: 1;
}

.swipe-indicators {
    position: absolute;
    top: 50%;
    width: 100%;
    display: flex;
    justify-content: space-between;
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.3s ease;
    z-index: 1;
}

.swipe-indicator {
    width: 40px;
    height: 40px;
    background-color: rgba(50, 50, 50, 0.6);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0.6;
    margin: 0 15px;
}

.swipe-indicator.left {
    animation: pulse-left 2s infinite;
}

.swipe-indicator.right {
    animation: pulse-right 2s infinite;
}

@keyframes pulse-left {
    0% { transform: translateY(-50%) translateX(0); }
    50% { transform: translateY(-50%) translateX(-5px); }
    100% { transform: translateY(-50%) translateX(0); }
}

@keyframes pulse-right {
    0% { transform: translateY(-50%) translateX(0); }
    50% { transform: translateY(-50%) translateX(5px); }
    100% { transform: translateY(-50%) translateX(0); }
}

.swiper-slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.5s ease;
    max-width: 100%;
    -webkit-user-drag: none; /* Empêcher le comportement de drag par défaut */
    user-select: none; /* Empêcher la sélection de l'image */
    pointer-events: auto; /* On autorise les interactions avec l'image, mais pas au-dessus du cœur */
}

/* Fix pour les problèmes de redimensionnement du Swiper */
.swiper-slide-active, 
.swiper-slide-next, 
.swiper-slide-prev,
.swiper-slide-duplicate {
    width: 100% !important;
    max-width: 100% !important;
    height: 100% !important;
}

.swiper-wrapper {
    display: flex;
    align-items: center;
}

/* Container pour les informations du slider */
.swiper-info-container {
    position: absolute;
    top: 15px;
    left: 15px;
    right: 15px;
    display: flex;
    justify-content: space-between;
    z-index: 20; /* Augmenter pour qu'il soit au-dessus des slides */
    height: 48px; /* Hauteur fixe pour éviter les décalages */
    align-items: center;
    pointer-events: none; /* Le conteneur lui-même n'intercepte pas les événements */
}

.swiper-counter, .recipe-heart {
    pointer-events: auto; /* Mais ses enfants oui */
}

/* Recette tags sur le swiper */
.recette-tags {
    display: flex;
    flex-direction: column;
    gap: 8px;
    z-index: 2;
}

/* Navigation */
.swiper-button-next,
.swiper-button-prev {
    background-color: rgba(0, 0, 0, 0.5);
    width: 48px;
    height: 48px;
    border-radius: 50%;
    color: #333;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 3px 6px rgba(0, 0, 0, 0.1);
    transition: all 0.3s ease;
    position: absolute; /* S'assurer que les boutons sont en position absolue */
    top: 50%; /* Centrer verticalement */
    transform: translateY(-50%); /* Ajustement pour centrage parfait */
    z-index: 10; /* S'assurer qu'ils sont au-dessus du contenu */
    margin-top: 0; /* Annuler les marges par défaut */
}

.swiper-button-next {
    right: 15px; /* Position à droite */
}

.swiper-button-prev {
    left: 15px; /* Position à gauche */
}

.swiper-button-next:hover,
.swiper-button-prev:hover {
    background-color: rgba(0, 0, 0, 0.7);
}

.swiper-button-next:after,
.swiper-button-prev:after {
    font-size: 18px !important;
    font-weight: bold;
    color: var(--text-color);
}

/* Pagination */
.swiper-pagination {
    position: absolute;
    bottom: 35px !important; /* Remonté de 15px (avant 20px) */
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 10px;
    z-index: 2;
    height: auto; /* Assurer que la hauteur s'adapte au contenu */
    left: 0; /* Assurer qu'elle est alignée à gauche */
    right: 0; /* Assurer qu'elle est alignée à droite aussi */
    margin: 0 auto; /* Centre la pagination horizontalement */
    text-align: center; /* Centre le texte à l'intérieur */
    transform: translateX(0); /* Annule toute transformation qui pourrait décaler la pagination */
    pointer-events: none; /* Éviter les problèmes d'interaction avec les autres éléments */
}

.swiper-pagination-bullet {
    width: 16px !important;
    height: 16px !important;
    border-radius: 50% !important;
    background-color: rgba(0, 0, 0, 0.5) !important;
    opacity: 1 !important;
    cursor: pointer;
    position: relative;
    overflow: hidden;
    transition: all 0.3s ease;
    margin: 0 5px !important;
    pointer-events: auto; /* Réactiver les interactions pour les bullets */
}

.swiper-pagination-bullet:hover {
    opacity: 0.9 !important;
}

.swiper-pagination-bullet-active {
    background-color: var(--primary-color) !important;
    opacity: 1 !important;
    width: 16px !important;
}

.pagination-progress {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 0;
    background-color: var(--primary-color, #f45a5a);
    transition: width 6s linear;
}

.swiper-pagination-bullet-active .pagination-progress {
    width: 100%;
}

/* Image Info */
.swiper-slide-info {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 20px;
    background: linear-gradient(to top, rgba(0,0,0,0.7), transparent);
    color: white;
    opacity: 0;
    transition: all 0.3s ease;
    pointer-events: none;
}

.swiper-slide:hover .swiper-slide-info {
    opacity: 1;
}

.swiper-slide-title {
    font-size: 1.2rem;
    font-weight: 600;
    margin-bottom: 5px;
}

.swiper-slide-caption {
    font-size: 0.9rem;
    opacity: 0.9;
}

/* Styles pour un seul slide */
.recette-swiper:not(.swiper-initialized) {
    overflow: hidden;
    border-radius: var(--border-radius);
}

.recette-swiper:not(.swiper-initialized) .swiper-wrapper {
    display: block;
}

.recette-swiper:not(.swiper-initialized) .swiper-slide {
    display: block;
    width: 100%;
    height: 100%;
}

/* Support de l'effet slide */
.swiper-slide-shadow-left,
.swiper-slide-shadow-right {
    background-image: none !important; /* Supprimer les ombres par défaut */
}

/* Correction spécifique pour le bug d'affichage */
.swiper-container, .swiper {
    overflow: hidden !important;
    width: 100% !important;
    max-width: 100% !important;
}

.swiper-slide-duplicate {
    width: 100% !important;
    max-width: 100% !important;
}

/* Fix pour les problèmes de largeur excessive */
.swiper-wrapper {
    width: auto !important; /* Permet à la largeur de s'ajuster naturellement */
    max-width: none !important; /* Permet au wrapper de dépasser la largeur du conteneur pour le défilement */
}

/* Correction de l'affichage lors du swipe */
.swiper-slide-active {
    z-index: 2; /* S'assurer que le slide actif est au-dessus des autres */
}

/* Transition fluide pour l'effet slide */
.swiper-container-horizontal > .swiper-wrapper {
    transition-property: transform !important;
}

/* S'assurer que la hauteur est conservée */
.swiper, .swiper-wrapper, .swiper-slide {
    height: 100% !important;
}

.swiper-info-container {
    position: absolute;
    top: 0;
    right: 15px;
    left: auto;
    display: flex;
    justify-content: flex-end; /* Alignement à droite uniquement */
    align-items: center;
    z-index: 10;
    width: 100%;
    padding-top: 15px; /* Augmentation du padding */
}

/* Masquer le container info et les éléments de navigation quand une seule image */
.swiper-single-slide .swiper-pagination,
.swiper-single-slide .swiper-button-next,
.swiper-single-slide .swiper-button-prev,
.swiper-single-slide .swiper-pagination-progressbar,
.swiper-single-slide .swiper-counter,
.swiper-single-slide .swiper-info-container {
    display: none !important;
    height: 0 !important; /* Force hauteur à 0 pour éviter tout espace */
    margin: 0 !important;
    padding: 0 !important;
    position: absolute !important;
    pointer-events: none !important;
    visibility: hidden !important; /* Garantir qu'il est vraiment invisible */
    opacity: 0 !important;
}

/* Par défaut, masquer tous les éléments de navigation */
.swiper-pagination,
.swiper-button-next,
.swiper-button-prev,
.swiper-pagination-progressbar,
.swiper-counter {
    display: none !important;
}

/* Afficher les éléments uniquement pour les conteneurs avec plusieurs slides */
.has-multiple-slides .swiper-pagination,
.has-multiple-slides .swiper-button-next, 
.has-multiple-slides .swiper-button-prev,
.has-multiple-slides .swiper-pagination-progressbar {
    display: flex !important; /* Utiliser flex au lieu de block pour les boutons */
}

.has-multiple-slides .swiper-counter {
    display: inline-flex !important;
}

/* Restaurer le style des flèches de navigation */
.has-multiple-slides .swiper-button-next,
.has-multiple-slides .swiper-button-prev {
    background-color: rgba(0, 0, 0, 0.5) !important;
    width: 48px !important;
    height: 48px !important;
    border-radius: 50% !important;
    color: #333 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-shadow: 0 3px 6px rgba(0, 0, 0, 0.1) !important;
    transition: all 0.3s ease !important;
    position: absolute !important; 
    top: 50% !important;
    transform: translateY(-50%) !important;
    z-index: 10 !important;
    margin-top: 0 !important;
}

.has-multiple-slides .swiper-button-next {
    right: 15px !important;
}

.has-multiple-slides .swiper-button-prev {
    left: 15px !important;
}

.has-multiple-slides .swiper-button-next:hover,
.has-multiple-slides .swiper-button-prev:hover {
    background-color: rgba(0, 0, 0, 0.7) !important;
}

.has-multiple-slides .swiper-button-next:after,
.has-multiple-slides .swiper-button-prev:after {
    font-size: 18px !important;
    font-weight: bold !important;
    color: white !important; /* Couleur plus visible pour le texte des flèches */
}

/* S'assurer que la pagination est bien positionnée et centrée */
.has-multiple-slides .swiper-pagination {
    position: absolute !important;
    bottom: 35px !important;
    width: 100% !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 10px !important;
    z-index: 2 !important;
    height: auto !important;
    left: 0 !important;
    right: 0 !important; /* Assurez-vous que right est aussi à 0 */
    margin: 0 auto !important; /* Centre la pagination horizontalement */
    text-align: center !important; /* Centre le texte à l'intérieur */
    transform: translateX(0) !important; /* Annule toute transformation qui pourrait décaler la pagination */
}

/* Cœur visible dans tous les cas */
.recipe-heart-container {
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
}

/* Correction spécifique pour le bug de pagination - Force un centrage horizontal absolu */

/* Assure que les points sont bien centrés horizontalement */
.swiper-pagination.swiper-pagination-clickable {
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    text-align: center !important;
    margin: 0 auto !important;
    transform: none !important;
}

/* Corrige les marges des points pour éviter les décalages */
.swiper-pagination-bullet {
    margin: 0 5px !important;
    display: inline-block !important;
}

/* Assure que le conteneur recette-swiper est correctement dimensionné */
.ingredient-swiper-container.has-multiple-slides {
    position: relative !important;
    width: 100% !important;
    overflow: hidden !important;
}

/* S'assure que le wrapper est à la bonne taille */
.ingredient-swiper-container .swiper-wrapper {
    width: 100% !important;
    display: flex !important;
}

/* Correction pour Swiper 8 */
.swiper-horizontal > .swiper-pagination-bullets,
.swiper-pagination-bullets.swiper-pagination-horizontal {
    width: 100% !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    text-align: center !important;
    margin: 0 auto !important;
    left: 0 !important;
    right: 0 !important;
    transform: none !important;
}

/* ======================================
 * STYLES DU BOUTON CŒUR RECETTE
 * ====================================== */

/* Animation du cœur */
@keyframes heartPulse {
    0% { transform: scale(1); }
    50% { transform: scale(1.3); }
    100% { transform: scale(1); }
}

/* Style du cœur */
.recipe-heart {
    width: 40px !important;
    height: 40px !important;
    background-color: transparent !important;
    border-radius: 50px !important;
    border: none !important;
    position: relative !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    z-index: 20 !important;
    max-width: none !important;
    max-height: none !important;
    transition: all 0.3s ease !important;
}

/* Style de l'icône SVG du cœur */
.recipe-heart svg {
    width: 26px !important;
    height: 26px !important;
    fill: transparent !important;
    stroke: white !important;
    stroke-width: 2.5 !important;
    transition: all 0.3s ease !important;
}

/* Style du cœur actif */
.recipe-heart.active svg {
    fill: #ff6b6b !important;
    stroke: #ff6b6b !important;
    animation: heartPulse 0.3s ease-in-out !important;
}

/* Style du conteneur du cœur et du compteur */
.recipe-heart-container {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    background-color: rgba(0, 0, 0, 0.5) !important;
    border-radius: 10px !important;
    padding: 4px 10px !important;
    position: absolute !important;
    top: 15px !important;
    right: 15px !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    z-index: 200 !important;
    min-width: 35px !important;
}

/* Style du compteur de likes */
.recipe-heart-counter {
    color: white !important;
    font-weight: 600 !important;
    font-size: 22px !important;
    margin-left: 0px !important;
    min-width: 20px !important;
    margin-right: 4px;
    text-align: center !important;
    display: none !important;
    visibility: hidden !important;
    transition: all 0.3s ease !important;
}

/* Afficher le compteur uniquement quand il a la classe .visible */
.recipe-heart-counter.visible {
    display: inline-block !important;
    visibility: visible !important;
}

/* Style pour cacher le compteur quand il est à 0 */
.recipe-heart-counter.zero,
.recipe-heart-counter:empty {
    display: none !important;
    visibility: hidden !important;
    width: 0 !important;
    margin-left: 0 !important;
}

/* Animation du compteur lors de la mise à jour */
.recipe-heart-counter.updated {
    transform: scale(1.3) !important;
    color: #ff6b6b !important;
}

/* Cas spécial : s'assurer que le cœur est visible même avec une seule image */
.swiper-single-slide .recipe-heart-container,
.has-multiple-slides .recipe-heart-container {
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    background-color: rgba(0, 0, 0, 0.5) !important;
    position: absolute !important;
    top: 15px !important;
    right: 15px !important;
    z-index: 200 !important;
}

/* ======================================
 * MODE SOMBRE
 * ====================================== */
.dark-mode .recette-top-info {
    background-color: var(--card-bg);
    border-radius: 0 0 8px 8px;
}

.dark-mode .recette-top-info-item span {
    color: var(--text-color);
}

.dark-mode .recette-top-info-item:not(:last-child)::after {
    background-color: rgba(255, 255, 255, 0.08);
}

/* Mode sombre pour le swiper */
@media (prefers-color-scheme: dark) {
    .swiper-button-next,
    .swiper-button-prev {
        background-color: rgba(0, 0, 0, 0.5);
    }
    
    .swiper-button-next:after,
    .swiper-button-prev:after {
        color: #fff;
    }
    
    .swiper-pagination-bullet {
        background-color: rgba(0, 0, 0, 0.5) !important;
    }
    
    .swiper-pagination-bullet-active {
        background-color: var(--primary-color) !important;
    }
    
    .pagination-progress {
        background-color: var(--primary-color, #f45a5a);
    }
    
    .swipe-indicator {
        background-color: rgba(50, 50, 50, 0.6);
    }
    
    /* Mode sombre pour le compteur */
    .swiper-counter {
        background-color: rgba(0, 0, 0, 0.5);
    }
}

/* ======================================
 * MEDIA QUERIES (RESPONSIVE)
 * ====================================== */



@media screen and (max-width: 1200px) {
    .ingredient-header h1 {
        font-size: 1.6rem;
    }
}

@media screen and (max-width: 1024px) {
    .ingredient-header h1 {
        font-size: 1.5rem;
    }
    
    /* Ajustement de la hauteur standardisée pour tablettes */
    .ingredient-swiper-container,
    .ingredient-swiper-container.has-multiple-slides,
    .ingredient-swiper-container.multiple-slides-fix,
    .ingredient-swiper-container.swiper-single-slide {
        height: 450px !important;
        max-height: 450px !important;
    }
    
    .ingredient-swiper-container .swiper-wrapper,
    .ingredient-swiper-container .swiper-slide {
        max-height: 450px !important;
    }
}

/* Tablettes et petits écrans */
@media screen and (max-width: 768px) {
    .ingredient-header h1 {
        font-size: 1.5rem;
    }
    
    .recette-meta {
        flex-wrap: wrap;
    }
    
    .recette-note {
        margin-left: 0;
    }
    
    .recette-top-info {
        padding: 15px;
    }
    
    .recette-top-info-item svg {
        width: 28px !important;
        height: 28px !important;
    }
    
    .recette-top-info-item span {
        font-size: 0.95rem;
    }
    
    #ingredient-image-container {
        margin-bottom: 0px;
    }
    
    /* Ajustement de la hauteur standardisée pour tablettes et petits écrans */
    .ingredient-swiper-container,
    .ingredient-swiper-container.has-multiple-slides,
    .ingredient-swiper-container.multiple-slides-fix,
    .ingredient-swiper-container.swiper-single-slide {
        height: 400px !important;
        max-height: 400px !important;
    }
    
    .ingredient-swiper-container .swiper-wrapper,
    .ingredient-swiper-container .swiper-slide {
        max-height: 400px !important;
    }
    
    /* Responsive pour le swiper (ancien code conservé pour compatibilité) */
    .recette-swiper {
        height: 350px;
    }
    
    /* MASQUER LES FLÈCHES DE NAVIGATION SWIPER POUR ÉCRANS < 768px */
    .swiper-button-next,
    .swiper-button-prev,
    .has-multiple-slides .swiper-button-next,
    .has-multiple-slides .swiper-button-prev {
        display: none !important;
        visibility: hidden !important;
    }
    
    .swiper-pagination-bullet {
        width: 14px !important;
        height: 14px !important;
    }
    
    .swiper-pagination-bullet-active {
        width: 14px !important;
    }
    
    /* Adaptation du compteur pour tablettes */
    .swiper-counter {
        font-size: 0.85rem;
        padding: 4px 10px;
    }
    
    .swiper-info-container {
        top: 12px;
        left: 12px;
        right: 12px;
        height: 42px; /* Hauteur réduite pour tablettes */
    }
    
    /* Responsive pour le cœur */
    .recipe-heart {
        width: 40px !important;
        height: 40px !important;
    }
    
    .recipe-heart svg {
        width: 22px !important;
        height: 22px !important;
    }
    
    .recipe-heart-counter {
        font-size: 20px !important;
    }
}

/* Téléphones et petites tablettes - 321px à 480px : garder le flexbox horizontal */
@media screen and (min-width: 321px) and (max-width: 480px) {
    /* Forcer la structure des éléments avec des classes doubles */
    .recette-temps.recette-top-info-item,
    .recette-cout.recette-top-info-item,
    .recette-region.recette-top-info-item,
    .recette-difficulte.recette-top-info-item {
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: center !important;
        text-align: center !important;
        gap: 8px !important;
        flex: 1 !important;
        padding: 10px 4px !important;
    }
    .ingredient-header h1 {
        margin-bottom: 20px;
        font-size: 1.4rem;
        line-height: 1.75rem;
    }
    
    .recette-meta {
        gap: 15px;
    }
    
    .recette-temps, .recette-difficulte, .recette-nombre-personnes {
        width: 100%;
    }
    
    .recette-note {
        position: absolute;
        top: 20px;
        right: 20px;
    }
    
    /* IMPORTANT : Garder le display flex horizontal comme sur les écrans plus grands */
    .recette-top-info {
        display: flex !important;
        flex-direction: row !important;
        align-items: center !important;
        justify-content: space-around !important;
        gap: 10px;
        padding: 12px 5px;
        border-radius: 0 0 6px 6px;
        background-color: #3a4142;
    }
    
    .recette-top-info-item,
    .recette-top-info .recette-top-info-item,
    .recette-top-info-container .recette-top-info-item {
        display: flex !important;
        flex-direction: column !important; /* Icône au-dessus du texte */
        align-items: center !important;
        justify-content: center !important;
        text-align: center !important;
        gap: 8px !important; /* Espace entre icône et texte */
        flex: 1 !important;
        padding: 10px 4px !important;
        min-height: auto !important;
        position: relative !important;
        background-color: transparent !important;
    }
    
    /* Conserver les séparateurs verticaux */
    .recette-top-info-item:not(:last-child)::after {
        content: '';
        position: absolute;
        right: 0;
        top: 50%;
        transform: translateY(-50%);
        height: 30%;
        width: 1px;
        background-color: rgba(255, 255, 255, 0.1);
    }
    
    .recette-top-info-item svg,
    .recette-top-info .recette-top-info-item svg,
    .recette-temps svg,
    .recette-cout svg,
    .recette-region svg,
    .recette-difficulte svg {
        width: 24px !important;
        height: 24px !important;
        margin: 0 !important;
        margin-bottom: 0 !important;
        flex-shrink: 0 !important;
        display: block !important; /* Force l'icône sur sa propre ligne */
        order: 1 !important; /* S'assurer que l'icône est en premier */
    }
    
    .recette-top-info-item span,
    .recette-top-info .recette-top-info-item span,
    .recette-temps span,
    .recette-cout span,
    .recette-region span,
    .recette-difficulte span {
        font-size: 0.8rem !important; /* Taille réduite de 0.9rem à 0.75rem */
        font-weight: 500 !important;
        line-height: 1.2 !important;
        color: #ffffff !important; /* Texte blanc */
        display: block !important; /* Force le texte sur sa propre ligne */
        text-align: center !important;
        white-space: nowrap !important; /* Empêcher le retour à la ligne du texte */
        margin: 0 !important;
        order: 2 !important; /* S'assurer que le texte est en second */
    }
    
    /* Appliquer les couleurs des icônes aussi sur mobile */
    
    #ingredient-image-container {
        margin-bottom: 20px;
        border-radius: 8px;
    }
    
    /* Ajustement de la hauteur standardisée pour smartphones (largeur moyenne) */
    .ingredient-swiper-container,
    .ingredient-swiper-container.has-multiple-slides,
    .ingredient-swiper-container.multiple-slides-fix,
    .ingredient-swiper-container.swiper-single-slide {
        height: 300px !important;
        max-height: 300px !important;
    }
    
    .ingredient-swiper-container .swiper-wrapper,
    .ingredient-swiper-container .swiper-slide {
        max-height: 300px !important;
    }
    
    /* Responsive pour le swiper (ancien code conservé pour compatibilité) */
    .recette-swiper {
        height: 280px;
    }
    
    .swiper-pagination {
        bottom: 25px !important; /* Remonté pour mobile également */
    }
    
    .swiper-pagination-bullet {
        width: 10px !important;
        height: 10px !important;
    }
    
    .swiper-info-container {
        top: 10px;
        left: 10px;
        right: 10px;
        height: 36px; /* Hauteur réduite pour mobile */
    }
    
    /* Adaptation du compteur pour mobile */
    .swiper-counter {
        font-size: 0.8rem;
        padding: 3px 8px;
        border-radius: 12px;
    }

    .recipe-heart-container {
        padding: 7px !important;
    }
    
    /* Responsive pour le cœur */
    .recipe-heart {
        width: 25px !important;
        height: 25px !important;
        margin: 0 3px;
    }
    
    .recipe-heart svg {
        width: 25px !important;
        height: 25px !important;
    }
    
    .recipe-heart-counter {
        font-size: 20px !important;
        margin-left: 0px !important;
        min-width: 20px !important;
        margin-right: 0px;
    }
}

/* Suite des styles pour 321px-480px */
@media screen and (min-width: 321px) and (max-width: 480px) {
    #ingredient-image-container {
        margin-bottom: 0px;
        border-radius: 8px;
    }
    
    /* Responsive pour le swiper */
    .recette-swiper {
        height: 280px;
    }
    
    .swiper-pagination {
        bottom: 25px !important;
    }
    
    .swiper-pagination-bullet {
        width: 10px !important;
        height: 10px !important;
    }
    
    .swiper-info-container {
        top: 10px;
        left: 10px;
        right: 10px;
        height: 36px;
    }
    
    /* Adaptation du compteur pour mobile */
    .swiper-counter {
        font-size: 0.8rem;
        padding: 3px 8px;
        border-radius: 12px;
    }

    .recipe-heart-container {
        padding: 7px !important;
    }
    
    /* Responsive pour le cœur */
    .recipe-heart {
        width: 25px !important;
        height: 25px !important;
        margin: 0 3px;
    }
    
    .recipe-heart svg {
        width: 25px !important;
        height: 25px !important;
    }
    
    .recipe-heart-counter {
        font-size: 20px !important;
        margin-left: 0px !important;
        min-width: 20px !important;
        margin-right: 0px;
    }
}

/* Écrans de 320px uniquement : affichage en grille */
@media screen and (max-width: 320px) {
    /* Forcer la structure des éléments avec des classes doubles */
    .recette-temps.recette-top-info-item,
    .recette-cout.recette-top-info-item,
    .recette-region.recette-top-info-item,
    .recette-difficulte.recette-top-info-item {
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: center !important;
        text-align: center !important;
        gap: 6px !important;
        padding: 12px 6px !important;
    }
    .ingredient-header h1 {
        margin-bottom: 20px;
        font-size: 1.25rem;
        line-height: 1.65rem;
    }
    
    .recette-meta {
        gap: 15px;
    }
    
    .recette-temps, .recette-difficulte, .recette-nombre-personnes {
        width: 100%;
    }
    
    .recette-note {
        position: absolute;
        top: 20px;
        right: 20px;
    }
    
    /* Affichage en grille UNIQUEMENT pour 320px et moins */
    .recette-top-info {
        display: grid !important;
        grid-template-columns: 1fr 1fr !important;
        grid-template-rows: 1fr 1fr !important;
        gap: 0 !important;
        padding: 0 !important;
        border-radius: 0 0 6px 6px;
        background-color: #3a4142;
    }
    
    .recette-top-info-item,
    .recette-top-info .recette-top-info-item,
    .recette-top-info-container .recette-top-info-item {
        width: 100% !important;
        display: flex !important;
        flex-direction: column !important; /* Icônes au-dessus du texte même en grille */
        justify-content: center !important;
        align-items: center !important;
        text-align: center !important;
        gap: 6px !important;
        padding: 12px 6px !important;
        min-height: 50px !important;
        position: relative !important;
        background-color: transparent !important;
    }
    
    /* Supprimer les séparateurs pour la vue en grille */
    .recette-top-info-item:not(:last-child)::after {
        display: none !important;
    }

    
    .recette-top-info-item svg,
    .recette-top-info .recette-top-info-item svg,
    .recette-temps svg,
    .recette-cout svg,
    .recette-region svg,
    .recette-difficulte svg {
        width: 20px !important;
        height: 20px !important;
        margin: 0 !important;
        margin-bottom: 0 !important;
        flex-shrink: 0 !important;
        display: block !important;
        order: 1 !important;
    }
    
    .recette-top-info-item span,
    .recette-top-info .recette-top-info-item span,
    .recette-temps span,
    .recette-cout span,
    .recette-region span,
    .recette-difficulte span {
        font-size: 0.7rem !important; /* Taille réduite pour petits écrans */
        font-weight: 500 !important;
        line-height: 1.2 !important;
        color: #ffffff !important;
        display: block !important;
        text-align: center !important;
        white-space: nowrap !important;
        margin: 0 !important;
        order: 2 !important;
    }
}

/* ======================================
 * GESTION DES MODES CLAIR/SOMBRE POUR MOBILE
 * ======================================== */

/* Mode clair - overrides pour 321px-480px */
@media screen and (min-width: 321px) and (max-width: 480px) {
    body:not(.dark-mode) .recette-top-info {
        background-color: #FFF; /* Fond gris clair au lieu de blanc pur */
    }
    
    body:not(.dark-mode) .recette-top-info-item {
        background-color: transparent;
    }
    
    body:not(.dark-mode) .recette-top-info-item span {
        color: #333 !important; /* Texte gris foncé pour le mode clair */
    }
    
    /* Séparateurs en mode clair */
    body:not(.dark-mode) .recette-top-info-item:not(:last-child)::after {
        background-color: rgba(0, 0, 0, 0.1); /* Séparateur plus visible */
    }
    
    /* Couleurs des icônes en mode clair - maintenir les couleurs originales */
    body:not(.dark-mode) .recette-temps svg,
    body:not(.dark-mode) .recette-temps svg path {
        fill: #ff6b6b !important;
    }
    
    body:not(.dark-mode) .recette-cout svg {
        stroke: #ff6b6b !important;
        fill: none !important;
    }
    body:not(.dark-mode) .recette-cout svg path {
        stroke: #ff6b6b !important;
        fill: none !important;
    }
    
    body:not(.dark-mode) .recette-region svg,
    body:not(.dark-mode) .recette-region svg path {
        fill: #ff6b6b !important;
    }
    
    body:not(.dark-mode) .recette-difficulte svg,
    body:not(.dark-mode) .recette-difficulte svg path,
    body:not(.dark-mode) .recette-difficulte svg rect:not(.cls-1) {
        fill: #4CAF50 !important;
    }
    body:not(.dark-mode) .recette-difficulte svg .cls-1 {
        fill: none !important;
    }
}

/* Mode sombre - ajustements pour 321px-480px */
@media screen and (min-width: 321px) and (max-width: 480px) {
    .dark-mode .recette-top-info {
        background-color: #3a4142;
    }
    
    .dark-mode .recette-top-info-item {
        background-color: transparent;
    }
    
    .dark-mode .recette-top-info-item span {
        color: #ffffff;
    }
    
    /* Séparateurs en mode sombre */
    .dark-mode .recette-top-info-item:not(:last-child)::after {
        background-color: rgba(255, 255, 255, 0.08);
    }
}

/* Mode clair - overrides pour 320px et moins */
@media screen and (max-width: 320px) {
    body:not(.dark-mode) .recette-top-info {
        background-color: #f5f5f5; /* Fond gris clair au lieu de blanc pur */
    }
    
    body:not(.dark-mode) .recette-top-info-item {
        background-color: transparent;
    }
    
    body:not(.dark-mode) .recette-top-info-item span {
        color: #333 !important; /* Texte gris foncé pour le mode clair */
    }
    
    /* Couleurs des icônes en mode clair - maintenir les couleurs originales */
    body:not(.dark-mode) .recette-temps svg,
    body:not(.dark-mode) .recette-temps svg path {
        fill: #ff6b6b !important;
    }
    
    body:not(.dark-mode) .recette-cout svg {
        stroke: #ff6b6b !important;
        fill: none !important;
    }
    body:not(.dark-mode) .recette-cout svg path {
        stroke: #ff6b6b !important;
        fill: none !important;
    }
    
    body:not(.dark-mode) .recette-region svg,
    body:not(.dark-mode) .recette-region svg path {
        fill: #ff6b6b !important;
    }
    
    body:not(.dark-mode) .recette-difficulte svg,
    body:not(.dark-mode) .recette-difficulte svg path,
    body:not(.dark-mode) .recette-difficulte svg rect:not(.cls-1) {
        fill: #4CAF50 !important;
    }
    body:not(.dark-mode) .recette-difficulte svg .cls-1 {
        fill: none !important;
    }
}

/* Mode sombre - ajustements pour 320px et moins */
@media screen and (max-width: 320px) {
    .dark-mode .recette-top-info {
        background-color: #3a4142;
    }
    
    .dark-mode .recette-top-info-item {
        background-color: transparent;
    }
    
    .dark-mode .recette-top-info-item span {
        color: #ffffff;
    }
}

/* ======================================
 * BLOC INFOS INGRÉDIENT (Prix, Type)
 * ====================================== */
.ingredient-top-info-container {
    z-index: 15;
    background-color: white;
}

.dark-mode .ingredient-top-info-container {
    z-index: 15;
    background-color: var(--card-bg);
}

.ingredient-top-info {
    width: 99.9%;
    display: flex;
    align-items: center;
    justify-content: space-around;
    gap: 30px;
    padding: 0px;
    background-color: white;
    border-radius: 0 0 10px 10px;
    border: 1px solid rgba(0, 0, 0, 0.05);
}

.ingredient-top-info-item {
    padding: 15px 5px;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 10px;
    flex: 1;
    position: relative;
}

/* Lignes séparatrices entre les éléments */
.ingredient-top-info-item:not(:last-child)::after {
    content: '';
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    height: 40%;
    width: 1px;
    background-color: rgba(255, 255, 255, 0.1);
}

.ingredient-top-info-item svg {
    flex-shrink: 0;
    width: 36px !important;
    height: 36px !important;
}

/* Couleurs des icônes */
.ingredient-prix svg {
    stroke: #ff6b6b !important;
    fill: none !important;
}

.ingredient-type svg,
.ingredient-type svg path {
    fill: #ff6b6b !important;
}


/* Dark mode */
.dark-mode .ingredient-top-info {
    background-color: var(--card-bg);
    border-radius: 0 0 8px 8px;
}

.dark-mode .ingredient-top-info-item span {
    color: var(--text-color);
}

/* Responsive */
@media (max-width: 768px) {
    .ingredient-top-info {
        gap: 15px;
        padding: 0px;
    }

    .ingredient-top-info-item {
        gap: 5px;
    }

    .ingredient-top-info-item svg {
        width: 28px !important;
        height: 28px !important;
    }

    .ingredient-top-info-item span {
        font-size: 0.85rem;
    }
}

@media (max-width: 480px) {
    .ingredient-top-info-item span {
        font-size: 0.8rem;
        font-weight: 500;
    }

    .ingredient-top-info-item svg {
        width: 24px !important;
        height: 24px !important;
    }
}

.ingredient-top-info-item span {
    font-size: 0.95rem;
    white-space: nowrap;
    font-weight: 600;
    color: var(--text-color);
}

/* Dark mode - texte blanc */
.dark-mode .ingredient-top-info-item span {
    color: #ffffff;
}

/* Style pour swiper avec une seule image */
.swiper-single-slide .swiper-slide {
    background: white;
}

