/* ==========================================================================
   Webmaster Plus — global layout (gutters, full-bleed, header flush)
   ========================================================================== */

:root {
    --wm-container: 1360px;
    --wm-container-wide: min(1440px, calc(100% - 2 * var(--wm-gutter)));
    --wm-gutter: clamp(16px, 2.8vw, 36px);
}

/* v2 templates (page.php, home.php) use .wmplus-main — mirror .site-main shell */
.wmplus-main,
.wmplus-main--full {
    flex: 1 0 auto;
    display: block;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    background-color: var(--wm-brand-bg-soft, #faf9ff);
}

.wmplus-main > .elementor,
.wmplus-main--full > .elementor {
    width: 100%;
    max-width: none;
    margin-inline: 0;
}

/* PHP archive/about shells — module class is on <main> itself */
.site-main.wm-blog-archive,
.site-main.wm-ac-page {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
    background-color: transparent;
}

/* Body canvas matches module pages (no white side gutters) */
body:has(.wm-wd-page),
body:has(.wm-cd-page),
body:has(.wm-ec-page),
body:has(.wm-sl-page),
body:has(.wm-seo-page),
body:has(.wm-n8n-page),
body:has(.wm-pt-page),
body:has(.wm-dm-page),
body:has(.wm-vip-page),
body:has(.wm-product-page),
body:has(.wm-blog-page),
body:has(.wm-plus-home),
body:has(.wm-blog-archive),
body:has(.wm-ac-page) {
    background: var(--wm-brand-bg, #f7f6fe);
}

/* Shared inner wrapper — use in page CSS via *-wrap classes */
.wm-plus-wrap {
    width: 100%;
    max-width: var(--wm-container);
    margin-inline: auto;
    padding-inline: var(--wm-gutter);
}

/* All Webmaster Plus page shells inherit layout tokens */
.wm-wd-page,
.wm-cd-page,
.wm-ec-page,
.wm-sl-page,
.wm-seo-page,
.wm-n8n-page,
.wm-pt-page,
.wm-dm-page,
.wm-vip-page,
.wm-product-page,
.wm-blog-page,
.wm-blog-archive,
.wm-ac-page,
.wm-plus-home {
    --wm-wd-wrap: var(--wm-container);
    --wm-cd-wrap: var(--wm-container);
    --wm-ec-wrap: var(--wm-container);
    --wm-sl-wrap: var(--wm-container);
    --wm-seo-wrap: var(--wm-container);
    --wm-pt-wrap: min(var(--wm-container), calc(100% - 2 * var(--wm-gutter)));
    --nv-container: var(--wm-container);
    --nv-gutter: var(--wm-gutter);
}

/* ── Full-page shells (not modular section widgets) ── */
.wm-wd-page,
.wm-cd-page,
.wm-ec-page,
.wm-sl-page,
.wm-seo-page,
.wm-n8n-page,
.wm-pt-page,
.wm-dm-page,
.wm-vip-page:not(.wm-vip-page--section),
.wm-product-page:not(.wm-product-page--section),
.wm-blog-page:not(.wm-blog-page--section),
.wm-blog-archive:not(.wm-blog-archive--section),
.wm-ac-page:not(.wm-ac-page--section),
.wm-plus-home:not(.wm-plus-home--section) {
    position: relative;
    width: 100%;
    max-width: none;
    margin-inline: 0;
    box-sizing: border-box;
}

.elementor .wm-wd-page:not(.wm-wd-page--section),
.elementor .wm-cd-page:not(.wm-cd-page--section),
.wm-ec-page:not(.wm-ec-page--section),
.wm-sl-page:not(.wm-sl-page--section),
.wm-seo-page:not(.wm-seo-page--section),
.wm-n8n-page:not(.wm-n8n-page--section),
.elementor .wm-pt-page:not(.wm-pt-page--section),
.elementor .wm-dm-page:not(.wm-dm-page--section),
.elementor .wm-vip-page:not(.wm-vip-page--section),
.elementor .wm-product-page:not(.wm-product-page--section),
.elementor .wm-blog-page:not(.wm-blog-page--section),
.elementor .wm-plus-home:not(.wm-plus-home--section) {
    width: 100vw;
    max-width: 100vw;
    margin-inline: calc(50% - 50vw);
    box-sizing: border-box;
}

/* v2 full-width template — already edge-to-edge; skip 100vw breakout */
.wmplus-main .elementor .wm-wd-page:not(.wm-wd-page--section),
.wmplus-main .elementor .wm-cd-page:not(.wm-cd-page--section),
.wmplus-main .wm-ec-page:not(.wm-ec-page--section),
.wmplus-main .wm-sl-page:not(.wm-sl-page--section),
.wmplus-main .wm-seo-page:not(.wm-seo-page--section),
.wmplus-main .wm-n8n-page:not(.wm-n8n-page--section),
.wmplus-main .elementor .wm-pt-page:not(.wm-pt-page--section),
.wmplus-main .elementor .wm-dm-page:not(.wm-dm-page--section),
.wmplus-main .elementor .wm-vip-page:not(.wm-vip-page--section),
.wmplus-main .elementor .wm-product-page:not(.wm-product-page--section),
.wmplus-main .elementor .wm-blog-page:not(.wm-blog-page--section),
.wmplus-main .elementor .wm-blog-archive:not(.wm-blog-archive--section),
.wmplus-main .elementor .wm-ac-page:not(.wm-ac-page--section),
.wmplus-main .elementor .wm-plus-home:not(.wm-plus-home--section),
.wmplus-main--full .elementor .wm-wd-page:not(.wm-wd-page--section),
.wmplus-main--full .elementor .wm-cd-page:not(.wm-cd-page--section),
.wmplus-main--full .wm-ec-page:not(.wm-ec-page--section),
.wmplus-main--full .wm-sl-page:not(.wm-sl-page--section),
.wmplus-main--full .wm-seo-page:not(.wm-seo-page--section),
.wmplus-main--full .wm-n8n-page:not(.wm-n8n-page--section),
.wmplus-main--full .elementor .wm-pt-page:not(.wm-pt-page--section),
.wmplus-main--full .elementor .wm-dm-page:not(.wm-dm-page--section),
.wmplus-main--full .elementor .wm-vip-page:not(.wm-vip-page--section),
.wmplus-main--full .elementor .wm-product-page:not(.wm-product-page--section),
.wmplus-main--full .elementor .wm-blog-page:not(.wm-blog-page--section),
.wmplus-main--full .elementor .wm-blog-archive:not(.wm-blog-archive--section),
.wmplus-main--full .elementor .wm-ac-page:not(.wm-ac-page--section),
.wmplus-main--full .elementor .wm-plus-home:not(.wm-plus-home--section) {
    width: 100%;
    max-width: none;
    margin-inline: 0;
}


/* ── Elementor widget shell — zero side gutters ── */
.elementor-widget:has(.wm-wd-page),
.elementor-widget:has(.wm-cd-page,
.wm-ec-page,
.wm-sl-page,
.wm-seo-page,
.wm-n8n-page),
.elementor-widget:has(.wm-pt-page),
.elementor-widget:has(.wm-dm-page),
.elementor-widget:has(.wm-vip-page),
.elementor-widget:has(.wm-product-page),
.elementor-widget:has(.wm-blog-page),
.elementor-widget:has(.wm-plus-home) {
    --widgets-spacing: 0px;
    --widget-spacing: 0px;
    --kit-widget-spacing: 0px;
    width: 100%;
    max-width: 100%;
}

.elementor-widget:has(.wm-wd-page) > .elementor-widget-container,
.elementor-widget:has(.wm-cd-page,
.wm-ec-page,
.wm-sl-page,
.wm-seo-page,
.wm-n8n-page) > .elementor-widget-container,
.elementor-widget:has(.wm-pt-page) > .elementor-widget-container,
.elementor-widget:has(.wm-dm-page) > .elementor-widget-container,
.elementor-widget:has(.wm-vip-page) > .elementor-widget-container,
.elementor-widget:has(.wm-product-page) > .elementor-widget-container,
.elementor-widget:has(.wm-blog-page) > .elementor-widget-container,
.elementor-widget:has(.wm-plus-home) > .elementor-widget-container {
    padding: 0 !important;
    margin: 0 !important;
    max-width: 100% !important;
}

/* ── Elementor flex containers (v3+) ── */
.elementor-element:has(.wm-wd-page),
.elementor-element:has(.wm-cd-page,
.wm-ec-page,
.wm-sl-page,
.wm-seo-page,
.wm-n8n-page),
.elementor-element:has(.wm-pt-page),
.elementor-element:has(.wm-dm-page),
.elementor-element:has(.wm-vip-page),
.elementor-element:has(.wm-product-page),
.elementor-element:has(.wm-blog-page),
.elementor-element:has(.wm-blog-archive),
.elementor-element:has(.wm-ac-page),
.elementor-element:has(.wm-plus-home) {
    --container-max-width: 100%;
    --content-width: 100%;
    --width: 100%;
    --padding-left: 0px;
    --padding-right: 0px;
    --padding-inline-start: 0px;
    --padding-inline-end: 0px;
    max-width: 100% !important;
    width: 100% !important;
}

.elementor-element:has(.wm-wd-page) > .e-con-inner,
.elementor-element:has(.wm-cd-page,
.wm-ec-page,
.wm-sl-page,
.wm-seo-page,
.wm-n8n-page) > .e-con-inner,
.elementor-element:has(.wm-pt-page) > .e-con-inner,
.elementor-element:has(.wm-dm-page) > .e-con-inner,
.elementor-element:has(.wm-plus-home) > .e-con-inner {
    max-width: none !important;
    width: 100% !important;
    padding-inline: 0 !important;
    align-items: stretch !important;
    --align-items: stretch !important;
}

.elementor-element:has(.wm-vip-page) > .e-con-inner,
.elementor-element:has(.wm-blog-page) > .e-con-inner,
.elementor-element:has(.wm-product-page) > .e-con-inner {
    max-width: none !important;
    width: 100% !important;
    align-items: stretch !important;
    --align-items: stretch !important;
}

.e-con:has(.wm-wd-page),
.e-con:has(.wm-cd-page,
.wm-ec-page,
.wm-sl-page,
.wm-seo-page,
.wm-n8n-page),
.e-con:has(.wm-pt-page),
.e-con:has(.wm-dm-page),
.e-con:has(.wm-vip-page),
.e-con:has(.wm-product-page),
.e-con:has(.wm-blog-page),
.e-con:has(.wm-blog-archive),
.e-con:has(.wm-ac-page),
.e-con:has(.wm-plus-home) {
    --padding-left: 0px !important;
    --padding-right: 0px !important;
    --padding-inline-start: 0px !important;
    --padding-inline-end: 0px !important;
    --padding-top: 0px !important;
    --padding-block-start: 0px !important;
    --e-con-padding-block-start: 0px !important;
    --gap: 0px !important;
    --row-gap: 0px !important;
    --container-max-width: 100% !important;
    --content-width: 100% !important;
    --width: 100% !important;
    max-width: 100% !important;
    width: 100% !important;
    padding-inline: 0 !important;
    padding-top: 0 !important;
    padding-block-start: 0 !important;
    min-height: 0 !important;
    --min-height: 0px !important;
    height: auto !important;
    justify-content: flex-start !important;
    --justify-content: flex-start !important;
}

.e-con:has(.wm-wd-page) > .e-con-inner,
.e-con:has(.wm-cd-page,
.wm-ec-page,
.wm-sl-page,
.wm-seo-page,
.wm-n8n-page) > .e-con-inner,
.e-con:has(.wm-pt-page) > .e-con-inner,
.e-con:has(.wm-dm-page) > .e-con-inner,
.e-con:has(.wm-plus-home) > .e-con-inner,
.e-con:has(.wm-blog-archive) > .e-con-inner,
.e-con:has(.wm-ac-page) > .e-con-inner {
    max-width: none !important;
    width: 100% !important;
    padding-inline: 0 !important;
    padding-top: 0 !important;
    padding-block-start: 0 !important;
    gap: 0 !important;
    --gap: 0px !important;
    --row-gap: 0px !important;
    min-height: 0 !important;
    --min-height: 0px !important;
    height: auto !important;
    justify-content: flex-start !important;
    align-content: flex-start !important;
    --justify-content: flex-start !important;
    align-items: stretch !important;
    --align-items: stretch !important;
}

.e-con:has(.wm-vip-page) > .e-con-inner,
.e-con:has(.wm-blog-page) > .e-con-inner,
.e-con:has(.wm-blog-archive) > .e-con-inner,
.e-con:has(.wm-ac-page) > .e-con-inner,
.e-con:has(.wm-product-page) > .e-con-inner {
    max-width: none !important;
    width: 100% !important;
    padding-inline: 0 !important;
    padding-top: 0 !important;
    padding-block-start: 0 !important;
    gap: 0 !important;
    --gap: 0px !important;
    --row-gap: 0px !important;
    min-height: 0 !important;
    --min-height: 0px !important;
    height: auto !important;
    justify-content: flex-start !important;
    align-content: flex-start !important;
    --justify-content: flex-start !important;
    align-items: stretch !important;
    --align-items: stretch !important;
}

/* Modular section widgets must span the full container width */
.elementor-widget:has(.wm-wd-page),
.elementor-widget:has(.wm-cd-page,
.wm-ec-page,
.wm-sl-page,
.wm-seo-page,
.wm-n8n-page),
.elementor-widget:has(.wm-pt-page),
.elementor-widget:has(.wm-dm-page),
.elementor-widget:has(.wm-vip-page),
.elementor-widget:has(.wm-product-page),
.elementor-widget:has(.wm-blog-page),
.elementor-widget:has(.wm-blog-archive),
.elementor-widget:has(.wm-ac-page),
.elementor-widget:has(.wm-plus-home) {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 auto !important;
    align-self: stretch !important;
}

/* Section wrappers — full width (inner *-wrap classes constrain content) */
.wm-wd-page--section,
.wm-cd-page--section,
.wm-ec-page--section,
.wm-sl-page--section,
.wm-seo-page--section,
.wm-n8n-page--section,
.wm-pt-page--section,
.wm-dm-page--section,
.wm-vip-page--section,
.wm-product-page--section,
.wm-blog-page--section,
.wm-plus-home--section {
    width: 100%;
    max-width: none;
    margin-inline: 0;
}

.wm-sl-page--section.wm-sl-page,
.wm-wd-page--section.wm-wd-page,
.wm-seo-page--section.wm-seo-page,
.wm-n8n-page--section.wm-n8n-page,
.wm-n8n-page,
.wm-vip-page--section.wm-vip-page,
.wm-product-page--section.wm-product-page,
.wm-blog-page--section.wm-blog-page {
    background: transparent;
    padding: 0;
    overflow: visible;
}

/* Blog single — flat Theme Builder root (direct widget children, no .e-con-inner) */
:is(
    .elementor-location-single > .e-con.wm-blog-single-layout,
    .elementor-location-single > .e-con.e-parent:has(> .elementor-widget-blogsidebar),
    .elementor-location-single > .e-con.e-parent:has(> .elementor-widget-wmplus-blogsidebar)
) {
    display: grid !important;
    grid-template-columns: minmax(0, 7fr) minmax(0, 3fr);
    gap: 40px;
    max-width: var(--wm-container, 1360px) !important;
    margin-inline: auto !important;
    padding: 24px var(--wm-gutter, clamp(16px, 2.8vw, 36px)) 48px !important;
    align-items: start !important;
    align-content: start !important;
    direction: rtl;
}

:is(
    .elementor-location-single > .e-con.wm-blog-single-layout,
    .elementor-location-single > .e-con.e-parent:has(> .elementor-widget-blogsidebar),
    .elementor-location-single > .e-con.e-parent:has(> .elementor-widget-wmplus-blogsidebar)
) > :is(.elementor-widget-blogsinglebreadcrumb, .elementor-widget-wmplus-blogsinglebreadcrumb),
:is(
    .elementor-location-single > .e-con.wm-blog-single-layout,
    .elementor-location-single > .e-con.e-parent:has(> .elementor-widget-blogsidebar),
    .elementor-location-single > .e-con.e-parent:has(> .elementor-widget-wmplus-blogsidebar)
) > :is(.elementor-widget-blogsingleheader, .elementor-widget-wmplus-blogsingleheader) {
    grid-column: 1 / -1;
}

:is(
    .elementor-location-single > .e-con.wm-blog-single-layout,
    .elementor-location-single > .e-con.e-parent:has(> .elementor-widget-blogsidebar),
    .elementor-location-single > .e-con.e-parent:has(> .elementor-widget-wmplus-blogsidebar)
) > :is(.elementor-widget-blogsinglebreadcrumb, .elementor-widget-wmplus-blogsinglebreadcrumb) {
    margin-top: clamp(16px, 2vw, 28px);
    margin-bottom: 8px;
}

:is(
    .elementor-location-single > .e-con.wm-blog-single-layout,
    .elementor-location-single > .e-con.e-parent:has(> .elementor-widget-blogsidebar),
    .elementor-location-single > .e-con.e-parent:has(> .elementor-widget-wmplus-blogsidebar)
) > :is(.elementor-widget-blogsidebar, .elementor-widget-wmplus-blogsidebar) {
    grid-column: 2;
    align-self: start;
    order: 3;
}

:is(
    .elementor-location-single > .e-con.wm-blog-single-layout,
    .elementor-location-single > .e-con.e-parent:has(> .elementor-widget-blogsidebar),
    .elementor-location-single > .e-con.e-parent:has(> .elementor-widget-wmplus-blogsidebar)
) > :is(.elementor-widget-blogsingleintro, .elementor-widget-wmplus-blogsingleintro) {
    grid-column: 1;
    order: 3;
}

:is(
    .elementor-location-single > .e-con.wm-blog-single-layout,
    .elementor-location-single > .e-con.e-parent:has(> .elementor-widget-blogsidebar),
    .elementor-location-single > .e-con.e-parent:has(> .elementor-widget-wmplus-blogsidebar)
) > :is(.elementor-widget-blogsinglecontent, .elementor-widget-wmplus-blogsinglecontent) { order: 4; }

:is(
    .elementor-location-single > .e-con.wm-blog-single-layout,
    .elementor-location-single > .e-con.e-parent:has(> .elementor-widget-blogsidebar),
    .elementor-location-single > .e-con.e-parent:has(> .elementor-widget-wmplus-blogsidebar)
) > .wm-blog-toc-host { order: 4; grid-column: 1; }

:is(
    .elementor-location-single > .e-con.wm-blog-single-layout,
    .elementor-location-single > .e-con.e-parent:has(> .elementor-widget-blogsidebar),
    .elementor-location-single > .e-con.e-parent:has(> .elementor-widget-wmplus-blogsidebar)
) > :is(
    .elementor-widget-blogblocksstack, .elementor-widget-wmplus-blogblocksstack,
    .elementor-widget-bloginfolist, .elementor-widget-wmplus-bloginfolist,
    .elementor-widget-blogtipbox, .elementor-widget-wmplus-blogtipbox,
    .elementor-widget-bloghighlight, .elementor-widget-wmplus-bloghighlight,
    .elementor-widget-blogcomparetable, .elementor-widget-wmplus-blogcomparetable,
    .elementor-widget-blogarticletable, .elementor-widget-wmplus-blogarticletable,
    .elementor-widget-blogprocess, .elementor-widget-wmplus-blogprocess,
    .elementor-widget-blogpromoinline, .elementor-widget-wmplus-blogpromoinline
) { order: 4; }

:is(
    .elementor-location-single > .e-con.wm-blog-single-layout,
    .elementor-location-single > .e-con.e-parent:has(> .elementor-widget-blogsidebar),
    .elementor-location-single > .e-con.e-parent:has(> .elementor-widget-wmplus-blogsidebar)
) > :is(.elementor-widget-blogrelatedgrid, .elementor-widget-wmplus-blogrelatedgrid) { order: 5; }

:is(
    .elementor-location-single > .e-con.wm-blog-single-layout,
    .elementor-location-single > .e-con.e-parent:has(> .elementor-widget-blogsidebar),
    .elementor-location-single > .e-con.e-parent:has(> .elementor-widget-wmplus-blogsidebar)
) > :is(.elementor-widget-blogauthorbio, .elementor-widget-wmplus-blogauthorbio) { order: 6; }

:is(
    .elementor-location-single > .e-con.wm-blog-single-layout,
    .elementor-location-single > .e-con.e-parent:has(> .elementor-widget-blogsidebar),
    .elementor-location-single > .e-con.e-parent:has(> .elementor-widget-wmplus-blogsidebar)
) > :is(.elementor-widget-blogcomments, .elementor-widget-wmplus-blogcomments) { order: 7; }

:is(
    .elementor-location-single > .e-con.wm-blog-single-layout,
    .elementor-location-single > .e-con.e-parent:has(> .elementor-widget-blogsidebar),
    .elementor-location-single > .e-con.e-parent:has(> .elementor-widget-wmplus-blogsidebar)
) > .elementor-widget:not(:is(
    .elementor-widget-blogsinglebreadcrumb, .elementor-widget-wmplus-blogsinglebreadcrumb,
    .elementor-widget-blogsingleheader, .elementor-widget-wmplus-blogsingleheader,
    .elementor-widget-blogsidebar, .elementor-widget-wmplus-blogsidebar
)) {
    grid-column: 1;
    min-width: 0;
}

/* Blog single — nested container fallback (legacy import layout) */
.e-con:has(.wm-blog-page) > .e-con-inner > .e-con > .e-con-inner {
    display: grid !important;
    grid-template-columns: minmax(0, 7fr) minmax(0, 3fr);
    gap: 40px;
    max-width: var(--wm-container, 1360px) !important;
    margin-inline: auto !important;
    padding: 24px var(--wm-gutter, clamp(16px, 2.8vw, 36px)) 48px !important;
    align-items: start !important;
    align-content: start !important;
    direction: rtl;
}

.e-con:has(.wm-blog-page) > .e-con-inner > .e-con > .e-con-inner > .elementor-widget-blogsidebar,
.e-con:has(.wm-blog-page) > .e-con-inner > .e-con > .e-con-inner > .elementor-widget-wmplus-blogsidebar {
    grid-column: 2;
    align-self: start;
    order: 3;
}

.e-con:has(.wm-blog-page) > .e-con-inner > .e-con > .e-con-inner > .elementor-widget:not(.elementor-widget-blogsinglebreadcrumb):not(.elementor-widget-wmplus-blogsinglebreadcrumb):not(.elementor-widget-blogsingleheader):not(.elementor-widget-wmplus-blogsingleheader):not(.elementor-widget-blogsidebar):not(.elementor-widget-wmplus-blogsidebar) {
    grid-column: 1;
    min-width: 0;
}

/* Blog single — 70% main (right) + 30% sidebar (left) in RTL */
.e-con:has(.wm-blog-page) > .e-con-inner {
    display: grid !important;
    grid-template-columns: minmax(0, 7fr) minmax(0, 3fr);
    gap: 40px;
    max-width: var(--wm-container, 1360px) !important;
    margin-inline: auto !important;
    padding: 24px var(--wm-gutter, clamp(16px, 2.8vw, 36px)) 48px !important;
    align-items: start !important;
    align-content: start !important;
    direction: rtl;
}

.e-con:has(.wm-blog-page) > .e-con-inner > .elementor-widget-blogsinglebreadcrumb, .elementor-widget-wmplus-blogsinglebreadcrumb,
.e-con:has(.wm-blog-page) > .e-con-inner > .elementor-widget-blogsingleheader, .elementor-widget-wmplus-blogsingleheader {
    grid-column: 1 / -1;
}

.e-con:has(.wm-blog-page) > .e-con-inner > .elementor-widget-blogsinglebreadcrumb, .elementor-widget-wmplus-blogsinglebreadcrumb {
    margin-top: clamp(16px, 2vw, 28px);
    margin-bottom: 8px;
}

/* Left sidebar — only suggested posts + categories (same row as video) */
.e-con:has(.wm-blog-page) > .e-con-inner > .elementor-widget-blogsidebar, .elementor-widget-wmplus-blogsidebar {
    grid-column: 2;
    align-self: start;
    order: 3;
}

/* Main column flow */
.e-con:has(.wm-blog-page) > .e-con-inner > .elementor-widget-blogsingleintro, .elementor-widget-wmplus-blogsingleintro {
    grid-column: 1;
    order: 3;
}

.e-con:has(.wm-blog-page) > .e-con-inner > .elementor-widget-blogsinglecontent, .elementor-widget-wmplus-blogsinglecontent { order: 4; }
.e-con:has(.wm-blog-page) > .e-con-inner > .wm-blog-toc-host { order: 4; grid-column: 1; }
.e-con:has(.wm-blog-page) > .e-con-inner > .elementor-widget-blogblocksstack, .elementor-widget-wmplus-blogblocksstack,
.e-con:has(.wm-blog-page) > .e-con-inner > .elementor-widget-bloginfolist, .elementor-widget-wmplus-bloginfolist,
.e-con:has(.wm-blog-page) > .e-con-inner > .elementor-widget-blogtipbox, .elementor-widget-wmplus-blogtipbox,
.e-con:has(.wm-blog-page) > .e-con-inner > .elementor-widget-bloghighlight, .elementor-widget-wmplus-bloghighlight,
.e-con:has(.wm-blog-page) > .e-con-inner > .elementor-widget-blogcomparetable, .elementor-widget-wmplus-blogcomparetable,
.e-con:has(.wm-blog-page) > .e-con-inner > .elementor-widget-blogarticletable, .elementor-widget-wmplus-blogarticletable,
.e-con:has(.wm-blog-page) > .e-con-inner > .elementor-widget-blogprocess, .elementor-widget-wmplus-blogprocess,
.e-con:has(.wm-blog-page) > .e-con-inner > .elementor-widget-blogpromoinline, .elementor-widget-wmplus-blogpromoinline { order: 4; }
.e-con:has(.wm-blog-page) > .e-con-inner > .elementor-widget-blogrelatedgrid, .elementor-widget-wmplus-blogrelatedgrid { order: 5; }
.e-con:has(.wm-blog-page) > .e-con-inner > .elementor-widget-blogauthorbio, .elementor-widget-wmplus-blogauthorbio { order: 6; }
.e-con:has(.wm-blog-page) > .e-con-inner > .elementor-widget-blogcomments, .elementor-widget-wmplus-blogcomments { order: 7; }

.e-con:has(.wm-blog-page) > .e-con-inner > .elementor-widget:not(.elementor-widget-blogsinglebreadcrumb, .elementor-widget-wmplus-blogsinglebreadcrumb):not(.elementor-widget-blogsingleheader, .elementor-widget-wmplus-blogsingleheader):not(.elementor-widget-blogsidebar, .elementor-widget-wmplus-blogsidebar) {
    grid-column: 1;
    min-width: 0;
}

.e-con:has(.wm-blog-page) > .e-con-inner > .elementor-element.wm-blog-widget-empty {
    display: none !important;
}

/* VIP service pages — centered content column with side gutters */
.e-con:has(.wm-vip-page) > .e-con-inner {
    max-width: var(--wm-container, 1360px) !important;
    margin-inline: auto !important;
    padding-inline: var(--wm-gutter, clamp(16px, 2.8vw, 36px)) !important;
}

/* Catalog single — layout shell is built in widget-renderer.php */
#panelino-catalog-notes-modal:not(.is-open) {
    display: none !important;
}

.wm-product-page:not(.wm-product-page--section) > .wm-product-layout {
    width: 100%;
    max-width: var(--wm-container, 1360px);
    margin-inline: auto;
}

@media (max-width: 1024px) {
    :is(
        .elementor-location-single > .e-con.wm-blog-single-layout,
        .elementor-location-single > .e-con.e-parent:has(> .elementor-widget-blogsidebar),
        .elementor-location-single > .e-con.e-parent:has(> .elementor-widget-wmplus-blogsidebar),
        .e-con:has(.wm-blog-page) > .e-con-inner
    ) {
        grid-template-columns: 1fr !important;
    }

    :is(
        .elementor-location-single > .e-con.wm-blog-single-layout,
        .elementor-location-single > .e-con.e-parent:has(> .elementor-widget-blogsidebar),
        .elementor-location-single > .e-con.e-parent:has(> .elementor-widget-wmplus-blogsidebar),
        .e-con:has(.wm-blog-page) > .e-con-inner
    ) > :is(.elementor-widget-blogsidebar, .elementor-widget-wmplus-blogsidebar) {
        grid-column: 1;
        grid-row: auto;
    }
}


/* Legacy Elementor sections */
.elementor-section:has(.wm-wd-page),
.elementor-section:has(.wm-cd-page,
.wm-ec-page,
.wm-sl-page,
.wm-seo-page,
.wm-n8n-page),
.elementor-section:has(.wm-pt-page),
.elementor-section:has(.wm-dm-page),
.elementor-section:has(.wm-vip-page),
.elementor-section:has(.wm-product-page),
.elementor-section:has(.wm-blog-page),
.elementor-section:has(.wm-blog-archive),
.elementor-section:has(.wm-ac-page),
.elementor-section:has(.wm-plus-home) {
    padding-inline: 0 !important;
}

.elementor-section:has(.wm-wd-page) > .elementor-container,
.elementor-section:has(.wm-cd-page,
.wm-ec-page,
.wm-sl-page,
.wm-seo-page,
.wm-n8n-page) > .elementor-container,
.elementor-section:has(.wm-pt-page) > .elementor-container,
.elementor-section:has(.wm-dm-page) > .elementor-container,
.elementor-section:has(.wm-vip-page) > .elementor-container,
.elementor-section:has(.wm-product-page) > .elementor-container,
.elementor-section:has(.wm-blog-page) > .elementor-container,
.elementor-section:has(.wm-blog-archive) > .elementor-container,
.elementor-section:has(.wm-ac-page) > .elementor-container,
.elementor-section:has(.wm-plus-home) > .elementor-container {
    max-width: 100% !important;
    width: 100% !important;
    padding-inline: 0 !important;
}

.elementor-column:has(.wm-wd-page) > .elementor-widget-wrap,
.elementor-column:has(.wm-cd-page,
.wm-ec-page,
.wm-sl-page,
.wm-seo-page,
.wm-n8n-page) > .elementor-widget-wrap,
.elementor-column:has(.wm-pt-page) > .elementor-widget-wrap,
.elementor-column:has(.wm-dm-page) > .elementor-widget-wrap,
.elementor-column:has(.wm-vip-page) > .elementor-widget-wrap,
.elementor-column:has(.wm-product-page) > .elementor-widget-wrap,
.elementor-column:has(.wm-blog-page) > .elementor-widget-wrap,
.elementor-column:has(.wm-plus-home) > .elementor-widget-wrap {
    padding-inline: 0 !important;
}

/* ── Theme main wrapper ── */
.site-main:has(.wm-wd-page),
.site-main:has(.wm-cd-page,
.wm-ec-page,
.wm-sl-page,
.wm-seo-page,
.wm-n8n-page),
.site-main:has(.wm-pt-page),
.site-main:has(.wm-dm-page),
.site-main:has(.wm-vip-page),
.site-main:has(.wm-product-page),
.site-main:has(.wm-blog-page),
.site-main:has(.wm-plus-home),
.wmplus-main:has(.wm-wd-page),
.wmplus-main:has(.wm-cd-page,
.wm-ec-page,
.wm-sl-page,
.wm-seo-page,
.wm-n8n-page),
.wmplus-main:has(.wm-pt-page),
.wmplus-main:has(.wm-dm-page),
.wmplus-main:has(.wm-vip-page),
.wmplus-main:has(.wm-product-page),
.wmplus-main:has(.wm-blog-page),
.wmplus-main:has(.wm-blog-archive),
.wmplus-main:has(.wm-plus-home),
.wmplus-main--full:has(.wm-wd-page),
.wmplus-main--full:has(.wm-cd-page,
.wm-ec-page,
.wm-sl-page,
.wm-seo-page,
.wm-n8n-page),
.wmplus-main--full:has(.wm-pt-page),
.wmplus-main--full:has(.wm-dm-page),
.wmplus-main--full:has(.wm-vip-page),
.wmplus-main--full:has(.wm-product-page),
.wmplus-main--full:has(.wm-blog-page),
.wmplus-main--full:has(.wm-blog-archive),
.wmplus-main--full:has(.wm-plus-home),
#primary:has(.wm-wd-page),
#primary:has(.wm-cd-page,
.wm-ec-page,
.wm-sl-page,
.wm-seo-page,
.wm-n8n-page),
#primary:has(.wm-pt-page),
#primary:has(.wm-dm-page),
#primary:has(.wm-vip-page),
#primary:has(.wm-product-page),
#primary:has(.wm-blog-page),
#primary:has(.wm-plus-home) {
    padding: 0 !important;
    margin: 0 !important;
    max-width: none !important;
    width: 100% !important;
}

.elementor-location-single:has(.wm-wd-page),
.elementor-location-single:has(.wm-cd-page,
.wm-ec-page,
.wm-sl-page,
.wm-seo-page,
.wm-n8n-page),
.elementor-location-single:has(.wm-pt-page),
.elementor-location-single:has(.wm-dm-page),
.elementor-location-single:has(.wm-vip-page),
.elementor-location-single:has(.wm-product-page),
.elementor-location-single:has(.wm-blog-page),
.elementor-location-single:has(.wm-plus-home) {
    max-width: 100% !important;
    width: 100% !important;
    padding-inline: 0 !important;
}

/* Flush first Elementor block under header — no extra top gap */
.site-main:has(.wm-wd-page) > .elementor:first-child,
.site-main:has(.wm-cd-page,
.wm-ec-page,
.wm-sl-page,
.wm-seo-page,
.wm-n8n-page) > .elementor:first-child,
.site-main:has(.wm-pt-page) > .elementor:first-child,
.site-main:has(.wm-dm-page) > .elementor:first-child,
.site-main:has(.wm-vip-page) > .elementor:first-child,
.site-main:has(.wm-product-page) > .elementor:first-child,
.site-main:has(.wm-plus-home) > .elementor:first-child {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

.elementor:has(.wm-wd-page) > .e-con:first-child,
.elementor:has(.wm-cd-page,
.wm-ec-page,
.wm-sl-page,
.wm-seo-page,
.wm-n8n-page) > .e-con:first-child,
.elementor:has(.wm-pt-page) > .e-con:first-child,
.elementor:has(.wm-dm-page) > .e-con:first-child,
.elementor:has(.wm-vip-page) > .e-con:first-child,
.elementor:has(.wm-product-page) > .e-con:first-child,
.elementor:has(.wm-plus-home) > .e-con:first-child {
    --padding-top: 0px !important;
    padding-top: 0 !important;
    margin-top: 0 !important;
}

/* Blog single — space below sticky header (breadcrumb must not sit flush) */
body.single-post .elementor:has(.elementor-widget-blogsinglebreadcrumb, .elementor-widget-wmplus-blogsinglebreadcrumb) > .e-con:first-child,
body.single-post .elementor-location-single:has(.elementor-widget-blogsinglebreadcrumb, .elementor-widget-wmplus-blogsinglebreadcrumb) > .e-con:first-child {
    --padding-top: clamp(20px, 2.5vw, 36px) !important;
    --padding-block-start: clamp(20px, 2.5vw, 36px) !important;
    --e-con-padding-block-start: clamp(20px, 2.5vw, 36px) !important;
    padding-top: clamp(20px, 2.5vw, 36px) !important;
    padding-block-start: clamp(20px, 2.5vw, 36px) !important;
}

/* ── Header flush — no gap between header and plus pages ── */
body:has(.wm-wd-page) .site-header,
body:has(.wm-cd-page,
.wm-ec-page,
.wm-sl-page,
.wm-seo-page,
.wm-n8n-page) .site-header,
body:has(.wm-pt-page) .site-header,
body:has(.wm-dm-page) .site-header,
body:has(.wm-vip-page) .site-header,
body:has(.wm-product-page) .site-header,
body:has(.wm-blog-page) .site-header,
body:has(.wm-blog-archive) .site-header,
body:has(.wm-ac-page) .site-header,
body:has(.wm-plus-home) .site-header {
    margin-bottom: 0 !important;
}

.site-main:has(.wm-plus-home),
#primary:has(.wm-plus-home),
.wmplus-main:has(.wm-plus-home),
.wmplus-main--full:has(.wm-plus-home) {
    background-color: #F7F6FE;
}

/* Prevent horizontal scroll from full-bleed breakout — single point on html (see webmaster-responsive.css) */

/* Global header/footer shell — flush and full width */
.site-header {
    margin: 0 !important;
    padding: 0 !important;
}

.site-main,
.site-main#primary,
#primary.site-main,
.wmplus-main,
.wmplus-main--full {
    background-color: var(--wm-brand-bg-soft, #faf9ff);
}

.site-main > .elementor:first-child,
.wmplus-main > .elementor:first-child,
.wmplus-main--full > .elementor:first-child {
    margin-top: 0 !important;
}

.site-footer {
    margin: 0 !important;
    padding: 0 !important;
}

.wmplus-main:has(.wm-blog-archive),
.wmplus-main--full:has(.wm-blog-archive),
.wmplus-main:has(.wm-ac-page),
.wmplus-main--full:has(.wm-ac-page) {
    background: linear-gradient(180deg, #ffffff 0%, #faf9ff 20%, var(--wm-brand-bg, #f7f6fe) 100%);
}

/* ── Blog archive + About/Contact (modular pages) ── */
.wm-blog-archive,
.wm-ac-page {
    --wm-pt-wrap: min(var(--wm-container), calc(100% - 2 * var(--wm-gutter)));
    position: relative;
    width: 100%;
    max-width: none;
    margin-inline: 0;
    box-sizing: border-box;
}

.elementor .wm-blog-archive:not(.wm-blog-archive--section),
.elementor .wm-ac-page:not(.wm-ac-page--section) {
    width: 100vw;
    max-width: 100vw;
    margin-inline: calc(50% - 50vw);
    box-sizing: border-box;
}

.wmplus-main .elementor .wm-blog-archive:not(.wm-blog-archive--section),
.wmplus-main .elementor .wm-ac-page:not(.wm-ac-page--section),
.wmplus-main--full .elementor .wm-blog-archive:not(.wm-blog-archive--section),
.wmplus-main--full .elementor .wm-ac-page:not(.wm-ac-page--section) {
    width: 100%;
    max-width: none;
    margin-inline: 0;
}

.elementor-widget:has(.wm-blog-archive),
.elementor-widget:has(.wm-ac-page) {
    --widgets-spacing: 0px;
    --widget-spacing: 0px;
    --kit-widget-spacing: 0px;
    width: 100%;
    max-width: 100%;
}

.elementor-widget:has(.wm-blog-archive) > .elementor-widget-container,
.elementor-widget:has(.wm-ac-page) > .elementor-widget-container {
    padding: 0 !important;
    margin: 0 !important;
    max-width: none !important;
}

.wm-blog-archive--section,
.wm-ac-page--section {
    width: 100%;
    max-width: none;
    margin-inline: 0;
}

.elementor-widget:has(.wm-blog-archive),
.elementor-widget:has(.wm-ac-page) {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 auto !important;
    align-self: stretch !important;
}

.site-main:has(.wm-blog-archive),
.site-main:has(.wm-ac-page),
.site-main.wm-blog-archive,
.site-main.wm-ac-page,
.wmplus-main:has(.wm-blog-archive),
.wmplus-main:has(.wm-ac-page),
.wmplus-main--full:has(.wm-blog-archive),
.wmplus-main--full:has(.wm-ac-page),
#primary:has(.wm-blog-archive),
#primary:has(.wm-ac-page) {
    padding: 0 !important;
    margin: 0 !important;
    max-width: none !important;
    width: 100% !important;
    background-color: transparent;
}

body:has(.wm-blog-archive) .site-header,
body:has(.wm-ac-page) .site-header {
    margin-bottom: 0 !important;
}

/* Elementor root containers inside v2 main — no viewport-height flex gaps */
.wmplus-main > .elementor > .e-con,
.wmplus-main--full > .elementor > .e-con,
.wmplus-main .elementor > .e-con.e-parent,
.wmplus-main--full .elementor > .e-con.e-parent {
    min-height: 0 !important;
    --min-height: 0px !important;
    height: auto !important;
    justify-content: flex-start !important;
    align-content: flex-start !important;
    --justify-content: flex-start !important;
}
