.shop-search-area { padding: 0; margin-bottom: 12px; }
.shop-search-form { display: flex; gap: 6px; align-items: center; padding: 3px; border: 1px solid var(--m9-primary); border-radius: var(--m9-radius-sm); background: var(--m9-on-primary); }
.shop-search-field { min-width: 0; flex: 1; display: flex; gap: 9px; align-items: center; padding-left: 10px; }
.shop-search-field > span { display: grid; place-items: center; width: 20px; height: 20px; flex: 0 0 20px; color: var(--m9-primary); }
.shop-search-field .m9-icon { width: 20px; height: 20px; }
.shop-search-field input { min-width: 0; width: 100%; height: 34px; border: 0; background: transparent; font: inherit; font-size: 0.875rem; color: var(--m9-brand-navy); outline: 0; }
.shop-search-form:focus-within { box-shadow: var(--m9-shadow-surface); }
#view-shop .shop-search-submit { min-height: 34px; padding: 6px 20px; border: 0; border-radius: var(--m9-radius-xs); color: var(--m9-on-primary); background: var(--m9-primary); font-size: 0.875rem; font-weight: 700; }
.shop-search-clear { width: 30px; height: 30px; flex: 0 0 30px; border: 0; border-radius: var(--m9-radius-pill); background: var(--m9-border-soft); color: var(--m9-neutral); }
.shop-search-clear[hidden] { display: none; }
.market-campaign-grid.shop-campaign-layout { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); grid-template-rows: repeat(2, 168px); gap: 8px; }
.shop-slideshow { position: relative; grid-row: span 2; border-radius: var(--m9-radius-lg); overflow: hidden; background: var(--m9-success-bg); min-width: 0; }
.shop-campaign-slide { position: absolute; inset: 0; }
.shop-campaign-slide[hidden] { display: none; }
.shop-banner-link { display: block; width: 100%; height: 100%; padding: 0; border: 0; background: transparent; }
.shop-banner-link > img { display: block; width: 100%; height: 100%; object-fit: cover; }
.slide-creator .shop-banner-link > img { object-position: center 35%; }
.slide-content .shop-banner-link > img { object-position: center 45%; }
.shop-slide-arrow { position: absolute; z-index: 3; top: 46%; width: 30px; height: 44px; border: 0; border-radius: var(--m9-radius-xs); background: color-mix(in srgb, var(--m9-on-primary) 73%, transparent); color: var(--m9-brand-navy); font: var(--m9-type-page-title) !important; }
.shop-slide-prev { left: 3px; }
.shop-slide-next { right: 3px; }
.shop-slide-controls { position: absolute; z-index: 3; bottom: 9px; left: 50%; transform: translateX(-50%); display: flex; align-items: center; gap: 2px; padding: 1px 5px; border-radius: var(--m9-radius-2xl); background: color-mix(in srgb, var(--m9-brand-navy) 61%, transparent); }
.shop-slide-controls > button { position: relative; width: 28px; height: 28px; padding: 0; border: 0; background: transparent; color: var(--m9-on-primary); }
.shop-slide-controls > button:not(.shop-slide-pause)::before { content: ''; display: block; width: 8px; height: 8px; margin: auto; border-radius: var(--m9-radius-pill); background: color-mix(in srgb, var(--m9-on-primary) 50%, transparent); }
.shop-slide-controls > button[aria-current="true"]::before { background: var(--m9-disabled-text); }
.shop-campaign-status { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.shop-ad-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; min-width: 0; }
.shop-static-ad { display: block; position: relative; overflow: hidden; padding: 0; border: 0; border-radius: var(--m9-radius-md); background: var(--m9-success-bg); }
.shop-static-ad > img { display: block; width: 100%; height: 100%; object-fit: cover; }
.shop-promo-ribbon { display: block; height: 160px; margin-top: 14px; border-radius: var(--m9-radius-lg); overflow: hidden; background: var(--m9-success-bg); }
.shop-promo-ribbon > img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
@media (max-width: 1120px) {
  .market-campaign-grid.shop-campaign-layout { grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr); }
  .shop-promo-ribbon { height: 140px; }
}
@media (max-width: 560px) {
  .shop-search-field { padding-left: 6px; gap: 6px; }
  .shop-search-field input { height: 36px; }
  #view-shop .shop-search-submit { min-height: 36px; padding: 6px 14px; }
  .market-campaign-grid.shop-campaign-layout { grid-template-columns: minmax(0, 1fr); grid-template-rows: 280px repeat(2, 152px); }
  .shop-slideshow { grid-row: auto; }
  .shop-promo-ribbon { height: 108px; }
}
