.mf-product-gallery__main { cursor: zoom-in; touch-action: pan-y pinch-zoom; }
.mf-product-gallery__main img:focus-visible { outline: 2px solid #a78c55; outline-offset: -4px; }
.mf-product-zoom {
    position: fixed;
    inset: 0;
    z-index: 7200;
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    padding: max(20px, env(safe-area-inset-top)) max(24px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) max(24px, env(safe-area-inset-left));
    background: #fff;
    overscroll-behavior: contain;
    animation: mfProductZoomIn .2s ease;
}
.mf-product-zoom[hidden] { display: none !important; }
.mf-product-zoom__header { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.mf-product-zoom__header h2 { margin: 0; color: #28251f; font: 600 clamp(15px, 2vw, 20px)/1.35 'Nunito Sans', sans-serif; }
.mf-product-zoom__close {
    display: grid;
    flex: 0 0 44px;
    width: 44px;
    height: 44px;
    padding: 0;
    place-items: center;
    border: 1px solid #e7e3dc;
    border-radius: 50%;
    background: #fff;
    color: #28251f;
    font: 300 30px/1 sans-serif;
    cursor: pointer;
    transition: border-color .18s ease, color .18s ease;
}
.mf-product-zoom__close:hover { border-color: #a78c55; color: #806b40; }
.mf-product-zoom__close:focus-visible { outline: 2px solid #a78c55; outline-offset: 4px; }
.mf-product-zoom__canvas { display: grid; min-height: 0; place-items: center; padding-top: 20px; overflow: hidden; }
.mf-product-zoom__canvas img { display: block; width: 100%; height: 100%; min-height: 0; max-width: 1440px; max-height: 100%; object-fit: contain; }
body.mf-product-zoom-open { overflow: hidden; }
@keyframes mfProductZoomIn { from { opacity: 0; } to { opacity: 1; } }
@media (max-width: 575px) {
    .mf-product-zoom { padding-right: max(16px, env(safe-area-inset-right)); padding-left: max(16px, env(safe-area-inset-left)); }
    .mf-product-zoom__header { gap: 12px; }
    .mf-product-zoom__canvas { padding-top: 12px; }
}
@media (prefers-reduced-motion: reduce) {
    .mf-product-zoom { animation: none; }
    .mf-product-zoom__close { transition: none; }
}
