/* ============================================
 * PAGE-USTENSILE-HEADER.CSS
 * Styles pour le header et le swiper de la page ustensile
 * Adapté depuis page-ingredient-header.css
 * ============================================ */

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

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

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

/* HAUTEUR STANDARDISÉE POUR TOUS LES CONTENEURS */
.ustensile-swiper-container,
.ustensile-swiper-container.has-multiple-slides,
.ustensile-swiper-container.multiple-slides-fix,
.ustensile-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;
    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 */
.ustensile-swiper-container .swiper-wrapper,
.ustensile-swiper-container .swiper-slide {
    height: 100% !important;
    max-height: 510px !important;
}

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

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

.ustensile-swiper-container.has-multiple-slides .swiper-pagination {
    bottom: 25px !important;
}

/* Transition douce lors du changement d'image */
.ustensile-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;
}

/* 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 {
    display: none !important;
}

/* ======================================
 * PAGINATION - POSITION CRITIQUE
 * ====================================== */

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

/* Afficher les éléments uniquement pour les conteneurs avec plusieurs slides */
.ustensile-swiper-container.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: 10 !important;
    height: auto !important;
    left: 0 !important;
    right: 0 !important;
    margin: 0 auto !important;
    text-align: center !important;
    transform: translateX(0) !important;
    pointer-events: none !important;
}

.ustensile-swiper-container.has-multiple-slides .swiper-button-next,
.ustensile-swiper-container.has-multiple-slides .swiper-button-prev {
    display: flex !important;
}

/* Bullets de pagination */
.ustensile-swiper-container .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 !important;
}

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

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

/* Correction pour Swiper 8 */
.ustensile-swiper-container .swiper-horizontal > .swiper-pagination-bullets,
.ustensile-swiper-container .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;
}

/* ======================================
 * NAVIGATION (FLÈCHES)
 * ====================================== */

.ustensile-swiper-container.has-multiple-slides .swiper-button-next,
.ustensile-swiper-container.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;
}

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

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

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

.ustensile-swiper-container.has-multiple-slides .swiper-button-next:after,
.ustensile-swiper-container.has-multiple-slides .swiper-button-prev:after {
    font-size: 18px !important;
    font-weight: bold !important;
    color: white !important;
}

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

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

@media screen and (max-width: 1024px) {
    .ustensile-header h1 {
        font-size: 1.5rem;
    }

    /* Ajustement de la hauteur standardisée pour tablettes */
    .ustensile-swiper-container,
    .ustensile-swiper-container.has-multiple-slides,
    .ustensile-swiper-container.multiple-slides-fix,
    .ustensile-swiper-container.swiper-single-slide {
        height: 450px !important;
        max-height: 450px !important;
    }

    .ustensile-swiper-container .swiper-wrapper,
    .ustensile-swiper-container .swiper-slide {
        max-height: 450px !important;
    }
}

/* Tablettes et petits écrans */
@media screen and (max-width: 768px) {
    .ustensile-header h1 {
        font-size: 1.5rem;
    }

    #ustensile-image-container {
        margin-bottom: 0px;
    }

    /* Ajustement de la hauteur standardisée pour tablettes et petits écrans */
    .ustensile-swiper-container,
    .ustensile-swiper-container.has-multiple-slides,
    .ustensile-swiper-container.multiple-slides-fix,
    .ustensile-swiper-container.swiper-single-slide {
        height: 400px !important;
        max-height: 400px !important;
    }

    .ustensile-swiper-container .swiper-wrapper,
    .ustensile-swiper-container .swiper-slide {
        max-height: 400px !important;
    }

    /* MASQUER LES FLÈCHES DE NAVIGATION SWIPER POUR ÉCRANS < 768px */
    .ustensile-swiper-container .swiper-button-next,
    .ustensile-swiper-container .swiper-button-prev,
    .ustensile-swiper-container.has-multiple-slides .swiper-button-next,
    .ustensile-swiper-container.has-multiple-slides .swiper-button-prev {
        display: none !important;
        visibility: hidden !important;
    }

    .ustensile-swiper-container .swiper-pagination-bullet {
        width: 14px !important;
        height: 14px !important;
    }

    .ustensile-swiper-container .swiper-pagination-bullet-active {
        width: 14px !important;
    }
}

/* Téléphones et petites tablettes */
@media screen and (min-width: 321px) and (max-width: 480px) {
    .ustensile-header h1 {
        margin-bottom: 20px;
        font-size: 1.4rem;
        line-height: 1.75rem;
    }

    #ustensile-image-container {
        margin-bottom: 0px;
        border-radius: 8px;
    }

    /* Ajustement de la hauteur standardisée pour smartphones (largeur moyenne) */
    .ustensile-swiper-container,
    .ustensile-swiper-container.has-multiple-slides,
    .ustensile-swiper-container.multiple-slides-fix,
    .ustensile-swiper-container.swiper-single-slide {
        height: 300px !important;
        max-height: 300px !important;
    }

    .ustensile-swiper-container .swiper-wrapper,
    .ustensile-swiper-container .swiper-slide {
        max-height: 300px !important;
    }

    .ustensile-swiper-container .swiper-pagination {
        bottom: 25px !important;
    }

    .ustensile-swiper-container .swiper-pagination-bullet {
        width: 10px !important;
        height: 10px !important;
    }
}

/* Écrans de 320px et moins */
@media screen and (max-width: 320px) {
    .ustensile-header h1 {
        margin-bottom: 20px;
        font-size: 1.25rem;
        line-height: 1.65rem;
    }
}
