/* Warenkorb /warenkorb/. Markup: inc/seiten/Warenkorb.php.
   Alle Bausteine sind Komponenten des Systems (ds.css 2026.10.02): Section,
   Container, Steps, List und ListRow (Warenkorbzeile), Stepper, StatusBadge,
   Disclosure, Field, Input, Panel, DescriptionList, RadioGroup als Karte,
   Button, IconButton, StickyBar, EmptyState, Alert. Diese Datei ordnet nur an.
   Grenzen: md 900 (tokens/breakpoints.css). Den Abstand unter der fixierten
   Navbar setzt chrome.css, die Breite und Titelschrift .rvr-page-title. */

/* Seite so breit wie die Kasse (kasse.css), als Gruppe in der Mitte. */
.rvt-wk__container { max-width: calc(var(--container-form) + var(--space-8) + 400px + 2 * var(--gutter)); width: min(100%, calc(var(--container-form) + var(--space-8) + 400px + 2 * var(--gutter))); }

/* ── Kopf ───────────────────────────────────────────────────────────────── */
.rvt-wk__title { margin-bottom: var(--space-8); color: var(--text-heading); }
.rvt-wk__steps { max-width: var(--measure-alert); margin-bottom: var(--space-12); }
.rvt-wk__alerts { display: grid; gap: var(--space-3); margin-bottom: var(--space-8); }
.rvt-sr {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.rvt-wk__form { display: none; }
/* «Warenkorb aktualisieren» braucht nur, wer ohne Skript unterwegs ist. */
@media (scripting: enabled) { .rvt-wk__aktualisieren { display: none; } }

/* ── Raster: Liste links, Summe rechts ──────────────────────────────────── */
.rvt-wk__raster { display: grid; gap: var(--space-8); align-items: start; }
@media (min-width: 900px) {
  .rvt-wk__raster { grid-template-columns: minmax(0, 1fr) minmax(320px, 400px); gap: var(--space-12); }
  .rvt-wk__summe { position: sticky; top: calc(var(--nav-height) + var(--space-8)); }
}
.rvt-wk__liste { display: grid; gap: var(--space-7); min-width: 0; }
/* Der Körper der Liste ist hier ein <ul>: Browser-Einzug weg. */
.rvt-wk__zeilen { margin: 0; padding: 0; list-style: none; }
.rvt-wk__unter { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: var(--space-5); }
.rvt-wk__gutschein { flex: 1 1 320px; max-width: var(--measure-alert); min-width: 0; }
.rvt-wk__gutschein-reihe { display: flex; gap: var(--space-3); align-items: center; }
.rvt-wk__gutschein-reihe > .rvds-input { flex: 1 1 auto; min-width: 0; }

/* ── Summe ──────────────────────────────────────────────────────────────── */
.rvt-wk__summe-body { display: grid; gap: var(--space-8); }
.rvt-wk__mit-aktion { display: inline-flex; align-items: center; gap: var(--space-3); }
.rvt-wk__aktion { display: flex; flex-wrap: wrap; gap: var(--space-4); }

/* ── Leer ───────────────────────────────────────────────────────────────── */
.rvt-wk__leer { max-width: var(--measure-panel); }

/* ── Handy: StickyBar statt Summe im Blick ──────────────────────────────── */
@media (min-width: 900px) { .rvt-wk__sticky { display: none; } }
@media (max-width: 899.98px) {
  /* Platz für die Leiste unter dem Footer; Fokus und Sprungziele landen darüber. */
  body:has(.rvt-wk--voll) { padding-bottom: calc(var(--sticky-bar-height) + env(safe-area-inset-bottom)); }
  html:has(.rvt-wk--voll) { scroll-padding-bottom: calc(var(--sticky-bar-height) + env(safe-area-inset-bottom)); }
}

[data-rvt-wk-root][aria-busy="true"] .rvt-wk__summe,
[data-rvt-wk-root][aria-busy="true"] .rvds-sticky-bar__info,
[data-rvt-wk-root] .rvds-list-row.is-busy { opacity: 0.5; transition: opacity var(--duration-base); }
[data-rvt-wk-root] .rvds-list-row.is-busy { pointer-events: none; }
