.product-card { display: block; }
.product-card:focus-visible, .detail-page :focus-visible { outline: 2px solid #f5f3ef; outline-offset: 4px; }
.product-art > img, .gallery-frame img { width: 100%; height: 100%; object-fit: contain; display: block; }
.product-art .tag { background: #111314e8; z-index: 1; }
.demo-note { font-size: 12px; color: #aaa; margin-top: 22px; }
[aria-disabled="true"], .button:disabled { opacity: .55; cursor: default; }
.button:disabled:hover { background: transparent; color: white; }
.detail-page header { position: relative; }
.detail-main { max-width: 1560px; margin-inline: auto; padding-top: 28px; padding-bottom: 48px; }
.detail-back { margin: 0 0 30px; }
.detail-grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: clamp(24px, 5vw, 84px); }
.gallery-stage { height: auto; aspect-ratio: 5 / 4; min-height: 270px; border: 1px solid #343638; overflow: hidden; touch-action: pan-y pinch-zoom; }
.gallery-frame { width: 100%; height: 100%; display: grid; place-items: center; }
.gallery-frame img { min-height: 0; }
.gallery-stage .watch-illustration { z-index: 0; }
.gallery-arrow { position: absolute; top: 50%; transform: translateY(-50%); width: 48px; height: 48px; background: #101112eb; color: #fff; border: 1px solid #777; }
.gallery-prev { left: 12px; }
.gallery-next { right: 12px; }
.gallery-thumbs { display: flex; flex-wrap: wrap; gap: 8px; }
.gallery-thumbs button { width: 54px; height: 54px; padding: 2px; border: 1px solid #555; background: #131516; }
.gallery-thumbs button[aria-pressed="true"] { border: 2px solid #f5f3ef; }
.gallery-thumbs img { width: 100%; height: 100%; object-fit: contain; }
.detail-copy { overflow-wrap: anywhere; }
.detail-copy h1 { font-size: clamp(39px, 5vw, 74px); line-height: .98; margin: 14px 0 18px; }
.detail-badge { display: inline-block; border: 1px solid #555; padding: 6px 9px; font-size: 10px; letter-spacing: .14em; text-transform: uppercase; }
.detail-price { font-size: 25px; margin: 16px 0; }
.detail-specs { margin: 0; }
.detail-specs div { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; padding: 10px 0; border-bottom: 1px solid #303234; font-size: 13px; }
.detail-specs dt, .detail-info p { color: #bbb; }
.detail-specs dd { margin: 0; }
.detail-info { border-top: 1px solid #343638; margin-top: 21px; padding-top: 16px; }
.detail-info h2 { font-size: 27px; margin: 0 0 10px; }
.detail-info p { margin: 0; font-size: 14px; line-height: 1.6; white-space: pre-line; }
.detail-footer { padding-top: 0; }
@media (max-width: 700px) {
  .detail-grid { grid-template-columns: minmax(0, 1fr); }
  .detail-copy .button { min-height: 48px; width: 100%; }
}
.gallery-frame > img { position: absolute; inset: 0; }
