/* ============================================================
   css_podcast.css — e-CMS Podcast Public Pages
   Only podcast-specific components. All colors use CSS vars
   from dark.css / light.css. No hardcoded colors except the
   RSS orange (brand color) and type badge accents.
   ============================================================ */

/* ── RSS subscribe button ─────────────────────────────────── */
.podcast-rss-btn {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background: #f97316;
	color: #fff !important;
	font-size: 0.78rem;
	font-weight: 700;
	padding: 6px 14px;
	border-radius: 20px;
	text-decoration: none !important;
	transition: background 0.18s, opacity 0.18s;
	white-space: nowrap;
}
.podcast-rss-btn:hover { background: #ea6c04; opacity: 1; }

/* ── Explicit badge ───────────────────────────────────────── */
.podcast-explicit-badge {
	display: inline-block;
	background: var(--normaltext);
	color: var(--normalbg);
	font-size: 0.6rem;
	font-weight: 800;
	width: 17px;
	height: 17px;
	line-height: 17px;
	text-align: center;
	border-radius: 3px;
	vertical-align: middle;
	opacity: 0.7;
}
.podcast-explicit-badge-sm { width: 14px; height: 14px; line-height: 14px; font-size: 0.55rem; }

/* ── Episode type badges ──────────────────────────────────── */
.podcast-ep-type-badge {
	display: inline-block;
	font-size: 0.62rem;
	font-weight: 700;
	text-transform: uppercase;
	padding: 2px 7px;
	border-radius: 20px;
	letter-spacing: 0.04em;
}
.podcast-ep-type-trailer { background: #f59e0b; color: #fff; }
.podcast-ep-type-bonus   { background: #06b6d4; color: #fff; }

/* ── Episode label (Ep. number) ───────────────────────────── */
.podcast-ep-label {
	font-size: 0.72rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--normaltext);
	opacity: 0.5;
}

/* ── Podcast identity panel (listing page) ────────────────── */
.podcast-identity-panel { padding: 0 !important; overflow: hidden; }

.podcast-identity-inner {
	display: flex;
	align-items: flex-start;
	gap: 18px;
	padding: 20px 22px;
}
.podcast-cover-wrap {
	flex-shrink: 0;
	width: 100px;
	height: 100px;
	border-radius: 10px;
	overflow: hidden;
	border: 1px solid var(--normalline);
	box-shadow: 0 4px 14px rgba(0,0,0,0.18);
}
.podcast-cover-img { width: 100%; height: 100%; object-fit: cover; display: block; }
.podcast-identity-text { flex: 1; min-width: 0; }

/* Banner strip below identity bar */
.podcast-banner-strip { width: 100%; max-height: 180px; overflow: hidden; }
.podcast-banner-img   { width: 100%; max-height: 180px; object-fit: cover; display: block; }

/* ── Episode list rows ────────────────────────────────────── */
.podcast-episode-list { display: flex; flex-direction: column; }

.podcast-episode-row {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 12px 0;
	border-bottom: 1px solid var(--normalline);
	transition: background 0.12s;
}
.podcast-episode-row:last-child { border-bottom: none; }

.podcast-ep-cover-link { flex-shrink: 0; display: block; }
.podcast-ep-cover {
	width: 68px;
	height: 68px;
	border-radius: 8px;
	object-fit: cover;
	display: block;
	border: 1px solid var(--normalline);
}
.podcast-ep-cover-placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--altbg);
	color: var(--normaltext);
	opacity: 0.4;
	font-size: 1.3rem;
}

.podcast-ep-body     { flex: 1; min-width: 0; }
.podcast-ep-topline  { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; margin-bottom: 4px; }
.podcast-ep-date     { font-size: 0.72rem; color: var(--normaltext); opacity: 0.45; }

.podcast-ep-title {
	font-size: 0.97rem;
	font-weight: 700;
	color: var(--normaltext);
	margin: 0 0 4px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.podcast-ep-title a { color: var(--normaltext); text-decoration: none; }
.podcast-ep-title a:hover { color: var(--alink); }

.podcast-ep-desc {
	font-size: 0.82rem;
	margin: 0 0 8px;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.podcast-ep-footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	flex-wrap: wrap;
}
.podcast-ep-stats { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.podcast-ep-stat  { font-size: 0.73rem; display: flex; align-items: center; gap: 4px; }

.podcast-listen-btn {
	background: var(--altbg);
	color: var(--normaltext);
	border: 1px solid var(--normalline);
	border-radius: 20px;
	font-size: 0.75rem;
	font-weight: 700;
	padding: 4px 13px;
	text-decoration: none;
	transition: background 0.15s, color 0.15s, border-color 0.15s;
	white-space: nowrap;
}
.podcast-listen-btn:hover {
	background: var(--alink);
	color: #fff;
	border-color: var(--alink);
}

/* ── Sidebar host photo ───────────────────────────────────── */
.podcast-sidebar-host-pic {
	width: 72px;
	height: 72px;
	border-radius: 50%;
	object-fit: cover;
	border: 2px solid var(--normalline);
}

/* ── About content ────────────────────────────────────────── */
.podcast-about-content {
	font-size: 0.9rem;
	line-height: 1.75;
}

/* ── Host pic in section heading ──────────────────────────── */
.podcast-host-pic {
	width: 52px;
	height: 52px;
	border-radius: 50%;
	object-fit: cover;
	border: 2px solid var(--normalline);
	flex-shrink: 0;
}

/* ── Episode page: header block ───────────────────────────── */
.podcast-ep-header {
	display: flex;
	gap: 20px;
	align-items: flex-start;
	margin-bottom: 16px;
}
.podcast-ep-page-cover {
	width: 120px;
	height: 120px;
	border-radius: 10px;
	object-fit: cover;
	flex-shrink: 0;
	border: 1px solid var(--normalline);
	box-shadow: 0 4px 14px rgba(0,0,0,0.16);
}
.podcast-ep-header-meta { flex: 1; min-width: 0; }

/* ── Audio player ─────────────────────────────────────────── */
.podcast-player-shell {
	background: var(--altbg);
	border: 1px solid var(--normalline);
	border-radius: 12px;
	padding: 14px 16px;
}
.podcast-player {
	display: flex;
	align-items: center;
	gap: 12px;
}
.podcast-play-btn {
	width: 42px;
	height: 42px;
	border-radius: 50%;
	background: var(--alink);
	border: none;
	color: #fff;
	font-size: 1rem;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	flex-shrink: 0;
	transition: opacity 0.15s;
}
.podcast-play-btn:hover { opacity: 0.85; }

.podcast-player-progress-area { flex: 1; min-width: 0; }
.podcast-player-times {
	display: flex;
	justify-content: space-between;
	font-size: 0.7rem;
	color: var(--normaltext);
	opacity: 0.55;
	margin-bottom: 5px;
}
.podcast-scrubber {
	width: 100%;
	-webkit-appearance: none;
	appearance: none;
	height: 4px;
	border-radius: 2px;
	background: var(--normalline);
	outline: none;
	cursor: pointer;
}
.podcast-scrubber::-webkit-slider-thumb {
	-webkit-appearance: none;
	width: 13px; height: 13px;
	border-radius: 50%;
	background: var(--alink);
	cursor: pointer;
}
.podcast-scrubber::-moz-range-thumb {
	width: 13px; height: 13px;
	border-radius: 50%;
	background: var(--alink);
	cursor: pointer;
	border: none;
}

.podcast-player-controls {
	display: flex;
	align-items: center;
	gap: 6px;
	flex-shrink: 0;
}
.podcast-ctrl-btn {
	background: none;
	border: none;
	color: var(--normaltext);
	cursor: pointer;
	opacity: 0.7;
	padding: 4px;
	transition: opacity 0.15s;
}
.podcast-ctrl-btn:hover { opacity: 1; }

.podcast-skip-btn {
	font-size: 0.75rem;
	position: relative;
	width: 32px;
	height: 32px;
	display: flex;
	align-items: center;
	justify-content: center;
}
.podcast-skip-label {
	font-size: 0.5rem;
	font-weight: 700;
	position: absolute;
	bottom: 0;
	left: 50%;
	transform: translateX(-50%);
	line-height: 1;
	color: var(--normaltext);
}

.podcast-speed-wrap { position: relative; }
.podcast-speed-btn {
	background: var(--normalbg);
	border: 1px solid var(--normalline);
	color: var(--normaltext);
	font-size: 0.72rem;
	font-weight: 700;
	padding: 3px 8px;
	border-radius: 6px;
	cursor: pointer;
	white-space: nowrap;
}
.podcast-speed-btn:hover { background: var(--altbg); }

.podcast-speed-menu {
	display: none;
	position: absolute;
	bottom: calc(100% + 5px);
	right: 0;
	background: var(--normalbg);
	border: 1px solid var(--normalline);
	border-radius: 8px;
	overflow: hidden;
	z-index: 100;
	min-width: 64px;
	box-shadow: 0 4px 16px rgba(0,0,0,0.14);
}
.podcast-speed-menu.open { display: block; }
.podcast-speed-option {
	display: block;
	width: 100%;
	background: none;
	border: none;
	color: var(--normaltext);
	font-size: 0.78rem;
	padding: 7px 12px;
	text-align: center;
	cursor: pointer;
}
.podcast-speed-option:hover { background: var(--altbg); }
.podcast-speed-option.active { font-weight: 700; color: var(--alink); }

.podcast-volume-wrap { display: flex; align-items: center; gap: 4px; }
.podcast-volume-slider {
	-webkit-appearance: none;
	appearance: none;
	width: 60px; height: 3px;
	border-radius: 2px;
	background: var(--normalline);
	outline: none;
	cursor: pointer;
}
.podcast-volume-slider::-webkit-slider-thumb {
	-webkit-appearance: none;
	width: 11px; height: 11px;
	border-radius: 50%;
	background: var(--normaltext);
	cursor: pointer;
}
.podcast-volume-slider::-moz-range-thumb {
	width: 11px; height: 11px;
	border-radius: 50%;
	background: var(--normaltext);
	cursor: pointer;
	border: none;
}

/* ── Stats / likes bar ─────────────────────────────────────── */
.podcast-stats-bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 10px;
	padding: 10px 0;
	border-top: 1px solid var(--normalline);
	border-bottom: 1px solid var(--normalline);
}
.podcast-like-link {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	font-size: 0.85rem;
	font-weight: 600;
	text-decoration: none;
	color: var(--normaltext);
	transition: opacity 0.15s;
}
.podcast-like-link:hover { opacity: 0.7; color: var(--normaltext); }
.podcast-liked { opacity: 0.55; cursor: default; }

/* ── Prev / Next nav ───────────────────────────────────────── */
.podcast-ep-nav {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10px;
	padding-top: 16px;
	border-top: 1px solid var(--normalline);
}
.podcast-nav-btn {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 12px 14px;
	border-radius: 10px;
	background: var(--altbg);
	border: 1px solid var(--normalline);
	color: var(--normaltext);
	text-decoration: none;
	transition: border-color 0.15s, background 0.15s;
	font-size: 0.88rem;
}
.podcast-nav-btn:hover { border-color: var(--alink); color: var(--normaltext); background: var(--normalbg); }
.podcast-nav-btn-next  { justify-content: flex-end; }
.podcast-nav-label { font-size: 0.68rem; text-transform: uppercase; font-weight: 700; letter-spacing: 0.06em; opacity: 0.45; margin-bottom: 2px; }
.podcast-nav-title {
	font-weight: 600;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

/* ── Responsive ────────────────────────────────────────────── */
@media (max-width: 640px) {
	.podcast-identity-inner { flex-direction: column; align-items: center; text-align: center; }
	.podcast-cover-wrap     { width: 80px; height: 80px; }
	.podcast-ep-cover       { width: 56px; height: 56px; }
	.podcast-ep-title       { white-space: normal; }

	.podcast-ep-header      { flex-direction: column; align-items: center; text-align: center; }
	.podcast-ep-page-cover  { width: 100px; height: 100px; }

	.podcast-player         { flex-wrap: wrap; }
	.podcast-player-controls { width: 100%; justify-content: center; }

	.podcast-ep-nav         { grid-template-columns: 1fr; }
	.podcast-nav-btn-next   { justify-content: flex-start; }
}


/* ===== PASS 1 PODCAST MODERNIZATION ===== */

/* Hero card */
.podcast-identity-panel{
    border-radius:16px;
    overflow:hidden;
}
.podcast-identity-inner{
    padding:28px;
    gap:24px;
}
.podcast-cover-wrap{
    width:130px;
    height:130px;
    border-radius:14px;
    box-shadow:0 10px 30px rgba(0,0,0,.22);
}
.podcast-identity-text .blog-post-single-title{
    font-size:2rem;
    line-height:1.15;
}

/* Modern banner with hover effect like posts */
.podcast-banner-strip{
    position:relative;
    max-height:240px;
    overflow:hidden;
}
.podcast-banner-strip::after{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(to top,rgba(0,0,0,.45),rgba(0,0,0,.05));
    pointer-events:none;
}
.podcast-banner-img{
    width:100%;
    max-height:240px;
    object-fit:cover;
    transition:transform .7s ease;
}
.podcast-identity-panel:hover .podcast-banner-img{
    transform:scale(1.06);
}

/* About + host cards */
.podcast-about-content{
    line-height:1.7;
}
.blog-post-single-modern:has(.podcast-about-content),
.blog-post-single-modern:has(.podcast-sidebar-host-pic){
    transition:transform .18s ease, box-shadow .18s ease;
}
.blog-post-single-modern:has(.podcast-about-content):hover,
.blog-post-single-modern:has(.podcast-sidebar-host-pic):hover{
    transform:translateY(-2px);
}

/* Episode cards instead of rows */
.podcast-episode-row{
    border:1px solid var(--normalline);
    border-radius:14px;
    padding:16px;
    margin-bottom:12px;
    background:var(--contentbg);
    transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.podcast-episode-row:hover{
    transform:translateY(-2px);
    box-shadow:0 8px 24px rgba(0,0,0,.12);
    border-color:var(--alink);
}
.podcast-ep-cover{
    width:84px;
    height:84px;
    border-radius:12px;
}
.podcast-ep-title{
    font-size:1.05rem;
    margin-bottom:6px;
}
.podcast-ep-footer{
    margin-top:10px;
}
.podcast-listen-btn{
    padding:7px 16px;
    font-size:.8rem;
    font-weight:800;
}

/* Mobile */
@media (max-width: 768px){
    .podcast-identity-inner{
        flex-direction:column;
        align-items:center;
        text-align:center;
    }
    .podcast-cover-wrap{
        width:120px;
        height:120px;
    }
    .podcast-identity-text .blog-post-single-title{
        font-size:1.6rem;
    }
}


/* PASS 2 */
.podcast-banner-strip:hover .podcast-banner-img{
    transform:scale(1.06);
}

.podcast-cover-wrap{
    width:160px;
    height:160px;
}

.podcast-identity-inner{
    min-height:190px;
    align-items:center;
}

.podcast-identity-text .blog-post-single-title{
    font-size:2.4rem;
}

.podcast-site-btn{
    display:inline-flex;
    align-items:center;
    gap:6px;
    padding:6px 14px;
    border-radius:20px;
    border:1px solid var(--normalline);
    color:var(--normaltext);
    text-decoration:none;
}

.podcast-site-btn:hover{
    border-color:var(--alink);
    color:var(--alink);
}

.podcast-episode-row{
    padding:20px;
    border-radius:16px;
}

.podcast-ep-cover{
    width:96px;
    height:96px;
}

.podcast-ep-title{
    font-size:1.15rem;
}

.podcast-about-content,
.podcast-host-pic{
    height:100%;
}

.podcast-discover-heading{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;margin-bottom:10px}.podcast-discover-item{display:flex;gap:10px;align-items:center;text-decoration:none;padding:8px 0;border-bottom:1px solid var(--normalline)}.podcast-discover-cover{width:48px;height:48px;border-radius:8px;object-fit:cover;border:1px solid var(--normalline)}.podcast-discover-title{font-size:.82rem;font-weight:600;line-height:1.25;color:var(--normaltext)}.podcast-discover-stat{font-size:.72rem;opacity:.75;color:var(--normaltext)}

/* Episode page modernization */
.podcast-episode-hero{
background:var(--altbg);
border:1px solid var(--normalline);
border-radius:18px;
padding:24px;
margin-bottom:20px;
}

.podcast-ep-page-cover{
width:180px;
height:180px;
border-radius:16px;
box-shadow:0 10px 30px rgba(0,0,0,.22);
}

.podcast-player-shell{
border-radius:18px;
padding:18px;
margin-bottom:20px;
}

.podcast-stats-bar{
background:var(--altbg);
border:1px solid var(--normalline);
border-radius:14px;
padding:14px 18px;
}

.podcast-nav-btn{
border-radius:14px;
padding:16px;
}

.podcast-nav-title{
font-size:.95rem;
font-weight:700;
}

@media (max-width:768px){
 .podcast-ep-page-cover{
   width:140px;
   height:140px;
 }
 .podcast-episode-hero{
   padding:18px;
 }
}

.podcast-notes-card{background:var(--altbg);border:1px solid var(--normalline);border-radius:18px;padding:24px}
.podcast-player-shell{box-shadow:0 8px 24px rgba(0,0,0,.12)}
.podcast-play-btn{width:56px;height:56px;font-size:1.2rem}
.podcast-stats-bar{justify-content:center;gap:30px}
.podcast-ep-nav{gap:16px}
.podcast-nav-btn{min-height:92px}
