/**
 * Harvest Companion LMS — student-facing design.
 * Warm, pastoral palette in the spirit of the Companion Pipeline wireframes.
 * Scoped under .hclms so tenant themes are never disturbed.
 */

/* Legacy local names now resolve to the shared design tokens
   (assets/css/design-tokens.css) — one source of truth. */
.hclms {
	--hclms-cream: var(--hc-bg-card);
	--hclms-sand: var(--hc-bg-subtle-deeper);
	--hclms-tan: var(--hc-accent);
	--hclms-tan-deep: var(--hc-accent-hover);
	--hclms-brown: var(--hc-text-secondary);
	--hclms-ink: var(--hc-text-primary);
	--hclms-green: var(--hc-success);
	--hclms-line: var(--hc-border);
}

/* ------- chips ------- */
.hclms-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 18px;
}
.hclms-chip {
	display: inline-block;
	padding: 3px 12px;
	border-radius: 999px;
	background: var(--hclms-tan);
	color: #fff;
	font-size: 0.78em;
	font-weight: 600;
	letter-spacing: 0.02em;
	text-transform: uppercase;
}
.hclms-chip-soft {
	background: var(--hclms-sand);
	color: var(--hclms-brown);
}
.hclms-chip-done {
	background: var(--hclms-green);
}
/* Pipeline identity colors (Companion Pipeline board colors). */
.hclms-chip-welcome_home { background: var(--hc-pipeline-wh); }
.hclms-chip-bible_study { background: var(--hc-pipeline-bs); }
.hclms-chip-discipleship { background: var(--hc-pipeline-disc); }

/* ------- cards ------- */
.hclms-card {
	background: var(--hclms-cream);
	border: 1px solid var(--hclms-line);
	border-radius: 12px;
	padding: 20px 24px;
	margin: 18px 0;
	box-shadow: 0 1px 3px rgba(92, 74, 50, 0.06);
}
.hclms-status-card {
	border-left: 4px solid var(--hclms-tan);
}
.hclms-status-line {
	margin: 0 0 10px;
	font-weight: 600;
	color: var(--hclms-brown);
}
.hclms-complete {
	color: var(--hclms-green);
}

/* ------- buttons ------- */
.hclms-btn {
	display: inline-block;
	padding: 9px 20px;
	border: 1px solid var(--hclms-tan-deep);
	border-radius: 8px;
	background: #fff;
	color: var(--hclms-tan-deep);
	font-weight: 600;
	text-decoration: none;
	cursor: pointer;
	transition: background 0.15s ease, color 0.15s ease;
}
.hclms-btn:hover {
	background: var(--hclms-sand);
	color: var(--hclms-brown);
	text-decoration: none;
}
.hclms-btn-primary {
	background: var(--hclms-tan);
	border-color: var(--hclms-tan);
	color: #fff;
}
.hclms-btn-primary:hover {
	background: var(--hclms-tan-deep);
	border-color: var(--hclms-tan-deep);
	color: #fff;
}

/* ------- progress ------- */
.hclms-progress {
	height: 12px;
	border-radius: 999px;
	background: var(--hclms-sand);
	overflow: hidden;
	margin: 10px 0 4px;
}
.hclms-progress-fill {
	height: 100%;
	border-radius: 999px;
	background: linear-gradient(90deg, var(--hclms-tan), var(--hclms-tan-deep));
	transition: width 0.4s ease;
}
.hclms-progress-label {
	margin: 0 0 12px;
	font-size: 0.85em;
	color: var(--hclms-brown);
}

/* ------- outline ------- */
.hclms-outline-heading {
	margin-top: 28px;
}
.hclms-section-card {
	padding: 16px 24px;
}
.hclms-section-title {
	margin: 0 0 10px;
	color: var(--hclms-brown);
	font-size: 1.05em;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}
.hclms-outline-list {
	list-style: none;
	margin: 0;
	padding: 0;
}
.hclms-outline-list li {
	display: flex;
	align-items: baseline;
	gap: 10px;
	padding: 8px 0;
	border-bottom: 1px dotted var(--hclms-line);
}
.hclms-outline-list li:last-child {
	border-bottom: none;
}
.hclms-tick {
	color: var(--hclms-tan);
	font-weight: 700;
	width: 1.2em;
	flex: none;
}
.hclms-done .hclms-tick {
	color: var(--hclms-green);
}
.hclms-done a {
	color: var(--hclms-brown);
}
.hclms-locked {
	color: #8a7d68;
}
.hclms-lock {
	font-size: 0.85em;
}

/* ------- imported description blocks ------- */
.hclms-chapters {
	background: var(--hc-bg-subtle, #f3f0ea);
	border-radius: var(--hc-radius-lg, 10px);
	padding: var(--hc-space-4, 16px) var(--hc-space-5, 20px);
	margin: 0 0 20px;
}
.hclms-chapters ul { list-style: none; margin: 0; padding: 0; }
.hclms-chapters li { padding: 4px 0; border-bottom: 1px dotted var(--hc-border, #e8e3d8); }
.hclms-chapters li:last-child { border-bottom: none; }
.hclms-chapters strong { color: var(--hc-accent-deep, #8a4f3d); margin-right: 8px; font-variant-numeric: tabular-nums; }
.hclms-resource-btn { margin: 6px 8px 6px 0; }

/* ------- lesson video + materials ------- */
.hclms-video {
	position: relative;
	margin: 0 0 20px;
	border-radius: var(--hc-radius-lg, 10px);
	overflow: hidden;
	box-shadow: var(--hc-shadow-card-hover, 0 2px 4px rgba(28, 26, 21, 0.06), 0 4px 12px rgba(28, 26, 21, 0.08));
	aspect-ratio: 16 / 9;
	background: #000;
}
.hclms-video iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}
.hclms-materials-list {
	list-style: none;
	margin: 0;
	padding: 0;
}
.hclms-materials-list li {
	padding: 6px 0;
	border-bottom: 1px dotted var(--hclms-line);
}
.hclms-materials-list li:last-child { border-bottom: none; }
.hclms-materials-list a {
	text-decoration: none;
	font-weight: 600;
	color: var(--hc-accent-deep, #8a4f3d);
}

/* ------- lesson page ------- */
.hclms-breadcrumb {
	margin-bottom: 6px;
	font-size: 0.9em;
}
.hclms-breadcrumb a {
	color: var(--hclms-tan-deep);
	text-decoration: none;
}
.hclms-gate {
	border-left: 4px solid var(--hclms-tan);
	text-align: center;
	padding: 32px 24px;
}
.hclms-lesson-actions {
	text-align: center;
}
.hclms-lesson-nav {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 16px;
}

/* ------- dashboard / catalog grid ------- */
.hclms-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: 18px;
}
.hclms-course-card h3 {
	margin: 0 0 10px;
	font-size: 1.1em;
}
.hclms-course-card h3 a {
	color: var(--hclms-brown);
	text-decoration: none;
}
.hclms-course-card h3 a:hover {
	color: var(--hclms-tan-deep);
}
.hclms-excerpt {
	font-size: 0.92em;
	color: #6b5d48;
}

/* ==================== Course landing page (template) ==================== */
.hclms-course-landing {
	max-width: 1180px;
	margin: 0 auto;
	padding: var(--hc-space-6) var(--hc-space-5) var(--hc-space-12);
}
.hclms-celebrate-banner {
	background: var(--hc-celebrate-subtle);
	color: var(--hc-celebrate);
	border: 1px solid var(--hc-celebrate);
	border-radius: var(--hc-radius-lg);
	padding: var(--hc-space-4) var(--hc-space-5);
	font-weight: 600;
	font-size: var(--hc-text-lg);
	margin-bottom: var(--hc-space-5);
	text-align: center;
}
.hclms-hero {
	display: grid;
	grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
	gap: var(--hc-space-8);
	align-items: center;
	background: var(--hc-bg-card);
	border: 1px solid var(--hc-border);
	border-radius: var(--hc-radius-xl);
	box-shadow: var(--hc-shadow-card-hover);
	padding: var(--hc-space-8);
	margin-bottom: var(--hc-space-6);
}
.hclms-hero-noimage { grid-template-columns: 1fr; }
.hclms-hero-title {
	font-size: var(--hc-text-3xl);
	margin: var(--hc-space-3) 0;
}
.hclms-hero-tagline {
	color: var(--hc-text-secondary);
	font-size: var(--hc-text-lg);
	line-height: 1.65;
}
.hclms-hero-cta { margin-top: var(--hc-space-5); }
.hclms-btn-lg { padding: 13px 28px; font-size: var(--hc-text-base); }
.hclms-hero-progress { max-width: 320px; margin-top: var(--hc-space-3); }
.hclms-arranged {
	background: var(--hc-bg-subtle);
	border-radius: var(--hc-radius-md);
	padding: var(--hc-space-3) var(--hc-space-4);
	display: inline-block;
}
.hclms-hero-media img {
	width: 100%;
	border-radius: var(--hc-radius-lg);
	box-shadow: var(--hc-shadow-pop);
	display: block;
}
.hclms-also-available { margin-top: var(--hc-space-4); }
.hclms-also-available .hc-label { margin-right: 8px; }
.hclms-also-available a { font-weight: 600; }

.hclms-landing-columns {
	display: grid;
	grid-template-columns: minmax(0, 8fr) minmax(240px, 4fr);
	gap: var(--hc-space-6);
	align-items: start;
}
.hclms-section-count {
	float: right;
	font-size: var(--hc-text-xs);
	font-weight: 600;
	color: var(--hc-text-tertiary);
	text-transform: none;
	letter-spacing: 0;
}

/* Instructor */
.hclms-instructor-row { display: flex; gap: var(--hc-space-4); align-items: flex-start; }
.hclms-instructor-photo { border-radius: var(--hc-radius-round); flex: none; }
.hclms-instructor-name { font-family: var(--hc-font-heading); font-size: var(--hc-text-lg); font-weight: 500; margin: 0 0 4px; }
.hclms-instructor-bio { font-size: var(--hc-text-sm); color: var(--hc-text-secondary); margin: 0; }

/* Related courses / What's next */
.hclms-related-grid { display: flex; flex-direction: column; gap: var(--hc-space-2); }
.hclms-related-card {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: var(--hc-space-3);
	padding: var(--hc-space-3) var(--hc-space-4);
	background: var(--hc-bg-subtle);
	border: 1px solid var(--hc-border);
	border-radius: var(--hc-radius-md);
	text-decoration: none;
	font-weight: 600;
	color: var(--hc-text-primary);
	transition: var(--hc-transition);
}
.hclms-related-card:hover {
	border-color: var(--hc-accent);
	background: var(--hc-accent-subtle);
	color: var(--hc-accent-deep);
}
.hclms-related-go { color: var(--hc-accent); }
.hclms-whats-next {
	border-left: 4px solid var(--hc-celebrate);
	margin-bottom: var(--hc-space-6);
}
.hclms-whats-next h2 { margin: 4px 0 var(--hc-space-4); font-size: var(--hc-text-xl); }
.hclms-up-next { margin: var(--hc-space-2) 0 0; font-size: var(--hc-text-sm); }
.hclms-up-next .hc-label { margin-right: 6px; }

@media (max-width: 880px) {
	.hclms-hero { grid-template-columns: 1fr; padding: var(--hc-space-5); }
	.hclms-hero-media { order: -1; }
	.hclms-landing-columns { grid-template-columns: 1fr; }
}

/* ==================== Tenant church home page ==================== */
.hclms-home {
	max-width: 1180px;
	margin: 0 auto;
	padding: var(--hc-space-8) var(--hc-space-5) 0;
}

/* Hero */
.hclms-home-hero {
	text-align: center;
	padding: var(--hc-space-12) var(--hc-space-4);
}
.hclms-home-logo {
	max-height: 96px;
	max-width: 220px;
	margin: 0 auto var(--hc-space-5);
	display: block;
	border-radius: var(--hc-radius-lg);
}
.hclms-home-name {
	font-size: clamp(2rem, 5vw, 3.2rem);
	margin: 0 0 var(--hc-space-3);
}
.hclms-home-welcome {
	font-size: var(--hc-text-lg);
	color: var(--hc-text-secondary);
	max-width: 560px;
	margin: 0 auto var(--hc-space-6);
}
.hclms-home-ctas {
	display: flex;
	gap: var(--hc-space-3);
	justify-content: center;
	flex-wrap: wrap;
}

/* Sections */
.hclms-home-section { padding: var(--hc-space-6) 0; }
.hclms-home-section-head {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: var(--hc-space-4);
	flex-wrap: wrap;
	margin-bottom: var(--hc-space-3);
}
.hclms-home-section .hc-label { font-size: var(--hc-text-sm); margin: 0 0 var(--hc-space-3); }

/* Course cards */
.hclms-home-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: var(--hc-space-5);
}
.hclms-home-card {
	padding: 0;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	transition: var(--hc-transition);
}
.hclms-home-card:hover { box-shadow: var(--hc-shadow-card-hover); }
.hclms-home-card-media {
	display: block;
	aspect-ratio: 16 / 9;
	background: var(--hc-bg-subtle-deeper);
	overflow: hidden;
}
.hclms-home-card-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.hclms-home-card-media-empty {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 100%;
	font-size: 34px;
	color: var(--hc-border-strong);
}
.hclms-home-card-body {
	padding: var(--hc-space-4) var(--hc-space-5) var(--hc-space-5);
	display: flex;
	flex-direction: column;
	gap: var(--hc-space-2);
	flex: 1;
}
.hclms-home-card-body h3 { margin: 0; font-size: var(--hc-text-lg); }
.hclms-home-card-body h3 a { color: var(--hc-text-primary); text-decoration: none; }
.hclms-home-card-body h3 a:hover { color: var(--hc-accent-hover); }
.hclms-home-card-body .hclms-btn { margin-top: auto; align-self: flex-start; }
.hclms-home-card-body .hclms-chips { margin: 0; }

/* Filters */
.hclms-pipeline-filter { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: var(--hc-space-5); }
.hclms-filter-chip {
	padding: 5px 16px;
	border-radius: var(--hc-radius-pill);
	border: 1px solid var(--hc-border-strong);
	background: var(--hc-bg-card);
	color: var(--hc-text-secondary);
	font-size: var(--hc-text-sm);
	font-weight: 600;
	text-decoration: none;
	transition: var(--hc-transition);
}
.hclms-filter-chip:hover { border-color: var(--hc-accent); color: var(--hc-accent-deep); }
.hclms-filter-chip.is-current { background: var(--hc-text-primary); border-color: var(--hc-text-primary); color: #fff; }
.hclms-filter-chip.is-current.hclms-filter-welcome_home { background: var(--hc-pipeline-wh); border-color: var(--hc-pipeline-wh); }
.hclms-filter-chip.is-current.hclms-filter-bible_study { background: var(--hc-pipeline-bs); border-color: var(--hc-pipeline-bs); }
.hclms-filter-chip.is-current.hclms-filter-discipleship { background: var(--hc-pipeline-disc); border-color: var(--hc-pipeline-disc); }
.hclms-home-empty { text-align: center; padding: var(--hc-space-8); }

/* About */
.hclms-home-about-card {
	font-size: var(--hc-text-lg);
	line-height: 1.75;
	padding: var(--hc-space-6) var(--hc-space-8);
}

/* Footer band */
.hclms-home-footer {
	margin-top: var(--hc-space-8);
	padding: var(--hc-space-6) var(--hc-space-2) var(--hc-space-8);
	border-top: 1px solid var(--hc-border);
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: var(--hc-space-5);
	flex-wrap: wrap;
	font-size: var(--hc-text-sm);
	color: var(--hc-text-secondary);
}
.hclms-home-footer a { color: var(--hc-accent-deep); text-decoration: none; }
.hclms-home-footer-links { display: flex; gap: var(--hc-space-4); flex-wrap: wrap; }
.hclms-powered {
	width: 100%;
	margin: var(--hc-space-4) 0 0;
	font-size: var(--hc-text-xs);
	color: var(--hc-text-tertiary);
	text-align: center;
}

@media (max-width: 600px) {
	.hclms-home-hero { padding: var(--hc-space-8) var(--hc-space-2); }
	.hclms-home-ctas .hclms-btn { width: 100%; justify-content: center; text-align: center; }
	.hclms-home-footer { flex-direction: column; }
}

/* ==================== Enrollment + set-password pages ==================== */
.hclms-enroll-page,
.hclms-setpw-page {
	max-width: 880px;
	margin: 0 auto;
	padding: var(--hc-space-8) var(--hc-space-5) var(--hc-space-12);
}
.hclms-enroll-title { margin: 4px 0 2px; font-size: var(--hc-text-2xl); }
.hclms-enroll-church { color: var(--hc-text-secondary); margin: 0 0 var(--hc-space-5); }
.hclms-enroll-panels {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--hc-space-5);
	align-items: start;
}
.hclms-enroll-panel h2 { margin: 0 0 4px; font-size: var(--hc-text-lg); }
.hclms-enroll-panel form { display: flex; flex-direction: column; gap: 6px; margin-top: var(--hc-space-3); }
.hclms-enroll-panel label { margin-top: var(--hc-space-2); }
.hclms-enroll-panel .hclms-btn { margin-top: var(--hc-space-4); justify-content: center; }
.hclms-hp { position: absolute !important; left: -9999px !important; height: 0; overflow: hidden; }
.hclms-form-error {
	background: var(--hc-danger-subtle);
	color: var(--hc-danger);
	border-radius: var(--hc-radius-md);
	padding: var(--hc-space-3) var(--hc-space-4);
	font-weight: 600;
	margin-bottom: var(--hc-space-4);
}
.hclms-enroll-confirm { text-align: center; padding: var(--hc-space-8); }
.hclms-confirm-icon { font-size: 44px; margin-bottom: var(--hc-space-2); }
.hclms-setpw-card { max-width: 480px; margin: 0 auto; }
.hclms-setpw-card form { display: flex; flex-direction: column; gap: 6px; }
.hclms-setpw-card label { margin-top: var(--hc-space-2); }
.hclms-setpw-card .hclms-btn { margin-top: var(--hc-space-4); justify-content: center; }
.hclms-resend-form { display: flex; flex-direction: column; gap: 8px; max-width: 320px; margin: var(--hc-space-4) auto 0; }
.hclms-auth-logo { max-height: 64px; max-width: 180px; display: block; margin: 0 0 var(--hc-space-3); border-radius: var(--hc-radius-md); }
.hclms-remember { display: flex; align-items: center; gap: 8px; margin-top: var(--hc-space-3); font-weight: 500; }
.hclms-auth-links { display: flex; flex-direction: column; gap: 6px; margin-top: var(--hc-space-5); font-size: var(--hc-text-sm); }
@media (max-width: 720px) {
	.hclms-enroll-panels { grid-template-columns: 1fr; }
}

/* ==================== Student lesson page (template) ==================== */
.hclms-lesson-page {
	max-width: 1280px;
	margin: 0 auto;
	padding: var(--hc-space-6) var(--hc-space-5) var(--hc-space-12);
}

/* Header bar */
.hclms-lesson-header {
	display: flex;
	align-items: center;
	gap: var(--hc-space-6);
	flex-wrap: wrap;
	background: var(--hc-bg-card);
	border: 1px solid var(--hc-border);
	border-radius: var(--hc-radius-lg);
	box-shadow: var(--hc-shadow-card);
	padding: var(--hc-space-3) var(--hc-space-5);
	margin-bottom: var(--hc-space-4);
}
.hclms-lesson-header-main { flex: 1; min-width: 200px; }
.hclms-lesson-header-main .hc-label { margin: 0; }
.hclms-lesson-course-link {
	font-family: var(--hc-font-heading);
	font-size: var(--hc-text-lg);
	font-weight: 500;
	color: var(--hc-text-primary);
	text-decoration: none;
}
.hclms-lesson-course-link:hover { color: var(--hc-accent-hover); }
.hclms-lesson-header-progress { width: 220px; }
.hclms-lesson-header-progress .hclms-progress { margin: 0 0 2px; }
.hclms-lesson-header-progress .hclms-progress-label { margin: 0; font-size: var(--hc-text-xs); }

/* Language switcher */
.hclms-lang-switch { display: flex; gap: 6px; flex-wrap: wrap; }
.hclms-lang {
	padding: 3px 12px;
	border-radius: var(--hc-radius-pill);
	font-size: var(--hc-text-xs);
	font-weight: 600;
	text-decoration: none;
	border: 1px solid var(--hc-border-strong);
	color: var(--hc-text-secondary);
	background: var(--hc-bg-card);
	transition: var(--hc-transition);
}
.hclms-lang:hover { border-color: var(--hc-accent); color: var(--hc-accent-deep); }
.hclms-lang.is-current { background: var(--hc-accent); border-color: var(--hc-accent); color: #fff; }

.hclms-preview-notice {
	background: var(--hc-info-subtle);
	color: var(--hc-info);
	border-radius: var(--hc-radius-md);
	padding: var(--hc-space-2) var(--hc-space-4);
	font-size: var(--hc-text-sm);
	font-weight: 600;
	margin-bottom: var(--hc-space-4);
}
.hclms-draft-chip {
	display: inline-block;
	margin-left: 6px;
	padding: 0 8px;
	border-radius: var(--hc-radius-pill);
	background: var(--hc-warning-subtle);
	color: var(--hc-warning);
	font-size: 10px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
}
.hclms-approx-notice {
	background: var(--hc-warning-subtle);
	color: var(--hc-warning);
	border-radius: var(--hc-radius-md);
	padding: var(--hc-space-2) var(--hc-space-4);
	font-size: var(--hc-text-sm);
	font-weight: 600;
	margin-bottom: var(--hc-space-4);
}

/* Two-column layout */
.hclms-lesson-layout {
	display: grid;
	grid-template-columns: minmax(220px, 25%) 1fr;
	gap: var(--hc-space-6);
	align-items: start;
}

/* Outline rail */
.hclms-rail {
	position: sticky;
	top: 96px;
	max-height: calc(100vh - 120px);
	overflow-y: auto;
	display: flex;
	flex-direction: column;
	gap: var(--hc-space-2);
}
.hclms-rail-section {
	background: var(--hc-bg-card);
	border: 1px solid var(--hc-border);
	border-radius: var(--hc-radius-lg);
	box-shadow: var(--hc-shadow-card);
	overflow: hidden;
}
.hclms-rail-section summary {
	cursor: pointer;
	padding: var(--hc-space-3) var(--hc-space-3);
	font-size: var(--hc-text-sm);
	list-style: none;
	background: var(--hc-bg-subtle);
	display: flex;
	align-items: baseline;
	gap: 6px;
	flex-wrap: wrap;
}
.hclms-rail-sec-title {
	font-weight: 700;
	color: var(--hc-text-primary);
}
.hclms-rail-sec-count {
	font-size: var(--hc-text-xs);
	font-weight: 600;
	color: var(--hc-text-tertiary);
	white-space: nowrap;
}
.hclms-rail-section summary::-webkit-details-marker { display: none; }
.hclms-rail-section[open] summary { border-bottom: 1px solid var(--hc-border); }
.hclms-rail-lessons { list-style: none; margin: 0; padding: 4px 0; }
.hclms-rail-lessons li {
	display: flex;
	align-items: baseline;
	gap: 8px;
	padding: 7px var(--hc-space-3);
	font-size: var(--hc-text-sm);
	border-left: 3px solid transparent;
}
.hclms-rail-lessons li a { color: var(--hc-text-primary); text-decoration: none; }
.hclms-rail-lessons li a:hover { color: var(--hc-accent-hover); }
.hclms-rail-lessons li.is-current {
	background: var(--hc-accent-subtle);
	border-left-color: var(--hc-accent);
}
.hclms-rail-lessons li.is-current a { font-weight: 700; color: var(--hc-accent-deep); }
.hclms-rail-lessons li.is-done .hclms-tick { color: var(--hc-success); }

/* Content pane */
.hclms-pane { min-width: 0; }
.hclms-lesson-title {
	font-size: var(--hc-text-2xl);
	margin: 0 0 var(--hc-space-4);
}
.hclms-lesson-body {
	font-size: var(--hc-text-lg);
	line-height: 1.75;
	margin-bottom: var(--hc-space-5);
}

/* Comments (Class discussion) */
.hclms-comments { margin-top: var(--hc-space-6); }
.hclms-comments .comment-list { list-style: none; margin: 0; padding: 0; }
.hclms-comments .comment-list .comment {
	background: var(--hc-bg-card);
	border: 1px solid var(--hc-border);
	border-radius: var(--hc-radius-lg);
	padding: var(--hc-space-3) var(--hc-space-4);
	margin-bottom: var(--hc-space-3);
}
.hclms-comments .comment-list .children { list-style: none; margin: var(--hc-space-3) 0 0 var(--hc-space-5); padding: 0; }
.hclms-comments .comment-author .fn { font-style: normal; font-weight: 700; font-size: var(--hc-text-sm); }
.hclms-comments .comment-metadata { font-size: var(--hc-text-xs); }
.hclms-comments .comment-metadata a { color: var(--hc-text-tertiary); text-decoration: none; }
.hclms-comments .comment-respond textarea {
	width: 100%;
	border: 1px solid var(--hc-border);
	border-radius: var(--hc-radius-md);
	background: var(--hc-bg-card);
	padding: var(--hc-space-3);
}
.hclms-comments .comment-respond input[type='submit'],
.hclms-comments .form-submit .submit {
	background: var(--hc-accent);
	border: 1px solid var(--hc-accent);
	border-radius: var(--hc-radius-md);
	color: #fff;
	font-weight: 600;
	padding: 9px 20px;
	cursor: pointer;
	transition: var(--hc-transition);
}
.hclms-comments .comment-respond input[type='submit']:hover { background: var(--hc-accent-hover); }
.hclms-comments .comment-reply-title,
.hclms-comments .comments-title {
	font-family: var(--hc-font-heading);
	font-weight: 500;
	font-size: var(--hc-text-lg);
}

@media (max-width: 880px) {
	.hclms-lesson-layout { grid-template-columns: 1fr; }
	.hclms-rail { position: static; max-height: none; order: 2; }
	.hclms-pane { order: 1; }
}

@media (max-width: 480px) {
	.hclms-card { padding: 16px; }
	.hclms-lesson-nav { flex-direction: column; }
	.hclms-lesson-nav .hclms-btn { text-align: center; }
	.hclms-lesson-header { gap: var(--hc-space-3); }
}

/* ------- quiz (P2.1) ------- */
.hclms-quiz-card { border-left: 4px solid var(--hclms-tan); }
.hclms-quiz-meta {
	color: var(--hclms-brown);
	font-size: 0.92em;
	margin: 0 0 14px;
}
.hclms-quiz-banner {
	padding: 10px 16px;
	border-radius: 8px;
	font-weight: 600;
	margin: 0 0 16px;
}
.hclms-quiz-banner-pass {
	background: var(--hc-success-subtle, #e8f0e9);
	color: var(--hclms-green);
	border: 1px solid var(--hclms-green);
}
.hclms-quiz-banner-fail {
	background: var(--hc-danger-subtle, #f7e9e5);
	color: var(--hc-danger, #a54a32);
	border: 1px solid var(--hc-danger, #a54a32);
}
.hclms-quiz-score-line {
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
	font-weight: 600;
	color: var(--hclms-ink);
	margin: 0 0 16px;
}
.hclms-quiz-attempts {
	font-weight: 400;
	color: var(--hclms-brown);
	font-size: 0.9em;
}
.hclms-quiz-questions,
.hclms-quiz-review {
	margin: 0 0 18px;
	padding-left: 22px;
	display: flex;
	flex-direction: column;
	gap: 18px;
}
.hclms-quiz-prompt {
	font-weight: 600;
	margin: 0 0 8px;
	color: var(--hclms-ink);
}
.hclms-quiz-option {
	display: flex;
	align-items: baseline;
	gap: 8px;
	padding: 6px 10px;
	border-radius: 8px;
	cursor: pointer;
}
.hclms-quiz-option:hover { background: var(--hclms-sand); }
.hclms-quiz-blank {
	width: 100%;
	max-width: 380px;
	padding: 8px 12px;
	border: 1px solid var(--hclms-line);
	border-radius: 8px;
}
.hclms-quiz-options-plain { color: var(--hclms-brown); margin: 0; }
.hclms-quiz-hint { color: var(--hclms-brown); font-size: 0.9em; margin: 0; }
.hclms-quiz-review li.is-right .hclms-quiz-given { color: var(--hclms-green); }
.hclms-quiz-review li.is-wrong .hclms-quiz-given { color: var(--hc-danger, #a54a32); }
.hclms-quiz-given { margin: 0 0 4px; }
.hclms-quiz-correct { margin: 0; color: var(--hclms-ink); }
.hclms-next-locked {
	opacity: 0.75;
	cursor: not-allowed;
	background: var(--hclms-sand);
	color: var(--hclms-brown);
}

/* ------- certificate verify page (P2.2) ------- */
.hclms-verify-check {
	color: var(--hclms-green);
	font-weight: 600;
	margin: 0 0 18px;
}
.hclms-verify-facts {
	margin: 0 0 22px;
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 6px 18px;
}
.hclms-verify-facts dt {
	color: var(--hclms-brown);
	font-size: 0.82em;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	align-self: baseline;
}
.hclms-verify-facts dd {
	margin: 0;
	color: var(--hclms-ink);
	font-weight: 600;
}
.hclms-verify-code { letter-spacing: 2px; font-family: ui-monospace, Menlo, monospace; }

/* =====================================================================
 * Network landing page (harvestcompanion.com) + /connect interest form
 * =================================================================== */
/* Full-bleed brand surfaces: suppress the theme's own chrome. */
body.hclms-net-page #masthead,
body.hclms-net-page #colophon { display: none; }

.hclms-net {
	max-width: 1040px;
	margin: 0 auto;
	padding: var(--hc-space-4) var(--hc-space-4) var(--hc-space-12);
	font-family: var(--hc-font-body);
	color: var(--hc-text-primary);
}
.hclms-net-top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--hc-space-4);
	padding: var(--hc-space-3) 0 var(--hc-space-6);
}
.hclms-net-wordmark {
	font-family: var(--hc-font-heading);
	font-size: var(--hc-text-lg);
	font-weight: 600;
	letter-spacing: var(--hc-heading-spacing);
}
.hclms-net-topnav {
	display: flex;
	align-items: center;
	gap: var(--hc-space-5);
}
.hclms-net-topnav > a:not(.hclms-btn) {
	color: var(--hc-text-secondary);
	text-decoration: none;
	font-weight: 500;
}
.hclms-net-topnav > a:not(.hclms-btn):hover { color: var(--hc-accent-deep); }

.hclms-net-hero {
	text-align: center;
	max-width: 720px;
	margin: 0 auto;
	padding: var(--hc-space-8) 0 var(--hc-space-12);
}
.hclms-net-hero h1 {
	font-family: var(--hc-font-heading);
	font-size: var(--hc-text-3xl);
	font-weight: 500;
	letter-spacing: var(--hc-heading-spacing);
	line-height: var(--hc-leading-tight);
	margin: var(--hc-space-3) 0 var(--hc-space-4);
}
.hclms-net-lead {
	font-size: var(--hc-text-lg);
	color: var(--hc-text-secondary);
	line-height: var(--hc-leading-body);
	margin: 0 0 var(--hc-space-6);
}
.hclms-net-ctas {
	display: flex;
	justify-content: center;
	gap: var(--hc-space-3);
	flex-wrap: wrap;
}

.hclms-net-section { padding: var(--hc-space-6) 0; }
.hclms-net-pillars {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--hc-space-4);
}
.hclms-net-pillar { padding: var(--hc-space-6); }
.hclms-net-pillar h3 {
	font-family: var(--hc-font-heading);
	font-size: var(--hc-text-xl);
	margin: var(--hc-space-2) 0 var(--hc-space-2);
}
.hclms-net-pillar p { margin: 0; color: var(--hc-text-secondary); }
.hclms-net-pillar-mark { color: var(--hc-accent); font-size: var(--hc-text-xl); }

.hclms-net-products {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--hc-space-4);
	margin-top: var(--hc-space-3);
}
.hclms-net-product {
	padding: var(--hc-space-8);
	display: flex;
	flex-direction: column;
	gap: var(--hc-space-3);
}
.hclms-net-product h2 {
	font-family: var(--hc-font-heading);
	font-size: var(--hc-text-2xl);
	font-weight: 500;
	margin: 0;
}
.hclms-net-product-tag {
	margin: 0;
	color: var(--hc-accent-deep);
	font-weight: 600;
}
.hclms-net-product > p { margin: 0; color: var(--hc-text-secondary); }
.hclms-net-badge-live {
	background: var(--hc-success-subtle);
	color: var(--hc-success);
	align-self: flex-start;
}
.hclms-net-badge-soon {
	background: var(--hc-celebrate-subtle);
	color: var(--hc-celebrate);
	align-self: flex-start;
}
.hclms-net-checks {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: var(--hc-space-2);
}
.hclms-net-checks li { padding-left: 26px; position: relative; }
.hclms-net-checks li::before {
	content: '✓';
	position: absolute;
	left: 4px;
	color: var(--hc-success);
	font-weight: 700;
}
.hclms-net-product-ctas {
	display: flex;
	gap: var(--hc-space-3);
	flex-wrap: wrap;
	margin-top: auto;
	padding-top: var(--hc-space-3);
}

.hclms-net-family {
	margin-top: var(--hc-space-6);
	padding-top: var(--hc-space-4);
	border-top: 1px solid var(--hc-border);
}
.hclms-net-family .hc-label { margin: 0 0 var(--hc-space-2); }
.hclms-net-family ul {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: var(--hc-space-1);
	color: var(--hc-text-secondary);
	font-size: var(--hc-text-sm);
}
.hclms-net-family strong { color: var(--hc-text-primary); }

.hclms-net-pricing-card {
	text-align: center;
	padding: var(--hc-space-12) var(--hc-space-8);
	background: var(--hc-accent-subtle);
	border-color: transparent;
}
.hclms-net-pricing-card h2 {
	font-family: var(--hc-font-heading);
	font-size: var(--hc-text-2xl);
	font-weight: 500;
	margin: 0 0 var(--hc-space-3);
}
.hclms-net-pricing-card p {
	max-width: 560px;
	margin: 0 auto var(--hc-space-5);
	color: var(--hc-text-secondary);
}

.hclms-net-footer {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: var(--hc-space-4);
	flex-wrap: wrap;
	border-top: 1px solid var(--hc-border);
	margin-top: var(--hc-space-8);
	padding-top: var(--hc-space-6);
	color: var(--hc-text-secondary);
}
.hclms-net-footer a { color: var(--hc-accent-deep); text-decoration: none; }
.hclms-net-footer-links { display: flex; gap: var(--hc-space-4); }
.hclms-net-verse {
	width: 100%;
	margin: var(--hc-space-4) 0 0;
	font-family: var(--hc-font-heading);
	font-style: italic;
	color: var(--hc-text-tertiary);
}

/* ------------------------------- /connect ------------------------- */
.hclms-net-connect { max-width: 560px; }
.hclms-net-connect-card { padding: var(--hc-space-8); margin-top: var(--hc-space-6); }
.hclms-net-connect-card h1 {
	font-family: var(--hc-font-heading);
	font-size: var(--hc-text-2xl);
	font-weight: 500;
	margin: var(--hc-space-1) 0 var(--hc-space-2);
}
.hclms-net-connect-intro { color: var(--hc-text-secondary); margin: 0 0 var(--hc-space-5); }
.hclms-net-connect-card form {
	display: flex;
	flex-direction: column;
	gap: 6px;
}
.hclms-net-connect-card form label { margin-top: var(--hc-space-2); font-weight: 500; }
.hclms-net-connect-boxes {
	border: 1px solid var(--hc-border);
	border-radius: var(--hc-radius-md);
	padding: var(--hc-space-4);
	margin: var(--hc-space-4) 0 var(--hc-space-2);
	display: flex;
	flex-direction: column;
	gap: var(--hc-space-3);
}
.hclms-net-connect-boxes legend {
	padding: 0 var(--hc-space-2);
	font-weight: 600;
	font-size: var(--hc-text-sm);
	color: var(--hc-text-secondary);
}
.hclms-net-connect-boxes label {
	display: flex;
	gap: var(--hc-space-2);
	align-items: flex-start;
	margin: 0;
	font-weight: 400;
}
.hclms-net-connect-boxes input[type='checkbox'],
.hclms-net-connect-boxes input[type='radio'] { margin-top: 4px; accent-color: var(--hc-accent); }
.hclms-net-connect-optin {
	display: flex;
	gap: var(--hc-space-2);
	align-items: flex-start;
	margin: 0 0 var(--hc-space-2);
	font-weight: 400;
	color: var(--hc-text-secondary);
}
.hclms-net-connect-optin input { margin-top: 4px; accent-color: var(--hc-accent); }
.hclms-net-connect-card .hclms-btn-lg { justify-content: center; margin-top: var(--hc-space-3); }
.hclms-net-connect-fine {
	margin: var(--hc-space-2) 0 0;
	font-size: var(--hc-text-sm);
	color: var(--hc-text-tertiary);
	text-align: center;
}
.hclms-net-connect-thanks { text-align: center; }
.hclms-net-connect-thanks .hclms-btn { margin-top: var(--hc-space-3); }
.hclms-net-connect-back { text-align: center; margin: var(--hc-space-5) 0 0; }
.hclms-net-connect-back a { color: var(--hc-text-secondary); text-decoration: none; }

@media (max-width: 860px) {
	.hclms-net-pillars, .hclms-net-products { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
	.hclms-net-hero { padding: var(--hc-space-6) 0 var(--hc-space-8); }
	.hclms-net-hero h1 { font-size: var(--hc-text-2xl); }
	.hclms-net-ctas .hclms-btn, .hclms-net-product-ctas .hclms-btn { width: 100%; justify-content: center; text-align: center; }
	.hclms-net-top { flex-direction: column; align-items: flex-start; }
}
