/* Shared Idle Restaurant theme for the purchase flow. */
:root {
  --purchase-ink: #203247;
  --purchase-muted: #66748a;
  --purchase-line: #cbdfe5;
  --purchase-sky: #9ee7f2;
  --purchase-sky-soft: #e6faff;
  --purchase-cream: #fff8df;
  --purchase-paper: #ffffff;
  --purchase-yellow: #ffc72c;
  --purchase-yellow-deep: #d88710;
  --purchase-red: #ef5a45;
  --purchase-red-deep: #c53d31;
  --purchase-green: #2d9b61;
  --purchase-blue: #1976d2;

  --shop-ink: var(--purchase-ink);
  --shop-muted: var(--purchase-muted);
  --shop-line: var(--purchase-line);
  --shop-surface: var(--purchase-paper);
  --shop-canvas: #f5fcff;
  --shop-cyan: var(--purchase-blue);
  --shop-cyan-bright: #0d6cae;
  --shop-gold: var(--purchase-yellow);
  --shop-red: var(--purchase-red);
  --shop-purple: var(--purchase-blue);

  --checkout-ink: var(--purchase-ink);
  --checkout-muted: var(--purchase-muted);
  --checkout-line: var(--purchase-line);
  --checkout-surface: var(--purchase-paper);
  --checkout-canvas: #f5fcff;
  --checkout-cyan: var(--purchase-blue);
  --checkout-cyan-bright: #18b8d8;
  --checkout-gold: var(--purchase-yellow);
  --checkout-danger: var(--purchase-red);

  --payment-ink: var(--purchase-ink);
  --payment-muted: var(--purchase-muted);
  --payment-line: var(--purchase-line);
  --payment-surface: var(--purchase-paper);
  --payment-canvas: #f5fcff;
  --payment-cyan: var(--purchase-blue);
  --payment-cyan-bright: #18b8d8;
  --payment-gold: var(--purchase-yellow);
  --payment-danger: var(--purchase-red);

  --result-ink: var(--purchase-ink);
  --result-muted: var(--purchase-muted);
  --result-line: var(--purchase-line);
  --result-canvas: #f5fcff;
  --result-cyan: var(--purchase-blue);
  --result-cyan-bright: #18b8d8;
  --result-gold: var(--purchase-yellow);
  --result-success: var(--purchase-green);
  --result-danger: var(--purchase-red);
  --result-pending: #d88710;

  --message-ink: var(--purchase-ink);
  --message-muted: var(--purchase-muted);
  --message-line: var(--purchase-line);
  --message-bg: #f5fcff;
  --message-surface: var(--purchase-paper);
  --message-success: var(--purchase-green);
  --message-success-soft: #e3f7ea;
  --message-error: var(--purchase-red);
  --message-error-soft: #fff0ec;
  --message-accent: var(--purchase-blue);
  --message-gold: var(--purchase-yellow);

  --coda-ink: var(--purchase-ink);
  --coda-muted: var(--purchase-muted);
  --coda-line: var(--purchase-line);
  --coda-canvas: #e9faff;
  --coda-panel: var(--purchase-paper);
  --coda-cyan: var(--purchase-blue);
  --coda-cyan-soft: var(--purchase-sky-soft);
  --coda-gold: var(--purchase-yellow);
  --coda-success: var(--purchase-green);
  --coda-danger: var(--purchase-red);
  --coda-danger-soft: #fff0ec;

  --external-ink: var(--purchase-ink);
  --external-muted: var(--purchase-muted);
  --external-line: var(--purchase-line);
  --external-canvas: #e9faff;
  --external-panel: var(--purchase-paper);
  --external-success: var(--purchase-green);
  --external-success-soft: #e3f7ea;
  --external-error: var(--purchase-red);
  --external-error-soft: #fff0ec;
}

.shop-product-page,
.checkout-page,
.payment-page,
.payment-result-page,
.system-message-page,
.coda-payment-page,
.external-payment-page {
  color: var(--purchase-ink);
  font-family: var(--font-body, "Trebuchet MS", "Segoe UI", Arial, sans-serif);
}

/* Product catalog */
.shop-product-page {
  background: #f5fcff;
}

.shop-banner {
  height: min(460px, 54vh);
  min-height: 350px;
  border-bottom: 7px solid var(--purchase-yellow);
  background: var(--purchase-sky);
  color: var(--purchase-ink);
}

.shop-banner > img {
  object-position: center 46%;
}

.shop-banner__overlay {
  background: rgba(255, 255, 255, 0.3);
  box-shadow: inset 0 -90px 80px rgba(32, 50, 71, 0.14);
}

.shop-banner__content {
  justify-content: flex-end;
  padding-bottom: 46px;
}

.shop-banner__content p {
  margin-bottom: 9px;
  padding: 5px 10px;
  border-left: 5px solid var(--purchase-red);
  background: rgba(255, 248, 223, 0.94);
  color: #0d659a;
}

.shop-banner__content h1 {
  color: #173e5c;
  font-size: 46px;
  font-weight: 900;
  text-shadow: 0 2px 0 #ffffff, 2px 0 0 #ffffff, -2px 0 0 #ffffff;
}

.shop-banner__content > span {
  margin-top: 10px;
  color: #173e5c;
  font-size: 17px;
  font-weight: 800;
  text-shadow: 0 1px 0 #ffffff, 1px 0 0 #ffffff;
}

.shop-market {
  padding-top: 30px;
  border-top: 1px solid #ffffff;
  background: #fffdf7;
}

.shop-category-bar {
  gap: 8px;
  padding: 6px;
  border: 2px solid #c8e6eb;
  border-radius: 8px;
  background: #e8f8fa;
}

.shop-category {
  border: 2px solid transparent;
  background: transparent;
  color: #31536f;
}

.shop-category span {
  background: #ffffff;
  color: #31536f;
}

.shop-category:hover,
.shop-category:focus-visible {
  border-color: #7bcbd9;
  background: #ffffff;
  color: #0d659a;
}

.shop-category.is-active {
  border-color: #ffffff;
  background: var(--purchase-red);
  color: #ffffff;
  box-shadow: 0 4px 0 var(--purchase-red-deep);
}

.shop-category.is-active span {
  background: var(--purchase-yellow);
  color: #5f3d00;
}

.shop-catalog__heading p,
.shop-order__heading p {
  color: var(--purchase-red);
}

.shop-product-grid {
  gap: 16px;
}

.shop-product-card {
  border: 2px solid #cbe0e5;
  background: #ffffff;
  box-shadow: 0 7px 0 #d6ebef, 0 14px 24px rgba(32, 78, 103, 0.08);
}

.shop-product-card:hover,
.shop-product-card:focus-visible {
  border-color: #6bc5d5;
  box-shadow: 0 5px 0 #91d5df, 0 16px 28px rgba(32, 78, 103, 0.14);
  transform: translateY(2px);
}

.shop-product-card.is-selected {
  border-color: var(--purchase-red);
  box-shadow: 0 0 0 3px rgba(239, 90, 69, 0.12), 0 7px 0 var(--purchase-yellow-deep);
}

.shop-product-card__visual {
  border-bottom: 2px solid #d6e9ed;
  background: var(--purchase-sky-soft);
}

.shop-product-card.is-selected .shop-product-card__visual {
  background: #fff3bd;
}

.shop-product-card__category {
  color: var(--purchase-blue);
}

.shop-product-card__body > strong {
  color: var(--purchase-ink);
}

.shop-product-card__meta b {
  color: #b74734;
}

.shop-empty {
  border: 2px dashed #8fcbd5;
  background: var(--purchase-sky-soft);
}

.shop-order {
  border: 3px solid #ffffff;
  border-top: 7px solid var(--purchase-red);
  background: #ffffff;
  color: var(--purchase-ink);
  box-shadow: 0 9px 0 #b9dce3, 0 24px 42px rgba(32, 78, 103, 0.16);
}

.shop-order__heading {
  border-bottom: 2px solid #dcebef;
  background: var(--purchase-sky-soft);
}

.shop-order__heading h2 {
  color: var(--purchase-ink);
}

.shop-order__product img {
  border: 2px solid #b8dce3;
  background: #fff8df;
}

.shop-order__product span,
.shop-order__product small {
  color: var(--purchase-blue);
}

.shop-order__product small {
  color: var(--purchase-muted);
}

.shop-order__row,
.shop-order__quantity,
.shop-order__total,
.shop-order__field,
.shop-order__notice {
  border-color: #dce9ec;
}

.shop-order__row span,
.shop-order__quantity label,
.shop-order__total span,
.shop-order__field label {
  color: var(--purchase-muted);
}

.shop-order__row strong,
.shop-order__total strong {
  color: #b74734;
}

.shop-order__row .shop-order__delivery {
  color: var(--purchase-green);
}

.shop-order__notice {
  color: var(--purchase-muted);
}

.shop-stepper {
  border: 2px solid #92c8d2;
  background: #ffffff;
}

.shop-stepper button,
.shop-stepper input {
  color: var(--purchase-ink);
}

.shop-stepper button {
  background: #fff2a8;
  color: #6b4700;
}

.shop-stepper button:hover:not(:disabled),
.shop-stepper button:focus-visible {
  background: var(--purchase-yellow);
}

.shop-stepper input {
  border-color: #92c8d2;
}

.shop-order__field input {
  border: 2px solid var(--purchase-line);
  background: #ffffff;
  color: var(--purchase-ink);
}

.shop-order__field input::placeholder {
  color: #98a8b3;
}

.shop-order__error,
.shop-order__status {
  color: var(--purchase-red-deep);
}

.shop-checkout,
.checkout-submit,
.payment-submit,
.payment-result-action.is-primary,
.system-message__action--primary,
.coda-payment__button.is-primary {
  border: 2px solid #ffffff;
  background: var(--purchase-red);
  color: #ffffff;
  box-shadow: 0 6px 0 var(--purchase-red-deep), 0 12px 20px rgba(197, 61, 49, 0.16);
}

.shop-checkout:hover:not(:disabled),
.shop-checkout:focus-visible,
.checkout-submit:hover:not(:disabled),
.checkout-submit:focus-visible,
.payment-submit:hover:not(:disabled),
.payment-submit:focus-visible,
.payment-result-action.is-primary:hover,
.payment-result-action.is-primary:focus-visible,
.system-message__action--primary:hover,
.system-message__action--primary:focus-visible,
.coda-payment__button.is-primary:hover,
.coda-payment__button.is-primary:focus-visible {
  background: #f36b57;
  box-shadow: 0 3px 0 var(--purchase-red-deep), 0 9px 16px rgba(197, 61, 49, 0.18);
  color: #ffffff;
  transform: translateY(3px);
}

/* Checkout */
.checkout-page,
.payment-page,
.payment-result-page,
.system-message-page {
  background: #f5fcff;
}

.checkout-main,
.payment-main,
.payment-result-main,
.system-message-main {
  background: #f5fcff;
}

.checkout-breadcrumb a,
.payment-breadcrumb a,
.payment-result-breadcrumb a {
  color: #31536f;
}

.checkout-heading p,
.checkout-panel__heading p,
.checkout-game-id__heading p,
.checkout-delivery p,
.checkout-summary__heading p,
.payment-status__copy p,
.payment-panel__heading p,
.payment-summary__heading p,
.payment-success-banner__copy p,
.payment-success-order__heading p,
.payment-success-game__copy p {
  color: var(--purchase-red);
}

.checkout-panel,
.checkout-game-id,
.checkout-delivery,
.payment-panel {
  border: 2px solid #d4e6ea;
  background: #ffffff;
  box-shadow: 0 7px 0 #dfedf0;
}

.checkout-panel__heading,
.payment-panel__heading {
  background: var(--purchase-sky-soft);
}

.checkout-panel__heading > span,
.checkout-game-id__field label span,
.payment-status__badge {
  border-color: #e7a912;
  background: #fff2a8;
  color: #6b4700;
}

.checkout-table__head {
  background: #f4fafb;
}

.checkout-item__image {
  border: 2px solid #b9dce3;
  background: var(--purchase-cream);
}

.checkout-item__product span,
.checkout-item__subtotal strong {
  color: var(--purchase-blue);
}

.checkout-game-id {
  border-left: 6px solid var(--purchase-yellow);
}

.checkout-game-id__field input {
  border: 2px solid var(--purchase-line);
  background: #ffffff;
}

.checkout-game-id__field input:focus {
  border-color: #18b8d8;
  box-shadow: 0 0 0 4px rgba(24, 184, 216, 0.14);
}

.checkout-delivery {
  border-left: 6px solid var(--purchase-green);
  background: #edfaf2;
}

.checkout-summary,
.payment-summary,
.payment-result-summary {
  border: 3px solid #ffffff;
  border-top: 7px solid var(--purchase-yellow);
  background: #ffffff;
  color: var(--purchase-ink);
  box-shadow: 0 9px 0 #b9dce3, 0 24px 42px rgba(32, 78, 103, 0.15);
}

.checkout-summary__heading,
.payment-summary__heading,
.payment-result-summary__heading {
  border-color: #dce9ec;
  background: var(--purchase-sky-soft);
}

.checkout-summary__heading h2,
.payment-summary__heading h2,
.payment-result-summary__heading h2 {
  color: var(--purchase-ink);
}

.checkout-summary__row,
.checkout-summary__total,
.checkout-summary__secure,
.payment-summary__details > div,
.payment-summary__total,
.payment-summary__secure,
.payment-result-details > div,
.payment-result-total,
.payment-result-summary__note {
  border-color: #dce9ec;
}

.checkout-summary__row span,
.checkout-summary__total span,
.payment-summary__details dt,
.payment-summary__total span,
.payment-result-details dt,
.payment-result-total span {
  color: var(--purchase-muted);
}

.checkout-summary__row strong,
.checkout-summary__total strong,
.payment-summary__details dd,
.payment-summary__total strong,
.payment-result-details dd,
.payment-result-total strong {
  color: var(--purchase-ink);
}

.checkout-summary__total strong,
.payment-summary__total strong,
.payment-result-total strong {
  color: #b74734;
}

.checkout-summary__secure strong,
.payment-summary__secure strong,
.payment-result-summary__note strong {
  color: var(--purchase-green);
}

.checkout-summary__secure span,
.payment-summary__secure span,
.payment-result-summary__note span {
  color: var(--purchase-muted);
}

/* Payment selection */
.payment-status {
  padding: 22px 24px;
  border: 2px solid #c8e5d3;
  border-left: 7px solid var(--purchase-green);
  border-radius: 8px;
  background: #edfaf2;
}

.payment-status__mark {
  border: 3px solid #ffffff;
  background: #55c982;
  box-shadow: 0 6px 0 #278b55;
}

.payment-status__mark::after {
  border-color: #ffffff;
}

.payment-panel__step {
  background: var(--purchase-yellow);
  color: #624000;
}

.payment-method {
  border: 2px solid #d4e4e8;
  background: #ffffff;
}

.payment-method:hover,
.payment-method:focus-within {
  border-color: #72c9d7;
  background: var(--purchase-sky-soft);
}

.payment-method.is-selected {
  border-color: var(--purchase-red);
  background: #fff3ef;
  box-shadow: 0 0 0 3px rgba(239, 90, 69, 0.1);
}

.payment-method__control,
.payment-check__box {
  border-color: #89aeb7;
  background: #ffffff;
}

.payment-method input:checked + .payment-method__control,
.payment-check input:checked + .payment-check__box {
  border-color: var(--purchase-blue);
  background: var(--purchase-blue);
}

.payment-method__logo {
  border-color: #d9e6e9;
  background: #ffffff;
}

.payment-confirmation__body {
  background: #fffdf7;
}

.payment-order-link {
  border-color: #8bbbc6;
  color: #31536f;
}

.payment-order-link:hover,
.payment-order-link:focus-visible {
  background: var(--purchase-sky-soft);
  color: var(--purchase-blue);
}

/* Payment result pages */
.payment-success-banner {
  border: 2px solid #c9e4d2;
  border-left: 7px solid var(--purchase-green);
  background: #edfaf2;
  box-shadow: 0 7px 0 #c5dfcf;
}

.payment-result-page--error .payment-success-banner {
  border-color: #f1c7bf;
  border-left-color: var(--purchase-red);
  background: #fff3ef;
  box-shadow: 0 7px 0 #f0d3cd;
}

.payment-result-page--pending .payment-success-banner {
  border-color: #ecd48a;
  border-left-color: var(--purchase-yellow-deep);
  background: #fff8d8;
  box-shadow: 0 7px 0 #e7d9a8;
}

.payment-result-mark.is-success {
  background: #55c982;
  box-shadow: 0 6px 0 #278b55;
}

.payment-result-mark.is-success::after {
  border-color: #ffffff;
}

.payment-result-mark.is-error {
  background: var(--purchase-red);
  box-shadow: 0 6px 0 var(--purchase-red-deep);
}

.payment-result-mark.is-error::before,
.payment-result-mark.is-error::after {
  background: #ffffff;
}

.payment-result-mark.is-pending {
  background: var(--purchase-yellow);
  box-shadow: 0 6px 0 var(--purchase-yellow-deep);
}

.payment-success-paid {
  border-color: #b8dce3;
  background: #ffffff;
}

.payment-success-paid > strong {
  color: #b74734;
}

.payment-success-order,
.payment-success-game {
  border: 2px solid #d4e6ea;
  background: #ffffff;
  box-shadow: 0 7px 0 #dfedf0;
}

.payment-success-order__heading {
  background: var(--purchase-sky-soft);
}

.payment-success-details > div:nth-child(odd) {
  background: #ffffff;
}

.payment-success-details > div:nth-child(even) {
  background: #f6fbfc;
}

.payment-result-action.is-secondary {
  border: 2px solid #89b9c4;
  background: #ffffff;
  color: #31536f;
}

.payment-result-action.is-secondary:hover,
.payment-result-action.is-secondary:focus-visible {
  background: var(--purchase-sky-soft);
  color: var(--purchase-blue);
}

.payment-success-game__visual {
  background: var(--purchase-sky-soft);
}

.payment-result-page--error .payment-success-game__visual {
  background: #fff0ec;
}

.payment-result-page--pending .payment-success-game__visual {
  background: #fff7d0;
}

.payment-success-game__copy {
  background: #ffffff;
  color: var(--purchase-ink);
}

.payment-success-game__copy strong {
  color: var(--purchase-ink);
}

.payment-success-game__copy span {
  color: var(--purchase-muted);
}

/* Provider and system pages */
.system-message {
  border: 3px solid #ffffff;
  border-top: 7px solid var(--purchase-yellow);
  background: #ffffff;
  box-shadow: 0 10px 0 #b9dce3, 0 24px 42px rgba(32, 78, 103, 0.15);
}

.system-message__visual {
  background: var(--purchase-sky-soft);
}

.system-message-page--error .system-message__visual {
  background: #fff0ec;
}

.system-message__mark {
  border-color: #ffffff;
  background: var(--purchase-yellow);
  color: #694600;
  box-shadow: 0 6px 0 var(--purchase-yellow-deep);
}

.system-message__content {
  background: #ffffff;
}

.system-message__embedded {
  border-color: #b8dce3;
  background: #fffdf7;
}

.system-message__action,
.coda-payment__button.is-secondary {
  border: 2px solid #89b9c4;
  background: #ffffff;
  color: #31536f;
}

.system-message__action:hover,
.system-message__action:focus-visible,
.coda-payment__button.is-secondary:hover,
.coda-payment__button.is-secondary:focus-visible {
  background: var(--purchase-sky-soft);
  color: var(--purchase-blue);
}

.coda-payment-main,
.external-payment-main {
  background: #e9faff;
}

.coda-payment,
.external-result {
  border: 3px solid #ffffff;
  border-top: 7px solid var(--purchase-yellow);
  background: #ffffff;
  box-shadow: 0 10px 0 #b6dce4, 0 24px 42px rgba(32, 78, 103, 0.16);
}

.coda-payment__brand {
  border-color: #d8eaee;
  background: var(--purchase-sky-soft);
}

.coda-payment__brand img,
.coda-payment__brand-mark {
  border: 2px solid #ffffff;
  background: var(--purchase-yellow);
  color: #654300;
  box-shadow: 0 5px 0 var(--purchase-yellow-deep);
}

.coda-payment__status {
  background: #ffffff;
}

.coda-payment__loader {
  border-color: #a6dbe4;
  background: var(--purchase-sky-soft);
}

.coda-payment__progress {
  background: #f6fbfc;
}

.coda-payment__progress i {
  border-color: #a8c1c7;
  background: #ffffff;
}

.coda-payment__progress .is-active i {
  border-color: var(--purchase-yellow-deep);
  box-shadow: 0 0 0 4px rgba(255, 199, 44, 0.2);
}

.coda-payment__details > div,
.external-order__details > div {
  border-color: #dce9ec;
}

.external-result__status {
  border-top: 0;
  border-left: 7px solid var(--purchase-green);
  background: #edfaf2;
}

.is-error .external-result__status {
  border-left-color: var(--purchase-red);
  background: #fff0ec;
}

.external-result__icon {
  border: 3px solid #ffffff;
  background: #55c982;
  box-shadow: 0 6px 0 #278b55;
}

.external-result__icon::after {
  border-color: #ffffff;
}

.is-error .external-result__icon {
  border-color: #ffffff;
  background: var(--purchase-red);
  box-shadow: 0 6px 0 var(--purchase-red-deep);
}

.is-error .external-result__icon::before,
.is-error .external-result__icon::after {
  background: #ffffff;
}

.external-order__heading {
  background: var(--purchase-sky-soft);
}

.external-order__badge {
  background: #e3f7ea;
  color: var(--purchase-green);
}

.is-error .external-order__badge {
  background: #fff0ec;
  color: var(--purchase-red-deep);
}

@media (max-width: 600px) {
  .shop-banner {
    height: 310px;
    min-height: 310px;
  }

  .shop-banner__overlay {
    background: rgba(255, 255, 255, 0.38);
    box-shadow: inset 0 -110px 75px rgba(32, 50, 71, 0.18);
  }

  .shop-banner__content {
    padding-bottom: 28px;
  }

  .shop-banner__content h1 {
    font-size: 32px;
  }

  .shop-category-bar {
    border-right: 0;
    border-radius: 8px 0 0 8px;
  }

  .shop-product-card__visual {
    border-right: 2px solid #d6e9ed;
  }

  .payment-status,
  .payment-success-banner,
  .external-result__status {
    border-left-width: 5px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .shop-category,
  .shop-product-card,
  .shop-checkout,
  .checkout-submit,
  .payment-submit,
  .payment-result-action,
  .system-message__action,
  .coda-payment__button {
    transition: none;
  }
}
