.cmp-gallery{padding:16px 0}
.cmp-gallery__title{font-size:22px;font-weight:600;color:#111;margin:0 0 24px}
.cmp-gallery__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
@media(max-width:1024px){.cmp-gallery__grid{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:768px){.cmp-gallery__grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:480px){.cmp-gallery__grid{grid-template-columns:1fr}
}
.cmp-gallery__item{display:flex;flex-direction:column}
.cmp-gallery__link{display:flex;flex-direction:column;text-decoration:none;color:inherit}
.cmp-gallery__image-wrapper{width:100%;background-color:#f0f0f0;overflow:hidden}
.cmp-gallery__image{width:100%;height:auto;display:block;transition:opacity .2s ease}
.cmp-gallery__link:hover .cmp-gallery__image{opacity:.85}
.cmp-gallery__info{padding:10px 0 4px;display:flex;flex-direction:column;gap:6px}
.cmp-gallery__filename{display:block;font-size:13px;font-weight:600;color:#111;line-height:1.35;word-break:break-word}
.cmp-gallery__link:hover .cmp-gallery__filename{text-decoration:underline}
.cmp-gallery__meta{display:flex;flex-wrap:wrap;gap:16px}
.cmp-gallery__meta-item{display:flex;flex-direction:column;gap:1px}
.cmp-gallery__meta-label{font-size:9px;font-weight:700;color:#999;letter-spacing:.06em;text-transform:uppercase;line-height:1.2}
.cmp-gallery__meta-value{font-size:11px;font-weight:500;color:#444;line-height:1.2}
.search-result__loading{display:flex;align-items:center;justify-content:center;min-height:120px}
.search-result__loading-spinner{width:32px;height:32px;border:3px solid #e0e0e0;border-top-color:#555;border-radius:50%;animation:search-spin .7s linear infinite}
@keyframes search-spin{to{transform:rotate(360deg)}
}
.cmp-gallery--placeholder{border:2px dashed #ccc;padding:32px;text-align:center;background-color:#f5f5f5;border-radius:4px}
.cmp-gallery__placeholder-text{margin:0;color:#888;font-size:14px}