/* ============================================================
 * SoldDolls responsive commerce
 * Pages produit, checkout, catégories home.
 * Override propre, sans !important, BEM-friendly.
 * ============================================================ */

:root{
  --sd-primary:#E63946;
  --sd-primary-dark:#c1121f;
  --sd-text:#1a1a1a;
  --sd-text-2:#666;
  --sd-text-3:#888;
  --sd-text-4:#999;
  --sd-gray-light:#f0f0f0;
  --sd-gray-bg:#fafafa;
  --sd-white:#ffffff;
  --sd-radius-sm:8px;
  --sd-radius-md:12px;
  --sd-radius-lg:16px;
  --sd-radius-pill:20px;
  --sd-shadow-card:0 4px 20px rgba(0,0,0,.08);
  --sd-shadow-hover:0 8px 30px rgba(0,0,0,.15);
  --sd-transition:all .2s ease;
}

/* Focus visible global */
.sd-refactor :focus-visible,
.single-product :focus-visible,
.woocommerce-checkout :focus-visible{
  outline:2px solid var(--sd-primary);
  outline-offset:2px;
}

/* ============================================================
 * 1. PAGE PRODUIT
 * ============================================================ */

.single-product div.product{
  max-width:1200px;
  margin:0 auto;
  padding:40px 20px;
  display:grid;
  grid-template-columns:55% 45%;
  gap:0;
  align-items:flex-start;
}

/* Galerie (col gauche) */
.single-product div.product .woocommerce-product-gallery{
  width:100%;
  float:none;
  margin:0;
  position:relative;
}
.single-product .woocommerce-product-gallery__image,
.single-product .woocommerce-product-gallery__image a{
  display:block;
  border-radius:var(--sd-radius-md);
  overflow:hidden;
  aspect-ratio:1/1;
  background:var(--sd-gray-bg);
}
.single-product .woocommerce-product-gallery__image img,
.single-product .woocommerce-product-gallery__image a img{
  width:100%;
  height:100%;
  object-fit:contain;
}
.single-product .flex-control-thumbs,
.single-product .woocommerce-product-gallery .flex-control-nav{
  display:flex;
  flex-wrap:nowrap;
  gap:12px;
  margin-top:16px;
  padding:0;
  list-style:none;
  overflow-x:auto;
}
.single-product .flex-control-thumbs li{
  width:80px;
  height:80px;
  margin:0;
  flex:0 0 80px;
}
.single-product .flex-control-thumbs li img{
  width:80px;
  height:80px;
  object-fit:cover;
  border:2px solid transparent;
  border-radius:var(--sd-radius-sm);
  cursor:pointer;
  opacity:1;
  transition:var(--sd-transition);
}
.single-product .flex-control-thumbs li img:hover{opacity:.8;}
.single-product .flex-control-thumbs li img.flex-active,
.single-product .flex-control-thumbs li img:focus{
  border-color:var(--sd-primary);
  opacity:1;
}

/* Info (col droite) */
.single-product div.product .summary.entry-summary{
  width:100%;
  float:none;
  margin:0;
  padding-left:40px;
  display:flex;
  flex-direction:column;
  gap:20px;
}

/* Breadcrumb (s'il est placé dans summary, sinon ignoré) */
.single-product .summary .woocommerce-breadcrumb{
  font-size:14px;
  color:var(--sd-text-3);
  margin:0 0 16px;
}

/* Titre H1 */
.single-product .product_title{
  font-size:28px;
  font-weight:700;
  color:var(--sd-text);
  line-height:1.3;
  margin:0;
}

/* Sous-titre (short description) */
.single-product .woocommerce-product-details__short-description{
  font-size:16px;
  color:var(--sd-text-2);
  margin-top:8px;
  line-height:1.6;
}

/* Prix */
.single-product .summary .price,
.single-product .summary p.price,
.single-product .summary span.price{
  font-size:32px;
  font-weight:700;
  color:var(--sd-primary);
  margin-top:16px;
  display:flex;
  align-items:baseline;
  gap:12px;
}
.single-product .summary .price del,
.single-product .summary .price del .amount{
  font-size:20px;
  color:var(--sd-text-4);
  text-decoration:line-through;
  font-weight:500;
}
.single-product .summary .price ins{
  background:transparent;
  text-decoration:none;
  color:var(--sd-primary);
  font-weight:700;
}

/* Badges confiance */
.sd-trust-badges{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:16px;
  list-style:none;
  padding:0;
}
.sd-trust-badges__item{
  padding:6px 12px;
  border-radius:var(--sd-radius-pill);
  font-size:13px;
  font-weight:500;
  background:var(--sd-gray-light);
  color:#333;
  display:inline-flex;
  align-items:center;
  gap:6px;
}
.sd-trust-badges__item--shipping{background:var(--sd-gray-light);color:#333;}
.sd-trust-badges__item--stock{background:#e8f5e9;color:#2e7d32;}
.sd-trust-badges__item--reviews{background:#fff3e0;color:#ef6c00;}

/* Séparateur */
.single-product .summary hr,
.sd-sep{
  border:0;
  border-top:1px solid var(--sd-gray-light);
  margin:20px 0;
}

/* Quantité */
.single-product .summary .quantity{
  display:flex;
  align-items:center;
  gap:12px;
  margin:0;
}
.single-product .summary .quantity .qty{
  width:60px;
  height:40px;
  text-align:center;
  border:1px solid #e0e0e0;
  border-radius:var(--sd-radius-sm);
  font-size:16px;
  padding:0;
  -moz-appearance:textfield;
}
.single-product .summary .quantity .qty::-webkit-outer-spin-button,
.single-product .summary .quantity .qty::-webkit-inner-spin-button{
  -webkit-appearance:none;margin:0;
}
.sd-qty-btn{
  width:40px;
  height:40px;
  border-radius:var(--sd-radius-sm);
  background:#f5f5f5;
  border:0;
  cursor:pointer;
  font-size:18px;
  font-weight:600;
  color:var(--sd-text);
  transition:var(--sd-transition);
}
.sd-qty-btn:hover{background:#ececec;}

/* CTA principal */
.single-product .summary form.cart{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  align-items:center;
  margin:0;
}
.single-product .summary .single_add_to_cart_button,
.single-product .summary button.single_add_to_cart_button{
  width:100%;
  padding:18px;
  background:var(--sd-primary);
  color:var(--sd-white);
  font-size:18px;
  font-weight:600;
  border-radius:var(--sd-radius-md);
  border:0;
  cursor:pointer;
  transition:var(--sd-transition);
  text-transform:none;
  letter-spacing:normal;
  line-height:1;
}
.single-product .summary .single_add_to_cart_button:hover{
  background:var(--sd-primary-dark);
  transform:translateY(-2px);
}
.single-product .summary .single_add_to_cart_button:active{
  transform:translateY(0);
}

/* CTA secondaire */
.sd-cta-secondary{
  width:100%;
  padding:16px;
  background:transparent;
  color:var(--sd-primary);
  border:2px solid var(--sd-primary);
  margin-top:12px;
  border-radius:var(--sd-radius-md);
  font-size:16px;
  font-weight:600;
  cursor:pointer;
  transition:var(--sd-transition);
  display:inline-block;
  text-align:center;
  text-decoration:none;
}
.sd-cta-secondary:hover{
  background:var(--sd-primary);
  color:var(--sd-white);
}

/* Onglets détails (pleine largeur) */
.single-product .woocommerce-tabs{
  grid-column:1 / -1;
  margin-top:48px;
  width:100%;
}
.single-product .woocommerce-tabs ul.tabs{
  display:flex;
  flex-wrap:wrap;
  border:0;
  border-bottom:2px solid var(--sd-gray-light);
  padding:0;
  margin:0;
  background:transparent;
}
.single-product .woocommerce-tabs ul.tabs::before,
.single-product .woocommerce-tabs ul.tabs::after{display:none;}
.single-product .woocommerce-tabs ul.tabs li{
  background:transparent;
  border:0;
  border-radius:0;
  margin:0;
  padding:0;
}
.single-product .woocommerce-tabs ul.tabs li a{
  display:block;
  padding:16px 24px;
  font-size:16px;
  color:var(--sd-text-2);
  font-weight:500;
  border-bottom:3px solid transparent;
  text-decoration:none;
  transition:var(--sd-transition);
}
.single-product .woocommerce-tabs ul.tabs li.active a,
.single-product .woocommerce-tabs ul.tabs li a:hover{
  color:var(--sd-primary);
  border-bottom-color:var(--sd-primary);
  font-weight:600;
}
.single-product .woocommerce-tabs .panel,
.single-product .woocommerce-tabs .wc-tab{
  padding:32px 0;
  min-height:200px;
  color:#444;
  line-height:1.7;
}
.single-product .woocommerce-tabs .panel p{
  max-width:800px;
  margin-bottom:1em;
}
.single-product .woocommerce-product-attributes,
.single-product table.shop_attributes{
  width:100%;
  border-collapse:collapse;
  border:0;
}
.single-product table.shop_attributes tr:nth-child(odd){background:var(--sd-gray-bg);}
.single-product table.shop_attributes td,
.single-product table.shop_attributes th{
  padding:12px 16px;
  border:0;
  border-bottom:1px solid var(--sd-gray-light);
  font-style:normal;
}
.single-product table.shop_attributes th{
  font-weight:500;
  color:var(--sd-text-2);
  width:40%;
  text-align:left;
}

/* Produits similaires */
.single-product .related.products,
.single-product .up-sells{
  grid-column:1 / -1;
  margin-top:48px;
}
.single-product .related.products > h2,
.single-product .up-sells > h2{
  font-size:24px;
  font-weight:600;
  text-align:center;
  margin-bottom:32px;
}
.single-product .related.products ul.products,
.single-product .up-sells ul.products{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:24px;
  list-style:none;
  padding:0;
  margin:0;
}
.single-product .related.products ul.products li.product,
.single-product .up-sells ul.products li.product{
  width:100%;
  margin:0;
  float:none;
}

/* ============================================================
 * CTA FIXE MOBILE
 * ============================================================ */
.sd-mobile-cta{
  display:none;
  position:fixed;
  bottom:0;left:0;right:0;
  z-index:1000;
  align-items:center;
  justify-content:space-between;
  padding:12px 16px;
  background:var(--sd-white);
  border-top:1px solid var(--sd-gray-light);
  box-shadow:0 -4px 20px rgba(0,0,0,.08);
}
.sd-mobile-cta__left{
  display:flex;
  align-items:center;
  gap:12px;
  min-width:0;
}
.sd-mobile-cta__img{
  width:48px;
  height:48px;
  border-radius:var(--sd-radius-sm);
  object-fit:cover;
  flex-shrink:0;
}
.sd-mobile-cta__price{
  font-size:18px;
  font-weight:700;
  color:var(--sd-primary);
  white-space:nowrap;
}
.sd-mobile-cta__btn{
  padding:12px 24px;
  background:var(--sd-primary);
  color:var(--sd-white);
  font-size:14px;
  font-weight:600;
  border-radius:var(--sd-radius-sm);
  border:0;
  white-space:nowrap;
  cursor:pointer;
  transition:var(--sd-transition);
}
.sd-mobile-cta__btn:hover{background:var(--sd-primary-dark);}

/* ============================================================
 * 2. CHECKOUT
 * ============================================================ */

.woocommerce-checkout .sd-checkout,
.woocommerce-checkout.sd-refactor-checkout main,
body.woocommerce-checkout #content,
body.woocommerce-checkout .site-main{
  max-width:1000px;
  margin:0 auto;
  padding:40px 20px;
}

/* Indicateur progression */
.sd-checkout-steps{
  display:flex;
  justify-content:center;
  align-items:flex-start;
  gap:8px;
  margin:32px 0;
  list-style:none;
  padding:0;
}
.sd-checkout-steps__item{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:6px;
}
.sd-checkout-steps__circle{
  width:40px;height:40px;
  border-radius:50%;
  border:2px solid #e0e0e0;
  color:var(--sd-text-4);
  font-weight:600;
  display:flex;align-items:center;justify-content:center;
  background:var(--sd-white);
}
.sd-checkout-steps__item--active .sd-checkout-steps__circle{
  border-color:var(--sd-primary);
  color:var(--sd-primary);
  background:#fff5f5;
}
.sd-checkout-steps__item--done .sd-checkout-steps__circle{
  background:var(--sd-primary);
  color:var(--sd-white);
  border-color:var(--sd-primary);
}
.sd-checkout-steps__label{
  font-size:12px;
  color:var(--sd-text-4);
  text-align:center;
}
.sd-checkout-steps__item--active .sd-checkout-steps__label{color:var(--sd-primary);}
.sd-checkout-steps__line{
  width:60px;height:2px;
  background:#e0e0e0;
  margin:19px 0 0;
}
.sd-checkout-steps__line--done{background:var(--sd-primary);}

/* Bandeau rassurance */
.sd-reassurance{
  background:var(--sd-gray-bg);
  padding:16px;
  border-radius:var(--sd-radius-sm);
  text-align:center;
  margin-bottom:32px;
  font-size:14px;
  color:var(--sd-text-2);
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:24px;
}

/* Grille checkout - monocolonne lisible */
.woocommerce-checkout form.checkout.woocommerce-checkout{
  display:block;
  max-width:560px;
  margin:0 auto;
}
.woocommerce-checkout #customer_details{
  width:100%;
}
.woocommerce-checkout #customer_details .col-1,
.woocommerce-checkout #customer_details .col-2{
  width:100%;
  float:none;
  padding:0;
}
.woocommerce-checkout h3,
.woocommerce-checkout #order_review_heading{
  font-size:20px;
  font-weight:600;
  margin:32px 0 20px;
}
.woocommerce-checkout #order_review_heading{margin-top:0;}

/* Champs */
.woocommerce-checkout .form-row{
  margin:0 0 20px;
  padding:0;
}
.woocommerce-checkout .form-row label{
  font-size:14px;
  font-weight:500;
  color:var(--sd-text-2);
  margin-bottom:6px;
  display:block;
}
.woocommerce-checkout .form-row input.input-text,
.woocommerce-checkout .form-row textarea,
.woocommerce-checkout .form-row .select2-selection,
.woocommerce-checkout .form-row select{
  width:100%;
  padding:14px;
  border:1px solid #e0e0e0;
  border-radius:var(--sd-radius-sm);
  font-size:16px;
  background:var(--sd-white);
  color:var(--sd-text);
  transition:var(--sd-transition);
  box-shadow:none;
  line-height:1.3;
}
.woocommerce-checkout .form-row .select2-selection{
  height:auto;
  min-height:50px;
  display:flex;
  align-items:center;
}
.woocommerce-checkout .form-row input.input-text:focus,
.woocommerce-checkout .form-row textarea:focus,
.woocommerce-checkout .form-row select:focus{
  border-color:var(--sd-primary);
  outline:0;
  box-shadow:0 0 0 3px rgba(230,57,70,.1);
}
.woocommerce-checkout .form-row.woocommerce-invalid input.input-text,
.woocommerce-checkout .form-row.woocommerce-invalid .select2-selection,
.woocommerce-checkout .form-row.woocommerce-invalid select{
  border-color:var(--sd-primary);
}
.woocommerce-checkout .woocommerce-error,
.woocommerce-checkout .form-row .error-message{
  font-size:13px;
  color:var(--sd-primary);
  margin-top:4px;
  background:transparent;
  border:0;
  padding:0;
}
/* 2 colonnes nom/prénom, ville/CP */
.woocommerce-checkout .form-row-first,
.woocommerce-checkout .form-row-last{
  width:calc(50% - 8px);
  float:none;
  display:inline-block;
  vertical-align:top;
}
.woocommerce-checkout .form-row-first{margin-right:16px;}

/* Modes livraison */
.woocommerce-checkout #shipping_method,
ul#shipping_method{
  list-style:none;
  padding:0;
  margin:0;
}
.woocommerce-checkout #shipping_method li,
ul#shipping_method li{
  display:flex;
  align-items:center;
  padding:16px;
  border:2px solid #e0e0e0;
  border-radius:var(--sd-radius-md);
  margin:0 0 12px;
  cursor:pointer;
  transition:var(--sd-transition);
  background:var(--sd-white);
}
.woocommerce-checkout #shipping_method li:has(input:checked),
ul#shipping_method li:has(input:checked){
  border-color:var(--sd-primary);
  background:#fff5f5;
}
.woocommerce-checkout #shipping_method input[type=radio],
ul#shipping_method input[type=radio]{
  accent-color:var(--sd-primary);
  width:20px;height:20px;
  margin:0;
}
.woocommerce-checkout #shipping_method label,
ul#shipping_method label{
  font-size:16px;
  font-weight:500;
  color:var(--sd-text);
  margin:0 0 0 12px;
  flex:1;
  cursor:pointer;
}
.woocommerce-checkout #shipping_method .amount,
ul#shipping_method .amount{
  margin-left:auto;
  font-weight:500;
  color:var(--sd-text-2);
  font-size:14px;
}

/* Récap produits */
.woocommerce-checkout .woocommerce-checkout-review-order-table{
  width:100%;
  border-collapse:collapse;
}
.woocommerce-checkout .woocommerce-checkout-review-order-table th,
.woocommerce-checkout .woocommerce-checkout-review-order-table td{
  padding:12px 0;
  border-bottom:1px solid var(--sd-gray-light);
  font-size:15px;
}
.woocommerce-checkout .woocommerce-checkout-review-order-table .product-name{
  color:var(--sd-text);
  font-weight:500;
}
.woocommerce-checkout .woocommerce-checkout-review-order-table .product-total .amount,
.woocommerce-checkout .woocommerce-checkout-review-order-table .order-total .amount{
  color:var(--sd-primary);
  font-weight:600;
}
.woocommerce-checkout .woocommerce-checkout-review-order-table .order-total th,
.woocommerce-checkout .woocommerce-checkout-review-order-table .order-total td{
  border-top:2px solid var(--sd-gray-light);
  border-bottom:0;
  padding-top:16px;
  font-size:22px;
  font-weight:700;
  color:var(--sd-text);
}

/* Récap financier — pas de sticky, pas de shadow */
.woocommerce-checkout #order_review{
  position:static;
  top:auto;
  background:transparent;
  border-radius:0;
  box-shadow:none;
  padding:0;
  width:100%;
  float:none;
  align-self:auto;
}
.woocommerce-checkout #place_order{
  width:100%;
  margin-top:20px;
  padding:18px;
  background:var(--sd-primary);
  color:var(--sd-white);
  font-size:18px;
  font-weight:600;
  border-radius:var(--sd-radius-md);
  border:0;
  cursor:pointer;
  transition:var(--sd-transition);
  text-transform:none;
  letter-spacing:normal;
}
.woocommerce-checkout #place_order:hover{background:var(--sd-primary-dark);}
.sd-checkout-trust{
  display:flex;
  flex-direction:column;
  gap:8px;
  margin-top:16px;
  font-size:13px;
  color:var(--sd-text-2);
  text-align:center;
}

/* SOLDOLLS CHECKOUT TRUST CHIPS */
.sd-checkout-trust {
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px 10px;
  padding: 14px 16px;
}

.sd-checkout-trust span {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-weight: 700;
  color: #4b4547;
}

.sd-checkout-trust span::before {
  content: "";
  width: 7px;
  height: 7px;
  border-radius: 999px;
  background: var(--sd-pay-green, #0e8f5a);
  box-shadow: 0 0 0 4px rgba(14, 143, 90, .10);
  flex: 0 0 auto;
}
/* /SOLDOLLS CHECKOUT TRUST CHIPS */


/* ============================================================
 * 3. SECTION CATÉGORIES HOME
 * ============================================================ */

.cats-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
  max-width:1200px;
  margin:0 auto;
}
.cat-card{
  position:relative;
  border-radius:var(--sd-radius-lg);
  overflow:hidden;
  cursor:pointer;
  aspect-ratio:4/3;
  box-shadow:var(--sd-shadow-card);
  display:block;
  text-decoration:none;
  transition:transform .3s ease, box-shadow .3s ease;
  isolation:isolate;
}
.cat-card > img,
.cat-card > div:first-child{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .4s ease;
  z-index:1;
}
.cat-card::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(to top,rgba(0,0,0,.7) 0%,rgba(0,0,0,.2) 50%,rgba(0,0,0,0) 100%);
  transition:background .3s ease;
  z-index:2;
}
.cat-overlay{
  position:absolute;
  bottom:0;left:0;right:0;
  padding:24px;
  z-index:3;
  background:transparent;
}
.cat-name{
  font-size:24px;
  font-weight:600;
  color:var(--sd-white);
  text-shadow:0 2px 4px rgba(0,0,0,.3);
  line-height:1.2;
}
.cat-count{
  font-size:14px;
  color:rgba(255,255,255,.85);
  margin-top:6px;
}
.cat-arrow{
  position:absolute;
  top:16px;right:16px;
  z-index:3;
  color:var(--sd-white);
}
.cat-badge--premium{
  position:absolute;
  top:16px;right:16px;
  padding:4px 12px;
  background:var(--sd-primary);
  color:var(--sd-white);
  font-size:12px;
  font-weight:600;
  border-radius:var(--sd-radius-pill);
  text-transform:uppercase;
  z-index:4;
  letter-spacing:.04em;
}
.cat-card:hover{
  transform:translateY(-4px);
  box-shadow:var(--sd-shadow-hover);
}
.cat-card:hover > img{transform:scale(1.05);}
.cat-card:hover::before{background:rgba(0,0,0,.5);}

/* ============================================================
 * RESPONSIVE
 * ============================================================ */
@media (max-width:1024px){
  .single-product .related.products ul.products,
  .single-product .up-sells ul.products{
    grid-template-columns:repeat(2,1fr);
  }
  .cats-grid{grid-template-columns:repeat(2,1fr);}
}

@media (max-width:768px){
  .single-product div.product{
    grid-template-columns:1fr;
    padding:20px 16px;
  }
  .single-product div.product .summary.entry-summary{
    padding-left:0;
  }
  .single-product .product_title{font-size:22px;}
  .single-product .summary .price{font-size:26px;}
  .single-product .summary .price del,
  .single-product .summary .price del .amount{font-size:16px;}
  .single-product .related.products ul.products,
  .single-product .up-sells ul.products{
    grid-template-columns:1fr;
  }

  .cats-grid{grid-template-columns:1fr;gap:16px;}
  .cat-card{aspect-ratio:16/9;}
  .cat-name{font-size:20px;}

  .woocommerce-checkout form.checkout.woocommerce-checkout{
    grid-template-columns:1fr;
    gap:24px;
  }
  .woocommerce-checkout #order_review{
    position:relative;
    top:0;
    margin-bottom:24px;
  }
  .woocommerce-checkout .form-row-first,
  .woocommerce-checkout .form-row-last{
    width:100%;
    margin-right:0;
    display:block;
  }
  body.woocommerce-checkout #content,
  body.woocommerce-checkout .site-main{padding:20px 16px;}

  /* CTA fixe mobile actif */
  body.single-product .sd-mobile-cta{display:flex;}
  body.single-product{padding-bottom:80px;}
}

@media (max-width:480px){
  .single-product .product_title{font-size:20px;}
  .sd-trust-badges__item{font-size:11px;padding:4px 8px;}
  .sd-mobile-cta__btn{padding:10px 16px;font-size:13px;}
  .sd-mobile-cta__price{font-size:16px;}
  .sd-checkout-steps__line{width:32px;}
}

/* ============================================================
 * Mobile commerce adjustments (CTA bar, images, checkout scroll)
 * ============================================================ */

/* Empêche tout débordement horizontal global */
html, body { max-width:100%; overflow-x:hidden; }

/* Fiche produit : toutes les images contenues dans le cadre */
.single-product img,
.single-product .woocommerce-product-gallery img,
.woocommerce-cross-sells img,
.woocommerce-up-sells img,
.related.products img,
.up-sells img,
.cart_item img { max-width:100%; height:auto; display:block; }

/* Sections "Complétez votre achat" / cross-sells / upsells : pas de débordement */
.single-product .related.products,
.single-product .up-sells,
.single-product .cross-sells,
.woocommerce .cross-sells,
.woocommerce .up-sells {
  max-width:100%;
  overflow:hidden;
  box-sizing:border-box;
}
.single-product .related.products ul.products,
.single-product .up-sells ul.products,
.woocommerce .cross-sells ul.products,
.woocommerce .up-sells ul.products {
  margin-left:0;
  margin-right:0;
  padding-left:0;
  padding-right:0;
}
.single-product ul.products li.product a img,
.woocommerce ul.products li.product a img {
  width:100%;
  height:auto;
  object-fit:cover;
}

/* CTA mobile fixe : empêcher que le bouton recouvre le prix */
.sd-mobile-cta { gap:12px; flex-wrap:nowrap; }
.sd-mobile-cta__left { flex:1 1 auto; min-width:0; overflow:hidden; }
.sd-mobile-cta__price {
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  min-width:0;
  font-size:16px;
}
.sd-mobile-cta__btn { flex:0 0 auto; }

@media (max-width:420px){
  .sd-mobile-cta { padding:10px 12px; gap:8px; }
  .sd-mobile-cta__img { width:40px; height:40px; }
  .sd-mobile-cta__price { font-size:15px; }
  .sd-mobile-cta__btn { padding:10px 14px; font-size:13px; }
}
@media (max-width:360px){
  .sd-mobile-cta__img { display:none; }
}

/* Réserver l’espace sous le contenu produit pour la barre mobile */
@media (max-width:768px){
  body.single-product { padding-bottom:96px; }
}

/* ----- Checkout : corriger le déroulement (scroll) ----- */
/* Le récap sticky peut piéger le scroll sur mobile / petits viewports : */
.woocommerce-checkout #order_review {
  max-height:none;
  overflow:visible;
}
@media (min-width:769px){
  .woocommerce-checkout #order_review {
    position:sticky;
    top:24px;
    max-height:calc(100vh - 48px);
    overflow-y:auto;
  }
}
/* Sur mobile : pas de sticky, pas de hauteur limitée */
@media (max-width:768px){
  .woocommerce-checkout #order_review {
    position:static;
    max-height:none;
    overflow:visible;
  }
  .woocommerce-checkout form.checkout.woocommerce-checkout,
  .woocommerce-checkout #customer_details {
    display:block;
  }
  .woocommerce-checkout .woocommerce-checkout-review-order-table { font-size:14px; }
}
/* Empêche les tableaux du checkout de déborder */
.woocommerce-checkout .woocommerce-checkout-review-order-table,
.woocommerce-checkout table.shop_table {
  width:100%;
  display:table;
  table-layout:fixed;
  word-wrap:break-word;
}

/* Mini-panier (offcanvas) : éviter chevauchement boutons et prix */
.widget_shopping_cart .buttons,
.woocommerce-mini-cart__buttons {
  display:flex;
  flex-direction:column;
  gap:10px;
}
.widget_shopping_cart .buttons .button,
.woocommerce-mini-cart__buttons .button { width:100%; text-align:center; }

/* ============================================================
 * Responsive commerce adjustment: image overflow and checkout polish
 * ============================================================ */

/* 1) Global : aucune image / vidéo / iframe ne sort de son cadre */
img, svg, video, iframe, embed, object, picture {
  max-width: 100%;
  height: auto;
  display: block;
}
.wp-block-image img,
.wp-post-image,
.attachment-post-thumbnail,
.woocommerce img,
.woocommerce-product-gallery__image img,
.woocommerce ul.products li.product img,
.woocommerce .product img,
.elementor-image img,
.entry-content img,
.site-main img,
.widget img {
  max-width: 100% !important;
  height: auto !important;
}

/* Conteneurs qui débordent souvent : on cadre proprement */
.site, .site-main, #content, #page, main, .entry-content,
.woocommerce, .woocommerce-page,
.related.products, .up-sells, .cross-sells,
header.site-header, footer.site-footer {
  max-width: 100%;
  box-sizing: border-box;
}

/* Tables larges (panier, checkout, mon compte) -> scroll horizontal */
.woocommerce table.shop_table,
.woocommerce-cart table.cart,
.woocommerce-account table {
  display: block;
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
@media (min-width: 769px){
  .woocommerce table.shop_table { display: table; overflow: visible; }
}

/* Empêche tout débordement horizontal de la page */
html, body { overflow-x: hidden; }
/* body * removed — casse dropdowns absolus (Select2, tooltips, modals) */
body img, body video { max-width: 100% !important; }

/* ============================================================
 * Checkout - layout unique colonne, style clair
 * ============================================================ */
.sd-checkout-wrapper {
  max-width: 560px;
  margin: 0 auto;
  padding: 24px 16px 80px;
}
.sd-checkout-title {
  font-size: 22px;
  font-weight: 700;
  margin: 0 0 16px;
  color: var(--sd-text, #1a1a1a);
}
.sd-trust-bar {
  list-style: none;
  padding: 14px;
  margin: 0 0 24px;
  background: var(--sd-gray-bg, #f6f6f6);
  border-radius: 12px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  font-size: 13px;
  color: var(--sd-text-2, #444);
}
.sd-trust-bar li {
  display: flex;
  align-items: center;
  gap: 10px;
}
.sd-trust-bar .sd-icon { font-size: 16px; }

/* Force la colonne unique partout */
.woocommerce-checkout .sd-checkout-grid,
.woocommerce-checkout form.checkout.woocommerce-checkout {
  display: block !important;
  grid-template-columns: 1fr !important;
}
.sd-checkout-column { width: 100%; display: block; margin: 0 0 24px; }

/* Titres de section : Contact / Livraison / Paiement */
.woocommerce-checkout h3,
.woocommerce-checkout h2.sd-order-review-title,
.woocommerce-billing-fields > h3,
.woocommerce-shipping-fields > h3,
#order_review_heading {
  font-size: 18px !important;
  font-weight: 700 !important;
  margin: 24px 0 12px !important;
  padding: 0 !important;
  color: var(--sd-text, #1a1a1a) !important;
  background: none !important;
  border: 0 !important;
}

/* Champs : grands, arrondis, espacés, conformes au design vidéo */
.woocommerce-checkout .form-row {
  margin: 0 0 12px !important;
  width: 100% !important;
  display: block !important;
  float: none !important;
}
.woocommerce-checkout .form-row-first,
.woocommerce-checkout .form-row-last {
  width: 100% !important;
  margin: 0 0 12px !important;
}
.woocommerce-checkout .form-row label:not(.woocommerce-form__label-for-checkbox) {
  display: none !important; /* placeholders only, checkout style */
}
.woocommerce-checkout .form-row input.input-text,
.woocommerce-checkout .form-row textarea,
.woocommerce-checkout .form-row select,
.woocommerce-checkout .form-row .select2-selection {
  width: 100% !important;
  min-height: 52px;
  padding: 14px 16px !important;
  border: 1px solid #d9d9d9 !important;
  border-radius: 10px !important;
  font-size: 16px !important;
  background: #fff !important;
}
.woocommerce-checkout .form-row input.input-text::placeholder,
.woocommerce-checkout .form-row textarea::placeholder {
  color: #8a8a8a;
}

/* Récap commande en mode "bandeau total" + bouton sticky */
.woocommerce-checkout #order_review {
  position: static !important;
  box-shadow: none !important;
  background: transparent !important;
  padding: 0 !important;
  border-radius: 0 !important;
}
.woocommerce-checkout-review-order-table {
  background: #fff;
  border: 1px solid #ececec;
  border-radius: 12px;
  padding: 8px 12px;
  margin-bottom: 16px;
}

/* CTA Payer maintenant — large, plein largeur, sticky bas */
.woocommerce-checkout #place_order {
  width: 100% !important;
  min-height: 56px !important;
  font-size: 17px !important;
  font-weight: 600 !important;
  border-radius: 12px !important;
  background: var(--sd-primary, #e63946) !important;
  color: #fff !important;
  margin-top: 8px !important;
}

/* Anti-doublons : si plusieurs barres de confiance / titres "Votre commande" */
.sd-checkout-wrapper .sd-trust-bar ~ .sd-trust-bar,
.sd-checkout-wrapper .sd-checkout-title ~ .sd-checkout-title,
.sd-checkout-wrapper h2.sd-order-review-title ~ h2.sd-order-review-title,
.sd-checkout-wrapper #order_review_heading ~ #order_review_heading {
  display: none !important;
}

/* Anti-doublons : pas deux fois la section "Adresse de livraison" si identique */
.woocommerce-checkout .woocommerce-shipping-fields[style*="display: none"],
.woocommerce-checkout .woocommerce-shipping-fields--hidden {
  display: none !important;
}

/* Checkout wrapper compatible single-column */
@media (max-width: 768px){
  .sd-checkout-wrapper { padding-left: 16px; padding-right: 16px; }
  body.woocommerce-checkout { padding-bottom: 0; }
}

/* ============================================================
 * PANIER — layout tableau desktop / 1 colonne mobile
 * ============================================================ */

.sd-cart-page {
  max-width: 1200px;
  margin: 0 auto;
  padding: 40px 20px 60px;
}

/* Layout 2 colonnes : items gauche + sidebar droite */
.sd-cart-layout {
  display: grid;
  grid-template-columns: 1fr 340px;
  gap: 48px;
  align-items: start;
}

/* Tableau items */
.sd-cart-table { width: 100%; }

.sd-cart-table__head {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  padding: 12px 0;
  border-bottom: 2px solid var(--sd-gray-light);
  font-size: 12px;
  font-weight: 700;
  color: var(--sd-text-2);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.sd-cart-table__row {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  align-items: center;
  padding: 20px 0;
  border-bottom: 1px solid var(--sd-gray-light);
}

.sd-cart-product {
  display: flex;
  gap: 16px;
  align-items: flex-start;
}
.sd-cart-product__img img {
  width: 80px;
  height: 80px;
  object-fit: cover;
  border-radius: var(--sd-radius-sm);
  border: 1px solid var(--sd-gray-light);
  display: block;
}
.sd-cart-product__name {
  font-size: 15px;
  font-weight: 600;
  line-height: 1.4;
  margin-bottom: 4px;
}
.sd-cart-product__name a { color: var(--sd-text); text-decoration: none; }
.sd-cart-product__name a:hover { color: var(--sd-primary); }

.sd-cart-remove {
  font-size: 12px;
  color: var(--sd-text-3);
  text-decoration: underline;
  cursor: pointer;
  margin-top: 8px;
  display: inline-block;
  background: none;
  border: 0;
  padding: 0;
}
.sd-cart-remove:hover { color: var(--sd-primary); }

.sd-cart-table__cell--price,
.sd-cart-table__cell--total { font-weight: 600; font-size: 15px; }

/* Code promo dans le main */
.sd-cart-form-actions { padding: 20px 0 0; }

/* Sidebar panier (droite) */
.sd-cart-sidebar { position: sticky; top: 24px; }

.sd-cart-totals-box {
  background: var(--sd-gray-bg);
  border: 1px solid var(--sd-gray-light);
  border-radius: var(--sd-radius-md);
  padding: 24px;
}
.sd-cart-totals-box__title {
  font-size: 17px;
  font-weight: 700;
  margin: 0 0 16px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--sd-gray-light);
}

/* ============================================================
 * CHECKOUT — 2 colonnes desktop / 1 colonne mobile
 * ============================================================ */

.sd-checkout-page {
  max-width: 1200px;
  margin: 0 auto;
  padding: 40px 20px 60px;
}

/* Barre résumé — visible mobile uniquement */
.sd-co-summary-bar {
  display: none;
  justify-content: space-between;
  align-items: center;
  padding: 14px 16px;
  background: var(--sd-gray-bg);
  border: 1px solid var(--sd-gray-light);
  border-radius: var(--sd-radius-sm);
  cursor: pointer;
  font-size: 14px;
  color: var(--sd-primary);
  margin-bottom: 16px;
}
.sd-co-summary-bar__label {
  display: flex;
  align-items: center;
  gap: 8px;
  font-weight: 600;
}
.sd-co-arrow { transition: transform .25s ease; }
.sd-co-summary-bar[aria-expanded="true"] .sd-co-arrow { transform: rotate(180deg); }
.sd-co-summary-bar__price { font-weight: 700; font-size: 16px; color: var(--sd-text); }
.sd-co-summary-bar__price del { color: #999; font-weight: 400; margin-right: 6px; font-size: 13px; }

/* Layout 2 colonnes */
.sd-checkout-layout {
  display: grid;
  grid-template-columns: 1fr 380px;
  gap: 60px;
  align-items: start;
}

/* Colonne résumé droite */
.sd-checkout-summary-col {
  background: var(--sd-gray-bg);
  border: 1px solid var(--sd-gray-light);
  border-radius: var(--sd-radius-md);
  padding: 24px;
  position: sticky;
  top: 24px;
}

/* Produits dans le résumé checkout */
.sd-co-product {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 0;
  border-bottom: 1px solid #f5f5f5;
  font-size: 13px;
}
.sd-co-product__thumb { position: relative; flex-shrink: 0; }
.sd-co-product__thumb img { width: 56px; height: 56px; object-fit: cover; border-radius: 8px; border: 1px solid var(--sd-gray-light); }
.sd-co-product__qty {
  position: absolute; top: -6px; right: -6px;
  background: #888; color: #fff; border-radius: 50%;
  width: 18px; height: 18px; font-size: 11px; font-weight: 700;
  display: flex; align-items: center; justify-content: center;
}
.sd-co-product__info { flex: 1; }
.sd-co-product__name { font-weight: 500; display: block; }
.sd-co-product__price { font-weight: 600; white-space: nowrap; }

/* Code promo résumé */
.sd-co-coupon { display: flex; gap: 8px; padding: 14px 0; }
.sd-co-coupon__input {
  flex: 1; padding: 11px 14px;
  border: 1px solid #d5d5d5; border-radius: 8px; font-size: 14px;
}
.sd-co-coupon__btn {
  padding: 11px 18px; background: transparent;
  border: 1px solid var(--sd-text); border-radius: 8px;
  font-size: 14px; font-weight: 600; cursor: pointer; white-space: nowrap;
}
.sd-co-coupon__btn:hover { background: var(--sd-text); color: #fff; }

/* Totaux résumé */
.sd-co-totals { padding: 10px 0; }
.sd-co-totals__row {
  display: flex; justify-content: space-between;
  padding: 5px 0; font-size: 14px; color: var(--sd-text-2);
}
.sd-co-totals__row--disc { color: var(--sd-primary); }
.sd-co-totals__row--total {
  font-size: 17px; font-weight: 700; color: var(--sd-text);
  border-top: 1px solid var(--sd-gray-light);
  padding-top: 12px; margin-top: 6px;
}
.sd-co-totals__row--total small { font-size: 12px; font-weight: 400; color: #999; margin-right: 4px; }
.sd-co-totals__savings { font-size: 12px; color: var(--sd-primary); text-align: right; margin-top: 4px; }

/* Séparateur */
.sd-co-sep { border: 0; border-top: 1px solid var(--sd-gray-light); margin: 12px 0 16px; }

/* Coupon partagé (panier + checkout) */
.sd-coupon-row,
.sd-co-coupon { display: flex; gap: 8px; padding: 14px 0; }
.sd-coupon-input,
.sd-co-coupon__input {
  flex: 1; padding: 11px 14px;
  border: 1px solid #d5d5d5; border-radius: 8px; font-size: 14px;
}
.sd-coupon-btn,
.sd-co-coupon__btn {
  padding: 11px 18px; background: transparent;
  border: 1px solid var(--sd-text); border-radius: 8px;
  font-size: 14px; font-weight: 600; cursor: pointer; white-space: nowrap;
}
.sd-coupon-btn:hover,
.sd-co-coupon__btn:hover { background: var(--sd-text); color: #fff; }

/* Bouton checkout (sidebar panier) */
.sd-btn-checkout {
  display: block; width: 100%; text-align: center;
  padding: 17px; border-radius: 12px;
  background: var(--sd-primary); color: #fff;
  font-size: 17px; font-weight: 700;
  text-decoration: none; border: none; cursor: pointer;
  margin-top: 20px;
}
.sd-btn-checkout:hover { background: var(--sd-primary-dark); }
.sd-cart-cta__secure {
  display: flex; align-items: center; justify-content: center;
  gap: 6px; font-size: 12px; color: #888; margin-top: 10px;
}

/* ============================================================
 * RESPONSIVE — mobile (< 900px)
 * ============================================================ */
@media (max-width: 900px) {

  /* Panier : 1 colonne */
  .sd-cart-layout {
    grid-template-columns: 1fr;
    gap: 32px;
  }
  .sd-cart-sidebar { position: static; }

  /* Tableau → liste mobile */
  .sd-cart-table__head { display: none; }
  .sd-cart-table__row {
    grid-template-columns: 1fr;
    gap: 4px;
    padding: 16px 0;
  }
  .sd-cart-table__cell--price::before { content: "Prix : "; font-size: 12px; font-weight: 600; color: var(--sd-text-2); }
  .sd-cart-table__cell--qty::before  { content: "Quantité : "; font-size: 12px; font-weight: 600; color: var(--sd-text-2); }
  .sd-cart-table__cell--total::before { content: "Total : "; font-size: 12px; font-weight: 600; color: var(--sd-text-2); }

  /* Checkout : 1 colonne, toggle résumé visible */
  .sd-co-summary-bar { display: flex; }
  .sd-checkout-layout {
    grid-template-columns: 1fr;
    gap: 0;
  }
  .sd-checkout-summary-col {
    display: none;
    position: static;
    order: -1;
    margin-bottom: 16px;
  }
  .sd-checkout-summary-col.sd-co-detail--open { display: block; }

  /* Padding réduit */
  .sd-cart-page,
  .sd-checkout-page { padding: 20px 16px 40px; }

  body.woocommerce-checkout #content,
  body.woocommerce-checkout .site-main { padding: 0; }
}
/* PANIER fond clair */
body.woocommerce-cart{background:#f6f6f7!important;}
body.woocommerce-cart .sd-cart-main{background:#fff!important;border-radius:12px;padding:24px!important;box-shadow:0 1px 4px rgba(0,0,0,.06);}
body.woocommerce-cart .sd-cart-sidebar{background:#f6f6f7!important;border:1px solid #e8e8e8!important;border-radius:12px;padding:24px!important;}
body.woocommerce-cart .sd-cart-table__head,body.woocommerce-cart .sd-cart-item__name,body.woocommerce-cart .sd-cart-item__price,body.woocommerce-cart .sd-cart-item__total,body.woocommerce-cart .sd-cart-sidebar *,body.woocommerce-cart .sd-cart-title{color:#1a1a1a!important;}
body.woocommerce-cart .sd-cart-table__head{border-bottom-color:#e8e8e8!important;}
body.woocommerce-cart .sd-cart-item{border-bottom-color:#f0f0f0!important;}
@media(max-width:900px){body.woocommerce-cart .sd-cart-layout{grid-template-columns:1fr!important;}body.woocommerce-cart .sd-cart-sidebar{margin-top:20px!important;}}
