/* Un recorrido por toda la distribuidora, sin añadir pasos a la compra. */
body { transition: background-color .65s ease; }
body[data-market-theme="deli"] { background-color: #fff5f1; }
body[data-market-theme="cheese"] { background-color: #fffbeb; }
body[data-market-theme="drinks"], body[data-market-theme="dairy"] { background-color: #f3f8fc; }
body[data-market-theme="bakery"] { background-color: #fbf4e9; }
body[data-market-theme="treats"] { background-color: #fcf4f6; }
.category-results { gap: 36px; }
.category-group {
  --market-bg: #f7ecdd; --market-ink: #6d4225; --market-accent: #95653b;
  --market-wash: #fffbf4;
  padding: 25px; border: 1px solid color-mix(in srgb, var(--market-accent) 18%, white);
  border-radius: 25px; background: linear-gradient(160deg, var(--market-bg), var(--market-wash) 45%);
  position: relative; isolation: isolate;
}
.category-group[data-market-theme="deli"] { --market-bg: #f9d9d5; --market-ink: #fff8f2; --market-accent: #942735; --market-wash: #fff5f0; }
.category-group[data-market-theme="cheese"] { --market-bg: #f6e5a1; --market-ink: #6c4511; --market-accent: #b58525; --market-wash: #fffbec; }
.category-group[data-market-theme="drinks"] { --market-bg: #d9eaf3; --market-ink: #23475c; --market-accent: #447b96; --market-wash: #f4faff; }
.category-group[data-market-theme="dairy"] { --market-bg: #e1ebfa; --market-ink: #345176; --market-accent: #597fae; --market-wash: #f9fbff; }
.category-group[data-market-theme="bakery"] { --market-bg: #efd9bf; --market-ink: #714025; --market-accent: #a5693d; --market-wash: #fff8ee; }
.category-group[data-market-theme="treats"] { --market-bg: #f0dce6; --market-ink: #77374f; --market-accent: #ac5c7a; --market-wash: #fff8fb; }
.category-group .category-group-heading {
  display: flex; gap: 17px; align-items: center; position: relative; overflow: hidden;
  color: var(--market-ink); background: var(--market-bg); padding: 24px;
  border-radius: 17px; margin: 0 0 22px;
}
.category-group .category-group-heading::after {
  content: ""; position: absolute; right: -35px; top: -75px; flex: none;
  width: 230px; height: 230px; border: 1px solid currentColor; border-radius: 50%;
  background: none; opacity: .14; pointer-events: none;
  box-shadow: 0 0 0 26px #ffffff10, 0 0 0 55px #ffffff10;
}
.category-group[data-market-theme="deli"] .category-group-heading { background: linear-gradient(115deg, #8f2030, #ad3a3d); }
.category-group-icon { flex: 0 0 52px; width: 52px; height: 52px; background: #ffffff70; border-radius: 16px; font-size: 26px; }
.category-group-copy { min-width: 0; position: relative; z-index: 1; }
.category-group-kicker { display: block; text-transform: uppercase; font-size: 10px; line-height: 1.5; font-weight: 700; letter-spacing: .1em; opacity: .85; }
.category-group .category-group-title { font: 600 clamp(29px, 3vw, 40px)/1.15 Fraunces, Georgia, serif; margin: 4px 0 0; color: inherit; }
.category-group-description { font-size: 12px; line-height: 1.55; margin: 9px 0 0; max-width: 480px; opacity: .9; }
.category-group .category-group-count { margin-left: auto; align-self: flex-start; flex: none; background: #ffffff8a; color: #5e3631; font-size: 10px; padding: 8px 10px; }
.category-group .product-card { border-color: #fff; box-shadow: 0 3px 12px #48271d05; }
.category-group .product-card:hover { border-color: var(--market-accent); box-shadow: 0 12px 25px #48271d0e; }
.category-tab.is-in-view:not(.active) { border-color: #aa2830; box-shadow: inset 0 -3px #aa2830; }
.monthly-selection { border: 1px solid #e6c6b4; border-radius: 25px; padding: 28px; background: #f5e8d9; overflow: hidden; position: relative; }
.monthly-heading { display: flex; justify-content: space-between; align-items: flex-end; gap: 20px; margin-bottom: 22px; }
.monthly-heading .eyebrow { color: #9a3630; font-size: 10px; }
.monthly-heading h3 { font: 600 clamp(32px, 3.5vw, 48px)/1.08 Fraunces, Georgia, serif; color: #7c2530; letter-spacing: -.035em; margin: 8px 0 10px; }
.monthly-heading h3 em { font-weight: 600; color: #a44632; }
.monthly-heading p { color: #765448; font-size: 13px; line-height: 1.6; margin: 0; }
.monthly-controls { display: flex; gap: 8px; flex: none; }
.monthly-controls button { width: 43px; height: 43px; display: grid; place-items: center; border: 1px solid #cfae9d; border-radius: 50%; background: #fffaf4; color: #8a2730; font-size: 20px; cursor: pointer; transition: background .2s, transform .2s; }
.monthly-controls button:hover:not(:disabled) { background: #8c2630; color: white; transform: translateY(-2px); }
.monthly-controls button:disabled { opacity: .35; cursor: default; }
.monthly-controls [data-monthly-play] { font-size: 17px; }
.monthly-controls button[hidden] { display: none; }
.monthly-rail { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 48px) / 4); gap: 16px; overflow-x: auto; overscroll-behavior-inline: contain; scroll-snap-type: x proximity; padding: 4px 1px 15px; scrollbar-width: thin; scrollbar-color: #b77b69 #ead5c5; }
.monthly-rail .product-card { scroll-snap-align: start; min-width: 0; border-color: #eddbd0; }
.monthly-rail .product-info { padding: 14px; }
.monthly-rail .product-info h3 { min-height: 42px; }
.monthly-rail .product-category { color: #8e5c4e; }
.monthly-footnote { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 10px; margin: 12px 0 0; color: #79584b; font-size: 11px; line-height: 1.5; }
.monthly-footnote a { font-weight: 700; color: #8d2930; text-underline-offset: 4px; }
.monthly-selection :focus-visible { outline: 3px solid #8c2630; outline-offset: 3px; }
@media(min-width:1500px) { .monthly-rail { grid-auto-columns: calc((100% - 64px) / 5); } }
@media(max-width:1050px) { .monthly-rail { grid-auto-columns: calc((100% - 32px) / 3); } }
@media(max-width:760px) {
  .category-results { gap: 23px; }
  .category-group { padding: 12px; border-radius: 19px; }
  .category-group .category-group-heading { padding: 18px 14px; gap: 10px; margin-bottom: 13px; border-radius: 12px; flex-wrap: wrap; }
  .category-group-icon { width: 37px; height: 37px; flex-basis: 37px; border-radius: 11px; font-size: 21px; }
  .category-group-copy { flex: 1; }
  .category-group-kicker { font-size: 8px; letter-spacing: .06em; }
  .category-group .category-group-title { font-size: 28px; }
  .category-group-description { font-size: 11px; margin-top: 7px; }
  .category-group .category-group-count { position: static; margin: 0 0 0 47px; padding: 4px 8px; font-size: 9px; }
  .category-group .product-grid { gap: 9px; }
  .category-group .product-info { padding: 12px 10px; }
  .category-group .product-info h3 { font-size: 11px; }
  .category-group .buy-option { padding: 8px 5px; }
  .category-group .buy-option strong { font-size: 15px; }
  .category-group .price { font-size: 23px; }
  .monthly-selection { border-radius: 19px; padding: 18px 12px 14px; }
  .monthly-heading { gap: 9px; align-items: center; margin-bottom: 17px; padding: 0 4px; flex-wrap: wrap; }
  .monthly-heading h3 { font-size: 33px; margin: 7px 0 9px; }
  .monthly-heading .eyebrow { font-size: 8px; letter-spacing: .08em; }
  .monthly-heading p { font-size: 12px; }
  .monthly-controls { gap: 5px; align-self: flex-end; margin-left: auto; }
  .monthly-controls button { width: 44px; height: 44px; font-size: 19px; }
  .monthly-rail { grid-auto-columns: 62%; gap: 11px; padding-bottom: 12px; scroll-padding-left: 1px; }
  .monthly-rail .product-info { padding: 13px 12px; }
  .monthly-rail .product-info h3 { min-height: 34px; margin-bottom: 10px; }
  .monthly-rail .buy-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
  .monthly-rail .buy-option { min-width: 0; padding: 9px 6px; }
  .monthly-rail .buy-option strong { font-size: 15px; }
  .monthly-footnote { padding: 0 4px; font-size: 10px; }
}
@media(max-width:380px) {
  .monthly-heading { flex-wrap: wrap; }
  .monthly-controls { margin-left: auto; }
  .monthly-rail { grid-auto-columns: 74%; }
  .category-group .price { font-size: 21px; }
}
@media(prefers-reduced-motion:reduce) {
  body, .monthly-controls button { transition: none; }
  .monthly-rail { scroll-behavior: auto; scroll-snap-type: none; }
}
