/* Saved HTML and Gutenberg share scoped typography; no global heading overrides. */
.content-body { min-width: 0; margin-top: 50px; font-size: 16px; font-weight: 400; line-height: 1.9; overflow-wrap: anywhere; }
.content-body > :first-child, .content-body > .post-magazine > :first-child { margin-top: 0; }
.content-body p { margin: 0 0 20px; }
.content-body :is(h2,h3,h4,h5,h6) { max-width: 100%; scroll-margin-top: 100px; overflow-wrap: anywhere; }
.content-body :is(h2,.title01) { display: block; margin: 50px 0 20px; padding: 24px 25px; border-radius: 12px; color: #15345c; background: #edf5ff; font-size: 28px; font-weight: 700; line-height: 1.5; }
.content-body :is(h3,.title02) { position: relative; margin: 50px 0 20px; padding: 8px 0 8px 20px; color: #15345c; font-size: 22px; font-weight: 700; line-height: 1.6; }
.content-body :is(h3,.title02)::before { position: absolute; inset: 8px auto 8px 0; width: 4px; border-radius: 2px; background: linear-gradient(90deg,#2792fd,#034afe); content: ''; }
.content-body :is(h4,.title03) { margin: 20px 0 10px; padding-left: 10px; border-left: 4px solid #fe4e06; font-size: 16px; font-weight: 700; line-height: 1.5; }
.content-body :is(h5,h6) { margin: 20px 0 10px; font-size: 16px; line-height: 1.5; }
.content-body :is(ul,ol) { display: block; margin: 15px 0 20px; padding-left: 1.6em; }
.content-body ul { list-style: disc; }
.content-body ol { list-style: decimal; }
.content-body li { margin-block: 6px; }
.content-body li > :is(ul,ol) { margin-block: 5px; }
.content-body :is(strong,b) { font-weight: 700; }
.content-body em { font-style: italic; }
.content-body a { color: #1262dc; text-decoration: underline; text-underline-offset: .14em; }
.content-body :is(img,video,iframe,figure,.wp-caption,.wp-block-image) { max-width: 100%; }
.content-body img { height: auto; }
.content-body figure { margin: 30px auto; }
.content-body :is(figcaption,.wp-caption-text) { margin-top: 10px; color: #677c95; font-size: 14px; text-align: center; }
.content-body blockquote { margin: 25px 0; padding: 15px 20px; border-left: 4px solid #dce7f4; background: #f7faff; }
.content-body blockquote > :last-child { margin-bottom: 0; }
.content-body iframe[src*="youtube"], .content-body iframe[src*="vimeo"] { width: 100%; height: auto; aspect-ratio: 16/9; }
.content-body .content-table-scroll, .content-body .wp-block-table { max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.content-body .content-table-scroll { margin: 25px 0; }
.content-body table { width: 100%; border-collapse: collapse; border: 1px solid #dce7f4; font-size: 15px; line-height: 1.7; }
.content-body :is(td,th) { min-width: 5em; padding: 12px; border: 1px solid #dce7f4; text-align: left; vertical-align: top; overflow-wrap: normal; }
.content-body th { color: #15345c; background: #edf5ff; font-weight: 700; }
.content-body td p { margin: 0; }
.content-body caption { padding: 8px; font-weight: 700; text-align: left; }
.content-body .frame { padding: 15px; border: 1px solid #dce7f4; }
.content-body .width50 { width: 50%; }
.content-body .mb20 { margin-bottom: 20px; }
.content-body .mb10 { margin-bottom: 10px; }
.content-body .mt30 { margin-top: 30px; }
.content-body .aligncenter { margin-inline: auto; }
.content-body .alignleft { float: left; margin: 0 20px 20px 0; }
.content-body .alignright { float: right; margin: 0 0 20px 20px; }
.content-body::after { display: block; clear: both; content: ''; }
/* Visual overrides only. Keep saved legacy classes, heading levels and runtime IDs. */
.content-page--magazine.content-page--single .magazine-article-content :is(h2,h3) {
  position: relative;
  display: block;
  margin: 50px 0 20px;
  padding: 8px 0 8px 20px;
  border: 0;
  border-radius: 0;
  color: #15345c;
  background: transparent;
  font-size: 22px;
  font-weight: 700;
  line-height: 1.6;
}
.content-page--magazine.content-page--single .magazine-article-content :is(h2,h3)::before {
  position: absolute;
  inset: 8px auto 8px 0;
  width: 4px;
  border-radius: 2px;
  background: linear-gradient(90deg,#2792fd,#034afe);
  content: '';
}
.content-page--magazine.content-page--single .magazine-article-content h4 {
  margin: 20px 0 10px;
  padding: 0 0 0 10px;
  border: 0;
  border-left: 4px solid #fe4e06;
  border-radius: 0;
  color: #292929;
  background: transparent;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.5;
}
.content-page--magazine.content-page--single .magazine-article-content h4::before { content: none; }
/* In sectioned articles, semantic H3s are the Figma H4-level subheadings. */
.content-page--magazine.content-page--single .magazine-article-content--sectioned h3 {
  margin: 20px 0 10px;
  padding: 0 0 0 10px;
  border: 0;
  border-left: 4px solid #fe4e06;
  border-radius: 0;
  color: #292929;
  background: transparent;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.5;
}
.content-page--magazine.content-page--single .magazine-article-content--sectioned h3::before { content: none; }
/* Legacy anchors contain inline colors; override only their visual color, not saved HTML. */
.content-page--magazine.content-page--single .magazine-article-content a { color: #034afe !important; }
@media (min-width: 600px) {
  /* Current PC Figma body is 16px/1.5. Tables keep their explicit 15px/1.7. */
  .content-page--magazine.content-page--single .magazine-article-content { line-height: 1.5; }
}
@media (max-width: 599px) {
  .content-body { margin-top: 35px; }
  .content-body :is(h2,.title01) { padding: 20px 16px; font-size: 22px; }
  .content-body :is(h3,.title02) { font-size: 20px; }
  .content-body :is(h2,h3,h4,h5,h6) { scroll-margin-top: 75px; }
  .content-body table { min-width: 500px; }
  .content-body :is(.alignleft,.alignright) { float: none; margin: 20px auto; }
  .content-page--magazine.content-page--single .magazine-article-content :is(h2,h3) { font-size: 20px; }
  .content-page--magazine.content-page--single .magazine-article-content--sectioned h3 { font-size: 16px; }
}
