/* 실제 상품 정보. 사진의 고유 색을 제외한 UI는 공통 세 가지 색을 따릅니다. */
.shop-grid { min-height: 320px; }
.shop-card { min-width: 0; display: flex; flex-direction: column; }
.shop-photo { width: 100%; aspect-ratio: 1; display: grid; place-items: center; background: var(--paper); border: 1px solid var(--line); padding: 22px; overflow: hidden; }
.shop-photo img { width: 100%; height: 100%; max-width: 310px; max-height: 310px; object-fit: contain; mix-blend-mode: multiply; }
.shop-preview:hover { outline: 1px solid var(--accent); outline-offset: -1px; }
.shop-photo-fallback { font-size: 13px; text-align: center; padding: 25px; }
.shop-card-body { padding-top: 24px; flex: 1; display: flex; flex-direction: column; }
.shop-category { font-size: 11px; margin-bottom: 10px; color: var(--accent); font-weight: 600; }
.shop-card .shop-name { font-size: 20px; font-weight: 800; letter-spacing: -.04em; line-height: 1.55; margin: 0 0 14px; text-wrap: initial; }
.shop-description { font-size: 13px; line-height: 1.95; margin: 0 0 22px; min-height: 54px; }
.shop-options { margin-top: auto; min-height: 86px; display: flex; flex-direction: column; justify-content: end; gap: 7px; }
.shop-options label { font-size: 11px; }
.shop-select { width: 100%; min-height: 46px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 0; background: var(--paper); color: var(--ink); font-size: 13px; cursor: pointer; }
.shop-select:hover { border-color: var(--accent); }
.shop-option-label { font-size: 12px; margin: 0; min-height: 46px; display: flex; align-items: center; border-bottom: 1px solid var(--line); }
.shop-price { font-size: 24px; font-weight: 800; margin: 19px 0; font-variant-numeric: tabular-nums; }
.shop-buy { width: 100%; }
.shop-purchase-note { font-size: 10px; margin: 12px auto 0; min-height: 38px; text-align: center; }
.shop-status { font-size: 14px; margin-bottom: 20px; }
.shop-status:empty { display: none; }
.shop-retry { margin-bottom: 25px; }
.catalog-grid.shop-grid { row-gap: 70px; align-items: stretch; }
.home-products .shop-options { min-height: 46px; }
@media (max-width: 760px) {
  .shop-photo { aspect-ratio: 1; padding: 18px; }
  .shop-description { min-height: 0; }
  .shop-options { min-height: 68px; }
  .shop-price { font-size: 23px; }
}

/* 대표 제품 1개를 먼저 보여주는 큐레이션. 모든 제품 정보는 JSON에서 렌더링합니다. */
.curated-hero { padding-top: 36px; }
.shop-card.shop-spotlight { display: grid; grid-template-columns: 1.2fr 1fr; grid-template-areas: "photo lead" "photo body"; column-gap: clamp(40px, 6vw, 90px); row-gap: 28px; align-items: start; }
.spotlight-lead { grid-area: lead; padding-top: 22px; }
.spotlight-label { margin-bottom: 22px; font-size: 12px; letter-spacing: .08em; }
.spotlight-headline { font-size: clamp(32px, 3.4vw, 49px); line-height: 1.38; letter-spacing: -.055em; white-space: pre-line; margin: 0; word-break: keep-all; }
.shop-spotlight > .shop-preview { grid-area: photo; align-self: stretch; display: flex; }
.shop-spotlight .shop-photo { aspect-ratio: auto; min-height: 610px; padding: 24px; border: 0; border-block: 1px solid var(--line); }
.shop-spotlight .shop-photo img { max-width: none; max-height: 650px; }
.shop-spotlight .shop-card-body { grid-area: body; padding-top: 0; }
.shop-spotlight .shop-name { font-size: 21px; margin-bottom: 12px; }
.shop-spotlight .shop-description { min-height: 0; font-size: 14px; margin-bottom: 18px; }
.shop-spotlight .shop-options { min-height: 0; }
.shop-spotlight .shop-category { display: none; }
.shop-spotlight .shop-price { margin-block: 18px; }
.shop-spotlight .shop-purchase-note { min-height: 0; }
.curated-hero > .catalog-notice { margin-top: 24px; }
.curated-collection-heading { margin-bottom: 42px; }
.curated-collection-heading h2 { font-size: 30px; }
.curated-collection-heading > p:not(.eyebrow) { font-size: 14px; }
.shop-situation { color: var(--accent); font-size: 13px; font-weight: 600; margin: 0 0 14px; }
.shop-bestseller { display: inline-block; margin-left: 12px; padding-left: 12px; border-left: 1px solid var(--line); font-weight: 800; }
@media (max-width: 1000px) {
  .shop-card.shop-spotlight { column-gap: 35px; grid-template-columns: 1fr 1fr; }
  .shop-spotlight .shop-photo { min-height: 560px; padding: 12px; }
}
@media (max-width: 760px) {
  .curated-hero { padding-top: 30px; }
  .shop-card.shop-spotlight { grid-template-columns: minmax(0, 1fr); grid-template-areas: "lead" "photo" "body"; row-gap: 30px; }
  .spotlight-lead { padding-top: 0; }
  .spotlight-label { margin-bottom: 18px; }
  .spotlight-headline { font-size: clamp(29px, 8.5vw, 42px); line-height: 1.45; }
  .shop-spotlight .shop-photo { aspect-ratio: 1; min-height: 0; padding: 12px; }
  .shop-spotlight .shop-photo img { max-height: none; }
  .shop-spotlight .shop-name { font-size: 20px; }
  .curated-collection-heading h2 { font-size: 27px; }
  .catalog-toolbar { gap: 14px; flex-wrap: wrap; }
  .catalog-filters { gap: 8px 20px; }
}

.catalog-store { margin-top: 54px; text-align: center; }
.catalog-store .button { min-width: 240px; }
.catalog-store p { margin: 14px auto 0; font-size: 11px; }
.shop-card .shop-situation { min-height: 50px; margin-bottom: 22px; }
.shop-spotlight .shop-card-body { align-self: end; }
@media (max-width: 760px) { .shop-card .shop-situation { min-height: 0; } }

.shop-reference-price { font-size: 11px; line-height: 1.7; margin: -8px 0 16px; }
