/* ==========================================================================
   PREMIUM WOO LAYOUT — MATEC
   Design premium epure, homogene avec le design system verre/navy/or.
   Charge en DERNIER (apres style.css + premium-products-enhancements.css)
   => impose ses regles (selecteurs specifiques + !important cibles).

   Couvre : cartes produits (boutique/categories/marques/relies/recherche),
            bare de tri, pagination, hero boutique, page produit,
            recherche, articles, panier/commande.
   ========================================================================== */

/* ==========================================================================
   1. CARTE PRODUIT PREMIUM (.tim-pcard)
   ========================================================================== */
.woocommerce ul.products li.product.tim-pcard,
.woocommerce-page ul.products li.product.tim-pcard {
  background: linear-gradient(180deg, color-mix(in srgb, var(--c-bg-2) 94%, var(--c-content) 6%), var(--c-bg-2)) !important;
  border: 1px solid color-mix(in srgb, var(--c-action) 24%, transparent) !important;
  border-radius: 16px !important;
  box-shadow: 0 24px 60px -30px rgba(0, 0, 0, .85), inset 0 1px 0 color-mix(in srgb, #fff 9%, transparent) !important;
  padding: 12px !important;
  display: flex !important;
  flex-direction: column;
  overflow: hidden;
  transition: transform .35s cubic-bezier(.4, 0, .2, 1), border-color .3s ease, box-shadow .3s ease !important;
}

.woocommerce ul.products li.product.tim-pcard:hover {
  transform: translateY(-6px) !important;
  border-color: color-mix(in srgb, var(--c-action) 58%, transparent) !important;
  box-shadow: 0 34px 90px -34px rgba(0, 0, 0, .95), 0 0 0 1px color-mix(in srgb, var(--c-action) 22%, transparent), inset 0 1px 0 rgba(255, 255, 255, .1) !important;
}

/* --- Zone image : "studio" clair pour visibilite des visuels ghost --- */
.tim-pcard-media {
  position: relative;
  margin: 0;
  padding: 6px;
  border-radius: 12px;
  background:
    radial-gradient(120% 100% at 50% 0%, #ffffff 0%, #f2f5f9 55%, #e3e8ef 100%);
}

.tim-pcard-thumb,
.tim-pcard-media .et_shop_image {
  display: block;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 0;
}

.tim-pcard-media img {
  width: 100% !important;
  height: auto;
  aspect-ratio: 1 / 1;
  object-fit: contain;
  margin: 0 !important;
  border-radius: 8px !important;
  transition: transform .55s ease !important;
}

.tim-pcard:hover .tim-pcard-media img {
  transform: scale(1.045);
}

.tim-pcard-media .et_overlay {
  border-radius: 8px;
}

/* --- Badge marque (pastille premium) --- */
.tim-pcard-badge {
  position: absolute;
  top: 14px;
  left: 14px;
  z-index: 5;
  padding: 4px 10px 3px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--c-dark) 82%, transparent);
  border: 1px solid color-mix(in srgb, var(--c-action) 65%, transparent);
  color: var(--tim-text-dark);
  font-family: var(--font-heading);
  font-size: 9.5px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}

.tim-pcard .onsale {
  top: 14px !important;
  right: 14px !important;
  left: auto !important;
  z-index: 6;
  margin: 0 !important;
  border-radius: 999px !important;
  background: linear-gradient(135deg, var(--c-action), var(--c-action-2)) !important;
  color: var(--c-dark) !important;
  font-family: var(--font-heading) !important;
  font-weight: 800 !important;
  letter-spacing: .06em;
  line-height: 1 !important;
  padding: 7px 12px !important;
  box-shadow: 0 8px 20px -6px rgba(255, 121, 0, .7);
}

/* --- Corps de carte : éléments CENTRÉS, mise en page aérée --- */
.tim-pcard-body {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  flex: 1;
  padding: 14px 4px 0;
}

/* Titre produit : TOUJOURS sur UNE SEULE ligne (jamais coupé sur 2 lignes). */
.tim-pcard-title {
  margin: 0 0 8px !important;
  padding: 0 !important;
  font-family: var(--font-heading);
  font-size: 13.5px;
  line-height: 1.3;
  font-weight: 700;
  color: var(--tim-text-dark);
  display: block;
  max-width: 100%;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.tim-pcard-title a {
  color: inherit;
  text-decoration: none;
  transition: color .2s ease;
}

.tim-pcard-title a:hover {
  color: var(--tim-gold-light);
}

/* --- Pied de carte : référence + lien voir, centrés --- */
.tim-pcard-foot {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  width: 100%;
  margin-top: auto;
  padding-top: 10px;
  border-top: 1px solid color-mix(in srgb, var(--c-action) 18%, transparent);
}

.tim-pcard-sku {
  font-size: 10.5px;
  letter-spacing: .05em;
  text-transform: uppercase;
  color: var(--tim-slate);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.tim-pcard-more {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .02em;
  color: var(--tim-gold-light);
  text-decoration: none;
  white-space: nowrap;
  transition: color .2s ease, gap .2s ease;
}

.tim-pcard-more:hover {
  color: var(--c-action);
  gap: 8px;
}

.tim-pcard-arrow {
  line-height: 0;
}

/* --- Bouton Devis (pastille compacte, 1 seul bouton) --- */
.tim-pcard .tim-pcard-devis {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: auto !important;
  min-width: 150px;
  height: 32px;
  margin: 12px auto 4px !important;
  padding: 0 20px !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: var(--btn-gold) !important;
  color: var(--c-dark) !important;
  font-family: var(--font-heading) !important;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  box-shadow: 0 10px 26px -10px rgba(255, 121, 0, .65) !important;
  transition: transform .25s ease, box-shadow .25s ease !important;
}

.tim-pcard .tim-pcard-devis:hover {
  transform: translateY(-1px) !important;
  box-shadow: 0 14px 30px -10px rgba(255, 121, 0, .8) !important;
}

.tim-pcard-devis-ic {
  display: inline-flex;
}

/* --- Neutralise les styles anciens du loop qui ne servent plus --- */
.woocommerce ul.products li.product.tim-pcard .woocommerce-loop-product__title,
.woocommerce ul.products li.product.tim-pcard .price {
  display: none !important;
}

/* --- Grille produits : aérage entre les cartes --- */
.woocommerce ul.products,
.woocommerce-page ul.products {
  gap: 24px 20px !important;
  margin-bottom: 8px !important;
}

/* ==========================================================================
   2. OUTILS DE TRI / CHIPS / COMPTEUR (pages categorie + marques)
   ========================================================================== */
body .bp-toolbar {
  background: linear-gradient(180deg, color-mix(in srgb, var(--c-bg-2) 96%, #fff 4%), var(--c-bg-2)) !important;
  border: 1px solid color-mix(in srgb, var(--c-action) 18%, transparent) !important;
  border-radius: 16px !important;
  padding: 16px 18px !important;
  margin-bottom: 26px !important;
  box-shadow: 0 20px 50px -28px rgba(0, 0, 0, .7) !important;
}

body .bp-toolbar .bp-chips {
  gap: 10px !important;
  margin-bottom: 0 !important;
}

body .bp-chip {
  background: transparent !important;
  border: 1px solid color-mix(in srgb, var(--c-action) 30%, transparent) !important;
  border-radius: 999px !important;
  color: var(--tim-slate) !important;
  font-size: 12px !important;
  padding: 6px 15px !important;
  transition: all .25s ease !important;
}

body .bp-chip:hover,
body .bp-chip.is-active {
  background: var(--btn-gold) !important;
  border-color: transparent !important;
  color: var(--c-dark) !important;
  box-shadow: 0 8px 22px -8px rgba(255, 121, 0, .7) !important;
}

body .bp-toolbar form {
  background: transparent !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
  display: flex;
  align-items: center;
  gap: 10px;
}

body .bp-toolbar label {
  color: var(--tim-slate) !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  margin: 0 !important;
}

body .bp-toolbar select {
  background-color: color-mix(in srgb, var(--c-dark) 70%, transparent) !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23FFB266' d='M6 9l3-3H3z'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 12px center !important;
  color: var(--tim-text) !important;
  border: 1px solid color-mix(in srgb, var(--c-action) 26%, transparent) !important;
  border-radius: 10px !important;
  padding: 9px 32px 9px 14px !important;
  font-size: 13px !important;
  min-width: 190px !important;
}

body .bp-result-count {
  color: var(--tim-text) !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  letter-spacing: .02em;
}

body .bp-empty {
  color: var(--tim-slate) !important;
  border: 1px dashed color-mix(in srgb, var(--c-action) 35%, transparent) !important;
  border-radius: 14px !important;
  background: color-mix(in srgb, var(--c-bg-2) 90%, transparent) !important;
  padding: 34px 20px !important;
}

/* --- Pagination --- */
body .woocommerce-pagination ul.page-numbers,
body .woocommerce-pagination ul {
  margin: 0 !important;
}

body .woocommerce-pagination a,
body .woocommerce-pagination span {
  background: transparent !important;
  border: 1px solid color-mix(in srgb, var(--c-action) 26%, transparent) !important;
  color: var(--tim-slate) !important;
  border-radius: 999px !important;
  width: 38px !important;
  height: 38px !important;
  line-height: 36px !important;
  font-size: 13px !important;
  transition: all .25s ease !important;
}

body .woocommerce-pagination a:hover {
  background: var(--btn-gold) !important;
  color: var(--c-dark) !important;
  border-color: transparent !important;
}

body .woocommerce-pagination span.current {
  background: linear-gradient(135deg, var(--c-action), var(--c-action-2)) !important;
  color: var(--c-dark) !important;
  border-color: transparent !important;
}

body .woocommerce-pagination .prev,
body .woocommerce-pagination .next {
  width: auto !important;
  padding: 0 18px !important;
  text-transform: uppercase;
  letter-spacing: .04em;
  font-weight: 700 !important;
}

/* ==========================================================================
   3. HERO BOUTIQUE + RECHERCHE PRODUIT (archive-product.php)
   ========================================================================== */
.tsp-hero {
  position: relative;
  margin-bottom: 30px;
}

.tsp-hero-inner {
  position: relative;
  overflow: hidden;
  border-radius: 20px;
  padding: 46px 44px 40px;
  background:
    radial-gradient(90% 130% at 85% -20%, color-mix(in srgb, var(--c-action) 22%, transparent) 0%, transparent 55%),
    linear-gradient(135deg, var(--c-bg-2) 0%, color-mix(in srgb, var(--c-bg-2) 88%, var(--c-dark)) 100%);
  border: 1px solid color-mix(in srgb, var(--c-action) 26%, transparent);
  box-shadow: 0 30px 70px -32px rgba(0, 0, 0, .8), inset 0 1px 0 rgba(255, 255, 255, .07);
}

.tsp-kicker {
  display: block;
  font-family: var(--font-heading);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--tim-gold-light);
  margin-bottom: 10px;
}

.tsp-title {
  font-family: var(--font-heading);
  font-size: clamp(26px, 3.4vw, 38px);
  line-height: 1.15;
  font-weight: 800;
  color: var(--tim-text-dark);
  margin: 0 0 10px;
  letter-spacing: -.01em;
}

.tsp-desc {
  max-width: 640px;
  margin: 0 0 22px;
  color: var(--tim-slate);
  font-size: 14.5px;
  line-height: 1.65;
}

.tsp-search {
  display: flex;
  gap: 10px;
  max-width: 560px;
  margin-bottom: 22px;
}

.tsp-search input[type="search"] {
  flex: 1;
  min-width: 0;
  height: 48px;
  padding: 0 18px;
  border-radius: 999px;
  border: 1px solid color-mix(in srgb, var(--c-action) 34%, transparent);
  background: color-mix(in srgb, var(--c-dark) 62%, transparent);
  color: var(--tim-text);
  font-size: 14px;
  outline: none;
  transition: border-color .25s ease, box-shadow .25s ease;
}

.tsp-search input[type="search"]::placeholder {
  color: var(--tim-slate);
  opacity: .8;
}

.tsp-search input[type="search"]:focus {
  border-color: color-mix(in srgb, var(--c-action) 70%, transparent);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--c-action) 16%, transparent);
}

.tsp-search button {
  height: 48px;
  padding: 0 26px;
  border: 0;
  border-radius: 999px;
  background: var(--btn-gold);
  color: var(--c-dark);
  font-family: var(--font-heading);
  font-weight: 800;
  font-size: 13px;
  letter-spacing: .06em;
  text-transform: uppercase;
  cursor: pointer;
  box-shadow: 0 12px 28px -10px rgba(255, 121, 0, .7);
  transition: transform .25s ease, box-shadow .25s ease;
}

.tsp-search button:hover {
  transform: translateY(-1px);
  box-shadow: 0 16px 32px -10px rgba(255, 121, 0, .85);
}

.tsp-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
}

.tsp-chip {
  display: inline-block;
  padding: 6px 15px;
  border-radius: 999px;
  border: 1px solid color-mix(in srgb, var(--c-action) 26%, transparent);
  background: color-mix(in srgb, var(--c-dark) 42%, transparent);
  color: var(--tim-text);
  font-size: 12px;
  font-weight: 600;
  text-decoration: none;
  transition: all .25s ease;
}

.tsp-chip:hover {
  background: var(--btn-gold);
  border-color: transparent;
  color: var(--c-dark);
}

/* --- Toolbar boutique --- */
body .tsp-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 22px;
  padding: 14px 18px;
  border-radius: 14px;
  border: 1px solid color-mix(in srgb, var(--c-action) 16%, transparent);
  background: color-mix(in srgb, var(--c-bg-2) 88%, transparent);
}

body .tsp-toolbar .woocommerce-result-count {
  display: none !important;
}

body .tsp-toolbar .tsp-count {
  margin: 0;
  color: var(--tim-slate);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .02em;
}

body .tsp-toolbar .woocommerce-before-shop-loop {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  width: 100%;
}

body .tsp-toolbar form.woocommerce-ordering {
  margin: 0 !important;
  float: none !important;
}

body .tsp-toolbar select.orderby {
  background-color: color-mix(in srgb, var(--c-dark) 70%, transparent) !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23FFB266' d='M6 9l3-3H3z'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 12px center !important;
  border: 1px solid color-mix(in srgb, var(--c-action) 26%, transparent) !important;
  border-radius: 10px !important;
  color: var(--tim-text) !important;
  padding: 9px 32px 9px 14px !important;
  font-size: 13px !important;
  min-width: 200px !important;
}

body .tsp-toolbar .woocommerce-breadcrumb {
  color: var(--tim-slate) !important;
}

/* ==========================================================================
   4. PAGE PRODUIT PREMIUM (.tim-sp)
   ========================================================================== */
.tim-sp {
  margin-bottom: 40px;
}

.tim-sp-layout {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 26px;
}

/* Zone image : au milieu, largeur maîtrisée */
.tim-sp-layout .tim-sp-media {
  width: 100%;
  max-width: 580px;
}

/* Colonne info : détails centrés SOUS l'image, même largeur que l'image.
   !important : woocommerce-layout.css impose float:right + width:48%
   sur div.product div.summary (la .summary EST .tim-sp-info) → on reprend la main. */
.tim-sp-layout .tim-sp-info {
  width: 100% !important;
  max-width: 580px;
  float: none !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* --- Galerie --- */
.tim-sp-media .woocommerce-product-gallery {
  width: 100% !important;
  float: none !important;
  padding: 6px;
  border-radius: 18px;
  background: linear-gradient(180deg, #ffffff 0%, #f1f4f8 60%, #e6eaf1 100%);
  border: 1px solid color-mix(in srgb, var(--c-action) 22%, transparent);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .9), 0 26px 60px -30px rgba(0, 0, 0, .8);
}

.tim-sp-media .woocommerce-product-gallery__wrapper,
.tim-sp-media .flex-viewport {
  aspect-ratio: 1 / 1;
  overflow: hidden;
  border-radius: 12px;
  background: linear-gradient(180deg, #ffffff 0%, #f1f4f8 60%, #e6eaf1 100%);
}

.tim-sp-media .woocommerce-product-gallery img {
  object-fit: contain;
  width: 100% !important;
  height: 100% !important;
  max-height: none !important;
  margin: 0 auto !important;
  display: block;
}

.tim-sp-media .flex-control-thumbs {
  margin: 12px 0 0 !important;
  padding: 0 !important;
}

.tim-sp-media .flex-control-thumbs li {
  width: 22% !important;
  margin-right: 2.66% !important;
}

.tim-sp-media .flex-control-thumbs img {
  border-radius: 8px !important;
  border: 1px solid rgba(0, 0, 0, .08);
  opacity: .65;
  transition: opacity .2s ease, border-color .2s ease;
}

.tim-sp-media .flex-control-thumbs img.flex-active,
.tim-sp-media .flex-control-thumbs img:hover {
  opacity: 1;
  border-color: color-mix(in srgb, var(--c-action) 60%, transparent);
}

.tim-sp-media .onsale {
  top: 22px !important;
  left: 22px !important;
  right: auto !important;
}

/* --- Colonne info : centrée --- */
.tim-sp-info {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 14px;
}

/* --- Bloc marque : logo en HAUT de page, centré --- */
.tim-sp-brand {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 14px;
  padding: 12px 22px;
  border-radius: 999px;
  border: 1px solid color-mix(in srgb, var(--c-action) 20%, transparent);
  background: color-mix(in srgb, var(--c-bg-2) 90%, transparent);
}

.tim-sp-brand-logo {
  max-height: 34px;
  width: auto;
  display: block;
}

.tim-sp-brand-name {
  font-family: var(--font-heading);
  font-weight: 800;
  letter-spacing: .02em;
  color: var(--tim-text-dark);
  text-transform: uppercase;
  font-size: 13px;
}

.tim-sp-brand-link {
  font-size: 12px;
  font-weight: 700;
  color: var(--tim-gold-light);
  text-decoration: none;
  white-space: nowrap;
  padding-left: 16px;
  border-left: 1px solid color-mix(in srgb, var(--c-action) 25%, transparent);
}

.tim-sp-brand-link:hover {
  color: var(--c-action);
}

body .woocommerce div.product .tim-sp-info h1.product_title {
  margin: 2px 0 0 !important;
  padding: 0 !important;
  font-family: var(--font-heading);
  font-size: clamp(28px, 3.1vw, 40px);
  line-height: 1.12;
  font-weight: 800;
  color: var(--tim-text-dark);
  letter-spacing: -.02em;
  text-wrap: balance;
}

/* Sur la fiche : le contenu prend toute la largeur (pas de sidebar WordPress) */
body.single-product #left-area,
body.single-product #content-area,
body.single-post #left-area,
body.search-results #left-area {
  width: 100% !important;
  float: none !important;
}

.tim-sp-info .woocommerce-product-details__short-description {
  margin: 0;
  color: var(--tim-slate);
  font-size: 14.5px;
  line-height: 1.7;
}

.tim-sp-info .woocommerce-product-details__short-description p {
  margin: 0 0 10px;
}

.tim-sp-info .woocommerce-product-details__short-description p:last-child {
  margin-bottom: 0;
}

/* --- CTA devis (modele "sur devis") --- */
.tim-sp .tim-request-quote {
  margin: 6px auto 0;
  width: 100%;
  max-width: 560px;
  padding: 18px 20px;
  border-radius: 14px;
  border: 1px solid color-mix(in srgb, var(--c-action) 24%, transparent);
  background: linear-gradient(180deg, color-mix(in srgb, var(--c-action) 12%, transparent), transparent);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}

.tim-sp .tim-btn-view.tim-btn-quote,
.tim-sp .tim-dv-single,
.tim-sp button.tim-dv-single {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  height: 50px;
  width: 100%;
  padding: 0 30px !important;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: var(--btn-gold) !important;
  color: var(--c-dark) !important;
  font-family: var(--font-heading) !important;
  font-weight: 800 !important;
  font-size: 13px !important;
  letter-spacing: .06em;
  text-transform: uppercase;
  box-shadow: 0 14px 34px -12px rgba(255, 121, 0, .75) !important;
  transition: transform .25s ease, box-shadow .25s ease !important;
  max-width: 420px;
}

.tim-sp .tim-btn-view.tim-btn-quote:hover,
.tim-sp .tim-dv-single:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 18px 40px -12px rgba(255, 121, 0, .9) !important;
}

.tim-sp .tim-quote-note {
  margin: 0;
  font-size: 12.5px;
  color: var(--tim-slate);
  text-align: center;
}

/* --- Meta produit : centré --- */
.tim-sp .product_meta {
  margin-top: 4px;
  padding-top: 14px;
  border-top: 1px solid color-mix(in srgb, var(--c-action) 16%, transparent);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 7px;
  font-size: 13px;
  color: var(--tim-slate);
  text-align: center;
}

.tim-sp .product_meta > span {
  display: flex;
  align-items: baseline;
  justify-content: center;
  flex-wrap: wrap;
  gap: 8px;
}

.tim-sp .product_meta .metatitle {
  min-width: 92px;
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: var(--tim-gold-light);
}

.tim-sp .product_meta a {
  color: var(--tim-text);
  text-decoration: none;
}

.tim-sp .product_meta a:hover {
  color: var(--tim-gold-light);
}

/* --- Onglets (description) --- */
.woocommerce div.product .tim-sp-extra .woocommerce-tabs {
  margin-top: 34px;
}

.woocommerce div.product .tim-sp-extra ul.tabs.wc-tabs {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
  margin: 0 0 18px !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
}

.woocommerce div.product .tim-sp-extra ul.tabs.wc-tabs::before {
  display: none !important;
}

.woocommerce div.product .tim-sp-extra ul.tabs.wc-tabs li {
  background: transparent !important;
  border: 1px solid color-mix(in srgb, var(--c-action) 20%, transparent) !important;
  border-radius: 999px !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden;
}

.woocommerce div.product .tim-sp-extra ul.tabs.wc-tabs li::before,
.woocommerce div.product .tim-sp-extra ul.tabs.wc-tabs li::after {
  display: none !important;
}

.woocommerce div.product .tim-sp-extra ul.tabs.wc-tabs li a {
  display: block;
  padding: 9px 20px !important;
  font-family: var(--font-heading);
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--tim-slate) !important;
  text-shadow: none !important;
}

.woocommerce div.product .tim-sp-extra ul.tabs.wc-tabs li.active {
  background: var(--btn-gold) !important;
  border-color: transparent !important;
}

.woocommerce div.product .tim-sp-extra ul.tabs.wc-tabs li.active a {
  color: var(--c-dark) !important;
}

.woocommerce div.product .tim-sp-extra .woocommerce-Tabs-panel {
  border-radius: 14px;
  border: 1px solid color-mix(in srgb, var(--c-action) 16%, transparent);
  background: color-mix(in srgb, var(--c-bg-2) 90%, transparent);
  padding: 22px 24px;
  color: var(--tim-slate);
  font-size: 14px;
  line-height: 1.75;
}

.woocommerce div.product .tim-sp-extra .woocommerce-Tabs-panel h2 {
  font-family: var(--font-heading);
  font-size: 18px;
  font-weight: 800;
  color: var(--tim-text-dark);
  margin-bottom: 12px;
}

/* --- Produits lies --- */
.woocommerce div.product .related.products {
  margin-top: 40px;
  padding-top: 26px;
  border-top: 1px solid color-mix(in srgb, var(--c-action) 16%, transparent);
}

.woocommerce div.product .related.products h2,
.woocommerce div.product .upsells.products h2 {
  font-family: var(--font-heading);
  font-size: 20px;
  font-weight: 800;
  color: var(--tim-text-dark) !important;
  margin-bottom: 20px !important;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  text-align: center;
}

.woocommerce div.product .related.products h2::after {
  content: "";
  flex: 1;
  height: 1px;
  background: linear-gradient(90deg, color-mix(in srgb, var(--c-action) 35%, transparent), transparent);
}

/* ==========================================================================
   5. SECTIONS CTA / EXPLOREZ AUSSI (categories + marques) — premium sombre
   ========================================================================== */
body .cc-cta,
body .bp-cta {
  background: radial-gradient(90% 150% at 80% -40%, color-mix(in srgb, var(--c-action) 20%, transparent) 0%, transparent 60%),
    linear-gradient(145deg, var(--c-bg-2), color-mix(in srgb, var(--c-bg-2) 90%, var(--c-dark))) !important;
  border: 1px solid color-mix(in srgb, var(--c-action) 22%, transparent) !important;
  border-radius: 18px !important;
  padding: 38px 30px !important;
  margin: 44px 0 !important;
  box-shadow: 0 30px 70px -32px rgba(0, 0, 0, .85) !important;
}

body .cc-cta-title,
body .bp-cta-title {
  color: var(--tim-text-dark) !important;
}

body .cc-cta-text,
body .bp-cta-text {
  color: var(--tim-slate) !important;
}

body .cc-cta-kicker,
body .bp-cta-kicker {
  color: var(--tim-gold-light) !important;
  font-family: var(--font-heading);
  font-weight: 800;
  font-size: 11px;
  letter-spacing: .16em;
  text-transform: uppercase;
}

body .cc-others,
body .bp-others {
  background: radial-gradient(90% 150% at 15% -40%, color-mix(in srgb, var(--c-action) 14%, transparent) 0%, transparent 60%),
    linear-gradient(145deg, color-mix(in srgb, var(--c-bg-2) 94%, var(--c-dark)), var(--c-bg-2)) !important;
  border: 1px solid color-mix(in srgb, var(--c-action) 16%, transparent) !important;
  border-radius: 18px !important;
  padding: 34px 26px !important;
  margin: 40px 0 !important;
}

body .cc-others-kicker,
body .bp-others-head {
  color: var(--tim-slate) !important;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
}

body .cc-other,
body .bp-other {
  background: color-mix(in srgb, var(--c-dark) 55%, transparent) !important;
  border: 1px solid color-mix(in srgb, var(--c-action) 20%, transparent) !important;
  border-radius: 14px !important;
  box-shadow: none !important;
  transition: transform .3s ease, border-color .3s ease, box-shadow .3s ease !important;
}

body .cc-other:hover,
body .bp-other:hover {
  transform: translateY(-4px) !important;
  border-color: color-mix(in srgb, var(--c-action) 55%, transparent) !important;
  box-shadow: 0 24px 50px -24px rgba(0, 0, 0, .85) !important;
}

body .cc-other-icon,
body .bp-other-logo {
  color: var(--c-action) !important;
}

body .cc-other-name,
body .bp-other-name {
  color: var(--tim-text) !important;
  font-weight: 700;
}

body .cc-other-count,
body .bp-other-count {
  color: var(--tim-slate) !important;
}

/* ==========================================================================
   6. RESULTATS DE RECHERCHE GENERALE (search.php)
   ========================================================================== */
.tim-search-head {
  margin-bottom: 26px;
}

.tim-search-title {
  font-family: var(--font-heading);
  font-size: clamp(22px, 3vw, 30px);
  font-weight: 800;
  color: var(--tim-text-dark);
  margin: 0 0 6px;
}

.tim-search-count {
  color: var(--tim-slate);
  font-size: 13.5px;
}

.tim-search-list {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.tim-search-card {
  display: flex;
  gap: 18px;
  padding: 18px 20px;
  border-radius: 14px;
  border: 1px solid color-mix(in srgb, var(--c-action) 18%, transparent);
  background: linear-gradient(180deg, color-mix(in srgb, var(--c-bg-2) 94%, #fff 4%), var(--c-bg-2));
  box-shadow: 0 18px 44px -26px rgba(0, 0, 0, .8);
  transition: transform .25s ease, border-color .25s ease;
}

.tim-search-card:hover {
  transform: translateY(-3px);
  border-color: color-mix(in srgb, var(--c-action) 48%, transparent);
}

.tim-search-card-mark {
  flex: 0 0 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 12px;
  background: color-mix(in srgb, var(--c-action) 14%, transparent);
  color: var(--tim-gold-light);
  font-family: var(--font-heading);
  font-weight: 800;
  font-size: 11px;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.tim-search-card-head {
  display: flex;
  align-items: baseline;
  gap: 10px;
  flex-wrap: wrap;
}

.tim-search-card-title {
  font-family: var(--font-heading);
  font-size: 15.5px;
  font-weight: 700;
  color: var(--tim-text-dark);
  margin: 0;
}

.tim-search-card-title a {
  color: inherit;
  text-decoration: none;
}

.tim-search-card-title a:hover {
  color: var(--tim-gold-light);
}

.tim-search-card-kind {
  font-size: 10.5px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--tim-slate);
}

.tim-search-card-excerpt {
  margin: 7px 0 0;
  color: var(--tim-slate);
  font-size: 13.5px;
  line-height: 1.6;
}

.tim-search-empty {
  padding: 44px 24px;
  text-align: center;
  color: var(--tim-slate);
  border: 1px dashed color-mix(in srgb, var(--c-action) 35%, transparent);
  border-radius: 14px;
}

.tim-search-empty-cta {
  display: inline-block;
  margin-top: 14px;
  padding: 12px 26px;
  border-radius: 999px;
  background: var(--btn-gold);
  color: var(--c-dark);
  font-family: var(--font-heading);
  font-weight: 800;
  font-size: 12.5px;
  letter-spacing: .05em;
  text-transform: uppercase;
  text-decoration: none;
  box-shadow: 0 12px 28px -10px rgba(255, 121, 0, .7);
}

/* ==========================================================================
   7. ARTICLES / BLOG — DIVI (additif, sans casser le builder)
   ========================================================================== */
body.single-post #left-area article,
body.blog #left-area article {
  border-radius: 16px;
  overflow: hidden;
}

body.single-post #left-area article .et_post_meta_wrapper,
body.blog #left-area article .et_post_meta_wrapper {
  padding-top: 0;
}

body.single-post #left-area .entry-title {
  font-family: var(--font-heading);
  font-weight: 800;
  color: var(--tim-text-dark);
  letter-spacing: -.01em;
}

body.single-post #left-area .post-meta,
body.blog #left-area .post-meta {
  color: var(--tim-slate);
  font-size: 12.5px;
  letter-spacing: .03em;
}

body.single-post #left-area .post-meta a,
body.blog #left-area .post-meta a {
  color: var(--tim-gold-light);
}

body.single-post #left-area .entry-content {
  color: var(--tim-slate);
  font-size: 15px;
  line-height: 1.8;
}

body.single-post #left-area .entry-content h2,
body.single-post #left-area .entry-content h3,
body.single-post #left-area .entry-content h4 {
  color: var(--tim-text-dark);
}

body.single-post #left-area .entry-content a {
  color: var(--tim-gold-light);
}

body.single-post #left-area .entry-content img {
  border-radius: 12px;
}

body.single-post #left-area .et_post_meta_wrapper img {
  border-radius: 14px;
}

/* ==========================================================================
   8. PANIER / COMMANDE / COMPTE — finitions premium (additif)
   ========================================================================== */
body.woocommerce-cart table.cart,
body.woocommerce-checkout form.checkout,
body.woocommerce-account .woocommerce-MyAccount-navigation,
body.woocommerce-account .woocommerce-MyAccount-content {
  background: color-mix(in srgb, var(--c-bg-2) 92%, transparent) !important;
  border: 1px solid color-mix(in srgb, var(--c-action) 18%, transparent) !important;
  border-radius: 14px !important;
  overflow: hidden;
}

body.woocommerce-cart table.cart th,
body.woocommerce-cart table.cart td {
  color: var(--tim-text) !important;
  border-color: color-mix(in srgb, var(--c-action) 12%, transparent) !important;
}

body.woocommerce-cart table.cart a,
body.woocommerce-checkout a {
  color: var(--tim-gold-light);
}

body.woocommerce-cart .cart_totals,
body.woocommerce-checkout .woocommerce-additional-fields,
body.woocommerce-checkout #payment {
  background: transparent !important;
}

body.woocommerce-cart table.cart input,
body.woocommerce-checkout input,
body.woocommerce-checkout select,
body.woocommerce-checkout textarea,
body.woocommerce-account input,
body.woocommerce-account select {
  background-color: color-mix(in srgb, var(--c-dark) 60%, transparent) !important;
  border: 1px solid color-mix(in srgb, var(--c-action) 26%, transparent) !important;
  border-radius: 10px !important;
  color: var(--tim-text) !important;
  padding: 10px 14px !important;
  font-size: 13.5px !important;
}

body.woocommerce-cart .button,
body.woocommerce-checkout .button,
body.woocommerce-account .button {
  background: var(--btn-gold) !important;
  color: var(--c-dark) !important;
  border: 0 !important;
  border-radius: 999px !important;
  font-family: var(--font-heading) !important;
  font-weight: 800 !important;
  font-size: 13px !important;
  letter-spacing: .05em;
  text-transform: uppercase;
  padding: 13px 28px !important;
  box-shadow: 0 12px 28px -10px rgba(255, 121, 0, .7);
}

body.woocommerce-cart input[type="number"].qty {
  max-width: 76px;
}

/* ==========================================================================
   9. RESPONSIVE
   ========================================================================== */
@media (max-width: 700px) {
  .tsp-hero-inner {
    padding: 32px 22px 28px;
  }

  .tsp-search {
    flex-direction: column;
  }

  .tsp-search button {
    width: 100%;
  }

  body .bp-toolbar form {
    flex-wrap: wrap;
  }

  body .bp-toolbar select {
    min-width: 100% !important;
    width: 100% !important;
  }

  .tim-search-card {
    flex-direction: column;
    gap: 8px;
  }
}

/* ==========================================================================
   10. BOUTIQUE PLEINE LARGEUR + GRILLE 4 COLONNES (refonte demandée)
   4 produits par ligne, marge large, cartes carrées premium de belle taille.
   ========================================================================== */

/* --- Masque la sidebar sur les catalogues (la nav top-level reste en chips) --- */
body.woocommerce-page:not(.single-product) #sidebar {
  display: none !important;
}

/* --- Élargit le conteneur Divi sur les catalogues produits --- */
body.woocommerce #main-content .container,
body.woocommerce-page #main-content .container {
  width: 1320px !important;
  max-width: 95vw !important;
}
body.woocommerce #content-area,
body.woocommerce-page #content-area {
  width: 100% !important;
}
body.woocommerce #left-area,
body.woocommerce-page #left-area {
  width: 100% !important;
  float: none !important;
  padding-right: 0 !important;
}
body.woocommerce #left-area .woocommerce-breadcrumb,
body.woocommerce-page #left-area .woocommerce-breadcrumb {
  margin-bottom: 20px !important;
}
body.woocommerce #main-content {
  padding-bottom: 70px;
}

/* --- Grille : 4 colonnes larges (bat body.tim-shop-layout / woocommerce) --- */
body.woocommerce-page .tsp-catalog ul.products,
body.tim-shop-layout.woocommerce-page .tsp-catalog ul.products {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 30px !important;
}
.tsp-catalog ul.products li.product {
  width: auto !important;
  margin-right: 0 !important;
  margin-left: 0 !important;
}
@media (max-width: 1200px) {
  body.woocommerce-page .tsp-catalog ul.products,
  body.tim-shop-layout.woocommerce-page .tsp-catalog ul.products {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}
@media (max-width: 820px) {
  body.woocommerce-page .tsp-catalog ul.products,
  body.tim-shop-layout.woocommerce-page .tsp-catalog ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 22px !important;
  }
}
@media (max-width: 480px) {
  body.woocommerce-page .tsp-catalog ul.products,
  body.tim-shop-layout.woocommerce-page .tsp-catalog ul.products {
    grid-template-columns: 1fr !important;
  }
}

/* --- Cartes plus grandes : radius/padding/titre premium --- */
.tsp-catalog ul.products li.product.tim-pcard {
  border-radius: 18px !important;
  padding: 14px !important;
}
.tsp-catalog .tim-pcard-media {
  border-radius: 14px;
  margin-bottom: 4px;
}
.tsp-catalog .tim-pcard-media img {
  border-radius: 10px !important;
}
.tsp-catalog .tim-pcard-title {
  font-size: 14.5px;
  letter-spacing: .01em;
}
.tsp-catalog .tim-pcard-body {
  padding: 16px 6px 0;
}
.tsp-catalog .tim-pcard .tim-pcard-devis {
  height: 38px;
  margin: 14px auto 6px !important;
  padding: 0 26px !important;
  font-size: 11px;
}
.tsp-catalog .tim-pcard-foot {
  padding-top: 12px;
}

/* --- Outils (tri) : pleine largeur aérée --- */
.tsp-catalog .tsp-toolbar {
  margin-bottom: 28px;
  padding: 16px 22px;
}

/* ==========================================================================
   11. HERO MARQUE — hauteur mobile (bug : la hauteur .hs n'existe qu'à partir
   de 981 px, le hero gonflait à ~3200 px sur mobile).
   ========================================================================== */
@media (max-width: 980px) {
  body .bp-hero.hs,
  body .sjb-hero.hs {
    height: min(92svh, 680px) !important;
    min-height: 520px !important;
  }
}
@media (max-width: 767px) {
  body .bp-hero.hs,
  body .sjb-hero.hs {
    height: min(88svh, 600px) !important;
    min-height: 470px !important;
  }
  body .bp-hero.hs .hs-viewport,
  body .sjb-hero.hs .hs-viewport {
    position: absolute !important;
    inset: 0 !important;
  }
  body .bp-hero.hs .hs-track,
  body .sjb-hero.hs .hs-track,
  body .bp-hero.hs .hs-slide,
  body .sjb-hero.hs .hs-slide {
    height: 100% !important;
    min-height: 0 !important;
  }
  body .bp-hero.hs .hs-content,
  body .sjb-hero.hs .hs-content {
    height: 100% !important;
  }
  /* Visuels décoratifs des slides : masqués sur mobile (cadre net) */
  body .bp-hero.hs .hp-collage,
  body .sjb-hero.hs .hp-collage,
  body .bp-hero.hs .hs-visual,
  body .sjb-hero.hs .hs-visual {
    display: none !important;
  }
}

/* ==========================================================================
   12. CARTES PRODUITS MARQUES — verre navy + plaque claire + accent orange
   Unifie Feroof / Aqua Strong / Akfix (cartes blanches) avec le design system.
   ========================================================================== */
body .fr-prod,
body .aq-prod,
body .bp-prod,
body .ak-prod {
  background: linear-gradient(180deg, color-mix(in srgb, var(--c-bg-2) 92%, #fff 8%), var(--c-bg-2)) !important;
  border: 1px solid color-mix(in srgb, var(--c-action) 30%, transparent) !important;
  border-radius: 18px !important;
  box-shadow: 0 26px 60px -30px rgba(0, 0, 0, .85), inset 0 1px 0 rgba(255, 255, 255, .09) !important;
}
body .fr-prod:hover,
body .aq-prod:hover,
body .bp-prod:hover,
body .ak-prod:hover {
  transform: translateY(-5px);
  border-color: color-mix(in srgb, var(--c-action) 62%, transparent) !important;
  box-shadow: 0 32px 80px -32px rgba(0, 0, 0, .95) !important;
}

/* Plaque claire pour l'image (même langage que les cartes boutique / tim-pcard) */
body .fr-prod-media,
body .aq-prod-media,
body .bp-prod-media,
body .ak-prod-media {
  background: #f4f7fc !important;
  border-radius: 13px !important;
  margin: 12px 12px 0 !important;
}
body .fr-prod-media .fr-prod-cat,
body .aq-prod-media .aq-prod-fam {
  background: var(--c-action) !important;
  color: #fff !important;
}

/* Textes clairs + accents orange */
body .fr-prod-body,
body .aq-prod-body {
  border-top: 1px solid rgba(255, 255, 255, .1) !important;
  padding: 16px 16px 18px;
}
body .fr-prod-title,
body .aq-prod-title {
  color: var(--c-content) !important;
}
body .fr-prod-cat,
body .aq-prod-cat {
  color: var(--tim-gold-light) !important;
}
body .fr-prod-link,
body .aq-prod .aq-prod-body > a,
body .aq-prod-link {
  color: var(--c-action) !important;
}