/* ==========================================================================
   TopChopping - COUCHE SYSTEME
   Imprimee sur wp_head priorite 200, donc apres le CSS additionnel du
   Customizer. C'est la seule couche autoritaire du site.
   Palette : encre / craie / papier + un accent unique (vert sapin).
   Typographie : une seule famille, Instrument Sans.
   Aucune ombre : on separe par des filets 1px.
   ========================================================================== */

:root{
  --ink:#161D19; --slate:#5C625D; --mist:#8E938D;
  --line:#E6E2D9; --line-2:#D5D0C5;
  --chalk:#F5F3EE; --paper:#FFFFFF;
  --fir:#1E4636; --fir-h:#2B6349; --fir-soft:#E4EBE5; --fir-line:#CFDCD2;
  --clay:#A33A2B;
  --r-btn:8px; --r-card:12px; --r-media:16px;
  --tap:48px;
}

/* ---------- Base ---------- */
html{ overflow-x:clip; }
body{
  background:var(--chalk) !important; color:var(--slate) !important;
  font-family:'Instrument Sans',system-ui,-apple-system,'Segoe UI',sans-serif !important;
  -webkit-font-smoothing:antialiased;
}
body, h1,h2,h3,h4,h5,h6, p, a, span, li, td, th, label, small, strong, em,
.button, button, input, select, textarea,
.price, .amount, .product_title, .entry-title, .tc-section-title,
.woocommerce-loop-product__title, .site-title, .site-title a{
  font-family:'Instrument Sans',system-ui,-apple-system,'Segoe UI',sans-serif !important;
}
h1,h2,h3,h4,h5,h6{ color:var(--ink) !important; font-weight:600 !important; }
h1{ letter-spacing:-.035em !important; line-height:1.05 !important; }
h2{ letter-spacing:-.025em !important; line-height:1.15 !important; }
h3{ letter-spacing:-.015em !important; line-height:1.3 !important; }
a{ color:var(--fir) !important; text-underline-offset:3px; }
a:hover{ color:var(--fir-h) !important; }
.price, .amount{ font-variant-numeric:tabular-nums; }
img{ max-width:100%; height:auto; }
:where(a,button,input,select,textarea):focus-visible{
  outline:2px solid var(--fir) !important; outline-offset:2px;
}

/* ---------- Bandeau de confiance ---------- */
.tc-announcement{
  background:var(--ink) !important; color:#B9C2BA !important;
  font-size:12px !important; letter-spacing:.03em !important;
  padding:9px 20px !important;
}

/* ---------- Header ---------- */
.site-header{
  background:var(--paper) !important;
  border-bottom:1px solid var(--line) !important;
  padding:18px 40px 0 !important; box-shadow:none !important;
}
.site-branding .site-title a{
  color:var(--ink) !important; font-size:21px !important; font-weight:600 !important;
  letter-spacing:-.02em !important; white-space:nowrap !important;
}
.site-branding .site-description{ color:var(--mist) !important; font-size:12px !important; }
.secondary-navigation{ display:none !important; }
.storefront-primary-navigation{ background:var(--paper) !important; }
.main-navigation ul.menu > li > a, .main-navigation ul.nav-menu > li > a{
  color:var(--ink) !important; font-size:14.5px !important; font-weight:500 !important;
}
.main-navigation ul.menu > li > a:hover{ color:var(--fir) !important; }
.site-search .widget_product_search form input[type=search]{
  border-radius:var(--r-btn) !important; border:1px solid var(--line) !important;
  background:var(--paper) !important; color:var(--ink) !important;
  font-size:14px !important; min-height:44px !important;
}
.site-header-cart .cart-contents{
  background:transparent !important; color:var(--ink) !important;
  border-radius:var(--r-btn) !important; padding:9px 12px !important;
  font-size:14px !important; font-weight:500 !important;
}
.site-header-cart .cart-contents:hover{ background:var(--chalk) !important; }
.site-header-cart .cart-contents .amount{ color:var(--ink) !important; }
.site-header-cart .cart-contents .count{
  background:var(--fir) !important; color:var(--chalk) !important;
  border-radius:999px !important; padding:1px 8px !important; font-size:12px !important;
}
.storefront-handheld-footer-bar{ display:none !important; }
body.woocommerce-active{ padding-bottom:0 !important; }

/* ---------- Boutons ---------- */
.button, button, input[type=submit],
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.single_add_to_cart_button, #place_order, .checkout-button,
.woocommerce a.button.alt, .woocommerce button.button.alt{
  background:var(--fir) !important; color:var(--chalk) !important;
  border:1px solid var(--fir) !important; border-radius:var(--r-btn) !important;
  font-weight:600 !important; font-size:15.5px !important; letter-spacing:0 !important;
  padding:15px 26px !important; box-shadow:none !important;
  transition:background-color .16s ease, border-color .16s ease !important;
}
.button:hover, .woocommerce a.button:hover, .woocommerce button.button:hover,
.woocommerce input.button:hover, .single_add_to_cart_button:hover,
#place_order:hover, .checkout-button:hover, .woocommerce a.button.alt:hover{
  background:var(--fir-h) !important; border-color:var(--fir-h) !important;
  color:var(--chalk) !important; transform:none !important;
}
.button:active{ transform:scale(.99) !important; }
.tc-home-actions .button.alt,
.woocommerce-cart .coupon .button,
.woocommerce-cart .actions button[name=update_cart]{
  background:var(--paper) !important; color:var(--ink) !important;
  border:1px solid var(--line-2) !important;
}
.tc-home-actions .button.alt:hover,
.woocommerce-cart .coupon .button:hover{
  background:var(--chalk) !important; color:var(--ink) !important; border-color:var(--mist) !important;
}
.menu-toggle{
  position:relative !important; background:transparent !important; color:var(--ink) !important;
  border:1px solid var(--line-2) !important; border-radius:var(--r-btn) !important;
  min-height:46px !important; padding:0 16px 0 44px !important; font-weight:600 !important;
  box-shadow:none !important;
}
.menu-toggle:before{
  position:absolute !important; left:15px !important; top:50% !important;
  transform:translateY(-50%) !important; margin:0 !important;
}
.menu-toggle:hover{ background:var(--chalk) !important; color:var(--ink) !important; }

/* ---------- Hero accueil ---------- */
.tc-home-hero{
  background:var(--paper) !important; border:1px solid var(--line) !important;
  border-radius:var(--r-media) !important; box-shadow:none !important;
  padding:56px 44px !important; gap:44px !important;
}
.tc-eyebrow{
  background:var(--fir-soft) !important; color:var(--fir) !important;
  border-radius:999px !important; font-size:11.5px !important; font-weight:600 !important;
  letter-spacing:.08em !important; padding:5px 11px !important;
}
.tc-home-hero h1{ color:var(--ink) !important; }
.tc-home-hero p{ color:var(--slate) !important; }
.tc-home-hero .tc-home-actions:after{ content:none !important; display:none !important; }
.tc-home-media{ border-radius:var(--r-card) !important; background:var(--chalk) !important; }
.tc-home-brand-visual{
  min-height:380px; display:grid !important; align-content:center; gap:12px; padding:44px;
  background:linear-gradient(145deg,#183E32 0%,#245342 62%,#DDEADF 62%,#EDF3EC 100%) !important;
  overflow:hidden;
}
.tc-home-brand-visual span{
  display:block; width:max-content; padding:9px 14px; border-radius:999px;
  background:rgba(255,255,255,.94); color:#183E32; font-family:'Sora',system-ui,sans-serif;
  font-size:clamp(18px,2.2vw,28px); font-weight:600; letter-spacing:-.02em;
}
.tc-home-brand-visual span:nth-child(2){ margin-left:12%; }
.tc-home-brand-visual span:nth-child(3){ margin-left:24%; }

/* ---------- Bandeau valeurs ---------- */
.tc-values{ background:var(--line) !important; border-color:var(--line) !important; }
.tc-value{ background:var(--paper) !important; }
.tc-value strong{ color:var(--ink) !important; font-weight:600 !important; }
.tc-value span{ color:var(--slate) !important; }

/* ---------- Sections ---------- */
.tc-section-title{ color:var(--ink) !important; }
.tc-section-intro{ color:var(--slate) !important; }
.home .tc-catalog-trust{ display:none !important; }

/* ---------- Cartes produit ---------- */
ul.products li.product{
  display:flex !important; flex-direction:column !important; min-width:0 !important;
  background:var(--paper) !important; border:1px solid var(--line) !important;
  border-radius:var(--r-card) !important; overflow:hidden !important;
  box-shadow:none !important; text-align:left !important;
}
ul.products li.product:hover{ border-color:#C9C4B8 !important; transform:none !important; box-shadow:none !important; }
ul.products li.product img{ background:var(--chalk) !important; border-radius:0 !important; }
ul.products li.product .woocommerce-loop-product__title{
  color:var(--ink) !important; font-size:15.5px !important; font-weight:500 !important;
  line-height:1.35 !important; display:-webkit-box !important; -webkit-line-clamp:2;
  -webkit-box-orient:vertical; overflow:hidden !important; min-height:2.7em !important;
}
ul.products li.product .price{ color:var(--fir) !important; font-weight:600 !important; }
ul.products li.product .button{
  margin-top:auto !important; min-height:46px !important; font-size:14.5px !important;
  display:flex !important; align-items:center !important; justify-content:center !important;
}
.home ul.products{ display:grid !important; gap:20px !important; }
@media (max-width:479px){ .home ul.products{ grid-template-columns:minmax(0,1fr) !important; } }
@media (min-width:480px) and (max-width:899px){ .home ul.products{ grid-template-columns:repeat(2,minmax(0,1fr)) !important; } }
@media (min-width:900px) and (max-width:1199px){ .home ul.products{ grid-template-columns:repeat(3,minmax(0,1fr)) !important; } }
@media (min-width:1200px){ .home ul.products{ grid-template-columns:repeat(4,minmax(0,1fr)) !important; } }
@media (max-width:639px){ .woocommerce ul.products.columns-3{ grid-template-columns:minmax(0,1fr) !important; } }
@media (min-width:640px) and (max-width:899px){ .woocommerce ul.products.columns-3{ grid-template-columns:repeat(2,minmax(0,1fr)) !important; } }
@media (min-width:900px){ .woocommerce ul.products.columns-3{ grid-template-columns:repeat(3,minmax(0,1fr)) !important; } }

/* ---------- Pied de page ---------- */
.site-footer{ background:var(--ink) !important; color:#B9C2BA !important; margin-top:0 !important; }
.site-footer a{ color:#B9C2BA !important; }
.site-footer a:hover{ color:#FFFFFF !important; }
.site-footer .col-full{ grid-template-columns:repeat(auto-fit,minmax(210px,1fr)) !important; }
.tc-footer-brand strong{ display:block !important; color:#FFFFFF !important; }
.tc-footer-brand span{ display:block !important; margin-top:6px !important; }
.tc-footer-links nav{ margin-top:16px !important; }
.tc-footer-links small{ border-top-color:#2A332C !important; color:#7E877F !important; }
.tc-pay-note{ color:#7E877F !important; }

/* ---------- Formulaires ---------- */
input,select,textarea{
  border:1px solid var(--line) !important; border-radius:var(--r-btn) !important;
  background:var(--paper) !important; color:var(--ink) !important;
  min-height:var(--tap) !important;
}
@media (max-width:640px){ input,select,textarea{ font-size:16px !important; } }

@media (prefers-reduced-motion: reduce){
  *{ animation-duration:.01ms !important; transition-duration:.01ms !important; }
}

/* ==========================================================================
   FICHE PRODUIT
   ========================================================================== */

.single-product .product_title{ color:var(--ink) !important; font-size:clamp(26px,3.2vw,36px) !important; }
.single-product .summary > p.price, .single-product .summary > .price{
  color:var(--fir) !important; font-size:clamp(24px,2.6vw,30px) !important;
  font-weight:600 !important; margin:10px 0 14px !important;
}
.single-product .woocommerce-product-details__short-description{
  color:var(--slate) !important; font-size:16.5px !important; line-height:1.6 !important;
}
.single-product .woocommerce-product-gallery img{ border-radius:var(--r-media) !important; background:var(--chalk) !important; }

/* Une seule occurrence du prix et de la description */
.woocommerce-variation-price{ display:none !important; }
.woocommerce-variation-description{ display:none !important; }

/* Une seule mecanique de quantite : les packs */
form.cart:has(.tc-pack) .quantity{ display:none !important; }

/* Variantes visuelles a la place des menus deroulants */
.tc-select-hidden{
  position:absolute !important; width:1px !important; height:1px !important;
  overflow:hidden !important; clip:rect(0 0 0 0) !important; white-space:nowrap !important;
}
.variations .reset_variations{ font-size:13.5px !important; }
.variations td, .variations th{ border:0 !important; padding:0 0 14px !important; display:block !important; }
.variations label{
  font-size:11.5px !important; font-weight:600 !important; letter-spacing:.08em !important;
  text-transform:uppercase !important; color:var(--mist) !important; margin-bottom:8px !important;
}
.tc-optiongroup{ display:grid; gap:8px; }
@media (min-width:520px){ .tc-optiongroup{ grid-auto-flow:column; grid-auto-columns:1fr; } }
.tc-option{
  display:flex !important; flex-direction:column !important; align-items:flex-start !important;
  gap:2px !important; text-align:left !important;
  min-height:var(--tap) !important; padding:11px 14px !important;
  background:var(--paper) !important; color:var(--ink) !important;
  border:1px solid var(--line-2) !important; border-radius:var(--r-btn) !important;
  box-shadow:none !important; cursor:pointer; font-size:15px !important;
  transition:border-color .15s ease, background-color .15s ease !important;
}
.tc-option:hover{ background:var(--chalk) !important; color:var(--ink) !important; border-color:var(--mist) !important; }
.tc-option strong{ font-weight:600 !important; font-size:15.5px !important; color:inherit !important; }
.tc-option span{ font-size:12.5px !important; color:var(--mist) !important; font-weight:400 !important; }
.tc-option[aria-checked="true"]{
  border:2px solid var(--fir) !important; background:var(--fir-soft) !important; color:var(--fir) !important;
}
.tc-option[aria-checked="true"] span{ color:var(--fir) !important; }
.tc-option:disabled{ opacity:.4 !important; cursor:not-allowed; }

/* Packs */
.tc-pack{ border-radius:var(--r-btn) !important; border:1px solid var(--line-2) !important; box-shadow:none !important; }
.tc-pack.is-active{ border:2px solid var(--fir) !important; background:var(--fir-soft) !important; }

/* Bouton d achat */
.single-product .single_add_to_cart_button{
  width:100% !important; min-height:56px !important; font-size:16px !important;
}

/* Date de livraison estimee */
.tc-delivery-estimate{
  margin:14px 0 0 !important; font-size:14.5px !important; line-height:1.55 !important;
  color:var(--slate) !important;
}
.tc-delivery-estimate strong{ color:var(--ink) !important; font-weight:600 !important; }

/* Reassurance : une seule ligne, sobre */
.tc-trust-row{ color:var(--slate) !important; font-size:14px !important; }
.tc-trust-row b{ color:var(--ink) !important; }

/* Onglets : sections pleine largeur au lieu d une colonne vide */
.single-product .woocommerce-tabs{ display:block !important; margin-top:56px !important; }
.single-product .woocommerce-tabs ul.tabs{
  display:flex !important; flex-wrap:wrap !important; gap:6px !important;
  width:100% !important; float:none !important; margin:0 0 24px !important; padding:0 !important;
  border-bottom:1px solid var(--line) !important; list-style:none !important;
}
.single-product .woocommerce-tabs ul.tabs:before, .single-product .woocommerce-tabs ul.tabs:after{ display:none !important; }
.single-product .woocommerce-tabs ul.tabs li{
  background:transparent !important; border:0 !important; border-radius:0 !important;
  margin:0 !important; padding:0 !important;
}
.single-product .woocommerce-tabs ul.tabs li a{
  display:block !important; padding:12px 4px !important; margin:0 16px 0 0 !important;
  color:var(--mist) !important; font-weight:600 !important; font-size:15px !important;
  border-bottom:2px solid transparent !important;
}
.single-product .woocommerce-tabs ul.tabs li.active a{
  color:var(--ink) !important; border-bottom-color:var(--fir) !important;
}
.single-product .woocommerce-tabs .panel{
  width:100% !important; float:none !important; margin:0 !important; padding:0 !important;
  max-width:78ch !important;
}

/* ==========================================================================
   BARRE D ACHAT FIXE (mobile)
   ========================================================================== */
.tc-sticky-buy{
  position:fixed; inset-inline:0; bottom:0; z-index:90;
  display:none; align-items:center; gap:14px;
  padding:10px 16px; padding-bottom:max(10px, env(safe-area-inset-bottom));
  background:var(--paper);
  box-shadow:0 -1px 0 var(--line), 0 -8px 24px -16px rgba(22,29,25,.14);
}
.tc-sticky-buy.is-visible{ display:flex; }
.tc-sticky-buy__meta{ flex:1; min-width:0; }
.tc-sticky-buy__meta b{
  display:block; font-size:13.5px; font-weight:600; color:var(--ink);
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.tc-sticky-buy__meta span, .tc-sticky-buy__meta .price{
  font-size:14px !important; color:var(--fir) !important; font-weight:600 !important;
}
.tc-sticky-buy .button{
  flex:none; width:auto !important; min-height:48px !important;
  padding:0 22px !important; font-size:15px !important;
}
@media (min-width:900px){ .tc-sticky-buy{ display:none !important; } }

/* ==========================================================================
   PIED DE PAGE - liens legaux
   ========================================================================== */
.tc-footer-legal{
  grid-column:1 / -1 !important;
  display:flex !important; flex-wrap:wrap !important; gap:10px 22px !important;
  margin-top:22px !important; padding-top:20px !important;
  border-top:1px solid #2A332C !important;
  font-size:13.5px !important;
}
.tc-footer-legal a{ color:#8FA596 !important; text-decoration:none !important; }
.tc-footer-legal a:hover{ color:#FFFFFF !important; }

/* ==========================================================================
   MOBILE
   ========================================================================== */
@media (max-width:640px){
  .tc-announcement{ padding:8px 12px !important; font-size:11px !important; }
  .tc-announcement .col-full{ gap:14px !important; }
  .site-header{ padding:14px 18px 0 !important; }
  .site-branding .site-title a{ font-size:19px !important; }
  .site-branding .site-description{ display:none !important; }
  .tc-home-hero{ padding:18px 18px 24px !important; gap:18px !important; margin:12px 12px 0 !important; }
  .tc-home-media{ aspect-ratio:16/10 !important; max-height:30vh !important; }
  .tc-home-hero h1{ font-size:30px !important; margin-top:14px !important; }
  .tc-home-hero p{ font-size:16px !important; margin-top:12px !important; }
  .tc-home-actions{ flex-direction:column !important; align-items:stretch !important; gap:10px !important; margin:20px 0 0 !important; }
  .tc-home-actions .button{ width:100% !important; min-height:56px !important;
    display:flex !important; align-items:center !important; justify-content:center !important; padding:0 20px !important; }
  .home .tc-catalogue{ padding-left:18px !important; padding-right:18px !important; }
  .single-product .woocommerce-tabs ul.tabs li a{ font-size:14px !important; margin-right:12px !important; }
  .site-footer{ padding:36px 20px 100px !important; }
  .tc-footer-links nav{ flex-direction:column !important; gap:12px !important; margin-top:18px !important; }
}

/* --- Ajustements fiche produit (suite) --- */

/* reset_variations ordre : le lien Effacer passe sous les options */
.variations td.value{ display:flex !important; flex-direction:column !important; }
.variations .tc-optiongroup{ order:1; }
.variations .reset_variations{
  order:2; align-self:flex-start; margin-top:10px !important;
  font-size:13px !important; color:var(--mist) !important; text-decoration:underline !important;
}
.variations .reset_variations:hover{ color:var(--ink) !important; }

/* La note de livraison vague fait doublon avec la date estimee */
.single-product .tc-delivery-note{ display:none !important; }

/* Reassurance produit : sobre, une seule ligne */
.single-product .tc-trust-row{
  display:flex !important; flex-wrap:wrap !important; gap:10px !important;
  margin-top:18px !important; padding-top:16px !important;
  border-top:1px solid var(--line) !important;
}
.single-product .tc-trust-row > *{
  background:transparent !important; border:0 !important; border-radius:0 !important;
  padding:0 !important; margin:0 !important; color:var(--slate) !important;
  font-size:13.5px !important;
}

/* Liste des points cles */
.tc-usp{ margin:18px 0 !important; padding:0 !important; list-style:none !important; }
.tc-usp li{ color:var(--slate) !important; font-size:15px !important; }
.tc-usp li:before{ color:var(--fir) !important; }

/* Galerie */
.single-product .flex-control-thumbs li img,
.single-product .woocommerce-product-gallery__image img{ background:var(--chalk) !important; }
.single-product .flex-control-thumbs img.flex-active{ outline:2px solid var(--fir) !important; outline-offset:-2px; }

/* Contenu editorial de la fiche */
.single-product .woocommerce-Tabs-panel h2{ font-size:26px !important; margin:0 0 12px !important; }
.single-product .woocommerce-Tabs-panel h3{ font-size:20px !important; margin:36px 0 10px !important; }
.single-product .woocommerce-Tabs-panel p{ color:var(--slate) !important; }
.single-product .woocommerce-Tabs-panel table{ border-collapse:collapse !important; width:100% !important; }
.single-product .woocommerce-Tabs-panel table th,
.single-product .woocommerce-Tabs-panel table td{
  border:0 !important; border-bottom:1px solid var(--line) !important;
  padding:12px 14px 12px 0 !important; text-align:left !important; background:transparent !important;
}
.single-product .woocommerce-Tabs-panel table th{
  color:var(--mist) !important; font-size:11.5px !important; letter-spacing:.07em !important;
  text-transform:uppercase !important; font-weight:600 !important;
}

/* ==========================================================================
   PANIER ET COMMANDE
   ========================================================================== */
.woocommerce-cart table.shop_table,
.cart_totals{
  background:var(--paper) !important; border:1px solid var(--line) !important;
  border-radius:var(--r-card) !important; box-shadow:none !important;
}
.woocommerce-cart table.shop_table th{
  background:var(--chalk) !important; color:var(--mist) !important;
  font-size:11.5px !important; letter-spacing:.07em !important; text-transform:uppercase !important;
}
.woocommerce-cart table.shop_table img{ border-radius:var(--r-btn) !important; background:var(--chalk) !important; }
.woocommerce-info, .woocommerce-message{
  background:var(--paper) !important; color:var(--ink) !important;
  border:1px solid var(--line) !important; border-left:3px solid var(--fir) !important;
  border-radius:var(--r-btn) !important;
}
.woocommerce-error{
  background:var(--paper) !important; color:var(--ink) !important;
  border:1px solid var(--line) !important; border-left:3px solid var(--clay) !important;
  border-radius:var(--r-btn) !important;
}
/* Paiements express au-dessus du formulaire de commande */
.woocommerce-checkout #wc-stripe-payment-request-wrapper,
.woocommerce-checkout .wc-stripe-payment-request-wrapper{ order:-1; }

/* ==========================================================================
   ACCUEIL - nouvelles sections
   ========================================================================== */

.home .entry-content > section,
.home .entry-content > .woocommerce{
  max-width:1232px !important; margin-inline:auto !important;
  padding-inline:20px !important;
}
@media (min-width:900px){
  .home .entry-content > section,
  .home .entry-content > .woocommerce{ padding-inline:40px !important; }
}
.home .tc-steps, .home .tc-why, .home .tc-ship{ padding-block:64px !important; }
@media (min-width:900px){ .home .tc-steps, .home .tc-why, .home .tc-ship{ padding-block:88px !important; } }
.home .tc-catalogue{ padding-block:64px 24px !important; }
.home .entry-content > .woocommerce{ padding-bottom:72px !important; }
.home .tc-section-title{ font-size:clamp(26px,3vw,34px) !important; margin:0 0 8px !important; }
.home .tc-section-intro{ margin:0 0 0 !important; max-width:60ch !important; }

/* Trois gestes */
.tc-steplist{
  list-style:none !important; margin:32px 0 0 !important; padding:0 !important;
  display:grid !important; gap:1px !important; background:var(--line) !important;
  border:1px solid var(--line) !important; border-radius:var(--r-card) !important;
  overflow:hidden !important;
}
@media (min-width:760px){ .tc-steplist{ grid-template-columns:repeat(3,minmax(0,1fr)) !important; } }
.tc-steplist li{
  background:var(--paper) !important; margin:0 !important;
  padding:26px 26px 28px !important; display:flex !important; flex-direction:column !important;
  align-items:flex-start !important; gap:6px !important;
}
.tc-step-num{
  display:inline-flex !important; align-items:center !important; justify-content:center !important;
  width:30px !important; height:30px !important; border-radius:999px !important;
  background:var(--fir-soft) !important; color:var(--fir) !important;
  font-size:13px !important; font-weight:600 !important; margin-bottom:8px !important;
}
.tc-steplist strong{ color:var(--ink) !important; font-size:17px !important; font-weight:600 !important; }
.tc-steplist span:not(.tc-step-num){ color:var(--slate) !important; font-size:15px !important; line-height:1.55 !important; }

/* Ce sur quoi vous pouvez compter */
.tc-why-grid{ display:grid !important; gap:24px !important; margin-top:32px !important; }
@media (min-width:760px){ .tc-why-grid{ grid-template-columns:repeat(3,minmax(0,1fr)) !important; } }
.tc-why-item{
  padding-top:20px !important; border-top:2px solid var(--ink) !important;
  display:flex !important; flex-direction:column !important; gap:8px !important;
}
.tc-why-item strong{ color:var(--ink) !important; font-size:17px !important; font-weight:600 !important; }
.tc-why-item span{ color:var(--slate) !important; font-size:15px !important; line-height:1.6 !important; }

/* Livraison et retours */
.tc-shiplist{ margin:28px 0 0 !important; padding:0 !important; max-width:760px !important; }
.tc-shiplist > div{
  display:flex !important; flex-wrap:wrap !important; gap:6px 24px !important;
  justify-content:space-between !important; align-items:baseline !important;
  padding:16px 0 !important; border-bottom:1px solid var(--line) !important;
}
.tc-shiplist dt{ color:var(--ink) !important; font-weight:600 !important; font-size:15.5px !important; margin:0 !important; }
.tc-shiplist dd{ color:var(--slate) !important; font-size:15.5px !important; margin:0 !important; text-align:right !important; }
.tc-ship-more{ margin-top:20px !important; font-size:15px !important; }

/* Bandeau final */
.home .tc-cta{
  max-width:none !important; padding-inline:0 !important;
  background:var(--fir) !important; margin-top:0 !important;
}
.tc-cta-inner{
  max-width:1232px !important; margin-inline:auto !important;
  padding:64px 20px !important; text-align:center !important;
}
@media (min-width:900px){ .tc-cta-inner{ padding:84px 40px !important; } }
.tc-cta-inner h2{ color:#FFFFFF !important; font-size:clamp(26px,3vw,34px) !important; margin:0 !important; }
.tc-cta-inner p{ color:#B9C2BA !important; margin:12px auto 26px !important; max-width:52ch !important; font-size:17px !important; }
.tc-cta-inner .button{
  background:#FFFFFF !important; color:var(--fir) !important; border-color:#FFFFFF !important;
  min-height:54px !important; display:inline-flex !important; align-items:center !important;
}
.tc-cta-inner .button:hover{ background:var(--chalk) !important; color:var(--fir) !important; border-color:var(--chalk) !important; }

@media (max-width:640px){
  .home .tc-steps, .home .tc-why, .home .tc-ship{ padding-block:48px !important; }
  .tc-shiplist > div{ flex-direction:column !important; }
  .tc-shiplist dd{ text-align:left !important; }
  .tc-cta-inner .button{ width:100% !important; justify-content:center !important; }
}

/* Flux vertical force : aucune section ne doit heriter d une grille */
.home .tc-steps, .home .tc-why, .home .tc-ship, .home .tc-cta, .home .tc-catalogue{
  display:block !important; grid-template-columns:none !important; gap:0 !important;
}

/* Bandeau final pleine largeur, colle au pied de page */
.home .entry-content > .tc-cta{
  max-width:none !important; padding-inline:0 !important;
  margin-inline:calc(50% - 50vw) !important; width:100vw !important;
}
.home .content-area{ margin-bottom:0 !important; }
.home .site-main{ padding-bottom:0 !important; margin-bottom:0 !important; }
.home .entry-content{ margin-bottom:0 !important; }

/* Le pied de page ne repete pas deux fois les memes liens */
.tc-footer-links nav{ display:none !important; }

/* Ligne legale : lisible et aeree */
.tc-footer-legal{ margin-top:26px !important; }

/* ==========================================================================
   REFINEMENT FINAL — 2026-08-16
   ========================================================================== */

/* Identite : Sora pour les titres, Instrument Sans pour le texte. */
h1,h2,h3,h4,h5,h6,
.product_title,.entry-title,.tc-section-title,
.woocommerce-loop-product__title,.site-title,.site-title a,
.tc-mobile-wordmark{
  font-family:'Sora',system-ui,sans-serif !important;
}

/* Header desktop compact et utilitaire. */
.site-header{ padding:16px 32px 0 !important; }
.site-header > .col-full{
  display:grid !important;
  grid-template-columns:minmax(250px,1fr) minmax(180px,240px) !important;
  align-items:center !important;
  gap:24px !important;
}
.site-branding{ width:auto !important; margin:0 !important; }
.site-header > .col-full > .site-branding{
  grid-column:1 !important; grid-row:1 !important;
}
.site-branding .site-title a{
  color:#183E32 !important; font-size:26px !important; font-weight:700 !important;
}
.site-branding .site-description{
  margin:3px 0 0 !important; color:var(--slate) !important; font-size:12.5px !important;
}
.site-search{
  width:100% !important; margin:0 !important; clear:none !important;
  grid-column:2 !important; grid-row:1 !important;
}
.site-search .widget_product_search form input[type=search]{ min-width:0 !important; width:100% !important; }
.storefront-primary-navigation .col-full{
  display:flex !important; align-items:center !important; gap:8px !important;
}
.main-navigation{ flex:1 1 auto !important; width:auto !important; }
.main-navigation ul.menu > li > a,
.main-navigation ul.nav-menu > li > a{ padding:1.15em .9em !important; }
.tc-account-link{
  min-width:44px; min-height:44px; padding:0 10px; display:inline-flex;
  align-items:center; justify-content:center; gap:6px; border-radius:8px;
  color:var(--ink) !important; text-decoration:none !important; font-size:13px;
}
.tc-account-link:hover{ background:var(--chalk); color:var(--fir) !important; }
.site-header-cart{ width:auto !important; margin:0 !important; }
.site-header-cart .cart-contents{ min-height:44px !important; display:flex !important; align-items:center !important; gap:7px; }
.tc-mobile-header{ display:none; }
.secondary-navigation{ display:none !important; }

/* Cards uniformes : image, titre, prix et CTA restent alignes. */
.woocommerce ul.products,
.home ul.products,
.woocommerce ul.products.columns-3,
.woocommerce ul.products.columns-4{
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  gap:20px !important;
}
.woocommerce ul.products::before,.woocommerce ul.products::after{ display:none !important; }
.woocommerce ul.products li.product,
.home ul.products li.product{
  width:100% !important; margin:0 !important; padding:0 !important; float:none !important;
  min-height:100% !important; border:1px solid #DEDCD5 !important;
  border-radius:12px !important; background:#FFFFFF !important;
}
.woocommerce ul.products li.product > a.woocommerce-LoopProduct-link{
  display:flex !important; flex-direction:column !important; flex:1 1 auto !important;
}
.woocommerce ul.products li.product img{
  width:100% !important; aspect-ratio:1/1 !important; object-fit:cover !important;
  margin:0 0 14px !important; border-radius:0 !important; background:var(--chalk) !important;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title{
  margin:0 !important; padding:0 16px !important; min-height:2.75em !important;
  -webkit-line-clamp:2 !important;
}
.woocommerce ul.products li.product .price{
  display:block !important; margin:10px 0 14px !important; padding:0 16px !important;
  min-height:1.6em !important;
}
.woocommerce ul.products li.product .button{
  width:auto !important; margin:0 16px 16px !important; min-height:48px !important;
  background:#183E32 !important; border-color:#183E32 !important;
}
.woocommerce ul.products li.product:hover{ border-color:#BDB9AF !important; }
@media (min-width:480px) and (max-width:899px){
  .woocommerce ul.products,.home ul.products,
  .woocommerce ul.products.columns-3,.woocommerce ul.products.columns-4{ grid-template-columns:repeat(2,minmax(0,1fr)) !important; }
}
@media (max-width:479px){
  .woocommerce ul.products,.home ul.products,
  .woocommerce ul.products.columns-3,.woocommerce ul.products.columns-4{ grid-template-columns:minmax(0,1fr) !important; }
}

/* Premier ecran produit : galerie claire, achat lisible, CTA pleine largeur. */
@media (min-width:900px){
  body.single-product .tc-announcement{ display:none !important; }
  body.single-product .storefront-breadcrumb{
    padding:10px 0 !important;
    margin-bottom:18px !important;
  }
  body.storefront-full-width-content.single-product div.product{
    grid-template-columns:minmax(0,1.08fr) minmax(380px,.92fr) !important;
    gap:52px !important;
  }
  .single-product .tc-quantity-packs legend{ margin-bottom:6px !important; }
  .single-product .tc-pack{ min-height:70px !important; padding:6px !important; }
  .single-product .tc-pack strong,
  .single-product .tc-pack em,
  .single-product .tc-pack small{ line-height:1.22 !important; }
}
.single-product .woocommerce-product-gallery__image img{
  width:100% !important; aspect-ratio:1/1 !important; object-fit:cover !important;
}
.single-product .summary{ min-width:0 !important; }
.single-product .summary .product_title{ margin:0 0 10px !important; }
.single-product .summary > .price,.single-product .summary > p.price{ margin:0 0 14px !important; }
.single-product .woocommerce-product-details__short-description{
  margin:0 0 14px !important; padding:0 0 14px !important; border-bottom:1px solid var(--line) !important;
}
.single-product form.cart{ margin:14px 0 0 !important; }
.single-product .tc-quantity-packs{ gap:8px !important; }
.single-product .tc-pack,.single-product .tc-option{ min-height:48px !important; }
.single-product .single_add_to_cart_button{ width:100% !important; min-height:56px !important; }
.single-product .tc-delivery-estimate{ margin:12px 0 0 !important; }
.single-product .tc-trust-row{ margin-top:14px !important; padding-top:14px !important; }

/* Une seule barre mobile, visible uniquement apres le premier CTA. */
.tc-mobile-buy{ display:none !important; }
@media (max-width:899px){
  body.tc-sticky-active{ padding-bottom:calc(78px + env(safe-area-inset-bottom)) !important; }
  .tc-sticky-buy{ min-height:68px; }
  .tc-sticky-buy .button{ min-height:52px !important; }
}

/* Hero : image prioritaire, boutons sans debordement. */
.tc-home-media img{ width:100% !important; height:100% !important; object-fit:cover !important; }
.tc-selection{ padding-top:72px !important; }

/* Header mobile : hamburger, wordmark et panier sur une ligne. */
@media (max-width:768px){
  .site-header{ padding:0 !important; }
  .site-header > .col-full{ display:block !important; padding:0 !important; }
  .site-header > .col-full > .site-branding,
  .site-header > .col-full > .site-search{ display:none !important; }
  .tc-mobile-header{
    display:grid !important; grid-template-columns:44px minmax(0,1fr) 44px;
    align-items:center; gap:10px; min-height:64px; padding:10px 16px;
  }
  .tc-mobile-menu-trigger,.tc-mobile-cart{
    width:44px !important; height:44px !important; min-height:44px !important; padding:0 !important;
    display:flex !important; align-items:center !important; justify-content:center !important;
    background:transparent !important; color:#183E32 !important;
    border:1px solid var(--line-2) !important; border-radius:8px !important;
    text-decoration:none !important; box-shadow:none !important;
  }
  .tc-mobile-wordmark{
    min-width:0; color:#183E32 !important; font-size:20px; font-weight:700;
    text-align:center; text-decoration:none !important; white-space:nowrap;
  }
  .tc-mobile-cart{ position:relative; }
  .tc-mobile-cart b{
    position:absolute; right:-4px; top:-4px; min-width:18px; height:18px; padding:0 4px;
    display:flex; align-items:center; justify-content:center; border-radius:999px;
    background:#183E32; color:#fff; font-size:10px;
  }
  .storefront-primary-navigation{ border-top:1px solid var(--line) !important; }
  .storefront-primary-navigation .col-full{ padding:0 16px !important; }
  .main-navigation .menu-toggle{
    position:absolute !important; width:1px !important; height:1px !important; min-height:1px !important;
    overflow:hidden !important; clip:rect(0 0 0 0) !important; padding:0 !important; border:0 !important;
  }
  .main-navigation.toggled .handheld-navigation{ padding:8px 0 14px !important; }
  .main-navigation .handheld-navigation a{ min-height:44px; display:flex !important; align-items:center; }
  .tc-account-link{ display:none !important; }
  .site-header-cart{ display:none !important; }
  .single-product .woocommerce-product-gallery__image img{ max-height:none !important; }
  .single-product .product_title{ font-size:27px !important; }
  .single-product .tc-option,.single-product .tc-pack{ min-height:48px !important; }
}

@media (max-width:640px){
  .tc-home-actions{ width:100% !important; }
  .tc-home-actions .button{ max-width:100% !important; white-space:normal !important; text-align:center !important; }
  .tc-selection{ padding-top:52px !important; }
  .tc-home-brand-visual{ min-height:230px; padding:28px; }
}

/* ==========================================================================
   CONSENTEMENT, PANIER ET COMMANDE — finalisation 2026-08-16
   ========================================================================== */
.tc-meta-consent[hidden]{ display:none !important; }
.tc-meta-consent{
  position:fixed; z-index:100000; left:50%; bottom:max(18px,env(safe-area-inset-bottom));
  transform:translateX(-50%); width:min(760px,calc(100% - 32px));
  display:grid; grid-template-columns:minmax(0,1fr) auto; gap:20px; align-items:center;
  padding:20px; background:#fff; color:var(--ink); border:1px solid var(--line-2);
  border-radius:12px; box-shadow:0 16px 48px rgba(24,62,50,.18);
}
.tc-meta-consent__copy strong{ display:block; margin-bottom:4px; font-family:'Sora',system-ui,sans-serif; font-size:15px; }
.tc-meta-consent__copy p{ margin:0; color:var(--slate); font-size:14px; line-height:1.5; }
.tc-meta-consent__actions{ display:flex; gap:10px; }
.tc-meta-consent__actions button{
  min-width:108px !important; min-height:46px !important; padding:0 18px !important;
  border-radius:8px !important;
}
.tc-meta-consent__actions .tc-consent-refuse{
  background:#fff !important; color:var(--ink) !important; border-color:var(--line-2) !important;
}
.tc-meta-consent button:focus-visible,
.tc-mobile-menu-trigger:focus-visible,.tc-mobile-cart:focus-visible,.tc-account-link:focus-visible{
  outline:3px solid #D97757 !important; outline-offset:3px !important;
}
body.tc-consent-open{ padding-bottom:150px !important; }
body.tc-consent-open .tc-sticky-buy{ display:none !important; }

.tc-account-link svg,.tc-mobile-menu-trigger svg,.tc-mobile-cart svg{
  width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.8;
  stroke-linecap:round; stroke-linejoin:round;
}

.woocommerce-cart table.shop_table img{
  width:84px !important; height:84px !important; object-fit:contain !important;
  padding:5px; border:1px solid var(--line) !important;
}
.woocommerce-cart table.shop_table .product-subtotal,
.woocommerce-cart table.shop_table th.product-subtotal{ white-space:nowrap !important; }
.woocommerce-cart .cart_totals h2{ margin-bottom:18px !important; }
.woocommerce-cart .cart_totals .wc-proceed-to-checkout{ padding-bottom:0 !important; }
.tc-freeship-msg{ margin:0 0 10px !important; color:var(--ink) !important; }

.post-type-archive-product .wp-block-buttons .wp-block-button__link,
.tax-product_cat .wp-block-buttons .wp-block-button__link{
  min-height:48px; display:inline-flex; align-items:center; justify-content:center;
  background:#fff !important; color:var(--fir) !important; border:1px solid var(--line-2) !important;
}
.post-type-archive-product .wp-block-buttons .wp-block-button__link[aria-current="page"],
.tax-product_cat .wp-block-buttons .wp-block-button__link[aria-current="page"]{
  background:var(--fir) !important; color:#fff !important; border-color:var(--fir) !important;
}

.woocommerce-checkout .entry-title{ color:var(--ink) !important; }
.woocommerce-checkout #customer_details h3,
.woocommerce-checkout #order_review_heading{ font-size:22px !important; color:var(--ink) !important; }
.woocommerce-checkout .woocommerce-shipping-fields h3{ font-size:15px !important; font-weight:600 !important; margin:10px 0 18px !important; }
.woocommerce-checkout .woocommerce-shipping-fields #ship-to-different-address label{
  display:flex !important; align-items:center !important; gap:10px !important; min-height:44px !important;
}
.woocommerce-checkout input[type="checkbox"]{
  flex:0 0 22px !important; width:22px !important; height:22px !important; margin:0 10px 0 0 !important;
  vertical-align:middle !important;
}
.woocommerce-checkout .woocommerce-form__label-for-checkbox,
.woocommerce-checkout .woocommerce-terms-and-conditions-checkbox-text{
  display:inline-flex !important; align-items:center !important; min-height:44px !important; line-height:1.45 !important;
}
.woocommerce-checkout #place_order{ width:100% !important; min-height:56px !important; }
.tc-checkout-reassurance{
  display:flex; flex-wrap:wrap; gap:8px 18px; margin:16px 0 12px; padding:14px 0;
  border-top:1px solid var(--line); color:var(--slate); font-size:13px;
}
.tc-checkout-reassurance span:before{ content:'✓'; margin-right:6px; color:var(--fir); font-weight:700; }
.site-footer .site-info:empty{ display:none !important; }
.site-footer{ border-bottom:0 !important; }

@media (max-width:640px){
  .tc-meta-consent{
    bottom:max(10px,env(safe-area-inset-bottom)); width:calc(100% - 20px);
    grid-template-columns:1fr; gap:14px; padding:16px;
  }
  .tc-meta-consent__actions{ display:grid; grid-template-columns:1fr 1fr; }
  .tc-meta-consent__actions button{ min-width:0 !important; width:100% !important; }
  body.tc-consent-open{ padding-bottom:260px !important; }
  .woocommerce-cart table.shop_table img{ width:72px !important; height:72px !important; }
  .woocommerce-checkout .col2-set .col-1,
  .woocommerce-checkout .col2-set .col-2{ width:100% !important; float:none !important; }
}

/* ==========================================================================
   CONSOLIDATION — reprises de redesign.css (desormais retire de la file)
   + corrections d accueil. redesign.css n est plus charge : cette feuille
   et home-generaliste.css sont les deux seules couches du site.
   ========================================================================== */

/* Reprises indispensables */
.col-full{ max-width:1240px !important; }
.site-header{ position:sticky !important; top:0 !important; z-index:120 !important; }
.page-id-42 .entry-content, .page-id-42 .entry-header{
  max-width:900px !important; margin-left:auto !important; margin-right:auto !important;
}
.storefront-breadcrumb, .woocommerce-breadcrumb{
  font-size:13px !important; color:var(--mist) !important; background:transparent !important;
}

/* --- Accueil : on laisse home-generaliste.css piloter la mise en page --- */
/* Aucune regle de layout d accueil ici. Uniquement les corrections ci-dessous. */

/* 1. Plus de carte a cheval sur deux colonnes : quatre cartes egales.
      Pas de produit mis en avant sans chiffres pour le justifier. */
@media (min-width:900px){
  .home ul.products li.product:first-child{ grid-column:auto !important; }
}

/* 2. Le vert sapin reste la couleur de l action payante, sur toutes les pages. */
.tc-home-actions .button:not(.alt),
.tc-cta-inner .button{
  background:var(--fir) !important; border-color:var(--fir) !important;
  color:var(--chalk) !important;
}
.tc-home-actions .button:not(.alt):hover,
.tc-cta-inner .button:hover{
  background:var(--fir-h) !important; border-color:var(--fir-h) !important; color:var(--chalk) !important;
}
.tc-home-actions .button.alt{
  background:var(--paper) !important; border-color:var(--line-2) !important; color:var(--ink) !important;
}
.tc-home-actions .button.alt:hover{
  background:var(--chalk) !important; border-color:var(--mist) !important; color:var(--ink) !important;
}
/* Le bandeau final passe en vert : un seul accent, une seule lecture. */
.home .entry-content > .tc-cta{ background:var(--fir) !important; }
.tc-cta-inner .button{ background:var(--paper) !important; color:var(--fir) !important; border-color:var(--paper) !important; }
.tc-cta-inner .button:hover{ background:var(--chalk) !important; color:var(--fir) !important; border-color:var(--chalk) !important; }

/* 3. On reserve la place des images : plus de saut au chargement. */
ul.products li.product img{ aspect-ratio:1/1 !important; object-fit:cover !important; width:100% !important; height:auto !important; }
.tc-home-media img{ aspect-ratio:3/2; }
@media (max-width:899px){ .tc-home-media img{ aspect-ratio:4/5; } }

/* 4. Texte WooCommerce brut masque dans les grilles. */
ul.products li.product .woocommerce-variation-availability,
ul.products li.product .stock,
ul.products li.product small,
ul.products li.product .tc-variation-note{ display:none !important; }

/* ==========================================================================
   REPRISES POST-RETRAIT DE redesign.css
   ========================================================================== */

/* Pied de page : la grille et les logos de paiement etaient portes par
   redesign.css. Sans hauteur imposee, les SVG Visa/Amex s etiraient sur
   toute la largeur (le grand bloc bleu). */
.site-footer .col-full{
  display:grid !important;
  grid-template-columns:repeat(auto-fit,minmax(210px,1fr)) !important;
  gap:40px !important; align-items:start !important;
  max-width:1240px !important; margin-inline:auto !important; padding:0 !important;
}
.tc-footer-links{ background:transparent !important; margin:0 !important; padding:0 !important; width:auto !important; }
.tc-footer-links .col-full{ display:contents !important; padding:0 !important; }
.tc-footer-brand strong{ display:block !important; color:#FFFFFF !important; font-size:18px !important; font-weight:600 !important; }
.tc-footer-brand span{ display:block !important; margin-top:6px !important; font-size:14.5px !important; line-height:1.6 !important; }
.tc-footer-links small{
  grid-column:1/-1 !important; margin-top:28px !important; padding-top:18px !important;
  border-top:1px solid #2A332C !important; color:#7E877F !important; font-size:12.5px !important;
}
.tc-pay-logos{
  display:flex !important; flex-wrap:wrap !important; gap:8px !important;
  margin-top:0 !important; align-items:center !important;
}
.tc-pay-logos img{
  height:24px !important; width:auto !important; max-width:44px !important;
  background:#FFFFFF !important; border-radius:4px !important; padding:3px 6px !important;
  aspect-ratio:auto !important; object-fit:contain !important; display:block !important;
}
.tc-pay-chip{
  height:24px !important; display:inline-flex !important; align-items:center !important;
  padding:0 8px !important; border-radius:4px !important; background:#FFFFFF !important;
  color:var(--ink) !important; font-size:11.5px !important; font-weight:600 !important;
}
.tc-pay-note{ font-size:12.5px !important; line-height:1.6 !important; color:#7E877F !important; margin-top:12px !important; }

/* Bandeau de confiance : pas de caracteres coches en guise d icones. */
.tc-announcement span:before{ content:none !important; }
.tc-announcement .col-full{ display:flex !important; justify-content:center !important; gap:28px !important; }
@media (max-width:640px){
  .tc-announcement .col-full{
    justify-content:flex-start !important; gap:14px !important;
    flex-wrap:nowrap !important; overflow-x:auto !important;
    -webkit-overflow-scrolling:touch !important; scrollbar-width:none !important;
  }
  .tc-announcement span{ white-space:nowrap !important; font-size:11px !important; }
}

/* Titres de section alignes a gauche, comme le reste du site. */
.tc-section-title, .tc-section-intro, .tc-rotation, .tc-ship-more,
.tc-why-item, .tc-eyebrow{ text-align:left !important; }
.tc-cta-inner h2, .tc-cta-inner p{ text-align:center !important; }

/* ==========================================================================
   BANDEAU DE CONSENTEMENT
   Il etait pose dans le flux, sans style, boutons colles au bord gauche.
   ========================================================================== */
.tc-meta-consent{
  position:fixed !important; inset-inline:0 !important; bottom:0 !important; z-index:200 !important;
  transform:none !important; margin:0 !important;
  display:flex !important; flex-wrap:wrap !important; align-items:center !important;
  justify-content:space-between !important; gap:16px !important;
  width:100% !important; max-width:none !important;
  padding:18px 24px !important;
  padding-bottom:max(18px, env(safe-area-inset-bottom)) !important;
  background:var(--paper) !important; color:var(--slate) !important;
  box-shadow:0 -1px 0 var(--line), 0 -10px 30px -20px rgba(22,29,25,.18) !important;
}
.tc-meta-consent__copy{ flex:1 1 320px !important; min-width:0 !important; }
.tc-meta-consent__copy strong{
  display:block !important; color:var(--ink) !important;
  font-size:14.5px !important; font-weight:600 !important; margin-bottom:4px !important;
}
.tc-meta-consent__copy p{
  margin:0 !important; font-size:13.5px !important; line-height:1.5 !important;
  color:var(--slate) !important; max-width:78ch !important;
}
.tc-meta-consent button, .tc-meta-consent .button{
  flex:none !important; min-height:44px !important; padding:0 20px !important;
  font-size:14.5px !important; border-radius:var(--r-btn) !important; width:auto !important;
}
.tc-meta-consent button:first-of-type{
  background:transparent !important; color:var(--ink) !important; border:1px solid var(--line-2) !important;
}
.tc-meta-consent button:first-of-type:hover{ background:var(--chalk) !important; color:var(--ink) !important; }
@media (max-width:640px){
  .tc-meta-consent{ padding:16px 18px !important; }
  .tc-meta-consent button, .tc-meta-consent .button{ flex:1 1 140px !important; }
}

/* ==========================================================================
   FINITIONS BOUTIQUE ET FICHE PRODUIT
   ========================================================================== */

/* Le titre de la boutique s aligne comme tout le reste du site. */
.woocommerce-products-header{ text-align:left !important; }
.woocommerce-products-header h1{
  text-align:left !important; font-size:clamp(28px,3.2vw,40px) !important;
  letter-spacing:-.03em !important; margin:0 0 20px !important;
}
.woocommerce-products-header .term-description p{ text-align:left !important; }

/* Filtres de categorie : plus de vide flottant, et une vraie barre d outils. */
.tc-shop-filters, .tc-category-filters{ margin:0 0 24px !important; }
.woocommerce-notices-wrapper:empty{ display:none !important; }
.woocommerce .woocommerce-result-count{
  margin:0 !important; font-size:14px !important; color:var(--mist) !important;
}
.woocommerce .woocommerce-ordering{ margin:0 !important; }
.woocommerce .woocommerce-ordering select{
  min-height:44px !important; padding:0 40px 0 14px !important;
  border:1px solid var(--line-2) !important; border-radius:var(--r-btn) !important;
  background:var(--paper) !important; color:var(--ink) !important;
  font-size:14.5px !important; font-weight:500 !important;
  appearance:none !important; -webkit-appearance:none !important;
  background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23161D19' stroke-width='1.6'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") !important;
  background-repeat:no-repeat !important; background-position:right 12px center !important;
  background-size:18px 18px !important;
}
/* Ligne d outils compacte : tri a gauche, compteur a droite. */
.woocommerce .woocommerce-ordering,
.woocommerce .woocommerce-result-count{ display:inline-flex !important; align-items:center !important; vertical-align:middle !important; }

/* Fiche produit : le bloc d achat revient dans la palette. */
.single-product form.cart,
.single-product .tc-buybox,
.single-product .summary .tc-buybox,
.single-product .variations_form{
  background:var(--chalk) !important;
}
.single-product .tc-packs, .single-product .tc-pack-wrap{ background:transparent !important; }

/* Onglets produit : plus de libelle tronque. */
.single-product .woocommerce-tabs ul.tabs li a{
  white-space:nowrap !important; overflow:visible !important; text-overflow:clip !important;
  padding-right:2px !important;
}
.single-product .woocommerce-tabs ul.tabs li a:after{ content:none !important; }

/* ==========================================================================
   MODULES PERMANENTS DE L ACCUEIL
   Aucune regle ne depend d un produit precis : les blocs sont alimentes
   par WooCommerce et survivent a tous les changements de catalogue.
   ========================================================================== */

/* Les titres de module collent a leur grille : on retire le filet
   intermediaire et la respiration en trop. */
.home .tc-cats, .home .tc-catalogue{
  padding-block:80px 24px !important; border-bottom:0 !important;
}
@media (max-width:640px){ .home .tc-cats, .home .tc-catalogue{ padding-block:56px 20px !important; } }
.home .entry-content > .woocommerce{
  padding-bottom:80px !important; border-bottom:1px solid var(--line) !important;
}
.home .entry-content > .woocommerce:last-of-type{ border-bottom:1px solid var(--line) !important; }

/* --- Tuiles de categorie --- */
ul.products li.product-category{
  display:flex !important; flex-direction:column !important; min-width:0 !important;
  background:var(--paper) !important; border:1px solid var(--line) !important;
  border-radius:var(--r-card) !important; overflow:hidden !important;
  box-shadow:none !important; text-align:left !important; margin:0 !important;
  transition:border-color .18s ease !important;
}
ul.products li.product-category:hover{ border-color:#C9C4B8 !important; }
ul.products li.product-category > a{
  display:flex !important; flex-direction:column !important; height:100% !important;
  text-decoration:none !important; color:inherit !important;
}
ul.products li.product-category img{
  display:block !important; width:100% !important; height:auto !important;
  aspect-ratio:4/3 !important; object-fit:cover !important;
  background:var(--chalk) !important; border-radius:0 !important; margin:0 !important;
}
ul.products li.product-category h2,
ul.products li.product-category .woocommerce-loop-category__title{
  margin:0 !important; padding:18px 18px 20px !important;
  color:var(--ink) !important; font-size:17px !important; font-weight:600 !important;
  line-height:1.3 !important; letter-spacing:-.01em !important; text-align:left !important;
  display:flex !important; align-items:baseline !important; gap:8px !important;
}
/* Le compteur WooCommerce devient une mention discrete. */
ul.products li.product-category mark.count,
ul.products li.product-category .count{
  background:transparent !important; color:var(--mist) !important;
  font-size:13.5px !important; font-weight:400 !important; padding:0 !important;
}

/* Grille des categories */
.woocommerce ul.products.columns-3{ display:grid !important; gap:20px !important; }
@media (max-width:639px){ .woocommerce ul.products.columns-3{ grid-template-columns:minmax(0,1fr) !important; } }
@media (min-width:640px) and (max-width:899px){ .woocommerce ul.products.columns-3{ grid-template-columns:repeat(2,minmax(0,1fr)) !important; } }
@media (min-width:900px){ .woocommerce ul.products.columns-3{ grid-template-columns:repeat(3,minmax(0,1fr)) !important; } }

/* Grille produits : 4 colonnes en desktop, quel que soit le nombre d articles. */
.home .entry-content .woocommerce ul.products.columns-4{ display:grid !important; gap:20px !important; }
@media (max-width:479px){ .home .entry-content .woocommerce ul.products.columns-4{ grid-template-columns:minmax(0,1fr) !important; } }
@media (min-width:480px) and (max-width:899px){ .home .entry-content .woocommerce ul.products.columns-4{ grid-template-columns:repeat(2,minmax(0,1fr)) !important; } }
@media (min-width:900px) and (max-width:1199px){ .home .entry-content .woocommerce ul.products.columns-4{ grid-template-columns:repeat(3,minmax(0,1fr)) !important; } }
@media (min-width:1200px){ .home .entry-content .woocommerce ul.products.columns-4{ grid-template-columns:repeat(4,minmax(0,1fr)) !important; } }

/* --- TUILES TEXTE : les categories n ont pas de visuel, on retire
      l image placeholder de WooCommerce et on assume un bloc typographique. --- */
ul.products li.product-category img{ display:none !important; }
ul.products li.product-category > a{
  display:flex !important; flex-direction:column !important; justify-content:space-between !important;
  gap:28px !important; min-height:150px !important; padding:24px !important;
}
ul.products li.product-category h2,
ul.products li.product-category .woocommerce-loop-category__title{
  padding:0 !important; font-size:20px !important; letter-spacing:-.02em !important;
  display:block !important;
}
ul.products li.product-category > a:after{
  content:"\2192" !important; display:block !important;
  font-size:20px !important; line-height:1 !important; color:var(--fir) !important;
  transition:transform .18s ease !important;
}
ul.products li.product-category:hover > a:after{ transform:translateX(4px) !important; }
ul.products li.product-category mark.count,
ul.products li.product-category .count{ display:block !important; margin-top:6px !important; }

/* AUCUN COMPTEUR NULLE PART : un chiffre revele la taille du catalogue
   et devient faux des qu il change. */
ul.products li.product-category mark.count,
ul.products li.product-category .count{ display:none !important; }
ul.products li.product-category > a{ min-height:132px !important; }
