/* =========================================================
   Poké Cube: the ordering plugin's pages in the site design
   (Smart Online Order for Clover, "Store Interface 4" / onePage)

   Loaded only on the plugin's store, cart, checkout and My Orders pages (inc/order-pages.php).
   Every selector starts with body.pc-order-page, so nothing else on the site changes
   (wp-theme/tests/order-pages.test.cjs checks this).

   The plugin prints its own styles after this file, in the footer, and some of its rules use
   long ID chains or !important. Rules here copy the plugin's selector after .pc-order-page so
   they win on specificity, and use !important only where the plugin does, or where its
   scripts write inline styles.

   Only transform and opacity animate. Colours change instantly.
   ========================================================= */

.pc-order-page {
  --oc-card: #fff;
  --oc-ink: var(--navy);
  --oc-muted: var(--ink-soft);
  --oc-line: rgba(22, 52, 78, .14);
  --oc-line-strong: rgba(22, 52, 78, .32);
  --oc-hover: var(--mint-whisper);
  --oc-picked: var(--mint-soft);
  --oc-radius-card: 20px;
  --oc-radius-field: 12px;
  --oc-field-h: 48px;
  --oc-shadow: 0 1px 2px rgba(11, 30, 45, .06), 0 10px 28px -16px rgba(11, 30, 45, .28);
  --oc-shadow-float: 0 2px 6px rgba(11, 30, 45, .12), 0 30px 70px -24px rgba(11, 30, 45, .55);
  --oc-focus: 3px solid var(--coral-ink);
}

/* ---------- one type family inside every plugin surface (icons keep theirs) ---------- */
/* :where() keeps this at the weight of three classes, so every rule below that sets the display font
   wins over it; it still beats the plugin's own fonts, none of which are !important except two
   (the choice pop-up's option names and prices, set again below). */
.pc-order-page :where(#moo_OnlineStoreContainer, #moo_CheckoutContainer, #sooMyOrdersContainer, .moo-shopping-cart-container, .moo_emptycart, #moo_checkout_msg, #mooModalWindow, .swal2-container) :where(div, span, p, a, li, label, button, input, select, textarea, strong, small, h1, h2, h3, h4, h5, h6, td, th):not([class*="fa-"]):not([class*="icon-"]) {
  font-family: var(--font-body) !important;
}
.pc-order-page :is(#moo_OnlineStoreContainer, #moo_CheckoutContainer, #sooMyOrdersContainer, .moo-shopping-cart-container) {
  color: var(--oc-ink);
  font-size: 16px;
  line-height: 1.5;
}

/* ---------- focus: the same coral ring everywhere on the cream panel and in pop-ups ---------- */
.pc-order-page :is(#moo_OnlineStoreContainer, #moo_CheckoutContainer, #sooMyOrdersContainer, .moo-shopping-cart-container, .moo_emptycart, #mooModalWindow, .swal2-container) :is(a, button, [tabindex]):not(input, select, textarea):focus-visible {
  outline: var(--oc-focus) !important;
  outline-offset: 2px;
  box-shadow: none;
}

/* =========================================================
   Store: layout, cart tab, category bar
   ========================================================= */
.pc-order-page #moo_OnlineStoreContainer #moo-onlineStore-items {
  padding-left: 0;
}
/* The gap between the category list and the items sits on the items side: once the list is fixed
   to the screen, the plugin's script sets its width to the whole column. */
@media (min-width: 992px) {
  .pc-order-page #moo_OnlineStoreContainer #moo-onlineStore-items { padding-left: 28px; }
}

/* The plugin's cart button ("moo-new-icon": the item count over a cart icon). The plugin fixes it to the
   middle of the right screen edge, where on phones it covered the item buttons and, at the bottom of
   the page, the footer links. Here it never sits over anything that can be tapped:
   - Up to 1119px wide it is a round button near the bottom right of the screen that rides along only
     while the store is on screen: position: sticky inside the store container (its first row is
     dissolved with display: contents so the whole store is the button's range). At the end of the
     store it stops beside "View Cart", above "Powered by" and the footer. It takes no room in the
     layout (the negative bottom margin) and hangs out over the panel's padding and the page margin.
     It lines up above the site's back-to-top button (site.css .to-top: 14px from the right edge,
     22px from the bottom, 50px), 12px clear of it. Where the panel padding and page margin are
     narrower than the button (under 768px), the item rows and the category list keep a 32px lane
     clear on the right, so no button or link ever passes under it; the item buttons wrap onto two
     lines rather than run into the lane. It sits below the phone category strip (z-index 11), so the
     opened category list covers it.
   - From 1120px the page's side margin is 56px, so the plugin's tab (48px wide here) stays at the
     right screen edge, fixed, clear of the content and of the footer. */
.pc-order-page #moo_OnlineStoreContainer .moo-is-sticky.moo-new-icon {
  display: grid;
  place-items: center;
  border: 0;
  background-color: var(--coral-ink);
  color: #fff;
  box-shadow: var(--oc-shadow-float);
  cursor: pointer;
  transition: transform .3s var(--ease);
}
.pc-order-page #moo_OnlineStoreContainer .moo-new-icon .moo-new-icon__count {
  min-width: 26px;
  height: 26px;
  margin: 0;
  padding: 0 7px;
  border-radius: 999px;
  background: var(--cream);
  color: var(--coral-ink);
  font-size: 14px;
  font-weight: 700;
  line-height: 26px;
  text-align: center;
}
.pc-order-page #moo_OnlineStoreContainer .moo-new-icon .moo-new-icon__count:empty { display: none; }
.pc-order-page #moo_OnlineStoreContainer .moo-new-icon .moo-new-icon__cart { width: 26px; background-position: center; }

@media (max-width: 1119px) {
  .pc-order-page #moo_OnlineStoreContainer > .moo-row:first-child { display: contents; }
  .pc-order-page #moo_OnlineStoreContainer .moo-is-sticky.moo-new-icon {
    position: sticky;
    /* 22px (back-to-top's bottom) + 50px (its size) + 12px gap + 48px (this button) */
    top: calc(100vh - 132px);
    top: calc(100svh - 132px);
    right: auto;
    z-index: 10;
    width: 48px;
    height: 48px;
    min-width: 0;
    /* right edge 14px from the screen edge, like back-to-top: back out through the panel padding
       (.order-shell) and the page margin */
    margin: 0 calc(14px - var(--gutter) - clamp(16px, 3vw, 40px)) -48px auto;
    padding: 0;
    border-radius: 50%;
    transform: none;
  }
  .pc-order-page #moo_OnlineStoreContainer .moo-is-sticky.moo-new-icon .moo-new-icon__count {
    position: absolute;
    top: -8px;
    left: -8px;
    box-shadow: 0 0 0 2px var(--coral-ink);
  }
  .pc-order-page #moo_OnlineStoreContainer .moo-is-sticky.moo-new-icon:hover { transform: translateY(-2px); }
  .pc-order-page #moo_OnlineStoreContainer .moo-is-sticky.moo-new-icon:active { transform: scale(.94); }
}
@media (max-width: 767px) {
  /* ul. outranks the list's own padding rule further down */
  .pc-order-page #moo_OnlineStoreContainer #moo-onlineStore-categories ul.moo-nav-menu { padding-right: 32px !important; }
}
@media (min-width: 1120px) {
  .pc-order-page #moo_OnlineStoreContainer .moo-is-sticky.moo-new-icon {
    gap: 4px;
    width: 48px;
    min-width: 0;
    padding: 12px 0;
    border-radius: 16px 0 0 16px;
  }
  .pc-order-page #moo_OnlineStoreContainer .moo-is-sticky.moo-new-icon:hover { transform: translateY(-50%) translateX(-4px); }
  .pc-order-page #moo_OnlineStoreContainer .moo-is-sticky.moo-new-icon:active { transform: translateY(-50%) scale(.96); }
}

.pc-order-page #moo_OnlineStoreContainer #MooLoadingSection { padding: 24px 0; color: var(--oc-muted); text-align: center; }

/* "Choose a Category" and the category list: a navy card, like the site's own dark surfaces. */
.pc-order-page #moo_OnlineStoreContainer #moo-onlineStore-categories .moo-choose-category {
  padding: 0 0 12px;
  background: none;
  border: 0;
  color: var(--navy);
  font-family: var(--font-display) !important;
  font-size: 1.35rem;
  font-weight: 750;
  letter-spacing: -.01em;
  line-height: 1.2;
  text-align: left;
  text-transform: none;
  font-variation-settings: "SOFT" 100, "opsz" 72;
}
.pc-order-page #moo_OnlineStoreContainer #moo-onlineStore-categories .moo-nav-menu {
  display: grid;
  gap: 2px;
  margin: 0 0 24px;
  padding: 8px !important;
  border-radius: var(--oc-radius-card);
  background-color: var(--navy);
  font-family: var(--font-body);
  text-transform: none;
  box-shadow: var(--oc-shadow);
  scrollbar-color: var(--teal-bright) transparent;
  scrollbar-width: thin;
}
@media (min-width: 992px) {
  .pc-order-page #moo_OnlineStoreContainer #moo-onlineStore-categories .moo-nav-menu { overflow-y: auto; }
}
.pc-order-page #moo_OnlineStoreContainer #moo-onlineStore-categories .moo-nav li {
  padding: 0;
  border: 0;
}
.pc-order-page #moo_OnlineStoreContainer #moo-onlineStore-categories .moo-nav-menu li a {
  display: flex;
  align-items: center;
  min-height: 44px;
  padding: 10px 14px;
  border-radius: var(--oc-radius-field);
  color: var(--cream);
  font-size: 15px;
  font-weight: 600;
  line-height: 1.25;
  text-decoration: none;
}
.pc-order-page #moo_OnlineStoreContainer #moo-onlineStore-categories .moo-nav-menu li a:hover { background: rgba(146, 217, 203, .16); color: var(--mint); }
.pc-order-page #moo_OnlineStoreContainer #moo-onlineStore-categories .moo-nav-menu li a:active { background: rgba(146, 217, 203, .26); }
.pc-order-page #moo_OnlineStoreContainer #moo-onlineStore-categories .moo-nav-menu li a:focus-visible { outline-color: var(--mint) !important; outline-offset: -3px; }

/* Desktop: once the plugin fixes the list to the screen, it floats as a card. */
.pc-order-page #moo_OnlineStoreContainer #moo-onlineStore-categories .moo-stick-to-content.moo-fixed {
  z-index: 20;
}

/* Phones and tablets (under 992px): the plugin turns the bar into a full-width strip under the
   site navigation (site.css keeps it below the nav) that opens the list when tapped. */
.pc-order-page #moo_OnlineStoreContainer #moo-onlineStore-categories .moo-stick-to-content.moo-mobile-fixed {
  max-height: calc(100vh - var(--pc-adminbar-h));
  background: var(--cream);
  box-shadow: var(--oc-shadow-float);
}
.pc-order-page .nav:not(.hidden) ~ #main #moo_OnlineStoreContainer .moo-stick-to-content.moo-mobile-fixed {
  max-height: calc(100vh - var(--pc-adminbar-h) - 76px);
}
.pc-order-page #moo_OnlineStoreContainer #moo-onlineStore-categories .moo-mobile-fixed .moo-choose-category {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 52px;
  padding: 12px 52px 12px var(--gutter);
  background-color: var(--navy);
  color: var(--cream);
  font-family: var(--font-body) !important;
  font-size: 16px;
  font-weight: 600;
  box-shadow: inset 0 -2px 0 rgba(146, 217, 203, .35);
  cursor: pointer;
}
.pc-order-page #moo_OnlineStoreContainer #moo-onlineStore-categories .moo-mobile-fixed .moo-choose-category i {
  top: 50%;
  right: var(--gutter);
  color: var(--mint);
  transform: translateY(-50%);
}
.pc-order-page #moo_OnlineStoreContainer #moo-onlineStore-categories .moo-mobile-fixed .moo-nav-menu {
  margin: 0;
  border-radius: 0;
  box-shadow: none;
}

/* =========================================================
   Store: category cards and items
   ========================================================= */
.pc-order-page #moo_OnlineStoreContainer #moo-onlineStore-items .moo-menu-category {
  margin-bottom: 32px;
  border-radius: var(--oc-radius-card);
  box-shadow: var(--oc-shadow);
  scroll-margin-top: 96px;
}
.pc-order-page #moo_OnlineStoreContainer #moo-onlineStore-items .moo-menu-category .moo-menu-category-title {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  height: auto;
  min-height: 132px;
  padding: 24px;
  overflow: hidden;
  border-radius: var(--oc-radius-card) var(--oc-radius-card) 0 0;
  background-color: var(--navy);
  color: var(--cream);
}
@media (min-width: 1200px) {
  .pc-order-page #moo_OnlineStoreContainer #moo-onlineStore-items .moo-menu-category .moo-menu-category-title { height: auto; min-height: 190px; padding: 28px 32px; }
}
/* a category without a photo: no empty band above the name */
.pc-order-page #moo_OnlineStoreContainer #moo-onlineStore-items .moo-menu-category .moo-menu-category-title:has(.moo-bg-image[style*='url("")']) { min-height: 0; }
/* the category photo, darkened toward the bottom so the name stays readable */
.pc-order-page #moo_OnlineStoreContainer #moo-onlineStore-items .moo-menu-category .moo-bg-image { opacity: .6; }
.pc-order-page #moo_OnlineStoreContainer #moo-onlineStore-items .moo-menu-category .moo-menu-category-title::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(to top, rgba(15, 38, 56, .92) 0%, rgba(15, 38, 56, .45) 55%, rgba(15, 38, 56, .1) 100%),
    radial-gradient(120% 90% at 0% 100%, rgba(29, 90, 117, .35), transparent 60%);
  pointer-events: none;
}
.pc-order-page #moo_OnlineStoreContainer #moo-onlineStore-items .moo-menu-category .moo-menu-category-title .moo-title {
  position: relative;
  z-index: 2;
  color: var(--cream);
  font-family: var(--font-display) !important;
  font-size: clamp(1.9rem, 3.2vw, 2.75rem);
  font-weight: 800;
  line-height: 1;
  letter-spacing: -.025em;
  font-variation-settings: "SOFT" 100, "WONK" 0, "opsz" 144;
  text-wrap: balance;
}
.pc-order-page #moo_OnlineStoreContainer #moo-onlineStore-items .moo-menu-category .moo-menu-category-title .moo-category-description {
  position: relative;
  z-index: 2;
  max-width: 60ch;
  margin-top: 10px;
  color: rgba(255, 250, 245, .9);
  font-size: 15px;
  font-weight: 500;
  line-height: 1.5;
}
.pc-order-page #moo_OnlineStoreContainer #moo-onlineStore-items .moo-menu-category .moo-menu-category-content {
  overflow: hidden;
  border: 0;
  border-radius: 0 0 var(--oc-radius-card) var(--oc-radius-card);
  background-color: var(--oc-card);
}

.pc-order-page #moo_OnlineStoreContainer #moo-onlineStore-items .moo-menu-category-content .moo-menu-list-item {
  padding: 18px 20px;
  border-bottom: 0;
}
.pc-order-page #moo_OnlineStoreContainer #moo-onlineStore-items .moo-menu-category-content .moo-menu-list-item + .moo-menu-list-item {
  border-top: 1px solid var(--oc-line);
}
.pc-order-page #moo_OnlineStoreContainer #moo-onlineStore-items .moo-menu-category-content .moo-menu-item > .moo-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  row-gap: 12px;
  margin: 0;
  padding: 0;
}
.pc-order-page #moo_OnlineStoreContainer #moo-onlineStore-items .moo-menu-category-content .moo-menu-item > .moo-row > [class*="moo-col-"] {
  float: none;
  padding-inline: 0;
}
.pc-order-page #moo_OnlineStoreContainer #moo-onlineStore-items .moo-menu-category-content .moo-menu-item > .moo-row > [role="img"] {
  flex: 0 0 auto;
  width: auto;
  margin-right: 16px;
}
.pc-order-page #moo_OnlineStoreContainer #moo-onlineStore-items .moo-menu-category-content .moo-menu-item .moo-img-responsive {
  width: 76px;
  height: 76px;
  border-radius: 16px;
  object-fit: cover;
  box-shadow: 0 0 0 1px var(--oc-line);
}
.pc-order-page #moo_OnlineStoreContainer #moo-onlineStore-items .moo-menu-category-content .moo-menu-item > .moo-row > [role="img"] + div {
  flex: 1 1 0;
  width: auto;
  min-width: 0;
}
.pc-order-page #moo_OnlineStoreContainer #moo-onlineStore-items .moo-menu-category .moo-menu-category-content .moo-item-name {
  color: var(--navy);
  font-size: 17px;
  font-weight: 600;
  line-height: 1.3;
}
.pc-order-page #moo_OnlineStoreContainer #moo-onlineStore-items .moo-menu-category .moo-menu-category-content .moo-item-description {
  display: block;
  margin-top: 4px;
  color: var(--oc-muted);
  font-size: 15px;
  line-height: 1.5;
}
/* price and button: one row, price first */
.pc-order-page #moo_OnlineStoreContainer #moo-onlineStore-items .moo-menu-category .moo-menu-category-content .moo-menu-item .moo-text-sm-right {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 16px;
  margin-top: 0;
  color: var(--navy);
  text-align: right;
}
.pc-order-page #moo_OnlineStoreContainer #moo-onlineStore-items .moo-menu-category-content .moo-price {
  color: var(--coral-ink);
  font-family: var(--font-display) !important;
  font-size: 1.25rem;
  font-weight: 750;
  letter-spacing: -.01em;
  font-variant-numeric: lining-nums;
  font-variation-settings: "SOFT" 100, "opsz" 72;
}
@media (max-width: 767px) {
  /* 32px on the right: the lane the cart button rides in (see the cart button above) */
  .pc-order-page #moo_OnlineStoreContainer #moo-onlineStore-items .moo-menu-category-content .moo-menu-list-item { padding: 16px 32px 16px 16px; }
  .pc-order-page #moo_OnlineStoreContainer #moo-onlineStore-items .moo-menu-category .moo-menu-category-content .moo-menu-item .moo-text-sm-right { gap: 12px; }
  .pc-order-page #moo_OnlineStoreContainer #moo-onlineStore-items .moo-menu-category-content .moo-price { flex: none; }
  .pc-order-page #moo_OnlineStoreContainer #moo-onlineStore-items button.moo-btn-sm {
    flex: 0 1 auto;
    min-width: 0;
    padding-inline: 14px;
    white-space: normal;
    text-align: center;
  }
  .pc-order-page #moo_OnlineStoreContainer #moo-onlineStore-items .moo-menu-category .moo-menu-category-content .moo-menu-item .moo-text-sm-right {
    justify-content: space-between;
    width: 100%;
  }
  .pc-order-page #moo_OnlineStoreContainer #moo-onlineStore-items .moo-menu-category-content .moo-menu-item > .moo-row > [role="img"] { margin-right: 14px; }
  .pc-order-page #moo_OnlineStoreContainer #moo-onlineStore-items .moo-menu-category-content .moo-menu-item .moo-img-responsive { width: 64px; height: 64px; border-radius: 14px; }
}

/* The item button ("Choose Options & Qty", "Add to cart"): an outlined pill that fills navy on hover.
   The fill is instant: the plugin's sweep layer would animate under text that has already turned cream. */
.pc-order-page #moo_OnlineStoreContainer #moo-onlineStore-items button.moo-btn-sm {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  margin: 0;
  padding: 10px 18px;
  border: 2px solid var(--navy);
  border-radius: 999px;
  background: transparent;
  color: var(--navy);
  font-size: 15px;
  font-weight: 600;
  line-height: 1.15;
  text-transform: none;
  white-space: nowrap;
  cursor: pointer;
  transition: transform .3s var(--ease);
}
.pc-order-page #moo_OnlineStoreContainer #moo-onlineStore-items button.moo-btn-sm.moo-hvr-sweep-to-top::before { display: none; }
.pc-order-page #moo_OnlineStoreContainer #moo-onlineStore-items button.moo-btn-sm:is(:hover, :focus-visible) { background: var(--navy); color: var(--cream); }
.pc-order-page #moo_OnlineStoreContainer #moo-onlineStore-items button.moo-btn-sm:hover { transform: translateY(-1px); }
.pc-order-page #moo_OnlineStoreContainer #moo-onlineStore-items button.moo-btn-sm:active { transform: scale(.97); }

/* "Show More" under a long category */
.pc-order-page #moo_OnlineStoreContainer #moo-onlineStore-items .moo-show-more {
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  padding: 8px 18px;
  border-radius: 999px;
  color: var(--navy);
  font-size: 15px;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 4px;
  transition: transform .4s var(--ease);
}
.pc-order-page #moo_OnlineStoreContainer #moo-onlineStore-items .moo-show-more i { display: inline-block !important; color: var(--coral-ink); }
.pc-order-page #moo_OnlineStoreContainer #moo-onlineStore-items .moo-show-more:hover { background: var(--oc-hover); color: var(--navy); }
.pc-order-page #moo_OnlineStoreContainer #moo-onlineStore-items .moo-show-more:active { transform: scale(.97); }

/* =========================================================
   Buttons shared by the store, cart, checkout, My Orders and pop-ups
   Primary: coral pill that fills navy (the site's .btn-coral). Secondary: navy outline.
   ========================================================= */
.pc-order-page #moo_OnlineStoreContainer #moo-onlineStore-items .moo-btn-primary,
.pc-order-page .moo-shopping-cart-container .moo-shopping-cart .moo-checkout,
.pc-order-page .moo_emptycart span a.moo-btn,
.pc-order-page #moo_CheckoutContainer .sooCheckoutPrimaryButtonInput,
.pc-order-page #moo_CheckoutContainer #moo-checkout-form #moo-checkout-form-btnActions .moo-finalize-order-btn,
.pc-order-page #sooAuthSection .sooAuthContainer #moo-login-section .sooContinueAsGuestButton,
.pc-order-page #sooAuthSection .sooAuthContainer #moo-login-section .sooLoginButton,
.pc-order-page #sooMyOrdersContainer .sooCheckoutPrimaryButtonInput,
.pc-order-page #sooAuthSection .sooAuthContainer .sooCheckoutPrimaryButtonInput,
.pc-order-page #mooModalWindow .moo-modifiersPanel .mooModifier-addToCartBtn2,
.pc-order-page #mooModalWindow .moo-modifiersPanel .mooModifier-addToCartBtn,
.pc-order-page .swal2-container .swal2-popup:not(.swal2-loading) .swal2-actions .swal2-styled.swal2-confirm {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .6em;
  height: auto;
  min-height: 52px;
  padding: 14px 26px;
  overflow: hidden;
  border: 0 !important;
  border-radius: 999px !important;
  background: var(--coral-ink) !important;
  color: #fff !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  line-height: 1.15;
  letter-spacing: 0;
  text-decoration: none !important;
  text-transform: none;
  text-shadow: none;
  box-shadow: 0 1px 2px rgba(196, 61, 87, .25), 0 10px 24px -12px rgba(196, 61, 87, .6);
  cursor: pointer;
  isolation: isolate;
  transition: transform .45s var(--ease);
}
.pc-order-page #moo_OnlineStoreContainer #moo-onlineStore-items .moo-btn-primary::before,
.pc-order-page .moo-shopping-cart-container .moo-shopping-cart .moo-checkout::before,
.pc-order-page .moo_emptycart span a.moo-btn::before,
.pc-order-page #moo_CheckoutContainer .sooCheckoutPrimaryButtonInput::before,
.pc-order-page #moo_CheckoutContainer #moo-checkout-form #moo-checkout-form-btnActions .moo-finalize-order-btn::before,
.pc-order-page #sooAuthSection .sooAuthContainer #moo-login-section .sooContinueAsGuestButton::before,
.pc-order-page #sooAuthSection .sooAuthContainer #moo-login-section .sooLoginButton::before,
.pc-order-page #sooMyOrdersContainer .sooCheckoutPrimaryButtonInput::before,
.pc-order-page #sooAuthSection .sooAuthContainer .sooCheckoutPrimaryButtonInput::before,
.pc-order-page #mooModalWindow .moo-modifiersPanel .mooModifier-addToCartBtn2::before,
.pc-order-page #mooModalWindow .moo-modifiersPanel .mooModifier-addToCartBtn::before,
.pc-order-page .swal2-container .swal2-popup:not(.swal2-loading) .swal2-actions .swal2-styled.swal2-confirm::before {
  content: "";
  position: absolute;
  inset: -2px;
  z-index: -1;
  background: var(--navy);
  border-radius: 45% 45% 0 0 / 30px 30px 0 0;
  transform: translate3d(0, 105%, 0);
  transition: transform .55s var(--ease);
}
.pc-order-page #moo_OnlineStoreContainer #moo-onlineStore-items .moo-btn-primary:is(:hover, :focus-visible)::before,
.pc-order-page .moo-shopping-cart-container .moo-shopping-cart .moo-checkout:is(:hover, :focus-visible)::before,
.pc-order-page .moo-shopping-cart-container .moo-shopping-cart a:focus-visible > .moo-checkout::before,
.pc-order-page .moo_emptycart span a.moo-btn:is(:hover, :focus-visible)::before,
.pc-order-page #moo_CheckoutContainer .sooCheckoutPrimaryButtonInput:is(:hover, :focus-visible)::before,
.pc-order-page #moo_CheckoutContainer #moo-checkout-form #moo-checkout-form-btnActions .moo-finalize-order-btn:is(:hover, :focus-visible)::before,
.pc-order-page #sooAuthSection .sooAuthContainer #moo-login-section .sooContinueAsGuestButton:is(:hover, :focus-visible)::before,
.pc-order-page #sooAuthSection .sooAuthContainer #moo-login-section .sooLoginButton:is(:hover, :focus-visible)::before,
.pc-order-page #sooMyOrdersContainer .sooCheckoutPrimaryButtonInput:is(:hover, :focus-visible)::before,
.pc-order-page #sooAuthSection .sooAuthContainer .sooCheckoutPrimaryButtonInput:is(:hover, :focus-visible)::before,
.pc-order-page #mooModalWindow .moo-modifiersPanel .mooModifier-addToCartBtn2:is(:hover, :focus-visible)::before,
.pc-order-page #mooModalWindow .moo-modifiersPanel .mooModifier-addToCartBtn:is(:hover, :focus-visible)::before,
.pc-order-page .swal2-container .swal2-popup:not(.swal2-loading) .swal2-actions .swal2-styled.swal2-confirm:is(:hover, :focus-visible)::before {
  transform: translate3d(0, 0, 0);
}
.pc-order-page #moo_OnlineStoreContainer #moo-onlineStore-items .moo-btn-primary:active,
.pc-order-page .moo-shopping-cart-container .moo-shopping-cart .moo-checkout:active,
.pc-order-page .moo_emptycart span a.moo-btn:active,
.pc-order-page #moo_CheckoutContainer .sooCheckoutPrimaryButtonInput:active,
.pc-order-page #moo_CheckoutContainer #moo-checkout-form #moo-checkout-form-btnActions .moo-finalize-order-btn:active,
.pc-order-page #sooAuthSection .sooAuthContainer #moo-login-section .sooContinueAsGuestButton:active,
.pc-order-page #sooAuthSection .sooAuthContainer #moo-login-section .sooLoginButton:active,
.pc-order-page #sooMyOrdersContainer .sooCheckoutPrimaryButtonInput:active,
.pc-order-page #sooAuthSection .sooAuthContainer .sooCheckoutPrimaryButtonInput:active,
.pc-order-page #mooModalWindow .moo-modifiersPanel .mooModifier-addToCartBtn2:active,
.pc-order-page #mooModalWindow .moo-modifiersPanel .mooModifier-addToCartBtn:active,
.pc-order-page .swal2-container .swal2-popup:not(.swal2-loading) .swal2-actions .swal2-styled.swal2-confirm:active {
  transform: scale(.97);
}
.pc-order-page #moo_CheckoutContainer .sooCheckoutPrimaryButtonInput:disabled,
.pc-order-page #moo_CheckoutContainer #moo-checkout-form #moo-checkout-form-btnActions .moo-finalize-order-btn:disabled {
  opacity: .55;
  cursor: progress;
  transform: none;
}

.pc-order-page .moo-shopping-cart-container .moo-shopping-cart .moo-continue-shopping,
.pc-order-page #moo_CheckoutContainer .sooCheckoutSecondaryButtonInput,
.pc-order-page #sooAuthSection .sooAuthContainer #moo-login-section .sooCreateAnAccountButton,
.pc-order-page #sooAuthSection .sooAuthContainer .sooCheckoutSecondaryButtonInput,
.pc-order-page #sooMyOrdersContainer .sooCheckoutSecondaryButtonInput,
.pc-order-page #mooModalWindow .moo-modifiersPanel .mooModifier-closeBtn,
.pc-order-page .swal2-container .swal2-popup .swal2-actions .swal2-styled.swal2-cancel {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: auto;
  min-height: 52px;
  padding: 12px 24px;
  border: 0 !important;
  border-radius: 999px !important;
  background: transparent !important;
  box-shadow: inset 0 0 0 2px var(--navy) !important;
  color: var(--navy) !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  line-height: 1.15;
  text-decoration: none !important;
  text-transform: none;
  cursor: pointer;
  transition: transform .45s var(--ease);
}
.pc-order-page .moo-shopping-cart-container .moo-shopping-cart .moo-continue-shopping:hover,
.pc-order-page #moo_CheckoutContainer .sooCheckoutSecondaryButtonInput:hover,
.pc-order-page #sooAuthSection .sooAuthContainer #moo-login-section .sooCreateAnAccountButton:hover,
.pc-order-page #sooAuthSection .sooAuthContainer .sooCheckoutSecondaryButtonInput:hover,
.pc-order-page #sooMyOrdersContainer .sooCheckoutSecondaryButtonInput:hover,
.pc-order-page #mooModalWindow .moo-modifiersPanel .mooModifier-closeBtn:hover,
.pc-order-page .swal2-container .swal2-popup .swal2-actions .swal2-styled.swal2-cancel:hover {
  background: var(--oc-picked) !important;
}
.pc-order-page .moo-shopping-cart-container .moo-shopping-cart .moo-continue-shopping:active,
.pc-order-page #moo_CheckoutContainer .sooCheckoutSecondaryButtonInput:active,
.pc-order-page #sooAuthSection .sooAuthContainer #moo-login-section .sooCreateAnAccountButton:active,
.pc-order-page #sooAuthSection .sooAuthContainer .sooCheckoutSecondaryButtonInput:active,
.pc-order-page #sooMyOrdersContainer .sooCheckoutSecondaryButtonInput:active,
.pc-order-page #mooModalWindow .moo-modifiersPanel .mooModifier-closeBtn:active,
.pc-order-page .swal2-container .swal2-popup .swal2-actions .swal2-styled.swal2-cancel:active {
  transform: scale(.97);
}

/* =========================================================
   Fields: text boxes, selects, text areas
   ========================================================= */
.pc-order-page #moo_CheckoutContainer .sooCheckoutTextInput,
.pc-order-page #sooAuthSection .sooAuthContainer .sooCheckoutTextInput,
.pc-order-page #sooMyOrdersContainer .sooCheckoutTextInput,
.pc-order-page .moo-shopping-cart-container .moo-product .moo-product-quantity input,
.pc-order-page .swal2-container .swal2-popup .moo-form-control:is(.swal2-input, .swal2-select, .swal2-textarea) {
  height: var(--oc-field-h);
  padding: 10px 14px;
  border: 1.5px solid var(--oc-line-strong);
  border-radius: var(--oc-radius-field);
  background: #fff;
  box-shadow: none;
  color: var(--navy);
  font-size: 16px;
  line-height: 1.3;
}
.pc-order-page #moo_CheckoutContainer textarea.sooCheckoutTextInput,
.pc-order-page .swal2-container .swal2-popup .swal2-textarea {
  height: auto;
  min-height: 112px;
  resize: vertical;
}
.pc-order-page #moo_CheckoutContainer .sooCheckoutTextInput:hover,
.pc-order-page #sooAuthSection .sooAuthContainer .sooCheckoutTextInput:hover,
.pc-order-page #sooMyOrdersContainer .sooCheckoutTextInput:hover,
.pc-order-page .moo-shopping-cart-container .moo-product .moo-product-quantity input:hover,
.pc-order-page .swal2-container .swal2-popup .moo-form-control:is(.swal2-input, .swal2-select, .swal2-textarea):hover {
  border-color: var(--navy);
}
.pc-order-page #moo_CheckoutContainer .sooCheckoutTextInput:focus,
.pc-order-page #sooAuthSection .sooAuthContainer .sooCheckoutTextInput:focus,
.pc-order-page #sooMyOrdersContainer .sooCheckoutTextInput:focus,
.pc-order-page .moo-shopping-cart-container .moo-product .moo-product-quantity input:focus,
.pc-order-page .swal2-container .swal2-popup .moo-form-control:is(.swal2-input, .swal2-select, .swal2-textarea):focus {
  border-color: var(--coral-ink);
  outline: none;
  box-shadow: 0 0 0 3px rgba(196, 61, 87, .22);
}
.pc-order-page #moo_CheckoutContainer .sooCheckoutTextInput[disabled] { background: var(--sand); border-color: var(--oc-line); }
.pc-order-page :is(#moo_CheckoutContainer, #sooAuthSection, #sooMyOrdersContainer) .moo-error-section {
  color: var(--coral-ink);
  font-size: 14px;
  font-weight: 500;
}
.pc-order-page :is(#moo_CheckoutContainer, #sooAuthSection, #sooMyOrdersContainer) .moo-form-group > label,
.pc-order-page #moo_CheckoutContainer #moo-checkout-form label:is(.moo-checkoutText-fullName, .moo-checkoutText-email, .moo-checkoutText-phoneNumber) {
  margin-bottom: 6px;
  color: var(--navy);
  font-size: 14px;
  font-weight: 600;
}

/* =========================================================
   Choice pop-up (the plugin's sooModifiersSelector: #mooModalWindow > #mooModal)
   ========================================================= */
.pc-order-page #mooModalWindow {
  background-color: rgba(11, 30, 45, .72);
  backdrop-filter: blur(3px);
  transition: none;
  overscroll-behavior: contain;
}
.pc-order-page #mooModalWindow #mooModal {
  top: 32px;
  margin-bottom: 32px;
  grid-template-rows: auto auto;
  border-radius: 26px;
  background-color: var(--cream);
  color: var(--navy);
  box-shadow: var(--oc-shadow-float);
}
@media (min-width: 768px) {
  .pc-order-page #mooModalWindow #mooModal { width: min(900px, 100vw - 64px); margin-inline: auto; left: 0; right: 0; }
}
@media (max-width: 767px) {
  .pc-order-page #mooModalWindow #mooModal { top: 12px; width: calc(100vw - 16px); margin: 0 8px 12px; border-radius: 22px; }
}
.pc-order-page #mooModalWindow #mooModal > .mooModalHeader {
  align-items: center;
  gap: 12px;
  padding: 16px 16px 16px 24px;
  background-color: var(--navy) !important;
  color: var(--cream) !important;
}
.pc-order-page #mooModalWindow #mooModal > .mooModalHeader h4 {
  color: var(--cream);
  font-family: var(--font-display) !important;
  font-size: 1.45rem;
  font-weight: 750;
  line-height: 1.15;
  letter-spacing: -.015em;
  font-variation-settings: "SOFT" 100, "opsz" 72;
}
.pc-order-page #mooModalWindow #mooModal > .mooModalHeader .icon-close {
  flex: none;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  box-shadow: inset 0 0 0 2px rgba(255, 250, 245, .4);
  color: var(--cream);
  font-family: var(--font-body) !important;
  font-size: 16px;
  transition: transform .4s var(--ease-back);
}
.pc-order-page #mooModalWindow #mooModal > .mooModalHeader .icon-close:hover { background: var(--cream); color: var(--navy); transform: scale(1.06); }
.pc-order-page #mooModalWindow #mooModal > .mooModalHeader .icon-close:active { transform: scale(.94); }

.pc-order-page #mooModalWindow .moo-modifiersPanel {
  padding: 24px;
  background: var(--cream);
}
@media (max-width: 767px) {
  .pc-order-page #mooModalWindow .moo-modifiersPanel { padding: 16px 12px 20px; }
}
.pc-order-page #mooModalWindow .moo-modifiersPanel .mooModifierGroup { margin-bottom: 24px; }
.pc-order-page #mooModalWindow .moo-modifiersPanel .mooModifierGroup .mooModifiers-title {
  display: block;
  min-height: 44px;
  padding: 4px 44px 12px 4px;
  position: relative;
  color: var(--navy);
  font-family: var(--font-display) !important;
  font-size: 1.2rem;
  font-weight: 750;
  line-height: 1.25;
  letter-spacing: -.01em;
  font-variation-settings: "SOFT" 100, "opsz" 48;
}
.pc-order-page #mooModalWindow .moo-modifiersPanel .mooModifierGroup .mooModifiers-title:hover { color: var(--teal); }
.pc-order-page #mooModalWindow .moo-modifiersPanel .mooModifierGroup .mooModifiers-title:active > span:first-child { transform: scale(.9); }
.pc-order-page #mooModalWindow .moo-modifiersPanel .mooModifierGroup .mooModifiers-title > span:first-child {
  position: absolute;
  top: 2px;
  right: 4px;
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  margin: 0;
  border-radius: 50%;
  background: var(--oc-picked);
  color: var(--navy);
  font-family: var(--font-body) !important;
  font-size: 20px;
  font-weight: 600;
  line-height: 1;
  transition: transform .35s var(--ease-back);
}
.pc-order-page #mooModalWindow .moo-modifiersPanel .mooModifierGroup .mooModifiers-title .mooModifiers-title-span {
  display: block;
  margin-top: 2px;
  color: var(--oc-muted);
  font-size: 14px !important;
  font-weight: 500;
  letter-spacing: 0;
}
.pc-order-page #mooModalWindow .moo-modifiersPanel .mooModifierGroup .mooModifiers-wrapper {
  border: 0;
  border-radius: 16px;
  background-color: var(--oc-card);
  box-shadow: 0 0 0 1.5px var(--oc-line), 0 8px 20px -16px rgba(11, 30, 45, .35);
}
.pc-order-page #mooModalWindow .moo-modifiersPanel .mooModifierGroup .sooModifierLine {
  display: flex;
  align-items: center;
  min-height: 52px;
  margin: 0;
  padding: 0 12px 0 4px;
  border-top: 1px solid var(--oc-line);
  background: transparent;
  line-height: 1.3;
}
.pc-order-page #mooModalWindow .moo-modifiersPanel .mooModifierGroup .sooModifierLine:first-child { border-top: 0; }
.pc-order-page #mooModalWindow .moo-modifiersPanel .mooModifierGroup .sooModifierLine:hover { background: var(--oc-hover); }
.pc-order-page #mooModalWindow .moo-modifiersPanel .mooModifierGroup .sooModifierLine:active { background: var(--oc-picked); }
.pc-order-page #mooModalWindow .moo-modifiersPanel .mooModifierGroup .sooModifierLine.mooModifier-checked {
  background: var(--oc-picked) !important;
  box-shadow: inset 4px 0 0 var(--navy);
}
.pc-order-page #mooModalWindow .moo-modifiersPanel .mooModifierGroup .sooModifierLine.mooModifier-disabled { opacity: .45 !important; }
.pc-order-page #mooModalWindow .moo-modifiersPanel .mooModifierGroup .sooModifierLine > [class*="moo-col-"] {
  float: none;
  width: auto;
  min-height: 0;
  padding-inline: 8px;
}
.pc-order-page #mooModalWindow .moo-modifiersPanel .mooModifierGroup .sooModifierLine > [class*="moo-col-"]:nth-child(2) { flex: 0 0 auto; display: flex; align-items: center; }
.pc-order-page #mooModalWindow .moo-modifiersPanel .mooModifierGroup .mooModifierCheckbox {
  width: 20px;
  height: 20px;
  margin: 0;
  accent-color: var(--coral-ink);
}
.pc-order-page #mooModalWindow .moo-modifiersPanel .mooModifierGroup .mooModifier-name {
  flex: 1 1 0;
  min-width: 0;
  padding-top: 13px !important;
  padding-bottom: 13px !important;
  color: var(--navy);
  font-family: var(--font-body) !important;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.3 !important;
}
.pc-order-page #mooModalWindow .moo-modifiersPanel .mooModifierGroup .mooModifier-price {
  flex: 0 0 auto;
  min-width: 0;
  color: var(--coral-ink);
  font-family: var(--font-body) !important;
  font-size: 15px;
  font-weight: 700;
  text-align: right;
  font-variant-numeric: tabular-nums;
}
.pc-order-page #mooModalWindow .moo-modifiersPanel .mooModifierGroup .mooModifier-price:empty { display: none; }
/* The column that holds the quantity stepper. The plugin floats the stepper over the row; here it
   sits in the row instead (still above the row's click layer), and on phones it takes its own line. */
.pc-order-page #mooModalWindow .moo-modifiersPanel .mooModifierGroup .sooModifierLine > [class*="moo-col-"]:last-child {
  flex: 0 0 auto;
  padding: 0;
}
.pc-order-page #mooModalWindow .moo-modifiersPanel .mooModifierGroup .mooModifierLine-QtyContainer[style*="block"] {
  position: relative;
  top: auto;
  right: auto;
  display: flex !important;
  align-items: center;
  height: auto !important;
  margin: 0 0 0 8px;
}
.pc-order-page #mooModalWindow .moo-modifiersPanel .mooModifierGroup .mooModifierLine-QtyContainer :is(.moo-input-group-btn, .input-group-btn) {
  float: none;
  display: block;
}
@media (max-width: 767px) {
  .pc-order-page #mooModalWindow .moo-modifiersPanel .mooModifierGroup .sooModifierLine { flex-wrap: wrap; }
  .pc-order-page #mooModalWindow .moo-modifiersPanel .mooModifierGroup .sooModifierLine > [class*="moo-col-"]:last-child:has(.mooModifierLine-QtyContainer[style*="block"]) {
    display: flex;
    flex: 1 0 100%;
    justify-content: flex-end;
    padding: 0 0 12px;
  }
}
.pc-order-page #mooModalWindow .moo-modifiersPanel .mooModifierGroup .mooOpBtn {
  display: grid !important;
  place-items: center;
  width: 34px !important;
  height: 34px !important;
  margin-top: 0 !important;
  border: 1.5px solid var(--oc-line-strong) !important;
  border-radius: 10px !important;
  background: #fff !important;
  color: var(--navy) !important;
  font-size: 18px;
  font-weight: 600;
  line-height: 1 !important;
  cursor: pointer;
  transition: transform .3s var(--ease-back);
}
.pc-order-page #mooModalWindow .moo-modifiersPanel .mooModifierGroup .mooOpBtn:hover { background: var(--navy) !important; color: var(--cream) !important; border-color: var(--navy) !important; }
.pc-order-page #mooModalWindow .moo-modifiersPanel .mooModifierGroup .mooOpBtn:active { transform: scale(.9); }
.pc-order-page #mooModalWindow .moo-modifiersPanel .mooModifierGroup .mooInputQty {
  width: 40px !important;
  height: 34px !important;
  margin: 0 4px !important;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
  color: var(--navy);
  font-size: 16px;
  font-weight: 700;
  line-height: 34px !important;
}
/* Add to cart / Cancel under the choices */
.pc-order-page #mooModalWindow .moo-modifiersPanel form {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}
.pc-order-page #mooModalWindow .moo-modifiersPanel form > .moo-row { flex: 1 1 100%; margin: 0; }
.pc-order-page #mooModalWindow .moo-modifiersPanel .mooModifier-addToCartBtn2,
.pc-order-page #mooModalWindow .moo-modifiersPanel .mooModifier-closeBtn {
  flex: 1 1 200px;
  width: auto !important;
  margin: 0;
}
.pc-order-page #mooModalWindow .moo-modifiersPanel .mooModifier-addToCartBtn2 { order: 2; }
.pc-order-page #mooModalWindow .moo-modifiersPanel .mooModifier-closeBtn { order: 1; }

/* =========================================================
   The plugin's SweetAlert messages (quantity, added to cart, errors, the store announcement)
   ========================================================= */
.pc-order-page .swal2-container.swal2-shown { background-color: rgba(11, 30, 45, .66); }
.pc-order-page .swal2-container .swal2-popup {
  width: min(30em, 100vw - 24px);
  padding: 32px 28px 28px;
  border-radius: 26px;
  background: var(--cream);
  color: var(--navy);
  box-shadow: var(--oc-shadow-float);
}
.pc-order-page .swal2-container .swal2-popup .swal2-title {
  margin: 0 0 8px;
  color: var(--navy);
  font-family: var(--font-display) !important;
  font-size: 1.6rem;
  font-weight: 800;
  line-height: 1.12;
  letter-spacing: -.02em;
  font-variation-settings: "SOFT" 100, "opsz" 72;
  text-wrap: balance;
}
/* .swal2-content is SweetAlert2 up to v9 (the store and cart pages); the checkout loads SweetAlert2 v11, which
   puts the message text in .swal2-html-container instead (the store announcement there, when it has text). */
.pc-order-page .swal2-container .swal2-popup .swal2-content,
.pc-order-page .swal2-container .swal2-popup .swal2-html-container {
  color: var(--oc-muted);
  font-size: 16px;
  line-height: 1.55;
}
.pc-order-page .swal2-container .swal2-popup.swal2-loading :is(.swal2-content, .swal2-html-container) { color: var(--navy); font-size: 1.2rem; font-weight: 600; }
.pc-order-page .swal2-container .swal2-popup .swal2-select { width: 100%; margin: 16px 0 4px; }
.pc-order-page .swal2-container .swal2-popup .swal2-input { margin: 16px 0 4px; }
.pc-order-page .swal2-container .swal2-popup .swal2-validation-message { background: var(--blush-soft); color: var(--coral-ink); border-radius: var(--oc-radius-field); }
.pc-order-page .swal2-container .swal2-popup .swal2-actions {
  gap: 12px;
  width: 100%;
  margin: 24px 0 0;
}
.pc-order-page .swal2-container .swal2-popup .swal2-actions .swal2-styled { flex: 1 1 140px; margin: 0; }
.pc-order-page .swal2-container .swal2-popup .swal2-actions .swal2-styled.swal2-confirm { order: 2; }
.pc-order-page .swal2-container .swal2-popup .swal2-actions .swal2-styled.swal2-cancel { order: 1; }
.pc-order-page .swal2-container .swal2-popup.swal2-loading .swal2-actions .swal2-styled { flex: none; }
.pc-order-page .swal2-container .swal2-popup .swal2-close {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  color: var(--navy);
  transition: transform .4s var(--ease-back);
}
.pc-order-page .swal2-container .swal2-popup .swal2-close:hover { background: var(--oc-picked); color: var(--navy); transform: scale(1.06); }
.pc-order-page .swal2-container .swal2-popup .swal2-close:active { transform: scale(.94); }

/* =========================================================
   Closed store and empty cart
   ========================================================= */
.pc-order-page .order-shell .moo-alert {
  margin: 0 0 24px;
  padding: 18px 20px;
  border: 0;
  border-radius: 16px;
  background: var(--blush-soft);
  box-shadow: inset 4px 0 0 var(--coral-ink);
  color: var(--navy);
  font-size: 17px;
  font-weight: 500;
  line-height: 1.5;
  text-align: center;
  text-shadow: none;
}
.pc-order-page .order-shell .moo-alert strong { color: var(--navy); font-weight: 700; }
.pc-order-page .order-shell .moo-alert p { margin: 6px 0 0; }
.pc-order-page .order-shell .moo_emptycart { margin: 16px 0 24px; text-align: center; }
.pc-order-page .order-shell .moo_emptycart p {
  margin-bottom: 20px;
  color: var(--navy);
  font-family: var(--font-display) !important;
  font-size: 1.6rem;
  font-weight: 750;
  letter-spacing: -.015em;
  font-variation-settings: "SOFT" 100, "opsz" 72;
}
.pc-order-page .moo_emptycart span a.moo-btn { margin-top: 0 !important; }

/* =========================================================
   Cart page head (theme 0.10.0; page-templates/order.php): the ID reminder above the cart and, while
   "Order online" goes to the Order online page, "Keep ordering". The reminder is the Order online page's
   .pickup-note (site.css), so it reads the same on both pages. Phones: under the heading, the button on
   its own line. Wide screens: beside the heading, on the line of the word "Cart".
   ========================================================= */
.pc-order-page .order-head.order-head-cart {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
}
.pc-order-page .order-head-cart .order-cart-aside {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 16px;
  margin-top: 1.25rem;
}
/* Room for the sentence on one line where there is space (site.css holds it to 42ch beside the Order online
   page's paragraph). */
.pc-order-page .order-head-cart .order-cart-aside .pickup-note { flex: 0 1 auto; max-width: 40em; }
.pc-order-page .order-head-cart .order-keep { flex: none; }
@media (min-width: 900px) {
  /* The heading's column never gets narrower than its longest word; the reminder wraps first. */
  .pc-order-page .order-head.order-head-cart {
    grid-template-columns: minmax(min-content, 1fr) auto;
    align-items: end;
    column-gap: 32px;
  }
  .pc-order-page .order-head-cart > :not(.order-cart-aside) { grid-column: 1; }
  .pc-order-page .order-head-cart .order-cart-aside {
    grid-column: 2;
    grid-row: 1 / span 2;
    justify-content: flex-end;
    margin-top: 0;
  }
}

/* =========================================================
   Cart page (moo_cart)
   ========================================================= */
.pc-order-page .moo-shopping-cart-container .moo-shopping-cart {
  padding: 0;
  background: transparent;
  color: var(--navy);
  font-size: 16px;
  line-height: 1.5;
}
.pc-order-page .moo-shopping-cart-container .moo-shopping-cart .moo-column-labels {
  margin-bottom: 16px;
  border-bottom: 1.5px solid var(--oc-line);
}
.pc-order-page .moo-shopping-cart-container .moo-shopping-cart .moo-column-labels label {
  margin-bottom: 0;
  padding-bottom: 12px;
  border-bottom: 0;
  color: var(--oc-muted);
  font-size: 14px;
  font-weight: 600;
}
.pc-order-page .moo-shopping-cart-container .moo-shopping-cart .moo-product {
  margin-bottom: 16px;
  padding: 0 0 16px;
  border-bottom: 1px solid var(--oc-line);
}
.pc-order-page .moo-shopping-cart-container .moo-shopping-cart .moo-product .moo-product-image { text-align: left; }
.pc-order-page .moo-shopping-cart-container .moo-shopping-cart .moo-product .moo-product-image img {
  width: 88px;
  height: 88px;
  border-radius: 16px;
  object-fit: cover;
  box-shadow: 0 0 0 1px var(--oc-line);
}
.pc-order-page .moo-shopping-cart-container .moo-shopping-cart .moo-product .moo-product-details .moo-product-title {
  margin: 0 20px 4px 0;
  color: var(--navy);
  font-family: var(--font-display) !important;
  font-size: 1.25rem;
  font-weight: 750;
  line-height: 1.2;
  letter-spacing: -.01em;
  font-variation-settings: "SOFT" 100, "opsz" 48;
}
.pc-order-page .moo-shopping-cart-container .moo-shopping-cart .moo-product .moo-product-details .moo-product-description {
  margin: 0 20px 0 0;
  color: var(--oc-muted);
  font-size: 15px;
  line-height: 1.55;
}
.pc-order-page .moo-shopping-cart-container .moo-shopping-cart .moo-product :is(.moo-product-price, .moo-product-line-price) {
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}
.pc-order-page .moo-shopping-cart-container .moo-shopping-cart .moo-product .moo-product-quantity input {
  width: 64px !important;
  text-align: center;
  font-weight: 600;
}
.pc-order-page .moo-shopping-cart-container .moo-shopping-cart .moo-product .moo-remove-product {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 0 14px;
  border-radius: 999px;
  background: transparent;
  box-shadow: inset 0 0 0 1.5px rgba(196, 61, 87, .45);
  color: var(--coral-ink) !important;
  font-size: 14px;
  font-weight: 600;
  line-height: 1;
  transition: transform .35s var(--ease);
}
.pc-order-page .moo-shopping-cart-container .moo-shopping-cart .moo-product .moo-remove-product:hover { background: var(--blush-soft); }
.pc-order-page .moo-shopping-cart-container .moo-shopping-cart .moo-product .moo-remove-product:active { transform: scale(.95); }
.pc-order-page .moo-shopping-cart-container .moo-shopping-cart .moo-totals { padding-top: 4px; }
.pc-order-page .moo-shopping-cart-container .moo-shopping-cart .moo-totals > a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  color: var(--oc-muted) !important;
  font-size: 15px;
  font-weight: 500;
  text-decoration: underline;
  text-underline-offset: 4px;
}
.pc-order-page .moo-shopping-cart-container .moo-shopping-cart .moo-totals > a:hover { color: var(--coral-ink) !important; }
.pc-order-page .moo-shopping-cart-container .moo-shopping-cart .moo-totals .moo-totals-item { padding: 3px 0; }
.pc-order-page .moo-shopping-cart-container .moo-shopping-cart .moo-totals .moo-totals-item label { color: var(--oc-muted); font-weight: 500; }
.pc-order-page .moo-shopping-cart-container .moo-shopping-cart .moo-totals .moo-totals-value { font-weight: 600; font-variant-numeric: tabular-nums; }
.pc-order-page .moo-shopping-cart-container .moo-shopping-cart .moo-totals .moo-totals-item-total {
  margin-top: 8px;
  padding-top: 10px;
  border-top: 1.5px solid var(--oc-line);
}
.pc-order-page .moo-shopping-cart-container .moo-shopping-cart .moo-totals .moo-totals-item-total :is(label, .moo-totals-value) {
  color: var(--navy);
  font-family: var(--font-display) !important;
  font-size: 1.35rem;
  font-weight: 800;
  letter-spacing: -.01em;
  font-variation-settings: "SOFT" 100, "opsz" 72;
}
.pc-order-page .moo-shopping-cart-container .moo-shopping-cart .moo-checkout { margin-top: 24px; min-width: 200px; }
.pc-order-page .moo-shopping-cart-container .moo-shopping-cart .moo-continue-shopping { margin-top: 24px; }
.pc-order-page .moo-shopping-cart-container .moo-shopping-cart > a { text-decoration: none; }
.pc-order-page .moo-shopping-cart-container .moo-shopping-cart > a:focus-visible { outline: 0 !important; }
.pc-order-page .moo-shopping-cart-container .moo-shopping-cart > a:focus-visible > button { outline: var(--oc-focus); outline-offset: 3px; }
@media screen and (max-width: 650px) {
  .pc-order-page .moo-shopping-cart-container .moo-shopping-cart { border-top: 0; }
  .pc-order-page .moo-shopping-cart-container .moo-shopping-cart .moo-product .moo-product-image img { width: 72px; height: 72px; margin: 0 0 8px 12px; }
  .pc-order-page .moo-shopping-cart-container .moo-shopping-cart .moo-product .moo-product-price { line-height: 48px; }
  .pc-order-page .moo-shopping-cart-container .moo-shopping-cart .moo-product .moo-product-quantity { display: flex; align-items: center; gap: 10px; width: auto; margin-right: 12px; }
  .pc-order-page .moo-shopping-cart-container .moo-shopping-cart .moo-product .moo-product-quantity::before { color: var(--oc-muted); }
  .pc-order-page .moo-shopping-cart-container .moo-shopping-cart .moo-product .moo-product-quantity input { margin-left: 0; }
  .pc-order-page .moo-shopping-cart-container .moo-shopping-cart .moo-product .moo-product-line-price { margin-top: 6px; font-size: 17px; }
  .pc-order-page .moo-shopping-cart-container .moo-shopping-cart > a { display: block; clear: both; }
  .pc-order-page .moo-shopping-cart-container .moo-shopping-cart :is(.moo-checkout, .moo-continue-shopping) {
    float: none;
    width: 100%;
    margin-top: 12px;
  }
  .pc-order-page .moo-shopping-cart-container .moo-shopping-cart .moo-checkout { margin-top: 24px; }
}

/* ---------- a cart line with no photo (theme 0.10.1) ----------
   The plugin prints every line's photo as <img alt="Item image">, also when the item has none (an empty
   address, or its own grey "no image" picture) and when the photo is gone (a 404, like the live site's
   2 Scoops photo), which showed as a broken picture with the words "Item image". Those boxes hide the picture
   and show the site's empty tile instead, the size of a photo, so the line's columns stay where they are.
   assets/js/order-photos.js marks a photo that fails to load with pc-photo-none; an empty or missing address and
   the plugin's stand-in are caught here too, before any script runs. Photos that load are unchanged. The
   plugin's cart script never draws a photo again (sooCartPage.min.js only changes prices, removes lines and
   shows the empty-cart message), so the tiles stay right after a quantity change or a Remove. */
.pc-order-page .moo-shopping-cart-container .moo-shopping-cart .moo-product .moo-product-image:is(.pc-photo-none, :has(> img:is(:not([src]), [src=""], [src$="/public/img/no-image.jpg"]))) > img { display: none; }
.pc-order-page .moo-shopping-cart-container .moo-shopping-cart .moo-product .moo-product-image:is(.pc-photo-none, :has(> img:is(:not([src]), [src=""], [src$="/public/img/no-image.jpg"])))::before {
  content: "";
  display: block;
  width: 88px;
  height: 88px;
  border-radius: 16px;
  /* the site's fish (template-parts/sprite.php #fish-mono), in mint on pale mint */
  background: var(--mint-pale) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1080 855'%3E%3Cpath fill='%2392D9CB' d='M2 160 203 294 640 3 1078 294V562L640 852 203 562 2 695Z'/%3E%3Ccircle cx='876' cy='296' r='39' fill='%23E9F8F4'/%3E%3C/svg%3E") center / auto 40% no-repeat;
  box-shadow: 0 0 0 1px var(--oc-line);
}
@media screen and (max-width: 650px) {
  .pc-order-page .moo-shopping-cart-container .moo-shopping-cart .moo-product .moo-product-image:is(.pc-photo-none, :has(> img:is(:not([src]), [src=""], [src$="/public/img/no-image.jpg"])))::before { width: 72px; height: 72px; margin: 0 0 8px 12px; }
}

/* =========================================================
   Checkout (moo_checkout) and the sign-in screens shared with My Orders (#sooAuthSection)
   ========================================================= */
.pc-order-page #moo_CheckoutContainer { color: var(--navy); }

/* sign in / guest. The plugin's rules here start "#sooAuthSection .sooAuthContainer #moo-login-section",
   so these copy that chain. */
.pc-order-page #sooAuthSection { color: var(--navy); }
.pc-order-page #sooAuthSection .sooAuthContainer #moo-login-section .login-top-section { margin-bottom: 8px; }
.pc-order-page #sooAuthSection .sooAuthContainer #moo-login-section .login-top-section .login-header,
.pc-order-page #sooAuthSection .sooAuthContainer #moo-login-section div.moo-row.login-top-section > div.login-header > a,
.pc-order-page #sooAuthSection .sooAuthContainer #moo-login-section .sooLoginTitle {
  color: var(--navy);
  font-family: var(--font-display) !important;
  font-size: 1.45rem;
  font-weight: 750;
  line-height: 1.2;
  letter-spacing: -.015em;
  text-decoration: none;
  font-variation-settings: "SOFT" 100, "opsz" 72;
}
.pc-order-page #sooAuthSection .sooAuthContainer #moo-login-section .sooLoginTitle > div { font: inherit; }
.pc-order-page #sooAuthSection .sooAuthContainer #moo-login-section .login-top-section ul li { color: var(--oc-muted); }
.pc-order-page #sooAuthSection .sooAuthContainer #moo-login-section .login-social-section,
.pc-order-page #sooAuthSection .sooAuthContainer #moo-login-section .login-social-section p { color: var(--navy); font-size: 17px; }
.pc-order-page #sooAuthSection .sooAuthContainer #moo-login-section :is(.sooContinueAsGuestButton, .sooCreateAnAccountButton, .sooLoginButton) { width: 100%; margin-top: 12px; }
/* two filled buttons sit side by side here: "Continue As Guest" stays coral, "Log In" is navy */
.pc-order-page #sooAuthSection .sooAuthContainer #moo-login-section .sooLoginButton {
  background: var(--navy) !important;
  color: var(--cream) !important;
  box-shadow: 0 1px 2px rgba(22, 52, 78, .25), 0 10px 24px -12px rgba(22, 52, 78, .6);
}
.pc-order-page #sooAuthSection .sooAuthContainer #moo-login-section .sooLoginButton::before { background: var(--teal); }
.pc-order-page #sooAuthSection .sooAuthContainer #moo-login-section .hr-or { border-color: var(--oc-line-strong); background-color: var(--oc-line-strong); }
.pc-order-page #sooAuthSection .sooAuthContainer #moo-login-section .span-or,
.pc-order-page #sooAuthSection .sooAuthContainer #moo-login-section .login-separator,
.pc-order-page #sooAuthSection .sooAuthContainer #moo-login-section .login-separator > .separator > span { background-color: var(--cream); color: var(--oc-muted); }
.pc-order-page #sooAuthSection .sooAuthContainer #moo-login-section #moo-login-form :is(.sooForgetPasswordButton, .sooSignUpLinkButton),
.pc-order-page #sooAuthSection .sooAuthContainer #moo-signing-section :is(.sooLoginLinkButton, .sooTosLinkButton),
.pc-order-page #moo_CheckoutContainer #moo-checkout-form .moo-checkout-form-leftside #moo-checkout-form-customer #moo-checkout-contact-form .soo-contact-login {
  display: inline-block;
  padding: 10px 0;
  color: var(--coral-ink);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 4px;
}
.pc-order-page #sooAuthSection .sooAuthContainer #moo-login-section #moo-login-form :is(.sooForgetPasswordButton, .sooSignUpLinkButton):is(:hover, :visited:hover),
.pc-order-page #sooAuthSection .sooAuthContainer #moo-signing-section :is(.sooLoginLinkButton, .sooTosLinkButton):hover,
.pc-order-page #moo_CheckoutContainer #moo-checkout-form .moo-checkout-form-leftside #moo-checkout-form-customer #moo-checkout-contact-form .soo-contact-login:hover { color: var(--navy); }
.pc-order-page #sooAuthSection .sooAuthContainer .sooBorderedArea {
  padding: 24px;
  border: 0;
  border-radius: var(--oc-radius-card);
  background: var(--oc-card);
  box-shadow: 0 0 0 1px var(--oc-line), var(--oc-shadow);
}
.pc-order-page #sooAuthSection .sooAuthContainer .moo-error-section { color: var(--coral-ink); }

/* the form: one white card on the left, the order summary card on the right */
.pc-order-page #moo_CheckoutContainer #moo-checkout-form .moo-checkout-form-leftside {
  padding: 8px 24px 24px;
  border: 0;
  border-radius: var(--oc-radius-card);
  background-color: var(--oc-card);
  box-shadow: 0 0 0 1px var(--oc-line), var(--oc-shadow);
}
@media (max-width: 767px) {
  .pc-order-page #moo_CheckoutContainer #moo-checkout-form .moo-checkout-form-leftside { padding: 4px 16px 20px; }
}
.pc-order-page #moo_CheckoutContainer #moo-checkout-form .moo-checkout-form-leftside .moo-checkout-bloc-title,
.pc-order-page #moo_CheckoutContainer #moo-checkout-form .moo-checkout-form-leftside .moo-checkout-bloc-title > label {
  padding-top: 18px;
  color: var(--navy);
  font-family: var(--font-display) !important;
  font-size: 1.3rem;
  font-weight: 750;
  line-height: 1.2;
  letter-spacing: -.01em;
  font-variation-settings: "SOFT" 100, "opsz" 48;
}
.pc-order-page #moo_CheckoutContainer #moo-checkout-form .moo-checkout-form-leftside .moo-checkout-bloc-title > label { padding-top: 0; }
.pc-order-page #moo_CheckoutContainer #moo-checkout-form .moo-checkout-form-leftside .moo_checkout_border_bottom {
  margin: 12px -24px 0;
  border-bottom: 1px solid var(--oc-line);
}
@media (max-width: 767px) {
  .pc-order-page #moo_CheckoutContainer #moo-checkout-form .moo-checkout-form-leftside .moo_checkout_border_bottom { margin-inline: -16px; }
}
.pc-order-page #moo_CheckoutContainer #moo-checkout-form .moo-checkout-bloc-content { color: var(--navy); }
.pc-order-page #moo_CheckoutContainer #moo-checkout-form .moo-special-instruction-title { margin-bottom: 8px; color: var(--oc-muted); font-size: 14px; }
.pc-order-page #moo_CheckoutContainer #moo-checkout-form .moo-checkout-form-leftside #moo-checkout-form-customer .moo-form-group { margin-bottom: 14px; }

/* pickup or delivery, payment method: round radios in the coral */
.pc-order-page #moo_CheckoutContainer #moo-checkout-form .moo-checkout-form-leftside :is(#moo-checkout-form-ordertypes, #moo-checkout-form-payments) .moo-checkout-radio-input-label,
.pc-order-page #moo_CheckoutContainer #moo-checkout-form .moo-checkout-form-leftside :is(#moo-checkout-form-ordertypes, #moo-checkout-form-payments) label {
  color: var(--navy);
  font-size: 16px;
  font-weight: 500;
}
.pc-order-page #moo_CheckoutContainer #moo-checkout-form .moo-checkout-form-leftside :is(#moo-checkout-form-ordertypes, #moo-checkout-form-payments) .soo-checkout-radio-input {
  border: 1.5px solid var(--oc-line-strong);
  accent-color: var(--coral-ink);
}
.pc-order-page #moo_CheckoutContainer #moo-checkout-form .moo-checkout-form-leftside :is(#moo-checkout-form-ordertypes, #moo-checkout-form-payments) .soo-checkout-radio-input:checked {
  border: 7px solid var(--coral-ink);
  background-image: none;
}
.pc-order-page #moo_CheckoutContainer #moo-checkout-form .moo-checkout-form-leftside :is(#moo-checkout-form-ordertypes, #moo-checkout-form-payments) :is(.moo-checkout-radio-input, input[type="radio"]) { accent-color: var(--coral-ink); }
.pc-order-page #moo_CheckoutContainer #moo-checkout-form .moo-checkout-form-leftside #moo-checkout-form-ordertypes .soo-address-section :is(.soo-add-delivery-address-form, .soo-list-of-addresses) {
  border: 1.5px solid var(--oc-line);
  border-radius: 16px;
}
.pc-order-page #moo_CheckoutContainer #moo-checkout-form .moo-checkout-form-leftside #moo-checkout-form-ordertypes .soo-address-section .soo-list-of-addresses .soo-addresses-wrapper .soo-selected {
  background: var(--oc-picked);
  border-color: var(--navy);
}
/* Clover's card fields: the boxes around Clover's secure frames (the frames themselves are Clover's) */
.pc-order-page #moo_CheckoutContainer #moo-checkout-form .moo-checkout-form-leftside #moo-checkout-form-payments #moo-cloverCreditCardPanel :is(#moo_CloverCardNumber, #moo_CloverCardDate, #moo_CloverCardCvv, #moo_CloverCardName, #moo_CloverCardZip, #moo_CloverCardPostalCode) {
  border-color: var(--oc-line-strong);
  border-radius: var(--oc-radius-field);
  background: #fff;
}
.pc-order-page #moo_CheckoutContainer #moo-checkout-form .moo-checkout-form-leftside #moo-checkout-form-payments .clover-error { color: var(--coral-ink); }

/* marketing opt-in: the plugin hides the real checkbox and draws its own circle */
.pc-order-page #moo_CheckoutContainer .soo-marketing-checkbox { margin-left: 15px; padding-left: 0; }
.pc-order-page #moo_CheckoutContainer .soo-marketing-checkbox .soo-marketing-checkmark { border-color: var(--oc-line-strong); }
.pc-order-page #moo_CheckoutContainer .soo-marketing-checkbox input[type=checkbox]:checked + .soo-marketing-checkmark { background-color: var(--navy); border-color: var(--navy); }
.pc-order-page #moo_CheckoutContainer .soo-marketing-checkbox .soo-marketing-label { color: var(--oc-muted); font-size: 15px; }

/* phones: the plugin's rows pull the cards 15px past the panel edge; keep them inside it */
@media (max-width: 767px) {
  .pc-order-page #moo_CheckoutContainer > #moo-checkout.moo-row { margin-inline: 0; }
  .pc-order-page #moo_CheckoutContainer #moo-checkout-form.moo-section { padding-inline: 0; }
  .pc-order-page #moo_CheckoutContainer #moo-checkout-form > .moo-row { margin-inline: 0; }
  .pc-order-page #moo_CheckoutContainer #moo-checkout-form > .moo-row > :is(.moo-checkout-cart, #moo-checkout-form-btnActions) { padding-inline: 0; }
}
@media (max-width: 479px) {
  .pc-order-page #moo_CheckoutContainer #moo-checkout-form #moo-checkout-form-tips .moo-checkout-bloc-content .moo-col-xs-6 { width: 100%; }
}

/* order summary */
.pc-order-page #moo_CheckoutContainer #moo-checkout-form .moo-checkout-cart .cartContainer .moo-shopping-cart {
  overflow: hidden;
  border: 0;
  border-radius: var(--oc-radius-card);
  background-color: var(--oc-card);
  color: var(--navy);
  font-size: 15px;
  box-shadow: 0 0 0 1px var(--oc-line), var(--oc-shadow);
}
.pc-order-page #moo_CheckoutContainer #moo-checkout-form .moo-checkout-cart .cartContainer .moo-shopping-cart .moo-shopping-cart-title {
  padding: 18px 20px 14px;
  border-bottom: 1px solid var(--oc-line);
  background: var(--navy);
  color: var(--cream);
  font-family: var(--font-display) !important;
  font-size: 1.3rem;
  font-weight: 750;
  line-height: 1.2;
  letter-spacing: -.01em;
  font-variation-settings: "SOFT" 100, "opsz" 48;
}
.pc-order-page #moo_CheckoutContainer #moo-checkout-form .moo-checkout-cart .cartContainer .moo-shopping-cart .moo-shopping-cart-line {
  margin: 0;
  padding: 14px 8px 14px 10px;
}
.pc-order-page #moo_CheckoutContainer #moo-checkout-form .moo-checkout-cart .cartContainer .moo-shopping-cart .moo-shopping-cart-line + .moo-shopping-cart-line { border-top: 1px solid var(--oc-line); }
.pc-order-page #moo_CheckoutContainer #moo-checkout-form .moo-checkout-cart .cartContainer .moo-shopping-cart .moo-shopping-cart-line .moo-scl-qty {
  color: var(--coral-ink);
  font-weight: 700;
}
.pc-order-page #moo_CheckoutContainer #moo-checkout-form .moo-checkout-cart .cartContainer .moo-shopping-cart .moo-shopping-cart-line .moo-scl-item .moo-scl-itemName {
  color: var(--navy);
  font-size: 16px;
  font-weight: 600;
  line-height: 1.3;
}
.pc-order-page #moo_CheckoutContainer #moo-checkout-form .moo-checkout-cart .cartContainer .moo-shopping-cart .moo-shopping-cart-line .moo-scl-item .moo-scl-itemModifiers {
  margin-top: 4px;
  color: var(--oc-muted);
  font-size: 14px;
  line-height: 1.45;
}
.pc-order-page #moo_CheckoutContainer #moo-checkout-form .moo-checkout-cart .cartContainer .moo-shopping-cart .moo-shopping-cart-line .moo-scl-item .moo-scl-itemModifiers small { font-size: inherit; }
.pc-order-page #moo_CheckoutContainer #moo-checkout-form .moo-checkout-cart .cartContainer .moo-shopping-cart .moo-shopping-cart-line .moo-scl-itemPrice { padding-right: 12px; font-variant-numeric: tabular-nums; }
.pc-order-page #moo_CheckoutContainer #moo-checkout-form .moo-checkout-cart .cartContainer .moo-shopping-cart .moo-totals {
  padding: 14px 20px 18px;
  border-top: 1px solid var(--oc-line);
  background: var(--mint-whisper);
  color: var(--navy);
  font-size: 15px;
}
.pc-order-page #moo_CheckoutContainer #moo-checkout-form .moo-checkout-cart .cartContainer .moo-shopping-cart .moo-totals .moo-totals-item { padding: 2px 0; }
.pc-order-page #moo_CheckoutContainer #moo-checkout-form .moo-checkout-cart .cartContainer .moo-shopping-cart .moo-totals .moo-totals-item label { color: var(--oc-muted); font-weight: 500; }
.pc-order-page #moo_CheckoutContainer #moo-checkout-form .moo-checkout-cart .cartContainer .moo-shopping-cart .moo-totals .moo-totals-value { font-weight: 600; font-variant-numeric: tabular-nums; }
.pc-order-page #moo_CheckoutContainer #moo-checkout-form .moo-checkout-cart .cartContainer .moo-shopping-cart .moo-totals .moo-totals-item-total {
  margin-top: 8px;
  padding-top: 10px;
  border-top: 1.5px solid var(--oc-line);
}
.pc-order-page #moo_CheckoutContainer #moo-checkout-form .moo-checkout-cart .cartContainer .moo-shopping-cart .moo-totals .moo-totals-item-total :is(label, .moo-totals-value) {
  color: var(--navy);
  font-family: var(--font-display) !important;
  font-size: 1.3rem;
  font-weight: 800;
  font-variation-settings: "SOFT" 100, "opsz" 72;
}
.pc-order-page #moo_CheckoutContainer #moo-checkout-form .moo-shopping-links { display: flex; justify-content: space-between; gap: 12px; padding: 4px 4px 0; }
.pc-order-page #moo_CheckoutContainer #moo-checkout-form .moo-checkout-cart .cartContainer .moo-shopping-links a {
  float: none;
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  margin: 0;
  color: var(--coral-ink);
  font-size: 15px;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 4px;
}
.pc-order-page #moo_CheckoutContainer #moo-checkout-form .moo-checkout-cart .cartContainer .moo-shopping-links a:hover { color: var(--navy); }
.pc-order-page #moo_CheckoutContainer #moo-checkout-form #moo-checkout-form-btnActions { padding-top: 8px; color: var(--oc-muted); font-size: 14px; }
.pc-order-page #moo_CheckoutContainer #moo-checkout-form #moo-checkout-form-btnActions .moo-finalize-order-btn { min-height: 56px; font-size: 17px !important; }

/* =========================================================
   My Orders (moo_my_account)
   ========================================================= */
.pc-order-page #sooMyOrdersContainer { color: var(--navy); }
.pc-order-page #sooMyOrdersContainer :is(h1, h2, h3, h4) {
  color: var(--navy);
  font-family: var(--font-display) !important;
  font-weight: 750;
  letter-spacing: -.01em;
}
.pc-order-page #sooMyOrdersContainer a:not([class*="Button"]) { color: var(--coral-ink); }
/* A "Featured Items" card with no photo (theme 0.10.1): a missing or broken picture, or the plugin's own
   stand-in picture (noImg.png), shows the same empty tile as a cart line (see "a cart line with no photo" above). */
.pc-order-page #sooMyOrdersContainer .image-wrapper:is(.pc-photo-none, :has(> img:is(:not([src]), [src=""], [src$="/public/img/noImg.png"]))) > img { display: none; }
.pc-order-page #sooMyOrdersContainer .image-wrapper:is(.pc-photo-none, :has(> img:is(:not([src]), [src=""], [src$="/public/img/noImg.png"])))::before {
  content: "";
  display: block;
  aspect-ratio: 4 / 3;
  border-radius: var(--oc-radius-field);
  background: var(--mint-pale) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1080 855'%3E%3Cpath fill='%2392D9CB' d='M2 160 203 294 640 3 1078 294V562L640 852 203 562 2 695Z'/%3E%3Ccircle cx='876' cy='296' r='39' fill='%23E9F8F4'/%3E%3C/svg%3E") center / auto min(34%, 64px) no-repeat;
  box-shadow: 0 0 0 1px var(--oc-line);
}

@media (prefers-reduced-motion: reduce) {
  .pc-order-page :is(#moo_OnlineStoreContainer, #moo_CheckoutContainer, #sooMyOrdersContainer, .moo-shopping-cart-container, .moo_emptycart, #mooModalWindow, .swal2-container) *,
  .pc-order-page :is(#moo_OnlineStoreContainer, #moo_CheckoutContainer, #sooMyOrdersContainer, .moo-shopping-cart-container, .moo_emptycart, #mooModalWindow, .swal2-container) *::before {
    transition-duration: .01ms !important;
  }
  .pc-order-page #mooModalWindow { animation: none; }
}
