.npc-sidebar-menu-wrap {
	width: 100%;
	max-width: 100%;
	overflow-x: hidden;

	/* hide scrollbar */
	scrollbar-width: none;
	-ms-overflow-style: none;
}

.npc-sidebar-menu-wrap::-webkit-scrollbar {
	display: none;
	width: 0;
	height: 0;
}

/* Desktop: fixed max height, no internal scrolling, bottom gets clipped */
@media (min-width: 1025px) {
	.npc-sidebar-menu-wrap {
		max-height: 460px !important;
		height: auto !important;
		overflow-y: hidden !important;
	}
}

/* Tablet + mobile: keep internal scrolling */
@media (max-width: 1024px) {
	.npc-sidebar-menu-wrap {
		max-height: 480px;
		overflow-y: auto;
	}
}

.npc-sidebar-menu {
	width: 100%;
	max-width: 100%;
	overflow: hidden;
}

.npc-sidebar-menu .npc-menu,
.npc-sidebar-menu .npc-menu ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.npc-sidebar-menu .npc-menu > li,
.npc-sidebar-menu .npc-menu li {
	width: 100%;
	position: relative;
}

.npc-sidebar-menu .npc-menu-row {
	display: flex;
	align-items: center;
	gap: 8px;
	width: 100%;
}

.npc-sidebar-menu .npc-menu-toggle,
.npc-sidebar-menu .npc-menu-toggle-spacer {
	width: 22px;
	min-width: 22px;
	height: 22px;
	flex: 0 0 22px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.npc-sidebar-menu .npc-menu-toggle {
	padding: 0;
	border: 0;
	background: transparent;
	cursor: pointer;
}

.npc-sidebar-menu .npc-menu-toggle:focus {
	outline: none;
	box-shadow: none;
}

.npc-sidebar-menu .npc-menu-toggle-spacer {
	visibility: hidden;
}

.npc-sidebar-menu .npc-menu-chevron {
	display: inline-block;
	width: 10px;
	height: 10px;
	border-right: 3px solid #E30613;
	border-bottom: 3px solid #E30613;
	transform: rotate(-45deg);
	margin-top: -1px;
}

.npc-sidebar-menu li.is-open > .npc-menu-row .npc-menu-chevron {
	transform: rotate(-45deg);
}

.npc-sidebar-menu .npc-menu-link {
	display: block;
	width: 100%;
	padding: 5px 0;
	text-decoration: none;
	color: #000;
	line-height: 1;
	font-family: Georgia, "Times New Roman", serif;
}

.npc-sidebar-menu .npc-menu-heading-toggle {
	margin: 0;
	border: 0;
	background: transparent;
	font-size: inherit;
	letter-spacing: inherit;
	text-transform: none;
	text-align: left;
	-webkit-appearance: none;
	appearance: none;
	cursor: pointer;
}

.npc-sidebar-menu .menu-item-has-children > .npc-menu-row > .npc-menu-link {
	font-weight: 700;
	color: #000;
}

.npc-sidebar-menu .menu-item-has-children.is-open > .npc-menu-row > .npc-menu-link,
.npc-sidebar-menu .menu-item-has-children.current-menu-parent > .npc-menu-row > .npc-menu-link,
.npc-sidebar-menu .menu-item-has-children.current-menu-ancestor > .npc-menu-row > .npc-menu-link,
.npc-sidebar-menu .menu-item-has-children.current-menu-item > .npc-menu-row > .npc-menu-link {
	color: #E30613;
}

.npc-sidebar-menu .npc-menu-link:hover,
.npc-sidebar-menu .current-menu-item > .npc-menu-row > .npc-menu-link,
.npc-sidebar-menu .current-menu-parent > .npc-menu-row > .npc-menu-link,
.npc-sidebar-menu .current-menu-ancestor > .npc-menu-row > .npc-menu-link {
	color: #E30613;
}

.npc-sidebar-menu .sub-menu {
	max-height: 0;
	opacity: 0;
	overflow: hidden;
	transform: translateY(-4px);
	transition: max-height 0.35s ease, opacity 0.25s ease, transform 0.25s ease;
	padding-left: 30px;
}

.npc-sidebar-menu li.is-open > .sub-menu {
	max-height: 1600px; /* CSS fallback before JS measures the exact open height. */
	opacity: 1;
	transform: translateY(0);
}

.npc-sidebar-menu .sub-menu .npc-menu-link {
	padding: 5px 0;
	line-height: 1;
	font-weight: 400;
}

.npc-sidebar-menu .sub-menu .sub-menu {
	padding-left: 22px;
}

.npc-menu-shell {
	width: 100% !important;
	max-width: 100% !important;
	min-width: 0 !important;
	box-sizing: border-box !important;
	flex: 0 0 100% !important;
	align-self: flex-start !important;
	overflow: hidden !important;
}

.npc-menu-shell > .e-con-inner,
.npc-menu-shell .elementor-widget,
.npc-menu-shell .elementor-widget-wrap,
.npc-menu-shell .elementor-widget-container,
.npc-menu-shell .elementor-shortcode {
	width: 100% !important;
	max-width: 100% !important;
	min-width: 0 !important;
	box-sizing: border-box !important;
}

.npc-menu-shell .npc-sidebar-menu-wrap,
.npc-menu-shell .npc-sidebar-menu {
	width: 100%;
	max-width: 100%;
	min-width: 0;
	box-sizing: border-box;
}

/* =========================================
   MOBILE / TABLET HAMBURGER TOGGLE
   ========================================= */

.npc-mobile-menu-box {
	width: 100%;
	max-width: 100%;
}

.npc-mobile-menu-toggle {
	display: none;
	position: relative;
	width: 100%;
	min-height: 35px;
	padding: 0;
	border: 1px solid #d5d8dc;
	background: #f7f7f7;
	color: #495157;
	cursor: pointer;
	box-sizing: border-box;
	align-items: center;
	justify-content: center;
	border-radius: 3px;
	appearance: none;
	-webkit-appearance: none;
	box-shadow: none;
}

.npc-mobile-menu-toggle:hover,
.npc-mobile-menu-toggle:focus {
	background: #f7f7f7;
	border-color: #d5d8dc;
	color: #495157;
	outline: none;
	box-shadow: none;
}

.npc-mobile-menu-toggle-icon,
.npc-mobile-menu-toggle-icon::before,
.npc-mobile-menu-toggle-icon::after {
	position: absolute;
	display: block;
	width: 22px;
	height: 3px;
	background: #495157;
	transition: transform 0.25s ease, top 0.25s ease, background 0.2s ease;
	content: "";
}

.npc-mobile-menu-toggle-icon {
	position: relative;
	background: #495157;
}

.npc-mobile-menu-toggle-icon::before {
	top: -8px;
	left: 0;
}

.npc-mobile-menu-toggle-icon::after {
	top: 8px;
	left: 0;
}

/* Desktop */
@media (min-width: 1025px) {
	.npc-mobile-menu-toggle {
		display: none !important;
	}

	.npc-mobile-menu-box > .npc-sidebar-menu-wrap {
		display: block !important;
	}
}

/* Tablet + Mobile */
@media (max-width: 1024px) {
	.npc-mobile-menu-toggle {
		display: inline-flex !important;
	}

	/*
	 * Smooth mobile/tablet open-close.
	 * Do not use display:none here, because display cannot animate.
	 */
	.npc-mobile-menu-box > .npc-sidebar-menu-wrap {
		display: block;
		margin-top: 0;
		max-height: 0;
		opacity: 0;
		visibility: hidden;
		overflow-y: auto;
		transform: translateY(-6px);
		transition:
			max-height 0.42s ease,
			opacity 0.22s ease,
			transform 0.22s ease,
			margin-top 0.22s ease,
			visibility 0s linear 0.42s;
	}

	.npc-mobile-menu-box.is-open > .npc-sidebar-menu-wrap {
		margin-top: 10px;
		max-height: 480px;
		opacity: 1;
		visibility: visible;
		transform: translateY(0);
		transition:
			max-height 0.42s ease,
			opacity 0.22s ease,
			transform 0.22s ease,
			margin-top 0.22s ease,
			visibility 0s linear 0s;
	}

	.npc-mobile-menu-box.is-open .npc-mobile-menu-toggle-icon {
		background: transparent;
	}

	.npc-mobile-menu-box.is-open .npc-mobile-menu-toggle-icon::before {
		top: 0;
		transform: rotate(45deg);
	}

	.npc-mobile-menu-box.is-open .npc-mobile-menu-toggle-icon::after {
		top: 0;
		transform: rotate(-45deg);
	}
}

/* Tablet only fix for full-width hamburger layout */
@media (min-width: 768px) and (max-width: 1024px) {
	.npc-mobile-menu-box {
		width: auto;
		max-width: none;
	}

	.npc-mobile-menu-toggle {
		display: flex !important;
		width: 100%;
		min-height: 40px;
		height: 40px;
		margin: 0;
	}

	.npc-mobile-menu-box > .npc-sidebar-menu-wrap {
		margin-top: 0;
	}
}

/* =========================================
   CHILD ITEM DASH + FONT SIZE TWEAK
   ========================================= */

/* Slightly larger top-level menu items */
.npc-sidebar-menu > .npc-menu > li > .npc-menu-row > .npc-menu-link {
	font-size: 16px;
}

/* Slightly smaller child items */
.npc-sidebar-menu .sub-menu .npc-menu-link {
	font-size: 15px;
	padding: 5px 0 5px 14px;
	position: relative;
}

/* Add - sign to the left of each child item */
.npc-sidebar-menu .sub-menu .npc-menu-link::before {
	content: "\2022";
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	color: currentColor;
	font-weight: 400;
	line-height: 1;
}

/* =========================================
   PRODUCTS BRAND / CATEGORY VIEW SWITCHER
   Moved from inline PHP into this CSS file for cleaner plugin maintenance.
   ========================================= */

.npc-products-view-switcher {
	width: 100%;
	max-width: 100%;
}

.npc-products-view-radio {
	position: absolute;
	opacity: 0;
	pointer-events: none;
	width: 1px;
	height: 1px;
}

.npc-products-view-tabs {
	display: flex;
	gap: 6px;
	width: 100%;
	margin: 0 0 8px 0;
}

.npc-products-view-tab {
	flex: 1 1 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 34px;
	padding: 7px 8px;
	border: 1px solid #d5d8dc;
	background: #f7f7f7;
	color: #000;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.2;
	text-align: center;
	cursor: pointer;
	border-radius: 8px;
	box-sizing: border-box;
	user-select: none;
}

/* Tablet only: Brand + Category together use maximum half width and stay left aligned */
@media (min-width: 768px) and (max-width: 1024px) {
	.npc-products-view-tabs {
		width: 50%;
		max-width: 50%;
		justify-content: flex-start;
		gap: 25px;
		margin: 3px 0 3px 0;
	}

	.npc-products-view-tab {
		flex: 1 1 0;
		min-width: 0;
		padding: 10px 0;
	}
}

.npc-products-view-tab:hover {
	color: #E30613;
}

.npc-products-view-radio-brand:checked ~ .npc-products-view-tabs .npc-products-view-tab-brand,
.npc-products-view-radio-type:checked ~ .npc-products-view-tabs .npc-products-view-tab-type {
	background: #E30613;
	border-color: #E30613;
	color: #fff;
}

/* Keep selected tab red even after sticky/sidebar scroll movement */
.npc-products-view-switcher.is-view-brand .npc-products-view-tab-brand,
.npc-products-view-switcher.is-view-type .npc-products-view-tab-type {
	background: #E30613 !important;
	border-color: #E30613 !important;
	color: #fff !important;
}

.npc-products-view-panels {
	overflow: hidden;
	transition: height 0.35s ease;
}

/*
 * Product tab switching fix:
 * when changing Brand/Category tabs, restore the selected open branch instantly.
 * This prevents the menu from visibly snapping/drop-opening downward.
 */
.npc-products-view-switcher.npc-products-view-is-switching .npc-products-view-panels,
.npc-products-view-switcher.npc-products-view-is-switching .sub-menu {
	transition: none !important;
}

.npc-products-view-panel {
	display: none;
}

/* Default fallback: keep Brand visible so sticky movement never leaves only the two tabs showing. */
.npc-products-view-panel-brand {
	display: block;
}

.npc-products-view-radio-brand:checked ~ .npc-products-view-panels .npc-products-view-panel-brand,
.npc-products-view-switcher.is-view-brand .npc-products-view-panel-brand {
	display: block !important;
}

.npc-products-view-radio-brand:checked ~ .npc-products-view-panels .npc-products-view-panel-type,
.npc-products-view-switcher.is-view-brand .npc-products-view-panel-type {
	display: none !important;
}

.npc-products-view-radio-type:checked ~ .npc-products-view-panels .npc-products-view-panel-brand,
.npc-products-view-switcher.is-view-type .npc-products-view-panel-brand {
	display: none !important;
}

.npc-products-view-radio-type:checked ~ .npc-products-view-panels .npc-products-view-panel-type,
.npc-products-view-switcher.is-view-type .npc-products-view-panel-type {
	display: block !important;
}

.npc-products-menu-by-type .npc-products-flat-type-item > .npc-menu-row > .npc-menu-link .npc-menu-text {
	font-weight: 700;
	color: #000;
}

.npc-products-menu-by-type .npc-products-flat-type-item.current-menu-item > .npc-menu-row > .npc-menu-link .npc-menu-text,
.npc-products-menu-by-type .npc-products-flat-type-item.current_page_item > .npc-menu-row > .npc-menu-link .npc-menu-text {
	font-weight: 700;
	color: #E30613;
}

.npc-products-menu-by-type .npc-products-flat-type-item > .npc-menu-row > .npc-products-type-static-toggle {
	pointer-events: none;
	cursor: default;
}

.npc-products-menu-by-type .npc-products-flat-type-item > .npc-menu-row > .npc-products-type-static-toggle .npc-menu-chevron {
	color: #E30613;
	border-color: #E30613;
}


/* =========================================
   ACTIVE STATE HARDENING
   ========================================= */

/* Keep active flat Blog Article items red even when the blog menu is rendered outside Products pages. */
.npc-sidebar-menu .npc-blog-articles-menu .npc-blog-article-menu-item.current-menu-item > .npc-menu-row > .npc-menu-link .npc-menu-text,
.npc-sidebar-menu .npc-blog-articles-menu .npc-blog-article-menu-item.current_page_item > .npc-menu-row > .npc-menu-link .npc-menu-text {
	font-weight: 700;
	color: #E30613;
}

/* Accessibility/current-page fallback. Does not change the visual design; it reinforces the same red active state. */
.npc-sidebar-menu .npc-menu-link[aria-current="page"],
.npc-sidebar-menu .npc-menu-link[aria-current="page"] .npc-menu-text {
	color: #E30613;
}

/* NPC ordered stylesheet boundary */
/* =========================================================
   NPC Equal Buttons
   Add class "equal-buttons" to the parent container
   ========================================================= */

.equal-buttons,
.equal-buttons > .e-con-inner {
	--npc-button-width: 250px;
	--npc-button-height: 52px;
	--npc-button-gap: 44px;

	display: flex !important;
	flex-direction: row !important;
	flex-wrap: nowrap !important;
	align-items: stretch !important;
	justify-content: center !important;
	gap: var(--npc-button-gap) !important;

	width: 100% !important;
	max-width: calc((var(--npc-button-width) * 2) + var(--npc-button-gap)) !important;

	margin-left: auto !important;
	margin-right: auto !important;
	box-sizing: border-box !important;
}

.equal-buttons > .elementor-element,
.equal-buttons > .e-con-inner > .elementor-element {
	flex: 0 1 calc((100% - var(--npc-button-gap)) / 2) !important;
	width: auto !important;
	min-width: 0 !important;
	max-width: none !important;
	box-sizing: border-box !important;
}

.equal-buttons .elementor-widget-button,
.equal-buttons .elementor-widget-button .elementor-widget-container,
.equal-buttons .elementor-widget-button .elementor-button-wrapper {
	width: 100% !important;
	height: var(--npc-button-height) !important;
}

.equal-buttons .elementor-widget-button .elementor-button {
	width: 100% !important;
	height: var(--npc-button-height) !important;
	min-height: var(--npc-button-height) !important;

	display: flex !important;
	align-items: center !important;
	justify-content: center !important;

	padding: 0 18px !important;
	box-sizing: border-box !important;

	text-align: center !important;
	white-space: normal !important;
}

.equal-buttons .elementor-widget-button .elementor-button-text {
	display: block !important;
	line-height: 1.15 !important;
}

/* Small safe area around each button to prevent hover flicker */
.equal-buttons .elementor-widget-button {
	padding-top: 6px !important;
	padding-bottom: 8px !important;
	box-sizing: border-box !important;
	height: auto !important;
}

/* Tablet */
@media (min-width: 768px) and (max-width: 1024px) {
	.equal-buttons,
	.equal-buttons > .e-con-inner {
		--npc-button-width: 250px;
		--npc-button-height: 52px;
		--npc-button-gap: 24px;
	}

	.equal-buttons .elementor-widget-button .elementor-button {
		padding: 0 14px !important;
	}
}

/* Mobile */
@media (max-width: 767px) {
	.equal-buttons,
	.equal-buttons > .e-con-inner {
		--npc-button-height: 50px;
		--npc-button-gap: 8px;

		width: 100% !important;
		max-width: 100% !important;
	}

	.equal-buttons .elementor-widget-button .elementor-button {
		padding: 0 8px !important;
	}

	.equal-buttons .elementor-widget-button .elementor-button-text {
		line-height: 1.12 !important;
	}
}

/* Optional: left-align specific equal button rows only */
.equal-buttons.equal-buttons-left,
.equal-buttons.equal-buttons-left > .e-con-inner {
	margin-left: 0 !important;
	margin-right: auto !important;
	align-self: flex-start !important;
	justify-content: flex-start !important;
}

/* NPC: single button matches brochure normal and hover styles */
.equal-buttons > .elementor-widget-button:only-child .elementor-button,
.equal-buttons > .e-con-inner > .elementor-widget-button:only-child .elementor-button {
	background-color: #e30613 !important;
	color: #ffffff !important;
	fill: #ffffff !important;
	border: 2px solid #e30613 !important;
	border-radius: 10px !important;
	transition: all 0.3s ease 0s !important;
}

.equal-buttons > .elementor-widget-button:only-child .elementor-button:is(:hover, :focus),
.equal-buttons > .e-con-inner > .elementor-widget-button:only-child .elementor-button:is(:hover, :focus) {
	background-color: #e30613 !important;
	color: #000000 !important;
	fill: #000000 !important;
	border-color: #e30613 !important;
}

.equal-buttons > .elementor-widget-button:only-child .elementor-button svg,
.equal-buttons > .e-con-inner > .elementor-widget-button:only-child .elementor-button svg {
	fill: currentColor !important;
}

/* NPC ordered stylesheet boundary */
/*
 * NPC Loop Grid Enhancements - Frontend CSS
 *
 * This file controls visual styling only:
 * 1. Elementor Loop Grid pagination design.
 * 2. AJAX loader/spinner design.
 *
 * PHP controls logic.
 * JS controls behaviour.
 * CSS controls design.
 */

/* =========================================================
   AJAX LOADER POSITIONING
   ========================================================= */

.npc-loop-ajax-enhanced,
body.post-type-archive-npc_blog_article .elementor-widget-loop-grid,
body[class*="post-type-archive-npc_blog_article"] .elementor-widget-loop-grid {
	position: relative !important;
}

.npc-loop-ajax-enhanced.npc-lgac-loading,
.elementor-widget-loop-grid.npc-lgac-loading {
	pointer-events: none !important;
	cursor: wait !important;
	min-height: var(--npc-lgac-min-height, auto) !important;
}

/* Floating loader box shown after a short delay during AJAX pagination. */
.npc-lgac-loader-floating {
	position: fixed !important;
	z-index: 999999 !important;
	pointer-events: none !important;
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 10px !important;
	padding: 16px 20px !important;
	border-radius: 14px !important;
	background: rgba(255, 255, 255, 0.88) !important;
	box-shadow: 0 8px 26px rgba(0, 0, 0, 0.10) !important;
	opacity: 1 !important;
	transition: opacity 180ms ease !important;
}

.npc-lgac-loader-floating.npc-lgac-loader-hide {
	opacity: 0 !important;
}

.npc-lgac-spinner {
	width: 46px !important;
	height: 46px !important;
	border-radius: 50% !important;
	border: 6px solid rgba(0, 0, 0, 0.18) !important;
	border-top-color: #E30613 !important;
	border-right-color: #E30613 !important;
	animation: npc-lgac-spin 0.75s linear infinite !important;
	box-sizing: border-box !important;
}

.npc-lgac-loader-text {
	font-family: Georgia, serif !important;
	font-size: 20px !important;
	line-height: 1.2 !important;
	font-weight: 500 !important;
	color: #111111 !important;
	text-align: center !important;
	white-space: nowrap !important;
}

@keyframes npc-lgac-spin {
	to {
		transform: rotate(360deg);
	}
}

/* =========================================================
   ELEMENTOR LOOP GRID PAGINATION DESIGN
   ========================================================= */

/* Pagination wrapper */
.elementor-widget-loop-grid .elementor-pagination,
.elementor-widget-loop-grid nav.elementor-pagination {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 14px;
	flex-wrap: wrap;
	margin-top: 34px;
}

/* All pagination links/numbers */
.elementor-widget-loop-grid .elementor-pagination .page-numbers,
.elementor-widget-loop-grid nav.elementor-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 46px;
	height: 46px;
	padding: 0 16px;
	border-radius: 999px;
	text-decoration: none;
	font-size: 18px;
	font-weight: 600;
	line-height: 1;
	transition: all 0.25s ease;
	box-sizing: border-box;
}

/* Page numbers */
.elementor-widget-loop-grid .elementor-pagination a.page-numbers:not(.prev):not(.next),
.elementor-widget-loop-grid nav.elementor-pagination a.page-numbers:not(.prev):not(.next) {
	background: #fff;
	border: 1px solid #e6e6e6;
	color: #222;
}

.elementor-widget-loop-grid .elementor-pagination a.page-numbers:not(.prev):not(.next):hover,
.elementor-widget-loop-grid nav.elementor-pagination a.page-numbers:not(.prev):not(.next):hover {
	border-color: #E30613;
	color: #E30613;
	transform: translateY(-1px);
	box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08);
}

/* Current page */
.elementor-widget-loop-grid .elementor-pagination .page-numbers.current,
.elementor-widget-loop-grid nav.elementor-pagination .page-numbers.current {
	background: #E30613 !important;
	border: 1px solid #E30613 !important;
	color: #ffffff !important;
	box-shadow: 0 8px 18px rgba(0, 0, 0, 0.10);
}

/* Previous + Next buttons */
.elementor-widget-loop-grid .elementor-pagination .page-numbers.prev,
.elementor-widget-loop-grid .elementor-pagination .page-numbers.next,
.elementor-widget-loop-grid nav.elementor-pagination .page-numbers.prev,
.elementor-widget-loop-grid nav.elementor-pagination .page-numbers.next {
	background: #111;
	border: 1px solid #111;
	color: #fff;
	padding: 0 22px;
	min-width: 130px;
	font-size: 17px;
	font-weight: 700;
	letter-spacing: 0.2px;
	box-shadow: 0 10px 24px rgba(0, 0, 0, 0.14);
}

/* Previous + Next hover */
.elementor-widget-loop-grid .elementor-pagination a.page-numbers.prev:hover,
.elementor-widget-loop-grid .elementor-pagination a.page-numbers.next:hover,
.elementor-widget-loop-grid nav.elementor-pagination a.page-numbers.prev:hover,
.elementor-widget-loop-grid nav.elementor-pagination a.page-numbers.next:hover {
	background: #E30613 !important;
	border-color: #E30613 !important;
	color: #ffffff !important;
	transform: translateY(-2px);
	box-shadow: 0 12px 24px rgba(0, 0, 0, 0.16);
}

/* Disabled state if Elementor outputs spans */
.elementor-widget-loop-grid .elementor-pagination span.page-numbers.prev,
.elementor-widget-loop-grid .elementor-pagination span.page-numbers.next,
.elementor-widget-loop-grid nav.elementor-pagination span.page-numbers.prev,
.elementor-widget-loop-grid nav.elementor-pagination span.page-numbers.next,
.elementor-pagination span.page-numbers.prev,
.elementor-pagination span.page-numbers.next {
	opacity: 1;
	background: #6F6F6F !important;
	border-color: #6F6F6F !important;
	color: #ffffff !important;
	cursor: default;
	pointer-events: none;
}



/* =========================================================
   MOBILE ADJUSTMENTS
   ========================================================= */

@media (max-width: 767px) {
	.npc-lgac-spinner {
		width: 38px !important;
		height: 38px !important;
		border-width: 5px !important;
	}

	.npc-lgac-loader-text {
		font-size: 17px !important;
	}

	.npc-lgac-loader-floating {
		padding: 13px 15px !important;
	}

	.elementor-widget-loop-grid .elementor-pagination a.page-numbers:not(.prev):not(.next),
	.elementor-widget-loop-grid .elementor-pagination span.page-numbers:not(.prev):not(.next):not(.current),
	.elementor-widget-loop-grid .elementor-pagination .page-numbers.current,
	.elementor-widget-loop-grid nav.elementor-pagination a.page-numbers:not(.prev):not(.next),
	.elementor-widget-loop-grid nav.elementor-pagination span.page-numbers:not(.prev):not(.next):not(.current),
	.elementor-widget-loop-grid nav.elementor-pagination .page-numbers.current {
		display: none !important;
	}

	.elementor-widget-loop-grid .elementor-pagination,
	.elementor-widget-loop-grid nav.elementor-pagination {
		display: flex;
		justify-content: center;
		align-items: center;
		gap: 12px;
		flex-wrap: nowrap;
	}

	.elementor-widget-loop-grid .elementor-pagination .page-numbers.prev,
	.elementor-widget-loop-grid .elementor-pagination .page-numbers.next,
	.elementor-widget-loop-grid nav.elementor-pagination .page-numbers.prev,
	.elementor-widget-loop-grid nav.elementor-pagination .page-numbers.next {
		width: 120px;
		min-width: 120px;
		max-width: 120px;
		flex: 0 0 120px;
		height: 42px;
		padding: 0;
		font-size: 15px;
		transform: none !important;
		transition:
			background-color 0.25s ease,
			border-color 0.25s ease,
			color 0.25s ease,
			box-shadow 0.25s ease;
	}

	.elementor-widget-loop-grid .elementor-pagination .page-numbers.prev:hover,
	.elementor-widget-loop-grid .elementor-pagination .page-numbers.next:hover,
	.elementor-widget-loop-grid .elementor-pagination .page-numbers.prev:active,
	.elementor-widget-loop-grid .elementor-pagination .page-numbers.next:active,
	.elementor-widget-loop-grid .elementor-pagination .page-numbers.prev:focus,
	.elementor-widget-loop-grid .elementor-pagination .page-numbers.next:focus,
	.elementor-widget-loop-grid nav.elementor-pagination .page-numbers.prev:hover,
	.elementor-widget-loop-grid nav.elementor-pagination .page-numbers.next:hover,
	.elementor-widget-loop-grid nav.elementor-pagination .page-numbers.prev:active,
	.elementor-widget-loop-grid nav.elementor-pagination .page-numbers.next:active,
	.elementor-widget-loop-grid nav.elementor-pagination .page-numbers.prev:focus,
	.elementor-widget-loop-grid nav.elementor-pagination .page-numbers.next:focus {
		transform: none !important;
	}
}

/* Sales child pages: disabled Loop Grid pagination contrast fix */
body.single-npc_sales .elementor-pagination span.page-numbers.prev,
body.single-npc_sales .elementor-pagination span.page-numbers.next {
	opacity: 1 !important;
	background: #6F6F6F !important;
	border-color: #6F6F6F !important;
	color: #ffffff !important;
}

/* NPC ordered stylesheet boundary */
#contact-us {
	scroll-margin-top: 70px;
}

@media (min-width: 768px) and (max-width: 1024px) {
	#contact-us {
		scroll-margin-top: 70px;
	}
}

@media (max-width: 767px) {
	#contact-us {
		scroll-margin-top: 70px;
	}
}

/* NPC ordered stylesheet boundary */
/*
 * NPC Styling & UX Fixes - Mobile Blue Box Cleanup
 *
 * Scope: touch/mobile frontend interactions only.
 * Purpose: remove Chrome/Safari mobile tap highlight and persistent focus blue boxes
 * from common clickable website elements such as header logos, buttons, clickable
 * Elementor containers, Loop Grid cards, FAQ titles, sliders, review/logo cards,
 * and pagination controls.
 *
 * Desktop keyboard focus is intentionally preserved.
 */

@media (hover: none), (pointer: coarse) {
	:where(
		a[href],
		button,
		[role="button"],
		[role="link"],
		[tabindex]:not([tabindex="-1"]),
		.elementor-button,
		.e-clickable,
		.elementor-clickable,
		.elementor-widget-container,
		.elementor-accordion-title,
		.elementor-tab-title,
		.elementor-toggle-title,
		.elementor-swiper-button,
		.swiper-button-prev,
		.swiper-button-next,
		.swiper-pagination-bullet,
		.page-numbers,
		.npc-review-item,
		.npc-brand-logo,
		.npc-product-card,
		.npc-scd-card,
		.npc-sidebar-menu a,
		.npc-sidebar-menu button,
		.npc-menu-toggle,
		.npc-mobile-menu-toggle
	),
	:where(
		a[href],
		button,
		[role="button"],
		[role="link"],
		[tabindex]:not([tabindex="-1"]),
		.elementor-button,
		.e-clickable,
		.elementor-clickable,
		.elementor-accordion-title,
		.elementor-tab-title,
		.elementor-toggle-title,
		.elementor-swiper-button,
		.swiper-button-prev,
		.swiper-button-next,
		.swiper-pagination-bullet,
		.page-numbers,
		.npc-review-item,
		.npc-brand-logo,
		.npc-product-card,
		.npc-scd-card,
		.npc-sidebar-menu a,
		.npc-sidebar-menu button,
		.npc-menu-toggle,
		.npc-mobile-menu-toggle
	) * {
		-webkit-tap-highlight-color: transparent !important;
	}

	html.npc-suxf-touch-input :where(
		a[href],
		button,
		[role="button"],
		[role="link"],
		[tabindex]:not([tabindex="-1"]),
		.elementor-button,
		.e-clickable,
		.elementor-clickable,
		.elementor-accordion-title,
		.elementor-tab-title,
		.elementor-toggle-title,
		.elementor-swiper-button,
		.swiper-button-prev,
		.swiper-button-next,
		.swiper-pagination-bullet,
		.page-numbers,
		.npc-review-item,
		.npc-brand-logo,
		.npc-product-card,
		.npc-scd-card,
		.npc-sidebar-menu a,
		.npc-sidebar-menu button,
		.npc-menu-toggle,
		.npc-mobile-menu-toggle
	):where(:focus, :active, :focus-visible),
	html.npc-suxf-touch-input :where(
		.elementor-location-header a[href],
		.elementor-location-header a[href] *,
		.elementor-widget-theme-site-logo a[href],
		.elementor-widget-theme-site-logo a[href] *,
		.elementor-widget-loop-grid a[href],
		.elementor-widget-loop-grid a[href] *,
		.elementor-loop-container a[href],
		.elementor-loop-container a[href] *,
		.e-loop-item a[href],
		.e-loop-item a[href] *,
		.e-clickable,
		.e-clickable *,
		.elementor-accordion-title,
		.elementor-accordion-title *,
		.elementor-tab-title,
		.elementor-tab-title *,
		.elementor-toggle-title,
		.elementor-toggle-title *,
		.swiper-pagination-bullet,
		.swiper-pagination-bullet *,
		.npc-scd-card,
		.npc-scd-card *,
		.npc-sidebar-menu a,
		.npc-sidebar-menu button,
		.npc-menu-toggle,
		.npc-mobile-menu-toggle
	):where(:focus, :active, :focus-visible) {
		outline: none !important;
		box-shadow: none !important;
	}

	html.npc-suxf-touch-input :where(
		input,
		select,
		textarea,
		[contenteditable="true"]
	):where(:focus, :active, :focus-visible) {
		outline: revert;
	}
}

/* NPC ordered stylesheet boundary */
/*
 * NPC Blog Formatting
 * Version: 1.0.3
 *
 * Job:
 * - Controls blog article typography and spacing only.
 * - Link colors are NOT controlled here.
 *
 * Scope:
 * Only styles elements inside .npc-blog-content.
 *
 * Elementor usage:
 * Add this class to the Blog Article Template Post Content widget:
 * Advanced > CSS Classes > npc-blog-content
 */

.npc-blog-content,
.npc-blog-content * {
  box-sizing: border-box;
}

/* Main blog article wrapper */
.npc-blog-content {
  font-family: Georgia, serif;
  color: #111111;
}

/* General text */
.npc-blog-content p,
.npc-blog-content li,
.npc-blog-content td,
.npc-blog-content th,
.npc-blog-content blockquote {
  font-family: Georgia, serif;
  font-size: 18px;
  font-weight: 400;
  line-height: 1.5em;
  color: #111111;
}

/* Paragraph spacing */
.npc-blog-content p {
  margin: 0 0 1.15em;
}

.npc-blog-content p:last-child {
  margin-bottom: 0;
}

/* H1 / H2 headings */
.npc-blog-content h1,
.npc-blog-content h2 {
  font-family: Georgia, serif;
  font-size: 30px;
  font-weight: 600;
  line-height: 1.1em;
  color: #E30613;
  margin: 1.35em 0 0.55em;
}

/* H3 and smaller subheadings */
.npc-blog-content h3,
.npc-blog-content h4,
.npc-blog-content h5,
.npc-blog-content h6 {
  font-family: Georgia, serif;
  font-size: 20px;
  font-weight: 600;
  line-height: 1.2em;
  color: #E30613;
  margin: 1.25em 0 0.5em;
}

/* Lists */
.npc-blog-content ul,
.npc-blog-content ol {
  margin: 0 0 1.15em 1.25em;
  padding-left: 1.1em;
}

.npc-blog-content li {
  margin-bottom: 0.45em;
}

/* Images inside article content */
.npc-blog-content img {
  max-width: 100%;
  height: auto;
  display: block;
  margin: 1.25em auto;
}

/* Tables inside article content */
.npc-blog-content table {
  width: 100%;
  border-collapse: collapse;
  margin: 1.25em 0;
}

.npc-blog-content th,
.npc-blog-content td {
  border: 1px solid #dddddd;
  padding: 10px 12px;
  text-align: left;
}

/* Tablet typography */
@media (max-width: 1024px) {
  .npc-blog-content p,
  .npc-blog-content li,
  .npc-blog-content td,
  .npc-blog-content th,
  .npc-blog-content blockquote {
    font-size: 17px;
    font-weight: 400;
    line-height: 1.5em;
  }

  .npc-blog-content h1,
  .npc-blog-content h2 {
    font-size: 25px;
    font-weight: 600;
    line-height: 1.1em;
  }

  .npc-blog-content h3,
  .npc-blog-content h4,
  .npc-blog-content h5,
  .npc-blog-content h6 {
    font-size: 19px;
    font-weight: 600;
    line-height: 1.2em;
  }
}

/* Mobile typography */
@media (max-width: 767px) {
  .npc-blog-content p,
  .npc-blog-content li,
  .npc-blog-content td,
  .npc-blog-content th,
  .npc-blog-content blockquote {
    font-size: 16px;
    font-weight: 400;
    line-height: 1.5em;
  }

  .npc-blog-content h1,
  .npc-blog-content h2 {
    font-size: 20px;
    font-weight: 600;
    line-height: 1.1em;
  }

  .npc-blog-content h3,
  .npc-blog-content h4,
  .npc-blog-content h5,
  .npc-blog-content h6 {
    font-size: 18px;
    font-weight: 600;
    line-height: 1.2em;
  }
}
/* NPC ordered stylesheet boundary */

				.e-con.e-parent:nth-of-type(n+4):not(.e-lazyloaded):not(.e-no-lazyload),
				.e-con.e-parent:nth-of-type(n+4):not(.e-lazyloaded):not(.e-no-lazyload) * {
					background-image: none !important;
				}
				@media screen and (max-height: 1024px) {
					.e-con.e-parent:nth-of-type(n+3):not(.e-lazyloaded):not(.e-no-lazyload),
					.e-con.e-parent:nth-of-type(n+3):not(.e-lazyloaded):not(.e-no-lazyload) * {
						background-image: none !important;
					}
				}
				@media screen and (max-height: 640px) {
					.e-con.e-parent:nth-of-type(n+2):not(.e-lazyloaded):not(.e-no-lazyload),
					.e-con.e-parent:nth-of-type(n+2):not(.e-lazyloaded):not(.e-no-lazyload) * {
						background-image: none !important;
					}
				}
			
/* NPC ordered stylesheet boundary */

/* NPC Sales sidebar: keep desktop sticky layout stable. */
@media (min-width:1025px) {
  .elementor-10512 .elementor-element.elementor-element-9871842 {
    position:sticky!important;
    top:95px!important;
  }
}

/* Reserve the mobile Sales hero before optimized contents arrive. */
@media (max-width:767px) {
  .elementor-10512 .elementor-element.elementor-element-95bd034 {
    min-height:calc(60vw + 64px)!important;
  }
}

