.detail { display: grid; gap: var(--sp-6); padding-block: var(--sp-7); }

@media (min-width: 960px) { .detail { grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: var(--sp-7); align-items: start; } }

.detail__stage {
  position: relative;
  display: grid;
  place-items: center;
  min-height: 420px;
  padding: var(--sp-6);
  border: 1px solid var(--c-line);
  border-radius: var(--r-lg);
  background: var(--c-sunken);
}

.detail__stage img { max-height: 360px; width: auto; filter: drop-shadow(0 22px 30px color-mix(in srgb, var(--c-ink) 16%, transparent)); }

.detail__title { margin: var(--sp-3) 0 var(--sp-4); font-family: var(--f-display); font-size: var(--fs-h2); font-weight: var(--fw-display); line-height: var(--lh-snug); letter-spacing: var(--ls-display); }
.detail__summary { margin: 0 0 var(--sp-5); color: var(--c-ink-soft); }

.spec-table { display: grid; gap: 0; margin: 0 0 var(--sp-6); border-top: 1px solid var(--c-line); }
.spec-table > div { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--sp-3); padding-block: var(--sp-3); border-bottom: 1px solid var(--c-line-soft); }
.spec-table dt { font-family: var(--f-label); font-size: var(--fs-caption); color: var(--c-ink-muted); }
.spec-table dd { margin: 0; font-weight: 700; font-size: 0.9375rem; }

.buy { display: grid; gap: var(--sp-4); padding: var(--sp-5); border: 1px solid var(--c-line); border-radius: var(--r-lg); background: var(--c-paper); }
.buy__price { display: flex; align-items: baseline; gap: var(--sp-3); }
.buy__price b { font-family: var(--f-display); font-size: 2.25rem; font-weight: var(--fw-display); line-height: 1; letter-spacing: var(--ls-display); }
.buy__price span { font-family: var(--f-label); font-size: var(--fs-eyebrow); color: var(--c-ink-muted); }
.buy__row { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-3); }
.buy__qty { display: flex; align-items: center; gap: var(--sp-2); font-family: var(--f-label); font-size: var(--fs-eyebrow); color: var(--c-ink-muted); }
.buy__qty input { width: 84px; padding: 0.625rem 0.5rem; border: 1px solid var(--c-line); border-radius: var(--r-md); font: inherit; text-align: center; color: var(--c-ink); }
.buy__total { font-family: var(--f-label); font-size: var(--fs-caption); color: var(--c-ink-soft); }
.buy__total b { font-size: 1rem; }

.detail__summary:empty { min-height: 3.2em; }
.spec-table:empty { min-height: 340px; }
.buy__price b:empty { display: inline-block; min-height: 2.25rem; }
