/* Custom Gallery Widget Styles */

.custom-gallery {
    margin: 3rem 0;
}

.gallery-title {
    font-size: 1.75rem;
    font-weight: 700;
    margin-bottom: 2rem;
    text-align: center;
    color: var(--color-text, #2c3e50);
}

.gallery-grid {
    display: grid;
    gap: 1.5rem;
    grid-template-columns: repeat(3, 1fr);
}

/* Images per row variations */
.custom-gallery[data-images-per-row="1"] .gallery-grid {
    grid-template-columns: 1fr;
}

.custom-gallery[data-images-per-row="2"] .gallery-grid {
    grid-template-columns: repeat(2, 1fr);
}

.custom-gallery[data-images-per-row="3"] .gallery-grid {
    grid-template-columns: repeat(3, 1fr);
}

.custom-gallery[data-images-per-row="4"] .gallery-grid {
    grid-template-columns: repeat(4, 1fr);
}

.custom-gallery[data-images-per-row="5"] .gallery-grid {
    grid-template-columns: repeat(5, 1fr);
}

.custom-gallery[data-images-per-row="6"] .gallery-grid {
    grid-template-columns: repeat(6, 1fr);
}

/* Gallery item */
.gallery-item {
    position: relative;
    overflow: hidden;
}

.gallery-link {
    display: block;
    text-decoration: none;
}

.gallery-image-wrapper {
    position: relative;
    width: 100%;
    overflow: hidden;
    background-color: transparent;
}

.gallery-image-wrapper img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
    display: block;
}

.gallery-link:hover .gallery-image-wrapper img {
    transform: scale(1.05);
}

/* Aspect ratios */
.aspect-square .gallery-image-wrapper {
    aspect-ratio: 1 / 1;
}

.aspect-extra-wide .gallery-image-wrapper {
    aspect-ratio: 21 / 9;
}

.aspect-wide .gallery-image-wrapper {
    aspect-ratio: 3 / 2;
}

.aspect-landscape .gallery-image-wrapper {
    aspect-ratio: 16 / 9;
}

.aspect-rectangular .gallery-image-wrapper {
    aspect-ratio: 4 / 3;
}

.aspect-portrait .gallery-image-wrapper {
    aspect-ratio: 9 / 16;
}

.aspect-original .gallery-image-wrapper {
    aspect-ratio: auto;
}

.aspect-original .gallery-image-wrapper img {
    object-fit: contain;
    height: auto;
}

/* Size variations */
.size-thumbnail .gallery-image-wrapper {
    min-height: 150px;
}

.size-small .gallery-image-wrapper {
    min-height: 200px;
}

.size-medium .gallery-image-wrapper {
    min-height: 300px;
}

.size-large .gallery-image-wrapper {
    min-height: 400px;
}

/* Caption styling */
.gallery-caption {
    padding: 0.75rem;
    font-size: 0.95rem;
    color: var(--color-text-light, #666);
    text-align: center;
    background-color: transparent;
}

/* Caption spacing options */
.caption-spacing-close .gallery-caption {
    padding: 0.25rem 0.5rem;
    margin: 0.25rem 0;
}

.caption-spacing-normal .gallery-caption {
    padding: 0.75rem;
    margin: 0;
}

/* Caption alignment options */
.caption-align-left .gallery-caption {
    text-align: left;
}

.caption-align-middle .gallery-caption {
    text-align: center;
}

.caption-align-right .gallery-caption {
    text-align: right;
}

/* Responsive design */
@media (max-width: 991px) {
    .custom-gallery[data-images-per-row="5"] .gallery-grid,
    .custom-gallery[data-images-per-row="6"] .gallery-grid {
        grid-template-columns: repeat(3, 1fr);
    }
    
    .custom-gallery[data-images-per-row="4"] .gallery-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 767px) {
    .gallery-grid {
        gap: 1rem;
    }
    
    .custom-gallery[data-images-per-row="3"] .gallery-grid,
    .custom-gallery[data-images-per-row="4"] .gallery-grid,
    .custom-gallery[data-images-per-row="5"] .gallery-grid,
    .custom-gallery[data-images-per-row="6"] .gallery-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 575px) {
    .gallery-grid {
        gap: 0.75rem;
    }
    
    .custom-gallery[data-images-per-row="2"] .gallery-grid,
    .custom-gallery[data-images-per-row="3"] .gallery-grid,
    .custom-gallery[data-images-per-row="4"] .gallery-grid,
    .custom-gallery[data-images-per-row="5"] .gallery-grid,
    .custom-gallery[data-images-per-row="6"] .gallery-grid {
        grid-template-columns: 1fr;
    }
    
    .gallery-title {
        font-size: 1.5rem;
        margin-bottom: 1.5rem;
    }
}
