.storefront .product-page-grid { --bs-gutter-x: 0; row-gap: 24px; align-items: start; }
.storefront .product-gallery-column { padding-right: 24px !important; }
.storefront .product-details-column, .storefront .product-gallery { min-width: 0; }
.storefront .product-gallery-carousel { overflow: hidden; border-radius: 16px; background: #fff; }
/* Each original photo keeps its proportions and fills the column, including portrait photos. */
.storefront .product-gallery-photo { display: block; width: 100%; height: auto; }
.storefront .product-gallery-toolbar { display: flex; justify-content: flex-start; margin-bottom: 12px; }
.storefront .product-video-launch { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; }
.storefront .product-gallery-carousel .carousel-control-prev, .storefront .product-gallery-carousel .carousel-control-next { width: 36px; height: 36px; top: 50%; transform: translateY(-50%); border: 1px solid #d8cdd2; border-radius: 50%; background: rgb(59 6 36 / 72%); opacity: .9; }
.storefront .product-gallery-carousel .carousel-control-prev { left: 10px; }
.storefront .product-gallery-carousel .carousel-control-next { right: 10px; }
.storefront .product-gallery-carousel .carousel-control-prev-icon, .storefront .product-gallery-carousel .carousel-control-next-icon { width: 16px; height: 16px; }
.storefront .product-gallery-thumbnails { display: flex; gap: 8px; overflow-x: auto; padding: 10px 2px; scrollbar-width: thin; }
.storefront .product-gallery-thumbnail { flex: 0 0 72px; width: 72px; height: 72px; padding: 3px; border: 1px solid var(--ff-border); border-radius: 10px; background: #fff; color: var(--ff-muted); }
.storefront .product-gallery-thumbnail img { width: 100%; height: 100%; object-fit: cover; border-radius: 6px; }
.storefront .product-gallery-thumbnail.active { border-color: var(--ff-burgundy); box-shadow: 0 0 0 1px var(--ff-burgundy); }
.storefront .product-video-modal .modal-dialog { height: 100vh; height: 100dvh; }
.storefront .product-video-modal .modal-content { background: #161016; color: #fff; }
.storefront .product-video-modal .modal-header { flex: 0 0 auto; gap: 12px; border: 0; padding: max(8px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) 8px max(16px, env(safe-area-inset-left)); }
.storefront .product-video-modal .modal-title { margin-right: auto; color: #fff; font-family: inherit; font-size: 1rem; text-transform: none; }
.storefront .product-video-modal .btn-close, .storefront .product-video-fullscreen { box-sizing: border-box; flex: 0 0 44px; width: 44px; height: 44px; padding: 12px; margin: 0; }
.storefront .product-video-fullscreen { color: #fff; border: 1px solid #675b62; }
.storefront .product-video-fullscreen[hidden] { display: none; }
.storefront .product-video-fullscreen:hover, .storefront .product-video-fullscreen:focus-visible { color: #fff; background: #3b3037; }
.storefront .product-video-stage { position: relative; flex: 1 1 0; min-height: 0; padding: 0; overflow: hidden; background: #000; }
.storefront .product-video-stage iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.storefront .product-video-modal .modal-footer { flex: 0 0 auto; justify-content: center; border: 0; padding: 4px 12px max(4px, env(safe-area-inset-bottom)); }
.storefront .product-video-external { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; color: #f1e4eb; font-size: .85rem; text-decoration: underline; }
.storefront .product-video-external:hover, .storefront .product-video-external:focus-visible { color: #fff; }
.storefront .product-gallery-empty { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; aspect-ratio: 1; padding: 24px; border: 1px solid var(--ff-border); border-radius: 16px; color: #77666f; background: #faf8f9; text-align: center; }
.storefront .product-gallery-empty i { font-size: 3rem; }
.storefront .storefront-product-page .product-details { gap: 16px; padding: 0 0 0 12px; min-width: 0; }
.storefront .product-page-title { margin: 0; color: var(--ff-plum); font-family: "Playfair Display", Georgia, serif; font-size: clamp(1.7rem, 2.5vw, 2.2rem); font-weight: 500; line-height: 1.25; text-transform: none; overflow-wrap: anywhere; }
.storefront .product-details .articul { width: auto; max-width: none; align-self: start; padding: 4px 9px; background: var(--ff-soft); color: #77666f; font-size: .8rem; }
.storefront .product-section-title { margin: 0 0 8px; color: var(--ff-plum); font-family: inherit; font-size: 1rem; font-weight: 600; text-transform: none; }
.storefront .product-variant-option.btn-brand .product-variant-meta { color: #fff; }
.storefront .product-content { margin: 0; color: #636066; }
.storefront .product-details .product-price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px; margin-top: 0 !important; }
.storefront .product-unit-price-label { flex-basis: 100%; color: #636066; font-size: .85rem; }
.storefront .product-unit-price { color: var(--ff-plum); font-size: 1.7rem; font-weight: 600; }
.storefront .product-price-reduction { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 8px; max-width: 100%; }
.storefront .product-discount { display: inline-flex; align-items: center; padding: 3px 8px; border: 1px solid var(--ff-border); border-radius: 6px; background: var(--ff-soft); color: var(--ff-burgundy); font-size: .85rem; font-weight: 600; line-height: 1.4; white-space: nowrap; }
.storefront .storefront-product-page .old-price { color: #897b83; background: transparent; font-size: .9rem; }
.storefront .storefront-product-page .old-price::before { height: 1px; background: #897b83; transform: none; }
.storefront .product-purchase { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; padding: 18px; border: 1px solid var(--ff-border); border-radius: 12px; background: #faf8f9; }
.storefront .product-purchase-summary { min-width: 0; flex: 1 1 100px; text-align: right; }
.storefront .product-purchase-actions { display: flex; flex: 0 0 100%; justify-content: end; flex-wrap: wrap; gap: 8px; }
.storefront .product-purchase-actions .btn { flex: 1 1 auto; }
.storefront .product-purchase-actions .btn { min-height: 44px; }
.storefront .product-total-label { color: #636066; font-size: .85rem; }
.storefront #totalPrice { color: var(--ff-plum); font-size: 1.2rem; font-weight: 600; }
.storefront .quantity-input .btn { min-width: 40px; min-height: 44px; color: #715d67; border-color: var(--ff-filter-border); background: #fff; }
.storefront .quantity-input input { width: 56px; }
.storefront .quantity-input input.animate { color: var(--ff-plum); background: var(--ff-soft); }
.storefront .product-description { color: #51484e; overflow-wrap: anywhere; }
.storefront .product-dimensions { display: flex; flex-wrap: wrap; gap: 8px 20px; color: #636066; }
.storefront .product-breadcrumbs { overflow-wrap: anywhere; }
@media (max-width: 991.98px) {
    .storefront .product-gallery-column { padding-right: 0 !important; }
    .storefront .storefront-product-page .product-details { padding: 0; }
}
@media (max-width: 575.98px) {
    .storefront .product-purchase { padding: 12px; }
    .storefront .product-purchase-summary #totalPrice { font-size: 1.1rem; }
    .storefront .quantity-input .btn { min-width: 36px; }
    .storefront .quantity-input input { width: 44px; }
    .storefront .product-gallery-thumbnail { flex-basis: 60px; width: 60px; height: 60px; }
}
