/* « On garde votre sélection ? » — habillage du modale.

   Reprend la palette de la boutique. Rien n'est visible tant que le script
   n'ajoute pas la classe « on » : le balisage est présent mais inerte. */
/* Le thème habille tous les <button> du site — « padding: 20px 35px »,
   largeur minimale, majuscules. Sur nos petits boutons carrés cela ne
   laissait aucune place au contenu : l'icône se retrouvait à 0 px de large.
   Neutralisé ici sans poids (:where) pour que nos propres règles priment. */
:where(.lppg,.lppg-ret) button{padding:0;margin:0;width:auto;height:auto;
  min-width:0;min-height:0;box-shadow:none;text-transform:none;letter-spacing:normal;
  font:inherit;line-height:1.2}
:where(.lppg,.lppg-ret) button svg{flex:none}

.lppg-fond{position:fixed;inset:0;z-index:99990;display:flex;align-items:center;justify-content:center;
  padding:18px;background:rgba(15,24,27,.55);backdrop-filter:blur(3px);
  opacity:0;pointer-events:none;transition:opacity .22s}
.lppg-fond.on{opacity:1;pointer-events:auto}
.lppg{background:#fff;border-radius:14px;box-shadow:0 1px 2px rgba(15,24,27,.06),0 16px 44px rgba(15,24,27,.18);
  width:100%;max-width:460px;position:relative;max-height:92vh;overflow:auto;
  font:15px/1.55 "IBM Plex Sans",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:#0F181B;
  transform:translateY(12px) scale(.985);transition:transform .22s}
.lppg-fond.on .lppg{transform:none}
@media(max-width:560px){
  .lppg-fond{padding:0;align-items:flex-end}
  .lppg{max-width:none;border-radius:14px 14px 0 0}
}
.lppg-x{position:absolute;top:10px;right:10px;z-index:2;width:30px;height:30px;border-radius:8px;
  border:1px solid #DCE5E7;background:#fff;color:#6C7F85;font-size:18px;line-height:1;cursor:pointer}
.lppg-x:hover{color:#0F181B;border-color:#0A7C91}
.lppg-in{padding:24px 24px 20px}
.lppg h2{margin:0;font-size:19px;line-height:1.25;font-weight:600;letter-spacing:-.012em;max-width:23ch}
.lppg-int{margin:7px 0 0;color:#6C7F85;font-size:13.5px}
.lppg-why{display:flex;gap:9px;align-items:flex-start;background:#E4F4F8;border-radius:9px;
  padding:10px 12px;margin-top:13px;font-size:12.5px;line-height:1.45;color:#3B4E54}
.lppg-why svg{flex:none;width:15px;height:15px;color:#0A7C91;margin-top:2px}
.lppg-recap{background:#F4F7F8;border:1px solid #DCE5E7;border-radius:9px;padding:11px 13px;margin-top:13px}
.lppg-recap ul{list-style:none;margin:0 0 9px;padding:0;display:grid;gap:4px}
.lppg-recap li{display:flex;gap:8px;font-size:12px;line-height:1.4;color:#3B4E54}
.lppg-recap li em{font-style:normal;color:#6C7F85;font-family:"IBM Plex Mono",monospace;font-size:10.5px;flex:none}
.lppg-tot{display:flex;justify-content:space-between;align-items:baseline;gap:10px;
  border-top:1px solid #DCE5E7;padding-top:8px}
.lppg-tot span{font-size:12px;color:#6C7F85}
.lppg-tot b{font:600 17px/1 "IBM Plex Mono",monospace;white-space:nowrap;text-align:right}
.lppg-tot b i,.lppg-tot b .woocommerce-Price-amount{font-style:normal}
.lppg-tot b i{display:block;font-size:10.5px;font-weight:400;color:#6C7F85;margin-top:3px}
.lppg-champ{margin-top:13px}
.lppg-champ>label{display:block;font-size:12.5px;font-weight:500;margin-bottom:5px}
.lppg-req{color:#B3261E;margin-left:2px}
.lppg-opt{color:#6C7F85;font-weight:400;margin-left:4px;font-size:11.5px}
.lppg-saisie{display:flex;border:1px solid #DCE5E7;border-radius:8px;background:#fff;overflow:hidden;
  transition:border-color .15s,box-shadow .15s}
.lppg-saisie:focus-within{border-color:#0A7C91;box-shadow:0 0 0 3px rgba(10,124,145,.13)}
.lppg-saisie input{flex:1;min-width:0;border:0;outline:0;padding:10px 12px;font:inherit;font-size:14px;
  background:transparent;color:inherit}
.lppg-champ.ko .lppg-saisie{border-color:#B3261E}
.lppg-champ.ok .lppg-saisie{border-color:#0E7C55}
.lppg-aide{display:flex;gap:6px;align-items:flex-start;font-size:11.5px;margin-top:5px;color:#6C7F85;
  min-height:16px;line-height:1.4}
.lppg-champ.ko .lppg-aide{color:#B3261E}
.lppg-champ.ok .lppg-aide{color:#0E7C55}
.lppg-sp{width:11px;height:11px;border:2px solid #DCE5E7;border-top-color:#0A7C91;border-radius:50%;
  animation:lppgTr .7s linear infinite;flex:none;margin-top:2px}
@keyframes lppgTr{to{transform:rotate(360deg)}}
.lppg-ent{display:none;margin-top:9px;padding:10px 12px;background:#E2F3EC;border:1px solid #bfe0d2;
  border-radius:9px;font-size:12px;line-height:1.45}
.lppg-ent.on{display:block}
.lppg-ent b{display:block;font-weight:600}
.lppg-ent span{display:block;color:#6C7F85;margin-top:2px}
.lppg-envoi{margin-top:16px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.lppg-b{flex:1;min-width:180px;border:0;border-radius:8px;padding:12px 18px;background:#0A7C91;color:#fff;
  font:600 14px/1.2 inherit;cursor:pointer}
.lppg-b:hover:not(:disabled){background:#065c6c}
.lppg-b:disabled{opacity:.5;cursor:not-allowed}
.lppg-g{border:0;background:transparent;color:#6C7F85;font:600 14px/1.2 inherit;cursor:pointer;padding:12px 4px}
.lppg-g:hover{color:#0F181B;text-decoration:underline}
.lppg-rgpd{font-size:11px;color:#6C7F85;margin:11px 0 0;line-height:1.45}
.lppg-merci{display:none;padding:34px 26px;text-align:center}
.lppg-merci h2{margin:0 0 8px;font-size:18px}
.lppg-merci p{margin:0 auto;color:#6C7F85;font-size:13.5px;max-width:42ch}
.lppg-ic{width:48px;height:48px;border-radius:50%;background:#E2F3EC;color:#0E7C55;
  display:flex;align-items:center;justify-content:center;margin:0 auto 14px}
.lppg-ic svg{width:23px;height:23px}

/* Téléphone : l'indicatif se choisit dans la même boîte que le numéro. */
.lppg-tel select{border:0;outline:0;background:#F4F7F8;border-right:1px solid #DCE5E7;
  padding:10px 6px 10px 10px;font:inherit;font-size:13.5px;cursor:pointer;max-width:112px;color:inherit}

/* Calcul anti-robot : la réponse attendue reste sur le serveur, l'énoncé seul
   est affiché, et il est renouvelé après chaque envoi — réussi ou raté. */
.lppg-cal .lppg-cal-r{display:flex;gap:8px;align-items:stretch}
.lppg-q{display:flex;align-items:center;font:600 17px/1 "IBM Plex Mono",ui-monospace,monospace;
  background:#F4F7F8;border:1px solid #DCE5E7;border-radius:8px;padding:0 14px;color:#0F181B;
  letter-spacing:.07em;white-space:nowrap;user-select:none;-webkit-user-select:none}
.lppg-cal .lppg-saisie{flex:1;min-width:80px}
.lppg-cal input{text-align:center;font-family:"IBM Plex Mono",ui-monospace,monospace;
  font-weight:600;font-size:16px}
.lppg-cal input::placeholder{font-family:"IBM Plex Sans",system-ui,sans-serif;
  font-weight:400;font-size:13px;color:#8B9BA1;opacity:1}
.lppg-rf{flex:none;display:flex;align-items:center;justify-content:center;gap:6px;
  padding:0 12px;border:1px solid #DCE5E7;background:#fff;border-radius:8px;cursor:pointer;
  color:#3B4E54;font-size:12px;white-space:nowrap;transition:color .15s,border-color .15s,background .15s}
.lppg-rf:hover{color:#0A7C91;border-color:#0A7C91;background:#F4FAFB}
.lppg-rf svg{width:15px;height:15px;flex:none}
/* Le libellé n'apparaît que sur la page dédiée : le modale est trop étroit. */
.lppg-rf b{display:none;font-weight:500}
.lppg-ret .lppg-rf b{display:inline}
@media(max-width:430px){.lppg-ret .lppg-rf b{display:none}}
.lppg-champ.ko .lppg-q{border-color:#B3261E}

/* Page « Retrouver mon panier » : les mêmes champs, hors du modale. */
.lppg-ret{max-width:420px;font:15px/1.55 "IBM Plex Sans",system-ui,-apple-system,sans-serif;color:#0F181B}
.lppg-ret .lppg-envoi{margin-top:18px}
.lppg-ret-ok{background:#E2F3EC;border-left:3px solid #0E7C55;border-radius:0 6px 6px 0;
  padding:13px 15px;font-size:14px;line-height:1.55;color:#3B4E54;margin:0}
