/**
 * WDM Course Enrollment Customization - Courses Grid Styles
 * 
 * Scope: This CSS is scoped to .wdm-cec-courses-container which is only used
 * on the My Account > Courses page. It only affects LearnDash course list elements
 * within this container and should not impact other pages or nested content.
 * 
 * Enqueued: Only on WooCommerce My Account pages (is_account_page())
 */

.wdm-cec-courses-container {
	width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	display: block !important;
	overflow: visible !important;
}

/* Set box-sizing for course items only (safer than universal selector) */
.wdm-cec-courses-container .ld-course-list-item,
.wdm-cec-courses-container .learndash-course-list-item,
.wdm-cec-courses-container .ld-course-list-item > *,
.wdm-cec-courses-container .learndash-course-list-item > * {
	box-sizing: border-box;
}

/* Remove any spacing before the first card and any wrapper elements */
.wdm-cec-courses-container > *:first-child {
	margin-top: 0 !important;
	padding-top: 0 !important;
	margin-left: 0 !important;
	padding-left: 0 !important;
	margin-right: 0 !important;
	padding-right: 0 !important;
}

/* Remove any ::before pseudo-elements that might create space */
.wdm-cec-courses-container::before,
.wdm-cec-courses-container > *::before,
.wdm-cec-courses-container > * > *::before {
	content: none !important;
	display: none !important;
	width: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
}

/* LearnDash course list grid layout - target various possible structures */
.wdm-cec-courses-container .ld-course-list-items,
.wdm-cec-courses-container .learndash-course-list-items,
.wdm-cec-courses-container ul.ld-course-list-items,
.wdm-cec-courses-container ul.learndash-course-list-items,
.wdm-cec-courses-container .learndash-wrapper .ld-course-list-items,
.wdm-cec-courses-container .learndash-wrapper .learndash-course-list-items {
	display: grid !important;
	grid-template-columns: repeat(3, 1fr) !important;
	gap: 20px !important;
	margin: 0 !important;
	margin-top: 0 !important;
	margin-bottom: 0 !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	padding: 0 !important;
	padding-top: 0 !important;
	padding-bottom: 0 !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
	list-style: none !important;
	grid-column-start: 1 !important;
	width: 100% !important;
	max-width: 100% !important;
	position: relative !important;
	left: 0 !important;
	right: 0 !important;
	transform: translateX(0) !important;
}

/* Target any wrapper divs that LearnDash might create - be very aggressive */
.wdm-cec-courses-container > div,
.wdm-cec-courses-container > section,
.wdm-cec-courses-container > article,
.wdm-cec-courses-container .learndash-wrapper,
.wdm-cec-courses-container .ld-course-list-wrapper,
.wdm-cec-courses-container .learndash-wrapper > *,
.wdm-cec-courses-container .ld-course-list-wrapper > * {
	margin: 0 !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	padding: 0 !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
	width: 100% !important;
	max-width: 100% !important;
}

/* Individual course items - ensure they don't break the grid */
.wdm-cec-courses-container .ld-course-list-item,
.wdm-cec-courses-container .learndash-course-list-item,
.wdm-cec-courses-container li.ld-course-list-item,
.wdm-cec-courses-container li.learndash-course-list-item {
	margin: 0 !important;
	padding: 0 !important;
	width: 100% !important;
	float: none !important;
	display: block !important;
	grid-column-start: auto !important;
}

/* Remove spacing from first course item and ensure it starts at column 1 */
.wdm-cec-courses-container .ld-course-list-item:first-child,
.wdm-cec-courses-container .learndash-course-list-item:first-child,
.wdm-cec-courses-container li.ld-course-list-item:first-child,
.wdm-cec-courses-container li.learndash-course-list-item:first-child {
	margin-top: 0 !important;
	padding-top: 0 !important;
	margin-left: 0 !important;
	padding-left: 0 !important;
	grid-column-start: 1 !important;
}

/* Clear any floats that might interfere */
.wdm-cec-courses-container::after {
	content: "";
	display: table;
	clear: both;
}

/* Hide any empty wrapper elements or spacing elements */
.wdm-cec-courses-container > div:empty,
.wdm-cec-courses-container > span:empty,
.wdm-cec-courses-container .learndash-wrapper:empty {
	display: none !important;
}

/* If LearnDash uses flexbox for course list, convert to grid - be more specific */
.wdm-cec-courses-container .ld-course-list-items[class*="flex"],
.wdm-cec-courses-container .learndash-course-list-items[class*="flex"],
.wdm-cec-courses-container ul.ld-course-list-items[class*="flex"],
.wdm-cec-courses-container ul.learndash-course-list-items[class*="flex"] {
	display: grid !important;
	margin-left: 0 !important;
	padding-left: 0 !important;
}

/* Target any element with a left margin that equals roughly 33% (one column) */
.wdm-cec-courses-container > *[style*="margin-left"],
.wdm-cec-courses-container > *[style*="padding-left"] {
	margin-left: 0 !important;
	padding-left: 0 !important;
}

/* Last resort: if there's still spacing, use negative margin on container to pull content left */
.wdm-cec-courses-container {
	position: relative;
}

/* Ensure the actual grid/list starts at absolute left */
.wdm-cec-courses-container .ld-course-list-items,
.wdm-cec-courses-container .learndash-course-list-items,
.wdm-cec-courses-container ul.ld-course-list-items,
.wdm-cec-courses-container ul.learndash-course-list-items {
	position: relative;
	left: 0 !important;
	margin-left: 0 !important;
	padding-left: 0 !important;
}

/* Ensure direct children that are not the course list don't create spacing */
.wdm-cec-courses-container > *:not(.ld-course-list-items):not(.learndash-course-list-items):not(ul) {
	margin-left: 0 !important;
	padding-left: 0 !important;
	width: 100% !important;
}

/* Force course list items to start from the left edge - be specific to avoid affecting nested lists */
.wdm-cec-courses-container .ld-course-list-items > li:first-child,
.wdm-cec-courses-container .learndash-course-list-items > li:first-child,
.wdm-cec-courses-container ul.ld-course-list-items > li:first-child,
.wdm-cec-courses-container ul.learndash-course-list-items > li:first-child {
	margin-left: 0 !important;
	padding-left: 0 !important;
	grid-column: 1 !important;
}

/* Target specific elements that might have left spacing - be more selective */
.wdm-cec-courses-container > div,
.wdm-cec-courses-container > section,
.wdm-cec-courses-container > article,
.wdm-cec-courses-container > ul,
.wdm-cec-courses-container > ol {
	margin-left: 0 !important;
	padding-left: 0 !important;
}

/* Ensure grid items don't have left margin/padding - target course list items specifically */
.wdm-cec-courses-container .ld-course-list-items > *,
.wdm-cec-courses-container .learndash-course-list-items > *,
.wdm-cec-courses-container ul.ld-course-list-items > *,
.wdm-cec-courses-container ul.learndash-course-list-items > * {
	margin-left: 0 !important;
	padding-left: 0 !important;
}

/* Ensure grid items are placed correctly - force first item to column 1 */
.wdm-cec-courses-container .ld-course-list-item:nth-child(1),
.wdm-cec-courses-container .learndash-course-list-item:nth-child(1),
.wdm-cec-courses-container li.ld-course-list-item:nth-child(1),
.wdm-cec-courses-container li.learndash-course-list-item:nth-child(1) {
	grid-column: 1 / 2 !important;
	margin-left: 0 !important;
	padding-left: 0 !important;
	transform: translateX(0) !important;
}

/* Hide any empty first child that might be creating the space - only in course lists */
.wdm-cec-courses-container .ld-course-list-items > :empty:first-child,
.wdm-cec-courses-container .learndash-course-list-items > :empty:first-child,
.wdm-cec-courses-container ul.ld-course-list-items > :empty:first-child,
.wdm-cec-courses-container ul.learndash-course-list-items > :empty:first-child {
	display: none !important;
	width: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
}

/* Ensure course cards take full width of grid cell */
.wdm-cec-courses-container .ld-course-list-item > *,
.wdm-cec-courses-container .learndash-course-list-item > * {
	width: 100%;
	height: 100%;
	box-sizing: border-box;
}

/* Responsive: 2 columns on tablets */
@media (max-width: 992px) {
	.wdm-cec-courses-container .ld-course-list-items,
	.wdm-cec-courses-container .learndash-course-list-items,
	.wdm-cec-courses-container ul.ld-course-list-items,
	.wdm-cec-courses-container ul.learndash-course-list-items {
		grid-template-columns: repeat(2, 1fr) !important;
		gap: 15px !important;
	}
}

/* Responsive: 1 column on mobile */
@media (max-width: 768px) {
	.wdm-cec-courses-container .ld-course-list-items,
	.wdm-cec-courses-container .learndash-course-list-items,
	.wdm-cec-courses-container ul.ld-course-list-items,
	.wdm-cec-courses-container ul.learndash-course-list-items {
		grid-template-columns: 1fr !important;
		gap: 15px !important;
	}
}

