/* One width contract for dynamic page blocks and all Template Gallery versions.
   Do not target header, footer, calculator cards or product-card internals. */
body .deceti-dynamic-block.deceti-dynamic-block:not([data-deceti-block="topblock"]),
#common-home.deceti-home-page .deceti-dynamic-block.deceti-dynamic-block:not([data-deceti-block="topblock"]) {
 box-sizing:border-box;
 position:relative!important;
 left:auto!important;
 width:var(--dynamic-block-width,80%)!important;
 max-width:100%!important;
 margin-inline:auto!important;
 margin-block:10px!important;
}
body .deceti-template-controls {
 box-sizing:border-box;
 width:var(--dynamic-block-width,80%)!important;
 max-width:100%!important;
 margin-inline:auto!important;
}
body .deceti-dynamic-block .deceti-template-controls,
body .deceti-template-controls .deceti-template-controls {
 width:100%!important;
 max-width:100%!important;
 margin-inline:0!important;
}
body .deceti-dynamic-block[style*="--deceti-block-background:"] {
 background:var(--deceti-block-background)!important;
 border-radius:var(--deceti-block-radius,0px)!important;
 padding:var(--spacing-panel,20px)!important;
}
body .deceti-dynamic-block[style*="--deceti-block-background:transparent"] {
 padding:0!important;
 background:transparent!important;
 border-radius:var(--deceti-block-radius,0px)!important;
}
body .deceti-dynamic-block[style*="--deceti-block-background:"] > .deceti-content-block {
 width:100%!important;
 max-width:100%!important;
 margin:0!important;
 background:transparent!important;
 border-radius:0!important;
}
@media(max-width:767px) {
 body .deceti-dynamic-block.deceti-dynamic-block:not([data-deceti-block="topblock"]),
 #common-home.deceti-home-page .deceti-dynamic-block.deceti-dynamic-block:not([data-deceti-block="topblock"]),
 body .deceti-template-controls {width:calc(100% - 24px)!important;}
 body .deceti-dynamic-block .deceti-template-controls,
 body .deceti-template-controls .deceti-template-controls {width:100%!important;}
}


/* Top block always spans the viewport, independently of stored block layout. */
html body.deceti-theme .deceti-dynamic-block.deceti-dynamic-block[data-deceti-block="topblock"],
html body.deceti-theme .deceti-dynamic-block.deceti-dynamic-block.deceti-layout-full[data-deceti-block="topblock"],
#common-home.deceti-home-page .deceti-dynamic-block.deceti-dynamic-block[data-deceti-block="topblock"] {
 box-sizing:border-box;
 position:relative!important;
 left:50%!important;
 width:100vw!important;
 max-width:none!important;
 margin-left:-50vw!important;
 margin-right:-50vw!important;
}

/* Stacked product pages must not apply the global percentage inside
   Bootstrap's fixed-width container a second time. Sidebar layouts stay intact. */
html body.deceti-theme #common-home.container:has(.deceti-product-page-layout--stacked) {
 width:100%!important;
 max-width:none!important;
 padding-inline:0!important;
}
html body.deceti-theme #common-home.container:has(.deceti-product-page-layout--stacked) > .row {
 width:100%!important;
 margin-inline:0!important;
}
html body.deceti-theme #common-home.container:has(.deceti-product-page-layout--stacked) > .row > #content {
 padding-inline:0!important;
}

/* Card-only customproducts pages start below the header. Padding cannot collapse. */
html body .deceti-product-page-layout:has(.deceti-dynamic-block[data-deceti-block="productblock"]):not(:has(.deceti-dynamic-block:not([data-deceti-block="productblock"]))) {
 padding-top:30px!important;
}
