/* Base Grid Layout */
.asym-gallery-fe01b27c {
    display: flex;
    flex-wrap: wrap;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    overflow: hidden; /* Prevent moving outside container */
}

/* Base Item Styles */
.asym-gallery-item-fe01b27c {
    position: relative;
    overflow: hidden;
    flex: 1 1 100%;
    min-height: 40vh; /* Responsive base height */
    border-radius: 8px;
    box-sizing: border-box;
}

.asym-gallery-item-fe01b27c img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease-in-out;
}

/* Overlay & Hover Effects */
.asym-gallery-overlay-fe01b27c {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    padding: 2rem;
    opacity: 0;
    transition: opacity 0.4s ease-in-out;
    z-index: 10;
}

.asym-gallery-item-fe01b27c:hover img {
    transform: scale(1.1);
}

.asym-gallery-item-fe01b27c:hover .asym-gallery-overlay-fe01b27c {
    opacity: 1;
}

.asym-gallery-title-fe01b27c {
    margin: 0 0 10px 0;
    transform: translateY(20px);
    transition: transform 0.4s ease-in-out;
}

.asym-gallery-desc-fe01b27c {
    margin: 0;
    transform: translateY(20px);
    transition: transform 0.4s ease-in-out;
}

.asym-gallery-item-fe01b27c:hover .asym-gallery-title-fe01b27c,
.asym-gallery-item-fe01b27c:hover .asym-gallery-desc-fe01b27c {
    transform: translateY(0);
}

/* --- Layout Modifiers (Desktop) --- */
@media (min-width: 1025px) {
    /* Horizontal (Row) - elementor-layout-desktop-row */
    .elementor-layout-desktop-row .asym-gallery-fe01b27c {
        flex-direction: row;
    }
    
    .elementor-layout-desktop-row.elementor-grid-desktop-7030 .asym-gallery-item-fe01b27c:nth-child(2n+1) { flex: 0 0 calc(70% - (var(--grid-gap, 20px) / 2)); max-width: calc(70% - (var(--grid-gap, 20px) / 2)); }
    .elementor-layout-desktop-row.elementor-grid-desktop-7030 .asym-gallery-item-fe01b27c:nth-child(2n) { flex: 0 0 calc(30% - (var(--grid-gap, 20px) / 2)); max-width: calc(30% - (var(--grid-gap, 20px) / 2)); }

    .elementor-layout-desktop-row.elementor-grid-desktop-3070 .asym-gallery-item-fe01b27c:nth-child(2n+1) { flex: 0 0 calc(30% - (var(--grid-gap, 20px) / 2)); max-width: calc(30% - (var(--grid-gap, 20px) / 2)); }
    .elementor-layout-desktop-row.elementor-grid-desktop-3070 .asym-gallery-item-fe01b27c:nth-child(2n) { flex: 0 0 calc(70% - (var(--grid-gap, 20px) / 2)); max-width: calc(70% - (var(--grid-gap, 20px) / 2)); }
    
    .elementor-layout-desktop-row.elementor-grid-desktop-5050 .asym-gallery-item-fe01b27c { flex: 0 0 calc(50% - (var(--grid-gap, 20px) / 2)); max-width: calc(50% - (var(--grid-gap, 20px) / 2)); }
    .elementor-layout-desktop-row.elementor-grid-desktop-100 .asym-gallery-item-fe01b27c { flex: 0 0 100%; max-width: 100%; }

    /* Vertical (Column) - elementor-layout-desktop-column */
    .elementor-layout-desktop-column .asym-gallery-fe01b27c {
        flex-direction: column;
    }
    .elementor-layout-desktop-column.elementor-grid-desktop-7030 .asym-gallery-item-fe01b27c:nth-child(2n+1) { flex: 1; min-height: 70vh; max-width: 100%; width: 100%; }
    .elementor-layout-desktop-column.elementor-grid-desktop-7030 .asym-gallery-item-fe01b27c:nth-child(2n) { flex: 1; min-height: 30vh; max-width: 100%; width: 100%; }

    .elementor-layout-desktop-column.elementor-grid-desktop-3070 .asym-gallery-item-fe01b27c:nth-child(2n+1) { flex: 1; min-height: 30vh; max-width: 100%; width: 100%; }
    .elementor-layout-desktop-column.elementor-grid-desktop-3070 .asym-gallery-item-fe01b27c:nth-child(2n) { flex: 1; min-height: 70vh; max-width: 100%; width: 100%; }
}

/* --- Layout Modifiers (Tablet) --- */
@media (min-width: 768px) and (max-width: 1024px) {
    .elementor-layout-tablet-row .asym-gallery-fe01b27c { flex-direction: row; }
    
    .elementor-layout-tablet-row.elementor-grid-tablet-7030 .asym-gallery-item-fe01b27c:nth-child(2n+1) { flex: 0 0 calc(70% - (var(--grid-gap, 20px) / 2)); max-width: calc(70% - (var(--grid-gap, 20px) / 2)); }
    .elementor-layout-tablet-row.elementor-grid-tablet-7030 .asym-gallery-item-fe01b27c:nth-child(2n) { flex: 0 0 calc(30% - (var(--grid-gap, 20px) / 2)); max-width: calc(30% - (var(--grid-gap, 20px) / 2)); }

    .elementor-layout-tablet-row.elementor-grid-tablet-3070 .asym-gallery-item-fe01b27c:nth-child(2n+1) { flex: 0 0 calc(30% - (var(--grid-gap, 20px) / 2)); max-width: calc(30% - (var(--grid-gap, 20px) / 2)); }
    .elementor-layout-tablet-row.elementor-grid-tablet-3070 .asym-gallery-item-fe01b27c:nth-child(2n) { flex: 0 0 calc(70% - (var(--grid-gap, 20px) / 2)); max-width: calc(70% - (var(--grid-gap, 20px) / 2)); }

    .elementor-layout-tablet-row.elementor-grid-tablet-5050 .asym-gallery-item-fe01b27c { flex: 0 0 calc(50% - (var(--grid-gap, 20px) / 2)); max-width: calc(50% - (var(--grid-gap, 20px) / 2)); }
    .elementor-layout-tablet-row.elementor-grid-tablet-100 .asym-gallery-item-fe01b27c { flex: 0 0 100%; max-width: 100%; }

    .elementor-layout-tablet-column .asym-gallery-fe01b27c { flex-direction: column; }
    .elementor-layout-tablet-column.elementor-grid-tablet-7030 .asym-gallery-item-fe01b27c:nth-child(2n+1) { flex: 1; min-height: 50vh; max-width: 100%; width: 100%; }
    .elementor-layout-tablet-column.elementor-grid-tablet-7030 .asym-gallery-item-fe01b27c:nth-child(2n) { flex: 1; min-height: 25vh; max-width: 100%; width: 100%; }
    .elementor-layout-tablet-column.elementor-grid-tablet-3070 .asym-gallery-item-fe01b27c:nth-child(2n+1) { flex: 1; min-height: 25vh; max-width: 100%; width: 100%; }
    .elementor-layout-tablet-column.elementor-grid-tablet-3070 .asym-gallery-item-fe01b27c:nth-child(2n) { flex: 1; min-height: 50vh; max-width: 100%; width: 100%; }
}

/* --- Layout Modifiers (Mobile) --- */
@media (max-width: 767px) {
    /* For smaller devices, forcing full width (or stacking) is usually better */
    .elementor-layout-mobile-row .asym-gallery-fe01b27c { flex-direction: column; }
    
    .elementor-layout-mobile-row.elementor-grid-mobile-7030 .asym-gallery-item-fe01b27c:nth-child(n),
    .elementor-layout-mobile-row.elementor-grid-mobile-3070 .asym-gallery-item-fe01b27c:nth-child(n),
    .elementor-layout-mobile-row.elementor-grid-mobile-5050 .asym-gallery-item-fe01b27c:nth-child(n),
    .elementor-layout-mobile-row.elementor-grid-mobile-100 .asym-gallery-item-fe01b27c:nth-child(n) {
        flex: 0 0 100%;
        max-width: 100%;
        min-height: 30vh;
    }

    .elementor-layout-mobile-column .asym-gallery-fe01b27c { flex-direction: column; }
    .elementor-layout-mobile-column.elementor-grid-mobile-7030 .asym-gallery-item-fe01b27c:nth-child(2n+1) { flex: 1; min-height: 50vh; max-width: 100%; width: 100%; }
    .elementor-layout-mobile-column.elementor-grid-mobile-7030 .asym-gallery-item-fe01b27c:nth-child(2n) { flex: 1; min-height: 20vh; max-width: 100%; width: 100%; }
    .elementor-layout-mobile-column.elementor-grid-mobile-3070 .asym-gallery-item-fe01b27c:nth-child(2n+1) { flex: 1; min-height: 20vh; max-width: 100%; width: 100%; }
    .elementor-layout-mobile-column.elementor-grid-mobile-3070 .asym-gallery-item-fe01b27c:nth-child(2n) { flex: 1; min-height: 50vh; max-width: 100%; width: 100%; }
}
