/**
 * TP Grids — layout grids for Elementor containers
 *
 * IMPORTANT: Elementor boxed containers (e-con-boxed) wrap children in
 * .e-con-inner. We must target BOTH the container itself (for e-con-full)
 * AND .e-con-inner (for e-con-boxed) so widgets actually lay out in a grid.
 *
 * Specificity note: Elementor's `.e-con-boxed > .e-con-inner` is 0-2-0.
 * We use `.tp-xxx.e-con > .e-con-inner` (0-3-0) to always win.
 *
 * @package Technoproekt
 * @author  Kkalganov <https://kkalganov.com>
 */

/* ==========================================================================
   Widget width reset — Elementor sets width/max-width via
   --container-widget-width which constrains widgets to 25%/33% of
   the GRID container, not the cell. Override to fill grid cells.
   ========================================================================== */

.tp-services-grid.e-con > .e-con-inner > .elementor-widget,
.tp-services-grid.e-con.e-con-full > .elementor-widget,
.tp-advantages-grid.e-con > .e-con-inner > .elementor-widget,
.tp-advantages-grid.e-con.e-con-full > .elementor-widget,
.tp-sub-services-grid.e-con > .e-con-inner > .elementor-widget,
.tp-sub-services-grid.e-con.e-con-full > .elementor-widget,
.tp-related-grid.e-con > .e-con-inner > .elementor-widget,
.tp-related-grid.e-con.e-con-full > .elementor-widget,
.tp-clients-mini-grid.e-con > .e-con-inner > .elementor-widget,
.tp-clients-mini-grid.e-con.e-con-full > .elementor-widget {
    width: 100% !important;
    max-width: 100% !important;
    --container-widget-width: 100% !important;
    margin: 0 !important;
}

/* Force widget internals to fill grid cells for uniform row height */
.tp-services-grid .elementor-widget-container,
.tp-advantages-grid .elementor-widget-container,
.tp-sub-services-grid .elementor-widget-container,
.tp-related-grid .elementor-widget-container,
.tp-clients-mini-grid .elementor-widget-container {
    height: 100%;
}

/* ==========================================================================
   Services Grid — mobile-first (1 col → 2 col → 4 col)
   ========================================================================== */

.tp-services-grid.e-con.e-con-full,
.tp-services-grid.e-con > .e-con-inner,
.e-con-inner:has(> .elementor-widget-tp_service_card) {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 2px !important;
}

/* ==========================================================================
   Advantages Grid — mobile-first (1 col → 2 col → 4 col)
   ========================================================================== */

.tp-advantages-grid.e-con.e-con-full,
.tp-advantages-grid.e-con > .e-con-inner,
.e-con-inner:has(> .elementor-widget-tp_advantage_card) {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 2px !important;
}

/* ==========================================================================
   Services Page Grid — 1 col → 2 col → 3 col (for /uslugi/ page)
   ========================================================================== */

.tp-services-page-grid.e-con > .e-con-inner > .elementor-widget,
.tp-services-page-grid.e-con.e-con-full > .elementor-widget {
    width: 100% !important;
    max-width: 100% !important;
    --container-widget-width: 100% !important;
    margin: 0 !important;
}

.tp-services-page-grid .elementor-widget-container {
    height: 100%;
}

.tp-services-page-grid.e-con.e-con-full,
.tp-services-page-grid.e-con > .e-con-inner {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 0px !important;
}

/* ==========================================================================
   Sub-services Grid — 1 col → 2 col (for sub-service cards)
   ========================================================================== */

.tp-sub-services-grid.e-con.e-con-full,
.tp-sub-services-grid.e-con > .e-con-inner {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 0px !important;
}

/* ==========================================================================
   Related Grid — 1 col → 2 col → 3 col (for related services)
   ========================================================================== */

.tp-related-grid.e-con.e-con-full,
.tp-related-grid.e-con > .e-con-inner {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 0px !important;
}

/* ==========================================================================
   Clients Mini Grid — 1 col → 2 col → 4 col
   ========================================================================== */

.tp-clients-mini-grid.e-con.e-con-full,
.tp-clients-mini-grid.e-con > .e-con-inner {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 0px !important;
}

/* ==========================================================================
   Responsive (mobile-first)
   ========================================================================== */

@media (min-width: 769px) {
    .tp-services-grid.e-con.e-con-full,
    .tp-services-grid.e-con > .e-con-inner,
    .e-con-inner:has(> .elementor-widget-tp_service_card),
    .tp-advantages-grid.e-con.e-con-full,
    .tp-advantages-grid.e-con > .e-con-inner,
    .e-con-inner:has(> .elementor-widget-tp_advantage_card) {
        grid-template-columns: repeat(2, 1fr) !important;
    }

    .tp-services-page-grid.e-con.e-con-full,
    .tp-services-page-grid.e-con > .e-con-inner {
        grid-template-columns: repeat(2, 1fr) !important;
    }

    .tp-sub-services-grid.e-con.e-con-full,
    .tp-sub-services-grid.e-con > .e-con-inner,
    .tp-related-grid.e-con.e-con-full,
    .tp-related-grid.e-con > .e-con-inner,
    .tp-clients-mini-grid.e-con.e-con-full,
    .tp-clients-mini-grid.e-con > .e-con-inner {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}

@media (min-width: 1025px) {
    .tp-services-grid.e-con.e-con-full,
    .tp-services-grid.e-con > .e-con-inner,
    .e-con-inner:has(> .elementor-widget-tp_service_card),
    .tp-advantages-grid.e-con.e-con-full,
    .tp-advantages-grid.e-con > .e-con-inner,
    .e-con-inner:has(> .elementor-widget-tp_advantage_card) {
        grid-template-columns: repeat(4, 1fr) !important;
    }

    .tp-services-page-grid.e-con.e-con-full,
    .tp-services-page-grid.e-con > .e-con-inner {
        grid-template-columns: repeat(3, 1fr) !important;
    }

    .tp-related-grid.e-con.e-con-full,
    .tp-related-grid.e-con > .e-con-inner {
        grid-template-columns: repeat(3, 1fr) !important;
    }

    /* Sub-services inside content column (service-detail) — 2 cols */
    .tp-content-main .tp-sub-services-grid.e-con.e-con-full,
    .tp-content-main .tp-sub-services-grid.e-con > .e-con-inner {
        grid-template-columns: repeat(2, 1fr) !important;
    }

    /* Sub-services in full-width related section (sub-service page) — 4 cols */
    .tp-related-section .tp-sub-services-grid.e-con.e-con-full,
    .tp-related-section .tp-sub-services-grid.e-con > .e-con-inner {
        grid-template-columns: repeat(4, 1fr) !important;
    }

    .tp-clients-mini-grid.e-con.e-con-full,
    .tp-clients-mini-grid.e-con > .e-con-inner {
        grid-template-columns: repeat(4, 1fr) !important;
    }
}
