/**
 * AHBenayan base styles and editorial design system.
 *
 * Tokens come from theme.json as --wp--preset--* and --wp--custom--*.
 * This file adds only what theme.json cannot express.
 *
 * RTL/LTR: logical properties only (margin-inline, padding-inline, inset-inline,
 * border-inline, text-align: start/end). Never hardcode left/right.
 *
 * Design rules, per Brand Guide A:
 *  - 80% base colour / 20% one accent per section
 *  - gold is an accent: rules, marks, numbers — never small body text
 *  - hairline rules, almost no shadows, very restrained radius
 *  - generous negative space; composition carries the boldness
 */

/* ===========================================================
   1. Base
   =========================================================== */

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

[dir="rtl"] body { line-height: 1.85; }
[dir="ltr"] body { line-height: 1.7; }

img,
video {
	max-inline-size: 100%;
	block-size: auto;
}

::selection {
	background-color: var(--wp--preset--color--deep-green);
	color: var(--wp--preset--color--paper);
}

/* ===========================================================
   2. Shared furniture
   =========================================================== */

.ahb-shell {
	max-inline-size: var(--wp--style--global--wide-size, 74rem);
	margin-inline: auto;
	padding-inline: var(--wp--preset--spacing--40);
}

.layout {
	max-inline-size: var(--wp--style--global--content-size, 46rem);
	margin-inline: auto;
	padding-block: var(--wp--preset--spacing--70);
	padding-inline: var(--wp--preset--spacing--40);
}

.entry-content > * + * {
	margin-block-start: var(--wp--preset--spacing--40);
}

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

.button,
.wp-block-button__link {
	display: inline-block;
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
	line-height: 1.2;
	padding-block: 0.85rem;
	padding-inline: 1.6rem;
	border: var(--wp--custom--rule--hairline) solid var(--wp--preset--color--deep-green);
	border-radius: var(--wp--custom--radius--sm);
	background-color: var(--wp--preset--color--deep-green);
	color: var(--wp--preset--color--paper);
	text-decoration: none;
	transition: background-color 0.18s ease, color 0.18s ease;
}

.button:hover,
.wp-block-button__link:hover {
	background-color: var(--wp--preset--color--green);
	border-color: var(--wp--preset--color--green);
	color: var(--wp--preset--color--white);
}

.button--ghost,
.is-style-outline .wp-block-button__link {
	background-color: transparent;
	color: var(--wp--preset--color--deep-green);
}

.button--ghost:hover {
	background-color: var(--wp--preset--color--deep-green);
	color: var(--wp--preset--color--paper);
}

.button--quiet {
	padding-inline: 0;
	border: 0;
	background: none;
	color: var(--wp--preset--color--deep-green);
	text-decoration: underline;
	text-underline-offset: 0.4em;
	text-decoration-thickness: 1px;
}

.button--quiet:hover {
	background: none;
	color: var(--wp--preset--color--green);
}

/* Accessibility ---------------------------------------------- */

:where(a, button, input, select, textarea, summary):focus-visible {
	outline: 2px solid var(--wp--preset--color--gold);
	outline-offset: 3px;
}

.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

.skip-link:focus {
	position: fixed !important;
	inset-block-start: var(--wp--preset--spacing--30);
	inset-inline-start: var(--wp--preset--spacing--30);
	z-index: 999;
	width: auto;
	height: auto;
	padding: var(--wp--preset--spacing--30);
	clip-path: none;
	background-color: var(--wp--preset--color--paper);
	color: var(--wp--preset--color--deep-green);
}

/* ===========================================================
   3. Header
   =========================================================== */

.site-header {
	position: relative;
	border-block-end: var(--wp--custom--rule--hairline) solid var(--wp--preset--color--sand);
	background-color: var(--wp--preset--color--paper);
}

.site-header__inner {
	display: flex;
	align-items: center;
	gap: var(--wp--preset--spacing--40);
	max-inline-size: var(--wp--style--global--wide-size, 74rem);
	margin-inline: auto;
	padding-block: var(--wp--preset--spacing--30);
	padding-inline: var(--wp--preset--spacing--40);
}

.brand {
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
	text-decoration: none;
}

.brand__signature {
	inline-size: auto;
	block-size: clamp(2rem, 4vw, 2.6rem);
}

.brand__descriptor {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 0.6875rem;
	letter-spacing: 0.12em;
	color: var(--wp--preset--color--muted);
}

/* Navigation ------------------------------------------------- */

.nav {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--wp--preset--spacing--40);
	margin: 0;
	padding: 0;
	list-style: none;
}

.nav a {
	position: relative;
	display: inline-block;
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
	color: var(--wp--preset--color--charcoal);
	text-decoration: none;
	padding-block: 0.35rem;
}

.nav a:hover {
	color: var(--wp--preset--color--green);
}

/* Current page: a gold hairline, never a filled pill. */
.nav .current-menu-item > a::after,
.nav .current_page_item > a::after {
	content: "";
	position: absolute;
	inset-inline: 0;
	inset-block-end: 0;
	block-size: var(--wp--custom--rule--accent);
	background-color: var(--wp--preset--color--gold);
}

.site-header__panel {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--wp--preset--spacing--50);
	margin-inline-start: auto;
}

.site-header__utility {
	display: flex;
	align-items: center;
	gap: var(--wp--preset--spacing--30);
}

.site-header__utility .button {
	padding-block: 0.6rem;
	padding-inline: 1.1rem;
}

.lang-switch {
	display: inline-flex;
	align-items: center;
	gap: 0.3rem;
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 700;
	color: var(--wp--preset--color--muted);
	cursor: default;
}

.lang-switch__current {
	color: var(--wp--preset--color--deep-green);
}

.cart-indicator {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 700;
	color: var(--wp--preset--color--deep-green);
	text-decoration: none;
}

.cart-indicator__count {
	display: inline-grid;
	place-items: center;
	min-inline-size: 1.4rem;
	block-size: 1.4rem;
	border-radius: var(--wp--custom--radius--pill);
	background-color: var(--wp--preset--color--gold);
	color: var(--wp--preset--color--charcoal);
}

/* Mobile toggle ---------------------------------------------- */

.nav-toggle {
	display: none;
	align-items: center;
	gap: 0.5rem;
	margin-inline-start: auto;
	padding: 0.5rem 0.75rem;
	border: var(--wp--custom--rule--hairline) solid var(--wp--preset--color--sand);
	border-radius: var(--wp--custom--radius--sm);
	background: transparent;
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 700;
	color: var(--wp--preset--color--charcoal);
	cursor: pointer;
}

.nav-toggle__bars {
	display: grid;
	gap: 3px;
}

.nav-toggle__bars span {
	display: block;
	inline-size: 18px;
	block-size: 2px;
	background-color: var(--wp--preset--color--deep-green);
}

@media (max-width: 59.999rem) {
	.nav-toggle {
		display: inline-flex;
	}

	/*
	 * The open panel is a fixed drawer, not an expanded block: it must never
	 * add to document height. It sits below the header so the toggle stays
	 * reachable, scrolls internally, and uses the approved paper ground.
	 */
	.has-js-nav .site-header__panel {
		display: none;
		position: fixed;
		inset-block: var(--ahb-header-height, 3.5rem) 0;
		inset-inline: 0;
		z-index: 15;
		flex-direction: column;
		align-items: start;
		gap: var(--wp--preset--spacing--50);
		margin-block-start: 0;
		padding-block: var(--wp--preset--spacing--50);
		padding-inline: var(--wp--preset--spacing--40);
		overflow-y: auto;
		overscroll-behavior: contain;
		background-color: var(--wp--preset--color--paper);
		border-block-start: var(--wp--custom--rule--hairline) solid var(--wp--preset--color--sand);
	}

	.has-js-nav.nav-open .site-header__panel {
		display: flex;
	}

	/* Keep the header above the drawer so the toggle can close it. */
	.site-header {
		position: sticky;
		inset-block-start: 0;
		z-index: 20;
	}

	/* Lock the page behind the drawer instead of letting it scroll away. */
	.nav-open {
		overflow: hidden;
	}

	.site-header__inner {
		flex-wrap: wrap;
	}

	.nav--primary {
		flex-direction: column;
		align-items: start;
		gap: var(--wp--preset--spacing--30);
	}
}

/* ===========================================================
   4. Footer
   =========================================================== */

.site-footer {
	margin-block-start: var(--wp--preset--spacing--80);
	border-block-start: var(--wp--custom--rule--accent) solid var(--wp--preset--color--gold);
	background-color: var(--wp--preset--color--deep-green);
	color: var(--wp--preset--color--paper);
}

.site-footer__inner {
	display: grid;
	gap: var(--wp--preset--spacing--60);
	max-inline-size: var(--wp--style--global--wide-size, 74rem);
	margin-inline: auto;
	padding-block: var(--wp--preset--spacing--70);
	padding-inline: var(--wp--preset--spacing--40);
}

.site-footer__signature {
	inline-size: auto;
	block-size: 3rem;
}

.site-footer__positioning {
	margin-block: var(--wp--preset--spacing--30) 0;
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--large);
	font-weight: 700;
}

.site-footer__descriptor {
	margin-block-start: 0.35rem;
	font-size: var(--wp--preset--font-size--x-small);
	letter-spacing: 0.12em;
	color: var(--wp--preset--color--sand);
}

.site-footer__heading {
	margin-block: 0 var(--wp--preset--spacing--30);
	font-size: var(--wp--preset--font-size--x-small);
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--gold);
}

.site-footer .nav {
	flex-direction: column;
	align-items: start;
	gap: var(--wp--preset--spacing--20);
}

.site-footer .nav a {
	color: var(--wp--preset--color--paper);
	font-weight: 400;
}

.site-footer .nav a:hover {
	color: var(--wp--preset--color--gold);
	text-decoration: underline;
	text-underline-offset: 0.35em;
}

.site-footer__meta {
	margin: 0;
	padding-block-start: var(--wp--preset--spacing--40);
	border-block-start: var(--wp--custom--rule--hairline) solid rgba(247, 241, 230, 0.18);
	font-size: var(--wp--preset--font-size--x-small);
	color: var(--wp--preset--color--sand);
}

/* Legal operator line: present, but visually behind the copyright. */
.site-footer__legal {
	display: block;
	margin-block-start: 0.35rem;
	line-height: 1.6;
	opacity: 0.72;
}

@media (min-width: 48rem) {
	.site-footer__inner {
		grid-template-columns: 1.6fr 1fr 1fr;
		align-items: start;
	}

	.site-footer__meta {
		grid-column: 1 / -1;
	}
}

/* ===========================================================
   5. Homepage sections
   =========================================================== */

.ahb-section {
	padding-block: var(--wp--preset--spacing--80);
}

.ahb-section--tight {
	padding-block: var(--wp--preset--spacing--70);
}

.ahb-section--deep {
	background-color: var(--wp--preset--color--deep-green);
	color: var(--wp--preset--color--paper);
}

.ahb-section--deep :where(h1, h2, h3, h4, h5, h6) {
	color: var(--wp--preset--color--paper);
}

.ahb-section--sand {
	background-color: var(--wp--preset--color--sand);
}

.ahb-section--white {
	background-color: var(--wp--preset--color--white);
}

/* Section label: small caps with a short gold rule. */
.ahb-eyebrow {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	margin-block-end: var(--wp--preset--spacing--30);
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 700;
	letter-spacing: 0.14em;
	color: var(--wp--preset--color--muted);
}

.ahb-eyebrow::before {
	content: "";
	inline-size: 2.5rem;
	block-size: var(--wp--custom--rule--accent);
	background-color: var(--wp--preset--color--gold);
	flex: none;
}

.ahb-section--deep .ahb-eyebrow {
	color: var(--wp--preset--color--sand);
}

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

.ahb-hero {
	padding-block: var(--wp--preset--spacing--70) var(--wp--preset--spacing--80);
	border-block-end: var(--wp--custom--rule--hairline) solid var(--wp--preset--color--sand);
}

.ahb-hero__grid {
	display: grid;
	gap: var(--wp--preset--spacing--60);
	align-items: center;
}

.ahb-hero__name {
	margin-block: 0 var(--wp--preset--spacing--20);
	font-size: var(--wp--preset--font-size--x-large);
	font-weight: 700;
	letter-spacing: 0.01em;
	color: var(--wp--preset--color--charcoal);
}

.ahb-hero__statement {
	margin-block: 0;
	font-size: var(--wp--preset--font-size--display);
	font-weight: 800;
	line-height: 1.12;
	color: var(--wp--preset--color--deep-green);
	text-wrap: balance;
}

.ahb-hero__support {
	max-inline-size: 34rem;
	margin-block-start: var(--wp--preset--spacing--40);
	font-size: var(--wp--preset--font-size--large);
	color: var(--wp--preset--color--charcoal);
}

.ahb-hero__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--wp--preset--spacing--30);
	margin-block-start: var(--wp--preset--spacing--50);
}

.ahb-hero__media {
	position: relative;
}

.ahb-hero__media img {
	inline-size: 100%;
	border-radius: var(--wp--custom--radius--none);
}

/* The gold hairline crosses the image edge — structure, not decoration. */
.ahb-hero__media::after {
	content: "";
	position: absolute;
	inset-block-end: var(--wp--preset--spacing--50);
	inset-inline-start: calc(-1 * var(--wp--preset--spacing--40));
	inline-size: var(--wp--preset--spacing--70);
	block-size: var(--wp--custom--rule--accent);
	background-color: var(--wp--preset--color--gold);
}

@media (min-width: 60rem) {
	.ahb-hero__grid {
		grid-template-columns: 1.05fr 0.95fr;
		gap: var(--wp--preset--spacing--80);
	}
}

/* Credibility ------------------------------------------------ */

.ahb-proof {
	display: grid;
	gap: var(--wp--preset--spacing--50);
	margin-block-start: var(--wp--preset--spacing--50);
}

.ahb-proof__item {
	padding-block-start: var(--wp--preset--spacing--30);
	border-block-start: var(--wp--custom--rule--hairline) solid var(--wp--preset--color--sand);
}

.ahb-proof__item h3 {
	margin-block: 0 0.5rem;
	font-size: var(--wp--preset--font-size--large);
}

.ahb-proof__item p {
	margin: 0;
	color: var(--wp--preset--color--muted);
	font-size: var(--wp--preset--font-size--small);
}

@media (min-width: 48rem) {
	.ahb-proof {
		grid-template-columns: repeat(3, 1fr);
		gap: var(--wp--preset--spacing--60);
	}
}

/* Audience pathways ------------------------------------------ */

.ahb-paths {
	display: grid;
	gap: var(--wp--preset--spacing--50);
}

.ahb-path {
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--30);
	padding: var(--wp--preset--spacing--60);
	border-radius: var(--wp--custom--radius--none);
}

.ahb-path h3 {
	margin: 0;
	font-size: var(--wp--preset--font-size--xx-large);
	line-height: 1.2;
	text-wrap: balance;
}

.ahb-path ul {
	margin: 0;
	padding-inline-start: 1.1rem;
	color: inherit;
}

.ahb-path li + li {
	margin-block-start: 0.35rem;
}

.ahb-path__cta {
	margin-block-start: auto;
	padding-block-start: var(--wp--preset--spacing--30);
}

/* Individuals: paper ground, green accent. */
.ahb-path--individuals {
	background-color: var(--wp--preset--color--white);
	border-block-start: var(--wp--custom--rule--accent) solid var(--wp--preset--color--green);
}

/* Companies: inverted ground, gold accent — a different voice, not a mirror. */
.ahb-path--companies {
	background-color: var(--wp--preset--color--deep-green);
	border-block-start: var(--wp--custom--rule--accent) solid var(--wp--preset--color--gold);
	color: var(--wp--preset--color--paper);
}

.ahb-path--companies h3 {
	color: var(--wp--preset--color--paper);
}

.ahb-path--companies .button {
	background-color: var(--wp--preset--color--paper);
	border-color: var(--wp--preset--color--paper);
	color: var(--wp--preset--color--deep-green);
}

.ahb-path--companies .button:hover {
	background-color: var(--wp--preset--color--gold);
	border-color: var(--wp--preset--color--gold);
	color: var(--wp--preset--color--charcoal);
}

@media (min-width: 60rem) {
	.ahb-paths {
		/* Deliberately unequal: not two matching cards. */
		grid-template-columns: 1.15fr 0.85fr;
		gap: var(--wp--preset--spacing--50);
	}
}

/* Products --------------------------------------------------- */

/*
 * WooCommerce clears floats with `ul.products::before/::after { content: " " }`.
 * Inside a grid or flex container those pseudo-elements become real items — on
 * desktop the ::before took the first cell and pushed the third product onto a
 * second row; on mobile it stole width from the scroller cards.
 */
.ahb-products ul.products::before,
.ahb-products ul.products::after {
	content: none;
}

.ahb-products .woocommerce ul.products,
.ahb-products ul.products {
	display: grid;
	gap: var(--wp--preset--spacing--50);
	margin: var(--wp--preset--spacing--50) 0 0;
	padding: 0;
	list-style: none;
}

@media (min-width: 48rem) {
	.ahb-products ul.products {
		grid-template-columns: repeat(3, 1fr);
	}
}

.ahb-products ul.products li.product {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	margin: 0 !important;
	inline-size: 100% !important;
	padding-block-end: var(--wp--preset--spacing--30);
	border-block-end: var(--wp--custom--rule--hairline) solid var(--wp--preset--color--sand);
	text-align: start;
}

.ahb-products ul.products li.product a img {
	margin-block-end: var(--wp--preset--spacing--30);
	border-radius: var(--wp--custom--radius--none);
}

.ahb-products ul.products li.product .woocommerce-loop-product__title {
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--large) !important;
	font-weight: 700;
	color: var(--wp--preset--color--deep-green);
	padding: 0 !important;
}

.ahb-products ul.products li.product .price {
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--medium);
	color: var(--wp--preset--color--charcoal) !important;
}

.ahb-products ul.products li.product .price del {
	color: var(--wp--preset--color--muted);
	opacity: 1;
}

.ahb-products ul.products li.product .price ins {
	text-decoration: none;
	font-weight: 700;
}

.ahb-products ul.products li.product .button {
	align-self: start;
	margin-block-start: 0.5rem;
}

/* Companies preview ------------------------------------------ */

.ahb-services {
	display: grid;
	gap: 0;
	margin-block-start: var(--wp--preset--spacing--50);
	border-block-start: var(--wp--custom--rule--hairline) solid rgba(247, 241, 230, 0.25);
}

.ahb-service {
	display: grid;
	gap: 0.4rem;
	padding-block: var(--wp--preset--spacing--40);
	border-block-end: var(--wp--custom--rule--hairline) solid rgba(247, 241, 230, 0.25);
}

.ahb-service__index {
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--x-small);
	letter-spacing: 0.12em;
	color: var(--wp--preset--color--gold);
}

.ahb-service h3 {
	margin: 0;
	font-size: var(--wp--preset--font-size--x-large);
}

.ahb-service p {
	margin: 0;
	max-inline-size: 46rem;
	color: var(--wp--preset--color--sand);
}

@media (min-width: 48rem) {
	.ahb-service {
		grid-template-columns: 6rem 1fr;
		gap: var(--wp--preset--spacing--40);
		align-items: baseline;
	}

	.ahb-service__index {
		grid-row: span 2;
	}
}

/* Insights --------------------------------------------------- */

.ahb-insights__grid {
	display: grid;
	gap: var(--wp--preset--spacing--50);
	margin-block-start: var(--wp--preset--spacing--50);
}

@media (min-width: 48rem) {
	.ahb-insights__grid {
		grid-template-columns: 1fr 1fr;
		gap: var(--wp--preset--spacing--60);
	}
}

.ahb-insights .wp-block-latest-posts {
	margin: 0;
	padding: 0;
	list-style: none;
}

.ahb-insights .wp-block-latest-posts li {
	padding-block: var(--wp--preset--spacing--30);
	border-block-end: var(--wp--custom--rule--hairline) solid var(--wp--preset--color--sand);
}

.ahb-insights .wp-block-latest-posts__post-title {
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--large);
	font-weight: 700;
}

.ahb-note {
	padding: var(--wp--preset--spacing--40);
	border: var(--wp--custom--rule--hairline) dashed var(--wp--preset--color--sand);
	color: var(--wp--preset--color--muted);
	font-size: var(--wp--preset--font-size--small);
}

/* About ------------------------------------------------------ */

.ahb-about__grid {
	display: grid;
	gap: var(--wp--preset--spacing--60);
	align-items: center;
}

.ahb-about__media img {
	inline-size: 100%;
}

.ahb-about__grid h2 {
	text-wrap: balance;
}

@media (min-width: 60rem) {
	.ahb-about__grid {
		grid-template-columns: 0.8fr 1.2fr;
	}
}

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

.ahb-cta {
	text-align: start;
}

.ahb-cta__question {
	max-inline-size: 32rem;
	font-size: var(--wp--preset--font-size--xx-large);
	font-weight: 800;
	line-height: 1.2;
	text-wrap: balance;
}

.ahb-cta__options {
	display: grid;
	gap: var(--wp--preset--spacing--40);
	margin-block-start: var(--wp--preset--spacing--50);
}

/*
 * The options wrapper is a core flow-layout group, so WordPress gives every
 * child after the first `margin-block-start: <block-gap>`. Inside a grid that
 * drops the second and third columns by one gap — in RTL the right-hand column
 * is the first child, so it sat higher than the other two. Neutralise the flow
 * margins here instead of nudging pixels.
 */
.ahb-cta__options > * {
	margin-block: 0;
}

.ahb-cta__option {
	display: flex;
	flex-direction: column;
	padding-block-start: var(--wp--preset--spacing--30);
	border-block-start: var(--wp--custom--rule--hairline) solid var(--wp--preset--color--sand);
}

.ahb-cta__option > * {
	margin-block: 0;
}

.ahb-cta__option h3 {
	margin-block-end: 0.35rem;
	font-size: var(--wp--preset--font-size--large);
	/* Formal MSA headings run longer than the dialect drafts; balance the wrap. */
	text-wrap: balance;
}

.ahb-cta__option p {
	color: var(--wp--preset--color--muted);
	font-size: var(--wp--preset--font-size--small);
}

/* The action line closes every column on the same rhythm. */
.ahb-cta__option > p:last-child {
	margin-block-start: auto;
	padding-block-start: var(--wp--preset--spacing--30);
}

@media (min-width: 48rem) {
	.ahb-cta__options {
		grid-template-columns: repeat(3, 1fr);
		grid-template-rows: auto auto auto;
		column-gap: var(--wp--preset--spacing--50);
		row-gap: 0;
	}

	/*
	 * Subgrid ties heading, body and action to shared rows across all three
	 * columns, so the baselines hold even when one heading wraps to two lines.
	 * Without subgrid support the flex fallback above still aligns the rules,
	 * headings and body starts.
	 */
	@supports (grid-template-rows: subgrid) {
		.ahb-cta__option {
			display: grid;
			grid-template-rows: subgrid;
			grid-row: span 3;
			row-gap: 0;
		}

		.ahb-cta__option > p:last-child {
			margin-block-start: 0;
			align-self: start;
		}
	}
}

/* ===========================================================
   6. Motion
   =========================================================== */

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


/* ===========================================================
   7. Mobile compression (below 48rem)

   The desktop composition is approved and unchanged. Everything here is
   scoped to small viewports, where the homepage works as a routing
   experience rather than a stacked copy of the desktop page.
   =========================================================== */

@media (max-width: 47.999rem) {

	/* --- Section rhythm: 48–64px, not desktop whitespace --- */

	.ahb-section,
	.ahb-hero {
		padding-block: clamp(3rem, 8vw, 4rem);
	}

	/* --- Deliberate mobile type scale --- */

	.ahb-hero__name {
		font-size: var(--wp--preset--font-size--medium);
	}

	.ahb-hero__statement {
		font-size: 1.9rem;
		line-height: 1.18;
	}

	.ahb-hero__support {
		margin-block-start: var(--wp--preset--spacing--30);
		font-size: var(--wp--preset--font-size--medium);
		line-height: 1.7;
	}

	.ahb-section h2,
	.ahb-cta__question {
		font-size: 1.5rem;
		line-height: 1.3;
	}

	.ahb-path h3 {
		font-size: 1.3rem;
	}

	.ahb-service h3,
	.ahb-cta__option h3 {
		font-size: var(--wp--preset--font-size--medium);
	}

	/* --- Header: compact, signature present but not dominant --- */

	.site-header__inner {
		padding-block: var(--wp--preset--spacing--20);
	}

	.brand__signature {
		block-size: 1.75rem;
	}

	.brand__descriptor {
		display: none;
	}

	/* --- Hero: shorter editorial crop, tighter stack --- */

	.ahb-hero__grid {
		gap: var(--wp--preset--spacing--40);
	}

	.ahb-hero__media img {
		aspect-ratio: 4 / 3;
		object-fit: cover;
		object-position: 50% 18%;
	}

	.ahb-hero__media::after {
		display: none;
	}

	.ahb-hero__actions {
		margin-block-start: var(--wp--preset--spacing--40);
		gap: var(--wp--preset--spacing--20);
	}

	/*
	 * Credibility is hidden on mobile because its three proof points are
	 * placeholders. Placeholder claims must never reach a visitor. It stays in
	 * the document and in the desktop layout, and returns here as soon as the
	 * points are verified and written.
	 */
	.ahb-credibility {
		display: none;
	}

	/* --- Pathways: shorter cards, three bullets, one CTA --- */

	.ahb-paths {
		gap: var(--wp--preset--spacing--40);
	}

	.ahb-path {
		gap: var(--wp--preset--spacing--20);
		padding: var(--wp--preset--spacing--40);
	}

	.ahb-path li:nth-child(n + 4) {
		display: none;
	}

	.ahb-path__cta {
		padding-block-start: var(--wp--preset--spacing--20);
	}

	/* --- Products: native scroll-snap row, one card prominent --- */

	.ahb-products .woocommerce ul.products,
	.ahb-products ul.products {
		display: flex;
		gap: var(--wp--preset--spacing--40);
		margin-inline: calc(-1 * var(--wp--preset--spacing--40));
		padding-inline: var(--wp--preset--spacing--40);
		padding-block-end: var(--wp--preset--spacing--20);
		overflow-x: auto;
		overscroll-behavior-x: contain;
		scroll-snap-type: x mandatory;
		scroll-padding-inline-start: var(--wp--preset--spacing--40);
	}

	.ahb-products .woocommerce ul.products li.product,
	.ahb-products ul.products li.product {
		/* A sliver of the next card signals that the row scrolls. */
		flex: 0 0 78%;
		inline-size: auto;
		float: none;
		margin-inline: 0;
		scroll-snap-align: start;
		padding-block-end: 0;
		border-block-end: 0;
	}

	.ahb-products .woocommerce ul.products li.product a img,
	.ahb-products ul.products li.product a img {
		block-size: 34vh;
		inline-size: 100%;
		object-fit: contain;
		margin-block-end: var(--wp--preset--spacing--20);
	}

	.ahb-section__more {
		margin-block-start: var(--wp--preset--spacing--30);
	}

	/* --- Companies: compact editorial rows, names only --- */

	.ahb-services {
		margin-block-start: var(--wp--preset--spacing--40);
	}

	.ahb-service {
		grid-template-columns: 2.25rem 1fr;
		gap: var(--wp--preset--spacing--20);
		align-items: baseline;
		padding-block: var(--wp--preset--spacing--30);
	}

	/* Hide the descriptions, keep the editorial index number (also a <p>). */
	.ahb-service p:not(.ahb-service__index) {
		display: none;
	}

	/* --- Insights: hidden only while genuinely empty (see inc/blocks.php) --- */

	.ahb-insights--empty {
		display: none;
	}

	/* --- About: shorter crop, essential copy --- */

	.ahb-about__grid {
		gap: var(--wp--preset--spacing--40);
	}

	.ahb-about__media img {
		aspect-ratio: 3 / 2;
		object-fit: cover;
		object-position: 50% 22%;
	}

	/* --- Final CTA: three compact action rows, not three cards --- */

	.ahb-cta__options {
		gap: 0;
		margin-block-start: var(--wp--preset--spacing--40);
	}

	.ahb-cta__option {
		display: grid;
		grid-template-columns: 1fr auto;
		align-items: center;
		gap: var(--wp--preset--spacing--30);
		padding-block: var(--wp--preset--spacing--30);
	}

	.ahb-cta__option h3 {
		margin-block-end: 0;
	}

	/* Supporting sentence is desktop-only; the row is a decision, not copy. */
	.ahb-cta__option > p:not(:last-child) {
		display: none;
	}

	.ahb-cta__option > p:last-child {
		margin-block-start: 0;
		padding-block-start: 0;
	}

	/* --- Footer: tighter, same content --- */

	.site-footer {
		margin-block-start: var(--wp--preset--spacing--60);
	}

	.site-footer__inner {
		gap: var(--wp--preset--spacing--50);
		padding-block: var(--wp--preset--spacing--60);
	}

	.site-footer__signature {
		block-size: 2.25rem;
	}

	.site-footer__meta {
		padding-block-start: var(--wp--preset--spacing--30);
	}

	/* Action indicator on the compact CTA rows, direction-aware. */
	[dir="rtl"] .ahb-cta__option > p:last-child a::after {
		content: " \2039";
	}

	[dir="ltr"] .ahb-cta__option > p:last-child a::after {
		content: " \203A";
	}
}


/* ===========================================================
   8. Inner pages — About

   Reuses the approved homepage system: same tokens, same rules, same
   restraint. Only the compositions below are new.
   =========================================================== */

.ahb-page-hero {
	padding-block: var(--wp--preset--spacing--70) var(--wp--preset--spacing--80);
	border-block-end: var(--wp--custom--rule--hairline) solid var(--wp--preset--color--sand);
}

.ahb-page-hero__grid {
	display: grid;
	gap: var(--wp--preset--spacing--60);
	align-items: center;
}

.ahb-page-hero__title {
	margin-block: 0;
	font-size: var(--wp--preset--font-size--xx-large);
	font-weight: 800;
	line-height: 1.2;
	color: var(--wp--preset--color--deep-green);
	text-wrap: balance;
}

.ahb-lede {
	max-inline-size: 34rem;
	margin-block-start: var(--wp--preset--spacing--40);
	font-size: var(--wp--preset--font-size--large);
	line-height: 1.75;
}

.ahb-page-hero__media img {
	inline-size: 100%;
}

@media (min-width: 60rem) {
	.ahb-page-hero__grid {
		grid-template-columns: 1.05fr 0.95fr;
		gap: var(--wp--preset--spacing--70);
	}
}

/* Text + image split ----------------------------------------- */

.ahb-split {
	display: grid;
	gap: var(--wp--preset--spacing--50);
	align-items: center;
}

.ahb-split__media img {
	inline-size: 100%;
}

@media (min-width: 60rem) {
	.ahb-split {
		grid-template-columns: 1fr 0.9fr;
		gap: var(--wp--preset--spacing--70);
	}

	.ahb-split--reverse {
		grid-template-columns: 0.9fr 1fr;
	}
}

/* Editorial figure ------------------------------------------- */

/*
 * A heading set as a figure: the verified years-of-experience fact, promoted
 * typographically rather than boxed. Deliberately not a metric card — no
 * border, no tile, no second number anywhere on the page. The <h2> keeps its
 * place in the outline; only its presentation changes.
 */

.ahb-figure {
	display: grid;
	gap: 0.35rem;
	margin-block: 0;
	line-height: 1;
}

.ahb-figure__value {
	font-family: var(--wp--preset--font-family--heading);
	font-size: clamp(3.25rem, 6.5vw, 4.75rem);
	font-weight: 800;
	line-height: 0.95;
	letter-spacing: -0.015em;
	color: var(--wp--preset--color--deep-green);
	font-variant-numeric: lining-nums;

	/*
	 * The digits are an LTR run inside RTL text and the "+" is bidi-neutral, so
	 * its side would otherwise depend on whatever follows. Isolating the span
	 * fixes the reading order as "١٤ ثم +" — the number first, then the plus.
	 */
	unicode-bidi: isolate;
}

.ahb-figure__label {
	font-size: var(--wp--preset--font-size--large);
	font-weight: 500;
	line-height: 1.4;
	color: var(--wp--preset--color--charcoal);
}

/* Constrained measure for pure-text sections ------------------ */

.ahb-measure {
	max-inline-size: 46rem;
	margin-inline: 0;
}

.ahb-measure p {
	max-inline-size: 42rem;
}

/* Editorial numbered rows (light ground) ---------------------- */

.ahb-rows {
	display: grid;
	margin-block-start: var(--wp--preset--spacing--50);
	border-block-start: var(--wp--custom--rule--hairline) solid var(--wp--preset--color--sand);
}

.ahb-rows > * {
	margin-block: 0;
}

.ahb-row {
	display: grid;
	gap: 0.35rem;
	padding-block: var(--wp--preset--spacing--40);
	border-block-end: var(--wp--custom--rule--hairline) solid var(--wp--preset--color--sand);
}

.ahb-row > * {
	margin-block: 0;
}

.ahb-row__index {
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 700;
	letter-spacing: 0.12em;
	color: var(--wp--preset--color--gold);
}

.ahb-row h3 {
	font-size: var(--wp--preset--font-size--large);
	color: var(--wp--preset--color--deep-green);
}

.ahb-row p {
	max-inline-size: 42rem;
	color: var(--wp--preset--color--charcoal);
}

@media (min-width: 48rem) {
	.ahb-row {
		grid-template-columns: 4rem 1fr;
		column-gap: var(--wp--preset--spacing--40);
		align-items: baseline;
	}

	.ahb-row__index {
		grid-row: span 2;
	}
}

/* Principles -------------------------------------------------- */

.ahb-principles {
	display: grid;
	gap: var(--wp--preset--spacing--40);
	margin-block-start: var(--wp--preset--spacing--40);
}

.ahb-principles > * {
	margin-block: 0;
}

.ahb-principle {
	padding-block-start: var(--wp--preset--spacing--30);
	border-block-start: var(--wp--custom--rule--hairline) solid var(--wp--preset--color--sand);
}

.ahb-principle > * {
	margin-block: 0;
}

.ahb-principle h3 {
	margin-block-end: 0.25rem;
	font-size: var(--wp--preset--font-size--medium);
	color: var(--wp--preset--color--deep-green);
}

.ahb-principle p {
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted);
}

@media (min-width: 48rem) {
	.ahb-principles {
		grid-template-columns: 1fr 1fr;
		gap: var(--wp--preset--spacing--50);
	}
}

/* Threads band ------------------------------------------------ */

.ahb-threads__list {
	display: flex;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--40);
	margin-block: var(--wp--preset--spacing--40) 0;
	padding-block-start: var(--wp--preset--spacing--40);
	border-block-start: var(--wp--custom--rule--accent) solid var(--wp--preset--color--gold);
}

.ahb-threads__list > * {
	margin-block: 0;
}

.ahb-thread {
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--x-large);
	font-weight: 800;
	color: var(--wp--preset--color--paper);
}

.ahb-threads__note {
	margin-block-start: var(--wp--preset--spacing--40);
	max-inline-size: 38rem;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--sand);
}

.ahb-cta__actions {
	margin-block-start: var(--wp--preset--spacing--40);
}

/* About on mobile -------------------------------------------- */

@media (max-width: 47.999rem) {
	.ahb-page-hero {
		padding-block: clamp(2.5rem, 7vw, 3.5rem) clamp(3rem, 8vw, 4rem);
	}

	.ahb-page-hero__title {
		font-size: 1.7rem;
	}

	.ahb-lede {
		margin-block-start: var(--wp--preset--spacing--30);
		font-size: var(--wp--preset--font-size--medium);
	}

	.ahb-page-hero__media img,
	.ahb-split__media img {
		aspect-ratio: 4 / 3;
		object-fit: cover;
		object-position: 50% 20%;
	}

	.ahb-split {
		gap: var(--wp--preset--spacing--40);
	}

	.ahb-row {
		padding-block: var(--wp--preset--spacing--30);
	}

	.ahb-row h3 {
		font-size: var(--wp--preset--font-size--medium);
	}

	.ahb-principles {
		gap: var(--wp--preset--spacing--30);
		margin-block-start: var(--wp--preset--spacing--30);
	}

	.ahb-thread {
		font-size: var(--wp--preset--font-size--large);
	}

	.ahb-threads__list {
		gap: var(--wp--preset--spacing--30);
	}

	.ahb-figure__value {
		font-size: 3.25rem;
	}

	.ahb-figure__label {
		font-size: var(--wp--preset--font-size--medium);
	}

	/*
	 * Mobile spacing trim, ~10% off the vertical rhythm around the three
	 * photographs and between sections. Scoped to the sectioned-page template
	 * so the approved homepage rhythm is not touched, and applied to the space
	 * around content rather than to the content itself.
	 */

	.page-template-page-sections .ahb-section {
		padding-block: clamp(2.7rem, 7.2vw, 3.6rem);
	}

	.page-template-page-sections .ahb-page-hero {
		padding-block: clamp(2.25rem, 6.3vw, 3.15rem) clamp(2.7rem, 7.2vw, 3.6rem);
	}

	.page-template-page-sections .ahb-page-hero__grid {
		gap: 2.7rem;
	}

	.page-template-page-sections .ahb-split {
		gap: 1.35rem;
	}
}


/* ===========================================================
   9. Inner pages — Individuals

   A routing page, not an essay. Everything below either reuses an
   approved component (rows, principles, product cards, CTA options)
   or adds the small amount of structure a gateway needs.
   =========================================================== */

/* Text-led page hero ------------------------------------------ */

/*
 * About opens with a portrait. This page opens with a sentence: a second
 * portrait-led hero would add a screen of height to a page whose whole job
 * is to send the visitor somewhere quickly.
 */

.ahb-page-hero--text .ahb-page-hero__title {
	max-inline-size: 20ch;
}

.ahb-page-hero--text .ahb-lede {
	max-inline-size: 44rem;
}

/* Action link closing an editorial row ------------------------ */

.ahb-row__cta {
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
}

/*
 * From 48rem the row is `4rem 1fr` with the index spanning two rows, so an
 * auto-placed fourth child drops into the 4rem index column and the link wraps
 * to two lines. Place it in the text column explicitly.
 */
@media (min-width: 48rem) {
	.ahb-row__cta {
		grid-column: 2;
	}
}

.ahb-row__cta a {
	text-decoration: none;
	border-block-end: var(--wp--custom--rule--accent) solid var(--wp--preset--color--gold);
	padding-block-end: 0.15rem;
	color: var(--wp--preset--color--deep-green);
}

.ahb-row__cta a:hover {
	color: var(--wp--preset--color--green);
	border-color: var(--wp--preset--color--green);
}

/* Three principles across, rather than two-plus-one ------------ */

@media (min-width: 48rem) {
	.ahb-principles--trio {
		grid-template-columns: repeat(3, 1fr);
	}
}

/* Insights teaser --------------------------------------------- */

.ahb-teaser__intro {
	max-inline-size: 44rem;
	margin-block: var(--wp--preset--spacing--40) 0;
	font-size: var(--wp--preset--font-size--large);
	line-height: 1.75;
	color: var(--wp--preset--color--charcoal);
}

.ahb-teaser__list {
	margin-block: var(--wp--preset--spacing--40) 0;
	padding: 0;
	list-style: none;
	border-block-start: var(--wp--custom--rule--hairline) solid var(--wp--preset--color--sand);
}

.ahb-teaser__item {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: var(--wp--preset--spacing--30);
	padding-block: var(--wp--preset--spacing--30);
	border-block-end: var(--wp--custom--rule--hairline) solid var(--wp--preset--color--sand);
}

.ahb-teaser__item a {
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--large);
	font-weight: 700;
	color: var(--wp--preset--color--deep-green);
	text-decoration: none;
}

.ahb-teaser__item a:hover {
	color: var(--wp--preset--color--green);
}

.ahb-teaser__item time {
	font-size: var(--wp--preset--font-size--x-small);
	letter-spacing: 0.08em;
	color: var(--wp--preset--color--muted);
}

/* Two-route close ---------------------------------------------- */

@media (min-width: 48rem) {
	.ahb-cta--duo .ahb-cta__options {
		grid-template-columns: repeat(2, 1fr);
		max-inline-size: 52rem;
	}
}

/* Individuals on mobile ---------------------------------------- */

@media (max-width: 47.999rem) {
	.ahb-page-hero--text .ahb-page-hero__title {
		max-inline-size: none;
	}

	.ahb-teaser__intro {
		margin-block-start: var(--wp--preset--spacing--30);
		font-size: var(--wp--preset--font-size--medium);
	}

	.ahb-teaser__item a {
		font-size: var(--wp--preset--font-size--medium);
	}

	/* The row action sits under the copy, not beside it. */
	.ahb-row__cta {
		margin-block-start: 0.15rem;
	}
}

/* Starting points: desktop reading size ------------------------ */

/*
 * From 64rem the rows have far more column width than the mobile measure was
 * set for, and the body copy and action links read small against it. A modest
 * step up only — the headings, the grid and the mobile sizes are untouched.
 *
 * Scoped to this page's rows: .ahb-row is shared with the About focus section,
 * which is approved and must not shift. The index numbers are <p> elements too,
 * so they are excluded by name rather than by position.
 */

@media (min-width: 64rem) {
	/*
	 * The body token is fluid and already resolves to 18px here, so 1.125rem
	 * would have changed nothing. 1.1875rem is one real step up while staying
	 * clear of the 22px row heading.
	 */
	.ahb-rows--start .ahb-row p:not(.ahb-row__index):not(.ahb-row__cta) {
		font-size: 1.1875rem;
		line-height: 1.7;
	}

	.ahb-rows--start .ahb-row__cta {
		font-size: var(--wp--preset--font-size--medium);
	}
}


/* ===========================================================
   10. Inner pages — Companies

   A business-development page, so the collaboration areas are the
   visual body and everything else stays quiet around them. Same
   tokens and rules as the rest of the site; no card system, no icons.
   =========================================================== */

/* Collaboration areas ----------------------------------------- */

/*
 * Asymmetric on purpose: the first area spans both columns so the grid does
 * not read as four matching tiles. Structure comes from hairline rules and
 * the numeral, never from a filled box or a shadow.
 */

.ahb-areas {
	display: grid;
	gap: 0;
	margin-block-start: var(--wp--preset--spacing--50);
	border-block-start: var(--wp--custom--rule--hairline) solid var(--wp--preset--color--sand);
}

.ahb-areas > * {
	margin-block: 0;
}

.ahb-area {
	display: grid;
	gap: 0.4rem;
	padding-block: var(--wp--preset--spacing--40);
	border-block-end: var(--wp--custom--rule--hairline) solid var(--wp--preset--color--sand);
}

.ahb-area > * {
	margin-block: 0;
}

.ahb-area__index {
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 700;
	letter-spacing: 0.12em;
	color: var(--wp--preset--color--gold);
}

.ahb-area h3 {
	font-size: var(--wp--preset--font-size--large);
	line-height: 1.3;
	color: var(--wp--preset--color--deep-green);
	text-wrap: balance;
}

.ahb-area p {
	max-inline-size: 40rem;
	color: var(--wp--preset--color--charcoal);
}

/* The fit line is an aside to the description, not a second paragraph. */
.ahb-area__fit {
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted);
	border-inline-start: var(--wp--custom--rule--accent) solid var(--wp--preset--color--gold);
	padding-inline-start: var(--wp--preset--spacing--30);
}

@media (min-width: 60rem) {
	.ahb-areas {
		grid-template-columns: 1fr 1fr;
		column-gap: var(--wp--preset--spacing--70);
	}

	/*
	 * The first and last areas take the full measure and the two middle ones
	 * pair up between them. Left to auto-placement the fourth area sat alone
	 * in one column with an empty cell beside it, which reads as a gap rather
	 * than as composition.
	 */
	.ahb-area--lead,
	.ahb-area--select {
		grid-column: 1 / -1;
	}

	.ahb-area--lead h3 {
		font-size: var(--wp--preset--font-size--x-large);
	}

	.ahb-area--lead p {
		max-inline-size: 46rem;
	}
}

/* The educational boundary, stated once and quietly. */
.ahb-boundary {
	max-inline-size: 46rem;
	margin-block-start: var(--wp--preset--spacing--50);
	padding-inline-start: var(--wp--preset--spacing--40);
	border-inline-start: var(--wp--custom--rule--hairline) solid var(--wp--preset--color--sand);
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted);
}

/* Fit checklist ------------------------------------------------ */

.ahb-fit {
	margin-block-start: var(--wp--preset--spacing--50);
	padding: 0;
	list-style: none;
	max-inline-size: 52rem;
}

.ahb-fit li {
	position: relative;
	padding-block: var(--wp--preset--spacing--30);
	padding-inline-start: var(--wp--preset--spacing--50);
	border-block-end: var(--wp--custom--rule--hairline) solid var(--wp--preset--color--sand);
}

/* A short gold rule as the marker — no bullet glyph, no icon. */
.ahb-fit li::before {
	content: "";
	position: absolute;
	inset-inline-start: 0;
	inset-block-start: 1.55em;
	inline-size: var(--wp--preset--spacing--40);
	block-size: var(--wp--custom--rule--accent);
	background-color: var(--wp--preset--color--gold);
}

/* Engagement steps --------------------------------------------- */

.ahb-steps {
	display: grid;
	gap: 0;
	margin-block-start: var(--wp--preset--spacing--50);
	border-block-start: var(--wp--custom--rule--hairline) solid var(--wp--preset--color--deep-green);
}

.ahb-steps > * {
	margin-block: 0;
}

.ahb-step {
	display: grid;
	gap: 0.3rem;
	padding-block: var(--wp--preset--spacing--40);
	border-block-end: var(--wp--custom--rule--hairline) solid rgba(8, 61, 53, 0.18);
}

.ahb-step > * {
	margin-block: 0;
}

.ahb-step__index {
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--large);
	font-weight: 800;
	line-height: 1;
	color: var(--wp--preset--color--gold);
}

.ahb-step h3 {
	font-size: var(--wp--preset--font-size--medium);
	color: var(--wp--preset--color--deep-green);
}

.ahb-step p {
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--charcoal);
}

@media (min-width: 60rem) {
	.ahb-steps {
		grid-template-columns: repeat(4, 1fr);
		column-gap: var(--wp--preset--spacing--50);
	}

	.ahb-step {
		border-block-end: 0;
	}
}

/* Proof statements --------------------------------------------- */

.ahb-pillars {
	display: grid;
	gap: var(--wp--preset--spacing--40);
	margin-block-start: var(--wp--preset--spacing--50);
}

.ahb-pillars > * {
	margin-block: 0;
}

.ahb-pillar {
	padding-block-start: var(--wp--preset--spacing--30);
	border-block-start: var(--wp--custom--rule--accent) solid var(--wp--preset--color--deep-green);
}

.ahb-pillar p {
	margin-block: 0;
	font-size: var(--wp--preset--font-size--medium);
	color: var(--wp--preset--color--charcoal);
}

@media (min-width: 48rem) {
	.ahb-pillars {
		grid-template-columns: repeat(3, 1fr);
		gap: var(--wp--preset--spacing--50);
	}
}

/* Closing call ------------------------------------------------- */

.ahb-close__title {
	margin-block: 0;
	font-size: var(--wp--preset--font-size--x-large);
}

.ahb-close__note {
	max-inline-size: 44rem;
	margin-block: var(--wp--preset--spacing--30) 0;
	color: var(--wp--preset--color--sand);
}

.ahb-close__actions {
	margin-block-start: var(--wp--preset--spacing--40);
}

/* On the deep ground the primary button inverts to paper. */
.ahb-close__actions .wp-block-button__link {
	background-color: var(--wp--preset--color--paper);
	border-color: var(--wp--preset--color--paper);
	color: var(--wp--preset--color--deep-green);
}

.ahb-close__actions .wp-block-button__link:hover {
	background-color: var(--wp--preset--color--gold);
	border-color: var(--wp--preset--color--gold);
	color: var(--wp--preset--color--charcoal);
}

.ahb-close__secondary {
	margin-block-start: var(--wp--preset--spacing--30);
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
}

.ahb-close__secondary a {
	color: var(--wp--preset--color--sand);
	text-decoration: none;
	border-block-end: var(--wp--custom--rule--accent) solid var(--wp--preset--color--gold);
	padding-block-end: 0.15rem;
}

.ahb-close__secondary a:hover {
	color: var(--wp--preset--color--paper);
}

/* Companies on mobile ------------------------------------------ */

@media (max-width: 47.999rem) {
	.ahb-area {
		padding-block: var(--wp--preset--spacing--30);
	}

	.ahb-area h3,
	.ahb-area--lead h3 {
		font-size: var(--wp--preset--font-size--medium);
	}

	.ahb-area p {
		font-size: var(--wp--preset--font-size--small);
	}

	.ahb-fit {
		margin-block-start: var(--wp--preset--spacing--40);
	}

	.ahb-fit li {
		padding-block: var(--wp--preset--spacing--20);
		padding-inline-start: var(--wp--preset--spacing--40);
		font-size: var(--wp--preset--font-size--small);
	}

	.ahb-fit li::before {
		inline-size: var(--wp--preset--spacing--30);
		inset-block-start: 1.35em;
	}

	.ahb-step {
		padding-block: var(--wp--preset--spacing--30);
	}

	.ahb-pillars {
		gap: var(--wp--preset--spacing--30);
		margin-block-start: var(--wp--preset--spacing--40);
	}

	.ahb-pillar p {
		font-size: var(--wp--preset--font-size--small);
	}

	.ahb-close__title {
		font-size: var(--wp--preset--font-size--large);
	}

	.ahb-close__note {
		font-size: var(--wp--preset--font-size--small);
	}

	.ahb-boundary {
		margin-block-start: var(--wp--preset--spacing--40);
		padding-inline-start: var(--wp--preset--spacing--30);
	}
}


/* ===========================================================
   11. Inner pages — Contact and legal
   =========================================================== */

/* Contact routes ---------------------------------------------- */

.ahb-routes {
	display: grid;
	gap: 0;
	margin-block-start: var(--wp--preset--spacing--40);
	border-block-start: var(--wp--custom--rule--hairline) solid var(--wp--preset--color--sand);
}

.ahb-routes > * {
	margin-block: 0;
}

.ahb-route {
	display: grid;
	gap: 0.4rem;
	padding-block: var(--wp--preset--spacing--40);
	border-block-end: var(--wp--custom--rule--hairline) solid var(--wp--preset--color--sand);
}

.ahb-route > * {
	margin-block: 0;
}

.ahb-route h2 {
	font-size: var(--wp--preset--font-size--large);
	color: var(--wp--preset--color--deep-green);
}

.ahb-route p {
	max-inline-size: 34rem;
	color: var(--wp--preset--color--charcoal);
}

.ahb-route__cta {
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
}

.ahb-route__cta a {
	display: inline-block;
	padding-block: 0.35rem;
	color: var(--wp--preset--color--deep-green);
	text-decoration: none;
	border-block-end: var(--wp--custom--rule--accent) solid var(--wp--preset--color--gold);
}

.ahb-route__cta a:hover {
	color: var(--wp--preset--color--green);
	border-color: var(--wp--preset--color--green);
}

@media (min-width: 48rem) {
	.ahb-routes {
		grid-template-columns: 1fr 1fr;
		column-gap: var(--wp--preset--spacing--70);
	}
}

/* The direct address stays readable and selectable — never obfuscated. */
.ahb-direct {
	margin-block-start: var(--wp--preset--spacing--40);
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted);
}

.ahb-direct a {
	color: var(--wp--preset--color--deep-green);
	font-weight: 700;
	text-underline-offset: 0.35em;
}

/* Legal pages -------------------------------------------------- */

/*
 * Policies are read, not scanned: one column, a comfortable measure, and
 * headings that stay clearly subordinate to the page title.
 */

.ahb-legal__body {
	max-inline-size: 46rem;
}

.ahb-legal__body > * {
	margin-block: 0;
}

.ahb-legal__body h2 {
	margin-block: var(--wp--preset--spacing--60) var(--wp--preset--spacing--30);
	font-size: var(--wp--preset--font-size--large);
	color: var(--wp--preset--color--deep-green);
}

.ahb-legal__body > h2:first-child {
	margin-block-start: 0;
}

.ahb-legal__body p {
	margin-block-end: var(--wp--preset--spacing--30);
	color: var(--wp--preset--color--charcoal);
}

.ahb-legal__body ul {
	margin-block: 0 var(--wp--preset--spacing--30);
	padding-inline-start: 1.2rem;
	color: var(--wp--preset--color--charcoal);
}

.ahb-legal__body li + li {
	margin-block-start: 0.5rem;
}

@media (max-width: 47.999rem) {
	.ahb-route {
		padding-block: var(--wp--preset--spacing--30);
	}

	.ahb-route h2 {
		font-size: var(--wp--preset--font-size--medium);
	}

	.ahb-route p {
		font-size: var(--wp--preset--font-size--small);
	}

	.ahb-legal__body h2 {
		margin-block-start: var(--wp--preset--spacing--50);
		font-size: var(--wp--preset--font-size--medium);
	}

	.ahb-legal__body p,
	.ahb-legal__body ul {
		font-size: var(--wp--preset--font-size--small);
	}
}


/* ===========================================================
   12. Footer — mobile condensation

   The footer stacked identity, six browse links, two legal links
   and the copyright in one column, which cost most of a screen on
   every page. Below 48rem the two link lists sit side by side
   instead. Nothing is removed, and the desktop footer is untouched.
   =========================================================== */

@media (max-width: 47.999rem) {
	.site-footer__inner {
		grid-template-columns: 1fr 1fr;
		column-gap: var(--wp--preset--spacing--40);
		row-gap: var(--wp--preset--spacing--50);
		padding-block: var(--wp--preset--spacing--50);
	}

	/* Brand block and copyright span both columns; the lists share the row. */
	.site-footer__identity,
	.site-footer__meta {
		grid-column: 1 / -1;
	}

	.site-footer__signature {
		block-size: 2rem;
	}

	.site-footer__positioning {
		margin-block-start: var(--wp--preset--spacing--20);
		font-size: var(--wp--preset--font-size--medium);
	}

	.site-footer__descriptor {
		margin-block-start: 0.25rem;
	}

	.site-footer__heading {
		margin-block-end: var(--wp--preset--spacing--20);
	}

	/*
	 * Targets stay comfortable: each link is its own row at the full column
	 * width, 40px tall or more, with 8px of clear space between rows. That
	 * satisfies the WCAG 2.2 minimum target size with room to spare, so the
	 * height saving comes from the two-column arrangement rather than from
	 * shrinking anything a finger has to hit.
	 */
	.site-footer .nav {
		gap: 0;
	}

	.site-footer .nav li {
		inline-size: 100%;
	}

	.site-footer .nav a {
		display: block;
		padding-block: 0.55rem;
		min-block-size: 1.5rem;
	}

	.site-footer__meta {
		padding-block-start: var(--wp--preset--spacing--30);
	}
}


/* ===========================================================
   13. Insights — the publishing system

   An editorial index rather than a blog grid, and a reading
   measure that holds for Arabic at every width.
   =========================================================== */

/* Topic navigation --------------------------------------------- */

.ahb-topics {
	margin-block-end: var(--wp--preset--spacing--50);
}

.ahb-topics__list {
	display: flex;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--40);
	margin: 0;
	padding: 0;
	list-style: none;
	border-block-end: var(--wp--custom--rule--hairline) solid var(--wp--preset--color--sand);
	padding-block-end: var(--wp--preset--spacing--30);
}

.ahb-topics__item a {
	display: inline-block;
	padding-block: 0.35rem;
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
	color: var(--wp--preset--color--muted);
	text-decoration: none;
}

.ahb-topics__item a:hover {
	color: var(--wp--preset--color--deep-green);
}

/* The stream --------------------------------------------------- */

.ahb-stream__list {
	display: grid;
	gap: 0;
	border-block-start: var(--wp--custom--rule--hairline) solid var(--wp--preset--color--sand);
}

.ahb-stream__list > * {
	margin-block: 0;
}

.ahb-card {
	padding-block: var(--wp--preset--spacing--40);
	border-block-end: var(--wp--custom--rule--hairline) solid var(--wp--preset--color--sand);
}

.ahb-card > * {
	margin-block: 0;
}

.ahb-card__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.5rem;
	margin-block-end: 0.4rem;
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--x-small);
	letter-spacing: 0.06em;
	color: var(--wp--preset--color--muted);
}

.ahb-card__category {
	color: var(--wp--preset--color--gold);
	font-weight: 700;
	text-decoration: none;
}

.ahb-card__category:hover {
	color: var(--wp--preset--color--deep-green);
}

.ahb-card__title {
	margin-block: 0 0.4rem;
	font-size: var(--wp--preset--font-size--large);
	line-height: 1.3;
	text-wrap: balance;
}

.ahb-card__title a {
	color: var(--wp--preset--color--deep-green);
	text-decoration: none;
}

.ahb-card__title a:hover {
	color: var(--wp--preset--color--green);
}

.ahb-card__summary {
	max-inline-size: 44rem;
	margin: 0;
	color: var(--wp--preset--color--charcoal);
}

.ahb-card__media img {
	inline-size: 100%;
	block-size: auto;
	border-radius: var(--wp--custom--radius--none);
}

/* The lead article carries more weight than the rows beneath it. */
.ahb-card--lead {
	padding-block-end: var(--wp--preset--spacing--50);
}

.ahb-card--lead .ahb-card__title {
	font-size: var(--wp--preset--font-size--x-large);
	line-height: 1.2;
}

.ahb-card--lead .ahb-card__summary {
	font-size: var(--wp--preset--font-size--large);
	line-height: 1.7;
}

@media (min-width: 48rem) {
	/* With an image the row becomes two columns; without one it simply stays full width. */
	.ahb-card--row.ahb-card--media {
		display: grid;
		grid-template-columns: 14rem 1fr;
		column-gap: var(--wp--preset--spacing--50);
		align-items: start;
	}

	.ahb-card--lead.ahb-card--media {
		display: grid;
		grid-template-columns: 1fr 0.85fr;
		column-gap: var(--wp--preset--spacing--60);
		align-items: center;
	}

	.ahb-card--lead.ahb-card--media .ahb-card__media {
		grid-column: 2;
		grid-row: 1;
	}

	.ahb-card--lead.ahb-card--media .ahb-card__body {
		grid-column: 1;
		grid-row: 1;
	}
}

/* Empty state --------------------------------------------------- */

.ahb-stream__empty {
	max-inline-size: 44rem;
	padding-block: var(--wp--preset--spacing--40);
	border-block-start: var(--wp--custom--rule--hairline) solid var(--wp--preset--color--sand);
}

.ahb-stream__empty-note {
	margin-block: 0;
	font-size: var(--wp--preset--font-size--large);
	line-height: 1.7;
	color: var(--wp--preset--color--charcoal);
}

.ahb-stream__title {
	margin-block: 0 var(--wp--preset--spacing--40);
	font-size: var(--wp--preset--font-size--x-large);
	color: var(--wp--preset--color--deep-green);
}

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

.ahb-pagination {
	margin-block-start: var(--wp--preset--spacing--50);
}

.ahb-pagination .nav-links {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--wp--preset--spacing--30);
}

.ahb-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-inline-size: 2.75rem;
	min-block-size: 2.75rem;
	padding-inline: 0.6rem;
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
	color: var(--wp--preset--color--deep-green);
	text-decoration: none;
	border: var(--wp--custom--rule--hairline) solid var(--wp--preset--color--sand);
	border-radius: var(--wp--custom--radius--sm);
}

.ahb-pagination .page-numbers:hover {
	border-color: var(--wp--preset--color--deep-green);
}

/* Current page is marked by fill and by aria-current, not colour alone. */
.ahb-pagination .page-numbers.current {
	background-color: var(--wp--preset--color--deep-green);
	border-color: var(--wp--preset--color--deep-green);
	color: var(--wp--preset--color--paper);
}

.ahb-pagination .page-numbers.dots {
	border-color: transparent;
	color: var(--wp--preset--color--muted);
}

/* ---------------------------------------------------------------
   Single article
   --------------------------------------------------------------- */

.ahb-article {
	padding-block: var(--wp--preset--spacing--70) var(--wp--preset--spacing--80);
}

.ahb-article__header {
	max-inline-size: 46rem;
	margin-inline: auto;
}

.ahb-article__title {
	margin-block: 0;
	font-size: var(--wp--preset--font-size--xx-large);
	font-weight: 800;
	line-height: 1.2;
	color: var(--wp--preset--color--deep-green);
	text-wrap: balance;
}

.ahb-article__meta {
	margin-block: var(--wp--preset--spacing--30) 0;
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--x-small);
	letter-spacing: 0.06em;
	color: var(--wp--preset--color--muted);
}

.ahb-article__media {
	max-inline-size: 60rem;
	margin: var(--wp--preset--spacing--60) auto 0;
}

.ahb-article__media img {
	inline-size: 100%;
	block-size: auto;
}

.ahb-article__media figcaption {
	margin-block-start: var(--wp--preset--spacing--20);
	font-size: var(--wp--preset--font-size--x-small);
	color: var(--wp--preset--color--muted);
}

.ahb-article__body {
	margin-block-start: var(--wp--preset--spacing--60);
}

/* ---------------------------------------------------------------
   Reading system (.ahb-prose)

   Scoped to article content so nothing here leaks into the marketing
   pages. Styles native block output only — no custom blocks needed.
   --------------------------------------------------------------- */

.ahb-prose {
	/* A measure tuned for Arabic: comfortable without becoming a column. */
	max-inline-size: 44rem;
	margin-inline: auto;
	font-size: var(--wp--preset--font-size--medium);
	line-height: 1.95;
	color: var(--wp--preset--color--charcoal);
}

.ahb-prose > * {
	margin-block: 0 var(--wp--preset--spacing--40);
}

.ahb-prose > *:last-child {
	margin-block-end: 0;
}

/* Headings: content starts at h2, so h1 inside content is not styled up. */
.ahb-prose h2,
.ahb-prose h3,
.ahb-prose h4,
.ahb-prose h5,
.ahb-prose h6 {
	margin-block: var(--wp--preset--spacing--60) var(--wp--preset--spacing--30);
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 700;
	line-height: 1.35;
	color: var(--wp--preset--color--deep-green);
	text-wrap: balance;
}

.ahb-prose h2 {
	font-size: var(--wp--preset--font-size--x-large);
}

.ahb-prose h3 {
	font-size: var(--wp--preset--font-size--large);
}

.ahb-prose h4 {
	font-size: var(--wp--preset--font-size--medium);
	letter-spacing: 0.01em;
}

.ahb-prose h5,
.ahb-prose h6 {
	font-size: var(--wp--preset--font-size--small);
	letter-spacing: 0.06em;
	text-transform: none;
	color: var(--wp--preset--color--muted);
}

/*
 * An h1 inside article content is an editorial mistake, not a rendering one.
 * It is styled as a section heading rather than competing with the title, and
 * the stored content is never rewritten. See docs/insights-editorial-guide.md.
 */
.ahb-prose h1 {
	margin-block: var(--wp--preset--spacing--60) var(--wp--preset--spacing--30);
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--x-large);
	font-weight: 700;
	line-height: 1.35;
	color: var(--wp--preset--color--deep-green);
}

.ahb-prose p {
	margin-block: 0 var(--wp--preset--spacing--40);
}

.ahb-prose a {
	color: var(--wp--preset--color--deep-green);
	text-decoration: underline;
	text-underline-offset: 0.25em;
	text-decoration-thickness: 1px;
	text-decoration-color: var(--wp--preset--color--gold);
}

.ahb-prose a:hover {
	color: var(--wp--preset--color--green);
	text-decoration-color: currentColor;
}

.ahb-prose strong {
	font-weight: 700;
	color: var(--wp--preset--color--deep-green);
}

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

.ahb-prose ul,
.ahb-prose ol {
	padding-inline-start: 1.4rem;
}

.ahb-prose li {
	margin-block-end: 0.5rem;
}

.ahb-prose li > ul,
.ahb-prose li > ol {
	margin-block: 0.5rem 0;
}

/* Quote --------------------------------------------------------- */

/*
 * A structural rule on the inline-start edge, not a decorative glyph. The
 * quote stays body-legible: it is a passage, not a poster.
 */
.ahb-prose blockquote,
.ahb-prose .wp-block-quote {
	margin-inline: 0;
	padding-inline-start: var(--wp--preset--spacing--40);
	border-inline-start: var(--wp--custom--rule--accent) solid var(--wp--preset--color--gold);
	font-size: var(--wp--preset--font-size--large);
	line-height: 1.75;
	color: var(--wp--preset--color--deep-green);
}

.ahb-prose blockquote p:last-child {
	margin-block-end: 0;
}

.ahb-prose blockquote cite,
.ahb-prose .wp-block-quote cite {
	display: block;
	margin-block-start: var(--wp--preset--spacing--20);
	font-size: var(--wp--preset--font-size--small);
	font-style: normal;
	color: var(--wp--preset--color--muted);
}

.ahb-prose .wp-block-pullquote {
	padding-block: var(--wp--preset--spacing--40);
	padding-inline: 0;
	border-block: var(--wp--custom--rule--hairline) solid var(--wp--preset--color--sand);
	border-inline: 0;
	background: none;
	text-align: start;
}

/*
 * A pullquote wraps a blockquote, so it inherited the quote treatment's gold
 * inline-start rule on top of its own horizontal rules. The pullquote owns its
 * framing; the inner blockquote carries none.
 */
.ahb-prose .wp-block-pullquote blockquote {
	margin: 0;
	padding-inline-start: 0;
	border-inline-start: 0;
}

.ahb-prose .wp-block-pullquote p {
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--x-large);
	font-weight: 700;
	line-height: 1.35;
	color: var(--wp--preset--color--deep-green);
}

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

/*
 * Financial tables are wide by nature. The figure scrolls inside its own box
 * so a table can never push the page sideways.
 */
.ahb-prose .wp-block-table,
.ahb-prose figure.wp-block-table {
	overflow-x: auto;
	max-inline-size: 100%;
	-webkit-overflow-scrolling: touch;
}

.ahb-prose table {
	inline-size: 100%;
	/*
	 * A floor on the table's width. Without it a five-column table squeezes
	 * into 60px columns on a phone and wraps every cell to three lines; with
	 * it the table keeps readable columns and the wrapper above scrolls
	 * instead. The page itself still never moves sideways.
	 */
	min-inline-size: 32rem;
	border-collapse: collapse;
	font-size: var(--wp--preset--font-size--small);
	/* Figures line up column to column. */
	font-variant-numeric: tabular-nums lining-nums;
}

.ahb-prose th,
.ahb-prose td {
	padding-block: 0.7rem;
	padding-inline: 0.9rem;
	border-block-end: var(--wp--custom--rule--hairline) solid var(--wp--preset--color--sand);
	text-align: start;
	vertical-align: top;
}

.ahb-prose thead th {
	border-block-end-width: var(--wp--custom--rule--accent);
	border-block-end-color: var(--wp--preset--color--deep-green);
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 700;
	color: var(--wp--preset--color--deep-green);
	white-space: nowrap;
}

.ahb-prose .wp-block-table figcaption {
	margin-block-start: var(--wp--preset--spacing--20);
	font-size: var(--wp--preset--font-size--x-small);
	color: var(--wp--preset--color--muted);
}

/* Figures, images, galleries ------------------------------------ */

.ahb-prose figure,
.ahb-prose .wp-block-image {
	margin-inline: 0;
}

.ahb-prose img {
	max-inline-size: 100%;
	block-size: auto;
	border-radius: var(--wp--custom--radius--none);
}

.ahb-prose figcaption {
	margin-block-start: var(--wp--preset--spacing--20);
	font-size: var(--wp--preset--font-size--x-small);
	line-height: 1.6;
	color: var(--wp--preset--color--muted);
}

/* Wide images may break the measure a little on desktop, never on mobile. */
@media (min-width: 60rem) {
	.ahb-prose .alignwide {
		inline-size: min(56rem, 92vw);
		max-inline-size: none;
		margin-inline: calc((44rem - min(56rem, 92vw)) / 2);
	}
}

.ahb-prose .wp-block-gallery {
	max-inline-size: 100%;
}

.ahb-prose .wp-block-embed,
.ahb-prose .wp-block-embed__wrapper {
	max-inline-size: 100%;
}

.ahb-prose .wp-block-embed iframe {
	max-inline-size: 100%;
}

/* Separator, code ----------------------------------------------- */

.ahb-prose hr,
.ahb-prose .wp-block-separator {
	margin-block: var(--wp--preset--spacing--60);
	border: 0;
	border-block-start: var(--wp--custom--rule--hairline) solid var(--wp--preset--color--sand);
	max-inline-size: none;
}

.ahb-prose code,
.ahb-prose pre {
	font-size: 0.9em;
	background-color: var(--wp--preset--color--white);
	border: var(--wp--custom--rule--hairline) solid var(--wp--preset--color--sand);
	border-radius: var(--wp--custom--radius--sm);
}

.ahb-prose code {
	padding-inline: 0.3em;
}

.ahb-prose pre {
	padding: var(--wp--preset--spacing--30);
	overflow-x: auto;
}

/* Related + close ------------------------------------------------ */

.ahb-article__related {
	max-inline-size: 46rem;
	margin: var(--wp--preset--spacing--70) auto 0;
	padding-block-start: var(--wp--preset--spacing--40);
	border-block-start: var(--wp--custom--rule--hairline) solid var(--wp--preset--color--sand);
}

.ahb-related__list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.ahb-related__item {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: var(--wp--preset--spacing--30);
	padding-block: var(--wp--preset--spacing--30);
	border-block-end: var(--wp--custom--rule--hairline) solid var(--wp--preset--color--sand);
}

.ahb-related__item a {
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--medium);
	font-weight: 700;
	color: var(--wp--preset--color--deep-green);
	text-decoration: none;
}

.ahb-related__item a:hover {
	color: var(--wp--preset--color--green);
}

.ahb-related__item .entry-date {
	font-size: var(--wp--preset--font-size--x-small);
	color: var(--wp--preset--color--muted);
}

.ahb-article__close {
	max-inline-size: 46rem;
	margin: var(--wp--preset--spacing--60) auto 0;
}

.ahb-search__term {
	color: var(--wp--preset--color--gold);
}

/* Insights on mobile --------------------------------------------- */

@media (max-width: 47.999rem) {
	.ahb-card {
		padding-block: var(--wp--preset--spacing--30);
	}

	.ahb-card--lead .ahb-card__title {
		font-size: var(--wp--preset--font-size--large);
	}

	.ahb-card--lead .ahb-card__summary {
		font-size: var(--wp--preset--font-size--medium);
	}

	.ahb-card__title {
		font-size: var(--wp--preset--font-size--medium);
	}

	.ahb-card__summary {
		font-size: var(--wp--preset--font-size--small);
	}

	/* Images support the row; they never lead it. */
	.ahb-card--media .ahb-card__media img {
		aspect-ratio: 16 / 9;
		object-fit: cover;
		margin-block-end: var(--wp--preset--spacing--30);
	}

	.ahb-stream__empty-note {
		font-size: var(--wp--preset--font-size--medium);
	}

	.ahb-article {
		padding-block: clamp(2.25rem, 6.3vw, 3.15rem) clamp(2.7rem, 7.2vw, 3.6rem);
	}

	.ahb-article__title {
		font-size: 1.7rem;
	}

	.ahb-article__media {
		margin-block-start: var(--wp--preset--spacing--50);
	}

	.ahb-article__body {
		margin-block-start: var(--wp--preset--spacing--50);
	}

	.ahb-prose {
		font-size: var(--wp--preset--font-size--medium);
		line-height: 1.9;
	}

	.ahb-prose h2 {
		font-size: var(--wp--preset--font-size--large);
	}

	.ahb-prose h3 {
		font-size: var(--wp--preset--font-size--medium);
	}

	.ahb-prose blockquote,
	.ahb-prose .wp-block-quote {
		font-size: var(--wp--preset--font-size--medium);
		padding-inline-start: var(--wp--preset--spacing--30);
	}

	.ahb-prose .wp-block-pullquote p {
		font-size: var(--wp--preset--font-size--large);
	}

	.ahb-prose th,
	.ahb-prose td {
		padding-inline: 0.6rem;
		font-size: var(--wp--preset--font-size--x-small);
	}

	.ahb-article__related {
		margin-block-start: var(--wp--preset--spacing--60);
	}
}

/* Language switcher ------------------------------------------- */

/*
 * The switcher is now a real control. The current language stays plain text;
 * the other language is the only interactive part. Sized to stay a comfortable
 * target without becoming a button — it sits beside the contact CTA and must
 * not compete with it.
 */

.lang-switch__other {
	display: inline-block;
	padding-block: 0.25rem;
	padding-inline: 0.15rem;
	color: var(--wp--preset--color--deep-green);
	font-weight: 700;
	text-decoration: none;
	border-block-end: var(--wp--custom--rule--accent) solid transparent;
}

.lang-switch__other:hover,
.lang-switch__other:focus-visible {
	color: var(--wp--preset--color--green);
	border-block-end-color: var(--wp--preset--color--gold);
}
