/**
 * Additions to the .seo content styles for editor-authored posts.
 *
 * main.min.css already covers p / h2-h4 / ul / ol / a / img alignment.
 * What follows fills the gaps an editor can produce from the block editor:
 * tables, blockquotes, the remaining heading levels, code and captions.
 */

/* ---------- Headings ---------- */

.seo h1 {
	font-weight: 200;
	font-size: 48px;
	line-height: 1.1;
	letter-spacing: -0.02em;
	text-transform: uppercase;
	color: #58595b;
	margin-top: 0;
	margin-bottom: 30px;
}

.seo h2 {
	font-size: 18px;
	line-height: 0.72;
	font-weight: 600;
	color: #48a3bd;
	margin-top: 50px;
	margin-bottom: 17px;
}

.seo h2:first-child {
	margin-top: 0;
}

@media screen and (max-width: 1023px) {
	.seo h2 {
		margin-top: 40px;
	}
}

.seo h3 {
	font-size: 16px;
	line-height: 1.4;
	font-weight: 600;
	color: #48a3bd;
	margin-top: 36px;
	margin-bottom: 14px;
}

.seo h3:first-child {
	margin-top: 0;
}

.seo h4 {
	line-height: 1.4 !important;
}


.seo h5 {
	font-size: 16px;
	line-height: 1.4;
	font-weight: 600;
	color: #48a3bd;
	margin-top: 36px;
	margin-bottom: 14px;
}

.seo h6 {
	font-size: 14px;
	line-height: 1.4;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: #98a2b3;
	margin-top: 32px;
	margin-bottom: 12px;
}

.seo h5:first-child,
.seo h6:first-child {
	margin-top: 0;
}

/* ---------- Lists ---------- */

.seo ol {
	margin-bottom: 24px;
	padding-left: 0;
	list-style: none;
}

.seo ol:last-child {
	margin-bottom: 0;
}

.seo ol > li {
	position: relative;
	line-height: 1.5;
	margin-bottom: 12px;
}

.seo ol > li:last-child {
	margin-bottom: 0;
}

.seo ol ol {
	margin-top: 12px;
	margin-bottom: 0;
	padding-left: 20px;
}

.seo li > ul,
.seo li > ol {
	margin-top: 12px;
	margin-bottom: 0;
}

/* ---------- Tables ---------- */

.seo .seo__table-wrap,
.seo figure.wp-block-table {
	margin: 32px 0;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

.seo .seo__table-wrap:last-child,
.seo figure.wp-block-table:last-child {
	margin-bottom: 0;
}

.seo table {
	width: 100%;
	border-collapse: collapse;
	font-size: 16px;
	line-height: 1.4;
	color: #475467;
	margin: 32px 0;
}

.seo .seo__table-wrap table,
.seo figure.wp-block-table table {
	margin: 0;
	min-width: 520px;
}

.seo table:last-child {
	margin-bottom: 0;
}

.seo caption {
	caption-side: bottom;
	font-size: 14px;
	line-height: 1.4;
	color: #98a2b3;
	text-align: left;
	padding-top: 12px;
}

.seo th,
.seo td {
	padding: 14px 18px;
	text-align: left;
	vertical-align: top;
	border-bottom: 1px solid #e4e7ec;
}

.seo thead th {
	font-weight: 600;
	font-size: 14px;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: #58595b;
	background: #f7f9fa;
	border-bottom: 1px solid #cfd6dd;
	white-space: nowrap;
}

.seo tbody tr:last-child th,
.seo tbody tr:last-child td {
	border-bottom: 0;
}

.seo tbody tr:nth-child(even) {
	background: #fbfcfd;
}

.seo tfoot th,
.seo tfoot td {
	font-weight: 600;
	color: #58595b;
	border-top: 1px solid #cfd6dd;
}

/* ---------- Blockquote ---------- */

.seo blockquote {
	position: relative;
	margin: 32px 0;
	padding: 4px 0 4px 28px;
	border-left: 3px solid #c9a86a;
	font-size: 22px;
	line-height: 1.35;
	font-weight: 300;
	color: #58595b;
}

.seo blockquote:last-child {
	margin-bottom: 0;
}

.seo blockquote p:last-child {
	margin-bottom: 0;
}

.seo blockquote cite {
	display: block;
	margin-top: 16px;
	font-size: 16px;
	font-style: normal;
	font-weight: 400;
	color: #98a2b3;
}

/* ---------- Misc block-editor output ---------- */

.seo figure {
	margin: 24px 0;
}

.seo figure:last-child {
	margin-bottom: 0;
}

.seo figure img {
	margin: 0;
}

.seo figcaption,
.seo .wp-element-caption {
	font-size: 14px;
	line-height: 1.4;
	color: #98a2b3;
	margin-top: 10px;
}

.seo hr {
	border: 0;
	border-top: 1px solid #e4e7ec;
	margin: 40px 0;
}

.seo code {
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: 0.9em;
	background: #f2f4f7;
	border-radius: 3px;
	padding: 2px 6px;
}

.seo pre {
	background: #f2f4f7;
	border-radius: 4px;
	padding: 20px;
	overflow-x: auto;
	margin: 24px 0;
	font-size: 14px;
	line-height: 1.5;
}

.seo pre code {
	background: none;
	padding: 0;
}

.seo .wp-block-embed,
.seo .wp-block-embed__wrapper {
	margin: 24px 0;
}

@media (max-width: 767px) {
	.seo h1 {
		font-size: 32px;
	}

	.seo blockquote {
		font-size: 18px;
		padding-left: 20px;
	}

	.seo th,
	.seo td {
		padding: 12px 14px;
	}
}

/* ---------- Form states ---------- */

.form {
	position: relative;
}

.form__message {
	width: 100%;
	margin: 0 0 16px;
	font-size: 15px;
	line-height: 1.4;
}

.form__message:empty {
	display: none;
	margin: 0;
}

.form__message.is-error {
	color: #b32d2e;
}

.form__message.is-success {
	color: #1a7f37;
}

.modal__form .form__message.is-success,
.footer__form .form__message.is-success,
.subscribe__form .form__message.is-success {
	color: #fff;
}

.modal__form .form__message.is-error,
.footer__form .form__message.is-error,
.subscribe__form .form__message.is-error {
	color: #ffb4b4;
}

.btn.is-loading {
	opacity: 0.6;
	pointer-events: none;
}

/* Screen-reader-only, used by the honeypot and skip link. */
.hep-sr-only {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* ---------- Category filters ---------- */

.is-filtered-out {
	display: none !important;
}

.filter__empty {
	width: 100%;
	font-size: 18px;
	line-height: 1.4;
	color: #98a2b3;
	margin: 40px 0 0;
}

/* ---------- Team hero photo ---------- */

/*
 * The source head-shots are portrait, so the image is served uncropped and
 * capped by height here instead. `contain` keeps the whole head visible; the
 * design's 434px hero height and bottom alignment are preserved.
 */
.hero--team .hero__photo {
	width: auto;
	max-width: 498px;
	height: auto;
	max-height: 434px;
	object-fit: contain;
	object-position: bottom center;
}

@media screen and (max-width: 1199px) {
	.hero--team .hero__photo {
		max-width: 380px;
		max-height: 331px;
	}
}

@media screen and (max-width: 1023px) {
	.hero--team .hero__photo {
		max-width: 300px;
		max-height: 262px;
	}
}

@media screen and (max-width: 767px) {
	.hero--team .hero__photo {
		max-width: 220px;
		max-height: 192px;
	}
}

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

/*
 * main.min.css ships no .pagination rules, so paginate_links() renders as a
 * bare inline row hard against the grid. Centred, with its own top margin and
 * side padding so the numbers never touch the container edge on small screens.
 */
.pagination {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 10px;
	width: 100%;
	margin: 80px 0 0;
	padding: 0 20px;
}

.pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	height: 44px;
	padding: 0 12px;
	border: 1px solid #c9b99a;
	border-radius: 2px;
	font-family: DMSansVariableFont, sans-serif;
	font-size: 16px;
	line-height: 1;
	font-weight: 600;
	color: #c9b99a;
	text-decoration: none;
	transition: all 0.35s ease;
}

.pagination a.page-numbers:hover,
.pagination .page-numbers.current {
	background-color: #c9b99a;
	color: #fff;
}

/* The gap already separates the numbers; a border would read as a button. */
.pagination .page-numbers.dots {
	min-width: 0;
	padding: 0 4px;
	border-color: transparent;
	background: none;
	color: #98a2b3;
}

@media screen and (max-width: 1023px) {
	.pagination {
		margin-top: 50px;
	}
}

@media screen and (max-width: 767px) {
	.pagination {
		gap: 8px;
		margin-top: 40px;
	}

	.pagination .page-numbers {
		min-width: 40px;
		height: 40px;
		padding: 0 10px;
		font-size: 15px;
	}
}
