/* RewardStyle remains the product source. Hide it only after the visual layer mounts. */
.shopthepost-widget.mgsite-shop-source-hidden {
  height: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  overflow: hidden !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

.mgsite-shop-carousel,
.mgsite-shop-carousel * { box-sizing: border-box; }
.mgsite-shop-carousel {
  --mgsite-shop-gold: #c6a58d;
  --mgsite-shop-ink: #2e2925;
  width: 100%;
  min-width: 0;
  margin: 1px auto 19px;
  color: var(--mgsite-shop-ink);
}
.mgsite-shop-carousel a { text-decoration: none; }
.mgsite-shop-carousel a:focus-visible,
.mgsite-shop-carousel button:focus-visible,
.mgsite-shop-carousel input:focus-visible {
  outline: 2px solid var(--mgsite-shop-gold);
  outline-offset: 2px;
}
.mgsite-shop-carousel .mgsite-shop-stage { position: relative; padding: 0 36px; }
.mgsite-shop-carousel .mgsite-shop-track {
  display: flex;
  gap: 12px;
  width: 100%;
  min-width: 0;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  overscroll-behavior-x: contain;
  scrollbar-width: none;
}
.mgsite-shop-carousel .mgsite-shop-track::-webkit-scrollbar { display: none; }
.mgsite-shop-carousel .mgsite-shop-item {
  flex: 0 0 calc((100% - 24px) / 3);
  min-width: 0;
  scroll-snap-align: start;
  text-align: center;
}
.mgsite-shop-carousel .mgsite-shop-image-link {
  display: block;
  height: 128px;
  overflow: hidden;
  background: #fff;
}
.mgsite-shop-carousel .mgsite-shop-image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  transition: transform .7s cubic-bezier(.2,.7,.2,1);
}
.mgsite-shop-carousel .mgsite-shop-image-link:hover .mgsite-shop-image,
.mgsite-shop-carousel .mgsite-shop-image-link:focus-visible .mgsite-shop-image {
  transform: translateY(-4px) scale(1.055);
}
.mgsite-shop-carousel .mgsite-shop-category {
  display: block;
  min-height: 14px;
  margin-top: 9px;
  color: #a88b73;
  font: 400 9px/1.5 Arial, sans-serif;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.mgsite-shop-carousel .mgsite-shop-name {
  display: -webkit-box;
  min-height: 38px;
  max-height: 38px;
  margin: 5px auto 7px;
  overflow: hidden;
  color: var(--mgsite-shop-ink);
  font: 400 15px/1.25 'Bodoni Moda', Didot, 'Times New Roman', serif;
  letter-spacing: -.01em;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.mgsite-shop-carousel .mgsite-shop-item:hover .mgsite-shop-name,
.mgsite-shop-carousel .mgsite-shop-item:focus-within .mgsite-shop-name { color: #86684f; }
.mgsite-shop-carousel .mgsite-shop-cta {
  display: inline-block;
  padding-bottom: 2px;
  border-bottom: 1px solid currentColor;
  color: #b49277;
  font: 400 9px/1.5 Arial, sans-serif;
  letter-spacing: .1em;
}
.mgsite-shop-carousel .mgsite-shop-cta:hover { color: #785d47; }
.mgsite-shop-carousel .mgsite-shop-arrow {
  position: absolute;
  top: 42px;
  width: 36px;
  height: 44px;
  padding: 0 0 4px;
  border: 0;
  border-radius: 0;
  background: #fff;
  color: #27221e;
  font: 400 30px/1 Georgia, serif;
  cursor: pointer;
}
.mgsite-shop-carousel .mgsite-shop-prev { left: 0; }
.mgsite-shop-carousel .mgsite-shop-next { right: 0; }
.mgsite-shop-carousel .mgsite-shop-arrow:disabled { opacity: .25; cursor: default; }
.mgsite-shop-carousel .mgsite-shop-progress {
  width: 84px;
  height: 2px;
  margin: 15px auto 0;
  overflow: hidden;
  background: #ebe4dc;
}
.mgsite-shop-carousel .mgsite-shop-progress span {
  display: block;
  width: 100%;
  height: 100%;
  background: var(--mgsite-shop-gold);
  transition: width .25s ease, margin-left .25s ease;
}

/* The writing controls appear only for administrators. */
.mgsite-shop-carousel .mgsite-shop-edit-toggle {
  display: block;
  margin: 15px auto 0;
  padding: 6px 9px;
  border: 1px solid #d8c4b3;
  background: #fff;
  color: #7e624d;
  font: 12px/1.4 Arial, sans-serif;
  cursor: pointer;
}
.mgsite-shop-carousel .mgsite-shop-editor {
  margin-top: 13px;
  padding: 18px;
  border: 1px solid #e5dcd3;
  background: #fbf8f5;
  font: 13px/1.5 Arial, sans-serif;
}
.mgsite-shop-carousel .mgsite-shop-editor[hidden] { display: none; }
.mgsite-shop-carousel .mgsite-shop-editor > p { margin: 0 0 15px; }
.mgsite-shop-carousel .mgsite-shop-edit-row {
  display: grid;
  grid-template-columns: 55px repeat(3, minmax(0, 1fr));
  gap: 9px;
  align-items: end;
  padding: 12px 0;
  border-top: 1px solid #e8ded4;
}
.mgsite-shop-carousel .mgsite-shop-edit-row img { width: 48px; height: 55px; object-fit: contain; }
.mgsite-shop-carousel .mgsite-shop-edit-row label { display: block; min-width: 0; color: #745f50; }
.mgsite-shop-carousel .mgsite-shop-edit-row input {
  display: block;
  width: 100%;
  margin-top: 4px;
  padding: 7px;
  border: 1px solid #d8cfc6;
  border-radius: 0;
  background: #fff;
  color: #302820;
  font: 13px/1.3 Arial, sans-serif;
}
.mgsite-shop-carousel .mgsite-shop-edit-actions { display: flex; gap: 10px; align-items: center; margin-top: 12px; }
.mgsite-shop-carousel .mgsite-shop-edit-actions button {
  padding: 8px 13px;
  border: 1px solid #b3947d;
  border-radius: 0;
  background: #fff;
  color: #6e503c;
  font: 12px/1.4 Arial, sans-serif;
  cursor: pointer;
}
.mgsite-shop-carousel .mgsite-shop-edit-actions button[type=submit] { background: #9a795f; color: #fff; }
.mgsite-shop-carousel .mgsite-shop-status { min-height: 1.4em; margin: 10px 0 0; }

/* A slow, small drift brings the post cover to life without affecting reading. */
body.home.blog .mgsite-shop-post .featured-thumbnail a,
body.single-post .mgsite-shop-post .featured-thumbnail { overflow: hidden; }
body.home.blog .mgsite-shop-post .featured-thumbnail img.wp-post-image,
body.single-post .mgsite-shop-post .featured-thumbnail img.wp-post-image {
  animation: mgsite-shop-cover-drift 18s ease-in-out infinite alternate;
  transform-origin: center;
}
@keyframes mgsite-shop-cover-drift {
  from { transform: scale(1.012) translateX(-.3%); }
  to { transform: scale(1.035) translateX(.3%); }
}
@media (max-width: 700px) {
  .mgsite-shop-carousel .mgsite-shop-item { flex-basis: calc((100% - 12px) / 2); }
  .mgsite-shop-carousel .mgsite-shop-image-link { height: 145px; }
  .mgsite-shop-carousel .mgsite-shop-edit-row { grid-template-columns: 52px minmax(0, 1fr); }
  .mgsite-shop-carousel .mgsite-shop-edit-row label { grid-column: 2; }
  .mgsite-shop-carousel .mgsite-shop-edit-row img { grid-row: 1 / span 3; align-self: center; }
}
@media (prefers-reduced-motion: reduce) {
  .mgsite-shop-carousel .mgsite-shop-track { scroll-behavior: auto; }
  .mgsite-shop-carousel .mgsite-shop-progress span,
  .mgsite-shop-carousel .mgsite-shop-image { transition: none; }
  .mgsite-shop-carousel .mgsite-shop-image-link:hover .mgsite-shop-image,
  .mgsite-shop-carousel .mgsite-shop-image-link:focus-visible .mgsite-shop-image { transform: none; }
  body.home.blog .mgsite-shop-post .featured-thumbnail img.wp-post-image,
  body.single-post .mgsite-shop-post .featured-thumbnail img.wp-post-image { animation: none; transform: none; }
}
