/* ===========================================================================
   EasyPathUni – Elementor Widgets CSS  (epu-widgets.css)
   Direction: RTL (Arabic). All sizes use relative units for scalability.
=========================================================================== */

/* ── Shared star icons ───────────────────────────────────────────────────── */
.epu-star            { font-style: normal; line-height: 1; }
.epu-star--on        { color: #f5a623; }
.epu-star--off       { color: #d5d5d5; }

/* ── Avatar placeholder ──────────────────────────────────────────────────── */
.epu-avatar-ph {
	align-items: center;
	background: #e0e7ff;
	border-radius: 50%;
	color: #1a56d6;
	display: inline-flex;
	font-size: 1rem;
	font-weight: 700;
	height: 44px;
	justify-content: center;
	width: 44px;
	flex-shrink: 0;
}

/* ===========================================================================
   WIDGET 1 — EPU Stats
=========================================================================== */

.epu-stats {
	--epu-accent: #1a56d6;
	display: flex;
	flex-wrap: wrap;
	gap: 1.25rem;
	justify-content: center;
}
.epu-stats--grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
}

/* Card style */
.epu-stats--card .epu-stat {
	align-items: center;
	background: #fff;
	border-radius: 14px;
	box-shadow: 0 3px 14px rgba(0,0,0,.08);
	display: flex;
	flex-direction: column;
	gap: .4rem;
	min-width: 130px;
	padding: 1.4rem 1.2rem;
	text-align: center;
	transition: transform .2s, box-shadow .2s;
}
.epu-stats--card .epu-stat:hover {
	box-shadow: 0 6px 22px rgba(0,0,0,.13);
	transform: translateY(-3px);
}

/* Minimal style */
.epu-stats--minimal .epu-stat {
	align-items: center;
	display: flex;
	flex-direction: column;
	gap: .3rem;
	min-width: 110px;
	text-align: center;
}

/* Dark style */
.epu-stats--dark .epu-stat {
	align-items: center;
	background: linear-gradient(135deg, #1a3a8f 0%, #1a56d6 100%);
	border-radius: 14px;
	color: #fff;
	display: flex;
	flex-direction: column;
	gap: .4rem;
	min-width: 130px;
	padding: 1.4rem 1.2rem;
	text-align: center;
}
.epu-stats--dark .epu-stat__value { color: #fff; }
.epu-stats--dark .epu-stat__label { color: rgba(255,255,255,.8); }

/* Shared typography */
.epu-stat__icon  { font-size: 1.8rem; line-height: 1; }
.epu-stat__value { color: #1a56d6; font-size: 1.75rem; font-weight: 800; line-height: 1; }
.epu-stat__label { color: #555; font-size: .85rem; }

/* ===========================================================================
   WIDGET 2 — EPU Reviews Grid
=========================================================================== */

.epu-reviews-widget {
	direction: rtl;
}

/* Title */
.epu-reviews-widget__title {
	font-size: 1.5rem;
	font-weight: 700;
	margin-bottom: 1.2rem;
	text-align: center;
}

/* Filter tabs */
.epu-filters {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
	justify-content: center;
	margin-bottom: 1.5rem;
}
.epu-tab {
	background: #f0f4ff;
	border: 1.5px solid transparent;
	border-radius: 20px;
	color: #444;
	cursor: pointer;
	font-size: .9rem;
	padding: .35rem 1rem;
	transition: background .18s, border-color .18s, color .18s;
}
.epu-tab:hover      { background: #dce8ff; }
.epu-tab--active    { background: #1a56d6; border-color: #1a56d6; color: #fff; font-weight: 600; }

/* Grid */
.epu-reviews-grid {
	display: grid;
	gap: 1.25rem;
}
.epu-reviews-grid--1col { grid-template-columns: 1fr; }
.epu-reviews-grid--2col { grid-template-columns: repeat(2, 1fr); }
.epu-reviews-grid--3col { grid-template-columns: repeat(3, 1fr); }
.epu-reviews-grid--4col { grid-template-columns: repeat(4, 1fr); }

@media (max-width: 900px) {
	.epu-reviews-grid--4col,
	.epu-reviews-grid--3col { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
	.epu-reviews-grid--4col,
	.epu-reviews-grid--3col,
	.epu-reviews-grid--2col { grid-template-columns: 1fr; }
}

/* Review card */
.epu-review-card {
	background: #fff;
	border-radius: 12px;
	box-shadow: 0 2px 12px rgba(0,0,0,.07);
	display: flex;
	flex-direction: column;
	gap: .75rem;
	padding: 1.2rem;
	transition: transform .2s, box-shadow .2s;
}
.epu-review-card:hover {
	box-shadow: 0 5px 20px rgba(0,0,0,.12);
	transform: translateY(-2px);
}

.epu-rc__header {
	align-items: flex-start;
	display: flex;
	gap: .75rem;
}
.epu-rc__avatar img,
.epu-rc__avatar .epu-avatar-ph {
	border-radius: 50%;
	flex-shrink: 0;
	height: 44px;
	width: 44px;
	object-fit: cover;
}
.epu-rc__meta {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: .15rem;
	min-width: 0;
}
.epu-rc__name   { color: #111; font-size: .93rem; }
.epu-rc__course { color: #777; font-size: .78rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.epu-rc__stars  { margin-right: auto; white-space: nowrap; }
.epu-rc__stars .epu-star { font-size: .95rem; }
.epu-rc__text   { color: #333; font-size: .88rem; line-height: 1.6; margin: 0; }
.epu-rc__date   { color: #aaa; font-size: .76rem; margin-top: auto; }

/* Empty state */
.epu-reviews__empty { color: #888; padding: 2rem; text-align: center; }

/* Loading overlay */
.epu-reviews-widget--loading .epu-reviews-grid {
	opacity: .35;
	pointer-events: none;
}

/* Pagination */
.epu-pagination {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: .4rem;
	justify-content: center;
	margin-top: 1.5rem;
}
.epu-page-btn {
	background: #f0f4ff;
	border: 1.5px solid #ccd5f0;
	border-radius: 7px;
	color: #444;
	cursor: pointer;
	font-size: .88rem;
	min-width: 36px;
	padding: .3rem .6rem;
	transition: background .15s;
}
.epu-page-btn:hover        { background: #dce8ff; }
.epu-page-btn--active      { background: #1a56d6; border-color: #1a56d6; color: #fff; font-weight: 700; }
.epu-reviews-count { color: #888; font-size: .78rem; margin-top: .5rem; text-align: center; }

/* ===========================================================================
   WIDGET 3 — EPU Reviews Carousel
=========================================================================== */

.epu-carousel-wrap {
	overflow: hidden;
	position: relative;
	width: 100%;
}
/* Fade edges */
.epu-carousel-wrap::before,
.epu-carousel-wrap::after {
	bottom: 0;
	content: '';
	pointer-events: none;
	position: absolute;
	top: 0;
	width: 80px;
	z-index: 2;
}
.epu-carousel-wrap::before { background: linear-gradient(to right, #fff 0%, transparent 100%); right: 0; }
.epu-carousel-wrap::after  { background: linear-gradient(to left,  #fff 0%, transparent 100%); left: 0; }

.epu-carousel-track {
	animation: epu-scroll var(--epu-speed, 40s) linear infinite;
	display: flex;
	gap: 1.2rem;
	width: max-content;
	padding: .5rem 0;
}
.epu-carousel-wrap:hover .epu-carousel-track { animation-play-state: paused; }

@keyframes epu-scroll {
	from { transform: translateX(0); }
	to   { transform: translateX(-50%); }
}

.epu-carousel-card {
	background: #fff;
	border-radius: 12px;
	box-shadow: 0 2px 10px rgba(0,0,0,.07);
	display: flex;
	flex-direction: column;
	gap: .6rem;
	padding: 1.1rem 1.2rem;
	width: var(--epu-card-w, 280px);
	flex-shrink: 0;
}
.epu-cc__stars .epu-star { font-size: .92rem; }
.epu-cc__text            { color: #333; font-size: .87rem; line-height: 1.55; margin: 0; }
.epu-cc__footer          { align-items: baseline; display: flex; flex-direction: column; gap: .1rem; margin-top: auto; }
.epu-cc__footer strong   { color: #111; font-size: .87rem; }
.epu-cc__footer small    { color: #888; font-size: .76rem; }

/* ===========================================================================
   REVIEW CARD — updated design (stars top-left, quote top-right, footer bottom)
=========================================================================== */

.epu-review-card {
	background: #fff;
	border-radius: 14px;
	box-shadow: 0 2px 16px rgba(0,0,0,.07);
	display: flex;
	flex-direction: column;
	gap: .75rem;
	padding: 1.4rem 1.5rem;
}
.epu-rc__top {
	align-items: center;
	display: flex;
	justify-content: space-between;
}
.epu-rc__quote {
	color: #f5a623;
	font-size: 2.2rem;
	font-family: Georgia, serif;
	line-height: .8;
	opacity: .6;
}
.epu-rc__stars .epu-star { font-size: .95rem; }
.epu-rc__text {
	color: #333;
	flex: 1;
	font-size: .93rem;
	line-height: 1.65;
	margin: 0;
}
.epu-rc__footer {
	align-items: center;
	display: flex;
	gap: .75rem;
	margin-top: auto;
	padding-top: .5rem;
	border-top: 1px solid #f0f0f0;
}
.epu-rc__avatar img,
.epu-rc__avatar .epu-avatar-ph { flex-shrink: 0; }
.epu-rc__meta        { display: flex; flex-direction: column; gap: .1rem; }
.epu-rc__name        { color: #1a1a2e; font-size: .9rem; font-weight: 700; }
.epu-rc__course      { color: #777; font-size: .78rem; }

/* ===========================================================================
   WIDGET 4 — EPU Hero Section
=========================================================================== */

.epu-hero {
	background-color: #0f1f3d;
	color: #fff;
	overflow: hidden;
	padding: 4rem 2rem 0;
}
.epu-hero__inner {
	align-items: center;
	display: flex;
	gap: 3rem;
	max-width: 1200px;
	margin: 0 auto;
	flex-wrap: wrap;
}
.epu-hero__left  { flex: 1 1 440px; }
.epu-hero__right { flex: 0 0 380px; }

/* Badge */
.epu-hero__badge {
	align-items: center;
	background: rgba(201,146,42,.15);
	border: 1px solid rgba(201,146,42,.4);
	border-radius: 30px;
	color: #e8b84b;
	display: inline-flex;
	font-size: .82rem;
	font-weight: 600;
	gap: .4rem;
	letter-spacing: .04em;
	margin-bottom: 1.2rem;
	padding: .3rem .9rem;
}

/* Headline */
.epu-hero__headline {
	color: #fff;
	font-size: clamp(1.8rem, 4vw, 2.8rem);
	font-weight: 800;
	line-height: 1.2;
	margin: 0 0 1rem;
}
.epu-hero__highlight { color: #c9922a; }
.epu-hero__subtitle  { color: #a8bdd8; font-size: .95rem; line-height: 1.7; margin: 0 0 1.5rem; }

/* Search */
.epu-hero__search {
	align-items: center;
	background: #fff;
	border-radius: 10px;
	display: flex;
	overflow: hidden;
	margin-bottom: 1rem;
}
.epu-hero__search-icon  { color: #888; padding: 0 .6rem 0 1rem; flex-shrink: 0; }
.epu-hero__search-input {
	border: none;
	flex: 1;
	font-size: .92rem;
	outline: none;
	padding: .85rem .5rem;
}
.epu-hero__search-btn {
	background: #c9922a;
	border: none;
	color: #fff;
	cursor: pointer;
	font-size: .9rem;
	font-weight: 600;
	padding: .85rem 1.4rem;
	transition: background .2s;
	white-space: nowrap;
}
.epu-hero__search-btn:hover { background: #a87920; }

/* Tags */
.epu-hero__tags       { align-items: center; display: flex; flex-wrap: wrap; gap: .4rem; margin-bottom: 1rem; }
.epu-hero__tags-label { color: #a8bdd8; font-size: .82rem; }
.epu-hero__tag {
	background: rgba(255,255,255,.1);
	border: 1px solid rgba(255,255,255,.2);
	border-radius: 20px;
	color: #e0eaff;
	font-size: .8rem;
	padding: .2rem .75rem;
	text-decoration: none;
	transition: background .15s;
}
.epu-hero__tag:hover { background: rgba(255,255,255,.2); }

/* Course card */
.epu-hero__course-card {
	background: linear-gradient(145deg, #1a3a6e, #0d2040);
	border-radius: 18px;
	box-shadow: 0 20px 60px rgba(0,0,0,.4);
	color: #fff;
	display: block;
	overflow: hidden;
	position: relative;
	text-decoration: none;
	transition: transform .25s;
}
.epu-hero__course-card:hover { transform: translateY(-4px); }

.epu-hero__course-thumb {
	background: linear-gradient(135deg, #1e4d8c, #0a1f45);
	background-size: cover;
	background-position: center;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-height: 200px;
	position: relative;
}
.epu-hero__play {
	align-items: center;
	background: rgba(255,255,255,.9);
	border-radius: 50%;
	color: #0f1f3d;
	display: flex;
	font-size: 1.3rem;
	height: 56px;
	justify-content: center;
	width: 56px;
	margin-bottom: .75rem;
}
.epu-hero__course-label {
	background: rgba(0,0,0,.5);
	border-radius: 4px;
	bottom: 10px;
	color: #cde;
	font-size: .65rem;
	font-weight: 700;
	left: 10px;
	letter-spacing: .07em;
	padding: .2rem .5rem;
	position: absolute;
}
.epu-hero__course-body   { padding: 1rem 1.2rem .6rem; }
.epu-hero__course-badges { display: flex; gap: .5rem; margin-bottom: .5rem; flex-wrap: wrap; }
.epu-hero__cbadge {
	background: rgba(255,255,255,.12);
	border-radius: 4px;
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .04em;
	padding: .15rem .55rem;
}
.epu-hero__cbadge--gold { background: #c9922a; color: #fff; }
.epu-hero__course-title { color: #fff; font-size: .95rem; font-weight: 700; line-height: 1.45; margin: 0 0 .4rem; }
.epu-hero__course-meta  { color: #a8d0f0; font-size: .82rem; }
.epu-hero__course-meta small { color: #7fa8cc; }

.epu-hero__students-bubble {
	align-items: center;
	background: #fff;
	border-radius: 10px;
	bottom: 12px;
	box-shadow: 0 4px 16px rgba(0,0,0,.25);
	color: #0f1f3d;
	display: flex;
	font-size: .8rem;
	font-weight: 700;
	gap: .4rem;
	padding: .5rem .85rem;
	position: absolute;
	right: 12px;
}
.epu-hero__students-bubble small { color: #555; font-weight: 400; }

/* Stats bar */
.epu-hero__stats-bar {
	background: #fff;
	border-radius: 16px 16px 0 0;
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	justify-content: space-around;
	margin-top: 3rem;
	padding: 1.5rem 2rem;
}
.epu-hero__stat         { align-items: center; display: flex; flex-direction: column; gap: .2rem; text-align: center; }
.epu-hero__stat-icon    { font-size: 1.3rem; }
.epu-hero__stat-value   { color: #0f1f3d; font-size: 1.45rem; font-weight: 800; }
.epu-hero__stat-label   { color: #666; font-size: .8rem; }

@media (max-width: 768px) {
	.epu-hero { padding: 2.5rem 1.25rem 0; }
	.epu-hero__inner { gap: 2rem; }
	.epu-hero__right { flex: 1 1 100%; }
	.epu-hero__stats-bar { gap: .75rem; padding: 1.25rem 1rem; }
}

/* ===========================================================================
   WIDGET 5 — EPU Accreditations
=========================================================================== */

.epu-accreditations { padding: 3rem 2rem; }
.epu-accred__head   { margin-bottom: 2rem; text-align: center; }
.epu-accred__label  { color: #888; font-size: .82rem; font-weight: 600; letter-spacing: .08em; margin: 0 0 .4rem; text-transform: uppercase; }
.epu-accred__title  { color: #0f1f3d; font-size: clamp(1.5rem, 3vw, 2.1rem); font-weight: 800; margin: 0 0 .4rem; }
.epu-accred__subtitle { color: #666; font-size: .9rem; margin: 0; }

.epu-accred__cards {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	margin-bottom: 2rem;
}
.epu-accred-card {
	align-items: center;
	border-radius: 14px;
	color: #fff;
	display: flex;
	gap: 1rem;
	padding: 1.1rem 1.3rem;
	text-decoration: none;
	transition: transform .2s, box-shadow .2s;
}
.epu-accred-card:hover { box-shadow: 0 8px 24px rgba(0,0,0,.2); transform: translateY(-2px); }
.epu-accred-card__icon {
	align-items: center;
	background: rgba(255,255,255,.15);
	border-radius: 10px;
	display: flex;
	flex-shrink: 0;
	height: 48px;
	justify-content: center;
	overflow: hidden;
	width: 48px;
}
.epu-accred-card__icon img   { height: 100%; object-fit: contain; width: 100%; }
.epu-accred-card__icon span  { color: #fff; font-size: .85rem; font-weight: 800; }
.epu-accred-card__title      { color: #fff; display: block; font-size: .95rem; font-weight: 700; }
.epu-accred-card__sub        { color: rgba(255,255,255,.75); display: block; font-size: .78rem; margin-top: .15rem; }

.epu-accred__logos {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 1.5rem 2.5rem;
	justify-content: center;
	margin-top: 1.5rem;
}
.epu-accred__logo {
	align-items: center;
	display: flex;
	flex-direction: column;
	gap: .3rem;
	opacity: .55;
	text-decoration: none;
	transition: opacity .2s;
}
.epu-accred__logo:hover { opacity: 1; }
.epu-accred__logo img   { height: 40px; object-fit: contain; width: auto; max-width: 100px; }
.epu-accred__logo span  { color: #888; font-size: .7rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }

/* ===========================================================================
   WIDGET 6 — EPU Instructor
=========================================================================== */

.epu-instructor {
	align-items: flex-start;
	display: flex;
	flex-wrap: wrap;
	gap: 3rem;
	padding: 3rem 2rem;
}

.epu-instr__left { flex: 0 0 340px; }

.epu-instr__photo-wrap {
	background-color: #1a3a5c;
	border-radius: 18px;
	min-height: 380px;
	overflow: hidden;
	position: relative;
}
.epu-instr__photo {
	display: block;
	height: 100%;
	left: 0;
	object-fit: cover;
	object-position: top center;
	position: absolute;
	top: 0;
	width: 100%;
}
.epu-instr__photo-placeholder {
	align-items: center;
	color: rgba(255,255,255,.3);
	display: flex;
	font-size: 5rem;
	height: 380px;
	justify-content: center;
}

.epu-instr__name-badge {
	align-items: center;
	background: rgba(255,255,255,.96);
	backdrop-filter: blur(8px);
	border-radius: 10px;
	bottom: 16px;
	box-shadow: 0 4px 20px rgba(0,0,0,.18);
	display: flex;
	gap: .7rem;
	left: 16px;
	padding: .65rem 1rem;
	position: absolute;
	right: 16px;
	z-index: 2;
}
.epu-instr__cred-badges {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
	margin-top: .85rem;
}
.epu-instr__accred-logo {
	margin-top: 1rem;
	text-align: center;
}
.epu-instr__accred-logo img {
	max-height: 60px;
	max-width: 160px;
	object-fit: contain;
	filter: drop-shadow(0 1px 3px rgba(0,0,0,.15));
}
.epu-instr__badge-icon { color: #c9922a; font-size: 1.3rem; }
.epu-instr__name       { color: #0f1f3d; display: block; font-size: .88rem; font-weight: 700; }
.epu-instr__role       { color: #888; display: block; font-size: .76rem; }

/* Right column */
.epu-instr__right { flex: 1 1 380px; }
.epu-instr__label       { color: #888; font-size: .82rem; font-weight: 600; letter-spacing: .06em; margin: 0 0 .5rem; text-transform: uppercase; }
.epu-instr__title       { color: #0f1f3d; font-size: clamp(1.5rem, 3vw, 2rem); font-weight: 800; margin: 0 0 .5rem; }
.epu-instr__credentials { color: #c9922a; font-size: .95rem; font-weight: 600; margin: 0 0 .75rem; }
.epu-instr__bio         { color: #444; font-size: .93rem; line-height: 1.7; margin: 0 0 1.5rem; }

.epu-instr__stats {
	display: flex;
	gap: 1.5rem;
	flex-wrap: wrap;
	margin-bottom: 1.25rem;
}
.epu-instr__stat        { display: flex; flex-direction: column; gap: .1rem; }
.epu-instr__stat strong { color: #0f1f3d; font-size: 1.45rem; font-weight: 800; }
.epu-instr__stat span   { color: #777; font-size: .8rem; }

.epu-instr__divider { border: none; border-top: 1px solid #e8eaf0; margin: 0 0 1.25rem; }

.epu-instr__buttons { display: flex; flex-wrap: wrap; gap: .75rem; }
.epu-instr__btn {
	border-radius: 9px;
	cursor: pointer;
	font-size: .9rem;
	font-weight: 600;
	padding: .7rem 1.5rem;
	text-decoration: none;
	transition: all .2s;
}
.epu-instr__btn--primary {
	background: #0f1f3d;
	color: #fff;
}
.epu-instr__btn--primary:hover { background: #1a3a6e; color: #fff; }
.epu-instr__btn--outline {
	background: transparent;
	border: 2px solid #0f1f3d;
	color: #0f1f3d;
}
.epu-instr__btn--outline:hover { background: #f5f7ff; }

@media (max-width: 768px) {
	.epu-instructor { gap: 2rem; }
	.epu-instr__left { flex: 1 1 100%; }
	.epu-instr__photo-wrap { min-height: 280px; }
}


/* ===========================================================================
   WIDGET 7 — EPU Categories Grid
=========================================================================== */
.epu-cats { padding: 4rem 1.5rem; }
.epu-cats__head { text-align: center; margin-bottom: 2.5rem; }
.epu-cats__eyebrow { font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #1a56d6; margin-bottom: .5rem; }
.epu-cats__title  { font-size: clamp(1.5rem, 3vw, 2.25rem); font-weight: 800; color: #0f1f3d; margin: 0 0 .75rem; }
.epu-cats__sub    { color: #64748b; font-size: 1rem; max-width: 540px; margin: 0 auto; }
.epu-cats__grid {
  display: grid;
  grid-template-columns: repeat(var(--epu-cats-cols, 4), 1fr);
  gap: 1rem;
  max-width: 1200px;
  margin: 0 auto;
}
.epu-cat-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .6rem;
  padding: 1.5rem 1rem;
  border-radius: 12px;
  border: 2px solid transparent;
  background: #fff;
  text-decoration: none;
  text-align: center;
  box-shadow: 0 2px 12px rgba(0,0,0,.06);
  transition: transform .2s, border-color .2s, box-shadow .2s;
}
.epu-cat-card:hover { transform: translateY(-4px); border-color: var(--epu-cat-accent, #1a56d6); box-shadow: 0 8px 28px rgba(0,0,0,.12); }
.epu-cat-card__icon  { font-size: 2rem; line-height: 1; }
.epu-cat-card__name  { font-size: .95rem; font-weight: 700; color: #0f1f3d; }
.epu-cat-card__count { font-size: .8rem; color: #64748b; }
@media (max-width: 768px) { .epu-cats__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px) { .epu-cats__grid { grid-template-columns: 1fr 1fr; } }

/* ===========================================================================
   WIDGET 8 — EPU Featured Courses Grid
=========================================================================== */
.epu-courses { padding: 4rem 1.5rem; }
.epu-courses__head { text-align: center; margin-bottom: 2.5rem; }
.epu-courses__eyebrow { font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #1a56d6; margin-bottom: .5rem; }
.epu-courses__title   { font-size: clamp(1.5rem, 3vw, 2.25rem); font-weight: 800; color: #0f1f3d; margin: 0 0 .75rem; }
.epu-courses__lede    { color: #64748b; font-size: 1rem; max-width: 560px; margin: 0 auto 1rem; }
.epu-courses__all-link { display: inline-block; color: #1a56d6; font-weight: 600; font-size: .9rem; text-decoration: none; }
.epu-courses__all-link:hover { text-decoration: underline; }
.epu-courses__grid {
  display: grid;
  grid-template-columns: repeat(var(--epu-courses-cols, 3), 1fr);
  gap: 1.5rem;
  max-width: 1200px;
  margin: 0 auto;
}
.epu-course-card {
  border-radius: 12px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 2px 12px rgba(0,0,0,.08);
  transition: transform .2s, box-shadow .2s;
  display: flex;
  flex-direction: column;
}
.epu-course-card:hover { transform: translateY(-4px); box-shadow: 0 10px 32px rgba(0,0,0,.14); }
.epu-course-card__cover {
  display: block;
  position: relative;
  height: 180px;
  background: #1a3a6c center/cover no-repeat;
  text-decoration: none;
}
.epu-course-card__badge {
  position: absolute; top: 10px; left: 10px;
  padding: 3px 10px; border-radius: 4px; font-size: .72rem; font-weight: 700; letter-spacing: .06em;
}
.epu-course-card__badge--free { background: #0d9b6c; color: #fff; }
.epu-course-card__badge--sale { background: #d63031; color: #fff; }
.epu-course-card__dur  { position: absolute; bottom: 8px; right: 8px; background: rgba(0,0,0,.6); color: #fff; font-size: .75rem; padding: 2px 7px; border-radius: 4px; }
.epu-course-card__body { padding: 1rem 1.1rem; flex: 1; display: flex; flex-direction: column; gap: .45rem; }
.epu-course-card__cat    { font-size: .73rem; font-weight: 700; text-transform: uppercase; color: #1a56d6; letter-spacing: .05em; }
.epu-course-card__title  { font-size: .95rem; font-weight: 700; color: #0f1f3d; line-height: 1.35; }
.epu-course-card__title a { color: inherit; text-decoration: none; }
.epu-course-card__title a:hover { color: #1a56d6; }
.epu-course-card__rating { font-size: .82rem; color: #f5a623; }
.epu-course-card__rating small { color: #94a3b8; margin-left: .25rem; }
.epu-course-card__footer { display: flex; align-items: center; justify-content: space-between; margin-top: auto; padding-top: .75rem; border-top: 1px solid #f1f5f9; }
.epu-course-card__price  { font-size: .9rem; font-weight: 700; color: #0f1f3d; }
.epu-course-card__price del { color: #94a3b8; font-weight: 400; margin-right: .3rem; }
.epu-course-card__free   { color: #0d9b6c; }
.epu-course-card__enroll { background: #1a56d6; color: #fff; text-decoration: none; padding: 6px 14px; border-radius: 6px; font-size: .8rem; font-weight: 600; transition: background .2s; }
.epu-course-card__enroll:hover { background: #1540a8; }
.epu-courses__cta { text-align: center; margin-top: 2.5rem; }
.epu-courses__btn { display: inline-block; background: #0f1f3d; color: #fff; text-decoration: none; padding: .75rem 2rem; border-radius: 8px; font-weight: 700; transition: background .2s; }
.epu-courses__btn:hover { background: #1a56d6; }
@media (max-width: 900px) { .epu-courses__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .epu-courses__grid { grid-template-columns: 1fr; } }

/* ===========================================================================
   WIDGET 9 — EPU Why Section
=========================================================================== */
.epu-why { padding: 4rem 1.5rem; }
.epu-why--tinted { background: #f8faff; }
.epu-why__head { text-align: center; margin-bottom: 2.5rem; }
.epu-why__eyebrow { font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #1a56d6; margin-bottom: .5rem; }
.epu-why__title   { font-size: clamp(1.5rem, 3vw, 2.25rem); font-weight: 800; color: #0f1f3d; margin: 0; }
.epu-why__grid {
  display: grid;
  grid-template-columns: repeat(var(--epu-why-cols, 4), 1fr);
  gap: 1.5rem;
  max-width: 1200px;
  margin: 0 auto;
}
.epu-why-card { background: #fff; border-radius: 12px; padding: 1.75rem 1.5rem; box-shadow: 0 2px 12px rgba(0,0,0,.06); text-align: center; display: flex; flex-direction: column; align-items: center; gap: .75rem; transition: transform .2s; }
.epu-why-card:hover { transform: translateY(-4px); }
.epu-why-card__icon  { font-size: 2rem; line-height: 1; }
.epu-why-card__title { font-size: 1rem; font-weight: 700; color: #0f1f3d; margin: 0; }
.epu-why-card__desc  { font-size: .875rem; color: #64748b; line-height: 1.6; margin: 0; }
@media (max-width: 900px) { .epu-why__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px) { .epu-why__grid { grid-template-columns: 1fr; } }

/* ===========================================================================
   WIDGET 10 — EPU Free Courses Strip
=========================================================================== */
.epu-free { padding: 4rem 1.5rem; }
.epu-free__head { max-width: 1200px; margin: 0 auto 2rem; display: flex; flex-wrap: wrap; align-items: flex-end; gap: 1rem; justify-content: space-between; }
.epu-free__eyebrow { font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #0d9b6c; margin: 0 0 .3rem; }
.epu-free__title   { font-size: clamp(1.4rem, 2.5vw, 2rem); font-weight: 800; color: #0f1f3d; margin: 0 0 .5rem; }
.epu-free__lede    { color: #64748b; font-size: .9rem; margin: 0; }
.epu-free__all-link { white-space: nowrap; color: #1a56d6; font-weight: 600; font-size: .9rem; text-decoration: none; }
.epu-free__all-link:hover { text-decoration: underline; }
/* Header layout: title left, lede+link right */
.epu-free__head { flex-wrap: wrap; align-items: flex-start; }
.epu-free__head-right { display: flex; flex-direction: column; align-items: flex-end; gap: .3rem; }

.epu-free__strip {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 1.25rem;
  max-width: 1200px;
  margin: 0 auto;
}

/* ── Full course card (thumbnail + body) ─────────────────────────────────── */
.epu-free-card {
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: box-shadow .2s, transform .2s;
}
.epu-free-card:hover { box-shadow: 0 8px 28px rgba(0,0,0,.12); transform: translateY(-2px); }

/* Thumbnail */
.epu-free-card__thumb {
  display: block;
  position: relative;
  overflow: hidden;
  aspect-ratio: 16/9;
  background: #e2e8f0;
}
.epu-free-card__thumb img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform .3s;
}
.epu-free-card:hover .epu-free-card__thumb img { transform: scale(1.04); }
.epu-free-card__thumb-ph {
  width: 100%; height: 100%; display: flex;
  align-items: center; justify-content: center;
  font-size: 2.5rem; color: #94a3b8;
}
.epu-free-card__badge {
  position: absolute; top: 10px; left: 10px;
  background: #0d9b6c; color: #fff;
  font-size: .65rem; font-weight: 700; letter-spacing: .08em;
  padding: 3px 8px; border-radius: 4px;
}

/* Body */
.epu-free-card__body {
  padding: 1rem 1rem 1.1rem;
  display: flex; flex-direction: column; gap: .55rem;
  flex: 1;
}

/* Stars + avg */
.epu-free-card__stars { display: flex; align-items: center; gap: 3px; font-size: .82rem; }
.epu-star--on   { color: #f5a623; }
.epu-star--half { color: #f5a623; }
.epu-star--off  { color: #d1d5db; }
.epu-free-card__avg   { color: #f5a623; font-weight: 700; font-size: .82rem; margin-left: 2px; }
.epu-free-card__rcount{ color: #64748b; font-size: .78rem; }

/* Title */
.epu-free-card__title { font-size: .93rem; font-weight: 700; color: #0f1f3d; margin: 0; line-height: 1.4; }
.epu-free-card__title a { color: inherit; text-decoration: none; }
.epu-free-card__title a:hover { color: #1a56d6; }

/* Meta: students + duration */
.epu-free-card__meta { display: flex; align-items: center; gap: .75rem; flex-wrap: wrap; }
.epu-free-card__meta-item {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: .8rem; color: #475569;
}
.epu-free-card__meta-item svg { flex-shrink: 0; }

/* Instructor */
.epu-free-card__instructor { display: flex; align-items: center; gap: .5rem; }
.epu-free-card__avatar { width: 26px; height: 26px; border-radius: 50%; object-fit: cover; }
.epu-free-card__instr-text { font-size: .78rem; color: #475569; }
.epu-free-card__instr-text strong { color: #0f1f3d; }

/* CTA button */
.epu-free-card__btn {
  display: inline-block; margin-top: auto;
  background: #1a56d6; color: #fff;
  text-decoration: none; text-align: center;
  padding: 7px 16px; border-radius: 7px;
  font-size: .82rem; font-weight: 600;
  transition: background .2s;
}
.epu-free-card__btn:hover { background: #1540a8; color: #fff; }

/* ===========================================================================
   WIDGET 11 — EPU Blog Posts Grid
=========================================================================== */
.epu-blog { padding: 4rem 1.5rem; }
.epu-blog--tinted { background: #f8faff; }
.epu-blog__head { max-width: 1200px; margin: 0 auto 2rem; display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .75rem; }
.epu-blog__title    { font-size: clamp(1.4rem, 2.5vw, 2rem); font-weight: 800; color: #0f1f3d; margin: 0; }
.epu-blog__all-link { color: #1a56d6; font-weight: 600; font-size: .9rem; text-decoration: none; white-space: nowrap; }
.epu-blog__all-link:hover { text-decoration: underline; }
.epu-blog__grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr;
  gap: 1.25rem;
  max-width: 1200px;
  margin: 0 auto;
}
.epu-blog-card { background: #fff; border-radius: 12px; overflow: hidden; box-shadow: 0 2px 10px rgba(0,0,0,.07); display: flex; flex-direction: column; transition: transform .2s; }
.epu-blog-card:hover { transform: translateY(-3px); }
.epu-blog-card__thumb { height: 140px; background: #1a3a6c center/cover no-repeat; }
.epu-blog-card--featured .epu-blog-card__thumb { height: 220px; }
.epu-blog-card__body  { padding: 1.1rem; flex: 1; display: flex; flex-direction: column; gap: .5rem; }
.epu-blog-card__meta  { display: flex; gap: .75rem; align-items: center; }
.epu-blog-card__cat   { font-size: .72rem; font-weight: 700; text-transform: uppercase; color: #1a56d6; letter-spacing: .05em; }
.epu-blog-card__date  { font-size: .72rem; color: #94a3b8; }
.epu-blog-card__title { font-size: .92rem; font-weight: 700; color: #0f1f3d; line-height: 1.35; margin: 0; }
.epu-blog-card--featured .epu-blog-card__title { font-size: 1.1rem; }
.epu-blog-card__title a { color: inherit; text-decoration: none; }
.epu-blog-card__title a:hover { color: #1a56d6; }
.epu-blog-card__excerpt { font-size: .85rem; color: #64748b; line-height: 1.6; margin: 0; }
.epu-blog-card__read-more { margin-top: auto; font-size: .82rem; font-weight: 600; color: #1a56d6; text-decoration: none; }
.epu-blog-card__read-more:hover { text-decoration: underline; }
@media (max-width: 900px) { .epu-blog__grid { grid-template-columns: 1fr 1fr; } .epu-blog-card--featured { grid-column: span 2; } }
@media (max-width: 560px) { .epu-blog__grid { grid-template-columns: 1fr; } .epu-blog-card--featured { grid-column: auto; } }

/* ===========================================================================
   WIDGET 12 — EPU Newsletter / CTA
=========================================================================== */
.epu-nl { background: #0f1f3d; padding: 4rem 1.5rem; }
.epu-nl__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3rem;
  max-width: 1100px;
  margin: 0 auto;
  align-items: center;
}
.epu-nl__tag     { display: inline-block; background: rgba(233,196,106,.15); color: #e9c46a; font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; padding: 4px 12px; border-radius: 20px; margin-bottom: .75rem; }
.epu-nl__heading { font-size: clamp(1.5rem, 3vw, 2.25rem); font-weight: 800; color: #fff; margin: 0 0 .75rem; line-height: 1.2; }
.epu-nl__desc    { color: #94a3b8; font-size: .95rem; line-height: 1.65; margin: 0 0 1.25rem; }
.epu-nl__benefits { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: .5rem; }
.epu-nl__benefit  { color: #cbd5e1; font-size: .88rem; display: flex; align-items: flex-start; gap: .5rem; }
.epu-nl__form     { display: flex; flex-direction: column; gap: .75rem; }
.epu-nl__label    { color: #94a3b8; font-size: .85rem; }
.epu-nl__input    { width: 100%; padding: .75rem 1rem; border-radius: 8px; border: 1px solid rgba(255,255,255,.15); background: rgba(255,255,255,.08); color: #fff; font-size: 1rem; outline: none; box-sizing: border-box; }
.epu-nl__input:focus { border-color: #e9c46a; }
.epu-nl__input::placeholder { color: rgba(255,255,255,.35); }
.epu-nl__submit { width: 100%; background: #e9c46a; color: #0f1f3d; border: none; padding: .8rem; border-radius: 8px; font-size: 1rem; font-weight: 700; cursor: pointer; transition: background .2s; }
.epu-nl__submit:hover { background: #d4a01a; }
.epu-nl__privacy  { color: rgba(255,255,255,.4); font-size: .78rem; margin: 0; }
.epu-nl__success  { color: #4ade80; font-weight: 600; font-size: 1rem; text-align: center; }
@media (max-width: 768px) { .epu-nl__inner { grid-template-columns: 1fr; gap: 2rem; } }

/* ===========================================================================
   SHARED SECTION WRAPPER
=========================================================================== */
.epu-section { max-width: 100%; overflow-x: hidden; }


/* ===========================================================================
   SCROLL-TRIGGERED ANIMATIONS (v4.0)
=========================================================================== */

.epu-anim {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.55s ease, transform 0.55s ease;
}
.epu-anim--visible {
  opacity: 1;
  transform: translateY(0);
}

/* Stagger delays for grid children */
.epu-stats .epu-stat.epu-anim:nth-child(1) { transition-delay: 0.05s; }
.epu-stats .epu-stat.epu-anim:nth-child(2) { transition-delay: 0.12s; }
.epu-stats .epu-stat.epu-anim:nth-child(3) { transition-delay: 0.19s; }
.epu-stats .epu-stat.epu-anim:nth-child(4) { transition-delay: 0.26s; }
.epu-stats .epu-stat.epu-anim:nth-child(5) { transition-delay: 0.33s; }
.epu-stats .epu-stat.epu-anim:nth-child(6) { transition-delay: 0.40s; }

.epu-accred__cards .epu-accred-card.epu-anim:nth-child(1) { transition-delay: 0.05s; }
.epu-accred__cards .epu-accred-card.epu-anim:nth-child(2) { transition-delay: 0.12s; }
.epu-accred__cards .epu-accred-card.epu-anim:nth-child(3) { transition-delay: 0.19s; }
.epu-accred__cards .epu-accred-card.epu-anim:nth-child(4) { transition-delay: 0.26s; }

.epu-cats__grid .epu-cat-card.epu-anim:nth-child(1) { transition-delay: 0.04s; }
.epu-cats__grid .epu-cat-card.epu-anim:nth-child(2) { transition-delay: 0.09s; }
.epu-cats__grid .epu-cat-card.epu-anim:nth-child(3) { transition-delay: 0.14s; }
.epu-cats__grid .epu-cat-card.epu-anim:nth-child(4) { transition-delay: 0.19s; }
.epu-cats__grid .epu-cat-card.epu-anim:nth-child(5) { transition-delay: 0.24s; }
.epu-cats__grid .epu-cat-card.epu-anim:nth-child(6) { transition-delay: 0.29s; }

.epu-courses__grid .epu-course-card.epu-anim:nth-child(1) { transition-delay: 0.06s; }
.epu-courses__grid .epu-course-card.epu-anim:nth-child(2) { transition-delay: 0.13s; }
.epu-courses__grid .epu-course-card.epu-anim:nth-child(3) { transition-delay: 0.20s; }

.epu-why__grid .epu-why-card.epu-anim:nth-child(1) { transition-delay: 0.06s; }
.epu-why__grid .epu-why-card.epu-anim:nth-child(2) { transition-delay: 0.13s; }
.epu-why__grid .epu-why-card.epu-anim:nth-child(3) { transition-delay: 0.20s; }
.epu-why__grid .epu-why-card.epu-anim:nth-child(4) { transition-delay: 0.27s; }

.epu-reviews-grid .epu-review-card.epu-anim:nth-child(1) { transition-delay: 0.05s; }
.epu-reviews-grid .epu-review-card.epu-anim:nth-child(2) { transition-delay: 0.12s; }
.epu-reviews-grid .epu-review-card.epu-anim:nth-child(3) { transition-delay: 0.19s; }

/* ===========================================================================
   STATS WIDGET — extra styles (v4.0)
=========================================================================== */

.epu-stats {
  display: flex;
  flex-wrap: wrap;
  gap: 1.25rem;
  justify-content: center;
  padding: 2.5rem 1.5rem;
  max-width: 1200px;
  margin: 0 auto;
}
.epu-stats--grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
}
.epu-stat {
  align-items: center;
  background: #fff;
  border-radius: 14px;
  box-shadow: 0 2px 16px rgba(0,0,0,.07);
  display: flex;
  flex-direction: column;
  gap: .4rem;
  min-width: 140px;
  padding: 1.5rem 1rem;
  text-align: center;
  transition: transform .2s, box-shadow .2s;
}
.epu-stat:hover { transform: translateY(-3px); box-shadow: 0 6px 24px rgba(0,0,0,.12); }
.epu-stat__icon  { font-size: 1.8rem; line-height: 1; }
.epu-stat__value { color: #1a56d6; font-size: 1.75rem; font-weight: 800; line-height: 1; }
.epu-stat__label { color: #64748b; font-size: .82rem; }

.epu-stats--dark .epu-stat {
  background: linear-gradient(135deg, #1a3a6e, #0d2040);
  color: #fff;
}
.epu-stats--dark .epu-stat__value { color: #e9c46a; }
.epu-stats--dark .epu-stat__label { color: rgba(255,255,255,.7); }

.epu-stats--minimal .epu-stat {
  background: transparent;
  box-shadow: none;
  border-bottom: 2px solid #f0f4ff;
}
.epu-stats--minimal .epu-stat:hover { box-shadow: none; transform: none; }

/* ── EPU Login Widget ────────────────────────────────────────────────────── */
.epu-login-widget { width: 100%; }
.epu-login-widget--centered { display: flex; justify-content: center; }
.epu-login-widget--card .epu-login-widget__inner {
background: #fff;
border: 1px solid #e3e8ef;
border-radius: 16px;
box-shadow: 0 8px 32px rgba(15,42,82,.08);
padding: 2.5rem;
max-width: 440px;
width: 100%;
}
.epu-login-widget--centered .epu-login-widget__inner {
background: #fff;
border: 1px solid #e3e8ef;
border-radius: 16px;
box-shadow: 0 8px 32px rgba(15,42,82,.08);
padding: 2.5rem;
max-width: 420px;
width: 100%;
}
.epu-login-widget__logo { text-align: center; margin-bottom: 1.25rem; }
.epu-login-widget__logo img { max-height: 52px; object-fit: contain; }
.epu-login-widget__title { color: #0f2a52; font-size: 1.55rem; font-weight: 800; margin: 0 0 .3rem; }
.epu-login-widget__sub { color: #6b7a90; font-size: .9rem; margin: 0 0 1.5rem; }
.epu-login-widget__msg { border-radius: 8px; font-size: .875rem; padding: .65rem .9rem; margin: 0 0 1rem; }
.epu-login-widget__msg.is-error { background: #fff1f0; border: 1px solid #ffa39e; color: #cf1322; }
.epu-login-widget__msg.is-ok    { background: #f6ffed; border: 1px solid #b7eb8f; color: #135200; }
.epu-login-widget__footer { color: #6b7a90; font-size: .875rem; margin: 1.25rem 0 0; text-align: center; }
.epu-login-widget__footer a { color: #1f4683; font-weight: 600; }
.epu-login-widget__logged-in { color: #1f4683; font-size: .9rem; }

.epu-lw__field { display: flex; flex-direction: column; gap: .4rem; margin-bottom: 1rem; }
.epu-lw__field label { color: #374151; font-size: .84rem; font-weight: 600; display: flex; justify-content: space-between; }
.epu-lw__forgot { color: #1f4683; font-weight: 500; }
.epu-lw__field input {
border: 1.5px solid #d1d5db;
border-radius: 8px;
font-size: .93rem;
outline: none;
padding: .62rem .85rem;
transition: border-color .15s, box-shadow .15s;
width: 100%;
}
.epu-lw__field input:focus { border-color: #1f4683; box-shadow: 0 0 0 3px rgba(31,70,131,.12); }
.epu-lw__pass-wrap { position: relative; }
.epu-lw__pass-wrap input { padding-right: 2.6rem; }
.epu-lw__toggle-pass {
background: none; border: none; color: #9ca3af; cursor: pointer;
position: absolute; right: .7rem; top: 50%; transform: translateY(-50%);
}
.epu-lw__submit {
width: 100%; justify-content: center; padding: .75rem;
font-size: .95rem; font-weight: 700; margin-top: .25rem;
}
.epu-lw__spinner { animation: epu-spin 1s linear infinite; }
@keyframes epu-spin { to { transform: rotate(360deg); } }
