/* =========================================================
   AI Builders Nation — Funnel Core
   Component styles for the `abn-` classes used by the
   Elementor templates and the plugin shortcodes.

   Scope rules:
   - Every selector is namespaced `abn-`. Nothing here can
     leak into the rest of the site.
   - Colours, spacing and type SIZES are set by Elementor
     global settings and per-widget controls, so a
     non-developer can change them in the editor. This file
     only carries what Elementor controls cannot express:
     the pill shapes, the composite overlay, the recreated
     interfaces and the state styling.
   - Loaded only on funnel pages. See class-abn-fc-assets.php.
   ========================================================= */

:root {
	--abn-midnight: #071521;
	--abn-navy: #0B2033;
	--abn-navy-up: #112A40;
	--abn-ivory: #FAF8F3;
	--abn-cloud: #F4F7FA;
	--abn-white: #FFFFFF;
	--abn-sky: #19B7D2;
	--abn-sky-soft: #7FDCEA;
	--abn-orange: #FF7A1A;
	--abn-orange-hover: #E96508;
	--abn-ink: #0A1A28;
	--abn-slate: #526273;
	--abn-border: #D8E1EA;
	--abn-gold: #E9B44C;
	--abn-green: #14804A;
	--abn-alert: #A8331F;
	--abn-on-dark: #E8EEF5;
	--abn-on-dark-soft: #A9BCCE;
	--abn-rule-dark: rgba(255, 255, 255, 0.13);
	--abn-shell: 1220px;
	--abn-r-sm: 10px;
	--abn-r-md: 14px;
	--abn-r-lg: 20px;
	--abn-r-pill: 999px;
}

/* ---------- 1. Accessibility ---------- */

.abn-skip-link {
	position: absolute;
	left: -9999px;
	top: 0;
	z-index: 9999;
	background: var(--abn-orange);
	color: var(--abn-ink);
	font-weight: 700;
	padding: 12px 18px;
	border-radius: 0 0 10px 0;
	text-decoration: none;
}

.abn-skip-link:focus {
	left: 0;
	outline: 3px solid var(--abn-sky);
	outline-offset: 2px;
}

/* A visible focus ring on every interactive element in the funnel.
   Never remove this; it is the only keyboard affordance on dark panels. */
.abn-cta:focus-visible,
.abn-decline:focus-visible,
.abn-link-cta:focus-visible,
.abn-legal-links a:focus-visible,
.abn-support a:focus-visible,
.abn-testi a:focus-visible {
	outline: 3px solid var(--abn-orange);
	outline-offset: 3px;
	border-radius: 4px;
}

.abn-main-anchor {
	scroll-margin-top: 90px;
}

/* ---------- 2. Announcement strip ---------- */

.abn-announce__msg {
	margin: 0;
	font-family: Manrope, system-ui, sans-serif;
	font-weight: 700;
	font-size: 0.84rem;
	line-height: 1.4;
	color: var(--abn-on-dark);
	text-align: center;
}

/* ---------- 3. Preview-mode banner ----------
   Renders only in Preview Mode. Status is carried by the word
   "Preview", the warning glyph and the sentence, never by colour
   alone. Measured contrast: message 9.79:1, tag 6.01:1. */

.abn-preview-bar {
	background: var(--abn-gold);
	color: #1A1206;
	border-bottom: 1px solid rgba(10, 26, 40, 0.28);
}

.abn-preview-bar__inner {
	max-width: var(--abn-shell);
	margin-inline: auto;
	padding: 9px clamp(18px, 4.2vw, 40px);
	display: flex;
	align-items: center;
	gap: 8px 12px;
	flex-wrap: wrap;
}

.abn-preview-bar__tag {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	flex: none;
	font-family: Manrope, system-ui, sans-serif;
	font-weight: 800;
	font-size: 0.7rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: #3A2606;
	background: rgba(10, 26, 40, 0.13);
	border: 1px solid rgba(10, 26, 40, 0.3);
	border-radius: var(--abn-r-pill);
	padding: 3px 10px;
}

.abn-preview-bar__msg {
	margin: 0;
	flex: 1 1 220px;
	min-width: 0;
	font-weight: 600;
	font-size: 0.84rem;
	line-height: 1.4;
	color: #1A1206;
}

@media (max-width: 640px) {
	.abn-preview-bar__inner {
		padding: 7px 18px;
		gap: 4px 8px;
		align-items: flex-start;
	}

	.abn-preview-bar__tag {
		font-size: 0.62rem;
		letter-spacing: 0.1em;
		padding: 2px 8px;
	}

	.abn-preview-bar__msg {
		flex: 1 1 150px;
		font-size: 0.78rem;
		line-height: 1.35;
	}
}

/* ---------- 4. Brand lockup ---------- */

.abn-brand {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	min-height: 44px;
}

.abn-brand__word {
	font-family: Manrope, system-ui, sans-serif;
	font-weight: 700;
	font-size: 1rem;
	white-space: nowrap;
}

.abn-brand__word b {
	font-weight: 800;
	color: var(--abn-sky);
}

@media (max-width: 400px) {
	.abn-brand__word {
		font-size: 0.86rem;
	}
}

/* ---------- 5. Checkout progress ---------- */

.abn-offer-steps {
	display: flex;
	align-items: center;
	gap: 10px;
	list-style: none;
	margin: 0;
	padding: 0;
	font-family: Manrope, system-ui, sans-serif;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	color: var(--abn-on-dark-soft);
}

.abn-offer-steps li + li::before {
	content: "";
	display: inline-block;
	width: 18px;
	height: 1px;
	margin-right: 10px;
	background: var(--abn-rule-dark);
	vertical-align: middle;
}

.abn-offer-steps .is-done {
	color: var(--abn-sky);
}

.abn-offer-steps .is-current {
	color: var(--abn-white);
}

@media (max-width: 480px) {
	.abn-offer-steps {
		font-size: 0.68rem;
		gap: 6px;
	}

	.abn-offer-steps li + li::before {
		width: 10px;
		margin-right: 6px;
	}
}

/* ---------- 6. Eyebrow and kicker ---------- */

.abn-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
	padding: 7px 15px;
	border-radius: var(--abn-r-pill);
	background: rgba(233, 180, 76, 0.11);
	border: 1px solid rgba(233, 180, 76, 0.32);
	width: auto;
}

.abn-kicker {
	display: inline-flex;
	align-items: center;
	gap: 10px;
}

.abn-kicker::before {
	content: "";
	width: 26px;
	height: 2px;
	background: currentColor;
	opacity: 0.7;
}

/* ---------- 7. Hero type ---------- */

.abn-h1 .abn-hi {
	font-style: normal;
	color: var(--abn-sky-soft);
	text-decoration: underline;
	text-decoration-color: rgba(25, 183, 210, 0.34);
	text-decoration-thickness: 0.05em;
	text-underline-offset: 0.14em;
}

.abn-sep {
	color: var(--abn-sky);
	margin: 0 4px;
}

.abn-trust-line {
	font-weight: 500;
}

/* ---------- 8. Price components ---------- */

.abn-price-line {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 4px 12px;
	margin: 0;
	font-size: 0.9375rem;
	color: var(--abn-on-dark-soft);
}

.abn-price-line__now {
	color: var(--abn-on-dark);
}

.abn-price-line__now b {
	font-family: Manrope, system-ui, sans-serif;
	font-weight: 800;
	font-size: 1.5rem;
	color: var(--abn-gold);
	letter-spacing: -0.02em;
}

.abn-price-block {
	text-align: center;
}

.abn-price-block__was,
.abn-price-block__label,
.abn-price-block__once {
	margin: 0 0 4px;
	font-size: 0.875rem;
	color: var(--abn-slate);
}

.abn-price-block__label {
	font-family: Manrope, system-ui, sans-serif;
	font-weight: 800;
	font-size: 0.75rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.abn-price-block__price {
	margin: 0 0 4px;
	font-family: Manrope, system-ui, sans-serif;
	font-weight: 800;
	font-size: clamp(2.4rem, 1.8rem + 2vw, 3.2rem);
	line-height: 1;
	letter-spacing: -0.03em;
	color: var(--abn-ink);
}

.abn-price-block--compact .abn-price-block__price {
	font-size: clamp(2rem, 1.6rem + 1.4vw, 2.6rem);
	color: var(--abn-gold);
}

.abn-decision__price {
	text-align: center;
}

.abn-decision__price .abn-price {
	font-family: Manrope, system-ui, sans-serif;
	font-weight: 800;
	font-size: clamp(2.6rem, 2rem + 2.2vw, 3.4rem);
	line-height: 1;
	letter-spacing: -0.03em;
	color: var(--abn-gold);
}

.abn-decision__intl,
.abn-intl-line {
	text-align: center;
	font-size: 0.9rem;
	color: var(--abn-on-dark-soft);
}

/* ---------- 9. Hero product composite ----------
   ONE object: the desktop dashboard with the phone anchored to
   its bottom-right. Elementor positions the phone; this file only
   guarantees the containing block and the overflow safety. */

.abn-hero-stage {
	position: relative;
}

.abn-hero-composite {
	max-width: 100%;
}

.abn-browser__addr {
	margin-left: 10px;
	flex: 1;
	background: rgba(255, 255, 255, 0.07);
	border-radius: var(--abn-r-pill);
	padding: 4px 12px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	min-width: 0;
}

.abn-browser__shot img,
.abn-phone__shot img {
	display: block;
	width: 100%;
	height: auto;
}

.abn-phone__shot img {
	border-radius: 20px;
}

/* The phone notch. Decorative, so it is a pseudo-element and never
   reaches the accessibility tree. */
.abn-phone::before {
	content: "";
	position: absolute;
	top: 14px;
	left: 50%;
	transform: translateX(-50%);
	width: 42px;
	height: 4px;
	border-radius: 4px;
	background: rgba(255, 255, 255, 0.22);
	z-index: 3;
}

.abn-hero-caption {
	letter-spacing: 0.01em;
}

/* ---------- 10. Recreated Orders interface (isolated HTML) ---------- */

.abn-orders {
	border-radius: var(--abn-r-md);
	overflow: hidden;
	background: #0F2436;
	border: 1px solid rgba(255, 255, 255, 0.14);
	box-shadow: 0 18px 44px rgba(4, 12, 20, 0.45);
}

.abn-orders__chrome {
	display: flex;
	align-items: center;
	gap: 6px;
	padding: 9px 12px;
	background: #132C42;
}

.abn-orders__dot {
	width: 9px;
	height: 9px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.22);
	flex: none;
}

.abn-orders__dot--o {
	background: rgba(255, 122, 26, 0.75);
}

.abn-orders__addr {
	margin-left: 10px;
	flex: 1;
	font-size: 0.68rem;
	letter-spacing: 0.03em;
	color: rgba(232, 238, 245, 0.7);
	background: rgba(255, 255, 255, 0.07);
	border-radius: var(--abn-r-pill);
	padding: 4px 12px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	min-width: 0;
}

.abn-orders__body {
	position: relative;
	background: #F4F7FB;
	padding: 14px 14px 16px;
	color: var(--abn-ink);
}

.abn-orders__badge {
	position: absolute;
	top: 12px;
	right: 12px;
	z-index: 2;
	font-family: Manrope, system-ui, sans-serif;
	font-weight: 800;
	font-size: 0.62rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: #7A3B10;
	background: rgba(255, 122, 26, 0.18);
	border: 1px solid rgba(255, 122, 26, 0.4);
	border-radius: var(--abn-r-pill);
	padding: 3px 9px;
}

.abn-orders__search {
	background: var(--abn-white);
	border: 1px solid var(--abn-border);
	border-radius: var(--abn-r-sm);
	padding: 9px 12px;
	font-size: 0.78rem;
	color: #8A99A8;
	margin-bottom: 12px;
	max-width: 78%;
}

.abn-orders__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px;
}

.abn-ord {
	background: var(--abn-white);
	border: 1px solid var(--abn-border);
	border-left: 3px solid var(--abn-slate);
	border-radius: var(--abn-r-sm);
	padding: 10px 12px;
	font-size: 0.72rem;
}

.abn-ord--green { border-left-color: var(--abn-green); }
.abn-ord--amber { border-left-color: #C98A16; }
.abn-ord--blue { border-left-color: #2563EB; }

.abn-ord__top {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 8px;
	margin-bottom: 5px;
}

.abn-ord__name {
	font-weight: 700;
	color: var(--abn-ink);
}

.abn-ord__tag {
	font-size: 0.6rem;
	font-weight: 700;
	padding: 2px 7px;
	border-radius: var(--abn-r-pill);
	white-space: nowrap;
}

.abn-ord__tag--ok { background: rgba(20, 128, 74, 0.12); color: #0D6B3C; }
.abn-ord__tag--warn { background: rgba(201, 138, 22, 0.15); color: #8A5A12; }
.abn-ord__tag--info { background: rgba(37, 99, 235, 0.12); color: #1D4ED8; }

.abn-ord p {
	margin: 0 0 3px;
	color: var(--abn-slate);
}

.abn-ord__line {
	display: flex;
	justify-content: space-between;
	gap: 8px;
	color: var(--abn-ink) !important;
}

.abn-ord__line b {
	white-space: nowrap;
}

.abn-ord__foot {
	display: flex;
	justify-content: space-between;
	gap: 8px;
	font-size: 0.65rem;
	opacity: 0.85;
}

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

	.abn-orders__search {
		max-width: 100%;
	}
}

/* ---------- 11. Notes, quotes and honest disclaimers ---------- */

.abn-note--flag {
	padding-left: 14px;
	border-left: 3px solid var(--abn-gold);
}

.abn-honest {
	padding-left: 14px;
	border-left: 3px solid var(--abn-gold);
	font-size: 0.9375rem;
}

.abn-hook {
	padding-left: 16px;
	border-left: 3px solid var(--abn-orange);
}

.abn-pullquote {
	padding-left: 18px;
	border-left: 3px solid var(--abn-orange);
}

.abn-legal-note {
	opacity: 0.9;
}

.abn-proof-note {
	background: rgba(25, 183, 210, 0.06);
	border: 1px solid rgba(25, 183, 210, 0.24);
	border-radius: var(--abn-r-sm);
	padding: 14px 16px;
}

/* ---------- 12. Decision cards and declines ---------- */

.abn-decline {
	display: inline-block;
	color: var(--abn-on-dark-soft);
	text-decoration: underline;
	text-underline-offset: 3px;
	min-height: 44px;
	line-height: 44px;
}

.abn-decline:hover {
	color: var(--abn-white);
}

.abn-decline-wrap p {
	margin: 0;
}

/* ---------- 13. VIP access timeline ---------- */

.abn-timeline__row {
	padding: 10px 0;
	border-bottom: 1px solid var(--abn-rule-dark);
}

.abn-timeline__row:last-child {
	border-bottom: 0;
}

/* ---------- 14. Testimonials ---------- */

.abn-testimonials-inner {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.abn-testi-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
}

.abn-testi {
	display: flex;
	flex-direction: column;
	gap: 14px;
	background: var(--abn-cloud);
	border: 1px solid var(--abn-border);
	border-radius: var(--abn-r-md);
	padding: 22px 20px;
}

.abn-testi--placeholder {
	border-style: dashed;
	opacity: 0.92;
}

.abn-testi__person {
	display: flex;
	align-items: center;
	gap: 12px;
}

.abn-testi__avatar {
	width: 56px;
	height: 56px;
	border-radius: 50%;
	object-fit: cover;
	flex: none;
	display: block;
}

.abn-testi__avatar--empty {
	background: var(--abn-midnight);
	opacity: 0.25;
}

.abn-testi__name {
	margin: 0;
	font-family: Manrope, system-ui, sans-serif;
	font-weight: 700;
	color: var(--abn-ink);
}

.abn-testi__role {
	margin: 0;
	font-size: 0.85rem;
	color: var(--abn-slate);
}

.abn-testi__quote {
	margin: 0;
	background: var(--abn-white);
	border: 1px solid var(--abn-border);
	border-radius: var(--abn-r-sm);
	padding: 14px 16px;
	color: var(--abn-ink);
}

.abn-testi__shot img {
	width: 100%;
	height: auto;
	display: block;
	border-radius: var(--abn-r-sm);
}

.abn-testi__pending {
	margin: 0;
	font-family: Manrope, system-ui, sans-serif;
	font-weight: 700;
	font-size: 0.72rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--abn-slate);
}

.abn-dev-note {
	margin: 0;
	font-style: italic;
	font-size: 0.875rem;
	color: #8A5A12;
	background: rgba(233, 180, 76, 0.1);
	border: 1px dashed rgba(233, 180, 76, 0.5);
	border-radius: var(--abn-r-sm);
	padding: 12px 16px;
}

.abn-testi__clarify {
	margin: 0;
	text-align: center;
	font-size: 0.875rem;
	color: var(--abn-slate);
}

@media (max-width: 1080px) {
	.abn-testi-grid {
		grid-template-columns: 1fr;
	}
}

/* ---------- 15. Links, placeholders and fail-closed states ---------- */

.abn-legal-links {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 10px;
	font-size: 0.875rem;
}

.abn-legal-links a {
	color: var(--abn-on-dark-soft);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.abn-legal-links a:hover {
	color: var(--abn-white);
}

.abn-legal-links--inline {
	font-size: 0.8125rem;
}

.abn-legal-links--inline a {
	color: var(--abn-slate);
}

/* An unset destination renders as a marked, non-clickable placeholder.
   It never becomes href="#" and never routes anywhere. */
.abn-link-placeholder {
	opacity: 0.62;
	cursor: not-allowed;
	text-decoration: underline dotted;
}

.abn-cta-unavailable {
	margin: 10px 0 0;
	font-size: 0.9375rem;
	color: var(--abn-on-dark-soft);
	text-align: center;
}

/* Administrator-only. Customers never see this. */
.abn-config-warning {
	display: inline-block;
	font-size: 0.8125rem;
	font-weight: 600;
	color: #8A5A12;
	background: rgba(233, 180, 76, 0.16);
	border: 1px dashed rgba(233, 180, 76, 0.6);
	border-radius: 6px;
	padding: 4px 9px;
}

.abn-link-cta {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	min-height: 44px;
	font-family: Manrope, system-ui, sans-serif;
	font-weight: 800;
	font-size: 0.8125rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--abn-sky);
	text-decoration: none;
}

.abn-link-cta:hover {
	text-decoration: underline;
	text-underline-offset: 4px;
}

/* ---------- 16. Thank-you message ---------- */

.abn-ty {
	text-align: center;
}

.abn-ty__label {
	margin: 0 0 10px;
	font-family: Manrope, system-ui, sans-serif;
	font-weight: 800;
	font-size: 0.75rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--abn-gold);
}

.abn-ty__title {
	margin: 0 0 12px;
	font-family: Manrope, system-ui, sans-serif;
	font-weight: 800;
	font-size: clamp(1.9rem, 1.4rem + 2.2vw, 3rem);
	line-height: 1.08;
	letter-spacing: -0.03em;
	color: var(--abn-white);
}

.abn-ty__lede {
	margin: 0;
	font-size: clamp(1rem, 0.95rem + 0.4vw, 1.2rem);
	line-height: 1.5;
	color: var(--abn-on-dark);
}

/* ---------- 17. Overflow safety ----------
   The composite overlays and the wide interfaces must never create a
   horizontal scrollbar at any supported viewport. */

.abn-hero,
.abn-proof,
.abn-story,
.abn-vault-hero {
	overflow-x: clip;
}

.abn-orders,
.abn-browser,
.abn-phone {
	max-width: 100%;
}

/* ---------- 18. Reduced motion ---------- */

@media (prefers-reduced-motion: reduce) {
	.abn-cta,
	.abn-decline,
	.abn-link-cta,
	.abn-testi,
	.abn-browser,
	.abn-phone {
		transition: none !important;
		animation: none !important;
	}

	html {
		scroll-behavior: auto !important;
	}
}

/* ---------- 19. Touch targets ---------- */

@media (pointer: coarse) {
	.abn-legal-links a,
	.abn-support a,
	.abn-link-cta,
	.abn-decline {
		min-height: 44px;
		display: inline-flex;
		align-items: center;
	}
}

/* ---------- 20. Cover images and small grids ---------- */

.abn-toolkit {
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	gap: 10px;
}

.abn-cover img,
.abn-week-cover img {
	width: 100%;
	height: auto;
	display: block;
	border-radius: var(--abn-r-sm);
}

.abn-cover--sq img {
	border-radius: var(--abn-r-md);
	max-width: 84px;
}

@media (max-width: 860px) {
	.abn-toolkit {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 400px) {
	.abn-toolkit {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.abn-cover--sq img {
		max-width: 72px;
	}
}

/* ---------- 21. The Today → After diagram ---------- */

.abn-gap-arrow {
	flex: none;
}

@media (max-width: 767px) {
	.abn-gap-arrow {
		transform: rotate(90deg);
	}
}

/* ---------- 22. Vault card stack ---------- */

.abn-vault-stack {
	counter-reset: abn-vault;
}

/* ---------- 23. Path stages ---------- */

.abn-path__stage {
	position: relative;
}

/* ---------- 24. Asset replacement markers ----------
   Any image still awaiting a real file carries `abn-replace-me`.
   The marker shows in Preview Mode only, so a reviewer can see at a
   glance what is outstanding, and disappears in production. */

.abn-replace-me {
	position: relative;
}

body.abn-preview-on .abn-replace-me::after {
	content: "Replace this image";
	position: absolute;
	left: 50%;
	top: 14%;
	transform: translateX(-50%);
	z-index: 2;
	font-family: Manrope, system-ui, sans-serif;
	font-weight: 700;
	font-size: 0.78rem;
	letter-spacing: 0.04em;
	color: var(--abn-on-dark-soft);
	background: rgba(7, 21, 33, 0.72);
	border: 1px solid rgba(255, 255, 255, 0.2);
	padding: 8px 14px;
	border-radius: var(--abn-r-pill);
	pointer-events: none;
	white-space: nowrap;
}

.abn-kelvin-slot img {
	width: 100%;
	height: auto;
	display: block;
	border-radius: var(--abn-r-lg);
	object-fit: cover;
}

/* ---------- 25. Price line fragments ---------- */

.abn-price-line__was s {
	opacity: 0.75;
}

.abn-price-line__dot {
	color: var(--abn-sky);
}

@media (max-width: 640px) {
	.abn-price-line {
		flex-direction: column;
		gap: 4px;
		margin: 0 0 14px;
		padding: 12px 14px;
		border-radius: var(--abn-r-sm);
		background: rgba(233, 180, 76, 0.08);
		border: 1px solid rgba(233, 180, 76, 0.24);
	}

	.abn-price-line__dot {
		display: none;
	}

	.abn-price-line__now b {
		font-size: 1.4rem;
	}
}

/* ---------- 26. Section hook classes ----------
   The remaining `abn-` classes in the templates carry no rules on
   purpose. They are stable hooks so future CSS can target a section
   without editing the Elementor structure:

     abn-hero  abn-problem  abn-story  abn-proof  abn-testimonials
     abn-path-section  abn-roadmap  abn-offer  abn-fit  abn-enrol
     abn-faq-section  abn-final  abn-site-header  abn-site-footer
     abn-offer-header  abn-offer-footer  abn-checkout  abn-checkout-hero
     abn-vip-*  abn-replay*  abn-vault-*  abn-starter*  abn-thankyou

   Everything visual about those sections is set by Elementor global
   settings and per-widget controls, so a non-developer can change it
   in the editor without touching this file. Do not move that styling
   here; it would take the controls away from them. */
