/* ==========================================================================
   LBP Boutique — habillage Astra / WooCommerce (pages classiques)
   --------------------------------------------------------------------------
   Chargée après refonte.css, la charte du site, servie par lesbonspieds.fr :
   tokens --lbp-*, base body.lbp-theme et composants .lbp-* viennent de là.
   Ici, seulement ce que WordPress génère lui-même. Les blocs WooCommerce
   (panier, commande, grilles) sont dans blocks.css, chargée en fin de page.

   Classes du site utilisées par le thème (à ne pas renommer côté site sans
   reporter ici) : .lbp-h2, .lbp-h2--xs, .lbp-stack, .lbp-stack--sm,
   .lbp-benefits-grid, .lbp-benefit(__icon|__title|__desc),
   .lbp-offer(__ribbon|__head|__name|__price|__price-note|__sub), .lbp-trust.
   Les boutons WooCommerce reprennent les valeurs de .lbp-btn--primary : ils
   ne peuvent pas porter la classe (balisage WooCommerce).
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Base
   -------------------------------------------------------------------------- */
body.lbp-shop {
    --lbp-shop-max: var(--lbp-max, 1200px);

    /* Ce qui reste d'Astra (liens, focus, puces) passe à la charte. */
    --ast-global-color-0: var(--lbp-brand);
    --ast-global-color-1: var(--lbp-brand-hover);
    --ast-global-color-2: var(--lbp-text);
    --ast-global-color-3: var(--lbp-text-soft);
    --ast-global-color-4: var(--lbp-bg-page);
    --ast-global-color-5: var(--lbp-card-bg);
    --ast-global-color-6: var(--lbp-card-border);
    --ast-global-color-7: var(--lbp-text);
    --ast-global-color-8: var(--lbp-text-muted);

    /* Tailles de l'éditeur de blocs (posées en !important par WordPress) :
       ramenées à l'échelle typographique du site (H1 30 / H2 21 / corps 16). */
    --wp--preset--font-size--small: 14px;
    --wp--preset--font-size--medium: 16px;
    --wp--preset--font-size--large: 21px;
    --wp--preset--font-size--x-large: 30px;
}
body.lbp-shop :is(button, input, select, textarea, .ast-button) {
    font-family: var(--lbp-font);
}
body.lbp-shop :is(h1, h2, h3, h4, h5, h6) {
    font-family: var(--lbp-font);
    color: var(--lbp-text);
}
body.lbp-shop a { color: var(--lbp-brand-text); }
body.lbp-shop a:hover { color: var(--lbp-brand-hover); }

/* Conteneur : mêmes largeur et marges que .lbp-container du site. */
body.lbp-shop .site-content > .ast-container,
body.lbp-shop.ast-woo-shop-archive .site-content > .ast-container {
    max-width: var(--lbp-shop-max);
    padding-inline: 16px;
    box-sizing: border-box;
}
/* #page fait 100vh chez Astra : avec notre en-tête, la page défilerait à vide. */
body.lbp-shop #page { min-height: 0; background: transparent; }
body.lbp-shop .site-content,
body.lbp-shop #primary { background: transparent; }
body.lbp-shop.ast-plain-container.ast-no-sidebar #primary,
body.lbp-shop.ast-separate-container #primary {
    margin: 24px 0 48px;
    padding: 0;
}
body.lbp-shop.ast-separate-container .ast-article-single,
body.lbp-shop.ast-separate-container .ast-404-layout-1,
body.lbp-shop.ast-separate-container .error-404 {
    padding: 0;
    background: transparent;
}

/* Blocs « larges » (panier, commande) : Astra les décale de -20px, hors de la grille du site. */
body.lbp-shop.ast-plain-container .entry-content[data-ast-blocks-layout] > .alignwide {
    margin-inline: 0;
}

/* Pas de fil d'Ariane : le lien « Retour » de l'en-tête en tient lieu. */
body.lbp-shop .woocommerce-breadcrumb { display: none; }

/* Titres de page (Astra) : .lbp-h1 du site. */
body.lbp-shop .entry-header { margin-bottom: 16px; }
body.lbp-shop :is(.entry-title, .page-title, .woocommerce-products-header__title) {
    margin: 0 0 10px;
    font-size: 30px;
    font-weight: 800;
    line-height: 1.15;
    color: var(--lbp-text);
}

/* --------------------------------------------------------------------------
   2. En-tête (réf. .lbp-nav du site, version tunnel d'achat) : nom de la
      boutique à gauche, panier ou cadenas à droite, aucun lien vers le site.
   -------------------------------------------------------------------------- */
.lbp-shopbar {
    background: var(--lbp-card-bg);
    border-bottom: 1px solid var(--lbp-card-border);
}
.lbp-shopbar__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    min-height: 60px;
    max-width: var(--lbp-shop-max, 1200px);
    margin-inline: auto;
    padding: 10px 16px;
    box-sizing: border-box;
}
/* Nom de la boutique, à gauche (réf. .lbp-logo du site en desktop). */
.lbp-shopbar a.lbp-shopbar__logo {
    min-width: 0;
    font-size: 20px;
    font-weight: 800;
    line-height: 1.2;
    color: var(--lbp-brand-text);
    text-decoration: none;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.lbp-shopbar__secure {
    flex: none;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 10px;
    border-radius: var(--lbp-pill);
    background: var(--lbp-bg-tint);
    color: var(--lbp-brand-text);
    font-size: 13px;
    font-weight: 600;
    white-space: nowrap;
}
/* Mobile : le cadenas seul, le nom de la boutique a besoin de la place. */
.lbp-shopbar__secure-label { display: none; }
/* Très petits écrans : le nom doit laisser la place au panier. */
@media (max-width: 359px) {
    .lbp-shopbar a.lbp-shopbar__logo { font-size: 18px; }
}

/* Panier (réf. .lbp-icon-btn du site) */
.lbp-shopbar a.lbp-shopbar__cart {
    flex: none;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: var(--lbp-pill);
    color: var(--lbp-brand-text);
    text-decoration: none;
}
.lbp-shopbar a.lbp-shopbar__cart:hover { background: var(--lbp-bg-tint); }
.lbp-shopbar__cart-count {
    position: absolute;
    top: 3px;
    right: 1px;
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    box-sizing: border-box;
    border: 2px solid var(--lbp-card-bg);
    border-radius: var(--lbp-pill);
    background: var(--lbp-brand);
    color: var(--lbp-on-brand);
    font-size: 11px;
    font-weight: 800;
    line-height: 14px;
    text-align: center;
}
.lbp-shopbar__cart-count[data-count="0"] { display: none; }

/* Titre du formulaire de commande. width : #page est un conteneur flex chez Astra,
   sans elle le bloc se réduirait à son texte et se centrerait. */
.lbp-shophead {
    width: 100%;
    max-width: var(--lbp-shop-max, 1200px);
    margin-inline: auto;
    padding: 22px 16px 6px;
    box-sizing: border-box;
}
.lbp-shophead .lbp-shophead__title {
    margin: 0 0 4px;
    font-size: 26px;
    font-weight: 800;
    line-height: 1.15;
    color: var(--lbp-text);
}
.lbp-shophead__note {
    margin: 0;
    font-size: 15px;
    color: var(--lbp-text-muted);
}

/* --------------------------------------------------------------------------
   3. Pied de page (réf. .lbp-footer du site, version courte)
   -------------------------------------------------------------------------- */
.lbp-shopfoot {
    margin-top: 40px;
    padding: 26px 0 30px;
    background: var(--lbp-footer-bg);
    color: var(--lbp-footer-text);
    font-size: 14px;
    line-height: 1.6;
}
.lbp-shopfoot__inner {
    display: flex;
    flex-direction: column;
    gap: 12px;
    max-width: var(--lbp-shop-max, 1200px);
    margin-inline: auto;
    padding-inline: 16px;
    box-sizing: border-box;
}
.lbp-shopfoot .lbp-shopfoot__brand {
    margin: 0;
    font-size: 17px;
    font-weight: 800;
    color: #fff;
}
.lbp-shopfoot__links {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 18px;
}
.lbp-shopfoot .lbp-shopfoot__links a {
    color: inherit;
    text-decoration: none;
}
.lbp-shopfoot .lbp-shopfoot__links a:hover { color: #fff; }

/* --------------------------------------------------------------------------
   4. Boutons (réf. .lbp-btn--primary / .lbp-btn--soft)
   -------------------------------------------------------------------------- */
body.lbp-shop :is(a.button, button.button, input.button, input[type="submit"], .ast-button),
body.lbp-shop.woocommerce :is(a.button, button.button).alt,
body.lbp-shop .woocommerce :is(a.button, button.button).alt {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-height: 44px;
    padding: 12px 22px;
    border: none;
    border-radius: var(--lbp-pill);
    background: var(--lbp-brand);
    color: var(--lbp-on-brand);
    font-family: var(--lbp-font);
    font-size: 16px;
    font-weight: 700;
    line-height: 1.2;
    text-align: center;
    text-decoration: none;
    box-shadow: var(--lbp-shadow-cta);
    transition: background-color .2s ease, color .2s ease;
}
body.lbp-shop :is(a.button, button.button, input.button, input[type="submit"], .ast-button):is(:hover, :focus),
body.lbp-shop.woocommerce :is(a.button, button.button).alt:is(:hover, :focus),
body.lbp-shop .woocommerce :is(a.button, button.button).alt:is(:hover, :focus) {
    background: var(--lbp-brand-hover);
    color: var(--lbp-on-brand);
}
body.lbp-shop :is(a.button, button.button):focus-visible {
    outline: 2px solid var(--lbp-brand-text);
    outline-offset: 2px;
}
body.lbp-shop :is(a.button, button.button):is(.disabled, :disabled) { opacity: .6; }

/* « Voir le panier » et autres liens secondaires : .lbp-btn--soft. */
body.lbp-shop a.button.wc-forward,
body.lbp-shop a.added_to_cart {
    min-height: 36px;
    padding: 8px 14px;
    background: var(--lbp-bg-tint);
    color: var(--lbp-brand-text);
    font-size: 15px;
    box-shadow: none;
}
body.lbp-shop a.button.wc-forward:is(:hover, :focus),
body.lbp-shop a.added_to_cart:is(:hover, :focus) {
    background: var(--lbp-accent-border);
    color: var(--lbp-brand-text);
}

/* --------------------------------------------------------------------------
   5. Messages WooCommerce (pages classiques)
   -------------------------------------------------------------------------- */
body.lbp-shop :is(.woocommerce-message, .woocommerce-info, .woocommerce-error) {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 10px 16px;
    margin: 0 0 20px;
    padding: 14px 16px;
    border: 1px solid var(--lbp-accent-border);
    border-radius: var(--lbp-radius-field);
    background: var(--lbp-bg-tint);
    color: var(--lbp-text);
    font-size: 15px;
    font-weight: 600;
    line-height: 1.45;
    list-style: none;
}
body.lbp-shop :is(.woocommerce-message, .woocommerce-info, .woocommerce-error)::before { display: none; }
/* WooCommerce donne le focus au message pour les lecteurs d'écran : pas de contour visible. */
body.lbp-shop :is(.woocommerce-message, .woocommerce-info, .woocommerce-error):focus { outline: none; }
/* Lien du message (« Voir le panier ») : réf. .lbp-btn--outline, lisible sur le fond teinté. */
body.lbp-shop :is(.woocommerce-message, .woocommerce-info, .woocommerce-error) a.button.wc-forward,
body.lbp-shop :is(.woocommerce-message, .woocommerce-info, .woocommerce-error) a.button {
    min-height: 40px;
    padding: 8px 18px;
    border: 2px solid var(--lbp-accent-border);
    background: var(--lbp-card-bg);
    color: var(--lbp-brand-text);
    font-size: 15px;
    box-shadow: none;
}
body.lbp-shop :is(.woocommerce-message, .woocommerce-info, .woocommerce-error) a.button:is(:hover, :focus) {
    border-color: var(--lbp-brand);
    background: var(--lbp-card-bg);
    color: var(--lbp-brand-text);
}
body.lbp-shop :is(.woocommerce-message, .woocommerce-info) .button { order: 2; }
body.lbp-shop .woocommerce-error {
    border-color: #f3b4b4;
    background: #fdf0f0;
    color: #8f1414;
}
body.lbp-shop .woocommerce-error li { margin: 0; }

/* --------------------------------------------------------------------------
   6. Champs (réf. .lbp-input / .lbp-label)
   -------------------------------------------------------------------------- */
/* Formulaires classiques seulement (.form-row, recherche) : les champs des blocs
   Panier/Commande ont un libellé flottant qui dépend de leurs propres marges. */
body.lbp-shop :is(.form-row, .search-form) :is(input.input-text, input[type="text"], input[type="email"], input[type="password"], input[type="tel"], input[type="search"], input[type="number"], textarea, select) {
    width: 100%;
    box-sizing: border-box;
    min-height: 46px;
    padding: 12px 14px;
    background: var(--lbp-bg-page);
    border: 1px solid var(--lbp-accent-border);
    border-radius: var(--lbp-radius-field);
    box-shadow: none;
    color: var(--lbp-text);
    font-family: var(--lbp-font);
    font-size: 16px;
}
body.lbp-shop :is(.form-row, .search-form) :is(input.input-text, input[type="text"], input[type="email"], input[type="password"], input[type="tel"], input[type="search"], input[type="number"], textarea, select):focus {
    background: var(--lbp-card-bg);
    border-color: var(--lbp-brand-text);
    outline: 2px solid var(--lbp-brand-text);
    outline-offset: -1px;
}
body.lbp-shop .woocommerce form .form-row label,
body.lbp-shop .woocommerce-page form .form-row label {
    margin-bottom: 4px;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.4;
    color: var(--lbp-text-muted);
}
body.lbp-shop .woocommerce form .form-row .required { color: var(--lbp-brand-text); }
body.lbp-shop input[type="checkbox"] { accent-color: var(--lbp-brand); }

/* --------------------------------------------------------------------------
   7. Fiche produit
   -------------------------------------------------------------------------- */
body.lbp-shop.single-product div.product .product_title {
    margin: 0 0 8px;
    font-size: 30px;
    font-weight: 800;
    line-height: 1.15;
    color: var(--lbp-text);
}
body.lbp-shop.single-product div.product .summary p.price,
body.lbp-shop.single-product div.product .summary span.price {
    margin: 0 0 12px;
    font-size: 26px;
    font-weight: 800;
    color: var(--lbp-brand-text);
}
body.lbp-shop.single-product div.product .woocommerce-product-details__short-description {
    margin-bottom: 18px;
    font-size: 16px;
    line-height: 1.6;
    color: var(--lbp-text-soft);
}
body.lbp-shop.single-product div.product form.cart { margin: 0 0 8px; }
/* Astra décale de -1em le bouton des produits vendus à l'unité (le Premium). */
body.lbp-shop.single-product div.product form.cart .button.single_add_to_cart_button {
    width: 100%;
    margin-left: 0;
    min-height: 54px;
    padding: 15px 24px;
    font-size: 18px;
}
body.lbp-shop.single-product div.product form.cart div.quantity { display: none; }

/* Galerie */
body.lbp-shop.single-product div.product .woocommerce-product-gallery__image img,
body.lbp-shop.single-product div.product .flex-control-thumbs img {
    border-radius: var(--lbp-radius-card);
}
body.lbp-shop.single-product div.product .woocommerce-product-gallery__trigger {
    background: var(--lbp-card-bg);
    box-shadow: 0 2px 8px rgba(51, 33, 43, .15);
}

/* Description : l'onglet unique est masqué, son titre (« Description ») le remplace. */
body.lbp-shop .woocommerce-tabs ul.tabs:has(> li:only-child) { display: none; }
body.lbp-shop .woocommerce-tabs {
    clear: both;
    padding-top: 8px;
}
body.lbp-shop.single-product div.product .woocommerce-tabs .panel {
    margin: 0;
    padding: 20px 18px;
    background: var(--lbp-card-bg);
    border: 1px solid var(--lbp-card-border);
    border-radius: var(--lbp-radius-block);
    font-size: 16px;
    line-height: 1.65;
    color: var(--lbp-text-soft);
}
body.lbp-shop.single-product div.product .woocommerce-tabs .panel > h2:first-child {
    margin: 0 0 10px;
    font-size: 21px;
    font-weight: 800;
}

/* Premium : offre + bouton + réassurance, puis avantages (composants du site).
   Pas de galerie : l'offre est en texte, plus d'image d'offre. */
body.lbp-premium-product div.product {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 28px;
}
body.lbp-premium-product div.product::before,
body.lbp-premium-product div.product::after { display: none; }
/* Il faut passer devant les largeurs d'Astra (48 % puis 46 %, dans #content .ast-woocommerce-container). */
body.lbp-premium-product #content .ast-woocommerce-container div.product div.summary {
    float: none;
    width: auto;
    margin: 0;
}
body.lbp-premium-product div.product .lbp-offer { margin: 22px 0 16px; }
body.lbp-premium-product div.product .lbp-offer__price .amount { color: inherit; }
body.lbp-premium-product .lbp-shop-benefits .lbp-h2 { margin-bottom: 12px; }

/* --------------------------------------------------------------------------
   8. Listes de produits : archive /boutique/ (ul.products) et grille de
      l'accueil (bloc « Collection de produits », styles imprimés dans le head)
   -------------------------------------------------------------------------- */
body.lbp-shop ul.products,
body.lbp-shop ul.wc-block-product-template {
    gap: 14px;
}
body.lbp-shop ul.wc-block-product-template {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}
body.lbp-shop ul.wc-block-product-template li.wc-block-product {
    width: auto;
    max-width: none;
    display: flex;
    flex-direction: column;
    margin: 0;
    padding: 0 12px 14px;
    background: var(--lbp-card-bg);
    border: 1px solid var(--lbp-card-border);
    border-radius: var(--lbp-radius-card);
    overflow: hidden;
    text-align: left;
}
body.lbp-shop li.wc-block-product .wc-block-components-product-image {
    margin: 0 -12px 12px;
}
body.lbp-shop li.wc-block-product .wc-block-components-product-image img { border-radius: 0; }
body.lbp-shop li.wc-block-product .wp-block-post-title {
    margin: 0 0 6px;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.35;
    text-align: left;
}
body.lbp-shop li.wc-block-product .wp-block-post-title a {
    color: var(--lbp-text);
    text-decoration: none;
}
body.lbp-shop li.wc-block-product .wc-block-components-product-price {
    margin: 0 0 12px;
    font-size: 16px;
    font-weight: 800;
    text-align: left;
    color: var(--lbp-brand-text);
}
body.lbp-shop li.wc-block-product .wp-block-woocommerce-product-price { text-align: left; }
body.lbp-shop li.wc-block-product .wc-block-components-product-button.wc-block-components-product-button {
    margin-top: auto;
    align-items: stretch;
}
body.lbp-shop li.wc-block-product .wc-block-components-product-button .wp-block-button__link.wc-block-components-product-button__button {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 40px;
    padding: 9px 10px;
    border: none;
    border-radius: var(--lbp-pill);
    background: var(--lbp-brand);
    color: var(--lbp-on-brand);
    font-family: var(--lbp-font);
    font-size: 14px;
    font-weight: 700;
    line-height: 1.2;
}
body.lbp-shop li.wc-block-product .wc-block-components-product-button .wp-block-button__link.wc-block-components-product-button__button:hover {
    background: var(--lbp-brand-hover);
}
body.lbp-shop li.wc-block-product .wc-block-components-product-button a.added_to_cart {
    margin-top: 8px;
    font-size: 14px;
    font-weight: 600;
    text-align: center;
    text-decoration: none;
}

body.lbp-shop ul.products li.product {
    display: flex;
    flex-direction: column;
    margin: 0;
    padding: 0 0 14px;
    background: var(--lbp-card-bg);
    border: 1px solid var(--lbp-card-border);
    border-radius: var(--lbp-radius-card);
    overflow: hidden;
    text-align: left;
}
body.lbp-shop ul.products li.product .astra-shop-thumbnail-wrap { margin: 0 0 12px; }
body.lbp-shop ul.products li.product img { margin: 0; border-radius: 0; }
body.lbp-shop ul.products li.product .astra-shop-summary-wrap {
    display: flex;
    flex: 1;
    flex-direction: column;
    padding: 0 12px;
}
body.lbp-shop ul.products li.product .woocommerce-loop-product__title {
    margin: 0 0 6px;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.35;
    color: var(--lbp-text);
}
body.lbp-shop ul.products li.product .price {
    margin: 0 0 12px;
    font-size: 16px;
    font-weight: 800;
    color: var(--lbp-brand-text);
}
body.lbp-shop ul.products li.product .button {
    width: 100%;
    margin-top: auto;
    min-height: 40px;
    padding: 9px 10px;
    font-size: 14px;
    box-shadow: none;
}
body.lbp-shop ul.products li.product .ast-on-card-button,
body.lbp-shop ul.products li.product .ast-woo-product-category { display: none; }
body.lbp-shop ul.products li.product .ast-shop-product-out-of-stock {
    border-radius: var(--lbp-pill);
    background: var(--lbp-card-bg);
    color: var(--lbp-text-muted);
    font-family: var(--lbp-font);
    font-size: 12.5px;
}

/* --------------------------------------------------------------------------
   9. Mon compte
   -------------------------------------------------------------------------- */
body.lbp-shop.woocommerce-account .entry-content > .woocommerce > h2 {
    margin: 0 0 12px;
    font-size: 21px;
    font-weight: 800;
}
body.lbp-shop :is(.woocommerce-form-login, .woocommerce-form-register, .woocommerce-ResetPassword, .woocommerce-EditAccountForm, .woocommerce-address-fields),
body.lbp-shop .woocommerce form.login {
    margin: 0 0 20px;
    padding: 20px 18px;
    background: var(--lbp-card-bg);
    border: 1px solid var(--lbp-card-border);
    border-radius: var(--lbp-radius-block);
}
body.lbp-shop .woocommerce-form-login .woocommerce-form-login__rememberme {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 4px 0 14px;
    font-size: 15px;
    font-weight: 500;
    color: var(--lbp-text-soft);
}
body.lbp-shop .woocommerce-form-login .woocommerce-form-login__submit {
    width: 100%;
    margin: 0;
}
body.lbp-shop .woocommerce-LostPassword { margin: 14px 0 0; font-size: 15px; }
body.lbp-shop .woocommerce-LostPassword a { font-weight: 600; text-decoration: none; }

/* Navigation du compte : pilules (réf. .lbp-pill du site) */
body.lbp-shop .woocommerce-MyAccount-navigation ul {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0 0 20px;
    padding: 0;
    list-style: none;
    border: none;
}
body.lbp-shop .woocommerce-MyAccount-navigation ul li {
    margin: 0;
    padding: 0;
    border: none;
}
body.lbp-shop .woocommerce-MyAccount-navigation ul li a {
    display: inline-flex;
    align-items: center;
    min-height: 38px;
    padding: 8px 14px;
    background: var(--lbp-card-bg);
    border: 1px solid var(--lbp-accent-border);
    border-radius: var(--lbp-pill);
    color: var(--lbp-text-soft);
    font-size: 15px;
    font-weight: 600;
    text-decoration: none;
}
body.lbp-shop .woocommerce-MyAccount-navigation ul li.is-active a {
    background: var(--lbp-brand);
    border-color: var(--lbp-brand);
    color: var(--lbp-on-brand);
}
body.lbp-shop .woocommerce-MyAccount-content {
    font-size: 16px;
    line-height: 1.6;
    color: var(--lbp-text-soft);
}
body.lbp-shop .woocommerce-MyAccount-content strong { color: var(--lbp-text); }

/* Tableaux (commandes, téléchargements, détail d'une commande) */
body.lbp-shop table.shop_table {
    border: 1px solid var(--lbp-card-border);
    border-radius: var(--lbp-radius-field);
    border-collapse: separate;
    background: var(--lbp-card-bg);
    overflow: hidden;
    font-size: 15px;
}
body.lbp-shop table.shop_table :is(th, td) {
    border-color: var(--lbp-card-border);
    padding: 12px 14px;
    color: var(--lbp-text-soft);
}
body.lbp-shop table.shop_table thead th {
    background: var(--lbp-bg-tint);
    color: var(--lbp-text);
    font-weight: 700;
}
body.lbp-shop table.shop_table .button {
    min-height: 36px;
    padding: 8px 14px;
    font-size: 14px;
    box-shadow: none;
}

/* Détail d'une commande (remerciement, Mon compte) : sections à plat, seul le tableau est encadré. */
body.lbp-shop .woocommerce :is(.woocommerce-order-details, .woocommerce-customer-details) {
    margin: 24px 0 0;
    padding: 0;
    border: none;
    background: none;
}
body.lbp-shop .woocommerce :is(.woocommerce-order-details, .woocommerce-customer-details) :is(h2, .woocommerce-column__title) {
    margin: 0 0 10px;
    padding: 0;
    border: none;
    background: none;
    font-size: 20px;
    font-weight: 800;
}
body.lbp-shop .woocommerce .woocommerce-customer-details address {
    padding: 14px 16px;
    border: 1px solid var(--lbp-card-border);
    border-radius: var(--lbp-radius-field);
    background: var(--lbp-card-bg);
    color: var(--lbp-text-soft);
    font-style: normal;
    line-height: 1.6;
}

/* Connexion : carte centrée, comme /connexion sur le site. */
body.lbp-shop.woocommerce-account:not(.logged-in) article.page {
    max-width: 576px;
    margin-inline: auto;
}

/* --------------------------------------------------------------------------
   10. Pages de contenu (CGV, mentions légales…) et 404
   Carte blanche centrée, comme les pages légales du site.
   -------------------------------------------------------------------------- */
body.lbp-shop.page:not(.woocommerce-page):not(.home) article.page {
    max-width: 896px;
    margin-inline: auto;
    padding: 24px 18px;
    background: var(--lbp-card-bg);
    border: 1px solid var(--lbp-card-border);
    border-radius: var(--lbp-radius-block);
    box-sizing: border-box;
}
body.lbp-shop.page:not(.woocommerce-page) .entry-content {
    font-size: 16px;
    line-height: 1.7;
    color: var(--lbp-text-soft);
}
/* Typographie limitée aux pages de contenu : sur les pages WooCommerce, les blocs
   Panier/Commande ont leurs propres titres h2 (ex. « Validation de commande express »,
   posé sur la bordure de son cadre) que ces marges décaleraient. */
body.lbp-shop.page:not(.woocommerce-page) .entry-content :is(h2, h3) {
    margin: 28px 0 10px;
    font-weight: 800;
    line-height: 1.25;
    color: var(--lbp-text);
}
body.lbp-shop.page:not(.woocommerce-page) .entry-content h2 { font-size: 21px; }
body.lbp-shop.page:not(.woocommerce-page) .entry-content h3 { font-size: 18px; }
body.lbp-shop.page:not(.woocommerce-page) .entry-content :is(p, ul, ol) { margin: 0 0 14px; }
body.lbp-shop.page:not(.woocommerce-page) .entry-content :is(p, li) strong { color: var(--lbp-text); }

body.lbp-shop .error-404 .page-sub-title {
    margin: 0 0 18px;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.6;
    color: var(--lbp-text-muted);
}
body.lbp-shop .error-404 .search-form {
    display: flex;
    gap: 8px;
}
body.lbp-shop .error-404 .search-form label { flex: 1; margin: 0; }
body.lbp-shop .error-404 .search-form .search-submit { display: none; }

/* --------------------------------------------------------------------------
   11. Desktop (mobile-first, même logique que la section 13 de refonte.css)
   -------------------------------------------------------------------------- */
@media (min-width: 768px) {
    body.lbp-shop .site-content > .ast-container,
    body.lbp-shop.ast-woo-shop-archive .site-content > .ast-container { padding-inline: 24px; }
    body.lbp-shop.ast-plain-container.ast-no-sidebar #primary,
    body.lbp-shop.ast-separate-container #primary { margin: 36px 0 56px; }

    .lbp-shopbar__inner,
    .lbp-shophead,
    .lbp-shopfoot__inner { padding-inline: 24px; }
    .lbp-shopbar__secure-label { display: inline; }
    .lbp-shophead { padding-top: 30px; }
    .lbp-shophead .lbp-shophead__title { font-size: 30px; }
    .lbp-shopfoot__inner {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
    }

    body.lbp-shop :is(.entry-title, .page-title, .woocommerce-products-header__title),
    body.lbp-shop.single-product div.product .product_title { font-size: 36px; }
    body.lbp-shop { --wp--preset--font-size--x-large: 36px; }

    body.lbp-shop.single-product div.product .woocommerce-tabs .panel { padding: 26px 28px; }
    body.lbp-shop :is(.woocommerce-form-login, .woocommerce-form-register, .woocommerce-ResetPassword, .woocommerce-EditAccountForm, .woocommerce-address-fields),
    body.lbp-shop .woocommerce form.login { padding: 26px 28px; }

    body.lbp-shop.page:not(.woocommerce-page):not(.home) article.page { padding: 36px 40px; }
    /* Grille de l'accueil : cartes de la largeur de celles de l'archive, centrées sous le titre (centré dans le contenu). */
    body.lbp-shop ul.wc-block-product-template {
        grid-template-columns: repeat(auto-fit, minmax(220px, 280px));
        justify-content: center;
    }
}

@media (min-width: 1024px) {
    /* Premium : offre à gauche (collée en haut au défilement), avantages à droite. */
    body.lbp-premium-product div.product {
        grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
        gap: 48px;
        align-items: start;
    }
    body.lbp-premium-product #content .ast-woocommerce-container div.product div.summary {
        position: sticky;
        top: 24px;
    }
    body.lbp-premium-product .lbp-shop-benefits .lbp-benefits-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    /* Navigation du compte en colonne à gauche du contenu. */
    body.lbp-shop.woocommerce-account.logged-in .entry-content > .woocommerce {
        display: grid;
        grid-template-columns: 240px minmax(0, 1fr);
        gap: 32px;
        align-items: start;
    }
    body.lbp-shop.woocommerce-account.logged-in .entry-content > .woocommerce > * { grid-column: 1 / -1; }
    body.lbp-shop.woocommerce-account.logged-in .entry-content > .woocommerce > .woocommerce-MyAccount-navigation { grid-column: 1; }
    body.lbp-shop.woocommerce-account.logged-in .entry-content > .woocommerce > .woocommerce-MyAccount-content { grid-column: 2; }
    body.lbp-shop .woocommerce-MyAccount-navigation,
    body.lbp-shop .woocommerce-MyAccount-content {
        float: none;
        width: auto;
    }
    body.lbp-shop.logged-in .woocommerce-MyAccount-navigation ul {
        flex-direction: column;
    }
    body.lbp-shop.logged-in .woocommerce-MyAccount-navigation ul li a {
        display: flex;
    }
}
