.isg-gallery-container { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 1px; padding: 1px; max-width: 1200px; margin: 0 auto; }
.isg-gallery-item { position: relative; overflow: hidden; box-shadow: 0 4px 8px rgba(0,0,0,.05); aspect-ratio: 4/5; cursor: pointer; background-color: #f0f0f0; }
.isg-gallery-item::after { content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0,0,0,.3); opacity: 0; transition: opacity .3s ease; pointer-events: none; }
.isg-gallery-item:hover::after { opacity: 1; }
.isg-gallery-item img { width: 100%; height: 100%; object-fit: cover; display: block; }
.isg-modal { display: none; position: fixed; z-index: 1000; left: 0; top: 0; width: 100%; height: 100%; background-color: rgba(0,0,0,.9); -webkit-backdrop-filter: blur(5px); backdrop-filter: blur(5px); align-items: center; justify-content: center; padding: 0; box-sizing: border-box; }
.isg-modal-image-wrapper { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.isg-modal-content { max-width: 95%; max-height: 95vh; display: block; animation-name: isg-zoom-in; animation-duration: .3s; border-radius: 8px; }
@keyframes isg-zoom-in { from { transform: scale(.8) } to { transform: scale(1) } }
.isg-close { position: absolute; top: 15px; right: 35px; color: #f1f1f1; font-size: 40px; font-weight: 700; cursor: pointer; z-index: 1001; }
.isg-close:focus, .isg-close:hover { color: #bbb; text-decoration: none; }
.isg-next, .isg-prev { cursor: pointer; position: absolute; top: 50%; width: auto; padding: 16px; margin-top: -50px; color: #fff; font-weight: 700; font-size: 24px; user-select: none; -webkit-user-select: none; background-color: rgba(0,0,0,.3); transition: background-color .3s ease; z-index: 1001; }
.isg-next { right: 0; }
.isg-prev { left: 0; }
.isg-next:hover, .isg-prev:hover { background-color: rgba(0,0,0,.6); }
@media (max-width: 768px) { .isg-gallery-container { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); } }
@media (max-width: 480px) { .isg-gallery-container { grid-template-columns: repeat(3, 1fr); } }