/*
 * ACX Header / Footer polish for Blocksy.
 * Version: 1.0.1
 *
 * This file is intentionally theme-level only:
 * Header and Footer are still configured visually in Blocksy Customizer.
 */

:root {
	--acx-header-height: 92px;
	--acx-header-logo-width: 150px;
	--acx-header-bg: rgba(7, 10, 8, 0.92);
	--acx-header-bg-solid: #070a08;
	--acx-header-border: rgba(101, 200, 41, 0.14);
	--acx-dropdown-bg: rgba(9, 14, 9, 0.98);
	--acx-footer-bg: #050705;
}

/* Header shell ------------------------------------------------------------ */

body.acx-site [data-header*='type-1'] .ct-header {
	position: relative;
	z-index: 50;
}

body.acx-site [data-header*='type-1'] .ct-header [data-row*='middle'] {
	min-height: var(--acx-header-height);
	border-bottom: 1px solid var(--acx-header-border);
	background:
		radial-gradient(circle at 50% -140%, rgba(101, 200, 41, 0.18), transparent 32rem),
		var(--acx-header-bg) !important;
	box-shadow: 0 18px 70px rgba(0, 0, 0, 0.22);
	backdrop-filter: blur(16px);
	-webkit-backdrop-filter: blur(16px);
}

body.acx-site [data-header*='type-1'] .ct-header [data-row*='middle'] > div,
body.acx-site [data-header*='type-1'] .ct-header .ct-container,
body.acx-site [data-header*='type-1'] .ct-header .ct-container-fluid {
	max-width: 1280px;
	margin-right: auto;
	margin-left: auto;
}

/* Logo ------------------------------------------------------------------- */

body.acx-site .site-logo-container {
	display: inline-flex;
	align-items: center;
}

body.acx-site .site-logo-container img,
body.acx-site .ct-logo img,
body.acx-site [data-logo] img {
	width: auto;
	max-width: var(--acx-header-logo-width);
	max-height: 70px;
	object-fit: contain;
	transition: transform 180ms ease, filter 180ms ease;
}

body.acx-site .site-logo-container:hover img,
body.acx-site .ct-logo:hover img {
	filter: drop-shadow(0 0 16px rgba(101, 200, 41, 0.34));
	transform: translateY(-1px);
}

/* Main navigation --------------------------------------------------------- */

body.acx-site .ct-header [class*='menu'] > li > a,
body.acx-site .ct-header .menu > li > a,
body.acx-site .ct-header .ct-menu-link {
	position: relative;
	color: var(--acx-text) !important;
	font-size: 12px;
	font-weight: 850;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	text-decoration: none;
	transition: color 180ms ease, opacity 180ms ease;
}

body.acx-site .ct-header [class*='menu'] > li > a::after,
body.acx-site .ct-header .menu > li > a::after,
body.acx-site .ct-header .ct-menu-link::after {
	position: absolute;
	right: 18%;
	bottom: 0.68rem;
	left: 18%;
	height: 1px;
	content: '';
	background: linear-gradient(90deg, transparent, var(--acx-green-bright), transparent);
	opacity: 0;
	transform: scaleX(0.35);
	transition: opacity 180ms ease, transform 180ms ease;
	pointer-events: none;
}

body.acx-site .ct-header [class*='menu'] > li > a:hover,
body.acx-site .ct-header [class*='menu'] > li.current-menu-item > a,
body.acx-site .ct-header [class*='menu'] > li.current-menu-ancestor > a,
body.acx-site .ct-header .ct-menu-link:hover {
	color: var(--acx-green-bright) !important;
}

body.acx-site .ct-header [class*='menu'] > li > a:hover::after,
body.acx-site .ct-header [class*='menu'] > li.current-menu-item > a::after,
body.acx-site .ct-header [class*='menu'] > li.current-menu-ancestor > a::after,
body.acx-site .ct-header .ct-menu-link:hover::after {
	opacity: 1;
	transform: scaleX(1);
}

/* Dropdown / products menu ------------------------------------------------ */

body.acx-site .ct-header .sub-menu,
body.acx-site .ct-header [class*='dropdown'] {
	border: 1px solid rgba(101, 200, 41, 0.18) !important;
	border-radius: 18px;
	background:
		linear-gradient(180deg, rgba(255, 255, 255, 0.035), transparent 42%),
		var(--acx-dropdown-bg) !important;
	box-shadow: 0 24px 80px rgba(0, 0, 0, 0.38), 0 0 28px rgba(101, 200, 41, 0.1);
	backdrop-filter: blur(18px);
	-webkit-backdrop-filter: blur(18px);
}

body.acx-site .ct-header .sub-menu a,
body.acx-site .ct-header [class*='dropdown'] a {
	color: var(--acx-text-muted) !important;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.05em;
	text-transform: uppercase;
}

body.acx-site .ct-header .sub-menu a:hover,
body.acx-site .ct-header [class*='dropdown'] a:hover {
	color: var(--acx-green-bright) !important;
	background: rgba(101, 200, 41, 0.08) !important;
}

/* Header search / icons --------------------------------------------------- */

body.acx-site .ct-header svg,
body.acx-site .ct-header [class*='search'] svg {
	color: var(--acx-green);
	fill: currentColor;
	stroke: currentColor;
}

body.acx-site .ct-header [class*='search']:hover svg,
body.acx-site .ct-header button:hover svg {
	color: var(--acx-green-bright);
	filter: drop-shadow(0 0 10px rgba(101, 200, 41, 0.38));
}

/* Header CTA button ------------------------------------------------------- */

body.acx-site .ct-header .ct-button,
body.acx-site .ct-header a.ct-button,
body.acx-site .ct-header .wp-block-button__link {
	min-height: 38px;
	padding: 0.66rem 1rem;
	color: #061006 !important;
	font-size: 12px;
	font-weight: 900;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	text-decoration: none;
	border: 1px solid var(--acx-green);
	border-radius: 999px;
	background: var(--acx-green);
	box-shadow: 0 10px 26px rgba(101, 200, 41, 0.16);
}

body.acx-site .ct-header .ct-button:hover,
body.acx-site .ct-header a.ct-button:hover,
body.acx-site .ct-header .wp-block-button__link:hover {
	color: #061006 !important;
	background: var(--acx-green-bright);
	border-color: var(--acx-green-bright);
	box-shadow: 0 0 28px rgba(101, 200, 41, 0.36);
	transform: translateY(-1px);
}

/* Sticky header compatibility -------------------------------------------- */

body.acx-site .ct-sticky-container [data-row*='middle'],
body.acx-site [data-sticky*='yes'] [data-row*='middle'] {
	background:
		radial-gradient(circle at 50% -160%, rgba(101, 200, 41, 0.16), transparent 28rem),
		var(--acx-header-bg-solid) !important;
}

/* Mobile header / offcanvas ---------------------------------------------- */

body.acx-site .ct-header-trigger,
body.acx-site .ct-header-trigger .ct-icon {
	color: var(--acx-green) !important;
}

body.acx-site #offcanvas,
body.acx-site .ct-panel,
body.acx-site [data-behaviour*='side'] {
	background:
		radial-gradient(circle at 50% 0%, rgba(101, 200, 41, 0.12), transparent 28rem),
		var(--acx-bg) !important;
}

body.acx-site #offcanvas a,
body.acx-site .ct-panel a {
	color: var(--acx-text) !important;
}

body.acx-site #offcanvas a:hover,
body.acx-site .ct-panel a:hover {
	color: var(--acx-green-bright) !important;
}

/* Footer shell ------------------------------------------------------------ */

body.acx-site .ct-footer {
	position: relative;
	overflow: hidden;
	color: var(--acx-text-muted);
	border-top: 1px solid rgba(101, 200, 41, 0.14);
	background:
		radial-gradient(circle at 50% 0%, rgba(101, 200, 41, 0.12), transparent 34rem),
		linear-gradient(180deg, #070a08 0%, var(--acx-footer-bg) 100%) !important;
}

body.acx-site .ct-footer::before {
	position: absolute;
	top: 0;
	right: 0;
	left: 0;
	height: 1px;
	content: '';
	background: linear-gradient(90deg, transparent, rgba(140, 235, 63, 0.7), transparent);
	opacity: 0.5;
}

body.acx-site .ct-footer [class*='ct-container'],
body.acx-site .ct-footer .ct-container,
body.acx-site .ct-footer .ct-container-fluid {
	max-width: 1280px;
	margin-right: auto;
	margin-left: auto;
}

body.acx-site .ct-footer h1,
body.acx-site .ct-footer h2,
body.acx-site .ct-footer h3,
body.acx-site .ct-footer h4,
body.acx-site .ct-footer h5,
body.acx-site .ct-footer h6,
body.acx-site .ct-footer .widget-title {
	color: var(--acx-text) !important;
	font-size: 13px;
	font-weight: 900;
	letter-spacing: 0.11em;
	text-transform: uppercase;
}

body.acx-site .ct-footer p,
body.acx-site .ct-footer li {
	color: var(--acx-text-muted);
	font-size: 14px;
	line-height: 1.7;
}

body.acx-site .ct-footer a {
	color: var(--acx-text-muted) !important;
	text-decoration: none;
	transition: color 180ms ease, transform 180ms ease;
}

body.acx-site .ct-footer a:hover {
	color: var(--acx-green-bright) !important;
}

/* Footer widgets as subtle panels when Blocksy columns are used. */
body.acx-site .ct-footer [data-column],
body.acx-site .ct-footer .ct-widget {
	border-color: rgba(101, 200, 41, 0.1);
}

/* Useful optional footer classes for widgets / HTML blocks. */

body.acx-site .acx-footer-brand {
	max-width: 360px;
}

body.acx-site .acx-footer-brand strong {
	display: block;
	margin-bottom: 10px;
	color: var(--acx-text);
	font-size: 20px;
	letter-spacing: -0.03em;
}

body.acx-site .acx-footer-signal {
	display: inline-flex;
	gap: 8px;
	align-items: center;
	margin-top: 18px;
	color: var(--acx-green);
	font-size: 12px;
	font-weight: 900;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

body.acx-site .acx-footer-signal::before {
	width: 8px;
	height: 8px;
	content: '';
	border-radius: 999px;
	background: var(--acx-green);
	box-shadow: 0 0 16px rgba(101, 200, 41, 0.72);
}

/* Copyright row ----------------------------------------------------------- */

body.acx-site .ct-footer [data-row*='bottom'] {
	border-top: 1px solid rgba(101, 200, 41, 0.1);
}

body.acx-site .ct-footer [data-row*='bottom'] p,
body.acx-site .ct-footer [data-row*='bottom'] a {
	color: rgba(174, 184, 170, 0.72) !important;
	font-size: 12px;
}

/* Responsive -------------------------------------------------------------- */

@media (max-width: 999px) {
	:root {
		--acx-header-height: 78px;
		--acx-header-logo-width: 132px;
	}

	body.acx-site [data-header*='type-1'] .ct-header [data-row*='middle'] {
		min-height: var(--acx-header-height);
	}

	body.acx-site .site-logo-container img,
	body.acx-site .ct-logo img,
	body.acx-site [data-logo] img {
		max-height: 58px;
	}
}

@media (max-width: 689px) {
	:root {
		--acx-header-height: 72px;
		--acx-header-logo-width: 120px;
	}

	body.acx-site [data-header*='type-1'] .ct-header [data-row*='middle'] {
		background: var(--acx-header-bg-solid) !important;
	}

	body.acx-site .ct-footer {
		text-align: left;
	}
}


/* v1.0.2 Header/Footer refinements ---------------------------------------- */

/*
 * The first header polish version intentionally kept things dramatic.
 * This version tightens the header so the first screen feels more premium.
 */
:root {
	--acx-header-height: 84px;
	--acx-header-logo-width: 132px;
	--acx-dropdown-width: 250px;
}

/* Reduce visual weight of the header and logo. */
body.acx-site [data-header*='type-1'] .ct-header [data-row*='middle'] {
	min-height: var(--acx-header-height) !important;
}

body.acx-site .site-logo-container img,
body.acx-site .ct-logo img,
body.acx-site [data-logo] img {
	max-width: var(--acx-header-logo-width) !important;
	max-height: 58px !important;
}

/* Make navigation cleaner and less bulky. */
body.acx-site .ct-header [class*='menu'] > li > a,
body.acx-site .ct-header .menu > li > a,
body.acx-site .ct-header .ct-menu-link {
	font-size: 11px !important;
	font-weight: 900 !important;
	letter-spacing: 0.1em !important;
}

/*
 * Fix the empty green square near "PRODUCTS".
 * Blocksy may render a dropdown arrow as an SVG/icon inside the menu link.
 * We normalize it so it appears as a small clean caret instead of a boxed icon.
 */
body.acx-site .ct-header .menu-item-has-children > a svg,
body.acx-site .ct-header .menu-item-has-children > a .ct-icon,
body.acx-site .ct-header [class*='menu'] .menu-item-has-children > a svg,
body.acx-site .ct-header [class*='menu'] .menu-item-has-children > a .ct-icon {
	display: inline-block !important;
	width: 0.68em !important;
	height: 0.68em !important;
	margin-left: 0.42em !important;
	padding: 0 !important;
	color: currentColor !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	outline: 0 !important;
	transform: translateY(-1px);
}

/* In case Blocksy/Customizer outputs the arrow as an extra toggle button. */
body.acx-site .ct-header .menu-item-has-children > .ct-sub-menu-parent,
body.acx-site .ct-header .menu-item-has-children > .sub-menu-toggle,
body.acx-site .ct-header .menu-item-has-children > button {
	border: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	outline: 0 !important;
}

/* More refined dropdown. */
body.acx-site .ct-header .sub-menu {
	min-width: var(--acx-dropdown-width) !important;
	padding: 12px !important;
	border-radius: 20px !important;
}

body.acx-site .ct-header .sub-menu li {
	border-bottom: 1px solid rgba(101, 200, 41, 0.08);
}

body.acx-site .ct-header .sub-menu li:last-child {
	border-bottom: 0;
}

body.acx-site .ct-header .sub-menu a {
	min-height: 46px !important;
	padding: 0.72rem 0.92rem !important;
	border-radius: 12px !important;
	font-size: 11px !important;
	letter-spacing: 0.1em !important;
}

/* Header search icon should be aligned and not oversized. */
body.acx-site .ct-header [class*='search'] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

body.acx-site .ct-header [class*='search'] svg {
	width: 18px !important;
	height: 18px !important;
}

/* Footer: make default Blocksy footer look less empty even before final 4-column setup. */
body.acx-site .ct-footer {
	min-height: 320px;
}

body.acx-site .ct-footer [data-row*='middle'] {
	padding-top: clamp(52px, 7vw, 92px) !important;
	padding-bottom: clamp(42px, 6vw, 72px) !important;
}

body.acx-site .ct-footer [data-row*='middle'] [class*='ct-container'],
body.acx-site .ct-footer [data-row*='middle'] .ct-container,
body.acx-site .ct-footer [data-row*='middle'] .ct-container-fluid {
	display: grid;
	gap: clamp(26px, 4vw, 56px);
	align-items: start;
}

/* If there is only one footer widget/html block, keep it as a premium brand block instead of a tiny floating paragraph. */
body.acx-site .ct-footer .acx-footer-brand,
body.acx-site .ct-footer [data-id*='html'] .acx-footer-brand {
	width: min(100%, 420px);
	padding: 24px;
	border: 1px solid rgba(101, 200, 41, 0.14);
	border-radius: 22px;
	background:
		linear-gradient(180deg, rgba(255, 255, 255, 0.035), transparent 48%),
		rgba(17, 22, 17, 0.42);
	box-shadow: 0 22px 70px rgba(0, 0, 0, 0.22);
}

body.acx-site .ct-footer .acx-footer-brand strong {
	font-size: 18px;
}

/* Footer links: more useful list rhythm. */
body.acx-site .ct-footer ul,
body.acx-site .ct-footer ol {
	display: grid;
	gap: 9px;
	padding-left: 0;
	list-style: none;
}

body.acx-site .ct-footer li a {
	display: inline-flex;
	gap: 8px;
	align-items: center;
}

body.acx-site .ct-footer li a::before {
	width: 6px;
	height: 6px;
	content: '';
	border-radius: 999px;
	background: rgba(101, 200, 41, 0.6);
	box-shadow: 0 0 10px rgba(101, 200, 41, 0.32);
	opacity: 0;
	transform: scale(0.6);
	transition: opacity 180ms ease, transform 180ms ease;
}

body.acx-site .ct-footer li a:hover::before {
	opacity: 1;
	transform: scale(1);
}

/* Make copyright row cleaner and remove the default WordPress-template feeling. */
body.acx-site .ct-footer [data-row*='bottom'] {
	min-height: 54px;
	background: rgba(0, 0, 0, 0.18);
}

body.acx-site .ct-footer [data-row*='bottom'] .ct-container,
body.acx-site .ct-footer [data-row*='bottom'] .ct-container-fluid {
	align-items: center;
}

body.acx-site .ct-footer [data-row*='bottom'] p {
	margin: 0;
}

/* Optional four-column footer grid helper for later HTML/footer widgets. */
body.acx-site .acx-footer-grid {
	display: grid;
	grid-template-columns: minmax(260px, 1.3fr) repeat(3, minmax(160px, 1fr));
	gap: clamp(24px, 4vw, 56px);
	width: 100%;
}

body.acx-site .acx-footer-col h3 {
	margin: 0 0 16px;
	color: var(--acx-text);
	font-size: 13px;
	font-weight: 900;
	letter-spacing: 0.11em;
	text-transform: uppercase;
}

body.acx-site .acx-footer-col p,
body.acx-site .acx-footer-col a {
	color: var(--acx-text-muted) !important;
	font-size: 14px;
	line-height: 1.7;
}

body.acx-site .acx-footer-col a:hover {
	color: var(--acx-green-bright) !important;
}

/* Hero starts closer to header after header size reduction. */
body.acx-site .acx-sonic-hero {
	min-height: min(780px, calc(100vh - var(--acx-header-height))) !important;
}

@media (max-width: 999px) {
	:root {
		--acx-header-height: 76px;
		--acx-header-logo-width: 120px;
	}

	body.acx-site .site-logo-container img,
	body.acx-site .ct-logo img,
	body.acx-site [data-logo] img {
		max-height: 52px !important;
	}

	body.acx-site .acx-footer-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 689px) {
	:root {
		--acx-header-height: 70px;
		--acx-header-logo-width: 108px;
	}

	body.acx-site .acx-footer-grid {
		grid-template-columns: 1fr;
	}

	body.acx-site .ct-footer .acx-footer-brand,
	body.acx-site .ct-footer [data-id*='html'] .acx-footer-brand {
		width: 100%;
		padding: 20px;
	}
}


/* v1.0.3: Definitive Blocksy dropdown indicator fix -----------------------
 *
 * Some Blocksy header configurations render the dropdown indicator as a
 * separate icon container next to the menu label. With the ACX green icon
 * styling, that container can appear as a visible green square.
 *
 * We hide Blocksy's native dropdown indicator only in the desktop primary
 * menu and generate a small CSS caret instead.
 */

/* Hide native dropdown icon containers and SVG arrows in the desktop menu. */
body.acx-site .ct-header [data-id*='menu'] .menu-item-has-children > a .ct-icon-container,
body.acx-site .ct-header [data-id*='menu'] .menu-item-has-children > a .ct-icon,
body.acx-site .ct-header [data-id*='menu'] .menu-item-has-children > a svg,
body.acx-site .ct-header [data-id*='menu'] .menu-item-has-children > .ct-icon-container,
body.acx-site .ct-header [data-id*='menu'] .menu-item-has-children > .ct-sub-menu-parent,
body.acx-site .ct-header [data-id*='menu'] .menu-item-has-children > button,
body.acx-site .ct-header [class*='menu'] .menu-item-has-children > a .ct-icon-container,
body.acx-site .ct-header [class*='menu'] .menu-item-has-children > a .ct-icon,
body.acx-site .ct-header [class*='menu'] .menu-item-has-children > a svg,
body.acx-site .ct-header [class*='menu'] .menu-item-has-children > .ct-icon-container,
body.acx-site .ct-header [class*='menu'] .menu-item-has-children > .ct-sub-menu-parent,
body.acx-site .ct-header [class*='menu'] .menu-item-has-children > button {
	display: none !important;
	width: 0 !important;
	height: 0 !important;
	min-width: 0 !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	opacity: 0 !important;
	visibility: hidden !important;
	pointer-events: none !important;
}

/* Also neutralize any leftover direct child span that only acts as an icon wrapper. */
body.acx-site .ct-header [data-id*='menu'] .menu-item-has-children > a > span.ct-icon-container,
body.acx-site .ct-header [data-id*='menu'] .menu-item-has-children > a > span[class*='icon'],
body.acx-site .ct-header [class*='menu'] .menu-item-has-children > a > span.ct-icon-container,
body.acx-site .ct-header [class*='menu'] .menu-item-has-children > a > span[class*='icon'] {
	display: none !important;
}

/* Keep the link compact after the native icon disappears. */
body.acx-site .ct-header [data-id*='menu'] .menu-item-has-children > a,
body.acx-site .ct-header [class*='menu'] .menu-item-has-children > a {
	display: inline-flex !important;
	gap: 0.32em;
	align-items: center;
}

/* Custom clean caret. We use ::before because ::after is already the green signal underline. */
body.acx-site .ct-header [data-id*='menu'] .menu-item-has-children > a::before,
body.acx-site .ct-header [class*='menu'] .menu-item-has-children > a::before {
	position: static !important;
	display: inline-block;
	order: 2;
	width: auto;
	height: auto;
	margin-left: 0.28em;
	content: '▾';
	color: currentColor;
	font-size: 0.72em;
	line-height: 1;
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	opacity: 0.9;
	transform: translateY(-0.06em);
}

/* Preserve the underline signal as ::after and keep it below the text. */
body.acx-site .ct-header [data-id*='menu'] .menu-item-has-children > a::after,
body.acx-site .ct-header [class*='menu'] .menu-item-has-children > a::after {
	order: initial;
}

/* If Blocksy outputs an accessible hidden label inside the menu link, do not disturb it. */
body.acx-site .ct-header [data-id*='menu'] .menu-item-has-children > a .screen-reader-text,
body.acx-site .ct-header [class*='menu'] .menu-item-has-children > a .screen-reader-text {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
	clip: rect(1px, 1px, 1px, 1px) !important;
	white-space: nowrap !important;
}

/* Mobile/offcanvas menus can use Blocksy defaults; do not force the custom caret there. */
@media (max-width: 999px) {
	body.acx-site #offcanvas .menu-item-has-children > a::before,
	body.acx-site .ct-panel .menu-item-has-children > a::before {
		content: none !important;
	}
}


/* v1.0.4: Fix Blocksy dropdown arrow square at source ----------------------
 *
 * Root cause:
 * Earlier Header CSS used a broad selector:
 *   .ct-header [class*='dropdown']
 * That can accidentally style Blocksy's dropdown indicator/trigger element
 * as if it were the submenu panel.
 *
 * This patch force-resets every possible indicator/trigger element in the
 * desktop header and keeps styling only on the real .sub-menu panel.
 */

/* Real dropdown panel keeps the ACX panel style. */
body.acx-site .ct-header .sub-menu {
	border: 1px solid rgba(101, 200, 41, 0.18) !important;
	border-radius: 20px !important;
	background:
		linear-gradient(180deg, rgba(255, 255, 255, 0.035), transparent 42%),
		var(--acx-dropdown-bg, rgba(9, 14, 9, 0.98)) !important;
	box-shadow: 0 24px 80px rgba(0, 0, 0, 0.38), 0 0 28px rgba(101, 200, 41, 0.1) !important;
	backdrop-filter: blur(18px);
	-webkit-backdrop-filter: blur(18px);
}

/*
 * Reset/hide all native Blocksy dropdown indicators.
 * This intentionally targets many likely class names because Blocksy output
 * can vary depending on header builder settings.
 */
body.acx-site .ct-header .menu-item-has-children > a [class*='dropdown'],
body.acx-site .ct-header .menu-item-has-children > a [class*='indicator'],
body.acx-site .ct-header .menu-item-has-children > a [class*='arrow'],
body.acx-site .ct-header .menu-item-has-children > a [class*='toggle'],
body.acx-site .ct-header .menu-item-has-children > a [class*='icon'],
body.acx-site .ct-header .menu-item-has-children > a .ct-icon-container,
body.acx-site .ct-header .menu-item-has-children > a .ct-icon,
body.acx-site .ct-header .menu-item-has-children > a .child-indicator,
body.acx-site .ct-header .menu-item-has-children > a svg,
body.acx-site .ct-header .menu-item-has-children > .ct-sub-menu-parent,
body.acx-site .ct-header .menu-item-has-children > .ct-toggle-dropdown-desktop,
body.acx-site .ct-header .menu-item-has-children > .ct-dropdown-icon,
body.acx-site .ct-header .menu-item-has-children > .child-indicator,
body.acx-site .ct-header .menu-item-has-children > button[class*='dropdown'],
body.acx-site .ct-header .menu-item-has-children > button[class*='toggle'],
body.acx-site .ct-header .menu-item-has-children > span[class*='dropdown'],
body.acx-site .ct-header .menu-item-has-children > span[class*='indicator'],
body.acx-site .ct-header .menu-item-has-children > span[class*='arrow'],
body.acx-site .ct-header .menu-item-has-children > span[class*='toggle'],
body.acx-site .ct-header .menu-item-has-children > span[class*='icon'] {
	display: none !important;
	width: 0 !important;
	height: 0 !important;
	min-width: 0 !important;
	min-height: 0 !important;
	max-width: 0 !important;
	max-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	color: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	outline: 0 !important;
	opacity: 0 !important;
	visibility: hidden !important;
	pointer-events: none !important;
}

/*
 * If the indicator is injected as a pseudo element on a nested icon wrapper,
 * neutralize the wrapper pseudo elements too.
 */
body.acx-site .ct-header .menu-item-has-children > a [class*='dropdown']::before,
body.acx-site .ct-header .menu-item-has-children > a [class*='dropdown']::after,
body.acx-site .ct-header .menu-item-has-children > a [class*='indicator']::before,
body.acx-site .ct-header .menu-item-has-children > a [class*='indicator']::after,
body.acx-site .ct-header .menu-item-has-children > a [class*='icon']::before,
body.acx-site .ct-header .menu-item-has-children > a [class*='icon']::after {
	display: none !important;
	content: none !important;
}

/* Remove the custom caret from v1.0.3 too. Clean text is safer here. */
body.acx-site .ct-header .menu-item-has-children > a::before {
	display: none !important;
	content: none !important;
}

/*
 * Add a tiny caret only as a background-free text glyph after the actual menu
 * text. If the theme/browser still shows a conflict, this can be disabled by
 * changing content to none.
 */
body.acx-site .ct-header .menu-item-has-children > a {
	gap: 0 !important;
	padding-right: 0 !important;
}

body.acx-site .ct-header .menu-item-has-children > a::after {
	/* Keep previous underline behaviour from older versions disabled for parent menu,
	   because underline + caret conflicts with some Blocksy structures. */
	content: '' !important;
}

/* More direct fix for the square seen after PRODUCTS: collapse any empty element after a parent menu link. */
body.acx-site .ct-header .menu-item-has-children > a + span,
body.acx-site .ct-header .menu-item-has-children > a + button,
body.acx-site .ct-header .menu-item-has-children > a + div {
	display: none !important;
	width: 0 !important;
	height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	opacity: 0 !important;
	visibility: hidden !important;
	pointer-events: none !important;
}

/* Menu hover still gets a signal underline via a separate safe rule. */
body.acx-site .ct-header .menu-item-has-children > a {
	position: relative;
}

body.acx-site .ct-header .menu-item-has-children > a:hover {
	color: var(--acx-green-bright) !important;
}

/* Mobile/offcanvas should keep Blocksy behaviour. */
@media (max-width: 999px) {
	body.acx-site #offcanvas .menu-item-has-children > a + span,
	body.acx-site #offcanvas .menu-item-has-children > a + button,
	body.acx-site #offcanvas .menu-item-has-children > a + div,
	body.acx-site .ct-panel .menu-item-has-children > a + span,
	body.acx-site .ct-panel .menu-item-has-children > a + button,
	body.acx-site .ct-panel .menu-item-has-children > a + div {
		display: initial !important;
		width: auto !important;
		height: auto !important;
		opacity: 1 !important;
		visibility: visible !important;
		pointer-events: auto !important;
	}
}
