/* ═══════════════════════════════════════════════════════════════
   LeMarchand.CI — Fiche produit (v5)
   Chargé uniquement sur les fiches produit (functions.php → lm_enqueue).
   ═══════════════════════════════════════════════════════════════ */
:root{
    --pdp-blue:#1858D8;
    --pdp-blue-dark:#123F9E;
    --pdp-blue-light:#EAF1FF;
    --pdp-ink:#0F172A;
    --pdp-text:#334155;
    --pdp-gray:#64748B;
    --pdp-line:#E5E7EB;
    --pdp-bg:#F5F7FB;
    --pdp-red:#DC2626;
    --pdp-green:#16A34A;
    --pdp-wa:#25D366;
    --pdp-wa-dark:#128C7E;
    --pdp-accent:#FF7A18;
}

/* ── Neutralise la mise en page Storefront ── */
.single-product #primary,
.single-product #content,
body.single-product #primary{ width:100% !important; float:none !important; margin:0 !important; max-width:none !important; padding:0 !important; }
.single-product #secondary{ display:none !important; }
.single-product div.product .woocommerce-product-gallery,
.single-product div.product .summary{ width:auto !important; float:none !important; margin:0 !important; }
.single-product .site-main{ margin-bottom:0; }

.lm-pdp-page{ font-family:'Inter',system-ui,sans-serif; color:var(--pdp-text); padding-top:16px; padding-bottom:40px; }
.lm-pdp-page *{ box-sizing:border-box; }
.lm-pdp-page img{ max-width:100%; }
.lm-pdp-grid > *{ min-width:0; }

/* ═════ Grille principale ═════ */
.lm-pdp-grid{
    display:grid; grid-template-columns:1fr; gap:20px;
    background:#fff; border:1px solid var(--pdp-line); border-radius:18px; padding:16px;
}
@media (min-width:900px){
    .lm-pdp-grid{ grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); gap:40px; padding:28px; }
    .lm-pdp-gallery-inner{ position:sticky; top:96px; }
}

/* ═════ Galerie ═════ */
.lm-pdp .woocommerce-product-gallery{ position:relative; opacity:1 !important; }
.lm-pdp .woocommerce-product-gallery__wrapper{ margin:0; }
.lm-pdp .woocommerce-product-gallery__image{ background:var(--pdp-bg); border-radius:14px; overflow:hidden; }
.lm-pdp .woocommerce-product-gallery__image img{
    width:100%; aspect-ratio:1/1; object-fit:contain; background:var(--pdp-bg); border-radius:14px; display:block;
}
.lm-pdp .woocommerce-product-gallery__trigger{
    position:absolute; top:12px; right:12px; z-index:3; width:38px; height:38px; border-radius:50%;
    background:#fff; box-shadow:0 2px 10px rgba(15,23,42,.12); display:flex; align-items:center; justify-content:center;
    text-indent:-9999px; overflow:hidden;
}
.lm-pdp .woocommerce-product-gallery__trigger::before{
    content:''; position:absolute; inset:0; margin:auto; width:16px; height:16px; text-indent:0;
    background:no-repeat center/16px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230F172A' stroke-width='2.5' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5M11 8v6M8 11h6'/%3E%3C/svg%3E");
}
.lm-pdp .woocommerce-product-gallery__trigger::after{ display:none; }
.lm-pdp .flex-control-thumbs{
    display:grid !important; grid-template-columns:repeat(5,minmax(0,1fr)); gap:8px; margin:10px 0 0 !important; padding:0 !important;
}
.lm-pdp .flex-control-thumbs li{ width:auto !important; float:none !important; margin:0 !important; list-style:none; }
.lm-pdp .flex-control-thumbs li img{
    width:100%; height:auto; display:block;
    border-radius:10px; border:2px solid transparent; background:var(--pdp-bg); aspect-ratio:1/1; object-fit:contain;
    opacity:.7; cursor:pointer; transition:opacity .2s, border-color .2s;
}
.lm-pdp .flex-control-thumbs li img.flex-active,
.lm-pdp .flex-control-thumbs li img:hover{ opacity:1; border-color:var(--pdp-blue); }
.lm-pdp-video{ margin-top:12px; border-radius:14px; overflow:hidden; aspect-ratio:16/9; background:#000; }
.lm-pdp-video iframe,.lm-pdp-video video{ width:100%; height:100%; border:0; display:block; }

/* ═════ Colonne d'achat ═════ */
.lm-pdp-summary{ display:flex; flex-direction:column; gap:16px; min-width:0; }
.lm-pdp-summary > *{ margin:0 !important; }

.lm-pdp-eyebrow{ display:flex; align-items:center; gap:8px; font-size:13px; font-weight:600; }
.lm-pdp-eyebrow a{ color:var(--pdp-blue); text-decoration:none; }
.lm-pdp-eyebrow a:hover{ text-decoration:underline; }
.lm-pdp-chip{ font-size:11px; font-weight:700; padding:2px 8px; border-radius:6px; }
.lm-pdp-chip-new{ background:#ECFDF5; color:var(--pdp-green); }

.lm-pdp-summary .product_title{
    font-size:clamp(20px,2.4vw,26px); line-height:1.25; font-weight:800; color:var(--pdp-ink);
    letter-spacing:-.3px; margin:-8px 0 0 !important;
}
.lm-pdp-sub{ display:flex; align-items:center; flex-wrap:wrap; gap:6px 14px; font-size:13px; color:var(--pdp-gray); margin-top:-8px !important; }
.lm-pdp-sub:empty{ display:none; }
.lm-pdp-rating{ display:inline-flex; align-items:center; gap:8px; color:var(--pdp-gray); text-decoration:none; }
.lm-pdp-rating .star-rating{ margin:0; font-size:13px; color:#F59E0B; }

/* Prix */
.lm-pdp-price{ background:var(--pdp-bg); border-radius:14px; padding:14px 16px; }
.lm-pdp-price-row{ display:flex; align-items:center; flex-wrap:wrap; gap:10px; }
.lm-pdp-summary .lm-pdp-price .price{
    margin:0 !important; font-size:28px !important; font-weight:800; color:var(--pdp-ink) !important;
    display:flex; align-items:baseline; flex-wrap:wrap; gap:4px 10px; font-variant-numeric:tabular-nums; line-height:1.15;
}
.lm-pdp-summary .price ins{ text-decoration:none; color:var(--pdp-red); order:1; }
.lm-pdp-summary .price del{ order:2; font-size:15px; font-weight:500; color:var(--pdp-gray); opacity:1; }
.lm-pdp-summary .price .screen-reader-text{ position:absolute; clip:rect(1px,1px,1px,1px); }
.lm-pdp-pct{ background:var(--pdp-red); color:#fff; font-weight:800; font-size:13px; padding:4px 9px; border-radius:8px; font-variant-numeric:tabular-nums; }
.lm-pdp-saving{ margin-top:4px; font-size:13px; font-weight:600; color:var(--pdp-green); }

/* Description courte */
.lm-pdp-summary .woocommerce-product-details__short-description{ font-size:14px; line-height:1.65; color:var(--pdp-text); }
.lm-pdp-summary .woocommerce-product-details__short-description p{ margin:0 0 8px; }
.lm-pdp-summary .woocommerce-product-details__short-description ul{ margin:0; padding:0; list-style:none; display:grid; gap:6px; }
.lm-pdp-summary .woocommerce-product-details__short-description li{ position:relative; padding-left:22px; }
.lm-pdp-summary .woocommerce-product-details__short-description li::before{
    content:''; position:absolute; left:0; top:.35em; width:14px; height:14px; border-radius:50%;
    background:var(--pdp-blue-light) no-repeat center/9px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231858D8' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12 5 5 9-10'/%3E%3C/svg%3E");
}

/* Stock */
.lm-pdp-summary p.stock{
    display:inline-flex; align-items:center; gap:6px; font-size:13px; font-weight:700;
    padding:5px 12px; border-radius:50px; margin:0 0 12px !important; width:fit-content;
}
.lm-pdp-summary p.stock::before{ content:''; width:8px; height:8px; border-radius:50%; background:currentColor; }
.lm-pdp-summary p.stock.in-stock{ background:#ECFDF5; color:var(--pdp-green); }
.lm-pdp-summary p.stock.out-of-stock{ background:#FEF2F2; color:var(--pdp-red); }
.lm-pdp-summary p.stock.available-on-backorder{ background:#FFF7ED; color:#C2410C; }

/* Formulaire panier */
.lm-pdp-summary form.cart{ display:flex; flex-wrap:wrap; gap:10px; margin:0 !important; padding:0 !important; border:0 !important; }
.lm-pdp-summary form.cart::before,.lm-pdp-summary form.cart::after{ display:none !important; }
.lm-pdp-summary form.variations_form{ display:block; }
.lm-pdp-summary .woocommerce-variation-add-to-cart{ display:flex; flex-wrap:wrap; gap:10px; }
.lm-pdp-summary .quantity{ margin:0 !important; float:none !important; display:flex; }
.lm-pdp-summary .quantity input.qty{
    width:76px; height:52px; border:1.5px solid var(--pdp-line); border-radius:12px; background:#fff;
    text-align:center; font-size:16px; font-weight:700; color:var(--pdp-ink); padding:0 6px; font-variant-numeric:tabular-nums;
}
.lm-pdp-summary .quantity input.qty:focus{ border-color:var(--pdp-blue); outline:none; box-shadow:0 0 0 3px rgba(24,88,216,.12); }
.lm-pdp-summary .single_add_to_cart_button{
    flex:1; min-width:180px; height:52px; float:none !important;
    background:var(--pdp-blue) !important; color:#fff !important; border:none !important; border-radius:12px !important;
    font-size:15px !important; font-weight:800 !important; padding:0 22px !important; cursor:pointer;
    transition:background .2s !important;
}
.lm-pdp-summary .single_add_to_cart_button:hover{ background:var(--pdp-blue-dark) !important; }
.lm-pdp-summary .single_add_to_cart_button.disabled,
.lm-pdp-summary .single_add_to_cart_button:disabled{ background:#94A3B8 !important; cursor:not-allowed; }
.lm-pdp-summary .single_add_to_cart_button:focus-visible,
.lm-whatsapp-btn:focus-visible{ outline:3px solid rgba(24,88,216,.45); outline-offset:2px; }

/* Variations */
.lm-pdp-summary table.variations{ width:100%; border:0; margin:0 0 12px !important; border-collapse:collapse; }
.lm-pdp-summary table.variations tr{ display:flex; flex-direction:column; gap:6px; margin-bottom:10px; }
.lm-pdp-summary table.variations th,.lm-pdp-summary table.variations td{ padding:0 !important; background:none !important; border:0; text-align:left; }
.lm-pdp-summary table.variations label{ font-size:13px; font-weight:700; color:var(--pdp-ink); }
.lm-pdp-summary table.variations select{
    width:100%; height:46px; border:1.5px solid var(--pdp-line); border-radius:12px; padding:0 14px; font-size:14px;
    color:var(--pdp-ink); background:#fff; font-family:inherit;
}
.lm-pdp-summary table.variations select:focus{ border-color:var(--pdp-blue); outline:none; }
.lm-pdp-summary .reset_variations{ font-size:12px; color:var(--pdp-gray); margin-top:4px; display:inline-block; }
.lm-pdp-summary .woocommerce-variation-price .price{ font-size:22px !important; margin:0 0 10px !important; }
.lm-pdp-variation-note{ background:#FFF7ED; color:#9A3412; border-radius:10px; padding:10px 12px; font-size:13px; font-weight:600; }
.lm-pdp-variation-note[hidden]{ display:none; }

/* Bouton WhatsApp */
.lm-whatsapp-btn{
    width:100%; height:52px; display:flex; align-items:center; justify-content:center; gap:10px;
    background:var(--pdp-wa); color:#fff; border:none; border-radius:12px; font-family:inherit;
    font-size:15px; font-weight:800; cursor:pointer; transition:background .2s; margin-top:-6px !important;
}
.lm-whatsapp-btn:hover{ background:#1FBF5B; }

/* Paiement */
.lm-pdp-pay{ display:flex; flex-direction:column; gap:8px; }
.lm-pdp-pay-label{ font-size:12.5px; font-weight:600; color:var(--pdp-gray); }
.lm-pdp-pay-logos{ display:flex; flex-wrap:wrap; gap:6px; }
.lm-pay-badge{
    font-size:11px; font-weight:800; letter-spacing:.1px; color:var(--t,#fff); background:var(--c);
    padding:4px 9px; border-radius:6px; line-height:1.3;
}

/* Livraison */
.lm-pdp-delivery{ border:1px solid var(--pdp-line); border-radius:14px; overflow:hidden; }
.lm-pdp-del-row{ display:flex; align-items:center; gap:12px; padding:12px 14px; }
.lm-pdp-del-row + .lm-pdp-del-row{ border-top:1px solid var(--pdp-line); }
.lm-pdp-del-row svg{ color:var(--pdp-blue); flex-shrink:0; }
.lm-pdp-del-row strong{ display:block; font-size:13.5px; color:var(--pdp-ink); }
.lm-pdp-del-row small{ display:block; font-size:12.5px; color:var(--pdp-gray); font-variant-numeric:tabular-nums; }

/* Garanties */
.lm-pdp-trust{ list-style:none; padding:0; display:grid; gap:8px; font-size:13px; color:var(--pdp-text); }
.lm-pdp-trust li{ display:flex; align-items:center; gap:10px; }
.lm-pdp-trust li span{ width:28px; height:28px; border-radius:8px; background:var(--pdp-bg); display:flex; align-items:center; justify-content:center; font-size:14px; flex-shrink:0; }

.lm-pdp-help{ font-size:13px; color:var(--pdp-gray); padding-top:14px; border-top:1px solid var(--pdp-line); }
.lm-pdp-help a{ color:var(--pdp-blue); font-weight:700; text-decoration:none; }

/* ═════ Onglets ═════ */
.lm-pdp-tabs{ background:#fff; border:1px solid var(--pdp-line); border-radius:18px; padding:8px 16px 20px; margin-top:20px; }
@media (min-width:900px){ .lm-pdp-tabs{ padding:8px 28px 28px; } }
.lm-pdp-tabs .woocommerce-tabs{ margin:0; padding:0; }
.lm-pdp-tabs .woocommerce-tabs ul.tabs{
    display:flex; gap:4px; overflow-x:auto; scrollbar-width:none; border-bottom:1px solid var(--pdp-line);
    padding:0 !important; margin:0 0 20px !important; list-style:none; width:auto !important; float:none !important;
}
.lm-pdp-tabs .woocommerce-tabs ul.tabs::-webkit-scrollbar{ display:none; }
.lm-pdp-tabs .woocommerce-tabs ul.tabs::before,.lm-pdp-tabs .woocommerce-tabs ul.tabs::after{ display:none !important; }
.lm-pdp-tabs .woocommerce-tabs ul.tabs li{ margin:0 !important; padding:0 !important; border:0 !important; background:none !important; display:block !important; width:auto !important; }
.lm-pdp-tabs .woocommerce-tabs ul.tabs li::before,.lm-pdp-tabs .woocommerce-tabs ul.tabs li::after{ display:none !important; }
.lm-pdp-tabs .woocommerce-tabs ul.tabs li a{
    display:block; padding:14px 16px; font-size:14px; font-weight:700; color:var(--pdp-gray); white-space:nowrap;
    text-decoration:none; border-bottom:2px solid transparent; margin-bottom:-1px;
}
.lm-pdp-tabs .woocommerce-tabs ul.tabs li.active a,
.lm-pdp-tabs .woocommerce-tabs ul.tabs li a:hover{ color:var(--pdp-blue); border-bottom-color:var(--pdp-blue); }
.lm-pdp-tabs .woocommerce-tabs .panel{ width:auto !important; float:none !important; margin:0 !important; font-size:14.5px; line-height:1.75; color:var(--pdp-text); max-width:820px; }
.lm-pdp-tabs .woocommerce-tabs .panel > h2:first-child{ display:none; }
.lm-pdp-tabs .woocommerce-tabs .panel h2,.lm-pdp-tabs .woocommerce-tabs .panel h3{ font-size:17px; font-weight:800; color:var(--pdp-ink); margin:22px 0 8px; }
.lm-pdp-tabs .woocommerce-tabs .panel img{ max-width:100%; height:auto; border-radius:12px; }
.lm-pdp-tabs table.shop_attributes{ width:100%; border:0; border-collapse:collapse; font-size:14px; }
.lm-pdp-tabs table.shop_attributes tr:nth-child(odd){ background:var(--pdp-bg); }
.lm-pdp-tabs table.shop_attributes th,.lm-pdp-tabs table.shop_attributes td{ padding:10px 14px !important; border:0 !important; text-align:left; background:none !important; font-style:normal; }
.lm-pdp-tabs table.shop_attributes th{ width:38%; font-weight:700; color:var(--pdp-ink); }
.lm-pdp-tabs table.shop_attributes td p{ margin:0; }

/* Avis */
.lm-pdp-tabs #reviews .commentlist{ list-style:none; padding:0; margin:0 0 20px; }
.lm-pdp-tabs #reviews .comment_container{ background:var(--pdp-bg); border-radius:12px; padding:14px 16px; margin-bottom:10px; }
.lm-pdp-tabs #reviews .comment_container img.avatar{ display:none; }
.lm-pdp-tabs #reviews .comment-text{ margin:0 !important; padding:0 !important; border:0 !important; }
.lm-pdp-tabs #reviews .star-rating{ color:#F59E0B; }
.lm-pdp-tabs #reviews .comment-form input:not([type=checkbox]):not([type=submit]),
.lm-pdp-tabs #reviews .comment-form textarea{ width:100%; border:1.5px solid var(--pdp-line); border-radius:10px; padding:10px 12px; font-size:14px; font-family:inherit; }
.lm-pdp-tabs #reviews #submit{ background:var(--pdp-blue); color:#fff; border:0; border-radius:10px; font-weight:700; padding:12px 24px; cursor:pointer; }

/* ═════ Produits liés (similaires + montée en gamme) ═════
   theme.css applique « display:grid » à tout élément .products, y compris
   la <section class="related products"> elle-même : le titre et la liste
   se retrouvaient côte à côte dans une grille à 4 colonnes et les cartes
   se chevauchaient. On remet la section en bloc et seule la liste <ul>
   devient une grille. Les cartes elles-mêmes sont stylées par shop.css
   (même rendu que les pages catégories). */
.single-product .lm-pdp-related section.related.products,
.single-product .lm-pdp section.upsells.products{
    display:block !important; grid-template-columns:none !important;
    margin:32px 0 0 !important; padding:0 !important;
}
.single-product .lm-pdp-related section.related.products > h2,
.single-product .lm-pdp section.upsells.products > h2{
    font-size:20px; font-weight:800; color:var(--pdp-ink); margin:0 0 14px !important; letter-spacing:-.2px;
}
.single-product .lm-pdp-related ul.products,
.single-product .lm-pdp section.upsells ul.products{
    display:grid !important; grid-template-columns:repeat(2,minmax(0,1fr)) !important; gap:12px !important;
    margin:0 !important; padding:0 !important; list-style:none !important; max-width:none !important; width:100% !important;
}
@media (min-width:640px){
    .single-product .lm-pdp-related ul.products,
    .single-product .lm-pdp section.upsells ul.products{ grid-template-columns:repeat(3,minmax(0,1fr)) !important; gap:14px !important; }
}
@media (min-width:960px){
    .single-product .lm-pdp-related ul.products,
    .single-product .lm-pdp section.upsells ul.products{ grid-template-columns:repeat(4,minmax(0,1fr)) !important; }
}
.single-product .lm-pdp-related ul.products > li.product,
.single-product .lm-pdp section.upsells ul.products > li.product{
    width:auto !important; min-width:0; float:none !important; margin:0 !important; clear:none !important;
    position:relative !important; height:auto !important;
}
.single-product .lm-pdp-related ul.products > li.product:hover,
.single-product .lm-pdp section.upsells ul.products > li.product:hover{ transform:none !important; }
/* Image : une seule règle de hauteur (theme.css et shop.css en imposaient deux) */
.single-product .lm-pdp-related .lm-product-card__image,
.single-product .lm-pdp section.upsells .lm-product-card__image{
    height:180px !important; width:100% !important; padding:12px !important; object-fit:contain !important; margin:0 !important;
}
@media (max-width:600px){
    .single-product .lm-pdp-related .lm-product-card__image,
    .single-product .lm-pdp section.upsells .lm-product-card__image{ height:130px !important; padding:8px !important; }
}

/* ═════ Barre d'achat mobile ═════ */
.lm-pdp-bar{ display:none; }
@media (max-width:899px){
    .lm-pdp-bar{
        display:flex; align-items:center; gap:8px; position:fixed; left:0; right:0; bottom:0; z-index:960;
        font-family:'Inter',system-ui,sans-serif;
        background:#fff; border-top:1px solid var(--pdp-line); box-shadow:0 -4px 18px rgba(15,23,42,.08);
        padding:10px 12px calc(10px + env(safe-area-inset-bottom,0px));
        transform:translateY(110%); transition:transform .25s ease;
    }
    .lm-pdp-bar.visible{ transform:translateY(0); }
    .lm-pdp-bar-price{ flex:1; min-width:0; font-weight:800; font-size:15px; color:var(--pdp-ink); line-height:1.2; font-variant-numeric:tabular-nums; }
    .lm-pdp-bar-price del{ display:block; font-size:11px; font-weight:400; color:var(--pdp-gray); }
    .lm-pdp-bar-price ins{ text-decoration:none; color:var(--pdp-red); }
    .lm-pdp-bar-price .screen-reader-text{ position:absolute; clip:rect(1px,1px,1px,1px); }
    .lm-pdp-bar button{ height:44px; border:0; border-radius:10px; font-family:inherit; font-weight:800; font-size:13.5px; padding:0 14px; cursor:pointer; white-space:nowrap; }
    .lm-pdp-bar-cart{ background:var(--pdp-blue-light); color:var(--pdp-blue); }
    .lm-pdp-bar-wa{ background:var(--pdp-wa); color:#fff; }
    /* sur la fiche produit, la barre d'achat remplace la nav du bas et le bouton flottant */
    body.lm-has-pdp-bar .lm-mobile-tabbar,
    body.lm-has-pdp-bar .lmw-float-btn{ display:none !important; }
    body.lm-has-pdp-bar .site-footer{ padding-bottom:80px; }
    body.lm-has-pdp-bar .lm-back-top{ bottom:84px; }
}
@media (max-width:380px){ .lm-pdp-bar-cart{ display:none; } }

@media (max-width:600px){
    .lm-pdp-page{ padding-top:8px; }
    .lm-pdp-grid{ border-radius:14px; padding:12px; border:0; }
    .lm-pdp-summary{ gap:14px; }
    .lm-pdp-summary .lm-pdp-price .price{ font-size:24px !important; }
}
@media (prefers-reduced-motion:reduce){
    .lm-pdp-bar{ transition:none; }
}

/* Bouton des cartes « similaires » : pleine largeur, couleur du site */
.single-product .lm-pdp-related ul.products li.product .lm-product-card__actions a.lm-button,
.single-product .lm-pdp section.upsells ul.products li.product .lm-product-card__actions a.lm-button{
    width:100% !important; margin:0 !important; background:var(--pdp-blue) !important; color:#fff !important;
    border-radius:9px !important; padding:10px 8px !important; font-size:13px !important; white-space:nowrap;
}
.single-product .lm-pdp-related ul.products li.product .lm-product-card__actions a.lm-button:hover{ background:var(--pdp-blue-dark) !important; }
@media (max-width:480px){
    .single-product .lm-pdp-related .lm-button__icon{ display:none; }
    .single-product .lm-pdp-related ul.products li.product .lm-product-card__actions a.lm-button{ font-size:12px !important; padding:9px 4px !important; }
}
