@import url('https://fonts.googleapis.com/css2?family=Calistoga&family=Inter:wght@400;500;600;700;800;900&display=swap');

/*
Theme CSS — Theatre Audience Podcast
Cleaned section map

01. Global setup and shared elements
02. Header and navigation
03. Shared heroes, buttons, grids and footer base
04. Homepage
05. Season pages and episode rows
06. Audio player and episode sharing
07. About page
08. Contact page
09. Listen page
10. In Conversation archive and single pages
11. Footer
12. Radius system
*/

/* --------------------------------------------------
   01. Global setup and shared elements
-------------------------------------------------- */
:root {
    --red:#a3242d;
    --cream:#fff6ef;
    --black:#111315;
    --black2:#1b1e1f;
    --blue:#0b4b80;
    --line-light:rgba(255, 246, 239, .24);
    --line-dark:rgba(17, 19, 21, .16)
}

* {
    box-sizing:border-box
}

html {
    scroll-behavior:smooth
}

body {
    margin:0;
    background:var(--black);
    color:var(--cream);
    font-family:Inter, system-ui, sans-serif;
    line-height:1.45
}

img {
    display:block;
    max-width:100%
}

a {
    color:inherit;
    text-decoration:none
}

h1, h2, h3 {
    font-family:Calistoga, Georgia, serif;
    letter-spacing:-.035em;
    line-height:.9
}

/* --------------------------------------------------
   02. Header and navigation
-------------------------------------------------- */

.site-header {
    position:fixed;
    z-index:50;
    top:0;
    left:0;
    right:0;
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    padding:28px clamp(24px, 4.8vw, 78px);
    transition:.25s
}

.site-header.is-scrolled {
    background:rgba(163, 36, 45, .96);
    backdrop-filter:blur(14px)
}

.brand img, .custom-logo {
    width:158px;
    height:auto
}

.site-nav {
    display:flex;
    gap:30px;
    font-size:14px;
    font-weight:900
}

.site-nav a {
    padding-bottom:4px
}

.site-nav a:hover, .site-nav .current-menu-item a {
    border-bottom:1px solid
}

.menu-button {
    display:none
}

.mono {
    font-size:12px;
    text-transform:uppercase;
    letter-spacing:.13em;
    font-weight:900;
    margin:0 0 14px
}

.red {
    color:var(--red)
}

/* --------------------------------------------------
   03. Shared heroes, buttons, grids and footer base
-------------------------------------------------- */

.hero, .page-hero {
    position:relative;
    overflow:hidden;
    background:var(--red);
    padding:156px clamp(24px, 4.8vw, 78px) 84px
}

.home-hero {
    min-height:705px;
    display:grid;
    grid-template-columns:minmax(0, 1fr) minmax(320px, 470px);
    gap:6vw;
    align-items:center
}

.hero:after, .page-hero:after {
    content:"";
    position:absolute;
    inset:0;
    background:radial-gradient(circle at 78% 35%, rgba(255, 246, 239, .12), transparent 30%), linear-gradient(90deg, rgba(0, 0, 0, .08), transparent 70%);
    pointer-events:none
}

.hero-copy, .latest-panel, .page-hero>* {
    position:relative;
    z-index:1
}

.hero h1, .page-hero h1 {
    font-size:clamp(58px, 8vw, 124px);
    margin:0 0 28px
}

.hero-copy p:not(.mono), .page-hero p:not(.mono) {
    font-size:clamp(19px, 2vw, 26px);
    max-width:680px
}

.actions {
    display:flex;
    align-items:center;
    gap:24px;
    flex-wrap:wrap;
    margin-top:28px
}

.button {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:52px;
    padding:0 28px;
    font-weight:900;
    border-radius:2px
}

.light {
    background:var(--cream);
    color:var(--red)
}

.archive-block {
    background:var(--cream);
    color:var(--black);
    padding:56px clamp(24px, 4.8vw, 78px) 78px
}

.section-title {
    display:flex;
    align-items:end;
    justify-content:space-between;
    gap:24px;
    margin-bottom:28px
}

.section-title h2 {
    font-size:clamp(38px, 4vw, 62px);
    margin:0
}

.section-title.dark {
    color:var(--cream)
}

.season-grid {
    display:grid;
    grid-template-columns:repeat(3, minmax(0, 1fr));
    gap:22px
}

.season-grid.compact {
    grid-template-columns:repeat(6, minmax(0, 1fr))
}

.season-card {
    overflow:hidden;
    border-radius:6px;
    box-shadow:0 16px 40px rgba(0, 0, 0, .14);
    transition:.25s
}

.season-card:hover {
    transform:translateY(-5px)
}

.season-card img {
    width:100%;
    aspect-ratio:1.18/1;
    object-fit:cover
}

.season-info {
    min-height:230px;
    color:var(--cream);
    padding:18px;
    display:flex;
    flex-direction:column
}

.tone-red .season-info {
    background:var(--red)
}

.tone-blue .season-info {
    background:var(--blue)
}

.tone-black .season-info {
    background:#202223
}

.season-title {
    display:flex;
    align-items:end;
    gap:16px
}

.season-title strong {
    font-family:Calistoga, Georgia, serif;
    font-size:68px;
    line-height:.86
}

.season-title span {
    font-size:13px;
    font-weight:800;
    text-transform:uppercase
}

.season-info hr {
    width:100%;
    border:0;
    border-top:1px solid rgba(255, 246, 239, .58);
    margin:16px 0
}

.small-button {
    margin-top: 18px;
    background: var(--cream);
    color: var(--red);
    padding: 11px 18px;
    font-weight: 900;
    width: max-content;
}

.season-detail {
    display:grid;
    grid-template-columns:minmax(0, 1fr) 360px;
    gap:48px;
    padding:48px clamp(24px, 4.8vw, 78px) 80px;
    background:var(--black)
}

.breadcrumb {
    color:rgba(255, 246, 239, .62);
    font-size:13px
}

.feed-list {
    display:grid;
    gap:14px
}

.feed-episode {
    border:1px solid var(--line-light);
    background:rgba(255, 246, 239, .025)
}

.feed-episode__head {
    width:100%;
    display:grid;
    grid-template-columns:118px minmax(0, 1fr) 155px 36px;
    gap:22px;
    align-items:center;
    text-align:left;
    background:transparent;
    border:0;
    color:var(--cream);
    padding:18px;
    cursor:pointer;
    min-height:142px
}

.feed-episode__head>img {
    width:118px;
    height:118px;
    object-fit:cover;
    border-radius:2px
}

.feed-episode__copy {
    display:grid;
    gap:8px
}

.feed-episode__copy strong {
    font-family:Calistoga, Georgia, serif;
    font-size:30px;
    line-height:1;
    letter-spacing:-.03em
}

.feed-episode__meta {
    display:grid;
    gap:6px;
    color:rgba(255, 246, 239, .76)
}

.feed-episode__meta b {
    color:var(--cream)
}

.feed-episode__meta small {
    font-size:12px;
    line-height:1.3;
    color:rgba(255, 246, 239, .66)
}

.plus {
    font-size:30px
}

.feed-episode.is-open .plus {
    transform:rotate(45deg)
}

.feed-episode__drawer {
    display:none;
    padding:0 18px 22px 172px
}

.feed-episode.is-open .feed-episode__drawer {
    display:block
}

.drawer-grid {
    display:grid;
    grid-template-columns:230px minmax(0, 1fr);
    gap:26px;
    padding-top:18px;
    border-top:1px solid var(--line-light)
}

.drawer-grid>img {
    width:100%;
    aspect-ratio:1/1;
    object-fit:cover
}

.drawer-grid p, .episode-description {
    color:rgba(255, 246, 239, .82)
}

.custom-audio-player {
    background:var(--cream);
    color:var(--black);
    border-radius:3px;
    padding:18px;
    margin-top:22px
}

.custom-audio-controls {
    display:grid;
    grid-template-columns:58px 1fr;
    gap:18px;
    align-items:center
}

.custom-play {
    width:58px;
    height:58px;
    border:0;
    border-radius:50%;
    background:var(--red);
    color:var(--cream);
    font-size:18px;
    cursor:pointer
}

.custom-progress-wrap {
    display:grid;
    gap:10px
}

.custom-time {
    display:flex;
    justify-content:space-between;
    font-size:12px;
    font-weight:900;
    letter-spacing:.08em;
    text-transform:uppercase;
    color:rgba(17, 19, 21, .68)
}

.custom-progress {
    width:100%;
    accent-color:var(--red);
    cursor:pointer
}

.custom-player-note {
    display:flex;
    justify-content:space-between;
    gap:16px;
    margin-top:14px;
    padding-top:14px;
    border-top:1px solid rgba(17, 19, 21, .14);
    font-size:12px
}

.custom-player-note span {
    text-transform:uppercase;
    letter-spacing:.1em;
    font-weight:900;
    color:var(--red)
}

.custom-player-note strong {
    color:rgba(17, 19, 21, .72)
}

.links {
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-top:16px
}

.links a {
    border:1px solid rgba(255, 246, 239, .32);
    padding:10px 12px;
    font-size:13px;
    font-weight:900
}

.sidebar {
    display:grid;
    align-content:start;
    gap:18px
}

.side-panel {
    background:var(--black2);
    border:1px solid var(--line-light);
    padding:24px
}

.copy-page {
    background:var(--cream);
    color:var(--black);
    padding:60px clamp(24px, 4.8vw, 78px);
    font-size:21px
}

.platforms {
    background:var(--cream);
    color:var(--black);
    padding:60px clamp(24px, 4.8vw, 78px);
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:18px
}

.platforms a {
    background:white;
    border:1px solid var(--line-dark);
    min-height:150px;
    padding:24px;
    display:flex;
    flex-direction:column;
    justify-content:space-between
}

.platforms strong {
    font-family:Calistoga, Georgia, serif;
    font-size:30px
}

.platforms span {
    font-weight:900;
    color:var(--red)
}

.site-footer {
    display:grid;
    grid-template-columns:180px minmax(0, 1fr) 420px;
    gap:48px;
    align-items:start;
    background:var(--red);
    padding:46px clamp(24px, 4.8vw, 78px);
    border-top:1px solid var(--line-light)
}

.footer-logo img {
    width:160px;
    height:auto
}

.site-footer form {
    display:flex;
    gap:10px
}

.site-footer input {
    flex:1;
    min-width:0;
    padding:15px;
    background:transparent;
    border:1px solid rgba(255, 246, 239, .42);
    color:var(--cream)
}

.site-footer button {
    border:0;
    background:var(--cream);
    color:var(--red);
    padding:0 22px;
    font-weight:900
}

@media(max-width:1350px) {
    .home-hero {
        grid-template-columns:1fr
    }

    .season-grid.compact {
        grid-template-columns:repeat(3, 1fr)
    }

    .season-detail {
        grid-template-columns:1fr
    }

    .site-footer {
        grid-template-columns:1fr
    }

}

@media(max-width:760px) {
    .site-header {
        padding:20px 22px
    }

    .brand img, .custom-logo {
        width:118px
    }

    .menu-button {
        display:grid;
        gap:6px;
        background:transparent;
        border:0
    }

    .menu-button span {
        display:block;
        width:28px;
        height:2px;
        background:var(--cream)
    }

    .site-nav {
        display:none;
        position:fixed;
        top:78px;
        left:16px;
        right:16px;
        background:var(--red);
        padding:24px;
        border:1px solid var(--line-light);
        flex-direction:column;
        align-items:flex-start
    }

    .site-nav.is-open {
        display:flex
    }

    .hero, .page-hero {
        padding-top:130px
    }

    .hero h1, .page-hero h1 {
        font-size:clamp(52px, 15vw, 78px)
    }

    .season-grid, .season-grid.compact, .platforms {
        grid-template-columns:1fr
    }

    .section-title {
        align-items:flex-start;
        flex-direction:column
    }

    .feed-episode__head {
        grid-template-columns:1fr;
        gap:10px
    }

    .feed-episode__head>img {
        width:100%;
        height:auto;
        aspect-ratio:1/1
    }

    .feed-episode__drawer {
        padding:0 18px 18px
    }

    .drawer-grid {
        grid-template-columns:1fr
    }

    .custom-audio-controls {
        grid-template-columns:1fr
    }

    .custom-player-note {
        flex-direction:column
    }

    .site-footer form {
        flex-direction:column
    }

}

/* --------------------------------------------------
   04. Homepage — Latest Episode Hero + Homepage Sections
-------------------------------------------------- */
.home-latest-hero {
    position: relative;
    overflow: hidden;
    background:
    radial-gradient(circle at 78% 34%, rgba(255, 246, 239, .11), transparent 30%),
    linear-gradient(90deg, rgba(0, 0, 0, .08), transparent 70%),
    var(--red);
    min-height: 620px;
    padding: 135px clamp(24px, 4.8vw, 78px) 72px;
}

.home-latest-hero__inner {
    width: 100%;
    max-width: 1500px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(420px, 560px);
    gap: clamp(36px, 5vw, 78px);
    align-items: center;
}

.home-latest-hero__intro h1 {
    max-width: 760px;
    margin: 0 0 28px;
    font-size: clamp(56px, 6.6vw, 104px);
}

.home-latest-hero__intro p:not(.mono) {
    max-width: 520px;
    font-size: clamp(18px, 1.7vw, 24px);
}

.latest-episode-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 180px;
    gap: 28px;
    align-items: center;
    justify-self: end;
    width: 100%;
    max-width: 560px;
    padding: 34px;
    background: rgba(88, 7, 14, .38);
    border: 1px solid rgba(255, 246, 239, .14);
    border-radius: 14px;
    box-shadow: none;
}

.latest-episode-card h2 {
    max-width: 360px;
    margin: 0 0 16px;
    font-size: clamp(30px, 2.4vw, 40px);
    line-height: .95;
    letter-spacing: -.035em;
}

.latest-episode-card__copy > p:not(.mono) {
    max-width: 340px;
    margin: 0 0 20px;
    color: rgba(255, 246, 239, .82);
    font-size: 16px;
    line-height: 1.45;
}

.latest-episode-card__image {
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    border-radius: 8px;
}

.latest-episode-card__link {
    display: inline-flex;
    margin-top: 16px;
    font-size: 17px;
    font-weight: 900;
}

.hero-player {
    display: grid;
    grid-template-columns: 52px minmax(0, 1fr);
    gap: 18px;
    align-items: center;
    width: 100%;
    max-width: 340px;
}

.hero-player__play {
    width: 52px;
    height: 52px;
    border: 0;
    border-radius: 50%;
    background: var(--cream);
    color: var(--red);
    cursor: pointer;
    font-size: 19px;
}

.hero-player__body {
    display: grid;
    gap: 8px;
    min-width: 0;
}

.hero-player__wave {
    display: flex;
    gap: 4px;
    align-items: center;
    height: 24px;
    overflow: hidden;
}

.hero-player__wave i {
    display: block;
    flex: 0 0 3px;
    width: 3px;
    height: 12px;
    background: rgba(255, 246, 239, .48);
}

.hero-player__wave i:nth-child(2n) {
    height: 22px;
}

.hero-player__wave i:nth-child(3n) {
    height: 30px;
}

.hero-player__wave i:nth-child(5n) {
    height: 18px;
}

.hero-player .custom-time {
    color: rgba(255, 246, 239, .78);
}

.hero-player .custom-progress {
    width: 100%;
    min-width: 0;
    accent-color: var(--cream);
}

.archive-block--dark {
    background: var(--black);
    color: var(--cream);
    padding-top: 82px;
}

.filter-link {
    border: 1px solid var(--line-light);
    border-radius: 999px;
    padding: 12px 22px;
    font-weight: 900;
}

.home-about-strip {
    display: grid;
    grid-template-columns: .9fr 1.1fr;
    gap: clamp(40px, 8vw, 130px);
    align-items: start;
    background: var(--cream);
    color: var(--black);
    padding: 72px clamp(24px, 4.8vw, 78px);
}

.home-about-strip h2 {
    margin: 0;
    font-size: clamp(44px, 5vw, 78px);
}

.home-about-strip > p {
    margin: 0;
    font-size: clamp(21px, 2vw, 31px);
    line-height: 1.35;
}

.home-subscribe-band {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(260px, .8fr);
    gap: clamp(28px, 5vw, 80px);
    align-items: center;
    background: var(--red);
    padding: 52px clamp(24px, 4.8vw, 78px);
    border-top: 1px solid rgba(255, 246, 239, .16);
}

.home-subscribe-band h2 {
    margin: 0 0 8px;
    font-size: clamp(38px, 4.4vw, 70px);
}

.home-subscribe-band p {
    margin: 0;
    font-size: 19px;
}

.subscribe-platforms {
    display: flex;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 12px;
}

.subscribe-platforms a {
    border: 1px solid rgba(255, 246, 239, .26);
    border-radius: 999px;
    padding: 11px 18px;
    font-weight: 900;
}

@media (max-width: 1180px) {
    .home-latest-hero__inner,
    .latest-episode-card,
    .home-about-strip,
    .home-subscribe-band {
        grid-template-columns: 1fr;
    }

    .latest-episode-card {
        justify-self: start;
        max-width: 700px;
    }

    .latest-episode-card__image {
        max-width: 420px;
    }

    .subscribe-platforms {
        justify-content: flex-start;
    }

}

/* v0.2.4: drawer player appears before description */
.drawer-grid--player-first .custom-audio-player {
    margin-top: 0;
    margin-bottom: 28px;
}

.episode-description-label {
    margin-top: 0;
}

.drawer-grid--player-first .episode-description {
    max-width: 980px;
}

.feed-episode__meta b:empty::after {
    content: "—";
    color: rgba(255, 246, 239, .4);
}

/* v0.2.5: cleaner collapsed rows and custom play icon */
.feed-episode__copy em {
    display: block;
    max-width: 760px;
    margin-top: 2px;
    color: rgba(255, 246, 239, .68);
    font-style: normal;
    font-size: 15px;
    line-height: 1.35;
}

.feed-episode__head {
    align-items: center;
}

.custom-play,
.hero-player__play {
    position: relative;
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    font-size: 0;
    line-height: 1;
}

.custom-play::before,
.hero-player__play::before {
    content: "";
    width: 0;
    height: 0;
    margin-left: 4px;
    border-top: 8px solid transparent;
    border-bottom: 8px solid transparent;
    border-left: 12px solid currentColor;
}

.custom-play.is-playing::before,
.hero-player__play.is-playing::before {
    width: 14px;
    height: 18px;
    margin-left: 0;
    border: 0;
    background:
    linear-gradient(to right,
    currentColor 0 38%,
    transparent 38% 62%,
    currentColor 62% 100%);
}

.custom-play[disabled] {
    opacity: .4;
    cursor: not-allowed;
}

.custom-audio-player {
    box-shadow: 0 16px 38px rgba(0, 0, 0, .16);
}

.custom-player-note {
    align-items: center;
}

/* Keep the collapsed row as an opener, not as a second player */
.feed-episode__head::after {
    content: "Open";
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

/* --------------------------------------------------
   05. Season Page — Full Image Header
-------------------------------------------------- */

/* Hide legacy / experimental season header versions */
.season-hero-new,
.season-hero-winner,
.season-hero-approved,
.tap-season-hero,
.tap-season-hero--no-image,
.tap-season-hero--card,
.tap-season-hero--block,
.tap-season-art,
.tap-season-arch,
.tap-season-outline,
.tap-season-card-art,
.tap-season-block-decor {
    display: none !important;
}

/* Full-image season hero */
.tap-season-full-hero {
    position: relative;
    overflow: hidden;
    min-height: 700px;
    padding: 150px clamp(24px, 4.8vw, 78px) 74px;
    background-image: var(--season-hero-image);
    background-size: cover;
    background-position: var(--season-hero-position, center center);
    background-repeat: no-repeat;
    color: var(--cream);
}

/* Keep the text readable over any supplied image */
.tap-season-full-hero__shade {
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background:
    linear-gradient(90deg, rgba(0, 0, 0, .72) 0%, rgba(0, 0, 0, .48) 34%, rgba(0, 0, 0, .26) 64%, rgba(0, 0, 0, .18) 100%),
    linear-gradient(180deg, rgba(0, 0, 0, .28) 0%, rgba(0, 0, 0, .16) 52%, rgba(17, 19, 21, .74) 100%);
}

/* Important: no centred container so this aligns with the fixed logo/header padding */
.tap-season-full-hero__frame {
    position: relative;
    z-index: 2;
    max-width: none;
    margin: 0;
}

.tap-season-full-hero__crumbs {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 42px 0 48px;
    font-size: 13px;
    color: rgba(255, 246, 239, .72);
}

.tap-season-full-hero__crumbs strong {
    color: var(--cream);
}

.tap-season-full-hero__grid {
    display: grid;
    grid-template-columns: minmax(320px, .52fr) minmax(430px, .78fr);
    gap: clamp(40px, 7vw, 118px);
    align-items: end;
    max-width: 1050px;
    padding-bottom: 36px;
}

.tap-season-full-hero__number span {
    display: block;
    margin: 0 0 18px;
    font-size: clamp(15px, 1.2vw, 19px);
    line-height: 1;
    font-weight: 900;
    letter-spacing: .24em;
    text-transform: uppercase;
}

.tap-season-full-hero__number h1 {
    margin: 0;
    font-family: Georgia, "Times New Roman", serif;
    font-weight: 400;
    font-size: clamp(230px, 24vw, 420px);
    line-height: .62;
    letter-spacing: -.105em;
    color: var(--cream);
}

.tap-season-full-hero__copy {
    max-width: 560px;
    padding-bottom: 10px;
}

.tap-season-full-hero__year {
    margin: 0 0 12px;
    color: var(--cream);
    font-size: 17px;
}

.tap-season-full-hero__copy h2 {
    margin: 0;
    font-family: Calistoga, Georgia, serif;
    font-size: clamp(40px, 3.8vw, 70px);
    line-height: 1.02;
    letter-spacing: -.035em;
    text-wrap: balance;
}

.tap-season-full-hero__copy i {
    display: block;
    width: 54px;
    height: 2px;
    margin: 28px 0 24px;
    background: rgba(255, 246, 239, .76);
}

.tap-season-full-hero__copy p {
    margin: 0;
    color: rgba(255, 246, 239, .9);
    font-size: 18px;
    line-height: 1.48;
}

.tap-season-full-hero__copy p strong {
    font-size: 14px;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.tap-season-full-hero__actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 24px;
    margin-top: 30px;
}

.tap-season-full-hero__actions .button.light {
    min-height: 56px;
    padding: 0 28px;
    border-radius: 0;
    box-shadow: none;
}

.tap-season-full-hero__play {
    display: inline-flex;
    align-items: center;
    gap: 12px;
}

.tap-season-full-hero__play::before {
    content: "";
    width: 0;
    height: 0;
    border-top: 7px solid transparent;
    border-bottom: 7px solid transparent;
    border-left: 11px solid currentColor;
}

.tap-season-full-hero__link {
    display: inline-flex;
    align-items: center;
    padding-bottom: 4px;
    border-bottom: 1px solid rgba(255, 246, 239, .66);
    font-weight: 900;
}

/* Episodes section: flat dark, no gradient */
.tap-season-full-list,
.tap-season-list,
.season-detail--winner,
.season-detail--approved {
    background: var(--black) !important;
    background-image: none !important;
}

.tap-season-full-list {
    padding-top: 46px;
}

.tap-season-full-list .feed-episode {
    background: transparent;
    border-left: 0;
    border-right: 0;
    border-top: 0;
}

.tap-season-full-list .feed-episode__head {
    min-height: 112px;
    padding-left: 0;
    padding-right: 0;
}

.tap-season-full-list .feed-episode__head > img {
    width: 92px;
    height: 92px;
    object-fit: cover;
}

.tap-season-full-list .feed-episode__copy strong {
    font-size: 20px;
}

.tap-season-full-list .feed-episode__copy em {
    font-size: 15px;
    color: rgba(255, 246, 239, .72);
}

.tap-season-full-list .feed-episode__drawer {
    padding-left: 124px;
    padding-right: 0;
}

/* Tablet */
@media (max-width: 1120px) {
    .tap-season-full-hero {
        min-height: 640px;
    }

    .tap-season-full-hero__grid {
        grid-template-columns: minmax(260px, .75fr) minmax(360px, 1fr);
        gap: 42px;
        max-width: 900px;
    }

    .tap-season-full-hero__number h1 {
        font-size: clamp(180px, 21vw, 330px);
    }

    .tap-season-full-hero__copy h2 {
        font-size: clamp(38px, 4.4vw, 58px);
    }

}

/* Small tablet */
@media (max-width: 820px) {
    .tap-season-full-hero__grid {
        grid-template-columns: 1fr;
        gap: 28px;
        max-width: 680px;
    }

}

/* --------------------------------------------------
   Mobile Season Hero — Stop Number / Title Overlap
-------------------------------------------------- */
@media (max-width: 680px) {
    .tap-season-full-hero {
        min-height: 0;
        padding: 112px 22px 48px;
    }

    .tap-season-full-hero__crumbs {
        margin: 18px 0 34px;
        font-size: 13px;
    }

    .tap-season-full-hero__grid {
        display: block;
        max-width: none;
        padding-bottom: 0;
    }

    .tap-season-full-hero__number {
        display: block;
        margin: 0 0 30px;
    }

    .tap-season-full-hero__number span {
        margin-bottom: 18px;
        font-size: 14px;
        line-height: 1;
        letter-spacing: .28em;
    }

    .tap-season-full-hero__number h1 {
        display: block;
        margin: 0;
        font-size: clamp(120px, 42vw, 170px);
        line-height: .82;
        letter-spacing: -.095em;
    }

    .tap-season-full-hero__copy {
        display: block;
        max-width: 100%;
        padding-bottom: 0;
        clear: both;
    }

    .tap-season-full-hero__copy h2 {
        margin: 0;
        font-size: clamp(34px, 10vw, 42px);
        line-height: 1.04;
        letter-spacing: -.035em;
    }

    .tap-season-full-hero__copy i {
        margin: 24px 0 22px;
    }

    .tap-season-full-hero__copy p {
        font-size: 18px;
        line-height: 1.45;
    }

    .tap-season-full-hero__actions {
        gap: 18px;
        margin-top: 28px;
    }

}

/* --------------------------------------------------
   Mobile Polish — Header, Menu and Homepage
   -------------------------------------------------- */
html,
body {
    max-width: 100%;
    overflow-x: hidden;
}

@media (max-width: 760px) {
    .site-header {
        padding: 14px 22px;
        align-items: flex-start;
        background: var(--red);
    }

    .site-header.is-scrolled {
        background: rgba(163, 36, 45, .98);
    }

    .brand img,
    .custom-logo {
        width: 96px;
        max-width: 42vw;
        height: auto;
    }

    .menu-button {
        display: grid;
        gap: 6px;
        margin-top: 4px;
        padding: 0;
        background: transparent;
        border: 0;
    }

    .menu-button span {
        display: block;
        width: 26px;
        height: 2px;
        background: var(--cream);
    }

    .site-nav {
        display: none;
        position: fixed;
        top: 62px;
        left: 16px;
        right: 16px;
        z-index: 60;
        flex-direction: column;
        align-items: flex-start;
        gap: 18px;
        padding: 26px 24px;
        background: var(--cream);
        color: var(--red);
        border: 1px solid rgba(17, 19, 21, .14);
        box-shadow: 0 18px 50px rgba(0, 0, 0, .18);
    }

    .site-nav.is-open {
        display: flex;
    }

    .site-nav a {
        color: var(--red);
        font-size: 18px;
        line-height: 1.1;
    }

    .site-nav a:hover,
    .site-nav .current-menu-item a {
        border-bottom-color: var(--red);
    }

    .hero,
    .page-hero,
    .home-latest-hero {
        padding-top: 104px;
    }

    .home-latest-hero {
        min-height: 0;
        padding-right: 0;
        padding-bottom: 0;
        padding-left: 0;
        background: var(--red);
    }

    .home-latest-hero__inner {
        display: block;
        width: 100%;
        max-width: none;
        margin: 0;
    }

    .home-latest-hero__intro {
        padding: 34px 22px 30px;
    }

    .home-latest-hero__intro .mono {
        max-width: 190px;
        margin-bottom: 28px;
        font-size: 12px;
        line-height: 1.5;
        letter-spacing: .2em;
    }

    .home-latest-hero__intro h1 {
        max-width: 320px;
        margin-bottom: 22px;
        font-size: clamp(54px, 17vw, 74px);
        line-height: .86;
        letter-spacing: -.055em;
    }

    .home-latest-hero__intro p:not(.mono) {
        max-width: 320px;
        margin: 0;
        font-size: 20px;
        line-height: 1.45;
        color: rgba(255, 246, 239, .9);
    }

    .latest-episode-card {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: 26px;
        width: 100%;
        max-width: none;
        margin: 0;
        padding: 32px 22px 42px;
        background: transparent;
        border: 0;
        border-radius: 0;
        box-shadow: none;
    }

    .latest-episode-card__copy {
        order: 1;
        min-width: 0;
    }

    .latest-episode-card__image {
        order: 2;
        width: 100%;
        max-width: 100%;
        aspect-ratio: 1 / 1;
        object-fit: cover;
    }

    .latest-episode-card h2 {
        margin-bottom: 18px;
        font-size: clamp(34px, 10.5vw, 48px);
        line-height: .96;
        letter-spacing: -.045em;
        overflow-wrap: break-word;
    }

    .latest-episode-card__copy > p:not(.mono) {
        margin-bottom: 24px;
        font-size: 18px;
        line-height: 1.45;
    }

    .hero-player {
        grid-template-columns: 64px minmax(0, 1fr);
        max-width: 100%;
    }

    .hero-player__play {
        width: 64px;
        height: 64px;
    }

    .hero-player .custom-time {
        font-size: 12px;
        letter-spacing: .08em;
        white-space: nowrap;
    }

    .latest-episode-card__link {
        margin-top: 18px;
        font-size: 22px;
        line-height: 1;
    }

    .archive-block,
    .archive-block--dark,
    .home-about-strip,
    .home-subscribe-band {
        padding-left: 22px;
        padding-right: 22px;
    }

}

@media (max-width: 420px) {
    .home-latest-hero__intro h1 {
        max-width: 300px;
        font-size: clamp(50px, 16.5vw, 68px);
    }

    .latest-episode-card h2 {
        font-size: clamp(32px, 10vw, 42px);
    }

}

/* --------------------------------------------------
   v0.3.9 — Mobile Refinement
   Softer front page type, cleaner mobile nav, two-column seasons.
   -------------------------------------------------- */
.site-nav,
.site-nav ul,
.site-nav li,
.site-nav .menu,
.site-nav .menu-item {
    list-style: none;
    margin-left: 0;
    padding-left: 0;
}

.site-nav li::marker,
.site-nav .menu-item::marker {
    content: "";
}

@media (max-width: 760px) {

    /* Cleaner menu panel */
    .site-nav {
        gap: 14px;
        padding: 22px;
        border-radius: 2px;
    }

    .site-nav a {
        display: inline-block;
        padding: 0 0 3px;
        font-size: 16px;
        letter-spacing: .02em;
    }

    /* Front page: less edgy, better phone rhythm */
    .home-latest-hero {
        padding-top: 96px;
    }

    .home-latest-hero__intro {
        padding: 38px 22px 34px;
    }

    .home-latest-hero__intro .mono {
        max-width: 240px;
        margin-bottom: 24px;
        font-size: 11px;
        line-height: 1.55;
        letter-spacing: .24em;
    }

    .home-latest-hero__intro h1 {
        max-width: 340px;
        margin-bottom: 22px;
        font-size: clamp(44px, 13.5vw, 58px);
        line-height: .96;
        letter-spacing: -.035em;
        text-wrap: balance;
    }

    .home-latest-hero__intro p:not(.mono) {
        max-width: 335px;
        font-size: 18px;
        line-height: 1.55;
        letter-spacing: .01em;
    }

    .latest-episode-card {
        gap: 22px;
        padding: 28px 22px 38px;
    }

    .latest-episode-card .mono {
        margin-bottom: 16px;
        font-size: 11px;
        letter-spacing: .22em;
    }

    .latest-episode-card h2 {
        max-width: 345px;
        margin-bottom: 18px;
        font-size: clamp(30px, 8.4vw, 38px);
        line-height: 1.03;
        letter-spacing: -.03em;
        text-wrap: balance;
    }

    .latest-episode-card__copy > p:not(.mono) {
        max-width: 345px;
        margin-bottom: 22px;
        font-size: 16px;
        line-height: 1.55;
    }

    .latest-episode-card__image {
        aspect-ratio: 4 / 3;
    }

    .hero-player {
        grid-template-columns: 54px minmax(0, 1fr);
        gap: 14px;
    }

    .hero-player__play {
        width: 54px;
        height: 54px;
    }

    .hero-player__wave {
        height: 20px;
    }

    .hero-player .custom-time {
        font-size: 11px;
    }

    .latest-episode-card__link {
        font-size: 18px;
    }

    /* Season grids: two columns on mobile */
    .season-grid,
    .season-grid.compact {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 14px;
    }

    .season-card {
        border-radius: 4px;
    }

    .season-card:hover {
        transform: none;
    }

    .season-card img {
        aspect-ratio: 1 / 1;
    }

    .season-info {
        min-height: 156px;
        padding: 13px;
    }

    .season-title {
        gap: 9px;
        align-items: flex-end;
    }

    .season-title strong {
        font-size: clamp(36px, 12vw, 52px);
        line-height: .82;
    }

    .season-title span {
        font-size: 10px;
        line-height: 1.15;
        letter-spacing: .08em;
    }

    .season-info hr {
        margin: 12px 0;
    }

    .season-info p {
        font-size: 13px;
        line-height: 1.35;
    }

    .small-button {
        padding: 8px 10px;
        font-size: 11px;
    }

}

@media (max-width: 380px) {
    .home-latest-hero__intro h1 {
        font-size: clamp(40px, 12.5vw, 50px);
    }

    .latest-episode-card h2 {
        font-size: clamp(28px, 8vw, 34px);
    }

    .season-grid,
    .season-grid.compact {
        gap: 12px;
    }

    .season-info {
        min-height: 148px;
        padding: 12px;
    }

}

/* --------------------------------------------------
   v0.3.8 — Mobile Homepage Polish + 2 Column Seasons
   -------------------------------------------------- */

/* Remove bullets/dots from WordPress navigation */
.site-nav,
.site-nav ul,
.site-nav li,
.site-nav .menu,
.site-nav .menu-item {
    list-style: none !important;
    margin-left: 0;
    padding-left: 0;
}

.site-nav li::marker,
.site-nav .menu-item::marker {
    content: "";
}

@media (max-width: 760px) {

    /* Cleaner, less red-heavy mobile dropdown */
    .site-nav {
        gap: 15px;
        padding: 24px 22px;
        background: var(--cream);
        color: var(--red);
    }

    .site-nav a {
        display: inline-block;
        padding: 0 0 3px;
        color: var(--red);
        font-size: 17px;
        line-height: 1.15;
    }

    /* Front page hero: less edgy / less oversized */
    .home-latest-hero__intro {
        padding-top: 28px;
        padding-bottom: 34px;
    }

    .home-latest-hero__intro .mono {
        max-width: none;
        margin-bottom: 34px;
        font-size: 11px;
        line-height: 1.6;
        letter-spacing: .24em;
    }

    .home-latest-hero__intro h1 {
        max-width: 92vw;
        margin-bottom: 24px;
        font-size: clamp(44px, 13.5vw, 62px);
        line-height: .94;
        letter-spacing: -.045em;
        text-wrap: balance;
    }

    .home-latest-hero__intro p:not(.mono) {
        max-width: 92vw;
        font-size: 18px;
        line-height: 1.55;
        letter-spacing: .01em;
    }

    .latest-episode-card {
        padding-top: 40px;
    }

    .latest-episode-card .mono {
        font-size: 11px;
        letter-spacing: .22em;
    }

    .latest-episode-card h2 {
        font-size: clamp(30px, 8.7vw, 40px);
        line-height: 1.02;
        letter-spacing: -.035em;
        text-wrap: balance;
    }

    .latest-episode-card__copy > p:not(.mono) {
        font-size: 17px;
        line-height: 1.5;
    }

    /* Seasons: two columns on mobile */
    .season-grid,
    .season-grid.compact {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 14px;
    }

    .season-card {
        border-radius: 4px;
    }

    .season-card img {
        aspect-ratio: 1 / 1;
    }

    .season-info {
        min-height: 150px;
        padding: 13px;
    }

    .season-title {
        gap: 8px;
        align-items: flex-end;
    }

    .season-title strong {
        font-size: clamp(34px, 11vw, 48px);
        line-height: .85;
    }

    .season-title span {
        font-size: 10px;
        line-height: 1.15;
        letter-spacing: .08em;
    }

    .season-info hr {
        margin: 12px 0;
    }

    .season-info p {
        font-size: 12px;
        line-height: 1.35;
    }

    .small-button {
        padding: 8px 10px;
        font-size: 11px;
    }

}

@media (max-width: 360px) {
    .season-grid,
    .season-grid.compact {
        gap: 12px;
    }

    .season-info {
        min-height: 140px;
        padding: 12px;
    }

    .season-title strong {
        font-size: 36px;
    }

    .season-title span {
        font-size: 9px;
    }

}

/* --------------------------------------------------
   Mobile Season Episodes — Full Width Rows and Drawer
   -------------------------------------------------- */
@media (max-width: 760px) {
    .tap-season-full-list .feed-episode__head {
        position: relative;
        display: grid;
        grid-template-columns: minmax(0, 1fr) 34px;
        gap: 16px;
        align-items: start;
        padding: 26px 0;
    }

    .tap-season-full-list .feed-episode__head > img {
        grid-column: 1 / -1;
        width: 100%;
        max-width: none;
        height: auto;
        aspect-ratio: 16 / 8.5;
        object-fit: cover;
        border-radius: 2px;
    }

    .tap-season-full-list .feed-episode__copy {
        grid-column: 1;
        min-width: 0;
        padding-right: 0;
    }

    .tap-season-full-list .feed-episode__meta {
        grid-column: 1;
    }

    .tap-season-full-list .feed-episode__head .plus,
    .tap-season-full-list .feed-episode__head .feed-episode__plus {
        grid-column: 2;
        grid-row: 2;
        justify-self: end;
        align-self: start;
        width: 34px;
        height: 34px;
        display: grid;
        place-items: center;
        line-height: 1;
        font-size: 34px;
        transform-origin: center;
    }

    .tap-season-full-list .drawer-grid > img,
    .season-detail .drawer-grid > img,
    .feed-episode__drawer .drawer-grid > img {
        display: none;
    }

    .tap-season-full-list .feed-episode__drawer {
        padding: 0 0 30px;
    }

    .tap-season-full-list .drawer-grid,
    .season-detail .drawer-grid,
    .feed-episode__drawer .drawer-grid {
        display: block;
        width: 100%;
        grid-template-columns: 1fr;
        gap: 0;
        padding-top: 22px;
    }

    .feed-episode.is-open .plus,
    .feed-episode.is-open .feed-episode__plus {
        transform: rotate(45deg);
    }

}

/* --------------------------------------------------
   07. About Page — Theatre Audience Podcast
-------------------------------------------------- */
.tap-about-page {
    background: var(--black);
    color: var(--cream);
}

.tap-about-hero {
    position: relative;
    overflow: hidden;
    min-height: 680px;
    display: flex;
    align-items: flex-end;
    padding: 150px clamp(24px, 4.8vw, 78px) 86px;
    background: var(--red);
}

.tap-about-hero--with-image {
    background-image: var(--about-hero-image);
    background-size: cover;
    background-position: center center;
}

.tap-about-hero__shade {
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background:
    radial-gradient(circle at 78% 28%, rgba(255, 246, 239, .13), transparent 30%),
    linear-gradient(90deg, rgba(163, 36, 45, .96) 0%, rgba(163, 36, 45, .82) 45%, rgba(17, 19, 21, .35) 100%);
}

.tap-about-hero__inner {
    position: relative;
    z-index: 2;
    max-width: 980px;
}

.tap-about-hero h1 {
    max-width: 900px;
    margin: 0 0 28px;
    font-size: clamp(58px, 8vw, 126px);
    line-height: .9;
}

.tap-about-hero p:not(.mono) {
    max-width: 620px;
    margin: 0;
    color: rgba(255, 246, 239, .9);
    font-size: clamp(20px, 2vw, 28px);
    line-height: 1.35;
}

.tap-about-intro {
    display: grid;
    grid-template-columns: minmax(180px, .35fr) minmax(0, 1fr);
    gap: clamp(36px, 7vw, 120px);
    padding: 78px clamp(24px, 4.8vw, 78px);
    border-bottom: 1px solid var(--line-light);
}

.tap-about-intro__copy {
    max-width: 980px;
}

.tap-about-intro__copy p {
    margin: 0 0 24px;
    color: rgba(255, 246, 239, .78);
    font-size: clamp(19px, 1.65vw, 26px);
    line-height: 1.48;
}

.tap-about-intro__copy .tap-about-lede {
    color: var(--cream);
    font-family: Calistoga, Georgia, serif;
    font-size: clamp(32px, 4vw, 64px);
    line-height: 1;
    letter-spacing: -.035em;
}

.tap-about-facts {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    background: var(--cream);
    color: var(--black);
    border-bottom: 1px solid var(--line-dark);
}

.tap-about-facts article {
    min-height: 260px;
    padding: 34px clamp(24px, 4vw, 58px);
    border-right: 1px solid var(--line-dark);
}

.tap-about-facts article:last-child {
    border-right: 0;
}

.tap-about-facts span {
    display: block;
    margin-bottom: 54px;
    color: var(--red);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .16em;
    text-transform: uppercase;
}

.tap-about-facts h2 {
    margin: 0 0 14px;
    font-size: clamp(30px, 3vw, 46px);
    line-height: .95;
}

.tap-about-facts p {
    max-width: 360px;
    margin: 0;
    color: rgba(17, 19, 21, .72);
    font-size: 18px;
    line-height: 1.45;
}

.tap-hosts-section {
    padding: 82px clamp(24px, 4.8vw, 78px) 94px;
}

.tap-host-card {
    display: grid;
    grid-template-columns: minmax(260px, 420px) minmax(0, 1fr);
    gap: clamp(34px, 6vw, 86px);
    align-items: start;
    padding: 42px 0;
    border-top: 1px solid var(--line-light);
}

.tap-host-card:last-child {
    border-bottom: 1px solid var(--line-light);
}

.tap-host-card:nth-of-type(even) .tap-host-card__media {
    order: 2;
}

.tap-host-card__media img,
.tap-host-card__placeholder {
    width: 100%;
    aspect-ratio: 4 / 5;
    object-fit: cover;
    border-radius: 4px;
}

.tap-host-card__placeholder {
    display: flex;
    align-items: flex-end;
    padding: 24px;
    background: var(--red);
    color: var(--cream);
    font-family: Calistoga, Georgia, serif;
    font-size: clamp(48px, 5vw, 74px);
    line-height: .86;
    letter-spacing: -.05em;
}

.tap-host-card__copy {
    max-width: 860px;
}

.tap-host-card__copy h3 {
    margin: 0 0 24px;
    font-size: clamp(42px, 5.2vw, 86px);
    line-height: .92;
}

.tap-host-card__copy p:not(.mono) {
    margin: 0 0 20px;
    color: rgba(255, 246, 239, .78);
    font-size: clamp(18px, 1.5vw, 23px);
    line-height: 1.52;
}

.tap-about-cta {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 32px;
    align-items: end;
    padding: 62px clamp(24px, 4.8vw, 78px);
    background: var(--red);
}

.tap-about-cta h2 {
    margin: 0;
    font-size: clamp(42px, 5vw, 78px);
}

.tap-about-cta__actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 24px;
}

.tap-about-cta__link {
    padding-bottom: 4px;
    border-bottom: 1px solid rgba(255, 246, 239, .66);
    font-weight: 900;
}

@media (max-width: 900px) {
    .tap-about-intro,
    .tap-host-card,
    .tap-about-cta {
        grid-template-columns: 1fr;
    }

    .tap-host-card:nth-of-type(even) .tap-host-card__media {
        order: 0;
    }

    .tap-about-facts {
        grid-template-columns: 1fr;
    }

    .tap-about-facts article {
        min-height: 0;
        border-right: 0;
        border-bottom: 1px solid var(--line-dark);
    }

    .tap-about-facts article:last-child {
        border-bottom: 0;
    }

}

@media (max-width: 760px) {
    .tap-about-hero {
        min-height: 540px;
        padding: 120px 22px 52px;
    }

    .tap-about-hero h1 {
        max-width: 92vw;
        font-size: clamp(46px, 13vw, 62px);
        line-height: .95;
        letter-spacing: -.035em;
        text-wrap: balance;
    }

    .tap-about-hero p:not(.mono) {
        max-width: 92vw;
        font-size: 18px;
        line-height: 1.5;
    }

    .tap-about-intro,
    .tap-hosts-section,
    .tap-about-cta {
        padding-left: 22px;
        padding-right: 22px;
    }

    .tap-about-intro {
        padding-top: 52px;
        padding-bottom: 54px;
        gap: 18px;
    }

    .tap-about-intro__copy .tap-about-lede {
        font-size: clamp(30px, 8.5vw, 42px);
        line-height: 1.05;
    }

    .tap-about-intro__copy p {
        font-size: 17px;
        line-height: 1.55;
    }

    .tap-about-facts article {
        padding: 28px 22px;
    }

    .tap-about-facts span {
        margin-bottom: 28px;
    }

    .tap-hosts-section {
        padding-top: 54px;
        padding-bottom: 62px;
    }

    .tap-host-card {
        gap: 24px;
        padding: 32px 0;
    }

    .tap-host-card__media img,
    .tap-host-card__placeholder {
        aspect-ratio: 1 / 1;
    }

    .tap-host-card__copy h3 {
        font-size: clamp(36px, 10vw, 48px);
    }

    .tap-host-card__copy p:not(.mono) {
        font-size: 16px;
        line-height: 1.56;
    }

    .tap-about-cta {
        padding-top: 46px;
        padding-bottom: 48px;
    }

    .tap-about-cta h2 {
        font-size: clamp(36px, 9.5vw, 52px);
    }

}

/* --------------------------------------------------
   08. Contact Page
-------------------------------------------------- */
.tap-contact-page {
    background: var(--black);
    color: var(--cream);
}

.tap-contact-hero {
    position: relative;
    overflow: hidden;
    background:
    radial-gradient(circle at 82% 28%, rgba(255, 246, 239, .12), transparent 28%),
    linear-gradient(115deg, rgba(0, 0, 0, .08), transparent 62%),
    var(--red);
    padding: 156px clamp(24px, 4.8vw, 78px) 82px;
}

.tap-contact-hero__inner {
    position: relative;
    z-index: 1;
    max-width: 980px;
}

.tap-contact-hero h1 {
    max-width: 900px;
    margin: 0 0 28px;
    font-size: clamp(58px, 8vw, 118px);
    line-height: .92;
    letter-spacing: -.04em;
}

.tap-contact-hero p:not(.mono) {
    max-width: 680px;
    margin: 0;
    color: rgba(255, 246, 239, .88);
    font-size: clamp(19px, 2vw, 26px);
    line-height: 1.42;
}

.tap-contact-panel {
    display: grid;
    grid-template-columns: minmax(0, .86fr) minmax(360px, 1fr);
    gap: clamp(36px, 6vw, 86px);
    align-items: start;
    padding: 72px clamp(24px, 4.8vw, 78px) 82px;
}

.tap-contact-panel__intro h2 {
    max-width: 640px;
    margin: 0 0 24px;
    font-size: clamp(42px, 5vw, 76px);
    line-height: .96;
}

.tap-contact-panel__intro p:not(.mono) {
    max-width: 600px;
    margin: 0 0 18px;
    color: rgba(255, 246, 239, .78);
    font-size: 18px;
    line-height: 1.55;
}

.tap-contact-panel__form {
    background: var(--cream);
    color: var(--black);
    padding: clamp(24px, 4vw, 42px);
    border-radius: 4px;
    box-shadow: 0 26px 70px rgba(0, 0, 0, .18);
}

.tap-contact-panel__form p {
    margin: 0 0 18px;
}

.tap-contact-panel__form label {
    display: grid;
    gap: 8px;
    color: rgba(17, 19, 21, .78);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.tap-contact-panel__form input[type="text"],
.tap-contact-panel__form input[type="email"],
.tap-contact-panel__form input[type="tel"],
.tap-contact-panel__form input[type="url"],
.tap-contact-panel__form textarea,
.tap-contact-panel__form select {
    width: 100%;
    min-height: 52px;
    padding: 14px 16px;
    border: 1px solid rgba(17, 19, 21, .18);
    border-radius: 0;
    background: #fff;
    color: var(--black);
    font: inherit;
    font-size: 16px;
    line-height: 1.35;
}

.tap-contact-panel__form textarea {
    min-height: 180px;
    resize: vertical;
}

.tap-contact-panel__form input:focus,
.tap-contact-panel__form textarea:focus,
.tap-contact-panel__form select:focus {
    outline: 2px solid rgba(163, 36, 45, .28);
    border-color: var(--red);
}

.tap-contact-panel__form input[type="submit"],
.tap-contact-panel__form button[type="submit"] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: max-content;
    min-height: 52px;
    padding: 0 28px;
    border: 0;
    border-radius: 2px;
    background: var(--red);
    color: var(--cream);
    font: inherit;
    font-weight: 900;
    cursor: pointer;
}

.tap-contact-panel__form input[type="submit"]:hover,
.tap-contact-panel__form button[type="submit"]:hover {
    filter: brightness(.95);
}

.tap-contact-panel__form .wpcf7-not-valid-tip {
    margin-top: 6px;
    color: var(--red);
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0;
    text-transform: none;
}

.tap-contact-panel__form .wpcf7-response-output {
    margin: 10px 0 0 !important;
    padding: 12px 14px !important;
    border-color: rgba(17, 19, 21, .18) !important;
    color: var(--black);
}

.tap-contact-fallback {
    display: grid;
    gap: 16px;
}

.tap-contact-fallback h3 {
    margin: 0;
    color: var(--black);
    font-size: clamp(30px, 3vw, 46px);
}

.tap-contact-fallback p:not(.mono) {
    margin: 0 0 8px;
    color: rgba(17, 19, 21, .72);
    font-size: 17px;
    line-height: 1.5;
}

.tap-contact-fallback .button.light {
    width: max-content;
    background: var(--red);
    color: var(--cream);
}

.tap-contact-cards {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1px;
    background: rgba(255, 246, 239, .18);
    border-top: 1px solid rgba(255, 246, 239, .18);
    border-bottom: 1px solid rgba(255, 246, 239, .18);
}

.tap-contact-cards article {
    min-height: 260px;
    padding: 32px clamp(24px, 4.8vw, 54px);
    background: var(--black);
}

.tap-contact-cards span {
    display: block;
    margin-bottom: 48px;
    color: var(--red);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .16em;
}

.tap-contact-cards h2 {
    margin: 0 0 18px;
    font-size: clamp(30px, 3vw, 48px);
}

.tap-contact-cards p {
    max-width: 360px;
    margin: 0;
    color: rgba(255, 246, 239, .76);
    font-size: 17px;
    line-height: 1.5;
}

.tap-contact-direct {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 32px;
    align-items: end;
    background: var(--cream);
    color: var(--black);
    padding: 62px clamp(24px, 4.8vw, 78px);
}

.tap-contact-direct h2 {
    margin: 0;
    font-size: clamp(42px, 5vw, 78px);
}

.tap-contact-direct a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 54px;
    padding: 0 24px;
    background: var(--red);
    color: var(--cream);
    font-weight: 900;
}

@media (max-width: 980px) {
    .tap-contact-panel,
    .tap-contact-direct {
        grid-template-columns: 1fr;
    }

    .tap-contact-cards {
        grid-template-columns: 1fr;
    }

    .tap-contact-cards article {
        min-height: 0;
    }

    .tap-contact-cards span {
        margin-bottom: 24px;
    }

    .tap-contact-direct {
        align-items: start;
    }

}

@media (max-width: 760px) {
    .tap-contact-hero {
        padding: 118px 22px 58px;
    }

    .tap-contact-hero h1 {
        max-width: 92vw;
        margin-bottom: 22px;
        font-size: clamp(44px, 13vw, 62px);
        line-height: .95;
        letter-spacing: -.04em;
        text-wrap: balance;
    }

    .tap-contact-hero p:not(.mono) {
        max-width: 92vw;
        font-size: 18px;
        line-height: 1.5;
    }

    .tap-contact-panel {
        padding: 46px 22px 56px;
        gap: 32px;
    }

    .tap-contact-panel__intro h2 {
        font-size: clamp(34px, 10vw, 48px);
        line-height: 1;
    }

    .tap-contact-panel__intro p:not(.mono) {
        font-size: 17px;
    }

    .tap-contact-panel__form {
        padding: 24px;
    }

    .tap-contact-panel__form input[type="submit"],
    .tap-contact-panel__form button[type="submit"] {
        width: 100%;
    }

    .tap-contact-cards article {
        padding: 28px 22px;
    }

    .tap-contact-direct {
        padding: 44px 22px;
    }

    .tap-contact-direct a {
        width: 100%;
    }

}

/* --------------------------------------------------
   06. Audio Player — Share Episode Row
-------------------------------------------------- */
.custom-player-note {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin-top: 18px;
    padding-top: 16px;
    border-top: 1px solid rgba(17, 19, 21, .14);
    font-size: 12px;
}

.custom-player-note span {
    color: var(--red);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.custom-player-note strong {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 14px;
    color: rgba(17, 19, 21, .72);
    font-size: 12px;
    font-weight: 900;
}

.custom-player-note a,
.custom-player-note button {
    appearance: none;
    -webkit-appearance: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: rgba(17, 19, 21, .72);
    font: inherit;
    font-size: 11px;
    line-height: 1;
    letter-spacing: .08em;
    text-transform: uppercase;
    cursor: pointer;
}

.custom-player-note a:hover,
.custom-player-note button:hover,
.custom-player-note a:focus-visible,
.custom-player-note button:focus-visible {
    color: var(--red);
}

@media (max-width: 760px) {
    .tap-season-full-list .custom-audio-player {
        width: 100%;
        max-width: none;
        margin: 0;
        padding: 20px;
        box-shadow: none;
    }

    .tap-season-full-list .custom-audio-controls {
        grid-template-columns: 52px minmax(0, 1fr);
        gap: 16px;
    }

    .tap-season-full-list .custom-play {
        width: 52px;
        height: 52px;
    }

    .tap-season-full-list .custom-player-note {
        display: grid;
        grid-template-columns: auto minmax(0, 1fr);
        gap: 12px;
        align-items: center;
        margin-top: 16px;
        padding-top: 14px;
    }

    .tap-season-full-list .custom-player-note span {
        margin: 0;
        font-size: 10px;
        line-height: 1;
        letter-spacing: .14em;
        white-space: nowrap;
    }

    .tap-season-full-list .custom-player-note strong {
        display: flex;
        align-items: center;
        justify-content: flex-start;
        flex-wrap: nowrap;
        gap: 10px;
        min-width: 0;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .tap-season-full-list .custom-player-note a,
    .tap-season-full-list .custom-player-note button {
        flex: 0 0 auto;
        font-size: 9px;
        line-height: 1;
        letter-spacing: .06em;
        white-space: nowrap;
    }

    .tap-season-full-list .episode-description-label {
        margin-top: 40px;
        margin-bottom: 22px;
    }

    .tap-season-full-list .episode-description {
        width: 100%;
        max-width: none;
        margin-top: 0;
        font-size: 18px;
        line-height: 1.55;
    }

}

/* --------------------------------------------------
   Season Page — Load More Episodes
-------------------------------------------------- */
.tap-season-episode-item.is-hidden-by-load-more {
    display: none;
}

.tap-load-more-episodes {
    display: flex;
    justify-content: center;
    margin: 34px 0 0;
}

.tap-load-more-episodes__button {
    appearance: none;
    -webkit-appearance: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 52px;
    padding: 0 24px;
    border: 1px solid rgba(255, 246, 239, .34);
    border-radius: 0;
    background: transparent;
    color: var(--cream);
    font: inherit;
    font-size: 12px;
    font-weight: 900;
    line-height: 1;
    letter-spacing: .14em;
    text-transform: uppercase;
    cursor: pointer;
}

.tap-load-more-episodes__button:hover,
.tap-load-more-episodes__button:focus-visible {
    border-color: var(--cream);
    background: rgba(255, 246, 239, .08);
}

@media (max-width: 760px) {
    .tap-load-more-episodes {
        margin-top: 28px;
    }

    .tap-load-more-episodes__button {
        width: 100%;
    }

}

/* --------------------------------------------------
   09. Listen Page — Discovery, Platforms and Archive CTA
-------------------------------------------------- */
.tap-listen-page {
    overflow: hidden;
    background: var(--black);
    color: var(--cream);
}

.tap-listen-hero {
    padding-bottom: clamp(40px, 6vw, 78px);
}

.tap-listen-hero__intro {
    max-width: 680px;
    margin: 0;
    color: rgba(255, 246, 239, .88);
    font-size: clamp(19px, 2vw, 26px);
    line-height: 1.42;
}

.tap-listen-random,
.tap-listen-platforms {
    padding: clamp(52px, 6vw, 82px) clamp(24px, 4.8vw, 78px);
}

.tap-listen-random {
    background: var(--black);
    color: var(--cream);
}

.tap-listen-platforms {
    background: var(--cream);
    color: var(--black);
}

.tap-listen-platforms .section-title.dark {
    color: var(--black);
}

.tap-random-episodes-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px;
    margin-top: 28px;
}

.tap-random-episode-card {
    display: flex;
    min-width: 0;
    flex-direction: column;
}

.tap-random-episode-card__image-link {
    display: block;
    overflow: hidden;
    aspect-ratio: 1 / 1;
    background: var(--black2);
    border-radius: 4px;
}

.tap-random-episode-card__image-link img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .25s ease;
}

.tap-random-episode-card:hover .tap-random-episode-card__image-link img {
    transform: scale(1.035);
}

.tap-random-episode-card__copy {
    padding-top: 18px;
}

.tap-random-episode-card__copy .mono {
    margin-bottom: 12px;
    color: rgba(255, 246, 239, .7);
}

.tap-random-episode-card__copy h3 {
    margin: 0;
    font-size: clamp(28px, 3vw, 42px);
    line-height: .95;
    letter-spacing: -.035em;
}

.tap-random-episode-card__copy h3 a {
    color: inherit;
    text-decoration: none;
}

.tap-random-episode-card__copy > p:not(.mono) {
    margin: 14px 0 0;
    color: rgba(255, 246, 239, .72);
    font-size: 16px;
    line-height: 1.45;
}

.platforms--listen {
    padding: 0;
    background: transparent;
    color: inherit;
}

.platforms--listen a {
    gap: 18px;
}

.platforms--listen a em {
    display: block;
    max-width: 340px;
    margin-top: auto;
    color: rgba(17, 19, 21, .68);
    font-size: 16px;
    font-style: normal;
    line-height: 1.4;
}

.platforms--listen a span {
    margin-top: 6px;
}

.tap-listen-archive-strip {
    grid-template-columns: .9fr 1.1fr;
    align-items: start;
}

.tap-listen-archive-strip .button {
    grid-column: 2;
    justify-self: start;
    width: max-content;
    margin-top: 22px;
    background: var(--red);
    color: var(--cream);
    white-space: nowrap;
}

@media (max-width: 900px) {
    .tap-random-episodes-grid {
        grid-template-columns: 1fr;
    }

    .tap-random-episode-card {
        display: grid;
        grid-template-columns: 150px minmax(0, 1fr);
        gap: 18px;
        align-items: start;
    }

    .tap-random-episode-card__copy {
        padding-top: 0;
    }

    .tap-listen-archive-strip {
        grid-template-columns: 1fr;
    }

    .tap-listen-archive-strip .button {
        grid-column: auto;
        margin-top: 18px;
    }

}

@media (max-width: 760px) {
    .tap-listen-random,
    .tap-listen-platforms {
        padding: 48px 22px;
    }

    .tap-listen-hero__intro {
        max-width: 92vw;
        font-size: 18px;
        line-height: 1.5;
    }

    .tap-listen-archive-strip .button {
        width: max-content;
        justify-content: flex-start;
    }

}

@media (max-width: 520px) {
    .tap-random-episode-card {
        grid-template-columns: 112px minmax(0, 1fr);
        gap: 14px;
    }

    .tap-random-episode-card__copy h3 {
        font-size: clamp(24px, 7.6vw, 32px);
    }

    .tap-random-episode-card__copy > p:not(.mono) {
        display: none;
    }

}

/* --------------------------------------------------
   10. In Conversation — Archive and Single Pages
   Consolidated replacement for previous In Conversation rules.
-------------------------------------------------- */

/* Archive header/nav behaviour */
.post-type-archive-tap_conversation .site-header {
    background: transparent;
    backdrop-filter: none;
}

.post-type-archive-tap_conversation .site-header.is-scrolled {
    background: rgba(0, 0, 0, .96);
    backdrop-filter: blur(14px);
}

.post-type-archive-tap_conversation .site-nav a {
    color: var(--cream);
}

.post-type-archive-tap_conversation .menu-button span {
    background: var(--cream);
}

/* Single interview header */
.single-tap_conversation .site-header {
    background: rgba(163, 36, 45, .98);
    backdrop-filter: blur(14px);
}

.single-tap_conversation .site-header.is-scrolled {
    background: rgba(17, 19, 21, .96);
}

/* Archive hero */
.conversation-archive-hero {
    position: relative;
    overflow: hidden;
    display: grid;
    grid-template-columns: minmax(320px, .78fr) minmax(0, 1.22fr);
    align-items: stretch;
    min-height: 620px;
    padding: 118px 0 0;
    background: var(--black);
    color: var(--cream);
}

.conversation-archive-hero__copy {
    position: relative;
    z-index: 2;
    align-self: center;
    max-width: 650px;
    padding: 52px clamp(24px, 4.8vw, 78px) 78px;
}

.conversation-archive-hero__copy h1 {
    margin: 0 0 28px;
    font-size: clamp(60px, 7.4vw, 116px);
    line-height: .88;
}

.conversation-archive-hero__copy > i {
    display: block;
    width: 48px;
    height: 2px;
    margin: 0 0 28px;
    background: var(--cream);
}

.conversation-archive-hero__copy p:not(.mono) {
    max-width: 520px;
    margin: 0;
    color: rgba(255, 246, 239, .86);
    font-size: clamp(18px, 1.6vw, 24px);
}

.conversation-archive-hero__art {
    position: relative;
    width: 100%;
    min-height: 100%;
    background:
    radial-gradient(ellipse at 67% 76%, rgba(255, 246, 239, .92) 0 7.5%, transparent 8.2%),
    linear-gradient(118deg, transparent 0 48%, rgba(255, 246, 239, .84) 48.3% 66%, transparent 66.3%),
    repeating-linear-gradient(90deg, rgba(163, 36, 45, .98) 0 92px, rgba(44, 5, 8, .9) 92px 130px),
    var(--red);
}

.conversation-archive-hero__art::before,
.conversation-archive-hero__art::after,
.conversation-card__fallback::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
}

.conversation-archive-hero__art::before {
    background:
    radial-gradient(circle at 30% 22%, rgba(255, 246, 239, .08), transparent 25%),
    linear-gradient(90deg, rgba(0, 0, 0, .55), transparent 26%, rgba(0, 0, 0, .18));
    mix-blend-mode: multiply;
}

.conversation-archive-hero__art::after,
.conversation-card__fallback::after {
    background-image:
    radial-gradient(circle at 22% 18%, rgba(255, 246, 239, .08), transparent 16%),
    radial-gradient(circle at 76% 48%, rgba(0, 0, 0, .12), transparent 22%);
    opacity: .42;
}

/* Customiser background support */
.conversation-archive-hero--colour {
    background: var(--conversation-archive-bg-colour, var(--red));
}

.conversation-archive-hero--colour .conversation-archive-hero__art,
.conversation-archive-hero--image .conversation-archive-hero__art {
    display: none;
}

.conversation-archive-hero--colour .conversation-archive-hero__copy {
    max-width: 760px;
}

.conversation-archive-hero--image {
    min-height: 680px;
    background-image: var(--conversation-archive-bg-image);
    background-size: cover;
    background-position: var(--conversation-archive-bg-position, center center);
    background-repeat: no-repeat;
}

.conversation-archive-hero--image::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
}

.conversation-archive-hero--image.conversation-archive-hero--overlay-none::before {
    display: none;
}

.conversation-archive-hero--image.conversation-archive-hero--overlay-light::before {
    background: linear-gradient(90deg, rgba(17, 19, 21, .46), rgba(17, 19, 21, .12));
}

.conversation-archive-hero--image.conversation-archive-hero--overlay-medium::before {
    background: linear-gradient(90deg, rgba(17, 19, 21, .68), rgba(17, 19, 21, .22));
}

.conversation-archive-hero--image.conversation-archive-hero--overlay-dark::before {
    background: linear-gradient(90deg, rgba(17, 19, 21, .82), rgba(17, 19, 21, .44));
}

.conversation-archive-hero--image .conversation-archive-hero__copy,
.conversation-archive-hero--colour .conversation-archive-hero__copy {
    position: relative;
    z-index: 2;
}

/* Archive listing */
.post-type-archive-tap_conversation .conversation-archive-list {
    padding: 58px clamp(24px, 4.8vw, 78px) 96px;
    background: var(--cream);
    color: var(--black);
}

.post-type-archive-tap_conversation .conversation-archive-list__title,
.post-type-archive-tap_conversation .conversation-grid,
.post-type-archive-tap_conversation .conversation-pagination {
    max-width: 1500px;
    margin-left: auto;
    margin-right: auto;
}

.post-type-archive-tap_conversation .conversation-archive-list__title {
    margin-bottom: 28px;
}

.post-type-archive-tap_conversation .conversation-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 22px;
    border: 0;
    align-items: start;
}

.post-type-archive-tap_conversation .conversation-card {
    position: relative;
    overflow: hidden;
    display: grid;
    min-height: 0;
    background: rgba(255, 255, 255, .42);
    border: 0px solid rgba(17, 19, 21, .12);
    border-radius: 20px;
    box-shadow: 0 18px 48px rgba(17, 19, 21, .06);
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

.post-type-archive-tap_conversation .conversation-card:hover {
    transform: translateY(-4px);
    border-color: rgba(17, 19, 21, .22);
    box-shadow: 0 28px 70px rgba(17, 19, 21, .12);
}

.post-type-archive-tap_conversation .conversation-card__image {
    display: block;
    overflow: hidden;
    min-height: 0;
    background: var(--black);
}

.post-type-archive-tap_conversation .conversation-card__image img,
.post-type-archive-tap_conversation .conversation-card__fallback {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
    transition: transform .35s ease;
}

.post-type-archive-tap_conversation .conversation-card:hover .conversation-card__image img,
.post-type-archive-tap_conversation .conversation-card:hover .conversation-card__fallback {
    transform: scale(1.035);
}

.post-type-archive-tap_conversation .conversation-card__fallback {
    position: relative;
    background:
    linear-gradient(126deg, transparent 0 48%, rgba(255, 246, 239, .82) 48.2% 61%, transparent 61.2%),
    repeating-linear-gradient(90deg, rgba(163, 36, 45, 1) 0 50px, rgba(17, 19, 21, .95) 50px 70px),
    var(--red);
}

/* Featured card */
.post-type-archive-tap_conversation .conversation-card:first-child {
    grid-column: span 4;
    grid-template-columns: minmax(0, 1.05fr) minmax(320px, .95fr);
    height: 500px;
    min-height: 500px;
    background: var(--black);
    color: var(--cream);
    border-color: rgba(17, 19, 21, .22);
}

.post-type-archive-tap_conversation .conversation-card:first-child .conversation-card__image,
.post-type-archive-tap_conversation .conversation-card:first-child .conversation-card__image img,
.post-type-archive-tap_conversation .conversation-card:first-child .conversation-card__fallback {
    height: 100%;
    min-height: 500px;
    aspect-ratio: auto;
    object-position: center top;
}

.post-type-archive-tap_conversation .conversation-card:first-child .conversation-card__body {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 500px;
    padding: clamp(34px, 4vw, 58px);
    overflow: visible;
    background:
    linear-gradient(90deg, rgba(17, 19, 21, .82), rgba(17, 19, 21, .96)),
    var(--black);
}

.post-type-archive-tap_conversation .conversation-card:first-child .conversation-card__date::before {
    content: "Featured interview";
    display: block;
    margin-bottom: 28px;
    color: var(--red);
}

.post-type-archive-tap_conversation .conversation-card:first-child h3 {
    color: var(--cream);
    font-size: clamp(44px, 4.6vw, 72px);
    line-height: .9;
}

.post-type-archive-tap_conversation .conversation-card:first-child .conversation-card__role {
    color: rgba(255, 246, 239, .72);
}

.post-type-archive-tap_conversation .conversation-card:first-child .conversation-card__body > p:not(.conversation-card__date):not(.conversation-card__role) {
    display: block;
    max-width: 370px;
    margin: 26px 0 0;
    color: rgba(255, 246, 239, .76);
    font-size: 16px;
    line-height: 1.5;
}

.post-type-archive-tap_conversation .conversation-card:first-child .conversation-card__link {
    position: static;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: max-content;
    min-width: 220px;
    height: 52px;
    margin: 28px 0 0;
    padding: 0 26px;
    border: 0;
    border-radius: 999px;
    background: var(--red);
    color: var(--cream);
    font-size: 13px;
    font-weight: 900;
    line-height: 52px;
    letter-spacing: .1em;
    text-transform: uppercase;
    transform: none;
    overflow: visible;
    white-space: nowrap;
}

.post-type-archive-tap_conversation .conversation-card:first-child .conversation-card__link::before,
.post-type-archive-tap_conversation .conversation-card:first-child .conversation-card__link::after {
    content: none;
    display: none;
}

/* Supporting cards */
.post-type-archive-tap_conversation .conversation-card:nth-child(2),
.post-type-archive-tap_conversation .conversation-card:nth-child(n+3) {
    grid-column: span 2;
    grid-template-rows: minmax(0, 1fr) auto;
}

.post-type-archive-tap_conversation .conversation-card:nth-child(2) {
    height: 500px;
    min-height: 500px;
}

.post-type-archive-tap_conversation .conversation-card:nth-child(n+3) {
    height: 600px;
    min-height: 600px;
}

.post-type-archive-tap_conversation .conversation-card:nth-child(n+2) .conversation-card__image,
.post-type-archive-tap_conversation .conversation-card:nth-child(n+2) .conversation-card__image img,
.post-type-archive-tap_conversation .conversation-card:nth-child(n+2) .conversation-card__fallback {
    height: 100%;
    min-height: 0;
    aspect-ratio: auto;
    object-fit: cover;
    object-position: center top;
}

.post-type-archive-tap_conversation .conversation-card:nth-child(n+2) .conversation-card__body {
    position: relative;
    height: auto;
    min-height: 126px;
    padding: 20px 78px 22px 22px;
    background: var(--cream);
    overflow: visible;
}

.post-type-archive-tap_conversation .conversation-card__date,
.post-type-archive-tap_conversation .conversation-card__role {
    margin: 0 0 10px;
    font-size: 11px;
    line-height: 1;
    font-weight: 900;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.post-type-archive-tap_conversation .conversation-card__date {
    color: var(--red);
}

.post-type-archive-tap_conversation .conversation-card__role {
    margin-bottom: 0;
    color: rgba(17, 19, 21, .58);
}

.post-type-archive-tap_conversation .conversation-card h3 {
    max-width: 520px;
    margin: 0 0 8px;
    padding: 0;
    color: var(--black);
    font-size: clamp(25px, 1.75vw, 36px);
    line-height: .94;
    letter-spacing: -.04em;
    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
}

.post-type-archive-tap_conversation .conversation-card:nth-child(n+2) .conversation-card__body > p:not(.conversation-card__date):not(.conversation-card__role) {
    display: none;
}

/* Supporting card link — simple text */
.post-type-archive-tap_conversation .conversation-card:nth-child(n+2) .conversation-card__link {
    position: static;
    display: inline-flex;
    width: auto;
    height: auto;
    min-width: 0;
    margin-top: 14px;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--red);
    font-size: 0;
    font-weight: 900;
    line-height: 1;
    letter-spacing: .12em;
    text-indent: 0;
    text-transform: uppercase;
    transform: none;
    overflow: visible;
}

.post-type-archive-tap_conversation .conversation-card:nth-child(n+2) .conversation-card__link::before {
    content: "Read interview";
    display: inline-block;
    color: var(--red);
    font-size: 11px;
    font-weight: 900;
    line-height: 1;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.post-type-archive-tap_conversation .conversation-card:nth-child(n+2) .conversation-card__link::after {
    content: " →";
    display: inline-block;
    color: var(--red);
    font-size: 11px;
    font-weight: 900;
    line-height: 1;
    letter-spacing: .08em;
}

.post-type-archive-tap_conversation .conversation-card:nth-child(n+2) .conversation-card__link:hover::before,
.post-type-archive-tap_conversation .conversation-card:nth-child(n+2) .conversation-card__link:hover::after,
.post-type-archive-tap_conversation .conversation-card:nth-child(n+2) .conversation-card__link:focus-visible::before,
.post-type-archive-tap_conversation .conversation-card:nth-child(n+2) .conversation-card__link:focus-visible::after {
    color: var(--black);
}

/* Pagination */
.conversation-pagination {
    margin-top: 36px;
}

.conversation-pagination .nav-links {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.conversation-pagination a,
.conversation-pagination span {
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    padding: 0 14px;
    border: 1px solid rgba(17, 19, 21, .18);
    font-size: 13px;
    font-weight: 900;
}

.conversation-pagination .current {
    background: var(--red);
    color: var(--cream);
    border-color: var(--red);
}

/* Single interview page */
.tap-conversation-single-page {
    background: var(--cream);
    color: var(--black);
}

.tap-conversation-magazine {
    padding-top: 142px;
    background: var(--cream);
    color: var(--black);
}

.tap-conversation-magazine__mast {
    display: grid;
    grid-template-columns: minmax(320px, 37vw) minmax(520px, 36vw) minmax(320px, 1fr);
    align-items: stretch;
    min-height: 700px;
    border-bottom: 1px solid rgba(17, 19, 21, .08);
}

.tap-conversation-magazine__intro {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 700px;
    padding: 56px clamp(24px, 4.8vw, 78px);
    background: var(--cream);
}

.tap-conversation-back {
    display: inline-flex;
    width: max-content;
    margin-bottom: 44px;
    color: var(--red);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .13em;
    line-height: 1;
    text-transform: uppercase;
}

.tap-conversation-date,
.tap-conversation-role,
.tap-conversation-byline {
    color: var(--red);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .13em;
    line-height: 1;
    text-transform: uppercase;
}

.tap-conversation-date {
    margin: 0 0 20px;
    color: rgba(17, 19, 21, .52);
}

.tap-conversation-magazine__intro h1 {
    max-width: 520px;
    margin: 0 0 20px;
    color: var(--black);
    font-size: clamp(62px, 6.2vw, 108px);
    line-height: .88;
    letter-spacing: -.045em;
}

.tap-conversation-role {
    margin: 0 0 24px;
}

.tap-conversation-deck {
    max-width: 430px;
    margin: 0;
    color: rgba(17, 19, 21, .9);
    font-size: clamp(18px, 1.5vw, 24px);
    line-height: 1.36;
}

.tap-conversation-byline {
    margin: 28px 0 0;
    letter-spacing: .04em;
    text-transform: none;
}

.tap-conversation-magazine__image {
    min-height: 700px;
    margin: 0;
    background: #d7d2c8;
}

.tap-conversation-magazine__image img,
.tap-conversation-magazine__image span {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 700px;
    object-fit: cover;
    object-position: center top;
}

.tap-conversation-magazine__image span {
    background:
    radial-gradient(ellipse at 64% 74%, rgba(255, 246, 239, .86) 0 8%, transparent 8.5%),
    linear-gradient(120deg, transparent 0 48%, rgba(255, 246, 239, .82) 48.2% 66%, transparent 66.2%),
    repeating-linear-gradient(90deg, rgba(163, 36, 45, .96) 0 60px, rgba(17, 19, 21, .92) 60px 88px),
    var(--red);
}

.tap-conversation-magazine__sidebar {
    display: grid;
    grid-template-rows: minmax(390px, 1fr) auto;
    min-height: 700px;
}

.tap-conversation-quote-panel {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 390px;
    padding: 72px clamp(34px, 4.2vw, 76px) 64px;
    background:
    radial-gradient(circle at 22% 18%, rgba(255, 246, 239, .08), transparent 25%),
    var(--red);
    color: var(--cream);
}

.tap-conversation-quote-panel span {
    display: block;
    margin: 0 0 28px;
    font-family: Calistoga, Georgia, serif;
    font-size: clamp(200px, 5vw, 78px);
    line-height: .6;
}

.tap-conversation-quote-panel p {
    max-width: 390px;
    margin-top: -30px;
    padding-left: 24px;
    border-left: 2px solid rgba(255, 246, 239, .44);
    color: var(--cream);
    font-family: Calistoga, Georgia, serif;
    font-size: clamp(28px, 2.4vw, 42px);
    line-height: 1.05;
    letter-spacing: -.025em;
}

.tap-conversation-dark-panel {
    display: grid;
    gap: 30px;
    align-content: start;
    min-height: 310px;
    padding: 38px clamp(34px, 3.4vw, 58px) 46px;
    background: var(--black);
    color: var(--cream);
}

.tap-conversation-related__card {
    display: grid;
    grid-template-columns: 120px minmax(0, 1fr);
    gap: 22px;
    align-items: start;
    width: 100%;
}

.tap-conversation-related__card img {
    display: block;
    width: 120px;
    aspect-ratio: 1.35 / 1;
    object-fit: cover;
}

.tap-conversation-related__card h2 {
    max-width: 100%;
    margin: 0 0 10px;
    font-family: Calistoga, Georgia, serif;
    font-size: clamp(22px, 1.45vw, 30px);
    line-height: 1;
    letter-spacing: -.035em;
    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
}

.tap-conversation-related__card h2 a {
    color: var(--cream);
    text-transform: none;
    letter-spacing: -.035em;
    font-size: inherit;
    font-weight: inherit;
}

.tap-conversation-related__card a:not(h2 a),
.tap-conversation-more a {
    color: var(--red);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.tap-conversation-more {
    border-top: 1px solid rgba(255, 246, 239, .18);
    padding-top: 22px;
}

.tap-conversation-more a {
    display: grid;
    gap: 3px;
    padding: 12px 0;
    border-bottom: 1px solid rgba(255, 246, 239, .15);
    color: inherit;
    letter-spacing: 0;
    text-transform: none;
}

.tap-conversation-more strong {
    font-size: 16px;
    line-height: 1.15;
}

.tap-conversation-more span {
    color: rgba(255, 246, 239, .62);
    font-size: 12px;
}

/* Keep this as a 3-column grid because the current PHP outputs:
   share column / article body / spare column.
   To place share at the article bottom properly, move the share markup in PHP. */
.tap-conversation-article-row {
    display: grid;
    grid-template-columns: minmax(220px, 16vw) minmax(0, 780px) minmax(260px, 1fr);
    gap: clamp(28px, 4vw, 76px);
    padding: 76px clamp(24px, 4.8vw, 78px) 104px;
    background: var(--cream);
}

/* Interview share panel — stacked icon buttons */
.tap-conversation-share {
    align-self: start;
    display: block;
    padding-top: 4px;
}

.tap-conversation-share__label,
.tap-conversation-share .mono {
    margin: 0 0 12px;
    color: var(--red);
    font-size: 11px;
    font-weight: 900;
    line-height: 1.2;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.tap-conversation-share__links {
    display: grid;
    gap: 8px;
}

.tap-conversation-share__link,
.tap-conversation-share a,
.tap-conversation-share button {
    appearance: none;
    -webkit-appearance: none;
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    min-height: 42px;
    padding: 10px 13px;
    border: 1px solid rgba(17, 19, 21, .16);
    border-radius: 999px;
    background: transparent;
    color: var(--black);
    font: inherit;
    font-size: 13px;
    font-weight: 900;
    line-height: 1;
    text-align: left;
    text-decoration: none;
    cursor: pointer;
}

.tap-conversation-share__link:hover,
.tap-conversation-share__link:focus-visible,
.tap-conversation-share a:hover,
.tap-conversation-share a:focus-visible,
.tap-conversation-share button:hover,
.tap-conversation-share button:focus-visible {
    border-color: var(--red);
    color: var(--red);
    outline: none;
}

.tap-conversation-share__icon {
    display: inline-flex;
    width: 18px;
    height: 18px;
    flex: 0 0 18px;
}

.tap-conversation-share__icon svg {
    display: block;
    width: 18px;
    height: 18px;
    fill: currentColor;
}

.tap-conversation-article-body {
    max-width: 780px;
    color: var(--black);
    font-size: 18px;
    line-height: 1.72;
}

.tap-conversation-article-body > *:first-child {
    margin-top: 0;
}

.tap-conversation-article-body p {
    margin: 0 0 1.35em;
}

/* Interview article image captions */
.tap-conversation-article-body figcaption,
.tap-conversation-article-body .wp-caption-text {
    margin-top: 10px;
    color: rgba(17, 19, 21, .56);
    font-size: 13px;
    line-height: 1.35;
    font-weight: 500;
}

.tap-conversation-article-body > p:first-of-type::first-letter {
    float: left;
    margin: .08em .12em 0 0;
    color: var(--red);
    font-family: Calistoga, Georgia, serif;
    font-size: 88px;
    line-height: .75;
}

.tap-conversation-article-body h2,
.tap-conversation-article-body h3 {
    margin: 1.6em 0 .6em;
    color: var(--black);
}

.tap-conversation-article-body h2 {
    font-size: clamp(34px, 4vw, 56px);
}

.tap-conversation-article-body h3 {
    font-size: clamp(26px, 3vw, 40px);
}

.tap-conversation-article-body blockquote {
    margin: 2em 0;
    padding-left: 24px;
    border-left: 3px solid var(--red);
    color: var(--red);
    font-family: Calistoga, Georgia, serif;
    font-size: clamp(28px, 3vw, 46px);
    line-height: 1.08;
}

/* Mid-size screens */
@media (min-width: 901px) and (max-width: 1180px) {
    .post-type-archive-tap_conversation .conversation-card:first-child,
    .post-type-archive-tap_conversation .conversation-card:nth-child(2) {
        height: 460px;
        min-height: 460px;
    }

    .post-type-archive-tap_conversation .conversation-card:first-child .conversation-card__image,
    .post-type-archive-tap_conversation .conversation-card:first-child .conversation-card__image img,
    .post-type-archive-tap_conversation .conversation-card:first-child .conversation-card__fallback,
    .post-type-archive-tap_conversation .conversation-card:first-child .conversation-card__body {
        min-height: 460px;
    }

    .post-type-archive-tap_conversation .conversation-card:nth-child(n+3) {
        height: 500px;
        min-height: 500px;
    }

    .post-type-archive-tap_conversation .conversation-card:first-child h3 {
        font-size: clamp(42px, 4.5vw, 62px);
    }

}

/* Tablet */
@media (max-width: 1180px) {
    .conversation-archive-hero {
        grid-template-columns: 1fr;
        padding-top: 118px;
    }

    .conversation-archive-hero__art {
        min-height: 340px;
    }

    .tap-conversation-magazine {
        padding-top: 128px;
    }

    .tap-conversation-magazine__mast {
        grid-template-columns: minmax(300px, .9fr) minmax(420px, 1.1fr);
        min-height: 0;
    }

    .tap-conversation-magazine__intro,
    .tap-conversation-magazine__image,
    .tap-conversation-magazine__image img,
    .tap-conversation-magazine__image span {
        min-height: 620px;
    }

    .tap-conversation-magazine__sidebar {
        grid-column: 1 / -1;
        grid-template-columns: 1fr 1fr;
        grid-template-rows: auto;
        min-height: 0;
    }

    .tap-conversation-quote-panel,
    .tap-conversation-dark-panel {
        min-height: 300px;
    }

    .tap-conversation-article-row {
        grid-template-columns: minmax(220px, 18vw) minmax(0, 780px);
    }

}

/* Archive stack */
@media (max-width: 900px) {
    .post-type-archive-tap_conversation .conversation-grid {
        grid-template-columns: 1fr;
    }

    .post-type-archive-tap_conversation .conversation-card:first-child,
    .post-type-archive-tap_conversation .conversation-card:nth-child(2),
    .post-type-archive-tap_conversation .conversation-card:nth-child(n+3) {
        grid-column: auto;
        height: auto;
        min-height: 0;
        display: grid;
        grid-template-columns: 1fr;
        grid-template-rows: auto auto;
    }

    .post-type-archive-tap_conversation .conversation-card:first-child .conversation-card__image,
    .post-type-archive-tap_conversation .conversation-card:first-child .conversation-card__image img,
    .post-type-archive-tap_conversation .conversation-card:first-child .conversation-card__fallback,
    .post-type-archive-tap_conversation .conversation-card:nth-child(n+2) .conversation-card__image img,
    .post-type-archive-tap_conversation .conversation-card:nth-child(n+2) .conversation-card__fallback {
        height: auto;
        min-height: 0;
        aspect-ratio: 4 / 3;
    }

    .post-type-archive-tap_conversation .conversation-card:first-child .conversation-card__body {
        min-height: 0;
        height: auto;
    }

}

/* Mobile */
@media (max-width: 760px) {
    .post-type-archive-tap_conversation .site-header,
    .single-tap_conversation .site-header {
        background: var(--red);
    }

    .post-type-archive-tap_conversation .site-header.is-scrolled,
    .single-tap_conversation .site-header.is-scrolled {
        background: rgba(17, 19, 21, .96);
    }

    .conversation-archive-hero {
        display: block;
        min-height: 0;
        padding-top: 86px;
    }

    .conversation-archive-hero__copy {
        padding: 44px 22px 34px;
    }

    .conversation-archive-hero__art {
        height: 300px;
    }

    .post-type-archive-tap_conversation .conversation-archive-list {
        padding: 44px 22px 68px;
    }

    .post-type-archive-tap_conversation .conversation-grid {
        gap: 18px;
    }

    .post-type-archive-tap_conversation .conversation-card {
        border-radius: 16px;
    }

    .post-type-archive-tap_conversation .conversation-card__body,
    .post-type-archive-tap_conversation .conversation-card:nth-child(n+2) .conversation-card__body {
        min-height: 132px;
        height: auto;
        padding: 18px 68px 20px 18px;
    }

    .post-type-archive-tap_conversation .conversation-card h3 {
        padding-right: 48px;
        font-size: clamp(30px, 9vw, 42px);
    }

    .post-type-archive-tap_conversation .conversation-card:first-child h3 {
        font-size: clamp(38px, 11vw, 54px);
    }

    .tap-conversation-magazine {
        padding-top: 96px;
    }

    .tap-conversation-magazine__mast,
    .tap-conversation-magazine__sidebar {
        display: block;
        min-height: 0;
    }

    .tap-conversation-magazine__intro {
        min-height: 0;
        padding: 42px 22px;
    }

    .tap-conversation-back {
        margin-bottom: 34px;
    }

    .tap-conversation-magazine__intro h1 {
        max-width: 92vw;
        font-size: clamp(48px, 14vw, 68px);
    }

    .tap-conversation-deck {
        max-width: 92vw;
        font-size: 18px;
        line-height: 1.45;
    }

    .tap-conversation-magazine__image,
    .tap-conversation-magazine__image img,
    .tap-conversation-magazine__image span {
        min-height: 0;
        height: auto;
    }

    .tap-conversation-magazine__image img,
    .tap-conversation-magazine__image span {
        aspect-ratio: 4 / 5;
        object-fit: cover;
        object-position: center top;
    }

    .tap-conversation-quote-panel,
    .tap-conversation-dark-panel {
        min-height: 0;
        padding: 38px 22px;
    }

    .tap-conversation-quote-panel span {
        margin-bottom: 20px;
        font-size: 56px;
    }

    .tap-conversation-quote-panel p {
        max-width: none;
        font-size: 24px;
        line-height: 1.22;
    }

    .tap-conversation-related__card {
        grid-template-columns: 105px minmax(0, 1fr);
        gap: 16px;
    }

    .tap-conversation-related__card img {
        width: 105px;
    }

    .tap-conversation-related__card h2 {
        font-size: 23px;
        line-height: 1.02;
    }

    .tap-conversation-article-row {
        display: block;
        padding: 42px 22px 64px;
    }

    .tap-conversation-article-body {
        max-width: none;
        font-size: 17px;
        line-height: 1.65;
    }

    .tap-conversation-share {
        margin-top: 34px;
        padding-top: 18px;
        border-top: 1px solid rgba(17, 19, 21, .12);
    }

}

/* Episode row kicker */
.episode-kicker {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}

.episode-kicker__separator {
    color: rgba(255, 246, 239, .42);
}

.site-footer {
    display: grid;
    grid-template-columns: 180px minmax(260px, 1fr) minmax(320px, 420px);
    align-items: start;
    gap: clamp(32px, 5vw, 72px);
    padding: clamp(40px, 6vw, 72px) clamp(24px, 5vw, 56px) 28px;
    background: var(--red);
    color: var(--cream);
}

.footer-logo {
    max-width: 170px;
}

.footer-logo img {
    width: 100%;
    height: auto;
}

.site-footer > p {
    margin: 0;
    max-width: 560px;
    font-size: clamp(17px, 1.4vw, 22px);
    line-height: 1.35;
    font-weight: 700;
}

.site-footer > p {
    margin: 0;
    max-width: 560px;
    font-size: clamp(17px, 1.4vw, 22px);
    line-height: 1.35;
    font-weight: 700;
}

.footer-signup {
    justify-self: end;
    width: 100%;
    max-width: 420px;
}

.footer-signup .mono {
    margin: 0 0 14px;
    font-size: 12px;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: #fff;
}

.footer-signup .wpcf7 {
    width: 100%;
}

.footer-signup form {
    display: flex;
    flex-wrap: wrap;
    width: 100%;
}

.footer-signup .wpcf7-form p {
    display: contents;
}

.footer-signup input[type="email"] {
    flex: 1;
    min-width: 0;
    height: 52px;
    padding: 0 18px;
    border: 1px solid rgba(255, 255, 255, .35);
    border-right: 0;
    background: transparent;
    color: #fff;
    font: inherit;
}

.footer-signup input[type="email"]::placeholder {
    color: rgba(255, 255, 255, .55);
}

.footer-signup button,
.footer-signup input[type="submit"] {
    height: 52px;
    padding: 0 24px;
    border: 1px solid #fff;
    background: #fff;
    color: var(--red);
    font: inherit;
    font-weight: 900;
    cursor: pointer;
    border-radius: 0;
}

.footer-signup .wpcf7-spinner {
    display: none;
}

.footer-signup .wpcf7-response-output {
    width: 100%;
    margin: 12px 0 0 !important;
    padding: 0 !important;
    border: 0 !important;
    color: #fff;
    font-size: 13px;
}

.footer-signup .wpcf7-not-valid-tip {
    width: 100%;
    margin-top: 6px;
    color: #fff;
    font-size: 12px;
    font-weight: 800;
}

.site-footer__bottom {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    width: 100%;
    margin-top: 56px;
    padding-top: 22px;
    border-top: 1px solid rgba(255, 255, 255, .18);
}

.site-footer__bottom {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    width: 100%;
    margin-top: 56px;
    padding-top: 22px;
    border-top: 1px solid rgba(255, 255, 255, .18);
}

.site-footer__copyright {
    margin: 0;
    max-width: none;
    font-size: 12px;
    line-height: 1.2;
    color: rgba(255, 255, 255, .72);
}

.site-footer__socials {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 18px;
    margin-left: auto;
}

.site-footer__socials a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #fff;
}

.site-footer__socials svg {
    display: block;
    width: 18px;
    height: 18px;
    fill: currentColor;
}

.site-footer__socials a:hover {
    opacity: .65;
}

@media (max-width: 900px) {
    .site-footer {
        grid-template-columns: 1fr;
        gap: 28px;
    }

    .footer-logo {
        max-width: 160px;
    }

    .footer-signup {
        justify-self: stretch;
        max-width: none;
    }

    .site-footer__bottom {
        margin-top: 24px;
    }

}

@media (max-width: 600px) {
    .footer-signup form {
        flex-direction: column;
        gap: 10px;
    }

    .footer-signup input {
        border: 1px solid rgba(255, 255, 255, .35);
    }

    .footer-signup button {
        width: 100%;
    }

    .site-footer__bottom {
        align-items: flex-start;
        flex-direction: column;
        gap: 16px;
    }

    .site-footer__socials {
        margin-left: 0;
    }

}

/* --------------------------------------------------
   12. Radius System — Balanced Corners
   Use these variables for boxes/cards. Pills and circular buttons stay unchanged.
-------------------------------------------------- */

:root {
    --tap-radius-card: 14px;
    --tap-radius-card-mobile: 12px;
    --tap-radius-panel: 10px;
    --tap-radius-media: 8px;
    --tap-radius-small: 6px;
}

/* Main cards / boxed content */
.season-card,
.latest-episode-card,
.platforms a,
.tap-contact-panel__form,
.tap-random-episode-card__image-link,
.tap-host-card__media img,
.tap-host-card__placeholder,
.custom-audio-player,
.post-type-archive-tap_conversation .conversation-card {
    border-radius: var(--tap-radius-card);
}

/* Smaller media and inline cards */
.feed-episode__head > img,
.tap-season-full-list .feed-episode__head > img,
.drawer-grid > img,
.tap-conversation-related__card img {
    border-radius: var(--tap-radius-media);
}

/* Keep clipped images clean inside rounded cards */
.season-card,
.latest-episode-card,
.platforms a,
.tap-random-episode-card__image-link,
.post-type-archive-tap_conversation .conversation-card {
    overflow: hidden;
}

/* In Conversation cards: softer than 20px, rounder than the rest of the site */
.post-type-archive-tap_conversation .conversation-card {
    border: 0;
    border-radius: var(--tap-radius-card);
}

.post-type-archive-tap_conversation .conversation-card:first-child {
    border: 0;
}

/* Small UI panels */
.side-panel,
.site-nav {
    border-radius: var(--tap-radius-small);
}

/* Preserve intentional pills/circles */
.button,
.filter-link,
.subscribe-platforms a,
.tap-load-more-episodes__button,
.custom-play,
.hero-player__play,
.post-type-archive-tap_conversation .conversation-card:first-child .conversation-card__link,
.tap-conversation-share__link,
.tap-conversation-share a,
.tap-conversation-share button {
    /* intentionally left as their existing shape */
}

@media (max-width: 760px) {
    .season-card,
    .latest-episode-card,
    .platforms a,
    .tap-contact-panel__form,
    .tap-random-episode-card__image-link,
    .tap-host-card__media img,
    .tap-host-card__placeholder,
    .custom-audio-player,
    .post-type-archive-tap_conversation .conversation-card {
        border-radius: var(--tap-radius-card-mobile);
    }

    /* Mobile homepage card is intentionally full-width and flush */
    .latest-episode-card {
        border-radius: 0;
    }
}

/* --------------------------------------------------
   Homepage — Latest Episode Wider Shorter Layout
   Wider card, shorter box, image-right, scaled type.
-------------------------------------------------- */

@media (min-width: 901px) {
    .home-latest-hero {
        min-height: 0;
        padding: clamp(118px, 10vw, 150px) clamp(24px, 4.8vw, 78px) clamp(72px, 8vw, 104px);
    }

    .home-latest-hero__inner {
        width: 100%;
        max-width: 1500px;
        margin: 0 auto;
        display: grid;
        grid-template-columns: minmax(420px, 0.82fr) minmax(620px, 0.98fr);
        gap: clamp(36px, 5vw, 86px);
        align-items: center;
    }

    .home-latest-hero__intro {
        min-width: 0;
    }

    .home-latest-hero__intro h1 {
        max-width: 720px;
        margin-bottom: clamp(22px, 2.4vw, 30px);
        font-size: clamp(58px, 6.2vw, 104px);
        line-height: .9;
        letter-spacing: -.045em;
    }

    .home-latest-hero__intro p:not(.mono) {
        max-width: 560px;
        font-size: clamp(18px, 1.35vw, 23px);
        line-height: 1.42;
    }

    .home-latest-hero .latest-episode-card {
        display: grid;
        grid-template-columns: minmax(0, 1fr) clamp(220px, 19vw, 330px);
        gap: clamp(24px, 2.6vw, 42px);
        align-items: center;
        justify-self: end;
        width: 100%;
        max-width: 840px;
        margin: 0;
        padding: clamp(24px, 2.4vw, 34px);
        background: rgba(88, 7, 14, .38);
        border: 1px solid rgba(255, 246, 239, .14);
        border-radius: var(--tap-radius-card, 14px);
        box-shadow: none;
    }

    .home-latest-hero .latest-episode-card__copy {
        min-width: 0;
    }

    .home-latest-hero .latest-episode-card .mono {
        margin: 0 0 12px;
        font-size: clamp(9px, .68vw, 11px);
        line-height: 1.2;
        letter-spacing: .16em;
    }

    .home-latest-hero .latest-episode-card h2 {
        max-width: none;
        margin: 0 0 clamp(12px, 1vw, 16px);
        font-size: clamp(26px, 2.15vw, 40px);
        line-height: .96;
        letter-spacing: -.04em;
    }

    .home-latest-hero .latest-episode-card__copy > p:not(.mono) {
        max-width: none;
        margin: 0 0 clamp(12px, 1vw, 18px);
        color: rgba(255, 246, 239, .82);
        font-size: clamp(12px, .85vw, 15px);
        line-height: 1.4;
    }

    .home-latest-hero .latest-episode-card__image {
        width: 100%;
        max-width: none;
        aspect-ratio: 1.25 / 1;
        height: auto;
        object-fit: cover;
        object-position: center;
        border-radius: var(--tap-radius-media, 8px);
        justify-self: end;
    }

    .home-latest-hero .latest-episode-card .hero-player {
        grid-template-columns: clamp(38px, 3vw, 48px) minmax(0, 1fr);
        gap: clamp(10px, 1vw, 14px);
        width: 100%;
        max-width: 340px;
    }

    .home-latest-hero .latest-episode-card .hero-player__play {
        width: clamp(38px, 3vw, 48px);
        height: clamp(38px, 3vw, 48px);
    }

    .home-latest-hero .latest-episode-card .hero-player__wave {
        height: 18px;
    }

    .home-latest-hero .latest-episode-card .custom-time {
        font-size: clamp(9px, .7vw, 10px);
    }

    .home-latest-hero .latest-episode-card__link {
        margin-top: clamp(10px, .9vw, 14px);
        font-size: clamp(14px, 1vw, 16px);
    }
}

/* Very wide desktop: allow width, not height. */
@media (min-width: 1320px) {
    .home-latest-hero__inner {
        grid-template-columns: minmax(520px, 0.82fr) minmax(720px, 0.98fr);
    }

    .home-latest-hero .latest-episode-card {
        max-width: 900px;
        grid-template-columns: minmax(0, 1fr) 340px;
        padding: 34px;
    }

    .home-latest-hero .latest-episode-card h2 {
        font-size: clamp(32px, 2.25vw, 44px);
    }
}

/* Narrow desktop: make it compact before it gets tall. */
@media (min-width: 901px) and (max-width: 1120px) {
    .home-latest-hero__inner {
        grid-template-columns: minmax(340px, 0.78fr) minmax(500px, 1fr);
        gap: clamp(24px, 3.6vw, 44px);
    }

    .home-latest-hero__intro h1 {
        max-width: 560px;
        font-size: clamp(48px, 5.8vw, 70px);
    }

    .home-latest-hero__intro p:not(.mono) {
        max-width: 500px;
        font-size: 17px;
    }

    .home-latest-hero .latest-episode-card {
        grid-template-columns: minmax(0, 1fr) 180px;
        max-width: 560px;
        gap: 20px;
        padding: 22px;
    }

    .home-latest-hero .latest-episode-card h2 {
        font-size: clamp(22px, 2.25vw, 30px);
    }

    .home-latest-hero .latest-episode-card__copy > p:not(.mono) {
        font-size: 12px;
    }

    .home-latest-hero .latest-episode-card .hero-player {
        max-width: 280px;
    }
}

/* Tablet / resized browser: title stacks above, but the card remains wide and image-right. */
@media (max-width: 900px) {
    .home-latest-hero {
        min-height: 0;
        padding: 104px 22px 52px;
    }

    .home-latest-hero__inner {
        display: block;
        width: 100%;
        max-width: none;
        margin: 0;
    }

    .home-latest-hero__intro {
        padding: 0;
    }

    .home-latest-hero__intro h1 {
        max-width: 620px;
        font-size: clamp(44px, 10.5vw, 72px);
        line-height: .92;
    }

    .home-latest-hero__intro p:not(.mono) {
        max-width: 600px;
        font-size: clamp(17px, 3vw, 21px);
        line-height: 1.45;
    }

    .home-latest-hero .latest-episode-card {
        display: grid;
        grid-template-columns: minmax(0, 1fr) clamp(130px, 34vw, 230px);
        gap: clamp(16px, 4vw, 24px);
        align-items: center;
        width: 100%;
        max-width: 720px;
        margin: 40px 0 0;
        padding: clamp(18px, 4vw, 26px);
        background: rgba(88, 7, 14, .38);
        border: 1px solid rgba(255, 246, 239, .14);
        border-radius: var(--tap-radius-card-mobile, 12px);
        box-shadow: none;
    }

    .home-latest-hero .latest-episode-card h2 {
        max-width: none;
        margin-bottom: 12px;
        font-size: clamp(22px, 5.6vw, 34px);
        line-height: .98;
    }

    .home-latest-hero .latest-episode-card__copy > p:not(.mono) {
        max-width: none;
        margin-bottom: 14px;
        font-size: clamp(12px, 3.2vw, 14px);
        line-height: 1.38;
    }

    .home-latest-hero .latest-episode-card__image {
        width: 100%;
        max-width: none;
        aspect-ratio: 1.15 / 1;
        height: auto;
        object-fit: cover;
        object-position: center;
        border-radius: var(--tap-radius-media, 8px);
    }

    .home-latest-hero .latest-episode-card .hero-player {
        grid-template-columns: 38px minmax(0, 1fr);
        gap: 9px;
        max-width: 100%;
    }

    .home-latest-hero .latest-episode-card .hero-player__play {
        width: 38px;
        height: 38px;
    }

    .home-latest-hero .latest-episode-card__link {
        font-size: 15px;
    }
}

/* Small phones: preserve layout, hide only the excerpt to stop crowding. */
@media (max-width: 430px) {
    .home-latest-hero .latest-episode-card {
        grid-template-columns: minmax(0, 1fr) 108px;
        gap: 12px;
        padding: 18px 16px 22px;
    }

    .home-latest-hero .latest-episode-card h2 {
        font-size: clamp(20px, 6vw, 26px);
    }

    .home-latest-hero .latest-episode-card__copy > p:not(.mono) {
        display: none;
    }

    .home-latest-hero .latest-episode-card .hero-player {
        grid-template-columns: 34px minmax(0, 1fr);
    }

    .home-latest-hero .latest-episode-card .hero-player__play {
        width: 34px;
        height: 34px;
    }
}

/* --------------------------------------------------
   Homepage — Hero Title Position Tweak
   Keeps the top clearance you liked, but stops the hero intro
   from sitting too far left at the awkward pre-mobile widths.
   This does not change the latest episode card.
-------------------------------------------------- */

/* Normal desktop: keep the title aligned to the site gutter */
@media (min-width: 1121px) {
    .home-latest-hero__intro {
        padding-top: clamp(28px, 3vw, 58px);
        padding-left: 0;
    }
}

/* Awkward just-before-mobile range: add top clearance and a small left nudge */
@media (min-width: 901px) and (max-width: 1120px) {
    .home-latest-hero__intro {
        padding-top: clamp(42px, 5vw, 72px);
        padding-left: clamp(18px, 2.4vw, 32px);
    }
}

/* Tablet: preserve existing side padding rather than forcing the intro hard left */
@media (max-width: 900px) {
    .home-latest-hero__intro {
        padding-top: 28px;
        padding-left: 22px;
        padding-right: 22px;
    }
}

/* Phone: keep the existing mobile rhythm */
@media (max-width: 760px) {
    .home-latest-hero__intro {
        padding-top: 22px;
        padding-left: 22px;
        padding-right: 22px;
    }
}

/* --------------------------------------------------
   Homepage — Mobile Position Reset
   Restores the mobile hero positioning after the desktop/tablet
   homepage overrides, so the content is not double-indented.
-------------------------------------------------- */

@media (max-width: 760px) {
    .home-latest-hero {
        padding-top: 96px;
        padding-right: 0;
        padding-bottom: 0;
        padding-left: 0;
    }

    .home-latest-hero__inner {
        display: block;
        width: 100%;
        max-width: none;
        margin: 0;
    }

    .home-latest-hero__intro {
        padding: 28px 22px 34px;
    }

    .home-latest-hero__intro .mono {
        max-width: none;
        margin-bottom: 34px;
        font-size: 11px;
        line-height: 1.6;
        letter-spacing: .24em;
    }

    .home-latest-hero__intro h1 {
        max-width: 92vw;
        margin-bottom: 24px;
        font-size: clamp(44px, 13.5vw, 62px);
        line-height: .94;
        letter-spacing: -.045em;
        text-wrap: balance;
    }

    .home-latest-hero__intro p:not(.mono) {
        max-width: 92vw;
        margin: 0;
        font-size: 18px;
        line-height: 1.55;
        letter-spacing: .01em;
    }

    .home-latest-hero .latest-episode-card {
        width: calc(100% - 44px);
        max-width: none;
        margin: 40px 22px 38px;
    }
}

@media (max-width: 430px) {
    .home-latest-hero .latest-episode-card {
        width: calc(100% - 32px);
        margin-right: 16px;
        margin-left: 16px;
    }
}

/* --------------------------------------------------
   In Conversation — Mobile Share Placement Restore
   Moves the share panel below the article on small screens
   and restores the compact two-column share layout.
-------------------------------------------------- */

@media (max-width: 900px) {
    .single-tap_conversation .tap-conversation-article-row {
        display: flex;
        flex-direction: column;
        gap: 0;
        padding: 42px 22px 64px;
    }

    .single-tap_conversation .tap-conversation-article-body {
        order: 1;
        max-width: none;
        font-size: 17px;
        line-height: 1.65;
    }

    .single-tap_conversation .tap-conversation-share {
        order: 2;
        width: 100%;
        margin-top: 44px;
        padding-top: 28px;
        border-top: 1px solid rgba(17, 19, 21, .12);
    }

    .single-tap_conversation .tap-conversation-share__label,
    .single-tap_conversation .tap-conversation-share .mono {
        margin-bottom: 18px;
        font-size: 11px;
        letter-spacing: .16em;
    }

    .single-tap_conversation .tap-conversation-share__links {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
        max-width: 560px;
    }

    .single-tap_conversation .tap-conversation-share__link,
    .single-tap_conversation .tap-conversation-share a,
    .single-tap_conversation .tap-conversation-share button {
        min-height: 46px;
        padding: 11px 16px;
        gap: 9px;
        font-size: 12px;
        border-color: rgba(17, 19, 21, .14);
        justify-content: flex-start;
    }

    .single-tap_conversation .tap-conversation-share__icon {
        width: 16px;
        height: 16px;
        flex: 0 0 16px;
    }

    .single-tap_conversation .tap-conversation-share__icon svg {
        width: 16px;
        height: 16px;
    }
}

@media (max-width: 420px) {
    .single-tap_conversation .tap-conversation-share__links {
        grid-template-columns: 1fr;
    }
}

/* --------------------------------------------------
   Season Cards — Scaled Text and Homepage Refinement
   Keeps season card text responsive and makes homepage cards calmer.
-------------------------------------------------- */

/* Base season card type: scale instead of fixed oversized values */
.season-info {
    min-height: clamp(172px, 15vw, 230px);
}

.season-title {
    gap: clamp(8px, 1.1vw, 16px);
}

.season-title strong {
    font-size: clamp(42px, 5vw, 68px);
}

.season-title span {
    font-size: clamp(10px, .95vw, 13px);
    line-height: 1.15;
    letter-spacing: .06em;
}

.season-info p:not(.mono) {
    margin: 0;
    font-size: clamp(12px, .95vw, 15px);
    line-height: 1.35;
}

/* Homepage: make the season cards a little quieter/smaller */
.home .season-info {
    min-height: clamp(150px, 13vw, 196px);
    padding: clamp(13px, 1.35vw, 18px);
}

.home .season-title strong {
    font-size: clamp(34px, 4vw, 54px);
}

.home .season-title span {
    font-size: clamp(9px, .8vw, 11px);
}

.home .season-info hr {
    margin: clamp(10px, 1vw, 14px) 0;
}

.home .season-info p:not(.mono) {
    font-size: clamp(11px, .8vw, 13px);
    line-height: 1.32;
}

.home .small-button {
    padding: 9px 14px;
    font-size: 12px;
}

/* Listen / seasons page cards can stay slightly larger than homepage */
.page-template-page-seasons .season-info,
.tap-listen-page .season-info {
    min-height: clamp(162px, 14vw, 214px);
}

.page-template-page-seasons .season-info p:not(.mono),
.tap-listen-page .season-info p:not(.mono) {
    font-size: clamp(12px, .9vw, 14px);
}

/* Mobile: preserve the compact two-column card rhythm */
@media (max-width: 760px) {
    .season-grid,
    .season-grid.compact {
        align-items: stretch;
    }

    .season-card {
        display: flex;
        flex-direction: column;
        height: 100%;
    }

    .season-card img {
        flex: 0 0 auto;
    }

    .season-info,
    .home .season-info,
    .page-template-page-seasons .season-info,
    .tap-listen-page .season-info {
        flex: 1;
        display: flex;
        flex-direction: column;
        min-height: 172px;
        padding: 13px;
    }

    .season-title strong,
    .home .season-title strong {
        font-size: clamp(34px, 11vw, 48px);
    }

    .season-title span,
    .home .season-title span {
        font-size: 10px;
        line-height: 1.15;
    }

   .season-info p:not(.mono),
    .home .season-info p:not(.mono),
    .page-template-page-seasons .season-info p:not(.mono),
    .tap-listen-page .season-info p:not(.mono) {
        font-size: 13px;
        line-height: 1.35;
    }

      .small-button,
    .home .small-button {
        margin-top: auto;
        padding: 8px 10px;
        font-size: 11px;
    }

}

/* --------------------------------------------------
   Season Cards — Button Spacing Adjustment
   Adds a little breathing room between the card line and Listen button.
-------------------------------------------------- */

.season-info p:not(.mono) {
    margin-bottom: clamp(16px, 1.4vw, 55px);
}

.home .season-info p:not(.mono) {
    margin-bottom: clamp(16px, 1.4vw, 55px);
}

.page-template-page-seasons .season-info p:not(.mono),
.tap-listen-page .season-info p:not(.mono) {
    margin-bottom: clamp(16px, 1.4vw, 55px);
}

@media (max-width: 760px) {
    .season-info p:not(.mono),
    .home .season-info p:not(.mono),
    .page-template-page-seasons .season-info p:not(.mono),
    .tap-listen-page .season-info p:not(.mono) {
        margin-bottom: 12px;
    }
}
/* --------------------------------------------------
   Season Page — More Seasons List
   Editorial stacked links for the sidebar, not button-style.
-------------------------------------------------- */

.season-jump {
    display: grid;
    gap: 14px;
}

.season-jump .mono {
    margin-bottom: 4px;
}

.season-jump__links {
    display: grid;
    gap: 0;
    border-top: 1px solid rgba(255, 246, 239, .16);
}

.season-jump__link {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 18px;
    align-items: center;
    padding: 16px 0;
    border-bottom: 1px solid rgba(255, 246, 239, .16);
    color: var(--cream);
}

.season-jump__link:hover,
.season-jump__link:focus-visible {
    color: var(--cream);
    outline: none;
}

.season-jump__text {
    display: grid;
    gap: 6px;
    min-width: 0;
}

.season-jump__name {
    color: var(--cream);
    font-family: Calistoga, Georgia, serif;
    font-size: 24px;
    line-height: .95;
    letter-spacing: -.035em;
}

.season-jump__meta {
    color: rgba(255, 246, 239, .58);
    font-size: 10px;
    font-weight: 900;
    line-height: 1;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.season-jump__arrow {
    color: var(--red);
    font-size: 18px;
    font-weight: 900;
    line-height: 1;
    transition: transform .2s ease;
}

.season-jump__link:hover .season-jump__arrow,
.season-jump__link:focus-visible .season-jump__arrow {
    transform: translateX(4px);
}

.season-jump__link:hover .season-jump__name,
.season-jump__link:focus-visible .season-jump__name {
    color: var(--red);
}

@media (max-width: 760px) {
    .season-jump__link {
        padding: 15px 0;
    }

    .season-jump__name {
        font-size: 22px;
    }
}


/* --------------------------------------------------
   Homepage Hero — Customizer Background Options
   Mirrors the In Conversation archive background controls.
-------------------------------------------------- */

.home-latest-hero--colour {
    background:
        radial-gradient(circle at 78% 34%, rgba(255, 246, 239, .11), transparent 30%),
        linear-gradient(90deg, rgba(0, 0, 0, .08), transparent 70%),
        var(--tap-home-hero-bg-colour, var(--red));
}

.home-latest-hero--image {
    background-color: var(--tap-home-hero-bg-colour, var(--red));
    background-image: var(--tap-home-hero-bg-image);
    background-size: cover;
    background-position: var(--tap-home-hero-bg-position, center center);
    background-repeat: no-repeat;
}

.home-latest-hero--image::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
}

.home-latest-hero--image.home-latest-hero--overlay-none::before {
    display: none;
}

.home-latest-hero--image.home-latest-hero--overlay-light::before {
    background:
        radial-gradient(circle at 78% 34%, rgba(255, 246, 239, .10), transparent 30%),
        linear-gradient(90deg, rgba(17, 19, 21, .38), rgba(17, 19, 21, .10));
}

.home-latest-hero--image.home-latest-hero--overlay-medium::before {
    background:
        radial-gradient(circle at 78% 34%, rgba(255, 246, 239, .10), transparent 30%),
        linear-gradient(90deg, rgba(17, 19, 21, .58), rgba(17, 19, 21, .24));
}

.home-latest-hero--image.home-latest-hero--overlay-dark::before {
    background:
        radial-gradient(circle at 78% 34%, rgba(255, 246, 239, .08), transparent 30%),
        linear-gradient(90deg, rgba(17, 19, 21, .76), rgba(17, 19, 21, .48));
}

.home-latest-hero--image .home-latest-hero__inner,
.home-latest-hero--colour .home-latest-hero__inner {
    position: relative;
    z-index: 2;
}

.site-header--transparent-start:not(.is-scrolled) {
    background: transparent;
    backdrop-filter: none;
}

.site-header--solid-start:not(.is-scrolled) {
    background: rgba(163, 36, 45, .96);
    backdrop-filter: blur(14px);
}

.post-type-archive-tap_conversation .site-header--solid-start:not(.is-scrolled) {
    background: rgba(163, 36, 45, .96);
    backdrop-filter: blur(14px);
}

@media (max-width: 760px) {
    .home-latest-hero--colour {
        background: var(--tap-home-hero-bg-colour, var(--red));
    }

    .home-latest-hero--image {
        background-color: var(--tap-home-hero-bg-colour, var(--red));
        background-image: var(--tap-home-hero-bg-image);
        background-size: cover;
        background-position: var(--tap-home-hero-bg-position, center center);
        background-repeat: no-repeat;
    }
}
/* Footer Contact Form 7 signup fix */
.footer-signup .wpcf7 {
    width: 100%;
}

.footer-signup .wpcf7-form {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0;
    width: 100%;
    margin: 0;
}

.footer-signup .wpcf7-form p {
    display: contents !important;
    margin: 0 !important;
}

.footer-signup .wpcf7-form br {
    display: none !important;
}

.footer-signup input[type="email"] {
    width: 100% !important;
    height: 52px;
    padding: 0 18px;
    border: 1px solid rgba(255, 255, 255, .35);
    border-right: 0;
    background: transparent;
    color: #fff;
    font: inherit;
}

.footer-signup input[type="email"]::placeholder {
    color: rgba(255, 255, 255, .55);
}

.footer-signup input[type="submit"] {
    width: auto !important;
    min-width: 150px;
    height: 52px;
    padding: 0 24px;
    border: 1px solid #fff;
    background: var(--cream);
    color: var(--red);
    font: inherit;
    font-weight: 900;
    cursor: pointer;
    border-radius: 0;
}

.footer-signup .wpcf7-spinner {
    display: none !important;
}

.footer-signup .wpcf7-response-output,
.footer-signup .wpcf7-not-valid-tip {
    grid-column: 1 / -1;
    width: 100%;
    margin-top: 10px !important;
    color: #fff;
}

@media (max-width: 760px) {
    .footer-signup .wpcf7-form {
        grid-template-columns: 1fr;
    }

    .footer-signup input[type="email"] {
        border-right: 1px solid rgba(255, 255, 255, .35);
    }

    .footer-signup input[type="submit"] {
        width: 100% !important;
    }
}
/* --------------------------------------------------
   Single Episode Page
-------------------------------------------------- */

.single-tap_episode .site-main,
.single-episode-page {
    background: var(--red);
    color: var(--cream);
}

.single-episode-page {
    min-height: 100vh;
}

/* Hero */

.single-episode-hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(260px, 420px);
    gap: clamp(32px, 5vw, 72px);
    align-items: center;
    padding: 170px clamp(22px, 5vw, 72px) clamp(56px, 7vw, 96px);
    background: var(--red);
    color: var(--cream);
}

.single-episode-back {
    display: inline-block;
    margin-bottom: 28px;
    color: var(--cream);
    text-decoration: none;
}

.single-episode-back:hover {
    text-decoration: underline;
}

.single-episode-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 0 0 18px;
    color: rgba(255, 246, 239, .78);
}

.single-episode-meta span:not(:last-child)::after {
    content: "·";
    margin-left: 10px;
}

.single-episode-hero h1 {
    max-width: 920px;
    margin: 0;
    color: var(--cream);
    font-size: clamp(42px, 6.5vw, 96px);
    line-height: .9;
    letter-spacing: -.04em;
}

.single-episode-intro {
    max-width: 680px;
    margin: 28px 0 0;
    color: var(--cream);
    font-size: clamp(18px, 1.6vw, 25px);
    line-height: 1.35;
    font-weight: 700;
}

.single-episode-hero__image {
    overflow: hidden;
    border-radius: 10px;
    background: rgba(17, 19, 21, .18);
    box-shadow: 0 30px 80px rgba(0, 0, 0, .18);
}

.single-episode-hero__image img {
    display: block;
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
}

/* Body */

.single-episode-body {
    display: block;
    width: 100%;
    background: var(--black2);
    color: var(--cream);
    padding: clamp(46px, 6vw, 82px) 0 clamp(70px, 8vw, 110px);
}

.single-episode-main {
    width: min(920px, calc(100% - 44px));
    margin-inline: auto;
}

.single-episode-player {
    margin-bottom: clamp(34px, 5vw, 56px);
}

/* Content */

.single-episode-content {
    color: var(--cream);
    font-size: clamp(18px, 1.35vw, 22px);
    line-height: 1.55;
}

.single-episode-content > *:first-child {
    margin-top: 0;
}

.single-episode-content > *:last-child {
    margin-bottom: 0;
}

.single-episode-content h1,
.single-episode-content h2,
.single-episode-content h3,
.single-episode-content h4,
.single-episode-content h5,
.single-episode-content h6,
.single-episode-content strong {
    color: var(--cream);
}

.single-episode-content p,
.single-episode-content li {
    color: rgba(255, 246, 239, .88);
}

.single-episode-content a {
    color: var(--cream);
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
}

/* Remove old duplicate side share panel */

.single-episode-side,
.single-episode-share {
    display: none;
}

/* Mobile */

@media (max-width: 860px) {
    .single-episode-hero {
        grid-template-columns: 1fr;
        padding-top: 130px;
    }

    .single-episode-hero__image {
        max-width: 360px;
    }

    .single-episode-body {
        padding-top: 38px;
    }

    .single-episode-main {
        width: min(100% - 36px, 920px);
    }
}