/* INKantation Fidélité. Noir et orange, les couleurs de la boutique (ou vert, bronze et crème selon
 * le réglage) : les couleurs arrivent par les variables --ink-pts-*, posées par le module.
 * La pièce qui marque : la ligne d'encre, du solde au prochain bon. Le reste reste sobre.
 * (Les noms --pts-noir, --pts-orange, --pts-craie désignent le foncé, l'accent et le clair.) */
.ink-pts-pastille,.ink-pts-panier,.ink-pts-compte,.ink-pts-solde-mini,.ink-pts-accueil-compte,.ink-pts-fiche{--pts-noir:var(--ink-pts-fonce,#111114);--pts-craie:var(--ink-pts-clair,#f4f1ec);--pts-orange:var(--ink-pts-accent,#ff5900);--pts-sur-accent:var(--ink-pts-sur-accent,#111114);--pts-gris:#6b6864;--pts-trait:rgba(17,17,20,.14)}

/* La goutte d'encre : le signe des points. */
.ink-pts-goutte{display:inline-block;flex:none;width:.62em;height:.62em;margin-right:.45em;border-radius:50% 50% 50% 0;background:var(--pts-orange);transform:rotate(-45deg) translateY(-.06em)}

/* Ce que rapporte un article. */
.ink-pts-fiche{margin:.4em 0 1em;font-size:.92em}
/* Collée au prix (constructeurs de pages) : elle ne prend ni la taille ni la couleur du prix. */
.ink-pts-fiche.est-dans-prix{display:block;margin:.55em 0 .2em;color:var(--pts-noir);font-size:15px;font-weight:400;line-height:1.4;letter-spacing:normal;text-transform:none}
.ink-pts-fiche a{color:var(--pts-gris,#6b6864);font-size:.92em}
.ink-pts-pastille{display:inline-flex;align-items:center;padding:.28em .7em;border:1px solid var(--pts-noir);border-radius:999px;background:var(--pts-craie);color:var(--pts-noir);font-weight:600;line-height:1.3;white-space:nowrap}
.ink-pts-pastille[data-ink-lien]{position:relative;z-index:5;cursor:pointer;pointer-events:auto;transition:border-color .15s,background-color .15s}
/* Au-dessus des calques que certains thèmes posent sur la vignette du produit. */
.ink-pts-liste{position:relative;z-index:5}
.ink-pts-pastille[data-ink-lien]:hover{border-color:var(--pts-orange);background:#fff}
.ink-pts-pastille[data-ink-lien]:focus-visible{outline:2px solid var(--pts-orange);outline-offset:2px}
.ink-pts-liste{margin:.25em 0;text-align:inherit}
.ink-pts-pastille.est-petite{margin:.3em 0;padding:.12em .55em;border-color:var(--pts-trait);font-size:.8em;font-weight:500}

/* La ligne d'encre : ce que le client a (plein), ce que la commande ajoute (orange), le reste en pointillé, comme un tracé au stencil. */
.ink-pts-ligne{position:relative;display:flex;height:6px;margin:10px 0 8px;border-radius:3px;background:repeating-linear-gradient(90deg,rgba(17,17,20,.2) 0 7px,transparent 7px 11px)}
.ink-pts-ligne>span{display:block;height:100%;animation:ink-pts-trace .9s cubic-bezier(.2,.7,.2,1) both}
.ink-pts-ligne-acquis{background:var(--pts-noir,#111114);border-radius:3px 0 0 3px}
.ink-pts-ligne-gain{position:relative;background:var(--pts-orange,#ff5900);animation-delay:.25s!important}
/* La pointe de l'aiguille, au bout du tracé. */
.ink-pts-ligne-gain:not([style*="width:0%"]):not([style*="width: 0%"])::after{content:"";position:absolute;right:-5px;top:50%;width:10px;height:10px;margin-top:-5px;border-radius:50%;background:var(--pts-orange,#ff5900);box-shadow:0 0 0 3px color-mix(in srgb,var(--pts-orange) 30%,transparent)}
.ink-pts-ligne.est-sombre{background:repeating-linear-gradient(90deg,rgba(244,241,236,.28) 0 7px,transparent 7px 11px)}
.ink-pts-ligne.est-sombre .ink-pts-ligne-acquis{background:var(--pts-orange,#ff5900);position:relative}
.ink-pts-ligne.est-sombre .ink-pts-ligne-acquis:not([style*="width:0%"]):not([style*="width: 0%"])::after{content:"";position:absolute;right:-5px;top:50%;width:10px;height:10px;margin-top:-5px;border-radius:50%;background:var(--pts-orange,#ff5900);box-shadow:0 0 0 3px color-mix(in srgb,var(--pts-orange) 30%,transparent)}
@keyframes ink-pts-trace{from{width:0}}

/* Au panier, au paiement, après la commande. */
.ink-pts-panier{margin:0 0 18px;padding:14px 16px;border:1px solid var(--pts-trait);border-left:4px solid var(--pts-orange);border-radius:6px;background:#fff;color:var(--pts-noir);font-size:15px;line-height:1.45}
.ink-pts-panier p{margin:0}
.ink-pts-panier-titre strong{font-size:1.15em;color:var(--pts-noir)}
.ink-pts-panier-texte{color:var(--pts-gris);font-size:.93em}
.ink-pts-panier-texte a{color:var(--pts-noir);font-weight:600}
.ink-pts-panier.est-invite{border-left-color:var(--pts-noir)}
.ink-pts-action{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:12px 0 0!important;padding-top:12px;border-top:1px dashed var(--pts-trait)}
.ink-pts-action span{flex:1 1 220px;font-size:.93em}

/* Les boutons : thèmes et constructeurs de pages les restylent souvent, d'où les !important. */
.ink-pts-panier .ink-pts-bouton,.ink-pts-compte .ink-pts-bouton,.ink-pts-compte .ink-pts-copier{display:inline-flex!important;align-items:center;width:auto!important;min-height:0!important;margin:0!important;padding:9px 16px!important;border:0!important;border-radius:6px!important;background:var(--pts-noir)!important;color:var(--pts-craie)!important;font:inherit!important;font-size:14px!important;font-weight:700!important;line-height:1.25!important;letter-spacing:normal!important;text-transform:none!important;text-decoration:none!important;box-shadow:none!important;cursor:pointer}
.ink-pts-panier .ink-pts-bouton.est-fort,.ink-pts-compte .ink-pts-bouton.est-fort{background:var(--pts-orange)!important;color:var(--pts-sur-accent)!important}
.ink-pts-panier .ink-pts-bouton:hover,.ink-pts-compte .ink-pts-bouton:hover{background:var(--pts-orange)!important;color:var(--pts-sur-accent)!important}
.ink-pts-panier .ink-pts-bouton.est-fort:hover,.ink-pts-compte .ink-pts-bouton.est-fort:hover{background:var(--pts-craie)!important}
.ink-pts-bouton:focus-visible,.ink-pts-copier:focus-visible{outline:3px solid var(--pts-orange,#ff5900)!important;outline-offset:2px}

/* La page du compte. */
.ink-pts-compte{color:var(--pts-noir)}
.ink-pts-carte{margin:0 0 28px;padding:22px 22px 20px;border-radius:12px;background:var(--pts-noir);color:var(--pts-craie)}
.ink-pts-carte-haut{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:8px 20px}
.ink-pts-carte p{margin:0}
.ink-pts-solde{font-size:clamp(44px,9vw,64px);font-weight:800;line-height:.95;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.ink-pts-solde-nom{margin-top:4px!important;color:var(--pts-orange);font-weight:700;letter-spacing:.01em}
.ink-pts-regle{color:rgba(244,241,236,.68);font-size:14px;text-align:right}
.ink-pts-carte .ink-pts-ligne{margin:18px 0 12px}
.ink-pts-carte-texte{color:rgba(244,241,236,.85);font-size:15px}
.ink-pts-carte-action{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px}
.ink-pts-carte-action p{font-size:15px}
.ink-pts-carte .ink-pts-bouton:hover{background:var(--pts-craie)!important;color:var(--pts-noir)!important}
.ink-pts-section{margin:0 0 28px}
.ink-pts-section h3{margin:0 0 10px;font-size:1.1em}
.ink-pts-bons{margin:0;padding:0;list-style:none;border-top:1px solid var(--pts-trait)}
.ink-pts-bons li{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;padding:10px 0;border-bottom:1px solid var(--pts-trait)}
.ink-pts-bons li.est-passe{color:var(--pts-gris)}
.ink-pts-bons li.est-passe .ink-pts-code{text-decoration:line-through;background:transparent}
.ink-pts-bon-valeur{min-width:3.5em;font-weight:800;font-size:1.1em}
.ink-pts-code{padding:3px 8px;border:1px dashed var(--pts-noir);border-radius:4px;background:var(--pts-craie);font-size:15px;letter-spacing:.06em}
.ink-pts-bon-etat{flex:1 1 140px;color:var(--pts-gris);font-size:.9em}
.ink-pts-compte .ink-pts-copier{padding:6px 12px!important;font-size:13px!important;background:transparent!important;color:var(--pts-noir)!important;border:1px solid var(--pts-noir)!important}
.ink-pts-compte .ink-pts-copier.est-fait{border-color:#0a6b2d!important;color:#0a6b2d!important}
.ink-pts-note{color:var(--pts-gris);font-size:.9em}
.ink-pts-gagner{margin:0}
.ink-pts-gagner div{display:flex;flex-wrap:wrap;justify-content:space-between;gap:2px 16px;padding:9px 0;border-bottom:1px solid var(--pts-trait)}
.ink-pts-gagner dt{font-weight:600}
.ink-pts-gagner dd{margin:0;color:var(--pts-gris)}
.ink-pts-anniv{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin-top:12px}
.ink-pts-anniv label{font-weight:600}
.ink-pts-anniv-champs{display:inline-flex;gap:6px}
.ink-pts-anniv-champs select{width:auto;min-width:0}
.ink-pts-histo{width:100%;border-collapse:collapse;font-size:.93em}
.ink-pts-histo td{padding:8px 6px 8px 0;border-bottom:1px solid var(--pts-trait);vertical-align:top}
.ink-pts-histo small{color:var(--pts-gris)}
.ink-pts-histo-date{width:6.5em;color:var(--pts-gris);white-space:nowrap}
.ink-pts-histo-pts{width:5em;text-align:right;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
.ink-pts-histo-pts.est-moins{color:var(--pts-gris)}
.ink-pts-accueil-compte{padding:12px 14px;border-left:4px solid var(--pts-orange);background:var(--pts-craie);color:var(--pts-noir)}
.ink-pts-accueil-compte a{margin-left:4px;color:var(--pts-noir);font-weight:600}
.ink-pts-solde-mini{display:inline-flex;align-items:center;padding:.25em .7em;border-radius:999px;background:var(--pts-noir);color:var(--pts-craie)!important;font-weight:700;font-size:.9em;text-decoration:none!important;white-space:nowrap}
@media (max-width:480px){
	.ink-pts-carte{padding:18px 16px}
	.ink-pts-regle{text-align:left}
	.ink-pts-carte-action .ink-pts-bouton,.ink-pts-action .ink-pts-bouton{width:100%!important;justify-content:center}
}
@media (prefers-reduced-motion:reduce){.ink-pts-ligne>span{animation:none}}

/* Le compteur sous la ligne, sur la carte : « 120 / 500 ». */
.ink-pts-compteur{margin:-4px 0 10px!important;color:rgba(244,241,236,.7);font-size:13px;font-variant-numeric:tabular-nums;text-align:right}
/* Les codes promo du compte : la valeur, le code et sa date, puis les boutons. Une grille, pour
 * que rien ne bouge quel que soit le thème. */
.ink-pts-compte .ink-pts-bons li{display:grid;grid-template-columns:4.4em minmax(0,1fr) auto;align-items:center;gap:8px 14px}
.ink-pts-bon-infos{display:flex;flex-direction:column;align-items:flex-start;gap:3px;min-width:0}
.ink-pts-bon-infos .ink-pts-bon-etat{flex:none}
.ink-pts-bon-actions{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}
.ink-pts-bons li.est-bientot .ink-pts-bon-etat{color:#b3261e;font-weight:600}
.ink-pts-vide{margin:0 0 6px;padding:14px 16px;border:1px dashed var(--pts-trait);border-radius:8px;color:var(--pts-gris)}
.ink-pts-passes{margin-top:10px}
.ink-pts-passes summary{cursor:pointer;color:var(--pts-gris);font-size:.93em}
.ink-pts-passes .ink-pts-bons{margin-top:6px}
@media (max-width:480px){
	.ink-pts-compte .ink-pts-bons li{grid-template-columns:4.4em minmax(0,1fr)}
	.ink-pts-bon-actions{grid-column:1 / -1;justify-content:stretch}
	.ink-pts-bon-actions>*{flex:1 1 auto;justify-content:center}
}

/* Le délai pour activer le bon, sur la carte du compte. */
.ink-pts-carte .ink-pts-carte-delai{order:3;flex:1 1 100%;color:rgba(244,241,236,.72);font-size:13px;line-height:1.45}

/* La page « Activer mon bon » (le bouton de l'e-mail). */
.ink-pts-activer-page{box-sizing:border-box;padding:36px 16px 56px}
.ink-pts-activer{--pts-noir:var(--ink-pts-fonce,#111114);--pts-orange:var(--ink-pts-accent,#ff5900);--pts-sur-accent:var(--ink-pts-sur-accent,#111114);box-sizing:border-box;max-width:520px;margin:0 auto;padding:34px 24px 28px;border-radius:16px;background:var(--pts-noir);color:#fff;font-size:16px;line-height:1.5;text-align:center}
.ink-pts-activer p{margin:0}
.ink-pts-activer .ink-pts-activer-sur{margin:0 0 6px;color:var(--pts-orange);font-size:12px;font-weight:700;letter-spacing:2px;text-transform:uppercase}
.ink-pts-activer .ink-pts-activer-montant{color:var(--pts-orange);font-size:64px;font-weight:800;line-height:1.05}
.ink-pts-activer .ink-pts-activer-titre{margin:12px 0 8px;padding:0;border:0;color:#fff;font-size:24px;font-weight:700;line-height:1.25;letter-spacing:normal;text-transform:none}
.ink-pts-activer .ink-pts-activer-texte{margin:0 0 22px;color:#e9e5de}
.ink-pts-activer .ink-pts-activer-code{color:var(--pts-orange);letter-spacing:1px}
.ink-pts-activer-form{margin:0 0 18px}
.ink-pts-activer .ink-pts-bouton{display:inline-block!important;width:auto!important;margin:0!important;padding:14px 28px!important;border:0!important;border-radius:8px!important;background:var(--pts-orange)!important;color:var(--pts-sur-accent)!important;font:inherit!important;font-size:16px!important;font-weight:700!important;line-height:1.2!important;text-decoration:none!important;text-transform:none!important;box-shadow:none!important;cursor:pointer}
.ink-pts-activer .ink-pts-bouton:hover{background:#fff!important;color:var(--pts-noir)!important}
.ink-pts-activer .ink-pts-activer-note{color:#bdb8b0;font-size:13px;line-height:1.5}
.ink-pts-activer .ink-pts-activer-lien{color:var(--pts-orange);font-weight:600}
@media (max-width:480px){.ink-pts-activer{padding:28px 18px 24px}.ink-pts-activer .ink-pts-activer-montant{font-size:54px}.ink-pts-activer .ink-pts-bouton{width:100%!important}}

/* Comment ça marche : quatre étapes reliées par un trait, puis « bon à savoir ». */
.ink-pts-etapes{margin:0 0 16px;padding:0;list-style:none;counter-reset:ink-pts}
.ink-pts-etapes li{position:relative;margin:0;padding:0 0 18px 46px;counter-increment:ink-pts}
.ink-pts-etapes li::before{content:counter(ink-pts);position:absolute;top:0;left:0;display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:var(--pts-noir);color:var(--pts-craie);font-weight:700;line-height:1}
.ink-pts-etapes li:not(:last-child)::after{content:"";position:absolute;top:34px;bottom:4px;left:14px;border-left:2px dashed var(--pts-trait)}
.ink-pts-etapes li:last-child{padding-bottom:4px}
.ink-pts-etapes strong{display:block;margin:4px 0 3px;color:var(--pts-noir)}
.ink-pts-etapes p{margin:0;color:var(--pts-gris);line-height:1.5}
.ink-pts-savoir{padding:14px 16px;border-radius:10px;background:var(--pts-craie);color:var(--pts-gris);font-size:.92em;line-height:1.5}
.ink-pts-savoir p{margin:0 0 6px}
.ink-pts-savoir strong{color:var(--pts-noir)}
.ink-pts-savoir ul{margin:0;padding-left:1.2em}
.ink-pts-savoir li{margin:2px 0}
.ink-pts-savoir a{color:var(--pts-noir);text-decoration:underline}

/* La page publique du programme. */
.ink-pts-programme{max-width:760px;margin:0 auto}
.ink-pts-programme-sur{color:rgba(244,241,236,.68);font-size:13px;letter-spacing:.06em;text-transform:uppercase}
.ink-pts-programme-nom{margin:4px 0 8px!important;color:var(--pts-orange);font-size:clamp(32px,7vw,48px);font-weight:800;line-height:1;letter-spacing:-.02em}
.ink-pts-programme-regle{margin:0 0 18px!important;color:var(--pts-craie);font-size:17px;line-height:1.45}
.ink-pts-programme .ink-pts-carte-action{padding-top:16px;border-top:1px dashed rgba(244,241,236,.25)}
.ink-pts-programme-lien{margin-top:12px!important;color:rgba(244,241,236,.75);font-size:14px}
.ink-pts-programme-lien a{color:var(--pts-craie);text-decoration:underline}
.ink-pts-programme a.ink-pts-bouton{text-decoration:none!important}
.ink-pts-programme .ink-pts-comment h2{margin:0 0 16px;font-size:1.4em}
