/**
 * Front-end styles for wod_custom CPT templates.
 * Intentionally light: spacing, lists, badges and a detail grid that complement
 * the active theme's typography rather than overriding it. All rules are scoped
 * under .wod-single / .wod-archive-* so nothing leaks into the rest of the site.
 */

/* ---- Shared ---- */
.wod-single,
.wod-archive-list {
	margin: 0 auto;
	max-width: 760px;
}

/* The HighendWP title bar repeats the page title inside its breadcrumb (a long
   title then overlaps it). This stylesheet only loads on WOD CPT pages, so hide
   the breadcrumb here and let the title show once, in the bar's <h1>. */
#hb-page-title .breadcrumbs-wrapper {
	display: none;
}

.wod-single-header,
.wod-archive-header {
	margin-bottom: 1.5em;
	padding-bottom: 1em;
	border-bottom: 1px solid rgba( 0, 0, 0, 0.1 );
}

.wod-single-title,
.wod-archive-title {
	margin: 0 0 0.35em;
}

.wod-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5em 1em;
	margin: 0;
	font-size: 0.9em;
	opacity: 0.85;
}

.wod-subtitle {
	margin: 0 0 1em;
	font-size: 1.1em;
	font-style: italic;
	opacity: 0.85;
}

/* ---- Student login form / widget ---- */
.wod-course-login {
	max-width: 360px;
	margin: 2.5em 0 0;
	margin-left: auto;
	padding: 0.85em 1em;
	font-size: 0.9em;
	background: rgba( 0, 0, 0, 0.03 );
	border: 1px solid rgba( 0, 0, 0, 0.1 );
	border-radius: 6px;
}

.wod-course-login h2,
.wod-course-login .wod-login-label {
	font-size: 1em;
}

.wod-login-form .wod-login-label {
	display: block;
	font-weight: 600;
	margin-bottom: 0.25em;
}

.wod-login-form input[type="email"],
.wod-login-form input[type="text"] {
	width: 100%;
	max-width: 320px;
}

.wod-login-form .wod-code-input {
	max-width: 160px;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	font-family: monospace;
}

.wod-login-optional {
	font-weight: 400;
	opacity: 0.6;
}

.wod-login-help {
	font-size: 0.85em;
	opacity: 0.75;
}

.wod-contact-form {
	margin: 2em 0;
	max-width: 480px;
}

.wod-contact-form input[type="text"],
.wod-contact-form input[type="email"],
.wod-contact-form textarea {
	width: 100%;
}

.wod-login-notice {
	padding: 0.6em 0.9em;
	margin-bottom: 1em;
	border-radius: 4px;
	background: rgba( 0, 0, 0, 0.06 );
}

.wod-login-notice--ok,
.wod-login-notice--sent {
	background: rgba( 39, 174, 96, 0.15 );
}

.wod-login-notice--badcode,
.wod-login-notice--invalid {
	background: rgba( 179, 45, 46, 0.12 );
}

.wod-single-content {
	margin-bottom: 2em;
}

.wod-empty,
.wod-note {
	font-style: italic;
	opacity: 0.7;
}

.wod-note {
	margin-top: 0.75em;
}

/* ---- Related-content sections ---- */
.wod-related,
.wod-course-objectives,
.wod-course-learned,
.wod-course-prior,
.wod-session-notes,
.wod-remote-instructions,
.wod-location-address,
.wod-contact-bio {
	margin: 2em 0;
}

.wod-related h2,
.wod-course-objectives h2,
.wod-course-learned h2,
.wod-course-prior h2,
.wod-session-notes h2,
.wod-remote-instructions h2,
.wod-location-address h2 {
	margin-bottom: 0.6em;
	padding-bottom: 0.3em;
	font-size: 1.15em;
	border-bottom: 1px solid rgba( 0, 0, 0, 0.08 );
}

/* ---- Competency chips (learned / prior) ---- */
.wod-competency-list {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5em;
	margin: 0;
	padding: 0;
	list-style: none;
}

.wod-competency-list .wod-competency {
	margin: 0;
}

.wod-competency-list .wod-competency a {
	display: inline-block;
	padding: 0.2em 0.7em;
	font-size: 0.9em;
	border-radius: 999px;
	background: rgba( 0, 0, 0, 0.06 );
	text-decoration: none;
}

/* ---- Competency hub ---- */
.wod-eyebrow {
	margin: 0 0 0.2em;
	font-size: 0.78em;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	opacity: 0.6;
}

/* ---- Series progression / learning pathway ---- */
.wod-progression {
	display: flex;
	flex-wrap: wrap;
	gap: 0.3em 1em;
	flex-basis: 100%;
	margin-top: 0.25em;
	font-size: 0.85em;
	opacity: 0.8;
}

.wod-pathway-series {
	margin: 0 0 0.8em;
	padding-left: 0.8em;
	border-left: 2px solid rgba( 0, 0, 0, 0.08 );
}

.wod-pathway-name {
	margin: 0 0 0.2em;
	font-weight: 600;
}

.wod-pathway-nav {
	display: flex;
	flex-wrap: wrap;
	gap: 0.3em 1.5em;
	margin: 0;
	font-size: 0.92em;
}

/* ---- Relationship lists ---- */
.wod-list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.wod-list-item {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.4em 0.8em;
	padding: 0.6em 0;
	border-bottom: 1px solid rgba( 0, 0, 0, 0.06 );
}

.wod-list-item:last-child {
	border-bottom: 0;
}

.wod-list-link {
	font-weight: 600;
}

.wod-list-desc {
	flex-basis: 100%;
	font-size: 0.9em;
	opacity: 0.8;
}

/* ---- Badges / small meta chips ---- */
.wod-status,
.wod-session-status,
.wod-levels,
.wod-domains,
.wod-contact-role,
.wod-remote-service,
.wod-remote-name,
.wod-session-delivery,
.wod-session-private,
.wod-material-type,
.wod-material-pages,
.wod-course-count,
.wod-material-count,
.wod-contact-count,
.wod-duration,
.wod-location-region,
.wod-session-when,
.wod-session-where {
	display: inline-block;
	padding: 0.15em 0.6em;
	font-size: 0.8em;
	line-height: 1.6;
	border-radius: 999px;
	background: rgba( 0, 0, 0, 0.06 );
}

.wod-status--active {
	background: rgba( 39, 174, 96, 0.15 );
	color: #1e7e44;
}

.wod-status--inactive {
	background: rgba( 0, 0, 0, 0.08 );
	opacity: 0.8;
}

.wod-contact-email {
	font-size: 0.85em;
	font-weight: 600;
}

/* ---- Materials: one per line, name left + Download button right ---- */
.wod-material-list {
	margin: 0.5em 0;
	padding: 0;
	list-style: none;
}
.wod-material-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1em;
	padding: 0.6em 0;
	border-bottom: 1px solid rgba( 0, 0, 0, 0.08 );
}
.wod-material-row:last-child {
	border-bottom: 0;
}
.wod-material-meta {
	min-width: 0;
}
.wod-material-name {
	font-weight: 600;
}
.wod-material-ext {
	margin-left: 0.5em;
	font-size: 0.72em;
	font-weight: 600;
	letter-spacing: 0.04em;
	opacity: 0.5;
}
.wod-material-download {
	flex: 0 0 auto;
	display: inline-block;
	padding: 0.4em 1.1em;
	border-radius: 4px;
	background: #1e7e44;
	color: #fff;
	font-size: 0.85em;
	font-weight: 600;
	text-decoration: none;
	white-space: nowrap;
}
.wod-material-download:hover {
	background: #18643a;
	color: #fff;
}
.wod-material-download--locked {
	background: transparent;
	color: rgba( 0, 0, 0, 0.4 );
	border: 1px solid rgba( 0, 0, 0, 0.15 );
	cursor: not-allowed;
}
.wod-material-download--locked::after {
	content: " 🔒";
}

/* Register (external sign-up) link/button */
.wod-session-register {
	display: inline-block;
	padding: 0.2em 0.7em;
	font-size: 0.85em;
	font-weight: 600;
	border-radius: 4px;
	background: rgba( 39, 174, 96, 0.15 );
	color: #1e7e44;
	text-decoration: none;
}

.wod-session-register-cta {
	margin: 1em 0 1.5em;
}

.wod-help {
	font-size: 0.9em;
	opacity: 0.8;
	margin: 0 0 0.6em;
}

/* ---- Definition / detail lists ---- */
.wod-detail-list {
	display: grid;
	grid-template-columns: minmax( 6em, max-content ) 1fr;
	gap: 0.4em 1em;
	margin: 1.5em 0;
}

.wod-detail-list dt {
	font-weight: 600;
	opacity: 0.75;
}

.wod-detail-list dd {
	margin: 0;
}

/* ---- Location address ---- */
.wod-address {
	font-style: normal;
	line-height: 1.6;
}

.wod-access-code {
	padding: 0.1em 0.4em;
	background: rgba( 0, 0, 0, 0.07 );
	border-radius: 4px;
	font-family: monospace;
}

/* ---- Sponsor logo ---- */
.wod-sponsor-logo {
	margin-bottom: 1.5em;
}

.wod-sponsor-logo img {
	height: auto;
	max-width: 240px;
}

/* ---- Archive items ---- */
.wod-archive-item {
	margin-bottom: 1.25em;
	padding-bottom: 1.25em;
	border-bottom: 1px solid rgba( 0, 0, 0, 0.08 );
}

.wod-archive-item:last-child {
	border-bottom: 0;
}

.wod-archive-item-title {
	margin: 0 0 0.4em;
	font-size: 1.25em;
}

.wod-archive-excerpt {
	margin-top: 0.5em;
	opacity: 0.85;
}

/* ---- Form submit buttons in the WOD shortcode pages (crude, button-like) ---- */
.wod-login-button,
.wod-button,
.wod-student-login button[type="submit"],
.wod-my-enrollments button[type="submit"],
.wod-roster-submit button[type="submit"],
.wod-email-test button[type="submit"] {
	display: inline-block;
	padding: 0.6em 1.4em;
	background: #1e7e44;
	color: #fff;
	border: 0;
	border-radius: 4px;
	font-size: 1rem;
	line-height: 1.2;
	font-weight: 600;
	cursor: pointer;
	text-decoration: none;
	-webkit-appearance: none;
	appearance: none;
}

.wod-login-button:hover,
.wod-button:hover,
.wod-student-login button[type="submit"]:hover,
.wod-my-enrollments button[type="submit"]:hover,
.wod-roster-submit button[type="submit"]:hover,
.wod-email-test button[type="submit"]:hover {
	background: #18643a;
	color: #fff;
}

.wod-login-button:disabled,
.wod-button:disabled {
	opacity: 0.6;
	cursor: default;
}

/* ---- Course-page sign-in box (sits in the right margin) ---- */
.wod-course-login {
	float: right;
	width: 300px;
	max-width: 38%;
	margin: 0 0 1.2em 1.6em;
	padding: 1em 1.2em;
	border: 1px solid rgba(0, 0, 0, 0.12);
	border-radius: 6px;
	background: rgba(0, 0, 0, 0.025);
}
.wod-course-login-title {
	margin: 0 0 0.3em;
	font-size: 1.1em;
}
.wod-course-login-help {
	margin: 0 0 0.8em;
	font-size: 0.9em;
	opacity: 0.85;
}
@media (max-width: 680px) {
	.wod-course-login {
		float: none;
		width: auto;
		max-width: none;
		margin: 0 0 1.2em;
	}
}

/* ---- [wod_courses] catalog grid ---- */
.wod-courses-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.5em;
	margin: 1em 0;
}
.wod-courses-cols-1 .wod-courses-grid { grid-template-columns: 1fr; }
.wod-courses-cols-2 .wod-courses-grid { grid-template-columns: repeat(2, 1fr); }
.wod-courses-cols-4 .wod-courses-grid { grid-template-columns: repeat(4, 1fr); }

@media (max-width: 900px) {
	.wod-courses-grid,
	.wod-courses-cols-3 .wod-courses-grid,
	.wod-courses-cols-4 .wod-courses-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
	.wod-courses-grid,
	.wod-courses-cols-2 .wod-courses-grid,
	.wod-courses-cols-3 .wod-courses-grid,
	.wod-courses-cols-4 .wod-courses-grid { grid-template-columns: 1fr; }
}

.wod-course-card {
	border: 1px solid rgba(0, 0, 0, 0.1);
	border-radius: 6px;
	padding: 1.1em 1.2em;
	background: rgba(0, 0, 0, 0.015);
}
.wod-course-card .edu-title {
	margin: 0 0 0.25em;
	font-size: 1.1em;
	line-height: 1.25;
}
.wod-course-card .edu-subtitle {
	margin: 0 0 0.4em;
	font-style: italic;
	opacity: 0.85;
}
.wod-course-card .wod-course-hours {
	margin: 0 0 0.6em;
	font-size: 0.95em;
}
.wod-course-card .edu-length-value {
	font-weight: 600;
}
.wod-course-card .wod-course-upcoming {
	margin: 0 0 0.6em;
	font-size: 0.9em;
	font-weight: 600;
	color: #1e7e44;
}
.wod-course-card .wod-course-terms {
	margin: 0.8em 0 0;
	font-size: 0.85em;
	opacity: 0.9;
	display: flex;
	flex-direction: column;
	gap: 0.2em;
}
