/* ============================================
   CW Featured Image — alignment fix
   ============================================
   The widget's Alignment control applies text-align to the wrapper, which
   only centers inline/inline-block elements. Elementor's default CSS makes
   <img> display:block, so text-align had no effect inside Grid containers
   (Flex containers were masking the issue via parent alignment).
   This rule restores inline-block on our widget's image so text-align works
   in any container type.
   ============================================ */

.elementor-widget-cw-featured-image img {
	display: inline-block;
	max-width: 100%;
	height: auto;
	vertical-align: top;
}

.elementor-widget-cw-featured-image figure.wp-caption {
	display: inline-block;
	max-width: 100%;
	margin: 0;
}

/* ============================================
   CW Navigation Menu
   ============================================ */

.cw-nav-wrapper {
	position: relative;
}

.cw-nav-menu {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
}

.cw-nav-layout-horizontal .cw-nav-menu {
	flex-direction: row;
	align-items: center;
}

.cw-nav-layout-vertical .cw-nav-menu {
	flex-direction: column;
}

.cw-nav-menu li {
	position: relative;
	margin: 0;
	padding: 0;
	list-style: none;
}

.cw-nav-menu a {
	display: block;
	text-decoration: none;
	color: inherit;
	transition: background-color 0.2s ease, color 0.2s ease;
}

/* Submenu */
.cw-nav-menu .sub-menu {
	list-style: none;
	margin: 0;
	padding: 0;
	display: none;
	background: #fff;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.cw-nav-layout-horizontal .cw-nav-menu .sub-menu {
	position: absolute;
	top: 100%;
	left: 0;
	z-index: 1000;
	min-width: 220px;
}

.cw-nav-layout-horizontal .cw-nav-menu .sub-menu .sub-menu {
	top: 0;
	left: 100%;
}

.cw-nav-layout-vertical .cw-nav-menu .sub-menu {
	position: static;
	box-shadow: none;
	padding-left: 1em;
}

.cw-nav-menu li:hover > .sub-menu,
.cw-nav-menu li:focus-within > .sub-menu,
.cw-nav-menu li.cw-open > .sub-menu {
	display: block;
}

/* Submenu indicator */
.cw-nav-has-indicator .menu-item-has-children > a::after {
	content: "▾";
	display: inline-block;
	margin-left: 6px;
	font-size: 0.75em;
	transform: translateY(-1px);
}

.cw-nav-layout-horizontal.cw-nav-has-indicator .menu-item-has-children .menu-item-has-children > a::after {
	content: "▸";
	float: right;
	margin-left: 10px;
}

/* Hamburger toggle - hidden by default, shown via breakpoint class */
.cw-nav-toggle {
	display: none;
	background: transparent;
	border: 0;
	padding: 8px 12px;
	cursor: pointer;
	font-size: 28px;
	line-height: 1;
	color: inherit;
}

.cw-nav-toggle:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 2px;
}

/* Mobile breakpoints */
@media (max-width: 767px) {
	.cw-nav-mobile-mobile .cw-nav-toggle {
		display: inline-block;
	}
	.cw-nav-mobile-mobile .cw-nav-menu {
		display: none;
		flex-direction: column;
		width: 100%;
	}
	.cw-nav-mobile-mobile.cw-nav-open .cw-nav-menu {
		display: flex;
	}
	.cw-nav-mobile-mobile .cw-nav-menu .sub-menu {
		position: static;
		box-shadow: none;
		padding-left: 1em;
	}
	.cw-nav-mobile-mobile .cw-nav-menu li:hover > .sub-menu,
	.cw-nav-mobile-mobile .cw-nav-menu li:focus-within > .sub-menu {
		display: none;
	}
	.cw-nav-mobile-mobile .cw-nav-menu li.cw-open > .sub-menu {
		display: block;
	}
}

@media (max-width: 1024px) {
	.cw-nav-mobile-tablet .cw-nav-toggle {
		display: inline-block;
	}
	.cw-nav-mobile-tablet .cw-nav-menu {
		display: none;
		flex-direction: column;
		width: 100%;
	}
	.cw-nav-mobile-tablet.cw-nav-open .cw-nav-menu {
		display: flex;
	}
	.cw-nav-mobile-tablet .cw-nav-menu .sub-menu {
		position: static;
		box-shadow: none;
		padding-left: 1em;
	}
	.cw-nav-mobile-tablet .cw-nav-menu li:hover > .sub-menu,
	.cw-nav-mobile-tablet .cw-nav-menu li:focus-within > .sub-menu {
		display: none;
	}
	.cw-nav-mobile-tablet .cw-nav-menu li.cw-open > .sub-menu {
		display: block;
	}
}

