/* Loads AFTER elementor-frontend, BEFORE aseno.css.
   Every converter-generated container carries class "ab": make it behave like
   the plain <div>/<section> it replaced. aseno.css (loaded later, same
   specificity) re-applies flex/position/etc where the design wants it.

   NOTE: keep every selector here at (0,1,0)-ish specificity so aseno.css
   class rules always win. No .ab.e-con compound property overrides. */
.ab {
	display: block;
	position: static;
}

/* When aseno.css re-flexes an .ab (display:flex), Elementor's .e-con.e-flex
   (0,2,0) leftovers (--flex-direction:column etc) must not leak in. Same
   specificity, loaded after Elementor -> these win; the (bumped) design
   stylesheet loads after this file, so explicit design rules win over both. */
.ab.e-con {
	display: block;
	position: static;
	width: auto;   /* Elementor child containers default to width:100%, which
	                  stacks items one-per-line inside the design's flex rows */
	flex-direction: row;
	flex-wrap: nowrap;
	align-items: stretch;
	justify-content: normal;
	align-content: normal;
	gap: normal;   /* Elementor's default 20px container gap; plain divs have none */
}

/* Container paddings/margins come from the design's classes, not Elementor. */
.ab.e-con { --padding-block-start: 0; --padding-block-end: 0; --padding-inline-start: 0; --padding-inline-end: 0; --margin-block-start: 0; --margin-block-end: 0; --margin-inline-start: 0; --margin-inline-end: 0; }

/* Widget wrappers vanish from the layout on the frontend so the real
   h/p/ul/img elements are direct flow children of their classed containers -
   the exact static DOM, with native margin collapsing. (Kept as boxes inside
   the Elementor editor so widgets stay selectable.) */
body:not(.elementor-editor-active) .ab > .elementor-widget { display: contents; }

/* Fallbacks for editor view + any widget that keeps its box */
.ab .elementor-widget { margin-bottom: 0; }
.ab .elementor-widget-container { margin: 0; padding: 0; }
