/*
=====================================================================
MANSURGE GLOBAL PAGE SHELL v1.0
=====================================================================

Purpose
-------
Normalize the public WordPress / Hello Elementor / Elementor / Gutenberg
page shell so Mansurge page shortcodes render edge-to-edge on the Mansurge
dark canvas without theme titles, white page backgrounds, or wrapper gaps.

Loaded automatically by the existing Mansurge CSS loader because this file
lives in assets/css/common/.

Architecture
------------
Presentation-only.
No Contract changes.
No Template changes.
No shortcode changes.
No WooCommerce data/routing changes.
=====================================================================
*/

:root{
	--ms-shell-bg:#090d0d;
	--ms-shell-bg-soft:#0b1111;
	--ms-shell-text:#f4f1ea;
}

/* ------------------------------------------------------------------
   1. Public document canvas
   ------------------------------------------------------------------ */

html,
body{
	background:var(--ms-shell-bg) !important;
}

body{
	margin:0 !important;
	padding:0 !important;
}

body:not(.wp-admin){
	color:var(--ms-shell-text);
}

/*
 * Prevent the theme's document shell from exposing a light canvas between
 * Mansurge Header, page shortcode output, and Mansurge Footer.
 */
body:not(.wp-admin) #page,
body:not(.wp-admin) .site,
body:not(.wp-admin) #content,
body:not(.wp-admin) .site-content,
body:not(.wp-admin) .content-area,
body:not(.wp-admin) main.site-main,
body:not(.wp-admin) #primary,
body:not(.wp-admin) #main{
	background:var(--ms-shell-bg) !important;
}

/* ------------------------------------------------------------------
   2. Remove WordPress / Hello Elementor page chrome
   ------------------------------------------------------------------ */

/*
 * Hide only THEME-GENERATED page/archive title chrome.
 * Mansurge headings inside page packs are not targeted.
 */
body:not(.wp-admin) .site-main > .page-header,
body:not(.wp-admin) .site-main > header.page-header,
body:not(.wp-admin) #primary > .page-header,
body:not(.wp-admin) #content > .page-header,
body:not(.wp-admin) .site-content > .page-header,
body:not(.wp-admin) article.page > header.entry-header,
body:not(.wp-admin) article.type-page > header.entry-header,
body:not(.wp-admin) article.page > .entry-header,
body:not(.wp-admin) article.type-page > .entry-header{
	display:none !important;
}

/* Common Hello Elementor / WordPress default page title patterns. */
body.page:not(.wp-admin) .entry-title,
body.page:not(.wp-admin) .page-title{
	display:none !important;
}

/*
 * Do NOT hide WooCommerce product titles or Mansurge internal headings.
 * Re-enable product title defensively if a theme reuses .entry-title.
 */
body.single-product:not(.wp-admin) .product_title,
body.single-product:not(.wp-admin) .summary .product_title{
	display:block !important;
}

/* ------------------------------------------------------------------
   3. Full-width WordPress page shell
   ------------------------------------------------------------------ */

body:not(.wp-admin) #content,
body:not(.wp-admin) .site-content,
body:not(.wp-admin) .content-area,
body:not(.wp-admin) main.site-main,
body:not(.wp-admin) #primary{
	width:100% !important;
	max-width:none !important;
	margin:0 !important;
	padding:0 !important;
}

/* Page/post article shells must not introduce their own white card/canvas. */
body:not(.wp-admin) article.page,
body:not(.wp-admin) article.type-page{
	width:100% !important;
	max-width:none !important;
	margin:0 !important;
	padding:0 !important;
	background:transparent !important;
	border:0 !important;
	box-shadow:none !important;
}

/* Gutenberg content wrapper. */
body:not(.wp-admin) article.page > .entry-content,
body:not(.wp-admin) article.type-page > .entry-content,
body:not(.wp-admin) .page-content,
body:not(.wp-admin) .entry-content{
	width:100% !important;
	max-width:none !important;
	margin:0 !important;
	padding:0 !important;
	background:transparent !important;
}

/* ------------------------------------------------------------------
   4. Elementor page-shell normalization
   ------------------------------------------------------------------ */

/*
 * Normalize only outer Elementor page wrappers.
 * Internal Mansurge component spacing remains controlled by Mansurge CSS.
 */
body.elementor-page:not(.wp-admin) .elementor-location-single,
body.elementor-page:not(.wp-admin) .elementor-location-archive,
body.elementor-page:not(.wp-admin) .elementor-location-woocommerce,
body.elementor-page:not(.wp-admin) main .elementor{
	width:100% !important;
	max-width:none !important;
	margin:0 !important;
	padding:0 !important;
	background:transparent !important;
}

/*
 * The shortcode widget itself must not create a light rectangle or gap.
 * :has() keeps this scoped specifically to Mansurge page shortcodes.
 */
@supports selector(:has(*)){

	body:not(.wp-admin) .elementor-widget-shortcode:has(
		.ms-page,
		.ms-home,
		.ms-about,
		.ms-contact-page,
		.ms-journal-page,
		.ms-shop-page,
		.ms-cart-page,
		.ms-checkout-page,
		.ms-order-tracking,
		.ms-my-account,
		.ms-order-confirmation,
		.ms-privacy-policy,
		.ms-shipping-returns,
		.ms-terms-of-service
	),
	body:not(.wp-admin) .elementor-widget-shortcode:has(
		#ms-site-footer,
		#ms-cookie-consent
	){
		width:100% !important;
		max-width:none !important;
		margin:0 !important;
		padding:0 !important;
		border:0 !important;
		background:transparent !important;
		box-shadow:none !important;
	}

	body:not(.wp-admin) .elementor-widget-shortcode:has(
		.ms-page,
		.ms-home,
		.ms-about,
		.ms-contact-page,
		.ms-journal-page,
		.ms-shop-page,
		.ms-cart-page,
		.ms-checkout-page,
		.ms-order-tracking,
		.ms-my-account,
		.ms-order-confirmation,
		.ms-privacy-policy,
		.ms-shipping-returns,
		.ms-terms-of-service
	) > .elementor-widget-container,
	body:not(.wp-admin) .elementor-widget-shortcode:has(
		#ms-site-footer,
		#ms-cookie-consent
	) > .elementor-widget-container{
		width:100% !important;
		max-width:none !important;
		margin:0 !important;
		padding:0 !important;
		border:0 !important;
		background:transparent !important;
		box-shadow:none !important;
	}
}

/*
 * Fallback for browsers without :has().
 * Safe because the site's shortcode widgets are intentionally layout-neutral.
 */
body:not(.wp-admin) .elementor-widget-shortcode,
body:not(.wp-admin) .elementor-widget-shortcode > .elementor-widget-container{
	border-color:transparent;
	box-shadow:none;
}

/* ------------------------------------------------------------------
   5. Gutenberg shortcode/block shell
   ------------------------------------------------------------------ */

body:not(.wp-admin) .wp-block-shortcode{
	width:100% !important;
	max-width:none !important;
	margin:0 !important;
	padding:0 !important;
	background:transparent !important;
	border:0 !important;
	box-shadow:none !important;
}

/*
 * Remove theme max-width constraints from direct Gutenberg groups only when
 * they are serving as the outer page shell.
 */
body:not(.wp-admin) article.page > .entry-content > .wp-block-group:first-child:last-child,
body:not(.wp-admin) article.type-page > .entry-content > .wp-block-group:first-child:last-child{
	width:100% !important;
	max-width:none !important;
	margin:0 !important;
	padding:0 !important;
	background:transparent !important;
}

/* ------------------------------------------------------------------
   6. Header → page → footer continuity
   ------------------------------------------------------------------ */

#ms-site-header + .ms-site-header-spacer{
	background:var(--ms-shell-bg) !important;
}

/*
 * Prevent default paragraph margins created around copied/pasted shortcodes
 * from creating a visible strip.
 */
body:not(.wp-admin) .entry-content > p:empty,
body:not(.wp-admin) .page-content > p:empty{
	display:none !important;
	margin:0 !important;
	padding:0 !important;
}

/* Footer must connect directly to the page canvas. */
#ms-site-footer{
	margin-top:0 !important;
}

/* ------------------------------------------------------------------
   7. WooCommerce page shell only
   ------------------------------------------------------------------ */

/*
 * This does NOT restyle WooCommerce Cart/Checkout content.
 * It only removes theme-level white canvas/margins around the Mansurge
 * commerce renderer.
 */
body.woocommerce-cart:not(.wp-admin) #content,
body.woocommerce-checkout:not(.wp-admin) #content,
body.woocommerce-account:not(.wp-admin) #content,
body.woocommerce-cart:not(.wp-admin) main.site-main,
body.woocommerce-checkout:not(.wp-admin) main.site-main,
body.woocommerce-account:not(.wp-admin) main.site-main{
	background:var(--ms-shell-bg) !important;
	margin:0 !important;
	padding:0 !important;
	max-width:none !important;
	width:100% !important;
}

/* ------------------------------------------------------------------
   8. Responsive safety
   ------------------------------------------------------------------ */

@media(max-width:1024px){

	body:not(.wp-admin) #content,
	body:not(.wp-admin) .site-content,
	body:not(.wp-admin) .content-area,
	body:not(.wp-admin) main.site-main,
	body:not(.wp-admin) #primary{
		margin:0 !important;
		padding:0 !important;
	}

}

@media(max-width:767px){

	html,
	body,
	body:not(.wp-admin) #page,
	body:not(.wp-admin) .site,
	body:not(.wp-admin) #content{
		background:var(--ms-shell-bg) !important;
	}

}
