/* =====================================================================
   MVUKE TV, programs.php
   Streaming-catalogue page: spotlight hero, filterable poster grid,
   details sheet. Scrolls normally. Tokens/.btn from navigation.css.
===================================================================== */
body.programs-page{background:#07040d;color:#fff;}
.programs-page{--pad:clamp(20px,5vw,72px);}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}
.btn-glass{background:rgba(255,255,255,.14);color:#fff;border:1px solid rgba(255,255,255,.18);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);}
.btn-glass:hover{background:rgba(255,255,255,.24);transform:translateY(-2px);}

/* ============================ SPOTLIGHT =========================== */
.spot{position:relative;overflow:hidden;min-height:clamp(520px,84svh,760px);display:flex;align-items:flex-end;padding:calc(var(--mv-nav-h) + 40px) var(--pad) clamp(44px,8vh,84px);background:#05040a;}
.spot-bg{position:absolute;inset:0;}
.spot-bg img{width:100%;height:100%;object-fit:cover;object-position:var(--fp,62% 30%);transform:scale(1.06);animation:mvSpotSettle 2.4s var(--mv-ease) forwards;}
@keyframes mvSpotSettle{to{transform:scale(1);}}
.spot-shade{position:absolute;inset:0;background:
  linear-gradient(90deg,rgba(7,4,13,.94) 0%,rgba(7,4,13,.7) 34%,rgba(7,4,13,.1) 68%,rgba(7,4,13,.35) 100%),
  linear-gradient(0deg,#07040d 0%,rgba(7,4,13,0) 38%),
  linear-gradient(180deg,rgba(7,4,13,.7) 0%,rgba(7,4,13,0) 20%);}
.spot-copy{position:relative;z-index:1;max-width:640px;}
.spot-copy h1{font-family:'Montserrat',sans-serif;font-weight:900;font-size:clamp(2.4rem,6vw,5.4rem);line-height:.96;letter-spacing:-.05em;text-wrap:balance;text-shadow:0 6px 40px rgba(0,0,0,.5);padding-bottom:.06em;}
.spot-when{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:18px;font-weight:800;font-size:.95rem;color:var(--mv-ember-400);}
.spot-blurb{margin-top:14px;max-width:50ch;font-size:1rem;line-height:1.6;color:rgba(248,245,252,.8);}
.spot-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px;}
.spot-actions .btn{padding:14px 28px;font-size:.9rem;}

/* One orchestrated moment: the spotlight copy rises in once on load. */
.spot-copy>*{opacity:0;animation:mvSpotIn .8s var(--mv-ease) forwards;}
.spot-copy>*:nth-child(1){animation-delay:.1s;}
.spot-copy>*:nth-child(2){animation-delay:.22s;}
.spot-copy>*:nth-child(3){animation-delay:.32s;}
.spot-copy>*:nth-child(4){animation-delay:.42s;}
@keyframes mvSpotIn{from{opacity:0;transform:translateY(22px);}to{opacity:1;transform:none;}}

/* ============================ WEEKLY SCHEDULE ===================== */
.week{max-width:1480px;margin:0 auto;padding:clamp(48px,8vh,88px) var(--pad) 0;}
.week-head h2{font-family:'Montserrat',sans-serif;font-weight:900;font-size:clamp(1.8rem,3.6vw,2.8rem);letter-spacing:-.045em;line-height:1.02;}
.week-head p{margin-top:8px;font-size:.95rem;color:rgba(248,245,252,.65);}
.week-tabs{display:flex;gap:8px;margin:24px 0 8px;overflow-x:auto;scrollbar-width:none;}
.week-tabs::-webkit-scrollbar{display:none;}
.week-tab{position:relative;flex:1 1 0;min-width:64px;padding:14px 10px;border-radius:12px;background:rgba(255,255,255,.07);font-weight:800;font-size:.95rem;color:rgba(248,245,252,.8);transition:background .25s var(--mv-ease),color .25s var(--mv-ease);}
.week-tab:hover{background:rgba(255,255,255,.15);color:#fff;}
.week-tab.is-active{background:var(--mv-ember-500);color:var(--mv-ink-950);}
.week-tab.is-today::after{content:'';position:absolute;top:8px;right:9px;width:6px;height:6px;border-radius:50%;background:currentColor;}
.week-panel[hidden]{display:none;}
.week-list{display:flex;flex-direction:column;margin:0;padding:0;list-style:none;}
.week-row{position:relative;display:grid;grid-template-columns:minmax(170px,.55fr) 1.6fr .8fr 84px;gap:6px 24px;align-items:center;padding:18px 14px;border-bottom:1px solid rgba(255,255,255,.12);transition:background .3s var(--mv-ease);}
.week-row:first-child{border-top:1px solid rgba(255,255,255,.12);}
.week-time{font-size:.9rem;font-weight:700;color:rgba(248,245,252,.6);font-variant-numeric:tabular-nums;}
.week-title{font-family:'Montserrat',sans-serif;font-weight:800;font-size:1.15rem;letter-spacing:-.03em;line-height:1.15;display:flex;align-items:center;flex-wrap:wrap;gap:10px;}
.week-tag{font-family:'League Spartan',sans-serif;font-style:normal;font-size:.72rem;font-weight:800;letter-spacing:0;padding:3px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.3);color:rgba(248,245,252,.8);}
.week-genre{font-size:.88rem;font-weight:600;color:var(--mv-violet-300);}
.week-now{visibility:hidden;justify-self:end;padding:4px 12px;border-radius:999px;background:var(--mv-ember-500);color:var(--mv-ink-950);font-size:.78rem;font-weight:900;}
.week-row.is-now{background:linear-gradient(90deg,rgba(124,63,201,.35),rgba(124,63,201,0));}
.week-row.is-now::before{content:'';position:absolute;left:0;top:10px;bottom:10px;width:3px;border-radius:2px;background:var(--mv-ember-400);}
.week-row.is-now .week-now{visibility:visible;}
.week-row.is-now .week-time{color:var(--mv-ember-400);}
@media(max-width:760px){
  /* day tabs: all seven fit on the screen, no sideways scrolling */
  .week-tabs{gap:5px;}
  .week-tab{min-width:0;padding:12px 2px;font-size:.8rem;}
  .week-tab.is-today::after{top:6px;right:6px;}

  /* schedule: two shows per row, as compact cards */
  .week-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:6px;}
  .week-row{display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:12px 12px 13px;border:1px solid rgba(255,255,255,.1);border-radius:12px;background:rgba(255,255,255,.04);}
  .week-row:first-child{border-top:1px solid rgba(255,255,255,.1);}
  .week-time{font-size:.74rem;line-height:1.3;}
  .week-title{font-size:.95rem;gap:6px;}
  .week-tag{font-size:.64rem;padding:2px 8px;}
  .week-genre{font-size:.78rem;}
  .week-now{display:none;margin-top:6px;padding:3px 10px;font-size:.7rem;}
  .week-row.is-now{border-color:var(--mv-ember-400);background:linear-gradient(160deg,rgba(124,63,201,.4),rgba(124,63,201,.08));}
  .week-row.is-now::before{display:none;}
  .week-row.is-now .week-now{display:inline-block;}
}

/* ============================ CATALOGUE =========================== */
.catalog{padding:48px var(--pad) 0;max-width:1480px;margin:0 auto;}
.catalog-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:26px;}
.catalog-head h2{font-family:'Montserrat',sans-serif;font-weight:900;font-size:clamp(1.7rem,3.4vw,2.4rem);letter-spacing:-.04em;}
.catalog-head p{margin-top:4px;font-size:.9rem;color:rgba(248,245,252,.6);}

.catalog-search{position:relative;display:block;width:min(100%,320px);}
.catalog-search svg{position:absolute;left:16px;top:50%;width:18px;height:18px;transform:translateY(-50%);color:rgba(248,245,252,.6);pointer-events:none;}
.catalog-search input{width:100%;height:46px;padding:0 18px 0 44px;border-radius:999px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.08);color:#fff;font:inherit;font-size:.92rem;font-weight:600;transition:border-color .25s var(--mv-ease),background .25s var(--mv-ease);}
.catalog-search input::placeholder{color:rgba(248,245,252,.5);}
.catalog-search input:focus{outline:none;border-color:var(--mv-ember-400);background:rgba(255,255,255,.12);}

.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:20px;}
.pcard{position:relative;display:block;width:100%;aspect-ratio:4/3;border-radius:14px;overflow:hidden;background:#151120;text-align:left;color:#fff;isolation:isolate;box-shadow:0 18px 36px -20px rgba(0,0,0,.9);transition:transform .4s var(--mv-ease),box-shadow .4s var(--mv-ease);}
.pcard[hidden]{display:none;}
.pcard>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:var(--fpc,60% 30%);z-index:-2;transition:transform .7s var(--mv-ease);}
.pcard-shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,rgba(5,3,10,.96) 0%,rgba(5,3,10,.72) 36%,rgba(5,3,10,0) 78%);}
.pcard-cat{position:absolute;top:14px;left:14px;padding:5px 12px;border-radius:999px;background:rgba(7,4,13,.55);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.16);font-size:.72rem;font-weight:800;}
.pcard-body{position:absolute;left:18px;right:18px;bottom:18px;display:flex;flex-direction:column;gap:4px;}
.pcard-title{font-family:'Montserrat',sans-serif;font-weight:900;font-size:1.25rem;line-height:1.1;letter-spacing:-.035em;}
.pcard-when{font-size:.82rem;font-weight:700;color:var(--mv-ember-400);}
.pcard-more{display:grid;grid-template-rows:0fr;transition:grid-template-rows .4s var(--mv-ease);}
.pcard-more>span{overflow:hidden;font-size:.84rem;line-height:1.5;color:rgba(248,245,252,.8);}

@media(hover:hover){
  .pcard:hover{transform:translateY(-6px);box-shadow:0 28px 50px -20px rgba(0,0,0,.95),0 0 0 2px var(--mv-ember-400);}
  .pcard:hover>img{transform:scale(1.07);}
  .pcard:hover .pcard-more{grid-template-rows:1fr;}
  .pcard:hover .pcard-more>span{padding-top:8px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;}
}
.pcard:focus-visible{outline:2px solid var(--mv-ember-400);outline-offset:3px;}

.grid-empty{padding:60px 0;text-align:center;color:rgba(248,245,252,.7);}
.grid-empty[hidden]{display:none;}
.grid-empty p{margin-bottom:18px;font-size:1rem;font-weight:600;}

/* ============================ WHY PEOPLE TUNE IN ================== */
.why{position:relative;overflow:hidden;margin-top:clamp(56px,9vh,96px);padding:clamp(72px,14vh,150px) var(--pad) clamp(40px,7vh,72px);min-height:clamp(480px,70svh,680px);display:flex;align-items:flex-end;background:#05040a;}
.why-bg{position:absolute;inset:0;}
.why-bg img{width:100%;height:100%;object-fit:cover;object-position:center 30%;}
.why-shade{position:absolute;inset:0;background:linear-gradient(0deg,#07040d 0%,rgba(7,4,13,.7) 45%,rgba(7,4,13,.35) 100%),linear-gradient(180deg,#07040d 0%,rgba(7,4,13,0) 30%);}
.why-inner{position:relative;z-index:1;width:100%;max-width:1480px;margin:0 auto;}
.why-inner>h2{font-family:'Montserrat',sans-serif;font-weight:900;font-size:clamp(2.2rem,6vw,5rem);line-height:.96;letter-spacing:-.05em;max-width:12ch;margin-bottom:clamp(28px,5vh,56px);text-shadow:0 6px 40px rgba(0,0,0,.5);}
.why-points{display:grid;grid-template-columns:repeat(3,1fr);gap:0 clamp(24px,4vw,56px);}
.why-points li{padding-top:20px;border-top:1px solid rgba(255,255,255,.28);}
.why-points h3{font-family:'Montserrat',sans-serif;font-weight:900;font-size:1.25rem;letter-spacing:-.035em;line-height:1.1;}
.why-points p{margin-top:8px;max-width:34ch;font-size:.95rem;line-height:1.6;color:rgba(248,245,252,.78);}
@media(max-width:900px){.why-points{grid-template-columns:1fr;gap:22px;}}

/* ============================ CLOSING BAND ======================== */
.tune{padding:72px var(--pad) 80px;max-width:1480px;margin:0 auto;}
.tune-panel{display:flex;align-items:center;justify-content:space-between;gap:32px;flex-wrap:wrap;padding:clamp(28px,5vw,56px);border-radius:var(--mv-radius-lg);background:radial-gradient(120% 160% at 0% 0%,var(--mv-violet-600),#12091f 70%);border:1px solid rgba(255,255,255,.1);}
.tune-panel h2{font-family:'Montserrat',sans-serif;font-weight:900;font-size:clamp(1.6rem,3.2vw,2.3rem);letter-spacing:-.04em;line-height:1.05;}
.tune-panel p{margin-top:12px;max-width:50ch;font-size:.95rem;line-height:1.6;color:rgba(248,245,252,.75);}
.tune-actions{display:flex;flex-wrap:wrap;gap:12px;}

/* ============================ DETAILS SHEET ======================= */
.pmodal{padding:0;border:0;background:transparent;color:#fff;width:calc(100% - 32px);max-width:900px;max-height:calc(100svh - 32px);overflow:visible;}
.pmodal::backdrop{background:rgba(5,3,10,.78);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);}
.pmodal[open] .pmodal-panel{animation:mvSheetIn .4s var(--mv-ease);}
@keyframes mvSheetIn{from{opacity:0;transform:translateY(24px) scale(.98);}to{opacity:1;transform:none;}}
.pmodal-panel{position:relative;display:grid;grid-template-columns:1.05fr 1fr;border-radius:var(--mv-radius-md);overflow:hidden;background:#12091f;border:1px solid rgba(255,255,255,.12);box-shadow:0 40px 90px -20px rgba(0,0,0,.8);}
.pmodal-media{position:relative;min-height:440px;background:#151120;}
.pmodal-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:var(--fpc,60% 30%);}
.pmodal-body{padding:40px 36px 36px;display:flex;flex-direction:column;align-items:flex-start;}
.pmodal-host{margin-top:10px;font-size:1rem;font-weight:700;color:var(--mv-violet-300);}
.pmodal-host[hidden]{display:none;}
.pmodal-cat{display:inline-block;padding:5px 12px;border-radius:999px;background:rgba(255,255,255,.1);font-size:.74rem;font-weight:800;margin-bottom:14px;}
.pmodal-body h2{font-family:'Montserrat',sans-serif;font-weight:900;font-size:clamp(1.7rem,3vw,2.3rem);line-height:1.02;letter-spacing:-.045em;}
.pmodal-facts{display:flex;flex-wrap:wrap;gap:14px 28px;margin:22px 0 0;}
.pmodal-facts dt{font-size:.74rem;font-weight:700;color:rgba(248,245,252,.55);}
.pmodal-facts dd{margin:2px 0 0;font-size:1rem;font-weight:800;color:var(--mv-ember-400);}
.pmodal-blurb{margin:20px 0 26px;font-size:.95rem;line-height:1.65;color:rgba(248,245,252,.8);}
.pmodal-body .btn{margin-top:auto;}
.pmodal-close{position:absolute;top:14px;right:14px;z-index:2;display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:rgba(7,4,13,.6);border:1px solid rgba(255,255,255,.25);color:#fff;transition:background .25s var(--mv-ease),transform .35s var(--mv-ease);}
.pmodal-close svg{width:19px;height:19px;}
.pmodal-close:hover{background:rgba(255,255,255,.18);transform:rotate(90deg);}

/* ============================ RESPONSIVE ========================== */
@media(max-width:900px){
  .grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px;}
  .pcard-title{font-size:1.05rem;}
}
@media(max-width:760px){
  .spot{min-height:clamp(500px,80svh,680px);padding-bottom:26px;}
  .week{padding-top:26px;}
  .spot-shade{background:
    linear-gradient(0deg,#07040d 0%,rgba(7,4,13,.92) 36%,rgba(7,4,13,.15) 72%,rgba(7,4,13,.45) 100%),
    linear-gradient(180deg,rgba(7,4,13,.7) 0%,rgba(7,4,13,0) 20%);}
  /* Phone: picture as a banner that fades into the page, subject kept in frame. */
  .spot-bg{bottom:auto;height:clamp(320px,58svh,560px);
    -webkit-mask-image:linear-gradient(180deg,#000 58%,transparent 100%);
            mask-image:linear-gradient(180deg,#000 58%,transparent 100%);}
  .spot-bg img{object-position:var(--fpt,70% 30%);}
  .spot-blurb{font-size:.92rem;}
  .spot-actions .btn{padding:12px 22px;font-size:.84rem;}
  .catalog{padding-top:36px;}
  .catalog-search{width:100%;}
  .tune{padding:48px var(--pad) 56px;}
  .tune-actions .btn{flex:1 1 auto;}

  /* details sheet becomes a bottom sheet */
  .pmodal{width:100%;max-width:none;margin:auto 0 0;max-height:92svh;}
  .pmodal-panel{grid-template-columns:1fr;border-radius:var(--mv-radius-md) var(--mv-radius-md) 0 0;max-height:92svh;overflow-y:auto;}
  .pmodal-media{aspect-ratio:16/10;min-height:0;}
  .pmodal-body{padding:26px 22px 28px;}
  .pmodal-body .btn{width:100%;}
}
@media(max-width:420px){
  .grid{grid-template-columns:repeat(2,1fr);gap:12px;}
  .pcard-body{left:12px;right:12px;bottom:12px;}
  .pcard-title{font-size:.95rem;}
  .pcard-when{font-size:.74rem;}
  .pcard-cat{top:10px;left:10px;font-size:.66rem;padding:4px 9px;}
}

@media(prefers-reduced-motion:reduce){
  .spot-bg img{animation:none;transform:none;}
  .spot-copy>*{animation:none;opacity:1;}
  .pcard,.pcard>img,.pcard-more{transition:none;}
  .pmodal[open] .pmodal-panel{animation:none;}
}
