/*
 * bobnoblog article design and conservative Cocoon content compatibility.
 * Scope to post/page reading surfaces; no homepage or admin styles affected.
 * This is display-only: it does not rewrite published post_content.
 */
.content-page__paper .content-page__body {
  max-width: 800px;
  font-size: clamp(15px, 1.15vw, 16px);
  line-height: 2.05;
  color: #26394a;
  overflow-wrap: break-word;
  word-break: normal;
}
.content-page__paper .entry-content { min-width: 0; }
.content-page__paper .entry-content > :first-child { margin-top: 0; }
.content-page__paper .entry-content > :last-child { margin-bottom: 0; }
.content-page__paper .entry-content :where(p, ul, ol) { margin-block: 0 1.6em; }
.content-page__paper .entry-content :where(ul, ol) { padding-inline-start: 1.6em; }
.content-page__paper .entry-content li { padding-inline-start: .15em; }
.content-page__paper .entry-content li + li { margin-block-start: .5em; }

/* Long-form editorial headings. Existing heading IDs remain untouched for the TOC plugin. */
.content-page__paper .entry-content h2 {
  margin: 2.25em 0 1em;
  padding: 16px 18px;
  border: 0;
  border-left: 5px solid #2587d4;
  border-radius: 0 11px 11px 0;
  background: #eaf4fc;
  color: #15344e;
  font-size: clamp(21px, 2.2vw, 27px);
  line-height: 1.5;
  letter-spacing: -.02em;
}
.content-page__paper .entry-content h3 {
  margin: 2em 0 .9em;
  padding: 0 0 10px;
  border-bottom: 2px solid #cfe4f3;
  color: #15344e;
  font-size: clamp(18px, 1.8vw, 22px);
  line-height: 1.5;
}
.content-page__paper .entry-content h4 {
  margin: 1.8em 0 .7em;
  padding-left: 12px;
  border-left: 3px solid #61a9e2;
  color: #1b3c54;
  font-size: 17px;
}
.content-page__paper .entry-content :where(h2,h3,h4)[id] { scroll-margin-top: 105px; }

/* Keep uploaded media within the reading column. Preserve native image ratios. */
.content-page__paper .entry-content :where(img, video, iframe, svg, embed, object) {
  max-width: 100%;
}
.content-page__paper .entry-content img { height: auto; }
.content-page__paper .entry-content :where(figure, .wp-block-image, .wp-caption) {
  max-width: 100%;
  margin-block: 1.65em;
}
.content-page__paper .entry-content .wp-block-image:not(:has(.alignleft, .alignright)),
.content-page__paper .entry-content figure:not(.alignleft):not(.alignright),
.content-page__paper .entry-content .wp-caption:not(.alignleft):not(.alignright) {
  margin-inline: auto;
}
.content-page__paper .entry-content figure:not(.alignleft):not(.alignright) > img,
.content-page__paper .entry-content .wp-caption > img,
.content-page__paper .entry-content p > img:not(.alignleft):not(.alignright),
.content-page__paper .entry-content p > a > img:not(.alignleft):not(.alignright) {
  margin-inline: auto;
}
.content-page__paper .entry-content img:not(.speech-icon-image) { border-radius: 9px; }
.content-page__paper .entry-content :where(figcaption, .wp-caption-text) {
  font-size: 12px;
  color: #62778a;
  text-align: center;
  line-height: 1.65;
  margin-top: 8px;
}
/* Unlike a thumbnail crop, a featured infographic must not lose its text. */
.content-page__paper .entry-featured-image {
  margin: 18px auto 32px;
  max-width: 800px;
}
.content-page__paper .entry-featured-image img {
  width: auto;
  height: auto;
  max-height: min(440px, 60vh);
  max-width: 100%;
  object-fit: contain;
  margin-inline: auto;
}
.content-page__paper .entry-content :where(.alignleft, figure.alignleft, img.alignleft) {
  float: left;
  margin: .45em 1.5em 1.2em 0;
}
.content-page__paper .entry-content :where(.alignright, figure.alignright, img.alignright) {
  float: right;
  margin: .45em 0 1.2em 1.5em;
}
.content-page__paper .entry-content .aligncenter { display: block; margin-inline: auto; }
.content-page__paper .entry-content :where(.wp-block-gallery,.blocks-gallery-grid) {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.content-page__paper .entry-content :where(.wp-block-gallery,.blocks-gallery-grid) > * { min-width: 0; }
.content-page__paper .entry-content .wp-block-gallery figure { margin: 0; }
.content-page__paper .entry-content .wp-block-embed iframe { width: 100%; }

/* Recreate the Cocoon speech balloon used in existing articles.
 * This works when the legacy block saved its HTML to post_content.
 */
.content-page__paper .entry-content .speech-wrap {
  display: flex;
  align-items: flex-start;
  flex-wrap: nowrap;
  gap: 18px;
  clear: both;
  margin: 28px 0 34px;
  max-width: 100%;
  min-width: 0;
}
.content-page__paper .entry-content .speech-wrap.sbp-r { flex-direction: row-reverse; }
.content-page__paper .entry-content .speech-wrap .speech-person {
  width: 96px;
  max-width: 96px;
  flex: 0 0 96px;
  margin: 0;
  text-align: center;
}
.content-page__paper .entry-content .speech-wrap .speech-icon {
  width: 82px;
  height: 82px;
  margin: 0 auto 6px;
  padding: 0;
  overflow: hidden;
  background: #f0f5fa;
  border-radius: 50%;
  border: 2px solid #d9e7f2;
}
.content-page__paper .entry-content .speech-wrap .speech-icon img {
  width: 100%;
  height: 100%;
  max-width: 100%;
  object-fit: contain;
  border-radius: 50%;
  margin: 0;
}
.content-page__paper .entry-content .speech-wrap .speech-name {
  display: block;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.5;
  color: #526e83;
  text-align: center;
  overflow-wrap: anywhere;
}
.content-page__paper .entry-content .speech-wrap .speech-balloon {
  position: relative;
  flex: 1 1 0;
  min-width: 0;
  min-height: 80px;
  padding: 15px 21px;
  border-radius: 12px;
  border: 1px solid #c9ddea;
  background: #f2f8fd;
  color: #233e55;
  box-shadow: 0 4px 16px rgba(20, 56, 82, .04);
  font-size: .96em;
  line-height: 1.85;
}
.content-page__paper .entry-content .speech-wrap .speech-balloon::before {
  content: "";
  position: absolute;
  top: 29px;
  left: -9px;
  width: 15px;
  height: 15px;
  transform: rotate(45deg);
  border-left: 1px solid #c9ddea;
  border-bottom: 1px solid #c9ddea;
  background: #f2f8fd;
}
.content-page__paper .entry-content .speech-wrap.sbp-r .speech-balloon::before {
  left: auto;
  right: -9px;
  border: 0;
  border-right: 1px solid #c9ddea;
  border-top: 1px solid #c9ddea;
}
.content-page__paper .entry-content .speech-wrap .speech-balloon > :first-child { margin-top: 0; }
.content-page__paper .entry-content .speech-wrap .speech-balloon > :last-child { margin-bottom: 0; }

/* Old Cocoon-style info boxes and columns: display compatibility only. */
.content-page__paper .entry-content :where(.blank-box, .information-box, .info-box, .primary-box, .secondary-box, .success-box, .alert-box, .warning-box, .danger-box) {
  margin-block: 1.6em;
  padding: 17px 21px;
  border: 1px solid #cfe0ee;
  border-left: 4px solid #4e9fdc;
  border-radius: 10px;
  background: #f0f7fc;
  color: #203c52;
}
.content-page__paper .entry-content :where(.success-box) { border-left-color: #39a179; background: #f0faf5; }
.content-page__paper .entry-content :where(.alert-box, .warning-box, .danger-box) { border-left-color: #d28b37; background: #fff8e9; }
.content-page__paper .entry-content .column-wrap {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  margin-block: 1.6em;
}
.content-page__paper .entry-content .column-wrap.column-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.content-page__paper .entry-content .column-wrap.column-2-3-1-2 { grid-template-columns: minmax(0,1fr) minmax(0,2fr); }
.content-page__paper .entry-content .column-wrap.column-2-3-2-1 { grid-template-columns: minmax(0,2fr) minmax(0,1fr); }
.content-page__paper .entry-content .column-wrap > * { min-width: 0; }
.content-page__paper .entry-content .blogcard,
.content-page__paper .entry-content .blogcard-wrap {
  display: block;
  max-width: 100%;
  padding: 16px;
  border: 1px solid #d2e1ec;
  border-radius: 12px;
  background: #f8fbfd;
  color: #1f3c51;
  overflow-wrap: anywhere;
}
.content-page__paper .entry-content .blogcard img { float: none; }
.content-page__paper .entry-content :where(.marker-under, .marker) { background: linear-gradient(transparent 65%, #fff3ad 65%); }

/* Controls, tables and code in long legacy posts. */
.content-page__paper .entry-content .wp-block-table { overflow-x: auto; }
.content-page__paper .entry-content table { margin-block: 1.5em; }
.content-page__paper .entry-content :where(pre, .wp-block-preformatted) { overflow-x: auto; }
.content-page__paper .entry-content .wp-block-code code { background: transparent; }
.content-page__paper .entry-content :where(.alignwide,.alignfull) { max-width: 100%; }
.content-page__paper .entry-content :where(.wp-block-columns,.wp-block-group) { min-width: 0; }
.content-page__paper .entry-content :where(.wp-block-columns) > * { min-width: 0; }

@media (max-width: 700px) {
  .content-page__paper { padding: 22px 18px 32px; }
  .content-page__paper .content-page__body { font-size: 15px; line-height: 1.93; }
  .content-page__paper .entry-content h2 { padding: 13px 14px; }
  .content-page__paper .entry-content h3 { margin-top: 1.8em; }
  .content-page__paper .entry-content .speech-wrap { gap: 10px; }
  .content-page__paper .entry-content .speech-wrap .speech-person { flex-basis: 60px; max-width: 60px; width: 60px; }
  .content-page__paper .entry-content .speech-wrap .speech-icon { width: 58px; height: 58px; }
  .content-page__paper .entry-content .speech-wrap .speech-name { font-size: 10px; }
  .content-page__paper .entry-content .speech-wrap .speech-balloon { padding: 12px 13px; }
  .content-page__paper .entry-content .column-wrap,
  .content-page__paper .entry-content .column-wrap.column-3,
  .content-page__paper .entry-content .column-wrap.column-2-3-1-2,
  .content-page__paper .entry-content .column-wrap.column-2-3-2-1 { grid-template-columns: minmax(0,1fr); }
  .content-page__paper .entry-content :where(.wp-block-gallery,.blocks-gallery-grid) { gap: 8px; }
  .content-page__paper .entry-content :where(.alignleft,.alignright) { float: none; margin: 1em auto; }
}


/* v1.1.2 | Editorial links, legacy cards and previous/next navigation.
   Front-end post/page scope; does not alter WordPress post data. */
.content-page__paper .entry-content a:not(.blogcard-wrap):not(.wp-block-button__link):not(.btn):not(.button) {
  color: #0966ae;
  text-decoration: underline;
  text-decoration-color: #8abfe8;
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
  text-decoration-skip-ink: auto;
  transition: color .16s ease, text-decoration-color .16s ease;
}
.content-page__paper .entry-content a:not(.blogcard-wrap):not(.wp-block-button__link):not(.btn):not(.button):hover {
  color: #06406f;
  text-decoration-color: #06406f;
}
.content-page__paper .entry-content :where(a, code) { overflow-wrap: anywhere; }
.content-page__paper .entry-content a:focus-visible { outline: 3px solid #1b7bc2; outline-offset: 3px; }

/* WordPress's own responsive embed frame. The iframe's INSIDE content is
   controlled by the embed provider; we style only its exterior. */
.content-page__paper .entry-content :where(.wp-block-embed, .wp-embedded-content, .wp-block-embed__wrapper) {
  max-width: 100%;
}
.content-page__paper .entry-content .wp-block-embed {
  margin: 28px auto;
  max-width: 690px;
  overflow: hidden;
  border: 1px solid #d0e0eb;
  border-radius: 15px;
  background: #fff;
  box-shadow: 0 12px 30px rgba(22, 55, 80, .07);
}
.content-page__paper .entry-content .wp-block-embed .wp-block-embed__wrapper {
  line-height: 0;
}
.content-page__paper .entry-content .wp-block-embed iframe,
.content-page__paper .entry-content iframe.wp-embedded-content {
  display: block;
  box-sizing: border-box;
  max-width: 100%;
  width: 100%;
  border: 0;
}
.content-page__paper .entry-content .wp-block-embed figcaption {
  padding: 3px 12px 12px;
  margin-top: 0;
}

/* Cocoon blog cards saved as HTML in post_content. */
.content-page__paper .entry-content a.blogcard-wrap,
.content-page__paper .entry-content .blogcard-wrap {
  display: block;
  max-width: 690px;
  margin: 27px auto;
  color: #18354c;
  text-decoration: none;
  border-radius: 14px;
  border: 1px solid #cedfeb;
  background: #fff;
  box-shadow: 0 10px 25px rgba(20, 55, 85, .06);
  overflow: hidden;
  transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
.content-page__paper .entry-content a.blogcard-wrap:hover {
  border-color: #81b6e3;
  transform: translateY(-2px);
  box-shadow: 0 15px 30px rgba(20, 55, 85, .11);
}
.content-page__paper .entry-content .blogcard-wrap .blogcard {
  display: grid;
  align-items: start;
  grid-template-columns: minmax(105px, 180px) minmax(0, 1fr);
  column-gap: 18px;
  row-gap: 4px;
  margin: 0;
  padding: 14px;
  max-width: none;
  border: 0;
  border-radius: 0;
  background: none;
  box-shadow: none;
}
.content-page__paper .entry-content .blogcard-wrap .blogcard-thumbnail {
  float: none;
  grid-row: 1 / span 3;
  width: 100%;
  max-width: none;
  margin: 0;
  aspect-ratio: 16 / 10;
  border-radius: 9px;
  overflow: hidden;
  background: #e8f2f9;
}
.content-page__paper .entry-content .blogcard-wrap .blogcard-thumbnail img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 0;
}
.content-page__paper .entry-content .blogcard-wrap .blogcard-label { display: none; }
.content-page__paper .entry-content .blogcard-wrap .blogcard-content {
  min-width: 0;
  width: auto;
  max-width: none;
  min-height: 0;
  max-height: none;
  padding: 0;
  margin: 0;
  overflow: visible;
}
.content-page__paper .entry-content .blogcard-wrap .blogcard-title {
  font-size: clamp(15px, 1.65vw, 18px);
  font-weight: 700;
  line-height: 1.6;
  color: #14364f;
  margin: 0 0 7px;
}
.content-page__paper .entry-content .blogcard-wrap .blogcard-snippet {
  font-size: 12px;
  line-height: 1.65;
  color: #5b7285;
  margin: 0;
}
.content-page__paper .entry-content .blogcard-wrap .blogcard-footer {
  grid-column: 2;
  margin: 0;
  padding: 0;
  font-size: 11px;
  color: #51718b;
}
.content-page__paper .entry-content .blogcard-wrap .blogcard-footer img {
  display: inline-block;
  width: 16px;
  height: 16px;
  vertical-align: middle;
}


@media (max-width: 640px) {
  .content-page__paper .entry-content .blogcard-wrap .blogcard { grid-template-columns: 106px minmax(0, 1fr); gap: 8px 12px; padding: 11px; }
  .content-page__paper .entry-content .blogcard-wrap .blogcard-thumbnail { aspect-ratio: 1 / 1; }
  .content-page__paper .entry-content .blogcard-wrap .blogcard-title { font-size: 13px; }
  .content-page__paper .entry-content .blogcard-wrap .blogcard-snippet { font-size: 11px; }
  .content-page__paper .entry-content .blogcard-wrap .blogcard-footer { font-size: 10px; }
}
@media (prefers-reduced-motion: reduce) {
  .content-page__paper .entry-content a.blogcard-wrap { transition: none; }
  .content-page__paper .entry-content a.blogcard-wrap:hover { transform: none; }
}

/* v2.0.1: avoid accidental enlargement of large legacy article images.
   Only affect non-aligned standalone post images; thumbnail grids and
   speech-balloon icons intentionally keep their own sizing. */
.content-page__paper .entry-content > p > img:not(.alignleft):not(.alignright),
.content-page__paper .entry-content > p > a > img:not(.alignleft):not(.alignright),
.content-page__paper .entry-content > figure.wp-block-image:not(.alignwide):not(.alignfull) img,
.content-page__paper .entry-content > .wp-block-image:not(.alignwide):not(.alignfull) img {
  width: auto;
  max-width: min(100%, 700px);
  max-height: 520px;
  height: auto;
  object-fit: contain;
}
.content-page__paper .entry-content > figure.wp-block-image:not(.alignwide):not(.alignfull) img,
.content-page__paper .entry-content > .wp-block-image:not(.alignwide):not(.alignfull) img {
  margin-inline: auto;
}
@media (max-width: 600px) {
  .content-page__paper .entry-content > p > img:not(.alignleft):not(.alignright),
  .content-page__paper .entry-content > p > a > img:not(.alignleft):not(.alignright),
  .content-page__paper .entry-content > figure.wp-block-image:not(.alignwide):not(.alignfull) img,
  .content-page__paper .entry-content > .wp-block-image:not(.alignwide):not(.alignfull) img {
    max-height: 430px;
  }
}
