/*
 * ABM base styles: only what theme.json can't express.
 * Tokens come from theme.json (var(--wp--preset--*) and var(--wp--custom--*)).
 */

/* ---------- Base ---------- */

/* Header, main and footer sit flush; sections set their own spacing. */
.wp-site-blocks > * + * {
	margin-block-start: 0;
}

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

h1, h2, h3, h4, h5, h6,
.wp-block-post-title {
	text-wrap: balance;
}

p {
	text-wrap: pretty;
}

/* Headline links take the heading colour; hover goes blue. */
:where(h1, h2, h3, h4, h5, h6, .wp-block-post-title) a {
	color: inherit;
	text-decoration: none;
}

:where(h1, h2, h3, h4, h5, h6, .wp-block-post-title) a:hover {
	color: var(--wp--preset--color--blue);
}

/* Visible focus everywhere, not only on links and buttons. */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 2px solid var(--wp--preset--color--blue);
	outline-offset: 2px;
}

img {
	max-width: 100%;
	height: auto;
}

/* Cropped images fill their box; text baked into images keeps its centre. */
.wp-block-post-featured-image img,
.abm-cover img {
	object-fit: cover;
}

/* ---------- Wordmark (D1 default: typeset logo) ---------- */

/* TODO(decision): D1 — typeset wordmark until a logo file is supplied. */
.abm-wordmark {
	display: inline-flex;
	flex-direction: column;
	line-height: 1;
	text-decoration: none;
	font-family: var(--wp--preset--font-family--logo);
	flex-shrink: 0;
}

.abm-wordmark__top {
	font-size: 11px;
	font-style: italic;
	font-weight: 500;
	color: #2A2E33;
}

.abm-wordmark__main {
	font-size: 36px;
	font-weight: 700;
	letter-spacing: -0.02em;
	color: var(--wp--preset--color--navy);
}

.abm-wordmark:hover .abm-wordmark__main {
	color: var(--wp--preset--color--blue);
}

.abm-wordmark--light .abm-wordmark__top {
	font-size: 12px;
	color: #C9D1D8;
}

.abm-wordmark--light .abm-wordmark__main {
	font-size: 44px;
	color: var(--wp--preset--color--white);
}

/* ---------- Pills ---------- */

.abm-pill,
.is-style-abm-pill {
	display: inline-flex;
	align-items: center;
	padding: 6px 14px;
	border-radius: var(--wp--custom--radius--pill);
	background: var(--wp--preset--color--cyan);
	color: #0B1620;
	font-size: var(--wp--preset--font-size--meta);
	font-weight: 700;
	line-height: 1.4;
	text-decoration: none;
}

.abm-chip {
	display: inline-flex;
	align-items: center;
	height: 36px;
	padding: 0 16px;
	border-radius: var(--wp--custom--radius--pill);
	background: var(--wp--preset--color--cyan-tint);
	color: #0A5E8D;
	font-size: 14px;
	font-weight: 600;
	text-decoration: none;
}

.abm-chip:hover {
	background: var(--wp--preset--color--blue);
	color: var(--wp--preset--color--white);
}

/* Outline button style for secondary actions. */
.wp-block-button.is-style-outline > .wp-block-button__link {
	background: transparent;
	color: var(--wp--preset--color--ink);
	box-shadow: inset 0 0 0 1px #DCE2E7;
	padding: 13px 24px;
}

.wp-block-button.is-style-outline > .wp-block-button__link:hover {
	background: var(--wp--preset--color--soft);
	color: var(--wp--preset--color--blue);
}

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

.abm-header {
	position: sticky;
	top: 0;
	z-index: 50;
	border-bottom: 1px solid var(--wp--preset--color--line);
}

/* The frosted background sits on a layer behind the header, not on the header itself: a
   backdrop-filter on the header would trap the full-screen mobile menu inside the header bar. */
.abm-header::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: rgba(255, 255, 255, 0.94);
	backdrop-filter: saturate(1.4) blur(8px);
}

.admin-bar .abm-header {
	top: var(--wp-admin--admin-bar--height, 32px);
}

.abm-header__inner {
	min-height: var(--wp--custom--header-height);
}

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

/* The mockup's footer is square-cornered and full width (the spec's 36px corners lose to it). */
.abm-footer h3 {
	font-family: var(--wp--preset--font-family--body);
	font-size: 14px !important;
	font-weight: 700;
	letter-spacing: 0;
	margin: 0 0 4px;
}

.abm-footer .wp-block-column {
	display: flex;
	flex-direction: column;
	gap: 10px;
	font-size: 15px;
}

.abm-footer .wp-block-column:first-child p {
	max-width: 42ch;
	font-size: 15px;
	line-height: 1.6;
}

/* Social icons (pattern abm/social-links): header and mobile menu. */
.abm-social.wp-block-social-links {
	gap: 4px;
	margin: 0;
	padding: 0;
}

.abm-social .wp-social-link {
	margin: 0;
}

.abm-social .wp-block-social-link-anchor {
	width: 40px;
	height: 40px;
	padding: 0 !important;
	border-radius: var(--wp--custom--radius--pill);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: background-color 0.15s ease, color 0.15s ease;
}

.abm-social .wp-block-social-link-anchor svg {
	width: 20px;
	height: 20px;
}

.abm-header .abm-social .wp-social-link {
	color: var(--wp--preset--color--ink);
}

.abm-header .abm-social .wp-social-link:hover {
	color: var(--wp--preset--color--blue);
	background: var(--wp--preset--color--soft);
	border-radius: var(--wp--custom--radius--pill);
	transform: none;
}

@media (max-width: 599px) {
	.abm-header .abm-social {
		display: none;
	}
}

.abm-footer a {
	color: var(--wp--preset--color--footer-text);
	text-decoration: none;
}

.abm-footer a:hover {
	color: var(--wp--preset--color--sky);
}

.abm-footer .wp-block-column p {
	margin: 0;
}

.abm-footer__legal {
	margin-top: 48px;
	padding-top: 24px;
	border-top: 1px solid #2E3439;
}

/* ---------- Feed rows ---------- */

.abm-feed {
	margin: 0;
	padding: 0;
}

.abm-feed .wp-block-post {
	margin: 0;
}

.abm-feed .wp-block-post:first-child .abm-feed-row {
	padding-top: 0;
}

.abm-kicker {
	font-size: var(--wp--preset--font-size--meta);
	color: var(--wp--preset--color--muted);
	line-height: 1.4;
}

.abm-kicker a,
.abm-kicker .wp-block-post-terms a {
	color: var(--wp--preset--color--blue);
	font-weight: 700;
	text-decoration: none;
}

/* ---------- Motion ---------- */

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}

/* ---------- Primary navigation (pills) ---------- */

.abm-primary-nav .wp-block-navigation-item__content {
	padding: 10px 14px;
	border-radius: var(--wp--custom--radius--pill);
	font-weight: 600;
	color: var(--wp--preset--color--ink);
	text-decoration: none;
	white-space: nowrap;
}

.abm-primary-nav .wp-block-navigation-item__content:hover,
.abm-primary-nav .current-menu-item > .wp-block-navigation-item__content,
.abm-primary-nav .wp-block-navigation-item__content[aria-current] {
	background: var(--wp--preset--color--cyan-tint);
	color: var(--wp--preset--color--blue);
}

.abm-header .wp-block-navigation {
	flex-grow: 1;
}

/* Mobile menu (navigation overlay): full screen, large section links, social icons. */
/* (No `display` here: core shows the open button only under 600px.) */
.abm-primary-nav .wp-block-navigation__responsive-container-open,
.abm-primary-nav .wp-block-navigation__responsive-container-close {
	width: 44px;
	height: 44px;
	align-items: center;
	justify-content: center;
	border-radius: var(--wp--custom--radius--pill);
	color: var(--wp--preset--color--ink);
}

/* Phones and tablets: the six sections don't fit beside the logo, search and icons under
   1200px, so use the menu button there too (core switches only under 600px). */
@media (min-width: 600px) and (max-width: 1199px) {
	.abm-primary-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
		display: none;
	}
}

/* Logo left; search, icons, then the menu button, right. */
@media (max-width: 1199px) {
	.abm-header .abm-wordmark {
		margin-right: auto;
	}

	.abm-header .wp-block-navigation.abm-primary-nav {
		flex-grow: 0;
		order: 3;
	}

	.abm-primary-nav .wp-block-navigation__responsive-container-open {
		display: inline-flex;
		margin-right: -8px;
	}
}

.abm-primary-nav .wp-block-navigation__responsive-container-open svg,
.abm-primary-nav .wp-block-navigation__responsive-container-close svg {
	width: 28px;
	height: 28px;
}

.abm-primary-nav .wp-block-navigation__responsive-container.is-menu-open {
	padding: calc(14px + env(safe-area-inset-top, 0px)) 16px calc(32px + env(safe-area-inset-bottom, 0px));
	background: var(--wp--preset--color--white);
	color: var(--wp--preset--color--ink);
}

.admin-bar .abm-primary-nav .wp-block-navigation__responsive-container.is-menu-open {
	top: var(--wp-admin--admin-bar--height, 46px);
}

.abm-primary-nav .is-menu-open .wp-block-navigation__responsive-container-close {
	top: calc(14px + env(safe-area-inset-top, 0px));
	right: 12px;
}

.abm-primary-nav .is-menu-open .wp-block-navigation__responsive-container-content {
	padding-top: 64px !important;
	align-items: stretch !important;
	gap: 28px !important;
}

.abm-primary-nav .is-menu-open .wp-block-navigation__container {
	width: 100%;
	gap: 0 !important;
	align-items: stretch !important;
}

.abm-primary-nav .is-menu-open .wp-block-navigation-item {
	width: 100%;
	border-bottom: 1px solid var(--wp--preset--color--line);
}

.abm-primary-nav .is-menu-open .wp-block-navigation-item__content {
	display: flex !important;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	padding: 18px 4px !important;
	border-radius: 0;
	background: none !important;
	font-family: var(--wp--preset--font-family--display);
	font-size: 26px;
	line-height: 1.15;
	font-weight: 700;
	letter-spacing: -0.025em;
	color: var(--wp--preset--color--ink) !important;
}

.abm-primary-nav .is-menu-open .wp-block-navigation-item__content::after {
	content: "→";
	font-family: var(--wp--preset--font-family--body);
	font-size: 20px;
	font-weight: 500;
	color: var(--wp--preset--color--muted);
	transition: transform 0.15s ease, color 0.15s ease;
}

.abm-primary-nav .is-menu-open .wp-block-navigation-item__content:hover::after,
.abm-primary-nav .is-menu-open .wp-block-navigation-item__content:focus-visible::after {
	color: var(--wp--preset--color--blue);
	transform: translateX(4px);
}

.abm-primary-nav .is-menu-open .wp-block-navigation-item__content[aria-current] {
	color: var(--wp--preset--color--blue) !important;
}

/* Social icons are inside the navigation only for the mobile menu. */
.abm-primary-nav .abm-social {
	display: none !important;
}

.abm-primary-nav .is-menu-open .abm-social {
	display: flex !important;
	gap: 8px;
	margin-left: -8px;
}

.abm-primary-nav .is-menu-open .abm-social .wp-social-link {
	color: var(--wp--preset--color--ink);
}

.abm-primary-nav .is-menu-open .abm-social .wp-block-social-link-anchor {
	width: 48px;
	height: 48px;
}

.abm-primary-nav .is-menu-open .abm-social .wp-block-social-link-anchor svg {
	width: 24px;
	height: 24px;
}

/* Search: 44px circle button that reveals the field. */
.abm-header-search .wp-block-search__button {
	width: 44px;
	height: 44px;
	padding: 0;
	margin: 0;
	border-radius: var(--wp--custom--radius--pill);
	border: 1px solid #DCE2E7;
	background: var(--wp--preset--color--white);
	color: var(--wp--preset--color--ink);
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.abm-header-search .wp-block-search__button svg {
	width: 20px;
	height: 20px;
	fill: currentColor;
}

.abm-header-search .wp-block-search__input {
	border-radius: var(--wp--custom--radius--pill);
	border: 1px solid #DCE2E7;
	padding-inline: 16px;
	font-size: 15px;
}

@media (max-width: 859px) {
	.abm-header__inner {
		gap: 12px !important;
	}

	.abm-wordmark__main {
		font-size: 30px;
	}
}

/* ---------- Feed rows ---------- */

.abm-feed-row {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 260px;
	gap: 28px;
	align-items: start;
}

.abm-feed-row:not(:has(.wp-block-post-featured-image)) {
	grid-template-columns: minmax(0, 1fr);
}

.abm-feed-row .wp-block-post-title {
	margin: 0;
}

.abm-feed-row .wp-block-post-excerpt,
.abm-feed-row .wp-block-post-excerpt__excerpt {
	margin: 0;
}

.abm-feed-row__image {
	margin: 0;
	overflow: hidden;
	border-radius: var(--wp--custom--radius--thumb);
}

.abm-feed-row__image img {
	transition: transform 0.4s ease;
}

.abm-feed-row__image a:hover img {
	transform: scale(1.04);
}

@media (max-width: 859px) {
	.abm-feed-row {
		grid-template-columns: minmax(0, 1fr);
		gap: 16px;
	}

	.abm-feed-row__image {
		order: -1;
		width: 100% !important;
	}
}

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

.abm-pagination {
	gap: 8px;
	font-weight: 600;
}

.abm-pagination a,
.abm-pagination .page-numbers {
	min-width: 44px;
	height: 44px;
	padding: 0 14px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: var(--wp--custom--radius--pill);
	background: var(--wp--preset--color--soft);
	color: var(--wp--preset--color--ink);
	text-decoration: none;
}

.abm-pagination .page-numbers.current {
	background: var(--wp--preset--color--blue);
	color: var(--wp--preset--color--white);
}

.abm-pagination .page-numbers.dots {
	background: transparent;
}

/* =========================================================================
 * Article (templates/single.html), matched to design/mockups/article.html
 * ========================================================================= */

.abm-progress {
	position: fixed;
	top: 0;
	left: 0;
	z-index: 100;
	width: 100%;
	height: 3px;
	margin: 0 !important;
	background: var(--wp--preset--color--cyan);
	transform: scaleX(0);
	transform-origin: 0 50%;
}

.admin-bar .abm-progress {
	top: var(--wp-admin--admin-bar--height, 32px);
}

@media (prefers-reduced-motion: reduce) {
	.abm-progress {
		display: none;
	}
}

.abm-article > * {
	margin-block: 0;
}

.abm-crumbs {
	display: flex;
	gap: 8px;
	align-items: center;
	padding-top: 28px;
	font-size: 14px;
	color: var(--wp--preset--color--muted);
}

.abm-crumbs a {
	color: var(--wp--preset--color--muted);
	font-weight: 600;
	text-decoration: none;
}

.abm-crumbs a:hover {
	color: var(--wp--preset--color--blue);
}

.abm-article-head {
	max-width: 880px;
	margin: 0 auto !important;
	padding-top: 36px;
	text-align: center;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 22px;
}

.abm-article-head > * {
	margin: 0 !important;
}

.abm-article-head__cats a {
	font-size: 13px;
	padding: 6px 14px;
}

.abm-article-head__title {
	font-size: clamp(36px, 5.4vw, 64px) !important;
	line-height: 1 !important;
	font-weight: 700;
	text-wrap: balance;
}

.abm-article-head__dek,
.abm-article-head__dek p {
	margin: 0;
	font-size: 21px;
	line-height: 1.5;
	color: var(--wp--preset--color--body);
	max-width: 62ch;
	text-wrap: pretty;
}

.abm-article-head__dek .wp-block-post-excerpt__more-text {
	display: none;
}

.abm-byline {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	gap: 14px;
	font-size: 15px;
	color: var(--wp--preset--color--muted);
}

.abm-byline > * {
	margin: 0 !important;
}

.abm-byline__author::before {
	content: "By ";
	color: var(--wp--preset--color--muted);
}

.abm-byline__author a {
	color: var(--wp--preset--color--ink);
	font-weight: 700;
	text-decoration: none;
}

.abm-byline__date::before,
.abm-byline__time::before {
	content: "";
	display: inline-block;
	width: 4px;
	height: 4px;
	border-radius: 999px;
	background: #B5BEC6;
	vertical-align: middle;
	margin: 0 14px 0 0;
}

.abm-byline__date,
.abm-byline__time {
	font-size: 15px !important;
	color: var(--wp--preset--color--muted);
}

/* Avatar: uploaded photo or initials on navy. */
.abm-avatar {
	margin: 0;
	flex-shrink: 0;
}

.abm-avatar__initials {
	--abm-avatar: 48px;
	width: var(--abm-avatar);
	height: var(--abm-avatar);
	border-radius: 999px;
	background: var(--wp--preset--color--navy);
	color: var(--wp--preset--color--white);
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--wp--preset--font-family--display);
	font-weight: 700;
	font-size: calc(var(--abm-avatar) * 0.35);
	letter-spacing: 0;
}

.abm-avatar__img {
	border-radius: 999px;
	display: block;
}

.abm-article-image {
	max-width: 1200px;
	margin: 44px auto 0 !important;
	border-radius: 28px;
	overflow: hidden;
}

.abm-article-image img {
	object-position: 30% 50%;
}

/* Three columns: share rail / 680px body / empty. */
.abm-article-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 680px) minmax(0, 1fr);
	gap: 40px;
	margin-top: 56px !important;
}

.abm-article-grid > * {
	margin: 0 !important;
}

.abm-article-grid__main {
	grid-column: 2;
	min-width: 0;
}

.abm-share--rail {
	position: sticky;
	top: 120px;
	align-self: start;
	justify-self: end;
	display: flex;
	flex-direction: column;
	gap: 10px;
	align-items: center;
}

.abm-share__label {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
	margin-bottom: 4px;
}

.abm-share__btn {
	width: 44px;
	height: 44px;
	border-radius: 999px;
	border: 0;
	background: var(--wp--preset--color--soft);
	color: var(--wp--preset--color--ink);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition: background 0.2s, color 0.2s;
}

.abm-share__btn:hover {
	background: var(--wp--preset--color--cyan-tint);
	color: var(--wp--preset--color--blue);
}

.abm-share__btn.is-done {
	background: var(--wp--preset--color--blue);
	color: var(--wp--preset--color--white);
}

.abm-share__status {
	font-size: 12px;
	font-weight: 700;
	color: var(--wp--preset--color--blue);
	min-height: 16px;
}

.abm-share--inline {
	display: none;
	gap: 8px;
	align-items: center;
}

/* Body. */
.abm-article-body {
	font-size: 19px;
	line-height: 1.72;
	color: var(--wp--preset--color--article);
}

.abm-article-body > * {
	margin-block: 0 1.25em;
}

.abm-article-body h2 {
	font-size: 30px;
	line-height: 1.15;
	letter-spacing: -0.02em;
	margin: 1.8em 0 0.6em;
}

.abm-article-body h3 {
	font-size: 23px;
	line-height: 1.2;
	margin: 1.6em 0 0.5em;
}

.abm-article-body h4 {
	font-size: 20px;
	margin: 1.4em 0 0.4em;
}

.abm-article-body a {
	color: var(--wp--preset--color--blue);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}

.abm-article-body ul,
.abm-article-body ol {
	padding-left: 1.3em;
}

.abm-article-body li + li {
	margin-top: 0.4em;
}

.abm-article-body blockquote {
	margin: 1.8em 0;
	padding: 0 0 0 24px;
	border-left: 3px solid var(--wp--preset--color--cyan);
	font-size: 22px;
	line-height: 1.45;
	color: var(--wp--preset--color--ink);
}

.abm-article-body table {
	width: 100%;
	border-collapse: collapse;
	font-size: 16px;
}

.abm-article-body th,
.abm-article-body td {
	padding: 10px 12px;
	border-bottom: 1px solid var(--wp--preset--color--line);
	text-align: left;
}

.abm-article-body figcaption {
	font-size: 13px;
	color: var(--wp--preset--color--muted);
	text-align: center;
	margin-top: 10px;
}

/* Legacy posts (2013–2015): paragraphs that are entirely bold act as subheads and questions. */
.abm-article-body > p:has(> strong:only-child):not(:has(> :not(strong))) {
	font-family: var(--wp--preset--font-family--display);
	font-size: 22px;
	line-height: 1.3;
	letter-spacing: -0.015em;
	color: var(--wp--preset--color--ink);
	margin-top: 1.6em;
	margin-bottom: 0.5em;
}

/* Legacy inline images: no alignment, captions or alt text. */
.abm-article-body img {
	border-radius: var(--wp--custom--radius--thumb);
	height: auto;
}

.abm-article-body > p > img:only-child,
.abm-article-body > p > a > img:only-child {
	display: block;
	margin: 0.4em auto;
}

@media (min-width: 860px) {
	.abm-article-body .alignleft {
		float: left;
		margin: 0.3em 1.5em 1em 0;
		max-width: 50%;
	}

	.abm-article-body .alignright {
		float: right;
		margin: 0.3em 0 1em 1.5em;
		max-width: 50%;
	}
}

/* Opt-in drop cap block style (core "Drop cap" setting). */
.abm-article-body .has-drop-cap:not(:focus)::first-letter {
	font-family: var(--wp--preset--font-family--display);
	float: left;
	font-size: 4.1em;
	line-height: 0.82;
	font-weight: 800;
	color: var(--wp--preset--color--navy);
	margin: 0.06em 0.1em 0 0;
	text-transform: none;
}

/* Tags + inline share. */
.abm-after {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	flex-wrap: wrap;
	margin-top: 40px !important;
}

.abm-after > * {
	margin: 0 !important;
}

.abm-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.abm-tags a {
	height: 36px;
	padding: 0 16px;
	border-radius: var(--wp--custom--radius--pill);
	background: var(--wp--preset--color--cyan-tint);
	color: #0A5E8D;
	display: inline-flex;
	align-items: center;
	font-size: 14px;
	font-weight: 600;
	text-decoration: none;
}

.abm-tags a:hover {
	background: var(--wp--preset--color--blue);
	color: var(--wp--preset--color--white);
}

.abm-tags .wp-block-post-terms__separator {
	display: none;
}

/* Author box. */
.abm-author {
	margin-top: 48px !important;
	display: flex;
	gap: 20px;
	align-items: flex-start;
}

.abm-author__text > * {
	margin: 0 0 6px !important;
}

.abm-author__name {
	font-family: var(--wp--preset--font-family--display);
	font-size: 20px;
	font-weight: 700;
	letter-spacing: -0.025em;
	color: var(--wp--preset--color--ink);
}

.abm-author__bio {
	font-size: 16px;
	line-height: 1.55;
	color: var(--wp--preset--color--body);
}

.abm-author__more a {
	font-size: 15px;
	font-weight: 700;
	color: var(--wp--preset--color--blue);
	text-decoration: none;
}

/* Keep reading band. */
.abm-keep {
	background: var(--wp--preset--color--soft);
	margin-top: 96px !important;
	padding-block: 72px 80px;
	border-radius: 36px 36px 0 0;
}

.abm-keep__inner {
	max-width: 1320px;
	margin: 0 auto;
	padding-inline: var(--wp--custom--gutter);
}

.abm-keep__head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 16px;
	flex-wrap: wrap;
	margin-bottom: 32px;
}

.abm-keep__head .abm-section-title {
	font-size: clamp(32px, 2.4vw + 10px, 40px);
}

.abm-keep__more {
	font-size: 15px;
	font-weight: 700;
	color: var(--wp--preset--color--blue);
	text-decoration: none;
}

.abm-keep__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr));
	gap: 36px;
}

.abm-rel {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.abm-rel__img {
	display: block;
	border-radius: 22px;
	overflow: hidden;
	aspect-ratio: 3 / 2;
	background: #D5DEE7;
}

.abm-rel__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.4s ease;
}

.abm-rel:hover .abm-rel__img img {
	transform: scale(1.04);
}

.abm-rel__placeholder {
	display: block;
	width: 100%;
	height: 100%;
	background: linear-gradient(160deg, #D5DEE7, #B9C6D3);
}

.abm-rel__meta {
	margin: 0;
	font-size: 13px;
	color: var(--wp--preset--color--muted);
}

.abm-rel__kicker {
	font-weight: 700;
	color: var(--wp--preset--color--blue);
	text-decoration: none;
}

.abm-rel__title {
	margin: 0;
	font-size: 23px;
	line-height: 1.15;
}

/* Comments: "Join the conversation". */
.abm-talk {
	padding-block: 72px 0;
}

.abm-comments .abm-section-title {
	font-size: 32px;
	margin: 0 0 6px;
}

.abm-comment {
	padding: 20px 0;
	border-bottom: 1px solid var(--wp--preset--color--line);
}

.abm-comment > * {
	margin: 0 0 8px !important;
}

.abm-comment__meta {
	gap: 10px;
	font-size: 14px;
}

.abm-comment__meta .wp-block-comment-author-name {
	font-weight: 700;
}

.abm-comment__meta .wp-block-comment-date,
.abm-comment__meta .wp-block-comment-date a {
	color: var(--wp--preset--color--muted);
	text-decoration: none;
}

.abm-comments .comment-respond {
	margin-top: 48px;
}

.abm-comments .comment-notes,
.abm-comments .logged-in-as {
	margin: 0 0 28px;
	color: var(--wp--preset--color--muted);
	font-size: 16px;
}

.abm-comments .comment-form {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
}

.abm-comments .comment-form > * {
	grid-column: 1 / -1;
	margin: 0;
}

.abm-comments .comment-form-author,
.abm-comments .comment-form-email {
	grid-column: auto;
}

.abm-comments .comment-form-url {
	display: none;
}

.abm-comments .comment-form label {
	display: block;
	margin-bottom: 6px;
	font-size: 14px;
	font-weight: 600;
	color: var(--wp--preset--color--ink);
}

.abm-comments .comment-form input[type="text"],
.abm-comments .comment-form input[type="email"],
.abm-comments .comment-form textarea {
	width: 100%;
	box-sizing: border-box;
	font: inherit;
	font-size: 16px;
	border: 0;
	background: var(--wp--preset--color--soft);
	border-radius: 14px;
	padding: 14px 16px;
	color: var(--wp--preset--color--ink);
}

.abm-comments .comment-form textarea {
	min-height: 140px;
	resize: vertical;
}

.abm-comments .comment-form input:focus,
.abm-comments .comment-form textarea:focus {
	outline: 2px solid var(--wp--preset--color--blue);
	outline-offset: 1px;
	background: var(--wp--preset--color--white);
}

.abm-comments .comment-form-cookies-consent {
	display: flex;
	gap: 8px;
	align-items: flex-start;
	font-size: 14px;
	color: var(--wp--preset--color--muted);
}

.abm-comments .comment-form-cookies-consent label {
	font-weight: 400;
	color: var(--wp--preset--color--muted);
}

.abm-comments .form-submit .submit {
	height: 48px;
	padding: 0 26px;
	border: 0;
	border-radius: 999px;
	background: var(--wp--preset--color--blue);
	color: var(--wp--preset--color--white);
	font: inherit;
	font-size: 15px;
	font-weight: 700;
	cursor: pointer;
}

.abm-comments .form-submit .submit:hover {
	background: var(--wp--preset--color--navy);
}

.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap;
}

/* Article: narrower screens. */
@media (max-width: 1100px) {
	.abm-article-grid {
		grid-template-columns: minmax(0, 680px);
		justify-content: center;
	}

	.abm-article-grid__main {
		grid-column: 1;
	}

	.abm-share--rail {
		display: none;
	}

	.abm-share--inline {
		display: flex;
	}

	.abm-share--inline .abm-share__status {
		min-height: 0;
	}
}

@media (max-width: 760px) {
	.abm-article-head__title {
		font-size: 40px !important;
	}

	.abm-article-head__dek,
	.abm-article-head__dek p {
		font-size: 19px;
	}

	.abm-byline {
		row-gap: 6px;
	}

	.abm-byline__date::before {
		display: none;
	}

	.abm-byline__date {
		flex-basis: auto;
	}

	.abm-article-body {
		font-size: 18px;
	}

	.abm-article-image {
		border-radius: 20px;
		margin-top: 32px !important;
	}

	.abm-keep {
		border-radius: 28px 28px 0 0;
		padding-block: 56px 64px;
	}

	.abm-comments .comment-form {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* ---------- Style guide swatches (dev style guide page) ---------- */

.abm-sg-swatch {
	min-height: 96px;
	padding: 14px 16px;
	border-radius: var(--wp--custom--radius--thumb);
	box-shadow: inset 0 0 0 1px rgba(18, 21, 24, 0.08);
	font-size: var(--wp--preset--font-size--meta);
	line-height: 1.4;
}

.abm-sg-swatch p {
	margin: 0;
}

/* =========================================================================
 * Homepage (templates/front-page.html), matched to design/mockups/homepage.html
 * ========================================================================= */

.abm-home > * {
	margin-block: 0;
}

.abm-section-title {
	margin: 0;
	font-size: clamp(30px, 2.4vw + 10px, 36px);
	font-weight: 700;
	line-height: 1.05;
}

.abm-section-head {
	margin-bottom: 8px;
	align-items: center;
}

.abm-section-head--end {
	align-items: flex-end;
	margin-bottom: 28px;
}

.abm-section-link {
	margin: 0;
}

.abm-section-link a {
	font-size: 15px;
	font-weight: 700;
	color: var(--wp--preset--color--blue);
	text-decoration: none;
}

.abm-section-sub {
	margin: 6px 0 0;
	font-size: 17px;
	color: var(--wp--preset--color--body);
}

/* Category pills (cyan background, dark text). */
.abm-pills a {
	display: inline-flex;
	align-items: center;
	padding: 6px 12px;
	border-radius: var(--wp--custom--radius--pill);
	background: var(--wp--preset--color--cyan);
	color: #0B1620 !important;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.2;
	text-decoration: none;
}

.abm-pills .wp-block-post-terms__separator {
	display: none;
}

.abm-pills {
	display: flex;
	gap: 6px;
	flex-wrap: wrap;
}

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

.abm-hero {
	padding-top: 48px;
	padding-bottom: 56px;
}

.abm-hero a {
	color: var(--wp--preset--color--white);
	text-decoration: none;
}

.abm-hero a:hover {
	color: var(--wp--preset--color--sky);
}

.abm-hero .wp-block-post-template,
.abm-hero .wp-block-post {
	margin: 0;
	padding: 0;
	list-style: none;
}

.abm-hero__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 440px), 1fr));
	gap: 48px;
	align-items: center;
}

.abm-hero__text {
	display: flex;
	flex-direction: column;
	gap: 24px;
	min-width: 0;
}

.abm-hero__text > * {
	margin: 0 !important;
}

.abm-hero__meta {
	gap: 10px;
	align-items: center;
}

.abm-hero__byline {
	gap: 0;
	font-size: 13px;
	color: var(--wp--preset--color--footer-text);
}

.abm-hero__byline .wp-block-post-date,
.abm-hero__byline .wp-block-post-author-name {
	font-size: 13px;
	color: var(--wp--preset--color--footer-text);
}

.abm-hero__byline .wp-block-post-author-name::before {
	content: " · By ";
	white-space: pre;
}

.abm-hero__title {
	font-size: clamp(40px, 3.6vw + 8px, 60px) !important;
	line-height: 1 !important;
	font-weight: 700;
	letter-spacing: -0.025em;
}

.abm-hero__dek,
.abm-hero__dek p {
	margin: 0;
	font-size: 19px;
	line-height: 1.55;
	color: #C9D1D8;
	max-width: 52ch;
}

.abm-hero__more {
	align-self: flex-start;
	height: 48px;
	padding: 0 24px;
	border-radius: var(--wp--custom--radius--pill);
	background: var(--wp--preset--color--white);
	color: var(--wp--preset--color--ink) !important;
	display: inline-flex !important;
	align-items: center;
	gap: 10px;
	font-size: 15px;
	font-weight: 700;
}

.abm-hero__more::after {
	content: "";
	width: 16px;
	height: 16px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
}

.abm-hero__more:hover {
	background: var(--wp--preset--color--sky);
	color: var(--wp--preset--color--ink) !important;
}

.abm-hero__image {
	margin: 0;
	border-radius: 20px;
	overflow: hidden;
}

.abm-hero__image img,
.abm-mini__image img,
.abm-feed-row__image img,
.abm-person__image img {
	transition: transform 0.4s ease;
}

.abm-hero__image a:hover img,
.abm-mini a:hover img,
.abm-feed-row__image a:hover img,
.abm-person:hover img {
	transform: scale(1.04);
}

/* Homepage hero carousel (templates/front-page.html, assets/js/carousel.js): the hero's post list
   becomes a horizontal scroll-snap track, one story per slide. */
.abm-carousel .wp-block-post-template {
	display: flex;
	align-items: flex-start;
	transition: height 0.3s ease;
	overflow-x: auto;
	overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
}

.abm-carousel .wp-block-post-template::-webkit-scrollbar {
	display: none;
}

/* position: relative keeps absolutely positioned bits (the read-more link's screen-reader
   text) inside the scroller; otherwise off-screen slides widen the page. */
.abm-carousel .wp-block-post-template > li {
	position: relative;
	flex: 0 0 100%;
	min-width: 0;
	scroll-snap-align: start;
	scroll-snap-stop: always;
}

.abm-carousel__controls {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-top: 32px;
}

.abm-carousel__controls button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
	color: var(--wp--preset--color--white);
	cursor: pointer;
}

.abm-carousel__arrow,
.abm-carousel__toggle {
	width: 44px;
	height: 44px;
	border-radius: var(--wp--custom--radius--pill);
	border: 1px solid rgba(255, 255, 255, 0.28) !important;
	transition: background-color 0.15s ease, border-color 0.15s ease;
}

.abm-carousel__arrow:hover,
.abm-carousel__toggle:hover {
	background: rgba(255, 255, 255, 0.1);
	border-color: rgba(255, 255, 255, 0.6) !important;
}

.abm-carousel__toggle {
	margin-left: 4px !important;
}

.abm-carousel__dots {
	display: flex;
	align-items: center;
}

.abm-carousel__dot {
	height: 44px;
	padding: 0 5px !important;
}

.abm-carousel__dot span {
	position: relative;
	display: block;
	width: 8px;
	height: 8px;
	border-radius: 999px;
	overflow: hidden;
	background: rgba(255, 255, 255, 0.35);
	transition: width 0.25s ease, background-color 0.15s ease;
}

.abm-carousel__dot:hover span {
	background: rgba(255, 255, 255, 0.7);
}

.abm-carousel__dot[aria-current="true"] span {
	width: 36px;
	background: rgba(255, 255, 255, 0.3);
}

/* The active dot fills over the autoplay interval; full when paused. */
.abm-carousel__dot[aria-current="true"] span::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
	background: var(--wp--preset--color--white);
	transform-origin: left;
}

.abm-carousel.is-running .abm-carousel__dot[aria-current="true"] span::after {
	animation: abm-carousel-progress 6s linear forwards;
}

@keyframes abm-carousel-progress {
	from {
		transform: scaleX(0);
	}

	to {
		transform: scaleX(1);
	}
}

.abm-carousel__controls button:focus-visible {
	outline: 2px solid var(--wp--preset--color--sky);
	outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
	.abm-carousel .wp-block-post-template {
		scroll-behavior: auto;
		transition: none;
	}

	.abm-carousel__dot span {
		transition: none;
	}
}

.abm-hero__secondary {
	margin-top: 48px !important;
	padding-top: 28px;
	border-top: 1px solid #2E3439;
}

.abm-hero__trio {
	display: grid !important;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
	gap: 28px;
}

.abm-mini {
	display: grid;
	grid-template-columns: 88px minmax(0, 1fr);
	gap: 16px;
	align-items: center;
}

.abm-mini__image {
	margin: 0;
	border-radius: 14px;
	overflow: hidden;
}

.abm-mini__text {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.abm-mini__text > * {
	margin: 0 !important;
}

.abm-mini__cat a {
	font-size: 12px;
	font-weight: 700;
	color: var(--wp--preset--color--sky) !important;
}

.abm-mini__cat {
	font-size: 12px;
	color: var(--wp--preset--color--sky);
}

.abm-mini__title {
	font-size: 18px !important;
	line-height: 1.2 !important;
	font-weight: 600 !important;
	letter-spacing: -0.025em;
}

/* ---------- Topic chips ---------- */

.abm-topics {
	border-bottom: 1px solid var(--wp--preset--color--line);
}

.abm-topics__list {
	margin: 0;
	padding: 24px 0;
	display: flex;
	gap: 10px;
	overflow-x: auto;
	scrollbar-width: none;
}

.abm-topics__list::-webkit-scrollbar {
	display: none;
}

.abm-topics .abm-links__label {
	font-size: 13px;
	font-weight: 700;
	color: var(--wp--preset--color--muted);
	align-self: center;
	margin-right: 6px;
	white-space: nowrap;
}

.abm-topics__list a {
	height: 40px;
	padding: 0 16px;
	border-radius: var(--wp--custom--radius--pill);
	background: var(--wp--preset--color--soft);
	color: var(--wp--preset--color--ink);
	display: inline-flex;
	align-items: center;
	font-size: 14px;
	font-weight: 600;
	white-space: nowrap;
	text-decoration: none;
	flex-shrink: 0;
}

.abm-topics__list a:hover {
	background: var(--wp--preset--color--cyan-tint);
	color: var(--wp--preset--color--blue);
}

/* ---------- Latest feed + sidebar ---------- */

.abm-latest {
	padding-top: 56px;
}

.abm-latest__grid {
	display: grid;
	grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
	gap: 56px;
	align-items: start;
}

.abm-latest__feed {
	min-width: 0;
}

.abm-latest .abm-feed {
	margin: 0;
	padding: 0;
}


.abm-feed-row {
	gap: 32px;
	align-items: center;
	padding: 28px 0;
	border-bottom: 1px solid var(--wp--preset--color--line);
}

.abm-feed-row__text {
	display: flex;
	flex-direction: column;
	gap: 10px;
	min-width: 0;
}

.abm-feed-row__text > * {
	margin: 0 !important;
}

.abm-kicker {
	gap: 10px !important;
	align-items: center;
}

.abm-kicker .wp-block-post-terms + .wp-block-post-date::before {
	content: "";
	display: inline-block;
	width: 4px;
	height: 4px;
	border-radius: 999px;
	background: #B5BEC6;
	vertical-align: middle;
	margin: 0 10px 0 0;
}

.abm-kicker .wp-block-post-terms,
.abm-kicker .wp-block-post-date {
	font-size: 13px;
}

.abm-feed-row__title {
	font-size: clamp(22px, 1.4vw + 8px, 27px) !important;
	line-height: 1.12 !important;
	font-weight: 700;
}

.abm-feed-row__excerpt,
.abm-feed-row__excerpt p {
	margin: 0;
	font-size: 16px;
	line-height: 1.55;
	color: var(--wp--preset--color--body);
}

.abm-feed-row__excerpt .wp-block-post-excerpt__more-text {
	display: none;
}

.abm-sidebar {
	display: flex;
	flex-direction: column;
	gap: 36px;
	min-width: 0;
}

.abm-sidebar > * {
	margin: 0 !important;
}

.abm-picks__title {
	margin: 0 0 12px;
	font-size: 22px;
}

.abm-picks__list {
	list-style: none;
	margin: 0;
	padding: 0;
	counter-reset: abm-pick;
}

.abm-picks__list > li {
	counter-increment: abm-pick;
	display: grid;
	grid-template-columns: 44px minmax(0, 1fr);
	gap: 6px;
	padding: 14px 0;
	border-top: 1px solid var(--wp--preset--color--line);
	margin: 0;
}

.abm-picks__list > li::before {
	content: counter(abm-pick);
	font-family: var(--wp--preset--font-family--display);
	font-size: 28px;
	line-height: 1;
	font-weight: 800;
	color: var(--wp--preset--color--cyan);
	letter-spacing: -0.025em;
}

.abm-picks__item {
	margin: 0;
	font-family: var(--wp--preset--font-family--body);
	font-size: 16px !important;
	line-height: 1.35 !important;
	font-weight: 600;
	letter-spacing: 0;
}

/* Flipbook box (abm/flipbook): current issue cover linking to its flipbook page. */
.abm-flipbook {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.abm-flipbook > * {
	margin: 0;
}

.abm-flipbook__label {
	font-size: 22px;
}

.abm-flipbook__cover {
	display: block;
	border-radius: 6px;
	overflow: hidden;
	box-shadow: var(--wp--preset--shadow--cover);
	transition: transform 0.2s ease;
}

.abm-flipbook__cover:hover {
	transform: translateY(-3px);
}

.abm-flipbook__cover img {
	display: block;
	width: 100%;
	height: auto;
}

.abm-flipbook a {
	color: var(--wp--preset--color--ink);
	text-decoration: none;
}

.abm-flipbook__title {
	margin-top: 6px;
	font-family: var(--wp--preset--font-family--display);
	font-size: 17px;
	line-height: 1.2;
	font-weight: 700;
	letter-spacing: -0.025em;
}

.abm-flipbook__link a {
	font-size: 14px;
	font-weight: 600;
	color: var(--wp--preset--color--body);
}

.abm-flipbook a:hover {
	color: var(--wp--preset--color--blue);
}

@media (prefers-reduced-motion: reduce) {
	.abm-flipbook__cover {
		transition: none;
	}
}

/* ---------- By section (abm/section-tabs) ---------- */

.abm-bysection {
	padding-top: 88px;
}

.abm-tabs__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	flex-wrap: wrap;
	margin-bottom: 28px;
}

.abm-tabs__list {
	display: none;
	gap: 4px;
	padding: 4px;
	border-radius: var(--wp--custom--radius--pill);
	background: var(--wp--preset--color--soft);
}

.abm-tabs.is-ready .abm-tabs__list {
	display: flex;
}

.abm-tabs__tab {
	height: 40px;
	padding: 0 18px;
	border: 0;
	border-radius: var(--wp--custom--radius--pill);
	font: inherit;
	font-size: 14px;
	font-weight: 700;
	cursor: pointer;
	background: transparent;
	color: var(--wp--preset--color--body);
}

.abm-tabs__tab[aria-selected="true"] {
	background: var(--wp--preset--color--white);
	color: var(--wp--preset--color--blue);
	box-shadow: var(--wp--preset--shadow--tab);
}

.abm-tabs__panel {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 28px;
}

.abm-tabs__panel + .abm-tabs__panel {
	margin-top: 48px;
}

.abm-tabs.is-ready .abm-tabs__panel + .abm-tabs__panel {
	margin-top: 0;
}

.abm-tabs__panel[hidden] {
	display: none;
}

.abm-tabs__lead {
	grid-column: span 2;
	position: relative;
	display: block;
	border-radius: 20px;
	overflow: hidden;
	min-height: 440px;
	color: var(--wp--preset--color--white);
	text-decoration: none;
	background: #D5DEE7;
}

.abm-tabs__lead-img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.4s ease;
}

.abm-tabs__lead:hover .abm-tabs__lead-img {
	transform: scale(1.04);
}

.abm-tabs__lead-text {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	padding: 28px;
	background: rgba(14, 17, 20, 0.78);
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.abm-tabs__lead .abm-tabs__date {
	font-weight: 700;
	color: var(--wp--preset--color--sky);
}

.abm-tabs__lead-title {
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(24px, 1.6vw + 8px, 30px);
	line-height: 1.1;
	font-weight: 700;
	letter-spacing: -0.025em;
	text-wrap: balance;
}

.abm-tabs__more {
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.abm-tabs__item {
	padding: 18px 0;
	border-bottom: 1px solid var(--wp--preset--color--line);
	display: flex;
	flex-direction: column;
	gap: 6px;
	color: var(--wp--preset--color--ink);
	text-decoration: none;
}

.abm-tabs__item:hover .abm-tabs__item-title {
	color: var(--wp--preset--color--blue);
}

.abm-tabs__date {
	font-size: 13px;
	color: var(--wp--preset--color--muted);
}

.abm-tabs__item-title {
	font-family: var(--wp--preset--font-family--display);
	font-size: 21px;
	line-height: 1.18;
	font-weight: 700;
	letter-spacing: -0.025em;
	text-wrap: balance;
}

.abm-tabs__all {
	margin-top: 14px;
	font-size: 15px;
	font-weight: 700;
	color: var(--wp--preset--color--blue);
	text-decoration: none;
}

/* ---------- The Interviews ---------- */

.abm-interviews {
	padding-top: 96px;
}

.abm-rail {
	display: flex !important;
	gap: 20px;
	overflow-x: auto;
	padding: 0 0 8px !important;
	margin: 0 !important;
	scrollbar-width: none;
	list-style: none;
}

.abm-rail::-webkit-scrollbar {
	display: none;
}

.abm-rail > li {
	flex-shrink: 0;
	width: 220px;
	margin: 0 !important;
}

.abm-person {
	position: relative;
	border-radius: 18px;
	overflow: hidden;
}

.abm-person__image {
	margin: 0;
}

.abm-person__image img {
	object-position: 50% 30%;
}

.abm-person__plate {
	position: absolute;
	left: 12px;
	right: 12px;
	bottom: 12px;
	padding: 12px 14px;
	border-radius: 12px;
	background: rgba(255, 255, 255, 0.95);
	display: flex;
	flex-direction: column;
	gap: 2px;
	pointer-events: none;
}

.abm-person__plate > * {
	margin: 0 !important;
}

.abm-person__label {
	font-size: 12px;
	font-weight: 700;
	color: var(--wp--preset--color--blue);
}

.abm-person__name {
	font-family: var(--wp--preset--font-family--display);
	font-size: 19px;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: -0.025em;
	color: var(--wp--preset--color--ink);
}

/* ---------- Newsletter band ---------- */

.abm-newsletter-wrap {
	padding-top: 96px;
}

.abm-newsletter {
	background: var(--wp--preset--color--navy);
	color: var(--wp--preset--color--white);
	border-radius: var(--wp--custom--radius--band);
	padding: 56px;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 360px), 1fr));
	gap: 40px;
	align-items: center;
}

.abm-newsletter > * {
	margin: 0 !important;
}

.abm-newsletter__title {
	margin: 0;
	font-size: clamp(32px, 2.6vw + 10px, 44px);
	line-height: 1.02;
	color: var(--wp--preset--color--white);
}

.abm-newsletter__text {
	margin: 14px 0 0;
	font-size: 17px;
	line-height: 1.5;
	color: #D3DFEE;
}

.abm-newsletter__form {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.abm-newsletter__form label {
	font-size: 14px;
	font-weight: 600;
}

.abm-newsletter__field {
	display: flex;
	gap: 8px;
	padding: 6px;
	border-radius: var(--wp--custom--radius--pill);
	background: var(--wp--preset--color--white);
}

.abm-newsletter__field input {
	flex-grow: 1;
	min-width: 0;
	height: 48px;
	border: 0;
	border-radius: var(--wp--custom--radius--pill);
	padding: 0 18px;
	font: inherit;
	font-size: 16px;
	color: var(--wp--preset--color--ink);
}

.abm-newsletter__field button {
	height: 48px;
	padding: 0 24px;
	border: 0;
	border-radius: var(--wp--custom--radius--pill);
	background: var(--wp--preset--color--blue);
	color: var(--wp--preset--color--white);
	font: inherit;
	font-size: 15px;
	font-weight: 700;
	cursor: pointer;
}

.abm-newsletter__field button:hover {
	background: var(--wp--preset--color--charcoal);
}

/* ---------- Homepage: tablet and phone ---------- */

@media (max-width: 1023px) {
	.abm-latest__grid {
		grid-template-columns: minmax(0, 1fr);
	}

}

@media (max-width: 859px) {
	.abm-tabs__panel {
		grid-template-columns: minmax(0, 1fr);
	}

	.abm-tabs__lead {
		grid-column: auto;
		min-height: 360px;
	}

	.abm-tabs__head {
		align-items: flex-start;
		flex-direction: column;
		gap: 16px;
	}

	.abm-tabs__list {
		max-width: 100%;
		overflow-x: auto;
		scrollbar-width: none;
	}

	.abm-tabs__tab {
		flex-shrink: 0;
		white-space: nowrap;
		padding: 0 14px;
	}

	.abm-newsletter {
		padding: 28px;
	}
}

@media (max-width: 760px) {
	.abm-hero__title {
		font-size: 40px !important;
	}
}

/* PDF Light Viewer flipbooks: wide, not article width. Its "adaptive" layout shows two
   pages side by side only when the viewer is at least 800px wide. */
.wp-block-post-content > .pdf-light-viewer {
	max-width: var(--wp--style--global--wide-size);
}

/* Article featured image smaller than the 1200px banner: shown at its own size and shape
   (inc/images.php) instead of cropped to 16:9 and stretched. */
.abm-article-image--natural img {
	display: block;
	width: 100%;
	height: auto;
}

/* ---------- Footer: "Stay connected" band (pattern abm/stay-connected) ---------- */

.abm-connect {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
	gap: 32px 56px;
	align-items: center;
	padding-bottom: 56px;
	margin-bottom: 56px;
	border-bottom: 1px solid #2E3439;
}

.abm-connect__intro > * {
	margin: 0;
}

.abm-connect__eyebrow {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--sky);
}

.abm-connect__title {
	margin-top: 10px !important;
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(28px, 3vw, 36px);
	line-height: 1.1;
	letter-spacing: -0.02em;
	color: var(--wp--preset--color--white);
}

.abm-connect__text {
	margin-top: 12px !important;
	max-width: 40ch;
	font-size: 15px;
	line-height: 1.6;
}

.abm-connect__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
}

.abm-connect__item {
	--abm-brand: var(--wp--preset--color--cyan);
}

.abm-footer a.abm-connect__link {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 14px 18px 14px 14px;
	border: 1px solid #2E3439;
	border-radius: 16px;
	background: rgba(255, 255, 255, 0.02);
	color: var(--wp--preset--color--white);
	transition: border-color 0.2s ease, background-color 0.2s ease, transform 0.2s ease;
}

.abm-connect__item--facebook { --abm-brand: #1877F2; }
.abm-connect__item--linkedin { --abm-brand: #0A66C2; }
.abm-connect__item--youtube { --abm-brand: #FF0033; }
.abm-connect__item--x { --abm-brand: #FFFFFF; }

.abm-connect__icon {
	flex: none;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: rgba(255, 255, 255, 0.07);
	color: var(--wp--preset--color--white);
	transition: background-color 0.2s ease, color 0.2s ease;
}

.abm-connect__icon svg {
	width: 20px;
	height: 20px;
	fill: currentColor;
}

.abm-connect__label {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.abm-connect__name {
	font-size: 16px;
	font-weight: 700;
	line-height: 1.2;
}

.abm-connect__cta {
	font-size: 13px;
	color: var(--wp--preset--color--footer-text);
}

.abm-connect__arrow {
	font-size: 18px;
	color: var(--wp--preset--color--footer-text);
	transition: transform 0.2s ease, color 0.2s ease;
}

.abm-footer a.abm-connect__link:hover,
.abm-footer a.abm-connect__link:focus-visible {
	color: var(--wp--preset--color--white);
	border-color: color-mix(in srgb, var(--abm-brand) 60%, #2E3439);
	background: rgba(255, 255, 255, 0.05);
	transform: translateY(-2px);
}

.abm-connect__link:hover .abm-connect__icon,
.abm-connect__link:focus-visible .abm-connect__icon {
	background: var(--abm-brand);
}

.abm-connect__item--x .abm-connect__link:hover .abm-connect__icon,
.abm-connect__item--x .abm-connect__link:focus-visible .abm-connect__icon {
	color: var(--wp--preset--color--ink);
}

.abm-connect__link:hover .abm-connect__arrow,
.abm-connect__link:focus-visible .abm-connect__arrow {
	color: var(--wp--preset--color--white);
	transform: translate(2px, -2px);
}

/* Sections and Magazine columns: menu links (block abm/links). */
.abm-footer__links {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.abm-footer__links li {
	margin: 0;
}

/* Interviews column: two short columns of names. */
.abm-footer__people {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px 24px;
}

.abm-footer__people li {
	margin: 0;
}

.abm-footer .abm-footer__more a {
	color: var(--wp--preset--color--sky);
	font-weight: 600;
}

.abm-footer .abm-footer__more a:hover {
	color: var(--wp--preset--color--white);
}

@media (max-width: 1023px) {
	.abm-connect {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* Tablets: brand on its own row, then Sections, Magazine and Interviews across. */
@media (min-width: 782px) and (max-width: 1199px) {
	.abm-footer__cols.wp-block-columns {
		flex-wrap: wrap !important;
	}

	.abm-footer__cols > .wp-block-column:first-child {
		flex-basis: 100% !important;
	}

	.abm-footer__cols > .wp-block-column:nth-child(2),
	.abm-footer__cols > .wp-block-column:nth-child(3) {
		flex: 0 0 calc(25% - 30px) !important;
	}

	.abm-footer__cols > .abm-footer__interviews {
		flex: 1 1 0 !important;
	}
}

/* Phones: brand on its own row, Sections and Magazine side by side, then Interviews. */
@media (max-width: 781px) {
	.abm-footer__cols.wp-block-columns {
		flex-wrap: wrap !important;
	}

	.abm-footer__cols > .wp-block-column {
		flex-basis: 100% !important;
	}

	.abm-footer__cols > .wp-block-column:nth-child(2),
	.abm-footer__cols > .wp-block-column:nth-child(3) {
		flex-basis: calc(50% - 20px) !important;
	}
}

@media (max-width: 599px) {
	.abm-connect {
		padding-bottom: 40px;
		margin-bottom: 40px;
	}

	.abm-connect__list {
		gap: 10px;
	}

	.abm-footer a.abm-connect__link {
		flex-direction: column;
		align-items: flex-start;
		gap: 12px;
		padding: 14px;
		position: relative;
	}

	.abm-connect__arrow {
		position: absolute;
		top: 14px;
		right: 14px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.abm-footer a.abm-connect__link,
	.abm-connect__arrow {
		transition: none;
		transform: none !important;
	}
}
