/*
 * Shared contract for NEXA template-part components.
 * The parts are loaded by every page template, including templates inherited
 * from the parent theme. These rules keep the parent flow layout from adding
 * page-specific margins or widths around the components.
 */

.wp-site-blocks > .wp-block-template-part:has([data-nexa-component="header"]),
.wp-site-blocks > .wp-block-template-part:has([data-nexa-component="footer"]) {
	width: 100%;
	max-width: none;
	margin-block: 0 !important;
	padding-block: 0 !important;
}

[data-nexa-component="header"],
[data-nexa-component="footer"] {
	box-sizing: border-box;
	width: 100%;
	max-width: none;
	min-width: 0;
}

[data-nexa-component="header"] *,
[data-nexa-component="footer"] * {
	box-sizing: border-box;
}

.nexa-site-footer__inner {
	width: min(100%, 1440px);
	min-width: 0;
}

/* Keep page content from changing the component's horizontal geometry. */
.nexa-site-header__inner,
.nexa-site-footer__inner {
	margin-inline: auto;
}

@media (prefers-reduced-motion: reduce) {
	.nexa-site-header,
	.nexa-site-footer {
		scroll-behavior: auto;
	}
}

/* Clip any decorative full-bleed overflow so the page never shows a
   horizontal scrollbar on small screens (internal carousel scroll is
   scoped to its own container and unaffected). */
html,
body {
	overflow-x: clip;
}

