.nvhe-portal {
	--nvhe-ink: #242126;
	--nvhe-plum: #5a3f58;
	--nvhe-cream: #fbf8f2;
	--nvhe-border: #ded6ca;
	--nvhe-white: #fff;
	max-width: 1080px;
	margin: 0 auto;
	padding: clamp(24px, 5vw, 64px) 18px;
	color: var(--nvhe-ink);
}

.nvhe-portal * { box-sizing: border-box; }
.nvhe-portal-kicker,
.nvhe-portal-card-label {
	margin: 0 0 8px;
	color: var(--nvhe-plum);
	font-size: .82rem;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.nvhe-portal h2, .nvhe-portal h3 { color: var(--nvhe-ink); line-height: 1.2; }
.nvhe-portal-panel,
.nvhe-portal-notice {
	border: 1px solid var(--nvhe-border);
	border-radius: 18px;
	background: var(--nvhe-cream);
	padding: clamp(20px, 4vw, 34px);
	box-shadow: 0 10px 30px rgba(36, 33, 38, .07);
}

.nvhe-portal-notice { margin: 0 0 20px; background: #fff; border-left: 6px solid var(--nvhe-plum); }
.nvhe-portal-signin { max-width: 680px; }
.nvhe-portal label { display: block; margin: 22px 0 7px; font-weight: 800; }
.nvhe-portal input[type="email"] {
	width: 100%;
	min-height: 50px;
	padding: 11px 14px;
	border: 2px solid #756b75;
	border-radius: 10px;
	background: #fff;
	color: var(--nvhe-ink);
	font-size: 1rem;
}

.nvhe-portal input:focus,
.nvhe-portal button:focus { outline: 3px solid #caa9c7; outline-offset: 3px; }
.nvhe-portal-button,
.nvhe-portal-link-button {
	min-height: 48px;
	border: 2px solid var(--nvhe-ink) !important;
	border-radius: 999px !important;
	cursor: pointer;
	font-size: 1rem !important;
	font-weight: 800 !important;
	line-height: 1.25 !important;
	opacity: 1 !important;
}

.nvhe-portal-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-top: 18px;
	padding: 12px 22px !important;
	background-color: var(--nvhe-ink) !important;
	background-image: none !important;
	color: #fff !important;
}

.nvhe-portal-button:hover { background-color: var(--nvhe-plum) !important; border-color: var(--nvhe-plum) !important; }
.nvhe-portal-link-button { padding: 10px 18px !important; background-color: #fff !important; background-image: none !important; color: var(--nvhe-ink) !important; }
.nvhe-portal-reassurance,
.nvhe-portal-help { margin-top: 24px; }
.nvhe-portal-browse { margin-top: 18px; }
.nvhe-portal-browse a,
.nvhe-portal-secondary-link { color: var(--nvhe-plum); font-weight: 800; text-decoration: underline; text-underline-offset: 3px; }
.nvhe-portal-sent { max-width: 680px; }
.nvhe-portal-sent h2 { margin-top: 0; }
.nvhe-portal-sent ol { margin: 18px 0; padding-left: 24px; }
.nvhe-portal-sent li + li { margin-top: 9px; }
.nvhe-portal-library-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; margin-bottom: 24px; }
.nvhe-portal-library-head h2 { margin: 0 0 5px; }
.nvhe-portal-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 22px; }
.nvhe-portal-card { overflow: hidden; border: 1px solid var(--nvhe-border); border-radius: 18px; background: var(--nvhe-white); box-shadow: 0 10px 28px rgba(36, 33, 38, .08); }
.nvhe-portal-image img { display: block; width: 100%; aspect-ratio: 16/9; object-fit: cover; }
.nvhe-portal-card-body { padding: 22px; }
.nvhe-portal-card h3 { margin: 0 0 10px; font-size: 1.35rem; }

.single-nvhe_workshop .nvhe-rw-module-item > div { min-width: 0; }
.single-nvhe_workshop .nvhe-rw-module-bio,
.single-nvhe_workshop .nvhe-rw-module-bio > div,
.single-nvhe_workshop .nvhe-rw-module-bio a { overflow-wrap: anywhere; word-break: break-word; }
.single-nvhe_workshop .nvhe-rw-module-bio { margin-top: 9px; }
.single-nvhe_workshop .nvhe-rw-module-bio summary { color: #5a3f58; cursor: pointer; font-weight: 800; }
.single-nvhe_workshop .nvhe-rw-module-bio > div { margin-top: 8px; }
.single-nvhe_workshop .nvhe-rw-module-bio a { color: #5a3f58; text-decoration: underline; text-underline-offset: 2px; }

.nvhe-rw-lesson-panel a {
	color: #5a3f58;
	font-weight: 700;
	overflow-wrap: anywhere;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.nvhe-rw-lessons-toggle { display: none; }

@media (max-width: 600px) {
	.nvhe-portal { padding-inline: 14px; }
	.nvhe-portal-library-head { display: block; }
	.nvhe-portal-library-head form { margin-top: 14px; }
	.nvhe-portal-button { width: 100%; }
}

@media (max-width: 760px) {
	.single-nvhe_workshop .nvhe-rw-wrap { max-width: 100%; overflow-x: clip; }
	.single-nvhe_workshop .nvhe-rw-module-item { grid-template-columns: 72px minmax(0, 1fr); gap: 10px; }
	.single-nvhe_workshop .nvhe-rw-module-thumb { width: 72px !important; }
	.single-nvhe_workshop .nvhe-rw-module-bio { font-size: .94rem; }
	.nvhe-rw-package { margin-top: 18px; }
	.nvhe-rw-lessons { padding: 10px; }
	.nvhe-rw-lessons > h2 { display: none; }
	.nvhe-rw-lessons-toggle {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 12px;
		width: 100%;
		min-height: 48px;
		border: 2px solid #5a3f58;
		border-radius: 10px;
		background: #fff;
		color: #242126;
		padding: 10px 12px;
		font: inherit;
		font-weight: 800;
		text-align: left;
	}
	.nvhe-rw-lessons-toggle::after {
		content: "+";
		flex: 0 0 auto;
		font-size: 1.4rem;
		line-height: 1;
	}
	.nvhe-rw-lessons-toggle[aria-expanded="true"]::after { content: "−"; }
	.nvhe-rw-lessons-toggle:focus { outline: 3px solid #caa9c7; outline-offset: 2px; }
	.nvhe-rw-lessons ol { margin-top: 8px; }
}

@media (prefers-reduced-motion: reduce) {
	.nvhe-portal * { scroll-behavior: auto !important; transition: none !important; }
}
