/* Podcast Landing Page — scoped port of redesigns/kadampa.org/living-clarity.html.
   Everything lives under #nkt-pl / body.nkt-pl; classes prefixed nkt-pl-. No Tailwind.
   NOTE: every component rule is #nkt-pl-prefixed on purpose — GeneratePress styles
   elements globally (button/h2/a/input at high reach) and the generic in-scope reset
   below uses an ID selector, so component rules need ID specificity too. */

.nkt-pl-main {
	--nkt-pl-brand: #f5761a;
	--nkt-pl-brand-dark: #ed6e00;
	/* Darkened brand hue for small text / white-on-fill — ≥4.5:1 on white AND the
	   beige section backgrounds (#f5761a itself is only 2.8:1). */
	--nkt-pl-brand-a11y: #b95200;
	--nkt-pl-beige: #fdf6ee;
	--nkt-pl-warm: #fffbf7;
	--nkt-pl-radius: 0.75rem;
	--nkt-pl-serif: 'Playfair Display', Georgia, serif;
	--nkt-pl-sans: 'mundial', 'Inter', system-ui, -apple-system, sans-serif;
	font-family: var(--nkt-pl-sans);
	font-size: 16px;
	color: #1f2937;
	-webkit-font-smoothing: antialiased;
}

/* GP overrides: full-bleed, no content padding, neutralise global heading/link styles */
body.nkt-pl .grid-container { max-width: 100%; }
body.nkt-pl.one-container .site-content { padding: 0; }
#nkt-pl h1, #nkt-pl h2, #nkt-pl h3, #nkt-pl h4 {
	text-transform: none;
	font-family: var(--nkt-pl-serif);
	font-weight: 500;
	margin: 0;
}
#nkt-pl p { margin: 0; }
#nkt-pl a { color: inherit; text-decoration: none; box-shadow: none; }
#nkt-pl button {
	background: none;
	border: 0;
	color: inherit;
	font-family: inherit;
	font-size: inherit;
	line-height: 1.4;
	cursor: pointer;
	padding: 0;
}
#nkt-pl button:hover, #nkt-pl button:focus { background: none; color: inherit; }
#nkt-pl img { display: block; margin: 0; }

#nkt-pl .nkt-pl-wrap { max-width: 72rem; margin: 0 auto; padding: 0 1.5rem; }
#nkt-pl .nkt-pl-center { text-align: center; }
#nkt-pl .nkt-pl-flex1 { flex: 1; }

/* ============ Entrance animations ============ */
@keyframes nktPlFadeUp {
	from { opacity: 0; transform: translateY(18px); }
	to   { opacity: 1; transform: translateY(0); }
}
@keyframes nktPlFadeIn { from { opacity: 0; } to { opacity: 1; } }
#nkt-pl .nkt-pl-fade-up { animation: nktPlFadeUp 0.7s cubic-bezier(0.22, 1, 0.36, 1) both; }
#nkt-pl .nkt-pl-fade-in { animation: nktPlFadeIn 0.7s ease both; }
@media (prefers-reduced-motion: reduce) {
	#nkt-pl .nkt-pl-fade-up, #nkt-pl .nkt-pl-fade-in {
		animation: none !important;
		opacity: 1 !important;
		transform: none !important;
	}
}

/* ============ Hero ============ */
#nkt-pl .nkt-pl-hero {
	position: relative;
	overflow: hidden;
	/* Per-language show branding via inline vars on <main>; EN gold is the fallback. */
	background: var(--nkt-pl-hero-grad, linear-gradient(135deg, #c2792a, #d4943c 35%, #e8a930 70%, #d4943c));
}
#nkt-pl .grain-texture::before {
	content: '';
	position: absolute;
	inset: 0;
	opacity: 0.035;
	pointer-events: none;
	background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");
	background-repeat: repeat;
	background-size: 256px 256px;
	z-index: 1;
}
#nkt-pl .grain-texture > * { position: relative; z-index: 2; }
#nkt-pl .nkt-pl-wheel {
	position: absolute;
	right: -8%;
	top: 50%;
	transform: translateY(-50%);
	width: 500px;
	height: 500px;
	object-fit: contain;
	opacity: 0.22;
	pointer-events: none;
}
@media (min-width: 1024px) {
	#nkt-pl .nkt-pl-wheel { width: 700px; height: 700px; }
}
#nkt-pl .nkt-pl-hero-inner { padding-top: 4rem; padding-bottom: 2.5rem; }
@media (min-width: 768px) {
	#nkt-pl .nkt-pl-hero-inner { padding-top: 5.5rem; padding-bottom: 3.5rem; }
}

#nkt-pl .nkt-pl-brandrow { margin-bottom: 2rem; }
@media (min-width: 640px) {
	#nkt-pl .nkt-pl-brandrow { margin-bottom: 2.5rem; }
}
#nkt-pl .nkt-pl-kicker {
	font-size: 11px;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: rgba(255,255,255,0.85);
	font-weight: 600;
	margin-bottom: 0.5rem;
}
#nkt-pl .nkt-pl-title {
	color: #fff;
	font-size: 1.875rem;
	line-height: 1.2;
}
@media (min-width: 768px) { #nkt-pl .nkt-pl-title { font-size: 2.25rem; } }
@media (min-width: 1024px) { #nkt-pl .nkt-pl-title { font-size: 2.8rem; } }
#nkt-pl .nkt-pl-tagline {
	color: rgba(255,255,255,0.95);
	font-size: 17px;
	margin-top: 0.625rem;
	max-width: 36rem;
	line-height: 1.6;
}
#nkt-pl .nkt-pl-btn--spotify { background: #1DB954; }
#nkt-pl .nkt-pl-btn--spotify:hover { background: #1aa34a; }
#nkt-pl .nkt-pl-btn--apple { background: #9933CC; }
#nkt-pl .nkt-pl-btn--apple:hover { background: #8829b8; }
#nkt-pl .nkt-pl-btn--amazon { background: #146EB4; }
#nkt-pl .nkt-pl-btn--amazon:hover { background: #10578e; }

/* Now playing: player + info panel */
#nkt-pl .nkt-pl-nowplaying { display: flex; flex-direction: column; gap: 1.25rem; }
@media (min-width: 1024px) {
	#nkt-pl .nkt-pl-nowplaying { display: grid; grid-template-columns: 1fr 340px; gap: 1.75rem; align-items: stretch; }
}
#nkt-pl .nkt-pl-glass {
	background: var(--nkt-pl-panel, rgba(80,44,12,0.62));
	backdrop-filter: blur(4px);
	-webkit-backdrop-filter: blur(4px);
	border: 1px solid rgba(255,255,255,0.18);
	border-radius: var(--nkt-pl-radius);
	padding: 1.25rem;
}
@media (min-width: 768px) { #nkt-pl .nkt-pl-glass { padding: 1.5rem; } }
/* Unified player card: body (art | info + wave + controls) over a full-bleed footer band.
   Flex column so the footer band pins to the card's bottom edge when the grid stretches it. */
#nkt-pl .nkt-pl-player { padding: 0; overflow: hidden; display: flex; flex-direction: column; }
#nkt-pl .nkt-pl-player-body { display: flex; align-items: center; gap: 1.5rem; padding: 1.5rem; flex: 1; }
#nkt-pl .nkt-pl-player-main { flex: 1 1 auto; min-width: 0; }
#nkt-pl .nkt-pl-player-art {
	width: 200px;
	aspect-ratio: 1; /* square box so square episode art never crops */
	height: auto;
	object-fit: cover;
	border-radius: 0.75rem;
	border: 1px solid rgba(255,255,255,0.35);
	box-shadow: 0 10px 24px rgba(0,0,0,0.22);
	flex-shrink: 0;
	align-self: center;
}
#nkt-pl .nkt-pl-player-art[hidden] { display: none; }
#nkt-pl #nkt-pl-waveform { width: 100%; height: 88px; display: block; cursor: pointer; -webkit-tap-highlight-color: transparent; }
#nkt-pl .nkt-pl-controls {
	display: flex;
	align-items: center;
	gap: 1rem;
	margin-top: 0.75rem;
	padding-top: 0.875rem;
	border-top: 1px solid rgba(255,255,255,0.22);
}
#nkt-pl .nkt-pl-player-foot {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem 1.5rem;
	flex-wrap: wrap;
	padding: 0.875rem 1.5rem;
	background: rgba(0,0,0,0.16);
	border-top: 1px solid rgba(255,255,255,0.1);
}
@media (max-width: 640px) {
	#nkt-pl .nkt-pl-player-body { flex-direction: column; align-items: stretch; gap: 1rem; }
	#nkt-pl .nkt-pl-player-art { width: 160px; }
	#nkt-pl .nkt-pl-controls { gap: 0.625rem; }
}

/* Recent episodes rail (right of the player) */
#nkt-pl .nkt-pl-recent { display: flex; flex-direction: column; min-width: 0; }
#nkt-pl .nkt-pl-recent-label {
	font-size: 11px;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: rgba(255,255,255,0.85);
	font-weight: 600;
	margin-bottom: 0.75rem;
}
#nkt-pl .nkt-pl-recent-tabs { display: flex; gap: 1.25rem; margin-bottom: 0.75rem; }
#nkt-pl .nkt-pl-recent-tab {
	font-size: 11px;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	font-weight: 600;
	color: rgba(255,255,255,0.55);
	padding: 0 0 0.375rem;
	border-bottom: 2px solid transparent;
	transition: color 0.2s ease, border-color 0.2s ease;
}
#nkt-pl .nkt-pl-recent-tab:hover { color: rgba(255,255,255,0.85); }
#nkt-pl .nkt-pl-recent-tab.is-active { color: #fff; border-color: rgba(255,255,255,0.7); }
#nkt-pl .nkt-pl-recent-list { display: flex; flex-direction: column; gap: 0.625rem; flex: 1; }
#nkt-pl .nkt-pl-topics-panel { display: flex; flex-wrap: wrap; align-content: flex-start; gap: 0.5rem; flex: 1; }
/* The tab toggle (landing.js) sets the native `hidden` attribute on whichever
   panel is inactive, but the `display: flex` rules above are author-stylesheet
   (1,1,0) and beat the UA `[hidden]{display:none}` default (0,0,1) regardless
   of source order — same class of bug as elsewhere in this codebase. Re-assert
   it here at matching specificity. */
#nkt-pl .nkt-pl-recent-list[hidden],
#nkt-pl .nkt-pl-topics-panel[hidden] { display: none; }
#nkt-pl .nkt-pl-topic-pill {
	display: inline-block;
	padding: 0.3rem 0.8rem;
	border-radius: 999px;
	border: 1px solid rgba(255,255,255,0.35);
	color: #fff;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	transition: background-color 0.2s ease, border-color 0.2s ease;
}
#nkt-pl .nkt-pl-topic-pill:hover { background: rgba(255,255,255,0.15); border-color: rgba(255,255,255,0.6); }
#nkt-pl .nkt-pl-recent-item {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	padding: 0.5rem;
	border-radius: 0.75rem;
	/* Light frosted cards, dark text — only the playing episode wears the dark
	   brand panel, so the rail reads as a list with one clear highlight. */
	background: rgba(255,255,255,0.62);
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
	border: 1px solid rgba(255,255,255,0.55);
	text-align: left;
	transition: background-color 0.2s ease, border-color 0.2s ease;
	flex: 1;
}
#nkt-pl .nkt-pl-recent-item:hover { background: rgba(255,255,255,0.82); }
#nkt-pl .nkt-pl-recent-item.is-active {
	background: var(--nkt-pl-panel, rgba(80,44,12,0.62));
	border-color: rgba(255,255,255,0.5);
	box-shadow: 0 4px 14px rgba(0,0,0,0.18);
}
#nkt-pl .nkt-pl-recent-thumb {
	width: 52px;
	height: 52px;
	object-fit: cover;
	border-radius: 0.5rem;
	border: 1px solid rgba(255,255,255,0.3);
	flex-shrink: 0;
}
#nkt-pl .nkt-pl-recent-info { min-width: 0; }
#nkt-pl .nkt-pl-recent-title {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	color: #111827;
	font-size: 13.5px;
	font-weight: 500;
	line-height: 1.35;
}
#nkt-pl .nkt-pl-recent-meta { display: block; margin-top: 2px; font-size: 12px; color: #6b7280; }
#nkt-pl .nkt-pl-recent-item.is-active .nkt-pl-recent-title { color: #fff; }
#nkt-pl .nkt-pl-recent-item.is-active .nkt-pl-recent-meta { color: rgba(255,255,255,0.85); }
#nkt-pl .nkt-pl-transport { display: flex; align-items: center; gap: 0.375rem; flex-shrink: 0; }
#nkt-pl .nkt-pl-skipbtn {
	width: 2.25rem;
	height: 2.25rem;
	border-radius: 9999px;
	display: flex;
	align-items: center;
	justify-content: center;
	color: rgba(255,255,255,0.9);
	transition: color 0.2s ease, background-color 0.2s ease;
	flex-shrink: 0;
}
#nkt-pl .nkt-pl-skipbtn:hover { color: #fff; background: rgba(255,255,255,0.15); }
#nkt-pl .nkt-pl-skipbtn svg { width: 1.375rem; height: 1.375rem; }
#nkt-pl .nkt-pl-skipbtn svg text { font-family: var(--nkt-pl-sans); }
#nkt-pl .nkt-pl-playbtn {
	width: 2.75rem;
	height: 2.75rem;
	border-radius: 9999px;
	background: rgba(255,255,255,0.2);
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background-color 0.2s ease;
	flex-shrink: 0;
}
#nkt-pl .nkt-pl-playbtn:hover { background: rgba(255,255,255,0.3); }
#nkt-pl .nkt-pl-playbtn svg { width: 1.25rem; height: 1.25rem; color: #fff; margin-left: 2px; }
#nkt-pl .nkt-pl-playbtn svg[hidden] { display: none; }
#nkt-pl .nkt-pl-time {
	font-size: 14px;
	color: rgba(255,255,255,0.95);
	font-variant-numeric: tabular-nums;
	font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
}
#nkt-pl .nkt-pl-times { display: flex; align-items: baseline; gap: 0.375rem; }
#nkt-pl .nkt-pl-time-sep { color: rgba(255,255,255,0.55); font-size: 13px; }
#nkt-pl .nkt-pl-speedbtn {
	font-size: 12px;
	color: rgba(255,255,255,0.9);
	font-weight: 500;
	padding: 0.25rem 0.625rem;
	border-radius: 0.375rem;
	background: rgba(255,255,255,0.1);
	transition: all 0.2s ease;
}
#nkt-pl .nkt-pl-speedbtn:hover { color: #fff; background: rgba(255,255,255,0.2); }
#nkt-pl .nkt-pl-pipbtn svg { width: 0.875rem; height: 0.875rem; display: block; }
#nkt-pl .nkt-pl-pipbtn[hidden] { display: none; }
#nkt-pl .nkt-pl-pipbtn.is-on { color: #fff; background: rgba(255,255,255,0.35); }
#nkt-pl .nkt-pl-sharebtn svg { width: 0.875rem; height: 0.875rem; display: block; }
#nkt-pl .nkt-pl-sharebtn svg[hidden] { display: none; }
#nkt-pl .nkt-pl-sharebtn.is-copied { color: #fff; background: rgba(255,255,255,0.35); }

#nkt-pl .nkt-pl-live {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 11px;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: rgba(255,255,255,0.85);
	font-weight: 600;
	margin-bottom: 1rem;
}
#nkt-pl .nkt-pl-dot {
	width: 6px;
	height: 6px;
	border-radius: 9999px;
	background: #fff;
	animation: nktPlPulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}
@keyframes nktPlPulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.4; } }
#nkt-pl .nkt-pl-player-main .nkt-pl-live { margin-bottom: 0.5rem; }
#nkt-pl #nkt-pl-ep-title {
	color: #fff;
	font-size: 1.5rem;
	line-height: 1.25;
	margin-bottom: 0.375rem;
}
@media (min-width: 768px) { #nkt-pl #nkt-pl-ep-title { font-size: 1.75rem; } }
#nkt-pl #nkt-pl-ep-title a { color: inherit; }
#nkt-pl #nkt-pl-ep-title a:hover { text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
#nkt-pl .nkt-pl-ep-more {
	display: inline-block;
	font-size: 13px;
	font-weight: 500;
	color: rgba(255,255,255,0.85);
	margin-bottom: 0.5rem;
	align-self: flex-start;
}
#nkt-pl .nkt-pl-ep-more:hover { color: #fff; text-decoration: underline; }
#nkt-pl .nkt-pl-ep-speaker { color: rgba(255,255,255,0.85); font-size: 13px; font-weight: 500; }
#nkt-pl .nkt-pl-ep-meta .nkt-pl-ep-speaker::before { content: '·'; margin-right: 0.75rem; color: rgba(255,255,255,0.5); font-weight: 400; }
#nkt-pl .nkt-pl-ep-meta .nkt-pl-ep-speaker:empty { display: none; }
#nkt-pl .nkt-pl-ep-desc {
	color: rgba(255,255,255,0.92);
	font-size: 15px;
	line-height: 1.6;
	margin-bottom: 0.875rem;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
#nkt-pl .nkt-pl-ep-meta { display: flex; align-items: center; gap: 0.75rem; font-size: 13px; color: rgba(255,255,255,0.85); }
#nkt-pl .nkt-pl-sep { color: rgba(255,255,255,0.5); }
#nkt-pl .nkt-pl-ep-cats { display: flex; flex-wrap: wrap; gap: 0.375rem; }
#nkt-pl .nkt-pl-ep-cats span {
	font-size: 12px;
	background: rgba(255,255,255,0.22);
	color: #fff;
	padding: 0.125rem 0.55rem;
	border-radius: 9999px;
}
#nkt-pl .nkt-pl-ep-books { display: block; margin-top: 0.5rem; }
#nkt-pl .nkt-pl-ep-books[hidden] { display: none; }
#nkt-pl .nkt-pl-ep-books-label {
	display: block;
	font-size: 10px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: rgba(255,255,255,0.75);
	font-weight: 600;
	margin-bottom: 0.4rem;
}
#nkt-pl .nkt-pl-ep-books-list { display: flex; flex-wrap: wrap; gap: 0.375rem; }
#nkt-pl .nkt-pl-ep-books-list span {
	font-size: 12px;
	border: 1px solid rgba(255,255,255,0.5);
	color: #fff;
	padding: 0.125rem 0.55rem;
	border-radius: 9999px;
}
#nkt-pl .nkt-pl-comingsoon { max-width: 32rem; }
#nkt-pl .nkt-pl-comingsoon p { color: #fff; font-size: 16px; line-height: 1.6; }

/* ============ Stripe (subscribe / other languages) ============ */
#nkt-pl .nkt-pl-stripe { background: #fff; border-bottom: 1px solid #f3f4f6; }
#nkt-pl .nkt-pl-stripe-row { display: flex; flex-direction: column; }
@media (min-width: 640px) { #nkt-pl .nkt-pl-stripe-row { flex-direction: row; } }
#nkt-pl .nkt-pl-stripe-btn {
	flex: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.625rem;
	padding: 0.9rem 1rem;
	font-size: 14px;
	font-weight: 600;
	color: #374151;
	transition: color 0.15s ease, background-color 0.15s ease;
}
#nkt-pl .nkt-pl-stripe-btn:hover { color: var(--nkt-pl-brand); background: rgba(245,118,26,0.03); }
#nkt-pl .nkt-pl-stripe-btn.is-open { color: var(--nkt-pl-brand); }
#nkt-pl .nkt-pl-stripe-btn > svg { width: 1.125rem; height: 1.125rem; flex-shrink: 0; }
#nkt-pl .nkt-pl-stripe-btn .nkt-pl-chevron { width: 0.875rem; height: 0.875rem; transition: transform 0.2s ease; }
#nkt-pl .nkt-pl-stripe-btn.is-open .nkt-pl-chevron { transform: rotate(180deg); }
#nkt-pl .nkt-pl-stripe-btn + .nkt-pl-stripe-btn { border-top: 1px solid #f3f4f6; }
@media (min-width: 640px) {
	#nkt-pl .nkt-pl-stripe-btn + .nkt-pl-stripe-btn { border-top: 0; border-left: 1px solid #f3f4f6; }
}
#nkt-pl .nkt-pl-stripe-panel { border-top: 1px solid #f3f4f6; background: var(--nkt-pl-warm); animation: nktPlFadeIn 0.25s ease; }
#nkt-pl .nkt-pl-stripe-panel[hidden] { display: none; }
#nkt-pl .nkt-pl-stripe-btns {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 0.625rem;
	padding-top: 1.1rem;
	padding-bottom: 1.1rem;
}
#nkt-pl .nkt-pl-btn--sm { font-size: 13px; padding: 0.5rem 1rem; border-radius: 0.5rem; }
#nkt-pl .nkt-pl-btn--sm svg { width: 1rem; height: 1rem; }
#nkt-pl .nkt-pl-lang-link {
	display: inline-flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.125rem;
	padding: 0.55rem 1.1rem;
	border: 1px solid #e5e7eb;
	border-radius: 0.625rem;
	background: #fff;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
#nkt-pl .nkt-pl-lang-link:hover { border-color: rgba(245,118,26,0.45); box-shadow: 0 2px 6px rgba(0,0,0,0.05); }
#nkt-pl .nkt-pl-lang-name {
	font-size: 10px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	font-weight: 600;
	color: #9ca3af;
}
#nkt-pl .nkt-pl-lang-show { font-size: 14px; font-weight: 500; color: #111827; }
#nkt-pl .nkt-pl-lang-link:hover .nkt-pl-lang-show { color: var(--nkt-pl-brand); }

/* ============ Explorer ============ */
#nkt-pl .nkt-pl-explorer { background: var(--nkt-pl-beige); padding: 3rem 0; }
@media (min-width: 768px) { #nkt-pl .nkt-pl-explorer { padding: 4rem 0; } }
#nkt-pl .nkt-pl-h2 { font-size: 1.5rem; color: #111827; line-height: 1.3; margin-bottom: 0.5rem; }
@media (min-width: 768px) { #nkt-pl .nkt-pl-h2 { font-size: 1.75rem; } }
#nkt-pl .nkt-pl-sub { font-size: 14px; color: #6b7280; margin-bottom: 2rem; }

/* Mobile pills */
#nkt-pl .nkt-pl-pills { display: flex; gap: 0.5rem; overflow-x: auto; padding-bottom: 0.75rem; margin-bottom: 1.5rem; }
@media (min-width: 1024px) { #nkt-pl .nkt-pl-pills { display: none; } }
#nkt-pl .scrollbar-hide { -ms-overflow-style: none; scrollbar-width: none; }
#nkt-pl .scrollbar-hide::-webkit-scrollbar { display: none; }
@media (max-width: 639px) {
	#nkt-pl .scroll-fade-right {
		mask-image: linear-gradient(to right, black 85%, transparent 100%);
		-webkit-mask-image: linear-gradient(to right, black 85%, transparent 100%);
	}
}
#nkt-pl .nkt-pl-pills button {
	flex-shrink: 0;
	font-size: 13px;
	font-weight: 500;
	padding: 0.375rem 1rem;
	border-radius: 9999px;
	white-space: nowrap;
	background: #fff;
	color: #4b5563;
	border: 1px solid #e5e7eb;
	transition: all 0.15s ease;
}
#nkt-pl .nkt-pl-pills button:hover { border-color: #d1d5db; background: #fff; color: #4b5563; }
#nkt-pl .nkt-pl-pills button.is-active,
#nkt-pl .nkt-pl-pills button.is-active:hover { background: var(--nkt-pl-brand-a11y); color: #fff; border-color: var(--nkt-pl-brand-a11y); }

/* Sidebar + grid columns */
#nkt-pl .nkt-pl-cols { display: block; }
@media (min-width: 1024px) {
	#nkt-pl .nkt-pl-cols { display: grid; grid-template-columns: 280px 1fr; gap: 2rem; align-items: start; }
	#nkt-pl .nkt-pl-cols--nosidebar { grid-template-columns: 1fr; }
}
#nkt-pl .nkt-pl-sidebar { display: none; }
@media (min-width: 1024px) { #nkt-pl .nkt-pl-sidebar { display: block; } }
#nkt-pl .nkt-pl-sidebar-box {
	background: #fff;
	border-radius: var(--nkt-pl-radius);
	border: 1px solid #f3f4f6;
	overflow: hidden;
	position: sticky;
	top: 6rem; /* clears the sticky site header; re-check against prod header height */
	box-shadow: 0 1px 2px rgba(0,0,0,0.04);
}
#nkt-pl .nkt-pl-cat-row {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	padding: 0.8rem 1.1rem;
	text-align: left;
	border-left: 3px solid transparent;
	border-top: 1px solid #f9fafb;
	transition: background-color 0.15s ease, border-color 0.15s ease;
}
#nkt-pl .nkt-pl-cat-row:first-child { border-top: 0; }
#nkt-pl .nkt-pl-cat-row:hover { background-color: rgba(245, 118, 26, 0.04); }
#nkt-pl .nkt-pl-cat-row.is-active { background-color: rgba(245, 118, 26, 0.06); border-left-color: var(--nkt-pl-brand); }
#nkt-pl .nkt-pl-cat-name { font-size: 14px; color: #374151; }
#nkt-pl .nkt-pl-cat-row.is-active .nkt-pl-cat-name { font-weight: 500; color: var(--nkt-pl-brand-a11y); }
#nkt-pl .nkt-pl-cat-count { font-size: 12px; color: #9ca3af; }

/* Toolbar */
#nkt-pl .nkt-pl-toolbar { display: flex; align-items: center; gap: 0.75rem; flex-wrap: wrap; margin-bottom: 1.25rem; }
#nkt-pl .nkt-pl-counter { font-size: 13px; color: #6b7280; margin-right: auto; margin-bottom: 0; }
#nkt-pl .nkt-pl-searchwrap { position: relative; }
#nkt-pl .nkt-pl-searchwrap svg {
	position: absolute;
	left: 0.75rem;
	top: 50%;
	transform: translateY(-50%);
	width: 0.875rem;
	height: 0.875rem;
	color: #9ca3af;
	pointer-events: none;
}
#nkt-pl #nkt-pl-search {
	width: 11rem;
	padding: 0.5rem 0.75rem 0.5rem 2.25rem;
	border-radius: 0.5rem;
	border: 1px solid #e5e7eb;
	background: #fff;
	font-size: 13px;
	color: #374151;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
@media (min-width: 640px) { #nkt-pl #nkt-pl-search { width: 13rem; } }
#nkt-pl #nkt-pl-search::placeholder { color: #9ca3af; }
#nkt-pl #nkt-pl-search:focus {
	outline: none;
	border-color: rgba(245, 118, 26, 0.4);
	box-shadow: 0 0 0 2px rgba(245, 118, 26, 0.1);
	background: #fff;
	color: #374151;
}
#nkt-pl #nkt-pl-search::-webkit-search-cancel-button { -webkit-appearance: none; }
#nkt-pl .nkt-pl-sortbtn {
	display: flex;
	align-items: center;
	gap: 0.375rem;
	font-size: 13px;
	color: #6b7280;
	padding: 0.5rem 0.75rem;
	border-radius: 0.5rem;
	border: 1px solid #e5e7eb;
	background: #fff;
	transition: color 0.15s ease, border-color 0.15s ease;
}
#nkt-pl .nkt-pl-sortbtn:hover { color: #374151; border-color: #d1d5db; background: #fff; }
#nkt-pl .nkt-pl-sortbtn svg { width: 0.875rem; height: 0.875rem; }

/* Grid + cards */
#nkt-pl .nkt-pl-grid { display: grid; grid-template-columns: 1fr; gap: 1.25rem; }
@media (min-width: 640px) { #nkt-pl .nkt-pl-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { #nkt-pl .nkt-pl-grid { grid-template-columns: repeat(3, 1fr); } }
#nkt-pl .nkt-pl-grid[hidden] { display: none; }
#nkt-pl .nkt-pl-card {
	/* Flex column, NOT block: buttons vertically center taller-than-content
	   interiors, which shoved thumbnails down on grid-stretched cards. */
	display: flex;
	flex-direction: column;
	width: 100%;
	border-radius: var(--nkt-pl-radius);
	overflow: hidden;
	text-align: left;
	background: #fff;
	border: 1px solid #f3f4f6;
	box-shadow: 0 1px 2px rgba(0,0,0,0.05);
	transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.35s ease;
}
#nkt-pl .nkt-pl-card:hover {
	background: #fff;
	transform: translateY(-3px);
	box-shadow: 0 8px 24px rgba(0,0,0,0.08), 0 2px 6px rgba(0,0,0,0.04);
}
#nkt-pl .nkt-pl-card.is-active { box-shadow: 0 0 0 2px var(--nkt-pl-brand); }
#nkt-pl .nkt-pl-card-thumb-wrap {
	display: block;
	aspect-ratio: 1 / 1;
	overflow: hidden;
	position: relative;
	background: #f3f4f6;
	flex-shrink: 0;
}
#nkt-pl .nkt-pl-card-thumb {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.6s cubic-bezier(0.22, 1, 0.36, 1);
}
#nkt-pl .nkt-pl-card:hover .nkt-pl-card-thumb { transform: scale(1.04); }
#nkt-pl .nkt-pl-card-play {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 2.5rem;
	height: 2.5rem;
	border-radius: 9999px;
	background: rgba(245, 118, 26, 0.9);
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 10px 15px -3px rgba(0,0,0,0.1);
	opacity: 0;
	transform: translate(-50%, -50%) scale(0.85);
	transition: opacity 0.25s ease, transform 0.25s cubic-bezier(0.22, 1, 0.36, 1);
}
#nkt-pl .nkt-pl-card:hover .nkt-pl-card-play { opacity: 1; transform: translate(-50%, -50%) scale(1); }
#nkt-pl .nkt-pl-card-play svg { width: 1rem; height: 1rem; color: #fff; margin-left: 2px; }
#nkt-pl .nkt-pl-card-info { display: block; padding: 0.875rem 1rem 1rem; }
#nkt-pl .nkt-pl-card-meta {
	display: flex;
	align-items: baseline;
	gap: 0.5rem;
	font-size: 12px;
	color: #6b7280;
	white-space: nowrap;
	overflow: hidden;
}
#nkt-pl .nkt-pl-card-meta time, #nkt-pl .nkt-pl-card-meta > span:not(.nkt-pl-card-cat) { flex-shrink: 0; }
#nkt-pl .nkt-pl-card-cat {
	color: var(--nkt-pl-brand-a11y);
	font-weight: 500;
	overflow: hidden;
	text-overflow: ellipsis;
	min-width: 0;
}
#nkt-pl .nkt-pl-card-title {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	margin-top: 0.375rem;
	font-size: 15px;
	font-weight: 500;
	color: #111827;
	line-height: 1.4;
}
#nkt-pl .nkt-pl-card-desc {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	margin-top: 0.25rem;
	font-size: 12px;
	color: #6b7280;
	line-height: 1.55;
}

/* Load more / no results */
#nkt-pl .nkt-pl-loadwrap { text-align: center; margin-top: 2rem; }
#nkt-pl .nkt-pl-loadbtn {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.625rem 1.25rem;
	border-radius: 0.5rem;
	font-size: 13px;
	font-weight: 500;
	color: #6b7280;
	border: 1px solid #e5e7eb;
	background: #fff;
	transition: all 0.2s ease;
}
#nkt-pl .nkt-pl-loadbtn:hover { color: #374151; border-color: #d1d5db; background: #fff; }
#nkt-pl .nkt-pl-loadbtn svg { width: 0.875rem; height: 0.875rem; }
#nkt-pl .nkt-pl-noresults { text-align: center; padding: 3rem 0; }
#nkt-pl .nkt-pl-noresults p { color: #9ca3af; }

/* ============ Deepen / CTAs ============ */
#nkt-pl .nkt-pl-deepen { background: #fff; padding: 3rem 0; }
@media (min-width: 768px) { #nkt-pl .nkt-pl-deepen { padding: 4rem 0; } }
#nkt-pl .nkt-pl-deepen .nkt-pl-sub { max-width: 32rem; margin-left: auto; margin-right: auto; margin-bottom: 2.5rem; }
#nkt-pl .nkt-pl-ctagrid { display: grid; gap: 1.25rem; }
@media (min-width: 768px) { #nkt-pl .nkt-pl-ctagrid { grid-template-columns: repeat(3, 1fr); } }
#nkt-pl .nkt-pl-cta {
	display: block;
	background: var(--nkt-pl-warm);
	border-radius: var(--nkt-pl-radius);
	padding: 1.5rem;
	border: 1px solid #f3f4f6;
	text-align: center;
	transition: border-color 0.3s ease, box-shadow 0.3s ease;
}
@media (min-width: 768px) { #nkt-pl .nkt-pl-cta { padding: 2rem; } }
#nkt-pl a.nkt-pl-cta:hover {
	border-color: rgba(245, 118, 26, 0.2);
	box-shadow: 0 4px 6px -1px rgba(0,0,0,0.07);
}
#nkt-pl .nkt-pl-cta-icon {
	width: 3rem;
	height: 3rem;
	border-radius: 9999px;
	background: rgba(245, 118, 26, 0.1);
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 auto 1rem;
	transition: background-color 0.3s ease;
}
#nkt-pl a.nkt-pl-cta:hover .nkt-pl-cta-icon { background: rgba(245, 118, 26, 0.15); }
#nkt-pl .nkt-pl-cta-icon svg { width: 1.5rem; height: 1.5rem; color: var(--nkt-pl-brand); }
#nkt-pl .nkt-pl-cta-title {
	display: block;
	font-family: var(--nkt-pl-serif);
	font-size: 1.125rem;
	font-weight: 500;
	color: #111827;
	margin-bottom: 0.5rem;
}
#nkt-pl .nkt-pl-cta-desc { display: block; font-size: 13px; color: #6b7280; line-height: 1.6; }
#nkt-pl .nkt-pl-cta-links { display: flex; flex-direction: column; gap: 0.5rem; margin-top: 1rem; }
#nkt-pl .nkt-pl-cta-links a {
	font-size: 13px;
	font-weight: 500;
	color: var(--nkt-pl-brand-a11y);
	transition: color 0.15s ease;
}
#nkt-pl .nkt-pl-cta-links a:hover { color: var(--nkt-pl-brand-a11y); text-decoration: underline; text-underline-offset: 2px; }

/* ============ Subscribe buttons (stripe panel) ============ */
#nkt-pl .nkt-pl-btn--store { background: #111827; }
#nkt-pl .nkt-pl-btn--store:hover { background: #000; }
#nkt-pl .nkt-pl-btn {
	display: inline-flex;
	align-items: center;
	gap: 0.625rem;
	font-size: 15px;
	font-weight: 500;
	padding: 0.875rem 1.75rem;
	border-radius: var(--nkt-pl-radius);
	color: #fff;
	transition: background-color 0.2s ease;
	box-shadow: 0 1px 2px rgba(0,0,0,0.05);
}
#nkt-pl .nkt-pl-btn svg { width: 1.25rem; height: 1.25rem; flex-shrink: 0; }

/* ============ Single-episode page ============ */
#nkt-pl .nkt-pl-masthead {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 1rem 2rem;
	flex-wrap: wrap;
}
#nkt-pl .nkt-pl-show-title {
	font-family: var(--nkt-pl-serif);
	font-size: 1.75rem;
	line-height: 1.2;
	color: #fff;
}
@media (min-width: 768px) { #nkt-pl .nkt-pl-show-title { font-size: 2.25rem; } }
#nkt-pl .nkt-pl-show-title a { transition: opacity 0.2s ease; }
#nkt-pl .nkt-pl-show-title a:hover { opacity: 0.85; }
#nkt-pl .nkt-pl-backlink { margin-top: 0.375rem; }
#nkt-pl .nkt-pl-backlink a {
	display: inline-flex;
	align-items: center;
	gap: 0.25rem;
	color: rgba(255,255,255,0.85);
	font-size: 14px;
	font-weight: 500;
	transition: color 0.2s ease;
}
#nkt-pl .nkt-pl-backlink a:hover { color: #fff; text-decoration: underline; }
#nkt-pl .nkt-pl-backlink svg { width: 0.875rem; height: 0.875rem; }
#nkt-pl .nkt-pl-epnav { display: flex; gap: 0.625rem; min-width: 0; }
#nkt-pl .nkt-pl-epnav-btn {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.5rem 0.875rem;
	border-radius: 9999px;
	background: rgba(255,255,255,0.14);
	border: 1px solid rgba(255,255,255,0.22);
	color: rgba(255,255,255,0.92);
	font-size: 13px;
	font-weight: 500;
	min-width: 0;
	transition: background-color 0.2s ease, color 0.2s ease;
}
#nkt-pl .nkt-pl-epnav-btn:hover { background: rgba(255,255,255,0.26); color: #fff; }
#nkt-pl .nkt-pl-epnav-btn svg { width: 0.875rem; height: 0.875rem; flex-shrink: 0; }
#nkt-pl .nkt-pl-epnav-label {
	max-width: 11rem;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
@media (max-width: 767px) {
	#nkt-pl .nkt-pl-epnav-label { display: none; }
	#nkt-pl .nkt-pl-epnav-btn { padding: 0.5rem 0.7rem; }
}
body.nkt-pl-single #nkt-pl #nkt-pl-ep-title { font-size: 1.5rem; }
@media (min-width: 768px) { body.nkt-pl-single #nkt-pl #nkt-pl-ep-title { font-size: 1.9rem; } }
@media (min-width: 1024px) {
	body.nkt-pl-single #nkt-pl .nkt-pl-nowplaying { grid-template-columns: 1fr 400px; position: relative; }
	/* Long show notes must not stretch the hero: absolutely position the about
	   panel over its grid area so the player card alone sets the row height,
	   and scroll the notes inside the panel. */
	body.nkt-pl-single #nkt-pl .nkt-pl-about {
		position: absolute;
		grid-column: 2;
		grid-row: 1;
		inset: 0;
		overflow-y: auto;
		scrollbar-width: thin;
		scrollbar-color: rgba(255,255,255,0.35) transparent;
	}
}

/* About-this-episode side panel (teacher + content body, incl. its book links) */
#nkt-pl .nkt-pl-about-speaker {
	font-size: 11px;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: rgba(255,255,255,0.85);
	font-weight: 600;
	margin-bottom: 0.75rem;
}
#nkt-pl .nkt-pl-about-body {
	color: rgba(255,255,255,0.95);
	font-size: 15px;
	line-height: 1.65;
}
#nkt-pl .nkt-pl-about-body p { margin: 0 0 0.875em; }
#nkt-pl .nkt-pl-about-body p:last-child { margin-bottom: 0; }
#nkt-pl .nkt-pl-about-body a { color: #fff; text-decoration: underline; text-underline-offset: 2px; }
#nkt-pl .nkt-pl-about-body a:hover { opacity: 0.85; }
#nkt-pl .nkt-pl-about-body ul,
#nkt-pl .nkt-pl-about-body ol { margin: 0 0 0.875em; padding-left: 1.25em; }
#nkt-pl .nkt-pl-about-body ul { list-style: disc; }
#nkt-pl .nkt-pl-about-body ol { list-style: decimal; }
#nkt-pl .nkt-pl-about-body a.nkt-pl-book-link {
	display: inline-flex;
	align-items: center;
	gap: 0.625rem;
	background: rgba(255,255,255,0.12);
	border: 1px solid rgba(255,255,255,0.22);
	border-radius: 0.5rem;
	padding: 0.4rem 0.8rem 0.4rem 0.4rem;
	margin: 0.3rem 0.5rem 0.3rem 0;
	text-decoration: none;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.35;
	transition: background-color 0.2s ease;
}
#nkt-pl .nkt-pl-about-body a.nkt-pl-book-link:hover { background: rgba(255,255,255,0.22); opacity: 1; }
#nkt-pl .nkt-pl-book-cover {
	height: 56px;
	width: auto;
	border-radius: 3px;
	display: block;
	box-shadow: 0 2px 6px rgba(0,0,0,0.3);
}

/* Related episodes */
#nkt-pl .nkt-pl-related { background: var(--nkt-pl-beige); padding: 3rem 0; }
@media (min-width: 768px) { #nkt-pl .nkt-pl-related { padding: 4rem 0; } }
#nkt-pl .nkt-pl-related .nkt-pl-h2 { margin-bottom: 1.5rem; }
/* Equal-height cards: the info block fills the stretched grid item
   (card flex-column is global — see the .nkt-pl-card base rule) */
#nkt-pl .nkt-pl-card-info { flex: 1; }
/* No orphan rows: hide the tail that doesn't fill the last row at each column
   count, for any card total (single-card totals stay visible). */
@media (min-width: 1024px) {
	/* 3 columns: hide a 1- or 2-card trailing row */
	#nkt-pl .nkt-pl-related .nkt-pl-card:nth-child(3n+1):last-child:not(:first-child),
	#nkt-pl .nkt-pl-related .nkt-pl-card:nth-child(3n+1):nth-last-child(2):not(:first-child),
	#nkt-pl .nkt-pl-related .nkt-pl-card:nth-child(3n+1):nth-last-child(2):not(:first-child) + .nkt-pl-card { display: none; }
}
@media (min-width: 640px) and (max-width: 1023px) {
	/* 2 columns: hide a lone odd trailing card */
	#nkt-pl .nkt-pl-related .nkt-pl-card:nth-child(odd):last-child:not(:first-child) { display: none; }
}

/* Modern Buddhism app card (subscribe stripe) — colors keyed to the app icon */
#nkt-pl .nkt-pl-appcard {
	display: flex;
	align-items: center;
	gap: 0.875rem;
	padding: 0.75rem 1rem 0.75rem 0.75rem;
	border-radius: 0.75rem;
	background: linear-gradient(135deg, #f2fdfd, #dff7f8);
	border: 1px solid rgba(23,184,194,0.35);
}
#nkt-pl .nkt-pl-appcard-icon {
	width: 64px;
	height: 64px;
	border-radius: 14px;
	display: block;
	flex-shrink: 0;
	box-shadow: 0 4px 10px rgba(23,184,194,0.3);
}
#nkt-pl .nkt-pl-appcard-info { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
#nkt-pl .nkt-pl-appcard-name { font-size: 15px; font-weight: 600; color: #0f3f4a; }
#nkt-pl .nkt-pl-appcard-desc { font-size: 12.5px; color: #4b6b72; line-height: 1.4; max-width: 30rem; }
#nkt-pl .nkt-pl-appcard-links { display: flex; gap: 0.5rem; margin-top: 0.375rem; }
#nkt-pl .nkt-pl-appcard-store {
	display: inline-flex;
	align-items: center;
	gap: 0.375rem;
	font-size: 12px;
	font-weight: 500;
	color: #fff;
	background: #111827;
	padding: 0.3rem 0.7rem;
	border-radius: 0.4rem;
	transition: background-color 0.2s ease;
}
#nkt-pl .nkt-pl-appcard-store:hover { background: #000; color: #fff; }
#nkt-pl .nkt-pl-appcard-store svg { width: 0.875rem; height: 0.875rem; }
@media (max-width: 480px) {
	#nkt-pl .nkt-pl-appcard { align-items: flex-start; }
	#nkt-pl .nkt-pl-appcard-links { flex-wrap: wrap; }
}
