/* Base commune : le CSS de la boutique de référence suppose ce reset (présent sur Shopify, pas sur WordPress) */
*, *::before, *::after { box-sizing: border-box; }
html, body { overflow-x: hidden; }
@supports (overflow: clip) { html, body { overflow-x: clip; } }
/* téléphones : un champ de moins de 16 px fait zoomer la page au clic (et crée un défilement gauche-droite). On les passe tous à 16 px. */
@media (max-width: 999px) {
  html body input[type="search"], html body input[type="text"], html body input[type="email"], html body input[type="tel"],
  html body input[type="number"], html body input[type="password"], html body select, html body textarea,
  html body .tk-search__input, html body .mbtb-drawer__search input { font-size: 16px !important; }
  .tk-suggest { max-width: calc(100vw - 16px); box-sizing: border-box; }
}
/* l'en-tête change de hauteur au défilement : on évite que le navigateur recale la position de la page */
html { overflow-anchor: none; }

/* En-tête (pages hors accueil, ordinateur) : bandeau noir au-dessus, il défile avec la page ; logo, recherche et menu restent collés.
   Aucune hauteur ne change au défilement. */
@media (min-width: 1000px) {
  html body .mbtb-hdr:not(.mbtb-hdr--home) { position: sticky; top: -32px; z-index: 50; }
  html body .mbtb-hdr:not(.mbtb-hdr--home) .mbtb-hdr__ann { order: 0; }
}

/* Cartes et tuiles : les photos de flacons (fond blanc) remplacent les photos d'ambiance, texte foncé sous l'image */
/* Carte produit plein cadre (comme Noveza) : photo arrondie, dégradé, nom en gras + description à gauche, prix à droite */
.tk-card::after { inset: 50% 0 0; background: linear-gradient(0deg, rgba(0, 0, 0, 0.45), rgba(0, 0, 0, 0)); }
.tk-card__img img { object-fit: cover; }
.tk-card__txt { left: 14px; right: 14px; bottom: 14px; align-items: flex-end; gap: 12px; }
.tk-card__name { display: block; -webkit-line-clamp: unset; overflow: visible; }
.tk-card__name b { display: block; font-size: 1rem; font-weight: 600; line-height: 1.2; }
.tk-card__name small { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; margin-top: 3px; font-size: 0.8125rem; font-weight: 400; line-height: 1.3; }
.tk-card__price b { font-size: 1rem; font-weight: 700; }
.tk-card__tag--dark { background: #111; }
/* dans les listes (boutique, catégories) la carte remplit sa colonne */
.ppv2-wc ul.products li .tk-card { flex: none; width: 100%; min-width: 0; }
.tk-tile { background: var(--tk-soft); color: var(--tk-ink); }
.tk-tile::after { display: none; }
.tk-tile img { object-fit: contain; padding: 18px 14px 44px; mix-blend-mode: multiply; }
.tk-tile__label { color: var(--tk-ink); }

/* Habillage WooCommerce : catalogue et fiche produit dans le style de la boutique de référence */
.ppv2-wc { font-family: var(--tk-font); color: var(--tk-ink); }
.ppv2-wc .woocommerce-breadcrumb { display: none; }
.ppv2-wc > .woocommerce, .ppv2-wc .woocommerce-notices-wrapper { max-width: 1240px; margin-inline: auto; padding-inline: 20px; box-sizing: border-box; }

/* texte de catégorie : court résumé en haut, texte complet sous la grille */
.ppv2-wc .v2-intro { max-width: 58rem; margin: 1rem auto 0; padding-inline: 20px; text-align: center; }
.ppv2-wc .v2-intro__text { margin: 0; color: #444; font-size: 0.9375rem; line-height: 1.55; }
.pp-cat-seo { background: var(--tk-soft); margin-top: clamp(32px, 5vw, 64px); padding: clamp(32px, 5vw, 64px) 20px; }
.pp-cat-seo__in { max-width: 58rem; margin-inline: auto; color: #333; font-size: 0.9375rem; line-height: 1.7; }
.pp-cat-seo__in h1, .pp-cat-seo__in h2, .pp-cat-seo__in h3 { margin: 1.6em 0 0.6em; font: 600 1.25rem/1.3 var(--tk-font); color: var(--tk-ink); }
.pp-cat-seo__in h1:first-child, .pp-cat-seo__in h2:first-child { margin-top: 0; }
.pp-cat-seo__in p, .pp-cat-seo__in ul, .pp-cat-seo__in ol { margin: 0 0 1em; }
.pp-cat-seo__in img { max-width: 100%; height: auto; border-radius: 8px; }

/* catalogue */
.ppv2-wc .woocommerce-products-header { display: none; }
.ppv2-wc ul.products.v2-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 14px; max-width: 1240px; margin: 0 auto; padding: 0 20px; list-style: none; box-sizing: border-box; }
@media (min-width: 900px) { .ppv2-wc ul.products.v2-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 34px 18px; } }
.ppv2-wc ul.products li { margin: 0; padding: 0; width: auto; float: none; list-style: none; }
.ppv2-wc ul.products li::before { content: none; }
/* carte Noveza : photo 4/5 arrondie, nom sur 2 lignes, prix dessous, seconde photo au survol */
.ppv2-wc .v2-card { display: block; color: var(--tk-ink); text-decoration: none; }
.ppv2-wc .v2-card__media { position: relative; aspect-ratio: 3 / 4; overflow: hidden; border-radius: 8px; background: var(--tk-soft); }
.ppv2-wc .v2-card__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; padding: 0; mix-blend-mode: multiply; transition: opacity .4s ease, transform .6s ease; }
.ppv2-wc .v2-card__media img + img { opacity: 0; }
.ppv2-wc .v2-card:hover .v2-card__media img + img { opacity: 1; }
.ppv2-wc .v2-card:hover .v2-card__media img:first-child { transform: scale(1.03); }
.ppv2-wc .v2-card__flag { position: absolute; top: 12px; left: 12px; z-index: 2; padding: 3px 8px; border-radius: 4px; background: #fff; font-size: 0.6875rem; letter-spacing: .06em; text-transform: uppercase; }
.ppv2-wc .v2-card__badge { position: absolute; top: 12px; left: 12px; z-index: 2; padding: 0.35rem 0.6rem; border-radius: 4px; background: #111; color: #fff; font: 600 0.625rem/1 var(--tk-font); letter-spacing: .1em; text-transform: uppercase; }
.ppv2-wc .v2-card__row { display: block; margin-top: 0.7rem; padding: 0; font-size: 0.9375rem; }
.ppv2-wc .v2-card__title { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; margin: 0; font-size: 0.9375rem; font-weight: 500; line-height: 1.3; color: var(--tk-ink); }
.ppv2-wc .v2-card__price { display: block; margin-top: 0.3rem; font-size: 0.9375rem; font-weight: 600; }
.ppv2-wc .v2-card__old { margin-right: 6px; font-weight: 400; color: #777; }

/* barre tri + compteur, comme Noveza : pastille grise à gauche, « N produits » à droite */
.ppv2-wc .pp-bar { display: flex; align-items: center; justify-content: space-between; gap: 12px 24px; flex-wrap: wrap; max-width: 1240px; margin: 1.6rem auto 1.4rem; padding: 0.7rem 20px; border-block: 1px solid rgba(28, 28, 28, 0.1); box-sizing: border-box; }
.ppv2-wc .pp-bar .woocommerce-ordering { order: 0; margin: 0; padding: 0; float: none; }
.ppv2-wc .pp-bar .v2-bar__filters { order: 1; flex: 1 1 auto; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.ppv2-wc .pp-bar .v2-bar__count { order: 2; margin: 0 0 0 auto; font-size: 0.8125rem; color: #777; }
/* menus de filtres : même dessin que la pastille de tri */
.ppv2-wc .v2-filter { position: relative; }
.ppv2-wc .v2-filter summary { list-style: none; cursor: pointer; padding: 0.75rem 2.2rem 0.75rem 1rem; border: 0; border-radius: 6px; background: var(--tk-soft); font: 500 0.8125rem/1 var(--tk-font); color: var(--tk-ink); }
.ppv2-wc .v2-filter summary::-webkit-details-marker { display: none; }
.ppv2-wc .v2-filter[open] summary { background: #fff; box-shadow: inset 0 0 0 1px var(--tk-ink); }
.ppv2-wc .v2-filter__panel { min-width: 220px; padding: 0.5rem; border-radius: 8px; gap: 2px; z-index: 40; }
.ppv2-wc a.v2-filter__opt { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 0.6rem 0.7rem; border-radius: 6px; color: var(--tk-ink); text-decoration: none; font-size: 0.875rem; }
.ppv2-wc a.v2-filter__opt:hover { background: var(--tk-soft); }
.ppv2-wc a.v2-filter__opt.is-on { font-weight: 600; background: var(--tk-soft); }
.ppv2-wc a.v2-filter__opt.is-on::after { content: "✓"; }
.ppv2-wc .v2-active { max-width: 1240px; margin: -0.4rem auto 1.2rem; padding-inline: 20px; box-sizing: border-box; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.ppv2-wc .v2-active__chip { display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.45rem 0.85rem; border-radius: 999px; background: var(--tk-soft); font-size: 0.8125rem; color: var(--tk-ink); text-decoration: none; }
.ppv2-wc .v2-active__clear { font-size: 0.8125rem; color: #777; text-decoration: underline; }
@media (max-width: 749px) { .ppv2-wc .pp-bar .v2-bar__filters { order: 3; flex-basis: 100%; } .ppv2-wc .v2-filter__panel { left: 0; right: auto; } }
.ppv2-wc .woocommerce-ordering select { appearance: none; -webkit-appearance: none; border: 0; border-radius: 6px; background: var(--tk-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' fill='none' stroke='%231a1a1a' stroke-width='1.4'%3E%3Cpath d='m1 1 4 4 4-4'/%3E%3C/svg%3E") no-repeat right 0.9rem center; color: var(--tk-ink); font: 500 0.8125rem/1 var(--tk-font); padding: 0.75rem 2.4rem 0.75rem 1rem; cursor: pointer; }
.ppv2-wc .woocommerce-result-count { display: none; }
.ppv2-wc .woocommerce-pagination { margin: 2.4rem 0 3rem; text-align: center; }
/* sélecteur de pages : une ligne horizontale centrée (la liste porte elle-même la classe page-numbers : on ne stylise que les boutons) */
.ppv2-wc .woocommerce-pagination ul.page-numbers { display: flex; flex-direction: row; flex-wrap: wrap; justify-content: center; align-items: center; gap: 8px; list-style: none; padding: 0; margin: 0; border: 0; background: none; }
.ppv2-wc .woocommerce-pagination ul.page-numbers > li { display: block; margin: 0; padding: 0; border: 0; float: none; }
.ppv2-wc .woocommerce-pagination a.page-numbers, .ppv2-wc .woocommerce-pagination span.page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 42px; height: 42px; padding: 0 0.8rem; border: 1px solid #e3e3e3; border-radius: 8px; background: #fff; color: var(--tk-ink); font: 500 0.875rem/1 var(--tk-font); text-decoration: none; transition: border-color 0.2s, background 0.2s, color 0.2s; }
.ppv2-wc .woocommerce-pagination a.page-numbers:hover { border-color: var(--tk-ink); }
.ppv2-wc .woocommerce-pagination span.page-numbers.current { background: #111; border-color: #111; color: #fff; }
.ppv2-wc .woocommerce-pagination span.page-numbers.dots { border-color: transparent; background: none; min-width: 0; padding: 0 0.2rem; }

/* fiche produit */
.ppv2-wc div.product { max-width: 1240px; margin: 0 auto; padding: 24px 20px 48px; box-sizing: border-box; display: grid; gap: 28px; }
@media (min-width: 1000px) { .ppv2-wc div.product { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 56px; align-items: start; } .ppv2-wc div.product .summary { position: sticky; top: 100px; } .ppv2-wc div.product .woocommerce-tabs, .ppv2-wc div.product .related, .ppv2-wc div.product .upsells { grid-column: 1 / -1; } }
.ppv2-wc div.product > * { min-width: 0; }
.ppv2-wc div.product .woocommerce-product-gallery { position: relative; margin: 0; width: 100%; float: none; opacity: 1 !important; }
.ppv2-wc div.product .woocommerce-product-gallery__wrapper { margin: 0; padding: 0; }
.ppv2-wc div.product .woocommerce-product-gallery__image { background: var(--tk-soft); border-radius: 8px; overflow: hidden; }
.ppv2-wc div.product .woocommerce-product-gallery__image a { display: block; }
.ppv2-wc div.product .woocommerce-product-gallery img { display: block; width: 100%; max-width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: contain; border-radius: 8px; mix-blend-mode: multiply; }
.ppv2-wc div.product .woocommerce-product-gallery__trigger { position: absolute; top: 12px; right: 12px; z-index: 5; width: 36px; height: 36px; display: grid; place-items: center; border-radius: 50%; background: #fff; text-decoration: none; font-size: 0; }
.ppv2-wc div.product .woocommerce-product-gallery__trigger::before { content: "⤢"; font-size: 1.1rem; color: var(--tk-ink); }
.ppv2-wc div.product .flex-control-thumbs { display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px; margin: 10px 0 0; padding: 0; list-style: none; }
.ppv2-wc div.product .flex-control-thumbs li { margin: 0; }
.ppv2-wc div.product .flex-control-thumbs img { aspect-ratio: 1 / 1; object-fit: contain; background: var(--tk-soft); cursor: pointer; opacity: .6; }
.ppv2-wc div.product .flex-control-thumbs img.flex-active, .ppv2-wc div.product .flex-control-thumbs img:hover { opacity: 1; }
.ppv2-wc div.product .summary { width: 100%; float: none; }
.ppv2-wc div.product .product_title { margin: 0 0 0.9rem; font: 500 clamp(1.35rem, 1.9vw, 1.7rem)/1.25 var(--tk-font); }
.ppv2-wc div.product p.price { font-weight: 600; font-size: 1.75rem; color: var(--tk-ink); }
.ppv2-wc div.product p.price del { font-weight: 400; font-size: 1.1rem; color: #777; }
.ppv2-wc div.product p.price ins { background: none; text-decoration: none; }
.ppv2-wc .single_add_to_cart_button, .ppv2-wc button.button.alt { border-radius: 8px; background: #000; color: #fff; font: 500 1rem/1 var(--tk-font); padding: 1rem 1.6rem; border: 0; }
.ppv2-wc .single_add_to_cart_button:hover, .ppv2-wc button.button.alt:hover { background: #333; color: #fff; }
.ppv2-wc .quantity .qty { border: 1px solid #e3e3e3; border-radius: 6px; padding: 0.85rem 0.6rem; width: 4.5rem; }
.ppv2-wc div.product .woocommerce-tabs ul.tabs { display: flex; gap: 22px; padding: 0; margin: 0 0 1.4rem; list-style: none; border-bottom: 1px solid var(--tk-line); }
.ppv2-wc div.product .woocommerce-tabs ul.tabs li { background: none; border: 0; padding: 0; margin: 0; }
.ppv2-wc div.product .woocommerce-tabs ul.tabs li a { display: block; padding: 0.7rem 0; color: #777; text-decoration: none; font-weight: 500; }
.ppv2-wc div.product .woocommerce-tabs ul.tabs li.active a { color: var(--tk-ink); border-bottom: 2px solid var(--tk-ink); }
.ppv2-wc div.product .related > h2, .ppv2-wc div.product .upsells > h2 { font: 500 1.4rem/1.2 var(--tk-font); margin-bottom: 1.2rem; }

/* panier, commande, compte : mise en page neutre centrée */
.ppv2-wc .woocommerce { padding-block: 24px 56px; }
.ppv2-wc .woocommerce table.shop_table { border-collapse: collapse; width: 100%; border: 1px solid var(--tk-line); border-radius: 8px; }
.ppv2-wc .woocommerce table.shop_table th, .ppv2-wc .woocommerce table.shop_table td { padding: 0.9rem; border-top: 1px solid var(--tk-line); }

/* filtre « Note » : liste longue, défilante */
.v2-filter[data-g="note"] .v2-filter__panel { max-height: 320px; overflow-y: auto; }

/* jauge « livraison offerte » (panier, paiement, tiroir) */
.pp-fs { margin: 0 0 18px; padding: 14px 16px; border: 1px solid #ececec; border-radius: 12px; background: #fafafa; font-family: var(--tk-font, 'Work Sans', sans-serif); }
.pp-fs[hidden] { display: none; }
.pp-fs__t { display: flex; align-items: center; gap: 10px; margin: 0 0 10px; font-size: 0.875rem; line-height: 1.35; color: #444; }
.pp-fs__t svg { flex: none; width: 22px; height: 22px; color: #111; }
.pp-fs__t b { color: #111; font-weight: 600; }
.pp-fs__bar { height: 8px; border-radius: 4px; background: #e6e6e6; overflow: hidden; }
.pp-fs__bar i { display: block; height: 100%; border-radius: 4px; background: #111; transition: width .5s cubic-bezier(.2, .7, .2, 1); }
.pp-fs.is-done { border-color: #cfe5d6; background: #f3faf5; }
.pp-fs.is-done .pp-fs__bar i { background: #2f7d4f; }
.pp-fs.is-done .pp-fs__t svg { color: #2f7d4f; }
