@keyframes fade-out {
	from { opacity: 1; }
	to { opacity: 0; }
}

.wp-block-ncst-professional-group .rb-content-footer.fade-out {
	opacity: 0;
	animation: fade-out 0.3s;
}
@keyframes fade-in {
	from { opacity: 0; }
	to { opacity: 1; }
}

.wp-block-ncst-professional-group .rb-content-footer {
	opacity: 0;
	transition: opacity 0.4s ease;
}

.wp-block-ncst-professional-group .rb-content-footer.fade-in {
	opacity: 1;
	animation: fade-in 0.4s;
}
/**
 * Professional Group Block Styles
 * WCAG 2.1 Level AA Compliant
 * 
 * Color Contrast Ratios:
 * - Body text (#1a1a1a on #ffffff): 17.33:1 (AAA)
 * - Secondary text (#424242 on #ffffff): 8.59:1 (AAA)
 * - Subtle text (#555555 on #ffffff): 6.29:1 (AAA)
 * - Button text (#ffffff on #cc0000): 6.18:1 (AAA)
 * - Secondary button (#333333 on #f0f0f0): 8.28:1 (AAA)
 *
 * Typography Hierarchy:
 * - H1 (Course Title): 1.1rem / 600 weight (18px)
 * - H2 (List Headers): 1.1rem / 600 weight (18px)
 * - Body Text: 1rem / 400 weight (16px)
 * - Small Text: 0.875rem / 400 weight (14px)
 * - Tiny Text: 0.75rem / 400 weight (12px)
 *
 * @package NC_State_REPORTER
 */

/* Block Container */
.wp-block-ncst-professional-group {
	position: relative;
	margin-bottom: 0.5rem !important;
	margin-top: 0.5rem !important;
	--ncsu-pg-title-color: #ffffff;
	--ncsu-pg-title-background: #cc0000;
	--ncsu-pg-space-xs: 0.5rem;
	--ncsu-pg-space-sm: 0.75rem;
	--ncsu-pg-space-md: 1rem;
	--ncsu-pg-space-lg: 1.25rem;
	--ncsu-pg-space-xl: 1.5rem;
	--ncsu-pg-radius: 4px;
	--ncsu-pg-summary-padding: var(--ncsu-pg-space-lg);
	--ncsu-pg-card-padding-block: var(--ncsu-pg-space-md);
	--ncsu-pg-card-padding-inline: var(--ncsu-pg-space-lg);
	--ncsu-pg-date-width: 5rem;
	--ncsu-pg-badge-size: 5rem;
}

.wp-block-ncst-professional-group.course-accordion-group,
.wp-block-ncst-professional-group .course-accordion-group {
	margin-bottom: 0.5rem !important;
	margin-top: 0.5rem !important;
}

/* Loading Spinner */
.wp-block-ncst-professional-group .pg-loading-spinner {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	display: flex;
	justify-content: center;
	align-items: center;
	background-color: rgba(255, 255, 255, 0.7);
	backdrop-filter: blur(2px);
	z-index: 10;
	opacity: 1;
	transition: opacity 0.5s ease-out;
}

.wp-block-ncst-professional-group .pg-loading-spinner.fade-out {
	opacity: 0;
	pointer-events: none;
}

.wp-block-ncst-professional-group .pg-loading-spinner .spinner-overlay {
	position: relative;
	width: 40px;
	height: 40px;
}

.wp-block-ncst-professional-group .pg-loading-spinner .spinner-inner {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 30px;
	height: 30px;
	margin-top: -15px;
	margin-left: -15px;
	border: 3px solid rgba(204, 0, 0, 0.1);
	border-radius: 50%;
	border-top-color: #cc0000;
	animation: spinner-rotate 0.8s linear infinite;
}

@keyframes spinner-rotate {
	to {
		transform: rotate(360deg);
	}
}

@keyframes accordion-expand {
	from {
		opacity: 0;
		transform: scaleY(0.95);
	}
	to {
		opacity: 1;
		transform: scaleY(1);
	}
}

/* Course Accordion */
.wp-block-ncst-professional-group.course-accordion-group details,
.wp-block-ncst-professional-group .course-accordion-group details {
	cursor: pointer;
	list-style: none !important;
	margin-bottom: var(--ncsu-pg-space-sm);
	transition: margin-bottom 0.3s ease;
}

.wp-block-ncst-professional-group.course-accordion-group details summary,
.wp-block-ncst-professional-group .course-accordion-group details summary {
	padding: var(--ncsu-pg-summary-padding);
	background-color: var(--ncsu-pg-title-background);
	color: var(--ncsu-pg-title-color);
	border: 1px solid #e0e0e0;
	border-radius: var(--ncsu-pg-radius);
	user-select: none;
	display: flex !important;
	justify-content: space-between;
	align-items: center;
	list-style: none !important;
	list-style-type: none !important;
	list-style-position: outside !important;
	gap: var(--ncsu-pg-space-lg);
	transition: background-color 0.2s ease, border-radius 0.3s ease;
}

/* Hide default details marker */
.wp-block-ncst-professional-group.course-accordion-group details summary::-webkit-details-marker,
.wp-block-ncst-professional-group .course-accordion-group details summary::-webkit-details-marker {
	display: none !important;
	visibility: hidden !important;
}

.wp-block-ncst-professional-group.course-accordion-group details summary::marker,
.wp-block-ncst-professional-group .course-accordion-group details summary::marker {
	display: none !important;
	visibility: hidden !important;
	content: "" !important;
	text-align: right;
}

.wp-block-ncst-professional-group .accordion-trigger {
	position: relative;
	padding: 0;
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--ncsu-pg-space-lg);
	
}

.wp-block-ncst-professional-group .accordion-title {
	flex: 1 1 auto;
	min-width: 0;
}

.wp-block-ncst-professional-group h2 {
	display: block;
	margin: 0 0 var(--ncsu-pg-space-xs) 0;
	color: var(--ncsu-pg-title-color);
	font-size: clamp(1.5rem, 2vw, 2rem);
	line-height: 1.15;
}

.wp-block-ncst-professional-group .accordion-description {
	display: block;
	line-height: 1.45;
	max-width: 42rem;
}

.wp-block-ncst-professional-group .count-badge {
	display: flex;
	padding: var(--ncsu-pg-space-sm);
	background-color: rgba(0, 0, 0, 0.1);
	font-size: 1.125rem;
	font-weight: 600;
	text-align: center;
	align-items: center;
	justify-content: center;
	width: var(--ncsu-pg-badge-size);
	height: var(--ncsu-pg-badge-size);
	line-height: 1.2;
	flex: 0 0 var(--ncsu-pg-badge-size);
}

.wp-block-ncst-professional-group.course-accordion-group details summary:hover,
.wp-block-ncst-professional-group .course-accordion-group details summary:hover {
	background-color: var(--ncsu-pg-title-background);
}

/* Course List */
.wp-block-ncst-professional-group .course-id-text {
	margin-left: var(--ncsu-pg-space-xs);
	font-size: 1rem;
	font-weight: 400;
    line-height: 1.4;
}

.wp-block-ncst-professional-group .course-list {
	padding: var(--ncsu-pg-space-xl);
	margin-bottom: var(--ncsu-pg-space-lg);
}

.wp-block-ncst-professional-group .course-list-header {
	margin-top: 0;
	margin-bottom: 0.5rem;
	margin-block-start: 0;
	margin-block-end: 0.5rem;
	font-size: 1.1rem;
	font-weight: 600;
	color: var(--color-text-primary);
}

.wp-block-ncst-professional-group .course-list-subtitle {
	font-weight: normal;
	font-size: 0.875rem;
	color: var(--color-text-secondary);
}

.wp-block-ncst-professional-group .course-list-available-header {
	margin-top: 1rem;
	margin-bottom: 0.5rem;
	margin-block-start: 1rem;
	margin-block-end: 0.5rem;
	font-size: 1rem;
	font-weight: 600;
}

.wp-block-ncst-professional-group .professional-group-block-list-course {
	list-style: disc;
	margin-left: 1.5rem;
	margin-top: var(--ncsu-pg-space-sm);
	margin-bottom: 0;
}

.wp-block-ncst-professional-group .professional-group-block-list-course li {
	margin-bottom: 0.25rem;
	color: var(--color-text-primary);
	line-height: 1.5;
	font-size: 1rem; /* WCAG: 16px minimum for body text */
}

/* Course Item List - Force row-based layout */

.wp-block-ncst-professional-group .course-item-list,
.wp-block-ncst-professional-group .professional-group-block-list {
	list-style: none;
	margin: var(--ncsu-pg-space-lg) 0 0;
	padding: 0;
}

.wp-block-ncst-professional-group .course-item-list li,
.wp-block-ncst-professional-group .professional-group-block-list li {
	margin-bottom: var(--ncsu-pg-space-lg);
	display: block;
	width: 100%;
}


/* Ensure .course-listing and .rb-content are flex column with wrap */
.wp-block-ncst-professional-group .course-listing,
.wp-block-ncst-professional-group .rb-content {
	display: flex;
	flex-wrap: wrap;
	flex-direction: column;
}

/* Course Listing */
.wp-block-ncst-professional-group .course-listing {
	display: flex;
	flex-direction: row;
	align-items: flex-start;
	padding: var(--ncsu-pg-card-padding-block) var(--ncsu-pg-card-padding-inline);
	background-color: var(--color-bg-light);
	border: 1px solid var(--color-border);
	border-radius: var(--ncsu-pg-radius);
	text-decoration: none;
	color: var(--color-text-primary);
	transition: all 0.2s ease-in-out;
	cursor: pointer;
	user-select: none;
	flex-wrap: nowrap;
	align-items: center;
	gap: var(--ncsu-pg-space-lg);
}

.wp-block-ncst-professional-group .course-listing:hover,
.wp-block-ncst-professional-group .course-listing:focus {
	background-color: var(--color-bg-lighter);
	border-color: var(--color-primary);
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
	outline: none;
}

.wp-block-ncst-professional-group .course-listing:focus-visible {
	outline: 3px solid var(--color-focus);
	outline-offset: 2px;
	box-shadow: 0 0 0 4px rgba(204, 0, 0, 0.1);
}

/* Course Date Section */
.wp-block-ncst-professional-group .entryDate {
	display: flex;
	justify-content: center;
}

.wp-block-ncst-professional-group .keyword-list-hero-date {
	text-align: center;
	padding: var(--ncsu-pg-space-xs) var(--ncsu-pg-space-sm);
	min-width: 100%;
}

.wp-block-ncst-professional-group .heroMonth,
.wp-block-ncst-professional-group .heroDay,
.wp-block-ncst-professional-group .heroYear {
	display: block;
	line-height: 1;
	font-weight: 600;
}

.wp-block-ncst-professional-group .heroMonth {
	font-size: 0.75rem;
	color: #ffffff;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	font-weight: 700;
}

.wp-block-ncst-professional-group .heroDay {
	font-size: 1.75rem;
	color: #ffffff;
	margin: 0.25rem 0;
	font-weight: 700;
}

.wp-block-ncst-professional-group .heroYear {
	font-size: 0.75rem;
	color: #ffffff;
	font-weight: 600;
}

/* Course Detail */
.wp-block-ncst-professional-group .course-detail {
	flex-grow: 1;
	min-width: 0;
	margin-left: 0;
}

.wp-block-ncst-professional-group .course-id {
	display: flex;
	align-items: center;
	gap: var(--ncsu-pg-space-sm);
	margin-bottom: var(--ncsu-pg-space-xs);
	flex-wrap: wrap;
}

.wp-block-ncst-professional-group .indicator-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.4rem;
	height: 1.4rem;
	border-radius: 999px;
	flex: 0 0 1.4rem;
	color: #ffffff;
	background: #6f7d1c;
	box-shadow: 0 0 0 4px rgba(111, 125, 28, 0.16);
}

.wp-block-ncst-professional-group .indicator-badge--waitlist {
	background: #5b6770;
	box-shadow: 0 0 0 4px rgba(91, 103, 112, 0.18);
}

.wp-block-ncst-professional-group .indicator-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1rem;
	height: 1rem;
}

.wp-block-ncst-professional-group .indicator-icon svg {
	display: block;
	width: 100%;
	height: 100%;
	fill: currentColor;
}

.wp-block-ncst-professional-group .course-title {
	margin: 0;
	font-size: 1.0625rem;
	line-height: 1.5;
}

/* Content Sections */
.wp-block-ncst-professional-group .rb-content {
	background-color: var(--color-bg-light);
	border: 1px solid var(--color-border);
	border-top: none;
	border-radius: 0 0 var(--ncsu-pg-radius) var(--ncsu-pg-radius);
	padding: var(--ncsu-pg-space-xl);
	color: var(--color-text-primary);
	animation: accordion-expand 0.3s ease-out;
	transform-origin: top;
}


.wp-block-ncst-professional-group .rb-content-header {
	margin-bottom: var(--ncsu-pg-space-lg);
	font-size: 1rem;
}

.wp-block-ncst-professional-group .rb-content-footer {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	justify-content: space-between;
	align-items: center;
	gap: var(--ncsu-pg-space-md);
}

.wp-block-ncst-professional-group .rb-content-description {
	margin: 0;
	line-height: 1.6;
	color: var(--color-text-primary);
	font-size: 1rem;
}

/* Button Styles */
.wp-block-ncst-professional-group .btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0.75rem 1.5rem;
	background-color: var(--color-primary);
	color: var(--color-bg-light);
	text-decoration: none;
	border: 2px solid var(--color-primary);
	border-radius: 4px;
	cursor: pointer;
	font-weight: 600;
	transition: all 0.2s ease-in-out;
	font-size: 1rem;
	white-space: nowrap;
	min-height: 44px;
	min-width: 44px;
}

.wp-block-ncst-professional-group .btn:hover {
	background-color: var(--color-primary-dark);
	border-color: var(--color-primary-dark);
}

.wp-block-ncst-professional-group .btn:focus {
	outline: none;
}

.wp-block-ncst-professional-group .btn:focus-visible {
	outline: 3px solid var(--color-focus);
	outline-offset: 2px;
	box-shadow: 0 0 0 4px rgba(204, 0, 0, 0.15);
}

.wp-block-ncst-professional-group .is-style-secondary {
	background-color: var(--color-bg-form);
	color: var(--color-text-primary);
	border-color: var(--color-border-dark);
}

.wp-block-ncst-professional-group .is-style-secondary:hover {
	background-color: var(--color-border);
	border-color: var(--color-text-tertiary);
}

.wp-block-ncst-professional-group .is-style-secondary:focus-visible {
	outline: 3px solid var(--color-focus);
	outline-offset: 2px;
	box-shadow: 0 0 0 4px rgba(204, 0, 0, 0.1);
}

/* Close Button */
.wp-block-ncst-professional-group .js-accordion-close {
	min-width: 48px;
	min-height: 48px;
	padding: 0.5rem 0.75rem;
	font-size: 1.5rem;
	line-height: 1;
	display: flex;
	align-items: center;
	justify-content: center;
}

/* Responsive Adjustments */
@media (max-width: 768px) {
	.wp-block-ncst-professional-group .course-listing {
		align-items: flex-start;
		text-align: left;
		gap: var(--ncsu-pg-space-md);
	}

	.wp-block-ncst-professional-group .course-date {
		width: 4.5rem;
		min-width: 4.5rem;
	}

	.wp-block-ncst-professional-group .rb-content-header,
	.wp-block-ncst-professional-group .rb-content-footer {
		flex-direction: column;
		align-items: stretch;
	}

	.wp-block-ncst-professional-group .btn {
		width: 100%;
	}

	.wp-block-ncst-professional-group .course-listing:hover,
	.wp-block-ncst-professional-group .course-listing:focus {
		background-color: #fff;
		border-color: #e0e0e0;
	}

	.wp-block-ncst-professional-group .count-badge {
		display: none !important;
	}

	.wp-block-ncst-professional-group .course-listing .js-course-toggle {
		justify-content: center;
		text-align: center;
	}

	.wp-block-ncst-professional-group .accordion-description {
		max-width: none;
	}
}

/* Accessibility - Focus Visible */
*:focus-visible {
	outline: 3px solid var(--color-focus);
	outline-offset: 2px;
}

/* Reduced Motion Support */
@media (prefers-reduced-motion: reduce) {
	* {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
	}

	.pg-loading-spinner .spinner-inner {
		animation: none;
		border-top-color: transparent;
		border-right-color: #cc0000;
	}

	.wp-block-ncst-professional-group .rb-content {
		animation: none;
	}
}