/* ============================================================
   PAGE PRODUIT — LLM Atelier Créations
   ============================================================ */

/* ---- Fil d'Ariane ---------------------------------------- */

.llm-product-breadcrumb {
    background: var(--llm-gris-clair);
    padding: 14px 0;
    border-bottom: 1px solid var(--llm-gris-moyen);
}

.llm-product-breadcrumb .woocommerce-breadcrumb {
    font-size: 0.75rem !important;
    color: var(--llm-gris-texte) !important;
    letter-spacing: 0.04em;
}

.llm-product-breadcrumb .woocommerce-breadcrumb a {
    color: var(--llm-gris-texte) !important;
}

.llm-product-breadcrumb .woocommerce-breadcrumb a:hover {
    color: var(--llm-or) !important;
}

/* ---- Layout principal ------------------------------------ */

.llm-product-main {
    padding: 56px 0 72px;
    background: var(--llm-blanc);
}

.llm-product-layout {
    display: grid;
    grid-template-columns: 55% 1fr;
    gap: 64px;
    align-items: start;
}

/* ============================================================
   GALERIE PHOTOS
   ============================================================ */

.llm-product-gallery-col {
    position: sticky;
    top: 100px;
}

/* Image principale */
.woocommerce-product-gallery {
    position: relative !important;
    float: none !important;
    width: 100% !important;
    margin: 0 !important;
}

.woocommerce-product-gallery__wrapper {
    border-radius: var(--rayon-carte);
    overflow: hidden;
    box-shadow: var(--ombre-douce);
}

.woocommerce-product-gallery__image img {
    width: 100% !important;
    height: auto !important;
    display: block !important;
    aspect-ratio: 3/4;
    object-fit: cover;
}

/* Bouton zoom */
.woocommerce-product-gallery__trigger {
    position: absolute !important;
    top: 16px !important;
    right: 16px !important;
    z-index: 10 !important;
    background: rgba(255,255,255,0.9) !important;
    border-radius: 50% !important;
    width: 40px !important;
    height: 40px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: var(--transition) !important;
    box-shadow: var(--ombre-douce) !important;
}

.woocommerce-product-gallery__trigger:hover {
    background: var(--llm-or) !important;
}

.woocommerce-product-gallery__trigger img {
    width: 18px !important;
    height: 18px !important;
}

/* Vignettes */
.woocommerce-product-gallery__wrapper ~ .flex-control-nav {
    margin-top: 12px !important;
}

.flex-control-thumbs {
    display: flex !important;
    gap: 8px !important;
    flex-wrap: wrap !important;
    margin-top: 12px !important;
    padding: 0 !important;
    list-style: none !important;
}

.flex-control-thumbs li {
    width: calc(20% - 7px) !important;
    margin: 0 !important;
}

.flex-control-thumbs li img {
    border-radius: 4px !important;
    border: 2px solid transparent !important;
    cursor: pointer !important;
    transition: var(--transition) !important;
    aspect-ratio: 3/4;
    object-fit: cover;
    width: 100% !important;
}

.flex-control-thumbs li img:hover {
    border-color: var(--llm-gris-moyen) !important;
}

.flex-control-thumbs li img.flex-active {
    border-color: var(--llm-or) !important;
}

/* Badges sur l'image */
.woocommerce-product-gallery .onsale {
    position: absolute !important;
    top: 16px !important;
    left: 16px !important;
    z-index: 10 !important;
    background: var(--llm-or) !important;
    color: var(--llm-blanc) !important;
    font-family: var(--font-corps) !important;
    font-size: 0.65rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.12em !important;
    text-transform: uppercase !important;
    padding: 5px 12px !important;
    border-radius: 2px !important;
    margin: 0 !important;
}

/* ============================================================
   INFOS PRODUIT (colonne droite)
   ============================================================ */

.llm-product-info-col {
    padding-top: 8px;
}

/* Catégorie */
.llm-product-cats {
    margin-bottom: 12px;
}

.llm-product-cat {
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--llm-or);
    font-family: var(--font-corps);
}

/* Titre */
.llm-product-title {
    font-family: var(--font-titre) !important;
    font-style: italic !important;
    font-weight: 400 !important;
    font-size: clamp(1.8rem, 3vw, 2.4rem) !important;
    line-height: 1.15 !important;
    color: var(--llm-noir) !important;
    margin: 0 0 16px !important;
}

/* Prix */
.llm-product-price .price {
    font-family: var(--font-corps) !important;
    font-size: 1.7rem !important;
    font-weight: 600 !important;
    color: var(--llm-noir) !important;
    display: block !important;
    margin-bottom: 20px !important;
    line-height: 1 !important;
}

.llm-product-price .price ins {
    text-decoration: none !important;
    color: var(--llm-noir) !important;
}

.llm-product-price .price del {
    font-size: 1.1rem !important;
    color: var(--llm-gris-texte) !important;
    font-weight: 400 !important;
    margin-right: 10px !important;
}

/* Variation de prix (min-max) */
.llm-product-price .price .woocommerce-Price-amount {
    font-size: 1.7rem !important;
}

/* ---- Notice sur commande --------------------------------- */

.llm-commande-notice {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    background: linear-gradient(135deg, #fff8e8, #fdf3d5);
    border: 1px solid var(--llm-or-clair);
    border-left: 3px solid var(--llm-or);
    border-radius: var(--rayon);
    padding: 16px 18px;
    margin-bottom: 20px;
    font-size: 0.85rem;
    color: var(--llm-noir);
    line-height: 1.5;
}

.llm-commande-notice__icone {
    color: var(--llm-or);
    font-size: 1rem;
    flex-shrink: 0;
    margin-top: 2px;
}

.llm-commande-notice strong {
    font-weight: 700;
    display: block;
    margin-bottom: 2px;
}

.llm-commande-notice span {
    color: var(--llm-gris-texte);
}

/* ---- Description courte --------------------------------- */

.llm-product-excerpt {
    border-top: 1px solid var(--llm-gris-moyen);
    border-bottom: 1px solid var(--llm-gris-moyen);
    padding: 20px 0;
    margin-bottom: 20px;
}

.llm-product-excerpt p {
    font-size: 0.9rem;
    color: var(--llm-gris-texte);
    line-height: 1.85;
    margin: 0;
}

/* ---- Détails matériaux ---------------------------------- */

.llm-product-meta-details {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-bottom: 24px;
}

.llm-meta-detail {
    font-size: 0.82rem;
    color: var(--llm-gris-texte);
    display: flex;
    align-items: baseline;
    gap: 8px;
}

.llm-meta-label {
    font-weight: 700;
    font-size: 0.7rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--llm-noir);
    white-space: nowrap;
}

/* ============================================================
   FORMULAIRE VARIATIONS + AJOUT PANIER
   ============================================================ */

.llm-product-form {
    margin-bottom: 28px;
}

/* Label variations */
.variations_form .variations .label label,
.woocommerce div.product form.cart table.variations .label label {
    font-family: var(--font-corps) !important;
    font-size: 0.72rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.12em !important;
    text-transform: uppercase !important;
    color: var(--llm-noir) !important;
    margin-bottom: 0 !important;
}

.variations_form .variations,
.woocommerce div.product form.cart table.variations {
    margin-bottom: 20px !important;
    width: 100% !important;
    border-collapse: separate !important;
    border-spacing: 0 12px !important;
}

.variations_form .variations td,
.variations_form .variations th {
    padding: 0 !important;
    vertical-align: middle !important;
    border: none !important;
}

.variations_form .variations .label {
    padding-right: 16px !important;
    width: 90px !important;
}

/* Select variations */
.variations_form .variations select {
    width: 100% !important;
    border: 1.5px solid var(--llm-gris-moyen) !important;
    border-radius: var(--rayon) !important;
    padding: 12px 40px 12px 14px !important;
    font-family: var(--font-corps) !important;
    font-size: 0.88rem !important;
    color: var(--llm-noir) !important;
    background-color: var(--llm-blanc) !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%231A1A1A' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: right 14px center !important;
    appearance: none !important;
    -webkit-appearance: none !important;
    cursor: pointer !important;
    transition: var(--transition) !important;
}

.variations_form .variations select:focus {
    border-color: var(--llm-or) !important;
    outline: none !important;
    box-shadow: 0 0 0 3px rgba(201,168,76,0.12) !important;
}

/* Lien "Effacer" les variations */
.reset_variations {
    font-size: 0.72rem !important;
    color: var(--llm-gris-texte) !important;
    text-decoration: underline !important;
    text-underline-offset: 3px !important;
    margin-top: 4px !important;
    display: inline-block !important;
}

/* Description de la variation sélectionnée */
.woocommerce-variation-description {
    background: var(--llm-gris-clair);
    border-radius: var(--rayon);
    padding: 12px 14px;
    font-size: 0.82rem;
    color: var(--llm-gris-texte);
    margin-bottom: 16px;
}

/* Prix de la variation */
.woocommerce-variation-price .price {
    font-size: 1.5rem !important;
    font-weight: 600 !important;
    color: var(--llm-noir) !important;
    margin-bottom: 16px !important;
    display: block !important;
}

/* Zone quantité + bouton */
.woocommerce div.product form.cart {
    display: flex !important;
    align-items: stretch !important;
    gap: 12px !important;
    margin-top: 8px !important;
}

.woocommerce div.product form.cart .quantity {
    display: flex !important;
    align-items: center !important;
    border: 1.5px solid var(--llm-gris-moyen) !important;
    border-radius: var(--rayon) !important;
    overflow: hidden !important;
    background: var(--llm-blanc) !important;
    height: 54px !important;
}

/* Boutons +/- quantité */
.woocommerce div.product form.cart .quantity .minus,
.woocommerce div.product form.cart .quantity .plus {
    width: 38px !important;
    height: 54px !important;
    background: transparent !important;
    border: none !important;
    font-size: 1.1rem !important;
    color: var(--llm-noir) !important;
    cursor: pointer !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: var(--transition) !important;
    padding: 0 !important;
    line-height: 1 !important;
}

.woocommerce div.product form.cart .quantity .minus:hover,
.woocommerce div.product form.cart .quantity .plus:hover {
    background: var(--llm-gris-clair) !important;
    color: var(--llm-or) !important;
}

.woocommerce div.product form.cart .quantity input.qty {
    width: 52px !important;
    height: 54px !important;
    border: none !important;
    border-left: 1px solid var(--llm-gris-moyen) !important;
    border-right: 1px solid var(--llm-gris-moyen) !important;
    text-align: center !important;
    font-family: var(--font-corps) !important;
    font-size: 1rem !important;
    font-weight: 600 !important;
    color: var(--llm-noir) !important;
    padding: 0 !important;
    background: transparent !important;
    -moz-appearance: textfield !important;
}

.woocommerce div.product form.cart .quantity input.qty::-webkit-inner-spin-button,
.woocommerce div.product form.cart .quantity input.qty::-webkit-outer-spin-button {
    -webkit-appearance: none !important;
    margin: 0 !important;
}

/* Bouton "Ajouter au panier" */
.woocommerce div.product form.cart .single_add_to_cart_button {
    flex: 1 !important;
    height: 54px !important;
    background-color: var(--llm-or) !important;
    color: var(--llm-blanc) !important;
    border: none !important;
    border-radius: var(--rayon) !important;
    font-family: var(--font-corps) !important;
    font-size: 0.78rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.16em !important;
    text-transform: uppercase !important;
    padding: 0 28px !important;
    cursor: pointer !important;
    transition: var(--transition) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 10px !important;
}

.woocommerce div.product form.cart .single_add_to_cart_button:hover {
    background-color: var(--llm-or-fonce) !important;
    transform: translateY(-1px) !important;
    box-shadow: var(--ombre-or) !important;
}

/* Bouton désactivé (variation non sélectionnée) */
.woocommerce div.product form.cart .single_add_to_cart_button.disabled,
.woocommerce div.product form.cart .single_add_to_cart_button:disabled {
    background-color: var(--llm-gris-moyen) !important;
    color: var(--llm-gris-texte) !important;
    cursor: not-allowed !important;
    transform: none !important;
    box-shadow: none !important;
}

/* ---- Réassurance ----------------------------------------- */

.llm-reassurance {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px 24px;
    margin: 24px 0;
    padding: 20px 0;
    border-top: 1px solid var(--llm-gris-moyen);
    border-bottom: 1px solid var(--llm-gris-moyen);
}

.llm-reassurance__item {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 0.78rem;
    color: var(--llm-gris-texte);
    font-family: var(--font-corps);
}

.llm-reassurance__icone {
    color: var(--llm-or);
    font-size: 0.7rem;
    flex-shrink: 0;
}

/* ---- Partage --------------------------------------------- */

.llm-product-share {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 20px;
}

.llm-share-label {
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--llm-gris-texte);
}

.llm-share-btn {
    width: 34px;
    height: 34px;
    border: 1px solid var(--llm-gris-moyen);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--llm-gris-texte) !important;
    transition: var(--transition);
}

.llm-share-btn:hover {
    border-color: var(--llm-or);
    color: var(--llm-or) !important;
    background: rgba(201,168,76,0.06);
}

/* ---- SKU / méta ----------------------------------------- */

.llm-product-sku .product_meta {
    font-size: 0.75rem !important;
    color: var(--llm-gris-texte) !important;
    margin: 0 !important;
}

.llm-product-sku .product_meta span {
    font-weight: 600;
    color: var(--llm-noir);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-size: 0.68rem;
}

/* ============================================================
   ONGLETS DESCRIPTION / AVIS
   ============================================================ */

.llm-product-tabs-section {
    background: var(--llm-gris-clair);
    padding: 60px 0;
    border-top: 1px solid var(--llm-gris-moyen);
}

/* Navigation des onglets */
.woocommerce-tabs.wc-tabs-wrapper {
    max-width: 100%;
}

.woocommerce-tabs ul.tabs {
    display: flex !important;
    gap: 0 !important;
    border-bottom: 2px solid var(--llm-gris-moyen) !important;
    margin-bottom: 40px !important;
    padding: 0 !important;
    list-style: none !important;
    background: none !important;
}

.woocommerce-tabs ul.tabs::before {
    display: none !important;
}

.woocommerce-tabs ul.tabs li {
    background: none !important;
    border: none !important;
    border-radius: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
}

.woocommerce-tabs ul.tabs li::before,
.woocommerce-tabs ul.tabs li::after {
    display: none !important;
}

.woocommerce-tabs ul.tabs li a {
    font-family: var(--font-corps) !important;
    font-size: 0.75rem !important;
    font-weight: 600 !important;
    letter-spacing: 0.14em !important;
    text-transform: uppercase !important;
    color: var(--llm-gris-texte) !important;
    padding: 14px 28px !important;
    display: block !important;
    border-bottom: 2px solid transparent !important;
    margin-bottom: -2px !important;
    transition: var(--transition) !important;
}

.woocommerce-tabs ul.tabs li a:hover {
    color: var(--llm-or) !important;
}

.woocommerce-tabs ul.tabs li.active a {
    color: var(--llm-noir) !important;
    border-bottom-color: var(--llm-or) !important;
}

/* Contenu des onglets */
.woocommerce-tabs .woocommerce-Tabs-panel {
    background: var(--llm-blanc);
    border-radius: var(--rayon-carte);
    padding: 40px 48px !important;
    box-shadow: var(--ombre-douce);
}

.llm-tab-title {
    font-family: var(--font-titre) !important;
    font-style: italic !important;
    font-weight: 400 !important;
    font-size: 1.5rem !important;
    margin-bottom: 24px !important;
    color: var(--llm-noir) !important;
    padding-bottom: 16px !important;
    border-bottom: 1px solid var(--llm-gris-moyen) !important;
}

.llm-description-content p {
    font-size: 0.92rem;
    color: var(--llm-gris-texte);
    line-height: 1.9;
    max-width: 700px;
}

.llm-description-content ul,
.llm-description-content ol {
    margin: 16px 0;
    padding-left: 20px;
}

.llm-description-content li {
    font-size: 0.9rem;
    color: var(--llm-gris-texte);
    line-height: 1.8;
    margin-bottom: 6px;
}

/* ---- Avis clients --------------------------------------- */

.woocommerce-Reviews .woocommerce-Reviews-title {
    font-family: var(--font-titre) !important;
    font-style: italic !important;
    font-weight: 400 !important;
    font-size: 1.5rem !important;
    margin-bottom: 24px !important;
    padding-bottom: 16px !important;
    border-bottom: 1px solid var(--llm-gris-moyen) !important;
}

.woocommerce-Reviews .comment-text {
    border: 1px solid var(--llm-gris-moyen);
    border-radius: var(--rayon-carte);
    padding: 24px;
    margin-bottom: 16px;
    background: var(--llm-blanc);
}

/* Étoiles */
.woocommerce-product-rating .star-rating,
.star-rating {
    color: var(--llm-or) !important;
    font-size: 0.85rem !important;
}

.star-rating::before {
    color: var(--llm-gris-moyen) !important;
}

.star-rating span::before {
    color: var(--llm-or) !important;
}

/* Formulaire d'avis */
#review_form .comment-form-rating label,
#review_form .comment-form-comment label,
#review_form .comment-form-author label,
#review_form .comment-form-email label {
    font-family: var(--font-corps) !important;
    font-size: 0.75rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.1em !important;
    text-transform: uppercase !important;
    color: var(--llm-noir) !important;
}

#review_form input[type="text"],
#review_form input[type="email"],
#review_form textarea {
    border: 1.5px solid var(--llm-gris-moyen) !important;
    border-radius: var(--rayon) !important;
    padding: 12px 14px !important;
    font-family: var(--font-corps) !important;
    font-size: 0.88rem !important;
    transition: var(--transition) !important;
}

#review_form input:focus,
#review_form textarea:focus {
    border-color: var(--llm-or) !important;
    outline: none !important;
    box-shadow: 0 0 0 3px rgba(201,168,76,0.1) !important;
}

/* ============================================================
   PRODUITS ASSOCIÉS
   ============================================================ */

.llm-related-section {
    padding: 70px 0;
    background: var(--llm-blanc);
}

.llm-related-section .related {
    clear: both;
}

.llm-related-section .related > h2 {
    display: none; /* on utilise notre propre titre */
}

/* ============================================================
   RESPONSIVE MOBILE
   ============================================================ */

@media (max-width: 900px) {
    .llm-product-layout {
        grid-template-columns: 1fr;
        gap: 36px;
    }

    .llm-product-gallery-col {
        position: static;
    }
}

@media (max-width: 600px) {
    .llm-product-main {
        padding: 32px 0 48px;
    }

    .woocommerce div.product form.cart {
        flex-direction: column !important;
    }

    .woocommerce div.product form.cart .quantity {
        width: 100% !important;
        justify-content: center !important;
    }

    .llm-reassurance {
        grid-template-columns: 1fr;
        gap: 10px;
    }

    .woocommerce-tabs .woocommerce-Tabs-panel {
        padding: 24px 20px !important;
    }

    .flex-control-thumbs li {
        width: calc(25% - 6px) !important;
    }
}

/* ============================================================
   ANIMATION CHARGEMENT VARIATION
   ============================================================ */

.woocommerce-variation-availability {
    font-size: 0.82rem;
    margin-bottom: 12px;
    transition: var(--transition);
}

.woocommerce-variation-availability .stock {
    color: #2e7d32;
    font-weight: 600;
}

.woocommerce-variation-availability .out-of-stock {
    color: #c62828;
}

/* Loader pendant chargement variation */
.variations_form.loading {
    opacity: 0.6;
    pointer-events: none;
}

/* ============================================================
   BOUTON STICKY MOBILE "AJOUTER AU PANIER"
   ============================================================ */

.llm-sticky-cart {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 1000;
    padding: 12px 16px;
    background: var(--llm-blanc);
    box-shadow: 0 -4px 20px rgba(0,0,0,0.1);
    transform: translateY(100%);
    transition: transform 0.3s ease;
    display: none;
}

@media (max-width: 768px) {
    .llm-sticky-cart {
        display: block;
    }
}

.llm-sticky-cart--show {
    transform: translateY(0);
}

.llm-sticky-cart .single_add_to_cart_button {
    width: 100% !important;
    height: 50px !important;
    background-color: var(--llm-or) !important;
    color: var(--llm-blanc) !important;
    border: none !important;
    border-radius: var(--rayon) !important;
    font-family: var(--font-corps) !important;
    font-size: 0.78rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.14em !important;
    text-transform: uppercase !important;
    cursor: pointer !important;
}
