.elementor-widget-nmc-hero > .elementor-widget-container,
.elementor-widget-nmc-ribbon > .elementor-widget-container,
.elementor-widget-nmc-about > .elementor-widget-container,
.elementor-widget-nmc-services > .elementor-widget-container,
.elementor-widget-nmc-why > .elementor-widget-container,
.elementor-widget-nmc-process > .elementor-widget-container,
.elementor-widget-nmc-outcomes > .elementor-widget-container,
.elementor-widget-nmc-testimonials > .elementor-widget-container,
.elementor-widget-nmc-faq > .elementor-widget-container,
.elementor-widget-nmc-cta > .elementor-widget-container,
.elementor-widget-nmc-subpage-hero > .elementor-widget-container { margin: 0; padding: 0; }
.nmc-elementor-content > .elementor { width: 100%; }

/* Subpage hero widget: background image, position, size, and overlay are set
   inline per-instance by NMC_Subpage_Hero_Widget; typography, container
   width, breadcrumb, and divider styling are inherited from the theme's
   .subpage-hero rules (assets/css/page.css) so the widget renders identically
   to nmc_render_subpage_hero(). This block only guarantees the section keeps
   its full-bleed layout when dropped inside an Elementor container/section. */
.elementor-widget-nmc-subpage-hero .subpage-hero {
	width: 100%;
}

/* Defensive compatibility for headings saved by the old 1.0.0 rich-text control. */
.elementor-widget-nmc-hero .hero-content h1 p {
	display: inline;
	margin: 0;
	padding: 0;
	font: inherit;
	line-height: inherit;
	color: inherit;
}

/* Ensure background media frame and editorial images fill full container height in Elementor */
.elementor-widget-nmc-background .background-media-frame,
.background-media-frame {
	position: relative;
	aspect-ratio: 4 / 5;
	overflow: hidden;
}

.elementor-widget-nmc-background .background-media-frame img,
.background-media-frame img {
	position: absolute;
	top: 0;
	left: 0;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	object-fit: cover !important;
	object-position: center top !important;
	display: block !important;
}

/* Hero widget editorial media containment */
.elementor-widget-nmc-hero .hero-editorial {
	position: relative;
	height: 760px;
}

.elementor-widget-nmc-hero .hero-main-image {
	position: absolute;
	top: 0;
	right: 0;
	width: 78%;
	height: 100%;
	overflow: hidden;
	border-radius: 42px;
	box-shadow: 0 60px 120px rgba(35, 43, 39, .16);
}

.elementor-widget-nmc-hero .hero-main-image img {
	position: absolute !important;
	top: 0 !important;
	left: 0 !important;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	object-fit: cover !important;
	object-position: center 10% !important;
	transform: scale(1.05);
	display: block !important;
}

.elementor-widget-nmc-hero .hero-quote {
	position: absolute;
	right: -20px;
	bottom: 40px;
	width: 290px;
	padding: 32px;
	border-radius: 28px;
	background: rgba(255, 255, 255, .78) !important;
	backdrop-filter: blur(18px);
	-webkit-backdrop-filter: blur(18px);
	border: 1px solid rgba(255, 255, 255, .5);
	box-shadow: 0 35px 80px rgba(35, 43, 39, .12);
	z-index: 10;
}
