
/* ==========================================================================
   STATIC FEATURE — edge-to-edge section premiere (Wave 2, 2026-09-30)
   One full-bleed banner per section page. Zero rotation, zero carousel
   logic, zero timers. Fresh pv-feature* namespace — no legacy hero selector
   can collide.
   Fallback: the lockup under the art is always in the DOM;if the art fails,
   /js/section-feature.js adds .is-fallback and the art hides — never a
   broken-image icon, never an empty box.
   ========================================================================== */
.pv-feature{
  position:relative;
  width:100%;
  min-height:min(84vh, 760px);
  display:flex;
  align-items:flex-end;
  overflow:hidden;
  isolation:isolate;
  background:var(--pv-noir, var(--surface-dark-deep));
}.pv-feature__fallback{
  position:absolute; inset:0;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:14px; text-align:center; padding:40px 24px;
  background:radial-gradient(70% 55% at 72% 28%, rgba(var(--brand-red-rgb),.26), transparent 62%),
    radial-gradient(90% 70% at 18% 12%, rgba(var(--desert-accent-deep-rgb), .32), transparent 60%),
    linear-gradient(180deg, var(--desert-card) 0%, var(--desert-ink) 45%, var(--desert-card) 78%, var(--surface-dark-deep) 100%);
}.pv-feature__fallback::before{
  content:""; position:absolute; inset:0; opacity:.45;
  mix-blend-mode:overlay; pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E");
}.pv-feature__wordmark{
  position:relative;
  font-family:var(--pv-serif, "Playfair Display", Didot, Georgia, serif); font-weight:700;
  font-size:clamp(28px, 5vw, 54px); line-height:1;
  letter-spacing:.14em; color:var(--pv-ivory, var(--desert-ink));
}.pv-feature__wordmark em{ font-style:normal; color:var(--pv-red, var(--brand-red)); }.pv-feature__fallback-title{
  position:relative;
  font-family:var(--pv-serif, "Playfair Display", Didot, Georgia, serif); font-weight:700;
  font-size:clamp(20px, 3vw, 30px); line-height:1.2;
  color:var(--pv-ivory-dim, var(--desert-ink-dim));
}.pv-feature__fallback-sub{
  position:relative;
  font-family:var(--pv-sans, Inter, system-ui, sans-serif); font-weight:600; font-size:11px;
  letter-spacing:.3em; text-transform:uppercase;
  color:rgba(var(--desert-ink-rgb), .55);
}.pv-feature__art{
  position:absolute; inset:0; z-index:1;
  width:100%; height:100%;
  object-fit:cover; object-position:center;
}.pv-feature.is-fallback .pv-feature__art{ display:none; }/* legibility scrims — text sits on the art, never in a box */
.pv-feature::after{
  content:""; position:absolute; inset:0; z-index:2; pointer-events:none;
  background:linear-gradient(6deg, rgba(var(--desert-card-rgb), .94) 0%, rgba(var(--desert-card-rgb), .55) 34%, transparent 62%),
    linear-gradient(90deg, rgba(var(--desert-card-rgb), .55) 0%, transparent 55%);
}.pv-feature__flag{ position:absolute; z-index:4; top:26px; left:0; right:0; pointer-events:none; }.pv-feature__flag span{
  display:block; max-width:var(--pv-content-max, 1440px); margin:0 auto;
  padding:0 var(--pv-gutter, 28px);
  font-family:var(--pv-sans, Inter, system-ui, sans-serif); font-weight:600; font-size:11px;
  letter-spacing:.3em; text-transform:uppercase;
  color:rgba(var(--desert-pressed-rgb), .6);
}.pv-feature__copy{
  position:relative; z-index:3; width:100%;
  max-width:var(--pv-content-max, 1440px); margin:0 auto;
  padding:60px var(--pv-gutter, 28px) 64px;
}.pv-feature__kicker{
  display:inline-block;
  font-family:var(--pv-sans, Inter, system-ui, sans-serif); font-weight:700; font-size:12px;
  letter-spacing:.3em; text-transform:uppercase;
  color:var(--desert-accent-soft); margin-bottom:16px;
  border-bottom:2px solid var(--pv-red, var(--brand-red)); padding-bottom:8px;
}.pv-feature__title{
  font-family:var(--pv-serif, "Playfair Display", Didot, Georgia, serif); font-weight:700;
  font-size:clamp(40px, 6.4vw, 84px); line-height:1.02;
  color:var(--pv-ivory, var(--desert-ink)); margin:0 0 14px; max-width:12ch;
  text-wrap:balance;
}.pv-feature__meta{
  font-family:var(--pv-sans, Inter, system-ui, sans-serif);
  font-size:13px; letter-spacing:.16em; text-transform:uppercase;
  color:var(--pv-ivory-dim, var(--desert-ink-dim)); font-weight:600; margin:0 0 16px;
}.pv-feature__desc{
  color:var(--desert-ink); font-size:16px; line-height:1.65;
  max-width:540px; margin:0 0 30px;
}.pv-feature__cta-row{ display:flex; gap:14px; flex-wrap:wrap; align-items:center; }.pv-feature__btn{
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  padding:15px 30px; border-radius:10px; border:0; cursor:pointer;
  font-family:var(--pv-sans, Inter, system-ui, sans-serif); font-weight:700; font-size:15px;
  letter-spacing:.03em; text-decoration:none;
}.pv-feature__btn--solid{ background:var(--pv-red, var(--brand-red)); color:var(--desert-ink); box-shadow:0 10px 32px rgba(var(--brand-red-deep-rgb), .45); }.pv-feature__btn--solid:hover{ background:var(--brand-red); }.pv-feature__btn--ghost{ border:1px solid rgba(var(--desert-card-rgb), .35); color:var(--pv-ivory, var(--desert-ink)); background:rgba(var(--desert-shadow-rgb), .3); }.pv-feature__btn--ghost:hover{ border-color:var(--pv-ivory, var(--desert-ink)); }/* the coming-soon trailer delegation wraps its button in .cs-trailer — keep the
   row layout intact and let the injected trailer slot span the full row */
.pv-feature__cta-row .cs-trailer{ display:contents; }.pv-feature__cta-row .cs-trailer-slot{ flex:1 1 100%; aspect-ratio:16/9; max-height:60vh; }.pv-feature__cta-row .cs-trailer-slot iframe{ width:100%; height:100%; border:0; border-radius:12px; }@media (max-width:640px){.pv-feature{ min-height:78vh; }.pv-feature__copy{ padding:48px var(--pv-gutter-sm, 20px) 52px; }.pv-feature__flag span{ padding:0 var(--pv-gutter-sm, 20px); }
}@media (prefers-reduced-motion:reduce){.pv-feature__btn{ transition:none; }
}/* PODCAST REPAIR 2026-09-30 — show-page hero overlap fix.
   On .pv-feature--title (podcast show pages) the page carries its own
   poster + title lockup in .pv-feature__titlewrap. The generic
   .pv-feature__fallback (absolute inset-0, big "PREVIOUSLY." wordmark) is
   only meaningful when a full-bleed art image fails — on the title
   variant there is no art image, so the fallback must never paint.
   Without this, the wordmark overlaps the show title and meta lines. */
.pv-feature--title .pv-feature__fallback{
  display:none !important;
}/* Title-variant hero layout: poster + copy side by side on desktop,
   stacked on phone. */
.pv-feature--title .pv-feature__titlewrap{
  position:relative;
  z-index:3;
  width:100%;
  max-width:var(--pv-content-max, 1440px);
  margin:0 auto;
  padding:60px var(--pv-gutter, 28px) 64px;
  display:flex;
  align-items:flex-end;
  gap:28px;
}.pv-feature--title .pv-feature__posterframe{
  flex:0 0 auto;
  width:220px;
  border-radius:12px;
  overflow:hidden;
  box-shadow:0 18px 50px rgba(var(--desert-bg-rgb), 0.55);
}.pv-feature--title .pv-feature__poster{
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:1 / 1;
  object-fit:cover;
}.pv-feature--title .pv-feature__copy{
  padding:0;
  margin:0;
  max-width:none;
}@media (max-width:720px){.pv-feature--title .pv-feature__titlewrap{
    flex-direction:column;
    align-items:flex-start;
    gap:18px;
    padding:48px var(--pv-gutter-sm, 20px) 52px;
  }.pv-feature--title .pv-feature__posterframe{
    width:140px;
  }
}
