/* Market experience: visual language for boder, market status, discovery and Sunday. */
.market-live-strip {
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  gap: .7rem;
  margin-top: 1rem;
}
.market-live-stat {
  padding: .85rem 1rem;
  border: 1px solid rgba(102,82,58,.13);
  border-radius: 15px;
  background: rgba(255,250,242,.78);
  backdrop-filter: blur(8px);
}
.market-live-stat strong { display:block; font-size:1.35rem; line-height:1.1; }
.market-live-stat span { color:var(--ob-muted); font-size:.78rem; }

.market-gate {
  position:relative;
  overflow:hidden;
  border-radius: 24px;
  background: linear-gradient(135deg,#244a3b,#18372b);
  color:#fff;
  box-shadow:var(--ob-shadow);
}
.market-gate::before {
  content:"";
  display:block;
  height:17px;
  background:repeating-linear-gradient(90deg,#d96f3d 0 44px,#f5d7b4 44px 88px);
}
.market-gate-body { padding:1.5rem; }
.market-gate.is-closed { background:linear-gradient(135deg,#514b43,#39352f); }
.market-gate-countdown { font-variant-numeric:tabular-nums; font-size:clamp(1.6rem,5vw,3rem); font-weight:900; letter-spacing:.05em; }

.market-sign {
  display:inline-flex;
  padding:.35rem .7rem;
  border-radius:7px 7px 10px 10px;
  background:#fff2d9;
  color:#4c3d2d;
  border:1px solid #d9bf97;
  transform:rotate(-1deg);
  box-shadow:0 5px 12px rgba(61,45,28,.12);
  font-size:.8rem;
  font-weight:900;
}

.stall-card, .product-card { isolation:isolate; }
.stall-card::after {
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  pointer-events:none;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.3);
}
.stall-card:hover .stall-cover img, .product-card:hover .product-image img { transform:scale(1.025); }
.stall-cover img, .product-image img { transition:transform .28s ease; }

.stall-awning-mini {
  height:9px;
  background:repeating-linear-gradient(90deg,var(--ob-green) 0 24px,#f1dfc2 24px 48px);
}
.stall-open-label { color:#286345; font-weight:800; }
.stall-paused-label { color:#806b51; font-weight:800; }

.discovery-rail {
  display:grid;
  grid-auto-flow:column;
  grid-auto-columns:minmax(190px,240px);
  gap:.8rem;
  overflow-x:auto;
  padding:.25rem 0 .75rem;
  scroll-snap-type:x proximity;
  scrollbar-width:thin;
}
.discovery-rail > * { scroll-snap-align:start; }

.random-stall-card {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:1rem;
  align-items:center;
  padding:1.4rem 1.6rem;
  border:1px dashed #b69e78;
  border-radius:20px;
  background:
    radial-gradient(circle at 95% 20%,rgba(217,111,61,.12),transparent 14rem),
    #fff8eb;
}
.random-stall-card h2 { margin:0 0 .3rem; }
.random-stall-card p { margin:0; color:var(--ob-muted); }

.sunday-hero {
  position:relative;
  overflow:hidden;
  padding:clamp(2.5rem,7vw,6rem) 0;
  background:
    radial-gradient(circle at 85% 15%,rgba(255,205,99,.45),transparent 20rem),
    radial-gradient(circle at 10% 90%,rgba(217,111,61,.18),transparent 22rem),
    linear-gradient(180deg,#fff2ce,#f6efe2);
}
.sunday-hero::after {
  content:"";
  position:absolute;
  left:0;right:0;bottom:0;height:10px;
  background:repeating-linear-gradient(90deg,#244a3b 0 42px,#f2c98d 42px 84px);
}
.sunday-hero-grid { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr); gap:2rem; align-items:center; }
.sunday-hero h1 { font-size:clamp(2.8rem,8vw,6.3rem); letter-spacing:-.06em; line-height:.88; margin:.35rem 0 1rem; }
.sunday-ticket {
  position:relative;
  padding:1.35rem;
  border:2px solid #c39b62;
  border-radius:14px;
  background:#fffaf0;
  transform:rotate(1.4deg);
  box-shadow:0 16px 40px rgba(83,57,24,.13);
}
.sunday-ticket::before,.sunday-ticket::after { content:""; position:absolute; top:48%; width:18px; height:18px; border-radius:50%; background:#f8e9c8; }
.sunday-ticket::before { left:-11px; }
.sunday-ticket::after { right:-11px; }
.sunday-ticket strong { display:block; font-size:1.3rem; }
.sunday-ticket small { color:var(--ob-muted); }

.price-tag {
  display:inline-flex;
  align-items:center;
  min-height:1.8rem;
  padding:.25rem .6rem .25rem .8rem;
  clip-path:polygon(8px 0,100% 0,100% 100%,8px 100%,0 50%);
  background:#f3ddbb;
  color:#5a4129;
  font-size:.75rem;
  font-weight:900;
}

.follow-pop { animation:followPop .25s ease; }
@keyframes followPop { 0%{transform:scale(1)} 45%{transform:scale(1.13)} 100%{transform:scale(1)} }
.market-pulse { animation:marketPulse 2.4s ease-in-out infinite; }
@keyframes marketPulse { 0%,100%{box-shadow:0 0 0 0 rgba(66,183,113,.2)} 50%{box-shadow:0 0 0 8px rgba(66,183,113,0)} }

@media (prefers-reduced-motion:reduce) {
  .follow-pop,.market-pulse { animation:none; }
  .stall-cover img,.product-image img { transition:none; }
}
@media (max-width:760px) {
  .market-live-strip { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .sunday-hero-grid { grid-template-columns:1fr; }
  .sunday-ticket { transform:none; }
  .random-stall-card { grid-template-columns:1fr; }
}
