/* Blog article layout and spacing.
   Typography is inherited from the site's existing theme. */

main#primary.site-main:has(> article.blog_post) {
	box-sizing: border-box;
	width: min(calc(100% - 2 * clamp(1rem, 4vw, 2.5rem)), var(--container-max, 1300px));
	margin-inline: auto;
	padding-block: clamp(2rem, 5vw, 4rem) clamp(3rem, 6vw, 5rem);
}

main#primary.site-main > article.blog_post {
	min-width: 0;
}

main#primary.site-main > article.blog_post .entry-header {
	margin: 0 0 clamp(1.5rem, 3vw, 2.5rem);
	padding: 0 0 clamp(1rem, 2vw, 1.5rem);
	border-bottom: 1px solid rgb(0 0 0 / 12%);
}

main#primary.site-main > article.blog_post .entry-title {
	max-width: 28ch;
	margin: 0;
	text-wrap: balance;
}

main#primary.site-main > article.blog_post .entry-content {
	margin-inline: auto;
}

main#primary.site-main > article.blog_post .entry-content > * {
	max-width: 100%;
}

main#primary.site-main > article.blog_post .entry-content > p {
	margin-block: 0 1.25em;
}

main#primary.site-main > article.blog_post .entry-content > h2,
main#primary.site-main > article.blog_post .entry-content > h3,
main#primary.site-main > article.blog_post .entry-content > h4 {
	margin-block: 2em 0.65em;
	text-wrap: balance;
}

main#primary.site-main > article.blog_post .entry-content > h2:first-child,
main#primary.site-main > article.blog_post .entry-content > h3:first-child,
main#primary.site-main > article.blog_post .entry-content > h4:first-child {
	margin-top: 0;
}

main#primary.site-main > article.blog_post .entry-content a {
	text-underline-offset: 0.15em;
	text-decoration-thickness: 1px;
}

main#primary.site-main > article.blog_post .entry-content a:hover {
	text-decoration-thickness: 2px;
}

main#primary.site-main > article.blog_post .entry-content img,
main#primary.site-main > article.blog_post .entry-content video,
main#primary.site-main > article.blog_post .entry-content iframe {
	max-width: 100%;
}

main#primary.site-main > article.blog_post .entry-content img {
	height: auto;
	border-radius: 0.25rem;
}

main#primary.site-main > article.blog_post .entry-content figure {
	margin: 2rem 0;
}

main#primary.site-main > article.blog_post .entry-content blockquote {
	margin: 1.75rem 0;
	padding: 0.25rem 0 0.25rem 1.25rem;
	border-left: 3px solid currentColor;
}

main#primary.site-main > article.blog_post .entry-content ul,
main#primary.site-main > article.blog_post .entry-content ol {
	margin-block: 0 1.25em;
	padding-inline-start: 1.5em;
}

main#primary.site-main > article.blog_post .entry-content li + li {
	margin-block-start: 0.4em;
}

main#primary.site-main > article.blog_post .entry-content table {
	width: 100%;
	border-collapse: collapse;
}

main#primary.site-main > article.blog_post .entry-content th,
main#primary.site-main > article.blog_post .entry-content td {
	padding: 0.65rem 0.75rem;
	border: 1px solid rgb(0 0 0 / 16%);
	text-align: start;
}

@media (max-width: 600px) {
	main#primary.site-main:has(> article.blog_post) {
		width: calc(100% - 2rem);
		padding-block: 1.5rem 3rem;
	}

	main#primary.site-main > article.blog_post .entry-header {
		margin-bottom: 1.5rem;
	}

	main#primary.site-main > article.blog_post .entry-content figure {
		margin-block: 1.5rem;
	}

	main#primary.site-main > article.blog_post .entry-content table {
		display: block;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}
}


/* Keep long article headlines on the full content width. */
main#primary.site-main > article.blog_post .entry-title {
  max-width: none;
}

/* Center the standalone promotional banner. */
main#primary.site-main > article.blog_post .entry-content > p:has(> a > img) {
  text-align: center;
}

main#primary.site-main > article.blog_post .entry-content > p > a:has(> img) {
  display: inline-block;
  max-width: 100%;
  vertical-align: top;
}

main#primary.site-main > article.blog_post .entry-content img {
  display: block;
  height: auto;
  margin-inline: auto;
}


/* Keep article headings clear of floated speaker portraits. */
main#primary.site-main > article.blog_post .entry-title {
  max-width: none;
}
main#primary.site-main > article.blog_post .entry-content > h2,
main#primary.site-main > article.blog_post .entry-content > h3,
main#primary.site-main > article.blog_post .entry-content > h4 {
  clear: both;
}

main#primary.site-main > article.blog_post .entry-content img,
main#primary.site-main > article.blog_post .entry-content video,
main#primary.site-main > article.blog_post .entry-content iframe {
  max-width: 100%;
}
main#primary.site-main > article.blog_post .entry-content img {
  display: block;
  height: auto;
  margin-inline: auto;
  border-radius: 0.25rem;
}
main#primary.site-main > article.blog_post .entry-content > p:has(> a > img) {
  text-align: center;
}
main#primary.site-main > article.blog_post .entry-content > p > a:has(> img) {
  display: inline-block;
  max-width: 100%;
  vertical-align: top;
}
main#primary.site-main > article.blog_post .entry-content figure {
  margin: 2rem 0;
}

/* Style speaker portraits embedded in article content only. */
main#primary.site-main > article.blog_post .entry-content figure.wp-caption:has(> img[src*="slw-speaker-"]) {
  float: right;
  width: clamp(220px, 28%, 320px) !important;
  margin: 0 0 1.5rem 2rem;
  padding: 1rem;
  border: 1px solid rgb(0 0 0 / 10%);
  border-radius: 0.75rem;
  background: #fff;
  box-shadow: 0 0.5rem 1.5rem rgb(0 0 0 / 8%);
  text-align: center;
}
main#primary.site-main > article.blog_post .entry-content figure.wp-caption:has(> img[src*="slw-speaker-"]) img {
  width: 100%;
  max-width: none;
  height: auto;
  margin: 0;
  border-radius: 0.5rem;
}
main#primary.site-main > article.blog_post .entry-content figure.wp-caption:has(> img[src*="slw-speaker-"]) figcaption {
  margin-top: 0.75rem;
  text-align: center;
  text-wrap: pretty;
}

main#primary.site-main > article.blog_post .entry-content blockquote {
  margin: 1.75rem 0;
  padding: 0.25rem 0 0.25rem 1.25rem;
  border-left: 3px solid currentColor;
}
main#primary.site-main > article.blog_post .entry-content ul,
main#primary.site-main > article.blog_post .entry-content ol {
  margin-block: 0 1.25em;
  padding-inline-start: 1.5em;
}
main#primary.site-main > article.blog_post .entry-content li + li {
  margin-block-start: 0.4em;
}
main#primary.site-main > article.blog_post .entry-content table {
  width: 100%;
  border-collapse: collapse;
}
main#primary.site-main > article.blog_post .entry-content th,
main#primary.site-main > article.blog_post .entry-content td {
  padding: 0.65rem 0.75rem;
  border: 1px solid rgb(0 0 0 / 16%);
  text-align: start;
}

@media (max-width: 600px) {
  main#primary.site-main:has(> article.blog_post) {
    width: calc(100% - 2rem);
    padding-block: 1.5rem 3rem;
  }
  main#primary.site-main > article.blog_post .entry-header {
    margin-bottom: 1.5rem;
  }
  main#primary.site-main > article.blog_post .entry-content figure {
    margin-block: 1.5rem;
  }
  main#primary.site-main > article.blog_post .entry-content figure.wp-caption:has(> img[src*="slw-speaker-"]) {
    float: none;
    width: min(100%, 22rem) !important;
    margin: 1.25rem auto 1.5rem;
  }
  main#primary.site-main > article.blog_post .entry-content table {
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
}


/* Let the article title use the full article container width. */
main#primary.site-main > article.blog_post .entry-header .entry-title {
  display: block;
  width: 100%;
  max-width: none;
  box-sizing: border-box;
}

/* Override theme title width constraints within blog posts. */
main#primary.site-main > article.blog_post .entry-header .entry-title {
  display: block;
  width: 100% !important;
  max-width: none !important;
  box-sizing: border-box;
  grid-column: 1 / -1;
  flex: 0 0 100%;
}

/* Use natural line wrapping for long article titles. */
main#primary.site-main > article.blog_post .entry-header .entry-title {
  text-wrap: initial;
}

/* Keep the title header and heading aligned to the full article column. */
main#primary.site-main > article.blog_post .entry-header {
  display: block;
  width: 100%;
}
main#primary.site-main > article.blog_post .entry-header .entry-title {
  width: 100% !important;
  max-width: none !important;
  text-wrap: initial !important;
}


/* Article speaker cards sit on the left, alongside the interview text. */
main#primary.site-main > article.blog_post .entry-content figure.wp-caption:has(> img[src*="slw-speaker-"]) {
  float: left;
  margin: 0 2rem 1.5rem 0;
}


/* Compact, uncropped featured banner on single Blog articles. */
main#primary.site-main > article.blog_post > .blog-post-featured-banner {
    width: min(100%, 960px);
    margin: 0 auto clamp(1.5rem, 3vw, 2.5rem);
    border-radius: 0.75rem;
    box-shadow: 0 0.75rem 2rem rgb(0 0 0 / 12%);
}

main#primary.site-main > article.blog_post > .blog-post-featured-banner img {
    display: block;
    width: 100%;
    height: auto;
    margin: 0;
    border-radius: inherit;
}
