.product-image-gallery{position:relative;width:100%;max-width:500px;margin:0 auto}.main-image-container{position:relative;width:100%;background-color:#f8f9fa;border-radius:var(--radius-md, 8px);overflow:hidden;box-shadow:var(--shadow-md, 0 4px 8px rgba(0,0,0,.1));margin-bottom:15px;transition:all .3s ease}.main-image-container:hover{box-shadow:var(--shadow-lg, 0 8px 16px rgba(0,0,0,.15))}.main-image-container img{width:100%;height:auto;display:block;min-height:400px;object-fit:contain;background-color:#fff;transition:transform .3s ease}.main-image-container img:hover{transform:scale(1.02)}.image-loading-spinner{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:40px;height:40px;border:3px solid #f3f3f3;border-top:3px solid var(--primary-color, #2f661e);border-radius:50%;animation:spin 1s linear infinite;display:none;z-index:10}@keyframes spin{0%{transform:translate(-50%,-50%) rotate(0)}to{transform:translate(-50%,-50%) rotate(360deg)}}.main-image-container.loading .image-loading-spinner{display:block}.main-image-container.loading img{opacity:.5}.image-zoom-overlay{position:absolute;bottom:10px;right:10px;background-color:#ffffffe6;border-radius:50%;width:40px;height:40px;display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;transition:all .3s ease;box-shadow:0 2px 8px #0003;backdrop-filter:blur(4px)}.main-image-container:hover .image-zoom-overlay{opacity:1;transform:scale(1.1)}.image-zoom-overlay:hover{background-color:var(--primary-color, #2f661e);color:#fff}.zoom-icon{font-size:20px;transition:transform .3s ease}.image-zoom-overlay:hover .zoom-icon{transform:scale(1.2)}.image-thumbnails{display:flex;gap:10px;overflow-x:auto;padding:10px 0;scrollbar-width:thin;scrollbar-color:var(--primary-color, #2f661e) var(--primary-light, #eaf2e9);scroll-behavior:smooth}.image-thumbnails::-webkit-scrollbar{height:6px}.image-thumbnails::-webkit-scrollbar-track{background:var(--primary-light, #eaf2e9);border-radius:3px}.image-thumbnails::-webkit-scrollbar-thumb{background-color:var(--primary-color, #2f661e);border-radius:3px;transition:background-color .3s ease}.image-thumbnails::-webkit-scrollbar-thumb:hover{background-color:var(--primary-dark, #1e4d0f)}.thumbnail-item{flex:0 0 80px;height:80px;border:2px solid transparent;border-radius:var(--radius-sm, 4px);overflow:hidden;cursor:pointer;transition:all .3s ease;background-color:#fff;position:relative;box-shadow:0 2px 4px #0000001a}.thumbnail-item:hover{border-color:var(--primary-light, #eaf2e9);transform:translateY(-2px);box-shadow:0 4px 8px #00000026}.thumbnail-item.active{border-color:var(--primary-color, #2f661e);box-shadow:0 0 0 3px var(--primary-light, #eaf2e9);transform:translateY(-1px)}.thumbnail-item img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.thumbnail-item:hover img{transform:scale(1.05)}.thumbnail-label{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,#000c);color:#fff;font-size:.7em;padding:8px 4px 4px;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:0;transition:opacity .3s ease;font-weight:500}.thumbnail-item:hover .thumbnail-label,.thumbnail-item.active .thumbnail-label{opacity:1}.universal-image-modal{position:fixed;z-index:1000;left:0;top:0;width:100%;height:100%;background-color:#000000e6;backdrop-filter:blur(4px);animation:fadeIn .3s ease}.universal-image-modal .modal-content{margin:auto;display:block;width:90%;max-width:800px;position:relative;top:50%;transform:translateY(-50%);animation:zoomIn .3s ease}.universal-image-modal .close-modal{position:absolute;top:15px;right:35px;color:#f1f1f1;font-size:40px;font-weight:700;cursor:pointer;transition:all .3s ease;width:50px;height:50px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#00000080;backdrop-filter:blur(4px)}.universal-image-modal .close-modal:hover{color:#fff;background:#fff3;transform:scale(1.1)}.universal-image-modal img{width:100%;height:auto;border-radius:8px;box-shadow:0 8px 32px #00000080}.universal-image-modal #modal-caption{margin:auto;display:block;width:80%;max-width:700px;text-align:center;color:#ccc;padding:20px 0;font-size:1.1em;font-weight:500}.no-images-message{text-align:center;padding:60px 20px;background:linear-gradient(135deg,#f8f9fa,#e9ecef);border-radius:var(--radius-md, 8px);border:2px dashed #dee2e6;margin:20px 0}.no-images-message h3{color:#6c757d;margin:20px 0 10px;font-size:1.5em}.no-images-message p{color:#6c757d;margin:0;font-size:1.1em}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes zoomIn{0%{opacity:0;transform:translateY(-50%) scale(.8)}to{opacity:1;transform:translateY(-50%) scale(1)}}@keyframes slideInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.thumbnail-item{animation:slideInUp .3s ease forwards}.thumbnail-item:nth-child(2){animation-delay:.1s}.thumbnail-item:nth-child(3){animation-delay:.2s}.thumbnail-item:nth-child(4){animation-delay:.3s}.thumbnail-item:nth-child(5){animation-delay:.4s}@media(max-width:768px){.main-image-container img{min-height:300px}.thumbnail-item{flex:0 0 60px;height:60px}.image-zoom-overlay{width:35px;height:35px;bottom:8px;right:8px}.zoom-icon{font-size:16px}.universal-image-modal .modal-content{width:95%;padding:20px}.universal-image-modal .close-modal{top:10px;right:10px;font-size:30px;width:40px;height:40px}}@media(max-width:480px){.main-image-container img{min-height:250px}.thumbnail-item{flex:0 0 50px;height:50px}.thumbnail-label{font-size:.6em;padding:6px 2px 2px}.image-thumbnails{gap:6px;padding:8px 0}.universal-image-modal #modal-caption{font-size:1em;padding:15px 0}}.thumbnail-item,.main-image-container img,.image-zoom-overlay{will-change:transform}.image-thumbnails{contain:layout}.main-image-container{contain:layout style}@media(prefers-reduced-motion:reduce){.thumbnail-item,.main-image-container img,.image-zoom-overlay,.universal-image-modal .modal-content{transition:none;animation:none}.image-loading-spinner{animation:none}}
