/* =========================================================================
   Akronic Modern 2 — bold, dark, movandi-inspired; Akronic colors.
   Brand tokens are all here.
   ========================================================================= */
:root {
	--akm-fullw: calc(100vw - var(--akm-sbw, 0px));   /* screen width without the scrollbar */
	--akm-red: #E2231A;
	--akm-red-dark: #B5170F;
	--akm-black: #0A0A0B;
	--akm-ink: #141518;
	--akm-ink-2: #1A1B1E;
	--akm-gray: #3A3D42;
	--akm-muted: #8A8E96;
	--akm-line: #E4E4E7;
	--akm-line-dark: rgba(255, 255, 255, .1);
	--akm-surface: #F3F3F4;
	--akm-white: #FFFFFF;
	--akm-max: 1280px;
	--akm-gutter: max(24px, calc((100% - var(--akm-max)) / 2));
	--akm-ease: cubic-bezier(.2, .7, .2, 1);
	--akm-font: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
	--akm-display: "Archivo", "Inter", system-ui, sans-serif;
	--akm-header-h: 84px;
}

/* ---------- Base ---------- */
body.akm {
	font-family: var(--akm-font);
	font-size: 17px;
	line-height: 1.65;
	color: var(--akm-gray);
	background: var(--akm-white);
	overflow-x: hidden;
	-webkit-font-smoothing: antialiased;
}
.akm h1, .akm h2, .akm h3, .akm h4 {
	font-family: var(--akm-display);
	color: var(--akm-black);
	font-weight: 800;
	letter-spacing: -0.01em;
	line-height: 1.08;
}
.akm a { color: var(--akm-red); transition: color .2s var(--akm-ease); }
.akm a:hover { color: var(--akm-red-dark); }
.akm ::selection { background: var(--akm-red); color: #fff; }

/* Hide Astra's own header/footer: the plugin draws its own. */
.akm #masthead, .akm .site-header,
.akm #colophon, .akm .site-footer, .akm .ast-small-footer { display: none !important; }
.akm .site-content > .ast-container { max-width: none; padding: 0; display: block; }
.akm #primary { margin: 0 !important; padding: 0 !important; width: 100%; }
.akm .ast-article-single, .akm .ast-article-post,
.akm.ast-separate-container .ast-article-single,
.akm.ast-plain-container .ast-article-single { padding: 0 !important; margin: 0 !important; background: transparent; border: 0; }
.akm .entry-content > *:first-child { margin-top: 0; }
.akm.ast-separate-container { background: var(--akm-white); }

/* ---------- Header ---------- */
.akm-header {
	position: fixed;
	inset: 0 0 auto 0;
	z-index: 1000;
	height: var(--akm-header-h);
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 0 var(--akm-gutter);
	color: #fff;
	transition: background .35s var(--akm-ease), height .35s var(--akm-ease), box-shadow .35s var(--akm-ease);
}
.admin-bar .akm-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .akm-header { top: 46px; } }
.akm-header::before { /* soft fade so white text stays readable over any image */
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(rgba(0, 0, 0, .55), transparent);
	z-index: -1;
	transition: opacity .35s var(--akm-ease);
}
.akm-scrolled .akm-header,
.akm:not(.akm-front) .akm-header {
	background: rgba(10, 10, 11, .94);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	height: 68px;
	box-shadow: 0 1px 0 var(--akm-line-dark);
}
.akm-scrolled .akm-header::before,
.akm:not(.akm-front) .akm-header::before { opacity: 0; }

.akm-logo { display: inline-flex; align-items: center; text-decoration: none; color: #fff !important; }
.akm-logo img { max-height: 34px; width: auto; }
.akm-wordmark {
	font-family: var(--akm-display);
	font-weight: 800;
	font-size: 24px;
	letter-spacing: .12em;
	color: #fff;
}
.akm-wordmark span { color: var(--akm-red); }

.akm-header-actions { display: flex; align-items: center; gap: 28px; }
.akm-header-cta {
	color: #fff !important;
	text-decoration: none;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
	padding: .7em 1.3em;
	border: 1px solid rgba(255, 255, 255, .35);
	transition: background .25s var(--akm-ease), border-color .25s var(--akm-ease);
}
.akm-header-cta:hover { background: var(--akm-red); border-color: var(--akm-red); }
.akm-menu-toggle {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	background: none !important;
	border: 0 !important;
	padding: 8px 0 !important;
	color: #fff !important;
	cursor: pointer;
	font: 600 13px/1 var(--akm-font) !important;
	letter-spacing: .14em;
	text-transform: uppercase;
	box-shadow: none !important;
	transform: none !important;
}
.akm-burger { position: relative; width: 30px; height: 12px; }
.akm-burger i {
	position: absolute;
	left: 0; right: 0;
	height: 2px;
	background: currentColor;
	transition: transform .35s var(--akm-ease), top .35s var(--akm-ease), width .35s var(--akm-ease);
}
.akm-burger i:first-child { top: 0; }
.akm-burger i:last-child { top: 10px; width: 70%; left: auto; }
.akm-menu-toggle:hover .akm-burger i:last-child { width: 100%; }
.akm-menu-open .akm-burger i:first-child { top: 5px; transform: rotate(45deg); }
.akm-menu-open .akm-burger i:last-child { top: 5px; width: 100%; transform: rotate(-45deg); }
@media (max-width: 600px) {
	.akm-header-cta { display: none; }
	.akm-menu-label { display: none; }
}

/* ---------- Full-screen menu ---------- */
.akm-menu {
	position: fixed;
	inset: 0;
	z-index: 999;
	background: var(--akm-black);
	color: #fff;
	overflow-y: auto;
	clip-path: inset(0 0 100% 0);
	visibility: hidden;
	transition: clip-path .6s var(--akm-ease), visibility 0s linear .6s;
}
.akm-menu::before { /* engineering grid */
	content: "";
	position: absolute;
	inset: 0;
	background-image:
		linear-gradient(rgba(255, 255, 255, .04) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, .04) 1px, transparent 1px);
	background-size: 64px 64px;
	pointer-events: none;
}
.akm-menu-open .akm-menu {
	clip-path: inset(0 0 0 0);
	visibility: visible;
	transition: clip-path .6s var(--akm-ease), visibility 0s;
}
.akm-menu-open { overflow: hidden; }
.akm-menu-open .akm-header { background: transparent; box-shadow: none; backdrop-filter: none; }
.akm-menu-open .akm-header::before { opacity: 0; }
.akm-menu-inner {
	position: relative;
	min-height: 100%;
	display: grid;
	grid-template-columns: 1.6fr 1fr;
	gap: 64px;
	padding: calc(var(--akm-header-h) + 56px) var(--akm-gutter) 56px;
}
.akm-menu-list, .akm-menu-list ul { list-style: none; margin: 0; padding: 0; }
.akm-menu-list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 40px 48px;
	counter-reset: akm-menu;
}
.akm-menu-list > li { counter-increment: akm-menu; }
.akm-menu-list > li > a {
	display: inline-block;
	font-family: var(--akm-display);
	font-size: clamp(28px, 3.6vw, 48px);
	font-weight: 800;
	line-height: 1;
	text-transform: uppercase;
	color: #fff;
	text-decoration: none;
	position: relative;
}
.akm-menu-list > li > a::before {
	content: counter(akm-menu, decimal-leading-zero);
	display: block;
	font: 600 12px/1 var(--akm-font);
	letter-spacing: .14em;
	color: var(--akm-red);
	margin-bottom: 12px;
}
.akm-menu-list > li > a:hover,
.akm-menu-list .current-menu-item > a { color: var(--akm-red); }
.akm-menu-list .sub-menu { margin-top: 16px; }
.akm-menu-list .sub-menu a {
	display: inline-block;
	padding: 5px 0;
	color: rgba(255, 255, 255, .62);
	text-decoration: none;
	font-size: 16px;
}
.akm-menu-list .sub-menu a:hover { color: #fff; }
.akm-menu-list .sub-menu .sub-menu { margin: 2px 0 4px 14px; border-left: 1px solid var(--akm-line-dark); padding-left: 12px; }
.akm-menu-list .sub-menu .sub-menu a { font-size: 14px; }
.akm-menu-aside {
	border-left: 1px solid var(--akm-line-dark);
	padding-left: 48px;
	color: rgba(255, 255, 255, .7);
	font-size: 15px;
	align-self: start;
}
.akm-menu-aside a { color: #fff; text-decoration: none; }
.akm-menu-aside a:hover { color: var(--akm-red); }
.akm-menu .akm-menu-list > li,
.akm-menu .akm-menu-aside { opacity: 0; transform: translateY(24px); transition: opacity .5s var(--akm-ease), transform .5s var(--akm-ease); }
.akm-menu-open .akm-menu .akm-menu-list > li,
.akm-menu-open .akm-menu .akm-menu-aside { opacity: 1; transform: none; }
.akm-menu-open .akm-menu-list > li:nth-child(1) { transition-delay: .15s; }
.akm-menu-open .akm-menu-list > li:nth-child(2) { transition-delay: .2s; }
.akm-menu-open .akm-menu-list > li:nth-child(3) { transition-delay: .25s; }
.akm-menu-open .akm-menu-list > li:nth-child(4) { transition-delay: .3s; }
.akm-menu-open .akm-menu-list > li:nth-child(5) { transition-delay: .35s; }
.akm-menu-open .akm-menu-aside { transition-delay: .4s; }
@media (max-width: 900px) {
	.akm-menu-inner { grid-template-columns: 1fr; gap: 40px; }
	.akm-menu-list { grid-template-columns: 1fr; gap: 28px; }
	.akm-menu-aside { border-left: 0; border-top: 1px solid var(--akm-line-dark); padding: 28px 0 0; }
}

/* ---------- Shared bits ---------- */
.akm-eyebrow, .akm .akm-kicker {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	font: 600 12px/1.2 var(--akm-font);
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--akm-red);
	margin: 0 0 22px;
}
.akm .akm-kicker::before, .akm-eyebrow::before {
	content: "";
	width: 32px;
	height: 2px;
	background: var(--akm-red);
}
.akm .akm-display {
	font-size: clamp(30px, 4.2vw, 56px);
	text-transform: uppercase;
	letter-spacing: -0.01em;
	line-height: 1.02;
	margin: 0 0 28px;
	text-wrap: balance;
}
/* Arrow link: used on <a class="akm-arrow-link"> and on <p class="akm-arrow-link"><a>…</a></p> */
a.akm-arrow-link, .akm p.akm-arrow-link a {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	font: 700 13px/1 var(--akm-font);
	letter-spacing: .16em;
	text-transform: uppercase;
	text-decoration: none;
}
a.akm-arrow-link { color: #fff !important; }
.akm p.akm-arrow-link { display: inline-block; margin: 8px 32px 0 0; }
.akm p.akm-arrow-link a { color: var(--akm-black); }
.akm p.akm-arrow-link a:hover { color: var(--akm-red); }
a.akm-arrow-link::after, .akm p.akm-arrow-link a::after {
	content: "";
	width: 34px;
	height: 2px;
	background: var(--akm-red);
	transition: width .3s var(--akm-ease);
}
a.akm-arrow-link:hover::after, .akm p.akm-arrow-link a:hover::after { width: 56px; }

.akm .wp-block-button__link, .akm-btn {
	display: inline-block;
	background: var(--akm-red);
	color: #fff !important;
	border: 1px solid var(--akm-red);
	border-radius: 0;
	padding: 1.05em 2em;
	font: 700 13px/1 var(--akm-font);
	letter-spacing: .16em;
	text-transform: uppercase;
	text-decoration: none;
	transition: background .25s var(--akm-ease), border-color .25s var(--akm-ease), color .25s var(--akm-ease);
}
.akm .wp-block-button__link:hover, .akm-btn:hover { background: var(--akm-black); border-color: var(--akm-black); }
.akm-btn-ghost { background: transparent; border-color: rgba(255, 255, 255, .35); }
.akm-btn-ghost:hover { background: #fff; border-color: #fff; color: var(--akm-black) !important; }

/* Full-bleed helper: breaks out of Astra's content column. */
.akm .alignfull,
.akm-page-hero {
	width: var(--akm-fullw);
	max-width: var(--akm-fullw);
	margin-left: calc(50% - var(--akm-fullw) / 2) !important;
	margin-right: calc(50% - var(--akm-fullw) / 2) !important;
}

/* ---------- Hero slider ---------- */
.akm-hero-slider {
	position: relative;
	height: 100vh;
	min-height: 620px;
	background: var(--akm-black);
	overflow: hidden;
	color: #fff;
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}
.akm-slide {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: flex-end;
	padding: 0 var(--akm-gutter) clamp(96px, 14vh, 160px);
	opacity: 0;
	visibility: hidden;
	transition: opacity 1.1s var(--akm-ease), visibility 0s linear 1.1s;
}
.akm-slide::before { /* image with slow zoom, gradient fallback when no image */
	content: "";
	position: absolute;
	inset: 0;
	background:
		linear-gradient(90deg, rgba(10, 10, 11, .88) 0%, rgba(10, 10, 11, .55) 45%, rgba(10, 10, 11, .15) 100%),
		linear-gradient(0deg, rgba(10, 10, 11, .75), transparent 45%),
		var(--akm-bg, none) center / cover no-repeat,
		radial-gradient(70% 80% at 80% 20%, rgba(226, 35, 26, .45), transparent 60%),
		var(--akm-black);
	transform: scale(1.08);
	transition: transform 7s linear;
}
.akm-slide.is-active { opacity: 1; visibility: visible; transition: opacity 1.1s var(--akm-ease), visibility 0s; }
.akm-slide.is-active::before { transform: scale(1); }
.akm-slide-inner { position: relative; max-width: 900px; }
.akm-slide .akm-eyebrow { color: #fff; }
.akm .akm-slide-title {
	color: #fff;
	font-size: clamp(38px, 6.4vw, 92px);
	text-transform: uppercase;
	line-height: .98;
	letter-spacing: -0.015em;
	margin: 0 0 26px;
	text-wrap: balance;
}
.akm-slide-text { font-size: clamp(17px, 1.6vw, 21px); color: rgba(255, 255, 255, .78); max-width: 52ch; margin: 0 0 36px; }
.akm-slide.is-active .akm-slide-inner > * { animation: akm-rise .9s var(--akm-ease) both; }
.akm-slide.is-active .akm-slide-inner > *:nth-child(2) { animation-delay: .1s; }
.akm-slide.is-active .akm-slide-inner > *:nth-child(3) { animation-delay: .2s; }
.akm-slide.is-active .akm-slide-inner > *:nth-child(4) { animation-delay: .3s; }
@keyframes akm-rise { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: none; } }

.akm-slider-nav {
	position: absolute;
	right: var(--akm-gutter);
	bottom: clamp(96px, 14vh, 160px);
	display: flex;
	gap: 10px;
	z-index: 2;
}
.akm-slider-nav button {
	width: 44px;
	height: 3px;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: rgba(255, 255, 255, .25) !important;
	position: relative;
	overflow: hidden;
	cursor: pointer;
	box-shadow: none !important;
	transform: none !important;
}
.akm-slider-nav button::after {
	content: "";
	position: absolute;
	inset: 0;
	background: var(--akm-red);
	transform: scaleX(0);
	transform-origin: left;
}
.akm-slider-nav button.is-active::after { animation: akm-progress var(--akm-slide-ms, 7000ms) linear forwards; }
@keyframes akm-progress { to { transform: scaleX(1); } }
.akm-scroll-cue {
	position: absolute;
	left: 50%;
	bottom: 28px;
	width: 1px;
	height: 56px;
	background: rgba(255, 255, 255, .25);
	overflow: hidden;
}
.akm-scroll-cue::after {
	content: "";
	position: absolute;
	left: 0; top: -40%;
	width: 1px;
	height: 40%;
	background: #fff;
	animation: akm-cue 2s var(--akm-ease) infinite;
}
@keyframes akm-cue { to { top: 100%; } }
@media (max-width: 700px) {
	.akm-slider-nav { left: var(--akm-gutter); right: auto; bottom: 40px; }
	.akm-slide { padding-bottom: 96px; }
	.akm-scroll-cue { display: none; }
}

/* ---------- Ticker strip ---------- */
.akm-ticker {
	display: grid;
	grid-template-columns: 1fr 1fr;
	background: var(--akm-red);
	color: #fff;
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}
.akm-ticker-item {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	padding: 26px var(--akm-gutter);
	font-size: 16px;
}
.akm-ticker-item + .akm-ticker-item { border-left: 1px solid rgba(255, 255, 255, .25); padding-left: 40px; }
.akm-ticker-item:first-child { padding-right: 40px; }
.akm-ticker a {
	color: #fff !important;
	font: 700 12px/1 var(--akm-font);
	letter-spacing: .16em;
	text-transform: uppercase;
	text-decoration: none;
	white-space: nowrap;
	border-bottom: 2px solid rgba(255, 255, 255, .5);
	padding-bottom: 4px;
}
.akm-ticker a:hover { border-color: #fff; }
@media (max-width: 800px) {
	.akm-ticker { grid-template-columns: 1fr; }
	.akm-ticker-item + .akm-ticker-item { border-left: 0; border-top: 1px solid rgba(255, 255, 255, .25); padding-left: var(--akm-gutter); }
	.akm-ticker-item:first-child { padding-right: var(--akm-gutter); }
}

/* ---------- Sections ---------- */
.akm .akm-section {
	padding: clamp(80px, 11vw, 150px) var(--akm-gutter);
	margin-top: 0 !important;
	margin-bottom: 0 !important;
	background: var(--akm-white);
}
.akm .akm-section > * { max-width: none; margin-left: 0; margin-right: 0; }

/* Split: text + image */
.akm .akm-split {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(40px, 7vw, 110px);
	align-items: center;
}
.akm .akm-split-reverse .akm-split-media { order: -1; }
.akm .akm-split:not(:has(.akm-split-media)) { grid-template-columns: 1fr; }
.akm .akm-split-text > *:last-child { margin-bottom: 0; }
.akm .akm-split-text p { max-width: 56ch; }
.akm .akm-split-media { margin: 0; position: relative; }
.akm .akm-split-media img {
	width: 100%;
	aspect-ratio: 4 / 3.4;
	object-fit: cover;
	display: block;
	filter: grayscale(.2) contrast(1.05);
}
.akm .akm-split-media::after { /* offset red frame */
	content: "";
	position: absolute;
	inset: 24px -24px -24px 24px;
	border: 2px solid var(--akm-red);
	z-index: -1;
}
.akm .akm-split-reverse .akm-split-media::after { inset: 24px 24px -24px -24px; }
@media (max-width: 900px) {
	.akm .akm-split { grid-template-columns: 1fr; }
	.akm .akm-split-reverse .akm-split-media { order: 0; }
	.akm .akm-split-media::after { display: none; }
}

/* Values / feature grid */
.akm .akm-values { background: var(--akm-surface); }
.akm-feature-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	border-top: 1px solid var(--akm-line);
	margin-top: 56px;
}
.akm-feature {
	padding: 40px 32px 8px 0;
	border-right: 1px solid var(--akm-line);
	margin-right: 32px;
}
.akm-feature:last-child { border-right: 0; margin-right: 0; }
.akm-feature svg {
	width: 44px; height: 44px;
	fill: none;
	stroke: var(--akm-red);
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
	margin-bottom: 26px;
}
.akm .akm-feature h3 { font-size: 18px; text-transform: uppercase; letter-spacing: .04em; margin: 0 0 12px; }
.akm-feature p { font-size: 15.5px; margin: 0; }
@media (max-width: 1000px) {
	.akm-feature-grid { grid-template-columns: 1fr 1fr; }
	.akm-feature:nth-child(2n) { border-right: 0; margin-right: 0; }
}
@media (max-width: 560px) {
	.akm-feature-grid { grid-template-columns: 1fr; }
	.akm-feature { border-right: 0; margin-right: 0; border-bottom: 1px solid var(--akm-line); padding-bottom: 32px; }
}

/* Dark image band */
.akm-band {
	position: relative;
	padding: clamp(100px, 14vw, 190px) var(--akm-gutter);
	color: rgba(255, 255, 255, .75);
	isolation: isolate;
	overflow: hidden;
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}
.akm-band::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background:
		linear-gradient(90deg, rgba(10, 10, 11, .95) 20%, rgba(10, 10, 11, .6)),
		var(--akm-bg, none) center / cover no-repeat fixed,
		var(--akm-black);
}
.akm-band-inner { max-width: 820px; }
.akm-band .akm-display { color: #fff; }
.akm-big-number {
	font-family: var(--akm-display);
	font-weight: 800;
	font-size: clamp(64px, 11vw, 160px);
	line-height: .9;
	letter-spacing: -0.03em;
	color: #fff;
	margin: 0 0 18px;
}
.akm-big-number span { font-size: .32em; color: var(--akm-red); margin-left: .2em; letter-spacing: 0; }
.akm-band-links { list-style: none; margin: 48px 0 0; padding: 0; border-top: 1px solid var(--akm-line-dark); }
.akm-band-links li { border-bottom: 1px solid var(--akm-line-dark); margin: 0; }
.akm-band-links a {
	display: flex;
	align-items: center;
	gap: 24px;
	padding: 22px 0;
	color: #fff !important;
	text-decoration: none;
	font-family: var(--akm-display);
	font-weight: 700;
	font-size: clamp(20px, 2.2vw, 28px);
	text-transform: uppercase;
	transition: padding .3s var(--akm-ease), color .3s var(--akm-ease);
}
.akm-band-links a span { font: 600 12px/1 var(--akm-font); letter-spacing: .14em; color: var(--akm-red); }
.akm-band-links a::after { content: "→"; margin-left: auto; color: var(--akm-red); transition: transform .3s var(--akm-ease); }
.akm-band-links a:hover { padding-left: 12px; color: var(--akm-red) !important; }
.akm-band-links a:hover::after { transform: translateX(6px); }
@media (hover: none) { .akm-band::before { background-attachment: scroll; } }

/* Cards */
.akm-cards {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 0;
	border-top: 1px solid var(--akm-line);
	border-left: 1px solid var(--akm-line);
	margin-top: 48px;
}
.akm-card {
	position: relative;
	display: flex;
	flex-direction: column;
	padding: 40px 36px 36px;
	border-right: 1px solid var(--akm-line);
	border-bottom: 1px solid var(--akm-line);
	color: var(--akm-gray) !important;
	text-decoration: none;
	background: var(--akm-white);
	transition: background .35s var(--akm-ease), color .35s var(--akm-ease);
	min-height: 320px;
}
.akm-card-num { font: 600 12px/1 var(--akm-font); letter-spacing: .16em; color: var(--akm-red); margin-bottom: 56px; }
.akm .akm-card h3 { font-size: 24px; text-transform: uppercase; margin: 0 0 14px; transition: color .35s var(--akm-ease); }
.akm-card p { font-size: 15.5px; margin: 0 0 28px; }
.akm-card-more {
	margin-top: auto;
	font: 700 12px/1 var(--akm-font);
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--akm-black);
	display: inline-flex;
	align-items: center;
	gap: 12px;
}
.akm-card-more::after { content: ""; width: 28px; height: 2px; background: var(--akm-red); transition: width .3s var(--akm-ease); }
.akm-card:hover { background: var(--akm-black); color: rgba(255, 255, 255, .7) !important; }
.akm-card:hover h3, .akm-card:hover .akm-card-more { color: #fff; }
.akm-card:hover .akm-card-more::after { width: 48px; }

/* Frequency strip */
.akm-freqs {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0;
	background: var(--akm-black);
	padding: 0 var(--akm-gutter);
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}
.akm-freqs span {
	padding: 28px 28px;
	font: 700 13px/1 var(--akm-font);
	letter-spacing: .14em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, .72);
	border-right: 1px solid var(--akm-line-dark);
}
.akm-freqs span:last-child { border-right: 0; }

/* Contact block */
.akm-contact {
	background: var(--akm-ink);
	color: rgba(255, 255, 255, .72);
	padding: clamp(80px, 11vw, 150px) var(--akm-gutter);
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}
.akm-page-body .akm-contact { padding: clamp(40px, 6vw, 72px); }
.akm-contact-inner { display: grid; grid-template-columns: 1.2fr 1fr; gap: clamp(40px, 7vw, 110px); align-items: start; }
.akm .akm-contact .akm-display { color: #fff; }
.akm-contact p { max-width: 50ch; }
.akm-contact-actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 36px; }
.akm-contact-list { margin: 0; display: grid; grid-template-columns: auto 1fr; border-top: 1px solid var(--akm-line-dark); }
.akm-contact-list dt, .akm-contact-list dd { margin: 0; padding: 20px 0; border-bottom: 1px solid var(--akm-line-dark); }
.akm-contact-list dt { font: 600 12px/1.6 var(--akm-font); letter-spacing: .16em; text-transform: uppercase; color: var(--akm-red); padding-right: 32px; }
.akm-contact-list dd { color: #fff; }
.akm-contact-list a { color: #fff !important; text-decoration: none; }
.akm-contact-list a:hover { color: var(--akm-red) !important; }
.akm-map { width: 100%; height: 380px; border: 0; margin-top: 56px; filter: grayscale(1) invert(.92) contrast(.9); }
@media (max-width: 900px) { .akm-contact-inner { grid-template-columns: 1fr; } }

/* ---------- Inner pages ---------- */
.akm-page-hero {
	position: relative;
	background: var(--akm-black);
	color: #fff;
	padding: calc(68px + clamp(80px, 12vw, 150px)) var(--akm-gutter) clamp(56px, 8vw, 96px);
	overflow: hidden;
	isolation: isolate;
	margin-bottom: clamp(56px, 8vw, 96px);
}
.akm-page-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background-image:
		radial-gradient(60% 90% at 90% 0%, rgba(226, 35, 26, .35), transparent 60%),
		linear-gradient(rgba(255, 255, 255, .045) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, .045) 1px, transparent 1px);
	background-size: auto, 64px 64px, 64px 64px;
}
.akm-page-hero-inner { max-width: var(--akm-max); margin: 0 auto; }
.akm-page-hero .akm-eyebrow { color: #fff; }
.akm .akm-page-title {
	color: #fff;
	font-size: clamp(40px, 6vw, 84px);
	text-transform: uppercase;
	line-height: .98;
	margin: 0;
	text-wrap: balance;
}
.akm-crumbs { margin: 28px 0 0; font-size: 13px; letter-spacing: .08em; text-transform: uppercase; color: rgba(255, 255, 255, .5); }
.akm-crumbs a { color: rgba(255, 255, 255, .7) !important; text-decoration: none; }
.akm-crumbs a:hover { color: #fff !important; }
.akm-crumbs a + a::before { content: "/"; margin: 0 .7em; color: rgba(255, 255, 255, .3); }

.akm-page-body {
	max-width: 820px;
	margin: 0 auto clamp(80px, 10vw, 130px);
	padding: 0 24px;
}
.akm-page-body:has(.akm-cards), .akm-page-body:has(.akm-contact) { max-width: var(--akm-max); }
.akm-page-body > .akm-lead, .akm .akm-lead {
	font-family: var(--akm-display);
	font-weight: 600;
	font-size: clamp(21px, 2.2vw, 28px);
	line-height: 1.35;
	color: var(--akm-black);
	margin-bottom: 1.4em;
	max-width: 36ch;
	padding-left: 24px;
	border-left: 3px solid var(--akm-red);
}
.akm-page-body:has(.akm-cards) > .akm-lead { max-width: 48ch; }
.akm-page-body h2 {
	font-size: clamp(22px, 2.4vw, 30px);
	text-transform: uppercase;
	margin: 2.2em 0 .7em;
}
.akm-page-body h3 { font-size: 20px; margin: 1.8em 0 .6em; }
.akm-page-body ul { list-style: none; padding: 0; margin: 0 0 1.6em; border-top: 1px solid var(--akm-line); }
.akm-page-body ul li { position: relative; padding: 14px 0 14px 32px; border-bottom: 1px solid var(--akm-line); }
.akm-page-body ul li::before { content: ""; position: absolute; left: 0; top: 1.45em; width: 14px; height: 2px; background: var(--akm-red); }
.akm-page-body .akm-cards, .akm-page-body .akm-contact { margin-top: 32px; }
.akm-page-body .akm-figure { margin: 2.4em 0; }
.akm-page-body .akm-figure img { width: 100%; height: auto; display: block; }
.akm-page-body .wp-block-buttons { margin-top: 2em; }

/* Forms */
.akm input[type="text"], .akm input[type="email"], .akm input[type="tel"],
.akm input[type="url"], .akm input[type="search"], .akm textarea, .akm select {
	border: 0;
	border-bottom: 1px solid var(--akm-line);
	border-radius: 0;
	background: transparent;
	padding: .8em 0;
}
.akm input:focus, .akm textarea:focus, .akm select:focus { border-color: var(--akm-red); outline: none; box-shadow: none; }

/* ---------- Footer ---------- */
.akm-footer { background: var(--akm-black); color: rgba(255, 255, 255, .6); padding: 96px var(--akm-gutter) 0; font-size: 15px; }
.akm-footer-top { display: grid; grid-template-columns: 1.4fr repeat(3, 1fr); gap: 48px; padding-bottom: 72px; }
.akm-footer-brand .akm-logo { margin-bottom: 24px; }
.akm-footer h4 { color: #fff; font: 600 12px/1 var(--akm-font); letter-spacing: .2em; text-transform: uppercase; margin: 0 0 22px; }
.akm-footer ul { list-style: none; margin: 0; padding: 0; }
.akm-footer li { margin: 0 0 10px; }
.akm-footer a { color: rgba(255, 255, 255, .72); text-decoration: none; }
.akm-footer a:hover { color: var(--akm-red); }
.akm-footer-bottom {
	display: flex;
	justify-content: space-between;
	gap: 24px;
	padding: 26px 0 32px;
	border-top: 1px solid var(--akm-line-dark);
	font-size: 13px;
}
@media (max-width: 900px) { .akm-footer-top { grid-template-columns: 1fr 1fr; } .akm-footer-brand { grid-column: 1 / -1; } }
@media (max-width: 520px) { .akm-footer-top { grid-template-columns: 1fr; } .akm-footer-bottom { flex-direction: column; } }

/* ---------- Motion ---------- */
.akm-js .akm-reveal { opacity: 0; transform: translateY(40px); transition: opacity .9s var(--akm-ease), transform .9s var(--akm-ease); }
.akm-js .akm-reveal.is-visible { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
	.akm *, .akm *::before, .akm *::after { animation: none !important; transition: none !important; }
	.akm-js .akm-reveal { opacity: 1; transform: none; }
	.akm-slide::before { transform: none; }
}

/* =========================================================================
   Readability fixes for the live site.
   Astra's own CSS sets heading/paragraph colors with selectors that beat
   ours, which turned text black on dark backgrounds. These rules win.
   ========================================================================= */
body.akm :is(.akm-hero-slider, .akm-band, .akm-contact, .akm-page-hero, .akm-menu, .akm-footer, .akm-freqs, .akm-ticker, .akm-header)
	:is(h1, h2, h3, h4, h5, h6, p, li, dt, dd, span, strong, em, b, a, dl) {
	color: #fff !important;
}
body.akm :is(.akm-hero-slider, .akm-band, .akm-contact, .akm-page-hero, .akm-menu, .akm-footer) :is(p, li, dd) {
	color: rgba(255, 255, 255, .86) !important;
}
body.akm .akm-footer :is(p, li, a, span) { color: rgba(255, 255, 255, .72) !important; }
body.akm .akm-menu-list .sub-menu a { color: rgba(255, 255, 255, .72) !important; }
body.akm .akm-crumbs a, body.akm .akm-crumbs { color: rgba(255, 255, 255, .75) !important; }

/* Red accents stay red */
body.akm :is(.akm-band, .akm-contact, .akm-menu) .akm-kicker,
body.akm .akm-big-number span,
body.akm .akm-band-links a span,
body.akm .akm-contact-list dt,
body.akm .akm-menu-list > li > a:hover,
body.akm .akm-menu-list .current-menu-item > a,
body.akm .akm-footer a:hover,
body.akm .akm-band-links a:hover,
body.akm .akm-contact-list a:hover { color: var(--akm-red) !important; }

/* Light sections: dark text, regardless of Astra */
body.akm :is(.akm-section, .akm-page-body) :is(h1, h2, h3, h4) { color: var(--akm-black); }
body.akm .akm-section.akm-values, body.akm .akm-section { color: var(--akm-gray); }
body.akm .akm-card:hover :is(h3, p, .akm-card-more) { color: #fff !important; }
body.akm .akm-card:hover p { color: rgba(255, 255, 255, .75) !important; }

/* Lighter photo overlays + a soft shadow under text on photos */
.akm-slide::before {
	background:
		linear-gradient(90deg, rgba(10, 10, 11, .72) 0%, rgba(10, 10, 11, .38) 50%, rgba(10, 10, 11, .08) 100%),
		linear-gradient(0deg, rgba(10, 10, 11, .55), transparent 40%),
		var(--akm-bg, none) center / cover no-repeat,
		radial-gradient(70% 80% at 80% 20%, rgba(226, 35, 26, .45), transparent 60%),
		var(--akm-black);
}
.akm-band::before {
	background:
		linear-gradient(90deg, rgba(10, 10, 11, .82) 25%, rgba(10, 10, 11, .35)),
		var(--akm-bg, none) center / cover no-repeat fixed,
		var(--akm-black);
}
@media (hover: none) {
	.akm-band::before { background-attachment: scroll; }
}
.akm-slide-inner, .akm-band-inner { text-shadow: 0 2px 18px rgba(0, 0, 0, .45); }
.akm .akm-split-media img { filter: none; }

/* =========================================================================
   v2.0.2 — full-width page banners + no white strip above the hero
   ========================================================================= */
/* Astra caps direct children of .entry-content at the content width; let banners and full-width sections span the screen. */
body.akm .entry-content > .akm-page-hero,
body.akm .entry-content > .alignfull,
body.akm .entry-content[data-ast-blocks-layout] > .akm-page-hero,
body.akm .entry-content[data-ast-blocks-layout] > .alignfull,
body.akm .akm-page-hero,
body.akm .alignfull {
	width: var(--akm-fullw) !important;
	max-width: var(--akm-fullw) !important;
	margin-left: calc(50% - var(--akm-fullw) / 2) !important;
	margin-right: calc(50% - var(--akm-fullw) / 2) !important;
}
body.akm #page { overflow-x: clip; }

/* Remove Astra's top spacing so the slider / page banner start at the very top, under the header. */
body.akm #content,
body.akm .site-content,
body.akm .site-content > .ast-container,
body.akm #primary,
body.akm #main,
body.akm .site-main,
body.akm article.page,
body.akm .ast-article-single,
body.akm .entry-content {
	margin-top: 0 !important;
	padding-top: 0 !important;
}
body.akm.page .entry-header { display: none !important; } /* the banner already shows the title */
body.akm .entry-content > .akm-hero-slider:first-child,
body.akm .entry-content > .akm-page-hero:first-child { margin-top: 0 !important; }

/* If any gap is left above the slider, it is dark instead of white. */
body.akm.akm-front,
body.akm.akm-front #page,
body.akm.akm-front .site-content { background: #1a1a1a; }

/* =========================================================================
   v2.0.4 — hero text never under the header, funded projects
   ========================================================================= */
/* Keep slide text clear of the header: room at the top, sizes that scale with screen height,
   and if the text is still taller than the space it starts below the header instead of being cut. */
.akm-slide {
	padding-top: calc(var(--akm-header-h) + 32px);
	align-items: safe flex-end;
}
.akm .akm-slide-title { font-size: clamp(34px, min(6vw, 8.5vh), 88px); }
.akm .akm-slide-title--long { font-size: clamp(30px, min(4.6vw, 6.6vh), 68px); max-width: 20ch; }
@media (max-height: 760px) {
	.akm-slide { padding-bottom: 88px; }
	.akm-slide-text { margin-bottom: 24px; }
	.akm-slider-nav { bottom: 88px; }
}

/* EU funding strip on the home page */
.akm-eu-strip {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	gap: 18px 40px;
	padding: 22px var(--akm-gutter);
	background: #fff;
	border-bottom: 1px solid var(--akm-line);
	text-decoration: none;
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}
.akm-eu-strip img { height: 56px; width: auto; display: block; }
.akm-eu-strip span {
	font: 700 12px/1.4 var(--akm-font);
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--akm-black);
	display: inline-flex;
	align-items: center;
	gap: 12px;
}
.akm-eu-strip span::after { content: ""; width: 28px; height: 2px; background: var(--akm-red); transition: width .3s var(--akm-ease); }
.akm-eu-strip:hover span { color: var(--akm-red); }
.akm-eu-strip:hover span::after { width: 48px; }

/* EU banner in the footer (white plate so the logo colors stay correct) */
.akm-eu-banner {
	display: inline-block;
	background: #fff;
	padding: 10px 14px;
	margin: 0 0 32px;
}
.akm-eu-banner img { height: 48px; width: auto; display: block; }

/* Project pages: key facts */
.akm-facts {
	display: grid;
	grid-template-columns: minmax(160px, auto) 1fr;
	margin: 0 0 2.4em;
	border-top: 1px solid var(--akm-line);
}
.akm-facts dt, .akm-facts dd { margin: 0; padding: 16px 0; border-bottom: 1px solid var(--akm-line); }
.akm-facts dt {
	font: 600 12px/1.7 var(--akm-font);
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--akm-red);
	padding-right: 28px;
}
.akm-facts dd { color: var(--akm-black); font-weight: 500; }
@media (max-width: 560px) {
	.akm-facts { grid-template-columns: 1fr; }
	.akm-facts dt { border-bottom: 0; padding-bottom: 0; }
}
.akm-page-body .akm-funding-logo { margin: 3em 0 0; }
.akm-page-body .akm-funding-logo img { width: auto; max-width: 100%; max-height: 110px; }

/* v2.0.6 — cards without numbers */
.akm-card-num { display: none !important; }
.akm .akm-card h3 { margin-top: 8px; }

/* v2.0.7 — no numbers anywhere (menu, specialty links) */
.akm-menu-list > li > a::before { content: none !important; display: none !important; }
.akm-band-links a span { display: none !important; }

/* =========================================================================
   v2.1.0 — contact form (sits on the dark contact block)
   ========================================================================= */
.akm-form { margin-top: 36px; scroll-margin-top: 110px; }
.akm-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.akm-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 26px 28px; }
.akm-field { display: flex; flex-direction: column; gap: 8px; margin: 0; }
.akm-field-wide { grid-column: 1 / -1; }
body.akm .akm-contact .akm-field > span {
	font: 600 11px/1 var(--akm-font);
	letter-spacing: .18em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, .6) !important;
}
body.akm .akm-form :is(input, select, textarea) {
	width: 100%;
	background: transparent !important;
	color: #fff !important;
	border: 0 !important;
	border-bottom: 1px solid rgba(255, 255, 255, .25) !important;
	border-radius: 0 !important;
	padding: 10px 0 !important;
	font: 400 16px/1.5 var(--akm-font) !important;
	box-shadow: none !important;
	outline: none;
	transition: border-color .25s var(--akm-ease);
}
body.akm .akm-form :is(input, select, textarea):focus { border-bottom-color: var(--akm-red) !important; }
body.akm .akm-form :is(input, textarea)::placeholder { color: rgba(255, 255, 255, .35); }
body.akm .akm-form textarea { resize: vertical; min-height: 130px; }
body.akm .akm-form select {
	appearance: none;
	-webkit-appearance: none;
	cursor: pointer;
	background-image: linear-gradient(45deg, transparent 50%, #fff 50%), linear-gradient(135deg, #fff 50%, transparent 50%) !important;
	background-position: calc(100% - 12px) 55%, calc(100% - 6px) 55% !important;
	background-size: 6px 6px !important;
	background-repeat: no-repeat !important;
}
body.akm .akm-form select option { color: #0a0a0b; background: #fff; }
body.akm .akm-form input:-webkit-autofill { -webkit-text-fill-color: #fff; -webkit-box-shadow: 0 0 0 1000px var(--akm-ink) inset !important; }
.akm-form-foot { display: flex; align-items: center; flex-wrap: wrap; gap: 18px 28px; margin-top: 34px; }
body.akm .akm-form button.akm-btn { cursor: pointer; transform: none; }
body.akm .akm-form button.akm-btn:hover { background: #fff !important; border-color: #fff !important; color: var(--akm-black) !important; }
body.akm .akm-contact .akm-form-foot small { color: rgba(255, 255, 255, .5) !important; font-size: 13px; }
.akm-form-status { padding: 16px 20px; margin: 0 0 28px !important; font-weight: 500; border-left: 3px solid; }
body.akm .akm-contact .akm-form-status.is-ok { background: rgba(46, 160, 67, .14); border-color: #2ea043; color: #fff !important; }
body.akm .akm-contact .akm-form-status.is-error { background: rgba(226, 35, 26, .14); border-color: var(--akm-red); color: #fff !important; }
@media (max-width: 600px) { .akm-form-grid { grid-template-columns: 1fr; } }

/* =========================================================================
   v2.1.1 — Contact page: the dark form section spans the whole page
   ========================================================================= */
body.akm .entry-content:has(.akm-contact--page) .akm-page-hero { margin-bottom: 0 !important; }
body.akm .akm-page-body:has(.akm-contact--page) {
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
}
body.akm .akm-page-body .akm-contact.akm-contact--page {
	margin-top: 0 !important;
	padding: clamp(72px, 9vw, 120px) var(--akm-gutter) !important;
	border-top: 1px solid var(--akm-line-dark);
}
.akm-contact--page .akm-contact-inner {
	grid-template-columns: minmax(0, 1.75fr) minmax(260px, 1fr);
	gap: clamp(48px, 7vw, 120px);
}
.akm-contact--page .akm-contact-list { margin-top: 8px; }
.akm-contact--page .akm-map { margin-top: clamp(56px, 7vw, 96px); height: 420px; }
@media (max-width: 900px) {
	.akm-contact--page .akm-contact-inner { grid-template-columns: 1fr; }
}

/* v2.1.2 — map link */
body.akm .akm-contact .akm-map-link { margin: 14px 0 0; font-size: 13px; letter-spacing: .08em; text-transform: uppercase; }
body.akm .akm-contact .akm-map-link a { color: rgba(255, 255, 255, .7) !important; text-decoration: none; }
body.akm .akm-contact .akm-map-link a:hover { color: var(--akm-red) !important; }

/* =========================================================================
   v2.2.0 — "Classic" home page (wp akm home-style classic):
   no photos, engineering grid + signal wave, red accent text.
   ========================================================================= */
.akc-inner { max-width: var(--akm-max); margin: 0 auto; }
body.akm .akc-hero,
body.akm .akc-section { margin-top: 0 !important; margin-bottom: 0 !important; padding-left: var(--akm-gutter); padding-right: var(--akm-gutter); }

/* Hero */
body.akm .akc-hero {
	position: relative;
	overflow: hidden;
	isolation: isolate;
	min-height: 92vh;
	display: flex;
	align-items: center;
	padding-top: calc(var(--akm-header-h) + clamp(48px, 8vh, 96px));
	padding-bottom: clamp(90px, 14vh, 150px);
	background:
		radial-gradient(60% 70% at 85% 10%, rgba(226, 35, 26, .38), transparent 60%),
		radial-gradient(40% 50% at 0% 100%, rgba(226, 35, 26, .14), transparent 70%),
		#0a0a0b;
}
body.akm .akc-hero .akc-inner { width: 100%; }
body.akm .akc-hero::before { /* fine engineering grid */
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background-image:
		linear-gradient(rgba(255, 255, 255, .055) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, .055) 1px, transparent 1px);
	background-size: 56px 56px;
	-webkit-mask-image: radial-gradient(ellipse 80% 70% at 60% 30%, #000 30%, transparent 75%);
	mask-image: radial-gradient(ellipse 80% 70% at 60% 30%, #000 30%, transparent 75%);
}
body.akm .akc-hero::after { /* animated signal wave */
	content: "";
	position: absolute;
	left: -10%; right: -10%; bottom: 8%;
	height: 160px;
	z-index: -1;
	opacity: .4;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 600 160'%3E%3Cpath d='M0 80 Q 37.5 10 75 80 T 150 80 T 225 80 T 300 80 T 375 80 T 450 80 T 525 80 T 600 80' fill='none' stroke='%23E2231A' stroke-width='1.5'/%3E%3C/svg%3E") repeat-x;
	background-size: 600px 160px;
	animation: akc-wave 18s linear infinite;
}
@keyframes akc-wave { to { background-position-x: -600px; } }

body.akm .akc-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: .7em;
	font: 600 13px/1.3 var(--akm-font);
	letter-spacing: .14em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, .72) !important;
	margin: 0 0 1.4em;
}
body.akm .akc-eyebrow::before { content: ""; width: 28px; height: 2px; background: var(--akm-red); }
body.akm .akc-hero-title {
	font-family: var(--akm-display);
	font-weight: 700;
	font-size: clamp(2.4rem, 5.4vw, 4.4rem);
	line-height: 1.05;
	letter-spacing: -0.02em;
	text-transform: none;
	color: #fff !important;
	max-width: 17ch;
	margin: 0 0 .45em;
	text-wrap: balance;
}
body.akm .akc-accent {
	color: var(--akm-red) !important;
	background: linear-gradient(90deg, #ff4b3e, #e2231a 55%, #ff7a59);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
}
body.akm .akc-hero-lead {
	font-size: clamp(1.05rem, 1.6vw, 1.3rem);
	line-height: 1.6;
	color: rgba(255, 255, 255, .74) !important;
	max-width: 60ch;
	margin: 0;
}
body.akm .akc-actions { display: flex; flex-wrap: wrap; gap: 14px; margin: 2.2em 0 0; }
body.akm .akc-btn {
	display: inline-block;
	background: var(--akm-red);
	color: #fff !important;
	border: 1px solid var(--akm-red);
	border-radius: 999px;
	padding: .85em 1.6em;
	font: 600 15px/1.2 var(--akm-font);
	letter-spacing: .01em;
	text-transform: none;
	text-decoration: none;
	transition: transform .2s var(--akm-ease), background .2s var(--akm-ease), box-shadow .2s var(--akm-ease);
}
body.akm .akc-btn:hover {
	background: var(--akm-red-dark);
	border-color: var(--akm-red-dark);
	transform: translateY(-2px);
	box-shadow: 0 12px 24px -10px rgba(226, 35, 26, .6);
}
body.akm .akc-btn-ghost { background: transparent; border-color: rgba(255, 255, 255, .35); }
body.akm .akc-btn-ghost:hover { background: #fff; border-color: #fff; color: #0a0a0b !important; box-shadow: none; }
body.akm .akc-chips { display: flex; flex-wrap: wrap; gap: 10px; margin: 3.2em 0 0; }
body.akm .akc-chips span {
	font-size: 13px;
	font-weight: 500;
	color: rgba(255, 255, 255, .8) !important;
	padding: .5em 1em;
	border: 1px solid rgba(255, 255, 255, .14);
	border-radius: 999px;
	background: rgba(255, 255, 255, .03);
}

/* Sections */
body.akm .akc-section { padding-top: clamp(72px, 10vw, 128px); padding-bottom: clamp(72px, 10vw, 128px); background: #fff; }
body.akm .akc-kicker {
	font: 600 13px/1.3 var(--akm-font);
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--akm-red) !important;
	margin: 0 0 .8em;
}
body.akm .akc-title {
	font-family: var(--akm-display);
	font-weight: 700;
	font-size: clamp(1.9rem, 3.6vw, 3rem);
	line-height: 1.1;
	letter-spacing: -0.02em;
	text-transform: none;
	color: #0a0a0b;
	max-width: 22ch;
	margin: 0 0 1.4em;
	text-wrap: balance;
}
body.akm .akc-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
body.akm .akc-card {
	position: relative;
	display: flex;
	flex-direction: column;
	padding: 36px 32px 32px;
	border: 1px solid var(--akm-line);
	border-radius: 14px;
	background: #fff;
	overflow: hidden;
	transition: transform .35s var(--akm-ease), box-shadow .35s var(--akm-ease), border-color .35s var(--akm-ease);
}
body.akm .akc-card::before {
	content: "";
	position: absolute;
	top: 0; left: 0; right: 0;
	height: 3px;
	background: var(--akm-red);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .45s var(--akm-ease);
}
body.akm .akc-card:hover { transform: translateY(-6px); box-shadow: 0 24px 48px -24px rgba(11, 11, 12, .25); border-color: transparent; }
body.akm .akc-card:hover::before { transform: scaleX(1); }
body.akm .akc-card h3 { font-family: var(--akm-display); font-weight: 700; font-size: 1.35rem; text-transform: none; letter-spacing: -0.01em; margin: 0 0 .6em; color: #0a0a0b; }
body.akm .akc-card p { font-size: 16px; line-height: 1.65; margin: 0 0 1.4em; color: var(--akm-gray); }
body.akm .akc-link {
	margin-top: auto;
	font-weight: 600;
	font-size: 15px;
	text-decoration: none;
	color: var(--akm-red) !important;
	display: inline-flex;
	align-items: center;
	gap: .4em;
}
body.akm .akc-link::after { content: "→"; transition: transform .25s var(--akm-ease); }
body.akm .akc-link:hover::after { transform: translateX(4px); }

/* Dark section */
body.akm .akc-dark { background: #1c1d20; }
body.akm .akc-dark .akc-title,
body.akm .akc-dark .akc-card h3 { color: #fff !important; }
body.akm .akc-dark .akc-card p { color: rgba(255, 255, 255, .72) !important; }
body.akm .akc-dark .akc-card { background: rgba(255, 255, 255, .03); border-color: rgba(255, 255, 255, .09); }
body.akm .akc-dark .akc-card:hover { background: rgba(255, 255, 255, .06); box-shadow: 0 24px 48px -24px rgba(0, 0, 0, .7); }
body.akm .akc-dark .akc-link { color: #fff !important; }
body.akm .akc-dark .akc-link:hover { color: var(--akm-red) !important; }

/* Quote band */
body.akm .akc-quote { background: var(--akm-surface); text-align: center; }
body.akm .akc-quote-text {
	font-family: var(--akm-display);
	font-weight: 600;
	font-size: clamp(1.6rem, 3.4vw, 2.7rem);
	line-height: 1.25;
	letter-spacing: -0.02em;
	color: #0a0a0b;
	max-width: 28ch;
	margin: 0 auto;
	text-wrap: balance;
}

/* CTA */
body.akm .akc-cta {
	background: radial-gradient(60% 120% at 100% 0%, rgba(226, 35, 26, .42), transparent 60%), #0a0a0b;
}
body.akm .akc-cta .akc-title { color: #fff !important; margin-bottom: .4em; }
body.akm .akc-cta-text { font-size: 1.15rem; max-width: 52ch; color: rgba(255, 255, 255, .76) !important; margin: 0; }

@media (max-width: 900px) {
	body.akm .akc-cards { grid-template-columns: 1fr; gap: 16px; }
}
@media (max-width: 600px) {
	body.akm .akc-actions .akc-btn { width: 100%; text-align: center; }
}
@media (prefers-reduced-motion: reduce) {
	body.akm .akc-hero::after { animation: none; }
}

/* v2.2.1 — Akronic logo (assets/logo.svg) in header and footer */
.akm-logo .akm-logo-img { display: block; height: 26px; width: auto; max-width: none; }
.akm-scrolled .akm-header .akm-logo-img,
.akm:not(.akm-front) .akm-header .akm-logo-img { height: 23px; }
.akm-footer .akm-logo-img { height: 28px; }
@media (max-width: 600px) { .akm-logo .akm-logo-img { height: 21px; } }

/* v2.2.2 — inner pages: comfortable reading width on big screens
   (Astra's full-width layout was overriding the limit) */
body.akm .entry-content > .akm-page-body,
body.akm .entry-content[data-ast-blocks-layout] > .akm-page-body {
	width: auto !important;
	max-width: 860px !important;
	margin-left: auto !important;
	margin-right: auto !important;
	padding-left: 24px !important;
	padding-right: 24px !important;
}
/* Pages that list sub-pages as cards get a wider column for the cards */
body.akm .entry-content > .akm-page-body:has(.akm-cards) { max-width: 1280px !important; }
/* Children inside the column never stretch past it */
body.akm .akm-page-body > * { max-width: 100%; margin-left: 0; margin-right: 0; }
body.akm .akm-page-body > .akm-figure,
body.akm .akm-page-body > .wp-block-image { margin-left: 0 !important; margin-right: 0 !important; }
/* …except the Contact page, which stays one full-width section */
body.akm .entry-content > .akm-page-body:has(.akm-contact--page),
body.akm .entry-content[data-ast-blocks-layout] > .akm-page-body:has(.akm-contact--page) {
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

/* =========================================================================
   v2.5.0 — Accessibility
   ========================================================================= */

/* --- Always on: skip link + clear keyboard focus --- */
.akm .skip-link { display: none !important; }          /* Astra's duplicate */
.akm-skip {
	position: fixed;
	top: 10px; left: 10px;
	z-index: 100000;
	padding: 12px 18px;
	background: #fff;
	color: #0a0a0b !important;
	font: 600 15px/1 var(--akm-font);
	border: 3px solid var(--akm-red);
	text-decoration: none;
	transform: translateY(-160%);
	transition: transform .2s;
}
.akm-skip:focus { transform: none; outline: none; }
body.akm :focus-visible {
	outline: 3px solid var(--akm-red) !important;
	outline-offset: 3px !important;
	box-shadow: 0 0 0 6px rgba(255, 255, 255, .85) !important;
}

/* --- Floating button --- */
.akm-a11y-btn {
	position: fixed;
	left: 20px;
	bottom: 20px;
	z-index: 9990;
	width: 52px;
	height: 52px;
	padding: 0 !important;
	border-radius: 50% !important;
	border: 2px solid var(--akm-red) !important;
	background: #0a0a0b !important;
	color: #fff !important;
	display: grid;
	place-items: center;
	cursor: pointer;
	box-shadow: 0 8px 24px -8px rgba(0, 0, 0, .6) !important;
	transition: transform .2s var(--akm-ease), background .2s var(--akm-ease);
}
.akm-a11y-btn:hover { background: var(--akm-red) !important; transform: scale(1.06); }
.akm-a11y-btn svg { width: 28px; height: 28px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.akm-a11y-btn svg circle { fill: currentColor; stroke: none; }
.akm-a11y-btn.has-active::after {      /* small dot when any option is on */
	content: "";
	position: absolute;
	top: 2px; right: 2px;
	width: 12px; height: 12px;
	border-radius: 50%;
	background: var(--akm-red);
	border: 2px solid #0a0a0b;
}
.akm-menu-open .akm-a11y-btn { z-index: 1001; }

/* --- Panel --- */
.akm-a11y-panel {
	position: fixed;
	left: 20px;
	bottom: 84px;
	z-index: 9991;
	width: min(320px, calc(100vw - 40px));
	max-height: calc(100vh - 110px);
	overflow-y: auto;
	padding: 20px;
	background: #fff;
	color: #0a0a0b;
	border-radius: 14px;
	box-shadow: 0 24px 60px -12px rgba(0, 0, 0, .45);
	font: 400 15px/1.4 var(--akm-font);
}
.akm-a11y-panel[hidden] { display: none; }
.akm-a11y-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; }
body.akm .akm-a11y-panel h2 {
	font: 800 18px/1.2 var(--akm-display) !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
	color: #0a0a0b !important;
	margin: 0 !important;
}
body.akm .akm-a11y-panel button {
	font: 600 13.5px/1.25 var(--akm-font) !important;
	color: #0a0a0b !important;
	background: #f3f3f4 !important;
	border: 2px solid transparent !important;
	border-radius: 10px !important;
	padding: 10px !important;
	cursor: pointer;
	text-transform: none !important;
	letter-spacing: 0 !important;
	box-shadow: none !important;
	transform: none !important;
	transition: border-color .15s, background .15s;
}
body.akm .akm-a11y-panel button:hover { border-color: #c9c9ce !important; }
body.akm .akm-a11y-panel button[aria-pressed="true"] {
	background: #0a0a0b !important;
	color: #fff !important;
	border-color: #0a0a0b !important;
}
body.akm .akm-a11y-panel .akm-a11y-close {
	width: 34px; height: 34px;
	padding: 0 !important;
	font-size: 22px !important;
	line-height: 1 !important;
	background: transparent !important;
}
.akm-a11y-label { margin: 0 0 8px !important; font-weight: 600; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: #55595f !important; }
.akm-a11y-sizes { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-bottom: 12px; }
body.akm .akm-a11y-sizes button { display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 8px 4px !important; }
.akm-a11y-sizes span { font-family: var(--akm-display); font-weight: 800; line-height: 1.1; }
.akm-a11y-sizes small { font-size: 11px; font-weight: 500; }
.akm-a11y-toggles { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
body.akm .akm-a11y-toggles button { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; text-align: left; min-height: 74px; }
.akm-a11y-toggles svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.akm-a11y-toggles svg .fill { fill: currentColor; }
body.akm .akm-a11y-panel button[data-reset] { background: #fff !important; border-color: #e4e4e7 !important; }
.akm-a11y-note { margin: 12px 0 0 !important; font-size: 12px; color: #55595f !important; }
@media (max-width: 600px) {
	.akm-a11y-btn { left: 14px; bottom: 14px; width: 48px; height: 48px; }
	.akm-a11y-panel { left: 14px; bottom: 74px; }
}

/* --- Text size (whole page scales; full-width sections corrected so nothing spills sideways) --- */
html.akm-a11y-size-1 { zoom: 1.15; }
html.akm-a11y-size-2 { zoom: 1.3; }
html.akm-a11y-size-1 body.akm .alignfull,
html.akm-a11y-size-1 body.akm .akm-page-hero,
html.akm-a11y-size-1 body.akm .entry-content > .alignfull,
html.akm-a11y-size-1 body.akm .entry-content > .akm-page-hero,
html.akm-a11y-size-1 body.akm .entry-content[data-ast-blocks-layout] > .alignfull,
html.akm-a11y-size-1 body.akm .entry-content[data-ast-blocks-layout] > .akm-page-hero {
	width: calc(var(--akm-fullw) / 1.15) !important;
	max-width: calc(var(--akm-fullw) / 1.15) !important;
	margin-left: calc(50% - var(--akm-fullw) / 2.3) !important;
	margin-right: calc(50% - var(--akm-fullw) / 2.3) !important;
}
html.akm-a11y-size-2 body.akm .alignfull,
html.akm-a11y-size-2 body.akm .akm-page-hero,
html.akm-a11y-size-2 body.akm .entry-content > .alignfull,
html.akm-a11y-size-2 body.akm .entry-content > .akm-page-hero,
html.akm-a11y-size-2 body.akm .entry-content[data-ast-blocks-layout] > .alignfull,
html.akm-a11y-size-2 body.akm .entry-content[data-ast-blocks-layout] > .akm-page-hero {
	width: calc(var(--akm-fullw) / 1.3) !important;
	max-width: calc(var(--akm-fullw) / 1.3) !important;
	margin-left: calc(50% - var(--akm-fullw) / 2.6) !important;
	margin-right: calc(50% - var(--akm-fullw) / 2.6) !important;
}
html.akm-a11y-size-1 .akm-a11y-panel { max-height: calc(100vh / 1.15 - 110px); }
html.akm-a11y-size-2 .akm-a11y-panel { max-height: calc(100vh / 1.3 - 110px); }

/* --- High contrast: pure black / white, no decorative layers --- */
html.akm-a11y-contrast body.akm { background: #fff !important; }
html.akm-a11y-contrast body.akm :is(h1, h2, h3, h4, h5, h6, p, li, dt, dd, td, th, span, small, label, strong, em, blockquote) { color: #000 !important; }
html.akm-a11y-contrast body.akm :is(.akm-section, .akc-section, .akm-values, .akc-quote, .akm-page-body) { background: #fff !important; }
html.akm-a11y-contrast body.akm :is(.akm-hero-slider, .akm-band, .akm-contact, .akm-page-hero, .akm-menu, .akm-footer, .akm-freqs, .akm-ticker, .akc-hero, .akc-dark, .akc-cta) {
	background: #000 !important;
}
html.akm-a11y-contrast body.akm :is(.akm-hero-slider, .akm-band, .akm-contact, .akm-page-hero, .akm-menu, .akm-footer, .akm-freqs, .akm-ticker, .akm-header, .akc-hero, .akc-dark, .akc-cta)
	:is(h1, h2, h3, h4, h5, h6, p, li, dt, dd, span, small, label, strong, em, a, input, select, textarea) {
	color: #fff !important;
	-webkit-text-fill-color: #fff !important;
}
html.akm-a11y-contrast body.akm .akm-header { background: #000 !important; box-shadow: none !important; }
html.akm-a11y-contrast body.akm .akm-header::before { opacity: 0 !important; }
/* accents: darker red on white, lighter red on black (both pass WCAG AA) */
html.akm-a11y-contrast body.akm :is(.akm-kicker, .akc-kicker, .akm-card-more, .akc-link, .akm-facts dt, .akm-page-body a) { color: #a3140d !important; }
html.akm-a11y-contrast body.akm :is(.akm-hero-slider, .akm-band, .akm-contact, .akm-page-hero, .akm-menu, .akm-footer, .akc-hero, .akc-dark, .akc-cta) :is(.akm-kicker, .akm-eyebrow, .akc-kicker, .akc-eyebrow, .akm-accent, .akc-accent, .akm-contact-list dt, .akc-link) {
	color: #ff8a80 !important;
	-webkit-text-fill-color: #ff8a80 !important;
	background: none !important;
}
html.akm-a11y-contrast body.akm .akc-accent { background: none !important; -webkit-text-fill-color: currentColor !important; }
/* photos and glows: strongly darkened, decorative grids/waves hidden */
html.akm-a11y-contrast body.akm .akm-slide::before { background: linear-gradient(rgba(0, 0, 0, .86), rgba(0, 0, 0, .86)), var(--akm-bg, none) center / cover no-repeat, #000 !important; transform: none !important; }
html.akm-a11y-contrast body.akm .akm-band::before { background: linear-gradient(rgba(0, 0, 0, .88), rgba(0, 0, 0, .88)), var(--akm-bg, none) center / cover no-repeat, #000 !important; }
html.akm-a11y-contrast body.akm :is(.akc-hero, .akm-page-hero, .akm-menu)::before,
html.akm-a11y-contrast body.akm .akc-hero::after,
html.akm-a11y-contrast body.akm .akm-split-media::after { display: none !important; }
/* buttons and cards */
html.akm-a11y-contrast body.akm :is(.akm-btn, .akc-btn, .wp-block-button__link) { background: #a3140d !important; border-color: #a3140d !important; color: #fff !important; -webkit-text-fill-color: #fff !important; }
html.akm-a11y-contrast body.akm :is(.akm-btn-ghost, .akc-btn-ghost) { background: #000 !important; border: 2px solid #fff !important; }
html.akm-a11y-contrast body.akm :is(.akm-card, .akc-card, .akm-cards, .akm-feature, .akm-feature-grid) { border-color: #000 !important; }
html.akm-a11y-contrast body.akm .akc-dark .akc-card { border-color: #fff !important; background: #000 !important; }
html.akm-a11y-contrast body.akm .akm-card:hover { background: #000 !important; }
html.akm-a11y-contrast body.akm .akm-card:hover :is(h3, p, .akm-card-more) { color: #fff !important; }
html.akm-a11y-contrast body.akm .akm-form :is(input, select, textarea) { border-bottom-color: #fff !important; }
html.akm-a11y-contrast body.akm .akm-eu-strip { background: #fff !important; border-color: #000 !important; }

/* --- Underline links --- */
html.akm-a11y-links body.akm a:not(.akm-btn):not(.akc-btn):not(.wp-block-button__link):not(.akm-card):not(.akm-logo):not(.akm-skip):not(.akm-header-cta):not(.akm-eu-strip):not(.akm-eu-banner) {
	text-decoration: underline !important;
	text-decoration-thickness: 2px !important;
	text-underline-offset: 3px !important;
}
html.akm-a11y-links body.akm :is(.akm-card h3, .akm-eu-strip span) { text-decoration: underline; text-underline-offset: 3px; }

/* --- Readable font (Atkinson Hyperlegible, designed for low vision) --- */
html.akm-a11y-font body.akm,
html.akm-a11y-font body.akm :is(h1, h2, h3, h4, h5, h6, p, li, a, span, dt, dd, label, input, select, textarea, button, small, strong, em) {
	font-family: "Atkinson Hyperlegible", Verdana, Tahoma, sans-serif !important;
}

/* --- Text spacing: taller lines, wider word gaps, a little letter spacing --- */
html.akm-a11y-spacing body.akm :is(p, li, dd, dt, td, blockquote) {
	line-height: 1.9 !important;
	letter-spacing: .035em !important;
	word-spacing: .16em !important;
}
html.akm-a11y-spacing body.akm p { margin-bottom: 1.6em !important; }
html.akm-a11y-spacing body.akm :is(h1, h2, h3, h4) { line-height: 1.35 !important; }

/* --- Stop animations --- */
html.akm-a11y-still *,
html.akm-a11y-still *::before,
html.akm-a11y-still *::after {
	animation: none !important;
	transition: none !important;
	scroll-behavior: auto !important;
}
html.akm-a11y-still .akm-reveal { opacity: 1 !important; transform: none !important; }
html.akm-a11y-still .akm-slide::before { transform: none !important; }
html.akm-a11y-still .akm-band::before { background-attachment: scroll !important; }

/* v2.5.3 — never show Astra's featured image on pages: the page banner replaces it */
body.akm.page :is(.post-thumb-img-content, .post-thumb, .ast-single-post-featured-section, .ast-featured-img, .wp-post-image:not(.akm-keep)) { display: none !important; }

/* =========================================================================
   Classic hero: Akronic die photo in two corners, where the red glows are.
   Recoloured toward the background, tilted slightly for depth; the photo's shapes
   are untouched. The edge fades are baked into the images (assets/die-tr.webp,
   assets/die-bl.webp) and the dies are static: no per-frame masking or animation,
   which keeps CPU/GPU use low.
   ========================================================================= */
body.akm .akc-hero-die {
	position: absolute;
	z-index: -2;                        /* under the grid and the signal wave */
	aspect-ratio: 1200 / 1194;
	background: center / 100% 100% no-repeat;
	pointer-events: none;
}
/* top-right: its top-right corner pinned to the hero's top-right corner; left edge ≈ middle.
   The tilt pivots on that corner, so the top and right edges stay on the screen edges. */
body.akm .akc-die-tr {
	background-image: url("die-tr.webp");
	width: 46.5%;                       /* 46.5% + the tilt's perspective ≈ 50% on screen */
	top: 0;
	right: 0;
	opacity: .8;
	transform: perspective(1800px) rotateY(-14deg) rotateX(8deg);
	transform-origin: 100% 0;
}
/* bottom-left: where the soft glow is */
body.akm .akc-die-bl {
	background-image: url("die-bl.webp");
	bottom: -4%;
	left: -2%;
	width: min(24vw, 350px);
	opacity: .46;
	transform: perspective(1600px) rotateY(16deg) rotateX(-12deg) rotateZ(5deg);
	transform-origin: 0 100%;
}
@media (max-width: 1000px) {
	body.akm .akc-die-tr { width: 70%; opacity: .45; }
	body.akm .akc-die-bl { width: 46vw; opacity: .24; }
}
@media (max-width: 600px) {
	body.akm .akc-die-tr { width: 92%; opacity: .28; }
	body.akm .akc-die-bl { width: 60vw; bottom: -10%; left: -24%; opacity: .2; }
}
html.akm-a11y-contrast body.akm .akc-hero-die { display: none !important; }

/* =========================================================================
   v2.9.0 — "Page not found" page
   ========================================================================= */
body.akm.error404 .akm-404 > .akm-page-hero {
	width: var(--akm-fullw) !important;
	max-width: var(--akm-fullw) !important;
	margin-left: calc(50% - var(--akm-fullw) / 2) !important;
	margin-right: calc(50% - var(--akm-fullw) / 2) !important;
}
body.akm.error404 .akm-404 > .akm-page-body { max-width: 1040px !important; margin: 0 auto clamp(80px, 10vw, 130px) !important; padding: 0 24px !important; }
body.akm.error404 .akm-404 .akm-page-body > p:not(.akm-lead):not(.akm-404-actions) { max-width: 62ch; }
.akm-404-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 32px; margin: 2em 0 0 !important; }
body.akm .akm-404-link {
	font: 700 13px/1 var(--akm-font);
	letter-spacing: .16em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--akm-black) !important;
	display: inline-flex;
	align-items: center;
	gap: 12px;
}
body.akm .akm-404-link::after { content: ""; width: 28px; height: 2px; background: var(--akm-red); transition: width .3s var(--akm-ease); }
body.akm .akm-404-link:hover { color: var(--akm-red) !important; }
body.akm .akm-404-link:hover::after { width: 48px; }
body.akm .akm-404 .akm-cards { margin-top: 56px; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
body.akm .akm-404 .akm-card { min-height: 150px; }
body.akm .akm-404 .akm-card h3 { margin-bottom: 28px; }
.akm-404-search { margin-top: 64px; }
.akm-404-search form { display: flex; gap: 14px; flex-wrap: wrap; max-width: 640px; }
body.akm .akm-404-search input[type="search"] {
	flex: 1 1 280px;
	border: 0 !important;
	border-bottom: 2px solid var(--akm-line) !important;
	border-radius: 0 !important;
	background: transparent !important;
	padding: 12px 0 !important;
	font: 400 17px/1.4 var(--akm-font) !important;
	color: var(--akm-black) !important;
}
body.akm .akm-404-search input[type="search"]:focus { border-bottom-color: var(--akm-red) !important; }
body.akm .akm-404-search button { cursor: pointer; }
/* hide Astra's own 404 block if a cached copy of the old page is ever shown */
body.akm.error404 .ast-404-layout-1, body.akm.error404 .error-404:not(.akm-404) { display: none !important; }
.akm-404-search .screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}

/* =========================================================================
   v2.10.0 — classic hero fills the whole screen; content below appears on scroll
   ========================================================================= */
body.akm .akc-hero {
	min-height: 100vh;
	min-height: 100svh;                 /* phones: excludes the browser's address bar */
	padding-bottom: clamp(110px, 16vh, 170px);
}
body.akm.admin-bar .akc-hero { min-height: calc(100vh - 32px); min-height: calc(100svh - 32px); }
@media (max-width: 782px) {
	body.akm.admin-bar .akc-hero { min-height: calc(100vh - 46px); min-height: calc(100svh - 46px); }
}
#akm-next { scroll-margin-top: 68px; }

/* =========================================================================
   v2.10.1 — lighter animations
   - the signal wave moves with transform (handled by the graphics card) instead of
     repainting its background every frame
   - the scroll hint likewise
   - everything in the hero pauses once it's scrolled out of view
   ========================================================================= */
body.akm .akc-hero::after {
	left: 0;
	right: auto;
	width: calc(100% + 600px);          /* one extra wave period to slide through */
	background-position: 0 0;
	animation: akc-wave-x 18s linear infinite;
	will-change: transform;
}
@keyframes akc-wave-x { to { transform: translateX(-600px); } }
body.akm .akc-hero.is-offscreen::after { animation-play-state: paused; }
@media (prefers-reduced-motion: reduce) {
	body.akm .akc-hero::after { animation: none !important; transform: none; }
}

/* v2.10.2 — static "scroll down" arrow (no animation) */
body.akm .akc-scroll-down {
	position: absolute;
	left: 50%;
	bottom: 22px;
	z-index: 1;
	width: 44px;
	height: 44px;
	margin-left: -22px;
	display: grid;
	place-items: center;
	color: rgba(255, 255, 255, .7) !important;
	text-decoration: none;
}
body.akm .akc-scroll-down svg { width: 28px; height: 28px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
body.akm .akc-scroll-down:hover { color: #fff !important; }
@media (max-width: 700px) { body.akm .akc-scroll-down { bottom: 12px; } }

/* v2.10.3 — Contact page without the banner: the dark contact section starts at the top */
body.akm .entry-content > .akm-contact-page,
body.akm .entry-content[data-ast-blocks-layout] > .akm-contact-page {
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
}
body.akm .akm-contact-page > p:empty { display: none; }
body.akm .akm-page-body .akm-contact.akm-contact--page {
	padding-top: calc(68px + clamp(64px, 9vw, 120px)) !important;   /* clears the fixed header */
	border-top: 0;
}
body.akm.admin-bar .akm-page-body .akm-contact.akm-contact--page { padding-top: calc(100px + clamp(64px, 9vw, 120px)) !important; }
body.akm .akm-contact--page h1.akm-display {
	font-size: clamp(30px, 3.8vw, 50px);
	color: #fff !important;
	margin: 0 0 28px;
}

/* =========================================================================
   v2.11.1 — classic hero always fits the first screen (any window height),
   and the down-arrow always sits at the bottom of that first screen.
   ========================================================================= */
body.akm .akc-hero {
	--akc-top: var(--akm-header-h);
	padding-top: calc(var(--akc-top) + clamp(16px, 5vh, 88px));
	padding-bottom: clamp(64px, 11vh, 140px);
}
body.akm .akc-hero-title { font-size: clamp(2.1rem, min(5.4vw, 7.6vh), 4.4rem); margin-bottom: clamp(.25em, 2.2vh, .45em); }
body.akm .akc-hero-lead { font-size: clamp(1rem, min(1.6vw, 2.4vh), 1.3rem); }
body.akm .akc-actions { margin-top: clamp(16px, 3.6vh, 2.2em); }
body.akm .akc-chips { margin-top: clamp(16px, 4.4vh, 3.2em); }
body.akm .akc-chips span { padding: clamp(.3em, .8vh, .5em) 1em; }

/* arrow: pinned to the bottom of the first screen, not to the bottom of the section */
body.akm .akc-scroll-down {
	bottom: auto;
	top: calc(100vh - 58px);
	top: calc(100svh - 58px);
}
body.akm.admin-bar .akc-scroll-down { top: calc(100vh - 32px - 58px); top: calc(100svh - 32px - 58px); }
@media (max-width: 782px) {
	body.akm.admin-bar .akc-scroll-down { top: calc(100vh - 46px - 58px); top: calc(100svh - 46px - 58px); }
}
@media (max-height: 560px) { body.akm .akc-scroll-down { display: none; } }
@media (max-width: 600px) and (max-height: 760px) { body.akm .akc-scroll-down { display: none; } }

/* v2.11.5 — always leave space between a page's last element and the footer.
   Astra sets the bottom margin of .entry-content's last child to 0, which made
   pages ending in cards or a button touch the footer; padding isn't affected. */
body.akm .entry-content > .akm-page-body:not(.akm-contact-page):not(:has(.akm-contact--page)) {
	margin-bottom: 0 !important;
	padding-bottom: clamp(64px, 7vw, 96px) !important;
}
/* the page's last element adds no extra space of its own, so the gap is identical on every page */
body.akm .akm-page-body:not(.akm-contact-page) > :last-child,
body.akm .akm-page-body:not(.akm-contact-page) > :last-child > :last-child { margin-bottom: 0 !important; }

/* v2.11.7 — arrow centred independently of margins */
body.akm .akc-scroll-down { left: 50% !important; margin: 0 !important; transform: translateX(-50%); }

/* v2.11.8 — phone polish: compact footer, bigger tap targets, readable form labels */
@media (max-width: 600px) {
	body.akm .akm-footer { padding-top: 64px; }
	body.akm .akm-footer-top { grid-template-columns: 1fr 1fr !important; gap: 36px 20px; padding-bottom: 44px; }
	body.akm .akm-footer-brand { grid-column: 1 / -1; }
	body.akm .akm-footer h4 { margin-bottom: 12px; }
	body.akm .akm-footer li { margin: 0; }
	body.akm .akm-footer li a { display: inline-block; padding: 7px 0; }
	body.akm .akm-footer-bottom { gap: 10px; line-height: 1.5; }
	body.akm .akm-footer-bottom a { display: inline-block; padding: 8px 0; }
	body.akm .akm-contact .akm-field > span { font-size: 12.5px; letter-spacing: .12em; color: rgba(255, 255, 255, .72) !important; }
	body.akm .akm-contact .akm-contact-list a { display: inline-block; padding: 6px 0; }
	body.akm .akm-contact--page .akm-map { height: 300px; }
}
