/* =========================================================
   press-release.css — press release post + index styling
   Loaded only on the press index page and on posts in the
   press-releases category (see qbng_press_styles()).
   Prefix is pr- : bd- is NOT safe on this site, the Divi
   Customizer already defines .bd-card and .bd-section-head.
   Colours come from the site's existing design tokens so
   this cannot drift from the global dark theme.
   ========================================================= */

/* The generic .pr-* rules below carry no !important on purpose.
   They are what styles the index page /about/press/, which is a Page and
   therefore never matches .single-post — there they win unaided. On the
   release post they lose to Divi, which is handled by the .single-post
   override block at the bottom of this file. See that comment for the
   cascade arithmetic. */

.pr-dek {
  font-size: 1.2rem;
  /* !important here (unlike the rest of this generic block, which
     deliberately carries none) because on /about/press/ this rule is
     (0,1,0) and loses to Divi's later-loading, higher-specificity
     `p, .et_pb_text p, .et_pb_blurb_description { line-height: 1.7 }`
     (0,1,1) — a pure specificity loss, not an importance one. Without
     this, .pr-dek renders at line-height 1.7 (32.64px) on the index
     page but the declared 1.5 (28.8px) on the release post, so the
     same class renders two different line-heights on the two pages. */
  line-height: 1.5 !important;
  color: var(--text-secondary, #94A3B8);
  font-style: italic;
  margin-bottom: 0.6em;
}

.pr-dateline {
  font-weight: 600;
  color: var(--text-primary, #E8F4F8);
}

.pr-quote {
  border-left: 3px solid var(--accent-cyan, #00D4FF);
  padding: 4px 0 4px 20px;
  margin: 0.6em 0;
  color: var(--text-primary, #E8F4F8);
}

.pr-h2 {
  margin-top: 2em;
  padding-bottom: .35em;
  border-bottom: 1px solid var(--border-subtle, rgba(0, 212, 255, .12));
}

.pr-contact {
  padding-bottom: 0;
  border-left: 2px solid var(--border-subtle, rgba(0, 212, 255, .12));
  padding-left: 16px;
  line-height: 1.6;
  color: var(--text-secondary, #94A3B8);
}

.pr-end {
  text-align: center;
  letter-spacing: .4em;
  color: var(--text-muted, #4A6080);
  margin-top: 2.5em;
}

/* v1.7.0: moved from a footer block (bottom of post, own separated
   section with a top border) to the top of the post, sitting beside
   Monarch's LinkedIn share icon. No longer a "separated section", so
   no border/top padding — see the .single-post pairing rules further
   down for how it lines up with Monarch's icon. margin-bottom here is
   what gives it breathing room before the content that follows, both
   standalone (press index page, where this is the only rule that
   applies) and paired (single-post, where the pairing rule below
   re-states the same 1.2em explicitly — see that comment for why it
   has to match Monarch's own margin-bottom exactly rather than just
   inheriting this value). */
.pr-linkedin-follow {
  margin: 0 0 1.2em 0;
}

.pr-linkedin-text {
  color: var(--text-secondary, #94A3B8);
  font-size: 0.95rem;
  /* Reset the browser default <p> margin: this text needs to size
     tightly to its own content so vertical-align:middle (see the
     .single-post pairing rules) centres it against Monarch's icon
     using its real height, not padded out by stray top/bottom margin. */
  margin: 0;
}

.pr-linkedin-link {
  color: var(--accent-cyan, #00D4FF);
  font-weight: 600;
  text-decoration: none;
}

.pr-linkedin-link:hover,
.pr-linkedin-link:focus {
  text-decoration: underline;
}

/* ---------------------------------------------------------------
   Single-post overrides.

   Divi's theme-options CSS (an inline <style>, so it always loads
   AFTER this file) forces typography on every release paragraph:

     .single-post .entry-content, .single-post .entry-content p {
       color: var(--text-secondary) !important;
       font-size: 1.05rem !important;
       line-height: 1.8 !important;
     }

   That is (0,2,1) AND !important. Adding !important to our own
   (0,1,0) rules — which is what v1.4.1 did — only promotes them into
   the same importance bucket; specificity then decides again and Divi
   still wins. Even an exact (0,2,1) tie loses, because a tie is broken
   by document order and Divi's inline block comes later.

   (0,3,1) is therefore the minimum that wins, and !important is still
   required to stay in the same bucket. Verified by live injection
   against the published page before shipping.

   These rules are scoped to .single-post deliberately: the generic
   rules above must keep serving /about/press/, which is a Page and
   never matches .single-post.

   Only the declarations Divi actually contests are duplicated below —
   not the full generic rule. If you change a colour, size or
   line-height in the generic block above, check whether it needs a
   twin here, or the change will be silently ineffective on the
   release page.
   --------------------------------------------------------------- */

.single-post .entry-content p.pr-dek {
  font-size: 1.2rem !important;
  line-height: 1.5 !important;
}

.single-post .entry-content p.pr-quote {
  color: var(--text-primary, #E8F4F8) !important;
}

.single-post .entry-content p.pr-contact {
  line-height: 1.6 !important;
}

.single-post .entry-content p.pr-end {
  color: var(--text-muted, #4A6080) !important;
}

.single-post .entry-content p.pr-linkedin-text {
  color: var(--text-secondary, #94A3B8) !important;
  font-size: 0.95rem !important;
}

/* ---------------------------------------------------------------
   Single-post: pair the follow prompt with Monarch's LinkedIn share
   icon on one line at the top of the post.

   qbng_prepend_press_linkedin_follow() (quantumbng-leads.php) hooks
   the_content at priority 9, one below Monarch's ET_Monarch::display_inline
   (priority 10, confirmed live), and both filters prepend. The lower
   priority runs first, so Monarch's prepend ends up outermost and ours
   lands just inside it: final DOM order is
     .entry-content > .et_social_inline_top, then > .pr-linkedin-follow,
     then the rest of the post body — both are direct children.

   The child combinator (>) scopes this to exactly that pairing so it
   can't reach into Monarch markup used anywhere else (this stylesheet
   is also only enqueued on press pages to begin with — qbng_press_styles()
   — so the risk is already low; this is defense in depth on top of that).

   There's no single flex parent to lean on for the alignment: the
   shared parent is .entry-content, which also holds the rest of the
   post body and must stay in normal block flow for everything after
   these two elements — flexing .entry-content itself would break that.
   Instead both become inline-block + vertical-align:middle, the
   standard sibling-centering technique for making adjacent inline-level
   siblings share one line with matching vertical centres.

   IMPORTANT gotcha, found by live injection, not guessed: that trick
   only produces matching centres when both siblings carry the SAME
   margin-bottom. vertical-align:middle centres the MARGIN box, not the
   border box, so unequal margin-bottoms between the two siblings shift
   their visual centres apart by half the difference. Monarch's own
   .et_social_inline_top ships a 40px margin-bottom (its plugin CSS,
   not ours) intended for when the icon sits alone as a footer/header
   element; left in place next to our block (margin-bottom: 1.2em ≈
   19.2px) that mismatch put the icon's visual centre 20px above the
   text's — verified via getBoundingClientRect before this fix, and
   confirmed at delta 0 after it. Fix: give both the exact same
   margin-bottom (1.2em) here, overriding Monarch's 40px down to match
   ours instead of the other way around, since 40px read as too large a
   gap before the post body once the icon is inline with text rather
   than sitting alone.
   --------------------------------------------------------------- */
.single-post .entry-content > .et_social_inline_top {
  display: inline-block;
  vertical-align: middle;
  margin-bottom: 1.2em;
  /* Collapse the inline strut. The container is inline-block, so its line
     box adds descender space below the icon (49px tall around a 40px icon),
     which shifts its vertical centre relative to the follow text. Setting
     line-height (NOT font-size) is what's wanted here: font-size: 0 would
     also zero the 1.2em margin-bottom above, breaking the equal-margin
     requirement documented in the block comment and swinging the offset to
     -10px. Measured live: 5px before, 2px after. */
  line-height: 0;
}

/* Monarch sizes each network's li as a PERCENTAGE of the row —
   .et_monarch .et_social_6col li { width: 15% } in its own style.css — which
   assumes the container is a full-width block. The display:inline-block above
   makes it shrink-to-fit instead (40px, one icon wide), so 15% resolved
   against 40px and gave the li a 6px width while the glyph inside stayed
   40px: the icon rendered horizontally squished/clipped. Verified live via
   getBoundingClientRect (li 6x40, glyph 40x40) and by matching the rule in
   document.styleSheets, not inferred.

   width:auto lets the floated li shrink-wrap its 40px glyph. The percentage
   is meaningless here regardless: only one network (LinkedIn) is enabled, so
   there is no 6-column row to divide. Scoped with > to the press-page pairing
   so Monarch's grid still works anywhere it legitimately has multiple icons. */
.single-post .entry-content > .et_social_inline_top .et_social_icons_container li {
  width: auto;
}

.single-post .entry-content > .pr-linkedin-follow {
  display: inline-block;
  vertical-align: middle;
  margin: 0 0 1.2em 20px;
}
