/* HEC LMS — frontend styles */
:root {
	--hec-navy: #00247D;
	--hec-navy-dk: #001A5C;
	--hec-gold: #F5B82E;
	--hec-ink: #1A1D21;
	--hec-grey: #5C6672;
	--hec-line: #E4E5E9;
	--hec-pale: #EAF0FA;
}

/* ---------- Enrolment banner ---------- */
.hec-banner {
	background: linear-gradient(135deg, var(--hec-navy-dk), var(--hec-navy));
	color: #fff;
	font-family: system-ui, -apple-system, "Segoe UI", sans-serif;
}
.hec-banner--sticky {
	position: sticky;
	top: 0;
	z-index: 999;
	box-shadow: 0 2px 18px rgba(0,26,92, .28);
}
.hec-banner-inner {
	max-width: 1140px;
	margin: 0 auto;
	padding: 12px 24px;
	display: flex;
	align-items: center;
	gap: 20px;
	flex-wrap: wrap;
}
.hec-banner-info {
	display: flex;
	align-items: center;
	gap: 12px;
	flex: 1 1 auto;
	min-width: 0;
	flex-wrap: wrap;
}
.hec-banner-title {
	font-weight: 600;
	font-size: 15px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	max-width: 46ch;
}
.hec-banner-meta {
	font-size: 12.5px;
	color: #CFD5E5;
}
.hec-badge {
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .06em;
	padding: 4px 10px;
	border-radius: 100px;
	white-space: nowrap;
}
.hec-badge--enrolled { background: var(--hec-gold); color: var(--hec-navy-dk); }
.hec-badge--guest { border: 1px solid rgba(255, 255, 255, .4); color: #EAF1FC; }
.hec-badge--expired { background: #C0392B; color: #fff; }

.hec-banner-progress {
	display: flex;
	align-items: center;
	gap: 10px;
	min-width: 160px;
}
.hec-banner-progress .hec-progress { flex: 1 1 120px; }
.hec-progress-label { font-size: 12px; color: #CFD5E5; white-space: nowrap; }

.hec-banner-cta {
	display: flex;
	align-items: center;
	gap: 14px;
	margin-left: auto;
}
.hec-banner-price { font-weight: 700; font-size: 16px; color: var(--hec-gold); }
.hec-banner-price del { color: #9FA6B6; font-weight: 400; }

/* ---------- Progress bars ---------- */
.hec-progress {
	height: 8px;
	background: rgba(255, 255, 255, .22);
	border-radius: 100px;
	overflow: hidden;
	min-width: 90px;
}
.hec-account-courses .hec-progress { background: var(--hec-line); }
.hec-progress > span {
	display: block;
	height: 100%;
	background: var(--hec-gold);
	border-radius: 100px;
	transition: width .4s ease;
}

/* ---------- Buttons ---------- */
.hec-btn {
	display: inline-block;
	font-weight: 700;
	font-size: 14px;
	line-height: 1;
	padding: 12px 22px;
	border-radius: 8px;
	text-decoration: none !important;
	border: 2px solid transparent;
	cursor: pointer;
	transition: transform .08s ease, background .2s ease;
	white-space: nowrap;
}
.hec-btn:hover { transform: translateY(-1px); }
.hec-btn--buy { background: var(--hec-gold); color: var(--hec-navy-dk) !important; }
.hec-btn--buy:hover { background: #f7c64a; }
.hec-btn--start { background: var(--hec-gold); color: var(--hec-navy-dk) !important; }
.hec-btn--start:hover { background: #f7c64a; }
.hec-btn--cert {
	background: transparent;
	color: var(--hec-navy) !important;
	border-color: var(--hec-navy);
}
.hec-account-courses .hec-btn--start {
	background: var(--hec-navy);
	color: #fff !important;
}
.hec-account-courses .hec-btn--start:hover { background: var(--hec-navy-dk); }
.hec-account-courses .hec-btn--buy {
	background: var(--hec-gold);
	color: var(--hec-navy-dk) !important;
}

/* ---------- Account: My Courses ---------- */
.hec-course-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: 22px;
	margin-top: 8px;
}
.hec-course-card {
	border: 1px solid var(--hec-line);
	border-radius: 12px;
	overflow: hidden;
	background: #fff;
	display: flex;
	flex-direction: column;
	box-shadow: 0 2px 10px rgba(0,36,125, .05);
}
.hec-course-thumb { background: #00247D; }
.hec-course-thumb img {
	width: 100%;
	height: 150px;
	object-fit: contain; /* the square course icon, whole, on its own green, to the right */
	object-position: right center;
	display: block;
	padding: 10px 16px 10px 0;
	box-sizing: border-box;
}
.hec-course-thumb:empty { display: none; }
.hec-course-body { padding: 16px 18px 18px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.hec-course-title {
	font-size: 16px;
	margin: 0;
	line-height: 1.35;
	color: var(--hec-ink);
}
.hec-course-status { font-size: 13px; color: var(--hec-grey); margin: 2px 0 0; }
.hec-course-expiry { font-size: 12px; color: var(--hec-grey); margin: 0; }
.hec-passed { color: var(--hec-navy); }
.hec-status-expired, .hec-status-revoked { color: #C0392B; font-weight: 600; }
.hec-course-actions {
	display: flex;
	gap: 10px;
	margin-top: auto;
	padding-top: 8px;
	flex-wrap: wrap;
}
.hec-course-actions .hec-btn { padding: 9px 16px; font-size: 13px; }
.hec-empty { padding: 20px 0; color: var(--hec-grey); }

/* ---------- Thank-you ---------- */
.hec-thankyou {
	border: 1px solid var(--hec-line);
	border-left: 4px solid var(--hec-gold);
	border-radius: 10px;
	padding: 20px 24px;
	margin: 24px 0;
	background: var(--hec-pale);
}
.hec-thankyou h2 { margin-top: 0; color: var(--hec-navy); }
.hec-thankyou h3 { margin: 18px 0 6px; font-size: 16px; color: inherit; opacity: .9; }
.hec-thankyou-cta { margin: 6px 0 4px; }
.hec-thankyou-cta .hec-start-btn { font-size: 16px; padding: 12px 22px; }
.hec-thankyou-list { list-style: none; margin: 0 0 10px; padding: 0; }
.hec-thankyou-list li {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 8px 0;
	border-bottom: 1px solid rgba(0,36,125, .1);
}
.hec-thankyou-list li:last-child { border-bottom: 0; }

/* ---------- Responsive ---------- */
@media (max-width: 720px) {
	.hec-banner-inner { padding: 10px 16px; gap: 12px; }
	.hec-banner-cta { width: 100%; justify-content: space-between; margin-left: 0; }
	.hec-banner-progress { width: 100%; }
	.hec-banner-title { max-width: 100%; white-space: normal; }
}

/* ---- Bundle picker + bundle cards + shortcode catalogue ---- */
.hec-bundle { --bn:#00247D; --bg:#F5B82E; --bl:#D9E1EF; font-family:'Poppins',system-ui,sans-serif; color:#1A1D21; }
.hec-bundle-head { display:flex; justify-content:space-between; align-items:flex-end; gap:20px; flex-wrap:wrap; margin-bottom:20px; }
.hec-bundle-k { font-size:12px; letter-spacing:.12em; text-transform:uppercase; font-weight:600; color:#1F4BB0; margin:0 0 4px; }
.hec-bundle-title { font-family:'Playfair Display',Georgia,serif; color:var(--bn); font-size:28px; margin:0 0 6px; }
.hec-bundle-sub { margin:0; color:#5C6672; }
.hec-bundle-count { background:#EAF0FA; color:var(--bn); font-weight:600; padding:10px 16px; border-radius:100px; }
.hec-bundle-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:12px; }
.hec-bundle-item { display:flex; gap:12px; align-items:flex-start; background:#fff; border:1.5px solid var(--bl); border-radius:12px; padding:14px 16px; cursor:pointer; transition:border-color .15s, background .15s; position:relative; }
.hec-bundle-item:hover { border-color:var(--bn); }
.hec-bundle-item input { position:absolute; opacity:0; pointer-events:none; }
.hec-bundle-box { flex:0 0 22px; width:22px; height:22px; border:2px solid var(--bn); border-radius:6px; margin-top:2px; position:relative; }
.hec-bundle-item input:checked + .hec-bundle-box { background:var(--bn); }
.hec-bundle-item input:checked + .hec-bundle-box::after { content:""; position:absolute; left:6px; top:2px; width:6px; height:11px; border:solid var(--bg); border-width:0 3px 3px 0; transform:rotate(45deg); }
.hec-bundle-item.is-disabled { opacity:.45; cursor:not-allowed; }
.hec-bundle-name { display:block; font-weight:600; color:var(--bn); line-height:1.35; }
.hec-bundle-meta { display:block; font-size:12.5px; color:#5C6672; margin-top:3px; }
.hec-bundle-foot { display:flex; justify-content:flex-end; align-items:center; gap:18px; margin-top:22px; padding-top:18px; border-top:1px solid var(--bl); }
.hec-bundle-price { font-family:'Playfair Display',Georgia,serif; font-size:26px; color:var(--bn); }
.hec-bundle button[disabled] { opacity:.5; cursor:not-allowed; transform:none; }
.hec-bundles-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:22px; }
.hec-bundle-card { background:linear-gradient(140deg,#001A5C,#1F4BB0); color:#fff; border-radius:16px; padding:26px 24px; display:flex; flex-direction:column; gap:8px; }
.hec-bundle-card-k { font-size:12px; letter-spacing:.12em; text-transform:uppercase; font-weight:600; color:#F5B82E; margin:0; }
.hec-bundle-card h3 { font-family:'Playfair Display',Georgia,serif; color:#fff; margin:0; font-size:22px; }
.hec-bundle-card-x { color:#CFD5E5; margin:0; font-size:14.5px; }
.hec-bundle-card-foot { display:flex; justify-content:space-between; align-items:center; margin-top:auto; padding-top:12px; }
.hec-bundle-card-price { font-family:'Playfair Display',Georgia,serif; font-size:24px; color:#F5B82E; }
.hec-sc-card { background:#fff; border:1px solid #D9E1EF; border-radius:14px; padding:20px; }
.hec-sc-card h3 { margin:0 0 6px; font-size:18px; }
.hec-sc-card h3 a { color:#00247D; text-decoration:none; }
.hec-sc-meta { color:#5C6672; font-size:13px; margin:0 0 8px; }
.hec-sc-foot { display:flex; justify-content:space-between; align-items:center; margin:12px 0 0; }
/* Button text must always be visible regardless of theme link colour rules */
.hec-theme a.hec-btn--start, .hec-course-banner a.hec-btn--start, .hec-dash a.hec-btn--start, .woocommerce a.hec-btn--start { color:#fff !important; }
.hec-theme a.hec-btn--buy, .hec-dash a.hec-btn--buy, .woocommerce a.hec-btn--buy, .woocommerce a.hec-start-btn { color:#001A5C !important; }
/* Course banner sits under the crumb and sticks below the theme header. */
.hec-banner--sticky { top: var(--hec-header-h, 0px) !important; z-index: 50 !important; }

/* Slim banner on small screens. */
@media (max-width: 720px) {
	.hec-banner-inner { padding: 8px 14px; gap: 10px; flex-wrap: nowrap; }
	.hec-banner-title { font-size: 13.5px; line-height: 1.25; display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden; }
	.hec-banner-meta, .hec-banner .hec-progress-label, .hec-banner-hours { display: none; }
	.hec-banner .hec-btn { padding: 8px 14px; font-size: 12.5px; white-space: nowrap; }
	.hec-banner .hec-badge { display: none; }
	.hec-banner .hec-progress { height: 4px; }
}

/* Bundle contents (basket, checkout, order, mini basket) */
.hec-bundle-contents { margin: 6px 0 0 18px; padding: 0; font-size: 13px; line-height: 1.45; }
.hec-bundle-contents li { margin: 0 0 2px; }
.hec-bundle-live { margin: 6px 0 0; font-size: 13px; }
.hec-f2f-cards { display: grid; gap: 22px; }
