/* LT Design Kits — Atomic Grid Presets */

/*
 * The preset is applied to Elementor's native e-grid through Atomic `classes`
 * props. `!important` is intentionally limited to the grid tracks and item
 * placement: local Atomic layout styles may be emitted after this stylesheet,
 * while gap, size, padding and height remain under Elementor's native controls.
 */
:is(.e-atomic-element, .e-con)[class*="ldk-ag-preset-"] {
    display: grid !important;
    grid-auto-flow: row dense !important;
    align-items: stretch;
}

[class*="ldk-ag-preset-"] > [class*="ldk-ag-item-"],
[class*="ldk-ag-preset-"] > :nth-child(-n+8):not(.e-grid-outline):not([data-grid-outline]) {
    min-width: 0;
    min-height: 0;
    align-self: stretch !important;
    justify-self: stretch !important;
}

/* 2+1: two stacked items on the left and one tall item on the right. */
:is(.e-atomic-element, .e-con).ldk-ag-preset-2-1 {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    grid-template-rows: repeat(2, minmax(0, 1fr)) !important;
}
:is(.e-atomic-element, .e-con).ldk-ag-preset-2-1 > .ldk-ag-item-1,
:is(.e-atomic-element, .e-con).ldk-ag-preset-2-1 > :nth-child(1):not(.e-grid-outline):not([data-grid-outline]) { grid-column: 1 !important; grid-row: 1 !important; }
:is(.e-atomic-element, .e-con).ldk-ag-preset-2-1 > .ldk-ag-item-2,
:is(.e-atomic-element, .e-con).ldk-ag-preset-2-1 > :nth-child(2):not(.e-grid-outline):not([data-grid-outline]) { grid-column: 1 !important; grid-row: 2 !important; }
:is(.e-atomic-element, .e-con).ldk-ag-preset-2-1 > .ldk-ag-item-3,
:is(.e-atomic-element, .e-con).ldk-ag-preset-2-1 > :nth-child(3):not(.e-grid-outline):not([data-grid-outline]) { grid-column: 2 !important; grid-row: 1 / span 2 !important; }

/* 1+2: one tall item on the left and two stacked items on the right. */
:is(.e-atomic-element, .e-con).ldk-ag-preset-1-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    grid-template-rows: repeat(2, minmax(0, 1fr)) !important;
}
:is(.e-atomic-element, .e-con).ldk-ag-preset-1-2 > .ldk-ag-item-1,
:is(.e-atomic-element, .e-con).ldk-ag-preset-1-2 > :nth-child(1):not(.e-grid-outline):not([data-grid-outline]) { grid-column: 1 !important; grid-row: 1 / span 2 !important; }
:is(.e-atomic-element, .e-con).ldk-ag-preset-1-2 > .ldk-ag-item-2,
:is(.e-atomic-element, .e-con).ldk-ag-preset-1-2 > :nth-child(2):not(.e-grid-outline):not([data-grid-outline]) { grid-column: 2 !important; grid-row: 1 !important; }
:is(.e-atomic-element, .e-con).ldk-ag-preset-1-2 > .ldk-ag-item-3,
:is(.e-atomic-element, .e-con).ldk-ag-preset-1-2 > :nth-child(3):not(.e-grid-outline):not([data-grid-outline]) { grid-column: 2 !important; grid-row: 2 !important; }

/* Simple 2×2. */
:is(.e-atomic-element, .e-con).ldk-ag-preset-2x2 {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    grid-template-rows: repeat(2, minmax(0, 1fr)) !important;
}

/* Hero + three stacked items. */
:is(.e-atomic-element, .e-con).ldk-ag-preset-hero-left {
    grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr) !important;
    grid-template-rows: repeat(3, minmax(0, 1fr)) !important;
}
:is(.e-atomic-element, .e-con).ldk-ag-preset-hero-left > .ldk-ag-item-1,
:is(.e-atomic-element, .e-con).ldk-ag-preset-hero-left > :nth-child(1):not(.e-grid-outline):not([data-grid-outline]) { grid-column: 1 !important; grid-row: 1 / span 3 !important; }
:is(.e-atomic-element, .e-con).ldk-ag-preset-hero-left > .ldk-ag-item-2,
:is(.e-atomic-element, .e-con).ldk-ag-preset-hero-left > :nth-child(2):not(.e-grid-outline):not([data-grid-outline]) { grid-column: 2 !important; grid-row: 1 !important; }
:is(.e-atomic-element, .e-con).ldk-ag-preset-hero-left > .ldk-ag-item-3,
:is(.e-atomic-element, .e-con).ldk-ag-preset-hero-left > :nth-child(3):not(.e-grid-outline):not([data-grid-outline]) { grid-column: 2 !important; grid-row: 2 !important; }
:is(.e-atomic-element, .e-con).ldk-ag-preset-hero-left > .ldk-ag-item-4,
:is(.e-atomic-element, .e-con).ldk-ag-preset-hero-left > :nth-child(4):not(.e-grid-outline):not([data-grid-outline]) { grid-column: 2 !important; grid-row: 3 !important; }

:is(.e-atomic-element, .e-con).ldk-ag-preset-hero-right {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr) !important;
    grid-template-rows: repeat(3, minmax(0, 1fr)) !important;
}
:is(.e-atomic-element, .e-con).ldk-ag-preset-hero-right > .ldk-ag-item-1,
:is(.e-atomic-element, .e-con).ldk-ag-preset-hero-right > :nth-child(1):not(.e-grid-outline):not([data-grid-outline]) { grid-column: 1 !important; grid-row: 1 !important; }
:is(.e-atomic-element, .e-con).ldk-ag-preset-hero-right > .ldk-ag-item-2,
:is(.e-atomic-element, .e-con).ldk-ag-preset-hero-right > :nth-child(2):not(.e-grid-outline):not([data-grid-outline]) { grid-column: 1 !important; grid-row: 2 !important; }
:is(.e-atomic-element, .e-con).ldk-ag-preset-hero-right > .ldk-ag-item-3,
:is(.e-atomic-element, .e-con).ldk-ag-preset-hero-right > :nth-child(3):not(.e-grid-outline):not([data-grid-outline]) { grid-column: 1 !important; grid-row: 3 !important; }
:is(.e-atomic-element, .e-con).ldk-ag-preset-hero-right > .ldk-ag-item-4,
:is(.e-atomic-element, .e-con).ldk-ag-preset-hero-right > :nth-child(4):not(.e-grid-outline):not([data-grid-outline]) { grid-column: 2 !important; grid-row: 1 / span 3 !important; }

/* Four-item bento. */
:is(.e-atomic-element, .e-con).ldk-ag-preset-bento {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    grid-template-rows: repeat(2, minmax(0, 1fr)) !important;
}
:is(.e-atomic-element, .e-con).ldk-ag-preset-bento > .ldk-ag-item-1,
:is(.e-atomic-element, .e-con).ldk-ag-preset-bento > :nth-child(1):not(.e-grid-outline):not([data-grid-outline]) { grid-column: 1 / span 2 !important; grid-row: 1 !important; }
:is(.e-atomic-element, .e-con).ldk-ag-preset-bento > .ldk-ag-item-2,
:is(.e-atomic-element, .e-con).ldk-ag-preset-bento > :nth-child(2):not(.e-grid-outline):not([data-grid-outline]) { grid-column: 3 !important; grid-row: 1 !important; }
:is(.e-atomic-element, .e-con).ldk-ag-preset-bento > .ldk-ag-item-3,
:is(.e-atomic-element, .e-con).ldk-ag-preset-bento > :nth-child(3):not(.e-grid-outline):not([data-grid-outline]) { grid-column: 1 !important; grid-row: 2 !important; }
:is(.e-atomic-element, .e-con).ldk-ag-preset-bento > .ldk-ag-item-4,
:is(.e-atomic-element, .e-con).ldk-ag-preset-bento > :nth-child(4):not(.e-grid-outline):not([data-grid-outline]) { grid-column: 2 / span 2 !important; grid-row: 2 !important; }

/* Three-item irregular mosaic. */
:is(.e-atomic-element, .e-con).ldk-ag-preset-irregular {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    grid-template-rows: repeat(2, minmax(0, 1fr)) !important;
}
:is(.e-atomic-element, .e-con).ldk-ag-preset-irregular > .ldk-ag-item-1,
:is(.e-atomic-element, .e-con).ldk-ag-preset-irregular > :nth-child(1):not(.e-grid-outline):not([data-grid-outline]) { grid-column: 1 / span 2 !important; grid-row: 1 / span 2 !important; }
:is(.e-atomic-element, .e-con).ldk-ag-preset-irregular > .ldk-ag-item-2,
:is(.e-atomic-element, .e-con).ldk-ag-preset-irregular > :nth-child(2):not(.e-grid-outline):not([data-grid-outline]) { grid-column: 3 !important; grid-row: 1 !important; }
:is(.e-atomic-element, .e-con).ldk-ag-preset-irregular > .ldk-ag-item-3,
:is(.e-atomic-element, .e-con).ldk-ag-preset-irregular > :nth-child(3):not(.e-grid-outline):not([data-grid-outline]) { grid-column: 3 !important; grid-row: 2 !important; }

/* Optional media fill. Only direct Atomic Image output is altered. */
.ldk-ag-media-cover > [class*="ldk-ag-item-"],
.ldk-ag-media-cover > :nth-child(-n+8):not(.e-grid-outline):not([data-grid-outline]) {
    overflow: hidden;
}

.ldk-ag-media-cover > a:has(> img) {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
}

.ldk-ag-media-cover > img,
.ldk-ag-media-cover > a > img,
.elementor-editor-active .ldk-ag-media-cover > .elementor-element[data-element_type="e-image"] img {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
}
