/* ==========================================================================
   POLY Cleaning — full width layout enforcement
   Removes the boxed Elementor/theme content width so every section container
   runs edge to edge. All inner spacing is owned by the custom widgets.
   ========================================================================== */

/* ------------------------------------------------- theme content wrappers */

#app,
.page-wrapper,
.page-content-wrapper {
    width: 100%;
    max-width: 100%;
    margin: 0;
}

/* Elementor built pages own their own spacing edge to edge. */
body.elementor-page .page-wrapper,
body.elementor-page .page-content-wrapper {
    padding: 0;
}

/* Plain editor pages keep a readable measure and gutters. */
body:not(.elementor-page) .page-content-wrapper {
    max-width: 840px;
    margin-inline: auto;
    padding: clamp(40px, 6vw, 80px) clamp(20px, 5.2vw, 32px);
}

/* The header is in the document flow, so no offset is needed. Anchor targets
   only keep a little breathing room above the viewport edge. */
:target,
[id] {
    scroll-margin-top: 24px;
}

/* ------------------------------------------------------ Elementor: legacy */

.elementor-section.elementor-section-boxed > .elementor-container {
    max-width: 100%;
}

.elementor-section {
    margin: 0;
    padding: 0;
}

.elementor-column-gap-default > .elementor-column > .elementor-element-populated {
    padding: 0;
}

/* --------------------------------------------------- Elementor: containers */

.elementor-element.e-con,
.e-con,
.e-con-inner {
    --container-max-width: 100%;
    --content-width: 100%;
    --container-widget-width: 100%;
    --padding-top: 0px;
    --padding-right: 0px;
    --padding-bottom: 0px;
    --padding-left: 0px;
    --margin-top: 0px;
    --margin-right: 0px;
    --margin-bottom: 0px;
    --margin-left: 0px;
    --gap: 0px;
    --row-gap: 0px;
    --column-gap: 0px;
    width: 100%;
    max-width: 100%;
}

.e-con > .e-con-inner {
    width: 100%;
    max-width: 100%;
    padding: 0;
}

/* Widgets fill their container without Elementor's default rhythm. */
.elementor-widget-container,
.elementor-widget-wrap {
    width: 100%;
    max-width: 100%;
    padding: 0;
    margin: 0;
}

.elementor-widget:not(:last-child) {
    margin-block-end: 0;
}

.e-con .elementor-widget {
    width: 100%;
    max-width: 100%;
}

/* Nothing may push the page sideways. */
html,
body {
    overflow-x: clip;
    max-width: 100%;
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
}
