/**
 * Neptune Prime Edition — Core Branding Styles
 *
 * @package Neptune_Prime
 * @since   1.0.0
 */

:root {
	--neptune-primary: #072972;
	--neptune-primary-dark: #051f54;
	--neptune-secondary: #af0e1b;
	--neptune-secondary-dark: #8c0b15;
	--neptune-bg: #F8FAFC;
	--neptune-text: #000000;
	--neptune-text-muted: #333333;
	--neptune-border: #e2e8f0;
	--neptune-radius: 12px;
	--neptune-radius-sm: 8px;
	--neptune-shadow: 0 4px 24px rgba(7, 41, 114, 0.1);
	--neptune-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	--neptune-transition: 0.2s ease;

	/* Align Eduma / Thim kit with Neptune logo colours */
	--thim-body-primary-color: var(--neptune-primary);
	--thim-font-title-color: var(--neptune-text);
	--thim-font-body-color: var(--neptune-text);
}

/* Base */
.neptune-prime-edition {
	font-family: var(--neptune-font);
	color: var(--neptune-text);
}

.neptune-prime-edition .site-content {
	background-color: var(--neptune-bg);
	color: var(--neptune-text);
}

.neptune-prime-edition h1,
.neptune-prime-edition h2,
.neptune-prime-edition h3,
.neptune-prime-edition h4,
.neptune-prime-edition h5,
.neptune-prime-edition h6 {
	color: var(--neptune-text);
}

.neptune-prime-edition a {
	color: var(--neptune-primary);
}

.neptune-prime-edition a:hover,
.neptune-prime-edition a:focus {
	color: var(--neptune-secondary);
}

/* Skip link */
.neptune-skip-link {
	position: absolute;
	left: -9999px;
	top: auto;
	width: 1px;
	height: 1px;
	overflow: hidden;
	z-index: 99999;
}

.neptune-skip-link:focus {
	position: fixed;
	top: 8px;
	left: 8px;
	width: auto;
	height: auto;
	padding: 12px 20px;
	background: var(--neptune-primary);
	color: #fff;
	text-decoration: none;
	border-radius: var(--neptune-radius-sm);
}

/* Buttons */
.neptune-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	padding: 0.75rem 1.5rem;
	font-size: 0.9375rem;
	font-weight: 600;
	line-height: 1.4;
	text-decoration: none;
	border-radius: var(--neptune-radius-sm);
	border: 2px solid transparent;
	cursor: pointer;
	transition: background var(--neptune-transition), color var(--neptune-transition), border-color var(--neptune-transition), transform var(--neptune-transition);
}

.neptune-btn:focus-visible {
	outline: 3px solid var(--neptune-secondary);
	outline-offset: 2px;
}

.neptune-btn--primary {
	background: var(--neptune-primary);
	color: #fff;
	border-color: var(--neptune-primary);
}

.neptune-btn--primary:hover,
.neptune-btn--primary:focus {
	background: #051f54;
	border-color: #051f54;
	color: #fff;
}

.neptune-btn--secondary {
	background: var(--neptune-secondary);
	color: #fff;
	border-color: var(--neptune-secondary);
}

.neptune-btn--secondary:hover,
.neptune-btn--secondary:focus {
	background: var(--neptune-secondary-dark, #8c0b15);
	border-color: var(--neptune-secondary-dark, #8c0b15);
	color: #fff;
}

.neptune-btn--outline {
	background: transparent;
	color: var(--neptune-primary);
	border-color: var(--neptune-primary);
}

.neptune-btn--outline:hover,
.neptune-btn--outline:focus {
	background: var(--neptune-primary);
	color: #fff;
}

.neptune-btn--block {
	display: flex;
	width: 100%;
}

/* Admission status */
.neptune-admission-status {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.5rem 1rem;
	border-radius: 999px;
	font-size: 0.875rem;
	font-weight: 600;
	margin-bottom: 1rem;
}

.neptune-status--open {
	background: rgba(16, 185, 129, 0.12);
	color: #047857;
}

.neptune-status--closed {
	background: rgba(239, 68, 68, 0.12);
	color: #b91c1c;
}

.neptune-status--upcoming {
	background: rgba(175, 14, 27, 0.12);
	color: #af0e1b;
}

.neptune-admission-status__indicator {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: currentColor;
}

/* Admissions details */
.neptune-admissions-details {
	margin: 0 0 1.25rem;
	padding: 0;
}

.neptune-admissions-details__item {
	display: grid;
	grid-template-columns: 1fr 1.2fr;
	gap: 0.5rem;
	padding: 0.625rem 0;
	border-bottom: 1px solid var(--neptune-border);
}

.neptune-admissions-details__item:last-child {
	border-bottom: none;
}

.neptune-admissions-details__label {
	margin: 0;
	font-size: 0.8125rem;
	font-weight: 600;
	color: var(--neptune-text-muted);
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

.neptune-admissions-details__value {
	margin: 0;
	font-size: 0.9375rem;
	color: var(--neptune-text);
	font-weight: 500;
}

/* Admission box (replaces purchase box) */
.neptune-admission-box {
	background: #fff;
	border: 1px solid var(--neptune-border);
	border-radius: var(--neptune-radius);
	padding: 1.5rem;
	box-shadow: var(--neptune-shadow);
	margin-bottom: 1rem;
}

.neptune-admission-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin-top: 1rem;
}

/* Programme cards in loop */
.neptune-loop-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1rem;
	margin-top: 0.5rem;
	font-size: 0.8125rem;
}

.neptune-loop-meta__qualification {
	font-weight: 600;
	color: var(--neptune-primary);
}

.neptune-loop-meta__duration {
	color: var(--neptune-text-muted);
}

.neptune-loop-meta__status {
	font-weight: 600;
}

.neptune-card-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin-top: 1rem;
}

/* Programme card component */
.neptune-programme-card {
	background: #fff;
	border-radius: var(--neptune-radius);
	overflow: hidden;
	box-shadow: var(--neptune-shadow);
	border: 1px solid var(--neptune-border);
	transition: transform var(--neptune-transition), box-shadow var(--neptune-transition);
}

.neptune-programme-card:hover {
	transform: translateY(-2px);
	box-shadow: 0 8px 32px rgba(7, 41, 114, 0.12);
}

.neptune-programme-card__thumb {
	display: block;
	overflow: hidden;
}

.neptune-programme-card__image {
	width: 100%;
	height: auto;
	display: block;
	aspect-ratio: 16 / 10;
	object-fit: cover;
}

.neptune-programme-card__body {
	padding: 1.25rem;
}

.neptune-programme-card__title {
	margin: 0 0 0.5rem;
	font-size: 1.125rem;
	line-height: 1.35;
}

.neptune-programme-card__title a {
	color: var(--neptune-primary);
	text-decoration: none;
}

.neptune-programme-card__title a:hover {
	color: var(--neptune-secondary);
}

/* Sidebar */
.neptune-programme-sidebar__card {
	background: #fff;
	border: 1px solid var(--neptune-border);
	border-radius: var(--neptune-radius);
	padding: 1.5rem;
	box-shadow: var(--neptune-shadow);
}

.neptune-programme-sidebar__actions {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	margin-top: 1.25rem;
}

/* Admissions banner widget */
.neptune-admissions-banner {
	background: linear-gradient(135deg, var(--neptune-primary) 0%, #051f54 100%);
	color: #fff;
	padding: 2rem;
	border-radius: var(--neptune-radius);
	text-align: center;
}

.neptune-admissions-banner__title {
	margin: 0 0 0.75rem;
	font-size: 1.5rem;
	color: #fff;
}

.neptune-admissions-banner__text {
	margin: 0 0 1.25rem;
	opacity: 0.9;
}

.neptune-admissions-banner .neptune-btn--primary {
	background: var(--neptune-secondary);
	border-color: var(--neptune-secondary);
	color: #fff;
}

/* Reviews removed via hooks — no CSS hiding required */

/* Homepage / archive Thim programme cards */
.neptune-prime-edition .elementor-widget-thim-loop-course-rating,
.neptune-prime-edition .thim-ekit-single-course__rating,
.neptune-prime-edition .course-rate__summary {
	display: none !important;
}

.neptune-prime-edition .thim-ekits-course__item {
	background: #fff;
	border: 1px solid var(--neptune-border);
	border-radius: var(--neptune-radius);
	overflow: hidden;
	box-shadow: var(--neptune-shadow);
	transition: transform var(--neptune-transition), box-shadow var(--neptune-transition);
}

.neptune-prime-edition .thim-ekits-course__item:hover {
	transform: translateY(-3px);
	box-shadow: 0 10px 28px rgba(7, 41, 114, 0.12);
}

.neptune-prime-edition .thim-ekits-course__item .course-level {
	display: inline-block;
	padding: 0.25rem 0.65rem;
	background: rgba(7, 41, 114, 0.08);
	color: var(--neptune-primary);
	font-size: 0.75rem;
	font-weight: 600;
	border-radius: 4px;
	text-transform: uppercase;
	letter-spacing: 0.03em;
}

/* --------------------------------------------------------------------------
 * Thim EKits Team (Our Team / Board members)
 * Member name: bold
 * Member position: bold + italic
 * Description length handled in PHP (200 chars + …)
 * -------------------------------------------------------------------------- */
.neptune-prime-edition .elementor-widget-thim-ekits-team .thim-ekit-team__member-name,
.neptune-prime-edition .thim-ekit-team__member-name {
	font-weight: 700 !important;
	font-style: normal;
	color: var(--neptune-primary, #072972);
	line-height: 1.35;
	margin-bottom: 0.35rem;
}

.neptune-prime-edition .elementor-widget-thim-ekits-team .thim-ekit-team__member-position,
.neptune-prime-edition .thim-ekit-team__member-position {
	font-weight: 700 !important;
	font-style: italic !important;
	color: var(--neptune-text-muted, #475569);
	line-height: 1.4;
	margin-bottom: 0.65rem;
}

.neptune-prime-edition .elementor-widget-thim-ekits-team .thim-ekit-team__member-description,
.neptune-prime-edition .thim-ekit-team__member-description {
	font-weight: 400;
	font-style: normal;
	font-size: 0.925rem;
	line-height: 1.55;
	color: var(--neptune-text, #000000);
	max-width: 36ch;
	margin-left: auto;
	margin-right: auto;
}

.neptune-prime-edition .neptune-loop-actions {
	margin-top: 0.75rem;
}

.neptune-prime-edition .neptune-loop-actions .elementor-button,
.neptune-prime-edition .neptune-loop-actions .neptune-btn {
	background: var(--neptune-primary);
	border-color: var(--neptune-primary);
	color: #fff;
	border-radius: var(--neptune-radius-sm);
	font-weight: 600;
}

.neptune-prime-edition .neptune-loop-actions .elementor-button:hover,
.neptune-prime-edition .neptune-loop-actions .neptune-btn:hover {
	background: #051f54;
	color: #fff;
}

/* Elementor admissions replacement */
.neptune-elementor-admissions {
	margin-bottom: 1rem;
}

.neptune-elementor-buttons {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}

.neptune-elementor-buttons .lp-button {
	width: 100%;
	text-align: center;
	border: none;
	cursor: pointer;
}

/* Primary Apply CTA — visible on dark Elementor sidebars */
.neptune-prime-edition .neptune-btn--apply,
.neptune-prime-edition a.neptune-btn--apply,
.neptune-prime-edition .neptune-elementor-buttons .neptune-btn--apply {
	display: inline-flex !important;
	background: var(--neptune-primary) !important;
	color: #fff !important;
	border: 2px solid var(--neptune-primary) !important;
	padding: 0.85rem 1.5rem !important;
	font-weight: 600 !important;
	text-decoration: none !important;
	border-radius: var(--neptune-radius-sm) !important;
}

.neptune-prime-edition .neptune-btn--apply:hover,
.neptune-prime-edition a.neptune-btn--apply:hover {
	background: #051f54 !important;
	border-color: #051f54 !important;
	color: #fff !important;
}

/* Hide duplicate Apply button stacks from Elementor template */
.neptune-prime-edition .neptune-elementor-buttons ~ .neptune-elementor-buttons,
.neptune-prime-edition .thim-ekit-single-course__buttons ~ .thim-ekit-single-course__buttons {
	display: none !important;
}

/* Dark mode */
.neptune-dark-mode {
	--neptune-bg: #0f172a;
	--neptune-text: #f1f5f9;
	--neptune-text-muted: #94a3b8;
	--neptune-border: #334155;
}

.neptune-dark-mode .neptune-admission-box,
.neptune-dark-mode .neptune-programme-sidebar__card,
.neptune-dark-mode .neptune-programme-card {
	background: #1e293b;
}

/* Responsive */
@media (max-width: 767px) {
	.neptune-admissions-details__item {
		grid-template-columns: 1fr;
	}

	.neptune-admission-actions {
		flex-direction: column;
	}

	.neptune-admission-actions .neptune-btn {
		width: 100%;
	}
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
	.neptune-btn,
	.neptune-programme-card {
		transition: none;
	}
}

/* High contrast */
@media (prefers-contrast: high) {
	.neptune-btn {
		border-width: 3px;
	}
}
