/*
Theme Name: AFFDigest (Kadence Child)
Theme URI: https://affdigest.com/
Description: Kadence child theme for AFFDigest — a verified affiliate intelligence directory. Handles visual presentation only. All core data, CPTs, taxonomies, ACF fields, AI intake, schema, and redirects live in the aff-engine plugin.
Author: AFFINCO / AFFDigest
Author URI: https://affdigest.com/
Template: kadence
Version: 7.5.0
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: kadence-child
*/

/* -----------------------------------------------------------------------------
 * Theme-level design: typography, header, footer, content rhythm. Directory
 * component styling lives in the aff-engine plugin (assets/css/frontend.css).
 * -------------------------------------------------------------------------- */

:root {
	--aff-primary: #2563eb;
	--aff-ink: #0f172a;
	--aff-muted: #64748b;
	--aff-border: #e2e8f0;
}

/* --- Global typography -------------------------------------------------- */

body {
	font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	color: #1f2937;
	background: #f8fafc;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

h1, h2, h3, h4, h5, h6,
.aff-btn,
.site-title {
	font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}

h1, h2, h3, h4, h5, h6 {
	color: var(--aff-ink);
	letter-spacing: -0.015em;
	font-weight: 700;
}

a {
	color: var(--aff-primary);
}

/* --- Header -------------------------------------------------------------- */

#masthead,
.site-header {
	background: rgb(255 255 255 / 92%);
	backdrop-filter: blur(8px);
	border-bottom: 1px solid var(--aff-border);
}

.site-branding .site-title {
	font-weight: 800;
	letter-spacing: -0.02em;
	font-size: 22px;
}

.site-branding .site-title a {
	color: var(--aff-ink);
	text-decoration: none;
}

.site-branding .site-title a::before {
	content: "▲ ";
	color: var(--aff-primary);
	font-size: 15px;
	vertical-align: 2px;
}

.site-branding .site-description {
	display: none;
}

.main-navigation .primary-menu-container > ul > li > a,
.header-navigation .menu > li > a {
	font-weight: 600;
	font-size: 14.5px;
	color: #334155;
}

.main-navigation .primary-menu-container > ul > li > a:hover,
.header-navigation .menu > li > a:hover {
	color: var(--aff-primary);
}

/* --- Content pages (non-directory) ---------------------------------------- */

.page .entry-content,
.single-post .entry-content {
	max-width: 860px;
}

.home .entry-content {
	max-width: none;
}

/* Full-bleed hero on the front page: unlock Kadence's containers instead of
   the calc(50% - 50vw) trick, which overshoots by the scrollbar width and
   shifted the hero ~7px off-screen. Only PADDING is ours — the .content-area
   margin belongs to Kadence's Content Vertical Padding control (the home page
   uses its "Bottom only" setting for the flush dark hero). */
.home .content-area {
	padding-top: 0;
}

body.home .site-container,
body.home .content-container,
body.home .content-wrap,
body.home article,
body.home .entry-content {
	max-width: 100%;
}

body.home .content-container,
body.home .content-wrap {
	padding-left: 0;
	padding-right: 0;
}

.home .entry-content > .aff-hero-home {
	margin-left: 0;
	margin-right: 0;
}

.home .entry-content {
	margin-top: 0;
}

.home .entry-header {
	display: none;
}

/* --- Footer ----------------------------------------------------------------- */

#colophon,
.site-footer {
	background: var(--aff-ink);
	color: #cbd5e1;
	border-top: 0;
}

.site-footer a,
#colophon a {
	color: #e2e8f0;
	text-decoration: none;
}

.site-footer a:hover,
#colophon a:hover {
	color: #fff;
}

.site-footer .footer-html,
#colophon .footer-html {
	font-size: 13px;
	color: #94a3b8;
}


/* =============================================================================
 * v2.0 — Modern SaaS overhaul (Stripe/Linear direction)
 * One voice: indigo brand system, airy spacing, quiet cards, finished header.
 * Child stylesheet loads after the plugin CSS, so these overrides win.
 * ========================================================================== */

:root {
	--aff-primary: #4f46e5;
	--aff-primary-dark: #4338ca;
	--aff-primary-soft: #eef2ff;
	--aff-ink: #0f172a;
	--aff-muted: #64748b;
	--aff-border: #e2e8f0;
}

/* --- Brand color sweep (literal blues -> indigo system) --------------------- */

.aff-btn--primary,
.aff-hero-home__search .aff-btn--primary {
	background: linear-gradient(135deg, #6366f1, #4f46e5);
	box-shadow: 0 2px 8px rgb(79 70 229 / 28%);
}

.aff-btn--primary:hover {
	background: linear-gradient(135deg, #4f46e5, #4338ca);
	box-shadow: 0 6px 16px rgb(79 70 229 / 32%);
}

.aff-btn--ghost:hover {
	border-color: var(--aff-primary);
	color: var(--aff-primary);
}

.aff-score-ring {
	background: conic-gradient(#4f46e5 calc(var(--aff-p) * 1%), #e2e8f0 0);
	box-shadow: 0 4px 16px rgb(79 70 229 / 20%);
}

.aff-scores__fill {
	background: linear-gradient(90deg, #818cf8, #4f46e5);
}

.aff-score--good {
	background: var(--aff-primary-soft);
	color: var(--aff-primary-dark);
}

.aff-hero__dim-value,
.aff-similar__score,
.aff-home-section__more,
.aff-hub-links__list a:hover {
	color: var(--aff-primary);
}

.aff-eyebrow,
.aff-hero-home__eyebrow {
	color: #818cf8;
}

.aff-hero-home {
	background:
		radial-gradient(900px 420px at 82% -18%, rgb(99 102 241 / 30%), transparent 60%),
		radial-gradient(700px 360px at 8% 118%, rgb(139 92 246 / 20%), transparent 55%),
		linear-gradient(152deg, #0e1029 0%, #191d47 55%, #232a63 100%);
}

.aff-hero-home__title::after {
	background: linear-gradient(90deg, #6366f1, #a78bfa);
}

.site-branding .site-title a::before {
	color: #6366f1;
}

/* --- Header: finished, product-grade ------------------------------------------ */

.site-header-row {
	min-height: 66px;
}

#masthead {
	box-shadow: 0 1px 0 var(--aff-border);
	border-bottom: 0;
}

.site-branding .site-title {
	font-size: 20px;
}

#masthead .main-navigation .menu > li > a {
	padding: 8px 14px;
	border-radius: 8px;
	font-size: 14.5px;
	font-weight: 600;
	color: #334155;
	transition: background 0.15s ease, color 0.15s ease;
}

#masthead .main-navigation .menu > li > a:hover {
	background: #f1f5f9;
	color: var(--aff-primary);
}

#masthead .main-navigation .menu > li.current-menu-item > a {
	color: var(--aff-primary);
}

/* Header CTA button */

#masthead .menu > li.aff-nav-cta > a {
	background: linear-gradient(135deg, #6366f1, #4f46e5);
	color: #fff;
	border-radius: 9px;
	padding: 9px 18px;
	margin-left: 8px;
	box-shadow: 0 2px 8px rgb(79 70 229 / 25%);
}

#masthead .menu > li.aff-nav-cta > a:hover {
	background: linear-gradient(135deg, #4f46e5, #4338ca);
	color: #fff;
}

/* --- Airier rhythm -------------------------------------------------------------- */

.aff-home-section {
	margin-bottom: 72px;
}

.aff-hero-home__inner {
	padding: 96px 20px 72px;
}

.aff-trust-band {
	margin-bottom: 72px;
}

.aff-section,
.aff-card {
	padding: 24px 28px;
	margin-bottom: 24px;
	border-radius: 14px;
}

.aff-single__cols,
.aff-archive__cols {
	gap: 28px;
}

.aff-cards {
	gap: 18px;
}

.aff-archive__inner,
.aff-single__inner {
	padding-top: 32px;
}

/* --- Quiet cards (less decoration, more confidence) ------------------------------ */

.aff-card-item {
	border-radius: 16px;
	padding: 20px;
	background: #fff;
	box-shadow: 0 1px 2px rgb(15 23 42 / 4%);
	transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

.aff-card-item::before {
	display: none; /* retire the gradient strip — one voice, less noise */
}

.aff-card-item:hover {
	border-color: #c7d2fe;
	box-shadow: 0 12px 32px -12px rgb(79 70 229 / 22%);
	transform: translateY(-2px);
}

.aff-card-item__kicker {
	color: #a3aab8;
	font-size: 10px;
}

.aff-card-item__fact {
	background: #f8fafc;
	border: 0;
	border-radius: 10px;
	padding: 9px 10px;
}

.aff-card-item__score {
	border-radius: 9px;
}

.aff-tags a {
	background: var(--aff-primary-soft);
	color: var(--aff-primary-dark);
}

.aff-tags a:hover {
	background: #e0e7ff;
}

/* --- Content pages breathing room -------------------------------------------------- */

.aff-archive__header {
	padding: 40px 32px;
	border-radius: 18px;
}

.aff-hub-tiles a:hover,
.aff-best-links a:hover {
	border-color: #c7d2fe;
	box-shadow: 0 10px 26px -12px rgb(79 70 229 / 22%);
}

.aff-hub-tiles a::after {
	color: #c7d2fe;
}

.aff-hub-tiles a:hover::after {
	color: var(--aff-primary);
}

.aff-best-links__badge {
	background: var(--aff-primary-soft);
	color: var(--aff-primary);
}

.aff-trust-band__icon {
	background: var(--aff-primary-soft);
	color: var(--aff-primary);
}

.aff-stat__icon {
	color: #a5b4fc;
}

/* Segmented control active tint */

.aff-segmented__item:hover {
	color: var(--aff-primary);
}

/* Calculator result */

.aff-calc__result strong {
	color: var(--aff-primary);
}

/* --- v2.1 screenshot-driven fixes ---------------------------------------- */

/* Hero: Kadence entry-content heading margins created a huge badge->title
   gap; pin the rhythm explicitly. */
.entry-content .aff-hero-home__title,
.aff-hero-home__title {
	margin: 16px 0 14px;
}

.entry-content .aff-hero-home__subtitle,
.aff-hero-home__subtitle {
	margin: 0 auto 26px;
}

.aff-hero-home__inner {
	padding: 64px 20px 56px;
}

/* Section heads: View-all pill aligns with the TITLE line, and the eyebrow
   hugs its heading. */
.aff-home-section__head {
	align-items: flex-end;
}

.entry-content .aff-home-section__head h2,
.aff-home-section__head h2 {
	margin: 0;
}

.aff-eyebrow {
	margin: 0 0 6px;
}

/* Header wordmark: Kadence puts .site-title on the link itself, so the old
   ".site-title a::before" never matched. */
.site-branding a::before {
	content: "▲ ";
	color: #6366f1;
	font-size: 15px;
	vertical-align: 2px;
}

/* Filter sidebar: group labels above each facet. */
.aff-facet__label {
	font-size: 11px;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #94a3b8;
	margin: 0 0 8px;
}

.aff-facet {
	padding: 14px 0;
}


/* =============================================================================
 * v2.2 — Premium + high-converting layer
 * Stronger CTA hierarchy, trust cues, Editor's Choice, conversion band.
 * ========================================================================== */

/* --- Hero CTA buttons ----------------------------------------------------- */

.aff-hero-home__cta {
	display: flex;
	gap: 12px;
	justify-content: center;
	flex-wrap: wrap;
	margin: -8px 0 30px;
}

.aff-hero-home__cta .aff-btn--primary {
	padding: 13px 26px;
	font-size: 15px;
}

.aff-hero-home__cta-ghost {
	padding: 13px 26px;
	font-size: 15px;
	color: #e2e8f0;
	background: rgb(255 255 255 / 7%);
	border: 1px solid rgb(255 255 255 / 18%);
	border-radius: 10px;
	backdrop-filter: blur(6px);
	transition: background 0.15s ease, border-color 0.15s ease;
}

.aff-hero-home__cta-ghost:hover {
	background: rgb(255 255 255 / 14%);
	border-color: rgb(165 180 252 / 55%);
	color: #fff;
}

/* --- Card: CTA hierarchy + trust cue -------------------------------------- */

.aff-card-item__foot {
	margin-top: auto;
	padding-top: 4px;
}

.aff-card-item__trust {
	display: flex;
	align-items: center;
	gap: 6px;
	margin: 0 0 10px;
	font-size: 12px;
	font-weight: 600;
	color: #15803d;
}

.aff-card-item__trust svg {
	width: 14px;
	height: 14px;
	flex: 0 0 auto;
}

.aff-card-item__actions {
	display: flex;
	flex-direction: column;
	gap: 8px;
	align-items: stretch;
}

.aff-card-item__cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: 100%;
	padding: 12px 18px;
	font-size: 15px;
	font-weight: 700;
	border-radius: 11px;
	background: linear-gradient(135deg, #6366f1, #4f46e5);
	color: #fff;
	box-shadow: 0 4px 14px rgb(79 70 229 / 30%);
	transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}

.aff-card-item__cta svg {
	width: 17px;
	height: 17px;
	transition: transform 0.15s ease;
}

.aff-card-item__cta:hover {
	background: linear-gradient(135deg, #4f46e5, #4338ca);
	box-shadow: 0 8px 22px rgb(79 70 229 / 40%);
	transform: translateY(-1px);
	color: #fff;
}

.aff-card-item__cta:hover svg {
	transform: translateX(3px);
}

.aff-card-item__review {
	text-align: center;
	font-size: 13px;
	font-weight: 600;
	color: #64748b;
	text-decoration: none;
	padding: 4px;
}

.aff-card-item__review:hover {
	color: var(--aff-primary);
}

/* --- Editor's Choice + rank badges ---------------------------------------- */

.aff-card-item--top {
	border-color: #c7b3ff;
	box-shadow: 0 0 0 1px #c7b3ff, 0 14px 34px -14px rgb(124 58 237 / 30%);
}

.aff-card-item__crown {
	position: absolute;
	top: 0;
	right: 0;
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 6px 14px;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: #fff;
	background: linear-gradient(135deg, #8b5cf6, #6366f1);
	border-radius: 0 16px 0 14px;
	box-shadow: 0 4px 12px rgb(124 58 237 / 30%);
}

.aff-card-item__rank {
	position: absolute;
	top: 14px;
	right: 16px;
	font-size: 13px;
	font-weight: 800;
	color: #cbd5e1;
}

.aff-card-item--top .aff-card-item__kicker {
	color: #7c3aed;
}

/* Give the crown room so it never overlaps the score pill */
.aff-card-item--top .aff-card-item__head {
	margin-top: 20px;
}

/* --- Conversion band ------------------------------------------------------- */

.aff-cta-band {
	max-width: 1160px;
	margin: 0 auto 64px;
	padding: 0 16px;
}

.aff-cta-band__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 28px;
	flex-wrap: wrap;
	padding: 40px 44px;
	border-radius: 22px;
	background:
		radial-gradient(600px 240px at 88% -30%, rgb(139 92 246 / 45%), transparent 60%),
		radial-gradient(500px 220px at 5% 130%, rgb(59 130 246 / 35%), transparent 55%),
		linear-gradient(135deg, #1e1b4b 0%, #312e81 60%, #3730a3 100%);
	box-shadow: 0 24px 60px -28px rgb(49 46 129 / 70%);
	overflow: hidden;
}

.aff-cta-band__text h2 {
	margin: 0 0 6px;
	color: #fff;
	font-size: clamp(22px, 3.2vw, 30px);
	font-weight: 800;
	letter-spacing: -0.02em;
}

.aff-cta-band__text p {
	margin: 0;
	color: #c7d2fe;
	font-size: 15.5px;
	max-width: 620px;
}

.aff-cta-band__btn {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	gap: 9px;
	padding: 15px 30px;
	font-size: 16px;
	font-weight: 700;
	color: #312e81;
	background: #fff;
	border-radius: 12px;
	box-shadow: 0 8px 24px rgb(0 0 0 / 25%);
	transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.aff-cta-band__btn svg {
	width: 18px;
	height: 18px;
	transition: transform 0.15s ease;
}

.aff-cta-band__btn:hover {
	transform: translateY(-2px);
	box-shadow: 0 14px 32px rgb(0 0 0 / 32%);
	color: #312e81;
}

.aff-cta-band__btn:hover svg {
	transform: translateX(4px);
}

@media (max-width: 700px) {
	.aff-cta-band__inner {
		padding: 32px 26px;
		text-align: center;
		justify-content: center;
	}
}

/* --- Premium polish: sticky CTA, single-page hero CTA --------------------- */

.aff-sticky-cta {
	background: rgb(255 255 255 / 97%);
	box-shadow: 0 -8px 28px rgb(15 23 42 / 10%);
	backdrop-filter: blur(8px);
}

.aff-sticky-cta .aff-btn--primary {
	padding: 11px 26px;
	font-size: 15px;
}

/* The listing hero's main CTA — make it the clear focal action */
.aff-hero__aside .aff-btn--primary {
	padding: 13px 30px;
	font-size: 16px;
	font-weight: 700;
}

/* --- v2.3: Recently verified strip + footer SEO hub mesh ------------------ */

.aff-recent {
	list-style: none;
	margin: 0;
	padding: 0;
	background: #fff;
	border: 1px solid var(--aff-border);
	border-radius: 16px;
	overflow: hidden;
}

.aff-recent__row + .aff-recent__row {
	border-top: 1px solid #f1f5f9;
}

.aff-recent__link {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 13px 20px;
	text-decoration: none;
	transition: background 0.15s ease;
}

.aff-recent__link:hover {
	background: #f8fafc;
}

.aff-recent__logo,
.aff-recent__logo.aff-monogram {
	width: 34px;
	height: 34px;
	border-radius: 8px;
	font-size: 14px;
	flex: 0 0 auto;
}

.aff-recent__name {
	font-weight: 700;
	color: var(--aff-ink);
	flex: 1 1 auto;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.aff-recent__type {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: #94a3b8;
	flex: 0 0 auto;
}

.aff-recent__score {
	font-weight: 800;
	color: var(--aff-primary);
	flex: 0 0 auto;
}

.aff-recent__date {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	font-size: 12.5px;
	font-weight: 600;
	color: #15803d;
	flex: 0 0 auto;
}

.aff-recent__date svg {
	width: 14px;
	height: 14px;
}

@media (max-width: 640px) {
	.aff-recent__type,
	.aff-recent__score {
		display: none;
	}
}

/* =============================================================================
 * v3.0 — Directory identity: split hero with live leaderboard, brand-color
 * card banners with payout callouts, dense directory rows on archives.
 * ========================================================================== */

/* --- Split hero ------------------------------------------------------------ */

.aff-hero-home__inner--split {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(320px, 0.85fr);
	gap: 56px;
	align-items: center;
	text-align: left;
	max-width: 1160px;
	padding: 72px 20px 40px;
}

.aff-hero-home__inner--split .aff-hero-home__title {
	font-size: clamp(30px, 4.2vw, 44px);
}

.aff-hero-home__inner--split .aff-hero-home__title::after {
	margin-left: 0;
}

.aff-hero-home__inner--split .aff-hero-home__subtitle {
	margin-left: 0;
	max-width: 540px;
}

.aff-hero-home__inner--split .aff-hero-home__search {
	margin-left: 0;
	margin-bottom: 20px;
}

.aff-hero-home__points {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 8px 22px;
	font-size: 13.5px;
	font-weight: 600;
	color: #93c5fd;
}

.aff-hero-home__inner--stats {
	max-width: 1160px;
	padding: 0 20px 56px;
}

/* --- Leaderboard panel ------------------------------------------------------- */

.aff-leaderboard {
	background: rgb(255 255 255 / 6%);
	border: 1px solid rgb(255 255 255 / 14%);
	border-radius: 18px;
	padding: 22px 22px 16px;
	backdrop-filter: blur(10px);
	box-shadow: 0 24px 60px -24px rgb(0 0 0 / 50%);
}

.aff-leaderboard__title {
	margin: 0 0 14px;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.09em;
	text-transform: uppercase;
	color: #8fa3c8;
}

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

.aff-leaderboard__row {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 11px 12px;
	border-radius: 12px;
	text-decoration: none;
	transition: background 0.15s ease;
}

.aff-leaderboard__row:hover {
	background: rgb(255 255 255 / 8%);
}

.aff-leaderboard__rank {
	flex: 0 0 26px;
	height: 26px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 8px;
	font-size: 13px;
	font-weight: 800;
	color: #0f172a;
	background: #cbd5e1;
}

.aff-leaderboard__rank--1 {
	background: linear-gradient(135deg, #fde047, #f59e0b);
}

.aff-leaderboard__rank--2 {
	background: linear-gradient(135deg, #e2e8f0, #94a3b8);
}

.aff-leaderboard__rank--3 {
	background: linear-gradient(135deg, #fdba74, #ea580c);
}

.aff-leaderboard__logo,
.aff-leaderboard__logo.aff-monogram {
	width: 38px;
	height: 38px;
	border-radius: 10px;
	font-size: 16px;
	flex: 0 0 auto;
}

.aff-leaderboard__body {
	flex: 1 1 auto;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 3px;
}

.aff-leaderboard__name {
	font-weight: 700;
	font-size: 14.5px;
	color: #fff;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.aff-leaderboard .aff-stars__base {
	font-size: 11px;
	color: rgb(255 255 255 / 22%);
}

.aff-leaderboard__score {
	flex: 0 0 auto;
	font-size: 15px;
	font-weight: 800;
	color: #4ade80;
}

.aff-leaderboard__all {
	display: block;
	margin-top: 10px;
	padding: 10px 12px 4px;
	border-top: 1px solid rgb(255 255 255 / 10%);
	font-size: 13px;
	font-weight: 700;
	color: #93c5fd;
	text-decoration: none;
}

.aff-leaderboard__all:hover {
	color: #fff;
}

@media (max-width: 920px) {
	.aff-hero-home__inner--split {
		grid-template-columns: 1fr;
		gap: 36px;
		text-align: center;
		padding-top: 56px;
	}

	.aff-hero-home__inner--split .aff-hero-home__title::after {
		margin-left: auto;
	}

	.aff-hero-home__inner--split .aff-hero-home__subtitle,
	.aff-hero-home__inner--split .aff-hero-home__search {
		margin-left: auto;
		margin-right: auto;
	}

	.aff-hero-home__points {
		justify-content: center;
	}
}



/* =============================================================================
 * v3.1 — Alive layer (ReactBits-inspired, vanilla): aurora hero, grain,
 * shiny accents, count-up stats, spotlight cards, scroll reveal.
 * All motion is disabled under prefers-reduced-motion.
 * ========================================================================== */

/* --- Aurora hero: drifting gradient blobs ---------------------------------- */

.aff-hero-home {
	isolation: isolate;
}

.aff-hero-home::after {
	content: "";
	position: absolute;
	inset: -20%;
	z-index: -1;
	background:
		radial-gradient(420px 320px at 22% 30%, rgb(99 102 241 / 38%), transparent 70%),
		radial-gradient(480px 360px at 78% 65%, rgb(168 85 247 / 30%), transparent 70%),
		radial-gradient(360px 300px at 55% 15%, rgb(56 189 248 / 22%), transparent 70%);
	filter: blur(40px);
	animation: aff-aurora 16s ease-in-out infinite alternate;
	pointer-events: none;
}

@keyframes aff-aurora {
	0% {
		transform: translate3d(-4%, -3%, 0) rotate(-2deg) scale(1);
	}
	50% {
		transform: translate3d(3%, 4%, 0) rotate(2deg) scale(1.08);
	}
	100% {
		transform: translate3d(-2%, 2%, 0) rotate(-1deg) scale(1.02);
	}
}

/* Grain texture over the hero (Grainient vibe) */

.aff-hero-home::before {
	background-image:
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E"),
		radial-gradient(circle, rgb(255 255 255 / 7%) 1px, transparent 1px);
	background-size: 140px 140px, 26px 26px;
	opacity: 0.5;
}

/* --- Shiny sweep on primary CTAs + eyebrow badge ---------------------------- */

.aff-hero-home__eyebrow {
	position: relative;
	overflow: hidden;
}

.aff-hero-home__eyebrow::after,
.aff-cta-band__btn::after {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	left: -80%;
	width: 55%;
	background: linear-gradient(105deg, transparent 20%, rgb(255 255 255 / 45%) 50%, transparent 80%);
	transform: skewX(-18deg);
	animation: aff-shine 4.2s ease-in-out infinite;
	pointer-events: none;
}

.aff-cta-band__btn {
	position: relative;
	overflow: hidden;
}

.aff-cta-band__btn::after {
	background: linear-gradient(105deg, transparent 20%, rgb(79 70 229 / 22%) 50%, transparent 80%);
}

@keyframes aff-shine {
	0%, 55% {
		left: -80%;
	}
	85%, 100% {
		left: 130%;
	}
}

/* --- Leaderboard: gentle float + staggered entrance -------------------------- */

.aff-leaderboard {
	animation: aff-float 7s ease-in-out infinite;
}

@keyframes aff-float {
	0%, 100% {
		transform: translateY(0);
	}
	50% {
		transform: translateY(-8px);
	}
}

.aff-leaderboard__list li {
	opacity: 0;
	animation: aff-slide-in 0.5s ease-out forwards;
}

.aff-leaderboard__list li:nth-child(1) { animation-delay: 0.15s; }
.aff-leaderboard__list li:nth-child(2) { animation-delay: 0.3s; }
.aff-leaderboard__list li:nth-child(3) { animation-delay: 0.45s; }

@keyframes aff-slide-in {
	from {
		opacity: 0;
		transform: translateX(18px);
	}
	to {
		opacity: 1;
		transform: translateX(0);
	}
}

/* --- Spotlight hover (JS sets --spot-x / --spot-y) ---------------------------- */

.aff-spot {
	position: relative;
}

.aff-spot::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
	background: radial-gradient(280px circle at var(--spot-x, 50%) var(--spot-y, 50%), rgb(99 102 241 / 10%), transparent 65%);
	opacity: 0;
	transition: opacity 0.25s ease;
	pointer-events: none;
	z-index: 1;
}

.aff-spot:hover::after {
	opacity: 1;
}

.aff-leaderboard.aff-spot::after {
	background: radial-gradient(280px circle at var(--spot-x, 50%) var(--spot-y, 50%), rgb(255 255 255 / 9%), transparent 65%);
}

/* --- Scroll reveal ------------------------------------------------------------- */

.aff-reveal {
	opacity: 0;
	transform: translateY(26px);
	transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

.aff-reveal.is-revealed {
	opacity: 1;
	transform: translateY(0);
}

/* --- Micro-life: score pulse, badge pop, banner sheen -------------------------- */

.aff-leaderboard__score {
	animation: aff-pulse 2.6s ease-in-out infinite;
}

@keyframes aff-pulse {
	0%, 100% {
		opacity: 1;
	}
	50% {
		opacity: 0.65;
	}
}


/* --- Kill all of it for reduced-motion users ------------------------------------ */

@media (prefers-reduced-motion: reduce) {
	.aff-hero-home::after,
	.aff-hero-home__eyebrow::after,
	.aff-cta-band__btn::after,
	.aff-leaderboard,
	.aff-leaderboard__list li,
	.aff-leaderboard__score {
		animation: none !important;
	}

	.aff-leaderboard__list li {
		opacity: 1;
	}

	.aff-reveal {
		opacity: 1;
		transform: none;
		transition: none;
	}
}


/* =============================================================================
 * v3.2 — Hero perfection + homepage list rows
 * ========================================================================== */

/* --- Gradient title word ----------------------------------------------------- */

.aff-title-grad {
	background: linear-gradient(92deg, #818cf8 0%, #c084fc 55%, #22d3ee 100%);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

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

.aff-hero-home__inner--split {
	padding: 64px 20px 36px;
	gap: 48px;
}

.aff-hero-home__inner--split .aff-hero-home__title {
	margin-top: 12px;
	margin-bottom: 12px;
}

.aff-hero-home__inner--split .aff-hero-home__title::after {
	display: none; /* the gradient word replaces the underline accent */
}

.aff-hero-home__inner--split .aff-hero-home__subtitle {
	font-size: 16.5px;
	margin-bottom: 22px;
}

.aff-hero-home__search {
	box-shadow: 0 18px 46px -18px rgb(0 0 0 / 55%);
}

/* Leaderboard: tighter, glowing edge */

.aff-leaderboard {
	padding: 18px 18px 12px;
	border-color: rgb(129 140 248 / 30%);
	box-shadow:
		0 0 0 1px rgb(129 140 248 / 12%),
		0 30px 70px -30px rgb(0 0 0 / 65%),
		inset 0 1px 0 rgb(255 255 255 / 8%);
}

/* --- Stats: one segmented glass bar instead of four boxes ----------------------- */

.aff-hero-home__inner--stats {
	padding-bottom: 48px;
}

.aff-hero-home__stats {
	max-width: 880px;
	gap: 0;
	background: rgb(255 255 255 / 5%);
	border: 1px solid rgb(255 255 255 / 12%);
	border-radius: 16px;
	overflow: hidden;
	backdrop-filter: blur(8px);
}

.aff-stat {
	border: 0;
	border-radius: 0;
	background: transparent;
	padding: 18px 12px 16px;
	position: relative;
}

.aff-hero-home__stats > li + li .aff-stat::before {
	content: "";
	position: absolute;
	left: 0;
	top: 22%;
	bottom: 22%;
	width: 1px;
	background: rgb(255 255 255 / 12%);
}

a.aff-stat:hover {
	background: rgb(255 255 255 / 7%);
	transform: none;
	border-color: transparent;
}



/* =============================================================================
 * v3.3 — Stats band below the hero, homepage two-column directory layout
 * (main list + sticky sidebar), inline-facts row anatomy.
 * ========================================================================== */

/* Hero: extra bottom room so the stats band can overlap its edge */
.aff-hero-home__inner--split {
	padding-bottom: 92px;
}

/* --- Stats band: white card straddling the hero/body seam ------------------ */

.aff-stats-band {
	max-width: 1000px;
	margin: -52px auto 68px;
	padding: 0 16px;
	position: relative;
	z-index: 5;
}

.entry-content .aff-stats-band__list,
.aff-stats-band__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	background: #fff;
	border: 1px solid var(--aff-border);
	border-radius: 18px;
	box-shadow:
		0 24px 60px -28px rgb(15 23 42 / 28%),
		0 2px 6px rgb(15 23 42 / 5%);
	overflow: hidden;
}

.aff-stats-band__list > li {
	position: relative;
	margin: 0;
}

.aff-stats-band__list > li + li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 24%;
	bottom: 24%;
	width: 1px;
	background: #eef2f7;
}

.aff-stats-band .aff-stat {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 2px;
	padding: 24px 12px 20px;
	background: none;
	border: 0;
	border-radius: 0;
	text-decoration: none;
	transform: none;
}

.aff-stats-band a.aff-stat:hover {
	background: #f8fafc;
}

.aff-stats-band .aff-stat__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	margin-bottom: 8px;
	border-radius: 11px;
	background: var(--aff-primary-soft);
	color: var(--aff-primary);
}

.aff-stats-band .aff-stat__icon svg {
	width: 18px;
	height: 18px;
}

.aff-stats-band .aff-stat__num {
	font-size: 30px;
	font-weight: 800;
	letter-spacing: -0.02em;
	line-height: 1;
	color: #0f172a;
}

.aff-stats-band .aff-stat__label {
	font-size: 11.5px;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: #64748b;
}

@media (max-width: 719px) {
	.aff-stats-band {
		margin-top: -36px;
	}

	.entry-content .aff-stats-band__list,
	.aff-stats-band__list {
		grid-template-columns: repeat(2, 1fr);
	}

	.aff-stats-band__list > li:nth-child(odd)::before {
		display: none;
	}

	.aff-stats-band__list > li:nth-child(n + 3) .aff-stat {
		border-top: 1px solid #eef2f7;
	}
}

/* --- Homepage directory: main rows + sticky sidebar ------------------------ */

.aff-home-directory {
	max-width: 1160px;
	margin: 0 auto 72px;
	padding: 0 16px;
	display: grid;
	grid-template-columns: minmax(0, 1fr) 316px;
	gap: 36px;
	align-items: start;
}

/* Sections inside the main column must not re-apply page gutters */
.aff-home-directory__main .aff-home-section {
	max-width: none;
	padding: 0;
	margin: 0 0 46px;
}

.aff-home-directory__main .aff-home-section:last-child {
	margin-bottom: 0;
}

.aff-home-directory__side {
	position: sticky;
	top: 96px;
	display: flex;
	flex-direction: column;
	gap: 18px;
}

@media (max-width: 1023px) {
	.aff-home-directory {
		grid-template-columns: minmax(0, 1fr);
	}

	.aff-home-directory__side {
		position: static;
	}
}

/* --- Sidebar widgets -------------------------------------------------------- */

.aff-widget {
	background: #fff;
	border: 1px solid var(--aff-border);
	border-radius: 16px;
	padding: 18px 18px 14px;
}

.entry-content .aff-widget h3,
.aff-widget h3 {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0 0 12px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #64748b;
}

.aff-widget h3 svg {
	width: 15px;
	height: 15px;
	color: var(--aff-primary);
	flex: 0 0 auto;
}

.aff-widget__list,
.aff-widget__links {
	list-style: none;
	margin: 0;
	padding: 0;
}

.aff-widget__list > li,
.aff-widget__links > li {
	margin: 0;
}

.aff-widget__list > li + li,
.aff-widget__links > li + li {
	border-top: 1px solid #f1f5f9;
}

.aff-widget__row {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 9px 0;
	text-decoration: none;
}

.aff-widget__logo,
.aff-widget__row .aff-monogram {
	width: 32px;
	height: 32px;
	border-radius: 8px;
	flex: 0 0 auto;
	object-fit: contain;
	font-size: 13px;
}

.aff-widget__body {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 1px;
}

.aff-widget__name {
	font-size: 13.5px;
	font-weight: 600;
	color: #0f172a;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.aff-widget__row:hover .aff-widget__name {
	color: var(--aff-primary);
}

.aff-widget__meta {
	font-size: 11.5px;
	color: #94a3b8;
}

.aff-widget__score {
	flex: 0 0 auto;
	font-size: 12.5px;
	font-weight: 700;
	color: #15803d;
	background: #f0fdf4;
	border-radius: 7px;
	padding: 3px 7px;
}

.aff-widget__links a {
	display: block;
	padding: 8px 0;
	font-size: 13.5px;
	font-weight: 600;
	color: #334155;
	text-decoration: none;
}

.aff-widget__links a::after {
	content: "→";
	float: right;
	color: #cbd5e1;
	transition: transform 0.15s ease, color 0.15s ease;
}

.aff-widget__links a:hover {
	color: var(--aff-primary);
}

.aff-widget__links a:hover::after {
	color: var(--aff-primary);
	transform: translateX(2px);
}

.aff-widget__tags {
	list-style: none;
	margin: 0;
	padding: 0 0 4px;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.aff-widget__tags li {
	margin: 0;
}

.aff-widget__tags a {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 6px 11px;
	border-radius: 999px;
	background: #f8fafc;
	border: 1px solid #eef2f7;
	font-size: 12.5px;
	font-weight: 600;
	color: #334155;
	text-decoration: none;
	transition: border-color 0.15s ease, color 0.15s ease;
}

.aff-widget__tags a span {
	font-size: 11px;
	font-weight: 700;
	color: #94a3b8;
}

.aff-widget__tags a:hover {
	border-color: var(--aff-primary);
	color: var(--aff-primary);
}

/* Submit-listing CTA widget: dark card to close the rail */
.aff-widget--cta {
	background:
		radial-gradient(120% 140% at 100% 0%, rgb(99 102 241 / 25%) 0%, transparent 55%),
		linear-gradient(150deg, #0f172a 0%, #1e1b4b 100%);
	border-color: #312e81;
	padding-bottom: 18px;
}

.aff-widget--cta h3 {
	color: #a5b4fc;
}

.entry-content .aff-widget--cta p,
.aff-widget--cta p {
	margin: 0 0 14px;
	font-size: 13.5px;
	line-height: 1.55;
	color: #cbd5e1;
}

.aff-widget__btn {
	display: block;
	width: 100%;
	text-align: center;
	padding: 11px 14px;
	font-size: 14px;
}


/* =============================================================================
 * v3.4 — Craft pass: spine removed, rows breathe, sidebar widgets elevated,
 * hero leaderboard gets live pulse + score bars + champion row.
 * ========================================================================== */


/* --- Sidebar widgets: soft depth, icon tiles, hover states -------------------- */

.aff-widget {
	border-radius: 18px;
	padding: 20px;
	box-shadow: 0 1px 2px rgb(15 23 42 / 4%), 0 12px 32px -24px rgb(15 23 42 / 12%);
}

.entry-content .aff-widget h3,
.aff-widget h3 {
	gap: 9px;
	margin-bottom: 14px;
}

.aff-widget__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 26px;
	height: 26px;
	border-radius: 8px;
	background: var(--aff-primary-soft);
	color: var(--aff-primary);
	flex: 0 0 auto;
}

.aff-widget__icon svg {
	width: 14px;
	height: 14px;
}

.aff-widget--cta .aff-widget__icon {
	background: rgb(129 140 248 / 15%);
	color: #a5b4fc;
}

.aff-widget__all {
	margin-left: auto;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.04em;
	color: var(--aff-primary);
	text-decoration: none;
	text-transform: none;
}

.aff-widget__all:hover {
	text-decoration: underline;
}

.aff-widget__list > li + li,
.aff-widget__links > li + li {
	border-top: 0;
}

.aff-widget__row {
	margin: 0 -8px;
	padding: 8px;
	border-radius: 10px;
	transition: background 0.15s ease;
}

.aff-widget__row:hover {
	background: #f6f7fb;
}

.aff-widget__links a {
	padding: 7px 0;
}

/* --- Hero leaderboard: live pulse, score bars, champion row -------------------- */

.aff-leaderboard__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	margin: 0 0 12px;
}

.aff-leaderboard__head .aff-leaderboard__title {
	margin: 0;
}

.aff-live {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 9.5px;
	font-weight: 800;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: #6ee7b7;
}

.aff-live::before {
	content: "";
	width: 7px;
	height: 7px;
	border-radius: 999px;
	background: #34d399;
	box-shadow: 0 0 0 0 rgb(52 211 153 / 55%);
	animation: aff-live-pulse 2.2s ease-out infinite;
}

@keyframes aff-live-pulse {
	70% { box-shadow: 0 0 0 8px transparent; }
	100% { box-shadow: 0 0 0 0 transparent; }
}

.aff-leaderboard__name {
	display: flex;
	align-items: center;
	gap: 6px;
}

.aff-leaderboard__crown {
	color: #facc15;
	font-size: 12px;
	line-height: 1;
	filter: drop-shadow(0 0 6px rgb(250 204 21 / 45%));
}

.aff-leaderboard__bar {
	display: block;
	height: 4px;
	border-radius: 999px;
	background: rgb(255 255 255 / 10%);
	overflow: hidden;
	margin-top: 6px;
}

.aff-leaderboard__bar i {
	display: block;
	height: 100%;
	width: var(--w, 0%);
	border-radius: inherit;
	background: linear-gradient(90deg, #818cf8, #22d3ee);
	box-shadow: 0 0 10px rgb(99 102 241 / 55%);
	animation: aff-bar-grow 1.1s cubic-bezier(0.22, 1, 0.36, 1) 0.35s backwards;
}

@keyframes aff-bar-grow {
	from { width: 0; }
}

.aff-leaderboard__row--first {
	background: linear-gradient(90deg, rgb(250 204 21 / 9%), rgb(255 255 255 / 2%));
	border: 1px solid rgb(250 204 21 / 22%);
	border-radius: 12px;
}

.aff-leaderboard__foot {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	margin-top: 6px;
	padding-top: 11px;
	border-top: 1px solid rgb(255 255 255 / 8%);
}

.aff-leaderboard__note {
	font-size: 10.5px;
	color: #94a3b8;
}

.aff-leaderboard__foot .aff-leaderboard__all {
	margin: 0;
	padding: 0;
	border: 0;
}

@media (prefers-reduced-motion: reduce) {
	.aff-live::before,
	.aff-leaderboard__bar i {
		animation: none;
	}
}


/* =============================================================================
 * v3.5 — Editorial rhythm: the homepage stops being a wall of identical white
 * rows. Champion cards, ghost rank numerals, a tinted middle band, section
 * voices (subtitle + live count).
 * ========================================================================== */

/* --- Section heads: a voice, not just a label -------------------------------- */

.aff-home-directory__main .aff-home-section__head h2 {
	font-size: 26px;
	letter-spacing: -0.02em;
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
}

.aff-home-section__count {
	display: inline-block;
	padding: 4px 11px;
	border-radius: 999px;
	background: var(--aff-primary-soft);
	color: var(--aff-primary);
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: 0.02em;
	white-space: nowrap;
}

.entry-content .aff-home-section__subtitle,
.aff-home-section__subtitle {
	margin: 7px 0 0;
	color: #64748b;
	font-size: 14px;
	max-width: 560px;
}


/* --- Middle band: the ad-networks section sits on a tinted panel --------------- */

.aff-home-directory__main .aff-home-section:nth-of-type(2) {
	background: linear-gradient(180deg, #f6f6fe 0%, #fdfdff 100%);
	border: 1px solid #e8eafc;
	border-radius: 22px;
	padding: 26px 26px 24px;
}

.aff-home-directory__main .aff-home-section:nth-of-type(2) .aff-card-item {
	border-color: #e5e7f5;
}


img.aff-widget__logo {
	background: #fff;
	border: 1px solid #eef1f6;
	object-fit: contain;
	padding: 2px;
}

img.aff-leaderboard__logo {
	object-fit: contain;
	background: #fff;
}


/* =============================================================================
 * v3.6 — Dark ink brand system. Purple/indigo retired: primary becomes deep
 * slate ink (#0f172a) with a restrained cyan accent for dark surfaces.
 * Loads last, wins the cascade.
 * ========================================================================== */

:root {
	--aff-primary: #0f172a;
	--aff-primary-dark: #020617;
	--aff-primary-soft: #f1f5f9;
}

/* --- Buttons: solid dark, no gradient purple --------------------------------- */

.aff-btn--primary,
.aff-hero-home__search .aff-btn--primary,
.aff-card-item__cta {
	background: linear-gradient(135deg, #1e293b, #0f172a);
	box-shadow: 0 2px 10px rgb(15 23 42 / 28%);
}

.aff-btn--primary:hover,
.aff-card-item__cta:hover {
	background: linear-gradient(135deg, #0f172a, #020617);
	box-shadow: 0 6px 18px rgb(15 23 42 / 35%);
}

#masthead .menu > li.aff-nav-cta > a {
	background: linear-gradient(135deg, #1e293b, #0f172a);
	box-shadow: 0 2px 8px rgb(15 23 42 / 25%);
}

#masthead .menu > li.aff-nav-cta > a:hover {
	background: linear-gradient(135deg, #0f172a, #020617);
}

/* --- Brand marks + accents ----------------------------------------------------- */

.site-branding .site-title a::before,
.site-branding a::before {
	color: #06b6d4;
}

.aff-eyebrow {
	color: #0e7490;
}

.aff-hero-home__eyebrow {
	color: #7dd3fc;
}

/* --- Score visuals ------------------------------------------------------------- */

.aff-score-ring {
	background: conic-gradient(#0f172a calc(var(--aff-p) * 1%), #e2e8f0 0);
	box-shadow: 0 4px 16px rgb(15 23 42 / 18%);
}

.aff-scores__fill {
	background: linear-gradient(90deg, #475569, #0f172a);
}

/* --- Hero: deep navy stays, purple glows become cyan/slate ---------------------- */

.aff-hero-home {
	background:
		radial-gradient(900px 420px at 82% -18%, rgb(56 189 248 / 16%), transparent 60%),
		radial-gradient(700px 360px at 8% 118%, rgb(148 163 184 / 10%), transparent 55%),
		linear-gradient(152deg, #0a0f1e 0%, #0f1629 55%, #16203a 100%);
}

.aff-hero-home::after {
	background:
		radial-gradient(420px 320px at 22% 30%, rgb(56 189 248 / 22%), transparent 70%),
		radial-gradient(480px 360px at 78% 65%, rgb(14 116 144 / 26%), transparent 70%),
		radial-gradient(360px 300px at 55% 15%, rgb(148 163 184 / 14%), transparent 70%);
}

.aff-title-grad {
	background: linear-gradient(92deg, #f8fafc 0%, #7dd3fc 60%, #22d3ee 100%);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

.aff-spot::after {
	background: radial-gradient(280px circle at var(--spot-x, 50%) var(--spot-y, 50%), rgb(100 116 139 / 10%), transparent 65%);
}

/* --- Leaderboard: cyan bars ------------------------------------------------------ */

.aff-leaderboard__bar i {
	background: linear-gradient(90deg, #38bdf8, #22d3ee);
	box-shadow: 0 0 10px rgb(56 189 248 / 45%);
}

/* --- Editor's Choice: subtle cyan-tinted panel (ribbon lives in v5.7) ------------- */

@media (min-width: 881px) {
	.aff-cards--rows .aff-card-item--top {
		background:
			radial-gradient(480px 200px at 100% 0%, rgb(14 165 233 / 6%), transparent 60%),
			linear-gradient(135deg, #fcfdfe 0%, #f4f7fa 100%);
	}
}

/* --- Middle band: neutral slate tint ---------------------------------------------- */

.aff-home-directory__main .aff-home-section:nth-of-type(2) {
	background: linear-gradient(180deg, #f5f7fa 0%, #fdfefe 100%);
	border: 1px solid #e4eaf0;
}

.aff-home-directory__main .aff-home-section:nth-of-type(2) .aff-card-item {
	border-color: #e4e9f0;
}

/* --- CTA band: ink surface, cyan glow ---------------------------------------------- */

.aff-cta-band__inner {
	background:
		radial-gradient(600px 240px at 88% -30%, rgb(34 211 238 / 18%), transparent 60%),
		radial-gradient(500px 220px at 5% 130%, rgb(56 189 248 / 12%), transparent 55%),
		linear-gradient(135deg, #0a0f1e 0%, #0f172a 60%, #1e293b 100%);
	box-shadow: 0 24px 60px -28px rgb(2 6 23 / 70%);
}

.aff-cta-band__btn,
.aff-cta-band__btn:hover {
	color: #0f172a;
}

/* --- Sidebar CTA widget: ink card, cyan accent, white button ------------------------ */

.aff-widget--cta {
	background:
		radial-gradient(120% 140% at 100% 0%, rgb(34 211 238 / 12%) 0%, transparent 55%),
		linear-gradient(150deg, #0a0f1e 0%, #101828 100%);
	border-color: #1e293b;
}

.aff-widget--cta h3 {
	color: #7dd3fc;
}

.aff-widget--cta .aff-widget__icon {
	background: rgb(56 189 248 / 12%);
	color: #7dd3fc;
}

.aff-widget--cta .aff-btn--primary {
	background: #fff;
	color: #0f172a;
	box-shadow: 0 4px 14px rgb(2 6 23 / 40%);
}

.aff-widget--cta .aff-btn--primary:hover {
	background: #e2e8f0;
	color: #0f172a;
}

/* Hero checklist: cyan-tinted to match the dark-ink accent system */
.aff-hero-home__points {
	color: #7dd3fc;
}


/* =============================================================================
 * v3.7 — Card presence: the canvas deepens a step so white cards read as
 * cards, borders/elevation strengthen, and the type hierarchy gets bolder.
 * ========================================================================== */

/* Deeper canvas: white surfaces now clearly separate from the page */
body {
	background: #e7edf4;
}


/* Middle band: a step darker than the canvas so its white cards pop inside */
.aff-home-directory__main .aff-home-section:nth-of-type(2) {
	background: linear-gradient(180deg, #e6ebf2 0%, #eef2f7 100%);
	border: 1px solid #d8e0ea;
}

.aff-home-directory__main .aff-home-section:nth-of-type(2) .aff-card-item {
	border-color: #d9e1ea;
}

/* Sidebar widgets + stats band hold their own on the deeper canvas */
.aff-widget {
	border-color: #d9e1ea;
}

.entry-content .aff-stats-band__list,
.aff-stats-band__list {
	border-color: #d9e1ea;
}

.aff-recent,
.aff-calc,
.aff-trust-band {
	border-color: #d9e1ea;
}

/* Kadence paints .site white over the body — hand the canvas back */
.site,
.site.wp-site-blocks {
	background: #e7edf4;
}

/* Kadence unboxed mode re-paints .site via a higher-specificity inline rule */
body.content-style-unboxed .site {
	background: #e7edf4;
}




/* =============================================================================
 * v3.9 — Polish pass: hero refinement (bigger title, focus-ring search,
 * popular chips), card micro-interactions, trust band + calculator upgraded
 * to the section voice, leaderboard hover states.
 * ========================================================================== */

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

.aff-hero-home__inner--split .aff-hero-home__title {
	font-size: 52px;
	line-height: 1.06;
	letter-spacing: -0.03em;
}

.aff-hero-home__inner--split .aff-hero-home__subtitle {
	font-size: 17px;
	line-height: 1.6;
	max-width: 470px;
}

.aff-hero-home__search {
	border-radius: 14px;
	transition: box-shadow 0.2s ease;
}

.aff-hero-home__search:focus-within {
	box-shadow:
		0 0 0 3px rgb(56 189 248 / 30%),
		0 18px 46px -18px rgb(0 0 0 / 55%);
}

.aff-hero-home__search input {
	font-size: 15.5px;
}

.aff-hero-home__quick {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin: 16px 0 20px;
	font-size: 12.5px;
}

.aff-hero-home__quick span {
	color: #64748b;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	font-size: 10.5px;
}

.aff-hero-home__quick a {
	padding: 5px 13px;
	border-radius: 999px;
	border: 1px solid rgb(255 255 255 / 14%);
	background: rgb(255 255 255 / 4%);
	color: #cbd5e1;
	font-weight: 600;
	text-decoration: none;
	transition: border-color 0.15s ease, color 0.15s ease, background 0.15s ease;
}

.aff-hero-home__quick a:hover {
	border-color: rgb(56 189 248 / 55%);
	background: rgb(56 189 248 / 8%);
	color: #fff;
}

.aff-hero-home__points {
	font-size: 12.5px;
	gap: 6px 18px;
	opacity: 0.85;
}

/* Leaderboard rows: quiet hover */
.aff-leaderboard__row {
	border-radius: 12px;
	transition: background 0.15s ease, transform 0.15s ease;
}

.aff-leaderboard__row:hover {
	background: rgb(255 255 255 / 6%);
	transform: translateX(3px);
}

/* --- Card micro-interactions --------------------------------------------------- */

.aff-card-item__cta svg {
	transition: transform 0.18s ease;
}

.aff-card-item__cta:hover svg {
	transform: translateX(4px);
}

.aff-card-item__review {
	transition: color 0.15s ease;
}

.aff-card-item__review:hover {
	color: #0f172a;
	text-decoration: underline;
	text-underline-offset: 3px;
}


.aff-tags a {
	transition: background 0.15s ease, color 0.15s ease;
}

.aff-tags a:hover {
	background: #0f172a;
	color: #fff;
}

/* --- Trust band: ink icon tiles, column separators ------------------------------- */

.aff-trust-band {
	background: #fff;
	border: 1px solid #d9e1ea;
	border-radius: 22px;
}

.aff-trust-band__icon {
	width: 44px;
	height: 44px;
	border-radius: 13px;
	background: #0f172a;
	color: #fff;
	box-shadow: 0 8px 20px -8px rgb(15 23 42 / 45%);
}

.aff-trust-band__col + .aff-trust-band__col {
	border-left: 1px solid #edf1f6;
	padding-left: 32px;
}

.aff-trust-band__col h3 {
	font-size: 16.5px;
}

.aff-trust-band__col p {
	color: #64748b;
}

@media (max-width: 780px) {
	.aff-trust-band__col + .aff-trust-band__col {
		border-left: 0;
		padding-left: 0;
		border-top: 1px solid #edf1f6;
		padding-top: 22px;
	}
}

/* --- Calculator: match the section voice ------------------------------------------ */

.entry-content .aff-home-calc-title,
.aff-home-calc-title {
	font-size: 26px;
	letter-spacing: -0.02em;
}

.aff-calc {
	border-radius: 20px;
	border-color: #d9e1ea;
}

.aff-calc input {
	border: 1px solid #d9e1ea;
	border-radius: 11px;
	padding: 12px 14px;
	font-size: 15px;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.aff-calc input:focus {
	border-color: #0f172a;
	box-shadow: 0 0 0 3px rgb(15 23 42 / 10%);
	outline: none;
}

.aff-calc__result {
	font-size: 15px;
}

.aff-calc__result strong {
	font-size: 24px;
	letter-spacing: -0.01em;
}




/* =============================================================================
 * v4.0 — Differentiators: fact receipts (per-field provenance popovers) and
 * the change-intelligence feed (sidebar widget + /changes/ timeline).
 * ========================================================================== */

/* --- Fact receipts ------------------------------------------------------------ */

.aff-card-item__fact {
	position: relative;
}

.aff-fact--sourced {
	cursor: help;
	outline: none;
}

.aff-fact__badge {
	display: inline-flex;
	width: 11px;
	height: 11px;
	margin-left: 3px;
	vertical-align: -1px;
	color: #059669;
}

.aff-fact__badge svg {
	width: 100%;
	height: 100%;
}

.aff-fact__pop {
	position: absolute;
	bottom: calc(100% + 9px);
	left: 0;
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 8px 12px;
	border-radius: 9px;
	background: #0f172a;
	color: #cbd5e1;
	font-size: 11px;
	font-weight: 500;
	line-height: 1;
	white-space: nowrap;
	box-shadow: 0 10px 26px -8px rgb(2 6 23 / 55%);
	opacity: 0;
	visibility: hidden;
	transform: translateY(4px);
	transition: opacity 0.16s ease, transform 0.16s ease, visibility 0.16s;
	pointer-events: none;
	z-index: 30;
}

.aff-fact__pop::after {
	content: "";
	position: absolute;
	top: 100%;
	left: 18px;
	border: 5px solid transparent;
	border-top-color: #0f172a;
}

.aff-fact__pop strong {
	color: #fff;
	font-weight: 700;
}

.aff-fact__pop em {
	font-style: normal;
	color: #94a3b8;
}

.aff-fact__pop b {
	color: #6ee7b7;
	font-weight: 700;
}

.aff-fact--sourced:hover .aff-fact__pop,
.aff-fact--sourced:focus .aff-fact__pop {
	opacity: 1;
	visibility: visible;
	transform: none;
}

/* --- Sidebar: latest updates feed ---------------------------------------------- */

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

.aff-widget__feed > li {
	position: relative;
	margin: 0;
	padding: 9px 46px 9px 18px;
}

.aff-widget__feed > li + li {
	border-top: 1px solid #f1f5f9;
}

.aff-widget__feed > li::before {
	content: "";
	position: absolute;
	left: 2px;
	top: 15px;
	width: 8px;
	height: 8px;
	border-radius: 999px;
	background: #38bdf8;
}

.aff-widget__event--listed::before {
	background: #34d399 !important;
}

.aff-widget__event a {
	display: block;
	font-size: 13px;
	font-weight: 700;
	color: #0f172a;
	text-decoration: none;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.aff-widget__event a:hover {
	color: #1d4ed8;
}

.aff-widget__event span {
	display: block;
	font-size: 12px;
	line-height: 1.45;
	color: #64748b;
}

.aff-widget__event time {
	position: absolute;
	right: 0;
	top: 11px;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: #94a3b8;
}

/* The v4.0 /changes/ timeline CSS lived here — retired in v7.2 (the page is
   now the .aff-clg data changelog, styled in the v7.2 section). */


/* =============================================================================
 * v4.1 — Hero stack (white leaderboard + floating data fragments), single-page
 * data-trust visualization, site-wide surface harmonization.
 * ========================================================================== */

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

.aff-hero-stack {
	position: relative;
}

.aff-hero-stack .aff-leaderboard {
	background: #fff;
	border: 1px solid #e2e8f0;
	box-shadow:
		0 30px 80px -30px rgb(2 6 23 / 75%),
		0 2px 10px rgb(2 6 23 / 30%);
}

.aff-hero-stack .aff-leaderboard__title {
	color: #64748b;
}

.aff-hero-stack .aff-live {
	color: #059669;
}

.aff-hero-stack .aff-live::before {
	background: #10b981;
	box-shadow: 0 0 0 0 rgb(16 185 129 / 45%);
}

.aff-hero-stack .aff-leaderboard__name {
	color: #0f172a;
}

.aff-hero-stack .aff-leaderboard__bar {
	background: #e7edf4;
}

.aff-hero-stack .aff-leaderboard__row:hover {
	background: #f6f8fb;
}

.aff-hero-stack .aff-leaderboard__row--first {
	background: rgb(250 204 21 / 10%);
	border-color: rgb(234 179 8 / 32%);
}

.aff-hero-stack .aff-leaderboard__foot {
	border-top-color: #eef2f6;
}

.aff-hero-stack .aff-leaderboard__note {
	color: #94a3b8;
}

.aff-hero-stack .aff-leaderboard__all {
	color: #1d4ed8;
}

/* Floating data fragments */
.aff-hero-chip {
	position: absolute;
	z-index: 3;
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 9px 14px;
	border-radius: 12px;
	font-size: 12px;
	font-weight: 700;
	line-height: 1;
	text-decoration: none;
	white-space: nowrap;
	box-shadow: 0 14px 34px -12px rgb(2 6 23 / 60%);
	animation: aff-chip-float 7s ease-in-out infinite;
}

.aff-hero-chip svg {
	width: 14px;
	height: 14px;
	flex: 0 0 auto;
}

.aff-hero-chip--receipt {
	top: -17px;
	right: -14px;
	background: #0b1220;
	color: #cbd5e1;
	border: 1px solid #1e293b;
	transform: rotate(2deg);
}

.aff-hero-chip--receipt strong {
	color: #fff;
}

.aff-hero-chip--receipt svg {
	color: #34d399;
}

.aff-hero-chip--updates {
	bottom: -17px;
	left: -18px;
	background: #fff;
	color: #0f172a;
	transform: rotate(-2deg);
	animation-delay: 1.4s;
}

.aff-hero-chip--updates svg {
	color: #0284c7;
}

.aff-hero-chip--updates:hover {
	color: #1d4ed8;
}

@keyframes aff-chip-float {
	50% { translate: 0 -6px; }
}

@media (prefers-reduced-motion: reduce) {
	.aff-hero-chip {
		animation: none;
	}
}

@media (max-width: 880px) {
	.aff-hero-chip {
		display: none;
	}
}

/* --- Single page: data-trust panel ----------------------------------------------- */

.entry-content .aff-trustviz__title,
.aff-trustviz__title {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0 0 14px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #64748b;
}

.aff-trustviz__title svg {
	width: 16px;
	height: 16px;
	color: #059669;
}

.aff-trustviz__donutrow {
	display: flex;
	align-items: center;
	gap: 18px;
}

.aff-trustviz__donut {
	width: 96px;
	height: 96px;
	flex: 0 0 auto;
}

.aff-trustviz__num {
	font-family: "Inter", sans-serif;
	font-size: 17px;
	font-weight: 800;
	fill: #0f172a;
}

.aff-trustviz__sub {
	font-family: "Inter", sans-serif;
	font-size: 7.5px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	fill: #94a3b8;
}

.aff-trustviz__stats {
	flex: 1;
	min-width: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 9px;
}

.aff-trustviz__stats div {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 8px;
}

.aff-trustviz__stats dt {
	margin: 0;
	font-size: 12px;
	color: #64748b;
}

.aff-trustviz__stats dd {
	margin: 0;
	font-size: 13.5px;
	font-weight: 800;
	color: #0f172a;
	white-space: nowrap;
}

.aff-trustviz__cmp {
	margin-top: 16px;
	padding-top: 14px;
	border-top: 1px solid #eef2f6;
}

.entry-content .aff-trustviz__cmplabel,
.aff-trustviz__cmplabel {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 8px;
	margin: 0 0 10px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.07em;
	text-transform: uppercase;
	color: #64748b;
}

.aff-trustviz__flag {
	padding: 3px 9px;
	border-radius: 999px;
	background: #ecfdf5;
	color: #059669;
	font-size: 10px;
	letter-spacing: 0.03em;
}

.aff-trustviz__bar {
	margin-bottom: 11px;
	font-size: 11.5px;
	color: #64748b;
}

.aff-trustviz__bar b {
	float: right;
	font-size: 12px;
	font-weight: 800;
	color: #0f172a;
}

.aff-trustviz__fill {
	display: block;
	height: 8px;
	margin-top: 4px;
	border-radius: 999px;
	background: #e7edf4;
	position: relative;
	overflow: hidden;
}

.aff-trustviz__fill::after {
	content: "";
	position: absolute;
	inset: 0;
	width: var(--w, 0%);
	border-radius: inherit;
	background: #cbd5e1;
}

.aff-trustviz__fill--mine::after {
	background: linear-gradient(90deg, #0ea5e9, #22d3ee);
}

/* --- Site-wide surface harmonization: every card matches the homepage system ----- */

.aff-section,
.aff-card {
	background: #fff;
	border: 1px solid #d9e1ea;
	border-radius: 18px;
	box-shadow: 0 1px 2px rgb(15 23 42 / 4%);
}

.aff-single__sidebar .aff-card {
	padding: 20px;
}


/* =============================================================================
 * v4.2 — Score bars join the cyan data language. (The compare-page trust-panel
 * rules that lived here were retired in v6.2 with the VS-terminal rebuild.)
 * ========================================================================== */

.aff-scores__fill {
	background: linear-gradient(90deg, #0ea5e9, #22d3ee);
}


/* =============================================================================
 * v4.3 — Hero orbit: brand logos orbit a glowing verification core. No card.
 * ========================================================================== */

.aff-orbit {
	position: relative;
	width: 440px;
	height: 440px;
	margin: 0 auto;
	flex: 0 0 auto;
}

.aff-orbit__glow {
	position: absolute;
	inset: 18%;
	border-radius: 999px;
	background: radial-gradient(circle, rgb(34 211 238 / 22%) 0%, rgb(56 189 248 / 8%) 45%, transparent 70%);
	filter: blur(18px);
}

/* Core */
.aff-orbit__center {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 168px;
	height: 168px;
	border-radius: 999px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 1px;
	text-align: center;
	background:
		radial-gradient(120% 120% at 30% 20%, rgb(56 189 248 / 14%), transparent 55%),
		linear-gradient(160deg, #101a30 0%, #0a1120 100%);
	border: 1px solid rgb(125 211 252 / 28%);
	box-shadow:
		0 0 0 10px rgb(56 189 248 / 5%),
		0 0 60px -10px rgb(34 211 238 / 35%),
		inset 0 1px 0 rgb(255 255 255 / 10%);
	z-index: 2;
}

.aff-orbit__live {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	font-size: 9px;
	font-weight: 800;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: #6ee7b7;
	margin-bottom: 3px;
}

.aff-orbit__live::before {
	content: "";
	width: 6px;
	height: 6px;
	border-radius: 999px;
	background: #34d399;
	box-shadow: 0 0 0 0 rgb(52 211 153 / 55%);
	animation: aff-live-pulse 2.2s ease-out infinite;
}

.aff-orbit__num {
	font-size: 44px;
	font-weight: 800;
	letter-spacing: -0.03em;
	line-height: 1;
	color: #fff;
	text-shadow: 0 0 24px rgb(34 211 238 / 45%);
}

.aff-orbit__label {
	font-size: 11.5px;
	font-weight: 700;
	color: #bae6fd;
	letter-spacing: 0.02em;
}

.aff-orbit__sub {
	font-size: 9.5px;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: #64748b;
}

/* Rings */
.aff-orbit__ring {
	position: absolute;
	top: 50%;
	left: 50%;
	border: 1px dashed rgb(148 163 184 / 22%);
	border-radius: 999px;
	animation: aff-orbit-spin 60s linear infinite;
}

.aff-orbit__ring--inner {
	width: 272px;
	height: 272px;
	margin: -136px 0 0 -136px;
}

.aff-orbit__ring--outer {
	width: 416px;
	height: 416px;
	margin: -208px 0 0 -208px;
	animation-duration: 95s;
	animation-direction: reverse;
}

/* Satellites: positioned on the ring, counter-rotated to stay upright */
.aff-orbit__sat {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 46px;
	height: 46px;
	margin: -23px 0 0 -23px;
	transform: rotate(var(--a)) translateY(calc(-50% * var(--r, 1) - 0px));
}

.aff-orbit__ring--inner .aff-orbit__sat {
	transform: rotate(var(--a)) translateX(136px) rotate(calc(-1 * var(--a)));
}

.aff-orbit__ring--outer .aff-orbit__sat {
	transform: rotate(var(--a)) translateX(208px) rotate(calc(-1 * var(--a)));
}

.aff-orbit__sat img {
	width: 46px;
	height: 46px;
	border-radius: 13px;
	object-fit: contain;
	padding: 5px;
	background: #fff;
	border: 1px solid rgb(255 255 255 / 25%);
	box-shadow:
		0 10px 26px -8px rgb(2 6 23 / 70%),
		0 0 0 4px rgb(148 163 184 / 8%);
	animation: aff-orbit-counterspin 60s linear infinite;
}

.aff-orbit__ring--outer .aff-orbit__sat img {
	animation-duration: 95s;
	animation-direction: reverse;
}

@keyframes aff-orbit-spin {
	to { rotate: 360deg; }
}

@keyframes aff-orbit-counterspin {
	to { rotate: -360deg; }
}

@media (prefers-reduced-motion: reduce) {
	.aff-orbit__ring,
	.aff-orbit__sat img,
	.aff-orbit__live::before {
		animation: none;
	}
}

@media (max-width: 1023px) {
	.aff-orbit {
		display: none;
	}
}


/* =============================================================================
 * v4.4 — Creative sweep: brand marquee, verification pipeline, CTA radar
 * rings, score radar chart on singles.
 * ========================================================================== */

/* --- Marquee: brands drifting under the stats band -------------------------- */

.aff-marquee {
	overflow: hidden;
	margin-top: 14px;
	padding: 10px 0 2px;
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
	mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
}

.aff-marquee__track {
	display: inline-flex;
	align-items: center;
	gap: 34px;
	white-space: nowrap;
	animation: aff-marquee 45s linear infinite;
	will-change: transform;
}

.aff-marquee__item {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	font-size: 12.5px;
	font-weight: 700;
	color: #64748b;
}

img.aff-marquee__logo,
.aff-marquee__item .aff-monogram {
	width: 22px;
	height: 22px;
	border-radius: 6px;
	object-fit: contain;
	font-size: 10px;
}

@keyframes aff-marquee {
	to { transform: translateX(-50%); }
}

.aff-marquee:hover .aff-marquee__track {
	animation-play-state: paused;
}

@media (prefers-reduced-motion: reduce) {
	.aff-marquee__track {
		animation: none;
	}
}

/* --- Trust band: a connected verification pipeline --------------------------- */

.aff-trust-band__cols {
	position: relative;
}

.aff-trust-band__col {
	position: relative;
}

.aff-trust-band__col::before {
	counter-increment: aff-steps;
	content: "0" counter(aff-steps);
	position: absolute;
	top: -6px;
	right: 0;
	font-size: 40px;
	font-weight: 800;
	letter-spacing: -0.04em;
	color: #eef2f7;
	line-height: 1;
}

.aff-trust-band__cols {
	counter-reset: aff-steps;
}

/* connector between steps */
@media (min-width: 781px) {
	.aff-trust-band__col + .aff-trust-band__col::after {
		content: "";
		position: absolute;
		left: -26px;
		top: 21px;
		width: 20px;
		border-top: 2px dashed #cbd8e6;
	}
}

.aff-trust-band__icon {
	position: relative;
}

.aff-trust-band__icon::after {
	content: "";
	position: absolute;
	inset: -6px;
	border-radius: 17px;
	border: 1px dashed rgb(14 165 233 / 35%);
	animation: aff-orbit-spin 24s linear infinite;
}

@media (prefers-reduced-motion: reduce) {
	.aff-trust-band__icon::after {
		animation: none;
	}
}

/* --- CTA band: radar rings echo the hero orbit -------------------------------- */

.aff-cta-band__inner {
	position: relative;
	overflow: hidden;
}

.aff-cta-band__inner::before,
.aff-cta-band__inner::after {
	content: "";
	position: absolute;
	right: -110px;
	top: 50%;
	transform: translateY(-50%);
	border-radius: 999px;
	border: 1px dashed rgb(125 211 252 / 22%);
	pointer-events: none;
}

.aff-cta-band__inner::before {
	width: 340px;
	height: 340px;
	animation: aff-orbit-spin 50s linear infinite;
}

.aff-cta-band__inner::after {
	width: 500px;
	height: 500px;
	border-color: rgb(125 211 252 / 12%);
	animation: aff-orbit-spin 80s linear infinite reverse;
}

.aff-cta-band__btn {
	position: relative;
	z-index: 1;
}

/* --- Single pages: score radar ------------------------------------------------- */

.aff-radar {
	display: block;
	width: 100%;
	max-width: 240px;
	margin: 2px auto 10px;
}

.aff-radar__grid polygon {
	fill: none;
	stroke: #e2e8f0;
	stroke-width: 1;
}

.aff-radar__axes line {
	stroke: #eef2f7;
	stroke-width: 1;
}

.aff-radar__shape {
	fill: rgb(14 165 233 / 18%);
	stroke: #0ea5e9;
	stroke-width: 2;
	stroke-linejoin: round;
}

.aff-radar__labels text {
	font-family: "Inter", sans-serif;
	font-size: 8.5px;
	font-weight: 700;
	letter-spacing: 0.02em;
	fill: #64748b;
}


/* =============================================================================
 * v4.5 — Premium finish: the invisible details that make it feel expensive.
 * ========================================================================== */

html {
	scroll-behavior: smooth;
}

::selection {
	background: #0f172a;
	color: #7dd3fc;
}

/* Balanced headlines, no orphan words */
h1, h2, h3 {
	text-wrap: balance;
}

/* One easing voice for every interaction */
a, button, .aff-btn, .aff-card-item, .aff-widget__row, .aff-tags a {
	transition-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
}

/* Header: deeper glass */
#masthead {
	background: rgb(255 255 255 / 85%);
	backdrop-filter: blur(14px) saturate(1.4);
	-webkit-backdrop-filter: blur(14px) saturate(1.4);
}

/* Buttons: inner light + tactile press */
.aff-btn--primary,
.aff-card-item__cta,
#masthead .menu > li.aff-nav-cta > a {
	box-shadow:
		inset 0 1px 0 rgb(255 255 255 / 14%),
		0 2px 10px rgb(15 23 42 / 28%);
}

.aff-btn--primary:active,
.aff-card-item__cta:active {
	transform: translateY(1px) scale(0.99);
}

/* Accessible, branded focus */
:focus-visible {
	outline: 2px solid #0ea5e9;
	outline-offset: 2px;
	border-radius: 4px;
}

/* Thin slate scrollbar */
::-webkit-scrollbar {
	width: 11px;
}

::-webkit-scrollbar-track {
	background: #e7edf4;
}

::-webkit-scrollbar-thumb {
	background: #b6c2d2;
	border-radius: 999px;
	border: 3px solid #e7edf4;
}

::-webkit-scrollbar-thumb:hover {
	background: #8fa1b8;
}

/* Numbers everywhere align like a terminal */
.aff-card-item__score,
.aff-scores__value,
.aff-stat__num,
.aff-widget__score,
.aff-leaderboard__score {
	font-variant-numeric: tabular-nums;
}

/* Card hover shadows get a cool cast, not grey mud */
@media (min-width: 881px) {
	.aff-cards--rows .aff-card-item:hover {
		box-shadow:
			0 2px 4px rgb(15 23 42 / 5%),
			0 24px 48px -20px rgb(30 58 95 / 28%);
	}
}

/* Footer links: considered underlines */
.site-footer a:hover,
#colophon a:hover {
	text-decoration: underline;
	text-underline-offset: 4px;
	text-decoration-thickness: 1px;
}

/* Sticky CTA bar: glass, not slab */
.aff-sticky-cta {
	background: rgb(255 255 255 / 88%);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	box-shadow: 0 -8px 30px -12px rgb(15 23 42 / 18%);
}


/* =============================================================================
 * v4.6 — De-ordinary pass: cards get per-brand color identity, sidebar
 * widgets get a designed accent system.
 * ========================================================================== */

/* --- Sidebar: accent spines + richer headers ---------------------------------- */

.aff-widget {
	position: relative;
	overflow: hidden;
}

.aff-widget::before {
	content: "";
	position: absolute;
	top: 0;
	left: 20px;
	right: 20px;
	height: 3px;
	border-radius: 0 0 6px 6px;
	background: linear-gradient(90deg, #0ea5e9, #22d3ee 45%, transparent 90%);
	opacity: 0.85;
}

.aff-widget--cta::before {
	background: linear-gradient(90deg, #22d3ee, rgb(125 211 252 / 25%) 70%, transparent);
}

.aff-widget__icon {
	background: linear-gradient(150deg, #eef6ff, #e0f2fe);
	color: #0369a1;
	box-shadow: inset 0 0 0 1px rgb(14 165 233 / 18%);
}

/* Recently-verified scores become ringed medallions */
.aff-widget__score {
	background: #fff;
	box-shadow: inset 0 0 0 2px #a7f3d0;
	border-radius: 999px;
	padding: 4px 9px;
}

/* Vertical cloud: counts glow cyan, chips fill ink on hover */
.aff-widget__tags a span {
	color: #0891b2;
}

.aff-widget__tags a:hover {
	background: #0f172a;
	border-color: #0f172a;
	color: #fff;
}

.aff-widget__tags a:hover span {
	color: #67e8f9;
}

/* Feed dots pulse gently */
.aff-widget__feed > li::before {
	box-shadow: 0 0 0 3px rgb(56 189 248 / 15%);
}

.aff-widget__event--listed::before {
	box-shadow: 0 0 0 3px rgb(52 211 153 / 15%) !important;
}


/* =============================================================================
 * v4.6.1 — Restraint: v4.6 decoration retired. Premium = quiet, tight, aligned.
 * ========================================================================== */

.aff-widget::before {
	display: none;
}

.aff-widget {
	padding: 18px 20px 16px;
	box-shadow: none;
}

.aff-widget__icon {
	background: #f1f5f9;
	color: #475569;
	box-shadow: none;
}

.aff-widget__score {
	background: #f0fdf4;
	box-shadow: none;
	border-radius: 7px;
	padding: 3px 8px;
}

.aff-widget__tags a span {
	color: #94a3b8;
}

.aff-widget__feed > li::before,
.aff-widget__event--listed::before {
	box-shadow: none !important;
}

.aff-widget__feed > li {
	padding-top: 8px;
	padding-bottom: 8px;
}


/* =============================================================================
 * v4.6.2 — Audit fixes: reveal fail-safe, trust-band legibility, calculator
 * clipping, sidebar score context, rail divider.
 * ========================================================================== */

/* Reveal animation: never leave content half-painted for long */
.aff-reveal {
	transition-duration: 0.45s;
}

/* Trust band text: explicit ink/slate — never inherits a light color */
.entry-content .aff-trust-band__col h3,
.aff-trust-band__col h3 {
	color: #0f172a;
	font-size: 16.5px;
}

.entry-content .aff-trust-band__col p,
.aff-trust-band__col p {
	color: #526277;
}

/* Calculator result: room to breathe, never clipped */
.aff-calc,
.aff-calc__result {
	overflow: visible;
}

.aff-calc__result {
	padding: 10px 0 4px;
	line-height: 1.4;
	white-space: normal;
}

/* Sidebar scores read as ratings, not bare numbers */
.aff-widget__score::after {
	content: "/10";
	font-size: 9px;
	font-weight: 700;
	color: #6ec89b;
	margin-left: 1px;
}


/* =============================================================================
 * v4.7 — Homepage audit: card hierarchy, compare tray, freshness badges,
 * clickable orbit, homepage sort, editor's picks, mobile search bar.
 * ========================================================================== */

/* Reveal: opacity flips instantly on reveal; only the slide transitions.
   A stalled compositor (battery saver, throttled tab) can hold a transition
   at t=0 forever — content must never be able to stay invisible. */
.aff-reveal {
	transition-property: transform;
}

/* Brand CTA text ("Join MaxBounty") must never blow out the 200px rail */
.aff-card-item__cta {
	max-width: 100%;
	min-width: 0;
}

.aff-card-item__cta span {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

/* --- Compare picks + sticky tray --------------------------------------------- */

.aff-compare-pick {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	font-size: 12px;
	font-weight: 600;
	color: #94a3b8;
	cursor: pointer;
	user-select: none;
	padding: 2px 4px;
	transition: color 0.15s ease;
}

.aff-compare-pick:hover {
	color: var(--aff-primary, #4f46e5);
}

.aff-compare-pick input {
	width: 14px;
	height: 14px;
	margin: 0;
	accent-color: #4f46e5;
	cursor: pointer;
}

.aff-compare-pick:has(input:checked) {
	color: #4f46e5;
}

.aff-compare-tray {
	position: fixed;
	bottom: 18px;
	left: 50%;
	transform: translateX(-50%);
	z-index: 1000;
	display: flex;
	align-items: center;
	gap: 14px;
	max-width: calc(100vw - 24px);
	padding: 10px 12px 10px 18px;
	border-radius: 14px;
	background: #0f172a;
	border: 1px solid rgb(148 163 184 / 25%);
	box-shadow: 0 18px 40px -12px rgb(2 6 23 / 55%);
	animation: aff-tray-in 0.25s ease;
}

@keyframes aff-tray-in {
	from {
		opacity: 0;
		transform: translateX(-50%) translateY(10px);
	}
	to {
		opacity: 1;
		transform: translateX(-50%) translateY(0);
	}
}

.aff-compare-tray__label {
	margin: 0;
	font-size: 13.5px;
	font-weight: 600;
	color: #e2e8f0;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.aff-compare-tray.is-note .aff-compare-tray__label {
	color: #fcd34d;
}

.aff-compare-tray__go {
	flex: 0 0 auto;
	padding: 8px 16px;
	border-radius: 10px;
	font-size: 13px;
	font-weight: 700;
	background: linear-gradient(135deg, #6366f1, #4f46e5);
	color: #fff;
	white-space: nowrap;
}

.aff-compare-tray__go[aria-disabled="true"] {
	opacity: 0.45;
	cursor: not-allowed;
	box-shadow: none;
}

.aff-compare-tray__clear {
	flex: 0 0 auto;
	background: none;
	border: 0;
	padding: 6px;
	font-size: 12.5px;
	font-weight: 600;
	color: #94a3b8;
	cursor: pointer;
}

.aff-compare-tray__clear:hover {
	color: #f8fafc;
}

@media (prefers-reduced-motion: reduce) {
	.aff-compare-tray {
		animation: none;
	}
}


/* --- Orbit logos are links now: pause on hover so they can be caught ---------- */

.aff-orbit__sat a {
	display: block;
	border-radius: 13px;
}

.aff-orbit__sat a:focus-visible {
	outline: 2px solid #22d3ee;
	outline-offset: 3px;
}

.aff-orbit:hover .aff-orbit__ring,
.aff-orbit:hover .aff-orbit__sat img,
.aff-orbit:focus-within .aff-orbit__ring,
.aff-orbit:focus-within .aff-orbit__sat img {
	animation-play-state: paused;
}

.aff-orbit__sat img {
	transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.aff-orbit__sat a:hover img {
	transform: scale(1.14);
	box-shadow:
		0 10px 26px -8px rgb(2 6 23 / 70%),
		0 0 0 4px rgb(34 211 238 / 35%);
}

/* --- Homepage sort control ----------------------------------------------------- */

.aff-home-sort {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 10px;
	margin-bottom: 18px;
}

.aff-home-sort__label {
	font-size: 12px;
	font-weight: 600;
	color: #7a8aa0;
	letter-spacing: 0.02em;
}

.aff-home-sort .aff-segmented {
	margin-left: 0;
	background: #fff;
}

.aff-home-sort .aff-segmented__item {
	border: 0;
	cursor: pointer;
	background: transparent;
}

.aff-home-sort .aff-segmented__item.is-active {
	background: #eef2ff;
	color: #4338ca;
}

/* Newest mode: score-rank chrome (crown, rank lane, champion glow) is a lie
   under date order — hide it. */
.aff-home-directory.is-sort-newest .aff-card-item__crown,
.aff-home-directory.is-sort-newest .aff-card-item__rank {
	display: none;
}

.aff-home-directory.is-sort-newest .aff-card-item--top {
	border-color: var(--aff-border, #e3e6ea);
	box-shadow: 0 1px 2px rgb(15 23 42 / 5%), 0 8px 24px -18px rgb(15 23 42 / 18%);
}

@media (min-width: 881px) {
	.aff-home-directory.is-sort-newest .aff-cards--rows .aff-card-item:has(.aff-card-item__rank) {
		padding-left: 24px;
	}
}

/* --- Editor's picks by use case -------------------------------------------------- */

.aff-use-cases__grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 14px;
}

.aff-use-cases__grid a {
	display: flex;
	flex-direction: column;
	gap: 4px;
	height: 100%;
	padding: 20px 20px 16px;
	border-radius: 14px;
	border: 1px solid var(--aff-border, #e3e6ea);
	background: linear-gradient(180deg, #fff 0%, #fbfcfe 100%);
	text-decoration: none;
	box-shadow: 0 1px 2px rgb(15 23 42 / 5%);
	transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.aff-use-cases__grid a:hover {
	border-color: #bfdbfe;
	box-shadow: 0 14px 30px -16px rgb(37 99 235 / 28%);
	transform: translateY(-2px);
}

.aff-use-cases__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	margin-bottom: 8px;
	border-radius: 10px;
	background: #eef2ff;
	color: #4f46e5;
}

.aff-use-cases__icon svg {
	width: 19px;
	height: 19px;
}

.aff-use-cases__intent {
	font-size: 11px;
	font-weight: 800;
	letter-spacing: 0.07em;
	text-transform: uppercase;
	color: #4f46e5;
}

.aff-use-cases__title {
	font-size: 16px;
	font-weight: 700;
	color: #0f172a;
	line-height: 1.35;
}

.aff-use-cases__cta {
	margin-top: auto;
	padding-top: 10px;
	font-size: 12.5px;
	font-weight: 600;
	color: #64748b;
	transition: color 0.15s ease;
}

.aff-use-cases__grid a:hover .aff-use-cases__cta {
	color: var(--aff-primary, #4f46e5);
}

@media (max-width: 880px) {
	.aff-use-cases__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 560px) {
	.aff-use-cases__grid {
		grid-template-columns: 1fr;
	}
}

/* --- Mobile persistent bottom search bar --------------------------------------- */

.aff-mobile-search {
	display: none;
}

@media (max-width: 880px) {
	.aff-mobile-search {
		position: fixed;
		bottom: 0;
		left: 0;
		right: 0;
		z-index: 998;
		display: flex;
		align-items: center;
		gap: 10px;
		padding: 10px 16px calc(10px + env(safe-area-inset-bottom, 0px));
		background: rgb(15 23 42 / 92%);
		backdrop-filter: blur(8px);
		border-top: 1px solid rgb(148 163 184 / 25%);
		box-shadow: 0 -8px 24px -12px rgb(2 6 23 / 45%);
		/* Hidden until the hero search scrolls out of view (JS toggles
		   body.aff-msearch-on) so the two search fields never stack. */
		transform: translateY(100%);
		opacity: 0;
		visibility: hidden;
		transition: transform 0.2s ease, opacity 0.2s ease, visibility 0.2s;
	}

	body.aff-msearch-on .aff-mobile-search {
		transform: none;
		opacity: 1;
		visibility: visible;
	}

	.aff-mobile-search svg {
		flex: 0 0 auto;
		width: 18px;
		height: 18px;
		color: #94a3b8;
	}

	.aff-mobile-search input[type="search"] {
		flex: 1 1 auto;
		min-width: 0;
		border: 1px solid rgb(148 163 184 / 30%);
		border-radius: 10px;
		background: rgb(255 255 255 / 8%);
		color: #f8fafc;
		font-size: 16px; /* prevents iOS zoom-on-focus */
		padding: 9px 14px;
		box-shadow: none;
	}

	.aff-mobile-search input[type="search"]::placeholder {
		color: #7d8cb0;
	}

	.aff-mobile-search input[type="search"]:focus {
		outline: none;
		border-color: rgb(129 140 248 / 60%);
	}

	/* The page must scroll past the bar */
	body.home {
		padding-bottom: 64px;
	}

	/* Compare tray owns the bottom edge while picks are active */
	body.aff-compare-active .aff-mobile-search {
		display: none;
	}
}




/* =============================================================================
 * v4.8 — Data-directory width: containers 1160 → 1240px, 24px inline padding,
 * rebalanced homepage split (main ~68% / sidebar ~32%). Child sheet loads
 * after the plugin sheet, so these win.
 * ========================================================================== */

.aff-home-directory,
.aff-home-section,
.aff-archive__inner,
.aff-single__inner,
.aff-cta-band,
.aff-trust-band,
.aff-home-calc-title,
.aff-calc {
	max-width: 1240px;
}

/* Consistent 24px desktop gutters on the primary containers */
.aff-home-directory,
.aff-archive__inner,
.aff-single__inner {
	padding-left: 24px;
	padding-right: 24px;
}

/* Homepage: wider sidebar for a real 68 / 32 data split */
@media (min-width: 1024px) {
	.aff-home-directory {
		grid-template-columns: minmax(0, 1fr) 344px;
		gap: 32px;
	}
}

/* Stats band tracks the new width but stays a touch inset as a feature card */
.aff-stats-band {
	max-width: 1180px;
}

/* Archive main column breathes into the reclaimed width */
.aff-archive__cols {
	gap: 28px;
}

/* Single-listing main/sidebar keeps proportion at the new width */
@media (min-width: 1024px) {
	.aff-single__sidebar {
		flex: 0 0 340px;
	}
}



/* v4.9.1 — drop Kadence's deep 2em list indent on prose content lists.
   Our directory component lists set their own padding and bypass
   .single-content, so they are unaffected. */
.single-content ul,
.single-content ol {
	padding-left: 1.1em;
}


/* =============================================================================
 * v4.9.2 — Row rail spacing: the CTA cluster was vertically centered in a now-
 * taller card, leaving an empty band top-right. Top-align it so Verified/Join
 * sit beside the content; tighten sidebar feed indent.
 * ========================================================================== */

/* Sidebar "Latest updates" feed: trim the oversized left indent */
.aff-widget__feed > li {
	padding-left: 15px;
}


/* v4.9.3 — brand the core block button (Submit a Listing etc.) to dark ink */
.wp-block-button__link {
	background: linear-gradient(135deg, #1e293b, #0f172a);
	border-radius: 10px;
	box-shadow: inset 0 1px 0 rgb(255 255 255 / 14%), 0 2px 10px rgb(15 23 42 / 28%);
}

.wp-block-button__link:hover {
	background: linear-gradient(135deg, #0f172a, #020617);
	color: #fff;
}


/* =============================================================================
 * v4.9.4 — Inner-page title band: Kadence pins .page-title to min-height 200px,
 * leaving a big empty hero above content (matcher, About, /changes/, etc.).
 * Make it a compact, purposeful header instead.
 * ========================================================================== */

.entry-hero .entry-header.page-title {
	min-height: 0;
	padding-top: 46px;
	padding-bottom: 22px;
}

/* Pull page content up under the tightened header. Scoped so Kadence's
   Content Vertical Padding control still wins: when the Customizer (or page
   meta) disables top padding, our 8px must not reintroduce a gap. */
body.page:not(.content-vertical-padding-hide):not(.content-vertical-padding-bottom) .content-area,
.single-content {
	padding-top: 8px;
}

/* Matcher: give the tool a little more room + an aligned intro */
.aff-matcher {
	max-width: 880px;
}


/* =============================================================================
 * v4.9.5 — Matcher as one composed tool: drop the empty Kadence title band on
 * the tool page; the matcher supplies its own integrated header.
 * ========================================================================== */

.aff-tool-page .entry-hero.page-hero-section {
	display: none;
}

/* Tool spacing rides ON TOP of Kadence's .content-area margin (32px), so the
   totals are 40px top / 64px bottom — and each half is scoped so the
   Customizer's Content Vertical Padding toggle genuinely removes it. */
body.aff-tool-page:not(.content-vertical-padding-hide):not(.content-vertical-padding-bottom) .content-area {
	padding-top: 8px;
}

body.aff-tool-page:not(.content-vertical-padding-hide):not(.content-vertical-padding-top) .content-area {
	padding-bottom: 32px;
}

.aff-matcher-intro {
	max-width: 880px;
	margin: 0 auto 22px;
	text-align: center;
}

.aff-matcher-intro__eyebrow {
	margin: 0 0 8px;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: #0e7490;
}

.entry-content .aff-matcher-intro__title,
.aff-matcher-intro__title {
	margin: 0 0 10px;
	font-size: clamp(30px, 4vw, 40px);
	line-height: 1.1;
	letter-spacing: -0.02em;
	color: #0f172a;
}

.entry-content .aff-matcher-intro__sub,
.aff-matcher-intro__sub {
	margin: 0 auto;
	max-width: 620px;
	font-size: 15.5px;
	line-height: 1.6;
	color: #64748b;
}


/* v4.9.6 — Matcher required-step validation message */
.aff-matcher__error {
	margin: 12px 0 0;
	padding: 9px 14px;
	border-radius: 10px;
	background: #fef2f2;
	border: 1px solid #fecaca;
	color: #b91c1c;
	font-size: 13px;
	font-weight: 600;
}

.aff-matcher__error[hidden] {
	display: none;
}

/* v4.9.7 — Tool page: entry-content is capped 860px & left-pinned for prose;
   let the matcher span and center instead of hugging the left with dead space. */
.aff-tool-page .entry-content,
.aff-tool-page .single-content {
	max-width: none;
	margin-left: auto;
	margin-right: auto;
}


/* =============================================================================
 * v4.9.8 — Filter sidebar scrollbars: kill the stray horizontal scrollbar and
 * slim the vertical one (the global 11px bar is chunky in a 260px panel).
 * ========================================================================== */

.aff-archive__filters {
	overflow-x: hidden;
	overscroll-behavior: contain;
	scrollbar-width: thin;                 /* Firefox */
	scrollbar-color: #cbd5e1 transparent;
}

.aff-archive__filters::-webkit-scrollbar {
	width: 7px;
}

.aff-archive__filters::-webkit-scrollbar-track {
	background: transparent;
	margin: 6px 0;
}

.aff-archive__filters::-webkit-scrollbar-thumb {
	background: #cbd5e1;
	border-radius: 999px;
	border: 0;
}

.aff-archive__filters::-webkit-scrollbar-thumb:hover {
	background: #94a3b8;
}

/* Belt-and-braces: no facet child may force horizontal overflow */
.aff-archive__filters .facetwp-facet,
.aff-archive__filters .aff-facet {
	max-width: 100%;
}



/* =============================================================================
 * v5.1 — Single listing page: premium hero, stat-tile dimensions, refined
 * score ring, accented section headers, unified cards, cleaner tables.
 * Overrides the plugin's base single-page styles (child sheet loads last).
 * ========================================================================== */

/* --- Hero: elevated, subtly tinted -------------------------------------------- */

.aff-hero {
	position: relative;
	gap: 28px;
	padding: 30px 32px;
	border: 1px solid #e6ebf1;
	border-radius: 20px;
	background:
		radial-gradient(520px 200px at 100% -10%, rgb(14 165 233 / 6%), transparent 60%),
		linear-gradient(180deg, #ffffff 0%, #fbfcfe 100%);
	box-shadow: 0 20px 50px -34px rgb(15 23 42 / 32%);
	overflow: hidden;
}

.aff-hero::before {
	content: "";
	position: absolute;
	inset: 0 0 auto 0;
	height: 3px;
	background: linear-gradient(90deg, #0ea5e9, #22d3ee 55%, transparent);
}

.aff-hero__img {
	width: 84px;
	height: 84px;
	border-radius: 18px;
	border: 1px solid #eef1f6;
	box-shadow: 0 8px 20px -10px rgb(15 23 42 / 30%);
	padding: 6px;
}

.aff-hero__type {
	font-size: 11px;
	font-weight: 800;
	letter-spacing: 0.12em;
	color: #0e7490;
}

.aff-hero__title {
	font-size: 34px;
	letter-spacing: -0.025em;
	margin: 2px 0 8px;
}

.aff-hero__tagline {
	font-size: 16px;
	color: #475569;
}

/* Dimension chips → clean stat tiles */
.aff-hero__dims {
	gap: 10px;
	margin-top: 16px;
}

.aff-hero__dims li {
	display: flex;
	flex-direction: column;
	gap: 2px;
	padding: 9px 14px;
	background: #f6f9fc;
	border: 1px solid #e9eef4;
	border-radius: 12px;
}

.aff-hero__dim-label {
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.07em;
	text-transform: uppercase;
	color: #94a3b8;
}

.aff-hero__dim-value {
	font-size: 17px;
	font-weight: 800;
	color: #0f172a;
	font-variant-numeric: tabular-nums;
}

/* Score ring: cyan data language + tighter stack */
.aff-score-ring {
	background: conic-gradient(#0ea5e9 calc(var(--aff-p, 0) * 1%), #e7edf4 0);
	box-shadow: 0 10px 26px -12px rgb(14 165 233 / 45%);
}

.aff-hero__aside {
	gap: 14px;
}

.aff-hero__aside .aff-btn--primary {
	background: linear-gradient(135deg, #1e293b, #0f172a);
	border-radius: 12px;
	padding: 12px 26px;
	box-shadow: inset 0 1px 0 rgb(255 255 255 / 14%), 0 8px 20px -10px rgb(15 23 42 / 45%);
}

/* --- Sections + cards: unified with the site system --------------------------- */

.aff-section,
.aff-single__sidebar .aff-card {
	border: 1px solid #e6ebf1;
	border-radius: 18px;
	padding: 24px 26px;
	box-shadow: 0 1px 2px rgb(15 23 42 / 4%);
}

.aff-section h2 {
	position: relative;
	padding-left: 14px;
	font-size: 19px;
	letter-spacing: -0.01em;
}

.aff-section h2::before {
	content: "";
	position: absolute;
	left: 0;
	top: 3px;
	bottom: 3px;
	width: 4px;
	border-radius: 999px;
	background: linear-gradient(180deg, #0ea5e9, #22d3ee);
}

/* --- Quick facts table -------------------------------------------------------- */

.aff-table th {
	color: #64748b;
	font-weight: 700;
}

.aff-table td {
	color: #0f172a;
	font-weight: 600;
}

.aff-table tr {
	transition: background 0.14s ease;
}

.aff-table tbody tr:hover {
	background: #f8fafc;
}

.aff-table th,
.aff-table td {
	padding: 11px 12px;
	border-bottom: 1px solid #eef2f7;
}

/* --- Best-for / pros-cons: crisper columns ------------------------------------ */

.aff-best-for__col,
.aff-pros-cons__col {
	border: 1px solid transparent;
	border-radius: 14px;
	padding: 16px 18px;
}

.aff-best-for__col--yes,
.aff-pros-cons__col--pros {
	background: #f0fdf6;
	border-color: #bbf7d0;
}

.aff-best-for__col--no,
.aff-pros-cons__col--cons {
	background: #fff5f5;
	border-color: #fecaca;
}

.aff-best-for__col h3,
.aff-pros-cons__col h3 {
	font-size: 13px;
	font-weight: 800;
	letter-spacing: 0.03em;
	text-transform: uppercase;
}

.aff-pros-cons__col--pros h3,
.aff-best-for__col--yes h3 {
	color: #15803d;
}

.aff-pros-cons__col--cons h3,
.aff-best-for__col--no h3 {
	color: #b91c1c;
}

.aff-best-for__col li,
.aff-pros-cons__col li {
	line-height: 1.5;
	margin-bottom: 6px;
}

/* --- FAQ ---------------------------------------------------------------------- */

.aff-faq {
	border-bottom: 1px solid #eef2f7;
	padding: 12px 0;
}

.aff-faq__q {
	font-size: 15px;
	color: #0f172a;
}

.aff-faq__q:hover {
	color: #0369a1;
}

/* --- Editor take / verdict ---------------------------------------------------- */

.aff-editor-take {
	border-left-color: #0ea5e9;
	background: #f0f9ff;
}


/* =============================================================================
 * v5.2 — Matcher CTA band: the shortcode shipped without styles, so the star
 * SVG rendered huge and the text stacked. Give it a proper dark ink band.
 * ========================================================================== */

.aff-matcher-cta {
	max-width: 1240px;
	margin: 0 auto 56px;
	padding: 0 24px;
}

.aff-matcher-cta__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 28px;
	flex-wrap: wrap;
	padding: 30px 40px;
	border-radius: 22px;
	background:
		radial-gradient(560px 240px at 88% -20%, rgb(34 211 238 / 16%), transparent 60%),
		linear-gradient(135deg, #0a0f1e 0%, #0f172a 60%, #1e293b 100%);
	box-shadow: 0 24px 60px -30px rgb(2 6 23 / 70%);
}

.aff-matcher-cta__text {
	flex: 1 1 420px;
	min-width: 0;
}

.entry-content .aff-matcher-cta__eyebrow,
.aff-matcher-cta__eyebrow {
	margin: 0 0 6px;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: #7dd3fc;
}

.entry-content .aff-matcher-cta__title,
.aff-matcher-cta__title {
	margin: 0 0 8px;
	font-size: 26px;
	line-height: 1.15;
	letter-spacing: -0.02em;
	color: #fff;
}

.entry-content .aff-matcher-cta__sub,
.aff-matcher-cta__sub {
	margin: 0;
	max-width: 640px;
	font-size: 14.5px;
	line-height: 1.55;
	color: #cbd5e1;
}

.aff-matcher-cta__btn {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	gap: 9px;
	padding: 13px 26px;
	font-size: 15px;
	background: #fff;
	color: #0f172a;
	border-radius: 12px;
	box-shadow: 0 8px 24px -8px rgb(2 6 23 / 55%);
	white-space: nowrap;
}

.aff-matcher-cta__btn:hover {
	background: #e2e8f0;
	color: #0f172a;
	transform: translateY(-1px);
}

.aff-matcher-cta__btn svg {
	width: 18px;
	height: 18px;
	color: #0ea5e9;
	flex: 0 0 auto;
}

@media (max-width: 700px) {
	.aff-matcher-cta__inner {
		padding: 24px 22px;
	}

	.aff-matcher-cta__btn {
		width: 100%;
		justify-content: center;
	}
}


/* =============================================================================
 * v5.3 — (compare-table width fixes retired in v6.2: the compare page now uses
 * its own .avs-table, and the best-page table became .afx-glance in v6.0.)
 * ========================================================================== */


/* =============================================================================
 * v5.4 — Distinctive voice: Space Grotesk display type for headings + a few
 * dynamic accents. Body/UI stays Inter for readability. This is the change
 * that moves the site from "generic SaaS" to "has a character".
 * ========================================================================== */

h1, h2, h3, h4, h5, h6,
.site-branding .site-title,
.aff-hero-home__title,
.aff-hero__title,
.aff-matcher-intro__title,
.aff-matcher-cta__title,
.aff-cta-band__text h2,
.aff-orbit__num,
.aff-stat__num,
.aff-card-item__score strong,
.aff-hero__score,
.aff-section h2,
.aff-home-section__head h2,
.aff-card-item__title {
	font-family: "Space Grotesk", "Inter", -apple-system, BlinkMacSystemFont, sans-serif;
	letter-spacing: -0.02em;
}

/* Space Grotesk runs a touch wide — pull hero display tighter */
.aff-hero-home__inner--split .aff-hero-home__title {
	letter-spacing: -0.035em;
	font-weight: 700;
}

/* Eyebrows / labels get a mono-ish technical treatment */
.aff-eyebrow,
.aff-home-section__count,
.aff-matcher-intro__eyebrow,
.aff-matcher-cta__eyebrow,
.aff-hero__type,
.aff-card-item__fact dt {
	font-family: "Space Grotesk", "Inter", sans-serif;
}

/* --- Dynamic accents ---------------------------------------------------------- */

/* Animated gradient sweep on the hero's gradient word */
.aff-title-grad {
	background: linear-gradient(92deg, #f8fafc 0%, #7dd3fc 40%, #22d3ee 60%, #7dd3fc 80%, #f8fafc 100%);
	background-size: 250% auto;
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	animation: aff-sheen 6s linear infinite;
}

@keyframes aff-sheen {
	to { background-position: 250% center; }
}

/* Section eyebrows get a small pulsing lead dot */
.aff-home-section__titles .aff-eyebrow::before {
	content: "";
	display: inline-block;
	width: 6px;
	height: 6px;
	margin-right: 8px;
	border-radius: 999px;
	background: #22d3ee;
	vertical-align: 2px;
	box-shadow: 0 0 0 0 rgb(34 211 238 / 55%);
	animation: aff-live-pulse 2.4s ease-out infinite;
}


/* Primary buttons get a subtle sheen on hover */
.aff-btn--primary,
.aff-card-item__cta {
	position: relative;
	overflow: hidden;
}

.aff-btn--primary::after,
.aff-card-item__cta::after {
	content: "";
	position: absolute;
	top: 0;
	left: -60%;
	width: 40%;
	height: 100%;
	background: linear-gradient(100deg, transparent, rgb(255 255 255 / 22%), transparent);
	transform: skewX(-18deg);
	transition: left 0.5s ease;
}

.aff-btn--primary:hover::after,
.aff-card-item__cta:hover::after {
	left: 130%;
}

@media (prefers-reduced-motion: reduce) {
	.aff-title-grad,
	.aff-home-section__titles .aff-eyebrow::before {
		animation: none;
	}

	.aff-btn--primary::after,
	.aff-card-item__cta::after {
		display: none;
	}
}


/* =============================================================================
 * v5.5 — Payout calculator: elevate from flat to match the site — accent
 * header + a dark ink result panel with a big cyan-gradient figure.
 * ========================================================================== */

.aff-calc {
	padding: 26px 28px 28px;
	border-radius: 20px;
	border: 1px solid #e6ebf1;
	box-shadow: 0 1px 2px rgb(15 23 42 / 4%), 0 20px 50px -34px rgb(15 23 42 / 30%);
}

.entry-content .aff-calc__title,
.aff-calc__title {
	position: relative;
	padding-left: 15px;
	margin: 0 0 20px;
	font-size: 20px;
	letter-spacing: -0.01em;
}

.aff-calc__title::before {
	content: "";
	position: absolute;
	left: 0;
	top: 3px;
	bottom: 3px;
	width: 4px;
	border-radius: 999px;
	background: linear-gradient(180deg, #0ea5e9, #22d3ee);
}

/* Inputs: crisper, cyan focus */
.aff-calc__grid label {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.02em;
	color: #64748b;
	text-transform: uppercase;
}

.aff-calc input {
	border: 1px solid #dbe3ec;
	border-radius: 12px;
	padding: 13px 15px;
	font-size: 16px;
	font-weight: 600;
	font-variant-numeric: tabular-nums;
	color: #0f172a;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.aff-calc input:focus {
	border-color: #0ea5e9;
	box-shadow: 0 0 0 3px rgb(14 165 233 / 18%);
	outline: none;
}

/* Result: the money moment — dark ink panel, big cyan-gradient figure */
.entry-content .aff-calc__result,
.aff-calc__result {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 4px 10px;
	margin: 24px 0 0;
	padding: 20px 24px;
	border-radius: 16px;
	background:
		radial-gradient(420px 160px at 100% 0%, rgb(34 211 238 / 14%), transparent 60%),
		linear-gradient(135deg, #0a0f1e 0%, #0f172a 100%);
	font-size: 14px;
	font-weight: 600;
	color: #94a3b8;
}

.aff-calc__result strong {
	font-family: "Space Grotesk", "Inter", sans-serif;
	font-size: 40px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: -0.02em;
	background: linear-gradient(92deg, #bae6fd 0%, #22d3ee 60%, #7dd3fc 100%);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	font-variant-numeric: tabular-nums;
}


/* =============================================================================
 * v5.6 — Trust band: auto-fit grid spawned a phantom 4th track (trailing gap →
 * uneven right-side space). Pin to exactly 3 columns and tighten padding.
 * ========================================================================== */

.aff-trust-band__cols {
	grid-template-columns: repeat(3, 1fr);
	padding: 26px 28px;
}

@media (max-width: 780px) {
	.aff-trust-band__cols {
		grid-template-columns: 1fr;
	}
}


/* =============================================================================
 * v5.7 — Collapsible ring rows: the list card is now a compact row that scans
 * lean (logo · name · verified · stars · meta · one-line summary · score ring)
 * and expands on demand to reveal the description, a source-receipted stats
 * grid and vertical tags. Replaces the v3.0–v5.0 row-card anatomy (banner
 * spine, inline-facts grid, right rail, "More details" accordion), whose rules
 * are retired below. Shared by the homepage, archives, hubs, best pages and the
 * matcher; loads last, wins the cascade. Palette: ink #0f172a, cyan accents
 * #0ea5e9/#22d3ee, verified green #15803d, card border #e6ebf1.
 * ========================================================================== */

/* --- List container: full-width stacked rows -------------------------------- */

.aff-cards--rows,
.aff-cards--featured {
	display: flex;
	flex-direction: column;
	gap: 14px;
}

/* --- Card shell (container-scoped to beat the retired row rules) ------------- */

.aff-card-item {
	position: relative;
	background: #fff;
	overflow: hidden;
	transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

.aff-cards--rows .aff-card-item,
.aff-cards--featured .aff-card-item {
	display: block;
	grid-template-columns: none;
	padding: 20px 24px;
	border: 1px solid #e6ebf1;
	border-radius: 16px;
	box-shadow: 0 1px 2px rgb(15 23 42 / 4%);
}

/* Cards lift with a faint cyan edge-glow, not just a shadow */
.aff-cards--rows .aff-card-item:hover,
.aff-cards--featured .aff-card-item:hover {
	border-color: #67e8f9;
	transform: translateY(-2px);
	box-shadow:
		0 2px 4px rgb(15 23 42 / 5%),
		0 22px 44px -24px rgb(14 165 233 / 30%),
		inset 0 0 0 1px rgb(34 211 238 / 20%);
}

/* Retint the spotlight-hover overlay (JS adds .aff-spot to every card) to cyan */
.aff-card-item.aff-spot::after {
	background: radial-gradient(280px circle at var(--spot-x, 50%) var(--spot-y, 50%), rgb(14 165 233 / 8%), transparent 65%);
}

.aff-cards--rows .aff-card-item--sponsored,
.aff-cards--featured .aff-card-item--sponsored {
	border-color: #fcd34d;
	background: linear-gradient(180deg, #fffdf5 0%, #fffaf0 100%);
}

.aff-cards--rows .aff-card-item--top,
.aff-cards--featured .aff-card-item--top {
	border-color: #bae6fd;
	box-shadow: 0 1px 2px rgb(15 23 42 / 4%), 0 18px 40px -26px rgb(14 165 233 / 45%);
}

/* --- Corner ribbon: Editor's Choice / rank ---------------------------------- */

.aff-cards--rows .aff-card-item__crown,
.aff-cards--rows .aff-card-item__rank,
.aff-cards--featured .aff-card-item__crown,
.aff-cards--featured .aff-card-item__rank {
	position: absolute;
	top: 0;
	left: 0;
	right: auto;
	bottom: auto;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	gap: 5px;
	width: auto;
	height: auto;
	transform: none;
	padding: 5px 14px 5px 12px;
	border-radius: 0 0 12px 0;
	font-size: 10.5px;
	font-weight: 800;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	line-height: 1;
}

.aff-cards--rows .aff-card-item__crown,
.aff-cards--featured .aff-card-item__crown {
	color: #fcd34d;
	background: linear-gradient(135deg, #1e293b, #0f172a);
}

.aff-card-item__crown svg {
	width: 12px;
	height: 12px;
}

.aff-cards--rows .aff-card-item__rank,
.aff-cards--featured .aff-card-item__rank {
	color: #e2e8f0;
	background: #0f172a;
}

/* The ribbon straddles the top-left corner, so drop the header clear of it */
.aff-card-item:has(.aff-card-item__crown) .aff-card-item__top,
.aff-card-item:has(.aff-card-item__rank) .aff-card-item__top {
	margin-top: 14px;
}

/* --- Collapsed header row --------------------------------------------------- */

.aff-card-item__top {
	display: flex;
	align-items: center;
	gap: 16px;
}

.aff-card-item__logo {
	flex: none;
	display: block;
	line-height: 0;
}

.aff-cards--rows .aff-card-item__logo img,
.aff-cards--rows .aff-card-item__logo .aff-monogram,
.aff-cards--featured .aff-card-item__logo img,
.aff-cards--featured .aff-card-item__logo .aff-monogram {
	width: 52px;
	height: 52px;
	margin: 0;
	border-radius: 13px;
	box-shadow: 0 2px 6px rgb(15 23 42 / 10%);
}

.aff-cards--rows .aff-card-item__logo img,
.aff-cards--featured .aff-card-item__logo img {
	object-fit: contain;
	background: #fff;
	border: 1px solid #eef1f6;
	padding: 4px;
}

.aff-card-item__main {
	flex: 1 1 auto;
	min-width: 0;
}

.aff-card-item__identity {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 7px 10px;
}

.aff-card-item__identity .aff-card-item__title {
	margin: 0;
	font-size: 17px;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: -0.01em;
}

.aff-card-item__title a {
	color: #0f172a;
	text-decoration: none;
	transition: color 0.15s ease;
}

.aff-card-item__title a:hover {
	color: #0e7490;
}

.aff-card-item__verified {
	display: inline-flex;
	align-items: center;
	gap: 3px;
	font-size: 11.5px;
	font-weight: 600;
	color: #15803d;
}

.aff-card-item__verified svg {
	width: 13px;
	height: 13px;
}

.aff-card-item__identity .aff-stars__base {
	font-size: 13px;
}

/* Freshness chip: inline in the identity row (the ring + ribbon own the corners) */
.aff-card-item__flag {
	position: static;
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 2px 9px;
	border-radius: 999px;
	font-size: 10px;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.aff-card-item__flag svg {
	width: 11px;
	height: 11px;
}

.aff-card-item__flag--new {
	background: #dcfce7;
	color: #15803d;
}

.aff-card-item__flag--updated {
	background: #e0f2fe;
	color: #0369a1;
}

.aff-card-item__meta {
	display: block;
	margin: 5px 0 0;
	font-size: 12px;
	color: #94a3b8;
}

.aff-card-item__meta b {
	color: #64748b;
	font-weight: 700;
}

.aff-card-item__summary {
	margin: 6px 0 0;
	font-size: 12.5px;
	line-height: 1.5;
	color: #64748b;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.aff-card-item.is-open .aff-card-item__summary {
	display: none;
}

/* --- Score ring ------------------------------------------------------------- */

.aff-card-item__ring {
	position: relative;
	flex: none;
	width: 60px;
	height: 60px;
}

.aff-card-item__ring svg {
	display: block;
	width: 60px;
	height: 60px;
}

.aff-card-item__ring-num {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	line-height: 1;
}

.aff-card-item__ring-num strong {
	font-family: "Space Grotesk", "Inter", sans-serif;
	font-size: 17px;
	font-weight: 700;
	letter-spacing: -0.02em;
	color: #0f172a;
	font-variant-numeric: tabular-nums;
}

.aff-card-item__ring-num small {
	margin-top: 1px;
	font-size: 8px;
	font-weight: 600;
	color: #94a3b8;
}

/* --- Expandable region ------------------------------------------------------ */

.aff-card-item__more {
	max-height: 0;
	opacity: 0;
	overflow: hidden;
	transition: max-height 0.32s ease, opacity 0.26s ease, margin 0.32s ease, padding 0.32s ease;
}

.aff-card-item.is-open .aff-card-item__more {
	max-height: 900px;
	opacity: 1;
	margin-top: 16px;
	padding-top: 16px;
	border-top: 1px solid #eef2f7;
}

.aff-card-item__desc {
	margin: 0;
	font-size: 13.5px;
	line-height: 1.55;
	color: #475569;
	-webkit-line-clamp: none;
	display: block;
}

.aff-card-item__stats {
	margin: 16px 0 0;
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 14px 16px;
}

.aff-card-item__stat {
	position: relative;
	min-width: 0;
}

.aff-card-item__stat dt {
	display: flex;
	align-items: center;
	gap: 3px;
	font-family: "Space Grotesk", "Inter", sans-serif;
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: #94a3b8;
}

.aff-card-item__stat dd {
	margin: 4px 0 0;
	font-size: 13.5px;
	font-weight: 700;
	line-height: 1.35;
	color: #0f172a;
}

.aff-card-item__verts {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 7px;
	margin: 16px 0 0;
}

.aff-card-item__vk {
	margin-right: 2px;
	font-family: "Space Grotesk", "Inter", sans-serif;
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: #94a3b8;
}

.aff-card-item__tag {
	display: inline-block;
	padding: 4px 11px;
	border-radius: 999px;
	background: #f8fafc;
	border: 1px solid #e6ebf1;
	font-size: 11px;
	font-weight: 600;
	color: #475569;
	text-decoration: none;
	transition: border-color 0.15s ease, color 0.15s ease;
}

a.aff-card-item__tag:hover {
	border-color: #0ea5e9;
	color: #0e7490;
}

.aff-card-item__tag--more {
	background: #fff;
	color: #94a3b8;
}

/* --- Action bar (always visible) -------------------------------------------- */

.aff-card-item__bar {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 12px;
	margin: 16px 0 0;
	padding-top: 14px;
	border-top: 1px solid #eef2f7;
}

.aff-card-item__bar-spacer {
	flex: 1 1 auto;
}

.aff-card-item__toggle {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	padding: 6px 2px;
	background: none;
	border: 0;
	cursor: pointer;
	font-family: inherit;
	font-size: 12.5px;
	font-weight: 600;
	color: #0e7490;
}

.aff-card-item__toggle:hover {
	color: #0f172a;
}

.aff-card-item__toggle:focus-visible {
	outline: 2px solid #0ea5e9;
	outline-offset: 3px;
	border-radius: 6px;
}

.aff-card-item__chev {
	width: 15px;
	height: 15px;
	transition: transform 0.25s ease;
}

.aff-card-item.is-open .aff-card-item__chev {
	transform: rotate(180deg);
}

/* Compare pick: keep the existing markup/JS, retint to cyan */
.aff-card-item__bar .aff-compare-pick {
	font-size: 12.5px;
	color: #64748b;
}

.aff-card-item__bar .aff-compare-pick input {
	accent-color: #0ea5e9;
}

.aff-card-item__bar .aff-compare-pick:hover,
.aff-card-item__bar .aff-compare-pick:has(input:checked) {
	color: #0e7490;
}

/* Bar buttons: ghost Visit (outbound) + primary dark-ink View profile */
.aff-card-item__bar .aff-btn {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 9px 15px;
	border-radius: 10px;
	font-size: 13px;
	font-weight: 600;
	white-space: nowrap;
}

.aff-card-item__bar .aff-btn svg {
	width: 14px;
	height: 14px;
	flex: none;
}

.aff-card-item__visit {
	max-width: 42%;
	background: transparent;
	border: 1px solid #dbe3ec;
	color: #0f172a;
}

.aff-card-item__visit span {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.aff-card-item__visit:hover {
	border-color: #94a3b8;
	background: #f8fafc;
	color: #0f172a;
}

/* View profile keeps the site's dark-ink primary skin (v3.6 gradient + v5.4
   sheen); just release the full-width rail sizing it inherited. */
.aff-card-item__cta {
	width: auto;
	min-width: 0;
	color: #fff;
}

@media (prefers-reduced-motion: reduce) {
	.aff-card-item__more {
		transition: none;
	}

	.aff-card-item.is-open .aff-card-item__more {
		max-height: none;
	}

	.aff-card-item__chev {
		transition: none;
	}
}

/* --- Responsive ------------------------------------------------------------- */

@media (max-width: 860px) {
	.aff-cards--rows .aff-card-item,
	.aff-cards--featured .aff-card-item {
		padding: 18px;
	}

	.aff-card-item__stats {
		grid-template-columns: repeat(3, 1fr);
	}
}

@media (max-width: 600px) {
	.aff-card-item__top {
		gap: 12px;
	}

	.aff-card-item__ring,
	.aff-card-item__ring svg {
		width: 52px;
		height: 52px;
	}

	.aff-card-item__stats {
		grid-template-columns: repeat(2, 1fr);
	}

	.aff-card-item__visit {
		max-width: none;
	}
}


/* =============================================================================
 * v5.8 — Single listing "intelligence terminal" rebuild.
 * Self-contained, scoped under .afx (the single-listing article). New markup
 * lives in the aff-engine single templates/parts; this sheet loads after the
 * plugin sheet so it owns the cascade. Palette recoloured to our system:
 * ink #0f172a, cyan #0ea5e9 / #22d3ee, verified green #15803d.
 * ========================================================================== */

.afx {
	--afx-ink: #0f172a;
	--afx-ink-2: #475569;
	--afx-ink-3: #64748b;
	--afx-ink-4: #94a3b8;
	--afx-panel: #ffffff;
	--afx-panel-2: #f6f9fb;
	--afx-panel-3: #eef3f7;
	--afx-line: #e4e9ef;
	--afx-line-2: #d5dce4;
	--afx-accent: #0ea5e9;
	--afx-accent-2: #22d3ee;
	--afx-accent-d: #0c7bb3;
	--afx-accent-dim: #e5f6fd;
	--afx-navy: #0f172a;
	--afx-navy-2: #1e293b;
	--afx-green: #16a34a;
	--afx-green-d: #15803d;
	--afx-green-dim: #e9f7ef;
	--afx-red: #dc2626;
	--afx-red-d: #b91c1c;
	--afx-red-dim: #fdecec;
	--afx-amber-d: #b45309;
	--afx-amber-dim: #fef3e2;
	--afx-disp: "Space Grotesk", system-ui, sans-serif;
	--afx-sans: "Inter", system-ui, sans-serif;
	--afx-mono: "JetBrains Mono", ui-monospace, monospace;
	color: var(--afx-ink);
	font-family: var(--afx-sans);
	line-height: 1.5;
}

.afx__inner {
	max-width: 1240px;
	margin: 0 auto;
	padding: 20px 24px 64px;
}

.afx a {
	text-decoration: none;
}

.afx-lbl {
	font-family: var(--afx-mono);
	font-size: 10.5px;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--afx-ink-4);
}

/* --- Section scaffolding ------------------------------------------------- */
.afx-sec {
	padding: 34px 0 0;
	scroll-margin-top: 70px;
}

.afx-sech {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0 0 18px;
	font-family: var(--afx-disp);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--afx-ink-3);
}

.afx-sech::after {
	content: "";
	flex: 1;
	height: 1px;
	background: var(--afx-line);
}

.afx-card {
	background: var(--afx-panel);
	border: 1px solid var(--afx-line);
	border-radius: 16px;
	padding: 24px 26px;
}

/* --- HERO ----------------------------------------------------------------- */
.afx-hero {
	position: relative;
	margin-top: 14px;
	border: 1px solid var(--afx-line);
	border-radius: 20px;
	overflow: hidden;
	background:
		radial-gradient(640px 280px at 84% -40%, rgb(14 165 233 / 10%), transparent 70%),
		var(--afx-panel);
}

.afx-hero__grid {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 40px;
	padding: 34px 38px 0;
}

.afx-hero__cat {
	display: flex;
	align-items: center;
	gap: 14px;
	margin-bottom: 16px;
}

.afx-hero__logo {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 58px;
	height: 58px;
	border-radius: 14px;
	overflow: hidden;
	background: var(--afx-panel-2);
	border: 1px solid var(--afx-line);
	flex: none;
}

.afx-hero__logo .afx-hero__img,
.afx-hero__logo img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.afx-hero__logo .aff-monogram {
	width: 100%;
	height: 100%;
	border-radius: 0;
	font-size: 22px;
}

.afx-tag {
	font-family: var(--afx-mono);
	font-size: 10.5px;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--afx-accent-d);
	background: var(--afx-accent-dim);
	padding: 5px 11px;
	border-radius: 6px;
}

.afx-hero__name {
	margin: 0;
	font-family: var(--afx-disp);
	font-weight: 700;
	font-size: 42px;
	line-height: 1;
	letter-spacing: -0.03em;
	color: var(--afx-ink);
}

.afx-hero__desc {
	max-width: 520px;
	margin: 15px 0 0;
	font-size: 15px;
	color: var(--afx-ink-2);
}

.afx-hero__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 22px 28px;
	margin: 24px 0 34px;
}

.afx-hero__m {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.afx-hero__mv {
	font-family: var(--afx-mono);
	font-size: 14px;
	font-weight: 600;
	color: var(--afx-ink);
}

.afx-hero__mv .aff-stars {
	font-family: var(--afx-sans);
}

.afx-vpill {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	font-family: var(--afx-sans);
	font-size: 12px;
	font-weight: 600;
	color: var(--afx-green-d);
	background: var(--afx-green-dim);
	padding: 4px 10px;
	border-radius: 20px;
}

.afx-vpill svg {
	width: 12px;
	height: 12px;
}

/* Console score panel */
.afx-console {
	align-self: start;
	min-width: 288px;
	margin: 6px 0 0;
	padding: 22px 24px;
	background: var(--afx-panel-2);
	border: 1px solid var(--afx-line);
	border-radius: 16px;
}

.afx-console__top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 18px;
}

.afx-console__score {
	display: flex;
	align-items: baseline;
	gap: 5px;
}

.afx-console__score b {
	font-family: var(--afx-disp);
	font-size: 52px;
	font-weight: 700;
	line-height: 0.9;
	letter-spacing: -0.02em;
}

.afx-console__score s {
	font-size: 15px;
	color: var(--afx-ink-4);
	text-decoration: none;
}

.afx-tier {
	font-family: var(--afx-mono);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.1em;
	padding: 5px 10px;
	border-radius: 6px;
	color: var(--afx-green-d);
	background: var(--afx-green-dim);
}

.afx-tier--strong,
.afx-tier--solid {
	color: var(--afx-accent-d);
	background: var(--afx-accent-dim);
}

.afx-tier--fair {
	color: var(--afx-amber-d);
	background: var(--afx-amber-dim);
}

.afx-console__bars {
	display: flex;
	flex-direction: column;
	gap: 9px;
	margin-bottom: 20px;
}

.afx-csrow {
	display: grid;
	grid-template-columns: 68px 1fr 28px;
	align-items: center;
	gap: 9px;
}

.afx-csrow__k {
	font-size: 11px;
	color: var(--afx-ink-3);
}

.afx-csrow__t {
	height: 5px;
	background: var(--afx-panel-3);
	border-radius: 20px;
	overflow: hidden;
}

.afx-csrow__f {
	display: block;
	height: 100%;
	border-radius: 20px;
	background: var(--afx-accent);
}

.afx-csrow__v {
	font-family: var(--afx-mono);
	font-size: 11.5px;
	font-weight: 600;
	text-align: right;
}

.afx-join {
	display: block;
	width: 100%;
	padding: 12px;
	border: none;
	border-radius: 11px;
	background: var(--afx-navy);
	color: #fff;
	font-family: var(--afx-sans);
	font-size: 14px;
	font-weight: 600;
	text-align: center;
	cursor: pointer;
	transition: background 0.15s ease;
}

.afx-join:hover {
	background: var(--afx-navy-2);
	color: #fff;
}

.afx-join--cyan {
	background: var(--afx-accent);
	color: #04222b;
	font-weight: 700;
}

.afx-join--cyan:hover {
	background: var(--afx-accent-2);
	color: #04222b;
}

.afx-console__claim {
	display: block;
	margin-top: 10px;
	text-align: center;
	font-size: 12.5px;
	color: var(--afx-ink-3);
}

.afx-console__claim:hover {
	color: var(--afx-accent-d);
}

.afx-verify {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 26px;
	margin-top: 26px;
	padding: 16px 38px;
	border-top: 1px solid var(--afx-line);
	background: var(--afx-panel-2);
	font-family: var(--afx-mono);
	font-size: 11.5px;
	color: var(--afx-ink-3);
}

.afx-verify b {
	color: var(--afx-accent-d);
	font-weight: 600;
}

.afx-verify__dot {
	color: var(--afx-green);
}

/* --- JUMP NAV ------------------------------------------------------------- */
.afx-jump {
	position: sticky;
	top: 0;
	z-index: 20;
	margin-top: 22px;
	background: rgb(255 255 255 / 92%);
	backdrop-filter: blur(10px);
	border-bottom: 1px solid var(--afx-line);
}

.afx-jump__in {
	display: flex;
	align-items: center;
	gap: 2px;
	height: 52px;
	overflow-x: auto;
}

.afx-jump a {
	padding: 8px 13px;
	border-radius: 8px;
	font-size: 13px;
	font-weight: 500;
	color: var(--afx-ink-2);
	white-space: nowrap;
}

.afx-jump a:hover {
	color: var(--afx-ink);
	background: var(--afx-panel-2);
}

.afx-jump__cta {
	margin-left: auto;
	background: var(--afx-navy);
	color: #fff !important;
	font-weight: 600;
	padding: 8px 18px !important;
}

.afx-jump__cta:hover {
	background: var(--afx-navy-2) !important;
}

/* --- LAYOUT --------------------------------------------------------------- */
.afx__cols {
	display: grid;
	grid-template-columns: 1fr 328px;
	gap: 26px;
	align-items: start;
	margin-top: 4px;
}

.afx__main {
	min-width: 0;
}

.afx__rail {
	position: sticky;
	top: 68px;
	display: flex;
	flex-direction: column;
	gap: 16px;
	margin-top: 34px;
}

/* --- EDITOR VERDICT ------------------------------------------------------- */
.afx-verdict__take {
	display: flex;
	gap: 18px;
	padding: 4px 0 4px 22px;
	border-left: 3px solid var(--afx-accent);
}

.afx-verdict__mark {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	flex: none;
	border-radius: 50%;
	background: var(--afx-accent-dim);
	color: var(--afx-accent-d);
}

.afx-verdict__mark svg {
	width: 20px;
	height: 20px;
}

.afx-verdict__lede,
.afx-verdict__body p {
	margin: 0 0 12px;
	font-family: var(--afx-disp);
	font-size: 15.5px;
	font-weight: 500;
	line-height: 1.65;
	letter-spacing: -0.01em;
	color: var(--afx-ink);
}

.afx-verdict__meta {
	margin: 0;
	font-size: 12.5px;
	color: var(--afx-ink-3);
}

.afx-verdict__meta b {
	color: var(--afx-ink);
	font-weight: 600;
}

/* --- KEY-FACT TILES ------------------------------------------------------- */
.afx-tiles {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 14px;
}

.afx-tile {
	position: relative;
	padding: 15px 17px;
	background: var(--afx-panel);
	border: 1px solid var(--afx-line);
	border-radius: 14px;
}

.afx-tile__k {
	font-family: var(--afx-mono);
	font-size: 9.5px;
	font-weight: 600;
	letter-spacing: 0.09em;
	text-transform: uppercase;
	color: var(--afx-ink-4);
}

.afx-tile__v {
	margin-top: 7px;
	font-family: var(--afx-disp);
	font-size: 18px;
	font-weight: 600;
	letter-spacing: -0.01em;
	color: var(--afx-ink);
	overflow-wrap: anywhere;
}

.afx-tile__v--sm {
	font-family: var(--afx-sans);
	font-size: 14px;
	font-weight: 600;
}

/* --- SCORE MATRIX --------------------------------------------------------- */
.afx-matrix {
	display: grid;
	grid-template-columns: 260px 1fr;
	gap: 26px;
	padding: 26px 28px;
	background: var(--afx-panel);
	border: 1px solid var(--afx-line);
	border-radius: 16px;
}

.afx-matrix__radar {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	border-right: 1px solid var(--afx-line);
	padding-right: 8px;
}

.afx-radar {
	width: 100%;
	max-width: 230px;
	height: auto;
}

.afx-radar__grid polygon {
	fill: none;
	stroke: var(--afx-line-2);
	stroke-width: 1;
}

.afx-radar__axes line {
	stroke: var(--afx-line);
	stroke-width: 1;
}

.afx-radar__shape {
	fill: rgb(14 165 233 / 16%);
	stroke: var(--afx-accent);
	stroke-width: 2;
	stroke-linejoin: round;
}

.afx-radar__avg {
	fill: none;
	stroke: var(--afx-ink-4);
	stroke-width: 1.4;
	stroke-dasharray: 3 3;
	stroke-linejoin: round;
}

.afx-radar__dots circle {
	fill: var(--afx-accent);
}

.afx-radar__labels text {
	font-family: var(--afx-mono);
	font-size: 8px;
	letter-spacing: 0.04em;
	fill: var(--afx-ink-4);
}

.afx-radar__legend {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 16px;
	justify-content: center;
	margin: 12px 0 0;
	font-size: 11px;
	color: var(--afx-ink-3);
}

.afx-radar__key {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

.afx-radar__key--mine::before {
	content: "";
	width: 14px;
	height: 2px;
	border-radius: 2px;
	background: var(--afx-accent);
}

.afx-radar__key--avg::before {
	content: "";
	width: 14px;
	height: 0;
	border-top: 2px dashed var(--afx-ink-4);
}

.afx-meters {
	display: flex;
	flex-direction: column;
	gap: 13px;
	justify-content: center;
}

.afx-mrow {
	display: grid;
	grid-template-columns: 122px 1fr 34px;
	align-items: center;
	gap: 14px;
}

.afx-mrow__k {
	font-size: 13px;
	color: var(--afx-ink-2);
}

.afx-mrow__t {
	height: 7px;
	background: var(--afx-panel-3);
	border-radius: 20px;
	overflow: hidden;
}

.afx-mrow__f {
	display: block;
	height: 100%;
	border-radius: 20px;
	background: linear-gradient(90deg, var(--afx-accent-2), var(--afx-accent));
}

.afx-mrow__v {
	font-family: var(--afx-mono);
	font-size: 13px;
	font-weight: 700;
	text-align: right;
}

.afx-mrow--top .afx-mrow__k {
	color: var(--afx-ink);
	font-weight: 600;
}

.afx-mrow--top .afx-mrow__v {
	color: var(--afx-accent-d);
}

/* --- PROS / CONS / FIT ---------------------------------------------------- */
.afx-fit__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
}

.afx-vcard {
	padding: 22px 24px;
	background: var(--afx-panel);
	border: 1px solid var(--afx-line);
	border-radius: 16px;
}

.afx-vcard--good {
	border-top: 3px solid var(--afx-green);
}

.afx-vcard--bad {
	border-top: 3px solid var(--afx-red);
}

.afx-vcard__h {
	display: flex;
	align-items: center;
	gap: 9px;
	margin-bottom: 4px;
	font-family: var(--afx-disp);
	font-size: 16px;
	font-weight: 600;
}

.afx-vcard__h svg {
	width: 18px;
	height: 18px;
}

.afx-vcard__h--g {
	color: var(--afx-green-d);
}

.afx-vcard__h--b {
	color: var(--afx-red-d);
}

.afx-vcard__block {
	margin-top: 14px;
}

.afx-vcard__bh {
	margin-bottom: 8px;
	font-family: var(--afx-mono);
	font-size: 10px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--afx-ink-4);
}

.afx-vitem {
	display: flex;
	gap: 11px;
	align-items: flex-start;
	padding: 5px 0;
	font-size: 14px;
	color: var(--afx-ink);
}

.afx-vitem .afx-vic {
	flex: none;
	width: 15px;
	height: 15px;
	margin-top: 3px;
	color: var(--afx-green);
}

.afx-vitem--bad .afx-vic {
	color: var(--afx-red);
}

/* --- DATA & SOURCES ------------------------------------------------------- */
.afx-intel {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
}

.afx-conf {
	display: flex;
	align-items: center;
	gap: 16px;
	margin-bottom: 16px;
	padding-bottom: 16px;
	border-bottom: 1px solid var(--afx-line);
}

.afx-cring {
	position: relative;
	width: 66px;
	height: 66px;
	flex: none;
}

.afx-cring svg {
	width: 66px;
	height: 66px;
}

.afx-cring__t {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
}

.afx-cring__t b {
	font-family: var(--afx-disp);
	font-size: 16px;
	font-weight: 700;
	color: var(--afx-accent-d);
}

.afx-cring__t s {
	font-family: var(--afx-mono);
	font-size: 8px;
	color: var(--afx-ink-4);
	text-decoration: none;
}

.afx-conf__txt {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.afx-conf__big {
	font-family: var(--afx-disp);
	font-size: 15px;
	font-weight: 600;
}

.afx-conf__sm {
	font-size: 12px;
	color: var(--afx-ink-3);
}

.afx-drow {
	display: flex;
	justify-content: space-between;
	padding: 5px 0;
	font-size: 13px;
}

.afx-drow span {
	color: var(--afx-ink-3);
}

.afx-drow b {
	font-family: var(--afx-mono);
	font-size: 12.5px;
	font-weight: 600;
}

.afx-srclist {
	margin-top: 12px;
	border-top: 1px solid var(--afx-line);
	padding-top: 12px;
}

.afx-srclist summary {
	cursor: pointer;
	font-size: 12.5px;
	font-weight: 600;
	color: var(--afx-accent-d);
	list-style: none;
}

.afx-srclist summary::-webkit-details-marker {
	display: none;
}

.afx-srclist summary::before {
	content: "\25B8  ";
}

.afx-srclist[open] summary::before {
	content: "\25BE  ";
}

.afx-srclist ul {
	margin: 10px 0 0;
	padding: 0;
	list-style: none;
}

.afx-srclist li {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	padding: 5px 0;
	font-size: 12px;
	border-top: 1px dashed var(--afx-line);
}

.afx-srclist__f {
	color: var(--afx-ink-2);
}

.afx-srclist li a {
	font-family: var(--afx-mono);
	color: var(--afx-accent-d);
	white-space: nowrap;
}

.afx-cmp__h {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 16px;
}

.afx-beat {
	font-family: var(--afx-mono);
	font-size: 10px;
	font-weight: 700;
	color: var(--afx-green-d);
	background: var(--afx-green-dim);
	padding: 4px 10px;
	border-radius: 6px;
}

.afx-pline {
	display: grid;
	grid-template-columns: 1fr auto;
	align-items: center;
	gap: 4px 8px;
	margin-bottom: 12px;
}

.afx-pline__l {
	font-size: 12.5px;
	color: var(--afx-ink-3);
}

.afx-pline__v {
	font-family: var(--afx-mono);
	font-size: 13px;
	font-weight: 700;
	color: var(--afx-ink-3);
}

.afx-pline__v--mine {
	color: var(--afx-accent-d);
}

.afx-pt {
	grid-column: 1 / 3;
	height: 7px;
	margin-top: 4px;
	background: var(--afx-panel-3);
	border-radius: 20px;
	overflow: hidden;
}

.afx-pf {
	display: block;
	height: 100%;
	border-radius: 20px;
	background: var(--afx-line-2);
}

.afx-pf--mine {
	background: var(--afx-accent);
}

.afx-cmp__note {
	margin: 16px 0 0;
	padding-top: 14px;
	border-top: 1px solid var(--afx-line);
	font-size: 12.5px;
	line-height: 1.6;
	color: var(--afx-ink-3);
}

.afx-cmp__note b {
	color: var(--afx-green-d);
}

/* --- STICKY RAIL CARDS ---------------------------------------------------- */
.afx-rcard {
	padding: 20px 22px;
	background: var(--afx-panel);
	border: 1px solid var(--afx-line);
	border-radius: 16px;
}

.afx-apply {
	background: var(--afx-navy);
	border-color: var(--afx-navy);
	color: #fff;
}

.afx-apply__top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 16px;
}

.afx-apply__score {
	font-family: var(--afx-disp);
	font-size: 30px;
	font-weight: 700;
}

.afx-apply__score s {
	font-size: 13px;
	color: #64748b;
	text-decoration: none;
}

.afx-apply__tier {
	font-family: var(--afx-mono);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.08em;
	color: #6ee7b7;
	background: rgb(52 211 153 / 15%);
	padding: 4px 9px;
	border-radius: 6px;
}

.afx-apply__pay {
	display: flex;
	align-items: center;
	gap: 6px;
	margin: 12px 0 0;
	font-size: 12px;
	color: #cbd5e1;
}

.afx-apply__pay span {
	color: #6ee7b7;
	font-weight: 700;
}

.afx-apply__pay b {
	color: #fff;
}

.afx-rh {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0 0 14px;
	font-family: var(--afx-disp);
	font-size: 14px;
	font-weight: 600;
	color: var(--afx-ink);
}

.afx-rh__dot {
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--afx-accent);
}

.afx-feat {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 9px 0;
	font-size: 13px;
	border-bottom: 1px solid var(--afx-line);
}

.afx-feat:last-child {
	border-bottom: none;
}

.afx-feat__rk {
	flex: none;
	font-family: var(--afx-mono);
	font-size: 11px;
	font-weight: 700;
	color: var(--afx-accent-d);
	background: var(--afx-accent-dim);
	padding: 3px 8px;
	border-radius: 6px;
}

.afx-feat a {
	color: var(--afx-ink-2);
}

.afx-feat:hover a {
	color: var(--afx-accent-d);
}

.afx-log {
	position: relative;
	padding-left: 20px;
}

.afx-log::before {
	content: "";
	position: absolute;
	left: 4px;
	top: 6px;
	bottom: 6px;
	width: 1.5px;
	background: var(--afx-line);
}

.afx-log__item {
	position: relative;
	padding-bottom: 15px;
}

.afx-log__item:last-child {
	padding-bottom: 0;
}

.afx-log__item::before {
	content: "";
	position: absolute;
	left: -19.5px;
	top: 4px;
	width: 9px;
	height: 9px;
	border-radius: 50%;
	background: var(--afx-accent);
	border: 2px solid var(--afx-panel);
}

.afx-log__d {
	font-family: var(--afx-mono);
	font-size: 10.5px;
	letter-spacing: 0.04em;
	color: var(--afx-ink-4);
}

.afx-log__t {
	margin-top: 3px;
	font-size: 12.5px;
	line-height: 1.45;
	color: var(--afx-ink-2);
}

.afx-log__t b {
	color: var(--afx-ink);
	font-weight: 600;
}

.afx-snap {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	padding: 7px 0;
	font-size: 13px;
	border-bottom: 1px solid var(--afx-line);
}

.afx-snap:last-child {
	border-bottom: none;
}

.afx-snap span {
	color: var(--afx-ink-3);
}

.afx-snap b {
	font-weight: 600;
	text-align: right;
}

/* --- RULES ---------------------------------------------------------------- */
.afx-rules__card {
	padding: 8px 26px;
}

.afx-rules__row {
	padding: 16px 0;
	border-bottom: 1px solid var(--afx-line);
}

.afx-rules__row:last-child {
	border-bottom: none;
}

.afx-rules__h {
	margin: 0 0 6px;
	font-family: var(--afx-disp);
	font-size: 14px;
	font-weight: 600;
	color: var(--afx-ink);
}

.afx-rules__row p {
	margin: 0;
	font-size: 13.5px;
	line-height: 1.6;
	color: var(--afx-ink-2);
}

/* --- FAQ ------------------------------------------------------------------ */
.afx-faq details {
	margin-bottom: 10px;
	background: var(--afx-panel);
	border: 1px solid var(--afx-line);
	border-radius: 12px;
	overflow: hidden;
}

.afx-faq summary {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 16px 20px;
	cursor: pointer;
	list-style: none;
	font-size: 14.5px;
	font-weight: 600;
	color: var(--afx-ink);
}

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

.afx-faq__chev {
	flex: none;
	width: 15px;
	height: 15px;
	color: var(--afx-accent);
	transition: transform 0.2s ease;
}

.afx-faq details[open] .afx-faq__chev {
	transform: rotate(90deg);
}

.afx-faq details[open] summary {
	border-bottom: 1px solid var(--afx-line);
}

.afx-faq .aff-faq__a {
	padding: 14px 20px 16px 44px;
}

.afx-faq .aff-faq__a p {
	margin: 0;
	font-size: 13.5px;
	line-height: 1.65;
	color: var(--afx-ink-2);
}

/* --- SIMILAR (full width) ------------------------------------------------- */
.afx-simwrap {
	padding-bottom: 8px;
}

.afx-sim {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 16px;
}

.afx-simcard {
	padding: 20px 22px;
	background: var(--afx-panel);
	border: 1px solid var(--afx-line);
	border-radius: 16px;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.afx-simcard:hover {
	border-color: var(--afx-accent);
	box-shadow: 0 8px 26px -14px rgb(14 165 233 / 40%);
}

.afx-simcard__top {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 14px;
}

.afx-simcard__logo {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	flex: none;
	border-radius: 11px;
	font-family: var(--afx-disp);
	font-weight: 700;
	font-size: 14px;
	color: #fff;
	background: hsl(var(--afx-hue, 205) 70% 45%);
}

.afx-simcard__logo--img {
	background: var(--afx-panel-2);
	border: 1px solid var(--afx-line);
	overflow: hidden;
}

.afx-simcard__img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.afx-simcard__id {
	display: flex;
	flex-direction: column;
	gap: 1px;
	min-width: 0;
}

.afx-simcard__name {
	font-family: var(--afx-disp);
	font-weight: 600;
	font-size: 15px;
	color: var(--afx-ink);
}

.afx-simcard__cat {
	font-size: 11.5px;
	color: var(--afx-ink-4);
}

.afx-simcard__score {
	margin-left: auto;
	font-family: var(--afx-disp);
	font-weight: 700;
	font-size: 18px;
	color: var(--afx-accent-d);
}

.afx-simcard__stats {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 18px;
	padding: 12px 0;
	margin-bottom: 14px;
	border-top: 1px solid var(--afx-line);
	border-bottom: 1px solid var(--afx-line);
	font-size: 12px;
	color: var(--afx-ink-3);
}

.afx-simcard__stats b {
	display: block;
	margin-top: 2px;
	font-size: 13px;
	font-weight: 600;
	color: var(--afx-ink);
}

.afx-simcard__btns {
	display: flex;
	gap: 8px;
}

.afx-simcard__btns a {
	flex: 1;
	padding: 9px;
	text-align: center;
	font-size: 12.5px;
	font-weight: 600;
	border-radius: 9px;
}

.afx-simcard__view {
	background: var(--afx-navy);
	color: #fff;
}

.afx-simcard__view:hover {
	background: var(--afx-navy-2);
	color: #fff;
}

.afx-simcard__comp {
	background: var(--afx-panel-2);
	border: 1px solid var(--afx-line-2);
	color: var(--afx-ink-2);
}

.afx-simcard__comp:hover {
	border-color: var(--afx-accent);
	color: var(--afx-accent-d);
}

/* --- Legacy sections rendered inside the terminal (details / creator-fit /
 *     about / how-to-join / reviews) — harmonise heading + card chrome. --- */
.afx .aff-section {
	padding: 24px 26px;
	margin: 34px 0 0;
	background: var(--afx-panel);
	border: 1px solid var(--afx-line);
	border-radius: 16px;
	box-shadow: none;
	scroll-margin-top: 70px;
}

.afx .aff-section > h2 {
	margin: 0 0 16px;
	font-family: var(--afx-disp);
	font-size: 18px;
	font-weight: 600;
	letter-spacing: -0.01em;
	color: var(--afx-ink);
}

.afx .aff-reviews {
	scroll-margin-top: 70px;
}

/* --- RESPONSIVE ----------------------------------------------------------- */
@media (max-width: 980px) {
	.afx__cols {
		grid-template-columns: 1fr;
	}

	.afx__rail {
		position: static;
		margin-top: 8px;
	}

	.afx-hero__grid {
		grid-template-columns: 1fr;
		padding: 28px 24px 0;
	}

	.afx-console {
		min-width: 0;
	}

	.afx-verify {
		padding: 16px 24px;
	}

	.afx-matrix,
	.afx-intel,
	.afx-fit__grid,
	.afx-sim {
		grid-template-columns: 1fr;
	}

	.afx-matrix__radar {
		border-right: none;
		border-bottom: 1px solid var(--afx-line);
		padding: 0 0 18px;
	}

	.afx-tiles {
		grid-template-columns: 1fr 1fr;
	}
}

@media (max-width: 560px) {
	.afx-hero__name {
		font-size: 32px;
	}

	.afx-mrow {
		grid-template-columns: 96px 1fr 30px;
		gap: 10px;
	}
}


/* =============================================================================
 * v5.9 — Directory archive + compare "intelligence terminal" rebuild.
 * Restyles the shared archive shell (layout-archive.php + taxonomy-hub.php):
 * page header with a real stats strip, sticky FacetWP filter sidebar, toolbar,
 * pagination, methodology + FAQ (reusing the v5.8 .afx-card / .afx-faq), the
 * Browse-by tag clouds, plus an upgraded 2–4 compare tray and an in-page
 * compare modal. The v5.7 ring-row cards are reused verbatim. Archive markup is
 * scoped under .afx (so it inherits the v5.8 --afx-* tokens); the tray + modal
 * live on <body> outside that scope, so they use literal palette values.
 * ========================================================================== */

.afx-arch__inner {
	max-width: 1220px;
	margin: 0 auto;
	padding: 20px 24px 64px;
}

/* --- Breadcrumb ----------------------------------------------------------- */
.afx-arch .aff-breadcrumbs {
	margin: 0 0 6px;
	font-family: var(--afx-mono);
	font-size: 11.5px;
	color: var(--afx-ink-4);
}

.afx-arch .aff-breadcrumbs a {
	color: var(--afx-ink-4);
}

.afx-arch .aff-breadcrumbs a:hover {
	color: var(--afx-accent-d);
}

.afx-arch .aff-breadcrumbs span[aria-current="page"] {
	color: var(--afx-ink-2);
	font-weight: 500;
}

/* --- Page header ---------------------------------------------------------- */
.afx-phead {
	position: relative;
	margin-top: 8px;
	padding: 36px 40px;
	border: 1px solid var(--afx-line);
	border-radius: 20px;
	overflow: hidden;
	background:
		radial-gradient(560px 240px at 88% -50%, rgb(14 165 233 / 10%), transparent 70%),
		var(--afx-panel);
}

.afx-phead h1 {
	margin: 0 0 12px;
	font-family: var(--afx-disp);
	font-weight: 700;
	font-size: 38px;
	line-height: 1.05;
	letter-spacing: -0.025em;
	color: var(--afx-ink);
}

.afx-phead__intro {
	max-width: 640px;
	margin: 0;
	font-size: 15px;
	line-height: 1.6;
	color: var(--afx-ink-2);
}

.afx-phead__intro p {
	margin: 0;
}

.afx-phead__stats {
	display: flex;
	flex-wrap: wrap;
	gap: 22px 36px;
	margin-top: 24px;
	padding-top: 22px;
	border-top: 1px solid var(--afx-line);
}

.afx-ps__n {
	font-family: var(--afx-disp);
	font-size: 22px;
	font-weight: 700;
	line-height: 1;
	color: var(--afx-accent-d);
}

.afx-ps__k {
	margin-top: 5px;
	font-family: var(--afx-mono);
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--afx-ink-4);
}

/* --- Two-column layout ---------------------------------------------------- */
.afx-arch__cols {
	display: grid;
	grid-template-columns: 264px 1fr;
	gap: 26px;
	align-items: start;
	margin: 26px 0 8px;
}

.afx-arch__main {
	min-width: 0;
}

/* --- Filter sidebar ------------------------------------------------------- */
.afx-filters {
	position: sticky;
	top: 16px;
	max-height: calc(100vh - 32px);
	overflow-y: auto;
	padding: 20px 22px;
	background: var(--afx-panel);
	border: 1px solid var(--afx-line);
	border-radius: 16px;
}

.afx-filters__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 16px;
}

.afx-filters__title {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0;
	font-family: var(--afx-disp);
	font-size: 16px;
	font-weight: 600;
	color: var(--afx-ink);
}

.afx-filters__title svg {
	width: 16px;
	height: 16px;
	color: var(--afx-accent);
}

.afx-arch .aff-filters-close {
	display: none;
	background: none;
	border: 0;
	font-size: 22px;
	line-height: 1;
	color: var(--afx-ink-4);
	cursor: pointer;
}

.afx-filters .aff-facet {
	padding: 15px 0;
	border-top: 1px solid var(--afx-line);
	border-bottom: none;
	font-size: 13px;
}

.afx-filters .aff-facet--listing_search {
	padding-top: 0;
	border-top: none;
}

.afx-filters .aff-facet__label {
	margin: 0 0 11px;
	font-family: var(--afx-mono);
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--afx-ink-4);
}

.afx-filters .facetwp-facet {
	margin-bottom: 0;
}

/* FacetWP search input */
.afx-filters .facetwp-search-wrap,
.afx-filters .facetwp-input-wrap {
	position: relative;
}

.afx-filters .facetwp-search {
	width: 100%;
	padding: 9px 12px;
	font-family: var(--afx-sans);
	font-size: 13px;
	color: var(--afx-ink);
	background: var(--afx-panel);
	border: 1px solid var(--afx-line-2);
	border-radius: 9px;
}

.afx-filters .facetwp-search:focus {
	outline: none;
	border-color: var(--afx-accent);
	box-shadow: 0 0 0 3px rgb(14 165 233 / 12%);
}

/* FacetWP checkbox rows */
.afx-filters .facetwp-checkbox {
	display: flex;
	align-items: center;
	gap: 4px;
	padding: 5px 0 5px 25px;
	font-size: 13px;
	color: var(--afx-ink-2);
	background-position: 0 50%;
	background-size: 16px;
	cursor: pointer;
	transition: color 0.12s ease;
}

.afx-filters .facetwp-checkbox:hover {
	color: var(--afx-ink);
}

.afx-filters .facetwp-checkbox.checked {
	color: var(--afx-ink);
	font-weight: 500;
}

.afx-filters .facetwp-counter {
	margin-left: auto;
	padding-left: 8px;
	font-family: var(--afx-mono);
	font-size: 11px;
	color: var(--afx-ink-4);
}

.afx-filters .facetwp-toggle {
	display: inline-block;
	margin-top: 8px;
	font-size: 12px;
	font-weight: 600;
	color: var(--afx-accent-d);
	cursor: pointer;
}

.afx-filters .facetwp-toggle:hover {
	color: var(--afx-accent);
}

/* Restore FacetWP's own hidden state — the styling rules above out-specify its
   single-class .facetwp-hidden and would otherwise reveal "See less" and the
   collapsed overflow rows. */
.afx-filters .facetwp-toggle.facetwp-hidden,
.afx-filters .facetwp-checkbox.facetwp-hidden {
	display: none;
}

/* FacetWP dropdown */
.afx-filters .facetwp-dropdown {
	width: 100%;
	padding: 9px 12px;
	font-family: var(--afx-sans);
	font-size: 13px;
	color: var(--afx-ink-2);
	background: var(--afx-panel);
	border: 1px solid var(--afx-line-2);
	border-radius: 9px;
}

/* FacetWP number range */
.afx-filters .facetwp-number {
	width: 100%;
	padding: 8px 10px;
	font-family: var(--afx-mono);
	font-size: 12px;
	border: 1px solid var(--afx-line-2);
	border-radius: 8px;
}

.afx-filters .facetwp-facet-min_payout .facetwp-number {
	margin-bottom: 8px;
}

/* Selected-facet reset chips */
.afx-filters .aff-facet--reset:empty,
.afx-filters .aff-facet--reset .facetwp-selections:empty {
	display: none;
}

.afx-filters .facetwp-selections {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

.afx-filters .facetwp-selections li {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	padding: 4px 10px;
	font-size: 11.5px;
	color: var(--afx-accent-d);
	background: var(--afx-accent-dim);
	border-radius: 20px;
}

.afx-filters .facetwp-selection-value {
	cursor: pointer;
}

/* --- Toolbar -------------------------------------------------------------- */
.afx-toolbar {
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
	margin-bottom: 16px;
}

.afx-toolbar__count {
	margin: 0;
	font-size: 13.5px;
	color: var(--afx-ink-3);
}

.afx-toolbar__count b {
	font-family: var(--afx-disp);
	font-size: 16px;
	font-weight: 700;
	color: var(--afx-ink);
}

.afx-arch .aff-filters-toggle {
	display: none;
}

/* Sort segmented control — dark active pill per the mockup */
.afx-sort {
	margin-left: auto;
	display: inline-flex;
	gap: 2px;
	padding: 3px;
	background: var(--afx-panel);
	border: 1px solid var(--afx-line);
	border-radius: 10px;
}

.afx-sort .aff-segmented__item {
	padding: 7px 13px;
	border-radius: 7px;
	font-size: 12.5px;
	font-weight: 600;
	color: var(--afx-ink-3);
	background: none;
	border: none;
}

.afx-sort .aff-segmented__item:hover {
	color: var(--afx-ink);
	background: var(--afx-panel-2);
}

.afx-sort .aff-segmented__item.is-active {
	color: #fff;
	background: var(--afx-navy);
}

/* --- Featured (sponsored) strip ------------------------------------------- */
.afx-arch .aff-featured {
	margin-bottom: 18px;
}

.afx-arch .aff-featured__label {
	margin: 0 0 10px;
	font-family: var(--afx-mono);
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--afx-ink-4);
}

/* --- Pagination ----------------------------------------------------------- */
.afx-arch__pag {
	margin-top: 28px;
}

.afx-arch__pag .nav-links {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 6px;
}

.afx-arch__pag .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	padding: 0 12px;
	font-size: 13.5px;
	font-weight: 600;
	color: var(--afx-ink-2);
	background: var(--afx-panel);
	border: 1px solid var(--afx-line);
	border-radius: 10px;
}

.afx-arch__pag a.page-numbers:hover {
	border-color: var(--afx-accent);
	color: var(--afx-accent-d);
}

.afx-arch__pag .page-numbers.current {
	color: #fff;
	background: var(--afx-navy);
	border-color: var(--afx-navy);
}

.afx-arch__pag .page-numbers.dots {
	border-color: transparent;
	background: none;
}

/* --- Methodology + FAQ sections ------------------------------------------- */
.afx-arch__method,
.afx-arch__faqs {
	padding-top: 30px;
}

.afx-arch__method .afx-card p {
	margin: 0;
	font-size: 14px;
	line-height: 1.7;
	color: var(--afx-ink-2);
}

/* --- Browse-by tag clouds (hub-links part) -------------------------------- */
.afx .aff-hub-links {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 18px;
	margin: 30px 0 0;
	padding: 0;
	background: none;
	border: none;
}

.afx .aff-hub-links__group {
	margin: 0;
	padding: 22px 24px;
	background: var(--afx-panel);
	border: 1px solid var(--afx-line);
	border-radius: 16px;
}

.afx .aff-hub-links__group h2 {
	margin: 0 0 14px;
	font-family: var(--afx-mono);
	font-size: 10.5px;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--afx-ink-4);
}

.afx .aff-hub-links__list {
	gap: 8px;
}

.afx .aff-hub-links__list a {
	padding: 5px 11px;
	font-size: 12.5px;
	color: var(--afx-ink-2);
	background: var(--afx-panel-2);
	border: 1px solid var(--afx-line);
	border-radius: 8px;
}

.afx .aff-hub-links__list a:hover {
	border-color: var(--afx-accent);
	color: var(--afx-accent-d);
}

.afx .aff-hub-links__count {
	margin-left: 5px;
	font-family: var(--afx-mono);
	font-size: 10px;
	color: var(--afx-ink-4);
}

/* --- Archive responsive --------------------------------------------------- */
@media (max-width: 980px) {
	.afx-arch__cols {
		grid-template-columns: 1fr;
	}

	.afx-arch .aff-filters-toggle {
		display: inline-flex;
		order: -1;
	}

	.afx-filters {
		position: fixed;
		inset: 0;
		z-index: 1000;
		display: none;
		max-height: none;
		border-radius: 0;
	}

	.afx-filters.is-open {
		display: block;
	}

	.afx-arch .aff-filters-close {
		display: block;
	}

	body.aff-filters-locked {
		overflow: hidden;
	}

	.afx .aff-hub-links {
		grid-template-columns: 1fr;
	}

	.afx-phead {
		padding: 28px 24px;
	}

	.afx-phead h1 {
		font-size: 30px;
	}
}

/* =============================================================================
 * Compare tray (upgraded) + in-page compare modal.
 * These render on <body>, outside the .afx scope — literal palette values.
 * ========================================================================== */

.aff-compare-tray {
	position: fixed;
	left: 50%;
	bottom: 24px;
	transform: translateX(-50%);
	z-index: 1000;
	display: flex;
	align-items: center;
	gap: 16px;
	min-width: 360px;
	max-width: calc(100vw - 32px);
	padding: 12px 12px 12px 20px;
	border-radius: 16px;
	background: #0f172a;
	border: 1px solid rgb(148 163 184 / 22%);
	box-shadow: 0 16px 40px -12px rgb(2 6 23 / 55%);
	animation: aff-tray-in 0.26s cubic-bezier(0.2, 0.8, 0.2, 1);
}

.aff-compare-tray__count {
	font-family: "Space Grotesk", "Inter", sans-serif;
	font-size: 14px;
	font-weight: 600;
	color: #fff;
	white-space: nowrap;
}

.aff-compare-tray__count s {
	color: #64748b;
	text-decoration: none;
	font-weight: 400;
}

.aff-compare-tray.is-note .aff-compare-tray__count {
	color: #fcd34d;
	white-space: normal;
}

.aff-compare-tray__avs {
	display: flex;
	margin-right: auto;
}

.aff-compare-tray__av {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	margin-left: -8px;
	border-radius: 8px;
	border: 2px solid #0f172a;
	overflow: hidden;
	font-family: "Space Grotesk", "Inter", sans-serif;
	font-size: 11px;
	font-weight: 700;
	color: #fff;
	background: linear-gradient(135deg, hsl(var(--h, 205) 65% 52%), hsl(var(--h, 205) 70% 38%));
}

.aff-compare-tray__av:first-child {
	margin-left: 0;
}

.aff-compare-tray__av img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	background: #fff;
}

.aff-compare-tray__clear {
	flex: none;
	padding: 6px;
	background: none;
	border: 0;
	font-size: 12.5px;
	font-weight: 600;
	color: #94a3b8;
	cursor: pointer;
}

.aff-compare-tray__clear:hover {
	color: #f8fafc;
}

.aff-compare-tray__go {
	flex: none;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 10px 18px;
	border: none;
	border-radius: 11px;
	background: #0ea5e9;
	color: #04222b;
	font-family: inherit;
	font-size: 13px;
	font-weight: 700;
	cursor: pointer;
	transition: background 0.15s ease;
}

.aff-compare-tray__go svg {
	width: 14px;
	height: 14px;
}

.aff-compare-tray__go:hover:not(:disabled) {
	background: #22d3ee;
}

.aff-compare-tray__go:disabled {
	opacity: 0.4;
	cursor: not-allowed;
}

@keyframes aff-tray-in {
	from {
		opacity: 0;
		transform: translateX(-50%) translateY(120%);
	}

	to {
		opacity: 1;
		transform: translateX(-50%) translateY(0);
	}
}

/* --- Modal ---------------------------------------------------------------- */
.aff-cmodal {
	position: fixed;
	inset: 0;
	z-index: 1100;
	display: none;
	align-items: flex-start;
	justify-content: center;
	padding: 40px 20px;
	overflow: auto;
	background: rgb(15 23 42 / 55%);
	backdrop-filter: blur(3px);
}

.aff-cmodal.is-open {
	display: flex;
}

body.aff-cmodal-locked {
	overflow: hidden;
}

.aff-cmodal__box {
	width: 100%;
	max-width: 920px;
	background: #fff;
	border-radius: 20px;
	overflow: hidden;
	box-shadow: 0 30px 80px -20px rgb(0 0 0 / 40%);
	animation: aff-cmodal-in 0.24s ease;
}

@keyframes aff-cmodal-in {
	from {
		opacity: 0;
		transform: translateY(12px);
	}

	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.aff-cmodal__h {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 20px 26px;
	border-bottom: 1px solid #e4e9ef;
}

.aff-cmodal__h h3 {
	margin: 0;
	font-family: "Space Grotesk", "Inter", sans-serif;
	font-size: 19px;
	font-weight: 600;
	color: #0f172a;
}

.aff-cmodal__x {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	background: #fff;
	border: 1px solid #d5dce4;
	border-radius: 9px;
	color: #64748b;
	cursor: pointer;
}

.aff-cmodal__x svg {
	width: 16px;
	height: 16px;
}

.aff-cmodal__x:hover {
	border-color: #0ea5e9;
	color: #0c7bb3;
}

.aff-cmodal__scroll {
	overflow-x: auto;
}

.aff-ctable {
	width: 100%;
	border-collapse: collapse;
}

.aff-ctable th,
.aff-ctable td {
	padding: 14px 16px;
	text-align: left;
	vertical-align: middle;
	border-bottom: 1px solid #e4e9ef;
}

.aff-ctable__rl {
	width: 150px;
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: 10.5px;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: #94a3b8;
	background: #f6f9fb;
}

.aff-ct-net {
	display: flex;
	align-items: center;
	gap: 10px;
}

.aff-ct-net__logo {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	flex: none;
	border-radius: 9px;
	overflow: hidden;
	font-family: "Space Grotesk", "Inter", sans-serif;
	font-size: 12px;
	font-weight: 700;
	color: #fff;
	background: linear-gradient(135deg, hsl(var(--h, 205) 65% 52%), hsl(var(--h, 205) 70% 38%));
}

.aff-ct-net__logo img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	background: #fff;
}

.aff-ct-net__name {
	font-family: "Space Grotesk", "Inter", sans-serif;
	font-weight: 600;
	font-size: 14px;
	color: #0f172a;
}

.aff-ct-net__rm {
	padding: 2px 0 0;
	background: none;
	border: 0;
	font-size: 11px;
	color: #94a3b8;
	cursor: pointer;
}

.aff-ct-net__rm:hover {
	color: #dc2626;
}

.aff-ct-val {
	font-size: 13.5px;
	font-weight: 500;
	color: #0f172a;
}

.aff-ct-val--score {
	font-family: "Space Grotesk", "Inter", sans-serif;
	font-size: 16px;
	font-weight: 700;
}

.aff-ct-val.is-best {
	color: #15803d;
}

.aff-ct-tag {
	display: inline-block;
	margin-left: 6px;
	padding: 2px 6px;
	border-radius: 5px;
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: 9px;
	font-weight: 700;
	letter-spacing: 0.05em;
	color: #15803d;
	background: #e9f7ef;
	vertical-align: middle;
}

.aff-cmodal__f {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 10px;
	padding: 16px 26px;
	border-top: 1px solid #e4e9ef;
}

.aff-cmodal__full {
	margin-right: auto;
}

@media (max-width: 600px) {
	.aff-compare-tray {
		min-width: 0;
		width: calc(100% - 24px);
		left: 12px;
		right: 12px;
		transform: none;
		animation: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	.aff-compare-tray,
	.aff-cmodal__box {
		animation: none;
	}
}

/* =============================================================================
 * v6.0 — Best-page "intelligence terminal" rebuild.
 * The best_page template (templates/single-best-page.php) now shares the .afx
 * scope, so tokens, .afx-sec/.afx-sech scaffolding, .afx-faq and the v5.9
 * hub-links clouds are inherited. This section styles what is new to best
 * pages: the header card (list tag + honest byline), TL;DR verdict cards,
 * the .afx-glance ranking table with movement badges, the collapsible
 * methodology block, the compare chips, and the card "Best for …" line.
 * ========================================================================== */

/* --- Header card ----------------------------------------------------------- */
.afx-bp__head {
	position: relative;
	margin-top: 14px;
	padding: 36px 38px;
	border: 1px solid var(--afx-line);
	border-radius: 20px;
	overflow: hidden;
	background:
		radial-gradient(520px 220px at 90% -50%, rgb(14 165 233 / 10%), transparent 70%),
		var(--afx-panel);
}

.afx-bp__tag {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin-bottom: 14px;
	padding: 5px 11px;
	border-radius: 6px;
	font-family: var(--afx-mono);
	font-size: 10.5px;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--afx-accent-d);
	background: var(--afx-accent-dim);
}

.afx-bp__tag svg {
	width: 12px;
	height: 12px;
}

.afx-bp__head h1 {
	margin: 0 0 10px;
	font-family: var(--afx-disp);
	font-size: 36px;
	font-weight: 700;
	letter-spacing: -0.025em;
	line-height: 1.15;
	color: var(--afx-ink);
}

.afx-bp__intro p {
	max-width: 640px;
	margin: 14px 0 0;
	font-size: 15px;
	line-height: 1.65;
	color: var(--afx-ink-2);
}

.afx-bp__byline {
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
	margin-top: 20px;
	padding-top: 18px;
	border-top: 1px solid var(--afx-line);
}

.afx-bp__by {
	font-size: 12.5px;
	color: var(--afx-ink-3);
}

.afx-bp__by b {
	font-weight: 600;
	color: var(--afx-ink);
}

.afx-bp__sep {
	margin: 0 7px;
	color: var(--afx-ink-4);
}

.afx-bp__reviewed {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 3px 9px;
	border-radius: 20px;
	font-size: 11px;
	font-weight: 600;
	color: var(--afx-green-d);
	background: var(--afx-green-dim);
}

.afx-bp__reviewed svg {
	width: 11px;
	height: 11px;
}

/* Cyan tick before best-page section headings (mockup accent). */
.afx-bp .afx-sech::before {
	content: "";
	flex: none;
	width: 4px;
	height: 16px;
	border-radius: 3px;
	background: var(--afx-accent);
}

/* --- TL;DR verdict cards --------------------------------------------------- */
.afx-tldr {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 14px;
}

.afx-tldr--1 {
	grid-template-columns: minmax(0, 420px);
}

.afx-tldr--2 {
	grid-template-columns: repeat(2, 1fr);
}

.afx-vc2 {
	position: relative;
	padding: 20px 22px;
	border: 1px solid var(--afx-line);
	border-radius: 16px;
	background: var(--afx-panel);
}

.afx-vc2--hero {
	border-color: #f0d38a;
	box-shadow: 0 0 0 1px #f6e2ad inset;
}

.afx-vc2__k {
	display: flex;
	align-items: center;
	gap: 6px;
	margin-bottom: 14px;
	font-family: var(--afx-mono);
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--afx-ink-4);
}

.afx-vc2--hero .afx-vc2__k {
	color: #b8860b;
}

.afx-vc2__k svg {
	width: 11px;
	height: 11px;
}

.afx-vc2__net {
	display: flex;
	align-items: center;
	gap: 11px;
}

.afx-vc2__logo {
	display: flex;
	align-items: center;
	justify-content: center;
	flex: none;
	width: 40px;
	height: 40px;
	border-radius: 11px;
	overflow: hidden;
	border: 1px solid var(--afx-line);
	background: var(--afx-panel-2);
}

.afx-vc2__logo img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.afx-vc2__logo .aff-monogram {
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 0;
	font-size: 15px;
}

.afx-vc2__name {
	display: block;
	font-family: var(--afx-disp);
	font-size: 16px;
	font-weight: 600;
	color: var(--afx-ink);
}

.afx-vc2__name:hover {
	color: var(--afx-accent-d);
}

.afx-vc2__score {
	font-family: var(--afx-mono);
	font-size: 12px;
	font-weight: 700;
	color: var(--afx-accent-d);
}

.afx-vc2__why {
	margin: 12px 0 0;
	font-size: 12.5px;
	line-height: 1.55;
	color: var(--afx-ink-2);
}

/* --- Ranking at a glance ---------------------------------------------------- */
.afx-glance {
	border: 1px solid var(--afx-line);
	border-radius: 16px;
	overflow: hidden;
	background: var(--afx-panel);
}

.afx-glance table {
	width: 100%;
	margin: 0;
	border-collapse: collapse;
}

.afx-glance th {
	padding: 14px 18px;
	border-bottom: 1px solid var(--afx-line);
	background: var(--afx-panel-2);
	font-family: var(--afx-mono);
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	text-align: left;
	color: var(--afx-ink-4);
}

.afx-glance td {
	padding: 13px 18px;
	border-bottom: 1px solid var(--afx-line);
	font-size: 13.5px;
	vertical-align: middle;
	color: var(--afx-ink-2);
}

.afx-glance tr:last-child td {
	border-bottom: none;
}

.afx-glance tbody tr:hover {
	background: var(--afx-panel-2);
}

.afx-glance__rk {
	width: 84px;
	white-space: nowrap;
	font-family: var(--afx-mono);
	font-size: 13px;
	font-weight: 700;
	color: var(--afx-ink-4);
}

.afx-glance__rk--top {
	color: #b8860b;
}

.afx-glance__name {
	font-weight: 600;
	color: var(--afx-ink);
}

.afx-glance__name:hover {
	color: var(--afx-accent-d);
}

.afx-glance__score {
	width: 80px;
	font-family: var(--afx-mono);
	font-weight: 700;
	color: var(--afx-accent-d);
}

.afx-glance__for {
	width: 38%;
	font-size: 13px;
	color: var(--afx-ink-3);
}

/* Movement badges — rendered only when a >= 7-day-old snapshot exists. */
.afx-mv {
	display: inline-block;
	margin-left: 6px;
	padding: 1px 5px;
	border-radius: 5px;
	font-family: var(--afx-mono);
	font-size: 9.5px;
	font-weight: 700;
	vertical-align: middle;
}

.afx-mv--up {
	color: var(--afx-green-d);
	background: var(--afx-green-dim);
}

.afx-mv--down {
	color: var(--afx-red);
	background: var(--afx-red-dim);
}

.afx-mv--new {
	color: var(--afx-accent-d);
	background: var(--afx-accent-dim);
}

.afx-mv--flat {
	color: var(--afx-ink-4);
	background: var(--afx-panel-2);
}

/* --- Card "Best for …" accent line (v5.7 ring-row card) --------------------- */
.aff-card-item__bestfor {
	display: flex;
	align-items: baseline;
	gap: 5px;
	margin: 8px 0 0;
	font-size: 12.5px;
	font-weight: 500;
	color: #0c7bb3;
}

.aff-card-item__bestfor svg {
	flex: none;
	width: 12px;
	height: 12px;
	align-self: center;
}

/* --- Methodology (collapsible) ---------------------------------------------- */
.afx-method {
	border: 1px solid var(--afx-line);
	border-radius: 16px;
	overflow: hidden;
	background: var(--afx-panel);
}

.afx-method > summary {
	list-style: none;
	cursor: pointer;
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 22px 26px;
}

.afx-method > summary::-webkit-details-marker {
	display: none;
}

.afx-method__head {
	flex: 1;
	min-width: 0;
}

.afx-method__t {
	display: block;
	font-family: var(--afx-disp);
	font-size: 16px;
	font-weight: 600;
	color: var(--afx-ink);
}

.afx-method__s {
	display: block;
	margin-top: 3px;
	font-size: 13px;
	color: var(--afx-ink-3);
}

.afx-method__chev {
	flex: none;
	width: 18px;
	height: 18px;
	color: var(--afx-accent);
	transition: transform 0.2s;
}

.afx-method[open] .afx-method__chev {
	transform: rotate(180deg);
}

.afx-method__body {
	padding: 20px 26px 24px;
	border-top: 1px solid var(--afx-line);
}

.afx-method__body p {
	margin: 0 0 16px;
	font-size: 13.5px;
	line-height: 1.7;
	color: var(--afx-ink-2);
}

.afx-method__signals {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 7px;
}

.afx-method__sk {
	margin-right: 4px;
	font-family: var(--afx-mono);
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--afx-ink-4);
}

.afx-method__sig {
	padding: 4px 11px;
	border: 1px solid var(--afx-line);
	border-radius: 20px;
	font-size: 12px;
	color: var(--afx-ink-2);
	background: var(--afx-panel-2);
}

.afx-method__note {
	display: flex;
	flex-wrap: wrap;
	gap: 24px;
	margin-top: 20px;
	padding-top: 18px;
	border-top: 1px solid var(--afx-line);
}

.afx-mn__n {
	font-family: var(--afx-disp);
	font-size: 18px;
	font-weight: 700;
	color: var(--afx-ink);
}

.afx-mn__k {
	margin-top: 3px;
	font-family: var(--afx-mono);
	font-size: 10px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--afx-ink-4);
}

/* --- Compare chips ----------------------------------------------------------- */
.afx-bp__cmp-row {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}

.afx-cmp-chip {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 11px 16px;
	border: 1px solid var(--afx-line-2);
	border-radius: 11px;
	font-size: 13.5px;
	font-weight: 600;
	color: var(--afx-ink);
	background: var(--afx-panel-2);
	transition: border-color 0.15s, color 0.15s;
}

.afx-cmp-chip:hover {
	border-color: var(--afx-accent);
	color: var(--afx-accent-d);
}

.afx-cmp-chip__vs {
	font-family: var(--afx-mono);
	font-size: 11px;
	font-weight: 700;
	color: var(--afx-ink-4);
}

.afx-cmp-chip svg {
	width: 14px;
	height: 14px;
	color: var(--afx-ink-4);
}

/* --- Responsive -------------------------------------------------------------- */
@media (max-width: 820px) {
	.afx-bp__head {
		padding: 26px 22px;
	}

	.afx-bp__head h1 {
		font-size: 28px;
	}

	.afx-tldr,
	.afx-tldr--2 {
		grid-template-columns: 1fr;
	}

	.afx-glance__for {
		display: none;
	}
}

/* =============================================================================
 * v6.1 — Taxonomy hub "intelligence terminal" rebuild.
 * Styles the new hub blocks in templates/taxonomy-hub.php: the mono taxonomy
 * tag chip in the page header, the child-term chip row, the top-pick callout
 * (highest-scored listing, real data only), and the hub browse clouds
 * (aff-hub-links--browse variant with a current-term highlight). Everything
 * else on the hub reuses the v5.9 archive shell (.afx-phead / .afx-filters /
 * .afx-toolbar / ring-row cards) unchanged. Scoped under .afx for the v5.8
 * token system.
 * ========================================================================== */

/* --- Header taxonomy tag chip ---------------------------------------------- */
.afx-hub__tag {
	display: inline-flex;
	align-items: center;
	margin: 0 0 14px;
	padding: 4px 10px;
	font-family: var(--afx-mono);
	font-size: 10.5px;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--afx-accent-d);
	background: var(--afx-accent-dim);
	border: 1px solid rgb(14 165 233 / 22%);
	border-radius: 7px;
}

/* --- Child-term chip row ---------------------------------------------------- */
.afx-hub__chips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 18px 0 0;
}

.afx-chip {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 7px 14px;
	font-size: 13px;
	font-weight: 600;
	color: var(--afx-ink-2);
	background: var(--afx-panel);
	border: 1px solid var(--afx-line-2);
	border-radius: 999px;
	text-decoration: none;
	transition: border-color 0.15s, color 0.15s;
}

.afx-chip:hover {
	border-color: var(--afx-accent);
	color: var(--afx-accent-d);
}

.afx-chip.is-active {
	color: #fff;
	background: var(--afx-navy);
	border-color: var(--afx-navy);
}

.afx-chip__count {
	font-family: var(--afx-mono);
	font-size: 10.5px;
	font-weight: 600;
	color: var(--afx-ink-4);
}

.afx-chip.is-active .afx-chip__count {
	color: rgb(255 255 255 / 60%);
}

/* --- Top pick callout ------------------------------------------------------- */
.afx-toppick {
	position: relative;
	display: flex;
	align-items: center;
	gap: 18px;
	margin: 18px 0 0;
	padding: 20px 24px;
	background:
		radial-gradient(420px 200px at 0% -60%, rgb(14 165 233 / 9%), transparent 70%),
		var(--afx-panel);
	border: 1px solid var(--afx-line);
	border-radius: 18px;
	overflow: hidden;
}

.afx-toppick::before {
	content: "";
	position: absolute;
	inset: 0 auto 0 0;
	width: 4px;
	background: linear-gradient(180deg, var(--afx-accent), var(--afx-accent-2));
}

.afx-toppick__logo {
	flex: none;
	line-height: 0;
}

.afx-toppick__logo img,
.afx-toppick__logo .aff-monogram {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 54px;
	height: 54px;
	border-radius: 14px;
	object-fit: contain;
	background: #fff;
	border: 1px solid var(--afx-line);
}

.afx-toppick__logo .aff-monogram {
	font-size: 22px;
}

.afx-toppick__body {
	flex: 1;
	min-width: 0;
}

.afx-toppick__tag {
	display: block;
	font-family: var(--afx-mono);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--afx-accent-d);
}

.afx-toppick__name {
	margin: 5px 0 0;
	font-family: var(--afx-disp);
	font-size: 19px;
	font-weight: 700;
	letter-spacing: -0.01em;
	line-height: 1.2;
}

.afx-toppick__name a {
	color: var(--afx-ink);
	text-decoration: none;
}

.afx-toppick__name a:hover {
	color: var(--afx-accent-d);
}

.afx-toppick__why {
	margin: 5px 0 0;
	font-size: 13.5px;
	line-height: 1.5;
	color: var(--afx-ink-2);
}

.afx-toppick__ring {
	position: relative;
	flex: none;
	width: 56px;
	height: 56px;
}

.afx-toppick__ring svg {
	display: block;
	width: 56px;
	height: 56px;
}

.afx-toppick__num {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	line-height: 1;
}

.afx-toppick__num strong {
	font-family: var(--afx-disp);
	font-size: 15px;
	font-weight: 700;
	color: var(--afx-ink);
}

.afx-toppick__num small {
	font-size: 8px;
	color: var(--afx-ink-4);
}

.afx-toppick__cta {
	flex: none;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	white-space: nowrap;
}

.afx-toppick__cta svg {
	width: 14px;
	height: 14px;
	flex: none;
}

/* --- Hub browse clouds (current-term highlight, 4-group wrap) --------------- */
.afx .aff-hub-links--browse {
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}

.afx .aff-hub-links__list a.is-current {
	color: var(--afx-accent-d);
	background: var(--afx-accent-dim);
	border-color: var(--afx-accent);
}

.afx .aff-hub-links__list a.is-current .aff-hub-links__count {
	color: var(--afx-accent-d);
}

/* --- Hub responsive ---------------------------------------------------------- */
@media (max-width: 640px) {
	.afx-toppick {
		flex-wrap: wrap;
	}

	.afx-toppick__body {
		flex: 1 1 calc(100% - 72px);
	}

	.afx-toppick__cta {
		width: 100%;
		justify-content: center;
	}
}


/* =============================================================================
 * v6.2 — Compare page "VS terminal" (/compare/{a}-vs-{b}/). Scoped under
 * .afx-vs so it inherits the v5.8 .afx tokens. Side A speaks cyan, side B a
 * neutral slate — same ink+cyan system, no second brand color.
 * ========================================================================== */

.afx-vs {
	--avs-b: #475569;
	--avs-b-d: #334155;
	--avs-b-dim: #eef2f6;
}

.avs-wrap {
	max-width: 1020px;
}

.afx-vs .avs-crumb {
	margin: 4px 0 0;
}

.avs-title {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 18px;
	font-family: var(--afx-disp);
	font-size: 18px;
	font-weight: 600;
	letter-spacing: -0.01em;
	color: var(--afx-ink);
}

.avs-title::before {
	content: "";
	width: 4px;
	height: 18px;
	border-radius: 3px;
	background: var(--afx-accent);
}

.avs-sec {
	padding: 20px 0 0;
}

.avs-card {
	background: var(--afx-panel);
	border: 1px solid var(--afx-line);
	border-radius: 16px;
	padding: 26px 30px;
	margin-top: 20px;
}

.avs-ic {
	width: 15px;
	height: 15px;
	flex: none;
	margin-top: 3px;
}

/* --- VS hero ---------------------------------------------------------------- */
.avs-hero {
	position: relative;
	margin-top: 14px;
	padding: 34px 40px;
	border: 1px solid var(--afx-line);
	border-radius: 20px;
	overflow: hidden;
	background:
		radial-gradient(500px 240px at 50% -60%, rgb(14 165 233 / 10%), transparent 70%),
		var(--afx-panel);
}

.avs-hero__tag {
	display: inline-block;
	margin-bottom: 20px;
}

.avs-hero__grid {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	gap: 24px;
}

.avs-side {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 12px;
	text-align: center;
}

.avs-side__logo {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 64px;
	height: 64px;
	border-radius: 16px;
	overflow: hidden;
	background: var(--afx-panel-2);
	border: 1px solid var(--afx-line);
}

.avs-side__logo img,
.avs-side__logo .avs-side__img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.avs-side__logo .aff-monogram {
	width: 100%;
	height: 100%;
	border-radius: 0;
	font-size: 24px;
}

.avs-side__name {
	font-family: var(--afx-disp);
	font-weight: 700;
	font-size: 24px;
	letter-spacing: -0.02em;
	color: var(--afx-ink);
}

.avs-side__name:hover {
	color: var(--afx-accent-d);
}

.avs-hero__mid {
	display: flex;
	align-items: center;
	justify-content: center;
}

.avs-orb {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 46px;
	height: 46px;
	border-radius: 50%;
	background: var(--afx-navy);
	color: #fff;
	font-family: var(--afx-disp);
	font-weight: 700;
	font-size: 14px;
}

.avs-ring {
	position: relative;
	width: 70px;
	height: 70px;
}

.avs-ring__track {
	color: var(--afx-line);
}

.avs-ring--a .avs-ring__fill {
	color: var(--afx-accent);
}

.avs-ring--b .avs-ring__fill {
	color: var(--avs-b);
}

.avs-ring__num {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
}

.avs-ring__num b {
	font-family: var(--afx-disp);
	font-size: 19px;
	font-weight: 700;
	line-height: 1;
	color: var(--afx-ink);
}

.avs-ring__num s {
	font-size: 8px;
	color: var(--afx-ink-4);
	text-decoration: none;
}

.avs-badge {
	font-family: var(--afx-mono);
	font-size: 9.5px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	padding: 3px 9px;
	border-radius: 6px;
	color: var(--afx-ink-3);
	background: var(--afx-panel-3);
}

.avs-badge--win {
	color: var(--afx-green-d);
	background: var(--afx-green-dim);
}

.avs-badge--alt {
	color: var(--avs-b-d);
	background: var(--avs-b-dim);
}

/* --- Bottom line ------------------------------------------------------------- */
.avs-bottomline {
	border-left: 4px solid var(--afx-accent);
	background:
		linear-gradient(90deg, rgb(14 165 233 / 5%), transparent 55%),
		var(--afx-panel);
}

.avs-bl__lead {
	margin: 0;
	font-family: var(--afx-disp);
	font-size: 18px;
	font-weight: 600;
	line-height: 1.5;
	letter-spacing: -0.01em;
	color: var(--afx-ink);
}

.avs-bl__lead b {
	color: var(--afx-accent-d);
}

.avs-bl__picks {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 14px;
	margin-top: 20px;
}

.avs-pick {
	border: 1px solid var(--afx-line);
	border-radius: 12px;
	padding: 14px 16px;
}

.avs-pick--a {
	border-color: #bfe8f7;
}

.avs-pick--b {
	border-color: var(--afx-line-2);
}

.avs-pick__h {
	margin-bottom: 7px;
	font-family: var(--afx-mono);
	font-size: 10px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--afx-ink-4);
}

.avs-pick__n {
	font-family: var(--afx-disp);
	font-weight: 600;
	font-size: 15px;
	color: var(--afx-ink);
}

.avs-pick__w {
	margin-top: 4px;
	font-size: 12.5px;
	color: var(--afx-ink-2);
}

.avs-bl__by {
	margin-top: 16px;
	padding-top: 14px;
	border-top: 1px solid var(--afx-line);
	font-size: 12px;
	color: var(--afx-ink-4);
}

.avs-bl__by b {
	color: var(--afx-ink-2);
	font-weight: 600;
}

/* --- Key differences ---------------------------------------------------------- */
.avs-kd {
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.avs-kd__row {
	display: flex;
	align-items: flex-start;
	gap: 14px;
}

.avs-kd__ic {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	border-radius: 9px;
	background: var(--afx-accent-dim);
	color: var(--afx-accent-d);
	flex: none;
}

.avs-kd__ic svg {
	width: 15px;
	height: 15px;
}

.avs-kd__t {
	font-size: 14px;
	line-height: 1.55;
	color: var(--afx-ink-2);
}

.avs-kd__t b {
	color: var(--afx-ink);
	font-weight: 600;
}

/* --- Where each wins ----------------------------------------------------------- */
.avs-we {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
}

.avs-we__card {
	background: var(--afx-panel);
	border: 1px solid var(--afx-line);
	border-radius: 16px;
	padding: 22px 24px;
}

.avs-we__card--a {
	border-top: 3px solid var(--afx-accent);
}

.avs-we__card--b {
	border-top: 3px solid var(--avs-b);
}

.avs-we__h {
	display: flex;
	align-items: center;
	gap: 11px;
	margin-bottom: 16px;
}

.avs-we__logo {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border-radius: 10px;
	overflow: hidden;
	background: var(--afx-panel-2);
	border: 1px solid var(--afx-line);
	flex: none;
}

.avs-we__logo img,
.avs-we__logo .avs-we__img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.avs-we__logo .aff-monogram {
	width: 100%;
	height: 100%;
	border-radius: 0;
	font-size: 15px;
}

.avs-we__name {
	font-family: var(--afx-disp);
	font-weight: 600;
	font-size: 16px;
	color: var(--afx-ink);
}

.avs-we__sub {
	margin-top: 1px;
	font-family: var(--afx-mono);
	font-size: 10px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--afx-ink-4);
}

.avs-we__item {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	padding: 6px 0;
	font-size: 13.5px;
	color: var(--afx-ink);
}

.avs-we__card--a .avs-we__item .avs-ic {
	color: var(--afx-accent);
}

.avs-we__card--b .avs-we__item .avs-ic {
	color: var(--avs-b);
}

.avs-we__none {
	margin: 0;
	font-size: 13px;
	color: var(--afx-ink-3);
}

/* --- Pros & cons ----------------------------------------------------------------- */
.avs-pc {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
}

.avs-pc__card {
	background: var(--afx-panel);
	border: 1px solid var(--afx-line);
	border-radius: 16px;
	padding: 22px 24px;
}

.avs-pc__name {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 16px;
	font-family: var(--afx-disp);
	font-weight: 600;
	font-size: 16px;
	color: var(--afx-ink);
}

.avs-pc__logo {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	border-radius: 8px;
	overflow: hidden;
	background: var(--afx-panel-2);
	border: 1px solid var(--afx-line);
	flex: none;
}

.avs-pc__logo img,
.avs-pc__logo .avs-pc__img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.avs-pc__logo .aff-monogram {
	width: 100%;
	height: 100%;
	border-radius: 0;
	font-size: 12px;
}

.avs-pc__bh {
	margin-bottom: 9px;
	font-family: var(--afx-mono);
	font-size: 10px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.avs-pc__block--pros .avs-pc__bh {
	color: var(--afx-green-d);
}

.avs-pc__block--cons .avs-pc__bh {
	margin-top: 14px;
	color: var(--afx-red-d);
}

.avs-pc__item {
	display: flex;
	align-items: flex-start;
	gap: 9px;
	padding: 4px 0;
	font-size: 13.5px;
	color: var(--afx-ink);
}

.avs-pc__item--pro .avs-ic {
	color: var(--afx-green);
}

.avs-pc__item--con .avs-ic {
	color: var(--afx-red);
}

/* --- Tables ------------------------------------------------------------------------ */
.avs-scroll {
	overflow-x: auto;
}

.avs-table {
	width: 100%;
	border-collapse: collapse;
}

.avs-table th {
	padding: 12px 14px;
	text-align: left;
	font-family: var(--afx-disp);
	font-size: 14px;
	font-weight: 600;
	border-bottom: 1px solid var(--afx-line);
}

.avs-table th a {
	color: inherit;
}

.avs-table th.avs-table__lbl {
	font-family: var(--afx-mono);
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--afx-ink-4);
}

.avs-table th.avs-table__a,
.avs-table th.avs-table__a a {
	color: var(--afx-accent-d);
}

.avs-table th.avs-table__b,
.avs-table th.avs-table__b a {
	color: var(--avs-b-d);
}

.avs-table td {
	padding: 12px 14px;
	font-size: 13.5px;
	border-bottom: 1px solid var(--afx-line);
	vertical-align: middle;
}

.avs-table tr:last-child td {
	border-bottom: none;
}

.avs-table tbody tr:hover {
	background: var(--afx-panel-2);
}

.avs-table__k {
	width: 170px;
	font-family: var(--afx-mono);
	font-size: 11px;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--afx-ink-4);
}

.avs-table__val {
	font-weight: 600;
	color: var(--afx-ink);
}

.avs-table__val--best {
	color: var(--afx-accent-d);
}

.avs-table__dash {
	color: var(--afx-ink-4);
	font-weight: 400;
}

.avs-dot {
	display: inline-block;
	width: 6px;
	height: 6px;
	margin-right: 6px;
	border-radius: 50%;
	background: var(--afx-accent);
	vertical-align: middle;
}

.avs-dot--b {
	background: var(--avs-b);
}

.avs-win {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	font-size: 12.5px;
	font-weight: 600;
	color: var(--afx-green-d);
}

.avs-win .avs-ic {
	width: 13px;
	height: 13px;
	margin-top: 0;
}

.avs-tie {
	font-size: 12.5px;
	color: var(--afx-ink-3);
}

.avs-foot {
	margin: 16px 0 0;
	font-size: 12.5px;
	line-height: 1.6;
	color: var(--afx-ink-3);
}

/* --- Trust panels ---------------------------------------------------------------------- */
.avs-trust {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
}

.avs-tpanel {
	background: var(--afx-panel);
	border: 1px solid var(--afx-line);
	border-radius: 16px;
	padding: 22px 24px;
}

.avs-tpanel__name {
	margin-bottom: 16px;
	font-family: var(--afx-mono);
	font-size: 11px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--afx-ink-3);
}

.avs-tpanel__conf {
	display: flex;
	align-items: center;
	gap: 16px;
}

.avs-cring {
	position: relative;
	width: 64px;
	height: 64px;
	flex: none;
}

.avs-cring__track {
	color: var(--afx-panel-3);
}

.avs-cring__fill {
	color: var(--afx-accent);
}

.avs-tpanel--b .avs-cring__fill {
	color: var(--avs-b);
}

.avs-cring__t {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
}

.avs-cring__t b {
	font-family: var(--afx-disp);
	font-size: 15px;
	font-weight: 700;
	color: var(--afx-accent-d);
}

.avs-tpanel--b .avs-cring__t b {
	color: var(--avs-b-d);
}

.avs-cring__t s {
	font-family: var(--afx-mono);
	font-size: 7px;
	text-transform: uppercase;
	color: var(--afx-ink-4);
	text-decoration: none;
}

.avs-drows {
	flex: 1;
	margin: 0;
}

.avs-drow {
	display: flex;
	justify-content: space-between;
	padding: 5px 0;
	font-size: 12.5px;
}

.avs-drow dt {
	color: var(--afx-ink-3);
}

.avs-drow dd {
	margin: 0;
	font-family: var(--afx-mono);
	font-size: 12px;
	font-weight: 600;
	color: var(--afx-ink);
}

.avs-paybar {
	margin-top: 16px;
	padding-top: 16px;
	border-top: 1px solid var(--afx-line);
}

.avs-paybar__h {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 12px;
}

.avs-paybar__k {
	font-family: var(--afx-mono);
	font-size: 10.5px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--afx-ink-3);
}

.avs-chip {
	font-family: var(--afx-mono);
	font-size: 9.5px;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	padding: 3px 8px;
	border-radius: 6px;
	color: var(--afx-ink-4);
	background: var(--afx-panel-2);
}

.avs-chip--good {
	color: var(--afx-green-d);
	background: var(--afx-green-dim);
}

.avs-pline {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 8px;
	margin-bottom: 8px;
}

.avs-pline__l {
	font-size: 12px;
	color: var(--afx-ink-3);
}

.avs-pline__v {
	font-family: var(--afx-mono);
	font-size: 12px;
	font-weight: 700;
	color: var(--afx-ink-3);
}

.avs-pline__v--a {
	color: var(--afx-accent-d);
}

.avs-pline__v--b {
	color: var(--avs-b-d);
}

.avs-pt {
	grid-column: 1 / 3;
	height: 6px;
	margin-top: 5px;
	border-radius: 20px;
	overflow: hidden;
	background: var(--afx-panel-3);
}

.avs-pf {
	display: block;
	height: 100%;
	border-radius: 20px;
	background: var(--afx-line-2);
}

.avs-pf--a {
	background: var(--afx-accent);
}

.avs-pf--b {
	background: var(--avs-b);
}

/* --- FAQ (reuses .aff-faq details styling from v5.8) ------------------------------------- */
.afx-vs .aff-faq:last-of-type {
	border-bottom: none;
}

/* --- Get started ---------------------------------------------------------------------------- */
.avs-gs {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
}

.avs-gs__card {
	background: var(--afx-panel-2);
	border: 1px solid var(--afx-line);
	border-radius: 16px;
	padding: 22px 24px;
	text-align: center;
}

.avs-gs__name {
	margin-bottom: 16px;
	font-family: var(--afx-disp);
	font-weight: 600;
	font-size: 16px;
	color: var(--afx-ink);
}

.avs-gs__btns {
	display: flex;
	justify-content: center;
	gap: 10px;
	flex-wrap: wrap;
}

.avs-btn {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 11px 20px;
	border-radius: 10px;
	font-size: 13px;
	font-weight: 600;
}

.avs-btn--ghost {
	background: var(--afx-panel);
	border: 1px solid var(--afx-line-2);
	color: var(--afx-ink);
}

.avs-btn--ghost:hover {
	border-color: var(--afx-accent);
	color: var(--afx-accent-d);
}

.avs-btn--primary {
	background: var(--afx-navy);
	color: #fff;
}

.avs-btn--primary:hover {
	background: var(--afx-navy-2);
	color: #fff;
}

/* --- Other comparisons ------------------------------------------------------------------------ */
.avs-oc {
	display: flex;
	gap: 12px;
	flex-wrap: wrap;
}

.avs-oc__chip {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 11px 16px;
	border: 1px solid var(--afx-line-2);
	border-radius: 11px;
	background: var(--afx-panel-2);
	font-size: 13.5px;
	font-weight: 600;
	color: var(--afx-ink);
}

.avs-oc__chip:hover {
	border-color: var(--afx-accent);
	color: var(--afx-accent-d);
}

.avs-oc__vs {
	font-family: var(--afx-mono);
	font-size: 11px;
	font-weight: 700;
	color: var(--afx-ink-4);
}

.avs-oc__chip svg {
	width: 14px;
	height: 14px;
	color: var(--afx-ink-4);
	flex: none;
}

.avs-oc__chip--all {
	background: var(--afx-navy);
	border-color: var(--afx-navy);
	color: #fff;
}

.avs-oc__chip--all:hover {
	background: var(--afx-navy-2);
	color: #fff;
}

.avs-oc__chip--all svg {
	color: #fff;
}

/* --- Responsive --------------------------------------------------------------------------------- */
@media (max-width: 820px) {
	.avs-hero__grid {
		grid-template-columns: 1fr;
	}

	.avs-bl__picks,
	.avs-we,
	.avs-pc,
	.avs-trust,
	.avs-gs {
		grid-template-columns: 1fr;
	}

	.avs-hero {
		padding: 26px 22px;
	}

	.avs-card {
		padding: 20px 18px;
	}
}


/* =============================================================================
 * v7.0 — Homepage "verified terminal" rebuild (mockup: affranker-homepage-
 * redesign.html, recoloured to the ink+cyan system). Loads last, wins the
 * cascade over the v3.x–v4.x homepage layers it supersedes. Structure keeps
 * the shortcode markup — this section is the single source of homepage truth.
 * ========================================================================== */

/* --- Retired decorations from earlier layers -------------------------------- */

.aff-hero-home::before,
.aff-hero-home::after,
.aff-hero-home__eyebrow::after,
.aff-hero-home__title::after,
.aff-hero-home__inner--split .aff-hero-home__title::after,
.aff-cta-band__btn::after,
.aff-cta-band__inner::before,
.aff-cta-band__inner::after,
.aff-widget::before,
.aff-widget--cta::before,
.aff-trust-band__col::before,
.aff-trust-band__col + .aff-trust-band__col::after,
.aff-trust-band__icon::after,
.aff-home-section__titles .aff-eyebrow::before,
.aff-stats-band__list > li + li::before,
.aff-widget__feed > li::before,
.aff-widget__event--listed::before,
.aff-widget__links a::after,
.aff-widget__score::after {
	content: none;
	animation: none;
}

.aff-home-directory__main .aff-home-section:nth-of-type(2) {
	background: none;
	border: none;
	border-radius: 0;
	padding: 0;
}

.aff-home-directory__main .aff-home-section:nth-of-type(2) .aff-card-item {
	border-color: #e4e9ef;
}

/* --- Section scaffolding: mono kicker, display title, count chip ------------ */

.aff-home-section__head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 8px;
	flex-wrap: wrap;
	margin-bottom: 6px;
}

.aff-home-section__titles .aff-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: #0369a1;
	background: none;
	border: none;
	padding: 0;
	margin: 0 0 2px;
}

.aff-home-section__titles .aff-eyebrow svg {
	width: 13px;
	height: 13px;
}

.aff-home-section__titles h2 {
	font-family: "Space Grotesk", system-ui, sans-serif;
	font-weight: 700;
	font-size: 24px;
	letter-spacing: -0.02em;
	line-height: 1.2;
	margin: 6px 0 0;
	display: flex;
	align-items: center;
	gap: 10px;
	color: #0f172a;
}

.aff-home-section__count {
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0;
	color: #94a3b8;
	background: none;
	border: none;
	padding: 0;
}

.aff-home-section__subtitle {
	font-size: 13.5px;
	color: #64748b;
	margin: 4px 0 0;
	max-width: 60ch;
}

.aff-home-section__more {
	font-size: 13px;
	font-weight: 600;
	color: #0369a1;
	display: inline-flex;
	align-items: center;
	gap: 5px;
	background: none;
	border: none;
	padding: 0 0 4px;
}

.aff-home-section__more:hover {
	color: #0ea5e9;
}

/* --- HERO: dark, search-first ------------------------------------------------ */

.aff-hero-home {
	background:
		radial-gradient(900px 500px at 78% 8%, rgb(14 165 233 / 22%), transparent 60%),
		linear-gradient(180deg, #0b1220, #0f172a);
}

.aff-hero-home__inner--split {
	display: grid;
	grid-template-columns: 1.05fr 0.95fr;
	gap: 40px;
	align-items: center;
	max-width: 1200px;
	margin: 0 auto;
	padding: 56px 28px 72px;
}

.aff-hero-home__eyebrow {
	display: inline-block;
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: 10.5px;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: #38bdf8;
	border: 1px solid rgb(56 189 248 / 30%);
	background: rgb(14 165 233 / 8%);
	padding: 6px 13px;
	border-radius: 20px;
	margin: 0 0 22px;
}

.aff-hero-home__inner--split .aff-hero-home__title {
	font-family: "Space Grotesk", system-ui, sans-serif;
	font-weight: 700;
	font-size: clamp(34px, 4vw, 48px);
	line-height: 1.06;
	letter-spacing: -0.03em;
	color: #fff;
	margin: 0 0 18px;
	max-width: 10em;
}

.aff-title-grad {
	background:
		linear-gradient(#0ea5e9, #0ea5e9) left bottom / 100% 3px no-repeat;
	background-clip: padding-box;
	-webkit-background-clip: padding-box;
	-webkit-text-fill-color: #38bdf8;
	color: #38bdf8;
	padding-bottom: 5px;
	animation: none;
}

.aff-hero-home__inner--split .aff-hero-home__subtitle {
	font-size: 15.5px;
	color: #a9b7c9;
	line-height: 1.65;
	max-width: 460px;
	margin: 0 0 26px;
}

.aff-hero-home__inner--split .aff-hero-home__search {
	display: flex;
	gap: 0;
	background: #fff;
	border: none;
	border-radius: 13px;
	padding: 6px;
	box-shadow: 0 20px 50px -20px rgb(0 0 0 / 60%);
	max-width: 480px;
}

.aff-hero-home__search input[type="search"] {
	flex: 1;
	border: none;
	outline: none;
	box-shadow: none;
	font-family: Inter, system-ui, sans-serif;
	font-size: 14.5px;
	padding: 11px 14px;
	color: #0f172a;
	background: transparent;
	min-width: 0;
}

.aff-hero-home__search .aff-btn--primary {
	background: #0f172a;
	color: #fff;
	border: none;
	border-radius: 9px;
	font-weight: 600;
	font-size: 14px;
	padding: 11px 24px;
}

.aff-hero-home__search .aff-btn--primary:hover {
	background: #1e293b;
}

.aff-hero-home__quick {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
	margin-top: 18px;
}

.aff-hero-home__quick > span {
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: #64748b;
}

.aff-hero-home__quick a {
	font-size: 12.5px;
	color: #cbd5e1;
	border: 1px solid rgb(148 163 184 / 25%);
	background: none;
	padding: 5px 12px;
	border-radius: 20px;
	text-decoration: none;
}

.aff-hero-home__quick a:hover {
	border-color: #38bdf8;
	color: #fff;
}

.aff-hero-home__points {
	display: flex;
	gap: 20px;
	flex-wrap: wrap;
	list-style: none;
	margin: 26px 0 0;
	padding: 0;
}

.aff-hero-home__points li {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	font-size: 12.5px;
	color: #94a3b8;
	margin: 0;
}

.aff-hero-home__points li svg {
	width: 14px;
	height: 14px;
	color: #38bdf8;
	flex: none;
}

/* --- STATS STRIP: white card overlapping the hero seam ----------------------- */

.aff-stats-band {
	max-width: 1120px;
	margin: -34px auto 0;
	position: relative;
	z-index: 5;
	background: #fff;
	border: 1px solid #e4e9ef;
	border-radius: 18px;
	box-shadow: 0 20px 50px -30px rgb(15 23 42 / 35%);
	padding: 6px;
}

.aff-stats-band__list {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 0;
	list-style: none;
	margin: 0;
	padding: 0;
	background: none;
	border: none;
	box-shadow: none;
}

.aff-stats-band__list > li {
	border-right: 1px solid #e4e9ef;
	margin: 0;
}

.aff-stats-band__list > li:last-child {
	border-right: none;
}

.aff-stat {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0;
	padding: 22px 24px;
	text-align: center;
	text-decoration: none;
	background: none;
	border: none;
	box-shadow: none;
}

.aff-stat__icon {
	width: 34px;
	height: 34px;
	border-radius: 9px;
	background: #e0f2fe;
	color: #0369a1;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 auto 10px;
}

.aff-stat__icon svg {
	width: 17px;
	height: 17px;
}

.aff-stat__num {
	font-family: "Space Grotesk", system-ui, sans-serif;
	font-weight: 700;
	font-size: 28px;
	line-height: 1;
	color: #0f172a;
	text-shadow: none;
}

.aff-stat__label {
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: 9.5px;
	font-weight: 500;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #94a3b8;
	margin-top: 7px;
}

a.aff-stat:hover .aff-stat__num {
	color: #0369a1;
}

/* --- FIND MY NETWORK: dark banner -------------------------------------------- */

.aff-matcher-cta {
	max-width: 1120px;
	margin: 20px auto 0;
	padding: 0;
	background: none;
}

.aff-matcher-cta__inner {
	background: linear-gradient(100deg, #0f172a, #1e293b);
	border: none;
	border-radius: 16px;
	padding: 24px 30px;
	display: flex;
	align-items: center;
	gap: 20px;
	color: #fff;
	max-width: none;
	box-shadow: none;
}

.aff-matcher-cta__eyebrow {
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: #38bdf8;
	margin: 0 0 6px;
}

.aff-matcher-cta__title {
	font-family: "Space Grotesk", system-ui, sans-serif;
	font-weight: 600;
	font-size: 18px;
	letter-spacing: -0.01em;
	color: #fff;
	margin: 0;
}

.aff-matcher-cta__sub {
	font-size: 13px;
	color: #94a3b8;
	margin: 5px 0 0;
	max-width: 520px;
	line-height: 1.55;
}

.aff-matcher-cta__btn,
.aff-matcher-cta__btn.aff-btn--primary {
	margin-left: auto;
	background: #fff;
	color: #0f172a;
	font-weight: 600;
	font-size: 13.5px;
	padding: 12px 20px;
	border-radius: 10px;
	white-space: nowrap;
	flex: none;
	border: none;
	box-shadow: none;
}

.aff-matcher-cta__btn:hover,
.aff-matcher-cta__btn.aff-btn--primary:hover {
	background: #e0f2fe;
	color: #0f172a;
}

.aff-matcher-cta__btn svg {
	width: 14px;
	height: 14px;
}

/* --- MAIN GRID: directory + sticky sidebar ----------------------------------- */

.aff-home-directory {
	max-width: 1120px;
	margin: 38px auto 0;
	display: grid;
	grid-template-columns: minmax(0, 1fr) 300px;
	gap: 28px;
	align-items: start;
}

.aff-home-directory__main .aff-home-section {
	margin-bottom: 44px;
}

.aff-home-directory__side {
	display: flex;
	flex-direction: column;
	gap: 18px;
	position: sticky;
	top: 78px;
}

/* Sort control → compact segmented pill under the first section head */

.aff-home-sort {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 14px;
}

.aff-home-sort__label {
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: #94a3b8;
}

.aff-home-directory .aff-segmented {
	display: flex;
	gap: 2px;
	background: #fff;
	border: 1px solid #e4e9ef;
	border-radius: 9px;
	padding: 3px;
	box-shadow: none;
}

.aff-home-directory .aff-segmented__item {
	font-size: 12px;
	font-weight: 600;
	color: #64748b;
	padding: 6px 12px;
	border-radius: 6px;
	border: none;
	background: none;
	cursor: pointer;
	line-height: 1.2;
}

.aff-home-directory .aff-segmented__item.is-active {
	background: #0f172a;
	color: #fff;
	box-shadow: none;
}

/* --- SIDEBAR WIDGETS ---------------------------------------------------------- */

.aff-widget {
	background: #fff;
	border: 1px solid #e4e9ef;
	border-radius: 14px;
	padding: 16px 18px;
	box-shadow: none;
}

.aff-widget > h3 {
	display: flex;
	align-items: center;
	gap: 8px;
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: #64748b;
	margin: 0 0 12px;
	padding: 0;
	border: none;
}

.aff-widget__icon {
	display: none;
}

.aff-widget__all {
	margin-left: auto;
	font-family: Inter, system-ui, sans-serif;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0;
	text-transform: none;
	color: #0369a1;
}

.aff-widget__list,
.aff-widget__feed,
.aff-widget__links {
	list-style: none;
	margin: 0;
	padding: 0;
}

.aff-widget__list > li,
.aff-widget__feed > li {
	border-bottom: 1px solid #eef2f6;
	margin: 0;
	padding: 0;
}

.aff-widget__list > li:last-child,
.aff-widget__feed > li:last-child {
	border-bottom: none;
}

.aff-widget__row,
.aff-widget__event-link {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 9px 0;
	text-decoration: none;
}

.aff-widget__feed > li,
.aff-widget__event {
	padding-left: 0;
}

img.aff-widget__logo,
.aff-widget__logo {
	width: 28px;
	height: 28px;
	border-radius: 8px;
	object-fit: contain;
	background: #fff;
	border: 1px solid #eef1f6;
	padding: 2px;
	flex: none;
	font-size: 10px;
	display: flex;
	align-items: center;
	justify-content: center;
}

.aff-widget__body,
.aff-widget__event-body {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 1px;
}

.aff-widget__name {
	font-size: 12.5px;
	font-weight: 600;
	color: #0f172a;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.aff-widget__meta {
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: 9.5px;
	color: #94a3b8;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.aff-widget__event-link time {
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: 9.5px;
	color: #94a3b8;
	flex: none;
}

.aff-widget__score {
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: 11px;
	font-weight: 700;
	color: #0369a1;
	background: #e0f2fe;
	padding: 2px 7px;
	border-radius: 6px;
	flex: none;
}

.aff-widget__row:hover .aff-widget__name,
.aff-widget__event-link:hover .aff-widget__name {
	color: #0369a1;
}

/* Curated rankings: block link tags */

.aff-widget__links > li {
	margin: 0 0 8px;
}

.aff-widget__links > li:last-child {
	margin-bottom: 0;
}

.aff-widget__links a {
	display: block;
	font-size: 12px;
	font-weight: 500;
	color: #475569;
	background: #f6f9fb;
	border: 1px solid #e4e9ef;
	padding: 7px 10px;
	border-radius: 7px;
	text-decoration: none;
	line-height: 1.35;
}

.aff-widget__links a:hover {
	border-color: #0ea5e9;
	color: #0369a1;
}

/* Vertical cloud */

.aff-widget__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.aff-widget__tags li {
	margin: 0;
}

.aff-widget__tags a {
	display: inline-flex;
	align-items: center;
	gap: 3px;
	font-size: 11px;
	color: #475569;
	background: #f6f9fb;
	border: 1px solid #e4e9ef;
	padding: 4px 9px;
	border-radius: 7px;
	text-decoration: none;
}

.aff-widget__tags a span {
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: 9px;
	color: #94a3b8;
	background: none;
	padding: 0;
}

.aff-widget__tags a:hover {
	border-color: #0ea5e9;
	color: #0369a1;
}

/* CTA widget: ink card */

.aff-widget--cta {
	background: linear-gradient(120deg, #0f172a, #1e293b);
	border: none;
	padding: 18px;
}

.aff-widget--cta h3 {
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: 9.5px;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: #38bdf8;
	margin: 0 0 8px;
}

.aff-widget--cta p {
	font-size: 12.5px;
	color: #cbd5e1;
	margin: 0 0 14px;
	line-height: 1.55;
}

.aff-widget--cta .aff-widget__btn {
	display: block;
	text-align: center;
	background: #fff;
	color: #0f172a;
	font-weight: 600;
	font-size: 12.5px;
	padding: 10px;
	border-radius: 9px;
	border: none;
	box-shadow: none;
}

.aff-widget--cta .aff-widget__btn:hover {
	background: #e0f2fe;
	color: #0f172a;
}

/* --- EDITOR'S PICKS BY USE CASE ------------------------------------------------ */

.aff-use-cases {
	max-width: 1120px;
	margin: 8px auto 0;
}

.aff-use-cases__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 16px;
	list-style: none;
	margin: 20px 0 0;
	padding: 0;
}

.aff-use-cases__grid li {
	margin: 0;
}

.aff-use-cases__grid a {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	height: 100%;
	background: #fff;
	border: 1px solid #e4e9ef;
	border-radius: 15px;
	padding: 22px;
	text-decoration: none;
	transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.aff-use-cases__grid a:hover {
	border-color: #0ea5e9;
	box-shadow: 0 10px 30px -18px rgb(14 165 233 / 50%);
	transform: translateY(-3px);
}

.aff-use-cases__intent {
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: 9.5px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #94a3b8;
	order: -2;
	margin-bottom: 12px;
}

.aff-use-cases__icon {
	order: -1;
	width: 38px;
	height: 38px;
	border-radius: 10px;
	background: #e0f2fe;
	color: #0369a1;
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 14px;
}

.aff-use-cases__icon svg {
	width: 19px;
	height: 19px;
}

.aff-use-cases__title {
	font-family: "Space Grotesk", system-ui, sans-serif;
	font-weight: 600;
	font-size: 16px;
	letter-spacing: -0.01em;
	color: #0f172a;
	line-height: 1.3;
}

.aff-use-cases__cta {
	font-size: 12.5px;
	font-weight: 600;
	color: #0369a1;
	margin-top: 12px;
}

/* --- POPULAR HEAD-TO-HEADS ------------------------------------------------------ */

.aff-vs-strip-section {
	max-width: 1120px;
	margin: 44px auto 0;
}

.aff-vs-strip {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 16px;
	list-style: none;
	margin: 20px 0 0;
	padding: 0;
}

.aff-vs-strip li {
	margin: 0;
}

.aff-vscard {
	display: flex;
	align-items: center;
	gap: 14px;
	background: #fff;
	border: 1px solid #e4e9ef;
	border-radius: 15px;
	padding: 16px 20px;
	text-decoration: none;
	transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.aff-vscard:hover {
	border-color: #0ea5e9;
	box-shadow: 0 10px 30px -18px rgb(14 165 233 / 50%);
	transform: translateY(-2px);
}

.aff-vscard__side {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 5px;
	text-align: center;
	width: 84px;
	flex: none;
}

.aff-vscard__logo {
	width: 38px;
	height: 38px;
	border-radius: 11px;
	overflow: hidden;
	background: #fff;
	border: 1px solid #eef1f6;
	display: flex;
	align-items: center;
	justify-content: center;
}

.aff-vscard__logo img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	padding: 3px;
}

.aff-vscard__name {
	font-size: 11.5px;
	font-weight: 600;
	line-height: 1.2;
	color: #0f172a;
}

.aff-vscard__score {
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: 10px;
	font-weight: 700;
	color: #0369a1;
}

.aff-vscard__orb {
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: #0f172a;
	color: #fff;
	font-family: "Space Grotesk", system-ui, sans-serif;
	font-weight: 700;
	font-size: 9px;
	display: flex;
	align-items: center;
	justify-content: center;
	flex: none;
}

.aff-vscard__go {
	margin-left: auto;
	width: 18px;
	height: 18px;
	color: #94a3b8;
	flex: none;
}

.aff-vscard:hover .aff-vscard__go {
	color: #0369a1;
}

/* --- HOW WE VERIFY: 4-step pipeline --------------------------------------------- */

.aff-verify-section {
	max-width: 1120px;
	margin: 44px auto 0;
}

.aff-verify {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	background: #fff;
	border: 1px solid #e4e9ef;
	border-radius: 18px;
	padding: 32px 8px;
	margin: 20px 0 0;
	list-style: none;
}

.aff-verify__step {
	padding: 0 22px;
	position: relative;
	margin: 0;
}

.aff-verify__step:not(:last-child)::after {
	content: "";
	position: absolute;
	top: 15px;
	left: 56px;
	right: 2px;
	height: 2px;
	background: linear-gradient(90deg, #0ea5e9, #e4e9ef);
}

.aff-verify__num {
	position: relative;
	z-index: 1;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: #0ea5e9;
	color: #fff;
	font-family: "Space Grotesk", system-ui, sans-serif;
	font-weight: 700;
	font-size: 13px;
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 16px;
	box-shadow: 0 0 0 4px #fff;
}

.aff-verify__step h3 {
	font-family: "Space Grotesk", system-ui, sans-serif;
	font-weight: 600;
	font-size: 14.5px;
	margin: 0 0 6px;
	color: #0f172a;
}

.aff-verify__step p {
	font-size: 12.5px;
	color: #475569;
	line-height: 1.55;
	margin: 0;
}

/* --- VALUE STRIP ------------------------------------------------------------------ */

.aff-trust-band {
	max-width: 1120px;
	margin: 44px auto 0;
	padding: 0;
	background: none;
}

.aff-trust-band__cols {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
	background: #fff;
	border: 1px solid #e4e9ef;
	border-radius: 18px;
	padding: 34px 38px;
	max-width: none;
}

.aff-trust-band__col {
	padding: 0;
	background: none;
	border: none;
	text-align: left;
}

.aff-trust-band__icon {
	width: 40px;
	height: 40px;
	border-radius: 11px;
	background: #e0f2fe;
	color: #0369a1;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 0 14px;
	border: none;
	box-shadow: none;
}

.aff-trust-band__icon svg {
	width: 20px;
	height: 20px;
}

.aff-trust-band__col h3 {
	font-family: "Space Grotesk", system-ui, sans-serif;
	font-weight: 600;
	font-size: 16px;
	margin: 0 0 8px;
	color: #0f172a;
}

.aff-trust-band__col p {
	font-size: 13px;
	color: #475569;
	line-height: 1.6;
	margin: 0;
}

.aff-trust-band__col p a {
	color: #0369a1;
	font-weight: 600;
	text-decoration: none;
}

.aff-trust-band__col p a:hover {
	text-decoration: underline;
}

/* --- BIG CTA ------------------------------------------------------------------------ */

.aff-cta-band {
	max-width: 1120px;
	margin: 44px auto 0;
	padding: 0;
	background: none;
}

.aff-cta-band__inner {
	background:
		radial-gradient(600px 300px at 80% 0%, rgb(14 165 233 / 20%), transparent 60%),
		linear-gradient(120deg, #0f172a, #1e293b);
	border-radius: 20px;
	padding: 44px 48px;
	display: flex;
	align-items: center;
	gap: 24px;
	color: #fff;
	max-width: none;
	border: none;
	box-shadow: none;
	overflow: hidden;
}

.aff-cta-band__text h2 {
	font-family: "Space Grotesk", system-ui, sans-serif;
	font-weight: 700;
	font-size: 28px;
	letter-spacing: -0.02em;
	color: #fff;
	margin: 0 0 8px;
}

.aff-cta-band__text p {
	font-size: 14px;
	color: #a9b7c9;
	margin: 0;
	max-width: 460px;
}

.aff-cta-band__btn,
.aff-cta-band .aff-btn {
	margin-left: auto;
	background: #fff;
	color: #0f172a;
	font-weight: 600;
	font-size: 14px;
	padding: 14px 24px;
	border-radius: 11px;
	white-space: nowrap;
	flex: none;
	border: none;
	box-shadow: none;
	overflow: visible;
}

.aff-cta-band__btn:hover,
.aff-cta-band .aff-btn:hover {
	background: #e0f2fe;
	color: #0f172a;
}

/* --- CALCULATOR: sliders + dark result panel ----------------------------------------- */

.aff-calc-section {
	max-width: 1120px;
	margin: 44px auto 0;
}

.aff-calc {
	background: #fff;
	border: 1px solid #e4e9ef;
	border-radius: 20px;
	padding: 34px 38px;
	margin: 20px 0 0;
	max-width: none;
	box-shadow: none;
}

.aff-calc__title::before {
	content: none;
}

.aff-calc__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 28px;
}

.aff-calc__field label {
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #94a3b8;
	display: block;
	margin-bottom: 12px;
}

.aff-calc__val {
	display: block;
	font-family: "Space Grotesk", system-ui, sans-serif;
	font-weight: 700;
	font-size: 24px;
	color: #0f172a;
	margin-bottom: 10px;
}

.aff-calc input[type="range"] {
	width: 100%;
	appearance: none;
	-webkit-appearance: none;
	height: 6px;
	border-radius: 20px;
	background: #e7edf4;
	outline: none;
	border: none;
	padding: 0;
	margin: 0;
}

.aff-calc input[type="range"]::-webkit-slider-thumb {
	-webkit-appearance: none;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: #0ea5e9;
	cursor: pointer;
	box-shadow: 0 2px 8px rgb(14 165 233 / 50%);
	border: 3px solid #fff;
}

.aff-calc input[type="range"]::-moz-range-thumb {
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: #0ea5e9;
	cursor: pointer;
	border: 3px solid #fff;
	box-shadow: 0 2px 8px rgb(14 165 233 / 50%);
}

.aff-calc__result {
	margin: 28px 0 0;
	background:
		radial-gradient(500px 200px at 50% 0%, rgb(14 165 233 / 14%), transparent 60%),
		#0f172a;
	border-radius: 14px;
	padding: 24px 30px;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
	color: #fff;
	white-space: normal;
	line-height: 1.2;
}

.aff-calc__result-label,
.aff-calc__result-per {
	font-size: 13.5px;
	color: #94a3b8;
}

.aff-calc__result strong {
	font-family: "Space Grotesk", system-ui, sans-serif;
	font-weight: 700;
	font-size: 38px;
	color: #38bdf8;
	letter-spacing: -0.02em;
}

.aff-calc__note {
	font-size: 11.5px;
	color: #94a3b8;
	text-align: center;
	margin: 14px 0 0;
}

/* --- BROWSE THE DIRECTORY: 4-column clouds ------------------------------------------- */

.aff-browse-section {
	max-width: 1120px;
	margin: 52px auto 0;
}

.aff-browse-panel {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 28px;
	background: #fff;
	border: 1px solid #e4e9ef;
	border-radius: 18px;
	padding: 32px 36px;
	margin-top: 20px;
}

.aff-browse-col h3 {
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: #94a3b8;
	margin: 0 0 14px;
}

.aff-browse-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 7px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.aff-browse-tags li {
	margin: 0;
}

.aff-browse-tags a {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	font-size: 12px;
	color: #475569;
	background: #f6f9fb;
	border: 1px solid #e4e9ef;
	padding: 5px 10px;
	border-radius: 8px;
	text-decoration: none;
}

.aff-browse-tags a span {
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: 10px;
	color: #94a3b8;
}

.aff-browse-tags a:hover {
	border-color: #0ea5e9;
	color: #0369a1;
}

/* --- Responsive ------------------------------------------------------------------------ */

@media (max-width: 1023px) {
	.aff-hero-home__inner--split {
		grid-template-columns: 1fr;
		padding: 44px 24px 64px;
	}
}

@media (max-width: 900px) {
	.aff-home-directory {
		grid-template-columns: minmax(0, 1fr);
	}

	.aff-home-directory__main,
	.aff-home-directory__side {
		min-width: 0;
	}

	.aff-home-directory__side {
		position: static;
	}

	.aff-use-cases__grid,
	.aff-vs-strip {
		grid-template-columns: 1fr 1fr;
	}
}

@media (max-width: 820px) {
	.aff-stats-band {
		margin-top: -26px;
	}

	.aff-stats-band__list {
		grid-template-columns: 1fr 1fr;
	}

	.aff-stats-band__list > li:nth-child(even) {
		border-right: none;
	}

	.aff-stats-band__list > li:nth-child(-n+2) {
		border-bottom: 1px solid #e4e9ef;
	}

	.aff-matcher-cta__inner,
	.aff-cta-band__inner {
		flex-wrap: wrap;
	}

	.aff-matcher-cta__btn,
	.aff-cta-band__btn,
	.aff-cta-band .aff-btn {
		margin-left: 0;
	}

	.aff-use-cases__grid,
	.aff-vs-strip,
	.aff-trust-band__cols,
	.aff-verify,
	.aff-calc__grid,
	.aff-browse-panel {
		grid-template-columns: 1fr;
	}

	.aff-trust-band__cols,
	.aff-verify {
		gap: 24px;
	}

	.aff-verify__step:not(:last-child)::after {
		content: none;
	}

	.aff-calc,
	.aff-browse-panel,
	.aff-trust-band__cols {
		padding: 24px 22px;
	}

	.aff-cta-band__inner {
		padding: 32px 26px;
	}

	.aff-calc__result strong {
		font-size: 30px;
	}
}

/* --- Post-review fixes: beat the v4.0 sidebar-feed rules, keep monogram hues -- */

.aff-widget__feed > li + li {
	border-top: none;
}

.aff-widget__event .aff-widget__event-link {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 9px 0;
	white-space: normal;
	overflow: visible;
	font-weight: 400;
	font-size: inherit;
}

.aff-widget__event .aff-widget__event-link:hover {
	color: inherit;
}

.aff-widget__event .aff-widget__event-body {
	display: flex;
	flex-direction: column;
	gap: 1px;
}

.aff-widget__event .aff-widget__name {
	display: block;
	font-size: 12.5px;
	font-weight: 600;
	color: #0f172a;
	line-height: 1.35;
}

.aff-widget__event .aff-widget__meta {
	display: block;
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: 9.5px;
	color: #94a3b8;
}

.aff-widget__event .aff-widget__event-link time {
	position: static;
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: 9.5px;
	font-weight: 500;
	letter-spacing: 0;
	color: #94a3b8;
	align-self: center;
}

/* Monograms keep their brand hue inside the restyled widgets/VS cards */

.aff-widget__logo.aff-monogram,
.aff-widget__row .aff-monogram {
	width: 28px;
	height: 28px;
	border-radius: 8px;
	border: none;
	padding: 0;
	font-size: 11px;
	color: #fff;
	background: linear-gradient(135deg, hsl(var(--aff-mono-h, 220) 65% 52%), hsl(var(--aff-mono-h, 220) 70% 38%));
}

.aff-vscard__logo .aff-monogram {
	width: 100%;
	height: 100%;
	border-radius: 11px;
	font-size: 15px;
}


/* =============================================================================
 * v7.1 — Network Matcher step wizard (/matcher/)
 * One question card at a time: progress bar + dots, badge/title/sub, 2-col
 * option grid, Back/Next; then a results view with match-% cards, "Why it
 * fits you" chips, a per-factor score breakdown, compare modal (reuses the
 * v5.9 .aff-cmodal machinery) and an honest email capture. Ink + cyan.
 * ========================================================================== */

.aff-matcher {
	max-width: 800px;
	margin-left: auto;
	margin-right: auto;
}

/* ----- Progress ----- */

.aff-mw-progress {
	max-width: 560px;
	margin: 30px auto 0;
}

.aff-mw-progress__top {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 10px;
}

.aff-mw-progress__step {
	font-family: 'JetBrains Mono', ui-monospace, monospace;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.04em;
	color: #64748b;
}

.aff-mw-progress__step b {
	color: #0e7490;
}

.aff-mw-progress__pct {
	font-family: 'JetBrains Mono', ui-monospace, monospace;
	font-size: 11px;
	color: #94a3b8;
}

.aff-mw-progress__bar {
	height: 7px;
	background: #dde5ee;
	border-radius: 20px;
	overflow: hidden;
}

.aff-mw-progress__fill {
	display: block;
	height: 100%;
	background: linear-gradient(90deg, #22d3ee, #0ea5e9);
	border-radius: 20px;
	transition: width 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}

.aff-mw-dots {
	display: flex;
	justify-content: center;
	gap: 8px;
	margin-top: 14px;
}

.aff-mw-dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: #d5dce4;
	transition: background 0.25s, transform 0.25s;
}

.aff-mw-dot.is-on {
	background: #0ea5e9;
	transform: scale(1.25);
}

.aff-mw-dot.is-done {
	background: #16a34a;
}

/* ----- Question card ----- */

.aff-mw-card {
	background: #fff;
	border: 1px solid #e4e9ef;
	border-radius: 20px;
	padding: 34px 36px;
	margin-top: 30px;
	box-shadow: 0 20px 50px -34px rgba(15, 23, 42, 0.4);
}

.aff-mw-step {
	border: 0;
	padding: 0;
	margin: 0;
	min-width: 0;
}

.aff-mw-legend {
	display: block;
	padding: 0;
	max-width: 100%;
}

.aff-mw-legend:focus {
	outline: none;
}

.aff-mw-legend:focus-visible {
	outline: 2px solid #0ea5e9;
	outline-offset: 4px;
	border-radius: 6px;
}

.aff-mw-qbadge {
	display: inline-block;
	font-family: 'JetBrains Mono', ui-monospace, monospace;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: #0e7490;
	background: #e0f2fe;
	padding: 5px 10px;
	border-radius: 6px;
}

.aff-mw-qtitle {
	display: block;
	font-family: 'Space Grotesk', system-ui, sans-serif;
	font-weight: 700;
	font-size: 22px;
	letter-spacing: -0.01em;
	color: #0f172a;
	margin: 14px 0 4px;
}

.entry-content .aff-mw-qsub,
.aff-mw-qsub {
	font-size: 13.5px;
	color: #64748b;
	margin: 0 0 22px;
}

/* ----- Option grid ----- */

.aff-mw-opts {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 11px;
}

.aff-mw-opts--single {
	grid-template-columns: 1fr;
}

.aff-mopt {
	position: relative;
	display: flex;
	align-items: center;
	gap: 12px;
	border: 1.5px solid #e4e9ef;
	border-radius: 12px;
	padding: 14px 16px;
	margin: 0;
	cursor: pointer;
	background: #fff;
	transition: border-color 0.14s, background 0.14s;
	user-select: none;
}

.aff-mopt:hover {
	border-color: #22d3ee;
	background: #f6f9fb;
}

.aff-mopt:focus-within {
	outline: 2px solid #0ea5e9;
	outline-offset: 2px;
}

.aff-mopt:has(input:checked) {
	border-color: #0ea5e9;
	background: #e0f2fe;
}

/* Visually hidden but kept in the accessibility tree (standard sr-only clip
   pattern — opacity:0 would let Chromium prune the input for screen readers). */
.aff-mopt input {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: 0;
	padding: 0;
	border: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
}

.aff-mopt__box {
	width: 22px;
	height: 22px;
	border-radius: 7px;
	border: 1.5px solid #d5dce4;
	background: #fff;
	flex: none;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background 0.14s, border-color 0.14s;
}

.aff-mopt--radio .aff-mopt__box {
	border-radius: 50%;
}

.aff-mopt input:checked ~ .aff-mopt__box {
	background: #0ea5e9;
	border-color: #0ea5e9;
}

.aff-mopt__box svg {
	width: 13px;
	height: 13px;
	color: #fff;
	opacity: 0;
	transition: opacity 0.14s;
}

.aff-mopt input:checked ~ .aff-mopt__box svg {
	opacity: 1;
}

.aff-mopt__body {
	min-width: 0;
}

.aff-mopt__label {
	display: block;
	font-size: 14px;
	font-weight: 600;
	color: #0f172a;
}

.aff-mopt__hint {
	display: block;
	font-size: 12px;
	font-weight: 400;
	color: #64748b;
	margin-top: 2px;
}

/* ----- Wizard nav ----- */

.aff-mw-nav {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-top: 26px;
}

/* The shared .aff-btn base doesn't lay out icon+text; do it here. */
.aff-mw-nav .aff-btn,
.aff-mw-actions .aff-btn {
	display: inline-flex;
	align-items: center;
	gap: 9px;
}

.aff-mw-nav .aff-btn svg,
.aff-mw-actions .aff-btn svg {
	width: 16px;
	height: 16px;
	flex: none;
}

/* Components with their own display beat the hidden attribute — restore it. */
.aff-mw-nav .aff-btn[hidden],
.aff-mw-actions .aff-btn[hidden],
.aff-mw-capture[hidden],
.aff-mw-capture__form[hidden],
.aff-mw-capture__done[hidden],
.aff-mw-capture__msg[hidden] {
	display: none !important;
}

.aff-mw-count {
	margin-left: auto;
	font-family: 'JetBrains Mono', ui-monospace, monospace;
	font-size: 12.5px;
	color: #94a3b8;
}

.aff-mw-next.is-dim {
	opacity: 0.45;
	cursor: not-allowed;
}

/* ----- Results head ----- */

.aff-mw-res-head {
	text-align: center;
	padding: 34px 0 0;
}

.aff-mw-res-badge {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	font-family: 'JetBrains Mono', ui-monospace, monospace;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: #15803d;
	background: #dcfce7;
	padding: 6px 14px;
	border-radius: 20px;
	margin-bottom: 16px;
}

.aff-mw-res-badge svg {
	width: 12px;
	height: 12px;
}

.entry-content .aff-mw-res-title,
.aff-mw-res-title {
	font-family: 'Space Grotesk', system-ui, sans-serif;
	font-weight: 700;
	font-size: clamp(26px, 4vw, 34px);
	letter-spacing: -0.02em;
	color: #0f172a;
	margin: 0 0 10px;
}

.aff-mw-res-title:focus {
	outline: none;
}

.entry-content .aff-mw-res-sub,
.aff-mw-res-sub {
	font-size: 14.5px;
	color: #475569;
	max-width: 520px;
	margin: 0 auto;
}

.aff-mw-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	justify-content: center;
	margin: 20px auto 0;
	max-width: 620px;
}

.aff-mw-chip {
	font-size: 12px;
	color: #475569;
	background: #fff;
	border: 1px solid #e4e9ef;
	padding: 6px 12px;
	border-radius: 20px;
}

.aff-mw-chip b {
	color: #0e7490;
	font-weight: 700;
}

.aff-mw-conf {
	font-family: 'JetBrains Mono', ui-monospace, monospace;
	font-size: 11px;
	color: #94a3b8;
	margin: 14px 0 0;
}

.aff-mw-actions {
	display: flex;
	gap: 10px;
	justify-content: center;
	margin-top: 16px;
	flex-wrap: wrap;
}

/* ----- Loading / empty / fallback note ----- */

.aff-matcher__loading,
.aff-matcher__empty {
	text-align: center;
	color: #64748b;
	font-size: 14px;
	padding: 30px 0;
}

.aff-matcher__note {
	max-width: 640px;
	margin: 18px auto 0;
	text-align: center;
	font-size: 13px;
	color: #92400e;
	background: #fffbeb;
	border: 1px solid #fde68a;
	border-radius: 12px;
	padding: 10px 16px;
}

/* ----- Result cards ----- */

.aff-mres {
	position: relative;
	background: #fff;
	border: 1px solid #e4e9ef;
	border-radius: 16px;
	margin-top: 14px;
	overflow: hidden;
}

.aff-mres--top {
	border-color: #bae6fd;
	box-shadow: 0 0 0 1px #bae6fd inset;
}

.aff-mres__rank {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 2;
	font-family: 'JetBrains Mono', ui-monospace, monospace;
	font-size: 10px;
	font-weight: 700;
	padding: 5px 13px 5px 12px;
	border-radius: 0 0 12px 0;
	color: #fff;
	background: #0f172a;
}

.aff-mres__rank--best {
	background: linear-gradient(90deg, #e0a100, #f2c94c);
	color: #4a3800;
}

.aff-mres__in {
	display: flex;
	align-items: center;
	gap: 15px;
	padding: 24px 22px 0;
}

.aff-mres__logo {
	width: 46px;
	height: 46px;
	border-radius: 12px;
	border: 1px solid #eef2f7;
	background: #fff;
	flex: none;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	text-decoration: none;
}

.aff-mres__logo img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.aff-mres__logo .aff-monogram {
	width: 100%;
	height: 100%;
	border-radius: 11px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: 'Space Grotesk', system-ui, sans-serif;
	font-weight: 700;
	font-size: 16px;
	color: #fff;
	background: linear-gradient(135deg, hsl(var(--aff-mono-h, 220) 65% 52%), hsl(var(--aff-mono-h, 220) 70% 38%));
}

.aff-mres__body {
	flex: 1;
	min-width: 0;
}

.aff-mres__head {
	display: flex;
	align-items: center;
	gap: 9px;
	flex-wrap: wrap;
}

.aff-mres__name {
	font-family: 'Space Grotesk', system-ui, sans-serif;
	font-weight: 600;
	font-size: 16.5px;
	color: #0f172a;
	text-decoration: none;
}

.aff-mres__name:hover {
	color: #0e7490;
}

.aff-mres__match {
	font-family: 'JetBrains Mono', ui-monospace, monospace;
	font-size: 11px;
	font-weight: 700;
	color: #15803d;
	background: #dcfce7;
	padding: 3px 9px;
	border-radius: 20px;
	white-space: nowrap;
}

.aff-mres__stats {
	font-size: 12.5px;
	color: #475569;
	margin: 6px 0 0;
}

.aff-mres__ring {
	position: relative;
	width: 52px;
	height: 52px;
	flex: none;
}

.aff-mres__ring svg {
	display: block;
	width: 52px;
	height: 52px;
}

.aff-mres__ring-num {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
}

.aff-mres__ring-num strong {
	font-family: 'Space Grotesk', system-ui, sans-serif;
	font-size: 14px;
	font-weight: 700;
	color: #0f172a;
	line-height: 1;
}

.aff-mres__ring-num small {
	font-size: 7px;
	color: #94a3b8;
}

/* Why it fits you */

.aff-mres__why {
	padding: 14px 22px 0 83px;
}

.aff-mres__why-h {
	font-family: 'JetBrains Mono', ui-monospace, monospace;
	font-size: 9.5px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #94a3b8;
	margin: 0 0 8px;
}

.aff-mres__chips {
	display: flex;
	flex-wrap: wrap;
	gap: 7px;
}

.aff-mres__chips span {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	font-size: 11.5px;
	color: #475569;
	background: #f6f9fb;
	border: 1px solid #e4e9ef;
	padding: 4px 10px;
	border-radius: 20px;
}

.aff-mres__chips svg {
	width: 11px;
	height: 11px;
	color: #16a34a;
	flex: none;
}

/* Score breakdown (collapsible) */

.aff-mres__sc {
	max-height: 0;
	overflow: hidden;
	padding: 0 22px 0 83px;
	transition: max-height 0.32s ease, padding-top 0.32s ease;
}

.aff-mres.is-open .aff-mres__sc {
	max-height: 340px;
	padding-top: 16px;
}

.aff-mres__sc-lead {
	font-family: 'JetBrains Mono', ui-monospace, monospace;
	font-size: 9.5px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #94a3b8;
	margin: 0 0 12px;
}

.aff-mres__scrow {
	display: grid;
	grid-template-columns: 110px minmax(0, 1fr) 52px;
	align-items: center;
	gap: 12px;
	margin-bottom: 9px;
}

.aff-mres__sck {
	font-size: 12.5px;
	color: #475569;
}

.aff-mres__sct {
	display: block;
	height: 6px;
	background: #e7edf4;
	border-radius: 20px;
	overflow: hidden;
}

.aff-mres__scf {
	display: block;
	height: 100%;
	border-radius: 20px;
	background: linear-gradient(90deg, #22d3ee, #0ea5e9);
}

.aff-mres__scf--zero {
	background: #d5dce4;
}

.aff-mres__scv {
	font-family: 'JetBrains Mono', ui-monospace, monospace;
	font-size: 11px;
	font-weight: 600;
	text-align: right;
	color: #64748b;
}

.aff-mres__scv b {
	color: #0e7490;
}

/* Card footer */

.aff-mres__foot {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
	padding: 14px 22px;
	margin-top: 14px;
	border-top: 1px solid #e4e9ef;
}

.aff-mres__sc-toggle {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	background: none;
	border: none;
	padding: 0;
	font-family: 'Inter', system-ui, sans-serif;
	font-size: 12.5px;
	font-weight: 600;
	color: #0e7490;
	cursor: pointer;
}

.aff-mres__sc-toggle svg {
	width: 13px;
	height: 13px;
	transition: transform 0.2s;
}

.aff-mres.is-open .aff-mres__sc-toggle svg {
	transform: rotate(180deg);
}

.aff-mres__spacer {
	flex: 1;
}

.aff-mres__visit,
.aff-mres__profile {
	font-size: 12.5px;
	padding: 9px 14px;
}

.aff-mres__visit svg,
.aff-mres__profile svg {
	width: 12px;
	height: 12px;
}

/* ----- Email capture (honest states) ----- */

.aff-mw-capture {
	display: flex;
	align-items: center;
	gap: 18px;
	flex-wrap: wrap;
	background:
		radial-gradient(500px 200px at 85% 0%, rgba(14, 165, 233, 0.18), transparent 60%),
		linear-gradient(100deg, #0f172a, #1e293b);
	border-radius: 16px;
	padding: 22px 26px;
	margin-top: 22px;
	color: #fff;
}

.aff-mw-capture__ic {
	width: 46px;
	height: 46px;
	border-radius: 12px;
	background: rgba(34, 211, 238, 0.18);
	color: #22d3ee;
	display: flex;
	align-items: center;
	justify-content: center;
	flex: none;
}

.aff-mw-capture__ic svg {
	width: 22px;
	height: 22px;
}

.aff-mw-capture__text {
	min-width: 0;
}

.aff-mw-capture__t {
	display: block;
	font-family: 'Space Grotesk', system-ui, sans-serif;
	font-weight: 600;
	font-size: 16px;
	color: #fff;
}

.aff-mw-capture__d {
	display: block;
	font-size: 12.5px;
	color: #94a3b8;
	margin-top: 3px;
}

.aff-mw-capture__form {
	margin-left: auto;
	display: flex;
	gap: 6px;
	background: #fff;
	border-radius: 11px;
	padding: 5px;
}

.aff-mw-capture__form input[type='email'] {
	border: none;
	outline: none;
	padding: 10px 14px;
	font-size: 13.5px;
	width: 210px;
	color: #0f172a;
	background: #fff;
	border-radius: 8px;
}

.aff-mw-hp {
	position: absolute !important;
	left: -9999px !important;
	width: 1px;
	height: 1px;
	opacity: 0;
}

.aff-mw-capture__form button {
	background: #0ea5e9;
	color: #04222f;
	border: none;
	font-weight: 600;
	font-size: 13px;
	padding: 0 18px;
	border-radius: 8px;
	cursor: pointer;
	white-space: nowrap;
	transition: background 0.14s;
}

.aff-mw-capture__form button:hover {
	background: #22d3ee;
}

.aff-mw-capture__form button:disabled {
	opacity: 0.6;
	cursor: wait;
}

.aff-mw-capture__done {
	margin-left: auto;
	display: inline-flex;
	align-items: center;
	gap: 9px;
	font-size: 14px;
	font-weight: 600;
	color: #4ade80;
}

.aff-mw-capture__done svg {
	width: 18px;
	height: 18px;
	flex: none;
}

.aff-mw-capture__msg {
	flex-basis: 100%;
	margin: 0;
	font-size: 12.5px;
	color: #94a3b8;
}

.aff-mw-capture__msg.is-error {
	color: #fca5a5;
}

/* ----- Start over ----- */

.aff-mw-restart {
	text-align: center;
	margin: 26px 0 8px;
}

.aff-mw-restart button {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background: none;
	border: none;
	font-family: 'Inter', system-ui, sans-serif;
	font-size: 13.5px;
	font-weight: 600;
	color: #0e7490;
	cursor: pointer;
}

.aff-mw-restart svg {
	width: 14px;
	height: 14px;
}

/* ----- Motion + mobile ----- */

@media (prefers-reduced-motion: reduce) {
	.aff-mw-progress__fill,
	.aff-mw-dot,
	.aff-mres__sc,
	.aff-mres__sc-toggle svg,
	.aff-mopt,
	.aff-mopt__box,
	.aff-mopt__box svg {
		transition: none;
	}
}

@media (max-width: 680px) {
	.aff-mw-opts {
		grid-template-columns: 1fr;
	}

	.aff-mw-card {
		padding: 26px 20px;
	}

	.aff-mres__in {
		flex-wrap: wrap;
	}

	.aff-mres__why,
	.aff-mres__sc {
		padding-left: 22px;
	}

	.aff-mw-capture__form {
		margin-left: 0;
		width: 100%;
	}

	.aff-mw-capture__form input[type='email'] {
		flex: 1;
		width: auto;
		min-width: 0;
	}

	.aff-mw-capture__done {
		margin-left: 0;
	}
}


/* =============================================================================
 * v7.2 — /changes/ Data Changelog: header card with live stats, 8-day activity
 * graph, filter pills, listing search, day-grouped timeline with type nodes +
 * old→new diff chips, and the honest digest subscribe. Ink + cyan system,
 * JetBrains Mono micro-labels. Every value on the page is real data
 * (wp_aff_change_log + listing publish dates) — see Changes::feed().
 * ========================================================================== */

.aff-clg {
	max-width: 840px;
	margin: 0 auto;
	padding: 0 24px 8px;
	font-family: Inter, system-ui, sans-serif;
}

/* --- Breadcrumb --------------------------------------------------------- */

.aff-clg-crumb {
	padding: 4px 0 0;
	font-family: 'JetBrains Mono', ui-monospace, monospace;
	font-size: 11.5px;
	color: #94a3b8;
}

.aff-clg-crumb a {
	color: inherit;
	text-decoration: none;
}

.aff-clg-crumb a:hover {
	color: #0284c7;
}

.aff-clg-crumb b {
	color: #475569;
	font-weight: 500;
}

/* --- Header card --------------------------------------------------------- */

.aff-clg-head {
	position: relative;
	overflow: hidden;
	margin-top: 14px;
	padding: 34px 38px;
	border: 1px solid #e2e8f0;
	border-radius: 20px;
	background:
		radial-gradient(520px 220px at 90% -50%, rgb(14 165 233 / 10%), transparent 70%),
		#fff;
}

.aff-clg-tag {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	margin-bottom: 14px;
	padding: 5px 11px;
	border-radius: 6px;
	background: #e0f2fe;
	color: #0369a1;
	font-family: 'JetBrains Mono', ui-monospace, monospace;
	font-size: 10.5px;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.aff-clg-tag__dot {
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: #16a34a;
	animation: aff-clg-pulse 1.8s infinite;
}

@keyframes aff-clg-pulse {
	0% { box-shadow: 0 0 0 0 rgb(22 163 74 / 45%); }
	70% { box-shadow: 0 0 0 6px rgb(22 163 74 / 0%); }
	100% { box-shadow: 0 0 0 0 rgb(22 163 74 / 0%); }
}

@media (prefers-reduced-motion: reduce) {
	.aff-clg-tag__dot {
		animation: none;
	}
}

.entry-content .aff-clg-title,
.aff-clg-title {
	margin: 0 0 10px;
	font-family: 'Space Grotesk', system-ui, sans-serif;
	font-size: clamp(28px, 4.4vw, 36px);
	font-weight: 700;
	letter-spacing: -0.025em;
	line-height: 1.1;
	color: #0f172a;
}

.entry-content .aff-clg-intro,
.aff-clg-intro {
	max-width: 560px;
	margin: 0;
	font-size: 14.5px;
	line-height: 1.65;
	color: #475569;
}

.aff-clg-stats {
	display: flex;
	flex-wrap: wrap;
	gap: 36px;
	margin-top: 22px;
	padding-top: 20px;
	border-top: 1px solid #e2e8f0;
}

.aff-clg-stat__n {
	font-family: 'Space Grotesk', system-ui, sans-serif;
	font-size: 22px;
	font-weight: 700;
	color: #0369a1;
}

.aff-clg-stat__k {
	margin-top: 3px;
	font-family: 'JetBrains Mono', ui-monospace, monospace;
	font-size: 9.5px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: #94a3b8;
}

/* --- Activity graph ------------------------------------------------------ */

.aff-clg-activity {
	margin-top: 18px;
	padding: 20px 24px;
	border: 1px solid #e2e8f0;
	border-radius: 16px;
	background: #fff;
}

.aff-clg-activity__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 16px;
}

.aff-clg-activity__t {
	font-family: 'JetBrains Mono', ui-monospace, monospace;
	font-size: 10.5px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #64748b;
}

.aff-clg-activity__l {
	font-size: 11.5px;
	color: #94a3b8;
}

.aff-clg-bars {
	display: flex;
	align-items: flex-end;
	gap: 10px;
	height: 90px;
}

.aff-clg-barcol {
	display: flex;
	flex: 1;
	flex-direction: column;
	align-items: center;
	justify-content: flex-end;
	gap: 8px;
	height: 100%;
}

.aff-clg-bar {
	position: relative;
	width: 100%;
	max-width: 38px;
	border-radius: 6px 6px 3px 3px;
	background: linear-gradient(180deg, #22d3ee, #0ea5e9);
	transition: filter 0.15s;
}

.aff-clg-bar--zero {
	background: #e2e8f0;
}

.aff-clg-barcol:hover .aff-clg-bar {
	filter: brightness(1.08);
}

.aff-clg-bar__n {
	position: absolute;
	top: -18px;
	left: 50%;
	transform: translateX(-50%);
	font-family: 'JetBrains Mono', ui-monospace, monospace;
	font-size: 10px;
	font-weight: 700;
	color: #64748b;
}

.aff-clg-bar__d {
	font-family: 'JetBrains Mono', ui-monospace, monospace;
	font-size: 9.5px;
	color: #94a3b8;
}

/* --- "Why we track this" -------------------------------------------------- */

.aff-clg-why {
	display: flex;
	gap: 14px;
	margin-top: 14px;
	padding: 18px 22px;
	border: 1px solid #e2e8f0;
	border-radius: 14px;
	background: #fff;
}

.aff-clg-why__ic {
	display: flex;
	flex: none;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	border-radius: 10px;
	background: #e0f2fe;
	color: #0369a1;
}

.aff-clg-why__ic svg {
	width: 17px;
	height: 17px;
}

.entry-content .aff-clg-why p,
.aff-clg-why p {
	margin: 0;
	font-size: 13px;
	line-height: 1.6;
	color: #475569;
}

.aff-clg-why p b {
	color: #0f172a;
	font-weight: 600;
}

/* --- Toolbar: filter pills + search --------------------------------------- */

.aff-clg-toolbar {
	margin: 24px 0 6px;
}

.aff-clg-filters {
	display: flex;
	flex-wrap: wrap;
	gap: 3px;
	padding: 4px;
	border: 1px solid #e2e8f0;
	border-radius: 11px;
	background: #fff;
}

.aff-clg-filters button {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 8px 13px;
	border: 0;
	border-radius: 7px;
	background: none;
	box-shadow: none;
	font-family: inherit;
	font-size: 12.5px;
	font-weight: 600;
	color: #64748b;
	cursor: pointer;
}

.aff-clg-filters button.is-on {
	background: #0f172a;
	color: #fff;
}

.aff-clg-filters button:not(.is-on):hover {
	background: #f6f9fb;
	color: #0f172a;
}

.aff-clg-filters__dot {
	width: 7px;
	height: 7px;
	border-radius: 50%;
}

.aff-clg-filters__c {
	font-family: 'JetBrains Mono', ui-monospace, monospace;
	font-size: 10px;
	opacity: 0.7;
}

.aff-clg-search {
	position: relative;
	width: max-content;
	margin-top: 10px;
}

.aff-clg-search svg {
	position: absolute;
	top: 50%;
	left: 11px;
	width: 14px;
	height: 14px;
	transform: translateY(-50%);
	color: #94a3b8;
}

.aff-clg-search input {
	width: 220px;
	padding: 9px 12px 9px 32px;
	border: 1px solid #e2e8f0;
	border-radius: 10px;
	background: #fff;
	font-family: inherit;
	font-size: 13px;
	outline: none;
}

.aff-clg-search input:focus {
	border-color: #0ea5e9;
}

/* --- Day groups + timeline ------------------------------------------------ */

.aff-clg-day {
	margin-top: 22px;
}

.aff-clg-dayhead {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 4px;
}

.aff-clg-daychip {
	padding: 6px 13px;
	border: 1px solid #e2e8f0;
	border-radius: 20px;
	background: #fff;
	font-family: 'JetBrains Mono', ui-monospace, monospace;
	font-size: 11px;
	font-weight: 700;
	color: #475569;
}

.aff-clg-daycount {
	font-family: 'JetBrains Mono', ui-monospace, monospace;
	font-size: 11px;
	color: #94a3b8;
}

.aff-clg-dayline {
	flex: 1;
	height: 1px;
	background: #e2e8f0;
}

.aff-clg-tl {
	position: relative;
	margin: 0;
	padding: 0 0 0 30px;
	list-style: none;
}

.aff-clg-tl::before {
	content: "";
	position: absolute;
	top: 6px;
	bottom: 6px;
	left: 9px;
	width: 2px;
	background: #e2e8f0;
}

.aff-clg-ev {
	position: relative;
	display: flex;
	align-items: flex-start;
	gap: 13px;
	margin: 0;
	padding: 13px 0;
}

.aff-clg-ev__node {
	position: absolute;
	top: 15px;
	left: -30px;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 20px;
	height: 20px;
	border: 3px solid #fff;
	border-radius: 50%;
}

.aff-clg-ev__node svg {
	width: 9px;
	height: 9px;
	color: #fff;
}

.aff-clg-ev__logo,
img.aff-clg-ev__logo,
.aff-monogram.aff-clg-ev__logo {
	flex: none;
	width: 36px;
	height: 36px;
	border: 1px solid #eef2f7;
	border-radius: 10px;
	background: #fff;
	object-fit: contain;
}

.aff-monogram.aff-clg-ev__logo {
	display: flex;
	align-items: center;
	justify-content: center;
	border: 0;
	background: hsl(var(--aff-mono-h, 210) 62% 46%);
	color: #fff;
	font-family: 'Space Grotesk', system-ui, sans-serif;
	font-size: 15px;
	font-weight: 700;
	line-height: 1;
}

.aff-clg-ev__body {
	flex: 1;
	min-width: 0;
}

.aff-clg-ev__top {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 9px;
}

.aff-clg-ev__name {
	font-family: 'Space Grotesk', system-ui, sans-serif;
	font-size: 14.5px;
	font-weight: 600;
	color: #0f172a;
	text-decoration: none;
}

.aff-clg-ev__name:hover {
	color: #0284c7;
}

.aff-clg-ev__tag {
	padding: 2px 7px;
	border-radius: 5px;
	font-family: 'JetBrains Mono', ui-monospace, monospace;
	font-size: 9px;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.entry-content .aff-clg-ev__desc,
.aff-clg-ev__desc {
	margin: 4px 0 0;
	font-size: 13px;
	color: #64748b;
}

.aff-clg-diff {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	margin-top: 7px;
	padding: 5px 11px;
	border: 1px solid #e2e8f0;
	border-radius: 8px;
	background: #f6f9fb;
	font-family: 'JetBrains Mono', ui-monospace, monospace;
	font-size: 12.5px;
}

.aff-clg-diff__from {
	color: #94a3b8;
	text-decoration: line-through;
}

.aff-clg-diff__arrow {
	color: #94a3b8;
}

.aff-clg-diff__to {
	color: #0369a1;
	font-weight: 700;
}

.aff-clg-diff__mv {
	padding: 1px 5px;
	border-radius: 4px;
	font-size: 10px;
	font-weight: 700;
}

.aff-clg-diff__mv.is-up {
	background: #e9f7ef;
	color: #15803d;
}

.aff-clg-diff__mv.is-down {
	background: #fdecec;
	color: #dc2626;
}

.aff-clg-src {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	margin-top: 8px;
	font-family: 'JetBrains Mono', ui-monospace, monospace;
	font-size: 10px;
	color: #94a3b8;
}

.aff-clg-src svg {
	width: 11px;
	height: 11px;
}

.aff-clg-src a {
	color: #0369a1;
	font-weight: 600;
	text-decoration: none;
}

.aff-clg-src a:hover {
	text-decoration: underline;
}

.aff-clg-ev__date {
	flex: none;
	padding-top: 2px;
	font-family: 'JetBrains Mono', ui-monospace, monospace;
	font-size: 10.5px;
	color: #94a3b8;
}

/* --- Empty state + load more ---------------------------------------------- */

.entry-content .aff-clg-empty,
.aff-clg-empty {
	margin: 0;
	padding: 40px;
	font-size: 14px;
	color: #64748b;
	text-align: center;
}

.aff-clg-more {
	margin-top: 28px;
	text-align: center;
}

.aff-clg-more button {
	padding: 12px 22px;
	border: 1px solid #d5dce4;
	border-radius: 11px;
	background: #fff;
	box-shadow: none;
	font-family: inherit;
	font-size: 13.5px;
	font-weight: 600;
	color: #475569;
	cursor: pointer;
}

.aff-clg-more button:hover {
	border-color: #0ea5e9;
	background: #fff;
	color: #0284c7;
}

.aff-clg-more[hidden],
.aff-clg-empty[hidden],
.aff-clg-ev[hidden],
.aff-clg-day[hidden] {
	display: none;
}

/* --- Digest subscribe (honest states) ------------------------------------- */

.aff-clg-subscribe {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 18px;
	margin-top: 32px;
	padding: 24px 28px;
	border-radius: 16px;
	background:
		radial-gradient(500px 200px at 85% 0%, rgb(14 165 233 / 16%), transparent 60%),
		linear-gradient(100deg, #0f172a, #1e293b);
	color: #fff;
}

.aff-clg-subscribe__ic {
	display: flex;
	flex: none;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 12px;
	background: rgb(34 211 238 / 18%);
	color: #22d3ee;
}

.aff-clg-subscribe__ic svg {
	width: 22px;
	height: 22px;
}

.aff-clg-subscribe__text {
	flex: 1;
	min-width: 220px;
}

.aff-clg-subscribe__t {
	display: block;
	font-family: 'Space Grotesk', system-ui, sans-serif;
	font-size: 16px;
	font-weight: 600;
}

.aff-clg-subscribe__d {
	display: block;
	margin-top: 3px;
	font-size: 12.5px;
	color: #94a3b8;
}

.aff-clg-subscribe__form {
	display: flex;
	gap: 8px;
	margin: 0;
}

.aff-clg-subscribe__form input[type='email'] {
	width: 210px;
	padding: 10px 14px;
	border: 1px solid rgb(148 163 184 / 35%);
	border-radius: 10px;
	background: rgb(255 255 255 / 8%);
	color: #fff;
	font-family: inherit;
	font-size: 13px;
	outline: none;
}

.aff-clg-subscribe__form input[type='email']::placeholder {
	color: #94a3b8;
}

.aff-clg-subscribe__form input[type='email']:focus {
	border-color: #22d3ee;
}

.aff-clg-hp {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
}

.aff-clg-subscribe__form button {
	padding: 10px 18px;
	border: 0;
	border-radius: 10px;
	background: #fff;
	box-shadow: none;
	color: #0f172a;
	font-family: inherit;
	font-size: 13px;
	font-weight: 600;
	cursor: pointer;
	white-space: nowrap;
}

.aff-clg-subscribe__form button:hover {
	background: #e0f2fe;
	color: #0f172a;
}

.aff-clg-subscribe__form button:disabled {
	opacity: 0.65;
	cursor: default;
}

.aff-clg-subscribe__done {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 13.5px;
	font-weight: 600;
	color: #6ee7b7;
}

.aff-clg-subscribe__done[hidden] {
	display: none;
}

.aff-clg-subscribe__done svg {
	width: 16px;
	height: 16px;
}

.entry-content .aff-clg-subscribe__msg,
.aff-clg-subscribe__msg {
	flex-basis: 100%;
	margin: 0;
	font-size: 12.5px;
	color: #94a3b8;
}

.aff-clg-subscribe__msg.is-error {
	color: #fca5a5;
}

/* --- Responsive ----------------------------------------------------------- */

@media (max-width: 680px) {
	.aff-clg {
		padding: 0 16px 8px;
	}

	.aff-clg-head {
		padding: 26px 22px;
	}

	.aff-clg-stats {
		gap: 20px;
	}

	.aff-clg-bars {
		gap: 5px;
	}

	.aff-clg-search input {
		width: 100%;
	}

	.aff-clg-search {
		width: 100%;
	}

	.aff-clg-ev__date {
		display: none;
	}

	.aff-clg-subscribe__form {
		width: 100%;
	}

	.aff-clg-subscribe__form input[type='email'] {
		flex: 1;
		width: auto;
		min-width: 0;
	}
}


/* =============================================================================
 * v7.2.1 — Site-wide vertical rhythm + a working Content Vertical Padding
 * toggle. The aff-engine templates (.afx shells) bypass Kadence's
 * .content-area, so the Customizer control never reached them; these rules
 * map its body classes onto the shells' own top/bottom padding. Baseline when
 * enabled: 20px top / 64px bottom on every terminal page (archives, hubs,
 * singles, best pages, compare), 40px top / 64px bottom on tool pages
 * (matcher, changes — 32px Kadence margin + our 8/32px padding).
 * ========================================================================== */

body.content-vertical-padding-hide .afx__inner,
body.content-vertical-padding-bottom .afx__inner,
body.content-vertical-padding-hide .afx-arch__inner,
body.content-vertical-padding-bottom .afx-arch__inner {
	padding-top: 0;
}

body.content-vertical-padding-hide .afx__inner,
body.content-vertical-padding-top .afx__inner,
body.content-vertical-padding-hide .afx-arch__inner,
body.content-vertical-padding-top .afx-arch__inner {
	padding-bottom: 0;
}


/* =============================================================================
 * v7.3 — Content + legal pages (Submit a Listing / Contact / About / Privacy
 * Policy / Affiliate Disclosure), rendered by the aff_*_page shortcodes.
 * Ink + cyan system: white cards on the page background, Space Grotesk
 * headings, JetBrains Mono micro-labels, Inter body. Shares the tool-page
 * rhythm (each page carries its own header card; Kadence title band hidden
 * via body.aff-tool-page).
 * ========================================================================== */

.aff-pg {
	max-width: 880px;
	margin: 0 auto;
	padding: 0 24px 8px;
	font-family: Inter, system-ui, sans-serif;
	color: #0f172a;
}

/* --- Breadcrumb ---------------------------------------------------------- */

.aff-pg-crumb {
	padding: 4px 0 0;
	font-family: 'JetBrains Mono', ui-monospace, monospace;
	font-size: 11.5px;
	color: #94a3b8;
}

.aff-pg-crumb a {
	color: inherit;
	text-decoration: none;
}

.aff-pg-crumb a:hover {
	color: #0284c7;
}

.aff-pg-crumb b {
	color: #475569;
	font-weight: 500;
}

/* --- Header card ---------------------------------------------------------- */

.aff-pg-head {
	position: relative;
	overflow: hidden;
	margin-top: 14px;
	padding: 38px 42px;
	border: 1px solid #e2e8f0;
	border-radius: 20px;
	background:
		radial-gradient(560px 240px at 88% -50%, rgb(14 165 233 / 12%), transparent 70%),
		#fff;
}

.aff-pg-tag {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	margin-bottom: 16px;
	padding: 5px 11px;
	border-radius: 6px;
	background: #e0f2fe;
	color: #0369a1;
	font-family: 'JetBrains Mono', ui-monospace, monospace;
	font-size: 10.5px;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.entry-content .aff-pg-title,
.aff-pg-title {
	margin: 0 0 12px;
	font-family: 'Space Grotesk', system-ui, sans-serif;
	font-size: clamp(30px, 4.6vw, 40px);
	font-weight: 700;
	letter-spacing: -0.025em;
	line-height: 1.1;
	color: #0f172a;
}

.entry-content .aff-pg-lead,
.aff-pg-lead {
	max-width: 620px;
	margin: 0;
	font-size: 15.5px;
	line-height: 1.7;
	color: #475569;
}

.aff-pg-lead b {
	color: #0f172a;
	font-weight: 600;
}

.aff-pg-freepill {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin-left: 2px;
	padding: 3px 11px;
	border-radius: 20px;
	background: #e9f7ef;
	color: #15803d;
	font-family: 'JetBrains Mono', ui-monospace, monospace;
	font-size: 11px;
	font-weight: 700;
}

.aff-pg-updated {
	display: flex;
	align-items: center;
	gap: 7px;
	margin-top: 16px;
	font-family: 'JetBrains Mono', ui-monospace, monospace;
	font-size: 11px;
	color: #94a3b8;
}

.aff-pg-updated__dot {
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: #16a34a;
}

/* --- Sections ------------------------------------------------------------- */

.aff-pg-sec {
	padding: 30px 0 0;
}

.entry-content .aff-pg-sech,
.aff-pg-sech {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 18px;
	font-family: 'Space Grotesk', system-ui, sans-serif;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: #64748b;
}

.aff-pg-sech::before {
	content: '';
	flex: none;
	width: 4px;
	height: 16px;
	border-radius: 3px;
	background: #0ea5e9;
}

.aff-pg-card {
	padding: 26px 30px;
	border: 1px solid #e2e8f0;
	border-radius: 16px;
	background: #fff;
}

/* --- Steps timeline (Submit) ---------------------------------------------- */

.aff-pg-steps {
	position: relative;
	padding-left: 34px;
}

.aff-pg-steps::before {
	content: '';
	position: absolute;
	top: 10px;
	bottom: 10px;
	left: 15px;
	width: 2px;
	background: #e2e8f0;
}

.aff-pg-step {
	position: relative;
	padding: 0 0 22px;
}

.aff-pg-step:last-child {
	padding-bottom: 0;
}

.aff-pg-step__n {
	position: absolute;
	top: 0;
	left: -34px;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	border: 3px solid #fff;
	border-radius: 50%;
	background: #0ea5e9;
	color: #fff;
	font-family: 'Space Grotesk', system-ui, sans-serif;
	font-size: 13px;
	font-weight: 700;
}

.aff-pg-step__t {
	margin-bottom: 4px;
	font-family: 'Space Grotesk', system-ui, sans-serif;
	font-size: 15.5px;
	font-weight: 600;
}

.aff-pg-step__d {
	font-size: 13.5px;
	line-height: 1.6;
	color: #475569;
}

/* --- What-to-include checklist -------------------------------------------- */

.aff-pg-check {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px 26px;
}

.aff-pg-check__i {
	display: flex;
	align-items: flex-start;
	gap: 11px;
	font-size: 13.5px;
	color: #0f172a;
}

.aff-pg-check__ic {
	display: flex;
	flex: none;
	align-items: center;
	justify-content: center;
	width: 20px;
	height: 20px;
	margin-top: 1px;
	border-radius: 6px;
	background: #e9f7ef;
	color: #16a34a;
}

.aff-pg-check__i.is-req .aff-pg-check__ic {
	background: #e0f2fe;
	color: #0369a1;
}

.aff-pg-check__ic svg {
	width: 12px;
	height: 12px;
}

.aff-pg-check__o {
	display: block;
	margin-top: 2px;
	font-family: 'JetBrains Mono', ui-monospace, monospace;
	font-size: 10px;
	color: #94a3b8;
}

/* --- Submit form ----------------------------------------------------------- */

.aff-pg-form {
	padding: 30px 34px;
	border: 1px solid #e2e8f0;
	border-radius: 18px;
	background: #fff;
}

.aff-pg-fgrid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
}

.aff-pg-field {
	display: flex;
	flex-direction: column;
	gap: 7px;
}

.aff-pg-field--full {
	grid-column: 1 / 3;
}

.aff-pg-field label {
	font-family: 'JetBrains Mono', ui-monospace, monospace;
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: #64748b;
}

.aff-pg-field__r {
	color: #0369a1;
}

.aff-pg-field input,
.aff-pg-field select,
.aff-pg-field textarea {
	padding: 12px 13px;
	border: 1.5px solid #e2e8f0;
	border-radius: 10px;
	background: #fff;
	color: #0f172a;
	font-family: Inter, system-ui, sans-serif;
	font-size: 14px;
	outline: none;
}

.aff-pg-field input:focus,
.aff-pg-field select:focus,
.aff-pg-field textarea:focus {
	border-color: #0ea5e9;
}

.aff-pg-field input.is-invalid,
.aff-pg-field select.is-invalid,
.aff-pg-field textarea.is-invalid {
	border-color: #ef4444;
}

.aff-pg-field textarea {
	min-height: 80px;
	resize: vertical;
}

.aff-pg-hp {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

.aff-pg-formfoot {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 14px;
	margin-top: 22px;
}

.aff-pg-submitbtn {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	padding: 14px 26px;
	border: none;
	border-radius: 12px;
	background: #0f172a;
	color: #fff;
	font-family: Inter, system-ui, sans-serif;
	font-size: 14.5px;
	font-weight: 600;
	cursor: pointer;
}

.aff-pg-submitbtn:hover {
	background: #1e293b;
	color: #fff;
}

.aff-pg-submitbtn:disabled {
	opacity: 0.6;
	cursor: default;
}

.aff-pg-submitbtn svg {
	width: 16px;
	height: 16px;
}

.aff-pg-formnote {
	font-size: 12px;
	color: #94a3b8;
}

.entry-content .aff-pg-formmsg,
.aff-pg-formmsg {
	margin: 14px 0 0;
	font-size: 13px;
	font-weight: 500;
	color: #b91c1c;
}

.aff-pg-formmsg[hidden] {
	display: none;
}

.aff-pg-formdone {
	padding: 40px 20px;
	text-align: center;
}

.aff-pg-formdone[hidden] {
	display: none;
}

.aff-pg-formdone__ic {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	margin: 0 auto 16px;
	border-radius: 50%;
	background: #e9f7ef;
	color: #16a34a;
}

.aff-pg-formdone__ic svg {
	width: 28px;
	height: 28px;
}

.entry-content .aff-pg-formdone h3,
.aff-pg-formdone h3 {
	margin: 0 0 8px;
	font-family: 'Space Grotesk', system-ui, sans-serif;
	font-size: 22px;
	font-weight: 700;
}

.aff-pg-formdone p {
	max-width: 420px;
	margin: 0 auto;
	font-size: 14px;
	line-height: 1.65;
	color: #475569;
}

/* --- Contact cards --------------------------------------------------------- */

.aff-pg-cgrid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
}

.aff-pg-cc {
	padding: 22px 24px;
	border: 1px solid #e2e8f0;
	border-radius: 16px;
	background: #fff;
}

.aff-pg-cc__ic {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	margin-bottom: 14px;
	border-radius: 11px;
	background: #e0f2fe;
	color: #0369a1;
}

.aff-pg-cc__ic svg {
	width: 20px;
	height: 20px;
}

.entry-content .aff-pg-cc h3,
.aff-pg-cc h3 {
	margin: 0 0 6px;
	font-family: 'Space Grotesk', system-ui, sans-serif;
	font-size: 16px;
	font-weight: 600;
}

.aff-pg-cc p {
	margin: 0 0 12px;
	font-size: 13px;
	line-height: 1.55;
	color: #475569;
}

.aff-pg-cc__link {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	color: #0369a1;
	font-size: 13px;
	font-weight: 600;
	text-decoration: none;
	transition: gap 0.15s ease;
}

.aff-pg-cc__link:hover {
	gap: 8px;
	color: #0369a1;
}

/* --- Dark email bar --------------------------------------------------------- */

.aff-pg-emailbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 16px;
	margin-top: 26px;
	padding: 24px 28px;
	border-radius: 16px;
	background:
		radial-gradient(500px 200px at 85% 0%, rgb(14 165 233 / 16%), transparent 60%),
		linear-gradient(100deg, #0f172a, #1e293b);
	color: #fff;
}

.aff-pg-sec .aff-pg-emailbar {
	margin-top: 0;
}

.aff-pg-emailbar__ic {
	display: flex;
	flex: none;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 12px;
	background: rgb(34 211 238 / 18%);
	color: #22d3ee;
}

.aff-pg-emailbar__ic svg {
	width: 22px;
	height: 22px;
}

.aff-pg-emailbar__k {
	display: block;
	font-family: 'JetBrains Mono', ui-monospace, monospace;
	font-size: 10px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: #22d3ee;
}

.aff-pg-emailbar__v {
	display: block;
	margin-top: 2px;
	font-family: 'Space Grotesk', system-ui, sans-serif;
	font-size: 20px;
	font-weight: 700;
}

.aff-pg-emailbar__btn {
	margin-left: auto;
	padding: 11px 18px;
	border-radius: 10px;
	background: #fff;
	color: #0f172a;
	font-size: 13px;
	font-weight: 600;
	text-decoration: none;
}

.aff-pg-emailbar__btn:hover {
	background: #e0f2fe;
	color: #0f172a;
}

/* --- About: stats strip ----------------------------------------------------- */

.aff-pg-stats {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
	overflow: hidden;
	border: 1px solid #e2e8f0;
	border-radius: 16px;
	background: #fff;
}

.aff-pg-stat {
	padding: 22px 24px;
	border-right: 1px solid #e2e8f0;
	text-align: center;
}

.aff-pg-stat:last-child {
	border-right: none;
}

.aff-pg-stat__n {
	font-family: 'Space Grotesk', system-ui, sans-serif;
	font-size: 26px;
	font-weight: 700;
	color: #0369a1;
}

.aff-pg-stat__k {
	margin-top: 5px;
	font-family: 'JetBrains Mono', ui-monospace, monospace;
	font-size: 9.5px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #94a3b8;
}

/* --- About: values + money ---------------------------------------------------- */

.aff-pg-prose p {
	max-width: 680px;
	margin: 0 0 16px;
	font-size: 15px;
	line-height: 1.75;
	color: #475569;
}

.aff-pg-prose p b {
	color: #0f172a;
	font-weight: 600;
}

.aff-pg-vals {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 16px;
	margin-top: 6px;
}

.aff-pg-val {
	padding: 22px 24px;
	border: 1px solid #e2e8f0;
	border-radius: 16px;
	background: #fff;
}

.aff-pg-val__ic {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	margin-bottom: 14px;
	border-radius: 11px;
	background: #e0f2fe;
	color: #0369a1;
}

.aff-pg-val__ic svg {
	width: 20px;
	height: 20px;
}

.entry-content .aff-pg-val h3,
.aff-pg-val h3 {
	margin: 0 0 8px;
	font-family: 'Space Grotesk', system-ui, sans-serif;
	font-size: 15.5px;
	font-weight: 600;
}

.aff-pg-val p {
	margin: 0;
	font-size: 13px;
	line-height: 1.6;
	color: #475569;
}

.aff-pg-money {
	padding: 22px 26px;
	border: 1px solid #e2e8f0;
	border-left: 4px solid #f59e0b;
	border-radius: 14px;
	background: #fff;
}

.aff-pg-money p {
	max-width: 680px;
	margin: 0;
	font-size: 14px;
	line-height: 1.7;
	color: #475569;
}

.aff-pg-money p b {
	color: #0f172a;
	font-weight: 600;
}

.aff-pg-money a {
	color: #0369a1;
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 2px;
}

/* --- CTA band -------------------------------------------------------------- */

.aff-pg-ctaband {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 22px;
	margin-top: 32px;
	padding: 34px 40px;
	border-radius: 18px;
	background:
		radial-gradient(600px 300px at 80% 0%, rgb(14 165 233 / 20%), transparent 60%),
		linear-gradient(120deg, #0f172a, #1e293b);
	color: #fff;
}

.entry-content .aff-pg-ctaband h2,
.aff-pg-ctaband h2 {
	margin: 0 0 6px;
	font-family: 'Space Grotesk', system-ui, sans-serif;
	font-size: 24px;
	font-weight: 700;
	letter-spacing: -0.02em;
	color: #fff;
}

.aff-pg-ctaband p {
	max-width: 440px;
	margin: 0;
	font-size: 13.5px;
	color: #a9b7c9;
}

.aff-pg-ctaband__btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-left: auto;
	padding: 13px 22px;
	border-radius: 11px;
	background: #fff;
	color: #0f172a;
	font-size: 14px;
	font-weight: 600;
	text-decoration: none;
	white-space: nowrap;
}

.aff-pg-ctaband__btn:hover {
	background: #e0f2fe;
	color: #0f172a;
}

/* --- Legal: TOC ------------------------------------------------------------- */

.aff-pg-toc {
	margin-top: 16px;
	padding: 18px 22px;
	border: 1px solid #e2e8f0;
	border-radius: 14px;
	background: #fff;
}

.entry-content .aff-pg-toc h4,
.aff-pg-toc h4 {
	margin: 0 0 12px;
	font-family: 'JetBrains Mono', ui-monospace, monospace;
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: #94a3b8;
}

.aff-pg-toc__list {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 7px 24px;
}

.aff-pg-toc__list a {
	display: flex;
	align-items: center;
	gap: 8px;
	color: #475569;
	font-size: 13px;
	text-decoration: none;
}

.aff-pg-toc__list a:hover {
	color: #0369a1;
}

.aff-pg-toc__n {
	font-family: 'JetBrains Mono', ui-monospace, monospace;
	font-size: 10px;
	font-weight: 600;
	color: #0369a1;
}

/* --- Legal: prose sections --------------------------------------------------- */

.aff-pg-lsec {
	padding: 30px 0 0;
	scroll-margin-top: 90px;
}

.entry-content .aff-pg-sech2,
.aff-pg-sech2 {
	display: flex;
	align-items: center;
	gap: 11px;
	margin: 0 0 14px;
	font-family: 'Space Grotesk', system-ui, sans-serif;
	font-size: 19px;
	font-weight: 600;
	letter-spacing: -0.01em;
	color: #0f172a;
}

.aff-pg-sech2::before {
	content: '';
	flex: none;
	width: 4px;
	height: 20px;
	border-radius: 3px;
	background: #0ea5e9;
}

.aff-pg-prose--legal p {
	max-width: none;
	margin: 0 0 14px;
	font-size: 14.5px;
	line-height: 1.75;
	color: #475569;
}

.aff-pg-prose--legal ul {
	margin: 0 0 14px;
	padding-left: 0;
	list-style: none;
}

.aff-pg-prose--legal li {
	position: relative;
	padding: 0 0 9px 26px;
	font-size: 14.5px;
	line-height: 1.7;
	color: #475569;
}

.aff-pg-prose--legal li::before {
	content: '';
	position: absolute;
	top: 9px;
	left: 4px;
	width: 7px;
	height: 7px;
	border: 1.5px solid #22d3ee;
	border-radius: 2px;
	background: #e0f2fe;
}

.aff-pg-prose--legal li b,
.aff-pg-prose--legal p b {
	color: #0f172a;
	font-weight: 600;
}

.aff-pg-inline,
.aff-pg-prose--legal a.aff-pg-inline {
	color: #0369a1;
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.aff-pg-prose--legal a b {
	color: inherit;
}

/* --- Legal: callouts, labels, TL;DR ------------------------------------------ */

.aff-pg-callout {
	margin: 6px 0 14px;
	padding: 20px 24px;
	border: 1px solid #e2e8f0;
	border-left: 4px solid #f59e0b;
	border-radius: 14px;
	background: #fff;
}

.aff-pg-callout--green {
	border-left-color: #16a34a;
}

.aff-pg-callout__h {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0 0 6px;
	font-family: 'Space Grotesk', system-ui, sans-serif;
	font-size: 14.5px;
	font-weight: 600;
	color: #0f172a;
}

.aff-pg-callout__h svg {
	width: 16px;
	height: 16px;
	color: #f59e0b;
}

.aff-pg-callout--green .aff-pg-callout__h svg {
	color: #16a34a;
}

.aff-pg-callout p {
	margin: 0;
	font-size: 14px;
	line-height: 1.7;
	color: #475569;
}

.aff-pg-lblrow {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin: 4px 0 14px;
}

.aff-pg-lbl {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 8px 13px;
	border: 1px solid #e2e8f0;
	border-radius: 10px;
	background: #fff;
	color: #475569;
	font-size: 12.5px;
}

.aff-pg-lbl__pill {
	padding: 2px 7px;
	border-radius: 5px;
	font-family: 'JetBrains Mono', ui-monospace, monospace;
	font-size: 9px;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.aff-pg-lbl__pill.is-aff {
	background: #e0f2fe;
	color: #0369a1;
}

.aff-pg-lbl__pill.is-spon {
	background: #e9f7ef;
	color: #15803d;
}

.aff-pg-tldr {
	margin-top: 16px;
	padding: 22px 26px;
	border: 1px solid #bae6fd;
	border-radius: 16px;
	background: #e0f2fe;
}

.aff-pg-tldr__h {
	margin: 0 0 8px;
	font-family: 'Space Grotesk', system-ui, sans-serif;
	font-size: 15px;
	font-weight: 700;
	color: #0369a1;
}

.aff-pg-tldr p {
	margin: 0;
	font-size: 14.5px;
	line-height: 1.7;
	color: #0f172a;
}

.aff-pg-tldr p b {
	font-weight: 600;
}

/* --- Responsive -------------------------------------------------------------- */

@media (max-width: 720px) {
	.aff-pg-head {
		padding: 28px 24px;
	}

	.aff-pg-check,
	.aff-pg-fgrid,
	.aff-pg-cgrid,
	.aff-pg-vals,
	.aff-pg-toc__list {
		grid-template-columns: 1fr;
	}

	.aff-pg-field--full {
		grid-column: auto;
	}

	.aff-pg-stats {
		grid-template-columns: 1fr;
	}

	.aff-pg-stat {
		border-right: none;
		border-bottom: 1px solid #e2e8f0;
	}

	.aff-pg-stat:last-child {
		border-bottom: none;
	}

	.aff-pg-emailbar__btn,
	.aff-pg-ctaband__btn {
		margin-left: 0;
	}
}

/* =============================================================================
 * v7.4 - Directory search terminal (templates/search.php)
 * Reuses the .afx shell + .afx-phead header card; everything below is the
 * search-specific layer: query echo, popular chips, did-you-mean bar,
 * best/hub callout, type chips + sort links, 2-col result cards, honest
 * zero-result request capture, browse fallback panel.
 * ========================================================================== */

.afx-srch .afx-arch__inner {
	max-width: 1000px;
}

.afx-srch__q {
	color: var(--afx-accent-d);
}

.afx-srch__count {
	font-size: 13.5px;
	color: var(--afx-ink-3);
	margin: 6px 0 0;
}

.afx-srch__count b {
	color: var(--afx-ink);
	font-weight: 600;
}

.afx-srch__box {
	position: relative;
	margin-top: 20px;
	max-width: 460px;
}

.afx-srch__box svg {
	position: absolute;
	left: 14px;
	top: 50%;
	transform: translateY(-50%);
	width: 17px;
	height: 17px;
	color: var(--afx-ink-4);
	pointer-events: none;
}

.afx-srch__box input {
	width: 100%;
	border: 1.5px solid var(--afx-line-2);
	background: var(--afx-panel);
	border-radius: 12px;
	padding: 13px 14px 13px 42px;
	font-size: 14.5px;
	color: var(--afx-ink);
	outline: none;
}

.afx-srch__box input:focus {
	border-color: var(--afx-accent);
}

.afx-srch__popular {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
	margin-top: 14px;
}

.afx-srch__popular span {
	font-family: 'JetBrains Mono', ui-monospace, monospace;
	font-size: 10px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--afx-ink-4);
}

.afx-srch__popular a {
	font-size: 12px;
	font-weight: 600;
	color: var(--afx-ink-2);
	background: var(--afx-panel-2);
	border: 1px solid var(--afx-line);
	padding: 5px 11px;
	border-radius: 20px;
	text-decoration: none;
}

.afx-srch__popular a:hover {
	border-color: var(--afx-accent);
	color: var(--afx-accent-d);
}

/* --- Did you mean ---------------------------------------------------------- */

.afx-srch__dym {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
	margin-top: 16px;
	background: #fff8ec;
	border: 1px solid #f8e2b8;
	border-radius: 12px;
	padding: 12px 16px;
	font-size: 13px;
	color: var(--afx-ink-2);
}

.afx-srch__dym svg {
	width: 18px;
	height: 18px;
	color: #f59e0b;
	flex: none;
}

.afx-srch__dym a {
	font-weight: 700;
	color: var(--afx-accent-d);
	text-decoration: none;
}

.afx-srch__dym a:hover {
	text-decoration: underline;
}

.afx-srch__dym-sep {
	color: var(--afx-ink-4);
}

/* --- Best-list / hub callout ----------------------------------------------- */

.afx-srch__best {
	display: flex;
	align-items: center;
	gap: 14px;
	margin-top: 16px;
	background: radial-gradient(400px 160px at 90% 0%, rgba(14, 165, 233, 0.16), transparent 60%), linear-gradient(100deg, #0f172a, #1e293b);
	border-radius: 14px;
	padding: 16px 20px;
	color: #fff;
}

.afx-srch__best-ic {
	width: 38px;
	height: 38px;
	border-radius: 11px;
	background: rgba(224, 161, 0, 0.22);
	color: #ffd23f;
	display: flex;
	align-items: center;
	justify-content: center;
	flex: none;
}

.afx-srch__best-ic svg {
	width: 19px;
	height: 19px;
}

.afx-srch__best-body {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
}

.afx-srch__best-k {
	font-family: 'JetBrains Mono', ui-monospace, monospace;
	font-size: 9.5px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: #ffd27a;
}

.afx-srch__best-t {
	font-family: 'Space Grotesk', sans-serif;
	font-weight: 600;
	font-size: 15px;
	margin-top: 2px;
}

.afx-srch__best-btn {
	background: #fff;
	color: var(--afx-navy);
	font-weight: 600;
	font-size: 12.5px;
	padding: 9px 15px;
	border-radius: 9px;
	white-space: nowrap;
	text-decoration: none;
}

.afx-srch__best-btn:hover {
	background: var(--afx-accent-dim);
	color: var(--afx-navy);
}

/* --- Toolbar: type chips + sort -------------------------------------------- */

.afx-srch__toolbar {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 22px 0 4px;
	flex-wrap: wrap;
}

.afx-srch__chips {
	display: flex;
	gap: 3px;
	background: var(--afx-panel);
	border: 1px solid var(--afx-line);
	border-radius: 11px;
	padding: 4px;
}

.afx-srch__chips a {
	font-size: 12.5px;
	font-weight: 600;
	color: var(--afx-ink-3);
	padding: 8px 14px;
	border-radius: 7px;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	text-decoration: none;
}

.afx-srch__chips a span {
	font-family: 'JetBrains Mono', ui-monospace, monospace;
	font-size: 10px;
	opacity: 0.7;
}

.afx-srch__chips a.on {
	background: var(--afx-navy);
	color: #fff;
}

.afx-srch__chips a:not(.on):hover {
	color: var(--afx-ink);
	background: var(--afx-panel-2);
}

.afx-srch__sort {
	margin-left: auto;
	display: flex;
	align-items: center;
	gap: 4px;
	flex-wrap: wrap;
}

.afx-srch__sort > span {
	font-family: 'JetBrains Mono', ui-monospace, monospace;
	font-size: 10px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--afx-ink-4);
	margin-right: 6px;
}

.afx-srch__sort a {
	font-size: 12px;
	font-weight: 600;
	color: var(--afx-ink-3);
	padding: 7px 11px;
	border-radius: 8px;
	border: 1px solid transparent;
	text-decoration: none;
}

.afx-srch__sort a.on {
	background: var(--afx-panel);
	border-color: var(--afx-line-2);
	color: var(--afx-ink);
}

.afx-srch__sort a:not(.on):hover {
	color: var(--afx-accent-d);
}

/* --- Result cards ----------------------------------------------------------- */

.afx-srch__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
	margin-top: 16px;
}

.afx-srch__card {
	position: relative;
	background: var(--afx-panel);
	border: 1px solid var(--afx-line);
	border-radius: 16px;
	padding: 20px;
	display: flex;
	gap: 15px;
	transition: border-color 0.15s, box-shadow 0.15s, transform 0.15s;
	overflow: hidden;
	text-decoration: none;
	color: var(--afx-ink);
}

.afx-srch__card:hover {
	border-color: var(--afx-accent);
	box-shadow: 0 14px 34px -20px rgba(14, 165, 233, 0.5);
	transform: translateY(-2px);
	color: var(--afx-ink);
}

.afx-srch__logo {
	width: 52px;
	height: 52px;
	border-radius: 14px;
	overflow: hidden;
	flex: none;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--afx-panel-2);
	border: 1px solid var(--afx-line);
}

.afx-srch__logo img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.afx-srch__logo .aff-monogram {
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 0;
}

.afx-srch__body {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}

.afx-srch__top {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
}

.afx-srch__name {
	font-family: 'Space Grotesk', sans-serif;
	font-weight: 700;
	font-size: 16.5px;
	letter-spacing: -0.01em;
}

.afx-srch__name mark {
	background: #fff2c2;
	color: inherit;
	border-radius: 3px;
	padding: 0 1px;
}

.afx-srch__card:hover .afx-srch__name {
	color: var(--afx-accent-d);
}

.afx-srch__tag {
	font-family: 'JetBrains Mono', ui-monospace, monospace;
	font-size: 9px;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	padding: 2px 7px;
	border-radius: 5px;
}

.afx-srch__tag--net {
	color: var(--afx-accent-d);
	background: var(--afx-accent-dim);
}

.afx-srch__tag--ad {
	color: #6a2fce;
	background: #f1ecfd;
}

.afx-srch__tag--prog {
	color: #15803d;
	background: #e9f7ef;
}

.afx-srch__ver {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	font-size: 10.5px;
	font-weight: 600;
	color: #15803d;
	background: #e9f7ef;
	padding: 2px 8px;
	border-radius: 20px;
}

.afx-srch__ver svg {
	width: 10px;
	height: 10px;
}

.afx-srch__bestfor {
	font-size: 12.5px;
	color: var(--afx-ink-2);
	margin-top: 8px;
}

.afx-srch__bestfor b {
	color: var(--afx-ink);
	font-weight: 600;
}

.afx-srch__meta {
	font-family: 'JetBrains Mono', ui-monospace, monospace;
	font-size: 10.5px;
	color: var(--afx-ink-4);
	margin-top: 7px;
	max-width: 100%;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.afx-srch__right {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 10px;
	flex: none;
}

.afx-srch__ring {
	position: relative;
	width: 48px;
	height: 48px;
}

.afx-srch__ring > span {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: 'Space Grotesk', sans-serif;
	font-weight: 700;
	font-size: 14px;
	color: var(--afx-ink);
}

.afx-srch__view {
	font-size: 11px;
	font-weight: 600;
	color: var(--afx-accent-d);
	white-space: nowrap;
}

/* --- Zero-result request capture -------------------------------------------- */

.afx-srch__empty {
	background: var(--afx-panel);
	border: 1px solid var(--afx-line);
	border-radius: 18px;
	margin-top: 16px;
	padding: 34px 36px;
	text-align: center;
}

.afx-srch__empty-ic {
	width: 52px;
	height: 52px;
	border-radius: 14px;
	background: var(--afx-accent-dim);
	color: var(--afx-accent-d);
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 auto 14px;
}

.afx-srch__empty-ic svg {
	width: 26px;
	height: 26px;
}

.afx-srch__empty h2 {
	font-family: 'Space Grotesk', sans-serif;
	font-weight: 700;
	font-size: 21px;
	margin: 0 0 6px;
}

.afx-srch__empty > p {
	font-size: 13.5px;
	color: var(--afx-ink-3);
	margin: 0 auto 18px;
	max-width: 400px;
}

.afx-srch__cap {
	position: relative;
	display: flex;
	gap: 10px;
	max-width: 520px;
	margin: 0 auto;
	flex-wrap: wrap;
}

.afx-srch__cap input {
	flex: 1;
	min-width: 150px;
	border: 1.5px solid var(--afx-line-2);
	border-radius: 11px;
	padding: 12px 14px;
	font-size: 13.5px;
	outline: none;
}

.afx-srch__cap input:focus {
	border-color: var(--afx-accent);
}

.afx-srch__cap input.is-invalid {
	border-color: #ef4444;
}

.afx-srch__cap .afx-srch__hp {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	min-width: 0;
	opacity: 0;
}

.afx-srch__cap button {
	background: var(--afx-navy);
	color: #fff;
	font-weight: 600;
	font-size: 13.5px;
	padding: 12px 20px;
	border-radius: 11px;
	border: none;
	cursor: pointer;
	white-space: nowrap;
}

.afx-srch__cap button:hover {
	background: #1e293b;
}

.afx-srch__cap button:disabled {
	opacity: 0.5;
	cursor: wait;
}

.afx-srch__cap-msg {
	color: #b91c1c;
	font-size: 13px;
	font-weight: 600;
	margin: 12px 0 0;
}

.afx-srch__cap-done {
	color: #15803d;
	font-weight: 600;
	font-size: 14px;
	margin: 10px 0 0;
}

.afx-srch__cap-done svg {
	width: 16px;
	height: 16px;
	vertical-align: -3px;
	margin-right: 4px;
}

.afx-srch__alt {
	font-size: 12.5px;
	color: var(--afx-ink-4);
	margin: 16px 0 0;
}

.afx-srch__alt a {
	color: var(--afx-accent-d);
	font-weight: 600;
	text-decoration: none;
}

/* --- Browse fallback --------------------------------------------------------- */

.afx-srch__browse {
	margin-top: 26px;
	background: var(--afx-panel-2);
	border: 1px dashed var(--afx-line-2);
	border-radius: 16px;
	padding: 22px 26px;
}

.afx-srch__browse-t {
	font-family: 'JetBrains Mono', ui-monospace, monospace;
	font-size: 10px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--afx-ink-4);
	margin: 0 0 12px;
}

.afx-srch__browse-links {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
}

.afx-srch__browse-links a {
	font-size: 12.5px;
	font-weight: 600;
	color: var(--afx-ink-2);
	background: var(--afx-panel);
	border: 1px solid var(--afx-line);
	padding: 8px 13px;
	border-radius: 9px;
	text-decoration: none;
}

.afx-srch__browse-links a:hover {
	border-color: var(--afx-accent);
	color: var(--afx-accent-d);
}

@media (max-width: 720px) {
	.afx-srch__grid {
		grid-template-columns: 1fr;
	}

	.afx-srch__sort {
		margin-left: 0;
	}
}

.afx-srch__cap[hidden] {
	display: none;
}

/* =============================================================================
 * v7.5 - Smart 404 (templates/404.php)
 * "4[ring 0.0]4" mark, requested-path echo, real smart-match banner /
 * did-you-mean (reuses .afx-srch__dym), search box with inline button,
 * request-a-listing capture (reuses .afx-srch__cap), jump-back destination
 * cards, top-scored + recently-added mini lists, honest broken-link report.
 * ========================================================================== */

.afx-404 .afx-arch__inner {
	max-width: 1000px;
}

.afx-404__hero {
	position: relative;
	border: 1px solid var(--afx-line);
	border-radius: 22px;
	margin-top: 26px;
	overflow: hidden;
	padding: 48px 44px 42px;
	text-align: center;
	background: radial-gradient(620px 300px at 50% -30%, rgba(14, 165, 233, 0.14), transparent 70%), var(--afx-panel);
}

.afx-404__mark {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
	margin: 20px 0;
}

.afx-404__d {
	font-family: 'Space Grotesk', sans-serif;
	font-weight: 700;
	font-size: 70px;
	letter-spacing: -0.03em;
	color: var(--afx-ink);
	line-height: 1;
}

.afx-404__zero {
	position: relative;
	width: 72px;
	height: 72px;
}

.afx-404__rv {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: 'JetBrains Mono', ui-monospace, monospace;
	font-size: 11px;
	font-weight: 700;
	color: var(--afx-accent-d);
}

.afx-404__hero h1 {
	font-family: 'Space Grotesk', sans-serif;
	font-weight: 700;
	font-size: 30px;
	letter-spacing: -0.02em;
	margin: 0 0 10px;
}

.afx-404__hero > p {
	font-size: 14.5px;
	color: var(--afx-ink-2);
	max-width: 520px;
	margin: 0 auto;
	line-height: 1.7;
}

.afx-404__req {
	font-family: 'JetBrains Mono', ui-monospace, monospace;
	font-size: 11px;
	color: var(--afx-ink-4);
	margin: 12px auto 0 !important;
}

.afx-404__req code {
	background: var(--afx-panel-2);
	border: 1px solid var(--afx-line);
	padding: 3px 9px;
	border-radius: 6px;
	color: var(--afx-ink-3);
	font-size: inherit;
}

/* Smart-match banner */
.afx-404__matchband {
	display: flex;
	align-items: center;
	gap: 16px;
	margin-top: 18px;
	background: radial-gradient(420px 180px at 88% 0%, rgba(22, 163, 74, 0.14), transparent 60%), linear-gradient(100deg, #0f172a, #14342a);
	border: 1px solid #1c4732;
	border-radius: 16px;
	padding: 18px 22px;
	color: #fff;
	text-align: left;
}

.afx-404__mlogo {
	width: 48px;
	height: 48px;
	border-radius: 13px;
	overflow: hidden;
	flex: none;
	background: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
}

.afx-404__mlogo img,
.afx-404__mlogo .aff-monogram {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.afx-404__mx {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
}

.afx-404__mk {
	font-family: 'JetBrains Mono', ui-monospace, monospace;
	font-size: 9.5px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: #6ee7a8;
}

.afx-404__mn {
	font-family: 'Space Grotesk', sans-serif;
	font-weight: 700;
	font-size: 18px;
	margin-top: 2px;
}

.afx-404__mmeta {
	font-size: 12px;
	color: #9fb3ab;
	margin-top: 2px;
}

.afx-404__mbtn {
	background: #fff;
	color: var(--afx-navy);
	font-weight: 600;
	font-size: 13px;
	padding: 11px 18px;
	border-radius: 10px;
	white-space: nowrap;
	text-decoration: none;
	flex: none;
}

.afx-404__mbtn:hover {
	background: var(--afx-accent-dim);
	color: var(--afx-navy);
}

.afx-404__dym {
	justify-content: center;
}

/* Search with inline button */
.afx-404__search {
	max-width: 480px;
	margin: 22px auto 0;
}

.afx-404__search input {
	padding-right: 96px;
}

.afx-404__go {
	position: absolute;
	right: 6px;
	top: 6px;
	bottom: 6px;
	background: var(--afx-navy);
	color: #fff;
	border: none;
	border-radius: 9px;
	padding: 0 16px;
	font-weight: 600;
	font-size: 13px;
	cursor: pointer;
}

.afx-404__go:hover {
	background: #1e293b;
}

.afx-404__popular {
	justify-content: center;
}

/* Request capture */
.afx-404__cap {
	background: var(--afx-panel);
	border: 1px solid var(--afx-line);
	border-radius: 18px;
	margin-top: 16px;
	padding: 26px 30px;
	text-align: center;
}

.afx-404__cap h2 {
	font-family: 'Space Grotesk', sans-serif;
	font-weight: 700;
	font-size: 18px;
	margin: 0 0 5px;
}

.afx-404__cap > p {
	font-size: 13px;
	color: var(--afx-ink-3);
	margin: 0 auto 16px;
	max-width: 420px;
}

/* Section heads + destination cards */
.afx-404__sech {
	font-family: 'Space Grotesk', sans-serif;
	font-weight: 600;
	font-size: 13px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--afx-ink-3);
	margin: 34px 0 16px;
	display: flex;
	align-items: center;
	gap: 10px;
}

.afx-404__sech::before {
	content: "";
	width: 4px;
	height: 16px;
	background: var(--afx-accent);
	border-radius: 3px;
}

.afx-404__dest {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 14px;
}

.afx-404__dcard {
	background: var(--afx-panel);
	border: 1px solid var(--afx-line);
	border-radius: 15px;
	padding: 20px;
	transition: border-color 0.15s, box-shadow 0.15s, transform 0.15s;
	text-decoration: none;
	color: var(--afx-ink);
	display: block;
}

.afx-404__dcard:hover {
	border-color: var(--afx-accent);
	box-shadow: 0 12px 30px -20px rgba(14, 165, 233, 0.5);
	transform: translateY(-2px);
	color: var(--afx-ink);
}

.afx-404__dcard h3 {
	font-family: 'Space Grotesk', sans-serif;
	font-weight: 600;
	font-size: 15px;
	margin: 0 0 5px;
}

.afx-404__dcard p {
	font-size: 12px;
	color: var(--afx-ink-3);
	margin: 0;
	line-height: 1.5;
}

.afx-404__arrow {
	font-size: 12px;
	font-weight: 600;
	color: var(--afx-accent-d);
	margin-top: 10px;
	display: inline-block;
}

/* Mini listing rows */
.afx-404__plist {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	gap: 12px;
}

.afx-404__plcard {
	background: var(--afx-panel);
	border: 1px solid var(--afx-line);
	border-radius: 13px;
	padding: 14px 16px;
	display: flex;
	align-items: center;
	gap: 12px;
	transition: border-color 0.15s, transform 0.15s;
	text-decoration: none;
	color: var(--afx-ink);
}

.afx-404__plcard:hover {
	border-color: var(--afx-accent);
	transform: translateY(-2px);
	color: var(--afx-ink);
}

.afx-404__pllogo {
	width: 38px;
	height: 38px;
	border-radius: 10px;
	overflow: hidden;
	flex: none;
	background: var(--afx-panel-2);
	border: 1px solid var(--afx-line);
	display: flex;
	align-items: center;
	justify-content: center;
}

.afx-404__pllogo img,
.afx-404__pllogo .aff-monogram {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.afx-404__plbody {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
}

.afx-404__plname {
	font-family: 'Space Grotesk', sans-serif;
	font-weight: 600;
	font-size: 14px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.afx-404__plmeta {
	font-family: 'JetBrains Mono', ui-monospace, monospace;
	font-size: 10px;
	color: var(--afx-ink-4);
	margin-top: 2px;
}

.afx-404__plscore {
	font-family: 'JetBrains Mono', ui-monospace, monospace;
	font-size: 12px;
	font-weight: 700;
	color: var(--afx-accent-d);
	background: var(--afx-accent-dim);
	padding: 3px 9px;
	border-radius: 20px;
	flex: none;
}

.afx-404__plnew {
	font-family: 'JetBrains Mono', ui-monospace, monospace;
	font-size: 9px;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: #15803d;
	background: #e9f7ef;
	padding: 3px 8px;
	border-radius: 20px;
	flex: none;
}

/* Back home + report */
.afx-404__home {
	text-align: center;
	margin-top: 30px;
}

.afx-404__home a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: var(--afx-navy);
	color: #fff;
	font-weight: 600;
	font-size: 14px;
	padding: 13px 24px;
	border-radius: 12px;
	text-decoration: none;
}

.afx-404__home a:hover {
	background: #1e293b;
	color: #fff;
}

.afx-404__report {
	text-align: center;
	margin: 16px 0 0;
	font-size: 12.5px;
	color: var(--afx-ink-4);
}

.afx-404__report-btn {
	background: none;
	border: none;
	color: var(--afx-accent-d);
	font-weight: 600;
	font-size: 12.5px;
	cursor: pointer;
	padding: 0;
}

.afx-404__report-btn:hover {
	text-decoration: underline;
}

.afx-404__report-done {
	color: #15803d;
	font-weight: 600;
}

.afx-404__report-fail {
	color: #b91c1c;
	font-weight: 600;
}

@media (max-width: 780px) {
	.afx-404__dest {
		grid-template-columns: 1fr 1fr;
	}

	.afx-404__plist {
		grid-template-columns: 1fr;
	}

	.afx-404__hero h1 {
		font-size: 25px;
	}

	.afx-404__d {
		font-size: 56px;
	}

	.afx-404__zero {
		width: 58px;
		height: 58px;
	}

	.afx-404__zero svg {
		width: 58px;
		height: 58px;
	}

	.afx-404__matchband {
		flex-wrap: wrap;
	}
}
