/*
  Project:   Aberions
  Layout:    Shared ~1100px shell, calm rhythm, readable measure
*/

/* ——— Reset WP layout quirks ——— */
.wp-site-blocks {
	padding: 0 !important;
	margin: 0 !important;
}

.wp-block-post-content {
	padding: 0 !important;
	margin: 0 !important;
	max-width: none !important;
}

.wp-block-post-content.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)),
.wp-block-post-content.is-layout-flow > :where(:not(.alignleft):not(.alignright):not(.alignfull)) {
	max-width: none !important;
}

.wp-block-post-content > .alignfull,
.wp-block-post-content > .aberions-hero,
.wp-block-post-content > .aberions-split,
.wp-block-post-content > .aberions-services,
.wp-block-post-content > .aberions-audience,
.wp-block-post-content > .aberions-approach,
.wp-block-post-content > .aberions-principles,
.wp-block-post-content > .aberions-faq,
.wp-block-post-content > .aberions-cta,
.wp-block-post-content > .aberions-footer,
.aberions-site-header.alignfull,
.aberions-footer.alignfull {
	max-width: none !important;
	width: 100% !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

.wp-site-blocks > .aberions-site-header,
.wp-site-blocks > .aberions-footer,
.wp-site-blocks > .aberions-page {
	margin: 0;
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

body {
	margin: 0;
	background: var(--ab-paper);
	color: var(--ab-ink);
	font-family: "Source Sans 3", "Helvetica Neue", sans-serif;
	font-size: 1.0625rem;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
}

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

:root {
	/* Colour is owned by theme.json and nothing else. These are aliases onto the
	   generated presets, so the ~110 --ab-* references below keep working while
	   there stays exactly one place to change a brand colour, and the editor
	   palette can no longer drift from what the blocks render.

	   Palette entries are the colours an editor may pick. settings.custom holds
	   the internal derivations that should not appear in the colour picker.

	   Brass is an accent, not a text colour: #a4864e on paper is only 2.96:1.
	   Text that needs to be brass uses --ab-brass-ink (4.82:1). */
	--ab-navy: var(--wp--preset--color--navy);
	--ab-graphite: var(--wp--preset--color--graphite);
	--ab-paper: var(--wp--preset--color--paper);
	--ab-ink: var(--wp--preset--color--ink);
	--ab-mist: var(--wp--preset--color--mist);
	--ab-brass: var(--wp--preset--color--brass);
	--ab-brass-ink: var(--wp--preset--color--brass-ink);
	--ab-white: var(--wp--preset--color--white);
	--ab-brass-deep: var(--wp--custom--color--brass-deep);
	--ab-brass-light: var(--wp--custom--color--brass-light);
	--ab-line: var(--wp--custom--color--line);

	/* Layout metrics stay here: they have no theme.json equivalent beyond
	   contentSize/wideSize, which mirror --ab-shell. */
	--ab-radius: 2px;
	/* One shared content width for the whole site */
	--ab-shell: 68rem; /* ~1088px */
	/* Reading column for prose pages. 42rem at 1.125rem body lands near 74
	   characters per line, just inside the 45-75ch legibility range. */
	--ab-measure: 42rem; /* ~672px */
	--ab-gutter: clamp(1.25rem, 3.5vw, 2rem);
	--ab-section-y: clamp(3rem, 5vw, 4.5rem);
	--ab-stack: 1.25rem;
	--ab-ease: cubic-bezier(0.22, 1, 0.36, 1);
}

.aberions-shell {
	width: 100%;
	max-width: var(--ab-shell);
	margin-inline: auto;
	padding-inline: var(--ab-gutter);
}

/* ——— Buttons ——— */
.aberions-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 0.75rem 1.35rem;
	border: 1px solid transparent;
	border-radius: var(--ab-radius);
	font-family: inherit;
	font-size: 0.9375rem;
	font-weight: 600;
	letter-spacing: 0.01em;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
	transition: background-color 0.2s var(--ab-ease), color 0.2s var(--ab-ease), border-color 0.2s var(--ab-ease);
}

.aberions-btn--primary {
	background: var(--ab-brass);
	color: var(--ab-navy);
}

.aberions-btn--primary:hover {
	background: #b8975c;
	color: var(--ab-navy);
}

.aberions-btn--ghost {
	background: transparent;
	border-color: rgba(247, 248, 249, 0.4);
	color: var(--ab-white);
}

.aberions-btn--ghost:hover {
	border-color: var(--ab-brass-light);
	color: var(--ab-brass-light);
}

/* ——— Hero ——— */
.aberions-hero {
	position: relative;
	isolation: isolate;
	min-height: min(92svh, 42rem);
	display: flex;
	flex-direction: column;
	color: var(--ab-white);
	overflow: hidden;
	background: var(--ab-navy);
}

.aberions-hero__media {
	position: absolute;
	inset: 0;
	z-index: 0;
}

.aberions-hero__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 65% center;
}

.aberions-hero__veil {
	position: absolute;
	inset: 0;
	z-index: 1;
	background:
		linear-gradient(100deg, rgba(7, 18, 31, 0.93) 0%, rgba(7, 18, 31, 0.78) 48%, rgba(7, 18, 31, 0.4) 100%),
		linear-gradient(to top, rgba(7, 18, 31, 0.5) 0%, transparent 40%);
}

.aberions-hero__top,
.aberions-hero__main,
.aberions-hero__foot {
	position: relative;
	z-index: 2;
	width: 100%;
	max-width: var(--ab-shell);
	margin-inline: auto;
	padding-inline: var(--ab-gutter);
}

.aberions-hero__top {
	display: flex;
	align-items: center;
	gap: 1.25rem;
	padding-top: 1.1rem;
	padding-bottom: 1.1rem;
	border-bottom: 1px solid rgba(247, 248, 249, 0.12);
	/* Outrank .aberions-hero__main so open dropdowns are not painted over by
	   the headline, which creates its own stacking context while animating. */
	z-index: 4;
}

.aberions-hero__brand {
	font-family: "Fraunces", "Times New Roman", serif;
	font-size: 1.375rem;
	font-weight: 500;
	letter-spacing: 0.02em;
	color: var(--ab-white);
	text-decoration: none;
	flex: 0 0 auto;
}

.aberions-hero__brand:hover {
	color: var(--ab-brass-light);
}

.aberions-hero__nav-wrap {
	display: none;
	flex: 1 1 auto;
	justify-content: center;
	min-width: 0;
}

@media (min-width: 960px) {
	.aberions-hero__nav-wrap {
		display: flex;
	}
}

.aberions-hero__tools {
	display: flex;
	align-items: center;
	gap: 0.65rem;
	margin-left: auto;
	flex: 0 0 auto;
}

/* Primary nav (desktop) */
.aberions-nav__list {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 0.15rem 1.35rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.aberions-nav__link {
	font-size: 0.9rem;
	font-weight: 500;
	color: rgba(247, 248, 249, 0.82);
	text-decoration: none;
	padding: 0.35rem 0;
	border-bottom: 1px solid transparent;
	white-space: nowrap;
}

.aberions-nav__link:hover {
	color: #f0e2c0;
	border-bottom-color: rgba(212, 181, 122, 0.7);
}

/* Mobile toggle */
.aberions-nav-toggle {
	display: inline-flex;
	flex-direction: column;
	justify-content: center;
	gap: 5px;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 1px solid rgba(247, 248, 249, 0.35);
	border-radius: var(--ab-radius);
	background: rgba(247, 248, 249, 0.1);
	cursor: pointer;
}

.aberions-nav-toggle span {
	display: block;
	width: 18px;
	height: 1.5px;
	margin-inline: auto;
	background: var(--ab-white);
}

@media (min-width: 960px) {
	.aberions-nav-toggle {
		display: none;
	}
}

.aberions-mobile-nav {
	position: relative;
	z-index: 3;
	background: rgba(7, 18, 31, 0.96);
	border-bottom: 1px solid rgba(247, 248, 249, 0.1);
}

.aberions-mobile-nav__inner {
	max-width: var(--ab-shell);
	margin-inline: auto;
	padding: 0.75rem var(--ab-gutter) 1.25rem;
}

.aberions-mobile-nav .aberions-nav__list {
	flex-direction: column;
	align-items: stretch;
	gap: 0;
}

.aberions-mobile-nav .aberions-nav__link {
	display: block;
	padding: 0.85rem 0;
	border-bottom: 1px solid rgba(247, 248, 249, 0.1);
	font-size: 1.05rem;
}

@media (min-width: 960px) {
	.aberions-mobile-nav {
		display: none !important;
	}
}

.aberions-hero__main {
	flex: 1;
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding-block: 2.5rem 2rem;
}

.aberions-hero__inner {
	width: 100%;
	max-width: 40rem;
	opacity: 0;
	transform: translateY(0.75rem);
	animation: aberions-rise 0.7s var(--ab-ease) 0.05s forwards;
}

.aberions-hero__title {
	margin: 0 0 1rem;
	font-family: "Fraunces", "Times New Roman", serif;
	font-size: clamp(2rem, 3.6vw, 2.875rem);
	font-weight: 500;
	line-height: 1.15;
	letter-spacing: -0.01em;
	color: var(--ab-white);
	overflow-wrap: normal;
	word-break: normal;
	hyphens: none;
	text-wrap: wrap;
}

.aberions-hero__subtitle {
	margin: 0 0 1.75rem;
	font-size: 1.0625rem;
	line-height: 1.65;
	color: rgba(247, 248, 249, 0.8);
}

.aberions-hero__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.75rem 1rem;
}

.aberions-hero__foot {
	padding-bottom: 1.5rem;
}

.aberions-hero__rule {
	display: block;
	width: 5rem;
	height: 1px;
	margin: 0;
	border: 0;
	background: var(--ab-brass);
	opacity: 0;
	animation: aberions-fade 0.7s var(--ab-ease) 0.25s forwards;
}

/* ——— Services ——— */
.aberions-services {
	padding-block: var(--ab-section-y);
	background: var(--ab-paper);
	color: var(--ab-ink);
}

.aberions-services__wrap {
	width: 100%;
	max-width: var(--ab-shell);
	margin-inline: auto;
	padding-inline: var(--ab-gutter);
}

.aberions-services__intro {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.75rem;
	margin-bottom: 2.5rem;
	padding-bottom: 2rem;
	border-bottom: 1px solid var(--ab-line);
	opacity: 0;
	transform: translateY(0.5rem);
}

.aberions-services.is-inview .aberions-services__intro {
	animation: aberions-rise 0.6s var(--ab-ease) forwards;
}

@media (min-width: 800px) {
	.aberions-services__intro {
		grid-template-columns: minmax(0, 1fr) minmax(0, 0.9fr);
		gap: 2.5rem;
		align-items: center;
	}

	.aberions-services__intro--plain {
		grid-template-columns: minmax(0, 1fr);
	}
}

.aberions-services__copy {
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-width: 0;
}

.aberions-services__eyebrow {
	margin: 0 0 0.5rem;
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--ab-brass-deep);
}

.aberions-services__heading {
	margin: 0;
	font-family: "Fraunces", serif;
	font-size: clamp(1.625rem, 2.4vw, 2.125rem);
	font-weight: 500;
	line-height: 1.25;
	color: var(--ab-navy);
}

.aberions-services__figure {
	margin: 0;
	border: 1px solid var(--ab-line);
	background: var(--ab-graphite);
	width: 100%;
	overflow: hidden;
}

.aberions-services__figure img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	filter: saturate(0.88);
}

.aberions-services__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0;
}

@media (min-width: 900px) {
	.aberions-services__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 0 2rem;
	}
}

.aberions-services__item {
	padding: 1.5rem 0;
	border-top: 1px solid var(--ab-line);
	opacity: 0;
	transform: translateY(0.5rem);
}

@media (min-width: 900px) {
	.aberions-services__item {
		padding: 0;
		border-top: 0;
		border-left: 1px solid var(--ab-line);
		padding-left: 2rem;
	}

	.aberions-services__item:first-child {
		border-left: 0;
		padding-left: 0;
	}
}

.aberions-services.is-inview .aberions-services__item:nth-child(1) {
	animation: aberions-rise 0.6s var(--ab-ease) 0.05s forwards;
}
.aberions-services.is-inview .aberions-services__item:nth-child(2) {
	animation: aberions-rise 0.6s var(--ab-ease) 0.12s forwards;
}
.aberions-services.is-inview .aberions-services__item:nth-child(3) {
	animation: aberions-rise 0.6s var(--ab-ease) 0.19s forwards;
}

.aberions-services__item-title {
	margin: 0 0 0.65rem;
	font-family: "Fraunces", serif;
	font-size: 1.1875rem;
	font-weight: 500;
	line-height: 1.3;
	color: var(--ab-navy);
}

.aberions-services__item-text {
	margin: 0;
	font-size: 1rem;
	line-height: 1.65;
	color: rgba(16, 24, 32, 0.84);
}

/* ——— Approach ——— */
.aberions-approach {
	padding-block: var(--ab-section-y);
	background: var(--ab-navy);
	color: var(--ab-white);
}

.aberions-approach__wrap {
	width: 100%;
	max-width: var(--ab-shell);
	margin-inline: auto;
	padding-inline: var(--ab-gutter);
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.75rem;
	align-items: stretch;
}

@media (min-width: 900px) {
	.aberions-approach__wrap {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		gap: 2.5rem;
		align-items: center;
	}
}

.aberions-approach__media {
	margin: 0;
	background: var(--ab-graphite);
	border: 1px solid rgba(247, 248, 249, 0.08);
	overflow: hidden;
}

.aberions-approach__media img {
	width: 100%;
	aspect-ratio: 16 / 11;
	object-fit: cover;
	filter: saturate(0.85);
}

@media (min-width: 900px) {
	.aberions-approach__media img {
		aspect-ratio: 5 / 4;
		min-height: 22rem;
	}
}

.aberions-approach__copy {
	padding: 0;
}

.aberions-approach__eyebrow {
	margin: 0 0 0.5rem;
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--ab-brass);
}

.aberions-approach__heading {
	margin: 0 0 1rem;
	font-family: "Fraunces", serif;
	font-size: clamp(1.625rem, 2.4vw, 2.125rem);
	font-weight: 500;
	line-height: 1.25;
	color: var(--ab-white);
}

.aberions-approach__text {
	margin: 0 0 1.5rem;
	font-size: 1.0625rem;
	line-height: 1.65;
	color: rgba(247, 248, 249, 0.8);
}

.aberions-approach__list {
	margin: 0;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 0.75rem;
	counter-reset: ab-step;
}

.aberions-approach__list li {
	position: relative;
	padding-left: 2rem;
	font-size: 1rem;
	line-height: 1.5;
	color: rgba(247, 248, 249, 0.9);
	counter-increment: ab-step;
}

.aberions-approach__list li::before {
	content: counter(ab-step, decimal-leading-zero);
	position: absolute;
	left: 0;
	top: 0.15rem;
	font-family: "Fraunces", serif;
	font-size: 0.8125rem;
	color: var(--ab-brass);
}

/* ——— CTA ——— */
.aberions-cta {
	padding-block: var(--ab-section-y);
	background: var(--ab-graphite);
	color: var(--ab-white);
}

.aberions-cta__wrap {
	width: 100%;
	max-width: var(--ab-shell);
	margin-inline: auto;
	padding-inline: var(--ab-gutter);
	display: grid;
	grid-template-columns: 1fr;
	gap: 2rem;
}

@media (min-width: 860px) {
	.aberions-cta__wrap {
		grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
		gap: 3rem;
		align-items: start;
	}
}

.aberions-cta__title {
	margin: 0 0 0.85rem;
	font-family: "Fraunces", serif;
	font-size: clamp(1.625rem, 2.4vw, 2.125rem);
	font-weight: 500;
	line-height: 1.25;
	color: var(--ab-white);
}

.aberions-cta__text {
	margin: 0;
	font-size: 1.0625rem;
	line-height: 1.65;
	color: rgba(247, 248, 249, 0.78);
}

.aberions-form {
	display: grid;
	gap: 1rem;
}

.aberions-form__row {
	display: grid;
	gap: 1rem;
}

@media (min-width: 560px) {
	.aberions-form__row {
		grid-template-columns: 1fr 1fr;
	}
}

.aberions-form label {
	display: grid;
	gap: 0.4rem;
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: rgba(247, 248, 249, 0.55);
}

.aberions-form input,
.aberions-form select,
.aberions-form textarea {
	width: 100%;
	min-height: 48px;
	padding: 0.7rem 0.85rem;
	border: 1px solid rgba(247, 248, 249, 0.2);
	border-radius: var(--ab-radius);
	background: rgba(7, 18, 31, 0.4);
	color: var(--ab-white);
	font-family: inherit;
	font-size: 1rem;
}

.aberions-form textarea {
	min-height: 7rem;
	resize: vertical;
}

.aberions-form input:focus,
.aberions-form select:focus,
.aberions-form textarea:focus {
	outline: 1px solid var(--ab-brass);
	outline-offset: 1px;
}

.aberions-form__submit {
	justify-self: start;
	margin-top: 0.25rem;
}

.aberions-form__notice {
	margin: 0 0 0.75rem;
	padding: 0.75rem 0.9rem;
	border-left: 2px solid var(--ab-brass);
	background: rgba(164, 134, 78, 0.12);
	font-size: 0.95rem;
}

.aberions-form__notice--error {
	border-left-color: #b45a5a;
	background: rgba(180, 90, 90, 0.12);
}

/* ——— Footer ——— */
.aberions-footer {
	padding-block: 2.5rem 2rem;
	background: #050d16;
	color: rgba(247, 248, 249, 0.7);
	font-size: 0.9375rem;
}

.aberions-footer__wrap {
	width: 100%;
	max-width: var(--ab-shell);
	margin-inline: auto;
	padding-inline: var(--ab-gutter);
	display: grid;
	gap: 1.25rem;
}

.aberions-footer__brand {
	font-family: "Fraunces", serif;
	font-size: 1.125rem;
	letter-spacing: 0.02em;
	color: var(--ab-white);
}

.aberions-footer__nav {
	display: flex;
	flex-wrap: wrap;
	gap: 0.65rem 1.35rem;
	padding: 0;
	margin: 0;
	list-style: none;
}

.aberions-footer__nav a {
	color: rgba(247, 248, 249, 0.75);
	text-decoration: none;
	border-bottom: 1px solid transparent;
}

.aberions-footer__nav a:hover {
	color: var(--ab-brass-light);
	border-bottom-color: var(--ab-brass-light);
}

.aberions-footer__disclaimer {
	margin: 0;
	max-width: none;
	font-size: 0.8125rem;
	line-height: 1.55;
	color: var(--ab-mist);
}

.aberions-footer__legal {
	margin: 0;
	max-width: none;
	font-size: 0.8125rem;
	line-height: 1.6;
	color: var(--ab-mist);
}

.aberions-footer__legal a {
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

.aberions-footer__legal a:hover {
	color: var(--ab-brass);
}

.aberions-footer__copy {
	margin: 0;
	padding-top: 1.25rem;
	border-top: 1px solid rgba(255, 255, 255, 0.08);
	font-size: 0.8125rem;
	color: var(--ab-mist);
}

/* ——— Language dropdown ——— */
.aberions-lang-dd {
	position: relative;
	z-index: 5;
}

.aberions-lang-dd__btn {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	min-height: 40px;
	padding: 0.4rem 0.7rem 0.4rem 0.65rem;
	border: 1px solid rgba(16, 24, 32, 0.08);
	border-radius: var(--ab-radius);
	background: #f3efe6;
	color: var(--ab-navy);
	font-family: inherit;
	font-size: 0.8125rem;
	font-weight: 600;
	cursor: pointer;
	box-shadow: 0 1px 0 rgba(0, 0, 0, 0.12);
}

.aberions-lang-dd__btn:hover {
	background: #faf7f0;
}

.aberions-lang-dd__code {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 1.75rem;
	padding: 0.15rem 0.3rem;
	border-radius: 1px;
	background: var(--ab-navy);
	color: #f3efe6;
	font-size: 0.6875rem;
	letter-spacing: 0.04em;
}

.aberions-lang-dd__name {
	max-width: 6.5rem;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

/* Collapse the trigger to the code chip on narrow screens, but keep the
   language names inside the open menu, where they are the only label. */
@media (max-width: 420px) {
	.aberions-lang-dd__btn .aberions-lang-dd__name {
		display: none;
	}
}

.aberions-lang-dd__caret {
	width: 0;
	height: 0;
	margin-left: 0.1rem;
	border-left: 4px solid transparent;
	border-right: 4px solid transparent;
	border-top: 5px solid var(--ab-navy);
	opacity: 0.7;
}

.aberions-lang-dd.is-open .aberions-lang-dd__caret {
	transform: rotate(180deg);
}

.aberions-lang-dd__menu {
	position: absolute;
	top: calc(100% + 0.35rem);
	right: 0;
	min-width: 11.5rem;
	margin: 0;
	padding: 0.35rem;
	list-style: none;
	border: 1px solid rgba(16, 24, 32, 0.08);
	border-radius: var(--ab-radius);
	background: #f3efe6;
	box-shadow: 0 10px 28px rgba(0, 0, 0, 0.22);
}

.aberions-lang-dd__menu a {
	display: flex;
	align-items: center;
	gap: 0.55rem;
	padding: 0.55rem 0.5rem;
	border-radius: 1px;
	color: var(--ab-navy);
	text-decoration: none;
	font-size: 0.875rem;
	font-weight: 500;
}

.aberions-lang-dd__menu a:hover,
.aberions-lang-dd__menu a.is-active {
	background: rgba(7, 18, 31, 0.06);
}

.aberions-lang-dd__menu .aberions-lang-dd__code {
	background: rgba(7, 18, 31, 0.88);
}

.aberions-lang-dd--dark .aberions-lang-dd__btn {
	background: #f3efe6;
	color: var(--ab-navy);
}

/* ——— Global site header (interior pages) ——— */
.aberions-site-header {
	background: var(--ab-navy);
	color: var(--ab-white);
	border-bottom: 1px solid rgba(247, 248, 249, 0.1);
}

.aberions-site-header__bar {
	width: 100%;
	max-width: var(--ab-shell);
	margin-inline: auto;
	padding: 1.1rem var(--ab-gutter);
	display: flex;
	align-items: center;
	gap: 1.25rem;
}

.aberions-site-header__brand {
	font-family: "Fraunces", "Times New Roman", serif;
	font-size: 1.375rem;
	font-weight: 500;
	letter-spacing: 0.02em;
	color: var(--ab-white);
	text-decoration: none;
	flex: 0 0 auto;
}

.aberions-site-header__brand:hover {
	color: var(--ab-brass-light);
}

.aberions-site-header__nav {
	display: none;
	flex: 1 1 auto;
	justify-content: center;
	min-width: 0;
}

@media (min-width: 960px) {
	.aberions-site-header__nav {
		display: flex;
	}
}

.aberions-site-header__tools {
	display: flex;
	align-items: center;
	gap: 0.65rem;
	margin-left: auto;
	flex: 0 0 auto;
}

.aberions-site-header .aberions-nav__link {
	color: rgba(247, 248, 249, 0.82);
}

/* ——— Policy / interior page layout ——— */
.aberions-page {
	background:
		linear-gradient(180deg, #e4e7eb 0%, var(--ab-paper) 12rem);
	padding-block: clamp(2.5rem, 5vw, 4rem) 0;
	min-height: 50vh;
}

/* Prose pages are documents, not landing sections. The shell is the reading
   column itself rather than the full 68rem site shell, so title and body share
   one centred measure instead of the body hugging the left edge with dead space
   beside it. */
.aberions-page__shell {
	width: 100%;
	max-width: calc(var(--ab-measure) + var(--ab-gutter) * 2);
	margin-inline: auto;
	padding-inline: var(--ab-gutter);
	padding-bottom: clamp(2.5rem, 5vw, 4rem);
}

.aberions-page__title,
.aberions-page .wp-block-post-title {
	margin: 0 0 1.75rem;
	max-width: none;
	font-family: "Fraunces", "Times New Roman", serif;
	font-size: clamp(1.875rem, 3vw, 2.5rem);
	font-weight: 500;
	line-height: 1.2;
	color: var(--ab-navy);
	padding-bottom: 1.25rem;
	border-bottom: 1px solid var(--ab-line);
}

/* `!important` here beats the landing-page rule at the top of this file
   (`.wp-block-post-content { padding: 0 !important; margin: 0 !important;
   max-width: none !important; }`, used so full-bleed custom blocks can run
   edge to edge). That rule's own `!important` forces every override to match
   it, and `margin: 0` collapses the `margin-inline: auto` this selector needs
   to centre prose pages inside `.aberions-page__shell`. Without `!important`
   here, the centring silently loses to that earlier, unrelated rule. */
.aberions-page__content,
.aberions-page .aberions-page__content,
.aberions-page .wp-block-post-content {
	max-width: none !important;
	width: 100% !important;
	margin-inline: auto !important;
	padding: 0 !important;
}

.aberions-page__content > *:first-child,
.aberions-page .wp-block-post-content > *:first-child {
	margin-top: 0;
}

.aberions-page .wp-block-heading {
	font-family: "Fraunces", serif;
	color: var(--ab-navy);
	line-height: 1.25;
	margin: 2rem 0 0.75rem;
	font-size: 1.35rem;
	font-weight: 500;
	max-width: none;
	padding: 0;
}

.aberions-page .wp-block-heading:first-child {
	display: none; /* title comes from template post-title */
}

/* Long legal copy earns a larger body size than the landing sections: it keeps
   the line count per paragraph down and the measure inside the legible range. */
.aberions-page .wp-block-paragraph {
	margin: 0 0 1.25rem;
	padding: 0;
	max-width: none;
	font-size: 1.125rem;
	line-height: 1.7;
	color: rgba(16, 24, 32, 0.9);
}

.aberions-page .wp-block-list {
	margin: 0 0 1.25rem;
	padding-left: 1.25rem;
	font-size: 1.125rem;
	line-height: 1.7;
}

/* Prose links carry a permanent underline as well as colour, so the affordance
   does not depend on separating brass from ink. Underline sits at partial
   opacity and resolves to full weight on hover. */
.aberions-page__content a,
.aberions-page .wp-block-post-content a {
	color: var(--ab-brass-ink);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-decoration-color: rgba(125, 100, 54, 0.45);
	text-decoration-color: color-mix(in srgb, var(--ab-brass-ink) 45%, transparent);
	text-underline-offset: 0.18em;
}

.aberions-page__content a:hover,
.aberions-page .wp-block-post-content a:hover {
	color: var(--ab-navy);
	text-decoration-color: currentColor;
}

.aberions-page__content a:focus-visible,
.aberions-page .wp-block-post-content a:focus-visible {
	outline: 2px solid var(--ab-brass-ink);
	outline-offset: 2px;
	border-radius: 1px;
}

.aberions-page .aberions-footer {
	margin-top: 0;
}

/* Headings fill their parent — no artificial early wraps */
.aberions-split__heading,
.aberions-services__heading,
.aberions-audience__heading,
.aberions-approach__heading,
.aberions-principles__heading,
.aberions-faq__heading,
.aberions-cta__title,
.aberions-services__item-title,
.aberions-audience__title,
.aberions-split__aside-title,
.aberions-faq__question span:first-child {
	max-width: none;
	overflow-wrap: normal;
	word-break: normal;
	hyphens: none;
	text-wrap: wrap;
}

/* Shared kicker */
.aberions-kicker {
	margin: 0 0 0.5rem;
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--ab-brass-deep);
}

.aberions-kicker--on-dark {
	color: var(--ab-brass);
}

/* ——— Split / about ——— */
.aberions-split {
	padding-block: var(--ab-section-y);
	background: #e7eaee;
	color: var(--ab-ink);
}

.aberions-split--dark {
	background: var(--ab-graphite);
	color: var(--ab-white);
}

.aberions-split__wrap {
	width: 100%;
	max-width: var(--ab-shell);
	margin-inline: auto;
	padding-inline: var(--ab-gutter);
	display: grid;
	gap: 2rem;
}

@media (min-width: 860px) {
	.aberions-split__wrap {
		grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
		gap: 3rem;
		align-items: start;
	}
}

.aberions-split__heading {
	margin: 0 0 1rem;
	font-family: "Fraunces", serif;
	font-size: clamp(1.625rem, 2.4vw, 2.125rem);
	font-weight: 500;
	line-height: 1.25;
	color: var(--ab-navy);
}

.aberions-split--dark .aberions-split__heading {
	color: var(--ab-white);
}

.aberions-split__text {
	margin: 0;
	font-size: 1.0625rem;
	line-height: 1.7;
	color: rgba(16, 24, 32, 0.88);
}

.aberions-split--dark .aberions-split__text {
	color: rgba(247, 248, 249, 0.8);
}

.aberions-split__figure {
	margin: 1.75rem 0 0;
	border: 1px solid var(--ab-line);
	background: var(--ab-graphite);
	overflow: hidden;
}

.aberions-split--dark .aberions-split__figure {
	border-color: rgba(247, 248, 249, 0.12);
}

.aberions-split__figure img {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	filter: saturate(0.88);
}

.aberions-split__aside {
	padding: 1.5rem 1.35rem;
	border: 1px solid var(--ab-line);
	background: rgba(255, 255, 255, 0.55);
}

.aberions-split--dark .aberions-split__aside {
	border-color: rgba(247, 248, 249, 0.12);
	background: rgba(7, 18, 31, 0.35);
}

.aberions-split__aside-title {
	margin: 0 0 0.65rem;
	font-family: "Fraunces", serif;
	font-size: 1.2rem;
	font-weight: 500;
	color: var(--ab-navy);
}

.aberions-split--dark .aberions-split__aside-title {
	color: var(--ab-white);
}

.aberions-split__aside-text {
	margin: 0;
	font-size: 1rem;
	line-height: 1.65;
	color: rgba(16, 24, 32, 0.84);
}

.aberions-split--dark .aberions-split__aside-text {
	color: rgba(247, 248, 249, 0.78);
}

/* ——— Audience ——— */
.aberions-audience {
	padding-block: var(--ab-section-y);
	background: var(--ab-paper);
	border-top: 1px solid var(--ab-line);
}

.aberions-audience__wrap {
	width: 100%;
	max-width: var(--ab-shell);
	margin-inline: auto;
	padding-inline: var(--ab-gutter);
}

.aberions-audience__intro {
	margin-bottom: 2rem;
}

.aberions-audience__heading {
	margin: 0;
	font-family: "Fraunces", serif;
	font-size: clamp(1.625rem, 2.4vw, 2.125rem);
	font-weight: 500;
	line-height: 1.25;
	color: var(--ab-navy);
}

.aberions-audience__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.25rem;
}

@media (min-width: 800px) {
	.aberions-audience__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 1.5rem;
	}
}

.aberions-audience__card {
	padding: 1.35rem 1.25rem;
	border-top: 2px solid var(--ab-navy);
	background: rgba(255, 255, 255, 0.45);
}

.aberions-audience__index {
	display: block;
	margin-bottom: 0.75rem;
	font-family: "Fraunces", serif;
	font-size: 0.85rem;
	color: var(--ab-brass-deep);
}

.aberions-audience__title {
	margin: 0 0 0.55rem;
	font-family: "Fraunces", serif;
	font-size: 1.2rem;
	font-weight: 500;
	color: var(--ab-navy);
}

.aberions-audience__text {
	margin: 0;
	font-size: 0.98rem;
	line-height: 1.65;
	color: rgba(16, 24, 32, 0.84);
}

/* ——— Principles ——— */
.aberions-principles {
	padding-block: var(--ab-section-y);
	background: var(--ab-navy);
	color: var(--ab-white);
}

.aberions-principles__wrap {
	width: 100%;
	max-width: var(--ab-shell);
	margin-inline: auto;
	padding-inline: var(--ab-gutter);
}

.aberions-principles__intro {
	margin-bottom: 2rem;
}

.aberions-principles__heading {
	margin: 0;
	font-family: "Fraunces", serif;
	font-size: clamp(1.625rem, 2.4vw, 2.125rem);
	font-weight: 500;
	line-height: 1.25;
	color: var(--ab-white);
}

.aberions-principles__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.5rem;
}

@media (min-width: 800px) {
	.aberions-principles__grid {
		grid-template-columns: 1fr 1fr;
		gap: 2rem;
	}
}

.aberions-principles__col {
	padding: 1.5rem 1.35rem;
	border: 1px solid rgba(247, 248, 249, 0.12);
	background: rgba(7, 18, 31, 0.35);
}

.aberions-principles__col-title {
	margin: 0 0 1rem;
	font-family: "Fraunces", serif;
	font-size: 1.2rem;
	font-weight: 500;
	color: var(--ab-white);
}

.aberions-principles__list {
	margin: 0;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 0.75rem;
}

.aberions-principles__list li {
	position: relative;
	padding-left: 1.35rem;
	font-size: 0.98rem;
	line-height: 1.55;
	color: rgba(247, 248, 249, 0.84);
}

.aberions-principles__list--do li::before {
	content: "+";
	position: absolute;
	left: 0;
	top: 0;
	color: var(--ab-brass);
	font-weight: 600;
}

.aberions-principles__list--dont li::before {
	content: "–";
	position: absolute;
	left: 0;
	top: 0;
	color: rgba(212, 181, 122, 0.75);
	font-weight: 600;
}

/* ——— FAQ ——— */
.aberions-faq {
	padding-block: var(--ab-section-y);
	background: var(--ab-paper);
	border-top: 1px solid var(--ab-line);
}

.aberions-faq__wrap {
	width: 100%;
	max-width: var(--ab-shell);
	margin-inline: auto;
	padding-inline: var(--ab-gutter);
	display: grid;
	gap: 2rem;
}

@media (min-width: 900px) {
	.aberions-faq__wrap {
		grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
		gap: 3rem;
		align-items: start;
	}
}

.aberions-faq__heading {
	margin: 0 0 0.75rem;
	font-family: "Fraunces", serif;
	font-size: clamp(1.625rem, 2.4vw, 2.125rem);
	font-weight: 500;
	line-height: 1.25;
	color: var(--ab-navy);
}

.aberions-faq__lead {
	margin: 0;
	font-size: 1.02rem;
	line-height: 1.65;
	color: rgba(16, 24, 32, 0.82);
}

.aberions-faq__list {
	border-top: 1px solid var(--ab-line);
}

.aberions-faq__item {
	border-bottom: 1px solid var(--ab-line);
}

.aberions-faq__question {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1.1rem 0;
	border: 0;
	background: transparent;
	text-align: left;
	font-family: "Fraunces", serif;
	font-size: 1.05rem;
	font-weight: 500;
	line-height: 1.35;
	color: var(--ab-navy);
	cursor: pointer;
}

.aberions-faq__icon {
	flex: 0 0 auto;
	width: 0.65rem;
	height: 0.65rem;
	border-right: 1.5px solid var(--ab-navy);
	border-bottom: 1.5px solid var(--ab-navy);
	transform: rotate(45deg);
	transition: transform 0.2s var(--ab-ease);
	opacity: 0.65;
}

.aberions-faq__question[aria-expanded="true"] .aberions-faq__icon {
	transform: rotate(225deg);
}

.aberions-faq__answer {
	padding: 0 0 1.15rem;
}

.aberions-faq__answer p {
	margin: 0;
	max-width: 40rem;
	font-size: 1rem;
	line-height: 1.65;
	color: rgba(16, 24, 32, 0.84);
}

@keyframes aberions-rise {
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@keyframes aberions-fade {
	to {
		opacity: 1;
	}
}

@media (prefers-reduced-motion: reduce) {
	.aberions-hero__inner,
	.aberions-hero__rule,
	.aberions-services__intro,
	.aberions-services__item {
		animation: none !important;
		opacity: 1 !important;
		transform: none !important;
	}
}

/* ——— Mobile ——— */
@media (max-width: 640px) {
	.aberions-hero {
		min-height: auto;
	}

	.aberions-hero__main {
		padding-block: 2rem 1.75rem;
	}

	.aberions-hero__veil {
		background: linear-gradient(
			180deg,
			rgba(7, 18, 31, 0.82) 0%,
			rgba(7, 18, 31, 0.9) 55%,
			rgba(7, 18, 31, 0.95) 100%
		);
	}

	.aberions-hero__media img {
		object-position: 72% center;
	}

	.aberions-hero__actions .aberions-btn {
		width: 100%;
	}

	.aberions-services__item {
		padding: 1.25rem 0;
	}

	.aberions-services__item:first-child {
		padding-top: 0;
		border-top: 0;
	}
}

/* ——— Cookie consent ——— */
.aberions-consent {
	position: fixed;
	inset-inline: 0;
	bottom: 0;
	z-index: 60;
	background: var(--ab-navy);
	border-top: 1px solid var(--ab-brass);
	color: var(--ab-white);
	padding-bottom: env(safe-area-inset-bottom, 0);
}

.aberions-consent[hidden] {
	display: none;
}

.aberions-consent:focus {
	outline: none;
}

.aberions-consent__wrap {
	width: 100%;
	max-width: var(--ab-shell);
	margin-inline: auto;
	padding: 1.5rem var(--ab-gutter);
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.25rem;
}

.aberions-consent__title {
	margin: 0 0 0.5rem;
	font-family: "Fraunces", serif;
	font-size: 1.1875rem;
	font-weight: 500;
	line-height: 1.3;
	color: var(--ab-white);
}

.aberions-consent__body {
	margin: 0;
	max-width: 62ch;
	font-size: 0.9375rem;
	line-height: 1.6;
	color: rgba(247, 248, 249, 0.82);
}

.aberions-consent__meta {
	margin: 0.625rem 0 0;
	font-size: 0.875rem;
}

.aberions-consent__policy {
	color: var(--ab-brass);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.aberions-consent__policy:hover {
	color: var(--ab-brass-light);
}

.aberions-consent__panel {
	border-top: 1px solid rgba(247, 248, 249, 0.14);
	padding-top: 1.25rem;
}

.aberions-consent__panel[hidden] {
	display: none;
}

.aberions-consent__set {
	margin: 0;
	padding: 0;
	border: 0;
	display: grid;
	grid-template-columns: 1fr;
	gap: 1rem;
}

.aberions-consent__legend {
	padding: 0;
	margin-bottom: 0.25rem;
	font-size: 0.6875rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--ab-brass);
}

.aberions-consent__cat-head {
	display: flex;
	align-items: center;
	gap: 0.625rem;
	font-size: 0.9375rem;
	font-weight: 600;
	color: var(--ab-white);
}

label.aberions-consent__cat-head {
	cursor: pointer;
}

.aberions-consent__toggle {
	width: 1.125rem;
	height: 1.125rem;
	margin: 0;
	accent-color: var(--ab-brass);
	flex: none;
	cursor: pointer;
}

.aberions-consent__locked {
	font-size: 0.6875rem;
	font-weight: 400;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--ab-mist);
	border: 1px solid rgba(247, 248, 249, 0.2);
	border-radius: var(--ab-radius);
	padding: 0.125rem 0.4375rem;
}

.aberions-consent__cat-desc {
	margin: 0.3125rem 0 0;
	max-width: 62ch;
	font-size: 0.875rem;
	line-height: 1.55;
	color: rgba(247, 248, 249, 0.72);
}

.aberions-consent__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.625rem 1rem;
}

/* Accept and reject are deliberately identical: no visual nudge either way. */
.aberions-consent__btn {
	flex: 1 1 10rem;
	min-height: 2.75rem;
	padding: 0.625rem 1.25rem;
	background: transparent;
	border: 1px solid rgba(247, 248, 249, 0.45);
	border-radius: var(--ab-radius);
	color: var(--ab-white);
	font-family: inherit;
	font-size: 0.9375rem;
	font-weight: 600;
	letter-spacing: 0.01em;
	cursor: pointer;
	transition: background-color 0.15s var(--ab-ease), color 0.15s var(--ab-ease), border-color 0.15s var(--ab-ease);
}

.aberions-consent__btn:hover {
	background: var(--ab-white);
	border-color: var(--ab-white);
	color: var(--ab-navy);
}

.aberions-consent__btn[hidden] {
	display: none;
}

.aberions-consent__more {
	flex: 0 0 auto;
	min-height: 2.75rem;
	padding: 0.625rem 0;
	background: none;
	border: 0;
	color: var(--ab-brass);
	font-family: inherit;
	font-size: 0.9375rem;
	text-decoration: underline;
	text-underline-offset: 3px;
	cursor: pointer;
}

.aberions-consent__more:hover {
	color: var(--ab-brass-light);
}

.aberions-consent :is(button, a, input):focus-visible {
	outline: 2px solid var(--ab-brass);
	outline-offset: 2px;
}

@media (min-width: 860px) {
	.aberions-consent__wrap {
		grid-template-columns: minmax(0, 1fr) auto;
		align-items: start;
		column-gap: 2.5rem;
	}

	.aberions-consent__panel {
		grid-column: 1 / -1;
		order: 3;
	}

	.aberions-consent__actions {
		flex-direction: column;
		align-items: stretch;
		min-width: 13rem;
	}

	.aberions-consent__btn {
		flex: none;
	}

	.aberions-consent__more {
		text-align: center;
	}
}

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

.aberions-footer__settings {
	background: none;
	border: 0;
	padding: 0;
	font: inherit;
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 3px;
	cursor: pointer;
}
