/**
 * IES Program List Block Styles
 * 
 * @package ncsu-reporter
 * @since 1.8.0
 */

/* Block wrapper */
.wp-block-acf-ies-program-list {
	margin: 2rem 0;
	position: relative;
}

/* Editor placeholder */
.wp-block-acf-ies-program-list__placeholder {
	background: #f8f9fa;
	border: 2px dashed #cbd5e0;
	border-radius: 4px;
	padding: 3rem 2rem;
	text-align: center;
	color: #4a5568;
}

.wp-block-acf-ies-program-list__placeholder-icon {
	margin-bottom: 1rem;
	color: #a0aec0;
}

.wp-block-acf-ies-program-list__placeholder h3 {
	margin: 0 0 0.5rem;
	font-size: 1.5rem;
	color: #2d3748;
}

.wp-block-acf-ies-program-list__placeholder p {
	margin: 0.5rem 0;
	font-size: 1rem;
}

.wp-block-acf-ies-program-list__placeholder em {
	color: #718096;
}

/* Loading spinner */
.wp-block-acf-ies-program-list__spinner {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 3rem 2rem;
	color: #666;
}

.wp-block-acf-ies-program-list__spinner-icon {
	color: #cc0000;
	margin-bottom: 1rem;
}

.wp-block-acf-ies-program-list__spinner p {
	margin: 0;
	font-size: 1rem;
}

/* Hide spinner when content is loaded */
.wp-block-acf-ies-program-list--loaded .wp-block-acf-ies-program-list__spinner {
	display: none;
}

/* Programs grid */
.ies-programs-grid {
	display: flex;
	flex-wrap: wrap;
	gap: 2rem;
	margin-top: 2rem;
}


.ies-programs-grid .ies-program-card {
	flex: 1 1 100%;
	max-width: 100%;
}

@media (min-width: 768px) {
	.ies-programs-grid {
		gap: 1.5rem;
	}

	.ies-programs-grid .ies-program-card {
		/* Two cards per row on tablet/desktop. */
		flex: 1 1 calc((100% - 1.5rem) / 2);
		max-width: calc((100% - 1.5rem) / 2);
	}

	.ies-programs-grid .ies-program-card:only-child {
		flex-basis: 100%;
		max-width: 100%;
	}
}

/* Horizontal layout option */
.ies-programs-grid.ies-programs-grid--horizontal {
	gap: 0.75rem;
}

.ies-programs-grid.ies-programs-grid--horizontal .ies-program-card {
	flex-basis: 100%;
	max-width: 100%;
}

.ies-programs-grid.ies-programs-grid--horizontal .ies-program-card__meta,
.ies-programs-grid.ies-programs-grid--horizontal .ies-program-card__footer {
	padding: 0.95rem 1.1rem;
	border-top: 1px solid #e2e8f0;
}

@media (min-width: 1024px) {
	.ies-programs-grid.ies-programs-grid--horizontal .ies-program-card {
		display: grid;
		grid-template-columns: 1fr;
		grid-template-areas:
			"header"
			"details"
			"people"
			"location"
			"actions";
		align-items: stretch;
	}

	.ies-programs-grid.ies-programs-grid--horizontal .ies-program-card.ies-program-card--no-location {
		grid-template-columns: 1fr;
	}

	.ies-programs-grid.ies-programs-grid--horizontal .ies-program-card__header {
		grid-area: header;
		border-bottom: 1px solid #e2e8f0;
		border-right: none;
		border-radius: 4px 4px 0 0;
		padding: 0.85rem 1.1rem;
	}

	.ies-programs-grid.ies-programs-grid--horizontal .ies-program-card__title {
		font-size: 1.05rem;
		line-height: 1.28;
		margin-bottom: 0.25rem;
	}

	.ies-programs-grid.ies-programs-grid--horizontal .ies-program-card__details-row {
		grid-area: details;
		padding: 0.7rem 1rem;
		border-bottom: 1px solid #e2e8f0;
	}

	.ies-programs-grid.ies-programs-grid--horizontal .ies-program-card__people-row {
		grid-area: people;
		display: grid;
		grid-template-columns: 30% 70%;
		align-items: stretch;
		border-bottom: 1px solid #e2e8f0;
	}

	.ies-programs-grid.ies-programs-grid--horizontal .ies-program-card__people-row--single {
		grid-template-columns: 1fr;
	}

	.ies-programs-grid.ies-programs-grid--horizontal .ies-program-card__people-col {
		padding: 0.7rem 1rem;
	}

	.ies-programs-grid.ies-programs-grid--horizontal .ies-program-card__people-col + .ies-program-card__people-col {
		border-left: 1px solid #e2e8f0;
	}

	.ies-programs-grid.ies-programs-grid--horizontal .ies-program-card__location-row {
		grid-area: location;
		padding: 0.7rem 1rem;
		border-bottom: 1px solid #e2e8f0;
	}

	.ies-programs-grid.ies-programs-grid--horizontal .ies-program-card__location-row .ies-program-card__section {
		margin-bottom: 0;
	}

	.ies-programs-grid.ies-programs-grid--horizontal .ies-program-card__actions-row {
		grid-area: actions;
		padding: 0.6rem 1rem;
		display: flex;
		align-items: flex-end;
		justify-content: flex-end;
	}

	.ies-programs-grid.ies-programs-grid--horizontal .ies-program-card.ies-program-card--no-location .ies-program-card__location-row {
		display: none;
	}

	.ies-programs-grid.ies-programs-grid--horizontal .ies-program-card__details-row .ies-program-card__section {
		margin-bottom: 0;
	}

	.ies-programs-grid.ies-programs-grid--horizontal .ies-program-card__details-row .ies-program-card__section-title {
		margin-top: 0;
		margin-bottom: 0.35rem;
	}

	.ies-programs-grid.ies-programs-grid--horizontal .ies-program-card__format {
		font-size: 0.9rem;
		padding: 0.2rem 0.6rem;
	}

	.ies-programs-grid.ies-programs-grid--horizontal .ies-program-card__body {
		display: none;
	}

	.ies-programs-grid.ies-programs-grid--horizontal .ies-program-card__section {
		margin-bottom: 0.55rem;
	}

	.ies-programs-grid.ies-programs-grid--horizontal .ies-program-card__section-title {
		font-size: 0.88rem;
		margin-bottom: 0.35rem;
		margin-top: 0.55rem;
		padding-bottom: 0.14rem;
	}

	.ies-programs-grid.ies-programs-grid--horizontal .ies-program-card__details {
		gap: 0.15rem;
	}

	.ies-programs-grid.ies-programs-grid--horizontal .ies-program-card__details--horizontal-grid {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		column-gap: 1rem;
		row-gap: 0.1rem;
	}

	.ies-programs-grid.ies-programs-grid--horizontal .ies-program-detail {
		padding: 0.2rem 0;
	}

	.ies-programs-grid.ies-programs-grid--horizontal .ies-program-detail__label,
	.ies-programs-grid.ies-programs-grid--horizontal .ies-program-detail__value,
	.ies-programs-grid.ies-programs-grid--horizontal .ies-program-card__instructors,
	.ies-programs-grid.ies-programs-grid--horizontal .ies-program-card__location,
	.ies-programs-grid.ies-programs-grid--horizontal .ies-program-card__contact {
		font-size: 0.85rem;
		line-height: 1.3;
	}

	.ies-programs-grid.ies-programs-grid--horizontal .ies-program-card__details-row .ies-program-detail__value {
		text-align: left;
	}

	.ies-programs-grid.ies-programs-grid--horizontal .ies-program-detail__value--registration-deadline {
		font-weight: 700;
	}

	.ies-programs-grid.ies-programs-grid--horizontal .ies-program-card__people-col--contact .ies-program-contact__name {
		font-weight: 400;
	}

	.ies-programs-grid.ies-programs-grid--horizontal .ies-program-card__contact--inline {
		display: flex;
		align-items: center;
		flex-wrap: wrap;
		column-gap: 0.35rem;
		row-gap: 0.1rem;
	}

	.ies-programs-grid.ies-programs-grid--horizontal .ies-program-card__contact--inline .ies-program-contact__name {
		font-weight: 400;
		margin-bottom: 0;
	}

	.ies-programs-grid.ies-programs-grid--horizontal .ies-program-card__contact--inline .ies-program-contact__email,
	.ies-programs-grid.ies-programs-grid--horizontal .ies-program-card__contact--inline .ies-program-contact__phone {
		display: inline;
		margin-bottom: 0;
		text-decoration: none;
	}

	.ies-programs-grid.ies-programs-grid--horizontal .ies-program-card__contact-separator {
		display: inline;
		font-size: 0.85rem;
		line-height: 1;
	}

	.ies-programs-grid.ies-programs-grid--horizontal .ies-program-card__location-row .ies-program-card__section-title--location {
		font-weight: 700;
	}

	.ies-programs-grid.ies-programs-grid--horizontal .ies-program-card__location--inline {
		font-weight: 400;
		line-height: 1.3;
	}

	.ies-programs-grid.ies-programs-grid--horizontal .ies-program-card__location--inline .ies-location__address-link--inline,
	.ies-programs-grid.ies-programs-grid--horizontal .ies-program-card__location--inline .ies-location__inline-text {
		font-weight: 400;
	}

	.ies-programs-grid.ies-programs-grid--horizontal .ies-location__address-link--inline {
		display: inline;
	}

	.ies-programs-grid.ies-programs-grid--horizontal .ies-location__address-title {
		font-size: 0.88rem;
		margin-bottom: 0.45rem;
		padding-bottom: 0.18rem;
	}

	.ies-programs-grid.ies-programs-grid--horizontal .ies-location__address-section {
		margin-top: 0.35rem;
	}

	.ies-programs-grid.ies-programs-grid--horizontal .ies-program-card__footer,
	.ies-programs-grid.ies-programs-grid--horizontal .ies-program-card__meta {
		display: none;
	}

	.ies-programs-grid.ies-programs-grid--horizontal .ies-program-contact__name {
		margin-bottom: 0.05rem;
	}

	.ies-programs-grid.ies-programs-grid--horizontal .ies-program-contact__email,
	.ies-programs-grid.ies-programs-grid--horizontal .ies-program-contact__phone {
		margin-bottom: 0.05rem;
	}

	.ies-programs-grid.ies-programs-grid--horizontal .ies-program-card__link {
		margin-top: auto;
		text-align: center;
		justify-content: center;
		font-size: 0.88rem;
	}
}

/* Program card */
.ies-program-card {
	background: #fff;
	border: 1px solid #e2e8f0;
	border-radius: 4px;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
	display: flex;
	flex-direction: column;
	transition: box-shadow 0.3s ease, transform 0.3s ease;
}

.ies-program-card:hover {
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
	transform: translateY(-2px);
}

/* Card header */
.ies-program-card__header {
	padding: 1.5rem;
	border-bottom: 1px solid #e2e8f0;
	background: linear-gradient(135deg, #cc0000 0%, #990000 100%);
	color: #fff;
	border-radius: 4px 4px 0 0;
}

.ies-program-card__title {
	margin: 0 0 0.5rem;
	font-size: 1.25rem;
	font-weight: 600;
	line-height: 1.4;
}

.ies-program-card__title a {
	color: #fff;
	text-decoration: none;
	transition: opacity 0.2s ease;
}

.ies-program-card__title a:hover,
.ies-program-card__title a:focus {
	opacity: 0.9;
	text-decoration: underline;
}

.ies-program-card__format {
	display: inline-block;
	background-color: rgba(255, 255, 255, 0.9);
	color: #cc0000;
	padding: 0.25rem 0.75rem;
	border-radius: 4px;
	font-size: 0.975rem;
	font-weight: 500;
}

/* Card body */
.ies-program-card__body {
	padding: 1.5rem;
	flex: 1;
}

.ies-program-card__section {
	margin-bottom: 1.5rem;
}

.ies-program-card__section:last-child {
	margin-bottom: 0;
}

.ies-program-card__section-title {
	margin: 0 0 0.75rem;
	font-size: 1rem;
	font-weight: 600;
	color: #2d3748;
	border-bottom: 2px solid #cc0000;
	padding-bottom: 0.25rem;
}

/* Program details */
.ies-program-card__details {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.ies-program-detail {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	padding: 0.5rem 0;
	border-bottom: 1px solid #f7fafc;
}

.ies-program-detail:last-child {
	border-bottom: none;
}

.ies-program-detail__label {
	font-weight: 500;
	color: #4a5568;
	flex-shrink: 0;
	margin-right: 1rem;
}

.ies-program-detail__value {
	color: #2d3748;
	text-align: right;
}

.ies-program-detail__value--price {
	font-weight: 600;
	color: #cc0000;
	font-size: 1.125rem;
}

/* Instructors */
.ies-program-card__instructors {
	color: #2d3748;
	line-height: 1.6;
}

/* Location */
.ies-program-card__location {
	color: #2d3748;
	line-height: 1.6;
}

.ies-location__name {
	font-weight: 600;
	margin-bottom: 0.25rem;
}

.ies-location__address-section {
	margin-top: 0.5rem;
}

.ies-location__address-link {
	display: inline-block;
	color: #cc0000;
	text-decoration: none;
	transition: color 0.2s ease;
	line-height: 1.5;
}

.ies-location__address-link:hover,
.ies-location__address-link:focus {
	color: #990000;
	text-decoration: underline;
}

/* Contact */
.ies-program-card__contact {
	color: #2d3748;
	line-height: 1.6;
}

.ies-program-contact__name {
	font-weight: 600;
	margin-bottom: 0.25rem;
}

.ies-program-contact__email,
.ies-program-contact__phone {
	margin-bottom: 0.25rem;
}

.ies-program-contact__email a,
.ies-program-contact__phone a {
	color: #cc0000;
	text-decoration: none;
	transition: color 0.2s ease;
}

.ies-program-contact__email a:hover,
.ies-program-contact__email a:focus,
.ies-program-contact__phone a:hover,
.ies-program-contact__phone a:focus {
	color: #990000;
	text-decoration: underline;
}

/* Card footer */
.ies-program-card__footer {
	padding: 1rem 1.5rem;
	border-top: 1px solid #e2e8f0;
	background: #f7fafc;
	border-radius: 0 0 4px 4px;
}

.ies-program-card__link {
	display: inline-flex;
	align-items: center;
	color: #cc0000;
	text-decoration: none;
	font-weight: 600;
	transition: color 0.2s ease;
}

.ies-program-card__link:hover,
.ies-program-card__link:focus {
	color: #990000;
	text-decoration: underline;
}

.ies-program-card__arrow {
	margin-left: 0.5rem;
	transition: transform 0.2s ease;
}

.ies-program-card__link:hover .ies-program-card__arrow,
.ies-program-card__link:focus .ies-program-card__arrow {
	transform: translateX(4px);
}

/* Tile layout compact spacing to align with horizontal rhythm */
.ies-programs-grid:not(.ies-programs-grid--horizontal) {
	gap: 0.75rem;
}

.ies-programs-grid:not(.ies-programs-grid--horizontal) .ies-program-card__header {
	padding: 0.85rem 1.1rem;
}

.ies-programs-grid:not(.ies-programs-grid--horizontal) .ies-program-card__title {
	font-size: 1.05rem;
	line-height: 1.28;
	margin-bottom: 0.25rem;
}

.ies-programs-grid:not(.ies-programs-grid--horizontal) .ies-program-card__format {
	font-size: 0.9rem;
	padding: 0.2rem 0.6rem;
}

.ies-programs-grid:not(.ies-programs-grid--horizontal) .ies-program-card__body {
	padding: 0.7rem 1rem;
}

.ies-programs-grid:not(.ies-programs-grid--horizontal) .ies-program-card__section {
	margin-bottom: 0.55rem;
}

.ies-programs-grid:not(.ies-programs-grid--horizontal) .ies-program-card__section-title {
	font-size: 0.88rem;
	margin-bottom: 0.35rem;
	margin-top: 0.55rem;
	padding-bottom: 0.14rem;
}

.ies-programs-grid:not(.ies-programs-grid--horizontal) .ies-program-card__details {
	gap: 0.15rem;
}

.ies-programs-grid:not(.ies-programs-grid--horizontal) .ies-program-detail {
	padding: 0.2rem 0;
}

.ies-programs-grid:not(.ies-programs-grid--horizontal) .ies-program-detail__label,
.ies-programs-grid:not(.ies-programs-grid--horizontal) .ies-program-detail__value,
.ies-programs-grid:not(.ies-programs-grid--horizontal) .ies-program-card__instructors,
.ies-programs-grid:not(.ies-programs-grid--horizontal) .ies-program-card__location,
.ies-programs-grid:not(.ies-programs-grid--horizontal) .ies-program-card__contact {
	font-size: 0.85rem;
	line-height: 1.3;
}

.ies-programs-grid:not(.ies-programs-grid--horizontal) .ies-program-card__footer {
	padding: 0.6rem 1rem;
}

.ies-programs-grid:not(.ies-programs-grid--horizontal) .ies-program-card__link {
	font-size: 0.88rem;
}

/* Message */
.ies-program-list__message {
	text-align: center;
	padding: 2rem;
	color: #4a5568;
	font-size: 1.125rem;
}

/* Responsive adjustments */
@media (max-width: 480px) {
	.ies-program-card__header {
		padding: 1rem;
	}
	
	.ies-program-card__body {
		padding: 1rem;
	}
	
	.ies-program-detail {
		flex-direction: column;
		align-items: flex-start;
		gap: 0.25rem;
	}
	
	.ies-program-detail__value {
		text-align: left;
	}
}
