/* Local hero spacing for produits page */
.produits-page .uv-hero{
  padding: var(--space-xl) 0 calc(var(--space-xl)*2);
}
/* produits.css - styles spécifiques au listing produits */

/* Catalogue layout */
.catalog { display: grid; grid-template-columns: 1fr 3fr; gap: 2rem; align-items:start; }
@media (max-width: 900px) { .catalog { grid-template-columns: 1fr; } }
/* Reverse columns variant: main first (3fr) then sidebar (1fr) */
.catalog.catalog--reverse { grid-template-columns: 3fr 1fr; }

/* Sidebar */
.filters { background:#fff; padding:0 1rem; border-radius:10px; box-shadow:0 2px 6px rgba(0,0,0,.04); }
.filters .search { position:relative; display:flex; align-items:center; }
.filters .search input { width:100%; padding:10px 12px 10px 40px; border-radius:999px; border:1px solid #e6f5ee; background:linear-gradient(0deg,#fff,#fff); box-shadow:inset 0 0 0 4px rgba(6,176,138,0.06); }
.filters .search .icon { position:absolute; left:10px; color:var(--color-primary); font-size:16px; }
.filters h4 { color:var(--color-primary); margin:0.75rem 0 0.25rem; font-weight:700; }
.filters .reset { color:#6b7280; text-decoration:underline; cursor:pointer; font-size:13px; margin-left:0.5rem; }

/* Checkbox style */
.chk { display:flex; align-items:center; gap:8px; cursor:pointer; user-select:none; margin:0.4rem 0; }
.chk input[type="checkbox"] { display:none; }
.chk .box { width:12px; height:12px; border:2px solid var(--color-primary); display:inline-flex; align-items:center; justify-content:center; font-size:13px; color:#fff; }
.chk input[type="checkbox"]:checked + .box { background:var(--color-primary); border-color:var(--color-primary); }
.chk input[type="checkbox"]:checked + .box::after { content:'\2713'; }

/* Gammes list */
.gammes { margin-top:1rem; }
.gamme-item { display:flex; flex-direction:column; gap:6px; }
.gamme-header { display:flex; padding:8px 0 4px 0; justify-content:space-between; align-items:center; gap:8px; cursor:pointer; }
.gamme-title { font-weight:700; color:#111; display:flex; gap:8px; align-items:center; }
.gamme-title .sw { width:12px; height:12px; border-radius:3px; display:inline-block; }
.gamme-children { margin-top:6px; display:none; }
.gamme-children.show { display:block; }

/* Toggle icon/button for children */
.toggle-children { background:none; border:0; padding:0 6px; font-size:18px; line-height:1; cursor:pointer; color:inherit; }

/* Per-gamme colors (header border, titles, toggle, and checkboxes) */
.gamme-item.gamme-sante-bien-etre .gamme-header{ border-bottom:2px solid var(--cat-sante); }
.gamme-sante-bien-etre .gamme-title,
.gamme-sante-bien-etre .toggle-children{ color:var(--cat-sante); }
.gamme-sante-bien-etre .gamme-title .sw{ background:var(--cat-sante); }
.gamme-sante-bien-etre .chk .box { border-color:var(--cat-sante); }
.gamme-sante-bien-etre .chk input[type="checkbox"]:checked + .box { background:var(--cat-sante); border-color:var(--cat-sante); }

.gamme-item.gamme-micronutrition .gamme-header{ border-bottom:2px solid var(--cat-micronutrition); }
.gamme-micronutrition .gamme-title,
.gamme-micronutrition .toggle-children{ color:var(--cat-micronutrition); }
.gamme-micronutrition .gamme-title .sw{ background:var(--cat-micronutrition); }
.gamme-micronutrition .chk .box { border-color:var(--cat-micronutrition); }
.gamme-micronutrition .chk input[type="checkbox"]:checked + .box { background:var(--cat-micronutrition); border-color:var(--cat-micronutrition); }

.gamme-item.gamme-aromatherapie .gamme-header{ border-bottom:2px solid var(--cat-aromatherapie); }
.gamme-aromatherapie .gamme-title,
.gamme-aromatherapie .toggle-children{ color:var(--cat-aromatherapie); }
.gamme-aromatherapie .gamme-title .sw{ background:var(--cat-aromatherapie); }
.gamme-aromatherapie .chk .box { border-color:var(--cat-aromatherapie); }
.gamme-aromatherapie .chk input[type="checkbox"]:checked + .box { background:var(--cat-aromatherapie); border-color:var(--cat-aromatherapie); }

.gamme-item.gamme-phytotherapie .gamme-header{ border-bottom:2px solid var(--cat-phytotherapie); }
.gamme-phytotherapie .gamme-title,
.gamme-phytotherapie .toggle-children{ color:var(--cat-phytotherapie); }
.gamme-phytotherapie .gamme-title .sw{ background:var(--cat-phytotherapie); }
.gamme-phytotherapie .chk .box { border-color:var(--cat-phytotherapie); }
.gamme-phytotherapie .chk input[type="checkbox"]:checked + .box { background:var(--cat-phytotherapie); border-color:var(--cat-phytotherapie); }

.gamme-item.gamme-infusions-thes .gamme-header{ border-bottom:2px solid var(--cat-infusions); }
.gamme-infusions-thes .gamme-title,
.gamme-infusions-thes .toggle-children{ color:var(--cat-infusions); }
.gamme-infusions-thes .gamme-title .sw{ background:var(--cat-infusions); }
.gamme-infusions-thes .chk .box { border-color:var(--cat-infusions); }
.gamme-infusions-thes .chk input[type="checkbox"]:checked + .box { background:var(--cat-infusions); border-color:var(--cat-infusions); }

/* Product grid */
.section-produits{ padding-bottom:var(--space-2xl); }
.products-grid { display:grid; grid-template-columns: repeat(3,1fr); gap:1rem;  }
@media (max-width:1100px) { .products-grid { grid-template-columns: repeat(2,1fr); } }
@media (max-width:700px) { .products-grid { grid-template-columns: 1fr; } }

/* Filter active state: hide by CSS + JS toggling class */
.product-card.hidden { display:none !important; }
.product-card.hidden-page { display:none !important; }
.products-grid.list-view .product-card.hidden-page { display:none !important; }

.catalog-load-more-wrapper { margin-top:32px; text-align:center; }
.catalog-load-more-wrapper.is-hidden { display:none; }
.catalog-load-more { border:2px solid #04a64a; background:#fff; color:#04a64a; font-weight:700; font-size:15px; padding:12px 36px; border-radius:999px; cursor:pointer; transition:background .18s, color .18s, transform .18s; display:inline-flex; align-items:center; justify-content:center; gap:8px; }
.catalog-load-more:hover,
.catalog-load-more:focus-visible { background:#04a64a; color:#fff; transform:translateY(-1px); }
.catalog-load-more:disabled { opacity:0.4; cursor:not-allowed; transform:none; }

.muted { color:#6b7280; font-size:13px; }
.catalog-toolbar{flex-wrap:wrap;}
.catalog-toolbar-left{flex-wrap:wrap;}
.catalog-quick-filters{flex-wrap:wrap;}
.catalog-filter-btn{border:2px solid transparent;border-radius:999px;padding:8px 18px;font-weight:700;font-size:14px;font-family:"Arial", sans-serif;color:#fff;cursor:pointer;transition:opacity .18s, transform .18s, color .18s, background .18s;display:inline-flex;align-items:center;gap:6px;background:#04a64a;}
.catalog-filter-btn:hover{opacity:.88;}
.catalog-filter-btn.is-active{transform:scale(0.98); background:#fff; color:#04a64a; border-color:#04a64a;}
.catalog-filter-btn--promo{background:#ef7c00;}
.catalog-filter-btn--new,
.catalog-filter-btn--top,
.catalog-filter-btn--season{background:#04a64a;}
.catalog-filter-btn--promo.is-active{color:#ef7c00;border-color:#ef7c00;}
.catalog-sort{display:flex; align-items:center; gap:8px;}
.catalog-sort select{border:1px solid #cbd5d1;border-radius:6px;padding:6px 28px 6px 10px;font-size:13px;appearance:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath fill='%2304a64a' d='M0 0h10L5 6z'/%3E%3C/svg%3E") no-repeat right 8px center/10px 6px #fff;}
.view-switches .view-switch{background:none;border:0;padding:4px;border-radius:8px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background .18s, transform .18s;}
.view-switches .view-switch:hover{background:#f3f9f4;}
.view-switches .view-switch.is-active{background:#e9f3e9;}
.view-switches .view-switch svg{display:block;}

/* main gamme checkbox appearance: no extra label text, color driven inline */
.gamme-header .chk { margin:0; }
.gamme-header .chk input[type="checkbox"]{ display:none; }
.gamme-header .chk .box { width:12px; height:12px; display:inline-flex; align-items:center; justify-content:center; font-size:12px; background:transparent; border:2px solid transparent; transition:background .12s ease, border-color .12s ease; color: inherit; }
.gamme-header .chk input[type="checkbox"]:checked + .box { background: currentColor; border-color: currentColor; color: #fff; }
.gamme-header .chk input[type="checkbox"]:checked + .box::after { content: '\2713'; font-size:12px; line-height:1; }
.gamme-header .chk .box::after{ display:none !important; }

/* Product card basics shared with home slider; keep additions minimal here */
.product-card img { width:160px; height:110px; object-fit:cover; flex-shrink:0; }
.product-info { flex:1; }
.product-title { font-weight:700; margin:0 0 6px; }
.product-meta { font-size:13px; color:#6b7280; margin-bottom:6px; }
.badge-gamme { display:inline-block; padding:4px 8px; font-size:12px; color:#fff; border-radius:999px; }

/* Listing card layout */
.product-card { display:flex; flex-direction:column; background:#fff; border:1px solid #c6c6c6; padding:0; position:relative; min-height:290px; align-items:flex-start; }
.product-main-row { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; padding:12px 24px; }
.product-main-left { display:flex; flex-direction:column; gap:12px; align-items:flex-start; }
.product-main-right img { width:120px; height:90px; object-fit:cover; }
.produits-page.guest .product-main-right{ display:flex; align-items:center; justify-content:center; }
.produits-page.guest .product-main-right img{ width:100% !important; height:auto !important; object-fit:contain; }
.product-info-row { background:#eff7ee; margin-top:10px; display:flex; flex-direction:column; gap:0; width:100%; height:100%; align-items:flex-start; padding:12px 24px; text-align:left; }
.product-denomination, .product-denomination a { font-weight:700; font-size:1rem; color:#000; line-height:1; text-decoration:none; }
.product-meta-small { font-size:.75rem; color:#000; display:flex; gap:0; flex-wrap:wrap; flex-direction:column; }
.product-labels { display:flex; gap:8px; margin-top:auto; }
.label { display:inline-block; font-size:9px; font-weight:700; padding:2px 10px; border-radius:0; color:#fff; }
.label-nouveau { background:#005d32; }
.label-promo { background:#ef7c00; }

.product-rupture { position:absolute; bottom:10px; right:14px; color:#FF4456; font-weight:700; font-size:1rem; }

/* Price, qty, fav */
.product-price { font-size:1.5rem; font-weight:700; color:var(--color-primary); display:flex; gap:2px; }
.price-int { font-size:2.15rem; }
.price-dec { font-size:1rem; vertical-align:super; }
.price-euro { font-size:1rem; margin-left:2px; }
.product-price--promo{flex-direction:column; align-items:flex-start; gap:4px;}
.product-price--promo .price-main{display:flex; align-items:flex-start; gap:2px;}
.price-main{display:flex; align-items:flex-start; gap:2px;}
.price-old{font-size:12px; color:#9d9d9c; text-decoration:line-through; font-weight:600;}
.price-promo-row{display:flex; align-items:center; gap:8px; margin-top:4px;}
.price-promo-badge{display:inline-flex; align-items:center; justify-content:center; padding:4px 10px; font-size:.85rem; font-weight:700; color:#fff; text-transform:uppercase; letter-spacing:.04em; background:#04a64a;}
.price-promo-badge--promo{background:#ef7c00;}
.price-promo-badge--remise{background:#04a64a;}
.price-promo-badge--disabled{background:#9d9d9c;}
.price-main.price-accent--promo{color:#ef7c00;}
.price-main.price-accent--remise{color:#04a64a;}
.price-main.price-accent--disabled{color:#9d9d9c;}
.price-main .price-int,
.price-main .price-dec,
.price-main .price-euro{color:inherit;}
.product-price-stack-base,
.product-price-stack-promo,
.product-remise-col{display:none;}

.product-qty-fav { display:flex; align-items:center; gap:0; background:#fff; border:2px solid var(--color-primary); border-radius:25px; overflow:hidden; height:35px; min-width:60px; max-width:75px; width:75px; transition:background .18s, border-color .18s; }
.product-qty-fav .qty-btn { background:#fff; color:var(--color-primary); border:0; width:24px; height:35px; font-size:1.2rem; cursor:pointer; border-radius:0; }
.product-qty-fav .qty-input { width:28px; min-width:28px; max-width:32px; text-align:center; border:0; background:transparent; font-size:.9rem; font-weight:700; color:var(--color-primary); outline:none; margin:0 2px; }
.product-qty-fav.active { background:var(--color-primary); border-color:var(--color-primary); }
.product-qty-fav.active .qty-btn { background:var(--color-primary); color:#fff; }
.product-qty-fav.active .qty-input { color:#fff; }
.product-qty-fav .qty-input::-webkit-inner-spin-button, .product-qty-fav .qty-input::-webkit-outer-spin-button { -webkit-appearance:none; margin:0; }
.product-qty-fav .qty-input[type=number] { appearance:textfield; -moz-appearance:textfield; }

.fav-btn { background:none; border:0; padding:0; margin-left:8px; width:26px; height:24px; display:flex; align-items:center; cursor:pointer; box-shadow:none; }
.fav-btn svg { width:26px; height:24px; display:block; stroke:#ef7c00; fill:none; transition: fill .18s, stroke .18s; }
.fav-btn.active svg { fill:#ef7c00; stroke:#ef7c00; }

/* Rupture state dims controls */
.product-card[data-rupture="1"] .product-price, .product-card[data-rupture="1"] .price-int, .product-card[data-rupture="1"] .price-dec, .product-card[data-rupture="1"] .price-euro { color:#c6c6c6 !important; }
.product-card[data-rupture="1"] .product-qty-fav { border-color:#c6c6c6 !important; background:#f7f7f7 !important; }
.product-card[data-rupture="1"] .qty-btn, .product-card[data-rupture="1"] .qty-input { color:#c6c6c6 !important; background:#f7f7f7 !important; border-color:#c6c6c6 !important; cursor:not-allowed !important; }
.product-card[data-rupture="1"] .qty-btn:active { background:#f7f7f7 !important; }
.product-card[data-rupture="1"] .qty-input { pointer-events:none; }

/* List view grid (cart-like columns) */
.products-grid.list-view { display:block; }
.products-grid.list-view .product-card{ display:grid !important; min-height:auto; grid-template-columns:80px 1fr auto auto auto auto auto auto auto; align-items:center; gap:12px; padding:8px 16px; margin-bottom:10px; box-shadow:0 2px 8px rgba(0,0,0,.04); border:1px solid #e9e9e9; }
.products-grid.list-view .product-main-row,
.products-grid.list-view .product-main-left,
.products-grid.list-view .product-actions{ display:contents !important; }
.products-grid.list-view .product-main-right{ grid-column:1; grid-row:1; display:flex; align-items:center; }
.products-grid.list-view .product-main-right img{ width:80px; height:80px; object-fit:cover; border-radius:8px; }
.products-grid.list-view .product-info-row{ display:flex !important; height:auto; gap:0; align-items:start; margin:0; padding:0; background:none; grid-column:2; grid-row:1; min-width:0; flex-direction:column; }
.products-grid.list-view .product-denomination{ font-weight:700; font-size:.75rem; white-space:nowrap; }
.products-grid.list-view .product-denomination a{ font-size:.90rem; }
.products-grid.list-view .product-meta-small{ font-size:.75rem; color:#555; display:flex; gap:0; flex-wrap:wrap; flex-direction:column; }
.products-grid.list-view .product-labels{ grid-column:3; grid-row:1; display:flex; gap:6px; align-items:center; align-self:center; justify-self:center; margin:0; }
.products-grid.list-view .product-labels .product-rupture{ position:static; margin:0; background:#fff0f0; color:#FF4456; font-weight:700; font-size:.9rem; padding:2px 10px; line-height:1; }
.products-grid.list-view .product-price{ display:none !important; }
.products-grid.list-view .price-promo-row{ display:none !important; }
.products-grid.list-view .product-price-stack-base,
.products-grid.list-view .product-price-stack-promo{ display:flex; flex-direction:column; justify-content:center; gap:2px; align-items:flex-end; text-align:right; }
.products-grid.list-view .product-price-stack-base{ grid-column:4; grid-row:1; }
.products-grid.list-view .product-price-stack-promo{ grid-column:5; grid-row:1; }
.products-grid.list-view .product-price-stack-base .pr-label-line,
.products-grid.list-view .product-price-stack-promo .pr-label-line{ font-size:12px; line-height:1.05; color:#555; }
.products-grid.list-view .product-price-stack-base span,
.products-grid.list-view .product-price-stack-promo span{ font-size:12px; }
.products-grid.list-view .product-price-stack-base .pr-value,
.products-grid.list-view .product-price-stack-promo .pr-value{ font-weight:700; color:#000; line-height:1; }
.products-grid.list-view .product-price-stack-base .pr-value sup,
.products-grid.list-view .product-price-stack-promo .pr-value sup{ font-size:12px; vertical-align:baseline; }
.products-grid.list-view .product-card[data-promo="1"] .product-price-stack-base{ color:#9d9d9c; }
.products-grid.list-view .product-card[data-promo="1"] .product-price-stack-base .pr-label-line{ color:#9d9d9c; }
.products-grid.list-view .product-card[data-promo="1"] .product-price-stack-base .pr-value,
.products-grid.list-view .product-card[data-promo="1"] .product-price-stack-base .pr-value .pu-int,
.products-grid.list-view .product-card[data-promo="1"] .product-price-stack-base .pr-value sup{ color:#9d9d9c; font-weight:400; }
.products-grid.list-view .product-card[data-promo="1"] .product-price-stack-base .pr-value{ text-decoration:line-through; }
.products-grid.list-view .product-card[data-promo="1"] .product-price-stack-base .pr-value sup{ text-decoration:line-through; }
.products-grid.list-view .product-price-stack-promo .pr-unit-promo:empty::after{ content:'—'; color:#bbb; font-weight:400; }
.products-grid.list-view .product-remise-col{ display:flex; align-items:center; justify-content:center; grid-column:6; grid-row:1; }
.products-grid.list-view .product-remise-col:empty::after{ content:'—'; color:#bbb; font-size:12px; }
.products-grid.list-view .product-remise-col .pr-remise-badge{ display:inline-block; color:#fff; font-weight:700; font-size:12px; padding:4px 6px; }
.products-grid.list-view .product-tva{ grid-column:7; grid-row:1; font-size:12px; color:#000000; }
.products-grid.list-view .product-qty-fav{ grid-column:8; grid-row:1; margin:0; }
.products-grid.list-view .fav-btn{ grid-column:9; grid-row:1; margin:0; }
@media (max-width: 1600px){
  .products-grid.list-view .product-card{ grid-template-columns:70px 1fr auto auto auto auto auto; grid-auto-rows:auto; }
  .products-grid.list-view .product-labels{ grid-column:2; }
  .products-grid.list-view .product-price-stack-base{ grid-column:3; }
  .products-grid.list-view .product-price-stack-promo{ grid-column:4; }
  .products-grid.list-view .product-remise-col{ grid-column:5; }
  .products-grid.list-view .product-tva{ grid-column:6; }
  .products-grid.list-view .product-qty-fav,
  .products-grid.list-view .fav-btn{ grid-column:7; }
}

/* Ensure hidden filter state wins in list view (override display:grid !important) */
.products-grid.list-view .product-card.hidden { display:none !important; }
