/*
 * Everything between the header and the footer: the banner, page and post
 * content (including blocks), single posts, cards on archive pages,
 * pagination and comments.
 */

/* ---------- Banner (parts/banner.php) ---------- */

.st-banner--image img {
	display: block;
	height: auto;
	width: 100%;
}

.st-banner--title {
	padding: 30px 0;
}

.st-banner__title {
	font-size: 150%;
	font-weight: 700;
}

.st-banner__subtitle {
	margin-top: .5em;
}

/* ---------- Page and post content ---------- */

.entry-content {
	word-wrap: break-word;
}

.entry-content::after {
	clear: both;
	content: "";
	display: table;
}

.entry-content > :last-child {
	margin-bottom: 0;
}

.entry-content :where(h1, h2, h3, h4, h5, h6) {
	margin-bottom: 20px;
}

.entry-content ul,
.entry-content ol {
	margin: revert;
	padding: revert;
	padding-left: 20px;
}

.entry-content li > p {
	margin-bottom: 0;
}

@media (min-width: 544px) {
	.entry-content > .alignleft { margin-right: 20px; }
	.entry-content > .alignright { margin-left: 20px; }
}

.page-links {
	clear: both;
	margin-top: 1em;
}

/* Blocks. Content written in the block editor gets .has-blocks on
   .entry-content (page.php, single.php), and these widths, as under Astra. */

.entry-content.has-blocks > * {
	margin-left: auto;
	margin-right: auto;
	max-width: var(--wp--custom--ast-content-width-size);
}

.entry-content.has-blocks > .alignwide {
	max-width: var(--wp--custom--ast-wide-width-size);
}

.entry-content.has-blocks .alignfull {
	max-width: none;
}

.entry-content > .wp-block-group,
.entry-content > .wp-block-cover,
.entry-content > .wp-block-columns {
	padding: var(--wp--custom--ast-default-block-top-padding) var(--wp--custom--ast-default-block-right-padding)
		var(--wp--custom--ast-default-block-bottom-padding) var(--wp--custom--ast-default-block-left-padding);
}

.entry-content > .alignfull {
	margin-left: calc(-50vw + 50%);
	margin-right: calc(-50vw + 50%);
	max-width: 100vw;
	width: 100vw;
}

.entry-content .alignfull .alignfull,
.entry-content .alignfull .alignwide,
.entry-content .alignwide .alignfull,
.entry-content .alignwide .alignwide,
.entry-content .wp-block-column .alignfull,
.entry-content .wp-block-column .alignwide {
	margin-left: auto;
	margin-right: auto;
	width: 100%;
}

@media (max-width: 1200px) {
	.entry-content.has-blocks > .alignwide {
		margin-left: -20px;
		margin-right: -20px;
	}
}

@media (min-width: 1201px) {
	.entry-content.has-blocks > .alignwide {
		margin-left: calc(-1 * var(--wp--custom--ast-default-block-left-padding));
		margin-right: calc(-1 * var(--wp--custom--ast-default-block-right-padding));
	}
}

@media (min-width: 921px) {
	.entry-content .wp-block-group.alignwide:not(.inherit-container-width) > :where(:not(.alignleft):not(.alignright)) {
		max-width: calc(var(--wp--custom--ast-content-width-size) + 80px);
	}
}

.entry-content .wp-block-columns {
	margin-bottom: 0;
}

.entry-content.has-blocks .wp-block-separator:not(.is-style-wide):not(.is-style-dots) {
	max-width: 100px;
}

.wp-block-separator:not(.is-style-wide):not(.is-style-dots) {
	margin: 20px auto;
}

.entry-content > figure {
	margin-bottom: 1em;
}

.entry-content .wp-block-media-text .wp-block-media-text__content {
	padding: 0 0 0 8%;
}

.entry-content .wp-block-media-text.has-media-on-the-right .wp-block-media-text__content {
	padding: 0 8% 0 0;
}

.entry-content .wp-block-media-text.has-background .wp-block-media-text__content {
	padding: 8%;
}

.entry-content .wp-block-cover:not([class*="background-color"]) .wp-block-cover__inner-container,
.entry-content .wp-block-cover:not([class*="background-color"]) .wp-block-cover-text {
	color: var(--ast-global-color-5);
}

.entry-content.has-blocks .wp-block-cover:not(.alignleft):not(.alignright) {
	width: auto;
}

.wp-block-pullquote {
	border: none;
}

.wp-block-pullquote blockquote::before {
	align-items: center;
	content: "\201D";
	display: flex;
	font-family: "Helvetica", sans-serif;
	font-size: 6rem;
	font-style: normal;
	font-weight: bold;
	justify-content: center;
	line-height: 1;
	transform: rotate(180deg);
}

.wp-block-latest-posts {
	margin: 0;
}

.wp-block-latest-posts > li > *,
.wp-block-latest-posts:not(.is-grid) > li {
	margin-bottom: 12px;
	margin-top: 12px;
}

.wp-block-latest-posts > li > *:first-child,
.wp-block-latest-posts:not(.is-grid) > li:first-child {
	margin-top: 0;
}

.wp-block-latest-posts .wp-block-latest-posts__post-date,
.wp-block-latest-posts .wp-block-latest-posts__post-author {
	font-size: 1rem;
}

.wp-block-latest-posts .read-more {
	margin-bottom: 1.5em;
	margin-top: 15px;
}

@media (max-width: 600px) {
	.entry-content .wp-block-media-text .wp-block-media-text__content,
	.entry-content .wp-block-media-text.has-media-on-the-right .wp-block-media-text__content {
		padding: 8% 0 0;
	}

	.entry-content .wp-block-media-text.has-background .wp-block-media-text__content {
		padding: 8%;
	}
}

@media (max-width: 544px) {
	.wp-block-columns .wp-block-column:not(:last-child) {
		margin-bottom: 20px;
	}

	.wp-block-latest-posts {
		margin: 0;
	}
}

/* ---------- Single posts ---------- */

.single .st-article {
	margin-bottom: 1.5em;
}

.st-article .entry-header {
	margin-bottom: 2em;
	word-wrap: break-word;
}

.page .st-article .entry-header {
	margin-bottom: 1.5em;
}

.st-article .entry-title {
	font-size: 2rem;
	line-height: 1.2;
	margin-bottom: 15px;
}

.entry-meta {
	color: var(--ast-global-color-0);
	font-size: .8125rem;
	font-weight: 600;
	line-height: 1.45;
}

.st-article .entry-meta {
	margin-bottom: 15px;
}

.entry-meta a {
	color: var(--ast-global-color-0);
}

.entry-meta a:hover,
.entry-meta a:focus {
	color: var(--ast-global-color-1);
}

.st-article__image {
	margin-bottom: 2em;
}

.st-share {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 24px;
	min-height: var(--st-line-height);
}

.st-share__link {
	display: inline-flex;
}

.st-share__link svg {
	height: 20px;
	width: 20px;
}

.st-share__link--facebook { color: #557dbc; }
.st-share__link--x { color: #7acdee; }
.st-share__link--pinterest { color: #e60023; }
.st-share__link--linkedin { color: #1c86c6; }

.post-navigation {
	border-top: 1px solid var(--st-post-border);
	margin: 0;
	padding: 2em 0 0;
}

.post-navigation .nav-previous,
.post-navigation .nav-next {
	width: 50%;
}

.post-navigation .nav-next {
	text-align: right;
}

.post-navigation a {
	color: var(--ast-global-color-3);
	display: inline-block;
	font-weight: 500;
	line-height: 1em;
	margin: 2px;
	max-width: 80%;
}

.post-navigation .nav-previous a {
	padding-right: 20px;
}

.post-navigation .nav-next a {
	padding-left: 20px;
}

.post-navigation a:hover,
.post-navigation a:focus {
	color: var(--ast-global-color-1);
}

.st-post-nav {
	display: block;
	font-size: .85em;
	font-weight: 600;
	letter-spacing: .05em;
	text-transform: uppercase;
}

.st-post-nav svg {
	height: 1em;
	position: relative;
	top: .125em;
	width: 1em;
}

.post-navigation a p {
	font-weight: normal;
	line-height: var(--st-line-height);
	margin: .5em 0 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

@media (min-width: 421px) {
	.post-navigation .nav-links {
		display: flex;
		width: 100%;
	}

	.post-navigation .nav-links:not(:has(.nav-previous)) {
		justify-content: flex-end;
	}
}

@media (max-width: 420px) {
	.post-navigation .nav-previous {
		margin-bottom: 1em;
	}

	.post-navigation a {
		max-width: 95%;
		width: 100%;
	}
}

/* ---------- Lists of posts (parts/post-card.php) ---------- */

.st-archive-header {
	margin-bottom: 2.5em;
}

.st-archive-header .page-title {
	font-size: 2rem;
	margin-bottom: 10px;
}

.st-archive-header .search-form {
	margin-top: 1em;
	max-width: 500px;
}

/* On desktop the cards sit 4px in from the content's edges, as under Astra. */
.st-cards {
	display: grid;
	gap: 24px 40px;
	grid-template-columns: repeat(var(--st-card-columns, 3), minmax(0, 1fr));
	margin: 0 -16px;
	padding: 0 20px;
}

@media (max-width: 921px) {
	.st-cards {
		grid-template-columns: minmax(0, 1fr);
		margin: 0;
		padding: 0;
	}
}

.st-card {
	background-color: var(--ast-global-color-5);
	border-radius: 6px;
	box-shadow: 0 6px 15px -2px rgba(16, 24, 40, .05);
	overflow: hidden;
	overflow-wrap: break-word;
	padding: 1.5em;
}

.st-card__image {
	display: block;
	margin: -1.5em -1.5em 1.5em;
}

.st-card__image img {
	display: block;
	width: 100%;
}

.st-card .cat-links {
	font-weight: 600;
	margin-bottom: .8em;
}

.st-card .cat-links a {
	font-size: .875rem;
}

.st-card .entry-title {
	font-size: 1.25rem;
	font-weight: 500;
	line-height: 1.23em;
	margin-bottom: .6em;
}

.st-card .entry-title a {
	color: var(--ast-global-color-2);
}

.st-card .entry-title a:hover,
.st-card .entry-title a:focus {
	color: var(--ast-global-color-1);
}

.st-card .entry-meta {
	margin-bottom: 1.2em;
}

.st-card__excerpt p {
	margin-bottom: 0;
}

/* ---------- Pagination ---------- */

.pagination {
	margin-top: 2.5em;
}

.pagination .nav-links {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	justify-content: center;
}

.pagination .page-numbers {
	border: 1px solid var(--ast-border-color);
	border-radius: 2px;
	display: inline-block;
	line-height: calc(2.5em - 2px);
	min-width: 2.5em;
	padding: 0 .6em;
	text-align: center;
}

.pagination .page-numbers.current {
	background-color: var(--ast-global-color-0);
	border-color: var(--ast-global-color-0);
	color: #fff;
}

/* "Load More" instead of page numbers (simple_theme_pagination()), 4em
   below the cards as under Astra (the last row's 1.5em, then 2.5em); in
   one column below 922px, only 2.5em. */
.st-load-more {
	margin-top: 4em;
	text-align: center;
}

@media (max-width: 921px) {
	.st-load-more {
		margin-top: 2.5em;
	}
}

.st-load-more__button {
	border: 2px solid var(--ast-border-color);
	color: #000;
	display: inline-block;
	line-height: 3em;
	padding: 0 1.5em;
}

.st-load-more__button:hover,
.st-load-more__button:focus {
	background-color: var(--ast-global-color-0);
	border-color: var(--ast-global-color-0);
	color: #fff;
}

.st-load-more.is-loading .st-load-more__button {
	cursor: progress;
	opacity: .6;
}

/* ---------- Comments ---------- */

.comments-area {
	border-top: 1px solid var(--st-post-border);
	margin-top: 2em;
	padding-top: 2em;
}

.comment-list {
	list-style: none;
	margin: 0 0 2em;
}

.comment-list .children {
	list-style: none;
}

.comment-body {
	border-bottom: 1px solid var(--st-post-border);
	padding: 1em 0;
}

.comment-meta {
	font-size: 14px;
	margin-bottom: .5em;
}

.comment-meta .avatar {
	border-radius: 50%;
	margin-right: .5em;
}

.comment-form p {
	margin-bottom: 1em;
}
