.custom-image-gallery {
  display: block;
  padding-bottom: var(--gallery-padding-bottom);
}
.custom-image-gallery__header { text-align: center; margin-bottom: 30px; }
.custom-image-gallery__title { font-size: 2em; margin: 0 0 10px; }
.custom-image-gallery__description { color: #666; font-size: 1em; }
.custom-image-gallery__wrapper { position: relative; }
.custom-image-gallery__container { position: relative; gap: var(--gallery-gap); }
.custom-image-gallery__container > * { min-inline-size: 0; }
.custom-image-gallery__item { position: relative; overflow: hidden; background: #fff; }
.custom-image-gallery__link { display: block; color: inherit; text-decoration: none; }
.custom-image-gallery__image-wrapper { position: relative; overflow: hidden; }
.custom-image-gallery__image { display: block; width: 100%; height: auto; transition: transform 0.3s ease; }
.custom-image-gallery__image--mobile { display: none; }
.custom-image-gallery__placeholder { display: block; width: 100%; height: auto; background: #f5f5f5; }
.custom-image-gallery__placeholder svg { display: block; width: 100%; height: auto; }
.custom-image-gallery__item-content { padding: 15px; }
.custom-image-gallery__item-title { margin: 0 0 8px; font-size: 1.2em; font-weight: 600; }
.custom-image-gallery__item-description { margin: 0; color: #666; font-size: 0.95em; line-height: 1.5; }
.custom-image-gallery__nav { display: none; position: absolute; top: 50%; z-index: 10; align-items: center; justify-content: center; width: 48px; height: 48px; padding: 0; border: 1px solid #ddd; border-radius: 50%; background: rgba(255,255,255,0.9); box-shadow: 0 2px 8px rgba(0,0,0,0.1); color: #000; cursor: pointer; transform: translateY(-50%); transition: opacity 0.2s ease, box-shadow 0.2s ease; }
.custom-image-gallery__nav:hover { box-shadow: 0 4px 12px rgba(0,0,0,0.15); }
.custom-image-gallery__nav:disabled { opacity: 0.3; cursor: not-allowed; }
.custom-image-gallery__nav--previous { left: -24px; }
.custom-image-gallery__nav--next { right: -24px; }
.custom-image-gallery__dots { margin-top: 10px; }
@media (min-width: 769px) {
  .custom-image-gallery[data-desktop-layout=grid] .custom-image-gallery__container { display: grid; grid-template-columns: repeat(var(--gallery-desktop-columns), minmax(0, 1fr)); }
  .custom-image-gallery[data-desktop-layout=scroll] .custom-image-gallery__container { display: flex; overflow-x: auto; scroll-behavior: smooth; scroll-snap-type: x mandatory; scrollbar-width: none; }
  .custom-image-gallery[data-desktop-layout=scroll] .custom-image-gallery__container::-webkit-scrollbar { display: none; }
  .custom-image-gallery[data-desktop-layout=scroll] .custom-image-gallery__container > * { flex: 0 0 calc((100% - (var(--gallery-desktop-columns) - 1) * var(--gallery-gap)) / var(--gallery-desktop-columns)); scroll-snap-align: start; }
  .custom-image-gallery[data-desktop-layout=scroll] .custom-image-gallery__nav { display: flex; }
  .custom-image-gallery[data-hover-effect=lift] .custom-image-gallery__container > * { transition: transform 0.3s ease, box-shadow 0.3s ease; }
  .custom-image-gallery[data-hover-effect=lift] .custom-image-gallery__container > *:hover { z-index: 2; box-shadow: 0 10px 30px rgba(0,0,0,0.15); transform: translateY(-10px); }
  .custom-image-gallery[data-hover-effect=lift] .custom-image-gallery__container > *:hover .custom-image-gallery__image { transform: scale(1.05); }
  .custom-image-gallery[data-hover-effect=lift] .custom-image-gallery__container { padding-block: 10px; }
}
@media (max-width: 768px) {
  .custom-image-gallery { padding-bottom: var(--gallery-padding-bottom-mobile); }
  .custom-image-gallery__image--desktop { display: none; }
  .custom-image-gallery__image--mobile { display: block; }
  .custom-image-gallery[data-mobile-layout=grid] .custom-image-gallery__container { display: grid; grid-template-columns: 1fr; }
  .custom-image-gallery[data-mobile-layout=scroll] .custom-image-gallery__container { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
  .custom-image-gallery[data-mobile-layout=scroll] .custom-image-gallery__container::-webkit-scrollbar { display: none; }
  .custom-image-gallery[data-mobile-layout=scroll] .custom-image-gallery__container > * { flex: 0 0 85%; scroll-snap-align: start; }
  .custom-image-gallery__item-title { font-size: 1.1em; }
  .custom-image-gallery__item-description { font-size: 0.9em; }
}

.custom-image-gallery .custom-image-gallery__nav[hidden] {
  display: none;
}
