/* ============================================================================
   PREVIOUSLY · FREE — house visual system (Free Build #6, 2026-10-17)
   Page-scoped for /free/, /free/browse/, /free/series/, /free/player/.
   Raiders black / silver / white + signal red #E10600. Marathon 400 for
   display + labels. No serif, no pills, no carousel arrows, no outlined
   trays — modules float on black with gradient blends + soft shadows.
   Loaded LAST on each Free page; touches NO shared file.
   ============================================================================ */
@font-face {
  font-family: "Marathon";
  src: url("/css/fonts/marathon-long-run-display-latin.woff2") format("woff2");
  font-weight: 400;
  font-display: swap;
}
:root {
  color-scheme: dark;
  --desert-bg: #000000;
  --desert-card: #101010;
  --desert-pressed: #1B1B1B;
  --desert-ink: #FFFFFF;
  --desert-ink-rgb: 255, 255, 255;
  --desert-card-rgb: 16, 16, 16;
  --desert-accent: #E10600;
  --desert-shadow-rgb: 0, 0, 0;
  --pv-noir: #000000;
  --pv-noir-2: #101010;
  --pv-noir-3: #1B1B1B;
  --pv-ivory: #FFFFFF;
  --pv-ivory-dim: #A5ACAF;
  --pv-ivory-faint: #A5ACAF;
  --pv-rule: #2C2C2C;
  --pv-page: #000000;
  --pv-serif: "Marathon", "Arial Narrow", sans-serif;
  --pv-red: #E10600;
  --brand-red: #E10600;
  --brand-red-rgb: 225, 6, 0;
}
html { background: #000; }
body { background: #000 !important; color: #fff; }
/* token pins ALSO on body: legacy sheets define the cream tokens at body
   level, which outranks a :root pin for every descendant consumer */
body {
  --desert-bg: #000000; --desert-card: #101010; --desert-pressed: #1B1B1B;
  --desert-ink: #FFFFFF; --desert-accent: #E10600;
  --pv-noir: #000000; --pv-noir-2: #101010; --pv-noir-3: #1B1B1B;
  --pv-ivory: #FFFFFF; --pv-ivory-dim: #A5ACAF; --pv-ivory-faint: #A5ACAF;
  --pv-rule: #2C2C2C; --pv-page: #000000;
}
::selection { background: #E10600; color: #fff; }

/* ---------- type: Marathon display, no serif anywhere on Free ---------- */
.pv-block__head h2, .pv-modal__who h2, .pv-empty__t, .pv-morelikethis__t,
.pv-stage__title, .pv-pagehead h1, .pv-fcard__t {
  font-family: "Marathon", "Arial Narrow", sans-serif !important;
  font-weight: 400 !important;
  letter-spacing: .02em;
}
.pv-kicker { color: #E10600 !important; font-family: "Marathon", sans-serif; letter-spacing: .22em; }
.pv-block__head h2, .pv-modal__who h2, .pv-empty__t, .pv-morelikethis__t,
.pv-fcard__t, .pv-ep__t { color: #fff !important; }
.browse-back { color: #A5ACAF !important; }

/* ---------- availability labels: one designed element, every surface --- */
.pv-avail {
  display: inline-block;
  font-family: "Marathon", sans-serif;
  font-size: 10.5px;
  letter-spacing: .12em;
  line-height: 1.45;
  text-transform: uppercase;
  padding: 4px 8px;
  margin-top: 7px;
  border: 1px solid #A5ACAF;
  color: #A5ACAF;
  max-width: 100%;
}
.pv-card .pv-avail, .pv-tile .pv-avail { font-size: 9.5px; letter-spacing: .05em; }
.pv-avail--pd { border-color: #E10600; color: #E10600; }
.pv-avail--ads { border-color: #A5ACAF; color: #fff; }
.pv-avail--cc { border-color: #A5ACAF; color: #A5ACAF; }
.pv-avail--chan { border-color: #A5ACAF; color: #fff; }
.pv-avail--fan { border-color: #A5ACAF; color: #A5ACAF; border-style: dashed; }
.pv-avail--na { border-color: #3a3a3a; color: #777; }
.pv-card__tag { /* legacy tag (series server cards) reads as the same element */
  font-family: "Marathon", sans-serif; letter-spacing: .18em; text-transform: uppercase;
  border: 1px solid #A5ACAF; color: #fff; background: transparent; border-radius: 0;
}

/* ---------- featured film stage ---------- */
.pv-stage {
  position: relative;
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  min-height: 500px;
  overflow: hidden;
  background: #000;
}
.pv-stage__txt {
  padding: 56px 28px 48px 40px;
  display: flex; flex-direction: column; justify-content: center; gap: 16px;
  position: relative; z-index: 2;
}
.pv-stage__eyebrow { color: #E10600; font-family: "Marathon", sans-serif; font-size: 13px; letter-spacing: .3em; text-transform: uppercase; }
.pv-stage__title { font-size: clamp(44px, 6.2vw, 84px); line-height: .96; text-transform: uppercase; color: #fff; }
.pv-stage__meta { color: #A5ACAF; font-size: 15px; letter-spacing: .05em; }
.pv-stage__why { font-size: 15.5px; line-height: 1.55; max-width: 52ch; color: #EDEDED; }
.pv-stage__cta { display: flex; gap: 14px; align-items: center; margin-top: 4px; flex-wrap: wrap; }
.pv-watchbtn {
  background: #E10600; color: #fff; border: 0; text-decoration: none;
  padding: 15px 30px; font-family: "Marathon", sans-serif; font-size: 15px;
  letter-spacing: .14em; text-transform: uppercase; display: inline-block;
}
.pv-watchbtn:hover { background: #B00500; }
.pv-stage__ghost {
  color: #fff; text-decoration: none; border-bottom: 2px solid #2C2C2C;
  padding: 13px 2px; font-size: 13px; letter-spacing: .1em; text-transform: uppercase;
}
.pv-stage__art { position: relative; overflow: hidden; min-height: 320px; }
.pv-stage__art img { width: 100%; height: 100%; object-fit: cover; object-position: center 22%; display: block; }
.pv-stage__art::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(90deg, #000 0%, rgba(0,0,0,.28) 34%, rgba(0,0,0,0) 62%),
              linear-gradient(0deg, #000 0%, rgba(0,0,0,0) 32%),
              linear-gradient(180deg, #000 0%, rgba(0,0,0,0) 22%);
}
@media (max-width: 760px) {
  .pv-stage { grid-template-columns: 1fr; min-height: 0; }
  .pv-stage__art { order: -1; height: 320px; min-height: 0; }
  .pv-stage__txt { padding: 24px 18px 30px; }
  .pv-stage__title { font-size: 46px; }
}

/* ---------- count bar + meaning-of-free legend ---------- */
.pv-countbar {
  display: flex; flex-wrap: wrap; gap: 8px 30px; align-items: center;
  padding: 16px 40px; background: #101010;
  box-shadow: 0 18px 40px rgba(0,0,0,.45);
}
.pv-countbar .big { font-size: 17px; color: #fff; }
.pv-countbar .big b { color: #E10600; font-weight: 600; }
.pv-countbar .legend { margin-left: auto; display: flex; gap: 20px; flex-wrap: wrap; color: #A5ACAF; font-size: 12.5px; }
.pv-countbar .legend b { color: #fff; font-weight: 600; }
@media (max-width: 760px) { .pv-countbar { padding: 14px 18px; } .pv-countbar .legend { margin-left: 0; } }

/* ---------- fast discovery nav: underline tabs, never pills ---------- */
.pv-fnav {
  display: flex; gap: 4px 26px; flex-wrap: wrap; align-items: baseline;
  padding: 18px 40px 6px;
}
.pv-fnav a {
  color: #A5ACAF; text-decoration: none; font-family: "Marathon", sans-serif;
  font-size: 14px; letter-spacing: .14em; text-transform: uppercase; padding: 6px 0;
}
.pv-fnav a:hover { color: #fff; }
.pv-fnav a.on { color: #fff; box-shadow: 0 2px 0 #E10600; }
@media (max-width: 760px) { .pv-fnav { padding: 14px 18px 2px; gap: 2px 20px; } }

/* ---------- genre tabs (browse + front browse bar) ---------- */
.pv-pills { gap: 2px 22px !important; }
.pv-pills .pv-pill, .pv-pill {
  border: 0 !important; background: transparent !important; border-radius: 0 !important;
  color: #A5ACAF !important; font-family: "Marathon", sans-serif;
  font-size: 13.5px; letter-spacing: .12em; text-transform: uppercase;
  padding: 8px 1px !important; transform: none !important;
}
.pv-pill:hover { color: #fff !important; }
.pv-pill.is-active { color: #fff !important; box-shadow: 0 2px 0 #E10600; }

/* ---------- controls on black ---------- */
.pv-select {
  background-color: #101010 !important; color: #fff !important;
  border: 1px solid #2C2C2C !important; border-radius: 0 !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23A5ACAF' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") !important;
}
.pv-select option { background: #101010; color: #fff; }
.pv-filterlabel { color: #A5ACAF; font-family: "Marathon", sans-serif; letter-spacing: .14em; text-transform: uppercase; font-size: 12px; }
.pv-gridcount { color: #A5ACAF; }
.pv-btn--ghost { border-color: #2C2C2C !important; color: #fff !important; border-radius: 0 !important; background: transparent !important; }
.pv-btn--solid { border-radius: 0 !important; }
.browse-search input, .pv-series-search input, #seriesSearch {
  background: #101010 !important; color: #fff !important;
  border: 1px solid #2C2C2C !important; border-radius: 0 !important;
}
.pv-browsebar--sticky { background: #000 !important; border-bottom: 1px solid #2C2C2C !important; }

/* ---------- cards + shelves float on black ---------- */
.pv-card__t, .pv-tile__t, .pv-seriescard__t { color: #fff !important; }
.pv-card__s, .pv-tile__s, .pv-seriescard__s { color: #A5ACAF !important; }
.pv-tile__art, .pv-card__art, .pv-seriescard__art {
  border-radius: 6px !important;
  box-shadow: 0 14px 34px rgba(0,0,0,.55) !important;
}
.pv-lane--scroll { scrollbar-width: none; }
.pv-lane--scroll::-webkit-scrollbar { display: none; }
.pv-skel__art { background-color: #141414 !important; border-color: #232323 !important; border-radius: 6px !important; }
.pv-skel__line { background: #1e1e1e !important; }
.pv-skel-note { color: #A5ACAF !important; }
.pv-fineprint { color: #A5ACAF !important; }
.pv-fineprint a { color: #fff; }
.pv-empty { background: transparent !important; }
.pv-classicgrid div { border-color: #2C2C2C !important; }
.pv-classicgrid b { color: #fff !important; }
.pv-classicgrid span { color: #A5ACAF !important; }

/* ---------- compact black page head (browse + series) ---------- */
.pv-pagehead { padding: 34px 40px 8px; }
.pv-pagehead h1 {
  font-family: "Marathon", sans-serif; font-weight: 400;
  font-size: clamp(38px, 5vw, 64px); line-height: 1; text-transform: uppercase; color: #fff;
}
.pv-pagehead .dek { color: #A5ACAF; font-size: 15.5px; margin-top: 10px; max-width: 62ch; line-height: 1.55; }
.pv-pagehead .dek b { color: #fff; }
@media (max-width: 760px) { .pv-pagehead { padding: 24px 18px 4px; } }

/* ---------- modal dossier ---------- */
.pv-modal__backdrop { background: rgba(0,0,0,.72) !important; }
.pv-modal__panel {
  background: linear-gradient(180deg, #141414, #0A0A0A) !important;
  border: 0 !important; border-radius: 10px !important;
  box-shadow: 0 30px 80px rgba(0,0,0,.7) !important;
  color: #fff;
}
.pv-modal__art { border-radius: 6px !important; }
@media (min-width: 761px) {
  .pv-modal__art { width: 148px !important; height: 222px !important; object-fit: cover; }
  .pv-modal__head { align-items: flex-start; }
}
.pv-modal__hosts { color: #A5ACAF !important; }
.pv-modal__pitch { color: #EDEDED !important; }
.pv-modal__avail { margin-top: 8px; }
.pv-modal__x { background: #1B1B1B !important; color: #fff !important; }
.pv-ep__note { color: #A5ACAF !important; }
.pv-ep { color: #fff !important; }
.pv-ep:hover, .pv-ep.is-active { background: #1B1B1B !important; }
/* the 40px sliver rail becomes a full-size related grid */
.pv-morelikethis .pv-rail {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(128px, 1fr));
  gap: 16px;
}
.pv-morelikethis .pv-cardwrap { width: auto !important; min-width: 0; }
.pv-morelikethis .pv-tile { width: auto !important; }

/* ---------- continue watching ---------- */
.pv-cw-note { color: #A5ACAF; font-size: 12.5px; letter-spacing: .06em; margin-top: 4px; }
.pvccard { color: #fff !important; }
.pvccard .tb b { color: #fff !important; }
.pvccard .tb small { color: #A5ACAF !important; }
.pvccard .pvresume { color: #A5ACAF !important; }

/* the retired pre-bible masthead block never renders on Free surfaces —
   the bible nav (header rows 1+2) is the one header */
.pv-site-head { display: none !important; }

/* ---------- standalone player ---------- */
.pp-bar { border-bottom-color: #2C2C2C !important; }
.pp-title { color: #fff !important; }
.pp-note { color: #A5ACAF !important; }
.pp-back { background: #1B1B1B !important; color: #fff !important; border-radius: 0 !important; }
.pp-err { color: #A5ACAF !important; }

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
  * { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}

/* ============================================================
   FREE FRONT — LAPTOP VOID FIX (2026-10-17, James photo 09:35 PT)
   main was capped at 1280px and rendered left-pinned, so on any
   laptop wider than 1280 the poster wall stopped at 1280 and a
   black void ran the full height down the right side (measured:
   86px @1366, 160px @1440, 640px @1920). The wall now runs fluid
   to the page edge at every width; grid columns step up as width
   grows so poster size stays near the old 1280 layout (~300px).
   Front-only: this sheet loads only on /free/ — the movie detail
   pages use their own template and never see it. Below 1280
   nothing changes (the cap never bound), phone untouched.
   ============================================================ */
body.b-scope main#main{max-width:none}
@media (min-width:1400px){
  body.b-scope #allGrid.pv-grid{grid-template-columns:repeat(5,minmax(0,1fr))}
}
@media (min-width:1750px){
  body.b-scope #allGrid.pv-grid{grid-template-columns:repeat(6,minmax(0,1fr))}
}
