/* palette v3 (proto validé) */
.sqa-sheet{--sqa-ink:#141416;--sqa-mut:#75736C;--sqa-line:#E7E6E2;--sqa-blue:#5A8BFF;--sqa-blue-d:#2F4FBF;
--sqa-blue-t:#EDF2FF;--sqa-blue-b:#BDD0FF;--sqa-gold:#F5B841;--sqa-grey:#F5F5F3;--sqa-r:12px}

/* ── Bouton carte ── */
.spliff-qa-btn{display:block;width:100%;margin-top:10px;padding:10px 12px;border:1px solid #d8d8d4;background:#fff;
color:#141416;border-radius:4px;font:600 13px/1 inherit;cursor:pointer;transition:background .15s,border-color .15s,color .15s}
.spliff-qa-btn:hover{background:#5A8BFF;border-color:#5A8BFF;color:#fff}
.spliff-qa-btn[disabled]{opacity:.55;cursor:default}
/* ── Sliders du thème ──
   Les cartes n'ont pas la même hauteur de contenu ("29,90€" vs "À partir de
   8,90€/G", note sur 1 ou 2 lignes…). Sans ça le bouton suit le flux et se
   retrouve à une hauteur différente d'une carte à l'autre.
   Solution : slides étirées à la même hauteur, carte en colonne, bouton poussé
   en pied par `margin-top:auto` -> tous les boutons alignés sur une ligne.
   `:has()` limite la portée aux cartes qui portent VRAIMENT notre bouton : si
   le navigateur ne le supporte pas, la carte garde sa mise en page d'origine
   au lieu de récupérer un flex non désiré. */
.spliff-products-List .swiper-wrapper{align-items:stretch}
.spliff-products-List__item:has(.spliff-qa-btn){display:flex;flex-direction:column;height:auto}
.spliff-products-List__item .spliff-qa-btn{margin-top:auto;margin-bottom:0}
/* Le contenu ne doit pas s'étirer : c'est l'espace SOUS lui qui absorbe l'écart. */
.spliff-products-List__item:has(.spliff-qa-btn) > .spliff-products-List__content{margin-bottom:12px}

/* ── Overlay + panneau : sheet mobile / modale centrée desktop ── */
.sqa-ov{position:fixed;inset:0;z-index:99998;background:rgba(10,10,14,.5);opacity:0;transition:opacity .25s}
.sqa-ov.on{opacity:1}
.sqa-sheet{position:fixed;left:0;right:0;bottom:0;z-index:99999;background:#fff;border-radius:22px 22px 0 0;
box-shadow:0 -20px 50px -20px rgba(0,0,0,.5);display:flex;flex-direction:column;max-height:94vh;
font-family:inherit;color:var(--sqa-ink);transform:translateY(102%);transition:transform .3s cubic-bezier(.22,1,.36,1)}
.sqa-sheet.on{transform:translateY(0)}
@media (min-width:768px){
	.sqa-sheet{left:50%;right:auto;bottom:auto;top:50%;width:450px;max-height:92vh;border-radius:20px;
	box-shadow:0 40px 90px -30px rgba(0,0,0,.55);transform:translate(-50%,-44%);opacity:0;
	transition:transform .3s cubic-bezier(.22,1,.36,1),opacity .3s}
	.sqa-sheet.on{transform:translate(-50%,-50%);opacity:1}
	.sqa-grab{display:none}
}
.sqa-grab{width:38px;height:4px;border-radius:3px;background:#DDDCD6;margin:10px auto 0;flex:0 0 auto}

/* ── Header : titre accroche + croix, puis encart produit gris ── */
.sqa-hd{display:flex;align-items:flex-start;gap:10px;padding:12px 18px 0;flex:0 0 auto}
.sqa-hd h2{flex:1;margin:0;font-family:'Syne',inherit;font-size:19px;font-weight:800;line-height:1.2;color:var(--sqa-ink)}
.sqa-hd .x{width:32px;height:32px;border-radius:50%;border:0;background:#F0EFEB;color:#55534E;font-size:14px;
cursor:pointer;flex:0 0 auto;margin-top:2px;line-height:1}
.sqa-prod{display:flex;align-items:center;gap:12px;background:var(--sqa-grey);border-radius:14px;
margin:12px 18px 0;padding:12px 14px;flex:0 0 auto}
.sqa-prod .im{width:46px;height:46px;border-radius:10px;background:#fff;border:1px solid var(--sqa-line);flex:0 0 auto;
display:flex;align-items:center;justify-content:center;overflow:hidden;font-size:24px}
.sqa-prod .im img{width:100%;height:100%;object-fit:contain}
.sqa-prod .nm{flex:1;min-width:0}
.sqa-prod .nm b{display:block;font-family:'Syne',inherit;font-size:14.5px;font-weight:700;line-height:1.15;
white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sqa-prod .nm span{font-size:12px;font-weight:500;color:var(--sqa-mut)}
.sqa-body{flex:0 1 auto;overflow-y:auto;overscroll-behavior:contain;padding:2px 18px 4px}

/* ── Formats : sélection bleu clair, badge pilule noire à cheval ── */
.sqa-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px 9px;padding-top:14px}
.sqa-tile{position:relative;background:#fff;border:1.5px solid var(--sqa-line);border-radius:var(--sqa-r);
padding:12px 12px 11px;text-align:left;font:inherit;color:var(--sqa-ink);cursor:pointer;
display:flex;flex-direction:column;gap:4px;transition:border-color .12s,background .12s}
.sqa-tile .l{font-family:'Syne',inherit;font-weight:800;font-size:16px;line-height:1.1}
.sqa-tile .p{font-weight:800;font-size:14px;line-height:1.1;color:var(--sqa-blue-d);font-variant-numeric:tabular-nums}
.sqa-tile .g{font-size:11px;font-weight:500;color:var(--sqa-mut);font-variant-numeric:tabular-nums}
.sqa-tile .pct{position:absolute;top:-9px;right:10px;background:var(--sqa-ink);color:#fff;font-size:10px;font-weight:800;
padding:4px 7px;border-radius:999px;line-height:1}
.sqa-tile.sel{background:var(--sqa-blue-t);border-color:var(--sqa-blue);box-shadow:0 0 0 1px var(--sqa-blue) inset}
.sqa-tile.oos{opacity:.42;cursor:not-allowed}

/* ── Pack : cartes de quantité, badges à cheval (hauteur réservée) ── */
.sqa-qrow{display:grid;gap:9px;margin-top:14px}
.sqa-qcard{position:relative;background:#fff;border:1.5px solid var(--sqa-line);border-radius:var(--sqa-r);
padding:14px 8px 12px;text-align:center;cursor:pointer;font:inherit;color:var(--sqa-ink);
display:flex;flex-direction:column;align-items:center;gap:3px;transition:border-color .12s,background .12s}
.sqa-qcard .n{font-family:'Syne',inherit;font-weight:800;font-size:24px;line-height:1;font-variant-numeric:tabular-nums}
.sqa-qcard .del{font-size:11px;font-weight:500;color:var(--sqa-mut);text-decoration:line-through;min-height:13px;font-variant-numeric:tabular-nums}
.sqa-qcard .u{font-weight:800;font-size:15px;line-height:1;color:var(--sqa-blue-d);font-variant-numeric:tabular-nums}
.sqa-qcard .un{font-size:9.5px;font-weight:500;color:var(--sqa-mut)}
.sqa-qcard .eco{font-size:9.5px;font-weight:700;color:var(--sqa-blue-d);min-height:11px;font-variant-numeric:tabular-nums}
.sqa-qcard .top{position:absolute;top:-10px;left:50%;transform:translateX(-50%);white-space:nowrap;
font-size:9.5px;font-weight:800;padding:4px 8px;border-radius:999px;line-height:1;letter-spacing:.02em}
.sqa-qcard .top.pc{background:var(--sqa-ink);color:#fff}
.sqa-qcard .top.best{background:var(--sqa-blue);color:#fff}
.sqa-qcard .top.gift{background:var(--sqa-gold);color:#3A2B00}
.sqa-qcard.sel{background:var(--sqa-blue-t);border-color:var(--sqa-blue);box-shadow:0 0 0 1px var(--sqa-blue) inset}
/* ── Achat à l'unité : ligne dédiée hors packs ── */
.sqa-unitline{display:block;width:100%;margin-top:10px;padding:11px 14px;background:#fff;
border:1.5px dashed var(--sqa-line);border-radius:999px;font:700 12.5px/1.2 inherit;color:var(--sqa-mut);
cursor:pointer;text-align:center;transition:border-color .12s,background .12s,color .12s}
.sqa-unitline.sel{background:var(--sqa-blue-t);border:1.5px solid var(--sqa-blue);color:var(--sqa-blue-d);
box-shadow:0 0 0 1px var(--sqa-blue) inset}
.sqa-unitline[disabled]{opacity:.6;cursor:default}

/* ── Composer : helper + barre de progression + pilules goût ── */
.sqa-helper{display:flex;align-items:center;gap:8px;margin:20px 0 9px;font-size:13px;font-weight:800;color:var(--sqa-ink)}
.sqa-helper .cnt{background:var(--sqa-ink);color:#fff;font-size:11px;font-weight:800;padding:4px 8px;border-radius:999px;font-variant-numeric:tabular-nums}
.sqa-helper.done{color:var(--sqa-blue-d)}
.sqa-helper.done .cnt{background:var(--sqa-blue)}
.sqa-helper .bar{flex:1;height:5px;border-radius:3px;background:#E9E8E3;overflow:hidden}
.sqa-helper .bar i{display:block;height:100%;background:var(--sqa-blue);border-radius:3px;transition:width .25s;width:0}
.sqa-flavors{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.sqa-fpill{background:#fff;border:1.5px solid var(--sqa-line);border-radius:999px;min-height:44px;padding:0 6px 0 14px;
cursor:pointer;font-size:13px;font-weight:700;color:var(--sqa-ink);display:flex;align-items:center;gap:8px;
transition:border-color .12s,background .12s}
.sqa-fpill .nm{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left}
.sqa-fpill .oostag{font-size:10px;font-weight:500;color:var(--sqa-mut)}
.sqa-fpill .ct{display:none;align-items:center;background:#fff;border:1px solid var(--sqa-blue-b);border-radius:999px;overflow:hidden;flex:0 0 auto}
.sqa-fpill .ct b{min-width:22px;text-align:center;font-size:13px;font-weight:800;color:var(--sqa-blue-d);font-variant-numeric:tabular-nums}
.sqa-fpill .ct button{width:26px;height:26px;border:0;background:none;color:var(--sqa-blue-d);font-size:15px;line-height:1;cursor:pointer}
.sqa-fpill.oos{opacity:.4;cursor:not-allowed}
.sqa-fpill.has{background:var(--sqa-blue-t);border-color:var(--sqa-blue);box-shadow:0 0 0 1px var(--sqa-blue) inset}
.sqa-fpill.has .ct{display:flex}

/* ── Footer : nudge + CTA ── */
.sqa-foot{flex:0 0 auto;padding:12px 18px calc(16px + env(safe-area-inset-bottom))}
.sqa-nudge{display:flex;align-items:center;justify-content:center;gap:7px;margin-bottom:10px;padding:9px 12px;
border-radius:10px;font-size:12px;font-weight:700;text-align:center}
.sqa-nudge.up{background:#fff;border:1.5px dashed #C9D7FE;color:var(--sqa-blue-d)}
.sqa-nudge.ok{background:var(--sqa-blue-t);color:var(--sqa-blue-d)}
.sqa-nudge.gift{background:linear-gradient(90deg,#FFF6E3,#FFEFC9);color:#7A5600}
.sqa-nudge:empty{display:none}
.sqa-cta{width:100%;min-height:56px;padding:9px 20px;border:0;border-radius:14px;background:var(--sqa-blue);color:#fff;cursor:pointer;
font-family:'Syne',inherit;font-size:15px;font-weight:800;line-height:1.2;letter-spacing:.01em;
display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
position:relative;overflow:hidden;transition:background-color .2s,transform .1s}
.sqa-cta:not(:disabled):hover{background:#4a78ea}
.sqa-cta:not(:disabled):active{transform:scale(.985)}
.sqa-cta:disabled{background:#CFCEC8;cursor:default}
.sqa-cta .l1{display:flex;align-items:center;gap:9px;flex-wrap:wrap;justify-content:center}
.sqa-cta .l1 .pr{font-variant-numeric:tabular-nums}
.sqa-cta .l1 .sep{opacity:.55;font-weight:400}
/* prix barré vert clair, comme le CTA des fiches produit */
.sqa-cta .l1 .old{font-weight:700;font-size:12.5px;color:#39ff14;text-decoration:line-through;font-variant-numeric:tabular-nums}
.sqa-cta .l1 .sep{opacity:.6;font-weight:400}
.sqa-cta .sub{font-family:inherit;font-size:10.5px;font-weight:600;opacity:.92}
.sqa-cta:disabled .sub,.sqa-cta:disabled::after{display:none}
/* balayage lumineux */
.sqa-cta::after{content:"";position:absolute;top:0;bottom:0;left:-80%;width:55%;pointer-events:none;
background:linear-gradient(105deg,transparent 20%,rgba(255,255,255,.35) 50%,transparent 80%);
transform:skewX(-18deg);animation:spliffAtcSweep 3s ease-in-out infinite}
@keyframes spliffAtcSweep{0%{left:-80%}55%,100%{left:130%}}
/* halo néon */
@keyframes cgp2neonQA{0%,100%{box-shadow:0 0 6px rgba(90,139,255,.3)}50%{box-shadow:0 0 18px rgba(90,139,255,.55)}}
.sqa-cta:not(:disabled){animation:cgp2neonQA 2s ease-in-out infinite}
.sqa-err{min-height:1em;padding:8px 4px 0;color:#b23a3a;font-size:12.5px;text-align:center}
/* ── Neutralise les hovers bouton du thème (Astra) dans la pop-up ── */
.sqa-tile:hover,.sqa-tile:focus{background:#fff!important;border-color:var(--sqa-line)!important;color:var(--sqa-ink)!important}
.sqa-tile.sel:hover,.sqa-tile.sel:focus{background:var(--sqa-blue-t)!important;border-color:var(--sqa-blue)!important}
.sqa-qcard:hover,.sqa-qcard:focus{background:#fff!important;border-color:var(--sqa-line)!important;color:var(--sqa-ink)!important}
.sqa-qcard.sel:hover,.sqa-qcard.sel:focus{background:var(--sqa-blue-t)!important;border-color:var(--sqa-blue)!important}
.sqa-unitline:hover,.sqa-unitline:focus{background:#fff!important;border-color:var(--sqa-line)!important;color:var(--sqa-mut)!important}
.sqa-unitline.sel:hover,.sqa-unitline.sel:focus{background:var(--sqa-blue-t)!important;border-color:var(--sqa-blue)!important;color:var(--sqa-blue-d)!important}
.sqa-fpill .ct button:hover,.sqa-fpill .ct button:focus{background:none!important;color:var(--sqa-blue-d)!important}
.sqa-hd .x:hover,.sqa-hd .x:focus{background:#F0EFEB!important;color:#55534E!important}
.sqa-cta:not(:disabled):hover{background:#4a78ea!important;color:#fff!important}
@media (prefers-reduced-motion:reduce){
  .sqa-cta,.sqa-cta::after,.sqa-ov,.sqa-sheet{animation:none!important;transition:none!important}
}
