/* nextTalk — single podcast episode (single-podcast_episode.php). Breakpoints: 1024 (tablet) / 767 (mobile). */

/* GeneratePress adds a bottom margin to every direct child of .site-main. */
.nt-main--episode > * { margin-bottom: 0; }

/* ---------- Hero ---------- */
.nt-ep-hero {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: flex-end;
	gap: 25px;
	min-height: 669px;
	padding: 60px 30px;
	text-align: center;
	color: #fff;
	background-color: var(--nt-accent);
}
.nt-ep-hero::before {
	content: '';
	position: absolute;
	inset: 0;
	background-image: radial-gradient(rgba(0, 0, 0, .02) 0%, rgba(0, 0, 0, .99) 100%);
	opacity: .8;
	pointer-events: none;
}
.nt-ep-hero > * { position: relative; }

.nt-ep-hero__title {
	width: 100%;
	max-width: var(--nt-container);
	margin: 0;
	font-family: var(--nt-font-head);
	font-size: 45px;
	font-weight: 600;
	line-height: 52px;
	color: #fff;
}
.nt-ep-hero__bar {
	display: block;
	width: 200px;
	height: 13px;
	background: var(--nt-primary);
}
.nt-ep-hero__sub {
	margin: 0;
	font-family: var(--nt-font-body);
	font-size: 18px;
	font-weight: 400;
	line-height: 28px;
	color: #fff;
}
/* The subtitle is 80% of the content box, centred. */
.nt-ep-hero__sub { width: calc(min(100% - 0px, var(--nt-container)) * .8); }

/* ---------- Content area ---------- */
.nt-ep {
	padding: 60px 0;
	background: var(--nt-bg);
	color: #000;
}
.nt-ep *,
.nt-ep *::before,
.nt-ep *::after { box-sizing: border-box; }

.nt-ep__inner {
	display: flex;
	flex-direction: column;
	gap: 20px;
	width: min(100% - 60px, var(--nt-container));
	margin: 0 auto;
}

.nt-ep__art img { display: block; width: 100%; height: auto; }
.nt-ep__player iframe { display: block; width: 100%; max-width: 100%; border: 0; }

/* Subscribe icons | title + description */
.nt-ep__row { display: flex; gap: 40px; }
.nt-ep__sub {
	display: flex;
	flex: 0 0 calc((100% - 40px) * .3);
	flex-direction: column;
	align-items: flex-start;
	gap: 10px;
}
.nt-ep__about { display: flex; flex: 1 1 0; flex-direction: column; gap: 30px; min-width: 0; }

.nt-ep .nt-ep__subhead {
	margin: 0;
	font-family: var(--nt-font-head);
	font-size: 24px;
	font-weight: 700;
	line-height: 37px;
	color: var(--nt-primary);
}
.nt-ep__badge { display: block; line-height: 0; }
.nt-ep__badge img { display: block; max-width: none; object-fit: cover; }
.nt-ep__badge img { width: 150px; height: auto; }

.nt-ep .nt-ep__title {
	margin: 0;
	font-family: var(--nt-font-body);
	font-size: 17px;
	font-weight: 700;
	line-height: 24px;
	color: #000;
}
.nt-ep__desc {
	font-family: var(--nt-font-head);
	font-size: 18px;
	font-weight: 400;
	line-height: 27px;
	color: #000;
}
.nt-ep__desc p { margin: 0 0 20px; }

/* ---------- Sections (divider + heading + content) ---------- */
.nt-ep-sec { margin-top: 60px; }
.nt-ep-sec > hr {
	display: block;
	height: 0;
	margin: 0 0 15px;
	border: 0;
	border-top: 1px solid #000;
	background: none;
}
.nt-ep .nt-ep-sec__title {
	margin: 0;
	padding: 20px 0;
	font-family: var(--nt-font-head);
	font-size: 30px;
	font-weight: 700;
	line-height: 37px;
	color: var(--nt-primary);
}

.nt-ep-video iframe { display: block; width: 100%; aspect-ratio: 16 / 9; border: 0; }
.nt-ep-spotify { display: inline-block; line-height: 0; }

/* Guests */
.nt-ep-guests { display: flex; flex-direction: column; gap: 40px; }
.nt-ep-guest { display: flex; flex-direction: row; gap: 30px; justify-content: center; align-items: center; }
.nt-ep-guest__photo { flex: 0 0 auto; width: 250px; max-width: none; height: auto; aspect-ratio: 1 / 1.5; border-radius: 25px; object-fit: cover; }
.nt-ep-guest__body { flex: 1 1 0; min-width: 0; font-family: var(--nt-font-head); font-size: 18px; line-height: 26px; color: #000; }
.nt-ep-guest__body h3 { margin: 0 0 20px; font-family: var(--nt-font-head); font-size: 29px; font-weight: 400; line-height: 34.8px; color: #000; }
.nt-ep-guest__body p { margin: 0 0 27px; }

/* Sources & references */
.nt-ep-source .nt-ep-card__img img { display: block; width: 100%; max-width: 100%; height: 270px; border-radius: 25px; object-fit: cover; }

/* Free guides */
.nt-ep-guides { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; }
.nt-ep-guide { display: flex; flex-direction: column; overflow: hidden; border-radius: 20px; background: var(--nt-primary); }
.nt-ep-guide__img { display: block; width: 100%; height: auto; object-fit: cover; }
.nt-ep-guide__bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 20px; margin-top: auto; padding: 40px 60px; background: var(--nt-primary); }
.nt-ep .nt-ep-btn {
	display: inline-block;
	padding: 10px 30px;
	border-radius: 90px;
	background: #fff;
	color: var(--nt-primary);
	font-family: var(--nt-font-body);
	font-size: 17px;
	font-weight: 500;
	line-height: 25px;
	text-align: center;
	text-decoration: none;
}
.nt-ep .nt-ep-btn:hover,
.nt-ep .nt-ep-btn:focus { background: #fff; color: var(--nt-primary); opacity: .9; }

/* Additional podcasts */
.nt-ep-related__track {
	display: flex;
	gap: 24px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	-ms-overflow-style: none;
	overscroll-behavior-x: contain;
}
.nt-ep-related__track::-webkit-scrollbar { display: none; }
.nt-ep-related__track:focus-visible { outline: 2px solid currentColor; outline-offset: 6px; }
.nt-ep-related__track .nt-ep-card { flex: 0 0 calc((100% - 48px) / 3); scroll-snap-align: start; }
.nt-ep-related__nav { display: flex; justify-content: center; gap: 15px; margin-top: 30px; }
.nt-ep-related__nav[hidden] { display: none; }
.nt-ep .nt-ep-related__arrow,
.nt-ep .nt-ep-related__arrow:hover,
.nt-ep .nt-ep-related__arrow:focus {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: #000;
	color: #fff;
	box-shadow: none;
	cursor: pointer;
}
.nt-ep .nt-ep-related__arrow:hover { opacity: .85; }
.nt-ep .nt-ep-related__arrow:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
.nt-ep .nt-ep-related__arrow:disabled { opacity: .35; cursor: default; }
.nt-ep-related__arrow svg { width: 12px; height: 18px; fill: currentColor; }
.nt-ep .nt-ep-card { display: block; color: inherit; text-decoration: none; }
.nt-ep-card__img { display: block; }
.nt-ep-card__img img { display: block; width: 100%; height: 270px; border-radius: 25px; object-fit: cover; }
.nt-ep-card__img--empty { height: 270px; border-radius: 25px; background: var(--nt-accent, #1b404e); }
.nt-ep-card__foot { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 10px; padding: 0 2px; }
.nt-ep-card__title { flex: 1; font-family: var(--nt-font-body); font-size: 18px; font-weight: 600; line-height: 26px; color: #000; }
.nt-ep-card__arrow { flex-shrink: 0; font-size: 75px; font-weight: 700; line-height: 1; color: #646464; }

/* Transcript: tabs (grid: tab row, then the panels stacked in one cell) */
.nt-ep-tabs {
	display: grid;
	grid-template-columns: repeat(var(--nt-tabs, 1), max-content) 1fr;
	gap: 10px;
	margin-top: 20px;
}
.nt-ep .nt-ep-tab {
	grid-row: 1;
	padding: 15px 35px;
	border: 0;
	border-radius: 0;
	background: #f1f2f3;
	box-shadow: none;
	color: #000;
	font-family: var(--nt-font-body);
	font-size: 16px;
	font-weight: 400;
	line-height: 24px;
	text-align: center;
	text-transform: none;
	cursor: pointer;
}
.nt-ep .nt-ep-tab:hover,
.nt-ep .nt-ep-tab:focus { background: #f1f2f3; color: #000; }
.nt-ep .nt-ep-tab.is-active,
.nt-ep .nt-ep-tab.is-active:hover,
.nt-ep .nt-ep-tab.is-active:focus { background: var(--nt-accent); color: #fff; }
.nt-ep .nt-ep-tab:focus-visible { outline: 2px solid var(--nt-primary); outline-offset: 2px; }

.nt-ep-panel { grid-row: 2; grid-column: 1 / -1; padding: 20px; background: #fff; }
.nt-ep-panel[hidden] { display: none; }

.nt-ep-tx { font-family: var(--nt-font-head); font-size: 17px; font-weight: 400; line-height: 25.5px; color: #000; }
.nt-ep-tx.is-collapsible { position: relative; max-height: 200px; overflow: hidden; transition: max-height .3s ease-out; }
.nt-ep-tx.is-collapsible::after {
	content: '';
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	height: 100px;
	background-image: linear-gradient(0deg, #fff 10%, transparent);
	pointer-events: none;
}
.nt-ep-tx.is-collapsible.is-expanded { max-height: 25000px; transition: max-height .3s ease-in; }
.nt-ep-tx.is-collapsible.is-expanded::after { display: none; }

.nt-ep .nt-ep-more {
	display: inline-block;
	margin: 20px 0;
	padding: 15px 25px;
	border: 0;
	border-radius: 0;
	background: linear-gradient(180deg, #339e67 0%, #29f2c040 100%);
	box-shadow: none;
	color: #fff;
	font-family: var(--nt-font-head);
	font-size: 17px;
	font-weight: 400;
	line-height: 25.5px;
	text-align: center;
	text-transform: none;
	cursor: pointer;
}
.nt-ep .nt-ep-more:hover,
.nt-ep .nt-ep-more:focus { background: linear-gradient(180deg, #339e67 0%, #29f2c040 100%); color: #fff; }

/* ---------- Disclaimer + previous / next ---------- */
.nt-ep-foot { padding-bottom: 70px; background: var(--nt-bg); }
.nt-ep-disclaimer {
	width: min(100%, var(--nt-container));
	margin: 0 auto;
	padding: 0 30px 40px;
	text-align: center;
	font-family: var(--nt-font-body);
	font-size: 13px;
	font-style: italic;
	font-weight: 400;
	line-height: 20px;
	color: var(--nt-footer-text);
}

.nt-ep-nav {
	box-sizing: border-box;
	display: flex;
	align-items: stretch;
	width: min(100%, var(--nt-container));
	margin: 0 auto;
	padding: 20px;
	border-top: 2px solid #000;
	border-bottom: 2px solid #000;
}
.nt-ep-nav__side { display: flex; flex: 1 1 0; min-width: 0; }
.nt-ep-nav__side--next { justify-content: flex-end; text-align: right; }
.nt-ep-nav__side a { display: flex; align-items: center; gap: 15px; min-width: 0; color: var(--nt-primary); text-decoration: none; }
.nt-ep-nav__arrow { flex: 0 0 auto; width: 30px; height: 30px; fill: currentColor; }
.nt-ep-nav__text { display: flex; flex-direction: column; min-width: 0; }
.nt-ep-nav__label { font-family: var(--nt-font-body); font-size: 22px; font-weight: 600; line-height: 33px; color: #000; }
.nt-ep-nav__title { overflow: hidden; font-family: var(--nt-font-body); font-size: 11.9px; font-weight: 400; line-height: 17.85px; white-space: nowrap; text-overflow: ellipsis; color: #000; }
.nt-ep-nav__sep { flex: 0 0 1px; width: 1px; background: #d5d8dc; }

/* ---------- Tablet ---------- */
@media (max-width: 1024px) {
	.nt-ep-hero__title { font-size: 35px; line-height: 35px; }
	.nt-ep-guides { grid-template-columns: repeat(2, 1fr); }
}

/* ---------- Mobile ---------- */
@media (max-width: 767px) {
	.nt-ep-hero { min-height: 500px; padding: 60px 20px; }
	.nt-ep-hero__sub { width: 100%; }

	.nt-ep__inner { width: calc(100% - 40px); }
	.nt-ep__row { flex-direction: column; }
	.nt-ep__sub { flex: 0 0 auto; width: 100%; gap: 20px; }
	.nt-ep__about { gap: 20px; }
	.nt-ep .nt-ep__subhead { font-size: 35px; }
	.nt-ep .nt-ep__title { font-size: 35px; line-height: 42px; }

	.nt-ep .nt-ep-sec__title { font-size: 27px; line-height: 30px; }
	.nt-ep-guides { grid-template-columns: 1fr; }
	.nt-ep-guest { flex-direction: column; text-align: left; }
	.nt-ep-guest__photo { width: 200px; margin-top: 50px; }
	.nt-ep-related__track .nt-ep-card { flex-basis: calc((100% - 24px) / 2); }

	/* Tabs become an accordion: each tab is followed by its panel. */
	.nt-ep-tabs { display: block; }
	.nt-ep .nt-ep-tab { display: block; width: 100%; margin-bottom: 10px; }
	.nt-ep-panel { margin-bottom: 10px; }

	.nt-ep-nav__label { font-size: 22px; }
}
@media (max-width: 480px) {
	.nt-ep-related__track .nt-ep-card { flex-basis: 100%; }
}
