/* ==========================================================================
   Hello AJF — design system
   Tokens · base · layout · header · footer · blog · Elementor utilities
   ========================================================================== */

/* Fonts (self-hosted, latin subset, variable) */
@font-face {
	font-family: "Inter";
	src: url("../fonts/inter-latin-var.woff2") format("woff2");
	font-weight: 400 700;
	font-style: normal;
	font-display: swap;
}

/* "Apple Green": neutral Apple greys, green reserved for actions, links and icons. */
:root {
	--ajf-ink: #1d1d1f;
	--ajf-ink-2: #2c2c2e;
	--ajf-accent: #1e7a35;      /* 5.4:1 with white text */
	--ajf-accent-dark: #17602a;
	--ajf-bright: #30d158;      /* on dark surfaces only (8.3:1 on ink) */
	--ajf-tint: #e8f5ec;
	--ajf-amber: #f4b23e;       /* review stars only */
	--ajf-text: #1d1d1f;
	--ajf-muted: #6e6e73;
	--ajf-line: #e5e5ea;
	--ajf-surface: #f5f5f7;
	--ajf-white: #fff;
	--ajf-on-dark: #c7c7cc;

	--ajf-font-head: "Inter", -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", Roboto, Arial, sans-serif;
	--ajf-font-body: "Inter", -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", Roboto, Arial, sans-serif;

	--ajf-h1: clamp(2.4rem, 1.6rem + 3.4vw, 4rem);
	--ajf-h2: clamp(1.8rem, 1.35rem + 2vw, 3rem);
	--ajf-h3: clamp(1.2rem, 1.1rem + .4vw, 1.4rem);

	--ajf-radius: 20px;
	--ajf-radius-sm: 12px;
	--ajf-shadow: 0 2px 6px rgba(0, 0, 0, .04), 0 12px 32px rgba(0, 0, 0, .08);
	--ajf-max: 1200px;
	--ajf-gutter: 16px;
	--ajf-section: 64px;
	--ajf-header-h: 64px;
}
@media (min-width: 768px) { :root { --ajf-gutter: 24px; --ajf-section: 88px; } }
@media (min-width: 1025px) { :root { --ajf-gutter: 32px; --ajf-section: 120px; --ajf-header-h: 76px; } }

/* --------------------------------------------------------------------------
   Base
   -------------------------------------------------------------------------- */
html { scroll-padding-top: calc(var(--ajf-header-h) + 16px); }
html.ajf-no-scroll { overflow: hidden; }
body {
	font-family: var(--ajf-font-body);
	font-size: 1.0625rem;
	line-height: 1.65;
	color: var(--ajf-text);
	background: var(--ajf-white);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}
h1, h2, h3, h4, h5, h6 {
	font-family: var(--ajf-font-head);
	color: var(--ajf-ink);
	font-weight: 700;
	line-height: 1.15;
	letter-spacing: -.025em;
	text-wrap: balance;
	margin-block: 0 .6em;
	overflow-wrap: break-word; /* long domain names in titles must not overflow on phones */
}
.elementor-heading-title, .ajf-card-post__title { overflow-wrap: break-word; }
h1 { font-size: var(--ajf-h1); line-height: 1.06; letter-spacing: -.035em; }
h2 { font-size: var(--ajf-h2); line-height: 1.1; letter-spacing: -.03em; }
h3, .ajf-h3 { font-size: var(--ajf-h3); font-weight: 600; letter-spacing: -.015em; }
h4 { font-size: 1.1rem; font-weight: 600; letter-spacing: -.01em; }
p { margin-block: 0 1em; }
a { color: var(--ajf-accent); text-underline-offset: .18em; }
a:hover { color: var(--ajf-accent-dark); }
img { max-width: 100%; height: auto; }
:focus-visible { outline: 3px solid var(--ajf-accent); outline-offset: 2px; border-radius: 4px; }
::selection { background: #c8ebd2; color: var(--ajf-ink); }

.screen-reader-text {
	border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%);
	height: 1px; margin: -1px; overflow: hidden; padding: 0;
	position: absolute !important; width: 1px; word-wrap: normal !important;
}
.skip-link.screen-reader-text:focus {
	clip: auto; clip-path: none; height: auto; width: auto; margin: 0;
	top: 8px; left: 8px; z-index: 100000; padding: 12px 18px;
	background: var(--ajf-ink); color: #fff; border-radius: var(--ajf-radius-sm); font-weight: 600;
}

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

/* --------------------------------------------------------------------------
   Layout helpers
   -------------------------------------------------------------------------- */
.ajf-wrap { width: 100%; max-width: var(--ajf-max); margin-inline: auto; padding-inline: var(--ajf-gutter); box-sizing: border-box; }
.ajf-wrap--article { max-width: calc(760px + 2 * var(--ajf-gutter)); }
.ajf-wrap--wide { max-width: calc(1000px + 2 * var(--ajf-gutter)); }
.ajf-section-sm { padding-block: calc(var(--ajf-section) * .6) var(--ajf-section); }

/* Buttons
   Elementor's Kit prints `.elementor-kit-N button|a|.elementor-button` after
   this file, so rules here use `body` / doubled classes to win specificity. */
body .ajf-btn,
body .elementor-widget-button .elementor-button {
	display: inline-flex; align-items: center; justify-content: center; gap: .5em;
	min-height: 48px; padding: .8em 1.4em;
	font-family: var(--ajf-font-body); font-weight: 600; font-size: 1rem; line-height: 1.2;
	border-radius: 999px; border: 2px solid transparent; text-decoration: none;
	transition: background-color .15s ease, color .15s ease, border-color .15s ease, transform .15s ease;
}
body .ajf-btn--primary,
body .elementor-widget-button .elementor-button { background: var(--ajf-accent); color: #fff; }
body .ajf-btn--primary:hover,
body .elementor-widget-button .elementor-button:hover { background: var(--ajf-accent-dark); color: #fff; }
body .ajf-btn--ghost,
body .ajf-btn-ghost .elementor-button { background: transparent; color: var(--ajf-accent); border-color: currentColor; }
body .ajf-btn--ghost:hover,
body .ajf-btn-ghost .elementor-button:hover { background: var(--ajf-accent); color: #fff; border-color: var(--ajf-accent); }
/* "Amber" is the class name set on Elementor buttons; it now means "main call to action" (green). */
body .ajf-btn-amber .elementor-button { background: var(--ajf-accent); color: #fff; }
body .ajf-btn-amber .elementor-button:hover { background: var(--ajf-accent-dark); color: #fff; }

/* Theme UI buttons are not "Kit" buttons */
body .ajf-header button, body .ajf-search button { border-radius: 10px; }
body .ajf-header .ajf-sub-toggle { background: transparent; color: var(--ajf-ink); border: 0; }
body .ajf-header .ajf-sub-toggle:hover { background: var(--ajf-surface); color: var(--ajf-accent); }
body .ajf-header .ajf-nav-toggle { background: #fff; color: var(--ajf-ink); }
body .ajf-search .ajf-search__btn { background: var(--ajf-accent); color: #fff; border-radius: 0; }

/* Pills & eyebrow */
.ajf-pill {
	display: inline-block; padding: .3em .85em; border-radius: 999px;
	background: var(--ajf-tint); color: var(--ajf-accent-dark); font-size: .8rem; font-weight: 600;
	text-decoration: none; letter-spacing: .01em;
}
a.ajf-pill:hover, .ajf-pill.is-current { background: var(--ajf-accent); color: #fff; }
/* Eyebrows: Apple-style sentence-case kicker, not wide-tracked caps. */
.ajf-eyebrow,
.ajf-eyebrow .elementor-heading-title {
	font-family: var(--ajf-font-body) !important; font-size: 1rem !important; font-weight: 600 !important;
	letter-spacing: -.005em !important; text-transform: none; color: var(--ajf-accent) !important; margin-bottom: .5rem;
}
.ajf-section--dark .ajf-eyebrow .elementor-heading-title { color: var(--ajf-bright) !important; }

/* --------------------------------------------------------------------------
   Header
   -------------------------------------------------------------------------- */
/* Frosted glass sits on a ::before layer. A backdrop-filter on the header itself
   would make it the containing block for the fixed mobile drawer. */
.ajf-header {
	position: sticky; top: 0; z-index: 1000;
	background: transparent;
	border-bottom: 1px solid rgba(0, 0, 0, .08);
}
.ajf-header::before {
	content: ""; position: absolute; inset: 0; z-index: -1;
	background: rgba(255, 255, 255, .8);
	-webkit-backdrop-filter: saturate(180%) blur(20px); backdrop-filter: saturate(180%) blur(20px);
}
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) { .ajf-header::before { background: #fff; } }
.ajf-header.is-nav-open::before { background: #fff; -webkit-backdrop-filter: none; backdrop-filter: none; }
.admin-bar .ajf-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .ajf-header { top: 0; } }
.ajf-header__inner {
	max-width: calc(var(--ajf-max) + 2 * var(--ajf-gutter)); margin-inline: auto; padding-inline: var(--ajf-gutter);
	min-height: var(--ajf-header-h); display: flex; align-items: center; gap: 1rem; box-sizing: border-box;
}
.ajf-header__logo { display: inline-flex; flex-shrink: 0; margin-right: auto; }
.ajf-header__logo-img { width: auto; height: 44px; display: block; }
@media (min-width: 1025px) { .ajf-header__logo-img { height: 52px; } }
.ajf-header__wordmark { font-family: var(--ajf-font-head); font-weight: 700; color: var(--ajf-ink); font-size: 1.2rem; }

.ajf-nav__list, .ajf-nav__list ul { list-style: none; margin: 0; padding: 0; }
.ajf-nav__list a { text-decoration: none; color: var(--ajf-ink); font-weight: 500; font-size: .9rem; letter-spacing: -.005em; }
.ajf-nav__list a:hover, .ajf-nav__list .current-menu-item > a, .ajf-nav__list .current-menu-ancestor > a { color: var(--ajf-accent); }
.ajf-sub-toggle {
	background: none; border: 0; padding: 6px; margin: 0; color: var(--ajf-ink); cursor: pointer;
	display: inline-flex; align-items: center; justify-content: center; border-radius: 6px; min-width: 32px; min-height: 32px;
}
.ajf-sub-toggle svg { transition: transform .2s ease; }
.is-open > .ajf-sub-toggle svg { transform: rotate(180deg); }
.ajf-header__phone { display: inline-flex; align-items: center; gap: .4rem; color: var(--ajf-ink); font-weight: 500; text-decoration: none; white-space: nowrap; font-size: .9rem; }
.ajf-header__phone .ajf-icon { color: var(--ajf-accent); }
body .ajf-header .ajf-header__cta { min-height: 38px; padding: .45em 1.1em; font-size: .875rem; white-space: nowrap; }

.ajf-nav-toggle {
	display: none; background: none; border: 1px solid var(--ajf-line); border-radius: 10px;
	width: 48px; height: 48px; align-items: center; justify-content: center; color: var(--ajf-ink); cursor: pointer; padding: 0;
}
.ajf-nav-toggle .ajf-icon { width: 24px; height: 24px; }
.ajf-nav-toggle__close { display: none; }
.is-nav-open .ajf-nav-toggle__open { display: none; }
.is-nav-open .ajf-nav-toggle__close { display: inline-flex; }

/* Desktop navigation */
@media (min-width: 1081px) {
	.ajf-nav { display: flex; align-items: center; gap: 1.75rem; }
	.ajf-nav__list { display: flex; align-items: center; gap: 1.4rem; }
	.ajf-nav__list > li { position: relative; display: flex; align-items: center; }
	.ajf-nav__list > li > a { padding-block: 1.4rem; }
	.ajf-nav__list .sub-menu {
		position: absolute; top: 100%; left: -1rem; min-width: 260px; padding: .6rem;
		background: #fff; border: 1px solid var(--ajf-line); border-radius: var(--ajf-radius); box-shadow: var(--ajf-shadow);
		opacity: 0; visibility: hidden; transform: translateY(6px); transition: opacity .15s ease, transform .15s ease, visibility .15s;
	}
	.ajf-nav__list .sub-menu { width: max-content; min-width: 260px; max-width: 360px; }
	.ajf-nav__list .sub-menu a { display: block; padding: .6rem .8rem; border-radius: 8px; font-weight: 500; white-space: nowrap; }
	.ajf-nav__list > li:last-child .sub-menu, .ajf-nav__list > li:nth-last-child(2) .sub-menu { left: auto; right: -1rem; }
	.ajf-nav__list .sub-menu a:hover { background: var(--ajf-surface); }
	.ajf-nav__list > li:hover > .sub-menu,
	.ajf-nav__list > li:focus-within > .sub-menu,
	.ajf-nav__list > li.is-open > .sub-menu { opacity: 1; visibility: visible; transform: none; }
	.ajf-nav__actions { display: flex; align-items: center; gap: 1.25rem; }
}
@media (min-width: 1081px) and (max-width: 1240px) { .ajf-header__phone span { display: none; } .ajf-nav__list { gap: 1.1rem; } }

/* Mobile drawer */
@media (max-width: 1080px) {
	.ajf-nav-toggle { display: inline-flex; }
	.ajf-nav {
		/* --ajf-drawer-top is the header's measured bottom edge, set by nav.js on open. */
		position: fixed; top: var(--ajf-drawer-top, var(--ajf-header-h)); left: 0; right: 0; bottom: 0;
		height: auto;
		background: #fff; overflow-y: auto; overscroll-behavior: contain; z-index: 999; box-sizing: border-box;
		padding: 1rem var(--ajf-gutter) 2rem; display: none; flex-direction: column; gap: 1.5rem;
		border-top: 1px solid var(--ajf-line);
	}
	.is-nav-open .ajf-nav { display: flex; }
	.ajf-nav__list > li { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--ajf-line); }
	.ajf-nav__list > li > a { padding-block: .95rem; font-size: 1.1rem; flex: 1; }
	.ajf-sub-toggle { min-width: 48px; min-height: 48px; }
	.ajf-nav__list .sub-menu { display: none; width: 100%; padding: 0 0 .75rem .75rem; }
	.ajf-nav__list .is-open > .sub-menu { display: block; }
	.ajf-nav__list .sub-menu a { display: block; padding: .6rem 0; font-weight: 500; color: var(--ajf-text); }
	.ajf-nav__actions { display: flex; flex-direction: column; align-items: stretch; gap: .75rem; }
	.ajf-header__phone { justify-content: center; min-height: 48px; border: 1px solid var(--ajf-line); border-radius: 999px; }
	body .ajf-header .ajf-header__cta { width: 100%; min-height: 48px; font-size: 1rem; }
}

/* --------------------------------------------------------------------------
   Footer (light, Apple-style)
   -------------------------------------------------------------------------- */
.ajf-footer { background: var(--ajf-surface); color: var(--ajf-muted); font-size: .9rem; border-top: 1px solid var(--ajf-line); }
.ajf-footer a { color: #424245; text-decoration: none; }
.ajf-footer a:hover { color: var(--ajf-accent); text-decoration: underline; }
.ajf-footer__inner {
	max-width: calc(var(--ajf-max) + 2 * var(--ajf-gutter)); margin-inline: auto; padding: calc(var(--ajf-section) * .6) var(--ajf-gutter) 2.5rem;
	display: grid; gap: 2.5rem; grid-template-columns: 1fr; box-sizing: border-box;
}
@media (min-width: 768px) { .ajf-footer__inner { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1025px) { .ajf-footer__inner { grid-template-columns: 1.6fr 1fr 1fr 1.2fr; } }
.ajf-footer__name { font-family: var(--ajf-font-head); font-weight: 600; font-size: 1.2rem; letter-spacing: -.02em; color: var(--ajf-ink); margin-bottom: .5rem; }
.ajf-footer__about { max-width: 42ch; }
.ajf-footer__heading { font-family: var(--ajf-font-body); color: var(--ajf-ink); font-size: .875rem; font-weight: 600; margin-bottom: .85rem; }
.ajf-footer__links { list-style: none; margin: 0; padding: 0; display: grid; gap: .55rem; }
.ajf-footer__contact { font-style: normal; display: grid; gap: .6rem; margin: 1.25rem 0; }
.ajf-footer__contact a, .ajf-footer__contact span { display: inline-flex; gap: .6rem; align-items: flex-start; color: #424245; }
.ajf-footer__contact .ajf-icon { color: var(--ajf-accent); flex-shrink: 0; margin-top: .15em; }
.ajf-social { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.ajf-social a {
	display: inline-flex; width: 44px; height: 44px; align-items: center; justify-content: center;
	border-radius: 50%; background: var(--ajf-white); color: var(--ajf-ink); box-shadow: inset 0 0 0 1px var(--ajf-line);
	transition: background-color .15s ease, color .15s ease;
}
.ajf-social a:hover { background: var(--ajf-accent); color: #fff; box-shadow: none; }
.ajf-footer__bar {
	border-top: 1px solid var(--ajf-line);
	max-width: calc(var(--ajf-max) + 2 * var(--ajf-gutter)); margin-inline: auto; padding: 1.25rem var(--ajf-gutter);
	display: flex; flex-wrap: wrap; gap: .5rem 2rem; justify-content: space-between; font-size: .8rem; box-sizing: border-box;
}
.ajf-footer__bar p { margin: 0; }

/* --------------------------------------------------------------------------
   Page hero, breadcrumbs, search
   -------------------------------------------------------------------------- */
.ajf-page-hero { background: var(--ajf-surface); padding-block: 3.5rem 3.25rem; }
@media (min-width: 1025px) { .ajf-page-hero { padding-block: 5.5rem 5rem; } }
.ajf-page-hero__title { margin-bottom: .35em; }
.ajf-page-hero__lead { font-size: 1.15rem; color: var(--ajf-muted); max-width: 62ch; }
.ajf-breadcrumbs { font-size: .875rem; color: var(--ajf-muted); margin-bottom: 1rem; }
.ajf-breadcrumbs p { margin: 0; }
.ajf-breadcrumbs a { color: var(--ajf-accent); }
.ajf-breadcrumbs .separator { margin-inline: .35em; color: #86868b; }
.ajf-builder-page .ajf-breadcrumbs { margin-bottom: 0; }

.ajf-search { display: flex; max-width: 520px; border: 1px solid var(--ajf-line); border-radius: 999px; background: #fff; overflow: hidden; }
.ajf-search:focus-within { outline: 3px solid var(--ajf-accent); outline-offset: 2px; }
.ajf-search__input { flex: 1; border: 0 !important; padding: .75rem 1.1rem !important; font-size: 1rem; background: transparent; min-height: 48px; outline: none; }
.ajf-search__btn { border: 0; background: var(--ajf-accent); color: #fff; width: 56px; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; }
.ajf-search__btn:hover { background: var(--ajf-accent-dark); }
.ajf-archive__tools { margin-top: 1.5rem; }
.ajf-topics ul { list-style: none; display: flex; flex-wrap: wrap; gap: .5rem; margin: 1.25rem 0 0; padding: 0; }
.ajf-topics .ajf-pill { padding: .45em 1em; font-size: .875rem; min-height: 24px; }

/* --------------------------------------------------------------------------
   Post cards & grids
   -------------------------------------------------------------------------- */
.ajf-post-grid { display: grid; gap: 1.5rem; grid-template-columns: 1fr; }
@media (min-width: 640px) { .ajf-post-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1025px) { .ajf-post-grid { grid-template-columns: repeat(3, 1fr); gap: 2rem; } }
.ajf-card-post {
	display: flex; flex-direction: column; background: var(--ajf-surface); border: 0;
	border-radius: var(--ajf-radius); overflow: hidden; transition: box-shadow .3s ease, transform .3s ease, background-color .3s ease;
}
.ajf-card-post:hover { background: var(--ajf-white); box-shadow: var(--ajf-shadow); transform: translateY(-4px); }
.ajf-card-post__media { display: block; aspect-ratio: 16 / 9; background: var(--ajf-surface); overflow: hidden; }
.ajf-card-post__img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ajf-card-post__img--empty { display: block; height: 100%; background: linear-gradient(135deg, var(--ajf-ink) 0%, var(--ajf-accent) 100%); }
.ajf-card-post__body { padding: 1.4rem 1.5rem 1.6rem; display: flex; flex-direction: column; gap: .6rem; flex: 1; }
.ajf-card-post__body .ajf-pill { align-self: flex-start; }
.ajf-card-post__title { font-size: 1.2rem; line-height: 1.25; letter-spacing: -.02em; font-weight: 600; margin: 0; }
.ajf-card-post__title a { color: var(--ajf-ink); text-decoration: none; }
.ajf-card-post__title a:hover { color: var(--ajf-accent); text-decoration: underline; }
.ajf-card-post__excerpt { color: var(--ajf-muted); font-size: .95rem; margin: 0; }
.ajf-card-post__meta { margin: auto 0 0; padding-top: .4rem; font-size: .85rem; color: var(--ajf-muted); }

/* Pagination */
.ajf-pagination { margin-top: 3rem; }
.ajf-pagination .nav-links { display: flex; flex-wrap: wrap; gap: .5rem; justify-content: center; align-items: center; }
.ajf-pagination .page-numbers {
	display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 0 .9rem;
	border: 1px solid var(--ajf-line); border-radius: 999px; text-decoration: none; color: var(--ajf-ink); font-weight: 600;
}
.ajf-pagination .page-numbers.current { background: var(--ajf-ink); border-color: var(--ajf-ink); color: #fff; }
.ajf-pagination a.page-numbers:hover { border-color: var(--ajf-accent); color: var(--ajf-accent); }
.ajf-pagination .dots { border: 0; }

/* --------------------------------------------------------------------------
   Article
   -------------------------------------------------------------------------- */
.ajf-article__header { padding-block: 2.5rem 1.75rem; }
@media (min-width: 1025px) { .ajf-article__header { padding-block: 3.5rem 2.25rem; } }
.ajf-article__header .ajf-pill { margin-bottom: 1rem; }
.ajf-article__title { font-size: clamp(1.9rem, 1.4rem + 2.2vw, 3rem); }
.ajf-article__meta { display: flex; flex-wrap: wrap; gap: .4rem 1.25rem; color: var(--ajf-muted); font-size: .925rem; margin: 0; }
.ajf-article__meta span { display: inline-flex; align-items: center; gap: .35rem; }
.ajf-article__meta .ajf-icon { width: 16px; height: 16px; }
.ajf-article__image { margin: 0 auto 2.5rem; }
.ajf-article__image img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: var(--ajf-radius); display: block; }

.ajf-prose { font-size: 1.125rem; line-height: 1.75; }
.ajf-prose > * { max-width: 70ch; }
.ajf-prose h2 { font-size: clamp(1.45rem, 1.2rem + 1vw, 1.9rem); margin-top: 2.2em; }
.ajf-prose h3 { font-size: clamp(1.2rem, 1.1rem + .5vw, 1.4rem); margin-top: 1.8em; }
.ajf-prose h4 { margin-top: 1.5em; }
.ajf-prose a { color: var(--ajf-accent); text-decoration: underline; text-decoration-thickness: 1px; }
.ajf-prose a:hover { text-decoration-thickness: 2px; }
.ajf-prose ul, .ajf-prose ol { padding-left: 1.4em; margin-block: 0 1.2em; }
.ajf-prose li { margin-bottom: .45em; }
.ajf-prose li::marker { color: var(--ajf-accent); }
.ajf-prose img { border-radius: var(--ajf-radius-sm); height: auto; }
.ajf-prose figure, .ajf-prose .wp-caption { margin: 2rem 0; max-width: 100%; }
.ajf-prose figcaption, .ajf-prose .wp-caption-text { font-size: .875rem; color: var(--ajf-muted); margin-top: .5rem; }
.ajf-prose blockquote {
	margin: 2rem 0; padding: 1rem 1.5rem; border-left: 4px solid var(--ajf-accent);
	background: var(--ajf-surface); border-radius: 0 var(--ajf-radius-sm) var(--ajf-radius-sm) 0; font-size: 1.15rem;
}
.ajf-prose table { width: 100%; border-collapse: collapse; font-size: .975rem; margin: 1.5rem 0; display: block; overflow-x: auto; }
.ajf-prose th, .ajf-prose td { border: 1px solid var(--ajf-line); padding: .6rem .8rem; text-align: left; vertical-align: top; }
.ajf-prose th { background: var(--ajf-surface); font-weight: 700; color: var(--ajf-ink); }
.ajf-prose pre, .ajf-prose code { font-size: .9em; background: var(--ajf-surface); border-radius: 6px; }
.ajf-prose code { padding: .1em .35em; }
.ajf-prose pre { padding: 1rem; overflow-x: auto; }
.ajf-prose iframe, .ajf-prose video { max-width: 100%; }
.ajf-prose .alignwide, .ajf-prose .alignfull, .ajf-prose .wp-block-image, .ajf-prose .wp-block-table { max-width: 100%; }
.ajf-prose .aligncenter { margin-inline: auto; display: block; }
@media (min-width: 768px) {
	.ajf-prose .alignleft { float: left; margin: .3em 1.5em 1em 0; max-width: 50%; }
	.ajf-prose .alignright { float: right; margin: .3em 0 1em 1.5em; max-width: 50%; }
}
.ajf-prose::after { content: ""; display: table; clear: both; }

/* Normalise hand-styled article content to the site typography and palette */
.ajf-article__content *:not(code, pre, kbd, samp, code *, pre *, svg, svg *, i[class*="fa"]) { font-family: var(--ajf-font-body) !important; }
/* Long URLs used as link text must wrap on phones. */
.ajf-prose { overflow-wrap: break-word; }
.ajf-prose a { overflow-wrap: anywhere; word-break: break-word; }
.ajf-article__content :is(h1, h2, h3, h4, h5, h6) { font-family: var(--ajf-font-head) !important; color: var(--ajf-ink) !important; letter-spacing: -.01em; }
.ajf-article__content :is(code, pre, kbd, samp, code *, pre *) { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace !important; }
.ajf-article__content > .wrap, .ajf-article__content .wrap { max-width: none; padding: 0; }
/* Warm beige / brown inline backgrounds → site surface; very dark ones → ink */
.ajf-article__content :is([style*="#F5F0E6" i], [style*="#FAF8F4" i], [style*="#F0EDE6" i], [style*="#E8E3DA" i], [style*="#fffdf5" i], [style*="#f3e6c8" i], [style*="#fbfaf6" i]) { background-color: var(--ajf-surface) !important; border-color: var(--ajf-line) !important; }
.ajf-article__content :is([style*="background:#1A1714" i], [style*="background: #1A1714" i], [style*="background:#0F2A1A" i], [style*="background: #0F2A1A" i], [style*="background-color:#1A1714" i], [style*="background-color:#0F2A1A" i]) { background-color: var(--ajf-ink) !important; }
.ajf-article__content [style*="border"][style*="#E8E3DA" i] { border-color: var(--ajf-line) !important; }

/* Related articles (AJF SEO Tweaks mu-plugin) */
.ajf-related { margin-top: 3rem; padding: 1.5rem 1.75rem; border: 1px solid var(--ajf-line); border-radius: var(--ajf-radius); }
.ajf-related h2 { font-size: 1.2rem; margin: 0 0 .75rem; }
.ajf-related ul { margin: 0; padding-left: 1.2em; }
.ajf-related li { margin-bottom: .5em; font-size: 1.025rem; }

.ajf-service-cta {
	margin: 3rem 0 2rem; padding: 2rem; border-radius: var(--ajf-radius); color: var(--ajf-on-dark);
	background-color: var(--ajf-ink); background-image: radial-gradient(120% 140% at 100% 0%, rgba(48, 209, 88, .22) 0%, transparent 55%);
}
.ajf-service-cta__title { font-family: var(--ajf-font-head); color: #fff; font-weight: 700; letter-spacing: -.02em; font-size: 1.5rem; line-height: 1.25; margin-bottom: .5rem; }
.ajf-service-cta__actions { display: flex; flex-wrap: wrap; gap: .75rem; margin: 1.25rem 0 0; }
.ajf-service-cta .ajf-btn--ghost { color: #fff; }
/* Same button language as the page CTA band: bright green primary on dark, full-width on phones */
body .ajf-service-cta .ajf-btn--primary { background: var(--ajf-bright); color: var(--ajf-ink); }
body .ajf-service-cta .ajf-btn--primary:hover { background: #5ee07c; color: var(--ajf-ink); }
@media (max-width: 767px) {
	.ajf-service-cta { padding: 1.75rem 1.25rem; }
	.ajf-service-cta__actions .ajf-btn { width: 100%; }
}
.ajf-service-cta .ajf-btn--ghost:hover { background: #fff; color: var(--ajf-ink); border-color: #fff; }

/* Author box: styled by mu-plugins/ajf-admin/author-box.css (Users → Author Bio → Design). */

.ajf-postnav { margin: 2rem 0 4rem; }
.ajf-postnav .nav-links { display: grid; gap: 1rem; grid-template-columns: 1fr; }
@media (min-width: 640px) { .ajf-postnav .nav-links { grid-template-columns: 1fr 1fr; } .ajf-postnav .nav-next { text-align: right; } }
.ajf-postnav a { display: block; padding: 1rem 1.25rem; border: 1px solid var(--ajf-line); border-radius: var(--ajf-radius); text-decoration: none; height: 100%; box-sizing: border-box; }
.ajf-postnav a:hover { border-color: var(--ajf-accent); }
.ajf-postnav__label { display: block; font-size: .8rem; text-transform: uppercase; letter-spacing: .1em; color: var(--ajf-muted); font-weight: 700; margin-bottom: .25rem; }
.ajf-postnav__title { color: var(--ajf-ink); font-weight: 600; }

/* 404 */
.ajf-404__links { list-style: none; padding: 0; margin: 0 0 3rem; display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
.ajf-404__links a { display: flex; flex-direction: column; gap: .25rem; text-decoration: none; }
.ajf-404__links strong { color: var(--ajf-ink); font-size: 1.1rem; }
.ajf-404__links span { color: var(--ajf-muted); font-size: .95rem; }

/* --------------------------------------------------------------------------
   Elementor Free utilities (set in Advanced → CSS Classes)
   -------------------------------------------------------------------------- */
.elementor-widget-heading .elementor-heading-title { font-family: var(--ajf-font-head); }
.e-con.ajf-section { --padding-top: var(--ajf-section); --padding-bottom: var(--ajf-section); --padding-left: var(--ajf-gutter); --padding-right: var(--ajf-gutter); }
.e-con.ajf-section--tight { --padding-top: calc(var(--ajf-section) * .5); --padding-bottom: calc(var(--ajf-section) * .5); }
.e-con.ajf-section--surface { background-color: var(--ajf-surface); }
.e-con.ajf-section--dark { background-color: var(--ajf-ink); color: var(--ajf-on-dark); }
.ajf-section--dark .elementor-heading-title,
.ajf-section--dark h2, .ajf-section--dark h3 { color: #fff; }
.ajf-section--dark .elementor-widget-text-editor, .ajf-section--dark p { color: var(--ajf-on-dark); }
.ajf-section--dark a:not(.elementor-button) { color: #fff; }
/* Hero: light Apple-style stage with a slow-moving green glow (see "Motion" below). */
.e-con.ajf-hero { position: relative; isolation: isolate; overflow: hidden; background-color: var(--ajf-surface); background-image: none; color: var(--ajf-text); }
.e-con.ajf-hero::before {
	content: ""; position: absolute; inset: -20% -10% auto auto; width: 70%; aspect-ratio: 1; z-index: -1; pointer-events: none;
	background: radial-gradient(closest-side, rgba(48, 209, 88, .22), rgba(48, 209, 88, 0) 70%);
	animation: ajf-glow 18s ease-in-out infinite alternate;
}
.e-con.ajf-hero::after {
	content: ""; position: absolute; inset: auto auto -30% -15%; width: 55%; aspect-ratio: 1; z-index: -1; pointer-events: none;
	background: radial-gradient(closest-side, rgba(30, 122, 53, .12), rgba(30, 122, 53, 0) 70%);
	animation: ajf-glow 22s ease-in-out infinite alternate-reverse;
}
.ajf-hero .elementor-heading-title { color: var(--ajf-ink); }
.ajf-hero h1.elementor-heading-title { font-size: var(--ajf-h1); line-height: 1.05; letter-spacing: -.035em; }
.ajf-hero .elementor-widget-text-editor { color: var(--ajf-muted); }
.ajf-hero .ajf-breadcrumbs, .ajf-hero .ajf-breadcrumbs a { color: var(--ajf-muted); }
.ajf-hero .ajf-breadcrumbs a { text-decoration: underline; }
.ajf-hero .elementor-widget-image img { border-radius: 28px; box-shadow: 0 30px 60px -20px rgba(0, 0, 0, .25); }

.ajf-lead, .ajf-lead p { font-size: clamp(1.075rem, 1rem + .35vw, 1.25rem); line-height: 1.6; }
.ajf-muted, .ajf-muted p { color: var(--ajf-muted); }
:is(.ajf-section--dark, .ajf-cta-band) :is(.ajf-muted, .ajf-muted p) { color: var(--ajf-on-dark); }
.ajf-center, .ajf-center .elementor-heading-title { text-align: center; }
.e-con.ajf-measure { max-width: 780px; --width: 100%; }
.e-con.ajf-measure.ajf-center { margin-inline: auto; align-self: center; }
.ajf-measure .elementor-widget-heading + .elementor-widget-text-editor { margin-top: .25rem; }

/* Button rows size to their content (Elementor gives nested containers 100% width). */
.e-con.ajf-btn-row { --width: auto; width: auto; flex: 0 0 auto; }
@media (max-width: 767px) { .e-con.ajf-btn-row { --width: 100%; width: 100%; } .ajf-btn-row .elementor-widget-button, .ajf-btn-row .elementor-button { width: 100%; } }

/* Dark surfaces: eyebrow, ghost buttons */
.ajf-cta-band .ajf-eyebrow .elementor-heading-title { color: var(--ajf-bright) !important; }
body :is(.ajf-section--dark, .ajf-cta-band) .ajf-btn-ghost .elementor-button { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .7); }
body :is(.ajf-section--dark, .ajf-cta-band) .ajf-btn-ghost .elementor-button:hover { background: #fff; color: var(--ajf-ink); border-color: #fff; }
body :is(.ajf-service-cta) .ajf-btn--ghost { color: #fff; }

/* Trust strip */
@media (min-width: 768px) { .e-con.ajf-trust > .elementor-widget { flex: 1 1 220px; } }
.ajf-trust .elementor-icon-box-wrapper { display: flex; gap: 14px; align-items: flex-start; text-align: left; }
.ajf-trust .elementor-icon { font-size: 22px !important; color: var(--ajf-accent) !important; fill: var(--ajf-accent); }
.ajf-trust .elementor-icon svg { width: 24px; height: 24px; fill: var(--ajf-accent); }
.ajf-trust .elementor-icon-box-title { font-family: var(--ajf-font-head); font-weight: 700; color: var(--ajf-ink); font-size: 1.05rem; margin: 0 0 .15rem; }
.ajf-trust .elementor-icon-box-title a { color: inherit; }
.ajf-trust .elementor-icon-box-description { margin: 0; font-size: .925rem; color: var(--ajf-muted); }

.e-con.ajf-card,
.ajf-card {
	background: var(--ajf-surface); border: 1px solid transparent; border-radius: var(--ajf-radius);
	--padding-top: 2rem; --padding-bottom: 2rem; --padding-left: 1.85rem; --padding-right: 1.85rem;
	padding: 2rem 1.85rem; box-sizing: border-box; transition: box-shadow .3s ease, transform .3s ease, background-color .3s ease;
}
.ajf-section--surface .ajf-card, .ajf-hero .ajf-card { background: var(--ajf-white); }
.ajf-card:hover { background: var(--ajf-white); box-shadow: var(--ajf-shadow); transform: translateY(-4px); }
.ajf-section--dark .e-con.ajf-card { background: var(--ajf-ink-2); border-color: rgba(255, 255, 255, .08); }
.ajf-section--dark .ajf-card:hover { background: #3a3a3c; }

/* Card grids on containers: 1 → 2 → 3/4 columns */
.e-con.ajf-grid { --flex-direction: row; --flex-wrap: wrap; --gap: 1.25rem 1.25rem; --row-gap: 1.25rem; --column-gap: 1.25rem; }
.e-con.ajf-grid > .e-con { --width: 100%; }
@media (min-width: 768px) {
	.e-con.ajf-grid-2 > .e-con, .e-con.ajf-grid-3 > .e-con, .e-con.ajf-grid-4 > .e-con { --width: calc(50% - .625rem); }
}
@media (min-width: 1025px) {
	.e-con.ajf-grid { --gap: 1.75rem 1.75rem; --row-gap: 1.75rem; --column-gap: 1.75rem; }
	.e-con.ajf-grid-2 > .e-con { --width: calc(50% - .875rem); }
	.e-con.ajf-grid-3 > .e-con { --width: calc(33.333% - 1.17rem); }
	.e-con.ajf-grid-4 > .e-con { --width: calc(25% - 1.32rem); }
}

/* Icon boxes in cards */
.ajf-card .elementor-icon-box-wrapper { text-align: left; }
.ajf-card .elementor-icon-box-icon { margin-bottom: 1rem !important; }
.ajf-card .elementor-icon { font-size: 26px !important; width: 52px; height: 52px; display: inline-flex !important; align-items: center; justify-content: center; border-radius: 14px; background: var(--ajf-tint); color: var(--ajf-accent) !important; fill: var(--ajf-accent) !important; transition: transform .3s ease; }
.ajf-card:hover .elementor-icon { transform: scale(1.08) rotate(-4deg); }
.ajf-card .elementor-icon svg { width: 26px; height: 26px; fill: var(--ajf-accent); }
.ajf-section--dark .ajf-card .elementor-icon { background: rgba(48, 209, 88, .14); color: var(--ajf-bright) !important; }
.ajf-section--dark .ajf-card .elementor-icon svg { fill: var(--ajf-bright); }
.ajf-card .elementor-icon-box-title { font-size: var(--ajf-h3); margin-bottom: .5rem; }
.ajf-card .elementor-icon-box-title a { color: inherit; text-decoration: none; }
.ajf-card .elementor-icon-box-description { color: var(--ajf-muted); margin: 0; }
.ajf-section--dark .ajf-card .elementor-icon-box-description { color: var(--ajf-on-dark); }
.ajf-link-arrow a { font-weight: 600; text-decoration: none; }
.ajf-link-arrow a::after { content: " →"; }
.ajf-link-arrow a:hover { text-decoration: underline; }

/* Check lists (Icon List widget) */
.ajf-checklist .elementor-icon-list-item { align-items: flex-start !important; }
.ajf-checklist .elementor-icon-list-icon { margin-top: .3em; }
.ajf-checklist .elementor-icon-list-icon svg { fill: var(--ajf-accent); width: 18px !important; height: 18px !important; }
.ajf-checklist .elementor-icon-list-text { color: var(--ajf-text); }
.ajf-section--dark .ajf-checklist .elementor-icon-list-text { color: var(--ajf-on-dark); }
.ajf-section--dark .ajf-checklist .elementor-icon-list-icon svg { fill: var(--ajf-bright); }

/* Steps */
.ajf-step-num .elementor-heading-title {
	display: inline-flex; width: 44px; height: 44px; align-items: center; justify-content: center;
	border-radius: 50%; background: var(--ajf-accent); color: #fff !important; font-size: 1rem !important;
}

/* Stats / trust bar */
.ajf-stat .elementor-heading-title { font-size: clamp(1.6rem, 1.3rem + 1.2vw, 2.25rem) !important; color: #fff; line-height: 1.1; }
.ajf-stat-label, .ajf-stat-label p { font-size: .9rem; color: var(--ajf-on-dark); margin: 0; }
.ajf-rating { display: inline-flex; align-items: center; gap: .4rem; flex-wrap: wrap; }
.ajf-rating__stars { display: inline-flex; color: var(--ajf-amber); }
.ajf-rating__stars .ajf-icon { width: 18px; height: 18px; }

/* Pricing */
.e-con.ajf-plan { position: relative; }
.e-con.ajf-plan--featured { border: 2px solid var(--ajf-accent); box-shadow: var(--ajf-shadow); }
.ajf-plan-price .elementor-heading-title { font-size: clamp(1.8rem, 1.5rem + 1vw, 2.4rem) !important; color: var(--ajf-ink); }
.ajf-plan-price small { font-family: var(--ajf-font-body); font-size: 1rem; font-weight: 600; color: var(--ajf-muted); margin-left: .15em; letter-spacing: 0; }
.e-con.ajf-plan > .elementor-widget-button { margin-top: auto; padding-top: .5rem; }
.ajf-plan-badge .elementor-heading-title {
	display: inline-block; background: var(--ajf-accent); color: #fff !important; font-size: .75rem !important;
	padding: .35em .9em; border-radius: 999px; letter-spacing: .02em; font-family: var(--ajf-font-body) !important;
}

/* Tables (HTML widget) */
.ajf-table-wrap { overflow-x: auto; border: 1px solid var(--ajf-line); border-radius: var(--ajf-radius); background: #fff; }
.ajf-table { width: 100%; border-collapse: collapse; font-size: .975rem; min-width: 640px; }
.ajf-table th, .ajf-table td { padding: 1rem 1.15rem; text-align: left; vertical-align: top; border-bottom: 1px solid var(--ajf-line); }
.ajf-table thead th { background: var(--ajf-ink); color: #fff; font-size: .8rem; letter-spacing: .1em; text-transform: uppercase; }
.ajf-table tbody th { color: var(--ajf-ink); font-weight: 700; white-space: nowrap; }
.ajf-table tbody tr:last-child > * { border-bottom: 0; }
/* Small screens: table rows become stacked cards with labelled cells */
@media (max-width: 767px) {
	.ajf-table { min-width: 0; }
	.ajf-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
	.ajf-table tr { display: block; border-bottom: 1px solid var(--ajf-line); padding: .75rem 0; }
	.ajf-table th, .ajf-table td { display: block; border: 0; padding: .3rem 1rem; white-space: normal; }
	.ajf-table td[data-label]::before { content: attr(data-label) ": "; font-weight: 700; color: var(--ajf-ink); }
}

/* --- Courses page (Sparks Training Series) --- */
.ajf-accent { color: var(--ajf-accent); }
:is(.ajf-section--dark, .ajf-cta-band) .ajf-accent { color: var(--ajf-bright); }
.e-con.ajf-measure--wide { max-width: 900px; }
.ajf-small, .ajf-small p { font-size: .875rem; }
.ajf-hero .ajf-small, .ajf-hero .ajf-small a { color: var(--ajf-muted); }
.ajf-hero .ajf-loop { color: var(--ajf-muted); }
.ajf-hero .ajf-loop span { color: var(--ajf-accent); }
.ajf-hero .ajf-stats__item { background: var(--ajf-white); border-color: transparent; box-shadow: var(--ajf-shadow); }
.ajf-hero .ajf-stats__num { color: var(--ajf-ink); }
.ajf-hero .ajf-stats__label { color: var(--ajf-muted); }
.ajf-loop { margin: .25rem 0 0; color: var(--ajf-on-dark); font-weight: 600; font-size: .95rem; letter-spacing: .01em; }
.ajf-loop span { color: var(--ajf-bright); margin-inline: .35rem; }

.ajf-stats { display: grid; grid-template-columns: repeat(2, 1fr); gap: .75rem; max-width: 880px; margin-top: .5rem; }
@media (min-width: 768px) { .ajf-stats { grid-template-columns: repeat(4, 1fr); gap: 1rem; } }
.ajf-stats__item { background: var(--ajf-ink-2); border: 1px solid rgba(255, 255, 255, .08); border-radius: var(--ajf-radius); padding: 1.1rem 1.2rem; display: flex; flex-direction: column; gap: .2rem; }
.ajf-stats__num { font-family: var(--ajf-font-head); font-weight: 700; font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem); color: #fff; line-height: 1.1; }
.ajf-stats__label { font-size: .875rem; color: var(--ajf-on-dark); }

.ajf-facts { margin: 0; display: grid; }
.ajf-facts > div { display: flex; justify-content: space-between; gap: 1rem; padding: .6rem 0; border-bottom: 1px dashed var(--ajf-line); }
.ajf-facts dt { color: var(--ajf-muted); }
.ajf-facts dd { margin: 0; font-weight: 700; color: var(--ajf-ink); text-align: right; }

.ajf-filters { display: flex; flex-wrap: wrap; gap: .5rem; }
body .ajf-chip, body .ajf-goal {
	font: 600 .925rem/1.2 var(--ajf-font-body); color: var(--ajf-ink); background: #fff;
	border: 1px solid var(--ajf-line); border-radius: 999px; padding: .65rem 1.1rem; min-height: 44px; cursor: pointer;
	transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}
body .ajf-chip:hover, body .ajf-goal:hover { border-color: var(--ajf-accent); color: var(--ajf-accent); background: #fff; }
body .ajf-chip[aria-pressed="true"], body .ajf-goal[aria-pressed="true"] { background: var(--ajf-ink); border-color: var(--ajf-ink); color: #fff; }

.ajf-course__top { display: flex; align-items: flex-start; gap: .85rem; position: relative; }
.ajf-course__badge {
	flex-shrink: 0; width: 52px; height: 52px; border-radius: 12px; display: inline-flex; align-items: center; justify-content: center;
	background: var(--ajf-tint); color: var(--ajf-accent-dark); font: 700 .8rem/1 var(--ajf-font-head); letter-spacing: .02em;
}
.ajf-course__kicker { margin: 0 0 .15rem; font-size: .72rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--ajf-accent); padding-right: 5.5rem; }
.ajf-course__name { margin: 0; font-size: 1.3rem; }
.ajf-course__name a { color: var(--ajf-ink); text-decoration: none !important; }
.ajf-course__name a:hover { color: var(--ajf-accent); }
.ajf-course__top .ajf-pill { position: absolute; top: 0; right: 0; }
.ajf-pill--amber { background: #fff4dd; color: #7a4b00; }
.elementor-widget-text-editor ul.ajf-chips, ul.ajf-chips { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .4rem; }
.ajf-portrait--square img { border-radius: var(--ajf-radius); }
.ajf-chips li { background: var(--ajf-surface); border: 1px solid var(--ajf-line); border-radius: 8px; padding: .25rem .6rem; font-size: .825rem; font-weight: 600; color: var(--ajf-text); }
.ajf-chips--links li { padding: 0; background: none; border: 0; }
.ajf-chips--links a { display: inline-block; padding: .45rem .9rem; border: 1px solid var(--ajf-line); border-radius: 999px; text-decoration: none !important; font-weight: 600; background: #fff; }
.ajf-chips--links a:hover { border-color: var(--ajf-accent); }
.e-con.ajf-course > .ajf-course__go { margin-top: auto; }
.ajf-course-empty { text-align: center; color: var(--ajf-muted); }

.ajf-table--compare { min-width: 860px; }
.ajf-table--compare tbody th a { font-weight: 700; }

.e-con.ajf-picker { --padding-top: 2rem; --padding-bottom: 2rem; --padding-left: 2rem; --padding-right: 2rem; border-left: 4px solid var(--ajf-accent); }
.ajf-goals { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: .5rem; }
.ajf-answer { margin-top: 1.25rem; padding: 1rem 1.25rem; background: var(--ajf-surface); border-radius: var(--ajf-radius-sm); }
.ajf-answer p { margin: 0; }

.ajf-steps-list { list-style: none; counter-reset: s; margin: 0; padding: 0; display: grid; gap: .85rem; }
.ajf-steps-list li { counter-increment: s; position: relative; padding: 1rem 1.1rem 1rem 3.6rem; background: var(--ajf-ink-2); border: 1px solid rgba(255, 255, 255, .08); border-radius: var(--ajf-radius); display: flex; flex-direction: column; gap: .15rem; }
.ajf-steps-list li::before { content: counter(s); position: absolute; left: 1rem; top: 1rem; width: 30px; height: 30px; border-radius: 50%; background: var(--ajf-bright); color: var(--ajf-ink); font: 700 .9rem/30px var(--ajf-font-head); text-align: center; }
.ajf-steps-list strong { color: #fff; }
.ajf-steps-list span { color: var(--ajf-on-dark); font-size: .95rem; }

.ajf-portrait--square img { aspect-ratio: 1 / 1 !important; }
.e-con.ajf-plans-2 > .e-con { --width: 100%; }
@media (min-width: 768px) { .e-con.ajf-plans-2 > .e-con { --width: calc(50% - .9rem); max-width: 440px; } }

/* Portfolio cards */
.ajf-work-card .elementor-widget-image img { aspect-ratio: 16 / 10; object-fit: cover; object-position: top; border-radius: var(--ajf-radius-sm); width: 100%; border: 1px solid var(--ajf-line); }

/* Headshot */
.ajf-portrait img { border-radius: var(--ajf-radius); aspect-ratio: 4 / 5; object-fit: cover; width: 100%; }
@media (max-width: 1024px) { .ajf-portrait img { aspect-ratio: 4 / 3; object-position: 50% 25%; } }
.ajf-rounded img { border-radius: var(--ajf-radius); width: 100%; }

/* FAQ (<details>, used via Text Editor/HTML) */
.ajf-faq details { border-bottom: 1px solid var(--ajf-line); }
.ajf-faq summary {
	cursor: pointer; list-style: none; padding: 1.15rem 2.5rem 1.15rem 0; position: relative;
	font-family: var(--ajf-font-head); font-weight: 700; color: var(--ajf-ink); font-size: 1.1rem;
}
.ajf-faq summary::-webkit-details-marker { display: none; }
.ajf-faq summary::after {
	content: ""; position: absolute; right: .25rem; top: 50%; width: 12px; height: 12px; margin-top: -8px;
	border-right: 2px solid var(--ajf-accent); border-bottom: 2px solid var(--ajf-accent); transform: rotate(45deg); transition: transform .2s ease;
}
.ajf-faq details[open] summary::after { transform: rotate(-135deg); margin-top: -2px; }
.ajf-faq details > div { padding: 0 0 1.25rem; color: var(--ajf-text); }
.ajf-faq details > div p:last-child { margin-bottom: 0; }

/* Closing CTA band */
.e-con.ajf-cta-band {
	--padding-top: 3rem; --padding-bottom: 3rem; --padding-left: 1.25rem; --padding-right: 1.25rem;
	--gap: 1rem; --row-gap: 1rem;
}
@media (min-width: 768px) { .e-con.ajf-cta-band { --padding-top: 4rem; --padding-bottom: 4rem; --padding-left: 3rem; --padding-right: 3rem; } }
.e-con.ajf-cta-band > .elementor-widget.elementor-widget-heading,
.e-con.ajf-cta-band > .elementor-widget.elementor-widget-text-editor { width: 100%; max-width: 720px !important; margin-inline: auto; } /* Elementor: .elementor.elementor .e-con > .elementor-widget { max-width:100% } */
.ajf-cta-band .elementor-heading-title { font-size: clamp(1.5rem, 1.2rem + 1.4vw, 2.25rem) !important; line-height: 1.2; }
.ajf-cta-band .elementor-widget-text-editor { font-size: 1.075rem; }
.ajf-cta-band .ajf-btn-row { margin-top: .5rem; }
@media (max-width: 767px) { .ajf-cta-band .ajf-btn-row { width: 100%; } }
.e-con.ajf-cta-band { background-color: var(--ajf-ink); background-image: radial-gradient(90% 140% at 0% 0%, rgba(48, 209, 88, .25) 0%, transparent 60%), radial-gradient(70% 120% at 100% 100%, rgba(30, 122, 53, .3) 0%, transparent 60%); border-radius: 28px; }
.ajf-cta-band .elementor-heading-title { color: #fff; }
.ajf-cta-band .elementor-widget-text-editor { color: var(--ajf-on-dark); }

/* Reviews widget (Trustindex) — keep within our radius language */
.ti-widget .ti-review-item > .ti-inner { border-radius: var(--ajf-radius) !important; }

/* H2 styled as H3 (keeps heading order correct inside cards) */
.ajf-h3 .elementor-heading-title, .elementor-heading-title.ajf-h3 { font-size: var(--ajf-h3) !important; font-weight: 700; line-height: 1.3; }

/* Contact list */
.ajf-contact-list .elementor-icon-list-text { font-size: 1.025rem; }
.ajf-contact-list a { font-weight: 600; }

/* MetForm → design system */
.ajf-form-card .mf-form-wrapper *:not(svg, svg *, i) { font-family: var(--ajf-font-body) !important; }
.ajf-form-card .mf-input-label { font-family: var(--ajf-font-body); font-weight: 600; font-size: .95rem; color: var(--ajf-ink); letter-spacing: 0; margin-bottom: .4rem; }
.ajf-form-card .mf-input-required-indicator { color: #b42318; }
.ajf-form-card .mf-input,
.ajf-form-card .mf-input-select .mf_select__control,
.ajf-form-card textarea.mf-input {
	background: #fff !important; border: 1px solid #8e8e93 !important; border-radius: var(--ajf-radius-sm) !important;
	min-height: 48px; font-size: 1rem !important; font-family: var(--ajf-font-body) !important; color: var(--ajf-text) !important; box-shadow: none !important;
}
.ajf-form-card .mf-input:focus, .ajf-form-card .mf_select__control--is-focused { border-color: var(--ajf-accent) !important; outline: 3px solid rgba(30, 122, 53, .3) !important; outline-offset: 1px; }
.ajf-form-card .mf_select__placeholder, .ajf-form-card .mf_select__single-value { font-size: 1rem; color: var(--ajf-muted); }
.ajf-form-card .elementor-widget-container .e-con, .ajf-form-card .elementor-section .elementor-column-wrap, .ajf-form-card .elementor-column > .elementor-element-populated { padding-left: 0 !important; padding-right: 0 !important; }
body .ajf-form-card .metform-btn {
	background: var(--ajf-accent) !important; color: #fff !important; border-radius: 999px !important; border: 0 !important;
	min-height: 48px; padding: .8em 1.8em !important; font-weight: 600 !important; font-family: var(--ajf-font-body) !important; font-size: 1rem !important; box-shadow: none !important;
}
body .ajf-form-card .metform-btn:hover { background: var(--ajf-accent-dark) !important; }
.ajf-form-card .mf-error-message { color: #b42318; font-size: .875rem; }

/* Accessibility: links inside running text are underlined (not colour-only). */
.elementor-widget-text-editor p a, .elementor-widget-text-editor li a, .ajf-breadcrumbs a, .ajf-prose a { text-decoration: underline; text-underline-offset: .18em; }
.ajf-link-arrow a { text-decoration: none; }
.elementor-icon-list-text a { text-decoration: underline; text-underline-offset: .18em; }
.ajf-main:focus { outline: none; }
/* Block buttons inside articles keep their own colours. */
.ajf-prose .wp-block-button__link { text-decoration: none; }
.ajf-prose .wp-block-button__link:not(.has-text-color) { color: #fff; }
.ajf-prose .wp-block-button__link:not(.has-background) { background: var(--ajf-accent); }
.ajf-prose .is-style-outline .wp-block-button__link:not(.has-text-color) { color: var(--ajf-accent); background: transparent; }
/* MetForm select placeholder contrast */
.ajf-form-card .mf_select__placeholder { color: #6e6e73 !important; }
/* Reserve the form's height so it doesn't push content when it renders (CLS). */
.ajf-form-card .elementor-widget-metform { min-height: 640px; }
@media (max-width: 767px) { .ajf-form-card .elementor-widget-metform { min-height: 780px; } }

/* --- Components used by the rebuilt landing / industry / case-study pages --- */
.e-con.ajf-card--dark { background: var(--ajf-ink); border-color: var(--ajf-ink); color: var(--ajf-on-dark); }
.ajf-card--dark .elementor-heading-title { color: #fff; }
.ajf-card--dark .elementor-icon-list-text, .ajf-card--dark .elementor-icon-list-text strong { color: var(--ajf-on-dark); }
.ajf-card--dark .elementor-icon-list-text strong { color: #fff; }
.ajf-card--dark .elementor-icon-list-icon svg { fill: var(--ajf-bright) !important; }

.ajf-hero-trust { margin-top: .5rem; }
.ajf-hero-trust .elementor-icon-list-items { row-gap: .5rem; }
.ajf-hero-trust .elementor-icon-list-text { color: var(--ajf-muted) !important; font-size: .925rem; font-weight: 500; }
.ajf-hero-trust .elementor-icon-list-icon svg { fill: var(--ajf-accent) !important; }
:is(.ajf-section--dark, .ajf-cta-band) .ajf-hero-trust .elementor-icon-list-text { color: var(--ajf-on-dark) !important; }
:is(.ajf-section--dark, .ajf-cta-band) .ajf-hero-trust .elementor-icon-list-icon svg { fill: var(--ajf-bright) !important; }

.ajf-quote { margin: 0; padding: 0; border: 0; background: none; font-size: 1.05rem; line-height: 1.65; color: var(--ajf-text); }
.ajf-quote p { margin: 0; }
.ajf-quote__stars { color: var(--ajf-amber); letter-spacing: .1em; font-size: 1.05rem; margin: 0; }
.ajf-quote__by { margin: 0; font-size: .95rem; }
.ajf-quote__by span { color: var(--ajf-muted); font-size: .875rem; }

.ajf-label, .elementor-widget-text-editor h4.ajf-label { font-family: var(--ajf-font-body); font-size: .78rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--ajf-accent); margin: 0 0 .4rem; }
.ajf-outcome { background: var(--ajf-tint); border-left: 4px solid var(--ajf-accent); border-radius: 0 var(--ajf-radius-sm) var(--ajf-radius-sm) 0; padding: 1rem 1.25rem; }
.ajf-outcome p { margin: 0; }
.e-con.ajf-feature-case { --padding-top: 2rem; --padding-bottom: 2rem; --padding-left: 2rem; --padding-right: 2rem; }
.ajf-feature-case > .elementor-widget-heading .elementor-heading-title { font-size: clamp(1.3rem, 1.1rem + .8vw, 1.7rem) !important; }

.e-con.ajf-callout { border-left: 4px solid var(--ajf-accent); }
.ajf-card-link { font-size: 1.1rem; margin: 0 0 .35rem; line-height: 1.35; }
.ajf-card-link a { color: var(--ajf-ink); text-decoration: none !important; }
.ajf-card-link a::after { content: " →"; color: var(--ajf-accent); }
.ajf-link-card:hover .ajf-card-link a, .ajf-card-link a:hover { color: var(--ajf-accent); }
.ajf-link-card p { color: var(--ajf-muted); margin: 0; font-size: .95rem; }
/* Whole link card clickable (stretched link) */
.e-con.ajf-link-card { position: relative; }
.ajf-link-card .ajf-card-link a::before { content: ""; position: absolute; inset: 0; border-radius: var(--ajf-radius); }

.ajf-plan-price--text .elementor-heading-title { font-size: 1.35rem !important; }
.ajf-prose-sm h3 { font-size: var(--ajf-h3); margin: 1.5rem 0 .5rem; }
.ajf-prose-sm ul { padding-left: 1.2em; }
.e-con.ajf-jsonld { --padding-top: 0; --padding-bottom: 0; --min-height: 0; }

/* Elementor text editor spacing */
.elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.elementor-widget-text-editor ul { padding-left: 1.2em; }

/* --------------------------------------------------------------------------
   Apple Green: dark-surface buttons and the Glossary's own variables
   -------------------------------------------------------------------------- */
body :is(.ajf-section--dark, .ajf-cta-band, .ajf-card--dark) .ajf-btn-amber .elementor-button { background: var(--ajf-bright); color: var(--ajf-ink); }
body :is(.ajf-section--dark, .ajf-cta-band, .ajf-card--dark) .ajf-btn-amber .elementor-button:hover { background: #5ee07c; color: var(--ajf-ink); }
body .ajf-glossary {
	--ink: var(--ajf-ink); --muted: var(--ajf-muted); --line: var(--ajf-line);
	--teal: var(--ajf-accent); --teal-dark: var(--ajf-accent-dark); --tag-seo: var(--ajf-accent);
	--amber: var(--ajf-amber); --focus: var(--ajf-accent);
}

/* --------------------------------------------------------------------------
   Motion
   Hero content rises in on load (pure CSS). Below the fold, assets/js/motion.js
   adds .ajf-motion to <html> and .is-in to blocks as they scroll into view, so
   without JavaScript everything is simply visible. Reduced motion: see Base.
   -------------------------------------------------------------------------- */
@keyframes ajf-glow { from { transform: translate(0, 0) scale(1); } to { transform: translate(-14%, 12%) scale(1.18); } }
/* Hero rise moves without fading: text that starts at opacity 0 delays Largest Contentful Paint. */
@keyframes ajf-rise { from { transform: translateY(24px); } to { transform: none; } }

.e-con.ajf-hero .elementor-widget { animation: ajf-rise .9s cubic-bezier(.2, .7, .2, 1) both; }
.e-con.ajf-hero .elementor-widget:nth-child(2) { animation-delay: .08s; }
.e-con.ajf-hero .elementor-widget:nth-child(3) { animation-delay: .16s; }
.e-con.ajf-hero .elementor-widget:nth-child(4) { animation-delay: .24s; }
.e-con.ajf-hero .elementor-widget:nth-child(n+5) { animation-delay: .32s; }
.e-con.ajf-hero .elementor-widget-image { animation-duration: 1.2s; animation-delay: .2s; }

.ajf-motion .ajf-reveal {
	opacity: 0; transform: translateY(32px);
	transition: opacity .9s cubic-bezier(.2, .7, .2, 1), transform .9s cubic-bezier(.2, .7, .2, 1);
	transition-delay: var(--ajf-delay, 0s);
}
.ajf-motion .ajf-reveal.is-in { opacity: 1; transform: none; }

/* Buttons: small lift on hover, press-in on click */
body .ajf-btn:hover, body .elementor-widget-button .elementor-button:hover { transform: translateY(-1px); }
body .ajf-btn:active, body .elementor-widget-button .elementor-button:active { transform: scale(.97); }

/* Images zoom gently inside their frames */
.ajf-card-post__img, .ajf-work-card .elementor-widget-image img, .ajf-link-card .elementor-widget-image img { transition: transform .8s cubic-bezier(.2, .7, .2, 1); }
.ajf-card-post:hover .ajf-card-post__img { transform: scale(1.05); }
.ajf-work-card .elementor-widget-image .elementor-widget-container, .ajf-work-card .elementor-widget-image { overflow: hidden; border-radius: var(--ajf-radius-sm); }
.ajf-work-card:hover .elementor-widget-image img, .ajf-link-card:hover .elementor-widget-image img { transform: scale(1.05); }

/* Photos get the softer Apple radius */
.ajf-portrait img, .ajf-rounded img, .ajf-portrait--square img { border-radius: 24px; }
.e-con.ajf-section .elementor-widget-image img:not([src*="logo" i]) { border-radius: var(--ajf-radius); }
/* "Quick answer" boxes typed into posts with WordPress blue (#1e73be / #f3f8fd) → brand green */
.ajf-article__content [style*="#1e73be" i] { border-color: var(--ajf-accent) !important; }
.ajf-article__content [style*="#f3f8fd" i] { background-color: var(--ajf-tint) !important; }

/* --------------------------------------------------------------------------
   Work cards (homepage "Recent work" and portfolio): full-bleed image,
   whole card is the link to the project.
   -------------------------------------------------------------------------- */
.e-con.ajf-work-card--feature { --padding-top: 0; --padding-bottom: 0; --padding-left: 0; --padding-right: 0; padding: 0; gap: 0; overflow: hidden; position: relative; background: var(--ajf-white); }
.ajf-work-card--feature > .elementor-widget-image { margin: 0; }
.ajf-work-card--feature .elementor-widget-image img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border: 0; border-radius: 0; display: block; }
.ajf-work-card--feature .elementor-widget-image { overflow: hidden; border-radius: 0; background: var(--ajf-surface); }
.e-con.ajf-work-card__body { --padding-top: 1.5rem; --padding-bottom: 1.75rem; --padding-left: 1.75rem; --padding-right: 1.75rem; }
.ajf-work-card--feature .elementor-heading-title { font-size: clamp(1.3rem, 1.1rem + .6vw, 1.6rem); letter-spacing: -.025em; }
.ajf-work-card--feature .elementor-heading-title a { color: var(--ajf-ink); text-decoration: none; }
.ajf-work-card--feature .elementor-heading-title a::before { content: ""; position: absolute; inset: 0; z-index: 1; border-radius: var(--ajf-radius); }
.ajf-work-card--feature .elementor-heading-title a:focus-visible { outline: none; }
.ajf-work-card--feature:has(a:focus-visible) { outline: 3px solid var(--ajf-accent); outline-offset: 3px; }
.ajf-work-tag { display: flex; flex-wrap: wrap; align-items: center; gap: .25rem .6rem; margin: 0; font-size: .85rem; font-weight: 500; color: var(--ajf-muted); }
.ajf-work-tag span { color: var(--ajf-accent); font-weight: 600; }
.ajf-work-tag span::after { content: "·"; margin-left: .6rem; color: var(--ajf-muted); font-weight: 400; }
.ajf-work-more { margin: .35rem 0 0; font-weight: 600; color: var(--ajf-accent); display: inline-flex; align-items: center; gap: .35rem; }
.ajf-work-more::after { content: "→"; transition: transform .3s ease; }
.ajf-work-card--feature:hover .ajf-work-more::after { transform: translateX(4px); }
.ajf-work-card--feature:hover .elementor-widget-image img { transform: scale(1.04); }
.ajf-work-card--feature:hover { background: var(--ajf-white); }

/* --------------------------------------------------------------------------
   Portfolio: alternating project rows, tick lists, process timeline
   -------------------------------------------------------------------------- */
.e-con.ajf-project { scroll-margin-top: calc(var(--ajf-header-h) + 24px); }
@media (min-width: 1025px) {
	.e-con.ajf-project:nth-child(even) { --flex-direction: row-reverse; }
	.e-con.ajf-project > .ajf-project__media { --width: 52%; width: 52%; flex-shrink: 0; position: sticky; top: calc(var(--ajf-header-h) + 32px); align-self: flex-start; }
	.e-con.ajf-project > .ajf-project__body { --width: auto; flex: 1; }
}
.ajf-project__media .elementor-widget-image { overflow: hidden; border-radius: 28px; background: var(--ajf-surface); box-shadow: 0 30px 60px -30px rgba(0, 0, 0, .35); }
.ajf-project__media .elementor-widget-image img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; display: block; border-radius: 0 !important; transition: transform .8s cubic-bezier(.2, .7, .2, 1); }
.ajf-project:hover .ajf-project__media img { transform: scale(1.03); }
.ajf-project__title .elementor-heading-title { font-size: clamp(1.6rem, 1.25rem + 1.4vw, 2.4rem); line-height: 1.1; }
.ajf-project__text { color: var(--ajf-text); }
.ajf-project__text p { color: var(--ajf-muted); }
.ajf-project__text h3 { font-size: 1.05rem; font-weight: 600; margin: 1.5rem 0 .75rem; }
.ajf-project__stack-label { margin: 1.25rem 0 .5rem !important; font-size: .85rem; font-weight: 600; color: var(--ajf-ink) !important; }
.elementor-widget-text-editor ul.ajf-ticks, ul.ajf-ticks { list-style: none; padding: 0; margin: 0; display: grid; gap: .6rem; }
.ajf-ticks li { position: relative; padding-left: 1.85rem; }
.ajf-ticks li::before {
	content: ""; position: absolute; left: 0; top: .2em; width: 1.2rem; height: 1.2rem; border-radius: 50%;
	background: var(--ajf-tint) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%231e7a35' d='m9.5 16.2-4.2-4.2-1.4 1.4 5.6 5.6 11-11-1.4-1.4z'/%3E%3C/svg%3E") center / 70% no-repeat;
}
.ajf-project__body .elementor-widget-button { margin-top: .5rem; }

.elementor-widget-text-editor ol.ajf-process, ol.ajf-process { list-style: none; counter-reset: step; margin: 0; padding: 0; display: grid; gap: 1rem; grid-template-columns: 1fr; }
@media (min-width: 768px) { .elementor-widget-text-editor ol.ajf-process, ol.ajf-process { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1100px) { .elementor-widget-text-editor ol.ajf-process, ol.ajf-process { grid-template-columns: repeat(5, 1fr); } }
.ajf-process li { counter-increment: step; position: relative; background: var(--ajf-surface); border-radius: var(--ajf-radius); padding: 1.5rem 1.4rem 1.6rem; display: flex; flex-direction: column; gap: .4rem; }
.ajf-process li::before { content: counter(step); width: 36px; height: 36px; border-radius: 50%; background: var(--ajf-accent); color: #fff; font: 700 .95rem/36px var(--ajf-font-head); text-align: center; margin-bottom: .5rem; }
.ajf-process strong { color: var(--ajf-ink); font-size: 1.05rem; letter-spacing: -.01em; }
.ajf-process span { color: var(--ajf-muted); font-size: .95rem; }

.ajf-chips--links a:hover, .ajf-chips--links a:focus-visible { border-color: var(--ajf-accent); color: var(--ajf-accent); }
.ajf-hero .ajf-stats { margin-top: 1.25rem; }
@media (min-width: 1100px) { .elementor-widget-text-editor ol.ajf-process--4, ol.ajf-process--4 { grid-template-columns: repeat(4, 1fr); } }
.ajf-section--surface .ajf-process li { background: var(--ajf-white); }
.ajf-added-note { margin-top: 1.5rem !important; color: var(--ajf-muted); }
.ajf-prose-sm h3 { font-size: 1.15rem; font-weight: 600; }
.ajf-prose-sm .ajf-ticks + p { margin-top: 1.25rem; }
.ajf-table td a { text-decoration: underline; text-underline-offset: .18em; }
.ajf-table tbody tr, .ajf-table tbody tr:nth-child(odd) > * { background: transparent; }
/* Whole work card is clickable: the title link's overlay must size to the card,
   so the wrappers between them must not be positioned. */
.ajf-work-card--feature .e-con.ajf-work-card__body,
.ajf-work-card--feature .elementor-widget,
.ajf-work-card--feature .elementor-widget-container { position: static; }
.ajf-work-card--feature { cursor: pointer; }
.ajf-work-more a { position: relative; z-index: 2; color: var(--ajf-accent); text-decoration: none !important; }
.ajf-work-more a:hover { text-decoration: underline !important; }
/* Open mobile drawer: hide the fixed Call/Messenger bar (mu-plugin ajf-trust-conversion),
   which sits above the drawer and covered its last buttons; the drawer has its own. */
html.ajf-no-scroll .ajf-mbar { display: none !important; }
@media (max-width: 1080px) { .ajf-nav { padding-bottom: calc(2rem + env(safe-area-inset-bottom, 0px)); } }
.ajf-header.is-nav-open { background: #fff; border-bottom-color: var(--ajf-line); }

/* ==========================================================================
   Blog and article (Apple newsroom-style): content on the page, not in boxes;
   one accent for links and the "Latest" flag; large tight headlines.
   ========================================================================== */

/* Blog header */
.ajf-blog-head { padding-block: 2.5rem 0; }
@media (min-width: 1025px) { .ajf-blog-head { padding-block: 4rem 0; } }
.ajf-blog-head .ajf-breadcrumbs { margin-bottom: 1.5rem; }
.ajf-blog-head__row { display: grid; gap: 1.5rem; align-items: end; }
@media (min-width: 900px) { .ajf-blog-head__row { grid-template-columns: minmax(0, 1fr) 340px; } }
.ajf-blog-head__title { font-size: clamp(2.75rem, 1.9rem + 3.4vw, 4.75rem); line-height: 1; letter-spacing: -.045em; margin: 0 0 .9rem; }
.ajf-blog-head__lead { font-size: clamp(1.1rem, 1rem + .4vw, 1.3rem); line-height: 1.5; color: var(--ajf-muted); max-width: 56ch; margin: 0; }
.ajf-blog-head__search .ajf-search { max-width: none; background: var(--ajf-surface); border-color: transparent; }
.ajf-blog-head__search .ajf-search__input { min-height: 44px; }

/* Topic filter: one row that scrolls sideways on phones, like a segmented control */
.ajf-blog-head .ajf-topics { margin-top: 2rem; border-bottom: 1px solid var(--ajf-line); }
.ajf-blog-head .ajf-topics ul { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin: 0; padding: 0 0 1rem; gap: .5rem; -webkit-overflow-scrolling: touch; }
.ajf-blog-head .ajf-topics ul::-webkit-scrollbar { display: none; }
.ajf-blog-head .ajf-topics li { flex-shrink: 0; }
.ajf-topics .ajf-pill { display: inline-flex; align-items: center; min-height: 40px; padding: 0 1.05em; background: var(--ajf-surface); color: var(--ajf-ink); font-size: .9rem; font-weight: 500; white-space: nowrap; transition: background-color .2s ease, color .2s ease; }
.ajf-topics a.ajf-pill:hover { background: var(--ajf-line); color: var(--ajf-ink); }
.ajf-topics .ajf-pill.is-current, .ajf-topics a.ajf-pill.is-current:hover { background: var(--ajf-ink); color: #fff; }

.ajf-blog-body { padding-block: 2.5rem 5rem; }
@media (min-width: 1025px) { .ajf-blog-body { padding-block: 3.5rem 7rem; } }

/* Post cards: image and text sit on the page */
.ajf-card-post, .ajf-card-post:hover { background: transparent; border: 0; border-radius: 0; overflow: visible; box-shadow: none; transform: none; }
.ajf-card-post { position: relative; }
.ajf-card-post__media { border-radius: var(--ajf-radius); overflow: hidden; background: var(--ajf-surface); }
.ajf-card-post__img { transition: transform .6s cubic-bezier(.2, .7, .2, 1); }
.ajf-card-post:hover .ajf-card-post__img { transform: scale(1.04); }
.ajf-card-post__body { padding: 1.1rem 0 0; gap: .45rem; }
.ajf-card-post__kicker { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin: 0; min-height: 1.4em; font-size: .85rem; font-weight: 600; }
.ajf-card-post__kicker:empty { display: none; }
.ajf-card-post__kicker a { color: var(--ajf-accent); text-decoration: none; position: relative; z-index: 2; }
.ajf-card-post__kicker a:hover { text-decoration: underline; }
.ajf-card-post__flag { display: inline-block; padding: .15em .6em; border-radius: 999px; background: var(--ajf-tint); color: var(--ajf-accent-dark); }
.ajf-card-post__title { font-size: 1.2rem; line-height: 1.25; letter-spacing: -.02em; font-weight: 600; }
.ajf-card-post__title a { color: var(--ajf-ink); }
.ajf-card-post__title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.ajf-card-post__title a:hover, .ajf-card-post:hover .ajf-card-post__title a { color: var(--ajf-accent); text-decoration: none; }
.ajf-card-post__title a:focus-visible { outline: none; }
.ajf-card-post:has(.ajf-card-post__title a:focus-visible) .ajf-card-post__media { outline: 3px solid var(--ajf-accent); outline-offset: 3px; }
.ajf-card-post__excerpt { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.ajf-card-post__meta { margin: .15rem 0 0; padding: 0; }
.ajf-post-grid { row-gap: 3rem; }

/* Lead story + two beside it */
.ajf-blog-top { display: grid; gap: 2.5rem; margin-bottom: 4rem; }
@media (min-width: 1025px) { .ajf-blog-top { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 2.5rem; } }
.ajf-blog-top__side { display: grid; gap: 2rem; align-content: start; }
@media (min-width: 640px) and (max-width: 1024px) { .ajf-blog-top__side { grid-template-columns: 1fr 1fr; } }
.ajf-card-post--feature .ajf-card-post__media { border-radius: 28px; aspect-ratio: 16 / 9; }
.ajf-card-post--feature .ajf-card-post__body { padding-top: 1.5rem; gap: .65rem; }
.ajf-card-post--feature .ajf-card-post__title { font-size: clamp(1.75rem, 1.3rem + 1.6vw, 2.6rem); line-height: 1.08; letter-spacing: -.035em; font-weight: 700; text-wrap: balance; }
.ajf-card-post--feature .ajf-card-post__excerpt { font-size: 1.125rem; -webkit-line-clamp: 4; max-width: 60ch; }
.ajf-card-post__more { margin: .35rem 0 0; font-weight: 600; color: var(--ajf-accent); }
.ajf-card-post__more::after { content: "→"; display: inline-block; margin-left: .35em; transition: transform .3s ease; }
.ajf-card-post:hover .ajf-card-post__more::after { transform: translateX(4px); }
.ajf-card-post--compact .ajf-card-post__title { font-size: 1.15rem; }
.ajf-blog-body__heading { font-size: 1.6rem; letter-spacing: -.025em; margin: 0 0 2rem; padding-top: 2.5rem; border-top: 1px solid var(--ajf-line); }
.ajf-blog-empty { text-align: center; color: var(--ajf-muted); padding-block: 3rem; }

/* Article header */
.ajf-article__header { padding-block: 2.5rem 2rem; }
@media (min-width: 1025px) { .ajf-article__header { padding-block: 4rem 2.5rem; } }
.ajf-article__header .ajf-breadcrumbs { margin-bottom: 2rem; }
.ajf-article__kicker { margin: 0 0 .75rem; font-weight: 600; font-size: 1rem; }
.ajf-article__kicker a { color: var(--ajf-accent); text-decoration: none; }
.ajf-article__kicker a:hover { text-decoration: underline; }
.ajf-article__title { font-size: clamp(2.25rem, 1.55rem + 2.9vw, 3.75rem); line-height: 1.05; letter-spacing: -.04em; margin: 0 0 1rem; text-wrap: balance; }
.ajf-article__dek { font-size: clamp(1.15rem, 1.05rem + .45vw, 1.4rem); line-height: 1.45; color: var(--ajf-muted); max-width: 60ch; margin: 0 0 2rem; text-wrap: pretty; }
.ajf-article__byline { display: flex; align-items: center; gap: .85rem; }
.ajf-article__avatar { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; flex-shrink: 0; }
.ajf-article__byline .ajf-article__meta { display: flex; flex-direction: column; gap: .1rem; margin: 0; font-size: .9rem; color: var(--ajf-muted); }
.ajf-article__author { color: var(--ajf-ink); font-weight: 600; font-size: 1rem; }
.ajf-article__image { margin: 0 auto 3rem; }
.ajf-article__image img { width: 100%; height: auto; aspect-ratio: auto; object-fit: initial; border-radius: 28px; }

/* In this article */
.ajf-toc { margin: 0 0 2.75rem; background: var(--ajf-surface); border-radius: var(--ajf-radius); }
.ajf-toc summary { display: flex; align-items: center; gap: .75rem; min-height: 56px; padding: .9rem 1.4rem; cursor: pointer; list-style: none; font-weight: 600; color: var(--ajf-ink); }
.ajf-toc summary::-webkit-details-marker { display: none; }
.ajf-toc summary span { margin-left: auto; font-weight: 500; font-size: .875rem; color: var(--ajf-muted); }
.ajf-toc summary::after { content: ""; width: 9px; height: 9px; border-right: 2px solid var(--ajf-accent); border-bottom: 2px solid var(--ajf-accent); transform: rotate(45deg); margin: -4px 2px 0 0; transition: transform .2s ease; }
.ajf-toc[open] summary::after { transform: rotate(-135deg); margin-top: 4px; }
.ajf-toc ol { margin: 0; padding: 0 1.4rem 1.25rem 2.9rem; display: grid; gap: .5rem; }
.ajf-toc li::marker { color: var(--ajf-muted); font-variant-numeric: tabular-nums; }
.ajf-toc a { color: var(--ajf-text); text-decoration: none; line-height: 1.4; }
.ajf-toc a:hover { color: var(--ajf-accent); text-decoration: underline; }

/* Article body */
.ajf-article .ajf-prose { font-size: clamp(1.0625rem, 1rem + .3vw, 1.1875rem); line-height: 1.7; }
.ajf-article .ajf-prose h2 { font-size: clamp(1.6rem, 1.3rem + 1.1vw, 2.15rem); line-height: 1.15; letter-spacing: -.03em; margin: 2.4em 0 .6em; }
.ajf-article .ajf-prose h3 { font-size: clamp(1.2rem, 1.1rem + .4vw, 1.4rem); letter-spacing: -.015em; margin: 1.9em 0 .5em; font-weight: 600; }
.ajf-article .ajf-prose img { border-radius: var(--ajf-radius); }
.ajf-article .ajf-prose figure { margin: 2.5rem 0; }

/* Article ending */
.ajf-article__end { padding-bottom: 4rem; }
.ajf-article__end .ajf-author { margin-top: 3.5rem; }
.ajf-keep-reading { background: var(--ajf-surface); padding-block: 4rem 5rem; }
@media (min-width: 1025px) { .ajf-keep-reading { padding-block: 5rem 6rem; } }
.ajf-keep-reading__title { font-size: clamp(1.75rem, 1.4rem + 1.2vw, 2.4rem); letter-spacing: -.035em; margin: 0 0 2rem; }
@media (min-width: 1025px) { .ajf-post-grid--4 { grid-template-columns: repeat(4, 1fr); gap: 2rem; } }

/* Reading progress: a line under the header that fills as you scroll (CSS scroll timeline; hidden where unsupported) */
.ajf-progress { display: none; }
@supports (animation-timeline: scroll()) {
	.ajf-progress { display: block; position: absolute; left: 0; right: 0; bottom: -1px; height: 3px; background: var(--ajf-accent); transform-origin: 0 50%; transform: scaleX(0); animation: ajf-progress linear both; animation-timeline: scroll(root block); }
	@keyframes ajf-progress { to { transform: scaleX(1); } }
}
@media (prefers-reduced-motion: reduce) { .ajf-progress { display: none; } }

/* --------------------------------------------------------------------------
   AI SEO pages (built from the former static /ai-seo/ section)
   -------------------------------------------------------------------------- */
/* Hero "signals" panel: the page's own checklist, rows rise in one after another */
.ajf-signals { background: var(--ajf-white); border-radius: 24px; padding: 1.5rem 1.5rem 1rem; box-shadow: 0 30px 60px -28px rgba(0, 0, 0, .28), 0 0 0 1px rgba(0, 0, 0, .04); max-width: 480px; margin-inline: auto; }
.ajf-signals__title { margin: 0 0 .5rem; font-weight: 600; font-size: 1.05rem; color: var(--ajf-ink); }
.ajf-signals ul { list-style: none; margin: 0; padding: 0; }
.ajf-signals li { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .8rem 0; border-top: 1px solid var(--ajf-line); font-size: .95rem; animation: ajf-rise .7s cubic-bezier(.2, .7, .2, 1) both; animation-delay: calc(.35s + var(--i) * .1s); }
.ajf-signals li span { color: var(--ajf-text); }
.ajf-signals li b { flex-shrink: 0; padding: .25em .7em; border-radius: 999px; background: var(--ajf-tint); color: var(--ajf-accent-dark); font-size: .8rem; font-weight: 600; text-align: right; }

/* "Optimized for" engines strip under the hero */
.e-con.ajf-engines-band { --padding-top: 1.5rem; --padding-bottom: 1.5rem; border-bottom: 1px solid var(--ajf-line); }
.ajf-engines { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: .75rem 1.5rem; }
.ajf-engines p { margin: 0; font-size: .85rem; color: var(--ajf-muted); }
.ajf-engines ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem 1.75rem; }
.ajf-engines li { font-weight: 600; color: var(--ajf-ink); letter-spacing: -.01em; }

/* Intro beside a checklist */
@media (min-width: 1025px) {
	.e-con.ajf-split > .ajf-measure { --width: 42%; width: 42%; flex-shrink: 0; }
	.e-con.ajf-split > .ajf-checks { --width: auto; flex: 1; }
}
.ajf-ticks--rich li strong { display: block; color: var(--ajf-ink); }
.ajf-ticks--rich li span { display: block; color: var(--ajf-muted); font-size: .95rem; margin-top: .15rem; }
.ajf-ticks--rich { gap: 1.1rem; }

/* Six-step process: three columns */
@media (min-width: 900px) { .elementor-widget-text-editor ol.ajf-process--3, ol.ajf-process--3 { grid-template-columns: repeat(3, 1fr); } }
.ajf-section--dark .ajf-process li { background: var(--ajf-ink-2); }
.ajf-section--dark .ajf-process strong { color: #fff; }
.ajf-section--dark .ajf-process span { color: var(--ajf-on-dark); }
.ajf-section--dark .ajf-process li::before { background: var(--ajf-bright); color: var(--ajf-ink); }

/* Related cards: whole card is the link (wrappers must not be positioned) */
.e-con.ajf-link-card .elementor-widget, .e-con.ajf-link-card .elementor-widget-container { position: static; }
.e-con.ajf-link-card:hover { background: var(--ajf-white); }
.ajf-link-card .ajf-label { margin-bottom: .5rem; }
.ajf-link-card .ajf-card-link { font-size: 1.2rem; font-weight: 600; letter-spacing: -.015em; }
