/* Políticas antes de pagar (config.politicas_checkout). Colores de cada tienda; la ventana "Ver todas" usa los estilos de pie-legal.css.
   Los puntos entran uno por uno (28 ms de aire entre uno y otro, 280 ms cada uno, ease-out); el check se dibuja; al marcar, los botones "se despiertan". */
.pc { margin: 14px 0 6px; padding: 14px 14px 12px; border-radius: 18px; border: 1px solid var(--line); background: color-mix(in srgb, var(--bg) 88%, var(--ink)); }
.pc-t { margin: 0 0 8px; color: var(--accent-text); font: 700 .875rem/1 var(--font-body); letter-spacing: .07em; text-transform: uppercase; }
.pc-puntos { list-style: none; margin: 0 0 12px; padding: 0; display: grid; gap: 8px; }
.pc-puntos li { font: 500 .9375rem/1.45 var(--font-body); color: var(--ink); overflow-wrap: anywhere; animation: pc-in .28s var(--ease-out, ease-out) calc(120ms + var(--i, 0) * 70ms) both; }
@keyframes pc-in { from { opacity: 0; transform: translateY(8px); } }
.pc-puntos li.pc-resalta { padding: 10px 12px; border-radius: 12px; border-left: 4px solid var(--accent); background: color-mix(in srgb, var(--accent) 16%, transparent); font-weight: 700; }
.pc-ok { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; padding-top: 10px; border-top: 1px solid var(--line); }
.pc-fila { display: flex; align-items: center; gap: 12px; min-height: 44px; flex: 1 1 220px; cursor: pointer; }
.pc-chk { position: absolute; opacity: 0; width: 1px; height: 1px; }
.pc-box { flex: none; width: 26px; height: 26px; display: grid; place-items: center; border-radius: 8px; border: 2px solid var(--ink-2); color: var(--on-accent); transition: background-color .2s var(--ease-out, ease-out), border-color .2s, transform .2s var(--ease-out, ease-out); }
.pc-box svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 1; stroke-dashoffset: 1; transition: stroke-dashoffset .22s var(--ease-out, ease-out) .05s; }
.pc-chk:checked + .pc-box { background: var(--accent); border-color: var(--accent); transform: scale(1.06); }
.pc-chk:checked + .pc-box svg { stroke-dashoffset: 0; }
.pc-chk:focus-visible + .pc-box { outline: 3px solid var(--accent-text); outline-offset: 3px; }
.pc-lbl { font: 600 .9375rem/1.35 var(--font-body); color: var(--ink); }
.pc-ver { min-height: 44px; padding: 0 4px; color: var(--accent-text); font: 700 .875rem/1 var(--font-body); text-decoration: underline; text-underline-offset: 3px; }
.pc-aviso { margin: 4px 0 0; color: var(--err, #ff9b9b); font: 600 .875rem/1.35 var(--font-body); }
.pc.pc-sacude { animation: pc-sacude .32s var(--ease-out, ease-out); }
@keyframes pc-sacude { 25% { transform: translateX(-6px); } 50% { transform: translateX(5px); } 75% { transform: translateX(-3px); } }
/* Los botones de pedir/pagar esperan la casilla: apagados y quietos; al marcarla se despiertan */
.co-options .btn { transition: opacity .3s var(--ease-out, ease-out), filter .3s var(--ease-out, ease-out), transform .35s var(--spring, ease-out), box-shadow .25s; }
.co-options.pc-pendiente .btn { opacity: .45; filter: saturate(.5); }
.co-options.pc-despierta .btn { animation: pc-despierta .5s var(--ease-out, ease-out); }
@keyframes pc-despierta { 40% { transform: scale(1.035); box-shadow: 0 0 0 6px color-mix(in srgb, var(--accent) 28%, transparent); } }
@media (prefers-reduced-motion: reduce) {
  .pc-puntos li { animation: none; }
  .pc.pc-sacude, .co-options.pc-despierta .btn { animation: none; }
  .pc-box, .pc-box svg { transition: none; }
}
