.catalog-toolbar { display: flex; justify-content: space-between; gap: 20px; margin-bottom: 28px; padding-bottom: 15px; border-bottom: 1px solid var(--line-dark); font-size: 11px; }
.catalog-toolbar > span:last-child { color: var(--muted); font-size: 10px; }
.bag-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 52px 28px; }
.bag-card { display: flex; flex-direction: column; min-width: 0; scroll-margin-top: 106px; }
.bag-photo { position: relative; overflow: hidden; background: transparent; border: 0; border-radius: 0; }
.bag-main-image[data-src], .bag-thumbnails img[data-src] { visibility: hidden; }
.bag-photo[aria-busy="true"]::after { content: ''; position: absolute; top: 16px; right: 16px; width: 16px; height: 16px; border: 2px solid var(--line); border-top-color: var(--accent); border-radius: 50%; animation: photo-loading .7s linear infinite; }
.gallery-status:not(.sr-only) { color: var(--accent-dark); font-size: 12px; margin: -8px 0 16px; }
@keyframes photo-loading { to { transform: rotate(360deg); } }
.bag-main-image { display: block; width: 100%; height: auto; aspect-ratio: 1; padding: 28px 22px 18px; object-fit: contain; transition: transform .35s ease; }
@media (hover: hover) { .bag-photo:hover .bag-main-image { transform: scale(1.045); } }
.bag-reference { position: absolute; z-index: 1; left: 15px; top: 15px; padding: 3px 0; font-size: 9px; letter-spacing: .08em; color: var(--muted); }
.bag-thumbnails { display: flex; gap: 8px; margin: 15px 0 20px; }
.bag-thumbnails button { display: grid; place-items: center; width: 46px; height: 46px; border: 1px solid var(--line); padding: 3px; border-radius: 3px; background: transparent; transition: border-color .2s, background .2s; }
.bag-thumbnails button:hover { border-color: var(--muted); }
.bag-thumbnails button[aria-pressed="true"] { border-color: var(--ink); background: transparent; box-shadow: inset 0 -2px var(--ink); }
.bag-thumbnails img { width: 100%; height: 100%; object-fit: contain; }
.bag-card h3 { font-size: 19px; font-weight: 500; letter-spacing: -.035em; line-height: 1.3; margin-bottom: 16px; min-height: 2.6em; }
.bag-card dl { margin: 0; font-size: 11px; }
.bag-card dl > div { display: grid; grid-template-columns: 63px 1fr; gap: 12px; padding: 9px 0; border-bottom: 1px solid var(--line); }
.bag-card dt { color: var(--muted); }
.bag-card dd { margin: 0; }
.bag-details { font-size: 11px; margin-bottom: 17px; }
.bag-details summary { display: flex; justify-content: space-between; align-items: center; min-height: 44px; list-style: none; color: var(--muted); }
.bag-details summary::-webkit-details-marker { display: none; }
.bag-details summary span { font-size: 17px; font-weight: 300; transition: transform .2s; }
.bag-details[open] summary span { transform: rotate(45deg); }
.bag-note { margin: 0 0 14px; color: var(--muted); font-size: 11px; line-height: 1.8; }
.bag-quote { display: flex; justify-content: space-between; align-items: center; gap: 14px; padding: 13px 0; margin-top: auto; border-top: 1px solid var(--line-dark); border-bottom: 1px solid var(--line-dark); color: var(--ink); text-decoration: none; font-size: 11px; transition: color .2s; }
.bag-quote span { font-size: 17px; transition: transform .2s; }
.bag-quote:hover { color: var(--accent); }
.bag-quote:hover span { transform: translate(2px, -2px); }
.catalog-disclaimer { margin-top: 44px; padding: 16px 0; border-top: 1px solid var(--line); color: var(--muted); font-size: 11px; }
.catalog-disclaimer summary { width: fit-content; }
.catalog-disclaimer p { max-width: 850px; margin: 12px 0 0; font-size: 11px; line-height: 1.8; }
@media (max-width: 1000px) { .bag-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px 24px; } }
@media (max-width: 640px) {
  .bag-grid { grid-template-columns: 1fr; gap: 44px; }
  .bag-main-image { padding: 30px 24px 22px; }
  .bag-card h3 { min-height: 0; font-size: 22px; }
  .bag-card dl { font-size: 12px; }
  .bag-card dl > div { grid-template-columns: 72px 1fr; }
  .bag-details, .bag-note, .bag-quote { font-size: 12px; }
  .catalog-toolbar > span:last-child { max-width: 150px; text-align: right; }
}
