/* phc-newsroom.css
 * Newsroom page (/newsroom) component styles.
 * Spec: docs/superpowers/specs/2026-05-04-newsroom-page-design.md
 */

/* ─── Hero ──────────────────────────────────────────────────── */

/* phc-program-hero + phc-newsroom-hero: the overlay gradient and
   reveal animations for h1/h2/text-editor come from phc-program.css.
   Only the HTML widget (media inquiries line) needs its own delay. */
@media (prefers-reduced-motion: no-preference) {
  .phc-newsroom-hero .elementor-widget-html {
    animation: phcFadeUp 600ms ease both 400ms;
  }
}

/* Hero background: show the subject's face (not cut off at top) */
.phc-newsroom-hero {
  background-position: 50% 25% !important;
}

/* ─── Featured In section ───────────────────────────────────── */

/* Boxed content, full-width background: cap each content block to 1280px
   (Figma: 1440px frame − 160px padding = 1280px content width).
   The section itself stays full-viewport-width so #171717 fills the screen.
   Section has align-items:center from Elementor → children auto-center. */
.phc-newsroom-featured-header.e-con,
.phc-newsroom-hero-ep.e-con,
.phc-newsroom-episode-grid.e-con,
.phc-newsroom-pitch-bar.e-con {
  max-width: 1280px !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

/* Hero episode card — right content panel: 720px fixed on desktop, 320px tall */
@media (min-width: 1025px) {
  .phc-newsroom-hero-ep-content.e-con {
    flex: 0 0 720px !important;
    width: 720px !important;
    min-height: 320px !important;
  }
}

/* Hero episode card — tablet: both panels flex:1 */
@media (min-width: 768px) and (max-width: 1024px) {
  .phc-newsroom-hero-ep-content.e-con {
    flex: 1 1 0 !important;
    width: auto !important;
    --padding-top: 24px !important;
    --padding-right: 24px !important;
    --padding-bottom: 24px !important;
    --padding-left: 24px !important;
  }
  .phc-newsroom-listen-btn { width: 100% !important; box-sizing: border-box; }
  /* Episode grid: override desktop 32px row-gap → 24px for consistent card spacing */
  .phc-newsroom-episode-grid.e-con {
    --gap: 24px !important;
    gap: 24px !important;
  }
}

/* Hero episode card — mobile: stack vertically; content panel goes full-width */
@media (max-width: 767px) {
  .phc-newsroom-hero-ep-content.e-con {
    flex: none !important;
    width: 100% !important;
  }
  .phc-newsroom-listen-btn { width: 100% !important; box-sizing: border-box; }
}

/* Episode grid — desktop: rows are flex-row (rows are e-con-full now).
   Tablet + mobile: rows collapse to single column, gap between cards. */
@media (max-width: 1024px) {
  .phc-newsroom-row.e-con {
    flex-direction: column !important;
    --gap: 24px !important;
    gap: 24px !important;
  }
}

/* Zero grid + row padding: Elementor's default --padding-* fallback is 10px,
   shrinking the grid/row inner by 20px each. Use gap for spacing, not padding. */
.phc-newsroom-episode-grid.e-con,
.phc-newsroom-row.e-con {
  --padding-top: 0 !important;
  --padding-right: 0 !important;
  --padding-bottom: 0 !important;
  --padding-left: 0 !important;
  padding: 0 !important;
}

/* Desktop: cards fill rows equally (flex:1 per card) */
@media (min-width: 1025px) {
  .phc-newsroom-row > .phc-newsroom-episode-card.e-con {
    flex: 1 0 0 !important;
    min-width: 0 !important;
  }
}

/* Mobile: force rows and cards to full section width so ep-info content area
   matches Figma (327px card → 287px content → title wraps 2 lines, fits 180px) */
@media (max-width: 767px) {
  .phc-newsroom-row.e-con {
    width: 100% !important;
    align-self: stretch !important;
  }
  .phc-newsroom-episode-card.e-con {
    width: 100% !important;
    align-self: stretch !important;
  }
}

/* Ep info fills card width beyond thumbnail. min-height (not height) preserves
   the Figma 180px floor while letting longer 2-line titles grow the card without
   clipping the inner 20px top/bottom padding. Uniform card height per row comes
   from the parent row's default align-items:stretch.
   flex-wrap:nowrap prevents Elementor's --flex-wrap-mobile:wrap from creating a
   second column when content reflows. */
.phc-newsroom-ep-info.e-con,
.phc-newsroom-ep-info > .e-con-inner {
  flex-wrap: nowrap !important;
  --flex-wrap-mobile: nowrap !important;
}
.phc-newsroom-ep-info.e-con {
  flex: 1 1 0 !important;
  min-width: 0 !important;
  min-height: 180px !important;
}

/* Episode card base: flex-row (horizontal), overflow clips rounded corners */
.phc-newsroom-episode-card.e-con {
  overflow: hidden;
}

/* Mobile (≤767px): cards go vertical — image on top, info below */
@media (max-width: 767px) {
  /* Hero ep card flips vertical, stretch children to full width */
  .phc-newsroom-hero-ep.e-con {
    flex-direction: column !important;
    align-items: stretch !important;
  }
  /* Hero artwork: full-width stretch, 261px tall.
     Parent added for higher specificity (same reason as ep grid). */
  .phc-newsroom-hero-ep .phc-newsroom-hero-ep-thumb-img.elementor-widget {
    flex: none !important;
    width: 100% !important;
    height: 261px !important;
    min-height: 261px !important;
    max-height: 261px !important;
    align-self: stretch !important;
  }
  .phc-newsroom-hero-ep .phc-newsroom-hero-ep-thumb-img > .elementor-widget-container {
    width: 100% !important;
    height: 261px !important;
    min-height: 261px !important;
  }
  .phc-newsroom-hero-ep .phc-newsroom-hero-ep-thumb-img img {
    width: 100% !important;
    height: 261px !important;
    min-height: 261px !important;
    max-height: 261px !important;
    object-fit: cover !important;
  }
  /* Episode cards flip vertical, stretch children to full width.
     height:auto overrides the 100%-of-row Elementor var so the card
     can grow to hold the 180px thumb + 180px info = 360px. */
  .phc-newsroom-episode-card.e-con {
    height: auto !important;
    flex-direction: column !important;
    align-items: stretch !important;
  }
  /* Episode thumbnail: full-width stretch, 180px tall.
     Parent selector added for higher specificity — the base
     .phc-newsroom-ep-thumb-img.elementor-widget (2 classes) rule
     sits later in the file; 3-class selector wins within !important. */
  .phc-newsroom-episode-card .phc-newsroom-ep-thumb-img.elementor-widget {
    flex: none !important;
    width: 100% !important;
    height: 180px !important;
    min-height: 180px !important;
    max-height: 180px !important;
    align-self: stretch !important;
  }
  .phc-newsroom-episode-card .phc-newsroom-ep-thumb-img > .elementor-widget-container {
    width: 100% !important;
    height: 180px !important;
    min-height: 180px !important;
  }
  .phc-newsroom-episode-card .phc-newsroom-ep-thumb-img img {
    width: 100% !important;
    height: 180px !important;
    min-height: 180px !important;
    max-height: 180px !important;
    object-fit: cover !important;
  }
  /* Hero ep content: full width */
  .phc-newsroom-hero-ep-content.e-con {
    width: 100% !important;
  }
  /* ep-info: switch from flex:1 1 0 (basis=0 collapses in auto-height column)
     to flex:0 0 auto so height:180px is the flex-basis → ep-info stays 180px */
  .phc-newsroom-ep-info.e-con {
    flex: 0 0 auto !important;
  }
}

/* ── Hero episode thumbnail: Image widget fills left panel ──
   The image asset is 540×540 (1:1). In Elementor v4 the image widget renders
   <img> as a direct child (no .elementor-widget-container wrapper). With
   width:100%/height:100% on <img>, height:100% resolves to auto when no
   ancestor has an explicit height — pushing the row to panel-width × 1:1.
   Lift the <img> out of flow with absolute positioning so only the right
   content panel sizes the card. Mobile (≤767px) overrides this further down
   with explicit 261px height. */
.phc-newsroom-hero-ep-thumb-img.elementor-widget {
  flex: 1 1 0 !important;
  min-width: 0 !important;
  align-self: stretch !important;
  position: relative !important;
  overflow: hidden !important;
  min-height: 320px;
}
@media (min-width: 768px) {
  .phc-newsroom-hero-ep-thumb-img > img {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    display: block;
  }
}
.phc-newsroom-hero-ep-thumb-img img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover;
  display: block;
}

/* ── Episode grid thumbnail: 180px wide at tablet+desktop (horizontal card),
   full-width at mobile (vertical card).
   Desktop (≥1025): art stretches to card height (matches Figma where some cards
   grow past 180 to fit 2-line titles). Same v4 trick as the hero card — the
   <img> is the widget's direct child and the source is square (1:1), so it
   would dictate height; absolute-positioning lifts it out of flow.
   Tablet (768–1024): art stays a fixed 180×180 — Figma h-[180px] cards. ── */
@media (min-width: 768px) {
  .phc-newsroom-ep-thumb-img.elementor-widget {
    flex: 0 0 180px !important;
    width: 180px !important;
    min-width: 180px !important;
    max-width: 180px !important;
    align-self: stretch !important;
    position: relative !important;
    overflow: hidden !important;
    flex-shrink: 0;
  }
  .phc-newsroom-ep-thumb-img img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    display: block;
  }
}
@media (min-width: 1025px) {
  .phc-newsroom-ep-thumb-img > img {
    position: absolute !important;
    inset: 0 !important;
  }
}
@media (min-width: 768px) and (max-width: 1024px) {
  .phc-newsroom-ep-thumb-img.elementor-widget {
    height: 180px !important;
    max-height: 180px !important;
  }
}

/* ── Zero gap + padding on card containers so artwork touches edges ── */
.phc-newsroom-hero-ep.e-con,
.phc-newsroom-episode-card.e-con {
  --padding-top: 0 !important;
  --padding-right: 0 !important;
  --padding-bottom: 0 !important;
  --padding-left: 0 !important;
  padding: 0 !important;
  --gap: 0 !important;
  gap: 0 !important;
}

/* Hero ep + episode cards: box shadows and overflow */
.phc-newsroom-hero-ep.e-con {
  overflow: hidden;
  box-shadow: 0 8px 32px rgba(0,0,0,0.4);
}
.phc-newsroom-episode-card.e-con {
  box-shadow: 0 4px 16px rgba(0,0,0,0.3);
}

/* Mobile: tighten all episode-grid gaps to 16px (Figma mobile spec) and fix hero radius */
@media (max-width: 767px) {
  .phc-newsroom-episode-grid.e-con {
    --gap: 16px !important;
    gap: 16px !important;
  }
  .phc-newsroom-row.e-con {
    --gap: 16px !important;
    gap: 16px !important;
  }
  /* Hero card radius drops from 16px to 12px on mobile per Figma */
  .phc-newsroom-hero-ep.e-con {
    border-radius: 12px !important;
  }
}

/* Pitch Us bar: sits outside episode-grid in Elementor but Figma places it
   inside the grid. Compensate the extra featured-section gap so spacing from
   the last episode card matches the grid's own row gap per breakpoint. */
.phc-newsroom-pitch-bar.e-con {
  margin-top: -32px !important; /* desktop: featured gap 64px → 32px effective */
}
@media (min-width: 768px) and (max-width: 1024px) {
  .phc-newsroom-pitch-bar.e-con {
    margin-top: -24px !important; /* tablet: featured gap 48px → 24px effective */
  }
}
@media (max-width: 767px) {
  .phc-newsroom-pitch-bar.e-con {
    margin-top: -16px !important; /* mobile: featured gap 32px → 16px effective */
  }
}

/* Pitch Us bar — mobile: stack vertically, stretch children so CTA widget
   fills full bar width (align-items:stretch gives the HTML widget 100% width,
   so the a.phc-newsroom-email-cta inside can be width:100%). */
@media (max-width: 767px) {
  .phc-newsroom-pitch-bar.e-con {
    --flex-direction: column !important;
    flex-direction: column !important;
    --align-items: stretch !important;
    align-items: stretch !important;
  }
  .phc-newsroom-email-cta {
    width: 100% !important;
    justify-content: center;
  }
}

/* Pitch Us info — flex:1 in row layout */
.phc-newsroom-pitch-info.e-con {
  flex: 1 1 0 !important;
  min-width: 0 !important;
}

/* ─── Listen Now button ─────────────────────────────────────── */

.phc-newsroom-listen-btn,
.phc-newsroom-listen-btn:link,
.phc-newsroom-listen-btn:visited {
  position: relative;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  height: 48px;
  padding: 12px 28px;
  background: #9b8764;
  border-radius: 6px;
  color: #fff;
  font-family: "Inter", sans-serif;
  font-weight: 600;
  font-size: 14px;
  text-decoration: none;
  box-sizing: border-box;
  transition: color 0.35s cubic-bezier(.22,.61,.36,1);
  flex-shrink: 0;
}
.phc-newsroom-listen-btn::before {
  content: "";
  position: absolute;
  inset: 0;
  background: #CCC2B0;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 0.35s cubic-bezier(.22,.61,.36,1);
}
.phc-newsroom-listen-btn > * { position: relative; z-index: 1; }
.phc-newsroom-listen-btn img { display: block; width: 24px; height: 24px; }
.phc-newsroom-listen-btn:hover,
.phc-newsroom-listen-btn:focus,
.phc-newsroom-listen-btn:active {
  color: #0E1B2B !important;
}
.phc-newsroom-listen-btn:hover::before { transform: scaleX(1); }

/* ─── Email CTA pill (Pitch Us bar) — ink-sweep fill on hover ─ */

.phc-newsroom-email-cta {
  position: relative;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #9b8764;
  border-radius: 6px;
  padding: 12px 24px;
  color: #9b8764;
  font-family: "Inter", sans-serif;
  font-weight: 600;
  font-size: 14px;
  text-decoration: none;
  white-space: nowrap;
  flex-shrink: 0;
  box-sizing: border-box;
  transition: color .35s cubic-bezier(.22,.61,.36,1);
}
.phc-newsroom-email-cta::before {
  content: "";
  position: absolute;
  inset: 0;
  background: #9b8764;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform .35s cubic-bezier(.22,.61,.36,1);
}
.phc-newsroom-email-cta span {
  position: relative;
  z-index: 1;
}
.phc-newsroom-email-cta:hover { color: #fff; }
.phc-newsroom-email-cta:hover::before { transform: scaleX(1); }

/* ─── Hero email link (For media inquiries) — nav underline pattern */

a.phc-newsroom-hero-link,
a.phc-newsroom-hero-link:visited {
  position: relative;
  display: inline-block;
  color: #9b8764 !important;
  text-decoration: none !important;
  padding-bottom: 4px;
  transition: color .35s cubic-bezier(.4,0,.2,1);
}
a.phc-newsroom-hero-link::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 0;
  height: 2px;
  background-color: #b79d62;
  transition: width .45s cubic-bezier(.22,.61,.36,1);
}
a.phc-newsroom-hero-link:hover,
a.phc-newsroom-hero-link:focus { color: #b79d62 !important; text-decoration: none !important; }
a.phc-newsroom-hero-link:hover::after,
a.phc-newsroom-hero-link:focus::after { width: 50%; }

/* ─── Text links (Listen, Read Article, Read the full release) — nav underline pattern */

.phc-newsroom-link {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  color: #9b8764;
  font-family: "Inter", sans-serif;
  font-weight: 600;
  font-size: 13px;
  text-decoration: none;
  padding-bottom: 3px;
  transition: color .35s cubic-bezier(.4,0,.2,1);
}
.phc-newsroom-link::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 0;
  height: 2px;
  background-color: #b79d62;
  transition: width .45s cubic-bezier(.22,.61,.36,1);
}
.phc-newsroom-link:hover,
.phc-newsroom-link:focus {
  color: #b79d62;
  text-decoration: none;
}
.phc-newsroom-link:hover::after,
.phc-newsroom-link:focus::after { width: 50%; }
.phc-newsroom-link svg {
  display: inline-block;
  vertical-align: middle;
  flex-shrink: 0;
  transition: transform .2s cubic-bezier(.22,.61,.36,1);
}
.phc-newsroom-link:hover svg { transform: translateX(3px); }

/* ─── Latest News section (Figma: Press Releases — 313:27735 / 313:27951 / 313:28161) ─ */

/* Outer section — bg, padding, column gap, center align (Figma root frame) */
.phc-newsroom-releases.e-con {
  box-sizing: border-box;
  background-color: #faf9f7 !important;
  align-items: center !important;
}

@media (min-width: 1025px) {
  .phc-newsroom-releases.e-con {
    --padding-top: 100px !important;
    --padding-right: 120px !important;
    --padding-bottom: 100px !important;
    --padding-left: 120px !important;
    padding-top: 100px !important;
    padding-right: 120px !important;
    padding-bottom: 100px !important;
    padding-left: 120px !important;
    --gap: 48px !important;
    gap: 48px !important;
  }
}

@media (min-width: 768px) and (max-width: 1024px) {
  .phc-newsroom-releases.e-con {
    --padding-top: 80px !important;
    --padding-right: 48px !important;
    --padding-bottom: 80px !important;
    --padding-left: 48px !important;
    padding-top: 80px !important;
    padding-right: 48px !important;
    padding-bottom: 80px !important;
    padding-left: 48px !important;
    --gap: 48px !important;
    gap: 48px !important;
  }
}

@media (max-width: 767px) {
  .phc-newsroom-releases.e-con {
    --padding-top: 56px !important;
    --padding-right: 24px !important;
    --padding-bottom: 56px !important;
    --padding-left: 24px !important;
    padding-top: 56px !important;
    padding-right: 24px !important;
    padding-bottom: 56px !important;
    padding-left: 24px !important;
    --gap: 32px !important;
    gap: 32px !important;
  }
}

/* List container — full width of padded section; dividers only on items */
.phc-newsroom-releases-list.e-con {
  width: 100% !important;
  max-width: 100% !important;
  --gap: 0 !important;
  gap: 0 !important;
}

/* Strip Elementor container vars/padding on chrome wrappers — spacing comes from
   section padding, release-row py, and flex gaps only (matches Figma frames). */
.phc-newsroom-releases-list.e-con,
.phc-newsroom-releases-header.e-con {
  --padding-top: 0 !important;
  --padding-right: 0 !important;
  --padding-bottom: 0 !important;
  --padding-left: 0 !important;
  padding: 0 !important;
}

.phc-newsroom-releases .phc-newsroom-releases-list > .e-con-inner,
.phc-newsroom-releases .phc-newsroom-releases-header > .e-con-inner {
  padding: 0 !important;
}

/* Header: stack gap 12px desktop+tablet; 8px mobile (Figma) */
@media (min-width: 768px) {
  .phc-newsroom-releases-header.e-con {
    --gap: 12px !important;
    gap: 12px !important;
  }
}

@media (max-width: 767px) {
  .phc-newsroom-releases-header.e-con {
    --gap: 8px !important;
    gap: 8px !important;
  }
}

/* "LATEST NEWS" label — sizes + tracking per breakpoint */
@media (min-width: 1025px) {
  .phc-newsroom-releases-header .elementor-widget-heading:first-child .elementor-heading-title {
    font-size: 13px !important;
    letter-spacing: 4px !important;
    color: #9b8764 !important;
  }
}
@media (min-width: 768px) and (max-width: 1024px) {
  .phc-newsroom-releases-header .elementor-widget-heading:first-child .elementor-heading-title {
    font-size: 11px !important;
    letter-spacing: 2.2px !important;
    color: #9b8764 !important;
  }
}
@media (max-width: 767px) {
  .phc-newsroom-releases-header .elementor-widget-heading:first-child .elementor-heading-title {
    font-size: 10px !important;
    letter-spacing: 2px !important;
    color: #9b8764 !important;
  }
}

/* "Press Releases" — Cormorant; line heights track Figma h3 scale */
@media (min-width: 1025px) {
  .phc-newsroom-releases-header .elementor-widget-heading:last-child .elementor-heading-title {
    font-size: 28px !important;
    line-height: 36px !important;
    color: #1e1e1e !important;
  }
}
@media (min-width: 768px) and (max-width: 1024px) {
  .phc-newsroom-releases-header .elementor-widget-heading:last-child .elementor-heading-title {
    font-size: 24px !important;
    line-height: 32px !important;
    color: #1e1e1e !important;
  }
}
@media (max-width: 767px) {
  .phc-newsroom-releases-header .elementor-widget-heading:last-child .elementor-heading-title {
    font-size: 22px !important;
    line-height: 28px !important;
    color: #1e1e1e !important;
  }
}

/* Desktop row: date | content — gap 32px, py 32px (Figma web).
   Sync --padding-* with Elementor container model so vars never stack extra space. */
@media (min-width: 1025px) {
  .phc-newsroom-release-item.e-con {
    --flex-direction: row !important;
    flex-direction: row !important;
    align-items: flex-start !important;
    --gap: 32px !important;
    gap: 32px !important;
    --padding-top: 32px !important;
    --padding-bottom: 32px !important;
    --padding-left: 0 !important;
    --padding-right: 0 !important;
    padding-top: 32px !important;
    padding-bottom: 32px !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}

/* Date col: fixed 140px on desktop, auto-width on tablet/mobile */
.phc-newsroom-release-date.elementor-widget {
  flex: 0 0 140px !important;
  width: 140px !important;
  min-width: 0;
}

/* Month labels — uppercase in Figma */
.phc-newsroom-release-date .elementor-heading-title {
  text-transform: uppercase !important;
}

/* Date typography — gold on desktop; muted grey + smaller type tablet/mobile */
@media (min-width: 1025px) {
  .phc-newsroom-release-date .elementor-heading-title {
    font-size: 12px !important;
    font-weight: 600 !important;
    letter-spacing: 2px !important;
    color: #9b8764 !important;
  }
}
@media (min-width: 768px) and (max-width: 1024px) {
  .phc-newsroom-release-date.elementor-widget {
    flex: none !important;
    width: auto !important;
  }
  .phc-newsroom-release-date .elementor-heading-title {
    font-size: 10px !important;
    font-weight: 600 !important;
    letter-spacing: 1.5px !important;
    color: #5e6778 !important;
  }
}
@media (max-width: 767px) {
  .phc-newsroom-release-date.elementor-widget {
    flex: none !important;
    width: auto !important;
  }
  .phc-newsroom-release-date .elementor-heading-title {
    font-size: 9px !important;
    font-weight: 600 !important;
    letter-spacing: 1.35px !important;
    color: #5e6778 !important;
  }
}

/* Release content: flex:1; inner column gap matches Figma per breakpoint
   (desktop 12 — 313:27742; tablet 8 — flat stack rhythm; mobile 6 — 313:28166). */
@media (min-width: 1025px) {
  .phc-newsroom-release-content.e-con {
    flex: 1 1 0 !important;
    min-width: 0 !important;
    --gap: 12px !important;
    gap: 12px !important;
    --padding-top: 0 !important;
    --padding-right: 0 !important;
    --padding-bottom: 0 !important;
    --padding-left: 0 !important;
    padding: 0 !important;
  }
}

@media (min-width: 768px) and (max-width: 1024px) {
  .phc-newsroom-release-content.e-con {
    flex: none !important;
    width: 100% !important;
    max-width: 100% !important;
    align-self: stretch !important;
    --gap: 8px !important;
    gap: 8px !important;
    --padding-top: 0 !important;
    --padding-right: 0 !important;
    --padding-bottom: 0 !important;
    --padding-left: 0 !important;
    padding: 0 !important;
  }
}

@media (max-width: 767px) {
  .phc-newsroom-release-content.e-con {
    flex: none !important;
    width: 100% !important;
    max-width: 100% !important;
    align-self: stretch !important;
    --gap: 6px !important;
    gap: 6px !important;
    --padding-top: 0 !important;
    --padding-right: 0 !important;
    --padding-bottom: 0 !important;
    --padding-left: 0 !important;
    padding: 0 !important;
  }
}

.phc-newsroom-releases .phc-newsroom-release-content > .e-con-inner {
  padding: 0 !important;
}

/* Flex gap handles vertical rhythm; drop widget margins that stack with gap. */
.phc-newsroom-releases .phc-newsroom-release-item .elementor-widget {
  margin-block: 0 !important;
}

/* Article title — Cormorant bold; line-height matches each breakpoint */
@media (min-width: 1025px) {
  .phc-newsroom-release-content > .elementor-widget-heading .elementor-heading-title {
    font-size: 24px !important;
    line-height: 32px !important;
    color: #1e1e1e !important;
  }
}
@media (min-width: 768px) and (max-width: 1024px) {
  .phc-newsroom-release-content > .elementor-widget-heading .elementor-heading-title {
    font-size: 20px !important;
    line-height: 28px !important;
    color: #1e1e1e !important;
  }
}
@media (max-width: 767px) {
  .phc-newsroom-release-content > .elementor-widget-heading .elementor-heading-title {
    font-size: 18px !important;
    line-height: 24px !important;
    color: #1e1e1e !important;
  }
}

/* Excerpt only (widget after title — not the link row) — Inter light 16/26 */
.phc-newsroom-release-content > .elementor-widget-heading + .elementor-widget-text-editor .elementor-widget-container,
.phc-newsroom-release-content > .elementor-widget-heading + .elementor-widget-text-editor p {
  font-size: 16px !important;
  line-height: 26px !important;
  font-weight: 300 !important;
  color: #5e6778 !important;
}

/* "Read the full release" — desktop 14 semibold; tablet 13 / mobile 12 medium; gold (not body grey) */
.phc-newsroom-release-content a.phc-newsroom-link {
  font-size: 14px !important;
  font-weight: 600 !important;
  color: #9b8764 !important;
  padding-bottom: 3px;
}
@media (min-width: 768px) and (max-width: 1024px) {
  .phc-newsroom-release-content a.phc-newsroom-link {
    font-size: 13px !important;
    font-weight: 500 !important;
    color: #9b8764 !important;
  }
}
@media (max-width: 767px) {
  .phc-newsroom-release-content a.phc-newsroom-link {
    font-size: 12px !important;
    font-weight: 500 !important;
    color: #9b8764 !important;
  }
}

/* Tablet + mobile (Figma 313:27951 / 313:28161): vertical stack — date above title.
   Must override Elementor's inline --flex-direction: row on the container. */
@media (max-width: 1024px) {
  .elementor .phc-newsroom-release-item.e-con,
  .phc-newsroom-release-item.e-con {
    --flex-direction: column !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    align-content: flex-start !important;
    gap: 8px !important;
    --padding-top: 28px !important;
    --padding-bottom: 28px !important;
    --padding-left: 0 !important;
    --padding-right: 0 !important;
    padding-top: 28px !important;
    padding-bottom: 28px !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    --gap: 8px !important;
  }
}

@media (max-width: 767px) {
  .elementor .phc-newsroom-release-item.e-con,
  .phc-newsroom-release-item.e-con {
    gap: 6px !important;
    --padding-top: 24px !important;
    --padding-bottom: 24px !important;
    --padding-left: 0 !important;
    --padding-right: 0 !important;
    padding-top: 24px !important;
    padding-bottom: 24px !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    --gap: 6px !important;
  }
}

.phc-newsroom-releases .phc-newsroom-release-item > .e-con-inner {
  padding: 0 !important;
}

/* Release row: divider — Figma stroke #e0e0e0 */
.phc-newsroom-release-item.e-con {
  border-bottom: 1px solid #e0e0e0 !important;
  border-bottom-color: #e0e0e0 !important;
  width: 100%;
  box-sizing: border-box;
}

/* ─── Scroll reveal states ──────────────────────────────────── */

/* Episode cards (driven by PHC Methodology Reveal, snippet 76) */
@media (prefers-reduced-motion: no-preference) {
  .phc-newsroom-episode-card {
    opacity: 0;
    transform: translateY(40px);
  }
  .phc-newsroom-episode-card.phc-revealing {
    animation: phcRevealCard 600ms cubic-bezier(0.25,0.46,0.45,0.94) forwards;
  }
  .phc-newsroom-episode-card.phc-revealed {
    opacity: 1;
    transform: none;
  }
}
.phc-newsroom-episode-grid:not(.phc-observed) .phc-newsroom-episode-card {
  opacity: 1;
  transform: none;
}

/* Press release rows (driven by snippet 76) */
@media (prefers-reduced-motion: no-preference) {
  .phc-newsroom-release-item {
    opacity: 0;
    transform: translateY(40px);
  }
  .phc-newsroom-release-item.phc-revealing {
    animation: phcRevealCard 600ms cubic-bezier(0.25,0.46,0.45,0.94) forwards;
  }
  .phc-newsroom-release-item.phc-revealed {
    opacity: 1;
    transform: none;
  }
}
.phc-newsroom-releases-list:not(.phc-observed) .phc-newsroom-release-item {
  opacity: 1;
  transform: none;
}

/* ─── Reduced motion ─────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  .phc-newsroom-listen-btn,
  .phc-newsroom-listen-btn::before,
  .phc-newsroom-link,
  .phc-newsroom-link::after,
  .phc-newsroom-link svg,
  .phc-newsroom-hero-link,
  .phc-newsroom-hero-link::after,
  .phc-newsroom-email-cta,
  .phc-newsroom-email-cta span::after {
    transition: none;
  }
}
