/*
 * The locator's flex-grid rule is scoped to #store_locator, an element single
 * store pages never render. The unscoped column widths still applied, so every
 * block sat at a fraction of the width as a plain block with dead space beside
 * it. Restore the flex context the grid was written for.
 */
body.single-stores .store-locator-row,
#store-locator-review.store-locator-row {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    margin-left: -10px;
    margin-right: -10px;
}

body.single-stores .store-locator-row > [class*="store-locator-col-"],
#store-locator-review.store-locator-row > [class*="store-locator-col-"] {
    box-sizing: border-box;
    padding-left: 10px;
    padding-right: 10px;
}

/*
 * Inside a standalone Elementor widget the block owns the full widget width:
 * the review form and the review list each span it and stack, rather than being
 * squeezed into the plugin's 50% grid columns with dead space alongside.
 * Swap this for a direct-child-only selector to get the two-column variant.
 */
[class*="elementor-widget-wpsl_store_"] > [class*="store-locator-col-"],
[class*="elementor-widget-wpsl_store_"] [class*="store-locator-col-"] {
    flex-basis: 100%;
    max-width: 100%;
}

[class*="elementor-widget-wpsl_store_"] .store-locator-row {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    margin-left: 0;
    margin-right: 0;
}

/* Cards carry a bottom margin; drop it on the last row item to avoid a gap. */
body.single-stores .store-locator-row > [class*="store-locator-col-"]:last-child
    > .store-locator-review-form-container {
    margin-bottom: 0;
}
