/* ===== Image Gallery Block — bkbg-ig- ===== */ .bkbg-ig-wrapper { width: 100%; } /* ── Filter bar ──────────────────────────────────────────────────────────── */ .bkbg-ig-filter-bar { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 20px; background: var(--bkbg-ig-filter-bg, transparent); padding: var(--bkbg-ig-filter-bg, 0); border-radius: var(--bkbg-ig-filter-radius, 6px); } .bkbg-ig-filter-btn { padding: 6px 16px; border-radius: var(--bkbg-ig-filter-radius, 6px); border: 1px solid var(--bkbg-ig-filter-active, #2563eb); background: transparent; color: var(--bkbg-ig-filter-text, var(--bkbg-ig-filter-active, #2563eb)); font-family: var(--bkbg-ig-ft-font-family, inherit); font-size: var(--bkbg-ig-ft-font-size-d, var(--bkbg-ig-ft-sz, 13px)); font-weight: var(--bkbg-ig-ft-font-weight, var(--bkbg-ig-ft-w, 500)); font-style: var(--bkbg-ig-ft-font-style, normal); text-decoration: var(--bkbg-ig-ft-text-decoration, none); text-transform: var(--bkbg-ig-ft-text-transform, none); line-height: var(--bkbg-ig-ft-line-height-d, var(--bkbg-ig-ft-lh, 1.4)); letter-spacing: var(--bkbg-ig-ft-letter-spacing-d, normal); word-spacing: var(--bkbg-ig-ft-word-spacing-d, normal); cursor: pointer; transition: background 0.2s, color 0.2s; } .bkbg-ig-filter-btn.is-active, .bkbg-ig-filter-btn:hover { background: var(--bkbg-ig-filter-active, #2563eb); color: #fff; } /* ── Grid layout ─────────────────────────────────────────────────────────── */ .bkbg-ig-layout-grid .bkbg-ig-grid, .bkbg-ig-layout-justified .bkbg-ig-grid { display: grid; grid-template-columns: repeat(var(--bkbg-ig-cols, 3), 1fr); gap: var(--bkbg-ig-gap, 12px); } /* ── Masonry layout ──────────────────────────────────────────────────────── */ .bkbg-ig-layout-masonry .bkbg-ig-grid { columns: var(--bkbg-ig-cols, 3); gap: 0; column-gap: var(--bkbg-ig-gap, 12px); } .bkbg-ig-layout-masonry .bkbg-ig-item { break-inside: avoid; margin-bottom: var(--bkbg-ig-gap, 12px); } /* ── Gallery item ────────────────────────────────────────────────────────── */ .bkbg-ig-item { position: relative; overflow: hidden; border-radius: var(--bkbg-ig-radius, 8px); background: var(--bkbg-ig-bg, #f0f4f8); } /* ── Link wrapper ────────────────────────────────────────────────────────── */ .bkbg-ig-link { display: block; position: relative; overflow: hidden; text-decoration: none; width: 100%; height: 100%; } /* ── Image ───────────────────────────────────────────────────────────────── */ .bkbg-ig-img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 0.4s ease; } /* ── Overlay ─────────────────────────────────────────────────────────────── */ .bkbg-ig-overlay { position: absolute; inset: 0; background: var(--bkbg-ig-hover-bg, rgba(0,0,0,0.45)); opacity: 0; display: flex; align-items: center; justify-content: center; transition: opacity 0.3s ease; color: var(--bkbg-ig-icon-color, #fff); } .bkbg-ig-link:hover .bkbg-ig-overlay, .bkbg-ig-link:focus .bkbg-ig-overlay { opacity: 1; } .bkbg-ig-eye-icon { flex-shrink: 0; } /* ── Hover effects ───────────────────────────────────────────────────────── */ /* Zoom */ .bkbg-ig-hover-zoom .bkbg-ig-link:hover .bkbg-ig-img, .bkbg-ig-hover-zoom .bkbg-ig-link:focus .bkbg-ig-img { transform: scale(1.08); } /* Fade overlay handled by overlay opacity above */ .bkbg-ig-hover-fade .bkbg-ig-overlay { display: flex; } /* Caption slide */ .bkbg-ig-hover-caption-slide .bkbg-ig-caption-hover { transform: translateY(100%); transition: transform 0.35s ease; } .bkbg-ig-hover-caption-slide .bkbg-ig-link:hover .bkbg-ig-caption-hover, .bkbg-ig-hover-caption-slide .bkbg-ig-link:focus .bkbg-ig-caption-hover { transform: translateY(0); } /* Grayscale */ .bkbg-ig-hover-grayscale .bkbg-ig-img { filter: grayscale(80%); } .bkbg-ig-hover-grayscale .bkbg-ig-link:hover .bkbg-ig-img, .bkbg-ig-hover-grayscale .bkbg-ig-link:focus .bkbg-ig-img { filter: grayscale(0%); } /* ── Captions ────────────────────────────────────────────────────────────── */ .bkbg-ig-caption { position: absolute; bottom: 0; left: 0; right: 0; padding: 10px 12px; background: var(--bkbg-ig-cap-bg, rgba(0,0,0,0.55)); color: var(--bkbg-ig-cap-color, #fff); font-family: var(--bkbg-ig-cp-font-family, inherit); font-size: var(--bkbg-ig-cp-font-size-d, var(--bkbg-ig-cp-sz, 13px)); font-weight: var(--bkbg-ig-cp-font-weight, var(--bkbg-ig-cp-w, 400)); font-style: var(--bkbg-ig-cp-font-style, normal); text-decoration: var(--bkbg-ig-cp-text-decoration, none); text-transform: var(--bkbg-ig-cp-text-transform, none); line-height: var(--bkbg-ig-cp-line-height-d, var(--bkbg-ig-cp-lh, 1.4)); letter-spacing: var(--bkbg-ig-cp-letter-spacing-d, normal); word-spacing: var(--bkbg-ig-cp-word-spacing-d, normal); } .bkbg-ig-caption-hover { transform: translateY(100%); transition: transform 0.3s ease; } .bkbg-ig-link:hover .bkbg-ig-caption-hover, .bkbg-ig-link:focus .bkbg-ig-caption-hover { transform: translateY(0); } /* ── Filter hidden items ─────────────────────────────────────────────────── */ .bkbg-ig-item.is-hidden { display: none; } /* ── Lightbox overlay ────────────────────────────────────────────────────── */ .bkbg-ig-lightbox { position: fixed; inset: 0; z-index: 99999; background: rgba(0, 0, 0, 0.92); display: flex; align-items: center; justify-content: center; opacity: 0; pointer-events: none; transition: opacity 0.3s ease; } .bkbg-ig-lightbox.is-open { opacity: 1; pointer-events: auto; } .bkbg-ig-lb-inner { position: relative; max-width: 90vw; max-height: 90vh; display: flex; align-items: center; justify-content: center; } .bkbg-ig-lb-img { max-width: 90vw; max-height: 85vh; object-fit: contain; border-radius: 4px; display: block; box-shadow: 0 12px 60px rgba(0,0,0,0.6); transition: opacity 0.2s; } .bkbg-ig-lb-caption { position: absolute; bottom: -36px; left: 0; right: 0; text-align: center; color: #ccc; font-size: 14px; } .bkbg-ig-lb-close, .bkbg-ig-lb-prev, .bkbg-ig-lb-next { position: fixed; background: rgba(255,255,255,0.1); border: none; color: #fff; cursor: pointer; border-radius: 50%; width: 44px; height: 44px; display: flex; align-items: center; justify-content: center; transition: background 0.2s; font-size: 20px; line-height: 1; } .bkbg-ig-lb-close:hover, .bkbg-ig-lb-prev:hover, .bkbg-ig-lb-next:hover { background: rgba(255,255,255,0.22); } .bkbg-ig-lb-close { top: 20px; right: 20px; } .bkbg-ig-lb-prev { left: 20px; top: 50%; transform: translateY(-50%); } .bkbg-ig-lb-next { right: 20px; top: 50%; transform: translateY(-50%); } .bkbg-ig-lb-counter { position: fixed; bottom: 20px; left: 50%; transform: translateX(-50%); color: rgba(255,255,255,0.6); font-size: 13px; pointer-events: none; } /* ── Responsive typography ────────────────────────────────────────────────── */ @media (max-width: 1024px) { .bkbg-ig-caption { font-size: var(--bkbg-ig-cp-font-size-t, var(--bkbg-ig-cp-font-size-d, var(--bkbg-ig-cp-sz, 13px))); line-height: var(--bkbg-ig-cp-line-height-t, var(--bkbg-ig-cp-line-height-d, var(--bkbg-ig-cp-lh, 1.4))); letter-spacing: var(--bkbg-ig-cp-letter-spacing-t, var(--bkbg-ig-cp-letter-spacing-d, normal)); word-spacing: var(--bkbg-ig-cp-word-spacing-t, var(--bkbg-ig-cp-word-spacing-d, normal)); } .bkbg-ig-filter-btn { font-size: var(--bkbg-ig-ft-font-size-t, var(--bkbg-ig-ft-font-size-d, var(--bkbg-ig-ft-sz, 13px))); line-height: var(--bkbg-ig-ft-line-height-t, var(--bkbg-ig-ft-line-height-d, var(--bkbg-ig-ft-lh, 1.4))); letter-spacing: var(--bkbg-ig-ft-letter-spacing-t, var(--bkbg-ig-ft-letter-spacing-d, normal)); word-spacing: var(--bkbg-ig-ft-word-spacing-t, var(--bkbg-ig-ft-word-spacing-d, normal)); } } @media (max-width: 767px) { .bkbg-ig-caption { font-size: var(--bkbg-ig-cp-font-size-m, var(--bkbg-ig-cp-font-size-t, var(--bkbg-ig-cp-font-size-d, var(--bkbg-ig-cp-sz, 13px)))); line-height: var(--bkbg-ig-cp-line-height-m, var(--bkbg-ig-cp-line-height-t, var(--bkbg-ig-cp-line-height-d, var(--bkbg-ig-cp-lh, 1.4)))); letter-spacing: var(--bkbg-ig-cp-letter-spacing-m, var(--bkbg-ig-cp-letter-spacing-t, var(--bkbg-ig-cp-letter-spacing-d, normal))); word-spacing: var(--bkbg-ig-cp-word-spacing-m, var(--bkbg-ig-cp-word-spacing-t, var(--bkbg-ig-cp-word-spacing-d, normal))); } .bkbg-ig-filter-btn { font-size: var(--bkbg-ig-ft-font-size-m, var(--bkbg-ig-ft-font-size-t, var(--bkbg-ig-ft-font-size-d, var(--bkbg-ig-ft-sz, 13px)))); line-height: var(--bkbg-ig-ft-line-height-m, var(--bkbg-ig-ft-line-height-t, var(--bkbg-ig-ft-line-height-d, var(--bkbg-ig-ft-lh, 1.4)))); letter-spacing: var(--bkbg-ig-ft-letter-spacing-m, var(--bkbg-ig-ft-letter-spacing-t, var(--bkbg-ig-ft-letter-spacing-d, normal))); word-spacing: var(--bkbg-ig-ft-word-spacing-m, var(--bkbg-ig-ft-word-spacing-t, var(--bkbg-ig-ft-word-spacing-d, normal))); } } /* ── Responsive ──────────────────────────────────────────────────────────── */ @media (max-width: 768px) { .bkbg-ig-layout-grid .bkbg-ig-grid, .bkbg-ig-layout-justified .bkbg-ig-grid { grid-template-columns: repeat(var(--bkbg-ig-cols-tab, 2), 1fr); } .bkbg-ig-layout-masonry .bkbg-ig-grid { columns: var(--bkbg-ig-cols-tab, 2); } } @media (max-width: 480px) { .bkbg-ig-layout-grid .bkbg-ig-grid, .bkbg-ig-layout-justified .bkbg-ig-grid { grid-template-columns: repeat(var(--bkbg-ig-cols-mob, 1), 1fr); } .bkbg-ig-layout-masonry .bkbg-ig-grid { columns: var(--bkbg-ig-cols-mob, 1); } .bkbg-ig-lb-prev { left: 6px; } .bkbg-ig-lb-next { right: 6px; } }