/* Assessment Partner — theme styles
   Tokens live in theme.json; this file covers what theme.json can't express. */

:root {
	--ap-navy: var(--wp--preset--color--navy, #142350);
	--ap-mint: var(--wp--preset--color--mint, #71ECB0);
	--ap-teal: var(--wp--preset--color--teal, #3CB9B3);
	--ap-teal-ink: var(--wp--preset--color--teal-ink, #1C7A75);
	--ap-line: var(--wp--preset--color--line, #D5DEE7);
	--ap-slate: var(--wp--preset--color--slate, #4B5A7A);
	--ap-on-dark-muted: rgba(255, 255, 255, 0.74);
	--ap-on-dark-faint: rgba(255, 255, 255, 0.14);
	--ap-ease: cubic-bezier(0.22, 0.61, 0.36, 1);
}

body {
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
	font-feature-settings: "kern";
}

::selection {
	background: var(--ap-mint);
	color: var(--ap-navy);
}

a {
	text-underline-offset: 0.18em;
	text-decoration-thickness: 1px;
}

a:hover {
	text-decoration-thickness: 2px;
}

:where(a, button, input, summary, [tabindex]):focus-visible {
	outline: 2px solid var(--ap-teal);
	outline-offset: 3px;
	border-radius: 4px;
}

h1, h2, h3, h4 {
	text-wrap: balance;
}

p {
	text-wrap: pretty;
}

/* Sections sit flush against each other */
.wp-site-blocks > main,
.wp-site-blocks > footer,
.wp-site-blocks > .wp-block-template-part + * {
	margin-block-start: 0;
}

.wp-element-button,
.wp-block-button__link {
	text-decoration: none;
}

/* Links on dark sections */
:is(.has-navy-background-color, .has-navy-deep-background-color, .has-navy-soft-background-color) a:not(.wp-element-button) {
	color: var(--ap-mint);
}

:is(.has-navy-background-color, .has-navy-deep-background-color, .has-navy-soft-background-color) a:not(.wp-element-button):hover {
	color: #fff;
}

/* ---------- Header ---------- */

.ap-header {
	position: relative;
	z-index: 20;
}

.ap-logo {
	display: inline-block;
	line-height: 0;
}

.ap-logo img {
	display: block;
	height: 40px;
	width: auto;
}

.ap-footer .ap-logo img {
	height: 40px;
}

.ap-nav .wp-block-navigation-item__content {
	color: var(--ap-on-dark-muted) !important;
	text-decoration: none;
	padding-block: 0.35rem;
}

.ap-nav .wp-block-navigation-item__content:hover,
.ap-nav .current-menu-item > .wp-block-navigation-item__content {
	color: #fff !important;
	text-decoration: underline;
	text-decoration-color: var(--ap-mint);
	text-decoration-thickness: 2px;
	text-underline-offset: 0.45em;
}

.ap-nav .wp-block-navigation__responsive-container.is-menu-open {
	padding: 1.5rem clamp(1.25rem, 4vw, 3rem);
}

.ap-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	padding-top: 3.5rem;
	align-items: flex-start !important;
}

.ap-nav .is-menu-open :is(.wp-block-navigation__container, .wp-block-navigation-item, .wp-block-navigation__submenu-container) {
	align-items: flex-start !important;
	text-align: left;
}

.ap-nav .is-menu-open .wp-block-navigation__container {
	gap: 1.1rem !important;
}

.ap-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	font-family: var(--wp--preset--font-family--exo-2);
	font-size: 1.75rem;
	font-weight: 600;
	color: #fff !important;
}

@media (max-width: 781px) {
	.ap-header .ap-header-cta {
		display: none;
	}

	.ap-logo img {
		height: 30px;
	}
}

/* Dropdowns of the user's own menu */
.ap-nav .wp-block-navigation__submenu-container {
	background: var(--wp--preset--color--navy-soft, #1C2E63) !important;
	border: 1px solid rgba(255, 255, 255, 0.1) !important;
	border-radius: 12px;
	padding: 0.5rem 0;
	min-width: 14rem !important;
	box-shadow: 0 20px 40px -20px rgba(5, 10, 30, 0.6);
}

.ap-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	padding: 0.5rem 1.1rem !important;
}

.ap-nav .wp-block-navigation__submenu-icon {
	color: var(--ap-on-dark-muted);
}

.ap-nav .is-menu-open .wp-block-navigation__submenu-container {
	background: transparent !important;
	border: 0 !important;
	box-shadow: none;
	padding: 0 0 0 1rem;
}

.ap-nav .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	font-size: 1.25rem;
	font-weight: 500;
}

/* Footer menu */
.ap-footer__nav .wp-block-navigation-item__content {
	font-family: var(--wp--preset--font-family--nunito-sans);
	font-weight: 400;
	padding: 0;
}

.ap-footer__nav .wp-block-navigation__submenu-container,
.ap-footer__nav .wp-block-navigation__submenu-icon {
	display: none !important;
}

/* ---------- Buttons ---------- */

.wp-block-button.is-style-ap-mint .wp-block-button__link {
	background: var(--ap-mint);
	color: var(--ap-navy);
}

.wp-block-button.is-style-ap-mint .wp-block-button__link:hover {
	background: #9AF3C8;
	color: var(--ap-navy);
}

.wp-block-button.is-style-ap-line .wp-block-button__link {
	background: transparent;
	color: inherit;
	box-shadow: inset 0 0 0 1.5px currentColor;
}

.wp-block-button.is-style-ap-line .wp-block-button__link:hover {
	background: rgba(127, 127, 127, 0.12);
	color: inherit;
}

.wp-block-button__link {
	transition: background-color 0.18s var(--ap-ease), color 0.18s var(--ap-ease);
}

/* ---------- Swoosh edge (signature) ----------
   The bottom edge of navy bands sweeps upward like the logo's loop. */

.is-style-ap-swoosh {
	position: relative;
	--ap-swoosh-color: var(--wp--preset--color--white, #fff);
	--ap-swoosh-height: clamp(44px, 6.5vw, 104px);
}

.is-style-ap-swoosh::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -1px;
	height: var(--ap-swoosh-height);
	background: var(--ap-swoosh-color);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 120' preserveAspectRatio='none'%3E%3Cpath d='M0 120V112C220 116 470 108 760 82C1010 59 1230 22 1440 0V120Z'/%3E%3C/svg%3E") no-repeat center / 100% 100%;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 120' preserveAspectRatio='none'%3E%3Cpath d='M0 120V112C220 116 470 108 760 82C1010 59 1230 22 1440 0V120Z'/%3E%3C/svg%3E") no-repeat center / 100% 100%;
	pointer-events: none;
}

/* ---------- Hero ---------- */

.ap-hero__title {
	color: #fff;
	max-width: 15ch;
}

.ap-hero__lead {
	color: var(--ap-on-dark-muted);
	max-width: 36rem;
	margin-top: 1.5rem;
	line-height: 1.6;
}

.ap-hero__note {
	color: rgba(255, 255, 255, 0.58);
	margin-top: 1.5rem;
}

/* Scorecard */

.ap-scorecard {
	margin: 0;
	background: var(--wp--preset--color--navy-soft, #1C2E63);
	border: 1px solid rgba(255, 255, 255, 0.08);
	border-radius: 18px;
	padding: clamp(1.25rem, 2.5vw, 2rem);
	box-shadow: 0 30px 60px -30px rgba(5, 10, 30, 0.6);
	font-size: 0.9375rem;
}

.ap-scorecard__head {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 1rem;
	padding-bottom: 1rem;
}

.ap-scorecard__title {
	font-family: var(--wp--preset--font-family--exo-2);
	font-weight: 600;
	font-size: 1.0625rem;
	color: #fff;
}

.ap-scorecard__scale-label {
	color: rgba(255, 255, 255, 0.55);
	font-size: 0.8125rem;
	white-space: nowrap;
}

.ap-scorecard__rows {
	list-style: none;
	margin: 0;
	padding: 0;
}

.ap-scorecard__rows li {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 0.8rem 0;
	border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.ap-scorecard__label {
	color: rgba(255, 255, 255, 0.88);
}

.ap-scale {
	display: inline-flex;
	gap: 4px;
	flex-shrink: 0;
}

.ap-scale i,
.ap-scorecard__legend i {
	display: block;
	width: 22px;
	height: 8px;
	border-radius: 4px;
	background: rgba(255, 255, 255, 0.09);
}

.ap-scale i.is-now,
.ap-scorecard__legend i.is-now {
	background: var(--ap-mint);
}

.ap-scale i.is-goal,
.ap-scorecard__legend i.is-goal {
	background: transparent;
	box-shadow: inset 0 0 0 1.5px var(--ap-teal);
}

.ap-scorecard__legend {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1.25rem;
	padding: 0.9rem 0 0;
	border-top: 1px solid rgba(255, 255, 255, 0.08);
	color: rgba(255, 255, 255, 0.6);
	font-size: 0.8125rem;
}

.ap-scorecard__legend span {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
}

.ap-scorecard__legend i {
	width: 14px;
}

.ap-scorecard__finding {
	margin: 1.25rem 0 0;
	padding: 1rem 1.1rem;
	border-radius: 10px;
	background: rgba(13, 24, 56, 0.55);
	color: rgba(255, 255, 255, 0.86);
	line-height: 1.5;
}

.ap-scorecard__finding strong {
	display: block;
	font-family: var(--wp--preset--font-family--exo-2);
	font-weight: 600;
	color: var(--ap-mint);
	margin-bottom: 0.2rem;
}

/* The one orchestrated motion: the scale fills on load. */
@media (prefers-reduced-motion: no-preference) {
	.ap-scale i.is-now {
		transform-origin: left center;
		animation: ap-fill 0.5s var(--ap-ease) both;
	}

	.ap-scorecard__rows li:nth-child(1) .ap-scale i { animation-delay: 0.35s; }
	.ap-scorecard__rows li:nth-child(2) .ap-scale i { animation-delay: 0.45s; }
	.ap-scorecard__rows li:nth-child(3) .ap-scale i { animation-delay: 0.55s; }
	.ap-scorecard__rows li:nth-child(4) .ap-scale i { animation-delay: 0.65s; }
	.ap-scorecard__rows li:nth-child(5) .ap-scale i { animation-delay: 0.75s; }
	.ap-scale i.is-now:nth-child(2) { animation-duration: 0.6s; }
	.ap-scale i.is-now:nth-child(3) { animation-duration: 0.7s; }

	@keyframes ap-fill {
		from { transform: scaleX(0); opacity: 0.3; }
		to { transform: scaleX(1); opacity: 1; }
	}
}

/* ---------- Sections ---------- */

.ap-measure {
	max-width: 24ch;
}

p.ap-measure {
	max-width: 40rem;
}

@media (min-width: 782px) {
	.ap-sticky {
		position: sticky;
		top: 2.5rem;
	}
}

.ap-sticky > p:last-child a {
	font-weight: 700;
}

/* Domains */

.ap-domain {
	border-top: 1px solid var(--ap-line);
	padding: 1.4rem 0 2.25rem;
}

.ap-domain h3 {
	margin: 0;
}

.ap-domain p {
	margin: 0.6rem 0 0;
}

/* Situations */

.ap-situation h3 {
	font-size: clamp(1.35rem, 1.1rem + 0.9vw, 1.75rem) !important;
	hyphens: manual;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: -0.015em;
	margin: 0;
}

.ap-situation p {
	margin: 0.9rem 0 0;
}

@media (min-width: 900px) {
	.ap-situations {
		grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
	}

	.ap-situation + .ap-situation {
		border-left: 1px solid var(--ap-line);
		padding-left: clamp(1.5rem, 3vw, 2.5rem);
	}
}

/* Steps (a real sequence, so numbered) */

.ap-steps {
	--ap-gap: clamp(1.5rem, 3vw, 2.5rem);
	list-style: none;
	padding: 0;
	counter-reset: ap-step;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: var(--ap-gap);
	position: relative;
}

.ap-steps::before {
	content: "";
	position: absolute;
	top: 1.25rem;
	left: 1.25rem;
	right: calc((100% - 3 * var(--ap-gap)) / 4 - 1.25rem);
	height: 2px;
	background: linear-gradient(90deg, var(--ap-teal), var(--ap-mint));
	opacity: 0.55;
}

.ap-steps li {
	counter-increment: ap-step;
	position: relative;
	padding-top: 4rem;
	margin: 0;
}

.ap-steps li::before {
	content: counter(ap-step);
	position: absolute;
	top: 0;
	left: 0;
	width: 2.5rem;
	height: 2.5rem;
	border-radius: 50%;
	display: grid;
	place-items: center;
	background: var(--wp--preset--color--white, #fff);
	box-shadow: inset 0 0 0 2px var(--ap-teal);
	font-family: var(--wp--preset--font-family--exo-2);
	font-weight: 650;
	color: var(--ap-navy);
}

.ap-steps li:last-child::before {
	background: var(--ap-navy);
	box-shadow: none;
	color: var(--ap-mint);
}

.ap-steps__when {
	display: block;
	font-size: 0.875rem;
	font-weight: 700;
	color: var(--ap-teal-ink);
}

.ap-steps__title {
	display: block;
	font-family: var(--wp--preset--font-family--exo-2);
	font-size: 1.375rem;
	font-weight: 600;
	letter-spacing: -0.01em;
	margin: 0.2rem 0 0.5rem;
}

.ap-steps__text {
	display: block;
	color: var(--ap-slate);
}

@media (max-width: 899px) {
	.ap-steps {
		grid-template-columns: 1fr;
		gap: 2rem;
	}

	.ap-steps::before {
		top: 0;
		bottom: 0;
		left: calc(1.25rem - 1px);
		right: auto;
		width: 2px;
		height: auto;
		background: linear-gradient(180deg, var(--ap-teal), var(--ap-mint));
	}

	.ap-steps li {
		padding: 0.2rem 0 0 3.75rem;
	}
}

.ap-deliverables h3 {
	font-size: var(--wp--preset--font-size--large);
	margin-top: 0;
}

/* Check list */

.is-style-ap-check {
	list-style: none;
	padding-left: 0;
}

.is-style-ap-check li {
	position: relative;
	padding-left: 2rem;
	margin-bottom: 0.6rem;
}

.is-style-ap-check li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.3em;
	width: 1.15rem;
	height: 1.15rem;
	border-radius: 50%;
	background: var(--ap-teal-ink) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4.2 8.3l2.3 2.3 5-5.2' fill='none' stroke='%23fff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 100% no-repeat;
}

/* Post lists */

.ap-postlist .wp-block-post {
	border-top: 1px solid #C9D4DF;
	padding-top: 1.25rem;
}

.ap-postlist .wp-block-post-title,
.ap-archive .wp-block-post-title {
	margin: 0.35rem 0 0.6rem;
}

.ap-postlist .wp-block-post-title a,
.ap-archive .wp-block-post-title a {
	color: inherit;
	text-decoration: none;
}

.ap-postlist .wp-block-post-title a:hover,
.ap-archive .wp-block-post-title a:hover {
	color: var(--ap-teal-ink);
	text-decoration: underline;
}

.ap-archive__list {
	list-style: none;
	padding: 0;
}

.ap-archive__item {
	padding: 2rem 0;
	border-bottom: 1px solid var(--ap-line);
}

.ap-archive__list > li:first-child .ap-archive__item {
	padding-top: 0;
}

.ap-archive .wp-block-post-excerpt__more-link {
	font-weight: 700;
}

.wp-block-query-pagination a {
	font-weight: 700;
}

/* ---------- Page heads & content ---------- */

.ap-pagehead :is(h1, .wp-block-post-title, .wp-block-query-title) {
	color: #fff;
	margin-top: 0;
}

.ap-pagehead > * + :is(h1, .wp-block-post-title) {
	margin-top: 0.5rem;
}

.ap-pagehead__lead {
	color: var(--ap-on-dark-muted);
}

/* Previous / next article */
.ap-postnav {
	gap: 1.5rem 3rem;
}

.ap-postnav .post-navigation-link-previous,
.ap-postnav .post-navigation-link-next {
	flex: 1 1 16rem;
	color: var(--ap-slate);
	font-size: var(--wp--preset--font-size--small);
}

.ap-postnav .post-navigation-link-next {
	text-align: right;
}

.ap-postnav a {
	display: block;
	margin-top: 0.25rem;
	font-family: var(--wp--preset--font-family--exo-2);
	font-size: 1.125rem;
	font-weight: 600;
	line-height: 1.3;
	color: var(--ap-navy);
	text-decoration: none;
}

.ap-postnav a:hover {
	color: var(--ap-teal-ink);
	text-decoration: underline;
}

.ap-pagehead__meta,
.ap-pagehead .wp-block-post-date {
	color: rgba(255, 255, 255, 0.62) !important;
	font-size: var(--wp--preset--font-size--small);
}

.ap-content {
	padding-top: var(--wp--preset--spacing--40);
	padding-bottom: var(--wp--preset--spacing--60);
}

.ap-content > h2 {
	font-size: var(--wp--preset--font-size--x-large);
	margin-top: 2.5rem;
}

.ap-content > h3 {
	font-size: var(--wp--preset--font-size--large);
	margin-top: 2rem;
}

.ap-featured img {
	border-radius: 12px;
}

/* Search */

.ap-search .wp-block-search__inside-wrapper {
	max-width: 32rem;
	gap: 0.5rem;
}

.ap-search .wp-block-search__input {
	border: 1px solid var(--ap-line);
	border-radius: 999px;
	padding: 0.75rem 1.1rem;
	font: inherit;
}

.ap-search .wp-block-search__button {
	margin: 0;
}

/* ---------- CTA ---------- */

.ap-cta h2 {
	color: #fff;
	max-width: 20ch;
	margin-top: 0;
}

.ap-cta__lead {
	color: var(--ap-on-dark-muted);
	max-width: 34rem;
}

.ap-cta__direct {
	color: rgba(255, 255, 255, 0.62);
	margin-top: 1rem;
}

/* ---------- Footer ---------- */

.ap-footer .ap-footer__heading {
	font-family: var(--wp--preset--font-family--exo-2);
	font-weight: 600;
	letter-spacing: 0;
	color: rgba(255, 255, 255, 0.55);
	margin: 0 0 0.9rem;
}

.ap-footer__muted {
	color: rgba(255, 255, 255, 0.7);
	max-width: 22rem;
	line-height: 1.7;
}

.ap-footer__links {
	list-style: none;
	padding: 0;
	margin: 0;
}

.ap-footer__links li {
	margin-bottom: 0.45rem;
}

.ap-footer a:not(.ap-logo) {
	color: rgba(255, 255, 255, 0.86) !important;
	text-decoration: none;
}

.ap-footer a:not(.ap-logo):hover {
	color: var(--ap-mint) !important;
	text-decoration: underline;
}

.ap-footer__base {
	border-top: 1px solid rgba(255, 255, 255, 0.12);
	color: rgba(255, 255, 255, 0.5);
}

.ap-footer__base p {
	margin: 0;
}

/* ---------- Small screens ---------- */

@media (max-width: 781px) {
	.ap-hero .wp-block-columns {
		gap: 3rem;
	}

	.ap-cta .wp-block-columns {
		gap: 1.5rem;
	}
}

/* Article body: a touch larger for long reads */
.ap-content--article {
	font-size: 1.125rem;
	padding-bottom: var(--wp--preset--spacing--50);
}

/* =========================================================
   Page structure: trail, subpages, full-width sections
   ========================================================= */

.ap-trail ol {
	list-style: none;
	margin: 0 0 0.75rem;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.25rem 0.5rem;
	font-size: var(--wp--preset--font-size--small);
}

.ap-trail li + li::before {
	content: "/";
	margin-right: 0.5rem;
	color: rgba(255, 255, 255, 0.35);
}

.ap-trail a {
	color: rgba(255, 255, 255, 0.72) !important;
	text-decoration: none;
}

.ap-trail a:hover {
	color: var(--ap-mint) !important;
	text-decoration: underline;
}

.ap-pagehead__lead {
	margin-top: 1.25rem;
	line-height: 1.55;
}

/* Subpage overview */
.ap-childcard {
	background: #fff;
	border-radius: 14px;
	padding: 1.5rem 1.6rem 1.6rem;
	position: relative;
	transition: box-shadow 0.18s var(--ap-ease);
}

.ap-childcard h3 {
	margin: 0;
}

.ap-childcard h3 a {
	color: var(--ap-navy);
	text-decoration: none;
}

/* whole card clickable */
.ap-childcard h3 a::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
}

.ap-childcard:hover {
	box-shadow: inset 0 0 0 2px var(--ap-teal);
}

.ap-childcard:hover h3 a {
	color: var(--ap-teal-ink);
}

.ap-childcard:focus-within {
	box-shadow: inset 0 0 0 2px var(--ap-teal);
}

.ap-childcard p {
	margin: 0.5rem 0 0;
}

/* Full-width sections placed inside page content sit flush */
.ap-content:has(> .alignfull:first-child) {
	padding-top: 0;
}

.ap-content:has(> .alignfull:last-child) {
	padding-bottom: 0;
}

.ap-content > .alignfull + .alignfull,
.ap-content > .alignfull + .wp-block-pattern + .alignfull {
	margin-block-start: 0;
}

.ap-content > .alignfull + :not(.alignfull),
.ap-content > :not(.alignfull) + .alignfull {
	margin-block-start: var(--wp--preset--spacing--50);
}

/* =========================================================
   Core blocks in the house style
   ========================================================= */

/* Lists */
.ap-content :is(ul, ol).wp-block-list:not(.is-style-ap-check):not(.ap-steps) {
	padding-left: 1.3em;
}

.ap-content ul.wp-block-list:not(.is-style-ap-check) > li::marker {
	color: var(--ap-teal);
}

.ap-content ol.wp-block-list:not(.ap-steps) > li::marker {
	color: var(--ap-teal-ink);
	font-family: var(--wp--preset--font-family--exo-2);
	font-weight: 650;
}

.ap-content .wp-block-list:not(.ap-steps) > li + li {
	margin-top: 0.35rem;
}

/* Quote: left rule from theme.json; citation */
.wp-block-quote cite,
.wp-block-pullquote cite {
	text-transform: none;
	display: block;
	margin-top: 0.75rem;
	font-family: var(--wp--preset--font-family--nunito-sans);
	font-size: var(--wp--preset--font-size--small);
	font-style: normal;
	font-weight: 600;
	color: var(--ap-slate);
}

.wp-block-quote p {
	margin-top: 0;
}

/* Pullquote */
.wp-block-pullquote {
	border: 0;
	border-top: 2px solid var(--ap-teal);
	border-bottom: 1px solid var(--ap-line);
	padding: 2rem 0;
	text-align: left;
}

.wp-block-pullquote blockquote p {
	font-family: var(--wp--preset--font-family--exo-2);
	font-size: var(--wp--preset--font-size--x-large);
	font-weight: 600;
	line-height: 1.25;
	letter-spacing: -0.015em;
}

/* Tables */
.wp-block-table {
	overflow-x: auto;
}

.wp-block-table table {
	border-collapse: collapse;
	width: 100%;
	font-size: 0.975rem;
}

.wp-block-table :is(th, td) {
	border: 0;
	border-bottom: 1px solid var(--ap-line);
	padding: 0.8rem 1rem 0.8rem 0;
	text-align: left;
	vertical-align: top;
}

.wp-block-table thead {
	border-bottom: 0;
}

.wp-block-table thead th {
	font-family: var(--wp--preset--font-family--exo-2);
	font-weight: 600;
	border-bottom: 2px solid var(--ap-navy);
}

.wp-block-table.is-style-stripes {
	border-bottom: 0;
}

.wp-block-table.is-style-stripes tbody tr:nth-child(odd) {
	background: var(--wp--preset--color--mist);
}

.wp-block-table.is-style-stripes :is(th, td) {
	border: 0;
	padding-left: 1rem;
}

.wp-block-table figcaption {
	text-align: left;
}

/* Details (FAQ) */
.wp-block-details {
	border-bottom: 1px solid var(--ap-line);
	padding: 1.1rem 0;
}

.wp-block-details + .wp-block-details {
	margin-top: 0;
}

.wp-block-details summary {
	font-family: var(--wp--preset--font-family--exo-2);
	font-weight: 600;
	font-size: var(--wp--preset--font-size--large);
	cursor: pointer;
	list-style: none;
	position: relative;
	padding-right: 2.5rem;
}

.wp-block-details summary::-webkit-details-marker {
	display: none;
}

.wp-block-details summary::after {
	content: "";
	position: absolute;
	right: 0.25rem;
	top: 50%;
	width: 0.7rem;
	height: 0.7rem;
	border-right: 2px solid var(--ap-teal-ink);
	border-bottom: 2px solid var(--ap-teal-ink);
	transform: translateY(-70%) rotate(45deg);
	transition: transform 0.2s var(--ap-ease);
}

.wp-block-details[open] summary::after {
	transform: translateY(-30%) rotate(-135deg);
}

.wp-block-details > :not(summary) {
	color: var(--ap-slate);
}

/* Separator */
.wp-block-separator {
	border-top-width: 1px;
	opacity: 1;
}

.wp-block-separator:not(.is-style-wide):not(.is-style-dots) {
	width: 4rem;
	border-top: 2px solid var(--ap-teal);
}

/* short rule aligns with the text column instead of centring */
.is-layout-constrained > .wp-block-separator:not(.is-style-wide):not(.is-style-dots) {
	margin-left: max(0px, calc((100% - var(--wp--style--global--content-size, 720px)) / 2)) !important;
}

.wp-block-separator.is-style-dots::before {
	color: var(--ap-teal);
	letter-spacing: 1.5em;
}

/* Images, captions, media & text */
.wp-block-image figcaption,
.wp-block-gallery figcaption {
	text-align: left;
	margin-top: 0.6rem;
}

.wp-block-media-text__media img {
	border-radius: 14px;
}

/* Cover: navy overlay default reads as brand */
.wp-block-cover {
	border-radius: 0;
}

.wp-block-cover.alignwide,
.wp-block-cover:not(.alignfull) {
	border-radius: 18px;
	overflow: hidden;
}

.wp-block-cover :is(h1, h2, h3) {
	color: #fff;
}

/* Group with a background colour gets breathing room by default */
.ap-content .wp-block-group.has-background:not(.alignfull) {
	border-radius: 18px;
}

.ap-content .wp-block-group.has-background:not(.alignfull):not([style*="padding"]) {
	padding: clamp(1.5rem, 3vw, 2.5rem);
}

/* Columns on navy */
:is(.has-navy-background-color, .has-navy-deep-background-color, .has-navy-soft-background-color) :is(h1, h2, h3, h4) {
	color: #fff;
}

:is(.has-navy-background-color, .has-navy-deep-background-color, .has-navy-soft-background-color) .has-slate-color {
	color: var(--ap-on-dark-muted) !important;
}

:is(.has-navy-background-color, .has-navy-deep-background-color, .has-navy-soft-background-color) .wp-block-button:not(.is-style-ap-line):not(.is-style-ap-mint) .wp-block-button__link:not(.has-background) {
	background: var(--ap-mint);
	color: var(--ap-navy);
}

/* Outline button (core style) */
.wp-block-button.is-style-outline .wp-block-button__link {
	background: transparent;
	color: inherit;
	border: 0;
	box-shadow: inset 0 0 0 1.5px currentColor;
	padding: 0.85rem 1.6rem;
}

/* File block */
.wp-block-file {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.75rem 1.25rem;
	padding: 1rem 1.25rem;
	background: var(--wp--preset--color--mist);
	border-radius: 12px;
}

.wp-block-file a:not(.wp-block-file__button) {
	font-weight: 700;
}

.wp-block-file .wp-block-file__button {
	margin-left: auto;
	background: var(--ap-navy);
	color: #fff;
	border-radius: 999px;
	padding: 0.55rem 1.1rem;
	font-family: var(--wp--preset--font-family--exo-2);
	font-weight: 600;
	font-size: 0.9375rem;
	text-decoration: none;
}

/* Tables of contents, verse, preformatted */
.wp-block-preformatted,
.wp-block-verse {
	background: var(--wp--preset--color--mist);
	border-radius: 10px;
	padding: 1rem 1.25rem;
}

/* =========================================================
   Forms (core search and common form plugins: CF7, WPForms,
   Gravity Forms, Fluent Forms)
   ========================================================= */

.ap-content :is(input[type="text"], input[type="email"], input[type="tel"], input[type="url"], input[type="number"], input[type="search"], input[type="date"], select, textarea),
.wp-block-search__input {
	width: 100%;
	max-width: 100%;
	font: inherit;
	color: var(--ap-navy);
	background: #fff;
	border: 1px solid #BFCBD8;
	border-radius: 10px;
	padding: 0.75rem 1rem;
	transition: border-color 0.15s var(--ap-ease), box-shadow 0.15s var(--ap-ease);
}

.ap-content textarea {
	min-height: 9rem;
	resize: vertical;
}

.ap-content :is(input, select, textarea):focus,
.wp-block-search__input:focus {
	outline: none;
	border-color: var(--ap-teal);
	box-shadow: 0 0 0 3px rgba(60, 185, 179, 0.25);
}

.ap-content label {
	display: block;
	font-weight: 700;
	font-size: 0.9375rem;
	margin-bottom: 0.35rem;
}

.ap-content :is(input[type="submit"], button[type="submit"], .wpcf7-submit, .wpforms-submit, .gform_button, .ff-btn-submit) {
	appearance: none;
	border: 0;
	cursor: pointer;
	background: var(--ap-navy) !important;
	color: #fff !important;
	border-radius: 999px !important;
	padding: 0.85rem 1.75rem !important;
	font-family: var(--wp--preset--font-family--exo-2) !important;
	font-weight: 600 !important;
	font-size: 1rem !important;
	width: auto;
}

.ap-content :is(input[type="submit"], button[type="submit"], .wpcf7-submit, .wpforms-submit, .gform_button, .ff-btn-submit):hover {
	background: var(--wp--preset--color--navy-soft) !important;
}

.ap-content .wpcf7-not-valid-tip,
.ap-content .wpforms-error {
	color: #B42318;
	font-size: 0.875rem;
}

.ap-content .wpcf7-response-output {
	border-radius: 10px;
	margin: 1rem 0 0 !important;
	padding: 0.8rem 1rem !important;
}

/* Section patterns for pages */
.ap-summary .wp-block-column {
	border-top: 2px solid var(--ap-navy);
	padding-top: 1.1rem;
}

.ap-summary h3 {
	margin: 0 0 0.5rem;
}

.ap-contactlist p {
	margin: 0;
	line-height: 1.55;
}

.ap-contactlist strong {
	font-family: var(--wp--preset--font-family--exo-2);
	font-weight: 600;
}

.wp-block-media-text .wp-block-media-text__content {
	padding: 0 0 0 clamp(1.5rem, 5vw, 4.5rem);
}

.wp-block-media-text.has-media-on-the-right .wp-block-media-text__content {
	padding: 0 clamp(1.5rem, 5vw, 4.5rem) 0 0;
}

@media (max-width: 600px) {
	.wp-block-media-text.is-stacked-on-mobile .wp-block-media-text__content {
		padding: 1.75rem 0 0;
	}
}
