/**
 * Reusable "rich content" components for hand-authored Blog/News posts -
 * speaker cards, download CTAs, photo galleries with a lightbox, etc.
 * Replaces the old pattern of pasting a per-post <style> block + Elementor
 * markup into the post editor: this is the one shared, theme-styled
 * vocabulary every rich post uses instead, so every post looks consistent
 * and no post ever needs its own embedded CSS again.
 *
 * Scoped under .rc (never global) - same convention as every other section
 * of this theme. Colors/fonts mirror single-post.css / single-post-featured.css
 * so a rich post reads like a natural extension of the rest of the site.
 *
 * Typography properties below carry !important: both single-post.css's
 * #sgblog-body .prose p/h2/ul and single-post-featured.css's
 * #sgblogf-body .sgblogf-article-body p/h2/ul are ID-scoped generic element
 * selectors, which beat a plain single class like .rc-lede on specificity
 * regardless of source order. Since .rc content can land inside either
 * design, these rules have to win unconditionally - the same reason the
 * hand-authored posts this replaces used !important everywhere too.
 */
.rc, .rc *{ box-sizing:border-box; }
.rc{
  --rc-navy:#16294a; --rc-navy-deep:#0c1830; --rc-teal:#17a2ac; --rc-teal-deep:#0f7c84; --rc-teal-light:#2dc6cb;
  --rc-ink:#182338; --rc-grey:#525d6e; --rc-grey-soft:#8892a1; --rc-line:#e7eaef; --rc-card-grey:#f6f8fb;
}
/**
 * The parent post templates style bare h2/p/a with ID-scoped selectors
 * (#sgblog-body .prose h2, #sgblogf-body .sgblogf-article-body h2, ...).
 * An ID always outranks a plain class in specificity, !important or not, so
 * .rc h2 alone can lose to them. Repeating each rule with both parents'
 * exact ancestor chain + .rc appended gives it one more class than the
 * competing selector, guaranteeing it wins in either template.
 */
.rc h2, #sgblog-body .prose .rc h2, #sgblogf-body .sgblogf-article-body .rc h2{ font-family:'Anek Latin','Inter',sans-serif!important; font-size:22px!important; font-weight:700!important; color:var(--rc-ink)!important; margin:2.6rem 0 1rem!important; line-height:1.3!important; text-transform:none!important; letter-spacing:normal!important; }
.rc p, #sgblog-body .prose .rc p, #sgblogf-body .sgblogf-article-body .rc p{ margin:0 0 1.1rem!important; color:var(--rc-grey)!important; font-size:16px!important; }
.rc a, #sgblog-body .prose .rc a, #sgblogf-body .sgblogf-article-body .rc a{ color:var(--rc-teal-deep)!important; text-decoration:underline!important; text-underline-offset:2px!important; }
.rc a:hover, #sgblog-body .prose .rc a:hover, #sgblogf-body .sgblogf-article-body .rc a:hover{ color:var(--rc-navy)!important; }
/**
 * The parent templates' ambient "strong{color:var(--ink)}" rule targets
 * <strong> directly, so it wins over inheriting the enclosing <a>'s teal -
 * a direct declaration on an element always beats an inherited value,
 * regardless of specificity. Bold link text (<a><strong>...) was rendering
 * as plain navy with no underline instead of looking like a link.
 */
.rc a strong, #sgblog-body .prose .rc a strong, #sgblogf-body .sgblogf-article-body .rc a strong{ color:inherit!important; text-decoration:underline!important; text-underline-offset:2px!important; }
.rc a:hover strong, #sgblog-body .prose .rc a:hover strong, #sgblogf-body .sgblogf-article-body .rc a:hover strong{ color:inherit!important; }

.rc-intro, #sgblog-body .prose .rc .rc-intro, #sgblogf-body .sgblogf-article-body .rc .rc-intro{
  font-size:15.5px!important; font-weight:600!important; color:var(--rc-ink)!important; line-height:1.7!important;
  padding:1.4rem 1.8rem; border-left:4px solid var(--rc-teal); background:var(--rc-card-grey);
  border-radius:0 10px 10px 0; margin:0 0 2rem!important;
}
.rc-divider{ border:none; border-top:1px solid var(--rc-line); margin:2.4rem 0; }
.rc-highlight{
  background:var(--rc-card-grey); border-left:3px solid var(--rc-navy); padding:1rem 1.3rem;
  border-radius:0 8px 8px 0; margin:1.5rem 0!important; font-weight:600!important; color:var(--rc-navy)!important; font-size:14.5px!important; line-height:1.6!important;
}
/**
 * .rc-lede/.rc-accent are <p> tags competing with the base ".rc p" rule above,
 * which also carries #sgblog-body .prose .rc p / #sgblogf-body ... ID-anchored
 * branches. A bare .rc-lede (single class) or even ".rc .rc-lede" (two classes)
 * still loses to that ID-anchored branch, so these need the same triple-selector
 * ID-anchor treatment to win.
 */
.rc-lede, #sgblog-body .prose .rc .rc-lede, #sgblogf-body .sgblogf-article-body .rc .rc-lede{ font-size:18px!important; line-height:1.6!important; color:var(--rc-ink)!important; font-weight:600!important; margin:0 0 1.9rem!important; }
.rc-accent, #sgblog-body .prose .rc .rc-accent, #sgblogf-body .sgblogf-article-body .rc .rc-accent{ font-size:16px!important; line-height:1.5!important; color:var(--rc-teal-deep)!important; font-weight:700!important; margin:0 0 1.6rem!important; }
/* Bordered callout box - a worked example/scenario, heading + body + optional list. */
.rc-callout{
  background:#fff; border:1px solid var(--rc-line); border-left:5px solid var(--rc-teal); border-radius:12px;
  box-shadow:0 12px 32px -22px rgba(22,41,74,.35); padding:2rem 2.2rem; margin:2rem 0;
}
.rc-callout h3{ font-family:'Anek Latin','Inter',sans-serif!important; font-size:20px!important; font-weight:700!important; color:var(--rc-ink)!important; margin:0 0 1rem!important; line-height:1.3!important; }
.rc-callout p, #sgblog-body .prose .rc .rc-callout p, #sgblogf-body .sgblogf-article-body .rc .rc-callout p{ font-size:14px!important; color:var(--rc-grey)!important; line-height:1.85!important; margin:0 0 1.2rem!important; }
.rc-callout ul{ list-style:none!important; margin:0 0 1.2rem!important; padding:0!important; }
/**
 * Same ID-anchoring problem as h2/p/a above, but on list markers: the parent
 * templates style bare li/li::before with their own ID-scoped bullet dot
 * (#sgblog-body .prose ul/ol li::before, #sgblogf-body ... ul/ol li::before),
 * which wins over a plain-class ::before on `content`/`width`/`height`/
 * `background` even when this rule sets a taller min-width - producing a
 * squashed oval instead of a circle with no visible marker content. Every
 * custom list marker below repeats the ID-anchor chain to fully replace it.
 */
.rc-callout li, #sgblog-body .prose .rc .rc-callout li, #sgblogf-body .sgblogf-article-body .rc .rc-callout li{ position:relative; padding-left:1.3rem!important; margin:0 0 .6rem!important; font-size:14px!important; color:var(--rc-ink)!important; font-weight:600!important; line-height:1.6!important; }
.rc-callout li::before, #sgblog-body .prose .rc .rc-callout li::before, #sgblogf-body .sgblogf-article-body .rc .rc-callout li::before{ content:''; position:absolute; left:0; top:.6em; width:7px; height:7px; border-radius:50%; background:var(--rc-teal); }
.rc-callout strong{ color:var(--rc-ink)!important; }
/* Centered "X + Y converge" diagram box, e.g. two disciplines merging. */
.rc-diagram{
  font-family:'Anek Latin','Inter',sans-serif; background:var(--rc-card-grey); border:2px solid var(--rc-navy);
  border-radius:16px; padding:2.6rem 2rem; margin:2rem 0; text-align:center;
}
.rc-diagram-title{ font-size:clamp(34px,6vw,52px)!important; line-height:1!important; font-weight:700!important; color:var(--rc-navy)!important; letter-spacing:-.02em; }
.rc-diagram-title span{ color:var(--rc-teal-deep)!important; font-weight:300!important; }
.rc-diagram svg{ display:block; width:280px; max-width:80%; margin:1.5rem auto; overflow:visible; }
.rc-diagram svg path{ animation:rcDiagramFlow 18s linear infinite; }
@media (prefers-reduced-motion:reduce){ .rc-diagram svg path{ animation:none; } }
@keyframes rcDiagramFlow{ to{ stroke-dashoffset:-400; } }
.rc-diagram h2, #sgblog-body .prose .rc .rc-diagram h2, #sgblogf-body .sgblogf-article-body .rc .rc-diagram h2{
  font-family:'Anek Latin','Inter',sans-serif!important; font-size:20px!important; font-weight:300!important; color:var(--rc-navy)!important; line-height:1.35!important;
  max-width:560px; margin:0 auto 1rem!important; letter-spacing:.01em!important; text-transform:uppercase!important;
}
.rc-diagram h2 b, #sgblog-body .prose .rc .rc-diagram h2 b, #sgblogf-body .sgblogf-article-body .rc .rc-diagram h2 b{ font-weight:700!important; }
.rc-diagram p, #sgblog-body .prose .rc .rc-diagram p, #sgblogf-body .sgblogf-article-body .rc .rc-diagram p{ font-size:14px!important; color:var(--rc-grey)!important; line-height:1.75!important; max-width:540px; margin:0 auto!important; }
/**
 * .rc a is now ID-anchored (see the h2/p/a hardening above) to beat the
 * parent templates' ID-scoped prose styles, which makes it outrank a
 * plain-class button selector like .rc a.rc-download. Every <a>-based
 * button component below repeats the same ID-anchor chain so it still
 * wins over the base link style instead of rendering as underlined text.
 */
.rc a.rc-download, #sgblog-body .prose .rc a.rc-download, #sgblogf-body .sgblogf-article-body .rc a.rc-download{
  display:inline-flex; align-items:center; gap:.5rem; background:var(--rc-teal); color:#fff!important;
  font-size:13px!important; font-weight:700!important; padding:.65rem 1.2rem; border-radius:99px; text-decoration:none!important;
  margin:.4rem 0 1.8rem; transition:background .15s ease, transform .15s ease, box-shadow .15s ease;
  box-shadow:0 16px 34px -16px rgba(23,162,172,.5);
}
.rc a.rc-download:hover, #sgblog-body .prose .rc a.rc-download:hover, #sgblogf-body .sgblogf-article-body .rc a.rc-download:hover{ background:var(--rc-teal-deep)!important; color:#fff!important; transform:translateY(-2px); }

.rc-speaker-card{
  display:grid; grid-template-columns:220px 1fr; gap:0; margin:1.8rem 0 1.4rem;
  border:1px solid var(--rc-line); border-radius:14px; overflow:hidden; background:var(--rc-card-grey);
}
.rc-speaker-card .rc-speaker-photo-wrap{ grid-column:1; grid-row:1; }
.rc-speaker-card .rc-speaker-info{ grid-column:2; grid-row:1; }
.rc-speaker-card.reverse{ grid-template-columns:1fr 220px; }
.rc-speaker-card.reverse .rc-speaker-photo-wrap{ grid-column:2; grid-row:1; }
.rc-speaker-card.reverse .rc-speaker-info{ grid-column:1; grid-row:1; }
.rc-speaker-photo-wrap{ position:relative; overflow:hidden; background:var(--rc-navy); min-height:260px; align-self:stretch; }
.rc-speaker-photo{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center top; display:block; }
.rc-speaker-photo.landscape{ object-position:center 15%; }
.rc-speaker-info{ padding:1.6rem 1.8rem; display:flex; flex-direction:column; justify-content:center; }
.rc-speaker-name{ font-family:'Anek Latin','Inter',sans-serif!important; font-size:17px!important; font-weight:700!important; color:var(--rc-ink)!important; margin:0 0 .2rem!important; line-height:1.25!important; }
.rc-speaker-role{ font-size:11.5px!important; color:var(--rc-teal-deep)!important; font-weight:700!important; text-transform:uppercase; letter-spacing:.06em; margin:0 0 1rem!important; }
.rc-speaker-quote, #sgblog-body .prose .rc .rc-speaker-quote, #sgblogf-body .sgblogf-article-body .rc .rc-speaker-quote{ font-size:14px!important; color:var(--rc-grey)!important; line-height:1.7!important; margin:0!important; }
.rc-speaker-quote strong{ color:var(--rc-ink)!important; }

.rc-speaker-duo{ display:grid; grid-template-columns:220px 1fr; gap:0; margin:1.8rem 0 1.4rem; border:1px solid var(--rc-line); border-radius:14px; overflow:hidden; background:var(--rc-card-grey); }
.rc-speaker-duo .rc-speaker-duo-photo-wrap{ grid-column:1; grid-row:1; }
.rc-speaker-duo .rc-speaker-duo-info{ grid-column:2; grid-row:1; }
.rc-speaker-duo-photo-wrap{ position:relative; overflow:hidden; background:var(--rc-navy); min-height:260px; }
.rc-speaker-duo-photo{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center top; display:block; }
.rc-speaker-duo-info{ padding:1.6rem 1.8rem; display:flex; flex-direction:column; justify-content:center; }
.rc-speaker-duo-names{ font-family:'Anek Latin','Inter',sans-serif!important; font-size:17px!important; font-weight:700!important; color:var(--rc-ink)!important; margin:0 0 .2rem!important; line-height:1.3!important; }
.rc-speaker-duo-roles{ font-size:11.5px!important; color:var(--rc-teal-deep)!important; font-weight:700!important; text-transform:uppercase; letter-spacing:.06em; margin:0 0 1rem!important; }

.rc-next-event{
  background:linear-gradient(165deg, var(--rc-navy) 0%, var(--rc-navy-deep) 100%); border-radius:16px; padding:2rem 2.2rem; margin:2rem 0; color:#eef2f9;
}
.rc-next-label{ font-size:11px!important; font-weight:700!important; text-transform:uppercase; letter-spacing:.14em; color:var(--rc-teal-light)!important; margin-bottom:.5rem!important; }
.rc-next-title{ font-family:'Anek Latin','Inter',sans-serif!important; font-size:24px!important; font-weight:700!important; color:#fff!important; line-height:1.2!important; margin-bottom:.3rem!important; }
.rc-next-date{ font-size:14.5px!important; font-weight:600!important; color:rgba(255,255,255,.7)!important; margin-bottom:1rem!important; }
.rc-next-text, #sgblog-body .prose .rc .rc-next-text, #sgblogf-body .sgblogf-article-body .rc .rc-next-text{ font-size:13.5px!important; color:rgba(255,255,255,.65)!important; line-height:1.7!important; margin:0 0 1.8rem!important; }
.rc a.rc-next-btn, #sgblog-body .prose .rc a.rc-next-btn, #sgblogf-body .sgblogf-article-body .rc a.rc-next-btn{ display:inline-flex; align-items:center; gap:.4rem; margin-top:.6rem; background:var(--rc-teal); color:#fff!important; font-size:13px!important; font-weight:700!important; padding:.6rem 1.3rem; border-radius:99px; text-decoration:none!important; transition:background .15s ease, transform .15s ease; }
.rc a.rc-next-btn:hover, #sgblog-body .prose .rc a.rc-next-btn:hover, #sgblogf-body .sgblogf-article-body .rc a.rc-next-btn:hover{ background:var(--rc-teal-deep)!important; transform:translateY(-2px); }

.rc-gallery{ margin:3rem 0 2rem; }
.rc-gallery-title{ font-size:11.5px!important; font-weight:700!important; text-transform:uppercase; letter-spacing:.12em; color:var(--rc-grey-soft)!important; margin:0 0 1.2rem!important; }
.rc-gallery-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:6px; }
.rc-gallery-item{ position:relative; overflow:hidden; border-radius:8px; cursor:pointer; background:var(--rc-navy); }
.rc-gallery-item.portrait{ grid-row:span 2; }
.rc-gallery-item img{ width:100%; height:100%; min-height:130px; object-fit:cover; display:block; transition:transform .3s ease; }
.rc-gallery-item.portrait img{ min-height:270px; }
.rc-gallery-item:hover img{ transform:scale(1.04); }

.rc-lightbox-overlay{ display:none; position:fixed; inset:0; background:rgba(10,14,24,.93); z-index:99999; align-items:center; justify-content:center; padding:1.5rem; }
.rc-lightbox-overlay.active{ display:flex; }
.rc-lightbox-overlay img{ max-width:90vw; max-height:90vh; object-fit:contain; border-radius:6px; }
.rc-lightbox-close{ position:absolute; top:1.2rem; right:1.5rem; color:#fff; font-size:28px; cursor:pointer; line-height:1; opacity:.7; background:none; border:none; padding:0; }
.rc-lightbox-close:hover{ opacity:1; }
.rc-lightbox-nav{ position:absolute; top:50%; transform:translateY(-50%); color:#fff; font-size:36px; cursor:pointer; opacity:.6; background:none; border:none; padding:.5rem 1rem; line-height:1; }
.rc-lightbox-nav:hover{ opacity:1; }
.rc-lightbox-nav.prev{ left:.5rem; }
.rc-lightbox-nav.next{ right:.5rem; }

.rc-agenda-strip{ display:flex; flex-wrap:wrap; gap:.5rem; margin:1rem 0 2rem; }
.rc-agenda-tag{ background:var(--rc-navy); color:#fff!important; font-size:11.5px!important; font-weight:600!important; padding:.35rem .9rem; border-radius:99px; }

.rc-stat-row{ display:flex; gap:1px; background:var(--rc-line); border:1px solid var(--rc-line); border-radius:10px; overflow:hidden; margin:2rem 0; }
.rc-stat-cell{ background:#fff; flex:1; padding:1.1rem 1.2rem; text-align:center; }
.rc-stat-number{ font-family:'Anek Latin','Inter',sans-serif!important; font-size:28px!important; font-weight:700!important; color:var(--rc-navy)!important; line-height:1!important; display:block; }
.rc-stat-number span{ color:var(--rc-teal-deep)!important; }
.rc-stat-label{ font-size:11.5px!important; color:var(--rc-grey-soft)!important; margin-top:.3rem!important; display:block; }

/* Boxed screenshot figure: dark label header, image, caption footer. */
.rc-figure{
  border:1px solid var(--rc-line); border-radius:10px; overflow:hidden; margin:2rem 0; background:#fff;
  box-shadow:0 12px 32px -24px rgba(22,41,74,.3);
}
.rc-figure-header{
  background:var(--rc-navy); color:rgba(255,255,255,.92)!important; font-weight:700!important; font-size:11px!important;
  letter-spacing:.09em; text-transform:uppercase; padding:.55rem 1.1rem; font-family:ui-monospace,'SFMono-Regular',Menlo,Consolas,monospace;
}
.rc-figure-body{ padding:.8rem; background:#fff; }
.rc-figure-body img{ display:block; width:100%; height:auto; border-radius:4px; }
.rc-figure-caption, #sgblog-body .prose .rc .rc-figure-caption, #sgblogf-body .sgblogf-article-body .rc .rc-figure-caption{ font-size:12px!important; color:var(--rc-grey-soft)!important; padding:.7rem 1.1rem!important; background:var(--rc-card-grey); border-top:1px solid var(--rc-line); line-height:1.55!important; margin:0!important; }

/* Centered pullquote: rules above/below, no box. */
.rc-pullquote, #sgblog-body .prose .rc .rc-pullquote, #sgblogf-body .sgblogf-article-body .rc .rc-pullquote{
  border-top:2px solid var(--rc-line); border-bottom:2px solid var(--rc-line); padding:1.3rem 0!important;
  margin:2rem 0!important; font-size:16px!important; font-weight:600!important; color:var(--rc-navy)!important;
  line-height:1.55!important; text-align:center;
}

/* Dark CTA block with two side-by-side options (e.g. webinar vs. session). */
.rc-cta{ margin:2.8rem 0 .5rem; background:linear-gradient(160deg, var(--rc-navy) 0%, var(--rc-navy-deep) 100%); border-radius:16px; padding:2rem 2.2rem 2.2rem; color:#e7eef4; }
.rc-cta-kicker{ font-size:11px!important; font-weight:700!important; letter-spacing:.14em; text-transform:uppercase; color:var(--rc-teal-light)!important; margin-bottom:.6rem!important; }
.rc-cta-title{ font-family:'Anek Latin','Inter',sans-serif!important; font-size:22px!important; font-weight:700!important; color:#fff!important; margin:0 0 .4rem!important; line-height:1.25!important; }
.rc-cta-sub, #sgblog-body .prose .rc .rc-cta-sub, #sgblogf-body .sgblogf-article-body .rc .rc-cta-sub{ font-size:13.5px!important; color:rgba(238,242,249,.72)!important; margin:0 0 1.6rem!important; line-height:1.6!important; }
.rc-cta-grid{ display:grid; grid-template-columns:1fr 1fr; gap:.9rem; }
.rc-cta-card{ background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.13); border-radius:12px; padding:1.2rem 1.25rem; display:flex; flex-direction:column; }
.rc-cta-card-title{ font-size:14.5px!important; font-weight:700!important; color:#fff!important; margin:0 0 .45rem!important; line-height:1.3!important; }
.rc-cta-card p, #sgblog-body .prose .rc .rc-cta-card p, #sgblogf-body .sgblogf-article-body .rc .rc-cta-card p{ font-size:12.5px!important; color:rgba(238,242,249,.72)!important; margin:0 0 1.1rem!important; line-height:1.6!important; flex:1; }
.rc a.rc-cta-btn, #sgblog-body .prose .rc a.rc-cta-btn, #sgblogf-body .sgblogf-article-body .rc a.rc-cta-btn{ display:inline-flex; align-items:center; gap:.4rem; align-self:flex-start; font-size:13px!important; font-weight:700!important; color:#fff!important; background:linear-gradient(135deg, var(--rc-teal), var(--rc-teal-deep)); border:none; border-radius:99px; padding:.62rem 1.15rem; text-decoration:none!important; box-shadow:0 10px 24px -12px rgba(23,162,172,.6); }
.rc a.rc-cta-btn.ghost, #sgblog-body .prose .rc a.rc-cta-btn.ghost, #sgblogf-body .sgblogf-article-body .rc a.rc-cta-btn.ghost{ background:transparent; border:1px solid rgba(255,255,255,.3); box-shadow:none; }
.rc a.rc-cta-btn:hover, #sgblog-body .prose .rc a.rc-cta-btn:hover, #sgblogf-body .sgblogf-article-body .rc a.rc-cta-btn:hover{ filter:brightness(1.08); color:#fff!important; }

/* Single big-number stat: vertical divider rule + source line, e.g. a cited fine or figure. */
.rc-stat-callout{
  display:grid; grid-template-columns:auto 1fr; gap:0 1.6rem; align-items:center;
  border-top:3px solid var(--rc-navy); border-bottom:1px solid var(--rc-line); padding:1.4rem .25rem; margin:2rem 0;
}
.rc-stat-callout-number{
  font-family:'Anek Latin','Inter',sans-serif!important; font-size:38px!important; font-weight:700!important; color:var(--rc-navy)!important;
  line-height:1!important; white-space:nowrap; padding-right:1.6rem; border-right:1px solid var(--rc-line);
}
.rc-stat-callout-number .tag{ display:block; font-family:'Inter',sans-serif; font-size:13px!important; font-weight:600!important; color:var(--rc-teal-deep)!important; letter-spacing:.04em; margin-top:.2rem!important; }
.rc-stat-callout-label, #sgblog-body .prose .rc .rc-stat-callout-label, #sgblogf-body .sgblogf-article-body .rc .rc-stat-callout-label{ font-size:13.5px!important; color:var(--rc-grey)!important; line-height:1.65!important; margin:0!important; }
.rc-stat-callout-label strong{ color:var(--rc-ink)!important; }
.rc-stat-callout-label a{ font-size:11.5px!important; }

/* Text-only infobox: navy header band + grey body (sibling of .rc-figure, no image). */
.rc-infobox{ border:1px solid var(--rc-line); border-radius:8px; margin:1.8rem 0; font-size:13.5px; line-height:1.75; overflow:hidden; }
.rc-infobox-header{ background:var(--rc-navy); color:rgba(255,255,255,.9)!important; font-weight:700!important; font-size:12px!important; letter-spacing:.1em; text-transform:uppercase; padding:.6rem 1.3rem; }
.rc-infobox-body{ background:var(--rc-card-grey); padding:1.1rem 1.3rem; color:var(--rc-grey)!important; }
.rc-infobox-body strong{ color:var(--rc-ink)!important; }

/* Comparison table, e.g. "before vs after" regulatory expectations. */
.rc-table{ width:100%; border-collapse:collapse; font-size:13.5px!important; margin:2rem 0; border-radius:8px; overflow:hidden; border:1px solid var(--rc-line); }
.rc-table thead tr{ background:var(--rc-navy); }
.rc-table thead th{ padding:.85rem 1.1rem; text-align:left; font-weight:600!important; font-size:13px!important; letter-spacing:.04em; color:#fff!important; }
.rc-table tbody tr{ border-bottom:1px solid var(--rc-line); }
.rc-table tbody tr:last-child{ border-bottom:none; }
.rc-table tbody tr:hover{ background:var(--rc-card-grey); }
.rc-table tbody td{ padding:.8rem 1.1rem; vertical-align:top; line-height:1.6!important; color:var(--rc-grey)!important; }
.rc-table tbody td:first-child{ font-weight:600!important; color:var(--rc-ink)!important; border-right:1px solid var(--rc-line); }
.rc-table .col-old{ color:var(--rc-grey-soft)!important; }
.rc-table .col-new{ color:var(--rc-teal-deep)!important; font-weight:500!important; }

/* Two-column checkmark list, e.g. a set of covered capabilities. */
.rc-benefits{ list-style:none!important; padding:0!important; margin:.75rem 0 1.5rem!important; display:grid; grid-template-columns:1fr 1fr; gap:.5rem; }
.rc-benefits li, #sgblog-body .prose .rc .rc-benefits li, #sgblogf-body .sgblogf-article-body .rc .rc-benefits li{ display:flex; align-items:center; gap:.6rem; font-size:13.5px!important; color:var(--rc-ink)!important; line-height:1.55!important; padding:.4rem .5rem; border-radius:4px; }
.rc-benefits li::before, #sgblog-body .prose .rc .rc-benefits li::before, #sgblogf-body .sgblogf-article-body .rc .rc-benefits li::before{ content:'✓'; width:auto; height:auto; background:none; color:var(--rc-teal-deep); font-weight:700; flex-shrink:0; }

/* Numbered 3-up card grid with a top accent bar, e.g. a set of capabilities/pillars. */
.rc-grid{ display:grid; grid-template-columns:repeat(3,1fr); align-items:start; gap:12px; width:100%; margin:1.4rem 0 2rem; }
.rc-card{ width:100%; border:1px solid var(--rc-line); border-radius:10px; overflow:hidden; background:#fff; transition:box-shadow .2s ease; }
.rc-card:hover{ box-shadow:0 12px 28px -18px rgba(22,41,74,.3); }
.rc-card-bar{ height:4px; background:var(--rc-teal); }
.rc-card-body{ padding:1rem 1.1rem 1.05rem; }
.rc-card-num{ font-size:11px!important; font-weight:700!important; letter-spacing:.1em; color:var(--rc-teal-deep)!important; text-transform:uppercase; margin-bottom:.3rem!important; }
.rc-card strong{ display:block; font-size:13px!important; font-weight:700!important; color:var(--rc-ink)!important; margin:0 0 .3rem!important; line-height:1.35!important; }
.rc-card span{ display:block; font-size:12.5px!important; color:var(--rc-grey)!important; line-height:1.55!important; margin:0!important; }

/* Full-bleed navy stat band: big number + label side by side, e.g. a cited market figure. */
.rc-stat-band{ display:flex; align-items:center; gap:1.4rem; background:linear-gradient(165deg, var(--rc-navy) 0%, var(--rc-navy-deep) 100%); color:#eef2f9; padding:1.3rem 1.8rem; border-radius:8px; margin:2rem 0; }
.rc-stat-band-number{ font-family:'Anek Latin','Inter',sans-serif!important; font-size:40px!important; font-weight:700!important; color:#fff!important; line-height:1!important; white-space:nowrap; }
.rc-stat-band-number span{ color:var(--rc-teal-light)!important; }
.rc-stat-band-label{ font-size:13.5px!important; color:rgba(255,255,255,.72)!important; line-height:1.65!important; }
.rc-stat-band-label strong{ color:#fff!important; }
.rc-stat-band-label a, #sgblog-body .prose .rc-stat-band-label a, #sgblogf-body .sgblogf-article-body .rc-stat-band-label a{ color:rgba(255,255,255,.6)!important; font-size:11.5px!important; text-decoration:underline!important; }
.rc-stat-band-label a:hover, #sgblog-body .prose .rc-stat-band-label a:hover, #sgblogf-body .sgblogf-article-body .rc-stat-band-label a:hover{ color:#fff!important; }

/* Pill tag row, e.g. a set of affected sectors/categories. */
.rc-tags{ display:flex; flex-wrap:wrap; gap:.45rem; margin:.75rem 0 1.5rem; }
.rc-tag{ background:var(--rc-card-grey); color:var(--rc-ink); font-size:12.5px; font-weight:600; padding:.3rem .85rem; border-radius:99px; }

/* Two-column info-cell grid with hairline dividers; add .full to a cell to span both columns. */
.rc-cell-grid{ display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--rc-line); border:1px solid var(--rc-line); border-radius:8px; overflow:hidden; margin:1.2rem 0 2rem; }
.rc-cell{ background:#fff; padding:1.1rem 1.3rem; transition:background .15s ease; }
.rc-cell:hover{ background:var(--rc-card-grey); }
.rc-cell.full{ grid-column:1 / -1; }
.rc-cell strong{ display:block; font-size:13px!important; font-weight:700!important; color:var(--rc-ink)!important; margin:0 0 .25rem!important; }
.rc-cell span{ display:block; font-size:12.5px!important; color:var(--rc-grey)!important; line-height:1.55!important; }

/* Chevron bullet list, e.g. a set of open questions. */
.rc-chevron-list{ list-style:none!important; padding:0!important; margin:.5rem 0 1.5rem!important; display:flex; flex-direction:column; gap:.45rem; }
.rc-chevron-list li, #sgblog-body .prose .rc .rc-chevron-list li, #sgblogf-body .sgblogf-article-body .rc .rc-chevron-list li{ display:flex; align-items:flex-start; gap:.7rem; font-size:14px!important; color:var(--rc-ink)!important; line-height:1.6!important; padding:.5rem .75rem; border-radius:5px; }
.rc-chevron-list li::before, #sgblog-body .prose .rc .rc-chevron-list li::before, #sgblogf-body .sgblogf-article-body .rc .rc-chevron-list li::before{ content:'\203A'; width:auto; height:auto; background:none; color:var(--rc-teal-deep); font-weight:700; font-size:16px; line-height:1.5; flex-shrink:0; }

/* Numbered checklist with a filled circle marker, e.g. a step-by-step plan. */
.rc-checklist{ list-style:none!important; padding:0!important; margin:.75rem 0 1.5rem!important; counter-reset:rc-step; }
.rc-checklist li, #sgblog-body .prose .rc .rc-checklist li, #sgblogf-body .sgblogf-article-body .rc .rc-checklist li{ counter-increment:rc-step; display:flex; align-items:flex-start; gap:.85rem; padding:.65rem .75rem; border-bottom:1px solid var(--rc-line); font-size:14px!important; color:var(--rc-ink)!important; line-height:1.6!important; }
.rc-checklist li:last-child, #sgblog-body .prose .rc .rc-checklist li:last-child, #sgblogf-body .sgblogf-article-body .rc .rc-checklist li:last-child{ border-bottom:none; }
.rc-checklist li::before, #sgblog-body .prose .rc .rc-checklist li::before, #sgblogf-body .sgblogf-article-body .rc .rc-checklist li::before{ content:counter(rc-step); display:flex; align-items:center; justify-content:center; width:22px; min-width:22px; height:22px; background:var(--rc-navy); color:#fff; font-size:11px; font-weight:700; border-radius:50%; flex-shrink:0; margin-top:.15rem; }

/**
 * Every new component below anchors to .rc itself (not just the parent
 * template's own class) as part of its ID-anchor chain, e.g.
 * "#sgblog-body .prose .rc .rc-quote" rather than "#sgblog-body .prose
 * .rc-quote". That third class reliably outranks the ambient prose/article
 * rules' class count regardless of how many element types they chain
 * (blockquote/ul/ol/li/etc.), so it doesn't need re-deriving per component -
 * see the h2/p/a and list-marker comments above for the two ways this can
 * go wrong if skipped.
 */

/* Attributed quote: teal rule + bold statement + name/role citation. */
.rc-quote, #sgblog-body .prose .rc .rc-quote, #sgblogf-body .sgblogf-article-body .rc .rc-quote{
  margin:2rem 0!important; padding:.2rem 0 .2rem 1.4rem!important; border-left:3px solid var(--rc-teal)!important;
  background:none!important; border-radius:0!important;
}
.rc-quote p, #sgblog-body .prose .rc .rc-quote p, #sgblogf-body .sgblogf-article-body .rc .rc-quote p{
  font-family:'Anek Latin','Inter',sans-serif!important; font-size:17px!important; font-weight:600!important; color:var(--rc-ink)!important; line-height:1.5!important; margin:0 0 .8rem!important;
}
.rc-quote cite, #sgblog-body .prose .rc .rc-quote cite, #sgblogf-body .sgblogf-article-body .rc .rc-quote cite{
  display:block; font-style:normal!important; font-size:13px!important; font-weight:700!important; color:var(--rc-navy)!important;
}
.rc-quote cite span{ display:block; font-weight:500!important; color:var(--rc-grey-soft)!important; font-size:12.5px!important; margin-top:.15rem!important; }

/* Generic two-column wrapper - pair it with two .rc-callout boxes, e.g. "About X" / "About Y". */
.rc-two-col{ display:grid; grid-template-columns:1fr 1fr; gap:1.2rem; margin:1.5rem 0 2rem; }
.rc-two-col .rc-callout{ margin:0; }

/* Media/press contact block: uppercase label + stacked plain lines. */
.rc-contact-grid{ display:grid; grid-template-columns:1fr 1fr; gap:1.5rem; margin:1.5rem 0 2rem; padding-top:1.8rem; border-top:1px solid var(--rc-line); }
.rc-contact-label, #sgblog-body .prose .rc .rc-contact-label, #sgblogf-body .sgblogf-article-body .rc .rc-contact-label{ font-size:11px!important; font-weight:700!important; letter-spacing:.1em; text-transform:uppercase; color:var(--rc-grey-soft)!important; margin:0 0 .8rem!important; }
.rc-contact-line, #sgblog-body .prose .rc .rc-contact-line, #sgblogf-body .sgblogf-article-body .rc .rc-contact-line{ font-size:13.5px!important; color:var(--rc-grey)!important; line-height:1.7!important; margin:0!important; }

@media (max-width:680px){
  .rc-speaker-card, .rc-speaker-card.reverse, .rc-speaker-duo{ grid-template-columns:1fr; }
  .rc-speaker-card .rc-speaker-photo-wrap, .rc-speaker-card .rc-speaker-info,
  .rc-speaker-duo .rc-speaker-duo-photo-wrap, .rc-speaker-duo .rc-speaker-duo-info{ grid-column:1; grid-row:auto; }
  .rc-speaker-card.reverse .rc-speaker-photo-wrap{ order:0; }
  .rc-speaker-card.reverse .rc-speaker-info{ order:1; }
  .rc-speaker-photo-wrap, .rc-speaker-duo-photo-wrap{ min-height:220px; }
  .rc-speaker-info, .rc-speaker-duo-info{ padding:1.2rem 1.3rem; }
  .rc h2{ font-size:19px!important; margin:2rem 0 .8rem!important; }
  .rc-download{ display:flex; width:100%; justify-content:center; box-sizing:border-box; }
  .rc-gallery-grid{ grid-template-columns:repeat(2,1fr); }
  .rc-next-event{ padding:1.4rem 1.2rem; }
  .rc-next-title{ font-size:20px!important; }
  .rc-next-btn{ display:flex; justify-content:center; width:100%; box-sizing:border-box; }
  .rc-lede{ font-size:16px!important; }
  .rc-diagram{ padding:2rem 1.2rem; }
  .rc-diagram h2{ font-size:18px!important; }
  .rc-callout{ padding:1.6rem 1.3rem; }
  .rc-callout h3{ font-size:18px!important; }
  .rc-cta{ padding:1.6rem 1.3rem 1.8rem; }
  .rc-cta-grid{ grid-template-columns:1fr; }
  .rc-cta-title{ font-size:19px!important; }
  .rc-pullquote{ font-size:14.5px!important; }
  .rc-grid{ grid-template-columns:1fr 1fr; }
  .rc-benefits{ grid-template-columns:1fr; }
  .rc-stat-callout{ grid-template-columns:1fr; }
  .rc-stat-callout-number{ border-right:none; border-bottom:1px solid var(--rc-line); padding:0 0 1rem; }
  .rc-table{ font-size:12.5px!important; display:block; overflow-x:auto; -webkit-overflow-scrolling:touch; border-radius:8px; }
  .rc-cell-grid{ grid-template-columns:1fr; }
  .rc-stat-band{ flex-direction:column; align-items:flex-start; gap:.6rem; }
  .rc-stat-band-number{ font-size:28px!important; }
  .rc-two-col{ grid-template-columns:1fr; }
  .rc-contact-grid{ grid-template-columns:1fr; gap:1.6rem; }
}
@media (max-width:420px){
  .rc-grid{ grid-template-columns:1fr; }
}
