/* Popterror — sélecteur d'offres en cartes (fiches produits WooCommerce). Couleurs : variables --pto-* (réglages). */
.pt-offres { display: none; margin: 0 0 18px; color: var(--pto-texte, #111); font-size: 15px; line-height: 1.3; }
form.pt-offres-actif .pt-offres, .pt-offres--admin { display: block; }
form.pt-offres-actif table.variations { display: none; }
form.pt-offres-actif.pt-offres-sans-prix .woocommerce-variation-price { display: none; }

.pt-offres__apercu { margin: 0 0 8px; padding: 4px 8px; border: 1px dashed currentColor; border-radius: 4px; font-size: 12px; opacity: .7; }
.pt-offres__titre { display: flex; align-items: center; gap: 12px; margin: 0 0 4px; font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; text-align: center; }
.pt-offres__titre::before, .pt-offres__titre::after { content: ""; flex: 1; height: 1px; background: currentColor; opacity: .25; }
.pt-offres__sous-titre { margin: 0 0 10px; font-size: 13px; font-style: italic; text-align: center; opacity: .8; }
.pt-offres__liste { display: grid; gap: 14px; padding-top: 6px; }
.pt-offres--colonnes .pt-offres__liste { grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); }

/* Carte (bouton) : remise à zéro des styles de bouton du thème */
.pt-offres button.pt-offre {
  all: unset; box-sizing: border-box; position: relative; display: grid; grid-template-columns: auto auto 1fr auto; align-items: center; gap: 12px;
  width: 100%; padding: 14px 16px; background: var(--pto-fond, #f4f2ee); color: inherit; font: inherit; text-align: left;
  border: 2px solid transparent; border-radius: var(--pto-arrondi, 10px); cursor: pointer; transition: border-color .15s, background-color .15s, box-shadow .15s;
}
.pt-offres button.pt-offre:hover { border-color: rgba(0, 0, 0, .25); }
.pt-offres button.pt-offre.is-active { background: var(--pto-fond-actif, #fff4cc); border-color: var(--pto-accent, #000); box-shadow: 0 2px 10px rgba(0, 0, 0, .08); }
.pt-offres button.pt-offre:focus-visible { outline: 3px solid var(--pto-accent, #000); outline-offset: 2px; }
.pt-offres button.pt-offre:disabled { cursor: not-allowed; opacity: .55; }

.pt-offre__coche { box-sizing: border-box; width: 20px; height: 20px; border: 2px solid currentColor; border-radius: 50%; opacity: .45; }
.pt-offre.is-active .pt-offre__coche { border: 6px solid var(--pto-accent, #000); background: #fff; opacity: 1; }
.pt-offre__img img { display: block; width: 56px; height: 56px; object-fit: cover; border-radius: calc(var(--pto-arrondi, 10px) * .6); }
.pt-offre__texte { display: flex; flex-direction: column; align-items: flex-start; gap: 3px; min-width: 0; }
.pt-offre__nom { font-size: 17px; font-weight: 700; }
.pt-offre__detail { font-size: 13px; opacity: .8; }
.pt-offre__eco { margin-top: 3px; padding: 2px 8px; border-radius: 999px; background: var(--pto-eco-fond, #fac200); color: var(--pto-eco-texte, #000); font-size: 12px; font-weight: 700; }
.pt-offre__eco--epuise { background: rgba(0, 0, 0, .12); color: inherit; }
.pt-offre__prix { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; white-space: nowrap; }
.pt-offre__actuel { font-size: 18px; font-weight: 700; }
.pt-offre__prix del { font-size: 13px; opacity: .55; }
.pt-offre__badge {
  position: absolute; top: -12px; right: 14px; padding: 3px 10px; border-radius: 4px; background: var(--pto-badge-fond, #f66c57); color: var(--pto-badge-texte, #fff);
  font-size: 11px; font-weight: 700; letter-spacing: .06em; line-height: 1.4; text-transform: uppercase; transform: rotate(2deg); white-space: nowrap;
}

/* Cartes côte à côte */
.pt-offres--colonnes button.pt-offre { grid-template-columns: 1fr; justify-items: center; padding: 26px 12px 16px; text-align: center; }
.pt-offres--colonnes .pt-offre__coche { position: absolute; top: 10px; left: 10px; }
.pt-offres--colonnes .pt-offre--badge .pt-offre__coche { top: 32px; }
.pt-offres--colonnes button.pt-offre--badge { padding-top: 34px; }
.pt-offres--colonnes .pt-offre__texte, .pt-offres--colonnes .pt-offre__prix { align-items: center; }
.pt-offres--colonnes .pt-offre__badge { left: -2px; right: -2px; top: -2px; border-radius: var(--pto-arrondi, 10px) var(--pto-arrondi, 10px) 0 0; text-align: center; transform: none; }

@media (max-width: 480px) {
  .pt-offres button.pt-offre { gap: 10px; padding: 12px; }
  .pt-offre__img img { width: 48px; height: 48px; }
  .pt-offre__nom { font-size: 16px; }
  .pt-offre__actuel { font-size: 17px; }
}

/* Description courte sous le bouton, en menu déroulant */
.pt-desc { margin: 18px 0 6px; border-top: 1px solid rgba(0, 0, 0, .15); border-bottom: 1px solid rgba(0, 0, 0, .15); }
.pt-desc > summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 2px; cursor: pointer; list-style: none; font-size: 14px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.pt-desc > summary::-webkit-details-marker { display: none; }
.pt-desc > summary::after { content: "+"; font-size: 24px; font-weight: 400; line-height: 1; transition: transform .2s; }
.pt-desc[open] > summary::after { transform: rotate(45deg); }
.pt-desc > summary:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
.pt-desc__contenu { padding: 0 2px 14px; }
.pt-desc__contenu > :last-child { margin-bottom: 0; }

/* Sur téléphone (carrousel du thème affiché jusqu'à 768 px) : photos et vidéos d'ambiance sous le produit, avant « À voir aussi » ;
   le bas de la grande image de fond se fond dans le blanc de la page. Ordre visuel seulement (flex), le code de la page ne change pas. */
@media (max-width: 768px) {
  body.pt-ambiance-dessous main#main.product_content { display: flex; flex-direction: column; }
  body.pt-ambiance-dessous main#main.product_content > .top_product + .supp_content { order: 1; margin-top: 8px; }
  body.pt-ambiance-dessous main#main.product_content > div.woocommerce ~ .supp_content { order: 2; }
  body.pt-ambiance-dessous main#main.product_content > .top_product::after {
    content: ""; position: absolute; left: 0; right: 0; bottom: -28px; height: 110px; z-index: 0; pointer-events: none;
    background: linear-gradient(to bottom, rgba(255, 255, 255, 0), #fff 75%);
  }
  body.pt-ambiance-dessous main#main.product_content > .top_product > * { position: relative; z-index: 1; }
  body.pt-ambiance-dessous main#main.product_content > div.woocommerce { position: relative; z-index: 1; margin-top: 12px; }
  /* Placées avant le produit dans le code, les photos d'ambiance servaient de repère au navigateur (« ancrage du défilement ») :
     ouvrir une question de la FAQ faisait remonter la page. Exclues du repère, la question reste sous le doigt. */
  body.pt-ambiance-dessous main#main.product_content > .supp_content { overflow-anchor: none; }
}

/* « En stock » : point vert qui « respire » + texte en gras */
p.stock.pt-stock { display: flex; align-items: center; gap: 9px; margin: 6px 0 14px; color: #000; font-size: 15px; font-weight: 700; letter-spacing: .2px; line-height: 1.3; }
p.stock.pt-stock::before, p.stock.pt-stock::after { content: none !important; display: none !important; }
.pt-stock__point { flex: none; width: 9px; height: 9px; border-radius: 50%; background: var(--pto-stock, #34c759); animation: pt-stock-pouls 1.6s ease-in-out infinite; }
@keyframes pt-stock-pouls {
  0% { transform: scale(1); box-shadow: 0 0 0 0 color-mix(in srgb, var(--pto-stock, #34c759) 45%, transparent); opacity: 1; }
  50% { transform: scale(1.25); box-shadow: 0 0 0 6px transparent; opacity: .75; }
  100% { transform: scale(1); box-shadow: 0 0 0 0 transparent; opacity: 1; }
}
@media (prefers-reduced-motion: reduce) { .pt-stock__point { animation: none; } }
@media (max-width: 600px) { p.stock.pt-stock { font-size: 14px; } }

/* Bouton « Ajouter au panier » (produits en cartes) : couleurs réglables, plus grand, toute la largeur à côté de la quantité */
body.pt-bouton .summary form.cart .woocommerce-variation-add-to-cart { display: flex; align-items: stretch; gap: 10px; }
body.pt-bouton .summary form.cart .woocommerce-variation-add-to-cart .quantity { float: none; margin: 0; }
body.pt-bouton .summary form.cart button.single_add_to_cart_button.button.alt {
  flex: 1; float: none; min-height: 52px; margin: 0; background-color: var(--pto-bouton-fond, #000); border-color: var(--pto-bouton-fond, #000);
  color: var(--pto-bouton-texte, #fff); font-size: 17px; letter-spacing: .03em; border-radius: 6px; transition: background-color .15s, transform .1s;
}
body.pt-bouton .summary form.cart button.single_add_to_cart_button.button.alt:hover { background-color: color-mix(in srgb, var(--pto-bouton-fond, #000) 82%, #fff); border-color: color-mix(in srgb, var(--pto-bouton-fond, #000) 82%, #fff); }
body.pt-bouton .summary form.cart button.single_add_to_cart_button.button.alt:active { transform: scale(.99); }
body.pt-bouton .summary form.cart .woocommerce-variation-add-to-cart .quantity { display: flex; }
body.pt-bouton .summary form.cart .woocommerce-variation-add-to-cart .quantity input.qty { height: auto; min-height: 52px; }

/* Quantité « − 1 + » (boutons affichés seulement quand le script des cartes a démarré) */
.pt-qte__btn { display: none; }
:is(form.pt-offres-actif, form.pt-qte-pret) .quantity:has(.pt-qte__btn) {
  display: flex; align-items: stretch; flex: none; float: none; margin: 0; min-height: 52px;
  border: 1px solid #000; border-radius: 6px; overflow: hidden; background: #fff;
}
:is(form.pt-offres-actif, form.pt-qte-pret) .quantity button.pt-qte__btn {
  all: unset; box-sizing: border-box; display: flex; align-items: center; justify-content: center; width: 40px; flex: none;
  font-size: 22px; font-weight: 500; line-height: 1; color: #000; cursor: pointer; user-select: none; -webkit-tap-highlight-color: transparent;
}
:is(form.pt-offres-actif, form.pt-qte-pret) .quantity button.pt-qte__btn:hover { background: rgba(0, 0, 0, .06); }
:is(form.pt-offres-actif, form.pt-qte-pret) .quantity button.pt-qte__btn:focus-visible { outline: 2px solid #000; outline-offset: -3px; }
:is(form.pt-offres-actif, form.pt-qte-pret) .quantity button.pt-qte__btn:disabled { color: rgba(0, 0, 0, .25); cursor: default; background: none; }
:is(form.pt-offres-actif, form.pt-qte-pret) .quantity:has(.pt-qte__btn) input.qty {
  width: 40px; min-height: 0; height: auto; margin: 0; padding: 0; border: 0; border-radius: 0; background: none; box-shadow: none;
  text-align: center; font-size: 17px; font-weight: 700; color: #000; -moz-appearance: textfield; appearance: textfield;
}
:is(form.pt-offres-actif, form.pt-qte-pret) .quantity:has(.pt-qte__btn) input.qty::-webkit-outer-spin-button,
:is(form.pt-offres-actif, form.pt-qte-pret) .quantity:has(.pt-qte__btn) input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
:is(form.pt-offres-actif, form.pt-qte-pret) .quantity:has(.pt-qte__btn) input.qty:focus { outline: none; }
:is(form.pt-offres-actif, form.pt-qte-pret) .quantity:has(.pt-qte__btn):focus-within { box-shadow: 0 0 0 2px rgba(0, 0, 0, .15); }
:is(form.pt-offres-actif, form.pt-qte-pret) .quantity:has(.pt-qte__btn) { box-sizing: border-box; }
body.pt-bouton .summary form.cart:is(.pt-offres-actif, .pt-qte-pret) .quantity:has(.pt-qte__btn) input.qty { min-height: 0; }

/* Réassurance sous le bouton : 2 colonnes, icône au trait + titre en gras + détail */
ul.pt-rea { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 16px; margin: 18px 0 6px; padding: 16px; list-style: none; background: #f6f5f2; border-radius: 8px; }
ul.pt-rea > li.pt-rea__item { display: flex; align-items: flex-start; gap: 10px; margin: 0; padding: 0; list-style: none; }
.pt-rea__item::before, .pt-rea__item::marker { content: none; }
.pt-rea__icone { flex: none; display: flex; width: 24px; height: 24px; color: #000; }
.pt-rea__icone svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.pt-rea__titre { display: block; color: #000; font-size: 14px; font-weight: 700; line-height: 1.25; }
.pt-rea__detail { display: block; margin-top: 2px; font-size: 12.5px; line-height: 1.3; opacity: .7; }
@media (max-width: 359px) { ul.pt-rea { grid-template-columns: 1fr; } }

/* Prix « À partir de » */
.summary .price .pt-prix-depuis { font-size: .8em; opacity: .75; }

/* Mini-FAQ : questions dépliables, même trait que « Description » */
.pt-faq { margin: 0 0 6px; }
.pt-faq__titre { margin: 22px 0 6px; font-size: 14px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.pt-desc.pt-faq__item { margin: 0; border-top: 0; }
.pt-faq__titre + .pt-desc.pt-faq__item { border-top: 1px solid rgba(0, 0, 0, .15); }
.pt-desc.pt-faq__item > summary { font-size: 15px; font-weight: 600; letter-spacing: 0; text-transform: none; }
.pt-desc.pt-faq__item .pt-desc__contenu p { margin: 0; font-size: inherit; line-height: inherit; } /* même taille que la question (le thème met ses paragraphes en 18 px) */
.pt-desc.pt-faq__item .pt-desc__contenu { font-size: 15px; line-height: 1.5; color: #333; }

/* En-tête compact : prix plus près du titre ; sur téléphone, titre ajusté pour tenir sur une ligne (≈ 25 caractères) */
body.pt-entete-compact .summary p.price { margin-top: 6px !important; margin-bottom: 18px !important; }
@media (max-width: 768px) {
  body.pt-entete-compact .summary .product_title { font-size: clamp(26px, calc((100vw - 40px) / 10), 40px) !important; line-height: 1.05 !important; }
}

/* Offre choisie mise en avant (réglage « relief ») : plus haute, soulevée, coche pleine ; autres cartes atténuées sauf badge et économie */
.pt-offres--relief button.pt-offre { transition: border-color .15s, background-color .15s, box-shadow .2s, padding .2s ease-out; }
.pt-offres--relief.pt-offres--liste button.pt-offre.is-active { padding-top: 19px; padding-bottom: 19px; }
.pt-offres--relief.pt-offres--colonnes button.pt-offre.is-active { padding-bottom: 21px; }
.pt-offres--relief button.pt-offre.is-active { box-shadow: 0 6px 18px rgba(0, 0, 0, .13); }
.pt-offres--relief .pt-offre:not(.is-active) .pt-offre__img,
.pt-offres--relief .pt-offre:not(.is-active) .pt-offre__nom,
.pt-offres--relief .pt-offre:not(.is-active) .pt-offre__detail,
.pt-offres--relief .pt-offre:not(.is-active) .pt-offre__prix { opacity: .62; transition: opacity .2s; }
.pt-offres--relief .pt-offre:not(.is-active):hover .pt-offre__img,
.pt-offres--relief .pt-offre:not(.is-active):hover .pt-offre__nom,
.pt-offres--relief .pt-offre:not(.is-active):hover .pt-offre__detail,
.pt-offres--relief .pt-offre:not(.is-active):hover .pt-offre__prix { opacity: .9; }
.pt-offres--relief.pt-offres--liste .pt-offre__coche { position: relative; }
.pt-offres--relief .pt-offre.is-active .pt-offre__coche { width: 22px; height: 22px; border: 0; background: var(--pto-accent, #000); opacity: 1; }
.pt-offres--relief .pt-offre.is-active .pt-offre__coche::after {
  content: ""; position: absolute; left: 50%; top: 45%; width: 5px; height: 10px; border: solid #fff; border-width: 0 2.5px 2.5px 0;
  transform: translate(-50%, -50%) rotate(45deg);
}
@media (prefers-reduced-motion: reduce) { .pt-offres--relief button.pt-offre { transition: none; } }

/* Panneau latéral après l'ajout au panier */
html.pt-panier-ouvert { overflow: hidden; }
.pt-panier { position: fixed; inset: 0; z-index: 100000; }
.pt-panier[hidden] { display: none; }
.pt-panier__fond { position: absolute; inset: 0; background: rgba(0, 0, 0, .45); opacity: 0; transition: opacity .25s; }
.pt-panier__boite {
  position: absolute; top: 0; right: 0; bottom: 0; display: flex; flex-direction: column; gap: 14px; width: min(420px, 92vw); padding: 18px 18px 14px;
  background: #fff; color: #111; box-shadow: -8px 0 30px rgba(0, 0, 0, .18); overflow-y: auto; transform: translateX(100%); transition: transform .25s ease-out; outline: none;
}
.pt-panier.is-ouvert .pt-panier__fond { opacity: 1; }
.pt-panier.is-ouvert .pt-panier__boite { transform: none; }
.pt-panier__tete { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-bottom: 12px; border-bottom: 1px solid rgba(0, 0, 0, .12); }
.pt-panier__titre { display: flex; align-items: center; gap: 10px; margin: 0; font-size: 17px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.pt-panier__ok { position: relative; flex: none; width: 22px; height: 22px; border-radius: 50%; background: #000; }
.pt-panier__ok::after { content: ""; position: absolute; left: 50%; top: 45%; width: 5px; height: 10px; border: solid #fff; border-width: 0 2.5px 2.5px 0; transform: translate(-50%, -50%) rotate(45deg); }
.pt-panier button.pt-panier__fermer { all: unset; box-sizing: border-box; display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; font-size: 28px; line-height: 1; cursor: pointer; }
.pt-panier button.pt-panier__fermer:hover { background: rgba(0, 0, 0, .06); }
.pt-panier button.pt-panier__fermer:focus-visible, .pt-panier button.pt-panier__continuer:focus-visible, .pt-panier button.pt-panier__retirer:focus-visible { outline: 2px solid #000; outline-offset: 2px; }
.pt-panier__livraison { padding: 12px 14px; border-radius: 8px; background: #f6f5f2; }
.pt-panier__livraison p { margin: 0 0 8px; font-size: 14px; font-weight: 600; }
.pt-panier__livraison.is-ok p { color: #137333; }
.pt-panier__barre { height: 6px; border-radius: 999px; background: rgba(0, 0, 0, .1); overflow: hidden; }
.pt-panier__barre span { display: block; height: 100%; border-radius: 999px; background: #000; transition: width .4s ease-out; }
.pt-panier__livraison.is-ok .pt-panier__barre span { background: #34c759; }
ul.pt-panier__articles { display: flex; flex-direction: column; gap: 12px; margin: 0; padding: 0; list-style: none; }
li.pt-panier__article { display: grid; grid-template-columns: 64px 1fr auto; align-items: center; gap: 12px; margin: 0; list-style: none; }
.pt-panier__article img { display: block; width: 64px; height: 64px; object-fit: cover; border-radius: 6px; background: #f4f2ee; }
.pt-panier__infos { display: flex; flex-direction: column; gap: 3px; min-width: 0; font-size: 14px; }
.pt-panier__infos a { color: inherit; font-weight: 700; text-decoration: none; }
.pt-panier__qte { font-size: 13px; opacity: .7; }
.pt-panier__droite { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; font-size: 14px; font-weight: 700; white-space: nowrap; }
.pt-panier button.pt-panier__retirer { all: unset; cursor: pointer; font-size: 12px; font-weight: 400; text-decoration: underline; opacity: .65; }
.pt-panier button.pt-panier__retirer:hover { opacity: 1; }
.pt-panier__total { display: flex; justify-content: space-between; margin: 0; padding-top: 12px; border-top: 1px solid rgba(0, 0, 0, .12); font-size: 16px; }
.pt-panier__actions { display: flex; flex-direction: column; gap: 8px; }
.pt-panier a.pt-panier__commander { display: flex; align-items: center; justify-content: center; min-height: 52px; border-radius: 6px; background: var(--pto-bouton-fond, #000); color: var(--pto-bouton-texte, #fff); font-size: 17px; font-weight: 700; text-decoration: none; }
.pt-panier a.pt-panier__commander:hover { background: color-mix(in srgb, var(--pto-bouton-fond, #000) 82%, #fff); }
.pt-panier a.pt-panier__voir { display: flex; align-items: center; justify-content: center; min-height: 46px; border: 1px solid #000; border-radius: 6px; color: #000; font-weight: 700; text-decoration: none; }
.pt-panier__sous-titre { margin: 4px 0 8px; font-size: 13px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.pt-panier__suggestions ul { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 0; padding: 0; list-style: none; }
.pt-panier__suggestions li { margin: 0; list-style: none; }
.pt-panier__suggestions a { display: flex; flex-direction: column; gap: 4px; color: inherit; font-size: 13px; text-decoration: none; }
.pt-panier__suggestions img { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; border-radius: 6px; background: #f4f2ee; }
.pt-panier__sug-nom { font-weight: 700; }
.pt-panier button.pt-panier__continuer { all: unset; align-self: center; margin-top: auto; padding: 8px; cursor: pointer; font-size: 14px; text-decoration: underline; }
.pt-panier__vide { margin: 20px 0; text-align: center; }
@media (prefers-reduced-motion: reduce) { .pt-panier__boite, .pt-panier__fond, .pt-panier__barre span { transition: none; } }
.pt-panier-contenu { display: flex; flex-direction: column; gap: 16px; }

/* Panneau : corps qui défile, pied fixe (offre + « Commander · total ») */
.pt-panier__boite { padding-bottom: 0; }
.pt-panier-contenu { flex: 1; }
.pt-panier__corps { display: flex; flex-direction: column; gap: 16px; }
.pt-panier__pied { position: sticky; bottom: 0; display: flex; flex-direction: column; gap: 12px; margin: auto -18px 0; padding: 14px 18px 16px; background: #fff; border-top: 1px solid rgba(0, 0, 0, .12); }
.pt-panier a.pt-panier__commander { gap: 10px; }
.pt-panier__point { opacity: .7; }
.pt-panier__offre { padding: 12px 14px; border: 1px solid rgba(0, 0, 0, .1); border-radius: 8px; background: #f8f8f8; }
.pt-panier__offre-titre { margin: 0 0 10px; font-size: 13px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
label.pt-panier__offre-ligne { display: grid; grid-template-columns: 56px 1fr auto; align-items: center; gap: 12px; margin: 0; cursor: pointer; }
.pt-panier__offre-ligne img { display: block; width: 56px; height: 56px; object-fit: cover; border-radius: 6px; background: #fff; }
.pt-panier__offre-infos { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.pt-panier__offre-nom { font-size: 14px; font-weight: 700; }
.pt-panier__offre-prix { font-size: 14px; font-weight: 700; }
.pt-panier__offre-prix del { margin-right: 4px; font-weight: 400; opacity: .55; }
/* Interrupteur façon iOS */
.pt-panier input.pt-interrupteur { -webkit-appearance: none; appearance: none; position: relative; flex: none; width: 51px; height: 31px; margin: 0; border: 0; border-radius: 999px; background: #d9d9d9; cursor: pointer; transition: background-color .2s; }
.pt-panier input.pt-interrupteur::after { content: ""; position: absolute; top: 2px; left: 2px; width: 27px; height: 27px; border-radius: 50%; background: #fff; box-shadow: 0 2px 4px rgba(0, 0, 0, .25); transition: transform .2s; }
.pt-panier input.pt-interrupteur:checked { background: #34c759; }
.pt-panier input.pt-interrupteur:checked::after { transform: translateX(20px); }
.pt-panier input.pt-interrupteur:focus-visible { outline: 2px solid #000; outline-offset: 2px; }
.pt-panier input.pt-interrupteur:disabled { opacity: .6; cursor: progress; }
@media (prefers-reduced-motion: reduce) { .pt-panier input.pt-interrupteur, .pt-panier input.pt-interrupteur::after { transition: none; } }

/* « Plus que N box pour la livraison offerte » : encart jaune + bouton d'ajout en un clic */
.pt-panier__livraison.is-ajout { padding: 14px; background: #fff4cc; border: 2px solid #fac200; }
.pt-panier__livraison p { display: flex; align-items: center; gap: 10px; }
.pt-panier__livraison.is-ajout p { font-size: 15px; font-weight: 700; }
.pt-panier__camion { display: flex; flex: none; width: 26px; height: 26px; }
.pt-panier__camion svg { width: 26px; height: 26px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.pt-panier button.pt-panier__ajout {
  all: unset; box-sizing: border-box; display: flex; align-items: center; justify-content: center; width: 100%; min-height: 46px; margin-top: 12px;
  border-radius: 6px; background: #fac200; color: #000; font-size: 16px; font-weight: 700; text-align: center; cursor: pointer; transition: background-color .15s, transform .1s;
}
.pt-panier button.pt-panier__ajout:hover { background: #ffd23f; }
.pt-panier button.pt-panier__ajout:active { transform: scale(.99); }
.pt-panier button.pt-panier__ajout:focus-visible { outline: 2px solid #000; outline-offset: 2px; }
.pt-panier button.pt-panier__ajout:disabled { opacity: .6; cursor: progress; }
/* Encart « Plus que N box » : neutre (pas d'air d'avertissement), bouton à contour noir — « Commander » reste le seul bouton noir plein */
.pt-panier__livraison.is-ajout { background: #f6f5f2; border: 0; }
.pt-panier button.pt-panier__ajout { background: #fff; color: #000; border: 1.5px solid #000; }
.pt-panier button.pt-panier__ajout:hover { background: #000; color: #fff; }

/* Panneau : articles plus grands (photo 96 px), nom + total en haut, quantité « − n + » et « Retirer » en bas */
ul.pt-panier__articles { gap: 16px; }
ul.pt-panier__articles > li.pt-panier__article + li.pt-panier__article { padding-top: 16px; border-top: 1px solid rgba(0, 0, 0, .08); }
li.pt-panier__article { grid-template-columns: 96px 1fr; align-items: stretch; gap: 14px; }
.pt-panier__article img { width: 96px; height: 96px; border-radius: 8px; }
.pt-panier__infos { gap: 6px; font-size: 15px; }
.pt-panier__haut, .pt-panier__bas { display: flex; justify-content: space-between; gap: 10px; }
.pt-panier__haut { align-items: flex-start; }
.pt-panier__haut a { min-width: 0; line-height: 1.25; }
.pt-panier__prix { flex: none; font-weight: 700; white-space: nowrap; }
.pt-panier__bas { align-items: center; margin-top: auto; padding-top: 4px; }
.pt-panier__choix { display: inline-flex; align-items: center; height: 38px; border: 1px solid rgba(0, 0, 0, .2); border-radius: 6px; overflow: hidden; }
.pt-panier button.pt-panier__pas { all: unset; box-sizing: border-box; display: flex; align-items: center; justify-content: center; width: 38px; height: 100%; font-size: 20px; line-height: 1; cursor: pointer; -webkit-tap-highlight-color: transparent; }
.pt-panier button.pt-panier__pas:hover:not(:disabled) { background: rgba(0, 0, 0, .06); }
.pt-panier button.pt-panier__pas:disabled { opacity: .3; cursor: default; }
.pt-panier button.pt-panier__pas:focus-visible { outline: 2px solid #000; outline-offset: -2px; }
.pt-panier__nombre { min-width: 26px; font-size: 15px; font-weight: 700; text-align: center; }
.pt-panier__choix.is-attente { opacity: .55; cursor: progress; }
.pt-panier__bas button.pt-panier__retirer { margin-left: auto; font-size: 13px; }
.pt-panier__prix del { margin-right: 4px; font-weight: 400; opacity: .55; }

/* Offre du panneau : vignette ou nom → photos agrandies, à faire glisser (ou flèches), « × » pour réduire ; l'interrupteur reste seul à ajouter l'offre */
.pt-sr { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
div.pt-panier__offre-ligne { display: flex; align-items: center; gap: 12px; }
.pt-panier button.pt-panier__offre-voir { all: unset; box-sizing: border-box; flex: 1; min-width: 0; display: grid; grid-template-columns: 56px 1fr; align-items: center; gap: 12px; border-radius: 6px; cursor: zoom-in; }
.pt-panier button.pt-panier__offre-voir:focus-visible { outline: 2px solid #000; outline-offset: 3px; }
.pt-panier__offre-vignette { position: relative; display: block; width: 56px; height: 56px; }
.pt-panier__loupe { position: absolute; right: -6px; bottom: -6px; display: flex; align-items: center; justify-content: center; width: 24px; height: 24px; border-radius: 50%; background: #fff; box-shadow: 0 1px 4px rgba(0, 0, 0, .28); }
.pt-panier__loupe svg { width: 14px; height: 14px; fill: none; stroke: #000; stroke-width: 2.4; stroke-linecap: round; }
.pt-panier__offre.is-grand button.pt-panier__offre-voir { grid-template-columns: 1fr; cursor: zoom-out; }
.pt-panier__offre.is-grand .pt-panier__offre-vignette { display: none; }
.pt-panier__offre-grand { position: relative; margin: 0 0 12px; }
.pt-panier__offre-grand[hidden] { display: none; }
ul.pt-panier__photos { display: flex; margin: 0; padding: 0; list-style: none; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; overscroll-behavior-x: contain; border-radius: 8px; }
ul.pt-panier__photos::-webkit-scrollbar { display: none; }
li.pt-panier__photo { flex: 0 0 100%; display: flex; justify-content: center; margin: 0; list-style: none; scroll-snap-align: center; }
.pt-panier__photo img { display: block; width: auto; max-width: 100%; height: min(300px, 36vh); aspect-ratio: 1; object-fit: cover; border-radius: 8px; background: #f4f2ee; }
.pt-panier button.pt-panier__fleche, .pt-panier button.pt-panier__photos-fermer {
  all: unset; box-sizing: border-box; position: absolute; display: flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 50%;
  background: rgba(255, 255, 255, .92); box-shadow: 0 1px 6px rgba(0, 0, 0, .22); color: #000; font-size: 26px; line-height: 1; cursor: pointer; transition: opacity .15s;
}
.pt-panier button.pt-panier__fleche { top: calc(min(300px, 36vh) / 2 - 18px); }
.pt-panier button.pt-panier__fleche[data-pas="-1"] { left: 8px; }
.pt-panier button.pt-panier__fleche[data-pas="1"] { right: 8px; }
.pt-panier button.pt-panier__fleche:disabled { visibility: hidden; opacity: 0; pointer-events: none; } /* visibility : le thème force l’opacité des boutons désactivés */
.pt-panier button.pt-panier__photos-fermer { top: 8px; right: 8px; font-size: 24px; }
.pt-panier button.pt-panier__fleche:focus-visible, .pt-panier button.pt-panier__photos-fermer:focus-visible { outline: 2px solid #000; outline-offset: 2px; }
.pt-panier__points { display: flex; justify-content: center; gap: 6px; margin-top: 8px; }
.pt-panier__points span { width: 7px; height: 7px; border-radius: 50%; background: rgba(0, 0, 0, .2); transition: background-color .2s; }
.pt-panier__points span.is-actif { background: #000; }

/* Produits simples (modèle « toutes les fiches ») : quantité « − 1 + » et bouton côte à côte, comme sur les produits en cartes */
body.pt-bouton .summary form.cart:not(.variations_form) { display: flex; flex-wrap: wrap; align-items: stretch; gap: 10px; }
body.pt-bouton .summary form.cart:not(.variations_form) > .quantity { float: none; margin: 0; display: flex; }
body.pt-bouton .summary form.cart:not(.variations_form) > .quantity input.qty { height: auto; min-height: 52px; }
body.pt-bouton .summary form.cart:not(.variations_form) > :not(.quantity):not(button):not(input) { flex-basis: 100%; } /* tout autre élément (ex. paiement express) sur sa propre ligne */

/* Panneau ouvert depuis l'icône du panier : titre « Votre panier » (sans la coche), chargement, panier vide → boutique */
.pt-panier__titre-panier { display: none; }
.pt-panier.is-mode-panier .pt-panier__titre-ajout,
.pt-panier.is-mode-panier .pt-panier__ok { display: none; }
.pt-panier.is-mode-panier .pt-panier__titre-panier { display: inline; }
.pt-panier.is-chargement .pt-panier-contenu { min-height: 120px; background: radial-gradient(circle, rgba(0, 0, 0, .55) 3px, transparent 4px) center / 24px 24px no-repeat; animation: pt-respire 1s ease-in-out infinite alternate; }
@keyframes pt-respire { from { opacity: .35; } to { opacity: 1; } }
.pt-panier a.pt-panier__boutique { display: flex; align-items: center; justify-content: center; min-height: 48px; margin: 0 auto; padding: 0 22px; border: 1.5px solid #000; border-radius: 6px; color: #000; font-weight: 700; text-decoration: none; }
.pt-panier a.pt-panier__boutique:hover { background: #000; color: #fff; }
/* L'icône du panier ouvre le panneau : le mini-panier déroulant du thème (au survol) n'apparaît plus */
body.pt-panier-icone .site-header-cart .widget_shopping_cart { display: none !important; }

/* Fiches sombres (le thème pose la classe « dark » sur main#main.product_content, fond noir, textes blancs) :
   mêmes éléments, couleurs inversées. Bouton blanc à texte noir (sauf couleur claire réglée dans l'écran, gardée telle quelle :
   variables --pto-bouton-*-sombre posées par includes/offres.php), quantité et réassurance sur fond sombre, traits clairs. */
main#main.product_content.dark { --pto-bouton-fond: var(--pto-bouton-fond-sombre, #fff); --pto-bouton-texte: var(--pto-bouton-texte-sombre, #000); }
body.pt-bouton main.dark .summary form.cart button.single_add_to_cart_button.button.alt:hover { background-color: color-mix(in srgb, var(--pto-bouton-fond) 86%, #000); border-color: color-mix(in srgb, var(--pto-bouton-fond) 86%, #000); }
main.dark p.stock.pt-stock { color: #fff; }
main.dark :is(form.pt-offres-actif, form.pt-qte-pret) .quantity:has(.pt-qte__btn) { border-color: rgba(255, 255, 255, .55); background: transparent; }
main.dark :is(form.pt-offres-actif, form.pt-qte-pret) .quantity button.pt-qte__btn,
main.dark :is(form.pt-offres-actif, form.pt-qte-pret) .quantity:has(.pt-qte__btn) input.qty { color: #fff; }
main.dark :is(form.pt-offres-actif, form.pt-qte-pret) .quantity button.pt-qte__btn:hover { background: rgba(255, 255, 255, .1); }
main.dark :is(form.pt-offres-actif, form.pt-qte-pret) .quantity button.pt-qte__btn:focus-visible { outline-color: #fff; }
main.dark :is(form.pt-offres-actif, form.pt-qte-pret) .quantity button.pt-qte__btn:disabled { color: rgba(255, 255, 255, .3); background: none; }
main.dark :is(form.pt-offres-actif, form.pt-qte-pret) .quantity:has(.pt-qte__btn):focus-within { box-shadow: 0 0 0 2px rgba(255, 255, 255, .25); }
main.dark ul.pt-rea { background: #161616; }
main.dark :is(.pt-rea__icone, .pt-rea__titre) { color: #fff; }
main.dark .pt-desc, main.dark .pt-faq__titre + .pt-desc.pt-faq__item { border-color: rgba(255, 255, 255, .2); }
main.dark .pt-desc.pt-faq__item .pt-desc__contenu { color: rgba(255, 255, 255, .78); }
main.dark .pt-offres { color: #fff; } /* titre des cartes en blanc ; cartes claires : texte foncé (couleur réglée) */
main.dark .pt-offres button.pt-offre { color: var(--pto-texte, #111); }
@media (max-width: 768px) {
  body.pt-ambiance-dessous main#main.product_content.dark > .top_product::after { background: linear-gradient(to bottom, rgba(1, 1, 1, 0), #010101 75%); }
}
