/* Always loaded: readable purchase controls even without the optional base styling.
 * Concrete system colors avoid currentColor resolving to the button's own white text.
 * Themes can still use the shared --nw-* tokens or the existing --mini-shop-* aliases.
 */
.mini-shop :is(button, a).mini-shop__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  min-height: var(--nw-control-height, 2.75rem);
  padding: .5rem 1.4rem;
  border: var(--nw-border-width, 1px) solid var(--mini-shop-accent, var(--nw-accent, CanvasText));
  border-radius: var(--nw-radius-button, 999px);
  background: var(--mini-shop-button-background, var(--_button-background, var(--nw-surface, Canvas)));
  color: var(--mini-shop-button-color, var(--mini-shop-accent, var(--nw-accent, CanvasText)));
  font: inherit;
  font-size: var(--nw-font-size, 1rem);
  font-weight: 600;
  line-height: 1.25;
  transition: filter .15s ease, background-color .15s ease;
  text-align: center;
  text-decoration: none;
  white-space: normal;
  overflow-wrap: anywhere;
  cursor: pointer;
}
.mini-shop :is(button, a).mini-shop__button--primary,
.mini-shop :is(button, a).mini-shop__button--order {
  background: var(--mini-shop-primary-background, var(--mini-shop-accent, var(--nw-accent, CanvasText)));
  color: var(--mini-shop-primary-color, var(--nw-accent-contrast, Canvas));
}
.mini-shop :is(button, a).mini-shop__button:hover { filter: brightness(.94); }
.mini-shop :is(button, a).mini-shop__button:not(.mini-shop__button--primary, .mini-shop__button--order):hover { background: color-mix(in srgb, currentColor 7%, transparent); filter: none; }
.mini-shop :is(button, a).mini-shop__button:focus-visible {
  outline: var(--nw-focus-width, 3px) solid var(--nw-focus, Highlight);
  outline-offset: var(--nw-focus-offset, 3px);
}
.mini-shop button.mini-shop__button:disabled {
  border-style: dashed;
  background: Canvas;
  color: CanvasText;
  opacity: 1;
  cursor: not-allowed;
}
.mini-shop button.mini-shop__button:disabled:hover { filter: none; background: Canvas; }
/* Setup links must remain readable in the closed checkout with arbitrary theme rules. */
.mini-shop .mini-shop__setup a {
  color: var(--mini-shop-text, var(--nw-text, CanvasText));
  background: var(--mini-shop-surface, var(--nw-surface, Canvas));
  text-decoration: underline;
  overflow-wrap: anywhere;
}
.mini-shop .mini-shop__setup a:focus-visible {
  outline: var(--nw-focus-width, 3px) solid var(--nw-focus, Highlight);
  outline-offset: var(--nw-focus-offset, 3px);
}

/* Contract prices and the official notice must stay readable on phones without base styling. */
.mini-shop__table-wrap { max-width: 100%; }
.mini-shop__table { width: 100%; }
.mini-shop__guarantee img { max-width: 100%; height: auto; }
@media (max-width: 36rem) {
  .mini-shop__table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .mini-shop__table tbody tr { display: block; }
  .mini-shop__table tbody th { display: block; text-align: start; overflow-wrap: anywhere; }
  .mini-shop__table tbody td { display: flex; justify-content: space-between; gap: 1rem; }
  .mini-shop__table tbody td::before { content: attr(data-label); }
}
/* Invisible first submit button of the cart form, so Enter updates instead of removing a line. */
.mini-shop__default-submit { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; padding: 0; }
/* With script the cart saves every change itself, one at a time. */
.mini-shop__cart-form[data-enhanced] [data-mini-shop-update] { display: none; }
/* While a cart change is saved, the cart holds still. It only dims if that takes a moment. */
.mini-shop [aria-disabled="true"]:is(.mini-shop__step, .mini-shop__remove, .mini-shop__button) { cursor: progress; opacity: .55; transition: opacity .15s ease .25s; }
.mini-shop [aria-disabled="true"]:is(.mini-shop__step, .mini-shop__remove, .mini-shop__button):hover { filter: none; }
.mini-shop .mini-shop__quantity:read-only { cursor: progress; }
