/* ===== Podcast Hub (match Casper scale) ===== */

/* Layout width same as posts */
.podcast-hub .gh-canvas{
  --hub-max: 1200px;
  max-width: var(--hub-max);
  width: min(92vw, var(--hub-max));
  margin-inline: auto;
  padding-inline: 1.5rem;
}

/* Headings – mirror Casper post title scale */
.podcast-hub .hub-head{ margin: 1.25rem 0 1.75rem; }
.podcast-hub .hub-title{
  /* close to Casper .article-title */
  font-size: clamp(2.6rem, 6vw, 4.2rem);
  font-weight: 600;
  line-height: 1.12;
  letter-spacing: -.01em;
  margin: 0 0 .6rem;
}
.podcast-hub .hub-sub{
  /* same body sizing as .gh-content paragraphs */
  font-size: 1.125rem;
  line-height: 1.8;
  opacity: .9;
  margin: 0 0 2rem;
}

/* Grid: 3 / 2 / 1 */
.podcast-hub .hub-grid{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}
@media (max-width: 1150px){
  .podcast-hub .hub-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px){
  .podcast-hub .gh-canvas{ width: 94vw; padding-inline: 1rem; }
  .podcast-hub .hub-grid{ grid-template-columns: 1fr; gap: 20px; }
}

/* Cards */
.podcast-hub .ep-card{
  min-width: 0;
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid var(--majera-border);
  background: var(--majera-card-bg);
  transition:
    box-shadow .15s ease,
    border-color .15s ease,
    transform .03s ease;
}

.podcast-hub .ep-card:hover{
  box-shadow: 0 10px 26px rgba(0,0,0,.12);
  border-color: var(--majera-accent-soft);
}

/* Thumbnail placeholder */
.podcast-hub .ep-thumb{
  aspect-ratio: 4 / 3;
  background: var(--majera-bg);
}


/* Card text – align with Casper body text scale */
.podcast-hub .ep-meta{ padding: 1.1rem 1rem 1.25rem; }
.podcast-hub .ep-title{
  font-size: 1.25rem;       /* similar to post card titles */
  font-weight: 700;
  line-height: 1.7;
  margin: 0 0 .4rem;
}
.podcast-hub .ep-date{
  font-size: 1.5rem;
  line-height: 1.6;
  opacity: .8;
}

/* Loading */
.podcast-hub .hub-loading{
  padding: 2rem 0; text-align:center; opacity:.75;
}

/* Kill Casper accent styles inside the podcast hub */
.podcast-hub {
  /* neutralize accent just for this page area (optional) */
  --ghost-accent-color: currentColor;
}


/* Titles: plain black, no underline, no box-shadow underline */
.podcast-hub .ep-title,
.podcast-hub .ep-title a,
.podcast-hub .ep-title a:visited,
.podcast-hub .ep-title a:hover,
.podcast-hub .ep-title a:focus,
.podcast-hub .ep-title a:active {
  font-size: 1.8rem;       /* bump up size */
  font-weight: 700;
  line-height: 1.5; 
  color: #111 !important;
  text-decoration: none !important; /* remove underline */
  box-shadow: none !important;       /* remove Casper's underline highlight */
  border-bottom: none !important;    /* ensure no border */
}

/* Remove underlines from any links inside cards */
.podcast-hub .ep-card a {
  color: inherit !important;
  text-decoration: none !important;
  box-shadow: none !important;
  border-bottom: none !important;
}

/* Remove link styling from the whole card */
.podcast-hub .ep-card,
.podcast-hub .ep-card:link,
.podcast-hub .ep-card:visited,
.podcast-hub .ep-card:hover,
.podcast-hub .ep-card:focus,
.podcast-hub .ep-card:active {
  text-decoration: none !important;
  box-shadow: none !important;   /* Casper’s underline effect */
  color: inherit !important;      /* ignore accent color */
}

/* Extra safety: nothing inside the card gets underlined */
.podcast-hub .ep-card * {
  text-decoration: none !important;
  box-shadow: none !important;
}

.podcast-hub .ep-badge {
  display: none !important;
}

.podcast-hub .show-nav { 
  display: flex; 
  justify-content: flex-start; 
  margin-block: .5rem 1rem; 
}
.podcast-hub .hub-controls { display: inline-flex; gap: .5rem; }
.podcast-hub .sort-toggle { padding: .4rem .8rem; border-radius: .5rem; }

/* 1) Soften header spacing a touch */
.podcast-hub .hub-head { margin: 1rem 0 1.25rem; }

/* 2) Tighten the intro block + kill extra bottom margin from its last child */
.podcast-hub .hub-intro { margin: .75rem 0 .75rem; }
.podcast-hub .hub-intro > *:last-child { margin-bottom: 0 !important; }

/* 3) Reduce the spacer under the sort controls */
.podcast-hub .show-nav { margin-block: .25rem .5rem; }

/* 4) Ensure episodes section doesn’t add unexpected top margin */
.podcast-hub .hub-episodes { margin-top: .5rem; }

.hub-early-access {
  margin: 2.5rem 0 3rem;
  padding: 1.75rem 1.5rem;
  border-radius: 1rem;
  border: 1px solid var(--majera-border);
  background: var(--majera-card-bg);
}

.hub-early-access .ea-label {
  display: inline-block;
  font-size: 1.5rem;
  font-weight: 400;
  letter-spacing: 0.04em;
  padding: 0.25rem 0.6rem;
  border-radius: 999px;
  background: rgba(0, 0, 0, 0.06);
  margin-bottom: 0.75rem;
}

.hub-early-access .ea-card-link {
  display: flex;
  gap: 1rem;
  text-decoration: none;
  align-items: flex-start;
}

.hub-early-access .ea-cover {
  margin: 0;
  flex: 0 0 auto;
  max-width: 120px;
}

.hub-early-access .ea-cover img {
  width: 100%;
  height: auto;
  border-radius: 0.75rem;
  display: block;
}

.hub-early-access .ea-text {
  flex: 1 1 auto;
}

.hub-early-access .ea-title {
  font-size: 1.8rem;
  margin: 0 0 0.5rem;
}

.hub-early-access .ea-excerpt {
  margin: 0 0 0.75rem;
}

.hub-early-access .ea-note {
  margin: 0;
  font-size: 0.85rem;
  opacity: 0.8;
}

