/* Shared layout contract for ordinary dynamic content blocks.
   Top Block intentionally remains outside this component. */
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:min(var(--dynamic-block-width,var(--content-max-width,1600px)),calc(100% - 30px))!important;
 max-width:var(--content-max-width,1600px)!important;
 margin-inline:auto!important;
 margin-block:10px!important;
 overflow:visible;
}
body .deceti-template-controls {
 box-sizing:border-box;
 width:min(var(--dynamic-block-width,var(--content-max-width,1600px)),calc(100% - 30px))!important;
 max-width:var(--content-max-width,1600px)!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;}
}

/* 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;
}

/* Product descriptions arrive from the product data before the Page Block
 * renderer. Give that standalone introduction its own card instead of using
 * a parent wrapper as a visual card for every block below it. */
html body.deceti-theme :is(.deceti-customproduct-page,.deceti-customproducts-page) #content > p:first-of-type {
 box-sizing:border-box;
 width:min(100%,1200px);
 margin:0 auto clamp(16px,2vw,28px);
 padding:clamp(16px,2vw,26px);
 border:1px solid var(--object-panel-border,#cbd5e1);
 border-radius:var(--object-panel-radius,16px);
 color:var(--object-body-text,#172033);
 background:var(--object-panel-background,#fff);
 font-family:var(--font-body-family,inherit);
 font-size:clamp(16px,0.96rem + 0.16vw,19px);
 line-height:1.6;
}

/* 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;
}
