/*
Theme Name: Alpha Armor Pro
Theme URI: https://alphaarmorco.com/
Author: Alpha Armor Co.
Description: A fast, accessible, conversion-focused WordPress theme for Alpha Armor Co. Built around a single source of truth for every business number on the site.
Version: 2.0.0
Requires at least: 6.4
Requires PHP: 8.0
Text Domain: alpha-armor-pro
License: GPL-2.0-or-later
*/

/* ============================================================================
   DESIGN NOTES

   The visual language is taken from the subject rather than from a template.
   Alpha Armor is an Armor Corps company: the reference is a stamped tank data
   plate — riveted corners, a hairline inset rule, mono type for the numbers,
   brass on olive.

   Palette keeps the existing brand teal as the ACTION colour so the site still
   matches the ad creative and the GoHighLevel funnel. Brass is promoted from a
   near-unused variable to the editorial accent: rules, numerals, eyebrows,
   plate edges. Green-black carries the dark bands.

   Type: Lora for display (kept from the brand, used with restraint), Inter for
   body, and a system monospace stack for labels, stage markers and every number
   the visitor is meant to weigh. The mono is doing the character work and costs
   nothing to load.

   Boldness is spent in exactly one place: the spec plate. It appears twice —
   the hero and the guarantee — and holds the only two numbers that sell.
   ========================================================================= */


/* ---------------------------------------------------------------- 1. TOKENS */

:root {
	/* Ground */
	--aa-ink: #12211e;
	--aa-ink-2: #1b302b;
	--aa-ink-3: #0c1815;
	--aa-paper: #ffffff;
	--aa-wash: #f4f7f6;

	/* Text */
	--aa-body: #3b4a47;
	--aa-muted: #6b7a76;
	--aa-on-dark: #e8efec;
	--aa-on-dark-muted: #9aaba6;

	/* Lines */
	--aa-line: #dde5e2;
	--aa-line-dark: rgba(214, 181, 124, 0.24);

	/* Accents */
	--aa-action: #019092;
	--aa-action-dark: #016f71;
	--aa-action-wash: #e6f4f4;
	--aa-brass: #b5893f;
	--aa-brass-text: #947033;
	--aa-brass-light: #d6b57c;
	--aa-positive: #1a7560;
	--aa-negative: #a8442f;

	/* Type */
	--aa-display: "Lora", Georgia, "Times New Roman", serif;
	--aa-sans: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
	--aa-mono: ui-monospace, "SF Mono", SFMono-Regular, "Cascadia Mono", Menlo, Consolas, monospace;

	/* Layout */
	--aa-container: 72rem;
	--aa-narrow: 46rem;
	--aa-measure: 38rem;

	/* Space */
	--aa-s1: clamp(0.5rem, 0.45rem + 0.25vw, 0.75rem);
	--aa-s2: clamp(0.875rem, 0.75rem + 0.6vw, 1.25rem);
	--aa-s3: clamp(1.25rem, 1rem + 1vw, 2rem);
	--aa-s4: clamp(2rem, 1.5rem + 2vw, 3.25rem);
	--aa-s5: clamp(3.25rem, 2.25rem + 4vw, 6rem);

	--aa-radius: 3px;
	--aa-shadow: 0 1.5rem 3.5rem rgba(18, 33, 30, 0.1);
	--aa-shadow-plate: 0 1.75rem 4rem rgba(0, 0, 0, 0.35);
}


/* ------------------------------------------------------------- 2. FOUNDATION */

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

html {
	scroll-behavior: smooth;
	-webkit-text-size-adjust: 100%;
}

body {
	margin: 0;
	background: var(--aa-paper);
	color: var(--aa-body);
	font-family: var(--aa-sans);
	font-size: 1.0625rem;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
}

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

a {
	color: var(--aa-action);
	text-underline-offset: 0.18em;
}

button,
input,
select,
textarea {
	font: inherit;
	color: inherit;
}

:focus-visible {
	outline: 2px solid var(--aa-action);
	outline-offset: 3px;
	border-radius: 2px;
}

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

.screen-reader-text:focus {
	clip: auto;
	width: auto;
	height: auto;
	z-index: 1000;
	top: 1rem;
	left: 1rem;
	padding: 0.75rem 1rem;
	background: var(--aa-ink);
	color: #fff;
}


/* ------------------------------------------------------------ 3. TYPOGRAPHY */

.aa-display,
.aa-h2,
h1,
h2,
h3,
h4 {
	font-family: var(--aa-display);
	font-weight: 600;
	color: var(--aa-ink);
	line-height: 1.12;
	letter-spacing: -0.022em;
	text-wrap: balance;
}

.aa-display {
	margin: 0;
	font-size: clamp(2.35rem, 4.4vw, 4rem);
	line-height: 1.06;
	letter-spacing: -0.03em;
}

h1 {
	margin: 0 0 0.4em;
	font-size: clamp(2.15rem, 3.8vw, 3.35rem);
}

.aa-h2,
h2 {
	margin: 0 0 var(--aa-s2);
	font-size: clamp(1.75rem, 2.9vw, 2.6rem);
	max-width: 22ch;
}

h3 {
	margin: 0 0 0.55rem;
	font-size: clamp(1.2rem, 1.7vw, 1.5rem);
}

p {
	margin: 0 0 1.15rem;
	max-width: var(--aa-measure);
}

.aa-lead {
	max-width: 40rem;
	font-size: clamp(1.1rem, 1.25vw, 1.24rem);
	line-height: 1.6;
	color: var(--aa-body);
}

.aa-muted {
	color: var(--aa-muted);
}

.aa-fine {
	max-width: 46rem;
	font-size: 0.82rem;
	line-height: 1.6;
	color: var(--aa-muted);
}

/* The mono label is the signature type treatment. Used for eyebrows, stage
   markers, data captions and anything the reader is meant to treat as a spec. */
.aa-eyebrow {
	margin: 0 0 var(--aa-s2);
	font-family: var(--aa-mono);
	font-size: 0.7rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--aa-brass-text);
}

.aa-eyebrow::before {
	content: "";
	display: inline-block;
	width: 1.4rem;
	height: 1px;
	margin-right: 0.7rem;
	vertical-align: 0.28em;
	background: currentColor;
}


/* ---------------------------------------------------------------- 4. LAYOUT */

.aa-container {
	width: min(var(--aa-container), calc(100% - 2.5rem));
	margin-inline: auto;
}

.aa-narrow {
	width: min(var(--aa-narrow), calc(100% - 2.5rem));
	margin-inline: auto;
}

.aa-section {
	padding-block: var(--aa-s5);
}

.aa-section--wash {
	background: var(--aa-wash);
}

.aa-section--dark {
	background: var(--aa-ink);
	color: var(--aa-on-dark);
}

.aa-section--dark .aa-h2,
.aa-section--dark h2,
.aa-section--dark h3,
.aa-section--dark .aa-display {
	color: #fff;
}

.aa-section--dark .aa-lead,
.aa-section--dark p {
	color: var(--aa-on-dark-muted);
}

.aa-section--dark .aa-eyebrow {
	color: var(--aa-brass-light);
}

.aa-split {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
	gap: var(--aa-s4) clamp(2rem, 5vw, 5rem);
	align-items: start;
}

.aa-cols-2 {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--aa-s4);
}

.aa-cols-3 {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--aa-s3);
}

/* --------------------------------------------------------------- 5. BUTTONS */

.aa-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.6rem;
	min-height: 3.25rem;
	padding: 0.85rem 1.5rem;
	border: 1px solid var(--aa-action);
	border-radius: var(--aa-radius);
	background: var(--aa-action);
	color: #fff;
	font-family: var(--aa-sans);
	font-size: 1rem;
	font-weight: 600;
	line-height: 1;
	text-decoration: none;
	cursor: pointer;
	transition: background 0.16s ease, transform 0.16s ease, box-shadow 0.16s ease;
}

.aa-btn:hover,
.aa-btn:focus-visible {
	background: var(--aa-action-dark);
	border-color: var(--aa-action-dark);
	color: #fff;
	transform: translateY(-1px);
	box-shadow: 0 0.6rem 1.4rem rgba(1, 144, 146, 0.24);
}

.aa-btn-arrow {
	transition: transform 0.16s ease;
}

.aa-btn:hover .aa-btn-arrow {
	transform: translateX(3px);
}

.aa-btn--ghost {
	background: transparent;
	color: var(--aa-action);
	border-color: var(--aa-line);
}

.aa-btn--ghost:hover,
.aa-btn--ghost:focus-visible {
	background: var(--aa-action-wash);
	border-color: var(--aa-action);
	color: var(--aa-action-dark);
	box-shadow: none;
}

/* On dark bands the action colour loses contrast, so the button inverts. */
.aa-btn--plate {
	background: var(--aa-brass-light);
	border-color: var(--aa-brass-light);
	color: var(--aa-ink-3);
}

.aa-btn--plate:hover,
.aa-btn--plate:focus-visible {
	background: #e8cd9d;
	border-color: #e8cd9d;
	color: var(--aa-ink-3);
	box-shadow: 0 0.6rem 1.4rem rgba(0, 0, 0, 0.3);
}

.aa-cta-note {
	margin: 0.85rem 0 0;
	max-width: 30rem;
	font-family: var(--aa-mono);
	font-size: 0.74rem;
	letter-spacing: 0.02em;
	color: var(--aa-muted);
}

.aa-section--dark .aa-cta-note {
	color: var(--aa-on-dark-muted);
}

.aa-btn-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.85rem;
	margin-top: var(--aa-s3);
}


/* ------------------------------------------ 6. SPEC PLATE (signature element) */

.aa-plate {
	position: relative;
	padding: clamp(1.5rem, 2.6vw, 2.25rem);
	background:
		linear-gradient(160deg, var(--aa-ink-2) 0%, var(--aa-ink-3) 100%);
	border: 1px solid rgba(214, 181, 124, 0.34);
	border-radius: var(--aa-radius);
	box-shadow: var(--aa-shadow-plate);
	color: var(--aa-on-dark);
}

/* Inset hairline — the second edge of a stamped plate. */
.aa-plate::before {
	content: "";
	position: absolute;
	inset: 6px;
	border: 1px solid rgba(214, 181, 124, 0.18);
	border-radius: 1px;
	pointer-events: none;
}

/* Four rivets, one per corner. */
.aa-plate::after {
	content: "";
	position: absolute;
	inset: 13px;
	pointer-events: none;
	background-image:
		radial-gradient(circle, var(--aa-brass-light) 0 1.5px, transparent 2px),
		radial-gradient(circle, var(--aa-brass-light) 0 1.5px, transparent 2px),
		radial-gradient(circle, var(--aa-brass-light) 0 1.5px, transparent 2px),
		radial-gradient(circle, var(--aa-brass-light) 0 1.5px, transparent 2px);
	background-size: 5px 5px;
	background-repeat: no-repeat;
	background-position: left top, right top, left bottom, right bottom;
	opacity: 0.75;
}

.aa-plate__label {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 1rem;
	padding-bottom: 0.85rem;
	margin-bottom: 1.4rem;
	border-bottom: 1px solid var(--aa-line-dark);
	font-family: var(--aa-mono);
	font-size: 0.68rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--aa-brass-light);
}

.aa-plate__rows {
	display: grid;
	gap: 0.15rem;
}

.aa-plate__row {
	display: grid;
	grid-template-columns: 1fr auto;
	align-items: baseline;
	gap: 1rem;
	padding: 0.7rem 0;
	border-bottom: 1px dashed rgba(214, 181, 124, 0.16);
}

.aa-plate__row:last-child {
	border-bottom: 0;
}

.aa-plate__term {
	font-family: var(--aa-mono);
	font-size: 0.76rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--aa-on-dark-muted);
}

.aa-plate__figure {
	font-family: var(--aa-display);
	font-size: clamp(1.9rem, 3vw, 2.5rem);
	font-weight: 600;
	line-height: 1;
	color: #fff;
	font-variant-numeric: tabular-nums;
}

.aa-plate__foot {
	margin: 1.4rem 0 0;
	padding-top: 1rem;
	border-top: 1px solid var(--aa-line-dark);
	font-family: var(--aa-mono);
	font-size: 0.74rem;
	line-height: 1.6;
	color: var(--aa-brass-light);
	max-width: none;
}


/* ---------------------------------------------------------- 7. ANNOUNCEMENT */

.aa-announce {
	background: var(--aa-ink);
	color: var(--aa-brass-light);
	text-align: center;
	padding: 0.6rem 1.25rem;
	font-family: var(--aa-mono);
	font-size: 0.72rem;
	font-weight: 500;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}


/* --------------------------------------------------------------- 8. HEADER */

.aa-header {
	position: sticky;
	top: 0;
	z-index: 40;
	background: rgba(255, 255, 255, 0.94);
	border-bottom: 1px solid var(--aa-line);
	backdrop-filter: blur(14px);
}

.aa-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.25rem;
	min-height: 4.75rem;
}

.aa-brand {
	display: inline-flex;
	align-items: center;
	gap: 0.65rem;
	color: var(--aa-ink);
	font-family: var(--aa-display);
	font-size: 1.02rem;
	font-weight: 700;
	letter-spacing: 0.02em;
	text-decoration: none;
	white-space: nowrap;
}

.aa-brand img {
	max-height: 2.3rem;
	width: auto;
}

/* A crest-style lockup (mark + wordmark stacked, rather than a single small
   icon) needs more vertical room than the plain text fallback above, or the
   wordmark and tagline underneath the crest become illegible. */
.aa-brand--logo {
	display: inline-flex;
	align-items: center;
}

.aa-brand--logo .custom-logo-link {
	display: inline-flex;
	align-items: center;
}

.aa-brand--logo img {
	max-height: 3.6rem;
	width: auto;
	mix-blend-mode: multiply;
}

.aa-header__inner:has(.aa-brand--logo) {
	min-height: 5.5rem;
}

.aa-mark {
	display: grid;
	place-items: center;
	width: 2.1rem;
	height: 2.1rem;
	border: 1px solid var(--aa-brass);
	color: var(--aa-brass);
	font-family: var(--aa-display);
	font-size: 1.1rem;
	line-height: 1;
	border-radius: 2px;
	flex: none;
}

.aa-nav .menu {
	display: flex;
	align-items: center;
	gap: 1.65rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.aa-nav a {
	color: var(--aa-body);
	font-size: 1.02rem;
	font-weight: 500;
	text-decoration: none;
	white-space: nowrap;
}

.aa-nav .current-menu-item > a,
.aa-nav a:hover {
	color: var(--aa-ink);
	text-decoration: underline;
	text-decoration-color: var(--aa-brass);
	text-decoration-thickness: 2px;
}

.aa-header__cta {
	min-height: 2.75rem;
	padding: 0.6rem 1.1rem;
	font-size: 0.88rem;
}

.aa-header__cta .aa-btn-arrow {
	display: none;
}

.aa-toggle {
	display: none;
	align-items: center;
	gap: 0.5rem;
	padding: 0.55rem 0.7rem;
	border: 1px solid var(--aa-line);
	border-radius: var(--aa-radius);
	background: transparent;
	color: var(--aa-ink);
	font-family: var(--aa-mono);
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	cursor: pointer;
}


/* Application page: navigation is suppressed, so the header carries a label
   instead of a menu. */
.aa-header__step {
	font-family: var(--aa-mono);
	font-size: 0.7rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--aa-muted);
}

.aa-form-embed {
	min-height: 40rem;
}

.aa-form-embed iframe {
	width: 100%;
	min-height: 40rem;
	border: 0;
}


/* ----------------------------------------------------------------- 9. HERO */

.aa-hero {
	position: relative;
	padding-block: clamp(3rem, 5.5vw, 5.5rem) clamp(3rem, 5vw, 5rem);
	background:
		radial-gradient(ellipse at 88% 8%, rgba(1, 144, 146, 0.07), transparent 60%),
		var(--aa-wash);
	border-bottom: 1px solid var(--aa-line);
}

.aa-hero__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.08fr) minmax(19rem, 26rem);
	gap: clamp(2.25rem, 4.5vw, 4.5rem);
	align-items: center;
}

.aa-hero .aa-display {
	max-width: 17ch;
}

.aa-hero .aa-lead {
	margin-top: 1.25rem;
}


/* -------------------------------------------------------- 10. CREDENTIALS */

.aa-creds {
	background: var(--aa-ink);
	color: var(--aa-on-dark);
	padding-block: 1.1rem;
}

.aa-creds__list {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 0.75rem 2rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

/* Above phone width, lay the four credentials out as a centered 2x2 grid
   instead of a wrapping flex row — four items of uneven length in a
   space-between flex row left the fourth item stranded alone on its own
   row, flush left. A grid keeps both rows centered regardless of how the
   text wraps. */
@media (min-width: 521px) {
	.aa-creds__list {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, auto));
		justify-content: center;
		column-gap: 3.5rem;
		row-gap: 0.9rem;
	}

	.aa-creds__list li {
		justify-content: center;
	}
}

.aa-creds__list li {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	font-family: var(--aa-mono);
	font-size: 0.72rem;
	letter-spacing: 0.09em;
	text-transform: uppercase;
	color: var(--aa-on-dark);
}

.aa-creds__list li::before {
	content: "";
	width: 5px;
	height: 5px;
	background: var(--aa-brass-light);
	transform: rotate(45deg);
	flex: none;
}


/* ------------------------------------------------------------ 11. ARGUMENT */

.aa-argument p {
	max-width: 34rem;
}

.aa-argument__spacer {
	margin-top: var(--aa-s3);
}

.aa-pull {
	margin: var(--aa-s3) 0 0;
	padding-left: 1.35rem;
	border-left: 3px solid var(--aa-brass);
	font-family: var(--aa-display);
	font-size: clamp(1.2rem, 1.7vw, 1.5rem);
	line-height: 1.35;
	color: var(--aa-ink);
	max-width: 32rem;
}


/* ---------------------------------------------------------- 12. CALCULATOR */

.aa-calc {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(19rem, 26rem);
	gap: clamp(2rem, 4vw, 4rem);
	align-items: center;
}

.aa-calc__controls {
	display: grid;
	gap: 1.5rem;
}

.aa-field {
	display: grid;
	gap: 0.5rem;
}

.aa-field__head {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 1rem;
}

.aa-field label {
	font-family: var(--aa-mono);
	font-size: 0.74rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--aa-muted);
}

.aa-field output {
	font-family: var(--aa-display);
	font-size: 1.5rem;
	font-weight: 600;
	color: var(--aa-ink);
	font-variant-numeric: tabular-nums;
}

.aa-range {
	width: 100%;
	accent-color: var(--aa-action);
	cursor: pointer;
}

.aa-choice {
	display: flex;
	gap: 0.5rem;
	flex-wrap: wrap;
}

.aa-choice input {
	position: absolute;
	opacity: 0;
	width: 1px;
	height: 1px;
}

.aa-choice label {
	padding: 0.55rem 1rem;
	border: 1px solid var(--aa-line);
	border-radius: var(--aa-radius);
	background: var(--aa-paper);
	color: var(--aa-body);
	font-family: var(--aa-mono);
	font-size: 0.8rem;
	cursor: pointer;
	transition: all 0.14s ease;
}

.aa-choice input:checked + label {
	background: var(--aa-action);
	border-color: var(--aa-action);
	color: #fff;
}

.aa-choice input:focus-visible + label {
	outline: 2px solid var(--aa-action);
	outline-offset: 2px;
}

.aa-verdict {
	margin: 1.4rem 0 0;
	padding: 0.9rem 1.1rem;
	border-left: 3px solid var(--aa-brass-light);
	background: rgba(214, 181, 124, 0.09);
	font-family: var(--aa-mono);
	font-size: 0.78rem;
	line-height: 1.65;
	color: var(--aa-brass-light);
	max-width: none;
}


/* ------------------------------------------------------------- 13. PIPELINE */

.aa-stages {
	display: grid;
	gap: 0;
	margin-top: var(--aa-s4);
}

.aa-stage {
	display: grid;
	grid-template-columns: 5.25rem minmax(0, 1fr) minmax(0, 15rem);
	gap: clamp(1rem, 3vw, 2.5rem);
	padding-block: var(--aa-s3);
	border-top: 1px solid var(--aa-line);
}

.aa-stage:last-child {
	border-bottom: 1px solid var(--aa-line);
}

.aa-stage__n {
	font-family: var(--aa-display);
	font-size: 2.1rem;
	font-weight: 600;
	line-height: 1;
	color: var(--aa-brass);
	font-variant-numeric: tabular-nums;
}

.aa-stage__days {
	display: block;
	margin-top: 0.5rem;
	font-family: var(--aa-mono);
	font-size: 0.68rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--aa-muted);
	line-height: 1.4;
}

.aa-stage h3 {
	margin-bottom: 0.65rem;
}

.aa-stage__kick {
	padding-left: 1rem;
	border-left: 2px solid var(--aa-brass-light);
	color: var(--aa-muted);
	font-size: 0.95rem;
	max-width: none;
}

.aa-stage__out {
	padding: 0.9rem 1rem;
	background: var(--aa-wash);
	border-radius: var(--aa-radius);
	font-size: 0.88rem;
	line-height: 1.55;
	color: var(--aa-body);
	max-width: none;
	margin: 0;
}

.aa-stage__out strong {
	display: block;
	margin-bottom: 0.3rem;
	font-family: var(--aa-mono);
	font-size: 0.66rem;
	font-weight: 600;
	letter-spacing: 0.11em;
	text-transform: uppercase;
	color: var(--aa-brass-text);
}

.aa-section--wash .aa-stage__out {
	background: var(--aa-paper);
}

/* Scroll reveal — one orchestrated moment, on the sequence that benefits from
   being read in order. Everything is visible without JS. */
.aa-reveal {
	opacity: 0;
	transform: translateY(14px);
	transition: opacity 0.5s ease, transform 0.5s ease;
}

.aa-reveal.is-in {
	opacity: 1;
	transform: none;
}


/* ------------------------------------------------------------ 14. GUARANTEE */

.aa-guarantee__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(20rem, 27rem);
	gap: clamp(2rem, 4.5vw, 4.5rem);
	align-items: center;
}

.aa-conditions {
	margin-top: var(--aa-s3);
	border-top: 1px solid var(--aa-line-dark);
	padding-top: var(--aa-s2);
}

.aa-conditions summary {
	cursor: pointer;
	font-family: var(--aa-mono);
	font-size: 0.74rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--aa-brass-light);
	list-style: none;
}

.aa-conditions summary::-webkit-details-marker {
	display: none;
}

.aa-conditions summary::after {
	content: " +";
}

.aa-conditions[open] summary::after {
	content: " −";
}

.aa-conditions__body {
	padding-top: 1rem;
}

.aa-conditions__body p {
	font-size: 0.88rem;
	line-height: 1.65;
	max-width: 46rem;
}


/* ---------------------------------------------------------------- 15. PROOF */

.aa-proof {
	display: grid;
	gap: var(--aa-s3);
	margin-top: var(--aa-s4);
}

.aa-case {
	display: grid;
	grid-template-columns: 13rem minmax(0, 1fr);
	gap: clamp(1.25rem, 3vw, 2.5rem);
	padding: var(--aa-s3);
	border: 1px solid var(--aa-line);
	border-radius: var(--aa-radius);
	background: var(--aa-paper);
}

.aa-case__id {
	text-align: left;
}

.aa-case__photo {
	width: 5.5rem;
	height: 5.5rem;
	border-radius: 50%;
	object-fit: cover;
	border: 2px solid var(--aa-brass-light);
	margin-bottom: 0.85rem;
}

.aa-case__name {
	margin: 0 0 0.15rem;
	font-family: var(--aa-display);
	font-size: 1.12rem;
	font-weight: 600;
	color: var(--aa-ink);
}

.aa-case__role {
	margin: 0 0 1rem;
	font-family: var(--aa-mono);
	font-size: 0.7rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--aa-muted);
}

.aa-case__metric {
	display: block;
	font-family: var(--aa-display);
	font-size: clamp(1.7rem, 2.6vw, 2.2rem);
	font-weight: 600;
	line-height: 1;
	color: var(--aa-action);
	font-variant-numeric: tabular-nums;
}

.aa-case__unit {
	display: block;
	margin-top: 0.4rem;
	font-family: var(--aa-mono);
	font-size: 0.7rem;
	line-height: 1.5;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--aa-muted);
}

.aa-case__body dl {
	display: grid;
	gap: 0.9rem;
	margin: 0 0 1.2rem;
}

.aa-case__body dt {
	font-family: var(--aa-mono);
	font-size: 0.66rem;
	font-weight: 600;
	letter-spacing: 0.11em;
	text-transform: uppercase;
	color: var(--aa-brass-text);
	margin-bottom: 0.25rem;
}

.aa-case__body dd {
	margin: 0;
	font-size: 0.97rem;
	line-height: 1.6;
}

.aa-case__quote {
	margin: 0;
	padding: 1rem 1.15rem;
	background: var(--aa-wash);
	border-left: 3px solid var(--aa-brass);
	border-radius: 0 var(--aa-radius) var(--aa-radius) 0;
	font-family: var(--aa-display);
	font-size: 1.02rem;
	line-height: 1.5;
	color: var(--aa-ink);
}


/* ------------------------------------------------------------------ 16. FIT */

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

.aa-list li {
	position: relative;
	padding: 0.7rem 0 0.7rem 1.85rem;
	border-bottom: 1px solid var(--aa-line);
	font-size: 0.98rem;
	line-height: 1.55;
}

.aa-list li::before {
	position: absolute;
	left: 0;
	top: 0.62rem;
	font-family: var(--aa-mono);
	font-weight: 700;
	content: "✓";
	color: var(--aa-positive);
}

.aa-list--no li::before {
	content: "✕";
	color: var(--aa-negative);
}

.aa-fit__panel h3 {
	padding-bottom: 0.75rem;
	border-bottom: 2px solid var(--aa-ink);
}


/* -------------------------------------------------------------- 17. PRICING */

.aa-tiers {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--aa-s3);
	margin-top: var(--aa-s4);
	align-items: start;
}

.aa-tier {
	display: flex;
	flex-direction: column;
	height: 100%;
	padding: var(--aa-s3);
	background: var(--aa-paper);
	border: 1px solid var(--aa-line);
	border-radius: var(--aa-radius);
}

.aa-tier--featured {
	border-color: var(--aa-ink);
	border-width: 2px;
	box-shadow: var(--aa-shadow);
}

.aa-tier__kicker {
	display: inline-block;
	margin-bottom: 0.9rem;
	padding: 0.28rem 0.6rem;
	border: 1px solid var(--aa-line);
	border-radius: 2px;
	font-family: var(--aa-mono);
	font-size: 0.62rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--aa-muted);
}

.aa-tier--featured .aa-tier__kicker {
	background: var(--aa-ink);
	border-color: var(--aa-ink);
	color: var(--aa-brass-light);
}

.aa-tier h3 {
	margin-bottom: 0.3rem;
}

.aa-tier__stage {
	margin: 0 0 1.1rem;
	font-family: var(--aa-mono);
	font-size: 0.7rem;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: var(--aa-muted);
}

.aa-tier__price {
	display: flex;
	align-items: baseline;
	gap: 0.45rem;
	font-family: var(--aa-display);
	font-size: 2.35rem;
	font-weight: 600;
	line-height: 1;
	color: var(--aa-ink);
}

.aa-tier__cadence {
	font-family: var(--aa-mono);
	font-size: 0.76rem;
	font-weight: 500;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--aa-muted);
}

.aa-tier__terms {
	margin: 0.7rem 0 1.2rem;
	padding-bottom: 1.2rem;
	border-bottom: 1px solid var(--aa-line);
	font-size: 0.84rem;
	line-height: 1.55;
	color: var(--aa-muted);
	max-width: none;
}

.aa-tier__summary {
	font-size: 0.97rem;
	max-width: none;
}

.aa-tier ul {
	margin: 0 0 var(--aa-s3);
	padding: 0;
	list-style: none;
	flex: 1;
}

.aa-tier ul li {
	position: relative;
	padding: 0.45rem 0 0.45rem 1.5rem;
	font-size: 0.92rem;
	line-height: 1.5;
}

.aa-tier ul li::before {
	position: absolute;
	left: 0;
	top: 0.42rem;
	content: "✓";
	font-family: var(--aa-mono);
	font-weight: 700;
	color: var(--aa-positive);
}

.aa-tier ul li.is-excluded::before {
	content: "✕";
	color: var(--aa-negative);
}

.aa-tier ul li.is-excluded {
	color: var(--aa-muted);
}

.aa-tier .aa-btn {
	width: 100%;
}


/* ------------------------------------------------------------------ 18. FAQ */

.aa-faq {
	margin-top: var(--aa-s4);
	border-top: 1px solid var(--aa-line);
}

.aa-faq details {
	border-bottom: 1px solid var(--aa-line);
}

.aa-faq summary {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1.5rem;
	padding: 1.15rem 0;
	cursor: pointer;
	font-family: var(--aa-display);
	font-size: 1.08rem;
	font-weight: 600;
	color: var(--aa-ink);
	list-style: none;
}

.aa-faq summary::-webkit-details-marker {
	display: none;
}

.aa-faq summary::after {
	content: "+";
	flex: none;
	font-family: var(--aa-mono);
	font-size: 1.3rem;
	font-weight: 400;
	color: var(--aa-brass);
	line-height: 1;
}

.aa-faq details[open] summary::after {
	content: "−";
}

.aa-faq details p {
	max-width: 44rem;
	padding-bottom: 1.3rem;
	color: var(--aa-body);
}


/* ---------------------------------------------------------- 19. FINAL CTA */

.aa-final {
	text-align: center;
}

.aa-final .aa-h2,
.aa-final h2 {
	margin-inline: auto;
	max-width: 18ch;
}

.aa-final p {
	margin-inline: auto;
	max-width: 44rem;
}

.aa-final .aa-btn-row {
	justify-content: center;
}

.aa-final .aa-cta-note {
	margin-inline: auto;
	text-align: center;
}


/* --------------------------------------------------------------- 20. FORMS */

.aa-form {
	max-width: 40rem;
}

.aa-form__progress {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	margin-bottom: var(--aa-s3);
	font-family: var(--aa-mono);
	font-size: 0.7rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--aa-muted);
}

.aa-form__track {
	flex: 1;
	height: 3px;
	background: var(--aa-line);
	border-radius: 2px;
	overflow: hidden;
}

.aa-form__bar {
	display: block;
	height: 100%;
	width: 25%;
	background: var(--aa-action);
	transition: width 0.3s ease;
}

.aa-step {
	display: none;
}

.aa-step.is-active {
	display: grid;
	gap: var(--aa-s3);
}

.aa-form__field > label,
.aa-form__field fieldset > legend {
	display: block;
	margin-bottom: 0.5rem;
	font-family: var(--aa-sans);
	font-size: 1rem;
	font-weight: 600;
	color: var(--aa-ink);
	padding: 0;
}

.aa-form__field fieldset {
	margin: 0;
	padding: 0;
	border: 0;
}

.aa-form__help {
	margin: 0 0 0.65rem;
	font-size: 0.85rem;
	color: var(--aa-muted);
	max-width: none;
}

.aa-form input[type="text"],
.aa-form input[type="email"],
.aa-form textarea {
	width: 100%;
	padding: 0.85rem 1rem;
	border: 1px solid var(--aa-line);
	border-radius: var(--aa-radius);
	background: var(--aa-paper);
	color: var(--aa-ink);
}

.aa-form textarea {
	min-height: 6.5rem;
	resize: vertical;
}

.aa-form input:focus,
.aa-form textarea:focus {
	border-color: var(--aa-action);
	outline: 2px solid rgba(1, 144, 146, 0.25);
	outline-offset: 0;
}

.aa-options {
	display: grid;
	gap: 0.5rem;
}

.aa-option {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	padding: 0.85rem 1rem;
	border: 1px solid var(--aa-line);
	border-radius: var(--aa-radius);
	background: var(--aa-paper);
	cursor: pointer;
	transition: border-color 0.14s ease, background 0.14s ease;
}

.aa-option:hover {
	border-color: var(--aa-action);
}

.aa-option input {
	accent-color: var(--aa-action);
	flex: none;
	margin: 0;
}

.aa-option:has(input:checked) {
	border-color: var(--aa-action);
	background: var(--aa-action-wash);
}

.aa-form__nav {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	align-items: center;
	margin-top: var(--aa-s3);
	padding-top: var(--aa-s3);
	border-top: 1px solid var(--aa-line);
}

.aa-form__error {
	padding: 0.85rem 1rem;
	margin-bottom: var(--aa-s3);
	border-left: 3px solid var(--aa-negative);
	background: rgba(168, 68, 47, 0.07);
	color: var(--aa-ink);
	font-size: 0.92rem;
}

.aa-form__success {
	padding: 0.85rem 1rem;
	border-left: 3px solid var(--aa-action);
	background: var(--aa-action-wash);
	color: var(--aa-ink);
	font-size: 0.95rem;
}

.aa-honeypot {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}


/* ------------------------------------------------------------ 21B. TEAM */

/* ------------------------------------------------------------ 21C. CONTACT */

.aa-h2--compact {
	font-size: 1.4rem;
}

.aa-ghl-form {
	min-height: 745px;
}

.aa-ghl-form iframe {
	display: block;
	width: 100%;
	min-height: 745px;
}

.aa-ghl-form--survey,
.aa-ghl-form--survey iframe {
	min-height: 520px;
}

.aa-contact__rows {
	margin-top: var(--aa-s3);
}

.aa-contact__row {
	border-color: var(--aa-line);
}

.aa-contact__term {
	color: var(--aa-muted);
}

.aa-contact__value {
	font-family: var(--aa-mono);
	font-size: 1rem;
}

.aa-contact__value--hours {
	font-size: 0.95rem;
}

.aa-contact__prose {
	margin-top: var(--aa-s4);
}


.aa-mission__inner {
	text-align: center;
}

/* This section sits directly under the credentials strip, and both would
   otherwise render at the identical --aa-ink background with zero visible
   seam between them. Nudging just this section one shade lighter (rather
   than changing .aa-section--dark itself, which is shared by sections
   elsewhere that don't have this adjacency problem) restores the boundary
   without touching the site's dark-section color everywhere else. */
.aa-mission {
	background: var(--aa-ink-2);
}

.aa-mission__eyebrow {
	justify-content: center;
}

.aa-mission__verse {
	max-width: 40rem;
	margin: var(--aa-s3) auto 0;
	padding-top: var(--aa-s3);
	border-top: 1px solid var(--aa-line-dark);
}

.aa-mission__verse p {
	font-family: var(--aa-display);
	font-size: 1.2rem;
	font-style: italic;
	color: #fff;
}

.aa-mission__verse cite {
	display: block;
	margin-top: 0.5rem;
	font-family: var(--aa-mono);
	font-size: 0.78rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--aa-brass-light);
	font-style: normal;
}

.aa-team {
	display: grid;
	gap: var(--aa-s4);
	margin-top: var(--aa-s4);
}

.aa-team__member {
	display: grid;
	grid-template-columns: 180px 1fr;
	gap: var(--aa-s4);
	padding-bottom: var(--aa-s4);
	border-bottom: 1px solid var(--aa-line);
}

.aa-team__member:last-child {
	border-bottom: none;
}

.aa-team__photo {
	width: 180px;
	height: 180px;
	border-radius: 4px;
	overflow: hidden;
	background: var(--aa-wash);
	border: 1px solid var(--aa-line);
	display: grid;
	place-items: center;
	flex: none;
}

.aa-team__photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.aa-team__initials {
	font-family: var(--aa-display);
	font-size: 2.6rem;
	font-weight: 700;
	color: var(--aa-brass);
}

.aa-team__credential {
	font-family: var(--aa-mono);
	font-size: 0.8rem;
	color: var(--aa-muted);
	margin-bottom: 0.75rem;
}

.aa-team__quote {
	margin-top: var(--aa-s3);
	padding: 1rem 1.25rem;
	background: var(--aa-wash);
	border-left: 3px solid var(--aa-brass);
}

.aa-team__quote p {
	font-family: var(--aa-display);
	font-style: italic;
}

.aa-team__quote cite {
	display: block;
	margin-top: 0.4rem;
	font-family: var(--aa-mono);
	font-size: 0.74rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--aa-muted);
	font-style: normal;
}

@media (max-width: 640px) {
	.aa-team__member {
		grid-template-columns: 1fr;
	}

	.aa-team__photo {
		width: 120px;
		height: 120px;
	}
}


/* ------------------------------------------------------- 21. PAGE / CONTENT */

.aa-page-header {
	padding-block: var(--aa-s5) var(--aa-s4);
	background:
		radial-gradient(ellipse at 82% 0%, rgba(1, 144, 146, 0.08), transparent 60%),
		var(--aa-wash);
	border-bottom: 1px solid var(--aa-line);
}

.aa-page-header .aa-lead {
	margin-top: 0.5rem;
}

.aa-prose {
	padding-block: var(--aa-s5);
}

.aa-prose > * {
	max-width: var(--aa-narrow);
	margin-inline: auto;
}

.aa-prose h2 {
	margin-top: 2.5rem;
}

.aa-prose h3 {
	margin-top: 1.9rem;
}

.aa-prose ul,
.aa-prose ol {
	padding-left: 1.3rem;
}

.aa-prose li {
	margin-bottom: 0.5rem;
}

.aa-prose table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.93rem;
}

.aa-prose th,
.aa-prose td {
	padding: 0.75rem 0.9rem;
	border-bottom: 1px solid var(--aa-line);
	text-align: left;
	vertical-align: top;
}

.aa-prose th {
	font-family: var(--aa-mono);
	font-size: 0.68rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--aa-brass-text);
}

.aa-post {
	padding: var(--aa-s3);
	border: 1px solid var(--aa-line);
	border-radius: var(--aa-radius);
	margin-bottom: var(--aa-s3);
}

.aa-post h2 {
	font-size: 1.4rem;
	margin-bottom: 0.5rem;
}


/* --------------------------------------------------------------- 22. FOOTER */

.aa-footer {
	background: var(--aa-ink-3);
	color: var(--aa-on-dark-muted);
	padding-block: var(--aa-s4);
	font-size: 0.92rem;
}

.aa-footer__grid {
	display: grid;
	grid-template-columns: 1.5fr 1fr 1fr;
	gap: var(--aa-s3);
}

.aa-footer .aa-brand,
.aa-footer__title {
	color: #fff;
}

.aa-footer__title {
	font-family: var(--aa-mono);
	font-size: 0.68rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--aa-brass-light);
}

.aa-footer .aa-mark {
	border-color: var(--aa-brass-light);
	color: var(--aa-brass-light);
}

.aa-footer a {
	color: var(--aa-on-dark-muted);
	text-decoration: none;
}

.aa-footer a:hover {
	color: #fff;
	text-decoration: underline;
}

.aa-footer nav ul {
	margin: 0.75rem 0 0;
	padding: 0;
	list-style: none;
}

.aa-footer nav li {
	margin-bottom: 0.4rem;
}

.aa-footer__legal-row {
	margin-top: 50px;
	margin-bottom: 50px;
	text-align: center;
}

.aa-footer__legal-row .menu {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 0;
	margin: 0;
	padding: 0;
	list-style: none;
}

.aa-footer__legal-row .menu li {
	margin: 0;
	display: flex;
	align-items: center;
}

.aa-footer__legal-row .menu li:not(:last-child)::after {
	content: "|";
	margin: 0 0.75rem;
	color: var(--aa-on-dark-muted);
}

.aa-footer__legal-row .menu a {
	font-size: 0.85rem;
	color: var(--aa-on-dark-muted);
}

.aa-footer__legal-row .menu a:hover {
	color: #fff;
}

.aa-footer__contact-list a {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
}

.aa-icon {
	width: 0.95rem;
	height: 0.95rem;
	flex: none;
	color: var(--aa-brass-light);
}

.aa-footer p:not(.aa-legal) {
	max-width: 24rem;
	color: var(--aa-on-dark-muted);
}

.aa-footer__address {
	margin-top: 0.4rem;
	font-size: 0.85rem;
}

.aa-legal {
	margin-top: 0;
	padding-top: var(--aa-s2);
	border-top: 1px solid rgba(255, 255, 255, 0.13);
	font-size: 0.78rem;
	line-height: 1.6;
	color: #7f918c;
	max-width: none;
	width: 100%;
	text-align: center;
}

.aa-legal__line {
	display: block;
}

.aa-legal__line:first-child {
	margin-bottom: 0.35rem;
	color: var(--aa-on-dark-muted);
}


/* --------------------------------------------------- 23. STICKY MOBILE CTA */

/* The previous build hid the header CTA on mobile AND disabled the sticky bar,
   which left phone traffic — the overwhelming majority of paid social — with no
   persistent way to convert. It appears once the hero has scrolled past. */
.aa-sticky {
	display: none;
	position: fixed;
	z-index: 45;
	left: 0;
	right: 0;
	bottom: 0;
	padding: 0.7rem 1rem calc(0.7rem + env(safe-area-inset-bottom));
	background: rgba(255, 255, 255, 0.97);
	border-top: 1px solid var(--aa-line);
	backdrop-filter: blur(12px);
	transform: translateY(110%);
	transition: transform 0.28s ease;
}

.aa-sticky.is-visible {
	transform: none;
}

.aa-sticky .aa-btn {
	width: 100%;
}

.aa-sticky__note {
	margin: 0.5rem 0 0;
	text-align: center;
	font-family: var(--aa-mono);
	font-size: 0.66rem;
	letter-spacing: 0.06em;
	color: var(--aa-muted);
	max-width: none;
}


/* ---------------------------------------------------------- 24. RESPONSIVE */

@media (max-width: 1000px) {
	.aa-stage {
		grid-template-columns: 3.5rem minmax(0, 1fr);
	}

	.aa-stage__out {
		grid-column: 2 / -1;
	}

	.aa-tiers {
		grid-template-columns: 1fr;
	}

	.aa-tier--featured {
		order: -1;
	}
}

@media (max-width: 860px) {
	.aa-toggle {
		display: inline-flex;
	}

	.aa-nav {
		display: none;
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		padding: 1rem 1.25rem 1.4rem;
		background: var(--aa-paper);
		border-bottom: 1px solid var(--aa-line);
		box-shadow: var(--aa-shadow);
	}

	.aa-nav.is-open {
		display: block;
	}

	.aa-nav .menu {
		display: grid;
		gap: 0.25rem;
	}

	.aa-nav .menu a {
		display: block;
		padding: 0.7rem 0;
		font-size: 1rem;
		border-bottom: 1px solid var(--aa-line);
	}

	/* The header CTA stays. It shrinks; it does not disappear. */
	.aa-header__inner {
		min-height: 4.15rem;
		gap: 0.6rem;
	}

	.aa-header__cta {
		min-height: 2.5rem;
		padding: 0.5rem 0.8rem;
		font-size: 0.8rem;
	}

	.aa-brand span:not(.aa-mark) {
		font-size: 0.9rem;
	}

	.aa-hero__grid,
	.aa-calc,
	.aa-guarantee__grid,
	.aa-split,
	.aa-cols-2,
	.aa-cols-3,
	.aa-case,
	.aa-team__member,
	.aa-footer__grid {
		grid-template-columns: 1fr;
	}

	.aa-case__id {
		display: grid;
		grid-template-columns: auto minmax(0, 1fr);
		gap: 1rem;
		align-items: center;
	}

	.aa-case__photo {
		margin-bottom: 0;
		width: 4.25rem;
		height: 4.25rem;
	}

	.aa-creds__list {
		gap: 0.6rem 1.25rem;
	}

	.aa-creds__list li {
		font-size: 0.66rem;
	}

	.aa-sticky {
		display: block;
	}

	body {
		padding-bottom: 5.5rem;
	}

	body.aa-focus {
		padding-bottom: 0;
	}

	.aa-display {
		font-size: clamp(2.1rem, 8.5vw, 2.9rem);
	}

	.aa-h2,
	h2 {
		max-width: none;
	}
}

@media (max-width: 520px) {
	.aa-announce {
		font-size: 0.62rem;
		letter-spacing: 0.05em;
		line-height: 1.5;
	}

	.aa-case__id {
		grid-template-columns: 1fr;
	}

	.aa-plate {
		padding: 1.25rem 1.1rem;
	}

	.aa-footer__legal-row {
		margin-top: 32px;
		margin-bottom: 32px;
	}

	.aa-footer__legal-row .menu {
		gap: 0.5rem 0;
	}

	.aa-footer__legal-row .menu li:not(:last-child)::after {
		margin: 0 0.5rem;
	}

	.aa-footer__legal-row .menu a {
		font-size: 0.8rem;
	}
}


/* ------------------------------------------------------------ 25. PRINT / A11Y */

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		animation-duration: 0.001ms !important;
		transition-duration: 0.001ms !important;
	}

	.aa-reveal {
		opacity: 1;
		transform: none;
	}
}

@media (prefers-contrast: more) {
	:root {
		--aa-muted: #4a5854;
		--aa-line: #b9c6c2;
	}
}
