/* ==========================================================================
   Decarsseim Theme — WooCommerce
   Boutique en cartes, fiche produit 3 colonnes, panier / commande
   (s'appuie sur les variables du thème définies dans style.css)
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Structure des pages boutique
   -------------------------------------------------------------------------- */
.cgp-woo-section{ padding:44px 0 84px; }
.cgp-woo-single{ padding-top:26px; }

.cgp-shop-hero h1{ margin-top:8px; }
.cgp-shop-hero .term-description,
.cgp-shop-hero .page-description{ color:var(--color-text-onink-soft); max-width:680px; margin-top:12px; }
.cgp-shop-hero .term-description p:last-child,
.cgp-shop-hero .page-description p:last-child{ margin-bottom:0; }

/* Fil d'Ariane */
.cgp-breadcrumb{ font-size:.8rem; margin:0; }
.cgp-breadcrumb .sep{ margin:0 8px; opacity:.6; }
.cgp-breadcrumb--dark, .cgp-breadcrumb--dark a{ color:var(--color-text-onink-soft); }
.cgp-breadcrumb--dark a:hover{ color:#fff; }
.cgp-breadcrumb--light{ color:var(--color-text-soft); margin-bottom:18px; }
.cgp-breadcrumb--light a{ color:var(--color-text-soft); }
.cgp-breadcrumb--light a:hover{ color:var(--color-brand); }

/* Messages WooCommerce */
.woocommerce-notices-wrapper:empty{ display:none; }
.woocommerce .woocommerce-message,
.woocommerce .woocommerce-info,
.woocommerce .woocommerce-error,
.woocommerce-page .woocommerce-message,
.woocommerce-page .woocommerce-info,
.woocommerce-page .woocommerce-error{
  background:var(--color-surface); border:1px solid var(--color-border); border-left:4px solid var(--color-brand);
  border-radius:var(--radius-md); padding:16px 20px; margin:0 0 24px; list-style:none;
  color:var(--color-text); box-shadow:var(--shadow-sm);
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px;
}
.woocommerce .woocommerce-message::before,
.woocommerce .woocommerce-info::before,
.woocommerce .woocommerce-error::before{ display:none; }
.woocommerce .woocommerce-error{ border-left-color:#B5432F; flex-direction:column; align-items:flex-start; }
.woocommerce .woocommerce-message{ border-left-color:var(--color-success); }
.woocommerce .woocommerce-message .button,
.woocommerce .woocommerce-info .button{ order:2; }

/* Prix : chiffres en police « plaque » */
.woocommerce .price, .woocommerce-page .price,
.woocommerce .amount{ font-family:var(--font-mono); }
.woocommerce-price-suffix{ font-size:.82em; letter-spacing:.04em; margin-left:.25em; }
.woocommerce .price del{ opacity:.55; margin-right:.4em; }
.woocommerce .price ins{ text-decoration:none; }

/* Boutons WooCommerce aux couleurs du thème */
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt,
.woocommerce-page a.button, .woocommerce-page button.button{
  background:var(--color-brand); color:#fff; border:1px solid transparent; border-radius:999px;
  padding:13px 24px; font-weight:600; font-size:.95rem; line-height:1.2; font-family:var(--font-body);
  cursor:pointer; transition:background .15s ease, transform .15s ease, box-shadow .15s ease;
  display:inline-flex; align-items:center; justify-content:center; gap:8px; text-decoration:none;
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover,
.woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover,
.woocommerce-page a.button:hover, .woocommerce-page button.button:hover{
  background:var(--color-brand-deep); color:#fff; transform:translateY(-1px); box-shadow:var(--shadow-sm);
}
.woocommerce button.button:disabled, .woocommerce button.button.disabled,
.woocommerce a.button.disabled{ opacity:.5; cursor:not-allowed; transform:none; }

/* Panier / commande en blocs (nouveaux écrans WooCommerce) */
.wc-block-components-button:not(.is-link){
  background:var(--color-brand) !important; color:#fff !important; border-radius:999px !important;
}
.wc-block-components-button:not(.is-link):hover{ background:var(--color-brand-deep) !important; }

/* Champs de saisie */
.woocommerce form .input-text, .woocommerce-page form .input-text,
.woocommerce .quantity .qty, .woocommerce select{
  border:1px solid var(--color-border); border-radius:var(--radius-sm); padding:11px 12px;
  font:inherit; background:#fff; color:var(--color-text);
}
.woocommerce form .input-text:focus, .woocommerce .quantity .qty:focus{
  outline:none; border-color:var(--color-brand); box-shadow:0 0 0 3px rgba(44,110,142,.15);
}

/* --------------------------------------------------------------------------
   2. Barre d'outils de la liste
   -------------------------------------------------------------------------- */
.cgp-shop-toolbar{
  display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap;
  padding-bottom:16px; margin-bottom:28px; border-bottom:1px solid var(--color-border);
}
.cgp-shop-cats{ display:flex; flex-wrap:wrap; gap:8px; }
.cgp-pill{
  display:inline-block; padding:8px 16px; border-radius:999px; border:1px solid var(--color-border);
  background:var(--color-surface); color:var(--color-ink); font-size:.88rem; font-weight:600;
  transition:border-color .15s ease, background .15s ease, color .15s ease;
}
.cgp-pill:hover{ border-color:var(--color-brand); color:var(--color-brand-deep); }
.cgp-pill.is-active{ background:var(--color-ink); border-color:var(--color-ink); color:#fff; }
.cgp-shop-count{ margin:0 0 0 auto; font-size:.85rem; color:var(--color-text-soft); }

/* --------------------------------------------------------------------------
   3. Liste des produits en cartes
   -------------------------------------------------------------------------- */
.woocommerce ul.products, .woocommerce-page ul.products{
  display:grid !important; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:26px;
  margin:0 0 40px !important; padding:0; list-style:none;
}
.woocommerce ul.products.columns-4, .woocommerce-page ul.products.columns-4{ grid-template-columns:repeat(4, minmax(0, 1fr)); }
.woocommerce ul.products::before, .woocommerce ul.products::after,
.woocommerce-page ul.products::before, .woocommerce-page ul.products::after{ display:none !important; content:none !important; }

.woocommerce ul.products li.product, .woocommerce-page ul.products li.product{
  float:none !important; width:auto !important; margin:0 !important; padding:0 !important;
  background:var(--color-surface); border:1px solid var(--color-border); border-radius:var(--radius-lg);
  overflow:hidden; text-align:center; position:relative;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.woocommerce ul.products li.product:hover{ transform:translateY(-4px); box-shadow:var(--shadow-md); border-color:transparent; }
.woocommerce ul.products li.product > a.woocommerce-LoopProduct-link{ display:flex; flex-direction:column; height:100%; color:inherit; }

.cgp-card-media{
  position:relative; background:var(--color-bg); aspect-ratio:1 / 1;
  display:flex; align-items:center; justify-content:center; padding:34px;
}
.woocommerce ul.products li.product .cgp-card-media img{
  width:100%; height:100%; max-height:100%; object-fit:contain; margin:0 !important; box-shadow:none;
  transition:transform .25s ease;
}
.woocommerce ul.products li.product:hover .cgp-card-media img{ transform:scale(1.03); }

.cgp-card-body{ padding:18px 22px 24px; display:flex; flex-direction:column; align-items:center; gap:6px; flex:1; }
.woocommerce ul.products li.product .woocommerce-loop-product__title{
  font-family:var(--font-display); font-size:1.05rem; font-weight:600; color:var(--color-ink);
  padding:0 !important; margin:0; line-height:1.3;
}
.cgp-card-lead{ font-size:.8rem; color:var(--color-text-soft); margin:2px 0 4px; }
.woocommerce ul.products li.product .price{
  font-family:var(--font-mono); font-weight:700; font-size:1.3rem; color:var(--color-ink) !important;
  margin:4px 0 0 !important; letter-spacing:.02em;
}
.woocommerce ul.products li.product .price .woocommerce-price-suffix{ font-size:.85em; }

/* Étiquette promo */
.woocommerce span.onsale{
  position:absolute; top:14px; left:14px; right:auto; min-height:0; min-width:0; margin:0;
  background:var(--color-accent); color:#241205; border-radius:999px; padding:5px 12px; line-height:1.2;
  font-family:var(--font-mono); font-size:.72rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; z-index:2;
}

/* Pagination */
.woocommerce nav.woocommerce-pagination{ text-align:center; }
.woocommerce nav.woocommerce-pagination ul{ display:inline-flex; gap:8px; border:0; }
.woocommerce nav.woocommerce-pagination ul li{ border:0; float:none; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span{
  display:block; padding:10px 16px; border:1px solid var(--color-border); border-radius:8px; font-size:.9rem; min-width:0; line-height:1.2;
}
.woocommerce nav.woocommerce-pagination ul li span.current{ background:var(--color-ink); color:#fff; border-color:var(--color-ink); }

.woocommerce-info.woocommerce-no-products-found{ margin-top:10px; }

@media (max-width: 900px){
  .woocommerce ul.products, .woocommerce-page ul.products,
  .woocommerce ul.products.columns-4{ grid-template-columns:repeat(2, minmax(0, 1fr)); gap:18px; }
}
@media (max-width: 560px){
  .woocommerce ul.products, .woocommerce-page ul.products,
  .woocommerce ul.products.columns-4{ grid-template-columns:1fr; }
  .cgp-shop-count{ margin-left:0; }
}

/* --------------------------------------------------------------------------
   4. Fiche produit
   -------------------------------------------------------------------------- */
.woocommerce div.product.cgp-product{ margin:0; }

.cgp-product-card{
  background:var(--color-surface); border:1px solid var(--color-border); border-radius:var(--radius-lg);
  padding:30px 32px 34px; box-shadow:var(--shadow-sm);
}
.woocommerce div.product .cgp-product-title{
  font-size:clamp(1.7rem, 3vw, 2.4rem); margin:0 0 24px; color:var(--color-ink);
}

.cgp-product-grid{
  display:grid; grid-template-columns:minmax(0, 1fr) minmax(0, 1.05fr) minmax(280px, .95fr);
  gap:30px; align-items:start;
}

/* Image */
.cgp-product-media{ position:relative; }
/* L'image reste visible même si le script de galerie de WooCommerce ne s'exécute pas */
.woocommerce div.product .cgp-product-media .woocommerce-product-gallery{ opacity:1 !important; }
.woocommerce div.product .cgp-product-media div.images{
  float:none !important; width:100% !important; margin:0 !important;
  background:var(--color-bg); border:1px solid var(--color-border); border-radius:var(--radius-md); overflow:hidden;
}
.woocommerce div.product .cgp-product-media div.images img{
  width:100%; aspect-ratio:1 / 1; object-fit:contain; padding:26px; background:var(--color-bg);
}
.woocommerce div.product .cgp-product-media .flex-control-thumbs{
  display:flex; gap:8px; padding:10px; margin:0; background:var(--color-surface); border-top:1px solid var(--color-border);
}
.woocommerce div.product .cgp-product-media .flex-control-thumbs li{ width:56px !important; float:none !important; margin:0 !important; }
.woocommerce div.product .cgp-product-media .flex-control-thumbs li img{ padding:4px; border-radius:6px; border:1px solid var(--color-border); }
.woocommerce div.product .cgp-product-media .woocommerce-product-gallery__trigger{
  top:12px; right:12px; background:var(--color-surface); border:1px solid var(--color-border); border-radius:50%;
}
.woocommerce div.product .cgp-product-media span.onsale{ top:14px; left:14px; }

/* Colonne centrale : description courte + partage */
.cgp-product-info{ display:flex; flex-direction:column; align-items:flex-start; gap:18px; }
.cgp-product-short{ font-size:1rem; color:var(--color-text); }
.cgp-product-short p{ margin:0 0 .6em; }
.cgp-product-short p:first-child{ font-weight:600; color:var(--color-ink); }
.cgp-product-short p:last-child{ margin-bottom:0; }
.cgp-product-short ul{ list-style:disc; padding-left:1.2em; margin:0 0 .6em; }

.cgp-share{
  display:inline-flex; align-items:center; gap:8px; padding:9px 18px; border-radius:999px;
  border:1px solid var(--color-border); background:var(--color-surface); color:var(--color-ink);
  font-weight:600; font-size:.88rem; cursor:pointer; transition:border-color .15s ease, color .15s ease;
}
.cgp-share:hover{ border-color:var(--color-brand); color:var(--color-brand-deep); }

/* Encadré d'achat */
.cgp-product-buy{
  background:var(--color-surface); border:1px solid var(--color-border); border-radius:var(--radius-lg);
  padding:24px; box-shadow:var(--shadow-sm);
}
.woocommerce div.product .cgp-product-buy p.price.cgp-product-price{
  font-family:var(--font-mono); font-weight:700; font-size:1.9rem; color:var(--color-ink);
  margin:0 0 18px; letter-spacing:.02em; line-height:1.15;
}
.cgp-product-buy .stock{ font-size:.85rem; margin:-8px 0 14px; color:var(--color-success); }
.cgp-product-buy .stock.out-of-stock{ color:#B5432F; }
.cgp-qty{ display:flex; flex-direction:column; gap:6px; margin-bottom:18px; }
.cgp-qty-label{ font-size:.8rem; font-weight:700; color:var(--color-text-soft); }
.woocommerce .cgp-qty .quantity{ float:none; margin:0; }
.woocommerce .cgp-qty .quantity .qty{ width:96px; text-align:left; padding:11px 12px; }

.woocommerce div.product .cgp-product-buy .cgp-btn-cart,
.woocommerce div.product .cgp-product-buy form.cart .single_add_to_cart_button{
  width:100%; float:none; padding:17px 24px; font-size:1.02rem;
}
.woocommerce div.product .cgp-product-buy form.cart{ margin:0; }
.woocommerce div.product .cgp-product-buy form.cart .quantity{ margin:0 0 14px; float:none; }

/* Zone de personnalisation (champs fournis par une extension) */
.cgp-product-extra{ margin-top:30px; padding-top:26px; border-top:1px solid var(--color-border); }

/* Description longue */
.cgp-product-description{
  margin-top:28px; background:var(--color-surface); border:1px solid var(--color-border);
  border-radius:var(--radius-lg); padding:30px 32px;
}
.cgp-section-title{
  font-family:var(--font-mono); font-size:.8rem; text-transform:uppercase; letter-spacing:.1em;
  color:var(--color-text-soft); font-weight:600; margin:0 0 16px;
}
.cgp-product-description-body{ max-width:820px; }
.cgp-product-description-body h3{ font-size:1.35rem; margin:0 0 .6em; }
.cgp-product-description-body h4{ font-size:1.05rem; margin:1.4em 0 .5em; }
.cgp-product-description-body ul{ list-style:disc; padding-left:1.2em; margin:0 0 1em; }
.cgp-product-description-body li{ margin-bottom:.35em; }
.cgp-product-description-body p:last-child{ margin-bottom:0; }

/* Produits similaires */
.woocommerce .related.products, .woocommerce .upsells.products{ margin-top:48px; }
.woocommerce .related.products > h2, .woocommerce .upsells.products > h2{
  font-size:clamp(1.3rem, 2.2vw, 1.6rem); margin-bottom:22px;
}

@media (max-width: 1020px){
  .cgp-product-grid{ grid-template-columns:minmax(0, 1fr) minmax(0, 1fr); }
  .cgp-product-buy{ grid-column:1 / -1; }
}
@media (max-width: 640px){
  .cgp-product-card{ padding:22px 18px 24px; }
  .cgp-product-grid{ grid-template-columns:1fr; gap:22px; }
  .cgp-product-description{ padding:24px 18px; }
}

/* --------------------------------------------------------------------------
   5. Panier, commande, compte client (pages WordPress)
   -------------------------------------------------------------------------- */
.woocommerce-cart .entry-content,
.woocommerce-checkout .entry-content,
.woocommerce-account .entry-content{ max-width:var(--container); }

.woocommerce table.shop_table{
  border:1px solid var(--color-border); border-radius:var(--radius-md); border-collapse:separate;
  background:var(--color-surface); overflow:hidden;
}
.woocommerce table.shop_table th{
  font-family:var(--font-mono); font-size:.76rem; text-transform:uppercase; letter-spacing:.06em; color:var(--color-text-soft);
}
.woocommerce table.shop_table td, .woocommerce table.shop_table th{ border-top-color:var(--color-border); padding:14px 16px; }
.woocommerce table.shop_table td.product-name a{ font-weight:600; color:var(--color-ink); }
.woocommerce table.shop_table td.product-thumbnail{ width:96px; }
.woocommerce table.shop_table td.product-thumbnail img{
  width:72px; height:auto; border-radius:8px; border:1px solid var(--color-border); background:var(--color-bg);
}
.woocommerce td.product-name dl.variation{ font-size:.85rem; color:var(--color-text-soft); margin:6px 0 0; }
.woocommerce td.product-name dl.variation dt{ font-weight:600; }
.woocommerce td.product-name dl.variation dd{ margin:0 0 4px; }
.woocommerce td.product-name dl.variation dd p{ margin:0; font-family:var(--font-mono); font-size:.82rem; }
.woocommerce .cart-collaterals .cart_totals h2,
.woocommerce-checkout h3{ font-size:1.25rem; }

.woocommerce-account .woocommerce-MyAccount-navigation ul{ display:flex; flex-direction:column; gap:4px; }
.woocommerce-account .woocommerce-MyAccount-navigation a{
  display:block; padding:10px 14px; border-radius:8px; color:var(--color-ink); font-weight:600; font-size:.94rem;
}
.woocommerce-account .woocommerce-MyAccount-navigation .is-active a,
.woocommerce-account .woocommerce-MyAccount-navigation a:hover{ background:rgba(44,110,142,.1); color:var(--color-brand-deep); }

/* --------------------------------------------------------------------------
   6. Lien panier dans l'en-tête
   -------------------------------------------------------------------------- */
.header-cart{
  position:relative; display:inline-flex; align-items:center; justify-content:center;
  width:40px; height:40px; border-radius:50%; color:#fff; border:1px solid rgba(255,255,255,.25);
  transition:background .15s ease;
}
.header-cart:hover{ background:rgba(255,255,255,.1); color:#fff; }
.header-cart-count{
  position:absolute; top:-5px; right:-5px; min-width:19px; height:19px; padding:0 5px; border-radius:999px;
  background:var(--color-accent); color:#241205; font-family:var(--font-mono); font-size:.7rem; font-weight:700;
  display:flex; align-items:center; justify-content:center; line-height:1;
}
.header-cart-count.is-empty{ display:none; }
