/* ==========================================================================
   Potęga Prasy — app layout & composition
   --------------------------------------------------------------------------
   Page chrome (header/footer), the news-home, the editorial article view and
   block-style variations. Built on the tokens + component classes. Ports the
   inline-styled React layouts from ui_kits/portal/* into reusable CSS.
   ========================================================================== */

/* ---- Primitives ---------------------------------------------------------- */
.pp-wrap{ max-width:var(--container); margin:0 auto; padding-left:var(--gutter); padding-right:var(--gutter); }

.pp-icon{ display:inline-block; vertical-align:middle; flex:none;
  fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }

.pp-eyebrow{ font:var(--role-eyebrow); letter-spacing:var(--tracking-caps); text-transform:uppercase; color:var(--text-muted); }
.pp-eyebrow--accent{ color:var(--accent-strong); }
.pp-eyebrow--on-brand{ color:var(--pp-blue-100); }
.pp-accent{ color:var(--brand); }

.pp-skip-link{ position:absolute; left:-9999px; top:0; z-index:var(--z-toast);
  background:var(--pp-ink); color:#fff; padding:10px 16px; border-radius:0 0 var(--radius-sm) 0; }
.pp-skip-link:focus{ left:0; }

.pp-main{ display:block; }

/* ---- Header -------------------------------------------------------------- */
.pp-header{ position:sticky; top:0; z-index:var(--z-nav); }

.pp-utility{ background:var(--surface-ink); color:var(--pp-sand-200); }
.pp-utility__inner{ display:flex; align-items:center; justify-content:space-between;
  padding-top:6px; padding-bottom:6px; font:var(--fw-medium) 12px/1 var(--font-mono); }
.pp-utility__dot{ color:var(--pp-orange-400); }
.pp-utility__note{ color:var(--pp-sand-300); }
.pp-utility__cta{ color:#fff; display:inline-flex; align-items:center; gap:6px; }
.pp-utility__cta:hover{ color:#fff; text-decoration:none; }

.pp-bar{ background:var(--surface-card); border-bottom:var(--border-2) solid var(--border-hair); }
.pp-bar__inner{ display:flex; align-items:center; gap:var(--space-5);
  padding-top:12px; padding-bottom:12px; }
.pp-logo{ display:inline-flex; align-items:center; flex:none; }
.pp-logo__img{ display:block; }
.pp-logo--invert{ filter:brightness(0) invert(1); }
.pp-bar__nav{ flex:1; align-self:stretch; display:flex; align-items:flex-end; min-width:0; overflow:hidden; }
.pp-bar__nav .pp-tabs{ border-bottom:0; }
.pp-bar__actions{ display:flex; align-items:center; gap:var(--space-3); flex:none; }
.pp-bar__burger{ display:none; border:0; background:none; cursor:pointer; color:var(--text-strong); padding:6px; }

/* ---- Listen chip --------------------------------------------------------- */
.pp-listen-chip{ display:inline-flex; align-items:center; gap:9px; cursor:pointer;
  font:var(--fw-semibold) var(--text-sm)/1 var(--font-display); color:#fff;
  background:var(--pp-blue-900); border:0; padding:8px 15px 8px 13px; border-radius:var(--radius-pill); }
.pp-listen-chip:hover{ color:#fff; text-decoration:none; filter:brightness(1.08); }
.pp-listen-chip .pp-eq{ color:var(--pp-blue-300); width:14px; height:14px; font-size:14px; }
.pp-listen-chip__freq{ font-family:var(--font-mono); font-size:12px; opacity:.85; }
.pp-listen-chip.is-playing .pp-eq{ color:var(--pp-orange-400); }
.pp-listen-chip--live{ background:var(--pp-onair); }
.pp-listen-chip__pulse{ width:8px; height:8px; border-radius:50%; background:#fff;
  animation:pp-badge-pulse 1.4s ease-in-out infinite; }

/* ---- Home hero ----------------------------------------------------------- */
.pp-hero{ background:var(--surface-page); border-bottom:var(--border-2) solid var(--border-hair); }
.pp-hero__grid{ display:grid; grid-template-columns:1.4fr 1fr; gap:var(--space-6);
  align-items:stretch; padding-top:var(--space-7); padding-bottom:var(--space-7); }
.pp-hero__lead{ display:flex; flex-direction:column; gap:var(--space-4); }
.pp-hero__leadlink{ display:flex; flex-direction:column; gap:var(--space-4); color:inherit; }
.pp-hero__leadlink:hover{ text-decoration:none; }
.pp-hero__meta{ display:flex; gap:10px; align-items:center; margin-bottom:10px; }
.pp-hero__title{ font:var(--fw-black) var(--text-3xl)/1.1 var(--font-sans); letter-spacing:-.01em; margin:0 0 10px; color:var(--text-strong); }
.pp-hero__leadlink:hover .pp-hero__title{ color:var(--brand-ink); }
.pp-hero__dek{ font:var(--role-body); margin:0; max-width:60ch; color:var(--text-body); }
.pp-hero__byline{ display:flex; align-items:center; gap:10px; margin-top:16px; }
.pp-byline__name{ font:var(--role-label); }
.pp-byline__read{ font:var(--role-caption); color:var(--text-muted); }
.pp-hero__lead--empty{ justify-content:center; }

/* ---- Image with caption overlay (the imagery system) --------------------- */
.pp-img{ position:relative; margin:0; overflow:hidden; background:var(--pp-sand-200);
  height:var(--pp-img-h,200px); border-radius:var(--pp-img-radius,0); }
.pp-img::before{ content:""; position:absolute; inset:0;
  background:linear-gradient(160deg, var(--pp-blue-500), var(--pp-blue-900)); opacity:.0; }
.pp-img:not(:has(.pp-img__el))::before{ opacity:1; }
.pp-img__el{ width:100%; height:100%; object-fit:cover; object-position:var(--pp-img-pos,center); display:block; }
.pp-img__label{ position:absolute; top:10px; left:10px; font:var(--role-eyebrow); letter-spacing:.1em;
  background:rgba(32,32,32,.55); color:#fff; padding:5px 9px; border-radius:var(--radius-pill); }
.pp-img__credit{ position:absolute; bottom:8px; right:10px; font-family:var(--font-mono); font-size:10px;
  color:#fff; background:rgba(32,32,32,.45); padding:2px 6px; border-radius:4px; }

/* ---- Now-playing rail ---------------------------------------------------- */
.pp-nowplaying{ padding:var(--space-5); gap:0; }
.pp-nowplaying .pp-eyebrow{ color:var(--pp-sand-400); }
.pp-nowplaying__head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:var(--space-4); }
.pp-nowplaying__title{ font:var(--fw-bold) var(--text-xl)/1.15 var(--font-display); color:#fff; }
.pp-nowplaying__sub{ font:var(--role-caption); color:var(--pp-sand-300); margin-top:4px; }
.pp-nowplaying__controls{ margin:var(--space-5) 0; }
.pp-nowplaying__play{ display:inline-flex; align-items:center; gap:12px; cursor:pointer; border:0;
  background:var(--accent); color:var(--pp-ink); padding:10px 18px 10px 14px; border-radius:var(--radius-pill);
  font:var(--fw-semibold) var(--text-base)/1 var(--font-display); }
.pp-nowplaying__play:hover{ background:var(--accent-strong); }
.pp-nowplaying__freq{ font-family:var(--font-mono); font-size:12px; opacity:.7; }
.pp-nowplaying__schedule{ border-top:1px solid rgba(255,255,255,.08); padding-top:var(--space-4); }
.pp-ramowka__row{ display:flex; align-items:center; gap:10px; padding:5px 0; }
.pp-ramowka__time{ font-family:var(--font-mono); font-size:12px; color:var(--pp-sand-300); width:42px; flex:none; }
.pp-ramowka__time.is-live{ color:var(--pp-onair); }
.pp-ramowka__name{ flex:1; font:var(--role-caption); color:#fff; }

/* ---- Latest grid + news cards ------------------------------------------- */
.pp-latest{ padding-top:var(--space-7); padding-bottom:var(--space-7); }
.pp-latest__head{ display:flex; align-items:baseline; justify-content:space-between; margin-bottom:var(--space-5); gap:var(--space-4); }
.pp-latest__title{ font:var(--role-h2); margin:0; }
.pp-latest__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:var(--space-5); }

.pp-newscard{ color:inherit; }
.pp-newscard:hover{ text-decoration:none; }
.pp-newscard__media{ aspect-ratio:16/10; overflow:hidden; }
.pp-newscard__media img{ width:100%; height:100%; object-fit:cover; }
.pp-newscard__body{ padding:var(--space-4); display:flex; flex-direction:column; gap:8px; }
.pp-newscard__title{ font:var(--fw-bold) var(--text-lg)/1.2 var(--font-sans); margin:0; color:var(--text-strong); }
.pp-newscard__tags{ display:flex; gap:6px; flex-wrap:wrap; margin-top:4px; }
.pp-newscard__tags .pp-tag{ font-size:var(--text-xs); padding:.35em .7em; }

/* ---- CTA band ------------------------------------------------------------ */
.pp-cta-band{ background:var(--brand); color:#fff; }
.pp-cta-band__inner{ display:flex; align-items:center; justify-content:space-between; gap:var(--space-6);
  flex-wrap:wrap; padding-top:var(--space-7); padding-bottom:var(--space-7); }
.pp-cta-band__headline{ font:var(--fw-bold) var(--text-3xl)/1.05 var(--font-display); color:#fff; margin:6px 0 0; max-width:18ch; }

/* ---- Sponsors ------------------------------------------------------------ */
.pp-sponsors{ background:var(--surface-sunk); border-top:1px solid var(--border-hair); border-bottom:1px solid var(--border-hair); }
.pp-sponsors__inner{ display:flex; align-items:center; gap:var(--space-6); flex-wrap:wrap; justify-content:center;
  padding-top:var(--space-6); padding-bottom:var(--space-6); }
.pp-sponsors__eyebrow{ font:var(--role-eyebrow); letter-spacing:.14em; color:var(--text-muted); text-transform:uppercase; }
.pp-sponsors__slot{ height:40px; min-width:120px; padding:0 18px; border-radius:var(--radius-sm);
  border:1.5px dashed var(--border-soft); display:flex; align-items:center; justify-content:center; gap:8px;
  color:var(--text-muted); font:var(--fw-semibold) 13px var(--font-sans); }
.pp-sponsors__slot--logo{ background:#fff; border:1.5px solid transparent; padding:6px 16px; min-width:0; }
.pp-sponsors__logo{ height:26px; width:auto; max-width:160px; object-fit:contain; display:block; }
.pp-sponsors--dark{ background:var(--surface-ink); border-color:rgba(255,255,255,.08); }
.pp-sponsors--dark .pp-sponsors__eyebrow{ color:var(--pp-sand-400); }
.pp-sponsors--dark .pp-sponsors__slot{ border-color:rgba(255,255,255,.22); color:var(--pp-sand-300); }
.pp-sponsors--dark .pp-sponsors__slot--logo{ background:#fff; border-color:transparent; }

/* ---- Footer -------------------------------------------------------------- */
.pp-footer{ background:var(--surface-ink); color:var(--text-on-dark); }
.pp-footer__inner{ display:flex; justify-content:space-between; gap:var(--space-6); flex-wrap:wrap;
  padding-top:var(--space-7); padding-bottom:var(--space-7); }
.pp-footer__brand{ max-width:320px; display:flex; flex-direction:column; gap:10px; }
.pp-footer__logo{ align-self:center; width:auto; max-width:200px; } /* stop flex cross-axis stretch */
.pp-footer__blurb{ font:var(--role-caption); color:var(--pp-sand-300); margin:0; }
.pp-footer__camp{ font:var(--role-label); color:var(--pp-orange-400); display:inline-flex; align-items:center; gap:6px; }
.pp-footer__camp:hover{ color:var(--pp-orange-300); text-decoration:none; }
.pp-footer__cols{ display:flex; gap:var(--space-7); font-family:var(--font-mono); font-size:12px; }
.pp-footer__col{ display:flex; flex-direction:column; gap:8px; }
.pp-footer__col strong{ color:#fff; }
.pp-footer__col a{ color:var(--pp-sand-200); }
.pp-footer__col a:hover{ color:#fff; }
.pp-footer__legal{ display:flex; align-items:center; justify-content:space-between; gap:var(--space-4);
  flex-wrap:wrap; padding-top:var(--space-4); padding-bottom:var(--space-5);
  border-top:1px solid rgba(255,255,255,.08); font:var(--role-caption); color:var(--pp-sand-400); }
.pp-footer__legalnav{ display:flex; gap:var(--space-4); list-style:none; margin:0; padding:0; }
.pp-footer__legalnav a{ color:var(--pp-sand-300); }

/* ---- Article (editorial reading view) ------------------------------------ */
.pp-article{ background:var(--surface-card); }
.pp-article__inner{ max-width:var(--container-text); margin:0 auto;
  padding:var(--space-7) var(--gutter) var(--space-8); }
.pp-article__back{ display:inline-flex; align-items:center; gap:6px; font:var(--role-label);
  color:var(--text-muted); margin-bottom:var(--space-5); }
.pp-article__back:hover{ color:var(--text-strong); text-decoration:none; }
.pp-article__kicker{ display:flex; gap:10px; align-items:center; margin-bottom:var(--space-4); }
.pp-article__title{ font:var(--fw-black) var(--text-4xl)/1.05 var(--font-sans); letter-spacing:-.02em; margin:0 0 var(--space-4); }
.pp-article__dek{ font:var(--fw-regular) var(--text-lg)/1.5 var(--font-serif); color:var(--text-muted); font-style:italic; margin:0 0 var(--space-5); }
.pp-article__byline{ display:flex; align-items:center; gap:var(--space-4); padding:var(--space-4) 0;
  border-top:var(--border-2) solid var(--rule-news); border-bottom:1px solid var(--border-hair); margin-bottom:var(--space-5); }
.pp-article__bylineinfo{ flex:1; }
.pp-byline__role{ font:var(--role-caption); color:var(--text-muted); }
.pp-article__actions{ display:flex; gap:8px; }
.pp-article__hero{ margin:0 0 8px; border-radius:14px; overflow:hidden; }
.pp-article__heroimg{ display:block; width:100%; height:auto; }
.pp-article__herocap{ font:var(--role-caption); color:var(--text-muted); margin:8px 0 var(--space-6); }

.pp-article__body{ font:var(--role-body); color:var(--text-body); }
.pp-article__body > p:first-of-type::first-letter{
  float:left; font:var(--fw-bold) 64px/0.78 var(--font-display); color:var(--brand); margin:6px 12px 0 0; }
.pp-article__body p{ margin:0 0 var(--space-4); }
.pp-article__body h2{ font:var(--role-h2); margin:var(--space-6) 0 var(--space-3); }
.pp-article__body h3{ font:var(--role-h3); margin:var(--space-5) 0 var(--space-2); }
.pp-article__body img{ max-width:100%; height:auto; border-radius:var(--radius-md); }
.pp-article__body blockquote{ margin:var(--space-5) 0; padding:4px 0 4px var(--space-5);
  border-left:4px solid var(--accent); font:var(--fw-regular) var(--text-xl)/1.35 var(--font-display); color:var(--text-strong); }
.pp-article__body blockquote p{ margin:0; }
.pp-article__body a{ text-decoration:underline; text-underline-offset:2px; }
.pp-article__tags{ display:flex; gap:8px; margin-top:var(--space-6); flex-wrap:wrap; }
.pp-article__comments{ padding-top:var(--space-6); padding-bottom:var(--space-7); }

/* ---- Static pages -------------------------------------------------------- */
.pp-page{ background:var(--surface-card); }
.pp-page__inner{ max-width:var(--container-text); margin:0 auto; padding:var(--space-7) var(--gutter) var(--space-8); }
.pp-page__title{ font:var(--role-h1); margin:0 0 var(--space-5); }
.pp-page__body{ font:var(--role-body); color:var(--text-body); }
.pp-page__body p{ margin:0 0 var(--space-4); }
/* Let full/wide-aligned blocks (patterns) escape the reading measure. */
.pp-page__body .alignwide{ width:min(var(--container), 92vw); margin-left:calc(50% - min(var(--container),92vw)/2); }
.pp-page__body .alignfull{ width:100vw; margin-left:calc(50% - 50vw); }

/* ---- Archive + pagination ------------------------------------------------ */
.pp-archive{ padding-top:var(--space-7); padding-bottom:var(--space-7); }
.pp-archive__head{ margin-bottom:var(--space-6); }
.pp-archive__title{ font:var(--role-h1); margin:6px 0 0; }
.pp-archive__desc{ font:var(--role-body); color:var(--text-muted); }
.pp-archive__empty{ font:var(--role-body); color:var(--text-muted); }
.pp-pagination{ margin-top:var(--space-7); }
.pp-pagination .page-numbers{ display:inline-flex; align-items:center; justify-content:center; min-width:40px; height:40px;
  padding:0 12px; margin:0 3px; border-radius:var(--radius-pill); border:var(--border-2) solid var(--border-hair);
  font:var(--role-label); color:var(--text-body); }
.pp-pagination .page-numbers:hover{ border-color:var(--brand); text-decoration:none; }
.pp-pagination .page-numbers.current{ background:var(--brand); border-color:var(--brand); color:#fff; }

/* ---- Recruitment landing (seasonal off/pre face) ------------------------- */
.pp-landing-hero{ background:linear-gradient(160deg, var(--pp-blue-500), var(--pp-blue-800)); color:#fff; }
.pp-landing-hero__grid{ display:grid; grid-template-columns:1.2fr 1fr; gap:var(--space-7); align-items:center;
  padding-top:var(--space-8); padding-bottom:var(--space-8); }
.pp-eyebrow--accent2{ color:var(--pp-orange-400); }
.pp-landing-hero__title{ font:var(--fw-bold) var(--text-6xl)/0.98 var(--font-display); color:#fff; letter-spacing:-.01em; margin:var(--space-4) 0; }
.pp-landing-hero__dek{ font:var(--fw-regular) var(--text-lg)/1.5 var(--font-sans); color:var(--pp-blue-100); max-width:46ch; margin:0 0 var(--space-5); }
.pp-landing-hero__cta{ display:flex; gap:var(--space-4); align-items:center; flex-wrap:wrap; }
.pp-landing-hero__ghost{ color:#fff; border-color:rgba(255,255,255,.4); }
.pp-landing-hero__ghost:hover{ background:rgba(255,255,255,.1); }
.pp-landing-hero__stats{ display:grid; grid-template-columns:1fr 1fr; gap:var(--space-4); }
.pp-landing-stat{ background:rgba(255,255,255,.08); border-radius:var(--radius-lg); padding:var(--space-5); }
.pp-landing-stat__n{ font:var(--fw-bold) var(--text-4xl) var(--font-display); color:#fff; line-height:1; }
.pp-landing-stat__l{ font:var(--role-eyebrow); color:var(--pp-blue-200); margin-top:6px; text-transform:uppercase; letter-spacing:var(--tracking-caps); }

.pp-landing-outlets{ padding-top:var(--space-8); padding-bottom:var(--space-8); }
.pp-landing-outlets__title{ font:var(--role-h2); text-align:center; margin:0 0 var(--space-2); }
.pp-landing-outlets__lead{ font:var(--role-body); text-align:center; color:var(--text-muted); margin:0 auto var(--space-6); max-width:52ch; }
.pp-landing-outlets__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:var(--space-5); }
.pp-landing-outlet__logo{ height:40px; display:flex; align-items:center; }
.pp-landing-outlet__logo img{ max-height:36px; max-width:78%; }
.pp-landing-outlet__desc{ font:var(--role-body); font-size:15px; margin:0; }

/* ---- Signup ("request contact") form ------------------------------------- */
.pp-signup{ max-width:480px; }
.pp-signup__row{ display:flex; flex-direction:column; gap:6px; margin:0 0 var(--space-4); }
.pp-signup__row label{ font:var(--role-label); }
.pp-signup input[type=text], .pp-signup input[type=email], .pp-signup input[type=tel]{
  font:var(--role-ui); padding:.7em .9em; border:var(--border-2) solid var(--border-soft);
  border-radius:var(--radius-md); background:var(--surface-card); color:var(--text-body); }
.pp-signup input:focus{ outline:0; border-color:var(--brand); box-shadow:0 0 0 4px var(--brand-soft); }
.pp-signup__hint{ font:var(--role-caption); color:var(--text-muted); margin:0 0 var(--space-4); }
.pp-signup__consent{ font:var(--role-caption); margin:0 0 var(--space-5); }
.pp-signup__ok{ background:var(--pp-live-bg); color:var(--pp-live-ink); border:1px solid var(--pp-live-border);
  border-radius:var(--radius-md); padding:var(--space-4); margin-bottom:var(--space-5); font:var(--role-label); }
.pp-signup__err{ background:var(--pp-onair-bg); color:var(--pp-onair); border:1px solid var(--pp-onair-border);
  border-radius:var(--radius-md); padding:var(--space-4); margin-bottom:var(--space-5); font:var(--role-label); }

@media (max-width: 960px){
  .pp-landing-hero__grid{ grid-template-columns:1fr; }
  .pp-landing-hero__title{ font-size:var(--text-5xl); }
  .pp-landing-outlets__grid{ grid-template-columns:1fr; }
}

/* ---- RewalStacja studio (radio archive) ---------------------------------- */
.pp-radio{ background:var(--surface-ink); color:#fff; min-height:70vh; }
.pp-radio__grid{ display:grid; grid-template-columns:1fr 1.1fr; gap:var(--space-8); align-items:start;
  padding-top:var(--space-8); padding-bottom:var(--space-8); }
.pp-radio__side{ position:sticky; top:110px; display:flex; flex-direction:column; gap:var(--space-5); }
.pp-radio__logo{ height:44px; align-self:flex-start; }
.pp-radio__tagline{ font:var(--fw-semibold) var(--text-xl) var(--font-display); color:#fff; max-width:24ch; margin:0; line-height:1.25; }
.pp-radio__heading{ display:flex; align-items:center; gap:10px; margin-bottom:var(--space-5); }
.pp-radio__title{ font:var(--fw-bold) var(--text-2xl) var(--font-display); color:#fff; margin:0; }
.pp-radio__subtitle{ font:var(--fw-bold) var(--text-xl) var(--font-display); color:#fff; margin:var(--space-7) 0 var(--space-4); }
.pp-radio__empty{ font:var(--role-body); color:var(--pp-sand-300); }
.pp-radio__shows{ display:flex; flex-direction:column; gap:8px; }
.pp-radio__show{ display:flex; gap:var(--space-4); align-items:center; padding:var(--space-3) var(--space-4);
  border-radius:var(--radius-md); background:rgba(255,255,255,.05); color:#fff; }
.pp-radio__show:hover{ background:rgba(255,255,255,.1); text-decoration:none; }
.pp-radio__showtime{ font-family:var(--font-mono); font-size:13px; color:var(--pp-blue-300); width:48px; }

.pp-ramowka{ display:flex; flex-direction:column; gap:10px; }
.pp-ramowka__item{ display:flex; align-items:center; gap:var(--space-4); padding:var(--space-4);
  border-radius:var(--radius-md); background:rgba(255,255,255,.05); border:var(--border-2) solid transparent; }
.pp-ramowka__item.is-now{ border-color:var(--pp-blue-400); background:rgba(26,166,222,.12); }
.pp-ramowka__item.is-live{ background:rgba(226,59,46,.14); border-color:var(--pp-onair); }
.pp-ramowka__t{ font-family:var(--font-mono); font-weight:700; font-size:15px; min-width:96px; color:#fff; }
.pp-ramowka__item.is-live .pp-ramowka__t{ color:var(--pp-onair); }
.pp-ramowka__nm{ flex:1; font:var(--fw-medium) var(--text-md) var(--font-sans); color:#fff; display:flex; flex-direction:column; gap:2px; }
.pp-ramowka__host{ font:var(--role-caption); color:var(--pp-sand-300); }

/* ---- Studio player ------------------------------------------------------- */
.pp-studio{ background:var(--surface-ink); color:#fff; border-radius:var(--radius-lg); padding:var(--space-5);
  display:flex; flex-direction:column; gap:var(--space-4); box-shadow:var(--shadow-md); border:var(--border-2) solid transparent; }
.pp-studio--live{ border-color:var(--pp-onair); }
.pp-studio__head{ display:flex; align-items:center; justify-content:space-between; }
.pp-studio__logo{ height:26px; }
.pp-studio__eyebrow{ color:var(--pp-blue-300); margin-bottom:6px; }
.pp-studio--live .pp-studio__eyebrow{ color:var(--pp-onair); }
.pp-studio__title{ font:var(--fw-bold) var(--text-xl) var(--font-display); }
.pp-studio__sub{ font:var(--role-caption); color:var(--pp-sand-300); }
.pp-studio__wave{ display:flex; align-items:flex-end; gap:3px; height:40px; }
.pp-studio__bar{ flex:1; border-radius:2px; background:var(--pp-blue-400); transition:opacity .3s; }
.pp-studio__bar.is-onair{ background:var(--pp-onair); }
.pp-studio[data-paused] .pp-studio__bar{ opacity:.3; }
.pp-studio__controls{ display:flex; align-items:center; gap:var(--space-4); }
.pp-studio__play{ width:48px; height:48px; border-radius:50%; border:0; cursor:pointer; flex:none;
  background:var(--accent); color:var(--pp-ink); display:flex; align-items:center; justify-content:center; }
.pp-studio__play:hover{ background:var(--accent-strong); }
.pp-studio__progress{ flex:1; height:4px; border-radius:2px; background:rgba(255,255,255,.18); }
.pp-studio__progress span{ display:block; width:42%; height:100%; border-radius:2px; background:var(--pp-blue-400); }
.pp-studio__freq{ font-family:var(--font-mono); font-size:12px; }
.pp-studio__actions{ display:flex; gap:var(--space-3); }
.pp-studio__btn{ flex:1; }
.pp-studio .pp-btn--secondary{ color:#fff; border-color:rgba(255,255,255,.35); }
.pp-studio .pp-btn--secondary:hover{ background:rgba(255,255,255,.08); }
.pp-studio .pp-btn--ink{ background:rgba(255,255,255,.1); }

/* ---- Single show --------------------------------------------------------- */
.pp-show__inner{ max-width:var(--container-text); margin:0 auto; padding:var(--space-7) var(--gutter) var(--space-8); }
.pp-show__back{ display:inline-flex; align-items:center; gap:6px; font:var(--role-label); color:var(--pp-sand-300); margin-bottom:var(--space-5); }
.pp-show__back:hover{ color:#fff; text-decoration:none; }
.pp-show__meta{ display:flex; align-items:center; gap:12px; margin-bottom:var(--space-3); }
.pp-show__time{ font-family:var(--font-mono); font-weight:700; color:var(--pp-blue-300); }
.pp-show__title{ font:var(--fw-bold) var(--text-3xl) var(--font-display); color:#fff; margin:0 0 var(--space-2); }
.pp-show__host{ font:var(--role-caption); color:var(--pp-sand-300); margin-bottom:var(--space-5); }
.pp-show__art{ margin:0 0 var(--space-5); border-radius:var(--radius-lg); overflow:hidden; }
.pp-show__art img{ width:100%; height:auto; display:block; }
.pp-show__body{ font:var(--role-body); color:var(--pp-sand-100); margin-bottom:var(--space-6); }
.pp-show__body a{ color:var(--pp-blue-300); }

/* ---- TeVaRewal gallery --------------------------------------------------- */
.pp-tv{ padding-top:var(--space-7); padding-bottom:var(--space-8); }
.pp-tv__brand{ display:flex; align-items:center; gap:16px; margin-bottom:var(--space-3); }
.pp-tv__logo{ height:40px; }
.pp-tv__tagline{ font:var(--fw-semibold) var(--text-xl) var(--font-display); color:var(--text-strong); max-width:32ch; margin:0 0 var(--space-5); line-height:1.25; }
.pp-tv__filters{ display:flex; gap:8px; flex-wrap:wrap; margin-bottom:var(--space-6); }
.pp-tv__empty{ font:var(--role-body); color:var(--text-muted); }
.pp-chip{ display:inline-flex; align-items:center; font:var(--fw-semibold) var(--text-sm) var(--font-sans);
  padding:.45em .9em; border-radius:var(--radius-pill); background:var(--surface-card);
  border:var(--border-2) solid var(--border-hair); color:var(--text-body); }
.pp-chip:hover{ border-color:var(--brand); color:var(--brand-ink); text-decoration:none; }
.pp-chip--on{ background:var(--brand); border-color:var(--brand); color:#fff; }
.pp-chip--on:hover{ color:#fff; }

.pp-tv__featured{ margin-bottom:var(--space-6); }
.pp-tv__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:var(--space-6) var(--space-5); }

/* ---- Video card ---------------------------------------------------------- */
.pp-video{ display:flex; flex-direction:column; gap:10px; color:inherit; }
.pp-video:hover{ text-decoration:none; }
.pp-video__thumb{ position:relative; border-radius:var(--radius-md); overflow:hidden; background:var(--pp-sand-200); aspect-ratio:16/9; }
.pp-video__thumb img{ width:100%; height:100%; object-fit:cover; display:block; }
.pp-video__placeholder{ position:absolute; inset:0; background:linear-gradient(160deg,var(--pp-blue-500),var(--pp-blue-900)); }
.pp-video__playbtn{ position:absolute; inset:0; margin:auto; width:52px; height:52px; border-radius:50%;
  background:rgba(32,32,32,.6); display:flex; align-items:center; justify-content:center; }
.pp-video--big .pp-video__playbtn{ width:72px; height:72px; }
.pp-video__tag{ position:absolute; top:10px; left:10px; font:var(--role-eyebrow); letter-spacing:.08em;
  background:var(--pp-ink); color:#fff; padding:4px 9px; border-radius:var(--radius-pill); }
.pp-video__dur{ position:absolute; bottom:9px; right:9px; font:var(--fw-bold) 11px var(--font-mono);
  background:rgba(32,32,32,.78); color:#fff; padding:2px 7px; border-radius:4px; }
.pp-video__title{ font:var(--fw-bold) var(--text-base)/1.25 var(--font-sans); margin:0; color:var(--text-strong); }
.pp-video--big .pp-video__title{ font-size:var(--text-lg); }
.pp-video__sub{ font:var(--role-caption); color:var(--text-muted); margin-top:4px; }

/* ---- Single video page --------------------------------------------------- */
.pp-videopage{ padding-top:var(--space-6); padding-bottom:var(--space-8); max-width:980px; }
.pp-videopage__back{ display:inline-flex; align-items:center; gap:6px; font:var(--role-label); color:var(--text-muted); margin-bottom:var(--space-4); }
.pp-videopage__back:hover{ color:var(--text-strong); text-decoration:none; }
.pp-videopage__embed{ position:relative; aspect-ratio:16/9; border-radius:var(--radius-lg); overflow:hidden; background:#000; }
.pp-videopage__embed iframe, .pp-videopage__player img{ position:absolute; inset:0; width:100%; height:100%; border:0; display:block; }
.pp-videopage__player{ margin-bottom:var(--space-5); }
.pp-videopage__title{ font:var(--fw-black) var(--text-3xl)/1.1 var(--font-sans); margin:6px 0 var(--space-4); letter-spacing:-.01em; }
.pp-videopage__body{ font:var(--role-body); color:var(--text-body); }

/* ---- Live takeover hero -------------------------------------------------- */
.pp-livehero{ background:var(--surface-ink); color:#fff; }
.pp-livehero__grid{ display:grid; grid-template-columns:1.7fr 1fr; gap:var(--space-6); align-items:stretch;
  padding-top:var(--space-7); padding-bottom:var(--space-7); }
.pp-livehero__player{ position:relative; border-radius:var(--radius-lg); overflow:hidden; background:#000; min-height:320px; }
.pp-livehero__embed{ position:relative; aspect-ratio:16/9; }
.pp-livehero__embed iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }
.pp-livehero__placeholder{ display:flex; align-items:center; justify-content:center; height:100%; min-height:320px;
  background:linear-gradient(160deg,var(--pp-blue-700),var(--pp-ink)); }
.pp-livehero__playbtn{ width:76px; height:76px; border-radius:50%; background:rgba(226,59,46,.92);
  display:flex; align-items:center; justify-content:center; }
.pp-livehero__badge{ position:absolute; top:14px; left:14px; }
.pp-livehero__side{ display:flex; flex-direction:column; gap:var(--space-4); justify-content:center; }
.pp-livehero__title{ font:var(--fw-bold) var(--text-2xl) var(--font-display); color:#fff; margin:0; }
.pp-livehero__lead{ font:var(--role-body); color:var(--pp-sand-200); margin:0; }

/* ---- Home TeVaRewal section ---------------------------------------------- */
.pp-hometv{ padding-top:var(--space-7); padding-bottom:var(--space-7); }
.pp-hometv__head{ display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; margin-bottom:var(--space-5); }
.pp-hometv__brand{ display:flex; align-items:center; gap:14px; }
.pp-hometv__logo{ height:34px; }
.pp-hometv__grid{ display:grid; grid-template-columns:1.5fr 1fr; gap:var(--space-6); align-items:start; }
.pp-hometv__list{ display:flex; flex-direction:column; gap:var(--space-5); }
.pp-hometv__item{ display:grid; grid-template-columns:140px 1fr; gap:14px; align-items:start; color:inherit; }
.pp-hometv__item:hover{ text-decoration:none; }
.pp-hometv__thumb{ position:relative; border-radius:var(--radius-sm); overflow:hidden; aspect-ratio:16/9; background:var(--pp-sand-200); }
.pp-hometv__thumb img{ width:100%; height:100%; object-fit:cover; display:block; }
.pp-hometv__dur{ position:absolute; bottom:5px; right:5px; font:var(--fw-bold) 10px var(--font-mono);
  background:rgba(32,32,32,.78); color:#fff; padding:1px 5px; border-radius:3px; }
.pp-hometv__itemtitle{ font:var(--fw-semibold) var(--text-sm)/1.25 var(--font-sans); color:var(--text-strong); }
.pp-hometv__item:hover .pp-hometv__itemtitle{ color:var(--brand-ink); }

@media (max-width: 960px){
  .pp-radio__grid{ grid-template-columns:1fr; }
  .pp-radio__side{ position:static; }
  .pp-tv__grid{ grid-template-columns:repeat(2,1fr); }
  .pp-livehero__grid, .pp-hometv__grid{ grid-template-columns:1fr; }
}
@media (max-width: 720px){
  .pp-tv__grid{ grid-template-columns:1fr; }
}

/* ---- Persistent radio player bar ----------------------------------------- */
.pp-playerbar{ position:fixed; left:0; right:0; bottom:0; z-index:var(--z-modal);
  display:flex; align-items:center; gap:var(--space-4);
  padding:10px var(--gutter); background:var(--surface-ink); color:#fff;
  box-shadow:0 -6px 24px rgba(13,63,90,.28); }
.pp-playerbar[hidden]{ display:none; }
/* One-shot entrance only (added by JS on first reveal); NOT on the base class,
   or Turbo moving the permanent node would replay it on every navigation. */
.pp-playerbar.pp-enter{ animation:pp-bar-up var(--dur-base) var(--ease-out); }
@keyframes pp-bar-up{ from{ transform:translateY(100%); } to{ transform:translateY(0); } }
body.pp-bar-on{ padding-bottom:68px; }

.pp-playerbar__toggle{ width:44px; height:44px; flex:none; border:0; border-radius:50%; cursor:pointer;
  background:var(--accent); color:var(--pp-ink); display:flex; align-items:center; justify-content:center; }
.pp-playerbar__toggle:hover{ background:var(--accent-strong); }
.pp-playerbar__eq{ color:var(--pp-blue-300); width:16px; height:16px; font-size:16px; flex:none; }
.pp-playerbar__meta{ display:flex; flex-direction:column; gap:2px; min-width:0; flex:1; }
.pp-playerbar__eyebrow{ font:var(--fw-medium) 11px var(--font-mono); color:var(--pp-sand-300);
  letter-spacing:.04em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pp-playerbar__title{ font:var(--fw-bold) var(--text-base) var(--font-display); color:#fff;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pp-playerbar__link{ font:var(--role-label); color:var(--pp-blue-300); flex:none; }
.pp-playerbar__link:hover{ color:#fff; }
.pp-playerbar__close{ width:34px; height:34px; flex:none; border:0; background:rgba(255,255,255,.08);
  border-radius:50%; color:var(--pp-sand-200); cursor:pointer; display:flex; align-items:center; justify-content:center; }
.pp-playerbar__close:hover{ background:rgba(255,255,255,.16); color:#fff; }
/* live signal tints the bar's calm cue red */
body.pp-is-live .pp-playerbar__eq{ color:var(--pp-onair); }

@media (max-width: 600px){
  .pp-playerbar__link{ display:none; }
  body.pp-bar-on{ padding-bottom:64px; }
}

/* ---- Block style variations (Gutenberg) ---------------------------------- */
.wp-block-button.is-style-pp-sticker .wp-block-button__link{
  border:var(--border-2) solid var(--pp-ink); box-shadow:var(--shadow-sticker); border-radius:var(--radius-md); }
.wp-block-button.is-style-pp-accent .wp-block-button__link{ background:var(--accent); color:var(--pp-ink); }
.wp-block-group.is-style-pp-dark{ background:var(--surface-ink); color:var(--text-on-dark); }
.wp-block-group.is-style-pp-dark :is(h1,h2,h3,h4){ color:#fff; }
.wp-block-separator.is-style-pp-news-rule{ border-top:var(--border-2) solid var(--rule-news); opacity:1; max-width:100%; }

/* Card / rail / sunk group surfaces */
.wp-block-group.is-style-pp-card{ background:var(--surface-card); border-radius:var(--radius-lg); box-shadow:var(--shadow-sm); }
.wp-block-group.is-style-pp-rail-brand{ background:var(--surface-card); border-radius:var(--radius-lg); box-shadow:var(--shadow-sm); border-top:var(--space-1) solid var(--brand); }
.wp-block-group.is-style-pp-sunk{ background:var(--surface-sunk); }
/* Eyebrow label + display heading */
.is-style-pp-eyebrow{ font-family:var(--font-mono); font-weight:700; font-size:var(--text-2xs);
  letter-spacing:var(--tracking-caps); text-transform:uppercase; color:var(--text-muted); margin-bottom:var(--space-3); }
.is-style-pp-display{ font-family:var(--font-display); font-weight:700; }

/* Section backgrounds as group block styles. Light text on nested headings/
   eyebrows is forced so editors don't have to recolour each child. Generous
   vertical padding makes them read as full-width bands by default. */
.wp-block-group.is-style-pp-sea{ background:linear-gradient(160deg, var(--pp-blue-500), var(--pp-blue-800)); }
.wp-block-group.is-style-pp-brand{ background:var(--brand); }
.wp-block-group.is-style-pp-sea, .wp-block-group.is-style-pp-brand, .wp-block-group.is-style-pp-dark{ color:#fff; }
.wp-block-group:is(.is-style-pp-sea,.is-style-pp-brand,.is-style-pp-dark,.is-style-pp-sunk):where(.alignfull,.alignwide){ padding-top:var(--space-8); padding-bottom:var(--space-8); }
.wp-block-group:is(.is-style-pp-sea,.is-style-pp-brand,.is-style-pp-dark) :is(h1,h2,h3,h4){ color:#fff; }
.wp-block-group.is-style-pp-sea .is-style-pp-eyebrow{ color:var(--pp-orange-400); }
.wp-block-group.is-style-pp-brand .is-style-pp-eyebrow{ color:var(--pp-blue-100); }
.wp-block-group.is-style-pp-dark .is-style-pp-eyebrow{ color:var(--pp-sand-400); }
.pp-statnum{ font:var(--fw-bold) var(--text-4xl) var(--font-display); line-height:1; }
.pp-outlet-logo{ margin-top:0; margin-bottom:var(--space-3); }
.pp-outlet-logo img{ max-height:38px; width:auto; }

/* ---- Responsive ---------------------------------------------------------- */
@media (max-width: 960px){
  .pp-hero__grid{ grid-template-columns:1fr; }
  .pp-latest__grid{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width: 720px){
  .pp-bar__nav{ display:none; }
  .pp-bar__burger{ display:inline-flex; }
  .pp-bar__inner{ gap:var(--space-3); }
  .pp-listen-chip__freq{ display:none; }
  .pp-latest__grid{ grid-template-columns:1fr; }
  .pp-article__title{ font-size:var(--text-3xl); }
  .pp-footer__inner{ flex-direction:column; }
  .pp-cta-band__inner{ flex-direction:column; align-items:flex-start; }
}

/* Mobile nav drawer (progressive enhancement; app.js toggles [data-pp-burger]). */
.pp-bar__nav.is-open{ display:flex; position:absolute; left:0; right:0; top:100%;
  background:var(--surface-card); border-bottom:var(--border-2) solid var(--border-hair);
  flex-direction:column; align-items:stretch; padding:var(--space-3) var(--gutter); }
.pp-bar__nav.is-open .pp-tabs{ flex-direction:column; gap:var(--space-2); }
