@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap');

:root{
  --brand-primary:#104466;
  --brand-accent:#ce1021;
  --brand-text:#0d354f;
  --line:#e5eaef;
  --radius:12px;
  --s-3:10px; --s-4:14px; --s-5:18px; --s-6:24px; --s-7:32px; --s-8:48px;
}

html, body{
  font-family: Roboto, system-ui, -apple-system, Segoe UI, Arial, sans-serif;
  color: var(--brand-text);
  background:#fff;
  line-height:1.6;
}

img{ max-width:100%; height:auto; }
a{ color:inherit; }

/* ===== Layout ===== */
.cxr-insights-shell{ background:#fff; }

.cxr-insights-container{
  max-width: 1140px;
  margin: 0 auto;
  padding: 0 24px;
}

@media (max-width:900px){
  .cxr-insights-container{ padding: 0 20px; }
}


.cxr-insights-main{
  padding: 48px 0 56px;
}

/* ===== Header (match manual) ===== */
.cxr-insights-header{
  background:#fff;
  border-bottom:1px solid rgba(0,0,0,.06);
}

.cxr-insights-header .cxr-insights-container{
  padding: 20px 0;
}

.cxr-insights-header-row{
  display:flex;
  align-items:flex-start;
  gap:12px;
}

.cxr-insights-brandmark{
  height: 40px;
  width: auto;
  max-width: none;
  max-height: 40px;
  display:block;
  object-fit:contain;
  flex: 0 0 auto;
}

.cxr-insights-header-stack{
  display:flex;
  flex-direction:column;
  gap:8px;
  align-items:flex-start;
  padding-top:5px;
}

.cxr-insights-brandtitle{
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #8a8f94;
  line-height: 1.2;
  margin: 0;
}

.cxr-insights-breadcrumbs{
  font-size: 13px;
  line-height: 1.2;
  margin: 0;
  color: #0d354f;
}

.cxr-insights-breadcrumbs a{
  color: var(--brand-primary);
  text-decoration: none;
}

.cxr-insights-breadcrumbs a:hover{
  text-decoration: underline;
}

.cxr-insights-breadcrumbs span[aria-hidden="true"]{
  color:#8a8f94;
}

/* ===== Typography ===== */
h1{
  font-size: 2.2rem;
  line-height: 1.2;
  margin: 0 0 var(--s-4);
  font-weight: 700;
}

h2{
  font-size: 1.55rem;
  margin: var(--s-7) 0 var(--s-4);
  font-weight: 700;
  line-height: 1.3;
}

h3{
  font-size: 1.2rem;
  margin: var(--s-6) 0 var(--s-3);
  font-weight: 700;
  line-height: 1.3;
}

p{ margin:0; }

/* Reduce awkward gap between header and first heading */
.cxr-insights__article > header,
.cxr-insights__header{
  margin-top: 0;
  padding-top: 0;
}

.cxr-insights__title{
  margin-top: 0;
}


/* ===== Gutenberg rhythm ===== */
.cxr-insights__content > * + *,
.cxr-insights-content > * + *{
  margin-top: 1.25rem;
}

.cxr-insights__content h2,
.cxr-insights-content h2{
  margin-top: 2.75rem;
}

.cxr-insights__content h3,
.cxr-insights-content h3{
  margin-top: 2rem;
}

.cxr-insights__content ul,
.cxr-insights-content ul{
  padding-left: 1.1em;
}

.cxr-insights__content li,
.cxr-insights-content li{
  margin-bottom: .4em;
}

.cxr-insights__content img{
  border-radius:10px;
}

.cxr-insights-main{
  padding-top: 36px;
}


/* ===== Cards / grids (for hubs/landing) ===== */
.card{
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding: var(--s-5);
}

.card.link-card{
  border-left:4px solid var(--brand-primary);
}

.grid-cols-2,
.grid-cols-3{
  display:grid;
  grid-template-columns:1fr;
  gap: var(--s-6);
  margin-top: var(--s-6);
}

@media (min-width:768px){
  .grid-cols-2{ grid-template-columns:repeat(2,1fr); }
  .grid-cols-3{ grid-template-columns:repeat(3,1fr); }
}

/* ===== CTA ===== */
.cta{
  background: var(--brand-primary);
  color:#fff;
  padding: var(--s-7) var(--s-6);
  border-radius: var(--radius);
  text-align:center;
}

.cta h2, .cta h3{
  color:#fff;
  margin-top:0;
}

.cta p{ color:#fff; opacity:.9; }

.cta.light{
  background:#fff;
  color: var(--brand-primary);
  border:2px solid var(--brand-accent);
  text-align:left;
}

.cta.light h2, .cta.light h3{ color: var(--brand-primary); }
.cta.light p{ color:#2a3e4f; }

/* ===== Footer ===== */
.cxr-insights-footer{
  border-top:1px solid rgba(0,0,0,.06);
  padding: 26px 0 34px;
  background:#fff;
}

.cxr-insights-footnote{
  font-size: 12px;
  line-height: 1.5;
  opacity: .7;
  margin: 0;
}

.cxr-insights-footnote a{
  color:inherit;
  text-decoration: underline;
}
/* =========================================================
   Block Styles for Core Blocks (Gutenberg)
   Apply these to Group blocks in the editor
   ========================================================= */

/* --- shared card padding: apply to INNER container --- */
.wp-block-group.is-style-cxr-card > .wp-block-group__inner-container,
.wp-block-group.is-style-cxr-card-neutral > .wp-block-group__inner-container,
.wp-block-group.is-style-cxr-card-blue > .wp-block-group__inner-container,
.wp-block-group.is-style-cxr-card-red > .wp-block-group__inner-container,
.wp-block-group.is-style-cxr-card-gray > .wp-block-group__inner-container{
  padding: 16px 24px 24px;  /* tighter top */
}

/* Remove top margin from first element inside cards (prevents “floating” headings) */
.wp-block-group.is-style-cxr-card > .wp-block-group__inner-container > *:first-child,
.wp-block-group.is-style-cxr-card-neutral > .wp-block-group__inner-container > *:first-child,
.wp-block-group.is-style-cxr-card-blue > .wp-block-group__inner-container > *:first-child,
.wp-block-group.is-style-cxr-card-red > .wp-block-group__inner-container > *:first-child,
.wp-block-group.is-style-cxr-card-gray > .wp-block-group__inner-container > *:first-child{
  margin-top: 0;
}

/* Base card (white + gray border) */
.wp-block-group.is-style-cxr-card,
.wp-block-group.is-style-cxr-card-neutral{
  background:#fff;
  border:1px solid var(--line);
  border-radius: var(--radius);
}

/* Blue card */
.wp-block-group.is-style-cxr-card-blue{
  background:#fff;
  border:1px solid var(--line);
  border-left:4px solid var(--brand-primary);
  border-radius: var(--radius);
}

/* Red card */
.wp-block-group.is-style-cxr-card-red{
  background:#fff;
  border:2px solid var(--brand-accent);
  border-radius: var(--radius);
}

/* Gray card */
.wp-block-group.is-style-cxr-card-gray{
  background:#f7f9fb;
  border:1px solid var(--line);
  border-radius: var(--radius);
}

/* =========================================================
   Hero band: full-bleed background, constrained inner content
   ========================================================= */

.wp-block-group.is-style-cxr-band-hero{
  background:#f7f9fb;
  border-bottom:1px solid rgba(0,0,0,.04);
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}

/* Inner content matches main Insights container width */
.wp-block-group.is-style-cxr-band-hero > .wp-block-group__inner-container{
  max-width: 1140px;        /* MUST match .cxr-insights-container */
  margin: 0 auto;
  padding: 26px 24px 32px; /* tighter top, comfortable bottom */
}

/* Tighten first heading inside hero band */
.wp-block-group.is-style-cxr-band-hero
> .wp-block-group__inner-container
> h1:first-child,
.wp-block-group.is-style-cxr-band-hero
> .wp-block-group__inner-container
> h2:first-child{
  margin-top: 0;
}


/* Better spacing when cards are stacked */
.wp-block-group.is-style-cxr-card + .wp-block-group.is-style-cxr-card,
.wp-block-group.is-style-cxr-card-neutral + .wp-block-group.is-style-cxr-card-neutral,
.wp-block-group.is-style-cxr-card-blue + .wp-block-group.is-style-cxr-card-blue,
.wp-block-group.is-style-cxr-card-gray + .wp-block-group.is-style-cxr-card-gray,
.wp-block-group.is-style-cxr-card-red + .wp-block-group.is-style-cxr-card-red{
  margin-top: 24px;
}

/* Hide theme-rendered title on Insight pages (use an H1 block in hero band instead) */
.single-insight .cxr-insights__title{
  display:none;
}

/* If the first block is the hero band, remove the default main top padding */
.single-insight .cxr-insights-main{
  padding-top: 0;
}

.page-id-200533 .cxr-insights-main{
  padding-top: 0;
}

.page-template-page-insights .cxr-insights-main{
  padding-top: 0;
}

/* Remove top gap under header on the Insights landing page too */
.page-id-0 .cxr-insights-main{ padding-top: 0; } /* placeholder */
.page-insights .cxr-insights-main{ padding-top: 0; }
.page-slug-insights .cxr-insights-main{ padding-top: 0; }


/* =========================================================
   Coming Soon overlay (Group style)
   ========================================================= */

.wp-block-group.is-style-cxr-card-blue-coming-soon{
  position: relative;
  background:#fff;
  border:1px solid var(--line);
  border-left:4px solid var(--brand-primary);
  border-radius: var(--radius);
}

/* keep padding on inner container consistent with other cards */
.wp-block-group.is-style-cxr-card-blue-coming-soon > .wp-block-group__inner-container{
  padding: 16px 24px 24px;
}

/* overlay */
.wp-block-group.is-style-cxr-card-blue-coming-soon::after{
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(255,255,255,0.72);
  border-radius: var(--radius);
  pointer-events: none;
}

/* label */
.wp-block-group.is-style-cxr-card-blue-coming-soon::before{
  content: "Coming soon";
  position: absolute;
  top: 14px;
  right: 14px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #ffffff;
  background: var(--brand-primary);
  padding: 8px 10px;
  border-radius: 999px;
  z-index: 2;
}

/* disable clicks inside (so linked text/buttons don’t mislead) */
.wp-block-group.is-style-cxr-card-blue-coming-soon a,
.wp-block-group.is-style-cxr-card-blue-coming-soon button{
  pointer-events: none;
}
/* =========================================================
   TaxoPress – Related Content block (matches CXR cards)
   Markup uses:
   .taxopress-output-wrapper
   ul.st-related-posts
   Links include inline style color/font-size, so we override with !important
   ========================================================= */

/* Tighten top spacing inside the CXR card when TaxoPress is inside */
.wp-block-group.is-style-cxr-card-neutral .taxopress-output-wrapper,
.wp-block-group.is-style-cxr-card-blue .taxopress-output-wrapper,
.wp-block-group.is-style-cxr-card-gray .taxopress-output-wrapper,
.wp-block-group.is-style-cxr-card-red .taxopress-output-wrapper {
  margin-top: 0;
}

/* Heading spacing + sizing */
.wp-block-group.is-style-cxr-card-neutral .taxopress-output-wrapper > h4,
.wp-block-group.is-style-cxr-card-blue .taxopress-output-wrapper > h4,
.wp-block-group.is-style-cxr-card-gray .taxopress-output-wrapper > h4,
.wp-block-group.is-style-cxr-card-red .taxopress-output-wrapper > h4 {
  margin-top: 0;
  margin-bottom: 12px;
  font-size: 1.55rem;
  font-weight: 600;
}

/* List spacing */
.wp-block-group.is-style-cxr-card-neutral .taxopress-output-wrapper ul.st-related-posts,
.wp-block-group.is-style-cxr-card-blue .taxopress-output-wrapper ul.st-related-posts,
.wp-block-group.is-style-cxr-card-gray .taxopress-output-wrapper ul.st-related-posts,
.wp-block-group.is-style-cxr-card-red .taxopress-output-wrapper ul.st-related-posts {
  margin: 0;
  padding-left: 18px;
}

.wp-block-group.is-style-cxr-card-neutral .taxopress-output-wrapper ul.st-related-posts li,
.wp-block-group.is-style-cxr-card-blue .taxopress-output-wrapper ul.st-related-posts li,
.wp-block-group.is-style-cxr-card-gray .taxopress-output-wrapper ul.st-related-posts li,
.wp-block-group.is-style-cxr-card-red .taxopress-output-wrapper ul.st-related-posts li {
  margin-bottom: 10px;
}

/* TaxoPress related links (override inline styles) */
.wp-block-group.is-style-cxr-card-neutral .taxopress-output-wrapper ul.st-related-posts a,
.wp-block-group.is-style-cxr-card-blue .taxopress-output-wrapper ul.st-related-posts a,
.wp-block-group.is-style-cxr-card-gray .taxopress-output-wrapper ul.st-related-posts a,
.wp-block-group.is-style-cxr-card-red .taxopress-output-wrapper ul.st-related-posts a {
  color: #ce1021 !important;
  font-size: 1rem !important;
  font-weight: 400 !important;
  text-decoration: none;
}

.wp-block-group.is-style-cxr-card-neutral .taxopress-output-wrapper ul.st-related-posts a:hover,
.wp-block-group.is-style-cxr-card-blue .taxopress-output-wrapper ul.st-related-posts a:hover,
.wp-block-group.is-style-cxr-card-gray .taxopress-output-wrapper ul.st-related-posts a:hover,
.wp-block-group.is-style-cxr-card-red .taxopress-output-wrapper ul.st-related-posts a:hover {
  color: #a80d1b !important;
  text-decoration: underline;
}

/* =========================================================
   Restore paragraph spacing for Insights content
   ========================================================= */

.cxr-insights-main p {
  margin-top: 0;
  margin-bottom: 1.1em;
}

.cxr-insights-main p:last-child {
  margin-bottom: 0;
}

/* Gutenberg sometimes nests paragraphs */
.cxr-insights-main .wp-block-group p {
  margin-bottom: 1.1em;
}