/* Remove photo gutters and use a full-width main photo with thumbnails below. */
.product-gallery { display: flex; flex-direction: column; gap: 0; padding: 0; }
.product-gallery > .main-photo { order: 0; margin: 0; padding: 0; border: 0; }
.product-gallery > .product-thumbnails { order: 1; display: flex; flex-direction: row; gap: 0; width: 100%; padding: 0; overflow-x: auto; }
.product-thumbnails .thumbnail { flex: 0 0 66px; width: 66px; margin: 0; padding: 0; border: 0; background: transparent; }
.product-thumbnails .thumbnail.is-active { outline: 2px solid var(--wine); outline-offset: -2px; }
.main-photo img { display: block; margin: 0; padding: 0; border: 0; }
.product-layout { column-gap: 24px; }
.product-grid, .category-grid, .instagram-grid { column-gap: 0; }
.product-rail { gap: 0; }
.product-rail > .product-card { flex-basis: 25%; }
.product-card-info { padding-inline: 10px; }
.photo-open { display: block; width: 100%; margin: 0; padding: 0; border: 0; border-radius: 0; overflow: hidden; background: transparent; cursor: zoom-in; line-height: 0; }
.photo-open > img { display: block; width: 100%; height: 100%; object-fit: cover; }
.quick-view > .photo-open { aspect-ratio: 3 / 4; }
.story-image .photo-open { height: 100%; }
.photo-open:focus-visible { outline: 2px solid var(--wine); outline-offset: -3px; }
/* A complete photo preview: no white mat, complete aspect ratio, controls outside the image. */
.photo-lightbox { position: fixed; inset: 0; z-index: 200; display: grid; grid-template-columns: 64px minmax(0, 1fr) 64px; grid-template-rows: minmax(0, 1fr) 58px; align-items: center; padding: 56px 16px 12px; background: rgb(14 11 12 / 96%); color: #fff; }
.photo-lightbox[hidden] { display: none; }
.photo-stage { position: relative; grid-column: 2; grid-row: 1; display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; min-width: 0; min-height: 0; margin: 0; padding: 0; overflow: auto; background: transparent; touch-action: pan-y; }
.photo-stage > img { display: block; width: auto; height: auto; max-width: 100%; max-height: 100%; margin: auto; padding: 0; border: 0; object-fit: contain; cursor: zoom-in; transition: transform 160ms ease; transform-origin: center; }
.photo-lightbox.is-zoomed .photo-stage { align-items: flex-start; justify-content: flex-start; touch-action: auto; }
.photo-lightbox.is-zoomed .photo-stage > img { max-width: none; max-height: none; width: auto; height: auto; transform: scale(var(--photo-zoom, var(--zoom, 2))); cursor: zoom-out; }
.photo-loading { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); color: #eee; font-size: 14px; }
.photo-lightbox button { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 10px; border: 1px solid rgb(255 255 255 / 28%); background: rgb(0 0 0 / 28%); color: #fff; cursor: pointer; }
.photo-lightbox button:hover { background: rgb(100 31 43 / 85%); }
.photo-lightbox button:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
.photo-close { position: absolute; top: 12px; right: 18px; font-size: 27px; line-height: 1; }
.photo-prev { grid-column: 1; grid-row: 1; justify-self: start; font-size: 34px; }
.photo-next { grid-column: 3; grid-row: 1; justify-self: end; font-size: 34px; }
.photo-toolbar { grid-column: 1 / -1; grid-row: 2; display: flex; justify-content: center; align-items: center; gap: 22px; font-size: 13px; }
.photo-toolbar button { min-width: 105px; font-size: 13px; }
@media (max-width: 960px) { .product-thumbnails .thumbnail { flex-basis: 56px; width: 56px; } .product-rail > .product-card { flex-basis: 33.333%; } }
@media (max-width: 680px) { .product-rail > .product-card { flex-basis: 50%; } .photo-lightbox { grid-template-columns: 44px minmax(0, 1fr) 44px; padding: 60px 0 8px; } .photo-stage { grid-column: 1 / -1; } .photo-prev, .photo-next { z-index: 2; } .photo-close { right: 12px; } }
@media (prefers-reduced-motion: reduce) { .photo-stage > img { transition: none; } }

.photo-error { position: absolute; inset: 35% 12px auto; text-align: center; color: #fff; font-size: 14px; line-height: 1.7; }
.photo-lightbox button[hidden], .photo-loading[hidden], .photo-error[hidden], .photo-stage > img[hidden] { display: none; }

.catalog-variants { width: 100%; border-collapse: collapse; font-size: 13px; line-height: 1.5; }
.catalog-variants caption { text-align: left; margin-bottom: 10px; color: var(--muted, #6b615b); }
.catalog-variants th, .catalog-variants td { text-align: left; padding: 10px 8px; border-bottom: 1px solid rgba(48, 40, 35, .14); vertical-align: top; }
.catalog-variants td:last-child { text-align: right; white-space: nowrap; }
