/*
 * Neutralise Elementor's container defaults so the original stylesheet keeps
 * owning layout.
 *
 * Loaded BEFORE site.css on purpose: the reset below is written with :where()
 * so it scores only (0,1,0), which lets any original rule of equal specificity
 * (.container) or higher (.hero .container) win on source order. It still beats
 * Elementor's own .e-con rules, which are enqueued earlier.
 */
.e-con:where(.k-native),
.e-con:where(.k-native) > .e-con-inner {
	display: block;
	/* width is intentionally NOT forced: absolutely-positioned originals such as
	   .float-card must stay shrink-to-fit. Elementor's --width handles the rest. */
	max-width: none;
	padding: 0;
	margin: 0;
	gap: normal;
	--content-width: 100%;
	--padding-top: 0px;
	--padding-right: 0px;
	--padding-bottom: 0px;
	--padding-left: 0px;
	--gap: 0px;
}

/* Widgets are transparent wrappers: never let them add box model of their own. */
.e-con:where(.k-native) > .elementor-widget,
.e-con:where(.k-native) .elementor-widget:where(.elementor-widget-text-editor, .elementor-widget-heading, .elementor-widget-html, .elementor-widget-button, .elementor-widget-image) {
	margin: 0;
	width: auto;
	max-width: none;
}

/* Elementor wraps buttons; the original .btn styling lives on the <a> itself. */
.elementor-widget-button .elementor-button-wrapper { display: contents; }
.elementor-widget-button a.btn { text-decoration: none; }

/* The image widget wraps <img> in a <figure>; the original CSS targets the img. */
.e-con:where(.k-native) .elementor-widget-image figure,
.e-con:where(.k-native) .elementor-widget-image .elementor-image { margin: 0; display: contents; }
