/* « Un petit plus ? » - rappel avant l'ouverture du panier (pre-cart-upsell.js). Couleurs du restaurant uniquement :
   fond et texte de fiche (--sheet-bg1 / --sheet-bg1-text), couleur principale (--ed-accent, --ed-accent-ink, --ed-on-accent).
   Telephone : bottom sheet compact (poignee, coins arrondis en haut). Des 768px : fenetre centree compacte. */
.pcu-scrim { position: fixed; inset: 0; z-index: 1100; display: flex; align-items: flex-end; justify-content: center; background: rgba(0, 0, 0, .44);
  opacity: 0; transition: opacity .2s ease; }
.pcu-scrim.is-open { opacity: 1; }
.pcu {
  --pcu-bg: var(--sheet-bg1, var(--ed-inner, #FFFDF8));
  --pcu-ink: var(--sheet-bg1-text, var(--ed-ink, #1A1A1A));
  --pcu-muted: color-mix(in srgb, var(--pcu-ink) 68%, var(--pcu-bg));
  --pcu-line: color-mix(in srgb, var(--pcu-ink) 10%, transparent);
  --pcu-tint: color-mix(in srgb, var(--pcu-ink) 6%, var(--pcu-bg));
  --pcu-accent: var(--ed-accent, var(--primary-color, #0EA5E9));
  --pcu-accent-ink: var(--ed-accent-ink, var(--pcu-accent));
  --pcu-on-accent: var(--ed-on-accent, #FFFFFF);
  position: relative; width: 100%; max-height: min(86dvh, 640px); overflow-y: auto; overscroll-behavior: contain; margin: 0;
  padding: 26px 20px calc(16px + env(safe-area-inset-bottom)); border-radius: 24px 24px 0 0; background: var(--pcu-bg); color: var(--pcu-ink);
  font-family: var(--ed-font, Inter, system-ui, sans-serif); box-shadow: 0 -16px 36px -26px rgba(0, 0, 0, .6);
  transform: translateY(24px); transition: transform .28s cubic-bezier(.2, .8, .2, 1);
}
.pcu-scrim.is-open .pcu { transform: none; }
.pcu-grip { position: absolute; top: 8px; left: 50%; width: 40px; height: 4px; margin-left: -20px; border-radius: 2px; background: color-mix(in srgb, var(--pcu-ink) 20%, transparent); }
.pcu-title { margin: 0; font-size: 1.28rem; line-height: 1.25; font-weight: 780; letter-spacing: -.01em; color: inherit; }
.pcu-sub { margin: 4px 0 0; font-size: .9rem; color: var(--pcu-muted); }
.pcu-list { list-style: none; margin: 16px 0 0; padding: 0; }
.pcu-item { position: relative; display: flex; align-items: center; gap: 12px; min-height: 76px; padding: 6px 0; }
.pcu-item + .pcu-item { box-shadow: inset 0 1px 0 var(--pcu-line); }
.pcu-thumb { flex: 0 0 64px; width: 64px; height: 64px; border-radius: 12px; overflow: hidden; background: var(--pcu-tint); }
.pcu-thumb img { display: block; width: 100%; height: 100%; object-fit: cover; }
.pcu-text { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.pcu-name { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; overflow: hidden; font-size: .98rem; line-height: 1.25; font-weight: 700; }
.pcu-meta { display: flex; align-items: center; gap: 10px; }
.pcu-num { unicode-bidi: isolate; white-space: nowrap; font-size: .98rem; font-weight: 800; color: color-mix(in srgb, var(--pcu-accent-ink) 70%, var(--pcu-ink)); font-variant-numeric: tabular-nums; }
/* retour d'ajout : espace reserve (visibility), aucun decalage ; annonce par la zone role=status */
.pcu-added { visibility: hidden; opacity: 0; font-size: .8rem; font-weight: 700; color: var(--pcu-accent-ink); transition: opacity .16s ease; }
.pcu-item.is-added .pcu-added { visibility: visible; opacity: 1; }
.pcu .pcu-add { flex: 0 0 44px; width: 44px; height: 44px; margin: 0; padding: 0; border: 0; border-radius: 50% !important; display: grid; place-items: center; background: none; cursor: pointer;
  -webkit-tap-highlight-color: transparent; }
.pcu-add span { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: var(--pcu-accent); color: var(--pcu-on-accent); transition: transform .12s ease; }
.pcu-add svg { width: 18px; height: 18px; }
.pcu-add:active span { transform: scale(.92); }
.pcu .pcu-choose { flex: 0 0 auto; min-height: 44px; margin: 0; padding: 0 16px; border: 0; border-radius: 12px !important; background: var(--pcu-tint); color: var(--pcu-accent-ink);
  font: 700 .9rem var(--ed-font, system-ui); cursor: pointer; }
.pcu-actions { display: grid; justify-items: center; gap: 6px; margin-top: 16px; }
.pcu .pcu-primary { width: 100%; min-height: 54px; margin: 0; padding: 0 18px; border: 0; border-radius: 16px !important; background: var(--pcu-accent); color: var(--pcu-on-accent);
  font: 750 1rem var(--ed-font, system-ui); cursor: pointer; }
/* « Non merci » : action secondaire sobre mais pleinement lisible (couleur du texte, zone de 44px), aucun motif trompeur */
.pcu .pcu-secondary { min-width: 160px; min-height: 44px; margin: 0; padding: 0 20px; border: 0; border-radius: 12px !important; background: transparent; color: var(--pcu-ink);
  font: 650 .98rem var(--ed-font, system-ui); text-decoration: underline; text-decoration-color: color-mix(in srgb, var(--pcu-ink) 35%, transparent); text-underline-offset: 3px; cursor: pointer; }
.pcu button:focus-visible { outline: 2px solid var(--pcu-accent-ink); outline-offset: 2px; }
.pcu-sr { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
@media (min-width: 768px) {
  .pcu-scrim { align-items: center; padding: 32px; }
  .pcu { width: min(440px, 100%); padding: 26px 24px 20px; border-radius: 20px; box-shadow: 0 30px 80px -30px rgba(0, 0, 0, .55); transform: translateY(10px) scale(.985); }
  .pcu-grip { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .pcu-scrim, .pcu, .pcu-added, .pcu-add span { transition: none !important; }
  .pcu { transform: none !important; }
}
