.elementor-widget-loop-grid .elementor-button{background-color:var( --e-global-color-accent );font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-size:var( --e-global-typography-accent-font-size );font-weight:var( --e-global-typography-accent-font-weight );line-height:var( --e-global-typography-accent-line-height );}.elementor-widget-loop-grid .elementor-pagination{font-family:var( --e-global-typography-secondary-font-family ), Sans-serif;font-size:var( --e-global-typography-secondary-font-size );font-weight:var( --e-global-typography-secondary-font-weight );line-height:var( --e-global-typography-secondary-line-height );}.elementor-widget-loop-grid .e-load-more-message{font-family:var( --e-global-typography-secondary-font-family ), Sans-serif;font-size:var( --e-global-typography-secondary-font-size );font-weight:var( --e-global-typography-secondary-font-weight );line-height:var( --e-global-typography-secondary-line-height );}.elementor-809 .elementor-element.elementor-element-46dc920{--grid-columns:4;--grid-row-gap:0rem;width:100%;max-width:100%;--grid-column-gap:0em;}.elementor-809 .elementor-element.elementor-element-46dc920 > .elementor-widget-container{margin:0px 0px 0px 0px;padding:0px 0px 0px 0px;}.elementor-809 .elementor-element.elementor-element-46dc920.elementor-element{--flex-grow:0;--flex-shrink:1;}.elementor-809 .elementor-element.elementor-element-46dc920 .elementor-loop-container{grid-auto-rows:1fr;}.elementor-809 .elementor-element.elementor-element-46dc920 .e-loop-item > .elementor-section, .elementor-809 .elementor-element.elementor-element-46dc920 .e-loop-item > .elementor-section > .elementor-container, .elementor-809 .elementor-element.elementor-element-46dc920 .e-loop-item > .e-con, .elementor-809 .elementor-element.elementor-element-46dc920 .e-loop-item .elementor-section-wrap  > .e-con{height:100%;}:root{--page-title-display:none;}@media(max-width:1024px){.elementor-widget-loop-grid .elementor-pagination{font-size:var( --e-global-typography-secondary-font-size );line-height:var( --e-global-typography-secondary-line-height );}.elementor-widget-loop-grid .elementor-button{font-size:var( --e-global-typography-accent-font-size );line-height:var( --e-global-typography-accent-line-height );}.elementor-widget-loop-grid .e-load-more-message{font-size:var( --e-global-typography-secondary-font-size );line-height:var( --e-global-typography-secondary-line-height );}.elementor-809 .elementor-element.elementor-element-46dc920{--grid-columns:2;}}@media(max-width:767px){.elementor-widget-loop-grid .elementor-pagination{font-size:var( --e-global-typography-secondary-font-size );line-height:var( --e-global-typography-secondary-line-height );}.elementor-widget-loop-grid .elementor-button{font-size:var( --e-global-typography-accent-font-size );line-height:var( --e-global-typography-accent-line-height );}.elementor-widget-loop-grid .e-load-more-message{font-size:var( --e-global-typography-secondary-font-size );line-height:var( --e-global-typography-secondary-line-height );}.elementor-809 .elementor-element.elementor-element-46dc920{--grid-columns:1;}}/* Start custom CSS for loop-grid, class: .elementor-element-46dc920 *//* ==========================================
   1. GLOBAL ARCHITECTURE (APPLIES TO ALL DEVICES)
   ========================================== */
.elementor-809 .elementor-element.elementor-element-46dc920 .elementor-loop-container {
    display: grid !important;
    gap: 3px !important; /* Uniform tight micro gap */
}

/* Base structural resets for card wrappers */
.elementor-809 .elementor-element.elementor-element-46dc920 .e-loop-item {
    margin: 0 !important;
    padding: 0 !important;
    position: relative !important; /* Anchor box for absolute positioning */
    overflow: hidden !important;   /* Keeps zoomed images inside the cards */
}

/* Force internal nested elements to fill the grid boxes */
.elementor-809 .elementor-element.elementor-element-46dc920 .e-loop-item .elementor-widget-wrap,
.elementor-809 .elementor-element.elementor-element-46dc920 .e-loop-item .elementor-container {
    padding: 0 !important;
    margin: 0 !important;
    height: 100% !important;
}

/* Global Image Cropping & Sizing */
.elementor-809 .elementor-element.elementor-element-46dc920 .e-loop-item img {
    width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    display: block !important;
    object-fit: cover !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    z-index: 1 !important;
    transition: transform 0.4s ease-in-out !important; /* Smooth zoom transition */
}

/* Grow animation on hover */
.elementor-809 .elementor-element.elementor-element-46dc920 .e-loop-item:hover img {
    transform: scale(1.08) !important;
}

/* Dynamic Gradient Overlay Layer */
.elementor-809 .elementor-element.elementor-element-46dc920 .e-loop-item::after {
    content: "" !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    background: linear-gradient(to bottom, rgba(0,0,0,0) 30%, rgba(0,0,0,0.85) 100%) !important;
    z-index: 2 !important; /* Sandwiched between image (1) and text (3) */
    pointer-events: none !important; /* Mouse actions fall through to card */
}

/* Layer text above overlay & ensure hover events pass through */
.elementor-809 .elementor-element.elementor-element-46dc920 .e-loop-item .elementor-widget-heading,
.elementor-809 .elementor-element.elementor-element-46dc920 .e-loop-item .elementor-widget-heading .elementor-heading-title,
.elementor-809 .elementor-element.elementor-element-46dc920 .e-loop-item .elementor-widget-post-title,
.elementor-809 .elementor-element.elementor-element-46dc920 .e-loop-item .elementor-widget-post-title .elementor-heading-title,
.elementor-809 .elementor-element.elementor-element-46dc920 .e-loop-item .elementor-widget-text-editor,
.elementor-809 .elementor-element.elementor-element-46dc920 .e-loop-item .elementor-post-info {
    z-index: 3 !important;
    pointer-events: none !important; /* Critical to prevent cursor glitches over text */
}


/* ==========================================
   2. DESKTOP LAYOUT (1200px and up)
   ========================================== */
@media (min-width: 1200px) {
    .elementor-809 .elementor-element.elementor-element-46dc920 .elementor-loop-container {
        grid-template-columns: repeat(4, 1fr) !important;
        grid-auto-rows: 300px !important; /* Total height: 500px */
    }
    .elementor-809 .elementor-element.elementor-element-46dc920 .e-loop-item { height: 100% !important; }
    .elementor-809 .elementor-element.elementor-element-46dc920 .e-loop-item:nth-of-type(5n-4) { grid-column: span 2 !important; grid-row: span 2 !important; } /* Card 1 */
    .elementor-809 .elementor-element.elementor-element-46dc920 .e-loop-item:nth-of-type(5n-3) { grid-column: span 1 !important; grid-row: span 1 !important; } /* Card 2 */
    .elementor-809 .elementor-element.elementor-element-46dc920 .e-loop-item:nth-of-type(5n-2), .elementor-809 .elementor-element.elementor-element-46dc920 .e-loop-item:nth-of-type(5n-1) { grid-column: span 1 !important; grid-row: span 1 !important; } /* Cards 3 & 4 */
    
    /* Small card font constraints */
    .elementor-809 .elementor-element.elementor-element-46dc920 .e-loop-item:nth-of-type(5n-1) .elementor-heading-title, 
    .elementor-809 .elementor-element.elementor-element-46dc920 .e-loop-item:nth-of-type(5n-2) .elementor-heading-title, 
    .elementor-809 .elementor-element.elementor-element-46dc920 .e-loop-item:nth-of-type(5n-3) .elementor-heading-title, 
    .elementor-809 .elementor-element.elementor-element-46dc920 .e-loop-item:nth-of-type(5n) .elementor-heading-title { 
        font-size: 17px !important; 
        line-height: 1.2em !important; 
    }
}


/* ==========================================
   3. SMALL LAPTOP & LAPTOP LANDSCAPE (1025px - 1199px)
   ========================================== */
@media (min-width: 1025px) and (max-width: 1199px) {
    .elementor-809 .elementor-element.elementor-element-46dc920 .elementor-loop-container {
        grid-template-columns: repeat(4, 1fr) !important;
        grid-auto-rows: 300px !important; /* Slightly shorter rows to prevent squishing */
    }
    .elementor-809 .elementor-element.elementor-element-46dc920 .e-loop-item { height: 100% !important; }
    .elementor-809 .elementor-element.elementor-element-46dc920 .e-loop-item:nth-of-type(5n-4) { grid-column: span 2 !important; grid-row: span 2 !important; }
    .elementor-809 .elementor-element.elementor-element-46dc920 .e-loop-item:nth-of-type(5n-3) { grid-column: span 1 !important; grid-row: span 1 !important; }
    .elementor-809 .elementor-element.elementor-element-46dc920 .e-loop-item:nth-of-type(5n-2), .elementor-809 .elementor-element.elementor-element-46dc920 .e-loop-item:nth-of-type(5n-1) { grid-column: span 1 !important; grid-row: span 1 !important; }
    
    .elementor-809 .elementor-element.elementor-element-46dc920 .e-loop-item:nth-of-type(5n-1) .elementor-heading-title, 
    .elementor-809 .elementor-element.elementor-element-46dc920 .e-loop-item:nth-of-type(5n) .elementor-heading-title { 
        font-size: 15px !important; 
        line-height: 1.2em !important; 
    }
}


/* ==========================================
   4. TABLET PORTRAIT LAYOUT (680px - 1024px)
   ========================================== */
@media (min-width: 680px) and (max-width: 1024px) {
    .elementor-809 .elementor-element.elementor-element-46dc920 .elementor-loop-container {
        grid-template-columns: repeat(2, 1fr) !important; /* Shifts safely to a clean 2-column track */
        grid-auto-rows: 240px !important;
    }
    /* Neutralize desktop spans so items balance into 2 equal columns */
    .elementor-809 .elementor-element.elementor-element-46dc920 .e-loop-item { 
        grid-column: span 1 !important; 
        grid-row: span 1 !important;
        height: 100% !important; 
    }
    /* Let the large card elegantly stretch across both columns on tablet view */
    .elementor-809 .elementor-element.elementor-element-46dc920 .e-loop-item:nth-of-type(4n-3) { 
        grid-column: span 2 !important; 
        grid-row: span 1 !important; 
    }
    .elementor-809 .elementor-element.elementor-element-46dc920 .e-loop-item .elementor-heading-title {
        font-size: 18px !important;
    }
}


/* ==========================================
   5. MOBILE PHONE LAYOUT (679px and below)
   ========================================== */
@media (max-width: 679px) {
    .elementor-809 .elementor-element.elementor-element-46dc920 .elementor-loop-container {
        grid-template-columns: 1fr !important; /* Pure single-column stream track */
    }
    .elementor-809 .elementor-element.elementor-element-46dc920 .e-loop-item {
        grid-column: span 1 !important;
        grid-row: auto !important;
        height: 280px !important; /* Locks clear card height bounding box on mobile */
    }
    .elementor-809 .elementor-element.elementor-element-46dc920 .e-loop-item .elementor-heading-title {
        font-size: 18px !important;
        line-height: 1.2em !important;
    }
}/* End custom CSS */