/* ============================================================================
   FLICKNEXS BLOG — single-post EDITORIAL reading layer
   Layers over Twenty Twenty-Three. Fully reversible (delete the mu-plugin).
   Brand tokens are inherited from article.css :root — nothing brand-specific
   is hardcoded here, so re-skinning is a one-file change.

   LAYOUT NOTE (learned the hard way on webnexs): this theme's columns carry
   inline flex-basis/order. Do NOT force a grid over them — it crushes the
   content column. We keep the theme's native content+sidebar flex layout and
   deliver the editorial win through TYPE, MEASURE and RHYTHM only.
   ========================================================================== */

/* ---------- reading progress ---------- */
#fnx-progress{
  position:fixed; top:0; left:0; height:2px; width:0; z-index:99999;
  background:linear-gradient(90deg,var(--fnx-acc),var(--fnx-gold));
  transition:width .09s linear;
}

/* ---------- post title ---------- */
body.single .wp-block-post-title{
  font-family:var(--fnx-fd) !important;
  font-weight:500 !important;
  font-size:clamp(2.5rem,4.6vw,4rem) !important;
  line-height:1.06 !important;
  letter-spacing:-.021em !important;
  color:var(--fnx-ink) !important;
  margin:.15em 0 .35em !important;
  max-width:20ch;
}

/* byline / meta */
body.single .entry-content + *,
body.single .wp-block-post-author-name,
body.single .wp-block-post-date,
body.single .post-meta{
  font-family:var(--fnx-fm) !important;
  font-size:.82rem !important;
  letter-spacing:.02em;
  color:var(--fnx-mut) !important;
}

/* ---------- the reading column ---------- */
body.single .entry-content{
  font-family:var(--fnx-fb) !important;
  font-size:20px !important;
  line-height:1.78 !important;
  color:var(--fnx-body) !important;
  letter-spacing:.002em;
}
/* measure — the single most important readability lever */
body.single .entry-content > p,
body.single .entry-content > ul,
body.single .entry-content > ol,
body.single .entry-content > blockquote,
body.single .entry-content > h2,
body.single .entry-content > h3,
body.single .entry-content > h4{
  max-width:68ch;
}
body.single .entry-content > p{ margin:0 0 1.5em; }

/* opening paragraph — slightly larger, sets the tone */
body.single .entry-content > p:first-of-type{
  font-size:1.12em !important;
  line-height:1.68 !important;
  color:#3b3545 !important;
}
/* drop cap */
body.single .entry-content > p:first-of-type::first-letter{
  font-family:var(--fnx-fd);
  float:left;
  font-size:4.1em;
  line-height:.82;
  font-weight:500;
  margin:.06em .09em -.02em 0;
  color:var(--fnx-acc);
}

/* ---------- section headings ---------- */
body.single .entry-content h2{
  font-family:var(--fnx-fd) !important;
  font-weight:500 !important;
  font-size:clamp(1.85rem,2.9vw,2.5rem) !important;
  line-height:1.16 !important;
  letter-spacing:-.014em !important;
  color:var(--fnx-ink) !important;
  margin:2.1em 0 .5em !important;
}
/* hairline flourish above each H2 — quiet, editorial */
body.single .entry-content h2::before{
  content:""; display:block; width:54px; height:1px;
  background:var(--fnx-gold); opacity:.75; margin-bottom:.85em;
}
body.single .entry-content h3{
  font-family:var(--fnx-fd) !important;
  font-weight:600 !important;
  font-size:clamp(1.35rem,2vw,1.68rem) !important;
  line-height:1.25 !important;
  color:var(--fnx-ink) !important;
  margin:1.7em 0 .45em !important;
}
body.single .entry-content h4{
  font-family:var(--fnx-fm) !important;
  font-weight:700 !important;
  font-size:1rem !important;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:var(--fnx-ink) !important;
  margin:1.6em 0 .5em !important;
}

/* ---------- links ---------- */
body.single .entry-content a:not(.wp-block-button__link):not(.kt-button){
  color:var(--fnx-acc-t) !important;
  text-decoration:underline;
  text-decoration-thickness:1px;
  text-underline-offset:3px;
  text-decoration-color:rgba(63,33,112,.32);
  transition:color .15s var(--fnx-eo), text-decoration-color .15s var(--fnx-eo);
}
body.single .entry-content a:not(.wp-block-button__link):not(.kt-button):hover{
  color:var(--fnx-acc) !important;
  text-decoration-color:var(--fnx-acc);
}

/* ---------- lists ---------- */
body.single .entry-content ul,
body.single .entry-content ol{ margin:0 0 1.5em; padding-left:1.15em; }
body.single .entry-content li{ margin:0 0 .5em; padding-left:.2em; }
body.single .entry-content ul li::marker{ color:var(--fnx-gold); }
body.single .entry-content ol li::marker{ color:var(--fnx-gold); font-family:var(--fnx-fm); font-size:.9em; }

/* ---------- blockquote — the luxury moment ---------- */
body.single .entry-content blockquote{
  border:0 !important;
  border-left:2px solid var(--fnx-gold) !important;
  background:transparent !important;
  margin:2em 0 !important;
  padding:.15em 0 .15em 1.6em !important;
  font-family:var(--fnx-fd) !important;
  font-size:1.42em !important;
  line-height:1.42 !important;
  font-style:italic;
  color:var(--fnx-ink) !important;
}
body.single .entry-content blockquote p{ margin:0 0 .4em !important; max-width:none; }
/* nested blockquote (paste artifact) — don't double the rule */
body.single .entry-content blockquote blockquote{
  border-left:0 !important; padding-left:0 !important; margin-left:0 !important; background:transparent !important;
}

/* ---------- figures & images ---------- */
body.single .entry-content figure{ margin:2.2em 0 !important; }
body.single .entry-content img{ border-radius:var(--fnx-rad); display:block; }
body.single .entry-content figcaption{
  font-family:var(--fnx-fm) !important;
  font-size:.8rem !important;
  color:var(--fnx-mut) !important;
  text-align:left;
  margin-top:.7em;
  padding-left:.1em;
  border-left:2px solid var(--fnx-line);
  padding-left:.8em;
}

/* ---------- tables — refined editorial, overrides the core defaults ---------- */
body.single .entry-content .wp-block-table{ margin:2.2em 0 !important; }
body.single .entry-content .wp-block-table table{
  border-collapse:collapse !important;
  font-family:var(--fnx-fm) !important;
  font-size:.94rem !important;
  background:var(--fnx-card);
  border-radius:var(--fnx-rad);
  overflow:hidden;
}
body.single .entry-content .wp-block-table th{
  background:rgba(63,33,112,.05) !important;
  border:0 !important;
  border-bottom:1px solid var(--fnx-line) !important;
  color:var(--fnx-ink) !important;
  font-weight:700 !important;
  font-size:.74rem !important;
  letter-spacing:.08em;
  text-transform:uppercase;
  padding:14px 16px !important;
  text-align:left;
}
body.single .entry-content .wp-block-table td{
  border:0 !important;
  border-bottom:1px solid var(--fnx-line2) !important;
  padding:13px 16px !important;
  color:var(--fnx-body) !important;
  vertical-align:top;
}
body.single .entry-content .wp-block-table tbody tr:last-child td{ border-bottom:0 !important; }
body.single .entry-content .wp-block-table thead{ border-bottom:0 !important; }
body.single .entry-content .wp-block-table tbody tr:hover td{ background:rgba(169,132,66,.05); }

/* ---------- in-content CTA buttons ---------- */
/* :not(:has(br)) guard — the content factory sometimes wraps a whole
   paragraph in a button block as a callout; those must stay native. */
body.single .entry-content .wp-block-button .wp-block-button__link:not(:has(br)),
body.single .entry-content a.wp-block-button__link.wp-element-button:not(:has(br)){
  background:var(--fnx-btn) !important;
  background-color:var(--fnx-acc) !important;
  color:#fff !important;
  font-family:var(--fnx-fm) !important;
  font-weight:600 !important;
  font-size:.98rem !important;
  letter-spacing:0 !important;
  text-transform:none !important;
  border:0 !important;
  border-radius:var(--fnx-rad) !important;
  padding:15px 28px !important;
  box-shadow:var(--fnx-btn-sh);
  transition:background .18s var(--fnx-eo), transform .18s var(--fnx-eo);
}
body.single .entry-content .wp-block-button .wp-block-button__link:not(:has(br)):hover{
  background:var(--fnx-btn-h) !important; transform:translateY(-1px);
}
body.single .entry-content .wp-block-button__link:not(:has(br)) strong{ color:#fff !important; }

/* Kadence buttons — same language */
body.single .entry-content .wp-block-kadence-singlebtn a.kt-button:not(:has(br)),
body.single .entry-content .wp-block-kadence-advancedbtn a.kt-button:not(:has(br)),
body.single .entry-content a.kb-button.kt-button:not(:has(br)){
  background:var(--fnx-btn) !important;
  background-color:var(--fnx-acc) !important;
  color:#fff !important;
  font-family:var(--fnx-fm) !important;
  font-weight:600 !important;
  border:0 !important;
  border-radius:var(--fnx-rad) !important;
  padding:15px 28px !important;
}
body.single .entry-content .kt-button:not(:has(br)) .kt-btn-inner-text{ color:#fff !important; }

/* ---------- table of contents ---------- */
body.single #ez-toc-container{
  background:var(--fnx-card) !important;
  border:1px solid var(--fnx-line) !important;
  border-radius:var(--fnx-rad) !important;
  box-shadow:none !important;
  padding:22px 26px !important;
  margin:2em 0 2.4em !important;
  max-width:68ch;
}
body.single #ez-toc-container .ez-toc-title{
  font-family:var(--fnx-fm) !important;
  font-size:.72rem !important;
  font-weight:700 !important;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--fnx-gold) !important;
}
body.single #ez-toc-container a{
  font-family:var(--fnx-fb) !important;
  font-size:1rem !important;
  color:var(--fnx-body) !important;
  text-decoration:none !important;
  line-height:1.55;
}
body.single #ez-toc-container a:hover{ color:var(--fnx-acc) !important; }
body.single #ez-toc-container ul li{ margin:.32em 0 !important; }

/* ---------- Kadence accordion (FAQ) ---------- */
body.single .wp-block-kadence-accordion .kt-accordion-pane{
  border:0 !important;
  border-top:1px solid var(--fnx-line) !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
}
body.single .wp-block-kadence-accordion .kt-accordion-pane:last-of-type{ border-bottom:1px solid var(--fnx-line) !important; }
body.single .wp-block-kadence-accordion .kt-blocks-accordion-header{
  font-family:var(--fnx-fd) !important;
  font-size:1.2rem !important;
  font-weight:600 !important;
  color:var(--fnx-ink) !important;
  background:transparent !important;
  padding:20px 0 !important;
}
body.single .wp-block-kadence-accordion .kt-accordion-panel-inner{
  background:transparent !important;
  border-left:2px solid var(--fnx-gold) !important;
  padding:2px 0 20px 1.2em !important;
  font-family:var(--fnx-fb) !important;
  font-size:1.02rem !important;
  line-height:1.72 !important;
  color:var(--fnx-body) !important;
}

/* ---------- author box ---------- */
body.single .authorcss,
body.single .wp-block-post-author{
  background:var(--fnx-card) !important;
  border:1px solid var(--fnx-line) !important;
  border-radius:var(--fnx-rad) !important;
  padding:24px 26px !important;
  margin:2.6em 0 !important;
  max-width:68ch;
  font-family:var(--fnx-fm) !important;
}
body.single .authorcss a{ color:var(--fnx-acc) !important; }

/* ---------- sidebar CTA ----------
   The stock widget ships a cool-grey panel, hardcoded Roboto at 12-15px and
   an orange-on-purple button (fails contrast). Bring it into the editorial
   system without touching the widget's markup. */
body.single .sidebar{
  background:var(--fnx-card) !important;
  border:1px solid var(--fnx-line);
  border-radius:var(--fnx-rad);
  padding:0 0 22px !important;
  overflow:hidden;
  font-family:var(--fnx-fm) !important;
  align-self:flex-start;
}
/* kill the Roboto leak everywhere inside the widget */
body.single .sidebar,
body.single .sidebar p,
body.single .sidebar li,
body.single .sidebar b,
body.single .sidebar strong,
body.single .sidebar .wp-block-heading-sidebar{
  font-family:var(--fnx-fm) !important;
}
body.single .sidebar > p,
body.single .sidebar > ul{ padding:0 22px !important; }
body.single .sidebar > p{
  font-size:.95rem !important;
  line-height:1.6 !important;
  color:var(--fnx-body) !important;
  margin:16px 0 12px !important;
}
body.single .sidebar ul{ list-style:none !important; margin:0 0 18px !important; }
body.single .sidebar li{
  font-size:.9rem !important;
  line-height:1.5 !important;
  color:var(--fnx-body) !important;
  padding:7px 0 7px 22px !important;
  position:relative;
  border-bottom:1px solid var(--fnx-line2);
}
body.single .sidebar li:last-child{ border-bottom:0; }
/* gold tick instead of the stock bullet */
body.single .sidebar li::before{
  content:"";
  position:absolute; left:2px; top:14px;
  width:7px; height:4px;
  border-left:1.5px solid var(--fnx-gold);
  border-bottom:1.5px solid var(--fnx-gold);
  transform:rotate(-45deg);
}
/* the banner image block sits flush to the card edge */
body.single .sidebar .cta-widget-columns{ margin:0 !important; border-radius:0 !important; }
body.single .sidebar figure{ margin:0 !important; }
body.single .sidebar figure img{ border-radius:0 !important; }

body.single .sidebar .wp-block-buttons{ padding:0 22px !important; }
body.single .sidebar .wp-block-button__link{
  display:block;
  background:var(--fnx-btn) !important;
  background-color:var(--fnx-acc) !important;
  color:#fff !important;              /* was orange on purple — unreadable */
  border:0 !important;
  border-radius:var(--fnx-rad) !important;
  font-family:var(--fnx-fm) !important;
  font-weight:600 !important;
  font-size:.98rem !important;
  letter-spacing:0 !important;
  text-transform:none !important;
  text-align:center;
  padding:14px 24px !important;
  box-shadow:var(--fnx-btn-sh);
  transition:background .18s var(--fnx-eo), transform .18s var(--fnx-eo);
}
body.single .sidebar .wp-block-button__link:hover{
  background:var(--fnx-btn-h) !important; color:#fff !important; transform:translateY(-1px);
}

/* ---------- selection ---------- */
body.single ::selection{ background:rgba(169,132,66,.22); color:var(--fnx-ink); }

/* ---------- mobile ---------- */
@media (max-width:781px){
  body.single .wp-block-post-title{ font-size:clamp(2rem,8vw,2.6rem) !important; max-width:none; }
  body.single .entry-content{ font-size:18px !important; line-height:1.74 !important; }
  body.single .entry-content > p:first-of-type::first-letter{ font-size:3.4em; }
  body.single .entry-content h2{ margin-top:1.7em !important; }
  body.single #ez-toc-container{ padding:18px 20px !important; }
  body.single .entry-content .wp-block-table table{ font-size:.86rem !important; }
  body.single .entry-content .wp-block-table th,
  body.single .entry-content .wp-block-table td{ padding:10px 12px !important; }
}

/* ============================================================================
   AUDIT FIXES (2026-07-31) — single-post reading page
   ========================================================================== */

/* [4] SIDEBAR CTA — "sort this".
   The widget shipped a dark navy banner (an uploaded background image) with a
   heavy sans headline, which shouted against the editorial page. We can't
   restyle pixels inside an image, so we retire the image and rebuild the card
   from the widget's own text, in the editorial system. Markup untouched. */
body.single .sidebar .cta-widget-columns{
  background-image:none !important;
  background-color:transparent !important;
  padding:24px 22px 0 !important;
  gap:0 !important;
  display:block !important;
}
/* drop the banner artwork + the pause-icon graphic */
body.single .sidebar .cta-widget-columns figure,
body.single .sidebar .cta-widget-columns img{ display:none !important; }
body.single .sidebar .cta-widget-columns .wp-block-column{ padding:0 !important; }
/* the widget's headline becomes the card title */
body.single .sidebar .wp-block-heading-sidebar{
  font-family:var(--fnx-fd) !important;
  font-size:1.5rem !important;
  line-height:1.2 !important;
  font-weight:600 !important;
  color:var(--fnx-ink) !important;
  margin:0 !important;
  text-align:left !important;
}
/* gold eyebrow above it, in the same language as the article labels */
body.single .sidebar .wp-block-heading-sidebar::before{
  content:"FLICKNEXS OTT";
  display:block;
  font-family:var(--fnx-fm);
  font-size:.66rem;
  font-weight:700;
  letter-spacing:.14em;
  color:#8a6a34;                 /* darkened gold — 4.6:1 on the card */
  margin-bottom:.7em;
}

/* [5] TINY TEXT — measured 11.52px (TOC title) and 11.84px (table headers).
   Below ~12.5px small-caps labels stop being legible. */
body.single #ez-toc-container .ez-toc-title{
  font-size:.8rem !important;      /* 12.8px */
  color:#8a6a34 !important;        /* [6] was gold #a98442 = 3.41 contrast, fails AA */
}
body.single .entry-content .wp-block-table th{ font-size:.82rem !important; }

/* [7] NARROW-WIDTH OVERFLOW — the theme marks the content/sidebar columns
   `is-not-stacked-on-mobile`, so at ~800px they stay side-by-side and the
   article column overflows horizontally (measured scrollWidth 433 > clientWidth
   410). Force them to stack before that happens. */
@media (max-width:1024px){
  body.single .wp-block-columns.text-sidebar-container,
  body.single main > .wp-block-columns{
    flex-wrap:wrap !important;
    display:block !important;
  }
  body.single main > .wp-block-columns > .wp-block-column{
    width:100% !important;
    flex-basis:100% !important;
    margin-left:0 !important;
  }
  body.single .sidebar{ margin-top:2.5rem !important; }
  body.single .entry-content,
  body.single .entry-content > *{ max-width:100% !important; }
  body.single .entry-content img,
  body.single .entry-content table{ max-width:100% !important; height:auto; }
  body.single .entry-content .wp-block-table{ overflow-x:auto !important; }
}
